一种哈夫曼解码方法及装置的制造方法

文档序号:9263208阅读:186来源:国知局
一种哈夫曼解码方法及装置的制造方法
【技术领域】
[0001] 本发明涉及编解码技术领域,具体涉及一种哈夫曼解码方法及装置。
【背景技术】
[0002] 范式哈夫曼huffman算法码表分为两部分,第一部分存储了 1-16码长的码字数 量,第二部分存储正确码字的分布式哈希表(DistributedHashTable,DHT),解码过程利 用这两个部分得到完整的哈夫曼huffman树表,从而完成范式huffman解码。
[0003] 范式huffman编码中长度为h的码字的前j位数值大于长度为L的码字的数值, 其中i>j,根据这个特性很容易能够构造出范式huffman编码的解码算法,即逐位读入码 流,根据读入码流的大小判断是否属于当前码段,是则获得编码长度,否则继续读入下一位 码字进行比较。由此可以看出由于这种不定长编码方法,必须逐位读入码流,判断有效码流 长度后,再进行查表解码,效率低下。
[0004] 由此可见,现有技术中的哈夫曼解码方案都是采用逐位判断得到有效码长后再进 行解码,导致解码效率低下。

【发明内容】

[0005] 本发明实施例提供一种哈夫曼解码方法,可以结合现场可编程逻辑门阵列FPGA 来实现并行码长获取,从而提高了范式huffman解码效率。本发明实施例还提供了相应的 装直。
[0006] 本发明第一方面提供一种哈夫曼解码的方法,包括:
[0007] 接收待解码码字;
[0008] 将所述待解码码字分别与每个码长对应的码字最小值进行比较;
[0009] 当所述待解码码字小于所述每个码长中任意一个码长对应的码字最小值时,确定 所述待解码码字的有效码长;
[0010] 根据所述有效码长,从码长与解码码字的对应关系中查找所述有效码长对应的解 码码字,实现解码。
[0011] 本发明第二方面提供一种哈夫曼解码的装置,
[0012] 接收单元,用于接收待解码码字;
[0013] 比较单元,用于将所述接收单元接收的所述待解码码字分别与每个码长对应的码 字最小值进行比较;
[0014] 确定单元,用于当所述比较单元比较出所述待解码码字小于所述每个码长中任意 一个码长对应的码字最小值时,确定所述待解码码字的有效码长;
[0015] 解码单元,用于根据所述确定单元确定的所述有效码长,从码长与解码码字的对 应关系中查找所述有效码长对应的解码码字,实现解码。
[0016] 本发明实施例采用接收待解码码字;将所述待解码码字分别与每个码长对应的码 字最小值进行比较;当所述待解码码字小于所述每个码长中任意一个码长对应的码字最小 值时,确定所述待解码码字的有效码长;根据所述有效码长,从码长与解码码字的对应关 系中查找所述有效码长对应的解码码字,实现解码。与现有技术中哈夫曼解码都是采用逐 位判断得到有效码长后再进行解码,导致解码效率低下相比,本发明实施例提供的哈夫曼 解码的方法,可以结合现场可编程逻辑门阵列FPGA来实现并行码长获取,从而提高了范式 huffman解码效率。
【附图说明】
[0017] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附 图。
[0018] 图1是哈夫曼解码的方法的一实施例示意图;
[0019] 图2是哈夫曼解码的方法的另一实施例示意图;
[0020] 图3是哈夫曼解码的方法的另一实施例示意图;
[0021] 图4是哈夫曼解码的装置的一实施例示意图;
[0022] 图5是哈夫曼解码的装置的另一实施例示意图。
【具体实施方式】
[0023] 本发明实施例提供一种哈夫曼解码方法,可以结合现场可编程逻辑门阵列FPGA 来实现并行码长获取,从而提高了范式huffman解码效率。本发明实施例还提供了相应的 装置。以下分别进行详细说明。
[0024] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。
[0025] 参阅图1,本发明实施例提供的哈夫曼解码的方法的一实施例包括:
[0026] 101、接收待解码码字。
[0027] 待解码码字是二进制的码流,本发明实施例中待解码码字可以为16bit码流。
[0028] 102、将所述待解码码字分别与每个码长对应的码字最小值进行比较。
[0029] 本发明实施例中,在范式huffman编码中,对于任意两个huffman码字Wpw2, 其码长分别为h、12,如果h〈i2,那么有其中 表示Wl的二进制序列后跟lmax_lll的整数值,I({w2,0[lmax-12]})表 示w2的二进制序列后跟1 _-12个0的整数值。
[0030] 利用范式huffman算法的这一特性,对每个长度为len的huffman码段的第一个 码字first[len]进行扩展,将其固定成lmax位长的first_min[len],len的长度有16位, 分别为0-15,每个len都对应有一个码字最小值first_min[len],可以用表1来展示len 与first_min[len]的对应关系,如表1所示:
[0031] 表 1:len与first_min[len]的对应关系表
[0032]
[0033]
[0034] 待解码码字在比较时,可以分别与first_min[0-first_min[15]进行比较,这样 并行比较就可以提高比较的效率,从而提高解码的效率。
[0035] 103、当所述待解码码字小于所述每个码长中任意一个码长对应的码字最小值时, 确定所述待解码码字的有效码长。
[0036] 本发明实施例中的小于所述每个码长中任意一个码长对应的码字最小值,是指位 于该最小值与下一个码长对应的码字最小值之间,例如:待解码码字小于first_min[3], 则是指该待解码码字处于first_min[3]和first_min[2]之间,则待解码码字的有效码长 为 3-1 = 2。
[0037] 104、根据所述有效码长,从码长与解码码字的对应关系中查找所述有效码长对应 的解码码字,实现解码。
[0038] 在解码端,可以存储有两张表,一张是码长表,一张是解码码字表,每个码长都会 有对应的解码码字,一旦码长确定,就可以找到相应的解码码字实现解码。
[0039] 本发明实施例采用接收待解码码字;将所述待解码码字分别与每个码长对应的码 字最小值进行比较;当所述待解码码字小于所述每个码长中任意一个码长对应的码字最小 值时,确定所述待解码码字的有效码长;根据所述有效码长,从码长与解码码字的对应关 系中查找所述有效码长对应的解码码字,实现解码。与现有技术中哈夫曼解码都是采用逐 位判断得到有效码长后再进行解码,导致解码效率低下相比,本发明实施例提供的哈夫曼 解码的方法,可以结合现场可编程逻辑门阵列FPGA来实现并行码长获取,从而提高了范式 huffman解码效率。
[0040] 可选地,在上述图1对应的实施例的基础上,本发明实施例提供的哈夫曼解码的 方法的第一个可选实施例中,所述将所述待解码码字分别与每个码长对应的码字最小值进 行比较,可以包括:
[0041] 通过现场可编程逻辑门阵列FPGA的并行比较器将所述待解码码字分别与每个码 长对应的码字最小值进行比较。
[0042] 本发明实施例中,因FPGA是一种可编程的门阵列硬件逻辑,里面有大量可并行执 行的比较器,但是本身的主频较低(一般只有200MHz-300MHz左右),非常适合用于单位任 务粒度较轻的并行计算处理中,本发明实施例提供的式huffman解码方案的并行比较方式 可以完全发挥出FPGA的硬件特点,大大提高哈夫曼解码的实时性。
[0043] 当然,本发明实施例提供的方案不限于通过FPGA执行并行计算,还可以是通过中 央处理器CPU执行。
[0044] 可选地,在上述图1对应的实施例或第一个可选实施例的基础上,本发明实施例 提供的哈夫曼解码的方法的第二个可选实施例中,所述将所述待解码码字分别与每个码长 对应的码字最小值进行比较,可以包括:
[00
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1