视频编码和解码方法以及视频编码器和解码器的制作方法

文档序号:7620687阅读:184来源:国知局
专利名称:视频编码和解码方法以及视频编码器和解码器的制作方法
技术领域
根据本发明的设备和方法涉及视频编码,更具体地讲,涉及提供运动可伸缩性(scalability)的视频编码。
背景技术
随着包括互联网的信息通信技术的发展,视频通信以及文本和语音通信已迅速增长。传统的文本通信不能满足各种用户需求,因此,能够提供诸如文本、图片、和音乐的各种类型信息的多媒体业务得到增长。由于多媒体数据的量相对于其它类型的数据通常较大,所以多媒体数据需要大容量存储介质和用于传输的较宽带宽。因此,需要用于发送包括文本、视频、和音频的多媒体数据的压缩编码方法。例如,具有640×480的分辨率的24位真彩色图像需要每帧640×480×24比特,即大约7.37兆比特的数据的容量。当以每秒30帧的速度发送诸如这样的图像时,需要221兆比特/秒的带宽。当存储基于这样的图像的90分钟电影时,需要大约1200吉比特(Gbit)的存储空间。因此,压缩编码方法对于发送包括文本、视频、和音频的多媒体数据是必需的。
在这样的压缩编码方法中,数据压缩的基本原理在于去除数据冗余。数据冗余通常定义为(i)空间冗余,在空间冗余中,相同的颜色或对象在图像中被重复;(ii)时间冗余,在时间冗余中,在运动图像的相邻帧之间几乎没有变化或者相同的声音在音频中被重复;或者(iii)精神视觉冗余,其考虑对于高频迟钝的人类视力和感觉。通过去除这样的数据冗余可压缩数据。数据压缩可大体上根据源数据是否损失而分为有损/无损压缩,根据单个帧是否被独立地压缩而分为帧内/帧间压缩,并根据压缩所需的时间是否与恢复所需的时间相同而分为对称/不对称压缩。另外,数据压缩在压缩/恢复时间延迟不超过50ms时被定义为实时压缩,并在帧具有不同的分辨率时被定义为可伸缩(scalable)压缩。例如,对于文本或者医疗数据,通常使用无损压缩。对于多媒体数据,通常使用有损压缩。
图1是传统视频编码器100的方框图。
参照图1,传统视频编码器100包括运动估计器110,用于估计视频帧之间的运动;运动补偿器120,用于去除视频帧之内的时间冗余;空间变换器130,执行空间变换以去除空间冗余;量化器140,用于量化已去除空间冗余的帧;运动信息编码器160;和比特流产生器150,用于产生比特流。
更具体地讲,运动估计器110找到将被用于通过补偿当前帧的运动而去除时间冗余的运动矢量。运动矢量被定义为从参考帧中的最佳匹配块相对于当前帧中的块的位移,这将参照图2来进行描述。虽然原始视频帧可被用作参考帧,但是很多已知的视频编码技术使用通过对原始视频帧解码而获得重建帧作为参考帧。
运动补偿器120使用由运动估计器110计算出的运动矢量来去除存在于当前帧中的时间冗余。为此,运动补偿器120使用参考帧和运动矢量来产生预测帧并将当前帧与预测帧比较,由此产生残余帧。
空间变换器130空间变换残余帧以获得变换系数。最通常使用的空间变换算法是离散余弦变换(DCT)。最近,小波变换已被广泛地采用。
量化器140量化通过空间变换器130获得的变换系数。量化强度根据比特率而被确定。
运动信息编码器160对由运动估计器110计算出的运动矢量编码以减小数据量,并产生包含在比特流中的运动信息。
比特流产生器150产生包含量化的变换系数和编码的运动矢量的比特流。尽管未在图1中显示,但是在比如MPEG-2、MPEG-4、和H.264的传统视频编码方案中,量化的变换系数不被直接插入到比特流中。而是在扫描、伸缩(scaling)、和熵编码之后创建的纹理信息(texture information)被包含在比特流中。
图2表示传统的运动估计过程和在运动估计期间使用的时间模式。
运动估计过程基本上使用块匹配算法而被执行。在搜索区域内移动参考帧中的块以与当前帧中的块比较,并且计算这两个块之差和用于对运动矢量编码的代价(cost)。使代价最小化的参考帧中的块被选择为最佳匹配参考块。尽管全搜索保证运动估计中的最佳性能,但该过程需要过多的计算负荷。在当前广泛使用的视频编码中,三步搜索或分层可变大小块匹配(HVSBM)通常被用于运动估计。有三种用于运动估计的时间帧间模式向前、向后、和双向。传统视频编码方案使用利用来自当前帧的信息的帧间预测模式和帧内预测模式。
使用运动补偿来去除时间冗余的可伸缩视频编码方案在充足的比特率提供高视频压缩效率。然而,由于传统方案在保持相同的分配给通过视频编码产生的比特流中包含的运动信息的比特数的同时减小了分配给该比特流中包含的纹理信息的比特数,所以传统方案在低比特率具有低压缩效率。当以非常低的比特率执行传统视频编码方案时,结果比特流可包含很少的纹理信息,或者,在极端的情况下,仅包含运动信息。因此,难以减少运动信息的传统视频编码在低比特率时遭受视频质量的显著降低。因此,需要为调整分配给比特流中的运动信息的比特数而设计的算法。

发明内容
本发明提供能够调整分配给运动信息的比特数量的视频编码和解码方法以及视频编码器和解码器。
根据本发明的一方面,提供了一种视频编码方法,包括估计视频帧中每一个块的基层运动矢量和增强层运动矢量;使用增强层运动矢量去除视频帧中的时间冗余;空间变换已在其中去除时间冗余的视频帧,并量化空间变换的视频帧以获得纹理信息;选择每一个块的估计出的基层运动矢量和估计出的增强层运动矢量之一;和产生包含为每一个块选择的运动矢量和纹理信息的比特流。
根据本发明的另一方面,提供了一种视频编码方法,包括估计视频帧中每一个块的基层运动矢量和增强层运动矢量;使用增强层运动矢量去除视频帧中的时间冗余;空间变换已在其中去除时间冗余的视频帧,并量化空间变换的视频帧以获得纹理信息;和产生包含每一个块的估计出的基层运动矢量、作为估计出的基层运动矢量和估计出的增强层运动矢量之差的残余运动矢量、和纹理信息的比特流。
根据本发明的另一方面,提供了一种视频编码器,包括运动估计器,估计视频帧中每一个块的基层运动矢量和增强层运动矢量;运动补偿器,使用增强层运动矢量去除视频帧中的时间冗余;空间变换器,空间变换已在其中去除时间冗余的视频帧;量化器,量化空间变换的视频帧以获得纹理信息;运动矢量选择器,选择每一个块的估计出的基层运动矢量和估计出的增强层运动矢量之一;和比特流产生器,产生包含为每一个块选择的运动矢量和纹理信息的比特流。
根据本发明的另一方面,提供了一种视频编码器,包括运动估计器,估计视频帧中每一个块的基层运动矢量和增强层运动矢量;运动补偿器,使用增强层运动矢量去除视频帧中的时间冗余;空间变换器,空间变换已在其中去除时间冗余的视频帧;量化器,量化空间变换的视频帧以获得纹理信息;和比特流产生器,产生包含每一个块的估计出的基层运动矢量、作为估计出的基层运动矢量和估计出的增强层运动矢量之差的残余运动矢量、和纹理信息的比特流。
根据本发明的另一方面,提供了一种预解码方法,包括接收包含每一个块的基层运动矢量、作为基层运动矢量和增强层运动矢量之差的残余运动矢量、和通过对视频帧编码获得的纹理信息的比特流;和删截残余运动矢量的至少一部分。
根据本发明的另一方面,提供了一种视频解码方法,包括解释输入比特流,并获得纹理信息和包含基层运动矢量和增强层运动矢量的运动信息;重调整基层运动矢量;对纹理信息执行逆量化和逆空间变换以获得在其中去除了时间冗余的帧;和使用已被重调整的基层运动矢量和增强层运动矢量对已在其中去除时间冗余的帧执行逆运动补偿。
根据本发明的另一方面,提供了一种视频解码方法,包括解释输入比特流,并获得纹理信息和包含基层运动矢量和残余运动矢量的运动信息;对于具有基层运动矢量和残余运动矢量二者的每一个块,将基层运动矢量与残余运动矢量合成,并获得合成的运动矢量;对纹理信息执行逆量化和逆空间变换,并获得在其中去除了时间冗余的帧;和使用合成的运动矢量和未合成的基层运动矢量对已在其中去除时间冗余的帧执行逆运动补偿。
根据本发明的另一方面,提供了一种视频解码器,包括比特流解释器,解释输入比特流,并获得纹理信息和包含基层运动矢量和增强层运动矢量的运动信息;运动矢量重调整器,重调整基层运动矢量;逆量化器,对纹理信息执行逆量化;逆空间变换器,对逆量化的纹理信息执行逆空间变换以获得在其中去除了时间冗余的帧;和逆运动补偿器,使用重调整的基层运动矢量和增强层运动矢量对已在其中去除时间冗余的帧执行逆运动补偿,并重建视频帧。
根据本发明的另一方面,提供了一种视频解码器,包括比特流解释器,解释输入比特流,并获得纹理信息和包含基层运动矢量和残余运动矢量的运动信息;运动矢量合成器,对于具有基层运动矢量和残余运动矢量二者的每一个块,将基层运动矢量与残余运动矢量合成,并获得合成的运动矢量;逆量化器,对纹理信息执行逆量化;逆空间变换器,对逆量化的纹理信息执行逆空间变换,并获得在其中去除了时间冗余的帧;和逆运动补偿器,使用合成的运动矢量和未合成的基层运动矢量对已在其中去除时间冗余的帧执行逆运动补偿。


通过下面结合附图对其示例性实施例进行的详细描述,本发明的以上和其他方面将会变得更加清楚,其中图1是传统视频编码器的方框图;图2表示传统运动估计过程和时间模式;图3是根据本发明第一示例性实施例的视频编码器的方框图;图4和5分别是根据本发明第二和第三示例性实施例的视频编码器的方框图;图6表示根据本发明示例性实施例的运动估计过程;图7表示根据本发明示例性实施例的块模式;图8表示根据本发明示例性实施例的具有不同的增强层百分比的帧的例子;图9是根据本发明第一示例性实施例的视频解码器的方框图;图10和11分别是根据本发明第二和第三示例性实施例的视频解码器的方框图;图12表示根据本发明示例性实施例的视频业务环境;图13表示根据本发明示例性实施例的比特流的结构;和图14是表示当使用增强层运动矢量和基层运动矢量时视频质量的变化的曲线图。
具体实施例方式
通过参照下面对示例性实施例的详细描述以及附图,本发明及实现其的方法可更易于理解。然而,本发明可以以很多不同的形式实现,并且不应被解释为局限于在这里阐述的示例性实施例。更恰当地,提供这些示例性实施例以便本公开将是彻底和完整的并且充分地将本发明的构思传达给本领域的技术人员,并且本发明将仅由所附权利要求限定。在整个说明书中,相同的标号表示相同部件。
现在将参照附图对本发明进行更充分的描述,本发明的示例性实施例表示在附图中。
本发明提供了为调整分配给运动矢量(运动信息)的比特数量而设计的视频编码方案,并且可被应用于使用原始视频帧作为参考帧的开环视频编码和使用重建帧作为参考帧的闭环视频编码二者。与开环视频编码器不同,由于闭环视频编码使用通过对量化的变换系数执行逆量化、逆变换、和运动补偿而获得的重建帧作为参考帧,所以闭环视频编码器包括几个用于视频解码的部件,比如逆量化器和逆空间变换器。尽管参照使用开环可伸缩视频编码的示例性实施例来描述本发明,但也可使用闭环视频编码。
图3是根据本发明第一示例性实施例的视频编码器300的方框图。
参照图3,根据本发明第一示例性实施例的视频编码器300包括运动估计器310、运动补偿器320、空间变换器330、量化器340、比特流产生器350、运动矢量选择器360、和运动信息编码器370。
运动估计器310估计当前帧中的每一个块和与该当前帧中的块对应的一个参考帧中的块或两个参考帧中的块之间的运动。当前帧中的每一个块和参考帧中的相应块的位置之间的位移被定义为运动矢量。
由于找到运动矢量的运动估计过程需要大量计算,所以研究了多种技术以减小用于估计运动的计算量。设计了三步搜索或二维(2D)对数搜索以通过减少用于每一运动矢量估计的搜索点数来减小计算量。自适应/预测搜索是这样的方法,通过该方法,从先前帧中的块的运动矢量预测当前帧中的块的运动矢量,以减小运动估计所需的计算量。HVSBM是这样的算法,在该算法中,具有原始分辨率的帧被下采样以获得低分辨率帧,并且在最低分辨率找到的运动矢量被用于找到具有越来越高的分辨率的运动矢量。减小运动估计所需的计算量的另一方法是以简单的函数来替换计算块匹配的代价的函数。
本示例性实施例中的运动估计器310执行找到基层运动矢量的过程和找到增强层运动矢量的过程。也就是说,运动估计器310找到基层运动矢量,然后重新调整基层运动矢量以找到增强层运动矢量。找到基层运动矢量和增强层运动矢量的过程可通过各种运动估计算法来执行。在本示例性实施例中,使用HVSBM来执行找到基层运动矢量的过程或者找到基层运动矢量和增强层运动矢量的过程,这是因为使用HVSBM获得的运动矢量具有与相邻块的运动矢量的特性一致的特性。另外,在比其中获得基层运动矢量的搜索区域小的搜索区域内找到增强层运动矢量。换句话说,通过重新调整已估计出的基层运动矢量来获得增强层运动矢量。
运动补偿器320通过与使用增强层运动矢量的运动补偿(以下称为“增强层运动补偿”)分开地执行使用基层运动矢量的运动补偿(以下称为“基层运动补偿”)来获得次序信息。然后,运动补偿器320将已在其中通过增强层运动补偿去除时间冗余的帧提供给空间变换器330。
在可伸缩视频编码中,使用比如运动补偿时间滤波(MCTF)的各种算法来去除时间冗余。尽管在传统MCTF中使用Haar滤波器,但最近已广泛地使用5/3滤波器。MCTF在图像组(GOP)基础上被执行,并包括使用运动估计的结果产生预测帧;获得作为当前帧和预测帧之差的残余帧(高通子带);和使用残余帧更新剩余的原始帧或低通子带。作为反复执行这个过程的结果,在组成GOP的帧中去除了时间冗余以获得一个低通子带和多个高通子带。
空间变换器330使用空间变换去除已去除时间冗余的帧中的空间冗余,并创建变换系数。使用DCT或小波变换来执行空间变换。视频编码器300可使用小波变换来产生具有空间可伸缩性的比特流。另一方面,具有不同分辨率的多个层的视频编码器300可使用DCT来去除已去除时间冗余的帧中的空间冗余,以产生具有空间可伸缩性的比特流。
量化器340以在给定比特率使得失真最小化的方式来量化变换系数。使用诸如以下的公知嵌入式量化算法来执行用于可伸缩视频编码的量化嵌入式零树小波(EZW)、等级树中的集合划分(SPIHT)、嵌入式零块编码(EZBC)、和具有优化删截的嵌入式块编码(EBCOT)。量化的变换系数(纹理信息)在受到扫描、伸缩、和可变长度编码之后被插入到比特流中。同时,该比特流包含纹理信息和运动信息。为了将运动信息插入到比特流中,视频编码器300包括运动矢量选择器360和运动信息编码器370。
运动矢量选择器360对每一个块选择基层运动矢量和增强层运动矢量的任一个。更具体地讲,以从具有最大视觉质量差的块到具有最小视觉质量差的块的次序选择增强层运动矢量,所述视觉质量是当时间冗余使用基层运动补偿和增强层运动补偿而被去除时获得的。例如,当视觉质量提高的程度以块1、2、3、4、5、6、7、和8的次序降低并且曾强层运动补偿仅可用于三个块时,运动矢量选择器360对块1至3选择增强层运动矢量,并对块4至8选择基层运动矢量。选择的运动信息(基层运动矢量和增强层运动矢量)被提供给运动信息编码器370。因此,包含在比特流中的纹理信息是从增强层运动补偿、空间变换、和量化获得的量化的变换系数,而包含在其中的运动信息是块1至3的增强层运动矢量和块4至8的基层运动矢量。
运动矢量选择器360从运动补偿器320接收关于视频质量提高的程度降低的次序的信息(以下称为“次序信息”)。由运动矢量选择器360选择的增强层运动矢量的百分比可由用户手工输入或者根据比特率自动确定。当运动信息根据比特率被合并时,运动矢量选择器360对高比特率选择高的增强层运动矢量的百分比,而对低比特率选择低的增强层运动矢量的百分比。
运动信息编码器370使用算术编码或可变长度编码对运动信息编码。编码的运动信息被插入到比特流中。当运动信息中包含的运动矢量具有一致性时,运动信息的编码效率高。在本示例性实施例中,为了获得具有一致性的运动矢量,运动估计器310使用HVSBM算法来估计运动矢量(基层运动矢量和增强层运动矢量)。
比特流产生器350、产生包含纹理信息和编码的运动信息的比特流。尽管以上描述包含在编码的运动信息中的每一个块的运动矢量是基层运动矢量或增强层运动矢量,但该运动矢量可包含获得增强层运动矢量所需的基层运动矢量和残余运动矢量而非增强层运动矢量。这同样适用于在图4中显示的视频编码器。
图4是根据本发明第二示例性实施例的视频编码器400的方框图。
参照图4,视频编码器400中的运动估计器410、运动补偿器420、空间变换器430、和量化器440具有与它们在图3的视频编码器300中的相应部件基本相同的功能。
然而,运动矢量选择器460、运动信息编码器470、和比特流产生器450以与它们在图3的视频编码器300中的相应部件略微不同的方式工作。
运动矢量选择器460产生多种类型的运动数据,该多种类型的运动数据的每一种具有不同的基层运动矢量和增强层运动矢量百分比。例如,运动矢量选择器460可产生总共六种类型的运动数据。第一类型运动数据包括所有块的增强层运动矢量。第二类型运动数据包括百分之八十块的增强层运动矢量和百分之二十块的基层运动矢量。第三类型运动数据包括百分之六十块的增强层运动矢量和百分之四十块的基层运动矢量。第四类型运动数据包括百分之四十块的增强层运动矢量和百分之六十块的基层运动矢量。第五类型运动数据包括百分之二十块的增强层运动矢量和百分之八十块的基层运动矢量。第六类型运动数据包括所有块的基层运动矢量。这六种类型的运动数据全部被插入到比特流中。同时,视频解码器接收由预解码器480预解码的比特流,以使用一种类型的运动数据来重建视频帧。
当由运动矢量选择器460创建的运动数据的类型数增加时,在比特流的大小增加的同时,比特流的运动可伸缩性增加。另一方面,当运动数据的类型数减少时,在比特流的大小减小的同时,比特流的运动可伸缩性减小。每一类型的运动数据可包含与以上示例中不同的百分比的增强层运动矢量。例如,当运动矢量选择器460产生六种类型的运动数据时,这六种类型的运动数据中包含的增强层运动矢量的百分比可分别为100、70、40、20、10、和0。
运动信息编码器470使用算术编码或可变长度编码对该多种类型的运动数据编码,以减小数据量。
比特流产生器450产生包含纹理信息和编码的运动数据的比特流。
预解码器480删截(truncate)将一种类型的运动数据排除在外的编码的运动数据,以用于发送给解码器。例如,当用于将比特流发送给解码器的带宽很窄时,预解码器480删截将包含最低百分比(例如,0%)的增强层运动矢量的运动数据排除在外的编码的运动矢量数据。相反,当用于将比特流发送给解码器的带宽很宽时,预解码器480删截将包含最高百分比(例如,100%)的增强层运动矢量的运动数据排除在外的编码的运动矢量数据。以类似的方式,预解码器480删截将根据比特率适当选择的一种类型的运动数据排除在外的编码的运动数据。
图5是根据本发明第三示例性实施例的视频编码器500的方框图。
参照图5,视频编码器500中的运动估计器510、运动补偿器520、空间变换器530、量化器540、比特流产生器550、和运动信息编码器570具有与它们在图3的视频编码器300中的相应部件基本相同的功能。
与图3的视频编码器300不同,视频编码器500不包括运动矢量选择器。因此,运动信息编码器570对包含每一个块的基层运动矢量和增强层运动矢量二者的信息编码。编码的运动信息(基层运动矢量和增强层运动矢量)被插入到比特流中。
比特流产生器550产生包含纹理信息,编码的运动信息、和次序信息的比特流。
预解码器580从显示最小的质量提高的块的增强层运动矢量删截编码的运动信息。例如,当比特率非常低时,预解码器580删截所有的编码的增强层运动矢量,而当比特率充足时,预解码器580保留增强层运动矢量。
图6表示根据本发明示例性实施例的运动估计过程,在图6中显示基层运动矢量、增强层运动矢量、和残余运动矢量。首先,分别从基层运动搜索和增强层运动搜索获得基层运动矢量和增强层运动矢量,残余运动矢量是增强层运动矢量和基层运动矢量之差。
块610是当前帧中的块,块620是与块610对应的块,块630是从基层运动搜索获得的块。在传统的运动估计过程中,直接找到与块610对应的块620。而在本发明的示例性实施例中,在使用基层运动搜索找到块630之后,使用增强层运动搜索找到块620。现在将描述在本发明的示例性实施例中使用的块匹配方案。
在使对当前帧中的块编码的代价最小化的位置的块被确定为与当前帧中的块对应的块。E(k,l)和B(k,l)分别表示当使用参考帧的搜索区域中的第1块来对当前帧中的第k块编码时分配给纹理和运动矢量的比特,代价C(k,l)由方程(1)定义C(k,l)=E(k,l)+λB(k,l)...(1)这里,λ是拉格朗日系数,用于控制分配给运动矢量和纹理的比特之间的平衡。当λ增加时,分配给纹理的比特数增加。当λ减小时,分配给运动矢量的比特数增加。当在非常低的比特率的情况下比特不足够被分配给运动矢量时,使λ很大,从而比特主要被分配给纹理。
为了获得基层运动矢量,找到使代价C(k,l)最小化的值1,并且计算与值1对应的参考帧中的块630和当前帧中的块610之间的位移。在以这种方法确定基层运动矢量之后,使用方程(1)在增强层搜索区域内找到块620。增强层搜索区域可显著地窄于基层搜索区域,以使基层运动矢量和增强层运动矢量之差最小化。类似地,找到使代价最小化的块620,并将块620和使用基层运动搜索找到的块630之差确定为增强层运动矢量。基层运动搜索使用大于增强层运动搜索的λ,以便少量的比特可被分配给基层运动矢量。因此,对于非常低的比特率,纹理和基层运动信息被包含在比特流中,以使分配给运动矢量的比特数最小化。
可使用HVSBM来执行基层运动搜索和增强层运动搜索。提供一致的运动矢量场的HVSBM减小运动矢量的整体比特率。另外,HVSBM需要少量计算,并且还通过将增强层搜索区域限定于小的区域来实现运动可伸缩性。实际的实验结果表明不管增强层搜索区域的大小,峰值信噪比(PSNR)几乎恒定。
由图3的视频编码器300产生的比特流包含单一类型的运动数据,该单一类型的运动数据包括每一个块的基层运动矢量或增强层运动矢量。由图4的视频编码器400产生的比特流包含多种类型的运动数据,该多种类型的运动数据的每一种包括每一个块的基层运动矢量或增强层运动矢量。该运动数据还具有不同的增强层运动矢量的百分比。因此,该比特流被预解码,并且在将特定运动数据排除在外的情况下被删截,以用于发送给视频解码器。由图5的视频编码器500产生的比特流包含单一类型的运动数据,该单一类型的运动数据包括每一个块的基层运动矢量和残余运动矢量二者。因此,该比特流根据比特率被预解码,以将一些块的仅仅基层运动矢量以及剩余块的基层运动矢量和残余运动矢量二者发送给视频解码器。
图3的视频编码器300可包括运动矢量合成器以代替运动矢量选择器360,该运动矢量合成器用于将基层运动矢量与残余运动矢量合成。在这种情况下,基层运动矢量和残余运动矢量被提供给运动矢量合成器,而包含基层运动矢量和增强层运动矢量的运动信息被提供给运动信息编码器370。增强层运动矢量的每一个通过将基层运动矢量与残余运动矢量合成而被获得。图4的视频编码器400可还包括运动矢量合成器以代替运动矢量选择器460。
同时,尽管以上描述由图5的视频编码器500产生的比特流包含每一个块的基层运动矢量和残余运动矢量二者,但增强层运动矢量可被插入到该比特流中以代替残余运动矢量。在这种情况下,预解码器580根据比特率和次序信息选择性地删截每一个块的基层运动矢量或增强层运动矢量。
图7表示根据本发明示例性实施例的块模式。参照图7,当引入块模式的概念时,如上所述使用小的增强层搜索区域实现的运动可伸缩性被加强。
在模式0中,以16×16块为单位执行运动矢量搜索。在模式1、模式2、模式3、和模式4中,分别以8×16、16×8、和4×4子块进行运动矢量搜索。
在本示例性实施例中,基层块模式是模式0、模式1、模式2、和模式3之一,而增强层块模式是模式0、模式1、模式2、模式3、和模式4之一。当基层块模式是模式0时,增强层块模式从模式0、模式1、模式2、模式3、和模式4中选择。当基层块模式是模式1时,增强层块模式从模式1、模式3、和模式4中选择。当基层块模式分别是模式2和模式3时,增强层块模式分别从模式2至模式4中以及模式3和模式4中选择。当基层块模式是模式1时,增强层块模式不能是模式2,因为模式1和模式2分别是水平模式和垂直模式。
由于如上所述基层运动搜索使用大于增强层运动搜索的λ,所以即使分配给在基层运动搜索期间估计出的运动矢量(基层运动矢量)的比特数等于分配给在增强层运动搜索期间估计出的运动矢量(基层运动矢量和增强层运动矢量)的比特数,基层上仍受到较大的亏损(penalty)。因此,在实际的实验中,除了特殊情况之外,模式0被确定为基层块模式。另一方面,由于增强层使用小的λ,所以分配给运动矢量的比特数的亏损小于基层。为此,增强层块模式通常具有更精细地再分的块。尽管图7显示五个块模式,但可获得的块模式的数量可大于或小于五。
根据本发明的示例性实施例,通过对已使用增强层运动矢量在其中去除时间冗余的帧执行空间变换和量化来获得包含在比特流中的纹理图像。因此,当在低比特率的情况下一些块的运动矢量是基层运动矢量时,运动失配可能发生。运动失配被引入,因为在编码期间使用增强层运动矢量而在解码期间使用基层运动矢量,这导致编码性能(例如,视觉质量、压缩效率等)的降低。
因此,为了使运动失配最小化,本发明提出用于确定每一个块的增强层运动矢量或基层运动矢量的算法。由在解码器使用基层运动矢量导致的失配的程度E由方程(2)给出如下E=∑|Om-Ob|...(2)其中,Om和Ob分别是使用增强层运动矢量和基层运动矢量重建的帧。Om和Ob由方程(3)定义如下Om=Pm+Hm
O+b=Pb+Hm...(3)其中,Pm和Hm分别是使用使用增强层运动矢量获得的预测帧和残余帧,并且Pb是使用基层运动矢量预测的帧。
假定在视频编码中没有量化损失,Om可由方程(4)定义如下Om=Pb+Hb...(4)其中,Hb是使用基层运动矢量获得的残余帧。
将方程(3)至(4)代入方程(2)中并重新整理,得到方程(5)如下E=∑|Om-Ob|=∑|Pm-Pb|=∑|Hm-Hb| ...(5)如方程(5)所定义,失配的程度E由使用增强层运动矢量和基层运动矢量预测的帧之差或使用增强层运动矢量和基层运动矢量获得的残余帧之差来确定。
参照图3至图5,通过运动补偿器320、运动补偿器420、或运动补偿器520来获得预测帧和残余帧。也就是说,运动补偿器320、运动补偿器420、或运动补偿器520从运动估计器310、运动估计器410、或运动估计器510接收基层运动矢量和增强层运动矢量,以产生预测帧Pm和Pb以及残余帧Hm和Hb。
在本发明中,可使用方程(5)来确定每一个块的重要性。也就是说,计算使用增强层运动补偿的每一个块的编码和使用基层运动补偿的每一个块的编码之间的差,并根据该差的程度确定块的重要性的次序。例如,可由使用增强层运动补偿和基层运动补偿获得的残余块(当前帧中的块和预测帧中的块之差)之差来确定重要性的次序。也就是说,当在残余块之间存在较大差别时,使用增强层运动补偿的每一个块的编码和使用基层运动补偿的每一个块的编码之间的差也被认为较大。块的重要性的次序可由运动矢量选择器而非运动估计器来计算。
图3中的运动矢量选择器360或图4中的运动矢量选择器460以重要性的次序选择增强层运动矢量。也就是说,增强层运动矢量优先分配给具有大的错误的块。同时,由不包括运动矢量选择器的图5的视频编码器产生的比特流包含所有块的基层运动矢量和残余运动矢量以及次序信息。使用次序信息,预解码器580根据比特率按照需要从具有最低重要性的残余运动矢量删截运动信息。
图8表示其中增强层的百分比分别是0%和50%的帧的例子。
参照图8,当增强层的百分比是0%时,所有的纹理信息使用增强层运动补偿而被产生,而所有的块在视频编码期间受到逆基层运动补偿。当增强层的百分比是50%时,所有的纹理信息使用增强层运动补偿而被产生,而50%的块受到逆增强层运动补偿并且剩余50%的块受到逆基层运动补偿。
在块内,指示块模式编号。如在图8中所示,对于同一块,基层块模式和增强层块模式可改变。当基层块模式不同于增强层块模式时,增强层块模式用于在解码期间受到逆增强层运动补偿的块,而基层块模式用于受到逆基层运动补偿的块。
现在将参照图9至11描述重建使用基于MCTF的可伸缩视频编码编码的视频帧的视频解码器。图9表示用于对由图3的视频编码器300产生的比特流或由图4中显示的预解码器480产生的预解码的比特流解码的视频解码器900。图10和11显示用于对由图5中显示的预解码器580产生的预解码的比特流解码的视频解码器。
图9是根据本发明第一示例性实施例的视频解码器900的方框图。
参照图9,视频解码器900包括比特流解释器910、逆量化器920、逆空间变换器930、逆运动补偿器940、运动信息解码器950、和运动矢量重调整器960。
比特流解释器910从输入比特流获得纹理信息和编码的运动信息。包含编码的视频帧的图像数据的纹理信息被提供给逆量化器920,而包含每一个块的基层运动矢量或增强层运动矢量的编码的运动信息被提供给运动信息解码器950。
逆量化器920逆量化纹理信息以获得变换系数。获得的变换系数被发送给逆空间变换器930。
逆空间变换器930对变换系数执行逆空间变换,以获得每一个GOP的单一低通子带和多个高通子带。
逆运动补偿器940接收每一个GOP的低通子带和多个高通子带,以使用一个或更多的高通子带更新低通子带并使用该更新的低通子带产生预测帧。然后,逆运动补偿器940将该预测帧加到高通子带,由此重建低通子带。逆运动补偿器940再次更新该更新的低通子带和重建的低通子带,使用更新的低通子带产生两个预测帧,并通过分别将这两个预测帧加到两个高通子带来重建两个低通子带。逆运动补偿器940反复执行以上过程以重建组成GOP的视频帧。在更新操作和预测帧产生操作期间使用的运动矢量是从由对编码的运动信息解码的运动信息解码器950获得的运动信息(每一个块的基层运动矢量或增强层运动矢量)获得的。结果运动信息包含基层运动矢量和增强层运动矢量。基层运动矢量被提供给运动矢量重调整器960,该运动矢量重调整器960随后使用相邻块的增强层运动矢量来重调整基层运动矢量。另一方面,运动矢量重调整器960可使用在逆运动补偿期间产生的预测帧作为参考来重调整基层运动矢量。增强层运动矢量和重调整的基层运动矢量被提供给逆运动补偿器940,以用于更新操作和预测帧产生操作。
图10是根据本发明第二示例性实施例的视频解码器1000的方框图。
参照图10,视频解码器1000包括比特流解释器1010、逆量化器1020、逆空间变换器1030、逆运动补偿器1040、运动信息解码器1050、和运动矢量合成器1070。
比特流解释器1010从输入比特流获得纹理信息和编码的运动信息。包含编码的视频帧的图像数据的纹理信息被提供给逆量化器1020,而包含运动矢量的编码的运动信息被提供给运动信息解码器1050。
逆量化器1020逆量化纹理信息以获得变换系数,该获得的变换系数随后被发送给逆空间变换器1030。逆空间变换器1030对变换系数执行逆空间变换,以获得每一个GOP的单一低通子带和多个高通子带。逆运动补偿器1040接收每一个GOP的低通子带和多个高通子带,以重建视频帧。
运动信息解码器1050对编码的运动信息解码,以获得运动信息。该运动信息包含一些块的基层运动矢量以及剩余块的基层运动矢量和残余运动矢量。所述剩余块的基层运动矢量和残余运动矢量被发送给运动矢量合成器1070。
运动矢量合成器1070将基层运动矢量与残余运动矢量合成以获得增强层运动矢量,该增强层运动矢量随后被提供给逆运动补偿器1040以用于更新操作和预测帧产生操作。
图11是根据本发明第三示例性实施例的视频解码器1100的方框图。
视频解码器1100包括比特流解释器1110、逆量化器1120、逆空间变换器1130、逆运动补偿器1140、运动信息解码器1150、运动矢量合成器1170、和运动矢量重调整器1160。视频解码器1100的部件具有与它们在图10的视频编码器1000中的相应部件基本相同的功能。与图10的视频编码器1000不同,视频解码器1100还包括运动矢量重调整器1160。
运动矢量重调整器1160使用相邻块的合成的运动矢量来重调整基层运动矢量。另一方面,运动矢量重调整器1160可使用在逆运动补偿期间获得的预测帧作为参考来重调整基层运动矢量。该合成的运动矢量和重调整的运动矢量被提供给逆运动补偿器1140,以用于更新操作和预测帧产生操作。
图12表示根据本发明示例性实施例的视频业务环境。
参照图12,视频编码器1210使用可伸缩视频编码将视频帧编码成比特流。稍后将参照图13描述根据本发明示例性实施例的比特流的结构。
预解码器1220根据网络1230上的带宽删截该比特流的一部分(预解码)。例如,当网络1230的带宽充足时,用户请求高质量视频。预解码器1220删截比特流中的少量比特,或者不删截比特。另一方面,当可获得的带宽不充足时,预解码器1220删截比特流中的大量比特。
视频解码器1240通过网络1230接收预解码的比特流,以重建视频帧。
图13表示根据本发明示例性实施例的比特流的结构参照图13,该比特流包括头1310、运动矢量字段1320、和纹理信息字段1330。
头1310可包含分别指定序列、GOP、帧、和片(slice)所必需的信息的序列头、GOP头、帧头、和片头。
运动矢量字段1320包括次序信息字段1321、基层运动矢量字段1322、和增强层运动矢量字段1323。
次序信息字段1321包括关于视频质量提高的程度降低的块的次序的信息。例如,当增强层运动矢量被用于块1至6并且视觉质量提高的程度以块1、4、2、3、5、和6的次序降低时,次序信息将次序指定为1、4、2、3、5、6。因此,在预解码期间,以视觉质量提高的程度增加的块的次序(6、5、3、2、4、1)来删截增强层运动矢量。
基层运动矢量字段1322包含关于当少量比特被分配给运动矢量时获得的运动矢量的信息。
增强层运动矢量字段1323包含关于当大量比特被分配给运动矢量时获得的运动矢量的信息。
预解码器选择性地删截特定块的基层运动矢量或增强层运动矢量。也就是说,一方面,当为该块确定了增强层运动矢量时,预解码器删截比特流中的基层运动矢量。另一方面,当为该块确定了基层运动矢量时,预解码器删截比特流中的增强层运动矢量。
另一方面,运动矢量字段1320可包括基层运动矢量字段1322和残余运动矢量字段。在这种情况下,当为特定块确定了基层运动矢量时,预解码器删截比特流中的残余运动矢量。另一方面,当为该块确定了增强层运动矢量时,预解码器不删截基层运动矢量。也就是说,视频解码器使用该块的基层运动矢量和残余运动矢量来重建增强层运动矢量以用于逆运动补偿。
纹理信息字段1330包含Y分量字段1331,指定Y分量的纹理信息;U分量字段1332,指定U分量的纹理信息;和V分量字段1333,指定V分量的纹理信息。
现在将参照图14描述减小使用可伸缩视频编码编码的比特流的比特率的过程。
图14是表示当使用增强层运动矢量和基层运动矢量时视频质量的变化的曲线图。
如图14中所示,对于高比特率,当使用增强层运动矢量时由解码器重建的视频的质量高于当使用基层运动矢量时由解码器重建的视频的质量。然而,当比特率极低时,当使用基层运动矢量时重建的视频的质量高于当使用增强层运动矢量时重建的视频的质量。
因此,当接收到对具有高于参考点的比特率的比特流的请求时,预解码器在删截不必要的纹理的比特的同时提供所有增强层运动矢量。另一方面,当接收到对具有低于参考点的比特率的比特流的请求时,预解码器删截纹理的比特以及增强层运动矢量的一部分或全部。
该参考点可通过实验从各种视频序列来获得。
同时,当比特率极低时,预解码器可删截所有的运动矢量(基层运动矢量和增强层运动矢量)。
如上所述,通过根据本发明的视频编码和解码方法以及视频编码器和解码器可实现提供运动可伸缩性的视频编码。与传统视频编码不同,根据本发明的视频编码和解码方法通过在非常低的比特率的情况下使运动信息中包含的比特数最小化来提供提高的视觉质量,所述传统视频编码由于在非常低的比特率的情况下难以调整运动信息中包含的比特数而受到视觉质量的降低。
虽然已参照其示例性实施例具体地表示和描述了本发明,但本领域普通技术人员应该理解,在不脱离由下面的权利要求限定的本发明的精神和范围的情况下,可以对其进行形式和细节上的各种改变。
权利要求
1.一种视频编码方法,包括估计视频帧中每一个块的基层运动矢量和增强层运动矢量;使用增强层运动矢量去除视频帧中的时间冗余;空间变换已在其中去除时间冗余的视频帧,并量化已被空间变换的视频帧,以获得纹理信息;选择每一个块的基层运动矢量和增强层运动矢量之一;和产生包含为每一个块选择的基层运动矢量或增强层运动矢量以及纹理信息的比特流。
2.如权利要求1所述的方法,其中,使用分层可变大小块匹配估计基层运动矢量。
3.如权利要求1所述的方法,其中,通过重调整基层运动矢量来估计增强层运动矢量。
4.如权利要求1所述的方法,其中,基层运动矢量和增强层运动矢量的每一个具有多个块模式之一。
5.如权利要求1所述的方法,其中,选择基层运动矢量和增强层运动矢量之一的步骤包括计算使用基层运动矢量和增强层运动矢量获得的残余块之间的差;根据该差确定块的重要性次序;和以从具有最大重要性的块到具有最小重要性的块的次序来对预定百分比的块选择增强层运动矢量以及对剩余百分比的块选择基层运动矢量。
6.一种视频编码方法,包括估计视频帧中每一个块的基层运动矢量和增强层运动矢量;使用增强层运动矢量去除视频帧中的时间冗余;空间变换已在其中去除时间冗余的视频帧,并量化已被空间变换的视频帧,以获得纹理信息;和产生包含每一个块的基层运动矢量、作为基层运动矢量和增强层运动矢量之差的残余运动矢量、和纹理信息的比特流。
7.如权利要求6所述的方法,其中,使用分层可变大小块匹配估计基层运动矢量。
8.如权利要求6所述的方法,其中,通过重调整基层运动矢量来估计增强层运动矢量。
9.如权利要求6所述的方法,其中,基层运动矢量和增强层运动矢量的每一个分别具有多个块模式之一。
10.如权利要求6所述的方法,还包括计算使用增强层运动矢量的每一个块的编码和使用基层运动矢量的每一个块的编码之间的差,并根据该差的程度确定块的重要性的次序,其中,所述块的重要性的次序被包含在比特流中。
11.如权利要求10所述的方法,其中,该差通过计算使用该块的增强层运动矢量获得的残余块和使用该块的基层运动矢量获得的残余块之间的差而获得。
12.一种视频编码器,包括运动估计器,估计视频帧中每一个块的基层运动矢量和增强层运动矢量;运动补偿器,使用增强层运动矢量去除视频帧中的时间冗余;空间变换器,空间变换已在其中去除时间冗余的视频帧;量化器,量化已被空间变换的视频帧以获得纹理信息;运动矢量选择器,选择每一个块的基层运动矢量和增强层运动矢量之一;和比特流产生器,产生包含为每一个块选择的基层运动矢量或增强层运动矢量以及纹理信息的比特流。
13.如权利要求12所述的视频编码器,其中,运动估计器使用分层可变大小块匹配来估计基层运动矢量。
14.如权利要求12所述的视频编码器,其中,运动估计器通过重调整基层运动矢量来估计增强层运动矢量。
15.如权利要求12所述的视频编码器,其中,运动估计器以多个块模式的至少一个估计各块的基层运动矢量和增强层运动矢量。
16.如权利要求12所述的视频编码器,其中,运动估计器计算使用基层运动矢量和增强层运动矢量获得的残余块之间的差,并根据该差确定块的重要性次序,并且运动矢量选择器以从具有最大重要性的块到具有最小重要性的块的次序来对预定百分比的块选择增强层运动矢量以及对剩余百分比的块选择基层运动矢量。
17.一种视频编码器,包括运动估计器,估计视频帧中每一个块的基层运动矢量和增强层运动矢量;运动补偿器,使用增强层运动矢量去除视频帧中的时间冗余;空间变换器,空间变换已在其中去除时间冗余的视频帧;量化器,量化已被空间变换的视频帧以获得纹理信息;和比特流产生器,产生包含每一个块的基层运动矢量、作为基层运动矢量和增强层运动矢量之差的残余运动矢量、和纹理信息的比特流。
18.如权利要求17所述的视频编码器,其中,运动估计器使用分层可变大小块匹配来估计基层运动矢量。
19.如权利要求17所述的视频编码器,其中,运动估计器通过重调整基层运动矢量来估计增强层运动矢量。
20.如权利要求17所述的视频编码器,其中,运动估计器以多个块模式的至少一个估计各块的基层运动矢量和增强层运动矢量。
21.如权利要求17所述的视频编码器,其中,运动估计器计算使用基层运动矢量和增强层运动矢量获得的残余块之间的差,根据该差确定块的重要性次序,并将所述块的重要性次序传送给比特流产生器,以便比特流产生器将所述块的重要性次序插入到比特流中。
22.一种预解码方法,包括接收包含视频帧的每一个块的基层运动矢量、作为基层运动矢量和增强层运动矢量之差的残余运动矢量、以及与视频帧中每一个块关联的通过对视频帧编码获得的纹理信息的比特流;和删截残余运动矢量的至少一部分。
23.如权利要求22所述的方法,其中,该比特流还包括块的重要性次序,其中,在删截残余运动矢量的至少一部分的步骤中,使用块的重要性次序作为参考来从具有最小重要性的残余运动矢量删截。
24.如权利要求22所述的方法,其中,如果请求的比特流速率低于预定参考点时,则删截该残余运动矢量的至少一部分。
25.一种视频解码方法,包括解释输入比特流,并获得纹理信息和包含基层运动矢量和增强层运动矢量的运动信息;重调整基层运动矢量;对纹理信息执行逆量化和逆空间变换以获得在其中去除了时间冗余的帧;和使用已被重调整的基层运动矢量和增强层运动矢量对已在其中去除时间冗余的帧执行逆运动补偿。
26.如权利要求25所述的方法,其中,使用相邻块的增强层运动矢量作为参考来重调整基层运动矢量。
27.如权利要求25所述的方法,其中,使用在逆运动补偿期间产生的预测帧来重调整基层运动矢量。
28.一种视频解码方法,包括解释输入比特流,并获得纹理信息和包含基层运动矢量和残余运动矢量的运动信息;对具有基层运动矢量和残余运动矢量二者的多个块的每一个,将基层运动矢量与残余运动矢量合成,并获得合成的运动矢量;对纹理信息执行逆量化和逆空间变换,并获得在其中去除了时间冗余的帧;和使用合成的运动矢量和未合成的基层运动矢量对已在其中去除时间冗余的帧执行逆运动补偿。
29.如权利要求28所述的方法,还包括重调整该未合成的基层运动矢量,其中,使用合成的运动矢量和已被重调整的未合成的基层运动矢量对已在其中去除时间冗余的帧执行逆运动补偿。
30.一种视频解码器,包括比特流解释器,解释输入比特流,并获得纹理信息和包含基层运动矢量和增强层运动矢量的运动信息;运动矢量重调整器,重调整基层运动矢量;逆量化器,对纹理信息执行逆量化;逆空间变换器,对逆量化的纹理信息执行逆空间变换以获得在其中去除了时间冗余的帧;和逆运动补偿器,使用已被重调整的基层运动矢量和增强层运动矢量对已在其中去除时间冗余的帧执行逆运动补偿,并重建视频帧。
31.如权利要求30所述的解码器,其中,运动矢量重调整器使用相邻块的增强层运动矢量来重调整基层运动矢量。
32.如权利要求30所述的解码器,其中,运动矢量重调整器使用由逆运动补偿器产生的预测帧来重调整基层运动矢量。
33.一种视频解码器,包括比特流解释器,解释输入比特流,并获得纹理信息和包含基层运动矢量和残余运动矢量的运动信息;运动矢量合成器,对于具有基层运动矢量和残余运动矢量二者的多个块的每一个,将基层运动矢量与残余运动矢量合成,并获得合成的运动矢量;逆量化器,对纹理信息执行逆量化;逆空间变换器,对逆量化的纹理信息执行逆空间变换,并获得在其中去除了时间冗余的帧;和逆运动补偿器,使用合成的运动矢量和未合成的基层运动矢量对已在其中去除时间冗余的帧执行逆运动补偿。
34.如权利要求33所述的解码器,还包括运动矢量重调整器,重调整未合成的基层运动矢量。
35.一种具有记录在其中的计算机可读程序的记录介质,该程序用于执行视频编码方法,该方法包括估计视频帧中每一个块的基层运动矢量和增强层运动矢量;使用增强层运动矢量去除视频帧中的时间冗余;空间变换已在其中去除时间冗余的视频帧,并量化已被空间变换的视频帧,以获得纹理信息;选择每一个块的基层运动矢量和增强层运动矢量之一;和产生包含为每一个块选择的基层运动矢量或增强层运动矢量以及纹理信息的比特流。
36.一种具有记录在其中的计算机可读程序的记录介质,该程序用于执行视频编码方法,该方法包括估计视频帧中每一个块的基层运动矢量和增强层运动矢量;使用增强层运动矢量去除视频帧中的时间冗余;空间变换已在其中去除时间冗余的视频帧,并量化已被空间变换的视频帧,以获得纹理信息;和产生包含每一个块的基层运动矢量、作为基层运动矢量和增强层运动矢量之差的残余运动矢量、和纹理信息的比特流。
37.一种具有记录在其中的计算机可读程序的记录介质,该程序用于执行预解码方法,该方法包括接收包含视频帧的每一个块的基层运动矢量、作为基层运动矢量和增强层运动矢量之差的残余运动矢量、以及与视频帧中每一个块关联的通过对视频帧编码获得的纹理信息的比特流;和删截残余运动矢量的至少一部分。
38.一种具有记录在其中的计算机可读程序的记录介质,该程序用于执行视频解码方法,该方法包括解释输入比特流,并获得纹理信息和包含基层运动矢量和增强层运动矢量的运动信息;重调整基层运动矢量;对纹理信息执行逆量化和逆空间变换以获得在其中去除了时间冗余的帧;和使用已被重调整的基层运动矢量和增强层运动矢量对已在其中去除时间冗余的帧执行逆运动补偿。
39.一种具有记录在其中的计算机可读程序的记录介质,该程序用于执行视频解码方法,该方法包括解释输入比特流,并获得纹理信息和包含基层运动矢量和残余运动矢量的运动信息;对于具有基层运动矢量和残余运动矢量二者的多个块的每一个,将基层运动矢量与残余运动矢量合成,并获得合成的运动矢量;对纹理信息执行逆量化和逆空间变换,并获得在其中去除了时间冗余的帧;和使用合成的运动矢量和未合成的基层运动矢量对已在其中去除时间冗余的帧执行逆运动补偿。
全文摘要
提供了能够提供运动可伸缩性的视频编码和解码方法以及视频编码器和解码器。该视频编码方法包括估计视频帧中每一个块的基层运动矢量和增强层运动矢量;使用增强层运动矢量去除视频帧中的时间冗余;空间变换已在其中去除时间冗余的视频帧,并量化空间变换的视频帧以获得纹理信息;选择每一个块的估计出的基层运动矢量和估计出的增强层运动矢量之一;和产生包含为每一个块选择的运动矢量和纹理信息的比特流。
文档编号H04N7/26GK1722839SQ200510084140
公开日2006年1月18日 申请日期2005年7月14日 优先权日2004年7月15日
发明者河昊振, 韩宇镇 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1