购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2.2 变换编码方法

基于图像统计特性进行数据压缩的另一类基本方法就是变换编码(Transform Coding):将空间域描述的图像经过某种变换(如离散傅里叶变换、离散余弦变换、沃尔什变换等)形成变换域中的数据(系数),达到改变数据分布、减少记录数据量的目的。

1.正交变换

在变换编码中,正交变换是一种最常见的数据处理手段,它把统计上彼此密切相关的像素值所构成的矩阵通过线性正交变换,变成统计上彼此较为独立、甚至完全独立的变换系数矩阵。信息论的研究表明,正交变换不改变信源的熵值,变换前后图像的信息量并无损失,完全可以通过反变换得到原来的图像值。但是经过正交变换后,数据的分布发生了很大的改变,系数(变换后产生的数据)在变换域坐标系分布趋于集中,如集中于少数的直流或低频分量的坐标点。

因此,尽管正交变换本身并不压缩数据量,但数据的集中分布为在新坐标系中的数据压缩创造了条件。例如,可以通过量化操作,保留少量有效数据,去除大部分零数据或接近零数据。由于去除了大部分相关性,系数分布相对集中,有利于采用更加有效的表示方式,如“Z”(Zig - Zag)字形扫描、变长编码等,从而获得对图像信息量的有效压缩。

2.DCT变换

离散余弦变换(Discret Cosine Transform,DCT)是视频编码中应用最广的一种正交变换,这里以8×8的二维图像 f ( x , y )为例,其二维DCT变换定义为

img

(1.3)

二维频谱 F ( u , v )的二维DCT反变换定义为

img

(1.4)

式中,

从上面的定义可以看出,DCT本质上和傅里叶变换一样,可以反映信号的频域特性。傅里叶变换是复杂的复数运算,而DCT变换是一种相对简单的实数运算,而且正反变换基函数一样。由于DCT的这一特性,在实际实现DCT变换时,只要用同一种硬件或同一段程序,既可以进行正向DCT变换,又可以进行反向DCT变换。从DCT的表达式还可以知道,二维DCT是一种可分离的变换,可以方便地分别对两个变量进行一维DCT变换。

在目前常用的正交变换中,DCT变换性能仅次于理论上最佳的可以完全除去相关的K-L变换,所以DCT变换被认为是一种准最佳变换。DCT变换矩阵与图像内容无关,去相关性好,有快速算法(FDCT),实现方便;DCT的基函数是偶对称的数据序列,避免了子图像边界处的跳跃和不连续现象。因此,在图像编码的应用中往往都选择二维DCT作为变换矩阵。在历年来颁布的一系列视频压缩编码的国际标准中,都把基于块的DCT变换作为其中的一个基本处理模块。

采用DCT变换的图像压缩编码基本框图如图1.4所示。根据DCT系数集中在低频区域、越是高频区域系数值越小的特点,以及人眼的视觉特性,通过设置不同的视觉阈值或量化电平,将许多能量较小的高频分量量化为0,可以增加变换系数中0的个数,同时保留能量较大的系数分量。对量化后的系数还可以再进行变长编码,从而获得进一步的压缩。

img

图1.4 变换压缩编码基本框图

3.整数变换

整数变换(Integer Transform)的原理、过程和DCT变换基本相似,但不是实数运算,而是整数运算,其变换单位通常是4×4块(或8×8块)。这种方法的优点在于:在编码器和解码器中允许精度相同的变换和反变换,便于使用简单的定点运算方式,避免了计算机中常有的“取整误差”和“反变换误差”。

基本编码过程是将二维整数变换分解为两次一维整数变换,即先完成4行一维整数变换,再完成4列一维整数变换。设 a b c d 是4个变换点的输入像素值, A B C D 是对应的4个变换系数,则 a b c d 的一维整数变换的正变换公式为

img

(1.5)

一维整数变换的反变换公式为

img

(1.6)

式中, a ′、 b ′、 c ′、 d ′表示恢复系数, a ′=676 a a b ′、 c ′、 d ′也是如此,这是因为变换和反变换公式没有进行尺度归一化。为了简化操作、减少计算量,尺度归一化可以结合到量化过程中进行。在变换域系数分布方面,整数变换与DCT变换类似,二维整数变换后4×4块左上角的值为DC系数,其余15个为AC系数。 Pm5JaOGMFWcRysRYeArnI+ng6IdjVue3DVzRfaxO5wPAJ80QBoAE92OwhID9HnWI

点击中间区域
呼出菜单
上一章
目录
下一章
×