CN115001628B - 数据编码的方法及装置、数据解码的方法及装置和数据结构 - Google Patents

数据编码的方法及装置、数据解码的方法及装置和数据结构 Download PDF

Info

Publication number
CN115001628B
CN115001628B CN202210641871.6A CN202210641871A CN115001628B CN 115001628 B CN115001628 B CN 115001628B CN 202210641871 A CN202210641871 A CN 202210641871A CN 115001628 B CN115001628 B CN 115001628B
Authority
CN
China
Prior art keywords
data
unit
value
code
code section
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
CN202210641871.6A
Other languages
English (en)
Other versions
CN115001628A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202210641871.6A priority Critical patent/CN115001628B/zh
Publication of CN115001628A publication Critical patent/CN115001628A/zh
Application granted granted Critical
Publication of CN115001628B publication Critical patent/CN115001628B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0058Allocation criteria
    • H04L5/0064Rate requirement of the data, e.g. scalable bandwidth, data priority

Abstract

本公开提供了一种数据编码的方法及装置、数据解码的方法及装置和数据结构,涉及计算机技术领域,尤其涉及数据处理。其中,数据编码的方法包括:获取待编码的第一数据,将多个第一数据单元中的每个第一数据单元编码为对应的二进制代码格式的第二数据单元,其中,将每个第一数据单元编码为对应的第二数据单元包括:至少根据该第一数据单元的单元名确定对应的第二数据单元的标签代码区段内的代码;根据该第一数据单元的单元值的类型,确定对应的第二数据单元的值代码区段的长度;根据对应的第二数据单元的值代码区段的长度,确定对应的第二数据单元的长度代码区段内的代码。

Description

数据编码的方法及装置、数据解码的方法及装置和数据结构
技术领域
本公开涉及计算机技术领域,尤其涉及数据处理,具体涉及一种数据编码的方法及装置、数据解码的方法及装置和数据结构、电子设备、计算机可读存储介质和计算机程序产品。
背景技术
随着互联网技术的发展,微服务的应用越来越广泛,对于大流量的接口调用来说,数据传输效率变得的越来越重要。一般在进行数据传输之前,需要将数据先编码为计算机底层的二进制数据,因此,使用一种高效的数据编码的方法,可大幅提升网络传输效率。
现有技术中的数据编码,往往不区分数据单元中值的类型,所有值都预先分配相同的二进制代码长度。为了能够对各种类型的值进行编码,上述预先分配好的二进制代码长度往往会非常大。也就是说,现有技术在对数据进行二进制编码时,单元值所对应的编码后的区段通常被分配固定的字节长度,从而使得数据占用空间较大,不利于数据的高效传输。
在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
发明内容
本公开提供了一种数据编码的方法及装置、数据解码的方法及装置和数据结构、电子设备、计算机可读存储介质和计算机程序产品。
根据本公开的一方面,提供了一种数据编码的方法,包括:获取待编码的第一数据,其中,第一数据包括多个第一数据单元,多个第一数据单元中的每个第一数据单元包括单元名和单元值;将多个第一数据单元中的每个第一数据单元编码为对应的二进制代码格式的第二数据单元,其中,第二数据单元包括标签代码区段、长度代码区段和值代码区段,其中,将每个第一数据单元编码为对应的第二数据单元包括:至少根据该第一数据单元的单元名确定对应的第二数据单元的标签代码区段内的代码;根据该第一数据单元的单元值的类型,确定对应的第二数据单元的值代码区段的长度;根据对应的第二数据单元的值代码区段的长度,确定对应的第二数据单元的长度代码区段内的代码;以及将该第一数据单元的单元值按照二进制编码规则编码为二进制代码,以作为长度已确定的对应的第二数据单元的值代码区段内的代码;以及将多个编码后的第二数据单元组合成第二数据,以作为对第一数据的编码结果。
根据本公开的另一方面,提供了一种数据解码的方法,包括:获取待解码的二进制代码格式的第二数据,其中,第二数据包括多个第二数据单元,多个第二数据单元中的每个第二数据单元包括标签代码区段、长度代码区段和值代码区段;将多个第二数据单元中的每个第二数据单元解码为对应第一数据单元,其中,第一数据单元包括单元名和单元值,其中,将每个第二数据单元解码为对应的第一数据单元包括:根据该第二数据单元的标签代码区段内的至少部分代码确定对应的第一数据单元的单元名;根据该第二数据单元的长度代码区段内的代码,确定该第二数据单元的值代码区段的起始和终止范围;以及根据该第二数据单元的范围已确定的值代码区段内的代码,确定对应的第一数据单元的单元值。
根据本公开的另一方面,提供了一种数据结构,数据结构包括多个第二数据单元,多个第二数据单元中的每个第二数据单元用于存储待编码数据对应的数据单元,多个第二数据单元中的每个第二数据单元包括:标签代码区段,配置成存储对应的数据单元的单元名;值代码区段,配置成存储对应的数据单元的单元值的二进制代码;以及长度代码区段,配置成存储对应的数据单元的单元值的二进制代码的长度,其中每个第二数据单元按照标签代码区段、长度代码区段和值代码区段的顺序编码。
根据本公开的另一方面,提供了一种数据编码的装置,包括:第一获取单元,配置成获取待编码的第一数据,其中,第一数据包括多个第一数据单元,多个第一数据单元中的每个第一数据单元包括单元名和单元值;编码单元,配置成将多个第一数据单元中的每个第一数据单元编码为对应的二进制代码格式的第二数据单元,其中,第二数据单元包括标签代码区段、长度代码区段和值代码区段,其中,编码单元包括:第一确定模块,配置成至少根据该第一数据单元的单元名确定对应的第二数据单元的标签代码区段内的代码;第二确定模块,配置成根据该第一数据单元的单元值的类型,确定对应的第二数据单元的值代码区段的长度;第三确定模块,配置成根据对应的第二数据单元的值代码区段的长度,确定对应的第二数据单元的长度代码区段内的代码;以及第四确定模块,配置成将该第一数据单元的单元值按照二进制编码规则编码为二进制代码,以作为长度已确定的对应的第二数据单元的值代码区段内的代码;以及组合单元,配置成将多个编码后的第二数据单元组合成第二数据,以作为对第一数据的编码结果。
根据本公开的另一方面,提供了一种数据解码的装置,包括:第二获取单元,配置成获取待解码的二进制代码格式的第二数据,其中,第二数据包括多个第二数据单元,多个第二数据单元中的每个第二数据单元包括标签代码区段、长度代码区段和值代码区段;解码单元,配置成将多个第二数据单元中的每个第二数据单元解码为对应第一数据单元,其中,第一数据单元包括单元名和单元值,其中,解码单元包括:第五确定模块,配置成根据该第二数据单元的标签代码区段内的至少部分代码确定对应的第一数据单元的单元名;第六确定模块,配置成根据该第二数据单元的长度代码区段内的代码,确定该第二数据单元的值代码区段的起始和终止范围;以及第七确定模块,配置成根据该第二数据单元的范围已确定的值代码区段内的代码,确定对应的第一数据单元的单元值。
根据本公开的另一方面,还提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执上述的方法。
根据本公开的另一方面,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述的方法。
根据本公开的另一方面,还提供了一种计算机程序产品,包括计算机程序,其中,计算机程序在被处理器执行时实现上述的方法。
根据本公开的一个或多个实施例的编码方法,可以预先设定一长度代码区段,用于记录分配给单元值的二进制代码的存储长度。对于不同单元值的不同数据类型,可以分配相匹配的值代码区段的长度,以节省代码的存储空间。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1示出了根据本公开的实施例的数据编码的方法的流程图;
图2示出了根据本公开的实施例的第一数据的示意图;
图3示出了根据本公开的实施例的第二数据的数据结构的示意图;
图4示出了根据本公开的另一实施例的数据编码的方法的流程图;
图5示出了根据本公开的实施例的第二数据单元中的标签代码区段的结构示意图;
图6示出了根据本公开的实施例的第二对应关系列表的示意图;
图7示出了根据本公开的实施例的数据解码的方法的流程图;
图8示出了根据本公开的实施例的数据编码的装置的结构框图;
图9示出了根据本公开的实施例的数据解码的结构框图;
图10示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个要素与另一要素区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
下面结合图1详细说明本公开实施方式的数据编码的方法。图1示出了根据本公开实施方式的数据编码的方法100的流程图,如图1所示,该方法100包括:
步骤101,获取待编码的第一数据,其中,第一数据包括多个第一数据单元,多个第一数据单元中的每个第一数据单元包括单元名和单元值;
步骤102,将多个第一数据单元中的每个第一数据单元编码为对应的二进制代码格式的第二数据单元,其中,第二数据单元包括标签代码区段、长度代码区段和值代码区段,其中,将每个第一数据单元编码为对应的第二数据单元包括:
步骤1021,至少根据该第一数据单元的单元名确定对应的第二数据单元的标签代码区段内的代码;
步骤1022,根据该第一数据单元的单元值的类型,确定对应的第二数据单元的值代码区段的长度;
步骤1023,根据对应的第二数据单元的值代码区段的长度,确定对应的第二数据单元的长度代码区段内的代码;以及
步骤1024,将该第一数据单元的单元值按照二进制编码规则编码为二进制代码,以作为长度已确定的对应的第二数据单元的值代码区段内的代码;以及
步骤103,将多个编码后的第二数据单元组合成第二数据,以作为对第一数据的编码结果。
根据本公开的一个或多个实施例的编码方法,可以预先设定一长度代码区段,用于记录分配给单元值的二进制代码的存储长度。对于不同单元值的不同数据类型,可以分配相匹配的值代码区段的长度,以节省代码的存储空间。
上述第一数据可以是结构化数据,结构化数据由多行数据组成,其中,每行数据用于存储一个对象的相关属性参数。图2示出了根据本公开实施例的第一数据200的示意图,如图2所示,在上述步骤101中,所获取的第一数据可以表示某个人员对象的相关属性,数据中的每一行为一个第一数据单元,用于存储一个相关属性参数。图2所示的第一数据包括4个第一数据单元,以用于分别记录人员的姓名、年龄、体重和身份等属性。每个第一数据单元均包括单元名和单元值,单元名用于表示该单元所对应的相关属性的名称,例如:姓名、年龄、体重等;单元值则表示该属性的数值,例如:“zhangsan”“21”岁等。
在步骤102中,将第一数据的每个第一数据单元编码为二进制数据,从而生成编码后的与该第一数据单元对应的第二数据单元,上述编码操作可以通过相关计算机的编码器执行。在步骤103中,将分别编码好的多个第二数据单元按照与多个第一数据单元相同的排序组合好,即得到编码好的第二数据。图3示出了根据本公开的实施方式的第二数据的数据结构300的示意图。如图3所示,第二数据由多个第二数据单元构成,每个第二数据单元对应于第一数据中的一个第一数据单元。每个第二数据单元进一步包括三个区段,即,标签代码区段(tag)、长度代码区段(length)和值代码区段(value)。标签代码区段主要用于存储第一单元的单元名,值代码区段用于存储第一单元的单元值,长度代码区段用于记录值代码区段的代码长度。
下面详细介绍步骤102中的各个子步骤。在步骤1021中,将第一数据单元中的单元名信息存储在标签代码区段中的至少部分代码内。在一些实施例中,对第一数据进行编码的编码器可以查询预先设置的关系表以获取和单元名相对应的二进制代码,然后将标签代码区段中的至少部分代码设置为上述二进制代码。在另外一些实施例中,还可以将单元名作为字符串直接转换为二进制代码。
每个第二数据单元的值代码区段的长度不一定相同,其长度将根据对应的第一数据单元的单元值的类型确定。在步骤1022中,对于数据类型简单,占用空间小的单元值的类型(例如:int类型),编码器可以设置较短的值代码区段的长度,即,值代码区段具有较小的字节数;而对于数据类型复杂,占用空间大的单元值的类型(例如:string类型),编码器可以设置较长的值代码区段的长度,即,值代码区段具有较大的字节数。
在确定好值代码区段的长度后,在步骤1023中,将上述长度信息记录到第二数据单元的长度代码区段中。在一些实施例,编码器可以将值代码区段的长度转化为二进制格式的数据并存储于同一第二数据单元的长度代码区段中。通过设置长度代码区段,在后续解码的过程中,相关的解码器能够通过解析长度代码区段确定值代码区段的起始位置和终止位置。
在步骤1024中,将第一数据单元中的单元值按照二进制编码规则进行编码,以获得对应第二数据单元的值区段。将数值或字符串等转化为二进制数据的原理是本领域技术人员熟知的这里不再详细描述。
图4示出了根据本公开另一实施方式的数据编码的方法400的流程图,如图4所示,该方法400包括:
步骤401,获取待编码的第一数据;
步骤402,将多个第一数据单元中的每个第一数据单元编码为对应的二进制代码格式的第二数据单元,以及
步骤403,将多个编码后的第二数据单元组合成第二数据,以作为对第一数据的编码结果。
步骤402进一步包括:
步骤4021,根据该第一数据单元的单元名查询预先设置的第一对应关系,将第一子区段内的代码设置为与该第一数据单元的单元名相对应的二进制代码;
步骤4022,根据该第一数据单元的单元值的类型查询预先设置的第二对应关系,将第二子区段内的代码设置为与该第一数据单元的单元值的类型相对应的二进制代码;
步骤4023,根据该第一数据单元的单元值的类型,确定对应的第二数据单元的值代码区段的长度;
步骤4024,根据对应的第二数据单元的值代码区段的长度,确定对应的第二数据单元的长度代码区段内的代码;
步骤4025,根据对应的第二数据单元的长度代码区段内的代码的长度,确定第三子区段内的代码;以及
步骤4026,将该第一数据单元的单元值按照二进制编码规则编码为二进制代码,以作为长度已确定的对应的第二数据单元的值代码区段内的代码。
在一些实施例中,标签代码区段包括第一子区段、第二子区段和第三子区段。图5示出了根据本公开实施方式的第二数据单元中的标签代码区段500的结构示意图,其中,第一子区段由number标识,第二子区段由type标识,第一子区段由size标识。
在步骤4021中,首先确定标签代码区段的第一子区段内的代码。具体地,根据该第一数据单元的单元名查询预先设置的第一对应关系,将第一子区段内的代码设置为与该第一数据单元的单元名相对应的二进制代码,其中,第一对应关系包括多种单元名以及与每种单元名相对应的二进制代码。还以上述图2所示的第一数据为例,假设在网络中传输第一数据,数据的schema如下定义:
在上述schema中预先设置了第一数据单元的单元名(name,age,weight和isStudent)以及对应的数字编号(即,0、1、2、3),编码器查询得到对应的数字编号后将上述数字编号转化为二进制代码,即得到对应的第二数据单元的标签代码区段的第一子区段中的代码。以图2中的体重(weight)一行的第一数据单元为例,单元名(weight)对应的数字编号为2,那么对应的第二数据单元的标签代码区段的第一子区段中的代码为10。通过设置第一对应关系,编码后的数据无需记录完整的单元名,只需记录与单元名对应的二进制码,从而进一步缩减了存储空间。
在步骤4022中,确定标签代码区段的第二子区段内的代码。具体地,根据该第一数据单元的单元值的类型查询预先设置的第二对应关系,将第二子区段内的代码设置为与该第一数据单元的单元值的类型相对应的二进制代码,其中,第二对应关系包括多种单元值的类型以及与每种单元值的类型相对应的二进制代码。第二子区段用于记录单元值的类型,以用于在解码时确定单元值的类型,防止解码时发生错误。
还以上述图2所示的第一数据为例,可以预先设定第二对应关系,该第二对应关系可以存储在与编码器相连的存储器中,以便于编码器在编码时能够查询上述第二对应关系。图6示出了根据本公开实施方式的第二对应关系列表600的示意图,如图6所示,可以预定义bool类型对应的数字编号为0;int类型对应的数字编号为1;double类型对应的数字编号为2;string类型对应的数字编号为3。还以图2中的体重(weight)一行的第一数据单元为例,单元值(50.5)对应的数据类型为double类型,那么对应的第二数据单元的标签代码区段的第二子区段中的代码为10。
由于第二数据单元的值代码区段的长度由对应的第一数据单元的单元值的类型确定,因此,在一些实施例中,还可以额外设置第三对应关系,以用于记录不同的单元值的类型所对应的值代码区段的长度。如图6所示,为了提高储存效率,可以将第二对应关系和第三对应关系记录在一起,如图6的对应关系表600所示。当编码器确定出单元值的类型后,便可以查询第三对应关系以确定对应的值代码区段的长度。在步骤4023中,响应于单元值的类型为布尔类型,确定值代码区段的长度为1字节;和/或响应于单元值的类型为整数类型,确定值代码区段的长度为1至4字节;和/或响应于单元值的类型为浮点类型,确定值代码区段的长度为8字节;和/或响应于单元值的类型为字符串类型,根据单元值所包含的字符数确定值代码区段的长度。对于不同的单元值的不同数据类型,可以分配相匹配的值代码区段的长度。例如:int类型可以分配较小的代码长度,以节省代码的存储空间,而string类型可以分配较大的代码长度,以确保数据的完整存储。
在步骤4024,确定第三子区段内的代码,其根据长度代码区段的长度来确定。如上文所述,长度代码区段用于记录分配给单元值的二进制代码的长度(字节数)。长度代码区段内的代码(以下简称长度代码)本身也具有一定长度,特别是在值代码区段非常长的情况下,长度代码本身也会占用较大的存储长度,这里预先设定第三子区段,用于记录分配给长度代码的存储长度。对于不同的代码长度,可以给长度代码分配相匹配的字节长度,从而进一步节省了代码的存储空间。
在一些实施例中,步骤403还可以包括:在多个编码后的第二数据单元的每个第二数据单元之前或之后增设标识位代码。上述识位代码可以是预先设置好的特定序列的二进制代码,以便于区分多个第二数据单元。
下面将结合图2详细说明如何将第一数据编码为第二数据。图2所示的第一数据包括4个第一数据单元,即单元名称分别为“name”、“age”、“weight”和“isStudent”的第一数据单元。对应的编码后的第二数据中的每个第二数据单元包括标签(tag)代码区段、长度(length)代码区段和值(value)代码区段,其中,所有第二数据单元的标签代码区段为固定的8位(1个字节),这8位进一步分为4位的第一子区段、2位的第二子区段和2位的第三子区段。每个第二数据单元的长度代码区段和值代码区段的长度则会根据第一数据单元的不同而存在差别。
对于单元名称为“name”的第一数据单元,编码器首先查询第一对应关系,等到“name”所对应的数字编号。由上述schema可知,“name”所对应的数字编号为0,转化为二进制编码为0000,从而得到标签代码区段的第一子区段内的代码。编码器然后查询第二对应关系,得到“name”所对应的类型编号。由上述第二对应关系可知,“name”所对应的类型编号为3,转化为二进制编码为11,从而得到标签代码区段的第二子区段内的代码。接下来,确定值代码区段的长度,“name”的单元值的类型为string,通过查询如图6所示的第三对应关系表,得到值代码区段的长度为单元值所包含的字符数,然后根据上述字符数确定长度代码区段中的代码。例如:“zhangsan”具有8个字符,因此对应的值代码区段的长度的十进制表示为8,将8转化为二进制代码1000,从而得到长度代码区段中的代码为00001000。利用二进制代码表示十进制长度,提高了代码解码时的可读取性。在大多数情况下,值代码区段的长度小于256个字节,因此,8位(1字节)的长度代码区段足以表示值代码区段的长度。但是,当值代码区段的长度大于或等于256个字节的情况下,长度代码区段可能需要设置为大于1个字节。接下来,根据长度代码区段的长度确定标签代码区段的第三子区段内的代码。“zhangsan”的长度为8字节,存储长度8(二进制代码为1000)占用1个字节,因此第三子区段的编码为01。最后,将单元值“zhangsan”转为二进制代码,得到值代码区段的编码。
综上所述,对于单元名称为“name”的第一数据单元,对应的第二数据单元的标签代码区段编码为00001101,长度代码区段编码为00001000,值代码区段为:
1111010111010001110000111101110111001111111001111100001111011101。
对于单元名称为“age”的第一数据单元,仍然利用上述的编码方式,得到标签代码区段为00011001,长度代码区段为00000001,值代码区段为:00010101。在另外一些实施例中,对于一些值代码区段事先可以确定长度的数据类型,可以不设置第三子区段的编码(即用00表示),例如age的类型为int,其值代码区段可以固定为8位(1字节),因此,age的标签代码区段也可以表示为00011000。
对于单元名称为“weight”的第一数据单元。得到标签代码区段为00100101或者为00100100,长度代码区段为00000001,值代码区段为将“50.5”转化成的二进制代码,即:
10000001100100111000000100000000000000000000000000000000。
对于单元名称为“isStuent”的第一数据单元,与上述其他第一数据单元不同的是bool类型的单元值仅存在是、否两种(即,二进制代码为1和0),因此对于bool类型的第一数据单元可以不设置值代码区段,或者将值代码区段填充为00000000。在这种情况下,可以将Bool类型的单元值表示在标签代码区段的第三子区段内。从而,得到标签代码区段为01000001,长度代码区段为00000001。对于bool类型的单元值,其对应的第二数据单元可以不设置值代码区段,从而进一步减少了存储空间。
需要补充说明的是,上述实施例中所提及的第一数据和第二数据仅仅是示例性的,在本公开另外一些实施例中,第一数据还可以包括大于或小于4个的第一数据单元,并且每个第一数据单元的单元值类型也可以是不同于上述实施例中所提及的单元值类型。总之,本公开方法的实现不受第一数据的形式和数据单元数量的限制。
根据本公开的另一实施例,还提供了一种数据解码的方法,图7示出了根据本公开实施方式的数据解码的方法700的流程图,如图7所示,该方法700包括:
步骤701,获取待解码的二进制代码格式的第二数据,其中,第二数据包括多个第二数据单元,多个第二数据单元中的每个第二数据单元包括标签代码区段、长度代码区段和值代码区段;
步骤702,将多个第二数据单元中的每个第二数据单元解码为对应第一数据单元,其中,第一数据单元包括单元名和单元值,其中,步骤702进一步包括:
步骤7021,根据该第二数据单元的标签代码区段内的至少部分代码确定对应的第一数据单元的单元名;
步骤7022,根据该第二数据单元的长度代码区段内的代码,确定该第二数据单元的值代码区段的起始和终止范围;以及
步骤7023,根据该第二数据单元的范围已确定的值代码区段内的代码,确定对应的第一数据单元的单元值。
上述解码过程可以由相关电子设备中的解码器完成。在步骤701中,第二数据具有如下数据结构:第二数据包括多个第二数据单元,多个第二数据单元中的每个第二数据单元用于存储待编码数据对应的第一数据单元。多个第二数据单元中的每个第二数据单元包括:标签代码区段、长度代码区段和值代码区段。标签代码区段配置成存储对应的第一数据单元的单元名;值代码区段配置成存储对应的第一数据单元的单元值的二进制代码;长度代码区段配置成存储对应的第一数据单元的单元值的二进制代码的长度。每个第二数据单元按照标签代码区段、长度代码区段和值代码区段的顺序编码。
在步骤7021中,解码器首先识别第二数据单元的标签代码区段,然后查询预先设置的第一对应关系,即数据的schema,得到和标签代码区段中的二进制代码对应的单元名,以作为对应的第一数据单元的单元名。
在步骤7022中,解码器读取长度代码区段,根据该第二数据单元的长度代码区段内的代码,确定该第二数据单元的值代码区段的起始和终止范围。具体地,解码器将长度代码区段内的代码由二进制转化为十进制数字,从而得到该第二数据单元的值代码区段所占用的字节数。
由于在步骤7022中已经确定了值代码区段所占用的字节数,因此能够准确地确定值代码区段的起始和终止范围。在步骤7023中,首先根据标签代码区段的至少部分代码确定对应的第一数据单元的单元值的类型,然后根据对应的第一数据单元的单元值的类型将范围确定好的值代码区段内的代码由二进制转化为十进制数据或字符串数据,从而得到对应的第一数据单元的单元值。
在一些实施例中,标签代码区段进一步包括第一子区段、第二子区段和第三子区段,其中,第一子区段用于记录第一数据单元的单元名,第二子区段用于记录第一数据单元的单元值的类型,第三子区段于记录同一第二数据单元的长度代码区段的长度。在上述步骤7021中,第一数据单元的单元名是通过解析第一子区段得到的。在步骤7022中,解码器读取标签代码区段的第三子区段,从而确定长度代码区段的起始和终止范围。在步骤7023中,解码器读取标签代码区段的第二子区段,从而确定第一数据单元的单元值的类型,根据单元值的类型确定如何解析二进制代码。例如,当确定单元值的类型为int型时,则将值代码区段内的代码转化为十进制代码;当确定单元值的类型为string型时,则将值代码区段内的代码转化为字符串。
根据本公开的另一个方面,还提供了一种数据结构,该数据结构和方法700中的第二数据的数据结构相同,具体请参照关于图7的相关描述,这里不再赘述。
根据本公开的另一个方面,还提供了一种数据编码的装置,图8示出了根据本公开实施例的数据编码的装置800的结构框图。如图8所示,该装置800包括:第一获取单元810,配置成获取待编码的第一数据,其中,第一数据包括多个第一数据单元,多个第一数据单元中的每个第一数据单元包括单元名和单元值;编码单元820,配置成将多个第一数据单元中的每个第一数据单元编码为对应的二进制代码格式的第二数据单元,其中,第二数据单元包括标签代码区段、长度代码区段和值代码区段,以及组合单元830,配置成将多个编码后的第二数据单元组合成第二数据,以作为对第一数据的编码结果。编码单元820包括:第一确定模块821,配置成至少根据该第一数据单元的单元名确定对应的第二数据单元的标签代码区段内的代码;第二确定模块822,配置成根据该第一数据单元的单元值的类型,确定对应的第二数据单元的值代码区段的长度;第三确定模块823,配置成根据对应的第二数据单元的值代码区段的长度,确定对应的第二数据单元的长度代码区段内的代码;以及第四确定模块824,配置成将该第一数据单元的单元值按照二进制编码规则编码为二进制代码,以作为长度已确定的对应的第二数据单元的值代码区段内的代码。
在一些实施例中,标签代码区段包括第一子区段,其中,第一确定模块821还配置成根据该第一数据单元的单元名查询预先设置的第一对应关系,将第一子区段内的代码设置为与该第一数据单元的单元名相对应的二进制代码,其中,第一对应关系包括多种单元名以及与每种单元名相对应的二进制代码。
在一些实施例中,标签代码区段包括第二子区段,其中,第一确定模块821还配置成根据该第一数据单元的单元值的类型查询预先设置的第二对应关系,将第二子区段内的代码设置为与该第一数据单元的单元值的类型相对应的二进制代码,其中,第二对应关系包括多种单元值的类型以及与每种单元值的类型相对应的二进制代码。
在一些实施例中,标签代码区段包括第三子区段,其中,第一确定模块821还配置成根据对应的第二数据单元的长度代码区段内的代码的长度,确定第三子区段内的代码。
根据本公开的又一个方面,还提供了一种数据解码的装置,图9示出了根据本公开实施例的数据解码的装置900的结构框图。如图9所示,该装置900包括:第二获取单元910,配置成获取待解码的二进制代码格式的第二数据,其中,第二数据包括多个第二数据单元,多个第二数据单元中的每个第二数据单元包括标签代码区段、长度代码区段和值代码区段;解码单元920,配置成将多个第二数据单元中的每个第二数据单元解码为对应第一数据单元,其中,第一数据单元包括单元名和单元值。解码单元920包括:第五确定模块921,配置成根据该第二数据单元的标签代码区段内的至少部分代码确定对应的第一数据单元的单元名;第六确定模块922,配置成根据该第二数据单元的长度代码区段内的代码,确定该第二数据单元的值代码区段的起始和终止范围;以及第七确定模块923,配置成根据该第二数据单元的范围已确定的值代码区段内的代码,确定对应的第一数据单元的单元值。
在一些实施例中,第五确定模块921还配置成根据该第二数据单元的标签代码区段内的至少部分二进制代码查询预先设置的第一对应关系,获得和标签代码区段中的二进制代码对应的单元名,以作为对应的第一数据单元的单元名,其中,第一对应关系包括多种单元名以及与每种单元名相对应的二进制代码。
在一些实施例中,第六确定模块922还配置成将长度代码区段内的代码由二进制转化为十进制数字,从而得到该第二数据单元的值代码区段所占用的字节数。
在一些实施例中,第七确定模块923还配置成:根据标签代码区段的至少部分代码确定对应的第一数据单元的单元值的类型;以及根据对应的第一数据单元的单元值的类型将范围已确定的值代码区段内的代码由二进制转化为十进制数据或字符串数据,以作为对应的第一数据单元的单元值。
上述装置800和装置900中的各个单元及模块的工作原理和方法100至方法700中的各步骤的操作方式类似,这里不再详细描述。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
参考图10,现将描述可以作为本公开的服务器或客户端的电子设备1000的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,电子设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储电子设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
电子设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006、输出单元1007、存储单元1008以及通信单元1009。输入单元1006可以是能向电子设备1000输入信息的任何类型的设备,输入单元1006可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入,并且可以包括但不限于鼠标、键盘、触摸屏、轨迹板、轨迹球、操作杆、麦克风和/或遥控器。输出单元1007可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元1008可以包括但不限于磁盘、光盘。通信单元1009允许电子设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如数据编码方法或数据解码的方法。例如,在一些实施例中,数据编码方法或数据解码的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到电子设备1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文描述的数据编码方法或数据解码的方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据编码方法或数据解码的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。

Claims (19)

1.一种数据编码的方法,包括:
获取待编码的第一数据,其中,所述第一数据包括多个第一数据单元,所述多个第一数据单元中的每个第一数据单元包括单元名和单元值;
将所述多个第一数据单元中的每个第一数据单元编码为对应的二进制代码格式的第二数据单元,其中,所述第二数据单元包括标签代码区段、长度代码区段和值代码区段,其中,所述标签代码区段包括第一子区段,并且其中,将每个第一数据单元编码为对应的第二数据单元包括:
至少根据该第一数据单元的单元名确定对应的第二数据单元的标签代码区段内的代码,包括:根据该第一数据单元的单元名查询预先设置的第一对应关系,将所述第一子区段内的代码设置为与该第一数据单元的单元名相对应的二进制代码,其中,所述第一对应关系包括多种单元名以及与每种单元名相对应的二进制代码;
根据该第一数据单元的单元值的类型,确定对应的第二数据单元的值代码区段的长度,包括:
响应于所述单元值的类型为布尔类型,确定所述值代码区段的长度为1字节;并且响应于所述单元值的类型为整数类型,确定所述值代码区段的长度为1至4字节;或
响应于所述单元值的类型为布尔类型,确定所述值代码区段的长度为1字节;并且响应于所述单元值的类型为浮点类型,确定所述值代码区段的长度为8字节;或
响应于所述单元值的类型为整数类型,确定所述值代码区段的长度为1至4字节;并且响应于所述单元值的类型为浮点类型,确定所述值代码区段的长度为8字节;
根据所述对应的第二数据单元的值代码区段的长度,确定对应的第二数据单元的长度代码区段内的代码;以及
将该第一数据单元的单元值按照二进制编码规则编码为二进制代码,以作为长度已确定的所述对应的第二数据单元的值代码区段内的代码;以及
将多个编码后的第二数据单元组合成第二数据,以作为对所述第一数据的编码结果。
2.根据权利要求1所述的方法,其中,所述标签代码区段还包括第二子区段,所述至少根据该第一数据单元的单元名确定对应的第二数据单元的标签代码区段内的代码还包括:
根据该第一数据单元的单元值的类型查询预先设置的第二对应关系,将所述第二子区段内的代码设置为与该第一数据单元的单元值的类型相对应的二进制代码,其中,所述第二对应关系包括多种单元值的类型以及与每种单元值的类型相对应的二进制代码。
3.根据权利要求2所述的方法,其中,所述标签代码区段还包括第三子区段,所述将每个第一数据单元编码为对应的第二数据单元还包括:
根据所述对应的第二数据单元的长度代码区段内的代码的长度,确定所述第三子区段内的代码。
4.根据权利要求1所述的方法,其中,所述根据该第一数据单元的单元值的类型,确定对应的第二数据单元的值代码区段的长度包括:
响应于所述单元值的类型为字符串类型,根据所述单元值所包含的字符数确定所述值代码区段的长度。
5.根据权利要求1所述的方法,其中,所述根据所述对应的第二数据单元的值代码区段的长度,确定对应的第二数据单元的长度代码区段内的代码包括:
获取所述值代码区段的长度的十进制表示;以及
将所述十进制表示根据二进制编码规则编码为二进制代码,以作为所述长度代码区段内的代码。
6.根据权利要求1-5中任一项所述的方法,其中,所述将多个编码后的第二数据单元组合成第二数据,以作为对所述第一数据的编码结果包括:
在所述多个编码后的第二数据单元的每个第二数据单元之前或之后增设标识位代码。
7.一种数据解码的方法,包括:
获取待解码的二进制代码格式的第二数据,其中,所述第二数据是利用根据权利要求1-6中任一项所述的数据编码的方法得到的,所述第二数据包括多个第二数据单元,所述多个第二数据单元中的每个第二数据单元包括标签代码区段、长度代码区段和值代码区段;
将所述多个第二数据单元中的每个第二数据单元解码为对应第一数据单元,其中,所述第一数据单元包括单元名和单元值,其中,将每个第二数据单元解码为对应的第一数据单元包括:
根据该第二数据单元的标签代码区段内的至少部分代码确定对应的第一数据单元的单元名;
根据该第二数据单元的长度代码区段内的代码,确定该第二数据单元的值代码区段的起始和终止范围;以及
根据该第二数据单元的范围已确定的值代码区段内的代码,确定对应的第一数据单元的单元值。
8.根据权利要求7所述的方法,其中,根据该第二数据单元的标签代码区段内的至少部分代码确定对应的第一数据单元的单元名包括:
根据该第二数据单元的标签代码区段内的至少部分二进制代码查询预先设置的第一对应关系,获得和标签代码区段中的二进制代码对应的单元名,以作为对应的第一数据单元的单元名,其中,所述第一对应关系包括多种单元名以及与每种单元名相对应的二进制代码。
9.根据权利要求7所述的方法,其中,根据该第二数据单元的长度代码区段内的代码,确定该第二数据单元的值代码区段的起始和终止范围包括:
将长度代码区段内的代码由二进制转化为十进制数字,从而得到该第二数据单元的值代码区段所占用的字节数。
10.根据权利要求7所述的方法,其中,根据该第二数据单元的范围已确定的值代码区段内的代码,确定对应的第一数据单元的单元值包括:
根据标签代码区段的至少部分代码确定对应的第一数据单元的单元值的类型;以及
根据对应的第一数据单元的单元值的类型将范围已确定的值代码区段内的代码由二进制转化为十进制数据或字符串数据。
11.一种数据编码的装置,包括:
第一获取单元,配置成获取待编码的第一数据,其中,所述第一数据包括多个第一数据单元,所述多个第一数据单元中的每个第一数据单元包括单元名和单元值;
编码单元,配置成将所述多个第一数据单元中的每个第一数据单元编码为对应的二进制代码格式的第二数据单元,其中,所述第二数据单元包括标签代码区段、长度代码区段和值代码区段,其中,所述标签代码区段包括第一子区段,并且其中,所述编码单元包括:
第一确定模块,配置成至少根据该第一数据单元的单元名确定对应的第二数据单元的标签代码区段内的代码,并且所述第一确定模块还配置成根据该第一数据单元的单元名查询预先设置的第一对应关系,将所述第一子区段内的代码设置为与该第一数据单元的单元名相对应的二进制代码,其中,所述第一对应关系包括多种单元名以及与每种单元名相对应的二进制代码;
第二确定模块,配置成根据该第一数据单元的单元值的类型,确定对应的第二数据单元的值代码区段的长度,包括:
响应于所述单元值的类型为布尔类型,确定所述值代码区段的长度为1字节;并且响应于所述单元值的类型为整数类型,确定所述值代码区段的长度为1至4字节;或
响应于所述单元值的类型为布尔类型,确定所述值代码区段的长度为1字节;并且响应于所述单元值的类型为浮点类型,确定所述值代码区段的长度为8字节;或
响应于所述单元值的类型为整数类型,确定所述值代码区段的长度为1至4字节;并且响应于所述单元值的类型为浮点类型,确定所述值代码区段的长度为8字节;
第三确定模块,配置成根据所述对应的第二数据单元的值代码区段的长度,确定对应的第二数据单元的长度代码区段内的代码;以及
第四确定模块,配置成将该第一数据单元的单元值按照二进制编码规则编码为二进制代码,以作为长度已确定的所述对应的第二数据单元的值代码区段内的代码;以及
组合单元,配置成将多个编码后的第二数据单元组合成第二数据,以作为对所述第一数据的编码结果。
12.根据权利要求11所述的装置,其中,所述标签代码区段包括第二子区段,其中,
所述第一确定模块,还配置成根据该第一数据单元的单元值的类型查询预先设置的第二对应关系,将所述第二子区段内的代码设置为与该第一数据单元的单元值的类型相对应的二进制代码,其中,所述第二对应关系包括多种单元值的类型以及与每种单元值的类型相对应的二进制代码。
13.根据权利要求12所述的装置,其中,所述标签代码区段包括第三子区段,其中,
所述第一确定模块,还配置成根据所述对应的第二数据单元的长度代码区段内的代码的长度,确定所述第三子区段内的代码。
14.一种数据解码的装置,包括:
第二获取单元,配置成获取待解码的二进制代码格式的第二数据,其中,所述第二数据是利用根据权利要求1-6中任一项所述的数据编码的方法得到的,所述第二数据包括多个第二数据单元,所述多个第二数据单元中的每个第二数据单元包括标签代码区段、长度代码区段和值代码区段;
解码单元,配置成将所述多个第二数据单元中的每个第二数据单元解码为对应第一数据单元,其中,所述第一数据单元包括单元名和单元值,其中,所述解码单元包括:
第五确定模块,配置成根据该第二数据单元的标签代码区段内的至少部分代码确定对应的第一数据单元的单元名;
第六确定模块,配置成根据该第二数据单元的长度代码区段内的代码,确定该第二数据单元的值代码区段的起始和终止范围;以及
第七确定模块,配置成根据该第二数据单元的范围已确定的值代码区段内的代码,确定对应的第一数据单元的单元值。
15.根据权利要求14所述的装置,其中,
所述第五确定模块,还配置成根据该第二数据单元的标签代码区段内的至少部分二进制代码查询预先设置的第一对应关系,获得和标签代码区段中的二进制代码对应的单元名,以作为对应的第一数据单元的单元名,其中,所述第一对应关系包括多种单元名以及与每种单元名相对应的二进制代码。
16.根据权利要求14所述的装置,其中,
所述第六确定模块,还配置成将长度代码区段内的代码由二进制转化为十进制数字,从而得到该第二数据单元的值代码区段所占用的字节数。
17.根据权利要求14所述的装置,其中,所述第七确定模块,还配置成:
根据标签代码区段的至少部分代码确定对应的第一数据单元的单元值的类型;以及
根据对应的第一数据单元的单元值的类型将范围已确定的值代码区段内的代码由二进制转化为十进制数据或字符串数据,以作为对应的第一数据单元的单元值。
18.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10中任一项所述的方法。
19.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-10中任一项所述的方法。
CN202210641871.6A 2022-06-07 2022-06-07 数据编码的方法及装置、数据解码的方法及装置和数据结构 Active CN115001628B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210641871.6A CN115001628B (zh) 2022-06-07 2022-06-07 数据编码的方法及装置、数据解码的方法及装置和数据结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210641871.6A CN115001628B (zh) 2022-06-07 2022-06-07 数据编码的方法及装置、数据解码的方法及装置和数据结构

Publications (2)

Publication Number Publication Date
CN115001628A CN115001628A (zh) 2022-09-02
CN115001628B true CN115001628B (zh) 2024-02-27

Family

ID=83033945

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210641871.6A Active CN115001628B (zh) 2022-06-07 2022-06-07 数据编码的方法及装置、数据解码的方法及装置和数据结构

Country Status (1)

Country Link
CN (1) CN115001628B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778360A (en) * 1994-03-24 1998-07-07 Fujitsu Limited Method and apparatus for encoding and decoding a data unit whose structure is defined by a description conforming to abstract syntax according to a prescribed encoding rule
US7068192B1 (en) * 2004-08-13 2006-06-27 Google Inc. System and method for encoding and decoding variable-length data
US7865525B1 (en) * 2007-08-02 2011-01-04 Amazon Technologies, Inc. High efficiency binary encoding
WO2018006833A1 (zh) * 2016-07-08 2018-01-11 华为技术有限公司 可变长编码文件的解码方法以及装置
CN112540923A (zh) * 2020-12-15 2021-03-23 平安科技(深圳)有限公司 接口参数校验与转换方法、装置、设备及存储介质
CN112822265A (zh) * 2021-01-05 2021-05-18 树根互联技术有限公司 数据编码方法、装置、设备端及存储介质
CN113297339A (zh) * 2021-07-27 2021-08-24 阿里云计算有限公司 数据存储的方法、设备、存储介质及产品
WO2021255668A1 (en) * 2020-06-18 2021-12-23 Bringing Innovation Into Technology 256 Srl A computer implemented method for the generation and management of codes.
CN113905093A (zh) * 2021-08-20 2022-01-07 微梦创科网络科技(中国)有限公司 序列化、反序列化方法、装置及电子设备
CN114153896A (zh) * 2021-11-23 2022-03-08 计易数据科技(上海)有限公司 序列化与反序列化方法及其装置、设备和介质
CN114500670A (zh) * 2022-02-28 2022-05-13 北京京东振世信息技术有限公司 一种编码压缩方法、解码方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676742B2 (en) * 2003-11-24 2010-03-09 International Business Machines Corporation System and method for processing of markup language information
CN101690317B (zh) * 2007-05-11 2014-05-28 株式会社东芝 用于介质无关切换的数据类型编码

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778360A (en) * 1994-03-24 1998-07-07 Fujitsu Limited Method and apparatus for encoding and decoding a data unit whose structure is defined by a description conforming to abstract syntax according to a prescribed encoding rule
US7068192B1 (en) * 2004-08-13 2006-06-27 Google Inc. System and method for encoding and decoding variable-length data
US7865525B1 (en) * 2007-08-02 2011-01-04 Amazon Technologies, Inc. High efficiency binary encoding
WO2018006833A1 (zh) * 2016-07-08 2018-01-11 华为技术有限公司 可变长编码文件的解码方法以及装置
WO2021255668A1 (en) * 2020-06-18 2021-12-23 Bringing Innovation Into Technology 256 Srl A computer implemented method for the generation and management of codes.
CN112540923A (zh) * 2020-12-15 2021-03-23 平安科技(深圳)有限公司 接口参数校验与转换方法、装置、设备及存储介质
CN112822265A (zh) * 2021-01-05 2021-05-18 树根互联技术有限公司 数据编码方法、装置、设备端及存储介质
CN113297339A (zh) * 2021-07-27 2021-08-24 阿里云计算有限公司 数据存储的方法、设备、存储介质及产品
CN113905093A (zh) * 2021-08-20 2022-01-07 微梦创科网络科技(中国)有限公司 序列化、反序列化方法、装置及电子设备
CN114153896A (zh) * 2021-11-23 2022-03-08 计易数据科技(上海)有限公司 序列化与反序列化方法及其装置、设备和介质
CN114500670A (zh) * 2022-02-28 2022-05-13 北京京东振世信息技术有限公司 一种编码压缩方法、解码方法及装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A Type-Aware Coding Approach to Joint Source-Channel Coding;Xinyuanmeng Yao;Xiao Ma,;IEEE COMMUNICATIONS LETTERS;第25卷(第11期);3455-3457 *
C语言实型数据的编码和存储;周恒忠;;皖西学院学报(05);25-27 *
Yu Lu.BEDetector:A Two-Channel Encoding Method to Detect Vulnerabilities Based on Binary Similarity.IEEE ACCESS.2021,31-45. *
基于测试数据分组合并的索引编码压缩方案;李建新;计算机工程;第36卷(第11期);265-267 *

Also Published As

Publication number Publication date
CN115001628A (zh) 2022-09-02

Similar Documents

Publication Publication Date Title
CN106407201B (zh) 一种数据处理方法、装置及计算机可读存储介质
CN105450232A (zh) 编码、解码方法以及编码装置和解码装置
CN111008230B (zh) 数据存储方法、装置、计算机设备及存储介质
CN115567589B (zh) Json数据的压缩传输方法、装置、设备及存储介质
CN111131403A (zh) 一种物联网设备的消息编解码方法及装置
US20200294629A1 (en) Gene sequencing data compression method and decompression method, system and computer-readable medium
CN106649217A (zh) 数据的匹配方法及装置
CN115001628B (zh) 数据编码的方法及装置、数据解码的方法及装置和数据结构
CN115604365B (zh) 数据编解码方法、装置、电子设备及可读存储介质
CN116707532A (zh) 一种压缩文本的解压方法、装置、存储介质及电子设备
CN115904240A (zh) 数据处理方法、装置、电子设备和存储介质
CN107832341B (zh) Agnss用户去重统计方法
US9235610B2 (en) Short string compression
CN113518088B (zh) 数据处理方法、装置、服务器、客户端和介质
CN113946617A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN113254826B (zh) 转储文件的处理方法及装置
CN111324587A (zh) Obj文件的数据的压缩方法、解析方法以及系统
CN113434508B (zh) 用于存储信息的方法和装置
US11537625B1 (en) Using structured data templates and invocation statements to dynamically define values for efficient data encoding
CN112230983B (zh) 信息处理方法、电子设备和介质
CN110928667B (zh) 一种任务调度方法、装置、电子设备及存储介质
CN115599390A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN115408547A (zh) 一种字典树构建方法、装置、设备及存储介质
CN117216145A (zh) 数据存储方法、装置、设备及介质
CN114492853A (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