CN109639285A - 一种基于有限块排序压缩提高bzip2压缩算法速度的方法 - Google Patents
一种基于有限块排序压缩提高bzip2压缩算法速度的方法 Download PDFInfo
- Publication number
- CN109639285A CN109639285A CN201811493720.0A CN201811493720A CN109639285A CN 109639285 A CN109639285 A CN 109639285A CN 201811493720 A CN201811493720 A CN 201811493720A CN 109639285 A CN109639285 A CN 109639285A
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- context
- characters
- algorithm
- 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
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
-
- 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/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods or arrangements to increase the throughput
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及一种基于有限块排序压缩提高BZIP2压缩算法速度的方法,其技术特点是:压缩处理方法:⑴使用输入数据生成循环移位矩阵:⑵对循环移位矩阵进行排序;⑶保存新矩阵的最后一列作为输出,同时保存原始输入数据的最后2个字符,以及这2个字符所对应的上下文,加入输出,作为还原过程的启动数据;解压缩处理方法为:⑴还原原始数据的最后2个字符;⑵使用最近还原的2个字符组成一个新的上下文,还原一个新的字符,放置在已还原字符之前,并处理新生成上下文的计数;⑶重复处理直至原始数据全部还原。本发明设计合理,在有限度损失压缩率的条件下,显著提升压缩算法执行速度,提升压缩算法性价比,可广泛适合用于数据传输和备份场景。
Description
技术领域
本发明属于数据库压缩技术领域,尤其是一种基于有限块排序压缩提高BZIP2压缩算法速度的方法。
背景技术
由于目前数据库应用处理的数据量越来越大,因此,在数据的传输、备份过程中,对数据压缩算法的应用提出了更加严苛的需求。一方面,压缩算法要保证数据压缩率,才能处理数据库应用产生的海量数据,另一方面,又要保证压缩算法的执行速度,才能让压缩过程不会成为数据传输、备份过程中的瓶颈。
BZIP2算法是一个基于Burrows-Wheeler变换的无损压缩软件,其特点是拥有较高的数据压缩率,但是执行速度较慢。
发明内容
本发明的目的在于克服现有技术的不足,提出一种设计合理且执行效率高的基于有限块排序压缩提高BZIP2压缩算法速度的方法。
本发明解决其技术问题是采取以下技术方案实现的:
一种基于有限块排序压缩提高BZIP2压缩算法速度的方法,包括压缩处理方法和解压缩处理方法,所述压缩处理方法包括以下步骤:
步骤1:使用行程编码算法处理输入数据;
步骤2:使用压缩算法处理步骤1的输出数据;
步骤3:使用MTF编码算法对步骤2的输出数据进行编码;
步骤4:使用多表哈夫曼编码算法对步骤3的输出数据进行编码;
所述解压缩处理方法包括以下步骤,
步骤1:使用多表哈夫曼编码算法解码输入数据;
步骤2:使用MTF编码算法解码步骤1的输出数据;
步骤3:使用压缩算法还原步骤2的输出数据;
步骤4:使用行程编码解码步骤3的输出数据;
所述压缩处理方法步骤2的具体实现方法包括以下步骤:
⑴使用输入数据生成循环移位矩阵:
⑵选择上下文长度为2,以每一行的前2个字符作为上下文,对步骤⑴产生的循环移位矩阵的所有行进行排序,排序后生成新矩阵;
⑶保存步骤⑵产生的新矩阵的最后一列作为输出,同时保存原始输入数据的最后2个字符,以及这2个字符所对应的上下文,加入输出,作为还原过程的启动数据;
所述解压缩处理方法步骤3的具体实现方法包括以下步骤:
⑴还原原始数据的最后2个字符,处理以相关上下文计数;
⑵使用最近还原的2个字符组成一个新的上下文,还原一个新的字符,放置在已还原字符之前,并处理新生成上下文的计数;
⑶不断重复步骤⑵,直至原始数据全部还原。
所述循环移位矩阵通过以下方法得到:原数据在矩阵的最后一行,矩阵的其他的每一行均是由其下一行进行一次循环右移得到的。
本发明的优点和积极效果是:
本发明充分利用了有限块排序压缩运算复杂度低的特点,在有限度损失压缩率的条件下,显著提升压缩算法执行速度,同时,在选择合适的上下文长度之后,还可以降低算法的实现难度进而提升压缩算法性价比,当针对数据库产生的数据时,压缩降低幅度十分有限,而运行速度将会大幅提升,可广泛适合用于数据传输和备份场景。
附图说明
图1是标准BZIP2压缩/解压缩流程图;
图2是循环移位矩阵结构图;
图3是本发明有限块排序压缩流程图。
具体实施方式
以下结合附图对本发明实施例做进一步详述。
本发明的设计思想为:使用有限块排序替换了标准BZIP2压缩算法中的块排序压缩环节。块排序压缩是BZIP2压缩算法的核心环节,它并不实际压缩数据大小,而是一种数据变换方法,变换后的数据在压缩算法的后续编码环节中,可以产生压缩率更高数据。有限块排序压缩是标准的块排序压缩的一个变种,从技术上看,有限块排序压缩仅使用有限的上下文来进行块排序,而非标准变换中的完全块排序,降低了排序过程的运算复杂度。有限块排序压缩在变换开始时约定了产生循环移位矩阵的方法,并在变换结束时,保留了两个启动字符及其相关上下文,以此来保证整个变换可逆。有限块排序压缩的作用与标准变换相似,当针对数据库产生的数据时,压缩降低幅度十分有限,而运行速度将会大幅提升。
如图1所示,标准BZIP2算法的压缩包括以下步骤:
步骤1:使用行程编码算法处理输入数据。
步骤2:使用块排序压缩算法处理步骤1的输出数据。
步骤3:使用MTF编码算法对步骤2的输出数据进行编码。
步骤4:使用多表哈夫曼编码算法对步骤3的输出数据进行编码。
解压缩是压缩的逆过程,包括以下步骤,
步骤1:使用多表哈夫曼编码算法解码输入数据。
步骤2:使用MTF编码算法解码步骤1的输出数据。
步骤3:使用块排序压缩算法还原步骤2的输出数据。
步骤4:使用行程编码解码步骤3的输出数据。
基于上述设计思想和标准标准BZIP2算法,本发明是对压缩过程的步骤2及解压缩过程的步骤3进行改进,即使用有限的块排序压缩替换掉原有的变换,如图3所示。
有限块排序压缩在压缩过程的步骤2处理方法为:
(1)使用输入数据生成循环移位矩阵(如图2所示),并约定,原数据在矩阵的最后一行,矩阵的其他的每一行均是由其下一行进行一次循环右移得到的。
(2)选择上下文长度为2,即以每一行的前两个字符作为上下文,对步骤(1)产生矩阵的所有行进行排序,排序后生成新矩阵。
(3)保存步骤(2)产生的新矩阵的最后一列作为输出。同时保存原始输入数据的最后两个字符,以及这两个字符所对应的上下文,加入输出,作为还原过程的启动数据。
有限块排序压缩在解压缩过程的步骤3处理方法为:
(1)还原原始数据的最后两个字符,处理以相关上下文计数。
(2)使用最近还原的两个字符组成一个新的上下文,还原一个新的字符,放置在已还原字符之前,并处理新生成上下文的计数。
(3)不断重复步骤(2),直至原始数据全部还原。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
Claims (2)
1.一种基于有限块排序压缩提高BZIP2压缩算法速度的方法,包括压缩处理方法和解压缩处理方法,所述压缩处理方法包括以下步骤:
步骤1:使用行程编码算法处理输入数据;
步骤2:使用压缩算法处理步骤1的输出数据;
步骤3:使用MTF编码算法对步骤2的输出数据进行编码;
步骤4:使用多表哈夫曼编码算法对步骤3的输出数据进行编码;
所述解压缩处理方法包括以下步骤,
步骤1:使用多表哈夫曼编码算法解码输入数据;
步骤2:使用MTF编码算法解码步骤1的输出数据;
步骤3:使用压缩算法还原步骤2的输出数据;
步骤4:使用行程编码解码步骤3的输出数据;
其特征在于:
所述压缩处理方法步骤2的具体实现方法包括以下步骤:
⑴使用输入数据生成循环移位矩阵:
⑵选择上下文长度为2,以每一行的前2个字符作为上下文,对步骤⑴产生的循环移位矩阵的所有行进行排序,排序后生成新矩阵;
⑶保存步骤⑵产生的新矩阵的最后一列作为输出,同时保存原始输入数据的最后2个字符,以及这2个字符所对应的上下文,加入输出,作为还原过程的启动数据;
所述解压缩处理方法步骤3的具体实现方法包括以下步骤:
⑴还原原始数据的最后2个字符,处理以相关上下文计数;
⑵使用最近还原的2个字符组成一个新的上下文,还原一个新的字符,放置在已还原字符之前,并处理新生成上下文的计数;
⑶不断重复步骤⑵,直至原始数据全部还原。
2.根据权利要求1所述的一种基于有限块排序压缩提高BZIP2压缩算法速度的方法,其特征在于:所述循环移位矩阵通过以下方法得到:原数据在矩阵的最后一行,矩阵的其他的每一行均是由其下一行进行一次循环右移得到的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811493720.0A CN109639285B (zh) | 2018-12-05 | 2018-12-05 | 一种基于有限块排序压缩提高bzip2压缩算法速度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811493720.0A CN109639285B (zh) | 2018-12-05 | 2018-12-05 | 一种基于有限块排序压缩提高bzip2压缩算法速度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109639285A true CN109639285A (zh) | 2019-04-16 |
CN109639285B CN109639285B (zh) | 2023-06-13 |
Family
ID=66071694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811493720.0A Active CN109639285B (zh) | 2018-12-05 | 2018-12-05 | 一种基于有限块排序压缩提高bzip2压缩算法速度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109639285B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5717393A (en) * | 1996-02-08 | 1998-02-10 | Fujitsu Limited | Apparatus for data compression and data decompression |
US20010051941A1 (en) * | 2000-06-13 | 2001-12-13 | Motonobu Tonomura | Searching method of block sorting lossless compressed data, and encoding method suitable for searching data in block sorting lossless compressed data |
US7254689B1 (en) * | 2004-07-15 | 2007-08-07 | Google Inc. | Decompression of block-sorted data |
CN101478311A (zh) * | 2009-01-22 | 2009-07-08 | 浙江大学 | bzip2压缩算法硬件加速实现方法 |
US8010510B1 (en) * | 2007-07-03 | 2011-08-30 | Google Inc. | Method and system for tokenized stream compression |
US20120130965A1 (en) * | 2009-07-17 | 2012-05-24 | Yun Sik Oh | Data compression method |
US20140205199A1 (en) * | 2013-01-23 | 2014-07-24 | Qamarul Islam | Storage Area and Temporal Based Optimized Run Length Codec For Classic JPEG Image Compression (SAT-BORL CODEC) |
CN105933009A (zh) * | 2016-05-19 | 2016-09-07 | 浪潮(北京)电子信息产业有限公司 | 数据压缩方法及系统、解压缩方法及系统 |
CN106936439A (zh) * | 2016-09-20 | 2017-07-07 | 南开大学 | 一种通用的基于分块排序思想的压缩预处理方法及应用 |
US20180175890A1 (en) * | 2016-12-20 | 2018-06-21 | Hyperstone Gmbh | Methods and Apparatus for Error Correction Coding Based on Data Compression |
CN108829930A (zh) * | 2018-05-10 | 2018-11-16 | 广东省智能制造研究所 | 三维数字化工艺设计mbd模型的轻量化方法 |
-
2018
- 2018-12-05 CN CN201811493720.0A patent/CN109639285B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5717393A (en) * | 1996-02-08 | 1998-02-10 | Fujitsu Limited | Apparatus for data compression and data decompression |
US20010051941A1 (en) * | 2000-06-13 | 2001-12-13 | Motonobu Tonomura | Searching method of block sorting lossless compressed data, and encoding method suitable for searching data in block sorting lossless compressed data |
US7254689B1 (en) * | 2004-07-15 | 2007-08-07 | Google Inc. | Decompression of block-sorted data |
US8010510B1 (en) * | 2007-07-03 | 2011-08-30 | Google Inc. | Method and system for tokenized stream compression |
CN101478311A (zh) * | 2009-01-22 | 2009-07-08 | 浙江大学 | bzip2压缩算法硬件加速实现方法 |
US20120130965A1 (en) * | 2009-07-17 | 2012-05-24 | Yun Sik Oh | Data compression method |
US20140205199A1 (en) * | 2013-01-23 | 2014-07-24 | Qamarul Islam | Storage Area and Temporal Based Optimized Run Length Codec For Classic JPEG Image Compression (SAT-BORL CODEC) |
CN105933009A (zh) * | 2016-05-19 | 2016-09-07 | 浪潮(北京)电子信息产业有限公司 | 数据压缩方法及系统、解压缩方法及系统 |
CN106936439A (zh) * | 2016-09-20 | 2017-07-07 | 南开大学 | 一种通用的基于分块排序思想的压缩预处理方法及应用 |
US20180175890A1 (en) * | 2016-12-20 | 2018-06-21 | Hyperstone Gmbh | Methods and Apparatus for Error Correction Coding Based on Data Compression |
CN108829930A (zh) * | 2018-05-10 | 2018-11-16 | 广东省智能制造研究所 | 三维数字化工艺设计mbd模型的轻量化方法 |
Non-Patent Citations (2)
Title |
---|
李冰等: ""一种基于后缀排序快速实现Burrows-Wheeler变换的方法"", 《电子与信息学报》 * |
李冰等: ""一种基于后缀排序快速实现Burrows-Wheeler变换的方法"", 《电子与信息学报》, vol. 37, no. 2, 28 February 2015 (2015-02-28), pages 504 - 508 * |
Also Published As
Publication number | Publication date |
---|---|
CN109639285B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100517979C (zh) | 一种数据压缩及解压缩方法 | |
CN106407285B (zh) | 一种基于rle和lzw的优化比特文件压缩与解压缩方法 | |
CN110021369B (zh) | 基因测序数据压缩解压方法、系统及计算机可读介质 | |
CN104168085B (zh) | 一种基于冗余熵变换的数据压缩方法 | |
CN110518917B (zh) | 基于Huffman编码的LZW数据压缩方法及系统 | |
WO2010044100A1 (en) | Lossless compression | |
CN116016606B (zh) | 一种基于智慧云的污水处理运维数据高效管理系统 | |
CN111510152A (zh) | 一种声波测井数据的压缩及解压缩方法 | |
CN103702133A (zh) | 一种图像压缩展示方法及其装置 | |
CN102014283A (zh) | 一阶差分前缀表示的图像数据无损压缩的编码方法 | |
JP2003524983A (ja) | 複数コーダを用いる最適化ロスレス圧縮のための方法及び装置 | |
CN114726926A (zh) | 一种用于拉普拉斯信源的自适应变长编码方法 | |
CN110021368B (zh) | 比对型基因测序数据压缩方法、系统及计算机可读介质 | |
CN113612483A (zh) | 一种工业实时数据无损编码压缩方法 | |
WO2024061316A1 (zh) | 数据压缩的方法、数据解压缩的方法和相关设备 | |
CN109639285A (zh) | 一种基于有限块排序压缩提高bzip2压缩算法速度的方法 | |
CN105163130A (zh) | 一种基于离散Tchebichef正交多项式的图像无损压缩方法 | |
CN102932001B (zh) | 运动捕获数据压缩、解压缩方法 | |
CN104682966B (zh) | 列表数据的无损压缩方法 | |
JP2010258532A (ja) | ビット長を符号に変換する回路及び方法 | |
CN104301726A (zh) | 一种图像无损压缩与解压缩的方法 | |
CN105007083A (zh) | 一种lz77压缩算法输出结果的存储方法 | |
CN106559085A (zh) | 一种范式哈夫曼解码方法及其装置 | |
CN102891730A (zh) | 基于bcd码卫星短报文的编码方法和装置 | |
WO2014000443A1 (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 |