CN114640357B - 数据编码方法、设备及存储介质 - Google Patents
数据编码方法、设备及存储介质 Download PDFInfo
- Publication number
- CN114640357B CN114640357B CN202210541766.5A CN202210541766A CN114640357B CN 114640357 B CN114640357 B CN 114640357B CN 202210541766 A CN202210541766 A CN 202210541766A CN 114640357 B CN114640357 B CN 114640357B
- Authority
- CN
- China
- Prior art keywords
- huffman
- huffman tree
- tree
- data
- trees
- 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.)
- Active
Links
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
-
- 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/60—General implementation details not specific to a particular type of compression
- H03M7/6047—Power optimization with respect to the encoder, decoder, storage or transmission
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请涉及数据编码领域,具体公开了一种数据编码方法、设备及存储介质,该方法的具体步骤包括:获取待编码数据对应的第一霍夫曼树合集,第一霍夫曼树合集包括多个霍夫曼树;对霍夫曼树的码字长度进行排序,得到多个码字长度序列;对多个码字长度序列进行基数排序,根据基数排序的排序结果对第一霍夫曼树合集的多个霍夫曼树进行去重处理,得到第二霍夫曼树合集;计算第二霍夫曼树合集中相邻的两棵霍夫曼树分别对应的第一码率增量和第二码率增量,并保留第一码率增量和第二码率增量中较大者对应的霍夫曼树,得到第三霍夫曼树合集;根据第三霍夫曼树合集确定待编码数据进行数据编码的霍夫曼树。基于该方法,能够减少数据编码过程的运算资源。
Description
技术领域
本申请涉及数据编码领域,尤其涉及一种数据编码方法、设备及存储介质。
背景技术
目前,算术编码(Arithmetic Coding)和霍夫曼编码(Huffman Coding)是两种主要的熵编码(Entropy Coding)方法。算术编码的优点是能更逼近最优熵,压缩效率比霍夫曼编码高,应用更广泛。但是算术编码算法复杂,不适合计算资源受限或者对功耗要求苛刻等场景(比如说高清实时软件解码)。霍夫曼编码的复杂度远比算术编码低,在资源受限或者对功耗要求苛刻的场景也有很大的应用价值。
一般的,在霍夫曼编码的使用过程中,首先更新待编码数据的概率分布,然后根据更新后的概率分布更新霍夫曼树。上述过程需要不停地在线创建霍夫曼树,是一项复杂且频繁的运算,仍需占用大量的计算资源和存储资源。因此,有必要降低霍夫曼编码的复杂度,使其在资源受限或者对功耗要求苛刻的场景下能够应用。
发明内容
本申请提供一种数据编码方法、设备及存储介质,用于进行低复杂度的数据编码,由此能够在资源受限的情况下实现高效率的数据编码,减少计算资源和存储资源的消耗,减少数据编码过程的运算成本。
第一方面,本申请提供一种数据编码方法,所述方法包括:获取待编码数据对应的第一霍夫曼树合集,所述第一霍夫曼树合集包括多个霍夫曼树;对所述霍夫曼树的码字长度进行排序,得到多个码字长度序列;对多个所述码字长度序列进行基数排序,根据所述基数排序的排序结果对所述第一霍夫曼树合集的多个所述霍夫曼树进行去重处理,得到第二霍夫曼树合集,其中,所述去重处理包括保留所述码字长度序列相同的任一棵所述霍夫曼树;根据所述排序结果,计算所述第二霍夫曼树合集中相邻的两棵所述霍夫曼树分别对应的第一码率增量和第二码率增量,并保留所述第一码率增量和所述第二码率增量中较大者对应的所述霍夫曼树,得到第三霍夫曼树合集;根据所述第三霍夫曼树合集确定所述待编码数据进行数据编码的所述霍夫曼树。
第二方面,本申请提供一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现本申请实施例中提供的任一种数据编码方法。
第三方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如本申请实施例中提供的任一种的数据编码方法。
本申请公开了一种数据编码方法、设备及存储介质,该方法包括:获取待编码数据对应的第一霍夫曼树合集,第一霍夫曼树合集包括多个霍夫曼树;对霍夫曼树的码字长度进行排序,得到多个码字长度序列;对多个码字长度序列进行基数排序,根据基数排序的排序结果对第一霍夫曼树合集的多个霍夫曼树进行去重处理,得到第二霍夫曼树合集,其中,去重处理包括保留码字长度序列相同的任一棵霍夫曼树;根据排序结果,计算第二霍夫曼树合集中相邻的两棵霍夫曼树分别对应的第一码率增量和第二码率增量,并保留第一码率增量和第二码率增量中较大者对应的霍夫曼树,得到第三霍夫曼树合集;根据第三霍夫曼树合集确定待编码数据进行数据编码的霍夫曼树。本申请提供的技术方案中,通过码字长度去除重复项以及低损耗合并相似项,降低了霍夫曼编码算法的复杂度,能够减少计算资源和存储资源的消耗,在资源受限或者对功耗要求苛刻的场景下实现高效率的数据编码。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种一种数据编码的场景示意图;
图2是本申请实施例提供的一种数据编码方法的示意流程图;
图3是本申请实施例提供的一种霍夫曼树生成过程的示意图;
图4是本申请实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
为了在资源受限的情况下实现高效率的数据编码,减少计算资源和存储资源的消耗,本申请提供了数据编码方法、装置、设备及存储介质。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1示出了本申请实施例提供的一种数据编码的场景示意图。如图1所示,该方法可以应用于终端中,具体地应用于安装有图像压缩的应用程序的终端中,该终端用于获取用户上传的图像,还用于将用户上传的图像进行编码压缩,并通过网络将压缩后的图像传输至服务器进行存储。服务器用于存储终端发送来的图像。终端与服务器通过网络通信连接。
其中,服务器可以为独立的服务器,也可以为服务器集群,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)以及大数据和人工智能平台等基础云计算服务的云服务器。该终端可以是手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等电子设备。
需要说明的是,本申请实施例可以基于人工智能技术对相关的数据进行获取和处理,比如获取待编码数据对应的第一霍夫曼树合集。其中,人工智能(ArtificialIntelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
请参阅图2,图2是本申请实施例提供的一种数据编码方法的示意流程图。该数据编码方法用于在资源受限的情况下实现高效率的数据编码,减少计算资源和存储资源的消耗,减少数据编码过程的运算成本。
如图2所示,该数据编码方法,具体包括:步骤S101至步骤S105。
S101、获取待编码数据对应的第一霍夫曼树合集,第一霍夫曼树合集包括多个霍夫曼树。
具体地,获取待编码数据,对待编码数据进行扫描,识别待编码数据中包含的多种字符类型,根据字符类型预先创建霍夫曼树合集,霍夫曼树合集包括字符类型对应的霍夫曼树。将霍夫曼树合集中任意两棵霍夫曼树进行对称性对比;若对称性对比的对比结果为两棵霍夫曼树具有对称性,删除任一棵霍夫曼树,保留不具有对称性的霍夫曼树,得到第一霍夫曼树合集。
示例性的,请参阅图3,图3展示了一种霍夫曼树生成过程的示意图。如图3所示,需要编码的字符类型包括A、B、C和D共4种,每种字符类型都有其对应的概率值(分别是0.35、0.4、0.15和0.1),根据4种字符类型和其对应的概率值,可以创建得到多种不同的霍夫曼树,建成的霍夫曼树包括根节点和叶节点,其中,每个叶节点对应一种字符类型,每个字符类型都有对应的码字,码字为从根节点到该叶节点的二进制路径(0/1表示向左/右),码字包含的二进制数的位数为码字长度。
需要说明的是,给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为霍夫曼树(Huffman Tree)。霍夫曼树是带权路径长度最短的树,权值较大的结点离根较近。
在一些实施例中,霍夫曼树包括左子树和右子树,例如,可将霍夫曼树的根节点作为分割点,得到霍夫曼树的左子树和右子树,该根节点为霍夫曼树。将任一棵霍夫曼树的左子树和右子树的位置进行调换,得到对照霍夫曼树;若对照霍夫曼树与另一棵霍夫曼树相同,则确定两棵霍夫曼树具有对称性。
经计算,N=16时,=11813,可以看出这种去重的效果明显,删除了中大量的重复的霍夫曼树,减少了存储资源的消耗。但仅依靠这种去重还不够,N较大时仍然还存在大量重复,因此还需要对上述去重后的霍夫曼树合集再次去重。
S102、对霍夫曼树的码字长度进行排序,得到多个码字长度序列。
具体地,获取每棵霍夫曼树的码字长度,将码字长度进行递增排序,生成多个码字长度序列,其中,每棵霍夫曼树对应一个码字长度序列。
示例性的,一棵N=8的霍夫曼树的共有8个码字长度,分别为1、2、4、3、6、5、7和7,经过递增排序后,得到的码字长度序列为{1,2,3,4,5,6,7,7}。
S103、对多个码字长度序列进行基数排序,根据基数排序的排序结果对第一霍夫曼树合集的多个霍夫曼树进行去重处理,得到第二霍夫曼树合集,其中,去重处理包括保留码字长度序列相同的任一棵霍夫曼树。
具体地,对第一霍夫曼树合集中的所有的霍夫曼树按递增重排后的码字长度序列先进行基数排序(radix sort),将重复的霍夫曼树的码字长度序列排列到一起,若多棵霍夫曼树的码字长度序列相同,仅需要保留其中一棵霍夫曼树,删除掉重复项后,得到第二霍夫曼树合集。
根据编码码率的计算公式可知,若两棵霍夫曼树的码字长度按递增重排得到的码字长度序列一样,那么两棵霍夫曼树的编码效率一样,因此只需要保留其中一棵霍夫曼树。这样,能够将大量重复项去除掉,在不损失码率的情况下,保留了编码码率不同的霍夫曼树。
在一些实施例中,第一霍夫曼树合集还可以是没有经过对称性去重的霍夫曼树合集。若多个霍夫曼树具有对称性,那么它们的码字长度序列也会相同,因此,对它们进行基数排序后,它们会排列到一起,在步骤S103中,也能去除它们之间的重复项。
这样,当字符类型N的数量较小时,以上无损去重技术在不影响压缩效率的前提下把复杂度控制在了合理的范围了。但N的数量比较大时,中霍夫曼树的数量仍然比较大,在资源受限或者对功耗要求苛刻的场景下,仍需降低中霍夫曼树的数量,进一步减少对计算资源和存储资源的占用量。
S104、根据排序结果,计算第二霍夫曼树合集中相邻的两棵霍夫曼树分别对应的第一码率增量和第二码率增量,并保留第一码率增量和第二码率增量中较大者对应的霍夫曼树,得到第三霍夫曼树合集。
具体地,根据排序结果,将第二霍夫曼树合集中每两棵相邻的霍夫曼树作为一个对照组,对照组包括第一霍夫曼树和第二霍夫曼树;根据第二霍夫曼树,对第一霍夫曼树对应的概率分布进行编码,产生的编码码率的增量为第一码率增量;根据第一霍夫曼树,对第二霍夫曼树对应的概率分布进行编码,产生的编码码率的增量为第二码率增量。
这第i棵霍夫曼树的概率分布如果用第j棵霍夫曼树的码字进行编码,会导致编码码率会增加,码率增量的公式为:
为的概率分布使用的码字进行编码而产生的码率增量。相反的,为的概率分布使用的码字进行编码而产生的码率增量。和的大小可能不同。和反应的是霍夫曼树的相似度。由于是根据码字长度序列进行基数排序得到的合集,所以内的霍夫曼树基本就是根据相似度排好的,第i棵树与第j棵树相邻时,的值最小(也就是i=j-1或者i=j+1)。
在一些实施例中,相邻的两棵树可以是第(i+2a)棵和第(i+1+2a)棵,其中,a=0、1、2、3、…。
在一些实施例中,获取第三霍夫曼树合集中的霍夫曼树的数量值;若数量值大于预设值,继续根据第一码率增量和第二码率增量删除第三霍夫曼树合集的霍夫曼树,直至数量值小于或等于预设值。
示例性的,计算相邻两棵霍夫曼树间相互置换而产生的码率增量:和;将和中的最小值设置为,其中对应的霍夫曼树为,删除。例如,小于,对应的霍夫曼树为,删除。重复上述两个步骤,直到的数值小于预设值。这样,能够在编码码率损失较小的情况下更进一步地压缩霍夫曼树合集的数量,以适应资源受限或者对功耗要求苛刻的使用场景。
在一些实施例中,由于编解码常通过查询编码表实现,编码表中的最长码字长度决定编码表的长度,为了限制编码表的长度,可以通过限制最长码字的长度实现。这种情况下,删除最长码字长度超过预设值的霍夫曼树。
S105、根据第三霍夫曼树合集确定待编码数据进行数据编码的霍夫曼树。
具体地,计算第三霍夫曼树合集中每棵霍夫曼树的编码码率,根据编码码率确定第四霍夫曼树合集;从第三霍夫曼树合集或第四霍夫曼树合集中确定待编码数据进行数据编码的霍夫曼树。
示例性的,计算第三霍夫曼树合集中每棵霍夫曼树的编码码率,对每棵霍夫曼树的编码码率进行递增排序,将排序靠前的编码码率对应的霍夫曼树确定第四霍夫曼树合集,例如,根据排序前八的编码码率对应的霍夫曼树生成第四霍夫曼树合集。
在一些实施例中,由于使用场景的计算资源和存储资源受限,可以只保留第四霍夫曼树合集。适应性的,还可以减少第四霍夫曼树合集中霍夫曼树的数量,例如,第四霍夫曼树合集中只保留编码码率排序前三的霍夫曼树,以适应极限的使用场景要求。
在一些实施例中,获取待编码数据的变更粒度;若变更粒度小于预设粒度,从第四霍夫曼树合集中确定待编码数据进行数据编码的霍夫曼树;若变更粒度大于或等于预设粒度,从第三霍夫曼树合集中确定待编码数据进行数据编码的霍夫曼树。
在一些实施例中,获取待编码数据变更单元的粒度,根据粒度确定需要进行局部更新还是进行全局更新,其中,局部更新为从第四霍夫曼树合集中确定待编码数据进行数据编码的霍夫曼树,全局更新为从第四霍夫曼树合集中确定待编码数据进行数据编码的霍夫曼树。
示例性的,需要编码的数据为图像数据,图像数据的变更单元的粒度包括:CU单元和CTU单元,CTU单元远大于CU单元。当变更单元为CU单元时,由于变更单元的粒度较小,因此概率分布变化小,那么仅需要根据第四霍夫曼树合集中的霍夫曼树计算变更单元的编码码率,从第四霍夫曼树合集中确定最优霍夫曼树。
当变更单元为CTU单元时,由于数据更新达到了较大的规模,概率分布变化大,可能会越偏越远最终会偏离全局最优,因此需要对变更单元的编码码率进行一次全局计算,根据第三霍夫曼树合集中的霍夫曼树计算变更单元的编码码率,重新获取全局最优的霍夫曼树,以及重新获取全局最优的第四霍夫曼树合集。
需要说明的是,CTU是H.265/高效率视讯编码(High Efficiency Video Coding,HEVC)的处理单元。CTU单元(Coding Tree Unit)为编码树单元,CU单元(Coding Unit)为编码单元。其中编码码树单元(CTU)可以包含有一个编码单元(CU)或是切割成多个较小的编码单元。
基于本申请实施例中提供的数据编码,能够在资源受限的情况下实现高效率的数据编码,减少计算资源和存储资源的消耗,减少数据编码过程的运算成本。
请参阅图4,图4是本申请实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以是服务器或终端。
参阅图4,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括存储介质和内存储器。
存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行本申请实施例提供的任意一种数据编码方法。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种数据编码方法。存储介质可以是非易失性的,也可以是易失性的。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元 (Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路 (Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
示例性的,在一个实施例中,处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:获取待编码数据对应的第一霍夫曼树合集,第一霍夫曼树合集包括多个霍夫曼树;对霍夫曼树的码字长度进行排序,得到多个码字长度序列;对多个码字长度序列进行基数排序,根据基数排序的排序结果对第一霍夫曼树合集的多个霍夫曼树进行去重处理,得到第二霍夫曼树合集,其中,去重处理包括保留码字长度序列相同的任一棵霍夫曼树;根据排序结果,计算第二霍夫曼树合集中相邻的两棵霍夫曼树分别对应的第一码率增量和第二码率增量,并保留第一码率增量和第二码率增量中较大者对应的霍夫曼树,得到第三霍夫曼树合集;根据第三霍夫曼树合集确定待编码数据进行数据编码的霍夫曼树。
在一些实施例中,处理器在实现获取待编码数据对应的第一霍夫曼树合集之前,还具体用于实现:获取待编码数据对应的霍夫曼树合集;将霍夫曼树合集中任意两棵霍夫曼树进行对称性对比;若对称性对比的对比结果为两棵霍夫曼树具有对称性,删除任一棵霍夫曼树,得到第一霍夫曼树合集。
在一些实施例中,处理器在实现将任意两棵霍夫曼树进行对称性对比时,还具体用于实现:将任一棵霍夫曼树的左子树和右子树的位置进行调换,得到对照霍夫曼树;若对照霍夫曼树与另一棵霍夫曼树相同,则确定两棵霍夫曼树具有对称性。
在一些实施例中,处理器在实现对霍夫曼树的码字长度进行排序,得到多个码字长度序列时,还具体用于实现:对每个霍夫曼树的码字长度进行递增排序,生成多个码字长度序列。
在一些实施例中,处理器在实现根据排序结果,计算第二霍夫曼树合集中相邻的两棵霍夫曼树分别对应的第一码率增量和第二码率增量时,还具体用于实现:根据排序结果,将第二霍夫曼树合集中每两棵相邻的霍夫曼树作为一个对照组,对照组包括第一霍夫曼树和第二霍夫曼树;根据第二霍夫曼树,对第一霍夫曼树对应的概率分布进行编码,产生的编码码率的增量为第一码率增量;根据第一霍夫曼树,对第二霍夫曼树对应的概率分布进行编码,产生的编码码率的增量为第二码率增量。
在一些实施例中,处理器用于运行存储在存储器中的计算机程序,还具体用于实现:获取第三霍夫曼树合集中的霍夫曼树的数量值;若数量值大于预设值,继续根据第一码率增量和第二码率增量删除第三霍夫曼树合集的霍夫曼树,直至数量值小于或等于预设值。
在一些实施例中,处理器在实现根据第三霍夫曼树合集确定待编码数据进行数据编码的霍夫曼树时,还具体用于实现:计算第三霍夫曼树合集中每棵霍夫曼树的编码码率,根据编码码率确定第四霍夫曼树合集;从第三霍夫曼树合集或第四霍夫曼树合集中确定待编码数据进行数据编码的霍夫曼树。
在一些实施例中,处理器在实现从第三霍夫曼树合集或第四霍夫曼树合集中确定待编码数据进行数据编码的霍夫曼树时,还具体用于实现:获取待编码数据的变更粒度;若变更粒度小于预设粒度,从第四霍夫曼树合集中确定待编码数据进行数据编码的霍夫曼树;若变更粒度大于或等于预设粒度,从第三霍夫曼树合集中确定待编码数据进行数据编码的霍夫曼树。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一种数据编码方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘、智能存储卡(SmartMedia Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种数据编码方法,其特征在于,所述方法包括:
获取待编码数据对应的第一霍夫曼树合集,所述第一霍夫曼树合集包括多个霍夫曼树;
对所述霍夫曼树的码字长度进行排序,得到多个码字长度序列;
对多个所述码字长度序列进行基数排序,根据所述基数排序的排序结果对所述第一霍夫曼树合集的多个所述霍夫曼树进行去重处理,得到第二霍夫曼树合集,其中,所述去重处理包括保留所述码字长度序列相同的任一棵所述霍夫曼树;
根据所述排序结果,将所述第二霍夫曼树合集中每两棵相邻的所述霍夫曼树作为一个对照组,所述对照组包括第一霍夫曼树和第二霍夫曼树;根据所述第二霍夫曼树,对所述第一霍夫曼树对应的概率分布进行编码,产生的编码码率的增量为第一码率增量;根据所述第一霍夫曼树,对所述第二霍夫曼树对应的概率分布进行编码,产生的编码码率的增量为第二码率增量;保留所述第一码率增量和所述第二码率增量中较大者对应的所述霍夫曼树,得到第三霍夫曼树合集;
根据所述第三霍夫曼树合集确定所述待编码数据进行数据编码的所述霍夫曼树。
2.根据权利要求1所述的方法,其特征在于,在所述获取待编码数据对应的第一霍夫曼树合集之前,还包括:
获取待编码数据对应的霍夫曼树合集;
将所述霍夫曼树合集中任意两棵霍夫曼树进行对称性对比;
若所述对称性对比的对比结果为两棵所述霍夫曼树具有对称性,删除任一棵所述霍夫曼树,得到所述第一霍夫曼树合集。
3.根据权利要求2所述的方法,其特征在于,所述霍夫曼树包括左子树和右子树,所述将所述霍夫曼树合集中任意两棵霍夫曼树进行对称性对比,包括:
将任一棵所述霍夫曼树的所述左子树和所述右子树的位置进行调换,得到对照霍夫曼树;
若所述对照霍夫曼树与另一棵所述霍夫曼树相同,则确定两棵所述霍夫曼树具有对称性。
4.根据权利要求1所述的方法,其特征在于,所述对所述霍夫曼树的码字长度进行排序,得到多个码字长度序列,包括:
对每个所述霍夫曼树的码字长度进行递增排序,生成多个码字长度序列。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述第三霍夫曼树合集中的所述霍夫曼树的数量值;
若所述数量值大于预设值,继续根据所述第一码率增量和所述第二码率增量删除所述第三霍夫曼树合集的所述霍夫曼树,直至所述数量值小于或等于预设值。
6.根据权利要求1所述的方法,其特征在于,所述根据所述第三霍夫曼树合集确定所述待编码数据进行数据编码的所述霍夫曼树,包括:
计算所述第三霍夫曼树合集中每棵霍夫曼树的编码码率,根据所述编码码率确定第四霍夫曼树合集;
从所述第三霍夫曼树合集或所述第四霍夫曼树合集中确定所述待编码数据进行数据编码的所述霍夫曼树。
7.根据权利要求6所述的方法,其特征在于,所述从所述第三霍夫曼树合集或所述第四霍夫曼树合集中确定所述待编码数据进行数据编码的所述霍夫曼树,包括:
获取所述待编码数据的变更粒度;
若所述变更粒度小于预设粒度,从第四霍夫曼树合集中确定所述待编码数据进行数据编码的所述霍夫曼树;
若所述变更粒度大于或等于预设粒度,从第三霍夫曼树合集中确定所述待编码数据进行数据编码的所述霍夫曼树。
8.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1至7中任一种所述的数据编码方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1至7中任一种所述的数据编码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210541766.5A CN114640357B (zh) | 2022-05-19 | 2022-05-19 | 数据编码方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210541766.5A CN114640357B (zh) | 2022-05-19 | 2022-05-19 | 数据编码方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114640357A CN114640357A (zh) | 2022-06-17 |
CN114640357B true CN114640357B (zh) | 2022-09-27 |
Family
ID=81953155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210541766.5A Active CN114640357B (zh) | 2022-05-19 | 2022-05-19 | 数据编码方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114640357B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105656604A (zh) * | 2016-01-21 | 2016-06-08 | 北京邮电大学 | 一种比特交织极化编码调制方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2530012A (en) * | 2014-08-05 | 2016-03-16 | Illumina Cambridge Ltd | Methods and systems for data analysis and compression |
CN107483059B (zh) * | 2017-07-31 | 2020-06-12 | 广东工业大学 | 一种基于动态霍夫曼树的多路数据编解码方法及装置 |
US10693493B1 (en) * | 2019-02-14 | 2020-06-23 | International Business Machines Corporation | Reducing latch count to save hardware area for dynamic Huffman table generation |
CN110868223B (zh) * | 2019-12-06 | 2023-10-27 | 广东海洋大学 | 一种哈夫曼编码的数值运算实现方法及电路 |
-
2022
- 2022-05-19 CN CN202210541766.5A patent/CN114640357B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105656604A (zh) * | 2016-01-21 | 2016-06-08 | 北京邮电大学 | 一种比特交织极化编码调制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114640357A (zh) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11722148B2 (en) | Systems and methods of data compression | |
CN107291935B (zh) | 基于Spark与Huffman编码的CPIR-V最近邻隐私保护查询方法 | |
WO2023159820A1 (zh) | 图像压缩方法、图像解压缩方法及装置 | |
CN112463784A (zh) | 数据去重方法、装置、设备及计算机可读存储介质 | |
CN112672168A (zh) | 基于图卷积的点云压缩方法及装置 | |
CN117914951A (zh) | 一种通讯数据传输压缩方法及系统 | |
CN114640356A (zh) | 基于神经网络的大数据压缩方法、系统及存储介质 | |
CN114222129A (zh) | 图像压缩编码方法、装置、计算机设备和存储介质 | |
CN111737406B (zh) | 文本检索方法、装置及设备、文本检索模型的训练方法 | |
WO2023051335A1 (zh) | 数据编码方法、数据解码方法以及数据处理装置 | |
Lei et al. | Compressing deep convolutional networks using k-means based on weights distribution | |
CN110442489A (zh) | 数据处理的方法和存储介质 | |
CN115905168A (zh) | 自适应压缩方法和压缩装置、计算机设备、存储介质 | |
CN114640357B (zh) | 数据编码方法、设备及存储介质 | |
CN113343020A (zh) | 基于人工智能的图像处理方法、装置及电子设备 | |
CN112101548A (zh) | 数据压缩方法及装置、数据解压方法及装置、电子设备 | |
CN116760661A (zh) | 数据存储方法、装置、计算机设备、存储介质和程序产品 | |
WO2023205969A1 (zh) | 点云几何信息的压缩、解压缩及点云视频编解码方法、装置 | |
WO2024011426A1 (zh) | 一种点云几何数据增强、编解码方法、装置和系统 | |
CN112886967B (zh) | 一种数据压缩编码处理的方法和设备 | |
CN110751274A (zh) | 一种基于随机投影哈希的神经网络压缩方法及系统 | |
Gilmary et al. | Compression techniques for dna sequences: A thematic review | |
CN110782003A (zh) | 一种基于哈希学习的神经网络压缩方法及系统 | |
CN118202339A (zh) | 一种数据库数据的压缩方法及存储设备 | |
CN115982634A (zh) | 应用程序分类方法、装置、电子设备及计算机程序产品 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |