转自:http://blog.csdn.net/wanggp_2007/article/details/4863129
阅读完H264/AVC 编解码器的介绍,脑海中只是留下以下三条:
1、H264并没有明确规定一个编解码器如何实现,只是规定了一个编码后的视频比特流的句法,和该比特流的解码方法,这个与MPEG 相似。
2、H264和以前的标准(如H261、H263、MPEG-1、MPEG-4)的编解码器实现流程没有太大区别,主要的不同在于各功能块的细节。
3、H264就是利用实现的复杂性获得压缩性能的明显改善。(至于复杂度的评估,以后会介绍)
下面介绍一下H264的编码器框图:
编码器采用的仍是变换和预测的混合编码法。在图6.1中,输入的帧或场Fn以宏块为单位被编码器处理。首先,按帧内或者帧间预测编码的方法进行处理。如果采用帧间预测编码,其预测值PRED是由当前片中前面已编码的参考图像经运动补偿(MC)后得到,其中参考图像用F'n-1表示。预测值PRED和当前块相减后,产生一个残差块Dn,经块变换、量化后产生一组量化后的变换系数X,再经熵编码,与解码所需的一些头信息一起组成压缩后的码流,经NAL(网络自适应层)供传输和存储用。
H264的解码器框图:
在图6.2中,将编码器的NAL输出的H264比特流经熵解码得到量化后的一组变换系数X,再经反量化、反变换,得到残差D'n。利用从该比特流中解码出的头信息,解码器就产生一个预测块PRED,它和编码器中的原始PRED是相同的。当该解码器产生的PRED与残差D'n相加后,就得到了uF'n,再经滤波后,最后就得到滤波后的解码输出图像F'n。
*以上的图片来自《H264 AND MPEG-4 VIDEO COMPRESSION》