[发明专利]构建码表的方法和装置,编码、解码方法和装置有效
申请号: | 201210573145.1 | 申请日: | 2012-12-25 |
公开(公告)号: | CN103905054A | 公开(公告)日: | 2014-07-02 |
发明(设计)人: | 王森;林福辉;罗小伟 | 申请(专利权)人: | 展讯通信(上海)有限公司 |
主分类号: | H03M7/42 | 分类号: | H03M7/42 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 骆苏华 |
地址: | 201203 上海市浦东新区浦东*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 构建 码表 方法 装置 编码 解码 | ||
技术领域
本发明涉及编解码技术领域,特别涉及一种构建码表的方法和装置、编码方法和装置,基于码表的解码方法和装置。
背景技术
哈夫曼编码(Huffman Coding)是一种变长的无损数据压缩方法,利用信号源符号的概率分布来确定符号编码的信息量,对出现概率高的符号,采用短的码字描述,对于出现概率低的符号,采用长的码字来描述。
在多媒体压缩领域,哈夫曼编码是一种被广泛应用的算法。根据应用环境的不同,对哈夫曼解码的速度和解码时需要储存的码表大小有不同的要求。如在高清视频解码时,由于码率很高,解码速度要求很高;并且,由于码表一般储存在片上,对码表大小也有一定要求。
现有的解码方法包括线性搜索法、直接查表法、级别比较解析法和分步查表法等。
线性搜索法,按码字非减的顺序将码本排成一个表,每次读进一个比特,然后看排序的表中是否有完全匹配,如有则找到索引,没有则继续查找。这种方法的优点是所用的表比较小,但是读取每一位后都进行检索,解码速度太慢。
直接查表法,基于码字建立一张完备码长码表,这个完备码长码表的每项索引以哈夫曼码字为前缀,按一定规则扩展到最大码长长度,其索引值为相应哈夫曼前缀码码长。解码时,以最大码字长度截取码流,并将这个截取出的码流值作为索引,在码长码表中检索,得到码字码长。这种方法每解析一个码字只需一次查表,但对于最大码字长度为n的码表,需要2n个表项,当n比较大时,其码表的空间开销过大。
级别比较解析法,由于哈夫曼码字树并不一定每一级都有叶子,级别比较解析在线性搜索法的基础上,用一个叶子检索表来指示最近下一级存在哈夫曼码字的级别,并将同一级上最小码字作为前缀位,其余位补0,扩充到最大码长长度,用这个码建成一张定长码字检索表。解码时,将码流中取出的最大码字长度的数值与定长码字检索表里的码字从头开始逐步比较,直到码流数值小于定长码字检索表的码字,此时叶子检索表里当前级别数和码字长度相同。级别比较解析法相比线性搜索法能减少一定的检索次数,但这种减少依赖于哈夫曼码字树本身的结构,如果哈夫曼树有叶子节点的级别很多,则这种算法带来的效果改善就很小,其速度可能无法满足要求。
分步查表法,在码表中加入索引来指明下一次查表的位置,这样查表工作就被分为若干次完成,每次读入固定的比特数,如果命中则输出解码值,否则根据当前位置索引值去码表进行下一步搜索。分步查表法将查表过程分为多步,在一定程度上取得解码速度与码表大小的平衡,但每一步读取固定长度码流,使得码表中存在着大量冗余表项,增大了不必要的码表大小。
发明内容
本发明技术方案要解决的技术问题是现有的解码方法难以很好的满足解码速度和码表大小的要求。
为解决上述技术问题,本发明技术方案提供一种构建码表的方法,包括:
将变长编码的所有码字按高位对齐后进行排序;
对排序后的每个码字簇执行至少一步表项构造处理直至所有码字对应的标识信息均为叶子节点,所述码字簇为具有相同前缀的码字,所述前缀的比特数为第一步要读取的比特数;
所述表项构造处理包括:
为所述码字簇确定下一步要读取的比特数;
当所述码字簇中的码字的码长小于或等于已读取的比特数总和,则对应构造第一信息为对应该码字的信息、第二信息为当前读取的比特数中有效的比特数以及标识信息为叶子节点的表项;
当所述码字簇中的码字的码长大于已读取的比特数总和,则对应构造第一信息为对应该码字的下一表项的位置信息、第二信息为下一步要读取的比特数以及标识信息为中间节点的表项。
可选的,所述排序为从小到大排序。
可选的,在所述表项构造处理中,若码字簇中连续多个码字的码长均大于已读取的比特数总和,则仅对其中第一个码字构造对应的表项。
可选的,在所述表项构造处理中,当码字的码长小于已读取的比特数总和,还构造与该码字对应的表项相同的冗余表项。
可选的,所述前缀的比特数满足:码字簇的数量小于或等于2L0,其中L0为前缀的比特数。
可选的,所述下一步要读取的比特数满足:下一步读取到的Li比特的码字数据在[0,2Li-1]的范围内,其中Li为下一步要读取的比特数。
可选的,所述下一步要读取的比特数满足:下一步读取到的Li比特的码字数据尽量多地覆盖[0,2Li-1]的范围。
可选的,所述变长编码为哈夫曼编码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于展讯通信(上海)有限公司,未经展讯通信(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210573145.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种3D打印机机头控制电路
- 下一篇:铝塑散热器自动组装机