运动估计的制作方法

文档序号:7570458阅读:150来源:国知局
专利名称:运动估计的制作方法
一般来说,MPEG视频数据流的编码需要若干步骤。第一步骤包括把每一画面分成宏数据块。理论上讲,随后将把该MPEG视频数据流与全部可能的16×16像素阵列比较,该16×16像素阵列定位在固定画面中对应位置的当前宏数据块的规定垂直和水平搜索范围之内。在理论上,“全检索算法”(即为了最佳匹配而在搜索区域中搜索每个可能的数据块)总是产生该最佳匹配,但是其很少使用在实际应用中,因为它要求极大的计算量,例如对于N×N的一个数据块尺寸和一个(N+2w)×(N+2w)的搜索区域,失真函数MAE必须针对每一数据块计算(2w+1)2次,这将是一个极大的计算量。实际上是仅把该全检索算法用作基准或测定判据,使之与能够快速和以较少计算执行的不同的更实际的运动估计相比较。这些更实际的运动估计算法通常称作“快速检索算法”。
上述针对给定预测模式的搜索或“运动估计”过程产生对应于在指定搜索范围之内的固定画面中的最接近匹配宏数据块(根据一个规定的匹配判据)的位置的一个运动矢量。一旦确定了预测模式和运动矢量,就从当前宏数据块的对应于像素减去最接近匹配宏数据块的像素值,产生16×16的差像素的阵列随后被执行一个离散余弦变换(DCT)而被转变成8×8“数据块”,其中产生的系数被逐一量化和霍夫曼编码(按照预测类型、运动矢量和其它关于该宏数据块的信息),以便产生MPEG比特数据流。如果在该固定画面中没有检测到充分的宏数据块匹配,即如果该当前画面是一个帧内,即“I-”画面,则上述过程将对于当前宏数据块的实际像素执行(即不相对于任何其它画面中的像素提取差值),并且该宏数据块被指定为一个“帧内”宏数据块。
针对所有的MPEG-2预测模式,运动估计的基础技术包括把当前宏数据块与固定画面中的16×16像素阵列比较,根据指定度量估计匹配的质量,并且针对定位在该搜索范围之内的这种16×16像素阵列的每一个重复该过程。执行这种搜索的硬件或软件被通常称为“搜索引擎”,并且存在若干用于确定该匹配质量的熟知判据。在这些判据当中最熟知的是最小绝对误差(MAE),其中的搜索度量包括在该宏数据块中的256个像素的每一个与在该匹配固定画面宏数据块中的对应像素的差值的绝对值取和;以及最小平方误差(MSE),其中该度量包括上述像素差值的平方的取和。不论那种状况,具有对应于取和的最小值的匹配被选择作为在规定搜索范围之内的最佳匹配,并且相对于该当前宏数据块的水平和垂直位置因此构成该运动矢量。然而如果该产生的最小取和被认为太大,则不存在针对该当前宏数据块的适当匹配,而其被作为一个帧内宏数据块编码。为本发明的目的,可用上述两个判据的任一个或任何其它适当的判据。
各种快速检索算法仅以该搜索区域之内的该候选运动矢量位置的一个预定子集估算该失真函数(例如MAE函数),从而减小了总体计算工作量。这些算法是以一种假设为基础,即在该最佳匹配预测的方向上该失真测量是单调减少的。即使这种假设并不总是真实的,但是仍然能够用少得多的计算找到一个次最佳的运动矢量。
解决运动估计最常用的方法是通常分成若干处理步骤的一个混合近似法。首先,能够通过像素平均抽取该图像。随后,对于小数目的像素执行快速检索算法操作,产生一个接近最佳匹配的结果。随后,围绕一个较小搜索区域执行获得运动矢量的一个全检索算法。如果要求半像素矢量(如利用MPEG-2),则作为一个单独步骤或与有限的全部搜索结合执行一个半像素搜索。
即使在运动估计的混合近似法中能够实现很大的计算节省,但是为了计算MAE的每一迭代仍然必须执行巨量计算。假定对于每一数据块偏移都必须计算每一时钟周期的失真函数,其失真函数在要求应用例如其中运动数据块尺寸是16×16的MPEG-2HDTV中是所希望的,则一个失真函数计算单元(DFCU)将包括若干从8(被用于运动判断的8比特亮度数据)开始增加比特宽度的简单电路,以便产生MAE。该数字将等于下面的取和256每一DFCU的以8开始增加比特宽度的总数为757个电路,256个减法电路、256个绝对值计算电路、255个增加比特宽度的累加电路。
根据画面清晰度,对于一个实际系统来说需要若干这样的极端复杂的单元。在一个DFCU内部使用较小数目的电路以便重复使用其硬件是可能的,但是这将实质上增加处理时间,并且在例如HDTV的提出的应用中可能是不可接受的。在此情况中,不得不简单地增加DFCU的数量以便通过增强的并行处理做补偿。
在实现运动估计的混合近似法(粗略搜索)中的第一步骤通常是硬件利用考虑的最需要的步骤,因为该步骤必须覆盖最大的搜索区域以便产生相当精确的匹配。
根据上述内容,当前在本专业中存在的一种需要是用于运动估计的方法,其能够增强执行运动估计的速度,大大地降低运动估计或要求执行运动估计的DFCU硬件的总量和复杂性,并且以合理的代价提供显著的图像质量的改善。如独立权利要求定义的本发明将满足本专业中的需要。从属权利要求定义了有益的实施例。
总的来说,本发明的方法通过唯一地宏数据块符号而不是通过比较在当前宏数据块和搜索区域中的配置像素的各亮度值而搜索最佳匹配。本方法是基于与所有的快速检索算法相同假设,即在最佳匹配预测的方向上该失真测量是单调减少的。
本发明包含一种用于确定当前在被编码的画面中的第一个像素阵列和在基准图像的一个搜索区域中的多个第二像素阵列之间的一个最佳匹配的方法,其中第一和第二像素阵列包括多个分别像素值的多行和列。本方法被设计在一个数字视频编码器的运动估计搜索引擎中执行,并且包括步骤产生第一个像素阵列的第一正交取和符号,包括表示该第一个像素阵列的行分别像素值的取和的一组水平取和,以及表示该第一个像素阵列的列的分别像素值的取和的一个第一组垂直取和;产生用于多个第二像素阵列的至少选择的那些的分别之一的多个第二正交取和符号,多个第二正交取和符号的每一个包括表示该第二像素阵列分别之一的行的分别像素值的取和的一组水平取和以及表示该第二像素阵列分别之一的列的分别像素值的取和的一组垂直取和;以及,把第一正交取和符号与第二正交取和符号的每一个比较,以便确定在第一和第二像素阵列之间的最佳匹配。在一个公开的实施例中,第一和第二像素阵列是具有由MPEG标准,例如MPEG-2标准定义的一个结构的抽取或未抽取的宏数据块。
本发明还包含一装置,例如实现本发明方法的一个数字视频编码器的运动估计搜索引擎。
在一个最佳实施例中,本发明的方法与装置通过在一个本地存储器中存储以及广泛地重复使用预先计算的(可用的)取和以产生该正交取和,大大地降低了对计算的要求,并且显著地加速了运动估计搜索,从而还显著地降低该运动估计搜索引擎的硬件要求。而且,与利用当前可用技术的需要而实现为一个移位寄存器矩阵的情况相反,该本地存储器能够有利地是一个RAM,例如一个DRAM或SRAM。但是,虽然这一点在本发明的几个方面之一构成本发明的新颖和当前最佳特点,但是广义上说,其本身不是本发明的一个必要特点,如将在下文显见的那样。
从下面结合附图的详细描述,将容易地理解本发明的其它目标、特点和优点,其中

图1A是用于一个未抽取16×16宏数据块的一个32正交取和符号的示意图;图1B是用于一个2∶1抽取16×16宏数据块的一个8×8宏数据块16正交取和符号的示意图;图2是示出根据本发明最佳实施例的最佳匹配估计的流程图和曲线图的组合;图3是描述本发明最佳实施方案的基本方法的示意图,在水平运动估计搜索中更新的正交取和的情况;图4是构成本发明一个最佳实施例的正交取和产生器的方框图;图5是使用本发明的方法论中一个说明性的水平运动估计搜索中的RAM操作序列的示意图;和,图6是构成本发明一个最佳实施例的运动估计搜索引擎的方框图。
总的来说,本发明的运动估计方法通常包括下列步骤。首先,当前宏数据块的每一行和列的各像素值被取和,以便产生表示该宏数据块内容的唯一图案或“符号”的一组正交取和。随后,产生的该宏数据块的正交取和符号与基准或固定画面的一个规定搜索区域中的每一宏数据决尺寸像素阵列的对应正交取和符号比较,并且根据规定匹配判据或搜索度量,例如最小绝对误差(MAE)失真函数进行针对最佳匹配的一个搜索。因为在统计上不可能有具有不同内容的宏数据块将具有相同的符号,所以一个假匹配的可能性是低的。而且,由于该正交取和表示每一行或列的一个平均亮度幅值,所以在源于该搜索区域之内的宏数据块中的小幅递增将不能产生对于带宽限制的滤波的视频信号的大幅值跳动。为此原因,根据在最佳匹配预测的方向上该正交取和设置将是单调减少以及在已有技术中的搜索法,将能够推断该失真度量。
现在参考图1A和1B具体说明描述的本发明的运动估计方法。更具体地说,参考图1A,针对一个未抽取的16×16宏数据块M1的每一行(1H-16H)和每一列(1V-16V)的各像素(亮度)值被取和,从而产生一组正交取和S1H至S16H(水平取和)以及S1V至S16V(垂直取和),总共构成该未抽取的16×16宏数据块M1的正交取和符号。参考图1B,针对8×8宏数据块M1’的每一行(1H-8H)和每一列(1V-8V)的分别的像素(亮度)值被取和,从而产生一组正交取和S1H至S8H(水平取和)以及S1V至S8V(垂直取和),总共构成该未抽取的8×8宏数据块M1’的正交取和符号。
现在参考图2,本发明的运动估计方法执行如下。更具体地说,通过把一个当前编码的宏数据决(CM)正交取和符号与在基准或固定画面(搜索区域宏数据块SAM)的一个指定搜索区域中的每一宏数据块的正交取和符号比较(匹配估计ME)而执行一个最佳匹配估计过程,然后根据一个规定的匹配判据(搜索度量),例如NAE、MSE或任何其它适当的度量,选择与该当前宏数据块的正交取和组相关度最高的基准(搜索区域)宏数据块作为该最佳匹配(BM)。图2的下半部分中的曲线示出正交取和组项的幅值M。
由于失真函数计算单元(DFCU)的高复杂性,该运动估计搜索通常至少初始地对于抽取的视频(即抽取的宏数据块)执行。例如,在图1A中描述的对于一个未抽取的宏数据块产生正交取和组的情况下,表示该16×16宏数据块的正交取和符号取和的数量是32(2×16),然而在图1B中描述的对于一个2∶1抽取的宏数据块产生正交取和组的情况下,表示该8×8宏数据块的正交取和符号取和的数量被降低至16(2×8)。相当明显,估算用于2N数目的一个失真函数将实质上降低相对于要求估算用于N2数目的失真函数的现有技术的该DFCU计算需求。例如,在图1A中描述的未抽取的16×16宏数据块的情况下,该失真函数必须估算8次(256/32),而在图1B中描述的抽取的8×8宏数据块的情况下,该失真函数必须估算8次(64/16)。
如前所述,DFCU的计算复杂性是运动估计电路(搜索引擎)造价的主要因素。但是,由于本发明的运动估计方法提供在DFCU的造价和复杂性方面的显著降低,依因此使得以未抽取或低级抽取的视频信号开始进行运动估计搜索成为更加实际,从而极大改进了运动估计的搜索精确度,并且最终改进图像质量。在此连接方式中,本发明的运动估计方法不仅实现运动估计级在数量上的降低,而且避免了对于全部删除抽取级所需的特殊视频滤波电路。利用这种硬件的节省,该搜索处理有可能以未抽取的视频开始而以合理的造价获得大的质量改善。
以本发明的运动估计方法实现的另一优点是极大地提高运行速度。传统上,为了比较配置的亮度幅值需要多级逻辑,实际地排除了以单一时钟周期获得结果的可能性。为此原因,或是不得不实际上把系统时钟频率降低,或是系统不得不流水线地使用实际逻辑资源。本发明的运动估计方法允许在单一时钟周期中容易地实现正交取和的并行计算,由此极大地降低MAE计算。
除了这些优点之外,本发明极大降低了在对于起源于不同存储器数据执行计算之间的交叉传递。这将实现在运动估计之前的中间结果(正交取和)的中间结果的预先计算和存储,这在某些硬件结构中是非常有益的。
参考图3,现在描述本发明最佳实施方案的基础原理。更具体地说,为了计算相对于在水平搜索的一个在前迭代过程中预先计算了水平(正交的)取和(OSOLD)的一个预先的8像素宽宏数据块向右移动一个像素的一个8像素宽的宏数据块的水平(正交)取和(OSNEW),使用下面的方程式(1)(1)OSNEW=OSOLD-a00+an0其中a00是在前宏数据块的水平起点的像素的像素值,而an0是“新”宏数据块的水平起点的像素的像素值,那就是说,那就是说该宏数据块相对于在前宏数据块向右移动一个像素。
例如假设在前宏数据块的水平起点是标记an-1的像素,以使向右移动一个像素的宏数据块的水平起点是标记an的像素,则使用方程式(1),OSNEW=OSOLD-an-1+an+7。
换言之,由于像素an+7是没有包含在该在前宏数据块中的该新宏数据块中包含的唯一的像素,由于向右位移一个像素,则在计算OSNEW中,其值必须相加到在前计算的正交取和,并且由于像素an-1是没有包含在该在新宏数据块中但是包含在前面宏数据块中的唯一的像素,由于向右位移一个像素,则在计算OSNEW中,其值必须在计算OSNEW中从在前计算的正交的取和OSOLD中减去。
类似地,当该水平搜索再向右位移一个附加像素,在前宏数据块的水平起点变成标记an,以使向右移动一个像素的“新”宏数据块的水平起点变成像素标记an+1,则使用方程式(1),OSNEW=OSOLD-an-1+an+7换言之,由于像素an+7是唯一包含在该新宏数据块而不包含在该在前的宏数据块中的像素,由于该向右的一个像素的附加位移,则其必须在计算OSNEW中相加到在前计算的正交取和OSOLD,并且由于像素an-1是唯一没有包含在该新宏数据块但是包含在该在前宏数据块中的像素,由于该向右位移的一个附加像素,则在计算OSNEW中必须从该前面计算的正交取和OSOLD减去其值。
在达到该基准图像的搜索区域内部的该水平搜索范围限度的水平搜索过程中,针对每一个附加的像素位移重复该正交取和OSNEW的值的更新,在此时,该搜索区域行的水平搜索被完成。
现在参考图4,能够看到构成本发明最佳实施例的一个正交取和产生器20的方框图。首先应该认识到,虽然本发明描述的是一个8×4宏数据块实例,但是本发明并不局限于任何特定的宏数据块或像素阵列的尺寸或结构。现在结合图2示出正交取和产生器20描述本发明的运动估计方法,应该理解到对于本专业的普通技术人员来说以其它硬件实现本发明的方法将是容易的,并且因此在其广义上由本发明所包含。
首先,按照上述参考图1A、1B和图2的方式,通过计算表示宏数据块行的分别像素值(亮度)的取和的一组水平取和以及表示该宏数据块列的分别像素值取和的一组垂直取和,计算当前被编码的宏数据块(“编码宏数据块”)的一个全正交取和符号。
其次,通过把用于初始基准像素阵列(宏数据块)尺寸的一个宏数据块的像素值装入/写入到一个本地存储器22(例如DRAM、SRAM或移位寄存器矩阵)而执行一个初始化过程,该基准像素阵列具有在基准图像(定位)存储器(没示出)中存储的基准图像的一个指定搜索区域中的规定起源。该定位存储器最好以其输出总是纵向邻接的方式构成。例如,如果该定位存储器的输出从行1、2、3和4产生像素,则一个像素的向下垂直位移将使得该定位存储器从行2、3、4和5产生像素。这能够通过例如使用在非预先公开国际申请No.PCT/IB99/00986(代理人卷号PHA23.420)中描述的方法适当地分区该定位点存储器而不增加其尺寸的方法实现,该公开在此处引作参考。在初始化过程中,用于该初始宏数据块尺寸基准的像素阵列的全部的水平取和组被累加在一组并行水平取和调节器电路25中,每一个具有耦合到本地存储器22的分别的数据输出的相减(-)输入端。同时(最好是),用于该初始基准像素阵列的每一列的垂直取和由一个四个输入端垂直取和加法电路27产生,并且如此计算的垂直取和被顺序地装入到一个移位寄存器29。
在该初始化过程结束以后,本发明的该运动估计搜索法工作如下。更具体地说,随着通过该基准图像(在下文称作“水平搜索”)的指定搜索区域在水平方向上逐个像素地进行运动估计搜索,产生的基准像素阵列将相对于该初始的基准像素阵列向右相应地移动一个像素。
在该搜索区域中每位移一个像素之后,存储在本地存储器22的第i列的每一行中的像素值被读出该本地存储器22,并且加到该分别水平取和调节器电路25的相减输入端,并且对应于该基准图像的搜索区域的第(N+i)列的像素值被写到该本地存储器22的第i列的各行,以便替代刚刚从那里读出的像素值,其中i=1至N,并且N是该初始基准像素阵列(即该编码宏数据块的水平维数)的水平维数。达到N之后,为了存储器编址的目的,i最好是将回到计数1,并且被递增1,直到再一次达到N为止,并且该循环重复直到该水平搜索范围(作为从初始基准像素阵列的水平起点的度量)已经达到并且该水平搜索因此结束为止。在此连接方式中,能够使用模8地址计数器(没有示出)或其它适当的结构执行此功能。
对应于该基准图像(在下文简单地称之为“新像素值”)的搜索区域的第(N+i)列的像素值还同时地加到分别的水平取和调节器电路25的相加(+)输入端,并且加到该垂直取和加法电路27的分别输入端。举例来说,如果该本地存储器22是DRAM,则能够在单一存储器时钟周期中通过一个读出-修改-写入操作执行上述的存储器读出和写入操作。
当接收读出的并且是新的像素值时,每一个水平取和调节器电路25以其相加输入端把该新像素值相加到先前累加的水平取和,并且以其相减输入端从该先前累加的水平取和减去读出的像素值,并且输出该产生的取和作为一个“新”水平取和。即,在该水平取和调节器电路25的输出端产生的水平取和组将构成从预先迭代的基准像素阵列移动一个像素的该“新”基准像素阵列的水平取和。
而且,在每一像素位移以后,该移位寄存器29向右水平移动一个码字,以使其废弃在其末级中存储的垂直取和,并且其余垂直取和向右移动一级。当接收该新的像素值时,该垂直取和加法电路27在其输出端产生一个“新”垂直取和,装入到该移位寄存器29(一个N码字移位寄存器)的第一级,以便替代向右移动的先前垂直取和。产生在该移位寄存器29的输出端出现的垂直取和组将构成从预先迭代的基准像素阵列移动一个像素的该“新”基准像素阵列的垂直取和组。
在通过基准图像的搜索区域的水平搜索过程中的每一像素位移之后重复上述过程,直到该水平搜索结束为止。
参考图5,描述根据本发明最佳实施例的一个示例性水平搜索的存储器读出/写入操作的序列。该圆表明活动地址,而矩形表明非活动地址。标以(+)的列表明RAM输入端(像素数目),而标以(-)的列表明RAM输出端(像素数目)。更具体地说,在用于被搜索的基准图像搜索区域的每一行的开头八个(8)水平邻接的像素1至8被存储在本地存储器22的四个分别行(部分)以后,同时地被累加在对应水平取和调节器电路25中。在此点,该水平取和调节器电路25的水平取和输出是针对初始基准像素阵列(宏数据块)的有效水平取和。随后,针对每一单一像素位移,随着通过该基准图像的检索区域的水平搜索的进行,地址计数器被递增1,以便指向像素i,其中i=1至8,利用在终点计数(8)达到以后的计数重复,从而使得用于该本地存储器22的每一行的旧的像素值被从该本地存储器22的该现地址位置读出,并且被加到分别水平取和调节器电路25的相减(-)输入端,并且用于本地存储器22的每一行的新像素值被写到该本地存储器22中的现地址位置,并且同时地加到该分别水平取和调节器电路25的相加(+)输入端,以及四输入端垂直取和加法电路27的分别的输入端。因此,在每一单一像素位移之后,将由该水平取和调节器电路25输出该更新的水平取和的全部组,并且由移位寄存器29输出该更新垂直取和的全部组。
例如,如图5中图示地表示,在开头8个像素被写到本地存储器22的适当行以后,该基准像素阵列将向右移动一个像素,并且像素数目1被读出本地存储器22并且由像素数目9替代;随后,基准像素阵列将向右移动一个像素,并且像素数目2将读出该本地存储器22,并且由像素数目10替代;随后,基准像素阵列将向右移动一个像素,并且像素数目3将读出该本地存储器22,并且由像素数目11替代;随后,基准像素阵列将向右移动一个像素,并且像素数目4将读出该本地存储器22,并且由像素数目12替代;随后,基准像素阵列将向右移动一个像素,并且像素数目5将读出该本地存储器22,并且由像素数目13替代;随后,基准像素阵列将向右移动一个像素,并且像素数目6将读出该本地存储器22,并且由像素数目14替代;随后,基准像素阵列将向右移动一个像素,并且像素数目7将读出该本地存储器22,并且由像素数目15替代;随后,基准像素阵列将向右移动一个像素,并且像素数目8将读出该本地存储器22,并且由像素数目16替代;随后,基准像素阵列将向右移动一个像素,并且像素数目9将读出该本地存储器22,并且由像素数目17替代;随后,基准像素阵列将向右移动一个像素,并且像素数目10将读出该本地存储器22,并且由像素数目18替代;并且最终,基准像素阵列将向右移动一个像素,并且像素数目11将读出该本地存储器22,并且由像素数目19替代,等。
现在参考图6,能够看到构成本发明最佳实施方案的一个以场为基础的运动估计搜索引擎40的方框图。如能够见到的那样,搜索引擎40包括一个场1正交取和产生器20a(如图2中描述的)和一个场2正交取和产生器20b(如图2中描述的)。在一个水平搜索操作过程中,当场1参考像素阵列的每一像素位移时,场1正交取和产生器20a在从场1定位存储器45来的并行行44上接收四个新像素,并且在一个水平搜索操作过程中,当场2参考像素阵列的每一像素位移时,场2正交取和产生器20b在从场2定位存储器47来的并行行46上接收四个新像素。场1正交取和产生器50a从场1编码图像存贮器52接收当前被编码的场1宏数据块(即编码宏数据块)的像素,而场2正交取和产生器50b从场2编码图像存贮器54接收当前被编码的场2宏数据块(即编码宏数据块)的像素。场1正交取和产生器50a以其输出端产生表示该场1编码宏数据块的正交取和符号的正交取和的全部组(水平和垂直),并且场2正交取和产生器50b以其输出端产生表示该场2编码宏数据块的正交取和符号的正交取和的全部组。
继续参考图6,搜索引擎40还包括一个场1最佳匹配估计器60,以一组输入接收当前基准像素阵列的正交取和符号,而以另一组输入接收该场1编码宏数据块的正交取和符号,然后根据一个规定的搜索度量(例如MAE)确定来自场1定位存储器45的指定搜索区域的哪一个基准像素阵列构成针对该编码宏数据块的最佳匹配,并且输出该结果作为“场1运动矢量”。类似地,搜索引擎40还包括一个场2最佳匹配估计器62,以一组输入接收当前基准像素阵列的正交取和符号,而以另一组输入接收该场2编码宏数据块的正交取和符号,然后根据一个规定的搜索度量(例如MAE)确定来自场2定位存储器47的指定搜索区域的哪一个基准像素阵列构成针对该编码宏数据块的最佳匹配,并且输出该结果作为“场2运动矢量”。应该理解,为了有更高效率的设计实施方案,搜索引擎RAM能够被结合用于存储双字段的数据,因为这些RAM是以双字段的相等方式被控制的。
如前所述,DFCU的计算复杂性是运动估计电路(搜索引擎)造价的主要因素。但是,由于本发明的运动估计方法提供在DFCU的造价和复杂性方面的显著降低,依因此使得以未抽取或低级抽取的视频信号开始进行运动估计搜索成为更加实际,从而极大改进了运动估计的搜索精确度,并且最终改进图像质量。在此连接方式中,本发明的运动估计方法不仅实现运动估计级在数量上的降低,而且避免了对于全部删除抽取级所需的特殊视频滤波电路。利用这种硬件的节省,该搜索处理有可能以未抽取的视频开始而以合理的造价获得大的质量改善。
以本发明的运动估计方法实现的另一优点是极大地提高运行速度。传统上,为了比较配置的亮度幅值需要多级逻辑,实际地排除了以单一时钟周期获得结果的可能性。为此原因,或是不得不实际上把系统时钟频率降低,或是系统不得不流水线地使用实际逻辑资源。
除了这些优点之外,本发明的最佳实施例使用上述的正交取和数据块匹配而极大加速了该运动估计方法。而且本发明实现了胜过当前可用技术的三个显著的特点(1)在正交取和计算中的实质上的硬件减少。由于使用可用取和使得该正交取和随该宏数据块在该固定画面中的位移而被更新的方式产生该新(更新的)正交取和,所以有可能实现需要显著少的计算硬件的小得多的计算工作量;
(2)删除了为了产生该正交取和的长链加法电路,从而实质上加速了运行速度;(3)本发明允许使用RAM存储搜索数据而不是使用巨大的寄存器矩阵存储该搜索数据,而该巨大的寄存器矩阵是现存技术所要求的,以使该引擎存储器的输出立即可用于比较,从而本发明提供了实质上的造价节省;并且(4)由于其新颖结构,根据本发明的一个运动估计搜索引擎能够使用浮现嵌入存储技术而以集成到单一硅器件中的逻辑和存储器实现,以便在其它因素中,由于宽的内部总线宽度而提高系统性能。
本发明的最佳实施例能够总结如下。一个基于RAM的搜索引擎,用于在一个运动估计搜索期间更新表示包含在一个基准像素阵列的行中的N个像素值取和的一个水平取和,在运动估计搜索的多个迭代的每一个过程中,在一个水平搜索方向中该基准像素阵列被移动一个像素。该基于RAM的搜索引擎包括一个水平取和调节器电路,累加在该基准像素阵列的位移之前的该基准像素阵列的水平行中包含的N个像素的值,以便产生该水平取和,并且通过使用下面方程式计算该新的水平取和而更新该水平取和OSNEW=OSOLD-a00+an0其中OSNEW是该基准像素阵列在水平方向上最后位移一个像素之后的新的水平取和,OSOLD是该基准像素阵列在水平方向上最后位移一个像素之前的新的水平取和,a00是该基准像素阵列在水平方向上最后位移一个像素之前该基准像素阵列的水平起点的像素的像素值,而an0是相对于作为该基准像素阵列在水平方向中位移一个像素的结果的该基准像素阵列的在前位置、该基准像素阵列已经向右移动了一个像素之后的该基准像素阵列的水平起点的像素的像素值。
虽然上面已经详细描述了本发明的最佳实施例,但是应该清楚地理解,本专业的技术人员在所附的权利要求书定义的本发明基本构思指教的范围中能够进行许多变化和/或修改。例如,虽然本发明被描述为适用于数字视频编码器,但是应该清楚地理解,本发明并不局限于任何特定的应用,例如当需要编码该已收画面、以便调节该电视机或其它图像显示系统的要求时,本发明可被用于一个电视机或其它图像显示系统部分的解码器。在权利要求书中,在圆括号之间的任何标号不应被解释为对该权利要求的限制。单词“包括”不排除在权利要求中所列出之外的另一单元或步骤的存在。在一个单元前的“一个”不排除存在多个这种单元。本发明能够利用若干不同的单元硬件实现以及利用适当的程序控制计算机实现。在装置权利要求列举的若干装置中,若干这些装置能够由同一个硬件项实现。
权利要求
1.一种把具有各自像素值的多行和列的第一个像素阵列与具有各自像素值的多行和列的第二个像素阵列比较的方法,该方法包括步骤对该第一个像素阵列的各像素值的每一行的各像素值取和,以便产生第一组水平取和;对该第一个像素阵列的各像素值的每一列的各像素值取和,以便产生第一组垂直取和;对该第二个像素阵列的各像素值的每一行的各像素值取和,以便产生第二组水平取和;对该第二个像素阵列的各像素值的每一行的各像素值取和,以便产生第二组垂直取和;其中该第一组水平取和以及该第一组垂直取和包括第一组正交取和,其中该第二组水平取和以及该第二组垂直取和包括第二组正交取和,以及比较该第一和第二组的正交取和。
2.按照权利要求1的方法,其中该第一个像素阵列包括一个当前正被编码的画面的一个未抽取宏数据块,以及该第二像素阵列包括一个基准图像的搜索区域中的一个未抽取宏数据块。
3.按照权利要求1的方法,其中该第一个像素阵列包括一个当前正被编码的画面的一个已抽的取宏数据块,以及该第二像素阵列包括一个基准图像的搜索区域中的一个已抽取的宏数据块。
4.按照权利要求1的方法,其中该第一取和步骤包括在一个运动估计搜索过程中对表示包含中一个基准像素阵列的一个水平行中的N个像素值的取和的一个水平取和进行更新的步骤,该更新步骤包括计算该水平取和;在水平方向上把该基准像素阵列移动一个像素;以及,通过把一个新像素值相加到该预先计算的水平取和、以及在移动步骤之后从该在前计算的水平取和中减去不再包含在该参考像素阵列的水平行中的一个原像素值而更新该水平取和,以便产生一个新的水平取和。
5.按照权利要求4的方法,进一步包括重复该移动和更新步骤的步骤,直到水平搜索范围的极限被达到为止。
6.按照权利要求4的方法,其中通过使用一个水平取和调节器电路(25)执行该计算步骤,该水平取和调节器电路(25)在执行该移动步骤之前累加在该基准像素阵列的水平行中包含的N个像素的值;和通过使用该水平取和调节器电路(25)执行该水平取和的更新步骤,以便使用下面方程式计算新的水平取和OSNEW=OSOLD-a00+an0其中OSNEW是新的水平取和,OSOLD是在该移动步骤的最后迭代之前的水平取和,a00是在该移动步骤的最后迭代之前的该基准像素阵列的水平起点的像素的像素值,而an0是在该基准像素阵列已经相对于作为该移动步骤的最后迭代的结果的该基准像素阵列的在前位置已经向右移动一个像素之后该基准像素阵列的水平起点的像素的像素值。
7.按照权利要求1的方法,进一步包括步骤产生用于基准像素阵列的N行的每一行的水平取和,以及针对一个基准图像的一个规定的搜索区域的水平运动估计搜索的每一迭代而同时地产生用于该基准像素阵列的M列的每一列的一个垂直取和,该方法还包括步骤(a)通过在存储器(22)的N行的每一行中存储M个分别的像素值并且在该存储器(22)的M列的每一列中存储N个分别的像素值,而存储对应于该基准像素阵列的一个初始位置的初始像素值;(b)计算针对该基准像素阵列的初始位置的N行的每一行的水平取和,以及存储每一个计算的水平取和;(c)针对该基准像素阵列的该初始位置的M列每一列的垂直取和,以及存储该计算的垂直取和在一个移位寄存器(29)中;(d)在水平方向上把该基准像素阵列移动一个像素;(e)根据该移动步幅ⅰ)提供N个新像素值,一个新像素值用于对应于在该基准像素阵列在水平方向上移动一个像素之后的该基准像素阵列的最后一列的该基准像素阵列的N行每一行;ⅱ)对该N个新的像素值取和,以便产生一个新的垂直取和,并且把该新的垂直取和加到该移位寄存器(29),并且在该运动估计搜索的水平方向移动该在前存储的垂直取和一个码字,从而废弃一个首先存储的垂直取和而在前一个存储垂直取和的先前存储位置中存储该新的垂直取和;ⅲ)从该移位寄存器(29)输出一组M个新的垂直取和;ⅳ)在把该N个新的像素值的分别之一相加到针对N行的每一行的先前计算的水平取和、并且通过在该基准像素阵列在水平方向中移动了一个像素之后,从用于N行的每一行的先前计算的水平取和中减去不再包含在该基准像素阵列的M列中的分别的原像素值,而更新水平取和的每一个,以便产生一组N个新的水平取和;并且ⅴ)输出该组N个新的水平取和。
8.按照权利要求7的方法,其中步骤(b)通过使用对应于存储器(22)的N行分别之一的N个水平取和调节器电路(25)执行,从而每一个水平取和调节器电路(25)累加存储在该存储器(22)的各行中的该M个单独的像素值。
9.一种用于确定当前在被编码的画面中的第一个像素阵列和在基准图像的一个搜索区域中的多个第二像素阵列之间的一个最佳匹配的方法,其中第一和第二像素阵列包括多个单独的像素值的多行和列,该方法包括步骤提供第一像素阵列的第一全正交取和符号,包括该第一像素阵列的行的各像素值总数的一组水平取和以及该第一像素阵列的列的各像素值总数的第一组垂直取和;提供用于多个第二像素阵列的至少选择的那些的分别之一的多个第二正交取和符号,多个第二正交取和符号的每一个包括表示该第二像素阵列分别之一的行的分别像素值的取和的一组水平取和以及表示该第二像素阵列分别之一的列的分别像素值的取和的一组垂直取和;以及,把第一正交取和符号与第二正交取和符号的每一个比较,以便确定在第一和第二像素阵列之间的最佳匹配。
10.一种用于确定当前在被编码的画面中的第一个像素阵列和在基准图像的一个搜索区域中的多个第二像素阵列之间的一个最佳匹配的运动估计装置,其中第一和第二像素阵列包括多个分别像素值的多行和列,该运动估计装置包括装置,用于提供第一像素阵列的第一全正交取和符号,该第一全正交取和符号包括该第一像素阵列的行的分别像素值总数的一组水平取和以及该第一像素阵列的列的分别像素值总数的第一组垂直取和,并且用于提供针对多个第二像素阵列的至少选择的那些的分别之一的多个第二正交取和符号,多个第二正交取和符号的每一个包括表示该第二像素阵列分别之一的行的分别像素值的取和的一组水平取和以及表示该第二像素阵列分别之一的列的分别像素值的取和的一组垂直取和;以及,装置,用于把第一正交取和符号与第二正交取和符号的每一个比较,以便确定在第一和第二像素阵列之间的最佳匹配。
11.按照权利要求10的运动估计装置,其中第一和第二像素阵列的每一个是具有由MPEG标准定义的一个结构的宏数据块。
12.按照权利要求10的装置,还包括电路(20),用于在一个运动估计搜索过程中对表示包含中一个基准像素阵列的一个水平行中的N个像素值的取和的一个水平取和进行更新,该更新电路(20)包括装置,用于计算该水平取和;装置,用于在水平方向上把该基准像素阵列移动一个像素;以及,装置(25),用于通过把一个新像素值相加到该预先计算的水平取和、以及在该参考像素阵列在水平方向上位移一个像素之后,从该在前计算的水平取和中减去不再包含在该参考像素阵列的水平行中的一个原像素值而更新该水平取和,以便产生一个新的水平取和。
13.按照权利要求10的装置,进一步包括电路(20),用于产生针对基准像素阵列的N行的每一行的一个水平取和,以及针对一个基准图像的一个规定的搜索区域的水平运动估计搜索的每一迭代而同时地产生用于该基准像素阵列的M列的每一列的一个垂直取和,该更新电路(20)包括存储器(22),通过在存储器(22)的N行的每一行中存储M个单独的像素值并且在该存储器(22)的M列的每一列中存储N个单独的像素值,而用于存储对应于该基准像素阵列的一个初始位置的初始像素值;装置(25),用于计算针对该基准像素阵列的初始位置的N行的每一行的水平取和,以及用于存储每一个计算出的水平取和;装置(27),用于计算针对该基准像素阵列的初始位置的M列的每一列的垂直取和;移位寄存器(29),用于存储该计算出的垂直取和;装置,用于在水平方向上把该基准像素阵列移动一个像素;装置(25,27,29),根据该基准像素阵列在水平方向中的一个像素的每一个位移,用于ⅰ)提供N个新像素值,一个新像素值用于对应于在该基准像素阵列在水平方向中移动一个像素之后的该基准像素阵列的最后一列的该基准像素阵列的N行每一行;ⅱ)取和该N个新的像素值,以便产生一个新的垂直取和,并且把该新的垂直取和加到该移位寄存器(29),并且在该运动估计搜索的水平方向移动该在前存储的垂直取和一个码字,从而废弃一个首先存储的垂直取和而在前一个存储垂直取和的先前存储位置中存储该新的垂直取和;ⅲ)从该移位寄存器(29)输出一组M个新的垂直取和;ⅳ)在把该N个新的像素值的分别之一相加到针对N行的每一行的先前计算的水平取和、并且通过在该基准像素阵列在水平方向中移动了一个像素之后,从用于N行的每一行的先前计算的水平取和中减去不再包含在该基准像素阵列的M列中的分别的原像素值,而更新水平取和的每一个,以便产生一组N个新的水平取和;并且ⅴ)输出该组N个新的水平取和。
14.按照权利要求10的装置,还包括电路(20),用于在运动估计搜索期间更新表示包含在一个基准像素阵列的一个水平行中的N个像素的值的取和的一个水平取和,在该运动估计搜索的多个迭代的每一迭代过程中,该基准像素阵列在一个水平搜索方向中被移动一个像素,该更新电路(20)包括一个水平取和调节器电路(25),其累加在该基准像素阵列的位移之前的该基准像素阵列的水平行中包含的N个像素的值,以便产生该水平取和,并且通过使用下面方程式计算该新的水平取和而更新该水平取和OSNEW=OSOLD-a00+an0其中OSNEW是该基准像素阵列在水平方向上最后位移一个像素之后的新的水平取和,OSOLD是该基准像素阵列在水平方向上最后位移一个像素之前的新的水平取和,a00是该基准像素阵列在水平方向上最后位移一个像素之前该基准像素阵列的水平起点的像素的像素值,而an0是相对于作为该基准像素阵列在水平方向中位移一个像素的结果的该基准像素阵列的在前位置、该基准像素阵列已经向右移动了一个像素之后的该基准像素阵列的水平起点的像素的像素值。
全文摘要
一种用于确定当前在被编码的画面中的第一个像素阵列和在基准图像的一个搜索区域中的多个第二像素阵列之间的一个最佳匹配的方法,其中第一和第二像素阵列包括多个单独像素值的多行和列。本方法被设计在一个数字视频编码器的运动估计搜索引擎中执行,并且包括步骤:产生第一个像素阵列(M1)的第一正交取和符号,包括表示该第一个像素阵列的行的各像素值的取和的一组水平取和(S
文档编号H04N7/32GK1314052SQ00801040
公开日2001年9月19日 申请日期2000年3月21日 优先权日1999年4月6日
发明者M·巴克穆特斯基, V·戈恩斯坦 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1