|
MPEG4 & H.264学习笔记之三 ------ 图像模型(图像处理过程)(1)
3.4 图像模型 一个自然的视频图像包括一格采样值.自然图像在它们原始的状态下通常很难于压缩,这是因为相邻图像采样值之间的很强的联系造成的.我们可以从一幅图像的自相关函数图中得到不同图像之间的相似程度.在中点处的最顶点表示图像未经移动时的图像.当空域移动拷贝被从原始图像的任一个方向移除的时候,这个函数值就会急骤下降,就这说明了一个图像采样值的邻域内是高度相关的. 一个运动补偿的剩余图象的自相关函数在当空域移动增加的时候快速衰减,表明了相邻的采样点是弱相关的.有效的运动补偿在剩余帧中减少了本地相关性,这样就让图象比原始状态下的图象更易于压缩.图像模型的作用就是把图像或剩余图像的相关性去除掉,并把它转变为一种可以被熵编码器有效编码的数据形式.实际图像模型一般有三个主要的组成部分:变换(去相关和简化数据),量化(减小转换数据的相关性)和重组(组合数据来把大值分组到一起)。 3.4.1 预测图像编码 运动补偿是预测编码的一个实例,在这种补偿下,编码器基于上一帧创造了对于当前帧的一个区域的预测并从当前域中减去这个预测来形成一个剩余帧。如果预测是成功的,那和在剩余帧中的能量是比原始帧中的能量少得多的,而且剩余帧可以用更少的位来表示。 与之相似的是,同一个图像采样或区域的预测可以由前面传输的同样图象或帧中组成.预测性编码被用作是早期的压缩算法的基础,也是H.264的一个很重要的组成部分.帧内编码(应用在变换域中,见后).空域预测有时被描述为"差分脉冲编码调制"(DPCM)--从通信系统中引入的一个差分的PCM编码方法. B C A X
图中假设一个像素X是被编码的像素点,如果在光栅顺序下处理这帧的话,那么点A,B和C(在当前和之前行的邻近像素)在编码和解码器中都是可得的(因为他们已经在X之前被解码).编码器在根据一些在之前编码的像素的组合来得到对于X的预测,从X中减掉这个预测,然后编码剩余帧频(做差之后的结果).解压器形成相同的预测,然后把解码的剩余帧加进去来重建像素值.如果编码过程是有损的(比如说剩余帧被量化了)那么解码的像素值A,B,C也许与原始的A,B,C是不同的(因为编码过程的损失),这样的话上述的过程可能在编码器和解码器上引起累积的不匹配.这种情况下,编码器应该解码剩余帧中的R(X),并重建像素. 比如说: 编码器预测: P(X) = (2A + B + C) / 4 剩余帧 R(X) = X - P(X) 被编码并传输 解码器解码R(X)并组成同样的预测: P(X) = (2A + B + C) / 4 重建像素 X = R(X) + P(X) 编码器使用解码的像素值A,B,C来构成重建,比如说,P(X)=(2A+B+C)/4.这样的话,编码器和解码器使用同样的P(X),这样就可以避免错位的发生. 这种方法的压缩的效率依赖于对于P(X)预测的准确性.如果预测是准确的(P(X)与X的值是相近的),那么剩余帧的能量就非常小了.然而,并不是经常都能选择一个对复杂图像来说那么理想的预测器的.编码器就有必要指出对解码端选择预测器,这样就有一个预测和需要的多余位来表示信号和预测器的一个折衷考虑了. 3.4.2 变换编码 3.4.2.1 总述 图像中或视频CODEC中的变换阶段是把图像或运动补偿剩余值转到另一个域中(变换域中)。变换的选择依赖于以下几个分类 1. 在转换域中的数据是去相关性的(转换域中的数据的大多数能量都会聚集到很小的值中) 2. 转换应该是可逆的. 3. 转换的计算过程应该是易于处理的, 对图像和视频压缩以及很多的变换都建议使用以下两类方式:基于块的变换和基于图像的变换。基于块的变换的例子比如Karhunen-Loeve变换(KLT),单值分解(SVD)和余弦变换(DCT)。每一种变换都是对于N*N的图像块或剩余样本来说的,这样图像就被用块的单元来处理。块变换有很低的内存需求而且很适于基于块的运动补偿剩余帧的压缩,但是受边界区域的影响比较严重。基于图像的变换对于整个图像或帧来进行操作(或一个图像的一大段进行操作)。最常用的图像变换是离散小波变换(DWT或直接说小波变换)。像DWT这样的变换对于表态图像的压缩来说已经被证明是很有效的了,但是它们对内存的消耗都比较大(因为整个图像或段都以单个单元来进行处理)而且不适用于基于块的运动补偿方法。DCT和DWT在MPEG4视频部分中都得到了应用(而且一个DCT的变种在H.264中被使用)。它们将在下面几节被讨论。
|