第六章图象数据压缩编码基本内容课件.ppt
,第六章图象数据压缩编码,图像压缩基础 无损压缩 有损压缩 静止图像压缩编码的技术标准JPEG,基本内容,1,谢谢欣赏,2019-9-25,数字图象通常有很大的比特数,这给图象的传输和存储带来相当大的困难。数据的压缩是必不可少的。,图象压缩的必要性,the total byte number is:4605203=700kB,2,谢谢欣赏,2019-9-25,一部90分钟的彩色电影,每秒放映24帧。把它数字化,每帧512512象素,每象素的R、G、B三分量分别占1byte,总比特数为 9060243512512=101922MB 若用一张可存600兆字节数据的CD光盘存储这部电影,光图象(还有声音)就需要170张CD光盘。,图象压缩的必要性,3,谢谢欣赏,2019-9-25,对图象数据进行压缩显得非常必要 本章讨论的问题:在满足一定条件下,能否减小图象比特数,以及用什么样的编码方法使之减少。,图象压缩的必要性,4,谢谢欣赏,2019-9-25,图象压缩是可能的,一般原始图象中存在很大的冗余度,5,谢谢欣赏,2019-9-25,用户通常允许图象失真当信道的分辨率不及原始图象的分辨率时,降低输入的原始图象的分辨率对输出图象分辨率影响不大。用户所关心的图像区域有限,可对其余部分图像采用空间和灰级上的粗化。根据人的视觉特性对不敏感区进行降分辨率编码(视觉冗余)。,6,谢谢欣赏,2019-9-25,图象压缩是可能的,7,谢谢欣赏,2019-9-25,原始图象越有规则,各象素之间的相关性越强,它可能压缩的数据就越多。值得指出的是:当前采用的编码方法得到的结果,离可能压缩的极限还相差很远,这说明图象数据压缩的潜力是很大的,直到目前为止,它还是个正在继续研究的领域。,图象压缩是可能的,8,谢谢欣赏,2019-9-25,6.1 图像压缩基础,图像压缩所解决的问题是尽量减少表示数字图像时需要的数据量。减少数据量的基本原理是除去其中多余的数据。以数学的观点看,这一过程实际上就是将二维像素阵列变换为一个在统计上无关联的数据集合。,9,谢谢欣赏,2019-9-25,图像熵,图像像素灰度级集合为 d1,d2,dm,对应概率为p(d1),p(d2),p(dm),则图像熵定义为,H表示对输入灰度级集合进行编码时所需要的平均位数的下限。di 出现的概率相等时,熵最大。,图像编码压缩名词术语,10,谢谢欣赏,2019-9-25,平均码长,l为灰度级 rk 所对应的码字长度。,11,谢谢欣赏,2019-9-25,编码效率,图像熵与平均码长之比,12,谢谢欣赏,2019-9-25,香农无干扰编码定理,在无干扰条件下,存在一种无失真的编码方法,使编码的平均码长和信源的熵任意接近。,13,谢谢欣赏,2019-9-25,压缩比Ls为源代码长度,Ld为压缩后代码长度,14,谢谢欣赏,2019-9-25,保真度标准,保真度标准评价压缩算法的标准(1)客观保真度标准(2)主观保真度标准,15,谢谢欣赏,2019-9-25,a)输入图和输出图之间的均方根(rms)误差,b)输入图和输出图的均方根信噪比,(1)客观保真度标准,16,谢谢欣赏,2019-9-25,(2)主观保真度标准 通过视觉比较两个图像,给出一个定性的评价,如很粗、粗、稍粗、相同、稍好、较好、很好,这种评价被称为主观保真度标准。,17,谢谢欣赏,2019-9-25,冗余,在数字图像压缩中的三种基本的数据冗余:编码冗余像素间冗余心理视觉冗余,18,谢谢欣赏,2019-9-25,编码冗余,通过图像灰度级直方图可以深入了解编码结构,从而减少表达图像所需的数据量。,例:,19,谢谢欣赏,2019-9-25,由于任何给定的像素值,原理上都可以通过它的邻居预测到,所以单个像素携带的信息相对是小的。为减少图像中的像素间冗余,二维像素阵列必须变换为更有效的形式。,像素间冗余,空间冗余 几何冗余 帧间冗余,例:原图像数据:234 223 231 238 235 压缩后数据:234 11-8-7 3,20,谢谢欣赏,2019-9-25,心理视觉冗余,在正常的视觉处理过程中各种信息的相对重要程度不同,那些不重要的信息称做心理视觉冗余,21,谢谢欣赏,2019-9-25,无损压缩与有损压缩,无损压缩基于统计模型,减少源数据流中的冗余,同时保持信息不变。又称为冗余压缩。典型代表有Huffman 编码,算术编码、游程长度编码等。有损压缩以牺牲部分信息量为代价而换取缩短平均码长的编码压缩方法。在压缩中丢失了部分信息,又称为熵压缩。典型代表有离散余弦变换编码、有损预测编码等。一般地,有损压缩的压缩效率高于无损压缩。,22,谢谢欣赏,2019-9-25,实验二 图像增强 下周二做,地点不变(交邮政编码分割程序),No.13,23,谢谢欣赏,2019-9-25,6.2 无损压缩,在很多应用中,如医疗和商业文档的归档、卫星成像的处理、数字X光照相术,无损压缩时唯一可以接受的数据压缩方式。无损压缩常由两种彼此独立的操作组成:(1)为减少像素间冗余建立一种可替代的图像表达方式;(2)对这种表达方式进行编码以便消除编码冗余。,24,谢谢欣赏,2019-9-25,一、基本原理 通过减少编码冗余来达到压缩的目的。将在图像中出现次数多的像素值给一个短的编码,将出现次数少的像数值给一个长的编码。二、霍夫曼编码是即时码:是唯一可译码,其中任意一个码字都只能与一种信号存在对应关系,而且任意一个码字都不能是其他码字的前缀。,6.2.1 霍夫曼编码(属于统计编码),25,谢谢欣赏,2019-9-25,信号源 a=a1,a2,a3,a4,a5,a6,其概率分布为p1=0.1 p2=0.4 p3=0.06 p4=0.1 p5=0.04 p6=0.3,求最佳Huffman码。,方法:将信源符号按出现概率从大到小排成一列,然后把最末两个符号的概率相加,合成一个概率。,二、Huffman编码举例,26,谢谢欣赏,2019-9-25,Huffman编码,方法:把这个符号的概率与其余符号的概率按从大到小排列,然后再把最末两个符号的概率加起来,合成一个概率。重复上述做法,直到最后剩下两个概率为止。从最后一步剩下的两个概率开始逐步向前进行编码。每步只需对两个分支各赋予一个二进制码,如对概率大的赋予码元0,对概率小的赋予码元1。,27,谢谢欣赏,2019-9-25,建立概率统计表和编码树符号 概率 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,霍夫曼编码举例,28,谢谢欣赏,2019-9-25,编码过程:符号 概率 编码 1 2 3 4a2 0.4 1 0.4 1 0.4 1 0.4 1 0.6 0a6 0.3 00 0.3 00 0.3 00 0.3 00 0.4 1a1 0.1 011 0.1 011 0.2 010 0.3 01a4 0.1 0100 0.1 0100 0.1 011 a3 0.06 01010 0.1 0101 a5 0.04 01011,霍夫曼编码举例,29,谢谢欣赏,2019-9-25,霍夫曼编码,例子:将010100111100解码 解码过程:01010 011 1 1 00 a3 a1 a2 a2 a6,a2 a6 a1 a4 a3 a5 1 00 011 0100 01010 01011,30,谢谢欣赏,2019-9-25,信号源 a=a1,a2,a3,a4,a5,a6,其概率分布为p1=0.1 p2=0.4 p3=0.06 p4=0.1 p5=0.04 p6=0.3,求最佳Huffman码。,a2 a6 a1 a4 a3 a5 1 00 011 0100 01010 01011,编码的平均长度:,其信源的熵为2.14bits/symbol,霍夫曼编码编码效率为0.937,31,谢谢欣赏,2019-9-25,霍夫曼编码,静态编码在压缩之前就建立好一个概率统计表和编码树。算法速度快,但压缩效果不是最好动态编码对每一个图像,临时建立概率统计表和编码树。算法速度慢,但压缩效果最好,32,谢谢欣赏,2019-9-25,霍夫曼编码的特点,编码值不唯一当图像灰度值分布很不均匀时,霍夫曼编码效率高。编码过程要经过-次合并(有个灰度级),较大时,计算量大改进:用亚最优变长码:截断霍夫曼编码,霍夫曼平移编码,33,谢谢欣赏,2019-9-25,6.2.2 算术编码(属于统计编码)(自学),假设某个字符的出现概率为 80%,该字符事实上只需要-log2(0.8)=0.322 个二进制位进行编码,难道真的能只输出 0.322 个 0 或 0.322 个 1 吗?,算术编码的输出是:一个小数,算术编码对整条信息(无论信息有多么长),其输出仅仅是一个数,而且是一个介于0和1之间的二进制小数。例如算术编码对某条信息的输出为1010001111,那么它表示小数0.1010001111,也即十进制数0.64,34,谢谢欣赏,2019-9-25,从整个符号序列出发,采用递推形式连续编码在算术编码中源符号和码字间的一一对应关系并不存在。1个算术码字要赋给整个信源符号序列而码字本身确定0和1之间的1个实数区间随着符号序列中的符号数量增加,用来代表它的区间减小,而表达区间的信息单位数量变大,算术编码的特点,35,谢谢欣赏,2019-9-25,例:来自一个4-符号信源a,b,c,d的由5个符号组成的符号序列:abccd.已P(a)=0.2,P(b)=0.2,P(c)=0.4,P(d)=0.2.,可用0.068来表示整个符号序列,36,谢谢欣赏,2019-9-25,6.2.3 行程编码 RLE(属于统计编码),行程:具有相同灰度值的像素序列。是一种熵编码,广泛应用于各种图象格式的数据压缩处理中,如BMP,TIFF,JPEG。编码思想:用行程的灰度和行程的长度代替行程本身。,例:设重复次数为 iC,重复像素值为 iP 编码为:iCiP iCiP iCiP,编码前:aaaaaaabbbbbbcccccccc 编码后:7a6b8c,37,谢谢欣赏,2019-9-25,RLE比较适合于二值图像的编码,38,谢谢欣赏,2019-9-25,(1)一维行程编码 对图象进行行扫描时,行内各象素的灰度级可组成一个整数序列x1,x2,xN。在行程编码中,我们将这个序列映射成整数对(gk,lk),其中gk表示灰度级,lk表示行程。,行程编码,39,谢谢欣赏,2019-9-25,(2)二维行程编码 一维行程编码只考虑消除每行内象素的相关性,未考虑行间象素的相关性。二维行程编码的基本原理是跟踪各个黑色和白色游程的起始和终结点。,40,谢谢欣赏,2019-9-25,原图象文件:277560字节,行程编码文件:279860字节,压缩比:0.992,41,谢谢欣赏,2019-9-25,原图象文件:66616字节,行程编码文件:9272字节,压缩比:7.185,42,谢谢欣赏,2019-9-25,行程编码,如果图像是由很多块颜色或灰度相同的大面积区域组成的,特别是二值图象,采用行程编码可以达到很高的压缩比。如果图像中的数据非常分散,则行程编码不但不能压缩数据,反而会增加图像文件的大小。为了达到较好的压缩效果,一般不单独采用行程编码,而是和其他编码方法结合使用。,分析:,43,谢谢欣赏,2019-9-25,6.3 有损压缩,有损压缩是以牺牲图像重构的准确度为代价换取压缩能力增加的概念为基础的。如果产生的失真是可以容忍的,则压缩能力上的增加就是有效的。,44,谢谢欣赏,2019-9-25,有损预测编码:直接对像素在图像空间进行操作,称为空域方法。邻近的M个值预测当前值,当前值与预测值之差量化编码,(一维、二维预测等)变换编码:基于图像变换的编码方法,称为频域方法。,45,谢谢欣赏,2019-9-25,预测编码的基本原理 利用已有样本对新样本进行预测,将样本的实际值与其预测值相减得到误差值,再对误差值进行编码。通常误差值比样本值小得多,从而达到数据压缩的效果。,6.3.1 有损预测编码,46,谢谢欣赏,2019-9-25,预测器,可以是固定的,也可以是自适应的;可以是线性的,也可以是非线性的。预测器设计得越好,对输入的数据压缩就越多。,有损预测编码,47,谢谢欣赏,2019-9-25,有损预测编码DPCM(差分脉冲编码调制)系统,量化器,编码器,预测器,压缩图像,输入图像,48,谢谢欣赏,2019-9-25,德尔塔调制最优量化器最佳线性预测器线性自适应预测编码,有损预测编码,49,谢谢欣赏,2019-9-25,一维线性预测,有损预测编码,50,谢谢欣赏,2019-9-25,最佳线性预测 采用均方误差(MSE)为极小值的准则来获得DPCM,称为最佳线性预测,亦即此时预测误差最小。对于图像来说,最佳线性预测的关键就是求出各个预测系数,使得预测误差最小,从而使得接收图像和原图像差别最小。,有损预测编码,51,谢谢欣赏,2019-9-25,量化器,编码器,预测器,压缩图像,输入图像,为简化分析,设:,52,谢谢欣赏,2019-9-25,最佳线性预测 选 ak 使Ee 2n 最小。,在假fn具有零均值和方差为2的条件下解出联立方程的解集:,53,谢谢欣赏,2019-9-25,R-1是mm自相关矩阵的逆矩阵,54,谢谢欣赏,2019-9-25,方程的解 a1,a2,am 便是一组最佳的预测系数。压缩效果可用方差2e(n)来衡量:,原始序列相关性越强,R(i)越大,2e(n)越小,压缩效果越显著;原始序列互不相关,即R(i)=0,i0,则,2e(n)=2一点也不能压缩。,最佳线性预测,55,谢谢欣赏,2019-9-25,6.3.2 变换编码,变换编码通常是指将某种正交变换作为映射变换,用变换系数来表示原始图象,对变换系数进行编码。对一个 N N 的图像f(x,y):,正变换逆变换,56,谢谢欣赏,2019-9-25,变换编码,若输入是广义平稳序列,则存在一种最佳的正交变换K-L变换。所谓最佳:1.变换系数互不相关;2.数值较大的方差出现在少数系数中,即能量高度集中。这样,可在允许的总的均方误差一定的条件下,将数据减到最少。,57,谢谢欣赏,2019-9-25,变换编码,由于卡洛变换(KLT)的基向量是原始图象协方差矩阵的特征向量,对于不同的图象,有着不同的最佳基向量。基向量不是固定的,所以一般没有快速算法,因此只宜于作理论分析和试验用。实用上用得较多的是离散傅立叶变换(DFT)、离散余弦变换(DCT)、离散小波变换(DWT)和沃尔什哈达玛变换(WHT)。它们的基向量是固定的,有比较成熟的快速算法。,58,谢谢欣赏,2019-9-25,变换编码压缩框图,各框图实现了何种冗余压缩?,59,谢谢欣赏,2019-9-25,基于DCT的图像压缩编码,离散余弦变换 是图像压缩中最常用的一种变换。,DCT变换在信息压缩能力和计算复杂性之间提供了平衡。,60,谢谢欣赏,2019-9-25,MATLAB函数 g=dct2(f);反变换 f=idct2(g);,61,谢谢欣赏,2019-9-25,讨论 1:子图像的选择,保留 25%的系数来重构图像,计算复杂度,子图像的尺寸对变换编码重构误差的影响,62,谢谢欣赏,2019-9-25,子图像的选择,放大的原图,使用 25%的DCT系数、8x8子图恢复图像,DCT 系数,子图:8x8 pixels,子图:2x2 pixels,子图:4x4 pixels,63,谢谢欣赏,2019-9-25,讨论 2:量化处理:比特分配,表示变换系数时,可根据每个系数的重要程度分配不同比特数:-较重要的系数 分配大比特数-不太重要的系数 分配小比特数或不分配两种常用的比特分配方法-区域编码:基于最大方差分配比特,对所有子图使用单一固定的模板进行编码-门限编码:基于最大量级的变换系数分配比特,64,谢谢欣赏,2019-9-25,区域编码举例,65,谢谢欣赏,2019-9-25,门限编码举例,门限模板,门限系数排序序列,66,谢谢欣赏,2019-9-25,讨论3:DCT 量化矩阵,图像质量和量化程度的矛盾:大的量化步长会产生大的图像失真;小的又会导致低压缩率 如何有效地量化 DCT 系数?由于人眼对高频不敏感,低频信号就比高频信号更重要。如,JPEG 对高频系数用了大的量化步长,图像并没有出现明显的失真。,67,谢谢欣赏,2019-9-25,变换编码举例,原图512x512 pixels,Fourier,Hadamard,DCT,Error,子图像:8x8 pixels,量化时截取50%系数(只保留32 个最大系数),RMS Error=1.28,RMS Error=0.86,RMS Error=0.68,68,谢谢欣赏,2019-9-25,制定图像标准的国际组织:ISO(国际标准化组织)CCITT(国际电报电话咨询委员会)联合组织下进行制定的,连续色调图像压缩标准静止帧黑白、彩色压缩(JPEG标准)连续帧单色、彩色压缩(MPEG标准),6.4 静止图像压缩编码的技术标准JPEG,69,谢谢欣赏,2019-9-25,静止帧黑白、彩色压缩(JPEG)JPEG标准简述JPEG压缩流程JPEG压缩算法的实现 颜色变换零偏置转换 频域变换系数量化 符号编码JPEG压缩举例,70,谢谢欣赏,2019-9-25,有三种压缩系统:(1)基线编码系统:面向大多数有损压缩的应用,采用DCT变换压缩。(2)扩展编码系统:面向递进式应用,从低分辨率到高分辨率逐步递进传递的应用。(3)独立编码系统:面向无损压缩的应用,采用无损预测压缩,符号编码采用霍夫曼或算术编码。一个产品或系统必须包括对基线系统的支持,1.JPEG标准简述,71,谢谢欣赏,2019-9-25,2.JPEG压缩流程,构造8x8的子图,输入图像NxN,72,谢谢欣赏,2019-9-25,(2)颜色空间转换 人眼对亮度更敏感,提取亮度特征,将RGB转换为YCbCr模型,编码时对亮度采用特殊编码:Y=0.299R+0.5870G+0.1140B(亮度)Cb=0.1787R 0.3313G+0.5000B+128(色度)Cr=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),(1)构造子图像(子图像尺寸:8 x 8),JPEG,73,谢谢欣赏,2019-9-25,()零偏置转换对于灰度级是2n的像素,通过减去2n-1,替换像素本身对于n=8,即将0255的值域,通过减去128,转换为值域在-128127之间的值目的:使像素的绝对值出现3位10进制的概率大大减少,JPEG,74,谢谢欣赏,2019-9-25,例:用8x8的JEPG基线标准,压缩并重构下列子图52556166706164736359669010985697262596811314410466736358711221541067069676168104126886870796560707768587585716459556165838779696865767894,JPEG,75,谢谢欣赏,2019-9-25,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-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-34,JPEG,76,谢谢欣赏,2019-9-25,()频域变换(DCT 变换)频域变换产生64个系数第一个系数称为直流系数(DC系数)其余的63个系数称为交流系数(AC系数),JPEG,77,谢谢欣赏,2019-9-25,正向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-1,JPEG,78,谢谢欣赏,2019-9-25,()系数量化对于亮度和度色使用不同的量化阈值模板,并取整,JPEG,79,谢谢欣赏,2019-9-25,色度的量化模板系数17 182447999999991821266699999999242656999999999947669999999999999999999999999999999999999999999999999999999999999999999999999999,量化是JPEG算法中损失图像精度的根源,JPEG,80,谢谢欣赏,2019-9-25,量化变换后的数组(取整采用四舍五入方式),经正向DCT变换后,81,谢谢欣赏,2019-9-25,()符号编码将量化后的系数,按之字形重新排序成矢量,全零结尾用特殊符号EOB,Zig-Zag编码,-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 EOB,82,谢谢欣赏,2019-9-25,符号编码:-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 EOB,DC和AC系数用不同的方式分别编码,JPEG,83,谢谢欣赏,2019-9-25,DC的编码方式(预测+统计)第一步:求DPCM(差分脉冲调制码),用当前的DC,减去前一个子图的DC VVVV:DIFF=DC PRE_DC第二步:根据DIFF求出区间号:SSSS 通过DIFF查区间编号表得出区间号SSSS根据SSSS查哈夫曼编码表得出SSSS的哈夫曼编码第三步:对VVVV编码,正数是自己,负数用补码(求反),JPEG,84,谢谢欣赏,2019-9-25,用-9查区间表得:SSSS=4 用4查哈夫曼编码表得:101 VVVV=-9二进制编码为:1001求反:1001=0110 最后的编码为:101+0110=1010110,PreDC-17,DC-26,DC的编码方式(预测+统计),例子:DC=-26PRE_DC=-17 DIFF=-26-(-17)=-9,JPEG,85,谢谢欣赏,2019-9-25,AC系数的编码方式编码由两部分组成:区间号编码(RRRR/SSSS)+系数本身(VVVV)第一部分:SSSS:区间号(查AC区间表)RRRR:该系数前值为0的系数的个数(行程数)。RRRR/SSSS的编码:查区间编码表第二部分:VVVV:系数本身编码,-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 EOB,JPEG,86,谢谢欣赏,2019-9-25,符号编码结果举例完成后的编码数组(重排的)是:1010110 0100 001 0100 0101 100001 0110 100011 001 100011 001 001 100101 1101110 111000 0110 11110100 000 1010完成编码的重排数组的总位数是92,不压缩需要8x8x8=512位。结果的压缩率是5.6:1。,-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 EOB,JPEG,87,谢谢欣赏,2019-9-25,JPEG2000 vs.JPEG,low bit-rate performance,88,谢谢欣赏,2019-9-25,作业:,已知信源a,b,c,d,e,f,g,h出现的概率分别为0.20,0.09,0.11,0.13,0.07,0.12,0.08,0.20。试将该信源编为霍夫曼编码,要求写出编码过程,并计算霍夫曼编码的平均码长及编码效率,89,谢谢欣赏,2019-9-25,区间DC哈夫曼编码表,区间 编码 区间 编码 0 00 6 1110 1 010 7 11110 2 011 8 111110 3 100 9 1111110 4 101 A 11111110 5 110 B 111111110,返,90,谢谢欣赏,2019-9-25,区间表,范围 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 6,AC,DC,91,谢谢欣赏,2019-9-25,区间AC哈夫曼编码表,行程/区间 编码 行程/区间 编码 0/0 1010 0/7 1111000 0/1 00 0/8 1111110110 0/2 01 0/9 11111111100000 0/3 100 0/A 11111111100000 0/4 1011 1/1 1100 0/5 11010 1/2 11011 0/6 111000 1/3 1111001.,BJPEG,92,谢谢欣赏,2019-9-25,93,谢谢欣赏,2019-9-25,