CN114157395B - 一种基于变长整数编码的数据通信方法、装置及系统 - Google Patents

一种基于变长整数编码的数据通信方法、装置及系统 Download PDF

Info

Publication number
CN114157395B
CN114157395B CN202111303182.6A CN202111303182A CN114157395B CN 114157395 B CN114157395 B CN 114157395B CN 202111303182 A CN202111303182 A CN 202111303182A CN 114157395 B CN114157395 B CN 114157395B
Authority
CN
China
Prior art keywords
byte
data
data frame
length
variable length
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
CN202111303182.6A
Other languages
English (en)
Other versions
CN114157395A (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 Yunyou Interactive Network Technology Co ltd
Online Tuyoo Beijing Technology Co ltd
Original Assignee
Beijing Yunyou Interactive Network Technology Co ltd
Online Tuyoo Beijing 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 Yunyou Interactive Network Technology Co ltd, Online Tuyoo Beijing Technology Co ltd filed Critical Beijing Yunyou Interactive Network Technology Co ltd
Priority to CN202111303182.6A priority Critical patent/CN114157395B/zh
Publication of CN114157395A publication Critical patent/CN114157395A/zh
Application granted granted Critical
Publication of CN114157395B publication Critical patent/CN114157395B/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
    • H04L1/0007Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length

Landscapes

  • Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请提供一种基于变长整数编码的数据通信方法、装置及系统。在该方法中,利用变长整数编码对于需要发送的数据帧采用不固定长度字段的方式来构建,采用该方法,对于较小或者较大的数据,都不会发生浪费空间的现象。当数据长度小于预设长度时直接进行数据帧的构建,当数据长度超出预设长度时,仅需要移动个位数长度的数据便完成了具有较大数据体的数据帧的构建而无需移动整个数据体,从而实现了数据通信过程在时间和空间上的双重高效性。

Description

一种基于变长整数编码的数据通信方法、装置及系统
技术领域
本申请实施例涉及但不限于互联网通信技术领域,尤其涉及互联网数据的一种基于变长整数编码的数据通信方法、装置及系统。
背景技术
在互联网应用中,移动应用程序需要与服务器进行数据交换。无论从成本的角度还是从系统运行效率的角度来看,在进行数据交互时都希望能够减少数据所占用的带宽并降低资费。目前在移动端发送数据时,都使用常规的编码方式,在数据头中使用length字段来指定消息体长度,但游戏中消息长度的变化范围较大,如果使用固定长度的length字段,需要为length字段预留3-4个字节的空间,通常情况下游戏的消息帧在几十个字节左右,使用3-4个字节的空间会带来一定的浪费;如果使用变长length,由于很多协议不支持提前计算消息总长度,必须序列化完成后才能获得最终长度信息,来了新的复杂开销。综上所述,现有技术方案中在进行数据交互时,由于空间的浪费导致了数据占用较高的带宽。
发明内容
有鉴于此,本申请实施例提供了一种基于变长整数编码的数据通信方法、装置及系统,以解决现有技术中存在的技术缺陷。
根据本申请实施例的第一方面,提供了一种基于变长整数编码的数据通信方法,用于编码端,包括:
对目标数据进行序列化,跳过数据帧的第0个字节,从第1个字节开始,将序列化后的数据填入数据帧;
获取目标数据序列化后的长度n,使用变长整数编码对n进行序列化,得到序列化后的字节序列B和字节序列B包含的字节数m;
若m=1,直接将字节序列B写入数据帧的第0个字节,完成数据帧的构建;
若m>1,则字节序列B包括字节B0-Bm-1;将已构建的数据帧中,序列化后目标数据的前m-1个字节,移动到数据帧尾部;然后从第0个字节开始的位置写入字节序列B0-Bm-1,完成数据帧的构建;
将构建好的数据帧发送给解码端。
根据本申请实施例的第二方面,提供了一种基于变长整数编码的数据通信方法,用于解码端,包括:
接收编码端发送的数据帧,读取数据帧的第0个字节;
如果第0个字节符合变长整数编码的反序列化规则,则从第1个字节开始获取数据体;
如果根据该变长整数编码的反序列化规则无法仅依据第0个字节完成反序列化,则根据该规则从第0个字节开始,进行反序列化,得到数据体长度对应的字节B0-Bm-1和数据体长度n;
获取数据帧中的字节Bn+1-Bn+m-1,将这m-1个字节从数据帧第1个字节位置处开始进行覆盖,完成数据体的还原;
对数据体进行反序列化,完成解码。
根据本申请实施例的第三方面,提供了一种基于变长整数编码的数据通信系统,该系统包括了编码装置和解码装置。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现基于变长整数编码的数据通信方法。
本申请实施例中,利用变长整数编码,对于需要发送的数据帧采用不固定长度字段的方式来构建,对于较小或者较大的数据,都不会发生浪费空间的现象。当数据长度小于预设长度时直接进行数据帧的构建,当数据长度超出预设长度时,也不需要移动整个数据体body,仅需要移动个位数长度的数据。通过O(1)长度的数据移动便完成了具有较大数据体的数据帧的构建而不是如现有技术一样需要移动整个数据体,从而实现了数据通信过程在时间和空间上的双重高效性。
附图说明
图1是现有技术中数据帧的组成结构示意图;
图2是本申请实施例提供的包括计算设备的网络结构示意图;
图3是本申请实施例提供的一种用于编码端的基于变长整数编码的数据通信方法的流程示意图;
图4是本申请实施例提供的一个数据帧的初始化构建示意图;
图5是本申请实施例中使用变长整数编码对整数n进行了序列化后得到的字节序列示意图;
图6是本申请实施例中对数据帧的字节进行移动来节省空间的示意图;
图7是本申请实施例中对数据帧的字节进行移动来节省空间的另一示意图;
图8是本申请实施例提供的一种用于解码端的基于变长整数编码的数据通信方法的流程示意图;
图9是本申请实施例中对数据帧进行反序列化时的一种示意图;
图10是本申请实施例中对数据帧进行反序列化时的另一种示意图;
图11是本申请实施例提供的一种基于变长整数编码的数据通信装置的结构示意图;
图12本申请实施例提供的另一种基于变长整数编码的数据通信装置的结构示意图;
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“响应于确定”。
现有技术中,数据帧的编码方式通常如图1所示,数据帧由数据头head和序列化后的数据体body组成。在数据头中用长度字段表示数据包或数据体的总长度。
在生成数据帧时由于数据长度往往是非固定的,在数据帧数据头用一个字段表明数据长度。实践中,数据帧的长度的跨度可能比较大,在几个字节和几十M字节之间变化。如果采用长度字段占用固定大小的方案,则不得不为该字段预留3-4个字节以应对各种情况,但项目实践中有可能大多数情况下数据帧长度只有几十字节而不需要这么长的长度字段,这就造成了空间上的浪费。
如果使用变长的长度字段,由于很多协议不支持提前计算消息总长度,必须序列化完成后才能获得最终长度信息。如果初始设置长度字段为一个字节,那么当消息长度超出256字节时,会出现长度字段长度不够导致不得不整体移动数据体body的的情况,带来无谓的复制开销。
因此,在本申请的实施例中设计了一种新的可变长度的数据帧格式,来解决这些问题,实现了高效的数据通信方法,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行本申请说明书附图所示的基于变长整数编码的数据通信方法中的步骤。
本申请一实施例的一种基于变长整数编码的数据通信方法,用于编码端,包括步骤202至步骤210,如图3所示。
步骤202:对目标数据进行序列化,跳过数据帧的第0个字节,从第1个字节开始,将序列化后的数据填入到数据帧。
在该步骤中,当接受到发送数据的指令后,编码端开始构建数据帧。
在互联网通信中进行数据的网络传输时,需要对传输的对象进行序列化操作。序列化的原理及其应用的场景为本领域的公知常识,在此不再赘述。在该步骤中,对序列化的方法不做特别限定,本领域技术人员可根据实际的需求选择合适的序列化方法。
在一种具体的实施方式中,如图4所示,图4是一个数据帧的示意图。其中Head0代表一个数据帧中的第0个字节。
在该步骤中,对目标数据进行序列化后,在利用序列化后的数据对数据帧进行填充时,跳过Head0的位置,从第1个字节处开始填充,将序列化后的目标数据填充到数据帧。
步骤204:获取目标数据序列化后的长度n,使用变长整数编码对n进行序列化,得到序列化后的字节序列B和字节序列B包含的字节数m;
在本领域中,变长整数编码是将整数压缩成比通常需要的更小空间的一种方法,用较小的空间存储小数字,而用较大的空间存储大数字,例如Varint是一种使用一个或多个字节序列化整数的方法,把整数编码为变长字节。采用这种算法来对整数进行编码是有意义的,它可以节省存储数据需要的空间或者传输数据时所需的带宽,因为在大多数情况下,数据的长度没有那么大,较小的数字出现的概率大于较大的数字出现的概率。
例如,若采用Protobuf项目中的Varint编码,即连续位标识编码,小于128的整数都可以用一个字节来表达,大于等于128的整数使用2个或2个以上的字节来表达。
再例如,UTF8编码采用了前缀来标识编码的长度,同样对于小于等于127的任何字符,UTF8采用一个字节表示。
在所属领域中,存在多种变长整数编码方式,单字节能表示的最大整数也不局限于某一个整数,在此不一一列举。
步骤206:若字节数m=1,直接将字节序列B写入数据帧的第0个字节,完成数据帧的构建;若m>1,则进入到步骤208。
在该步骤中,若m=1,则说明序列化后数据的长度n在使用当前变长整数编码的情况下可以用一个字节来表达,因此直接将字节序列B写入数据帧的第0个字节。
若m>1,则进入到步骤208。
步骤208:当m>1时,字节序列B包括字节B0-Bm-1;将已构建的数据帧中,序列化后目标数据的前m-1个字节,移动到数据帧尾部;然后从第0个字节开始的位置写入字节序列B0-Bm-1,完成数据帧的填充。
在一种可能的实施方式中,如图5所示,当使用变长整数编码对长度n进行了序列化后,假如得到序列化后的字节序列B:(B0,B1,B2,B3),即m=4。
进一步的,如图6所示,从已构建的数据帧中,将已序列化数据的前m-1个字节移动到数据帧尾部,在该实施方式中,将已序列化数据的前3个字节移动到数据帧的末尾。
最后,将字节序列B:(B0,B1,B2,B3)从数据帧第0个字节开始的位置进行覆盖写入,完成整个数据帧的构建,如图7所示。
步骤210:将构建好的数据帧发送给解码端。
在该实施例中,采用变长整数编码的方式,对于需要发送的数据帧采用不固定长度字段的方式来构建,对于较小或者较大的数据,都不会发生浪费空间的现象。当数据长度小于预设长度时直接进行数据帧的构建,当数据长度超出预设长度时,也不需要移动整个数据体body,仅需要复制个位数长度(通常不超过3个)的数据,通过O(1)长度的数据移动便完成了具有较大数据体的数据帧的构建而不是如现有技术一样需要移动整个数据体,从而实现了数据通信过程在时间和空间上的双重高效性。
与上述编码方法实施例相对应,本申请还提供了另一种基于变长整数编码的数据通信方法,用于解码端,包括如步骤302至308,如图8所示。
步骤302:解码端接收编码端发送的数据帧,读取数据帧的第0个字节;
步骤304:若第0个字节符合变长整数编码的反序列化规则,则从第1个字节开始获取数据体;
如果根据该变长整数编码的规则无法仅依据第0个字节完成反序列化,则进入步骤306;
不同的变长整数编码具有不同的规则来确定数据的边界,因此可以利用该规则来确定第0个字节是否可以进行反序列化。例如Protobuf中的Varint编码中,对需要序列化表达的整数,除了最后一个字节外,编码中的每个字节都设置了最高有效位msb,msb为1则表明后面的字节还属于当前数据,如果是0则表示这是当前数据的最后一个字节数据。
因此,在使用Varint编码的情况下,如图9所示,若第0个字节的msb为0,则说明第0个字节就代表了当前数据,其能够被成功的反序列化,并且反序列化后的整数为数据体的长度。进一步,根据数据体的长度或者根据数据帧的总长度就能获取数据体的序列化数据。
如果第0个字节的msb为1,则仅仅根据该字节本身无法进行反序列化,因为根据Varint编码的规则,msb为1则表明该字节后面的字节仍然属于当前数据,即当前数据尚未结束表达。
上述举例并不意味着本申请实施例只局限于Varint编码的规则,在所属技术领域中,具有多种不同的变长整数编码规则,本领域技术人员可以根据实际情况进行选择,在此不再赘述。
步骤306:根据变长整数编码的规则从第0个字节开始进行反序列化,得到数据体长度对应的字节B0-Bm-1和n;获取数据帧中的字节Bn+1-Bn+m-1,将这m-1个字节从数据帧第1个字节位置处开始进行覆盖,完成数据体的还原。
在该步骤中,如图10所示,同样,在例如使用Varint编码的情况下,根据Varint编码的规则,当发现仅利用第0个字节无法完成反序列化时,继续向后寻找字节,直到找到msb为0的字节才开始反序列化。在图10的示例中,在解码时,当发现第0个字节的msb为1则继续往后查找字节,直到第3个字节时,其msb为0,表示当前的数据表达结束,即该数据由第0-3个字节表示,进而对字节0到字节3进行反序列化得到数据体长度n。进一步,利用n和m获取数据帧中的字节Bn+1-Bn+m-1,将这m-1个字节从数据帧第1个字节位置处开始进行覆盖,完成数据体的还原。
步骤308:对数据体进行反序列化,完成解码。
与上述编码方法实施例相对应,本申请还提供了一种基于变长整数编码的数据通信装置,如图11所示,该装置包括:
初始化模块,用于对目标数据进行序列化,跳过数据帧的第0个字节,从第1个字节开始,将序列化后的数据填入到数据帧;
信息获取模块,用于获取目标数据序列化后的长度n,使用变长整数编码对n进行序列化,得到序列化后的字节序列B和字节序列B包含的字节数m;
比较模块,用于将字节数m与1进行比较,得到比较结果;
数据帧构建模块,用于根据上述比较结果进行数据帧的构建;其中,若m=1,直接将字节序列B写入数据帧的第0个字节,完成数据帧的构建;
若m>1,则字节序列B为B0-Bm-1;将已构建的数据帧中,序列化后目标数据的前m-1个字节,移动到数据帧尾部;然后从第0个字节开始的位置写入字节序列B0-Bm-1,完成数据帧的构建;
发送模块,用于将构建完成的数据帧发送给解码端。
与上述解码方法实施例相对应,本申请还提供了一种基于变长整数编码的数据通信装置,如图12所示,该装置包括:
接收模块,用于接收编码端发送的数据帧,读取数据帧的第0个字节;
获取模块,用于如果第0个字节符合变长整数编码的反序列化规则,则从第1个字节开始获取数据体;
如果根据该变长整数编码的规则无法仅依据第0个字节完成反序列化,则根据变长整数编码的规则从第0个字节开始进行反序列化,得到数据体长度对应的字节B0-Bm-1和数据体长度n;获取数据帧中的字节Bn+1-Bn+m-1,将这m-1个字节从数据帧第1个字节位置处开始进行覆盖,完成数据体的还原。
反序列化模块,用于对获取的数据体进行反序列化,完成解码。
上述为本实施例的基于变长整数编码的数据通信装置的示意性方案,上述数据通信装置可以是如图2所示的计算设备100中的任意一个。需要说明的是,该数据通信装置的技术方案与上述的基于变长整数编码的数据通信方法的技术方案属于同一构思,基于变长整数编码的数据通信装置的技术方案未详细描述的细节内容,均可以参见上述基于变长整数编码的数据通信方法的技术方案的描述。
本申请一实施例中还提供一种数据通信系统,所述数据通信系统包括如前所述的数据通信装置,用以实现数据通信时的编码和解码。需要说明的是,该数据通信系统的技术方案与上述的基于变长整数编码的数据通信方法的技术方案属于同一构思,数据通信系统的技术方案未详细描述的细节内容,均可以参见上述基于变长整数编码的数据通信方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述基于变长整数编码的数据通信方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的基于变长整数编码的数据通信方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述基于变长整数编码的数据通信方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (8)

1.一种基于变长整数编码的数据通信方法,用于编码端,其特征在于,包括:
对目标数据进行序列化,跳过数据帧的第0个字节,从第1个字节开始,将序列化后的数据填入数据帧;
获取目标数据序列化后的长度n,使用变长整数编码对n进行序列化,得到序列化后的字节序列B和字节序列B包含的字节数m;
若m=1,直接将字节序列B写入数据帧的第0个字节,完成数据帧的构建;
若m>1,则字节序列B包括字节B0-Bm-1;将已构建的数据帧中,序列化后目标数据的前m-1个字节,移动到数据帧尾部;然后从第0个字节开始的位置写入字节序列B0-Bm-1,完成数据帧的构建;
将构建好的数据帧发送给解码端。
2.根据权利要求1所述的方法,其中,所述变长整数编码包括Protobuf项目中的Varint编码或其他变长整数编码。
3.一种基于变长整数编码的数据通信方法,用于解码端,其特征在于,包括:
接收编码端发送的数据帧,读取数据帧的第0个字节;
如果第0个字节符合变长整数编码的反序列化规则,则从第1个字节开始获取数据体;
如果根据该变长整数编码的反序列化规则无法仅依据第0个字节完成反序列化,则根据该规则从第0个字节开始,进行反序列化,得到数据体长度对应的字节B0-Bm-1和数据体长度n;其中,B表示包含了多个字节的字节序列,m表示该字节序列包含的字节数,m>1;
获取数据帧中的字节Bn+1-Bn+m-1,将这m-1个字节从数据帧第1个字节位置处开始进行覆盖,完成数据体的还原;
对数据体进行反序列化,完成解码。
4.根据权利要求3所述的方法,其中,所述变长整数编码包括Protobuf项目中的Varint编码或其他变长整数编码。
5.一种基于变长整数编码的数据通信装置,其特征在于,该装置包括:
初始化模块,用于对目标数据进行序列化,跳过数据帧的第0个字节,从第1个字节开始,将序列化后的数据填入到数据帧;
信息获取模块,用于获取目标数据序列化后的长度n,使用变长整数编码对n进行序列化,得到序列化后的字节序列B和字节序列B包含的字节数m;
比较模块,用于将字节数m与1进行比较,得到比较结果;
数据帧构建模块,用于根据上述比较结果进行数据帧的构建;其中,若m=1,直接将字节序列B写入数据帧的第0个字节,完成数据帧的构建;
若m>1,则字节序列B包括字节B0-Bm-1;将已构建的数据帧中,序列化后目标数据的前m-1个字节移动到数据帧尾部;然后从第0个字节开始的位置写入字节序列B0-Bm-1,完成数据帧的构建;
发送模块,用于将构建完成的数据帧发送给解码端。
6.一种基于变长整数编码的数据通信装置,其特征在于,该装置包括:
接收模块,用于接收编码端发送的数据帧,读取数据帧的第0个字节;
获取模块,用于如果第0个字节符合变长整数编码的反序列化规则,则从第1个字节开始获取数据体;
如果根据该变长整数编码的规则无法仅依据第0个字节完成反序列化,则根据该规则从第0个字节开始,进行反序列化,得到数据体长度对应的字节B0-Bm-1和数据体长度n;其中,B表示包含了多个字节的字节序列,m表示该字节序列包含的字节数,m>1;获取数据帧中的字节Bn+1-Bn+m-1,将这m-1个字节从数据帧第1个字节位置处开始进行覆盖,完成数据体的还原;
反序列化模块,用于对获取的数据体进行反序列化,完成解码。
7.一种基于变长整数编码的数据通信系统,其特征在于,该系统包括如权利要求5和6所述的数据通信装置。
8.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-4任意一项所述方法的步骤。
CN202111303182.6A 2021-11-05 2021-11-05 一种基于变长整数编码的数据通信方法、装置及系统 Active CN114157395B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111303182.6A CN114157395B (zh) 2021-11-05 2021-11-05 一种基于变长整数编码的数据通信方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111303182.6A CN114157395B (zh) 2021-11-05 2021-11-05 一种基于变长整数编码的数据通信方法、装置及系统

Publications (2)

Publication Number Publication Date
CN114157395A CN114157395A (zh) 2022-03-08
CN114157395B true CN114157395B (zh) 2023-08-08

Family

ID=80459358

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111303182.6A Active CN114157395B (zh) 2021-11-05 2021-11-05 一种基于变长整数编码的数据通信方法、装置及系统

Country Status (1)

Country Link
CN (1) CN114157395B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111660A (en) * 1998-09-30 2000-08-29 N*Able Technologies, Inc. Efficient digital data encoding in a data processing system
US7068192B1 (en) * 2004-08-13 2006-06-27 Google Inc. System and method for encoding and decoding variable-length data
CN101431388A (zh) * 2007-11-08 2009-05-13 联发科技股份有限公司 译码编码数据帧的方法及其译码器
CN101971594A (zh) * 2008-02-13 2011-02-09 高通股份有限公司 用于对通信帧中的报头进行格式化的方法和装置
CN102026045A (zh) * 2009-09-17 2011-04-20 华为技术有限公司 数据帧的发送处理和接收处理方法、装置和系统
CN110176963A (zh) * 2018-07-27 2019-08-27 上海英翼通讯科技有限公司 一种可变长度超声波音频编码方法及解码方法
CN110830427A (zh) * 2018-08-13 2020-02-21 北京京东尚科信息技术有限公司 一种netty环境下的消息编码、消息解码的方法和装置
CN111190851A (zh) * 2019-12-11 2020-05-22 深圳市优必选科技股份有限公司 可变长协议的解析方法、装置、设备及介质
CN112333186A (zh) * 2020-11-03 2021-02-05 平安普惠企业管理有限公司 数据通信方法、装置、设备及存储介质
CN112437064A (zh) * 2020-11-12 2021-03-02 深圳市银星智能科技股份有限公司 数据传输方法、数据读取方法、装置、设备及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111660A (en) * 1998-09-30 2000-08-29 N*Able Technologies, Inc. Efficient digital data encoding in a data processing system
US7068192B1 (en) * 2004-08-13 2006-06-27 Google Inc. System and method for encoding and decoding variable-length data
CN101431388A (zh) * 2007-11-08 2009-05-13 联发科技股份有限公司 译码编码数据帧的方法及其译码器
CN101971594A (zh) * 2008-02-13 2011-02-09 高通股份有限公司 用于对通信帧中的报头进行格式化的方法和装置
CN102026045A (zh) * 2009-09-17 2011-04-20 华为技术有限公司 数据帧的发送处理和接收处理方法、装置和系统
CN110176963A (zh) * 2018-07-27 2019-08-27 上海英翼通讯科技有限公司 一种可变长度超声波音频编码方法及解码方法
CN110830427A (zh) * 2018-08-13 2020-02-21 北京京东尚科信息技术有限公司 一种netty环境下的消息编码、消息解码的方法和装置
CN111190851A (zh) * 2019-12-11 2020-05-22 深圳市优必选科技股份有限公司 可变长协议的解析方法、装置、设备及介质
CN112333186A (zh) * 2020-11-03 2021-02-05 平安普惠企业管理有限公司 数据通信方法、装置、设备及存储介质
CN112437064A (zh) * 2020-11-12 2021-03-02 深圳市银星智能科技股份有限公司 数据传输方法、数据读取方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN114157395A (zh) 2022-03-08

Similar Documents

Publication Publication Date Title
CN111161365B (zh) 一种骨骼动画数据的压缩方法及装置
CN114298310A (zh) 长度损失确定方法以及装置
CN111738020B (zh) 一种翻译模型的训练方法及装置
CN110321962B (zh) 一种数据处理方法及装置
CN113963359B (zh) 文本识别模型训练方法、文本识别方法、装置及电子设备
CN108769694B (zh) 一种基于FPGA的Alpha通道编码的方法及装置
CN111539228B (zh) 向量模型训练方法及装置、相似度确定方法及装置
US20130054543A1 (en) Inverted Order Encoding in Lossless Compresssion
CN114157395B (zh) 一种基于变长整数编码的数据通信方法、装置及系统
CN114579571A (zh) 数据处理方法及装置
CN112332854A (zh) 霍夫曼编码的硬件实现方法、装置及存储介质
CN107645665B (zh) 一种WebP熵编码的方法及装置
CN104516899B (zh) 字库更新方法和装置
CN112286947B (zh) 保持不同存储系统的数据一致的方法以及装置
CN114419203A (zh) 文件处理方法及装置
CN108829872A (zh) 无损压缩文件的快速处理方法、设备、系统及存储介质
CN113395506A (zh) 一种基于分段的点云邻居搜索方法、编码方法、解码方法及设备
CN113296693A (zh) 数据存储方法及装置
CN113657136A (zh) 识别方法及装置
CN116702798A (zh) 数据处理方法以及装置
CN110392262A (zh) 一种压缩虚拟桌面图像的方法及装置
CN112214458A (zh) 数据转存储方法及装置
CN116894457B (zh) 深度学习模型的网络权重存取方法
CN114267443B (zh) 基于深度学习的胰腺肿瘤纤维化程度预测方法及相关装置
CN108989813A (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