CN101213754B - 用于改进的多媒体解码器的方法和设备 - Google Patents
用于改进的多媒体解码器的方法和设备 Download PDFInfo
- Publication number
- CN101213754B CN101213754B CN2006800244758A CN200680024475A CN101213754B CN 101213754 B CN101213754 B CN 101213754B CN 2006800244758 A CN2006800244758 A CN 2006800244758A CN 200680024475 A CN200680024475 A CN 200680024475A CN 101213754 B CN101213754 B CN 101213754B
- Authority
- CN
- China
- Prior art keywords
- data
- buffer
- bit
- processor
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
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
- 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
- H03M7/425—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 for the decoding process only
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
实施例包括改进多媒体传输系统中的解码器中的处理的系统和方法。多媒体数据可包括运动视频、音频、静止图像或任何其它适当类型的音频-可视数据中的一个或一个以上者。一个实施例包括通过以处理器对齐(例如,字对齐)方式维持和读取数据来分析来自多媒体数据的逐比特流的固定和可变长度代码的系统和方法。另一实施例包括使用多个等级的解码表以加速解码器表查找来解码可变长度代码(尤其在自此种可变长度代码接收时)的系统和方法。
Description
依据35U.S.C.§119的优先权主张
本申请案主张下列申请案的益处并将其以引用的方式整体并入:2005年5月13日申请的美国临时申请案第60/681,194号;和2006年4月4日申请的美国临时申请案第60/789,455号,标题为“VIDEO DECODER OPTIMIZATIONS”。
技术领域
本发明涉及数字通信,且更确切地说,本发明涉及信道和源解码。
背景技术
网络化的多媒体应用趋向于需要较高带宽、较佳编码与压缩方案或两者都需要。然而,对于移动通信来说,诸如有限传输功率、有限带宽和多路径衰落的因素易于限制由可用系统提供的数据速率。已将各种编码方案用于在维持需要的数据速率的同时最小化差错,然而所有这些技术均受到差错会到达解码器侧的问题的困扰。
通过使用源编码器来压缩数据。通常,信道编码器接着编码压缩的源数据以对于给定差错率而最大化传输信道的容量。
在实际上接收到破坏的数据包的情况下,已使用诸如可逆可变长度编码(例如,MPEG-4中)的源编码技术,通过以逆顺序解码数据包来进行错误恢复。一种类型的源编码包括熵编码。熵编码允许实现对由信息源产生的符号的高效无损表示。然而,尽管熵编码可改进压缩效率,但熵编码也使解码过程变复杂。熵编码器分配可变长度二进制数据模式(代码字)至一或多个源符号。为改进压缩速率,与源符号相关的二进制模式的长度随着符号似然性降低而增加。在源流中以较高频率出现的符号被分配有较紧凑的表示。这一般来说可允许与具有固定长度表示的直接符号字母表(symbol alphabet)相比大量的节约。
然而,如果在包含比特流的信道上传输,那么可变长度代码易于增加解码器的复杂性。举例来说,通过识别每一代码字的开始和结束来处理关于下一符号将从信道的比特流消耗多少比特的不定性。
因此,需要解码可变长度代码的改进系统和方法以便对于给定量的处理功率进一步增加数据速率。举例来说,需要改进性能的可变长度解码器以使较高数据速率多媒体能够由移动装置或其它低功率装置解码。
发明内容
本文所揭示的系统、方法和装置各具有若干方面,没有单个方面可单独负责其所需要的属性。在不限制由上文权利要求所表示的本发明的范围的情况下,现将简要讨论其较显著的特征。在考虑到此论述之后,且尤其在阅读标题为“具体实施方式”的部分之后,将理解此系统和方法的特征如何提供包括多媒体数据的更有效解码的优势。
一方面包括处理所接收编码多媒体数据的方法。方法包括确定来自所接收比特流的在编码多媒体数据的第一缓冲器中可用的比特的数目。方法进一步包括,如果读取固定长度代码字,那么从比特流读取处理器对齐的数据(processor-aligned data)至第一缓冲器。固定长度代码字包含确定的可用比特和与处理器对齐的数据的一部分相关的比特。方法进一步包括,如果读取可变长度代码字,那么从比特流读取处理器未对齐的数据(processor-unaligned data)至第一缓冲器。可变长度代码字包含可用比特中的至少一些。
一方面包括用于具体化一处理多媒体数据的方法的计算机可读媒体。方法包括确定来自所接收比特流的在编码多媒体数据的第一缓冲器中可用的比特的数目。方法进一步包括,如果读取固定长度代码字,那么从比特流读取处理器对齐的数据至第一缓冲器。固定长度代码字包含确定的可用比特和与处理器对齐的数据的一部分相关的比特。方法进一步包括,如果读取可变长度代码字,那么从比特流读取处理器未对齐的数据至第一缓冲器。可变长度代码字包含可用比特中的至少一些。
一方面包括用于处理所接收编码多媒体数据的设备。设备包括用于确定来自所接收比特流的在编码多媒体数据的第一缓冲器中可用的比特的数目的装置。设备进一步包括读取代码字的装置。如果读取固定长度代码字,那么用于读取的装置从比特流读取处理器对齐的数据至第一缓冲器。固定代码字包含确定的可用比特和与处理器对齐的数据的一部分相关的比特。如果读取可变长度代码字,那么用于读取的装置从比特流读取处理器未对齐的数据至第一缓冲器。可变长度代码字包含可用比特中的至少一些。
一方面包括用于处理多媒体数据的设备。设备包括确定器,其经配置以确定来自所接收比特流的在编码多媒体数据的第一缓冲器中可用的比特的数目。设备进一步包含读取器,其经配置以,如果读取固定长度代码字,那么从比特流读取处理器对齐的数据至第一缓冲器。固定长度代码字包含确定的可用比特和与处理器对齐的数据的一部分相关的比特。读取器进一步经配置以,如果读取可变长度代码字,那么从比特流读取处理器未对齐的数据至第一缓冲器。可变长度代码字包含可用比特中的至少一些。
一方面包括处理多媒体数据的处理器。处理器经配置以确定来自所接收比特流的在编码多媒体数据的第一缓冲器中可用的比特的数目。处理器进一步经配置以,如果读取固定长度代码字,那么从比特流读取处理器对齐的数据至第一缓冲器。固定长度代码字包含确定的可用比特和与处理器对齐的数据的一部分相关的比特。处理器进一步经配置以,如果读取可变长度代码字,那么从比特流读取处理器未对齐的数据至第一缓冲器。可变长度代码字包含可用比特中的至少一些。
一方面包括解码多媒体数据流中的可变长度代码的方法。方法包括读取多媒体数据流的一部分中的一第一数目的比特。方法进一步包括至少部分基于第一数目的比特来识别第一数据结构中的第一解码数据。方法进一步包括确定第一解码数据是否指示包含解码数据的第二数据结构。方法进一步包括至少部分基于所述第一和第二解码数据中的一者来解码多媒体数据。
一方面包括用于解码多媒体数据流中的可变长度代码的设备。设备包括用于读取多媒体数据流的一部分中的第一数目的比特的装置。设备进一步包含用于至少部分基于第一数目的比特来识别第一数据结构中的第一解码数据的装置。设备进一步包含用于确定第一解码数据是否指示包含解码数据的第二数据结构的装置。设备进一步包含用于至少部分基于第一和第二解码数据中的一者来解码多媒体数据的装置。
一方面包括用于具体化一处理多媒体数据的方法的计算机可读媒体。方法包括读取多媒体数据流的一部分中的第一数目的比特。方法进一步包括至少部分基于第一数目的比特来识别第一数据结构中的第一解码数据。方法进一步包括确定第一解码数据是否指示包含解码数据的第二数据结构。方法进一步包括至少部分基于第一和第二解码数据中的一者来解码多媒体数据。
一方面包括用于处理多媒体数据的设备。设备包括读取器,其经配置以读取多媒体数据流的一部分中的第一数目的比特。设备进一步包含识别器,其经配置以至少部分基于第一数目的比特来识别第一数据结构中的第一解码数据。设备进一步包含确定器,其经配置以确定第一解码数据是否指示包含解码数据的第二数据结构。设备进一步包含解码器,其经配置以至少部分基于第一和第二解码数据中的一者来解码多媒体数据。
一方面包括用于处理多媒体数据的处理器。处理器经配置以读取多媒体数据流的一部分中的第一数目的比特。处理器进一步经配置以至少部分基于第一数目的比特来识别第一数据结构中的第一解码数据。处理器进一步经配置以确定第一解码数据是否指示包含解码数据的第二数据结构。处理器进一步经配置以至少部分基于第一和第二解码数据中的一者来解码多媒体数据。
一方面包括处理所接收已编码多媒体数据的方法,所述方法包含:确定来自所接收比特流的已编码多媒体数据在第一缓冲器中的可用比特的数目;如果要读取固定长度代码字并且所述可用比特的数目小于所请求的数目,那么:依序地,将所确定的可用比特拷贝至第二缓冲器,并将处理器对齐的数据从所述比特流读取至所述第一缓冲器,将所请求比特的剩余部分从所述第一缓冲器拷贝至所述第二缓冲器,以及,更新指示所述第一缓冲器中的可用比特的数据,其中所述固定长度代码字包含所述确定的可用比特和所请求比特的剩余部分;和如果要读取包含有至少一些所述可用比特的可变长度代码字并且所述可用比特的数目小于所请求的数目,那么:依序地,将处理器未对齐的数据从所述比特流读取至所述第一缓冲器,将所请求数目的比特拷贝至所述第二缓冲器,解码所述可变长度代码字,从所述第一缓冲器刷新已解码比特,以及,检查和校正所述第一缓冲器。
一方面包括用于处理所接收已编码多媒体数据的设备,所述设备包含:用于确定来自所接收比特流的已编码多媒体数据在第一缓冲器中的可用比特的数目的装置;和用于读取代码字的装置,其中如果要读取固定长度代码字并且所述可用比特的数目小于所请求的数目,那么所述用于读取代码字的装置:依序地,将所确定的可用比特拷贝至第二缓冲器,将处理器对齐的数据从所述比特流读取至所述第一缓冲器,将所请求比特的剩余部分从所述第一缓冲器拷贝至所述第二缓冲器,以及,更新指示所述第一缓冲器中的可用比特的数据,其中所述固定长度代码字包含所述确定的可用比特和所请求比特的剩余部分,且其中如果要读取包含有至少一些所述可用比特的可变长度代码字并且所述可用比特的数目小于所请求的数目,所述用于读取代码字的装置:依序地,将处理器未对齐的数据从所述比特流读取至所述第一缓冲器,将所请求数目的比特拷贝至所述第二缓冲器,解码所述可变长度代码字,从所述第一缓冲器刷新已解码比特,以及,检查和校正所述第一缓冲器。
附图说明
图1是说明根据一方面的多媒体通信系统的示意方框图。
图2是说明解码经编码多媒体数据(诸如在图1中所说明的系统中传输和接收的数据)的比特流的方法的一个实例的流程图。
图3A和3B是图解说明在存储缓冲器中处理编码多媒体数据的位(bitwise)流的方法的示意方框图。
图4A是说明通过图3A和3B中图解说明的缓冲器来处理比特流的方法的一个实例的流程图。
图4B是说明通过图3A和3B中图解说明的缓冲器来处理比特流的方法的一部分的一个实例的流程图。
图4C是进一步说明部分说明于图4B中的处理比特流的方法的一部分的一个实例的流程图,其用于处理可变长度代码字。
图4D是更详细地进一步说明图4C中所说明的方法的一部分的流程图。
图5是说明处理编码成可变长度代码的多媒体数据元素的方法的一方面的流程图,所述多媒体数据元素来自编码多媒体数据(诸如在图1中所说明的系统中传输和接收的数据)的比特流。
图6是说明诸如用于图5所说明方法中的数据结构的一个实例的示意方框图。
图7是说明处理来自编码多媒体数据(诸如在图1中所说明的系统中传输和接收的数据)的比特流的可变长度代码的改进方法的一方面的流程图。
图8说明根据图4A至4D所说明的方法处理所接收编码多媒体数据的设备的实例。
图9说明根据图5所说明的方法处理所接收编码多媒体数据的设备的另一实例。
图10说明根据图4A至4D所说明的方法处理所接收编码多媒体数据的设备的另一实例。
图11说明根据图5所说明的方法处理所接收编码多媒体数据的设备的另一实例。
具体实施方式
以下详细描述是针对所揭示系统和方法的某些具体实例。然而,系统和方法可具体化为如权利要求所定义和包括的多种不同方式。在此描述中,对附图进行参考,其中贯穿所有图示相同零件由相同数字表示。
某些方面包括对多媒体传输系统中的解码器的改进。多媒体数据包括可包括运动视频、音频、静止图像或任何其它适当类型的音频-可视数据中的一个或一个以上者。一个方面包含通过以处理器对齐(例如,字对齐)方式维持和读取数据来分析来自多媒体数据的位流的固定和可变长度代码的方法。另一方面包含使用多个等级的解码表以加速解码表查找来解码可变长度代码(尤其在自此种可变长度代码接收时)的方法。
图1是说明根据一方面的多媒体通信系统100的示意方框图。系统100包括通过网络140与解码器装置150通信的编码器装置110。在一个实例中,编码器装置从外部源102接收多媒体信号并对所述信号进行编码以在网络140上传输。
在此实例中,编码器装置110包含耦合至存储器114和收发机116的处理器112。处理器112编码来自多媒体数据源的数据,并将其提供给收发机116以用于在网络140上通信。
在此实例中,解码器装置150包含耦合至存储器154的处理器152和收发机156。处理器152可包括通用处理器或数字信号处理器中的一个或一个以上者。存储器154可包括固态或基于磁盘的存储装置中的一个或一个以上者。收发机156经配置以在网络140上接收多媒体数据,并将其提供至处理器152用于解码。在一个实例中,收发机156包括无线收发机。
图2是说明解码经编码多媒体数据(诸如在系统100中传输和接收的数据)的比特流的方法的一个实例的流程图。在一个实例中,数据的比特流包含视频和音频数据中的一个或一个以上者。比特流可以诸如由移动图片专家组(MPEG)规定的诸如MPEG-2或MPEG-4等标准视频编解码器的格式来编码。比特流也可以H.264视频编码标准或任何其它视频编码标准来编码。
方法开始于方框132处,其中由收发机156接收编码的多媒体比特流(例如,作为一数据比特序列而接收的多媒体数据流)。在一个实例中,收发机156将流作为数据字节或字存储于存储器154中,例如以一或多个序列存储于存储器中。接着在方框134处,处理器152执行错误检测和校正。应注意,所接收的数据可被处理而无需首先存储于存储器154中。
移至方框136,处理器136分析比特流以识别和解码数据元素。图4B至图4D说明根据一个实例对来自数据流的可变长度和固定长度代码字的分析。在此实例中,分析可变长度代码字包含解码那些代码字。图5至图7说明根据一个方面分析和解码可变长度代码的方法。接着在方框138处,处理器152基于所分析数据来解码多媒体数据。
应认识到,视实施例而定,本文所描述的任何方法中的某些动作或事件可以不同序列执行、可被添加、合并或完全被省略(例如,并非所有所描述动作或事件都是实践本方法所必需的)。此外,在某些实施例中,(例如)可通过多线程处理、中断处理或多个处理器来同时(而非依序地)执行动作或事件。
图3A和3B是图解说明在缓冲器中处理编码多媒体数据的比特流的方法的示意方框图。图3A说明缓冲器200,其包括由当前读取位置指示符或指针204识别的未读部分202。在一个实例中,缓冲器200是存储器154的一部分。在另一实例中,缓冲器200可为处理器152的寄存器。缓冲器200存储来自正由处理器152解码的多媒体数据的比特流的数据的部分。
多媒体数据的比特流被表示为根据处理器152的字长而对齐的一序列存储器位置。在此实例中,处理器字为32比特。因此,在此种实例中,多媒体数据的比特流作为4字节字的一或多个序列存储于存储器中。
缓冲器200提供工作存储空间,在其中可操纵当前被解码的多媒体数据的字长(wordsized)(例如,32比特)部分。如以上参考图2的方框136所讨论,解码多媒体数据包括分析和解码固定长度和可变长度的代码字。如果解码固定长度代码字,那么从缓冲器200读取或拷贝若干比特(基于码的长度)至第二输出或工作缓冲器中,例如,所拷贝比特数是代码字中的比特数(如果所有代码字比特都在缓冲器200中可用)。接着更新位置指针204以反映缓冲器200中未读比特的数目和位置。
如果缓冲器200中可用的比特数不足以提供固定长度代码字的所有比特,那么从多媒体数据的比特流读取额外数据。图3B说明在从比特流读取额外比特之后的图3A的缓冲器200。在所说明实例中,缓冲器200的未读部分202(如图3A中所说明)被加载或拷贝至输出缓冲器206。另外,从比特流读取额外编码多媒体数据的32比特字至缓冲器200,从而覆盖先前数据。在一个实例中,可重新排序编码多媒体数据的“字节顺序(endianess)”以匹配处理器的优选字节顺序。举例来说,如果多媒体数据的比特流是大端字节(big-endian)格式,那么可将缓冲器中的字节重新排序为小端字节(little-endian)格式,或者如果多媒体数据的比特流是小端字节格式,那么可将缓冲器中的字节重新排序为大端字节格式。
根据经验已发现,读取与比特流中的数据对齐相对应的32比特字实质上使性能改进了20-30%。将新数据的对应于固定长度代码字的剩余部分的部分212加载或拷贝至输出缓冲器206中。将当前读取位置更新至读取位置214,留下缓冲器中未读的部分216且可用于分析出额外代码字。
对于可变长度代码字的处理较为复杂,因为直到对代码字进行解码时才知道码的长度。因此,如果读取可变长度字,就将代码字数据拷贝至输出缓冲器206,但其也保留于缓冲器中以稍后在所解码的代码字短于所请求大小的情况下受到处理。如果所解码的代码字少于拷贝至输出缓冲器206中的比特的数量,那么仍需要从比特流检索和处理那些过量比特。然而,因为经请求用于解码可变长度代码字的比特保留于缓冲器200中,如果保留于缓冲器200中的比特不足以用于处理可变长度代码字,那么缓冲器200缺少足够的空间来从比特流读取完整的32比特的对齐数据。
在一个实例中,可变长度代码字小于或等于缓冲器200的大小的一半,例如16比特。在一个此种实例中,如果请求额外可变长度代码字比特,那么从流中读取16个比特数据。缓冲器的未读部分202(如图3A中所说明)接着移位16个比特至左侧(朝向缓冲器200的最高有效位(MSB)),且将来自流的16比特新数据存储于缓冲器200的最低有效位(LSB)中。
因为在处理可变长度代码字的情况下将较少比特(例如,16比特)读取至缓冲器中,所以存在足够的空间来满足对16比特的请求。然而,从比特流到缓冲器的16比特传输使比特流不对齐而不能用于未来的读取。因此,可调整缓冲器200的内容,以在从多媒体数据流分析可变长度代码之后使比特流重新对齐。在一个实施例中,在解码可变长度代码并确定其长度之后,更新缓冲器200的当前读取位置指针以反映所解码的可变长度代码的比特数。接着调整缓冲器200的内容以使比特流重新对齐。举例来说,如果少于16比特保留于缓冲器200中,那么可从比特流将额外16比特数据移位至缓冲器200以使比特流重新对齐。如果多于16比特保留于缓冲器200中,那么可将所述比特中的16比特返回至比特流,且相应移位缓冲器200和其当前读取位置指针。
图4A是说明通过图3A和3B中图解说明的缓冲器来处理比特流的方法的一个实例的流程图。方法开始于方框290处,其中处理器152确定比特流数据的读取缓冲器(例如,图3A中所说明的缓冲器200)中可用的比特数。接着在决策方框292处,如果读取可变长度代码字,那么方法进入方框300,其中从多媒体数据的比特流读取可变长度代码。或者,在方框292处,如果读取固定长度代码,那么方法进入方框330,其中从比特流读取固定长度代码。分别参看图4B和4C较详细地讨论与方框300和330相关的方法的某些实施例。
图4B是说明通过参看图3A和3B所讨论的缓冲器来处理比特流的方法的一个实例的流程图。具体来说,图4B说明图4A的方框300的方法的部分,其根据一个实例处理来自编码多媒体比特流的固定长度代码。方法开始于方框302处,其中处理器152从编码多媒体比特流请求若干固定长度代码比特。在一个实例中,处理器152执行经配置以处理或分析比特流的规定功能或模块。移至方框304,处理器152确定比特流数据的读取缓冲器(例如,图3A中所说明的缓冲器200)中可用的比特数。接着在决策方框306处,如果可用比特数不小于所请求的比特数,那么方法300进入方框308,其中处理器152将所请求数目的比特拷贝至输出缓冲器,诸如图3B中所说明的输出缓冲器206。移至方框310,处理器152更新缓冲器指针或指示符以反映所请求数目的比特已从读取缓冲器去除,且因此指示读取缓冲器200中未处理比特的数目。方法300从方框310进入结束状态,其中可对于多媒体数据流中的下一数据集重复所述过程。
返回至决策方框306,如果可用比特数小于所请求的比特数,那么方法300进入方框314,其中可用数目的比特经加载或拷贝至图3B的输出缓冲器206中。接着在方框316处,处理器152将来自比特流的数据对齐地加载或读取至图3B的读取缓冲器200中。已发现对(例如)32比特处理器字的数据的对齐读取实质上改进了分析来自多媒体数据流的固定长度代码的性能。在一个实例中,处理器读取数据以便将读取指针(例如,多媒体流中未分析数据的起始)维持于在处理器字(例如,32比特字边界)上对齐。在一个实例中,流也可以处理器或计算系统所确定的一或多个方式对齐,例如基于系统或处理器对齐,包括那些基于数据地址计算或总线大小的对齐。举例来说,对齐数据可包括32比特字的起始地址可被4除尽的数据。
移至方框318,处理器152从读取缓冲器(例如,图3B的读取缓冲器200)拷贝或加载所请求比特的剩余部分至输出缓冲器(例如,图3B的输出缓冲器206)。接着,方法300进入至方框310,如上所讨论,且更新缓冲器指针或指示符(例如,图3B的最终读取位置214)以反映所请求数目的比特已从缓冲器去除,且因此指示缓冲器200中未处理比特的数目。方法300从方框310进入至结束状态,其中可对于多媒体数据流中的下一数据集重复所述过程。
图4C是进一步说明用于处理可变长度代码字的方法320的一个实例的流程图。方法320开始于方框322处,其中处理器152从编码多媒体比特流请求若干可变长度代码比特。在一个实例中,处理器152执行经配置以处理或分析比特流的规定功能或模块。在方框324处,处理器152确定读取缓冲器(例如,图3B的缓冲器200)中可用的比特数。接着在决策方框326处,如果处理器152确定有足够比特可用于提供所请求数目的可变长度代码字比特,那么方法进入方框328,其中所请求数目的比特被拷贝至输出缓冲器。在方框326处,如果所请求数目的比特不可用,那么方法320进入方框330,其中从多媒体数据的比特流读取16比特数据至缓冲器(例如,缓冲器200)中。在一个实例中,16比特是导致未处理多媒体流数据的起始(未读)位置对于处理器152未对齐的量。在其它实施例中,可读取根据处理器或系统结构而变的不同数目的比特,其小于全部缓冲器大小(例如,小于32比特)。
进入方框328,所请求数目的比特被拷贝至输出缓冲器。接着在方框340处,处理器152使用所请求的比特解码可变长度代码。解码可变长度代码包括确定可变长度代码字的长度(且,因此,确定从构成可变长度代码字的流读取的数据比特数)。
移至方框342,从读取缓冲器200刷新对应于可变长度代码字的长度的数目的数据比特。在一个实例中,此包括更新读取指针(例如)至由图3A的读取指针204或图3B的214所说明的读取位置。接着在方框344处,如果在方框330处读取了额外比特(其使多媒体数据流不对齐),那么处理器152校正缓冲器的不对齐。举例来说,如图4D中进一步详细说明,如果少于16比特被保留于缓冲器200中,那么可将来自比特流的额外16比特数据移位至缓冲器200中以使比特流重新对齐。如果多于16比特被保留于缓冲器200中,那么可将所述比特中的16比特返回至比特流,且相应地移位缓冲器200和其当前读取位置指针。
图4D是更详细地进一步说明图4C的方框344的操作的流程图。检查和校正344开始于方框354处,其中处理器152确定读取缓冲器200是否在方框330处未对齐。如果不是未对齐,那么功能344结束。如果缓冲器是未对齐,那么功能进入方框356,其中处理器152确定读取缓冲器(例如,缓冲器200)是否有用以存储来自多媒体流的额外数据的容量以便使流对齐。举例来说,如果少于16比特被保留于缓冲器200中,那么32比特缓冲器200具有用以存储额外16比特的容量。因此,如果缓冲器具有容量,那么功能344进入方框358,其中(例如)处理器152从比特流读取额外16比特数据,并将此数据移位至缓冲器200中以使多媒体数据流重新对齐。如果多于16比特被保留于缓冲器200中,那么可将所述比特中的16比特返回至比特流,且相应地移位缓冲器200和其当前读取位置指针。如果在决策方框356处,缓冲器200缺少额外16比特的容量,那么功能344进入方框360,其中来自读取缓冲器200的16比特数据被推回(例如,加载或拷贝)至多媒体数据流的起始,且移位出缓冲器。并非将数据实际移回所述流,在从多媒体流进行未对齐读取时,处理器152可维持指向多媒体流的读取位置的独立的对齐和未对齐的数据指针以允许将数据“推回”,从而包含仅将未对齐指针设置回对齐指针位置而不需将数据从多媒体数据流移动或去除。
现在,转至用于处理可变长度编码数据的改进方法的方法,所述方法描述如下。图5是说明处理多媒体数据元素的方法400的一方面的流程图,多媒体数据元素编码于来自编码的多媒体数据(诸如在图1中所说明的系统中传输和接收的数据)的比特流的可变长度代码。方法400开始于方框402,其中处理器152从多媒体数据流读取若干可变长度代码数据比特。此数据包括可变长度代码的至少第一部分。在一个实例中,比特数是8,且表包括256个条目。然而,在其它实施例中,可读取不同数目的比特。接着在方框404处,处理器基于从流读取的比特的第一集合在第一解码表中查找条目。如果所读取的可变长度代码字短于所读取比特的第一集合中的比特数(例如,小于或等于8比特),那么所读取数据除了多媒体数据流中的下一数据项的部分以外还将包括整个代码字,且解码表条目可用以解码代码字。如果可变长度代码长于所读取比特的第一集合的比特数(例如,大于8比特),那么解码表条目可用以部分解码代码字。因此,移至决策方框406,处理器152确定条目是否包括对用于进一步解码代码字的第二表的参考。如果表并不包括对第二表的参考,那么代码字的长度小于或等于读取数据的长度。在此状况下,方法400可可选地进入方框410,其中基于在第一表的条目中的解码数据来解码可变长度代码字。因此,处理较少数目个比特,且可考虑较短的查找表以解码可变长度代码字,从而产生处理速度的显著改进。
返回至方框406,如果第一解码表中的条目包括对第二表的参考,那么方法400可可选地进入方框420,其中从多媒体数据流读取第二数目的比特,因为可变长度代码字长于所读取比特的第一集合,例如长度上大于8比特。接着在方框422处,处理器152基于所读取的第二数目的比特来识别第二参考解码表中的条目。在一个实例中,所读取比特的第二数目是8,且第二参考表包括256个条目。进入至方框410,处理器使用第二解码表的条目中的解码数据来解码可变长度代码。如果使用第二解码表,那么来自第一和第二解码表条目的解码数据可用以解码可变长度代码字。在其他实施例中,可使用额外查找表,且因此如果代码字的长度超过前两个表中比特的数目,那么第二表将参考第三表,如此类推。
在一个实例中,如果正从多媒体数据流读取可变长度代码,那么数据保留在流中直至代码字被解码且确定其长度。因此,接着在方框412处,处理器412刷新来自多媒体数据流的由一个或一个以上解码表条目规定的数目的比特。在一个实例中,方法400包括使用参考图4A至4D而讨论的分析比特流的方法300,以从比特流读取可变长度代码数据。
方法400的实施例可应用于解码多媒体数据元素,诸如视频数据流中的亮度(luma)或色度数据。实施例可用于解码包括流中的数据元素的多媒体数据元素,其包含音频、视频、文本、元数据、图像或编码成可变长度代码的任何其它任何适当类型的数据中的一个或一个以上者。
图6是说明诸如用于方法400中的数据结构的一个实例的示意方框图。在一个实例中,第一解码表442包括众多条目444。表442可为可根据任何适当方法(包括所属领域中已知的那些方法)作为查找表加以存取的条目的阵列。每一条目444可存储用于解码代码字的一个或一个以上数据、指示代码字长度的数据、或指出或参考第二等级解码表446的数据。用于解码代码字的数据可包括对另一数据结构的指针或参考(未图示),所述另一数据结构包括用于解码代码字的其它数据。视可变长度代码而定,表442可指出或参考一个或一个以上第二等级解码表446。视可变长度代码而定,第二等级解码表446可包括对第三等级解码表的另一参考,第三等级解码表的构造又类似于第二等级解码表446。每一第二等级表包括条目448,其可包括用于解码代码字的一个或一个以上数据、指示代码字长度的数据、或用于存取第三等级表的指针或参考。因此,如以上关于图5所描述,方法400在第一等级解码表442中查找固定数目的代码字比特。如果代码字小于代码字比特的数目,那么使用第一等级表442中的数据来解码代码字。如果代码字较长,如第一等级表中的条目444所指示,那么查找来自第二等级解码表446(且可能是第三或第四(等)等级表)的额外解码数据并将其用于解码所述较长代码字。
图7是说明处理来自编码多媒体数据(诸如在图1中所说明的系统中传输和接收的数据)的比特流的可变长度代码的改进方法500的一个实例的流程图。在此实例中,代码包括前缀和后缀。方法500开始于方框502,其中处理器152确定后缀长度是否等于零。如果后缀长度等于零,那么方法500进入方框504,其中处理器152确定前缀长度是否小于或等于预定值(例如,14)。如果在方框504处,前缀小于或等于14,那么方法500结束且可针对多媒体数据流中的下一数据集重复所述过程。如果在方框504处,确定前缀不小于14,那么方法500进入决策方框506,其中将前缀与预定值(例如,14)进行比较。如果前缀等于此值,那么方法500进入方框510,其中读取4个比特。如果前缀不等于预定值14,那么方法500进入方框512,其中读取12个比特。接着在方框514处,将与可变长度代码的处理相关联的等级码增加15,且其中可针对多媒体数据流中的下一数据集重复所述过程。
返回至方框502,如果后缀长度不等于零,那么方法500进入决策方框520,其中处理器152确定前缀是否小于或等于预定值(例如,14)。如果前缀小于或等于14,那么处理器152读取后缀比特,例如由后缀长度规定的数目的比特。如果前缀大于14,那么方法500移至方框524,其中处理器152从多媒体数据流读取12个比特。可针对多媒体数据流中的下一数据集重复所述过程。
在一个实例中,用于处理所接收已编码多媒体数据的设备可包含用于确定已编码多媒体数据的第一缓冲器中来自所接收比特流的可用比特的数目的装置。设备进一步包含用于读取代码字的装置。如果读取固定长度代码字,那么用于读取的装置将处理器对齐的数据从比特流读取至第一缓冲器中。固定代码字包含所确定的可用比特和与处理器对齐的数据的一部分相关联的比特。如果读取可变长度代码字,那么用于读取的装置将处理器未对齐的数据从比特流读取至第一缓冲器中。可变长度代码字包含至少一些可用比特。图8说明用于处理所接收已编码多媒体数据的解码器150的实例。用于确定的装置可包含确定模块802。用于读取代码字的装置可包含代码字读取模块804。图8中所说明的解码器150的实例可经配置以执行参看图4A至4D所讨论的方法。
在一个实例中,用于解码多媒体数据流中的可变长度代码的设备包含用于读取多媒体数据流的一部分中的第一数目的比特的装置。设备进一步包含用于至少部分基于第一数目的比特来识别第一数据结构中的第一解码数据的装置。设备进一步包含用于确定第一解码数据是否指示包含解码数据的第二数据结构的装置。设备进一步包括用于至少部分基于第一与第二解码数据中的一者来解码多媒体数据的装置。图9说明用于解码多媒体数据流中的可变长度代码的解码器150的实例。用于读取的装置可包含读取模块902。用于识别的装置可包含识别模块904。用于确定的装置可包含确定模块906。用于解码的装置可包含解码模块908。图9中所说明的解码器150的实例可经配置以执行参看图5所讨论的方法。
图10说明解码器150的另一实例。图10中所说明的解码器150的实例可经配置以执行参看图4A至4D所讨论的方法。图10中所说明的解码器150的实例包含确定器1002,其经配置以确定来自所接收比特流的在编码多媒体数据的第一缓冲器中可用的比特的数目。解码器150进一步包含读取器1004,其经配置成:如果读取固定长度代码字,那么从比特流将处理器对齐的数据读取至第一缓冲器中。固定长度代码字包含所确定的可用比特和与处理器对齐的数据的一部分相关的比特。读取器1004进一步经配置成:如果读取可变长度代码字,那么从比特流将处理器未对齐的数据读取至第一缓冲器中。可变长度代码字包含可用比特中的至少一些。解码器150可进一步包含拷贝器1006,其经配置成:如果读取固定长度代码字,那么在读取处理器对齐的数据之前将确定的可用比特拷贝至第二缓冲器,且接着将与来自第一缓冲器的处理器对齐的数据的部分相关的比特拷贝至第二缓冲器。解码器可进一步包括代码字解码器1008,其经配置以解码可变长度代码字。解码器150可进一步包含:更新器1010,其经配置以至少部分基于所解码的可变长度代码字的长度来更新第一缓冲器中可用的所述数目的比特;和调整器1012,其经配置以调整第一缓冲器的内容以对齐比特流中的数据。在一方面,解码器150进一步包括:识别器1014,其经配置以至少部分基于第一缓冲器中的数据来识别第一数据结构中的第一解码数据;和第二确定器1016,其经配置以确定第一解码数据是否指示包含解码数据的第二数据结构。
图11说明解码器150的另一实例。图11中所说明的解码器150的实例可经配置以执行参看图5所讨论的方法。图11中所说明的解码器150的实例包含读取器1102,其经配置以读取多媒体数据流的一部分中的第一数目的比特。解码器150进一步包含识别器1104,其经配置以至少部分基于第一数目的比特来识别第一数据结构中的第一解码数据。解码器150进一步包含确定器1106,其经配置以确定第一解码数据是否指示包含解码数据的第二数据结构。解码器150进一步包含解码器1108,其经配置以至少部分基于第一和第二解码数据中的一者来解码多媒体数据。在一方面,解码器150进一步包含:第二读取器1110,其经配置以读取多媒体数据流的第二部分中的第二数目的比特;和第二识别器1112,其经配置以至少部分基于多媒体数据的第二部分来识别第二数据结构中的第二解码数据。
所属领域的技术人员将认识到,结合本文所揭示的实施例来描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为清晰说明硬件与软件的此可互换性,各种说明性组件、区块、模块、电路和步骤已在上文大体关于其功能性而被描述。此种功能性经实施为硬件还是软件取决于特殊应用和强加于整个系统上的设计约束。所属领域的技术人员可对于每一特殊应用以不同的方式来实施所述功能性,但这些实施决策不应被解释为导致脱离本发明的范围。
结合本文所揭示的实施例来描述的各种说明性逻辑块、模块和电路可由处理器152实施或执行,或可通过通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件、或经设计以执行本文所述功能的任何组合来实施或执行。通用处理器可为微处理器,但在替代实施例中,处理器可为任何常规处理器、控制器、微处理器或状态机。处理器也可被实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器、或任何其它此种配置。
结合本文所揭示的实施例来描述的方法或算法的步骤可直接具体化于硬件中、由处理器执行的软件模块中、或两者的组合中。软件模块可常驻于RAM存储器、闪速存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可换式磁盘、CD-ROM或所属领域中已知的任何其它形式的存储媒体。示范性存储媒体耦合至处理器,使得处理器可从存储媒体读取信息并写入信息至存储媒体中。在替代实施例中,存储媒体可与处理器成一体。处理器和存储媒体可驻存于ASIC中。ASIC可驻存于用户终端中。在替代实施例中,处理器和存储媒体可作为离散组件驻存于用户终端中。
此外,应注意图1和图8至图10的解码器装置150是简化实例。因此,可在不影响如上所述的解码器的操作的情况下添加额外元件。而且,可在不影响如上所述的解码器的操作的情况下组合和/或重新布置图1、图8、图9、图10和/或图11的解码器装置150的元件中的一者或其组合。
因此,提供所揭示实施例的先前描述以使所属领域的技术人员能够制造或使用本发明。所属领域的技术人员将易于了解这些实施例的各种修改,且本文所定义的一般原理可适用于其它实施例。因此,本发明并不希望限于本文所展示的实施例,而是应符合与本文所揭示的原理和新颖特征一致的最广泛范围。
虽然以上详细描述已展示、描述和指出本发明的适用于各种实施例的新颖特征,应了解可在不脱离本发明的精神的情况下由所属领域的技术人员进行所说明装置或过程的形式或细节的各种省略、替代和改变。如将认识到,本发明可具体化于并未提供本文所陈述的全部特征和益处的形式内,因为一些特征可与其它特征分开使用或实行。本发明的范围由随附权利要求而非由以上描述指示。属于权利要求的均等物的含义和范围内的所有改变应包含在权利要求的范围内。
Claims (13)
1.一种处理所接收已编码多媒体数据的方法,所述方法包含:
确定来自所接收比特流的已编码多媒体数据在第一缓冲器中的可用比特的数目;
如果要读取固定长度代码字并且所述可用比特的数目小于所请求的数目,那么:
依序地,将所确定的可用比特拷贝至第二缓冲器,并将处理器对齐的数据从所述比特流读取至所述第一缓冲器,将所请求比特的剩余部分从所述第一缓冲器拷贝至所述第二缓冲器,以及,更新指示所述第一缓冲器中的可用比特的数据,其中所述固定长度代码字包含所述确定的可用比特和所请求比特的剩余部分;和
如果要读取包含有至少一些所述可用比特的可变长度代码字并且所述可用比特的数目小于所请求的数目,那么:
依序地,将处理器未对齐的数据从所述比特流读取至所述第一缓冲器,将所请求数目的比特拷贝至所述第二缓冲器,解码所述可变长度代码字,从所述第一缓冲器刷新已解码比特,以及,检查和校正所述第一缓冲器。
2.根据权利要求1所述的方法,其中读取处理器未对齐的数据包含读取16个比特,且读取处理器对齐的数据包含读取32个比特。
3.根据权利要求1所述的方法,其中解码所述可变长度代码字包含:
基于所述第一缓冲器中的数据来识别第一数据结构中的第一解码数据;和
确定所述第一解码数据是否指示包含解码数据的第二数据结构。
4.根据权利要求1所述的方法,其中当所述第一缓冲器有容量存储来自多媒体流的额外数据时,检查和校正所述第一缓冲器包含从所述比特流读取处理器未对齐的数据。
5.根据权利要求1所述的方法,其中当所述第一缓冲器没有容量存储来自多媒体流的额外数据时,检查和校正所述第一缓冲器包含将所述处理器未对齐的数据返回所述比特流。
6.根据权利要求1所述的方法,其中从已编码多媒体数据的所述比特流读取处理器对齐的数据包含对字内的数据字节重新排序。
7.根据权利要求6所述的方法,其中对字内的数据字节重新排序包含将数据从大端字节格式重新排序为小端字节格式。
8.一种用于处理所接收已编码多媒体数据的设备,所述设备包含:
用于确定来自所接收比特流的已编码多媒体数据在第一缓冲器中的可用比特的数目的装置;和
用于读取代码字的装置,其中如果要读取固定长度代码字并且所述可用比特的数目小于所请求的数目,那么所述用于读取代码字的装置:依序地,将所确定的可用比特拷贝至第二缓冲器,将处理器对齐的数据从所述比特流读取至所述第一缓冲器,将所请求比特的剩余部分从所述第一缓冲器拷贝至所述第二缓冲器,以及,更新指示所述第一缓冲器中的可用比特的数据,其中所述固定长度代码字包含所述确定的可用比特和所请求比特的剩余部分,且
其中如果要读取包含有至少一些所述可用比特的可变长度代码字并且所述可用比特的数目小于所请求的数目,所述用于读取代码字的装置:依序地,将处理器未对齐的数据从所述比特流读取至所述第一缓冲器,将所请求数目的比特拷贝至所述第二缓冲器,解码所述可变长度代码字,从所述第一缓冲器刷新已解码比特,以及,检查和校正所述第一缓冲器。
9.根据权利要求8所述的设备,其中所述用于读取代码字的装置包含用于读取处理器未对齐的数据的装置和用于读取处理器对齐的数据的装置,以及,其中,所述用于读取处理器未对齐的数据的装置包含用于读取16比特的装置,及所述用于读取处理器对齐的数据的装置包含用于读取32比特的装置。
10.根据权利要求8所述的设备,其中解码所述可变长度代码字包含:
基于所述第一缓冲器中的数据来识别第一数据结构中的第一解码数据;和
确定所述第一解码数据是否指示包含解码数据的第二数据结构。
11.根据权利要求8所述的设备,其中检查和校正所述第一缓冲器包含:当所述第一缓冲器有容量存储来自多媒体流的额外数据时,从所述比特流读取处理器未对齐的数据。
12.根据权利要求8所述的设备,其中检查和校正所述第一缓冲器包含:当所述第一缓冲器没有容量存储来自多媒体流的额外数据时,使所述处理器未对齐的数据返回所述比特流。
13.根据权利要求8所述的设备,其中所述用于读取代码字的装置包含用于读取处理器对齐的数据的装置,以及所述用于读取处理器对齐的数据的装置包含对字内的数据字节重新排序的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US68119405P | 2005-05-13 | 2005-05-13 | |
US60/681,194 | 2005-05-13 | ||
US78945506P | 2006-04-04 | 2006-04-04 | |
US60/789,455 | 2006-04-04 | ||
PCT/US2006/018849 WO2006124850A2 (en) | 2005-05-13 | 2006-05-15 | Method and apparatus for improved multimedia decoder |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910261324XA Division CN101873499B (zh) | 2005-05-13 | 2006-05-15 | 用于改进的多媒体解码器的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101213754A CN101213754A (zh) | 2008-07-02 |
CN101213754B true CN101213754B (zh) | 2013-11-13 |
Family
ID=37432015
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800244758A Expired - Fee Related CN101213754B (zh) | 2005-05-13 | 2006-05-15 | 用于改进的多媒体解码器的方法和设备 |
CN200910261324XA Expired - Fee Related CN101873499B (zh) | 2005-05-13 | 2006-05-15 | 用于改进的多媒体解码器的方法和设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910261324XA Expired - Fee Related CN101873499B (zh) | 2005-05-13 | 2006-05-15 | 用于改进的多媒体解码器的方法和设备 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7268708B2 (zh) |
EP (2) | EP1880471A4 (zh) |
JP (3) | JP5209467B2 (zh) |
KR (1) | KR100944923B1 (zh) |
CN (2) | CN101213754B (zh) |
WO (1) | WO2006124850A2 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2011118108A (ru) * | 2011-05-06 | 2012-11-20 | ЭлЭсАй Корпорейшн (US) | Устройство (варианты) и способ параллельного декодирования для нескольких стандартов связи |
CN103269257B (zh) * | 2013-05-13 | 2016-08-24 | 杰发科技(合肥)有限公司 | 一种检测变长编码码流错误的方法和解码及错误检测装置 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5173695A (en) * | 1990-06-29 | 1992-12-22 | Bell Communications Research, Inc. | High-speed flexible variable-length-code decoder |
JPH0490267A (ja) * | 1990-08-02 | 1992-03-24 | Ricoh Co Ltd | 可変長符号の復号回路 |
JP2968112B2 (ja) * | 1991-12-27 | 1999-10-25 | 株式会社ピーエフユー | 符号変換方法 |
US5226082A (en) * | 1992-07-02 | 1993-07-06 | At&T Bell Laboratories | Variable length decoder |
JPH07107303A (ja) * | 1993-09-30 | 1995-04-21 | Nec Corp | ハフマン符号の復号化方法 |
JP3153404B2 (ja) * | 1994-02-02 | 2001-04-09 | 松下電器産業株式会社 | ディジタルビデオ・ビットストリームコーダ |
US5566089A (en) * | 1994-10-26 | 1996-10-15 | General Instrument Corporation Of Delaware | Syntax parser for a video decompression processor |
JP3279852B2 (ja) * | 1994-12-14 | 2002-04-30 | 株式会社日立製作所 | 信号復号装置 |
JPH09246988A (ja) * | 1996-03-05 | 1997-09-19 | Canon Inc | 復号装置及びその方法 |
US5675382A (en) * | 1996-04-08 | 1997-10-07 | Connectix Corporation | Spatial compression and decompression for video |
JP2870515B2 (ja) * | 1996-12-27 | 1999-03-17 | 日本電気株式会社 | 可変長符号化装置 |
US6043765A (en) * | 1997-09-26 | 2000-03-28 | Silicon Engineering, Inc. | Method and apparatus for performing a parallel speculative Huffman decoding using both partial and full decoders |
KR100253366B1 (ko) * | 1997-12-03 | 2000-04-15 | 김영환 | 엠펙용 가변길이코드 디코더 |
JPH11215008A (ja) * | 1998-01-27 | 1999-08-06 | Oki Electric Ind Co Ltd | 復号回路 |
JP2000059234A (ja) * | 1998-08-10 | 2000-02-25 | Mitsubishi Electric Corp | 可変長符号処理装置 |
KR100601602B1 (ko) * | 1999-03-24 | 2006-07-14 | 삼성전자주식회사 | 비트스트림 디코딩 장치 |
JP2000286717A (ja) * | 1999-03-30 | 2000-10-13 | Matsushita Electric Ind Co Ltd | デコード装置 |
JP3533339B2 (ja) * | 1999-04-16 | 2004-05-31 | シャープ株式会社 | 復号化装置および復号化方法、並びに、プログラム記録媒体 |
JP2001274690A (ja) * | 2000-03-28 | 2001-10-05 | Toshiba Corp | 可変長復号器 |
JP2002084198A (ja) * | 2000-09-11 | 2002-03-22 | Matsushita Electric Ind Co Ltd | 可変長符号の復号方法及び装置、並びに復号テーブル |
US6580377B1 (en) * | 2001-05-30 | 2003-06-17 | Sony Corporation | Huffman decoding using cascaded sub-table lookup method |
US6573847B1 (en) * | 2002-01-08 | 2003-06-03 | Intel Corporation | Multi-table mapping for huffman code decoding |
JP2003309471A (ja) * | 2002-04-15 | 2003-10-31 | Fujitsu Ltd | 可変長符号データ復号装置および復号方法 |
-
2006
- 2006-05-15 WO PCT/US2006/018849 patent/WO2006124850A2/en active Application Filing
- 2006-05-15 EP EP06759897A patent/EP1880471A4/en not_active Withdrawn
- 2006-05-15 EP EP12004222A patent/EP2495878A3/en not_active Withdrawn
- 2006-05-15 JP JP2008511468A patent/JP5209467B2/ja not_active Expired - Fee Related
- 2006-05-15 CN CN2006800244758A patent/CN101213754B/zh not_active Expired - Fee Related
- 2006-05-15 KR KR1020077029170A patent/KR100944923B1/ko not_active IP Right Cessation
- 2006-05-15 US US11/434,827 patent/US7268708B2/en not_active Expired - Fee Related
- 2006-05-15 CN CN200910261324XA patent/CN101873499B/zh not_active Expired - Fee Related
-
2007
- 2007-04-19 US US11/737,699 patent/US7466248B2/en not_active Expired - Fee Related
-
2010
- 2010-12-15 JP JP2010279331A patent/JP2011109678A/ja not_active Withdrawn
-
2013
- 2013-01-04 JP JP2013000188A patent/JP5567155B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1880471A2 (en) | 2008-01-23 |
JP2011109678A (ja) | 2011-06-02 |
WO2006124850A2 (en) | 2006-11-23 |
EP2495878A2 (en) | 2012-09-05 |
JP2013118656A (ja) | 2013-06-13 |
EP1880471A4 (en) | 2011-12-28 |
US20060267807A1 (en) | 2006-11-30 |
WO2006124850A3 (en) | 2007-04-26 |
US7268708B2 (en) | 2007-09-11 |
CN101873499A (zh) | 2010-10-27 |
EP2495878A3 (en) | 2012-09-26 |
KR20080014866A (ko) | 2008-02-14 |
JP2008541631A (ja) | 2008-11-20 |
US20070205929A1 (en) | 2007-09-06 |
CN101873499B (zh) | 2013-03-06 |
JP5567155B2 (ja) | 2014-08-06 |
JP5209467B2 (ja) | 2013-06-12 |
CN101213754A (zh) | 2008-07-02 |
KR100944923B1 (ko) | 2010-03-03 |
US7466248B2 (en) | 2008-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10587286B1 (en) | Methods and devices for handling equiprobable symbols in entropy coding | |
JP3272580B2 (ja) | 符号化方法、符号化装置、符号化器、コーディング装置、復号方法、復号装置、復号器、エントロピー復号器、及び初期化方法 | |
US6633242B2 (en) | Entropy coding using adaptable prefix codes | |
US6563440B1 (en) | Apparatus and method for decoding Huffman codes using leading one/zero string length detection | |
US6043765A (en) | Method and apparatus for performing a parallel speculative Huffman decoding using both partial and full decoders | |
KR101678223B1 (ko) | 멀티미디어 서명 코딩 및 디코딩 | |
US7148821B2 (en) | System and method for partition and pattern-match decoding of variable length codes | |
CN100370828C (zh) | 用于将参数值映像到码字索引的自适应方法和系统 | |
US7880647B1 (en) | Huffman decoding method | |
CN101213754B (zh) | 用于改进的多媒体解码器的方法和设备 | |
CN1318176A (zh) | 在消息信号中嵌入辅助数据 | |
US6563442B1 (en) | Multiple symbol length lookup table | |
US6512852B1 (en) | Method and apparatus for concatenating bits of odd-length words | |
US8009067B2 (en) | Method and apparatus for coding and decoding using bit-precision | |
US7075462B2 (en) | Speeding up variable length code decoding on general purpose processors | |
US8421655B2 (en) | Apparatus for parallel entropy encoding and decoding | |
KR101024913B1 (ko) | Vld 버퍼 관리 장치 | |
US10608934B2 (en) | Bloom filter and implementation method thereof | |
US20100074542A1 (en) | Apparatus for decoding context adaptive variable length code and table search method for decoding context adaptive variable length code | |
Junior et al. | A Fast and Memory Efficient Huffman Decoding Method for the MPEG-4 AAC Standard | |
JP2000004168A (ja) | 可変長符号化方式 | |
KR20030032286A (ko) | Mpeg-4 역방향 가변장부호 복호화방법 및 회로 | |
MXPA99010754A (en) | Arithmetic encoding and decoding of an information signal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131113 Termination date: 20190515 |