CN113852379A - 一种数据编码方法、系统、设备及计算机可读存储介质 - Google Patents

一种数据编码方法、系统、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN113852379A
CN113852379A CN202111032573.9A CN202111032573A CN113852379A CN 113852379 A CN113852379 A CN 113852379A CN 202111032573 A CN202111032573 A CN 202111032573A CN 113852379 A CN113852379 A CN 113852379A
Authority
CN
China
Prior art keywords
data
encoding
coding
initial
encoded
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
Application number
CN202111032573.9A
Other languages
English (en)
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.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center 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 Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202111032573.9A priority Critical patent/CN113852379A/zh
Publication of CN113852379A publication Critical patent/CN113852379A/zh
Pending legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请公开了一种数据编码方法,获取待编码数据;统计待编码数据中的待编码字符及每个待编码字符的出现频率;基于待编码字符及出现频率生成初始霍夫曼树;判断初始霍夫曼树的深度是否大于预设深度;若初始霍夫曼树的深度大于预设深度,则基于预设编码表对待编码数据进行编码,得到初始编码数据,按照动态霍夫曼编码的编码格式对初始编码数据进行封装,得到目标编码数据。本申请中,在待编码数据的初始霍夫曼树深度大于预设深度之后,直接采用预设编码表对待编码数据进行编码,无需再对霍夫曼树中超出长度的叶子节点进行逐个处理,可以提高编码效率。本申请提供的一种数据编码系统、设备及计算机可读存储介质也解决了相应技术问题。

Description

一种数据编码方法、系统、设备及计算机可读存储介质
技术领域
本申请涉及信息处理技术领域,更具体地说,涉及一种数据编码方法、系统、设备及计算机可读存储介质。
背景技术
近几年来,随着科学技术的不断发展,数据信息呈现出爆炸时的增长。且云计算的兴起,人工智能的推进,大数据时代的到来,使得工作负载不断增大,海量数据传输和存储的问题不断引起关注,如何能够高效的传输海量数据,同时不对处理器造成过于沉重负荷的问题亟待解决。而对文件进行压缩的话,不仅可以节省数据流量,还可以降低传输时间,也即可以对数据进行压缩来对数据进行处理。比如通过动态霍夫曼编码(Dynamic HuffmanCoding)对数据进行压缩,然而,动态霍夫曼编码会设定最大码长,也即会设定霍夫曼树的最大深度,当霍夫曼树的实际深度大于该最大深度时,需要对超出长度的叶子节点进行逐个处理,将霍夫曼树的深度处理在要求的深度内,整个过程冗长繁琐,效率低。
综上所述,如何快速进行霍夫曼编码是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种数据编码方法,其能在一定程度上解决如何快速进行霍夫曼编码的技术问题。本申请还提供了一种数据编码系统、设备及计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种数据编码方法,包括:
获取待编码数据;
统计所述待编码数据中的待编码字符及每个所述待编码字符的出现频率;
基于所述待编码字符及所述出现频率生成初始霍夫曼树;
判断所述初始霍夫曼树的深度是否大于预设深度;
若所述初始霍夫曼树的深度大于所述预设深度,则基于预设编码表对所述待编码数据进行编码,得到初始编码数据,按照动态霍夫曼编码的编码格式对所述初始编码数据进行封装,得到目标编码数据。
优选的,所述基于预设编码表对所述待编码数据进行编码,得到初始编码数据,包括:
确定所述待编码数据中重复出现且长度大于等于3的第一类字符;
统计各个所述第一类字符的长度;
确定所述待编码数据中单独出现的第二类字符;
基于所述预设编码表对所述第一类字符、所述长度、所述第二类字符进行编码,得到所述初始编码数据。
优选的,所述基于所述预设编码表对所述第一类字符、所述长度、所述第二类字符进行编码,得到所述初始编码数据,包括:
基于ASCII码表对所述第一类字符、所述第二类字符进行编码,得到第一编码结果;
基于霍夫曼长度编码表对所述长度进行编码,得到第二编码结果;
基于所述预设编码表对所述第一编码结果和所述第二编码结果进行编码,得到所述初始编码结果。
优选的,所述ASCII码表的编码结果为0到255间的整数;所述霍夫曼长度编码表的编码结果为257到285间的整数。
优选的,所述预设编码表对0到143间的整数、280到285间的整数的编码结果均为8比特数据;对144到255间的整数的编码结果均为9比特数据;对256到279间的整数的编码结果均为7比特数据。
优选的,所述按照动态霍夫曼编码的编码格式对所述初始编码数据进行封装,得到目标编码数据之后,还包括:
按照霍夫曼树存储方式存储所述预设编码表。
优选的,所述预设深度的值包括15。
一种数据编码系统,包括:
第一获取模块,用于获取待编码数据;
第一统计模块,用于统计所述待编码数据中的待编码字符及每个所述待编码字符的出现频率;
第一生成模块,用于基于所述待编码字符及所述出现频率生成初始霍夫曼树;
第一判断模块,用于判断所述初始霍夫曼树的深度是否大于预设深度;若所述初始霍夫曼树的深度大于所述预设深度,则基于预设编码表对所述待编码数据进行编码,得到初始编码数据,按照动态霍夫曼编码的编码格式对所述初始编码数据进行封装,得到目标编码数据。
一种数据编码设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述数据编码方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行实现如上任一项所述数据编码方法的步骤。
本申请提供的一种数据编码方法,获取待编码数据;统计待编码数据中的待编码字符及每个待编码字符的出现频率;基于待编码字符及出现频率生成初始霍夫曼树;判断初始霍夫曼树的深度是否大于预设深度;若初始霍夫曼树的深度大于预设深度,则基于预设编码表对待编码数据进行编码,得到初始编码数据,按照动态霍夫曼编码的编码格式对初始编码数据进行封装,得到目标编码数据。本申请中,在待编码数据的初始霍夫曼树深度大于预设深度之后,直接采用预设编码表对待编码数据进行编码,无需再对霍夫曼树中超出长度的叶子节点进行逐个处理,可以提高编码效率。本申请提供的一种数据编码系统、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据编码方法的流程图;
图2为本申请实施例提供的一种数据编码系统的结构示意图;
图3为本申请实施例提供的一种数据编码设备的结构示意图;
图4为本申请实施例提供的一种数据编码设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,图1为本申请实施例提供的一种数据编码方法的流程图。
本申请实施例提供的一种数据编码方法,可以包括以下步骤:
步骤S101:获取待编码数据。
实际应用中,可以先获取待编码数据,待编码数据的类型、内容及大小等均可以根据实际需要确定,本申请在此不做具体限定。
步骤S102:统计待编码数据中的待编码字符及每个待编码字符的出现频率。
实际应用中,在获取待编码数据之后,便可以先基于动态霍夫曼编码方法尝试对待编码数据进行编码,也即可以先统计待编码数据中的待编码字符及每个待编码字符的出现频率。
步骤S103:基于待编码字符及出现频率生成初始霍夫曼树。
实际应用中,在统计待编码数据中的待编码字符及每个待编码字符的出现频率之后,便可以基于待编码字符及出现频率生成初始霍夫曼树,霍夫曼树的生成过程可以参阅现有技术,本申请在此不再赘述。
步骤S104:判断初始霍夫曼树的深度是否大于预设深度;若初始霍夫曼树的深度大于预设深度,则执行步骤S105。
步骤S105:基于预设编码表对待编码数据进行编码,得到初始编码数据,按照动态霍夫曼编码的编码格式对初始编码数据进行封装,得到目标编码数据。
实际应用中,如果初始霍夫曼树的深度大于预设深度的话,便需要将初始霍夫曼树中超出长度的叶子节点逐个进行处理,使得最终得到的霍夫曼树的深度小于等于预设深度,这会降低数据编码效率,为了解决该问题,本方法在初始霍夫曼树的深度大于预设深度后,不再基于初始霍夫曼树进行霍夫曼编码,而是直接基于预设编码表对待编码数据进行编码,得到初始编码数据,再按照动态霍夫曼编码的编码格式对初始编码数据进行封装,得到目标编码数据,以此快速得到目标编码数据。
需要说明的是,预设深度的值可以根据实际需要确定,比如预设深度可以直接为霍夫曼编码过程中霍夫曼树的最大深度,也即预设深度的值可以直接为15;当然,预设深度还可以根据具体应用场景来确定,比如在初始霍夫曼树的深度为16或18等与15接近的情况下,对初始霍夫曼树的叶子节点进行处理不会明显降低编码效率的时候,预设深度的值也可以取16或18等,本申请在此不做具体限定。且再得到目标编码数据之后,可以对目标编码数据进行传输、存储等操作,本申请在此不做具体限定。
本申请实施例提供的一种数据编码方法,获取待编码数据;统计待编码数据中的待编码字符及每个待编码字符的出现频率;基于待编码字符及出现频率生成初始霍夫曼树;判断初始霍夫曼树的深度是否大于预设深度;若初始霍夫曼树的深度大于预设深度,则基于预设编码表对待编码数据进行编码,得到初始编码数据,按照动态霍夫曼编码的编码格式对初始编码数据进行封装,得到目标编码数据。本申请中,在待编码数据的初始霍夫曼树深度大于预设深度之后,直接采用预设编码表对待编码数据进行编码,无需再对霍夫曼树中超出长度的叶子节点进行逐个处理,可以提高编码效率。
本申请实施例提供的一种数据编码方法中,在基于预设编码表对待编码数据进行编码,得到初始编码数据的过程中,为了快速进行数据编码,可以确定待编码数据中重复出现且长度大于等于3的第一类字符;统计各个第一类字符的长度;确定待编码数据中单独出现的第二类字符;基于预设编码表对第一类字符、长度、第二类字符进行编码,得到初始编码数据。
具体应用场景中,考虑到待编码字符中可能包含数字、符号、字母等字符,而ASCII码表可以快速对这些字符进行编码,所以为了进一步提高数据编码效率,在基于预设编码表对第一类字符、长度、第二类字符进行编码,得到初始编码数据的过程中,可以基于ASCII码表对第一类字符、第二类字符进行编码,得到第一编码结果;基于霍夫曼长度编码表对长度进行编码,得到第二编码结果;基于预设编码表对第一编码结果和第二编码结果进行编码,得到初始编码结果。
具体应用场景中,为了便于区分第一编码结果和第二编码结果,且为了便于记录第一编码结果和第二编码结果,在编码过程中,可以设置ASCII码表的编码结果为0到255间的整数;霍夫曼长度编码表的编码结果为257到285间的整数。其ASCII码表及霍夫曼长度编码表的描述可以参阅现有技术。
具体应用场景中,考虑到ASCII码表0~143的编码结果,相对于后面144~255的编码结果而言,在文本里出现的频次比较高,所以可以试用8比特的码来描述0~143编码结果,而用9比特描述144~255的编码结果;256~279为长度的分配范围,由于在deflate格式中含有距离和长度内容的数据对频繁出现,所以可以使用7比特来描述长度的信息;而最后的280~285范围代表着较长的匹配长度范围,相较前一个长度范围,此范围出现的概率较小,则给其分配8比特的码比较合理;所以本申请可以设置预设编码表对0到143间的整数、280到285间的整数的编码结果均为8比特数据;对144到255间的整数的编码结果均为9比特数据;对256到279间的整数的编码结果均为7比特数据。其样式可以如表1所示等,其中,LitValue表示编码前数据,Bits表示数据大小,Codes表示编码结果。
表1预设编码表的编码结果表
Figure BDA0003245740980000061
Figure BDA0003245740980000071
实际应用中,为了便于了解本方法的效果,现对本方法与现有动态霍夫曼编码的编码时长及压缩率进行比较,比较结果可以参阅表2和表3;其中,表2为处理超长动态霍夫曼编码的树形迭代与本方法用时对比结果表,用时单位为时钟周期,且由表2可知,本方法基于查找表的超长码压缩方案比现有超长动态霍夫曼编码的效率提高1/3左右;表3为处理超长动态霍夫曼编码的树形迭代与本方法压缩率对比结果表,且由表3可知,两者压缩率差别很小,并无明显损失,所以本方法可以在保证压缩率的情况下提高效率。
表2处理超长动态霍夫曼编码的树形迭代与本方法用时对比结果表
测试轮数 动态霍夫曼编码 本方法
1 2589 1842
2 2713 1935
3 2272 1508
4 2044 1323
5 2437 1756
表3处理超长动态霍夫曼编码的树形迭代与本方法压缩率对比结果表
Figure BDA0003245740980000072
本申请实施例提供的一种数据编码方法中,考虑到后续的解码需求,且解码时可以按照动态霍夫曼编码的解码方式进行解码,在按照动态霍夫曼编码的编码格式对初始编码数据进行封装,得到目标编码数据之后,还可以按照霍夫曼树存储方式存储预设编码表。
请参阅图2,图2为本申请实施例提供的一种数据编码系统的结构示意图。
本申请实施例提供的一种数据编码系统,可以包括:
第一获取模块101,用于获取待编码数据;
第一统计模块102,用于统计待编码数据中的待编码字符及每个待编码字符的出现频率;
第一生成模块103,用于基于待编码字符及出现频率生成初始霍夫曼树;
第一判断模块104,用于判断初始霍夫曼树的深度是否大于预设深度;若初始霍夫曼树的深度大于预设深度,则基于预设编码表对待编码数据进行编码,得到初始编码数据,按照动态霍夫曼编码的编码格式对初始编码数据进行封装,得到目标编码数据。
本申请实施例提供的一种数据编码系统,第一判断模块可以包括:
第一确定子模块,用于确定待编码数据中重复出现且长度大于等于3的第一类字符;
第一统计子模块,用于统计各个第一类字符的长度;
第二确定子模块,用于确定待编码数据中单独出现的第二类字符;
第一编码子模块,用于基于预设编码表对第一类字符、长度、第二类字符进行编码,得到初始编码数据。
本申请实施例提供的一种数据编码系统,第一编码子模块可以包括:
第一编码单元,用于基于ASCII码表对第一类字符、第二类字符进行编码,得到第一编码结果;
第二编码单元,用于基于霍夫曼长度编码表对长度进行编码,得到第二编码结果;
第三编码单元,用于基于预设编码表对第一编码结果和第二编码结果进行编码,得到初始编码结果。
本申请实施例提供的一种数据编码系统,ASCII码表的编码结果为0到255间的整数;霍夫曼长度编码表的编码结果为257到285间的整数。
本申请实施例提供的一种数据编码系统,预设编码表对0到143间的整数、280到285间的整数的编码结果均为8比特数据;对144到255间的整数的编码结果均为9比特数据;对256到279间的整数的编码结果均为7比特数据。
本申请实施例提供的一种数据编码系统,还可以包括:
第一存储模块,用于第一判断模块按照动态霍夫曼编码的编码格式对初始编码数据进行封装,得到目标编码数据之后,按照霍夫曼树存储方式存储预设编码表。
本申请实施例提供的一种数据编码系统,预设深度的值包括15。
本申请还提供了一种数据编码设备及计算机可读存储介质,其均具有本申请实施例提供的一种数据编码方法具有的对应效果。请参阅图3,图3为本申请实施例提供的一种数据编码设备的结构示意图。
本申请实施例提供的一种数据编码设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:
获取待编码数据;
统计待编码数据中的待编码字符及每个待编码字符的出现频率;
基于待编码字符及出现频率生成初始霍夫曼树;
判断初始霍夫曼树的深度是否大于预设深度;若初始霍夫曼树的深度大于预设深度,则基于预设编码表对待编码数据进行编码,得到初始编码数据,按照动态霍夫曼编码的编码格式对初始编码数据进行封装,得到目标编码数据。
本申请实施例提供的一种数据编码设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:确定待编码数据中重复出现且长度大于等于3的第一类字符;统计各个第一类字符的长度;确定待编码数据中单独出现的第二类字符;基于预设编码表对第一类字符、长度、第二类字符进行编码,得到初始编码数据。
本申请实施例提供的一种数据编码设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:基于ASCII码表对第一类字符、第二类字符进行编码,得到第一编码结果;基于霍夫曼长度编码表对长度进行编码,得到第二编码结果;基于预设编码表对第一编码结果和第二编码结果进行编码,得到初始编码结果。
本申请实施例提供的一种数据编码设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:ASCII码表的编码结果为0到255间的整数;霍夫曼长度编码表的编码结果为257到285间的整数。
本申请实施例提供的一种数据编码设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:预设编码表对0到143间的整数、280到285间的整数的编码结果均为8比特数据;对144到255间的整数的编码结果均为9比特数据;对256到279间的整数的编码结果均为7比特数据。
本申请实施例提供的一种数据编码设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:按照动态霍夫曼编码的编码格式对初始编码数据进行封装,得到目标编码数据之后,按照霍夫曼树存储方式存储预设编码表。
本申请实施例提供的一种数据编码设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:预设深度的值包括15。
请参阅图4,本申请实施例提供的另一种数据编码设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现数据编码设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
获取待编码数据;
统计待编码数据中的待编码字符及每个待编码字符的出现频率;
基于待编码字符及出现频率生成初始霍夫曼树;
判断初始霍夫曼树的深度是否大于预设深度;若初始霍夫曼树的深度大于预设深度,则基于预设编码表对待编码数据进行编码,得到初始编码数据,按照动态霍夫曼编码的编码格式对初始编码数据进行封装,得到目标编码数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:确定待编码数据中重复出现且长度大于等于3的第一类字符;统计各个第一类字符的长度;确定待编码数据中单独出现的第二类字符;基于预设编码表对第一类字符、长度、第二类字符进行编码,得到初始编码数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:基于ASCII码表对第一类字符、第二类字符进行编码,得到第一编码结果;基于霍夫曼长度编码表对长度进行编码,得到第二编码结果;基于预设编码表对第一编码结果和第二编码结果进行编码,得到初始编码结果。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:ASCII码表的编码结果为0到255间的整数;霍夫曼长度编码表的编码结果为257到285间的整数。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:预设编码表对0到143间的整数、280到285间的整数的编码结果均为8比特数据;对144到255间的整数的编码结果均为9比特数据;对256到279间的整数的编码结果均为7比特数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:按照动态霍夫曼编码的编码格式对初始编码数据进行封装,得到目标编码数据之后,按照霍夫曼树存储方式存储预设编码表。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:预设深度的值包括15。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的一种数据编码系统、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的一种数据编码方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种数据编码方法,其特征在于,包括:
获取待编码数据;
统计所述待编码数据中的待编码字符及每个所述待编码字符的出现频率;
基于所述待编码字符及所述出现频率生成初始霍夫曼树;
判断所述初始霍夫曼树的深度是否大于预设深度;
若所述初始霍夫曼树的深度大于所述预设深度,则基于预设编码表对所述待编码数据进行编码,得到初始编码数据,按照动态霍夫曼编码的编码格式对所述初始编码数据进行封装,得到目标编码数据。
2.根据权利要求1所述的方法,其特征在于,所述基于预设编码表对所述待编码数据进行编码,得到初始编码数据,包括:
确定所述待编码数据中重复出现且长度大于等于3的第一类字符;
统计各个所述第一类字符的长度;
确定所述待编码数据中单独出现的第二类字符;
基于所述预设编码表对所述第一类字符、所述长度、所述第二类字符进行编码,得到所述初始编码数据。
3.根据权利要求2所述的方法,其特征在于,所述基于所述预设编码表对所述第一类字符、所述长度、所述第二类字符进行编码,得到所述初始编码数据,包括:
基于ASCII码表对所述第一类字符、所述第二类字符进行编码,得到第一编码结果;
基于霍夫曼长度编码表对所述长度进行编码,得到第二编码结果;
基于所述预设编码表对所述第一编码结果和所述第二编码结果进行编码,得到所述初始编码结果。
4.根据权利要求3所述的方法,其特征在于,所述ASCII码表的编码结果为0到255间的整数;所述霍夫曼长度编码表的编码结果为257到285间的整数。
5.根据权利要求4所述的方法,其特征在于,所述预设编码表对0到143间的整数、280到285间的整数的编码结果均为8比特数据;对144到255间的整数的编码结果均为9比特数据;对256到279间的整数的编码结果均为7比特数据。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述按照动态霍夫曼编码的编码格式对所述初始编码数据进行封装,得到目标编码数据之后,还包括:
按照霍夫曼树存储方式存储所述预设编码表。
7.根据权利要求6所述的方法,其特征在于,所述预设深度的值包括15。
8.一种数据编码系统,其特征在于,包括:
第一获取模块,用于获取待编码数据;
第一统计模块,用于统计所述待编码数据中的待编码字符及每个所述待编码字符的出现频率;
第一生成模块,用于基于所述待编码字符及所述出现频率生成初始霍夫曼树;
第一判断模块,用于判断所述初始霍夫曼树的深度是否大于预设深度;若所述初始霍夫曼树的深度大于所述预设深度,则基于预设编码表对所述待编码数据进行编码,得到初始编码数据,按照动态霍夫曼编码的编码格式对所述初始编码数据进行封装,得到目标编码数据。
9.一种数据编码设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据编码方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行实现如权利要求1至7任一项所述数据编码方法的步骤。
CN202111032573.9A 2021-09-03 2021-09-03 一种数据编码方法、系统、设备及计算机可读存储介质 Pending CN113852379A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111032573.9A CN113852379A (zh) 2021-09-03 2021-09-03 一种数据编码方法、系统、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111032573.9A CN113852379A (zh) 2021-09-03 2021-09-03 一种数据编码方法、系统、设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN113852379A true CN113852379A (zh) 2021-12-28

Family

ID=78973137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111032573.9A Pending CN113852379A (zh) 2021-09-03 2021-09-03 一种数据编码方法、系统、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113852379A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116506073A (zh) * 2023-06-26 2023-07-28 深圳市研创科技有限公司 一种工业计算机平台数据快速传输方法及系统
CN116738471A (zh) * 2023-08-10 2023-09-12 陕西昕晟链云信息科技有限公司 基于区块链的去中心化数据分析方法
CN117278055A (zh) * 2023-11-07 2023-12-22 杭州易靓好车互联网科技有限公司 基于数据分析的车辆销售信息优化存储方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116506073A (zh) * 2023-06-26 2023-07-28 深圳市研创科技有限公司 一种工业计算机平台数据快速传输方法及系统
CN116506073B (zh) * 2023-06-26 2023-08-25 深圳市研创科技有限公司 一种工业计算机平台数据快速传输方法及系统
CN116738471A (zh) * 2023-08-10 2023-09-12 陕西昕晟链云信息科技有限公司 基于区块链的去中心化数据分析方法
CN116738471B (zh) * 2023-08-10 2023-10-20 陕西昕晟链云信息科技有限公司 基于区块链的去中心化数据分析方法
CN117278055A (zh) * 2023-11-07 2023-12-22 杭州易靓好车互联网科技有限公司 基于数据分析的车辆销售信息优化存储方法
CN117278055B (zh) * 2023-11-07 2024-04-16 杭州易靓好车互联网科技有限公司 基于数据分析的车辆销售信息优化存储方法

Similar Documents

Publication Publication Date Title
CN113852379A (zh) 一种数据编码方法、系统、设备及计算机可读存储介质
CN116506073B (zh) 一种工业计算机平台数据快速传输方法及系统
US8265407B2 (en) Method for coding and decoding 3D data implemented as a mesh model
CN112003625A (zh) 一种霍夫曼编码方法、系统及设备
CN108197324B (zh) 用于存储数据的方法和装置
CN107919943A (zh) 二进制数据的编码、解码方法和装置
CN102880703B (zh) 中文网页数据编码、解码方法及系统
CN103546161A (zh) 基于二进制位处理的无损压缩方法
CN110958022A (zh) 连续性曲线的数据压缩方法、装置及其相关设备
GB2539966A (en) Data processing method and apparatus
CN110545106A (zh) 时序数据的编码方法及装置
CN104468044A (zh) 应用于网络传输中的数据压缩的方法及装置
CN111723053A (zh) 一种数据的压缩方法及装置、解压方法及装置
US7111094B1 (en) System, method and algorithm for the optimization of entropy for lossless compression
CN111491169A (zh) 一种数字图像压缩方法、装置、设备、介质
CN108880559B (zh) 数据压缩方法、数据解压缩方法、压缩设备及解压缩设备
CN108053034B (zh) 模型参数处理方法、装置、电子设备及存储介质
CN109981108B (zh) 数据压缩方法、解压缩方法、装置及设备
JP6835285B1 (ja) データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ伸長方法、データ伸長装置およびデータ伸長プログラム
US10644720B2 (en) Information processing apparatus and information processing method
CN108933599B (zh) 一种霍夫曼编码实现方法、系统、设备及计算机存储介质
US20120121180A1 (en) Method and system for dot-matrix font data compression and decompression
CN103210590A (zh) 压缩方法及设备
CN103138766A (zh) 数据压缩与解压缩的方法及装置
CN114513209A (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