CN109639285B - 一种基于有限块排序压缩提高bzip2压缩算法速度的方法 - Google Patents
一种基于有限块排序压缩提高bzip2压缩算法速度的方法 Download PDFInfo
- Publication number
- CN109639285B CN109639285B CN201811493720.0A CN201811493720A CN109639285B CN 109639285 B CN109639285 B CN 109639285B CN 201811493720 A CN201811493720 A CN 201811493720A CN 109639285 B CN109639285 B CN 109639285B
- Authority
- CN
- China
- Prior art keywords
- compression
- data
- characters
- algorithm
- steps
- 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
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
-
- 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个字符作为上下文,对步骤⑴产生的循环移位矩阵的所有行进行排序,排序后生成新矩阵;其中,使用有限块排序替换了标准BZIP2压缩算法中的块排序压缩环节;有限块排序压缩仅使用有限的上下文来进行块排序;有限块排序压缩在变换开始时约定了产生循环移位矩阵的方法,并在变换结束时,保留了两个启动字符及其相关上下文,以此来保证整个变换可逆;
⑶保存步骤⑵产生的新矩阵的最后一列作为输出,同时保存原始输入数据的最后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 CN109639285A (zh) | 2019-04-16 |
CN109639285B true 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 (1)
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 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001357048A (ja) * | 2000-06-13 | 2001-12-26 | Hitachi Ltd | ブロックソート圧縮データの検索方法、および検索に適したブロックソート圧縮法の符号化方法 |
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 |
CN101478311B (zh) * | 2009-01-22 | 2010-10-20 | 浙江大学 | bzip2压缩算法硬件加速实现方法 |
KR101049699B1 (ko) * | 2009-07-17 | 2011-07-15 | (주)이스트소프트 | 데이터의 압축방법 |
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) |
CN105933009B (zh) * | 2016-05-19 | 2020-03-31 | 浪潮(北京)电子信息产业有限公司 | 数据压缩方法及系统、解压缩方法及系统 |
CN106936439A (zh) * | 2016-09-20 | 2017-07-07 | 南开大学 | 一种通用的基于分块排序思想的压缩预处理方法及应用 |
DE102017130591B4 (de) * | 2016-12-20 | 2022-05-25 | Hyperstone Gmbh | Verfahren und Vorrichtung zur Fehlerkorrekturkodierung auf Basis einer Datenkomprimierung |
CN108829930B (zh) * | 2018-05-10 | 2022-08-19 | 广东省智能制造研究所 | 三维数字化工艺设计mbd模型的轻量化方法 |
-
2018
- 2018-12-05 CN CN201811493720.0A patent/CN109639285B/zh active Active
Patent Citations (1)
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 |
Also Published As
Publication number | Publication date |
---|---|
CN109639285A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100517979C (zh) | 一种数据压缩及解压缩方法 | |
US9454552B2 (en) | Entropy coding and decoding using polar codes | |
CN106407285B (zh) | 一种基于rle和lzw的优化比特文件压缩与解压缩方法 | |
WO2010044100A1 (en) | Lossless compression | |
CN110021369B (zh) | 基因测序数据压缩解压方法、系统及计算机可读介质 | |
CN110518917A (zh) | 基于Huffman编码的LZW数据压缩方法及系统 | |
CN106506007A (zh) | 一种无损数据压缩和解压缩装置及其方法 | |
CN104467868A (zh) | 中文文本压缩方法 | |
CN101534124A (zh) | 一种用于短小自然语言的压缩算法 | |
JP2003524983A (ja) | 複数コーダを用いる最適化ロスレス圧縮のための方法及び装置 | |
CN103731154B (zh) | 一种基于语义分析的数据压缩算法 | |
CN109639285B (zh) | 一种基于有限块排序压缩提高bzip2压缩算法速度的方法 | |
CN113630125A (zh) | 数据压缩、编码解压缩方法、装置、电子设备及存储介质 | |
CN104682966B (zh) | 列表数据的无损压缩方法 | |
US11870467B2 (en) | Data compression method and apparatus, and computer readable storage medium | |
US8018359B2 (en) | Conversion of bit lengths into codes | |
CN104301726A (zh) | 一种图像无损压缩与解压缩的方法 | |
CN102651795B (zh) | 游长缩减的二元序列压缩编码方法 | |
CN105007083A (zh) | 一种lz77压缩算法输出结果的存储方法 | |
CN115913246A (zh) | 基于自适应瞬时熵的无损数据压缩算法 | |
CN106559085A (zh) | 一种范式哈夫曼解码方法及其装置 | |
CN114337682A (zh) | 一种Huffman编码压缩装置 | |
TWI498891B (zh) | 解壓縮電路與相關的壓縮方法與解壓縮方法 | |
JP2005521324A (ja) | 損失のないデータの圧縮および圧縮解除方法および装置 | |
CN114665887B (zh) | 一种基于整体压缩的json字符串数据压缩方法 |
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 |