虚拟边缘的环内滤波的方法和设备
文献发布时间:2023-06-19 11:55:48
交叉引用
本发明要求2019年1月14日提交的美国临时专利申请序号No.62/791,963和2019年1月15日提交的美国临时专利申请序号No.62/792,489的优先权。这些美国临时专利申请的全部内容通过引用而并入于此。
技术领域
本发明涉及对包含一个或更多个虚拟边缘的图片(诸如360度虚拟现实(VR360)图片)进行图片处理。特别地,本发明涉及在包含一个或更多个虚拟边缘的图片(诸如VR360视频)的不连续边缘或虚拟边缘处进行环内滤波处理(in-loop filtering process)的语法设计(syntax design)。
背景技术
360度视频(也称为沉浸式视频(immersive video))是一项新兴的技术,该技术可以提供“当下的感觉(feeling as sensation of present)”。通过利用覆盖全景的环绕场景(特别是360度视野)包围用户来实现沉浸感。立体呈现可以进一步改善“当下的感觉”。因此,将全景视频广泛用于虚拟现实(VR:Virtual Reality)应用。
可以使用360度球形全景摄像机或者被设置成覆盖环绕360度的所有视野的多张图片,来拍摄360度虚拟现实(VR)图片。三维(3D)球形图片很难使用常规的图片/视频处理装置来进行处理或存储。因此,通常使用3D到2D投影方法(诸如等距矩形(EquiRectangular)投影(ERP:EquiRectangular Projection)和立方体贴图(CubeMap)投影(CMP:CubeMap Projection))将360度VR图片转换成二维(2D)格式。除了ERP和CMP投影格式之外,还有在本领域中广泛使用的各种其它VR投影格式,诸如OctaHedron投影(OHP:OctaHedron Projection)、二十面体投影(ISP:icosahedron projection)、分段球形投影(SSP:Segmented Sphere Projection)以及旋转球形投影(RSP:Rotated SphereProjection)。
与常规的2D视频序列相比,VR360视频序列通常需要更多的存储空间。因此,通常将视频压缩应用于VR360视频序列,以减少用于存储的存储空间或者用于流播/传输的比特率。
高效视频编码(HEVC:High Efficiency Video Coding)标准是在ITU-T视频编码专家组(VCEG:Video Coding Experts Group)和ISO/IEC运动图像专家组(MPEG:MovingPicture Experts Group)标准化组织的联合视频项目下开发的,尤其是具有称为视频编码联合协作团队(JCT-VC:Joint Collaborative Team on Video Coding)的合作关系。可以使用HEVC对VR360视频序列进行编解码。然而,本发明也可以适用于其它编解碼方法。
在HEVC中,将一个片段分区成多个编码树单元(CTU:coding tree unit)。对于彩色图片,可以将彩色片段分区成多个编码树块(CTB:coding tree block)。将CTU进一步分区成多个编码单元(CU:coding unit)以适应各种局部特征。HEVC支持多种帧内(Intra)预测模式,并且对于帧内编码的CU,用信号通知所选择的帧内预测模式。除编码单元的概念之外,HEVC中还引入了预测单元(PU:prediction unit)的概念。一旦进行了CU层次树的拆分后,根据预测类型和PU分区,将各个叶级(leaf)CU进一步拆分成一个或更多个预测单元(PU)。在预测之后,将与CU相关联的残余项(residue)分区成变换块(命名为变换处理的变换单元(TU:transform unit))。
虽然编解码处理可以有效减少传输所需的带宽或存储所需的容量,但是编解码处理通常会引入称为编码伪像(coding artefact)的编码噪声。为了减轻编码伪像,已经引入了各种滤波技术,诸如去块滤波器(de-blocking filter)、SAO(样本自适应偏移,sampleadaptive offset)以及ALF(自我调整环路滤波器,adaptive loop filter)。通常将滤波处理应用于所重建的图片,随后将该重建的图片用作参考图片。换句话说,滤波处理处于编解碼环路内部。因此,这种滤波处理也称为环内滤波。
在HEVC中,在重建图片之后应用去块滤波器。对编码单元、预测单元或变换单元之间的边缘进行滤波,以减轻因基于块的编码而造成的块状伪像。边缘可以是垂直边缘或水平边缘。在分别如图1A和图1B所示的垂直边缘(110)和水平边缘(120)的去块滤波处理中涉及到边缘像素。对于垂直边缘(即,图1A中的线110),将水平滤波器应用于各条水平线上的一些边缘样本。例如,可以将水平去块滤波器应用于垂直边缘左侧的p00、p01以及p02和垂直边缘右侧的q00、q01以及q02。类似地,对于水平边缘(即,图1B中的线120),将垂直滤波器应用于各条垂直线上的一些边缘样本。例如,可以将垂直去块滤波器应用于水平边缘上侧的p00、p01以及p02和水平边缘下侧的q00、q01以及q02。换句话说,沿垂直于边缘的方向来应用去块滤波器。
边缘强度值Bs是针对每四个样本的长度边缘来进行计算的,并且可以取3个可能值。亮度分量和色度分量在去块处理中是分开处理的。对于亮度分量,可以仅对具有等于1或2的Bs值的块边缘进行滤波。对于色度分量的情况来说,可以仅对具有等于2的Bs值的边缘进行滤波。
对于亮度分量,针对每四个样本的长度边缘来检查附件条件,以确定是否应当应用去块滤波,并且进一步确定如果应用了去块,那么是应用正常的滤波器还是应用强滤波器。
对于正常滤波模式下的亮度分量,可以对边缘各侧的两个样本进行修改。在强滤波模式下,可以对边缘各侧的三个样本进行修改。
对于色度分量,当边缘强度大于1时,可以仅对边缘各侧的一个样本进行修改。
开发了SAO处理来补偿因编码处理而造成的强度水平偏移(intensity leveloffset)。HEVC采用的SAO处理包含两种方法。一种方法是带偏移(BO:Band Offset),另一种方法是边缘偏移(EO:Edge Offset)。使用BO以根据像素强度将像素分类成多个带,接着将偏移应用于一个或更多个带中的像素。使用EO以根据当前像素与相应的近邻(neighbour)之间的关系将像素分类成多个类别,接着将偏移应用于各个类别下的像素。有4种EO方向模式(0°、90°、135°以及45°)和不进行处理(关闭(OFF))。图2中示出了这四种EO类型。
当对区域中的所有像素进行分类时,对于各个类别下的像素,汇出并发送一个偏移量(offset)。将SAO处理应用于亮度分量和色度分量,并且这些分量中的各个分量都是独立处理的。除EO的类别4之外,其它各个类别的所有像素都汇出一个偏移量(offset),其中类别4被强制使用了零偏移(zero offset.)。下表1列出了EO像素分类,其中“C”表示待分类的像素。如表1所示,与对类别进行确定相关联的条件涉及:根据EO类型将当前像素值与两个相应的近邻值进行比较。可以根据比较结果确定类别(即,“>”、“<”或“=”)。各个类别在当前像素与邻近的像素之间的相对强度方面皆有特殊的含义。例如,类别0对应于其中中心像素的强度低于两个邻近的像素的强度的“谷(valley)”。类别3对应于其中中心像素的强度高于两个邻近的像素的强度的“峰(peak)”。类别1和类别2分别对应于具有向上斜率(类别2)或向下斜率(类别1)的平坦段。
表1
自我调整环路滤波器(ALF:Adaptive Loop Filter)是将自我调整尺寸的滤波器应用于重建的像素。在HEVC标准开发期间对ALF进行了评估,但是HEVC并未采用ALF。然而,命名为VVC(通用视频编码:Versatile Video Coding)的新兴视频编码标准正在考虑ALF。为了优化性能,ALF使用Wiener滤波技术来汇出滤波器系数。而且,对于不同的图片区域允许多个滤波器。例如,ALF可以是5x5滤波器或7x7滤波器,如图3所示,其中“C”表示正被滤波的当前重建的像素。
根据常规的方法,将诸如去块、SAO以及ALF这样的环路滤波器应用于重建的VR360图片,而无需考虑VR360图片中的可能的不连续边缘。例如,基于立方体贴图的投影使用立方体上的六个面,来表示VR360视频中的一个帧。这六个面对应于从该立方体展开并适配成不同的布局(诸如1x6、6x1、2x3或者3x2的布局)的面。在各种立方体贴图布局当中,3x2布局因其编码效率而经常被使用。图4例示了3x2立方体贴图布局形式的示例。布局410对应于从立方体展开的六个面,其中图像412对应于正面,连接至图像412左侧的三个图像414在水平方向上对应于连接至正面412的其它三个表面,图像416对应于立方体顶部的面,而图像418对应于立方体底部的面。因此,包括图像414和图像412的四个图像在水平方向上是连续的,而包括图像416、图像412以及图像418的三个图像在垂直方向上是连续的。4x3布局410包含一些空白区域,这对于编码不是高效的。布局420对应于3x2立方体贴图布局,其中,三个图像414和三个垂直连接的图像(包含图像416、412以及418)是毗连(abutted)的。与三个图像414相对应的上部子帧在水平方向上是连续的。而且,与三个图像412、416以及418相对应的下部子帧在水平方向上是连续的。然而,上部子帧与下部子帧之间的边缘422是不连续的。换句话说,与来自3D投影的布局格式相对应的VR360图片可能在图片内包含不连续边缘。
除了VR360图片,其它图片格式也可能在图片中包含不连续边缘。例如,画中画(PIP)格式是一种流行的格式,可以在同一屏幕上同时显示两个视频(例如主视频和副视频)。因此,对于各个PIP帧,与所述两个视频关联的图片之间可能存在不连续性。VR360图片以及PIP帧中存在跨不连续边缘进行环路滤波处理问题。
图5A至图5C例示了应用于重建的VR360图片的环内滤波器的示例。图5A例示了去块滤波器的示例,其中,将去块滤波器应用于当前块510。将去块滤波器应用于当前块510与上方的邻近块512之间的水平边缘516。也将去块滤波器应用于当前块510与左侧的邻近块514之间的垂直边缘518。
图5B例示了SAO处理的示例。基于各个编码树单元(CTU:coding tree unit)520的统计信息来导出偏移补偿参数。在统计信息推导期间,将BO和EO分类应用于所有像素。对于各个BO和EO类别,确定偏移值。在收集了CTU的统计信息之后,可以将SAO应用于CTU中的重建的像素。
图5C例示了用于重建的VR360图片的ALF处理的示例。重建的像素530可以由5x5滤波器进行滤波,或者重建的像素532可以由7x7滤波器进行滤波。如前提及,可以使用Wiener滤波器技术来设计滤波器参数,以使原始图片与重建的图片之间的误差最小。对于各个重建的像素,自我调整地选择滤波器尺寸以实现最佳性能。
如图4中的布局420所示,立方体贴图的3x2布局在上部子帧与下部子帧之间包含不连续边缘。边缘422的一侧上的像素可以与边缘422的另一侧上的像素完全不同。因此,在将环内滤波器应用于紧挨着该边缘或者靠近该边缘的重建的像素时,可能会导致不合需要的结果。图6例示了应用于重建的像素622的SAO滤波器的示例,其中指示了不连续边缘610。针对重建的像素622例示了在不连续边缘处的SAO操作620。由虚线框624指示了3x3的SAO窗口。对于水平边缘610,针对90°、135°以及45°的SAO滤波处理将利用来自不连续边缘的另一侧的参考像素。尽管不连续边缘的另一侧上的邻近的像素626(命名为非预期像素)靠近重建的像素622,但这些像素626与正被滤波的重建的像素622可能有很大不同。在这种情况下,针对边缘像素的SAO处理可能会产生不合需要的结果。
因此,希望开发出克服与用于VR360图片的环内滤波器有关的问题的技术。
发明内容
公开了对视频序列进行编码的方法和设备,其中,重建的滤波单元包括进行环路滤波处理的多个重建的像素。根据该方法,在编码器侧在比特流中用信号通知(signalled)第一语法或者在解码器侧从所述比特流中解析所述第一语法(syntax)。接收当前图片中的重建的滤波单元,其中,所述重建的滤波单元与环路滤波器相关联,并且所述重建的滤波单元包括重建的像素,向当前重建的像素应用与所述环路滤波器相关联的环路滤波处理。所述第一语法指示针对对应区域中的一个或更多个虚拟边缘是否禁用所述环路滤波处理。如果所述第一语法为真,则在所述重建的滤波单元跨所述对应区域中的所述一个或更多个虚拟边缘时,禁用所述环路滤波处理。如果所述第一语法为假,则在所述重建的滤波单元跨所述虚拟边缘时,不禁用所述环路滤波处理。
针对所述对应区域,可以按包括SPS(序列参数集,Sequence Parameter Set))、PPS(图片参数集,Picture Parameter Set)、APS(应用参数集,Application ParameterSet)、片段(slice)、图块(tile)、图片、CTU(编码树单元,Coding Tree Unit)、CU(编码单元,Coding Unit)、PU(预测单元,(Prediction Unit)或TU(变换单元,Transform Unit))级别的语法级别,在所述比特流中用信号通知所述第一语法或者从所述比特流中解析所述第一语法。
在一个实施方式中,如果所述第一语法为真,则在所述编码器侧用信号通知一个或更多个第二语法或者在所述解码器侧解析一个或更多个第二语法,以指示所述对应区域中的虚拟边缘信息。所述第二语法包括指示所述对应区域中的垂直虚拟边缘的数量的第一数量和指示所述对应区域中的水平虚拟边缘的数量的第二数量。在一个示例中,各个垂直虚拟边缘是从所述对应区域的上边缘到下边缘,并且各个水平虚拟边缘是从所述对应区域的左边缘到右边缘。在这种情况下,如果所述第一数量大于0,则在所述比特流中发送各个垂直虚拟边缘的位置或者从所述比特流中解析各个垂直虚拟边缘的位置。如果所述第二数量大于0,则在所述比特流中发送各个水平虚拟边缘的位置或者从所述比特流中解析各个水平虚拟边缘的位置。
在另一示例中,所述垂直虚拟边缘不一定是从所述对应区域的上边缘到下边缘,并且所述水平虚拟边缘不一定是从所述对应区域的左边缘到右边缘。在这种情况下,如果所述第一数量大于0,则在所述比特流中发送各个垂直虚拟边缘的x方位(position)、y起始方位以及y终止方位的位置或者从所述比特流中解析各个垂直虚拟边缘的x方位、y起始方位以及y终止方位的位置(location);以及如果所述第二数量大于0,则在所述比特流中发送各个水平虚拟边缘的y方位、x起始方位以及x终止方位的位置或者从所述比特流中解析各个水平虚拟边缘的y方位、x起始方位以及x终止方位的位置。
在又一示例中,所述垂直虚拟边缘的长度和所述水平虚拟边缘的长度是固定的。在这种情况下,如果所述第一数量大于0,则在所述比特流中发送各个垂直虚拟边缘的起点的位置,或者从所述比特流中解析各个垂直虚拟边缘的起点的位置。如果所述第二数量大于0,则在所述比特流中发送各个水平虚拟边缘的起点的位置,或者从所述比特流中解析各个水平虚拟边缘的起点的位置。
在一个实施方式中,如果所述第一语法为真,则在所述编码器侧用信号通知一个或更多个第二语法,或者在所述解码器侧解析一个或更多个第二语法,其中,所述一个或更多个第二语法指示所述对应区域中的所述一个或更多个虚拟边缘的数量。如果所述一个或更多个虚拟边缘的数量大于0,则在所述比特流中发送所述一个或更多个虚拟边缘的起点和终点的位置,或者从所述比特流中解析所述一个或更多个虚拟边缘的起点和终点的位置。所述一个或更多个虚拟边缘可以对应于一个或更多个矩形框,并且起点和终点对应于所述一个或更多个矩形框的左上方位和右下方位。
在一个实施方式中,如果所述第一语法为真,则在所述编码器侧用信号通知第二语法,或者在所述解码器侧解析第二语法,并且其中,所述第二语法指示所述对应区域中的至少一个虚拟边缘的形状。例如,在所述对应区域中的至少一个虚拟边缘的形状包括直线虚拟边缘和圆形虚拟边缘。当所述第二语法指示圆形虚拟边缘时,在所述编码器侧用信号通知一个或更多个第三语法,或者在所述解码器侧解析一个或更多个第三语法,以指示至少一个圆形的中心位置和半径。
在一个实施方式中,在所述编码器侧用信号通知一个或更多个第二语法,或者在所述解码器侧解析一个或更多个第二语法,以指示当前虚拟边缘与先前虚拟边缘之间的差值。例如,在所述当前虚拟边缘是所述对应区域中的第一虚拟边缘时,在所述编码器侧直接用信号通知所述第一虚拟边缘的绝对方位,或者在所述解码器侧直接解析所述第一虚拟边缘的绝对方位。在另一示例中,在所述当前虚拟边缘是所述对应区域中的第一虚拟边缘时,在所述编码器侧直接用信号通知所述第一虚拟边缘与所述对应区域的起点之间的差异,或者在所述解码器侧解析所述第一虚拟边缘与所述对应区域的起点之间的差异。
在一个实施方式中,如果所述第一语法为真,则在所述编码器侧用信号通知一个或更多个第二语法或者在所述解码器侧解析一个或更多个第二语法,以指示所述一个或更多个虚拟边缘的位置,并且所述一个或更多个虚拟边缘的位置是按照处理单元的宽度和/或高度测量到的。例如,所述处理单元被设定成如下区域,该区域包括图片、片段、图块、CTU(编码树单元)、CU(编码单元)、PU(预测单元)、TU(变换单元)、预定义值或者这些的组合。
在一个实施方式中,如果目标对应区域具有和先前对应区域相同的虚拟边缘,则所述目标对应区域继承和所述先前对应区域相同的虚拟边缘。例如,所述目标对应区域包括图片、片段、图块、CTU(编码树单元)、CU(编码单元)、PU(预测单元)、TU(变换单元)。而且,可以在所述编码器侧用信号通知第二语法,或者在所述解码器侧解析第二语法,以指示所述目标对应区域是否继承和所述先前对应区域相同的虚拟边缘。
在一个实施方式中,所述视频序列对应于360度虚拟现实(VR360:60-degreevirtual reality)视频。VR360视频包括等距矩形投影(ERP:Equirectangularprojection)、填充等距矩形投影(PERP:Padded Equirectangular projection)、八面体投影、二十面体投影、截头正方形四面体(TSP:Truncated Square Pyramid)、分段球形投影(SSP:Segmented Sphere Projection)或旋转球形投影(RSP:Rotated SphereProjection)。
在一个实施方式中,所述环路滤波器属于如下组,该组包括去块滤波器、SAO(样本自适应偏移,Sample Adaptive Offset))滤波器以及ALF(自我调整环路滤波器,AdaptiveLoop Filter)。
附图说明
图1A例示了在垂直边缘的去块滤波处理中所涉及的边缘像素的示例。
图1B例示了在水平边缘的去块滤波处理中所涉及的边缘像素的示例。
图2标出了SAO(样本自适应偏移)的4种EO(边缘偏移:Edge Offset)方向模式(0°、90°、135°以及45°)。
图3例示了包括5x5滤波器和7x7滤波器的ALF的示例,其中“C”表示正被滤波的当前重建的像素。
图4例示了4x3和3x2的立方体贴图布局形式的示例。
图5A例示了应用于采用3x2布局的VR360图片的块的去块滤波器的示例。
图5B例示了应用于采用3x2布局的VR360图片的像素的SAO处理的示例。
图5C例示了针对重建的VR360图片使用5x5或7x7滤波器的ALF处理的示例。
图6例示了在不连续边缘处应用于重建的像素的SAO滤波器的示例。
图7A例示了跨不连续边缘应用或者应用于靠近不连续边缘的块边缘的去块滤波处理的示例。
图7B例示了跨不连续边缘应用SAO(样本自适应偏移)和ALF(自我调整环路滤波器)滤波处理的示例。
图8A例示了三个帧(i-1、i以及i-1)具有如虚线所示的不同的虚拟边缘的示例。
图8B例示了具有如虚线所示的不同的虚拟边缘的不同的CTU(编码树单元)的示例。
图8C例示了虚拟边缘的起点或终点位于图片内部的示例。
图9例示了根据本发明的实施方式的用于跨不连续边缘或虚拟边缘的环路滤波处理的参考像素扩展的示例。
图10例示了VR360投影的各种示例,其包括如图10所示的等距矩形投影(ERP:Equirectangular projection)、填充等距矩形投影(PERP:Padded EquirectangularProjection)、八面体投影、简洁选项1的八面体投影以及简洁选项2的八面体投影。
图11例示了包括二十面体投影、简洁选项1的二十面体投影以及截头正方形四面体(TSP:Truncated Square Pyramid)的VR360投影的各种示例。
图12例示了包括分段球形投影(SSP:Segmented Sphere Projection)和旋转球形投影(RSP:Rotated Sphere Projection)的VR360投影的各种示例。
图13例示了根据本发明的实施方式的用于视频的编码系统的示例性流程图,其中,用信号通知第一语法以指示针对对应区域中的一个或更多个虚拟边缘是否禁用环路滤波处理。
具体实施方式
下面的描述是执行本发明的最佳设想模式。该描述仅出于例示本发明的一般原理的目的而给出,而不应按限制性意义进行。本发明的范围是通过参考所附权利要求来最佳地确定的。
应当容易地理解,如本文通常描述的且在附图中例示的本发明的组件可以按宽泛种类的不同配置来设置和设计。因此,如在附图中所表示的,下面对本发明的系统和方法的实施方式的更详细描述并非旨在对要求保护的本发明的范围进行限制,而只是表示本发明的所选择的实施方式。
贯穿本说明书对“一个实施方式”、“实施方式”或类似语言的引用意指可以在本发明的至少一个实施方式中包括结合该实施方式描述的特定特征、结构或特性。因此,贯穿本说明书处处出现的短语“在一个实施方式中”或者“在实施方式中”不必都指同一实施方式。
而且,可以在一个或更多个实施方式中按任何合适方式组合所描述的特征、结构或特性。然而,相关领域技术人员将认识到,可以在缺少这些具体细节中的一个或更多个的情况下或者利用其它方法、组件等来具体实践本发明。在其它情况下,未详细示出或描述公知的结构或操作,以避免搞混本发明的各方面。
参照附图将最好地理解本发明的所示实施方式,其中,贯穿全文由相同数字来指定相同部分。下面的描述只是作为示例,并且简单地例示了与本文所要求保护的发明相一致的设备和方法的某些选择的实施方式。
在本说明书中,出现在附图和描述中的相同标号指定了不同视图之间的对应或相同要素。
如前提及,当将环内滤波器应用于VR360视频中的不连续边缘时,针对该不连续边缘的一侧上的重建的像素的滤波处理,可能需要使用该不连续边缘的另一侧上的一个或更多个重建的像素(称为非预期像素)。由于不连续边缘的两侧的像素之间的不连续性,因此将非预期像素用于环内滤波处理可能会造成明显的伪像。因此,根据本发明的方法,如果环内滤波处理跨该不连续边缘,则禁用环内滤波处理或者使用较小尺寸的滤波器。VR360视频或PIP中的不连续边缘或边缘在本公开中也称为虚拟边缘。在本公开中,可以将环内滤波器称为环路滤波器。在本公开中,可以将环内滤波处理称为环路滤波处理。
图7A例示了跨不连续边缘705应用去块滤波处理。在图7A中,将去块滤波处理710应用于当前块712,其中将块边缘与不连续边缘705对齐。当前块712的去块滤波处理涉及由点填充区域714所指示的非预期像素。由于跨不连续边缘应用去块滤波处理,因此,根据本发明的方法禁用了当前块的去块滤波处理。将去块滤波处理720应用于当前块722,其中,不连续边缘705位于当前块的内部。当前块722的去块滤波处理可能涉及非预期像素,其中,当前块中的像素中的一些像素可以位于虚拟边缘的与邻近参考块(如点填充区域724所示)的不同侧。根据本发明的方法禁用当前块的去块滤波处理,或者使用具有较小滤波器尺寸的去块滤波器。另外,当虚拟边缘位于邻近参考块内部时,根据本发明的方法禁用当前块的去块滤波处理,或者使用具有较小滤波器尺寸的去块滤波器。在HEVC中,去块滤波器在块边缘的各侧上可以使用多至4个像素。根据本发明的实施方式,去块滤波器可以在块边缘的至少一侧上使用较少的像素。
可以将去块滤波器应用于诸如变换块边缘、子块边缘或其它类型块的块。因此,在一个实施方式中,如果块(例如,与用于去块滤波器的子块或变换块相关联的子块边缘或变换块边缘)与虚拟边缘对齐或者虚拟边缘位于块或邻近的块内部,则禁用该块(例如,子块或变换块)的环路滤波处理。
在图7B中,将SAO滤波处理730应用于与不连续边缘705相邻的当前像素732。当前像素732的SAO滤波处理涉及由点填充方形(dots-filled square)734所指示的非预期像素。由于跨不连续边缘应用SAO滤波处理,因此,根据本发明的方法禁用了当前像素的SAO滤波处理。在图7B中,将ALF滤波处理740应用于与不连续边缘705相邻的当前像素742。当前像素742的ALF滤波处理涉及由点填充方形744所指示的非预期像素。由于跨不连续边缘应用ALF滤波处理,因此,根据本发明的方法禁用当前像素的ALF滤波处理,或者如果较小的ALF可用,则使用较小的ALF。例如,如果7x7和5x5 ALF均可用,则当7x7 ALF跨虚拟边缘时,可以使用5x5 ALF。ALF滤波处理包括确定滤波器系数并应用滤波器。虽然对于跨不连续边缘禁用环内波处理的方法,使用去块、SAO以及ALF环内滤波器作为示例,但是该方法也可以应用于其它类型的环内滤波处理。
根据本发明的实施方式,可以按诸如SPS、PPS、APS、片段、图块、图片、CTU、CU、PU或TU级别这样的语法级别在比特流中发送语法(例如,控制标志或启用标志),以指示是否针对对应区域(例如,图片、片段、图块、CTU、CU、PU或TU)中的虚拟边缘禁用滤波器。例如,可以在序列级别上用信号通知控制标志sps_loop_filter_disabled_across_virtual_boundaries_flag,以指示是否针对该序列的帧中的虚拟边缘禁用滤波器。
在不同的图片、片段、图块、CTU、CU、PU或TU中,该虚拟边缘可以是不同的。例如,图8A示出了三个帧(i-1、i以及i+1),其中,这三个帧具有如虚线所示的不同虚拟边缘。图8B例示了具有如虚线所示的不同虚拟边缘的不同CTU(即,840、842、844以及846)的示例。
在下文中,公开了根据本发明的实施方式的各种语法结构。
语法结构设计(Syntax Structure Design)I
在一个实施方式中,如果语法(例如,控制标志或启用标志)为真,则跨虚拟边缘禁用环路滤波器;以及如果语法(例如,控制标志或启用标志)为假,则在重建的滤波单元跨虚拟边缘时,不禁用环路滤波器。
在一个实施方式中,如果语法(例如,控制标志或启用标志)等于真,则也可以在比特流中用信号通知两种语法,以分别指示垂直虚拟边缘的数量和水平虚拟边缘的数量。如果垂直虚拟边缘的数量大于0,则在比特流中用信号通知所有垂直虚拟边缘的位置。类似地,如果水平虚拟边缘的数量大于0,则在比特流中用信号通知所有水平虚拟边缘的位置。
表2示出了结合本发明的实施方式的示例性SPS语法表。
表2
由于虚拟边缘并非总是被设定成从区域(例如,图片、片段、图块、CTU、CU、PU或TU)的最左方位到最右方位或者从区域的最高方位到最低方位。虚拟边缘的起点或终点可以位于图片内部。例如,如图8C所示,虚拟边缘的起点或终方位于图片内部,其中,垂直虚拟边缘852的上端在图片内部(即,图片的中间),而水平虚拟边缘是从图片的左侧到右侧。因此,在语法表3中也指定了虚拟边缘的起始方位和终止方位。
在另一实施方式中,如果语法(即,控制标志或启用标志)等于真,则也可以在比特流中用信号通知两种语法,以分别指示垂直虚拟边缘的数量和水平虚拟边缘的数量。如果垂直虚拟边缘的数量大于0,则在比特流中用信号通知各个垂直虚拟边缘的x方位以及y起点和y终点。如果水平虚拟边缘的数量大于0,则在比特流中用信号通知各个水平虚拟边缘的y方位以及x起点和x终点。
表3示出了结合本发明的上面实施方式的示例性SPS语法表。
表3
在另一实施方式中,虚拟边缘的长度是固定的。在这种情况下,可以如表4所示更改上面的语法表。此外,可以按SPS、PPS、APS、片段、图块、图片、CTU、CU、PU或TU级别在比特流中发送语法(例如,控制标志或启用标志),以指示是否针对虚拟边缘禁用环内滤波器。如果语法为真,则在重建的滤波单元跨虚拟边缘时,禁用环路滤波器。如果语法为假,则在重建的滤波单元跨虚拟边缘时,不禁用环路滤波器。
如果语法(例如,控制标志或启用标志)等于真,则也可以在比特流中发送以下语法。可以在比特流中发送两种语法,以分别指示对垂直虚拟边缘的数量和水平虚拟边缘的数量进行设定。如果垂直虚拟边缘的数量大于0,则将各个垂直虚拟边缘的起点(x方位和y方位)发送到比特流中。如果水平虚拟边缘的数量大于0,则将各个水平虚拟边缘的起点(x方位和y方位)发送到比特流中。
表4
语法结构设计II
还公开了更灵活的用信号通知各种类型的虚拟边缘的语法结构。虚拟边缘并非总是被设定成从区域(图片、片段、图块、CTU、CU、PU、TU)的最左方位到最右方位,或者从区域的最高方位到最低方位。
在比特流中用信号通知各个虚拟边缘的两个位置起点和终点,以使可以将虚拟边缘设定为矩形框或直线。起点指示框的左上方位,终点指示框的右下方位。
如果语法(即,控制标志或启用标志)等于真,则也可以在比特流中用信号通知以下语法。可以在比特流中用信号通知一种语法,以指示虚拟边缘的数量。如果虚拟边缘的数量大于0,则在比特流中用信号通知所有虚拟边缘的起点和终点的位置。
表5示出了结合上面实施方式的示例性语法表。
表5
在另一示例中,该语法结构与表5类似。然而,该虚拟边缘可以通过该虚拟边缘的对应的起点的位置以及起点与终点之间的偏移值来用信号通知:
virtual_boundaries_end_pos_x[i]=virtual_boundaries_start_pos_x[i]+virtual_boundaries_offset_x[i],
virtual_boundaries_end_pos_y[i]=virtual_boundaries_start_pos_y[i]+virtual_boundaries_offset_y[i],
其中,i=0,…num_virtual_boundaries-1。
此外,可以按SPS、PPS、APS、片段、图块、图片、CTU、CU、PU或TU级别在比特流中发送语法(例如,控制标志或启用标志),以指示是否针对虚拟边缘禁用环内滤波器。如果语法为真,则在重建的滤波单元跨虚拟边缘时,禁用环路滤波器。如果语法为假,则在重建的滤波单元跨虚拟边缘时,不禁用环路滤波器。
如果语法(例如,控制标志或启用标志)等于真,则也可以在比特流中用信号通知以下语法。可以在比特流中用信号通知一种语法,以指示对应区域中存在的水平虚拟边缘的数量。如果虚拟边缘的数量大于0,则在比特流中用信号通知所有虚拟边缘的起点的位置以及偏移值。
表6示出了结合上面实施方式的示例性语法表。
表6
语法结构设计III
对于一些VR投影图片,该布局可以包括沿除垂直和水平方向之外的其它各种角度的虚拟边缘,并且多个虚拟边缘可以形成诸如三角形或矩形这样的非正方形形状。而且,虚拟边缘可以是直线或者诸如圆形这样的形状。根据本发明的一些实施方式,将语法结构设计成支持这样的情况。
此外,可以按SPS、PPS、APS、片段、图块、图片、CTU、CU、PU或TU级别在比特流中发送语法(例如,控制标志或启用标志),以指示是否针对虚拟边缘禁用环内滤波器。如果语法为真,则在重建的滤波单元跨虚拟边缘时,禁用环路滤波器。如果语法为假,则在重建的滤波单元跨虚拟边缘时,不禁用环路滤波器。
在一个实施方式中,如果语法(例如,控制标志或启用标志)等于真,则也可以在比特流中用信号通知以下语法。例如,可以在比特流中用信号通知一种语法,以指示虚拟边缘的数量。如果虚拟边缘的数量大于0,则可以在比特流中用信号通知语法(例如,形状标志),以指示各个虚拟边缘的形状。例如,如果形状标记等于第一值(例如,0),则该虚拟边缘是直线。在比特流中用信号通知起点和终点的位置。如果形状标记等于第二值(例如,1),则该虚拟边缘是圆形。可以在比特流中用信号通知圆心的方位和圆的半径。
表7示出了如下示例性语法表,其与上面基于语法结构II的表5中的语法表的实施方式相对应。
表7
表8示出了如下示例性语法表,其与上面基于语法结构II的表6中的语法表的实施方式相对应。
表8
减少用于信号通知的比特数
为了减少比特流中的比特数,可以根据先前虚拟边缘以及先前虚拟边缘与当前虚拟边缘之间的差值导出虚拟边缘的位置。
根据本发明的一种方法,仅在比特流中用信号通知了差值。可以如下导出第一虚拟边缘的位置:
virtual_boundaries_pos_x[0]=0+virtual_boundaries_diff_x[0],
virtual_boundaries_pos_y[0]=0+virtual_boundaries_diff_y[0]。
对于第一虚拟边缘,也可以根据当前区域的起始方位导出该位置:
virtual_boundaries_pos_x[0]=(当前区域的起点的x方位)+virtual_boundaries_diff_x[0],
virtual_boundaries_pos_y[0]=(当前区域的起点的y方位)+virtual_boundaries_diff_y[0]。
可以如下导出其它虚拟边缘的位置:
virtual_boundaries_pos_x[i]=virtual_boundaries_pos_x[i-1]+virtual_boundaries_diff_x[i],
virtual_boundaries_pos_y[i]=virtual_boundaries_pos_y[i-1]+virtual_boundaries_diff_y[i].
其中,i=1,…num_virtual_boundaries-1。
可以将该方法与语法结构I、II以及III相结合,以减少比特流的比特数。
表9示出了结合上面实施方式以减少比特数的示例性语法表。
表9
根据另一实施方式,在比特流中用信号通知第一虚拟边缘的绝对位置以及其它虚拟边缘的差值。可以根据先前虚拟边缘以及先前虚拟边缘与当前虚拟边缘之间的差值导出其它虚拟边缘的位置。
除第一虚拟边缘之外,可以像以前一样导出其它虚拟边缘的位置,如下所示。
virtual_boundaries_pos_x[i]=virtual_boundaries_pos_x[i-1]+virtual_boundaries_diff_x[i],
virtual_boundaries_pos_y[i]=virtual_boundaries_pos_y[i-1]+virtual_boundaries_diff_y[i].
其中,i=1,…num_virtual_boundaries-1。
表10示出了结合上面实施方式以减少比特数的示例性语法表。
表10
为了减少比特数,可以将虚拟边缘的位置设定成处理单元最小宽度/高度的倍数。因此,可以以最小处理单元为单位,在比特流中用信号通知虚拟边缘的位置。
例如,新兴VVC(通用视频编码)标准中的最小处理单元为4x4块;因此,将虚拟边缘的位置设定成4的倍数。
为了进一步减少比特数,可以以片段、图块、CTU、CU、PU、TU、其它预定义值或者这些的组合为单位,在比特流中用信号通知虚拟边缘的位置。例如,垂直虚拟边缘的位置可以是3CTU宽度加5块宽度。
可以将该方法与语法结构I、II以及III相结合,以减少比特流的比特数。也可以将该方法与其它比特数减少方法相结合。
也可以将比特数减少方法应用于语法结构中的偏移值和差值。
可以从先前区域(例如,图片、片段、图块、CTU、CU、TU、PU等)继承虚拟边缘方位,并因此可以减少当前区域(例如,图片、片段、图块、CTU、CU、TU、PU等)的比特数。例如,如果当前帧中的虚拟边缘的方位与先前帧相同,则可以从先前帧继承虚拟边缘。在另一示例中,如果当前CTU中的虚拟边缘的方位与先前CTU相同,则可以从先前CTU继承虚拟边缘。对于当前区域,可以使用一种附加的语法(例如,sps_virtual_boundary_inherit_flag)来标识是否从先前区域继承虚拟边缘。
表11示出了结合上面实施方式以减少比特数的示例性语法表。
表11
图9例示了根据本发明的实施方式的用于跨不连续边缘或虚拟边缘的环路滤波处理的参考像素扩展910。在图9中,将上部子帧中的像素进行扩展以形成另选参考像素(标记为点填充区域1),并且将下部子帧中的像素进行扩展以形成另选参考像素(标记为点填充区域2)。在图9中,示出了上部子帧的虚拟边缘912a和下部子帧的虚拟边缘912b。当将虚拟边缘的同一侧的像素进行扩展以形成另选参考像素时,使用当前子帧中的最近的像素。换句话说,将上部子帧的下侧线向下延伸以形成参考像素区域1,并将下部子帧的上侧线向上延伸以形成参考像素区域2。当环路滤波处理需要来自不连续边缘或虚拟边缘的另一侧的参考像素时,将当前子帧中的最近的像素(即,与当前像素处于不连续边缘/虚拟边缘的同一侧)用作另选参考像素。在图9中,VR360图片由上部子帧和下部子帧组成。如应理解,旨在将3x2立方体贴图布局作为示例来说明根据本发明的实施方式的参考像素扩展。
可以将参考像素扩展应用于其它VR360布局格式,诸如从八面体投影(OHP:OctaHedron Projection)、二十面体投影(ISP:icosahedron projection)、分段球形投影(SSP:Segmented Sphere Projection)以及旋转球形投影(RSP:Rotated SphereProjection)汇出的布局格式。VR360图片中可能有一个以上的虚拟边缘。而且,虚拟边缘可以沿其它方向而不是垂直/水平方向。当环路滤波处理涉及非预期参考像素(即,虚拟边缘的另一侧的参考像素)时,可以将与要滤波的当前重建的像素在同一侧的最近像素扩展以形成另选参考像素。
已经基于3x2立方体贴图布局示出了跨虚拟边缘的滤波控制(即,启用或禁用)。上面描述的跨虚拟边缘的滤波处理可以适用于其它VR格式,诸如八面体投影(OHP)、二十面体投影(ISP)、分段球形投影(SSP)以及旋转球形投影(RSP)。图10示出了与等距矩形投影(ERP:Equirectangular projection)1010、填充等距矩形投影(PERP:PaddedEquirectangular Projection)1020、八面体投影1030、简洁选项1的八面体投影1040以及简洁选项2的八面体投影1050相对应的图片。图11示出了与二十面体投影1110、简洁选项1的二十面体投影1120以及截头正方形四面体(TSP:Truncated Square Pyramid)1130相对应的图片。图12示出了与分段球形投影(SSP)1210和旋转球形投影(RSP)1220相对应的图片。
该方法不仅适用于去块滤波器、ALF滤波器以及SAO滤波器,而且适用于其它滤波器。
图13例示了根据本发明的实施方式的用于视频的编解码系统的示例性流程图,其中,用信号通知第一语法以指示针对对应区域中的一个或更多个虚拟边缘是否禁用环路滤波处理。可以将流程图中所示的步骤以及本公开中的其他后续流程图实现为,可在编码器侧和/或解码器侧的一个或更多个处理器(例如,一个或更多个CPU)上执行的程序代码。流程图中所示的步骤也可以基于硬件来实现,例如被设置成执行该流程图中的步骤的一个或更多个电子装置或处理器。根据该方法,在步骤1310中,在编码器侧在比特流中用信号通知第一语法,或者在解码器侧从比特流中解析第一语法,其中,该第一语法指示针对对应区域中的一个或更多个虚拟边缘是否禁用环路滤波处理。在步骤1320中,接收图片中的当前重建的像素的重建的滤波单元,其中,该重建的滤波单元与环路滤波器相关联,并且该重建的滤波单元包括重建的像素,向当前重建的像素应用与环路滤波器相关联的环路滤波处理。如果该第一语法为真,则在重建的滤波单元跨对应区域中的所述一个或更多个虚拟边缘时,禁用环路滤波处理。如果该第一语法为假,则在重建的滤波单元跨虚拟边缘时,不禁用环路滤波处理。
上面示出的流程图旨在用作示例来例示本发明的实施方式。在不脱离本发明的精神的情况下,本领域技术人员可以通过修改单独步骤、拆分或组合步骤来具体实践本发明。
呈现上面的描述是为了使本领域普通技术人员能够具体实践在特定应用及其要求的背景下所提供的本发明。这些实施方式的各种修改例对于本领域技术人员是显而易见的,并且可以将本文所定义的一般原理应用于其它实施方式。因此,本发明不旨在限于所示出和描述的特定实施方式,而是符合与本文所公开的原理和新颖特征相一致的最广范围。在上面的详细描述中,例示了各种具体的细节,以便提供对本发明的详尽理解。尽管如此,本领域技术人员还应明白,可以对本发明进行具体实践。
如上所述的本发明的实施方式可以采用各种硬件、软件代码或这两者的组合来实现。例如,本发明的实施方式可以是用于执行本文所述的处理的被集成到视频压缩芯片中的一个或更多个电子电路或者被集成到视频压缩软件中的程序代码。本发明的实施方式还可以是要在数字信号处理器(DSP)上执行以执行本文所述的处理的程序代码。本发明还可以涉及要由计算机处理器、数字信号处理器、微处理器或者现场可程序设计门阵列(FPGA)执行的许多功能。可以将这些处理器配置成,通过执行对根据本发明具体实施的特定方法进行定义的机器可读软件代码或固件代码,来执行根据本发明的特定的任务。可以以不同程序设计语言和不同格式或样式来开发软件代码或固件代码。也可以为不同目标平台编译这些软件代码。然而,软件代码的不同代码格式、样式以及语言和配置代码以执行根据本发明的任务的其它手段将不脱离本发明的精神和范围。
本发明可以在不脱离其精神和基本特征的情况下按其它特定形式来具体实施。所述示例要如所示并且不受限地按全部方面来加以考虑。因此,通过所附权利要求而非前述描述来指示本发明的范围。落入权利要求的等同物的含义和范围内的所有改变将被涵盖在这些权利要求的范围内。
- 虚拟边缘的环内滤波的方法和设备
- 一种以太网虚拟化互联站点内负载分担方法和边缘设备