920 likes | 1.09k Views
第六章图象数据压缩编码. 基本内容. 图像压缩基础 无损压缩 有损压缩 静止图像压缩编码的技术标准 JPEG. 图象压缩的必要性. 数字图象通常有很大的比特数,这给图象的传输和存储带来相当大的困难。数据的压缩是必不可少的。. the total byte number is: 460×520×3 = 700kB. 图象压缩的必要性. 一部90分钟的彩色电影,每秒放映24帧。把它数字化,每帧512 ×512 象素,每象素的 R 、 G 、 B 三分量分别占 1byte ,总比特数为
E N D
第六章图象数据压缩编码 基本内容 • 图像压缩基础 • 无损压缩 • 有损压缩 • 静止图像压缩编码的技术标准JPEG
图象压缩的必要性 • 数字图象通常有很大的比特数,这给图象的传输和存储带来相当大的困难。数据的压缩是必不可少的。 the total byte number is: 460×520×3 = 700kB
图象压缩的必要性 • 一部90分钟的彩色电影,每秒放映24帧。把它数字化,每帧512×512象素,每象素的R、G、B三分量分别占1byte,总比特数为 90×60×24×3×512×512= 101922MB 若用一张可存600兆字节数据的CD光盘存储这部电影,光图象(还有声音)就需要170张CD光盘。
图象压缩的必要性 • 对图象数据进行压缩显得非常必要 本章讨论的问题:在满足一定条件下,能否减小图象比特数,以及用什么样的编码方法使之减少。
图象压缩是可能的 • 一般原始图象中存在很大的冗余度
用户通常允许图象失真 • 当信道的分辨率不及原始图象的分辨率时,降低输入的原始图象的分辨率对输出图象分辨率影响不大。 • 用户所关心的图像区域有限,可对其余部分图像采用空间和灰级上的粗化。 • 根据人的视觉特性对不敏感区进行降分辨率编码 (视觉冗余)。
图象压缩是可能的 • 原始图象越有规则,各象素之间的相关性越强,它可能压缩的数据就越多。 • 值得指出的是:当前采用的编码方法得到的结果,离可能压缩的极限还相差很远,这说明图象数据压缩的潜力是很大的,直到目前为止,它还是个正在继续研究的领域。
6.1 图像压缩基础 图像压缩所解决的问题是尽量减少表示数字图像时需要的数据量。减少数据量的基本原理是除去其中多余的数据。 以数学的观点看,这一过程实际上就是将二维像素阵列变换为一个在统计上无关联的数据集合。
图像熵 图像编码压缩名词术语 • 图像像素灰度级集合为{ d1 , d2 , …, dm },对应概率为p ( d1 ) ,p ( d2 ),…, p ( dm ) , 则图像熵定义为 H表示对输入灰度级集合进行编码时所需要的平均位数的下限。 di 出现的概率相等时,熵最大。
平均码长 l为灰度级 rk 所对应的码字长度。
编码效率 图像熵与平均码长之比
香农无干扰编码定理 在无干扰条件下,存在一种无失真的编码方法,使编码的平均码长和信源的熵任意接近。
压缩比 • Ls为源代码长度, Ld为压缩后代码长度
保真度标准 • 保真度标准——评价压缩算法的标准 (1)客观保真度标准 (2)主观保真度标准
a)输入图和输出图之间的均方根(rms)误差 b)输入图和输出图的均方根信噪比 (1) 客观保真度标准
(2)主观保真度标准 通过视觉比较两个图像,给出一个 定性的评价,如很粗、粗、稍粗、相 同、稍好、较好、很好,这种评价被 称为主观保真度标准。
冗余 • 在数字图像压缩中的三种基本的数据冗余: • 编码冗余 • 像素间冗余 • 心理视觉冗余
编码冗余 • 通过图像灰度级直方图可以深入了解编码结构,从而减少表达图像所需的数据量。 例:
像素间冗余 • 由于任何给定的像素值,原理上都可以通过它的邻居预测到,所以单个像素携带的信息相对是小的。 • 为减少图像中的像素间冗余,二维像素阵列必须变换为更有效的形式。 • 例:原图像数据: • 234 223 231 238 235 • 压缩后数据: • 234 11 -8 -7 3 • 空间冗余 • 几何冗余 • 帧间冗余
心理视觉冗余 • 在正常的视觉处理过程中各种信息的相对重要程度不同,那些不重要的信息称做心理视觉冗余
无损压缩与有损压缩 无损压缩基于统计模型,减少源数据流中的冗余,同时保持信息不变。又称为冗余压缩。典型代表有Huffman 编码,算术编码、游程长度编码等。 有损压缩以牺牲部分信息量为代价而换取缩短平均码长的编码压缩方法。在压缩中丢失了部分信息,又称为熵压缩。典型代表有离散余弦变换编码、有损预测编码等。 一般地,有损压缩的压缩效率高于无损压缩。
No.13 实验二 图像增强 下周二做 ,地点不变 (交邮政编码分割程序)
6.2 无损压缩 • 在很多应用中,如医疗和商业文档的归档、卫星成像的处理、数字X光照相术,无损压缩时唯一可以接受的数据压缩方式。 • 无损压缩常由两种彼此独立的操作组成:(1)为减少像素间冗余建立一种可替代的图像表达方式;(2)对这种表达方式进行编码以便消除编码冗余。
6.2.1 霍夫曼编码(属于统计编码) 一、基本原理 通过减少编码冗余来达到压缩的目的。将在图像中出现次数多的像素值给一个短的编码,将出现次数少的像数值给一个长的编码。 二、霍夫曼编码是即时码:是唯一可译码,其中任意一个码字都只能与一种信号存在对应关系,而且任意一个码字都不能是其他码字的前缀。
二、Huffman编码举例 信号源 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编码 • 方法: • 把这个符号的概率与其余符号的概率按从大到小排列,然后再把最末两个符号的概率加起来,合成一个概率。 • 重复上述做法,直到最后剩下两个概率为止。 • 从最后一步剩下的两个概率开始逐步向前进行编码。每步只需对两个分支各赋予一个二进制码,如对概率大的赋予码元0,对概率小的赋予码元1。
霍夫曼编码举例 建立概率统计表和编码树 符号 概率 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 4 a2 0.4 1 0.4 1 0.4 1 0.4 1 0.6 0 a6 0.3 00 0.3 00 0.3 00 0.3000.4 1 a1 0.1 011 0.1 011 0.2010 0.301 a4 0.1 0100 0.101000.1011 a3 0.0601010 0.10101 a5 0.0401011
霍夫曼编码 a2 a6 a1 a4 a3 a5 1 00 011 0100 01010 01011 例子:将010100111100解码 解码过程: 01010 011 1 1 00 a3 a1 a2 a2 a6
编码的平均长度: 信号源 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
霍夫曼编码 • 静态编码 • 在压缩之前就建立好一个概率统计表和编码树。算法速度快,但压缩效果不是最好 • 动态编码 • 对每一个图像,临时建立概率统计表和编码树。算法速度慢,但压缩效果最好
霍夫曼编码的特点 • 编码值不唯一 • 当图像灰度值分布很不均匀时,霍夫曼编码效率高。 • 编码过程要经过N-2次合并(有N个灰度级),N较大时,计算量大. • 改进:用亚最优变长码:截断霍夫曼编码,霍夫曼平移编码
6.2.2 算术编码(属于统计编码 )(自学) 假设某个字符的出现概率为 80%,该字符事实上只需要 -log2(0.8) = 0.322 个二进制位进行编码 难道真的能只输出 0.322 个 0 或 0.322 个 1 吗? 算术编码的输出是:一个小数 算术编码对整条信息(无论信息有多么长),其输出仅仅是一个数,而且是一个介于0和1之间的二进制小数。 例如算术编码对某条信息的输出为1010001111,那么它表示小数0.1010001111,也即十进制数0.64
算术编码的特点 • 从整个符号序列出发,采用递推形式连续编码 • 在算术编码中源符号和码字间的一一对应关系并不存在。1个算术码字要赋给整个信源符号序列而码字本身确定0和1之间的1个实数区间 • 随着符号序列中的符号数量增加,用来代表它的区间减小,而表达区间的信息单位数量变大
例:来自一个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来表示整个符号序列
6.2.3 行程编码 RLE( 属于统计编码 ) • 行程:具有相同灰度值的像素序列。 • 是一种熵编码,广泛应用于各种图象格式的数据压缩处理中, 如BMP, TIFF, JPEG。 • 编码思想:用行程的灰度和行程的长度代替行程本身。 • 例:设重复次数为 iC, 重复像素值为 iP • 编码为:iCiP iCiP iCiP 编码前:aaaaaaabbbbbbcccccccc 编码后:7a6b8c
行程编码 (1)一维行程编码 对图象进行行扫描时,行内各象素的灰度级可组成一个整数序列x1, x2, …, xN。在行程编码中,我们将这个序列映射成整数对(gk, lk),其中gk表示灰度级, lk表示行程。
(2)二维行程编码一维行程编码只考虑消除每行内象素的相关性,未考虑行间象素的相关性。二维行程编码的基本原理是跟踪各个黑色和白色游程的起始和终结点。(2)二维行程编码一维行程编码只考虑消除每行内象素的相关性,未考虑行间象素的相关性。二维行程编码的基本原理是跟踪各个黑色和白色游程的起始和终结点。
原图象文件: 277560字节 行程编码文件: 279860字节 压缩比: 0.992
原图象文件: 66616字节 行程编码文件: 9272字节 压缩比: 7.185
行程编码 分析: • 如果图像是由很多块颜色或灰度相同的大面积区域组成的,特别是二值图象,采用行程编码可以达到很高的压缩比。 • 如果图像中的数据非常分散,则行程编码不但不能压缩数据,反而会增加图像文件的大小。 • 为了达到较好的压缩效果,一般不单独采用行程编码, 而是和其他编码方法结合使用。
6.3 有损压缩 • 有损压缩是以牺牲图像重构的准确度为代价换取压缩能力增加的概念为基础的。 • 如果产生的失真是可以容忍的,则压缩能力上的增加就是有效的。
有损预测编码:直接对像素在图像空间进行操作, 称为空域方法。邻近的M个值预测当前值,当前值与预测值之差量化编码,(一维、二维预测等) • 变换编码:基于图像变换的编码方法,称为频域方法。
预测编码的基本原理 利用已有样本对新样本进行预测,将样本的实际值与其预测值相减得到误差值,再对误差值进行编码。通常误差值比样本值小得多,从而达到数据压缩的效果。 6.3.1 有损预测编码
有损预测编码 预测器 可以是固定的,也可以是自适应的;可以是线性的,也可以是非线性的。 预测器设计得越好,对输入的数据压缩就越多。
压缩图像 解码器 解压图像 预测器 有损预测编码–DPCM(差分脉冲编码调制)系统 输入图像 压缩图像 量化器 编码器 预测器
有损预测编码 • 德尔塔调制 • 最优量化器 • 最佳线性预测器 • 线性自适应预测编码
有损预测编码 一维线性预测