1.预测编码
预测编码也称差分脉冲编码调制,用DPCM表示,DPCM不直接传输图像样值本身,而是对实际样值(Xn)与它的一个预测值(X′n)之间差值即预测误差(En=X′n-Xn)进行再次量化、编码。这种方法可以消除图像信号的空间相关冗余(帧内预测)和时间相关冗余(帧间预测)。DPCM系统框图如图1-7所示。
图1-7 DPCM系统框图
DPCM系统的输入信号Xn是PCM图像信号。对于每一个输入样值Xn,预测器产生一个预测值X′n。预测值是根据已传出的相邻像素亮度估算(预测)出来的,如果所选的参考样值(在Xn前已传出的样值)与Xn处在同一扫描行内,称为一维预测,如果参考样值除了本行的,还有前一行或前几行的,称为二维预测,若除此以外还选择处于前一帧图像上的样值作为参考样值,则称为三维预测。采用一、二维预测的称为帧内预测编码,三维预测属帧间预测编码。
2.变换编码
在模拟信号分析中,利用数学中的傅里叶变换可以把时域信号变成相应的频域信号,通过傅里叶反变换又可以把频域信号还原为原来的时域信号,如图1-8所示。
图1-8 时域方波信号变换为频域信号
a)方波信号波形 b)1、3、5、7次谐波信号波形 c)谐波叠加后的波形d)1、3、5、7次谐波频谱图
图1-8a表示一个方波信号,图1-8b表示其各次谐波S1、S3、S5、S7的波形,图1-8c则表示出各次谐波叠加后的波形。可以看出,基波S1包含了信号的大部分能量,3次谐波S3、5次谐波S5……的能量幅值逐次减少。相应的频谱如图1-8d所示,图中f1、f3、f5、f7相应为S1、S3、S5、S7各谐波的频率。实际应用中,可以按不同的准确度要求用有限个简谐波来合成原信号。
对于数字信号也可以用相似的处理方式。如果把空间时域信号变换为频域信号,利用能量概率改变的特点舍去可以忽略的小能量幅值,便可达到压缩码率的目的。显然,数字信号的运算只能对离散的有限的序列进行,故必须采用离散傅里叶变换。
变换编码是利用图像在空间分布上的规律性来消除图像冗余的另一种编码方法,它的基本思想是把原来在几何空间(空间域)描写的图像信号,变换在另一个正交矢量空间(变换域)进行描写。如果所选的正交矢量空间的基本矢量与图像本身的特征矢量很接近,那么同一信号在这种空间中描写起来就会简单很多。空间域的一个N×N个像素组成的像块经过正交变换后,在变换域变成同样大小的变换系数块。变换前后的明显差别是,空间域的像块中像素之间存在很强的相关性,能量分布比较均匀,经过正交变换后,变换系数近似是统计独立的,相关性基本解除,并且能量主要集中在直流和少数低空间频率的变换系数上。这样一个解相关过程也就是冗余压缩过程。在经过正交变换后,再在变换域进行滤波,与视觉特征匹配的量化及统计编码,这就可以实现有效的码率压缩,去除图像的空间冗余度。图1-9是变换编码的框图。
图1-9 变换编码的框图
离散余弦变换(DCT)是变换编码的一个典型例子,也是国际标准建议采用的编码方式。图1-10是DCT编码器框图。
图1-10 DCT编码器框图(www.xing528.com)
任何连续的对称实函数的傅里叶变换中只含余弦项,因此余弦变换与傅里叶变换一样有明确的物理意义。DCT先将整体图像分成N×N像块,然后对N×N像块逐一进行DCT变换。由于大多数图像的高频分量较小,相应于图像高频成分的系数经常为零,加上人眼对高频成分的失真不太敏感,所以可用更粗的量化。因此传输变换系数所用的数码率要远远小于传输图像像素的数码率。到达接收端后再通过反离散余弦变换回到样值,虽然会有一定的失真,但人在视觉上是可以接受的。
一般N=8,8×8像块的帧间差值(FD)(见图1-11a)经DCT运算后,变为代表该像块空间域频道的变换系数。变换系数的像块如图1-11b所示,其左上角系数为直流分量,即F(0,0),其余分量是交流分量,右下角系数为高次谐波分量F(7,7),在右上角的系数F(0,7)表示水平方向频率最高,垂直方向频率最低的系数,在左下角的系数F(7,0)表示垂直方向频率最高,水平方向频率最低的系数,空间频率的数值是随u或v的增大而增大,相应系数分别代表逐步增加的水平方向频率和垂直方向频率分量的大小。当64个系数中只有一个系数为1时,其余为零时,相应的64个像素值所组成的图像称为基本图像。既然基本图像相当于变换域中的单一系数,那么任何像块也可以看成由64个不同幅度的基本图像的组合。这与任何信号可以分解成基波和不同幅度的谐波组成具有相同的物理意义。
图1-11 DCT变换系数图
a)帧间差值 b)变换系数
3.统计编码
统计编码又称熵编码,它是对于有不同概率的事件(符号)分配以不同长度的码字,对概率大的事件(符号)分配以短的码字,对概率小的分配以长的码字,从而使平均码长最短。统计编码实现事件出现的概率与码字长度的最佳匹配。
霍夫曼(Huffman)编码是最常见的一种统计编码方法,又称可变字长编码(VLC)。霍夫曼编码的具体方法是:
(1)先将K个信源符号按出现的概率由大到小顺序排列,如图1-12所示。
图1-12 变字长编码示意图
(2)将最小两个概率相加,并对其中概率大者赋予“0”,概率较小者赋予“1”,也可以反过来,概率较大者赋予“1”,概率较小者赋予“0”,但以后选择应保持一致,图中采用后者。
(3)把相加求出的和作为一个新的概率集合,再按第(2)步方法重排。如此重复进行,直到剩下最后两个概率值。
(4)分配码字。码字分配从最后一步开始的反向进行。对最后两个概率值与前面一致,一个赋“0”码,一个赋“1”码。
由图1-12可以看出,这个编码过程实际上是一个二叉树的过程。树的K个端点对应K个信源符号,每个节点的两个分枝用二进制码的两个码元符号“0”和“1”分别标志。从根开始沿着图中所示的路径,经过一个或几个节点到达端点,将一路上遇到的二进制码元符号顺序排起来,就是这个端点所对应的信源符号的码字。概率大的符号分配较短的码字,而概率小的符号则分配较长的码字,从而提高了编码效率。
统计编码已被广泛地应用到各种静止和活动图像编码;它即可以用来对一维信源符号编码也可以对多维信源符号编码(一维信源符号用变字长编码,二维信源符号用游程长度编码)。但是,统计编码要求事先知道各信源符号出现概率,否则编码的效率明显下降。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。