发明内容
本发明的目的是提出了一种编码和解码方法,使得能够提高数据压缩率,而同时保留重构图像的视觉效果。
为了这个目的,本发明的目的是一种对视频序列中的图像的图像分部(portion)进行编码方法,视频序列中的至少一幅图像是关键图像,其特征在于,所述方法包括以下步骤:
a)计算关键图像或每一个关键图像的显著图(saliency map),
b)对于要编码的图像分部,估计至少一个运动矢量(V1,V2),所述至少一个运动矢量(V1、V2)对指向关键图像或每一个关键图像的一部分,
c)使用所估计的运动矢量(V1,V2),对显著图的至少一个分部进行运动补偿,以针对所述图像分部获得预测显著图的至少一个部分,以及
d)根据所预测的显著图的分部或每一分部的显著等级,对图像分部进行编码。
根据特定实现模式,编码过程包含单独或以组合方式采用的一个或多个如下特性:
-步骤d)包括如下步骤:
-确定所预测的显著图的分部的显著等级,
-对预定显著等级(S1)与所预测的显著图的分部的显著等级(S)进行比较,以及
-根据所述比较的结果,使用选定的方法来编码图像分部,所述方法至少从第一或第二方法中选择,
-第一编码方法由标准H.264定义,第二编码方法是基于H.264标准的方法,在第二种方法中,每一个运动矢量(V1,V2)的分量的幅度大于1/4像素,
-第二编码方法包括运动插值,该运动插值基于插值滤波器,而不是第一方法中使用的滤波器,并且还包括由仿射参数定义的运动信息的编码和传输步骤。
-根据层可缩放的压缩方法,来对视频序列中的图像的图像分部进行编码,指定在基本层中编码关键图像,在高层中编码图像分部,
-编码方法还包括包含如下步骤:
-估计运动矢量(V5),该运动矢量(V5)从第二中间图像的分部指向第一中间图像的分部的至少一部分,
-对第一中间图像的所述分部的所述部分的像素数目进行计数。
当所计数的像素数目大于预定数目(Nmin)时,编码方法包括以下步骤:
-使用第一中间图像的分部,并且通过被选择来编码第一中间图像的分部的编码方法,来编码第二中间图像的分部。
-在根据第一关键图像的分部和第二关键图像的分部对中间图像分部进行双向编码期间,该双向编码,与预定显著等级(S1)相比较的显著等级(S)是基于根据第一运动矢量(V1)预测的显著图的第一分部的显著等级(S12)以及根据第二运动矢量(V2)预测的显著图的第二分部的显著等级(S14),中间图像的所述分部根据第一关键图像的分部和第二关键图像的分部的预测均值来编码,所述均值通过预测显著图的第一和第二分部的所述显著等级(S12,S14)来加权。
-步骤a)包括关键图像或每个关键图像的编码步骤,所述步骤产生重构的关键图像,根据重构的关键图像计算显著图。
本发明的方法还包括二进制流的解码方法,该二进制流包括代表运动矢量(V1、V2)、视频序列中的图像和关键图像的压缩数据,所述解码方法目的在于重构要重构的图像的一部分。根据特定实施例,该方法包括以下步骤:
a)根据压缩数据重构关键图像或每个关键图像,
b)计算重构的关键图像或每一个重构的关键图像的显著图,
c)针对要重构的图像部分、对指向关键图像一部分的至少一个运动矢量(V1,V2)进行解码,
d)使用已解码运动矢量(V1,V2),对显著图的至少一个分部进行运动补偿,以针对要重构的所述图像分部,获得预测显著图的一部分,
e)根据预测显著图的显著等级,重构要重构的图像分部,
-确定预测显著图的分部或每个分部的显著等级,
-比较预定显著等级(S1)与预定义显著图的分部的显著等级(S),以及
-根据所述比较结果,使用选定的方法来重构要重构的图像分部,所述方法是至少从第一和第二种方法之中选择的。
-根据层可缩放的压缩方法,对视频序列中的图像的图像分部进行解码,对基本层的压缩数据的重构产生关键图像,对高层的压缩数据的重构产生要重构的图像分部,
-该方法还包括以下步骤:
-对至少一个运动矢量(V1,V2)进行解码,该运动矢量(V1,V2)从第二中间图像的分部指向至少第一已解码中间图像的分部的至少一部分,该方法还包括以下步骤:
-对第一已解码中间图像的分部的一部分的像素数目进行计数,
当所计数的像素数目大于预定数目(Nmin)时,该方法包括以下步骤:
-使用第一中间图像的分部,并且通过被选择来重构第一中间图像的分部的方法,来重构第二中间图像的分部,
-在对根据来自于第一中间图像分部和第二中间图像分部的双向预测而编码的中间图像的分部的重构期间,与预定显著等级(S1)相比较的显著等级(S)是基于根据第一运动矢量(V1)预测的显著图的第一分部的显著等级(S12)以及根据第二运动矢量(V2)预测的显著图的第二分部的显著等级(S14),所述中间图像分部是根据第一关键图像的分部和第二关键图像的分部的预测均值来重构的,所述均值通过预测显著图的第一和第二分部的显著等级(S12,S14)来加权。
此外,本发明还涉及一种能够对视频序列中的图像进行编码的编码器,至少一幅图像是关键图像,其特征在于,该编码器包括:
-计算单元,计算关键图像或每一个关键图像的显著图,
-估计单元,针对要编码的图像的分部,能够估计指向关键图像或每一个关键图像的分部的至少一个运动矢量(V1,V2),
-补偿单元,针对图像的所述分部,能够使用估计的运动矢量(V1,V2)来对显著图的分部进行运动补偿,以获得显著图的至少一个分部,以及
-编码单元,能够根据预测显著图的分部的显著等级,来对图像的分部进行编码,
最后,本发明涉及一种二进制流的解码器,该二进制流包括表示运动矢量(V1、V2)、视频序列中的图像和关键图像的压缩数据,所述解码器目的在于重构要重构的图像的一部分,该解码器包括:
-重构单元,根据压缩数据重构关键图像,
-计算单元,计算重构关键图像的显著图,
-解码单元,能够针对要重构的图像分部,对指向关键图像的分部的至少一个运动矢量(V1,V2)进行解码,
-运动补偿单元,能够针对要重构的所述图像分部,使用已解码运动矢量(V1,V2),来对显著图的至少一个分部进行运动补偿,以获得预测显著图的分部,以及
-重构单元,能够根据预测显著图的分部的显著等级,重构要重构的图像分部。
具体实施方式
参照图1,编码器2包括输入4和输出8,输入4能够接收要编码的视频序列6,输出8能够传输二进制流10。
视频序列6包括由至少两个关键图像12、14形成的一个或多个GOP(图像组),关键图像12、14使一系列被称作中间图像16、18的图像成帧(至少一个关键图像在中间图像之前,并且至少一个关键图像在中间图像之后)。
关键图像12、14以及中间图像16、18被分割为宏块、块、子块以及区域。
宏块、块、子块的概念类似于例如在MPEG4中使用并在文献JTV-M050d4、H.264/AVC(ITU-T推荐标准H.264和ISO/IEC14496-10(MEPG-4part 10)高级视频编码)草案版本4、Palma deMallorca,ES 18-22Oct.,2004中定义的“宏块”、“分块”、“子分块”的概念。
宏块是16×16像素的集合。这样的宏块可以被分割为16×8、8×16和8×8像素的块。每一个块能够被分割为4×8,8×4和4×4像素的子块。区域没有预定大小,并且与图像的区相对应。说明书的其余部分中,宏块,子块以及区域被称作图像分部。
编码器2包含:连接至输入4的运动矢量估计单元19、与连接至估计单元19的编码判定单元20、连接至判定单元20的编码单元22,以及连接至编码单元22连接的显著图计算单元24。
运动矢量估计单元19能够针对每一个中间图像16、18的每一个分部,确定中间图像的该分部与一个或多个中间图像的分部、一个或多个关键图像12、14的分部之间的运动矢量,同样地,针对每一个关键图12、14的每一个分部,确定该关键图像分部与另一关键图像的分部之间的运动矢量。
运动矢量估计单元19必须能够估计接近实际物理域的运动矢量,使得应当沿着运动方向被插值的中间图像显著图相互之间时间相关,并且与关键图像显著图时间相关。例如,在文献[Tourapis,Au,Liou,FastMotion Estimation using Circular Zonal Search,Proceedings of VisualCommunication and Image Processing 1999(VCIP’99)]中描述了这样的估计单元。
作为变型,可使用分级时空类型的估计单元19。
判定单元20能够为关键图像12、14的每一个宏块,确定其编码模式(例如文献JVT-M050d47.4.5章节指定的模式)、其图像分部的分割(即,区域、宏块、块等的分割)、运动或空间预测信息(参考图像,关联的运动矢量)、变换和量化后的预测残差。
关键图像,编码单元22针对关键图像,对单元20所采用的编码判定以及关联数据(编码模式,图像分部分割,运动矢量以及图像数据,变换和量化后的预测残差,等等)进行编码。
计算单元24根据本地解码的关键图像以及与它们相关联的已编码运动数据,来计算关键图像12,14的显著图。
为了这个目的,例如,计算单元24使用文献(O.Le Meur、P.LeCallet和D.Barba的Predicting visual fixation on video based on low-levelvisual features,Vision Research Vol47/19 pp 2483-2498,September2007)提出的方法。
编码器2还包括:连接至输入4和估计单元19的编码模式判定单元25,连接至编码判定单元25和输出8的编码单元26,以及连接至编码单元26和计算单元24的运动补偿单元28。
编码判定单元25能够在如H.264标准定义的帧内、帧间单向或帧间双向编码之中,判定中间图像的每一个图像分部的编码模式,编码判定单元25还能够判定图像分部的分割信息以及参考图像的索引。单元25在输入处使用来自估计单元19的数据。
编码单元26对编码判定单元25所采用的所有编码判定进行编码。
补偿单元28能够使用估计单元19所估计的运动矢量,来对关键图像的显著图的分部进行运动补偿,以便基于中间图像的图像分部,判定根据关键图像的显著图推断的显著等级。
编码器2还包括:连接至补偿单元28和估计单元19的选择单元30,以及连接至输入4、选择单元30和输出8的编码单元32。
选择单元30能够分析运动补偿后的显著图的分部的显著等级S,并根据该显著等级,选择中间图像16、18的图像分部的编码方式,如后面所述。
编码单元32能够使用选择单元30所选定的编码方式,来对中间图像16、18的图像分部进行编码。
根据所描述的实施例,单元30可选择第一和第二种编码方式。
针对具有增强的显著等级的图像分部,选择第一种编码方式,考虑在编码期间这些分部需要保留。因此第一种方法力求用适用于源信号的方式来编码图像分部,通过残差编码来校正可能的预测误差。
例如,第一种编码方法可以使用H.264标准的所有编码模式。
第二种编码方法涉及具有低显著等级的图像分部,认为这些分部能够被返回到源信号,但不具有真实保真度。因此,在这些图像分部上,不对残差进行编码,并且这些图像分部仅由时间预测来产生。因此,预测具有与其上编码了残差的图像分部等同的质量,第二种编码方法包括更精确的运动补偿步骤。特别地,第二种编码方法基于比第一种方法中使用的运动补偿更精细的运动补偿(例如,其中运动矢量分量的幅度等于1/16像素,而不是如H.264中的1/4像素,使用仿射运动模型而不是如H.264中的平移,等等)。
例如,针对层内、层间纹理插值,可以根据MPEG-4SVC中指定的滤波器来实现精细运动插值,如文献JVT-X201“Joint Draft ITU-TRec.H.264/ISO/IEC 14496-10/Amd.3 scalable video coding”Geneva,Switzerland,29June-5July 2007的章节G.8.6.2.3的表G8所描述的。它还可以使用更长的支持滤波器(多于四个系数),例如根据Lanczos滤波器模型和双三次滤波器。
第二种方法包括基于仿射参数的运动补偿和编码步骤。
通过定义,当区域经历这样的运动时,矢量具有六个仿射参数θ=(a,b,α,β,γ,δ)T,使得区域内任意点(x,y)的运动矢量(dx,dy)可以表示为:
作为变型,不对关键图像和中间图像进行分割。
根据本发明的实施例,根据如SVC(可缩放视频编码)标准定义的层可缩放的编码方法,来编码视频序列中的图像。
根据这种层可缩放的编码方法,每个层对应于视频内容的不同的空间分辨率,从在被称作基本层的层中编码的最低分辨率到在被称作顶层的层中编码的最高分辨率。例如,通过使用层间预测方法,在更高层的编码中使用层的编码信息。
在这种情况下,第一种编码方法基于具有层间预测的SVC标准,使用四个系数的滤波器的插值,以及所有残差系数的编码。
第二种编码方法基于具有层间预测的SVC标准,使用例如由更长滤波器实现的更复杂的插值,但不进行残差编码。
作为变型,第二种编码方法还包括图像轮廓增强的步骤。
在该实施例中,根据整体重构的、来自基本层的图像来确定显著图。在优选实施例中,基本层的所有关键图像被完整重构。基于这些来自于基本层的重构图像,计算显著图。在对来自于顶层(对于顶层,整体重构基本图像)的图像的图像分部的编码期间,根据与来自基本层的图像中的显著性相对应的图像分部的显著性,来计算显著等级。如果来自顶层的图像不具有来自来自于基本层的重构图像,如上所述,通过顶层的关键图像的显著图的运动矢量来确定显著等级。
备选地,使用其他的编码方法。
根据来自于一个或多个关键图像12、14或来自于其他中间图像的单向或双向的预测,编码方法使得能够对中间图像16、18的图像分部进行编码。下文在这些情况的每种情况下,描述根据本发明的编码和解码的方法。
参照图3和图4,根据单向预测的中间图像16的图像分部54的编码方法开始于单元19执行的关键图像的运动估计步骤43、单元20执行的编码判定步骤45和单元22执行的关键图像编码,以及单元24执行的关键图像的显著图计算步骤47。
图像分部54的编码方法继续进行中间图像16的分割和中间图像16与参考关键图像12之间的运动矢量的估计步骤50。
该步骤由估计单元19执行,针对中间图像16的每一个图像分部计算分割和运动信息。
例如,参照图4,估计单元19估计中间图像16的分部54与关键图像12的分部52之间的运动矢量V1。具体地,运动矢量V1从图像分部54指向图像分部52。
在步骤55期间,判定单元25确定中间图像的图像分部54的编码模式。
在步骤56期间,编码单元26编码与编码模式有关的编码判定,包括分割和运动矢量。
当编码单元26所编码的编码模式是帧内类型时,过程直接继续进行残差信息编码步骤74。
在步骤64期间,补偿单元28利用由步骤50产生的运动数据对显著图60执行补偿。这包含确定显著图60的分部66,使得分部66在显著图60中的位置与分部52在关键图像12中的位置相同,然后考虑运动矢量的子像素级精度,根据分部66对分部72进行插值。
步骤68判定运动补偿的显著图的分部72的显著等级S。显著信息由在每一个像素中计算的从0变化到255的非二进制信息组成。
所确定的显著等级是图像分部72的均值显著等级。作为变型,确定显著图的分部72的中间显著等级或最大显著等级。
步骤70期间,选择单元30比较预定显著等级S1与运动补偿的显著图的分部72的显著等级S。
当分部72的显著等级S大于预定显著等级S1时,步骤74期间,使用第一种编码方法来编码图像分部54。仅编码尚未在先前编码步骤56(例如预测残差)中被编码的信息。反之,例如,不对步骤50期间确定的运动矢量进行编码。
当运动补偿的显著图的分部72的显著等级S小于预定的显著等级S1时,编码方法继续步骤76,在步骤76期间,估计单元19计算更精确的运动矢量,例如,运动矢量的分量的幅度具有一定精度等级,大于1/4像素,如等于1/16像素。
然后,在步骤78期间,通过编码单元32使用第二种编码方法来编码图像分部54。
当显著图的分部72提供了高显著等级时,根据步骤74,第一种编码方法通过编码再现最佳源信号。然而,如果显著图的分部72提供了低显著等级,则第二种编码方法能够获得具有视觉效果的图像,尽管不会精确再现编码图像。
参照图3和图6,在中间图像16的图像分部的双向预测编码的情况下,描述了根据本发明的编码方法。
在步骤43至47实现之后,估计单元19在步骤50期间估计第一个运动矢量V1和第二运动矢量V2,第一运动矢量V1从中间图像16的图像分部54指向关键图像12的图像分部52,第二运动矢量V2从图像分部54指向关键图像14的图像分部98。
在步骤55期间,判定单元25判定中间图像的图像分部54的编码模式。
在通过步骤56期间,编码单元26编码与编码模式有关的编码判定,包括分割和运动矢量。
在通过步骤64期间,补偿单元28确定显著图66的第一分部,以及显著图100的第二分部,该第一分部位于与图像分部52相同的位置,,该第二分部位于图像分部98的相同位置。
分部66包含在关键图像12的显著图60中,分部100包含在关键图14的显著图101中。
在步骤64期间,使用第一运动矢量V1来运动补偿图像分部66,以获得运动补偿的显著图的分部72。同样地,使用第二运动矢量V2来运动补偿显著图100的分部,以获得运动补偿的显著图的第二分部102。
在步骤68中,补偿单元28确定运动补偿的显著图的分部72的显著等级S12,以及运动补偿的显著图的分部102的显著等级S14。
然后,单元28在显著图的分部的显著等级S12与显著图的分部102的显著等级S14之间搜索最大显著等级。在步骤70中,比较该最大显著等级与预定显著等级S1,从而选择编码方法。
作为变型,针对比较步骤,考虑等级S12和S14的均值显著等级。
然后,在步骤74和78中,通过图像分部52和98的加权和,根据第一关键图像12和第二关键图像14对中间图像16的图像分部进行编码,所述加权根据显著图的分部66和100的显著等级S12、S14。
例如,可应用如下等式:
如果S12≠0或S14≠0则
pred[x,y]=pred0[x,y]*S12/(S12+S14)+pred1[x,y]*S14/(S12+S14)
否则
pred[x,y]=pred0[x,y]/2+pred1[x,y]/2
其中,(x,y)指预测图像分部(即,在中间图像16中)中的像素的坐标,pred0[]和pred1[]构成分部52和98的预测分部,S12和S14表示分部52和98的显著等级。
在变型中,附加权值W0应用于分部52的预测分部,以及附加权值W1应用于分部98的预测分部,其中W0+X1=A1。例如,权值W0、W1是关键图像12与中间图像16之间的距离的函数,因此,是中间图像16与关键图像14之间的距离。该距离表示散置在这些图像之间的图像的数目。
在这种情况下,前面的等式变成:
如果S12≠0或S14≠0则
pred[x,y]=pred0[x,y]*S12*W0/(S12*W0+S14*W1)+
pred1[x,y]*S14*W1/(S12*W0+S14*W1)
否则,
pred[x,y]=pred0[x,y]*W0+pred1[x,y]*W1
对于每一个图像分部定义显著等级S12和S14。在变型中,考虑每个图像分部的每个像素的显著等级用于对每一个中间图像的图像分部的编码和解码。
根据本发明的另一方面,在特定的情况下,中间图像可以用作编码其他中间图像的参考。
在这种情况下,并参照图7和8,考虑中间图像18的图像分部116的编码方法。
在第一步骤106中,估计单元19估计运动矢量V5,该运动矢量V5从第二中间图像18的图像分部116指向第一中间图像16的图像分部118。
在步骤108期间,在第一中间图像16的图像分部118中列举根据第一种方法编码的像素的数目N1。
在步骤110期间,将根据第一种方法编码的像素的数目N1与阈值Nmin相比较。如果N1大于Nmin,则针对图像分部116的编码,选择第一种编码方法,如果不大于,则运动矢量被视作无效,并且不可以用于对来自于中间图像16的图像分部116的预测和编码。
编码器(因此,解码器)不能使用针对中间图像的预测,除非运动矢量所指向的中间图像的图像分部包含根据第一种方法编码的足够数目的像素。在这种情况下,可以在单向和双向模式中应用第一种编码方法(然后必须使用根据另一关键或中间图像的另一预测器)。
参照图2,根据本发明的解码器34包括:能够接收二进制流的10(例如编码器2编码的码流)的输入36、以及能够产生图像组的输出38,该图像组包括两个关键图像12、14和中间图像16、18。
解码器34包括:解码单元40,用于对表示关键图像12/14的压缩数据进行解码,解码单元42,用于对表示中间图像的运动数据(分割、矢量、参考图像)的压缩数据进行解码。解码单元40连接至输入36和输出38。解码单元42连接至输入36并连接至解码单元40。
解码器34还包括:表示中间图像的运动数据(分割、矢量、参考图像)的压缩数据的解码单元40。
计算单元40连接至输入36和输出38。解码单元42连接至输入36和解码单元40。
解码器34还包括:解码的关键图像12、14的显著图的计算单元44、以及关键图像的显著图分部的运动补偿单元46,来确定中间图像的图像分部的显著等级。
计算单元44连接至解码单元40。补偿单元46连接至计算单元44和解码单元42。
解码器34还包括:连接至补偿单元46的中间图像的图像分部的解码方法的选择单元48、以及连接至输入36、选择单元48和输出38的中间图像的重构单元49。
选择单元48能够针对中间图像的图像分部,来分析运动补偿的显著图的分部的显著等级S,并能够根据显著等级选择用于中间图像的这些图像分部的解码方法。
重构单元49能够根据至少从第一和第二种解码方法之中选择的方法,来对中间图像16、18进行解码。
当然,这些解码方法与编码器2中使用的编码方法的逆过程相对应,即基于H.264标准的解码方法或基于SVC标准的解码方法。
备选地,可以使用其他解码方法。
参照图5,通过单向预测的中间图像16的图像分部54的解码方法开始于关键图像的重构步骤82,以及关键图像显著图的计算步骤83。
图像分部54的解码方法继续执行步骤84,在该步骤84中,解码单元42对编码模式和图像分部的分割信息,以及定义在中间图像16、18和关键图像12、14之间的运动矢量进行解码。
在步骤88期间,补偿单元46确定显著图66的分部,该分部位于与运动矢量V1所指向的关键图像分部52的相同位置,如图4所见,并且考虑运动矢量的子像素精确等级,根据分部66对分部72进行插值。
步骤90确定运动补偿的显著图的分部72的显著等级S。
在步骤92期间,选择单元48比较预定显著等级S1与运动补偿的显著图的分部72的显著等级S。
当分部72的显著等级S大于预定显著等级S1时,选择单元48选择第一种解码方法以重构图像分部54。
第一种解码方法对应于在步骤74中使用的第一种编码方法。
在步骤94期间,使用第一种解码方法重构图像分部54。
当分部72的显著等级S小于预定显著等级S1时,在步骤96期间,根据第二种解码方法来解码图像分部54,该第二种解码方法与步骤78中使用的第二种编码方法相对应。
参照图5,在根据双向预测方案编码的中间图像的图像分部的重构期间,针对第一运动矢量V1和第二运动矢量V2实现步骤82至88。
然后,在步骤90期间,补偿单元28使用第一运动矢量V1确定运动补偿的显著图的分部72的显著等级S12,以及使用第二运动矢量V2确定运动补偿的显著图的分部102的显著等级S14。
然后,在显著等级S12与S14中搜索最大的显著等级。在步骤92期间,比较该显著等级与预定显著等级S1,来选择中间图像16的解码方法。
重构预测图像的第一分部54和预测图像的第二分部54′,然后,使用显著等级和/或距离,根据第一分部54和第二分部54′的加权均值来计算图像分部。
并行地,在重构如此编码的中间图像期间,解码方法包括以下步骤:
-对运动矢量进行解码,该运动矢量从第二中间图像18的分部116指向第一解码的中间图像16的分部118的至少一部分。
-使用通过第一种编码方法编码的第一中间图像的分部,来重构第二中间图18的分部116。
作为变型,编码和解码方法能够包括许多预定显著等级S1、S2、S3,以及例如提供不同运动矢量分辨率的许多编码方法。