CN101179721A - 支持多编解码器的运动补偿的方法和设备 - Google Patents

支持多编解码器的运动补偿的方法和设备 Download PDF

Info

Publication number
CN101179721A
CN101179721A CNA2007101692423A CN200710169242A CN101179721A CN 101179721 A CN101179721 A CN 101179721A CN A2007101692423 A CNA2007101692423 A CN A2007101692423A CN 200710169242 A CN200710169242 A CN 200710169242A CN 101179721 A CN101179721 A CN 101179721A
Authority
CN
China
Prior art keywords
pixel
pixel value
filter
value
cube
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.)
Pending
Application number
CNA2007101692423A
Other languages
English (en)
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 CN101179721A publication Critical patent/CN101179721A/zh
Pending 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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

Abstract

提供一种用于运动图像的运动补偿的方法和设备。所述方法包括:通过根据指示多个编解码器(诸如MPEG4、H.264/AVC和VC1)之一的编解码器信息使用对与当前图像相应的参考图像的像素进行插值的多种方法(诸如垂直线滤波、水平线滤波和立方体滤波)中的至少一种方法,基于参考图像的像素的像素值,计算位于所述参考图像的像素之间的像素的像素值;以及通过将包括计算的像素值的运动补偿数据和参考图像与当前图像之间的差相加来恢复当前图像。

Description

支持多编解码器的运动补偿的方法和设备
技术领域
本发明涉及一种用于对运动图像进行解码的方法和设备,更具体地说,涉及一种用于运动补偿的方法和设备。
背景技术
运动图像解码经过若干处理。所述处理主要包括:熵解码、反变换、反量化和运动补偿。这里,运动补偿消耗大多数处理时间。根据运动补偿,通过参照运动向量从参考图像提取关于由参考图像和当前图像共享的部分的数据,并通过将提取的数据(以下,称为运动补偿数据)和关于参考图像与当前图像之间的差的数据(以下,称为残差图像)相加来恢复当前图像,其中,所述运动向量表示当前数据的块与参考图像的相应块之间的不同。如上所述,由于运动补偿将处理大量的图像数据,所以存储器访问量和操作量很大。由于运动补偿的吞吐量与图像的大小成比例,所以当图像的大小增加时,无法在要求的时间之内处理完图像,因此,无法平滑地再现运动图像。
多数运动图像编解码器工程师更喜欢以软件实现运动图像编解码器。这是因为当以软件实现运动图像编解码器时,与以硬件实现运动图像相比,减少了开发周期和成本,并且运动图像编解码器的重复使用比较容易。具体说来,运动图像编解码器的灵活性较高,因此,当运动图像编解码器中出错时,软件能够容易地纠正错误。然而,运动图像编解码器的核心是实时处理。即使以软件实现运动图像编解码器具有多种优点,但是如果运动图像编解码器无法实时地对图像进行编码和解码,则也是毫无用处的。同时,当以硬件实现运动图像编解码器时,开发周期和成本增加,并且灵活性低。因此,当需要修正运动图像编解码器时,会改变运动图像编解码器的整个结构。然而,当以硬件实现运动图像编解码器时,可将运动图像编解码器最优化到目标,因此,与以软件处理运动图像编解码器相比,对运动图像进行编码和解码的速度可快速增加。
由于以硬件和软件实现运动图像编解码器的方法的不同优点和缺点,多数运动图像编解码器工程师将这两种方式进行组合。也就是说,形成运动图像编解码器的模块根据各部分的特征被划分为通过软件处理的部分以及通过硬件处理的部分。在这种情况下,应该通过硬件处理运动补偿。在运动补偿中,不仅需要大量的数据吞吐量,而且存储器访问远多于其它处理,因此,不适合以软件来处理运动补偿。
近来,实现运动图像编解码器方面的重要议题为在一个运动图像播放器中再现各种运动图像格式。通常使用的运动图像格式包括:MPEG4、VC1和H.264/AVC。然而,当在一个装置中实现这三种编解码器并且实现每种编解码器的运动补偿时,在以软件处理编解码器的情况下,数据吞吐量和存储器访问量显著增加,在以硬件处理编解码器的情况下,硬件的尺寸和制造成本将增加。
发明内容
本发明提供一种用于运动补偿的设备和方法,所述设备和方法减少数据吞吐量和存储器访问,支持用于在实时处理运动图像再现的同时减少硬件的尺寸和制造成本,并减少用于运动补偿的芯片的尺寸和该芯片的制造成本。
本发明还提供一种记录有用于执行上述方法的程序的计算机可读记录介质。
根据本发明的一方面,提供一种用于运动补偿的方法,包括:(a)通过根据指示多个编解码器之一的编解码器信息使用对与当前图像相应的参考图像的像素进行插值的多种方法中的至少一种方法,基于参考图像的像素的像素值,计算位于所述参考图像的像素之间的像素的像素值;以及(b)通过将包括计算的像素值的运动补偿数据和参考图像与当前图像之间的差相加来恢复当前图像。
(a)可包括:(a1)根据编解码器信息,基于参考图像的块的垂直线上的像素的值,选择性地计算位于所述垂直线上的像素之间的像素的像素值;(a2)根据编解码器信息,基于所述块的水平线上的像素的值,选择性地计算位于所述水平线上的像素之间的像素的像素值;以及(a3)根据编解码器信息,基于所述块的立方体中的像素的值,选择性地计算位于所述立方体中的像素之间的像素的像素值。
根据本发明的另一方面,提供一种记录有用于执行上述方法的程序的计算机可读记录介质。
根据本发明的另一方面,提供一种用于运动补偿的设备,包括:运动补偿引擎,其通过根据指示多个编解码器之一的编解码器信息使用对与当前图像相应的参考图像的像素进行插值的多种方法中的至少一种方法,基于参考图像的像素的像素值,计算位于所述参考图像的像素之间的像素的像素值;以及加法器,通过将包括计算的像素值的运动补偿数据和参考图像与当前图像之间的差相加来恢复当前图像。
运动补偿引擎可包括:垂直滤波器,根据编解码器信息,基于参考图像的块的垂直线上的像素的值,选择性地计算位于所述垂直线上的像素之间的像素的像素值;水平滤波器,根据编解码器信息,基于所述块的水平线上的像素的值,选择性地计算位于所述水平线上的像素之间的像素的像素值;以及立方体滤波器,根据编解码器信息,基于所述块的立方体中的像素的值,选择性地计算位于所述立方体中的像素之间的像素的像素值。
附图说明
通过参照附图进行的对本发明示例性实施例的详细描述,本发明的上述和其它特点和优点将会变得更加清楚,其中:
图1是示出在多个运动图像压缩编解码器中使用的运动补偿的滤波器的特征的表;
图2A是示出根据H.264/AVC的亮度分量的像素插值的示图;
图2B是示出根据H.264/AVC的色度分量的像素插值的示图;
图2C是示出根据VC1使用线性滤波器的像素插值的示图;
图2D是示出根据MPEG4的像素插值的示图;
图2E是示出根据VC1使用立方体滤波器(cubic filter)的像素插值的示图;
图3是示出根据本发明的立方体滤波器的示图;
图4是根据本发明实施例的支持多编解码器的运动补偿的设备的示图;
图5是示出在图4所示的设备中根据H.264/AVC的线性滤波器和立方体滤波器的操作情况的示图;
图6是示出在图4所示的设备中根据VC1的线性滤波器的操作情况的示图;
图7是示出在图4所示的设备中根据MPEG4和VC1的立方体滤波器的操作情况的示图;
图8是示出在图4所示的垂直滤波器内的寄存器阵列链(register arraychain)的示图;
图9是示出在图4所示的垂直滤波器内的6抽头滤波器的示图;
图10是关于在图4所示的设备中的数据处理的时序图;以及
图11是示出根据本发明实施例的支持多编解码器的运动补偿的方法的流程图。
具体实施方式
以下,将参照附图来更加全面地描述本发明,在附图中示出本发明的示例性实施例。
图1是示出在多个运动图像压缩编解码器中使用的用于运动补偿的滤波器的特征的表。为了恢复高清晰度图像,当前运动图像压缩编解码器的运动向量不仅指示参考图像中的像素(即,整像素),而且指示位于整像素间隔的1/2处的1/2像素或位于整像素间隔的1/4处的1/4像素。然而,由于在参考图像中不存在1/2像素和1/4像素,所以通过使用像素插值方法来产生1/2像素和1/4像素的值。图1是示出在根据运动图像压缩编解码器的所述像素插值方法中使用的滤波器的特征的表。
参照图1,MPEG4、H.264/AVC和VC1的色度分量使用立方体滤波器,而VC1的色度分量还使用线性滤波器。此外,MPEG4将立方体滤波器用于亮度分量,H.264/AVC将线性滤波器用于亮度分量,VC1将立方体滤波器和线性滤波器共同用于亮度分量。现将参照图2A到图2E来描述根据MPEG4、H.264/AVC和VC1的像素插值。
图2A是示出根据H.264/AVC的亮度分量的像素插值的示图。
在图2A中,大写字母指示整像素,小写字母指示子像素。整像素表示在像素插值中使用的原始像素,子像素表示具有通过使用整像素的像素插值产生的像素值的像素,诸如1/2像素或1/4像素。参照图2A,最多以1/4像素单位来执行根据H.264/AVC的亮度分量的像素插值。首先,通过使用6抽头滤波器(其具有6个系数)根据以下的等式1来计算图2A所示的1/2像素(即,位置b、h、m和s中的像素)。
[等式1]
b1=(E-5×F+20×G+20×H-5×I+J)
h1=(A-5×C+20×G+20×M-5×R+T)
b=Clip1Y((b1+16)>>5)
h=Clip1Y((h1+16)>>5)
j1=cc-5×dd+20×h1+20×m1-5×ee+ff,或
j1=aa-5×bb+20×b1+20×s1-5×gg+hh
j=Clip1Y((j1+512)>>10)
s=Clip1Y((s1+16)>>5)
m=Clip1Y((m1+16)>>5)
然后,可通过使用平均滤波器根据以下的等式2来计算图2A所示的1/4像素(即,残差像素)。平均滤波器是一种2抽头滤波器,其具有2个系数。
[等式2]
a=(G+b+1)>>1
c=(H+b+1)>>1
d=(G+h+1)>>1
n=(M+h+1)>>1
f=(b+j+1)>>1
i=(h+j+1)>>1
k=(j+m+1)>>1
q=(j+s+1)>>1
e=(b+h+1)>>1
g=(b+m+1)>>1
p=(h+s+1)>>1
r=(m+s+1)>>1
在等式1和2中,“>>”表示右移操作,“>>”之后的数字表示移动的位数。例如,“>>1”表示1位的移动,等于除以2。
图2B是示出根据H.264/AVC的色度分量的像素插值的示图。
图2B所示的P1、P2、P3和P4表示整像素,4个箭头的会聚点表示子像素。参照图2B,在代替固定位置的预定位置执行根据H.264/AVC的色度分量的像素插值。换言之,可通过使用立方体滤波器根据以下的等式3来计算图2B所示的预定位置中的像素。立方体滤波器是一种具有4个系数的4抽头滤波器。
[等式3]
P=((8-xFrc)×(8-yFrc)×P1+xFrc×(8-yFrc)×P2+(8-xFrc)×yFrc×P3+xFrc×yFrc×P4+32)>>6
在等式3中,“×”表示乘法运算。
图2C是示出根据VC1使用线性滤波器的像素插值的示图。
图2C所示的P1、P2、P3和P4指示整像素,位于P2与P3之间的点表示子像素。参照图2C,最小以1/4像素单位来执行根据VC1使用线性滤波器的像素完成。换言之,可使用立方体滤波器根据以下的等式5来计算与所述点相应的1/2像素和1/4像素。
[等式5]
P=(a×P1+b×P2+c×P3+d×P4+rc)>>s
在等式5中,“a”、“b”、“c”和“d”分别表示4个抽头的系数,并且所述系数根据子像素的位置来确定。“s”也根据子像素的位置来确定。
图2D是示出根据MPEG4的像素插值的示图。
图2D所示的P1、P2、P3和P4表示整像素,位于整像素之间的黑点表示子像素。参照图2D,最小以1/2像素单位来执行根据MPEG4的亮度分量和色度分量的像素插值。例如,当P1的位置为dx=0,dy=0时,可使用立方体滤波器根据以下的等式4来计算与所述黑点相应的1/2像素。
[等式4]
dx=1,dy=0:P=(P1+P2+1-rc)>>1
dx=0,dy=1:P=(P1+P3+1-rc)>>1
dx=1,dy=1:P=(P1+P2+P3+P4-rc)>>1
在等式4中,“rc”表示舍入控制,为0或1。
图2E是示出根据VC1使用立方体滤波器的像素插值的示图。
P1、P2、P3和P4表示整像素,四个箭头的会聚点表示子像素。参照图2E,在代替固定位置的预定位置执行根据VC1的色度分量的像素插值。可使用立方体滤波器根据等式6来计算图2E所示的预定位置中的像素。
[等式6]
P=(a×P1+b×P2+c×P3+d×P4+rc)>>s
在等式6中,“a”、“b”、“c”和“d”分别表示4个抽头的系数,并根据子像素的位置来确定。“s”也根据子像素的位置来确定。
如上所述,尽管在MPEG4、H.264/AVC和VC1中使用的滤波器中,抽头的数量以及系数值是不同的,但是可调整系数值,并且还可通过将某些抽头的系数值取零来调整抽头的数量。例如,在形成6抽头滤波器的6个抽头中,可将2个抽头的系数值取零,由此可将所述6抽头滤波器用作4抽头滤波器。此外,通过将形成4抽头滤波器的4个抽头中的2个抽头的系数值取零,可将4抽头滤波器用作2抽头滤波器,即,平均滤波器。因此,可以看出:存在某些可以由MPEG4、H.264/AVC和VC1中使用的每个滤波器共享的部分。使用所述部分,所述三种编解码器可通过使用较少数量的滤波器来有效地执行运动补偿。
在三种编解码器中,H.264/AVC以最复杂的方式来补偿像素。然而,由于H.264/AVC在用于亮度分量的线性滤波方法中使用6抽头滤波器,在用于色度分量的立方体滤波方法中使用4抽头滤波器,所以它们可被用作MPEG4和VC1的立方体滤波方法中的4抽头滤波器以及VC1的线性滤波方法中的4抽头滤波器。因此,MPEG4和VC1的像素插值是H.264/AVC的像素插值的子集。
换言之,通过调整6个抽头的系数值,具有6个抽头的线性滤波器可被用作MPEG4的线性滤波器、H.264/AVC的线性滤波器以及VC1的线性滤波器。此外,通过调整4个抽头的系数值,具有4个抽头的立方体滤波器可被用作MPEG4的立方体滤波器、H.264/AVC的立方体滤波器和VC1的立方体滤波器。
在像素插值中使用的邻近像素根据依照等式2计算的每个1/4像素的位置而不同。例如,通过使用位于以位置e、g、p和r上的每个像素为中心的菱形位置上的像素的像素值来计算位置e、g、p和r上的像素的像素值,并通过使用以位置f、i、k和g上的每个像素为中心的交叉位置上的像素的像素值来计算位置f、i、k和g上的像素的像素值。如上所述,根据H.264/AVC的1/4像素插值的处理是根据像素的位置的复杂滤波方法,因此,以硬件来处理并不容易。
图3是示出根据本发明实施例的立方体滤波器的示图。
将根据H.264/AVC的1/4像素插值的处理应用于图3所示的立方体滤波器。使用图3的立方体滤波器,可通过公共模块(诸如立方体滤波器)来执行根据H.264/AVC的1/4像素插值的处理。
通常,立方体滤波器通过使用位于立方体的每个顶点的整像素的像素值来计算1/2像素的像素值,所述1/2像素位于立方体的每条边的中心以及立方体的中心。在当前实施例中,通过使用所述立方体滤波器的特征来执行与等式2相应的计算。例如,可通过将位置G上的整像素的像素值和位置b上的1/2像素的像素值应用于图3的立方体滤波器来计算位置a上的1/4像素的像素值。本领域的普通技术人员可容易地理解:另一位置上的1/4像素的像素值也可按照图3所示来计算。
图4是示出根据本发明实施例的支持多编解码器的运动补偿的设备。
参照图4,所述设备包括:从接口10、主接口20、直接存储器访问(DMA)接口30、运动补偿引擎40、第一存储器50、第二存储器60和加法器70。
从接口10通过包括根据当前实施例的设备的运动图像解码设备(未示出)的系统总线取出从外部运动图像编码设备(未示出)发送的残差数据,并将取出的残差图像输出到第二存储器60。此外,从接口10通过系统总线从外部运动图像编码设备取出作为运动补偿所需的参数的运动补偿(MC)参数,并将取出的MC参数输出到主接口20。
主接口20解释从所述从接口10接收的MC参数,基于解释的结果选择MC参数,并将选择的MC参数输出到DMA接口30和运动补偿引擎40。因此,主接口20可控制形成DMA接口30的DMA模块31和先入先出(FIFO)模块32的操作,以及形成运动补偿引擎40的垂直滤波器41、第一水平滤波器42、第二水平滤波器43、立方体排列器44和立方体滤波器45的操作。
第一存储器50存储由运动补偿引擎40产生的运动补偿数据,第二存储器60存储从所述从接口10接收的残差数据。通常,可用静态随机存取存储器(SRAM)来实现第一存储器50和第二存储器60。加法器70通过将第一存储器50中的运动补偿数据和第二存储器60中的残差数据相加来恢复当前图像,并将关于恢复的当前图像的数据输出到DMA接口30。
DMA接口30包括DMA模块31和FIFO模块32。DMA模块31通过参照从主接口20接收的MC参数中的运动向量,经由系统总线从外部存储器(未示出)取出参考图像和当前图像共享的参考图像的以32比特为单位的数据,并将由加法器70恢复的当前图像存储在外部存储器中,其中,所述运动向量指示当前图像的块与参考图像的相应块之间的不同。
FIFO模块32以8比特为单位提取由DMA模块31取出的以32比特为单位的数据,并顺序地将以8比特为单位的数据输出到运动补偿引擎40。具体说来,除了上述仅将实际运动补偿所需的数据输出到运动补偿引擎40的8比特拆包之外,当由运动矢量指示的数据没有存在于参考图像中时,FIFO模块32还根据运动矢量执行填充。
运动补偿引擎40对从DMA接口30接收的以8比特为单位的数据执行运动补偿。详细说来,运动补偿引擎40通过根据从主接口20接收的MC参数中的编解码器信息、色彩信息和滤波器信息来使用垂直线性滤波方法、水平线性方法和立方体滤波方法中的至少一种对与当前图像相应的参考图像的像素进行插值的方法,基于所述参考图像的像素的像素值,计算位于所述参考图像的像素之间的像素的像素值,其中,编解码器信息指示多个编解码器中的任何一个,色彩信息指示多个色彩分量中的任何一个,滤波器信息指示多个滤波器中的任何一个。
参照图4,运动补偿引擎包括:垂直滤波器41、第一水平滤波器42、第二水平滤波器43和立方体排列器44和立方体滤波器45。
垂直滤波器41根据从主接口20接收的MC参数中的编解码器信息、色彩信息和滤波器信息,基于从DMA接口30接收的参考图像的块的垂直线上的整像素的像素值,选择性地计算位于所述垂直线上的整像素之间的1/2像素的像素值。具体说来,以具有6个抽头的线性滤波器来实现垂直滤波器41,所述垂直滤波器41通过将垂直线上的整像素的像素值应用于所述6个抽头,来计算由从主接口20接收的MC参数中的块的运动向量指示的1/2像素的像素值。
第一水平滤波器42根据从主接口20接收的MC参数中的编解码器信息、色彩信息和滤波器信息,基于从DMA接口30接收的参考图像的块的水平线上的整像素的像素值,选择性地计算位于所述水平线上的整像素之间的1/2像素的像素值。具体说来,以具有6个抽头的线性滤波器来实现第一水平滤波器42,所述第一水平滤波器42通过将水平线上的整像素的像素值应用于所述6个抽头,来计算由从主接口20接收的MC参数中的块的运动向量指示的1/2像素的像素值。
第二水平滤波器43根据从主接口20接收的MC参数中的编解码器信息、色彩信息和滤波器信息,基于不同于由第一水平滤波器42处理的水平线的另一水平线上的整像素的像素值或1/2像素的像素值,选择性地计算位于所述另一水平线上的整像素之间的1/2像素的像素值。这里,可从邻近整像素计算1/2像素。具体说来,以具有6个抽头的线性滤波器来实现第二水平滤波器43,所述第二水平滤波器43通过将所述另一水平线上的整像素或1/2像素的像素值应用于所述6个抽头,来计算由从主接口20接收的MC参数中的块的运动向量指示的1/2像素的像素值。
立方体排列器44根据从主接口20接收的MC参数中的编解码器信息、色彩信息和滤波器信息,选择性地将从DMA接口30接收的整像素或1/2像素的像素值排列在用于产生在由块的运动向量指示的预定位置上的像素、1/2像素或1/4像素的像素值所需的立方体位置上。
立方体滤波器45根据从主接口20接收的MC参数中的编解码器信息、色彩信息和滤波器信息,基于如图3所示由立方体排列器44排列的4个整像素的像素值,选择性地计算在所述4个整像素之间的预定位置上的像素、1/2像素或1/4像素的像素值。此外,立方体滤波器45根据从主接口20接收的MC参数中的编解码器信息、色彩信息和滤波器信息,基于位于从第一水平滤波器42或第二水平滤波器43接收的亮度分量中的块的立方体中的2个整像素或1/2像素的像素值,选择性地计算所述2个整像素或1/2像素之间的1/2像素或1/4像素的像素值。具体说来,以具有4个抽头的立方体滤波器来实现立方体滤波器,所述立方体滤波器通过将立方体位置中的所述2个或4个像素的像素值应用于相应的立方体位置中的2个或4个抽头,来计算由从主接口20接收的MC参数中的块的运动向量指示的在所述预定位置上的像素、1/2像素或1/4像素的像素值。
垂直滤波器41、第一水平滤波器42、第二水平滤波器43、立方体排列器44和立方体滤波器45中的每一个不是根据所有像素而是根据运动向量的值来进行操作。当从主接口20接收的MC参数中的运动向量指示整像素的位置时,参考图像与预测图像之间的运动恰好是整像素之间的间隔的倍数。因此,形成参考图像的整像素的像素值是形成预测图像的像素的像素值,从而垂直滤波器41、第一水平滤波器42、第二水平滤波器43、立方体排列器44和立方体滤波器45不需要对像素值进行插值。然而,当从主接口20接收的MC参数中的运动向量指示1/2像素或1/4像素的位置时,参考图像与预测图像之间的运动不恰好是整像素之间的间隔的倍数。因此,使用形成参考图像的整像素的像素值进行插值得到的值是形成预测图像的像素的像素值,从而垂直滤波器41、第一水平滤波器42、第二水平滤波器43、立方体排列器44和立方体滤波器45需要对像素值进行插值。
当垂直滤波器41、第一水平滤波器42、第二水平滤波器43、立方体排列器44和立方体滤波器45对整个参考图像的像素值进行插值时,完成以下像素以作为与参考图像相应的当前图像的运动补偿数据:未经垂直滤波器41、第一水平滤波器42、第二水平滤波器43、立方体排列器44和立方体滤波器45处理的整像素的像素值,由垂直滤波器41、第一水平滤波器42、第二水平滤波器43、立方体排列器44和立方体滤波器45计算的在预定位置上的像素的像素值、1/2像素的像素值以及1/4像素的像素值。
图5至图7是示出在图4的设备中的每一编解码器的操作情况(scenarios)的示图。参照图5至图7,由于H.264/AVC和VC1的亮度分量执行线性滤波,所以水平滤波和垂直滤波被执行。在其他情况下,通过立方体排列来执行立方体滤波。
图5是示出在图4中示出的设备中根据H.264/AVC的线性滤波器和立方体滤波器的操作情况的示图。
参照图5,图4的设备根据下面的操作情况来执行H.264/AVC的亮度分量滤波。
DMA接口30通过参照从主接口20接收的MC参数中的运动向量通过系统总线从外部存储器以预定大小的块为单位取出参考图像的亮度分量,并将取出的亮度分量的块输出到垂直滤波器41,其中,所述运动向量指示当前图像的块和参考图像的相应块之间的不同。
当编解码器信息指示H.264/AVC、颜色信息指示亮度分量以及滤波器信息指示线性滤波器时,垂直滤波器41基于垂直线上形成从DMA接口30接收的亮度分量的块的整像素的像素值计算所述整像素中的位于垂直线的整像素之间的1/2像素的像素值。具体地讲,垂直滤波器41通过将垂直线上的整像素的像素值应用于6个抽头来计算从主接口20接收的MC参数中的块的运动向量指示的1/2像素的像素值,并将计算的像素值输出到第一水平滤波器42或第二水平滤波器43。当块的运动向量指示整像素时,垂直滤波器41将形成从DMA接口30接收的亮度分量的块的整像素的像素值输出到第一水平滤波器42或第二水平滤波器43。
例如,当运动向量指示的像素的位置是图2A中的位置h时,垂直滤波器41通过将位置A、C、G、M、R和T的整像素的像素值应用于6个抽头计算h1=(A-5×C+20×G+20×M-5×R+T),h=Clip1Y((h1+16)>>5)来计算位置h中的1/2像素的像素值。
当编解码器信息指示H.264/AVC、颜色信息指示亮度分量以及滤波器信息指示线性滤波器时,第一水平滤波器42基于形成通过垂直滤波器41从DMA接口30接收的亮度分量的块的整像素的像素值来计算所述整像素中的位于水平线上的整像素之间的1/2像素的像素值。具体地讲,第一水平滤波器42通过将水平线上的整像素的像素值应用于6个抽头来计算从主接口20接收的MC参数中的块的运动向量指示的1/2像素的像素值,并将计算的像素值输出到立方体滤波器45。另外,当块的运动向量指示整像素时,第一水平滤波器42将形成从DMA接口30接收的亮度分量的块的整像素的像素值输出到立方体滤波器45。另外,第一水平滤波器42将从垂直滤波器41接收的1/2像素的像素值输出到立方体滤波器45。
例如,当运动向量指示的像素位置是图2A的位置b时,第一水平滤波器42通过将位置E、F、G、H、I和J的整像素的像素值应用于6个抽头计算b1=(E-5×F+20×G+20×H-5×I+J),b=Clip1Y((b1+16)>>5)来计算位置b中的1/2像素的像素值。
当编解码器信息指示H.264/AVC、颜色信息指示亮度分量以及滤波器信息指示线性滤波器时,第二水平滤波器43基于另一水平线上形成通过垂直滤波器41从DMA接口30接收的亮度分量中的块的整像素或1/2像素的像素值计算所述整像素中的位于所述另一水平线上的整像素或1/2像素之间的1/2像素的像素值。具体地讲,第二水平滤波器43通过将所述另一水平线上的整像素或1/2像素的像素值应用于6个抽头来计算从主接口20接收的MC参数中块的运动向量指示的1/2像素的像素值,并将计算的像素值输出到立方体滤波器45。另外,当块的运动向量指示整像素时,第二水平滤波器将形成亮度分量中的块的整像素的像素值输出到立方体滤波器45。另外,第二水平滤波器43将从垂直滤波器41接收的1/2像素的像素值输出到立方体滤波器45。
例如,当运动向量指示的像素的位置是图2A中的位置j时,第二水平滤波器43通过将位置cc、dd、h1、m1、ee和ff的1/2像素的像素值应用于6个抽头计算j1=cc-5×dd+20×h1+20×m1-5×ee+ff,j=Clip1Y((j1+512)>>10)来计算位置j的1/2像素的像素值。为了计算1/4的像素值,例如等式2中的f=(b+j+1)>>1,可能同时需要2个1/2像素的像素值。在这种情况下,第一水平滤波器和第二水平滤波器43可被分别包括以同时处理对位置b的1/2像素的像素值和位置j的1/2像素的像素值的计算。
当编解码器信息指示H.264/AVC、颜色信息指示亮度分量以及滤波器信息指示线性滤波器时,立方体滤波器45基于从第一水平滤波器42和第二水平滤波器43接收的亮度分量中的位于块的立方体中的2个整像素或1/2像素的像素值来计算所述立方体位于2个整像素或1/2像素之间的1/4像素的像素值。具体地讲,立方体滤波器45通过将立方体位置中2个像素的像素值应用于4个抽头中与立方体位置相应的2个抽头,来计算从主接口接收的MC参数中块的运动向量指示的1/4像素的像素值,并将计算的像素值输出到第一存储器50。另外,立方体滤波器45将从第一水平滤波器42或第二水平滤波器43接收的整像素或1/2像素的像素值输出到第一存储器50。
例如,当运动向量指示的像素位置是图2A中的位置a时,立方体滤波器45通过将位置G的整像素的像素值和位置b的1/2像素的像素值应用于4个抽头中与立方体位置相应的2个抽头,通过计算a=(G+b+1)>>1来计算位置a的1/4像素的像素值。
参照图5,图4的设备根据下面的操作情况来执行H.264/AVC的色度分量Cb滤波。
DMA接口30通过参照从主接口20接收的MC参数中的运动向量通过系统总线以预定大小的块为单位从外部存储器取出参考图像的色度分量Cb,并将取出的色度分量Cb的块输出到立方体排列器44,其中,所述所述运动向量指示当前图像的块和参考图像的相应块之间的不同。
当编解码器信息指示H.264/AVC、颜色信息指示色度分量Cb以及滤波器信息指示立方体滤波器时,立方体排列器44将形成从DMA接口30接收的色度分量Cb中的块的整像素的像素值中的4个像素值排列在产生由从主接口20接收的运动向量指示的预定位置的像素的像素值所需要的立方体位置上,并将排列的4个整像素的像素值输出到立方体滤波器45。
当编解码器信息指示H.264/AVC、颜色信息指示色度分量Cb以及滤波器信息指示立方体滤波器时,立方体滤波器45基于由图3中示出的立方体排列器44排列的4个整像素的像素值来计算排列的像素之间的预定位置的像素的像素值。具体地讲,立方体滤波器通过将立方体位置上的4个像素的像素值应用于在相应立方体位置的4个抽头来计算从主接口20接收的MC参数中的块的运动向量指示的1/4像素的像素值,并将计算的像素值输出到第一存储器50。
例如,当运动向量指示的像素的位置是图2B中示出的4个箭头的会聚点时,立方体滤波器45通过将P1、P2、P3和P4的整像素的像素值应用于4个抽头计算P=((8-xFrc)×(8-yFrc)×P1+xFrc×(8-yFrc)×P2+(8-xFrc)×yFrc×P3+xFrc×yFrc×P4+32)>>6来计算预定位置的像素的像素值。
参照图5,DMA接口30、立方体排列器44和立方体滤波器45对色度分量Cr以与对色度分量Cb的操作情况相同的方式操作。因此,这里将省略关于H.264/AVC的色度分量Cr滤波的操作情况的详细描述。
图6是示出在图4中示出的设备中根据VC1的线性滤波器的操作情况的示图。
参照图6,图4的设备根据下面的操作情况执行VC1的亮度分量滤波。
DMA接口30通过参照从主接口20接收的MC参数中的运动向量通过系统总线从外部存储器以预定大小的块为单位取出参考图像的亮度分量,并将取出的亮度分量的块输出到垂直滤波器41,其中,所述运动向量表示当前图像的块和参考图像的相应块之间的不同。
当编解码器信息指示VC1、颜色信息指示亮度分量以及滤波器信息指示线性滤波器时,垂直滤波器41基于垂直线上形成从DMA接口30接收的亮度分量的块的整像素的像素值,计算所述整像素中的位于垂直线上的整像素之间的1/2像素或1/4像素的像素值。具体地讲,垂直滤波器41通过将垂直线上整像素的像素值应用于4个抽头来计算从主接口20接收的MC参数中块的运动向量指示的1/2像素或1/4像素的像素值,并将计算的像素值输出到第一水平滤波器42。垂直滤波器41可通过调整4抽头滤波器的系数值来计算1/2像素或1/4像素的像素值。另外,当块的运动向量指示整像素时,垂直滤波器41将形成从DMA接口30接收的亮度分量的块的整像素的像素值输出到第一水平滤波器42。
在图5的实施例中,6抽头滤波器可用作垂直滤波器41和第一水平滤波器42。由于在不改变硬件结构的情况下通过不使用6个抽头中的2个抽头可将6抽头滤波器用作4抽头滤波器,所以图5的6抽头滤波器可用作用于图6中的垂直滤波器41和第一水平滤波器42的4抽头滤波器。
当编解码器信息指示VC1、颜色信息指示亮度分量以及滤波器信息指示线性滤波器时,第一水平滤波器42基于形成通过垂直滤波器41从DMA接口30接收的亮度分量的块的整像素的像素值来计算位于所述整像素中的水平线上的整像素之间的1/2像素或1/4像素的像素值。具体地讲,第一水平滤波器42通过将水平线上的整像素的像素值应用于4个抽头来计算从主接口20接收的MC参数中的块的运动向量指示的1/2像素或1/4像素的像素值,并将计算的像素值输出到立方体滤波器45。另外,当运动向量指示整像素时,第一水平滤波器42将形成通过垂直滤波器41从DMA接口30接收的亮度分量的块的整像素的像素值输出到第一存储器50。另外,第一水平滤波器42将从垂直滤波器41接收的1/2像素或1/4像素的像素值输出到第一存储器50。
例如,运动向量指示的像素的位置是图2C中的黑点时,第一水平滤波器42通过将P1、P2、P3和P4的整像素的像素值应用于4个抽头计算P=(a×P1+b×P2+c×P3+d×P4+rc)>>s来计算与黑点相应的1/2像素或1/4像素的像素值。尽管没有示出垂直滤波器41的详细示例,但仅将水平滤波改变为垂直滤波,因此,如上所述来执行垂直滤波。另外,参照图6,DMA接口30、垂直滤波器41和第二水平滤波器43对色度分量Cb和Cr以对亮度分量的操作情况相同的方式来运行。
在如VC1的线性滤波器来补偿参考图像的亮度分量的运动的处理中,不需要同时使用两个水平滤波器,因此,可使用水平滤波器中的任何一个。具体地讲,在当前实施例中,使用第一水平滤波器42和第二水平滤波器43中的第一水平滤波器42,但本领域的普通技术人员而言应该知道,还可使用第二水平滤波器43。
图7是示出在图4的设备中根据MPEG4和VC1的立方体滤波器的操作情况的示图。
参照图7,图4的设备根据下面的操作情况来执行MPEG4和VC1的亮度分量滤波。
DMA接口30通过参照从主接口20接收的MC参数中的运动向量来以预定大小的块为单位通过系统总线从外部存储器中取出参考图像的亮度分量,并将取出的亮度分量中的块输出到立方体排列器44,其中,所述运动向量指示当前图像的块和参考图像的相应块之间的不同。
当编解码器信息指示MPEG4或VC1、颜色信息指示亮度分量以及滤波器信息指示立方体滤波器时,立方体排列器44将形成从DMA接口30接收的亮度分量中的块的整像素中的整像素的4个像素值排列在产生由从主接口20接收的运动向量指示的预定位置的像素的像素值所需要的立方体位置上,并将所述4个排列的整像素的像素值输出到立方体滤波器45。
当编解码器信息指示MPEG4或VC1、颜色信息指示亮度分量以及滤波器信息指示立方体滤波器时,立方体滤波器45基于4个排列的整像素的像素值来计算由图3示出的立方体排列器44排列的4个整像素之间的预定位置的1/2像素或像素的像素值。具体地讲,立方体滤波器45通过将立方体位置中的整像素的4个像素值应用于相应的4个抽头计算从主接口20接收的MC参数中的块的运动向量指示的预定位置的1/2像素或像素的像素值,并将计算的像素值输出到第一存储器50。
例如,当运动向量指示的像素的位置是图2D中示出的黑点时,立方体滤波器45通过将P1、P2、P3和P4中的整像素的像素值应用于4个抽头计算P=(P1+P2+1-rc)>>1,P=(P1+P3+1-rc)>>1,P=(P1+P2+P3+P4-rc)>>1来计算与黑点相应的像素的像素值。另外,当运动向量指示的像素的位置是图2E中示出的4个箭头的会聚点时,立方体滤波器通过将P1、P2、P3和P4中的整像素的像素值应用于4个抽头计算P=(a×P1+b×P2+c×P3+d×P4+rc)>>s来计算预定位置的像素的像素值。
参照图7,DMA接口30、立方体排列器44和立方体滤波器45对色度分量Cb和Cr以与对亮度分量的操作情况相同的方式运行。
具体地讲,当前实施例采用寄存器阵列形式。当必须执行通过第一水平滤波器42或第二水平滤波器43的水平滤波以及通过垂直滤波器41的垂直滤波时,在垂直滤波中可使用水平滤波的结果值,或者在水平滤波中可使用垂直滤波的结果值。
图8是示出图4中示出的垂直滤波器41内的寄存器阵列链的示图。
参照图8,考虑在H.264/AVC的情况下形成块的一条线的像素数量是21,垂直滤波器41内的寄存器阵列链由21个8比特寄存器构成。在除了H.264/AVC之外的其他编解码器的情况下,形成块的一条线的像素数量小于21。具体地讲,由于H.264/AVC使用6抽头滤波器,所以需要5个这种寄存器阵列链,并且这5个寄存器阵列链串联。一个寄存器阵列链的输出值成为另一连接的寄存器阵列链的输入值。
垂直滤波器41内的寄存器阵列链从DMA接口30接收在每一时钟与8比特相应的像素的像素值,并在将21个寄存器的每一个寄存器中当前存储的像素值右移1位的同时,将接收的像素值存储在寄存器R0中,从而寄存器R20中存储的像素值移出。
具体地讲,当每一个H.264/AVC的运动向量指示的像素位置是整像素时,寄存器阵列链在每一时钟通过8×1 MUX根据块的大小输出在寄存器R3中存储的像素值、寄存器R7中存储的像素值和寄存器R15中存储的像素值中的任何一个。例如,当通过运动补偿引擎40以4×4的块为单位执行运动补偿时,寄存器阵列链输出在寄存器R3中存储的像素值,当以8×8的块为单位执行运动补偿时,寄存器阵列链输出在寄存器R7中存储的像素值,当以16×16的块为单位执行运动补偿时,寄存器阵列链输出在寄存器R15中存储的像素值。
当由H.264/AVC的运动向量指示的像素位置不是整像素时,寄存器阵列链根据块大小输出寄存器R8中存储的像素值、寄存器R12中存储的像素值和寄存器R20中存储的像素值中的任何一个。例如,当通过运动补偿引擎40以4×4块为单位执行运动补偿时,寄存器阵列链输出在寄存器R8中存储的像素值,当以8×8的块为单位执行运动补偿时,寄存器阵列链输出在寄存器R12中存储的像素值,当以16×16的块为单位执行运动补偿时,寄存器阵列链输出在寄存器R20中存储的像素值。
当在VC1中运动向量指示的像素位置不是整像素时,寄存器阵列链根据块大小输出寄存器R10中存储的像素值、寄存器R18中存储的像素值中的任何一个。例如,当通过运动补偿引擎40以8×8的块为单位执行运动补偿时,寄存器阵列链输出在寄存器R10中存储的像素值,当以16×16的块为单位执行运动补偿时,寄存器阵列链输出在寄存器R18中存储的像素值。在VC1的情况下,不支持4×4的块模式。
图9是示出在图4中示出的垂直滤波器41内的6抽头滤波器的示图。
参照图9,垂直滤波器41内的6抽头滤波器接收图8中示出的寄存器阵列链的输出值。换句话讲,6抽头滤波器基于在6个时钟期间从寄存器阵列链输出并累积的6个像素的像素值(即寄存器R1至R5中存储的5个整像素的像素值和当前输入的像素值)来计算位于所述6个像素之间的1/2像素的像素值。由于一个寄存器阵列链的输出值存储在6抽头滤波器的一个寄存器中,所以需要与6抽头滤波器的5个寄存器相应的5个寄存器阵列链。换句话讲,图9中示出的6抽头滤波器包括9个寄存器、5个乘法器和5个加法器,以计算等式1,例如,b1=(E-5×F+20×G+20×H-5×I+J)。参照图9,最右边加法器的两个输入端和4个乘法器的每个输入端对应于6个抽头。
图10是关于在图4中示出的设备中的数据处理的时序图。
参照图10,DMA接口30、垂直滤波器41、第一水平滤波器42、第二水平滤波器43和立方体滤波器45在数据等待(latency)时间段(是在向外部存储器请求与参考图像相应的数据之后以32比特接收数据的备用(standby)时间段)和数据传送时间段(是用于从外部存储器接收数据的时间段)期间以流水线(pipeline)形式运行。通常,由于数据等待时间段和数据传送时间段非常长,所以垂直滤波器41、第一水平滤波器42、第二水平滤波器43和立方体滤波器45在所述时间段被隐藏地执行。从而,可快速执行运动补偿。
图11是示出根据本发明实施例的支持多编解码器的运动补偿方法的流程图。
参照图11,由在图4中示出的设备中时间上连续处理的操作构成根据本发明的当前实施例的方法。因此,即使有省略的描述,所述设备的详细描述同样可应用于图11的方法。
在操作100,根据本发明的支持多编解码器的运动补偿设备通过系统总线从外部编码设备取出与参考图像和当前图像之间的差相应的残差数据和作为运动补偿所需的参数的MC参数。
在操作200,所述设备存储取出的残差数据。
在操作300,所述设备通过参考在操作100中取出的MC参数中的指示当前图像的块和参考图像的相应块之间的不同的运动向量,通过系统总线从外部存储器取出参考图像和当前图像共享的参考图像的以32比特为单位的数据。
在操作400,所述设备根据在操作300中与取出的以32比特为单位的数据相关的运动向量执行8比特拆包和填充。
在操作500,所述设备根据在操作100中取出的MC参数中的编解码器信息(该编解码器信息指示多个编解码器中的任何一个)、颜色信息(该颜色信息指示多个颜色分量中的任何一个)和滤波器信息(该滤波器信息指示多个滤波器中的任何一个),基于与操作400的结果相应的参考图像的块的垂直线上的整像素的像素值来选择性地计算位于所述垂直线上的整像素之间的1/2像素的像素值。
详细地讲,当编码器信息指示H.264/AVC、颜色信息指示亮度分量以及滤波器信息指示线性滤波器时,或者当编解码器信息指示VC1、颜色信息指示亮度分量或色度分量以及滤波器信息指示线性滤波器时,在操作500,所述设备基于与操作400的结果相应的参考图像的块的垂直线上的整像素的像素值来计算位于所述垂直线上的整像素之间的1/2像素的像素值。
在操作600,所述设备根据在操作100中取出的MC参数中的编解码器信息、颜色信息和滤波器信息基于与操作400的结果相应的参考图像的块的水平线上的整像素的像素值来选择性地计算位于所述水平线上的整像素之间的1/2像素或1/4像素的像素值。
详细地讲,当编码器信息指示H.264/AVC、颜色信息指示亮度分量以及滤波器信息指示线性滤波器时,或者当编解码器信息指示VC1、颜色信息指示亮度分量或色度分量以及滤波器信息指示线性滤波器时,在操作600,所述设备基于与操作400的结果相应的参考图像的块的水平线上的整像素的像素值来计算位于所述水平线上的整像素之间的1/2像素或1/4像素的像素值。
在操作700,所述设备根据在操作100中取出的MC参数中的编解码器信息、颜色信息和滤波器信息基于与操作600的水平线不同的另一水平线上的整像素或1/2像素的像素值来选择性地计算位于所述另一水平线上的整像素或1/2像素之间的1/2像素的像素值。
详细地讲,当编码器信息指示H.264/AVC、颜色信息指示亮度分量以及滤波器信息指示线性滤波器时,在操作700,所述设备基于与操作600的水平线不同的另一水平线上的整像素或1/2像素的像素值来计算位于所述另一水平线上的整像素或1/2像素之间的1/2像素的像素值。
在操作800,所述设备根据在操作100中取出的MC参数中的编解码器信息、颜色信息和滤波器信息基于在亮度分量中的块的立方体中的在操作600和700中计算2个整像素或1/2像素的像素值来选择性地计算位于所述两个整像素或1/2像素之间的1/4像素的像素值。
详细地讲,当编码器信息指示H.264/AVC、颜色信息指示亮度分量以及滤波器信息指示线性滤波器时,所述设备基于在亮度分量中的块的立方体中的在操作600和700中计算2个整像素或1/2像素的像素值来选择性地计算位于所述两个整像素或1/2像素之间的1/4像素的像素值。在其他情况下,不执行操作800的立方体滤波。
在操作900,所述设备根据在操作100中取出的MC参数中的编解码器信息、颜色信息和滤波器信息根据选择性地在产生由块的运动向量指示的预定位置的像素、1/2像素或1/4像素的像素值所需的立方体位置上排列与操作400的结果相应的整像素的像素值。
详细地讲,当编码器信息指示H.264/AVC、颜色信息指示色度分量以及滤波器信息指示立方体滤波器时,当编码器信息指示MPEG4、颜色信息指示亮度分量或色度分量以及滤波器信息指示立方体滤波器时,或者当编码器信息指示VC1、颜色信息指示亮度分量或色度分量以及滤波器信息指示立方体滤波器时,在操作900,所述设备在产生由块的运动向量指示的预定位置的像素、1/2像素或1/4像素的像素值所需的立方体位置上排列与操作400的结果相应的整像素的像素值。在其他情况下,不执行操作900的立方体排列。
在操作1000,所述设备基于如图3所示的在操作900中排列的4个整像素的像素值来计算所述4个整像素之间的预定位置的1/2像素、1/4像素或像素的像素值。
在操作1100,所述设备确定是否对整个参考图像执行操作300至操作1000,当确定对整个参考图像执行操作300至操作1000时,执行操作1200,当确定不对整个参考图像执行操作300至操作1000时,执行操作300。
在操作1200,所述设备存储通过操作300至操作1000所产生的运动补偿数据。
在操作1300,所述设备通过将在操作1200中存储的运动补偿数据加上在操作200中存储的残差数据来恢复当前图像。
如上所述,在通过根据指示多个编解码器(例如,MPEG4、H.264/AVC和VC1)中的任何一个的编解码器信息选择性地执行所述多个编解码器的公共部分(例如,垂直滤波、水平滤波和立方体滤波)以硬件实现支持多编解码器的运动补偿的同时,可使芯片的大小最小化。具体地讲,可通过使运动补偿模块化以硬件容易地实现运动补偿,从而可选择性地执行公共部分。此外,随着芯片中使用的部件数量的减少,还可减少芯片的制造费用。
另外,根据本实施例,在从外部存储器接收数据的备用时间段和从外部存储器接收数据的时间段期间,以流水线形式执行垂直滤波、水平滤波和立方体滤波,因此,可使用于处理运动补偿所花费的时间最小化。因此,在支持多编解码器的同时,可对图像进行实时编码和解码,因此,可容易地制造支持多编解码器的设备(例如,DMB再现设备)。
本发明的实施例可被编写为计算机程序,并通过使用计算机可读记录介质在运行所述程序的通用数字计算中被实现。另外,在本发明的实施例中使用的数据的结构可通过各种工具被记录在计算机可读记录介质上。所述计算机可读记录介质的数量包括磁存储介质(例如,ROM、软盘、硬盘等)、光学记录介质(例如,CD-ROM或DVD)和诸如载波的存储媒介(例如,通过互联网的传输)。
尽管参照本发明的优选实施例具体显示和描述了本发明,但是本领域的技术人员应该理解,在不同脱离权利要求限定的本发明的精神和范围的情况下,可在形式和细节上进行各种改变。所述优选实施例应该被认为仅为了描述的目的,而不是为了限制的目的。因此,不是由本发明的详细描述来限定本发明的范围,而是由权利要求来限定本发明的范围,该范围内的所有不同将被解释为包括在本发明中。

Claims (19)

1.一种用于运动补偿的方法,包括:
a、通过根据指示多个编解码器之一的编解码器信息使用对与当前图像相应的参考图像的像素进行插值的多种方法中的至少一种方法,基于参考图像的像素的像素值,计算位于所述参考图像的像素之间的像素的像素值;以及
b、通过将包括计算的像素值的运动补偿数据和参考图像与当前图像之间的差相加来恢复当前图像。
2.如权利要求1所述的方法,其中a包括:
a1、根据编解码器信息,基于参考图像的块的垂直线上的像素的值,选择性地计算位于所述垂直线上的像素之间的像素的像素值;
a2、根据编解码器信息,基于所述块的水平线上的像素的值,选择性地计算位于所述水平线上的像素之间的像素的像素值;以及
a3、根据编解码器信息,基于所述块的立方体中的像素的值,选择性地计算位于所述立方体中的像素之间的像素的像素值。
3.如权利要求2所述的方法,其中,a1、a2和a3中的每一个根据编解码器信息和指示多个色彩分量之一的色彩信息来选择性地计算像素的像素值。
4.如权利要求3所述的方法,其中,当编解码器信息指示H.264/AVC,色彩信息指示亮度分量时,a1、a2和a3中的每一个计算像素值。
5.如权利要求4所述的方法,其中,a1通过将垂直线上的像素的像素值应用于6个抽头来计算像素值,a2通过将水平线上的像素的像素值应用于6个抽头来计算像素值,a3通过将立方体中的2个像素的像素值应用于4个抽头中的2个抽头来计算像素值。
6.如权利要求3所述的方法,其中,当编解码器信息指示H.264/AVC,色彩信息指示色度分量时,a1和a2不计算像素值,a3计算像素值。
7.如权利要求3所述的方法,其中,a1、a2和a3中的每一个根据编解码器信息、色彩信息和指示多个滤波器之一的滤波器信息来选择性地计算像素值。
8.如权利要求7所述的方法,其中,当编解码器信息指示VC1,色彩信息指示亮度分量或色度分量,滤波器信息指示线性滤波器时,a1和a2计算像素值,a3不计算像素值。
9.如权利要求7所述的方法,其中,当编解码器信息指示VC1,色彩信息指示亮度分量或色度分量,滤波器信息指示立方体滤波器时,a1和a2不计算像素值,a3指示像素值。
10.如权利要求1所述的方法,其中,a计算由参考图像的块的运动向量指示的像素值。
11.如权利要求2所述的方法,还包括:根据编解码器信息,基于不同于所述水平线的另一水平线上的像素的像素值,选择性地计算位于所述另一水平线上的像素之间的像素的像素值。
12.如权利要求2所述的方法,还包括:
根据编解码器信息,选择性地将像素的像素值排列在产生由块的运动向量指示的像素的像素值所需的立方体位置上;以及
根据编解码器信息,基于排列的像素值,选择性地计算位于排列的像素之间的像素的像素值。
13.如权利要求2所述的方法,其中,a1基于垂直线上的整像素的像素值来计算位于垂直线上的像素之间的1/2像素的像素值,a2基于水平线上的整像素的像素值来计算位于水平线的像素之间的1/2像素的像素值,a3基于形成所述块的整像素的像素值、在a1中计算的1/2像素的像素值以及在a2中计算的1/2像素的像素值,计算位于所述立方体中的像素之间的1/4像素的像素值。
14.如权利要求1所述的方法,还包括:根据由每个编解码器的运动向量指示的像素的位置,从多个寄存器中选择性地输出存储在预定位置的寄存器中的像素值,
其中,a基于像素的像素值,计算位于在预定数量的时钟期间输出和累积的像素之间的像素的像素值。
15.如权利要求14所述的方法,其中,根据块的大小来输出所述多个寄存器中在所述预定位置的寄存器中的任何一个。
16.如权利要求2所述的方法,其中,在为了从外部存储器接收与当前数据相应的备用区间以及从外部存储器接收数据的区间中以流水线形式执行a1、a2和a3中的每一个。
17.一种记录有用于执行用于运动补偿的方法的程序的计算机可读介质,所述方法包括:
通过根据指示多个编解码器之一的编解码器信息使用对与当前图像相应的参考图像的像素进行插值的多种方法中的至少一种方法,基于参考图像的像素的像素值,计算位于所述参考图像的像素之间的像素的像素值;以及
通过将包括计算的像素值的运动补偿数据和参考图像与当前图像之间的差相加来恢复当前图像。
18.一种用于运动补偿的设备,包括:
运动补偿引擎,其通过根据指示多个编解码器之一的编解码器信息使用对与当前图像相应的参考图像的像素进行插值的多种方法中的至少一种方法,基于参考图像的像素的像素值,计算位于所述参考图像的像素之间的像素的像素值;以及
加法器,通过将包括计算的像素值的运动补偿数据和参考图像与当前图像之间的差相加来恢复当前图像。
19.如权利要求18所述的设备,其中,运动补偿引擎包括:
垂直滤波器,根据编解码器信息,基于参考图像的块的垂直线上的像素的值,选择性地计算位于所述垂直线上的像素之间的像素的像素值;
水平滤波器,根据编解码器信息,基于所述块的水平线上的像素的值,选择性地计算位于所述水平线上的像素之间的像素的像素值;以及
立方体滤波器,根据编解码器信息,基于所述块的立方体中的像素的值,选择性地计算位于所述立方体中的像素之间的像素的像素值。
CNA2007101692423A 2006-11-08 2007-11-07 支持多编解码器的运动补偿的方法和设备 Pending CN101179721A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR20060110224 2006-11-08
KR1020060110224 2006-11-08
KR1020070108448 2007-10-26

Publications (1)

Publication Number Publication Date
CN101179721A true CN101179721A (zh) 2008-05-14

Family

ID=39405781

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101692423A Pending CN101179721A (zh) 2006-11-08 2007-11-07 支持多编解码器的运动补偿的方法和设备

Country Status (3)

Country Link
US (1) US8594443B2 (zh)
KR (1) KR101354659B1 (zh)
CN (1) CN101179721A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101527847B (zh) * 2009-01-04 2012-01-04 炬力集成电路设计有限公司 运动补偿插值装置和方法
CN102523373A (zh) * 2011-12-07 2012-06-27 天津天地伟业物联网技术有限公司 视频数据的滤波降噪系统及滤波降噪方法
CN110313015A (zh) * 2018-05-31 2019-10-08 深圳市大疆创新科技有限公司 数据处理方法和处理电路
CN110611818A (zh) * 2018-06-14 2019-12-24 腾讯美国有限责任公司 视频编解码方法、装置、计算机设备以及存储介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200925023A (en) * 2007-12-07 2009-06-16 Altek Corp Method of displaying shot image on car reverse video system
KR100963424B1 (ko) * 2008-07-23 2010-06-15 한국전자통신연구원 스케일러블 영상 복호화기 및 그 제어 방법
KR20120038401A (ko) * 2009-06-09 2012-04-23 소니 주식회사 화상 처리 장치 및 방법
US20110200108A1 (en) * 2010-02-18 2011-08-18 Qualcomm Incorporated Chrominance high precision motion filtering for motion interpolation
US8503534B2 (en) * 2010-04-22 2013-08-06 Maxim Integrated Products, Inc. Multi-bus architecture for a video codec
CN105516726B (zh) * 2015-11-27 2019-04-09 传线网络科技(上海)有限公司 视频编码的运动补偿匹配方法和系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2288521B (en) * 1994-03-24 1998-10-14 Discovision Ass Reconfigurable process stage
JP3335482B2 (ja) 1993-09-02 2002-10-15 松下電器産業株式会社 信号処理装置
JPH08228353A (ja) 1995-02-21 1996-09-03 Nec Corp 動画像符号化用動き補償回路
KR100290851B1 (ko) 1999-03-27 2001-05-15 구자홍 디지털 티브이의 영상 처리 장치
US6768817B1 (en) * 1999-09-03 2004-07-27 Truong, T.K./ Chen, T.C. Fast and efficient computation of cubic-spline interpolation for data compression
US6873655B2 (en) * 2001-01-09 2005-03-29 Thomson Licensing A.A. Codec system and method for spatially scalable video data
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
CN100553321C (zh) * 2002-01-14 2009-10-21 诺基亚有限公司 编码动态滤波器
MXPA05000335A (es) 2002-07-09 2005-03-31 Nokia Corp Metodo y sistema para seleccionar tipo de filtro de interpolacion en codificacion de video.
US7110606B2 (en) * 2003-06-12 2006-09-19 Trieu-Kien Truong System and method for a direct computation of cubic spline interpolation for real-time image codec
CN1578477B (zh) * 2003-07-16 2011-05-04 三星电子株式会社 用于色彩图像的视频编码/解码装置和方法
US20050262276A1 (en) 2004-05-13 2005-11-24 Ittiam Systamc (P) Ltd. Design method for implementing high memory algorithm on low internal memory processor using a direct memory access (DMA) engine
US7590059B2 (en) 2004-05-21 2009-09-15 Broadcom Corp. Multistandard video decoder
EP1631068A3 (en) * 2004-08-26 2008-09-03 Samsung Electronics Co., Ltd. Apparatus and method for converting interlaced image into progressive image
US7653132B2 (en) 2004-12-21 2010-01-26 Stmicroelectronics, Inc. Method and system for fast implementation of subpixel interpolation
US20090022220A1 (en) * 2005-04-13 2009-01-22 Universitaet Hannover Method and apparatus for enhanced video coding
US8208564B2 (en) * 2005-06-24 2012-06-26 Ntt Docomo, Inc. Method and apparatus for video encoding and decoding using adaptive interpolation
US7747088B2 (en) * 2005-09-28 2010-06-29 Arc International (Uk) Limited System and methods for performing deblocking in microprocessor-based video codec applications
US20080075165A1 (en) * 2006-09-26 2008-03-27 Nokia Corporation Adaptive interpolation filters for video coding

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101527847B (zh) * 2009-01-04 2012-01-04 炬力集成电路设计有限公司 运动补偿插值装置和方法
CN102523373A (zh) * 2011-12-07 2012-06-27 天津天地伟业物联网技术有限公司 视频数据的滤波降噪系统及滤波降噪方法
CN110313015A (zh) * 2018-05-31 2019-10-08 深圳市大疆创新科技有限公司 数据处理方法和处理电路
WO2019227447A1 (zh) * 2018-05-31 2019-12-05 深圳市大疆创新科技有限公司 数据处理方法和处理电路
CN110611818A (zh) * 2018-06-14 2019-12-24 腾讯美国有限责任公司 视频编解码方法、装置、计算机设备以及存储介质

Also Published As

Publication number Publication date
US20080219572A1 (en) 2008-09-11
US8594443B2 (en) 2013-11-26
KR20080041993A (ko) 2008-05-14
KR101354659B1 (ko) 2014-01-28

Similar Documents

Publication Publication Date Title
CN101179721A (zh) 支持多编解码器的运动补偿的方法和设备
JP4987884B2 (ja) 映像データ処理
KR101118814B1 (ko) 그래픽 시스템에서 변수들의 패킹 및 링킹을 위한 방식
US7835441B2 (en) Supporting motion vectors outside picture boundaries in motion estimation process
US20090110077A1 (en) Image coding device, image coding method, and image coding integrated circuit
JP4789753B2 (ja) 画像データバッファ装置、画像転送処理システム、及び画像データバッファ方法
KR20040038922A (ko) 데이터의 병렬 시프트 우측 병합을 위한 방법 및 장치
WO2006036571A1 (en) An apparatus and method for edge handling in image processing
CN101105932A (zh) 缩放影像装置及其方法
JP5698428B2 (ja) 動き補償方法、記録媒体及び動き補償装置
US20080285872A1 (en) Information processing device and method
US20150242996A1 (en) Image processing apparatus and image processing method
WO2019041264A1 (zh) 图像处理装置、方法及相关电路
CN103098371B (zh) 对称型滤波运算装置以及对称型滤波运算方法
CN101778280B (zh) 一种基于avs运动补偿亮度插值运算的电路及方法
KR100818034B1 (ko) 데이터 전송 방법, 회로 장치 및 데이터 전송 장치
CN101233758A (zh) 使用分级缓存的运动估计及补偿
CN103975583A (zh) 捕获多个视频通道用于视频分析和编码
JP2009015637A (ja) 演算ユニット及び画像フィルタリング装置
JP2004509528A (ja) DCTインタフェースのためのRGB色空間とYCrCb色空間との間のデータ転送
CN103237211A (zh) 一种基于fpga的视频亚像素亮度插值的方法及其装置
TW201347520A (zh) 晶片內/晶片外記憶體管理
KR20080023024A (ko) 비디오 데이터 저장 방법 및 장치
JP2008295097A (ja) 画像処理装置、画像処理システム、撮像装置および画像処理方法
CN102257530B (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
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20080514