View
143
Download
0
Category
Preview:
DESCRIPTION
第 7 章 无损压缩算法. 内容. 基本概念 行程长度编码 变长度编码 字典编码 算术编码 无损图像压缩. 一、基本概念. 数据压缩的必要性. 中(低)等质量图像: 640 x480x16bits = 5Mb / 帧 中(高)等质量图像: 1024 x768x24bits = 18Mb / 帧 CCIR 601 数字电视: 720 x576x16bitsx25 = 158Mb /s 高清晰度数字电视: 1280 x720x24bitsx50= 1.05Gb /s. 数据压缩的必要性. 存储: 硬盘 传输 - PowerPoint PPT Presentation
Citation preview
第 7 章 无损压缩算法
Slide 2
内容
基本概念 行程长度编码 变长度编码 字典编码 算术编码 无损图像压缩
一、基本概念
Slide 4
数据压缩的必要性
中 ( 低 ) 等质量图像 :640x480x16bits = 5Mb / 帧
中 ( 高 ) 等质量图像 :1024x768x24bits = 18Mb / 帧
CCIR 601 数字电视 : 720x576x16bitsx25 = 158Mb /s
高清晰度数字电视 : 1280x720x24bitsx50= 1.05Gb/s
Slide 5
数据压缩的必要性
存储:硬盘传输PC 机系统总线: 5MB/s ( ISA ), 133MB/s ( PCI )
CD-ROM 读出速率: 40 x 150KB/s = 6MB/s
ETHERNET 传输速率: 10~100Mb~1Gb/s
普通电话接入速率: 28.8 , 33.3 , 56 Kb/s
ADSL 速率: 512kb~2Mb/s,
Slide 6
图像数据压缩的可能性
(1) 时间、空间冗余
(2) 信息熵冗余
(3) 视觉冗余– 眼睛空间综合能力的局限性(亮度等级,可区分弧度,高频
成分的非线性, ... )– 思维 (mind) 的时间综合能力的局限性
(4) 其他冗余,包括结构冗余、知识冗余等。
因此,在允许存在一定失真的前提下,可以对图象数据进行很大程度的压缩。
Slide 7
图像的信息熵
设一个信号源S={ s1, s2, … , sn },第 i 个符号的出现概率为 pi
,每个符号用 d 比特表示,则按信息论中信息熵的定义,该信号源的熵由下式定义:
n
iii pogpSH
121)(
对于一种编码方法,设第 i 个符号的码字长度为 Li ,则该信号源的平均码字长度 L 为 :
i
n
ii pLL *
1
Slide 8
例例
• 假设一个文本由 7 个符号组成:
a1, a2, a3, a4, a5, a6, a7
它们出现的概率是 : 0.2, 0.19, 0.18, 0.17, 0.15, 0.1, 0.01
则: 信息熵= -0.2log2(0.2) -0.19log2(0.19) -0.18log2(0.18) -0.17log2(0.17)
-0.15log2(0.15) -0.1log2(0.1) -0.01log2(0.01)
= 2.61如果每一个符号使用 bi 个二进位表示,则:平均码长= ∑ ai*bi
平均码长= 0.2×2 + 0.19×2 + 0.18×3 + 0.17×3 +0.15×3 + 0.1×4 + 0.01×4 = 2.72
Slide 9
•压缩比 (compression ratio)
– 压缩倍数– 压缩效率– bits per pixel ( bpp )
•算法复杂度– 计算量 / 存储量– 时间延迟 ( 计算延迟、存储延迟 )
– 编码 / 解码算法的对称性
•重建图象的质量
数据压缩技术的性能指标
Slide 10
重建图象的质量评价
客观评价法
2))()((1
ixixn
Ei
n
原始图像的像素
重建图像的像素
均方误差:
2
2
d
e lg 10 SNR(dB)
)(1 22 ixn
ei )(
1 22 ixn
ei
22 )()(1
ixixn
di
原始图像信号均值
误差图像信号均值
信噪比: 其中
2
2max
d
x lg 10 PSNR(dB)
原始图像信号峰值
峰值信噪比:
Slide 11
重建图象的质量评价
•主观评价法 (MOS)
受评价者的经验、爱好、观察图像的内容、观察条件等影响
分值 重建图像(声音)的质量5 非常好,丝毫看(听)不出失真
4 好,虽能看(听)出失真,但没有什么影响
3 一般,清楚地看(听)出有失真,对视听稍有影响
2 差,失真明显,对视听有影响
1 非常差,失真严重,非常严重地妨碍视听
Slide 12
压缩方法的分类
•lossless( 无损压缩 )– run-length coding(RLC)– 预测编码– Huffman( 哈夫曼编码 )– Arithmetic coding( 算术编码 )– Lempel-Ziv & Welch ( LZW 编码 , 词典编码 )
•lossy ( 有损压缩 )– 亚取样– 变换编码– 矢量编码– 特征抽取 ( 分析 -- 合成法 ) ( 模型编码 )
Slide 13
第一代压缩编码技术
统计(熵)编码。统计编码的基本原理是给出现概率较大的符号赋予一个短码字,而给出现概率较小的符号赋予一个长码字, 从而使得最终的平均码长很小。
预测编码。预测编码是基于图像数据的空间或时间冗余特性,用相邻的已知像素(或像素块)来预测当前像素(或像素块)的取值,然后再对预测误差进行量化和编码。
变换编码。变换编码通常是将空间域上的图像经过正交变换映射到另一变换域上,使变换后的系数之间的相关性降低。图像变换本身并不能压缩数据,但变换后图像的大部分能量只集中到少数几个变换系数上,采用适当的量化和熵编码就可以有效地压缩图像。
Slide 14
第二代压缩编码技术
神经网络( Artificial Neural Network , ANN ) 分形编码( Fractal Coding ) 基于对象的压缩编码( Object Based Coding )
基于模型的压缩编码( Model Based Coding )
小波变化编码
行程长度编码
Slide 16
基本思想
检测符号序列中连续重复出现的符号,并使用其长度( run length )进行表示。
例:压缩前 28 位:
0 0 0 3 3 7 7 7 7 0 0 0 0 0 0 0 0 5 6 6 6 6 6 0 0 0 0 0
压缩后 14 位:
3 0 2 3 4 7 8 0 1 5 5 6 5 0
分析:仅仅在游程长度> 3 时才有效益
1 2 3 4 5 6 1 1 1 2 1 3 1 4 1 5 1 6
1 1 2 2 3 3 4 4 5 52 1 2 2 2 3 2 4 2 5
Slide 17
RLC 的应用
适用于:二值图像的编码,如0000110011111000111000004225335
黑白文稿工程图纸 传真机( FAX )
RLC + Huffman
Slide 18
RLC 的分析
方法直观,简单,速度快。是一种无损压缩技术。 压缩比取决于图像本身的特点:
– 如果图像中具有相同颜色的图像块越大,且图像块数目越少,获得的压缩比就越高。反之,压缩比就越小。
– 特别适合于扫描产生的黑白文稿和工程图纸,对颜色丰富的自然图像效果较差。
不仅用于图像数据的压缩,也可应用于其他数字媒体的压缩。
变长度编码
Slide 20
Shannon-Fano 算法
① 首先统计出每个符号出现的概率;
② 从左到右对上述概率从大到小排序;
③ 从这个概率集合中的某个位置将其分为两个子集合,并尽量使两个子集合的概率和近似相等,给前面一个子集合赋值为 0 , 后面一个子集合赋值为 1 ;
④ 重复步骤 3 ,直到各个子集合中只有一个元素为止;
⑤ 将每个元素所属的子集合的值依次串起来,即可得到各个元素的香农 -范诺编码。
Slide 21
Shannon-Fano 编码举例
Slide 22
3 Huffman 编码
基本原理:将在图象中出现次数多的像素值给一个短的编码,将出现次数少的像数值给一个长的编码。哈夫曼编码的一般算法如下: ( 1 ) 首先统计信源中各符号出现的概率, 按符号出现的概率从大到小排序。 ( 2 ) 把最小的两个概率相加合并成新的概率, 与剩余的概率组成新的概率集合。 ( 3 )对新的概率集合重新排序, 再次把其中最小的两个概率相加, 组成新的概率集合。如此重复进行, 直到最后两个概率的和为 1 。 ( 4 ) 分配码字。码字分配从最后一步开始反向进行, 对于每次相加的两个概率,给大的赋“ 0” , 小的赋“ 1”
Slide 23
Huffman 编码举例
例:设有 7 个符号: a1, a2, a3, a4, a5, a6, a7
出现的概率是 : 0.2, 0.19, 0.18, 0.17, 0.15, 0.1, 0.01
a2 (0.19)
a1 (0.2)
a3 (0.18)
a4 (0.17)
a5 (0.15)
a6 (0.1)
a7 (0.01)
0.35
0.110.26
0.61
1.0
1
0
0
1
01
0
1
0
101
a1 10
a2 11
a3 000
a4 001a5 010a6 0110a7 0111
0.39
Slide 24
两种 Huffman 编码的比较例:设有 5 个符号: a1, a2, a3, a4, a5,
出现的概率是 : 0.4, 0.2, 0.2, 0.1, 0.1,
a2 (0.2)
a1 (0.4)
a3 (0.2)
a4 (0.1)
a5 (0.1) 0.20.60
1
10
1
0
a1 1a2 01a3 000a4 0010a5 00110.4
1.0
01
a2 (0.2)
a1 (0.4)
a3 (0.2)
a4 (0.1)
a5 (0.1) 0.21
0
10 1
0a1 00a2 10a3 11a4 010a5 011
0.60.4
01
1.0
Slide 25
Huffman 编码的分析每个编码均非其它码的前缀,因此唯一可译
( a1=10,a2= 11, a3= 000, a4= 001, a5= 010, a6= 0110, a7=0111 )
11 010 10 001 10 11 10 0111
a2 a5 a1 a4 a1 a2 a1 a7
编码方式不唯一,但平均码长相同编码效率受信源概率分布影响传输中误码影响较大必须先存储 / 传输码表必须预先知道信源的统计特性图像过大时,应划分成小块编码
Slide 26
Huffman 编码在不同概率分布下的编码效果对比
Slide 27
4. 自适应 Huffman 编码
很难获取符号概率
传送码表浪费资源
AADCCDD 的自适应 Huffman 编码过程:
字典编码
Slide 29
LZW 编码
•时间:– 1977年, LZ77 , LZ78
– 1984年, LZW
•应用: gif , tif
•压缩比: 1:1.5~ 1:1.3•原理:
– LZW 压缩算法的基本思想是建立一个编码表 (转换表 ) ,韦尔奇称之为串表,将输入字符串映射成定长的码字输出,通常码长设为 12bit 。
Slide 30
LZW 编码
试对一个最简单的三字符 A , B , C 组成的字符串“ ABABBABCABABBA” 进行 LZW 编码。
A
1
B
2
C
3
AB
4
BA
5
ABB
6
BAB
7
BC
8
CA
9
ABA
10
ABBA
11
码表
输出编码
A
1
B
2
AB
4
BA
5
B
2
C
3
AB
4
ABB
6
A
1
Slide 31
LZW 编码
Slide 32
LZW 解码
•1 2 4 5 2 3 4 6 1
A
1
B
2
C
3
AB
4
BA
5
ABB
6
BAB
7
BC
8
CA
9
ABA
10
ABBA
11
码表
输出编码
A
1
B
2
AB
4
BA
5
B
2
C
3
AB
4
ABB
6
A
1
Slide 33
LZW 解码
Slide 34
LZW简单法的失效
•ABABBABCABBABBAX
•1 2 4 5 2 3 6 10
算术编码
Slide 36
算法思想
•Huffman 编码中每个符号都用整数个 bits来表
示,影响编码效率。
•算术编码把一串符号(称为“符号串”)作为一个编码单位,使编码效率得到进一步提高。
•由m个符号组成的一个符号串为: S1 S2 ······ Sm
把它映射成为[ 0 , 1 )中的一个半开子区间:
Slide 37
Symbol Probability Range A 0.2 [0, 0.2) B 0.1 [0.2, 0.3) C 0.2 [0.3, 0.5) D 0.05 [0.5, 0.55) E 0.3 [0.55, 0.85) F 0.05 [0.85, 0.9) $ 0.1 [0.9, 1.0)
待编码符号串:CAEE$
1.00.9
0.85
0.550. 5
0.30.2
0.5
0.3
0.34
0.3
0.334
0.322
0.3322
0.3268
0.3322
0.33184
Slide 38
待编码符号串:CAEE$
0.3322
0.33184
编码结果: 0.01010101
Slide 39
算数编码解码
编码结果: 0.01010101十进制: 0.33203125
0.160156250.80078125
0.83593750.953125
C
A
1.00.9
0.85
0.550. 5
0.30.2
C
B
D
E
F$
A
E
E
$
Slide 40
算术编码的实现
•困难– 编码过程中区间的表示(小数)会越来越长,最终导致无法实现
– 区间再分时需进行乘法运算,影响速度•解决方法
– 区间长度 A用规格化形式表示,始终保持在 0.75~1.5之间– 使起点位置与区间长度保持同步变化– 使用近似公式,简化计算 , 避免乘法运算
Slide 41
算术编码与 Huffman 编码的比较
•压缩效率可提高 5~10%•硬件实现稍复杂•通信过程中差错会扩散•不必使用码表•自适应算术编码能够根据已经编码的信息串来调整当前符号的概率估计,从而更有效地进行编码
无损图像压缩
Slide 43
差分编码
•自然世界中的灰度变化是连续的•差分运算后的图像的直方图分布较窄,信息熵较低,有可
能达到较低的平均码长•常用的差分算子有:
),1(),1()1,()1,(),(4),(
),1(),(),(
yxIyxIyxIyxIyxIyxd
yxIyxIyxd
Slide 44
JPEG 无损编码
原理 : 1 利用相邻象素之间的相关性进行预测:
预测值 =a1*A+a2*B+a3*C
2 计算预测误差,预测误差=当前象素数值-预测值 3 对预测误差进行编码
Slide 45
预测公式
P1 A
P2 B
P3 C
P4 A+B-C
P5 A+(B-C)/2
P6 B+(A-C)/2
P7 (A+B)/2
Recommended