|
MPEG4 & H.264学习笔记之三 ------ 图像模型(图像处理过程)(2) 3.4.2.2 余弦变换在X中进行运算(X是一个N*N的采样块,通常是指在预测之后的图像采样或剩余帧值)来构造Y,一个N*M的系数块。DCT的操作(及它的反变换IDCT),可以用变换矩阵A来描述。一个N*N采样块的DCT变换由如下式子得到:Y=AXA(T),反DCT变换:Y=AXA(T),A(T)表示A的对称矩阵 X是一个采样的矩阵,Y是一个系统的矩阵,A是一个N*N的变换矩阵。A的元素是: A(i,j) = C(i) * cos [(2j+1)*i*PI]/2N C(i)= N^(-1/2) i=0 (2/N)^(-1/2) i>0 一个二维DCT的输出是一组N*N的系数,它表示了图像在DCT域中的块数据,这些系数可以被想成是一组标准基的”权“值。任何图像块都可以由编合所有的N*N标准基来重组,通过这些基乘以相应的权因素值(系数)。 例2 图像块的DCT系数 一个选定的4*4的块,以及DCT系数。这种用DCT域表示块的方法的优点不是很明显的,因为并没有减少存储的空间,原来我们存16个像素值,我们现在成了需要存16个DCT系数。DCT的实用性当块被从系数的一个子集中构建出来的时候表现了出来: 把除去一些很大的值之外的所有的系数设为0,执行IDCT之后的结果如下图:在IDCT之前加入更多的系数可以形成渐近的更加准确的对原图的重建。这样,就可能从从一个子集的系数集中近似于原始的图像。删除系数中的小系数值(比如说通过量化)可以让图像数据在更少的系数表示位中表示出来,尽管这样做会影响图像的质量。 3.4.2.3 小波 流行的"小波变换"要(基于一系列系数与离散小波函数相等的滤波器来进行图像压缩的一种广泛使用的方法).一个应用于有N个采样结果的离散信号的离散小波变换的基本运行过程如下.一对滤波器被用来把信号分解为一个低频部分(L)和一个高频部分(H).每个波段由因子2被子采样化,这样这两个频率波都含有N/2个采样点。如果正确选择了滤波器的话,这个操作过程是可逆的。
这种方法可以被扩展应用到一个二维的信号上,比如说灰度图中。一个2D图的每一行都被经过低通和高通的滤波(Lx和Hx),每个滤波器的输出被下采样用来制造中间图像L和H。L是原始图象的低通滤波,并通过在x方向进行下采样的结果.H是原图像的高通滤波并在x方向的下采样结果。接下来,这些新图的每一列都使用低和高通的滤波器(Ly和Hy),并经过下采样来制造出四个子图象(LL,LH,HL,HH)。这四个子图象可以被组合为与原图的采样数相同的图象。LL是原图通过在水平和垂直方向经过低通,并用因素2进行子采样的结果。HL是通过在垂直方向经过高通滤波并包含了剩余垂直频率的结果。LH是通过在水平方向高通滤波并包含了剩余的水平频的结果,而HH是通过在水平和垂直两个方向进行高通滤波的结果。它们之间,四个图像包含了所有的原始图像的信息,但是LH,HL,HH的稀疏性使它们更加容易压缩。 在图像压缩程序中,二维的小波分解被继续应用到LL图中,来组成四个新的子图。得到的新的低通图象继续被得到子图象。很多高频的采样结果都是接近0的,它就可以通过把小值来移除来达到更优化的传输。在解码端,原图像通过上采样,滤波和加值被重建。 3.4.3 量化 量化器把一个在值域X的信号量化减为到值域Y中。使用更小的位来表示量化后的信号是可行的,因为转换后的值域比原来更小了。一个标量的量化器把输入的信号映射到一个量化的输出值域中,而一个向量的量化器把一组输入采样值映射到一组量化值中。 3.4.3.1 标量量化 标量量化的一个简单的例子就是把小数近似到最近的整数上,比如,从R到Z的映射。这个过程是有损的(不可逆的)因为它是无法从被近似后的结果来恢复出原来的小数的。 一个量化的更加通用的例子就是: FQ = round (X/QP) Y=FQ * QP 这里QP是量化的步长。量化输出级间隔单一的QP间断值。 在图像或视频的CODEC中,量化操作通常由两部分构成:编码端的前向量化FQ,和解码端的反量化(IQ).(事实上量化是不可逆的,这样用一个更准确的叫法的话:标量器和重标量器。在两个标量值之间的QP步长是一个重要的参数。如果步长很长的话,那么量化值的范围就很小,这样的话就可以在传输过程中被更有效地被表示(高压缩比地压缩).但是重量化值是原信号值的近似。如果步长很小的话,重量化值与原始信号更加匹配,但是量化值就落到一个更大的范围之内,就降低了压缩的效率。
|