熵编码 简介

来源:互联网 发布:php 2年工作经验 编辑:程序博客网 时间:2024/06/06 14:20

熵编码

数据压缩编码的概念:

编码是用一些简单的字符来表达一定的信息,例如,如果明天是晴天用1来表示,阴天就是0

压缩是消除数据间的相关性,一定的信息量尽量用较少的字符来表示

压缩编码的必要性

电子计算机的出现使信息话社会有了数字化的特点,电脑中的信息要以数字量表示出来,但我们可以简单的看一下数字话了的信息数量大小:

一片CD-ROM 650M

cif格式视频大小352*288 彩色,4:2:0格式存储的话

每帧大小352*288*1.5=228096B

播放速度30帧每秒228096*30=6842880B=6.526MB

650/6.526=99.6s

这个问题是多媒体技术发展中的一个非常棘手的瓶颈问题,单纯靠扩大存储器容量,增加通信干线的传输率的办法是不现实的

通过数据压缩手段把信息的数据量压下来,以压缩形式存储和传输,既紧缩节约了存储空间,又提高了通信干线的传输效率,同时也使计算机实时处理音频视频信息,保证播出高质量的视频,音频节目成为可能

可行性:

多媒体文本 声音 静态图像 视频图像等信源数据有极强的相关性,也就是说有大量的冗余信息,数据压缩的目的就是消除数据间的相关性,保留相互独立的信息分量

(以视频图像为例,空间相关性、时间相关性)

数据压缩编码的理论基础:

信息论,从信息论的角度来看,压缩就是去掉信息中的冗余,即保留不确定的东西,去掉确定的东西(即可以推知的东西),使用一种更接近信息本质的描述来代替原有的冗余的描述,这个本质的东西就是信息量(即不确定因素)

信息论中的信源编码理论解决的主要问题:

(1)数据压缩的理论极限

(2)数据压缩的基本途径。

根据信息论的原理,可以找到最佳数据压缩编码的方法,数据压缩的理论极限是信息熵。如果要求编码过程中不丢失信息量,即要求保存信息熵,这种信息保持编码叫熵编码,是根据消息出现概率的分布特性而进行的,属于统计编码中的一类,是无损数据压缩编码。

熵编码的基本原理;

熵编码立在随机过程的统计基础之上的是建

熵的概念:

在信息论中,有这样的信息量:

是信号 在X中出现的概率

信源X发出的信号 ,求n个随机时间的自信息统计平均(求数学期望),即

     

     

H(X)在信息论中称为信源X的熵,它的含义是信源X发出任意一个随机变量的平均信息量

数学上可以证明,等概率时间的熵最大

以n=8为例

熵的范围:

在编码中用熵值衡量是否为最佳编码

若以 表示编码器输出码字的平均码长,则

当 有冗余,不是最佳

当 不可能

当 最佳编码( 稍大于 )

熵值是平均码字 的下限

熵编码又叫熵保存编码 信息保持编码 无失真压缩编码,要求编码输出码字的平均码长,只能大于等于信源熵,若不满足这个条件,在信源编码的过程中就要丢失信息,所以信源熵是无失真信源编码,输出码字平均码长的下限

常见熵编码方法:

霍夫曼编码,算术编码,行程编码

霍夫曼编码是根据变长编码的理论,不同的码字分配不相等的字长

霍夫曼编码基本原理:

对于会出现概率或频率较高的信息赋予较短的字长,对于出现概率或频率较低的信息赋予较长的字长

通过这种方法,是输出码字的平均码长最短,接近信源熵值

具体编码步骤归纳如下:

1、

JPEG图像编码标准采用的熵编码算法就是霍夫曼编码

实现起来简单,但解码的时候需要在接收端保存一个与发送端相同的霍夫曼码表

算术编码

相对来说比霍夫曼编码要复杂,但在数据传送的过程中利用算术编码不用传送霍夫曼编码的码表,且算术编码的自适应性使其在实际中得到广泛采用

基本原理:用0-1之间的一个小数来表示输入的字符串


原创粉丝点击