CN1868127B - 数据压缩系统和方法 - Google Patents
数据压缩系统和方法 Download PDFInfo
- Publication number
- CN1868127B CN1868127B CN2004800304783A CN200480030478A CN1868127B CN 1868127 B CN1868127 B CN 1868127B CN 2004800304783 A CN2004800304783 A CN 2004800304783A CN 200480030478 A CN200480030478 A CN 200480030478A CN 1868127 B CN1868127 B CN 1868127B
- Authority
- CN
- China
- Prior art keywords
- index
- subsequence
- data
- data file
- value
- 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.)
- Expired - Fee Related
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/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Abstract
本发明提供一种用于压缩数据文件的方法,所述方法包括步骤:从存储装置检索数据文件;将数据文件存储在直接存取存储器中;计算数据文件的子序列内的惟一字节值的频率,该子序列的长度不超过预定长度;创建该子序列的索引,该索引包括表示计算出的该子序列内的惟一字节值的频率的数据值;以及在该子序列具有低于预定阈值的惟一字节值的频率时,将数据变换应用于该子序列,以增加该子序列中的惟一字节值的频率,并且将表示该数据变换的数据值添加到该索引;在该子序列具有高于预定阈值的惟一字节值的频率时,将表示一个或多个惟一值在所述子序列中的位置的数据值添加到该索引;创建输出数据文件并将该索引添加到该输出数据文件。
Description
技术领域
该发明涉及数据压缩领域,特别是涉及基于因子迭代无损压缩进行数据压缩的系统和方法。
背景技术
电二进制文件存在许多不同格式以用于许多不同用途。这些格式包括适用于图像、声音、文本、数据、可执行文件等等的存储的格式。
如果未进行加密,那么包含数据的二进制文件,趋向于结构格式。通常存在标题信息、文本、重复(repetition)和其它组成部分之间的定位(positioning)。通常,二进制文件中的开始几个字节包含与该二进制文件兼容的文件类型且因此应用程序的指示符。可执行文件或者用于执行任何类型的功能的文件都具有相当少的结构格式。然而,作为这些文件的结构要素或者必须与操作系统相互作用以执行功能,或者它们是操作系统的一部分。
由于通过设计,经过压缩和编码的文件去除文件内的重复值,所以它们具有最小结构。在加密情况下,密钥用来定义替换值。对于压缩而言,“速记(shorthand)”被用于重复结构。在经过加密或者压缩的文件的情况下,所述文件将不仅内部结构改变,而且特别在压缩情况下,文件的大小也改变。
从数学上说,对于大小为1,048,576字节(1Mb)的二进制文件而言,存在有2561,048,576种字节排列的可能结构。而在实际使用中,仅仅使用这个数字的一小部分。根据若干不同文件类型、可执行或者可操作的文件的功能的估计以及可用的压缩和加密例程,实际上使用的数目仅仅是接近于该数目。
存在许多现有技术来对数据文件执行数据压缩。一些数据压缩算法是基于索引技术的,并且涉及所述数据文件内的惟一值的计算和索引。在大多数已压缩的数据文件中,在每个256字节代码段内存在一些数据值的重复。在平均文件中,每256字节代码段仅仅有160至170个惟一的非重复值。利用这个数目的值,基于阶乘计算的数据压缩技术无法很好地工作。
发明内容
在一个方面,本发明提供了一种用于压缩数据文件的方法,该数据文件包含其长度大于或等于预定长度的字节序列,所述方法包括步骤:通过一计算装置中包括的处理器从存储装置检索所述数据文件;通过该处理器将该数据文件存储在该计算装置中包括的直接存取存储器中;通过该处理器计算所述数据文件的子序列内的惟一字节值的频率,所述子序列的长度不超过所述预定长度;通过连接至该计算装置的多个索引组成部分创建所述子序列的索引,该索引包括表示计算出的所述子序列内的惟一字节值的频率的数据值;以及在所述子序列具有低于预定阈值的惟一字节值的频率时,通过连接至该计算装置的多个数据变换组成部分将数据变换应用于所述子序列,以增加所述子序列中的惟一字节值的频率,并且将表示所述数据变换的数据值添加到所述索引;在所述子序列具有高于预定阈值的惟一字节值的频率时,通过该些索引组成部分将表示一个或多个惟一值在所述子序列中的位置的数据值添加到所述索引;通过该处理器创建输出数据文件,该数据文件具有文件类型标识符;以及通过该处理器将所述索引添加到所述输出数据文件。
在本说明书和权利要求中使用的术语“包括(compring)”表示“至少部分地由……构成”。也就是说,当解释本说明书和权利要求中包括该术语的陈述时,每个陈述中由该术语开始的特征所有都需要出现,但是其他特征也可以出现。相关术语(比如“包含”(“comprise”和“comprised”))也以同样的方式来解释。
依照本发明的另一方面,提供了一种用于压缩数据文件的方法,所述数据文件包括其长度大于或等于预定长度的字节序列,所述方法包括下述步骤:通过一计算装置中包括的处理器从存储装置检索所述数据文件;通过该处理器将所述数据文件存储在该计算装置中包括的直接存取存储器中;通过该处理器计算所述数据文件的子序列内的惟一字节值的频率,所述子序列的长度不超过所述预定长度;通过该处理器计算所述一个或多个惟一值在所述子序列中的位置;通过连接至该计算装置的多个索引组成部分创建所述子序列的索引,所述索引包括表示计算出的所述子序列内的惟一字节值的频率的数据值;以及在所述子序列具有低于预定阈值的惟一字节值的频率时,通过连接至该计算装置的多个数据变换部分将数据变换应用于所述子序列,以增加所述子序列中的惟一字节值的频率,并且将表示所述数据变换的数据值添加到所述索引;在所述子序列具有高于预定阈值的惟一字节值的频率时,通过该些索引组成部分将表示一个或多个惟一值在所述子序列中的位置的数据值添加到所述索引;通过该处理器创建输出数据文件,该数据文件具有文件类型标识符;以及通过该处理器将所述索引添加到所述输出数据文件。
依照本发明的另一方面,提供了一种用于压缩数据文件的系统,所述数据文件包括其长度大于或等于预定长度的字节序列,其中所述系统包括:用于存储该数据文件的二级存储装置;计算装置,连接至该二级存储装置并包括有用于存储该数据文件的直接存取存储器和处理器,该处理器用于从该二级存储装置检索所述数据文件,将所述数据文件存储在直接存取存储器中,及计算所述数据文件的子序列内的惟一字节值的频率,所述子序列的长度不超过所述预定长度;多个索引组成部分,连接至该计算装置,用于创建所述子序列的索引,所述索引包括表示计算出的所述子序列内的惟一字节值的频率的数据值;以及多个数据变换组成部分,连接至该计算装置,用于在所述子序列具有低于预定阈值的惟一字节值的频率时,将数据变换应用于所述子序列,以增加所述子序列中的惟一字节值的频率,并且将表示所述数据变换的数据值添加到所述索引;其中,在所述子序列具有高于预定阈值的惟一字节值的频率时,这些索引组成部分将表示一个或多个惟一值在所述子序列中的位置的数据值添加到所述索引;该处理器还用于创建输出数据文件并将所述索引添加到所述输出数据文件,该数据文件具有文件类型标识符。
依照本发明的另一方面,提供了一种用于压缩数据文件的系统,所述数据文件包括其长度大于或等于预定长度的字节序列,其中所述系统包括:用于存储该数据文件的二级存储装置;计算装置,连接至该二级存储装置并包括有用于存储该数据文件的直接存取存储器和处理器,该处理器用于从该二级存储装置检索所述数据文件,将所述数据文件存储在直接存取存储器中,计算所述数据文件的子序列内的惟一字节值的频率,所述子序列的长度不超过所述预定长度,及计算所述一个或多个惟一值在所述子序列中的位置;多个索引组成部分,连接至该计算装置,用于创建所述子序列的索引,所述索引包括表示计算出的所述子序列内的惟一字节值的频率的数据值;以及多个数据变换组成部分,连接至该计算装置,用于在所述子序列具有低于预定阈值的惟一字节值的频率时,将数据变换应用于所述子序列,以增加所述子序列中的惟一字节值的频率,并且将表示所述数据变换的数据值添加到所述索引;其中,在所述子序列具有高于预定阈值的惟一字节值的频率时,该些索引组成部分将表示一个或多个惟一值在所述子序列中的位置的数据值添加到所述索引;该处理器还用于创建输出数据文件并将所述索引添加到所述输出数据文件,该数据文件具有文件类型标识符。
附图说明
现在将参考附图描述本发明的数据压缩系统和方法的优选形式,其中:
图1示出本发明的系统的优选形式;
图2,3和4示出本发明的优选形式的压缩过程的流程图;
图5示出本发明优选实施例的预期压缩结果的表格;
图6举例说明本发明的另一方面,其涉及多重复字节压缩增强;以及
图7也举例说明本发明的另一方面,其涉及多重复字节压缩增强。
具体实施方式
本发明提供一种数据压缩系统和方法,其旨在应用于数据文件5。数据文件5可以是任何合适的数据格式,其包括BMP、WAV、DOC、XLS、MDB、ZIP、SIT、ARJ、ZOO、TIF、JPG、GIF、MP3、MP4等等。数据文件5可以存储在形成计算装置15的一部分或者至少与其接口的二级存储装置10中。计算装置15至少包括与直接存取存储器25和显示器30接口的处理器20。应当明白的是,计算装置可以包括其它的组成部分或者与其它的组成部分接口,比如数据输入装置(未示出)和输出装置(未示出)。
可以预料的是,数据文件5包含其长度大于或等于预定长度的字节序列。在本发明的一种优选形式中,该预定长度是300字节。
在操作中,计算装置15的处理器20从二级存储装置10检索所有或者部分数据文件5。该检索出的数据文件或者部分被存储在直接存取存储器25中。各种操作是针对其中存储的数据文件或者其部分进行的。在直接存取存储器25中创建最终得到的输出数据文件35,并且将其存储在二级存储装置10或者其它的二级存储装置中。期望的是,在多数情况下,输出数据文件35的大小将小于数据文件5的大小。
首先检查数据文件5的子序列。子序列的长度优选不超过预定长度300字节。如果所述识别出的惟一值的数目降到阈值之下,那么可以在一次尝试中将一系列数据变换应用于该子序列中,以增加所述子序列中的惟一字节值的频率。
多个数据变换组成部分40被存储在直接存取存储器25中或者二级存储装置中。所述数据变换组成部分40可以包括多个随机产生的字节值的序列或者字节值的预定序列。该序列被存储为掩码结构45。除了数据变换组成部分之外,可供选择地的或者优选地,还包括多个掩码公式50,该掩码公式可用于产生另外的掩码结构45。数据变换组成部分的应用将在下面进一步进行描述。
所述系统还包括多个索引组成部分60。在该数据文件5的子序列的处理期间,创建随后将被写入输出数据文件35中的索引65。所述索引组成部分60还可以包括临时位置索引70、位置索引75和置换索引(permutation index)80。在某些情况下,位置索引75和置换索引80的内容将被添加到所述索引65中。下面将对各种索引组成部分60的操作进行进一步的描述。
所述系统还可以包括在直接存取存储器25或者二级存储装置中存储的数据阵列90。在数据阵列90的内容被写入输出数据文件35之前,该数据阵列90可用于存储各种索引组成部分60和正在被压缩的数据文件5的子序列的部分。
图2至4举例说明本发明的优选形式的操作。二进制数据文件5优选地被分段成多个数据组。在本发明的一种优选形式中,各个数据组优选为300字节或者更少。然而,应当明白的是,正在被压缩的数据组的大小可以是超过五位的任何大小。该数据文件首先被检验200,以确定数据文件的长度是否大于或等于预定长度。在本发明的一种优选形式中,初始的预定长度是300字节。在一种形式中,整个数据文件可以从二级存储装置检索到,并且将整个数据文件存储在随机存取存储器25的数据阵列90中。或者,数据文件5的部份可以从二级存储装置10中检索出作为数据流。
数据组被计数205,以便计算该数据组内惟一数据值的频率。将惟一数据值的频率与预定阈值相比较210。在一种优选形式中,预定阈值为256。如果在300字节子序列内存在少于256个惟一值,那么可以在一次尝试中将一个或多个数据变换应用于该子序列,以增加该子序列内惟一字节值的频率。
如果300字节内的惟一字节值的频率降到256个值的预定阈值之下,那么测试215子序列,以识别数据变换“掩码”是否适用于所述子序列。在本发明的一种优选形式中,结构库被维持在比如直接存取存储器25之类的计算机存储器中。该库优选包括多个随机产生的数据集。这些数据集中的每个可以利用数据集标识符来识别,所述数据集标识符存储在计算机存储器中并且与各个随机产生的数据集相关联。
在一种形式中,至少一个随机产生的数据集的长度基本上等于数据文件的子序列的长度。换句话说,所述子序列中的字节的数目与在变换数据集或者掩码中的字节数目相同。基于相应的字节值和所述检索到的变换数据集,通过将数据变换应用于所述子序列中的各个字节值,可以将这种掩码应用于所述子序列中。
数据变换的一个实例的是模数加法。将所述子序列的第一字节值和所述数据集的第一字节值加在一起,然后对总数进行模256的计算。例如:如果所述子序列的第一个二进制值是168,而所述识别出的数据集的第一个二进制值是203,那么合并后的总数是371。由371进行MOD256的计算后的变换值是115。然后利用所述数据集中的第二字节,以同样的方式变换所述序列中的第二字节。然后基于所述数据集中的第三字节来变换在所述子序列中的第三字节,等等。
按照这种方式,将所述掩码应用220到所述子序列。
在一种形式中,在计算机存储器中可以存储有65,536种掩码结构,各个掩码具有数据集标识符,该数据集标识符的形式为0和65,536之间的索引号。所述索引可以是指向相关数据集标识符的简单的14位段。
该数据变换组成部分40可以包括掩码公式(formula),例如:
·300字节或者更少字节的数据文件的在前(preceding)序列的标准误差。应当明白的是,由于数据文件的第一个序列没有在前子序列,因而该公式不可用于数据文件的第一个序列。
·基于上述的子序列或者标准偏差来对所述子序列内的值进行反序(Reversal)。
·基于子序列的结构计算的适用结构。
·基于文件结构随机产生的段,其被添加到所述相关子序列或者从相关子序列中减去。
上述公式可以被预先应用来产生一系列掩码结构。或者,在数据变换期间,可以计算相关字节值。在一种形式中,512个随机产生的结构或者掩码结构可以被存储在直接存取存储器25中。这些结构被应用于可以在300字节序列内具有256或更多个0值的数据文件的子序列。在形成许多软件应用程序的二进制文件部分的标题中,这是常见的。这些随机产生的结构还可以被应用于具有高重复级的其它格式中。
在所述子序列上的数据变换之后,再次对所述子序列进行测试210,以识别所述300字节内是否存在256个惟一值。如果不存在256个惟一值,并且没有另外的掩码应用于该子序列中,那么300字节的阈值被降低并且在较小的子序列上重复所述过程。在一个优选实施例中,阈值可以被临时地降低到152个7位值或者77个6位值以检查少于300个8位值(字节)。然后将阈值提升到300字节,以用于下一个子序列。以下将进行更为详细的描述。
添加随机文件未必将在256字节段内创建256个惟一值,但是有大约10%的可能。可以预料的是,一旦已经应用适当的随机文件结构,那么在不超过300字节的数据段内将有256个惟一值。在任何情况下,数据变换的目的是增加数据组中的惟一数据值的频率。
本发明计算所述数据组内的300个数据值的索引。
所述索引被优选存储在直接存取存储器25中的数据阵列90中。首先,利用两位来创建300个数据值的索引。如果在300字节数据组内已经识别出256个惟一值,那么位值“01”被写入225到所述索引中。
在掩码已经被应用于所述子序列的情况下,所述掩码或者数据集标识符随后被写入230所述索引。该掩码标识符将优选为16位值,其识别在0和65,536之间的掩码值。所述掩码标识符中的值0表示这样的事实:即没有掩码或者零掩码已经被应用于所述子序列中。在零数据集被应用于所述子序列中的情况下,经过数据变换后的所述子序列基本上和数据变换之前的所述子序列相同。
本发明的方法中的下一步是创建235临时位置索引。
在正从300字节数据组中提取256个惟一值的情况下,临时位置索引创建方法开始于所述数据组中的第一字节,并且检查所述数据组中的随后字节,直到256个惟一值已经被识别出。如果被检查到的特定值是该数据值在该数据组或者前面数据组中的第一次出现,那么“1”位值被添加到临时索引中。另一方面,如果被检查到的数据值是较早数据值的重复,那么“0”位值被写入到所述索引中。一旦已经将256个“1”位写入到所述索引中,那么索引方法终止。
所述临时索引便于将所述数据组中的每个数据值容易地放置在最终得到的压缩位流中且在最终得到的压缩位流中识别所述数据组中的每个数据值。所述索引中的“1”值的数目表示使用了多少个位值。举例来说,如果临时索引中的283个条目(entries)后,在临时索引中出现了256个“1”值,那么这表示在所述子序列的283个字节内存在256个惟一字节值。
如果在300字节数据组内存在256个或更多值,那么所述索引的开始两位将已经被设置为“01”。当所述临时索引可以被简单地添加到主索引时,存在存储该信息的更为有效的方法。在所述子序列中出现的“1”值的数目是已知的。如果不考虑它们出现的次序,那么仅仅需要记录惟一字节值的情形(instances)的数目。
优选创建240位置索引并且将该位置索引写入到主索引中,而非记录临时索引本身。对于300字节子序列而言,在临时索引包括其后跟随44个“0”值的256个“1”值的情况下,可以为此分配位置索引“0“。在300字节数据组内排列44个“0”值和256个“1”值的方式的数目是nCr。这意味着,在存在256个“1”值和44个“0”值的情况下,在300个值内存在300!/256!.44!种可能组合,该组合数等于1.34x1053。
这种最大位置索引值1.34x1053小于值2177,该值需要177位来进行表示。
这意味着,通过利用在临时索引中存在有至少256个“1”值的事实,位置索引可以被记录为177位或者22.125字节,而非存储300位的实际临时索引。
记录数据组内的数据值的次序以启动压缩以及解压缩同样也是重要的。这是通过创建245置换索引并且通过将该置换索引写入主索引来实现的。
置换索引计算是基于256个惟一值可被排序的方式的数目或者在不重复的情况下256个值的置换的数目的。对于第一个值,存在256种可能性,对于第二值,存在255种可能性,对于第三值,存在有254种可能性,等等。这被表示为256!,称为“256的阶乘”。256个惟一值的可能置换的数目因此是8.57x10506。由于21684等于8.6x10506,其大于8.57x10506,所以该值可以由1,684位来表示。1,684位等效于210.5个字节。
序列0,1,2,3,4…,254,255将被表示为置换编号1,而序列255,254,253…3,2,1,0将由置换编号8.57x10506表示。
将所述置换索引写入主索引中。到现在为止,所述主索引将包括表示计算出的所述子序列内惟一位值的频率的数据值。这将是位值“01”,其后继之表示掩码已经被应用的16位,随后是表示位置索引的177位,随后是表示置换索引的1,684位。
在到达这样的一点后:在该点上,或者在数据文件中没有留下足够的位来获得足够长度的子序列,或者没有留下充足的唯一值,那么索引就被写入250输出文件中。
该输出文件优选包括三个初始字节来标识文件类型。在所述文件类型标识符之后的另两个字节表示本发明的方法已经在特定数据文件上运行的次数,直到最大65,536次重复。
在这五个字节之后,在数据阵列90中存储的索引被添加到输出文件。在所述索引之后增加的是这些索引中未用的、或者由于缺乏保持在数据文件中的足够位值的任何值或者唯一值的任意值。
在大多数情况下,期望的是,存在五个标题字节,其后继之以主体,以及在输出文件末端以完整的未压缩的形式写入的63或者更少位值。所述输出文件的主体优选是被连续地写入的索引的集合,以便于以流的方式进行提取。
如图2所述,存在这样的情形:在本发明的方法的多次迭代之后,在所述数据文件中不再剩余300字节,或者存在有300字节的子序列,在该子序列中,不存在256个惟一值并且没有另外的掩码适用。如在260中所示,在一种优选形式中,从所述数据文件检索到的子序列的大小可以减少。
参考图3,检验305数据文件以识别在所述数据文件中是否剩余至少152个字节。
如果在所述数据文件中剩余至少133个字节,该133个字节包含152个7位值,那么在所述152个7位值内的惟一值的数目被计数310。然后相对于例如128的阈值数目来检验315惟一值的数目。如果在133字节子序列中不存在足够的惟一值,那么识别适用的掩码(步骤340)并且按类似方式将该适用的掩码应用于图2的步骤215和220中(步骤345)。
一旦在所述数据文件中的152个7位值中识别出惟一值的阈值数目,那么位序列“10”被写入350到所述索引中,并且该方法继续前进到图2中的230表示的步骤。
如果在所述数据文件中不存在剩余来待处理的152个7值,或者128个惟一值不能位于1527位子序列内并且如355所示没有另外的掩码适用,那么该方法转到图4所示的步骤。如图4所示,处于检查中的数据文件中的位组的数目被减少到77个6位值。如果存在405剩余在数据文件中的77个6位值,那么在77个6位值中的惟一值的数目被计数410。
相对于阈值64来检验415惟一值的数目。如果在所述77个6位值中存在小于64个惟一值,那么该方法确定420掩码是否适用。如果掩码适用,那么应用425该掩码。这最后二个步骤420和425类似于图2的步骤215和220和图3的步骤340和345。
如果在77个6位子序列中存在64个惟一值,那么值“11”被写入430到所述索引中。然后控制返回到图2中的前面步骤230。
如果在数据文件中不存在剩余来待处理的77个6位值,或者在所述77个6位值序列内不存在64个惟一值,那么位值“00”被写入435到所述索引中,按照与图2所示的步骤250一样的方法将所述索引写入450到输出文件,并且所述数据文件中的剩余字节被写入460到所述输出文件中。
应当明白的是,取决于处于检查中的字节的数目,如图2的步骤245所示,置换索引需要微小变化。当在152个7位组内存在128个惟一数据值的情况下,位置索引将为152!/128.24!,其等于5.48x1027。由于293=9.9x1027,所以这可以由93位来表示。
当在77个6位组内存在64个惟一值时,所述索引将为77!/64!/.13!。248=2.81×1014,其大于前者值1.84x1014,所以这可以由42位来表示。
类似地,取决于处于检查中的字节的数目,如图2中的步骤245所示,置换索引需要微小变化。128个值的置换为128!或者3.86x10215。由于2717=6.89x10215,所以这需要717位来表示。
64个值的置换是64!或者1.27x1089。由于2296=1.27x1089,所以这可以由296位来表示。
图5举例说明关于数据组大小为377字节(8位组)、350字节、320字节、300字节、152个7位组和77个6位组的预期结果的表格。该表格所包括的是所包含的变化的效果的指示。描述如下。
解压缩仅仅是将上述过程反向。索引值表示从第一个到最后一个(第256)的各个值的范围。假设所述范围提供相关值。则索引可以被用于与所述标题一起重构。由于所有组成部分被一起打包,所以可以设想的是使用流。
如果存在更为有效的方法,那么可以根据用于段的“0”和“1”值的字串来改变重复值的放置的索引。例如,如果存在仅仅一个或两个重复值,那么字节的数目将为257或者258。已知的是,对于该段而言,所述第一个字节和最后一个字节是惟一的,而不是使用第257位和第258位。因此,在257个值的情况下,8位将提供单个重复值的位置,而在258个字节段情况下,16位将提供两个重复值的位置。
所述方法可以被应用于所有文件类型和结构。对于利用诸如PKWare的ZIP产品之类的工具来相当的数量地压缩的文件类型或者结构,在一次完成(single pass)上本发明的方法不会达到相同的程度。然而,该方法可以被重复地应用于相同的文件,每次在大小上减小。所述次数或者重复次数取决于硬件处理和/或用户需求时间。
由于所有组成部分是已知的,所以解压缩非常快。由于压缩需要对随机数据结构进行匹配时,所以解压缩比压缩更快。
由于所有的索引被包含在实际数据本身中,那么可以同时地执行多个解压缩例程。
其它的应用程序可以包括软件压缩,数据压缩,在掌机(console)之间的在线游戏以及语音IP和/或视频点播等,所述掌机诸如是索尼游戏站2、微软公司X-Box等。该本发明具有以任何格式在任何地方存储、发送或者使用的数据或者二进制信息的应用程序。
上述描述是基于在300字节代码段或者更小的代码段内的256个惟一值的。应当明白的是,这种选择的大小是仅仅用于示例性的目的。可以使用这方法重构5位或更多位的数据组,或者在0和31之间的值。减少随机产生的数据集的数目或者覆盖文件意味着还可以使用3位值和4位值。
使用比所述8位(256值)更大的位值可以实现更大的节省。例如,在9位值被压缩的情况下,与利用8位压缩达到的相比,其在压缩时有进一步的好处。
节省或者压缩随着每值使用的位的数目的增加而增加。256个值(300字节段)的压缩不能与512个值(600字节段)的压缩一样多。依次,512个值数据的压缩不能与1024个值的压缩一样多。由于计算必须是基于文件大小的,因而不存在较高的确定级别。
通过使用上述300字节的方法,这可以被扩展至377字节组。这意味着,所述有效范围是256至377字节组,其中对于在本说明书中描述的以及在图5举例说明的优选实施例而言,300字节是最佳级别。
针对300个8位组(字节),152个位组以及77个位组的变化可以在压缩文件的标题中指示出。该变化可以包括两个(2)部分。它们是:
1.每段大小的相关位组的数目的指示。对于8位组而言,大小范围是256至377,其由7位来表示。对于7位组而言,范围可能以5位表示,而对于6位组而言,范围可以以4位表示。
2.可以在上述每一个的末端添加另一位,以表示在每一位组内是否出现变化。“0”表示No(否),而“1”表示Yes(是)。
因此,所述标题包含表示上述值的另外的19位。
如果对于每个标题,变化值是允许的,那么可以将变化值逐组地写入到所述索引中。
例如,在一组8位组上的缺省可能是300个值,但是各个段可以在256和377个值之间变化,如所包括的变化值所表示的。
本发明的另外实施例可以涉及多重复字节压缩增强,并且将参考图6和7对此进行描述。
功能电子文件分成若干不同种类的字节结构。这些从简单的2颜色位图变化到使用任何目前可用的无损压缩算法压缩的文件。
对于标题信息之后的2色位图而言,一个位值意味着黑色,另一个位值意味着白色。由于存在大量重复,所以以无损耗方式对这些文件进行压缩是简单的。
移动到24位位图,图案的识别变得更加困难,由此使用现有算法进行的无损压缩比率不如针对更简单的位图结构进行的无损压缩比率一样大。
这里描述的处理将更简单的图案引入到24位位图,对于标准照片类型图像,其允许使用任何目前可用的无损压缩算法,以显著地增加压缩量。
为了实现这个目的,如图6中的步骤610所例示,原始图像被分解为3个组成部分,其中合并的尺寸明显地大于所述原始图像。
然后,如620中所示,所有3字节(24位)组按照升序的十进制数进行排列。例如,236,217,67被重新排序为67,217,236。使用Huffman结构,将在字节排列中的变化记录在所述索引中。
由于仅仅有6种可能的原始结构,利用以下位索引来记录这些:
00=123
01=132
100=213
101=231
110=312
111=321
上面数字中的每一个表示当与它们的排序后的放置相比时所述字节的原始位置。
一旦图像已经被完全地扫描,这个索引被写入到文件(文件A)中,如625中所示。
然后,如630中所示,所有最低的或每个组的当前第一字节值被写入到一不同的文件(文件B)中。
如635中所示,由于字节值是有序的,第二字节值减第一字节值的值被写入到文件(文件C)中,其后继之第三字节值减第二字节值的值。
这样已经创建了3个文件:文件A、文件B和文件C。文件B和文件C的合并总数将与原始24位位图相同。由于文件A表示字节的索引,所以在尺寸上,文件A是额外开销(overhead)。
如果随后利用无损耗算法或如WINZIP之类的产品640将全部的三个文件(A,B和C)压缩成一个文件650,那么得到的文件平均比通过简单地在未修改的图像文件上应用这些工具达到的要小25%。
测试已经表示了2.5%下降的最坏情况,最好的情况是图像质量真实的24位位图的82%。利用JPEG的无损压缩模式可以产生相同的效果。
可以利用3个字节组将该过程应用于任何文件结构以保持数据。它可能同时扩大为覆盖4,5,6,7,8等等字节结构,以达到无损压缩的更高级别。
由于位图文件被用于显示图象,Wave(.wav)文件用于播放声音。现在将参考图7,来描述涉及Wave格式文件的压缩增强处理的另一个例子。由于存在不同级别的位图文件(2位、4位、8位、10位、12位、16位、24位和30位),其中每个位图提供更多颜色或者质量,对于Wave文件发生相同的情况。
利用若干组成部分来创建Wave文件,这些组成部分是平均采样速率、采样速率、声音样本大小和通道数目。
较低的采样速率意味着较小文件,但是具有较低质量。单声道文件同样小于立体声文件。
在此被寻址的Wave格式,是将完整品质立体声音乐存储在商用CD上时使用的格式。这个格式是从Wave格式转换成CD格式。
对于具有176.4Kb/秒的平均数据速率、44.1kHz的采样率、16位声音样本大小和2(立体声)通道的Wave文件而言,可能适用以下情况。
如果通过编号为1到n来表示所述文件中的全部的字节值,其中n是在文件中的最后字节(对于正常的声音文件,这将是50,000,000的数量级),所有偶数位字节值被写入到一个文件(文件A),如在725所示,而所有奇数位字节值被写入到另一不同文件(文件B),如在730所示。例如:
字节值 | 255 | 167 | 33 | 0 | 0 | 24 | 24 | 167 | 167 |
顺序值 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
文件1(奇数) | 255 | 33 | 0 | 24 | 167 | ||||
文件2(偶数) | 167 | 0 | 24 | 167 |
如果随后利用无损耗算法或如WINZIP之类的产品将两个文件(文件1和文件2)压缩成一个文件,再次如640所示,那么得到的文件650平均比通过简单地在未修改的图像文件上应用这些工具达到的要小20%。
测试已经暗示了:在最坏情况下,已压缩文件的大小有10%额外的下降,在最好的情况下,在大小上有43%的下降。
提取/解压缩是简单的,在使用相关的无损耗工具解压缩文件1和文件2之后,文件2的字节被重新插入到文件1的每个字节之间。
以上描述了包括其优选形式的本发明。对于本领域技术人员而言,改变和修改是显而易见的,其趋于并入所附权利要求定义的范围内。
Claims (15)
1.一种用于压缩数据文件的方法,所述数据文件包含其长度大于或等于预定长度的字节序列,所述方法包括步骤:
通过一计算装置中包括的处理器从二级存储装置检索所述数据文件;
通过该处理器将所述数据文件存储在该计算装置中包括的直接存取存储器中;
通过该处理器计算所述数据文件的子序列内的惟一字节值的频率,所述子序列的长度不超过所述预定长度;
通过连接至该计算装置的多个索引组成部分创建所述子序列的索引,所述索引包括表示计算出的所述子序列内的惟一字节值的频率的数据值;以及
在所述子序列具有低于预定阈值的惟一字节值的频率时,通过连接至该计算装置的多个数据变换组成部分将数据变换应用于所述子序列,以增加所述子序列中的惟一字节值的频率,并且将表示所述数据变换的数据值添加到所述索引;
在所述子序列具有高于预定阈值的惟一字节值的频率时,通过该些索引组成部分将表示一个或多个惟一值在所述子序列中的位置的数据值添加到所述索引;
通过该处理器创建输出数据文件,该数据文件具有文件类型标识符;以及
通过该处理器将所述索引添加到所述输出数据文件。
2.如权利要求1所述的压缩数据文件的方法,其中,所述将数据变换应用于所述子序列的步骤还包括步骤:
在计算机存储器中维持多个变换数据集,所述数据集具有字节值序列并且通过变换数据集标识符而被识别;
从计算机存储器检索一个所述变换数据集,所述检索的变换数据集的长度等于所述数据文件的子序列的长度;并且
根据所述检索的数据集中的相应字节值,将数据变换应用于所述子序列中的各个字节值。
3.如权利要求2所述的压缩数据文件的方法,其中,在基于至少一个所述检索的变换数据集的数据变换之后的所述子序列和所述数据变换之前的所述子序列相同。
4.如权利要求2所述的压缩数据文件的方法,其中,至少一个所述变换数据集包含随机产生的字节速率序列。
5.如权利要求2所述的压缩数据文件的方法,其中,至少一个变换数据集包含预定的字节速率序列。
6.如权利要求2所述的压缩数据文件的方法,其中,至少一个变换数据集包含从除所述数据文件的所述子序列之外所述数据文件的一部分导出的字节值序列。
7.如权利要求2所述的压缩数据文件的方法,还包含步骤:将应用于所述子序列的数据变换数据集的变换数据集标识符添加到所述索引。
8.一种用于压缩数据文件的方法,所述数据文件包括其长度大于或等于预定长度的字节序列,所述方法包括下述步骤:
通过一计算装置中包括的处理器从二级存储装置检索所述数据文件;
通过该处理器将所述数据文件存储在该计算装置中包括的直接存取存储器中;
通过该处理器计算所述数据文件的子序列内的惟一字节值的频率,所述子序列的长度不超过所述预定长度;
通过该处理器计算所述一个或多个惟一值在所述子序列中的位置;
通过连接至该计算装置的多个索引组成部分创建所述子序列的索引,所述索引包括表示计算出的所述子序列内的惟一字节值的频率的数据值;以及
在所述子序列具有低于预定阈值的惟一字节值的频率时,通过连接至该计算装置的多个数据变换组成部分将数据变换应用于所述子序列,以增加所述子序列中的惟一字节值的频率,并且将表示所述数据变换的数据值添加到所述索引;
在所述子序列具有高于预定阈值的惟一字节值的频率时,通过该些索引组成部分将表示一个或多个惟一值在所述子序列中的位置的数据值添加到所述索引;
通过该处理器创建输出数据文件,该数据文件具有文件类型标识符;以及
通过该处理器将所述索引添加到所述输出数据文件。
9.如权利要求8所述的压缩数据文件的方法,其中,所述计算一个或多个惟一值在所述子序列中的位置的步骤还包含步骤:
在计算机存储器中创建临时位置索引;
从所述子序列检索连续字节值;
在检索每个字节值时,确定所述检索的字节值是惟一字节值还是重复值;
在检测到惟一字节值时,将两个位值中的一个添加到所述临时位置索引,或者将所述两个位值中的另一个添加到所述临时位置索引;
根据所述临时位置索引,创建表示所述一个或多个惟一值的位置的位置索引;以及
至少部分地根据所述位置索引,计算表示所述一个或多个惟一值的所述位置的数据值。
10.如权利要求9所述的压缩数据文件的方法,其中,所述子序列中的字节数目等于所述临时位置索引中的位的数目。
11.如权利要求9所述的压缩数据文件的方法,其中,所述位置索引的大小小于所述临时位置索引的大小。
12.如权利要求9所述的压缩数据文件的方法,还包含步骤:
创建表示惟一字节值在所述子序列内的次序的置换索引;以及
根据所述位置索引和所述置换索引,计算表示所述一个或多个惟一值的所述位置的数据值。
13.如权利要求12所述的压缩数据文件的方法,包含步骤:将所述位置索引和所述置换索引并置,以形成表示所述一个或多个惟一值的位置的数据值。
14.一种用于压缩数据文件的系统,所述数据文件包括其长度大于或等于预定长度的字节序列,其中所述系统包括:
用于存储该数据文件的二级存储装置;
计算装置,连接至该二级存储装置并包括有用于存储该数据文件的直接存取存储器和处理器,该处理器用于从该二级存储装置检索所述数据文件,将所述数据文件存储在该直接存取存储器中,及计算所述数据文件的子序列内的惟一字节值的频率,所述子序列的长度不超过所述预定长度;
多个索引组成部分,连接至该计算装置,用于创建所述子序列的索引,所述索引包括表示计算出的所述子序列内的惟一字节值的频率的数据值;以及
多个数据变换组成部分,连接至该计算装置,用于在所述子序列具有低于预定阈值的惟一字节值的频率时,将数据变换应用于所述子序列,以增加所述子序列中的惟一字节值的频率,并且将表示所述数据变换的数据值添加到所述索引;
其中,在所述子序列具有高于预定阈值的惟一字节值的频率时,该些索引组成部分将表示一个或多个惟一值在所述子序列中的位置的数据值添加到所述索引;及
该处理器还用于创建输出数据文件并将所述索引添加到所述输出数据文件,该数据文件具有文件类型标识符。
15.一种用于压缩数据文件的系统,所述数据文件包括其长度大于或等于预定长度的字节序列,其中所述系统包括:
用于存储该数据文件的二级存储装置;
计算装置,连接至该二级存储装置并包括有用于存储该数据文件的直接存取存储器和处理器,该处理器用于从该二级存储装置检索所述数据文件,将所述数据文件存储在直接存取存储器中,计算所述数据文件的子序列内的惟一字节值的频率,所述子序列的长度不超过所述预定长度,及计算所述一个或多个惟一值在所述子序列中的位置;
多个索引组成部分,连接至该计算装置,用于创建所述子序列的索引,所述索引包括表示计算出的所述子序列内的惟一字节值的频率的数据值;以及
多个数据变换组成部分,连接至该计算装置,用于在所述子序列具有低于预定阈值的惟一字节值的频率时,将数据变换应用于所述子序列,以增加所述子序列中的惟一字节值的频率,并且将表示所述数据变换的数据值添加到所述索引;
其中,在所述子序列具有高于预定阈值的惟一字节值的频率时,该些索引组成部分将表示一个或多个惟一值在所述子序列中的位置的数据值添加到所述索引;
该处理器还用于创建输出数据文件并将所述索引添加到所述输出数据文件,该数据文件具有文件类型标识符。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2003905688A AU2003905688A0 (en) | 2003-10-17 | Data Compression System And Method | |
AU2003905688 | 2003-10-17 | ||
PCT/AU2004/001406 WO2005039057A1 (en) | 2003-10-17 | 2004-10-15 | Data compression system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1868127A CN1868127A (zh) | 2006-11-22 |
CN1868127B true CN1868127B (zh) | 2011-06-22 |
Family
ID=34437878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2004800304783A Expired - Fee Related CN1868127B (zh) | 2003-10-17 | 2004-10-15 | 数据压缩系统和方法 |
Country Status (11)
Country | Link |
---|---|
US (2) | US7224293B2 (zh) |
EP (1) | EP1676368A4 (zh) |
JP (1) | JP2007508753A (zh) |
KR (1) | KR20060106835A (zh) |
CN (1) | CN1868127B (zh) |
AU (2) | AU2004307044B2 (zh) |
CA (1) | CA2580538A1 (zh) |
IL (1) | IL174556A0 (zh) |
NZ (1) | NZ546498A (zh) |
WO (1) | WO2005039057A1 (zh) |
ZA (1) | ZA200603910B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0228552D0 (en) * | 2002-12-06 | 2003-01-15 | Glaxo Group Ltd | Chemical compounds |
US7222299B1 (en) * | 2003-12-19 | 2007-05-22 | Google, Inc. | Detecting quoted text |
JP4587312B2 (ja) * | 2005-09-16 | 2010-11-24 | 株式会社リコー | 符号変換装置及び符号変換方法 |
US7436330B2 (en) * | 2006-03-24 | 2008-10-14 | The University Of Mississippi | High-speed data compression based on set associative cache mapping techniques |
US8085171B2 (en) * | 2006-03-24 | 2011-12-27 | University Of Mississippi | High-speed data compression based on set associative cache mapping techniques |
US8510459B2 (en) * | 2006-09-01 | 2013-08-13 | Pacbyte Software Pty Limited | Method and system for transmitting a data file over a data network |
US8688654B2 (en) | 2009-10-06 | 2014-04-01 | International Business Machines Corporation | Data compression algorithm selection and tiering |
US8010704B2 (en) * | 2008-05-29 | 2011-08-30 | GM Global Technology Operations LLC | Method of efficient compression for measurement data |
RU2497277C2 (ru) * | 2010-07-29 | 2013-10-27 | Российская Федерация, от имени которой выступает государственный заказчик-Государственная корпорация по атомной энергии "Росатом" | Способ сжатия двоичных данных в виде структурированных информационных блоков |
US8866649B2 (en) * | 2011-09-14 | 2014-10-21 | Netapp, Inc. | Method and system for using non-variable compression group size in partial cloning |
JP5958539B2 (ja) * | 2012-06-25 | 2016-08-02 | 富士通株式会社 | 情報処理装置、ファイル管理方法、及びファイル管理プログラム |
CN104636377B (zh) * | 2013-11-12 | 2018-09-07 | 华为技术服务有限公司 | 数据压缩方法及设备 |
CN104579358B (zh) * | 2015-01-20 | 2018-09-25 | 华北电力大学 | 一种故障录波数据压缩方法 |
WO2016138474A1 (en) * | 2015-02-26 | 2016-09-01 | Bittitan, Inc. | Data migration systems and methods including archive migration |
WO2016195547A1 (en) * | 2015-05-29 | 2016-12-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods for compression and decompression of headers of internet protocol packets, devices, computer programs and computer program products |
WO2017056073A1 (en) * | 2015-10-01 | 2017-04-06 | Pacbyte Software Pty Ltd | Method and system for compressing and/or encrypting data files |
CN105915225B (zh) * | 2016-04-12 | 2019-03-05 | 科络克电子科技(上海)有限公司 | 信号处理二维数据阵列的特征增强和数据压缩的方法 |
CN106791267A (zh) * | 2016-12-21 | 2017-05-31 | 济南浪潮高新科技投资发展有限公司 | 一种基于位图压缩的物理信息系统数据压缩传输方法 |
US11138152B2 (en) | 2017-10-11 | 2021-10-05 | Lognovations Holdings, Llc | Method and system for content agnostic file indexing |
US10963429B2 (en) * | 2017-10-11 | 2021-03-30 | Lognovations Holdings, Llc | Method and system for content agnostic file indexing |
CN109981108B (zh) * | 2017-12-27 | 2023-05-02 | 杭州海康威视数字技术股份有限公司 | 数据压缩方法、解压缩方法、装置及设备 |
RU2697794C1 (ru) * | 2018-03-22 | 2019-08-19 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Тихоокеанский государственный университет" | Способ сжатия телеметрических кадров данных |
CN110958212B (zh) * | 2018-09-27 | 2022-04-12 | 阿里巴巴集团控股有限公司 | 一种数据压缩、数据解压缩方法、装置及设备 |
WO2020146448A1 (en) * | 2019-01-10 | 2020-07-16 | Lognovations Holdings, Llc | Method and system for content agnostic file indexing |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1257621A (zh) * | 1997-04-18 | 2000-06-21 | 首要研究有限公司 | 数字数据无损压缩的方法和设备 |
JP2002325252A (ja) * | 2001-04-25 | 2002-11-08 | Noritz Corp | データ圧縮装置、データ復元装置、およびコンピュータプログラム |
US6628717B1 (en) * | 1998-11-04 | 2003-09-30 | Lg Electronics Inc. | Lossless coding method and video compression coding device using the same |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06319047A (ja) * | 1993-05-07 | 1994-11-15 | Seiko Epson Corp | 情報処理装置 |
US5899575A (en) * | 1996-09-04 | 1999-05-04 | Hitachi, Ltd. | Video capture device, video recording/playing apparatus having the video capture device attached thereto, and video input device |
JP2940545B1 (ja) * | 1998-05-28 | 1999-08-25 | 日本電気株式会社 | 画像変換方法および画像変換装置 |
AU2610701A (en) * | 2000-01-03 | 2001-07-16 | Efeckta Technologies Corporation | Efficient and lossless conversion for transmission or storage of data |
US6868186B1 (en) * | 2000-07-13 | 2005-03-15 | Ceva D.S.P. Ltd. | Visual lossless image compression |
US6961927B1 (en) * | 2000-11-27 | 2005-11-01 | Microsoft Corporation | Lossless, context-free compression system and method |
JP2002344326A (ja) * | 2001-03-10 | 2002-11-29 | System Kaiseki Kenkyusho:Kk | 合成インデックスによるデータ圧縮方法及び圧縮データの完全復元方法 |
US6657565B2 (en) * | 2002-03-21 | 2003-12-02 | International Business Machines Corporation | Method and system for improving lossless compression efficiency |
JP4160883B2 (ja) * | 2003-09-02 | 2008-10-08 | 富士フイルム株式会社 | 画像記録装置及び画像記録方法 |
US7428342B2 (en) * | 2004-12-17 | 2008-09-23 | Microsoft Corporation | Reversible overlap operator for efficient lossless data compression |
JP2006319047A (ja) | 2005-05-11 | 2006-11-24 | Canon Inc | 微動装置及び光学素子調整装置 |
-
2004
- 2004-10-15 JP JP2006534542A patent/JP2007508753A/ja active Pending
- 2004-10-15 EP EP04761433A patent/EP1676368A4/en not_active Withdrawn
- 2004-10-15 WO PCT/AU2004/001406 patent/WO2005039057A1/en active Application Filing
- 2004-10-15 CA CA002580538A patent/CA2580538A1/en not_active Abandoned
- 2004-10-15 KR KR1020067009513A patent/KR20060106835A/ko not_active Application Discontinuation
- 2004-10-15 ZA ZA200603910A patent/ZA200603910B/en unknown
- 2004-10-15 US US10/539,645 patent/US7224293B2/en not_active Ceased
- 2004-10-15 NZ NZ546498A patent/NZ546498A/en unknown
- 2004-10-15 CN CN2004800304783A patent/CN1868127B/zh not_active Expired - Fee Related
- 2004-10-15 AU AU2004307044A patent/AU2004307044B2/en not_active Expired - Fee Related
- 2004-10-15 US US12/475,108 patent/USRE43292E1/en active Active
-
2006
- 2006-03-26 IL IL174556A patent/IL174556A0/en unknown
-
2009
- 2009-08-21 AU AU2009210408A patent/AU2009210408A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1257621A (zh) * | 1997-04-18 | 2000-06-21 | 首要研究有限公司 | 数字数据无损压缩的方法和设备 |
US6628717B1 (en) * | 1998-11-04 | 2003-09-30 | Lg Electronics Inc. | Lossless coding method and video compression coding device using the same |
JP2002325252A (ja) * | 2001-04-25 | 2002-11-08 | Noritz Corp | データ圧縮装置、データ復元装置、およびコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2007508753A (ja) | 2007-04-05 |
AU2004307044A1 (en) | 2005-04-28 |
US7224293B2 (en) | 2007-05-29 |
EP1676368A4 (en) | 2008-10-08 |
CA2580538A1 (en) | 2005-04-28 |
KR20060106835A (ko) | 2006-10-12 |
AU2009210408A1 (en) | 2009-09-10 |
ZA200603910B (en) | 2007-09-26 |
EP1676368A1 (en) | 2006-07-05 |
USRE43292E1 (en) | 2012-04-03 |
CN1868127A (zh) | 2006-11-22 |
WO2005039057A1 (en) | 2005-04-28 |
US20060244639A1 (en) | 2006-11-02 |
AU2004307044B2 (en) | 2009-06-11 |
IL174556A0 (en) | 2006-08-20 |
NZ546498A (en) | 2007-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1868127B (zh) | 数据压缩系统和方法 | |
US5680612A (en) | Document retrieval apparatus retrieving document data using calculated record identifier | |
US8659451B2 (en) | Indexing compressed data | |
JP4261779B2 (ja) | データ圧縮装置および方法 | |
JP3337633B2 (ja) | データ圧縮方法及びデータ復元方法並びにデータ圧縮プログラム又はデータ復元プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
US5933104A (en) | Method and system for compression and decompression using variable-sized offset and length fields | |
US6119120A (en) | Computer implemented methods for constructing a compressed data structure from a data string and for using the data structure to find data patterns in the data string | |
EP0510634B1 (en) | Data base retrieval system | |
JP3234104B2 (ja) | 圧縮データをサーチする方法及びシステム | |
JP4091990B2 (ja) | データ符号化ネットワーク | |
JP2007508753A5 (zh) | ||
JPH0682370B2 (ja) | 文字処理装置 | |
US9236881B2 (en) | Compression of bitmaps and values | |
US5815096A (en) | Method for compressing sequential data into compression symbols using double-indirect indexing into a dictionary data structure | |
US5394143A (en) | Run-length compression of index keys | |
JP2536422B2 (ja) | デ―タ圧縮装置及びデ―タ復元装置 | |
KR20220089211A (ko) | 문자 빈도 기반 서열 재정렬을 통한 fastq 데이터 압축 방법 및 장치 | |
JPH07135471A (ja) | データ圧縮装置およびデータ伸張装置 | |
JP2993540B2 (ja) | 昇順整数列データの圧縮および復号システム | |
JP3130324B2 (ja) | データ圧縮方式 | |
CN117200805B (zh) | 一种mcu的低内存占用的压缩和解压方法及装置 | |
JPH06202844A (ja) | データ圧縮復元処理装置 | |
Reyssan et al. | Multiple Character Modification for Huffman Algorithm | |
Bierman et al. | Influence of dictionary size on the lossless compression of microarray images | |
JPH1165902A (ja) | 圧縮方法、伸長方法、圧縮装置、伸長装置および記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110622 Termination date: 20121015 |