CN1620819A - 改进的可变长度解码器 - Google Patents

改进的可变长度解码器 Download PDF

Info

Publication number
CN1620819A
CN1620819A CNA028205502A CN02820550A CN1620819A CN 1620819 A CN1620819 A CN 1620819A CN A028205502 A CNA028205502 A CN A028205502A CN 02820550 A CN02820550 A CN 02820550A CN 1620819 A CN1620819 A CN 1620819A
Authority
CN
China
Prior art keywords
mark
lut
decoding
subclauses
look
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
CNA028205502A
Other languages
English (en)
Other versions
CN1312938C (zh
Inventor
D·E·彭纳
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.)
Entropic Communications LLC
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1620819A publication Critical patent/CN1620819A/zh
Application granted granted Critical
Publication of CN1312938C publication Critical patent/CN1312938C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

使用标准处理器(400)和一个小查找表(LUT 530)来执行MPEG视频数据中DCT系数的可变长度解码。处理器在接收位流(BS)的一部分上执行(520)整数到浮点变换。通过此步骤,在码本中常见的,具有多个前导零的长代码字由浮点结果(FP)的指数和尾数字段(EXP,MAN)以一种压缩的形式表示。提取相关的位并将其用于寻址LUT的索引(IX)。这就避免了麻烦的面向位的逻辑,同时还避免了否则表示相同码本所需的很大的LUT。因此,整个LUT被存储在高速缓冲存储器(410)中。在VLIW处理器实现中,一个标记的解码与前一标记的反向扫描和反量化步骤被流水线处理。

Description

改进的可变长度解码器
本发明涉及用于解码使用可变长度码进行编码的数字数据流的方法和设备。本发明获得了一种使用通用微处理器或DSP(数字信号处理器)芯片来解码被压缩视频比特流,如MPEG流的特殊应用。本发明可以等价地应用于可变长度编码方案,这些方案用于在包括文本、音频和视频压缩的环境范围内的数据压缩。本说明书涉及MPEG解码只是用于例示。
MPEG视频压缩标准使用基于运动补偿块的变换编码来减少描绘动画序列所需要的数据数量(和作为结果的传输比特率)。MPEG图像帧的构件块是宏块,在其中像素数据被编码在8×8的像素块中。亮度和色度数据被作为单独块进行处理。
通常,典型图像的邻近像素趋向于高度相关。MPEG编码将离散余弦变换(DCT)应用到每个块中,以将随机性集中为较少的、去相关的参数,即通常所知的DCT系数。8×8系数矩阵然后被量化以减少编码所需的比特数量,特别是在规定的比特率和视频质量参数的边界内尽可能多的将DCT系数减少为零。
为允许有效使用游程编码,8×8矩阵的64个系数经由“Z字形”或者其它扫描模式的方式被重新安排在一个数值序列中,这样零和较低的数值系数将趋于拖在更高数值的系数后面,编码该序列使得通过一对表示游程(连续为零的数目)和能级(跟随在零的游程之后的第一个非零系数的值)的数值来表示零。通过一种称之为可变长度编码(VLC)的处理将这些对转化为‘霍夫曼’编码标记,(代码字)被编码,使得那些最可能出现的被给予最短的编码,并且最不可能出现的被给予最长的编码。不是特别可能出现的标记用转义序列(ESC)编码。同样,在序列中没有被加权系数跟随的所有零被整个消除,以块结束(EOB)标记代替。因此,固定大小的视频阵列被转换为可变长度的比特流,典型的为原始大小的一小部分。
更多的特性可以被用来维持可预测的传输率和/或视频质量,但是对于本应用来说,不需要它们的细节。因为MPEG的运动相关特性与改进的VLD没有关系,所以其并未被描述。
解码比特流通常使用用于编码步骤的逆处理。一个帧间解码器需要一个输入流缓冲器、一个可变长度解码器(VLD)、一个反量化器、一个逆离散余弦变换(IDCT)和一个输出接口。然而,因为必须要确定重放的视频速率,存在时间约束。因为必须以比特状态为基础运行,以最多等于输入比特率的速度将可变长度编码转换为DCT系数,所以在基于软件的MPEG解码器中实现VLD是昂贵的。VLD解码器需要查看每个比特,因为在可变长度编码之间的边界是随机的和未对准的。尽管可以设计硬件解码器来逐比特操作通用处理器被设计用于在8、16、32或甚至64比特的固定组上运行,而不遵守这些边界的操作变得极端低效。
例如,用于克服处理瓶颈的已知方法为利用并行处理、专用的逻辑阵列或在非常高速度存储器中高速缓存经常使用的数据。然而,因为这些方案没有克服低概率事件的后果(例如缓存停止和转义序列),所以这些解决方案不能提供MPEG流解码的最有效的解决办法。因为对每个标记的解码直到其起始位置已经通过解码长度最初为未知的前一标记而被确定时才能开始,在VLD解码器的情况下进行并行处理是困难的。
US 6,101,221和US 6,122,316都被转让于LSI逻辑公司,他们描述一种为特定目的设计的(“面向硬件的”)MPEG解码器系统。第一个文件特别描述了利用不同的状态机的“符号提取”。所述的“浮点”寄存器用于VLD数据的存储,但其仅仅被理解为涉及寄存器的大小,不应该被理解为与本发明下面将要描述的预处理有任何相似之处。“符号提取”或VLD被特别设计运行“没有CPU交互”。某些高性能处理器,例如Trimedia TM1100和TM1200 VLIW处理器包括专用VLC硬件,但是其它处理器却没有。
用于MPEG解码过程的这个部分的实现的进一步建议已经由Daiji Ishii等,在Parallel Variable Length Decoding withInverse Quantisation for Software MPEG-2 Decoders(利用反量化为软件MPEG-2解码器进行并行可变长度解码),IEICE Frans.基本原理,Vol E84-A,No.12(2001年12月)pp.3146-3151中被提出。在此建议中,查找表(LUT)被用于解码VLE标记,每次使用17比特的位流。第一表被用于解码短标记的同时对,在此表中找到这些短标记的同时对。第二LUT被用于解码较长的标记。第二LUT被细分为多个更小的表,考虑到较长的标记通常以一串1或0开始,所以实际上并不需要具有217个条目的表。
关于使用细分的LUT进行处理的细节,Ishii等仅仅参考RezaHashemian:1994年8月,IEEE Trans.Consumer Electronics Vol.40,No.3,pp.345-352页中的Design and Hardware Implementationof a Memory Efficient Huffman Decoding(一个存储器有效的霍夫曼解码的设计和硬件实施)。Hashemian解释一个四比特的小“簇”是如何被用作第一个子表的索引,其条目显示期望的解码值或到深一层子表的指针,以及有多少来自比特流的其它比特流的比特应该被用作访问深一层表的索引。深一层的子表同样可以产生期望的输出,或者对于更深一层子表的引用。虽然此处理达到可能需要的LUT总尺寸实质上的减小,但其有些麻烦,特别是在转化为软件实现时。在Ishii的论文中声称第二LUT“能够通过一次查找操作就解码一个长代码字”。然而,当参考Hashemian实际建议的过程时,很显然可能需要一次、两次、三次或者甚至四次查找来解码一个单独标记,这取决于比特流的内容。
本发明的一个目的是提供一种用于VLD功能性的改进方法和设备,特别是可以不用专用硬件,通过可用的通用微处理器或DSP的编程就能有效实施的方法和设备。
依照本发明的一个方面,提供一种解码可变长度编码位流的方法,所述位流包括不同长度的标记的串联,其中使用查找表来从该编码位流的连续部分获得解码值,其中编码位流中的较长标记由相同的前导字符(‘1’或‘0’)的字符串来表征,且其中编码位流的所述部分被预处理以获得用于所述查找表的索引,所述预处理步骤使用表示前导字符的字符串长度的固定长度字段来有效替换所述的字符串,以使用比所述标记的最大长度更少的比特来定义索引。尽管查找表在原理上是众所周知的,但是用来直接解码最长标记所需要的表的大小将非常地大。一种典型的处理系统依赖高速缓冲存储器来获得其高性能,因为这样一个大表由于太大以致于不能驻留在高速缓存内,所以该查找方法不能提供可接受的性能。
本发明人已经认识到典型的VLC码本只占用标记的最大长度所建议的数字范围的一部分,以及可以经常执行码本的非常有效的“压缩”。然后可以用相对小型的查找表(LUT),而非精密计算来执行解码步骤。特别地,在一个典型的码本中通过相同字符的字符串来表征较长标记,特别是许多零。在此情况下,本发明人已经认识到,上面提到的压缩效果可以使用现代处理器内部的优选硬件已经提供的浮点转换功能来实现,且可以通过单个查找操作来执行。
因此,标记的预处理可以包含到指数加尾数(exponent-plus-mantissa)格式的转换。可选地,预处理可以包括通过其它方式获得相同的字符的计数。不同的处理器在不同程度上支持这些选项,影响了实施方式的选择。
在优选的实施例中,该方法包括:
(a)提供一个查找表(LUT),该查找表的条目包括相应于编码位流内部潜在出现的标记的解码值;
(b)读取所述编码位流的一部分;
(c)将接收部分转换为指数和尾数分量;
(d)使用所述的指数和尾数部分作为一个索引来在所述的查找表(LUT)内部识别一个具体条目,以提取与包含在编码位流的接收部分内部的可变长度编码标记相对应的一个解码数值;以及
(e)使用该LUT条目来识别下一个可变长度标记的开始位置,且重复步骤(c)和(d)以解码连续的标记直到结束标记被解码,如果必要读取所述比特流的深一层部分。
为了将一个带有前导‘1’的标记转换为带有前导‘0’的标记,可以在转换为指数和尾数格式之前选择性地反转可变长度标记。
依照正在被解码的位流部分的特征,可以不同地执行预处理。提供了多个查找表,依照正被解码的该位流部分的预定特征进行选取。
例如,在MPEG中,一些可变长度编码用前导‘1’来编码,而不是前导‘0’。如果标记在被输入转换器之前被反转,则仍旧可以使用浮点转换。根据标记组的属性,可以提供分离的查找表以便在此情况下使用。
可以使用一个可编程处理器。该可编程处理器可以包括流水线处理,其中解码的不同操作被同时执行。可编程处理器可以具有一个预定义的整数-浮点转换操作,其中所述的预处理步骤包括使用所述的预定义操作将所述位流的一部分从整数转换到浮点格式。
在一个实施例中,实现了流水线处理,以使一个标记的解码与一个以前解码数值的随后步骤同时执行。在可变长度编码的情况下,解码步骤的简单流水线是不可能的,因为直到前一标记被解码时才能知道每个标记的位置。例如,在一个MPEG解码器中,每个DCT系数的重排序和反量化可以与下个标记的解码同时开始。
可以使用从LUT条目中提取的解码值来确定该位流的深一层处理以获得最终的解码值。例如,在MPEG VLC中,要被解码的标记可以是一个转义标记,该标记表示在该位流自身的转义标记之后将发现解码值。
该方法可以进一步包括,相应于比特流的深一层部分,修改从LUT条目中提取的解码值。例如,在MPEG VLC中,大多数标记以一个符号位结束,表示游程-能级对的能级部分应该被取消。把符号位视为独立于LUT索引允许将表的大小减半。
下个标记的开始位置可以从每个LUT条目中的标记长度字段得到。
每个LUT条目也可以包括控制标志,用于修改该方法的后续操作。
本发明还提供一种用于解码可变长度编码位流的设备,如上面提出的和在附加的权利要求中进一步定义的,该设备包括被安排用于执行依照本发明的方法步骤的装置。
本发明的一个优点是可以通过通用处理器硬件的适当编程来实现,同时可以通过必要的程序代码来分别地提供。因此,本发明还进一步提供一个记录载体或者数据存储其它设备,其中记录了用于使可编程处理器实现上面提出的依照本发明的方法步骤的程序指令。
附图说明
现在参考附图仅仅示例性地描述本发明的实施例,其中:
图1是一个并入了依照本发明的可变长度解码器(VLD)的MPEG视频解码器的功能框图;
图2表示进入到图1的VLD中的可变长度标记的序列和期望的系数解码序列的实例;
图3是一个用来实现图1的解码器的通用处理器的一般结构图;
图4示意性地表示图1的解码器中的VLD过程,其中“标记压缩”步骤先于查找表(LUT);
图5举例说明图4的过程中标记压缩步骤的动作;
图6是一个实例VLIW处理器结构的指令处理部分的框图,该处理器结构适合于流水线执行包括图4的VLD过程的几个MPEG视频处理操作;以及
图7表示怎样利用适当的编制,通过流水线处理MPEG解码器过程的VLD过程与其它步骤,来获得流水线视频处理器的最大利用。
在详细地说明本发明的实施例之前,应当理解本发明在其中申请不局限于图中所示的设计和描述的细节。本发明能够以各种其它方式实施。同样地,可以理解在此因为说明目的所使用的措词和术语不应该被当作限制。
本发明将以用于MPEG视频数据流的标准解码器环境加以说明,例如已记录在CD-Rom和DVD媒介、或由无线或有线信道发送的视频数据流。MPEG视频规范(ITU-T H.262)只是定义了解压缩MPEG编码视频数据所需的功能,而不是在细节上其如何实现,这些被留给制造商来完成。
根据MPEG规范,两种关键的编码技术被用于处理运动图像序列:帧内编码和非帧内编码(帧间)编码。两种类型的帧均采用不同的有损和无损压缩技术,该压缩技术相对于包含在视频序列的每个单独图像中的信息而被执行。非帧内编码还使用在图像之间的时间相干性,例如使用运动估计预测,产生预测(P)帧和双向预测(B)帧。本发明不涉及MPEG的运动特性,所以不再详细描述非帧内编码属性。
图1表示MPEG解码器的步骤,所述MPEG解码器包括位流缓冲器100、可变长度解码器(VLD)110、反向扫描(IS)和反量化器(IQ)120、逆离散余弦变换(IDCT)130、运动补偿器(MC)140和输出接口150。解码器可以在专用硬件中实现,或者作为一连串处理步骤由处理器实现,或者二者的组合实现。尽管对于图像处理来说VLIM或者其它的处理器可能更适合,但是本公开假设这些步骤,尤其是VLD和IS/IQ步骤是通过编程一个微处理器而实现的。
所示步骤的动作如下:
●在100输入位流缓冲,其用于接收视频流并形成时间灵活的队列,以允许后续的处理步骤以不同于输入视频速率的速率来解码视频。在此点,音频和其它的数据可能被分开并发送到它自己的解码器中。
●在110进行可变长度的解码,其用于将可变长度MPEG标记转换为它们相应的值,例如被量化的DCT系数。
●在120逆量化,根据所选择的量化和比例因子矩阵的值获得DCT系数的实际数值,反向扫描步骤,根据对应于预定序列(通常是Z字形)从标记流重新形成系数矩阵。
●反离散余弦变换步骤130,用于将DCT系数重新组合为其所表示的象素值的块。
●在图像已经被非内部编码之处,在140执行运动补偿以将被解码的像素值与图像序列中相邻的图像的数值结合。
●在150执行输出接口,以便以合适的格式表示视频,例如存储器中的二维视频图像或者数字视频流。
图2表示VLD100必须对可变长度标记201-212的示例位流200执行的操作,将它们转换为游程长度和能级的序列220,然后使用反向扫描函数IS,反向‘Z字形’扫描为8×8的系数矩阵230m以便随后传送到反量化器。
输入的位流200简单地包括1和0的字符串。期望的系数块230由一串12个标记201-212表示。尽管显示了标记的边界,但是解码器一开始不知道此边界位置,不知道每个系数块由多少标记表示。然而,根据序列的上下文可知序列的开始,一旦前一标记被识别(至少部分地解码),就可以找到每个标记。在此实例中,MPEG规范H.262具有一个定义标记和其含义的表B.14。其它的表B.15和B.16被提供用于不同的环境。
在所示的实例中,VLD处理110将标记201-212转换为解码系数序列220,在定义的Z字形序列(在图中用箭头表示)中扫描决230。标记201-210每一个表示具有(量化)数值8,4,4等的单个系数。另一方面,标记211表示跟随在1之后的12个零的游程。在最后一个非零系数之后有41个零,这些全部由包括特殊的“块结束”代码EOB的标记212表示。最常用的数值和游程都具有在表中定义的自己的标记,标记长度随着数值在一个典型的图像中变得不常见而增加。罕见的数值和游程可以通过跟随一个特殊的“转义”标记(ESC)而被明确地表示。在MPEG表B14中最长的标记是16位长度加一个符号位。在该实施例中,被量化为至少4位的64个系数的每一个被可变长度编码压缩为仅仅61位。具体的压缩程度依赖于图像内容和所施加的量化等级。
尽管在编码器侧进行的运动估计特别复杂,但是VLD110因为以位方式(bit-wise)为基础操作,通常是在基于软件实施的解码器中计算最密集的部分。当可变长度标记之间的边界是任意的,并且不与存储器中的位字边界对准时,通用处理器不适于监控流中的每个位。VLD处理110必须以高达输入位速率的速度操作,以产生对应于每个标记的系数数据(如在MPEG标准中定义的),形成一个8×8的系数矩阵。
按照惯例,尽管使用软件执行时处理器的负载不成问题,但仍由硬件支持在此速度执行VLD所需算法以减少处理器的负担。提高吞吐量的一种方法是使用复杂的高速度逻辑函数,可控逻辑和并行处理。此方法的一个实例在美国专利US6101221中公开,描述一种以一定速度解码包括可变长度目标的固定长度数据字的系统和方法,以便在每个时钟周期解码可变长度标记。通过使用多个寄存器和复杂的数据可控逻辑,结合并行配置的多路复用器和IDCT处理器进行的有效地流水线操作实现了提高的解码器吞吐量速率。尽管通过同时处理多个可变长度标记来提高解码器吞吐量,但是对于从可变长度标记中得到系数游程长度和能级数据的方法和装置没有改进。对这种技术的软件实现既未建议也是不能够实行的。
图3表示通用处理器400,在该通用处理器与处理器存储器420之间采用高速缓冲存储器410。CPU400可以是PC工作站的主处理器,或者可以是专用于MPEG解码或者专用于一般视频处理的辅助处理器。处理器和存储器可交替地组成专用MPEG播放器的一部分,例如DVD播放器或者游戏控制台。CPU400被假设至少执行VLD处理,但是优选地,在该处理器内执行图1中所示的整个解码处理。为举例说明这一点,该框图表示一个输入到处理器的视频位流输入(IN)430,尽管输入数据的其它方法也可满足,例如DMA传输到存储器中。同样地,视频输出OUT440表示从存储器的输出,尽管实际需要处理器进行读、格式化和输出数据的交互作用。在操作中,程序、输入数据和由CPU产生的解码图像被保持在主存储器420中。然而,众所周知经常使用的数据或者处理步骤从高速缓冲存储器(当可用时)提取,优于从速度较慢的存储器420中获得。执行在此描述的VLD处理的处理器的程序代码(指令)可以被预先安装(固件)或者在一个记录载体中分开提供,例如CD-ROM或者软盘450。高速缓冲存储器的使用减轻了处理器功率,否则会被主存储器的受限带宽所限定。
如上所述,MPEG规范中提供了表,定义VLD标记和其所对应的DCT系数游程长度和能级值(ITU-T建议H.262的表B.12至B.16)。一种直接解码标记的方式将重新产生完整的MPEG表作为存储器中的查找表(LUT)。该表中将包含每个标记数值的条目,其定义标记的游程长度、能级和长度(以识别下一个标记的开始)。LUT作为一种对算法和逻辑处理的替换在原理上是众所周知的。不幸地是,MPEG可变长度标记的尺寸能够达到16位(加一个可以被分开处理的符号位)。为将这种列表完全存储在高速缓存存储器中,将需要216长度的高速缓冲存储器,即是65536个条目。每个条目的尺寸将至少是两个字节或者可能更多。因为其纯粹的尺寸以及其包含的太多冗余信息和空条目,使得这种大表并不引人注意。更严重地,如此大的表不可能在任何给定的时间完全驻留在高速缓冲存储器410中,高速缓冲存储器遗漏的影响和处理停止的机率非常高,这将否定高速缓冲存储器的优点。因此,尽管查找表的使用表面上很吸引人,但这种执行的性能将不满足实际的需要。
以下的段落将公开一种使用少量的处理和比最初所需的LUT更小的LUT,将可变长度标记转换为其对应的游程长度和能级值的改进的方法和设备。这不但对其本身有益,同样有益于减少由于实际的计算机系统中的高速缓冲存储器的停止或者刷新引起的中断,以平滑解码。下面的段落提供应用实例,表示新的方法和设备如何被应用于VLIM结构的视频处理器,以及视频处理函数的有效流水线技术如何提供有效的MPEG解码器。
图4提供一种改进的VLD处理的图解表示,包括输入步骤510、标记压缩步骤520和表查找步骤530。包含输入位流的字节流在500接收,在515将以新的标记开始的数据块读入到压缩步骤520,从LUT530读出被解码的长度和能级值或EOB和ESC符号。转义和符号位的处理为了清楚的目的而被省略,但其易于执行。在545下一个标记的输入步骤500按照从查找表530中读取的标记长度和能级数据被逐位地控制。
在下面的表1提供一种表条目格式的实例:表的宽度被表示为32位,但不局限于此。
字节 内容
0 标志...如果输入等于“块结束”(EOB)的可变长度标记,设置LSB,如果输入等于“转义代码”(ESC)的可变长度标记,设置比特2。
1 LVL-能级数据乘以2。
2 LEN-游程长度加1。
3 输入可变长度标记的长度。
                     表1
EOB和ESC代码被解码为单独标志,而且其它标志理所当然可以在MPEG或不同编码系统中被提供。
在该实例中,能级值以实际能级的两倍存储以便简化后续的处理。特别地,在MPEG指定的用于反量化的算术函数中实际所需的是两倍于能级的数据。分别解码并检查符号标志,以确定是否需要将整个结果变为负的,这实际上也简化了算法。在一种相似的方式中已经修改了游程等级以适合后续的处理步骤。也可以使用其它调整LUT条目内容的方式来适应处理,并不限制于所显示的实例。不是每个在表条目中的字节都被充分使用,但是更紧密地包装数据将引起在清理不同分量时的开销。由于标记压缩步骤(下面将更详细的描述),将LUT中的条目数目减少至以下水平,即不必很关心各个条目的尺寸。
标记压缩步骤520的可行性和特征将依赖于VLC码本的结构(标记组)。在特定情况中需要少许创造性的思想和可选的一些附加的预处理和后处理。在MPEG DCT系数表B.14和B.15的情况中,最大部分的标记包括0到11个前导零和2至6位的代码长度,加上一个符号位。在此情况,倘若某些例外由稍后描述的方式处理,可以通过对输入流的一批位进行简单的浮点变换来实现有效的标记压缩,以指数和尾数格式给出一个数字。经过少许重新对准,这获得一个较短的标记,其格式适合于索引一个更小的DCT系数查找表来提供相应的游程长度和能级。确立该表以使得表的条目适于指数值寻址这些条目。因为已选择的指数部分在我们解码的代码序列中对于前导零计数的范围不可能是零,这意味着从来不使用表的开始部分。在此情况中,我们可能选择偏移我们使用的表的基地址,以便实际中产生的最低的指数值将寻址表的第一个存储器位置,而不必浪费表的空间,或者必须对于索引作进一步的算法以使其寻址到表的正确的部分。
用于实现再编码的典型设备是浮点(24或者更多位)寄存器,一个整数浮点转换块和移位寄存器。例如Intel PentiumTM系列的处理器理所当然包括了浮点单元。即使在用户IC中,浮点单元也会被包含在“成品”设计中,而不必开发和测试在引用参考中所显示类型的特定VLD硬件块。
图5在一个位级上表示本发明中的标记压缩过程520的动作。可以在一个标准的微处理器中更直接或较不直接地实现下面地步骤,对于整数和浮点数字表示的格式使用标准转换:
·等待被解码的位流的输入16位‘BS’(包含一个或者多个可变长度标记)作为一个零载入(zero-loaded)的32位寄存器“INT32”的上半部分中的16位字而被输入。因为最大的标记长度是16位加上符号位,然后寄存器包括至少一个完整的标记(TK1),但是也可能包括一些随后的标记(TK2等)。在所示的实例中,TK1=″0000101″后面跟随着符号位S=0。
·下面执行寄存器内容的浮点转换(无符号整数到浮点),获得结果“FP”。在这一点,遵循IEEE惯例,标记中的前导零的数目被转换成相应的指数值EXP,而保留位除了第一个‘1’之外被移位到固定的尾数部分MAN。在所示实例中,第一个‘1’出现在无符号整数INT32的位27,产生指数27。按照惯例,IEEE格式的指数字段因而等于127+27=154,或者二进制的100 1011010。在处理器提供选择的地方,选择的转换模式应该是四舍五入的,如果向上舍入的话,可能会改变正在被解码的长标记的有效位。
·从结果‘FP’,将指数的最低4位(该指数标识了标记的前导零的数目)与尾数的上面5位(它等同于跟在标记的第一个1之后的5位)相结合以形成一个9位的索引数值‘IX’。
·使用9位的字‘IX’作为一个用于LUT的索引,以提取一个表1中所示的表格的4字节条目(EOB,ESC,LVL,LEN)。
·适当地处理EOB和ESC。对于其它编码,将输入位流BS中的符号位移入到LVL以完成解码能级数值。
结果是长度达16位之多的标记被重编码为只有9位长的索引。注意,尾数中选择的5位有时将包含下个标记的4位之多。通过确保在此情况下的LUT条目相一致来进行调节,而不用管下个标记的4位的数值。由于访问整个LUT只需要9位(29,也就是最多512个条目),因此提供了高速度和对内存的需要减少的优点。此外,由于依照MPEG‘解码表0’的规定,前导0的数目不能超过11,所以事实上索引的指数(上面的)部分将被仅仅限制为可能的16组中的12组,意味着为了支持所有的编码条目,只需要384个LUT条目。这个表的大小可以通过一个高速缓存容易地处理,而不用求助于内存停止(stall)。由于MPEG解码的这个部分是计算密集型的,所以驻留在高速缓冲存储器中这样一个小的LUT(大约1k字节)的有效利用可以带来吞吐量的显著增加。符号位被分别的处理,因为这样不会影响LUT的大小,但是如果缓存足够大的话,其也可以被同时地处理。
同样的原理适用于其它表格编码结构,使用或者不使用额外的预处理或者后处理。上面的实例适用于MPEG‘解码表0’(ITU-T H.262中的B14)。在MPEG系数‘解码表1’条目(表B15)的情况下,然而,在前导0的标记(编码字)之中存在一些带有许多前导1的标记。这种数字的浮点转换不能带来标记空间的压缩。为了克服这种偏差,执行一个简单的额外测试来检查前导1的门限数目,例如4个,且如果这样处理位的话,对可变长度标记进行位反转并且对其使用处理前导0条目的单独LUT。这样可以通过一对精简的表来描述MPEG DCT系数表B15,而不是通过一个单一的表。  此外,该原理可以扩展到前导0或编码长度的不同数量,只需要对于上面对‘解码表0’的条目所示的实例进行不同的位选择和移位。
额外的预处理也需要施加于优选的实施例以避免在位流中连接的两个标记可能导致比有效标记中的最长游程还要长的’0’的游程。ITU-T H.262表格不包括全部零的符号,以避免通称为“起始码仿真”的问题。然而,例如表B.15包括完全由9个1(8个1加上符号=1)组成的标记,且该标记可以被另一个以许多1开始的标记跟随着。当其进行如上所述的反转时,这变成了一个许多0组成的符号,如上所述的被转换成指数和尾数的格式以用作为LUT索引。将这个数直接转换成浮点数将得到一个超出了用于解码大多数标记的必要范围的指数。胜于为这种情况提供一个更大的表,优选的实施例在执行浮点转换之前,包括一个强制地设置一个数值INT32的适当位的步骤。这个强制的‘1’位防止指数超出预期范围。在MPEG-2的表B.14和B.15的实例中,此强制步骤只在反转以前导‘1’开始的符号之后被应用,如在前面段落所解释的。在带有一个最长全0标记为8位(在反转之后且没有计入符号位)标记长度的MPEG-2表B.15的情况下,执行一个使用掩码0x00800000的简单的OR操作来强制第九位(TNT32中的位23)为‘1’。
应该理解,INT32的原值应该被保留,以便在位被上移和被解释为下个标记的部分时使用。否则位强制将破坏下个标记的解码。
在设计一个用于不同编码表的解码器时,本领域普通技术人员可以调整这些位强制或者其它的技术,以捕获指数可能超出范围的情况。通过强制位以便将前导0的数目限制在已知范围内,其同样对防止损坏的位流有用。为了避免损坏标记,通常强制位必须置于最大的标记长度,而非有效位流中预期前导0的最大长度。这需要提供一个更大的表,以避免错误标记产生超出范围的索引。可是,表的额外部分将很少被访问,而且因此不会对正常操作中的缓存占用或者缓存失频起作用。在检测到错误的地方,由于解码将被完全中断,缓存未命中(cache miss)将只是一个较小的考虑。
作为上面描述的反转和分开的表的备选方案,也可以通过有符号的浮点处理的使用来处理“前导1”的标记的组,尽管也许会需要附加的比特级操作,这将否定显然的速度优势。
对于一个实用的实施例,使用一个高性能处理器,特定操作的并行性能或者“流水线处理”通常是吸引人的。本发明人已经发现在一个基于软件的MPEG解码器中进行流水线处理的机会,而不管明显的障碍,如现在将解释的。用于视频应用的一个适合的处理器结构是VLIW(特长指令字)处理器,但任何具有支持MPEG解码特性的并行结构都可以满足。
图6表示一个示例VLIW处理器的指令处理部分的结构图,包括单个指令缓存‘IC’700、5个发生槽(Issue Slot)IS1...IS5 710和5个功能单元组‘SFU1’...‘SFU5’720,每组包括功能单元‘FU1’...FU11′730的一个选择。不同类型的功能单元用于不同类型的操作,例如整数运算、浮点、移位和存储。典型地,这些功能单元在某种程度上是专用的,只包括可能功能的子集。例如,一个或者两个单元可以提供分支功能,另一些可以提供存储器接口功能,而另一些可以提供浮点运算。
下面的表2提供对于示例VLIW结构的功能单元混合。该功能的具体特性对于本发明的理解并不重要。
发生槽      1        2   3      4      5功能类型
Const            y       y       y       yy
Alu              y       y       y       yy
Dmem                                     yy
Shifer        y       y
Dspalu                y           y
Dspmul             y       y
Branch                  y       yy
Falu       y               y
Ifmul         y    y
Fcomp                     y
Ftough             y
    表2
图6表示从指令缓存到实际执行指令的功能单元的指令流。该处理器的编辑器在5个组中产生每个时隙的操作。因此,达5个之多的操作被同时发送给其适当的发生槽。在编译期间,编译器录求组织这些操作,以获得最大并行程度,但是不能在来自前一指令的需要输入的数据可用之前调度一个指令。此调度问题是延迟的结果:一个指令的延迟是从执行该指令的时间直到结果可用的延时。大多数处理器的操作具有超过一个时钟周期的延迟,导致一些操作不能使用,直到随后的时钟周期指令开始。
要帮助编译器,几个任务可以同时处理,例如在几个数据项上同时执行相同的操作(循环展开)。然而,对于MPEG位流可变长度标记解码来说,因为标记之间的边界位置未知,因此直到已经解码了第一个标记的大部分,才可能开始解码第二个可变长度标记。在被提议的实现中,通过流水线处理VLD、IS和IQ操作来回避这个问题,但是对于不同的系数,如下面的实例中所示。
图7表示通过适当的编译,怎样获得处理器的最大利用率。采用一个三遍(three-pass)处理,借此在代码的三次运行中完成所有的VLD、IS和IQ操作。
下面的表3表示在3步中的流水线处理VLD、IS和IQ操作是怎样被插入到仅仅10个VLIW 5槽循环中,导致这个实例在可能的50个处理器槽位只有6个未用,且处理器资源具有非常有效的利用率。
发生槽
处理周期 1 2 3 4  5
0 2移位器 2移位器 2alu 2const
  1   2移位器   2移位器   2ifmul   2dmem
  2   1falu   1移位器   2alu   3alu   2alu
  3   2移位器   1dmem   1dmem
  4   2alu   2ifmul   2alu   1dmem
  5   2alu   2alu   2alu   1dmem
  6   2移位器   Branch   Branch   3alu   1alu
  7   3dspalu   2移位器   2alu   1alu   2dmem
  8   2alu   1alu   1alu   1alu
  9   1移位器   1移位器   1alu   3alu   3dmem
  0   重复
                        表3
如在图7的左边显示的,每个操作之前的数目涉及处理步骤中的一遍。所示的指令序列被设计作为一个没有内部分支的循环来运行,一次处理三个标记。编码的更广义的版本被提供以应付缓冲器下溢、EOB和转化的情形,或者恢复循环,或者在EOB符号后完全退出。
使用标记压缩和LUT的VLD与VLIW的流水线处理结构的组合提供了一个有效和高速度的MPEG解码器。这种结构也将支持MPEG规格的全范围的使用,例如运动帧和音频重放与同步。本领域普通技术人员将认识到,在上面描述的设备的原理范围内可能有许多变化。因此,可以理解,这里说明的实施例现今只是作为实例以帮助理解,并不打算限制所申请的本发明的精神或者范围。此外,本领域普通技术人员将理解,在音频、视频、声音和一般的数据压缩的多种应用中,本发明可以应用于任何解码可变长度编码的方法或设备。

Claims (21)

1.一种用于解码一个可变长度编码位流的方法,所述的位流包括不同长度标记的串连,其中使用一个查找表来从该编码位流的连续部分获得解码数值,其中编码位流中的较长标记由相同的前导字符(‘1’或‘0’)的字符串来表征,且其中编码位流的所述部分被预处理以获得用于所述查找表的一个索引,所述的预处理步骤有效地使用一个表示前导字符的字符串长度的固定长度字段来代替所述的字符串,以使用比所述标记的最大长度更少的位来定义索引。
2.如权利要求1中所述的方法,其中每个标记通过单个的查找操作来解码。
3.如权利要求2中所述的方法,其中标记的预处理包括到指数+尾数格式的转换。
4.如权利要求3中所述的方法,其中该方法包括:
(a)提供一个查找表(LUT),该查找表的条目包括对应于该编码位流内部潜在出现的标记的解码数值;
(b)读取所述编码位流的一部分;
(c)将接收部分转换为指数和尾数分量;
(d)使用所述的指数和尾数部分作为一个索引来在所述的查找表(LUT)内部识别一个具体条目,以提取对应于包含在该编码位流的接收部分内的可变长度编码标记的一个解码数值;以及
(e)使用该LUT条目来识别下一个可变长度标记的开始位置,且重复步骤(c)和(d)以解码连续的标记直到结束标记被解码,在必要时读取所述位流的深一层部分。
5.如权利要求2、3或4中所述的方法,其中为了将一个带有前导‘1’的标记转换为带有前导‘0’的标记,可以在转换为指数和尾数格式之前选择性地反转该可变长度标记。
6.如任何在前权利要求中所述的方法,其中提供多个查找表,根据正被解码的该位流部分的预定特征进行选取。
7.如任何在前权利要求中所述的方法,使用具有预定义的整数-浮点转换操作的可编程处理器执行,其中所述预处理步骤包括使用所述预定义操作将所述位流的一部分从整数转换到浮点格式。
8.如任何在前权利要求中所述的方法,其中实现了流水线处理,使标记的解码与一个先前解码的数值的随后处理步骤同时执行。
9.如任何前述权利要求中所述的方法,其中下个标记的开始位置得自于每个LUT条目中的标记长度字段。
10.如任何在前权利要求中所述的方法,其中所述LUT条目也可以包括用于修改该方法的后续操作的控制标志。
11.一种用于解码一个可变长度编码位流的设备,所述位流包括不同长度标记的串连,其中该编码位流中的较长标记由相同的前导字符(‘1’或‘0’)的字符串来表征,该设备包括:
用于存储查找表的装置;
用于接收表示所述编码位流的数据的连续部分的装置;
响应接收数据用于寻址所述表,以便从编码位流的连续部分获得解码值的装置;以及
用于预处理该编码位流的所述部分以获得用于所述查找表的索引的装置,所述的预处理步骤使用一个表示前导字符串长度的固定长度字段来有效地替换所述字符串以使用比所述标记的最大长度更少的位来定义索引。
12.如权利要求11中所述的设备,其中每个标记由单个的查找操作来解码。
13.如权利要求12中所述的设备,其中标记的预处理包括到指数+尾数格式的转换。
14.如权利要求13中所述的设备,其中该预处理装置包括:
(a)用于将接收部分转换为指数和尾数分量的装置;
(b)使用所述指数和尾数部分作为一个索引来在所述的查找表(LUT)内部识别一个具体条目,以提取对应于包含在编码位流的接收部分内的可变长度编码标记的一个解码数值的装置;以及
(c)使用该LUT条目来识别下一个可变长度标记的开始位置的装置,装置(a)和(b)被安排成重复操作以解码连续的标记,直到结束标记被解码。
15.如权利要求12、13或14中所述的设备,其中为了将一个带有前导‘1’的标记转换为带有前导‘0’的标记,该预处理装置可以在转换为指数和尾数格式之前被操作以便选择性地反转该可变长度标记。
16.如权利要求11到15的任一权利要求中所述的设备,其中提供了多个查找表,由所述寻址装置按照正被解码的该位流部分的预定特征进行选取。
17.如权利要求11到16中的任一权利要求中所述的设备,其中通过一个具有预定义的整数-浮点转换操作的可编程处理器来实现所述装置,其中所述的预处理步骤包括使用所述的预定义操作将所述位流的一部分从整数转换到浮点格式。
18.如权利要求11到17中的任一权利要求中所述的设备,其中实现了流水线处理,以便使一个标记的解码与一个先前解码的数值的随后处理步骤同时执行。
19.如权利要求11到18中的任一权利要求中所述的设备,其中下个标记的开始位置在操作中得自于每个LUT条目中的标记长度字段。
20.如权利要求11到19中的任一权利要求中所述的设备,其中所述LUT条目也可以包括在操作中用于修改该设备的后续操作的控制标志。
21.一种记录载体,其中记录了用于使得可编程处理器执行根据权利要求1到10中的任一权利要求的方法步骤的程序指令,或者实现根据权利要求11到20的任一权利要求的设备。
CNB028205502A 2001-10-17 2002-09-19 用于解码可变长度编码位流的方法和设备 Expired - Fee Related CN1312938C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0124882.2A GB0124882D0 (en) 2001-10-17 2001-10-17 Improved variable length decoder
GB0124882.2 2001-10-17

Publications (2)

Publication Number Publication Date
CN1620819A true CN1620819A (zh) 2005-05-25
CN1312938C CN1312938C (zh) 2007-04-25

Family

ID=9923987

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028205502A Expired - Fee Related CN1312938C (zh) 2001-10-17 2002-09-19 用于解码可变长度编码位流的方法和设备

Country Status (7)

Country Link
US (1) US6842124B2 (zh)
EP (1) EP1440585A2 (zh)
JP (1) JP4139330B2 (zh)
KR (1) KR100924907B1 (zh)
CN (1) CN1312938C (zh)
GB (1) GB0124882D0 (zh)
WO (1) WO2003034746A2 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100403802C (zh) * 2006-04-30 2008-07-16 西安交通大学 一种基于寄存器组的行程解码与反扫描实现方法
CN1937768B (zh) * 2005-09-20 2010-04-14 联发科技股份有限公司 数据处理方法及系统
CN101686398B (zh) * 2008-09-23 2012-02-01 联发科技股份有限公司 将第一码字转码为第二码字的方法
CN102547263A (zh) * 2010-12-27 2012-07-04 联芯科技有限公司 可变复杂度的离散余弦逆变换查表快速算法
CN101243441B (zh) * 2005-06-21 2012-07-18 国际字符股份有限公司 用于处理字符流的方法与设备
CN103262534A (zh) * 2010-10-14 2013-08-21 汤姆逊许可公司 改进熵编码和解码的方法及装置
CN108605145A (zh) * 2015-12-07 2018-09-28 谷歌有限责任公司 混合的布尔-令牌ans系数代码化
CN110515658A (zh) * 2014-07-30 2019-11-29 莫维迪厄斯有限公司 用于管理可变长度指令的方法和设备
US11579872B2 (en) 2013-08-08 2023-02-14 Movidius Limited Variable-length instruction buffer management
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8913667B2 (en) * 1999-11-09 2014-12-16 Broadcom Corporation Video decoding system having a programmable variable-length decoder
GB0124882D0 (en) * 2001-10-17 2001-12-05 Koninkl Philips Electronics Nv Improved variable length decoder
US7193541B2 (en) * 2001-12-04 2007-03-20 Sun Microsystems, Inc. Representation of sign in encoding scheme
US8284844B2 (en) 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
US7920624B2 (en) 2002-04-01 2011-04-05 Broadcom Corporation Inverse quantizer supporting multiple decoding processes
US7096245B2 (en) * 2002-04-01 2006-08-22 Broadcom Corporation Inverse discrete cosine transform supporting multiple decoding processes
JP4487479B2 (ja) * 2002-11-12 2010-06-23 日本電気株式会社 Simd命令シーケンス生成方法および装置ならびにsimd命令シーケンス生成用プログラム
US6903669B1 (en) * 2003-10-03 2005-06-07 Cirrus Logic, Inc. Systems and methods for decoding compressed data
WO2005114847A1 (en) * 2004-05-20 2005-12-01 Adams Platform Pty Ltd System and method for encoding and decoding video
US7573406B2 (en) * 2004-05-21 2009-08-11 Broadcom Corporation System and method for decoding context adaptive variable length coding
US20050275570A1 (en) * 2004-06-10 2005-12-15 Wang Wen-Shan Vincent Parallel leading bit detection for Exp-Golomb decoding
EP1624704B1 (en) * 2004-07-29 2010-03-31 STMicroelectronics Pvt. Ltd Video decoder with parallel processors for decoding macro-blocks
JP4271134B2 (ja) * 2004-12-10 2009-06-03 株式会社東芝 可変長符号化デコーダおよびデコード方法
US7792385B2 (en) * 2005-01-25 2010-09-07 Globalfoundries Inc. Scratch pad for storing intermediate loop filter data
US8576924B2 (en) * 2005-01-25 2013-11-05 Advanced Micro Devices, Inc. Piecewise processing of overlap smoothing and in-loop deblocking
US20060200481A1 (en) * 2005-03-04 2006-09-07 Khalid Goyan Method and system for data optimization and protection in DSP firmware
US7616137B2 (en) * 2005-07-01 2009-11-10 Stmicroelectronics, Sa Method and apparatus for compression and decompression of an executable code with a RISC processor
US7698352B2 (en) * 2005-09-15 2010-04-13 International Business Machines Corporation System and method for converting from scaled binary coded decimal into decimal floating point
US8364734B2 (en) * 2005-09-15 2013-01-29 International Business Machines Corporation Converting from decimal floating point into scaled binary coded decimal
US7333037B2 (en) * 2006-02-14 2008-02-19 Broadcom Corporation Method and system for improved lookup table (LUT) mechanism for Huffman decoding
US20070283132A1 (en) * 2006-04-06 2007-12-06 Nokia Corporation End-of-block markers spanning multiple blocks for use in video coding
US8880571B2 (en) * 2006-05-05 2014-11-04 Microsoft Corporation High dynamic range data format conversions for digital media
TWI322352B (en) * 2006-12-08 2010-03-21 Ind Tech Res Inst Method and device for saving memory resources and computer-readable medium
US7439887B2 (en) * 2007-02-13 2008-10-21 Seiko Epson Corporation Method and apparatus for GIF decompression using fixed-size codeword table
US20080270495A1 (en) * 2007-04-26 2008-10-30 International Business Machines Corporation Insert/extract biased exponent of decimal floating point data
US8051118B2 (en) * 2007-04-26 2011-11-01 International Business Machines Corporation Composition of decimal floating point data
US8190664B2 (en) * 2007-04-26 2012-05-29 International Business Machines Corporation Employing a mask field of an instruction to encode a sign of a result of the instruction
US8051117B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Shift significand of decimal floating point data
US8559499B2 (en) 2007-10-26 2013-10-15 Zoran (France) S.A. Frame buffer compression for video processing devices
TWI468015B (zh) * 2007-10-26 2015-01-01 Ind Tech Res Inst 視訊解碼的平行處理裝置及方法
JP2009230610A (ja) * 2008-03-25 2009-10-08 Kawai Musical Instr Mfg Co Ltd 命令処理装置及び命令処理方法。
US8817875B2 (en) * 2009-08-13 2014-08-26 The Johns Hopkins University Methods and systems to encode and decode sequences of images
KR101279507B1 (ko) * 2009-12-15 2013-06-28 한국전자통신연구원 병렬 처리 기반 파이프라인 복호화 장치 및 방법
WO2011093870A1 (en) * 2010-01-29 2011-08-04 Hewlett Packard Development Company, L.P. Parallel test payload
KR101624711B1 (ko) 2013-12-24 2016-05-26 (주)에프씨아이 부동소수점 방식을 이용한 데이터 압축/복원 방법 및 장치
US10090864B2 (en) * 2014-09-22 2018-10-02 Samsung Display Co., Ltd. System and method for decoding variable length codes

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604499A (en) * 1993-12-28 1997-02-18 Matsushita Electric Industrial Co., Ltd. Variable-length decoding apparatus
FR2722041B1 (fr) * 1994-06-30 1998-01-02 Samsung Electronics Co Ltd Decodeur de huffman
KR0154011B1 (ko) * 1995-03-16 1998-11-16 배순훈 가변길이 복호화 장치
JP3453452B2 (ja) * 1995-05-19 2003-10-06 キヤノン株式会社 復号化装置
US5841380A (en) * 1996-03-29 1998-11-24 Matsushita Electric Corporation Of America Variable length decoder and method for decoding two codes per clock cycle
US6101221A (en) * 1997-07-31 2000-08-08 Lsi Logic Corporation Video bitstream symbol extractor for use in decoding MPEG compliant video bitstreams meeting 2-frame and letterboxing requirements
US6122316A (en) * 1997-07-31 2000-09-19 Lsi Logic Corporation MPEG decoding system meeting 2-frame store and letterboxing requirements
US6008745A (en) * 1998-02-17 1999-12-28 Sun Microsystems, Inc. Variable length decoding using lookup tables
US6215424B1 (en) * 1998-12-16 2001-04-10 Thomson Licensing S.A. System for variable length codeword processing suitable for video and other applications
US6707865B2 (en) * 2001-07-16 2004-03-16 Qualcomm Incorporated Digital voltage gain amplifier for zero IF architecture
GB0124882D0 (en) * 2001-10-17 2001-12-05 Koninkl Philips Electronics Nv Improved variable length decoder

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101243441B (zh) * 2005-06-21 2012-07-18 国际字符股份有限公司 用于处理字符流的方法与设备
CN1937768B (zh) * 2005-09-20 2010-04-14 联发科技股份有限公司 数据处理方法及系统
CN100403802C (zh) * 2006-04-30 2008-07-16 西安交通大学 一种基于寄存器组的行程解码与反扫描实现方法
CN101686398B (zh) * 2008-09-23 2012-02-01 联发科技股份有限公司 将第一码字转码为第二码字的方法
CN103262534B (zh) * 2010-10-14 2018-05-22 汤姆逊许可公司 改进熵编码和解码的方法及装置
CN103262534A (zh) * 2010-10-14 2013-08-21 汤姆逊许可公司 改进熵编码和解码的方法及装置
US9693056B2 (en) 2010-10-14 2017-06-27 Thomson Licensing Method and apparatus for improved entropy encoding and decoding
US9832486B2 (en) 2010-10-14 2017-11-28 Thomson Licensing Method and apparatus for improved entropy encoding and decoding
US10097859B2 (en) 2010-10-14 2018-10-09 Thomson Licensing Methods and apparatus for improved entropy encoding and decoding
US10694211B2 (en) 2010-10-14 2020-06-23 Interdigital Vc Holdings, Inc. Methods and apparatus for improved entropy encoding and decoding
US11218732B2 (en) 2010-10-14 2022-01-04 Interdigital Vc Holdings, Inc. Methods and apparatus for improved entropy encoding and decoding
US11677983B2 (en) 2010-10-14 2023-06-13 Interdigital Vc Holdings, Inc. Methods and apparatus for improved entropy encoding and decoding
CN102547263A (zh) * 2010-12-27 2012-07-04 联芯科技有限公司 可变复杂度的离散余弦逆变换查表快速算法
US11579872B2 (en) 2013-08-08 2023-02-14 Movidius Limited Variable-length instruction buffer management
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
CN110515658A (zh) * 2014-07-30 2019-11-29 莫维迪厄斯有限公司 用于管理可变长度指令的方法和设备
CN108605145A (zh) * 2015-12-07 2018-09-28 谷歌有限责任公司 混合的布尔-令牌ans系数代码化

Also Published As

Publication number Publication date
GB0124882D0 (en) 2001-12-05
US20030118114A1 (en) 2003-06-26
JP4139330B2 (ja) 2008-08-27
EP1440585A2 (en) 2004-07-28
WO2003034746A3 (en) 2003-10-02
JP2005506777A (ja) 2005-03-03
KR100924907B1 (ko) 2009-11-03
KR20040045842A (ko) 2004-06-02
US6842124B2 (en) 2005-01-11
CN1312938C (zh) 2007-04-25
WO2003034746A2 (en) 2003-04-24

Similar Documents

Publication Publication Date Title
CN1312938C (zh) 用于解码可变长度编码位流的方法和设备
US7286066B1 (en) Acceleration of bitstream decoding
CN101072353B (zh) 译码系统以及图形处理单元
US7411529B2 (en) Method of decoding bin values using pipeline architecture and decoding device therefor
US7365659B1 (en) Method of context adaptive binary arithmetic coding and coding apparatus using the same
CN102547280B (zh) 用于提高图像或视频解码中的操作效率的方法
US20040240559A1 (en) Context adaptive binary arithmetic code decoding engine
CN1875545A (zh) 在算术码解码器或编码器与逆二值化设备或二值化设备之间插入中间缓冲器的解码设备或编码设备
US9001882B2 (en) System for entropy decoding of H.264 video for real time HDTV applications
JP2007300517A (ja) 動画像処理方法、動画像処理方法のプログラム、動画像処理方法のプログラムを記録した記録媒体及び動画像処理装置
US7800519B2 (en) Method and apparatus for compressing and decompressing data
CN105120277A (zh) 图像编码和解码的方法、编码和解码设备以及计算机程序
CN101562455A (zh) 内容可适性二元算数编码的译码装置及其译码方法
CN1552016A (zh) 向/从缓冲器提取和加载数据的装置和方法
CN1272931A (zh) 图像处理装置
CN103139566B (zh) 用于可变长度码的高效解码的方法
CN101710994B (zh) 一种用于视频解码的方法和系统
US7728744B2 (en) Variable length decoder system and method
CN1758760A (zh) 流水线系数可变长度编码
CN100551066C (zh) 编码器及自适应算术编码的实现方法及装置
CN1905675A (zh) 一种基于共享存储可编程的熵解码和反量化的方法
CN101106721A (zh) 一种编解码装置及相关编码器
Sodsong et al. JParEnt: Parallel entropy decoding for JPEG decompression on heterogeneous multicore architectures
US20120147972A1 (en) Image decoding apparatus, image decoding method, image encoding apparatus, image encoding method, and program
WO2010095181A1 (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
ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: KONINKLIJKE PHILIPS ELECTRONICS N.V.

Effective date: 20071026

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20071026

Address after: Holland Ian Deho Finn

Patentee after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Patentee before: Koninklijke Philips Electronics N.V.

ASS Succession or assignment of patent right

Owner name: TRIDENT MICROSYSTEMS (FAR EAST)CO., LTD.

Free format text: FORMER OWNER: KONINKL PHILIPS ELECTRONICS NV

Effective date: 20100819

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: EINDHOVEN, NETHERLANDS TO: CAYMAN ISLANDS, GRAND CAYMAN ISLAND

TR01 Transfer of patent right

Effective date of registration: 20100819

Address after: Grand Cayman, Cayman Islands

Patentee after: Trident Microsystems (Far East) Ltd.

Address before: Holland Ian Deho Finn

Patentee before: Koninkl Philips Electronics NV

ASS Succession or assignment of patent right

Owner name: ENTROPY COMMUNICATION CO., LTD.

Free format text: FORMER OWNER: TRIDENT MICROSYSTEMS (FAR EAST) LTD.

Effective date: 20130218

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130218

Address after: American California

Patentee after: Entropic Communications, Inc.

Address before: Grand Cayman, Cayman Islands

Patentee before: Trident Microsystems (Far East) Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070425

Termination date: 20140919

EXPY Termination of patent right or utility model