- 201
- 0
- 约2.17万字
- 约 10页
- 2020-08-28 发布于浙江
- 举报
数据无损压缩
一、数据冗余
①概念:
人为冗余
冗余 试听冗余
数据冗余
②决策量(事件数的对数值)
= ( ,其中,n 是事件数(互斥时间)
(1) Sh,以2 为底的对数
(2) Nat,以e 为底的对数
(3) Hart,以10 为底的对数
③信息量(具有确定概率事件的信息的定量度量)
= = − (,p(x)是事件x 出现的概率
☆对于等概率事件的集合,其每个事件的信息量=该集合的决策量
④熵(事件信息的平均值)
= ℎ = = −
其中:
ℎ 为事件 的熵 为事件 发生的概率
为事件 的信息量
⑤数据冗余(决策量超过熵的量)
= −
Ø 信息量I = 数据量D − 冗余量R
信息熵就是对于一个不确定事件集合信息量的平均值
二、统计编码
①香农-范诺编码
目的:产生具有最小冗余的码词
基本思想:产生编码长度可变的码词
估计码词长度的准则:符号出现的概率,概率越大,码词长度越短。
算法:
1、按照符号出现的概率减少的顺序将待编码的符号排成序列
2、将符号分成两组,使两组符号概率近似或相等
3、将第一组赋为0,第二组赋为1
4、对每组重复步骤(2),直至每组剩下一个信源符号
②霍夫曼编码
算法:
1、按出现概率排序
2、将两个最小的概率相加作为新的概率与余下的概率重新排队,每次相加都将“0”和“1”赋予相加的两个概率
3、重复步骤(2)直到最后概率相加得1
Ø 霍夫曼编码没有错误保护功能。
Ø 霍夫曼编码是可变长度码,在编码时不需要在生成码流中附加同步码,因此也难以随意查找或调用压缩文件中的内容,
然后再译码。
③算数编码
编码:将整个要编码的数据依照其出现的概率映射到一个位于[0,1) 的实数区间中。并且输出一个小于1 同时大于0 的小数来
表示全部数据。
1、从实数区间[0,1)开始,按照信源符号的频度将当前区间分割为若干个子区间
2、根据当前输入的符号选择对应的子区间,从选择的子区间中继续下一轮的分割
3、重复步骤(2)知道所有符号编码完毕
解码:
1、输入一个小数
2、对区间[0,1)按照初始的符号频度进行分割
3、观察输入的小数属于哪个子区间,输出对应的符号
4、选择对应的区间,从子区间中继续下一轮的分割
5、重复步骤(4)知道所有符号解码出来
注意:
1、 算数编码的效率接近于熵
2、 算数/霍夫曼编码都对错误敏感
3、 信源概率固定,须事先统计
4、 有相应的“自适应编码”
三、RLE 编码(行程长度编码,Run-Length Encoding,RLE)
行
原创力文档

文档评论(0)