CN106688186A - 在基于lz的压缩算法中在多个经压缩块之间共享初始词典和霍夫曼树 - Google Patents
在基于lz的压缩算法中在多个经压缩块之间共享初始词典和霍夫曼树 Download PDFInfo
- Publication number
- CN106688186A CN106688186A CN201580048281.0A CN201580048281A CN106688186A CN 106688186 A CN106688186 A CN 106688186A CN 201580048281 A CN201580048281 A CN 201580048281A CN 106688186 A CN106688186 A CN 106688186A
- Authority
- CN
- China
- Prior art keywords
- piece
- compressed
- collection
- initial dictionary
- character string
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/6076—Selection between compressors of the same type
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
-
- 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/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
-
- 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/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
将数据字符串分割成块集。基于初始词典集和霍夫曼树集压缩每一块。每一块通过指针与所述初始词典集中的初始字典和所述霍夫曼树集中的霍夫曼树相关联,所述初始字典和所述霍夫曼树用以压缩所述块。经压缩数据字符串包含所述初始词典集、所述霍夫曼树集以及所述经压缩块和相关联指针。
Description
技术领域
实施例涉及无损数据压缩,且确切地说,涉及使用Lempel-Ziv型无损压缩与霍夫曼树的数据压缩。
背景技术
LZ(Lempel-Ziv)型无损压缩方案的常规使用会利用相对较大块大小。举例来说,可使用开始于初始字典,接着是用霍夫曼树进行编码的LZ型算法压缩大块(字符串)的数据。使解码器已知初始字典和霍夫曼树。对于随机存取检索,可能需要将数据在压缩之前分割成相对较小块,使得可独立地存取和解压缩每一经压缩数据块。用于在小块上使用LZ压缩方法和霍夫曼树的当前方案可由于对存储可为解码所需的许多初始词典和霍夫曼树的内容的存储器要求而导致非所要开销。
发明内容
本发明的实施例涉及可通过在Lempel-Ziv压缩方案中在多个经压缩块当中共享初始词典和霍夫曼树提供存储器资源和其它开销的减少以及其它特征和益处的***和方法。
根据一或多个示范性实施例的实例方法可包含:将数据字符串分割成块集;压缩所述块集中的每一块以产生经压缩块集,其中所述压缩可基于初始词典集和霍夫曼树集。在一方面中,每一经压缩块可通过指针与所述初始词典集中的初始字典和所述霍夫曼树集中的霍夫曼树相关联,所述初始字典和所述霍夫曼树用以压缩所述块。在一方面中,根据一或多个示范性实施例的实例方法可进一步包含产生经压缩数据字符串,所述经压缩数据字符串包含所述初始词典集、所述霍夫曼树集以及所述经压缩块和相关联指针。
在一方面中,基于所述初始词典集的所述压缩可基于Lempel-Ziv压缩。
在一方面中,所述压缩可包含为每一块选择所述初始词典集当中的初始字典和所述霍夫曼树集当中的霍夫曼树,且在一相关方面中,产生经压缩数据字符串可包含参考用于压缩所述块的所述初始字典并参考用于压缩所述块的所述霍夫曼树,将标头附加到每一经压缩块。
在一方面中,所述块中的至少一者的压缩可包含:通过Lempel-Ziv压缩基于所述初始字典压缩所述块,以产生经Lempel-Ziv压缩块;对所述经Lempel-Ziv压缩块执行空运行压缩以产生符号;确定所述所产生的符号中的每一者的频率计数;和基于所述所确定的频率计数选择所述霍夫曼树以用于压缩所述经Lempel-Ziv压缩块。
根据一或多个示范性实施例的计算机程序产品的实例可包含存储指令的计算机可读媒体,所述指令在由计算机执行时可致使所述计算机:接收数据字符串;将所述数据字符串分割成块集;和压缩所述块集中的每一块以产生经压缩块集。在一方面中,所述压缩可基于初始词典集和霍夫曼树集。在另一方面中,计算机可读媒体所存储的指令可包含在由所述计算机执行时致使所述计算机执行以下操作的指令:通过指针使每一块与所述初始词典集中的初始字典和所述霍夫曼树集中的霍夫曼树相关联,所述初始字典和所述霍夫曼树用以压缩每一块。在一方面中,计算机可读媒体所存储的指令可在由所述计算机执行时致使所述计算机产生经压缩数据字符串,所述经压缩数据字符串包含所述初始词典集、所述霍夫曼树集以及所述经压缩块和相关联指针。
根据一或多个示范性实施例的设备的实例可包含:处理器;和存储器,其耦合到所述处理器,且所述存储器可存储可由所述处理器读取和执行的指令。在一方面中,所述指令可包含在由所述处理器执行时可致使所述处理器执行以下操作的指令:接收数据字符串;将所述数据字符串分割成块集;和压缩所述块集中的每一块以产生经压缩块集。在一方面中,所述指令在由所述处理器执行时致使所述处理器压缩块可包含使所述压缩基于初始词典集和霍夫曼树集的指令,以及可通过指针使每一块与所述初始词典集中的初始字典和所述霍夫曼树集的霍夫曼树相关联的指令,所述初始字典和所述霍夫曼树用以压缩所述块。在一方面中,所述指令可包含在由所述处理器执行时可致使所述处理器产生经压缩数据字符串的指令,且所述经压缩数据字符串可包含所述初始词典集、所述霍夫曼树集以及所述经压缩块和相关联指针。
根据一或多个示范性实施例的设备的实例可包含:用于将数据字符串分割成块集的装置;和用于压缩所述块集中的每一块以产生经压缩块集的装置。在一方面中,所述用于压缩的装置可经配置以执行基于初始词典集和霍夫曼树集的所述压缩,且可经配置以产生每一经压缩块,对于每一经压缩块具有指向所述初始词典集中的初始字典和所述霍夫曼树集中的霍夫曼树的指针,所述初始字典和所述霍夫曼树用以压缩每一块。根据一或多个示范性实施例的设备的实例可包含用于产生经压缩数据字符串的装置,且所述经压缩数据字符串可包含所述初始词典集、所述霍夫曼树集以及所述经压缩块和相关联指针。
附图说明
呈现附图以辅助描述本发明的实施例,且提供所述附图仅用于实施例的说明且并非限制实施例。
图1说明根据实施例的方法和数据方案。
图2是说明根据实施例的方法的流程图。
图3说明实施例可应用于其中的通信网络。
图4说明用于实施根据实施例的方法的计算机***。
具体实施方式
在以下针对本发明特定实施例的描述和相关图式中揭示本发明的若干方面。可在不脱离本发明的范围的情况下设计替代性实施例。另外,将不会详细描述或将省略本发明的众所周知的元件以免混淆本发明的相关细节。
术语“本发明的实施例”并不要求本发明的所有实施例包含所论述的特征、优点或操作模式。
本文中所使用的术语仅仅是为了描述特定实施例的目的,且并不意在限制本发明的实施例。如本文中所使用,除非上下文另外清楚地指示,否则单数形式“一”和“所述”意图还包含复数形式。应进一步理解,术语“包括(comprises、comprising)”及/或“包含(includes、including)”当在本文中使用时指定所陈述的特征、整数、步骤、操作、元件及/或组件的存在,但并不排除一或多个其它特征、整数、步骤、操作、元件、组件及/或其群组的存在或添加。
另外,依据待由(例如)计算装置的元件执行的动作的序列来描述许多实施例。将认识到,专用电路(例如,专用集成电路(ASIC))、执行程序指令的一或多个处理器或两者的组合可执行本文中所描述的各种动作。另外,可认为本文中所描述的动作序列完全体现于任何形式的计算机可读存储媒体内,所述计算机可读存储媒体中存储有对应计算机指令集,所述计算机指令集在被执行时将使得相关联的处理器执行本文中所描述的功能性。因此,本发明的各方面可以数个不同形式来体现,预期所有形式落在所主张的标的物的范围内。另外,对于本文中所描述的实施例中的每一者来说,任何此类实施例的对应形式可在本文中被描述为(例如)“经配置以(执行所描述的动作)的逻辑”。
为压缩和解压缩具有类似数据类型的多个数据块,实施例使用在所述块当中共享的单个初始字典和霍夫曼树。给定大数据字符串分割成块集,可使用相对较小的初始词典和霍夫曼树集,其中在所述块集的子集当中共享初始词典和霍夫曼树集中的单个初始字典和单个霍夫曼树。
对于一实施例,将明文数据分割成块集,其中使用选自相对较小的初始词典和霍夫曼树集的初始字典和霍夫曼树压缩每一块。参考解码所需的特定初始字典并参考解码所需的特定霍夫曼树,将标头附加到每一经压缩块。初始词典与霍夫曼树可配成对以使得单个参考可指包括初始字典和配对的霍夫曼树的对。初始词典和霍夫曼树集可作为经压缩或未经压缩标头附加到经压缩块。结果为包括经压缩数据和标头的字符串,其具有将任何特定经压缩块独立于其它经压缩块进行解码所需的所有信息。
图1说明根据实施例的用于压缩数据字符串102的方案100。待压缩的数据是数据字符串102,其划分成标记为104A、104B、104C、104D、104E、104F和104G的块。在实践中,块大小取决于***的应用,且表示存取经压缩数据时的给定粒度。举例来说,数据字符串102可表示可执行代码,其中每一块存储为经压缩可执行代码块且在需要时从存储器检索,且接着可将所检索的经压缩块独立于其它块进行解压缩。结果可为所产生的可执行代码块,且在执行代码时或期间,可检索并解压缩另一经压缩可执行代码块。
用于基于LZ的压缩的n个初始词典的集合形象地表示为标记106的四个表数据结构,m个霍夫曼树的集合形象地表示为标记为108的四个表数据结构。当压缩块时,选择适合的初始字典和霍夫曼树执行所述压缩。如在步骤110中所指示,使用LZ型压缩。除对特定块执行LZ压缩之外,还使用所选择的用于所述块的特定霍夫曼树进一步压缩所得位。Lempel-Ziv和霍夫曼树压缩和解压缩方案是众所周知的且无需在描述实施例时详细论述。
由压缩块104A、104B、104C、104D、104E、104F和104G产生的块分别为块104A'、104B'、104C'、104D'、104E'、104F'和104G'。这些块是数据字符串112的部分,所述数据字符串还包含霍夫曼树和初始词典。
一或多个指针对应于每一块104A'、104B'、104C'、104D'、104E'、104F'和104G'以指示哪个初始字典和霍夫曼树将用于解压缩。此类指针可占用块104A'、104B'、104C'、104D'、104E'、104F'和104G'内的字段,例如标头,或其可占用数据字符串112的其它字段。举例来说,块114包含已根据字段116所指向的初始字典和字段118所指向(识别)的霍夫曼树经压缩的数据。因此,数据字符串112包含解压缩存储于任何特定块104A'、104B'、104C'、104D'、104E'、104F'和104G'中的数据所需的所有信息。
给定待压缩的数据,可以启发法形成初始词典和霍夫曼树集。启发法可用以找到初始词典的数目和其内容两者。对于由LZ型算法使用特定初始字典压缩的特定块,可通过执行空运行(dry-run)压缩获得每一所得符号的频率计数。启发法可用以找到用以压缩块的霍夫曼树集。
图2说明根据上文所描述的实施例的方法。将数据字符串分割成块集(202)。可使用启发法确定初始词典集(204)以及霍夫曼树集(206)。使用所述词典和霍夫曼树压缩每一块(208)。举例来说,可将块集分割成子集,其中每一子集可与特定初始字典和霍夫曼树相关联。也就是说,指向(或指示)初始词典集中的特定初始字典和霍夫曼树集中的特定霍夫曼树的指针(或多个指针)与每一块子集相关联(210)。词典集和霍夫曼树集与经压缩块子集(以及其指针)包含在一起以提供经压缩数据字符串,可在执行压缩方案的反向过程之后从经压缩数据字符串获得原始块(212)。
图3说明实施例可应用于其中的无线通信***。图3说明包括基站304A、304B和304C的无线通信网络302。图3展示标记为306的通信装置,其可为移动通信装置(例如蜂窝式电话、平板计算机),或适用于蜂窝式电话网络的一些其它种类的通信装置(例如计算机或计算机***)。通信装置306无需是移动的。在图3的特定实例中,通信装置306位于与基站304C相关联的小区内。箭头308和310分别用图形表示上行链路信道和下行链路信道,通信装置306通过所述上行链路信道和下行链路信道与基站304C通信。
举例来说,可在与通信装置306或基站304C或两者相关联的数据处理***中使用实施例。图3仅说明其中可使用本文中描述的实施例的许多应用中的一个应用。
实施例可包含非暂时性计算机可读媒体,其存储有指令,所述指令在由处理器(或多个处理器)执行时致使***执行根据先前所描述的实施例的方法。举例来说,在图4的计算机***中,可执行指令可存储于存储器402中。存储器402可为存储器层次的部分。存储于存储器402中的指令可由处理器404执行,其中处理器404和存储器402借助于通信路径408通信。举例来说,通信路径408可实现为总线。额外组件可耦合到处理器404和存储器402,其中为了易于说明,仅展示一个其它组件(显示器406)。
所属领域的技术人员应了解,可以使用多种不同技术和技艺中的任一者来表示信息和信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能提及的数据、指令、命令、信息、信号、位、符号和码片。
此外,所属领域的技术人员将了解,结合本文中所揭示的实施例而描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为清晰地说明硬件与软件的此可互换性,上文已大体就其功能性描述了各种说明性组件、块、模块、电路和步骤。此功能性是实施为硬件还是软件取决于特定应用及施加于整个***的设计约束。熟练的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但此类实施方案决策不应被解释为会引起脱离本发明的范围。
结合本文中所揭示的实施例而描述的方法、序列和/或算法可直接以硬件、以由处理器执行的软件模块或以两者的组合体现。软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可换磁盘、CD-ROM,或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并且将信息写入到存储媒体。在替代方案中,存储媒体可集成到处理器。
因此,本发明的实施例可包含体现用于在Lempel-Ziv压缩方案在多个经压缩块当中共享初始词典和霍夫曼树的方法的计算机可读媒体。因此,本发明不限于所说明的实例,且任何用于执行本文中所描述的功能性的装置包含于本发明的实施例中。
虽然前述揭示内容展示本发明的说明性实施例,但应注意,在不脱离如所附权利要求书界定的本发明的范围的情况下,可在其中做出各种改变及修改。无需按任何特定次序来执行根据本文中所述的本发明的实施例的方法权利要求项的功能、步骤和/或动作。此外,尽管可能以单数形式描述或主张本发明的元件,但除非明确陈述限于单数形式,否则也涵盖复数形式。
Claims (30)
1.一种方法,其包括:
将数据字符串分割成块集;
压缩所述块集中的每一块以产生经压缩块集,其中所述压缩是基于初始词典集和霍夫曼树集,其中每一块通过指针与所述初始词典集中的初始字典和所述霍夫曼树集中的霍夫曼树相关联,所述初始字典和所述霍夫曼树用以压缩所述块;和
产生经压缩数据字符串,所述经压缩数据字符串包含所述初始词典集、所述霍夫曼树集以及所述经压缩块和相关联指针。
2.根据权利要求1所述的方法,其中基于所述初始词典集的所述压缩是基于Lempel-Ziv压缩。
3.根据权利要求1所述的方法,其中所述压缩包含为每一块选择所述初始词典集当中的初始字典和所述霍夫曼树集当中的霍夫曼树,且其中产生经压缩数据字符串包含参考用于压缩每一块的所述初始字典并参考用于压缩所述块的所述霍夫曼树,将标头附加到所述经压缩块。
4.根据权利要求3所述的方法,其中所述块中的至少一者的所述压缩包含:
通过Lempel-Ziv压缩基于所述初始字典压缩所述块,以产生经Lempel-Ziv压缩块;
对所述经Lempel-Ziv压缩块执行空运行压缩以产生符号;
确定所述所产生的符号中的每一者的频率计数;和
基于所述所确定的频率计数选择所述霍夫曼树以用于压缩所述经Lempel-Ziv压缩块。
5.根据权利要求4所述的方法,其中所述数据字符串是用于应用程序的可由处理器执行的可执行代码,其中所述分割形成所述块集中的具有基于所述应用程序的给定粒度的块大小的所述块,其中所述经压缩块是所述可执行代码的经压缩块,且其中所述方法进一步包括:
将所述经压缩块存储于耦合到所述处理器的存储器中;
从所述存储器检索所述经压缩块中的一者;
使用所述所检索的经压缩块的所述相关联指针指向的初始字典和所述霍夫曼树,将所述所检索的经压缩块独立于其它经压缩块进行解压缩,以产生可执行代码块;和
通过所述处理器执行所述所产生的可执行代码块。
6.根据权利要求4所述的方法,其中所述相关联指针包含指向与所述经压缩块相关联的所述初始字典的指针和指向与所述经压缩块相关联的所述霍夫曼树的指针。
7.根据权利要求6所述的方法,其中产生经压缩数据字符串经配置以将所述初始词典集和所述霍夫曼树集附加到所述经压缩数据字符串。
8.根据权利要求7所述的方法,其中产生经压缩数据字符串进一步经配置以将所述初始词典集和所述霍夫曼树集作为所述经压缩数据字符串的标头进行附加。
9.根据权利要求3所述的方法,其中所述数据字符串是用于应用程序的可由装置中的处理器执行的可执行代码,其中所述分割形成所述块集中的具有基于所述应用程序的给定粒度的块大小的所述块,其中所述经压缩块是所述可执行代码的经压缩块,且其中所述方法进一步包括:
将所述经压缩块存储于耦合到所述处理器的存储器中;
从所述存储器检索所述经压缩块中的一者;
使用所述所检索的经压缩块的所述相关联指针指向的初始字典和所述霍夫曼树,将所述所检索的经压缩块独立于其它经压缩块进行解压缩,以产生可执行代码块;和
通过所述处理器执行所述所产生的可执行代码块。
10.根据权利要求9所述的方法,其中产生经压缩数据字符串经配置以将所述初始词典集和所述霍夫曼树集附加到所述经压缩数据字符串。
11.根据权利要求9所述的方法,其中所述装置是选自由蜂窝式电话、平板计算机和计算机***组成的群。
12.一种具有存储代码的计算机可读媒体的计算机程序产品,所述代码在由计算机执行时致使所述计算机
接收数据字符串;
将所述数据字符串分割成块集;
压缩所述块集中的每一块以产生经压缩块集,其中所述压缩是基于初始词典集和霍夫曼树集,其中每一块通过指针与所述初始词典集中的初始字典和所述霍夫曼树集中的霍夫曼树相关联,所述初始字典和所述霍夫曼树用以压缩所述块;和
产生经压缩数据字符串,所述经压缩数据字符串包含所述初始词典集、所述霍夫曼树集以及所述经压缩块和相关联指针。
13.根据权利要求12所述的计算机程序产品,其中基于所述初始词典集的所述压缩是基于Lempel-Ziv压缩。
14.根据权利要求12所述的计算机程序产品,其中在执行时致使所述计算机压缩每一块的所述代码包含在执行时致使所述计算机为每一块选择所述初始词典集当中的初始字典和所述霍夫曼树集当中的霍夫曼树的代码,且
其中在执行时致使所述计算机产生经压缩数据字符串的所述代码包含在执行时致使所述计算机参考用于压缩每一块的所述初始字典并参考用于压缩所述块的所述霍夫曼树将标头附加到所述经压缩块的代码。
15.根据权利要求14所述的计算机程序产品,其中在执行时致使所述计算机压缩每一块的所述代码包含在执行时致使所述计算机的代码:
通过Lempel-Ziv压缩基于所述初始字典压缩所述块,以产生经Lempel-Ziv压缩块;
对所述经Lempel-Ziv压缩块执行空运行压缩以产生符号;
确定所述所产生的符号中的每一者的频率计数;
基于所述所确定的频率计数选择所述霍夫曼树以用于压缩所述经Lempel-Ziv压缩块;和
基于所述霍夫曼树压缩所述经Lempel-Ziv压缩块,以产生所述经压缩块中的一者。
16.根据权利要求15所述的计算机程序产品,其中所述相关联指针包含指向与所述经压缩块相关联的所述初始字典的指针和指向与所述经压缩块相关联的所述霍夫曼树的指针。
17.根据权利要求16所述的计算机程序产品,其中在执行时致使所述计算机产生经压缩数据字符串的所述代码包含在执行时致使所述计算机将所述初始词典集和所述霍夫曼树集附加到所述经压缩数据字符串的代码。
18.根据权利要求14所述的计算机程序产品,其中所述数据字符串是用于应用程序的可由处理器执行的可执行代码,其中在执行时致使所述计算机分割所述数据字符串的所述代码包含在执行时致使所述计算机形成所述块集中的具有基于所述应用程序的给定粒度的块大小的所述块的代码,其中所述经压缩块是所述可执行代码的经压缩块,且其中所述计算机可读媒体进一步存储指令,所述指令在由所述计算机执行时致使所述计算机:
将所述经压缩块存储于耦合到所述处理器的存储器中;
从所述存储器检索所述经压缩块中的一者;和
使用所述所检索的经压缩块的所述相关联指针指向的初始字典和所述霍夫曼树,将所述所检索的经压缩块独立于其它经压缩块进行解压缩,以产生可执行代码块。
19.根据权利要求18所述的计算机程序产品,其中在执行时致使所述计算机产生经压缩数据字符串的所述代码包含在执行时致使所述计算机将所述初始词典集和所述霍夫曼树集附加到所述经压缩数据字符串的代码。
20.一种设备,其包括:
处理器;
存储器,其耦合到所述处理器,其中所述存储器存储可由所述处理器读取和执行的指令,其中所述指令包含在由所述处理器执行时致使所述处理器执行以下操作的指令
接收数据字符串;
将所述数据字符串分割成块集;
压缩所述块集中的每一块以产生经压缩块集,其中所述压缩是基于初始词典集和霍夫曼树集,其中每一块通过指针与所述初始词典集中的初始字典和所述霍夫曼树集中的霍夫曼树相关联,所述初始字典和所述霍夫曼树用以压缩所述块;和
产生经压缩数据字符串,所述经压缩数据字符串包含所述初始词典集、所述霍夫曼树集以及所述经压缩块和相关联指针。
21.根据权利要求20所述的设备,其中基于所述初始词典集的所述压缩是基于Lempel-Ziv压缩。
22.根据权利要求21所述的设备,其中在执行时致使所述处理器压缩每一块的所述指令包含在执行时致使所述处理器为每一块选择所述初始词典集当中的初始字典和所述霍夫曼树集当中的霍夫曼树的指令,且
其中在执行时致使所述处理器产生经压缩数据字符串的所述指令包含在执行时致使所述处理器参考用于压缩每一块的所述初始字典并参考用于压缩所述块的所述霍夫曼树将标头附加到所述经压缩块的指令。
23.根据权利要求22所述的设备,其中所述相关联指针包含指向与所述经压缩块相关联的所述初始字典的指针和指向与所述经压缩块相关联的所述霍夫曼树的指针。
24.根据权利要求22所述的设备,其中在执行时致使所述处理器压缩每一块的所述指令包含在执行时致使所述处理器的指令:
通过Lempel-Ziv压缩使用所述初始字典压缩所述块,以产生经Lempel-Ziv压缩块;
对所述经Lempel-Ziv压缩块执行空运行压缩以产生符号;
确定所述所产生的符号中的每一者的频率计数;
基于所述所确定的频率计数选择所述霍夫曼树以用于压缩所述经Lempel-Ziv压缩块;和
基于所述霍夫曼树压缩所述经Lempel-Ziv压缩块,以产生所述经压缩块中的一者。
25.根据权利要求24所述的设备,其中所述相关联指针包含指向与所述经压缩块相关联的所述初始字典的指针和指向与所述经压缩块相关联的所述霍夫曼树的指针。
26.一种设备,其包括:
用于将数据字符串分割成块集的装置;
用于压缩所述块集中的每一块以产生经压缩块集的装置,其中所述用于压缩的装置经配置以执行基于初始词典集和霍夫曼树集的所述压缩,且经配置以产生每一经压缩块,对于每一经压缩块具有指向所述初始词典集中的初始字典和所述霍夫曼树集中的霍夫曼树的指针,所述初始字典和所述霍夫曼树用以压缩所述每一块;和
用于产生经压缩数据字符串的装置,所述经压缩数据字符串包含所述初始词典集、所述霍夫曼树集以及所述经压缩块和相关联指针。
27.根据权利要求26所述的设备,其中所述用于压缩的装置经配置以基于所述初始词典集如基于Lempel-Ziv压缩执行所述压缩。
28.根据权利要求27所述的设备,其中所述用于压缩的装置经配置以为每一块选择所述初始词典集当中的初始字典和所述霍夫曼树集当中的霍夫曼树,且其中所述用于产生经压缩数据字符串的装置经配置以通过所述相关联指针将标头附加到每一经压缩块,其中所述相关联指针经配置以参考用于压缩所述块的所述初始字典并参考用于压缩所述块的所述霍夫曼树。
29.根据权利要求28所述的设备,其中所述用于产生经压缩数据字符串的装置经配置以将所述初始词典集和所述霍夫曼树集附加到所述经压缩数据字符串。
30.根据权利要求28所述的设备,其中所述用于压缩的装置经配置以在压缩所述块中的至少一者时包含:
通过Lempel-Ziv压缩基于所述初始字典压缩所述块,以产生经Lempel-Ziv压缩块;
对所述经Lempel-Ziv压缩块执行空运行压缩以产生符号;
确定所述所产生的符号中的每一者的频率计数;和
基于所述所确定的频率计数选择所述霍夫曼树以用于压缩所述经Lempel-Ziv压缩块。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/499,148 US20160092492A1 (en) | 2014-09-27 | 2014-09-27 | Sharing initial dictionaries and huffman trees between multiple compressed blocks in lz-based compression algorithms |
US14/499,148 | 2014-09-27 | ||
PCT/US2015/050207 WO2016048718A1 (en) | 2014-09-27 | 2015-09-15 | Sharing initial dictionaries and huffman trees between multiple compressed blocks in lz-based compression algorithms |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106688186A true CN106688186A (zh) | 2017-05-17 |
Family
ID=54249596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580048281.0A Pending CN106688186A (zh) | 2014-09-27 | 2015-09-15 | 在基于lz的压缩算法中在多个经压缩块之间共享初始词典和霍夫曼树 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20160092492A1 (zh) |
EP (1) | EP3198728A1 (zh) |
CN (1) | CN106688186A (zh) |
WO (1) | WO2016048718A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117040539A (zh) * | 2023-08-15 | 2023-11-10 | 青岛智腾微电子有限公司 | 一种基于m叉树和lzw算法的石油测井数据压缩方法及装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220109455A1 (en) * | 2018-06-29 | 2022-04-07 | Zenotta Holding Ag | Apparatus and method for providing authentication, non-repudiation, governed access and twin resolution for data utilizing a data control signature |
CN113348455A (zh) * | 2018-06-29 | 2021-09-03 | 泽诺塔控股股份公司 | 利用数据控制签名提供数据的认证、不可否认性、受管控的访问和孪生分辨的装置和方法 |
US11050436B2 (en) * | 2019-06-21 | 2021-06-29 | Sap Se | Advanced database compression |
US11507274B2 (en) * | 2020-10-22 | 2022-11-22 | Dell Products L.P. | System and method to use dictionaries in LZ4 block format compression |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030218554A1 (en) * | 2002-05-14 | 2003-11-27 | Microsoft Corporation | Method and system for compressing and decompressing multiple independent blocks |
CN101542911A (zh) * | 2006-11-14 | 2009-09-23 | 高通股份有限公司 | 存储器有效的自适应块译码 |
US20130135123A1 (en) * | 2011-11-24 | 2013-05-30 | International Business Machines Corporation | Compression algorithm incorporating automatic generation of a bank of predefined huffman dictionaries |
US20130181851A1 (en) * | 2012-01-17 | 2013-07-18 | Fujitsu Limited | Encoding method, encoding apparatus, decoding method, decoding apparatus, and system |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7307552B2 (en) * | 2005-11-16 | 2007-12-11 | Cisco Technology, Inc. | Method and apparatus for efficient hardware based deflate |
US9298722B2 (en) * | 2009-07-16 | 2016-03-29 | Novell, Inc. | Optimal sequential (de)compression of digital data |
US9438413B2 (en) * | 2010-01-08 | 2016-09-06 | Novell, Inc. | Generating and merging keys for grouping and differentiating volumes of files |
US8279096B2 (en) * | 2010-05-19 | 2012-10-02 | Red Hat, Inc. | Parallel compression for dictionary-based sequential coders |
US9798732B2 (en) * | 2011-01-06 | 2017-10-24 | Micro Focus Software Inc. | Semantic associations in data |
EP2706466A4 (en) * | 2011-05-02 | 2015-06-17 | Fujitsu Ltd | EXTRACTION PROCESS, INFORMATION PROCESSING, EXTRACTION PROGRAM, INFORMATION PROCESSING, EXTRACTION DEVICE AND INFORMATION PROCESSING DEVICE |
US10423596B2 (en) * | 2014-02-11 | 2019-09-24 | International Business Machines Corporation | Efficient caching of Huffman dictionaries |
-
2014
- 2014-09-27 US US14/499,148 patent/US20160092492A1/en not_active Abandoned
-
2015
- 2015-09-15 WO PCT/US2015/050207 patent/WO2016048718A1/en active Application Filing
- 2015-09-15 EP EP15774770.0A patent/EP3198728A1/en not_active Withdrawn
- 2015-09-15 CN CN201580048281.0A patent/CN106688186A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030218554A1 (en) * | 2002-05-14 | 2003-11-27 | Microsoft Corporation | Method and system for compressing and decompressing multiple independent blocks |
CN101542911A (zh) * | 2006-11-14 | 2009-09-23 | 高通股份有限公司 | 存储器有效的自适应块译码 |
US20130135123A1 (en) * | 2011-11-24 | 2013-05-30 | International Business Machines Corporation | Compression algorithm incorporating automatic generation of a bank of predefined huffman dictionaries |
US20130181851A1 (en) * | 2012-01-17 | 2013-07-18 | Fujitsu Limited | Encoding method, encoding apparatus, decoding method, decoding apparatus, and system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117040539A (zh) * | 2023-08-15 | 2023-11-10 | 青岛智腾微电子有限公司 | 一种基于m叉树和lzw算法的石油测井数据压缩方法及装置 |
CN117040539B (zh) * | 2023-08-15 | 2024-04-16 | 青岛智腾微电子有限公司 | 一种基于m叉树和lzw算法的石油测井数据压缩方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016048718A1 (en) | 2016-03-31 |
US20160092492A1 (en) | 2016-03-31 |
EP3198728A1 (en) | 2017-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106688186A (zh) | 在基于lz的压缩算法中在多个经压缩块之间共享初始词典和霍夫曼树 | |
US9077368B2 (en) | Efficient techniques for aligned fixed-length compression | |
CN107395209B (zh) | 数据压缩方法、数据解压缩方法及其设备 | |
CN102831001B (zh) | 软件升级包的制作方法及装置、程序的升级方法及设备 | |
US8847797B1 (en) | Byte-aligned dictionary-based compression and decompression | |
US10164654B2 (en) | Data compressing device, data decompressing device, and data compressing/decompressing apparatus | |
US20200294629A1 (en) | Gene sequencing data compression method and decompression method, system and computer-readable medium | |
US20120150877A1 (en) | Efficient database compression | |
CN110808738B (zh) | 数据压缩方法、装置、设备及计算机可读存储介质 | |
CN104410424B (zh) | 嵌入式设备内存数据的快速无损压缩方法 | |
CN104133883B (zh) | 电话号码归属地数据压缩方法 | |
CN102510434A (zh) | 一种图像数据发送、恢复方法、装置及终端 | |
CN111061722A (zh) | 一种数据压缩、数据解压缩方法、装置及设备 | |
US9479195B2 (en) | Non-transitory computer-readable recording medium, compression method, decompression method, compression device, and decompression device | |
CN112332854A (zh) | 霍夫曼编码的硬件实现方法、装置及存储介质 | |
EP3070615A1 (en) | Information processing apparatus, and data management method | |
US20220199202A1 (en) | Method and apparatus for compressing fastq data through character frequency-based sequence reordering | |
CN105469433B (zh) | 一种图片压缩方法及其设备 | |
CN102708191A (zh) | 一种节省内存的字库编码和解码方法 | |
CN105574053B (zh) | Fpga配置文件的压缩方法和装置 | |
CN114282141A (zh) | 压缩格式数据的处理方法、装置、电子设备及可读存储介质 | |
CN105007083A (zh) | 一种lz77压缩算法输出结果的存储方法 | |
CN117194355B (zh) | 基于数据库的数据处理方法、装置和电子设备 | |
CN107547906B (zh) | 一种jpeg图像解码的方法与装置 | |
CN117375627B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170517 |
|
WD01 | Invention patent application deemed withdrawn after publication |