由于工作的需求,我也参与了公司H.265 Decoder 开发工作,现在decoder在Cortex-A9, 1.2G 单个Core, QP = 28, bitrate 1.5mpbs, 720p 能解40fps。在这转载一下这篇主流的视频编解码器简单的总结blog, 写的还不错。
1、宏块匹配像素精度: MPEG2中,运动估计的精度是1/2的像素,通过线性插值实现;
H.264/AVC和MPEG4 都可以支持1/4像素的精度.
2、参考帧的数量: MPEG2,MPEG4的P帧只能有一帧参考帧,B帧可以有两帧参考帧 ,H.264/AVC可以最多有15帧参考帧(创新之处),
一般情况下选择3-5帧作为参考帧.
3、滤波器的结构: 插值滤波器不同,在MPEG4里面是简单的线性插值,
而H.264/AVC里面是5抽头的滤波器(首次提出环路滤波概念);
MPEG2没有环内deblocking工具,MPEG4有deblocking工具,但是属于postprocessing;
H.264/AVC有环内deblocking工具. 4、I帧的编码: MPEG2没有INTRA预测,但是有DC参数预测;MPEG4没有INTRA预测,支持DC预测,
并且支持两个AC参数的预测(这可以理解为早期的帧内预测)。H.264/AVC支持INTRA预测,
4*4共有9种模式(这就是H.264的创新之处).
5、匹配宏块大小的区别:MPEG2最小匹配块尺寸为8*8,MPEG4同样也为8*8,
H.264/AVC最小可以到4*4尺寸(创新点,不过复杂度成倍增加)
6、DCT变换的不同: MPEG系列为8*8的DCT变换,逆变换时会出现漂移现象;
H.264/AVC为整数4*4的DCT变换,而且直流系数经过HADMARD变换之后做的DCT变换,
整数DCT变换可以防止逆变 换时出现漂移现象.
7、量化之后的编码: MPEG2/MPEG4则都是基于huffman,并且头部的语法相对比较简单,很少使用变长码;
H.264/AVC提供基于上下文的CAVLC和CABAC(复杂,但是节省码流) 。
8、编码之后的结构: MPEG2/MPEG4都是分层结构;
H.264/AVC则是提供NAL单层结构,提供参数集合的形式
9、量化参数的区别: MPEG4提供31个量化参数(量化模式:常量化,系统默认量化矩阵,自定义量化矩阵),
H.264/AVC提供51个量化参数(量化模式:常量化,量化矩阵,自定义有否还不确定);
转自:http://blog.csdn.net/feixiang_john/article/details/7992327