用于符合mpeg2的实时编码的有效灵活的运动估计结构的制作方法

文档序号:7573405阅读:217来源:国知局
专利名称:用于符合mpeg2的实时编码的有效灵活的运动估计结构的制作方法
技术领域
本发明涉及用于符合MPEG2的数字视频编码的实时运动估计。运动估计通过使用运动矢量在图象间起压缩作用。根据本发明,数字视频数据流的时域压缩通过在参考图象的至少一个搜索单元中分级搜索象素为当前宏块寻找最佳匹配宏块来实现。接着是在当前宏块和参考图象的最佳匹配宏块之间构造运动矢量。
在过去的十年中,世界范围的电子通信系统的出现改善了人们接收和发送信息的方式。特别是在最近的几年中,实时视频和音频系统的性能得到了极大的提高。为了向用户提供诸如图象点播和会议电视之类的业务,需要占用很多的网络带宽。事实上网络带宽通常是这类系统有效性的主要障碍。
为了克服网络带来的限制,出现了压缩系统。这些系统通过去除图象序列中的冗余来减少需要传输的视频和音频的数据量。在接收端,图象序列被解压缩并且可以实时地显示。
现有视频压缩标准的一个例子是MPEG标准。在MPEG标准中,视频压缩被规定为在给定图象内的压缩和图象间的压缩。图象内的视频压缩通过离散余弦变换、量化和游程编码等处理来完成。图象间的压缩通过一个被称之为运动估计的处理来实现,其中运动矢量被用来描述一系列的图象元素(象素)从一幅图象到另一图象的移动。这些运动矢量本身要被编码。
运动估计算法是重复性的操作,如果要有效地实现,则需要极大的计算能力。如果运动估计要在实时的视频传输环境下实现更是这样。此外,系统设计者施加的两个重要的限制是完成运动估计功能需要占用的卡/板的面积和元器件的费用。特别要包括用于存储参考图象数据所需的DRAM和/或SRAM的数量。完善的运动估计数据所需流程的要求是使计算能力最大以便满足实时编码的要求,同时使实现该功能需要占用的芯片面积最小。另一个很明显的要求是运动估计的数据流程要很灵活以便能够支持多种系统成本估计。
本发明的一个目的是提供完善的运动估计数据流程,使计算能力能够达到最大以满足实时编码的要求,同时在其实现时芯片占用的面积要最小。
本发明的另一个目的是提供灵活的运动估计数据流程以便能够支持多种系统成本估计。
本发明的再一个目的是提供一种分级的运动估计方法和设备。
本发明的又一个目的是提供一种分级的运动估计方法和设备,其中分级运动估计搜索是藉利用经过下取样之后的全象素值来进行的。
本发明的又一个目的是提供一种分级的运动估方法和设备,其中分级运动估计搜索是场搜索。
利用这里介绍的方法和设备能够达到上述目的和其他目的。
根据本发明,提供了一种数字视频数据流的时域压缩方法。这种方法开始时要在参考图象的至少一个搜索单元中分级搜索象素以寻找对应于当前宏块的最佳匹配宏块。下一步是在最佳匹配宏块和当前宏块之间构造运动矢量。
根据另一个实施例,它提供了一种数字视频数据流的时域压缩方法。这种方法包括通过利用经过下取样之后的全象素值在参考图象中搜索象素,从而寻找最佳匹配宏块。最佳匹配宏块是指在参考图象中与当前宏块最相象的宏块。下一步是在最佳匹配宏块和当前宏块之间构造运动矢量。
根据本发明的又一个实施例,它提供了一种数字视频数据流的时域压缩方法,包括具有偶/偶、奇/奇、偶/奇,奇/偶场搜索单元输入的场搜索。搜索是针对参考图象场中的象素的,目的是寻找其中对应于当前宏块的最佳匹配宏块。同前面一样,要在最佳匹配宏块和当前宏块之间构造运动矢量。
参考本发明的附图可以理解本发明。


图1是通用的符合MPEG2的编码器11的流程图,包括离散余弦变换器21,量化器23,变长编码器25,反量化器29,反离散余弦变换器31,运动补偿41,帧存储器42和运动估计43。数据通路包括第i帧图象输入111,差值数据112,运动矢量113,图象输出121,用于运动估计和补偿的反馈图象131,以及经过运动补偿后的图象101。本图假设第i帧图象已经在帧存储器或帧存42中存在,并且正在用运动估计对第i+1帧图象进行编码。
图2说明了I,P和B图象,给出的例子中有它们的显示顺序,传输顺序和前向及后向运动预测。
图3给出了从当前帧或图象中的运动估计块到后续帧或前面帧或图象中的最佳匹配块的搜索。单元211和211’表示在两图象中的相同位置。
图4给出了图象块根据运动矢量从它们在前一图象中的位置移动到新图象中的位置,同时还给出了利用运动矢量进行调整之后的前一帧的图象块。
图5给出了带有分级搜索单元201和精细搜索单元221的搜索单元的总体结构。分级搜索单元201有一个下取样全象素搜索单元203。精细搜索单元有一个全象素的搜索单元223,它为半象素搜索单元225和双基搜索单元227提供输入。双基搜索单元227还要从半象素搜索单元225接收输入。
图6显示了分级运动估计的数据流程图,分级搜索单元201从前一个分级搜索单元(图中未画出)接收最佳匹配差值/偏移数据和从当前宏块(CMB)数据总线205接收数据,并把它的输出送给精细搜索/重建单元221和分级搜索存储器211。精细搜索/重建单元221接收来自当前宏块数据总线205的数据,同时把数据发送到Diff/Qxfrm总线231和精细搜索存储器229或者是从Diff/Qxfrm总线231和精细搜索存储器229接收数据。精细搜索/重建单元221的输出被送到运动矢量总线241。
图7显示了分级搜索单元的数据流,它通过亮度缓冲器207从当前宏块数据总线(只有亮度信号205)接收数据,同时接收来自搜索数据总线207的数据以及将数据传送给搜索数据总线207。图中显示了四个场搜索,f1/f1,301,f2/f2,303,f1/f2,305,和f2/f1,307。它们分别提供了f1/f1的差值,f2/f2的差值,f1/f2的差值,以及f2/f1的差值。这些数据送到最佳匹配结果选择单元311,该单元输出最佳匹配的差值/偏移313。
图8显示了精细搜索/重建单元212的数据流程图。色度和亮度数据在存储器控制器301的控制下通过CMB数据总线205和亮度/色度缓冲器207进入该单元。数据通过全分辨率单元(FR)321和半分辨率单元(HR)323送到双基单元(DP)325,并通过该双基单元送到FD单元327,然后从FD单元327被送到运动调整单元(MA)329。运动估计处理单元(MEPROC)331对这些单元进行控制并向运动矢量总线(MV总线)发送控制信号。FD单元的输出327送到Diff/QXFRM数据总线332,并从那里到达反量化器(IQ)333和反离散余弦变换单元(ID)335,最后回到运动调整单元(MA)329。
表1显示了运动估计的策略,包括搜索模式(分级或是无分级),图象结构(隔行或是逐行),图象类型(帧内,预测,双向),运动估计选项(双基,无双基),搜索次数,搜索类型,以及精细尺度。
这里公开的是一种运动估计结构,它灵活高效,并且能够满足实时编码环境的严格要求。
本发明涉及符合MPEG和HDTV的编码器和编码过程。编码器完成的编码功能,包括数据输入,运动估计,宏块模式产生,数据重建,熵编码和数据输出。运动估计和运动补偿起着时域压缩的作用。它们是重复性的操作,需要很高的运算能力,同时它们包括集中的重建处理,比如反离散余弦变换,反量化和运动补偿。
具体而言,本发明涉及运动估计、补偿和预测,更具体而言涉及运动矢量的计算。运动补偿利用时域冗余度的方法是把当前图象划分为块(比如宏块),然后在前面已经传输的图象的相同位置附近寻找具有相似内容的块。只有当前块象素和从参考图象中取出的预测块象素的差值才真正进行用于传输的压缩并在以后传输出去。
最简单的运动预测和补偿方法是在“I”图象中记录每个象素的亮度和色度即强度和颜色,然后在后续的图象中为每个特定的象素记录亮度和色度的变化即强度和颜色的变化。但是从传输媒体带宽、存储器、处理器能力以及处理时间的角度来看这样做是不经济的,因为物体在图象间是运动的,也就是说象素内容从一幅图象中一个位置移动到了后续图象中的另一个位置。一种更先进的思想是利用前面的图象来预测一个块的象素在后续的一幅图象或多幅图象中的位置,比如说用运动矢量,并且以“预测图象”或“P”图象的形式写下该结果。更具体而言,这就要牵涉到对第i+1帧图象中的象素或宏块在第i帧图象中的位置进行最佳预测或估计。进一步还可以利用后面图象和前面的图象来预测象素块将在中间或“B”图象中的什么位置。
应该注意图象的编码顺序和图象传输的顺序并不一定与图象显示的顺序一致。参看图2。对于I-P-B的系统,输入图象的传输顺序不同于编码顺序,输入的图象必须要暂时存储起来直到用于编码。有一个缓冲器会将这些输入保存直到使用它们。
为了便于描述,图1显示了通用的符合MPEG的编码流程图。在这个流程图中将处理第i帧图象和第i+1帧图象以便产生运动矢量。运动矢量预测一个象素宏块在前面和/或后面图象中的位置。使用运动矢量而不是整个图象是MPEG和HDTV标准中时域压缩的关键因素。正如图1所示,运动矢量一旦产生就将被用来把第i帧图象中象素宏块平移到第i+1帧图象中去。
正如图1所示,在编码过程中第i帧和第i+1帧图象在编码器11中被处理以便产生运动矢量,其它的图象,比如第i+1帧图象和后面的图象也将用这种方式来进行编码和传输。后续图象的输入图象111X被送入编码器的运动估计单元43。运动矢量113作为运动估计单元43的输出被构成。这些运动矢量被运动补偿单元41用来从前面和/或后面的图象中恢复被称作为参考数据的宏块数据,作为本单元的输出。运动补偿单元41的一个输出带负号地与运动估计单元43的输出相加,并将结果送到离散余弦变换器21的输入。离散余弦变换器21的输出在量化器23中被量化。量化器23的输出被分为两路输出121和131;一路输出121送入下一个单元43以在传输前被进一步地压缩和处理,比如说送给游程编码器;另一路输出131通过重建编码的象素宏块然后被存储到帧存储器42中。在用于描述目的编码器中,这个第二路输出131通过反量化29和反离散余弦变换31得到差值宏块的一个有损失的版本。这个数据同运动补偿单元41的输出相加得到原先图象的一个有损失的版本送入帧存储器42。
正如图2所示,图象类型有三种。“帧内图象”或“I”图象被完全编码和传输,同时不需要定义运动矢量。这些“I”图象起着运动矢量源的作用。“预测图象”或“P”图象通过相对于前面图象的运动矢量来得到,并且为别的图象起着运动矢量源的作用。最后,“双向图象”或“B”图象通过相对于另外两幅图象的运动矢量来得到,一是前面的图象一是后面的图象,它不能作为运动矢量的源。运动矢量要从“I”和“P”图象得到并且用于构造“P”和“B”图象。
图3显示的是一种进行运动估计的方法,该方法开始时要在前一帧图象中一个区域中对第i+1帧的宏块211进行全搜索,寻找最佳匹配宏块213(211’与211处在同一位置但它在前一帧图象之中)。以这种方式平移这些宏块就得到了第i+1帧图象的宏块类型,如图4所示。这样,第i帧的图象只要比如说藉利用运动矢量和差值数据做很少的改变以便生成第i+1帧图象。被编码的是差值数据和运动矢量,而不是第i+1帧图象本身。运动矢量逐帧图象地平移图象的位置,而差值数据载有色度、亮度和饱和度的变化,也就是颜色和亮度的变化。
回到图3,我们从在第i帧图象中的与在第i+1帧图象中的211X位置相同的211’位置开始寻找好的匹配。在第i帧图象中要创建一个搜索窗口。我们要在这个搜索窗口中搜索最佳匹配。一旦找到,该宏块的最佳运动矢量就被编码。最佳匹配宏块的编码包括运动矢量,也就是说在下一帧图象中,在Y方向有多少个象素和在X方向有多少个象素是最佳匹配位移的。被编码的还有差值数据,也被称为“预测误差”,它是在当前宏块和最佳匹配宏块之间在色度和亮度上的差值。
图4给出了图象块根据运动矢量从它们在前一帧图象中的位置移动到新图象中的位置,同时还给出了利用运动矢量进行调整后的前一帧的图象块。
本发明的总体结构显示在图5和图6之中。如图5所示,采用了两级分级处理器结构,而如图6所示,采用了两级分级搜索的方法。
当前宏块数据总线(CMB数据总线)205被用来给分级搜索单元201和精细搜索/重建单元202输入当前宏块(CMB)的亮度数据。这条总线还为精细搜索/重建单元提供CMB的亮度和色度数据。
图中所示的分级搜索单元201通常被用来藉使用下取样的CMB数据来完成其搜索操作。用户可以选择数据下取样的程度,其在水平方向上从最大的4∶1到最小的1∶1(即没有下取样)。所使用的这类单元的数目根据需要的搜索范围可以变化(1,2或4)。分级搜索单元201存储和取出分级搜索存储器中的I-帧和P-帧的亮度数据。分级搜索存储器的大小取决于图象数据下取样的程度。如果用户选择进行下取样,所存储的亮度搜索数据与对输入的当前宏块(CMB)数据进行下取样之后的数据量相当。在搜索结束时,分级搜索单元根据最小绝对差值并通过最佳匹配差值/偏移总线为给定的当前宏块(CMB)输出最佳匹配搜索结果和它的相对于当前宏块(CMB)位置相应的偏移。上面的描述是针对亮度的,但是也可以用于色度和/或亮度和色度数据。
图5,6和8中所示的精细搜索/重建单元221既可以在独立环境下(也就是说没有附加的分级搜索单元)为IP的编码而工作,也可以与附加的分级搜索单元一起为IPB的编码而工作。该单元221利用未经下取样的当前宏块(CMB)的亮度数据来完成它的搜索操作而不是利用存储在精细搜索存储器中的重建的前面和/或后面的I-帧和P-帧数据。当搜索结束时,精细搜索/重建单元在DIFF/QXFRM数据总线231上输出帧内当前宏块(CMB)的亮度和色度的象素值或是输出非帧内当前宏块(CMB)的亮度和色度减去最佳匹配精细宏块(RMB)的亮度和色度的象素的差值数据。此外,当输出非帧内的差值数据时,运动矢量被输出到运动矢量总线(MV总线)241上,该运动矢量相应于最佳匹配参考宏块(RMB)位置相对于当前宏块(CMB)的位置。
在对输出的帧内数据或非帧内的差值数据完成离散余弦变换(DCT)和量化后,变换后的亮度和色度块通过DIFF/QXFRM数据总线231被输入到精细搜索/重建单元,使得精细搜索/重建单元221能够正确地重建被输出到精细搜索存储器的I和P帧的数据。在每个单元内采用扩充的流水线其目的是为了满足实时编码环境的性能要求。
这里公开的运动补偿结构所采用的总的搜索策略被分成下面图6到图8所示的流水线部分。
正如图6和图8所示,分级搜索单元201藉利用下取样(平均)的全象素值完成典型的搜索。在藉利用非重建的当前宏块(CMB)数据从前面和/或后面的I-和P-帧中确定了最佳的经过下取样的匹配后,精细搜索单元221藉利用在最佳下取样匹配的偏移附近重建的精细搜索数据来进行非下取样的全象素搜索。在确定了非下取样的全象素匹配之后,半象素和可选用的双基(DP)精细搜索根据最佳无下取样全象素匹配的位置藉利用重建的精细数据来进行。根据由最小绝对差值确定的最佳匹配运动估计的结果,如果宏块是要被帧内或非帧内编码,则将分别输出原先的当前宏块(CMB)或最佳匹配差值宏块的亮度和色度数据。非帧内的结果有三种不同的可能结果CMB-RMB全象素最佳匹配CMB-RMB半象素最佳匹配CMB-RMB双基最佳匹配分级搜索单元被显示在图5和图6之中。该单元的数据流程图在图7中给出。如图所示,当前宏块(CMB)的亮度数据保存在亮度缓冲器207中。数据的下取样就在这里进行。为了给用户提供尽可能多的灵活性,根据搜索的范围和搜索存储器的大小,可以有下列的下取样选项4∶1——宏块的每个象素行存储四个象素,每个象素取同一行中四个连续象素值的平均值。这样每个单元能够提供最大的搜索窗口(水平+/-64,垂直+/-56),同时需要的搜索存储器最少(两个搜索参考帧为0.25MB)。
2∶1——宏块的每个象素行存储八个象素,每个象素取同一行中每两个连续象素的平均值。这样每个单元能够提供次最大的搜索窗口(水平+/-32,垂直+/-32),同时需要次最大的搜索存储器(两个搜索参考帧为0.5MB)。
1∶1——每个象素行存储十六个象素(无下取样)。这样每个单元能够提供最小的搜索窗口(水平+/-16,垂直+/-16),同时需要最大的搜索存储器(两个参考搜索帧为1MB)。
经过下取样或是没有经过下取样的CMB数据通过亮度缓冲器207输出到四个场搜索单元,301,303,305和307,如图7所示。对I-和P-图象来说,当前宏块(CMB)数据还要通过搜索数据总线输出到分级搜索存储器。注意,B-图象的当前宏块(CMB)数据将不会输出到分级搜索存储器,因为MPEG2标准使B-图象不能作为参考帧。包含在搜索窗口中的所有宏块的搜索存储器数据也将被输入到四个场搜索单元。当只使用—个搜索分级搜索单元时,在获取搜索数据时要保证位于搜索窗口中心的搜索宏块(SMB)与正在被搜索的宏块处于相同的位置。当使用两个或四个分级搜索单元时,在获取搜索数据时要保证位于所有单元的组合搜索窗口中心的搜索宏块位置与当前宏块(CMB)位置的偏移等于前一图象的平均运动矢量。
如图7所示,场搜索是在分级搜索单元中进行的。f1/f1场搜索单元301用当前宏块(CMB)的奇数行对搜索数据的奇数行进行搜索。f2/f2场搜索单元303用当前宏块(CMB)的偶数行对搜索数据的偶数行进行搜索。f1/f2场搜索单元305用当前宏块(CMB)的奇数行对搜索数据的偶数行进行搜索。f2/f1场搜索单元307用当前宏块(CMB)的偶数行对搜索数据的奇数行进行搜索。
对于这些单元输出的每个差值数据,通过合并f1/f2和f2/f2场搜索的结果以及f1/f2和f2/f1场搜索的结果便得到另外两个帧搜索结果,每个结果被输入到最佳匹配结果选择单元311。单元311进行的第一步工作是给每个结果加一个加权因子,称之为基本加权。基本加权值随搜索宏块(SMB)相对于前一图象的平均运动的偏移位置而变化。相对于前一图象的平均运动矢量,一个给定的搜索宏块到当前宏块(CMB)偏置的位移越远,加到该搜索位置结果的基本加权值就越大。这样,搜索就趋向于选择最紧跟前一图象平均运动轨迹的SMB位置。
该单元在最佳匹配差值/位移总线上输出的结果的数目取决于正在被搜索的图象的格式。对帧(逐行)格式的搜索,输出五个结果四个最佳匹配的场搜索结果(f1/f1,f2/f2,f1/f2,f2/f1),一个最佳当前宏块的帧搜索结果(f1/f1+f2/f2差值和f1/f2+f2/f1差值的最小值)。对于场(隔行)格式的搜索,输出两个结果与当前宏块(CMB)奇偶性相同的最佳帧搜索(f1/f1+f2/f2的差值最小),与当前宏块奇偶性相反的最佳帧搜索(f1/f2+f2/f1的差值最小)。
此外,当对B-图象进行搜索操作时,要产生两组这样的结果(一组是对前面参考图象的搜索,另一组是对后面参考图象的搜索)。除了最小的绝对差值之外,还要输出产生最小值的SMB的偏移位置。
正如上面所提到的那样,可以采用多个分级搜索单元来扩大搜索窗口的大小。当采用两个搜索单元时,使用0.5MB的搜索存储器可以得到的最大搜索窗口为水平+/-128,垂直+/-56,或者是水平+/-64,垂直+/-112。当采用最大数目的四个单元时,使用1MB的搜索存储器可以得到的最大搜索窗口大小为水平+/-128,垂直+/-112。在有多个分级搜索单元的情况下,最佳匹配的差值/偏移结果将以串级链方式从一个单元传送到另一个单元。在这种情况下,位于串级链顶端的第一个发送单元将它的绝对差值和偏移结果传送给第一个接收单元。第一个接收单元将其搜索的结果与从第一个发送单元接收到的结果进行比较,然后将最小的绝对值差值和偏移结果传送给第二个接收单元。这个过程一直进行下去直到链上的最后一个单元将最终的最小绝对差值和偏移结果传送到精细搜索/重建单元为止。
精细搜索/重建单元被显示在图5,6和8中。在图8中还专门给出该单元的数据流程图。正如图中所示,当前宏块(CMB)的亮度和色度数据从CMB数据总线205上接收下来并被存储到亮度/色度缓冲器207中。亮度数据与前面所述的分级搜索单元所接收到的亮度数据是相同的。为了最有效地按流水线处理运动估计过程,缓冲器被设计成能够保持两个宏块的亮度数据和一个宏块的色度数据。
运动估计精细步骤的第一步在全分辨率(FR)单元321进行。该单元从亮度/色度缓冲器207取出当前宏块(CMB)的亮度数据,同时通过MC(存储器控制器)单元301从精细搜索存储器中取出从属于全象素精细搜索窗口的参考宏块(RMB)的亮度数据。全分辨率单元(FR)321所需要的用来完成精细数据获取的控制信息(地址和获取规模)由运动估计处理单元(MEPROC)331根据正在进行的操作是有分级的或是无分级的(即没有分级搜索单元)来确定。如果工作在无分级模式,运动估计处理单元(MEPROC)331将全象素精细搜索的中心定位在当前宏块(CMB)位置的附近。如果工作在分级搜索模式,运动估计处理单元(MEPROC)331要利用通过最佳匹配的差值/偏移总线330接收到的分级搜索单元的结果,其目的是使全象素精细搜索的中心定位在偏移的位置附近。为了满足实时性能的要求,根据搜索的模式(分级或是无分级)、图象的结构和类型、以及用户选择的运动估计选项,搜索进行的次数和类型以及搜索窗口的大小可以变化。表1对这些信息进行了总结。注意,在I-图象中也进行了运动估计搜索,其目的是为了产生错误隐藏的运动矢量,用户可以选择将它们插入到压缩后的比特流中去。
在表1中,Hier表示分级搜索模式,Non-Hier表示无分级搜索模式,DP表示双基运动估计,x Ref表示为搜索而规定的究竟是1个(奇偶性相反)还是2个(奇偶性相同和相反)参考场,OP表示与当前宏块(CMB)的奇偶性相反的参考宏块(RMB)的场数据。SP表示与当前宏块(CMB)的奇偶性相同的参考宏块(RMB)的场数据,(PR)表示存储在精细搜索存储器中的前面图象的精细搜索数据,(FR)表示存储在精细搜索存储器中的后面图象的精细搜索数据,(BR)表示存储在精细搜索存储器中前面和后面的精细搜索数据之间的双向内插(平均),f1/f1表示被用来搜索当前宏块(CMB)奇数场行的奇数行的精细数据,f1/f2表示被用来搜索当前宏块(CMB)奇数场行的偶数行的精细数据,f2/f1表示被用来搜索当前宏块(CMB)偶数场行的奇数行的精细数据,f2/f2表示被用来搜索当前宏块(CMB)偶数场行的偶数行的精细数据,f1/fx表示被用来搜索当前宏块(CMB)奇数场行的奇数行或偶数行的精细数据,这要根据f1/f1或f1/f2分级搜索单元的结果是否产生较好的匹配,而f2/fx表示用于搜索当前宏块(CMB)偶数场行的奇数行或偶数行的精细数据,这要根据f2/f1或f2/f2分级搜索单元的结果是否产生较好的匹配。在为每个搜索位置确定绝对差值时,要给每个结果加一个基本的加权因子,其方法与前面所述对分级搜索单元加权的方法相同。对每种搜索类型进行搜索的最终最佳匹配结果是由最小绝对差值加上基本加权值来确定的。
在搜索操作结束时,FR单元输出CMB数据同时还输出围绕在每个最佳匹配的RMB附近的足够的精细数据以便进行多达八个的半象素的宏块搜索。对于隔行的图象,将输出一个(OP场)或两个(SP场,OP场)最佳参考宏块(RMB)搜索区域,对于逐行图象,将输出两个场最佳匹配参考宏块(RMB)搜索区域(最佳CMBf1匹配,最佳CMBf2匹配)和一个最佳参考宏块(RMB)帧搜索区域。注意为传输最佳匹配的参考宏块(RMB)搜索区域的数据,采用了44比特的总线,这是因为在B-图象中当双向参考宏块(RMB)数据产生最佳匹配时,每一个参考宏块(RMB)最佳匹配象素值要用11比特的字节来表示(参考美国专利申请序列号08/411,100和美国专利申请序列号08/602,472,这里加以引用,以供参考)。此外,对每个最佳匹配的RMB搜索区域的最佳匹配绝对差值和偏移结果将输出给MEPROC单元。
第二个运动估计精细步骤在半分辩率(HR)单元323进行。该单元对围绕在全分辨率(FR)单元321确定的最佳匹配的全象素参考宏块(RMB)附近的多达八个的半象素的参考宏块(RMBs)进行精细搜索。当对特定的搜索操作确定最佳匹配的半象素参考宏块(RMB)位置(即产生了最小绝对差值的位置)时,最佳匹配的绝对差值和它的相应的半象素偏移都要被输出给运动估计处理器单元331(MEPROC)。然后运动估计处理器(MEPROC)单元331把从全分辨率(FR)单元321和半分辨率(HR)单元323接收的最佳匹配绝对差值进行比较,同时指令半分辨率(HR)单元323输出参考宏块(RMB)的全象素或半象素亮度数据,它们为所进行的每种搜索操作产生最小绝对差值。半分辨率单元(HR单元)把这些数据连同相应的当前宏块(CMB)数据输出到双基单元(DP单元)。
运动估计精细步骤的另一步骤在双基单元(DP)325进行。该单元可被配置来藉使用来自全分辨率(FR)还是半分辨率(HR)单元323的当前宏块(CMB)和参考宏块(RMB)数据进行双基精细处理。此外,对于隔行(场)图象,在被提供了两个参考场时该单元还可以被加以配置以便使用奇偶性相同或是相反的参考宏块(RMB)。缺省模式是藉利用全分辨率单元(FR单元)321的当前宏块(CMB)和参考宏块(RMB)数据来进行双基运动估计的,利用该缺省模式可以有两个优点第一,性能可以得到优化,因为半分辨率(HR)323和双基(DP)325单元的搜索操作可以并行进行。
第二,对于逐行(帧)图象,消除了一种无效情况,在该情况下,半分辨率(HR)参考宏块(RMB)的帧最佳匹配牵涉到在奇偶性相反的场之间进行垂直内插,这样对于给定的当前宏块(CMB)进行有效双基精细处理的可能性从33%增加到100%。
根据从分级搜索单元、全分辨率单元(FR单元)321、和半分辨率单元(HR单元)323等接收到的偏移信息(如果选择了向DP单元325提供用于双基精细处理的数据的话),运动估计处理器(MEPROC)331将构造出指向双基参考宏块(RMB)的运动矢量。然后运动估计处理器(MEPROC)331将进行运动矢量的比例缩放操作,并且把经过比例缩放之后的运动矢量转换到相应的精细搜索存储单元中,从这些单元可以取出用于进行双基运动估计的附加亮度精细搜索数据。一旦找到了双基最佳匹配,相应的绝对差值和偏移都要输出给运动估计处理器(MEPROC)单元331。接着,运动估计处理器(MEPROC)单元根据图象结构判定三个保留的结果中的哪一个产生总的最匹配逐行——最佳匹配的帧参考宏块(RMB),最佳匹配的组合f1和f2的场参考宏块(RMB),最佳匹配的双基参考宏块(RMB)。
隔行——奇偶性相反的最佳匹配场参考宏块(RMB),奇偶性相同的最佳匹配场参考宏块(RMB),最佳匹配的双基参考宏块(RMB),运动估计处理器(MEPROC)331通知双基(DP)单元325将哪一个参考宏块(RMB)结果输出到FD单元327。此时,精细运动估计过程就完成了。
开始宏块(MB)重建过程的下一个单元是FD单元327。该单元从双基(DP)单元325收集当前宏块(CMB)和最佳匹配参考宏块(RMB)的亮度数据,同时从亮度/色度缓冲器207取得相应的当前宏块(CMB)色度数据,以及对于非帧内编码的宏块还要从精细搜索存储器中取得参考宏块(RMB)的色度数据。根据从运动估计处理器(MEPROC)331获得的指示当前宏块(CMB)将作为帧内还是非帧内编码的信息,该单元将用不同的方式处理亮度和色度数据。如果确定是帧内的(无运动),那么FD单元将直接输出当前宏块(CMB)的亮度和色度数据到DIFF/QXFRM数据总线332,并且给MA(运动调整)单元329发送全“00”的参考宏块(RMB)的亮度和色度数据。如果确定是非帧内的(运动),那么FD单元327将把CMB-RMB的亮度和色度输出到DIFF/QXFRM数据总线,同时给运动调整(MA)单元329发送所选择的参考宏块(RMB)的亮度和色度数据。在非帧内的情况下,运动估计处理器(MEPROC)单元331要初始化在FD单元327中的精细存储器的指针以便能够取得所需要的参考宏块(RMB)的色度数据,从而CMB-RMB的色度差值才能计算出来。注意,FD单元要负责DIFF/QXFRM数据总线332的正确仲裁。
这是通过由确保该单元发送的亮度(或色度)数据在下一个色度(或亮度)数据发送之前全部返回到IQ(反量化)单元333来完成的。由FD单元327输出的数据的后面跟随着由运动估计处理器(MEPROC)单元331输出的非帧内宏块的运动矢量。运动估计处理器(MEPROC)单元把运动矢量数据输出到运动矢量总线(MV总线)。
当对由FD单元输出的数据进行了离散余弦变换(DCT)和量化变换后,这些数据以块的形式回到IQ(反量化)单元333用于对变换和量化后的数据的重建(解码)。IQ333和ID(反DCT)进行MPEG-2标准所规定的反量化和反离散余弦变换工作。这样就得到一个由FD单元输出的原先的亮度和色度MB数据的有损失版本,这正是一个外部MEPG-2解码器解压缩该宏块得到的内容。这些有损失的亮度和色度宏块数据被送到MA(运动调整)单元,该单元将该输入与以前从FD单元接收到的参考宏块(RMB)数据相加。对于所有被处理的I-和P-图象,相加后的亮度和色度宏块数据将通过MC单元被输出到精细搜索存储器。
虽然我们的发明是利用了一些优选的实施例和例子来描述的,但这并不意味着本发明的范围就只限于此,它要由所附的权利要求书来限定。
权利要求
1.一种数字视频数据流的时域压缩方法,包括在参考图象的至少一个搜索单元中分级搜索象素以便在那里寻找与当前宏块相对应的最佳匹配宏块,并在最佳匹配宏块和当前宏块之间构造运动矢量。
2.权利要求1的方法,其特征在于包括在多个搜索单元中进行多个分级搜索以便增大搜索窗的尺寸。
3.权利要求2的方法,其特征在于包括以串级链的方式将最佳匹配宏块的差值和偏移从一个搜索单元传送到另一个搜索单元。
4.权利要求3的方法,其特征在于包括将最佳匹配宏块的最小绝对差值和偏移从最后一个分级搜索单元传送到精细搜索和重建单元。
5.一种数字视频数据流的时域压缩方法,包括在参考图象中藉使用下取样后的全象素值来搜索象素以便在那里寻找与当前宏块相对应的最佳匹配宏块,并构建在最佳匹配宏块和当前宏块之间的运动矢量。
6.权利要求5的方法,其特征在于包括按全搜索、2∶1下取样搜索、或4∶1下取样搜索方式进行搜索。
7.权利要求5的方法,其特征在于下一图象要被帧内编码并且其输出是原先的当前宏块。
8.权利要求5的方法,其特征在于下一图象要被双向编码或预测编码,并且其输出是最佳匹配的差值宏块。
9.权利要求5的方法,其特征在于包括藉采用非重建的参考宏块数据来搜索最佳匹配宏块。
10.权利要求9的方法,其特征在于包括在这之后要藉使用在下取样匹配偏移附近的重建后的精细搜索数据来进行无下取样的全象素搜索。
11.权利要求10的方法,其特征在于包括在这之后要藉利用根据最佳匹配的无下取样的全象素最佳匹配宏块的位置重建的精细数据来进行半象素搜索。
12.权利要求11中的方法,其特征在于包括进行双基搜索。
13.一种数字视频数据流的时域压缩方法,包括采用带偶/偶,奇/奇,偶/奇,奇/偶场搜索单元输入的场搜索在参考图象场中搜索象素,以便在那里寻找与当前宏块相对应的最佳匹配宏块,并构建在最佳匹配宏块和当前宏块之间的运动矢量。
14.权利要求13的时域压缩方法,其特征在于包括藉采用最佳场搜索的内插来进行搜索。
15.一种用于数字视频运动估计的搜索处理器,所述的搜索处理器包括a.分级搜索单元;以及b.与之相串连的精细搜索单元。
16.权利要求15的搜索处理器,其特征在于所述的分级搜索单元包括下取样全象素搜索装置。
17.权利要求15的搜索处理器,其特征在于所述的精细搜索单元包括全象素搜索装置、半象素搜索装置、和双基搜索装置,所述的全象素搜索装置要与所述的半象素搜索装置和双基搜索装置相连,并且所述的半象素搜索装置与所述的双基搜索装置相串连。
全文摘要
数字视频数据流的时域压缩首先在参考图象的至少一个搜索单元中分级搜索象素,以便找到与当前宏块相对应的最佳匹配宏块,接着构建在参考图象的最佳匹配宏块和当前宏块之间的运动矢量。
文档编号H04N7/32GK1182335SQ9712008
公开日1998年5月20日 申请日期1997年10月6日 优先权日1996年11月7日
发明者A·S·布特尔, J·M·卡茨马尔兹克, A·Y·盖, E·F·维斯特尔曼, R·J·雅格莱 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1