[发明专利]一种基于条件概率的哈夫曼解码的方法有效
申请号: | 200710027425.1 | 申请日: | 2007-04-05 |
公开(公告)号: | CN101282121A | 公开(公告)日: | 2008-10-08 |
发明(设计)人: | 冯云庆;姜喆;苏丹;周林均 | 申请(专利权)人: | 安凯(广州)软件技术有限公司 |
主分类号: | H03M7/42 | 分类号: | H03M7/42 |
代理公司: | 广州知友专利商标代理有限公司 | 代理人: | 宣国华 |
地址: | 510630广东省广州市天河*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 条件 概率 哈夫曼 解码 方法 | ||
技术领域
本发明涉及一种解码方法,特别涉及一种基于条件概率的哈夫曼解码的方法。
背景技术
在数据压缩领域哈夫曼算法应用得非常广泛,特别是各种音频和视频的编解码算法中都应用到这种算法。哈夫曼算法是一种根据待压缩数据中各元素出现的概率进行编码和解码的算法,能无损压缩数据所占用的空间。编码过程举例如下。
待压缩数据:AABCABAADACB
不压缩情况下编码如下:00-A,01-B,10-C,11-D
不压缩情况下表示为:00 00 01 10 00 01 00 00 11 00 10 01
设各元素出现概率为:P(A)=0.6,P(B)=0.25,P(C)=0.15,P(D)=0.05
编码表为:1-A,01-B,001-C,000-D
压缩后码流为:11 01 001 1 01 1 1 000 1 001 01
不压缩存储该数据需要24个字符,压缩后只需要21个字符,减少了3个字符的空间。各元素出现概率是一个先验数据,一般是根据待压缩数据的特性推算得出,或者对大量待压缩数据进行统计得出。
解码是编码的逆过程,方法是重复在码流中查找编码表中的码字,再还原为码字对应的信息,最后依次组合为待压缩数据。上述例子的压缩码流解码过程如下:
压缩码流为:1 1 01 001 1 01 1 1 000 1 001 01
解码后数据:A A B C A B A A D A C B
在音频和视频的编解码算法中的熵编码环节一般采用哈夫曼算法进行处理。编码过程将之前环节生成的中间数据按编码表转换为对应的码字,再按照一定的格式生成最终的码流。解码过程首先在码流中依次查找编码表中的码字,转换为对应的中间结果,再由后续环节进行处理。实际应用中的编码表一般都有几百个码字,根据各元素出现的概率制定。可见,哈夫曼解码过程实际上是一个包含大量查表操作的匹配过程,减少匹配所需的查表次数就能加快哈夫曼解码的速度。以下描述了哈夫曼解码中查表匹配的常见解决方案。
(1)、顺序查找法。从编码表中依次取出码字,根据该码字的长度取码流首部相同位数的二进制序列进行比较,如果相同则匹配成功,否则取下一个码字重复上述过程。顺序查找法的效率较低,对于具有几百个码字的码表,每次一般需要几十次以上的比较,优点是节省码表所占用的空间。
(2)、优化的顺序查找法。在解码前首先对编码表进行重排,按照各码字出现的概率从大到小排列,然后在顺序查找法中使用整理后的编码表。出现概率大的码字只需较少的比较次数就能查找成功,总体查表次数有所降低,速度比原始的顺序查找法有所提高。
(3)、索引查找法。对码表中所有码字按照前若干位分类,形成若干个相对较小的子编码表和一个索引表。解码时首先取码流的前若干位,根据索引表比较得到该码字所属的子编码表,然后在该子编码表中进行顺序查找。由于各子编码表中码字数量较少,本方法减少了查表次数。
现有普遍使用的哈夫曼解码算法主要利用编码表体现的码字出现的概率,查表次数都比较多。由于各码字出现的概率体现的是该码字出现的独立概率,实际上前后出现的两个码字往往具有一定的条件概率关系,充分利用这种关系可以减少查表操作的次数,提高哈夫曼解码算法的速度。
发明内容
本发明的目的在于提供一种基于条件概率的哈夫曼解码的方法,从而能达到显著减少查表次数,大大提高解码速度。
为了实现上述目的,本发明提供的一种基于条件概率的哈夫曼解码的方法,包括以下步骤:
1)、获得待压缩数据中各个码字出现的条件概率,构成各码字的条件概率表;
2)、在码字概率从大到小排列中选择前50%的码字各自作为前一码字分别构建相应的子编码表,该子编码表是由所述前一码字中对应条件概率表中条件概率值大于0.1的码字及其索引值构成;
3)、对各码字进行查表匹配,根据前一码字和步骤2)的子编码表的存在与否,对应选择子编码表或待压缩数据的原编码表为当前码表,并按顺序找到匹配码字,得到相关信息完成解码。
本发明所述步骤1)的条件概率为前一码字出现特定码字后,当前位置出现某个码字的概率。
本发明所述步骤2)的索引值为对应码字在待压缩数据的原编码表的位置值,用于查找该码字在原编码表中的所有相关信息。
本发明所述步骤2)的条件概率值大于0.1的码字按其出现在特定前一码字后的概率大小排列组成子编码表。
本发明所述步骤3)的查表匹配过程包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安凯(广州)软件技术有限公司,未经安凯(广州)软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710027425.1/2.html,转载请声明来源钻瓜专利网。