CN112332854A - 霍夫曼编码的硬件实现方法、装置及存储介质 - Google Patents
霍夫曼编码的硬件实现方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112332854A CN112332854A CN202011351653.6A CN202011351653A CN112332854A CN 112332854 A CN112332854 A CN 112332854A CN 202011351653 A CN202011351653 A CN 202011351653A CN 112332854 A CN112332854 A CN 112332854A
- Authority
- CN
- China
- Prior art keywords
- frequency
- value
- character
- count
- minimum frequency
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 125000004122 cyclic group Chemical group 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 4
- 239000002131 composite material Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种霍夫曼编码的硬件实现方法、装置及存储介质,涉及数据处理领域。其中方法包括:读取待编码字符串,并通过多个计数器对待编码字符串的各个字符值进行统计,得到待编码字符串的字符值的数量n和各字符值的频数;构建n个第一结构体,其中,第一结构体的属性包括字符值、第一频数和第一编码值;构建与n个第一结构体一一对应的n个第二结构体,其中,第二结构体的属性包括第二频数;根据第二结构体的第二频数,循环更新第二结构体和第一结构体之间的对应关系,并根据第二结构体和第一结构体之间的对应关系更新第一结构体的第一编码值,以生成各字符值的霍夫曼编码值。上述方法提高了霍夫曼编码效率和硬件利用率,减少了资源的消耗。
Description
技术领域
本发明涉及数据处理领域,尤其是涉及一种霍夫曼编码的硬件实现方法、装置、存储介质及计算机设备。
背景技术
霍夫曼编码(Huffman Coding),又称哈夫曼编码,是一种可变字长的编码方法。该编码方法最早由Huffman于1952年提出,该编码方法完全依据字符出现概率来构造异字头的平均长度最短的码字,在霍夫曼编码中,出现概率高的字符使用较短的编码,出现概率低的字符使用较长的编码,从而使编码后的平均码字长最短,因此,对字符串进行霍夫曼编码可以最大化的节省字符编码的存储空间。
现有的霍夫曼编码可以应用于多个领域,如文本处理领域、图像处理领域和视频处理领域等等,以图像处理领域来说,霍夫曼编码在该领域已形成了完善的代码库,应用面十分广泛,但是,伴随着计算机在数字图像处理方面的飞速发展,数字图像处理的实时性和高效性也变得越来越重要,基于这种需求,传统的通过软件实现霍夫曼编码从而完成数字图像处理的方式已经不能很好满足设计者的需求,与此相对的,通过硬件实现霍夫曼编码并进行数字图像处理的方式开始成为一种新的趋势。与此同时,霍夫曼编码在图像处理领域中出现的问题,在文本处理领域和视频处理领域也同样存在。
在现有技术中,通过硬件方式实现霍夫曼编码的方法主要有两种,一种是预先构造霍夫曼编码表,然后利用编码器通过查表的方法获取霍夫曼编码;另一种是编码器动态生成霍夫曼树,然后通过遍历节点方式获取霍夫曼编码。但是,第一种方法从平均码长角度看,在很多情况下不是最优的获取霍夫曼编码的方式;第二种方法则需要生成完整的霍夫曼树,这会产生大量的节点,且遍历霍夫曼树提取霍夫曼编码的方式也会占用较多资源,从而降低霍夫曼编码的效率。因此,目前亟需一种能够减少资源消耗、且能够提高编码效率的硬件实现霍夫曼编码的方法,从而有效的提高文本、图像或视频等资源的处理精度和效率。
发明内容
有鉴于此,本申请提供了一种霍夫曼编码的硬件实现方法、装置、存储介质及计算机设备,主要目的在于解决现有技术中硬件实现霍夫曼编码会造成一定程度的资源浪费,且会降低编码解码效率的技术问题。
根据本发明的第一个方面,提供了一种霍夫曼编码的硬件实现方法,该方法包括:
读取待编码字符串,并通过多个计数器对待编码字符串的各个字符值进行统计,得到待编码字符串的字符值的数量n和各字符值的频数;
构建n个第一结构体,其中,第一结构体的属性包括字符值、第一频数和第一编码值,第一频数为字符值的频数;
构建与n个第一结构体一一对应的n个第二结构体,其中,第二结构体的属性包括第二频数,第二频数为与第二结构体对应的第一结构体的第一频数之和;
根据第二结构体的第二频数,循环更新第二结构体和第一结构体之间的对应关系,并根据第二结构体和第一结构体之间的对应关系更新第一结构体的第一编码值,以生成各字符值的霍夫曼编码值。
根据本发明的第二个方面,提供了一种霍夫曼编码的硬件实现装置,该装置包括:
字符串读取模块,用于读取待编码字符串,并通过多个计数器对待编码字符串的各个字符值进行统计,得到待编码字符串的字符值的数量n和各字符值的频数;
第一结构体构建模块,用于构建n个第一结构体,其中,第一结构体的属性包括字符值、第一频数和第一编码值,第一频数为字符值的频数;
第二结构体构建模块,用于构建与n个第一结构体一一对应的n个第二结构体,其中,第二结构体的属性包括第二频数,第二频数为与第二结构体对应的第一结构体的第一频数之和;
循环编码模块,用于根据第二结构体的第二频数,循环更新第二结构体和第一结构体之间的对应关系,并根据第二结构体和第一结构体之间的对应关系更新第一结构体的第一编码值,以生成各字符值的霍夫曼编码值。
根据本发明的第三个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述霍夫曼编码的硬件实现方法。
根据本发明的第四个方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述霍夫曼编码的硬件实现方法。
本发明提供的一种霍夫曼编码的硬件实现方法、装置、存储介质及计算机设备,首先读取待编码字符串,并对字符串中的字符值进行统计,得到字符值的数量n和各字符值的频数,然后构建n个第一结构体和与n个第一结构体一一对应的n个第二结构体,最后根据第二结构体的第二频数,循环更新第二结构体和第一结构体之间的对应关系,并根据第二结构体和第一结构体之间的对应关系更新第一结构体的第一编码值,生成各字符值的霍夫曼编码值。上述利用第一结构体和第二结构体的复合数据结构生成霍夫曼编码的方法,可以适用于硬件模块并行实现霍夫曼编码过程,有效的提高了霍夫曼编码的效率,并且,上述方法在更新第二结构体和第一结构体之间的对应关系的同时可以逐步生成霍夫曼编码,无需额外操作提取霍夫曼编码,提高了硬件利用率,减少了资源的消耗。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了本发明实施例提供的一种霍夫曼编码的硬件实现方法的流程示意图;
图2示出了本发明实施例提供的另一种霍夫曼编码的硬件实现方法的流程示意图;
图3示出了本发明实施例提供的一种霍夫曼编码的硬件实现方法的场景示意图;
图4示出了本发明实施例提供的一种霍夫曼编码的硬件实现方法的场景示意图;
图5示出了本发明实施例提供的一种霍夫曼编码的硬件实现方法的场景示意图;
图6示出了本发明实施例提供的另一种霍夫曼编码的硬件实现装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在一个实施例中,如图1所示,提供了一种霍夫曼编码的硬件实现方法,以该方法应用于FPGA等硬件模块为例进行说明,包括以下步骤:
101、读取待编码字符串,并通过多个计数器对待编码字符串的各个字符值进行统计,得到待编码字符串的字符值的数量n和各字符值的频数。
其中,待编码字符串指的是一系列由数字和字母组成的字符序列,待编码字符串的字符值指的是字符串中的一个数字或字母,字符值的数量指的是字符串中出现的数字或字母的种类数,字符值的频数指的是一个数字或字母在字符串中出现的概率值。进一步的,从待编码字符串的种类上来说,待编码字符串可以是经过数位处理的文本字符串、图像字符串或视频字符串,也可以是自定义的待编码字符串,相应的,本实施例所提供的方法可以应用于文本处理,图像处理和视频处理领域中,例如,当本方法应用于图像处理领域时,待编码字符串为位图图像,位图图像指的是用像素点值来描述的图,即像素点序列值。
具体的,硬件模块可以首先从存储器中读取出待编码字符串,然后通过多个计数器对字符串中每个字符值的种类、数量和出现概率进行统计,得到待编码字符串的字符值的数量n和各字符值的频数,其中,统计出的各字符值的频数可以分别存储在n个寄存器中,当待编码字符串输入结束时,或待编码字符串的总量已经达到预定数量时,硬件模块可以将寄存器中的各字符值的频数进行并行输出。在本实施例中,存储器具体可以为FIFO存储器,FIFO存储器是一个先入先出的双口缓冲器,即第一个进入其内的数据第一个被移出,FIFO存储器的一个口是存储器的输入口,另一个口是存储器的输出口。
举例来说,如图3所示,经过统计,在读取出的待编码字符串中,字符“a”出现的概率为5%,字符“b”出现的概率为15%,字符“c”出现的概率为20%,字符“d”出现的概率为25%,字符“e”出现的概率为35%,且除以上几种字符值以外,其他种类的字符值并未出现在该字符串中,则该待编码字符串的字符值分别为a、b、c、d、e,字符值的数量n为5,各字符值的频数分别为5、15、20、25、35。
102、构建n个第一结构体,其中,第一结构体的属性包括字符值、第一频数和第一编码值,第一频数为字符值的频数。
其中,结构体指的是一种数据存储结构,结构体可以包含有一种或多种属性,且在结构体中,其属性可以根据需要进行添加和删除。通常来说,对于不同种类的结构体,其属性是不相同的。在本实施例中,第一结构体指的是一个种类的结构体,该结构体包括多个属性,以第一结构体为基础,构建的n个第一结构体均包含有第一结构体的属性,但是属性值各不相同。
具体的,硬件模块可以首先构建第一结构体,第一结构体的属性包括字符值、第一频数和第一编码值,其中,第一频数为字符值的频数,第一编码值对应字符值的编码值,在构建好第一结构体之后,硬件模块可以以第一结构体为基础定义n个第一结构体,其中,n为字符值的数量,对于定义的每一个结构体来说,其属性值均与一个字符值、该字符值的频数以及该字符值的编码值相对应。也就是说,n个第一结构体的属性值正好与n个字符值、n个字符值的频数和n个字符值的编码值相对应。在本实施例中,n个第一结构体的各个属性值可以存储在预先定义好的各个寄存器中。需要说明的是,在初始化状态下,每一个第一结构体的第一编码值都为0。
举例来说,如图3所示,对于步骤101中的待编码字符串来说,应定义5个第一结构体,5个第一结构体分别与字符值a、b、c、d、e相对应。对于与字符值为a相对应的第一结构体来说,该第一结构体的属性值分别为a(字符值)、5(字符值的频数)和0(初始状态下字符值的编码值)。
103、构建与n个第一结构体一一对应的n个第二结构体,其中,第二结构体的属性包括第二频数,第二频数为与第二结构体对应的第一结构体的第一频数之和。
具体的,硬件模块在构建好第一结构体之后,可以继续构建与n个第一结构体一一对应的n个第二结构体,其中,n为字符值的数量。在本实施例中,第二结构体是与第一结构体不相同的另一个种类的结构体,第二结构体的属性包括第二频数,第二频数为与第二结构体对应的第一结构体的第一频数之和。在本实施例中,n个第二结构体的属性值也可以存储在预先定义好的各个寄存器中。需要说明的是,在初始化状态下,n个第二结构体的第二频数和与其对应的第一结构体的第一频数相同,因为在初始化状态下,每一个第二结构体只对应一个第一结构体。
举例来说,如图3所示,对于步骤101中的待编码字符串来说,应定义5个第二结构体,在初始化状态下,5个第二结构体分别与5个第一结构体相对应(图中用虚线框表示第一结构体和第二结构体的对应关系)。对于与字符值为a相对应的第一结构体来说,该第一结构体的属性值分别为a(字符值)、5(字符值的频数)和0(初始状态下字符值的编码值),则与该第一结构体相对应的第二结构体的属性值为5(与该第二结构体对应的第一结构体的第一频数之和)。
104、根据第二结构体的第二频数,循环更新第二结构体和第一结构体之间的对应关系,并根据第二结构体和第一结构体之间的对应关系更新第一结构体的第一编码值,以生成各字符值的霍夫曼编码值。
具体的,硬件模块在构建好第一结构体和第二结构体之后,可以根据第二结构体的第二频数,对第二结构体进行排序、挑选、求和和频数更新等操作,然后根据操作的结果对第二结构体和第一结构体之间的对应关系进行更新,最后根据更新后的第二结构体和第一结构体之间的对应关系更新第一结构体的第一编码值,每一次操作之后,发生对应关系更新的第一结构体的第一编码值就会更新一位,上述操作循环执行多次之后,就会出现一个第二结构体对应所有第一结构体的情形,此时即可结束循环操作,而n个第一结构体中的n个第一编码值即为生成的各字符值的霍夫曼编码值。
需要说明的是,上述排序、挑选、求和、频数更新、对应关系更新和第一编码值更新等循环操作与生成霍夫曼树的原理类似,都是挑选出最小频数对应的字符值和次小频数对应的字符值,然后对最小频数和次小频数进行求和,继而更新频数和编码值,但是,本方案与生成霍夫曼树的方法相比,可以减少大量节点的产生,霍夫曼编码也无需遍历霍夫曼树进行提取,可以有效的减少资源消耗,提高编码效率。另一方面,本方法与构造霍夫曼编码表的方式相比,也可以省去查表获取霍夫曼编码的操作,从而减少资源消耗以及提高编码效率。
本实施例提供的霍夫曼编码的硬件实现方法,首先读取待编码字符串,并对字符串中的字符值进行统计,得到字符值的数量n和各字符值的频数,然后构建n个第一结构体和与n个第一结构体一一对应的n个第二结构体,最后根据第二结构体的第二频数,循环更新第二结构体和第一结构体之间的对应关系,并根据第二结构体和第一结构体之间的对应关系更新第一结构体的第一编码值,生成各字符值的霍夫曼编码值。上述利用第一结构体和第二结构体的复合数据结构生成霍夫曼编码的方法,可以适用于硬件模块并行实现霍夫曼编码过程,有效的提高了霍夫曼编码的效率,并且,上述方法在更新第二结构体和第一结构体之间的对应关系的同时可以逐步生成霍夫曼编码,无需额外操作提取霍夫曼编码,提高了硬件利用率,减少了资源的消耗。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的实施过程,提供了霍夫曼编码的硬件实现方法,如图2所示,该方法包括以下步骤:
201、读取待编码字符串,并通过多个计数器对待编码字符串的各个字符值进行统计,得到待编码字符串的字符值的数量n和各字符值的频数。
其中,待编码字符串可以是经过数位处理的文本字符串、图像字符串或视频字符串,也可以是自定义的待编码字符串,相应的,本实施例所提供的方法可以应用于文本处理,图像处理和视频处理领域中,例如,当本方法应用于图像处理领域时,待编码字符串为位图图像,位图图像指的是用像素点值来描述的图,即像素点序列值。
具体的,硬件模块可以首先从存储器中读取出待编码字符串,然后通过多个计数器对字符串中每个字符值的种类、数量和出现概率进行统计,得到待编码字符串的字符值的数量n和各字符值的频数,其中,统计出的各字符值的频数可以分别存储在n个寄存器中,当待编码字符串输入结束时,或待编码字符串的总量已经达到预定数量时,硬件模块可以将寄存器中的各字符值的频数进行并行输出。在本实施例中,存储器具体可以为FIFO存储器,FIFO存储器是一个先入先出的双口缓冲器,即第一个进入其内的数据第一个被移出,FIFO存储器的一个口是存储器的输入口,另一个口是存储器的输出口。
举例来说,如图3所示,经过统计,在读取出的待编码字符串中,字符“a”出现的概率为5%,字符“b”出现的概率为15%,字符“c”出现的概率为20%,字符“d”出现的概率为25%,字符“e”出现的概率为35%,且除以上几种字符值以外,其他种类的字符值并未出现在该字符串中,则该待编码字符串的字符值分别为a、b、c、d、e,字符值的数量n为5,各字符值的频数分别为5、15、20、25、35。
202、构建n个第一结构体,其中,第一结构体的属性包括字符值、第一频数、第一编码值和第一编码长度,第一频数为字符值的频数。
其中,第一结构体指的是一个种类的结构体,该结构体包括多个属性,以第一结构体为基础,构建的n个第一结构体均包含有第一结构体的属性,但是属性值各不相同。
具体的,硬件模块可以首先构建第一结构体,第一结构体的属性包括字符值、第一频数、第一编码值和第一编码长度,其中,第一频数为字符值的频数,第一编码值对应字符值的编码值,第一编码长度对应字符值的编码码长,在构建好第一结构体之后,硬件模块可以以第一结构体为基础定义n个第一结构体,其中,n为字符值的数量,对于定义的每一个结构体来说,其属性值均与一个字符值、该字符值的频数、该字符值的编码值以及该字符值的编码长度相对应。也就是说,n个第一结构体的属性值正好与n个字符值、n个字符值的频数、n个字符值的编码值和n个字符值的编码长度相对应。在本实施例中,n个第一结构体的各个属性值可以存储在预先定义好的各个寄存器中。需要说明的是,在初始化状态下,每一个第一结构体的第一编码值都为0。
举例来说,如图3所示,对于步骤201中的待编码字符串来说,应定义5个第一结构体,5个第一结构体分别与字符值a、b、c、d、e相对应。对于与字符值为a相对应的第一结构体来说,该第一结构体的属性值分别为a(字符值)、5(字符值的频数)和0(初始状态下字符值的编码值)。
203、构建与n个第一结构体一一对应的n个第二结构体,其中,第二结构体的属性包括第二频数和唯一标识,第二频数为与第二结构体对应的第一结构体的第一频数之和。
具体的,硬件模块在构建好第一结构体之后,可以继续构建与n个第一结构体一一对应的n个第二结构体,其中,n为字符值的数量。在本实施例中,第二结构体是与第一结构体不相同的另一个种类的结构体,第二结构体的属性包括第二频数和唯一标识,第二频数为与第二结构体对应的第一结构体的第一频数之和,唯一标识是与第二结构体对应的ID编码。在本实施例中,n个第二结构体的属性值也可以存储在预先定义好的各个寄存器中。需要说明的是,在初始化状态下,n个第二结构体的第二频数和与其对应的第一结构体的第一频数相同,因为在初始化状态下,每一个第二结构体只对应一个第一结构体。
举例来说,如图3所示,对于步骤201中的待编码字符串来说,应定义5个第二结构体,在初始化状态下,5个第二结构体分别与5个第一结构体相对应(图中用虚线框表示第一结构体和第二结构体的对应关系)。对于与字符值为a相对应的第一结构体来说,该第一结构体的属性值分别为a(字符值)、5(字符值的频数)和0(初始状态下字符值的编码值),则与该第一结构体相对应的第二结构体的属性值为5(与该第二结构体对应的第一结构体的第一频数之和)和1(第二结构体的唯一标识)。
204、根据第二结构体的第二频数,对第二结构体进行排序。
具体的,在创建好第一结构体和第二结构体之后,可以根据第二结构体的第二频数,对第二结构体进行排序,其中,对第二结构体进行排序可以是按照第二结构体的第二频数从小到大的顺序进行排序,也可以是按照第二结构体的第二频数从大到小的顺序进行排序。
在一个可选的实施方式中,对第二结构体进行排序的方法可以包括以下步骤:首先通过比较器阵列逐一的将每两个第二结构体的第二频数进行比较,得到每个第二结构体每一轮比较后的频数比较值,然后通过加法器对每个第二结构体每一轮比较后的频数比较值进行求和,得到每个第二结构体的频数比较总和,最后根据每个第二结构体的频数比较总和,对第二结构体进行排序。
在上述实施方式中,对于任一个第二结构体,均需要与其他第二结构体进行频数比较,假设在一轮比较中,一个第二结构体的第二频数小于另一个第二结构体的第二频数,则该第二结构体在该轮比较后的频数比较值为0,反之则为1,通过对每一个第二结构的频数比较值进行累加,即可得到每一个第二结构体的频数比较总和,例如,一个第二结构体的频数比较总和为0,则代表该第二结构体的第二频数小于其他所有第二结构体,即该第二结构体的第二频数是最小的,如果按照第二频数从小到大的顺序进行排列,该第二结构体应该排在第一位,以此类推,即可得到第二结构体的排序结果。
举例来说,对于步骤201中的待编码字符串来说,如果按照第二频数从小到大的顺序进行排列,可以得到第二结构体的排序结果如图4所示。
205、根据第二结构体的排序结果,查找到第二频数中的最小频数和次小频数,以及查找到最小频数第二结构体和次小频数第二结构体。
其中,最小频数指的是第二频数中最小的频数值,次小频数指的是第二频数中第二小的频数值,最小频数第二结构体指的是最小频数对应的第二结构体,次小频数第二结构体指的是最小频数对应的第二结构体,在一些情况下,可能会查找到两个最小频数第二结构体,此时,随机选定两者之一作为最小频数第二结构体,选定另一个作为次小频数第二结构体即可。需要说明的是,每一轮循环操作的过程中,都会根据第二结构体的排序结果重新查找最小频数第二结构体和次小频数第二结构体,因此,一次循环操作查找到的最小频数第二结构体和次小频数第二结构体只在当次循环中生效。
在一个可选的实施方式中,查找最小频数和次小频数,以及查找最小频数第二结构体和次小频数第二结构体的方法可以包括以下步骤:首先通过多个比较器,将每个第二结构体的频数比较总和与最小频数对应的比较值和次小频数对应的比较值进行比较,从而查找到第二频数中的最小频数和次小频数,然后通过多路复用器,根据第二频数中的最小频数和次小频数,查找到最小频数第二结构体和次小频数第二结构体。
在上述实施方式中,假设一个第二结构体的频数比较总和为0,则将该第二结构体的频数比较总和与最小频数对应的比较值“0”进行比较,即可得知该第二结构体的第二频数为最小频数,该最小频数对应的第二结构体即为最小频数第二结构体。
举例来说,如图4所示,第一轮循环操作过程中,根据第二结构体的排序结果查找到的最小频数为5,次小频数为15,最小频数第二结构体是唯一标识为1的第二结构体,次小频数第二结构体是唯一标识为2的第二结构体。
206、对最小频数第二结构体的第二频数和次小频数第二结构体的第二频数进行更新,以及对与最小频数第二结构体和次小频数第二结构体对应的第一结构体的第一编码值进行更新。
具体的,对最小频数第二结构体的第二频数进行更新指的是将最小频数第二结构体的第二频数更新为无效值,其中,无效值可以是大于所有第二频数的值,以避免该第二结构体在接下来的循环操作中再被挑选出来;对次小频数第二结构体的第二频数进行更新指的是将次小频数第二结构体的第二频数更新为最小频数和次小频数的频数之和;对与最小频数第二结构体对应的第一结构体的第一编码值进行更新指的是将与最小频数第二结构体对应的第一结构体的第一编码值左移一位后在最后一位补入第一数值;对次小频数第二结构体对应的第一结构体的第一编码值进行更新指的是将与次小频数第二结构体对应的第一结构体的第一编码值左移一位后在最后一位补入第二数值。其中,第一数值和第二数值互不相同,且第一数值和第二数值分别为0和1,假如第一数值为0,则第二数值为1,假如第一数值为1,则第二数值为0。
在本实施例中,还可以对与最小频数第二结构体和次小频数第二结构体对应的第一结构体的第一编码长度进行更新,其中,对与最小频数第二结构体和次小频数第二结构体对应的第一结构体的第一编码长度进行更新指的是将与最小频数第二结构体对应的第一结构体和次小频数第二结构体对应的第一结构体的第一编码长度均加1。
在一个可选的实施方式中,对各第二频数和对第一结构体的第一编码值进行更新可以包括以下步骤:首先通过多位加法器,对第二频数中的最小频数和次小频数进行求和,得到最小频数和次小频数的频数之和,然后将最小频数第二结构体的第二频数更新为无效值,并将次小频数第二结构体的第二频数更新为最小频数和次小频数的频数之和,最后将与最小频数第二结构体对应的第一结构体的第一编码值左移一位后在最后一位补入第一数值,并将与次小频数第二结构体对应的第一结构体的第一编码值左移一位后在最后一位补入第二数值。
举例来说,如图4所示,最小频数第二结构体的第二频数更新后的数值为无效值(箭头左侧表示初始化时的第一结构体和第二结构体,箭头右侧表示第一轮循环操作后的第一结构体和第二结构体),次小频数第二结构体的第二频数更新后的数值为最小频数5和次小频数15之和20,与最小频数第二结构体对应的第一结构体的第一编码值左移一位后在最后一位补入0,编码长度加1,即最小频数第二结构体对应的第一结构体的第一编码值为0,编码长度为1,与此相对的,次小频数第二结构体对应的第一结构体的第一编码值为1,编码长度也为1。
207、建立最小频数第二结构体对应的第一结构体与次小频数第二结构体之间的对应关系,删除最小频数第二结构体与所有第一结构体之间的对应关系。
具体的,在对第一结构体和第二结构体的相关属性值进行更新之后,还需要改变原有的第一结构体和第二结构体的对应关系,改变的方式为:建立最小频数第二结构体对应的第一结构体与次小频数第二结构体之间的对应关系,删除最小频数第二结构体与所有第一结构体之间的对应关系。
在一个可选的实施方式中,更新第二结构体和第一结构体之间的对应关系可以采用以下步骤:更新与第一结构体对应的第二结构体的唯一标识。例如,在更新前,一个第一结构体与唯一标识为1的第二结构体存在对应关系,即更新前第一结构体对应的第二结构体的唯一标识为1,在对该第一结构体的对应关系进行修改后,该第一结构体对应的第二结构体的唯一标识为2,通过这种方式,可以较为方便的实现对应关系的转移,即在删除原有对应关系的同时,建立了新的对应关系。
举例来说,如图4所示,在对第一结构体和第二结构体的相关属性值进行更新之后,建立字符值a对应的第一结构体与唯一标识为2的第二结构体之间的对应关系,并删除该第一结构体与唯一标识为1的第二结构体的对应关系,通过这种方式,实现了字符值a对应的第一结构体和字符值b对应的第一结构体的合并,合并后的两个第一结构体的第一频数相加即为与二者对应的第二结构体的第二频数,即第二频数为与第二结构体对应的第一结构体的第一频数之和。
208、循环操作上述步骤,直至得到一个与全部第一结构体均存在对应关系的第二结构体,并将各第一结构体的第一编码值作为各字符值的霍夫曼编码值,将各第一结构体的第一编码长度作为各字符值的霍夫曼编码码长。
具体的,循环操作步骤204至步骤207,直至将所有的第一结构体转移至同一个第二结构体中,即直至得到一个与全部第一结构体均存在对应关系的第二结构体。在本实施例中,在每一次循环操作过程中,硬件模块都会对应更新一次第一结构的第一编码值和第一编码长度,在循环结束后,即可得到霍夫曼编码值和霍夫曼编码码长。
举例来说,如图5所示,当标识为3的第二结构体与全部的第一结构体均存在对应关系之后,循环结束,得到各字符值的霍夫曼编码值和霍夫曼编码码长,例如,字符值a的频数最小,所以在四次循环操作中,每一轮操作都对字符值a对应的第一结构体的第一编码值和第一编码长度进行了更新,循环结束后,得到字符值a的霍夫曼编码值为0011,霍夫曼编码码长为4。
在本实施中,在各字符值的霍夫曼编码生成之后,硬件模块可以从存储器中读取出原始的待编码字符串,然后根据该待编码字符串和各字符值的霍夫曼编码值,通过并串转换的方式以一位数据口输出各字符值的编码值,全部输出完毕后,即可得到待编码字符串的编码结果。进一步的,在对编码结构进行解码时,可以遍历待编码字符串的编码结果,然后根据各字符值的霍夫曼编码值对各字符值进行还原,即可得到编码前的字符串。
本实施例提供的霍夫曼编码的硬件实现方法,利用第一结构体和第二结构体的数据结构,在结构体之间的对应关系转移的过程中即实时生成了霍夫曼编码,从平均码长角度保证了编码的最优,同时也避免了生成完整的霍夫曼树和遍历霍夫曼树等额外操作,减少了资源占用,方便快捷的实现了霍夫曼编码的全过程。
进一步的,利用霍夫曼编码,可以对存储、传输和处理过程中图像数据进行压缩和解压,其中,图像压缩可以降低图像的存储空间,提高图像的传输速率和处理效率。如果将本实施例提供的霍夫曼编码的硬件实现方法应用在图像处理领域,可以使得图像处理精度更高,速度更快,而且,由于FPGA并行和灵活性的特点,可以满足更高精度图像的处理需求,配合时钟频率的变化,处理后的图像可以在各种像素的屏幕上展示,降低图像的失真风险。
进一步的,作为图1、图2所示方法的具体实现,本实施例提供了一种霍夫曼编码的硬件实现装置,如图6所示,该装置包括:字符串读取模块31、第一结构体构建模块32、第二结构体构建模块33和循环编码模块34。
字符串读取模块31,可用于读取待编码字符串,并通过多个计数器对待编码字符串的各个字符值进行统计,得到待编码字符串的字符值的数量n和各字符值的频数;
第一结构体构建模块32,可用于构建n个第一结构体,其中,第一结构体的属性包括字符值、第一频数和第一编码值,第一频数为字符值的频数;
第二结构体构建模块33,可用于构建与n个第一结构体一一对应的n个第二结构体,其中,第二结构体的属性包括第二频数,第二频数为与第二结构体对应的第一结构体的第一频数之和;
循环编码模块34,可用于根据第二结构体的第二频数,循环更新第二结构体和第一结构体之间的对应关系,并根据第二结构体和第一结构体之间的对应关系更新第一结构体的第一编码值,以生成各字符值的霍夫曼编码值。
在具体的应用场景中,循环编码模块34,具体可用于根据第二结构体的第二频数,对第二结构体进行排序;根据第二结构体的排序结果,查找到第二频数中的最小频数和次小频数,以及查找到最小频数第二结构体和次小频数第二结构体;对最小频数第二结构体的第二频数和次小频数第二结构体的第二频数进行更新,以及对与最小频数第二结构体和次小频数第二结构体对应的第一结构体的第一编码值进行更新;建立最小频数第二结构体对应的第一结构体与次小频数第二结构体之间的对应关系,删除最小频数第二结构体与所有第一结构体之间的对应关系;循环操作上述步骤,直至得到一个与全部第一结构体均存在对应关系的第二结构体,并将各第一结构体的第一编码值作为各字符值的霍夫曼编码值。
在具体的应用场景中,循环编码模块34,具体可用于通过比较器阵列逐一的将每两个第二结构体的第二频数进行比较,得到每个第二结构体每一轮比较后的频数比较值;通过加法器对每个第二结构体每一轮比较后的频数比较值进行求和,得到每个第二结构体的频数比较总和;根据每个第二结构体的频数比较总和,对第二结构体进行排序。
在具体的应用场景中,循环编码模块34,具体可用于通过多个比较器,将每个第二结构体的频数比较总和与最小频数对应的比较值和次小频数对应的比较值进行比较,查找到第二频数中的最小频数和次小频数;通过多路复用器,根据第二频数中的最小频数和次小频数,查找到最小频数第二结构体和次小频数第二结构体。
在具体的应用场景中,循环编码模块34,具体可用于通过多位加法器,对第二频数中的最小频数和次小频数进行求和,得到最小频数和次小频数的频数之和;将最小频数第二结构体的第二频数更新为无效值,将次小频数第二结构体的第二频数更新为最小频数和次小频数的频数之和;将与最小频数第二结构体对应的第一结构体的第一编码值左移一位后在最后一位补入第一数值,将与次小频数第二结构体对应的第一结构体的第一编码值左移一位后在最后一位补入第二数值。
在具体的应用场景中,第二结构体的属性还包括唯一标识,第一结构体的属性还包括与第一结构体对应的第二结构体的唯一标识;则循环编码模块34,具体还可用于更新与第一结构体对应的第二结构体的唯一标识。
在具体的应用场景中,第一结构体的属性还包括第一编码长度;则循环编码模块34,具体还可用于根据第二结构体和第一结构体之间的对应关系更新第一结构体的第一编码长度,以生成各字符值的霍夫曼编码值码长。
需要说明的是,本实施例提供的一种霍夫曼编码的硬件实现装置所涉及各功能单元的其它相应描述,可以参考图1至图5中的对应描述,在此不再赘述。
基于上述如图1至图5所示方法,相应的,本实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1至图5所示的霍夫曼编码的硬件实现方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该待识别软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
基于上述如图1至图5所示的方法,以及图5所示的霍夫曼编码的硬件实现装置实施例,为了实现上述目的,本实施例还提供了一种霍夫曼编码的硬件实现的实体设备,具体可以为个人计算机、服务器、智能手机、平板电脑、智能手表、或者其它网络设备等,该实体设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1至图5所示的方法。
可选的,该实体设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种霍夫曼编码的硬件实现的实体设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述实体设备硬件和待识别软件资源的程序,支持信息处理程序以及其它待识别软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。通过应用本申请的技术方案,首先读取待编码字符串,并对字符串中的字符值进行统计,得到字符值的数量n和各字符值的频数,然后构建n个第一结构体和与n个第一结构体一一对应的n个第二结构体,最后根据第二结构体的第二频数,循环更新第二结构体和第一结构体之间的对应关系,并根据第二结构体和第一结构体之间的对应关系更新第一结构体的第一编码值,生成各字符值的霍夫曼编码值。与现有技术相比,上述利用第一结构体和第二结构体的复合数据结构生成霍夫曼编码的方法,可以适用于硬件模块并行实现霍夫曼编码过程,有效的提高了霍夫曼编码的效率,并且,上述方法在更新第二结构体和第一结构体之间的对应关系的同时可以逐步生成霍夫曼编码,无需额外操作提取霍夫曼编码,提高了硬件利用率,减少了资源的消耗。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (10)
1.一种霍夫曼编码的硬件实现方法,其特征在于,所述方法包括:
读取待编码字符串,并通过多个计数器对所述待编码字符串的各个字符值进行统计,得到所述待编码字符串的字符值的数量n和各字符值的频数;
构建n个第一结构体,其中,所述第一结构体的属性包括字符值、第一频数和第一编码值,所述第一频数对应所述字符值的频数;
构建与所述n个第一结构体一一对应的n个第二结构体,其中,所述第二结构体的属性包括第二频数,所述第二频数为与所述第二结构体对应的第一结构体的第一频数之和;
根据所述第二结构体的第二频数,循环更新所述第二结构体和所述第一结构体之间的对应关系,并根据所述第二结构体和所述第一结构体之间的对应关系更新所述第一结构体的第一编码值,以生成各字符值的霍夫曼编码值。
2.根据权利要求1所述的方法,其特征在于,所述根据第二结构体的第二频数,循环更新所述第二结构体和所述第一结构体之间的对应关系,并根据所述第二结构体和所述第一结构体之间的对应关系更新所述第一结构体的第一编码值,以生成各字符值的霍夫曼编码值,包括:
根据所述第二结构体的第二频数,对所述第二结构体进行排序;
根据所述第二结构体的排序结果,查找到所述第二频数中的最小频数和次小频数,以及查找到最小频数第二结构体和次小频数第二结构体;
对所述最小频数第二结构体的第二频数和次小频数第二结构体的第二频数进行更新,以及对与所述最小频数第二结构体和所述次小频数第二结构体对应的第一结构体的第一编码值进行更新;
建立所述最小频数第二结构体对应的第一结构体与所述次小频数第二结构体之间的对应关系,删除所述最小频数第二结构体与所有第一结构体之间的对应关系;
循环操作上述步骤,直至得到一个与全部第一结构体均存在对应关系的第二结构体,并将所述各第一结构体的第一编码值作为各字符值的霍夫曼编码值。
3.根据权利要求2所述的方法,其特征在于,所述根据第二结构体的第二频数,对所述第二结构体进行排序,包括:
通过比较器阵列逐一的将每两个第二结构体的第二频数进行比较,得到每个第二结构体每一轮比较后的频数比较值;
通过加法器对每个第二结构体每一轮比较后的频数比较值进行求和,得到每个第二结构体的频数比较总和;
根据所述每个第二结构体的频数比较总和,对所述第二结构体进行排序。
4.根据权利要求3所述的方法,其特征在于,所述根据第二结构体的排序结果,查找到所述第二频数中的最小频数和次小频数,以及查找到最小频数第二结构体和次小频数第二结构体,包括:
通过多个比较器,将所述每个第二结构体的频数比较总和与最小频数对应的比较值和次小频数对应的比较值进行比较,查找到所述第二频数中的最小频数和次小频数;
通过多路复用器,根据所述第二频数中的最小频数和次小频数,查找到最小频数第二结构体和次小频数第二结构体。
5.根据权利要求2所述的方法,其特征在于,所述对最小频数第二结构体的第二频数和次小频数第二结构体的第二频数进行更新,以及对与所述最小频数第二结构体和所述次小频数第二结构体对应的第一结构体的第一编码值进行更新,包括:
通过多位加法器,对所述第二频数中的最小频数和次小频数进行求和,得到最小频数和次小频数的频数之和;
将所述最小频数第二结构体的第二频数更新为无效值,将所述次小频数第二结构体的第二频数更新为所述最小频数和次小频数的频数之和;
将与所述最小频数第二结构体对应的第一结构体的第一编码值左移一位后在最后一位补入第一数值,将与所述次小频数第二结构体对应的第一结构体的第一编码值左移一位后在最后一位补入第二数值。
6.根据权利要求1所述的方法,其特征在于,所述第二结构体的属性还包括唯一标识,所述第一结构体的属性还包括与所述第一结构体对应的第二结构体的唯一标识;
则所述更新所述第二结构体和所述第一结构体之间的对应关系,包括:
更新所述与第一结构体对应的第二结构体的唯一标识。
7.根据权利要求1所述的方法,其特征在于,所述第一结构体的属性还包括第一编码长度;则所述方法还包括:
根据所述第二结构体和所述第一结构体之间的对应关系更新所述第一结构体的第一编码长度,以生成各字符值的霍夫曼编码值码长。
8.一种霍夫曼编码的硬件实现装置,其特征在于,所述装置包括:
字符串读取模块,用于读取待编码字符串,并通过多个计数器对所述待编码字符串的各个字符值进行统计,得到所述待编码字符串的字符值的数量n和各字符值的频数;
第一结构体构建模块,用于构建n个第一结构体,其中,所述第一结构体的属性包括字符值、第一频数和第一编码值,所述第一频数对应所述字符值的频数;
第二结构体构建模块,用于构建与所述n个第一结构体一一对应的n个第二结构体,其中,所述第二结构体的属性包括第二频数,所述第二频数为与所述第二结构体对应的第一结构体的第一频数之和;
循环编码模块,用于根据所述第二结构体的第二频数,循环更新所述第二结构体和所述第一结构体之间的对应关系,并根据所述第二结构体和所述第一结构体之间的对应关系更新所述第一结构体的第一编码值,以生成各字符值的霍夫曼编码值。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011351653.6A CN112332854A (zh) | 2020-11-27 | 2020-11-27 | 霍夫曼编码的硬件实现方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011351653.6A CN112332854A (zh) | 2020-11-27 | 2020-11-27 | 霍夫曼编码的硬件实现方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112332854A true CN112332854A (zh) | 2021-02-05 |
Family
ID=74308918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011351653.6A Pending CN112332854A (zh) | 2020-11-27 | 2020-11-27 | 霍夫曼编码的硬件实现方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112332854A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995199A (zh) * | 2021-03-29 | 2021-06-18 | 北京沃东天骏信息技术有限公司 | 数据编解码方法、装置、传输系统、终端设备及存储介质 |
CN114095036A (zh) * | 2022-01-18 | 2022-02-25 | 苏州浪潮智能科技有限公司 | 一种动态哈夫曼编码的码长生成装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0582907A2 (en) * | 1992-08-10 | 1994-02-16 | Stac Electronics, Inc. | Data compression apparatus and method using matching string searching and Huffman encoding |
US5546080A (en) * | 1994-01-03 | 1996-08-13 | International Business Machines Corporation | Order-preserving, fast-decoding arithmetic coding arithmetic coding and compression method and apparatus |
US6636167B1 (en) * | 2000-10-31 | 2003-10-21 | Intel Corporation | Method of generating Huffman code length information |
US20050122240A1 (en) * | 2003-12-03 | 2005-06-09 | Samsung Electronics Co., Ltd. | Method and apparatus for effectively decoding huffman code |
US20090115646A1 (en) * | 2007-11-05 | 2009-05-07 | Roke Manor Research Limted | Data processing system and method |
CN202931291U (zh) * | 2012-11-14 | 2013-05-08 | 无锡芯响电子科技有限公司 | 一种动态Huffman编码硬件实现系统 |
CN105704028A (zh) * | 2016-03-25 | 2016-06-22 | 北京华为数字技术有限公司 | 报文处理方法及装置 |
CN106027062A (zh) * | 2015-05-11 | 2016-10-12 | 上海兆芯集成电路有限公司 | 直接对lz77引擎输出的标记进行霍夫曼编码程序的硬件数据压缩器 |
CN108092670A (zh) * | 2017-11-03 | 2018-05-29 | 西安万像电子科技有限公司 | 编码方法和装置 |
CN110072114A (zh) * | 2019-04-16 | 2019-07-30 | 西南交通大学 | 用于静态霍夫曼表生成的全并行频数生成电路结构与方法 |
CN111641826A (zh) * | 2019-03-01 | 2020-09-08 | 杭州海康威视数字技术股份有限公司 | 对数据进行编码、解码的方法、装置与系统 |
-
2020
- 2020-11-27 CN CN202011351653.6A patent/CN112332854A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0582907A2 (en) * | 1992-08-10 | 1994-02-16 | Stac Electronics, Inc. | Data compression apparatus and method using matching string searching and Huffman encoding |
US5546080A (en) * | 1994-01-03 | 1996-08-13 | International Business Machines Corporation | Order-preserving, fast-decoding arithmetic coding arithmetic coding and compression method and apparatus |
US6636167B1 (en) * | 2000-10-31 | 2003-10-21 | Intel Corporation | Method of generating Huffman code length information |
US20050122240A1 (en) * | 2003-12-03 | 2005-06-09 | Samsung Electronics Co., Ltd. | Method and apparatus for effectively decoding huffman code |
US20090115646A1 (en) * | 2007-11-05 | 2009-05-07 | Roke Manor Research Limted | Data processing system and method |
CN202931291U (zh) * | 2012-11-14 | 2013-05-08 | 无锡芯响电子科技有限公司 | 一种动态Huffman编码硬件实现系统 |
CN106027062A (zh) * | 2015-05-11 | 2016-10-12 | 上海兆芯集成电路有限公司 | 直接对lz77引擎输出的标记进行霍夫曼编码程序的硬件数据压缩器 |
CN105704028A (zh) * | 2016-03-25 | 2016-06-22 | 北京华为数字技术有限公司 | 报文处理方法及装置 |
CN108092670A (zh) * | 2017-11-03 | 2018-05-29 | 西安万像电子科技有限公司 | 编码方法和装置 |
CN111641826A (zh) * | 2019-03-01 | 2020-09-08 | 杭州海康威视数字技术股份有限公司 | 对数据进行编码、解码的方法、装置与系统 |
CN110072114A (zh) * | 2019-04-16 | 2019-07-30 | 西南交通大学 | 用于静态霍夫曼表生成的全并行频数生成电路结构与方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995199A (zh) * | 2021-03-29 | 2021-06-18 | 北京沃东天骏信息技术有限公司 | 数据编解码方法、装置、传输系统、终端设备及存储介质 |
CN112995199B (zh) * | 2021-03-29 | 2023-03-10 | 北京沃东天骏信息技术有限公司 | 数据编解码方法、装置、传输系统、终端设备及存储介质 |
CN114095036A (zh) * | 2022-01-18 | 2022-02-25 | 苏州浪潮智能科技有限公司 | 一种动态哈夫曼编码的码长生成装置 |
CN114095036B (zh) * | 2022-01-18 | 2022-04-22 | 苏州浪潮智能科技有限公司 | 一种动态哈夫曼编码的码长生成装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10116325B2 (en) | Data compression/decompression device | |
US10547324B2 (en) | Data compression coding method, apparatus therefor, and program therefor | |
CN113190791A (zh) | 矩阵的处理方法、装置及逻辑电路 | |
CN112003625A (zh) | 一种霍夫曼编码方法、系统及设备 | |
CN112332854A (zh) | 霍夫曼编码的硬件实现方法、装置及存储介质 | |
CN106849956B (zh) | 压缩方法、解压缩方法、装置和数据处理系统 | |
JP5656593B2 (ja) | 符号化データを復号する装置及び方法 | |
CN114610650A (zh) | 内存压缩方法、装置、存储介质及电子设备 | |
CN111723053A (zh) | 一种数据的压缩方法及装置、解压方法及装置 | |
CN113630125A (zh) | 数据压缩、编码解压缩方法、装置、电子设备及存储介质 | |
CN115495212A (zh) | 任务队列处理方法、装置、设备、存储介质及程序产品 | |
KR20180060990A (ko) | 하드웨어에서 버텍스 속성 압축 및 압축 해제 방법 및 장치 | |
US10565182B2 (en) | Hardware LZMA compressor | |
CN112995199B (zh) | 数据编解码方法、装置、传输系统、终端设备及存储介质 | |
CN111061722A (zh) | 一种数据压缩、数据解压缩方法、装置及设备 | |
CN111178490B (zh) | 数据输出方法、获取方法、装置和电子设备 | |
CN117095685A (zh) | 一种联发科平台终端设备及其控制方法 | |
CN115934730B (zh) | 数据处理方法和装置、介质和计算机设备 | |
US8018359B2 (en) | Conversion of bit lengths into codes | |
CN107645665B (zh) | 一种WebP熵编码的方法及装置 | |
CN112449191A (zh) | 压缩多个图像的方法、解压缩图像的方法和装置 | |
WO2023159820A1 (zh) | 图像压缩方法、图像解压缩方法及装置 | |
CN115765756A (zh) | 一种高速透明传输的无损数据压缩方法、系统及装置 | |
US8786471B1 (en) | Lossless data compression with variable width codes | |
US20150130646A1 (en) | Method and system for lzw based decompression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20240712 |