视频编码笔记

视频编码的基本框架

        参见http://blog.csdn.net/evsqiezi/article/details/8112094;

        变换编码实现比较复杂,预测编码的实现相对容易,但预测编码的误差会扩散,以一行为例,由于后面像素以前面像素为参考,前面像素的预测误差会逐步向后面像素扩散。而且在二维预测时,误差会扩散至后面几行,形成区域误码。这样一来,信道误码率要求提高,一般要求不大于10^(-6)。相比之下,变换编码则不会误码扩散,其影响只限制在一个块内,而且反变换后误码会均匀分散到块内个像素上,对视觉无甚影响。这时信道误码率一般不大于10^(-4)即可。
        两者各有优缺,特别市变换编码随着VLSI(超大规模集成电路)技术的飞跃发展,实现起来十分容易。现实中,往往采用混合编码方法,即对图像先进行带有运动补偿的帧间预测编码,再对预测编码后残差信号进行DCT变换。这种混合编码方法已成为许多视频压缩编码国际标准的基本框架。

基本概念:

        1、宏块(Macro Block):一个编码图像首先要划分成多个块(4x4 像素)才能进行处理,显然宏块应该是整数个块组成,通常宏块大小为16x16个像素。宏块分为I、P、B宏块,I宏块只能利用当前片中已解码的像素作为参考进行帧内预测;P宏块可以利用前面已解码的图像作为参考图像进行帧内预测;B宏块则是利用前后向的参考图形进行帧内测;
       2.片(Slice):一帧视频图像可编码成一个或者多个片,每片包含整数个宏块,即每片至少一个宏块,最多时包含整个图像的宏块。片的目的:为了限制误码的扩散和传输,使编码片相互间保持独立。片共有5种类型:I片(只包含I宏块)、P片(P和I宏块)、B片(B和I宏块)、SP片(用于不同编码流之间的切换)和SI片(特殊类型的编码宏块)。
       3、片组是一个编码图像中若干宏块的一个子集,包含一个或若干个片。一般一个片组中,每片的宏块是按扫描次序进行编码的,除非使用任意片次序(Arbitrary Slice Order, ASO)一个编码帧中的片之后可以跟随任一解码图像的片。另外一种片组,灵活宏块次序(Flexible Macroblock Ordering, FMO)用灵活的方法,把编码的宏块宏块映射

到相应的片组中。

帧内预测与帧间预测

        编关键帧一般使用帧内预测,又称空间压缩,当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息,这实际上与静态图像压缩类似。帧内一般采用有损压缩算法,由于帧内压缩时各个帧之间没有相互关系,所以压缩后的视频数据仍可以以帧为单位进行编辑。帧内压缩一般达不到很高的压缩。帧内预测是H.264区别于其它编码标准的一个重要特征,mpeg-1和mpeg-2都没有帧内预测,mpeg-4虽然有但作用并不明显,而h.264的帧内预测是很强大的

        动画的连续前后两帧具有很大的相关性,或者说前后两帧信息变化很小的特点。也即连续的视频其相邻帧之间具有冗余信息,根据这一特性,压缩相邻帧之间的冗余量就可以进一步提高压缩量,减小压缩比。帧间压缩也称为时间压缩(Temporalcompression),它通过比较时间轴上不同帧之间的数据进行压缩。帧间压缩一般是无损的。帧差值(Frame differencing)算法是一种典型的时间压缩法,它通过比较本帧与相邻帧之间的差异,仅记录本帧与其相邻帧的差值,这样可以大大减少数据量。

MPEG4/H263/H264的区别

参见:http://blog.csdn.net/evsqiezi/article/details/7886073。

运动补偿

参见:http://blog.csdn.net/evsqiezi/article/details/7514680。

你可能感兴趣的:(视频编码笔记)