CN111510155A - 数据压缩方法、数据解压方法、电子设备及存储介质 - Google Patents
数据压缩方法、数据解压方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111510155A CN111510155A CN202010305305.9A CN202010305305A CN111510155A CN 111510155 A CN111510155 A CN 111510155A CN 202010305305 A CN202010305305 A CN 202010305305A CN 111510155 A CN111510155 A CN 111510155A
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- decompression
- compressed
- packet
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
- H03M7/3064—Segmenting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种数据压缩方法、数据解压方法、电子设备及存储介质,涉及但不限于数据传输技术领域,其中数据压缩方法中通过设置压缩参数后,调用API接口获取用户数据,并对获取的用户数据进行数据特征判断,根据判断进行分片压缩,生成若干个分片压缩数据后,将分片压缩数据打包成组包数据进行数据传输,解决现有压缩数据传输方法在高带宽通道下传输速率低导致速率低和延迟高的的问题,实现了在高带宽通道下低延迟和高速率的数据传输。
Description
技术领域
本发明涉及数据传输技术领域,尤其是涉及一种数据压缩方法、数据解压方法、电子设备及存储介质。
背景技术
随着网络技术的高速发展,网络系统越来越庞大,用户在基于消息中间件在端对端进行通道数据传输时,会对数据进行压缩以便进行数据传输,而影响数据的传输速率的则是带宽大小,通常情况下带宽越高,数据传输速率越高,但是,在高带宽情况下,数据传输的速率反而降低了,在现有的压缩数据传输系统中,并没有能够解决在高带宽通道下数据传输速率降低导致速率低和延迟高的问题,因此需要提供一种能够提高在高带宽通道下数据传输速率的方法。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种数据压缩方法,能够解决现有压缩数据传输方法在高带宽通道下传输速率低的问题,实现了在高带宽通道下低延迟和高速率的数据传输。
对应于数据压缩方法,本发明还提出一种数据解压方法。
对应于数据压缩方法和数据解压方法,本发明还提出一种电子设备。
对应于数据压缩方法和数据解压方法,本发明还提出一种计算机可读存储介质。
第一方面,本发明采用的技术方案为一种数据压缩方法,包括:设置压缩参数;获取用户数据,并对判断所述用户数据进行的数据特征判断是否符合压缩条件;若所述数据特征判断结果符合压缩条件,则进行分片压缩,生成若干个分片压缩数据;将所述分片压缩数据打包成组包数据进行数据传输。
进一步地,还包括:所述根据计算机运行环境设置压缩参数;所述计算机运行环境包括:操作系统位数、计算机L1缓存、传输通道类型、处理器核数;所述压缩参数包括:压缩字典大小、读写字长、可压缩长度区间、分片个数、可压缩比值。
进一步地,所述数据特征包括:数据长度特征和数据稀疏特征;
所述压缩条件包括:所述数据长度特征在所述可压缩长度区间内并且所述数据稀疏特征大于所述可压缩比值。
进一步地,所述进行分片压缩,包括:根据所述分片个数切割所述用户数据生成若干个分片数据后,根据所述压缩参数对所述分片数据进行压缩生成分片压缩数据,所述分片压缩数据包括压缩包头。
进一步地,所述组包数据包括组包包头,通过识别所述组包包头对所述组包数据进行解压,所述组包包头包括:解压标识、压缩分片个数、用户数据字节数和压缩数据字节数。
进一步地,若不符合压缩条件,则将所述用户数据打包成组包数据进行数据传输。
第二方面,本发明采用的技术方案为一种数据解压方法,包括:接收如第一方面所述的数据压缩方法压缩得到的组包数据;识别所述组包数据中组包包头的解压标识,所述解压标识用于判断是否符合解压条件;根据所述组包包头对所述组包数据进行解压重组生成解压数据,并进行解包生成用户数据并上传。
进一步地,若不符合解压条件则对所述组包数据进行解包生成用户数据。
第三方面,本发明采用的技术方案为一种电子设备,包括至少一个处理器,以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的数据压缩方法和第二方面所述的数据解压方法。
第四方面,本发明采用的技术方案为一种计算机可读存储介质,包括所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行第一方面所述的数据压缩方法和第二方面所述的数据解压方法。
本发明的有益效果是:
本发明提供一种数据压缩方法、数据解压方法、电子设备及存储介质,其中一种数据压缩方法中通过设置压缩参数后,调用API接口获取用户数据,并对获取的用户数据进行数据特征判断,根据判断结果进行分片压缩,生成若干个分片压缩数据后,将分片压缩数据打包成组包数据进行数据传输,解决现有压缩数据传输方法在高带宽通道下传输速率低导致速率低和延迟高的的问题,实现了在高带宽通道下低延迟和高速率的数据传输。
附图说明
图1是本发明实施例中数据压缩方法中第一具体实施例流程示意图;
图2是本发明实施例中数据压缩方法中第二具体实施例流程示意图;
图3是本发明实施例中数据压缩方法中第三具体实施例流程示意图;
图4是本发明实施例中数据压缩方法中第四具体实施例流程示意图;
图5是本发明实施例中数据解压方法中第一具体实施例流程示意图;
图6是本发明实施例中数据解压方法中第二具体实施例流程示意图;
图7是本发明实施例中的数据压缩方法与数据解压方法的一具体应用示例。
具体实施方式
以下将结合实施例对本发明的构思及产生的技术效果进行清楚、完整地描述,以充分地理解本发明的目的、特征和效果。显然,所描述的实施例只是本发明的一部分实施例,而不是全部实施例,基于本发明的实施例,本领域的技术人员在不付出创造性劳动的前提下所获得的其他实施例,均属于本发明保护的范围。
在本发明的描述中,如果涉及到方位描述,例如“上”、“下”、“前”、“后”、“左”、“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。如果某一特征被称为“设置”、“固定”、“连接”、“安装”在另一个特征,它可以直接设置、固定、连接在另一个特征上,也可以间接地设置、固定、连接、安装在另一个特征上。
在本发明实施例的描述中,如果涉及到“若干”,其含义是一个以上,如果涉及到“多个”,其含义是两个以上,如果涉及到“大于”、“小于”、“超过”,均应理解为不包括本数,如果涉及到“以上”、“以下”、“以内”,均应理解为包括本数。如果涉及到“第一”、“第二”,应当理解为用于区分技术特征,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先v后关系。
随着网络技术的高速发展,网络系统越来越庞大,用户在基于消息中间件在端对端进行通道数据传输时,会对数据进行压缩以便传输,而影响数据的传输速率的则是带宽大小,通常情况下带宽越高,数据传输速率越高,但是,在高带宽情况下,数据传输的速率反而降低了,在现有的压缩数据传输系统中,并没有能够解决在高带宽通道下速率降低导致速率低和延迟高的问题。
其中,高带宽通道是指高速率的带宽传输通道,例如大于1G*bps直至40G*bps带宽的物理传输通道,具体可以是万兆网、40G光纤等;消息中间件是用于屏蔽底层实现细节、向用户提供特定通信API接口的中间件,消息中间件适用于任何需要进行网络通信的系统,负责建立网络通信的通道,进行数据或文件发送。消息中间件的重要作用之一是可以实现跨平台操作,为不同操作系统上的应用软件集成提供服务。
其中压缩数据原理是利用压缩算法将文件进行有损或无损处理,以达到保留最多文件信息,而令文件体积变小。压缩文件的基本原理是查找文件内的重复字节,并建立一个相同字节的“字典”文件,并用一个代码表示,比如在文件里有几处有一个相同的词“中华人民共和国”用一个代码表示并写入“字典”文件,这样就可以达到缩小文件的目的软件。由于计算机处理的信息是以二进制数的形式表示的,因此压缩软件就是把二进制信息中相同的字符串以特殊字符标记来达到压缩的目的。
基于此,本发明实施例提供了一种数据压缩方法中、数据解压方法、电子设备及存储介质,解决了现有压缩数据传输方法在高带宽通道下传输速率低导致速率低和延迟高的问题,实现了在高带宽通道下低延迟和高速率的数据传输。
第一方面,本发明实施例提供了一种数据压缩方法,通过设置压缩参数后,调用API接口获取用户数据,并对获取的用户数据进行数据特征判断,根据判断结果进行分片压缩,生成若干个分片压缩数据后,将分片压缩数据打包成组包数据进行数据传输,解决现有压缩数据传输方法在高带宽通道下传输速率低导致速率低和延迟高的的问题,实现了在高带宽通道下低延迟和高速率的数据传输。
在一些实施例中,参考图1,本发明实施例数据压缩方法包括步骤:
S1100,设置压缩参数;
S1200,获取用户数据;
S1300,进行数据特征判断;
S1400,进行分片压缩生成若干个分片压缩数据;
S1500,将分片压缩数据打包成组包数据;
S1600,进行数据传输。
在步骤S1100中,根据计算机运行环境设置压缩参数。通过识别检查计算机运行环境包括当前计算机的操作系统位数、计算机L1缓存、中间件的传输通道类型和计算机可用CPU核数等计算机环境信息,根据识别确定的计算机环境,进行对应的压缩参数设置,包括设置数据的压缩哈希字典大小、读写字长、可压缩长度区间、分片个数、可压缩比值等参数。
其中,压缩哈希字典是指在进行数据压缩的内存区域中用来查找和压缩重复字节数据的数据模式,压缩哈希字典大的能较大程度提高大数据的压缩效果,但也会导致压缩速度慢以及提高对计算机内存的需求,即说明压缩哈希字典越大,压缩速度就越慢,耗内存就越多。而在本申请实施例中则是基于计算机运行环境中的计算机L1缓存大小进行压缩哈希字典大小的设置,保证压缩哈希字典大小能够不完全消耗掉系统的L1缓存,也保证了计算机能够在不会因内存被消耗过多导致死机的情况下完成数据压缩。
计算机读写字长就是计算机中CPU即处理器在一次操作中能处理的单位字节长度,即运算器能够并行处理和存储器每次读写操作时能包含的二进制码的位数,包括有8位、16位、32位和64位字长,例如32位读写4个字节,64位读写8个字节。
可压缩长度区间就是基于计算机的运行环境从而定义在进行数据压缩时,数据的字节大小是否符合压缩范围。
分片个数则是根据计算机的运行环境设置即处理器CPU核数从而确定分片个数,分片个数是将待压缩的数据切割成分片数据的个数,从而进行数据的压缩。
可压缩比值是根据计算机的运行环境从而确定数据的可压缩比值,设置适当的可压缩比值从而保证在对一定长度的数据进行压缩时,压缩后得到的数据大小小于压缩前的数据大小,从而确保数据能够经过有效压缩。
在步骤S1200中,消息中间件调用API(Application Programming Interface,应用程序接口)接口获取待发送的用户数据,在实际应用中,当系统平台之间进行数据传输时,往往需要基于消息中间件的接口调用发送端的数据库的接口从而获取待发送的数据。
在步骤S1300中,对获取的用户数据进行数据特征判断,判断用户数据是否符合压缩条件,即符合预设的压缩参数。
在一些实施例中,数据特征包括:数据长度特征和数据稀疏特征,其中数据长度特征是指用户数据的字节长度;数据稀疏特征是指用户数据中重复信息出现概率所占全部数据的比重,在实际应用以稀疏特征值作为衡量用户数据的数据稀疏特征,数据稀疏特征代表用户数据能否进行有效地压缩。
在实际应用中数据稀疏特征即稀疏特征值小于一定比值时,对一定长度的用户数据没有适合的压缩算法,则代表用户数据在经过压缩后生成的压缩数据长度会较大几率大于原始数据长度,而稀疏特征值大于一定比值时,对一定长度的用户数据存在压缩算法,则能保证用户数据在经过压缩后生成的压缩数据长度会小于原始数据长度,即有效地进行了数据压缩。
在可能实施的应用示例中,稀疏特征值s,s=x/m,即最大概率的单一信息重复的总字节数x所占用户数据总字节数m的比值,例如一段用户数据字节数为100kb,而其中数据a出现的总字节数为10kb,数据b出现的总字节数为20kb,则稀疏特征值为0.2。
在一些实施例中,对数据特征进行判断,如图3所示,步骤S1300中包括:步骤S1310,对数据长度特征进行判断,判断数据长度特征是否在可压缩长度区间内,若在可压缩长度区间内则执行步骤S1320,若不在可压缩长度区间内则判断为不符合可压缩条件并执行如图2所示的步骤S1500;
在步骤S1320中,对数据稀疏特征进行判断,判断数据稀疏特征是否大于可压缩比值,若数据长度特征在可压缩长度区间内并且数据稀疏特征值大于可压缩比值,则符合可压缩条件并执行步骤S1400,若小于可压缩比值则不符合可压缩条件则执行如图2所示的步骤S1500。
在可能实施的应用示例中,关于判断数据稀疏特征是否大于可压缩比值具体方法如图4所示,即步骤S1320中还包括:
S1321,设置可压缩特征值S,即上述压缩参数中的可压缩比值s*100;
S1322,采用随机Random算法,设置m个随机单元数组a[0,m-1]、预分配数组单元b[0,k=m-S+1]和特征计数值c[0,k];
S1323,将第一个随机单元数组a[0]的值放置在b[0]并且c[0]的值加1;
S1324,循环检查a[1,m-1]的值是否等于b[0,k]任一i位置的值,若等于则c[i]的值加1,若不等于并且b[i]扔为空值,则将a[n]的值放置在b[i]中,c[i]的值加1,否则中断稀疏特征值判断并判断为不符合可压缩条件;
S1325,检查c[0,k]的值,若存在一个c[i]的值大于等于S,则判断为符合可压缩条件,否则判断为不符合可压缩条件。
在步骤S1321中,可压缩特征值S根据上述应用示例中的稀疏特征值结合计算机运行环境进行预设置,即上述稀疏特征值*100,例如设置可压缩特征值为61。
在步骤S1322中,a[0,m-1]则是代表m份位于用户数据区间内的随机单元数据,b[0,k=m-S+1]则是用于放置随机单元数据的数据单元,通过对应的特征计数值c[0,k]进行计数,c[i]的值初始为0,值加1即说明b[i]中多了一份相同的用户数据单元,c[i]的值越多,说明相同的用户数据单元越多,即说明该用户数据的稀疏特征值越大,越有利于压缩,但如果b[i]的位置不足以放置a[0,m-1]的用户数据单元,则说明该用户数据中相同数据量越少,稀疏特征值则越小,即该用户数据不符合可压缩条件。实际应用中,采用随机Random算法,设置100个位于用户数据区间内的随机单元数组a[0,99],预分配数组单元b[0,40]和特征计数值c[0,40]。
在步骤S1323中,实际应用的时候,将a[0]的用户数据单元放置在b[0]里,对应的c[0]的值加1。
在步骤S1324中,在实际应用中,循环检查a[2,99]的值是否等于b[0,40]任一i位置的值,若等于b[i]的值,则c[i]的值加1,若不等于并且b[i]仍为空值,则将a[n]的值放置在b[i]中,c[i]的值加1,否则中断稀疏特征值判断并判断为不符合可压缩条件,即预分配数组b的数量不足以放置随机单元数组a,该用户数据量稀疏特征值较低,不符合可压缩条件;例如先检查a[1]是否等于b[0],等于则c[0]的值加1,若不等于则放置在b[1]中并且c[1]的值加1,但是当存在a[80]的值不等于b[0,40]内任意b[i]的值,并且b[0,40]都放置了用户数据单元,则中断稀疏特征值判断并判断为不符合可压缩条件。
在步骤S1325中,当循环检查完全部的随机单元数组a后,检查c[0,k]的值,若存在任意一个c[i]的值大于等于S,则说明该用户数据的稀疏特征值较大,判断为符合可压缩条件,若不存在任意一个c[i]的值大于等于S,则说明该用户数据的稀疏特征值较小,判断为不符合可压缩条件。
通过对数据稀疏特征进行判断,可以清楚地得出数据的稀疏特征值,从而判断数据是否符合可压缩条件,使得在对数据进行压缩时,能够保证压缩后的数据长度小于原始数据长度。
在步骤S1400中,进行分片压缩生成若干个分片压缩数据,通过预设的分片个数对用户数据进行切割,并根据预设的压缩参数进行压缩生成若干个分片压缩数据。
在一些实施例中,根据计算机的工作线程即处理器核数将用户数据分成若干片数据后将其放入并行压缩线程池内进行批次压缩,例如并行线程为6线程,则一次压缩6个分片数据;当任意一个分片数据完成压缩生成分片压缩数据时,会将分片压缩数据与压缩包头放入数据待发送缓存区内,直至全部分片数据完成压缩生成分片压缩数据并放置在待发送缓存区内。
在一些实施例中,压缩包头包括压缩分片索引、原始偏移位置和压缩偏移位置,其中压缩分片索引代表分片压缩数据的索引位置;原始偏移位置代表分片压缩数据在原始用户数据中的位置;压缩偏移位置则代表分片压缩数据在压缩后的数据中的位置,根据压缩包头确定分片压缩数据在压缩后的用户数据的位置,从而保证在后续进行解压时,能够通过识别压缩包头进行正确的解压,防止在解压时导致数据丢失或数据错位。
在步骤S1500中,当全部分片数据完成压缩生成分片压缩数据并放置在待发送缓存区中,将完成压缩的分片压缩数据根据消息中间件的格式进行打包生成组包数据,形成完整的用户数据进行数据传输,其中关于消息中间件格式进行打包为现有的技术,故不在此赘述。
在一些实施例中,在将完成压缩的分片压缩数据打包成组包数据时,会设置组包包头,其中组包包头包括:解压标识、压缩分片个数、用户数据字节数和压缩数据字节数。解压标识用于在消息中间件接收端接收到组包数据时,能够通过识别解压标识从而确定该组包数据需要进行解压;压缩分片个数用于在消息中间件接收端接收到组包数据进行解压时,能够确定该组包数据内包含多少压缩分片个数从而进行具体的解压;用户数据字节数用于标识原始用户数据所占有的字节数大小;压缩数据字节数用于标识压缩后的用户数据所战友的字节数大小。通过在组包数据中设置组包包头,从而使消息中间件接收端接收到组包数据时,能够通过组包包头进行识别,从而对该组包数据进行正确的解压过程,保证了解压过程中数据的完整性与准确性。
在步骤S1600中,将打包好的组包数据通过消息中间件的传输通道进行数据传输,传输给消息中间件的接收端。其中传输通道的类型决定了在步骤S1100中压缩参数中的可压缩长度的最小长度的设置,不同的传输通道所能设置的可压缩长度的最小长度不同,例如传输通道类型为rapidio时,可压缩长度的最小长度为256k;传输通道类型为以太网时,可压缩长度的最小长度为64k。
通过第一方面提供的数据压缩方法,根据计算机运行环境进行数据压缩参数的设置,调用API接口获取用户数据,并对获取的用户数据进行数据特征判断,根据判断进行分片压缩,生成若干个分片压缩数据后,将分片压缩数据打包成组包数据进行数据传输,解决现有压缩数据传输方法在高带宽通道下传输速率低导致速率低和延迟高的的问题,实现了在高带宽通道下低延迟和高速率的数据传输。
第二方面,本发明实施例还提供了一种数据解压方法,接收通过第一方面提到的数据压缩方法生成的组包数据,识别组包数据中的组包包头的解压标识,从而根据组包包头对该组包数据进行解压重组生成用户数据,从而保证对接收到的压缩数据能够正常解压重组得到原始的用户数据,保证了用户数据在传输过程和解压过程中不丢失数据以及出现数据错乱的问题,通过配合第一方面提到的数据压缩方法解决了现有数据传输方法在高带宽通道下传输速率低导致速率低和延迟高的的问题,实现了在高带宽通道下低延迟和高速率的数据传输。
在一些实施例中,参考图5,数据解压方法包括步骤:
S2100,接收组包数据;
S2200,判断解压标识;
S2300,对组包数据进行解压重组;
S2400,进行解包生成用户数据;
S2500,上传用户数据。
在步骤S2100中,消息中间件接收端通过传输通道,接收通过第一方面提到的数据压缩方法压缩得到的组包数据。
在步骤S2200中,当接收端接收到组包数据后,通过组包数据中心的组包包头进行识别判断解压标识,通过识别解压标识判断是否符合解压条件,从而确定该组包数据需要进行解压重组,则执行步骤S2300,对组包数据进行解压重组;若通过判断解压标识不符合解压条件,则确定该组包数据不需要进行解压重组,则如图6所示执行步骤S2400,对组包数据进行解包生成用户数据。
在步骤S2300中,当需要对组包数据进行解压重组时,通过识别组包数据中组包包头的信息进行解压重组,其中组包包头包括:解压标识、压缩分片个数、用户数据字节数和压缩数据字节数。
在实际应用中,根据组包包头中的用户数据字节数设置对应长度的用户数据缓存区用以存放解压后的分片解压数据,根据压缩分片个数以及计算机的可运行线程数从而确定并发解压线程,对组包数据进行解压重组,逐一对组包数据中的分片压缩数据进行解压,根据识别分片压缩数据中的压缩包头的信息,从而判断分片压缩数据在组包数据中以及解压后的分片数据在原始用户数据中的位置,例如当对组包数据进行解压时,读取组包数据中第一个分片压缩数据的压缩包头,从而确定该分片压缩数据的原始偏移位置和压缩偏移位置,根据压缩偏移位置确定该分片压缩在组包数据中的偏移位置进行解压后,根据原始偏移数据放置在用户数据缓存区中对应的位置上,完成解压,之后再读取第二个分片压缩数据进行解压,以此类推,直至完成全部的解压重组,生成完整的数据包,该数据包格式根据消息中间件的格式进行设定。
在步骤S2400中,根据消息中间件的格式进行解包,具体消息中间件的格式与消息中间件发送端的格式一致,从而确定能够正确地对解压重组后的数据包进行解包,以获得原始的用户数据。
在步骤S2500中,经过步骤S2400解包后的用户数据通过消息中间件调用系统平台的API接口进行用户数据上传,从而实现系统平台间的数据传输。
通过本发明实施例的数据解压方法,通过基于消息中间件实现系统平台间的数据传输,从而解决了现有数据传输方法在高带宽通道下传输速率低导致速率低和延迟高的的问题,实现了在高带宽通道下低延迟和高速率的数据传输。
在实际应用中,如图7所示,当系统平台需要才进行数据传输时,可以通过消息中间件进行数据传输,中间件发送端启动并根据计算机运行环境进行压缩参数设置,调用系统平台的API接口进行获取用户数据,对获取的用户数据进行数据特征判断,若符合可压缩条件则进行分片压缩生成若干个分片压缩数据,再将分片压缩数据打包成组包数据;若不符合可压缩条件则直接将用户数据根据中间件格式进行打包生成组包数据。将打包后的组包数据通过传输通道传输给中间件接收端进行接收,并且中间件发送端会判断是否存在中间件结束标志,若存在则结束关闭中间件发送端的运行,若不存在则继续调用API接口进行用户数据获取。
中间件接收端启动后通过传输通道接收组包数据,对组包数据进行解压标识的识别,根据识别解压标识以判断组包数据是否需要进行解压重组,若需要则根据识别组包数据的组包包头信息进行解压重组,再根据中间件格式进行解包生成用户数据;若不需要进行解压重组,则直接根据中间件格式进行解包生成用户数据。解包得到用户数据后,中间件接收端通过调用系统平台的API接口上传数据,从而实现系统平台间的数据传输,并且中间件接收端会判断是否存在中间件结束标志,若存在则结束关闭中间件接收端的运行,若不存在则继续通过传输通道进行接收用户数据。
第三方面,本发明实施例还提供了一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器;
其中,所述处理器通过调用所述存储器中存储的计算机程序,用于执行第一方面实施例中的数据压缩方法或第二方面实施例中的数据解压方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本发明第一方面实施例中的数据压缩方法或第二方面实施例中的数据解压方法。处理器通过运行存储在存储器中的非暂态软件程序以及指令,从而实现上述第一方面实施例中的数据压缩方法或第二方面实施例中的数据解压方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储执行上述第一方面实施例中的数据压缩方法或第二方面实施例中的数据解压方法。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述第一方面实施例中的数据压缩方法或第二方面实施例中的数据解压方法所需的非暂态软件程序以及指令存储在存储器中,当被一个或者多个处理器执行时,执行上述第一方面实施例中的数据压缩方法或第二方面实施例中的数据解压方法。
第四方面,本申请实施例还提供了计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于:执行第一方面实施例中的数据压缩方法或第二方面实施例中的数据解压方法;
在一些实施例中,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,被第三方面实施例的电子设备中的一个处理器执行,可使得上述一个或多个处理器执行上述第一方面实施例中的数据压缩方法或第二方面实施例中的数据解压方法。
以上所描述的设备实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所述技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。此外,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
Claims (10)
1.一种数据压缩方法,其特征在于,应用于消息中间件,包括:
设置压缩参数;
获取用户数据,并判断所述用户数据的数据特征是否符合压缩条件;
若符合压缩条件,则进行分片压缩,生成若干个分片压缩数据;
将所述分片压缩数据打包成组包数据进行数据传输。
2.根据权利要求1所述的数据压缩方法,其特征在于,还包括:根据计算机运行环境设置压缩参数;
所述计算机运行环境包括:操作系统位数、计算机L1缓存、传输通道类型、处理器核数;
所述压缩参数包括:压缩字典大小、读写字长、可压缩长度区间、分片个数、可压缩比值。
3.根据权利要求2所述的数据压缩方法,其特征在于,所述数据特征包括:数据长度特征和数据稀疏特征;
所述压缩条件包括:所述数据长度特征在所述可压缩长度区间内并且所述数据稀疏特征大于所述可压缩比值。
4.根据权利要求3所述的数据压缩方法,其特征在于,所述进行分片压缩,包括:
根据所述分片个数切割所述用户数据生成若干个分片数据后,根据所述压缩参数对所述分片数据进行压缩生成分片压缩数据,所述分片压缩数据包括压缩包头。
5.根据权利要求1至4任一所述的数据压缩方法,其特征在于,所述组包数据包括组包包头,通过识别所述组包包头对所述组包数据进行解压,所述组包包头包括:解压标识、压缩分片个数、用户数据字节数和压缩数据字节数。
6.根据权利要求1所述的数据压缩方法,其特征在于,还包括:若不符合压缩条件,则将所述用户数据打包成组包数据进行数据传输。
7.一种数据解压方法,其特征在于,包括:
接收如权利要求1至6任一所述的数据压缩方法压缩得到的组包数据;
识别所述组包数据中组包包头的解压标识,所述解压标识用于判断是否符合解压条件;
根据所述组包包头对所述组包数据进行解压重组生成解压数据,并进行解包生成用户数据并上传。
8.根据权利要求7所述的数据解压方法,其特征在于,还包括:若不符合解压条件则对所述组包数据进行解包生成用户数据。
9.一种电子设备,其特征在于,包括:
至少一个处理器,以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至6任一项所述的数据压缩方法或权利要求7至8任一项所述的数据解压方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至6任一项所述的数据压缩方法或权利要求7至8任一项所述的数据解压方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010305305.9A CN111510155B (zh) | 2020-04-17 | 2020-04-17 | 数据压缩方法、数据解压方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010305305.9A CN111510155B (zh) | 2020-04-17 | 2020-04-17 | 数据压缩方法、数据解压方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111510155A true CN111510155A (zh) | 2020-08-07 |
CN111510155B CN111510155B (zh) | 2023-09-26 |
Family
ID=71864725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010305305.9A Active CN111510155B (zh) | 2020-04-17 | 2020-04-17 | 数据压缩方法、数据解压方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111510155B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597082A (zh) * | 2020-12-18 | 2021-04-02 | 龙芯中科技术股份有限公司 | 总线的数据传输方法及电子设备 |
CN112632129A (zh) * | 2020-12-31 | 2021-04-09 | 联想未来通信科技(重庆)有限公司 | 一种码流数据管理方法、装置及存储介质 |
CN113890897A (zh) * | 2021-11-04 | 2022-01-04 | 中国互联网络信息中心 | 一种报文处理方法和相关装置 |
CN115065732A (zh) * | 2022-06-08 | 2022-09-16 | 珠海格力电器股份有限公司 | 数据传输方法、装置、电子设置及存储介质 |
CN115086453A (zh) * | 2022-07-06 | 2022-09-20 | 中国人民银行清算总中心 | 数据交换方法、装置及系统 |
WO2023071893A1 (zh) * | 2021-10-29 | 2023-05-04 | 深圳智慧林网络科技有限公司 | 一种基于三种模式的数据压缩方法和数据解压方法 |
CN116383896A (zh) * | 2023-06-07 | 2023-07-04 | 中航金网(北京)电子商务有限公司 | 文件完整性校验方法、云平台启动方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120078641A1 (en) * | 2009-06-01 | 2012-03-29 | Huawei Technologies Co., Ltd. | Compression coding and decoding method, coder, decoder, and coding device |
CN102571572A (zh) * | 2011-12-28 | 2012-07-11 | 中国人民解放军国防科学技术大学 | 基于短报文卫星通信的数据传输方法及装置 |
CN108446300A (zh) * | 2018-01-26 | 2018-08-24 | 北京奇虎科技有限公司 | 数据信息的扫描方法及装置 |
-
2020
- 2020-04-17 CN CN202010305305.9A patent/CN111510155B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120078641A1 (en) * | 2009-06-01 | 2012-03-29 | Huawei Technologies Co., Ltd. | Compression coding and decoding method, coder, decoder, and coding device |
CN102571572A (zh) * | 2011-12-28 | 2012-07-11 | 中国人民解放军国防科学技术大学 | 基于短报文卫星通信的数据传输方法及装置 |
CN108446300A (zh) * | 2018-01-26 | 2018-08-24 | 北京奇虎科技有限公司 | 数据信息的扫描方法及装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597082A (zh) * | 2020-12-18 | 2021-04-02 | 龙芯中科技术股份有限公司 | 总线的数据传输方法及电子设备 |
CN112597082B (zh) * | 2020-12-18 | 2023-02-24 | 龙芯中科技术股份有限公司 | 总线的数据传输方法及电子设备 |
CN112632129A (zh) * | 2020-12-31 | 2021-04-09 | 联想未来通信科技(重庆)有限公司 | 一种码流数据管理方法、装置及存储介质 |
CN112632129B (zh) * | 2020-12-31 | 2023-11-21 | 联想未来通信科技(重庆)有限公司 | 一种码流数据管理方法、装置及存储介质 |
WO2023071893A1 (zh) * | 2021-10-29 | 2023-05-04 | 深圳智慧林网络科技有限公司 | 一种基于三种模式的数据压缩方法和数据解压方法 |
CN113890897B (zh) * | 2021-11-04 | 2023-11-17 | 中国互联网络信息中心 | 一种报文处理方法和相关装置 |
CN113890897A (zh) * | 2021-11-04 | 2022-01-04 | 中国互联网络信息中心 | 一种报文处理方法和相关装置 |
CN115065732A (zh) * | 2022-06-08 | 2022-09-16 | 珠海格力电器股份有限公司 | 数据传输方法、装置、电子设置及存储介质 |
CN115065732B (zh) * | 2022-06-08 | 2023-08-11 | 珠海格力电器股份有限公司 | 数据传输方法、装置、电子设置及存储介质 |
CN115086453A (zh) * | 2022-07-06 | 2022-09-20 | 中国人民银行清算总中心 | 数据交换方法、装置及系统 |
CN115086453B (zh) * | 2022-07-06 | 2024-03-26 | 中国人民银行清算总中心 | 数据交换方法、装置及系统 |
CN116383896B (zh) * | 2023-06-07 | 2023-11-03 | 中航金网(北京)电子商务有限公司 | 文件完整性校验方法、云平台启动方法、装置及设备 |
CN116383896A (zh) * | 2023-06-07 | 2023-07-04 | 中航金网(北京)电子商务有限公司 | 文件完整性校验方法、云平台启动方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111510155B (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111510155A (zh) | 数据压缩方法、数据解压方法、电子设备及存储介质 | |
US7356039B1 (en) | Method and apparatus for describing multiple packets to hardware | |
US10817460B2 (en) | RDMA data sending and receiving methods, electronic device, and readable storage medium | |
US20130198152A1 (en) | Systems and methods for data compression | |
CN101667843B (zh) | 嵌入式系统的数据压缩、及解压缩方法与装置 | |
CN102439942B (zh) | 用于支持具有可变帧大小的链路上的较高数据速率的设备和方法 | |
US20190349296A1 (en) | Data transmission method, apparatus, transmitting end, receiving end and system | |
CN108966283B (zh) | 一种遥测数据压缩传输方法、装置和计算机可读介质 | |
CN113179148A (zh) | 一种北斗短报文多包传输分解与组合的实现方法 | |
CN105357229B (zh) | 一种视频处理方法及装置 | |
CN110086703B (zh) | 一种基于tcp协议的消息传输方法及装置 | |
CN112565105A (zh) | 一种降低时间敏感帧转发时延的方法、装置及设备 | |
CN112887054B (zh) | 一种基于长度转义的数据流封包方法、解包方法及系统 | |
CN116614445A (zh) | 一种数据传输方法及其相关装置 | |
CN115834027B (zh) | 一种消息填充方法、装置、设备及计算机可读存储介质 | |
CN111198855A (zh) | 日志数据的处理方法和装置 | |
US20160126976A1 (en) | Methods, systems, and computer readable media for optimized message decoding | |
US11750211B2 (en) | Encoding method and apparatus, storage medium, and computer device | |
CN112148694B (zh) | 一种用于电子设备的数据压缩、数据解压方法及电子设备 | |
CN108737392B (zh) | 一种终端上报数据的压缩方法及发送端和接收端 | |
EP3541041A1 (en) | Method and apparatus for processing message data | |
CN111339020A (zh) | 一种串口数据的收发方法 | |
CN114760166B (zh) | 一种隧道报文的处理方法和装置 | |
CN116996490A (zh) | 一种图像数据传输方法、装置、设备及介质 | |
WO2022222693A1 (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 |