用于视频压缩的时间分类滤波转让专利

申请号 : CN200580017207.9

文献号 : CN101375597B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : Z·苗J·J·小卡里格M·帕尼科尼

申请人 : 索尼电子有限公司

摘要 :

时间分类滤波通过应用分配给目标帧中像素类别的滤波器来预测像素的值,而编码图像数据。像素的分类根据它们相关联的运动矢量,且运动矢量用来将滤波器定位在基准帧上。还计算预测误差值。滤波器、运动矢量以及预测误差表示被编码图像数据中的像素。基准帧可以是图像数据的过去或将来帧,且可以使用各种组合的过去和将来帧的多个基准帧。用于多个基准帧的滤波器是三维的,包括用于每个基准帧的二维滤波器。滤波器可以是预定的或是在帧被编码时产生的。通过将滤波器应用到基准帧上并用预测误差值校正所得的预测,来重新创建图像数据。

权利要求 :

1.一种编码图像数据的计算机化方法,包括:分配图像数据的目标帧中的每个像素组给运动类别,其中每个像素组包括具有相似运动矢量的像素,并且其中图像数据的目标帧包括至少两个不同的运动类别;

分配滤波器给每个运动类别,其中利用来自被分配有该滤波器的所述运动类别的像素来训练该滤波器的系数;

使用被分配给所述运动类别的所述滤波器和基准帧来预测分配给每个运动类别的所述像素组的值;及计算所预测值的预测误差值,

其中所述滤波器、运动矢量和预测误差值表示所编码图像数据中的所述像素。

2.如权利要求1所述的计算机化方法,其中所述基准帧是以前编码的帧。

3.如权利要求1所述的计算机化方法,其中所述预测包括:根据与正被预测的像素相关联的所述运动矢量,将所述滤波器定位在所述基准帧上。

4.如权利要求1所述的计算机化方法,其中所述预测使用多个基准帧。

5.如权利要求4所述的计算机化方法,其中所述多个基准帧选自过去帧、将来帧以及过去和将来帧的组合。

6.如权利要求4所述的计算机化方法,其中所述滤波器是三维滤波器,包括用于每个基准帧的二维滤波器。

7.如权利要求1所述的计算机化方法,还包括:产生所述运动矢量。

8.如权利要求1所述的计算机化方法,其中分配每个像素组包括:按值对运动矢量进行分组;以及

给每个运动矢量组分配类别标识符。

9.如权利要求8所述的计算机化方法,其中如果组数大于预定的最大值,则分配每个像素组还包括:合并具有少量运动矢量的运动矢量组,直到运动矢量组数等于所述最大值。

10.如权利要求8所述的计算机化方法,其中分配每个像素组还包括:将具有少量运动矢量的运动矢量组合并到邻近运动矢量组中。

11.如权利要求8所述的计算机化方法,其中分配每个像素组还包括:将具有少量运动矢量的运动矢量组合并到特殊类别中。

12.如权利要求1所述的计算机化方法,还包括:根据所述目标帧中所述类别的所述运动矢量以及所述基准帧,产生用于所述类别的所述滤波器的系数。

13.如权利要求12所述的计算机化方法,其中所述产生包括:产生初始滤波器;

使用所述初始滤波器预测所述类别中所述像素的值;

将预测误差大于阈值的任何像素从所述类别中去除;以及使用所述类别中在去除之后的剩余像素迭代地产生后续的滤波器、进行预测并去除像素,直到满足预定标准。

14.如权利要求1所述的计算机化方法,还包括:根据所述运动矢量将每个滤波器应用到所述基准帧,并加上所述预测误差值,以重新构建所述图像数据的所述像素。

15.一种产生时间上分类滤波器的计算机化方法,包括:分配图像数据的目标帧中的每个像素组给运动类别,其中每个像素组包括具有相似运动矢量的像素,并且其中图像数据的目标帧包括至少两个不同的运动类别;

分配系数给每个运动类别,其中利用来自被分配有该系数的所述运动类别的像素来训练所述系数;

根据所述像素组、相似的所述运动矢量和预编码的基准帧产生所述系数。

16.如权利要求15所述的计算机化方法,其中所述产生包括:产生初始系数;

使用初始滤波器,预测所述类别中所述像素的值;

将预测误差大于阈值的任何像素从所述类别中去除;以及使用所述类别中在去除之后的剩余像素迭代地产生后续的系数、进行预测并去除像素,直到满足预定标准。

17.一种编码图像数据的设备,包括:组分配装置,用于分配图像数据的目标帧中的每个像素组给运动类别,其中每个像素组包括具有相似运动矢量的像素,并且其中图像数据的目标帧包括至少两个不同的运动类别;

滤波器分配装置,用于分配滤波器给每个运动类别,其中利用来自被分配有该滤波器的所述运动类别的像素来训练该滤波器的系数;

预测装置,用于使用分配给所述运动类别的所述滤波器和基准帧来预测分配给每个运动类别的所述像素组的值;以及计算装置,用于计算所预测值的预测误差值,其中所述滤波器、运动矢量和预测误差值表示所编码图像数据中的所述像素。

18.如权利要求17所述的设备,其中所述基准帧是以前编码的帧。

19.如权利要求17所述的设备,其中所述用于预测的预测装置使用多个基准帧。

20.如权利要求19所述的设备,其中所述多个基准帧选自过去帧、将来帧以及过去和将来帧的组合。

21.如权利要求19所述的设备,其中所述滤波器是三维滤波器,包括用于每个基准帧的二维滤波器。

22.如权利要求17所述的设备,其中所述用于预测的预测装置包括:定位装置,用于根据与正被预测的像素相关联的所述运动矢量将所述滤波器定位在所述基准帧上。

23.如权利要求17所述的设备,还包括:产生装置,用于产生所述运动矢量。

24.如权利要求17所述的设备,其中所述组分配装置包括:分组装置,用于按值对运动矢量进行分组;以及标识符分配装置,用于给每个组分配类别标识符。

25.如权利要求17所述的设备,还包括:系数产生装置,用于根据所述目标帧中所述类别的所述运动矢量以及所述基准帧产生用于所述类别的所述滤波器的系数。

26.如权利要求17所述的设备,还包括:滤波器应用装置,用于根据所述运动矢量将每个滤波器应用到所述基准帧并加上所述预测误差值以重新构建所述图像数据的所述像素。

27.如权利要求24所述的设备,其中如果运动矢量组数大于预定的最大值,则组分配装置还包括:合并装置,用于合并具有少量运动矢量的运动矢量组,直到运动矢量组数等于所述最大值。

28.如权利要求24所述的设备,其中所述组分配装置进一步将具有少量运动矢量的运动矢量组合并到邻近的运动矢量组中。

29.如权利要求24所述的设备,其中所述组分配装置进一步将具有少量运动矢量的运动矢量组合并到特殊类别中。

30.如权利要求25所述的设备,其中用于产生的所述系数产生装置进一步:产生初始滤波器;

使用所述初始滤波器预测所述类别中所述像素的值;

将预测误差大于阈值的任何像素从所述类别中去除;以及使用所述类别中在去除之后的剩余像素迭代地产生后续的滤波器、进行预测并去除像素,直到满足预定标准。

31.一种产生时间上分类滤波器的设备,包括:用于分配图像数据的目标帧中的每个像素组给运动类别的分配装置,其中每个像素组包括具有相似运动矢量的像素,并且其中图像数据的目标帧包括至少两个不同的运动类别;

用于分配系数给每个运动类别的分配装置,其中利用来自被分配有该系数的所述运动类别的像素来训练所述系数;

产生装置,用于根据所述像素组、相似的所述运动矢量和预编码的基准帧产生所述系数。

32.如权利要求31所述的设备,其中用于产生的装置:产生初始滤波器;

使用初始滤波器预测所述类别中所述像素的值;

将预测误差大于阈值的任何像素从所述类别中去除;以及使用所述类别中在去除之后的剩余像素迭代地产生后续的滤波器、进行预测并去除像素,直到满足预定标准。

说明书 :

技术领域

本发明一般涉及视频压缩,更具体地说,涉及基于预测图像数据帧的压缩。

                     版权/通知允许

本专利文件的一部分公开含有受版权保护的资料。版权所有人不反对当本专利出现在专利和商标局的专利文档或记录中时由任何人传真复制本专利文件或本专利的公开内容,但在其他情况下,版权所有人保留其所有版权。以下通知适用于如下所述及其附图中的软件和数据:版权2003,索尼电子有限公司,所有权保留。

背景技术

通过去除各帧的时间冗余可以获得视频序列的高压缩增益。为编码当前帧,首先根据以前编码的“基准”帧预测当前帧,并仅对预测误差进行编码。基于块的运动估计和补偿一直是用于时间(temporal)预测的流行方法,而且被广泛使用。如图1所示,其基本概念就是在基准帧101中找出类似的配对块,以预测在当前帧103中的目标块,所以只有目标块中的预测残差(residual)需被编码。
为获得精确时间预测的传统方法是使用子像素运动搜索,这会导致大量的运动矢量开销。此外,它不能提供任意的子像素分辨率,而是仅能获得预定的子像素分辨率,例如1/2、1/4或1/8。但实际上,图片中的物体可能具有以任意子像素分辨率的运动,这种分辨率不能从传统的纯运动补偿方法来估计。要用纯运动补偿获得精细的运动分辨率,就要花费更多的比特来表示每个运动矢量,这将导致不良的压缩性能。

发明内容

时间分类滤波通过应用分配给目标帧中像素类别的滤波器以预测像素的值来编码图像数据。像素根据它们相关联的运动矢量进行分类,且运动矢量用于将滤波器定位在基准帧上。还计算预测误差值。滤波器、运动矢量以及预测误差表示编码的图像数据中的像素。基准帧可以是过去的或将来的图像数据帧,且各种组合的过去和将来帧的多个基准帧可用于预测。用于多个基准帧预测的滤波器是三维滤波器,包括用于每个基准帧的二维滤波器。滤波器可以是预定的,或是在帧被编码时产生的。通过将滤波器应用到基准帧并用预测误差值校正所得的预测,来重新创建图像数据。
本发明提供一种编码图像数据的计算机化方法,包括:分配图像数据的目标帧中的每个像素组给运动类别,其中每个像素组包括具有相似运动矢量的像素,并且其中图像数据的目标帧包括至少两个不同的运动类别;分配滤波器给每个运动类别,其中利用来自被分配有该滤波器的所述运动类别的像素来训练该滤波器的系数;使用被分配给所述运动类别的所述滤波器和基准帧来预测分配给每个运动类别的所述像素组的值;及计算所预测值的预测误差值,其中所述滤波器、运动矢量和预测误差值表示所编码图像数据中的所述像素。
本发明还提供一种产生时间上分类滤波器的计算机化方法,包括:分配图像数据的目标帧中的每个像素组给运动类别,其中每个像素组包括具有相似运动矢量的像素,并且其中图像数据的目标帧包括至少两个不同的运动类别;分配系数给每个运动类别,其中利用来自被分配有该系数的所述运动类别的像素来训练所述系数;以及根据所述像素组、相似的所述运动矢量和预编码的基准帧产生所述系数。
本发明还提供一种编码图像数据的设备,包括:组分配装置,用于分配图像数据的目标帧中的每个像素组给运动类别,其中每个像素组包括具有相似运动矢量的像素,并且其中图像数据的目标帧包括至少两个不同的运动类别;滤波器分配装置,用于分配滤波器给每个运动类别,其中利用来自被分配有该滤波器的所述运动类别的像素来训练该滤波器的系数;预测装置,用于使用分配给所述运动类别的所述滤波器和基准帧来预测分配给每个运动类别的所述像素组的值;以及计算装置,用于计算所预测值的预测误差值,其中所述滤波器、运动矢量和预测误差值表示所编码图像数据中的所述像素。
本发明还提供一种产生时间上分类滤波器的设备,包括:用于分配图像数据的目标帧中的每个像素组给运动类别的分配装置,其中每个像素组包括具有相似运动矢量的像素,并且其中图像数据的目标帧包括至少两个不同的运动类别;用于分配系数给每个运动类别的分配装置,其中利用来自被分配有该系数的所述运动类别的像素来训练所述系数;以及产生装置,用于根据所述像素组、相似的所述运动矢量和预编码的基准帧产生所述系数。
现结合系统、客户机、服务器、方法以及可变范围的机器可读介质对本发明加以说明。除了在本摘要中所描述的本发明各方面,通过参阅附图以及阅读以下的详细说明,本发明的其他方面将显而易见。

附图说明

图1示出现有技术的基于块的运动估计和补偿的图解;
图2示出数据编码和使用时间分类滤波实施例的系统级总图;
图3A-C示出使用单个基准帧的时间分类滤波的实施例图解;
图4A-D示出按照各种实施例由计算机执行的时间分类滤波的方法流程图;
图5A-D示出使用多个基准帧的时间分类滤波的实施例的图解;
图6A示出适用于实践本发明的操作环境的一个实施例的图解;
图6B示出适于图6A操作环境的计算机系统一个实施例图解。

具体实施方式

在对本发明实施例的以下详细说明中,要参阅附图,附图中相同的参考编号表示类似的元件,附图中以图示方式示出可实现本发明的具体实施例。对这些实施例都作了足够详细的说明,以使本领域技术人员能够实践本发明,而且应理解,在不背离本发明范围的前提下,可以使用其它的实施例,且可以作逻辑、机械,电气、功能以及其他的改变。所以,以下的详细说明不应认为有限制意义,且本发明的范围仅由所附权利要求书限定。
图2示出编码和解码系统200,它使用时间分类滤波(TCF)和传统的运动补偿一起对图像数据的源帧201进行编码,以获得更高的压缩增益和更好的视觉结果。编码器203使用基于块的运动估计,找出用于待编码帧(目标帧)中每个块的运动矢量。目标帧中的像素根据它们的运动属性被分组为不同的类别,所以基本上是使用运动矢量将帧分段。将指定滤波器分配给一类中的所有像素。为预测目标像素,将相应的滤波器放置在一个或多个以前编码的帧(基准帧)上,由目标像素的运动矢量进行定位。通过在基准帧中对其他像素的滤波操作,来获得目标像素的时间预测。编码器203还计算目标像素的预测误差,即,实际像素值和预测值之间的差。随继对编码的帧、运动矢量和预测误差进行编码,以便通过通信链路,图示为网络205,传送到解码器207。滤波系数也可被传输,或由解码器207重新创建。具体的传输编码与TCF的操作关系不大,并可以采用任何常用的编码技术。解码器207使用滤波器和运动矢量预测目标像素的值,并将预测误差施加到预测值上,以创建图像数据的输出帧209。因此,TCF仅要求粗略的,即,像素方式(pixel-wise)分辨率、运动矢量,并在时间预测中提供任意子像素分辨率。所以,像素预测误差会很小,并可获得高压缩增益。此外,使用多个基准帧中的像素数据来预测目标像素提供了更高的预测精度。
图3A-C示出在一个实施例中使用TCF来编码目标帧。图3A-C假定使用单个基准帧,过去的或将来的都可。使用多个基准帧的实施例在下面进一步说明。
图3A示出目标帧301,其中根据像素的运动矢量(以箭头表示)已将像素分类成六个分段,例如分段303。一般来说,具有相似运动矢量的像素将被一起分组到同一分段中。在使用众所周知的块匹配运动估计技术已经获得运动矢量后,将运动矢量分类,并将类别ID分配给每个运动矢量。对应于该运动矢量的像素也分配有该类别ID。分类之后,一个分段可含有互相连接或互相不连接的像素。
例如,回过来参阅图1,设t为以时间顺序(时间域)的帧索引。假定目标帧Ft103中的像素p(i,j,t)具有运动矢量[mi,mj]105,其参考基准帧101(在时间tr的帧)。则基于传统运动补偿的时间预测可以看作为:
v^mc(i,j,t)=v(i,j,tr)---(1)
式中v(i’,j’,tr)是在以前帧中i’列j’行上的像素值。该基准像素的位置由运动矢量[mi,mj]定位。在此情况下,mi=i’-i而mj=j’-j。
将目标帧中的所有像素都分类为Nc类或分段,其中Nc为正整数。使唯一的滤波器与每个类别或分段c相关联,因此对于每个目标帧就有Nc个滤波器。这些滤波器称为分类滤波器。滤波器的系数可以预先定义,或可通过训练或以下描述的其他技术来创建。每个滤波器是任意的二维形状,例如矩形、圆形、菱形等,由一组像素位置或滤波器抽头来定义。菱形滤波器305示于图3B。注意,每个分类滤波器可具有不同的形状和不同的系数。
如图3C所示,对于目标帧Ft 311中的每个像素p(i,j)像素v(i,j,t)317的值可以通过应用对应于像素类别ID c的滤波器Wc315,从基准帧313中的一组像素进行估计。每个滤波器抽头将对准基准帧中的一个像素,且由滤波器抽头覆盖的所有像素形成区域R。像素值v可以表示为其预测值319加上用作预测误差的残差值ε321:
v(i,j,t)=v^(i,j,t)+(i.j.t)---(2)
式中
v^(i,j,t)=Wc(R)---(3)
基准帧中的滤波器位置可以表示为像素坐标。备选的是,可将滤波器中的一个抽头选作“锚抽头”,在此情况下,滤波器位置定义为滤波器锚抽头所对准的帧中的像素的坐标。目标像素的运动矢量[mi,mj]323用来定位基准位置(i’,j’):
i′=i+mi且j′=j+mj                          (4)
当使用锚抽头时,滤波器Wc放置在基准帧上,其锚抽头与基准像素位置匹配。一旦提供了滤波器抽头(换句话说,滤波器形状)以及滤波器位置,输入抽头像素的区域也就唯一定义了。
设所有输入抽头像素的值以及滤波器系数分别形成矢量X和W。每个矢量有n个元素,其中n是滤波器抽头数,即X=[x1,x2…xn]且W=[w1,w2…wn]。两个矢量中的元素应遵循同一顺序,即,元素xi是在空间域中对准滤波器抽头wi的输入抽头。相应地,公式2的滤波操作可以表示为以下矢量积:
v^=Wc(R)=ΔW·XT=Σi=1nwi·xi---(5)
预测值用来表示编码帧中的像素。预测误差使用下式产生:
ϵ=v·v^---(6)
并传输到解码器,以在解码该帧时校正该预测。
为清晰起见,图3A-C示出使用单个基准帧的时间分类滤波的实施例操作,但本发明不限于此。使用多个基准帧的TCF像素预测能很容易从单个帧实施例中扩展出来,如以下详述的。
参阅图4A-D所示各图,对由编码器例如图2的编码器203执行的时间分类滤波方法400的一个实施例加以说明。
先看图4A,输入到TCF方法400的是目标或当前帧以及(预编码的)单个基准帧。应理解,TCF方法400不限于仅使用单个基准帧,并对使用多个帧的TCF方法的应用在下面结合图5A-D进行讨论。
在框401,TCF方法根据基准帧找出用于目标帧中所有像素的运动矢量。这类似于标准的视频压缩(例如MPEG)。如上所述,将目标帧分成固定大小的块,并进行块匹配,以找出用于每个块的运动矢量。同一块中的所有像素共享同一运动矢量。运动矢量可具有像素分辨率或子像素分辨率。
在框403,根据以上结合图3A所述的像素的运动矢量将目标帧中的像素分类为几个分段。一般来说,具有类似运动矢量的像素将一起分组到同一分段中。分类之后,一个分段可含有互相连接或互相不连接的像素。对每个像素根据其运动矢量的分类分配一个类别ID c。
将唯一滤波器Wc分配给每个类别c的像素。滤波器抽头和滤波器形状可以预定义。帧中的类别(或分段)数Nc可以是预定值,或可根据帧的特征来确定。例如,图3A示出Nc=6的帧。在框403的分类可以看作为具有Nc质心的一般二维分段问题,其中待分类的元素是目标帧的运动矢量。在一个实施例中,使用传统的k均值分段方法,即其中k=Nc。在一个备选实施例中,如图4B所示,与k均值分段相比,根据预定的最大类别数Nmax可迅速且不太复杂地对像素进行分类,如以下详述。
如上所述,每个滤波器可具有不同的形状(滤波器抽头)和不同的系数。系数可以预定义,或可选择在必要时使用各种途径产生,如虚线框405所示。例如,系数可以是对应于输入抽头和基准位置(i’,j’)(或滤波器位置)之间时间间隔的加权。滤波器系数也可用来自基准和目标帧的数据,通过在线自训练来产生,如以下结合图4C所述。
对于具有类别ID c的目标像素,TCF方法400使用相关联的分类滤波器Wc预测像素的值(框407),如以上结合图3C所述。
在框409,计算预测误差。如上所述,预测误差和运动矢量都被发送到解码器。如果类别ID不能从运动矢量导出,且如果滤波器系数在框405已产生,则类别ID和滤波器系数也必须传输到解码器。
图4B示出分类方法410,它取目标帧的运动矢量,并输出每个像素的类别ID。在框411,分类方法410将具有相同值的运动矢量分组到一个仓(bin)中。在框413产生Nmv个仓,每个仓b含有nb个相同的运动矢量。在此实施例中,如果而且只有如果mi1=mi2且mj1=mj2·x时,两个运动矢量mv1=[mi1,mj1]和mv2=[mi2,mj2]被定义为相同。
如果Nmax≥Nmv(框415),则仓数小于Nmax,所以方法410进到框421。
另一方面,如果Nmax<Nmv(框415),则一些仓将必须被组合,以将仓数减到Nmax。在框417,这些仓按nb(仓中的运动矢量数)的递减顺序排序。因此第一仓将具有最大的运动矢量数。在最初Nmax-1个仓中的每个仓将形成一个类别,而将从Nmax到Nmv的其余仓分在一组,以形成单个类别(框419),得到总共Nmax个仓。在框421,每个仓被分配一个类别ID c,它例如可以是整数。
由于一个类别中的所有像素共享同一滤波器,因此当滤波器系数被传送到解码器时(例如,系数是通过在线训练获得的),类别越大(例如含有更多像素),压缩性能就越有效。所以,为了增加压缩增益,分类方法410可有选择地消除具有非常少像素(即,非常少的运动矢量)的类别。选择阈值Tmv,并将所含运动矢量数少于该阈值的类别合并到最邻近的类别中(框423)。阈值Tmv可以预先确定,例如Tmv=10。最邻近的类别是基于测量各对类别之间的距离da,b。在一个实施例中,该距离是在类别的两个质心之间的欧几里得距离:
da,b=(Ma,1-Mb,1)2+(Ma,2-Mb,2)2                     (7)
式中[Ma,1,Ma,2]和[Mb,1,Mb,2]分别为类别a和b的质心。类别c的质心([Mc,1,Mc,2],它是两个元素的矢量)是类别c中运动矢量的平均值,定义为:
Mc,1=1ncΣk=1ncmk,iMc,2=1ncΣk=1ncmk,j---(8)
式中mk,i和mk,j是类别c中第k个运动矢量的两个元素;且nc是类别c中运动矢量的总数。给定类别c的最邻近类别是具有距c最小距离的类别。
可有选择地将含有非常少运动矢量的类别分组为一特殊类别(框425),而不是在框423将它们合并到其他邻近类别。将非常“短”的滤波器,即具有很少抽头的滤波器,分配给这个特殊类别,以最小化用于此类别的滤波器系数开销,因为滤波器系数的代价在最大化总体压缩增益方面是一个考虑因素。图1是只有一个抽头的“短”滤波器实例,其中目标像素只是仅由其基准像素进行预测。
图4C示出使用在线自训练过程431来获得滤波器系数。注意,有Nc个滤波器,目标帧中每个类别有一个。如图所示,自训练过程431的输入是含有用于像素的运动矢量和类别ID的目标帧433以及基准帧435。输出是用于被训练的特定分类滤波器的滤波器系数437。分配给类别c的滤波器中的系数仅由属于类别c的数据(像素)进行训练。
在一个实施例中,训练的滤波器系数W*根据以下标准获得:
W*=minw||X·W-Y||2---(9)
式中minw是一个函数,它最小化‖X·W-Y‖2关于自变量W的值。W*是当‖X·W-Y‖2达最小值时的W值。此式中,X、Y和W例如是以下矩阵和矢量,X是输入数据矢量,W是系数矢量,且Y对应于目标数据矩阵。X、Y和W的实例为:
W=w1w2···wnY=y1y2···yn
这样,根据公式9获得的W*的分类滤波器系数wi对于同一类别中的所有像素都最小化了总体预测误差。
训练过程可以进一步精炼,以获得提供更好预测的滤波器系数。由于可能有在块匹配运动补偿阶段获得的“错误”运动矢量,因此一些像素可能被分配有不精确的运动矢量,例如,它们不表示物体的实际运动。在这种情况下,这些像素可能会破坏用于滤波器系数的训练过程。为了避免这种情况,在训练过程431中可使用多次迭代,如图4D所示。
在框441,训练方法440的第一迭代使用同一分段c中的所有像素来获得用于该分段类别的滤波器系数。所得的滤波器系数用来预测目标帧的各类别中的目标像素(框443),并计算用于每个像素的预测误差(框445)。误差大于预定义误差阈值(框447)的像素被从类别c中去除(框449),所以在该类别滤波器系数的下一次迭代中它们被排除在训练之外。训练方法440返回到框441,在此对分段c中其余的像素进行操作。当迭代数超过预定值Ttr时,例如Ttr=3,或当具有大预测误差的像素数低于预定数时,训练方法退出(框451)。由于训练方法440从训练数据中去除了预测很差的像素,从最终迭代获得的滤波器系数就会对分段中的其余像素提供更精确的预测。
在迭代期间从分段c中去除的像素可以分组成一个特殊类别,分配给它一个新的滤波器(图4B的框425),或保留在同一类别中,并用在最终迭代中获得的滤波器系数进行预测(图4A的框407)。
实际上,方法400可以构成由机器可执行指令组成的一个或多个程序。参阅图4A-D的流程图说明此方法使本领域技术人员能开发这种程序,包括这些指令,以执行由适当配置的机器上(从机器可读介质中执行指令的机器的处理器)的逻辑块所表示的操作(动作)。机器可执行指令可以用计算机编程语言写入,或可以在固件逻辑或在硬件电路中实施。如果用符合公认标准的编程语言写入,这些指令就可在各种硬件平台上执行,并用于与各种操作系统对接。此外,本发明不是就任何特定的编程语言来说明的。应理解,各种编程语言都可用来实现如本文所述的本发明内容。而且,在本领域通常以一种形式或另一种形式提及软件(例如程序、步骤、过程、应用、模块、逻辑…)是作为采取一种措施或导致一种结果。这种表达不过是一种简化说法,表示由机器执行的软件使机器的处理器执行一个动作,或产生一个结果。还应理解,在不背离本发明范围的前提下,可以将更多或更少的过程结合到图4A-D所示的方法中,而且本文给出和所述的框排列并不隐含有特定的顺序。
现参阅图5A-D说明使用多个基准帧的TCF的具体实现方案。以前所述的TCF实施例是基于单个基准帧来预测像素。这可很容易地扩展到用多个基准帧的情况。对于某个目标帧,可以通过为基准帧作索引根据几个基准帧进行预测,这些基准帧可以是过去或将来的帧,或是它们的任何组合。图5A和5B示出从多个过去基准帧501、503以及过去505、507基准帧和将来509基准帧对目标帧的预测。
假定Nr基准帧,每个块(或像素)具有与每个基准帧相关联的Nr运动矢量。运动矢量将被构建为[mi,mj,mt],其中mt是一个新元素,表示用于每个基准帧的索引。由于有Nr个运动矢量用于每个目标像素,因此分类过程与上述用单个基准帧即Nr=1的情况略有不同。对于每个像素块,运动矢量是从所有可用的Nr个运动矢量中选择的。在一个实施例中,该选择基于哪个运动矢量导致用于整个像素块的最小平均预测误差。所选的运动矢量如前所述用来对块进行分类。
分配给类别的滤波器可具有三维形状,其中其抽头可跨越几个帧。换句话说,3D滤波器含有Nr个二维滤波器,如上所述。图5C示出一个用于系数训练或像素预测的3D滤波器,它含有两个具有不同2D滤波器形状的2D滤波器511、513。当3D滤波器被放在多个基准帧上时,每个其2D滤波器就被放在对应的基准帧515、517上,并由与该基准帧相关联的目标像素运动矢量519、521定位。一旦滤波器被放在基准帧上,输入抽头像素即被标识,它可来自不同的帧。其余的训练或预测步骤与针对单个基准帧实施例所述的相同。
用多个基准帧的TCF的另一实例示于图5D。在这种情况下,有三个基准帧(Nr=3),两个过去的基准帧531、533和一个将来的基准帧535。目标像素537具有三个运动矢量(mv1 539、mv2 541和mv3543),它们每一个标识每个基准帧中的一个基准像素。回忆一下:对于每个基准帧,3D TCF滤波器可具有任意形状。图5D示出一种极端情况,其中TCF滤波器在每个基准帧上仅有一个抽头,每个抽头对准基准像素。滤波器总共有三个抽头,并且从对三个基准像素的滤波操作就可对目标像素进行预测。
对图6A-B的以下说明旨在提供适合执行上述本发明方法的计算机硬件和其他操作成分的概述,而不是旨在限制其适用环境。例如,图2所示的编码器203和/或解码器207可在通用计算机系统中实现,如以下结合图6B所述,或在特别配置成执行本文所述功能的装置中实现。通信链路205可以是公用或专用的连接,该连接可以是客户机-服务器或对等关系,如以下结合图6A所述。本领域技术人员会立即理解,本发明可以用其它计算机系统配置实现,包括手持装置、多处理器系统、基于微处理器的或可编程的消费电子产品、网络PC、小型计算机、大型计算机等等。本发明也可在分布式计算环境中实现,此时由通过通信网络链接的远程处理装置执行任务。
图6A示出通过网络3例如因特网连接在一起的几个计算机系统1。本文中使用的术语“因特网”是指网络中的一种网络,它使用某些协议,例如TCP/IP协议,可能还有其它协议,例如用于构成万维网(web)的超文本标记语言(HTML)文件的超文本传输协议(HTTP)。因特网的物理连接以及因特网的协议和通信过程对本领域技术人员来说都已众所周知。对因特网3的接入通常由因特网服务提供商(ISP)提供,如ISP 5和7。客户机系统的用户,例如客户机计算机系统21、25、35和37通过因特网服务提供商例如ISP 5和7获得对因特网的接入。接入因特网就允许客户机计算机系统的用户交换信息、接收和发送电子邮件以及观看文件,例如以HTML格式准备的文件。这些文件常常由web服务器提供,例如被认为是在因特网上的web服务器9。这些web服务器常由ISP例如ISP 5提供,虽然没有也是ISP的系统,计算机系统也可被安装和连接到因特网,这是本领域众所周知的。
web服务器9通常至少是一个计算机系统,它作为服务器计算机系统工作,并配置成用万维网协议工作,并连接到因特网。可选的是,web服务器9可以是为客户机系统提供因特网接入的ISP的一部分。web服务器9显示为连接到服务器计算机系统11,服务器计算机系统11本身又连接到web内容10,web内容10可被认为是一种形式的媒体数据库。应理解,虽然在图6A中示出两个计算机系统9和11,但web服务器系统9和服务器计算机系统11可以是具有不同软件成分的一个计算机系统,它提供web服务器功能和由服务器计算机系统11所提供的服务器功能,这将在下面详述。
客户机计算机系统21、25、35和37,每个都可用适当的web浏览软件观看由web服务器9提供的HTML页面。ISP 5通过调制解调器接口23提供因特网到客户机计算机系统21的连接,调制解调器接口23可以认为是客户机计算机系统21的一部分。客户机计算机系统可以是个人计算机系统、网络计算机、Web TV系统、手持装置或其它这种计算机系统。同样,ISP 7为客户机系统25、35和37提供因特网连接,虽然如图6A所示,用于这三个计算机系统的连接是不同的。客户机计算机系统25通过调制解调器接口27连接,而客户机计算机系统35和37是LAN的一部分。虽然图6A将接口23和27一般示为“调制解调器”,但应理解,这些接口中的每个接口都可以是模拟调制解调器、ISDN调制解调器、电缆调制解调器、卫星传输接口、或用于将计算机系统连接到其它计算机系统的其它接口。客户机计算机系统35和37通过网络接口39和41连接到LAN 33,这些接口可以是以太网或其它网络接口。LAN 33还连接到网关计算机系统31,网关计算机系统31可以为局域网提供防火墙以及其它与因特网有关的业务。该网关计算机系统31连接到ISP 7,以提供因特网到客户机计算机系统35和37的连接。网关计算机系统31可以是常规的服务器计算机系统。而且,web服务器系统9可以是常规的服务器计算机系统。
备选的是,众所周知,服务器计算机系统43可以通过网络接口45直接连接到LAN 33,以向客户机35、37提供文档47和其它业务,而不需通过网关系统31连接到因特网。而且,客户机系统21、25、35、37的任何组合可以通过使用LAN 33、因特网3或作为通信介质的组合的对等系统连接在一起。一般来说,对等系统将数据分布在用于存储和检索的多个机器的网络上,而不使用一个或多个中心服务器。因此,每个对等系统可结合有上述客户机和服务器二者的功能。
图6B示出一个可以用作客户机计算机系统或服务器计算机系统或用作web服务器系统的常规计算机系统的实例。还应理解,这种计算机系统可以用来执行因特网服务提供商例如ISP 5的许多功能。计算机系统51通过调制解调器或网络接口53与外部系统对接。应理解,调制解调器或网络接口53可以认为是计算机系统51的一部分。该接口53可以是模拟调制解调器、ISDN调制解调器、电缆调制解调器、令牌环接口、卫星传输接口、或用于将计算机系统连接到其它计算机系统的其它接口。计算机系统51包括处理单元55,它可以是常规的微处理器,例如英特尔奔腾微处理器或摩托罗拉Power PC微处理器。存储器59由总线57连接到处理器55。存储器59可以是动态随机存取存储器(DRAM),并且也可包括静态RAM(SRAM)。总线57将处理器55连接到存储器59,还将其连接到非易失性存储器65、显示控制器61以及输入/输出(I/O)控制器67。显示控制器61以常规方式控制显示装置上的显示器63,它可以是阴极射线管(CRT)或液晶显示器(LCD)。输入/输出装置69可包括键盘、磁盘驱动器、打印机、扫描器以及其它输入和输出装置,包括鼠标或其它指示装置。显示控制器61以及I/O控制器67可以用常规的众所周知的技术实现。数字图像输入装置71可以是数字照相机,它连接到I/O控制器67,以便能将图像从数字照相机输入到计算机系统51。非易失性存储器65通常是磁硬盘、光盘或用于大量数据的另一种形式的存储器。一些这种数据常常在计算机系统51中执行软件期间通过直接存储器存取过程写入到存储器59中。本领域技术人员会立即理解,术语“计算机可读介质”和“机器可读介质”包括可由处理器55存取的任何类型的存储装置,而且还包括编码数据信号的载波。
应理解,计算机系统51是具有不同体系结构的许多可能计算机系统中的一个实例。例如,基于英特尔微处理器的个人计算机常具有多条总线,其中一条可以是用于外设的输入/输出(I/O)总线,一条直接连接处理器55和存储器59(常称为存储器总线)。这些总线通过桥式组件连接在一起,桥式组件因不同的总线协议而执行任何必要的变换。
网络计算机是能用于本发明的另一种类型的计算机系统。网络计算机一般不包括硬盘或其它大容量存储器,并且可执行程序是从网络连接下载到存储器59中,以便由处理器55执行。本领域已知的Web TV系统也可认为是按照本发明的计算机系统,但它可能缺少图6B所示的一些特征,例如某些输入或输出装置。典型的计算机系统通常至少包括处理器、存储器以及将存储器连接到处理器的总线。
还应理解,计算机系统51由包括文件管理系统的操作系统软件控制,例如盘操作系统,它是操作系统软件的一部分。具有其相关联的文件管理系统软件的操作系统软件的一个实例是众所周知的华盛顿雷德蒙的微软公司的Windows操作系统系列,以及它们相关联的文件管理系统。文件管理系统通常存储在非易失性存储器65中,使处理器55执行操作系统所要求的各种动作,以输入和输出数据,并将数据存储在存储器中,包括将文件存储在非易失性存储器65中。
以上已对时间分类滤波作了说明,它能预测图像数据中的像素,以使像素值在传输后可被重新创建。虽然本文已示出和说明了具体实施例,但本领域技术人员应理解,经计算以达同样目的的任何结构都可替代所示的具体实施例。本申请旨在覆盖对本发明的任何修改或改变。所以应很明确,本发明仅由以下权利要求书及其等效物限制。