CN1758760A - 流水线系数可变长度编码 - Google Patents

流水线系数可变长度编码 Download PDF

Info

Publication number
CN1758760A
CN1758760A CNA2005101249309A CN200510124930A CN1758760A CN 1758760 A CN1758760 A CN 1758760A CN A2005101249309 A CNA2005101249309 A CN A2005101249309A CN 200510124930 A CN200510124930 A CN 200510124930A CN 1758760 A CN1758760 A CN 1758760A
Authority
CN
China
Prior art keywords
dimension value
variable length
coefficient
length coding
rlc
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
CNA2005101249309A
Other languages
English (en)
Other versions
CN100548050C (zh
Inventor
李庆九
姜呈善
赵真显
朴泰焕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1758760A publication Critical patent/CN1758760A/zh
Application granted granted Critical
Publication of CN100548050C publication Critical patent/CN100548050C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • H04N19/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • 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/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
    • 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/93Run-length coding

Landscapes

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

Abstract

根据一种采用四级流水线的系数可变长度编码方法,通过对系数数据执行游程长度编码来获得包括游程、电平和最终数据的3-维值,其中,在传送3-维值之后,从传送的3-维值中获得可变比特矢量,并存储该可变比特矢量,并且其中,特别在流水线中断的情况下,该方法重新使用先前获得的3-维值以最小化处理时间,使得通过有效的流水线操作来迅速执行系数可变长度编码,并且可以以最少的时间恢复中断的流水线。

Description

流水线系数可变长度编码
相关申请的交叉参考
本申请要求2004年7月26日提交的韩国专利申请第2004-0058134号的权益,其全部内容通过引用合并在本文中。
技术领域
本发明涉及可变长度编码,更具体而言涉及用于视频编解码器的系数可变长度编码。
背景技术
例如移动电话、数码相机和便携式摄像机的便携设备要处理具有比以往更多的像素的运动图像数据,并且例如在相同的能耗下,要求更高的计算能力。
通常,视频编解码器包括处理单元,例如运动估计器、运动补偿器、离散余弦转换器、反离散余弦转换器、量化器、反量化器、可变长度编码器和可变长度解码器。在这些处理单元中,可变长度编码器和可变长度解码器对输入数据具有高度依赖性,并且不容易以有效的硬件配置来实现。
当前,随着多媒体设备的运动图像数据数量的增加,实时视频编解码器应当在给定时间内处理更多的数据。可变长度编码器需要一个比特一个比特地进行操作,并且查询多个查询表,这样需要高速硬件用于可变长度编码器。
特别地,系数可变长度编码器基于系数数据执行游程(run)长度编码,以获得游程数据、电平数据和最终数据(在下文中,统称为“3-维值”),并且查询查询表以获得相应于3-维值的比特矢量。为了压缩系数数据,游程长度编码方法检查以8×8数据块为单位的数据;获得游程、电平和最终数据;为游程、电平和最终数据分配合适的可变比特矢量;将可变比特矢量累加到比特流中;并且随后将比特流存储到存储器中。
游程数据表示在非零值出现之前先前连续的零的累加数量。电平数据表示当出现非零值时数据块的系数。最终数据表示8×8块的结尾。上述处理是通过从存储器中取出系数数据,查询查询表(reference table)和将比特矢量存储和传送到存储器或其他设备中完成的。这样,该处理需要多个时钟周期,并且不可避免地需要流水线结构。
依赖于输入的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。
RLC 110从存储器130接收系数数据,并对系数数据执行游程长度编码,以产生3-维值,并且将3-维值和索引一起传送到VLC 120。3-维值包括游程长度数据、电平数据和最终数据。
特别地,RLC 110包括用于存储3-维值的3-维值存储缓冲器113,所述3-维值在给定时钟周期期间与相应的索引一起被传送到VLC 120。
例如,3-维值存储缓冲器113最多可以存储4个3-维值。换句话说,3-维值存储缓冲器113可以存储4个时钟周期的3-维值。这是由于RLC 110需要大约4个时钟周期来处理3-维值的溢出。在这4个时钟周期期间,RLC 110获得3-维值,以将获得的3-维值传送到VLC 120,并当VLC 120不能在通用的查询表(即,AC表1和AC表2)中找到3-维值时,VLC 120产生溢出信号。
当VLC 120不能在通用的查询表中找到3-维值从而发生溢出且流水线中断时,RLC 110不对获得的3-维值重复游程长度编码,而是在VLC 120处理溢出时,重新使用先前存储在3-维值存储缓冲器113中的3-维值。
图1中示出的RLC 110包括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传送到VLC 120。当3-维值RLC_VAL不是DC分量时,RLC控制器111去激活DC信号IS_DC,并将3-维值RLC_VAL通过信号路径RUN_LEVEL_LAST传送到VLC 120。同时通过信号路径CURR_INDEX一起传送索引。索引可能具有从1到4的范围内的值,其表示最多存储四个3-维值RLC_VAL的3-维值存储缓冲器113的位置。RLC控制器111在3-维值存储缓冲器113中存储3-维值,以通过信号路径BUF_VAL读取3-维值,并将索引存储在3-维值存储缓冲器113中以通过信号路径BUF_INDEX读取该索引。
因此,图1中的RLC 110在每个时钟重复产生存储器地址ADDR,并且产生相应于非零系数的3-维值,以输出产生的3-维值以及索引。只要产生了3-维值,RLC 110就在3-维值存储缓冲器113的位置中存储3-维值。3-维值存储缓冲器113的位置对应于索引。
在下文中,将在VLC 120中发生溢出信号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-维值再次从RLC 110传送到VLC 120。
当溢出索引小于当前索引时,传送从对应于该索引(即,当前索引+1)的3-维值至对应于索引4的3-维值的3-维值,并且随后传送从对应于索引1的3-维值至对应于溢出索引的3-维值的3-维值。
RLC控制器111通过指示溢出发生的信号路径ESC_OCCUR通知地址发生器115发生了溢出。当存在一些在导致溢出信号ESC_SIG的3-维值之后存储到3-维值存储缓冲器113中的3-维值时,RLC控制器111在去激活溢出信号之后的每个时钟周期将这些3-维值传送到VLC 120。RLC控制器111将存储在3-维值存储缓冲器113中的最终3-维值传送到VLC 120,并同时产生一个新的地址发生信号ADDR_GEN,以由此重新启动系数数据的读取。
VLC 120从RLC 110接收DC信号IS_DC、游程-电平-最终信号RUN_LEVEL_LAST,以及当前索引信号CURR_INDEX。当通过游程-电平-最终信号RUN_LEVEL_LAST接收3-维值时,VLC 120基于DC信号IS_DC检查3-维值是否是DC值。当3-维值是DC值时,VLC 120查询DC表122并且将对应于接收的3-维值的一个比特矢量存储到存储器中。否则,VLC 120查询AC表1123或者AC表2124,并且将对应于接收的3-维值的一个可变比特矢量存储到乒乓缓冲器127中。在VLC 120中的VLC控制器121利用搜索信号VAL_RLC在查询表(例如,AC表)中搜索3-维值。当在AC表1123和AC表2 124中没有发现该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有效地起VLC 120和存储器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的RLC 110的状态转移图,其通常由附图标记300指示。
参照图3A,图1中的RLC 110在空闲状态IDLE启动游程长度编码操作,并且转移到地址产生状态ADR_GEN,其中RLC 110分配存储器地址,并且从内部存储器中读取系数数据。在系数数据包括DC系数的情况下,RLC 110转移到DC传送状态DC_SET,以便使用其它系数不同地处理DC系数。在系数数据不包括DC系数或者由于传送DC系数而导致系数数据中仅剩余AC系数的情况下,RLC 110转移到AC传送状态ADDRST,其中RLC 110获得新的3-维值,将新的3-维值传送到VLC 120,并且随后在给定时钟周期中将新的3-维值存储到对应于索引的存储器地址中。
在AC传送状态ADDRST中,RLC 110重复地获得3-维值,将3-维值与索引传送到VLC 120,并且随后产生下一个内部存储器地址。由于直到溢出发生流水线不会中断,所以RLC 110能够执行高速可变长度编码。当在AC传送状态ADDRST期间从VLC 120接收到激活的溢出信号ESC_SIG时,RLC110转移回地址产生状态ADR_GEN,其中当去激活溢出信号ESC_SIG时,RLC 110再次传送先前在对应于溢出索引的3-维值之后存储的3-维值。
当在DC传送状态DC_SET中将DC系数传送到VLC 120之后没有剩余AC系数或者所有的系数都被传送到了VLC 120时,RLC 110转移到最终状态LASTST,并且随之结束游程长度编码操作。
接下来,说明图3A中的信号,DCDATAEN信号表示系数数据包含DC系数。DCONLYDATA信号表示包含DC系数的系数数据仅仅包括DC系数而没有AC系数。ACEXIT表示包含DC系数的系数数据包括AC系数。ESC_SIG信号表示溢出发生在VLC 120中。LASTCHECK信号表示RLC处理结束。ESC_SIG是外部提供的,而其它信号是在RLC 120中产生和使用的。
图3B是说明图1的VLC 120的状态转移图,其通常由附图标记350指示。
参照图3B,图1中的VLC 120在空闲状态IDLE启动一个可变长度编码操作,并且转移到检查状态CHECKST,其中VLC 120从RLC 110接收3-维值和索引,查询查询表以搜索对应于3-维值的可变比特矢量,然后将可变比特矢量存储在存储器中。
当发生不能通过通用查询表处理的溢出的情况下,VLC 120激活溢出信号ESC_SIG,转移至第一溢出状态ESC 1,并对电平数据执行电平溢出处理。当在第一溢出状态ESC 1中的电平溢出处理失败时,VLC 120转移至第二溢出状态ESC 2,并对游程数据执行游程溢出处理。当在第二溢出状态ESC 2中的游程溢出处理失败时,VLC 120转移至第三溢出状态ESC 3,并执行固定比特编码。当在第一溢出状态ESC 1或第二溢出状态ESC 2中溢出处理成功时,或当在第三溢出状态ESC 3完成固定比特编码时,则VLC 120去激活溢出信号ESC_SIG并转移到溢出处理完成状态ESC_PROC,以便存储获得的比特矢量。
在溢出处理完成状态ESC_PROC中存储了比特矢量之后,VLC 120转移到检查状态CHECKST。然而,当LAST数据等于1时,VLC 120转移到完成状态LASTST,并且随后完成可变长度编码操作。
当VLC 120进入到第一溢出状态ESC 1时,VLC 120通过发送溢出信号ESC_SIG通知RLC 110需要附加的时钟周期,以便RLC 110转移到地址产生状态ADR_GEN。同时,VLC 120通过发送溢出索引ESC_INDEX通知RLC 110发生溢出的索引,以便RLC 110不再对在RLC 110执行溢出操作时获得的3-维值执行游程长度编码,而是将先前存储的3-维值传送到VLC 120中。这样,当流水线被中断时,时钟周期的浪费将会被最小化。由于RLC 110处于地址产生状态ADR_GEN,所以流水线处理重新启动。
接下来,说明图3B中的信号。GETRUNLEVELLAST信号表示VLC 120重复地从RLC 110接收数据。ESC_SIG信号表示VLC 120在通用查询表中不能找到接收的3-维值,或者发生了溢出。ESC_SIG信号也被传送至RLC 110,并且RLC 110等待直到响应于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、第一溢出状态ESC 1和溢出处理完成状态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指示。VLC 120具有乒乓缓冲器127,其中累加了比特矢量以便在内部存储器中以给定比特数量为单位存储累加的比特矢量。
参照图5,乒乓缓冲器可以包括两个32比特的缓冲器。首先在图5中乒乓缓冲器的左边的32比特缓冲器中存储比特矢量,然后在右边的32比特缓冲器中存储比特矢量。随着VLC 120的编码处理的进行,将比特矢量在乒乓缓冲器中累加作为比特流。将比特矢量填充入左边的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-维值来减少用于恢复中断的流水线的时间。
DMA 660将内部存储器610中的数据发送到外部存储器(未示出)。可变长度编码器控制器670接收控制信号,并基于控制信号控制宏块信息可变长度编码器620、DC值DPCM编码器630、运动矢量DPCM可变长度编码器640、系数可变长度编码器650、以及DMA 660。
图7是用于图6的可变长度编码器600的流程图,其通常由附图标记700指示。
参照图7,图6中的可变长度编码器执行与系数可变长度编码处理并行的运动矢量DPCM可变长度编码处理。
运动矢量DPCM可变长度编码处理在步骤S721确定该块是否处于间模式(inter mode)。在间模式情况下,在步骤S722执行运动矢量DPCM处理,并随后在步骤S723执行可变长度编码处理。图6中的可变长度编码器同时执行运动矢量DPCM可变长度编码处理和系数可变长度编码处理。
系数编码处理以在步骤S711确定该块是否处于内模式(intra mode)开始。在内模式情况下,在步骤S712对包围的DC值执行DC值DPCM处理,然后连续执行在步骤S713的游程长度编码和在步骤S714的可变长度编码。当图像不处于内模式时,直接连续执行在步骤S713的游程长度编码和在步骤S714的可变长度编码。接下来,系数编码处理确定该编码块是否是宏块的最终块。当编码块不是最终块时,系数编码处理跳到步骤S711,否则跳到步骤S731。
可变长度编码器确定系数可变长度编码处理和运动矢量DPCM可变长度编码处理是否在步骤S731完成。然后在步骤S732创建宏块报头,并且在步骤S733存储比特流数据。
如上所述,根据本发明示例性实施例的系数可变长度编码方法和系数可变长度编码器采用了四级流水线操作。因此可变比特矢量是在每个时钟周期创建的,由此提高系数可变编码处理的速度。当发生溢出并且流水线操作中断时,系数可变长度编码器不执行游程长度编码,而是将在处理溢出的同时创建的3-维值存储到缓冲器中以重新传送先前存储的3-维值,以便于减少用于恢复流水线的处理时间。因此可以有效地执行用于高分辩率运动图像数据的可变长度编码。
虽然已经详细描述了本发明的示例性实施例和相应的优点,应当理解在不偏离由本发明所附权利要求定义的本发明的范围的前提下可以做出多种改变、替换和变形。

Claims (20)

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包括:用于累加可变比特矢量和以给定比特数量为单位将可变比特矢量传送到内部存储器的乒乓缓冲器。
CNB2005101249309A 2004-07-26 2005-07-26 流水线系数可变长度编码 Expired - Fee Related CN100548050C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20040058134A KR100604986B1 (ko) 2004-07-26 2004-07-26 4단계 파이프라인 방식의 계수 가변장 부호화방법 및 계수가변장 부호화기
KR58134/04 2004-07-26

Publications (2)

Publication Number Publication Date
CN1758760A true CN1758760A (zh) 2006-04-12
CN100548050C CN100548050C (zh) 2009-10-07

Family

ID=36703905

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101249309A Expired - Fee Related CN100548050C (zh) 2004-07-26 2005-07-26 流水线系数可变长度编码

Country Status (4)

Country Link
US (1) US7995655B2 (zh)
JP (1) JP4750490B2 (zh)
KR (1) KR100604986B1 (zh)
CN (1) CN100548050C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101090503B (zh) * 2007-07-05 2010-06-02 北京中星微电子有限公司 熵编码控制方法及熵编码电路
CN103650514B (zh) * 2011-07-11 2016-12-14 高通股份有限公司 使用vlc码字来译码语法元素的方法和装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135072B2 (en) * 2007-08-01 2012-03-13 Lsi Corporation CAVLC run before encode with zero cycle costs
ES2418133T3 (es) * 2007-11-13 2013-08-12 Invista Technologies S.À.R.L. Unión de películas termo-activadas con un plastificante
US20100053181A1 (en) * 2008-08-31 2010-03-04 Raza Microelectronics, Inc. Method and device of processing video

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07240844A (ja) * 1993-03-19 1995-09-12 Mitsubishi Electric Corp 画像データ処理装置および画像データ処理方法
JP2870515B2 (ja) * 1996-12-27 1999-03-17 日本電気株式会社 可変長符号化装置
JP4531871B2 (ja) * 1997-10-30 2010-08-25 富士通セミコンダクター株式会社 画像情報処理装置及び符号装置
KR19990049273A (ko) * 1997-12-12 1999-07-05 전주범 디지털 브이씨알의 가변길이 복호화 장치
JPH11215009A (ja) 1998-01-22 1999-08-06 Sony Corp 符号復号装置
US6334180B1 (en) * 1999-06-27 2001-12-25 Sun Microsystems, Inc. Processor coupled by visible register set to modular coprocessor including integrated multimedia unit
KR100349058B1 (ko) * 2000-06-15 2002-08-21 (주)씨앤에스 테크놀로지 영상압축복원장치
JP2002237754A (ja) 2001-02-07 2002-08-23 Canon Inc 可変長復号化装置及び方法
JP2002246914A (ja) * 2001-02-15 2002-08-30 Nippon Telegr & Teleph Corp <Ntt> 符号変換装置と符号変換方法および符号変換プログラムを記録した記録媒体と符号変換プログラム
JP3866580B2 (ja) * 2002-01-30 2007-01-10 日本電信電話株式会社 画像符号化装置、画像復号装置、画像符号化プログラム、画像復号プログラム及びそれらのプログラムを記録したコンピュータ読み取り可能な記録媒体

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101090503B (zh) * 2007-07-05 2010-06-02 北京中星微电子有限公司 熵编码控制方法及熵编码电路
CN103650514B (zh) * 2011-07-11 2016-12-14 高通股份有限公司 使用vlc码字来译码语法元素的方法和装置

Also Published As

Publication number Publication date
JP4750490B2 (ja) 2011-08-17
JP2006042331A (ja) 2006-02-09
US20060018384A1 (en) 2006-01-26
CN100548050C (zh) 2009-10-07
KR100604986B1 (ko) 2006-07-28
KR20060009525A (ko) 2006-02-01
US7995655B2 (en) 2011-08-09

Similar Documents

Publication Publication Date Title
EP2132937B1 (en) Entropy coding for video processing applications
CN1627824A (zh) 位流控制的后处理过滤
CN1620819A (zh) 改进的可变长度解码器
CN1642282A (zh) 视频编码系统
CN1695168A (zh) 视频信息编码方法和视频信息解码方法
CN1589023A (zh) 一种基于上下文的多码表变长编解码方法及编解码装置
CN1431828A (zh) 在图像和视频的编码/解码中的变换系数的最佳扫描方法
CN1933601A (zh) 用于无损视频编码和解码的方法及设备
CN1735209A (zh) 使用流水线结构的二进制算术解码装置和方法
CN1777285A (zh) 视讯/影像处理装置以及视讯/影像处理方法
CN1270273C (zh) 自适应存储器分配
CN1758760A (zh) 流水线系数可变长度编码
CN1144469C (zh) 编码和解码图像中的像素的运动向量的方法
CN1825964A (zh) 片上处理视频数据的方法和系统
CN1149853C (zh) 带有运动补偿的编码和译码装置
CN1822666A (zh) 处理视频数据的方法和系统
CN103222269B (zh) 用于较高吞吐量的最后位置的二值化
CN1523896A (zh) 视频编解码中运动矢量的预测方法和装置
CN1112654C (zh) 图像处理装置
CN1665299A (zh) 可伸缩视频编解码器体系结构设计方法
CN1703094A (zh) 1/4像素插值应用于1/2像素插值结果的图象插值装置和方法
CN1655617A (zh) 一元化解码器结构
CN101035284A (zh) 一种流式视频像素域转码的方法
CN1520187A (zh) 用于视频数据压缩的系统和方法
CN1652600A (zh) 使用视频数据的运动向量信息的变换的扰码设备和方法

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

Granted publication date: 20091007

Termination date: 20150726

EXPY Termination of patent right or utility model