CN102404009B - 基于信息变换的数据压缩、解压缩方法及存储介质 - Google Patents

基于信息变换的数据压缩、解压缩方法及存储介质 Download PDF

Info

Publication number
CN102404009B
CN102404009B CN201010283367.0A CN201010283367A CN102404009B CN 102404009 B CN102404009 B CN 102404009B CN 201010283367 A CN201010283367 A CN 201010283367A CN 102404009 B CN102404009 B CN 102404009B
Authority
CN
China
Prior art keywords
data
subregion
equal portions
data segment
parts
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
Application number
CN201010283367.0A
Other languages
English (en)
Other versions
CN102404009A (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.)
ZHONGDUN TIANAN TECHNOLOGY (BEIJING) CO LTD
Original Assignee
ZHONGDUN TIANAN TECHNOLOGY (BEIJING) 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 ZHONGDUN TIANAN TECHNOLOGY (BEIJING) CO LTD filed Critical ZHONGDUN TIANAN TECHNOLOGY (BEIJING) CO LTD
Priority to CN201010283367.0A priority Critical patent/CN102404009B/zh
Priority to PCT/CN2010/079858 priority patent/WO2012034333A1/zh
Publication of CN102404009A publication Critical patent/CN102404009A/zh
Application granted granted Critical
Publication of CN102404009B publication Critical patent/CN102404009B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3077Sorting
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及基于信息变换的数据压缩、解压缩方法及存储介质。将一定大小的数据中的各个字节按照其数值排列,确定这种排列在所有可能排列中的排序,从而赋予这种排列一个唯一的标记号。通过存储标记号而不是存储所述数据来达到减小存储空间的效果。在解压缩时,读取所述标记号,来找到对应的数据,从而恢复压缩前的数据。在向本发明的存储介质中存储数据时,压缩程序被自动调用,从而对数据压缩。

Description

基于信息变换的数据压缩、解压缩方法及存储介质
技术领域
本发明涉及对数据的压缩、解压缩方法,以及应用该压缩解压缩方法的存储介质。
背景技术
自从20世纪50年代首次提出了实用的数据压缩方法(D.A.Huffman,A Method for the Construction of Minimum Redundancy Codes,1952)至今,数据压缩的理论和应用在不断地发展,出现了针对图像、视频和音频等数据的各种压缩技术,例如,适用于二值图像和非连续的灰度、彩色图像的无损压缩算法LZW算法,适用于图像的有损压缩算法JPEG、Rar、Zip标准,适用于视频图像和音频数据的MPEG-4标准等。数据压缩比率也不断提高,例如在保证图像质量的前提下,JPEG标准一般可以将图像压缩到原大小的十分之一到二十分之一。
然而,随着数码相机、数码录音笔、数码随身听、数码摄像机等便携数码设备的普及,以及随着Internet的普及,们对数据压缩技术特别是专用于图像、音频、视频的数据压缩技术具有了更高的期望。
发明内容
根据本发明的一个方面,提供一种数据压缩方法,其中,定义一个M行×L列的矩阵,M、L为自然数,确定包含M个数的数列依次排列在该矩阵上的所有可能,其中矩阵的每一行只排列一个数,依次为每一种排列确定一个与其对应的标记号;将待压缩的数据划分为多个数据段,对每个数据段分别进行压缩,其中,对每个数据段的压缩包含以下步骤:
将要存储数据的存储介质等分为L个分区;
将所述数据段中的数据分成M等份,根据每一等份的数据的数值依次将M个等份的数据分配到所述各个分区中,不同数值的等份分配到不同分区,同一分区中只分配相同数值的等份,从而得到了所述M个等份的一种排列方式;
根据所述排列方式确定与其对应的标记号;
依次存储每一个数据段的标记号。
根据本发明的另一个方面,提供一种数据解压缩方法,对于根据上述方法压缩的数据,依次读取各数据段的标记号,确定各标记号所对应的数据,将各个数据段所对应的数据依次组合,从而恢复压缩前的数据。
根据本发明的另一个方面,提供一种存储介质,其中存储有计算机程序,当向该存储介质中存储数据时,该程序被自动调用以执行数据压缩方法,从而将该数据压缩;
当从该存储介质向外界拷贝数据时,该程序被自动调用以执行数据解压缩方法,从而将该数据解压缩。
附图说明
图1用图形表示了,按照本发明的设想,待压缩的数据的各个字节在其对应的介质分区上的分布。
具体实施方式
实施例1
在8个比特(bit)为一字节的二进制数据中,一个字节的数据的数值范围是0000 0000至1111 1111(即,从0至255),共有256(2的8次方)种变化。由此,我们把一个存储介质划分为256个相等大小的分区(该存储介质可以是磁性存储介质、U盘、光盘等),每个区包含例如N0个字节(N0为自然数)。产生介质分区表,用于记录每个分区中的扇区号。我们做这样的设想,每个区按顺序应该存储(或分配)不同数值的数据,第1分区只存储(或分配)0000 0000,第2分区只存储(或分配)00000001,……,第6分区只存储(或分配)0000 0101(即十进制中的5),第12分区只存储(或分配)0000 1011(即十进制中的11)……。由于实际上只是假想地将要压缩的数据的各个字节存储到相应的分区中,因此,这里所说的“存储”只是一种“分配”,实质上是将不同数值的字节与不同分区建立一一对应关系。
作为一个例子,在对一个数据文件压缩前,将一个数据文件划分成若干个数据段,假设一个数据段的大小为M个字节(或M个单位,一个单位为若干比特),其中M为自然数。然后分别对每个数据段进行压缩。
按照本发明的上述方法,根据每个字节的数值,设想将一个数据段中的第1到第M个字节依次存储到(或分配到)相应的分区中(注意,这里只是设想将各个字节存储到相应的分区中,实际上这一存储步骤并没有真正被执行)。
图1示出了按照上述设想存储的M个字节的数据段的各字节的分布图(或排列图)。其中,X轴的坐标0,1,……,255分别表示存储介质的256个分区,Y轴表示字节的排列顺序。一个白点代表一个字节,每个白点的横坐标表示该字节所应被存储的分区,纵坐标表示该字节的排序。这M个白点的纵坐标分别是:Y=1、2、3、……、M。由此,我们就得到了这M个字节的一种排列组合。
M是有限大小的自然数,例如,M可以是8、16、32等。M个字节在256个分区上的各种可能的排列组合的总的方式是256的M次方。我们将每一种排列按顺序分配一个标记号,即,1、2、……、256M。这样,这M个字节的每种排列方式对应于一个特定的标记号,每个标记号也对应于M个字节的一种特定排列方式。在存储数据时,按照本发明,实际上并不将每个字节存储的到相应的分区中,而是只存储对应于M个字节的排列方式的标记号,即,存储分别对应于每个数据段的一系列的标记号。这样就能大大减小存储空间,起到压缩数据的效果。在解压缩时,根据该标记号来得到这M个字节的排列从而得到压缩前的数据。
下面通过一个简单的例子来说明一个数据段中各个字节的排序方式与标记号的对应关系。
在上述实施例中,存储介质被分成了256个分区,一个数据段包含M个字节,这形成了一个M×256的矩阵。为了便于说明,在下面的例子中假设存储介质被分成了4个分区,并且M=4,这样就形成了一个4×4矩阵,我们对该矩阵的每个元素如下命名:
   1   2  3  4
   5   6  7  8
   a   b  c  d
   e   f  g  h
其中横向表示存储介质的4个分区,竖向由上到下表示4个字节的存储次序。
以1开头的排列方式共有以下8×8=64种(第1至64):
15ae  15af  15ag  15ah  15be  15bf  15bg  15bh
15ce  15cf  15cg  15ch  15de  15df  15dg  15dh
16ae  16af  16ag  16ah  16be  16bf  16bg  16bh
16ce  16cf  16cg  16ch  16de  16df  16dg  16dh
17ae  17af  17ag  17ah  17be  17bf  17bg  17bh
17ce  17cf  17cg  17ch  17de  17df  17dg  17dh
18ae  18af  18ag  18ah  18be  18bf  18bg  18bh
18ce  18cf  18cg  18ch  18de  18df  18dg  18dh
以2开头的排列方式共有以下8×8=64种(第65至128):
25ae  25af  25ag  25ah  25be  25bf  25bg  25bh
25ce  25cf  25cg  25ch  25de  25df  25dg  25dh
26ae  26af  26ag  26ah  26be  26bf  26bg  26bh
26ce  26cf  26cg  26ch  26de  26df  26dg  26dh
27ae  27af  27ag  27ah  27be  27bf  27bg  27bh
27ce  27cf  27cg  27ch  27de  27df  27dg  27dh
28ae  28af  28ag  28ah  28be  28bf  28bg  28bh
28ce  28cf  28cg  28ch  28de  28df  28dg  28dh
以3开头的排列方式共有以下8×8=64种(第129至192):
35ae  35af  35ag  35ah  35be  35bf  35bg  35bh
35ce  35cf  35cg  35ch  35de  35df  35dg  35dh
36ae  36af  36ag  36ah  36be  36bf  36bg  36bh
36ce  36cf  36cg  36ch  36de  36df  36dg  36dh
37ae  37af  37ag  37ah  37be  37bf  37bg  37bh
37ce  37cf  37cg  37ch  37de  37df  37dg  37dh
38ae 38af  38ag  38ah  38be  38bf  38bg  38bh
38ce 38cf  38cg  38ch  38de  38df  38dg  38dh
以4开头的排列方式共有以下8×8=64种(第193至256):
45ae 45af  45ag  45ah  45be  45bf  45bg  45bh
45ce 45cf  45cg  45ch  45de  45df  45dg  45dh
46ae 46af  46ag  46ah  46be  46bf  46bg  46bh
46ce 46cf  46cg  46ch  46de  46df  46dg  46dh
47ae 47af  47ag  47ah  47be  47bf  47bg  47bh
47ce 47cf  47cg  47ch  47de  47df  47dg  47dh
48ae 48af  48ag  48ah  48be  48bf  48bg  48bh
48ce 48cf  48cg  48ch  48de  48df  48dg  48dh
以上是M=4个字节存储在4个分区中的全部256(=44)种排列方式。
对于例如排列方式“25ce”,按照正向顺序确定其标记号,首先,由于首位字是“2”,则其排序大于等于65小于等于128。其次,由于前两位数字是“25”,则进一步确定其排序大于等于65小于等于80。第三,由于前三位数字是“25c”,其排序大于等于73小于等于76。最后,根据“25ce”中的第4位数,确定其排序即标记号为73。反之,在解压缩时,在读到标记号73时,73大于4的3次方(64),又小于128,即肯定原数据是在“2”开头的区间内,其中,只有头两位数是“25”的排列方式的标记号大于等于65小于等于80,因此可选范围缩小到“25”开头的排列方式中,而“25a”至“25b”区间按照排序原则对应的标记号小于73,由此被排除。另外,按照4×4模块组合编写规律(8×8×4,即4个8×8组合),73除以8得9余1,9为第九行,余1即为第10行第一个,即“25ce”。
另外,上述对磁盘介质的分区,只是一种想象中的分区,并没有真正将各个字节写入到对应的分区中,因此,对磁盘介质的分区等效于将待压缩的各个字节分组,例如,在实施例1中将磁盘分成256个分区,等效于将各个字节按照数值分成256个组,第1组只包含0000 0000,第2组只包含0000 0001,……,第6组只包含0000 0101,第12组只包含00001011……。
实施例2
下面重点介绍和实施例1不同之处。如没有明确指出,本实施例中的特征和实施例1相同。
首先,自动侦测存储介质实际大小,将存储介质划分为256个相等大小的分区。在某些情况下,某个分区被“写满”,即,分配给该分区的数据量等于该分区的容量,例如第n个分区被“写满”(n为大于等于1小于等于N0的自然数),如果仍然有后续的数据要存储到(分配到)该第n区中,则确定存储数据最少的分区,例如,所确定的该存储数据最少的分区是第m个分区(m为大于等于1小于等于N0的自然数,且m≠n),将要存储在已“写满”的第n区的数据存储在该存储数据最少的第m个分区,并将存储该数据的第m个分区中的扇区被划归为第n个分区,这只需在介质分区表标明扇区号的变化即可。上述这种在某个扇区被“写满”时调整分区划分的方法叫做“智能分区调整”。
实施例3
在上述实施例中,只描述了以包含8个比特的一个字节为单位进行数据存储的情况。本发明不限于此。可以设想以n1个比特为单位将数据存储到存储介质的各分区中,n1为自然数。作为一个例子,n1=4(即,半个字节),在这种情况中,将存储介质划分为2n1=16个分区。第1分区只存储0000,第2分区只存储0001,……,第6分区只存储0101(即十进制中的5),第12分区只存储1011(即十进制中的11)……,第16分区只存储1111(即十进制中的15)。例如,一个字节的数据是0101 1011,则前4个比特存储在第6分区,后4个比特存储在第12分区。n1还可以是例如,16(即,2个字节)、32(即,4个字节)等。
实施例4
一种存储介质,例如,U盘、光盘或磁性存储介质,其中存储有计算机程序。该程序运行时执行本发明的压缩或解压缩程序。在向该存储介质写入数据时,该计算机程序被自动调用,以将数据压缩后再写入到所述存储介质中。在从该介质拷贝数据时,该计算机程序可以被调用,从而对被拷贝的数据解压缩。
其他情况
数据写入介质时,可以按照分区标记以字节为单位,分别存入不同分区。此时可以定义一个文件索引表,该文件索引表负责数据实时存储指针,不同的数据流可以实现数据按位置存储。
文件索引表构造
自定义文件索引表是本发明方法的关键部分,执行本发明方法的主程序进行的所有数据读写,均依照索引表原则。索引表有以下几部分:
分区信息;
每一段字串首字节坐标,相对位置定义;
数据标示表;
智能调整分区信息;
文件大小信息;
文件名与文件大小关联;
安全信息。
工业实用性
根据本发明的压缩方法,实现对明文数据的固定压缩比,对已压缩数据(如rar、zip、mpeg、rm……等)的最低不低于40%的压缩比,并能高速压缩、实时存储。

Claims (8)

1.一种数据压缩方法,其特征在于该方法包括如下步骤:
定义一个M行×L列的矩阵,其中,M、L为自然数,确定包含M个数的数列依次排列在该矩阵上的所有可能,其中矩阵的每一行只排列一个数,依次为每一种排列确定一个与其对应的标记号;
将待压缩的数据划分为多个数据段,对每个数据段分别进行压缩,其中,对每个数据段分别进行压缩包含以下步骤:
将要存储数据的存储介质等分为L个分区;
将所述数据段中的数据分成M等份,根据每一等份数据的数值依次将M个等份的数据分配到所述L个分区中,不同数值的等份分配到不同分区,从而得到了所述M个等份的一种排列方式;
根据所述排列方式确定与其对应的标记号;
依次存储每一个数据段的标记号。
2.根据权利要求1所述的方法,特征在于,其中所述数据段的M等份的每一份包含8个比特,即一个字节,并且L=256。
3.根据权利要求2所述的方法,特征在于,其中第1分区分配数值为0的数据,即,字节0000 0000,第n个分区分配数值为n-1的数据,第256分区分配数值为255的数据,即,字节1111 1111,其中,n为大于0小于256的自然数。
4.根据权利要求1所述的方法,特征在于,其中所述数据段的M等份的每一等份包含4个比特,并且L=16。
5.根据权利要求1所述的方法,特征在于,其中M为8、16和32之一。
6.一种数据解压缩方法,其特征在于该方法对于根据权利要求1所述的方法压缩的数据,依次执行如下步骤:
读取各数据段的标记号,
确定各标记号所对应的数据,
将各个数据段所对应的数据依次组合,从而恢复压缩前的数据。
7.一种数据压缩装置,其特征在于该装置包括如下部件:
用于定义一个M行×L列的矩阵,其中,M、L为自然数,确定包含M个数的数列依次排列在该矩阵上的所有可能,其中矩阵的每一行只排列一个数,依次为每一种排列确定一个与其对应的标记号的部件;
用于将待压缩的数据划分为多个数据段,对每个数据段分别进行压缩的部件,其中,该对每个数据段分别进行压缩的部件包括:
用于将要存储数据的存储介质等分为L个分区的部件;
用于将所述数据段中的数据分成M等份,根据每一等份数据的数值依次将M个等份的数据分配到所述L个分区中,不同数值的等份分配到不同分区,从而得到了所述M个等份的一种排列方式的部件;
用于根据所述排列方式确定与其对应的标记号的部件;
用于依次存储每一个数据段的标记号的部件。
8.一种数据解压缩装置,用于解压缩根据权利要求1所述的方法压缩的数据,该装置的特征在于包括如下部件:
用于依次读取各数据段的标记号的部件,
用于确定各标记号所对应的数据的部件,
用于将各个数据段所对应的数据依次组合,从而恢复压缩前的数据的部件。
CN201010283367.0A 2010-09-16 2010-09-16 基于信息变换的数据压缩、解压缩方法及存储介质 Expired - Fee Related CN102404009B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201010283367.0A CN102404009B (zh) 2010-09-16 2010-09-16 基于信息变换的数据压缩、解压缩方法及存储介质
PCT/CN2010/079858 WO2012034333A1 (zh) 2010-09-16 2010-12-16 基于信息变换的数据压缩、解压缩方法及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010283367.0A CN102404009B (zh) 2010-09-16 2010-09-16 基于信息变换的数据压缩、解压缩方法及存储介质

Publications (2)

Publication Number Publication Date
CN102404009A CN102404009A (zh) 2012-04-04
CN102404009B true CN102404009B (zh) 2014-12-31

Family

ID=45830948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010283367.0A Expired - Fee Related CN102404009B (zh) 2010-09-16 2010-09-16 基于信息变换的数据压缩、解压缩方法及存储介质

Country Status (2)

Country Link
CN (1) CN102404009B (zh)
WO (1) WO2012034333A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527752B (zh) * 2020-12-08 2024-04-05 北京地平线信息技术有限公司 数据压缩方法、装置、计算机可读存储介质及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649181A (en) * 1993-04-16 1997-07-15 Sybase, Inc. Method and apparatus for indexing database columns with bit vectors
US6965897B1 (en) * 2002-10-25 2005-11-15 At&T Corp. Data compression method and apparatus
CN1716998A (zh) * 2004-06-14 2006-01-04 奥林巴斯株式会社 图像压缩装置及图像还原装置
CN101123668A (zh) * 2006-08-08 2008-02-13 西门子(中国)有限公司 Ct图像的压缩方法
CN101241508A (zh) * 2007-08-01 2008-08-13 金立 结构化数据序列的压缩方法
CN101539927A (zh) * 2008-12-31 2009-09-23 北京飞天诚信科技有限公司 一种实现光盘映像文件处理的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649181A (en) * 1993-04-16 1997-07-15 Sybase, Inc. Method and apparatus for indexing database columns with bit vectors
US6965897B1 (en) * 2002-10-25 2005-11-15 At&T Corp. Data compression method and apparatus
CN1716998A (zh) * 2004-06-14 2006-01-04 奥林巴斯株式会社 图像压缩装置及图像还原装置
CN101123668A (zh) * 2006-08-08 2008-02-13 西门子(中国)有限公司 Ct图像的压缩方法
CN101241508A (zh) * 2007-08-01 2008-08-13 金立 结构化数据序列的压缩方法
CN101539927A (zh) * 2008-12-31 2009-09-23 北京飞天诚信科技有限公司 一种实现光盘映像文件处理的方法和装置

Also Published As

Publication number Publication date
CN102404009A (zh) 2012-04-04
WO2012034333A1 (zh) 2012-03-22

Similar Documents

Publication Publication Date Title
CN101095284B (zh) 用于有选择地压缩和解压缩数据的设备与方法
JP3978195B2 (ja) 記憶デバイスの欠陥リストの長さを最小にする方法およびシステム
CN104040542A (zh) 用于在易失性存储器内保持关系型数据的列向量的技术
CN106233632A (zh) Ozip压缩和解压缩
US5832037A (en) Method of compressing and expanding data
CN107924292A (zh) 硬件加速型存储压缩
AU2008363659A1 (en) Method and apparatus for compressing and decompressing data records
US4630030A (en) Compression of data for storage
CN104125475A (zh) 一种多维量子数据压缩、解压缩方法及装置
CN111491169A (zh) 一种数字图像压缩方法、装置、设备、介质
US11424761B2 (en) Multiple symbol decoder
CN102404009B (zh) 基于信息变换的数据压缩、解压缩方法及存储介质
CN105320669A (zh) 数据存储、读取方法及数据存储、读取装置
CN111061722A (zh) 一种数据压缩、数据解压缩方法、装置及设备
CN102473175B (zh) Xml数据的压缩
CN115765754A (zh) 一种数据编码方法及一种编码数据比较方法
CN102740075B (zh) 一种视频数据的压缩/解压缩方法及系统
CN103138766A (zh) 数据压缩与解压缩的方法及装置
CN113364466A (zh) 数据处理系统
CN107992555B (zh) 一种栅格数据的存储及读取方法
CN202907104U (zh) 视频数据的压缩和解压缩系统
CN103581674A (zh) 视频数据的压缩/解压缩方法及系统
CN103517022A (zh) 一种图像数据压缩和解压缩方法、装置
CN113553002A (zh) 一种利用无理数的特性进行数据压缩和存储的方法
CN117811589A (zh) 一种基于人工智能的企业数据压缩方法及系统

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141231

Termination date: 20150916

EXPY Termination of patent right or utility model