[发明专利]一种基于上下文的快速哈夫曼解码方法无效
申请号: | 200710040446.7 | 申请日: | 2007-05-09 |
公开(公告)号: | CN101051846A | 公开(公告)日: | 2007-10-10 |
发明(设计)人: | 谭建国 | 申请(专利权)人: | 上海广电(集团)有限公司中央研究院 |
主分类号: | H03M7/40 | 分类号: | H03M7/40 |
代理公司: | 上海新天专利代理有限公司 | 代理人: | 张静洁 |
地址: | 200233*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 上下文 快速 哈夫曼 解码 方法 | ||
技术领域
本发明涉及编解码技术领域,尤其涉及一种通过查表进行哈夫曼解码的方法。
背景技术
哈夫曼编码是一种变长的无损数据压缩方法,广泛应用于语音,音频,视频,文本和数据等多媒体压缩领域,在MPEG(Moving Picture ExpertsGroup)、AVS(数字视音频编解码技术标准化工作组)、AC(Audio Coding)系列和H.26x(ITU-T视频编码标准)等音视频编码标准中,哈夫曼编码广泛被采用。哈夫曼编码利用了信号源符号的概率分布来确定符号编码的信息量,对于出现概率高的符号,采用短的码字来描述;对于出现概率低的符号,采用长的码字来描述。通过变长编码来消除信息之间的冗余,来实现对信号无损压缩的目的。
目前常见的哈夫曼解码方法有线性搜索法、直接查表法、二进制搜索法和分步查表法。其中线性搜索法效率和二进制搜索法的效率较低,不适合实时性要求高的场合;直接查表法效率稍高,但是内存开销较大;分步查表法是二进制搜索法和直接查表法的折衷;但是效率还不是很高。
在哈夫曼查表过程中,可以根据前面的搜索结果来进行下面的搜索查表,得到解码的结果,来使每一次的运算都为最终的结果做出贡献,从而最大程度地减少计算的复杂度,同时减少缓冲区的开销,这就是本专利中所提出的基于上下文的快速码字搜索算法。
发明内容
本发明提出了一种基于上下文的快速哈夫曼解码方法,每次搜索都对最终的搜索结果做出实质的贡献,最大限度的减少了运算的复杂度。
为了达到上述目的,本发明提供了一种基于上下文的快速哈夫曼解码方法,包含以下步骤:
步骤1、哈夫曼码表的重新构造;
步骤1.1、根据哈夫曼码表中码值的大小,按照从小到大的顺序进行排序,将排序后获得的新码值表存储在表Table_val中;
步骤1.2、将从原来哈夫曼码值表映射到新码值表Table_val的映射关系存储到表Table_Index中;
步骤1.3、按照表Table_Index中映射关系,将原哈夫曼码表中的码长表映射到表Table_len中;
此时的表Table_val,Table_len和Table_Index就是步骤1构造成的新哈夫曼码表;
步骤2、基于步骤1中所构造的新哈夫曼码表进行基于上下文的快速码字搜索方法:
步骤2.1、首先从比特流中取出1个比特位,并把读取的值赋值给val变量:
val=unpack(1);
bitCnt=1;
m=0;
unpack(1)函数表示从码流中提取出一个比特位;bitCnt用来存储从比特流中提取的比特位数;m用来存储前一次在码表中搜索到的位置索引;val用来存储当前读取出bitCnt个比特位数后的值;
步骤2.2、不断地从比特流中提取比特数:赋值j=1;
步骤2.3、若j<Maxbits,进行步骤2.4;其中,Maxbits是从码流中最大提取比特的位数;若j>=Maxbits,说明Maxbits设置错误,退出程序,校正Maxbits值;
步骤2.4、查找val变量的当前值在哈夫曼码值表Table_val中的位置,该查找方法是基于上一次的查找结果m基础上的单调递增值,满足下面的关系:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海广电(集团)有限公司中央研究院,未经上海广电(集团)有限公司中央研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710040446.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用以调整图像的对比度的方法及装置
- 下一篇:一种内容监控方法及装置