专利名称:行程长度编码器的制作方法
技术领域:
本发明涉及一种用于将视频数据压缩和编码的行程长度编码器,特别是涉及一种用于当检测一其中它的全部离散余弦变换(DCT)系数均为零的块时输出一(行程,电平(level))符号的行程长度编码器。
通常,由于信息数量增加,并且传输信息的带宽有限,在视频图象数据的传输中,普遍需要一种更好数据压缩技术。对于数据量庞大的数字信号来说尤其如此,而且为有效的存储、搜索和传输,对数字信号的数据压缩也是必要的。
因此,已开发出去除视频图象信号中含有的冗余信息的视频数据压缩技术。已知的技术如帧内编码和帧间编码,可分别将平稳视频中的光谱冗余度和各个视频帧中的暂时冗余度去除。
这种帧内编码包括DCT步骤和量化步骤。帧间编码包括用于对两相邻画面之间的运动进行估算和补偿的运动估算/补偿编码。
此外,熵编码将量化的DCT系数值编码,去除统计冗余度。这种熵编码方法包括行程长度编码(RLC),可变长度编码(VLC)和位面编码(BPC)。在这些熵编码方法中,RLC和VLC使用最广泛。
这里,通常用RLC提高转换编码如DCT的数据压缩比。DCT系数具有能量集中在低频系数中而不是其值几乎为“0”的高频系数中的能量分布。当对量化的DCT系数按折线顺序进行扫描以便排列低频到高频系数时,形成了一个长的1维“0”数据流。RCL输出由在进行折线扫描时排列的连串的“0”和随后的非零系数形成的2维符号(行程,电平)。
另一种熵编码方法,VLC,通过将比特产生率最小化以使根据已编码的符号的统计分布,将小比特分配给频繁出现的符号,将大比特分配给少出现的符号来压缩数据。VLC包括各种类型,但常用的是霍夫曼编码。
图1示出了在标准编码器如H.261,MP EG-1,和MP EG-2中使用的常规的视频编码器的示意方框图。DCT单元1以8×8象素块为单元处理象素,以去除帧内各个象素中的冗余度,从而获得DCT系数。量化器2按量化步长大小对DCT系数进行量化并输出。折线扫描单元3处理量化的DCT系数以产生将被输出到RLC单元4的1维数据流。RLC单元4将该1维数据流编码。之后VLC单元5按照霍夫曼表将从RLC单元4输出的已编码的1维数据流编码,所得结果被输出到缓存器中(未示出)。
此时,当输入数据是帧内DC系数时,RLC4输出DC大小和DC差值,而当输入数据为非帧内DC系数时,RLC4输出2维符号(行程,电平),它包括连串的“0”,其后跟有非连串“0”的值。
在RLC单元4中,零行程和电平值被表示成一2维符号(行程,电平)。例如将被折线扫描的DCT系数如(30,2,0,0,-8,0,0,0,9…)编码,从而获得2维符号如(0,30),(0,2),(2,-8),(3,9)…。此外加入块结束(EOB)代码以表示一系列为零的折线扫描系数。
在折线扫描单元3中,产生并向VLC单元5输出一用于代表宏块中的每一块是否被编码或被跳过的编码块模式(cbp)信号。这里,其中所有系数均为“0”的块被区分出来。例如,当宏块的cbp信号为(0,0,0,1,0,1)时,其中全部系数为“0”的块是第一,第二,第三和第五块,而第4和第6块中有非零系数。
如上所述,折线扫描单元3检测具有全部零系数的块从而产生相应的cbp信号。在VLC单元5中,为进行一步数据压缩,对所获得的cbp信号和块进行处理。
在常规的视频编码器中,所获得的编码块的cbp信号和(行程,电平)值被输入到VLC单元中,而含有全部零DCT系数的块的(行程,电平)值不被输入。因此,不能区分编码块和非编码块。
鉴于上述,本发明的目的是提供一种当检测到其中所有DCT系数均为零的块时输出一(行程,电平)符号的行程长度编码器。
为实现上述目的,本发明提供一种行程长度编码器,用于对在块单元中的从DCT,量化和扫描步骤获得的DCT系数进行编码从而输出编码的(行程,电平)符号,以及如果所获得的块单元的DCT系数全部为零则输出预定的(行程,电平)符号。该行程长度编码器包括行程长度编码芯,用于接收DCT系数并输出(行程,电平)符号,零系数检测器,用于检测DCT系数是否为“0”’零块检测器,用于接收零系数检测器的输出以检测是否每一块的所有DCT系数均为“0”;以及输出选择器,用于选择从行程长度编码芯输出的2维符号,如果在零块检测器中确定的块为非零或零块,则分别输出一(行程,电平)符号或一预定的(行程,电平)符号。
在下面结合附图对本发明的优选实施例的详细描述中将显示出本发明的上述以及其它目的,特性和优点,附图中图1是说明常规的视频编码器的示意方框图;图2是根据本发明的行程长度编码器的示意方框图;图3是说明图2中的零块检测器的详细的方框图;图4是图3中所示选择信号发生器的电路图;图5是图3中所示计数器的工作时序图;以及图6是说明图2中的零块检测器的另一优选实施例的详细的方框图。
现在详细说明本发明,其例子示于附图中。只要可能,在所有附图中,用同一参考数字表示同样的或类似的部分。
如图1所示,常规的视频编码器包括DCT单元1,量化器2,折线扫描单元3,行程长度编码器4和VLC单元5。根据本发明的优选实施例,折线扫描器3按照折线次序对量化的DCT系数进行扫描,并产生一cbp信号被传送到VLC单元5。随后RLC单元4接收一对象素并产生(行程,电平)符号,并将其输出到VLC5。
如图2所示,本发明的行程长度编码器4还包括用于执行常规的RLC的行程长度编码芯10,零系数检测器20,零块检测器30,输出选择器40。
行程长度编码芯10在一个系统时钟内接收一奇和偶DCT系数,提高了将这些系数编码成行程长度编码,由此输出第一(行程,电平)符号和第二(行程,电平)符号所需的处理速度。同时,与表示块开始的块起始(BS)信号同步地,以块为单元输入DCT系数。输入的块为8×8,包括64个系数。
零系数检测器20在每一系统时钟同时接收以两个系数(偶系数,奇系数)的方式的在DCT,量化和折线扫描步骤中获得的DCT系数,从而产生当奇系数为“0”时其值为“0”,而当奇系数不为“0”时其值为“1”的第一检测信号a,以及当偶系数为“0”时其值为“0”,而当偶系数不为“0”时其值为“1”的第二检测信号b。
零块检测器30,如图3所示,包括逻辑或门32,计数器34,选择信号发生器36。当一个块的所有第一和第二检测信号(a,b)均为“0”时,零块检测器30一旦确定了上述块是零块即输出用于选择预定的(行程,电平)符号的“高”选择信号mux_sel。
如图3所示,逻辑或门32,对来自零系数检测器20的第一和第二检测信号(a,b)进行逻辑或运算。计数器34由BS信号进行复位,对逻辑或门32的“0”进行计数并输出。当计数器34所计数值为“32”时,选择信号发生器36输出“高”选择信号mux_sel。
如图4所示,选择信号发生器36可由与门36-1,36-3和反相器36-2来实施。与门36-1从计数器34接收比特计数值c0,c1,c2,c3和c4,对计数值c0,c1,c2,c3和c4的各比特进行逻辑与运算,并输出选择信号mux_sel。
参照图2,当来自零块检测器30的选择信号mux_sel为“低”时,输出选择器40从零块检测器30中选择并输入2维符号(行程1,电平1)和(行程2,电平2),而当来自零块检测器30的选择信号mux_sel是“高”时,2维符号(63,0)和(0,0)被选择并输出。
即,如图2所示,输出选择器40分别包括第一,第二,第三,第四多路复用器42,44,46和48。第一多路复用器42在选择信号mux_sel为“高”时输出“63”,在选择信号mux_sel为“低”时输出第一行程值run1。第二多路复用器44在选择信号mux_sel为“高时”输出“0”,在选择信号mux_sel为“低”时输出第二行程值run2。第三多路复用器46在选择信号mux_sel为“高”时输出“0”,在选择信号mux_sel为“低”时输出第一电平值level1。第四多路复用器48在选择信号mux-sel为“高”时输出“0”,在选择信号mux-sel为“低”时输出第二电平值level2。
如图6所示,零块检测器60可包括第一逻辑或门61,第二逻辑或门62,第一D触发器63,反相器64,逻辑与门65和第二D触发器66。
参照图6,第一逻辑或门61对来自零系数检测器20的第一和第二检测信号(a,b)进行逻辑或运算,第二逻辑或门62对来自第一逻辑或门61的输出信号和反馈信号进行逻辑或运算。第一D触发器63将来自第二逻辑或门62的输出信号锁存并将其反馈回第二逻辑或门62。此外,用BS信号将第一D触发器63复位。反相器64将来自第二逻辑或门62的输出信号反相。逻辑与门65对来自反相器64的反相信号和BS信号进行逻辑与运算。第二D触发器66将来自逻辑与门65的输出信号锁存,并输出选择信号mux_sel。
以上已描述了本发明的行程长度编码器的结构,下面将详细讨论该行程长度编码器操作。
RLC单元10每一系统时钟以两个系数(一奇系数,一偶系数)的方式同时接收在DCT,量化和扫描步骤中获得的DCT系数,用以以一行程长度进行编码并产生输出到输出选择器40的2维符号(行程1,电平1)和(行程2,电平2)。
零系数检测器20同时接收两个DCT系数,从而将在奇系数“0”时其值为“0”,而奇系数不为“0”时其值为“1”的第一检测信号a和在偶系数“0”时值为“0”,而偶系数不为“0”时其值为“1”的第二检测信号b输出到零块检测器30的逻辑或门32中。
当所有来自零系数检测器20的第一和第二检测信号(a,b)均为“0”时,零块检测器30向输出选择器40输出“高”选择信号mux_sel。即,如图3所示,零块检测器30的逻辑或门32对第一和第二检测信号(a,b)进行逻辑或运算。计数器34对来自逻辑或门32的“0”输出进行计数。参照图5,在计数器34被BS信号复位后,当第一和第二检测信号(a,b)的“0”被计数,且在32个系统时钟期间内计数值变为“32”时,零块被确定。
参照图3,在选择信号发生器36中,当来自计数器34的计数值为“32”时,输出给输出选择器40的每一多路复用器42,44,46和48该“高”选择信号mux_sel。换句话说,如图4中所详细示出的,对来自计数器34的5比特计数值c0,c1,c2,c3和c4进行逻辑与运算以输出选择信号mux_sel。例如,如果当计数值为“32”时,来自计数器34的5比特计数值为(1,1,1,1,1),则在对5比特计数值进行逻辑与运算后输出“高”选择信号。
根据本发明的零块检测器60的另一个实施例,如图6所示,当所有第一和第二检测信号(a,b)均为“0”时,向输出选择器40输出“高”选择信号mux_sel。也即,在零块检测器60的第一逻辑或门61里,对来自零系数检测器20的第一和第二检测信号(a,b)进行逻辑或运算。在第二逻辑或门62中,对来自第一逻辑或门61的输出信号和来自第一D触发器63的反馈信号进行逻辑或运算。
在第一D触发器63中,来自第二逻辑或门62的输出信号被锁存并反馈回第二逻辑或门62。在反相器64中,来自第二逻辑或门62的输出信号被反相并反馈回第二逻辑或门62。此时,第一D触发器63被BS信号复位,并且当所有来自零系数检测器20的第一和第二检测信号(a,b)均为“0”时,则“0”被从第二逻辑或门62中输出。相反,如果当第一和第二检测信号(a,b)均为“1”时,则“1”被从第二逻辑或门62中输出,直到下一个块开始为止。
在反相器64中,来自第二逻辑或门62的输出信号被反相。在逻辑与门65中,对来自反相器64的反相信号和BS信号进行逻辑与运算。换句话说,如果当BS信号为“1”时,来自第二逻辑或门“62”的输出信号为“0”,由于反相器的输出为“1”,则逻辑与门65输出“1”。因此,当所有第一和第二检测信号(a,b)均为“0”时,逻辑与门65输出“高”信号。
第二D触发器66将来自逻辑与门65的输出信号锁存以向输出选择器40的每一多路复用器42,44,46和48输出“高”选择信号mux_sel。这里,第二D触发器通过将来自逻辑与门65的输出信号延迟一个时钟,防止了选择信号mux_sel和EOB信号之间的瞬时冲突。
输出选择器40的第一多路复用器42当选择信号mux_sel为“高”时输出“63”,而当选择信号mux_sel为“低”时输出第一行程值run1,第二多路复用器44当选择信号mux_sel为“高”时输出“0”,而当选择信号mux_sel为“低”时输出第二行程值run2。第三多路复用器46当选择信号mux_sel为“高”时输出“0”,而当选择信号mux_sel为“低”时输出第一电平值level1。输出选择器40的第四多路复用器48当选择信号mux_sel为“高”时输出“0”,当选择信号mux_sel为“低”时输出第二电平值level2。
因此,输出选择器40在来自零块检测器30的选择信号mux_sel为“低”时,选择并输出从行程长度编码器10输出的2维符号(行程1,电平1)和(行程2,电平2),而在选择信号mux_sel为“高”时输出2维符号(63,0)和(0,0)。
如上所述,本发明的行程长度编码器当检测到其中所有在DCT,量化和扫描步骤中获得的DCT系数均为“0”的零块时,向VLC单元输出预定的(行程,电平)符号。所以,该行程长度编码器提供了一种精确的视频编码。
虽然本发明是结合目前认为的最可行和优选的实施例来描述的,但应明白本发明并不局限于所公开的实施例,而相反,本发明覆盖了包括在所附权利要求的思想和范围中的各种改型和等效的方案。
权利要求
1.一种以块为单元对在DCT、量化和扫描步骤中获得的DCT系数进行编码以输出编码的(行程,电平)符号,并且如果所获得的块单元中的所有DCT系数均为零时输出预先确定的(行程,电平)符号的行程长度编码器,该行程长度编码器包括行程长度编码芯,用于接收DCT系数并输出(行程,电平)符号;零系数检测装置,用于检测DCT系数是否为“0”;零块检测装置,用于接收来自所述零系数检测装置的输出信号以检测是否每一块的所有DCT系数均为“0”;以及输出选择装置,用于选择从所述行程长度编码芯输出的2维符号以当所述零块检测装置所确定的块为非零或零块时分别输出(行程,电平)符号或预先确定的(行程,电平)符号。
2.如权利要求1所述的行程长度编码器,其中所述零块检测装置包括用于对从所述零系数检测装置输出的第一和第二检测信号进行逻辑或运算的逻辑或门;由BS信号复位,用于对来自所述逻辑或门的“0”输出计数的计数器,以及用于当来自所述计数器的计数值为“32”时输出“高”选择信号的选择信号发生装置。
3.如权利要求2所述的行程长度编码器,其中所述选择信号发生装置包括反相器,其接收来自所述计数器的5比特计数值,对该计数值的各比特进行逻辑与运算并输出选择信号。
4.如权利要求1所述的行程长度编码器,其中所述零块检测装置包括第一逻辑或门,用于对所述第一和第二检测信号进行逻辑或运算;第二逻辑或门,用于对来自所述第一逻辑或门的输出信号和一反馈信号进行逻辑或运算;第一D触发器,由BS信号复位,用于锁存来自所述第二逻辑或门的输出信号,并将其反馈回所述第二逻辑或门。反相器,用于将来自所述第二逻辑或门的输出信号反相;逻辑与门,用于对来自所述反相器的反相信号和BS信号进行逻辑与运算;第二D触发器,用于锁存来自所述逻辑与门的输出信号,并向所述输出选择装置输出选择信号。
5.如权利要求1所述的行程长度编码器,其中所述输出选择装置当来自所述零块检测器的选择信号为“低”时,输出来自所述行程长度编码芯的2维符号(行程1,电平1)和(行程2,电平2),而当选择信号为“高”时输出2维符号(63,0)和(0,0)。
6.如权利要求1或5所述的行程长度编码器,其中所述输出选择装置包括第一多路复用器,用于当选择信号为“高”时输出“63”,而当选择信号为“低”时输出第一行程值;第二多路复用器,用于当选择信号为“高”时输出“0”,而当选择信号为“低”时输出第二行程值;第三多路复用器,用于当选择信号为“高”时输出“0”,而当选择信号为“低”时输出第一电平值;以及第四多路复用器,用于当选择信号为“高”时输出“0”,而当选择信号为“低”时输出第二电平值。
全文摘要
一种行程长度编码器,包括用于接收DCT系数并输出(行程,电平)符号的行程长度编码芯,用于检测DCT系数是否为“0”的零系数检测器,用于从零系数检测器接收输出信号的检测是否每块的所有DCT系数均为“0”的零块检测器,和用于当零块检测器所确定块为非零或零块时,选择从行程长度编码核输出的2维符号以分别输出(行程,电平)符号或一个预定的(行程,电平)符号的输出选择器。
文档编号H03M7/46GK1172382SQ97112389
公开日1998年2月4日 申请日期1997年6月16日 优先权日1996年6月14日
发明者金钟翰 申请人:大宇电子株式会社