专利名称:用于在视频序列中对运动进行编码的方法
技术领域:
本发明通常涉及一种通信系统,特别是涉及视频编码中的运动补偿。
背景技术:
和胶片上记录的普通运动图像一样,数字视频序列包括一系列的静止图像,通过以相对较快的速率,通常每秒15-30帧的速率一个接一个的显示该序列中的连续图像,可以创建出运动的错觉。由于相对较快的帧显示速率,在连续帧中的图像很可能非常类似,从而包含相当多的冗余信息。例如,普通的场景可能包括一些静止单元,例如背景景物,而形状可能各不相同的一些移动区域,例如新闻播音员的脸,可能会快速运动。可替换地或附加地,例如由于记录场景的摄像机的平移,摇摄或变焦,在视频序列中可能会出现所谓“全局运动”。然而,在许多情况下,在一个视频帧和下一视频帧之间的总体变化还是较小的。
未压缩的数字视频序列的每个帧都包括一个图像像素的阵列。例如,在通常使用的数字视频格式中,例如已知的四分之一公用交换格式(QCIF)中,一个帧包括176×144个像素,其中每个帧都有25,344个像素。每个像素进而又由一定数目的比特来表示,这些比特携带有关于该像素对应的图像区域的亮度和/或色度内容的信息。通常,使用所谓的YUV颜色模型来表示图像的亮度和色度内容。亮度分量,或Y分量,表示图像的强度(明亮度),而图像的色度内容由两个色度或色差分量U和V来表示。
基于图像内容的亮度/色度表示的颜色模型,相对于基于基色(即红,绿,蓝,RGB)表示的颜色模型更为有利。因为人的视觉系统对亮度变化比对颜色变化更为敏感,而YUV颜色模型通过对色度分量(U,V)使用比亮度分量(Y)更低的空间分辨率,来利用这种特性。这样,在可以接受降低一定图像质量的前提下,可以减少图像中的彩色信息编码所需的信息量。
色度分量的较低空间分辨率通常是通过空间子取样来获得的。典型的,视频序列的每个帧都被划分为所谓“宏块”,这些宏块包括亮度(Y)信息和相关的(空间子取样后的)色度(U,V)信息。图3示出了形成宏块的一种方法。图3a表示利用YUV颜色模型来表示的视频序列的一个帧,每个分量都具有相同的空间分辨率。宏块是这样形成的将原始图像(图3b)中的一个16×16图像像素的区域表示为四个亮度信息块,每个亮度块包括一个8×8阵列的亮度(Y)值,以及两个空间对应的色度分量(U和V),这两个色度分量在水平和垂直方向上被系数2二次取样,从而产生对应的8×8色度(U,V)值的阵列(参见图3c)。
一个QCIF图像包括11×9个宏块。若亮度块和色度块以8比特分辨率(即,由0到255范围内的数字)来表示,每个宏块所需比特的总数为(16×16×8)+2×(8×8×8)=3072比特。因此表示一个QCIF格式的视频帧所需的比特数为99×3072=304,128比特。这意味着以每秒30帧的速率,用YUV颜色模型来表示的,QCIF格式的一个未压缩视频序列的传输/记录/显示所需的数据量要大于9Mbps(兆比特每秒)。这是非常大的数据率,并且在视频记录,传输和显示应用中是不现实的,因为这需要非常大的存储容量,传输信道能力和硬件性能。
若视频数据将要在例如ISDN(综合业务数字网)或传统PSTN(公共开关电话网络)这样的固定线网上实时传输,则可用数据传输带宽一般为64kbits/s的数量级。在移动视频电话中,至少一部分传输是在无线通信链路上进行的,则可用带宽最低可以是20kbits/s。这意味着表示视频数据所用的信息量必须显著减少,才能在低带宽通信网络上传输数字视频序列。为此,已研制出在保持可接受图像质量的同时减少传输的信息量的视频压缩技术。
视频压缩方法的基础是减少视频序列中冗余的和与感觉不相关的部分。视频序列中的冗余度可被归类为空间,时间和频谱冗余度。“空间冗余度”是用来描述一个帧内相邻像素之间的相关性(相似性)的术语。术语“时间冗余度”表示在序列的一个帧中出现的目标很可能在随后的帧中也出现,而“光谱冗余度”是指在相同图像的不同彩色分量之间的相关性。
仅仅减少给定图像序列中各种形式的冗余度并不能充分有效地实现压缩。因此,目前大多视频编码器还减少视频序列中主观上最不重要的部分的质量。另外,通过有效的丢失不重要部分(loss-less)的编码方法,可以减少压缩后视频比特流本身的冗余度。通常,这是利用熵编码技术来实现的。
在构成数字视频序列每个帧的像素之间通常都有大量的空间冗余度。也就是说,在该序列的一个帧内任何像素的值基本上都与其邻近的其他像素的值相同。典型地,视频编码系统利用已知的“基于块的变换编码”来减少空间冗余度,其中对图像像素块应用数学变换,例如二维离散余弦变换(DCT)。可将图像数据从包含像素值的表示方式变换为包含一组表示空间频率分量的系数值的形式,显著减少了空间冗余度,从而可产生更为简洁的图像数据的表示形式。
利用基于块的变换编码来压缩、并不参考视频序列中任何其他帧的视频序列中的帧,被称为帧内编码的帧或I-帧。另外,可能的是,帧内编码帧的块可根据相同帧内预先编码过的块来预测。这种技术,被称为帧内预测,能够进一步减少表示帧内编码帧所需的数据量。
通常,视频编码系统不仅减少视频序列中各个帧内的空间冗余,还利用已知的“运动补偿预测”技术来减少序列中的时间冗余。利用运动补偿预测,数字视频序列中的某些(往往很多)帧的图像内容可根据该序列中的一个或多个称为“参考”帧的其它帧来预测。图像内容的预测是通过在将要编码(压缩)的帧和参考帧之间利用“运动矢量”来追踪目标或图像区域的运动而实现的。通常,参考帧在视频序列中可以在将要编码的帧之前或之后。在帧内编码的情况下,视频帧的运动补偿预测通常是一个宏块一个宏块地执行的。
利用运动补偿预测来压缩的视频序列帧通常称为帧间编码的帧或P-帧。仅仅是运动补偿预测还不能对视频帧的图像内容提供足够精确的表示,因此还需要对每个帧间编码帧提供一种所谓“预测误差”(PE)帧。该预测误差帧表示帧间编码帧的解码后版本和将要编码帧的图像内容之间的差异。具体地说,该预测误差帧包括表示将要编码帧的像素值和根据该讨论帧的预测版本而形成的对应重建像素值之间的差异的值。因此,预测误差帧的特性类似于静止图像,并可以应用基于块的变换编码,来减少其空间冗余,进而减少表示它所需的数据量(比特数量)。
为了更详细地示出通用视频编码系统的操作,下面将参照随后的附
图1和2中所示的视频编码器和视频解码器来说明。图1的视频编码器100使用帧帧内编码和帧间编码的结合来产生压缩(编码)后的视频比特流,图2的解码器100用于接收和解码编码器100产生的视频比特流,从而产生重建的视频序列。在通篇说明书中都假定一个宏块的亮度分量包括以四个8×8块的阵列排列的16×16像素,相关的色度分量都在水平和垂直方向上被系数2进行空间二次取样,以形成8×8的块,如图3所示。本说明关于其他块尺寸和其他二次取样方案的扩展对本领域的普通技术人员来说都是显而易见的。
视频编码器100包括输入端101,用于从摄像机或其他视频源(未示出)接收数字视频信号。它还包括变换单元104,用于执行基于块的离散余弦变换(DCT),量化器106,和逆量化器108,逆变换单元110,用于执行基于块的离散余弦逆变换(IDCT),合成器112和116,以及帧存储器120。编码器还包括运动估计器130,运动场编码器140,和运动补偿预测器150。开关102和114通过控制管理器160而联合操作,用于将编码器在帧内模式的视频编码和帧间模式的视频编码之间切换。编码器100还包括视频复用编码器170,用于根据编码器100产生的各种类型的信息而形成单独比特流,以便传输到远程接收终端,或者,用于例如计算机硬盘驱动器(未示出)这样的大容量存储介质的存储。
下面说明编码器100的操作。接收视频源向输入端101提供的未压缩视频的每个帧,并逐个宏块地进行处理,最好按照光栅扫描的顺序。当开始新的视频序列的编码时,将要编码的第一帧被编码为帧内编码帧。随后,将编码器编程从而将每个帧都以帧间编码格式进行编码,除非满足以下条件之一1)判断被编码的当前宏块与其预测中使用的参考帧的像素值非常不同,以致产生了过多的预测误差信息,这时该当前宏块以帧内编码格式进行编码;2)到了预先定义的内帧重复间隔;或3)从接收终端接收到反馈,指示某个帧以帧内编码格式提供的请求。
条件1)的出现可通过监视合成器116的输出来检测。合成器116形成将要编码帧的当前宏块及其预测之间的差异,该预测在运动补偿预测块150中产生。若该差异的测量值(例如像素值的绝对差值的和)超过了预定的阈值,则合成器116通过控制线119通知控制管理器160,控制管理器160通过控制线113操作开关102和114,将编码器100切换到帧内编码模式。这样,不以帧间编码格式编码的一个帧可能包括帧内编码的宏块。条件2)的出现通过控制管理器160中实施的计时器或帧计数器来检测,这样若计时器溢出,或帧计数器到达预定的帧数目,则控制管理器160通过控制线113操作开关102和114将编码器切换到帧内编码模式。若控制管理器160通过控制线121从例如接收端接收到反馈信号,指示接收端请求帧内帧的更新,则条件3)满足。若先前传输的帧在其传输期间由于干扰被严重损坏,以致不能被接收机解码,则可能会出现这种条件。在这种情况下,接收解码器发出一个请求,请求下一帧以帧内编码格式被编码,从而重新初始化编码顺序。
下面将说明帧内编码模式中编码器100的操作。在帧内编码模式中,控制管理器160操作开关102从输入线118接收视频输入。视频信号输入通过输入线118从输入端101被逐个宏块的接收。接收到它们后,构成宏块的亮度和色度值的块被传送到DCT变换块104,对每个数值块执行二维离散余弦变换,对每个块都产生一个DCT系数的二维阵列。DCT变换块104对每个块都产生一个系数值的阵列,该系数值的数目对应于构成宏块的块的维数(该例子中是8×8)。每个块的DCT系数被传送到量化器106,利用量化参数QP进行量化。量化参数QP的选择由控制管理器160通过控制线115来控制。
然后将每个块的量化后DCT系数的阵列从量化器106传送到视频复用编码器170,如图1的线路125所示。视频复用编码器170利用Z字形扫描程序对每个块的量化后变换系数进行排序,从而将量化后变换系数的二维阵列转换为一维阵列。然后将该一维阵列中每个非零值的量化系数表示为一对值,称为level和run,其中level是量化系数的值,run是在当前系数之前的连续零值系数的数目。Run和level的值进一步利用熵编码在视频复用编码器170中被压缩,该熵编码例如是,可变长度编码(VLC),或运算编码。
在利用适当方法对run和level的值进行熵编码后,视频复用编码器170还将它们与控制信息相结合,以形成单独的编码图像信息的压缩后比特流135,其中该控制信息也利用适于该信息类型的适当方法进行了熵编码。应当注意虽然熵编码是结合视频复用编码器170的操作来说明的,但可以使用其它实施形式的独立熵编码单元。
在编码器100中还形成宏块的本地解码版本。这是通过经逆量化器108传送量化器106输出的每个块的量化后变换系数,和在逆变换块110中应用DCT逆变换来完成的。这样就对该宏块的每个块创建了重建后的像素值阵列。将得到的解码后图像数据输入到合成器112。在帧内编码模式中,设定开关114使得通过开关114对合成器112的输入为零。这样,合成器112的操作等效于传送未改变的解码后图像数据。
在接收到当前帧的随后宏块并进行了前述在块104,106,108,110,112中进行的编码和本地解码步骤后,在帧存储器120中建立起帧内编码的帧的解码后版本。在当前帧的最后一个宏块已被帧内编码和随后解码之后,帧存储器120存储一个完全解码的帧,用于在对随后接收的帧间编码格式的视频帧编码时作为运动预测参考帧。
下面将说明编码器100的帧间编码模式。在帧间编码模式中,控制管理器160操作开关102从线路117接收其输入,该输入包括合成器116的输出。合成器116从输入端101逐个宏块地接收视频输入信号。在合成器116接收到构成宏块的亮度和色度值的块之后,可形成对应的预测误差信息的块。该预测误差信息表示当前块及其预测之间的差异,该预测是在运动补偿预测块150中产生的。更具体地,该宏块的每个块的预测误差信息包括一个数值二维阵列,每个数值都表示被编码的亮度或色度信息的块中的像素值和解码的像素值之间的差异,该解码的像素值是根据下述步骤对该块形成的运动补偿预测而获得的。因此,在本例子的视频编码系统中,每个宏块包括,例如8×8块的集合,所述块包含有亮度和色度值,该宏块的每个块的预测误差信息也类似地包括一个预测误差值的8×8阵列。
将该宏块的每个块的预测误差信息传送到DCT变换块104,对预测误差值的每个块执行二维离散余弦变换,以便产生每个块的DCT变换系数的二维阵列。DCT变换块104对每个预测误差块产生一个系数值阵列,该系数值的数目对应于构成该宏块的块的维数(本例中为8×8)。从每个预测误差块得到的变换系数被传送到量化器106,利用量化参数QP,以类似于上述帧内编码模式的编码器操作的方式进行量化。如前所述,量化参数QP的选择由控制管理器160通过控制线115来控制。
表示该宏块的每个块的预测误差信息的量化后DCT系数从量化器106被传送到视频复用编码器170,如图1的线路125所示。在帧内编码模式中,视频复用编码器170利用一定的Z字形扫描程序对每个预测误差块的变换系数进行排序,从而将每个非零值的量化系数表示为游程-等级(run-level)对。还利用熵编码将该游程-等级对按照与上述帧内编码模式类似的方式进一步压缩。视频复用编码器170还通过线路126从运动场编码块140接收运动矢量信息(以下将说明),从控制管理器160接收控制信息。它对运动矢量信息和控制信息进行熵编码,并形成单独的编码图像信息的比特流135,它包括熵编码的运动矢量,预测误差和控制信息。
表示该宏块的每个块的预测误差信息的量化后DCT系数还从量化器106传送到逆量化器108。这里对它们进行逆量化,并将得到的逆量化的DCT系数块施加到DCT逆变换块110,进行DCT逆变换,从而产生本地解码的预测误差值的块。然后将本地解码的预测误差值的块输入到合成器112。在帧间编码模式中,设定开关114,使得合成器112还接收运动补偿预测块150产生的该宏块的每个块的预测像素值。合成器112将每个本地解码的预测误差值的块与对应的预测像素值的块结合起来,从而产生重建的图像块,并将它们存储在帧存储器120中。
在从视频源接收到视频信号的随后宏块并进行了前述的在块104,106,108,110,112中进行的编码和解码步骤后,在帧存储器120中建立起该帧的解码后版本。在该帧的最后一个宏块已被处理后,帧存储器120存储一个完全解码的帧,用于在对随后接收的帧间编码格式的视频帧编码时作为运动预测参考帧。
下面将说明视频编码器100执行的运动补偿预测。
以帧间编码格式编码的任何帧都需要一个参考帧,用于运动补偿预测。这意味着,当编码视频序列时,将要编码的第一帧,不论其是该序列中的第一帧,或是其他帧,都必须以帧内编码格式进行编码。这反过来意味着,当视频编码器100被控制管理器160切换到帧间编码模式时,已经可以使用在编码器的帧存储器120中的,通过对先前编码的帧进行本地解码而形成的完全参考帧。通常,该参考帧是通过对帧内编码帧或帧间编码帧进行本地解码后形成的。
在以下说明中,假定该编码器在宏块的基础上执行运动补偿预测,即宏块是与运动信息相关的视频帧的最小单元。还假定,对给定宏块的预测是通过识别参考帧的亮度分量中的16×16个值的区域来形成的,该参考帧表示当前宏块的16×16个亮度值的最佳对应。下面将说明视频编码系统中的运动补偿预测,其中运动信息可以与比宏块更小的单元相关联。
形成当前帧的一个宏块的预测的第一步是由运动估计块130完成的。运动估计块130通过线路128接收亮度和色度值的块,这些块构成了将要编码帧的当前宏块。然后执行块匹配操作,从而识别参考帧中与当前宏块最佳对应的一个区域。为了执行块匹配操作,运动估计块130通过线路127访问帧存储器120中存储的参考帧数据。具体地说,运动估计块130通过计算代表像素值差异的差值(例如,绝对差值的和)而执行块匹配,该像素值差异是指在被估计宏块和帧存储器120中存储的参考帧中备选的最佳匹配像素区域之间的像素值差异。在该参考帧的预定搜索区域中产生所有可能偏移量的备选区域的差值,然后运动估价块130判断最小的计算差值。产生该最小差值的备选区域被选择为最佳匹配区域。在当前宏块和参考帧中识别的最佳匹配区域之间的偏移量定义了当前宏块的一个“运动矢量”。该运动矢量通常包括一对数值,一个表示当前宏块和参考帧的最佳匹配区域之间的水平位移(Δx),另一个表示垂直位移(Δy)。
在运动估价块130产生该宏块的运动矢量后,它向运动场编码块140输出该运动矢量。该运动场编码块140利用包含一组基本函数和运动系数的运动模型,对从运动估计块130接收的运动矢量进行近似。更具体地,运动场编码块140将运动矢量表示为一组运动系数值,当这些运动系数值与基本函数相乘时可形成该运动矢量的近似。典型地,变换运动模型只使用两个运动系数和基本函数,但也可以使用更复杂的运动模型。
将运动系数从运动场编码块140传送到运动补偿预测块150。运动补偿预测块150还从帧存储器120接收运动估计块130识别的像素值的最佳匹配区域。利用运动场编码块140产生的运动矢量的近似表示,和参考帧中最佳匹配像素区域的像素值,运动补偿预测块150可对当前宏块的每个块产生一个预测像素值的阵列。将每个预测像素值的块传送到合成器116,其中将当前宏块的对应块中的实际(输入)像素值减去预测像素值。这样就得到该宏块的一组预测误差块。
下面将参照图2说明视频解码器200的操作。解码器200包括视频复用解码器270,用于从编码器100接收编码后视频比特流135并将其解复用为各个成分分量,逆量化器210,DCT逆变换器220,运动补偿预测块240,帧存储器250,合成器230,控制管理器260,和输出端280。
控制管理器260根据被解码的是帧内或帧间编码的帧来控制解码器200的操作。使解码器在解码模式之间切换的帧内/帧间触发控制信号是从,例如与编码器发送的每个压缩后视频帧相关的图像类型信息获得的。该帧内/帧间触发控制信号是由视频复用解码器270从编码后视频比特流提取出的,并通过控制线215传送到控制管理器260。
在逐个宏块的基础上执行帧内编码帧的解码,每个宏块基本上都在视频比特流135中接收到与其相关的编码信息之后立刻被解码。视频复用解码器270从与当前宏块相关的可能控制信息中分离出该宏块的块的编码信息。帧内编码宏块的每个块的编码信息都包括可变长码字,这些码字表示该块的非零量化的DCT系数的熵编码后的level和run值。视频复用解码器270利用与编码器100使用的编码方法相对应的可变长解码方法来解码该可变长码字,从而恢复出level和run的值。然后重建该宏块的每个块的量化后变换系数值的阵列,并将它们传送到逆量化器210。与该宏块相关的任何控制信息都在视频复用解码器270中利用适当的解码方法被解码,并被传送到控制管理器260。特别地,与施加到变换系数的量化级别相关的信息是由视频复用解码器270从编码后比特流中提取的,并通过控制线217提供到控制管理器260。控制管理器相应的将该信息通过控制线218传送到逆量化器210。逆量化器210根据该控制信息逆量化每个块的量化DCT系数,并将逆量化的DCT系数提供到DCT逆变换器220。
DCT逆变换器220对该宏块的每个块的逆量化DCT系数执行DCT逆变换,形成包含重建像素值的图像信息的解码块。通过合成器230将该宏块的每个块的重建像素值传送到解码器的视频输出端280,其中可以将它们提供到显示设备(未示出)。每个块的重建像素值也被存储在帧存储器250中。因为在帧内编码宏块的编码/解码中并未使用运动补偿预测,因此控制管理器260控制合成器230将这样的每个像素值块传送到视频输出280和帧存储器250。在帧内编码帧的随后宏块被解码和存储后,在帧存储器250中逐步地组拼起一个解码帧,并成为在随后接收的帧间编码帧的解码中可以使用的运动补偿预测的参考帧。
帧间编码帧也是逐个宏块地进行解码,每个帧间编码宏块基本上都在视频比特流135中接收到与其相关的编码信息之后立刻被解码。视频复用解码器270从编码后运动矢量信息和与当前宏块相关的可能控制信息中分离出该帧间编码宏块的每个块的编码后预测误差信息。如前所述,该宏块的每个块的编码后预测误差信息都包括可变长码字,这些码字表示当前预测误差块的非零量化的变换系数的熵编码后的level和run值。视频复用解码器270利用与编码器100使用的编码方法相对应的可变长解码方法来解码该可变长码字,从而恢复出level和run的值。然后重建每个预测误差块的量化后变换系数值的阵列,并将它们传送到逆量化器210。与该帧间编码宏块相关的控制信息也在视频复用解码器270中利用适当的解码方法被解码,并被传送到控制管理器260。与施加到预测误差块的变换系数的量化级别相关的信息是从编码后比特流中提取的,并通过控制线217提供到控制管理器260。控制管理器相应的将该信息通过控制线218传送到逆量化器210。逆量化器210根据该控制信息逆量化该量化DCT系数,该量化DCT系数表示该宏块的每个块的预测误差信息,并将逆量化的DCT系数提供到DCT逆变换器220。DCT逆变换器220对表示每个块的预测误差信息的逆量化DCT系数执行逆变换,产生该宏块的每个块的重建预测误差值的阵列。
视频复用解码器270从编码的视频比特流135中提取与该宏块相关的编码后运动矢量信息,并进行解码。这样获得的解码后运动矢量信息通过控制线225传送到运动补偿预测块240,利用与编码器100中编码帧间编码宏块相同的运动模型,重建该宏块的运动矢量。重建的运动矢量与编码器的运动估计块130初始确定的运动矢量非常近似。解码器的运动补偿预测块240利用重建的运动矢量来识别帧存储器250中存储的预测参考帧中的重建像素区域的位置。该参考帧可以是,例如先前解码的帧内编码帧,或先前解码的帧间编码帧。无论哪种情况,该重建运动矢量所指示的像素区域都用于形成当前宏块的预测。更具体地,运动补偿预测块240通过从运动矢量所识别的像素区域中复制对应的像素值而形成该宏块的每个块的像素值阵列。该预测,即由参考帧得到的像素值的块,从运动补偿预测块240被传送到合成器230,并与解码的预测误差信息相合成。实际上,每个预测块的像素值被增加到DCT逆变换器220输出的对应重建预测误差值。这样就得到该宏块的每个块的重建像素值的阵列。重建的象素值被传送到解码器的视频输出280并被存储到帧存储器250中。在帧间编码帧的随后宏块被解码和存储后,在帧存储器250中逐步地组拼起一个解码帧,并成为其它帧间编码帧的运动补偿预测中可以使用的参考帧。
如上所述,在典型的视频编码系统中,运动补偿预测是在宏块的基础上执行的,即宏块是与运动信息相关的视频帧的最小单元。然而,由ISO/IEC MPEG(运动图像专家组)和ITU-T VCEG(视频编码专家组)的联合视频组JVT所开发的当前的视频编码建议,还允许运动信息与比宏块更小的单元相关联。在本说明书的以下所有描述中,将参照T.Weigland发表在ISO/IEC MPEG和ITU-T VCEG的联合视频组Doc.JVT-A003,2002年1月的文章“Joint Model Number 1”中所述的视频编码标准的版本,本文包含该文章的全部内容。为了简明,该建议的版本将被称为“JVT编解码的JM1”。
根据该JVT编解码的JM1,视频图像被划分为许多16×16像素的宏块,并在逐个宏块的基础上进行编码。该编码是按照图1和2所示的通用视频编码器和解码器所述的基本原理来执行的。然而,根据JM1,帧间编码宏块的运动补偿预测是接照与先前描述不同的方式进行的。更具体的,每个宏块都根据该宏块的特性和该视频序列中的运动而被分配“编码模式”。将被帧间编码的宏块根据七种编码模式被划分为多个子块,每个子块包括N×M个像素,和与每个N×M子块相关而不是仅与整个宏块相关的运动信息。在附图4中示出了JVT视频编解码标准的JM1提出的将宏块划分为N×M子块的每个可能方法。从图中可看出,可能的划分法有16×16,8×16,16×8,8×8,4×8,8×4,4×4。这样,若特定宏块被分配的编码模式是例如16×8模式,则该宏块被划分为两个16×8像素的子块,每个子块都具有其自身的运动信息。另外,还提出了第八编码模式,称为SKIP(或跳跃)模式。若一个宏块被分配为该模式,则表示该宏块是直接从参考视频帧复制的,而不必使用运动补偿预测。
对给定宏块的编码模式选择的判断通常被作为运动估计处理的一部分。更具体地,在例如图1的视频编码器中,不是允许使用JVT编解
当一个着色剂组包括多于三种颜色时,很可能的是,该组中有一种以上的着色剂配方会匹配出目标色。本发明人已经确定,单独按照配方成本或异谱同色来选择配方并不提供着色剂专家的配方选择技术的好的代表。根据本发明的优选实施例,把成本和异谱同色组合成单一度量一个″调整的成本″。参考图4,下面给出如何计算调整成本的一个例子,然而,对本领域内的普通技术人员来说应当承认的是,调整的成本目标函数的确切形式优选地是通过与现实生活中的着色剂专家之间的交互反复试验来预先定义。
图3是根据本发明优选实施例的方法流程图。如上所述,此处讲解的方法体现在由计算装置202(图1所示)执行的例程中。该方法开始于步骤300。在步骤302,获取用户输入。这典型地包括要匹配的颜色的反射数据;着色剂类别;织物;染色工序和最大异谱同色值(一般称为DE)。要匹配的颜色可以被在分光光度仪206(图1中所示)上测量,或作为一个文件由零售商、经销商提供等等。最好是获得用于三种不同的光源(DE1,DE2,和DE3)的DE值(例如色差的量化)。
JVT编解码的JM1所采用的方法问题在于,跳跃模式总是最可能的假定不成立。若视频序列包含全局运动(摇摄,变焦,等等),则实际上并不使用跳跃模式。在这些情况下,由于编解码被迫使用高开销的M宏块编码模式,因此压缩效率严重降低,特别是较低的比特率。
已知在全局运动中为改进运动补偿预测的编码效率有两种现有方法。第一种称为“全局运动补偿”,并使用在例如ISO MPEG-4和ITU-TH.263+视频编码标准中。第二种方法在Doc.VCEG-O20,ITU-T视频编码专家组(VCEG)会议,2001年12月4-7日,泰国,pattaya,Shi junSun和Shawmin Lei的题为“全局运动矢量编码”的文章中有所描述,这里引用该文章作为参考。下面简要介绍这两种方法的基本概念。
在1998年2月的国际电信联盟ITU-T的建议H.263“用于低比特率通信的视频编码”的附件P“参考图像再取样”中,描述了全局运动补偿的主旨就是,产生用于运动补偿的参考帧来抵消全局运动效应。为此,在解码器中需要进行复杂的操作,来将参考帧扭曲成更好使用的形式。另外,必须对解码器发送附加信息来引导用于全局运动补偿的新参考帧的建立。特别地,在H.263视频编码标准中使用的全局运动补偿方案使用一个再取样处理,来产生参考帧的扭曲后版本,用于当前图像的运动补偿预测。该参考帧的扭曲版本包括相对于当前图像的形状,大小,位置的改变。再取样处理是根据当前图像的四角和参考帧的对应四角之间的映射而定义的。假定当前图像的亮度分量具有水平尺寸H和垂直尺寸V,通过定义四个概念性运动矢量V00,VH0,V0V,VHV来执行映射,每个概念性运动矢量都描述了如何将当前图像的四角之一移动,从而将它映射到参考帧的对应角。在图5中示出了该操作。然后关于该扭曲的参考帧利用块匹配对当前图像的宏块执行运动补偿预测。这使块匹配处理变得复杂了,因为块匹配处理中使用的扭曲后参考帧的每个像素值,都必须通过将原始(未扭曲的)参考帧中的像素值映射到扭曲后参考帧的共用坐标来产生。这是利用作为运算增强操作的双线性内插完成的。读者可参见H.263视频编码标准的附件P中,关于使用双线性内插处理来产生扭曲后参考帧的像素值的详细说明。
全局运动矢量编码,正如上述文件VCEG-O20所述,是全局运动补偿的一种简化版本。参考帧的使用不变,但传送附加信息来描述全局运动,并在使用全局运动矢量时利用附加宏块模式进行指示。这种方法比上述全局运动补偿技术较为简单,但需附加额外的编码器复杂度。也就是,编码器必须执行额外的运动估计操作,来找到全局运动参数,还需要评价更多的宏块模式来找到最佳模式。并且,对较小分辨率的视频来说,需要被传输的额外的全局运动信息量太大了。
由于上述说明,应当认为,在出现全局运动时,例如摄像机平移,摇摄或变焦时,关于数字视频序列的编码仍然存在显著的未解决的技术问题。具体地说,上述三种现有的视频编码方法都有一些技术缺陷。例如JVT编解码的JM1,对于视频序列中的全局运动没有考虑到任何专门规定。因此,当出现这种运动时,就使视频编码器选择明确模仿该运动的宏块编码模式。由于在每个帧间编码宏块(或子块)中都编码全局运动分量,这导致编码效率的显著降低。全局运动补偿技术(H.263视频编码标准的附件P)考虑到全局运动,将运动补偿预测中使用的参考帧进行扭曲,从而相对于没有使用专门方法来编码全局运动的系统而提高了编码效率。然而,该扭曲处理运动复杂,还必须在编码的视频比特流中传送附加信息,来保证视频序列的正确解码。虽然全局运动矢量编码的相关技术比全局运动补偿要求的运算较少,但也确实增加了一定的编码器复杂性,在视频比特流中也必须传送附加信息来保证视频数据的正确解码。
因此本发明的目的是将本地运动补偿的简单性和全局运动补偿的编码效率结合起来,产生一种具有显著改进的压缩性能和可忽略的增加复杂性的视频编码系统。
发明概述为了克服,或至少减轻现有视频编码系统中全局运动编码的相关问题的严重程度,本发明是基于对JVT编解码的JM1中使用的跳跃模式概念进行的重新定义。根据本发明的方法不仅在出现全局运动(即影响视频帧的全部区域的运动)时提供了编码效率的改进,还能以有效的方式来表示区域运动。
根据本发明,跳跃模式概念被重新定义,即指定为跳跃模式的宏块或者与零(无效)运动矢量相关,或者与非零(有效)运动矢量相关,其中在零运动矢量的情况下,按照与传统跳跃模式宏块相同的方式来处理,并由参考帧直接复制。关于宏块应当与零或非零运动矢量相关的判断,是通过在将要编码宏块的周围区域中分析其他宏块或子块的运动来进行的。若发现周围的区域表现出一定类型的运动,则产生表示该运动的非零运动矢量,并使其与当前宏块相关联。具体地,可以分析在周围宏块或子块中运动的连续性,速率或偏移。例如,若周围区域中的运动表现出一定的连续性,一定的共同速率,或特定形式的发散,则可以向该将要编码的当前宏块分配一个表示该运动的的运动矢量。另一方面,若当前宏块周围的区域并未表现出这种连续性,共同速率或发散性,并具有可忽略的运动,则向将要编码的宏块分配一个零运动矢量,使其直接从参考帧被复制,就好像传统SKIP模式的宏块那样。这样,根据本发明,SKIP模式的宏块可以适应周围区域中的运动,以有效的方式来考虑全局或区域运动。
在本发明的优选实施例中,进行运动分析的周围宏块或子块是将要编码宏块附近的先前编码宏块。这样可保证,在当前宏块被编码时,与宏块周围区域相关的运动信息在编码器(解码器)中是可用的,并可用来直接确定将被分配到当前宏块的运动矢量。该方法使编码器中执行的对周围区域的运动分析在解码器中被准确复制。这样,反过来意味着,根据本发明,不需要对解码器发送附加信息来模拟全局或区域运动。
正如以下将要对本发明详细说明的,本发明所提出的对跳跃模式概念的重新定义相对于先前描述的现有视频编码方法具有显著的技术优点。具体地,根据本发明的方法以有效的方式来考虑视频序列中的全局和区域运动,而不需要对参考帧的复杂扭曲或任何其他苛刻的运算操作。并且,相对于前述的全局运动补偿和全局运动矢量编码方法,不需要在视频比特流中传送附加信息以保证视频数据的正确解码。另外,只需要最小量的修正就可将本发明的方法结合到现存的使用跳跃模式宏块概念的视频编码系统中。
本发明实施例的这些和其他特征,方面和优点在以下结合附图的详细说明中变得明显。应当理解,该附图只是为了举例说明,而不是作为限制本发明的定义。
附图简介图1是根据现有技术的通用视频编码器的示意方框图。
图2是与图1所示编码器对应的根据现有技术的通用视频解码器的示意方框图。
图3表示根据现有技术的宏块形成过程。
图4表示根据JVT视频编解码的JM1蒋宏块划分成块的7种可能的分法。
图5表示根据H.263的附件P的全局运动补偿方案中产生概念性运动矢量的过程,该矢量用于将当前图像的角映射到的参考图像的角。
图6是根据本发明实施例的视频编码器的示意方框图。
图7是与图6所示编码器对应的根据本发明实施例的视频解码器的示意方框图。
图8表示在根据本发明实施例的编码器或解码器中用于跳跃模式宏块的编码和解码块。
图9表示根据本发明的实施例的宏块划分,在将要编码或解码的宏块周围的宏块中的运动,和对该宏块(图中的阴影部分)产生的跳跃模式运动矢量的例子。
图10是其中可以实现根据本发明方法的多媒体通信终端的示意方框图。
本发明的最佳实施模式下面将参照图6到10来具体说明本发明的实施例。
根据本发明,视频编码系统中的跳跃(或SKIP)模式宏块适应于周围图像片段的运动。若在将要编码/解码的宏块周围检测到有效运动,则产生符合该运动的运动参数,并对该宏块进行运动补偿。这样,不需要从编码器向解码器传送附加信息。
图6是根据本发明实施例实现的视频编码器600的示意方框图。当对数字视频序列的帧编码时,编码器600按照与先前结合图1描述的现有视频编码器类似的方式来操作,以产生帧内编码和帧间编码的压缩视频帧。图6所示视频编码器的结构基本上类似于图1所示的现有视频编码器,并对运动估计部分有必要的适当修正,以便实施根据本发明的视频编码方法。该视频编码器中具有与上述现有视频编码器相同的功能和操作的所有部分都被表示为相同的参考标号。
因为本发明涉及帧间编码格式的视频帧的编码,特别涉及作为帧间编码处理一部分的运动补偿预测的细节,因此将省略对帧内编码模式中编码器600的描述,以下的说明将集中在帧间编码模式中编码器执行的操作。
在帧间编码模式中,视频编码器的控制管理器160操作开关102从线路117接收其输入,该输入包括合成器116的输出。合成器116从输入端101逐个宏块地接收视频输入信号。在合成器116接收到构成宏块的亮度和色度值的块之后,可形成对应的预测误差信息的块。该预测误差信息表示当前块及其预测之间的差异,它在运动补偿预测块650中产生。
将该宏块的每个块的预测误差信息传送到DCT变换块104,对预测误差值的每个块执行二维离散余弦变换,以便产生每个块的DCT变换系数的二维阵列。它们被传送到量化器106,利用量化参数QP被量化。量化参数QP的选择由控制管理器160通过控制线115来控制。
然后,表示该宏块的每个块的预测误差信息的量化后DCT系数从量化器106通过线路125被传送到视频复用编码器170。视频复用编码器170利用Z字形扫描过程对每个预测误差块的变换系数进行排序,从而将每个非零值的量化系数表示为游程-等级对,并利用熵编码将该游程-等级对进一步压缩。视频复用编码器170还通过线路126从运动场编码块640接收运动矢量信息,从控制管理器160接收控制信息。它对运动矢量信息和控制信息进行熵编码,并形成单独的编码图像信息的比特流135,它包括熵编码的运动矢量,预测误差和控制信息。
表示该宏块的每个块的预测误差信息的量化后DCT系数还从量化器106传送到逆量化器108。这里对它们进行逆量化,并将得到的逆量化的DCT系数块施加到DCT逆变换块110,进行DCT逆变换,从而产生本地解码的预测误差值的块。然后将本地解码的预测误差值的块输入到合成器112。在帧间编码模式中,设定开关114,使得合成器112还接收运动补偿预测块650产生的该宏块的每个块的预测像素值。合成器112将每个本地解码的预测误差值的块与对应的预测像素值的块结合起来,从而产生重建的图像块,并将它们存储在帧存储器120中。
在从视频源接收到视频信号的随后宏块并进行了前述的在块104,106,108,110,112中进行的编码和解码步骤后,在帧存储器120中建立起该帧的解码后版本。在该帧的最后一个宏块已被处理后,帧存储器120存储一个完全解码的帧,用于在对随后接收的帧间编码格式的视频帧编码时用为运动预测参考帧。
下面将详细说明视频编码器600执行的运动补偿预测。
视频编码器600以类似于前述JVT编解码器的方式进行运动补偿预测。换言之,适于根据所编码视频序列中宏块和运动的特性,对每个帧间编码宏块分配一个编码模式。当检查将哪个编码模式分配到特定宏块时,运动估计块630依次对每个编码模式执行运动估计操作。运动估计块630通过线路128接收用于运动估计的,构成将被编码宏块的亮度和色度值的块(见图6)。然后一个接一个地选择每种可能的编码模式,并执行运动估计,以便根据选择的编码模式和将要编码宏块的像素值,而识别参考帧中对该宏块的最佳匹配。(最佳匹配根据编码模式将包括一个或多个最佳匹配的像素值区域)。每个最佳匹配都与总体成本价值相关联,例如,在被检查宏块中像素值与参考帧中的最佳匹配区域之间的绝对差值之和的线性组合,以及编码该模式和表示运动矢量所需的估计比特数目。一旦获得每种编码模式的最佳匹配,运动估计块630就选择产生最小总体成本值的编码模式作为当前宏块的编码模式。
根据本发明,除了SKIP模式被重新定义以便允许表示全局和区域运动,编码器600使用的编码模式对应于JVT编解码器的JM1提供的那些编码模式(如表格3所示)。更具体地,对SKIP模式进行了修正,使得根据当前宏块周围的图像片段中的运动的特性,对每个跳跃模式宏块都关联一个零运动(无效)矢量或非零(有效)运动矢量。以下这种类型的运动矢量将被称为“跳跃模式运动矢量”。
当检查作为对每种编码模式依次执行的前述运动估计处理一部分的跳跃模式时,编码器首先判断应当使用零或非零的跳跃模式运动矢量。为此,编码器将分析将被编码宏块周围的图像片段(例如宏块和/或子块)的运动。若判断该周围区域表现出某种类型的运动,例如具有指示全局或区域运动的特性,则产生一个非零值的跳跃模式运动矢量表示该运动。另一方面,若编码器判断当前宏块周围的区域并未表现出全局或区域运动,而是只有可忽略量级的运动,则产生一个零值的跳跃模式运动矢量。换言之,若编码器判断当前宏块的周围区域中的运动具有全局特性,则跳跃模式编码适于考虑这种运动(通过产生相关联的非零值跳跃模式运动矢量来表示该运动)。或者,若没有出现这种运动,则产生零值的运动矢量,使得本发明修正的该跳跃模式按照传统方式操作,即零值的跳跃模式运动矢量导致该宏块直接从参考帧复制。
在对包括根据本发明修正的跳跃模式的每种可用编码模式执行了运动估计操作后,编码器600判断哪种编码模式产生了最小总体成本值,并选择该模式作为当前宏块的编码模式。最后选择的编码模式的指示,例如从表格3所示的一组码字中选择的一个可变长码字,与该宏块相关联,并包含在视频比特流635中。这使对应的解码器可识别该宏块的编码模式并可利用正确的运动补偿预测形式来正确地重建该宏块。
关于对将被编码宏块周围区域中的运动进行分析以便确定应当使用零值还是非零值跳跃模式运动矢量,将参照附图中的图8进行详细说明。图8表示与产生跳跃模式运动矢量相关的运动估计块630的功能单元。包括运动信息存储器801,周围运动分析块802,有效运动参数产生块803和零运动参数产生块804。
关于产生零值跳跃模式运动矢量还是非零值跳跃模式运动矢量的判断是由周围运动分析块802做出的。通过利用预定的分析方案对将要编码宏块周围的预定区域中宏块或子块的运动进行分析和归类,从而做出该判断。为了执行分析,周围运动分析块802从运动信息存储器801中检索与周围区域中宏块或子块相关的运动信息。根据实现的特定情况,周围运动分析块可以分析在周围宏块或子块中运动的连续性,速率或偏移。例如,若周围区域中的运动表现出一定级别的连续性,一定的共同速率(例如图9所示),或特定形式的发散,则这可能意味着出现了某种形式的全局或区域运动。结果周围运动分析块认为在周围区域中出现了“有效运动”,应当使用非零值跳跃模式运动矢量。另一方面,若当前宏块的周围区域并未表现出这种连续性,共同速率或发散性,并具有通常可忽略的运动,则周围运动分析块认为在周围区域中出现了“无效运动”,因此应当使用零值跳跃模式运动矢量。
如图8所示,若周围运动分析块判断在周围区域中出现了“有效运动”,则它发送一个对该效应的指示到有效运动参数产生块803,形成表示该周围区域中运动的非零值跳跃模式运动矢量。为此,有效运动参数产生块803从运动信息存储器801中检索与周围宏块和/或子块相关的运动信息。可替换地,可将该信息通过周围运动分析块802传送到有效运动参数产生块。若周围运动分析块判断在周围区域中出现了“无效运动”,则它发送一个对应的指示到零运动参数产生块804,形成一个零值跳跃模式运动矢量。
在本发明的优选实施例中,周围运动分析块所分析的宏块或子块的周围区域包括邻近将要编码宏块的先前编码的宏块(图9)。这时,在编码器中执行的对周围区域中运动的分析和归类可以在解码器中被准确地复制。这进而又意味着,根据本发明,不需要向解码器发送附加信息来模拟全局或区域运动。
在本发明的可替换实施例中,当确定使用零值还是非零值的跳跃模式运动矢量时,还要考虑已编码宏块的编码模式。例如,若周围运动分析块判断存在一个或多个静止的邻近宏块,则使用零值跳跃模式运动矢量。
在本发明的第一优选实施例中,周围运动分析块802根据以下三个步骤对宏块周围区域中的运动进行归类。首先,周围运动分析块检索将要编码宏块周围的宏块或子块的运动信息(即,将要编码宏块周围的先前编码的宏块,如图9所示),并对该宏块产生一个中间运动矢量预测。例如,该中间运动矢量预测是按照与JVT编解码器的JM1的运动矢量预测(参见T.Weigland“Joint Model Number 1”,Doc.JVT-A003,ISO/IEC MPEG和ITU-T VCEG的联合视频组,2002年1月)类似的方式执行的。然后周围运动分析块判断,任何得到的运动矢量分量是否具有大于一定阈值(例如像素的一半)的绝对值。若满足该条件,则该运动被归类为“有效运动”,否则被归类为“无效运动”。最后,根据归类的结果,周围运动分析块802发送一个指示到有效运动参数产生块803或零运动参数产生块804,以便产生适当的跳跃模式运动参数。
根据本发明第一优选实施例的周围运动分析块的实现由于以下两个原因是非常有利的。第一,在典型的视频编解码器中,例如JVT编解码器中,使用中间预测算子来预测图像方块的运动矢量。根据第一优选实施例,在周围运动分析块和有效运动参数产生块中使用了该相同的预测算子,来分析将要编码宏块的周围区域中的运动,并产生用于SKIP模式宏块的运动参数。这样,本发明可以通过对视频编解码器附加最小程度的总体实现复杂性来实现。第二,因为周围运动分析块802通过产生和分析中间运动矢量而归类周围区域中的运动,因此有效运动参数产生块803可以向运动补偿块只传送在周围运动分析块中已经产生的中间运动参数。这也可以使实现的复杂性最小,因为不需要产生额外的运动参数。
在根据本发明的第二优选实施例中,周围运动分析块分析将要编码的宏块附近的运动,并将其归类为“有效运动”或“无效运动”。在“有效运动”的情况下,激活有效运动参数产生块,在“无效运动”的情况下,激活零运动参数产生块。在本实施例中若满足以下两个条件之一或全部,则产生“无效运动”的类别,否则将该运动归类为“有效运动”,这两个条件是条件1紧挨在当前宏块的上面或左面的宏块不可用(即在图像之外,或属于不同的图像条)。
条件2在16×16帧间模式的运动矢量预测中使用的紧挨在上面或左面的宏块或块具有零运动矢量,并使用最新的图像作为运动补偿的参考。
下面将参照图7来说明根据本发明实施例的视频解码器700的操作。图7所示视频解码器的结构基本上类似于图2所示的现有视频解码器,并对解码器中执行运动估计操作的部分进行了适当的修正。该视频解码器中具有与上述现有视频编码器相同的功能和操作的所有部分都被表示为相同的参考标号。还假定图7的视频解码器对应于图6的编码器,因此能够接收和解码编码器600发送的比特流635。并且,由于本发明实施帧间编码格式的视频帧的解码,因此解码器700执行的关于帧内编码帧的解码的说明将被省略。
帧间编码帧逐个宏块地执行解码,每个帧间编码宏块基本上都在视频比特流635中接收到与其相关的编码信息之后立刻被解码。根据编码模式,帧间编码宏块的比特流中包含的压缩视频数据可能包括每个块的VLC编码的预测误差信息,该宏块(或子块)的运动矢量信息,和编码的控制信息的组合,该编码控制信息包含编码当前宏块所使用的编码模式的指示。若宏块以跳跃模式被编码,则该比特流中不包含与该宏块相关的预测误差或运动矢量信息。
视频复用解码器270接收视频比特流635并从任何可能出现的编码预测误差和/或运动矢量信息中分离出控制信息,该控制信息包含该宏块的编码模式的指示。
如前所述,预测误差信息被编码为表示熵编码后的等级和游程值的可变长度码字。若对当前宏块提供预测误差信息,则视频复用解码器270通过利用对应编码器600所用编码方法的可变长度解码方法来解码该可变长度码字而恢复出等级和游程值。然后重建每个预测误差块的量化后DCT变换系数值的阵列,并将它们传送到逆量化器210进行逆量化。逆量化后的DCT系数在DCT逆变换器220中进行逆变换,产生重建后的该宏块每个块的预测误差值的阵列。
与该宏块相关的编码模式指示和编码后运动矢量信息(若有的话)都在视频复用解码器中被解码,并通过控制线225被传送到运动补偿预测块740。运动补偿预测块740利用编码模式指示和运动矢量信息(若有的话)来形成当前宏块的预测。更具体地,运动补偿预测块740通过从参考帧中的一个像素区域(或多个区域)复制对应的像素值,而形成该宏块的每个块的像素值的阵列。该预测,即由参考帧导出的像素值块,从运动补偿预测块740传送到合成器230,在合成器230中与解码后的预测误差信息(若有的话)相结合。这样,就得到了该宏块的每个块的重建后像素值的一个阵列。
重建的像素值被传送到解码器的视频输出端280,并存储在帧存储器250中。从而,在帧间编码帧的随后宏块被解码和存储时,在帧存储器250中逐步地组拼起一个解码帧,并作为其他帧间编码帧的运动补偿预测中可以使用的参考帧。
根据本发明,解码器700的运动补偿预测块740包括类似于编码器600中的运动信息存储块801,周围运动分析块802,有效运动参数产生块803和零运动参数产生块804。这些功能块用于确定以跳跃模式编码的宏块是应当与零值还是非零值的跳跃模式运动矢量相关联。更具体地,当判断将被解码的宏块是以跳跃模式编码时,周围运动分析块802在该将要解码的宏块周围的预定区域中按照对应于编码器600使用的方式对先前解码的宏块和/或子块的运动进行分析和归类。作为分析结果,当前宏块将与非零值的跳跃模式运动矢量或零值的跳跃模式运动矢量相关联。然后使用该运动矢量来形成该宏块的预测。若该宏块与零值的跳跃模式运动矢量相关联,则通过从参考帧的对应位置简单复制像素值来重建。另一方面,若它与非零值的运动矢量相关联,则使用该非零值运动矢量所指示的像素值区域来产生该宏块的像素值。
应当注意,通过以本发明提出的方式来修正跳跃模式概念,并在解码器中执行周围运动分析,从而可以在视频序列中考虑到全局或区域运动,而无需在视频比特流中提供关于这种运动的明确信息。
下面将说明包括适于根据本发明操作的编码和解码装置的终端设备。附图中的图10示出了根据ITU-T建议H.324实现的多媒体终端80。该终端可被认为是多媒体收发设备。它包括捕获、编码和复用多媒体数据流以便通过通信网络传输的多个元件,以及接收、解复用、解码和显示所接收到的多媒体内容的多个元件。ITU-T建议H.324定义了该终端的全部操作并涉及到管理该终端不同构成部分的操作的其它建议。这种多媒体终端可用于实时应用中,例如对话式电视电话,或非实时应用,例如从互联网上的多媒体内容服务器中对视频片断的检索和/或流播。
在本发明的上下文中,应当认识到图10中所示的H.324终端只是可应用本发明方法的多种可替换多媒体终端设备中的一种。还应当注意多种可替换终端的出现与终端设备的位置和实现有关。如图10所示,多媒体终端可以位于与诸如模拟PSTN(公共交换电话网络)之类固定线电话网络连接的通信设备中。在这种情况下,多媒体终端装备有调制解调器91,它与ITU-T建议V.8,V.34以及可选的V.8bis兼容。可替换地,多媒体终端可以与外部调制解调器连接。该调制解调器可以将多媒体终端产生的复用后数字数据和控制信号转换为适于通过PSTN传输的模拟形式。它还可以使多媒体终端能够从PSTN接收模拟的数据和控制信号,并将它们转换为可以由该终端以适当方式解复用和处理的数字数据流。
H.324多媒体终端还可以这种方式实现,即它可以与数字固定线路网络例如ISDN(综合业务数字网)直接连接。在这种情况下,ISDN用户网络接口将替换调制解调器91。在图10中,该ISDN用户网络接口由可选方框92表示。
H.324多媒体终端可适用于移动通信应用中。如果与无线通信链接一起使用,则可用图10中可选块93所表示的任何适当的无线接口来替换调制解调器91。例如,H.324/M多媒体终端可包括无线电收发器,该无线电收发器可以与当前第2代GSM移动电话网络或今后的第3代UMTS(通用移动电话系统)连接。
应当注意,多媒体移动终端是设计用于双向通信的,它用于视频数据的发送和接收,同时提供根据本发明实现的视频编码器和视频解码器是有利的。这种编码器和解码器对通常被实现为一个单独的组合功能单元,称为“编解码器”。
现在将参照图10来详细说明典型的H.324多媒体终端。
该多媒体终端80包括称为“终端装置”的多种元件。它包括分别由参考数字81、82和83表示的视频、音频和综合信息设备。该视频设备81可包括例如用于捕获视频图像的摄像机、用于显示所接收到的视频内容的监视器和可选择的视频处理设备。音频设备82通常包括例如用于捕获口头消息的麦克风和用于再现所接收到的音频内容的扬声器。音频设备也可以包括附加的音频处理单元。综合信息设备83可包括数据终端、键盘、电子书写板或静止图像收发器,例如传真单元。
视频设备81与视频编解码器85耦合。该视频编解码器85包括视频编码器和对应的视频解码器,它们都是根据本发明实现的。下面将说明这种编码器和解码器。该视频编解码器85负责以适当的形式对所捕获的视频数据编码以便以便经过通信链路进行传输,以及对从通信网络接收到的压缩视频内容进行解码。在图10所示的例子中,视频编解码器是根据JVT编解码器的JM1经过适当的修正而实现的,从而在视频编解码器的编码器和解码器中实现了根据本发明的修正后的SKIP模式概念。
该终端的音频设备与图10中由附图标记86所标示的音频编解码器耦合。与视频编解码器一样,音频编解码器包括一编码器/解码器对。它将终端的音频设备所捕获的音频数据转换为适合于通过通信链路传输的形式,并将从网络中接收到的编码音频数据转换为适合于在例如终端的扬声器中再现的形式。该音频编解码器的输出被传送到一个延迟块87。该延迟块87用于补偿视频编码处理所引入的延迟,从而确保音频和视频内容的同步。
多媒体终端的系统控制块84利用适当的控制协议(信令块88)控制终端到网络的信令,从而建立发射和接收终端之间的共同操作模式。信令块88交换关于发射和接收终端的编码和解码能力的信息,并可用于启动视频编码器的各种编码模式。该系统控制块84还控制数据加密的使用。可以从加密块89向复用器/解复用器(MUX/DMUX单元)90传输关于在数据传输中所用的加密类型的信息。
在多媒体终端的数据传输期间,MUX/DMUX单元90将编码和同步后的视频和音频流与从综合信息设备83输入的数据以及可能的控制数据合并,从而形成单一的比特流。由加密块89提供的将要应用于该比特流的关于数据加密类型的信息(若有的话)可用于选择加密模式。因此,当接收到复用后和可能加密后的多媒体比特流时,MUX/DUMU单元90负责对该比特流解密,将其分割为它的构成多媒体分量,并将这些分量传输到适当的编解码器和/或终端设备中以便解码和再现。
如果多媒体终端80为移动终端,即,如果它装备有无线电收发器93,则本领域技术人员应当理解它可能还包含其它元件。在一个实施例中,它包含具有显示器和键盘的用户接口,从而可以实现用户对多媒体终端80的操作;中央处理单元,例如微处理器,它控制负责多媒体终端不同功能的块;随机存取存储器RAM;只读存储器ROM和数字摄像机。在只读存储器ROM中存储微处理器的操作指令,该操作指令为对应多媒体终端80的基本功能的程序代码,可以在用户的控制下由微处理器按照需要来执行。根据该程序代码,微处理器使用无线电收发器93来形成与移动通信网络的连接,从而使多媒体终端80能够经过无线电链路与移动通信网络之间发射信息和接收信息。
微处理器监视用户接口的状态并控制数字摄像机。响应于用户的命令,微处理器命令摄像机将数字图像记录在RAM中。如前面所述,一旦捕获到图像或数字视频序列时,或者可替换地在捕获处理期间,微处理器就将图像分为图像片段(例如多个宏块),并使用编码器对这些片段执行运动补偿编码,从而产生压缩后的图像序列。用户可以命令多媒体终端80在其显示器上显示所捕获的图像,或利用无线电收发器93将压缩后的视频序列发送到其它多媒体终端、与固定线路网络(PSTN)连接的视频电话或其它电信设备。在优选实施例中,第一个片段被编码后马上就开始图像数据的传输,从而可以使接收方能够以最小延迟开始对应的解码处理。
虽然是在特定实施例中进行描述,但是本领域技术人员应当知道还可以对这些教导进行多种变化和修改。因此,虽然在参照一个或多个特定实施例描述本发明,本领域技术人员应当明白在不脱离本发明如上所阐述的范围和精神的情况下还可以实现特定的修改或变化。
特别是,根据本发明的可替换实施例,周围运动分析块802适于将周围区域的运动归类为两个以上的运动类型。例如,一种包含三种类别的运动的有意义的分类可以是“连续运动”、“有效运动”、“无效运动”。这样,就可以产生对应连续运动的典型情况的特定运动参数。
在本发明的另一个可替换实施例中,可以去掉周围运动分析块,并对所有跳跃模式宏块激活有效运动参数产生块。
根据本发明的另一可替换实施例,并不使用周围运动分析块来指示分类信息,而使用其它方式(例如宏块、片段、图像或序列级别中的辅助信息)来指示。
在另一可替换实施例中,可以利用这种方式将周围运动分析块临时禁用或启用。
在另一可替换实现中,根据周围运动分析块的输出可以刷新宏块模式表从而给更可能出现的模式提供更高的优先级。在相关实施例中,例如通过取消跳跃,可以根据周围运动分析块的输出来完全再生宏块模式表。
应当理解,有效运动参数产生块803可以以多种方式来实现。在本发明的特定实施例中,它适于根据例如周围运动的持续、速率或偏差来产生运动参数。也可发送其它辅助信息来引导产生运动参数。在可替换实施例中,有效运动参数产生块适于输出多个运动矢量,这些运动矢量可用于宏块的不同部分。
本发明也可用于为SKIP模式以外或其它的宏块模式产生运动补偿预测。它不受宏块结构的限制,可用于任何基于分段的视频编码系统。
权利要求
1.一种用于数字视频序列的编码的运动补偿预测方法,所述数字视频序列包括多个帧,所述方法包括以下步骤利用关于序列中第二帧的运动补偿预测而给该序列中将要编码的第一帧的一个片段分配一个编码模式,所述编码模式是包含跳跃模式的一组可能编码模式中的一种,其中当所述跳跃模式被分配到第一帧的所述片段时,它指示i)该片段具有可忽略量级的运动,这种情况下,通过从第二帧的对应区域进行直接复制而形成对该片段的预测,或者ii)该片段在视频序列中具有全局或区域运动的运动特性,这种情况下,利用表示所述全局或区域运动的运动信息,通过关于第二帧的运动补偿预测而形成对该片段的预测。
2.如权利要求1所述的方法,还包括对将要编码的片段周围第一帧的区域中的运动进行分析的步骤,以便确定所述区域中运动的特性。
3.如权利要求3所述的方法,其中,将要编码的片段周围第一帧的所述区域包括该第一帧的先前编码过的片段。
4.如权利要求2所述的方法,其中,若判断将要编码的片段周围第一帧的所述区域中的运动具有可忽略的量级,则将跳跃模式分配为该片段的编码模式,并且指示零运动的运动信息与该片段相关联。
5.如权利要求2所述的方法,其中,若判断将要编码的片段周围第一帧的所述区域中的运动具有全局或区域运动的特性,则将跳跃模式分配为该片段的编码模式,并且指示周围区域中的全局或区域运动的运动信息与该片段相关联。
6.如权利要求2所述的方法,其中,所述分析包括检查将要编码的所述片段周围第一帧的所述区域,以便识别以下的至少一种运动类型连续运动,具有共同速率的运动,和具有一定偏移量的运动。
7.如权利要求2所述的方法,其中,若第一帧的一个片段在将被编码的片段周围第一帧的区域中没有运动,则将跳跃模式分配为该片段的编码模式,并且指示零运动的运动信息与该片段相关联。
8.一种用于对编码后数字视频序列进行解码的运动补偿预测方法,所述数字视频序列包括多个帧,所述方法包括以下步骤接收编码模式的指示,该编码模式是利用关于序列中第二帧的运动补偿预测而分配给该解码序列中第一帧的一个片段的,所述编码模式是包含跳跃模式的一组可能编码模式中的一种,和当指示所述跳跃模式作为分配给第一帧的所述片段的编码模式时,判断i)所述跳跃模式是否指示该片段具有可忽略量级的运动,这种情况下,通过从第二帧的对应区域直接进行复制而执行对该片段的运动补偿预测,或者ii)所述跳跃模式是否指示该片段在视频序列中具有全局或区域运动的运动特性,这种情况下,利用表示所述全局或区域运动的运动信息,关于第二帧来执行对该片段的运动补偿预测。
9.如权利要求8所述的方法,其中,该判断步骤包括对将要解码的片段周围第一帧的先前解码区域中的运动进行分析,以便确定所述区域中运动的特性。
10.如权利要求9所述的方法,其中,所述分析包括,检查将要解码的所述片段周围第一帧的先前解码区域,以便识别以下的至少一种运动类型连续运动,具有共同速率的运动,和具有一定偏移量的运动,其中,若在所述周围区域中识别出至少一种所述类型的运动,则判断该跳跃模式指示将要解码的片段在视频序列中具有全局或区域运动的运动特性。
11.如权利要求9所述的方法,其中,若第一帧的一个片段在将要编码的片段周围第一帧的先前解码区域中没有运动,则判断该跳跃模式指示将要解码的片段具有可忽略量级的运动。
12.一种安排为利用运动补偿预测来编码数字视频序列的视频编码器,所述数字视频序列包括多个帧,所述编码器包括利用关于序列中第二帧的运动补偿预测而给将要编码的该序列中第一帧的一个片段分配一个编码模式的装置,其中所述编码模式是包含跳跃模式的一组可能模式中的一种,和用于对该片段形成预测的装置,其中当所述跳跃模式被分配给第一帧的所述片段时,指示i)该片段具有可忽略量级的运动,这种情况下,所述形成装置通过从第二帧的对应区域进行直接复制而形成对该片段的预测,或者ii)该片段在视频序列中具有全局或区域运动的运动特性,这种情况下,所述形成装置利用表示所述全局或区域运动的运动信息,关于第二帧而形成对该片段的预测。
13.如权利要求12所述的编码器,还包括对将要编码的片段周围第一帧的区域中的运动进行分析的装置,以便确定所述区域中运动的特性。
14.如权利要求13所述的编码器,其中,所述分析装置被安排用于分析第一帧的先前编码过的片段中的运动。
15.如权利要求13所述的编码器,其中,若所述分析装置判断所述区域中的运动具有可忽略的量级,则该编码器被安排用来将跳跃模式分配为该片段的编码模式,并使指示零运动的运动信息与该将要编码的片段相关联。
16.如权利要求13所述的编码器,其中,若所述分析装置判断将要编码的片段周围第一帧的所述区域中的运动具有全局或区域运动的特性,则编码器被安排用来将跳跃模式分配为该片段的编码模式,并使指示该周围区域中的全局或区域运动的运动信息与该将要编码的片段相关联。
17.如权利要求13所述的编码器,其中,所述分析装置包括,用于识别以下至少一种运动类型的装置,所述运动类型为连续运动,具有共同速率的运动,和具有一定偏移量的运动。
18.如权利要求13所述的编码器,其中,若所述分析装置判断第一帧的一个片段在将被编码的片段周围第一帧的区域中没有运动,则编码器被安排用来将跳跃模式分配为该片段的编码模式,并使指示零运动的运动信息与该将要编码的片段相关联。
19.一种被安排为利用运动补偿预测对编码后数字视频序列进行解码的视频解码器,所述数字视频序列包括多个帧,所述解码器包括用于接收编码模式的指示的装置,该编码模式是利用关于序列中第二帧的运动补偿预测而分配给该编码序列中第一帧的一个片段的,所述编码模式是包含跳跃模式的一组可能编码模式中的一种,和用于形成对该片段的预测的装置,其中当指示所述跳跃模式作为分配给第一帧的所述片段的编码模式时,该解码器被安排用来判断i)所述跳跃模式是否指示该片段具有可忽略量级的运动,这种情况下,所述形成装置通过从第二帧的对应区域直接进行复制而形成对该片段的预测,或者ii)所述跳跃模式是否指示该片段在视频序列中具有全局或区域运动的运动特性,这种情况下,所述形成装置利用表示所述全局或区域运动的运动信息,通过关于第二帧的运动补偿预测来形成对该片段的预测。
20.如权利要求19所述的解码器,还包括对将要解码的片段周围第一帧的先前解码区域中的运动进行分析的装置,以便确定所述区域中运动的特性。
21.如权利要求20所述的解码器,其中,若所述分析装置判断所述区域中的运动具有可忽略的量级,则该编码器被安排用来使指示零运动的运动信息与该将要解码的片段相关联。
22.如权利要求20所述的解码器,其中,若所述分析装置判断所述区域中的运动具有全局或区域运动的特性,则该解码器被安排用来使指示周围区域中的全局或区域运动的运动信息与该将要解码的片段相关联。
23.如权利要求20所述的解码器,其中,所述分析装置包括用于识别以下至少一种运动类型的装置,所述运动类型为连续运动,具有共同速率的运动,和具有一定偏移量的运动。
24.如权利要求20所述的解码器,其中,若所述分析装置判断第一帧的一个先前解码的片段在所述区域中没有运动,则解码器被安排用来使指示零运动的运动信息与该将要解码的片段相关联。
25.一种多媒体终端,包括用于获得数字视频序列的装置;和视频编码器,被安排用于利用运动补偿预测来编码该数字视频序列,所述数字视频序列包括多个帧,其中该视频编码器包括利用关于序列中第二帧的运动补偿预测而对将要编码的该序列中第一帧的一个片段分配一个编码模式的装置,其中所述编码模式是包含跳跃模式的一组可能模式中的一种,和用于对该片段形成预测的装置,其中当所述跳跃模式被分配给第一帧的所述片段时,指示i)该片段具有可忽略量级的运动,这种情况下,视频编码器被安排为使所述形成装置通过从第二帧的对应区域进行直接复制而形成对该片段的预测,或者ii)该片段在视频序列中具有全局或区域运动的运动特性,这种情况下,视频编码器被安排为使所述形成装置利用表示所述全局或区域运动的运动信息,关于第二帧而形成对该片段的预测。
26.一种多媒体终端,包括用于获得编码后的数字视频序列的装置;和视频解码器,被安排用于利用运动补偿预测对编码后数字视频序列进行解码,所述数字视频序列包括多个帧,所述解码器包括用于接收一个编码模式的指示的装置,该编码模式是利用关于序列中第二帧的运动补偿预测而分配给该编码序列中第一帧的一个片段的,所述编码模式是包含跳跃模式的一组可能编码模式中的一种,和用于形成对该片段的预测的装置,其中当指示所述跳跃模式作为分配给第一帧的所述片段的编码模式时,解码器被安排用于判断i)所述跳跃模式是否指示该片段具有可忽略量级的运动,这种情况下,所述形成装置通过从第二帧的对应区域直接进行复制而形成对该片段的预测,或者ii)所述跳跃模式是否指示该片段在视频序列中具有全局或区域运动的运动特性,这种情况下,所述形成装置利用表示所述全局或区域运动的运动信息,通过关于第二帧的运动补偿预测来形成对该片段的预测。
27.一种视频编解码器,包括视频编码器,被安排用于利用运动补偿预测来编码一个数字视频序列,所述数字视频序列包括多个帧,所述编码器包括利用关于序列中第二帧的运动补偿预测而对将要编码的该序列中第一帧的一个片段分配一个编码模式的装置,其中所述编码模式是包含跳跃模式的一组可能模式中的一种,和用于对该片段形成预测的装置,其中当所述跳跃模式被分配到第一帧的所述片段时,指示i)该片段具有可忽略量级的运动,这种情况下,该视频编码器被安排为使所述形成装置通过从第二帧的对应区域进行直接复制而形成对该片段的预测,或者ii)该片段在视频序列中具有全局或区域运动的运动特性,这种情况下,该视频编码器被安排为使所述形成装置利用表示所述全局或区域运动的运动信息,关于第二帧而形成对该片段的预测;和视频解码器,被安排用于利用运动补偿预测对编码后数字视频序列进行解码,所述数字视频序列包括多个帧,所述解码器包括用于接收一个编码模式的指示的装置,该编码模式是利用关于序列中第二帧的运动补偿预测而分配给该编码序列中第一帧的一个片段的,所述编码模式是包含跳跃模式的一组可能编码模式中的一种,和用于形成对该片段的预测的装置,其中当指示所述跳跃模式作为分配给第一帧的所述片段的编码模式时,该解码器被安排用于判断i)所述跳跃模式是否指示该片段具有可忽略量级的运动,这种情况下,所述形成装置通过从第二帧的对应区域直接进行复制而形成对该片段的预测,或者ii)所述跳跃模式是否指示该片段在视频序列中具有全局或区域运动的运动特性,这种情况下,所述形成装置利用表示所述全局或区域运动的运动信息,通过关于第二帧的运动补偿预测来形成对该片段的预测。
全文摘要
一种运动补偿的视频编码方法,可使具有全局运动分量的视频序列以有效的方式被编码。视频编码器(600)被安排用于给将要编码的宏块分配特定的编码模式,该编码模式包括跳跃模式,用于指示以下两种可能的宏块运动(a)零运动,或(b)全局或区域运动。在每个宏块都被编码时,检查该宏块周围的先前编码的区域,并判断该区域中的运动特性。通过跳跃模式,若该区域中的运动具有全局运动或区域运动的特性,则使该宏块与将要编码宏块和描述全局运动或区域运动的运动矢量相关联。若该区域表现出可忽略量级的运动,则使该宏块与零值运动矢量相关联。
文档编号H04N7/26GK1643912SQ03806139
公开日2005年7月20日 申请日期2003年3月14日 优先权日2002年3月15日
发明者J·莱内马 申请人:诺基亚有限公司