CN107888197A - 一种数据压缩方法和装置 - Google Patents
一种数据压缩方法和装置 Download PDFInfo
- Publication number
- CN107888197A CN107888197A CN201711049408.8A CN201711049408A CN107888197A CN 107888197 A CN107888197 A CN 107888197A CN 201711049408 A CN201711049408 A CN 201711049408A CN 107888197 A CN107888197 A CN 107888197A
- Authority
- CN
- China
- Prior art keywords
- compression algorithm
- data
- information
- compression
- matching
- 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
- 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/3062—Compressive sampling or sensing
-
- 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/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- 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/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明实施例提供了一种数据压缩方法和装置,其中,所述方法包括:从第一压缩数据中提取特征信息,其中,所述第一压缩数据是采用第一压缩算法对初始数据进行压缩得到的;依据所述特征信息构造中间数据,其中,所述中间数据包括:未匹配字段、匹配偏移量和匹配长度;采用第二压缩算法对所述中间数据进行压缩;进而本发明实施例能够利用第二压缩算法对第一压缩数据进行压缩,省略了将第一压缩数据的解压的过程,从而节约了将第一压缩数据转换为第二压缩数据的时间,提高了数据压缩的效率。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据压缩方法和装置。
背景技术
随着信息技术的快速发展,数据量不断的增加,对数据的存储效率的需求也不断提高;为了节约存储成本,尽可能在有限的存储空间内存放较多的数据,通常会将数据压缩后进行存储,以减小数据占用的空间。
其中,存储领域常用的压缩算法分为两类,第一类是压缩率相对较低但性能相对较高的算法如Lz4算法,可称为初级压缩算法,第二类是压缩率相对较高而性能相对较低的算法如Brotli算法,可称为深度压缩;通常,对经常被访问的数据采用初级压缩算法进行压缩并存储在对应的区域A,而对于不经常被访问的数据采用深度压缩算法进行压缩并存储在对应的区域B。
而在数据生命周期中,同一数据在不同阶段的访问频率是不同的,例如,区域A中一份经常被访问数据在经过一段时间后,其访问频率大大降低,则成为不经常被访问的数据;此时可将区域A中的该数据采用初级压缩算法对应的解压算法进行解压,然后再采用深度压缩算法对采用初级压缩算法对应的解压算法进行解压得到的数据进行压缩,得到压缩率相对高的数据并存储在区域B中;因此,在将采用初级压缩算法压缩的压缩数据,转换为深度压缩算法压缩对应的压缩数据时,需要经过解压和压缩两个过程,压缩效率低。
发明内容
本发明实施例所要解决的技术问题是提供一种数据压缩方法,以提高数据压缩的效率。
相应的,本发明实施例还提供了一种数据压缩装置,用以保证上述方法的实现及应用。
为了实现上述目的,本发明公开了如下技术方案:
第一方面,提供一种数据压缩方法,该方法包括:在对第一压缩数据进行压缩时,从第一压缩数据中提取特征信息,然后依据提取的特征信息构造中间数据,再采用第二压缩算法对构造的中间数据进行压缩,得到第二压缩数据;进而直接利用第二压缩算法对第一压缩数据进行压缩,相比于现有技术省略了对第一压缩数据的解压的过程,从而节约了将第一压缩数据转换为第二压缩数据的时间,提高了数据压缩的效率。
结合第一方面,在第一方面的第一种可能的实现方式中,所述第一压缩数据包括元组信息,所述元组信息由未匹配字段的编码字段、匹配偏移量的编码字段和长度的编码字段组成;在从第一压缩数据中提取特征信息的过程中,从元组信息的未匹配字段的编码字段中提取字段信息、从元组信息的匹配偏移量的编码字段提取偏移量信息、以及从元组信息的长度的编码字段提取长度信息,即所述特征信息可包括字段信息、偏移量信息和长度信息;进而从第一压缩数据的元组信息中直接提取特征信息,提高了特征信息提取效率。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述中间数据包括未匹配字段、匹配偏移量和匹配长度,可采用如下方式构造中间数据:采用所述字段信息构造未匹配字段,采用所述偏移量信息构造匹配偏移量,以及采用所述长度信息构造匹配度。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,当所述第一压缩数据包括至少两组元组信息时,所述特征信息也多于一组,则可分别采用如下方法构造未匹配字段、匹配偏移量和匹配长度:将至少两组元组信息中的字段信息进行拼接得到所述未匹配字段;将至少两组元组信息中的偏移量信息进行拼接得到所述匹配偏移量;将至少两组元组信息中的长度信息进行拼接得到所述匹配长度。
结合第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现方式中,采用如下方法生成第二压缩数据:采用所述第二压缩算法分别对所述未匹配字段、所述匹配偏移量和所述匹配长度进行编码,得到第二压缩数据;进而通过对中间数据的编码,将第一压缩数据压缩为第二压缩数据,实现了对第一压缩数据的压缩。
结合第一方面至第一方面的第四种可能的实现方式中的任一方式,在第一方面的第五种可能实现的方式中,所述第二压缩算法包括前级压缩算法和后级压缩算法,其中,所述前级压缩算法的压缩原理与第一压缩算法的压缩原理相同,在采用第二压缩算法对所述中间数据进行压缩得到第二压缩数据后,所述的方法还包括:检测到第二压缩数据被访问后,采用所述后级压缩算法对应的解压算法对所述第二压缩数据进行解压,得到中间数数据;采用所述前级压缩算法对应的解压算法对所述中间数据进行解压,得到初始数据;即在将第一压缩数据进行压缩后,可采用第二压缩算法对应的解压算法进行解压,得到初始数据。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述第一压缩算法为字典压缩算法,所述第二压缩算法的前级压缩算法为所述字典压缩算法,所述第二压缩算法的后级压缩算法为熵编码。
结合第一方面至第一方面的第四种可能的实现方式中的任一方式,在第一方面的第七种可能实现的方式中,所述第一压缩算法的压缩率低于所述第二压缩算法的压缩率,即可通过对第一压缩数据进行压缩,得到压缩率更高的压缩数据。
第二方面,提供一种数据压缩装置,所述装置包括多个模块,用于执行上述第一方面至第一方面的第七种可能的实现方式中的任一项所提供的数据压缩方案。
第三方面,提供一种电子设备,所述电子设备包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行上述第一方面至第一方面的第七种可能的实现方式中的任一项所提供的数据压缩方法。
第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述第一方面至第一方面的第七种可能的实现方式中的任一项所提供的数据压缩方法。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例在对第一压缩数据进行压缩时,无需对第一压缩数据进行解压后再使用第二压缩算法压缩,而是从第一压缩数据中提取特征信息,依据所述特征信息构造中间数据,采用第二压缩算法对所述中间数据进行压缩,省略了对第一压缩数据的解压的过程,从而节约了将第一压缩数据转换为第二压缩数据的时间,提高了数据压缩的效率。
附图说明
图1是本发明的一种数据压缩方法实施例的步骤流程图;
图2是本发明的一种数据压缩方法可选实施例的步骤流程图;
图3是本发明实施例的一组元组信息对应编码格式的示意图;
图4是本发明实施例的一种数据压缩过程的示意图;
图5是本发明实施例的一种第一压缩数据对应元组信息示意图;
图6是本发明实施例的一种中间数据构造过程的示意图;
图7是本发明实施例的另一种数据压缩过程的示意图;
图8是本发明的一种数据压缩装置实施例的结构框图;
图9是本发明的一种数据压缩装置可选实施例的结构框图;
图10是本发明实施例的一种电子设备的一种可能的逻辑结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为了便于后续实施例的说明,对存储***进行介绍,所述存储***是指计算机中由存放程序和数据的各种存储设备、控制部件及管理信息调度的设备(硬件)和软件所组成的***,存储***将内部存储空间至少划分为两个区域:第一区域和第二区域;其中,第一区域存储数据的压缩率低于第二区域存储数据的压缩率,且第一区域存储的数据比第二区域存储的数据访问频率高。数据被写入***时,先将该数据进行压缩并存储在第一区域,而后确定该压缩数据需要进一步压缩时,如确定该压缩数据的访问频率较低后,可将该压缩数据进行压缩为压缩率较高的数据,并将该数据从第一区域迁移至第二区域存储。现有技术中对压缩数据进行压缩的过程是,先将该压缩数据进行解压后再压缩,即包括解压和压缩两个过程,数据转换过程繁琐,导致数据压缩的效率低。因此本发明实施例提出一种数据压缩方法,以简化数据压缩过程,提高数据压缩的效率。
本发明实施例的核心构思之一在于,在对压缩数据进行压缩时,依据该压缩数据构造中间数据,再对中间数据进行压缩,而无需对压缩数据进行解压再压缩,简化了数据转换过程,从而提高了数据压缩的效率。
参照图1,示出了本发明的一种数据压缩方法实施例的步骤流程图,具体可以包括如下步骤:
步骤102、从第一压缩数据中提取特征信息。
步骤104、依据所述特征信息构造中间数据。
步骤106、采用第二压缩算法对所述中间数据进行压缩。
本发明实施例中,存储***为减少数据占用的空间,可对已经压缩的数据进行压缩,即对上述第一区域存储的第一压缩数据进行监测,判断所述第一压缩数据是否需要进一步压缩;在确定第一压缩数据需要进一步压缩时,可对第一压缩数据进行压缩,即从所述第一压缩数据中提取特征信息,依据所述特征信息构造中间数据,然后对中间数据进行压缩。本发明实施例中,所述特征信息用于表征第一压缩数据的特征,所述中间数据是携带特征信息的格式化数据,所述第一压缩数据是采用第一压缩算法对初始数据进行压缩得到的,所述初始数据是非压缩数据;其中,在采用第一压缩算法对初始数据进行压缩后,可得到初始数据对应的编码字段,即第一压缩数据可包括这些编码字段;因此可对第一压缩数据进行分析,确定第一压缩数据对应的编码字段,然后从编码字段中提取特征信息。其中,所述编码字段可包括:未匹配字段的编码字段、匹配偏移量的编码字段和长度的编码段,即可从未匹配字段的编码字段、匹配偏移量的编码字段和长度的编码段中提取的特征信息,如提取出各编码字段对应值,然后依据所述特征信息构造对应的未匹配字段、匹配偏移量和匹配长度,进而得到包括未匹配字段、匹配偏移量和匹配长度的中间数据;当然所述编码字段也可包括其他的编码字段,在此不作限制。可见相比于将第一压缩数据进行解压,依据第一压缩数据构造中间数据的算法能够节约数据压缩的时间,提高数据转换的效率。
在完成构造中间数据后,可采用第二压缩算法对所述中间数据进行压缩,进而完成了对第一压缩数据的压缩;然后可将对所述中间数据压缩得到的数据存储至第二区域。其中,第一压缩算法和第二压缩算法是两种不同的压缩算法。
综上,本发明实施例在对第一压缩数据进行压缩时,无需对第一压缩数据进行解压后再压缩,而是从所述第一压缩数据中提取特征信息,依据所述特征信息构造中间数据,再采用第二压缩算法对所述中间数据进行压缩,得到第二压缩数据,省略了对第一压缩数据的解压的过程,从而节约了压缩第一压缩数据的时间,提高了数据压缩的效率。
本发明实施例中,所述第二压缩算法可包括前级压缩算法和后级压缩算法,其中,直接采用第二压缩算法对初始数据进行压缩得到对应的压缩数据的过程是,可先采用所述前级压缩算对初始数据进行压缩得到中间数据,然后采用所述后级压缩算法对中间数据进行压缩,可得到对应的压缩数据。因此若所述第一压缩算法的压缩原理与第二压缩算法的前级压缩算法的压缩原理相同,则可采用所述后级压缩算法对依据第一压缩数据构造的中间数据进行压缩,得到第二压缩数据。
参照图2,示出了本发明的一种数据压缩方法可选实施例的步骤流程图,具体可以包括如下步骤:
步骤202、从元组信息中提取所述特征信息,所述特征信息包括字段信息、偏移量信息和长度信息。
本发明实施例中,存储***可实时对第一压缩数据进行监测,也可周期性的对第一压缩数据进行监测,判断所述第一压缩数据是否需要进行压缩。其中,可判断第一压缩数据的访问频率是否超过对应的阈值,来判断所述第一压缩数据是否需要进行压缩等。当第一压缩数据的访问频率未超过对应的阈值时,可确定第一压缩数据的访问频率较高,即确定第一压缩数据无需进一步压缩;当第一压缩数据的访问频率超过对应的阈值时,可确定第一压缩数据的访问频率较低,即确定第一压缩数据需要进一步压缩,进而可对第一压缩数据进行压缩,具体如下:
本发明实施例中,所述第一压缩数据可由至少一组编码字段组成,每组编码字段均可包括未匹配字段的编码字段、匹配偏移量的编码字段和长度的编码字段,一组编码字段可称为一组元组信息,即所述第一压缩数据可包括至少一组元组信息。其中,未匹配字段的编码字段用于存储字段信息,匹配偏移量的编码字段用于存储偏移量信息,以及长度的编码字段用于存储长度信息;所述字段信息包括未匹配字段,即初始数据中待编码区与已编码区不匹配的字段,所述偏移量信息包括匹配偏移量,即初始数据中待编码区与已编码区匹配字段,在已编码区的偏移量,类似的,所述长度信息包括匹配长度,即初始数据中待编码区与已编码区匹配字段的长度。如图3所示,图3示出了本发明实施例的一组元组信息对应编码格式的示意图,包括如下编码字段:Token(令牌)、LitLen(未匹配字段长度)、Lit(未匹配字段)、Offset(匹配偏移量)和MatchLen(匹配长度),其中,Token、LitLen和MatchLen为长度的编码字段,Lit为未匹配字段的编码字段,以及Offset为匹配偏移量的编码字段。其中,Token对应的值为匹配字段的长度和未匹配字段长度,LitLen对应的值为未匹配字段的长度,Lit对应的值为未匹配字段,Offset对应的值为匹配字段的偏移量,MatchLen对应的值为匹配字段的长度。
因此可从元组信息中提取所述特征信息,具体可从元组信息中的未匹配字段的编码字段中提取字段信息、从元组信息中的匹配偏移量的编码字段提取偏移量信息,以及从从元组信息中的长度的编码字段中长度信息;即所述特征信息可包括所述字段信息、偏移量信息和长度信息,进而依据提取的特征信息构造中间数据,具体如下:
步骤204、采用所述字段信息构造未匹配字段,采用所述偏移量信息构造匹配偏移量,以及采用所述长度信息构造匹配长度。
在提取特征信息之后,可依据所述特征信息构造中间数据,所述中间数据包括:未匹配字段、匹配偏移量和匹配长度;即可采用所述字段信息构造未匹配字段,采用所述偏移量信息构造匹配偏移量,以及采用所述长度信息构造匹配长度。本发明实施例中,初始数据的大小是不同的,对初始数据得到的第一压缩数据可能只包括一组元组信息,也可能包括多于一组元组信息;第一压缩数据包括的元组信息的组数不同,在提取特征信息后,依据特征信息构造中间数据的方式也存在差异;具体如下:
其中,若所述第一压缩数据只包括一组元组信息,则可从元组信息中提取一组特征信息,若所述第一压缩数据包括多于一组元组信息,则可从元组信息中提取多于一组特征信息;其中,从同一组元组信息中提取的字段信息、偏移量信息和长度信息,称为一组特征信息。因此在提取特征信息后,可判断元组信息的组数,若所述第一压缩数据只包括一组元组信息,则可直接采用从该元组信息提取的一组特征信息构造中间数据,即将字段信息确定为未匹配字段,将所述偏移量信息确定为匹配偏移量,以及将所述长度信息确定为匹配长度;若所述第一压缩数据包括至少两组元组信息,则可对所述至少两组的特征信息进行拼接,构造中间数据,具体包括如下子步骤:
子步骤S1、将所述至少两组元组信息中的字段信息进行拼接得到所述未匹配字段。
子步骤S2、将所述至少两组元组信息中的偏移量信息进行拼接得到所述匹配偏移量。
子步骤S3、将所述至少两组元组信息中的长度信息进行拼接得到所述匹配长度。
本发明实施例中,可分别确定各组元组信息对应的字段信息、偏移量信息和长度信息,然后将所述至少两组元组信息中的字段信息拼接得到所述未匹配字段,即将拼接后的字段信息确定为未匹配字段;将所述至少两组元组信息中的偏移量信息进行拼接得到所述匹配偏移量,即将拼接后的偏移量信息确定为匹配偏移量;以及将所述至少两组元组信息中的长度信息进行拼接得到所述匹配长度,即将拼接后的长度信息确定为匹配长度。其中,拼接特征信息的顺序可以是第一压缩数据中的各组元组信息的逻辑顺序。
本发明实施例不限定子步骤S1、子步骤S2和子步骤S3的执行顺序。例如,第一压缩数据包括5组元组信息,分别为A1、A2、A3、A4和A5;其中,从A1中提取的字段信息为a1、偏移量信息b1、以及长度信息为c1,从A2中提取的字段信息为a2、偏移量信息b2、以及长度信息为c2,以此类推;若元组信息的逻辑顺序为A1-A2-A3-A4-A5,则将最终得到的字段信息为a1+a2+a3+a4+a5,最终到的偏移量信息为b1+b2+b3+b4+b5,最终得到的未匹配字段为c1+c2+c3+c4+c5。
步骤206、采用所述第二压缩算法分别对所述未匹配字段、所述匹配偏移量和所述匹配长度进行编码。
在采用所述第二压缩算法对中间数据进行压缩时,可采用所述第二压缩算法分别对所述未匹配字段、所述匹配偏移量和所述匹配长度进行编码。可选地,所述第一压缩算法的压缩率低于所述第二压缩算法的压缩率,即将第一压缩数据进行压缩后,可得到压缩率更高的压缩数据,节约了数据占用的空间。
本发明实施例可预先将存储***中采用的第一压缩算法与第二压缩算法的前级压缩算法,设置为压缩原理相同的压缩算法,其中,所述第一压缩算法和第二压缩算法可以是一对多的关系,也可以是多对一的关系;可选地,所述第二压缩算法的前级压缩算法可为字典压缩算法,所述第二压缩算法的后级压缩算法可为熵编码,所述第一压缩算法可为所述字典压缩算法。从而可采用第二压缩算法的后级压缩算法,对依据第一压缩算法的构造的中间数据进行压缩,即采用所述第二压缩算法的后级分别对所述未匹配字段、所述匹配偏移量和所述匹配长度进行编码。相比于现有技术对第一压缩数据进行解压再压缩的过程,本发明实施例除了无需对第一压缩数据进行解压的过程外,还无需采用前级压缩算法对解压的数据进行压缩,进一步提高了数据压缩的效率。
本发明实施例可将采用第二压缩算法对所述中间数据进行压缩得到的压缩数据,称为第二压缩数据,当检测到所述第二压缩数据被访问时,则可采用所述第二压缩算法对应的解压算法对所述第二压缩数据进行解压,可得到初始数据;具体如下:
步骤208、检测到第二压缩数据被访问后,采用所述后级压缩算法对应的解压算法对所述第二压缩数据进行解压,得到所述中间数据。
步骤210、采用所述前级压缩算法对应的解压算法对所述中间数据进行解压,得到初始数据。
在对第二压缩数据进行解压时,可先采用所述第二压缩算法的后级压缩算法对应的解压算法,对应第二压缩数据进行解压,即得到所述中间数据;然后再采用所述第二压缩算法的前级压缩算法对应的解压算法,对所述中间数据进行解压,得到初始数据。
本发明的一个示例中,采用Lz4算法作为第一压缩算法,以及采用Deflate算法作为第二压缩算法为例,说明对第一压缩数据进一步压缩过程,其中,Deflate算法的后级压缩算法为哈夫曼算法,所述第二压缩算法的前级压缩算法为Lz77算法;具体如下:
参照图4,图4示出了本发明实施例的一种数据压缩过程的示意图,即从采用Lz4算法压缩的第一压缩数据的元组信息中提取特征信息,依据特征信息构造中间数据;然后采用哈夫曼算法对中间数据进行编码,得到第二压缩数据。具体的,如图5所示,图5示出了本发明实施例的一种第一压缩数据对应元组信息示意图,其中,第一压缩数据包括元组信息1、元组信息2、元组信息3、元组信息4,各组元组信息的Token、LitLen、Lit、Offset和MatchLen存储的信息分别是,元组信息1:0x4f、null、ACVF、0x0005、0x13,元组信息2:0x25、null、FG、0x000a、null,元组信息3:0xf3、0x02、WDFJKEVDABDRKLJGV、0x00e3、null,元组信息4:0xff、0x05、HSKIRFLJODUJZKLESNZI、0x0021、0x2c。针对图5中各元组信息,提取对应的特征信息,并构造对应的中间数据的过程,可参照图6,图6示出了本发明实施例的一种中间数据构造过程的示意图,其中,构造的未匹配字段:ACVFFGWDFJKEVDABDRKLJGVHSKIRFLJODUJZKLESNZI、匹配偏移量:0x0005000a00e30021和匹配长度分别为:(0x26)(0x05)(0x03)(0x3f)。
本发明的另一个示例中,采用Snappy算法作为第一压缩算法,以及采用Deflate算法作为第二压缩算法为例,说明对第一压缩数据进一步压缩过程;具体如下:
参照图7,图7示出了本发明实施例的另一种数据压缩过程的示意图,采用Snappy算法压缩的第一压缩数据的元组信息包括如下编码字段:Tag(令牌)、LitLen、Lit和Offset,Tag和LitLen为长度的编码字段,Lit为未匹配字段的编码字段,以及Offset为匹配偏移量的编码字段。其中,Tag对应的值为匹配字段的长度和未匹配字段长度,LitLen对应的值为未匹配字段的长度,Lit对应的值为未匹配字段,Offset对应的值为匹配字段的偏移量。即从采用Snappy算法压缩的第一压缩数据的元组信息中提取特征信息,依据特征信息构造中间数据;然后采用哈夫曼算法对中间数据进行编码,得到第二压缩数据;其中,虽然采用Snappy算法压缩的压缩数据的编码格式,与采用Lz4算法压缩的压缩数据的编码格式存在差异,但两者的压缩原理相同,因此其具体构造中间数据的过程与图6类似,在此不再赘述。
综上所述,本发明实施例在对第一压缩数据进行压缩时,可从第一压缩数据中提取特征信息,并依据特征信息构造中间数据;然后采用第二压缩算法对中间数据进行压缩,进而避免了对第一压缩数据的解压。其中,在构造中间数据时,采用字段信息构造未匹配字段,采用所述偏移量信息构造匹配偏移量,采用所述长度信息构造匹配长度,并将未匹配字段、匹配偏移量和匹配长度确定为中间数据;即可直接依据特征信息构造中间数据,复杂度低,远小于数据解压的复杂程度,因此相比于现有技术的压缩方法,本发明实施例能够节约数据压缩的时间,提高数据压缩的效率。
进一步,所述第二压缩算法包括前级压缩算法和后级压缩算法,所述前级压缩算法的压缩原理与第一压缩算法的压缩原理相同,因此在采用第二压缩算法对所述中间数据进行压缩时,只需采用所述后级压缩算法对所述中间数据进行压缩;进而在采用第二压缩算法进行压缩时,还省略了采用前级压缩算法对初始数据进行压缩的过程,进一步提高了数据压缩的效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图8,示出了本发明的一种压缩装置实施例的结构框图,具体可以包括如下模块:提取模块82、构造模块84和压缩模块86,其中,
所述提取模块82,用于从第一压缩数据中提取特征信息,其中,所述第一压缩数据是采用第一压缩算法对初始数据进行压缩得到的;
所述构造模块84,用于依据所述特征信息构造中间数据,其中,所述中间数据包括:未匹配字段、匹配偏移量和匹配长度;
所述压缩模块86,用于采用第二压缩算法对所述中间数据进行压缩。
本发明实施例在对第一压缩数据进行压缩时,无需对第一压缩数据进行解压后再压缩,而是从所述第一压缩数据中提取特征信息,依据所述特征信息构造中间数据,再采用第二压缩算法对所述中间数据进行压缩;即对第一压缩数据进行再压缩,省略了对第一压缩数据的解压的过程,从而节约了将第一压缩数据转换为第二压缩数据的时间,提高了压缩的效率。
参照图9,示出了本发明的一种压缩装置可选实施例的结构框图,所述压缩装置还包括:解压模块88;
其中,所述第二压缩算法包括前级压缩算法和后级压缩算法,其中,所述前级压缩算法的压缩原理与第一压缩算法的压缩原理相同,所述解压模块88,用于检测到第二压缩数据被访问时,采用所述后级压缩算法对应的解压算法对所述第二压缩数据进行解压,得到中间数据;采用所述前级压缩算法对应的解压算法对所述中间数据进行解压,得到初始数据;其中,所述第二压缩数据是采用第二压缩算法对所述中间数据进行压缩得到的。
可选地,本发明的另一个实施例中,所述提取模块82,具体用于从元组信息中提取所述特征信息,所述特征信息包括:字段信息、偏移量信息和长度信息。
可选地,本发明的另一个实施例中,所述构造模块84,具体用于采用所述字段信息构造所述未匹配字段,采用所述偏移量信息构造所述匹配偏移量,以及采用所述长度信息构造所述匹配长度。
可选地,本发明的另一个实施例中,所述构造模块84,具体用于当所述第一压缩数据包括至少两组所述元组信息时,将所述至少两组元组信息中的字段信息进行拼接得到所述未匹配字段;将所述至少两组元组信息中的偏移量信息进行拼接得到所述匹配偏移量;将所述至少两组元组信息对应的长度信息进行拼接得到所述匹配长度。
可选地,本发明的另一个实施例中,所述压缩模块86,用于采用所述第二压缩算法分别对所述未匹配字段、所述匹配偏移量和所述匹配长度进行编码。
可选地,本发明的另一个实施例中,所述第一压缩算法为字典压缩算法,所述第二压缩算法的前级压缩算法为所述字典压缩算法,所述第二压缩算法的后级压缩算法为熵编码。
可选地,本发明的另一个实施例中,所述第一压缩算法的压缩率低于所述第二压缩算法的压缩率。
综上所述,本发明实施例在对第一压缩数据进行压缩时,可从第一压缩数据中提取特征信息,并依据特征信息构造中间数据;然后采用第二压缩算法对中间数据进行压缩生成第二压缩数据,进而避免了对第一压缩数据的解压。其中,在构造中间数据时,采用字段信息构造未匹配字段,采用所述偏移量信息构造匹配偏移量,采用所述长度信息构造匹配长度,并将未匹配字段、匹配偏移量和匹配长度确定为中间数据;即可直接依据特征信息构造中间数据,复杂度低,远小于数据解压的复杂程度,因此相比于现有技术的压缩方法,本发明实施例能够节约数据压缩的时间,提高数据压缩的效率。
进一步,所述第二压缩算法包括前级压缩算法和后级压缩算法,所述前级压缩算法的压缩原理与第一压缩算法的压缩原理相同,因此在采用第二压缩算法对所述中间数据进行压缩时,只需采用所述后级压缩算法对所述中间数据进行压缩;进而在采用第二压缩算法进行压缩时,还省略了采用前级压缩算法对初始数据进行压缩的过程,进一步提高了数据压缩的效率。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本发明的另一实施例中,还提供一种电子设备,所述电子设备包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行上述实施例所提供的任一数据压缩方法。
如图10所示,示出了本发明实施例的一种电子设备的一种可能的逻辑结构示意图。电子设备1010包括:存储器1011、处理器1012、通信接口1013以及总线1014。存储器1011、处理器1012以及通信接口1013通过总线1014相互连接。在发明实施例中,处理器1012用于对电子设备1010的动作进行控制管理,例如,处理器1012用于执行图1中的步骤102-步骤106、图2中的步骤202-步骤210,和/或用于本发明所描述的技术的其他过程。通信接口1013用于支持电子设备1010进行通信。存储器1011,用于存储电子设备1010的程序代码和数据。
其中,处理器1012可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可显示后执行本发明公开内容所描述的各种示例性的逻辑方框和模块。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线1014可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中本仅用一条粗线表示,但不仅有一条总线或一种类型的总线。
在本发明的另一实施例中,还提供一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述实施例所提供的任一数据压缩方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种数据压缩方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (18)
1.一种数据压缩方法,其特征在于,包括:
从第一压缩数据中提取特征信息,其中,所述第一压缩数据是采用第一压缩算法对初始数据进行压缩得到的;
依据所述特征信息构造中间数据,其中,所述中间数据包括:未匹配字段、匹配偏移量和匹配长度;
采用第二压缩算法对所述中间数据进行压缩。
2.根据权利要求1所述的方法,其特征在于,所述第一压缩数据包括元组信息,所述从所述第一压缩数据中提取特征信息,具体包括:
从元组信息中提取所述特征信息,所述特征信息包括:字段信息、偏移量信息和长度信息。
3.根据权利要求2所述的方法,其特征在于,所述依据所述特征信息构造中间数据,具体包括:
采用所述字段信息构造所述未匹配字段,采用所述偏移量信息构造所述匹配偏移量,以及采用所述长度信息构造所述匹配长度。
4.根据权利要求3所述的方法,其特征在于,所述采用所述字段信息构造未匹配字段,采用所述偏移量信息构造匹配偏移量,以及采用所述长度信息构造匹配长度,具体包括:
当所述第一压缩数据包括至少两组所述元组信息时,将所述至少两组元组信息中的字段信息进行拼接得到所述未匹配字段;
将所述至少两组元组信息中的偏移量信息进行拼接得到所述匹配偏移量;
将所述至少两组元组信息中的长度信息进行拼接得到所述匹配长度。
5.根据权利要求1所述的方法,其特征在于,所述采用所述第二压缩算法对所述中间数据进行压缩,包括:
采用所述第二压缩算法分别对所述未匹配字段、所述匹配偏移量和所述匹配长度进行编码。
6.根据权利要求1-5任一所述的方法,其特征在于,所述第二压缩算法包括前级压缩算法和后级压缩算法,其中,所述前级压缩算法的压缩原理与第一压缩算法的压缩原理相同,所述方法还包括:
检测到第二压缩数据被访问时,采用所述后级压缩算法对应的解压算法对所述第二压缩数据进行解压,得到所述中间数据;
采用所述前级压缩算法对应的解压算法对所述中间数据进行解压,得到所述初始数据;
其中,所述第二压缩数据是采用第二压缩算法对所述中间数据进行压缩得到的。
7.根据权利要求6所述的方法,其特征在于,所述第一压缩算法为字典压缩算法,所述第二压缩算法的前级压缩算法为所述字典压缩算法,所述第二压缩算法的后级压缩算法为熵编码。
8.根据权利要求1-5任一所述的方法,其特征在于,所述第一压缩算法的压缩率低于所述第二压缩算法的压缩率。
9.一种压缩装置,其特征在于,包括:
提取模块,用于从第一压缩数据中提取特征信息,其中,所述第一压缩数据是采用第一压缩算法对初始数据进行压缩得到的;
构造模块,用于依据所述特征信息构造中间数据,其中,所述中间数据包括:未匹配字段、匹配偏移量和匹配长度;
压缩模块,用于采用第二压缩算法对所述中间数据进行压缩。
10.根据权利要求9所述的装置,其特征在于,所述第一压缩数据包括元组信息,
所述提取模块,具体用于从元组信息中提取所述特征信息,所述特征信息包括:字段信息、偏移量信息和长度信息。
11.根据权利要求10所述的装置,其特征在于,
所述构造模块,具体用于采用所述字段信息构造所述未匹配字段,采用所述偏移量信息构造所述匹配偏移量,以及采用所述长度信息构造所述匹配长度。
12.根据权利要求11所述的装置,其特征在于,
所述构造模块,具体用于当所述第一压缩数据包括至少两组所述元组信息时,将所述至少两组元组信息中的字段信息进行拼接得到所述未匹配字段;将所述至少两组元组信息中的偏移量信息进行拼接得到所述匹配偏移量;将所述至少两组元组信息中的长度信息进行拼接得到匹配长度。
13.根据权利要求9所述的装置,其特征在于,
所述压缩模块,用于采用所述第二压缩算法分别对所述未匹配字段、所述匹配偏移量和所述匹配长度进行编码。
14.根据权利要求9-13任一所述的装置,其特征在于,所述第二压缩算法包括前级压缩算法和后级压缩算法,其中,所述前级压缩算法的压缩原理与第一压缩算法的压缩原理相同,所述装置还包括:
解压模块,用于检测到第二压缩数据被访问时,采用所述后级压缩算法对应的解压算法对所述第二压缩数据进行解压,得到所述中间据;采用所述前级压缩算法对应的解压算法对所述中间数据进行解压,得到所述初始数据;其中,所述第二压缩数据是采用第二压缩算法对所述中间数据进行压缩得到的。
15.根据权利要14所述的装置,其特征在于,所述第一压缩算法为字典压缩算法,所述第二压缩算法的前级压缩算法为所述字典压缩算法,所述第二压缩算法的后级压缩算法为熵编码。
16.根据权利要求9-13任一所述的装置,其特征在于,所述第一压缩算法的压缩率低于所述第二压缩算法的压缩率。
17.一种电子设备,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求1-8中任一所述的数据压缩方法。
18.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-8中任一所述的数据压缩方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711049408.8A CN107888197B (zh) | 2017-10-31 | 2017-10-31 | 一种数据压缩方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711049408.8A CN107888197B (zh) | 2017-10-31 | 2017-10-31 | 一种数据压缩方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107888197A true CN107888197A (zh) | 2018-04-06 |
CN107888197B CN107888197B (zh) | 2021-08-13 |
Family
ID=61783192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711049408.8A Active CN107888197B (zh) | 2017-10-31 | 2017-10-31 | 一种数据压缩方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107888197B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108848383A (zh) * | 2018-06-16 | 2018-11-20 | 武汉宝辉科技有限公司 | 一种视频、图像数据的压缩方法 |
CN109947776A (zh) * | 2019-03-15 | 2019-06-28 | 海南新软软件有限公司 | 一种数据压缩、解压方法及装置 |
CN110535846A (zh) * | 2019-08-22 | 2019-12-03 | 中国电力科学研究院有限公司 | 一种基于dl/t698.45协议的数据帧压缩方法和*** |
CN110943744A (zh) * | 2019-12-03 | 2020-03-31 | 杭州嘉楠耘智信息科技有限公司 | 数据压缩、解压缩以及基于数据压缩和解压缩的处理方法及装置 |
CN111061428A (zh) * | 2019-10-31 | 2020-04-24 | 华为技术有限公司 | 一种数据压缩的方法及装置 |
CN112148694A (zh) * | 2019-06-28 | 2020-12-29 | 华为技术有限公司 | 一种用于电子设备的数据压缩、数据解压方法及电子设备 |
WO2024066547A1 (zh) * | 2022-09-29 | 2024-04-04 | 华为技术有限公司 | 数据压缩方法、装置、计算设备及存储*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7688233B2 (en) * | 2008-02-07 | 2010-03-30 | Red Hat, Inc. | Compression for deflate algorithm |
CN103400174A (zh) * | 2013-07-30 | 2013-11-20 | 人民搜索网络股份公司 | 一种二维码的编码方法、解码方法及*** |
CN103688259A (zh) * | 2011-05-19 | 2014-03-26 | 甲骨文国际公司 | 用于通过压缩和纵列存储进行自动数据放置的技术 |
CN105610447A (zh) * | 2015-10-29 | 2016-05-25 | 吴均 | 基于lz77算法的分区编码压缩方法 |
-
2017
- 2017-10-31 CN CN201711049408.8A patent/CN107888197B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7688233B2 (en) * | 2008-02-07 | 2010-03-30 | Red Hat, Inc. | Compression for deflate algorithm |
CN103688259A (zh) * | 2011-05-19 | 2014-03-26 | 甲骨文国际公司 | 用于通过压缩和纵列存储进行自动数据放置的技术 |
CN103400174A (zh) * | 2013-07-30 | 2013-11-20 | 人民搜索网络股份公司 | 一种二维码的编码方法、解码方法及*** |
CN105610447A (zh) * | 2015-10-29 | 2016-05-25 | 吴均 | 基于lz77算法的分区编码压缩方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108848383A (zh) * | 2018-06-16 | 2018-11-20 | 武汉宝辉科技有限公司 | 一种视频、图像数据的压缩方法 |
CN109947776A (zh) * | 2019-03-15 | 2019-06-28 | 海南新软软件有限公司 | 一种数据压缩、解压方法及装置 |
CN109947776B (zh) * | 2019-03-15 | 2021-05-28 | 海南火链科技有限公司 | 一种数据压缩、解压方法及装置 |
CN112148694A (zh) * | 2019-06-28 | 2020-12-29 | 华为技术有限公司 | 一种用于电子设备的数据压缩、数据解压方法及电子设备 |
CN112148694B (zh) * | 2019-06-28 | 2022-06-14 | 华为技术有限公司 | 一种用于电子设备的数据压缩、数据解压方法及电子设备 |
CN110535846A (zh) * | 2019-08-22 | 2019-12-03 | 中国电力科学研究院有限公司 | 一种基于dl/t698.45协议的数据帧压缩方法和*** |
CN110535846B (zh) * | 2019-08-22 | 2022-03-04 | 中国电力科学研究院有限公司 | 一种基于dl/t698.45协议的数据帧压缩方法和*** |
CN111061428A (zh) * | 2019-10-31 | 2020-04-24 | 华为技术有限公司 | 一种数据压缩的方法及装置 |
WO2021082926A1 (zh) * | 2019-10-31 | 2021-05-06 | 华为技术有限公司 | 一种数据压缩的方法及装置 |
CN111061428B (zh) * | 2019-10-31 | 2021-05-18 | 华为技术有限公司 | 一种数据压缩的方法及装置 |
CN110943744A (zh) * | 2019-12-03 | 2020-03-31 | 杭州嘉楠耘智信息科技有限公司 | 数据压缩、解压缩以及基于数据压缩和解压缩的处理方法及装置 |
WO2024066547A1 (zh) * | 2022-09-29 | 2024-04-04 | 华为技术有限公司 | 数据压缩方法、装置、计算设备及存储*** |
Also Published As
Publication number | Publication date |
---|---|
CN107888197B (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107888197A (zh) | 一种数据压缩方法和装置 | |
US10747737B2 (en) | Altering data type of a column in a database | |
CN110520909A (zh) | 使用激活数据的压缩和解压缩来减少存储器带宽利用率的神经网络处理器 | |
US20210152183A1 (en) | Data compression method, data decompression method, and related apparatus, electronic device, and system | |
CN106852185A (zh) | 基于字典的并行压缩编码器 | |
CN106503165A (zh) | 压缩、解压方法、装置以及设备 | |
WO2022166258A1 (zh) | 行为识别方法、装置、终端设备及计算机可读存储介质 | |
WO2021064013A2 (en) | Neural network representation formats | |
WO2023051335A1 (zh) | 数据编码方法、数据解码方法以及数据处理装置 | |
CN114337678A (zh) | 数据压缩方法、装置、设备及存储介质 | |
CN105791832B (zh) | 数据编码方法和数据解码方法及其*** | |
US9864536B2 (en) | System and method for conserving power consumption in a memory system | |
CN103078646A (zh) | 字典查询压缩、解压缩方法及其装置 | |
US20210089785A1 (en) | Video feature extraction method and device | |
EP3846021B1 (en) | Data output method, data acquisition method, device, and electronic apparatus | |
CN107103632B (zh) | 图像压缩方法及装置 | |
CN103139566B (zh) | 用于可变长度码的高效解码的方法 | |
WO2019018030A1 (en) | COMPRESSION AND RECOVERY OF STRUCTURED RECORDINGS | |
CN108235019A (zh) | 一种压缩图像的存储方法及装置 | |
WO2023159820A1 (zh) | 图像压缩方法、图像解压缩方法及装置 | |
CN103840835A (zh) | 一种数据解压缩方法及装置 | |
CN112449195A (zh) | 图像压缩和解压的方法和装置,以及图像的处理*** | |
CN115631339A (zh) | 视觉特征提取方法、装置及电子设备 | |
CN102298782B (zh) | 用于无损视频压缩的参数估计的***、方法 | |
CN114501031B (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 |