CN104199927B - 数据处理方法及数据处理装置 - Google Patents
数据处理方法及数据处理装置 Download PDFInfo
- Publication number
- CN104199927B CN104199927B CN201410446836.4A CN201410446836A CN104199927B CN 104199927 B CN104199927 B CN 104199927B CN 201410446836 A CN201410446836 A CN 201410446836A CN 104199927 B CN104199927 B CN 104199927B
- Authority
- CN
- China
- Prior art keywords
- data
- type
- translated
- coded
- byte
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种数据处理方法及装置,该方法包括步骤:获取待处理数据包;读取所述待处理数据包中的数据;根据所述数据的数据类型,采用预设数据转换方式对所述数据进行转换,获得转换后数据;采用预设字节编码方式对所述转换后数据进行编码,得到编码后数据,并将该编码后数据序列化存储。本发明实施例的方案,其在对数据进行处理时,是基于数据类型的不同,进行相应的转换后采用预设字节编码方式进行编码,并对编码后数据进行序列化存储,其按照紧密结构来序列化,从而减少了保存相同数据时所占用的存储空间。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种数据处理方法及数据处理装置。
背景技术
目前在涉及不同设备之间的信息交互时,例如客户端与服务器之间的交互,需要对待传输的数据按照规定的协议进行编码后进行传输,目前关于协议报文的编码定义主要有XML(可扩展标记语言,Extensible Markup Language)、JSON(JavaScript ObjectNotation)、Protocol Buffers(、一种数据描述语言)和数据结构体(使用C&C++语言中结构体定义的数据块,用struct定义)等几种。
在使用XML进行数据交互时,比较方便调试,但是服务器和客户端都需要花费很多代码去解析XML,从而在代码量提升的同时,不论是服务器还是客户端,维护都会变得比较困难。Json数据格式与XML相比,易于读写,并且有公开各种语言的解析库用于读取,但是在交互频繁的场景,例如游戏过程中,Json使用文本来传输比较容易被破解并且协议包也不是最优。Protobuf使用键值对的方式来保存数据,在多次重复出现同一数据的时候,用于表示类型和长度的键值可能会比本身要传递的数据都要大,极大的占用存储量。Struct使用的是最基本的结构体来传输,客户端与服务器使用相同的结构体,把传递的数据流转换为结构体来使用,这样看来最简单直接,但是遇到变长数据的时候必须要考虑最大的长度,也就是说每次都必须采用最大长度来发送协议,不仅占用较多的存储量,数据传输时也会占用较多的带宽。
发明内容
基于此,本发明的目的在于提供一种数据处理方法及一种数据处理装置,其可以减少存储时占用的存储空间,在进行传输时也可以减少对带宽的占用。
为达到上述目的,本发明实施例采用以下技术方案:
一种数据处理方法,包括步骤:
获取待处理数据包;
读取所述待处理数据包中的数据;
根据所述数据的数据类型,采用预设数据转换方式对所述数据进行转换,获得转换后数据;
采用预设字节编码方式对所述转换后数据进行编码,得到编码后数据,并将该编码后数据序列化存储。
一种数据处理装置,包括:
数据包获取模块,用于获取待处理数据包;
数据读取模块,用于读取所述待处理数据包中的数据;
数据类型确定模块,用于确定所述数据读取模块所读取数据的数据类型;
转换模块,用于根据所述数据类型,采用预设数据转换方式对所述数据进行转换,获得转换后数据;
编码模块,用于采用预设字节编码方式对所述转换模块得到的转换后数据进行编码,得到编码后数据;
存储控制模块,用于将所述编码后数据序列化存储。
根据上述本发明实施例的方案,其在对数据进行处理时,是基于数据类型的不同,进行相应的转换后采用预设字节编码方式进行编码,并对编码后数据进行序列化存储,其按照紧密结构来序列化,从而减少了保存相同数据时所占用的存储空间,在进行传输是也可以减少对带宽的占用。
附图说明
图1是一个实施例中的本发明方案的工作环境示意图;
图2是一个实施例中终端的组成结构示意图;
图3是一个实施例中的数据处理方法的流程示意图;
图4是一个具体示例中的数据处理方法的流程示意图;
图5是一个实施例中包含子数据包时的数据处理方法的流程示意图;
图6是一个具体示例中确定待处理数据的长度的流程示意图;
图7是一个实施例中的逆向解析数据的流程示意图;
图8是一个实施例中的数据处理装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
本发明方案提供的数据处理方法和数据处理装置,可以应用于任何一个终端设备,以实现对数据的存储,同时也可以用于不同设备之间的信息交互,例如网络游戏。以应用于用户终端与服务器之间的交互为例,图1示出了一个实施例中的工作环境示意图。该工作环境所在系统包括用户终端和服务器,用户终端、服务器通过网络连接,用户终端与服务器之间交互的数据通过网络进行传输,这里的网络可以是无线网络,也可以是有线网络。结合图1所示,本发明实施例的方案涉及用户终端和服务器对需要存储、以及需要发送给对方的数据的处理。
用户终端在一个实施例中的结构示意图如图2所示。该用户终端包括通过系统总线连接的处理器、供电模块、存储介质、内存、通信接口、显示屏幕和输入设备。其中,用户终端的存储介质存储有操作系统和一种数据处理装置,该数据处理装置用于实现一种数据处理方法。用户终端的通信接口用于与服务器连接通信。用户终端的输入设备用以接收用户的输入信息。输入设备基于用户终端的类型的不同可以有所不同。用户终端可以是移动终端,比如手机、平板电脑等;也可以是其它具有上述结构的设备,比如个人计算机。
以下结合其中的几个实施例,对发明的数据处理方法及数据处理装置进行举例说明。
图3中示出了一个实施例中的数据处理方法的流程示意图。如图3所示,该实施例中的数据处理方法包括如下步骤:
步骤S301:获取待处理数据包;
步骤S302:读取所述待处理数据包中的数据;
步骤S303:根据所述数据的数据类型,采用预设数据转换方式对所述数据进行转换,获得转换后数据;
步骤S304:采用预设字节编码方式对所述转换后数据进行编码,得到编码后数据,并将该编码后数据序列化存储。
根据本实施例的方案,其在对数据进行处理时,是基于数据类型的不同,进行相应的转换后采用预设字节编码方式进行编码,并对编码后数据进行序列化存储,其按照紧密结构来序列化,从而减少了保存相同数据时所占用的存储空间,该数据传输时也可以减少对带宽的占用。
对于通用的32位机器来说,以整型数据为例,整型数据要使用4个字节来表示,每个字节的8位都用来表示数据。为了便于压缩,在本发明实施例的方案中,上述预设字节编码方式,可以是使用每个字节的7位来表示数据,第8位作为标识存在,用来标识数据是否结束。
为了实现数据的尽可能压缩,本发明实施例中,采用变长度的数据压缩方式,因此,上述预设数据转换方式,基于数据的数据类型的不同,可以设定不同的转换方式。
在上述数据的数据类型为布尔型数据时,由于其自身占用的空间就比较小,只需要一个字节就可以保存,它已经是最优的了,因此,无需进行转换,直接进行序列化存储即可。
类似地,在上述数据的数据类型为字符型数据时,例如有符号字符数据、无符号字符数据,其自身占用的空间也比较小,只需要一个字节就可以保存,它已经是最优的了,因此,也无需进行转换,直接进行序列化存储即可。
在上述数据的数据类型为整型数据时,如上所述,在本发明实施例的方案中,是使用每个字节的7位来表示数据,第8位用来标识数据是否结束。基于通用的数据存储方式,如果是一个负的整型数,在计算机内一般会表示为一个很大的整数,因为最高位为符号位,也就是说负数的时候第4个字节的第8位是1。为了更好的利用常用的数据区域,在本发明实施例的方案中,需要采用预设数据转换方式对整型数据进行转换,这种预设数据转换方式,本质上是对正数和负数都重新进行了定义,具体为:
对正的整型数据,将该数据乘以2,得到转换后数据;
对负的整型数据,将该数据的绝对值乘以2后减1,得到转换后数据。
基于这种转换,原来的正整型数和负整型数都用正数来表示,其中,正整型数转换后得到的转换后数据为偶数,负整型数转换后得到的数据为奇数,从而可以更方便用上述的7字节表示数据。一个具体实施例中的转换如下表1所示:
表1
如上所述,基于本发明实施例的方式,每个字节的第8位用来标识数据是否结束。以原始的数据为300为例,没有经过压缩的数据需要用4个字节来保存。而基于本发明实施例的方式,根据上面的转换方式,把300转换为600,同时使用7位保存数据,第8位保存数据是否结束的标识,这样一来,使用2个字节就可以保存这个整型数据了,具体转换后的字节表示方式如下表格所示。
11011000 | 00000100 |
上述表格中,11011000的第8位为1,表示接下来的字节也用于保存这个数据,00000100的第8位为0,表示这是保存数据的最后一个字节,下一个字节将是新数据的开始。
基于上述转换和保存方式,在进行解码时,组合后的序列为1001011000,将其转换为十进制数据为600,再基于上述转换方式进行逆转换,就可以得到原始数据300。
在上述数据的数据类型为浮点型数据时,具体的数据转换和存储方式与上述整型数据的相同。
在上述数据的数据类型为字符串数据时,可以先获取该字符串数据的长度,并针对该字符串数据的长度,采用与上述整型数据相同的方式进行处理。并将字符串数据的内容进行序列化存储。
结合如上所述的方式,图4示出了一个具体示例中的数据处理方法的流程示意图;
如图4所示,在获取待处理数据包后,读取该待处理数据包中的数据,并分析该数据的数据类型。
若是布尔型数据或者字符型数据,则不进行处理,直接进行序列化存储。
若是整型数据或浮点型数据:
在该数据为正数时,将该数据乘以2后得到转换后数据,并针对转换后数据,用每个字节的7位表示数据、每个字节的第8位为数据是否结束的标识位的字节编码方式对该转换后数据进行编码,得到编码后数据,并将该编码后数据进行序列化存储。
在该数据为负数时,将该数据的绝对值乘以2减1后得到转换后数据,并针对转换后数据,用每个字节的7位表示数据、每个字节的第8位为数据是否结束的标识位的字节编码方式对该转换后数据进行编码,得到编码后数据,并将该编码后数据进行序列化存储。
若是字符串数据,则获取该字符串数据的长度,并将该字符串数据的长度乘以2后得到转换后数据,并针对转换后数据,用每个字节的7位表示数据、每个字节的第8位为数据是否结束的标识位的字节编码方式对该转换后数据进行编码,得到编码后数据,并将该编码后数据进行序列化存储。然后将字符串序列进行序列化存储。
然后判断该待处理数据包中的数据是否已处理完毕,若否,则读取该待处理数据包中的下一个数据,返回对数据的数据类型进行分析的步骤。
若该待处理数据包中的数据已处理完毕,则读取下一个待处理数据包,返回读取待处理数据包中的数据的步骤。
此外,对于协议嵌套的情况,即一个数据包里包含有一个或者多个其他的数据包(本发明实施例中称为子数据包)时,先获取该数据包中包含的子数据包的个数,并针对该子数据包的个数采用与上述整型数据相同的方式进行处理和序列化存储后,再针对各子数据包依次执行如上所述的数据处理过程。
据此,以待处理数据包包含子数据包为例,图5中示出了一个实施例中的数据处理方法的流程示意图。
如图5所示,在获得待处理数据后,分析该待处理数据包是否包含子数据包。
若不包含子数据包,则采用图4中所示的方式进行处理。
若包含子数据包,则确定该待处理数据包中包含的子数据包的个数,并针对该个数,采用与上述整型数据相同的方式进行转换,即将子数据包的个数乘以2,得到转换后数据,并针对转换后数据,用每个字节的7位表示数据、每个字节的第8位为数据是否结束的标识位的字节编码方式对该转换后数据进行编码,得到编码后数据,并将该编码后数据进行序列化存储。
然后,分别针对各子数据包,采用与图4中的处理方式进行处理。当然,在该子数据包中仍然进一步包含子数据包时,仍然采用如上所述的方式进行进一步的处理。
在当前待处理数据包处理完毕后,读取下一个待处理数据包进行处理。
如上所述,基于本发明实施例的方案,使得处理后的数据的存储空间变小。因此,在另一个实施例中,在获得待处理数据包后,可以通过对待处理数据包的大小进行分析,确定待处理数据包的压缩后长度,并基于该压缩后长度向系统申请存储空间,这里的存储空间可以为内存。
其中,在向系统申请存储空间时,可以是在获得待处理数据包后、读取该数据包中的数据之前进行。在另一种实现方式中,也可以使在处理过程中,同步申请存储空间。
据此,图6中示出了一个具体示例中确定待处理数据的压缩后长度的流程示意图。如图6所示,在确定待处理数据的压缩后长度时,可以通过如下方式进行:
在开始确定待处理数据的长度时,判断读取的数据的数据类型;
如果是布尔型数据或者字符型数据,由于布尔型数据、字符型数据只占用一个字节,在进行处理时不能进行优化,序列化后进行存储时是1个字节;
如果是整型数据或者浮点型数据,整型数据和浮点型数据在通用的存储方式中是占用4个字节,在进行处理时需要进行优化,序列化后进行存储时是1至5个字节,具体的字节数可采用上述实施例中的方式确定;
如果是字符串数据,处理时需要针对字符串的长度进行转码转换,序列化后是1至5个字节,并需要加上字符串长度个字节;
上述处理完毕后,将确定的字节长度累加,并获取剩余的数据,返回上述分析数据的数据类型的步骤;
在所有数据处理完毕后,将上述得到的字节长度累加,就可以得到最终确定的累加后长度,该最终确定的累加后长度记为待处理数据的压缩后长度。
基于如上所述的数据处理方式,在针对基于上述数据处理方式得到的序列化数据进行解析时,也简单便捷,效率高。据此,图7中示出了一个实施例中的逆向解析数据的流程示意图。
如图7所示,在逆向解析数据时,先读取序列化数据,判断数据是否结束的方式是判断一个字节的最高位是否为0,如果为0则表示这个数据读取完毕。
然后对所读取的数据的数据类型进行判断:
如果是布尔型数据或者浮点型数据,则可以直接取出使用;
如果是整型数据或者浮点型数据,则将每个字节的7位表示数据、第8位表示数据是否结束的标识位的方式,转换为每个字节的8位数据都表示数据的方式,并采用上述图4中所示方式中进行逆处理得到原始数据,即如果是偶数,除以2就得到了原来的数据,如果是奇数,则加1后除2,并且转为负数,就得到了原始的数据;
如果是字符型数据,在取得表示长度的整型数据后,进行逆向解析得到其原始长度,即将其除以2就得到了原始长度,并根据该长度从内存中取得该长度的字符串进行使用;
然后,将当前解析位置的游标偏移到解析完成的数据之后,并判断是否还有剩余数据;
若还有剩余的数据,则取得下一个数据,返回上述对数据的数据类型进行判断的步骤;
若没有剩余的数据,则完成解析过程。
需要说明的是,对于字符型数据,在基于上述实施例中的方式进行序列化存储时,用以表示字符串长度的数据与字符串是序列化的连续存储,在逆向解析时,直接基于该顺序即可判定解析出的整形数据是否是表示字符串的个数。
基于与上述实施例的数据处理方法相同的思想,本发明实施例还提供一种数据处理装置。
图8中示出了本发明实施例的数据处理装置的结构示意图。如图8所示,本实施例中的数据处理装置包括:
数据包获取模块801,用于获取待处理数据包;
数据读取模块802,用于读取所述待处理数据包中的数据;
数据类型确定模块803,用于确定数据读取模块802所读取数据的数据类型;
转换模块804,用于根据所述数据类型,采用预设数据转换方式对所述数据进行转换,获得转换后数据;
编码模块805,用于采用预设字节编码方式对转换模块804得到的转换后数据进行编码,得到编码后数据;
存储控制模块806,用于将所述编码后数据序列化存储。
根据本实施例的方案,其在对数据进行处理时,是基于数据类型的不同,进行相应的转换后采用预设字节编码方式进行编码,并对编码后数据进行序列化存储,其按照紧密结构来序列化,从而减少了保存相同数据时所占用的存储空间,在对数据进行网络传输时也可以减少对带宽的占用。
对于通用的32位机器来说,以整型数据为例,整型数据要使用4个字节来表示,每个字节的8位都用来表示数据。为了便于压缩,在本发明实施例的方案中,上述预设字节编码方式,可以是使用每个字节的7位来表示数据,第8位作为标识位存在,用来标识数据是否结束。
为了实现数据的尽可能压缩,本发明实施例中,采用变长度的数据压缩方式,因此,上述预设数据转换方式,基于数据的数据类型的不同,可以设定不同的转换方式。
在一个实施例中,储控制模块806,用于在数据类型确定模块803确定数据的数据类型为布尔型数据或字符型数据时,直接将所述数据进行序列化存储。
在一个实施例中,所述数据转换方式包括:
在所述数据的数据类型为整型数据或浮点型数据、且所述数据为正数时,将所述数据乘以2,得到所述转换后数据;
在所述数据的数据类型为整型数据或浮点型数据、且所述数据为负数时,将所述数据的绝对值乘以2后减1,得到所述转换后数据。
其中,在一个实施例中,转换模块804,用于在数据类型确定模块803确定所述数据的数据类型为字符串数据时,将所述字符串数据的长度乘以2,得到所述转换后数据;
此时,上述存储控制模块806,还用于将所述字符串数据的内容进行序列化存储。
基于上述实施例中的数据处理装置,以下结合其中一个具体的处理过程进行说明。
数据包获取模块801在获取待处理数据包后,数据读取模块802读取该待处理数据包中的数据,数据类型分析模块803分析该数据的数据类型。
若是布尔型数据或者字符型数据,则不进行处理,存储控制模块806直接将该数据进行序列化存储。
若是整型数据或浮点型数据:
在该数据为正数时,转换模块804将该数据乘以2后得到转换后数据,并针对转换后数据,编码模块805用每个字节的7位表示数据、每个字节的第8位为数据是否结束的标识位的字节编码方式对该转换后数据进行编码,得到编码后数据,存储控制模块806将该编码后数据进行序列化存储。
在该数据为负数时,转换模块804将该数据的绝对值乘以2减1后得到转换后数据,并针对转换后数据,编码模块805用每个字节的7位表示数据、每个字节的第8位为数据是否结束的标识位的字节编码方式对该转换后数据进行编码,得到编码后数据,存储控制模块806将该编码后数据进行序列化存储。
若是字符串数据,则转换模块804获取该字符串数据的长度,并将该字符串数据的长度乘以2后得到转换后数据,并针对转换后数据,编码模块805用每个字节的7位表示数据、每个字节的第8位为数据是否结束的标识位的字节编码方式对该转换后数据进行编码,得到编码后数据,存储控制模块806将该编码后数据进行序列化存储,然后存储控制模块806将字符串序列进行序列化存储。
此外,对于协议嵌套的情况,即一个数据包里包含有一个或者多个其他的数据包(本发明实施例中称为子数据包)时,先获取该数据包中包含的子数据包的个数,并针对该子数据包的个数采用与上述整型数据相同的方式进行处理和序列化存储后,再针对各子数据包依次执行如上所述的数据处理过程。
据此,如图8所示,在一个实施例中,本发明的数据处理装置还包括子数据包分析模块8012:
该子数据包分析模块8012,用于分析所述待处理数据包是否包含子数据包,并在判定包含子数据包时,获取所述子数据包的数目;
上述转换模块804,还用于根据所述预设数据转换方式对所述子数据包的数目进行转换,获得转换后数据。
本发明实施例的方案,使得处理后的数据的存储空间变小。因此,在另一个实施例中,在获得待处理数据包后,可以通过对待处理数据包的大小进行分析,确定待处理数据包的压缩后长度,并基于该压缩后长度向系统申请存储空间,这里的存储空间可以为内存。
以待处理数据包里嵌套包含有子数据包为例,以下结合其中一个实施例进行说明。
数据包获取模块801在获取待处理数据包后,子数据包分析模块8012分析该待处理数据包是否包含子数据包。
若不包含子数据包,则数据读取模块802读取该待处理数据包中的数据,数据类型分析模块803分析该数据的数据类型,进行后续的处理。
若包含子数据包,则子数据包获取模块8012获取子数据包的数目,转换模块804将子数据包的数目乘以2后得到转换后数据,并针对转换后数据,编码模块805用每个字节的7位表示数据、每个字节的第8位为数据是否结束的标识位的字节编码方式对该转换后数据进行编码,得到编码后数据,存储控制模块806将该编码后数据进行序列化存储。
然后,依次针对各子数据包,数据读取模块802读取子数据包中的数据,数据类型分析模块803分析该数据的数据类型,进行后续的处理。
如上所述,基于本发明实施例的方案,使得处理后的数据的存储空间变小。因此,在另一个实施例中,在获得待处理数据包后,可以通过对待处理数据包的大小进行分析,确定待处理数据包的压缩后长度,并基于该压缩后长度向系统申请存储空间,这里的存储空间可以为内存。
其中,在向系统申请存储空间时,可以是在获得待处理数据包后、读取该数据包中的数据之前进行。在另一种实现方式中,也可以使在处理过程中,同步申请存储空间。
据此,在一个实施例中,如图8所示,本实施例中的数据处理装置还可以包括:
存储空间确定模块807,用于确定所述待处理数据包的压缩后长度,并根据所述压缩后长度申请存储空间。
此时,上述存储控制模块806在进行序列化存储时,是向存储空间确定模块807申请到的存储空间进行存储。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (12)
1.一种数据处理方法,其特征在于,包括步骤:
获取待处理数据包;
读取所述待处理数据包中的数据;
根据所述数据的数据类型,采用预设数据转换方式对所述数据进行转换,获得转换后数据;
采用预设字节编码方式对所述转换后数据进行编码,得到编码后数据,并将该编码后数据序列化存储,所述预设字节编码方式包括:每个字节的7位表示数据、每个字节的第8位为数据是否结束的标识位。
2.根据权利要求1所述的数据处理方法,其特征在于,在获取待处理数据包后、读取所述待处理数据包中的数据之前,还包括步骤:
分析所述待处理数据包是否包含子数据包;
若是,获取所述子数据包的数目;
根据所述预设数据转换方式对所述子数据包的数目进行转换,获得转换后数据;
采用预设字节编码方式对所述转换后数据进行编码,得到编码后数据,并将该编码后数据序列化存储。
3.根据权利要求1所述的数据处理方法,其特征在于,在获取待处理数据包后、读取所述待处理数据包中的数据之前,还包括步骤:
确定所述待处理数据包的压缩后长度,并根据所述压缩后长度申请存储空间。
4.根据权利要求1至3任意一项所述的数据处理方法,其特征在于,所述数据的数据类型为布尔型数据或字符型数据时,直接进行序列化存储。
5.根据权利要求1至3任意一项所述的数据处理方法,其特征在于,所述数据的数据类型为整型数据或浮点型数据时,所述预设数据转换方式包括:
在所述数据为正数时,将所述数据乘以2,得到所述转换后数据;
在所述数据为负数时,将所述数据的绝对值乘以2后减1,得到所述转换后数据。
6.根据权利要求1至3任意一项所述的数据处理方法,其特征在于:
所述数据的数据类型为字符串数据时,将所述字符串数据的长度乘以2,得到所述转换后数据;
还包括步骤:将所述字符串数据的内容进行序列化存储。
7.一种数据处理装置,其特征在于,包括:
数据包获取模块,用于获取待处理数据包;
数据读取模块,用于读取所述待处理数据包中的数据;
数据类型确定模块,用于确定所述数据读取模块所读取数据的数据类型;
转换模块,用于根据所述数据类型,采用预设数据转换方式对所述数据进行转换,获得转换后数据;
编码模块,用于采用预设字节编码方式对所述转换模块得到的转换后数据进行编码,得到编码后数据,所述预设字节编码方式包括:每个字节的7位表示数据、每个字节的第8位为数据是否结束的标识位;
存储控制模块,用于将所述编码后数据序列化存储。
8.根据权利要求7所述的数据处理装置,其特征在于,还包括子数据包分析模块:
所述子数据包分析模块,用于分析所述待处理数据包是否包含子数据包,并在判定包含子数据包时,获取所述子数据包的数目;
所述转换模块,还用于根据所述预设数据转换方式对所述子数据包的数目进行转换,获得转换后数据。
9.根据权利要求7所述的数据处理装置,其特征在于:
还包括存储空间确定模块,用于确定所述待处理数据包的压缩后长度,并根据所述压缩后长度申请存储空间。
10.根据权利要求7至9任意一项所述的数据处理装置,其特征在于,所述存储控制模块,还用于在所述数据类型确定模块确定所述数据的数据类型为布尔型数据或字符型数据时,直接将所述数据进行序列化存储。
11.根据权利要求7至9任意一项所述的数据处理装置,其特征在于,所述预设数据转换方式包括:
所述数据的数据类型为整型数据或浮点型数据、且所述数据为正数时,将所述数据乘以2,得到所述转换后数据;
所述数据的数据类型为整型数据或浮点型数据、且所述数据为负数时,将所述数据的绝对值乘以2后减1,得到所述转换后数据。
12.根据权利要求7至9任意一项所述的数据处理装置,其特征在于:
所述转换模块,用于在所述数据的数据类型为字符串数据时,将所述字符串数据的长度乘以2,得到所述转换后数据;
所述存储控制模块,还用于将所述字符串数据的内容进行序列化存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410446836.4A CN104199927B (zh) | 2014-09-03 | 2014-09-03 | 数据处理方法及数据处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410446836.4A CN104199927B (zh) | 2014-09-03 | 2014-09-03 | 数据处理方法及数据处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104199927A CN104199927A (zh) | 2014-12-10 |
CN104199927B true CN104199927B (zh) | 2016-11-30 |
Family
ID=52085220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410446836.4A Active CN104199927B (zh) | 2014-09-03 | 2014-09-03 | 数据处理方法及数据处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104199927B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106407201B (zh) * | 2015-07-29 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN105657521A (zh) * | 2015-11-02 | 2016-06-08 | 乐视致新电子科技(天津)有限公司 | 一种频道数据存储方法和装置 |
CN106815238B (zh) * | 2015-11-30 | 2020-10-20 | 阿里巴巴集团控股有限公司 | 一种结构化数据的序列化、反序列化方法及装置 |
WO2017193263A1 (zh) * | 2016-05-09 | 2017-11-16 | 华为技术有限公司 | 数据查询方法、数据查询系统确定方法和装置 |
CN106899307B (zh) * | 2017-03-03 | 2020-10-16 | 上海东软医疗科技有限公司 | 一种数据压缩方法、数据解压缩方法及装置 |
CN108572899A (zh) * | 2017-03-09 | 2018-09-25 | 清远广硕技研服务有限公司 | 数据处理装置及数据量减少方法 |
CN107947897A (zh) * | 2017-10-27 | 2018-04-20 | 深圳市创梦天地科技股份有限公司 | 用于网络传输的信息编码方法和装置 |
CN108038158B (zh) * | 2017-12-05 | 2019-11-05 | 北京百度网讯科技有限公司 | 减少数据库存储容量的数据存储方法 |
CN109995373B (zh) * | 2018-01-03 | 2023-08-15 | 上海艾拉比智能科技有限公司 | 一种整数数组的混合打包压缩方法 |
CN109213745B (zh) * | 2018-08-27 | 2022-04-22 | 郑州云海信息技术有限公司 | 一种分布式文件存储方法、装置、处理器及存储介质 |
CN109962711B (zh) * | 2019-04-09 | 2022-07-08 | 深圳市道通智能航空技术股份有限公司 | 一种数据压缩方法、电子设备及存储介质 |
CN110120819B (zh) * | 2019-04-26 | 2023-07-21 | 矩阵元技术(深圳)有限公司 | 一种布尔电路编码方法、装置及系统 |
CN110545107B (zh) * | 2019-09-09 | 2022-12-20 | 飞天诚信科技股份有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN110830164A (zh) * | 2019-10-22 | 2020-02-21 | 武汉理工光科股份有限公司 | 一种用于物联网设备通信的数据序列化方法 |
CN111142676B (zh) * | 2019-12-30 | 2023-08-08 | 歌尔科技有限公司 | 数据传输方法、装置、头戴显示设备和可读存储介质 |
CN112402983A (zh) * | 2020-08-03 | 2021-02-26 | 上海幻电信息科技有限公司 | 游戏成绩验证方法及系统 |
CN112084250A (zh) * | 2020-09-15 | 2020-12-15 | 深圳市宝能投资集团有限公司 | 数据存储方法、数据查询方法和电子设备 |
CN112765173A (zh) * | 2021-01-20 | 2021-05-07 | 四川湖山电器股份有限公司 | 一种适用于上位机的数据存储方法、系统及加载方法 |
CN116243845A (zh) * | 2021-12-07 | 2023-06-09 | 深圳晶泰科技有限公司 | 基于cuda的数据处理方法、计算设备及存储介质 |
CN115460163A (zh) * | 2022-08-18 | 2022-12-09 | 深圳市千岩科技有限公司 | 数据处理方法、装置、电子设备以及存储介质 |
CN115549862B (zh) * | 2022-12-05 | 2023-03-31 | 大方智造(天津)科技有限公司 | 基于动态解析的mes系统并发性能测试数据接收方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039323A (zh) * | 2007-04-27 | 2007-09-19 | 华中科技大学 | 多速率多协议比特流处理器 |
CN103577456A (zh) * | 2012-07-31 | 2014-02-12 | 国际商业机器公司 | 用于处理时序数据的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7932956B2 (en) * | 2005-10-20 | 2011-04-26 | Lg Electronics, Inc. | DTV transmitter and method of coding data in DTV transmitter |
-
2014
- 2014-09-03 CN CN201410446836.4A patent/CN104199927B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039323A (zh) * | 2007-04-27 | 2007-09-19 | 华中科技大学 | 多速率多协议比特流处理器 |
CN103577456A (zh) * | 2012-07-31 | 2014-02-12 | 国际商业机器公司 | 用于处理时序数据的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104199927A (zh) | 2014-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104199927B (zh) | 数据处理方法及数据处理装置 | |
CN109902274B (zh) | 一种将json字符串转化为thrift二进制流的方法及系统 | |
US10003356B2 (en) | Devices and methods of source-encoding and decoding of data | |
CN104123364A (zh) | 一种移动终端发送和接收数据的方法及装置 | |
US9305369B2 (en) | Method and system for data compression | |
CN110518917A (zh) | 基于Huffman编码的LZW数据压缩方法及系统 | |
US9966971B2 (en) | Character conversion | |
CN103346800B (zh) | 一种数据压缩方法及装置 | |
CN106605411A (zh) | 对图形域中的视频数据进行流式传输 | |
CN108965333A (zh) | 一种数据压缩、解压缩方法、系统及电子设备 | |
CN112035706A (zh) | 编码、解码方法、计算机设备及可读存储介质 | |
CN106851733A (zh) | 一种针对移动网络应用的自适应http消息压缩方法 | |
CN106713922A (zh) | 图像处理方法和电子设备 | |
CN103605730A (zh) | 一种基于不定长标识码的xml的压缩方法和装置 | |
US20140009563A1 (en) | Non-video codecs with video conferencing | |
US7895347B2 (en) | Compact encoding of arbitrary length binary objects | |
CN104021121B (zh) | 一种文本数据压缩方法、装置及服务器 | |
WO2015196717A1 (zh) | 图像解码方法及装置 | |
CN110298017B (zh) | 一种编码数据处理方法、装置及计算机存储介质 | |
CN114359015A (zh) | 数据传输方法、装置和图形处理服务器 | |
US20170099350A1 (en) | Apparatus and method for transmitting mass data | |
CN104917637A (zh) | 一种文件分享的方法及系统 | |
CN103366716B (zh) | 点阵字库中字符及点阵字库的压缩和解压方法及设备 | |
CN112054805A (zh) | 一种模型数据压缩方法、系统及相关设备 | |
CN107835158A (zh) | Sna网络体系下交互数据的传输方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |