CN107565971A - 一种数据压缩方法及装置 - Google Patents
一种数据压缩方法及装置 Download PDFInfo
- Publication number
- CN107565971A CN107565971A CN201710802127.9A CN201710802127A CN107565971A CN 107565971 A CN107565971 A CN 107565971A CN 201710802127 A CN201710802127 A CN 201710802127A CN 107565971 A CN107565971 A CN 107565971A
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- acquisition system
- tuple
- coding
- 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
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请实施例公开了一种数据压缩方法及装置,涉及压缩编码领域,解决了在对待压缩数据进行压缩时,如何既能保证较高的压缩性能,又能获得较高的压缩率的问题。具体方案为:编码待压缩数据得到n个压缩元组,分类n个压缩元组得到m个数据集合;根据第i个数据集合中的数据特点确定第i个数据集合的编码类型,得到第i个数据集合的编码表,i的取值为1到m;根据第i个数据集合的编码类型和编码表,编码第i个数据集合得到编码后数据集合i;生成压缩数据,压缩数据包括压缩头和m个编码后数据集合,压缩头包括n、m、第i数据集合的编码类型和编码后数据集合i的长度。本申请实施例用于压缩编码的过程。
Description
技术领域
本申请实施例涉及压缩编码领域,尤其涉及一种数据压缩方法及装置。
背景技术
目前,数据压缩技术(Data compression technology)已成为当今数字通信、广播、存储和多媒体娱乐中的一项关键的共性技术。数据压缩技术的基本思想是对待压缩数据中重复的数据用占用空间较少的符号或代码来代替,使得压缩后的数据占用更少的磁盘存储空间或更短的传输时间。现有的数据压缩算法包括字典(Abraham Lempel and JacobZiv,LZ)编码系列、Snappy编码和ZILB编码等。其中,LZ编码系列是目前常用的数据压缩算法,其核心思想是在历史窗口中查找是否有相同的数据,如果有相同的数据,那么就会生成对应的匹配信息,来达到数据缩减的目的,但是,LZ编码系列作为高性能的数据压缩算法,仅仅找出来匹配数据,并将匹配信息进行简单的编码,并未进行复杂的压缩,压缩率无法满足更高需求,压缩率很低;Snappy编码是一个基于C++编程语言编写的用来压缩和解压缩的开发包,与LZ编码有着相同的缺点,即压缩性能较高,压缩率很低;ZILB编码,简单来说其核心思想是先将待压缩数据中重复的字符串,替换成距离对或长度对,再对替换后的数据,使用哈夫曼(huffman)编码,将字符按出现频率重新编码,同时在替换过程中,保证不论数据有多大,所占用的内存都是可控的。虽然,ZILB编码的压缩率较高,但是,其压缩性能很低。因此,现有的数据压缩算法不是压缩率很低,就是压缩性能很低,那么,如何在对待压缩数据进行压缩时,既能保证较高的压缩性能,又能获得较高的压缩率是一个亟待解决的问题。
发明内容
本申请实施例提供一种数据压缩方法及装置,解决了在对待压缩数据进行压缩时,如何既能保证较高的压缩性能,又能获得较高的压缩率的问题。
为达到上述目的,本申请实施例采用如下技术方案:
本申请实施例的第一方面,提供一种数据压缩方法,包括:首先,编码待压缩数据得到n个压缩元组,并对n个压缩元组进行分类得到m个数据集合,m个数据集合中每个数据集合包括n个数据,n为大于等于1的整数,m为大于等于1的整数;然后,确定对m个数据集合中每个数据集合进行编码的编码类型,得到m个编码表,即根据第i个数据集合中的数据特点确定第i个数据集合的编码类型,得到第i个数据集合的编码表,其中,i为整数,i的取值为1到m;对m个数据集合中每个数据集合进行编码,得到m个编码后数据集合,即根据第i个数据集合的编码类型和编码表,编码第i个数据集合得到编码后数据集合i;最后,生成压缩数据,压缩数据包括压缩头和m个编码后数据集合,压缩头包括n、m、第i数据集合的编码类型和编码后数据集合i的长度,其中,n表示对待压缩数据进行编码后得到的压缩元组的个数,m表示对n个压缩元组进行分类得到的数据集合的个数。本申请实施例提供的数据压缩方法采用分类处理的方法进一步地对压缩元组进行分类,得到数据集合,并根据数据集合的数据特点,确定最佳的编码方法,对数据集合再次进行编码,以便得到最优的压缩效果,获得较高的压缩率,而且,由于每类数据采用一种编码方法,编码和解码时无需频繁的替换缓存(cache)中的编码表,最大程度利用系统cache,提升压缩性能。因此,本申请实施例提出的数据压缩方法可以兼顾压缩率与压缩性能,在对待压缩数据进行压缩时,既能保证较高的压缩性能,又能获得较高的压缩率,而且有效地降低了能源消耗率。
示例的,可以针对编码后数据包括的内容进行分类,若编码后数据包括原文、原文长度、匹配数据长度和偏移量,则可以根据原文、原文长度、匹配数据长度和偏移量对n个压缩元组进行分类。编码类型可以为哈夫曼编码、哥伦布编码或有限状态熵(Finite StateEntropy,FSE)编码等。
为了既能保证较高的压缩性能,又能获得较高的压缩率,本申请实施例提供的数据压缩方法采用分类处理的方法进一步地对压缩元组进行分类,其中,分类的方法可以采用以下实现方式:
结合第一方面,在一种可能的实现方式中,当n=1时,编码待压缩数据得到n个压缩元组,分类n个压缩元组得到m个数据集合,具体包括:对待压缩数据进行编码,得到第一压缩元组;将第一压缩元组分为m类数据,一类数据组成一个数据集合,m个数据集合中每个数据集合包括1个数据。
结合上述可能的实现方式,在另一种可能的实现方式中,当n大于等于2时,在将第一压缩元组分为m类数据之后,方法还包括:确定待压缩数据编码未完成;对待压缩数据进行编码,得到第k压缩元组,并将第k压缩元组分为m类数据后,将划分第k压缩元组得到的m类数据中每类数据分到对应类型的数据集合中,k为大于等于2且小于等于n的整数;当待压缩数据编码完成时,确定对m个数据集合中每个数据集合进行编码的编码类型。
结合第一方面,在另一种可能的实现方式中,编码待压缩数据得到n个压缩元组,分类n个压缩元组得到m个数据集合,具体包括:对待压缩数据进行编码,得到n个压缩元组;将n个压缩元组中每个压缩元组分为m类数据,一类数据组成一个数据集合,得到m个数据集合。
为了既能保证较高的压缩性能,又能获得较高的压缩率,结合上述可能的实现方式,在另一种可能的实现方式中,在编码待压缩数据得到n个压缩元组,分类n个压缩元组得到m个数据集合之前,方法还包括:根据待压缩数据获取缓存空间。
为了获得较高的压缩率,结合上述可能的实现方式,在另一种可能的实现方式中,在根据第i个数据集合中的数据特点确定第i个数据集合的编码类型之前,方法还包括:确定第i个数据集合包括的数据离散;对第i个数据集合进行统计分析,确定第i个数据集合包括的数据的数据特点。
结合上述可能的实现方式,在另一种可能的实现方式中,编码待压缩数据,具体包括:根据LZ编码算法在待压缩数据中查找相同的数据,对待压缩数据进行编码。
结合上述可能的实现方式,在另一种可能的实现方式中,方法还包括:存储m个数据集合和m个编码表。
本申请实施例的第二方面,提供一种数据压缩装置,包括:编码单元,用于编码待压缩数据得到n个压缩元组;分类单元,用于分类n个压缩元组得到m个数据集合,m个数据集合中每个数据集合包括n个数据,n为大于等于1的整数,m为大于等于1的整数;确定单元,用于确定对m个数据集合中每个数据集合进行编码的编码类型,得到m个编码表,其中,确定单元,具体用于:根据第i个数据集合中的数据特点确定第i个数据集合的编码类型,得到第i个数据集合的编码表,其中,i为整数,i的取值为1到m;编码单元,还用于对m个数据集合中每个数据集合进行编码,得到m个编码后数据集合,编码单元,具体用于:根据第i个数据集合的编码类型和编码表,编码第i个数据集合得到编码后数据集合i;生成单元,用于生成压缩数据,压缩数据包括压缩头和m个编码后数据集合,压缩头包括n、m、第i数据集合的编码类型和编码后数据集合i的长度,n表示对待压缩数据进行编码后得到的压缩元组的个数,m表示对n个压缩元组进行分类得到的数据集合的个数。本申请实施例提供的数据压缩装置采用分类处理的方法进一步地对压缩元组进行分类,得到数据集合,并根据数据集合的数据特点,确定最佳的编码方法,对数据集合再次进行编码,以便得到最优的压缩效果,获得较高的压缩率,而且,由于每类数据采用一种编码方法,编码和解码时无需频繁的替换缓存(cache)中的编码表,最大程度利用系统cache,提升压缩性能。因此,本申请实施例提出的数据压缩装置可以兼顾压缩率与压缩性能,在对待压缩数据进行压缩时,既能保证较高的压缩性能,又能获得较高的压缩率,而且有效地降低了能源消耗率。
为了既能保证较高的压缩性能,又能获得较高的压缩率,本申请实施例提供的数据压缩装置采用分类处理的方法进一步地对压缩元组进行分类,其中,分类的方法可以采用以下实现方式:
结合第二方面,在一种可能的实现方式中,当n=1时,编码单元,具体用于对待压缩数据进行编码,得到第一压缩元组;分类单元,具体用于将第一压缩元组分为m类数据,一类数据组成一个数据集合,m个数据集合中每个数据集合包括1个数据。
结合上述可能的实现方式,在另一种可能的实现方式中,当n大于等于2时,装置还包括:判断单元,用于确定待压缩数据编码未完成;编码单元,具体用于对待压缩数据进行编码,得到第k压缩元组;分类单元,具体用于将第k压缩元组分为m类数据后,将划分第k压缩元组得到的m类数据中每类数据分到对应类型的数据集合中,k为大于等于2且小于等于n的整数;确定单元,用于当待压缩数据编码完成时,确定对m个数据集合中每个数据集合进行编码的编码类型。
结合第二方面,在一种可能的实现方式中,编码单元,具体用于对待压缩数据进行编码,得到n个压缩元组;分类单元,具体用于将n个压缩元组中每个压缩元组分为m类数据,一类数据组成一个数据集合,得到m个数据集合。
为了获得较高的压缩率,结合上述可能的实现方式,在另一种可能的实现方式中,装置还包括:确定单元,还用于确定第i个数据集合包括的数据离散;确定单元,还用于对第i个数据集合进行统计分析,确定第i个数据集合包括的数据的数据特点。
结合上述可能的实现方式,在另一种可能的实现方式中,装置还包括:存储单元,用于存储m个数据集合和m个编码表。
本申请实施例的第三方面,提供一种数据压缩装置,该数据压缩装置可以包括:至少一个处理器,存储器、通信接口、通信总线;至少一个处理器与存储器、通信接口通过通信总线连接,存储器用于存储计算机执行指令,当处理器运行时,处理器执行存储器存储的计算机执行指令,以使数据压缩装置执行第一方面或第一方面的可能的实现方式中任一所述的数据压缩方法。
本申请实施例的第四方面,提供了一种计算机可读存储介质,用于储存为上述数据压缩装置所用的计算机软件指令,当计算机软件指令被处理器执行时,使得数据压缩装置可以执行上述中任意方面的方法。
本申请实施例的第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述任意方面的方法。
另外,第二方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
本申请实施例中,数据压缩装置的名字对设备本身不构成限定,在实际实现中,这些设备可以以其他名称出现。只要各个设备的功能和本申请实施例类似,属于本申请权利要求及其等同技术的范围之内。
本申请实施例的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
图1为现有技术提供的一种LZ4编码过程示意图;
图2为本申请实施例提供的一种计算机设备的组成示意图;
图3为本申请实施例提供的一种数据压缩方法的流程图;
图4为本申请实施例提供的另一种数据压缩方法的流程图;
图5为本申请实施例提供的又一种数据压缩方法的流程图;
图6为本申请实施例提供的一种压缩头示意图;
图7为本申请实施例提供的一种数据压缩过程示意图;
图8为本申请实施例提供的一种编码或解码过程的缓存空间的性能优化示意图;
图9为本申请实施例提供的一种数据解压过程示意图;
图10为本申请实施例提供的一种数据压缩装置的结构示意图;
图11为本申请实施例提供的另一种数据压缩装置的结构示意图;
图12为本申请实施例提供的又一种数据压缩装置的结构示意图。
具体实施方式
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
LZ编码系列是目前常用的数据压缩算法,其有着众多的算法分支,如LZ4,LZ5,LZO等,它们的共同特点是在对待压缩数据进行数据缩减时均会使用原文作为字典,并且采用滑动窗口的方式在原文中查找是否有相同数据,如果有相同的数据,那么就会生成对应的匹配信息,来达到数据缩减的目的。需要说明的是,系统在进行编码之前,需要预先配置最小匹配长度,例如,LZ4的最小匹配长度为4,LZ5的最小匹配长度为3,其中,最小匹配长度也可以理解为滑动窗口的大小。下面以LZ4为例来说明LZ编码系列的基本原理。
示例的,如图1所示,假设待压缩数据为abcdefgabcdmabcdef,最小匹配长度为4。首先,从待压缩数据的第一个数据a开始,滑动窗口向待压缩数据的末尾移动查找相同的数据,由于先前没有生成原文,到g都没有相同的数据,直到滑动窗口移动到g后面的abcd时,发现abcd在前面的数据中出现过,则将abcd作为第一匹配数据,第一匹配数据长度为4,将abcdefg作为第一原文,第一原文长度为7,第一偏移量为7;然后,滑动窗口从第一匹配数据后的数据继续向待压缩数据的末尾移动,发现m后面的abcdef在前面的数据中出现过,则将m作为第二原文,第二原文长度为1,将abcdef作为第二匹配数据,第二匹配数据长度为6,第二偏移量为12;最后,按照一定的规则生成第一匹配元组和第二匹配元组,得到压缩数据,其中,压缩数据包括第一匹配元组和第二匹配元组,第一匹配元组包括第一原文、第一原文长度、第一匹配数据长度和第一偏移量,第二匹配元组包括第二原文、第二原文长度、第二匹配数据长度和第二偏移量。需要说明的是,如果匹配数据1与匹配数据2中间没有其他原文的情况下,包括匹配数据2的匹配元组包括的原文和原文长度可以为空,实际应用中可以得到多个匹配元组,本申请实施例只是举例说明。进一步的,还可以对生成的多个匹配元组进行固定的编码,例如,GZIP压缩算法对匹配元组使用Huffman编码,最终按照匹配元组序列的方式返回最终的压缩数据。虽然这样可以提高对待压缩数据的压缩率,但是,压缩和解压缩的性能很差。
为了在对待压缩数据进行压缩时,既能保证较高的压缩性能,又能获得较高的压缩率,本申请实施例提供的数据压缩方法,其基本原理是:首先,编码待压缩数据得到n个压缩元组,并对n个压缩元组进行分类得到m个数据集合,m个数据集合中每个数据集合包括n个数据,n为大于等于1的整数,m为大于等于1的整数;然后,确定对m个数据集合中每个数据集合进行编码的编码类型,得到m个编码表,即根据第i个数据集合中的数据特点确定第i个数据集合的编码类型,得到第i个数据集合的编码表,其中,i为整数,i的取值为1到m;对m个数据集合中每个数据集合进行编码,得到m个编码后数据集合,即根据第i个数据集合的编码类型和编码表,编码第i个数据集合得到编码后数据集合i;最后,生成压缩数据,压缩数据包括压缩头和m个编码后数据集合,压缩头包括n、m、第i数据集合的编码类型和编码后数据集合i的长度。从而,本申请实施例采用分类处理的方法进一步地对压缩元组进行分类,得到数据集合,并针对每个数据集合确定其最佳的编码方法,对数据集合再次进行编码,以便得到对待压缩数据进行压缩后最优的压缩效果,获得较高的压缩率,而且,由于每类数据采用一种编码方法,编码和解码时无需频繁的替换缓存(cache)中的编码表,最大程度利用系统缓存,提升压缩性能。因此,本申请实施例提出的数据压缩方法可以兼顾压缩率与压缩性能,在对待压缩数据进行压缩时,既能保证较高的压缩性能,又能获得较高的压缩率,而且有效地降低了能源消耗率。
下面将结合附图对本申请实施例的实施方式进行详细描述。
图2为本申请实施例提供的一种计算机设备的组成示意图,如图2所示,计算机设备可以包括至少一个处理器21、存储器22、通信接口23、通信总线24。
下面结合图2对计算机设备的各个构成部件进行具体的介绍:
处理器21是计算机设备的控制中心,可以是一个处理器,也可以是多个处理元件的统称。在具体的实现中,作为一种实施例,处理器21可以包括一个中央处理器(CentralProcessing Unit,CPU)或多个CPU,例如图2中所示的CPU0和CPU1。处理器21也可以是特定集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(Digital SignalProcessor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)。
其中,以处理器21是一个或多个CPU为例,处理器21可以通过运行或执行存储在计算机设备中的存储器22内的软件程序,以及调用存储在存储器22内的数据,执行计算机设备的各种功能。
在具体实现中,作为一种实施例,计算机设备可以包括多个处理器,例如图2中所示的处理器21和处理器25。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在本申请实施例中处理器主要用于编码待压缩数据得到n个压缩元组,分类n个压缩元组得到m个数据集合,根据第i个数据集合中的数据特点确定第i个数据集合的编码类型,得到第i个数据集合的编码表,根据第i个数据集合的编码类型和编码表,编码第i个数据集合得到编码后数据集合i,生成压缩数据。
存储器22可以是只读存储器(Read-Only Memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(Random Access Memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器22可以是独立存在,通过通信总线24与处理器21相连接。存储器22也可以和处理器21集成在一起。
其中,所述存储器22用于存储执行本申请方案的软件程序,并由处理器21来控制执行。存储器22还用于存储本申请实施例所述的m个数据集合和m个编码表。
通信接口23,用于与其他设备或通信网络通信,通信接口23可以包括接收单元实现接收功能,以及发送单元实现发送功能。
通信总线24,可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
图2中示出的设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
图3为本申请实施例提供的一种数据压缩方法的流程图,如图3所示,该方法可以包括:
301、编码待压缩数据得到n个压缩元组,分类n个压缩元组得到m个数据集合。
在一种可实现方式中,可以对待压缩数据进行编码的同时也可以对压缩元组进行分类,即编码的步骤和分类的步骤可以同时进行。示例的,如图4所示,编码待压缩数据得到n个压缩元组,分类n个压缩元组得到m个数据集合具体的包括以下步骤:
步骤301a、对待压缩数据进行编码,得到压缩元组。
n个压缩元组可以理解为对待压缩数据进行了n次编码,每次编码只是对待压缩数据的部分数据进行了编码,对待压缩数据进行了n次编码后,对待压缩数据才全部编码完成,最终得到n个压缩元组。例如,对待压缩数据进行首次编码,得到第一压缩元组,对待压缩数据进行第二次编码,得到第二压缩元组,对待压缩数据进行第n次编码,得到第n压缩元组。
步骤301b、对压缩元组进行分类。
对于第一压缩元组,将第一压缩元组分为m类数据后,一类数据就组成了一个数据集合,m个数据集合中每个数据集合包括1个数据;而对于第k压缩元组,根据划分第一压缩元组的方法将第k压缩元组分为m类数据后,将划分第k压缩元组得到的m类数据中每类数据分到对应类型的数据集合中,其中,k为大于等于2且小于等于n的整数,即第二压缩元组至第n压缩元组中的任意一个压缩元组均按照所述第k压缩元组的划分方式进行划分。在第n压缩元组分类完成后,m个数据集合中每个数据集合包括n个数据。
步骤301c、判断对待压缩数据编码是否完成。
若待压缩数据编码未完成,执行步骤301a至步骤301c,继续对待压缩数据进行编码;若待压缩数据编码完成,执行步骤302,确定对m个数据集合中每个数据集合进行编码的编码类型。
在另一种可实现方式中,可以对待压缩数据编码全部完成后,再对压缩元组进行分类。示例的,如图5所示,编码待压缩数据得到n个压缩元组,分类n个压缩元组得到m个数据集合具体的包括以下步骤:
步骤301d、对待压缩数据进行编码,得到n个压缩元组。
需要说明的是,这里也可以理解为对待压缩数据进行了n次编码,每次编码只是对待压缩数据的部分数据进行了编码,对待压缩数据进行了n次编码后,对待压缩数据才全部编码完成,最终得到n个压缩元组,只是每次对待压缩数据的部分数据进行编码后不对编码后数据进行分类,等到对待压缩数据全部编码完成后,才对得到的n个压缩元组进行分类。例如,对待压缩数据进行首次编码,得到第一压缩元组,对待压缩数据进行第二次编码,得到第二压缩元组,对待压缩数据进行第n次编码,得到第n压缩元组。
步骤301e、将n个压缩元组中每个压缩元组分为m类数据,一类数据组成一个数据集合,得到m个数据集合。
可理解的,将n个压缩元组中每个压缩元组分为m类数据可以是将n个压缩元组中每个压缩元组都分为m类数据,再将相同类型的数据归为一类,一类数据组成一个数据集合,得到m个数据集合;或者,将n个压缩元组中每个压缩元组分为m类数据可以是对于第一压缩元组,将第一压缩元组分为m类数据后,一类数据就组成了一个数据集合,m个数据集合中每个数据集合包括1个数据,而对于第k压缩元组,根据划分第一压缩元组的方法将第k压缩元组分为m类数据后,将划分第k压缩元组得到的m类数据中每类数据分到对应类型的数据集合中,其中,k为大于等于2且小于等于n的整数,即第二压缩元组至第n压缩元组中的任意一个压缩元组均按照所述第k压缩元组的划分方式进行划分,在第n压缩元组分类完成后,m个数据集合中每个数据集合包括n个数据。
需要说明的是,对压缩元组进行分类时可以按照内容划分,即数据表示的意思进行划分,也可以按照数据类型进行划分,对于对压缩元组进行分类的方式本申请实施例不做限定,可以进行任意形式的划分,目的是将压缩元组进行分类,减少压缩元组的个数,对压缩元组进行再次压缩时,提高压缩性能。其中,n为大于等于1的整数,m为大于等于1的整数。
另外,在步骤301编码待压缩数据得到n个压缩元组,分类n个压缩元组得到m个数据集合之前,可以先根据待压缩数据的数据量申请缓存空间,缓存空间用于在对数据集合进行编码或解码的时候存储编码表。m个数据集合可以先存储到内存中。在对m个数据集合进行编码时,再将数据集合加载到缓存中。
302、根据第i个数据集合中的数据特点确定第i个数据集合的编码类型,得到第i个数据集合的编码表,其中,i为整数,i的取值为1到m。
在对待压缩数据进行编码得到n个压缩元组,并对n个压缩元组进行分类得到m个数据集合之后,需要先确定对m个数据集合中每个数据集合进行编码的编码类型,具体包括:根据第i个数据集合中的数据特点确定第i个数据集合的编码类型,得到第i个数据集合的编码表,其中,i为整数,i的取值为1到m,可以理解为对于每个数据集合中的任一个数据集合都是根据自身的数据特点确定编码类型,即不同数据特点的数据集合,其使用的编码类型不同。但也不排除,具有相似数据特点的数据集合,可使用相同的编码类型,或者,数据集合包括的数据较少、较简单等特点,无需对数据集合进行编码。
需要说明的是,编码类型可以是哈夫曼编码、哥伦布编码或FSE编码。编码表包括编码规则,可以理解的将原始数据长度转换为较短数据长度的规则,如将8比特(bit)转换为3bit。
可选的,在根据第i个数据集合中的数据特点,确定第i个数据集合的编码类型之前,可以先确定第i个数据集合包括的数据是否离散,若第i个数据集合包括的数据离散,对第i个数据集合进行统计分析,确定第i个数据集合包括的数据的数据特点。例如,统计每个字符出现的频率、根据每个字符的出现频率得到该字符在所有字符中的分布情况等。
另外,在确定对m个数据集合中每个数据集合进行编码的编码类型,得到m个编码表后,并将m个编码表存储到内存中。
303、根据第i个数据集合的编码类型和编码表,编码第i个数据集合得到编码后数据集合i。
在根据第i个数据集合中的数据特点确定第i个数据集合的编码类型,得到第i个数据集合的编码表之后,需要对m个数据集合中每个数据集合进行编码,具体包括:根据第i个数据集合的编码类型和编码表,编码第i个数据集合得到编码后数据集合i,可以理解为对于每个数据集合中的任一个数据集合都是根据确定的该数据集合的编码类型和编码表,对该数据集合进行编码。
304、生成压缩数据。
在根据第i个数据集合的编码类型和编码表,编码第i个数据集合得到编码后数据集合i之后,生成压缩数据,压缩数据包括压缩头和m个编码后数据集合,压缩头包括n、m、第i数据集合的编码类型和编码后数据集合i的长度,即压缩头包括n、m、每个数据集合的编码类型和每个编码后数据集合的长度,n表示对待压缩数据进行编码后得到的压缩元组的个数,m表示对n个压缩元组进行分类得到的数据集合的个数。图6为本申请实施例提供的一种压缩头示意图。
本申请实施例采用分类处理的方法进一步地对压缩元组进行分类,得到数据集合,并针对每个数据集合确定其最佳的编码方法,对数据集合再次进行编码,以便得到对待压缩数据进行压缩后最优的压缩效果,获得较高的压缩率,而且,由于每类数据采用一种编码方法,编码和解码时无需频繁的替换缓存中的编码表,最大程度利用系统缓存,提升压缩性能。因此,本申请实施例提出的数据压缩方法可以兼顾压缩率与压缩性能,在对待压缩数据进行压缩时,既能保证较高的压缩性能,又能获得较高的压缩率,而且有效地降低了能源消耗率。
如图7所示,为了更深入理解本申请实施例提供的数据压缩方法,下面仍以图1所示的待压缩数据abcdefgabcdmabcdef为例进行说明,且仍以LZ4编码算法对待压缩数据abcdefgabcdmabcdef进行编码,编码后得到的第一匹配元组和第二匹配元组,第一匹配元组即第一压缩元组,第二匹配元组即第二压缩元组。在对待压缩数据编码之前,可以先根据待压缩数据的数据量向缓存申请缓存空间,用于在对数据集合进行编码的时候存储编码表。由于第一匹配元组和第二匹配元组均是由原文、原文长度、匹配数据长度和偏移量组成的,对申请的缓存空间也可以按照原文、原文长度、匹配数据长度和偏移量进行划分,来存储划分后得到的数据集合。
在根据待压缩数据的数据量申请缓存空间后,对待压缩数据进行编码,得到了第一匹配元组,第一匹配元组包括了第一原文、第一原文长度、第一匹配数据长度和第一偏移量,其中,第一原文为abcdefg,第一原文长度为7,第一匹配数据长度位4,第一偏移量位7,在得到第一匹配元组后,按照原文、原文长度、匹配数据长度和偏移量对第一匹配元组进行划分,得到原文数据集合、原文长度数据集合、匹配数据长度数据集合和偏移量数据集合,原文数据集合包括abcdefg,将原文数据集合存到原文缓存空间,原文长度数据集合包括7,将原文长度数据集合存到原文长度缓存空间,匹配数据长度数据集合包括4,将匹配数据长度数据集合存到匹配数据长度缓存空间,偏移量数据集合包括7,将偏移量数据集合存到偏移量缓存空间。
然后,判断对待压缩数据编码是否完成,若待压缩数据编码未完成,继续对待压缩数据进行编码,得到第二匹配元组,第二匹配元组包括了第二原文、第二原文长度、第二匹配数据长度和第二偏移量,其中,第二原文为m,第二原文长度为1,第二匹配数据长度为6,第二偏移量为12,在得到第二匹配元组后,按照原文、原文长度、匹配数据长度和偏移量对第二匹配元组进行划分,将第二原文m划分到原文数据集合,将第二原文长度1划分到原文长度数据集合,第二匹配数据长度6划分到匹配数据长度数据集合,第二偏移量12划分到偏移量数据集合,此时,原文数据集合包括了两个数据,即abcdefg和m、原文长度数据集合包括了两个数据,即7和1、匹配数据长度数据集合包括了两个数据,即4和6,偏移量数据集合包括包括了两个数据,即7和12。
当然,也可以在将待压缩数据全部编码完成,得到第一匹配元组和第二匹配元组后,再对第一匹配元组和第二匹配元组进行分类,其中,分类的方法本申请实施例对此不作限定,可以根据原文、原文长度、匹配数据长度和偏移量进行分类,也可根据其他方法进行分类。
在对第二匹配元组进行分类后,再判断对待压缩数据编码是否完成,若待压缩数据编码完成,对原文数据集合、原文长度数据集合、匹配数据长度数据集合和偏移量数据集合分别进行统计分析,确定对原文数据集合进行编码的编码类型,确定对原文长度数据集合进行编码的编码类型,确定对匹配数据长度数据集合进行编码的编码类型,确定对偏移量数据集合进行编码的编码类型,假设对原文数据集合进行编码的编码类型为哈夫曼编码,对匹配数据长度数据集合进行编码的编码类型为FSE编码,对偏移量数据集合进行编码的编码类型为哥伦布编码,由于原文长度数据集合包括的数据较简单,本申请实施例假设不对原文长度数据集合进行编码,在对原文数据集合进行哈夫曼编码、对匹配数据长度数据集合进行FSE编码和对偏移量数据集合进行哥伦布编码完成后,得到编码后原文数据集合、编码后匹配数据长度数据集合和编码后偏移量数据集合。当然,也可以使用其他编码类型对数据集合进行编码,这里只是举例说明,对此不作限定。
最后,生成压缩数据,压缩数据包括压缩头、编码后原文数据集合、原文长度数据集合、编码后匹配数据长度数据集合和编码后偏移量数据集合,压缩头包括两个匹配元组的个数2、两个匹配元组进行分类得到的数据集合的个数4、原文数据集合的编码类型、匹配数据长度数据集合的编码类型、偏移量数据集合的编码类型、编码后原文数据集合长度、原文长度数据集合长度、编码后匹配数据长度数据集合长度和编码后偏移量数据集合长度。
需要说明的是,当每个数据集合选择不同的编码类型时会有不同的编码表,由于缓存空间大小有限,这些编码表可能无法全部缓存在缓存空间中,因此,每当访问一个编码表时就需要将该编码表缓存到缓存空间中,如果编码表频繁的在缓存空间中换入换出会影响性能。在本申请实施例中将压缩元组进行分类,得到的每个数据集合进行编码或解码时,只有当一个数据集合全部编码或解码完成,才会对下一个数据集合进行编码或解码,这样一来,缓存空间换入换出次数仅有分类以后数据集合的次数,大大提升编码或解码性能。示例的,如图8所示,编码或解码过程的缓存空间的性能优化示意图。1、原文编码表载入缓存空间;2、根据原文编码表对所有原文进行编码或解码;3、原文编码表从缓存空间中删除,载入原文长度编码表;4、根据原文长度编码表对所有原文长度进行编码或解码;5、原文长度编码表从缓存空间中删除,载入匹配数据长度编码表;6、根据匹配数据长度编码表对所有匹配数据长度进行编码或解码;7、匹配数据长度编码表从缓存空间中删除,载入偏移量编码表;8、根据偏移量编码表对所有偏移量进行编码或解码。
将本申请实施例提出的数据压缩方法与现有的较常用的数据压缩算法进行对比测试,得到的实验结果如表1所示。
表1 压缩效果对比
压缩算法 | 压缩性能(MB/s) | 解压性能(MB/s) | 压缩率 |
LZ4 | 179.68 | 1195.87 | 1.7 |
Snappy | 136.71 | 628.76 | 1.74 |
ZLIB | 20.36 | 117.62 | 2.58 |
本申请实施例算法 | 175.26 | 546.63 | 2.19 |
从表1中可看出,本申请实施例提出的数据压缩方法的压缩率比LZ4提升30%左右,压缩性能与LZ4保持一致,因此,本申请实施例提出的数据压缩方法可以兼顾压缩率与压缩性能,在对待压缩数据进行压缩时,既能保证较高的压缩性能,又能获得较高的压缩率,而且有效地降低了能源消耗率。
另外,解码过程也就是编码过程的逆向过程。下面针对图7提供的数据压缩方法,本申请实施例提供一种数据解压方法,如图9所示,首先,解析待解压数据的压缩头,得到两个匹配元组的个数2、两个匹配元组进行分类得到的数据集合的个数4、原文数据集合的编码类型、匹配数据长度数据集合的编码类型、偏移量数据集合的编码类型、编码后原文数据集合长度、原文长度数据集合长度、编码后匹配数据长度数据集合长度和编码后偏移量数据集合长度,然后,根据编码后原文数据集合长度确定编码后原文数据集合,根据原文长度数据集合长度确定原文长度数据集合,根据编码后匹配数据长度数据集合长度确定编码后匹配数据长度数据集合,根据编码后偏移量数据集合长度确定编码后偏移量数据集合,再根据原文数据集合的编码类型(可以是图7所示的哈夫曼编码)解码编码后原文数据集合,得到原文数据集合,根据匹配数据长度数据集合的编码类型(可以是图7所示的FSE编码)解码编码后匹配数据长度数据集合,得到匹配数据长度数据集合,根据偏移量数据集合的编码类型(可以是图7所示的哥伦布编码)解码编码后偏移量数据集合,得到偏移量数据集合,其次,根据原文数据集合、原文长度数据集合、匹配数据长度数据集合和偏移量数据集合生成第一匹配元组和第二匹配元组,再根据第一匹配元组和第二匹配元组恢复原始的待压缩数据。
上述主要从各个网元之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个网元,例如数据压缩装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对数据压缩装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图10示出了上述和实施例中涉及的数据压缩装置的一种可能的组成示意图,如图10所示,该数据压缩装置可以包括:编码单元41、分类单元42、确定单元43和生成单元44。
其中,编码单元41,用于支持数据压缩装置执行图3所示的数据压缩方法中的步骤301的编码待压缩数据得到n个压缩元组、303,图4所示的数据压缩方法中的步骤301a、303,图5所示的数据压缩方法中的步骤301d、303。
分类单元42,用于支持数据压缩装置执行图3所示的数据压缩方法中的步骤301的分类n个压缩元组得到m个数据集合,图4所示的数据压缩方法中的步骤301b,图5所示的数据压缩方法中的步骤301e。
确定单元43,用于支持数据压缩装置执行图3所示的数据压缩方法中的步骤302,图4所示的数据压缩方法中的步骤302,图5所示的数据压缩方法中的步骤302。
生成单元44,用于支持数据压缩装置执行图3所示的数据压缩方法中的步骤304,图4所示的数据压缩方法中的步骤304,图5所示的数据压缩方法中的步骤304。
在本申请实施例中,进一步的,如图11所示,该数据压缩装置还可以包括:判断单元45。
判断单元45,用于支持数据压缩装置执行图4所示的数据压缩方法中的步骤301c。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本申请实施例提供的数据压缩装置,用于执行上述数据压缩方法,因此可以达到与上述数据压缩方法相同的效果。
在采用集成的单元的情况下,图12示出了上述实施例中所涉及的数据压缩装置的另一种可能的组成示意图。如图12所示,该数据压缩装置包括:处理模块51和通信模块52。
处理模块51用于对数据压缩装置的动作进行控制管理,例如,处理模块51用于支持数据压缩装置执行图3中的步骤301至步骤304、图4中的步骤301a至步骤304、图5中的步骤301d至步骤304、和/或用于本文所描述的技术的其它过程。通信模块52用于支持数据压缩装置与其他网络实体的通信。数据压缩装置还可以包括存储模块53,用于存储数据压缩装置的程序代码和数据。
其中,处理模块51可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块52可以是通信接口等。存储模块53可以是存储器。
当处理模块51为处理器,通信模块52为通信接口,存储模块53为存储器时,本申请实施例所涉及的数据压缩装置可以为图2所示的计算机设备。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种数据压缩方法,其特征在于,包括:
编码待压缩数据得到n个压缩元组;
分类所述n个压缩元组得到m个数据集合,所述m个数据集合中每个数据集合包括n个数据,n为大于等于1的整数,m为大于等于1的整数;
根据第i个数据集合中的数据特点确定所述第i个数据集合的编码类型,得到所述第i个数据集合的编码表,其中,i为整数,i的取值为1到m;
根据所述第i个数据集合的编码类型和编码表,编码所述第i个数据集合得到编码后数据集合i;
生成压缩数据,所述压缩数据包括压缩头和m个编码后数据集合,所述压缩头包括n、m、所述第i数据集合的编码类型和所述编码后数据集合i的长度,n表示对所述待压缩数据进行编码后得到的压缩元组的个数,m表示对所述n个压缩元组进行分类得到的数据集合的个数。
2.根据权利要求1所述的方法,其特征在于,当n=1时,所述编码待压缩数据得到n个压缩元组,分类所述n个压缩元组得到m个数据集合,具体包括:
对所述待压缩数据进行编码,得到第一压缩元组;
将所述第一压缩元组分为m类数据,一类数据组成一个数据集合,所述m个数据集合中每个数据集合包括1个数据。
3.根据权利要求2所述的方法,其特征在于,当n大于等于2时,在所述将所述第一压缩元组分为m类数据之后,所述方法还包括:
确定所述待压缩数据编码未完成;
对所述待压缩数据进行编码,得到第k压缩元组,并将所述第k压缩元组分为m类数据后,将划分所述第k压缩元组得到的m类数据中每类数据分到对应类型的数据集合中,k为大于等于2且小于等于n的整数;
当所述待压缩数据编码完成时,确定对所述m个数据集合中每个所述数据集合进行编码的编码类型。
4.根据权利要求1所述的方法,其特征在于,所述编码待压缩数据得到n个压缩元组,分类所述n个压缩元组得到m个数据集合,具体包括:
对所述待压缩数据进行编码,得到所述n个压缩元组;
将所述n个压缩元组中每个压缩元组分为m类数据,一类数据组成一个数据集合,得到所述m个数据集合。
5.根据权利要求2-4任一项所述的方法,其特征在于,在所述根据第i个数据集合中的数据特点确定所述第i个数据集合的编码类型之前,所述方法还包括:
确定所述第i个数据集合包括的数据离散;
对所述第i个数据集合进行统计分析,确定所述第i个数据集合包括的数据的数据特点。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
存储所述m个数据集合和所述m个编码表。
7.一种数据压缩装置,其特征在于,包括:
编码单元,用于编码待压缩数据得到n个压缩元组;
分类单元,用于分类所述n个压缩元组得到m个数据集合,所述m个数据集合中每个数据集合包括n个数据,n为大于等于1的整数,m为大于等于1的整数;
确定单元,用于根据第i个数据集合中的数据特点确定所述第i个数据集合的编码类型,得到所述第i个数据集合的编码表,其中,i为整数,i的取值为1到m;
所述编码单元,还用于根据所述第i个数据集合的编码类型和编码表,编码所述第i个数据集合得到编码后数据集合i;
生成单元,用于生成压缩数据,所述压缩数据包括压缩头和m个编码后数据集合,所述压缩头包括n、m、所述第i数据集合的编码类型和所述编码后数据集合i的长度,n表示对所述待压缩数据进行编码后得到的压缩元组的个数,m表示对所述n个压缩元组进行分类得到的数据集合的个数。
8.根据权利要求7所述的装置,其特征在于,当n=1时,
所述编码单元,具体用于对所述待压缩数据进行编码,得到第一压缩元组;
所述分类单元,具体用于将所述第一压缩元组分为m类数据,一类数据组成一个数据集合,所述m个数据集合中每个数据集合包括1个数据。
9.根据权利要求8所述的装置,其特征在于,当n大于等于2时,所述装置还包括:
判断单元,用于确定所述待压缩数据编码未完成;
所述编码单元,具体用于对所述待压缩数据进行编码,得到第k压缩元组;
所述分类单元,具体用于将所述第k压缩元组分为m类数据后,将划分所述第k压缩元组得到的m类数据中每类数据分到对应类型的数据集合中,k为大于等于2且小于等于n的整数;
所述确定单元,用于当所述待压缩数据编码完成时,确定对所述m个数据集合中每个所述数据集合进行编码的编码类型。
10.根据权利要求7所述的装置,其特征在于,
所述编码单元,具体用于对所述待压缩数据进行编码,得到所述n个压缩元组;
所述分类单元,具体用于将所述n个压缩元组中每个压缩元组分为m类数据,一类数据组成一个数据集合,得到所述m个数据集合。
11.根据权利要求8-10任一项所述的装置,其特征在于,
所述确定单元,还用于确定所述第i个数据集合包括的数据离散;
所述确定单元,还用于对所述第i个数据集合进行统计分析,确定所述第i个数据集合包括的数据的数据特点。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
存储单元,用于存储所述m个数据集合和所述m个编码表。
13.一种数据压缩装置,其特征在于,包括:处理器以及与所述处理器通信的通信接口,其中,所述处理器用于执行以下步骤:
编码待压缩数据得到n个压缩元组;
分类所述n个压缩元组得到m个数据集合,所述m个数据集合中每个数据集合包括n个数据,n为大于等于1的整数,m为大于等于1的整数;
根据第i个数据集合中的数据特点确定所述第i个数据集合的编码类型,得到所述第i个数据集合的编码表,其中,i为整数,i的取值为1到m;
根据所述第i个数据集合的编码类型和编码表,编码所述第i个数据集合得到编码后数据集合i;
生成压缩数据,所述压缩数据包括压缩头和m个编码后数据集合,所述压缩头包括n、m、所述第i数据集合的编码类型和所述编码后数据集合i的长度,n表示对所述待压缩数据进行编码后得到的压缩元组的个数,m表示对所述n个压缩元组进行分类得到的数据集合的个数。
14.根据权利要求13所述的装置,其特征在于,所述处理器具体用于:
当n=1时,对所述待压缩数据进行编码,得到第一压缩元组;
将所述第一压缩元组分为m类数据,一类数据组成一个数据集合,所述m个数据集合中每个数据集合包括1个数据。
15.根据权利要求14所述的装置,其特征在于,所述处理器还用于:当n大于等于2时,确定所述待压缩数据编码未完成,对所述待压缩数据进行编码,得到第k压缩元组,并将所述第k压缩元组分为m类数据后,将划分所述第k压缩元组得到的m类数据中每类数据分到对应类型的数据集合中,k为大于等于2且小于等于n的整数,当所述待压缩数据编码完成时,确定对所述m个数据集合中每个所述数据集合进行编码的编码类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710802127.9A CN107565971B (zh) | 2017-09-07 | 2017-09-07 | 一种数据压缩方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710802127.9A CN107565971B (zh) | 2017-09-07 | 2017-09-07 | 一种数据压缩方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107565971A true CN107565971A (zh) | 2018-01-09 |
CN107565971B CN107565971B (zh) | 2020-04-14 |
Family
ID=60979981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710802127.9A Active CN107565971B (zh) | 2017-09-07 | 2017-09-07 | 一种数据压缩方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107565971B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008192A (zh) * | 2019-04-12 | 2019-07-12 | 苏州浪潮智能科技有限公司 | 一种数据文件压缩方法、装置、设备及可读存储介质 |
CN110535846A (zh) * | 2019-08-22 | 2019-12-03 | 中国电力科学研究院有限公司 | 一种基于dl/t698.45协议的数据帧压缩方法和系统 |
WO2020134550A1 (zh) * | 2018-12-29 | 2020-07-02 | 深圳云天励飞技术有限公司 | 数据压缩方法及相关装置 |
CN112738124A (zh) * | 2020-08-24 | 2021-04-30 | 英韧科技(上海)有限公司 | 硬件友好的数据压缩 |
CN112905551A (zh) * | 2019-12-04 | 2021-06-04 | 阿里巴巴集团控股有限公司 | 数据压缩方法、装置、电子设备及计算机可读存储介质 |
CN113114266A (zh) * | 2021-04-30 | 2021-07-13 | 上海智大电子有限公司 | 一种综合监控系统实时数据化简压缩方法 |
CN113572479A (zh) * | 2021-09-22 | 2021-10-29 | 苏州浪潮智能科技有限公司 | 一种有限状态熵编码表的生成方法及系统 |
CN114500670A (zh) * | 2022-02-28 | 2022-05-13 | 北京京东振世信息技术有限公司 | 一种编码压缩方法、解码方法及装置 |
CN116527061A (zh) * | 2023-06-28 | 2023-08-01 | 普天通信有限责任公司 | 一种基于物联网应用识别的数据压缩算法及其系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1293519A (zh) * | 1999-10-19 | 2001-05-02 | 三星电子株式会社 | 数字视频编码方法和设备 |
US20030169933A1 (en) * | 2002-03-09 | 2003-09-11 | Samsung Electronics Co., Ltd. | Method for adaptively encoding motion image based on temporal and spatial complexity and apparatus therefor |
CN103596009A (zh) * | 2012-08-13 | 2014-02-19 | 古如罗技微系统公司 | 解码器及解码方法 |
CN105207678A (zh) * | 2015-09-29 | 2015-12-30 | 东南大学 | 一种改进型lz4压缩算法的硬件实现系统 |
-
2017
- 2017-09-07 CN CN201710802127.9A patent/CN107565971B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1293519A (zh) * | 1999-10-19 | 2001-05-02 | 三星电子株式会社 | 数字视频编码方法和设备 |
US20030169933A1 (en) * | 2002-03-09 | 2003-09-11 | Samsung Electronics Co., Ltd. | Method for adaptively encoding motion image based on temporal and spatial complexity and apparatus therefor |
CN103596009A (zh) * | 2012-08-13 | 2014-02-19 | 古如罗技微系统公司 | 解码器及解码方法 |
CN105207678A (zh) * | 2015-09-29 | 2015-12-30 | 东南大学 | 一种改进型lz4压缩算法的硬件实现系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020134550A1 (zh) * | 2018-12-29 | 2020-07-02 | 深圳云天励飞技术有限公司 | 数据压缩方法及相关装置 |
CN110008192A (zh) * | 2019-04-12 | 2019-07-12 | 苏州浪潮智能科技有限公司 | 一种数据文件压缩方法、装置、设备及可读存储介质 |
CN110535846B (zh) * | 2019-08-22 | 2022-03-04 | 中国电力科学研究院有限公司 | 一种基于dl/t698.45协议的数据帧压缩方法和系统 |
CN110535846A (zh) * | 2019-08-22 | 2019-12-03 | 中国电力科学研究院有限公司 | 一种基于dl/t698.45协议的数据帧压缩方法和系统 |
CN112905551A (zh) * | 2019-12-04 | 2021-06-04 | 阿里巴巴集团控股有限公司 | 数据压缩方法、装置、电子设备及计算机可读存储介质 |
CN112738124A (zh) * | 2020-08-24 | 2021-04-30 | 英韧科技(上海)有限公司 | 硬件友好的数据压缩 |
CN113114266A (zh) * | 2021-04-30 | 2021-07-13 | 上海智大电子有限公司 | 一种综合监控系统实时数据化简压缩方法 |
CN113572479A (zh) * | 2021-09-22 | 2021-10-29 | 苏州浪潮智能科技有限公司 | 一种有限状态熵编码表的生成方法及系统 |
CN113572479B (zh) * | 2021-09-22 | 2021-12-21 | 苏州浪潮智能科技有限公司 | 一种有限状态熵编码表的生成方法及系统 |
CN114500670A (zh) * | 2022-02-28 | 2022-05-13 | 北京京东振世信息技术有限公司 | 一种编码压缩方法、解码方法及装置 |
CN114500670B (zh) * | 2022-02-28 | 2024-04-05 | 北京京东振世信息技术有限公司 | 一种编码压缩方法、解码方法及装置 |
CN116527061A (zh) * | 2023-06-28 | 2023-08-01 | 普天通信有限责任公司 | 一种基于物联网应用识别的数据压缩算法及其系统 |
CN116527061B (zh) * | 2023-06-28 | 2023-09-12 | 普天通信有限责任公司 | 一种基于物联网应用识别的数据压缩算法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107565971B (zh) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107565971A (zh) | 一种数据压缩方法及装置 | |
CN103236847B (zh) | 基于多层哈希结构与游程编码的数据无损压缩方法 | |
CN103326732B (zh) | 压缩数据的方法、解压数据的方法、编码器和解码器 | |
CN104283567B (zh) | 一种名称数据的压缩、解压缩方法及设备 | |
CN102970043B (zh) | 一种基于gzip的压缩硬件系统及其加速方法 | |
US11184021B2 (en) | Using predicates in conditional transcoder for column store | |
CN102122960A (zh) | 一种针对二进制数据的多字符组合无损数据压缩方法 | |
CN109428603A (zh) | 一种数据编码方法、装置以及存储介质 | |
CN105306951B (zh) | 数据压缩编码的流水线并行加速方法及其系统架构 | |
Marlina et al. | Data Compression Using Elias Delta Code | |
CN106506007A (zh) | 一种无损数据压缩和解压缩装置及其方法 | |
CN109428602A (zh) | 一种数据编码方法、装置以及存储介质 | |
CN113300715B (zh) | 一种数据处理方法、装置、硬件压缩设备以及介质 | |
CN106849956A (zh) | 压缩方法、解压缩方法、装置和数据处理系统 | |
CN104156990A (zh) | 一种支持特大型数据窗口的无损压缩编码方法及系统 | |
CN111832257B (zh) | 编码数据的条件转码 | |
CN102843142B (zh) | 可编程逻辑器件配置数据流压缩、解压缩处理方法及系统 | |
CN105376578A (zh) | 图像压缩方法及装置 | |
CN104682966B (zh) | 列表数据的无损压缩方法 | |
CN105099460A (zh) | 字典压缩方法、字典解压缩方法与字典建构方法 | |
CN108932315A (zh) | 一种数据解压的方法以及相关装置 | |
Wang et al. | A simplified variant of tabled asymmetric numeral systems with a smaller look-up table | |
CN202931290U (zh) | 一种基于gzip的压缩硬件系统 | |
US20180145701A1 (en) | Sonic Boom: System For Reducing The Digital Footprint Of Data Streams Through Lossless Scalable Binary Substitution | |
CN109698703A (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 |