数据压缩霍夫曼编码算术编码

数据压缩霍夫曼编码算术编码

ID:39711604

大小:624.50 KB

页数:27页

时间:2019-07-09

上传者:U-145848
数据压缩霍夫曼编码算术编码_第1页
数据压缩霍夫曼编码算术编码_第2页
数据压缩霍夫曼编码算术编码_第3页
数据压缩霍夫曼编码算术编码_第4页
数据压缩霍夫曼编码算术编码_第5页
资源描述:

《数据压缩霍夫曼编码算术编码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

算术编码ArithmeticCoding 主要内容图像压缩编码简介Huffman编码算术编码简介算术编码原理算术编码的发展及应用 一图像压缩编码简介 霍夫曼编码霍夫曼编码(Huffmancoding)根据给定数据集中霍夫曼(D.A.Huffman)在1952年提出和描述的“从下到上”的熵编码方法各元素所出现的频率来压缩数据的一种统计压缩编码方法。这些元素(如字母)出现的次数越多,其编码的位数就越少广泛用在JPEG,MPEG,H.26X等各种信息编码标准中 熵(entropy)按照香农(Shannon)的理论,在有限的互斥和联合穷举事件的集合中,熵为事件的信息量的平均值,也称事件的平均信息量(meaninformationcontent)(依概率平均)用数学表示为熵是数据压缩的极限 霍夫曼编码(1)计算该字符串的霍夫曼码步骤①:按照符号出现概率大小的顺序对符号进行排序步骤②:把概率最小的两个符号组成一个节点P1步骤③:重复步骤②,得到节点P2,P3,P4,……,PN,形成一棵树,其中的PN称为根节点步骤④:从根节点PN开始到每个符号的树叶,从上到下 标上0(上枝)和1(下枝),至于哪个为1哪个为0则 无关紧要,但通常把概率大的标成1,概率小的 标成0.(标记)步骤⑤:从根节点PN开始顺着树枝到每个叶子分别写出 每个符号的代码.(反向编码) 霍夫曼编码霍夫曼编码举例1现有一个由5个不同符号组成的30个符号的字符串:BABACACADADABBCBABEBEDDABEEEBB计算(1)该字符串的霍夫曼码(2)该字符串的熵(3)该字符串的平均码长(4)编码前后的压缩比 霍夫曼编码符号出现的次数log2(1/pi)分配的代码需要的位数B101.585?A81.907?C33.322?D42.907?E52.585?合计30符号出现的概率 霍夫曼编码符号B(10)A(8)E(5)D(4)C(3)P1(7)P2(12)P3(18)P4(30)01101010代码B(11)A(10)E(00)D(011)C(010) 霍夫曼编码符号出现的次数log2(1/pi)分配的代码需要的位数B101.5851120A81.9071016C33.3220109D42.90701112E52.5850010合计306730个字符组成的字符串需要67位5个符号的代码 霍夫曼编码(2)计算该字符串的熵其中,是事件的集合,并满足H(S)=(8/30)×log2(30/8)+(10/30)×log2(30/10)+ (3/30)×log2(30/3)+(4/30)×log2(30/4)+ (5/30)×log2(30/5) =(44.3136-24.5592)/9.0308=2.1874(Sh)理论上可获得的压缩比为:3:2.1874=1.37 霍夫曼编码(3)计算该字符串的平均码长平均码长:=(2×8+2×10+3×3+3×4+2×5)/30=2.233位/符号压缩比:90/67=1.34:1平均码长:67/30=2.233位(4)计算编码前后的压缩比编码前:5个符号需3位,30个字符,需要90位编码后:共67位 算术编码简介算术编码(ArithmeticCoding):和霍夫曼编码不同,算术编码跳出。分组编码的范畴,从全序列出发,采用递推形式的连续编码不是将单个信源符号映射成一个码字,而是将整个输入符号序列映射为实数轴上[0,1)区间内的一个小区间,其长度等于该序列的概率,再在该小区间选择一个代表性的二进制小数,作为实际的编码输出。 算术编码算术编码(arithmeticcoding)给已知统计信息的符号分配代码的数据无损压缩技术基本思想是用0和1之间的一个数值范围表示输入流中的一个字符(串),而不是给输入流中的每个字符分别指定一个码字实质上是为整个输入字符流分配一个“码字”,因此它的编码效率可接近于熵 算术编码(1)基本思想:基于递归概率区间划分的二进制编码.具体过程:①把信源符号序列{Xi|i=1,2,…,n}发生的概率用实数区间[0,1]上的间隔(Xi的取值范围)来表示②按符号概率大小来分配符号间隔,使[0,1]随迭代计算次数的增加而逐次变窄;③所求最后范围便是替代{Xi}符号串编码的取值范围⑵应用实例:待编码符号串为X1,X2,X3,X4,X5 算术编码处理过程的编码区间分配可用图解法表示:以少代多思想:用最终求得的编码表示范围子区间的任何值(如:0.10603),来替代被编码符号串X1X2X3X4X5 无论是否是二元信源,也不论数据的概率分布如何,算术编码可以二进制小数表示,其平均码长可以接近无损压缩的熵极限。因此: 算术编码的发展历史:1960年,P.Elias首先提出把这种依附Shannon编码概念推广到对符号序列直接编码上,推出了所谓的算术编码(ArithmeticCoding);1948年,Shannon提出将信源依其概率降序排序,用符号序列累积概率的二进制表示对信源的编码;1976年,R.Pasco和J.Rissanen分别用定长的寄存器实现了有限精度的算术编码;1979年,Rissanen和G.G.Langdon将算术编码系统化,并于1981年将AC推广应用到二值图像编码上,大大提高了起压缩效率;1987年,Witten等人发表了一个实用的算术编码程序(CACM87,后用于H.263);同期IBM公司发表了著名的Q-编码器(后用于JPEG和JPIG); 设一个信源,它有两个符号a和b,出现的概率分别是p和1–p,设有一个基准区域[0,1],对它进行划分,以便与信源输出序列相对应。abp1aabap1p+p(1-p)bbabaabap2bbab图A符号序列与区域划分示意算术编码的基本原理 ab0.81aaba0.810.96bbabaaba0.64bbabaaabab0.810.960.64bbaaba0.5120.7680.9920.928bbbbaaabbaab例设一个信源,它有两个符号a和b,出现的概率分别是0.8和0.2,有3个符号输出时,符号序列与区域划分的对应关系。图B3符号输出时的符号序列与区域划分示意 字符串aabaa对应的区域为[0.512,0.59392)该区域的二进制表示[0.1000001…,0.1001100…)二进制数0.1001输出编码1001因此 对于这个信源:H(X)=0.7219Huffman编码:算术编码:平均码长R=0.8平均码长R=1相比Huffman编码,算术编码的编码效率有明显提高。对于长序列,理论上算术编码可以达到信源的熵。编码效率 算术编码过程:依据字符的发生概率对码区间的分割过程(即子区间宽度与正编码字符发生概率相乘的过程)。算术解码过程:只需知道最终编码区间中的某一个值就可以解码。算术编码每次递推都要做乘法,而且必须在一个信源符号的处理周期内完成,有时难以实时,为此采用了查表等许多近似计算来代替乘法。小结: 固定编码模式概率统计与区间分配直接影响编码效率。自适应模式各符号的概率初始值都相同,但依据实际出现的符号而相应地改变。两种编码模式: 算术编码的发展及应用jpeg、mpeg-1和mpeg-2等国际标准采用的图像压缩编码方案都是传统的“DCT+运动补偿+算术编码”模式JPEG2000、MQ算术编码器嵌入位平面图像编码器EZW、SPIHT和SPECK中也采用这种通用算法编码器 算术码评述能够自适应地估计条件概率,从信源的统计特性 出发,建立数据的概率模型。它不必预先定义信 源的概率模型,尤其适用于不可能进行概率统计 的场合;适用于信源符号概率比较接近的场合,在几种主 要的统计编码中(Huffman,LZ家族以及算术编 码中),算术编码具有最高的压缩效率。优点: 缺点:比霍夫曼编码复杂,特别是硬件实现;由于是变长码,也需要输入输出缓冲存储器, 只适用于分段信息;误差扩散比分组码更严重,误码不会自动恢复, 会一直延续下去,传输要求高质量的信道,或 采用检错反馈重发的方式。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭