CN102129872B - 资料压缩、解压缩方法及其装置 - Google Patents
资料压缩、解压缩方法及其装置 Download PDFInfo
- Publication number
- CN102129872B CN102129872B CN 201010002899 CN201010002899A CN102129872B CN 102129872 B CN102129872 B CN 102129872B CN 201010002899 CN201010002899 CN 201010002899 CN 201010002899 A CN201010002899 A CN 201010002899A CN 102129872 B CN102129872 B CN 102129872B
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- dynamic loading
- loading block
- block data
- 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
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明的实施例提供一种资料压缩方法。首先,对资料进行分块,以产生至少一个非动态装载资料块与至少一个动态装载资料块。接着,对非动态装载资料块进行压缩,以产生第一压缩资料块。之后,根据压缩非动态装载资料块时所产生的信息,对动态装载资料块所组成的资料块进行压缩,以产生第二压缩资料块。本发明还提供资料解压缩的方法,以及进行压缩和解压缩的装置。
Description
技术领域
本发明是有关于一种资料压缩与解压缩方法,且特别是有关于一种分块压缩与解压缩资料的方法及其装置。
背景技术
电子产品通常需要将资料(包含程序、图表与字形档等)存储于非易失性存储器,例如闪存(flash memory)中。为了节省闪存的储存空间,一般而言会对所要储存的资料进行压缩。要对资料进行压缩时,可以使用基于字典的压缩方法,例如LZ77、LZ78或其变种配合熵编码(entorpy encoding)的方式进行压缩,其中熵编码可以例如霍夫曼编码(Huffman encoding)、算术编码(arithmeticencoding)或香农编码(Shanno-Fano encoding)。
基于字典的压缩方法的核心在于,如果资料中的某一段在一个滑动资料视窗或者字典中存在,就用那段资料在滑动资料视窗中的位置和长度或者字典中的代替码字来代替那段资料本身。要使用被压缩的资料时,则必需先对被压缩的资料进行解压缩后,才能将经过解压缩的资料装入易失性存储器中,例如同步动态存储器(synchronous synamic random access memory,简称为SDRAM)。通常同步动态存储器需要能容纳解压后的整个程序,如果整个程序很大,则意味着需要很大的储存空间,并会导致成本居高不下。
美国公开号US2007016693A1的专利申请案揭露了一种分块压缩资料的方法,当要使用被压缩后的资料的某部份时,则只需要解压缩要用到的部分所对应的几块资料,而不需将整个资料进行解压缩,由此便能够节省同步动态存储器的空间。但是,把整个资料分块压缩会造成压缩效率下降。例如,把整个资料分成A、B与C三块,并分别将A、B与C块资料压缩得到a、b与c三块被压缩的资料,则a、b与c三块资料的大小总和通常会大于对整个资料进行压缩所得到的资料的大小。前述压缩率下降的原因在于,分块后的每一块资料不能在另一块资料的滑动资料视窗或者字典中寻找匹配资料段。
发明内容
本发明的实施例提供一种资料压缩方法。首先,对资料进行分块,以产生至少一个非动态装载资料块与至少一个动态装载资料块。接着,对非动态装载资料块进行压缩,以产生第一压缩资料块。之后,根据压缩非动态装载资料块时所产生的信息,对动态装载资料块所组成的资料块进行压缩,以产生第二压缩资料块。
本发明的实施例提供一种资料解压缩方法。首先,接收第一压缩资料块。接着,对第一压缩资料块进行解压缩,以产生非动态装载资料块。之后,接收第二压缩资料块。然后,根据解压缩第一压缩资料块时所产生的信息,对第二压缩资料块解压缩,以产生动态装载资料块。
本发明的实施例提供一种资料压缩装置,资料压缩装置包括资料分块装置、第一压缩单元与第二压缩单元。第一压缩单元连接于资料分块装置,第二压缩单元连接于资料分块装置。资料分块装置对资料进行分块,以产生至少一个非动态装载资料块与至少一个动态装载资料块。第一压缩单元对非动态装载资料块进行压缩,以产生第一压缩资料块。第二压缩单元根据压缩非动态装载资料块时所产生的信息,对动态装载资料块所组成的资料块进行压缩,以产生第二压缩资料块。
本发明的实施例提供一种资料解压缩装置,资料解压缩装置包括第一解压缩单元与第二解压缩单元。第一解压缩单元对第一压缩资料块进行解压缩,以产生非动态装载资料块。第二解压缩单元根据解压缩第一压缩资料块时所产生的信息,对第二压缩资料块解压缩,以产生动态装载资料块。
基于上述,本发明的实施例所提供的资料压缩方法与资料压缩装置所压缩后的资料的大小较传统的资料分块压缩方法来得小,且所对应的资料解压缩方法与资料解压缩装置在解压缩被压缩的资料所花费的计算时间,又能够较传统一次解压缩整份资料的计算时间来得少。
附图说明
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
图1是本发明的实施例所提供的资料压缩方法的流程图。
图2是本发明的另一个实施例所提供的资料压缩方法的流程图。
图3是本发明的另一个实施例所提供的资料压缩方法的流程图。
图4是本发明的实施例所提供的资料解压缩方法的流程图。
图5是本发明的另一个实施例所提供的资料解压缩方法的流程图。
图6是本发明的另一个实施例所提供的资料解压缩方法的流程图。
图7是本发明的实施例所提供的资料解压缩装置的方块图。
图8是本发明的实施例所提供的资料解压缩装置的方块图。
主要元件符号说明:
S101~S106:步骤流程
S201~S206:步骤流程
S301~S306:步骤流程
S401~S406:步骤流程
S501~S506:步骤流程
S601~S606:步骤流程
700:资料压缩装置
701:资料分块装置
702:第一压缩单元
703:第二压缩单元
704:非易失性存储器
800:资料解压缩装置
801:第一解压缩单元
802:第二解压缩单元
803:易失性存储器
具体实施方式
本发明的实施例提供了资料压缩方法与资料压缩装置,且特别是有关于一种分块压缩资料的方法与装置。除此之外,本发明的实施例更介绍对应的资料解压缩方法与资料解压缩装置。各实施例所提供的资料压缩方法、资料压缩装置资料解压缩方法与资料解压缩装置皆可以应用于所有需要从非易失性存储器解压缩资料至易失性存储器的电子产品,例如数字电视机顶盒(set-top box,简称为STB)、携带式影音播放器(portable media player,简称为PMP)与手机等。以下将用文字辅以图式来说明各种实施方式,图式采用相同的图式编号的装置或流程为近似或相似的装置或流程。
首先,请参照图1,图1是本发明的实施例所提供的资料压缩方法的流程图。首先,在步骤S 101中,接收一个欲压缩的资料。接着,在步骤S102中,对资料进行分块,以产生至少一个非动态装载资料块与至少一个动态装载资料块。在步骤S103中,对非动态装载资料块进行压缩,以产生第一压缩资料块。在步骤S104中,储存第一压缩资料块至非易失性存储器。例如,所要被压缩的资料为资料ABC在步骤S101中被接收,资料ABC在步骤S102中被分为一个非动态装载资料块A与两个动态装载资料块B与C。接着,非动态装载资料块A在步骤S103中被压缩为第一压缩资料块a。之后,第一压缩资料块a在步骤S104中被储存在磁性硬盘或闪存中。
在步骤S105中,根据基于字典压缩方式压缩非动态装载资料块时所产生的信息,对动态装载资料块所组成的资料块进行压缩,以产生第二压缩资料块。在步骤S106,储存第二压缩资料块至非易失性存储器。例如,在步骤S105中,将动态装载资料块B置于非动态装载资料块A之后同时压缩(亦即压缩资料块AB),产生压缩资料块ab*,取压缩资料块b*为第二压缩资料块,并在步骤S106中,将压缩资料块b*储存至磁性硬盘或闪存中;以及在步骤S105中,将动态装载资料块C置于非动态装载资料块A之后同时压缩(亦即压缩资料块AC),产生压缩资料块ac*,取压缩资料块c*为另一个第二压缩资料块,并在步骤S106中,将压缩资料块c*储存至磁性硬盘或闪存中。
实际上,上述所举的例子在实现步骤S105时,因为在压缩动态装载资料块B与C要参考压缩非动态装载资料块A所产生的信息,因此才对资料块AB与AC进行压缩,其中前述信息是压缩非动态装载资料块A时所产生的字典、滑动视窗的内容与概率表等信息。但上述所举的例子中,重复地压缩了数次的非动态装载资料块A,而浪费了计算时间,且特别是当动态装载资料块的数目越多,则所浪费的计算时间越多。
因此,为了不浪费计算时间,步骤S105的较佳实施方式应该是,直接将步骤S103中压缩非动态装载资料块时所产生的信息直接拿来使用。换言之,就是在完成步骤S 105之前,不清空易失性存储器中压缩非动态装载资料块时所产生的信息。例如,在压缩动态装载资料块B与C时,参考同步动态存储器中有关产生第一压缩资料块a的字典、滑动视窗的内容与概率表作为压缩动态装载资料块B与C时的初始字典、初始滑动视窗的内容与进行熵编码的概率表。如此,动态装载资料块B与C可以根据压缩非动态装载资料块A时所产生的信息进行压缩,而产生第二压缩资料块b*与c*。
要说明的是,步骤S104与S106并非必要步骤,第一压缩资料块与第二压缩资料块可能并非用以储存至非易失性存储器。例如,只是要资料传送至远端的用户,但因受限于频宽,因此必须压缩资料,以产生第一压缩资料块与第二压缩资料块,并将第一压缩资料块与第二压缩资料块直接被送至传输通道中。除此之外,图1中的步骤S104与S106的顺序并非用以限定本发明,步骤S104只要在步骤S103之后即可,步骤S106只要在步骤S105之后即可。
另外,值得一提的是,若于上述的压缩方法中,所产生的非动态装载资料块包括了多个特性相同的非动态装载资料块,则可以将所述特性相同的多个非动态装载资料块(例如同为程序档或图像档的非动态装载资料块)合并成一个非动态装载资料块。如此,在步骤S105中,将根据基于字典压缩方式压缩前述合并的非动态装载资料块时所产生的信息,对动态装载资料块所组成的资料块进行压缩,以产生第二压缩资料块。然而,若于上述的压缩方法中,所产生的非动态装载资料块包括了多个特性不相同的非动态装载资料块时,则在步骤S105中,动态装载资料块进行压缩时,会选择特性最相近的非动态装载资料块作为参考。也就是说,根据基于字典压缩方式压缩特性最相近的非动态装载资料块时所产生的信息,对动态装载资料块所组成的资料块进行压缩,以产生第二压缩资料块。
例如,有多个特性相同的非动态装载资料块A与D都属于程序档或图像档,则可以合并非动态装载资料块A与D成为一个新的非动态装载资料块(A+D)。此时,若有多个动态装载资料块B与C,则根据基于字典压缩合并的非动态装载资料块(A+D)所产生的信息,对动态装载资料块B与C分别进行压缩。
再举一例,有多个特性不同的非动态装载资料块A、D与E,其中非动态装载资料块A、D属于程序档,非动态装载资料块E属于图像档,此时若有多个动态装载资料块B、C与F,且多个动态装载资料块B、C与F皆与非动态装载资料块A、D的特性较为相近,则可以合并非动态装载资料块A与D成为一个新的非动态装载资料块(A+D)。此时,根据基于字典压缩合并的非动态装载资料块(A+D)所产生的信息,对动态装载资料块B、C与F分别进行压缩。
又举一例,有多个特性不同的非动态装载资料块A、D与E,其中非动态装载资料块A、D属于程序档,非动态装载资料块E属于图像档,此时若有多个动态装载资料块B、C、F、G与H,多个动态装载资料块B、C与F皆与非动态装载资料块A、D的特性较为相近,另外多个动态装载资料块G与H皆与非动态装载资料块E的特性较为相近,则可以合并非动态装载资料块A与D成为一个新的非动态装载资料块(A+D)。此时,根据基于字典压缩合并的非动态装载资料块(A+D)所产生的信息,对动态装载资料块B、C与F分别进行压缩,并且根据基于字典压缩非动态装载资料块E所产生的信息,对动态装载资料块G与H分别进行压缩。
接着,请参照图2,图2是本发明的另一个实施例所提供的资料压缩方法的流程图。图2与图1的不同处在于,步骤S205是步骤S105的其中一种实施方式,其他的步骤S201、S202、S203、S204、S206与步骤S101、S102、S103、S104、S106相同。在步骤S205中,将压缩非动态装载资料块时所产生的滑动视窗内的内容作压缩动态装载资料块时的初始滑动视窗内的内容,并据此压缩动态装载资料块,以产生第二压缩资料块。例如,在压缩动态装载资料块B与C时,仅根据压缩非动态装载资料块A时所产生的滑动视窗内的内容作为其压缩时的初始滑动视窗内的内容。
图2的实施方式仅适用于基于字典的压缩方式,且此种基于字典压缩方式是采用滑动视窗内的内容来匹配当前编码字串,若当前编码字串已经出现于滑动视窗内,则使用指标与长度信息来取代编码字串,以达到压缩的效果,其中使用滑动视窗的基于字典压缩方式可以是LZ77与LZSS的压缩方式。
换言之,在步骤S205中,压缩非动态装载资料块A的最后一个字串时所产生的滑动视窗的内容会被当作压缩动态装载资料块B与C的初始滑动视窗的内容,而不像传统使用滑动视窗的基于字典压缩方式会将初始滑动视窗的内容设为空集合。另外,需要说明的是,目前大部分的压缩软件或压缩装置多半在使用基于字典压缩方式后,会再对其压缩结果进行熵编码,以更进一步提高其压缩率,其中熵编码包括霍夫曼编码、算术编码或香农编码。熵编码使用的概率表可以是固定的也可以是在压缩过程中自动更新的。在图2的实施方式中,压缩非动态装载资料块与动态装载资料块时,若有进行熵编码,其使用的概率表是相互独立的。
接着,请参照图3,图3是本发明的另一个实施例所提供的资料压缩方法的流程图。图3与图1的不同处在于,步骤S305是步骤S105的其中一种实施方式,其他的步骤S301、S302、S303、S304、S306与步骤S101、S102、S103、S104、S106相同。在步骤S305中,将压缩非动态装载资料块时所产生的字典或滑动视窗内的内容作为其压缩时的初始字典或初始滑动视窗内的内容,且将压缩非动态装载资料块时所产生的概率表作为其压缩时进行熵编码的初始概率表,并据此压缩动态装载资料块,以产生第二压缩资料块。例如,在压缩动态装载资料块B与C时,根据压缩非动态装载资料块A时所产生的字典或滑动视窗内的内容作为其压缩时的初始字典或初始滑动视窗内的内容。除此的外,在压缩动态装载资料块B与C时,更利用压缩非动态装载资料块A时所产生的概率表作为其压缩时进行熵编码的初始概率表。
值得说明的是,目前先进的压缩方法都是自动更新概率表的,如果把档扫描一遍来产生一个概率表,将会得不偿失,储存或传送概率表可能会过大,而导致实质上的压缩率下降。上述初始概率表是为了覆盖自动更新概率表和传送概率表两种情况,也就是说初始化后的概率表可以再根据压缩的方法而决定是否自动更新。
图3的实施方式适用于任何基于字典加上熵编码的压缩方式,且此种基于字典压缩方式是采用字典或滑动视窗内的内容来匹配当前编码字串,若当前编码字串已经出现于字典或滑动视窗内,则使用代替码字、或指标与长度信息来取代编码字串,以达到压缩的效果,其中基于字典压缩方式可以是LZ77、LZSS、LZ78与LZW的压缩方式。需要说明的是,图3的方法是适用于LZW压缩方式的其中一种特别例子。在LZW的一些应用中,字根(root)是以字节(8个位)所有的256个值来表示,即便在极端情况下非动态资料块可能不包含全部这256个字根值,LZW的压缩方式仍然可以使用256个值作为字根,只是有些值不被用到而已。
换言之,在步骤S305中,压缩非动态装载资料块A的最后一个字串时所产生的字典或滑动视窗的内容会被当作压缩动态装载资料块B与C的初始字典或初始滑动视窗的内容,而不像传统基于字典压缩方式会将初始字典或初始滑动视窗的内容设为空集合。另外,在图3的实施方式中,压缩非动态装载资料块与动态装载资料块时,若有进行熵编码,复制压缩非动态装载资料块时所产生的概率表作为压缩动态装载资料块时进行熵编码的初始概率表。
另外,要说明的是,图3所提供的资料压缩方法的压缩率会较图2所提供的资料压缩方法来得高,但图2所提供的资料压缩方法在进行压缩所花费的易失性存储器却较图3所提供的资料压缩方法来得少,因为图3所提供的资料压缩方法需要一直保留压缩非动态装载资料块时所产生的概率表以备拷贝作为压缩各个动态装载资料块的初始概率表。同样地,对应于图2所提供的资料压缩方法的资料解压缩方法而言,其解压缩所花费的易失性存储器也会较对应于图3所提供的资料压缩方法的资料解压缩方法来得少。换言之,在易失性存储器空间较少时,可以采用图2所提供的资料压缩方法,而在需要更高的压缩率时,可以采用图3所提供的资料压缩方法。
在介绍完本发明的实施例所提供的资料压缩方法后,本发明的实施例亦提出一种对应上述资料压缩方法的资料解压缩方法。请参照图4,图4是本发明的实施例所提供的资料解压缩方法的流程图。首先,在步骤S401中,接收第一压缩资料块。接着,在步骤S402中,对第一压缩资料块进行解压缩,以产生非动态装载资料块。在步骤S403中,储存非动态装载资料块至易失性存储器。例如,所要被解压缩的压缩资料为压缩资料ab*c*,则在步骤S401中,第一压缩资料块a会被接收。接着,第一压缩资料块a在步骤S402中会被解压缩成非动态装载资料块A,且第一压缩资料块a会在步骤S403中被存入同步动态存储器。
接着,在步骤S404中,接收第二压缩资料块。之后,在步骤S405中,根据基于字典解压缩方式解压缩第一压缩资料块时所产生的信息,对第二压缩资料块解压缩,以产生动态装载资料块。在步骤S406中,储存动态装载资料块至易失性存储器。例如,压缩资料块b*与c*在步骤S404中被接收。接着,在步骤S405中,将第二压缩资料块b*置于第一压缩资料块a之后同时解压缩(亦即解压缩资料块ab*),以得到解压缩资料块AB,取解压缩资料块B为非动态装载资料块,并在步骤S406中,将非动态装载资料块B储存至同步动态存储器中;以及在步骤S405中,将第二压缩资料块c*置于第一压缩资料块a之后同时解压缩(亦即解压缩资料块ac*),以得到解压缩资料块AC,取解压缩资料块C为非动态装载资料块,并在步骤S406中,将非动态装载资料块C储存至同步动态存储器中。
实际上,上述所举的例子在实现步骤S405时,因为在压缩第二压缩资料块b*与c*要参考解压缩第一压缩资料块a所产生的信息,因此才对压缩资料块ab*与ac*进行解压缩,其中前述信息是解压缩第一压缩资料块a时所产生的字典、滑动视窗的内容与概率表等信息。但上述所举的例子中,重复地解压缩了数次的第一压缩资料块a,而浪费了计算时间,且特别是当第二压缩资料块的数目越多,则所浪费的计算时间越多。
因此,为了不浪费计算时间,步骤S405的较佳实施方式应该是,直接将步骤S402中解压缩第一压缩资料块时所产生的信息直接拿来使用。换言之,就是在完成步骤S405之前,不清空易失性存储器中解压缩第一压缩资料块时所产生的信息。例如,在解压缩第二压缩资料块b*与c*时,参考同步动态存储器中有关产生非动态装载资料块A的字典、滑动视窗的内容与概率表作为解压缩第二压缩资料块b*与c*时的初始字典、初始滑动视窗的内容与进行熵编码的概率表。如此,第二压缩资料块b*与c*可以根据解压缩第一压缩资料块a时所产生的信息进行压缩,而产生非动态装载资料块B与C。
要说明的是,步骤S403与S406并非必要步骤,非动态装载资料块与动态装载资料块可能并非用以储存至易失性存储器。例如,资料库储存压缩资料以供远端用户存取,资料库具有较强大的计算能力,而能够快速地解压缩远端用户所要求的资料,此时资料库会解压缩第一压缩资料块与第二压缩资料块,以产生非动态装载资料块与动态装载资料块,并将非动态装载资料块与动态装载资料块透过传输通道送给远端用户。除此之外,图4中的步骤S403与S406的顺序并非用以限定本发明,步骤S403只要在步骤S402之后即可,步骤S406只要在步骤S405之后即可。
接着,请参照图5,图5是本发明的另一个实施例所提供的资料解压缩方法的流程图。图5与图4的不同处在于,步骤S505是步骤S405的其中一种实施方式,其他的步骤S501、S502、S503、S504、S506与步骤S401、S402、S403、S504、S506相同。在步骤S505中,将解压缩第一压缩资料块时所产生的滑动视窗内的内容作解压缩第二压缩资料块时的初始滑动视窗内的内容,并据此解压缩第二压缩资料块,以产生动态装载资料块。例如,在解压缩第二压缩资料块b*与c*时,仅根据解压缩第一压缩资料块a时所产生的滑动视窗内的内容作为其解压缩时的初始滑动视窗内的内容。
图5的实施方式仅适用于基于字典的解压缩方式,且此种基于字典解压缩方式是采用滑动视窗内的内容来解码当前解码字串,若当前解码字串为指标与长度,则根据指标与长度寻找滑动视窗内的内容的字串当作解码结果,其中使用滑动视窗的基于字典解压缩方式可以是LZ77与LZSS的解压缩方式。
换言之,在步骤S505中,解压缩第一压缩资料块a的最后一个字串时所产生的滑动视窗的内容会被当作解第二压缩资料块b*与c*的初始滑动视窗的内容,而不像传统使用滑动视窗的基于字典解压缩方式会将初始滑动视窗的内容设为空集合。另外,需要说明的是,目前大部分的压缩软件或压缩装置多半在使用基于字典压缩方式后,会再对其压缩结果进行熵编码,以更进一步提高其压缩率。因此,在使用滑动视窗的基于字典解压缩方式对第一压缩资料块与第二压缩资料块进行解压缩前,可能会将第一压缩资料块与第二压缩资料块进行熵解码,其中所述熵解码包括霍夫曼解码、算术解码与香农解码。熵解码使用的概率表可以是固定的也可以是在压缩过程中自动更新的。在图5的实施方式中,解压缩第一压缩资料块与第二压缩资料块时,若有进行熵解码,则其使用的概率表是相互独立的。
接着,请参照图6,图6是本发明的另一个实施例所提供的资料解压缩方法的流程图。图6与图4的不同处在于,步骤S605是步骤S405的其中一种实施方式,其他的步骤S601、S602、S603、S604、S606与步骤S401、S402、S403、S404、S406相同。在步骤S605中,将解压缩第一压缩资料块时所产生的字典或滑动视窗内的内容作解压缩第二压缩资料块时的初始字典或初始滑动视窗内的内容,且复制解压缩第一压缩资料块时所产生的概率表作为解压缩第二压缩资料块时进行熵解码的初始概率表,并据此解压缩第二压缩资料块,以产生动态装载资料块。例如,在解压缩第二压缩资料块b*与c*时,根据解压缩第一压缩资料块a时所产生的字典或滑动视窗内的内容作为其解压缩时的初始字典或初始滑动视窗内的内容。除此之外,在解压缩第二压缩资料块b*与c*时,更利用解压缩第一压缩资料块a时所产生的概率表作为其解压缩时进行熵解码的初始概率表。
图6的实施方式适用于任何基于字典加上熵解码的解压缩方式,且此种基于字典解压缩方式是采用字典或滑动视窗内的内容来解码当前解码字串,若当前解码字串为代替码字,或者为指标与长度,则根据代替码字或指标与长度寻找字典或滑动视窗内的内容的字串当作解码结果,其中基于字典解压缩方式可以是LZ77、LZSS、LZ78与LZW的解压缩方式。
换言之,在步骤S605中,解压缩第一压缩资料块a的最后一个字串时所产生的字典或滑动视窗的内容会被当作解压缩第二压缩资料块b*与c*的初始字典或初始滑动视窗的内容,而不像传统基于字典压缩方式会将初始字典或初始滑动视窗的内容设为空集合。另外,在图6的实施方式中,解压缩第一压缩资料块与第二压缩资料块时,若有进行熵解码,其使用的概率表皆相同,换言之,复制解压缩第一压缩资料块所产生的概率表被作为第二压缩资料块解压缩时的初始概率表。
另外,要说明的是,图4至图6的资料解压缩方法分别对应于图1至图3的资料压缩方法。因此根据前面所述,图6的资料解压缩方法于解压缩时所花费的易失性存储器会较图5的资料解压缩方法来得多,因为图6所提供的资料解压缩方法需要一直保留解压缩非动态装载资料块时所产生的概率表以被复制作为解压缩各个动态装载资料块的初始概率表。换言之,若在易失性存储器空间较少时,可以采用图2所提供的资料压缩方法与图5所提供的资料解压缩方法。相反地,若在需要更高的压缩率时,则可以采用图3所提供的资料压缩方法与图6所提供的资料解压缩方法。
在介绍完本发明的实施例所提供的资料压缩方法与资料解压缩方法后,本发明的实施例还提供了对应上述的资料压缩方法与资料解压缩方法的资料压缩装置与资料解压缩装置。所述的资料压缩装置与资料解压缩装置中的各模块可以是硬件电路,或者是借由电脑执行软件程序所实现的功能模块。另外,由于前述的资料压缩方法与资料解压缩方法亦可以电脑执行软件程序产生,因此实施前述的资料压缩方法与资料解压缩方法所对应的程序码可以记录于各种不同的储存媒介,例如磁性硬盘、磁带、非易失性存储器与光储存媒介。
请参照图7,图7是本发明的实施例所提供的资料压缩装置的方块图。资料压缩装置700包括资料分块装置701、第一压缩单元702、第二压缩单元703与非易失性存储器704。第一压缩单702元连接于资料分块装置701,第二压缩单元703连接于资料分块装置701,非易失性存储器704连接于第一压缩单元702与第二压缩单元703。值得一提的是,资料压缩装置700本身可以是用硬件电路实现出来的硬件装置,或者本身可以是电脑。当资料压缩装置700本身为电脑时,则资料分块装置701、第一压缩单元702与第二压缩单元703是根据执行软件程序所实现的功能模块。
资料分块701装置对资料进行分块,以产生至少一个非动态装载资料块与至少一个动态装载资料块。第一压缩单元702对非动态装载资料块进行压缩,以产生第一压缩资料块。第二压缩单元703根据压缩非动态装载资料块时所产生的信息,对动态装载资料块所组成的资料块进行压缩,以产生第二压缩资料块。非易失性存储器704则用来储存第一压缩资料块与第二压缩资料块。另外,有关于第二压缩单元703如何对动态装载资料块进行压缩的方式则已经于前面的资料压缩方法中详细介绍,故在此便不再赘述。
介绍完所述资料压缩装置后,接着介绍本发明实施例所提供的资料压缩装置。请参照图8,图8是本发明的实施例所提供的资料解压缩装置的方块图。资料解压缩装置800包括第一解压缩单元801、第二解压缩单元802与易失性存储器803。易失性存储器803连接于第一解压缩单元801与第二解压缩单元802。值得一提的是,资料解压缩装置800本身可以是用硬件电路实现出来的硬件装置,或者本身可以是电脑。当资料解压缩装置800本身为电脑时,则第一解压缩单元801与第二解压缩单元802是根据执行软件程序所实现的功能模块。
第一解压缩单元801对第一压缩资料块进行解压缩,以产生非动态装载资料块。第二解压缩单元802根据解压缩第一压缩资料块时所产生的信息,对第二压缩资料块解压缩,以产生动态装载资料块。易失性存储器803用以储存非动态装载资料块与动态装载资料块。另外,有关于第二解压缩单元702如何对第二压缩资料块解压缩的方式则已经于前面的资料解压缩方法中详细介绍,故在此便不再赘述。
综上所述,本发明的实施例所提供的资料压缩方法与资料压缩装置将资料分成一个以上的非动态装载资料块与x个动态装载资料块(x为大于等于1的整数),其中非动态装载资料块独自被压缩,而动态装载资料块则可以根据压缩非动态装载资料块时所产生的信息进行压缩,因此其压缩率较传统的资料分块压缩方法来得高,且能够较节省储存空间。除此之外,本发明的实施例还提供对应的资料解压缩方法与资料解压缩装置,当需要解压缩某个动态装载资料块时,其解压缩所花费的计算时间较传统一次对整份资料解压缩然后抽取需要的动态装载资料块的方法来得少。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
Claims (32)
1.一种资料压缩方法,包括:
对资料进行分块,以产生至少一个非动态装载资料块与至少一个动态装载资料块;
对所述非动态装载资料块进行压缩,以产生第一压缩资料块;以及
根据基于字典压缩方式压缩所述非动态装载资料块时所产生的信息,对所述动态装载资料块所组成的资料块进行压缩,以产生第二压缩资料块。
2.如权利要求1所述的资料压缩方法,其特征在于,更包括:
储存所述第一压缩资料块至非易失性存储器;以及
储存所述第二压缩资料块至所述非易失性存储器。
3.如权利要求1所述的资料压缩方法,其特征在于,所述动态装载资料块利用压缩所述非动态装载资料块时所产生的滑动视窗内的内容作其压缩时的初始滑动视窗内的内容。
4.如权利要求3所述的资料压缩方法,其特征在于,对所述非动态装载资料块与动态装载资料块进行压缩的方式是采用基于字典的压缩方式。
5.如权利要求4所述的资料压缩方法,其特征在于,所述基于字典的压缩方式为LZ77或LZSS的压缩方式。
6.如权利要求1所述的资料压缩方法,其特征在于,所述动态装载资料块利用压缩所述非动态装载资料块时所产生的字典或滑动视窗内的内容作为其压缩时的初始字典或初始滑动视窗内的内容,且所述动态装载资料块更利用压缩所述非动态装载资料块时所产生的概率表作为其压缩时进行熵编码的初始概率表。
7.如权利要求6所述的资料压缩方法,其特征在于,对所述非动态装载资料块与动态装载资料块进行压缩的方式是采用基于字典与结合熵编码的压缩方式。
8.如权利要求7所述的资料压缩方法,其特征在于,所述基于字典的压缩方式为LZ77、LZ78、LZSS或LZW的压缩方式,所述熵编码为霍夫曼编码、算术编码或香农编码。
9.一种资料解压缩方法,包括:
接收第一压缩资料块;
对所述第一压缩资料块进行解压缩,以产生非动态装载资料块;
接收第二压缩资料块;以及
根据基于字典解压缩方式解压缩所述第一压缩资料块时所产生的信息,对所述第二压缩资料块解压缩,以产生动态装载资料块。
10.如权利要求9所述的资料解压缩方法,其特征在于,更包括:
储存所述非动态装载资料块至易失性存储器;以及
储存所述动态装载资料块至所述易失性存储器。
11.如权利要求9所述的资料解压缩方法,其特征在于,所述第二压缩资料块利用解压缩所述第一资料块时所产生的滑动视窗内的内容作其压缩时的初始滑动视窗内的内容。
12.如权利要求11所述的资料解压缩方法,其特征在于,对所述第一压缩资料块与第二压缩资料块进行解压缩的方式是采用基于字典的解压缩方式。
13.如权利要求12所述的资料解压缩方法,其特征在于,所述基于字典的解压缩方式为LZ77或LZSS的解压缩方式。
14.如权利要求9所述的资料解压缩方法,其特征在于,所述第二压缩资料块利用解压缩所述第一压缩资料块时所产生的字典或滑动视窗内的内容作为其解压缩时的初始字典或初始滑动视窗内的内容,且所述第二资料块更利用解压缩所述第一压缩资料块时所产生的概率表作为其压缩时进行熵解码的初始概率表。
15.如权利要求14所述的资料解压缩方法,其特征在于,对所述第一压缩资料块与第二压缩资料块进行解压缩的方式是采用基于字典与结合熵解码的解压缩方式。
16.如权利要求15所述的资料解压缩方法,其特征在于,所述基于字典的解压缩方式为LZ77、LZ78、LZSS或LZW的解压缩方式,所述熵解码为霍夫曼解码、算术解码或香农解码。
17.一种资料压缩装置,包括:
资料分块装置,对资料进行分块,以产生至少一个非动态装载资料块与至少一个动态装载资料块;
第一压缩单元,连接于所述资料分块装置,对所述非动态装载资料块进行压缩,以产生第一压缩资料块;以及
第二压缩单元,连接于所述资料分块装置,根据基于字典压缩方式压缩所述非动态装载资料块时所产生的信息,对所述动态装载资料块所组成的资料块进行压缩,以产生第二压缩资料块。
18.如权利要求17所述的资料压缩装置,其特征在于,更包括:
非易失性存储器,连接于所述第一压缩单元与第二压缩单元,用以储存所述第一压缩资料块与第二压缩资料块。
19.如权利要求17所述的资料压缩装置,其特征在于,所述动态装载资料块利用压缩所述非动态装载资料块时所产生的滑动视窗内的内容作其压缩时的初始滑动视窗内的内容。
20.如权利要求19所述的资料压缩装置,其特征在于,对所述非动态装载资料块与动态装载资料块进行压缩的方式是采用基于字典的压缩方式。
21.如权利要求20所述的资料压缩装置,其特征在于,所述基于字典的压缩方式为LZ77或LZSS的压缩方式。
22.如权利要求17所述的资料压缩装置,其特征在于,所述动态装载资料块利用压缩所述非动态装载资料块时所产生的字典或滑动视窗内的内容作为其压缩时的初始字典或初始滑动视窗内的内容,且所述动态装载资料块更利用压缩所述非动态装载资料块时所产生的概率表作为其压缩时进行熵编码的初始概率表。
23.如权利要求22所述的资料压缩装置,其特征在于,对所述非动态装载资料块与动态装载资料块进行压缩的方式是采用基于字典与结合熵编码的压缩方式。
24.如权利要求23所述的资料压缩装置,其特征在于,所述基于字典的压缩方式为LZ77、LZ78、LZSS或LZW的压缩方式,所述熵编码为霍夫曼编码、算术编码或香农编码。
25.一种资料解压缩装置,包括:
第一解压缩单元,对第一压缩资料块进行解压缩,以产生非动态装载资料块;以及
第二解压缩单元,根据基于字典解压缩方式解压缩所述第一压缩资料块时所产生的信息,对第二压缩资料块解压缩,以产生动态装载资料块。
26.如权利要求25所述的资料解压缩装置,其特征在于,更包括:
易失性存储器,连接于所述第一解压缩单元与第二解压缩单元,储存所述非动态装载资料块与动态装载资料块。
27.如权利要求25所述的资料解压缩装置,其特征在于,所述第二压缩资料块利用解压缩所述第一资料块时所产生的滑动视窗内的内容作其压缩时的初始滑动视窗内的内容。
28.如权利要求27所述的资料解压缩装置,其特征在于,对所述第一压缩资料块与第二压缩资料块进行解压缩的方式是采用基于字典的解压缩方式。
29.如权利要求28所述的资料解压缩装置,其特征在于,所述基于字典的解压缩方式为LZ77或LZSS的解压缩方式。
30.如权利要求25所述的资料解压缩装置,其特征在于,所述第二压缩资料块利用解压缩所述第一压缩资料块时所产生的字典或滑动视窗内的内容作为其解压缩时的初始字典或初始滑动视窗内的内容,且所述第二资料块更利用解压缩所述第一压缩资料块时所产生的概率表作为其解压缩时进行熵解码的初始概率表。
31.如权利要求30所述的资料解压缩装置,其特征在于,对所述第一压缩资料块与第二压缩资料块进行解压缩的方式是采用基于字典与结合熵解码的解压缩方式。
32.如权利要求31所述的资料解压缩装置,其特征在于,所述基于字典的解压缩方式为LZ77、LZ78、LZSS或LZW的解压缩方式,所述熵解码为霍夫曼解码、算术解码或香农解码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010002899 CN102129872B (zh) | 2010-01-14 | 2010-01-14 | 资料压缩、解压缩方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010002899 CN102129872B (zh) | 2010-01-14 | 2010-01-14 | 资料压缩、解压缩方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102129872A CN102129872A (zh) | 2011-07-20 |
CN102129872B true CN102129872B (zh) | 2013-01-09 |
Family
ID=44267923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010002899 Expired - Fee Related CN102129872B (zh) | 2010-01-14 | 2010-01-14 | 资料压缩、解压缩方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102129872B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710263B (zh) * | 2012-05-31 | 2015-04-08 | 西安电子科技大学 | 基于熵判决最优差分编码的lzw压缩方法 |
CN104199951B (zh) * | 2014-09-12 | 2018-09-04 | 百度在线网络技术(北京)有限公司 | 网页处理方法及装置 |
CN105574053B (zh) * | 2014-11-05 | 2019-09-06 | 京微雅格(北京)科技有限公司 | Fpga配置文件的压缩方法和装置 |
CN105573775B (zh) * | 2014-11-05 | 2019-04-09 | 京微雅格(北京)科技有限公司 | Fpga配置文件加载方法和解码器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5729228A (en) * | 1995-07-06 | 1998-03-17 | International Business Machines Corp. | Parallel compression and decompression using a cooperative dictionary |
CN1964351A (zh) * | 2006-11-21 | 2007-05-16 | 珠海金山软件股份有限公司 | 一种通过数据包压缩减小游戏服务器网络流量的方法 |
CN101420614A (zh) * | 2008-11-28 | 2009-04-29 | 同济大学 | 一种混合编码与字典编码整合的图像压缩方法及装置 |
-
2010
- 2010-01-14 CN CN 201010002899 patent/CN102129872B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5729228A (en) * | 1995-07-06 | 1998-03-17 | International Business Machines Corp. | Parallel compression and decompression using a cooperative dictionary |
CN1964351A (zh) * | 2006-11-21 | 2007-05-16 | 珠海金山软件股份有限公司 | 一种通过数据包压缩减小游戏服务器网络流量的方法 |
CN101420614A (zh) * | 2008-11-28 | 2009-04-29 | 同济大学 | 一种混合编码与字典编码整合的图像压缩方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102129872A (zh) | 2011-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9454552B2 (en) | Entropy coding and decoding using polar codes | |
RU2503138C2 (ru) | Кодирование встраиваемой графики для изображений с разреженными гистограммами | |
CN101001385B (zh) | 可变长度编码方法以及可变长度解码方法 | |
RU2565877C2 (ru) | Способ и устройство для определения соответствия между синтаксическим элементом и кодовым словом для кодирования переменной длины | |
US20080181296A1 (en) | Per multi-block partition breakpoint determining for hybrid variable length coding | |
WO2010044100A1 (en) | Lossless compression | |
US8285062B2 (en) | Method for improving the performance of embedded graphics coding | |
KR20130143678A (ko) | 2d 매트릭스들에 인코딩 파라미터들을 저장하는 이미지 압축을 위한 방법 및 장치 | |
US20220329804A1 (en) | Scalar quantizer decision scheme for dependent scalar quantization | |
TW202002636A (zh) | 網格寫碼之量化係數寫碼 | |
CN102129872B (zh) | 资料压缩、解压缩方法及其装置 | |
US20220224947A1 (en) | Coding method and related device | |
JP6647340B2 (ja) | 改善されたファイルの圧縮及び暗号化 | |
CN104125475A (zh) | 一种多维量子数据压缩、解压缩方法及装置 | |
US20100321218A1 (en) | Lossless content encoding | |
CN114337678A (zh) | 数据压缩方法、装置、设备及存储介质 | |
US8340443B2 (en) | System and method for compressing compressed data | |
US8305244B2 (en) | Coding data using different coding alphabets | |
US8320687B2 (en) | Universal lossy compression methods | |
CN104682966A (zh) | 列表数据的无损压缩方法 | |
CN116418348A (zh) | 一种数据压缩方法、装置、设备及存储介质 | |
US20020167429A1 (en) | Lossless data compression method for uniform entropy data | |
CN116566397A (zh) | 编码、解码方法、编码器、解码器、电子设备及存储介质 | |
KR101256893B1 (ko) | 데이터 부호화/복호화 장치 및 방법 | |
CN112188197B (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: 20130109 Termination date: 20190114 |
|
CF01 | Termination of patent right due to non-payment of annual fee |