CN101989443B - 用于数据压缩的多模式编码 - Google Patents

用于数据压缩的多模式编码 Download PDF

Info

Publication number
CN101989443B
CN101989443B CN201010143498.9A CN201010143498A CN101989443B CN 101989443 B CN101989443 B CN 101989443B CN 201010143498 A CN201010143498 A CN 201010143498A CN 101989443 B CN101989443 B CN 101989443B
Authority
CN
China
Prior art keywords
coding mode
scrambler
bumper portion
data
repetition
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.)
Active
Application number
CN201010143498.9A
Other languages
English (en)
Other versions
CN101989443A (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.)
Kaiwei International Co
Marvell International Ltd
Marvell Asia Pte Ltd
Original Assignee
Mawier International Trade 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 Mawier International Trade Co Ltd filed Critical Mawier International Trade Co Ltd
Publication of CN101989443A publication Critical patent/CN101989443A/zh
Application granted granted Critical
Publication of CN101989443B publication Critical patent/CN101989443B/zh
Active 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3086Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
    • 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/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • H03M7/48Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficientlylong runs of digits of the same kind are present

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本公开涉及用于数据压缩的多模式编码。本公开包括关于无损数据压缩的装置、系统和技术。在一些实施中,装置包括存储模块以存储数据。所述存储模块包括第一缓冲器部分以存储数据的编码的符号,并包括第二缓冲器部分以存储将被编码的数据的符号。所述装置包括编码器以比较存储在所述第二缓冲器部分中的所述符号和存储在所述第一缓冲器部分中的所述编码的符号以及压缩所述数据。所述编码器可运行在第一编码模式以用相应的码字编码所述第二缓冲器部分中的所述符号,直到检测到第二缓冲器部分中的、与第一缓冲器部分中的所述编码的符号匹配的重复的符号模型。响应于检测到所述重复的模型,所述编码器可运行在第二编码模式。

Description

用于数据压缩的多模式编码
相关申请的交叉引用
本申请要求2009年3月5日提交的、题目为“EFFICIENTLEMPEL-ZIV COMPRESSION WITH RUN LENGTH ENCODING”、序列号为61/157,589的美国临时申请的优先权的利益,该申请的公开内容通过引用被整体并入在这里。
技术领域
本公开描述了关于数据压缩技术的系统、装置和技术。
背景技术
无损数据压缩是在压缩过程期间维持原始数据的一种数据压缩类型。因此,使用无损数据压缩算法解压缩或解码被压缩的编码数据允许重建原始数据。这不同于近似原始数据而导致一些数据损失的有损数据压缩。当偏离原始数据对于特定的应用是关键的时候,无损数据压缩被使用。常规的无损数据压缩算法常常为输入数据生成统计模型,并使用所生成的模型来将输入数据映射为比特序列,以便使得重复的数据生成比非重复的数据更短的输出。
发明内容
本公开包括关于有效的无损数据压缩的装置、系统和技术。编码器可被配置为在两个编码模式之间转换以增强数据压缩。根据所描述的系统和技术的一个方面,装置包括存储模块以存储数据。该存储模块包括第一缓冲器部分以存储数据的编码的符号,并包括第二个缓冲器部分以存储将被编码的数据的符号。该装置包括编码器以比较存储在第二个缓冲器部分中的符号和存储在第一个缓冲器部分中的编码的符号以及压缩该数据。该编码器被配置为运行在第一编码模式,以用相应的码字编码在第二缓冲器部分中的符号,直到编码器检测到在第二缓冲器部分中的、与第一缓冲器部分中的编码符号相匹配的重复的符号模型(pattern)。另外,响应于编码器检测到重复的符号模型,编码器被配置为转换为运行在第二编码模式。在第二编码模式期间,编码器计数符号模型在第二缓冲器部分中重复的次数,并输出计数的数字。此外,编码器被配置为当编码器检测到第二缓冲器中的符号停止重复时转换回第一编码模式。
实施可以可选择地包括一个或多个下列特征。第一编码模式可包括Lempel-Ziv编码模式。Lempel-Ziv编码模式可包括Lempel-Ziv-Storer-Szymanski(LZSS)编码模式。第二编码模式可包括行程编码(run-length encoding,RLE)模式。编码器被配置为响应于编码器检测到重复的符号模型而输出转义码(escape code),转义码包括单一出现的码字。转义码可包括标记,其指示转义码中的下一个数据是字面量(literal)还是偏移量-长度对;偏移量,其代表第二缓冲器部分中的重复的符号模型在第一缓冲器部分中的匹配的位置;和长度,其代表第二缓冲器部分的大小。转义码可包括两次连续出现的码字。编码器可被配置为用在第一编码模式期间被生成的码字更新第一缓冲器部分。另外,编码器可被配置为在第二编码模式期间更新第一个缓冲器部分一次。编码器可被配置为在输出转义码之后,从模型第一次出现时开始,计数符号模型在第二缓冲器中重复的次数。
所描述的系统和技术可实施在电子电路、计算机硬件、固件、软件或他们的组合中,例如在此说明书中所公开的结构装置及其结构等效物中。这可包括体现程序的至少一个计算机可读介质,所述程序可操作以导致一个或多个数据处理装置(例如,包括可编程处理器的信号处理设备)执行所描述的操作。因此,程序实施可根据所公开的方法、系统或装置实现,且装置实施可根据所公开的系统、计算机可读介质或方法实现。类似地,方法实施可根据所公开的系统、计算机可读介质或装置实现,且系统实施可根据所公开的方法、计算机可读介质或装置实现。
例如,下面所公开的实施方式可被实施在多种系统或装置中,包括但不限于,专用数据处理装置(例如,无线接入点、远程环境监测器、路由器、交换机、计算机系统组件、介质接入单元)、移动数据处理装置(例如,无线客户端、蜂窝电话、个人数字助理(PDA)、移动计算机、数字摄像机)、通用数据处理装置(例如,微型计算机、服务器、大型机、巨型计算机)或这些的组合。
因此,根据所描述的系统和技术的另一个方面,系统可包括数据处理设备,其编码数据以生成压缩的数据。该数据处理设备可包括数据缓冲器以接收输入数据。数据缓冲器可包括搜索缓冲器以缓冲输入数据的编码的符号,并可包括先行缓冲器(look-ahead buffer)以缓冲将被编码的输入数据的符号。数据处理设备可包括编码器,以比较缓冲在先行缓冲器中的符号和缓冲在搜索缓冲器中的编码符号以及压缩输入数据。编码器被配置为运行在第一编码模式,以用相应的码字编码在先行缓冲器中的符号,直到编码器检测到在先行缓冲器中的、与搜索缓冲器中的编码符号匹配的重复的符号模型。响应于检测到重复的符号模型,编码器转换为运行在第二编码模式,以计数符号模型在先行缓冲器中重复的次数,并输出所计数的数字。编码器被配置为当编码器检测到在第二缓冲器中的符号停止重复时转换回第一编码模式。
实施可以可选择地包括一个或多个下列特征。第一编码模式可包括Lempel-Ziv编码模式。Lempel-Ziv编码模式可包括Lempel-Ziv-Storer-Szymanski(LZSS)编码模式。第二编码模式可包括行程编码(RLE)模式。编码器被配置为响应于编码器检测到重复的符号模型而输出转义码。转义码可包括单一出现的码字。转义码可包括标记,其指示转义码中的下一个数据是字面量还是偏移量-长度对;偏移量,其代表搜索缓冲器的大小减去在先行缓冲器中重复的符号模型的长度的在第一缓冲器中的匹配的位置的中的重复的符号模型在搜索缓冲器中的匹配的位置;和长度,其代表先行缓冲器的大小。转义码可包括两次连续出现的码字。编码器可被配置为用在第一编码模式期间被生成的码字更新搜索缓冲器;在第二编码模式期间更新搜索缓冲器一次;以及在输出转义码之后从模型第一出现时开始,计数符号模型在第二缓冲器中重复的次数。
根据所描述的系统或技术的另一个方面,由数据处理设备所执行的方法可包括一个或多个下列特征。由数据处理设备所执行的方法包括在存储模块中存储数据。存储数据包括在存储模块的第一缓冲器部分存储数据的编码的符号,以及在存储模块的第二缓冲器部分存储将被编码的数据的符号。该方法包括压缩数据。压缩数据包括比较存储在第二缓冲器部分中的符号和存储在第一缓冲器部分中的编码的符号。压缩数据包括将编码器运行在第一模式,以用相应的码字编码在第二缓冲器部分中的符号,直到检测到在第二缓冲器部分中的、与第一缓冲器部分中的编码的符号匹配的重复的符号模型。响应于检测到重复的符号模型,编码器运行在第二编码模式。运行在第二编码模式包括计数符号模型在第二缓冲器部分中重复的次数,并输出所计数的数字。另外,该方法包括当检测到第二缓冲器中的符号停止重复时转换回第一编码模式。
实施可以可选择地包括一个或多个下列特征。第一编码模式可包括Lempel-Ziv编码模式。Lempel-Ziv编码模式可包括Lempel-Ziv-Storer-Szymanski(LZSS)编码模式。第二编码模式可包括行程编码(RLE)模式。该方法可包括响应于检测到重复的符号模型而输出转义码。转义码可包括单一出现的码字。转义码可包括:标记,其指示转义码中的下一个数据是字面量还是偏移量-长度对;偏移量,其代表第二缓冲器部分中的重复的符号模型在第一缓冲器部分中的匹配的位置;和长度,其代表第二缓冲器部分的大小。转义码可包括两次连续出现的码字。该方法可包括用在第一编码模式期间被生成的每个码字更新第一缓冲器部分;和在第二编码模式期间更新第一缓冲器部分一次。该方法包括在输出转义码之后,从模型第一次出现时开始,计数符号模型在第二缓冲器中重复的次数。
所描述的装置、系统和技术可导致一个或多个下列优点。改善的无损压缩过程可被实施,以结合Lempel-Ziv编码和行程编码的优点。编码器可被配置为在两个编码模式如Lempel-Ziv编码和行程编码之间转换。在第一编码模式期间,编码器可运行在Lempel-Ziv模式,以使用尽可能少的比特数编码非重复的符号。例如,第一编码模式可包括Lempel-Ziv-Storer-Szymanski(LZSS)编码模式,以使用包括标记比特和字面量的码字来编码非重复的符号。当重复的符号模型被检测到,编码器可转换为运行在第二编码模式,以计数模型重复的次数。编码器可延迟更新缓冲器,直到模型停止重复且所计数的数字被获得。
一个或多个实施的细节在下面的附图和描述中被阐述。从描述和附图以及从权利要求,其他特征、目标和优点可以是明显的。
附图说明
图1是用于执行Lempel-Ziv77(LZ77)编码的示例性装置的框图。
图2是比较LZ77编码和Lempel-Ziv-Storer-Szymanski(LZSS)编码的框图。
图3是示出用于执行行程编码的示例性装置的框图。
图4是用于执行带有行程编码的Lempel-Ziv压缩的示例性装置的框图。
图5是示出使用码字作为转义码的示例性编码过程的框图。
图6是示出使用码字作为转义码的另一个示例性编码过程的框图。
图7是示出使用码字作为转义码的第三个示例性编码过程的框图。
图8是示出使用码字作为转义码的第四个示例性编码过程的框图。
图9是示出使用两个相同码字作为转义码的示例性编码过程的框图。
图10是比较LZSS编码器和包括LZSS和RLE模式的编码器的压缩性能的图表。
图11是比较使用两个不同的转义码类型的编码器的压缩性能的图表。
图12A、12B、12C是示出用于编码数据文件的符号的示例性过程的过程流程图。
图13是用于执行有效的无损数据压缩的示例性系统的框图。
在不同的附图中,类似的参考符号表示类似的元件。
具体实施方式
这里所描述的系统、装置和技术可被实施作为一个或多个设备,例如一个或多个集成电路(IC)设备(例如,数据通信设备,如网络设施;计算设备,如计算机、服务器、笔记本电脑和智能电话机;和联网的数据存储设备,如磁盘存储设备、磁带存储驱动器等)。例如,本说明书中所描述的系统和技术可被实施以执行有效的无损数据压缩,所述有效的无损数据压缩减少了与缓冲器更新相关的关键路径。
图1是用于执行Lempel-Ziv77(LZ77)编码的示例性装置的框图。LZ77编码是一种无损数据压缩技术。装置100包括LZ77编码器110,其与存储模块如缓冲器120通信。缓冲器120可包括两个结构:搜索缓冲器122和先行缓冲器124。搜索缓冲器122可存储所需要的数据的编码的符号,而先行缓冲器124可存储将被编码的数据的进入的符号。搜索缓冲器122和先行缓冲器124可被实施作为独立的缓冲器或作为具有多个部分的单一缓冲器。
LZ77编码器110可比较先行缓冲器124中的符号和搜索缓冲器122中的编码的符号以识别具有最长匹配的符号模型130。LZ77编码器110可用码字140编码所识别的符号模型。在图1所示的示例中,先行缓冲器124中的符号模型“a b r a r a”130被识别,以匹配搜索缓冲器122中的编码的符号“a b r a r a”128。搜索缓冲器122中的被匹配的编码符号模型可延伸进入先行缓冲器124。
LZ77编码器110可生成码字140以包括如下三个元素:<偏移量,长度,字符>。匹配指针126指向被匹配的编码符号模型128的起始位置。偏移量比特代表匹配指针126(例如,模型的开始)离搜索缓冲器122中的第一个符号的距离。长度比特代表搜索缓冲器122中被匹配的编码符号模型128的长度。如上所述,长度可延伸进入先行缓冲器124。字符字节代表先行缓冲器124中的下一个未被匹配的字符或符号。因此,匹配的符号模型“a b r a r a c”可被用码字<1,6,‘c’>编码。偏移量比特‘1’表示模型的开始离搜索缓冲器122中的第一符号1字节远。长度字节‘6’表示被匹配的模型的长度是6个符号。字符字节‘c’表示下一个未被匹配的符号是‘c’。
图2是比较LZ77编码和Lempel-Ziv-Storer-Szymanski(LZSS)编码的框图200。LZSS编码是LZ77编码的一种变式。LZSS编码可排除三元素码字被用来编码单一字符或符号的情况。例如,符号‘c’未出现在缓冲器120的搜索缓冲器122中。LZ77编码器110用使用多于8比特的码字<0,0,‘c’>230来编码符号‘c’。
与LZ77编码器110所使用的三元素码字相比,LZSS编码器210可用二元素码字<0,c>240编码相同的符号‘c’。LZSS码字240的第一元素是1比特标记,用来指示下一块数据是字面量(例如,字节)还是偏移量-长度对。取决于1比特标记的值,LZSS码字240的第二元素或者是字面量(例如,字节)或者是偏移量-长度对。例如,当LZSS编码器未在搜索缓冲器122中找到当前符号(例如,‘c’)的匹配时,LZSS编码器210输出包括元素<0,字符>的LZSS码字。0标记比特表示未找到匹配。然后,第二个元素是字面量(例如,字节),在这种情况下是符号‘c’。编码的LZSS码字<0,c>是9比特长。
当LZSS编码器210在搜索缓冲器122中识别到当前符号的匹配时,LZSS编码器210输出包括元素<1,偏移量,长度>的LZSS码字。标记比特值‘1’表示先行缓冲器124中的符号模型与搜索缓冲器122中的同样的编码符号模型匹配。元素‘长度’代表匹配的符号模型的长度,而元素‘偏移量’代表在搜索缓冲器122中被匹配的符号模型的起始位置。
图3是示出用于执行行程编码(RLE)的示例性装置的框图。RLE是另一种形式的无损数据压缩。装置300包括行程编码器(RLE)310,其与缓冲器320通信以编码存储在缓冲器320中的符号。RLE310可用包括单一的符号或模型和计数(例如,行程)的RLE码字330取代重复符号的串或模型。模型可能是m字节长,其中m≥1。计数表示符号模型被重复的次数(不要与符号的总数混淆)。例如,图3示出了缓冲器320,其存储了在初始出现后重复了5次的符号‘a’的运行(run)、初始出现后重复了3次的符号‘b’的运行、和初始出现后重复了2次的符号‘c’的运行。RLE310可编码符号的运行为<a5b3c2>。
另外,RLE310可检测不同的重复的符号模型。例如,当输入数据流包括‘a b a b a b a b b b b b c b c’,RLE310可编码这些符号为<ab3b4cbc>。此外,输入流可使用其他RLE编码解释来编码。
图4是用于执行带有行程编码的Lempel-Ziv压缩的示例性装置的框图。装置400包括存储模块,如缓冲器120,其与编码器410通信。缓冲器120包括搜索缓冲器122以存储输入数据的编码的符号,并包括先行缓冲器124以存储将被编码的数据的符号的进入流。编码器410可包括Lempel-Ziv编码模式单元412、RLE模式单元414和计数器416。
在运行期间,通过在Lempel-Ziv编码模式单元412和RLE模式单元414之间转换,编码器410可运行在两个不同的编码模式。Lempel-Ziv编码模式单元412可实施任何LZ编码模式,如LZSS编码模式。例如,编码器410可最初运行为使用LZSS编码模式单元412来编码先行缓冲器124中的、与搜索缓冲器122中的编码符号不匹配的符号。通过使用LZSS编码模式单元412,编码器410可使用两个元素码字而非LZ77编码器所使用的三个元素码字来编码非匹配的符号。
当编码器410识别了先行缓冲器124中的、与搜索缓冲器122中的编码的符号匹配的符号模型时,编码器410可输出转义码并转换到RLE模式单元414。当使用RLE模式单元414时,计数器416可被用来计数符号模型在先行缓冲器124中重复的次数。在转义码被输出之后,计数器416可从符号模型第一次出现时开始,计数符号模型重复的次数。当重复的符号模型的运行结束时,编码器410可转换回LZSS编码模式单元412以编码非匹配的符号。
在存储类型的数据文件中,这种二进制可执行文件和计算机生成文件,如目标文件、数据库文件等,0的运行可能频繁发生。通过结合RLE模式和LZSS编码模式,可实现比利用单独的任一编码方案的可能的更进一步的压缩。
表示从使用Lempel-Ziv编码模式单元412转换到RLE模式单元414的转义码可使用不同类型的转义码实现。例如,包括下列元素的自定义码字可被使用:<标记,偏移量,长度>。标记、偏移量、长度元素与以上关于LZ77和LZSS描述的那些类似。
然而,某些限制可被应用到码字的三个元素。例如,长度元素可等于先行缓冲器的大小。另外,偏移量元素可大于或等于搜索缓冲器大小减去先行缓冲器大小的值。
例如,当搜索缓冲器大小是128字节且先行缓冲器大小是8字节时,下列码字可被用作转义码:
<1,120,8>以代表先行缓冲器中的一个周期性的8字节的模型(见下面图5);
<1,121,8>以代表先行缓冲器中的一个周期性的7字节的模型(见下面图9);
<1,122,8>以代表先行缓冲器中的一个周期性的6字节的模型;
<1,123,8>以代表先行缓冲器中的一个周期性的5字节的模型;
<1,124,8>以代表先行缓冲器中的两个相同的4字节的模型(见下面图6);
<1,125,8>以代表先行缓冲器中的两个周期性的3字节的模型;
<1,126,8>以代表先行缓冲器中的四个相同的2字节的模型(见下面图7);以及
<1,127,8>以代表先行缓冲器中的8个相同的1字节的模型(见下面图8)。
图5是示出使用一次出现的码字的作为转义码的示例性编码过程500的框图。在此编码示例500中,转义码<1,120,8>被用来代表在先行缓冲器124中的一个周期性的8字节的模型(a,b,c,d,e,f,g,h)。搜索缓冲器大小是128字节,且先行缓冲器大小是8字节。最初,编码器(例如,编码器410)通过使用LZSS编码模式单元412运行。
编码器比较先行缓冲器124中的第一个符号‘a’和搜索缓冲器122中的编码的符号,且发现无匹配。因为对于‘a’未找到匹配,编码器输出相应的码字502(例如,<0,‘a’>)。标记比特‘0’表示未找到匹配以及下一个数据是字面量(字节)。编码器继续用相应的码字502(例如,<0,‘b’>,<0,‘c’>,<0,‘d’>,<0,‘e’>,<0,‘f’>,<0,‘g’>和<0,‘h’>)编码符号‘b’、‘c’、‘d’、‘e’、‘f’、‘g’、和‘h’的随后的输入流,以表示对于这些符号没有找到匹配。在使用LZSS编码模式单元412编码每一个符号之后,编码器用相应的编码符号移位或更新搜索缓冲器122。
在编码符号‘a’、‘b’、‘c’、‘d’、‘e’、‘f’、‘g’和‘h’之后,编码器识别在先行缓冲器124中的、与搜索缓冲器122中的编码符号506(‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,和‘h’)匹配的符号模型504(‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,和‘h’)。编码器编码被识别的符号模型并输出转义码(例如,<1,120,8>)508。转义码表示编码器正在转换到使用RLE模式单元414。
在RLE模式期间,编码器识别并计数符号模型在先行缓冲器124中重复的次数。编码器可包括计数器以计数重复的次数。在输出转义码之后,编码器从符号模型第一次出现时开始计数。另外,编码器简单计数重复的次数而非输出码字。划掉码字表示编码器正在简单计数符号模型重复的次数而非正在输出码字。当编码器检测到符号模型停止重复时,编码器输出最后的计数总数510,并转换回使用LZSS编码模式单元412。
关于图6、7和8,描述了使用转义码的三个其他的示例。在这些示例中,基于转义码的输出,编码器在使用LZSS编码模式单元412和RLE模式单元414之间转换,如上关于图5所述。
图6是示出使用一次出现的码字作为转义码的另一个示例性编码过程600的框图。类似于以上的图5,编码器比较先行缓冲器124中的符号的输入流和搜索缓冲器122中的编码符号。在此编码示例600中,转义码<1,124,8>被用来代表在先行缓冲器124中的两个相同的4字节(a,b,c,d)的模型。编码器输出转义码,以表示编码器正从LZSS编码模式单元412转换到RLE模式单元414。划掉码字表示编码器正在简单计数符号模型重复的次数而非正在输出码字。当检测到符号模型停止重复时,编码器转换回使用LZSS编码模式单元412。搜索缓冲器的大小是128字节,且先行缓冲器的大小是8字节。
图7是示出使用一次出现的码字作为转义码的第三个示例性编码过程700的框图。类似于以上的图5,编码器比较先行缓冲器124中的符号的输入流和搜索缓冲器122中的编码符号。在此编码示例700中,转义码<1,126,8>被用来代表先行缓冲器124中的四个相同的2字节(a,b)模型。编码器输出转义码,以表示编码器正在从LZSS编码模式单元412转换到RLE模式单元414。划掉码字表示编码器正在简单计数符号模型重复的次数而非正在输出码字。当检测到符号模型停止重复时,编码器转换回使用LZSS编码模式单元412。搜索缓冲器的大小是128字节,且先行缓冲器的大小是8字节。
图8是示出使用一次出现的码字作为转义码的第四个示例性编码过程800的框图。类似于以上的图5,编码器比较先行缓冲器124中的符号的输入流和搜索缓冲器122中的编码符号。在此编码示例800中,转义码<1,127,8>被用来代表先行缓冲器124中的8个相同的1字节(a)模型。编码器输出转义码并表示编码器正在从LZSS编码模式单元412转换到RLE模式单元414。划掉码字表示编码器正在简单计算符号模型重复的次数而非正在输出码字。当检测到符号模型停止重复时,编码器转换回使用LZSS编码模式单元412。搜索缓冲器的大小是128字节,且先行缓冲器的大小是8字节。
另外,编码器可使用两次连续输出的码字的作为转义码,其表示编码器正转换为使用RLE模式单元412。使用不同类型的转义码可有不同的优点。例如,使用单一出现的码字作为转义码可比使用码字的重复的出现作为转义码而将编码器410转换为使用RLE模式单元414早一个码字。如图5到8所示,在输出包括单一码字的转义码之后,编码器转换为使用RLE模式单元414。当使用LZSS编码模式单元412时,编码器需要在每次编码之后更新搜索缓冲器。然而,当使用RLE模式单元414时,编码器可延迟更新搜索缓冲器,直到符号模型重复次数的总数的计数已经被确定。因此,编码器越早可使用RLE模式单元414,编码器越早可延迟更新搜索缓冲器。
比较起来,当使用重复的出现的码字作为转义码时,编码器不会转换为使用RLE模式单元414,直到输出至少两个连续的码字。这可延迟转换为使用RLE模式单元414一个码字。然而,如果在输出码字一次之后,所识别的符号模型没有重复,那么编码器可能不必要使用额外的比特来编码计数。使用重复出现的码字(例如两次连续出现的码字)作为转义码可防止当计数是0时编码器不必要地使用额外的比特来编码计数。在使用一个码字和两个码字作为转义码之间比较数据压缩有效性在下面关于图11被描述。
图9是示出使用重复出现的码字(例如,两个相同的码字)作为转义码的示例性编码过程900的框图。编码器(例如,编码器410)比较先行缓冲器124中的符号和搜索缓冲器122中的编码符号。最初,编码器运行为使用LZSS编码模式单元412并编码与搜索缓冲器122中的编码符号匹配的符号。当编码器识别了先行缓冲器124中的、与搜索缓冲器122中的编码符号匹配的符号模型时,编码器输出码字。在此编码示例900中,码字<1,121,8>被用来代表先行缓冲器124中的一个周期性的7字节(例如,‘a’,‘b’,‘c’,‘d’,‘e’,‘f’和‘g’)的模型。在编码器转换为使用RLE模式单元414之前,编码器连续两次输出码字<1,121,8>902。因此,连续出现的两个相同的码字902被用作动态转义码。
编码器运行RLE模式单元414以计数符号模型在先行缓冲器124中重复的次数,直到重复模型的运行结束。在转义码被输出之后,计数从符号模型第一次出现时开始。当符号模型停止重复时,编码器输出计数并转换回使用LZSS编码模式单元412。编码器可包括计数器以计数重复的次数。
图10是比较LZSS编码器和包括LZSS和RLE模式的编码器的压缩性能的图表1000。图表1000示出当使用LZSS编码器(1010)和包括LZSS模式和RLE模式的编码器(1020)时对于不同的数据文件(x轴)所实现的压缩比(y轴)。
图11是比较使用两个不同的转义码类型的编码器的压缩性能的图表1100。图表1100示出当使用码字(1110)和两个连续的码字(1120)作为转义码时对于不同的数据文件(x轴)所实现的压缩比(y轴)。图表1100中所示的数据表明单一码字的转义码和两个连续码字的转义码之间没有显著差异。两个转义码类型在改善数据压缩上具有相似的功效。
图12A、12B、12C是示出用于编码数据文件符号的示例性过程的过程流程图。在1210,数据处理设备如计算机或服务器可在存储模块中存储数据。例如,数据处理设备可在本地缓冲器中存储输入数据流。在1212,数据处理设备通过在存储模块的第一缓冲器部分中存储数据的编码的符号而在存储模块中存储数据。在1214,数据处理设备可通过在存储模块的第二缓冲器部分中存储将被编码的数据的符号而在存储模块中存储数据。
在1220,数据处理设备中的编码器(例如,编码器410)可比较存储在第二缓冲器部分中的符号和存储在第一缓冲器部分中的编码的符号,并压缩所存储的符号。在1230,在比较和压缩数据中,编码器可运行在第一编码模式(例如,通过使用第一编码模式单元),以用相应的码字编码第二缓冲器部分中的符号,直到检测在第二缓冲器部分中的、与第一缓冲器部分中的编码符号匹配的重复的符号模型。在1240,响应于检测到重复的符号模型,编码器可转换为运行在第二编码模式(例如,通过使用第二编码模式单元)。在1242,在第二编码模式期间,编码器可计数符号模型在第二缓冲器部分中重复的次数。在1244,编码器可输出在第二编码模式期间所计数的数字。在1243,在输出转义码之后,编码器可从模型第一次出现时开始,计数符号模型在第二缓冲器部分中重复的次数。在1250,当检测到第二缓冲器部分中的符号停止重复时,编码器可转换回第一编码模式。
第一编码模式可包括Lempel-Ziv编码模式。Lempel-Ziv编码模式可包括多种类型,如Lempel-Ziv-Storer-Szymanski(LZSS)编码模式。第二编码模式可包括行程编码(RLE)模式。
另外,响应于编码器检测到重复的符号模型,编码器可输出转义码。转义码可包括单一出现的码字。在一些实施中,转义码包括重复出现的码字(例如,两个相同的码字)。
码字可包括标记元素和字面量元素或偏移量-长度对。字面量是符号或字符的字面字节。标记表示转义码中的下一个数据是字面量还是偏移量-长度对。偏移量可代表第二缓冲器部分的符号模型在第一缓冲器部分中被匹配的开始位置。此外,偏移量可代表第一缓冲器部分的大小减去在第二缓冲器部分中重复的符号模型的长度。长度代表第二缓冲器部分的大小。
在1232,编码器可用在第一编码模式期间所生成的每个码字更新第一缓冲器部分。当运行在第二编码模式时,编码器可延迟更新第一缓冲器,直到最后的计数数字被生成。因此,在1246,编码器可在第二编码模式期间只更新第一缓冲器部分一次。
图13是用于执行有效的无损数据压缩的示例性系统的框图。如上关于图1到12C所描述的无损数据压缩技术和装置可被实施在多种系统中。例如,联网的系统1300可实施所描述的无损数据压缩技术和装置,以提供联网的存储系统,如备份存储系统。系统1300可包括数据处理设备1310,如台式计算机1312、便携式计算设备1314、企业服务器1316等。数据处理设备1310可包括处理器1317、编码器1318和缓冲器1319。缓冲器1319可包括搜索缓冲器和先行缓冲器。搜索缓冲器和先行缓冲器可被实施为独立的缓冲器或实施为同一缓冲器的独立的部分。编码器1318可被实施,从而以与以上关于图4所描述的编码器410一致的方式运行。
数据处理设备1310可接收输入数据流1302和编码所接收到的输入数据流1302,以生成压缩的数据1304。数据处理设备1310可与存储设备1320通信以存储压缩的数据。存储设备1320可包括在数据处理设备1310中或是独立的(如所示)。此外,存储设备1320可包括多种类型的存储设备,如磁盘存储设备1322、磁带存储设备等。存储设备1320可包括主存储设备、备份存储设备或两者。通过网络连接如因特网、局域网(LAN)、广域网、以太网等,存储设备1320可与数据处理设备1310通信。在一些实施中,系统1300可被实施为存储区域网络(SAN),以提供在连接到SAN的多种设备之间共享的存储系统。
编码器1318可运行作为专用压缩硬件以从处理器1317卸载数据压缩功能。通过使用专用数据压缩硬件,系统可实现更快和更有效的主数据存储和备份数据存储。另外,处理器1317可运行得更为有效,因为它不需要负荷数据压缩操作。
所描述的无损数据压缩技术、装置、系统可被实施在其他应用中。例如,专用数据压缩硬件可被用在系统中以增加通信系统的吞吐量。压缩的数据有助于增加数据通信速度,且专用数据压缩硬件可帮助缓解有关传输和接收大量数据的问题。
以上描述了几个实施方式,且各种修改是可能的。包括在此说明书中描述的功能操作的所公开的主题,可被实施在电子电路、计算机硬件、固件、软件或他们的组合中,如在此说明书中所公开的结构装置及其结构等价物中,潜在地包括可操作以导致一个或多个数据处理装置执行所描述的操作的程序(例如,在计算机可读介质中编码的程序,所述计算机可读介质可以是存储设备、储存设备、机器可读存储基板或其他物理的、机器可读介质或它们中的一个或多个的组合)。
术语“数据处理装置”包括所有的用于处理数据的装置、设备和机器,包括例如可编程处理器、计算机、多个处理器或计算机。除了硬件,装置还可包括为正被讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中一个或多个的组合的代码。
程序(也称为计算机程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言书写,包括编译或解释语言或声明的或程序上的语言,并且它可被以任何形式调用,包括作为独立的程序或作为模块、组件、子程序或适合用于计算环境中的其他单元。程序不一定对应文件系统中的文件。程序可被存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、正在讨论的程序专用的单一文件中、或多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。程序可被调用,以在一个计算机上或位于一个地点或分布在多个地点且由通信网络互联的多个计算机上执行。
虽然此说明书包含了许多细节,但是这些不应被理解为对所要求的范围的限制,而是作为可对特定实施方式所特有的特征的描述。在此说明书中,在单独的实施方式的背景中所描述的某些特征也可与单一实施方式结合来实现。相反地,在单一的实施方式的背景中所描述的各种特征也可被独立或以任何合适的子结合在多个实施方式中实现。此外,虽然以上所描述的特征可作为某些组合甚至如最初被要求的而起作用,但是根据所要求的结合的一个或多个特征在某些情况下可从组合删去,且所要求的结合可指向子结合或子结合的变体。
类似地,虽然操作在附图中以特定的顺序被描绘,但是这不应被理解为要求这种操作被以所示的特定的顺序或顺次的顺序执行、或所有的图解的操作被执行,以实现所需的结果。在某些情况下,多任务和并行处理可能是有利的。此外,在以上所描述的实施方式中各种系统组件的分离不应被理解为在所有的实施方式中要求这种分离。
其他实施方式落入所附权利要求的范围。

Claims (20)

1.一种用于数据压缩的装置,包括:
存储模块,用于存储数据,其中所述存储模块包括
第一缓冲器部分,用于存储所述数据的编码符号,以及
第二缓冲器部分,用于存储将被编码的数据的符号;以及
编码器,用于比较存储在所述第二缓冲器部分中的所述符号和存储在所述第一缓冲器部分中的所述编码符号以及压缩所述数据,其中所述编码器被配置为
运行在第一编码模式,以用相应的码字编码所述第二缓冲器部分中的所述符号,直到所述编码器检测到在所述第二缓冲器部分中的、与所述第一缓冲器部分中的所述编码符号匹配的重复的符号模型,以及
响应于所述编码器检测到所述重复的符号模型,输出转义码,所述转义码表示从所述第一编码模式转换到第二编码模式;
响应于所述编码器检测到所述重复的符号模型,转换为运行在所述第二编码模式,以
计数所述重复的符号模型在所述第二缓冲器部分中重复的次数,以及
输出所计数的数字;
其中,所述编码器被配置为当所述编码器检测到在所述第二缓冲器部分中的所述重复的符号模型停止重复时转换回所述第一编码模式。
2.如权利要求1所述的装置,其中所述第一编码模式包括Lempel-Ziv编码模式。
3.如权利要求2所述的装置,其中,所述Lempel-Ziv编码模式包括Lempel-Ziv-Storer-Szymanski(LZSS)编码模式;以及
其中所述第二编码模式包括行程编码(RLE)模式。
4.如权利要求1所述的装置,其中所述转义码包括单一出现的码字,所述转义码包括:
标记,用于表示在所述转义码中的下一个数据是字面量还是偏移量-长度对;
偏移量,用于代表在所述第二缓冲器部分中的所述重复的符号模型在所述第一缓冲器部分中的匹配的位置;以及
长度,用于代表所述第二缓冲器部分的大小。
5.如权利要求4所述的装置,其中所述转义码包括两次连续出现的所述码字。
6.如权利要求4所述的装置,其中所述编码器被配置为在输出所述转义码之后,从所述重复的符号模型第一次出现时开始,计数所述重复的符号模型在所述第二缓冲器中重复的所述次数。
7.如权利要求1所述的装置,其中,所述编码器被配置为用在所述第一编码模式期间所生成的码字更新所述第一缓冲器部分;以及
其中,所述编码器被配置为在所述第二编码模式期间更新所述第一缓冲器部分一次。
8.一种用于数据压缩的方法,其由数据处理设备执行,所述方法包括:
在存储模块中存储数据,所述存储还包括
在所述存储模块的第一缓冲器部分存储所述数据的编码符号,以及
在所述存储模块的第二缓冲器部分存储将被编码的数据的符号;以及
压缩所述数据,所述压缩还包括
比较存储在所述第二缓冲器部分中的所述符号和存储在所述第一缓冲器部分中的所述编码符号,
运行在第一编码模式,以用相应的码字编码所述第二缓冲器部分中的所述符号,直到检测到第二缓冲器部分中的、与所述第一缓冲器部分中的所述编码符号匹配的重复的符号模型,
响应于检测到所述重复的符号模型,输出转义码,所述转义码表示从所述第一编码模式转换到第二编码模式,
响应于检测到所述重复的符号模型,运行在所述第二编码模式,运行在所述第二编码模式包括
计数所述重复的符号模型在所述第二缓冲器部分中重复的次数,以及
输出所计数的数字,以及
当检测到所述第二缓冲器部分中的所述重复的符号模型停止重复时,转换回所述第一编码模式。
9.如权利要求8所述的方法,其中所述第一编码模式包括Lempel-Ziv编码模式。
10.如权利要求9所述的方法,其中所述Lempel-Ziv编码模式包括Lempel-Ziv-Storer-Szymanski(LZSS)编码模式;以及
其中所述第二编码模式包括行程编码(RLE)模式。
11.如权利要求8所述的方法,还包括所述转义码包括单一出现的码字,所述转义码包括:
标记,用于表示在所述转义码中的下一个数据是字面量还是偏移量-长度对;
偏移量,用于代表在所述第二缓冲器部分中的所述重复的符号模型在所述第一缓冲器部分中的匹配的位置;以及
长度,用于代表所述第二缓冲器部分的大小。
12.如权利要求11所述的方法,其中所述转义码包括两次连续出现的所述码字。
13.如权利要求11所述的方法,还包括在输出所述转义码之后,从所述重复的符号模型第一次出现时开始,计数所述重复的符号模型在所述第二缓冲器中重复的所述次数。
14.如权利要求8所述的方法,还包括用在所述第一编码模式期间所生成的每个码字更新所述第一缓冲器部分;以及
在所述第二编码模式期间更新所述第一缓冲器部分一次。
15.一种用于数据压缩的系统,包括:
数据处理设备,用于编码数据来生成压缩数据,其中所述数据处理设备包括:
数据缓冲器,用于接收输入数据,其中所述缓冲器包括
搜索缓冲器,用于缓冲所述输入数据的编码符号,以及
先行缓冲器,用于缓冲将被编码的所述输入数据的符号;以及
编码器,用于比较缓冲在所述先行缓冲器中的所述符号和缓冲在所述搜索缓冲器中的所述编码符号以及压缩所述输入数据,其中所述编码器被配置为
运行在第一编码模式,以用相应的码字编码所述先行缓冲器中的所述符号,直到所述编码器检测到在所述先行缓冲器中的、与所述搜索缓冲器中的所述编码符号匹配的重复的符号模型,以及
响应于检测到所述重复的符号模型,输出转义码,所述转义码表示从所述第一编码模式转换到第二编码模式,
响应于检测到所述重复的符号模型,转换为运行在所述第二编码模式以
计数所述重复的符号模型在所述先行缓冲器中重复的次数,以及
输出所计数的数字;
其中,所述编码器被配置为当所述编码器检测到在所述先行缓冲器中的所述重复的符号模型停止重复时转换回所述第一编码模式。
16.如权利要求15所述的系统,其中所述第一编码模式包括Lempel-Ziv编码模式。
17.如权利要求16所述的系统,其中,所述Lempel-Ziv编码模式包括Lempel-Ziv-Storer-Szymanski(LZSS)编码模式;以及
其中所述第二编码模式包括行程编码(RLE)模式。
18.如权利要求15所述的系统,其中所述转义码包括单一出现的码字,所述转义码包括:
标记,用于表示在所述转义码中的下一个数据是字面量还是偏移量-长度对;
偏移量,用于代表在所述先行缓冲器中的所述重复的符号模型在所述搜索缓冲器中的匹配的位置;以及
长度,用于代表所述先行缓冲器的大小。
19.如权利要求18所述的系统,其中所述转义码包括两次连续出现的所述码字。
20.如权利要求18所述的系统,其中所述编码器被配置为
用在所述第一编码模式期间所生成的每个码字更新所述搜索缓冲器;
在所述第二编码模式期间更新所述搜索缓冲器一次;以及
在输出所述转义码之后,从所述重复的符号模型第一次出现时开始,计数所述重复的符号模型在所述先行缓冲器中重复的所述次数。
CN201010143498.9A 2009-03-05 2010-03-05 用于数据压缩的多模式编码 Active CN101989443B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15758909P 2009-03-05 2009-03-05
US61/157,589 2009-03-05

Publications (2)

Publication Number Publication Date
CN101989443A CN101989443A (zh) 2011-03-23
CN101989443B true CN101989443B (zh) 2015-09-09

Family

ID=42677767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010143498.9A Active CN101989443B (zh) 2009-03-05 2010-03-05 用于数据压缩的多模式编码

Country Status (2)

Country Link
US (1) US8044829B2 (zh)
CN (1) CN101989443B (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009022531A1 (ja) * 2007-08-13 2009-02-19 Nec Corporation データ圧縮伸張方法
US8427347B1 (en) * 2011-03-30 2013-04-23 Altera Corporation Dynamic data compression and decompression
US8497788B1 (en) * 2012-04-25 2013-07-30 Pure Storage Inc. Efficient techniques for aligned fixed-length compression
US8791843B2 (en) * 2012-10-15 2014-07-29 Lsi Corporation Optimized bitstream encoding for compression
US9035809B2 (en) * 2012-10-15 2015-05-19 Seagate Technology Llc Optimizing compression engine throughput via run pre-processing
KR102072412B1 (ko) 2013-01-07 2020-02-04 삼성전자주식회사 데이터 압축 회로의 동작 방법과 상기 방법을 수행할 수 있는 장치들
US9374106B2 (en) 2013-08-28 2016-06-21 International Business Machines Corporation Efficient context save/restore during hardware decompression of DEFLATE encoded data
US8902086B1 (en) * 2013-09-11 2014-12-02 Allegiance Software, Inc. Data encoding for analysis acceleration
US9800640B2 (en) * 2013-10-02 2017-10-24 International Business Machines Corporation Differential encoder with look-ahead synchronization
GB2525448B (en) * 2014-04-27 2018-01-24 Gurulogic Microsystems Oy Encoder and decoder
US9450607B1 (en) * 2014-07-10 2016-09-20 Google Inc. Encoding or decoding characters as word in corpus
US9385748B2 (en) * 2014-10-21 2016-07-05 Huawei Technologies Co., Ltd. Parallel dictionary-based compression encoder
US9971704B2 (en) * 2015-03-27 2018-05-15 International Business Machines Corporation Data compression accelerator methods, apparatus and design structure with improved resource utilization
GB2539239B (en) * 2015-06-10 2017-10-04 Gurulogic Microsystems Oy Encoders, decoders and methods utilizing mode symbols
US9628109B1 (en) * 2016-06-28 2017-04-18 International Business Machines Corporation Operation of a multi-slice processor implementing priority encoding of data pattern matches
US10599355B2 (en) 2017-05-12 2020-03-24 Seagate Technology Llc Data compression with redundancy removal across boundaries of compression search engines
US10747819B2 (en) 2018-04-20 2020-08-18 International Business Machines Corporation Rapid partial substring matching
US11509328B2 (en) * 2018-05-31 2022-11-22 Microsoft Technology Licensing, Llc Computer data compression utilizing multiple symbol alphabets and dynamic binding of symbol alphabets
US10732972B2 (en) 2018-08-23 2020-08-04 International Business Machines Corporation Non-overlapping substring detection within a data element string
US10782968B2 (en) * 2018-08-23 2020-09-22 International Business Machines Corporation Rapid substring detection within a data element string
US11880368B2 (en) * 2018-10-15 2024-01-23 Ocient Holdings LLC Compressing data sets for storage in a database system
US10476518B1 (en) * 2018-12-06 2019-11-12 Nyquist Semiconductor Limited Hardware friendly data compression
CN112134644B (zh) * 2019-06-25 2022-07-15 比亚迪股份有限公司 编码方法、装置及存储介质
US10996951B2 (en) 2019-09-11 2021-05-04 International Business Machines Corporation Plausibility-driven fault detection in string termination logic for fast exact substring match
US11042371B2 (en) 2019-09-11 2021-06-22 International Business Machines Corporation Plausability-driven fault detection in result logic and condition codes for fast exact substring match
CN112580297B (zh) * 2020-12-28 2023-04-18 芯华章科技股份有限公司 一种编解码数据的方法、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701125A (en) * 1994-06-15 1997-12-23 The United States Of America As Represented By The United States Department Of Energy Method for compression of data using single pass LZSS and run-length encoding
CN1331520A (zh) * 2000-07-03 2002-01-16 Lg电子株式会社 用于第三代合作项目2系统中的数据速率匹配方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4988998A (en) * 1989-09-05 1991-01-29 Storage Technology Corporation Data compression system for successively applying at least two data compression methods to an input data stream

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701125A (en) * 1994-06-15 1997-12-23 The United States Of America As Represented By The United States Department Of Energy Method for compression of data using single pass LZSS and run-length encoding
CN1331520A (zh) * 2000-07-03 2002-01-16 Lg电子株式会社 用于第三代合作项目2系统中的数据速率匹配方法

Also Published As

Publication number Publication date
US20100225506A1 (en) 2010-09-09
CN101989443A (zh) 2011-03-23
US8044829B2 (en) 2011-10-25

Similar Documents

Publication Publication Date Title
CN101989443B (zh) 用于数据压缩的多模式编码
JP6596102B2 (ja) コンテンツ連想シーブに存在している基本データエレメントからデータを導出することによるデータの無損失削減
CN100576753C (zh) 静态赫夫曼解码的系统和方法
US20130307709A1 (en) Efficient techniques for aligned fixed-length compression
US10547324B2 (en) Data compression coding method, apparatus therefor, and program therefor
CN107682016B (zh) 一种数据压缩方法、数据解压方法及相关系统
CN103236847A (zh) 基于多层哈希结构与游程编码的数据无损压缩方法
US7650040B2 (en) Method, apparatus and system for data block rearrangement for LZ data compression
KR102233174B1 (ko) 신경망 가속기 및 그것의 동작 방법
CN104811209B (zh) 一种抗最长匹配检测的压缩文件数据嵌入方法及装置
US10230392B2 (en) Techniques for parallel data decompression
CN106649217A (zh) 数据的匹配方法及装置
Wyner The redundancy and distribution of the phrase lengths of the fixed-database Lempel-Ziv algorithm
US8532415B2 (en) Data compression method
US20240020006A1 (en) System and method for compaction of floating-point numbers within a dataset
CN112054805B (zh) 一种模型数据压缩方法、系统及相关设备
Ghuge Map and Trie based Compression Algorithm for Data Transmission
US7612692B2 (en) Bidirectional context model for adaptive compression
KR102134893B1 (ko) 사전 압축된 텍스트 데이터의 압축 방식을 식별하는 시스템 및 방법
Lindstrom et al. Lossless compression of hexahedral meshes
Mamun et al. Hardware Approach of Lempel-Ziv-Welch Algorithm for Binary Data Compression
CN109698704B (zh) 比对型基因测序数据解压方法、系统及计算机可读介质
JPH06202844A (ja) データ圧縮復元処理装置
Pannirselvam et al. A Comparative Analysis on Different Techniques in Text Compression
JP3051501B2 (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
TR01 Transfer of patent right

Effective date of registration: 20200508

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

Effective date of registration: 20200508

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Patentee before: Marvell International Ltd.

Effective date of registration: 20200508

Address after: Hamilton, Bermuda

Patentee after: Marvell International Ltd.

Address before: Babado J San Michael

Patentee before: MARVELL WORLD TRADE Ltd.

TR01 Transfer of patent right