CN1547805A - 执行霍夫曼解码的方法 - Google Patents
执行霍夫曼解码的方法 Download PDFInfo
- 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
Links
Classifications
-
- 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
-
- 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
- H03M7/42—Conversion 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的物件,其中,所述指令当被执行时使得,将一个基索引关联到每一个子群上。
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)
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)
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)
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 |
-
2000
- 2000-10-31 US US09/704,380 patent/US6563439B1/en not_active Expired - Fee Related
-
2001
- 2001-10-09 DE DE10196890T patent/DE10196890B4/de not_active Expired - Fee Related
- 2001-10-09 AU AU2002211558A patent/AU2002211558A1/en not_active Abandoned
- 2001-10-09 KR KR10-2003-7006044A patent/KR100527891B1/ko not_active IP Right Cessation
- 2001-10-09 WO PCT/US2001/031532 patent/WO2002037687A2/en active IP Right Grant
- 2001-10-09 JP JP2002540317A patent/JP3974036B2/ja not_active Expired - Fee Related
- 2001-10-09 CN CNB01818216XA patent/CN100417028C/zh not_active Expired - Fee Related
- 2001-10-09 GB GB0311329A patent/GB2385759B/en not_active Expired - Fee Related
- 2001-10-29 TW TW090126738A patent/TW538599B/zh not_active IP Right Cessation
-
2002
- 2002-11-12 US US10/293,187 patent/US6646577B2/en not_active Expired - Fee Related
-
2003
- 2003-03-18 US US10/391,892 patent/US6982661B2/en not_active Expired - Fee Related
Cited By (5)
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 |