CN114640357B - 数据编码方法、设备及存储介质 - Google Patents

数据编码方法、设备及存储介质 Download PDF

Info

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
Application number
CN202210541766.5A
Other languages
English (en)
Other versions
CN114640357A (zh
Inventor
涂承杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Yuanxiang Information Technology Co ltd
Original Assignee
Shenzhen Yuanxiang Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Yuanxiang Information Technology Co ltd filed Critical Shenzhen Yuanxiang Information Technology Co ltd
Priority to CN202210541766.5A priority Critical patent/CN114640357B/zh
Publication of CN114640357A publication Critical patent/CN114640357A/zh
Application granted granted Critical
Publication of CN114640357B publication Critical patent/CN114640357B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6047Power 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个字符类型所有可能的霍夫曼树的集合为
Figure 925905DEST_PATH_IMAGE001
Figure 316566DEST_PATH_IMAGE002
为第i棵霍夫曼树。显然
Figure 832998DEST_PATH_IMAGE003
是所有有N个叶节点二叉树的集合。如果n<N的所有
Figure 798549DEST_PATH_IMAGE003
已经构建好,则
Figure 400431DEST_PATH_IMAGE004
其中
Figure 860363DEST_PATH_IMAGE005
表示:从
Figure 231301DEST_PATH_IMAGE006
中取一棵二叉树作为左子树,以及从
Figure 367753DEST_PATH_IMAGE007
中取一棵二叉树作为右子树,组成一棵N个叶节点的树的所有组合。如果用
Figure 863457DEST_PATH_IMAGE008
表示
Figure 454975DEST_PATH_IMAGE009
中霍夫曼树的个数(显然
Figure 680420DEST_PATH_IMAGE010
=1),则有:
Figure 990703DEST_PATH_IMAGE011
由公式可知,
Figure 567178DEST_PATH_IMAGE012
随着N呈现指数级快速增长,N=16时,
Figure 368912DEST_PATH_IMAGE013
=9694845。显然,这会占用庞大的计算资源和存储资源,因此,为了减小计算***的负担,必须减小
Figure 448863DEST_PATH_IMAGE003
中霍夫曼树的数量。
由于
Figure 192697DEST_PATH_IMAGE014
Figure 990889DEST_PATH_IMAGE015
(只进行了左子树和右子树交换)组成的霍夫曼树是重复的,因此只需要保留其中任一棵霍夫曼树即可。经过对称性重复性去除后,有:
Figure 596314DEST_PATH_IMAGE016
经计算,N=16时,
Figure 796351DEST_PATH_IMAGE017
=11813,可以看出这种去重的效果明显,删除了
Figure 711086DEST_PATH_IMAGE018
中大量的重复的霍夫曼树,减少了存储资源的消耗。但仅依靠这种去重还不够,N较大时
Figure 996574DEST_PATH_IMAGE018
仍然还存在大量重复,因此还需要对上述去重后的霍夫曼树合集再次去重。
S102、对霍夫曼树的码字长度进行排序,得到多个码字长度序列。
具体地,获取每棵霍夫曼树的码字长度,将码字长度进行递增排序,生成多个码字长度序列,其中,每棵霍夫曼树对应一个码字长度序列。
示例性的,一棵N=8的霍夫曼树的共有8个码字长度,分别为1、2、4、3、6、5、7和7,经过递增排序后,得到的码字长度序列为{1,2,3,4,5,6,7,7}。
S103、对多个码字长度序列进行基数排序,根据基数排序的排序结果对第一霍夫曼树合集的多个霍夫曼树进行去重处理,得到第二霍夫曼树合集,其中,去重处理包括保留码字长度序列相同的任一棵霍夫曼树。
具体地,对第一霍夫曼树合集中的所有的霍夫曼树按递增重排后的码字长度序列先进行基数排序(radix sort),将重复的霍夫曼树的码字长度序列排列到一起,若多棵霍夫曼树的码字长度序列相同,仅需要保留其中一棵霍夫曼树,删除掉重复项后,得到第二霍夫曼树合集。
需要说明的是,经过对称性去重后,N较大时,
Figure 140111DEST_PATH_IMAGE018
的数量仍然很大。为了进一步降低复杂度,对第一霍夫曼编码中的霍夫曼树的码字长度序列进行基数排序(radix sort),将重复的树就排列到一起。
在一些实施例中,
Figure 194654DEST_PATH_IMAGE019
的字符类型对应的概率值经过递减重排后的概率分布为
Figure 280291DEST_PATH_IMAGE020
Figure 787496DEST_PATH_IMAGE019
的码字按递增重排的长度是
Figure 734723DEST_PATH_IMAGE021
,则
Figure 112615DEST_PATH_IMAGE019
的编码码率
Figure 978940DEST_PATH_IMAGE022
为:
Figure 360724DEST_PATH_IMAGE023
根据编码码率的计算公式可知,若两棵霍夫曼树的码字长度按递增重排得到的码字长度序列一样,那么两棵霍夫曼树的编码效率一样,因此只需要保留其中一棵霍夫曼树。这样,能够将大量重复项去除掉,在不损失码率的情况下,保留了编码码率不同的霍夫曼树。
在一些实施例中,第一霍夫曼树合集还可以是没有经过对称性去重的霍夫曼树合集。若多个霍夫曼树具有对称性,那么它们的码字长度序列也会相同,因此,对它们进行基数排序后,它们会排列到一起,在步骤S103中,也能去除它们之间的重复项。
这样,当字符类型N的数量较小时,以上无损去重技术在不影响压缩效率的前提下把复杂度控制在了合理的范围了。但N的数量比较大时,
Figure 970697DEST_PATH_IMAGE024
中霍夫曼树的数量仍然比较大,在资源受限或者对功耗要求苛刻的场景下,仍需降低
Figure 875199DEST_PATH_IMAGE024
中霍夫曼树的数量,进一步减少对计算资源和存储资源的占用量。
S104、根据排序结果,计算第二霍夫曼树合集中相邻的两棵霍夫曼树分别对应的第一码率增量和第二码率增量,并保留第一码率增量和第二码率增量中较大者对应的霍夫曼树,得到第三霍夫曼树合集。
具体地,根据排序结果,将第二霍夫曼树合集中每两棵相邻的霍夫曼树作为一个对照组,对照组包括第一霍夫曼树和第二霍夫曼树;根据第二霍夫曼树,对第一霍夫曼树对应的概率分布进行编码,产生的编码码率的增量为第一码率增量;根据第一霍夫曼树,对第二霍夫曼树对应的概率分布进行编码,产生的编码码率的增量为第二码率增量。
示例性的,
Figure 912425DEST_PATH_IMAGE025
的码字长度按递增重排的序列为
Figure 784435DEST_PATH_IMAGE026
,对应的最优概率分布为:
Figure 198099DEST_PATH_IMAGE027
这第i棵霍夫曼树的概率分布如果用第j棵霍夫曼树的码字进行编码,会导致编码码率会增加,码率增量的公式为:
Figure 957107DEST_PATH_IMAGE028
Figure 430814DEST_PATH_IMAGE029
Figure 993382DEST_PATH_IMAGE030
的概率分布使用
Figure 69792DEST_PATH_IMAGE031
的码字进行编码而产生的码率增量。相反的,
Figure 745624DEST_PATH_IMAGE032
Figure 124652DEST_PATH_IMAGE033
的概率分布使用
Figure 708605DEST_PATH_IMAGE034
的码字进行编码而产生的码率增量。
Figure 464071DEST_PATH_IMAGE029
Figure 197672DEST_PATH_IMAGE032
的大小可能不同。
Figure 13181DEST_PATH_IMAGE035
Figure 160129DEST_PATH_IMAGE032
反应的是霍夫曼树的相似度。由于
Figure 578341DEST_PATH_IMAGE018
是根据码字长度序列进行基数排序得到的合集,所以
Figure 963186DEST_PATH_IMAGE018
内的霍夫曼树基本就是根据相似度排好的,第i棵树与第j棵树相邻时,
Figure 152859DEST_PATH_IMAGE029
的值最小(也就是i=j-1或者i=j+1)。
在一些实施例中,相邻的两棵树可以是第(i+2a)棵和第(i+1+2a)棵,其中,a=0、1、2、3、…。
在一些实施例中,获取第三霍夫曼树合集中的霍夫曼树的数量值;若数量值大于预设值,继续根据第一码率增量和第二码率增量删除第三霍夫曼树合集的霍夫曼树,直至数量值小于或等于预设值。
示例性的,计算相邻两棵霍夫曼树间相互置换而产生的码率增量:
Figure 583840DEST_PATH_IMAGE036
Figure 805743DEST_PATH_IMAGE037
;将
Figure 372990DEST_PATH_IMAGE036
Figure 405668DEST_PATH_IMAGE038
中的最小值设置为
Figure 323946DEST_PATH_IMAGE039
,其中
Figure 83960DEST_PATH_IMAGE039
对应的霍夫曼树为
Figure 771294DEST_PATH_IMAGE040
,删除
Figure 974873DEST_PATH_IMAGE040
。例如,
Figure 114867DEST_PATH_IMAGE036
小于
Figure 941222DEST_PATH_IMAGE038
Figure 483062DEST_PATH_IMAGE036
对应的霍夫曼树为
Figure 123122DEST_PATH_IMAGE034
,删除
Figure 750412DEST_PATH_IMAGE041
。重复上述两个步骤,直到
Figure 852229DEST_PATH_IMAGE018
的数值小于预设值。这样,能够在编码码率损失较小的情况下更进一步地压缩霍夫曼树合集的数量,以适应资源受限或者对功耗要求苛刻的使用场景。
在一些实施例中,由于编解码常通过查询编码表实现,编码表中的最长码字长度决定编码表的长度,为了限制编码表的长度,可以通过限制最长码字的长度实现。这种情况下,删除最长码字长度超过预设值的霍夫曼树。
通过上述技术手段,能够进一步减少
Figure 514155DEST_PATH_IMAGE018
中的霍夫曼树数量,还能够把压缩性能损失控制在极小,降低了计算资源和存储资源的需求。
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中任一种所述的数据编码方法。
CN202210541766.5A 2022-05-19 2022-05-19 数据编码方法、设备及存储介质 Active CN114640357B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105656604A (zh) * 2016-01-21 2016-06-08 北京邮电大学 一种比特交织极化编码调制方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
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 广东海洋大学 一种哈夫曼编码的数值运算实现方法及电路

Patent Citations (1)

* Cited by examiner, † Cited by third party
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
US20230041067A1 (en) Systems and methods of data compression
WO2022142001A1 (zh) 基于多评分卡融合的目标对象评价方法及其相关设备
CN112003625A (zh) 一种霍夫曼编码方法、***及设备
CN112506879A (zh) 数据处理方法及相关设备
CN111737406B (zh) 文本检索方法、装置及设备、文本检索模型的训练方法
CN112463784A (zh) 数据去重方法、装置、设备及计算机可读存储介质
CN112672168A (zh) 基于图卷积的点云压缩方法及装置
CN114640356A (zh) 基于神经网络的大数据压缩方法、***及存储介质
CN114222129A (zh) 图像压缩编码方法、装置、计算机设备和存储介质
CN107291935B (zh) 基于Spark与Huffman编码的CPIR-V最近邻隐私保护查询方法
CN113343020B (zh) 基于人工智能的图像处理方法、装置及电子设备
Lei et al. Compressing deep convolutional networks using k-means based on weights distribution
CN114640357B (zh) 数据编码方法、设备及存储介质
CN114077885A (zh) 基于张量分解的模型压缩方法、装置和服务器
CN116760661A (zh) 数据存储方法、装置、计算机设备、存储介质和程序产品
TW202406344A (zh) 一種點雲幾何資料增強、編解碼方法、裝置、碼流、編解碼器、系統和儲存媒介
WO2023159820A1 (zh) 图像压缩方法、图像解压缩方法及装置
CN112886967B (zh) 一种数据压缩编码处理的方法和设备
CN115905168A (zh) 自适应压缩方法和压缩装置、计算机设备、存储介质
Chandra Data bandwidth reduction in deep neural network SoCs using history buffer and Huffman coding
CN110751274A (zh) 一种基于随机投影哈希的神经网络压缩方法及***
CN115982634A (zh) 应用程序分类方法、装置、电子设备及计算机程序产品
CN113780671A (zh) 岗位预测方法、训练方法、装置、模型、设备及存储介质
CN110782003A (zh) 一种基于哈希学习的神经网络压缩方法及***
CN111143641A (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