CN109691104A - 沉浸式视频编解码中的帧间预测的方法及装置 - Google Patents

沉浸式视频编解码中的帧间预测的方法及装置 Download PDF

Info

Publication number
CN109691104A
CN109691104A CN201880002044.4A CN201880002044A CN109691104A CN 109691104 A CN109691104 A CN 109691104A CN 201880002044 A CN201880002044 A CN 201880002044A CN 109691104 A CN109691104 A CN 109691104A
Authority
CN
China
Prior art keywords
block
dimensional
sphere
projection
motion vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201880002044.4A
Other languages
English (en)
Other versions
CN109691104B (zh
Inventor
施正轩
林建良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MediaTek Inc
Original Assignee
MediaTek Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MediaTek Inc filed Critical MediaTek Inc
Publication of CN109691104A publication Critical patent/CN109691104A/zh
Application granted granted Critical
Publication of CN109691104B publication Critical patent/CN109691104B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders

Abstract

本发明公开了一种处理360度虚拟现实图像的方法及装置。根据一个方法,用来进行2D帧的帧间预测的沿着球体上的圆圈的变形是从3D空间投影而来。在2D帧中的一个源区块投影至3D球体。在3D球体上的源区块接着旋转至一目的区块,其将投影回2D帧并用作帧间预测子。在一个实施例中,旋转轴是基于与在参考图像中的样本或者区块相关的运动向量来获得的。在另一个实施例中,旋转轴是基于与在当前图像中的已处理的样本或者区块相关的运动向量来获得的。依据另一方法,变形是从视点位移而获得。

Description

沉浸式视频编解码中的帧间预测的方法及装置
优先权声明
本申请要求在2017年06月23日提出的申请号为62/523,883的美国临时专利申请以及在2017年06月23日提出的申请号为62/523,885的美国临时专利申请的优先权。上述美国临时专利申请整体以引用方式并入本文中。
技术领域
本发明涉及360度虚拟现实(virtual reality,VR)图像/序列的图像/视频处理或编解码。具体而言,本发明涉及以不同投影格式推导出用于三维(three-dimensional,3D)内容的帧间预测。
背景技术
360度视频,也称为沉浸式视频,是一种新兴技术,其可以提供“身临其境的感觉”。通过用覆盖全景视图的环绕式场景来环绕用户,特别是360度全景,以实现沉浸式感觉。通过立体渲染可以进一步改善“身临其境的感觉”。因此,全景视频广泛应用于虚拟现实(Virtual Reality,VR)应用中。
沉浸式视频涉及使用多个摄像机捕获情景,以覆盖全景视图,例如,360度视场。沉浸式摄像机通常使用用于捕获360度视场的全景摄像机或摄像机集。通常,两个或以上摄像机被用于沉浸式摄像机。所有视频必须同时被获取,并且该情景的单个段(也称为单个视角)被记录。此外,摄像机集通常用于水平地捕获视图,而其他摄像机设计是可能的。
使用360度球面全景摄像机或用于覆盖360度周围所有视场的多个图像,360度VR图像可以被捕获。使用传统图像/视频处理设备,3D球面图像很难处理或存储。因此,使用3D到2D投影方法,360度VR图像通常被转换成2D格式。例如,等角投影(equirectangularprojection,ERP)和立方体投影(cubemap projection,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,et al.,“Algorithm descriptions of projection formatconversion and video quality metrics in 360Lib”,Joint Video Exploration Team(JVET)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,6th Meeting:Hobart,AU,31 March–7 April 2017,Document:JVET-F1003)所述,ERP格式和CMP格式均已被包括在投影格式转换中,其正被考虑用于下一代视频编解码。除了ERP格式和CMP格式,存在不同的其他VR投影格式,例如,已调节立方体投影(Adjusted Cubemap Projection,ACP)、等区域投影(Equal-Area Projection,EAP)、八面体投影(Octahedron Projection,OHP)、二十面体投影(Icosahedron Projection,ISP)、分段球体投影(Segmented SphereProjection,SSP)和旋转球体投影(Rotated Sphere Projection,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(Zhang et al.,“AHG8:Segmented Sphere Projection for 360-degree video”,Joint Video Exploration Team(JVET)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,5th Meeting:Geneva,CH,12–20 January 2017,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帧中的目的位置。根据目标投影,将2D帧中的源位置、源区块、目的位置投影到3D球体上。将3D球体中的源区块沿着3D球体的表面上的旋转圆圈围绕着旋转轴进行旋转,以生成3D球体中的变形的参考区块。根据逆目标投影,将3D球体中的变形的参考区块映射回到2D帧。使用2D帧中的变形的参考区块,编码或解码2D帧中的当前区块。
在一实施例中,旋转圆圈对应于3D球体的表面上的最大圆圈。在另一实施例中,旋转圆圈小于3D球体的表面上的最大圆圈。
在一实施例中,在3D球体的表面上的围绕着旋转轴的该旋转圆圈是基于该3D球体的源位置与目的位置来决定。举例来说,与该旋转圆圈对应的旋转轴与旋转角度θa是基于而导出,并且其中分别对应在该三维球体表面上的该源位置与该目的位置。在另一个实施例中,与该旋转圆圈对应的旋转轴与旋转角度是基于在参考帧中的多个运动向量导出。举例来说,与该旋转圆圈对应的旋转轴与旋转角度θ′是基于如下公式导出:其中si对应于该参考帧中的一个源区块,mv(si)对应于源区块si的运动向量,对应于通过围绕该旋转轴旋转在该源区块si的一个位置该旋转角度θ′导致的一个运动向量,并且||·||F是F-范数。在另一个实施例中个,与该旋转圆圈相关的旋转轴与旋转角度是基于在当前帧中已编解码区域的多个运动向量而导出的。举例来说,与该旋转圆圈相关的该旋转轴与旋转角度θ′是基于如下公式导出:其中si对应于该当前帧中的该已编解码区域的一个源区块,mv(si)对应于源区块si的运动向量,对应于通过围绕该旋转轴旋转在该源区块si的一个位置该旋转角度θ′导致的一个运动向量。
与该旋转圆圈相关的旋转轴是预先定义的、或者该旋转轴是在比特流中被指示以指示旋转路径。
所述目标投影对应于等角投影、立方体投影、已调节立方体投影、等区域投影、八面体投影、二十面体投影、分段球体投影、旋转球体投影或圆柱体投影。
根据另一方法,接收对应两个不同视点的两个二维帧,其中该两个二维帧是使用目标投影而自三维球体投影而来的,且当前区块、该当前区块的预测区块和相邻区块位于该两个二维帧中;基于该两个二维帧,确定摄像机的前置点;在该两个二维帧中确定多个移动流;通过参考基于该摄影机前置点以及多个移动流的该相邻区块的一个或者多个第一运动向量、或者依据该摄影机的速度与背景的深度,来导出与该预测区块相关的一个或者多个第二运动向量;基于该预测区块与该一个或者多个第二运动向量,导出帧间预测区块;以及使用该帧间预测区块,编码或解码该二维帧中的该当前区块。
上述导出与该预测区块相关的一个或者多个第二运动向量的步骤包含基于与该相邻区块相关的该一个或者多个第一运动向量决定摄影机的平移;并且与该预测区块相关的该一个或者多个第二运动向量是基于该摄影机的平移与该多个移动流从该一个或者多个第一运动向量而导出的。
附图说明
图1是根据等角投影将球体投影到矩形图像上的示例,其中每条经度线被映射到ERP图像的垂直线。
图2是具有6个面的立方体,其中360度VR图像可以根据立方体投影而被投影到该立方体的6个面。
图3是八面体投影的示例,其中球体被投影到8个面的八面体的面上。
图4是二十面投影的示例,其中球体被投影到20个面的二十面体的面上。
图5是分段球体投影(segmented sphere projection,SSP)的示例,其中球体图像被映射到北极图像、南极图像和赤道段图像。
图6是旋转球体投影(rotated sphere projection,RSP)的示例,其中球体被分割成中间的270°x90°区域和剩余部分。RSP的这两个部分还可以在顶端侧和底端侧被拉伸以生成顶端和底端上具有椭圆形状边界的已变形部分。
图7是由于移动发生在ERP帧中的变形的举例说明,其中北极映射至该帧顶端的水平线,赤道映射到该帧中部的水平线。
图8是针对ERP帧由在3D球体上的移动导致的变形的举例说明。
图9A至图9I是使用多种投影的2D帧投影变形的举例说明。图9A是关于ERP帧,图9B是关于CMP帧,图9C是关于SSP帧,图9D是关于八面体投影(Octahedron Projection,OHP)帧;图9E是关于二十面体投影(Icosahedron Projection,ISP)帧,图9F是关于等区域投影(Equal-Area Projection,EAP)帧,图9G是关于已调节立方体投影(Adjusted CubemapProjection,ACP)帧,图9H是关于RSP帧,图9I是关于圆柱体投影(CylindricalProjection,CLP)帧。
图10是基于旋转的考量到变形的帧间预测的举例说明。
图11是源区块经由不同的路径移动至目的位置的举例说明。由于不同的路径,在目的位置的区块可具有不同的方向。
图12A是一种以姿态角(yaw,pitch and roll rotation)来描述在球体上的3D移动的举例说明,其中如三个坐标轴所描述的移动,源区块移动至目的位置。
图12B是沿着一个大圆圈旋转的在球体上3D移动的举例说明,其中源区块沿着一个大圆圈移动至目的位置。
图12C是沿着一个小圆圈旋转的在球体上3D移动的举例说明,其中源区块沿着一个小圆圈移动至目的位置。
图12D绘示了描述在球体的表面物体移动的另一种方式,其中通过围绕旋转轴在一个大圆圈上旋转,源区块首先移动至目的区块,然后目的区块围绕另一旋转轴旋转。
图13是基于旋转的考量到变形的帧间预测的处理的举例说明。
图14中绘示了在决定了旋转角度与旋转坐标轴之后,通过以旋转角度与旋转轴旋转在源区块中的样本以产生目的区块的样本的举例说明。
图15是比较依据本发明的实施例的基于旋转的考量到变形的帧间预测的示例性处理程序与传统的帧间预测。
图16比较了基于旋转的两种不同的变形方法,其中上半部分对应于沿着一个大圆圈旋转的情况,下半部分对应于沿着一个新旋转轴旋转的情况。
图17绘示了一种使用与参考图像的多个区块相关的多个运动向量获得旋转轴的方法。
图18绘示了一种使用与当前图像的多个已处理区块相关的多个运动向量获得旋转轴的方法。
图19A示出了基于摄影机的平移的变形的处理的举例说明,其中在不同摄像机位置处,物体(即树)被投影到球体的表面。
图19B举例说明了针对不同的摄影机位置物体被投影至2D帧的位置的举例说明。
图20是覆盖有移动流(moving flow)的模型的ERP帧的示例,其中如果摄像前置点已知,则背景(即静态物体)的流可以被确定。
图21中,绘示了以2x3布局格式的在2D帧中的针对CMP帧的移动流。
图22是使用基于摄影机的平移的变形来进行帧间进一步预测(Inter moreprediction)的举例说明。
图23是使用基于摄影机的平移的变形来进行帧间进一步预测的示例性流程图。
图24是针对多种投影格式,在2D帧中的移动流的举例说明。
图25示出了根据本发明实施例的系统将球体旋转应用于变形参考区块,以进行帧间预测的方法的示例性流程图。
图26示出了根据本发明实施例的系统自摄影机的平移推导出参考区块以用于帧间预测的示例性流程图。
具体实施方式
以下描述为实施本发明的较佳方式。本描述的目的在于阐释本发明的一般原理,并非起限定意义。本发明的保护范围当视权利要求书所界定为准。
对于视频编解码中的传统的帧间预测,运动估计/运动补偿广泛应用于探索视频数据中的相关性,以便降低传输信息。传统的视频内容对应于2D视频数据,且运动估计和运动补偿技术通常假设平移运动。在下一代视频编解码中,更高级运动模型被考虑,例如,仿射模型(affine model)。然而,这些技术基于2D图像推导出3D运动模型。
当从3D空间投影至2D帧时,针对多种投影将发生变形。举例来说,如图7所示,ERP帧720是通过将3D球体710投影至矩形帧而产生的,其中北极712映射至在该帧上部的水平线722,并且赤道714映射至在该帧中间的水平线724。如图7所示,在北极的一个单独的点与赤道都映射至具有相同长度的水平线。因此,针对靠近北极的物体,ERP投影在经度方向大幅度地拉伸物体。映射730绘示了在ERP中变形的效果,其中靠近北极或者南极的圆圈映射至部分重叠的区域,而在帧的中间的圆圈保持圆圈。
图8是针对ERP帧由在3D球体上的移动导致的变形的举例说明。在图8中,3D球体800上的区块801被移动以变成区块802。当区块801和已移动区块802被映射到ERP帧803时,这两个相应区块在ERP帧中变成区块804和区块805。虽然3D球体上的区块(即801和802)对应于同一块,但这两个区块(即804和805)在ERP帧中具有不同的形状。
图9A至图9I是使用多种投影的2D帧投影变形的举例说明。图9A绘示了ERP帧910,其中当区块移动至靠近北极的位置914时,方形区块912发生变形。图9B绘示了CMP帧920,其中当区块移动至位置924时,方形区块922发生变形。图9C绘示了SSP帧930,其中当区块移动至位置934时,方形区块932发生变形。图9D绘示了OHP帧940,其中当区块移动至位置944时,方形区块942发生变形。图9E绘示了ISP帧950,其中当区块移动至位置954时,方形区块952发生变形。图9F绘示了EAP帧970,其中当区块移动至位置974时,方形区块972发生变形。图9G绘示了ACP帧980,其中当区块移动至位置984时,方形区块982发生变形。图9H绘示了RSP帧980,其中当区块移动至位置984时,方形区块982发生变形。图9I绘示了圆柱体投影(Cylindrical Projection,CLP)帧990,其中当区块移动至位置994时,方形区块992发生变形。
如上所述,在3D空间内的物体移动将导致从该3D球体投影至2D帧内的物体变形。为了克服变形带来的问题,提出VR视频处理的帧间预测的多种方法。
方法1–基于旋转的变形
一种处理上述帧间预测变形问题的方法是将2D帧中的区块投影回3D球体。上述区块是在优先用来运动补偿当前区块的参考图像中的对应区块。在传统的帧间预测中,对应的区块在2D帧中依据指向参考区块的运动向量移动,并且上述参考区块是用来作为当前区块的帧间预测子。依据本发明的方法,区块在3D球体的表面移动至目的位置。具体来说,区块通过旋转球体来移动至新的位置。最终,在3D球体表面的物体移动是投影回2D帧。图10是基于旋转的考量到变形的帧间预测的举例说明。在图10中,区块1013对应在2D帧1010中的源区块。源区块的运动向量1015从源区块1013的位置sc1012指向目的位置dc1014。依据本发明的方法,在2D帧中的数据依据对应投影类型投影至3D球体。举例来说,如果2D帧是从ERP产生的,ERP投影用来将2D帧中的数据投影至3D球体。据此,在2D帧中的位置sc1012与位置dc1014分别投影至在3D球体1020中的位置1022与1024。在3D空间中,位置1022旋转至位置1024。相同的旋转也应用至在源区块1013中的其他位置,以产生目的区块。使用逆ERP投影,在3D球体中的目的区块中的数据接着投影回2D帧。
图11是源区块经由不同的路径移动至目的位置的举例说明。由于不同的路径,在目的位置的区块可具有不同的方向。在3D球体1110中,源区块1112经由具有稍右转的路径1113移动至目的位置1114,在3D球体1120中,源区块1122经由直路径1123移动至目的位置1124,在3D球体1130中,源区块1132经由具有稍左转的路径1133移动至目的位置1134。
如图12A所示,一种用来描述在球体上的3D移动的方式是姿态角(yaw,pitch androll rotation)1210,其中源区块1212移动至目的位置1214。如图12B所示,偏航角(yaw)1216、俯视角(pitch)1217、滚转角(roll)1218的坐标轴沿着一个大圆圈1221旋转,源区块1222移动至目的位置1224。图12B绘示了旋转1226。大圆圈1221对应于在球体1220上的最大圆圈。图12C是球体1230的旋转的另一举例说明,该旋转在球体1235上在一个小圆圈上从源区块1232至目的区块1234,其中小圆圈1233对应于小于在球体1235的表面上的最大圆圈(即圆圈1236)的圆圈。旋转的中心点是在图12C中绘示的点1237。在球体1245的一个小圆圈1243上,旋转1240从源区块1242至目的区块1244,其中小圆圈1243对应于在球体1245的表面上的一个小于最大圆圈(例如圆圈1246)的圆圈。在图12C中,旋转轴绘示为箭头1247。图12D绘示了描述在球体1250的表面物体移动的另一种方式,其中通过围绕轴-a1256在球体1250的大圆圈1253上旋转,源区块1252首先移动至目的区块1254。在目的区块到达最终位置之后,目的区块围绕轴-b1257旋转,其中轴-b是从大圆圈1258的中心至目的区块1254的中心。
图13是基于旋转的考量到变形的帧间预测的处理的举例说明。在图13中,区块1313对应于在2D帧1310中的源区块。源区块的运动向量1315从源区块1313中的位置sc1312指向目的位置dc1314。依据本方法,在2D帧中的数据依据一个对应的投影类型投影至3D球体。举例来说,如果2D帧是从ERP产生,ERP投影用来将2D帧中的数据投影至3D球体。据此,在2D帧中的位置sc1312与位置dc1314分别投影至在3D球体1320中的位置1322与1324。在3D空间中,位置1322围绕大圆圈1326旋转至位置1324。相同的旋转也应用至源区块1313中的其他位置,以产生目的区块。在图13中,从的旋转角θ是依据如下等式计算:
旋转坐标轴是通过如下等式计算:
在决定了旋转角度θ与旋转坐标轴之后,在图14中绘示了在2D帧中的区块1410中的样本smn。样本smn映射至在3D球体1420中的1422。样本围绕着轴旋转θ以依据罗德里格斯旋转公式(Rodrigues' rotation formula)获得在目标位置的1424:
如图12D所示,如果在目的位置的区块进一步围绕轴-b旋转(即φ≠0),样本将进一步旋转。否则,样本是在3D球体的最终旋转版本。
依据本发明的方法,如图15所示,在3D球体1510的旋转的样本1512投影回在2D帧中的变形区块1514,并且作为针对源区块1516的一个新的帧内预测子使用。源区块1516可以是在参考图像中优先用于针对当前区块进行运动补偿的对应区块。依据本发明,目的区块1514对应于用于帧间预测的变形的参考区块。在传统的帧间预测中,源区块1526依据指向参考区块1524的运动向量在2D帧中移动,并且参考区块是用来作为当前区块的帧间预测子。与传统的方式相比较,在2D帧中的源区块1526的帧间预测子1522保持其形状。在3D空间1520中,帧间预测子1522变形。因此,由于在3D空间中的移动导致的变形,传统的帧间预测子不能正常地执行。
方法2–基于旋转的变形
在本文描述中,提出了另一种基于旋转的变形。在方法1中,旋转轴是围绕大圆圈的法线(normal)(即)。然而,在方法2中,使用了一个新的旋转轴图16比较了基于旋转的两种不同的变形方法。上半部分对应于方法1中的情况,其中在2D帧1610中的源区块1612映射至在3D球体1620中的区块1622。在2D帧中的运动向量1616映射至3D球体1620,来决定目的区块1624的位置。源区块1622接着沿着具有旋转轴的大圆圈1626旋转,以产生目的区块1624。目的区块1624接着被映射回2D帧1610,以产生变形区块1614,作为源区块1612的帧间预测子。
在图16中,下半部分对应依据方法2的变形,其中在2D帧1630中的源区块1632映射至在3D球体1640中的区块1642。在2D帧中的运动路径1636映射至3D球体1640,来决定目的区块1644的位置。源区块1642接着沿着具有新旋转轴的小圆圈1646旋转,以产生目的区块1644。目的区块1644接着被映射回2D帧1630,以产生变形区块1634,作为源区块1632的帧间预测子。可以观察到,在图16的上半部分中的举例说明(即沿着大圆圈旋转)是在图16的下半部分的举例说明的一种特殊情况。
在图16中,需要决定旋转的小圆圈或者轴。在图17中绘示了一种获得旋转轴的方法,其中源区块1712的区块中心以及从sc指向dc的区块的运动向量(图示中绘示为mv)已知。sc与dc分别映射至3D球体1720中的决定在3D球体中的从的运动向量。映射至3D球体的运动向量可应用至2D帧中的所有的源区块,如3D球体1730所示。基于执行准则选择一个旋转轴,其旋转运动向量mv(si)至其中对应于旋转轴并且θ′对应于旋转角度。对于区块中心si,i=1、2、…、n,si的真实mv是mv(si),并且是在si围绕轴旋转θ’的运动向量。
求解:
其中||...||F是F-范数。
上述等式提供一种选择旋转轴以及旋转角度的方法,以达到在一组映射的运动向量与一组旋转的运动向量之间的最佳匹配。具体来说,可应用不同的方法来找到旋转轴。图18是一种使用与在当前图像中已处理的区块相关的运动向量来获得旋转轴的方法的举例说明,包含:
·预先定义一个旋转(例如偏航角=0°/俯视角=-90°,或者其他在比特流中编码的值,如3D空间1810所示),
·基于在参考帧中的运动向量,找到最佳匹配,如3D空间1820所示,或者
·基于在当前帧中的压缩的区块的运动向量找到最佳匹配轴,如3D空间1830所示。
方法3–基于摄影机的平移的变形
依据另一方法,公开了依据摄影机的平移的变形。图19A示出了在不同摄像机位置处物体(即树)被投影到球体的表面上的示例。在摄像机位置A处,树被投影到球体1910上,以形成树的图像1940。在前置位置B处,树被投影到球体1920上,以形成树的图像1950。对应于摄像机位置A的树的图像1941也在球体1920上被示出以用于比较。在又一前置位置C处,树被投影到球体1930上,以形成树的图像1960。对应于摄像机位置A的树的图像1942和对应于摄像机位置B的树的图像1951也在球体1930上被示出以用于比较。在图19A中,对于沿着直线移动的摄像机所捕获的视频,3D空间中摄像机的移动方向(如图19A中三个不同的摄像机位置的箭头1912、箭头1922和箭头1932所表示)可以由纬度坐标与经度坐标表示,其中对应于运动向量与3D球体的交叉点。点被投影到2D目标投影平面上,并且该点成为前置点(例如1934)。
图19B举例说明了如图19A所示的3D空间中针对摄影机位置A与B的投影至2D帧1970的树的位置,其中在位置1972处的树的图像对应摄影机位置A,并且在位置1974的树的图像对应摄影机位置B。在图19B中,也绘示了针对3D空间中的摄影机位置B与C的,投影至2D帧1980的多个树的位置,其中在位置1982的树的图像对应摄影机位置A,并且在位置1984的树的图像对应摄影机位置B,并且在位置1986的树的图像对应摄影机位置C。
图20是覆盖有移动流(moving flow)的模型的ERP帧的示例,其中如果摄像前置点已知,则背景(即静态物体)的流可以被确定。这些流如箭头所示。绘示了摄影前置点2010与摄影背景点2020。移动流对应于基于一个方向上所移动的摄像机的视频内容的移动方向。摄像机的移动引起静态背景物体的相对移动,由摄像机所捕获的2D帧上的背景物体的移动方向可以被表示为移动流。多个帧2030可用于导出移动流。
基于视点的平移的移动流的模型可应用至不同的投影方法。在图21中,绘示了以2x3布局格式的在2D帧2110中的针对CMP帧的移动流。
图22是使用基于摄影机的平移的变形来进行帧间进一步预测(Inter moreprediction)的举例说明。在2D帧2210中,移动流由箭头所示。对于每一源区块(例如区块2221-2225),源区块(例如区块2231-2235)的变形可使用针对背景对象的背景的移动流来决定。
图23是使用基于摄影机的平移的变形来进行帧间进一步预测的示例性流程图。该示例性方法包含:
1.找出摄像机的前置点。图19A以及相关文字举例说明了一种导出前置点的方法。
2.计算帧的移动流,其在每一像素对应切线方向。
3.通过参考相邻块的运动向量确定每一像素的运动向量,或基于摄像机的速率以及背景的深度确定运动向量:
·基于摄影机的前置点以及帧的移动流,相邻块的运动向量可以被用于确定摄像机的平移,
·摄像机的平移以及移动流可以被用于确定预测的区块的每一像素的运动向量。
举例来说,如布置2310所示,可获取两个不同摄影机位置的图像。决定在2D帧2320中的移动流(如箭头所示)以及摄影机前置点2322。摄影机平移以及移动流可用于决定预测的区块2324中每一像素的运动向量。据此,变形区块2326被导出并用于当前区块2324的帧间预测。
基于摄影机平移的变形进行帧间进一步预测可应用至多种投影。2D帧中的移动流可以被映射到3D球体。如图24所示,是3D球体2410上的移动流,其中前置点和两个不同的移动流线(即2412和2414)被示出。与ERP 2420相关的3D球体上的移动流在图24中被示出,其中移动流被示出以用于ERP帧2426。与CMP 2430相关的3D球体上的移动流在图24中被示出,其中移动流被示出以用于2x3布局格式中的CMP帧2436的六个面。与OHP 2440相关的3D球体上的移动流在图24中被示出,其中移动流被示出以用于OHP帧2446的八个面。与ISP2450相关的3D球体上的移动流在图24中被示出,其中移动流被示出以用于ISP帧2456的二十个面。与SSP 2460相关的3D球体上的移动流在图24中被示出,其中移动流被示出以用于SSP帧2466的分割面。
图25示出了根据本发明实施例的系统将球体旋转应用于变形参考区块,以进行帧间预测的方法的示例性流程图。流程中所示的步骤可以被实现为编码器侧处的一个或多个处理器(例如,一个或多个CPU)上可执行的程序代码。流程图中所示的步骤也可以基于硬件被实现,例如,用于执行流程图中的步骤的一个或多个电子设备或处理器。依据该方法,在步骤2510接收2D帧中的当前区块的输入数据,其中2D帧是自3D球体投影的。在步骤2520,决定在2D帧中的源区块相关的运动向量,其中运动向量从源区块中源位置指向2D帧中的目的位置。在步骤2530,依据目标投影,将2D帧中的源位置、目的位置以及源区块投影至3D球体。在步骤2540,在3D球体中的源区块沿着在3D球体表面上的旋转圆圈围绕旋转轴旋转,以产生在3D球体中的变形参考区块。在步骤2550,依据逆目标投影,在3D球体中的变形参考区块映射回2D帧。在步骤2560,在2D帧中的当前区块是使用在2D帧中的变形的参考区块作为帧间预测子进行编码或者解码。
图26示出了根据本发明实施例的系统自摄影机的平移推导出参考区块以用于帧间预测的示例性流程图。在步骤2610中,接收对应两个不同视点的两个2D帧,其中这两个帧是使用目标投影而自3D球体投影的,当前区块和当前区块的相邻区块位于这两个2D帧中。步骤2620中,基于这两个2D帧,确定摄像机的前置点。在步骤2630中,在这两个2D帧中确定移动流。在步骤2640中,参考相邻区块的一个或者多个第一运动矢量,导出与预测的区块相关的一个或者多个第二运动矢量,其中该相邻区块是基于摄影机的前置点与移动流或者依据摄影机的速度与背景的深度。在步骤2650中,基于预测的区块与所述一个或多个第二运动矢量,导出帧间预测区块。在步骤2660中,使用帧间预测,编码或解码2D帧中的当前区块。
本发明所示的流程图用于示出根据本发明的视频的示例。在不脱离本发明的精神的情况,本领域的技术人员可以修改每个步骤、重组这些步骤、将一个步骤进行分离或者组合这些步骤而实施本发明。
上述说明被呈现,以使得本领域的普通技术人员能够在特定应用程序的上下文及其需求中实施本发明。对本领域技术人员来说,所描述的实施例的各种变形将是显而易见的,并且本文定义的一般原则可以应用于其他实施例中。因此,本发明不限于所示和描述的特定实施例,而是将被赋予与本文所公开的原理和新颖特征相一致的最大范围。在上述详细说明中,说明了各种具体细节,以便透彻理解本发明。尽管如此,将被本领域的技术人员理解的是,本发明能够被实践。
如上所述的本发明的实施例可以在各种硬件、软件代码或两者的结合中实现。例如,本发明的实施例可以是集成在视频压缩芯片内的电路,或者是集成到视频压缩软件中的程序代码,以执行本文所述的处理。本发明的一个实施例也可以是在数字信号处理器(Digital Signal Processor,DSP)上执行的程序代码,以执行本文所描述的处理。本发明还可以包括由计算机处理器、数字信号处理器、微处理器或现场可编程门阵列(fieldprogrammable gate array,FPGA)所执行的若干函数。根据本发明,通过执行定义了本发明所实施的特定方法的机器可读软件代码或者固件代码,这些处理器可以被配置为执行特定任务。软件代码或固件代码可以由不同的编程语言和不同的格式或样式开发。软件代码也可以编译为不同的目标平台。然而,执行本发明的任务的不同的代码格式、软件代码的样式和语言以及其他形式的配置代码,不会背离本发明的精神和范围。
本发明以不脱离其精神或本质特征的其他具体形式来实施。所描述的例子在所有方面仅是说明性的,而非限制性的。因此,本发明的范围由附加的权利要求来表示,而不是前述的描述来表示。权利要求的含义以及相同范围内的所有变化都应纳入其范围内。

Claims (16)

1.一种处理360度虚拟现实图像的方法,该方法包含:
接收二维帧中的当前区块的输入数据,其中该二维帧是从三维球体投影而来;
决定与该二维帧中的源区块相关的运动向量,其中该运动向量从该源区块中的源位置指向该二维帧中的目的位置;
依据目标投影,投影该二维帧中的该源位置、该目的位置以及该源区块至该三维球体;
沿着在该三维球体表面的旋转圆圈围绕旋转轴旋转该三维球体中的该源区块,以获得该三维球体中的变形参考区块;
依据逆目标投影,将该三维球体中的该变形的参考区块映射回该二维帧;以及
使用该二维帧中的变形的参考区块作为帧间预测子来编码或者解码该二维帧中的该当前区块。
2.根据权利要求1所述的方法,其特征在于,该旋转圆圈对应该三维球体的表面的最大圆圈。
3.根据权利要求1所述的方法,其特征在于,该旋转圆圈小于该三维球体的表面上的最大圆圈。
4.根据权利要求1所述的方法,其特征在于,该三维球体的表面上的围绕着旋转轴的该旋转圆圈是基于该三维球体的源位置与目的位置来决定。
5.根据权利要求4所述的方法,其特征在于,与该旋转圆圈对应的旋转轴与旋转角度θa是基于而导出,并且其中分别对应在该三维球体表面上的该源位置与该目的位置。
6.根据权利要求1所述的方法,其特征在于,与该旋转圆圈对应的旋转轴与旋转角度是基于在参考帧中的多个运动向量导出。
7.根据权利要求6所述的方法,其特征在于,与该旋转圆圈对应的旋转轴与旋转角度θ’是基于如下公式导出:
其中si对应于该参考帧中的一个源区块,mv(si)对应于源区块si的运动向量,对应于通过围绕该旋转轴旋转在该源区块si的一个位置该旋转角度θ′导致的一个运动向量,并且||·||F是F-范数。
8.根据权利要求1所述的方法,其特征在于,与该旋转圆圈相关的旋转轴与旋转角度是基于在当前帧中已编解码区域的多个运动向量而导出的。
9.根据权利要求8所述的方法,其特征在于,与该旋转圆圈相关的该旋转轴与旋转角度θ′是基于如下公式导出:
其中si对应于该当前帧中的该已编解码区域的一个源区块,mv(si)对应于源区块si的运动向量,对应于通过围绕该旋转轴旋转在该源区块si的一个位置该旋转角度θ′导致的一个运动向量。
10.根据权利要求1所述的方法,其特征在于,与该旋转圆圈相关的旋转轴是预先定义的、或者该旋转轴是在比特流中被指示以指示旋转路径。
11.根据权利要求1所述的方法,其特征在于,所述目标投影对应于等角投影、立方体投影、已调节立方体投影、等区域投影、八面体投影、二十面体投影、分段球体投影、旋转球体投影或圆柱体投影。
12.一种处理360度虚拟现实图像的装置,该装置包括一个或多个电子设备或处理器,用于:
接收二维帧中的当前区块的输入数据,其中该二维帧是从三维球体投影而来;
决定与该二维帧中的源区块相关的运动向量,其中该运动向量从该源区块中的源位置指向该二维帧中的目的位置;
依据目标投影,投影该二维帧中的该源位置、该目的位置以及该源区块至该三维球体;
沿着在该三维球体表面的旋转圆圈围绕旋转轴旋转该三维球体中的该源区块,以获得该三维球体中的变形参考区块;
依据逆目标投影,将该三维球体中的该变形的参考区块映射回该二维帧;以及
使用该二维帧中的变形的参考区块作为帧间预测子来编码或者解码该二维帧中的该当前区块。
13.一种处理360度虚拟现实图像的方法,该方法包含:
接收对应两个不同视点的两个二维帧,其中该两个二维帧是使用目标投影而自三维球体投影而来的,且当前区块、该当前区块的预测区块和相邻区块位于该两个二维帧中;
基于该两个二维帧,确定摄像机的前置点;
在该两个二维帧中确定多个移动流;
通过参考基于该摄影机前置点以及多个移动流的该相邻区块的一个或者多个第一运动向量、或者依据该摄影机的速度与背景的深度,来导出与该预测区块相关的一个或者多个第二运动向量;
基于该预测区块与该一个或者多个第二运动向量,导出帧间预测区块;以及
使用该帧间预测区块,编码或解码该二维帧中的该当前区块。
14.根据权利要求13所述的方法,其特征在于,该导出与该预测区块相关的一个或者多个第二运动向量的步骤包含基于与该相邻区块相关的该一个或者多个第一运动向量决定摄影机的平移;并且与该预测区块相关的该一个或者多个第二运动向量是基于该摄影机的平移与该多个移动流从该一个或者多个第一运动向量而导出的。
15.如权利要求13所述的方法,其特征在于,所述目标投影对应于等角投影、立方体投影、已调节立方体投影、等区域投影、八面体投影、二十面体投影、分段球体投影、旋转球体投影或圆柱体投影。
16.一种处理360度虚拟现实图像的装置,该装置包括一个或多个电子设备或处理器,用于:
接收对应两个不同视点的两个二维帧,其中该两个二维帧是使用目标投影而自三维球体投影而来的,且当前区块、该当前区块的预测区块和相邻区块位于该两个二维帧中;
基于该两个二维帧,确定摄像机的前置点;
在该两个二维帧中确定多个移动流;
通过参考基于该摄影机前置点以及多个移动流的该相邻区块的一个或者多个第一运动向量、或者依据该摄影机的速度与背景的深度,来导出与该预测区块相关的一个或者多个第二运动向量;
基于该预测区块与该一个或者多个第二运动向量,导出帧间预测区块;以及
使用该帧间预测区块,编码或解码该二维帧中的该当前区块。
CN201880002044.4A 2017-06-23 2018-06-21 处理360度虚拟现实图像的方法与装置 Active CN109691104B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762523885P 2017-06-23 2017-06-23
US201762523883P 2017-06-23 2017-06-23
US62/523,883 2017-06-23
US62/523,885 2017-06-23
PCT/CN2018/092142 WO2018233661A1 (en) 2017-06-23 2018-06-21 INTER PREDICTION METHOD AND APPARATUS FOR IMMERSIVE VIDEO ENCODING

Publications (2)

Publication Number Publication Date
CN109691104A true CN109691104A (zh) 2019-04-26
CN109691104B CN109691104B (zh) 2021-02-23

Family

ID=64735503

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201880002044.4A Active CN109691104B (zh) 2017-06-23 2018-06-21 处理360度虚拟现实图像的方法与装置
CN201880001715.5A Active CN109429561B (zh) 2017-06-23 2018-06-21 处理360度虚拟现实图像的方法及装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201880001715.5A Active CN109429561B (zh) 2017-06-23 2018-06-21 处理360度虚拟现实图像的方法及装置

Country Status (3)

Country Link
CN (2) CN109691104B (zh)
TW (2) TWI686079B (zh)
WO (2) WO2018233662A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110248212A (zh) * 2019-05-27 2019-09-17 上海交通大学 多用户360度视频流服务器端码率自适应传输方法及系统

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10904558B2 (en) * 2019-04-26 2021-01-26 Tencent America LLC Method and apparatus for motion compensation for 360 video coding
CN113994700A (zh) * 2019-06-13 2022-01-28 北京达佳互联信息技术有限公司 用于视频编解码的运动矢量预测
US11095912B2 (en) 2019-10-28 2021-08-17 Mediatek Inc. Video decoding method for decoding part of bitstream to generate projection-based frame with constrained guard band size, constrained projection face size, and/or constrained picture size
US11263722B2 (en) * 2020-06-10 2022-03-01 Mediatek Inc. Video processing method for remapping sample locations in projection-based frame with hemisphere cubemap projection layout to locations on sphere and associated video processing apparatus
CN115423812B (zh) * 2022-11-05 2023-04-18 松立控股集团股份有限公司 一种全景监控平面化展示方法
CN116540872A (zh) * 2023-04-28 2023-08-04 中广电广播电影电视设计研究院有限公司 Vr数据处理方法、装置、设备、介质及产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102333221A (zh) * 2011-10-21 2012-01-25 北京大学 一种全景式背景预测的视频编解码方法
CN103039075A (zh) * 2010-05-21 2013-04-10 Jvc建伍株式会社 图像编码装置、图像编码方法及图像编码程序、以及图像解码装置、图像解码方法及图像解码程序
US9277122B1 (en) * 2015-08-13 2016-03-01 Legend3D, Inc. System and method for removing camera rotation from a panoramic video
US20170085917A1 (en) * 2015-09-23 2017-03-23 Nokia Technologies Oy Method, an apparatus and a computer program product for coding a 360-degree panoramic video

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104063843B (zh) * 2014-06-18 2017-07-28 长春理工大学 一种基于中心投影的集成立体成像元素图像生成的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103039075A (zh) * 2010-05-21 2013-04-10 Jvc建伍株式会社 图像编码装置、图像编码方法及图像编码程序、以及图像解码装置、图像解码方法及图像解码程序
CN102333221A (zh) * 2011-10-21 2012-01-25 北京大学 一种全景式背景预测的视频编解码方法
US9277122B1 (en) * 2015-08-13 2016-03-01 Legend3D, Inc. System and method for removing camera rotation from a panoramic video
US20170085917A1 (en) * 2015-09-23 2017-03-23 Nokia Technologies Oy Method, an apparatus and a computer program product for coding a 360-degree panoramic video

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JILL BOYCE等: "Spherical rotation orientation SEI for HEVC and AVC coding of 360 video", 《JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110248212A (zh) * 2019-05-27 2019-09-17 上海交通大学 多用户360度视频流服务器端码率自适应传输方法及系统

Also Published As

Publication number Publication date
TW201911867A (zh) 2019-03-16
TWI686079B (zh) 2020-02-21
CN109429561B (zh) 2022-01-21
WO2018233661A1 (en) 2018-12-27
CN109691104B (zh) 2021-02-23
WO2018233662A1 (en) 2018-12-27
TWI690193B (zh) 2020-04-01
CN109429561A (zh) 2019-03-05
TW201911861A (zh) 2019-03-16

Similar Documents

Publication Publication Date Title
CN109691104A (zh) 沉浸式视频编解码中的帧间预测的方法及装置
US10600233B2 (en) Parameterizing 3D scenes for volumetric viewing
Xu et al. Unstructuredfusion: realtime 4d geometry and texture reconstruction using commercial rgbd cameras
US10264282B2 (en) Method and apparatus of inter coding for VR video using virtual reference frames
WO2017125030A1 (en) Apparatus of inter prediction for spherical images and cubic images
US7483590B2 (en) Image processing apparatus and image processing method for non-planar image, storage medium, and computer program
CN100581250C (zh) 用于三维计算机图形压缩的系统和方法
TWI666913B (zh) 用於將虛擬實境圖像映射成分段球面投影格式的方法以及裝置
US20200193676A1 (en) Method and Apparatus for Reduction of Artifacts at Discontinuous Boundaries in Coded Virtual-Reality Images
US20060257049A1 (en) Representation and coding of panoramic and omnidirectional images
CN109478312A (zh) 一种视频编解码的方法及装置
CN109804634A (zh) 具有旋转信息的语法元素信令的视频编码功能的方法和设备以及具有相关的视频解码功能的方法和设备
CN109792536A (zh) 用于编码和解码全向视频的方法和装置
Su et al. Learning compressible 360 video isomers
CN110024404A (zh) 编码全局旋转运动补偿图像的方法,设备和流
Sun et al. Neural free-viewpoint performance rendering under complex human-object interactions
Xu et al. Layout-guided novel view synthesis from a single indoor panorama
Meuleman et al. Real-time sphere sweeping stereo from multiview fisheye images
CN114071116A (zh) 视频处理方法、装置、电子设备及存储介质
Hara et al. Spherical image generation from a single image by considering scene symmetry
TWI702835B (zh) Vr360 視訊編解碼的運動向量推導方法和裝置
KR20180016461A (ko) 결합 정보를 포함하는 영상 데이터에 대한 디코딩 방법 및 결합 정보를 포함하는 영상 데이터를 인코딩 하는 방법
Calagari et al. Sports VR content generation from regular camera feeds
Vanijja et al. A stereoscopic image-based approach to virtual environment navigation
US20240078738A1 (en) Compression of Attribute Values Comprising Unit Vectors

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant