视频序列代码转换的运动矢量外推法的制作方法

文档序号:7585567阅读:265来源:国知局
专利名称:视频序列代码转换的运动矢量外推法的制作方法
技术领域
本发明通常涉及视频序列代码转换的运动估计,特别是用于代码转换接收的视频序列的技术,其通过利用来自接收的视频序列中的外推的运动信息而减少或消除代码转换过程的运动估计。
背景技术
数据压缩技术能使大量的数据在相对小的频宽上传输。压缩系统中所用算法取决于可能的频宽或存储容量,应用所要求的功能,和实现压缩算法(编码器和译码器)所要求的硬件的花费。特此一并引用的运动图像专家组-2类(“MPEG-2”)压缩标准,是著名的视频数据压缩技术。运动估计,其为用于计算运动矢量的过程视频编码器,通常被认为是编码过程的最昂贵部件。类似地,运动估计有可能是代码转换过程的最昂贵部件,代码转换过程译码视频序列,然后用新参数将之重新编码。随着高清晰度电视(“HDTV”)的出现,由于要求电视演播室能把MPEG-2图像数据位流从一种格式代码转换成另一种,这就更为关注。例如,提供HDTV标准的电视演播室必须能够把MPEG-2位流从一组图像(“GOP”)结构代码转换成另一种,从一种图像尺寸代码转换成另一种,和/或从一种位速率代码转换成另一种。有实例要求演播室能把MPEG-2图像从场图像代码转换成帧图像,或从帧图像代码转换成场图像。也有实例要求演播室能把MPEG-2图像从隔行序列代码转换成逐行序列,或从逐行序列代码转换成隔行序列。代码转换也可用于完成“修剪”功能,其中输入代表主图像,代码转换后的输出代表主图像中的子图像。
发明简述因此,本发明的目的为提供一种视频序列代码转换技术,其减少或消除了运动估计。
本发明的另一目的为提供一种视频序列代码转换技术,其中来自输入位流中的运动信息被用来为代码转换的输出位流产生运动矢量。
本发明的另一目的为提供一种用于代码转换过程的运动估计技术,其支持MPEG-2所有的预测模式。
通过接收具有可识别编码参数的压缩图像数据的第一位流可完成本发明的代码转换方法,依照其原理,可取得以上这些和其它目的。这些参数可能涉及在第一位流中所表示的图像的GOP结构,在第一位流中所表示的图像的尺寸,在第一位流中所表示的图像是场图像还是帧图像,和/或在第一位流中所表示的图像定义了一个逐行序列还是一个隔行序列。第一运动信息从第一位流中获得,并用来为第二压缩图像数据位流外推第二运动信息。第二位流,其与第一位流有一个或更多的参数不同,被当作代码转换的输出。
附图简述通过参照附图对下面进行详述,本发明更为完整的理解和其中许多附带优点将逐步明晰化,其中

图1表示运动矢量外推法的基本原理;图2表示按照本发明原理构造的代码转换系统;图3表示按照本发明原理把图像从一种GOP结构代码转换成另一种的过程;和图4表示运动矢量外推法的一般例,当应用于代码转换时能够用来更好地理解运动矢量外推法。
发明详述现在转向附图,参考图1,其中表示了运动矢量外推法的基本原理。通常,运动矢量外推法是一种当运动在视频序列的其它处已知时,估计序列中图像运动的技术。在图1中,图像B中的粗体方块代表视频图像中独立的像素(pixel,也叫pels)块。图像中的每一个块假定具有一固定位置。在MPEG-2中,这些块被称为“宏块”,且每个块由16×16的像素块组成。图1中的实线箭头代表粗体块从图像A移到图像B时其已知的运动。实际上,正是块中的成象移动,而不是其位置固定的块本身移动。由运动矢量定义的该已知运动,当从图像B移到图像C时被用来外推块的运动。图1中的虚线箭头代表外推的运动矢量。由于图1(和其它附图)使用更为普通的编码协定,其中与一个块相关的矢量指向那个块在参考图像中的“源处”,所以图1中的箭头实际指向运动的相反方向。实际上,给定的运动矢量被表示为x和y座标的集合,其分别代表两图像之间块的水平和垂直运动。外推法通常假设运动在时间上是一致的,在空间上是“平滑”的。相应地,图像B中的块被期望移动到图像C中所示位置,与之交迭的所有的块被期望具有近似的相同运动。
现在参考图2,其中表示了按照本发明原理构造的代码转换系统。在图2中,代码转换系统200接收MPEG-2压缩图像数据的输入位流201。呈现特殊位速率的输入位流201代表具有给定尺寸和GOP结构的图像。输入位流201的图像数据由场或帧图像组成,也可表示逐行的或隔行的序列。在本技术领域众所周知的MPEG-2译码器202接收输入位流201并将其译码以产生压缩的数字图像数据203的输出。译码器202也从输入位流201提供运动信息(即运动矢量)作为单独的输出204。数字图像数据203输入到中间处理单元205,其在像素域内进行操作,能够以众所周知的方法为数字图像数据203表示的图像重定大小。除为图像重定大小之外,中间处理单元205,通过分离由数字图像数据203表示的主图像中的子图像和提供代表子图像数据的输出,能完成众所周知的修剪功能。中间处理单元205也能够执行众所周知的隔行和去隔行操作,其在把图像的逐行序列代码转换成图像的隔行序列时,和把图像的隔行序列代码转换成图像的逐行序列时是很有必要的。中间处理单元205执行其操作以响应外部输入206,其指示哪一个处理操作(如果有的话)将要完成,并且进一步指出用于这样的处理中的参数。因为中间处理单元205的操作是任选的,如果对于给定的代码转换应用,图像重定大小,修剪,隔行和去隔行勿需执行,中间处理单元205简单地以直通单元的方式进行操作,不经任何像素域处理地输出数字图像数据207。在该情况下,数字图像数据207与数字图像数据203明显相同。或者,如果一个或更多个这些处理操作被用来完成给定的代码转换应用,中间处理单元205进行像素域的处理操作和输出处理的结果数字图像数据207。数字图像数据207,无论是否经由中间处理单元205处理,输入到MPEG-2编码器208,其使用由外部输入209指示的新参数来重编码接收的图像数据207。例如,编码器208可编码数字图像数据207以表示与由输入位流201所表示的不同的GOP结构图像,并且/或者可以调整位速率。编码器208也可把数字图像数据207编码为场或帧图像。为了执行编码处理,编码器208使用译码器202的输出204中的运动信息来外推被重新编码的图像的运动矢量。其后,被重新编码的图像从代码转换系统200作为MPEG-2压缩数字图像数据的输出位流210提供。
如前所示,该输出位流210可表示与输入位流201不同的图像尺寸和GOP结构,并且可控制输出位流210的位速率不同于输入位流201的位速率。而且,输出位流210可表示场图像而输入位流201表示帧图像,或输出位流210表示帧图像而输入位流201表示场图像。类似地,输出位流210可表示隔行序列而输入位流201表示逐行序列,或输出位流210表示逐行序列而输入位流201表示隔行序列。而且,输出位流210可表示输入位流201的“修剪”版本。本质上,代码转换系统200接收具有某些参数的输入位流201,并代码转换输入位流201以产生具有不同于输入位流201的一个或更多参数的输出位流210。该代码转换系统200是独一无二的,因为其使用输入位流201中的运动信息来外推输出位流210的运动信息。
现在转向图3,其中表示了按照本发明原理把图像从一种GOP结构代码转换成另一种的过程。在图3中,输入位流表示具有某种GOP结构的图像,该结构为内编码图像(“I图像”),双向预测编码图像(“B图像”),B图像,预测编码图像(“P图像”)。即,输入位流代表一个“IBBP”GOP结构。如图3所示,输入位流的两个连续B图像,为清楚起见被标为B1和B2。该输入位流类似于图2中的输入位流201。在代码转换处理期间,具有“IBBP”GOP结构的输入位流被转换成具有“IPPP”GOP结构的输出位流。如图3所示,输出位流的三个连续P图像,为清楚起见被标为P1,P2和P3。该输出位流类似于图2中的输出位流210。为减少混乱性,构成单独图像的宏块未示于图3中。为了完成代码转换处理,输入位流中的I-P和P-B2运动矢量被用来外推输出位流的运动矢量。例如,如图3所示,可利用输入位流中的I-P运动矢量来估计输出位流的P1-P2运动矢量。类似地,可利用输入位流中的P-B2运动矢量来估计输出位流的P2-P3运动矢量。
本发明的运动矢量外推过程的更为详尽的解释将参考图4给出,该图表示了视频序列中的四个图像。从概念上说,这四个图像既存在于输出位流中也存在于输入位流中,并且实际上这就是通常的情形。图4中,在任何情况下,图像T为“目标”图像,其相对图像R的运动将要被确定。这两个图像都将出现于输出位流。图像KR与图像KT为其相对运动在输入位流中已知的图像。按照本发明原理,可利用图像KR与图像KT之间的已知运动来外推输出位流的运动矢量。图像KR与图像KT被称为“基对”,且图像R与图像T被称为“当前对”。几个基对可用于估计当前对的运动。通常,任何时间上接近当前对的基对,对该目的都有潜在的利用价值。
在代码转换过程期间,存在情况其中图像T的某些块不接收运动外推信息。即,存在这样的情况其中图像T的某些块不为附近基对中任何块的运动所交迭。图像T中这样的块可能简单地为内编码的,或其运动可以传统的方式进行计算。或者,可从附近块推断或内插这些块的运动。然而在大多数情况下,基对中的几个块将与图像T中大多数块交迭,则所执行的任务是要从几个候选运动矢量中选出最佳运动矢量。基对中每一个交迭块提供一个候选运动矢量。当在多个候选运动矢量中进行选择时,对每个运动矢量进行加权,并选择具有最大权重的运动矢量是十分有用的。以图4的图像为例,计算出的每个候选运动矢量(MV)的权重如下所示总权重(MV)=(交迭权重)×(图像权重)×(舍入权重) ………(1)其中,交迭权重=(与图像T对应的块中像素交迭的图像KT的块中像素的数目)………(2)图像权重=1/[1+abs(时间权重)]……………………………………(3)其中,时间权重(temporal weight)=(tKT-tKR)×[(tKR+tKT)-(tT+tR)]……………(4)并且,舍入权重=[1-(水平舍入误差)]×[1-(垂直舍入误差)] ……(5)在上面的方程(1)到(5)中,tKR,tKT,tR和tT分别代表图像KR,KT,R和T的显示次数。术语×和abs分别代表乘法操作符和取绝对值表达式。水平和垂直舍入误差当外推的矢量舍入到近半个像素时才出现,并且相应地,每个从0到1/2取值。尽管方程(1)到(5)被用于图4的图像中,但把这些通用方程用于其它图像配置是极其自然的。
除简单地挑选具有最大权重的候选运动矢量的技术之外,本发明涵盖其它获得给定块最佳运动矢量的方法。按照可选实施例,可计算加权平均,其中利用方程(1)到(5)计算权重。利用这些权重,在分量的基础上通过把权重乘以对应运动矢量的x或y分量来产生加权分量,对加权分量取和,并把加权分量之和除以权重之和来计算最佳运动矢量。
上面的加权平均技术也可在“簇”的基础上进行。即,如果候选运动矢量的x-y标图显示了多于一个的运动矢量簇(即接近分组),可计算出每个簇的最佳运动矢量。此为质心,或簇的“质量中心”。然后可从单独簇的最佳运动矢量中挑选出最终的最佳运动矢量。
需注意也可完全不使用加权来从多数候选运动矢量中挑选最佳运动矢量。例如,可计算表示块之间像素偏差的均方误差(MSE)或平均绝对偏差(MAD)来识别最佳运动矢量。当然,MSE和MAD计算是该领域公知的技术。
下面列在表1中的算法表示对目标图像(如图4的图像T)的每个可能预测模式查找最佳运动矢量的步骤。以伪代码表示的这些步骤,可以以该领域公知的任何编程语言来编程。
表1查找最佳运动矢量的伪代码-对于为目标图像(当前对)考虑的每个预测模式-对于可应用模式(顶场,底场,帧)的每一场或帧-初始化由目标图像中块索引的表-对于被认为对当前对有用的每一个基对(例如,一个基对通常被认为是“有用”的,如果其时间上是在预定范围内附近)-对于基对目标中每个内编码块的每个运动矢量-确定矢量在目标图像中把块移到何处-计算矢量的权重,或评估其匹配(例如MSE,MAD)-在相关目标图像块的表入口中存储信息-对于目标图像中每一个块-确定场或帧的最佳运动矢量-对于目标图像中每一个块-确定最佳预测模式和相应的运动矢量注意多个运动矢量都与某些预测模式中的给定块相关,诸如帧图像的场预测和P图像的DP(dual prime)预测。而且,对于B图像,编码器必须为每个块决定是使用前向预测,后向预测还是两者都使用。在某些情况下无一预测模式能产生可接受的结果。这种情况出现在没有候选运动矢量时,或按上面技术之一确定的最佳运动矢量对特定应用不够好时。另外,存在情况其中编码器能简单地把输入序列中的运动矢量(未改变的)用于输出序列。
假定在图4中使用不带重定大小的帧图像的帧预测。假设图像KT中的一个块具有相关的矢量vK,则图像T中一个或更多块具有如下定义的相关矢量vv=Tv×vK ………………………………………………………………(6)其中,Tv=(tT-tR)/(tKT-tKR)………………………………………………(7)此处,Tv为矢量的时间比例因子,而tKR,tKT,tR和tT分别表示图像KR,KT,R和T的显示次数。对于其场以不同次数显示的帧图像,存在显示次数的不明确。在这种情况下,次数应为各自场的平均值。为了跟踪一个块从图像KT到图像T的运动,考虑特定块左上角的某一点。在图4中,该点表示为图像KT中的点qK和图像T中的点q。点q的运动由下式给出q=qK-(Tb×vK)…………………………………………………………(8)其中,Tb=(tT-tKT)/(tKT-tKR) ……………………………………………(9)在含有重定图像大小的代码转换过程中,图像KR和KT与图像R和T具有不同的大小。重定大小如下所示。令Rx和Ry分别代表图像的水平和垂直放大。即Rx=(图像T的宽度)/(图像KT的宽度) ………………………………(10)和,Ry=(图像T的高度)/(图像KT的高度) ………………………………(11)图像重定尺寸要求修改方程(6)和(8)如下v=R(Tv×vK)……………………………………………………………(12)和,q=R(qK-(Tb×vK)) ……………………………………………………(13)前面的方程引入了符号R(V)=(Vx×Rx,Vy×Ry)………………………………………………(14)此处V为一两分量点(像素)或矢量。注意R代表不同的图像尺寸,而不是不同的块尺寸。
重定尺寸不但应用于重定大小的图像,也应用于相关的场和帧图像和相关的场和帧预测。为了完成(场和帧图像两者的)场预测,注意底场比其座标所指示的要低0.5个像素。一个场或帧图像的置换矢量dX如下定义dX=(0,0)若X为顶场或顶帧 ………………………………………(15)和,dX=(0,0.5)若X为底场……………………………………………(16)将此应用于方程(12)和(13),v和q的新方程将变为v=R(Tv×(vK+dKR-dKT))+dT-dR……………………………………(17)和,q=R(qK+dKT-[Tb×(vK+dKR-dKT)])-dT……………………………(18)因此,实际用于本发明的最后方程为方程(7),(9)和(14)到(18)。
最后,假设图2的中间处理单元205修剪图像。可如下应用以上方程。我们考虑图像R和T与原来的尺寸相同,在适当的位置输出图像嵌入其中。该位置定义了影响区域。只有与影响区域交迭的块才用于外推法。则图1到图4,以及从之导出的方程可应用于该情况。
以上所公开的可间接表明同质性;即如果图像T为利用基于场预测的帧图像,则图像KT也为利用基于场预测的帧图像。然而以上所讨论的公式更为通用,如以下例子所示。
假设图像T利用基于帧的预测,而图像KT利用基于场的预测。在本发明中,图像KT为场图像还是为帧图像是无关紧要的。在任一情况下,图像KT的运动矢量为基于场的,所以Ry=2且Rx=1。如果图像KT为帧图像,其块大小为16×8;然而对前面的公式而言,那是显而易见的。如果一个块使用16×8预测,则其两个的半块应对待为两个单独的块。
下一步假设图像T和图像KT皆使用基于场的预测。这里,由于两个图像中的矢量参考同尺寸的图像,不需重定大小并且Rx=Ry=1。即在本发明的实际例中,是存在场和帧图像的混合,还是存在场和帧预测的混合对这些方程而言是不相关的。
如以上公开所隐含的,若图像KT中的一个块使用DP(dual prime),则分别地应用其两个矢量,或许具有不同的权重。而且评估图像T的DP与评估图像T的双向内插十分相似。即分别地评估每一个矢量,然后评估其组合。相应地,本发明支持所有的MPEG-2预测模式帧图像的帧、场和DP预测;和场图像的场、DP预测和16×8预测。
值得注意的是这里所公开的方程通常是考虑线性运动的,而不是非线性运动的情形。例如非线性运动可能源自照相机的晃动或图像中物体的一致加速。非线性运动这样的例子可按如下的方法处理。对于与照相机晃动相关的非线性运动,可期望在比较块运动之前析出全局运动因子。公知的MSE和MAD计算可用于该目的。对于与物体一致加速相关的非线性运动,可期望利用三个图像,而不是两个来外推该运动。
当已表示和描述了本发明优选实施例后,本领域技术人员应理解在不脱离本发明的真正范围情况下,所作出的各种变化和修改及其等价形式可替代其中的单元。另外,在不脱离本发明的中心范围情况下,可作出许多修改。因此,这不意味着本发明受限于所公开的执行该发明最佳模式的特殊实施例,而意味着本发明包括落入所附权利要求范围内的所有实施例。
权利要求
1.一种代码转换方法,包括下列步骤接收具有第一GOP结构的压缩图像数据的第一位流;从第一位流获得第一运动信息;利用第一运动信息来外推压缩图像数据第二位流的第二运动信息,该压缩图像数据具有与第一GOP结构不同的第二GOP结构;和提供第二位流的输出。
2.如权利要求1所述的方法,进一步包括步骤控制第二位流的位速率以使第一位流的位速率与第二位流的位速率不同。
3.如权利要求1所述的方法,进一步包括步骤调整由第一位流表示的图像的尺寸以使第二位流表示的图像呈现的尺寸与第一位流表示的图像的尺寸不同。
4.如权利要求2所述的方法,进一步包括步骤调整由第一位流表示的图像的尺寸以使第二位流表示的图像呈现的尺寸与第一位流表示的图像的尺寸不同。
5.如权利要求4所述的方法,进一步包括步骤当第一位流表示的图像被编码为帧图像时,把第二位流表示的图像编码为场图像。
6.如权利要求4所述的方法,进一步包括步骤当第一位流表示的图像被编码为场图像时,把第二位流表示的图像编码为帧图像。
7.如权利要求4所述的方法,进一步包括步骤当以逐行序列接收第一位流表示的图像时,隔行第一位流表示的图像,以使第二位流表示的图像以隔行序列输出。
8.如权利要求4所述的方法,进一步包括步骤当以隔行序列接收第一位流表示的图像时,去隔行第一位流表示的图像,以使第二位流表示的图像以逐行序列输出。
9.如权利要求1所述的方法,进一步包括步骤当第一位流表示的图像被编码为帧图像时,把第二位流表示的图像编码为场图像。
10.如权利要求1所述的方法,进一步包括步骤当第一位流表示的图像被编码为场图像时,把第二位流表示的图像编码为帧图像。
11.如权利要求1所述的方法,进一步包括步骤当以逐行序列接收第一位流表示的图像时,隔行第一位流表示的图像,以使第二位流表示的图像以隔行序列输出。
12.如权利要求1所述的方法,进一步包括步骤当以隔行序列接收第一位流表示的图像时,去隔行第一位流表示的图像,以使第二位流表示的图像以逐行序列输出。
13.一种代码转换方法,包括下列步骤接收压缩图像数据的第一位流,该压缩图像数据表示第一尺寸图像;从第一位流获得第一运动信息;利用第一运动信息来外推压缩图像数据第二位流的第二运动信息,该压缩图像数据具有与第一尺寸图像不同的第二尺寸图像;和提供第二位流的输出。
14.一种代码转换方法,包括下列步骤接收压缩图像数据的第一位流,该压缩图像数据表示定义为隔行序列的图像;从第一位流获得第一运动信息;利用第一运动信息来外推压缩图像数据第二位流的第二运动信息,该压缩图像数据表示定义逐行序列的图像;和提供第二位流的输出。
15.一种代码转换方法,包括下列步骤接收压缩图像数据的第一位流,该压缩图像数据表示定义逐行序列的图像;从第一位流获得第一运动信息;利用第一运动信息来外推压缩图像数据第二位流的第二运动信息,该压缩图像数据表示定义为隔行序列的图像;和提供第二位流的输出。
16.一种代码转换方法,包括下列步骤接收压缩图像数据的第一位流,该压缩图像数据表示帧图像;从第一位流获得第一运动信息;利用第一运动信息来外推压缩图像数据第二位流的第二运动信息,该压缩图像数据表示场图像;和提供第二位流的输出。
17.一种代码转换方法,包括下列步骤接收压缩图像数据的第一位流,该压缩图像数据表示场图像;从第一位流获得第一运动信息;利用第一运动信息来外推压缩图像数据第二位流的第二运动信息,该压缩图像数据表示帧图像;和提供第二位流的输出。
18.一种代码转换方法,包括下列步骤接收压缩图像数据的第一位流,该压缩图像数据表示主图像;从第一位流获得第一运动信息;利用第一运动信息来外推压缩图像数据第二位流的第二运动信息,该压缩图像数据表示主图像的一部分;和提供第二位流的输出。
19.一种代码转换方法,包括下列步骤接收压缩图像数据的第一位流,该压缩图像数据具有多个编码参数,含有GOP结构,图像尺寸,位速率,帧或场图像格式,逐行的或隔行的序列;从第一位流获得第一运动信息;利用第一运动信息来外推压缩图像数据第二位流的第二运动信息,该压缩图像数据具有多个的编码参数,如此有一个或更多个第二位流的编码参数与第一位流的编码参数不同;和提供第二位流的输出。
全文摘要
一种代码转换方法,通过接收具有可识别编码参数的压缩图像数据的第一位流来执行。这些参数涉及第一位流所表示图像的GOP结构,第一位流所表示图像的尺寸,第一位流所表示的图像是场图像还是帧图像,和/或第一位流所表示的图像定义了一个逐行序列还是一个隔行序列。第一运动信息从第一位流中获得,并用来外推压缩图像数据第二位流的第二运动信息。第二位流,其具有与第一位流不同的一个或多个参数,被用作代码转换后的输出。
文档编号H04N7/32GK1293872SQ99804176
公开日2001年5月2日 申请日期1999年2月2日 优先权日1998年2月20日
发明者斯图尔特·J·戈林 申请人:汤姆森特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1