首页> 中国专利> 全景视频的建议视口指示

全景视频的建议视口指示

摘要

本公开涉及全景视频的建议视口指示。生成并发送建议的视口指示,以在全景视频中使用。在一个示例中,一种方法包括:接收包括视口元数据的经编码的视频,对视频进行解码,提取视口元数据,基于视口元数据生成经解码的视频的视口,以及缓冲所生成的视口以进行显示。

著录项

  • 公开/公告号CN112738531A

    专利类型发明专利

  • 公开/公告日2021-04-30

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN202011563233.4

  • 发明设计人 吉尔·M·博伊斯;

    申请日2017-11-15

  • 分类号H04N19/597(20140101);H04N19/46(20140101);H04N13/117(20180101);H04N13/161(20180101);H04N13/178(20180101);H04N13/194(20180101);H04N13/243(20180101);H04N13/344(20180101);H04N21/235(20110101);H04N21/4728(20110101);H04N21/81(20110101);H04N21/84(20110101);G06F3/01(20060101);

  • 代理机构11258 北京东方亿思知识产权代理有限责任公司;

  • 代理人李丽

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 10:48:02

说明书

本申请是申请日为2017年11月15日、题为“全景视频的建议视口指示”的中国发明专利申请No.201780063562.2(PCT国际申请No.PCT/US2017/061731)的分案申请。

本申请要求于2016年11月17日递交的标题为“SUGGESTED VIEWPORT INDICATIONFOR PANORAMIC VIDEO(全景视频的建议视口指示)”、序列号为62/423,343的美国临时申请的优先权,其公开内容由此以引用方式并入本文中。

技术领域

本说明涉及对经编码的视频的传送,并且具体而言,涉及传送针对视频所建议的视口(viewport)。

背景技术

随着低成本高清晰度的摄像机和高速互联网连通的出现,视频互联网流量迅速增长。360度视频是虚拟现实、视频会议、汽车和监控应用等领域的一种新兴趋势,并且受到包括180度和360度视场相机的宽视场相机的支持。专门的网站和频道也可用于发布和观看包括虚拟现实内容的360度视频。对于用户组之间的协作,360度视频提供了更大的灵活性。不同于在相机之间进行切换,远程观看者可以使用360度视图跨房间移动,并且放大相机的视图中的感兴趣的人或对象。

使用虚拟现实(VR)头戴式显示器的全景视频播放系统正在兴起,以供消费者使用。全景和360度视频内容通常是通过将由多个相机捕获的2D视频拼接成球面表示(representation)来创建的。在一些情况下,在软件中呈现多个视图。然后将球面视频投影成适合于视频编码的格式,例如等距矩形(equi-rectangular)投影格式或立方体贴图(cube map)投影格式。

在客户端处,接收并解码包含完整全景压缩视频帧的比特流,来创建整个全景视场的表示。选择较小的视口进行显示。视口所表示的经解码视频的部分是由头戴式显示器的头部位置来确定的,或者是通过在普通2D显示器上进行观看时的位置选择用户界面来确定的。

附图说明

在附图中通过示例的方式而非限制的方式示出了本文所述的材料。为了说明的简单和清晰,图中所示的元素不一定按比例绘制。例如,为了清晰起见,一些元素的尺寸可能相对于其他元素被放大。

图1是根据实施例的全景视频编码系统的框图。

图2是根据实施例的替代的全景视频编码系统的框图。

图3是三轴笛卡尔坐标系的图示,其显示了俯仰、偏航和滚转的旋转方向。

图4是从球面到平面的等距矩形格式投影的图示。

图5是立方体贴图投影的图示,其中球面被投影到标记为0到5的六个平面上。

图6是4×3平面网格的图示,其具有六个立方体贴图投影面。

图7是2×3平面网格的图示,其具有为了紧凑而重新排列的六个立方体贴图投影面。

图8是从球面到平面的二十面体格式投影的图示。

图9是根据实施例的两个对象在没有旋转的情况下从球面到平面的等距矩形格式投影的图示。

图10是根据实施例的两个对象在有旋转的情况下从球面到平面的等距矩形格式投影的图示。

图11是根据实施例的针对供编码和查看的宽视场视频建议视口指示的流程图。

图12是适用于实施例的具有连接的计算资源的头戴式显示器的框图。

图13是根据实施例的适用于视频捕获、编码、解码和显示的计算设备的框图。

具体实施方式

由于全景视频播放系统的观看者仅观看整个全景视频的一部分,例如在给定时刻的可用区域的1/12,所以可能无法观看视频中最感兴趣的区域。发信号指示感兴趣矩形区域的现有方法不直接适用于从球面全景视频或任何其他球面或曲面格式视频生成视口。

可以使用包含元数据的补充增强信息(SEI)消息,以使得全景视频内容创建者能够发信号指示将为观看者显示的建议的最感兴趣的视口。可以通过发信号指示生成全景视频的视口所需的信息的元数据为全景视频的球面表示指示建议的最感兴趣的视口。使用球面表示允许将该信令用于各种不同的平面投影格式中的任何一种,包括例如等距矩形、立方体贴图、八面体、截方形棱锥等。还允许将该信令用于任何类型的编码器和解码器。

在客户端处,视口生成器可以使用所接收到的元数据来生成建议的直线型视口,以显示给观看者。该视口提供了对否则将基于观看者的头部位置被选择或者基于另一个位置指示用户界面被选择的视口的替代。

虽然在一些系统中,可以容易地发信号指示感兴趣的矩形区域,但矩形区域方法对于以投影格式编码的球面视频效果不大。以平面投影格式编码的帧的感兴趣的矩形区域不会与视频帧的用于生成视口的部分相对应。在生成视口时所使用的对应位置与投影格式的编码视频帧中可能不连续的一个或多个非矩形区域相对应。

图1是全景视频编码系统的框图。在服务器、产生系统或不同系统102的组合处产生视频。在服务器处,多个相机106捕获2D视频。显示了六个相机,但可以使用更多或更少的相机。相机连接到第一模块108。在第一模块处,将多个视频拼接在一起并将其绘制为投影格式。以投影格式拼接的视频被输入到视频编码器110,例如,HEVC或AVC。编码器对视频进行编码,并将其作为比特流发送或缓冲以供稍后的传输。解码器可以具有内部缓冲器或大容量储存装置,或者可以在编码器外部提供适合的缓冲器或数据储存装置。

通过网络、互联网、广播或点对点连接112将经编码的视频作为比特流从服务器或头端发送到一个或多个客户端104。在客户端处,视频解码器114从服务器接收视频并解码经压缩的比特流。当只查看经解码的视频的一部分时,在视口模块116中为所选区域生成视口。经解码的视频的要观看的部分是由位置选择器120使用例如头戴式显示器的头部位置或位置选择用户界面确定的。该位置被发送到视口生成器,该视口生成器接收经解码的视频,并且向显示器118提供适合的视频流。显示器允许在常规2D显示器上查看视口。可能有与视口生成器相关联或被集成到视口生成器中的缓冲器,以在显示之前保存视频。

图2是替代的全景视频编码系统的框图。在服务器202、产生系统或不同系统的组合处产生视频。多个相机206捕获2D视频并将其提供给第一拼接和投影模块208。在模块内的缓冲器中缓冲多个视频。在该模块处将视频拼接在一起,并将其绘制为投影格式。将以投影格式拼接的视频存储在模块的另一缓冲器中,然后将其输入到视频编码器210,例如,HEVC或AVC。

内容创建者、注释者、编辑者或任何其他参与者可以选择最感兴趣的视口区域。替代地,自动化系统可以选择视口区域,例如,具有高运动速率或高纹理特征的区域。选择被应用于与视频编码器210耦合的感兴趣的区域(ROI)选择器212。视频编码器对从视频拼接和绘制投影模块208接收到的视频进行编码。所选择的ROI作为诸如元数据216之类的信息被提供给视频编码器,并由编码器被包括在视频比特流218中。信息可以以各种不同的方式进行编码。ROI可以元数据的形式提供,该元数据被添加到编码器的视频比特流输出中。其可以以SEI消息的形式或另一种形式被添加。ROI元数据可以与帧或一组帧相关联,并且因此可以以每帧一次的频率更新。

一种这样的对信息进行编码的方式是作为补充增强信息(SEI)消息的结构内的元数据,然而,可以使用各种其他消息结构中的任何一种。可能有多个ROI选择作为来自不同编辑者或注释者的多个SEI消息被提供。还可能有来自单个编辑者的多个ROI选择来指示不止一个ROI。然后,用户可以从不能同时显示的任何ROI中进行选择。这些消息可能相互冲突或相互补充。由于SEI消息与特定的帧相关联,所以视口或ROI选择或建议可以随任何帧而变化。

视频编码器对视频进行编码,将其与SEI消息和任何其他元数据组合,并将其作为比特流发送或缓冲以供稍后的传输。编码器可以包括适合的缓冲器或另一种储存设备,其可以被并入编码器或服务器的另一部分。

通过数据链路218(例如,网络、互联网、广播或点对点链路)将经编码的视频作为比特流从服务器202或头端发送到一个或多个客户端204。在客户端处,视频解码器224从服务器接收视频218,解码(224)经压缩的比特流218并提取任何SEI消息。视口发生器模块226接收SEI消息,该SEI消息具有视频的所选择的ROI以及来自用户位置选择器230的位置。视口生成器接收经解码的视频并向显示器228提供适合的视频流。该视频流可被立即显示,或者存储在位于视口生成器中或连接到视口生成器的缓冲器或其他储存装置中。在客户端处,观看者可以选择按照内容提供者的建议观看SEI消息的建议视口,或者客户端可以使用位置选择230或其他传感器选择视口。以这种方式,观看者可以推翻所选择或推荐的ROI。

建议的视口元数据与帧相关联,并且因此可以以每帧一次的频率更新。如果内容创建者希望指示不止一个建议的视口,以例如单独跟踪多个移动对象,则可以指示不止一个建议的视口。这允许观看者选择察看例如全景视图内的特定的人或事件。

表示视口位置或球面旋转取向的元数据可以包含三个或更多个参数,例如,经度、纬度和视场,俯仰、偏航和滚转,或方位角、仰角和倾角。图3是三轴笛卡尔坐标系240的图示,其示出了俯仰254、偏航256和滚转151的旋转方向。三个轴是x轴242、y轴244和z轴246。旋转方向是从参考系原点来看,围绕每个轴的顺时针旋转。滚转是围绕x轴的。俯仰是围绕y轴的,并且偏航是围绕z轴的。轴可以有不同的名称,例如,水平、竖直或深度或任何其他适合的名称。方位角、仰角和倾角对应于原点与从原点到原点周围球面上的位置的射线之间的角度。虽然本实施例是围绕笛卡尔坐标系的轴旋转的形式,可以使用其他类型的坐标系和投影以任何其他期望的方式来表示球面投影的旋转。

该元数据可被包括在补充增强信息(SEI)消息中,如在HEVC和AVC标准中所使用的。使用SEI消息允许使用传统编码器和解码器,因为标准的编码和解码过程不变。取决于特定的实现方式,旋转可被应用为在发送器202处的初步处理214和在接收器204处的后期处理222或过程中的其他位置。后期处理的球面旋转被应用于解码器的输出图像。

作为SEI和元数据的替代,旋转取向元数据可被包括在视频编解码器中的或“切片(slice)”头部中的参数集中。在这种情况下,可以改变一致输出图片的定义,从而在输出图片之前应用反向球面旋转。

表1是具有用于ROI建议或选择语法的元数据参数的SEI消息的语法的示例。该语法可以与现有的视频编解码器标准(例如,HEVC和AVC)一起使用,因为它不会改变核心编码或解码过程。元数据具有指示该视口是否取代先前的视口的标志。其还提供图像的球面上的位置和水平及竖直视场。

元数据包括生成由ID和取消标志标识的视口所需的信息。该信息包括视口中心在球面表示中由经度和纬度表示的位置,以及以角度表示的水平和竖直视场大小。角度可以用度数、弧度或线性距离来表示。但是可以使用其他类型的表示来指示ROI的位置和大小。使用球面表示作为基础,允许相同的语法被用于任何投影格式或布局,例如,等距矩形投影、立方体贴图投影、八面体投影、二十面体投影、截方形棱锥投影等。

表1

可以针对整个经编码的视频序列和/或逐帧地在元数据中发送ROI位置。发信号指示的值,即元数据中的纬度、经度和视场参数,指示要应用于解码器后面的输出图像的视口。

表2提供了替代的全向视口SEI消息语法。

表2

在一些实施例中,全向视口SEI消息指定球面坐标几何体的一个或多个区域的坐标(由四个大圆界定),其对应于当用户无法控制观看取向或已将观看取向的控制释放到视口推荐时针对显示推荐的视口。

omni_viewpoint_id包含可用于标识一个或多个推荐的视口区域的标识号。

omni_viewpoint_cancel_flag等于1指示SEI消息以输出顺序取消任何先前全向视口SEI消息的持续。omni_viewpoint_cancel_flag等于0指示全向视口信息继续。这可用于使得仅当视口发生变化时才使用视口SEI。

omni_viewport_persistence_flag指定当前层的全向视口SEI消息的持续。omni_viewport_persistence_flag等于0指定全向视口SEI消息仅适用于当前的经解码的图片。

omni_viewport_persistence_flag等于1指定全向视口SEI消息以输出顺序持续当前层,直到以下一个或多个条件为真。令picA为当前图片:

当前层的新CLVS开始。

比特流结束。

在为包含适用于当前层的全向视口SEI消息的访问单元中的当前层中的图片picB的图片顺序计数调用解码过程后立即输出picB,对picB而言PicOrderCnt(picB)大于PicOrderCnt(picA),其中PicOrderCnt(picB)和PicOrderCnt(picA)分别是picB和picA的PicOrderCntVal值。

当erp_cancel_flag等于0的等距矩形投影SEI消息或cmp_cancel_flag等于0的立方体贴图投影SEI消息在应用于当前图片的CLVS中不存在且按解码顺序领先于全向视口SEI消息时,erp_cancel_flag等于0的全向视口SEI消息不应当存在于应用于当前图片的CLVS中。解码器应当忽略:按解码顺序不继续的omni_viewport_cancel_flag等于0的全向视口SEI消息,以及应用于当前图片的CLVS中的erp_cancel_flag等于0的等距矩形投影SEI消息或cmp_cancel_flag等于0的立方体贴图投影SEI消息。

omni_viewport_cnt_minus1 plus1指定由SEI消息指示的推荐视口区域的数量。当omni_viewport_cnt_minus1大于0且没有关于建议显示哪个推荐视口的信息时,以下适用:

当omni_viewport_id等于0或1时,当用户没有控制观看取向或已释放对观看取向的控制时,建议显示第0个推荐视口。

omni_viewport_azimuth_centre[i]和omni_viewport_elevation_centre[i]指示第i个推荐视口区域的中心,以2

omni_viewport_tilt_centre[i]指示第i个推荐视口区域的倾角,以2

可以修改这些参数、单位和值的范围中的每个的具体定义,以适应任何其他特定实现方式。类似地,可以删除或用不同的参数替代任何一个或多个参数以适应其他实现方式。可以添加附加的参数,并且可以修改参数的顺序以适应不同的实现方式。

图4是等距矩形格式投影的图示。在左侧示出了原始球面视图266,并且在右侧示出了球面投影成非环绕平面网格260。在右侧上,在矩形平面帧260的左262和右264边缘处引入间断。对左侧的真实球面表示而言,左边缘和右边缘是连接的。此外,显著的扭曲使得沿着右侧的帧的顶部和底部的像素失真。这与左侧上的北极和南极区域相对应。特定的建议的视口可以跨过等距矩形格式的左右边缘,并因此将对应于编码投影格式帧中的两个不同区域。类似地,特定的建议的视口可以跨过顶部边缘的不同部分并且失真。

使用空间方向内预测和块平移运动补偿的当前的视频编码标准将在等距矩形预测的中心附近比在极点附近或沿着左右边缘处执行得更好。使用空间内方向位置或利用运动补偿,将无法很好地预测横跨左/右边缘间断的对象。

在立方体贴图投影中,将六个立方体面排列成矩形帧。图5是立方体贴图投影的图示,其中球面被投影到标记为0到5的六个平面上。6个面中的每个面被投影到球面的一部分上。然后,这些面可以被表示在平面网格上。图6示出了六个面的4×3平面布局,其中投影的相邻区域彼此靠近地放置。如图所示,面1和2、面1和3、面1和4、面4和0以及面0和5之间的边界保持相邻。然而,没有其他边界彼此相邻地放置,如它们在图6中所示。替代地,可以将面2和3移动到面4、5或0的任一侧以保持这些边界。虽然平面网格表示非常适合于许多编解码器和其他数字处理和压缩系统,但图6的平面帧中有些区域不包含表示立方体的像素。这些是面4、5和0上方和下方的区域。这些面可以被设置为背景色,但需要一些数据来进行编码。图7示出了3×2平面布局,其中立方体面已被重新排列为适应更紧凑的布局。图7的表示可能需要处理边缘的一些额外的复杂性,但像素数量从4×3减少一半到3×2。

用于编码立方体贴图投影格式的旋转取向的选择将取决于所选择的特定布局,因为投影格式在间断的数量和位置上有所不同。每个立方体面的边缘区域比立方体面的中心区域有更多的失真。对旋转取向进行选择应特别试图尽量减少跨越立方体面边缘的间断的对象。包含具有边缘的面的其它投影格式也会引入类似的间断和失真。

图8是二十面体投影的图示。这是使用二十面体从球面表示到平面表示的另一种类型的投影。在该示例中,左侧示出了球面280,其被投影到周围的二十面体的20个小面上,而不是图5的立方体贴图的仅六个小面上。然后,20个小面被示出为位于右侧上的二维空间282上。与其他投影一样,每个小面的边缘处都存在失真和不一致。使用更多的小面减少了变形量,但增加了接缝的数量和位置。

还可以使用如上所述的包括八面体、截方形棱锥和任何各种其他类型的多边形投影的任何各种其他投影。随着小面的增加,每个小面的失真减少,但复杂性可能增加,并且避免边缘可能更困难。

在一些实施例中,作为编码过程的一部分,可以选择推荐的视口。在一些实施例中,可以通过分析运动的场景或其他特性并确定场景中的哪个部分包含最感兴趣的特征,经由“后验”过程选择推荐的视口。在一些实施例中,层级方法可与该途径一起使用,从而对帧的下采样版本进行编码,而不是对全分辨率帧进行编码。

替代的途径是根据所使用的投影格式,检测全景帧中的高运动和/或高纹理的区域,并且目标在于将这些区域集中在等距矩形帧或立方体面中。

如上所述的SEI消息可以与球面选定视口SEI消息结合使用。当两个SEI消息一起使用时,可以首先应用由球面旋转信息取向SEI消息建议的旋转,并且然后关于经旋转的球面表示来确定来自建议视口SEI消息建议的建议视口位置。

如果在视频帧中包含帧分组的立体视频,则可以为每个视图单独发送取向值,或者基于第一视图的值导出第二视图的值,可能将关于第二视图相对于第一视图的相对位置的任何信息考虑在内。

图9是具有全景多相机视图的球面302和该球面在平面304上的等距矩形投影的图示。在该示例中,视频内容在球面中被表示为椭圆形314、316和三角形312。椭圆形的两部分314、316代表从全景视图的两侧上看的同一椭圆形。这些对象被投影到等距矩形绘图304中并且被显示为同一椭圆形324、326的两部分和三角形322。在等距矩形绘图中,椭圆具有跨左右边缘的间断324、326。由于靠近北极,它还被水平延展。

图10是球面334以及在将球面旋转应用于该球面之后的相同内容的等距矩形绘图336的图示。经旋转的球面的椭圆形332现在更靠近帧的中心。三角形330与椭圆一样靠近中心,因此两个对象的失真将大致相同。在等距矩形投影中,每个二维对象都失真。失真量随着距中心的距离的增大而增大。如经旋转的球面334所示,与没有旋转的相同球面302相比,椭圆形中不再存在间断。由于椭圆形更接近帧的中心,所以失真也更少。三角形也得到了改进,但并不显著。投影的平面网格336使得其更加清楚,因为所投影的椭圆形340和所投影的三角形338靠近网格的中间(其中失真更少),并且旋转之前的投影304的椭圆形不是在一部分中而是在两部分中。与使用未经旋转的帧的视频相比,基于帧的旋转进行编码的视频应当更有效地由传统视频编码器编码。

还可以使用如上所述的包括八面体、截方形棱锥和任何各种其他类型的多边形投影的任何各种其他投影。随着小面的增加,每个小面的失真减少,但复杂性可能增加,并且避免边缘可能更困难。但是,可以使用纬度、经度或其他坐标来指示所选择的视口。

回到图2,独特的结构和配置改进了用户对全景视频、360°视频、虚拟现实(VR)视频系统和使用投影的任何其他宽视场系统的体验。鉴于上述球面到矩形绘图的描述,可以更好地理解结构的操作。

图11是使用优选视口并如上所述地发送视口指示的流程图。在404,在服务器或发送方202上,投影绘图接收宽视场视频。在图中,从多个相机接收视频,并且因此在402处绘图模块或另一视频拼接器将来自多个相机的视频拼接在一起,以产生单个宽视场视频。在其他情况下,视频可被预先存储并然后被取回以进行编码,或者可以由图形系统基于软件和用户输入来生成视频中的一些或全部视频。视频输入可以包括模拟或虚拟世界,或者可以将虚拟和真实部分组合在一起。视频可以是180°、360°、全景或任何其他宽视场。视频可以具有比竖直视场宽的水平视场。

在406,然后将无论如何生成或接收的完整拼接在一起的宽视场视频绘制到平面投影中。可以使用各种不同的投影。示出和描述了等距矩形投影、球面立方体投影和二十面体投影,但也可能有其他投影。

在本文所示的示例中,视频是球面的,但是不需要是完整的球面。视频可以只包含球面的一部分。上述180°视场仅为球面的一半。视场可以在水平和竖直两个方向上减小,来只显示球面的一部分。另一方面,视场是以球面的一部分的方式弯曲的。这允许图像在各个方向上与观看者保持相同的距离。

然后,使用任何期望类型的几何结构(包括以上示出的示例)将该曲面图像投影到平面上。虽然曲面视场作为球面的一部分的全部或部分没有内在失真,但这种弯曲表面的平面投影确实有失真。然而,平面投影非常适合于编码、压缩和其他图像处理。

在绘制视频之前或之后,在408处,将针对场景接收适合的视口选择。在一些实施例中做出了选择,使得感兴趣的重要地区或区域位于视口中。在一些实施例中,对场景进行分析以选择视口。替代地,视口选择来自产生者或创建者,或者基于观看者统计信息。在一些实施例中,例如,就虚拟现实而言,也从用户接收视口。这可以为不想使用在服务器端选择的视口的用户提供选项。视口指示宽视场视频的哪个部分将位于用户的视场中,并从而位于用户视场的中间。该区域或分区可能有说话者、人物、新出现的对象或使其比其他区域更重要的一些其他特性。然后,可以将区域或分区选择为最重要的,与推荐的或选择的视口相对应。

然后在412处,将所接收或生成的视口与视频进行比较,以确定其在视频中的位置。该位置可以被标识为球面投影上的纬度和经度,或平面投影上位置。平面投影位置可被指示为笛卡尔坐标或以其他方式来指示。此外,可以指示视口的大小。在表1和表2的示例中,大小被指示为水平和竖直视场,然而,可以使用其他单位,包括像素数量或水平和竖直方向上的角度或线性距离。

视口的大小可以用于创建缩放效果,其中用户的视图根据视口的大小而变宽或变窄。在另一实施例中,用户的视图保持相同的大小,使得视口的较大视场可以填充用户的整个视场。视口的较小视场可以只填充用户视场的一部分。较小的视场可以允许用户将视口移动到不同的位置,以查看推荐视口旁边的元素。

可以用许多不同的方式来表示球面视频上的位置。在球面坐标中,滚转、俯仰和偏航可以替代地用于表示球面上的位置。可以使用这些中的一个或多个,或者可以参考投影使用笛卡尔坐标,例如,竖直和水平坐标。对于滚转、俯仰和偏航,不需要三个全部被使用。可能只需要一个来将感兴趣的区域从极点移开。第二坐标可以用于指示距左、右接缝边缘的距离。滚转、俯仰和偏航的旋转信息可被表示为角度。旋转的角度将是相对于视频的原始取向的。此外,元数据中可以包括视频的绝对取向。绝对取向反映相机的取向或者在存在相机阵列时反映多个相机中的一个或多个相机的取向。

在确定视口之后,然后在412处,感兴趣的区域选择器212生成描述所选择的视口的视口元数据。这被提供给视频编码器,使得当在414处视频编码器对球面视频的平面投影进行编码时,在416处将视口元数据包括在经编码的视频中。在417处,还可以将旋转取向元数据包括在内。然后发送、缓冲或存储具有元数据的经编码的视频,使得其被提供为经编码的视频,以供立即或稍后的传输和显示。对于许多类型的编码,例如,HEVC和AVC,可以使用SEI消息,但是本发明并未如此限制。

可以针对视频的每个帧或针对感兴趣区域在其中移动的每个帧做出视口的选择。将SEI消息联结到特定的帧,以使得感兴趣的区域已经在其中移动的每个帧都可以有其自身的视口消息。在一些情况下,消息可以是要取消针对下一组帧的视口选择,直到接收到新的视口消息为止。这可以使用以上表1和表2中所示出和描述的标志来完成。这允许每个场景和感兴趣的区域改变为用不同的SEI消息来标记,以改变对应帧的视口。

在接收器或客户端侧204,在422处,从服务器或广播器接收经编码的视频,其包括诸如SEI消息之类的元数据。客户端具有解码器,以在424处对视频进行解码,并在426处提取视口元数据。然后可以基于视口元数据为经解码的视频生成视口。如果旋转取向元数据也被包括在元数据中,则可以在427处执行旋转,该旋转由俯仰角、滚转角和偏航角或以消息中所指示的其他方式来确定。这是球面视频的旋转,以用于逆转在相机或编码器处施加的旋转。然后将视频的这个视口提供给诸如耳机、3D显示器或2D显示屏之类的显示器,以供用户观看。

对于许多应用,将由用户通过用户界面的位置选择器230来选择视口。这可以通过常规的用户输入设备或通过一些其他传感器来完成。对于VR耳机,可以检测到耳机或用户的眼睛的移动,并且基于用户正在查看的地方来确定视口。然后,视口生成器226可以使用来自元数据的推荐视口、用户选择的视口或这两者的组合来生成经解码的视频的视图。

在428处,确定是否使用用户选择的视口,例如从位置选择器接收的视口。该决定可以基于用户输入或缺少用户输入。只有在用户已经做出选择并且用户已指示用户选择推翻任何其他视口的情况下,才可以默认使用用户选择的输入。如果不使用用户选择的视口,那么在432处,使用所提取的元数据生成视口。如上所述,在一些情况下,在元数据中可能接收到不止一个的视口选择。在这样的情况下,将是默认的,例如,导演的剪辑,并且可以允许用户从元数据中包含的其他视口中选择不同的视口。

如果要使用用户的选择,则在430,视口生成器将使用用户选择生成视口。在任一种情况下,在434处,所生成的视口都作为视频被提供以供显示。

如上所述,所接收到的经编码的视频是从多个相机接收的或由图形系统生成的宽视场的投影。该投影可以是等距矩形投影或任何其他适合的平面投影。许多视频编码系统允许元数据(例如,SEI消息)与经编码的视频的特定帧相关联。因此,当解码器发现新的SEI视口消息时,可以命令视口生成器使用新消息改变对应帧的视口。然后可以维持视口,直到出现下一条消息为止。因此,可以针对经编码的视频的另外的帧接收另外的元数据。

图12是具有多个远程信息源的高性能HMD(头戴式显示器)的图式。HMD 502具有主体504和附接带506。主体承载用户显示器和扬声器,以向佩戴者呈现虚拟世界。主体还具有惯性传感器、麦克风和其他用户输入设备。处理、通信和电源或电池套件允许HMD呈现视频和声音,并与系链计算机(tethered computer)510进行无线通信508。

用户通过头部和身体运动与虚拟世界交互,并且还可以使用语音命令、手势和其他用户输入设备进行交互。游戏控制器520可以通过相同的508无线接口或另一522无线接口耦合到系链计算机以提供额外的控制。HMD可以通过WiFi、WiDi或其他高速数字无线连接耦合到计算机,以从计算机接收经渲染或压缩的视频帧和音频,来向用户显示。还可以从计算机接收另外的描述、数据、参数和命令。HMD还可以通过同一或另一无线链路向计算机发送命令、控制和虚拟交互数据。例如,控制器可以通过蓝牙或未经许可的频段进行通信。可以组合多个无线接口以提供完整的用户体验。

在一些情况下,计算机是便携式的,并且由用户携带。如果需要,这允许有线连接。所携带的计算机可以有笔记本电脑、平板电脑、智能电话或任何其他期望的物理配置。在其他情况下,计算机是固定的,并使用有线连接附接到HMD。

计算机进而可以通过互联网、LAN(局域网)或其他连接514(有线的或无线的)连接到远程服务器516。远程服务器提供经编码的视频,并且可以提供关于虚拟世界的另外的信息。远程服务器还可以提供与正在体验相同或相关的虚拟世界的其他用户的通信。替代地,HMD可以直接与服务器通信,而不通过计算机510。在其他实施例中,不使用远程服务器,并且系链计算机独立工作。

在本文的示例中,无线HMD具有本地计算资源或客户端设备,例如可以耦合到GPU(图形处理单元)、图形处理器、存储器和其他资源的CPU(中央处理单元),以允许HMD存储和呈现所接收到的经编码的视频。本地呈现可以包括如上所述的旋转和视口生成,以及其他任务。

图13示出了根据一个实现方式的计算设备100。计算设备100容纳系统板42。板42可以包括多个组件,包括但不限于处理器44和至少一个通信封装46。通信封装耦合到一个或多个天线16。处理器44物理和电气地耦合到板42。

取决于其应用,计算设备100可以包括可以或可以不物理和电气地耦合到板42的其他组件。这些其他组件包括但不限于:易失性存储器(例如,DRAM)48、非易失性存储器(例如,ROM)49、闪速存储器(未示出)、图形处理器12、数字信号处理器(未示出)、加密处理器(未示出)、芯片组14、天线16、显示器18(例如,触摸屏显示器)、触摸屏控制器20、电池22、音频编解码器(未示出)、视频编解码器(未示出)、功率放大器24、全球定位系统(GPS)设备26、罗盘28、加速度器(未示出)、陀螺仪(未示出)、扬声器30、相机阵列32、麦克风阵列34和大容量存储设备(例如,硬盘驱动器)10、光盘(CD)(未示出)、数字多功能盘(DVD)(未示出)等。这些组件可以连接到系统板42、安装到系统板或与任何其他组件组合。

相机阵列可以耦合到图像芯片36并直接或通过图像芯片耦合到处理器44。图像芯片可以采用各种不同的形式,例如,图形协处理器、数字信号处理器(DSP)、图像信号处理器(ISP)或任何其他类型的单独专用成像管理模块。这样的设备或模块可以包括用于捕获、处理、编辑、压缩、存储、打印和/或显示一个或多个图像的逻辑、算法和/或指令。在一些实施例中,成像管理模块可以包括在成像应用程序或操作系统中被实现为软件的编程例程、功能和/或处理。在各种其他实施例中,图像处理可以被实现为独立芯片或集成电路,或被实现为包含在处理器内的电路、包含在图形芯片或其他集成电路或芯片内的电路、或包含在相机模块内的电路。上述技术可以被实现在处理器的图像芯片中,或者功能可以分布在不同的组件之间,这些组件可以包括相机、图像芯片、处理器和其他组件。

通信封装46实现了无线和/或有线通信,以用于将数据传输到计算设备100和从计算设备100传输数据。术语“无线”及其衍生词可以用于描述可以通过使用经调制的电磁辐射来经由非固体介质传送数据的电路、设备、系统、方法、技术、通信信道等。该术语并不意味着相关联的设备不包含任何线缆,尽管在一些实施例中它们可能不包含。通信封装46可以实现多种无线或有线标准或协议中的任何一种,包括但不限于Wi-Fi(IEEE 802.11族)、WiMax(IEEE 802.16族)、IEEE 802.20、长期演进(LTE)、Ev-DO、HSPA+、HSDPA+、HSUPA+、EDGE、GSM、GPRS、CDMA、TDMA、DECT、蓝牙、其以太网衍生物、以及被称为3G、4G、5G及更高版本的任何其他无线和有线协议。计算设备100可以包括多个通信封装46。例如,第一通信封装46可专用于诸如Wi-Fi和蓝牙之类的较短距离无线通信,并且第二通信封装46可专用于诸如GPS、EDGE、GPRS、CDMA、WiMAX、LTE、Ev-DO及其他较长距离无线通信。

在各种实现方式中,计算设备100可以是膝上型电脑、上网本电脑、笔记本电脑、超级本电脑、智能电话、可穿戴设备、平板电脑、个人数字助理(PDA)、超移动PC、移动电话、台式计算机、服务器、打印机、扫描仪、显示器、机顶盒、娱乐控制单元、数码相机,便携式音乐播放器或数字录像机。计算设备可以是固定的、便携式的或可穿戴的。在另外的实施中,计算设备100可以是处理数据的任何其他电子设备。

摄像机阵列32可以是参考图1和图2或其他适合的配置所述的类型。相机阵列可以与计算设备100的其余部分一起被合并到同一外壳中,或者其可以是通过适合的有线或无线连接器附接的独立外围设备。在固定或便携式配置中,计算设备可以用作服务器设备、编辑设备或客户端设备。

实施例可以被实现为以下各项的一部分:使用母板、专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)互连的一个或多个存储器芯片、控制器、CPU(中央处理单元)、微芯片或集成电路。

对“一个实施例”、“实施例”、“示例实施例”、“各种实施例”等的提及,指示这样描述的(一个或多个)实施例可以包括特定特征、结构或特性,但并非每个实施例都必须包括特定特征、结构或特性。此外,一些实施例可以具有针对其他实施例描述的特征中的一些、全部或没有这些特征。

在说明书和所附权利要求中,可以使用术语“耦合”以及其衍词。“耦合”用于指示两个或更多个元件协作或交互,但它们之间可以有或可以没有中间的物理或电气组件。

如权利要求书中所使用的,除非另有规定,否则使用序数形容词“第一”、“第二”、“第三”等来描述共同的元素,仅仅指示涉及相同的元素的不同实例,并且不意味着如此描述的元素必须按照给定的顺序(在时间上或空间上)、排名、或以任何其他方式。

附图和前面的描述给出了实施例的示例。本领域技术人员将理解,所述元素中的一个或多个可以被很好地组合成单个功能元素。替代地,某些元素可以分为多个功能元素。一个实施例中的元素可以被添加到另一个实施例中。例如,本文所述的处理的顺序可以改变,并且不限于本文所述的方式。此外,任何流程图的动作都不需要按照所示的顺序实现;也不需要执行所有动作。另外,不依赖于其他动作的那些动作可以与其他动作并行执行。实施例的范围决不受这些具体示例的限制。无论在说明书中是否明确给出,许多变型都是可能的,例如,结构、尺寸和材料使用方面的差异。实施例的范围至少与所附权利要求所给出的范围相同。不同实施例的各种特征可以用各种方式与所包括的一些特征和其他被排除的特征组合以适合各种不同应用。

一些实施例涉及一种方法,该方法包括:接收包括视口元数据的经编码的视频,对所述视频进行解码,提取所述视口元数据,基于所述视口元数据生成经解码的视频的视口,以及缓冲所生成的视口以进行显示。

在另外的实施例中,所述视口元数据包括感兴趣的区域的中心。

在另外的实施例中,所述中心被指示为视口表示的经度和纬度。

在另外的实施例中,所述视口元数据包括所述感兴趣区域的视场,所述感兴趣区域的视场是基于距所述中心的距离的。

在另外的实施例中,所述视场被指示为水平角和竖直角。

在另外的实施例中,所述视口元数据被编码为补充增强信息消息。

在另外的实施例中,所接收到的经编码的视频是宽视场的平面投影。

在另外的实施例中,所述平面投影是等距矩形投影并且所述宽视场是全景的。

在另外的实施例中,其中,所述视口元数据与所接收到的经编码的视频的帧相关联,所述方法包括针对所述经编码的视频的另外的帧接收另外的视口元数据。

另外的实施例包括确定用户是否已经指示使用用户选择的视口,如果是,则使用所述用户选择的视口来生成视口,而不是使用所述视口元数据来生成视口。

在另外的实施例中,所述视口元数据包括多个视口,所述方法还包括选择多个视口中的一个视口,并且其中,生成视口包括使用所述多个视口中所选择的一个视口来生成视口。

在另外的实施例中,选择所述多个视口中的一个视口包括接收对所述多个视口中的一个视口的用户选择。

在另外的实施例中,所述多个视口的大小被用于创建缩放效果。

在另外的实施例中,所述视口元数据与所接收到的所述经编码的视频的帧相关联,所述方法包括针对所述经编码的视频的另外的帧接收另外的视口元数据。

在另外的实施例中,所述经编码的视频还包括旋转取向元数据,所述方法还包括提取所述旋转取向元数据,以及基于所述旋转取向元数据旋转所述经解码的视频,其中,生成视口包括使用经旋转的经解码的视频来生成视口。

另外的实施例涉及一种机器可读介质,其上存储有指令,所述指令在被执行时,使机器执行以下操作,包括:接收包括视口元数据的经编码的视频,对所述视频进行解码,提取所述视口元数据,基于所述视口元数据生成经解码的视频的视口,以及缓冲所生成的视口以进行显示。

另外的实施例涉及一种装置,该装置包括:视频解码器,所述视频解码器用于接收包括视口元数据的宽视场视频并且提取所述视口元数据,以及视口生成器,所述视口生成器用于基于所述视口元数据生成经解码的视频的视口,来缓冲所生成的视口以进行显示。

另外的实施例涉及一种方法,该方法包括:接收宽视场视频,将所述视频绘制到平面投影中,接收所述视频中的选定感兴趣的区域,生成描述所述选定感兴趣的区域的视口元数据,将所述平面投影编码为经编码的视频,所述经编码的视频包括所述视口元数据,以及存储所述经编码的视频。

在另外的实施例中,所述视口元数据包括感兴趣的区域的中心。

在另外的实施例中,所述中心被指示为视口表示的经度和纬度。

在另外的实施例中,所述视口元数据包括所述感兴趣的区域的视场,所述感兴趣区域的视场是基于距所述中心的距离的。

在另外的实施例中,所述视场被指示为水平角和竖直角。

在另外的实施例中,所述视口元数据被编码为补充增强信息消息。

在另外的实施例中,所接收到的宽视场视频是从多个相机接收到的,所述方法还包括将来自多个相机的视频拼接在一起以产生单个宽视场视频。

在另外的实施例中,绘制所述视频包括将所述视频绘制到等距矩形投影,其中所述宽视场是全景的。

另外的实施例包括:选择投影的旋转,生成描述所选择的旋转的旋转取向元数据,以及基于所述所选择的旋转来旋转所述投影,其中,对所述平面投影进行编码包括:在旋转所述投影之后进行编码,并且在经编码的视频中包括旋转取向元数据。

一些实施例涉及一种机器可读介质,其上存储有指令,所述指令在被执行时,使机器执行以下操作,包括:接收宽视场视频,将所述视频绘制到平面投影中,接收所述视频中的选定感兴趣的区域,生成描述所述选定感兴趣的区域的视口元数据,将所述平面投影编码为经编码的视频,所述经编码的视频包括所述视口元数据,以及存储所述经编码的视频。

另外的实施例包括通过针对运动分析所述视频的场景并确定场景的哪个部分包含最快的运动来选择所述选定感兴趣的区域。

一些实施例涉及一种装置,该装置包括:用于接收宽视场视频的缓冲器,用于将视频绘制到平面投影中的投影绘制模块,用于接收视频中的选定感兴趣的区域并生成描述该选定感兴趣的区域的视口元数据的感兴趣的区域选择器,以及用于将平面投影编码为包括视口元数据的经编码的视频并存储经编码的视频的编码器。

在另外的实施例中,感兴趣的区域选择器还分析视频,以将选定感兴趣的区域选择为具有最高复杂性的特征。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号