最近在研究AVS,看了一些AVS的文章。这里总结一下AVS和H.264的核心技术。内容参考了论文《AVS编码性能研究》、《Block Merging for Quadtree Based partitioning》、《Block partitioning Structure in the HEVC standard》等等。
核心技术对比:
AVS和H.264都采用基于块的运动补偿混合编码框架,包括变换、量化、上那边吗、帧内预测、帧间预测、环路滤波等当前主流技术模块。
1、帧内预测
AVS和h.264都采用在空间域内进行帧内预测,即在空间域内利用当前块的临近像素对块内的系数进行预测。AVS的帧内预测以8X8亮度块和色度块为单位,定义了五种8x8 亮度块预测模式和四种8x8色度块预测模式;h.264的帧内预测定义了9种4x4的亮度块预测模式,4种16x16的亮度块预测模式和4种8x8色度块预测模式。
2、帧间预测
AVS 采用的帧间预测块有4种:16x16,16x8,8x16,8x8; H.264采用的帧间预测块有7种:16x16,16x8,8x16,8x8,8x4,4x8,4x4.两大标准都采用1/2和1/4(色度1/8)像素精度的运动矢量,在差值方法上AVS采用4抽头均值滤波器,H.264采用6抽头均值滤波器。
在帧间预测中AVS最多使用2个预测帧(I帧或P帧),其中对P帧使用其前面一解码的连续两帧作为参考,对B帧使用其前后各一帧作为参考;而H.264在帧间预测中最多可以使用31帧作为参考帧,这能够节约一定的码率,也便于码流的错误恢复,但是对编码器提出了更高的要求。AVS对于B帧的预测编码模式有3种:直接模式,不需要传送运动矢量;对称模式,只需要传送费前向运动矢量,后向运动矢量可由前向运动矢量退出;跳跃模式,不需要传送运动矢量。h.264对于B帧的预测模式有4中:直接模式,不需要传送运动矢量;利用list0的运动补偿模式,需要传送list0的运动矢量;利用list1的运动补偿模式,需要传送list1的运动矢量;双向运动补偿模式,需要传送list0和list1的2个运动矢量。
3、变化你和量化
AVS采用8x8的整数变换(ICT),h.264采用4x4的整数变换(在最近的high profile中也加入了8x8的整数变换),并对变换后的直流系数做Hadamard变换。在量化的方法上,两者都采用变换结合的方法,并将变换部分的缩放移到量化部分进行,不同的是H.264在编码器中只进行正常缩放,反向缩放在解码器中进行,而AVS则将正向和反向缩放都放在编码器进行,解码器只需要进行反向量化。在H.264中量化参数(QP)每增加6,量化步长翻倍,而AVS中QP每增加8,量化步长才翻倍。
4、熵编码
AVS 的熵编码准则为对所有可变分布的语法元素均采用指数哥伦布码,采用自适应二维变长编码的方法,而对均匀分布的语法元素采用定长编码。H.264 的熵编码准则为对变换系数,基本档次和扩展档次采用基于上下文的自适应变长编码,主档次采用基于上下文的算术编码,对其他语法元素均采用指数哥伦布编码。
5 去块环路滤波
AVS 和H.264 都使用了环路滤波器,不同的是AVS 只采用8×8 块的边界两边各3 个象素值进行去块滤波,而H.264 以每个4×4 块的边界两边各4 个象素值进行去块滤波,复杂度较高。
6 小结
原文出处:http://blog.csdn.net/zhangyuehuan/article/details/34092083