CN109639285B - 一种基于有限块排序压缩提高bzip2压缩算法速度的方法 - Google Patents

一种基于有限块排序压缩提高bzip2压缩算法速度的方法 Download PDF

Info

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
Application number
CN201811493720.0A
Other languages
English (en)
Other versions
CN109639285A (zh
Inventor
杨海峰
廉小伟
付蓉洁
夏旭东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dbsec Technology Co ltd
Original Assignee
Beijing Dbsec Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dbsec Technology Co ltd filed Critical Beijing Dbsec Technology Co ltd
Priority to CN201811493720.0A priority Critical patent/CN109639285B/zh
Publication of CN109639285A publication Critical patent/CN109639285A/zh
Application granted granted Critical
Publication of CN109639285B publication Critical patent/CN109639285B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods 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压缩算法速度的方法。
背景技术
由于目前数据库应用处理的数据量越来越大,因此,在数据的传输、备份过程中,对数据压缩算法的应用提出了更加严苛的需求。一方面,压缩算法要保证数据压缩率,才能处理数据库应用产生的海量数据,另一方面,又要保证压缩算法的执行速度,才能让压缩过程不会成为数据传输、备份过程中的瓶颈。
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压缩算法速度的方法,其特征在于:所述循环移位矩阵通过以下方法得到:原数据在矩阵的最后一行,矩阵的其他的每一行均是由其下一行进行一次循环右移得到的。
CN201811493720.0A 2018-12-05 2018-12-05 一种基于有限块排序压缩提高bzip2压缩算法速度的方法 Active CN109639285B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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模型的轻量化方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
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