流水线系数可变长度编码的制作方法

文档序号:7628079阅读:204来源:国知局

专利名称::流水线系数可变长度编码的制作方法
技术领域
:本发明涉及可变长度编码,更具体而言涉及用于视频编解码器的系数可变长度编码。
背景技术
:例如移动电话、数码相机和便携式摄像机的便携设备要处理具有比以往更多的像素的运动图像数据,并且例如在相同的能耗下,要求更高的计算能力。通常,视频编解码器包括处理单元,例如运动估计器、运动补偿器、离散余弦转换器、反离散余弦转换器、量化器、反量化器、可变长度编码器和可变长度解码器。在这些处理单元中,可变长度编码器和可变长度解码器对输入数据具有高度依赖性,并且不容易以有效的硬件配置来实现。当前,随着多媒体设备的运动图像数据数量的增加,实时视频编解码器应当在给定时间内处理更多的数据。可变长度编码器需要一个比特一个比特地进行操作,并且查询多个查询表,这样需要高速硬件用于可变长度编码器。特别地,系数可变长度编码器基于系数数据执行游程(run)长度编码,以获得游程数据、电平数据和最终数据(在下文中,统称为“3-维值”),并且查询查询表以获得相应于3-维值的比特矢量。为了压缩系数数据,游程长度编码方法检查以8×8数据块为单位的数据;获得游程、电平和最终数据;为游程、电平和最终数据分配合适的可变比特矢量;将可变比特矢量累加到比特流中;并且随后将比特流存储到存储器中。游程数据表示在非零值出现之前先前连续的零的累加数量。电平数据表示当出现非零值时数据块的系数。最终数据表示8×8块的结尾。上述处理是通过从存储器中取出系数数据,查询查询表(referencetable)和将比特矢量存储和传送到存储器或其他设备中完成的。这样,该处理需要多个时钟周期,并且不可避免地需要流水线结构。依赖于输入的3-维值,在系数编码过程中可能存在“溢出数据(escapedata)”,其不能通过查询通用的查询表来处理。当流水线被这些溢出数据中断(break)时,由于需要地址指针后转以恢复3-维值,所以修复将会很耗时。通常需要当前的系数数据和连续的系数数据,以获得3-维值中的最终数据,这样由于流水线被中断,所以将会消耗许多时钟周期以恢复先前的3-维值。因此,期望最小化用于在溢出数据出现时执行编码处理的时钟周期的浪费,所述溢出数据在流水线被中断时,不能使用通用的查询表处理。
发明内容本发明的示例性实施例提供了一种具有4级流水线的系数可变长度编码方法,其能够在流水线被中断时减少用于恢复流水线的处理时间。本发明的另一个示例性实施例提供了一种具有4级流水线的系数可变长度编码器,其能够在流水线被中断时减少用于恢复流水线的处理时间。在一个示例性实施例中,具有并行的4级流水线操作的系数可变长度编码方法包括在第一时钟周期期间对系数数据执行游程长度编码以获得包括游程数据、电平数据和最终数据的第一3-维值,在第二时钟周期期间传送第一3-维值,在第三时钟周期期间基于传送的第一3-维值获得可变比特矢量,并且在第四时钟周期期间存储该可变比特矢量。在另一个示例性实施例中,具有4级流水线操作的系数可变长度编码器包括游程长度编码器(RLC),被配置成在第一时钟周期期间对从存储器接收的系数数据执行游程长度编码以获得包括游程数据、电平数据和最终数据的第一3-维值,并在第二时钟周期期间传送第一3-维值;以及可变长度编码器(VLC),被配置成在第三时钟周期期间基于传送的第一3-维值来获得可变比特矢量,并在第四时钟周期期间存储该可变比特矢量。在另一个示例性实施例中,具有4级流水线的、用于视频编解码器的可变长度编码器包括内部存储器,用于存储运动矢量和系数数据;宏块信息可变长度编码器,被配置成对信息执行可变长度编码,并将编码的信息传送到内部存储器中以进行存储,该信息包括宏块类型和非零数据存在性;直流(DC)值差分脉码调制(DPCM)编码器,被配置成从内部存储器接收第一块的第一DC值,和对第一DC值和包围第一块的第二块的第二DC值之间的DC值差值来执行DPCM编码,并将DPCM编码结果传送到内部存储器中以进行存储;运动矢量DPCM可变编码器,被配置成从内部存储器接收运动矢量以对运动矢量差值执行第一可变长度编码,并将可变长度编码结果传送到内部存储器中以进行存储;系数可变长度编码器,被配置成从内部存储器接收系数数据,对系数数据执行系数可变长度编码,并将系数可变长度编码数据存储在内部存储器中;直接存储器存取(DMA),被配置成将存储在内部存储器中的编码数据传送到外部存储器中;以及可变长度编码器控制器,被配置成基于控制信号控制宏块信息可变长度编码器、DC值DPCM编码器、运动矢量DPCM可变长度编码器、系数可变长度编码器和DMA;其中,系数可变长度编码器包括游程长度编码器(RLC),被配置成在第一时钟周期期间对从内部存储器接收的系数数据执行游程长度编码以获得包括游程数据、电平数据和最终数据的第一3-维值,并在第二时钟周期期间传送第一3-维值;以及可变长度编码器(VLC),被配置成在第三时钟周期期间基于传送的第一3-维值获得可变比特矢量,并在第四时钟周期期间存储该可变比特矢量。通过参考附图对示例性实施例进行详细描述,本发明的上述和其它特征和优势将变得更明显,其中图1是说明根据本发明的示例性实施例的系数可变长度编码器的框图;图2是说明根据本发明的另一个示例性实施例的、用于图1中的系数可变长度编码器的4级流水线结构的框图;图3A是说明图1中的RLC的状态转移图;图3B是说明图1中的VLC的状态转移图;图4是说明根据本发明的示例性实施例的、图1中的系数可变长度编码器的流水线操作的时序图;图5是说明图1中的VLC的乒乓缓冲器的框图;图6是说明具有图1中的系数可变长度编码器的可变长度编码器的框图;和图7是用于图6中的可变长度编码器的流程图。具体实施例方式在这里公开了本发明的详细说明的实施例。在这里公开的特定结构和功能细节仅仅是为了说明本发明的示例性实施例。但是,本发明可以被具体化为多种替换形式,并且不应被解释为限于在这里所描述的实施例。因此,虽然本发明容许多种变形和替代形式,但是通过附图中的例子的形式示出了本发明的特定实施例,并且将在本文中进行详细描述。应当理解不欲将本发明限制为所公开的特定形式,而是本发明要涵盖所有落入如由权利要求所定义的本发明的精神和范围之内的变形、等价物和替代。相同的附图标记可以用于指示相同的元件。应当注意在一些可替代的实现中,在方框中标注的功能/动作可以不按照在流程图中标注的顺序发生。例如,依赖于所涉及的功能/动作,实际上可以基本上同时地执行两个连续示出的方框,或者有时可能以相反的顺序执行这些方框。图1是说明根据本发明的示例性实施例的、通常由附图标记100指示的系数可变长度编码器的框图。参照图1,系数可变长度编码器100包括游程长度编码器(RLC)110、可变长度编码器(VLC)120以及存储器130。RLC110从存储器130接收系数数据,并对系数数据执行游程长度编码,以产生3-维值,并且将3-维值和索引一起传送到VLC120。3-维值包括游程长度数据、电平数据和最终数据。特别地,RLC110包括用于存储3-维值的3-维值存储缓冲器113,所述3-维值在给定时钟周期期间与相应的索引一起被传送到VLC120。例如,3-维值存储缓冲器113最多可以存储4个3-维值。换句话说,3-维值存储缓冲器113可以存储4个时钟周期的3-维值。这是由于RLC110需要大约4个时钟周期来处理3-维值的溢出。在这4个时钟周期期间,RLC110获得3-维值,以将获得的3-维值传送到VLC120,并当VLC120不能在通用的查询表(即,AC表1和AC表2)中找到3-维值时,VLC120产生溢出信号。当VLC120不能在通用的查询表中找到3-维值从而发生溢出且流水线中断时,RLC110不对获得的3-维值重复游程长度编码,而是在VLC120处理溢出时,重新使用先前存储在3-维值存储缓冲器113中的3-维值。图1中示出的RLC110包括3-维值存储缓冲器113、RLC控制器111、地址发生器115、和游程-电平-最终检验器117。当游程长度编码处理开始时,RLC控制器111向地址发生器115提供地址发生信号ADDR_GEN。地址发生器产生指示将从存储器130中读取的系数数据的地址ADDR。存储器130将相应于地址ADDR的系数数据输出到游程-电平-最终检验器117。当系数数据非零时,游程-电平-最终检验器117产生3-维值RLC_VAL,并将3-维值RLC_VAL传送到RLC控制器111。RLC控制器111从游程-电平-最终检验器117接收3-维值,并判断3-维值RLC_VAL是否是直流(DC)分量。当3-维值RLC_VAL是DC分量时,RLC控制器111激活DC信号IS_DC,并将3-维值RLC_VAL通过信号路径RUN_LEVEL_LAST传送到VLC120。当3-维值RLC_VAL不是DC分量时,RLC控制器111去激活DC信号IS_DC,并将3-维值RLC_VAL通过信号路径RUN_LEVEL_LAST传送到VLC120。同时通过信号路径CURR_INDEX一起传送索引。索引可能具有从1到4的范围内的值,其表示最多存储四个3-维值RLC_VAL的3-维值存储缓冲器113的位置。RLC控制器111在3-维值存储缓冲器113中存储3-维值,以通过信号路径BUF_VAL读取3-维值,并将索引存储在3-维值存储缓冲器113中以通过信号路径BUF_INDEX读取该索引。因此,图1中的RLC110在每个时钟重复产生存储器地址ADDR,并且产生相应于非零系数的3-维值,以输出产生的3-维值以及索引。只要产生了3-维值,RLC110就在3-维值存储缓冲器113的位置中存储3-维值。3-维值存储缓冲器113的位置对应于索引。在下文中,将在VLC120中发生溢出信号ESC_SIG的情况下说明RLC110的操作。当发生溢出信号ESC_SIG时,RLC控制器111通过将溢出索引ESC_INDEX和存储在3-维值存储缓冲器113中的当前索引进行比较,检查是否在3-维值存储缓冲器113中在导致溢出信号的3-维值之后存储了另一个3-维值。当溢出索引等于当前索引时,其指示在导致溢出信号ESC_SIG的3-维值之后没有存储3-维值。另外,不等于当前索引的溢出索引指示在导致溢出信号ESC_SIG的3-维值之后可能存储了一些3-维值。当溢出索引大于当前索引时,在处理了溢出操作之后,将从对应于一个索引(例如,当前索引+1)的3-维值至对应于溢出索引的3-维值的3-维值再次从RLC110传送到VLC120。当溢出索引小于当前索引时,传送从对应于该索引(即,当前索引+1)的3-维值至对应于索引4的3-维值的3-维值,并且随后传送从对应于索引1的3-维值至对应于溢出索引的3-维值的3-维值。RLC控制器111通过指示溢出发生的信号路径ESC_OCCUR通知地址发生器115发生了溢出。当存在一些在导致溢出信号ESC_SIG的3-维值之后存储到3-维值存储缓冲器113中的3-维值时,RLC控制器111在去激活溢出信号之后的每个时钟周期将这些3-维值传送到VLC120。RLC控制器111将存储在3-维值存储缓冲器113中的最终3-维值传送到VLC120,并同时产生一个新的地址发生信号ADDR_GEN,以由此重新启动系数数据的读取。VLC120从RLC110接收DC信号IS_DC、游程-电平-最终信号RUN_LEVEL_LAST,以及当前索引信号CURR_INDEX。当通过游程-电平-最终信号RUN_LEVEL_LAST接收3-维值时,VLC120基于DC信号IS_DC检查3-维值是否是DC值。当3-维值是DC值时,VLC120查询DC表122并且将对应于接收的3-维值的一个比特矢量存储到存储器中。否则,VLC120查询AC表1123或者AC表2124,并且将对应于接收的3-维值的一个可变比特矢量存储到乒乓缓冲器127中。在VLC120中的VLC控制器121利用搜索信号VAL_RLC在查询表(例如,AC表)中搜索3-维值。当在AC表1123和AC表2124中没有发现该3-维值时,发生溢出,VLC控制器121产生溢出信号ESC_SIG,并在下一个时钟周期使用电平溢出表(level-escapetable)125执行电平溢出处理。当正确执行了电平溢出处理之后,VLC控制器121将对应的比特矢量传送到乒乓缓冲器127中,并且去激活溢出信号ESC_SIG。但是,当没有正确执行电平溢出处理时,VLC控制器121使用游程溢出表126执行游程溢出处理,并且保持溢出信号ESC_SIG激活。当正确执行游程溢出处理时,VLC控制器121将对应的比特矢量传送到乒乓缓冲器127中,并且去激活溢出信号ESC_SIG。但是,当没有正确执行游程溢出处理时,VLC控制器121执行固定比特编码,保持溢出信号ESC_SIG激活。在完成固定比特编码之后,VLC控制器121去激活溢出信号ESC_SIG。在搜索查询表之后产生的输出信号ESC_BITVAL_LENGTH可能包括表示溢出是否发生、比特矢量和比特矢量长度等等的信息。在接收到来自查询表的比特矢量之后,VLC控制器121输出比特矢量信号BITVEC_LENGTH到乒乓缓冲器127,以将比特矢量存储到乒乓缓冲器127中。比特矢量信号BITVEC_LENGTH可能包括比特矢量和比特矢量长度等等。乒乓缓冲器127累加接收到的比特矢量,并且输出存储信号ADDR_DATA,以便以给定比特数量为单位将比特矢量存储到存储器130中。存储信号ADDR_DATA可包括将要存储的地址和比特流。通过以给定比特数量为单位增加存储器130的地址,乒乓缓冲器127有效地起VLC120和存储器130之间的缓冲器的作用。下面将详细地描述乒乓缓冲器127。图2是说明根据本发明实施例的、用于图1中的系数可变长度编码器的4级流水线结构的框图。参考图2,图1的系数可变长度编码器100执行四级流水线操作,其通常以附图标记200指示。四级流水线操作200包括用于获得3-维值的GEN级,用于传送获得的3-维值的TRANSFER级,通过使用传送的3-维值获得可变比特矢量的PROCESS级,以及用于将可变比特矢量存储到存储器中的BITS_GEN级。为了执行流水线操作,图1中的系数可变长度编码器100在一个时钟周期中可以从内部存储器中读取系数数据,并且将可变比特流存储到内部存储器中。通过查询对应于3-维值的查询表获得可变比特矢量需要很多时间。例如,查询表可以被实现为逻辑门型表,以便在一个时钟周期内进行处理。逻辑门型表由逻辑电路实现。例如,逻辑门型表可以包括MPEG-4内(intra)系数表、MPEG-4间(inter)系数表、游程溢出表和电平溢出表。因此,在接收了3-维值之后,对应于3-维值的比特矢量仅在一个时钟周期中可用。图3A是说明图1的RLC110的状态转移图,其通常由附图标记300指示。参照图3A,图1中的RLC110在空闲状态IDLE启动游程长度编码操作,并且转移到地址产生状态ADR_GEN,其中RLC110分配存储器地址,并且从内部存储器中读取系数数据。在系数数据包括DC系数的情况下,RLC110转移到DC传送状态DC_SET,以便使用其它系数不同地处理DC系数。在系数数据不包括DC系数或者由于传送DC系数而导致系数数据中仅剩余AC系数的情况下,RLC110转移到AC传送状态ADDRST,其中RLC110获得新的3-维值,将新的3-维值传送到VLC120,并且随后在给定时钟周期中将新的3-维值存储到对应于索引的存储器地址中。在AC传送状态ADDRST中,RLC110重复地获得3-维值,将3-维值与索引传送到VLC120,并且随后产生下一个内部存储器地址。由于直到溢出发生流水线不会中断,所以RLC110能够执行高速可变长度编码。当在AC传送状态ADDRST期间从VLC120接收到激活的溢出信号ESC_SIG时,RLC110转移回地址产生状态ADR_GEN,其中当去激活溢出信号ESC_SIG时,RLC110再次传送先前在对应于溢出索引的3-维值之后存储的3-维值。当在DC传送状态DC_SET中将DC系数传送到VLC120之后没有剩余AC系数或者所有的系数都被传送到了VLC120时,RLC110转移到最终状态LASTST,并且随之结束游程长度编码操作。接下来,说明图3A中的信号,DCDATAEN信号表示系数数据包含DC系数。DCONLYDATA信号表示包含DC系数的系数数据仅仅包括DC系数而没有AC系数。ACEXIT表示包含DC系数的系数数据包括AC系数。ESC_SIG信号表示溢出发生在VLC120中。LASTCHECK信号表示RLC处理结束。ESC_SIG是外部提供的,而其它信号是在RLC120中产生和使用的。图3B是说明图1的VLC120的状态转移图,其通常由附图标记350指示。参照图3B,图1中的VLC120在空闲状态IDLE启动一个可变长度编码操作,并且转移到检查状态CHECKST,其中VLC120从RLC110接收3-维值和索引,查询查询表以搜索对应于3-维值的可变比特矢量,然后将可变比特矢量存储在存储器中。当发生不能通过通用查询表处理的溢出的情况下,VLC120激活溢出信号ESC_SIG,转移至第一溢出状态ESC1,并对电平数据执行电平溢出处理。当在第一溢出状态ESC1中的电平溢出处理失败时,VLC120转移至第二溢出状态ESC2,并对游程数据执行游程溢出处理。当在第二溢出状态ESC2中的游程溢出处理失败时,VLC120转移至第三溢出状态ESC3,并执行固定比特编码。当在第一溢出状态ESC1或第二溢出状态ESC2中溢出处理成功时,或当在第三溢出状态ESC3完成固定比特编码时,则VLC120去激活溢出信号ESC_SIG并转移到溢出处理完成状态ESC_PROC,以便存储获得的比特矢量。在溢出处理完成状态ESC_PROC中存储了比特矢量之后,VLC120转移到检查状态CHECKST。然而,当LAST数据等于1时,VLC120转移到完成状态LASTST,并且随后完成可变长度编码操作。当VLC120进入到第一溢出状态ESC1时,VLC120通过发送溢出信号ESC_SIG通知RLC110需要附加的时钟周期,以便RLC110转移到地址产生状态ADR_GEN。同时,VLC120通过发送溢出索引ESC_INDEX通知RLC110发生溢出的索引,以便RLC110不再对在RLC110执行溢出操作时获得的3-维值执行游程长度编码,而是将先前存储的3-维值传送到VLC120中。这样,当流水线被中断时,时钟周期的浪费将会被最小化。由于RLC110处于地址产生状态ADR_GEN,所以流水线处理重新启动。接下来,说明图3B中的信号。GETRUNLEVELLAST信号表示VLC120重复地从RLC110接收数据。ESC_SIG信号表示VLC120在通用查询表中不能找到接收的3-维值,或者发生了溢出。ESC_SIG信号也被传送至RLC110,并且RLC110等待直到响应于ESC_SIG信号结束溢出状态。ONLYLEVELESCAPE信号表示溢出状态是电平溢出。ONLYRUNESCAPE信号表示溢出状态是游程溢出。CHECKLAST信号表示在接收的3-维值中的最终数据信号等于1。ESC_SIG是外部提供的,而其它信号是在VLC中产生和使用的。图4是说明根据本发明示例性实施例的、图1的系数可变长度编码器100的流水线操作的时序图,其通常由附图标记400指示。参照图4,图4中的时序图的垂直轴表示4级流水线操作的每一级。因此,图4说明了4级流水线操作的连续编码操作,其包括用于获得3-维值的GEN级,用于传送获得的3-维值的TRANSFER级,用于通过使用传送的3-维值获得可变比特矢量的PROCESS级,以及将比特矢量作为比特流存储到内部存储器中的BITS_GEN级。在GEN级,系数可变长度编码器连续获得第一3-维值(步骤GEN_A)、第二3-维值(步骤GEN_B)、第三3-维值(步骤GEN_C),并且在经过一个时钟周期之后,系数可变长度编码器连续获得第四3-维值(步骤GEN_D)和第五3-维值(步骤GEN_E)。当系数数据都是零时,经过了一个时钟周期,因此,如图4所示,可能不是每个时钟周期都获得3-维值。在GEN级的步骤GEN_A中获得第一3-维值之后,紧跟着传送级TRANSFER。因此,在对应的GEN级之后晚一个时钟,传送级TRANSFER开始。当流水线没有中断时,在传送级TRANSFER之后晚一个时钟处理级PROCESS开始。因此,在传送步骤TX_A和TX_B之后晚一个时钟分别执行获得关于第一和第二3-维值的可变比特矢量的步骤PROC_A和PROC_B。在处理级PROCESS之后晚一个时钟,将可变比特矢量作为比特流存储到内部存储器中的BITS_GEN级开始。因此,在步骤PROC_A和PROC_B之后晚一个时钟,分别执行将可变比特矢量存储到内部存储器中的步骤MAKE_BIT_A和MAKE_BIT_B。图4中步骤GEN_C的第三3-维值表示溢出的出现。当溢出是电平溢出时,用3个时钟周期来获得比特矢量,也就是说,一个时钟周期用于确定是否在通用查询表上发现该3-维值,另一个时钟周期用于对电平数据执行电平溢出处理,而再一个时钟周期用于产生比特矢量。这三个时钟的每一个可以分别与图3B中状态转移图的检查状态CHECKST、第一溢出状态ESC1和溢出处理完成状态ESC_PROC相匹配。因此,在产生对应于电平溢出的比特矢量的3个时钟周期之后,再一次通过步骤TX_D传送GEN级中的步骤GEN_D的第四3-维值。根据本发明的该示例性实施例,当传送步骤GEN_D的第四3-维值时,系数可变长度编码器不执行游程长度编码以获得第四3-维值,而是重新使用先前存储的第四3-维值。在处理第三3-维值的溢出操作的同时,获得了两个3-维值(步骤GEN_D和GEN_E)。在第三3-维值的溢出操作之后,将这两个3-维值作为先前存储的3-维值重新使用。在重传两个3-维值(步骤TX_D和步骤TX_E)之后,流水线处理操作重新启动。如图4中的大括号所示,游程数据的游程数据溢出操作比电平数据的电平溢出操作多需要一个时钟,并且固定比特编码比游程数据的游程数据溢出操作多需要一个时钟。这是因为,如图3B中的状态转移图350所示,游程数据溢出操作多经过一个状态,即第二溢出状态ESC2,而固定比特编码多经过两个状态,即第二和第三溢出状态ESC2和ESC3。因此,在游程数据溢出或固定比特编码的情况下,GEN级在获得比特矢量之后再次启动。图5是说明来自图1的VLC的乒乓缓冲器127的框图,其通常由附图标记500指示。VLC120具有乒乓缓冲器127,其中累加了比特矢量以便在内部存储器中以给定比特数量为单位存储累加的比特矢量。参照图5,乒乓缓冲器可以包括两个32比特的缓冲器。首先在图5中乒乓缓冲器的左边的32比特缓冲器中存储比特矢量,然后在右边的32比特缓冲器中存储比特矢量。随着VLC120的编码处理的进行,将比特矢量在乒乓缓冲器中累加作为比特流。将比特矢量填充入左边的32比特缓冲器。然后当左边的32比特缓冲器被比特矢量填满时,在右边的32比特缓冲器中连续累加比特矢量,并且将存储在左边的32比特缓冲器中的32比特流传送到内部存储器中。以相同的方式,在右边的32比特缓冲器中被比特矢量填满之后,在左边的32比特缓冲器中连续累加比特矢量,并且将存储在右边的32比特缓冲器中的32比特流传送到内部存储器中。通过重复上述处理,乒乓缓冲器可以创建32比特流,并且将32比特流传送到内部存储器中而无需附加的时钟周期。可以可控地设计一个比特指针,其指示在乒乓缓冲器中累加的当前比特的位置以及在内部存储器中存储的比特流的存储器地址,以使得乒乓缓冲器可以产生比特流而无需附加的比特复制或比特重定位。图6是说明具有图1的系数可变长度编码器100的可变长度编码器的框图,其通常由附图标记600指示。参照图6,可变长度编码器包括内部存储器610、宏块信息可变长度编码器620、DC值差分脉码调制(DPCM)编码器630、运动矢量DPCM可变长度编码器640、系数可变长度编码器650、直接存储器存取(DMA)660、以及可变长度编码器控制器670。内部存储器610接收运动矢量和系数数据等,以存储运动矢量和系数数据等。宏块信息可变长度编码器620对指示宏块类型和非零数据存在性等的信息执行可变长度编码,并随后将可变长度编码的结果传送到内部存储器610中。非零数据存在性表示非零数据是否存在。DC值DPCM编码器630从内部存储器610接收第一块的第一DC值,然后对第一块的第一DC值和包围第一块的第二块的第二DC值之间的差值执行DPCM编码,并随后将DPCM编码的结果传送到内部存储器610。运动矢量DPCM可变编码器640从内部存储器610接收运动矢量,其表示通过以宏块或宏块的子块为单位比较第一块和包围第一块的第二块之间的相似性而获得的运动,并随后对第一块的运动矢量和包围第一块的第二块的运动矢量之间的差值执行差分编码,由此将可变长度编码的结果传送到内部存储器610中。系数可变长度编码器650从内部存储器610接收系数数据,对系数数据执行可变长度编码以获得比特流,并随后将比特流存储在内部存储器610中。系数可变长度编码器650可以采用图1中的系数可变长度编码器,其执行四级流水线操作,并且通过在发生溢出时重新使用先前获得的3-维值来减少用于恢复中断的流水线的时间。DMA660将内部存储器610中的数据发送到外部存储器(未示出)。可变长度编码器控制器670接收控制信号,并基于控制信号控制宏块信息可变长度编码器620、DC值DPCM编码器630、运动矢量DPCM可变长度编码器640、系数可变长度编码器650、以及DMA660。图7是用于图6的可变长度编码器600的流程图,其通常由附图标记700指示。参照图7,图6中的可变长度编码器执行与系数可变长度编码处理并行的运动矢量DPCM可变长度编码处理。运动矢量DPCM可变长度编码处理在步骤S721确定该块是否处于间模式(intermode)。在间模式情况下,在步骤S722执行运动矢量DPCM处理,并随后在步骤S723执行可变长度编码处理。图6中的可变长度编码器同时执行运动矢量DPCM可变长度编码处理和系数可变长度编码处理。系数编码处理以在步骤S711确定该块是否处于内模式(intramode)开始。在内模式情况下,在步骤S712对包围的DC值执行DC值DPCM处理,然后连续执行在步骤S713的游程长度编码和在步骤S714的可变长度编码。当图像不处于内模式时,直接连续执行在步骤S713的游程长度编码和在步骤S714的可变长度编码。接下来,系数编码处理确定该编码块是否是宏块的最终块。当编码块不是最终块时,系数编码处理跳到步骤S711,否则跳到步骤S731。可变长度编码器确定系数可变长度编码处理和运动矢量DPCM可变长度编码处理是否在步骤S731完成。然后在步骤S732创建宏块报头,并且在步骤S733存储比特流数据。如上所述,根据本发明示例性实施例的系数可变长度编码方法和系数可变长度编码器采用了四级流水线操作。因此可变比特矢量是在每个时钟周期创建的,由此提高系数可变编码处理的速度。当发生溢出并且流水线操作中断时,系数可变长度编码器不执行游程长度编码,而是将在处理溢出的同时创建的3-维值存储到缓冲器中以重新传送先前存储的3-维值,以便于减少用于恢复流水线的处理时间。因此可以有效地执行用于高分辩率运动图像数据的可变长度编码。虽然已经详细描述了本发明的示例性实施例和相应的优点,应当理解在不偏离由本发明所附权利要求定义的本发明的范围的前提下可以做出多种改变、替换和变形。权利要求1.一种包括并行的4级流水线操作的系数可变长度编码方法,包括在第一时钟周期期间,对系数数据执行游程长度编码以获得包括游程数据、电平数据和最终数据的第一3-维值;在第二时钟周期期间,传送该第一3-维值;在第三时钟周期期间,基于传送的第一3-维值获得可变比特矢量;以及在第四时钟周期期间,存储该可变比特矢量。2.根据权利要求1的方法,其中基于对应于第一3-维值的门型查询表,获得可变比特矢量。3.根据权利要求1的方法,其中所述传送第一3-维值包括传送对应于第一3-维值的索引;以及在给定时钟周期中存储第一3-维值和索引,以及其中所述获得可变比特矢量包括当发生溢出时,重新使用具有对应的索引的存储的第一3-维值来获得可变比特矢量,而不是对第二3-维值执行游程长度编码,该第二3-维值是在处理溢出操作的同时获得的,并且当在通用查询表中没有找到传送的第一3-维值时处理溢出操作。4.根据权利要求3的方法,其中该给定时钟周期对应于4个时钟周期。5.根据权利要求4的方法,其中系数可变长度编码方法进一步包括在传送第二3-维值之后,重复四级流水级操作。6.一种用于执行四级流水线操作的系数可变长度编码器,包括游程长度编码器(RLC),被配置成在第一时钟周期期间对从存储器接收的系数数据执行游程长度编码,以获得包括游程数据、电平数据和最终数据的第一3-维值,以及在第二时钟周期期间传送该第一3-维值;以及可变长度编码器(VLC),被配置成在第三时钟周期期间基于传送的第一3-维值获得可变比特矢量,以及在第四时钟周期期间存储该可变比特矢量。7.根据权利要求6的系数可变长度编码器,其中该RLC包括3-维值存储缓冲器,其在给定时钟周期期间将传送的第一3-维值存储在该3-维值存储缓冲器的一个位置中,该位置与对应于该传送的第一3-维值的索引有关。8.根据权利要求7的系数可变长度编码器,其中该给定时钟周期对应于4个时钟周期。9.根据权利要求8的系数可变长度编码器,其中该RLC输出包括第一3-维值的游程-电平-最终信号、对应于该游程-电平-最终信号的索引信号、以及指示该第一3-维值是否是DC值的DC信号,以便传送该第一3-维值,并且从VLC接收溢出信号和溢出索引信号。10.根据权利要求9的系数可变长度编码器,其中该VLC被配置成通过使用对应于该第一3-维值的门型查询表来获得该可变比特矢量。11.根据权利要求10的系数可变长度编码器,其中该VLC被配置成从该RLC接收游程-电平-最终信号、索引信号和DC信号,以及输出溢出信号和溢出索引信号。12.根据权利要求11的系数可变长度编码器,其中该VLC被配置成当该VLC在通用查询表中找不到该第一3-维值时激活该溢出信号,输出包括对应于该第一3-维值的索引的溢出索引信号,以及处理溢出操作。13.根据权利要求12的系数可变长度编码器,其中当激活该溢出信号时,该RLC被配置成通过使用该溢出索引信号来从该3-维值存储缓冲器接收第二3-维值,并将该第二3-维值传送到该VLC,该第二3-维值是在处理溢出操作时获得的,并且当在通用查询表中没有找到传送的第一3-维值时处理该溢出操作。14.根据权利要求13的系数可变长度编码器,其中该VLC包括用于累加该可变比特矢量以及以给定比特数量为单位将该可变比特矢量传送到存储器的乒乓缓冲器。15.一种用于视频编解码器的可变长度编码器,该可变长度编码器执行四级流水线操作,该可变长度编码器包括内部存储器,用于存储运动矢量和系数数据;宏块信息可变长度编码器,被配置成对信息执行可变长度编码,并将编码的信息传送到内部存储器中以进行存储,该信息包括宏块类型和非零数据存在性;直流(DC)值差分脉码调制(DPCM)编码器,被配置成从内部存储器接收第一块的第一DC值,和对第一DC值和包围第一块的第二块的第二DC值之间的DC值差值执行DPCM编码,并将DPCM编码结果传送到内部存储器中以进行存储;运动矢量DPCM可变编码器,被配置成从内部存储器接收运动矢量以对运动矢量差值执行第一可变长度编码,并将可变长度编码结果传送到内部存储器中以进行存储;系数可变长度编码器,被配置成从内部存储器接收系数数据,对系数数据执行系数可变长度编码,并将系数可变长度编码数据存储在内部存储器中;直接存储器存取(DMA),被配置成将存储在内部存储器中的编码数据传送到外部存储器中;以及可变长度编码器控制器,被配置成基于控制信号控制宏块信息可变长度编码器、DC值DPCM编码器、运动矢量DPCM可变长度编码器、系数可变长度编码器和DMA;其中,系数可变长度编码器包括游程长度编码器(RLC),被配置成在第一时钟周期期间对从内部存储器接收的系数数据执行游程长度编码以获得包括游程数据、电平数据和最终数据的第一3-维值,并在第二时钟周期期间传送该第一3-维值;以及可变长度编码器(VLC),被配置成在第三时钟周期期间基于传送的第一3-维值获得可变比特矢量,并在第四时钟周期期间存储该可变比特矢量。16.根据权利要求15的可变长度编码器,其中运动矢量DPCM可变编码器和系数可变长度编码器并行操作。17.根据权利要求16的可变长度编码器,其中在给定时钟周期期间,RLC将第一3-维值存储在内部存储器的一个位置中,该位置于对应于一个索引。18.根据权利要求17的可变长度编码器,其中该VLC被配置成当该VLC在通用查询表中没有找到该第一3-维值时激活溢出信号,并输出包括对应于该第一3-维值的索引的溢出索引信号。19.根据权利要求18的可变长度编码器,其中当激活溢出信号时,该RLC被配置成通过使用溢出索引信号来从3-维值存储缓冲器接收第二3-维值,并且将该第二3-维值传送到该VLC中,该第二3-维值是在处理溢出操作时获得的,并且当在通用查询表中没有发现传送的第一3-维值时处理该溢出操作。20.根据权利要求19的可变长度编码器,其中该VLC包括用于累加可变比特矢量和以给定比特数量为单位将可变比特矢量传送到内部存储器的乒乓缓冲器。全文摘要根据一种采用四级流水线的系数可变长度编码方法,通过对系数数据执行游程长度编码来获得包括游程、电平和最终数据的3-维值,其中,在传送3-维值之后,从传送的3-维值中获得可变比特矢量,并存储该可变比特矢量,并且其中,特别在流水线中断的情况下,该方法重新使用先前获得的3-维值以最小化处理时间,使得通过有效的流水线操作来迅速执行系数可变长度编码,并且可以以最少的时间恢复中断的流水线。文档编号H04N7/30GK1758760SQ200510124930公开日2006年4月12日申请日期2005年7月26日优先权日2004年7月26日发明者李庆九,姜呈善,赵真显,朴泰焕申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1