运动矢量高速解码电路 本发明涉及运动矢量解码电路,特别是适用于HDTV(高清晰度电视)等高速系统的运动矢量高速解码电路。
一般地,如HDTV、数字VTR以及多媒体等使用连续的数字图像信号的图像信号处理装置,为得到高效的数据压缩而使用多种多样的编码方法。其中DPCM方式采用图像相邻帧之间存在的数据相关性进行数字图像信号的编码。
采用DPCM方式对时间上相邻的帧之间的差信号编码的情况下,帧之间变化多的区域比变化少的区域产生更多的数据。然而,如果采用找出当前帧的特定部分的图像与相邻帧中最类似部分而对二部分的图像差进行编码地方法就可减少数据量。此种方式称为运动补偿DPCM方式。运动补偿DPCM方式由于对当前帧的各图像部分与相邻帧的对应图像部分的差值数据进行编码,所以使传输效率得以提高。为运动补偿DPCM方式使用的运动矢量表示当前帧的图像部分和差信号最小的相邻帧的图像部分和当前图像部分之间的运动方向以及运动的大小。此运动矢量在传送之前被编码。对运动矢量编码的一个例子如下所述。
运动矢量为“3、10、30、30、-14、-16、27、24”的场合,二个运动矢量间的差(此处称为δ)为“3、7、20、0、-44、-2、43、-3”。运动矢量用6位来表示,运动矢量范围为“-32~31”的情况下,为表示8个运动矢量则需要48位。因此,对于超过运动矢量范围“-32~31”的差值数据“-44,43”,比运动矢量范围最小值“-32”小的数据“-44”加上运动矢量范围值64,(-44+64=20)。对于比运动矢量范围最大值“31”大的数据“43”,则减去运动矢量范围值64,(43-64=-21)。将如此求得的多个差值数据分成一定个数的组,为了区别属于同一组的多数的差值数据,给各差值数据分配残余码。由此,因为差值数据为“0”的概率最高,故不付于残余码。为将如此编码传送的运动矢量解码,现在用RISC(Reduced Instruction-set computer)乃至微控制器进行软件意义上的运动矢量解码。
然而,在适合于MPEG-2提出的HDTV标准的图像解码系统中,由于图像尺寸大故需要更高速的处理。于是,对现有的软件概念,存在增加处理器负担的问题。因此,要求有减小处理器的负担而专门进行运动矢量解码的硬件装置。
本发明是为解决上述问题而提出的,其目的是提供由通过如MPEG-2规格的HDTV高速系统使用的、具备延时器的管线,使运动矢量解码所必须的参数顺序延时输出而进行并列处理的专用硬件构成的使运动矢量高速地解码的运动矢量高速解码电路。
为完成上述的目的,本发明的运动矢量高速解码电路,在运动矢量解码电路中包括:输入运动矢量解码所必须的参数的输入端;存储前述输入的的参数的参数存储部;将被解码的运动矢量存储于以前运动矢量中,从存储于前述参数存储部的参数和以前运动矢量中进行运动矢量解码的运动矢量解码装置;输入存储于前述运动矢量解码装置里的以前运动矢量,形成并输出双重运动矢量的双重触发装置(デュァルプラィム);通过前述的输入参数控制前述各结松成部分的运动,同时从前述以前运动矢量和前述双重运动矢量中选择一个作为最终被解码了的运动矢量输出的运动矢量控制部。
图1表示本发明所采用的图像解码系统的方框图。
图2A、2B表示图1中的运动矢量解码部分的详细图。
下面,依据附图对本发明所希望的一个实施例加以详细说明。
图1表示采用本发明的运动矢量高速解码电路的图像解码系统。图1所示的图像解码系统配备有依据本发明的运动矢量解码电路2。运动矢量解码电路2被输入运动矢量解码所必须的参数并使运动矢量解码。图像解码系统具备将接收的可变长编码的数据进行可变长解码的可变长解码器(VLD)1、存储由运动矢量解码电路2输出的解码的运动矢量的FIFO存储器3以及存储1帧恢复后的图像数据的存储器4。运动补偿器依据图中未表示的逆量化器和逆离散余弦变换器(IDCT)的输出以及存储器4中存储的图像数据,采用运动矢量来进行运动补偿。IDCT输出将可变长解码的数据进行了逆量化及逆离散余弦变化的数据。
运动矢量解码电路2具备有存储从可变长解码器1施加的参数的参数存储部10,以及被输入参数和以前运动矢量而进行现在运动矢量解码的运动矢量解码部20。对于运动矢量解码部20的具体的构成如图2所示。运动矢量解码电路2具备:将被解码的运动矢量作为以前运动矢量存储的以前运动矢量存储部40;输入以前运动矢量,形成必要的双重运动矢量并输出的双重触发部50;以及全面控制各构成运动的运动矢量控制部30。
图2是表示图1中运动矢量解码部20的详细图。图2的运动矢量解码部20用“ITU-TH。262 ISO/IEC 13818-2 internation standard(March 1995,Lansan)”的文章中7、6、3、1节中记述的如下的运动矢量解码方法用专用硬件实现。
在此,算符<<为左移、*为乘积、‖为逻辑和、&&为逻辑积、==为等号。
在图1中,可变长解码器(VLD)1输入编码的数据进行可变长解码,产生可变长解码的图像数据及附加数据亦即运动矢量解码所必须的参数。从可变长解码器1输出的图像数据经图中未显示的逆量化器及逆离散余弦变换器(IDCT)提供给运动补偿器5。然后,参数施加于运动矢量解码电路2中的参数存储部10和运动矢量控制部30。参数存储部10存储被施加的参数、亦即确定运动矢量范围用的码f_code、运动矢量码motion_code;m_code、运动矢量残余码motion_residual;m_resi。运动矢量解码部20通过运动矢量控制部30的控制读取存储于参数存储部10的参数,进行运动矢量的解码。通过图2对运动矢量解码部20进行说明。
图2中,运动矢量解码部20从存储于参数存储部10的参数中首先读取运动矢量码m_code。构成管线的延时器213、225、233、243将输入的各运动矢量码m_code各延时1个时钟后输出。延时器213使输入的运动矢量码m_code延时1个时钟,绝对值计算器211将运动矢量码m_code的绝对值求出后减去“1”,延时器212将此延时输出到第1δ算出部。此时,通过延时器213,延时了1个时钟的运动矢量码m_code_1d也被输出到第1δ算出部22。
其后,运动矢量解码部20从参数存储部10中读取运动矢量残余码m-resi和运动矢量范围决定码f_code,施加到第1δ算出部22。运动矢量范围决定码f_code也被施加到范围调整部26。在第1δ算出部22,延时器225在被输入已延时1个时钟的运动矢量码m_code_1d并再延时1个时钟的期间,移位部211从被施加的运动矢量范围决定码f_code中减去“1”求出运动矢量残余码m_resi的有效位数r_size,将此左移1位变成2倍的位数f后,与从延时器212中被施加的绝对值换算过的运动矢量码相乘,同时,延时器224将此延时输出到第2δ算出部23。移位部221也按被施加的一定位的运动矢量残余码m_resi将有效位部分以外的残余部分以“0”屏蔽,同时,延时器223将此延时输出到第2δ算出部23。条件逻辑器222被输入延时了1个时钟的运动矢量码m_code_1d和运动矢量范围决定码f_code进行逻辑运算,运动矢量码为“0”或无运动矢量残余码时,将“1”否则将“0”的二进制信号通过延时器226输出到为2δ算出部23。
第2δ算出部23的加法器231将延时器223、224的各自输出作输入相加,相加结果在加上施加于进位输入端Cin“1”后算出δ值delta。算出的δ值在延时器232被延时后,输出到δ决定部24。延时器233通过延时器213、225,将被延迟了2个时钟的运动矢量码m_code_2d再延迟1个时钟输出到δ决定部24。延时器234从延时器226输入二进制信号,延迟1个时钟后输出到δ决定部24。
在δ决定部24,δ决定器241输入算出的δ值和经过延时器213、225、233并被延迟了3个时钟的运动矢量码m_code_3d,对应于从延时器234中被输入的二进制信号从中选择出一个决定最终δ值。亦即,δ决定器241,如果二进制信号为“0”则决定算出的δ值delta为最终δ值,如果为“1”则决定被延迟3个时钟的运动矢量码m_code_3d为最终δ值。以算出的δ值为最终δ值的情况下,如果被延迟了3个时钟的运动矢量码m_code_3d比“0”小,δ决定器241将最终决定的δ值的编码Sign反转。为此,使构成最终δ值的个别位反转。此时,将反转的δ值加“1”的过程是必要的,这由运动矢量决定部25配备的加法器252进行。在δ决定器241,最终决定的δ值通过延时器242被输出到运动矢量决定部25。被输入从延时器233中延时3个时钟的运动矢量码m_code_3d的延时器243,将运动矢量码m_code_3d的最上位MSB的编码Sign位延迟1个时钟输出到运动矢量决定部25。运动矢量决定部25将最终决定的δ值输入到加法器241并将延时了1个时钟的编码Sign位输入到加法器241的移位输入端Cin。除法器251将按照图1中的运动矢量控制器30施加的控制信号PMV_DIV从以前运动矢量存储部40中读取的以前运动矢量PMV除以“2”并输出到加法器252。
与控制信号PMV_DIV的产生相关连,运动矢量控制器30,在从可变长解码器1施加的与运动矢量解码相关的数据中,检查图像类型是帧构造、运动矢量是场用、垂直成分时的条件,将如果满足则为“1”否则为“0”的控制信号PMV_DIV输出到运动矢量解码部20。此时,运动矢量控制器30将与控制信号PMV_DIV相应的其它的控制信号DBL_PMV也输出到运动矢量解码部。
接收控制信号PMV_DIV的除法器251,如果外加的二进制信号PMV_DIV为“0”,则将以前运动矢量PMV按原样输出到加法器252,若为“1”则将以前运动矢量PMV用“2”除后输出到加法器252。加法器252,将由除法器251施加的以前运动矢量PMV和在δ决定部24最终决定的δ值相加,在加法结果中加上由移位输入端Cin施加的运动矢量码的编码位Sign,求出运动矢量Vector。此运动矢量通过延时器253输出到范围调整部26,范围调整部26在由运动矢量范围决定码f_code确定的范围内调整其范围。为此目的,范围调整器261,将从延时器253输入的运动矢量Vector和由运动矢量范围决定码f_code决定的运动矢量相比较。范围调整器261,根据比较结果,如果运动矢量比运动矢量范围的最小值小,则在运动矢量上加上运动矢量范围,如果运动矢量比运动矢量范围的最大值大,则减去运动矢量范围,如此调整运动矢量。被调整过的运动矢量输入到乘法器262,乘法器262按照图1的从运动矢量控制部30施加的控制信号DBL_PMV,在除法器251将以前运动矢量PMV除“2”的情况下乘以“2”,在原样输出的情况下通过延时器263按原样,将被解码过的运动矢量输出。被解码的运动矢量存储于以前运动矢量存储部40。如此,各部分的运动在1个时钟内进行,通过管线处理高速地进行运动矢量解码。因此,一个运动矢量解码需要6个时钟周期,通过管线处理,8个运动矢量的解码只需要13个时钟周期(6+7)。
回到图1的说明,由从运动矢量解码部20输出的运动矢量被存储于以前运动矢量存储部40,为求出下一个运动矢量而被作为以前运动矢量使用。存储于以前运动矢量部40的以前运动矢量PMV通过运动矢量控制部30的控制,被输出到运动矢量解码部20、运动矢量控制部30以及双重触发部50。双重触发部50,在现在被解码的运动矢量为P-图像的情况下,按照运动矢量控制部30的控制,用以前运动矢量PMV形成多个运动矢量DP并输出到运动矢量控制部30。因为在双重触发部50形成多个运动矢量DP的技术已经是众所共知的技术故不言及。
运动矢量控制部30,通过由可变长编码器1施加的参数判断运动矢量的种类为P-图像的话,选择由双重触发部50施加的双重运动矢量DP,其他情况则选择由以前运动矢量存储部40施加的以前运动矢量PMV,存储到FIFO存储器3。FIFO存储器3,按照运动矢量控制部30的写入控制FIFO_Wr存储被选择的运动矢量,并将存储的运动矢量顺序地输出到运动补偿器5。运动补偿器5输入,按照被存储于存储器4的1帧复原的图像数据中的运动矢量指定的图像数据,与逆离散余弦变换过的图像数据相加,在将复元后的图像输出到显示器的同时存储于存储器4中。
如上所述,基于本发明的运动矢量高速解码电路,使用经过由延时器构成的管线的专用的硬件,使运动矢量解码可以高速地处理,能够使用于HDTV等高速系统。