CN1547805A - 执行霍夫曼解码的方法 - Google Patents

执行霍夫曼解码的方法 Download PDF

Info

Publication number
CN1547805A
CN1547805A CNA01818216XA CN01818216A CN1547805A CN 1547805 A CN1547805 A CN 1547805A CN A01818216X A CNA01818216X A CN A01818216XA CN 01818216 A CN01818216 A CN 01818216A CN 1547805 A CN1547805 A CN 1547805A
Authority
CN
China
Prior art keywords
code
length
subgroup
data structure
digital signal
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.)
Granted
Application number
CNA01818216XA
Other languages
English (en)
Other versions
CN100417028C (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1547805A publication Critical patent/CN1547805A/zh
Application granted granted Critical
Publication of CN100417028C publication Critical patent/CN100417028C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory

Landscapes

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

Abstract

本发明公开了执行霍夫曼解码的一种方法的实施例。在这样的一个实施例中,一个数据结构被使用,尽管,当然,本发明不限于所公开的这个特定的实施例。

Description

执行霍夫曼解码的方法
相关申请
本发明涉及Acharya等人同时提出申请的序号为09/704,392、题目为“A Method of Generating Huffman Code Length Information”的美国专利申请(律师著录号为042390.P9804),该申请被转让给本发明的受让人,并结合于此以供参考。
背景技术
本发明涉及霍夫曼解码。
众所周知,霍夫曼编码是一种流行的可变长度统计编码方案。同样众所周知,霍夫曼代码的产生取决于对每一个单独符号的统计概率。例如,参见1952年的Proceedings of the IRE第40卷第9号第1098页到1101页,D.A.Huffman的“A Method for the Reconstruction of Minimum-Redundancy Codes”。一种传统的基于表查找的编码方案被广泛用于霍夫曼编码,这至少部分因为其效率和实现的相对简单。但是,基于表搜索的解码在软件和硬件实现中一般都是效率低。在表中的条目数相当多的时候(在实际应用中通常是这样),尤其是这样。另一个用于霍夫曼解码的方法是使用”树遍历技术”生成霍夫曼树。但是,这种解码技术也有不足。这种特别的技术是位序(bit sequential)的,并且对于霍夫曼树的生成过程和解码过程在存储器分配和计算的执行方面都引入了额外的“开销”。
附图说明
在说明书的总结部分具体指出并明确声明了被视为是本发明的主题。但是本发明,关于操作的方法和组织,及其目标、特征和优点,当参考附图阅读时通过参照以下详细的描述可以最好地被理解,该附图中:
图1是霍夫曼树构造和相关的霍夫曼树的一个例子;
图2是一个表格,说明了图1的霍夫曼树的可能的霍夫曼代码;
图3是一个表格,说明了霍夫曼代码的一个例子,在其中已经应用了所选的规则以唯一地确定霍夫曼代码;
图4是一个霍夫曼编码表和相应的解码树的例子;
图5是一个表格,说明了用于位串行霍夫曼解码的只读存储器(ROM)条目;
图6是一个表格,使用了图3的信息但是采用了不同的组织;和
图7是一个表格,说明了根据本发明的一个数据结构的实施例。
具体实施方式
在以下详细描述中,为了全面地了解本发明,陈述了大量具体细节。但是,本领域的技术人员应该知道本发明可以在不具有这些具体细节的条件下实施。在其它情况下,众所周知的方法、过程、组件和电路没有被详细描述,免得使本发明不清晰。
如前所述,一组符号的霍夫曼代码的产生是基于源符号出现的概率。通常,在这种上下文中被称为霍夫曼树的二进制树的结构被采用。D.A.Huffman,在上述的文献中,这样描述了该进程:
●列出所有可能的符号以及它们的概率;
●找出具有最小概率的两个符号;
●用包括两个符号的、概率是个体概率总和的单独一个集合替代它
  们;
●重复直到列表只包括一个成员。
该过程产生了递推地构造的一组集合,其中的每一个包括恰好两个成员。因此,它可以用一个以符号为“叶”的二叉树(“霍夫曼树”)来表示。然后为了形成任何特定符号的代码(“霍夫曼代码”):从根部到该符号遍历二叉树,对于左分支记录“0”,对于右分支记录“1”。但是,该过程的一个问题是结果得到的霍夫曼树不是唯一的。这种节点的一个应用例子是文本压缩,如GZIP。GZIP是一种文本压缩工具,开发于GNU(Gnu’s Not Unix)项目之下,其目的是开发一种“免费”或可免费得到的类似UNIX的操作系统的GZIP用于替代UNIX操作系统上的“压缩”文本压缩工具。参见,例如,在网站http://www.gzip.orh/上作为gzip-1.2.4.tar可获得的Gailly,J.L和Adler,M.的GZIP文档和原始资料。
众所周知的,所得的霍夫曼代码是前缀代码,较高频率出现的符号被分配给较小数量的位,以形成可变长度的霍夫曼代码。结果是,由于利用了符号的出现频率,最终减小了平均代码长度。
图1说明了有三个源符号的霍夫曼树的一个简单的例子。相同的霍夫曼树可以使用几个二进制代码通过将不同的二进制符号分配给树的边来表示。
这个霍夫曼树的霍夫曼代码的可能集合在图2中图示。从图2中,示出了霍夫曼代码不是唯一的,尽管从这个例子看来每一个符号的单独的代码长度是唯一的。
通过构造相应的霍夫曼树,可以产生霍夫曼代码的长度信息。然而,如前所说明的,霍夫曼代码当以这种方式被产生时可能不是唯一的。尽管如此,可以示出通过施加两个限制,通过使用霍夫曼树产生的霍夫曼代码可以保证是唯一的。这些限制是:
1.具有一个给定位长度的所有代码具有按字典顺序连续的值,与它们代表的符号的顺序相同;和
2.较短的代码按字母顺序排在较长的代码之前。
基于这些限制,霍夫曼代码可以被唯一地确定。例如,图3示出了一个使用了这些限制的19个符号的霍夫曼代码集合,其中,代码长度使用霍夫曼树被预先确定。对于图3的表格,在霍夫曼代码表中的条目中的短划线,表示该符号和当前源字母表的代码不存在,并且其长度信息是零。
尽管本发明不限于这个方面,上述限制已经在多种压缩方法和标准中被使用,例如象在前面描述的应用程序GZIP中那样。一般,在这样的应用软件中,霍夫曼树信息以一组代码长度信息的形式与压缩的文本数据一起被传递。因此,该组代码长度信息足够用以重建一个唯一的霍夫曼树。例如,图3中说明的霍夫曼代码表,可以用下面的进程产生,如在GZIP中被实现的那样。
代码长度最初在Length[I]中;
1)计算每一个代码长度的代码的数目。令“count[N]”是长度为N的代码的数目,N>=1。
2)找到每一个代码长度的最小代码的数值:
        Huffman_code=0;count[0]=0;
        for(i=1 to MAX_BITS){
           Huffman_code=(Huffman_code+count[i-1])<<1;
        next_code[i]=Huffman_code;
      }
3)使用在2中确定的连续值,分配数值给所有的代码。
如前所述,霍夫曼编码可以使用一个表查找技术而被相对容易地完成。然而,霍夫曼代码的解码一般在计算上更加繁重,因为当代码字在一个压缩位流中被接收并将要被解码的时候,在代码字间没有预定义的边界。如前所描述的,霍夫曼代码是可变长度代码。
一种被称为常数输入速度解码器的方法或技术,串行地处理输入位流,一次一个位。这种方法使用了一个解码或霍夫曼树的构造。因此,从根开始,该技术涉及遍历解码树的分支直到达到一个终端节点。在该终端节点,代码字被完全解码并且相应的符号因此可以按期望地被产生或输出。这个进程然后又从树的根开始。例如,参见B.Bhaskarin和K.Konstantinides所著的、由Kluwer学术出版社1995年出版的”Imageand Video Compressions Standards:Algorithms andArchitectures”。
图4是霍夫曼编码表和相应的解码树的一个例子。在硬件或软件中与这样的解码器相联系的一个问题是怎样有效地将解码树映射到存储器中。例如,图5说明了使用图4的解码树、用于位序霍夫曼解码的只读存储器(ROM)条目表。一种有效地映射存储器的方法被提出,例如被Mukherjee等人在1993年6月的IEEE关于超大规模集成电路(VLSI)系统的学报1(2):203-214页的文章“MARVLE:a VLSI chip for data compressionusing tree-based codes”中提出。
另一种用于解码霍夫曼代码的方法,尽管不是特别地有效,是将霍夫曼表的每一个条目与在输入缓冲器中的输入位相比较。在这种方法下,最坏的,解码表中的N个条目将被比较,其中N是符号的总数目。另外,条目的代码长度信息将被知道。
在使用数据结构解码一连串的二进制数字信号的方法的一个实施例中,下面的方法可以被使用。数据结构可以,至少是部分地,基于正被解码的二进制数字信号的子群的长度来被搜索。在这个特定的实施例中,一连串的二进制数字信号被编码,例如霍夫曼编码,尽管本发明不限于霍夫曼编码或霍夫曼解码的范围。尽管本发明不限于这方面,在这个特定的实施例中,在搜索前,在该串中第一个N个二进制数字信号被选为子群,其中N是最短代码的长度。而且,如果数据结构中没有长度为N的代码匹配子群,子群的长度被增加了该串中下一个二进制数字信号。同样地,在这个特定的实施例中,其中使用了该方法,数据结构中的具有与子群相同长度的每一个代码被检查以寻找一个匹配。注意,如在下文中将更详细地描述的,数据结构至少部分地基于代码长度被组织。而且,数据结构被组织使得具有相同代码长度的代码被顺序地存储。
尽管本发明在范围上不限于数据结构的这个特定的实施例,在重新排列一些符号以显示表中的冗余后,这个特定的实施例可以被联系到图3中的霍夫曼代码表。例如,这在图6中被说明。例如,霍夫曼代码长度为零的符号意味着这些符号没有被使用。同样地,基于前面限制的第一个,具有给定位长度的所有代码将具有按字典顺序连续的值。这样,通过跟踪长度信息,具有这个长度的霍夫曼代码的按字典顺序中的第一个符号的霍夫曼代码,和到具有相同长度的最后一个符号的霍夫曼代码的数目,提供了所示的信息,具有更少甚至没有的信息冗余。
数据结构的这个特定的实施例在图7中被示出。可以注意到,图7具有与图6相同的信息,但是为了使用的简单和容易被重新排列。这样,图7使用了更少的存储器并且,如在下文中将被更详细地描述地,允许一个位并行解码方案被应用。
通过图7中图示的数据结构的实施例,霍夫曼代码的解码可以在一个位并行方法中被执行,至少部分地基于代码长度的信息和每一个代码长度的霍夫曼代码的范围,如在图7的实施例中所示。这个在下面使用一个伪码实现来说明和描述,尽管本发明在范围上不限于提供的特定的伪码。
复合数据结构在这个上下文中被称为NDS(NDC)。这符合编程语言C的复合数据结构的定义,尽管本发明在范围上不限于这个编程语言或任何特定的编程语言。尽管本发明在范围上不限于这方面,在这个特定的实施例中,NDS的每一个条目分别包括四个域,即指定的长度、起始代码、结束代码和基索引(base index),如图7所示。当然,可以理解许多等价的数据结构是可能的,例如,替代起始代码和结束代码,而使用起始代码和起始代码与结束代码之间的差值。
然而,在这个特定的实施例中,NDC是具有不同代码长度的条目的数目。每一个条目代表具有相同代码长度的一组连续的霍夫曼代码。起始代码是这个组的第一个霍夫曼代码,结束代码是这个组的最后一个霍夫曼代码。基索引是霍夫曼表中对应符号的第一个霍夫曼代码的索引值,如图6所示。如前面已经指出的,注意本发明在范围上不限于这个特定的数据结构。显然,可以对这个特定的数据结构做许多修改,并且仍旧保持在已经描述的精神和范围内。
使用图7中所示的数据结构的实施例,下面是根据本发明的、用于解码一串二进制数字信号的一个实施例的伪码表示。
开始
do{

  Len=0;

  For(I=O;I<NDC;I++){

         Len=NDS[I].Length;

        tmp_code=Len bits from the input buffer;/*位并行搜索*/

         if(NDS[I].Start_Code<=tmp_code<=NDS[I].End Code){

         /*检查范围*/

               tmp_offset=tmp_code-NDS[I].Start_Code;
				
				<dp n="d6"/>
               get the Symbol at the index location

                       (NDS[I].Base_index+tmp_offset);

              break;

          }

  }

  if(Len>0){/*符号找到*/

          output Symbol;

          move the current pointer in the input buffer forward
Len bits;

  }

  else Error;/*没有符号找到*/
}while(no last symbol);
结束.
尽管本发明不限于这方面,在这个特定的实施例中,在搜索数据结构前,在串中第一个N个二进制数字信号被选为子群,其中N是最短代码的长度。具有那个长度的所有代码然后被检查以寻找一个匹配。如果没有匹配出现,那么子群的长度被增加该串中下一个二进制数字信号,然后具有增加了的长度的代码被检查以寻找一个匹配。这个进程被继续直到一个匹配出现。如前所指出的,数据结构至少部分地基于代码长度被组织,并且数据结构被组织使得具有相同代码长度的代码按字典顺序被顺序存储。这允许期望的有效操作。
注意到,在一个可替换的实施例中,可能可以从最长的代码开始搜索并且当没有匹配出现时降低子群的长度。但是,一般一个较短的霍夫曼代码具有更高的出现概率,使得在这种情况下从最短代码开始搜索更加有效。
解码一串二进制数字信号的方法的这个特定的实施例,在存储器利用、计算的复杂性和实现方面具有几个优势。如前所提到的,数据结构的条目的数目,取决于霍夫曼代码的最长的代码长度,而不是符号的数目。因此,这带来存储器的减少。例如,当应用软件具有固定限制的代码长度时,例如GZIP,一个典型的霍夫曼树具有285个符号,代码长度被限制到15位。与此对比的,为这个实施例使用的条目的数目将具有最多15个条目,根据该数据,在这个例子中导致在存储器利用上19倍的减少。
同样的,通过使用位并行搜索进程,而不是位串行搜索进程,计算的复杂性被降低。这里,这个实施例至少部分地,基于数据结构中的代码长度信息。搜索过程通过为具有那个代码长度的组检查起始和结束代码的范围,改善了当前的方法。这个使用了19个符号和最大代码长为7位的实施例的实验结果,与使用了霍夫曼代码表搜索的解码相比,提供了在复杂性上5.5倍的降低。同样的,因为没有如在一个霍夫曼树被构造时发生的那样的二进制树结构发生,并且有更小或没有动态的存储器分配,根据本发明的解码的实现在硬件和软件上都相对容易。
当然应该理解的是,尽管只描述了特定实施例,本发明在范围上不限于特定实施例或实现。例如,一个实施例可以是硬件中的,而另一个实施例可以是软件中的。同样,实施例可以是固件中的,或例如硬件、软件或固件的任意组合。同样,尽管本发明在这方面不受限制,一个实施例可包括一个物件,例如存储介质。这样的存储介质,例如,CD-ROM,或碟盘,可以在其上存储指令,这些指令当被系统执行时,例如计算机系统或平台,或成像系统,可以产生依照本发明的方法的实施例被执行,例如如前所述的执行霍夫曼解码的方法。同样的,根据本发明的创建数据结构的方法的实施例,可以被执行。
尽管本发明的特定特征已经被说明和描述,本领域的技术人员可以做许多修改、替换、改变和等价。因此,可以理解,所附的权利要求将覆盖全部这些落在本发明的精神范围内的修改和变化。

Claims (22)

1.一种使用数据结构解码一串二进制数字信号的方法,所述一串二进制数字信号被编码,所述方法包括:
至少部分基于被解码的一串二进制数字信号的一个二进制数字信号的子群的长度来搜索所述数据结构。
2.权利要求1的方法,还包括:
在搜索前,将所述串中的第一个N个二进制数字信号选择为所述子群,N是最短代码的长度。
3.权利要求2的方法,还包括:
如果所述数据结构中没有长度为N的代码匹配所述子群,那么将所述的子群的长度增加所述串中的下一个二进制数字信号。
4.权利要求1的方法,还包括:
在搜索前,将所述串中的第一个N个二进制数字信号选择为所述子群,N是最长代码的长度。
5.权利要求4的方法,还包括:
如果所述数据结构中没有长度为N的代码匹配所述子群,那么将所述的子群的长度减少所述串中的下一个二进制数字信号。
6.权利要求1的方法,其中,所述二进制数字信号按照霍夫曼代码被编码。
7.权利要求1的方法,其中,所述数据结构至少部分基于代码长度被组织。
8.权利要求7的方法,其中,所述数据结构中具有与所述子群相同长度的每一个代码都被检查以寻找一个匹配。
9.权利要求8的方法,其中,数据结构按照具有相同代码长度的代码的子群被组织,子群被顺序地存储。
10.一种霍夫曼代码的数据结构,霍夫曼代码在子群中被排列,包括:
每一个子群的代码字长度、起始代码、结束代码和基索引。
11.权利要求10的数据结构,其中,所述子群根据代码字长度被顺序地组织。
12.权利要求11的数据结构,其中,在每一个子群内,代码字是从起始码到结束码隐含顺序的。
13.为解码代码字创建数据结构的一种方法,所述方法包括:
用代码长度分类所述代码字;和
从起始代码到结束代码顺序地排序具有相同长度的代码字。
14.权利要求13的方法,其中,具有一个特定代码长度的代码字的每一个子群,用一个起始代码和一个结束代码表示。
15.权利要求14的方法,还包括:
将一个基索引关联到每一个子群上。
16.权利要求15的方法,其中,基索引对应具有起始代码的符号的索引。
17.一种物件,包括:存储介质,所述存储介质在其上存储有指令,当这些指令被执行时,使得使用数据结构来解码一串二进制数字信号的一种方法通过以下步骤被执行,该串二进制数字信号被编码:
至少部分基于被解码的一串二进制数字信号的一个二进制数字信号的子群的长度来搜索所述数据结构。
18.权利要求17的物件,其中,所述指令当被执行时使得,在搜索前,将所述串中的第一个N个二进制数字信号选择为所述子群,N是最短代码的长度。
19.权利要求18的物件,其中,所述指令当被执行时使得,如果所述数据结构中没有长度为N的代码匹配所述子群,那么将所述的子群的长度增加所述串中的下一个二进制数字信号。
20.一种物件,包括:存储介质,所述存储介质在其上存储有指令,当这些指令被执行时,使得创建用于解码被编码代码字的数据结构的一种方法通过以下步骤被执行:
用代码长度分类所述代码字;和
从起始代码到结束代码顺序地排序具有相同长度的代码字。
21.权利要求20的物件,其中,所述指令当被执行时使得,具有一个特定代码长度的代码字的每一个子群,用一个起始代码和一个结束代码表示。
22.权利要求21的物件,其中,所述指令当被执行时使得,将一个基索引关联到每一个子群上。
CNB01818216XA 2000-10-31 2001-10-09 执行霍夫曼解码的方法 Expired - Fee Related CN100417028C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/704,380 2000-10-31
US09/704,380 US6563439B1 (en) 2000-10-31 2000-10-31 Method of performing Huffman decoding

Publications (2)

Publication Number Publication Date
CN1547805A true CN1547805A (zh) 2004-11-17
CN100417028C CN100417028C (zh) 2008-09-03

Family

ID=24829232

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB01818216XA Expired - Fee Related CN100417028C (zh) 2000-10-31 2001-10-09 执行霍夫曼解码的方法

Country Status (9)

Country Link
US (3) US6563439B1 (zh)
JP (1) JP3974036B2 (zh)
KR (1) KR100527891B1 (zh)
CN (1) CN100417028C (zh)
AU (1) AU2002211558A1 (zh)
DE (1) DE10196890B4 (zh)
GB (1) GB2385759B (zh)
TW (1) TW538599B (zh)
WO (1) WO2002037687A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101282121B (zh) * 2007-04-05 2010-10-06 安凯(广州)微电子技术有限公司 一种基于条件概率的哈夫曼解码的方法
CN102237878A (zh) * 2010-04-20 2011-11-09 慧荣科技股份有限公司 一种霍夫曼解码方法
CN105988777A (zh) * 2015-01-27 2016-10-05 深圳市腾讯计算机系统有限公司 一种规则匹配方法及装置

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6563439B1 (en) * 2000-10-31 2003-05-13 Intel Corporation Method of performing Huffman decoding
US6636167B1 (en) * 2000-10-31 2003-10-21 Intel Corporation Method of generating Huffman code length information
US7274671B2 (en) * 2001-02-09 2007-09-25 Boly Media Communications, Inc. Bitwise adaptive encoding using prefix prediction
US6677868B2 (en) * 2001-03-16 2004-01-13 Sharp Laboratories Of America, Inc. Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols
US7129863B1 (en) * 2001-06-01 2006-10-31 California Institute Of Technology Interval modulation coding
US6778107B2 (en) * 2001-08-30 2004-08-17 Intel Corporation Method and apparatus for huffman decoding technique
US6573847B1 (en) * 2002-01-08 2003-06-03 Intel Corporation Multi-table mapping for huffman code decoding
US20050111556A1 (en) * 2003-11-26 2005-05-26 Endress William B. System and method for real-time decompression and display of Huffman compressed video data
US7068192B1 (en) * 2004-08-13 2006-06-27 Google Inc. System and method for encoding and decoding variable-length data
US8407239B2 (en) 2004-08-13 2013-03-26 Google Inc. Multi-stage query processing system and method for use with tokenspace repository
US7917480B2 (en) 2004-08-13 2011-03-29 Google Inc. Document compression system and method for use with tokenspace repository
WO2007011116A1 (en) * 2005-07-20 2007-01-25 Humax Co., Ltd. Encoder and decoder
JP4958466B2 (ja) * 2006-04-05 2012-06-20 グローバル・オーエルイーディー・テクノロジー・リミテッド・ライアビリティ・カンパニー 表示装置
TWI330473B (en) * 2006-11-24 2010-09-11 Primax Electronics Ltd Huffman decoding method
US20090006399A1 (en) * 2007-06-29 2009-01-01 International Business Machines Corporation Compression method for relational tables based on combined column and row coding
US8902873B2 (en) * 2009-10-08 2014-12-02 Qualcomm Incorporated Efficient signaling for closed-loop transmit diversity
US8442988B2 (en) 2010-11-04 2013-05-14 International Business Machines Corporation Adaptive cell-specific dictionaries for frequency-partitioned multi-dimensional data
KR101725223B1 (ko) * 2011-03-25 2017-04-11 삼성전자 주식회사 저장 장치에서의 데이터 압축 방법
US8593308B1 (en) * 2012-05-31 2013-11-26 International Business Machines Corporation Method of accelerating dynamic Huffman decompaction within the inflate algorithm
KR101853148B1 (ko) * 2013-05-20 2018-04-27 엘에스산전 주식회사 데이터 저장방법
US9564917B1 (en) * 2015-12-18 2017-02-07 Intel Corporation Instruction and logic for accelerated compressed data decoding
CN107483059B (zh) * 2017-07-31 2020-06-12 广东工业大学 一种基于动态霍夫曼树的多路数据编解码方法及装置

Family Cites Families (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4899149A (en) * 1986-02-28 1990-02-06 Gary Kahan Method of and apparatus for decoding Huffman or variable-length coees
FR2612025B1 (fr) * 1987-03-06 1989-05-26 Labo Electronique Physique Dispositif de decodage de signaux codes en duobinaire
US4813056A (en) * 1987-12-08 1989-03-14 General Electric Company Modified statistical coding of digital signals
DE3943881B4 (de) * 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
EP0593046B1 (en) * 1992-10-13 2000-07-26 Nec Corporation Huffman code decoding circuit
US5778371A (en) * 1994-09-13 1998-07-07 Kabushiki Kaisha Toshiba Code string processing system and method using intervals
US5821886A (en) * 1996-10-18 1998-10-13 Samsung Electronics Company, Ltd. Variable length code detection in a signal processing system
US5821887A (en) * 1996-11-12 1998-10-13 Intel Corporation Method and apparatus for decoding variable length codes
US5875122A (en) 1996-12-17 1999-02-23 Intel Corporation Integrated systolic architecture for decomposition and reconstruction of signals using wavelet transforms
FI102426B1 (fi) * 1997-03-14 1998-11-30 Nokia Telecommunications Oy Menetelmä muistin toteuttamiseksi
US6009201A (en) 1997-06-30 1999-12-28 Intel Corporation Efficient table-lookup based visually-lossless image compression scheme
US5973627A (en) * 1997-08-28 1999-10-26 Philips Electronics North America Corporation Variable length decoder with adaptive acceleration optimized by sub-grouping and cross-grouping the symbols having the highest probability of occurrence
US6009206A (en) 1997-09-30 1999-12-28 Intel Corporation Companding algorithm to transform an image to a lower bit resolution
US6160918A (en) 1997-10-02 2000-12-12 At&T Corp. Method and apparatus for fast image compression
US6091851A (en) 1997-11-03 2000-07-18 Intel Corporation Efficient algorithm for color recovery from 8-bit to 24-bit color pixels
US6130960A (en) * 1997-11-03 2000-10-10 Intel Corporation Block-matching algorithm for color interpolation
US6285796B1 (en) 1997-11-03 2001-09-04 Intel Corporation Pseudo-fixed length image compression scheme
US6151069A (en) * 1997-11-03 2000-11-21 Intel Corporation Dual mode digital camera for video and still operation
US6351555B1 (en) 1997-11-26 2002-02-26 Intel Corporation Efficient companding algorithm suitable for color imaging
US6094508A (en) 1997-12-08 2000-07-25 Intel Corporation Perceptual thresholding for gradient-based local edge detection
US6229578B1 (en) 1997-12-08 2001-05-08 Intel Corporation Edge-detection based noise removal algorithm
US6348929B1 (en) 1998-01-16 2002-02-19 Intel Corporation Scaling algorithm and architecture for integer scaling in video
US6215916B1 (en) 1998-02-04 2001-04-10 Intel Corporation Efficient algorithm and architecture for image scaling using discrete wavelet transforms
US6075470A (en) 1998-02-26 2000-06-13 Research In Motion Limited Block-wise adaptive statistical data compressor
US6392699B1 (en) * 1998-03-04 2002-05-21 Intel Corporation Integrated color interpolation and color space conversion algorithm from 8-bit bayer pattern RGB color space to 12-bit YCrCb color space
US6211521B1 (en) 1998-03-13 2001-04-03 Intel Corporation Infrared pixel sensor and infrared signal correction
US6356276B1 (en) 1998-03-18 2002-03-12 Intel Corporation Median computation-based integrated color interpolation and color space conversion methodology from 8-bit bayer pattern RGB color space to 12-bit YCrCb color space
US6366694B1 (en) 1998-03-26 2002-04-02 Intel Corporation Integrated color interpolation and color space conversion algorithm from 8-bit Bayer pattern RGB color space to 24-bit CIE XYZ color space
US6366692B1 (en) 1998-03-30 2002-04-02 Intel Corporation Median computation-based integrated color interpolation and color space conversion methodology from 8-bit bayer pattern RGB color space to 24-bit CIE XYZ color space
US6154493A (en) 1998-05-21 2000-11-28 Intel Corporation Compression of color images based on a 2-dimensional discrete wavelet transform yielding a perceptually lossless image
US6040790A (en) * 1998-05-29 2000-03-21 Xerox Corporation Method of building an adaptive huffman codeword tree
US6124811A (en) 1998-07-02 2000-09-26 Intel Corporation Real time algorithms and architectures for coding images compressed by DWT-based techniques
US6233358B1 (en) 1998-07-13 2001-05-15 Intel Corporation Image compression using directional predictive coding of the wavelet coefficients
US6236765B1 (en) 1998-08-05 2001-05-22 Intel Corporation DWT-based up-sampling algorithm suitable for image display in an LCD panel
US6047303A (en) 1998-08-06 2000-04-04 Intel Corporation Systolic architecture for computing an inverse discrete wavelet transforms
US6178269B1 (en) 1998-08-06 2001-01-23 Intel Corporation Architecture for computing a two-dimensional discrete wavelet transform
US5995210A (en) 1998-08-06 1999-11-30 Intel Corporation Integrated architecture for computing a forward and inverse discrete wavelet transforms
US6166664A (en) 1998-08-26 2000-12-26 Intel Corporation Efficient data structure for entropy encoding used in a DWT-based high performance image compression
US6301392B1 (en) 1998-09-03 2001-10-09 Intel Corporation Efficient methodology to select the quantization threshold parameters in a DWT-based image compression scheme in order to score a predefined minimum number of images into a fixed size secondary storage
US6731807B1 (en) * 1998-09-11 2004-05-04 Intel Corporation Method of compressing and/or decompressing a data set using significance mapping
US6195026B1 (en) 1998-09-14 2001-02-27 Intel Corporation MMX optimized data packing methodology for zero run length and variable length entropy encoding
US6108453A (en) 1998-09-16 2000-08-22 Intel Corporation General image enhancement framework
US6236433B1 (en) 1998-09-29 2001-05-22 Intel Corporation Scaling algorithm for efficient color representation/recovery in video
US6625318B1 (en) * 1998-11-13 2003-09-23 Yap-Peng Tan Robust sequential approach in detecting defective pixels within an image sensor
US6759646B1 (en) * 1998-11-24 2004-07-06 Intel Corporation Color interpolation for a four color mosaic pattern
US6151415A (en) 1998-12-14 2000-11-21 Intel Corporation Auto-focusing algorithm using discrete wavelet transform
US6215908B1 (en) 1999-02-24 2001-04-10 Intel Corporation Symmetric filtering based VLSI architecture for image compression
US6381357B1 (en) 1999-02-26 2002-04-30 Intel Corporation Hi-speed deterministic approach in detecting defective pixels within an image sensor
US6275206B1 (en) 1999-03-17 2001-08-14 Intel Corporation Block mapping based up-sampling method and apparatus for converting color images
US6377280B1 (en) 1999-04-14 2002-04-23 Intel Corporation Edge enhanced image up-sampling algorithm using discrete wavelet transform
US6574374B1 (en) * 1999-04-14 2003-06-03 Intel Corporation Enhancing image compression performance by morphological processing
US6563948B2 (en) * 1999-04-29 2003-05-13 Intel Corporation Using an electronic camera to build a file containing text
US6640017B1 (en) * 1999-05-26 2003-10-28 Intel Corporation Method and apparatus for adaptively sharpening an image
US6697534B1 (en) * 1999-06-09 2004-02-24 Intel Corporation Method and apparatus for adaptively sharpening local image content of an image
US6292114B1 (en) 1999-06-10 2001-09-18 Intel Corporation Efficient memory mapping of a huffman coded list suitable for bit-serial decoding
US6628716B1 (en) * 1999-06-29 2003-09-30 Intel Corporation Hardware efficient wavelet-based video compression scheme
US6600833B1 (en) * 1999-07-23 2003-07-29 Intel Corporation Methodology for color correction with noise regulation
US6373481B1 (en) 1999-08-25 2002-04-16 Intel Corporation Method and apparatus for automatic focusing in an image capture system using symmetric FIR filters
US7065253B2 (en) * 1999-09-03 2006-06-20 Intel Corporation Wavelet zerotree coding of ordered bits
US6625308B1 (en) * 1999-09-10 2003-09-23 Intel Corporation Fuzzy distinction based thresholding technique for image segmentation
US6658399B1 (en) 1999-09-10 2003-12-02 Intel Corporation Fuzzy based thresholding technique for image segmentation
US6633610B2 (en) * 1999-09-27 2003-10-14 Intel Corporation Video motion estimation
US7106910B2 (en) * 1999-10-01 2006-09-12 Intel Corporation Color video coding scheme
US6798901B1 (en) * 1999-10-01 2004-09-28 Intel Corporation Method of compressing a color image
US6956903B2 (en) 2001-05-29 2005-10-18 Intel Corporation Method and apparatus for three-dimensional wavelet transform
US6834123B2 (en) 2001-05-29 2004-12-21 Intel Corporation Method and apparatus for coding of wavelet transformed coefficients
US6731706B1 (en) * 1999-10-29 2004-05-04 Intel Corporation Square root raised cosine symmetric filter for mobile telecommunications
US6813384B1 (en) 1999-11-10 2004-11-02 Intel Corporation Indexing wavelet compressed video for efficient data handling
US6628827B1 (en) * 1999-12-14 2003-09-30 Intel Corporation Method of upscaling a color image
US6650688B1 (en) 1999-12-20 2003-11-18 Intel Corporation Chip rate selectable square root raised cosine filter for mobile telecommunications
US6757430B2 (en) * 1999-12-28 2004-06-29 Intel Corporation Image processing architecture
US6748118B1 (en) * 2000-02-18 2004-06-08 Intel Corporation Method of quantizing signal samples of an image during same
US6654501B1 (en) 2000-03-06 2003-11-25 Intel Corporation Method of integrating a watermark into an image
US6449380B1 (en) * 2000-03-06 2002-09-10 Intel Corporation Method of integrating a watermark into a compressed image
US6738520B1 (en) * 2000-06-19 2004-05-18 Intel Corporation Method of compressing an image
US6775413B1 (en) * 2000-09-18 2004-08-10 Intel Corporation Techniques to implement one-dimensional compression
US6636167B1 (en) * 2000-10-31 2003-10-21 Intel Corporation Method of generating Huffman code length information
US6563439B1 (en) * 2000-10-31 2003-05-13 Intel Corporation Method of performing Huffman decoding
US6690306B1 (en) * 2000-11-03 2004-02-10 Intel Corporation Method of generating a length-constrained huffman code
US6678708B1 (en) * 2000-11-15 2004-01-13 Intel Corporation Method and apparatus for two-dimensional separable symmetric filtering
US6751640B1 (en) * 2000-11-20 2004-06-15 Intel Corporation Method and apparatus for multiply-accumulate two-dimensional separable symmetric filtering
US20020063899A1 (en) * 2000-11-29 2002-05-30 Tinku Acharya Imaging device connected to processor-based system using high-bandwidth bus
US6707928B2 (en) * 2000-11-29 2004-03-16 Intel Corporation Method for block-based digital image watermarking
US6917381B2 (en) * 2000-11-30 2005-07-12 Intel Corporation Color filter array and color interpolation algorithm
US6662200B2 (en) 2001-01-03 2003-12-09 Intel Corporation Multiplierless pyramid filter
US20020118746A1 (en) * 2001-01-03 2002-08-29 Kim Hyun Mun Method of performing video encoding rate control using motion estimation
US20020122482A1 (en) * 2001-01-03 2002-09-05 Kim Hyun Mun Method of performing video encoding rate control using bit budget
US6681060B2 (en) * 2001-03-23 2004-01-20 Intel Corporation Image retrieval using distance measure
US20020174154A1 (en) 2001-03-26 2002-11-21 Tinku Acharya Two-dimensional pyramid filter architecture
US6766286B2 (en) * 2001-03-28 2004-07-20 Intel Corporation Pyramid filter
US20020184276A1 (en) 2001-03-30 2002-12-05 Tinku Acharya Two-dimensional pyramid filter architecture
US6889237B2 (en) * 2001-03-30 2005-05-03 Intel Corporation Two-dimensional pyramid filter architecture
US6725247B2 (en) * 2001-04-30 2004-04-20 Intel Corporation Two-dimensional pyramid filter architecture
US20030021486A1 (en) * 2001-07-27 2003-01-30 Tinku Acharya Method and apparatus for image scaling
US6653953B2 (en) 2001-08-22 2003-11-25 Intel Corporation Variable length coding packing architecture
US6996180B2 (en) * 2001-09-05 2006-02-07 Intel Corporation Fast half-pixel motion estimation using steepest descent
US6891889B2 (en) * 2001-09-05 2005-05-10 Intel Corporation Signal to noise ratio optimization for video compression bit-rate control
US6795592B2 (en) * 2001-09-13 2004-09-21 Intel Corporation Architecture for processing fingerprint images
US20030063782A1 (en) * 2001-09-13 2003-04-03 Tinku Acharya Method and apparatus to reduce false minutiae in a binary fingerprint image
US7136515B2 (en) * 2001-09-13 2006-11-14 Intel Corporation Method and apparatus for providing a binary fingerprint image
US6944640B2 (en) * 2001-12-28 2005-09-13 Intel Corporation Progressive two-dimensional (2D) pyramid filter
US20030123539A1 (en) * 2001-12-28 2003-07-03 Hyung-Suk Kim Method and apparatus for video bit-rate control
US20030194008A1 (en) * 2002-04-11 2003-10-16 Tinku Acharya Computationally fast and efficient DV to DVD transcoding
US20030198387A1 (en) * 2002-04-22 2003-10-23 Tinku Acharya Method and apparatus for image retrieval
US7133555B2 (en) * 2002-08-02 2006-11-07 Intel Corporation Image color matching scheme
US20040042551A1 (en) * 2002-09-04 2004-03-04 Tinku Acharya Motion estimation
US7266151B2 (en) * 2002-09-04 2007-09-04 Intel Corporation Method and system for performing motion estimation using logarithmic search
US20040057626A1 (en) * 2002-09-23 2004-03-25 Tinku Acharya Motion estimation using a context adaptive search
US7075987B2 (en) * 2002-09-23 2006-07-11 Intel Corporation Adaptive video bit-rate control

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101282121B (zh) * 2007-04-05 2010-10-06 安凯(广州)微电子技术有限公司 一种基于条件概率的哈夫曼解码的方法
CN102237878A (zh) * 2010-04-20 2011-11-09 慧荣科技股份有限公司 一种霍夫曼解码方法
CN102237878B (zh) * 2010-04-20 2015-09-02 慧荣科技股份有限公司 一种霍夫曼解码方法
CN105988777A (zh) * 2015-01-27 2016-10-05 深圳市腾讯计算机系统有限公司 一种规则匹配方法及装置
CN105988777B (zh) * 2015-01-27 2019-03-15 深圳市腾讯计算机系统有限公司 一种规则匹配方法及装置

Also Published As

Publication number Publication date
JP2004515096A (ja) 2004-05-20
DE10196890B4 (de) 2008-02-07
US20030174077A1 (en) 2003-09-18
JP3974036B2 (ja) 2007-09-12
KR100527891B1 (ko) 2005-11-15
WO2002037687A3 (en) 2002-08-29
KR20030040567A (ko) 2003-05-22
GB0311329D0 (en) 2003-06-25
US6646577B2 (en) 2003-11-11
US6563439B1 (en) 2003-05-13
GB2385759B (en) 2004-11-03
TW538599B (en) 2003-06-21
US20030085821A1 (en) 2003-05-08
CN100417028C (zh) 2008-09-03
DE10196890T1 (de) 2003-12-18
WO2002037687A2 (en) 2002-05-10
US6982661B2 (en) 2006-01-03
GB2385759A (en) 2003-08-27
AU2002211558A1 (en) 2002-05-15

Similar Documents

Publication Publication Date Title
CN1547805A (zh) 执行霍夫曼解码的方法
US7190287B2 (en) Method of generating Huffman code length information
US7358874B2 (en) Data compression using a stream selector with edit-in-place capability for compressed data
KR20190117652A (ko) 압축된 게놈 서열 리드로부터 게놈 참조 서열의 복원 방법 및 시스템
US5877711A (en) Method and apparatus for performing adaptive data compression
US20060273933A1 (en) Data compression with selective encoding of short matches
US7872598B2 (en) Accelerated decompression
EP0683568B1 (en) Decoding of Huffman Codes with MSB and LSB look-up tables
EP2499743A1 (en) Indexing compressed data
JPH1065551A (ja) データ圧縮方法
US5424732A (en) Transmission compatibility using custom compression method and hardware
JP5913748B2 (ja) セキュアで損失のないデータ圧縮
US6573847B1 (en) Multi-table mapping for huffman code decoding
US20090292699A1 (en) Nucleotide and amino acid sequence compression
Zia et al. Two-level dictionary-based text compression scheme
JP3565147B2 (ja) 復号装置
JPH0738447A (ja) ハフマン符号の符号化でのランレングス抽出方法、ハフマン符号変換方法およびmh符号化処理方法
CN117465471A (zh) 一种针对文本文件的无损压缩系统及其压缩方法
GB2402584A (en) Method of performing Huffman decoding

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: 20080903

Termination date: 20101009