139144150159159161162162
144151155161160161162162149153160162161161161161153156163160162161163161155159158160162160162163155156156159155157157158155156156159155157157158155156156159155157157158图3.17 原图象数据
11162231313334341023273332333434212532343333333325283532343335332731303234323435272828312729293027282831272929302728283127292930图3.18 电平移动后的数据
再经过DCT变换后得图3.19所示DCT系数,由图3.19可见,直流系数最大,低
235.6-22.6-10.9-7.1-0.61.8-1.3-2.6-1.0-17.5-9.3-1.9-0.8-0.2-0.41.6-12.1-6.2-1.60.21.51.6-0.3-3.8-5.2-3.21.51.51.6-0.3-1.5-1.82.1-2.90.20.9-0.10.4-0.51.9-1.7-0.10.9-0.1-0.71.51.71.2-2.70.4-0.60.00.61.01.1-0.61.3-1.2-0.10.31.3-1.0-0.8-0.4图3.19 DCT数据
频系数其次,高频系数最小。用亮度量化表,除图3.19中的DCT系数后,得图3.20所示的量化后DCT系数。图中全部整数而且有许多零。采用之字形扫描,将这些
15-2-1000000-1-100000-100000000000000000000000000000000000000000000000图3.20 量化后的DCT系数
数据排列后得到如下结果。
(15 0 -2 -1 -1 -1 0 0 -1 EOB)
对此数据进行中间熵编码。首先采用公式DC差分值 =DCi-DCi?1,这里DCi=15,假设DCi?1 = 12,则DC差分值 = 3。对于第一方块i?1时,由于令DC0?0,查表3.4,可知DC差分值 = 3时的位数为2,因而DC差分值中间编码中的符号1 为(2)。符号2 为(3),即DC差分值中间熵编码为(2)(3)。下一步对AC系数进行行程编码。第一个数组为0, -2。查AC系数位数表3.5,系数-2的位数长为 2,故得符号1、符号2 为(1, 2)(-2)。以此类推可得全部行程编码如下所示:
(2)(3),(1,2)(-2),(0,1)(-1),(0,1)(-1),(0,1)(-1),(2,1)(-1),(0,0)
(3-37)
下一步为可变长度熵编码,首先对DC系数的一对符号(2)(3)编码。由亮度DC差分系数表3.6查得位长(2)得011,再查幅值表3.10,得幅值(3)的码为 11,因此由符号(2)(3)得码字为01111。下一对符号为(1,2)(-2),用亮度AC系数表3.8查(1,2)的码为11011。再由幅值表3.10 查幅值(-2)的码为 01。因此由符号(1,2)(-2)的编码为1101101,第三对符号为(0,1)(-1),由表3.8查 (0,1)的码为00,由表3.10查 (-1)的码为0,因此符号(0,1)(-1)的编码为000,按此步骤进行下去,直到最后符号(0,0),可在表3.8中查得为1010。由此可得全部编码序列如下:
0111 1101101 000 000 000 1110001 1010 (3-38)
上述总位数为31位,代表8×8=64象素的子图象信息。为了表示压缩程度,可以用象素位率来表示,即平均每个象素占用多少比特来度量。对本例8×8子图象的象素位率计算如下:
象素位率 = 总位数/象素数 = 31/64 = 0.5比特/象素 ( bit/pixel)
(3-39) 如果不进行编码压缩,每个象素需要用8bit(=1byte)来代表。即象素位率 = 8比特/象素。为了表示压缩程度,我们定义压缩比CR
CR?压缩前象素位率/压缩后象素位率 ?压缩前的总位数/压缩后的总位数
8??8?8?8/31?16.5(3-40) 31/64上述公式(3-38)所示的31位编码值,按顺序传输到解码器。进行解码。解码过程是编码过程的逆过程。解码器对接收到码流进行识别。我们知道(解码器和编码器具有相同的
码表),根据码流的格式,首先进入的码流的前几位代表DC差分值,根据DC差分值码表3.6,发现只有输入码的前三位011可识别,代表对应位长(2),即应取011后面的2位11代表DC差分值的幅值。查表3.10得幅值为3。即DC差分值 =DCi-DCi?1DCi= DCi?1 + 3。编码时我们假定DCi?1=12,因此DCi=15。这样我们已从公式(3-38)所示的码流中识别出前五位。从码流的第六位开始后面若干位代表亮度系数。根据表3.8,查得只有码流中11011能对应符号1为(1,2),这表示有一个零,零后位长为2,所以取后面2位,为01,再查表3.10,其01码对应幅值为-2,由此得第二数组为0,-2,以此类推,可得全部亮度系数。和图3.19的数据完全相同。由此也可看出熵编码是无损编码。
下一步是去量化,即量化表乘熵解码后所得的图3.20数据,得图3.21的数据,再经过二维离散余弦逆变换IDCT和电平移动(+128),则可得到解码后的子图象,如图3.22。
图3.21 去量化后的DCT系数
240-24-14000000-12-1300000-1000000000000000000000000000000000000000000000000144148155160163163160158146150156161163164161159149152157164164164162161152154158161162162162161154156158161162162162162156156157159160160161161156156156157158158159159图3.22 解码后图象数据
比较解码后图象3.21与原图象3.16可见,最大差值为5,即最大误差为3.6%,此误差人眼很难察觉,故此压缩和去压缩都是成功的。
JPEG标准中以DCT为基础的编码过程,实际上是在消除图象中的相关性,或者说消除图象中的冗余度,这种冗余度包括下列三种。
第一种是编码冗余度。例如,DCT变换,哈夫曼编码,是消除编码冗余度。
第二种是象素间冗余度。例如,直流系数用差分编码就是消除相邻子图象间的灰度(或亮度)冗余度。
第三种是心理视觉冗余度。例如,用量化过程,就是利用人眼对各种空间频率,包括亮度、色度、纵、横方向的高频、低频的敏感程度不同,从而降低和消除一部分数据,达到数据压缩的目的,或降低传输位率,同时又不损害心理视觉对图象的主观评价。这就是充分利用心理视觉冗余度对图象数据进行压缩。
②步骤:
彩色空间变换,DCT,量化,熵编码 框图:
具体见PPt chap3-3 原理部分是: 21~31
例子部分:35~39
③
51. 请列举你所知道的算术编码的应用。
① 图像数据压缩标准如JPEG,JBIG。
②基于抗差错算术编码的不等差错保护图像传输方法。 ③利用算术编码实现数据加密。
52. 图像压缩中为什么要用Z行扫描?
量化后的系数要重新编排,目的是为了增加连续的“0” 系数的个数,就是“0”的游程长度,方法是按照Z字形的式样编排。这样就把一个8×8的矩阵变成一个1×64的矢量,频率较低的系数放在矢量的顶部。
第4章
53. 简述CD-DA、HDCD、SACD的区别。
CD-DA:把声音信号记录到以塑料为基片的金属圆盘上。CD-DA存放数字化的音乐节目 HDCD:在普通CD上添加一些信息提高声音的质量
SACD:SACD是一种两层混合碟片,一层保留了传统的 “红皮书” 标准,;另一层是高密度层,碟片在SACD播放器上播放,能提供2声道(立体声)和多声道(6声道或环绕声),频率响应从DC到100kHz,而动态范围大于120dB。高密度层也可用来储存文本、图片和视频信息在播放时重现多媒体的形式。DSD (Direct Stream Digital) 直接流数字技术。除了音质方面的改善外,SACD也提供了一种有效的版权管理方式,其版权识别方式是有一种可见的和一种不可见的数字式水印同时存在。
③ SACD CD HDCD
频宽 2Hz-100KHz 5Hz-20KHz 2hz-20khz 信噪比 120分贝 96分贝 110分贝
编码技术 1比特DSD 16比特PCM 20bit PCM