沉浸式视频编解码中的运动矢量推导的方法及装置与流程

文档序号:17043960发布日期:2019-03-05 19:26阅读:288来源:国知局
沉浸式视频编解码中的运动矢量推导的方法及装置与流程

本申请要求在2017年06月23日提出的申请号为62/523,883的美国临时专利申请以及在2017年06月23日提出的申请号为62/523,885的美国临时专利申请的优先权。上述美国临时专利申请整体以引用方式并入本文中。

本发明涉及360度虚拟现实(virtualreality,vr)图像/序列的图像/视频处理或编解码。具体而言,本发明涉及以不同投影格式推导出用于三维(three-dimensional,3d)内容的运动矢量。



背景技术:

360度视频,也称为沉浸式视频,是一种新兴技术,其可以提供“身临其境的感觉”。通过用覆盖全景视图的环绕式场景来环绕用户,特别是360度全景,以实现沉浸式感觉。通过立体渲染可以进一步改善“身临其境的感觉”。因此,全景视频广泛应用于虚拟现实(virtualreality,vr)应用中。

沉浸式视频涉及使用多个摄像机捕获情景,以覆盖全景视图,例如,360度视场。沉浸式摄像机通常使用用于捕获360度视场的全景摄像机或摄像机集。通常,两个或以上摄像机被用于沉浸式摄像机。所有视频必须同时被获取,并且该情景的单个段(也称为单个视角)被记录。此外,摄像机集通常用于水平地捕获视图,而其他摄像机设计是可能的。

使用360度球面全景摄像机或用于覆盖360度周围所有视场的多个图像,360度vr图像可以被捕获。使用传统图像/视频处理设备,3d球面图像很难处理或存储。因此,使用3d到2d投影方法,360度vr图像通常被转换成2d格式。例如,等角投影(equirectangularprojection,erp)和立方体投影(cubemapprojection,cmp)已普遍采用投影方法。因此,360度图像可以以等角投影格式进行存储。等角投影将整个球体的表面投影到平面图像上。垂直轴为纬度,水平轴为经度。图1示出了根据erp将球体110投影到矩形图像120的示例,其中每个经度线被映射到erp图像的垂直线。对于erp投影,球体的北极和南极中的区域比靠近赤道的区域被拉伸得更严重(即,从单个点到线)。此外,由于拉伸所引起的失真,特别在靠近两个极点处,预测性编解码工具通常不能做出较好的预测,使得编解码效率降低。图2示出了具有6个面的立方体210,其中360度vr图像可以根据cmp被投影到立方体上的6个面。存在不同的方式以将6个面从立方体上取出,并将其组合成矩形图像。图2中的示例将6个面划分成两个部分(即220a和220b),其中每个部分包括3个连接面。这两个部分可以被展开成两个带(即230a和230b),其中每个带对应于连续面图像。根据所选择的布局格式,这两个带可以被组合成紧凑型矩形帧。

如jvet-f1003(y.ye,etal.,“algorithmdescriptionsofprojectionformatconversionandvideoqualitymetricsin360lib”,jointvideoexplorationteam(jvet)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,6thmeeting:hobart,au,31march–7april2017,document:jvet-f1003)所述,erp格式和cmp格式均已被包括在投影格式转换中,其正被考虑用于下一代视频编解码。除了erp格式和cmp格式,存在不同的其他vr投影格式,例如,已调节立方体投影(adjustedcubemapprojection,acp)、等区域投影(equal-areaprojection,eap)、八面体投影(octahedronprojection,ohp)、二十面体投影(icosahedronprojection,isp)、分段球体投影(segmentedsphereprojection,ssp)和旋转球体投影(rotatedsphereprojection,rsp),其广泛应用于该领域。

图3示出了ohp的示例,其中球体被投影到八面体310的8个面上。通过切开面1与面5之间的面边缘,并将面1和面5旋转以分别连接于面2和面6,以及将相似流程应用于面3和面7,自八面体310取出的8个面320可以被转换成中间格式330。中间格式可以被封装成矩形图像340。

图4示出了isp的示例,其中,球体被投影到二十面体410的20个面上。来自于二十面体410的20个面420可以被封装成矩形图像430(称为投影布局)。

jvet-e0025(zhangetal.,“ahg8:segmentedsphereprojectionfor360-degreevideo”,jointvideoexplorationteam(jvet)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,5thmeeting:geneva,ch,12–20january2017,document:jvet-e0025)中已公开了ssp作为一方法,以将球面图像转换成ssp格式。图5示出了分段球体投影的示例,其中球面图像500被映射成北极图像510、南极图像520和赤道段图像530。3个段的边界对应于纬度45°n(即502)和纬度45°s(即504),其中0°对应于赤道(即506)。北极和南极被映射成2个圆圈区域(即510和520),且赤道段的投影可以与erp或eap相同。圆圈的直径等于赤道段的宽度,因为极段和赤道段均具有90°纬度跨度。北极图像510、南极图像520和赤道段图像530可以被封装成矩形图像。

图6示出了rsp的示例,其中球体610被分割成中间的270°x90°区域620和剩余部分622。每个rsp部分可以在顶端侧和底端侧被进一步拉伸,以生成具有椭圆形状的已变形部分。如图6所示,这两个椭圆形状部分可以被适合于矩形格式630。

acp是基于cmp。如果cmp的二维坐标(u’,v’)被确定,则acp的二维坐标(u,v)可以通过根据如下等式集调节(u’,v’)而被计算:

使用给定位置(u,v)和面索引f的表格,3d坐标(x,y,z)可以被推导出。对于3d到2d坐标转换,给定(x,y,z),则(u’,v’)和面索引f可以根据cmp的表格被计算。acp的2d坐标可以根据等式集被计算。

同理于erp,eap也将球体表面映射到一个面。在(u,v)平面中,u和v均处于范围[0,1]中。对于2d到3d坐标转换,给定采样位置(m,n),则2d坐标(u,v)先以相同于erp的方式被计算。随后,球体上的经度与纬度(φ,θ)可以自(u,v)被计算为:

φ=(u-0.5)*(2*π)(3)

θ=sin-1(1.0-2*v)(4)

最后,使用与相同于用于erp的等式,(x,y,z)可以被计算:

x=cos(θ)cos(φ)(5)

y=sin(θ)(6)

z=-cos(θ)sin(φ)(7)

相反地,使用如下,经度与纬度(φ,θ)可以自(x,y,z)坐标被评估:

φ=tan-1(-z/x)(8)

θ=sin-1(y/(x2+y2+z2)1/2)(9)

由于与虚拟现实相关的图像或视频可能占用较大空间以存储或者较大带宽以传输,因此图像/视频压缩通常被用于降低所需存储空间或传输带宽。帧间预测已成为强大的编解码工具,以使用运动估计/运动补偿探索帧间帧冗余。如果传统帧间预测被应用于自3d空间转换而来的2d帧,则使用运动估计/运动补偿技术不能合适地起作用,因为由于物体运动或物体与摄像机之间的相对运动,3d空间中的物体可能在2d帧中变成失真或变形。为了改进自3d空间转换而来的2d帧的帧间预测,不同帧间预测技术已被开发以提高自3d空间转换而来的2d帧的帧间预测的准确性。



技术实现要素:

本发明公开了一种处理360度虚拟现实图像的方法及装置。根据一方法,接收2d帧中的当前块的输入数据,其中2d帧是自3d球体投影的。确定与2d帧中的相邻块相关的第一运动矢量,其中第一运动矢量自相邻块中的第一起始位置指向2d帧中的第一终止位置。根据目标投影,将第一运动矢量投影到3d球体上。将3d球体中的第一运动矢量沿着3d球体的表面上的旋转圆圈围绕着旋转轴进行旋转,以生成3d球体中的第二运动矢量。根据逆目标投影,将3d球体中的第二运动矢量映射回到2d帧。使用第二运动矢量,编码或解码2d帧中的当前块。第二运动矢量可以被包括为合并候选列表或amvp候选列表中的候选,以用于编码或解码当前块。

在一实施例中,旋转圆圈对应于3d球体的表面上的最大圆圈。在另一实施例中,旋转圆圈小于3d球体的表面上的最大圆圈。目标投影可以对应于erp、cmp、acp、eap、ohp、isp、ssp、rsp或clp。

在一实施例中,将第一运动矢量投影到3d球体上包括:根据目标投影,将2d帧中的第一起始位置、第一终止位置和第二起始位置投影到3d球体上,其中第二起始位置位于对应于相邻块中的第一起始位置的当前块中相应位置处。将3d球体中的第一运动矢量沿着旋转圆圈进行旋转包括:确定目标旋转,以用于沿着3d球体的表面上的旋转圆圈围绕着旋转轴自第一起始位置旋转到3d球体中的第二起始位置;以及使用目标旋转,将第一终止位置旋转到3d球体上的第二终止位置。将3d球体中的第二运动矢量映射到2d帧包括:根据逆目标投影,将3d球体上的第二终止位置映射回到2d帧;以及根据2d帧中的第二起始位置和第二终止位置,确定2d帧中的第二运动矢量。

根据另一方法,接收两个2d帧,其中两个帧是使用目标投影而自对应于两个不同视点的3d球体投影的,且当前块和相邻块位于两个2d帧中。基于两个2d帧,确定摄像机的前置点。在两个2d帧中确定多个移动流。基于与相邻块相关的第一运动矢量,确定摄像机的平移。基于摄像机的平移,推导出与当前块相关的第二运动矢量。随后,使用第二运动矢量,编码或解码2d帧中的当前块。

对于上述方法,两个2d帧中的多个移动流可以是自两个2d帧中的每个像素的切线方向计算的。第二运动矢量可以被包括为合并候选列表或amvp候选列表中的候选,以用于编码或解码当前块。目标投影可以对应于erp、cmp、acp、eap、ohp、isp、ssp、rsp或clp。

根据又一方法,接收2d帧中的当前块的输入数据,其中2d帧是根据目标投影自3d球体投影的。确定与2d帧中的相邻块相关的第一运动矢量,其中第一运动矢量自相邻块中的第一起始位置指向2d帧中的第一终止位置。缩放第一运动矢量,以生成第二运动矢量。随后,使用第二运动矢量,编码或解码2d帧中的当前块。

在一实施例中,缩放第一运动矢量以生成第二运动矢量的步骤包括:根据目标投影,将2d帧中的第一起始位置、第一终止位置和第二起始位置投影到3d球体上,其中第二起始位置位于对应于相邻块中第一起始位置的当前块中相应位置。缩放第一运动矢量以生成第二运动矢量的步骤还包括:缩放第一运动矢量的经度分量,以生成第一运动矢量的已缩放经度分量;缩放第一运动矢量的纬度分量,以生成第一运动矢量的已缩放纬度分量;以及基于第一运动矢量的已缩放经度分量和第一运动矢量的已缩放纬度分量,确定对应于第二起始位置的第二终止位置。缩放第一运动矢量以生成第二运动矢量的步骤还包括:根据逆目标投影,将3d球体上的第二终止位置映射回到2d帧;以及基于2d帧中的第二起始位置和第二终止位置,确定2d帧的第二运动矢量。

在另一实施例中,缩放第一运动矢量以生成第二运动矢量,包括:应用第一组合函数,以生成第二运动矢量的x分量,并应用第二组合函数,以生成第二运动矢量的y分量;其中第一组合函数和第二组合函数均是基于第一起始位置、与第一起始位置相对应的当前块中的第二起始位置、第一运动矢量和目标投影;以及其中第一组合函数和第二组合函数组合目标投影、缩放与逆目标投影,目标投影是用于将2d帧中的第一数据投影到3d球体中的第二数据,缩放是将3d球体中选择的运动矢量缩放成3d球体中的已缩放运动矢量,以及逆目标投影是用于将已缩放运动矢量投影到2d帧中。在一实施例中,当目标投影对应于等角投影时,第一组合函数对应于第二组合函数对应于恒等函数,其中对应于与第一起始位置相关的第一纬度,对应于与第二起始位置相关的第二纬度。

附图说明

图1是根据等角投影将球体投影到矩形图像上的示例,其中每条经度线被映射到erp图像的垂直线。

图2是具有6个面的立方体,其中360度vr图像可以根据立方体投影而被投影到该立方体的6个面。

图3是八面体投影的示例,其中球体被投影到8个面的八面体的面上。

图4是二十面投影的示例,其中球体被投影到20个面的二十面体的面上。

图5是分段球体投影(segmentedsphereprojection,ssp)的示例,其中球体图像被映射到北极图像、南极图像和赤道段图像。

图6是旋转球体投影(rotatedsphereprojection,rsp)的示例,其中球体被分割成中间的270°x90°区域和剩余部分。rsp的这两个部分还可以在顶端侧和底端侧被拉伸以生成顶端和底端上具有椭圆形状边界的已变形部分。

图7a和图7b是由于球体的旋转引起的2d图像的变形的示例。

图8是在球体的较大圆圈上从点a到点b的球体的旋转的示例,其中较大圆圈对应于球体的表面上的最大圆圈。

图9是在球体的较小圆圈上从点a到点b的球体的旋转的示例,其中较大圆圈对应于小于球体的表面上的最大圆圈的圆圈。

图10是使用球体旋转模型推导用于2d投影图像的运动矢量的矢量。

图11是使用基于球体的旋转而推导的运动矢量(motionvector,mv)作为合并或高级运动矢量预测(advancedmotionvectorprediction,amvp)候选的示例。

图12是在不同摄像机位置处物体(即树)被投影到球体的表面上的示例。

图13是覆盖有移动流的模型的erp帧的示例,其中如果摄像前置点(forwardpoint)已知,则背景(即静态物体)的流可以被确定。

图14是基于视点平移的mv推导的示例性流程。

图15是用于不同投影方法的基于视点平移的示例性mv推导。

图16是与erp帧中的运动相关的变形的示例。

图17是用于3d球体中的mv缩放技术的示例性流程。

图18是2d帧中的mv缩放技术的示例性流程。

图19是erp帧中的mv缩放技术的示例性流程。

图20是erp帧中的mv缩放技术的示例性流程,其中当前块和相邻块在erp图像中被示出。

图21是cmp帧中的mv缩放技术的示例性流程,其中当前块和相邻块在cmp图像中被示出。

图22是ssp帧中的mv缩放技术的示例性流程,其中当前块和相邻块在ssp图像中被示出。

图23是八面体投影(octahedronprojection,ohp)帧中的mv缩放技术的示例性流程,其中当前块和相邻块在ohp图像中被示出。

图24是二十面体投影(icosahedronprojection,isp)帧中的mv缩放技术的示例性流程,其中当前块和相邻块在isp图像中被示出。

图25是等区域投影(equal-areaprojection,eap)帧中的mv缩放技术的示例性流程,其中当前块和相邻块在eap图像中被示出。

图26是已调节立方体投影(adjustedcubemapprojection,acp)帧中的mv缩放技术的示例性流程,其中当前块和相邻块在acp图像中被示出。

图27是旋转球体投影(rotatedsphereprojection,rsp)帧中的mv缩放技术的示例性流程,其中当前块和相邻块在rsp图像中被示出。

图28是圆柱体投影(cylindricalprojection,clp)帧中的mv缩放技术的示例性流程,其中当前块和相邻块在clp图像中被示出。

图29是根据本发明实施例的将球体的旋转应用于调节运动矢量来处理360度vr图像的系统的示例性流程图。

图30是根据本发明实施例的自视点的平移推导出运动矢量以处理360度vr图像的系统的示例性流程图。

图31是根据本发明实施例的将缩放应用于调节运动矢量来处理360度vr图像的系统的示例性流程图。

具体实施方式

以下描述为实施本发明的较佳方式。本描述的目的在于阐释本发明的一般原理,并非起限定意义。本发明的保护范围当视权利要求书所界定为准。

对于视频编解码中的传统的帧间预测,运动估计/运动补偿广泛应用于探索视频数据中的相关性,以便降低传输信息。传统的视频内容对应于2d视频数据,且运动估计和运动补偿技术通常假设平移运动。在下一代视频编解码中,更高级运动模型被考虑,例如,仿射模型(affinemodel)。然而,这些技术基于2d图像推导出3d运动模型。

在本发明中,运动信息在3d域中被推导出,从而更准确的运动信息可以被推导出。根据一方法,因为2d视频内容中的块变形,假设了球体的旋转。图7a和图7b示出了由于球体的旋转而引起的2d图像的变形的示例。在图7a中,3d球体700上的块701被移动以变成块702。当块701和已移动块702被映射到erp帧703时,这两个相应块在erp帧中变成块704和块705。虽然3d球体上的块(即701和702)对应于同一块,但这两个块(即704和705)在erp帧中具有不同的形状。换句话说,3d空间中的物体移动或旋转可能引起2d帧(即本示例中的erp帧)中的物体失真。在图7b中,区域711位于球体的表面710上。由于沿着路径713的球体的旋转,区域711被移动到区域714。由于球体的旋转,与区域711相关的运动矢量712被映射成运动矢量715。2d域720中的部分711-715的对应被示出为部分721-725。在另一示例中,对应于球体的表面730上的轨迹733的对应于713-725的部分分别被示出为部分733-735,且2d域740中的对应部分733-735的部分被绘示为743-745。在又一示例中,对应于球体的表面750上的轨迹753的对应于713-725的部分分别被示出为部分753-755,且2d域760中的对应于部分753-755的部分被绘示为763-765。

图8示出了从球体810上的较大圆圈820上的点a830到点b840的球体旋转800的示例,其中较大圆圈820对应于球体810的表面上的最大圆圈。旋转轴850如图8中的箭头所示。旋转角度为θa。

图9示出了从球体920上的较小圆圈910上的点a到点b的球体旋转900的示例,其中较小圆圈910对应于小于球体920的表面上的最大圆圈(即圆圈930)的圆圈。旋转的中点如图9中的点912所示。另一示例是从球体970的较小圆圈960上的点a到点b的球体旋转950。较大圆圈980(即最大圆圈)在图9中被示出。旋转轴990在图9中被示为箭头。

图10示出了使用球体旋转模型推导出用于2d投影图像的运动矢量。在图10中,示意图1010描述了根据本发明实施例的使用球体旋转模型推导出用于2d投影图像的运动矢量。位置a和位置b为2d投影图像中的两个位置。运动矢量mva从a指向a′。目标是查找用于位置b的运动矢量mvb。本发明使用2d到3d投影将2d投影图像投影到球体1020上。围绕着较小圆圈或较大圆圈的旋转被应用于从位置a旋转到位置b。根据选择的相同球体旋转,位置a’被旋转到位置b’。随后,逆投影被应用于3d球体,以将位置b’转换至2d帧1030。用于位置b的运动矢量可以根据mvb=b’–b被计算。运动矢量mva和运动矢量mvb为(x,y)域中的二维矢量。位置a、位置a’、位置b和位置b’为(x,y)域中的二维坐标。记号记号记号和记号为(θ,φ)域中的三维坐标。

推导mv可以被用作候选,以用于使用合并模式或amvp模式的视频编解码,其中,如高效视频编解码(highefficiencyvideocoding,hevc)中所公开,合并模式和amvp模式均是预测性地编解码块或块的运动信息的技术。当以合并模式编解码块时,当前块使用由合并索引表示的块的运动信息,合并索引指向合并候选列表中所选择的候选。当以amvp模式编解码块时,当前块的运动矢量由amvp索引所表示的预测子进行预测,amvp索引指向amvp候选列表中所选择的候选。图11示出了使用基于球体的旋转而推导的mv作为合并候选或amvp候选。在图11中,用于推导合并候选的相邻块的布局1110被示出以用于块1112,其中相邻块包括空间相邻块a0、空间相邻块a1、空间相邻块b0、空间相邻块b1和空间相邻块b2,以及时间相邻块col0或时间相邻块col1。对于2d帧中的当前块1120,来自于块a0和块b0的运动矢量可以被用于推导当前块的运动候选。如上所公开,根据球体的旋转,相邻块a0的运动矢量mva可以被用于推导当前块的相应运动矢量mva’。同理,根据球体的旋转,相邻块b0的运动矢量mvb可以被用于推导当前块的相应运动矢量mvb’。运动矢量mva’和运动矢量mvb’可以被包括在合并候选列表或amvp候选列表中。

在本发明中,公开了基于视点(viewpoint)的平移的运动矢量推导。图12示出了在不同摄像机位置处物体(即树)被投影到球体的表面上的示例。在摄像机位置a处,树被投影到球体1210上,以形成树的图像1240。在前置位置b处,树被投影到球体1220上,以形成树的图像1250。对应于摄像机位置a的树的图像1241也在球体1220上被示出以用于比较。在又一前置位置c处,树被投影到球体1230上,以形成树的图像1260。对应于摄像机位置a的树的图像1242和对应于摄像机位置b的树的图像1251也在球体1220上被示出以用于比较。在图12中,对于沿着直线移动的摄像机所捕获的视频,3d空间中摄像机的移动方向(如图12中三个不同的摄像机位置的箭头1212、箭头1222和箭头1232所表示)可以由纬度坐标与经度坐标表示,其中对应于运动矢量与3d球体的交叉点。点被投影到2d目标投影平面上,并且该点成为前置点。

图13是覆盖有移动流(movingflow)的模型的erp帧的示例,其中如果摄像前置点已知,则背景(即静态物体)的流可以被确定。这些流如箭头所示。移动流对应于基于一个方向上所移动的摄像机的视频内容的移动方向。摄像机的移动引起静态背景物体的相对移动,由摄像机所捕获的2d帧上的背景物体的移动方向可以被表示为移动流。图14示出了基于视点平移的mv推导的示例性流程。在图14中,物体1410被投影到球体1420,以形成对应于摄像机位置1424的球体的表面上的图像1422。在摄像机位置1434处,物体1410被投影到球体1430,以形成球体的表面上的图像1432。在球体1430的表面上,物体的相应位置被示出在位置1423处。基于视点平移推导运动矢量的流程如下所示:

·找出摄像机的前置点1440。

·计算2d帧中的移动流1450(即位于每个像素处的切线方向)

·通过使用相邻块的mv确定当前块的运动矢量

a.如箭头1460所示,相邻块的mv可以被用于确定摄像机的平移

b.如箭头1470所示,摄像机的平移可以被用于确定当前块的mv

基于视点平移的mv推导可以被应用于不同投影方法。2d帧中的移动流可以被映射到3d球体。如图15所示,是3d球体1510上的移动流,其中前置点和两个不同的移动流线(即1512和1514)被示出。与erp1520相关的3d球体上的移动流在图15中被示出,其中移动流被示出以用于erp帧1526。与cmp1530相关的3d球体上的移动流在图15中被示出,其中移动流被示出以用于2x3布局格式中的cmp帧1536的六个面。与ohp1540相关的3d球体上的移动流在图15中被示出,其中移动流被示出以用于ohp帧1546的八个面。与isp1550相关的3d球体上的移动流在图15中被示出,其中移动流被示出以用于isp帧1556的二十个面。与ssp1560相关的3d球体上的移动流在图15中被示出,其中移动流被示出以用于ssp帧1566的分割面。

如前面所述,存在不同的映射,例如erp、cmp、ssp、ohp和isp,以自3d球体投影到2d帧。当3d球体中的物体运动时,2d帧中的相应物体可能变形。变形是基于投影类型的。长度、角度和面积在2d帧中的所有映射位置可以不再保持一致。3d球体上的mv缩放技术被公开,以通过缩放3d球体上的mv而执行变形,以最小化投影类型对变形的影响。2d帧上的mv缩放技术也被公开,其可以通过将投影、缩放mv和逆投影组合成单个功能而直接应用于2d帧。

图16示出了与erp帧中的运动相关的变形的示例。在图16中,沿着三个纬度线的三个运动矢量(即1612、1614和1616)在3d球体1610的表面上被示出,其中这三个运动矢量具有大约相同的长度。如果3d球体的表面被展开成2d平面1620,则三个运动矢量(1622、1624和1626)保持其相等长度的特性。对于erp帧,展开图像需要被拉伸(stretch),其中更多拉伸在更高纬度中被需要。因此,如图16所示,三个运动矢量(1632、1634和1636)具有不同长度。如果具有运动矢量1634的相邻块用于当前块(即位于位置1632处的运动矢量),则在被用于编解码之前,运动矢量1634必须被适当地缩放,例如合并索引或amvp索引。图16中的示例示出了mv缩放的需要。

下面公开了3d球体中的mv缩放技术的示例性流程。假设mva的起点为a,mva的终点为a’。我们可以通过如下流程预测位于点b处的运动矢量mvb:

1.如图17所示,将a,a’和b自2d帧1710映射到3d球体1720。

设映射函数为其将位于2d帧中(x,y)处的像素映射到

2.计算δθ和

3.将缩放函数scaleθ()和应用于δθ和

4.根据如下公式计算

5.将自3d球体1720映射到2d帧1730,以产生b’。

设逆函数为其将位于3d球体上处的像素映射到2d帧。

6.根据mvb=b’-b,mvmvb可以被确定。

在上述流程中,δθ和的缩放函数分别为如下所示,为缩放函数的一些示例。

示例1:

因此,δθ′=δθ;

示例2:

示例3:缩放函数的一般形式-基于投影

示例4:缩放函数的一般形式-基于投影

通过将投影函数、缩放函数和逆投影函数组合到单个函数f(a,b,mva,投影类型),3d域中的mv缩放也可以在2d域中被执行。因此,3d与2d之间的映射可以被跳过。

mvb=(xmvb,ymvb)=f(a,b,mva,投影类型)

xmvb=fx(a,b,mva,投影类型)

ymvb=fy(a,b,mva,投影类型)

在上述等式中,fx(a,b,mva,投影类型)为生成xmvb的单个函数,fy(a,b,mva,投影类型)为生成ymvb的单个函数。图18示出了2d帧中的mv缩放的示例性流程。2d帧1810中的两个块(即a和b)被示出。块a中的位置a的运动矢量被标记。在图18中,与mva相关的位置a的终止位置被标记为a’。块a中的位置b的运动矢量被标记。在图18中,与mvb相关的位置b的终止位置被标记为b’。投影函数(即前置投影1830)、3d球体1820中的缩放函数和逆投影函数(即逆投影1840)的步骤可以根据上述等式被组合成单个函数。

如图19所示,为erp帧中的mv缩放的示例。在图19中,3d球体1910的表面被展开成2d平面1920。对于erp帧1930,展开图像需要被拉伸,使得所有纬度线具有相同的长度。基于erp的特征,当其更靠近北极或南极时,水平线的长度被扩大更多。在erp帧中,相邻块1932具有运动矢量mv1。运动矢量mv2需要根据mv1被推导出,以用于当前块1934。推导运动矢量可以被用于编解码当前块。例如,推导块可以被用作合并候选或amvp候选。由于相邻块位于3d球体上的不同位置处,在其被用于编解码当前块之前,与相邻块相关的运动矢量需要被缩放。具体地,由于相邻块位于更高纬度,相比于当前块的运动矢量,相邻块的运动矢量在x方向上被拉伸更多。因此,在其用于当前块之前,mv1的x分量需要被向下缩放。mv缩放流程1940如图19所示,其中位于相邻块的位置a处的运动矢量被缩放成mv2,并被用于编解码当前块。在本发明的一实施例中,公开了保持运动距离的缩放函数,其中mv2为mv1,θ2,的函数:

mvy2=mvy1

在上述等式中,对应于相邻块中的位置a的经度和纬度,对应于当前块中的位置b的经度和纬度。位置a和位置b可以对应于各自块的中心,或者各自块的其他位置。推导运动矢量的y分量与mv1的y分量相同。换句话说,y分量的缩放函数为恒等函数。

其他投影的mv缩放也被公开了。在图20中,erp的mv缩放被公开,其中erp图像2010中的当前块2012和相邻块2014被示出。相邻块具有运动矢量mv1。来自于相邻块的mv1被用于推导当前块的运动矢量mv2。根据本发明,根据mv2=f(mv1,x1,y1,x2,y2,erp),使用缩放函数,来自于相邻块的运动矢量mv1需要被缩放,其中(x1,y1)对应于相邻块中位置a的坐标(x,y),(x2,y2)对应于当前块中位置b的坐标(x,y)。

在图21中,cmp的mv缩放被公开,其中cmp图像2110中的当前块2112和相邻块2114被示出。相邻块具有运动矢量mv1。来自于相邻块的mv1被用于推导当前块的运动矢量mv2。根据本发明,根据mv2=f(mv1,x1,y1,x2,y2,cmp),使用缩放函数,来自于相邻块的运动矢量mv1需要被缩放。

在图22中,ssp的mv缩放被公开,其中ssp图像2210中的当前块2212和相邻块2214被示出。相邻块具有运动矢量mv1。来自于相邻块的mv1被用于推导当前块的运动矢量mv2。根据本发明,根据mv2=f(mv1,x1,y1,x2,y2,ssp),使用缩放函数,来自于相邻块的运动矢量mv1需要被缩放。

在图23中,ohp的mv缩放被公开,其中ohp图像2310中的当前块2312和相邻块2314被示出。相邻块具有运动矢量mv1。来自于相邻块的mv1被用于推导当前块的运动矢量mv2。根据本发明,根据mv2=f(mv1,x1,y1,x2,y2,ohp),使用缩放函数,来自于相邻块的运动矢量mv1需要被缩放。

在图24中,isp的mv缩放被公开,其中isp图像2410中的当前块2412和相邻块2414被示出。相邻块具有运动矢量mv1。来自于相邻块的mv1被用于推导当前块的运动矢量mv2。根据本发明,根据mv2=f(mv1,x1,y1,x2,y2,isp),使用缩放函数,来自于相邻块的运动矢量mv1需要被缩放。

在图25中,eap的mv缩放被公开,其中eap图像2510中的当前块2512和相邻块2514被示出。相邻块具有运动矢量mv1。来自于相邻块的mv1被用于推导当前块的运动矢量mv2。根据本发明,根据mv2=f(mv1,x1,y1,x2,y2,eap),使用缩放函数,来自于相邻块的运动矢量mv1需要被缩放。

在图26中,acp的mv缩放被公开,其中acp图像2610中的当前块2612和相邻块2614被示出。相邻块具有运动矢量mv1。来自于相邻块的mv1被用于推导当前块的运动矢量mv2。根据本发明,根据mv2=f(mv1,x1,y1,x2,y2,acp),使用缩放函数,来自于相邻块的运动矢量mv1需要被缩放。

在图27中,rsp的mv缩放被公开,其中rsp图像2710中的当前块2712和相邻块2714被示出。相邻块具有运动矢量mv1。来自于相邻块的mv1被用于推导当前块的运动矢量mv2。根据本发明,根据mv2=f(mv1,x1,y1,x2,y2,rsp),使用缩放函数,来自于相邻块的运动矢量mv1需要被缩放。

除了上述的这些投影之外,圆柱体投影也被用于将3d球体投影到2d帧中。如图28所示,概念上,通过将圆柱体2820包裹在球2830周围,并通过该球将光线投射到圆柱体上,圆柱体投影被创建。圆柱体投影将子午线(meridian)表示为直的、间隔均匀的垂直线,以及将平行线表示为直的水平线。如其在球上一样,子午线和平行线交叉于直角。根据光源的位置,不同圆柱体投影(cylindricalprojection,clp)被生成。在图28中,clp的mv缩放被公开,其中,clp图像2810中的当前块2812和相邻块2814被示出。相邻块具有运动矢量mv1。来自于相邻块的mv1被用于推导当前块的运动矢量mv2。根据本发明,根据mv2=f(mv1,x1,y1,x2,y2,clp),使用缩放函数,来自于相邻块的运动矢量mv1需要被缩放。

图29示出了根据本发明实施例的将球体旋转应用于调节运动矢量以用于处理360度虚拟现实图像的系统的示例性流程图。流程中所示的步骤可以被实现为编码器侧处的一个或多个处理器(例如,一个或多个cpu)上可执行的程序代码。流程图中所示的步骤也可以基于硬件被实现,例如,用于执行流程图中的步骤的一个或多个电子设备或处理器。根据本方法,在步骤2910中,接收2d帧中的当前块的输入数据,其中2d帧是自3d球体投影的。输入数据可以对应于待编码的2d帧中的像素数据。在步骤2920中,确定与2d帧中的相邻块相关的第一运动矢量,其中第一运动矢量自相邻块中的第一起始位置指向2d帧中的第一终止位置。在步骤2930中,根据目标投影,将第一运动矢量投影到3d球体上。在步骤2940中,将3d球体中的第一运动矢量沿着3d球体的表面上的旋转圆圈围绕着旋转轴进行旋转,以生成3d球体中的第二运动矢量。根据逆目标投影,将3d球体中的第二运动矢量映射回到2d帧。在步骤2960中,使用第二运动矢量,编码或解码2d帧中的当前块。

图30示出了根据本发明实施例的自视点的平移推导出运动矢量以用于处理360度虚拟现实图像的系统的示例性流程图。根据另一方法,在步骤3010中,接收两个2d帧,其中这两个帧是使用目标投影而自对应于两个不同视点的3d球体投影的,当前块和相邻块位于这两个2d帧中。在步骤3020中,基于这两个2d帧,确定摄像机的前置点。在步骤3030中,在这两个2d帧中确定移动流。在步骤3040中,基于与相邻块相关的第一运动矢量,确定摄像机的平移。在步骤3050中,基于摄像机的平移,推导出与当前块相关的第二运动矢量。在步骤3060中,使用第二运动矢量,编码或解码2d帧中的当前块。

图31示出了根据本发明实施例的将缩放应用于调节运动矢量以用于处理360度虚拟现实图像的系统的示例性流程图。根据本方法,在步骤3110中,接收2d帧中的当前块的输入数据,其中2d帧是根据目标投影自3d球体投影的。在步骤3120中,确定与2d帧中的相邻块相关的第一运动矢量,其中第一运动矢量自相邻块中的第一起始位置指向2d帧中的第一终止位置。在步骤3130中,缩放第一运动矢量,以生成第二运动矢量。在步骤3140中,使用第二运动矢量,编码或解码2d帧中的当前块。

本发明所示的流程图用于示出根据本发明的视频的示例。在不脱离本发明的精神的情况,本领域的技术人员可以修改每个步骤、重组这些步骤、将一个步骤进行分离或者组合这些步骤而实施本发明。

上述说明被呈现,以使得本领域的普通技术人员能够在特定应用程序的上下文及其需求中实施本发明。对本领域技术人员来说,所描述的实施例的各种变形将是显而易见的,并且本文定义的一般原则可以应用于其他实施例中。因此,本发明不限于所示和描述的特定实施例,而是将被赋予与本文所公开的原理和新颖特征相一致的最大范围。在上述详细说明中,说明了各种具体细节,以便透彻理解本发明。尽管如此,将被本领域的技术人员理解的是,本发明能够被实践。

如上所述的本发明的实施例可以在各种硬件、软件代码或两者的结合中实现。例如,本发明的实施例可以是集成在视频压缩芯片内的电路,或者是集成到视频压缩软件中的程序代码,以执行本文所述的处理。本发明的一个实施例也可以是在数字信号处理器(digitalsignalprocessor,dsp)上执行的程序代码,以执行本文所描述的处理。本发明还可以包括由计算机处理器、数字信号处理器、微处理器或现场可编程门阵列(fieldprogrammablegatearray,fpga)所执行的若干函数。根据本发明,通过执行定义了本发明所实施的特定方法的机器可读软件代码或者固件代码,这些处理器可以被配置为执行特定任务。软件代码或固件代码可以由不同的编程语言和不同的格式或样式开发。软件代码也可以编译为不同的目标平台。然而,执行本发明的任务的不同的代码格式、软件代码的样式和语言以及其他形式的配置代码,不会背离本发明的精神和范围。

本发明以不脱离其精神或本质特征的其他具体形式来实施。所描述的例子在所有方面仅是说明性的,而非限制性的。因此,本发明的范围由附加的权利要求来表示,而不是前述的描述来表示。权利要求的含义以及相同范围内的所有变化都应纳入其范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1