H.264编码

H.264是由ITU-T视频编码专家组(VCEG)和ISO/IEC运动图像专家 组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的新一代数字视频压缩标准。与之前的标准一样,同样采用了帧内预测,运动预测,变换编码,熵编码结合的方法(这些方面和之前的标准一致,即混合编码器的基本框架),同时在此基础上做出一定改动(主要改动集中在功能模块的具体细节上),以适应更高的编码效率,更简洁的表达形式等要求。
在应用方面,H.264更注重对移动和IP网络的适应,采用分层技术将编码和信道分离开(实际上是在编码过程中更注重对信道条件的考虑)。

H.264特点

编码效率高 相同图像质量下编码效率为MPEG-2的2倍以上
容错能力强 提供流畅的高质量图像(DVD)
网络适应性好 网络抽象层NAL提供了强网络适应性
计算复杂度高 功能模块细节上设定更复杂,导致计算复杂度提高
与之前的标注相比相比使用的先进技术有:

分层设计
编码方案主要有视频编码层和网络抽象层组成,编码和信道分离。

帧内预测编码
根据邻近块的值来预测当前宏块的值,然后再对预测值和原始值的差值进行变换、量化和编码。具体预测方案分为亮度块的4x4和16x16模式,色度块的8x8模式。,每个模式各自有不同的预测模型。

帧间预测编码
在基于块的运动补偿基本思想下有如下改动:

使用不同大小和形状的块进行搜索
搜索精度提高到1/4像素
多个预测帧进行帧间预测
引入SP,SI帧,适应带宽自适应和抗误码的要求
整数变换
实际上仍为DCT变换。以Baseline为例,对不同的数据进行不同的整数变换:4x4的残差数据块变换,4x4的亮度DC系数块变换,2x2的色度DC系数块变换。

量化处理
H.264标准支持52个量化步长,对应于不同的量化参数(QP)如表所示,QP值每增加6,Qstep值增加一倍。量化步长取值范围很广,这就为编码中兼顾比特率和编码质量提供了足够多的灵活度和准确度。

去块效应滤波
H.264/AVC定义了一个自适应循环滤波器,滤波的强度通过几个语法元素控制。滤波的基本思想是:如果块边沿的绝对差值相对比较大,出现块人工瑕疵的可能性就很大, 因此需要进行相应处理。

熵编码
H.264提供的熵编码方案有:通用变长码编码UVLC,基于上下文的自适应变长编码CAVLC,基于上下文的自适应二进制算术编码CABAC。

第一步 修改解码器参数

需要修改的部分很少,将输入及输出文件名进行修改即可
在这里插入图片描述
得到输出文件
在这里插入图片描述

第二步 修改编码器参数

在这里插入图片描述
修改输入文件名
将要编码的帧数修改为50,帧率及视频长宽根据原始mp4文件信息修改
在这里插入图片描述
GOP长度为15则将IntraPeriod修改为15,有I与P或P与P之间有两个B帧则将NumberBFrames修改为2,修改不同GOP参数时修改这两个数据即可。
运行lencode.exe
在这里插入图片描述
在Rate部分修改码率
在这里插入图片描述

可以看到编码I、P、B帧的顺序。

第三步 使用码流分析软件进行分析

使用不同块大小进行编码
在这里插入图片描述

运动矢量
在这里插入图片描述

失真率曲线
在这里插入图片描述