使用较大像素格栅运动补偿的降低复杂性视频解码的制作方法

文档序号:7748939阅读:295来源:国知局
专利名称:使用较大像素格栅运动补偿的降低复杂性视频解码的制作方法
发明
背景技术
领域本发明涉及压缩的视频信息的图像处理,并且尤其涉及用于调节MPEG解码器的计算负荷的方法和系统。
背景技术
为了改善传输效率,包含大量数据的图像一般被压缩,然后通过传输媒体被发送到解码器,该解码器用于解码编码的视频数据。因此,非常希望迅速和高效地解码被压缩的视频信息,以提供动态视频。一种广泛用于压缩和解压缩视频信息的压缩标准是用于视频编码和解码的运动图像专家组(MPEG)标准。在1993-08-01第一版国际标准Part1,2和3,ISO/IEC 11172-1,“Information Technology-Coding ofmoving pictures and associated audio for digital storage mediaat up to about 1.5Mbit/s”中定义了MPEG标准,在本文中结合其全文作为参考。
通常,处理帧的计算负荷不受MPEG2解码处理器中的解码算法的限制。但是,由于MPEG2解码的不规则计算负荷行为,帧的峰值计算负荷可以超过媒体处理器的最大CPU负荷,从而引起帧降落(drop)或意外的后果。结果,当工程人员对媒体处理器实施MPEG2解码时,他或她需要选择具有超过平均解码计算负荷40%-50%的性能余量(margin)的处理器,以便在峰值计算负荷出现时具有平滑操作。这种类型的实施方式是不经济的并且由于不希望的峰值计算负荷非频繁出现而浪费资源。
在MPEG2中,标准解码器总是根据运动矢量类型来执行运动补偿(MC)并且这在许多通用视频解压缩方法中是计算负荷最密集的操作之一。运动矢量限定视频数据中的目标(即,宏块)从参考帧到当前帧的移动。每个运动矢量包括水平分量(“X”)和垂直分量(“Y”)。每个分量代表目标恰好在参考帧和当前帧之间移动的距离。因此,大多数MPEG2解码器需要处理运动补偿操作的大量计算负荷,使之超过媒体处理器的最大CPU负荷。因此,需要提供一种减少解码方案,该方案能减少在媒体处理器或节电装置上实施的MPEG2解码器中的MC操作。

发明内容
本发明涉及用于通过在解码处理期间按比例降低运动补偿的计算来降低MPEG数字视频解码器系统的计算复杂性的方法和系统。
根据本发明的一个方面,该方法包括下列步骤确定MPEG视频信号是否包含非全像素运动矢量;如果MPEG视频信号包含所述非全像素运动矢量,通过将奇数矢量修整为最接近的偶数矢量,将该非全像素运动矢量变换为全像素矢量;和根据变换的全像素运动矢量来产生运动补偿的MPEG视频图像。非全像素运动矢量可以是四分之一像素运动矢量、半像素运动矢量和分数像素(fractional-pel)运动矢量之一。对P帧和B帧或对P帧和B帧的组合执行非全像素矢量到全像素运动矢量的变换。
根据本发明的另一方面,用于采用一种类型的MPEG视频解码器改善编码的数据视频信号的解码效率的方法,所述类型的视频解码器具有可变长度代码(VLC)解码器、逆量化器(IQ)、离散余弦逆变换器(IDCT)、运动补偿器(MC)和复杂性选择器,所述方法包括下列步骤在VLC解码器上接收具有与之相关的运动矢量的压缩视频数据流和从中产生解码数据;同时,从解码数据中确定运动矢量的类型;使用IQ对解码数据进行逆量化,以生成逆量化的、解码数据;采用IDCT将逆量化的、解码数据从频域变换到空间域,以产生差数据;采用MC来对每个宏块执行全像素运动补偿,而不考虑运动矢量的类型,以产生参考数据;和组合参考数据和差数据,以产生运动补偿的图像。压缩的视频数据流可以包括多个由数字像素数据阵列形成的宏块,并且对每个宏块执行全像素运动补偿,而不考虑运动矢量的类型。
根据本发明的还一方面,该系统可以包括可变长度解码器(VLD),用于接收和解码具有与之相关的运动矢量的MPEG视频信号流,其中VLD用于从解码的MPEG视频信号中输出量化的数据;复杂性选择器,用于根据解码的MPEG视频信号检测运动矢量类型并将检测的运动矢量变换为全像素运动矢量;逆量化器(IQ),被耦合来接收VLD的输出,以便可操作地对其中接收机的量化数据进行逆量化;离散余弦逆变换器(IDCT),被耦合到IQ的输出,由于将逆量化的数据从频域变换到空间域;运动补偿器(MC),被耦合到复杂性选择器,用于执行全像素运动补偿,而不考虑运动矢量的类型;和加法器,用于从MC和IDCT接收输出信号,以形成运动补偿的图像。
从下面的在附图中示出的优选实施例的更具体描述中将明白本发明的上述和其他特点与优点,在附图中相同的标记字母表示相同的部件。这些附图不必按比例绘制,而是强调说明本发明的原理。


通过结合附图参照下面的具体描述可以更完全地理解本发明的方法和设备,其中图1是其中应用本发明实施例的视频通信系统的结构的简化方框图;图2表示宏块类型的信息的格式;图3表示图1所示的视频通信系统中使用的常规解码器;图4是根据本发明一个实施例的解码器的简化方框图;图5是表示根据本发明一个实施例的相关参考图像数据的位置的示意图;和图6是表示根据本发明的图3的解码器内的操作步骤的流程图。
具体实施例方式
在下面的说明中,为了说明而不是限制目的,列出了具体细节,诸如具体结构、接口、技术等,以提供对本发明的完全理解。为了简要和清晰的目的,省略了公知设备、电路和方法的说明,以防止由于不必要的细节而妨碍本发明的描述。
图1表示其中可以实施本发明的示例性视频通信系统。如图1所示,该视频通信系统包括数字电视单元2、广播设备4和传输媒体5。将以诸如高清晰度(HDTV)电视系统的数字电视系统为上下文来描述优选实施例;但是,应注意本发明也能用于其他类型的视频设备中。广播设备4可以是电视台或广播室,用于将电视信号发送到数字电视单元2。传输媒体5可以是常规的电缆、同轴电缆、光纤电缆、射频(RF)链路等,通过该传输媒体可以在广播设备4和数字电视单元2之间传送电视信号。由视频数据、音频数据和控制数据组成的电视信号在广播设备4的发射端上被压缩或编码并且利用电视单元2的接收端上的解码器在比特流中进行解压缩,以便显示。
为了便于理解本发明,下面将结合图2描述与MPEG2编码相关的背景信息。如图2所示,示出了根据MPEG标准的代码格式的分层结构。该结构的顶层包括由多个GOP(图像组)组成的视频序列,其中一幅图片与一页(sheet)图像相对应。每个图片分为多个片段(slice),并且每个片段包括多个设置在从左至右和从上到下的行中的宏块。每个宏块包括六个分量表示构成16×16像素的宏块的四个8×8像素块的亮度的四个亮度分量Y1至Y4;和两个彩色(U,V),构成用于同一宏块的8×8像素块的差分量Cb和Cr。最后,一个8×8像素块是在视频编码中的最小单元。
通过将图像分成16×16像素的宏块来对图像执行MPEG2编码,每个宏块具有与之相关的独立的量化器标度值。这些宏块还被分成单独的8×8像素块。这些宏块的每个8×8像素块经历离散余弦变换(DCT),以便对于其中64频带之中每一个频带生成DCT系数。8×8像素块中的DCT系数随后除以相应的编码参数,即量化加权。用于给定的8×8像素块的量化加权利用8×8量化矩阵来表示。此后,还对要考虑的DCT系数(即,量化器标度值)实施附加计算,并从而完成MPEG2编码。应注意在本发明中可以使用其他的编码技术,诸如JPEG等。
下面将参照图3描述从利用基于DCT的编码方法编码的比特流(或MPEG比特流)中恢复的常规的基于DCT的图像。图3表示能从MPEG代码中恢复图像代码的简化电路图。使用比特流分析器12来分析每个代码或输入比特流,以检测代码的类型。在MPEG代码中,这些代码被分为三种类型(1)限定帧内编码的图像为I图像的帧内编码的代码;(2)只根据前帧预测的帧间编码的代码,以便将预测编码的图像构成为P图像;(3)根据前帧和后帧预测的帧间编码的代码,以便将双向预测编码的图像构成为B图像。周期性地编码I帧或实际的视频参考帧,即,用于十五帧之中每一个帧的一个参考帧。预测在特定数量的帧之前并且在下一参考帧之前的一个视频帧(即,P帧)的组成。在I帧和P帧之间或通过利用未来参考帧中的宏块内插(平均)过去参考帧中的宏块来预测B帧。运动矢量也被编码,这指定参考帧内的宏块相对当前帧内宏块的相对位置。
参照图3,如果检测的代码是I图像的代码,则利用解码器14解码检测到的代码,然后利用逆量化器16对其进行逆量化。此后,利用逆DCT(IDCT)块18通过逆DCT处理来计算图像所分成的块中的像素的值,之后正向传送所计算的值并将其存储在视频存储器20中,以便显示该图像。如果检测到的代码是P图像的,则对检测到的代码进行解码和逆量化,然后计算这些块的差值。正向预测器26将每个差值与存储在前帧级22中的前帧的相应运动补偿块相加,然后将所得到的扩展视频数据写入视频存储器20中,以显示该图像。如果检测到的代码是B图像的,则对检测到的代码进行解码和逆量化。使用IDCT 18来计算这些块的差值。此时,利用双向预测器28或后向预测器30将每个差值与相应的存储在前帧级22中的前帧的相应运动补偿块以及存储在后帧级24中的后续帧的运动补偿块相加。然后将所得到的扩展视频数据存储在视频存储器20中,以显示该图像。
如上所述,遵循国际标准MPEG代码的任何视频数据能从MPEG代码中恢复图像。在解码处理之后,本发明提供一种通过按比例减小运动补偿电路的计算负荷来减少视频解码操作的计算的机制。本发明的关键原理是通过在运动补偿操作期间将低层像素格栅(grid)模式改变为高层像素格栅模式来简化MC算法。
在基于运动补偿的视频编码中,运动矢量能具有整数值(即,全像素编码),其中当前帧中的像素值根据参考帧中实际像素的值、或半整数值(即,半像素编码)、四分之一整数值(即,四分之一像素编码)和分数值(即,分数像素编码)来规定,其中当前帧中像素的值根据从参考帧中已有的像素中插入的“虚拟”像素来规定。这些类型的编码系统对于本领域技术人员而言是公知的;因此省略其描述,以免说明书冗长。半像素运动补偿以及四分之一像素和分数像素运动补偿比全像素运动补偿在计算量上更大,因为解码器必须从以分别使用半、四分之一、分数像素格栅的运动矢量为参考的以前宏块中插入宏块。
相反地,根据本发明的实施例的解码器用于对每个宏块执行全像素运动补偿,而不考虑运动矢量的类型。例如,如果运动矢量是半像素矢量,则本发明的MC算法将在P和B帧中或只在B帧中在运动补偿期间将半像素矢量变换为全像素矢量。如果运动矢量是四分之一像素矢量,则本发明的MC算法在P和B帧中或仅在B帧中在运动补偿时将其作为全像素矢量或选择地将其作为半像素矢量来对待。通过选择性地将运动矢量按比例缩小以减少解码器中的MC操作,本发明能在解码处理期间使用更少的CPU周期和存储器存取,同时提供比可接受的收看质量好的收看质量。
图4表示MPEG视频解码器14的主要组成部分,该解码器能根据本发明的示例性实施例解码输入的视频信号。将理解在到达本发明的解码器14之前执行输入数据的压缩。压缩视频信号在本领域是公知的,其能够以各种不同方式来执行,即,通过在MPEG2编码过程期间根据列出的标准丢弃人类视觉系统对其不敏感的信息。MPEG视频解码器14包括可变长度解码器(VLC)40;逆扫描/量化器电路42;离散余弦逆变换(IDCT)电路44;加法器46;运动补偿模块48;帧存储器50;和复杂性标度选择器52。
在操作中,解码器14接收提供给VLC解码器40的压缩视频信息流。VLC解码器40解码压缩信号的可变长度编码部分,以提供可变长度解码信号给逆扫描(或zig-zag)/量化器(IQ/IZ)电路42,该电路解码可变长度解码信号,以提供zig-zag解码信号。该zig-zag解码信号随后作为信息序列块提供给逆DCT电路44,该电路44对zig-zag解码视频信号在逐个块的基础上执行离散余弦逆变换,以提供解压缩的像素值或解压缩的误差项。解压缩的像素值被提供给加法器46。
同时,运动补偿电路48接收运动信息并在逐个宏块的基础上提供运动补偿像素给加法器46。更具体地,正向运动矢量用于变换以前图像中的像素,而后向运动矢量用于变换未来图像中的像素。然后,利用由逆DCT电路44提供的解压缩误差项来补偿该信息。这里,运动补偿电路48从帧存储器50中获得以前图像信息和未来图像信息。以前图像信息随后利用运动补偿48进行正向运动补偿,以提供正向运动补偿的像素宏块。未来图像信息利用运动补偿电路48进行后向运动补偿,以提供后向运动补偿的像素宏块。这两个宏块的平均生成双向运动补偿的宏块。接下来,加法器46接收解压缩的视频信息和运动补偿的像素,直到完成帧。如果该块不属于预测宏块(例如,在I宏块的情况下),则这些像素值被不变地提供给帧存储器50。但是,对于预测的宏块(例如,B宏块和P宏块),加法器46将解压缩误差和从运动补偿电路48输出的正向运动补偿和后向运动补偿相加,以生成输出像素值。
复杂性标度选择器5证明运动补偿电路48内的计算负荷的估算。复杂性标度选择器52的功能是在实际执行MPEG2解码块(除了VLD操作)之前调节当前帧、片段和宏块的计算负荷。即,本发明的解码器14通过按比例缩小运动矢量至低分辨率来提供缩放性,从而使用较少的CPU周期和可利用计算资源的存储器使用,即MC48。为了实现此,复杂性标度选择器52检测输入信号,以便自适应地控制MC24的计算复杂性,于是如下所述给解码器14设置更少的计算负担。
图5表示用于半像素运动估算(如虚线所示)和全像素运动估算(如实线所示)的相关参考图像数据位置的图形表示。如图5所示,位置1-8(圆)对应于围绕位置0的全像素格栅位置,而位置1-8’(方形)对应于围绕位置0的半像素位置。在检查在子像素级格栅上的参考宏块时,在优选实施例中所述格栅被提升(promote)到最接近的偶数格栅。或者,这些格栅可以被提升到最接近的奇数格栅,或可以被随机地提升到最接近的偶数格栅或最接近的奇数格栅。例如,如果检测到半像素运动矢量(7,2),则复杂性标度选择器52可以将它提升到全像素矢量(6,2)或(8,2)。如果检测到半像素运动矢量(3,5),则复杂性标度选择器52可以将它提升到全像素矢量(2,4)、(4,6)或(4,4)。这个提升规则在优选实施例中应用于P和B帧或只应用于B帧。在利用复杂性标度选择器52将所有子像素级格栅提升到全像素格栅之后,通过从利用被提升的全像素运动矢量为参考的前一宏块中检索宏块来执行运动补偿,而不产生任何内插的参考图像数据。因此,本发明的MC算法避免了在实施例半像素或四分之一像素运动估算中所牵涉的计算负荷。
虽然主要以半像素运动补偿为上下文来描述本发明,但是本发明也能够通过在X或Y方向中提升一个以上的像素而被应用于分数像素运动估算算法。而且,本发明还能以程序代码的形式被嵌入在诸如软盘、CD-ROM、硬驱动器或任何其他的机器可读存储媒体的有形媒体中,其中当利用诸如计算机的机器装载和执行该程序代码时,该机器变成用于实践本发明的设备。另外,本发明能以程序代码的形式被嵌入,例如,存储于存储媒体中,利用机器装载和/或执行,或通过某一传输媒体发送,诸如通过线路连接或电缆连接,通过光纤或通过电磁辐射进行发送,其中当利用诸如计算机的机器载入和执行程序代码时,该机器变为用于实践本发明的设备。当在通用处理器上执行时,程序代码分段与处理器组合,以提供模拟特定逻辑电路操作的独特装置。该程序代码在由处理器执行时使该处理器执行本文中所述的本发明的功能。
图6是表示利用本发明执行的处理过程以提供用户推荐的流程图。矩形单元表示计算机软件指令,而菱形单元表示影响利用矩形单元表示的计算机软件指令的执行的计算机软件指令。这个流程图一般也可应用于硬件实施例。
初始地,利用本发明的解码器14接收压缩视频信息流。在步骤100,复杂性标度选择器52分析其中接收到的宏块类型信息的格式并在步骤120确定是否检测到全像素格栅。也就是说,复杂性标度选择器52基于当前帧信息和解码器14的可利用计算资源来确定MC48的不同性能级。如果检测到全像素格栅,运动补偿电路48基于全像素格栅执行运动补偿,而不利用步骤160中的内插。但是,如果未检测到全像素格栅,则在步骤160将非全像素格栅提升到全像素格栅。之后,在步骤160通过从利用全像素运动矢量为参考的前一宏块中检索一宏块来执行运动补偿。
虽然示出和描述了本发明的优选实施例,但本领域技术人员将明白在不背离本发明的真实范围的情况下可以作不同的改变和修改,并且可以以同等物来替换本发明的元件。因此,本发明并不限于作为用于实现本发明的最佳方式而公开的的特定实施例,并且本发明包括落入后附权利要求书的范围内的所有实施例。
权利要求
1.用于解码MPEG视频信号以便显示的一种方法,该方法包括下列步骤确定所述MPEG视频信号是否包含非全像素运动矢量;如果所述MPEG视频信号包含所述非全像素运动矢量,则将所述非全像素矢量变换为全像素运动矢量;和根据所述变换的全像素运动矢量来产生运动补偿的MPEG视频图像。
2.如权利要求1所述的方法,其中所述非全像素运动矢量包括四分之一像素运动矢量、半像素运动矢量和分数像素运动矢量之一。
3.如权利要求1所述的方法,还包括如果所述MPEG视频信号包含所述全像素运动矢量,则根据所述全像素运动矢量来产生运动补偿的MPEG视频图像。
4.如权利要求1所述的方法,还包括解码压缩的视频数据流,其中所述压缩的视频数据流包括由数字像素数据阵列形成的多个宏块;和对每个宏块执行全像素运动补偿,而不考虑运动矢量的类型。
5.如权利要求1所述的方法,其中将所述非全像素矢量变换为全像素运动矢量的步骤还包括将奇数矢量修整为最接近的偶数矢量。
6.如权利要求1所述的方法,其中对P帧、B帧和P与B帧的组合之一执行将所述非全像素矢量变换为所述全像素运动矢量的步骤。
7.用于采用MPEG数字视频解码器改善编码数据视频信号的解码效率的一种方法,所述MPEG数字视频解码器具有可变长度代码解码器(VLD)(40)、逆量化器(IQ)(42)、离散余弦逆变换器(IDCT)(44)、运动补偿器(MC)(48)和复杂性选择器(52),该方法包括下列步骤在所述VLD(40)上接收具有与之相关的运动矢量的压缩视频数据流和从中产生解码数据;同时,根据所述解码数据确定运动矢量的类型;利用所述IQ(42)来逆量化所述解码数据,以生成逆量化的、解码数据;采用所述IDCT(44)来将所述逆量化的、解码数据从频域变换到空间域,以产生差数据;采用所述MC(48)来对每个宏块执行全像素运动补偿,而不考虑运动矢量的类型,以产生参考数据;和组合所述参考数据和所述差数据,以产生运动补偿的图像。
8.如权利要求7所述的方法,其中根据所述解码数据确定运动矢量的类型的步骤还包括确定所述运动矢量是否是四分之一像素运动矢量、半像素运动矢量和分数像素运动矢量之一的步骤。
9.如权利要求8所述的方法,还包括将运动矢量变换为全运动矢量的步骤。
10.如权利要求9所述的方法,其中将运动矢量变换为所述全像素矢量的步骤还包括将奇数矢量修整为最接近的偶数矢量。
11.如权利要求10所述的方法,其中对P帧、B帧和P帧与B帧的组合之一执行将运动矢量变换为所述全像素运动矢量的步骤。
12.一种可编程的视频解码系统,包括可变长度解码器(VLD)(40),用于接收和解码具有与之相关的运动矢量的MPEG视频信号流,所述VLD(40)用于从所述解码的MPEG视频信号中输出量化的数据;复杂性选择器(52),用于从所述解码的MPEG视频信号中检测运动矢量类型和将所述检测到的运动矢量变换为全像素运动矢量;逆量化器(IQ)(42),被耦合来接收所述VLD(40)的输出,以便可操作地逆量化其中接收的量化数据;离散余弦逆变换器(IDCT)(44),耦合到所述IQ的输出,用于将逆量化的数据从频域变换到空间域;运动补偿器(MC)(48),被耦合到所述复杂性选择器的输出,用于执行全像素运动补偿,而不考虑运动矢量的类型;和加法器(46),用于从所述MC(48)和所述IDCT(44)接收输出信号,以形成运动补偿的图像。
13.如权利要求12所述的系统,其中所述运动矢量类型包括四个之一像素运动矢量、半像素运动矢量和分数像素运动矢量之一。
14.如权利要求12所述的系统,其中所述复杂性选择器通过将奇数矢量修整为最接近的偶数矢量来将运动矢量变换为所述全像素矢量。
15.如权利要求10所述的系统,其中所述复杂性选择器对其中接收的P帧、B帧和P帧与B帧的组合之一将运动矢量变换为所述全像素矢量。
全文摘要
提供用于在解码处理期间通过按比例缩小运动补偿的计算量来降低MPEG数字视频解码器系统的计算复杂性的方法和系统。该视频处理系统处理输入MPEG视频信号,其包括具有与其相关的运动矢量的多个宏块。通过将奇数矢量修整为最接近的偶数矢量,在P帧和B帧上或在P帧与B帧的组合上将非全像素矢量变换为全像素运动矢量。然后,基于变换的全像素运动矢量来执行运动补偿MPEG视频图像。结果,如所希望地避免了与内插相关的大量计算开销。
文档编号H04N7/30GK1589576SQ02822850
公开日2005年3月2日 申请日期2002年10月25日 优先权日2001年11月16日
发明者T·-H·兰, Y·陈 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1