一种数据压缩方法、装置、电子设备及计算机程序产品与流程

文档序号:35679979发布日期:2023-10-08 16:15阅读:29来源:国知局
一种数据压缩方法、装置、电子设备及计算机程序产品与流程

本公开属于数据处理,具体涉及一种数据压缩方法、装置、电子设备及计算机程序产品。


背景技术:

1、大整型数指的是大于预设值的整型数,计算机系统一般要用4个或以上的字节来表示大整型数。

2、计算机系统往往需要传输或存储大量大整型数。如服务器端和客户端做数据完整性校验时,客户端需要传输所有的数字id到服务器端去校验数字id是否与服务器端预存数字一致。这些数字id基本都是大整型数,当上万或更多的所述数字id进行明文数字传输或存储时,需传输或存储的数据量非常大,消耗资源非常多。


技术实现思路

1、本公开实施例提出了一种数据压缩方案,以解决巨量大整型数传输或存储时消耗资源过多的问题。

2、本公开实施例的第一方面提供了一种数据压缩方法,包括:

3、获取数据中的大整型数,将所述大整型数按大小在队列中排序,其中,所述大整型数是大于预设值的整型数;

4、判断所述大整型数是否连续,当不连续时,确定所述大整型数与所述队列中前一个大整型数之间的增量,基于所述大整型数是否连续以及所述增量大小对所述大整型数或所述增量基于预设基数集合进行进制转化,形成第一字符串;

5、对每个所述第一字符串用压缩软件压缩形成第二字符串。

6、在一些实施例中,所述判断所述大整型数是否连续包括:

7、在所述队列中,判断所述大整型数是否处于连续数子队列,如处于,则所述大整型数是连续的,其中,在所述连续数子队列中,任意两个相邻的大整型数都是连续的。

8、在一些实施例中,所述判断所述大整型数是否处于连续数子队列包括:

9、在所述队列中,从队尾的第二个大整型数开始,如果所述待大整型数和所述大整型数的前一个以及后一个大整型数都连续,则所述待大整型数以及所述大整型数的前一个和后一个大整型数处于一个连续数子队列;

10、如果所述大整型数与所述大整型数的前一个大整型数连续并且所述前一个大整型数处于一个连续数子队列,则所述大整型数也处于所述连续数子队列。

11、在一些实施例中,所述对大整型数基于预设基数集合进行进制转化,包括:

12、获取所述预设基数集合中基数的个数x,将所述大整型数y表示为:

13、

14、其中,i、n为整数,a为所述预设基数集合中的基数。

15、在一些实施例中,所述基于所述大整型数是否连续以及所述增量大小对所述大整型数或所述增量基于预设基数集合进行进制转化包括:

16、如果所述大整型数是连续的,基于第一基数集合对所述大整型数处于的连续数子队列的队首大整型数进行进制转化,其中,所述第一基数集合由数字0-9、大写字母a-z和小写字母a—z组成。

17、在一些实施例中,所述基于所述大整型数是否连续以及所述增量大小对所述大整型数或所述增量基于预设基数集合进行进制转化包括:

18、如果所述待大整型数是不连续的,并且所述大整型数与所述队列中前一个大整型数之间的增量小于预设值,则基于第二基数集合对所述增量进行进制转化,其中,所述第二基数集合由大写字母a-z组成。

19、在一些实施例中,所述基于所述大整型数是否连续以及所述增量大小对所述大整型数或所述增量基于预设基数集合进行进制转化包括:

20、如果所述大整型数是不连续的,并且所述大整型数与所述队列中前一个大整型数之间的增量大于预设值,则基于第三基数集合对所述大整型数进行进制转化,其中,所述第三基数集合由数字0-9和小写字母a—z组成。

21、本公开实施例的第二方面提供了一种数据压缩装置,包括:

22、排序模块,用于获取数据中的大整型数,将所述大整型数按大小在队列中排序,其中,所述大整型数是大于预设值的整型数;

23、编码模块,用于判断所述大整型数是否连续,当不连续时,确定所述大整型数与所述队列中前一个大整型数之间的增量,基于所述大整型数是否连续以及所述增量大小对所述大整型数或所述增量基于预设基数集合进行进制转化,形成第一字符串;

24、压缩模块,用于对每个所述第一字符串用压缩软件压缩形成第二字符串。

25、本公开实施例的第三方面提供了一种电子设备,包括存储器和处理器,

26、所述存储器,用于存储计算机程序;

27、所述处理器,用于当执行所述计算机程序时,实现本公开第一方面所述的方法。

28、本公开实施例的第四方面提供了一种计算机程序产品,包括计算机程序、指令,当所述计算机程序、指令被处理器执行时,实现本公开第一方面所述的方法。

29、综上所述,本公开各实施例提供的数据压缩方法、装置、电子设备和计算机程序产品,通过基于每个大整型数与相邻大整型数的增量大小,选择最合适的基数集合对所述大整型数或增量进行进制转化,从而减少表示每个大整型数的字节数,达到减少传输或存储所需资源的目的,并通过基于大整型数的连续性,只对由连续大整型数组成的队列的队首大整型数进行进制转化,其他大大整型数可以由队首大整型数以及在所述队列的序位确定,从而整体上减少了表示具有连续性的若干大整型数的字节数。再对进制转化形成的字符串进一步压缩,从而进一步减少传输或存储所需的数据量。



技术特征:

1.一种数据压缩方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述判断所述大整型数是否连续包括:

3.根据权利要求2所述的方法,其特征在于,所述判断所述大整型数是否处于连续数子队列包括:

4.根据权利要求1所述的方法,其特征在于,所述对大整型数基于预设基数集合进行进制转化,包括:

5.根据权利要求1所述的方法,其特征在于,所述基于所述大整型数是否连续以及所述增量大小对所述大整型数或所述增量基于预设基数集合进行进制转化包括:

6.根据权利要求1所述的方法,其特征在于,所述基于所述大整型数是否连续以及所述增量大小对所述大整型数或所述增量基于预设基数集合进行进制转化包括:

7.根据权利要求1所述的方法,其特征在于,所述基于所述大整型数是否连续以及所述增量大小对所述大整型数或所述增量基于预设基数集合进行进制转化包括:

8.一种数据压缩装置,其特征在于,包括:

9.一种电子设备,包括存储器和处理器,

10.一种计算机程序产品,包括计算机程序、指令,当所述计算机程序、指令被处理器执行时,实现权利要求1-7任一项所述的方法。


技术总结
本公开属于数据处理技术领域,具体涉及一种数据压缩方法、装置、电子设备及计算机程序产品。所述方法包括:获取数据中的大整型数,将所述大整型数按大小在队列中排序,其中,所述大整型数是大于预设值的整型数;判断所述大整型数是否连续,当不连续时,确定所述大整型数与所述队列中前一个大整型数之间的增量,基于所述大整型数是否连续以及所述增量大小对所述大整型数或所述增量基于预设基数集合进行进制转化,形成第一字符串;对每个所述第一字符串用压缩软件压缩形成第二字符串。本公开可以减少传输或存储海量大整型数时所需的资源。

技术研发人员:张凯,杨旸
受保护的技术使用者:光控特斯联(上海)信息科技有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1