文章目录
一、实验任务
test.264与highway_qcif.264的分辨率均为176x144。
二、实验过程
1、264文件解码得到YUV文件
(1)打开decoder.cfg,分别修改对应的文件名:
(2)打开工程文件ldecod_vc10,修改命令参数:
(3)运行程序,将test.264文件解码得到test_dec.yuv文件:
运行程序,将highway_qcif.264文件解码得到highway_qcif_dec.264文件:
(4)使用YUVviewerPlus,打开生成的yuv文件:
2、将YUV文件编码为264文件
打开jm_vc10.sln,修改命令参数(但实际上不需要填写命令参数就可以运行):
在ecoder.cfg分别修改对应的文件名。运行程序,将YUV文件编码得到264文件:
test_new.264:
highway_qcif_new.264:
(1)固定码率(10000kb/s),不同的GOP长度及形状
选用视频highway_qcif_dec.yuv,首先修改两个参数:
FramesToBeEncoded = 60 # Number of frames to be coded
HierarchicalCoding = 0 # B hierarchical coding (0= off, 1= 2 layers, 2= 2 full hierarchy, 3 = explicit)
IntraPeriod | IDRPeriod | NumberBFrames | PrimaryGOPLength | RateControlEnable | Bitrate | Y PSNR(dB) | |
---|---|---|---|---|---|---|---|
GOP=15,2B帧 | 0 | 15 | 2 | 15 | 1 | 10000 | 32.985 |
GOP=12,2B帧 | 0 | 12 | 2 | 12 | 1 | 10000 | 33.147 |
GOP=9,2B帧 | 0 | 9 | 2 | 9 | 1 | 10000 | 34.798 |
GOP=4,1B帧 | 0 | 4 | 1 | 4 | 1 | 10000 | 40.538 |
GOP=12,无B帧 | 0 | 12 | 0 | 12 | 1 | 10000 | 32.962 |
GOP=1,全I帧 | 0 | 0 | 0 | 1 | 1 | 10000 | 40.538 |
GOP=15,2B帧:
GOP=12,2B帧:
GOP=9,2B帧:
GOP=4,1B帧:
GOP=12,无B帧:
GOP=1,全I帧:
主观评测:码率一定的情况下,图像质量都还不错。
(2)固定GOP长度及形状(GOP=15,2B帧),不同码率
IntraPeriod | IDRPeriod | NumberBFrames | PrimaryGOPLength | RateControlEnable | Bitrate | Y PSNR(dB) | |
---|---|---|---|---|---|---|---|
GOP=15,2B帧 | 0 | 15 | 2 | 15 | 1 | 100000 | 41.928 |
GOP=15,2B帧 | 0 | 15 | 2 | 15 | 1 | 200000 | 45.137 |
GOP=15,2B帧 | 0 | 15 | 2 | 15 | 1 | 300000 | 47.759 |
GOP=15,2B帧 | 0 | 15 | 2 | 15 | 1 | 400000 | 49.294 |
GOP=15,2B帧 | 0 | 15 | 2 | 15 | 1 | 500000 | 51.555 |
比特率为100000kb/s:
比特率为200000kb/s:
比特率为300000kb/s:
比特率为400000kb/s:
比特率为500000kb/s:
以Bitrate(kb/s)为横坐标,以PSNR(dB)为纵坐标,生成率失真曲线。