发明名称 一种基于非完备码表解析码长的哈夫曼解码方法
摘要 本发明公开了一种基于非完备码表解析码长的哈夫曼解码方法,步骤包括:构建所有用于级别比较解析的码表;确定非完备码表临界码长L;再构建L比特非完备码表;读取最大码长长度的码流数值,在对应的以各级哈夫曼最小码字为前缀的定长码字检索表里检索级别为(L+1)的码字;解析L级之后的首个码字长度;查取其对应符号值,完成码流中首个码字的解析;从当前码流中剔除已经解析的码字,重复上述步骤完成所有哈夫曼码的解码。本发明可以大大减少存储空间和加快了检测速度;当最大码长为16时,其空间复杂度只有完备码表解析法的<img file="200810218565.1_AB_0.GIF" wi="24" he="36" />,极大地节省了存取空间。
申请公布号 CN101729076A 申请公布日期 2010.06.09
申请号 CN200810218565.1 申请日期 2008.10.22
申请人 安凯(广州)软件技术有限公司 发明人 裴少芳;苏丹;叶广明;胡胜发
分类号 H03M7/42(2006.01)I 主分类号 H03M7/42(2006.01)I
代理机构 广州知友专利商标代理有限公司 44104 代理人 宣国华
主权项 一种基于非完备码表解析码长的哈夫曼解码方法,其特征在于,步骤包括:(a)、按级别比较解析法,构建所有用于级别比较解析的码表,包括叶子检索表和各级哈夫曼最小码字为前缀的定长码字检索表;(b)、确定非完备码表临界码长L:从最小码长和最大码长之间选择一个值L,作为构建非完备码表的临界码长;(c)、基于码流中所包含的所有哈夫曼码字生成树的不超过临界码长L比特的叶子码字,再构建一个以哈夫曼码字为前缀的L比特非完备码表;(d)、按照当前码流中待解析部分所属的哈夫曼码字生成树,读取最大码长长度的码流数值,以这个码流数值为索引,按照当前待解析码流所属的哈夫曼码字生成树,在对应的以各级哈夫曼最小码字为前缀的定长码字检索表里检索级别(码长)为(L+1)的码字;(e)、比较码流数值与刚检索到的(L+1)级的定长码字,若码流数值小于刚检索到的码字,以码流数值的前L比特为新的索引,在对应的非完备码长码表部分检索,检索到的值即为当前码流待解析部分首个码字码长;反之,以旧的码流数值作为比较对象,按照级别比较解析法,解析其对应的L级之后的首个码字长度;(f)、根据已解析的码长,在当前码流中提取其码字,基于码字对应的符号表,查取其对应符号值,即可完成码流中首个码字的解析;(g)、从当前码流中剔除已经解析的码字,将剩余码流重复步骤d、e、f,即可完成所有哈夫曼码的解码。
地址 510630 广东省广州市天河科技园软件园高唐新建区高普路1033号6楼