H.264编码实验

本实验使用JM 18.6编解码

一、解码

修改decoder.cfg,将输入文件与输出文件改为自己所用的文件和想要的文件,将程序运行目录设置到bin中,运行程序解码.264文件,根据.264文件生成.yuv文件。

在这里插入图片描述

解码完成
在这里插入图片描述

二、编码

修改encoder.cfg,将输入文件与输出文件改为自己所用的文件和想要的文件,同时调整输入输出分辨率、编码帧数、GOP长度、连续B帧数、码率,将程序运行目录设置到bin中。
在这里插入图片描述

调整GOP长度:
在这里插入图片描述
连续B帧长度:
在这里插入图片描述
码率:(调整码率时要把RateControlEnable打开)
在这里插入图片描述

GOP与连续B帧数对图像质量的影响

GOP=15,2B帧:
在这里插入图片描述
在这里插入图片描述
Y分量的PSNR为39.975dB

在这里插入图片描述

该视频中较明显的运动处:

P帧:
红色为前向预测,绿色为后向预测,P帧只有前向预测。
在这里插入图片描述
B帧:
既有前向预测也有后向预测
在这里插入图片描述

I、B、P帧的宏块类型:
(红色与橙色均为帧内编码,黄色为与上一帧相同不用编码,蓝色为前向预测编码,绿色为双向编码)
在这里插入图片描述在这里插入图片描述在这里插入图片描述

更多测试:

GOP=12,2B帧GOP=9,2B帧GOP=4,1B帧GOP=12,无B帧GOP=1,全I帧
P帧运动矢量在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
B帧运动矢量在这里插入图片描述在这里插入图片描述在这里插入图片描述
I帧宏块类型在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
P帧宏块类型在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
B帧宏块类型在这里插入图片描述在这里插入图片描述在这里插入图片描述
PSNR(dB)40.17440.12940.73540.90441.177

不同码率的PSNR:
分别对各个情况测试最小码率、60kbps、100kbps、140kbps、180kbps、最大码率,记录数据。
在这里插入图片描述

使用matlab绘图:
不统计最大码率情况时:
在这里插入图片描述

统计最大码率情况时:
在这里插入图片描述

各情况的趋势接近,由统计最大码率的情况可知GOP=12,无B帧的压缩质量最好,GOP=1,全I帧质量最差,其他情况排序为GOP=12,2B > GOP=9,2B > GOP=4,1B

由结果可知相同码率时,连续B帧数相同时GOP越大质量越好,GOP相同时连续B帧数越大越好,即B帧占比越大时质量越好。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值