首页> 中国专利> 具有画面级调整的扩展空间可缩放性的方法和系统

具有画面级调整的扩展空间可缩放性的方法和系统

摘要

本发明实施例包括在空间可缩放视频编码中对运动矢量进行修改的系统和方法。本发明的一些实施例包括用于H.264/MPEG-4 AVC的可缩放视频编码扩展的方法和系统。

著录项

  • 公开/公告号CN101379511A

    专利类型发明专利

  • 公开/公告日2009-03-04

    原文格式PDF

  • 申请/专利权人 夏普株式会社;

    申请/专利号CN200680016560.X

  • 发明设计人 孙式军;

    申请日2006-02-28

  • 分类号G06K9/32(20060101);G06T13/00(20060101);H04N7/12(20060101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人陈瑞丰

  • 地址 日本大阪府

  • 入库时间 2023-12-17 21:36:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-03-08

    专利权的转移 IPC(主分类):H04N7/26 登记生效日:20170214 变更前: 变更后: 申请日:20060228

    专利申请权、专利权的转移

  • 2011-11-09

    授权

    授权

  • 2009-04-29

    实质审查的生效

    实质审查的生效

  • 2009-03-04

    公开

    公开

说明书

本申请要求2005年3月18日提交的美国临时专利申请No.60/663,161“Extended spatial scalability with picture-level adaptation”(发明人Shijun Sun)的优先权;本申请还要求2005年5月20日提交的美国临时专利申请No.60/683,060“Direct interpolation forup-sampling in extended spatial scalability”(发明人Shijun Sun)的优先权;本申请还要求2005年6月1日提交的美国临时专利申请No.60/686,676“Deblocking Filter Method with Reduced Complexity forSpatial Scalable Video Coding”(发明人Shijun Sun)的优先权。

技术领域

本发明实施例包括具有画面级调整的扩展空间可缩放性的方法和系统。本发明的一些实施例包括对画面层预测中使用的运动矢量进行缩放和调整的方法和系统。

背景技术

合并在此以作参考的H.264/MPEG-4 AVC[ITU-T VCEG和ISO/IEC MPEG的联合视频组,“Advanced Video Coding(AVC)-4thEdition,”ITU-T Rec.H.264 and ISO/IEC 14496-10(MPEG4-Part 10),2005年1月]是视频编解码规范,该规范使用宏块预测,然后进行残差编码,以减小视频序列中的时间和空间冗余,提高压缩效率。空间可缩放性是指如下功能:在任何所支持的空间分辨率上维持速率-失真性能的同时,可以去除比特流的一部分。单层H.264/MPEG-4 AVC不支持空间可缩放性。H.264/MPEG-4 AVC的可缩放视频编码(SVC)扩展支持空间可缩放性。

合并在此以作参考的H.264/MPEG-4 AVC的SVC扩展[WorkingDocument 1.0(WD-1.0)(MPEG Doc.N6901)for the Joint ScalableVideo Model(JSVM)]是分层视频编解码,其中通过层间预测机制来利用空间层之间的冗余。H.264/MPEG-4 AVC的SVC扩展的设计中包括三种层间预测技术:层间运动预测、层间残差预测和层间帧内纹理预测。

基于块的运动补偿视频编码用于许多视频压缩标准中,例如H.261、H.263、H264、MPEG-1、MPEG-2和MPEG-4。有损压缩过程会在解码图像中产生视觉伪像,这里称作图像伪像。分块伪像沿着图像中的块边界出现,是由变换系数的粗量化引起的。

图像滤波技术可以用于减少重建图像中的伪像。重建图像是在逆变换和解码之后生成的图像。这些技术中的主要规则是:在平滑图像的其他部分时,应该保留图像边缘。要基于图像边缘周围的具体像素或像素集的特性,谨慎选择低通滤波器。

对延伸过图像块边界的非相关图像像素进行特定滤波,以减少分块伪像。但是,该滤波可能将模糊伪像引入图像中。如果在相邻块之间存在很少或没有分块伪像,则低通滤波器向图像中不必要地结合了模糊伪像,同时浪费处理资源。

过去,SVC仅针对二进(dyadic)空间可缩放性。二进空间可缩放性是指如下配置:两个连续空间层之间的图像大小之比是2的幂。已提出了新的工具,用于管理如下配置:两个连续空间层之间的画面大小之比不是2的幂,以及高级画面可以包含相应的低级画面中不存在的区域,这称作具有剪切窗的非二进缩放。

所有层间预测方法均包括画面上采样。画面上采样是从低分辨率图像产生高分辨率图像的过程。一些画面上采样过程包括采样插值。SVC设计中使用的传统上采样过程是基于H.264中针对帧间预测而规定的四分之一亮度采样插值过程的。当应用于空间可缩放编码时,传统方法具有如下两个缺点:插值分辨率仅限于四分之一采样,因此不支持非二进缩放;以及需要半采样插值以得到四分之一采样位置,这使该方法的计算非常烦琐。需要一种克服以上限制的画面上采样过程。

发明内容

本发明的实施例包括用于图像编码和解码的方法和系统。本发明的一些实施例包括基于另一画面层来预测空间可缩放画面层的方法和系统。一些实施例包括对画面运动矢量进行调整和缩放以得到剪切窗尺寸和运动的方法和系统。

参考如下结合附图的本发明的详细描述,本发明的前述和其他目的、特征和优点更易理解。

附图说明

图1是示出了本发明一些实施例中基本空间层与增强空间层之间的几何关系的图;

图2是示出了本发明一些实施例的上采样的基本层画面与增强层画面之间的几何关系的图;

图3是示出了4×4块的像素的图;

图4是示出了8×8块内的4×4块的图;

图5是示出了预测宏块的8×8块的图。

具体实施方式

参考附图,将得到对本发明实施例的最佳理解,附图中,类似部分由类似数字指示。以上列出的附图结合作为本详细说明的一部分。

可以理解,这里在图中大体说明和示出的本发明组件可以按照多种不同配置来设置和设计。因此,以下对本发明方法和系统实施例的更加详细的描述并非要限制本发明的范围,而仅仅代表本发明的优选实施例。

本发明实施例的元件可以采用硬件、固件和/或软件来具体实现。虽然这里公开的范例实施例可能只描述了其中一种形式,但是可以理解,本领域技术人员可以在本发明范围内以这些形式中的任意形式来实现这些元件。

本发明的一些实施例涉及H.264/AVC的可缩放视频编码扩展。一些实施例涉及用于处理空间可缩放视频编码的画面上采样问题的滤波。更具体地,本发明的一些实施例提供了一种针对H.264/MPEG-4AVC的可缩放视频编码扩展而设计的上采样过程,尤其是针对JVT(MPEG和VCEG的联合视频组)在2005年4月采纳的扩展空间可缩放(ESS)视频编码特征。

当前,合并在此以作参考的JSVM WD-1.0[MPEG Doc.N6901]仅针对二进空间可缩放性,即,两个连续空间层的画面宽度和高度(依据像素数目)之间的比率等于2的配置。显然,这限制了更加一般的应用,例如针对广播的SD到HD可缩放性。

提出了一种工具[MPEG Doc.m11669],将其合并在此以作参考,该工具提供了扩展空间可缩放性,即,管理如下配置:两个连续空间层的画面宽度和高度之间的比率不必等于2的幂,以及高级画面可以包含相应的低级画面中不存在的区域(典型的是在图像边界周围)。该提议[MPEG Doc.m11669]将WD-1.0[MPEG Doc.N6901]的层间预测扩展到高层和低层画面尺寸之比不是2的幂的更一般情况。

本发明实施例提供了将扩展空间可缩放性(即,具有剪切窗的非二进缩放)应用于画面级的方法,这将更好地适应更一般应用的需要。为了支持空间可缩放性的画面级调整,本发明实施例提供了对迄今所提出的层间预测方法的进一步改进。此外,这些实施例中也处理了在前提议中未处理的多种问题。

对于本说明和权利要求,术语“画面”可以包括像素阵列、数字图像、数字图像的子划分区(subdivision)、数字图像的数据信道或图像数据的其他表示。

图1示出了对应于图像画面的两个画面。

本发明实施例涉及两个或更多连续空间层,即,低层(称作基本层(base layer))253和高层(称作增强层)251。这些层可以通过如下几何关系相联系(图1所示)。增强层画面的宽度250和高度252可以分别定义为wenh和henh。同样,基本层画面的尺寸可以定义为wbase254和hbase 256。基本层253可以是增强层画面251中尺寸为wextract 258和hextract 260并位于增强层画面坐标系统中的坐标262(xorig,yorig)处的子区域的子采样264版本。参数(xorig,yorig,wextract,hextract,wbase,hbase)定义高层画面251与低层画面253之间的几何关系。

本发明实施例处理的问题是对知道已解码基本层的增强层的宏块的编码/解码。增强层的宏块可以没有(增强层画面的边界上的)基本层相应块,或者可以具有一个到多个基本层相应宏块,如图2所示。由此,必需不同于WD-1.0[MPEG Doc.N6901]中的层间预测管理。图2示出了上采样基本层画面272与增强层画面270之间的宏块交叠,在上采样基本层画面272中,宏块边界由虚线274标示,在增强层画面270中,宏块边界由实线276标示。

已提出了对于[MPEG Doc.m11669],将wextract和hextract限定为16的倍数。该限定制约了画面级调整。而本发明实施例将wextract和hextract限定为2的倍数。本发明实施例可以进一步要求xorig和yorig为2的倍数,以避免对色度上/下采样中的可能相移进行调整时的复杂过程。色度-相移问题在过去是尚未处理的。

图1所示的尺寸和其他参数可以由如下符号或变量名表示:

-scaled_base_left_offset=xorig

-scaled_base_top_offset=yorig

-scaled_base_right_offset=wenh-xorig-wextract

-scaled_base_bottom_offset=henh-yorig-hextract

-scaled_base_width=wextract

-scaled_base_height=hextract

层间运动预测

给定的高层宏块可以使用“BASE_LAYER_MODE”或“QPEL_REFINEMENT_MODE”,来利用使用了已缩放基本层运动数据的层间预测。如WD-1.0[MPEG Doc.N6901]中一样,这些宏块模式指示了包括宏块划分(partitioning)的运动/预测信息是直接从基本层中导出的。可以通过继承来自基本层的运动数据,构建预测宏块MB_pred。当使用“BASE_LAYER_MODE”时,宏块划分、参考索引和运动矢量是预测宏块MB_pred的。“QPEL_REFINEMENT_MODE”类似,但是具有四分之一采样运动矢量细化。

已提出了按照如下四个步骤来导出MB_pred:

-对于MB_pred的每个4×4块,继承来自基本层运动数据的运动数据,

-选择对MB_pred的每个8×8块的划分,

-为MB_pred选择模式,以及

-对运动矢量进行缩放。

但是,本发明实施例提供了对多个公式的修改,以支持画面级调整。

4×4块继承

图3示出了具有四个角部281、282、283和284的4×4块b280。该过程包括分别检查块的四个角部281、282、283和284。假设(x,y)是角部像素c在高层坐标系中的位置,(xbase,ybase)是基本层坐标系中的相应位置,则如下定义:

xbase=[(x-xorig)·wbase+wextract/2]/wextractybase=[(y-yorig)·hbase+hextract/2]/hextract---(1)

像素(x,y)的协同定位宏块是包含像素(xbase,ybase)的基本层宏块。同样,像素(x,y)的协同定位的8×8块是包含像素(xbase,ybase)的基本层8×8块,像素(x,y)的协同定位的4×4块是包含像素(xbase,ybase)的基本层4×4块。

针对b的运动数据继承过程描述如下:

-对于每个角部c,将每个列表listx(listx=list0或list1)的参考索引r(c,listx)和运动矢量mv(c,listx)设定为协同定位的基本层4×4块的那些;

-对于每个角部,如果协同定位宏块不存在或处于帧内模式,则将b设定作为帧内块;

-否则,对于每个列表listx,

如果角部都不使用该列表,则不将该列表的参考索引和运动矢量设定为b,

否则

针对b而设定的参考索引rb(listx)是4个角部的现有参考索引的最小值:

rb(listx)=minc(r(c,listx))---(2)

针对b而设定的运动矢量mvb(listx)是具有参考参考索引rb(listx)的4个角部的现有运动矢量的均值。

8×8划分选择

一旦设定了每个4×4块运动数据,则必需合并过程,以确定其所属的8×8块的实际划分,并避免被禁止的配置。下面,如图4中所指示的一样,对8×8块的4×4块进行标识。

对于每个8×8块B,可以应用如下过程:

-如果已将4个4×4块归类为帧内块,则将B视为帧内块。

-否则,实现B划分选择:

应用如下用于向每个4×4块分配相同参考索引的过程:

对于每个列表listx

如果4×4块都不使用该列表,则不将该列表的参考索引和运动矢量设定为B。

否则

将针对B的参考索引rB(listx)计算为4个4×4块的现有参考索引的最小值:

rB(listx)=minb(rb(listx))---(3)

计算具有相同参考索引rB(listx)的4×4块的均值运动矢量mvmean(listx);

强制如下定义的4×4块采用rB(listx)和mvmean(listx)作为参考索引和运动矢量:(1)归类为帧内块,或者(2)未使用该列表,或者(3)具有与rB(listx)不同的参考索引rb(listx)。

然后实现针对B的划分模式的选择。如果两个4×4块的运动矢量等同,则这两个块视为等同的。合并过程应用如下:

如果b1等于b2,并且b3等于b4,则

如果b1等于b3,则选择BLK_8 x 8

否则选择BLK_8 x 4

否则,如果b1等于b3,并且b2等于b4,则选择BLK_4 x 8否则选择BLK_4 x 4

预测宏块模式选择

在一些实施例中,可以实现确定MB_pred模式的过程。以下,如图5中所指示的一样,对宏块300的8×8块301-304进行标识。

在如下情况下,将两个8×8块视为等同的:

-这两个8×8块之一或两个均归类为帧内块;或者

-两个块的划分模式是BLK_8 x 8,并且每个8×8块的list0和list1的参考索引和运动矢量如果存在,则是等同的。

使用如下过程进行模式选择:

-如果所有8×8块均归类为帧内块,则将MB_pred归类为INTRA宏块

-否则,MB_pred是INTER宏块。其模式选择实现如下:

将归类为帧内的8×8宏块强制到BLK_8×8划分。如下计算它们的参考索引和运动矢量。假设BINTRA是这样的8×8块。

对于每个列表listx

如果8×8块都不使用该列表,则不将该列表的参考索引和运动矢量分配给BINTRA

否则,应用如下步骤:

将参考索引rmin(listx)计算为8×8块的现有参考索引的最小值:

rmin(listx)=minB(rB(listx))---(4)

计算具有相同参考索引rmin(listx)的4×4块的均值运动矢量mvmean(listx);

将rmin(listx)分配给BINTRA,并强制BINTRA的每个4×4块采用rmin(listx)和mvmean(listx)作为参考索引和运动矢量。

然后实现针对B的划分模式的选择。如果两个8×8块的划分模式是BLK_8 x 8,并且每个8×8块的list0和list1的参考索引和运动矢量在存在时是等同的,则这两个块视为等同的。合并过程应用如下:

如果B1等于B2,并且B3等于B4,则

如果B1等于B3,则选择MODE_16 x 16

否则选择MODE_16 x 8

否则,如果B1等于B3,并且B2等于B4,则选择MODE_8 x 16否则选择MODE_8 x 8

运动矢量缩放

可以向如上导出的预测宏块MB_pred的每个现有运动矢量应用运动矢量再缩放。可以使用如下公式,将矢量mv=(dx,dy)缩放为矢量mvs=(dsx,dsy):

dsx=(dx·wextract+sign[dx]·wbase/2)/wbase+4·(xorig,r-xorig)dsy=(dy·hextract+sign[dy]·hbase/2)/hbase+4·(yorig,r-yorig)---(5)

其中sign[x]在x为正时等于1,在x为负时等于(-1),在x等于0时等于0。具有下标“r”的符号表示相应参考画面的几何参数。

层间纹理预测

纹理上采样

在本发明的一些实施例中,层间纹理预测可以基于与层间运动预测的原理相同的原理。可以通过应用加有双波瓣或三波瓣Lanczos窗的正弦函数来实现基本层纹理上采样。考虑到这些滤波器,以在减少混叠、锐度和最小振铃方面提供最佳折衷。加有双波瓣Lanczos窗的正弦函数可以定义如下:

Lanczos2(x)=sin(πx)πxsin(πx2)πx2,|x|<20,|x|2---(6)

可以对整个帧或逐块地执行该上采样步骤。对于层内纹理预测,在帧边界处使用重复填充(repetitive padding)。对于残差预测,在块边界处使用重复填充(4×4或8×8,这依据变换)。

在范例实施例中,根据Lanczos2函数,相对于基本层画面中相应分量的采样网格,以1/16采样间隔为单位,在下表1中针对16个不同的插值相位而定义16个4抽头的上采样滤波器。

对于当前层中位置(x,y)处的亮度采样,相对于基本层画面中相应采样的相移应该如下导出:

px,L=[(x-xorig)·wbase·16]/wextract-16·[(x-xorig)·wbase/wextract]py,L=[(y-yorig)·hbase·16]/hextract-16·[(y-yorig)·hbase/hextract]---(7)

表1:针对上采样的4抽头插值滤波器

对于当前层中色度采样坐标系的位置(xc,yc)处的色度采样,相对于基本层画面中相应采样的相移可以如下导出:

px,c=[(xc-xorig,c)·wbase,c·16]/wextract,c-16·[(xc-xorig,c)·wbase,c/wextract,c]py,c=[(yc-yorig,c)·hbase,c·16]/hextract,c-16·[(yc-yorig,c)·hbase,c/hextract,c]---(8)

其中

wbase,c=wbase·BasePicMbWidthC/16     (9)

wextract,c=wextract·MbWidthC/16       (10)

hbase,c=hbase·BasePicMbHeightC/16    (11)

hextract,c=hextract·MbHeightC/16      (12)

xorig,c=xorig·MbWidthC/16            (13)

yorig,c=yorig·MbHeightC/16           (14)

根据导出的每个相移,可以从表1中选择4抽头滤波器以用于插值。

层间帧内纹理预测

在WD-1.0[MPEG Doc.N6901]中,I_BL模式要求所有相应的基本层宏块均是帧内编码的。在本发明实施例中,该要求可以降低为允许相应基本层宏块是帧间编码或者根本不存在。

为了生成用于以I_BL模式编码的宏块的帧内预测信号,对基本层信号的协同定位块(如果存在)直接进行解块操作或插值操作。采用4个输入采样(X[n-1],X[n],X[n+1],X[n+2]),4抽头插值滤波器的输出值Y应该如下导出:

对于亮度采样,

Y=Clip1Y((e[-1]X[n-1]+e[0]X[n]+e[1]X[n+1]+e[2]X[n+2]+64)/128)                                           (15)

其中Clip1Y(x)=min(max(0,x),(1<<BitDepthY)-1)

BitDepthY表示亮度通道数据的比特深度,

或者是,对于色度采样,

Y=Clip1C((e[-1]X[n-1]+e[0]X[n]+e[1]X[n+1]+e[2]X[n+2]+64)/128)                                           (16)

其中Clip1C(x)=min(max(0,x),(1<<BitDepthC)-1)

BitDepthC表示色度通道数据的比特深度。

因为在公式15和16中应用了取整运算,所以滤波顺序可以指定为首先是水平方向或者首先是垂直方向。推荐首先在水平方向上执行滤波操作,然后在垂直方向上进行滤波操作。仅在如下定义的extended_spatial_scalability有效时,才调用该上采样过程。

在上采样滤波操作之后,应该用常数值填充剪切窗外部得到图像区域。对于亮度,该常数应该是(1<<(BitDepthY-1)),或者对于色度,该常数应该是(1<<(BitDepthC-1))。

层间残差预测

类似于层间帧内纹理预测,在对基本层残差进行上采样时可以使用相同的4抽头滤波器或其他滤波器,但是要使用不同于公式15和16中的取整和剪切函数。

对于4个输入残差采样(X[n-1],X[n],X[n+1],X[n+2]),滤波器的输出值Y应该如下导出:

对于亮度残差采样,

Y=Clip1Y,r((e[-1]X[n-1]+e[0]X[n]+e[1]X[n+1]+e[2]X[n+2])/128)                                                (17)

或者,对于色度残差采样,

Y=Clip1C,r((e[-1]X[n-1]+e[0]X[n]+e[1]X[n+1]+e[2]X[n+2])/128)                                                          (18)

用于残差上采样的剪切函数定义如下:

Clip1Y,r(x)=Clip3(1-(1<<BitDepthY),(1<<BitDepthY)-1,x)    (19)

Clip1C,r(x)=Clip3(1-(1<<BitDepthC),(1<<BitDepthC)-1,x)    (20)

其中Clip3(a,b,x)=min(max(a,x),b)

类似地,在上采样滤波操作之后,应该用常数值填充无法应用残差预测的像素位置,这些位置包括剪切窗外部的图像区域。对于所有颜色分量,该常数应该为0。

语法和语义的改变

表格形式的语法

本发明实施例可以利用如下以粗体文本指示的改变。主要改变是符号extended_spatial_scalability的序列参数集中的增加,相应的是与要在基本层上采样过程中应用的几何变换相关的序列参数集中的如下四个参数和slice_data_in_scalable_extension():

scaled_base_left_offset_divided_by_two,

scaled_base_top_offset_divided_by_two,

scaled_base_right_offset_divided_by_two,

scaled_base_bottom_offset_divided_by_two

可缩放扩展中的序列参数集语法

 

seq_parameter_set_rbsp(){C描述符  ……  extended_spatial_scalability0u(2)  if(extended_spatial_scalability==1){    scaled_base_left_offset_divided_by_two0ue(v)    scaled_base_top_offset_divided_by_two0ue(v)    scaled_base_right_offset_divided_by_two0ue(v)    scaled_base_bottom_offset_divided_by_two0ue(v)  }  ……  rbsp_trailing_bits()0}

可缩放扩展中的片数据语法

 

slice_data_in_scalable_extension(){C描述符  if(extended_spatial_scalability==2){    scaled_base_left_offset_divided_by_two2ue(v)    scaled_base_top_offset_divided_by_two2ue(v)    scaled_base_right_offset_divided_by_two2ue(v)    scaled_base_bottom_offset_divided_by_two2ue(v)  }  if(extended_spatial_scalability)    HalfSpatResBaseFlag=0  else    HalfSpatResBaseFlag=half_spat_res_base_pic()  ……}

可缩放扩展中的宏块层语法

 

macroblock_layer_in_scalable_extension(){C描述符  if(base_id_plus1  !=0 &&adaptive_prediction_flag){    base_mode_flag2ae(v)  if(!base_mode_flag &&    (HalfSpatResBaseFlag ‖extended_spatial_scalability)&&    !intra_base_mb(CurrMbAddr))    base_mode_refinement_flag2ae(v)  }  ……}

语义

可缩放扩展中的序列参数集语法

extended_spatial_scalability规定与基本层上采样的几何参数相关的语法元素。当extended_spatial_scalability等于0时,比特流中没有几何参数。当extended_spatial_scalability等于1时,序列参数集中有几何参数。当extended_spatial_scalability等于2时,slice_data_in_scalable_extension中有几何参数。对于extended_spatial_scalability,值3为保留值。当extended_spatial_scalability不存在时,应该推断其等于0。

scaled_base_left_offset_divided_by_two规定上采样基本层画面的左上像素与当前画面的左上像素之间的水平偏移的一半。当scaled_base_left_offset_divided_by_two不存在时,应该推断其等于0。

scaled_base_top_offset_divided_by_two规定上采样基本层画面的左上像素与当前画面的左上像素之间的垂直偏移的一半。当scaled_base_top_offset_divided_by_two不存在时,应该推断其等于0。

scaled_base_right_offset_divided_by_two规定上采样基本层画面的右下像素与当前画面的右下像素之间的水平偏移的一半。当scaled_base_right_offset_divided_by_two不存在时,应该推断其等于0。

scaled_base_bottom_offset_divided_by_two规定上采样基本层画面的右下像素与当前画面的右下像素之间的垂直偏移的一半。当scaled_base_bottom_offset_divided_by_two不存在时,应该推断其等于0。

所有几何参数规定为无符号整数,以相对于当前层中的亮度采样网格的一个采样间隔为单位。则基于这些几何参数定义多个附加符号(scaled_base_left_offset,scaled_base_top_offset,scaled_base_right_offset,scaled_base_bottom_offset,scaled_base_width,scaled_base_height):

scaled_base_left_offset=2·scaled_base_left_offset_divided_by_two

scaled_base_top_offset=2·scaled_base_top_offset_divided_by_two

scaled_base_right_offset=2·scaled_base_right_offset_divided_by_two

scaled_base_bottom_offset=2·scaled_base_bottom_offset_divided_by_two

scaled_base_width=PicWidthInMbs·16-scaled_base_left_offset-

                   scaled_base_right_offset

scaled_base_height=PicHeightInMapUnits·16-scaled_base_top_offset-

                    scaled_base_bottom_offset

可缩放扩展中的片数据语法

片数据中的语法元素的语义与序列参数集中相同的语法元素的语义等同。

解码过程

针对预测数据的解码过程

相比于WD-1.0[MPEG Doc.N6901],必须添加如下过程,对于每个宏块,进行如下应用:

-如果extended_spatial_scalability等于1或2,并且base_layer_mode_flag等于1,则使用第三部分所述的过程来导出包括宏块划分的运动矢量场。与WD-1.0[MPEG Doc.N6901]一样,如果所有的相应基本层宏块均是帧内表面的,则将当前宏块模式设定为I_BL。

-否则,如果extended_spatial_scalability等于1或2,并且base_layer_mode_flag等于0,但是base_layer_refinement等于1,则发信号通知基本层细化模式。基本层细化模式类似于基本层预测模式。按照第三部分导出宏块划分以及参考索引和运动矢量。但是,对于每个运动矢量,附加地传输四分之一采样运动矢量细化mvd_ref_lX(对于每个运动矢量分量,等于-1,0,或+1)并将其添加到导出的运动矢量。

剩余的过程与WD-1.0[MPEG Doc.N6901]中的相同。

针对子带画面的解码过程

相比于WD-1.0[MPEG Doc.N6901],必须添加如下过程:

如果extended_spatial_scalability等于1或2,则通过如下过程生成针对I_BL模式的MB的帧内预测信号。

-对协同定位的基本层块/宏块进行滤波。

-通过对解块的块进行插值,生成帧内预测信号。使用第四部分中所述的过程来执行该插值。剩余的过程与WD-1.0[MPEGDoc.N6901]中的相同。

否则,如果extended_spatial_scalability等于1或2,并且residual_prediction_flag等于1,则应用如下过程

-对基本层块的残差信号进行上采样,并将其添加到当前宏块的残差信号。使用第四部分中所述的过程来执行该插值。

对环形滤波器的改变

当extended_spatial_scalability等于1或2时,在针对I_BL模式的块的滤波强度判定期间,应该对环形滤波器进行微小改变。

-如果相邻块是帧内编码但不是I_BL模式的,则Bs是4(第一部分与WD-1.0[MPEG Doc.N6901]中的相同)。

-否则,如果相邻块中的任意块具有系数,则Bs是2。

-否则,如果上述相邻块不是I_BL模式的,则Bs是1。

-否则,Bs是0。

6抽头滤波器实施例

本发明的一些实施例设计用于H.264/MPEG-4AVC的可缩放视频编码扩展,尤其针对JVT(MPEG和VCEG的联合视频组)在2005年4月采纳的扩展空间可缩放(ESS)视频编码特征。

在当前SVC设计中,上采样过程基于H.264中针对帧间预测而规定的四分之一亮度采样插值过程。当应用于空间可缩放编码时,该方法继承了如下两个缺点:(1)插值分辨率仅限于四分之一采样;以及(2)必须执行半采样插值以得到四分之一采样位置。

本发明的一些实施例通过(1)更加细化的插值分辨率和(2)直接插值来克服上述缺点。由此,这些实施例降低了计算复杂度,同时提高了上采样图像的质量。

本发明范例实施例的上采样技术基于利用了16个6抽头滤波器的直接插值。滤波器选择是根据插值位置或相位,范围是从0到15,以1/16画面采样为单位。滤波器组设计为与SVC的半采样插值过程和H.264的半采样亮度帧间预测后向兼容。因此,从硬件/软件实现角度来看,这些实施例的技术可以是H.264的自然扩展。

传统空间可缩放视频编码系统典型地处理空间或分辨率缩放因子为2或2的幂的情况。在2005年4月,将扩展空间可缩放性采纳到SVC联合可缩放视频模型(JSVM)中,以处理空间缩放因子不限于2的幂的更一般的应用。但是,层间纹理预测的上采样过程仍然是正被开发的主题。在2005年4月的JVT会议期间,决定了对纹理上采样暂时应用H.264中规定的四分之一亮度采样插值过程。

在本发明的这些实施例中,也适用在结合图1的上述实施例描述中的相同几何关系。

在上述实施例中,相对于基本层画面中相应分量的整数采样网格,以1/16采样间隔为单位,针对16个不同的插值相位而定义了16个4抽头的上采样滤波器。但是,这些4抽头滤波器不是与先前H.264设计后向兼容的。因此,这些实施例可以包括一组新的16个6抽头滤波器以及相应滤波过程。在范例实施例中,可以使用表2所述的6抽头滤波器。在另一范例实施例中,可以使用表3所述的6抽头滤波器。

表2 第一范例16相位插值滤波器

表3 第二范例16相位插值滤波器

给定增强画面中以整数亮度采样为单位的亮度采样位置(x,y),则基本层画面(px,L,py,L)中以基本层画面的1/16亮度采样为单位的相应位置可以如下导出:

px,L(x)=[(x-xorig)·wbase·RL+RL2(wbase-wextract)]//wextractpy,L(y)=[(y-yorig)·hbase·RL+RL2(hbase-hextract)]//hextract---(21)

其中RL=16(对于1/16采样分辨率插值),如图23所示,(xorig,yorig)表示当前画面中以当前画面的单个亮度采样为单位的、剪切窗左上角的位置,(wbase,hbase)是以基本层画面的单个亮度采样为单位的基本层画面分辨率,(wextract,hextract)是以当前层画面的单个亮度采样为单位的剪切窗分辨率,“//”表示简化的除法运算符。

类似地,给定增强画面中以单个色度采样为单位的色度采样位置(xc,yc),则基本层画面(px,c,py,c)中以基本层画面的1/16色度采样为单位的相应位置可以如下导出:

px,c(xc)=[(xc-xorig,c)·wbase,c·RC+RC4(2+penh,x)wbase,c-RC4(2+pbase,x)wextract,c]//wextract,cpy,c(yc)=[(yc-yorig,c)·hbase,c·RC+RC4(2+penh,y)hbase,c-RC4(2+pbase,y)hextract,c]//hextract,c---(22)

其中RC=16,(xorig,c,yorig,c)表示当前画面中以当前画面的单个色度采样为单位的、剪切窗左上角的位置,(wbase,c,hbase,c)是以基本层画面的单个色度采样为单位的基本层画面分辨率,(wextract,c,hextract,c)是以当前层画面的单个色度采样为单位的剪切窗分辨率,(pbase,x,pbase,y)表示以基本层画面的四分之一色度采样为单位的基本层画面的相对色度相移,(penh,x,penh,y)表示以当前层画面的四分之一色度采样为单位的当前层画面的相对色度相移。

可以基于通过公式21和22导出的插值位置,从表2或表3中选择6抽头滤波器。在一些实施例中,当插值位置是半个采样位置时,滤波器与H.264中针对半亮度采样插值定义的滤波器相同。因此,可以将类似的硬件/软件模块应用于本发明这些实施例的技术。

对于层间残差上采样,可以使用类似的之间插值方法。在一些实施例中,可以使用双线性插值滤波器来取代用于纹理上采样的6抽头滤波器或上述4抽头滤波器。

在一些范例实施例中,插值过程如下:

1.定义增强画面中宏块的左上亮度采样的位置(xP,yP)。当chroma_format_idc不等于0时,即色度通道存在时,定义相同宏块的左上色度采样的位置(xC,yC)。

2.导出基本层画面中宏块的相对定位,

xB=px,L(xP)>>4yB=py,L(yP)>>4---(23)

xB1=(px,L(xP+15)+15)>>4yB1=(py,L(yP+15)+15)>>4---(24)

并且在chroma_format_idc不等于0时,

xCB=px,C(xC)>>4yCB=py,C(yC)>>4---(25)

xCB1=(px,C(xC+MbWidthC-1)+15)>>4yCB1=(py,C(yC+MbHeightC-1)+15)>>4---(26)

其中MbWidthC和MbHeightC分别表示沿水平和垂直方向针对每个MB的色度采样数目。

3.纹理插值过程

该过程的输入包括:

●基本层画面中的整数亮度采样位置(xB,yB)和(xB1,yB1),

●基本层画面的亮度采样数组baseL[x,y],其中

x=-2+xB...(xB1+2),y=-2+yB...(yB1+2);

●当chroma_format_idc不等于0时,

基本层画面中的整数色度采样位置(xCB,yCB)和(xCB1,yCB1),

基本层画面的两个色度采样数组baseCb[x,y]和baseCr[x,y],其中x=-2+xCB...(xCB1+2)and y=-2+yCB...(yCB1+2)。

该过程的输出包括:

●亮度采样宏块数组predL[x,y],其中x=0...15,y=0...15;

●当chroma_format_idc不等于0时,两个色度采样宏块数组predCb[x,y]和predCr[x,y],其中x=0...MbWidthC-1,y=0...MbHeightC-1。

亮度采样predL[x,y],x=0...15,y=0...15如下导出:

●设tempL[x,y],x=-2+xB...(xB1+2),y=0...15为临时亮度采样数组。

●如下导出每个tempL[x,y],x=-2+xB...(xB1+2),y=0...15:基本层中的相应分数采样(fractional-sample)位置yf如下导出:

yf=py,L(y+yP)

设yInt和yFrac定义如下:

    yInt=(yf>>4)

   yFrac=yf%16

使用yFrac作为相位,从表2中选择6抽头滤波器e[j],

j=-2...3,并如下导出tempL[x,y]:

tempL[x,y]=baseL[x,yInt-2]*e[-2]+baseL[x,yInt-1]*e[-1]+baseL[x,yInt]*e[0]+baseL[x,yInt+1]*e[1]+baseL[x,yInt+2]*e[2]+baseL[x,yInt+3]*e[3]

●每个采样predL[x,y],x=0...15,y=0...15如下导出:

基本层中的相应分数采样位置xf如下导出:

     xf=px,L(x+xP)

设xInt和xFrac定义如下:

     xInt=(xf>>4)

    xFrac=xf%16

使用xFrac作为相位,从表2中选择6抽头滤波器e[j],j=-2...3,并如下导出predL[x,y]:

predL[x,y]=Clip1Y((tempL[xInt-2,y]*e[-2]+tempL[xInt-1,y]*e[1]+tempL[xInt,y]*e[0]+tempL[xInt+1,y]*e[1]+tempL[xInt+2,y]*e[2]+tempL[xInt+3,y]*e[3]+512)/1024)

当chroma_format_idc不等于0时,色度采样predC[x,y](C为Cb或Cr),x=0...MbWidthC-1,y=0...MbHeightC-1如下导出:

●设tmp1Cb[x,y]和tmp1Cr[x,y],x=-2+xCB......(xCB1+2),y=0..MbHeightC-1为临时色度采样数组,

●每个tmp1C[x,y](C为Cb或Cr),x=-2+xCB......(xCB1+2),y=0...MbHeightC-1如下导出:

基本层中的相应分数采样位置yfC如下导出:

yfC=py,C(y+yC)

设yIntC和yFracC定义如下:

    yIntC=(yfC>>4)

     yFracC=yfC% 16

使用yFracC作为相位,从表2中选择6抽头滤波器e[j],j=-2...3,并如下导出tempC[x,y]:

tempC[x,y]=baseC[x,yIntC-2]*e[-2]+baseC[x,yIntC-1]*e[-1]+

      baseC[x,yIntC]*e[0]+baseC[x,yIntC+1]*e[1]+baseC[x,yIntC+2]*e[2]+baseC[x,yIntC+3]*e[3]

●每个采样predC[x,y](C为Cb或Cr),x=0...MbWidthC-1,y=0...MbHeightC-1如下导出:

基本层中的相应分数采样位置xfC如下导出:

     xfC=px,C(x+xC)

设xIntC和xFracC定义如下:

     xInt C=(xfC>>4)

    xFracC=xfC% 16

使用xFracC作为相位,从表2中选择6抽头滤波器e[j],j=-2...3,并如下导出predC[x,y]:

predC[x,y]=Clip1C((tempC[xIntC-2,y]*e[-2]+tempC[xIntC-1,y]*e[-1]+tempC[xIntC,y]*e[0]+tempC[xIntC+1,y]*e[1]+tempC[xIntC+2,y]*e[2]+tempC[xIntC+3,y]*e[3]+512)/1024)

4.纹理插值过程

该过程的输入包括:

●基本层画面中的整数亮度采样位置(xB,yB)和(xB1,yB1),

●亮度残差采样数组resBaseL[x,y],其中x=-xB...xB1,y=yB...yB1;

●当chroma_format_idc不等于0时,

基本层画面中的整数色度采样位置(xCB,yCB)和(xCB1,yCB1),

两个色度残差采样数组resBaseCb[x,y]和resBaseCr[x,y],其中x=xCB...xCB1,y=yCB...yCB1。

该过程的输出包括:

●亮度采样宏块数组resPredL[x,y],其中x=0...15,y=0...15;

●当chroma_format_idc不等于0时,两个色度采样宏块数组resPredCb[x,y]和resPredCr[x,y],其中x=0...MbWidthC-1,y=0...MbHeightC-1。

亮度残差宏块resPredL[x,y],x=0...15,y=0...15如下导出:

●设tempL[x,y],x=xB...xB1,y=0...15为临时亮度采样数组;

●每个tempL[x,y],x=xB...xB1,y=0...15如下导出:

基本层中的相应分数采样位置yf如下导出:

yf=py,L(y+yP)

设yInt和yFrac定义如下:

     yInt=(yf>>4)

    yFrac=yf% 16

如下导出tempL[x,y]:

tempL[x,y]=resBaseL[x,yInt]*(16-yFrac)+resBaseL[x,yInt+1]*yFrac

●每个残差采样resPredL[x,y],x=0...15,y=0...15导出如下:

xf=px,L(x+xP)

设xInt和xFrac定义如下:

     xInt=(xf>>4)

    xFrac=xf% 16

如下导出resPredL[x,y]:

resPredL[x,y]=Clip1Y,r((tempL[xInt,y]*(16-xFrac)+tempL[xInt+1,y]*xFrac)/256)

其中

Clip1Y,r(x)=Clip3(1-(1<<BitDepthY),(1<<BitDepthY)-1,x)

BitDepthY表示亮度通道数据的比特深度。

当chroma_format_idc不等于0时,色度残差采样resPredC[x,y](C为Cb或Cr),x=0...MbWidthC-1,y=0...MbHeightC-1如下导出:

●设tmp1Cb[x,y]和tmp1Cr[x,y],x=xCB...xCB1,y=0...MbHeightC-1为临时色度采样数组,

●每个tempC[x,y](C为Cb或Cr),x=-xCB...xCB1,y=0...MbHeightC-1如下导出:

基本层中的相应分数采样位置yfC如下导出:

yfC=py,C(y+yC)

设yIntC和yFracC定义如下:

     yIntC=(yfC>>4)

    yFracC=yfC% 16

如下导出tempC[x,y]:

tempC[x,y]=resBaseC[x,yIntC]*(16-yFracC)+resBaseC[x,yIntC+1]*yFracC

●每个采样resPredC[x,y](C为Cb或Cr),x=0...MbWidthC-1,y=0...MbHeightC-1如下导出:

基本层中的相应分数采样位置xfC如下导出:

xfC=px,C(x+xC)

设xIntC和xFracC定义如下:

     xInt C=(xfC>>4)

    xFracC=xfC% 16

如下导出resPredC[x,y]:

resPredC[x,y]=Clip1C,r(tempC[xIntC,y]*(16-xFracC)+tempC[xIntC+1,y]*xFracC)/256)

其中

Clip1C,r(x)=Clip3(1-(1<<BitDepthC),(1<<BitDepthC)-1,x)

BitDepthC表示色度通道数据的比特深度。

为了方便起见,将操作描述为多种互连的功能块或不同的软件模块。然而,这并非必要的,可以有如下情况:将这些功能块或模块等效地集合成无明显分界的单个逻辑器件、程序或操作。在任何情况下,功能块和软件模块或上述特征均可以独立地实现或与硬件或软件形式的其他操作相组合而实现。

上述说明中采用的术语和表达方式在此用作描述性术语,而不是限制性的,使用这些术语和表达方式并不意欲排除所示和所述特征及其部分的等同物,要理解,本发明范围仅由所附权利要求限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号