第6章图像压缩编码_第1页
第6章图像压缩编码_第2页
第6章图像压缩编码_第3页
第6章图像压缩编码_第4页
第6章图像压缩编码_第5页
已阅读5页,还剩133页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字图像处理数字图像处理(Digital Image ProcessingDigital Image Processing)第五章 图像压缩编码v5.1 图像压缩编码的理论基础v 5.1.1图像压缩编码的理论基础v 5.1.2 图像压缩编码的分类 v5.2 无失真编码v 5.2.1 行程编码v 5.2.2 LZW编码v 5.2.3 哈夫曼编码v 5.2.4 算术编码v5.3 预测编码v 5.2.1 线性预测v 5.3.2 量化器v 5.3.3 帧间预测编码v5.4 变换编码v 5.4.1变换方式和子图像块的大小v 5.4.2 系数选择和比特分配v5.5 编码方式的进展v5.5.1 子带编码v

2、5.5.2 分形编码v5.5.3 模型编码v5.5.4 神经网络编码v5.6 图像压缩标准简介v5.6.1 二值图像压缩标准v5.6.2 静止图像压缩标准v5.6.3 运动图像压缩标准5.1 图像压缩编码的理论基础v 5.1.1图像压缩编码的理论基础v 5.1.2 图像压缩编码的分类 5.1.1 图像压缩编码的理论基础v1.图像压缩的基本概念 设:n1和n2是在两个表达相同信息的数据集中,所携 带的单位信息量。压缩率(压缩比):描述压缩算法性能CR = n1 / n2其中,n1是压缩前的数据量,n2是压缩后的数据量.相对数据冗余:RD = 1 1/CR 例:CR=20; RD = 19/20v

3、三种数据冗余:编码冗余;像素冗余;视觉心理冗余。1) 编码冗余:如果一个图像的灰度级编码,使用了多于实际需要的编码符号,就称该图像包含了编码冗余。v例:如果用8位表示该图像的像素,我们就说该图像存在着编码冗,因为该图像的像素只有两个灰度,用一位即可表示。2) 像素冗余: 由于任何给定的像素值,原理上都可以通过它的邻居预测到,单个像素携带的信息相对是小的。对于一个图像,很多单个像素对视觉的贡献是冗余的。这是建立在对邻居值预测的基础上。例:原图像数据:234 223 231 238 235 压缩后数据:234 11 -8 -7 33)视觉心理冗余: 一些信息在一般视觉处理中比其它信息的相对重要程度

4、要小,这种信息就被称为视觉心理冗余。33K15Kv2.图像压缩模型1) 图像传输环境中图像压缩模型v其中,源数据编码:完成原数据的压缩。通 道 编 码:为了抗干扰,增加一些容错、校验位、版权保护,实际上是增加冗余。通 道:如Internet、广播、通讯、可移动介质。源数据源数据编码编码源数据源数据解码解码v2) 源数据编码与解码的模型源数据编码的模型源数据解码的模型符号符号解码器解码器反向反向映射器映射器映射器映射器量化器量化器符号符号编码器编码器v源数据编码与解码的模型中,映射器 :减少像素冗余,如使用RLE编 码。或进行图像变换。量化器 :减少视觉心理冗余,仅用于有 损压缩。符号编码器:减

5、少编码冗余,如使用哈夫曼 编码v3.保真度标准评价压缩算法的标准1)客观保真度标准2)主观保真度标准1) 客观保真度标准 如果图像压缩过程对图像信息有所损失,能够表示为原始输入图像与压缩后又解压缩输出的图像的函数,这个函数就被称为客观保真度标准。一般表示为: e(x,y) = f(x,y) - f(x,y) f(x,y)是输入图像, f(x,y) 是压缩后解压缩的图像, e(x,y)是误差函数。v离散的描述形式: 两个图像之间的总误差: M-1 N-1 f(x,y) - f(x,y) x=0 y=0均方根误差(rms) M-1 N-1 erms = 1/MN f(x,y) - f(x,y)21

6、/2 x=0 y=02)主观保真度标准 通过视觉比较两个图像,给出一个定性的评价,如很粗、粗、稍粗、相同、稍好、较好、很好,这种评价被称为主观保真度标准。1) 优秀的具有极高质量的图像;2)好的是可供观赏的高质量的图像,干扰并不令人讨厌;3)可通过的图像质量可以接受,干扰不讨厌;4) 边缘的图像质量较低,希望能加以改善, 干扰有些讨厌;5) 劣等的图像质量很差,尚能观看, 干扰显著地令人讨厌;6)不能用图像质量非常之差,无法观看。 主观保真度准则 妨害准则如下五级: 1)没有妨害感觉; 2)有妨害,但不讨厌; 3)能感到妨害,但没有于扰; 4)妨害严重,并有明显干扰; 5)不能接收信息。 品质

7、准则如下七级: 1)非常好; 2)好; 3)稍好; 4)普通; 5) 稍坏; 6)恶劣; 7) 非常恶劣。 5.1.2 图像压缩编码的分类 图像压缩编码限失真编码无失真编码行程编码LZW编码哈夫曼编码算术编码无损预测编码位平面编码有损预测编码分形编码模型编码子带编码神经网络编码变换编码K.L变换Haar变换Walsh.Hadamard变换离散余弦变换离散傅立叶变换斜变换小波变换5.2 无失真编码v 5.2.1 行程编码v 5.2.2 LZW编码v 5.2.3 哈夫曼编码v 5.2.4 算术编码vRLE 编码Run Length Encoding( *.PCX )概念:v行程:具有相同灰度值的像

8、素序列。编码思想:v去除像素冗余。v用行程的灰度和行程的长度代替行程本身。例:设重复次数为 iC, 重复像素值为 iP编码为:iCiP iCiP iCiP 编码前:aaaaaaabbbbbbcccccccc 编码后:7a6b8c5.2.1 行程编码(RLE)v分析:v对于有大面积色块的图像,压缩效果很好v对于纷杂的图像,压缩效果不好,最坏情况下,会加倍图像v例子:PCX_RLE(1)PCX简介:真彩色图像以行为单位,按色面存放128字节的文件头字节的文件头图像数据图像数据调色板调色板(2) PCX_RLE编码原则:1) 图像数据以字节为单位进行编码.2) 按行进行压缩.3) 长度在前,灰度值在

9、后.4) 单像素没有长度值.5) 以最高两位作为判断是重复数还是原像素。最高两位为1,说明是重复数,否则,说明是原像素值.6) 重复像素长度iC最大值为26-1 = 63,如果遇到iC大于63的情况,则分为小于63的几段,分别处理。7) 如果遇到不重复的单个像素P:如果P 0 xC0(192) 直接存入该像素值,否则先存入长度1,再存入像素值(注: 192-255之间的单像素图像不减反增 192-255之间,64个数高两位为11)5.2.2 LZW编码vLZW编码背景:是Lemple、Ziv提出,Welch充实.基本思想:去除像素冗余。(1) 在压缩过程中动态地形成一个字符序列表(字典)(2)

10、 (a) 每当压缩扫描图像发现一个字典中没有的字符 序列,就把该字符序列存到字典中;(b) 并用字典的地址(编码)作为这个字符序列的代码,替换原图像中的字符序列;(c) 下次再碰到相同的字符序列,就用字典的地址代替字符序列(3) 压缩的结果,除了压缩图像外,不需要保留压缩过程中形成的字典,而在解压缩时,临时恢复这个字典。vLZW编码的问题:v字符序列的长度如何确定?v字典的长度如何确定?v字典满了怎么办?v如何查字典?v字典中字符序列的长度:字典中字符串的长度可能会很长,由于每一个字符串,都是表中一个已经存在的字符串加上一个字符组成,所以可以把字符串以 + 这样字典元素的长度统一为12+8,2

11、0位。v字典的长度: 对于以字节(8位)为压缩单元,如ASCII码,字典的长度为212 = 4096,索引的长度为12位,字典的前256个保存单个字符,剩下的3840个的分配给压缩过程中出现的字符串。v字典满了的解决办法: 在字典满了以后(新字符串超过4096),输出一个清除字典的标记 LZW_CLEAR,清空字典,开始新的编码。v查表的方法:可通过Hashing函数(散列、杂凑)的方法来减少查表的次数。v输出编码的时机:发现新串时,输出前一个串的编码vLZW编码例子:GIF和TIFF都使用LZW压缩法。下面以GIF为例进行介绍:1)GIF简介(多图像、256色)文件结构:文件头信息:标识(G

12、IF)、版本号屏幕描述 :屏幕长、宽、背景色等全局调色板:长度(256x3)/三个256色的调色板 图像描述 :描述图像块在屏幕上的左上角位置及宽高/可以有多个局部调色板: 长度(256x3)/三个256色的调色板,每个图像可有一个图像数 据 :用LZW方式压缩,用256字节的块来存放扩充块描述:有四种扩充块文件结尾 :字符“;”文件头信息文件头信息LZW压缩图像数据压缩图像数据全局调色板全局调色板屏幕描述屏幕描述图像描述图像描述局部调色板局部调色板扩充数据块扩充数据块初始化字典初始化字典输出清除标记输出清除标记 LZW_CLEARLZW_CLEARTemp = 空串空串k = 从输入流中读一

13、个字符从输入流中读一个字符是结尾标志吗?是结尾标志吗?把新串把新串Temp+k加到字典中加到字典中Temp = k输出结束标记输出结束标记Temp+k在字典中吗?在字典中吗?是是Temp = Temp+k是是编码举例:设字符集a,b,c,d, 串:aabdaadaa 压缩字典临时串 输入串编码 0a T=temp + a 1b T= a + a 0 2c T= a + b 00 3d T= b + d 001 4aa T= d + a 0013 5ab T= a + a 6bd T= aa + d 00134 7da T= d + a 8aad T= da + a 001347 9daa T=

14、 a 0013470 5.2.3 哈夫曼编码v(1) 基本思想通过减少编码冗余来达到压缩的目的。基本思想是统计一下符号的出现概率;建立一个概率统计表,将最常出现(概率大的)的符号用最短的编码,最少出现的符号用最长的编码。v(2)例子:建立概率统计表和编码树符号 概率 1 2 3 4 a2 0.4 0.4 0.4 0.4 0.6 a6 0.3 0.3 0.3 0.3 0.4 a1 0.1 0.1 0.2 0.3 a4 0.1 0.1 0.1 a3 0.06 0.1 a5 0.04 例子的编码过程:符号 概率 编码 1 2 3 4a20.4 1 0.4 1 0.4 1 0.4 1 0.6 0a60

15、.3 00 0.3 00 0.3 00 0.3 00 0.4 1a10.1 011 0.1 011 0.2 010 0.3 01a40.1 0100 0.1 0100 0.1 011 a30.06 01010 0.1 0101 a50.04 01011v 解码过程: 01010 011 1 1 00 a3 a1 a2 a2 a6v(3)算法实现v第一步:建立一系列的原数据缩减量通过对符号的概率排序,把最小概率的符号组成一个符号,以便在下一个原数据缩减量中替换它们。v第二步:给每一个缩减的原始数据编码从最少的原数据开始,向后进行到起始原数据。静态编码:在压缩之前就建立好一个概率统计表和编码树。算

16、法速度快,但压缩效果不是最好;动态编码:对每一个图像,临时建立概率统计表和编码树。算法速度慢,但压缩效果最好。5.2.4 算术编码v算术编码中,信源符号与码字之间不存在一一对应的关系。一个码字不是赋给某个信源符号,而是赋给整个消息序列。这个码字本身定义一个介于0和1之间的实数区间,该区间中的任何一个实数就代表要编码的消息序列。当消息中的符号数目增加时,用于描述消息的间隔变得更小,而表示间隔所需要的信息单元(如编码位数)变得更多了。例如:信源符号概率初始子区间a10.20.0,0.2)a20.20.2,0.4)a30.40.4,0.8)a40.20.8,1.0)编码序列a2 a3 a1 a3 a

17、41 0.4 0.36 0.296 0.2928a4 a4 a4 a4 a4a3 a3 a3 a3 a3a2 a2 a2 a2 a2a1 a1 a1 a1 a10 0.2 0.28 0.28 0.2864算术编码过程几种编码比较输入S1S2S3S4S5S6 rCH(s)概率0.40.30.10.10.060.04霍夫曼码100011010001010010112.20.9750.0251.362.14B1码C0C1C0C0C0C1C1C0C1C12.60.8250.211.152.14S2码0001101100110111102.40.8950.1151.252.14自然码0000010100

18、1110010130.7130.40212.14L5.3 预测编码v 5.2.1 线性预测v 5.3.2 量化器v 5.3.3 帧间预测编码v1.编码思想1) 去除像素冗余。2) 认为相邻像素的信息有冗余。当前像素值可以用以前的像素值来获得。3) 用当前像素值fn ,通过预测器得到一个预测值 fn,对当前值和预测值求差,对差编码,作为压缩数据流中的下一个元素。由于差比原数据要小,因而编码要小,可用变长编码。大多数情况下, fn的预测是通过m个以前像素的线性组合来生成的5.2.1 线性预测即: m fn = roundifn-i i=1在一维线性(行预测)预测编码中,预测器为: m fn(x,y

19、) = roundif(x, y-i) i=1round为取最近整数, i为预测系数(可为1/m),y是行变量。4) 前m个像素不能用此法编码,可用哈夫曼编码举例: m fn = roundifn-i i=1F = 154,159,151,149,139,121,112,109,129m = 2 = 1/2预测值 f2 = 1/2 * (154 + 159) 156 e2 = 151 - 156 = -5 f3 = 1/2 * (159 + 151) = 155 e3 = 149 155 = -6 f4 = 1/2 * (151 + 149) = 150 e4 = 139 150 = -11

20、f5 = 1/2 * (149 + 139) = 144 e5 = 121 144 = -23 f6 = 1/2 * (139 + 121) = 130 e6 = 112 130 = -18 f7 = 1/2 * (121 + 112) 116 e6 = 109 116 = -7 f8 = 1/2 * (112 + 109) 110 e6 = 129 110 = 19+ -符号符号编码编码压缩图像输入图像enfn fn量化器量化器n预测器预测器预测编码器+ +符号符号解码解码预测器预测器解压缩图像压缩图像 fn fnn预测解码器符号符号编码编码压缩图像+ -en输入图像fn量化器量化器n预测器

21、预测器 fn+ + fn fn = n + fn修正后的预测编码器v3.预测编码/解码步骤:v编码步骤v第一步:压缩头处理v第二步:对每一个符号:f(x,y),由前面的值,通过预测器,求出预测值f(x,y)v第三步:求出预测误差 e(x,y) = f(x,y) - f(x,y)v第四步:对误差e(x,y)编码,作为压缩值。v重复二、三、四步v编码步骤v第一步:对头解压缩v第二步:对每一个预测误差的编码解码,得到预 测误差 e(x,y)。v第三步:由前面的值,得到预测值f(x,y)。v第四步:误差e(x,y),与预测值f(x,y)相加,得到解码f(x,y)。v重复二、三、四步5.3.2 量化器v

22、1.量化器基本思想:减少数据量的最简单的办法是将图像量化成较少的灰度级,通过减少图像的灰度级来实现图像的压缩。这种量化是不可逆的,因而解码时图像有损失。如果输入是256 个灰度级,对灰度级量化后输出,只剩下4个层次,数据量被大大减少。sts1s2s3t1t2t3v2.量化器的定义阶梯形量化函数t = q(s),是一个s的奇函数(即q(-s) = -q(s)),它可以通过L/2、si和ti来完全描述,从而定义了一个量化器。si 被称为量化器的决策级(阈值); ti 被称为量化器的重构级(代表级)。 L是量化器的级数。由于习惯的原因,si被认为是映射到ti,如果它在半开区间(si,si+1。DM(

23、Delta modulation) 量化器+6.5-6.5ee粒状噪音粒状噪音溢出过载溢出过载inputs1s2S(L/2)-1outputstt1t2t(L/2)-t(L/2)S-(L/2)-1t = q(s)决策级(阈值)重构级(代表级)量化的对象可能是负数3.最优量化器 1) 预测器误差模型预测误差的概率密度函数一般来说在0点是高尖的,且具有变化范围较小的特征0100-100105 事实上预测误差的密度函数,经常是通过0平均无关拉普拉斯pdf(概率密度函数)来模型化.p(e) =1/ 2 eexp(- 2|e| / e) 其中: e是输入值误差e的标准方差v2)最优Lloyd_Max量化

24、器量化器q的设计目标是: 如何使由于量化所引起的图像损失达到最小量化器q的设计问题是: 对于特定的优化标准,及输入概率密度函数p(s)(直方图),选择最好的决策级si和重构级ti,或量化函数,使均方误差E(s ti)2 达到最小Lloyd_Max量化器定义1)要达到最小误差的条件有两个:a)每个决策级si正好落在两个相邻重构级ti 、ti+1的中点。 0 i = 0si = (ti + ti+1) / 2 i = 1,2,.,L/2 1 i = L/2且si = si t-i = ti (q为奇函数)inputs1s2=6S(L/2)-1outputstt1t2=4t(L/2)-t(L/2)S

25、-(L/2)-1t = q(s)t3 =8 b)每个重构级 ti 落在两个相继决策级si区间的 p(s)(概率密度函数)的质心上。si (s-ti)p(s)ds = 0 i = 1,2,.,L/2si-12)以上两个条件构成一个方程组,必须通过迭代才 能求解决策级si和重构级ti。 3)对于任何满足两个最小误差条件有的L、si和ti,在均方误差意义上是最优的,相应的量化器被称为:L级 Lloyd_Max量化器 4)由于对于多数p(s),得到一个符合最优量化两个条件的解是困难的,因此这些解可通过数字来产生。 拉普拉斯单位变量概率密度函数的Lioyd_Max量化器量化级 2 2 4 4 8 8 i

26、 si ti si ti si ti 1 0.707 1.102 0.395 0.504 0.222 2 1.810 1.181 0.785 3 2.285 1.576 4 2.994 1.414 1.087 0.731 上表给出了三种量化器,分别提供了1、2、3位/象素的 固定编码输出率 实际的重构级ti和决策级si是通过把列表中的值, 与所考虑的概率密度函数的标准方差 e相乘来获得的 表的最后一行列出了步长的尺寸,它同时满足达到最小误差的两个条件,且满足附加的约束条件:ti ti-1 = si si-1 = v2级的Lioyd_Max量化器v用1位2进制数编码t1= 0.707 e - t

27、1 = -0.707 e stv4级的Lioyd_Max量化器v用2位二进制编码inputs1= 1.102 e outputstt1 = 0.395 e t2 = 1.810 e -t2v8级的Lioyd_Max量化器v用3位二进制编码inputs1s2S3outputstt1t2t4-t3S-3t = q(s)t35.3.3 帧间预测编码5.4 变换编码v 5.4.1变换方式和子图像块的大小v 5.4.2 系数选择和比特分配5.4.1 变换方式和子图像块的大小v变换编码的基本思想v变换编码的基本理论变换编码的基本原理变换系数截取模板函数误差评估v实现变换压缩算法的主要问题变换的选择子图尺寸

28、的选择压缩的位分配v1.变换编码的基本思想(1)用一个可逆的、线性的变换(如傅立叶变换),把图像映射到变换系数集合;(2)然后对该系数集合进行量化和编码;(3)对于大多数自然图像,重要系数的数量是比较少的,因而可以用量化(或完全抛弃),且仅以较小的图像失真为代价。v举例v 原始图像相应的DCT系数52 55 61 66 70 61 64 7363 59 66 90 109 85 69 7262 59 68 113 144 104 66 7363 58 71 122 154 106 70 6967 61 68 104 126 88 68 7079 65 60 70 77 68 58 7585 7

29、1 64 59 55 61 65 8387 79 69 68 65 76 78 94-415 -29 -6225 55 -20 -1 3 7 -21 -629 11 -7 -6 6-46 8 77 -25 -30 10 7 -5-50 13 35 -15 -9 6 0 3 11 -8 -13 -2 -1 1 -4 1-10 1 3 -3 -1 0 2 -1-4 -1 2 -1 2 -3 1 -2-1 -1 -1 -2 -1-1 0 -1v编码器、解码器结构输入图像NxN压缩图像压缩的图像解压图像v构造nxn的子图NxNnxnnxnnxnnxnnxnnxnv2.变换编码的基本理论1) 变换编码的

30、基本原理v将傅立叶逆变换表达式进行改写: N-1 N-1 f(x,y) = F(u,v)expj2 (ux+vy) /N u=0 v=0F(u,v) 改为 : T(u,v)expj2 ( (ux+vy)/n改为 : h(x,y,u,v) n-1 n-1 有: f(x,y) = T(u,v)h(x,y,u,v) u=0 v=0变换压缩的基本思想,就是要用等式的右部近似原图像2) 变换编码的基本原理进一步改写 n-1 n-1 F = T(u,v)Huv u=0 v=0其中:1) F是一个包含了f(x,y)的象素的nxn的矩阵;2) Huv的值只依赖坐标变量x,y,u,v与T(u,v)和f(x,y)

31、 的值无关。被称为基图像。可以在变换前一次 生成。对每一个 nxn的子图变换都可以使用。v3) 基图像H h(0,0,u,v) h(0,1,u,v) h(0,n-1,u,v) h(1,0,u,v) h(1,1,u,v) h(1,n-1,u,v) Huv = h(n-1,0,u,v) h(n-1,1,u,v) h(n-1,n-1,u,v)v4)变换系数截取模板函数通过定义变换系数截取模板函数,消去冗余 0 如果T(u,v)满足一个特定的截断标准m(u,v) = 1 否则 n-1 n-1对于: F = T(u,v)Huv u=0 v=01 1 1 1 0 0 0 01 1 1 1 0 0 0 01

32、 1 1 0 0 0 0 01 1 0 0 0 0 0 01 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0v5) 变换系数截取模板函数 对于u,v = 0,1,n-1,F的一个近似,可以从截断表达式获得: n-1 n-1 F = T(u,v)m(u,v)Huv u=0 v=0 其中m(u,v)被构造,用来消去对等式的总合贡献最小的基本图像。6)误差评估: F和近似F之间的均方误差:ems = E|F F|2 n-1 n-1 n-1 n-1= E | T(u,v)Huv - T(u,v)m(u,v)Huv|2 u=0 v=0

33、 u=0 v=0 n-1 n-1 = E | T(u,v)Huv1 - m(u,v)|2 u=0 v=0 n-1 n-1 = 2T(u,v)1 - m(u,v) u=0 v=0 v 其中,|F F|是(F F)的矩阵范数, 2T(u,v)是变换在(u,v)位置上的系数方差。 最后的简化是基于基图像的规范正交,并假设F的像素是通过一个具有0均值和已知协方差的随机处理产生的。因此, 1)总的均方近似误差是丢弃的变换系数的方差之和(也即对于 m(u,v) = 0的系数方差之和)。2)能把大多数信息封装到最少的系数里去的变换,可得到最好的子图像的近似,同时重构误差也最小3)在导致等式成立的假设下,一个

34、NxN的图像的(N/n)2个子图像的均方误差是相同的。因此,NxN图像的均方误差(是平均误差的测量)等于一个子图像的均方误差.v 其中,|F F|是(F F)的矩阵范数, 2T(u,v)是变换在(u,v)位置上的系数方差。 最后的简化是基于基图像的规范正交,并假设F的像素是通过一个具有0均值和已知协方差的随机处理产生的。因此,v3.实现变换压缩算法的主要问题变换的选择子图尺寸的选择压缩的位分配(编码)正向变换正向变换量化器量化器符号符号编码器编码器构造构造nxn的子图的子图输入图像NxN压缩图像v1) 变换的选择A 可以选择的变换a) Karhunen-Loeve变换(KLT)b) 离散傅立叶

35、变换(DFT)c) 离散余弦变换(DCT)d) Walsh-Hadamard变换(WHT)e) 小波变换 B 对变换的评价按信息封装能力排序:KLT,DCT,DFT,WHT,HaarT 但KLT的基图像是数据依赖的,每次都要重新计算Huv。因而很少使用。 DFT的块效应严重。常用的是DCT,已被国际标准采纳,作成芯片。其优点有:a)基本没有块效应 b)信息封装能力强,把最多的信息封装在最少的系数中4.3.3 有损压缩:变换编码v2)子图尺寸的选择子图尺寸的选择要遵循的原则:a) 如果n是子图的维数,n应该是2的整数次方。为便于降低计算复杂度。b) n一般选为8x8或16x16。由实践得到:c)

36、 随着n的增加,块效应相应减少。3.53.02.52.0Fourier1.5 Hadamard1.0 Cosine0.5 0 2x2 4x4 8x8 16x16 32x32均方根误差子图像尺寸5.4.2 系数选择和比特分配压缩位的分配定义:截取、量化、系数编码统称为位分配(比特分配).主要解决m(u,v)的设计、编码问题.截取和量化一般有两种方法:1 子带编码2 阈值编码(适应性编码)1.子带编码v基本思想:所有子图像使用相同的编码模板。(1) 大部分的信息应该包含在最大方差的变换系数中每一个DCT变换系数被认为是一个随机变量该变量的分布可以在所有变换子图像的集合上进行计(2) 在(N/n)2

37、个子图找出取最大方差的m个系数的位置同时确定了系数的坐标u和v对所有子图像,这m个系数的T(u,v)值是保留的,其他的T值被抛弃m是一个可选常数1 1 1 1 1 0 0 01 1 1 1 0 0 0 01 1 1 0 0 0 0 01 1 0 0 0 0 0 01 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0消去87.5%的系数的模板为v最大方差的计算:1)方差本身可以直接由(N/n)2个变换子图像数组的集合计算得到。2)或者基于一个假想的图像模型得到。3)根据最大方差的分布情况得到系数截取模板4)方差最大的地方置1,其

38、它地方置0v算法实现:1)计算模板:方差最大的地方置1,其它地方置02)量化系数:例如最优Lloyd-Max量化器3)结果编码:有两种分配二进制位的编码方法:1系数被赋予相同数量的二进制位2系数之间固定地分配一定的二进制位压缩位的分配系数之间固定地分配一定的二进制位的用位模板8 7 6 4 3 2 1 07 6 5 4 3 2 1 06 5 4 3 3 1 1 04 4 3 3 2 1 0 03 3 3 2 1 1 0 02 2 1 1 1 0 0 01 1 1 0 0 0 0 00 0 0 0 0 0 0 02.阈值编码(适应性编码)v基本思想:没有一个消取系数的固定模板。不同的子图保留不同

39、的系数。通过一个阈值T,来决定一个系数的去留。If a(系数) T(阈值) m(u,v) = 1Else m(u,v) = 0v由于其简单性,阈值编码是实际应用中更常使用的编码方法。v理论根据:1)取值最大的变换系数,在重构子图的质量中起的作用也最重要。2)最大系数的分布随子图的不同而不同。v算法实现思想:a.阈值的选取,常有三种取法。1) 所有子图使用同一个全局阈值。压缩率的大小随图像的不同而不同。由超过全局阈值的系数的个数所决定2) 对每个子图使用不同的阈值。每个子图保留的系数的个数事先确定,即总保留N个最大的。称为N-最大化编码。对于每个子图同样多的系数被丢弃。因此,每个子图的压缩率是相

40、同的,并且是预先知道的。3) 阈值作为子图系数位置的函数。 所有子图使用同一个全局阈值模板,但阈值的取值,与系数的位置相关,阈值模板给出了不同位置上系数的相应阈值。16 11 10 16 24 40 51 6112 12 14 19 26 58 60 5514 13 16 24 40 57 69 5614 17 22 29 51 87 80 6218 22 37 56 68 109 103 7724 35 55 64 81 104 113 9249 64 78 87 103 121 120 10172 92 95 98 112 100 103 991 1 0 1 0 0 0 01 1 1 1

41、0 0 0 01 1 0 0 0 0 0 01 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0b.对系数的编码 1)将系数按45度对角顺序展开成序列,得 到有一个有长串为零的序列。例: -19 -20 5 21 6 0 0 0 0 0 0 0 0 0 2)用RLE编码对上述序列编码。对系数编码的展开顺序为:0 1 5 6 14 15 27 282 4 7 13 16 26 29 423 8 12 17 25 30 41 43 9 11 18 24 31 40 44 5310 19 23 32 3

42、9 45 52 5420 22 33 38 46 51 55 6021 34 37 47 50 56 59 6135 36 48 49 57 58 62 635.6 图像压缩标准简介v5.6.1 二值图像压缩标准v5.6.2 静止图像压缩标准v5.6.3 运动图像压缩标准v制定图像标准的国际组织: ISO(国际标准化组织)CCITT(国际电报电话咨询委员会)联合组织下进行制定的v标准的类型(三类): (1) 二值图像压缩标准:面向传真而设计连续调图像压缩标准:(2) 静止帧黑白、彩色压缩:面向静止的单幅图像(3) 连续帧黑白、彩色压缩:面向连续的视频影像5.6.1 二值图像压缩标准1. 基本思

43、想2. 一维压缩3. 二维压缩4. CCITT Group35. CCITT Group41. 基本思想:v采用行程编码与静态的哈夫曼编码相结合v由于是二值图像,不用为灰度值编码。v只给行程长度编码,且黑和白的长度分别使用不同的编码。v按行压缩vCCITT Group3采用一维编码与二维编码结合vCCITT Group4采用二维编码2. 一维压缩的基本思想:1)每一行行首、尾编码v行首:用一个白行程码开始。如果行首是黑像素,则 用零长度的白00110101开始。v行尾:用行尾编码字(EOL)000000000001结束。2)图像首、尾编码v图像首行:用一个EOL开始。v图像结尾:用连续6个EO

44、L结束。3)图像内部编码v内部编码:长度小于63的用哈夫曼编码,大于63的用组合编码:大于63的长度编码 + 小于63的余长度编码长度小于63的哈夫曼编码行程长度 白编码黑编码000110101000011011110001110102011111310001041011011511000011610011001000000101101062001100110000011001106300110100000001011011长度大于63的组合编码行程长度 白编码黑编码6411011000000111112810010000011001000192010111000011001001256011

45、011100000101101132000110110000000110011384001101110000001101001600010011010000000101101116640110000000001100100172801001101100000011001013. 二维压缩 1) 基本思想:v利用上一行相同改变元素的位置,来为当前行编码v假设相临两行改变元素位置相似的情况很多v且上一行改变元素距当前行改变元素的距离,小于行程的长度,从而可以降低编码长度a0b1b2a1a2参考行当前行2) 定义几个重要符号:参 考 行:当前处理行的前一行。改变元素:与前一个像素值不同的像素参考元素

46、:一共有5个(当前行3个,参考行2个):1.a0:当前处理行上,与前一个像素值不同的像素。 行首元素是本行的第一个a02.a1:a0右边下一个改变元素。3.a2:a1右边下一个改变元素。4.b1:参考行上在a0右边,且与a0值相反的改变元素5.b2: b1右边下一个改变元素。a0b1b2a1a2参考行当前行3) 编码方法:对三种情况的三种编码方式:(1)通过编码方式:v条件:b2在a1的左边,排除参考行两个改变元素都在 a1左边的情况v编码:0001,v动作:把a0移到b2的下面b1b2a1a2a0新a0(2)水平编码方式:v条件:a1到b1之间的距离大于3,放弃利用上一行编码v编码:001+

47、M(a0a1)+M(a1a2) , M:一维行程编码v动作:把a0移到a2。a0b1b2a1a2a1 b1(3)垂直编码方式:条件:a1到b1之间的距离小于等于3,利用上一行编码。编码:见CCITT二维编码表(下页)动作:把a0移到a1a0b1b2a1a2a1b14) CCITT二维编码表a1与b1的距离编码: a1在b1下面:1 a1在b1右边1个001 a1在b1右边2个000011 a1在b1右边3个0000011 a1在b1左边1个010 a1在b1左边2个000010 a1在b1左边3个0000010开始新行开始新行水平方式编码水平方式编码a0置于置于a2a0置于置于b2下下a0置于

48、首像素前置于首像素前检测检测a1 、 b1、b2b2在在a1左边左边a0置于置于a1|b2a1| 3否否垂直方式编码垂直方式编码是是否否通过方式编码通过方式编码是是检测检测a2否否结束编码行结束编码行是是行尾行尾4. CCITTGroup3基本思想: Group3标准应用了一种非适应的,一维和二维混合的行程编码技术; 在该编码中,每一个K行组的最后K-1行(K = 2或4),有选择地用二维编码方式。5. CCITTGroup4基本思想: Group4标准是Group3标准简化或改进版本; 只用二维压缩编码。且为非适应二维编码方法; 每一个新图像的第一行的参考行是一个虚拟的白行。5.6.2 静止

49、图像压缩标准v1. JPEG标准简述v2. JPEG压缩流程v3. JPEG压缩算法的实现颜色变换零偏置转换频域变换系数量化符号编码v4. JPEG压缩举例1. JPEG标准简述有三种压缩系统:(1)基线编码系统:面向大多数有损压缩的应用, 采用DCT变换压缩。(2)扩展编码系统:面向递进式应用,从低分辨 率到高分辨率逐步递进传递的应用(3)独立编码系统:面向无损压缩的应用,采用无损 预测压缩,符号编码采用哈夫曼或算术编码一个产品或系统必须包括对基线系统的支持2. JPEG压缩流程v1) 构造子图像 子图像尺寸:8 x 8v2)颜色空间转换 人眼对亮度更敏感,提取亮度特征,将RGB转换为YCb

50、Cr模型,编码时对亮度采用特殊编码:Y = 0.299R + 0.5870G + 0.1140BCb = 0.1787R 0.3313G +0.5000B +128Cr = 0.5000R 0.4187G 0.0813B + 128颜色解码:R = Y + 1.40200(Cr 128)G = Y 0.34414(Cb 128) 0.71414(Cr 128)B = Y + 1.77200(Cb 128)v3. JPEG压缩算法的实现v)零偏置转换对于灰度级是2n的像素,通过减去2n-1,替换像素本身;对于n=8,即将0255的值域,通过减去128,转换为值域在-128127之间的值;目的:使

51、像素的绝对值出现3位10进制的概率大大减少。 用8x8的JEPG基线标准,压缩并重构下列子图52556166706164736359669010985697262596811314410466736358711221541067069676168104126886870796560707768587585716459556165838779696865767894例子:0偏置转换后-76-73-67-62-58-67-64-55-65-69-62-38-19-43-59-56-66-69-60-1516-24-62-55-65-70-57-626-22-58-59-61-67-60-24-2-

52、40-60-58-49-63-68-58-51-65-70-53-43-57-64-69-73-67-63-45-41-49-59-60-63-52-50-34v)频域变换产生64个系数第一个系数称为直流系数(DC系数)其余的63个系数称为交流系数(AC系数)正向DCT变换(N = 8)后变成-415-29-62 25 55-20-1 3 7-21-62 9 11-7-6 6-46 8 77-25-30 10 7-5-50 13 35-15-9 6 0 3 11-8-13-2-1 1-4 1-10 1 3-3-1 0 2-1-4-1 2-1 2-3 1-2-1-1-1-2-1-1 0-1v)系

53、数量化采用阈值作为子图系数位置函数的量化方式 所有子图使用同一个全局阈值模板,但阈值的取值,与系数的位置相关,阈值模板给出了,不同位置上系数的相应阈值。对于亮度和颜色使用不同的量化阈值模板,并取整1)正向量化:Squv = round(Suv / Quv) 其中: Suv是DCT系数, Quv量化模板系数2)逆向量化:Ruv = Squv Quv例:Sq(0,0) = round-415/16 = round-25.9=-26 Ruv(0,0) = -26 * 16 = -416 亮度的量化模板系数16 111016244051611212141926586055141316244057695

54、61417222951878062182237566810910377243555648110411392496478871031211201017292959811210010399 颜色的量化模板系数17 182447999999991821266699999999242656999999999947669999999999999999999999999999999999999999999999999999999999999999999999999999量化变换后的数组,比例化并消去系数-26-3-6 2 2000 1-2-4 0 0000-3 1 5-1-1000-4 1 2-1 000

55、0 1 0 0 0 0000 0 0 0 0 0000 0 0 0 0 0000 0 0 0 0 0000v)符号编码将量化后的系数,按之字形重新排序成矢量,全零结尾用特殊符号EOB-26 -3 1 -3 -2 -6 2 -4 1 -4 1 1 5 0 2 0 0 -1 2 0 0 0 0 0 -1 -1 EOBDC和AC用不同的方式分别编码DC的编码方式(预测+统计) :编码由两部分组成:区间号编码(SSSS) + 系数预测误差本身编码(VVVV)DC的编码方式(预测+统计)v第一步:求DPCM (差分脉冲调制码),用当前的DC,减去前一个子图的DC VVVV :DIFF = DC PRE_

56、DCv第二步:根据DIFF求出区间号: SSSS 通过DIFF查区间编号表得出区间号SSSS根据SSSS查哈夫曼编码表得出SSSS的哈夫曼编码v第三步:对VVVV编码,正数是自己,负数用补码(求反)DC的编码方式(预测+统计)区间表 范围 DC差区间 AC区间 0 0 N/A -1,1 1 1 -3,-2,2,3 2 2 -7,-4,4,7 3 3 -15,-8,8,15 4 4 -31,-16,16,31 5 5 -63,-32,32,63 6 6DC的编码方式(预测+统计)区间DC哈夫曼编码表区间 编码 长度 区间 编码 长度 0 010 3 6 1110 10 1 011 4 7 111

57、10 12 2 100 5 8 111110 14 3 00 5 9 1111110 16 4 101 7 A 11111110 18 5 110 8 B 111111110 20DC的编码方式(预测+统计)例子:DC = -26PRE_DC = -17 DIFF = -26 - (-17)= -9用-9查区间表得: SSSS = 4用4查哈夫曼编码表得:哈夫曼编码:101 VVVV = -9 二进制编码为: 1001求反: 1001 = 0110 最后的编码为: 101+0110= 1010110 长度为7位v解码时如果VVVV部分首位为0为负数PreDC-17DC-26v符号编码AC的编码方式编码由两部分组成:区间号编码(RRRR/SSSS)+系数本身(VVVV)第一部分: SSSS: 区间号 RRRR:该系数前值为0的系数的个数。第二部分: VVVV:系数本身编码AC的编码方式区间AC哈夫曼编码表行程/区间 编码 长度 行程/区间 编码 长度 0/0 1010(=EOB) 4 0/6 111000 12 0/1 00 3 0/7 1111000 14 0/2 01 4 0/8 1111110110 18 0/3 100 6 0/9 1111111110000010 0/4 1011 8 0/A 1111111110000011 0/5 11010 10 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论