- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20
霍夫曼编码
• 具体步骤: (1)初始化 (2)合并概率最小的两个事件 (3)排序 (4)如果事件个数大于2则重复(2)和(3) (5)赋值 (6)编码
21
霍夫曼编码举例
符号 出现概率 等长编码 霍夫曼 S1 1/2 00 0 S2 1/4 01 10 S3 1/8 10 110 S4 1/8 11 111
信息论中的信源编码理论解决的主要问题:
(1)数据压缩的理论极限
(2)数据压缩的基本途径
10
离散事件的非平均自信息量
• 为了完全确定事件x(使后验概率为1)所必 须提供的信息量称为x事件的非平均自信息 量I(x)
1 I ( x) log log p( x) p( x)
11
熵(Entropy)
多媒体技术
第五章
数据压缩基础
主要内容
• • • • • • • • 数据压缩概述 经典数据压缩理论 香农-范诺与霍夫曼编码 算术编码 行程编码 词典编码 预测编码 变换编码
2
什么是数据压缩
• 数据压缩就是在一定的精度损失条件下,以最 少的数码表示信源所发出的信号
信源
信源 编码
信道 编码 信道
信宿
32
第一类词典编码
• 第一类词ቤተ መጻሕፍቲ ባይዱ法的想法是企图查找正在压缩的字符序列 是否在以前输入的数据中出现过,然后用已经出现过 的字符串替代重复的部分,它的输出仅仅是指向早期 出现过的字符串的“指针”。
33
第二类词典编码
• 第二类算法的想法是企图从输入的数据中创建一个 “短语词典 (dictionary of the phrases)”,这种短语可以 是任意字符的组合。编码数据过程中当遇到已经在词 典中出现的“短语”时,编码器就输出这个词典中的 短语的“索引号”,而不是短语本身。
60
8
3600
6
数据压缩的好处
时间域压缩──迅速传输媒体信源 频率域压缩──并行开通更多业务
空间域压缩──降低存储费用
能量域压缩──降低发射功率
7
数据压缩技术实现的衡量标准
压缩比要大
恢复后的失真小
压缩算法要简单、速度快 压缩能否用硬件实现
8
数据压缩技术的分类
无损压缩是指使用压缩后的数据进行重构(或者
23
香农-范诺编码
• 香农-范诺编码与Huffman编码相反,采用从 上到下的方法。 • 具体步骤为: (1)首先将编码字符集中的字符按照出现频度 和概率进行排序。 (2)用递归的方法分成两部分,使两个部分的 概率和接近于相等。直至不可再分,即每一个 叶子对应一个字符。 (3)编码。
24
香农-范诺编码举例
最佳线性预测
使误差函数 m se E ( xn xn ) 达到最小值的预测方程式叫做最佳线性预测。
2
求最佳线性预测的各个参数ai,列方程组: E[(xn xn ) 2 ] 0, (i 1 2,...,n 1) , ai n 1 代入 xn ai xi 得到联立方程组:
12
熵(Entropy)
• 在符号出现之前,熵表示符号集中的符 号出现的平均不确定性;在符号出现之 后,熵代表接收一个符号所获得的平均 信息量。
• 根据直觉,信源编码的数据输出速率 (平均码长)与信源熵之间应该有某种 对应关系。
13
信源的概率分布与熵的关系
• 熵的大小与信源的概率分布模型有着密 切的关系。 • 最大离散熵定理:当与信源对应的字符 集中的各个字符为等概率分布时,熵具 有极大值log2m。m为字符集中字符个数。
• 一阶熵即为离散无记忆平稳信源的压缩极限。 (基本极限)
• 只要信源不是等概率分布,就存在着数据压缩 的可能性。 • 数据压缩的基本途径之一:使各字符的编码长 度尽量等于字符的信息量。
19
熵编码
• 熵编码包括香农-范诺编码、霍夫曼编 码和算术编码,其宗旨在于找到一种编 码使得平均码长到达熵极限,基本思想 就是对出现概率较大的符号取较短的码 长,而对出现概率较小的符号取较大的 码长。
31
词典编码
• 词典编码主要利用数据本身包含许多重复的字 符串的特性。例如:吃葡萄不吐葡萄皮,不吃 葡萄倒吐葡萄皮。 我们如果用一些简单的代号 代替这些字符串,就可以实现压缩,实际上就 是利用了信源符号之间的相关性。字符串与代 号的对应表就是词典。 • 实用的词典编码算法的核心就是如何动态地形 成词典,以及如何选择输出格式以减小冗余。
26
算术编码
• 基本思想:算术编码不是将单个信源符号映射 成一个码字,而是把真个信源表示为实数线上 的0到1之间的一个区间,其长度等于该序列的 概率,再在该区间内选择一个代表性的小数, 转化为二进制作为实际的编码输出。消息序列 中的每个元素都要用来缩短这个区间。消息序 列中元素越多,所得到的区间就越小,当区间 变小时,就需要更多的数位来表示这个区间。 • 采用算术编码每个符号的平均编码长度可以为 小数。
H ( x) p j log p j
j 1 m m
p
j 1
j
1
14
二进制信源的熵
H
1
0
0.5
1
p
• 二进制信源输出一个二进制数码所携带 的平均信息量最大为1bit。
15
最大离散熵定理的应用
• 对于同一个信源其总的信息量是不变的, 如果能够通过某种变换(编码),使信 源尽量等概率分布,则每个输出符号所 独立携带的信息量增大,那么传送相同 信息量所需要的序列长度就越短。 • 离散无记忆信源的冗余度隐含在信源符 号的非等概率 分布之中。只要H(X)小 于log2m,就存在数据压缩的可能。
0 1
A B
0
C D E
0
1
1
A
B
C
0
D E
1
符号
D
E
A 次数 15
B 7
C 7
D 6
E 5
25
算术编码
• Huffman 编码的局限性: Huffman 编码使用整 数个二进制位对符号进行编码,这种方法在许 多情况下无法得到最优的压缩效果。假设某个 字符的出现概率为 80%,该字符事实上只需要 -log2(0.8) = 0.322 位编码,但 Huffman 编码一 定会为其分配一位 0 或一位 1 的编码。可以想 象,整个信息的 80% 在压缩后都几乎相当于理 想长度的 3 倍左右。
16
编码
{X1, X2, …,XL} 信源
消息分组
{a1, a2, a3, …a }
K
信源字母表 码字
编码器 {b1, b2, b3, …b }
D
{Y1, Y2, …, YN}
码元表
17
{0,1}
平均码长与熵
• 如果采用单字符二进制编码方式,设字符aj的 编码长度为Lj,则信源字母表的平均码长为:
L p j Lj
j 1 K
• 根据前面对二进制信源的分析,有:
H (X ) 1 L H (X ) L
p j L j p j log2 p j
j 1 j 1
K
K
在Lj = -log2pj时,平均码长取得极小值H(X)
18
关于离散无记忆平稳信源的结论
3.2
取样率 (KHz)
8
量化 位数
8
存储容 量(MB)
0.48
50~7000 20~20000
7 20
16 44.1
14 16
1.68 5.292×2
数字音 频广播
20~20000
20
48
16
5.76×6
1分钟数字视频信号需要的存储空间
数字电视 格 式 公用中间 格式(CIF) 空间×时间 ×分辨率 352×288 ×30 取样率 (MHz) 量化位数 存储容量 (MB) 270 亮度 3; 亮度、色差 4:1:1 共 12 亮度 13.5 4:2:2 亮度、色差 共 16 PAL720× CCIR 601 号 480×30 建议 NTSC720× 576×25 HDTV 亮度信号 1280×720 ×60 1620 1620
19/64 9/64
1
85/256 27/256
• 最后的子区间起始位置= 85/256 = 0.01010101 • 子区间长度 = 27/256 = 0.00011011 • 子区间尾 = 7/16 = 0.0111 • 取编码区间中的一个值,最后编码为:011
29
算术编码的具体实现
• 因为实际只能用有限长的寄存器,这就要求将 已编码的高位码字及时输出,但又不能输出过 早,以免后续运算还要调整已输出的码位。 (请看参考书上给出的算法) • 算术编码每次递推都要做乘法,所以效率比较 低。二进制算术编码是一种实用的编码算法, 用移位代替了乘法,使效率大大提高。 • 自适应算术编码可以在编码过程中根据符号出 现的频繁程度动态的修改分布概率,这样可以 避免在编码之前必须精确求出信源概率的难题。
信源 译码
信道 译码
3
数据压缩的必要性
多媒体
多媒体信源引起了“数据爆炸”
数据
如果不进行数据压缩
传输和存储都难以实用化。
4
1分钟数字音频信号需要的存储空间
数字音 频格式 电话 会议电 视伴音 CD-DA DAT
20~20000 20 48 16 5.76×2
5
频带 (Hz)
200~3400
带宽 (KHz)
34
预测编码
• 预测编码是数据压缩理论的一个重要分支。它 根据离散信号之间存在一定相关性的特点,利 用前面的一个或多个信号对下一个信号进行预 测,然后对实际值和预测值的差(预测误差) 进行编码。如果预测比较准确,那么误差信号 就会很小,就可以用较少的码位进行编码,以 达到数据压缩的目的。 • 第n个符号Xn的熵满足:
27
算术编码举例(一)
符号 概率 初始区间 00 0.1 [0, 0.1) 01 0.4 [0.1, 0.5) 10 0.2 [0.5, 0.7) 11 0.3 [0.7, 1)
28
算术编码举例(二)
信源分布:
消息序列
区间起始 区间长度
符号
频度
0
1/4
1
3/4
1
1/4 3/4
0
1/4 3/16
1
• 事件集合(样本空间)X中每个事件的自信息 量I(x)是定义在这个样本空间上的一个随机变 量,所以我们要研究它的统计特性。其数学期 望为:
H(X )
xX
p( x) I ( x) p( x) log p( x)
xX
• H(X)表明了集合X中随机事件的平均不确定性, 或者说平均信息量。 • 称H(X)为一阶信息熵或者简称为熵(Entropy)
DPCM是有损型还是无损型关键看对预测误差 ek如何编码。
36
预测方程式
xk f ( x1 , x2 , x3 ......xk 1 , k )
线性预测: xk
a (k ) x
i 1 i
k 1
i
如果ai是常数,则为时不变线性预测,否 则为自适应线性预测(ADPCM)
最简单的预测方程: xk xk 1
叫做还原,解压缩),重构后的数据与原来的数据完全 相同;无损压缩用于要求重构的信号与原始信号完全 一致的场合。
有损压缩是指使用压缩后的数据进行重构,重构
后的数据与原来的数据有所不同,但不影响人对原始 资料表达的信息造成误解。有损压缩适用于重构信号 不一定非要和原始信号完全相同的场合。
9
经典数据压缩理论
30
行程编码(RLE)
• 行程编码(Run-Length Encoding):它通过将 信源中相同符号序列转换成一个计数字段再加 上一个重复字符标志实现压缩。 • 例如:RTTTTTTTTABBCDG被转换为: R#8TABBCDG,其中“#”作为转义字符, 表明其后所跟的字符表示长度。 • 行程编码多用于黑白二值图像的压缩中。例如 00000000111111111111000001111111被转化为 一系列黑串和白串长度的编码:81257。因为 串长度并非等概率分布,所以一般要配合以统 计编码(Huffman编码)。
H(X) = 1.75
源
等 霍
L1=2
S1
00 0
L2=1.75
S2
01 10
S1
00 0
S2
01 10
S3
10 110
S1
00 0
S1
00 0
S4
11 111
22
霍夫曼编码的局限性
• 利用霍夫曼编码,每个符号的编码长度只能为 整数,所以如果源符号集的概率分布不是2负n 次方的形式,则无法达到熵极限。 • 输入符号数受限于可实现的码表尺寸 • 译码复杂 • 需要实现知道输入符号集的概率分布 • 没有错误保护功能
H ( xn ) H ( xn | xn1 ) H ( xn | xn1xn2 ) ...... H ( xn | xn1xn2 ...x1 )
所以参与预测的符号越多,预测就越准确,该 信源的不确定性就越小,数码率就可以降低。 35
DPCM编码
xk ek
x’k 预测器
ek xk