多媒体数据压缩(6)

2020-02-20 23:12

行的帧首表示帧首信息,包含所选方法(如DCT方法等),取样精度,量化位数,原图象行数,每行取样数,各分量图象尺寸比例,各分量图象排队次序和分别选用何种量化表等。扫描1表示扫描数据1,由图中第三行阐述。DNL段用于重新定义帧内的行数和行号。凡框内带方括号的内容均为任选。所以在此帧内最少包含2个数组内容,即帧首和扫描1。

(3) 图3.16中第三行的扫描首(Scan Header)包含扫描起始信息,分量图象号码,该分量图象的参数,熵编码表选择内容,ECS0 (Entropy Coded Segment)表示第0段熵编码,由第四行说明。RST0 (Restart Marker) 为重新开始的标记,可以在熵编码段之间插入。但最多插入8个,按0至7标号。

(4) 图3.16中第四行用于说明初始和结束的熵编码段。各编码段内包含若干个最小编码单元MCU,各MCU内有一组按次序排列的分量图象数据,即压缩后的数据,或称熵编码数据。

JPEG的解码过程,正好与编码过程相反,恕不赘述。 下面举一个JPEG编码实例。

为了加深对JPEG编码的理解,我们以实际数据说明JPEG编码过程。

我们从真实亮度图象中取一个子图象,它是 8×8 象素方块,各象素用 8位量化,得图3.17 所示数据,或称原图象取样数据。由图可见各数据相差不大,说明低空间频率占优势。另外图中各数据值均较大,说明平均亮度较高,直流系数较大。为降低传输位率,现采用向下电平移位,即对各数据均减去均值128,得图3.18。

139144150159159161162162

图3.17 原图象数据

144151155161160161162162149153160162161161161161153156163160162161163161155159158160162160162163155156156159155157157158155156156159155157157158155156156159155157157158 326

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)

327

对此数据进行中间熵编码。首先采用公式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?1 DCi= 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的数据完全相同。由此也可看出熵编码是无损编码。

328

下一步是去量化,即量化表乘熵解码后所得的图3.20数据,得图3.21的数据,再经过二维离散余弦逆变换IDCT和电平移动(+128),则可得到解码后的子图象,如图3.22。

240-24-14000000-12-1300000-1000000000000000000000000000000000000000000000000图3.21 去量化后的DCT系数

144148155160163163160158146150156161163164161159149152157164164164162161152154158161162162162161154156158161162162162162156156157159160160161161156156156157158158159159图3.22 解码后图象数据

比较解码后图象3.21与原图象3.16可见,最大差值为5,即最大误差为3.6%,此误差人眼很难察觉,故此压缩和去压缩都是成功的。

以上例子进一步看出,JPEG标准中以DCT为基础的编码过程,实际上是在消除图象中的相关性,或者说消除图象中的冗余度,这种冗余度包括下列三种。 第一种是编码冗余度。例如,DCT变换,哈夫曼编码,是消除编码冗余度。 第二种是象素间冗余度。例如,直流系数用差分编码就是消除相邻子图象间的灰度(或亮度)冗余度。

第三种是心理视觉冗余度。例如,用量化过程,就是利用人眼对各种空间频率,包括亮度、色度、纵、横方向的高频、低频的敏感程度不同,从而降低和消除一部分数据,达到数据压缩的目的,或降低传输位率,同时又不损害心理视觉对图象的主观评价。这就是充分利用心理视觉冗余度对图象数据进行压缩。

329


多媒体数据压缩(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:噶米新编实验五 机械运动创新设计方案拼装

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: