从一个或两个预测数据块计算象素值的装置和方法

文档序号:7569898阅读:181来源:国知局
专利名称:从一个或两个预测数据块计算象素值的装置和方法
技术领域
本发明涉及用于使用最小暂存要求从半个象素精度双向计算预测块的数字视频运动补偿方法和装置。尤其可应用于数字视频压缩和解压系统。
许多数字视频处理系统利用把先前处理的图象或其一部分用于进一步处理另一个图象的运动补偿技术。一个典型的例子是通过把一个图象的象素组用于预测另外图象的象素组的数字视频压缩和解压处理使用的运动补偿技术。例如,MPEG-1(参见由国际标准化组织,ISO MPEG文献,ISO-IEC/JTC1/SC2/WG8,1992年发表的“CD 11172-对于数字存储介质达约1.5Mbps的运动图象和相关音频的编码”)和MPEG2(参见由国际标准化组织,ISO MPEG文献,ISO-IEC/JTC1/SC2/WG11,1994发表的“IS13818-运动图象和相关音频的原始编码”)利用双向半象素精度运动补偿。这使得图象被划分成称为宏块的象素组,该宏块是使用涉及时间上在被处理的图象之前或之后的先前处理图象的运动矢量单独预测的。这些标准支持的运动矢量是半象素精度,意味着预测宏块象素必须按2或4个象素的平均进行计算。此外,MPEG-2所支持的包括场/帧运动补偿的几种模式中,其中宏块可以使用先前帧或先前场数据进行预测。
图2表示半象素精度如何用于产生预测块。在该图中,白圆圈表示全象素精度象素,灰圆圈表示按水平或垂直方向的两个白色象素的平均所计算的半象素精度象素,而黑圆圈表示按4个白色象素的平均所计算的半象素精度。图3表示如何通过平均两个基准图象的两个块使用帧运动补偿来预测一个块。白椭圆表示两个基准的象素和灰椭圆表示通过平均白色象素计算所得的预测象素。应注意,每个基准块可能已经也可能还没有被确定使用半象素精度内插。图4表示如何通过组合单个场使用场运动补偿来预测一个块。每帧包括可分离的两个场,如自由和浅灰圈所表示的图象帧的两场的象素。然后,基准场可用平均单独组合,再把所得的预测场组合,构成预测块。仍应注意,每个基准块(场)可能已经、也可能还没有被确定使用半象素精度内插。
由图5表示实施这种预测块结构的最明显的结构。在该图中,标号501是图象存储器,502是基准1的读出块存储器,503是基准2的读出块存储器,504是半象素内插器,505是基准1的基准块存储器,506是基准2的基准存储器,507是基准平均器,508是预测块存储器,509是IDCT(逆离散余弦变换)处理器,510是差块存储器,511是重现器,512是解码块存储器。全象素基准块从图象存储器501读入到读出块存储器502和503。通过半象素内插器504在每个块上进行半象素内插并将所得的块写入基准块存储器505和506。由此,根据写入预测块存储器508的结果由基准平均器507组合两个基准。然后使用重现器511用差块存储器510的内容组合这个预测块并存储在解码块存储器502中。在IDCT处理器509的情况下,差块存储器510经其它解码处理来填充。对于MPEG1和MPEG2,这就是逆离散余弦变换处理。
VDSP2(参见1994年4月ICASSP-4会刊上由Araki等人发表的“MPEG2 CODEC的视频DSP结构”)是通过当基准块数据用位于基准块存储器的结果读出时执行半象素内插来减少存储器要求的。于是,它可用半象素内插计算器代替读出块存储器。它还通过把解码数据块和预测数据块相组合作为写入图象存储器的数据来消除解码块存储器。图6表示对于这种方法的简化VDSP2结构的方框图。在图中,标号601是图象存储器,602是半象素内插器,603是基准1的基准块存储器,604是基准2的基准块存储器,605是基准平均器,606是预测块存储器,607是IDCT处理器,608是差值块存储器,和609是重建器。全象素基准块从图象存储器501读出且半象素内插是通过半象素内插器602在每个块上进行以及所得的块写入到基准块存储器603和604。随后,两个基准是由基准平均器605与写入预测块存储器606的结果组合。该预测块是使用重建器609与差值块存储器608的内容组合并写入图象存储器601。差值块存储器608是在IDCT处理器607的情况下,用其它解码处理填充。
本发明的目的是使用运动补偿基准减少对于重建解码象素数据所需的暂存量。数字视频处理器,例如MPEG1和MPEG2编码被用于用户的电子设备中,以致于实施的成本很重要的因素。实施的程度与成本直接成比例。本发明的目的是减少所需的暂存量的大小,以便降低实施的成本。
为了解决上述问题,本发明的方法从一个或两个基准块计算视频象素的子象素精度运动补偿的象素值。本发明包括以连续的每块的相邻块行的顺序传送所述的基准块象素到计算器,在每个基准块和每个块行之间进行交替,并以相同的有关顺序排列两个块的块行,并且其中在每个块行内的相邻象素是连续的。当出现这种情况时,所述的计算器计算预测块并当以与基准块之一的所述基准读出顺序相同的有关顺序连续排列所述的预测块的相邻块行计算数据时,输出该结果,其中在每个块行内的相邻象素以与基准块之一的所述基准读出顺序相同的有关顺序连续排列。该计算器包括X-内插器,用于进行在同一块行的象素之间的子象素内插;两个基准块行缓冲器,用于暂存每个基准块的块行;Y-内插器,用于进行在连续块行之间的子象素内插;内插基准块行缓冲器,用于暂存来自起始第一数据的基准的子象素精度基准块行;以及基准块平均器,用于平均存储在所述内插基准块行缓冲器的块行和后续的基准块的内插基准块行。
本发明的象素数据流作为在块行流水线(Pipeline)内的象素流水线来操作。以计算需要数据的顺序从基准图象存储器读出数据。由此,当它们读出和存入基准块行缓冲器时使用单抽头平均滤波器插入一行块的象素。行缓冲器在块行的1抽头滤波器中起延迟缓冲的作用,以便计算每个基准的半象素内插块行。Y-内插器实现了平均滤波器的计算,结果是,以双向已经平均的行块作为是第一基准的半象素精度块行。它被存储在内插基准块行缓冲器。传送到Y-内插器的下一行数据是从第二基准来的,如果使用两个基准,对应于第二基准的半象素精度块行该计算结果的该数据与相应于存储在内插基准块行缓冲器的第一基准的半象素精度块行的象素值一起送到基准块平均器。由基准块平均器得出的结果是双向半象素精度预测块行,它能与IDCT的输出组合并送到图象存储器作为完全解码的块行。


图1表示根据本发明方法的一个实施例的方框图;图2表示半象素精度如何用于产生预测块,图3表示如何使用帧运动补偿通过平均两个基准图象的两个块来预测一个块,
图4表示如何使用场运动补偿通过组合单个场来预测一个块的图,图5的框图表示从两个基准构成的半象素精度预测块的结构,图6表示VDSP2所使用的从两个基准构成半象素精度预测数据块结构,图7描述本发明方法的一个实施例,图8描述本发明方法的操作所需的输入和输出象素定时的例子,和图9描述如果使用图8的输入和输出定时的例子,图7实施例的定时。
参照附图,将描述由一个或两个基准块计算视频象素的子象素精度运动补偿块的象素值和使它与象素差块值组合以产生解码象素值的实施例。
图1表示根据本发明用于从一个或两个预测块计算块的象素值的装置。图1中,标101是输入象素的输入端,102是X-内插器,103是X-内插器102的一个输出,104是基准1块行缓冲器,105是基准2块行缓冲器,106是X-内插器的旁路输出,107是Y-内插器的输出,108是Y-内插器,109是Y内插器的输出,110是Y-内插器的旁路输出,111是内插基准块行缓冲器,112是基准块平均器,113是基准块平均器的输出,114是IDCT处理块,115是IDCT处理块的输出,116是重建器,和117是用本发明方法处理以后解码象素的输出。
图1的实施例操作如下。输入象素101加到起滤波器作用的X-内插器102,以便使用相同基准块行的象素值计算内插的象素值。从X-内插器103输出的结果内插象素值依据起源于起始象素的基准存储在或基准1块行缓冲器104或基准2块行缓冲器105。这些行缓冲器存储相应于基准块的内插输入象素的象素值。来自相同基准的下一行输入到输入端101和由X-内插器102进行X内插。当其结果由X-内插器103输出时,它们被同时写到各自的基准块行缓冲器104和105,并使用X-内插器106的旁路输出对Y-内插器108旁路。同时,相应象素值的先前行从基准块行缓冲器读出和输出107到Y-内插器108。由此,从基准块行缓冲器104和105的输出107加到Y-内插器108,同时从相应于下一个基准块行的X-内插器103加到X-内插器106的旁路输出。于是,输入到Y-内插器108。Y-内插器108起内插器作用,以便平均基准块行的象素值和紧接在它之前的基准块行的相应象素值。Y-内插器109的输出写入内插基准块行缓冲器111。当使用X-内插器102、基准1块行缓冲器104和Y-内插器108计算时,它包含有基准1半象素精度基准块行的结果。以同样的方式,基准2半象素精度基准块行是使用X-内插器102、基准2块行缓冲器105和Y-内插器108进行计算的。当Y-内插器109的输出至输出半象素精度基准2块行时,它不写到内插基准块行缓冲器111,而是使用Y-内插器110的旁路输出将该数据送到基准块平均器112。同时,存储在内插基准块行缓冲器111的相应象素送到基准块平均器112。基准块平均器112计算这些象素值的平均值和将它的输出113送到重现器116。同时,IDCT114将其相应象素数据送到重现器116,并且输出到解码象素输出117。
图8描述被产生所需的解码象素输出数据的本实施例使用的输入和输出定时的例子。本例子表示两个基准块其每一个在平均以前以水平和垂直两个方向需要作半象素内插,以形成解码象素块数据。所需的半象素值位于在表示象素的圆之间的空间。基准1的顶行的第一象素被输入,后面是基准块2的顶行,后面是基准块1的第二行等等。每行是从基准块的最左象素输入到最右。结果解码象素数据输出顺序是同样按左到右,顶到底的顺序。
如另一个例子,可以把图8的定时应用到图1的实施例,作为它的操作例子。象素1到4连续送到X-内插器102,结果是写入到基准块1行缓冲器104的是1和2、2和3、和3和4的平均。由此,输入象素5到8连续送到X-内插器102,结果是写入到基准2块行缓冲器105的是5和6、6和7、7和8的平均。接着进行9到12象素的输入和平均。从用于9和10的平均的X-内插器的输出以与象素1和2的平均从基准1块行缓冲器104读出和送到Y-内插器108相同的时间经过X-内插器106的旁路输出送到Y-内插器108。然后,Y-内插器108计算产生在象素1,2,9和10的平均的这些输入的平均。这相对于基准块1的半象素精度象素值。这计算的结果写入内插基准块行缓冲器111,以便得出每个计算象素值。同样地,计算基准2的半象素精度象素值的值,而在此时,当计算它们时,则它们不写入内插基准块行缓冲器111。而是使用Y-内插器110的旁路输出使它们旁路。由此,内插基准块行缓冲器111的内容能够与Y-内插器108的输出进行平均。于是,象素1,2,9和10的平均与产生在由两个基准形成的半象素精度预测的象素5,6,13和14的平均可由基准块平均器112进行平均。使用重建器116能将该结果加到来自IDCT处理器114的相应象素。这种情况产生在图8所示的解码象素块的解码象素号码1中。
图7描述本发明方法的另一个实施例。在该图中,标号701是基准块象素的一个输入,702是象素缓冲器旁路,703是象素缓冲器,704是X-左移器输入,705是X-加法器,706是X-左移器,707是X-多路复用器,708是基准块行缓冲器旁路,709是基准块行缓冲器1,710是基准块行缓冲器2,711是Y-加法器,712是Y-左移器,713是Y-多路复用器,714是XY-加法器,715是XY-右移器,716是内插块行缓冲器,717是内插块行缓冲器旁路,718是基准加法器,719是基准右移器,720是IDCT处理器,721是重建加法器,和722是解码象素输出。
本实施例能够作为使用与公用时钟同步的闩锁器和用于在闩锁器之间处理和控制的组合逻辑的同步装置来实施。对于本实施例,基准块象素使用与闩锁器的时钟相同的周期输入到输入端701。象素缓冲器703可作为闩锁器来实施。基准块行缓冲器709和710,和内插块行缓冲器716可作为一组N个闩锁器来实施,这里N是每个块行中象素的数目。在图中的其它块可使用组合逻辑来实施。然而,IDCT可以使用同步电路来实施。对于本实施例,X-加法器705是简单加法器,X-左移器是位移位器,用于使二进制象素乘以2。象素缓冲器703、象素缓冲器旁路702和X-加法器705的组合包括用于是等于两倍平均象素的平均。X-多路复用器707用于根据半象素X值选择X-加法器705的输出或X-左移器706的输出。该半象素X可以是或表示在X-方向不需半象素精度内插的0,或表示需要内插的1。X-多路复用器707的输出存储在基准块行缓冲器709和710。这些缓冲器包括起同步FIFO作用的闩锁器。从输入基准块1开始的X-多路复用器707的输出写入到基准块行缓冲器1 709,同时从基准块2开始的输出写入到基准块行缓冲器2 710。Y-加法器711是简单加法器,和Y-左移器712是用于使象素值乘以2的位移位器。基准块行缓冲器709和710、基准块行缓冲器旁路708,和Y-加法器711的组合包括用于输入象素数据的垂直平均的平均电路。该输出是等于两倍的平均象素的平均。Y-多路复用器713用于根据半象素Y值选择Y-加法器711的输出或Y-左移器的输出。半象素X可以是表示在Y-方向(垂直的)不需要半象素精度内插的0,或表示需要内插的1。从Y-多路复用器713的输出送到XY-加法器714,简单地将2加到输入。这个结果由XY-左移器间右移2位。XY-加法器和XY-右移器的组合产生出用于化整等于最接近的整数结果除以4。该结果是从基准1或2来的半象素精度基准象。如果这些结果产生于基准1象素,它被写入到内块缓冲器716。如果产生于基准2,它被送到基准加法器718的输入,使它的输入加上正的附加1。换言之,基准2的半象素精度预测象素加到基准1的相应半象素精度预测象素,被存储在内插块行缓冲器716。基准加法器718的输出由基准右移器719左移一个位置。基准加法器718和基准右移器719的组合是用化整等于最接近整数的两个输入的总和除以2的电路。因此,该输出是由两个基准1和2的平均半象素精度预测象素的结果。由IDCT处理器720产生相应的差象素值和使用重建器加法器721加到基准右移器719的输出。该结果是输出720的解码象素值。
本实施例能够用于基准块象素是产生于图象存储器的输入701和其结果解码象素输出722写入同一存储器的视频处理系统,但并不限于使用于此。
象素数据的输入和输出定时的例子示于图8。使用象素数据定时所得的本实施例的定时由图9表示。对于这个例子,在基准象素输入之前图象存储器读出一个时钟。这应该对应于在图象存储器和基准象素输入端701之间的闩锁器。图9的标号指的是图8所描述的象素。由图9可见,当象素2值加到基准象素输入701时,基准块行缓冲器1的输入由象素1和2的总和组成。相似地,象素2和3,3和4,5和6,6和7,和8和9的总和被计算出并加到基准块行缓冲器1和2 709和710的输入。内插块行缓冲器716的输入是基准象素输入、X-内插输出、和基准块行缓冲器1输入的总和除以4。这对应于基准1半象素精度值。这些是用基准2半象素精度值进行平均的,和加上IDCT差值以产生图9中称为X,Y和Z的解码象素值。这些值可写到与通过使它稍延迟而产生的输入数据相同的图象存储器以致于在象素16以后从存储器中读出,数据Z可写入。使用闩锁器很容易实现在解码延迟上的这些附加延迟。
注意的是,可以改变图9的定时。存储器读出和写入定时的定时能够改变,和附加的闩锁器能够加到图7实施例,以便减少必须传播到闩锁器之间的信号的组合逻辑的总量。此外,该实施例描述了与水平同步的X-方向,和与垂直同步的Y-方向,而这些可以被反向。结果将是相同的。另外,在实施例中使用的半象素精度内插能够通过增加在X和Y内插器上的抽头数可改变到1/4象素或更好的精度。
在每行中的象素数和在每块象素中的行数不局限于这些实施例所描述的例子。图8和图9的描述的定时的例子表示在水平和垂直两个方向上如何进行半象素行内插。当全象素精度需要水平、或垂直或没有方向时也可使用所述实施例。这已描述了在实施例中使用的X-左移器和Y-左移器。在块基准中基准象素的数目与半象素内插的需要有关。如果需要半象素内插,基准块在内插方向上必须有一个外加象素,如由图8所描述的例子。在高精度内插的情况下需要更多的象素。在此例子中,内插4×4象素基准块以组成3×3预测块。
本发明的优点是减少所需的暂存存储器到如此之少,即3个块行存储器(两个基准块行缓冲器和内插基化块行缓冲器)加上在X-内插器内的象素缓冲器。这就更少于在现有技术所述的例子中要求的暂存存储器。结果将更廉价地在需要这功能的用户电子产品中实现所用的运动补偿电路。能如此多的减少存储器的理由是由于使用了流水线,在流水线中允许X-内插半象素精度值以与Y-内插半象素精度值相同的时间进行计算,能够以与两个基准相同的时间进行内插。本发明使象素必须被延时的时间减小,以致于计算预测象素,消除了附加存储器存储设备的需要。
虽然已经通过参照附图的优选实施例对本发明进行了充分地描述,但本发明的各种变化和改进对本领域的普通技术人员是显而易见的。这种变化和改型应理解为,除了它们超出本发明的范围以外,它们应认为包括在由附加权利要求所规定的范围之中。
权利要求
1.一种用于从一个或两个基准块计算视频象素的子象素精度运动补偿块的象素值和把它与象素差块值组合以产生解码象素值的方法,该方法包括步骤为以基准读出顺序传送(未示出)所述的基准块象素到计算器;使用所述的计算器计算(102-112)预测块;以预测块块写入顺序输出(113)所述的预测块到重器;和使用所述的重现器使所述的预测块与所述的象素差块组合(116)。
2.根据权利要求1的方法,其中所述的基准读出顺序包括步骤为连续排列(未示出)每个块的相邻块行、在每个基准块和每个块行之间进行交替、和以相同的有关顺序排列两个块的块行;连续排列(未示出)在每个块行内的相邻象素和以相同的有关顺序排列两个块的块行
3.根据权利要求1或2的方法,其中所述的预测块写入顺序包括步骤为以与基准块之一的所述基准读顺序相同的有关顺序连续排列(未示出)所述的预测块的邻接块行;和以与基准块之一的所述基准读出顺序相同的有关顺序连续排列(未示出)在每个块行内的邻接象素。
4.根据权利要求1,2或3的方法,其中所述的计算器包括X-内插器(102),用于在相同块时间的象素之间进行子象素插;两个基准块行缓冲器(104,105),用于暂存来自每个基准块的块行;Y-内插器(108),用于在连续块行的象素之间进行子象素内插;内插基准块缓冲器(111),用于暂存由此开始第一数据的基准的子象素精度基准块行;基准块平均器(112),用于平均存储在所述的内插基准块缓冲器中的块行和随后基准块的内插基准块行。
5.根据权利要求4的方法,其中所述的X-内插器包括X-象素缓冲器(703),用于暂存和延迟输入象素数据;X-加法器(705),用于将输入象素数据与由所述X-象素缓冲器延迟的象素数据相加;X-乘法器(706),用于使输入象素数据乘以2;和X-多路复用器(707),当需要在相同块行的象素之间的子象素内插时用于从所述的X-加法器的输出,或当不需要在相同块行的象素之间的子象素内插时,用于从所述的X-乘法器的输出选择所述的X-内插器的结果。
6.根据权利要求5的方法,其中所述的X-乘法器包括移位器(706),用于使所述的输入象素数据向左移一个位的位置,使乘数乘以2。
7.根据权利要求4、5、或6的方法,其中所述的基准块缓冲器(709,710)包括数目与块行中存在的象素相同的象素缓冲器。
8.根据权利要求4,5,6或7的方法,其中所述的Y-内插器包括Y-加法器(711),用于使输入块行象素数据与从所述的基准块行缓冲器延迟的块行象素数据相加,其中Y-加法器输入源产生于相同基准块;Y-乘法器(712),用于将输入块行象素数据乘以2;Y-多路复用器(713),当需要在连续块行的象素之间的子象素的内插时,用于从Y加法器选择的输出选择Y-内插器的结果并当在连续块的象素之间的子角素内插不需要时,用于从所述Y-乘法器的输出选择所述Y-内插器的结果;和Y-除法器(715),用于把从Y-2加法器的输出除4得出所述Y-内插器的输出。
9.根据权利要求8的方法,其中所述的Y-乘法器包括移位器(712),用于把输入块行象素数据向左移一位的位置,使乘数乘以2。
10.根据权利要求8的方法,其中所述的Y-除法器包括Y-2加法器(714),用于对Y-多路复用器的输出加2;和Y-4除法器(715),用截断舍位把Y-2加法器的输出除4。
11.根据权利要求10的方法,其中所述的Y-4除法器包括移位器(715),用于把Y-2加法器的输出右移2位,产生用4除的截断舍位。
12.根据权利要求4,5,6,7,8,9,10或11的方法,共中所述内插基准块行缓冲器(716)包括与块行中存在的象素相同的象素缓冲器的数目。
13.根据4,5,6,7,8,9,10,11或12的方法,其中所述的基准块平均器包括平均加法器(718),用于把到所述内插基准块行缓冲器的输入和所述的内插基准块行缓冲器的延迟输出元总和加上1;和平均除法器(719),用于用截断舍位把所述平均加法器的输出除2。
14.根据权利要求13的方法,其中所述的平均除法器包括移位器(719),用于使所述的平均加法器的所述输出右移1位产生用2除的截舍位。
15.根据权利要求1,2或3的方法,其中所述的象素差块(115)包括由逆离散余弦变换操作产生的数据。
16.根据权利要求1,2或3的方法,其中所述的重建器包括加法器(116)。
17.一种用于从一个或两个基准块计算视频象素的子象素精度运动补的象素值和把它与象素差块值组合以产生解码象素值的装置包括以基准读出顺序传送所述的基准块象素到计算器的装置(未示出);使用所述的计算器计算预测块的装置(102-112);用于以预测块写入顺序输出所述的预测块到重建器的装置(113);和使用所述的重建器使所述的预测块与所述的象素差块组合。
全文摘要
一种用于从一个或两个基准块计算视频象素的子象素精度运动补偿块的象素值和把它与象素差块值组合以产生解码象素值的方法。其步骤包括以基准读出顺序传送所述基准块象素到计算器;使用所述的计算器计算(102-112)预测块;和使用所述的重视器使所述的预测块与所述的象素块组合(116)。
文档编号H04N7/32GK1154050SQ9612101
公开日1997年7月9日 申请日期1996年10月4日 优先权日1995年10月4日
发明者W·B·威尔逊 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1