对交错数字视频的双向预测的视频目标平面的预测和编码的制作方法

文档序号:6421712阅读:94来源:国知局
专利名称:对交错数字视频的双向预测的视频目标平面的预测和编码的制作方法
技术领域
本发明涉及一种方法及其装置,用于对诸如双向预测视频目标平面(B_VOPs)的数字视频图像进行预测和编码,特别是其中用来对B-VOP编码的B-VOP和/或参考图像是交错编码的。
背景技术
本发明特别适用于各种多媒体设备,并且与可供本文参考的名称为“MPEG-4 Video Verification Model Version 8.0”,Stockholm,July 1997的ISO/IEC/JTC1/SC29/WG11/N1796文献中说明的MPEG-4 Verification Model(VM)8.0标准(MPEG-4 VM 8.0)兼容。在可供本文参考的名称为“InformationTechnology-Generic Coding of Moving Pictures and AssociatedAudio,Recommendation H.262”1994年3月25日的ISO/IEC 13818-2文献中说明的MPEG-2标准是这种MPEG-4标准的前身。
MPEG-4是一种编码标准,它为数字音像数据的通信,存取和操作提供了一种灵活的结构和开放的编码工具。这些工具可以支持许多特性。MPEG-4的灵活性结构可以支持编码工具的各种组合及其在计算机,电信和文化(TV和电影等)市场中需要的有关功能,例如数据库浏览,信息提取,以及相互通信等等。
MPEG-4提供了标准的核心技术,可以在多媒体环境中有效地存储,传输和控制视频数据。MPEG-4可以有效地实现压缩,目标可放缩性,空间和时间的可放缩性,以及错误的弹性。
MPEG-4视频VM编码/解码器(codec)是一种具有运动补偿的基于字块和目标的混合编码器。利用重叠的字块运动补偿用8×8的离散余弦变换(DCT)对纹理进行编码。用一种字母图来表示目标形状,并且采用一种Content-based Arithmetic Encoding(CAE)算法或是改型的DCT编码器进行编码,二者均采用了时间预测。这种编码器可以处理从计算机曲线获得的子画面。在具体应用中也可以使用诸如子波和子画面编码的其他编码方法。
运动补偿的纹理编码是视频编码的一种公知方法,它可以被视为一种三步程序。第一步是信号处理,其中包括运动估算和补偿(ME/MC)和一种二维(2-D)空间变换。ME/MC和空间变换的目的是为了利用视频序列中的时间和空间坐标的优点,在复杂的限制下对量化和熵编码的速率失真特性进行优化。目前普遍用于ME/MC的技术是字块匹配,最普遍的空间变换方式是DCT。
然而,如果MB本身是交错编码的,以及/或是使用了交错编码的参考图像,就会出现对B-VOP中的宏模块(MB)的ME/MC的重要影响。
特别是需要具有一种有效的技术为B-VOP中的MB提供运动矢量(MV)预测。此外还需要有一种有效的技术用于对B-VOP中的场编码的MB进行直接式编码。另外还需要有一种用于场编码B-VOP中的一个MB的编码方式决定程序,以便选择能够产生最有效的编码的参考图像。
本发明提供了一种具有上述和其他优点的系统。

发明内容
按照本发明提供了一种方法和装置,用于对双向预测视频目标平面(B-VOP)中的数字视频图像进行编码,例如一种当前图像(例如宏模块),特别是其中的当前图像和/或用来对当前图像进行编码的参考图像是交错(例如场)编码的。
按照本发明的第一方面,一种方法为一系列数字视频图像中当前的双向预测场编码图像提供了直接式运动矢量(MV),例如具有顶场和底场的一个宏模块(MB)。具有顶场和底场的一个过去场编码参考图像和具有顶场和底场的一个未来场编码参考图像被确定。未来的图像是用过去的图像来预测的,使得未来图像的顶场中前向的MV即MVtop参考上述过去图像的顶场或底场。被参考的场包含一种最佳匹配MB,它被用作未来图像的顶场中的MB。
这种MV被定义为“前向”MV,因为尽管它参考了过去的图像(也就是过去的时间),但是根据过去的图像对未来的图像也就是前向的时间作出了预测。作为一种记忆,预测方向可以被认为是相应MV的相反方向。
同样,未来图像的底场的前向运动矢量MVbot参考过去图像的顶场或是底场。通过对与未来图像的场相对应的前向MV定标来确定前向和反向MV,以便预测当前图像的顶场和/或底场。
特别是用于预测当前图像顶场的前向运动矢量MVf,top是按照公式MVf,top=(MVtop*TRB,top)/TRD,top+MVD来确定的,其中的MVD是一个检索区域的增量运动矢量,TRB,top对应着当前图像的顶场和供MVtop参考的过去图像的场之间的时间间隙,TRD,top对应着未来图像的顶场和供MVtop参考的过去图像的场之间的时间间隙。这种时间间隙可能与图像显示的帧速率有关。
与此类似,用于预测当前图像底场的前向运动矢量MVf,bot是按照公式MVf,bot=(MVbot*TRB,bot)/TRD,bot+MVD来确定的,其中的MVD是一个增量运动矢量,TRB,bot对应着当前图像的底场和供MVbot参考的过去图像的场之间的时间间隙,TRD,bot对应着未来MB的底场和供MVbot参考的过去MB的场之间的时间间隙。
当增量运动矢量MVD=0时,用于预测当前MB顶场的反向运动矢量MVb,top是按照公式MVb,top=((TRB,top-TRD,top)*MVtop)/TRD,top来确定的,或是当MVD≠0时,MVb,top=MVf,top-MVtop。
当增量运动矢量MVD=0时,用于预测当前MB底场的反向运动矢量MVb,bot是按照公式MVb,bot=((TRB,bot-TRD,bot)*MVbot)/TRD,bot来确定的,或是在MVD≠0时,MVb,bot=MVf,bot-MVbot。
还有一个相应的解码器。
按照本发明的另一方面提供了一种方法,用于在一系列数字视频MB中为当前预测的具有顶场和底场的场编码MB选择一种编码方式。该编码方式可以是反向方式,其中的参考MB在时间上处在显示次序中的当前MB之后,前向方式,其中的参考MB在时间上处于当前MB之前,或是平均(例如双向)方式,在其中使用参考MB前、后的平均值。
该方法包括一个为相对于过去参考MB的当前MB确定绝对差分误差的前向总和SADforward,field的步骤,该步骤对应着前向编码方式。SADforward,field表示当前MB和过去参考MB中的最佳匹配MB之间的象素亮度值误差。同时还要为相对于未来参考MB的当前MB确定绝对差分误差的反向总和SADbackward,field,该步骤对应着反向编码方式。SADbackward,field代表当前MB和未来参考MB中的最佳匹配MB之间的象素亮度值误差。
还要为关于过去和未来参考MB的平均值的当前MB确定绝对差分误差的平均值总和SADaverage,field,该步骤对应着平均编码方式。SADaverage,field代表当前MB与过去和未来参考MB的最佳匹配MB的平均值MB之间的象素亮度值误差。
编码方式是按照SAD最小的原则来选择的。在编码方式选择程序中还可以引入构成各种编码方式中所需的MB数量的偏置项。
SADforward,field,SADbackward,field和SADaverage,field是通过将顶场和底场的各分量项目相加来确定的。


图1是按照本发明的一种视频目标平面(VOP)编码和解码程序的示意图。
图2是按照本发明的一个编码器的框图。
图3表示用于半象素检索的一种内插方案。
图4表示按照本发明的一种交错编码B-VOP的顶场的直接编码方式。
图5表示按照本发明的一种交错编码B-VOP的底场的直接编码方式。
图6表示在按照本发明的一种自适应帧/场预测方案中重新排列象素线的方法。
图7是按照本发明的一个解码器的框图。
图8表示按照本发明的一种宏字块层次结构。
具体实施例方式
因此,此处用术语″VOP″来代表随机或是非随机的(即矩形的)图形数据形状。采用公知的技术获得一种区段时标,并且其格式与ITU-R 601亮度数据类似。每个象素被看作是属于视频帧内的某一区域。
帧105和来自帧115的VOP数据被提供给独立的编码功能。具体地说,VOP117,118和119分别在编码器137,138和139中经过形状,运动和纹理编码。在形状编码中用二进制和灰色色度形状信息进行编码。在运动编码中用一帧之内的运动估算值对形状信息进行编码。在纹理编码中执行DCT一类的局部变换,从中获得一种变换系数,可以改变编码的长度以便于压缩。
然后用一个多路复用器(MUX)140来组合编码的VOP数据,以便通过信道145中进行传输。或者是可以将数据存储在记录媒体上。用一个多路分解器(DEMUX)150来分离接收的编码VOP数据,从而对分离的VOP117-119进行解码和恢复。帧155,165和175分别表示经过解码和恢复的VOP117,118和119,并且可以用一个与视频库170接口的合成器160进行独立的操作。
合成器160例如可以是一台个人计算机,它被放在用户的房间中,用户可以用它对接收的数据进行编辑,从而提供需要的图像。例如,用户的私人视频库170中可能包括先前存储的与接收的VOP不同的VOP 178(例如一个圈)。用户可以用圆圈VOP178代替正方形VOP117来组成一个帧185。这样的帧185包括接收的VOP118和119以及在本地存储的VOP178。
在另一个例子中,背景VOP109可以被用户选择的背景来代替。例如,在观看电视新闻广播时,广播可以编码成与例如新闻播音室等等背景分离的VOP。用户可以从视频库170或是其他电视节目中选择一种背景,例如商品价格或是天气信息的频道。用户可以象视频编辑人员那样进行操作。
视频库170还可以存储通过频道145接收的VOP,并且可以通过Internet一类的网络访问VOP和其他图像设备。总之,这种视频对话包括单个VOP或是顺序的VOP。
图1的视频物体编码和节目程序适用于许多表演,商业和教育用途,这其中包括个人计算机游戏,假想环境,图文用户接口,电视会议,Internet用途等等。本发明特别是为具有交错编码的(例如场模式)VOP的ME/MC功能提供了更强的能力。
图2是按照本发明的一个编码器的框图。该编码器适用于预测编码的VOP(P-VOP)和双向编码的VOP(B-VOP)。
P-VOP可以包括许多宏字块(MB),它们可以用帧内模式或是帧间模式单独地编码。在采用帧内(INTRA)编码时,宏字块(MB)的编码不参考其他的MB。在采用帧间(INTER)编码时,MB是按照称为前向预测的模式相对于暂态的后续帧进行差分编码的。暂态的后续帧被称为固定帧或是参考帧。固定帧(例如VOP)必须是P-VOP或是I-VOP,而不能是B-VOP。一个I-VOP包括内部的(例如内部编码的)字块,它不是预测的编码。
在前向预测中,将当前的MB与固定帧内的一个检索区的MB进行比较,从中确定最佳的匹配。被称为反向MV的一个对应的运动矢量(MV)代表当前MB相对于最佳匹配MB的位移。另外还可以对P-VOP使用超前预测模式,在8×8字块上而不是16×16M上执行运动补偿。另外,帧内和帧间编码的P-VOP MB都可以用帧模式或是场模式进行编码。
B-VOP可以与P-VOP相联系地使用上述的前向预测模式以及反向预测,双向预测和直接模式,这些模式都是帧内的技术。按照目前还没有改变的MPEG-4 VM 8.0,B-VOP不使用帧内编码的MB。固定帧(例如VOP)必须是P-VOP或是I-VOP,而不能是B-VOP。
在反向预测B-VOP时,将当前的MB与前面的暂态固定帧内的一个检索区的MB进行比较,从中确定最佳匹配的MB。被称为前向MV的一个对应的MV代表当前MB相对于最佳匹配MB的位移。对于双向预测的B-VOPMB来说,将当前的MB与前面的暂态固定帧内的和后面的暂态固定帧内的一个检索区的MB进行比较,从中确定最佳匹配的MB。前向和反向MV代表当前MB相对于最佳匹配MB的位移。另外,从最佳匹配的MB中获得一个平均图像,在当前MB的编码中使用。
对于B-VOP的直接模式预测来说,如果在P-VOP后面收集到的MB采用了8×8超前预测模式,就从8×8的字块中推导出一个MV。P-VOP中的8×8字块MV是线性定标的,以便获得B-VOP中的字块的的一个MV,而不需要通过检索来寻找最佳匹配的字块。
用200表示的编码器包括一个形状编码器210,一个运动估算函数220,一种运动补偿函数230,以及一个纹理编码器240,它们各自接收从端子205上输入的视频象素数据。运动估算函数220,运动补偿函数230,纹理编码器240以及形状编码器210还要接收从端子207上输入的VOP形状信息,例如一种MPEG-4参数VOP的随机形状。如果这一参数是0,VOP就是矩形的,此时不使用形状编码器210。
重组的固定VOP函数250提供了供运动估算函数220和运动补偿函数230使用的一种重组的固定VOP。在一个减法器260中从经过运动补偿的先前VOP中减去当前的VOP,剩下的部分在纹理编码器240中进行编码。纹理编码器240执行DCT,将纹理信息(例如变换系数)提供给多路复用器(MUX)280。纹理编码器240还向加法器270提供信息,将其与运动补偿器230的输出相加,并且输入到先前重组的VOP函数250。
运动估算函数220向MUX 280提供运动信息(即运动矢量),同时由形状编码函数210向MUX 280提供代表VOP形状的形状信息。MUX 280向一个缓冲器290提供相应的多路复用数据流,以便通过一个数据信道连续地进行通信。
输入到编码器的象素数据可以具有YUV 4∶2∶0的格式。利用矩形的边界来表示VOP。矩形边界的左上坐标被变成不大于中心矩形的左上坐标的最接近的偶数。与此相应,色度分量中的矩形边界的左上坐标是亮度分量坐标的一半。
图3表示用于半象素检索的一种内插方案。运动估算和运动补偿(ME/MC)通常包含使当前视频帧的字块(例如当前的字块)与参考帧的检索区中的一个字块(例如预测的字块或是参考字块)相匹配。对于预测(P)编码的图像,参考字块是前面的一帧。对于双向预测(B)编码的图像,可以使用前一帧和后一帧中的预测字块。预测字块相对于当前字块的位移就是运动矢量(MV),它具有水平(x)和垂直(y)的分量。MV分量的正值表示预测字块处在当前字块的右侧和下面。
运动补偿的不同字块是通过从当前的字块上逐点地减去预测字块的象素值而构成的。然后对不同的字块执行纹理编码。不同字块的编码的MV和编码的纹理信息被发送给解码器。然后由解码器根据MV在预测的字块上增加一个量化的不同字块,一半重组一个近似的当前字块。ME/MC的字块可以是16×16帧的字块(宏字块),8×8的字块,或是16×8场的字块。
MV的精度被设定在半个象素。在固定帧上必须采用内插,因此,用于x或y的p(i+x,j+y)被限定为一个整数的一半。内插是按照图3执行的。整数象素位置用符号″+″来表示,例如图中的A,B,C和D。半象素位置用圆圈来表示,例如a,b,c和d。在图中可见,a=A,b=(A+B)//2,c=(A+C)//2,d=(A+B+C+D)//4,其中的//代表圆形的分界。在可供本文参考的上述MPEG-4 VM8.0和1997年7月21日由Eifrig等人共同提出的名称为″Motion Estimation andCompensation of Video Object Planes for Interlaced Digital Video″的美国专利申请08/897847号中描述了这种内插方式的进一步细节。
图6表示按照本发明的一种自适应帧/场预测方案中的重新排列的象素线。按照超前预测方案的第一方面,采用自适应技术来确定当前宏字块(MB)的16×16象素是否需要照常进行ME/MC编码,或是应该被分成四个8×8象素的字块,其中的每个8×8字块是单独进行ME/MC编码的,或是应该使用基于运动估算的场,其中的MB象素线被重新排列,组成两个16×8场字块中的相同场的线,而每个16×8字块是分别进行ME/MC编码的。
用600表示一个场模式16×16宏字块(MB)。这一MB包括偶数的线602,604,606,608,610,612,614和616,以及奇数的线603,605,607,609,611,613,615和617。偶数和奇数线是交错的,并且分别构成顶场和底场(或是第一和第二场)。
如果图像600中的象素线被排列成同场的亮度字块,就形成了用650表示的MB。用645表示的箭头指出了重新排列的线602-617。例如,作为MB600的第一线的偶数线602也是MB 650的第一线。偶数线604被重新排列成MB 650的第二线。同样,偶数线606,608,610,612,614和616分别被排列成MB 650的第三到第八线。这样就形成了具有偶数编号的一个16×8亮度区域680。同样,用奇数线601,603,605,607,609,611,613,615和617形成16×8的区域685。
用来为P-VOP选择MC模式的决定程序如下。对于帧模式的视频,首先获得单个16×16 MB的绝对差之和(SAD),即SAD16(MVx,MVy);以及四个8×8字块的绝对差之和,即SAD8(MVx1,MVy1),SAD8(MVx2,MVy2),SAD8(MVx3,MVy3)和SAD8(MVx4,MVy4)。如果Σi=14SAD8(MVxi,MVyi)<SAD16(MVx,MVy)-129,]]>就选择8×8预测;否则就选择16×16预测。常数“129”是从Nb/2+1获得的,其中的Nb是一个MB中不透明的象素数量。对于交错视频,获得SADtop(MVx_top,MVy_top)和SADbottom(MVx_bottom,MVy_bottom),其中的(MVx_top,MVy_top)和(MVx_bottom,MVy_bottom)是顶场(偶数)和底场(奇数)的运动矢量(MV)。然后从半场采样检索中(例如为SADtop和SADbottom)选择出具有最小SAD的参考场。
整个预测模式决定基于从a,b和c中选择的最小值(a)SAD16(MVx,MVy),(b)Σi=14SAD8(MVxi,MVyi)+129]]>以及(c)SADtop(MVx_top,MVy_top)+SADbottom(MVx_bottom,MVy_bottom)+65。如果(a)项是最小的,就使用16×16预测。如果(b)项是最小的,就使用8×8运动补偿(超前预测模式)。如果(c)项最小,就使用基于运动估算的场。常数“65”是从Nb/4+1获得的。
如果选择了8×8预测,对于四个8×8亮度字块一共有四个MV,即每个8×8字块有一个MV。然后通过对这四个MV取平均值并且将平均值除以2而获得两个色度字块的MV。由于每个8×8亮度字块的MV具有半象素的精度,色度字块的MV可能具有十六个象素值。以下的表1说明了针对色度MV的十六象素值到半象素值的转换。例如0到2/16被舍入成0,3/16到13/16被舍入成1/2,14/16和15/16被舍入成2/2=1。
表1

对于场预测,每两个16×8字块有两个MV。亮度预测是这样产生的。MB的偶数线(即线602,604,606,608,610,612,614和616)是采用参考的规定用顶场MV来限定的。在帧坐标中规定了MV,因此,全象素的垂直位移相当于垂直MV坐标的偶数整数值,并且用奇数偶数值来代表半象素垂直位移。在采用半象素垂直偏差时,仅有同一参考场内的象素被组合在一起。
两个色度字块的MV是从(亮度)MV中推导出来的,将每个分量除以2,然后舍入。通过将所有分数值变换成一个半象素偏差对水平分量进行舍入。垂直MV分量是一个整数,并且将所得的色度MV垂直分量舍入成整数。如果被二除的结果是一个非整数值,就将其舍入成相邻的奇数整数。这一奇数整数值代表同一场的线之间的垂直内插。
未来预测技术的第二方面是在上文中提到的MPEG-4 VM 8.0和Eifrig等人的申请中已详细说明的用于亮度字块的重叠的MC。
以下要说明B-VOP的具体编码技术。对于B-VOP那样的INTER编码的VOP来说,一共有四种预测模式,也就是直接模式,内插(例如平均或是双向的)模式,反向模式,以及前向模式。后三种模式属于间接模式。单一的前向或是反向预测也被称为“单方向预测”。在各种模式中用不同的方式来确定B-VOP的预测字块。另外,B-VOP的字块和固定字块可以是逐步(例如逐帧)编码或是交错(例如逐场)编码的。
一个B-VOP中可以具有用不同模式来预测的不同的MB。术语“B-VOP”仅仅表示它可以包括双向预测的字块,但是这并不是必要的。与此相反,在P-VOP和I-VOP中不使用双向预测的MB。
对于间接模式B-VOP的MB,MV是差分编码的。对于前向和双向模式的前向MV以及反向和双向模式的反向MV,在同一行中紧接在当前MB前面的那个MB的“同类型”(例如前向或是反向)MV被用作预测值。这种情况与光栅次序中紧接在MB前面的情况相同,并且通常是在发送次序中。然而,如果光栅次序和发送次序不同,就应该使用发送次序中紧接在MB前面的MV,以免在解码器中需要存储和重组MB和相应的MV。
使用同类的MV,并且假设发送次序和光栅次序相同,而且光栅次序是从左到右,从上到下,把左邻MB的前向MV作为B-VOP中当前MB的前向MV的预测值。类似地,将左邻MB的反向MV作为B-VOP中当前MB的反向MV的预测值。然后使用这种预测值对当前MB的MV进行差分编码。也就是说,预测值和被确定为当前MB的MV之间的差作为一个运动矢量差被发送给解码器。在解码器中通过恢复并且将PMV和差MV相加来确定当前MB的MV。
如果当前的MB位于VOP的左侧边沿上,就将当前MB的预测值设定为零。
对于交错编码的B-VOP,在总共四个MV中,每个顶场和底场具有两个有关的预测运动矢量。在发送次序中,这四个预测MV代表前一个固定MB的前向顶场和前向底场以及下一个固定MB的反向顶场和反向底场。当前MB以及前向MB和/或当前MB以及反向MB被一或多个中间图像分开,这些图像不被用于当前MB的ME/MC编码。B-VOP不包含INTRA编码的MB,因此,B-VOP中的各个MB是ME/MC编码的。前向和反向固定MB可以来自一个P-VOP或是I-VOP,并且可以是按帧或是按场编码的。
对于交错的间接模式B-VOP MB,在以下的表2中表示了可能的四种预测运动矢量(PMV)。表2的第一列表示预测功能,第二列表示PMV的类型。这些PMV在以下所示的表3中被用于不同的MB预测模式。
表2

表3

例如,表3表示对具有前向预测模式(即“场,前向”)的前场模式MB采用顶场前向(“0”)和底场前向(“1”)运动矢量。
当前一个MB的运动矢量在差分编码中被使用之后就变成了发送次序中下一个MB的PMV。在MB的每一行的起点将PMV清零,因为前一行末尾的那个MB的MV不可能与当前一行起点上的MB的MV相同。在直接模式MB中也不使用预测值。对于跳过的MB,PMV保持最后的值。
对于直接模式编码的B-VOP MB不发送矢量的差。而是在解码器中根据时间上的下一个P-VOP MB直接计算出前向和反向MV,并且用没有预测的单个增量MV进行校正。由于发送的MV数据较少,这种方式非常有效。
在表4中总结了根据前一个和当前MB的类型用哪一种PMV为运动矢量编码的情况。对于B-VOP可以提供一个预测运动矢量的矩阵pmv[],矩阵被表示成从零到三(即pmv
,pmv[1],pmv[2]和pmv[3])。标志pmv[]是不用发送的,但是解码器可以按照Mv编码类型和被解码的具体矢量来确定使用的pmv[]标志。在对一个B-VOP MB进行编码之后,有些PMV矢量被更新,使其与当前MB的运动矢量相同。前一个,前两个或是前四个PMV是按照关于当前MB的MV数量来更新的。
例如,前向场预测的MB具有两个运动矢量,其pmv[1]就是底场,前向的PMV。对于反向场预测的MB来说,pmv[2]就是顶场,反向的PMV,而pmv[3]则是底场,反向的PMV。对于双向场预测的MB来说,pmv
是顶场,前向的PMV,pmv[1]是底场,前向的PMV,pmv[2]是顶场,反向的PMV,而pmv[3]是底场,反向的PMV。对于前向或反向预测的帧模式BVOP MB只有一个MV,因此,用于前向的仅有pmv
,,用于反向的仅有pmv[2]。对于平均(即双向)预测的帧模式BVOP MB来说,有两个MV,具体地说,pmv
用于前向MV,pmv[2]用于反向MV。表示成“更新pmv[]”的那一行代表需要更新的MV是一个,两个,还是四个。
表4-预测模式矢量标志pmv[]

显而易见,表4仅仅是用来实现本发明技术的一种简化方式,可以用来为当前的MB选择一个预测MV。然而,这种方案还可以用各种途径来实现。
子块间的DC自适应预测可以使用MPEG-4 VM 8.0中关于dct型数值的相同算法。子块间的自适应AC预测可以按照MPEG-4 VM 8.0中所数的方式执行,区别仅是第一行系数是从上面的编码子块复制来的。仅有当前MB和上面的子块具有相同的dct型数值时才可以使用这种操作。如果dct型不同,就只能通过从子块左边第一栏进行复制来实现AC预测。如果没有左边的子块,就在AC预测中使用零。
图4标识按照本发明的交错编码B-VOP的顶场的直接模式编码。如果与当前MB具有相同相对位置(即共位)的未来固定图像是按照(1)16×16(帧)MB,(2)MB内部,或是(3)8×8(超前预测)MB来编码的,当前宏子块(MB)就采用渐进的直接编码模式。
如果共位的未来固定图像Mb是按照交错MB来编码的,直接模式预测就是交错的。如果偏置的SAD是所有B-VOP MB预测值中的最小值,当前MB的编码就使用直接模式。交错编码MB的直接模式分别为当前MB的顶场和底场形成预测的MB。经过双向场运动补偿的MB的四个场运动矢量(MV)(即顶场前向,底场前向,顶场反向,以及底场反向)是直接根据未来固定图像中对应的MB计算出来的。
由于明显地减少了所需的检索工作,并且减少了MV数据的发送量,这种技术是有效的。一旦确定了MV和参考场,就把当前的MB当作双向场预测的MB。在场预测MB的比特流中只有一个增量运动矢量(供两个场使用)。
当前MB的顶场预测的依据是未来固定图像(它可以是P-VOP,或是I-VOP,其中的MV=0)的MB的顶场MV和前一个固定图像的过去参考场,它是由对应未来固定MB的顶场MV来选择的。也就是说,与当前MB的位置相对应的(即共位的)那个未来固定图像的顶场MB与过去固定图像的顶场或是底场具有最佳的匹配。然后将这一最佳匹配MB用作当前MB顶场的固定MB。通过详尽的检索来确定增量运动矢量MVD,根据MB给出在一个MB上共位的未来固定MV。
用于当前MB的底场的运动矢量同样也是用相应位置上未来固定MB的底场的MV来确定的,后者又参考了过去固定图像的顶场或是底场中的最佳匹配MB。
顶场运动矢量被用来构成一个MB预测值,它是(a)从相应位置上的未来固定MB的顶场获得的象素和(b)从供相应位置上的未来固定MB的顶场MV参考的那个过去固定场获得的象素二者的平均值。同样,底场运动矢量被用来构成一个MB预测值,它是(a)从相应位置上的未来固定MB的底场获得的象素和(b)从供相应位置上的未来固定MB的底场MV参考的那个过去固定场获得的象素二者的平均值。
如图4所示,当前B-VOP MB 420中包括顶场430和底场425,过去固定VOP MB 400中包括顶场410和底场405,而未来固定VOP MB 440中包括顶场450和底场445。
运动矢量MVtop是未来固定MB 440的顶场450的前向运动矢量,用它表示过去固定MB 400中的最佳匹配MB。尽管MVtop参考了前面的图像(即以往时间),它仍是一个前向MV,因为未来固定VOP 440与过去固定VOP 400相比在时间上是前向的。在本例中,MVtop参考过去固定VOP 400的底场405,当然也可以参考其顶场410。MVtop是当前MB的顶场的前向MV,而MVb,top是当前MB的顶场的反向MV。象素数据是在解码器中从双向预测MB推导出来的,在解码器中对分别用MVb,top和MVf,top表示的未来和过去固定图像中的象素数据取平均值,然后将原来发送的残余部分和这一平均图像相加。
顶场的运动矢量计算如下如果MVD=0,MVf,top=(TRB,top*MVtop)/TRD,top+MVD;MVb,top=((TRB,top-TRD,top)*MVtop/TRD,I;并且如果MVD≠0,MVb,top=(MVf,top-MVtop)MVD是运动矢量的增量或是偏差。此处的运动矢量是二维的矢量。另外,运动矢量是一种整数半亮度象素运动矢量。斜线“/”代表接近零的整数除法的舍项。另外,未来固定VOP永远是场直接预测模式的P-VOP。如果未来固定是一个I-VOP,MV就是零,并且可以使用16×16的间接模式。TRB,top是过去参考场(即顶场或底场)和当前B-VOP 420的顶场430之间的场中的时间距离,本例中的过去参考场指得是底场405。TRD,top是过去参考场(即顶场或底场)和未来的参考顶场450之间的时间距离,本例中的过去参考场指得是底场405。
图5表示按照本发明对交错编码的B-VOP的底场进行直接模式编码的情况。其中的交错视频信号源可以具有顶场在前或是底场在前的格式。在图4和5中表示了底场在前的格式。图中相同的编号与图4中的项目是相同的。此处的运动矢量MVbot是未来固定宏字块(MB)440的底场445的前向运动矢量,字块440指出了过去固定MB 400中的最佳匹配MB。在本例中,MVbot参考过去固定MB 400的底场405,当然也可以参考其顶场410。MVf,bot和MVb,bot分别是前向和反向运动矢量。
和顶场运动矢量并行计算的底场运动矢量计算如下如果MVD=0,MVf,bot=(TRB,bot*MVbot)/TRD,bot+MVD;MVb,bot=((TRB,bot-TRD,bot)*MVbot/TRD,I;并且如果MVD≠0,MVb,bot=(MVf,bot-MVbot)TRB,bot是过去参考场(即顶场或底场)和当前B-VOP 420的底场425之间的时间距离,本例中的过去参考场指得是底场405。TRD,bot是过去参考场(即顶场或底场)和未来的参考底场445之间的时间距离,本例中的过去参考场指得是底场405。
对于图4和5的例子来说,TRB,top,TRD,top,TRB,bot和TRD,bot的计算不仅取决于当前场,参考场和帧参考时间,还要取决于当前的视频信号是顶场在前还是底场在前。具体地说TRD,top或是TRD,bot=2*(TR未来-TR过去)+δ;并且TRB,top或是TRB,bot=2*(TR当前-TR过去)+δ;其中的TR未来,TR当前和TR过去分别是显示次序中未来,当前和过去帧的帧号,δ是由以下的标5中给定的场间时间距离的附加校正值。δ的单位是场的周期。
例如,第一列最后一行中的“1”表示未来固定场是一个顶场,而参考场是一个底场。正如图4中所示的情况。第二列最后一行中的“1”表示未来固定场是一个底场,而参考场也是底场。如图5中所示的情况。
表5-时间校正,δ

关于系数编码,需要一个适当的编码模式决定程序。如上所述,对于B-VOP,MB的编码可以采用(1)直接编码,(2)16×16运动补偿(包括前向,反向和平均模式),或是(3)场运动补偿(包括前向,反向和平均模式)。当对应的未来固定MB是帧或场的直接编码时,对当前MB分别采用帧或场的直接编码。
对于一个B-VOP中的场运动补偿MB来说,根据相对于编码固定图像的最小亮度半象素SAD来决定用前向,反向或是平均模式对MB进行编码。具体地说,七个偏置SAD项目是如下计算的(1)SAD直接+b1,(2)SAD前向+b2,(3)SAD反向+b2,(4)SAD平均+b3,(5)SAD前向,场+b3,(6)SAD反向,场+b3,以及(7)SAD平均,场+b4,其中的下标代表直接模式,前向运动预测,反向运动预测,平均(例如内插或是双向)运动预测,帧模式(例如局部前进)以及场模式(例如局部交错)。上述的场SAD(例如SAD前向,场,SAD反向,场,以及SAD平均,场)是顶场和底场SAD之和,各自具有自己的参考场和运动矢量。具体地说,SAD前向,场=SAD前向,顶场+SAD前向,底场;SAD反向,场=SAD反向,顶场+SAD反向,底场;并且SAD平均,场=SAD平均,顶场+SAD平均,底场。
SAD直接是最佳直接模式预测,SAD前向是根据前向(过去)参考的最佳16×16预测,SAD反向是根据反向(未来)参考的最佳16×16预测,SAD平均是由平均的最佳前向和最佳反向参考的逐个象素构成的最佳16×16预测,SAD前向,场是根据前向(过去)参考的最佳场预测,SAD反向,场是根据反向(未来)参考的最佳场预测,而SAD平均,场是由平均的最佳前向和最佳反向参考的逐个象素构成的最佳场预测。
bi′是以下的表6中所限定的偏置值,用来计算需要更多运动矢量的预测模式。最好是直接模式和MV比较少的模式。
表6

直接模式的负偏置是用来与现有的用于逐级视频信号的MPEG-4 VM保持一致,这样可能会有比较多的MB被忽略。
图7是按照本发明的一个解码器的框图。统一用700标识的这一解码器可以用来接收图2的编码器发送的编码数据信号并且进行解码。在端子740上接收编码的视频图像数据和差分编码的运动矢量(MV)数据,并且提供给一个多路分解器(DEMUX)742。编码的视频图像数据通常是用作为预测误差信号(也就是残余)的DCT变换系数进行差分编码的。
当VOP具有随机的形状时,形状解码功能744通过信号处理来恢复形状信息,该信息被提供给运动补偿功能750和VOP重组功能752。纹理解码功能746对变换系数执行反向DCT,从中恢复出残余信息。对于INTRA编码的宏字块(MB),象素信息是直接恢复的,并且提供给VOP重组功能752。
对于B-VOP中的INTER编码的字块和MB,从纹理编码功能746提供给VOP重组功能752的象素信息代表当前MB和参考图像之间的残余。参考图像可以是来自由前向或是反向MV指定的一个固定MB的象素数据。反之,对于内插(即平均)的MB来说,参考图像是两个参考MB的平均值,也就是一个过去固定MB和一个未来固定MB的平均值。在这种情况下,在恢复当前的MB象素数据之前,解码器必须根据前向和反向MV计算出平均的象素数据。
对于INTER编码的字块和MB来说,运动解码功能748需要处理编码的MV数据,从中恢复差分的MV,并且将其提供给运动补偿功能750和RAM构成的运动矢量存储器749。运动补偿功能750接收这一差分MV数据,并且按照本发明的方式确定参考运动矢量(即预测值运动矢量,或是PMV)。PMV是按照编码模式(即前向,反向,双向,或是直接)来确定的。
一旦运动补偿功能750确定了整个参考MV并且将其与当前MB的差分MV相加之后,当前MB的整个MV就可以使用了。因此,运动补偿功能750在此时就可以从RAM构成的VOP存储器754中恢复固定帧最佳匹配数据,根据需要计算出平均图像,并且将固定帧象素数据提供给用来重组当前MB的VOP重组功能。
恢复或是计算出的最佳匹配数据重新被加到VOP重组功能752的象素残余上,从中获得解码的当前MB或是字块。重组的字块作为视频输出信号被输出,并且被提供给VOP存储器754,以便获得新的固定帧数据。值得注意的是,根据帧的传输和图像的次序可能需要适当的视频数据缓冲能力,因为B-VOP MB的固定帧在图像次序中可能是时间上的未来帧或是场。
图8表示按照本发明的一个MB包结构。该结构适用于B-VOP,并且表示解码器接收到的数据格式。为了便于表示,图中的这种包一共有四行。这种包实际上是从顶行开始串行发送的,并且在一行内是从左到右。第一行810包括场first_shape_code,MVD_shape,CR,ST,和BAC。第二行830包括场MODB和MBTYPE。第三行850包括场CBPB,DQUANT,Interlaced_Information,MVDf,MVDb,和MVDB。第四行包括场CODA,CBPBA,Alpha Block Data和Block Data。上述的每个场都是按照MPEG-4 VM 8.0来限定的。
first_shape_code表示一个MB是否处在一个VOP的边界框内。CR表示Binary Alpha Block的转换率。ST代表水平或是垂直扫描次序。BAC表示一种二进制运算的代码字。
代表MB模式的MODB被用于一个B-VOP中的每个编码的(没有被忽略的)MB。如果出现了MODB的指示,就会产生差运动矢量(MVDf,MVDb,或是MVDB)和CBPB。MBTYPE用来指示宏字块类型,它还可以代表运动矢量模式(MVD)和量化(DQUANT)。对于交错模式来说,每个MB可以具有多达四个MV。MBTYPE用来指示编码类型,也就是前向,反向双向或是直接。CBPB是用于B-型宏字块的Coded Block Pattern。CBPBA的定义和CBPB类似,区别仅是最多只有四个比特。DQUANT限定了量化器中数值的变化。
第三行850中的场Interlaced_Information表示MB是不是一个交错编码的MB,并且向解码器提供当前MB的编码模式或是字块的场MV参考数据。解码器使用这种信息来计算当前MB的MV。Interlaced_Information的场可以存储在解码器中的MV存储器749或是其他存储器中,根据需要在以后使用。
Interlaced_Information场还可以包括一种标志dct_type,例如参照图6所述的情况,它表示场编码的MB中的顶场和底场象素线是否与交错的次序不同。
在VOP_prediction_type=10的情况下使用图示的MB层次构造。如果COD指示出对最新解码的I-或是P-VOP跳过(COD=“1”)一个MB,就跳过B-VOP中位置相同(即共位)的那个MB。因此,在比特流中不包括信息。
MVDf是B-VOP中相对于时间在前的参考VOP(一个I-或是P-VOP)的一个MB的运动矢量。它包括一个用于水平分量的可变长度的代码字,后面是一个用于垂直分量的可变长度的代码字。对于一个场预测值是“1”并且前向或是内插的MBTYPE的交错B-VOP MB来说,MVDf代表一对以过去固定VOP为参考的场运动矢量(底场在顶场后面)。
MVDb是B-VOP中相对于时间在后的参考VOP(一个I-或是P-VOP)的一个MB的运动矢量。它包括一个用于水平分量的可变长度的代码字,后面是一个用于垂直分量的可变长度的代码字。对于一个场预测值是“1”并且前向或是内插的MBTYPE的交错B-VOP MB来说,MVDb代表一对以未来固定VOP为参考的场运动矢量(底场在顶场后面)。
MVDB仅仅在MODB和MBTYPE指示出直接模式时才出现在B-VOP中,它包括每个矢量中用于水平分量的可变长度代码字,后面是用于垂直分量的可变长度代码字。MVDB代表用来校正B-VOP MB运动矢量的增量矢量,后者是通过对P-VOP MB运动矢量定标而获得的。
CODA代表灰色色度形状编码。
图8的格式仅仅是一个例子,本领域的技术人员以此为依据还可以为解码器的有关信息采用各种其他通信格式。
在MPEG-4 VM 8.0和Eifrig等人的上述申请中已经描述了在本发明中使用的比特流语法和MB层次语法。
因此可以看出,本发明为B-VOP中的当前MB提供了一种编码方案,特别适用于当前MB是场编码以及/或是固定MB是场编码方式的情况。这是一种对场编码的MB进行直接编码的方案,还有一种编码决定程序,它使用绝对差项目之和的最小值来选择一种最佳的模式。另外还为场编码的当前MB的顶场和底场提供了一种预测运动矢量(PMV),在其中根据需要还可以包括前向和反向PMV,并且也可以用于帧编码的MB。
尽管上文中是参照各种具体实施例来描述本发明的,显而易见,本领域的技术人员在不脱离权利要求书所限定的本发明的精神和范围的条件下仍然可以实现各种修改和变更。
权利要求
1.一种选择编码方式的方法,用于在一系列数字视频图像中为当前预测的具有顶场和底场的场编码宏子块选择一种编码方式,包括以下步骤相对于过去参考宏子块,确定当前宏子块绝对差分误差的前向总和SADforward,field,该步骤对应于前向编码方式;相对于未来参考宏子块,确定当前宏子块绝对差分误差的反向总和SADbackward,field,该步骤对应于反向编码方式;相对于上述的过去和未来参考宏子块的平均值,确定当前宏子块绝对差分误差的平均值总和SADaverage,field,该步骤对应于平均编码方式;以及按照上述SAD最小的原则,选择上述编码方式。
2.按照权利要求1的方法,其进一步包括以下步骤按照上述SAD各自的和数最小的原则,选择编码方式,且考虑对应的说明各编码方式所需的运动矢量的数量的偏置项。
3.按照权利要求1或2的方法,其中SADforward,field是按照(a)当前宏子块的顶场相对于过去参考宏子块的顶场的绝对差之和,以及(b)当前宏子块的底场相对于过去参考宏子块的底场的绝对差之和的总和来确定的。
4.按照权利要求1到3之一的方法,其中SADbackward,field是按照(a)当前宏子块的顶场相对于未来参考宏子块的顶场的绝对差之和,以及(b)当前宏子块的底场相对于未来参考宏子块的底场的绝对差之和的总和来确定的。
5.按照权利要求1到4之一的方法,其中SADaverage,field是按照(a)当前宏子块的顶场相对于过去和未来参考宏子块的顶场平均值的绝对差之和,以及(b)当前宏子块的底场相对于过去和未来参考宏子块的底场平均值的绝对差之和的总和来确定的。
全文摘要
双向预测视频目标平面(B_VOPs)的数字视频图像编码的系统。对和一个未来固定图像的位置相同的B-VOP宏子块,通过计算四个场运动矢量执行直接式预测产生预测的宏子块。四个场运动矢量及参考的场根据(1)当前宏子块的编码矢量的一个偏差项(MVD),(2)两个未来固定图像场运动矢量,(3)供位置相同的未来固定宏子块的两个场运动矢量使用的参考场,及(4)当前B-VOP场和固定场间的场周期中的时间间隙确定。
文档编号G06K9/00GK1620145SQ20041006820
公开日2005年5月25日 申请日期1998年3月7日 优先权日1997年3月7日
发明者罗伯特·O·艾弗雷格, 陈学敏, 阿贾伊·卢特拉 申请人:通用仪器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1