掌桥专利:专业的专利平台
掌桥专利
首页

一种全景视频显示方法及显示设备

文献发布时间:2023-06-19 12:16:29


一种全景视频显示方法及显示设备

技术领域

本申请涉及全景视频技术领域,尤其涉及一种全景视频显示方法及显示设备。

背景技术

全景视频是基于360度全景图像而发展的一种新型的多媒体形式,通过将一系列静态的全景图像连续播放而转化成动态的全景视频。全景视频一般由软件将全景摄像机采集的各个方位的视频图像拼合而成的,并使用专门的播放器进行播放,将平面视频投影为360度全景模式,呈现给观赏者水平方向360度、垂直方向180度的全包围空间视域。观赏者可以通过头部动作、眼球运动、遥控器控制等方式控制全景视频的播放,从而体会身临其境的感受。作为一种新型异构多媒体业务,全景视频业务流含有音频、视频、文本、交互、控制指令等多种数据类型,具有多样化的服务质量(Quality of Service,QoS)需求。

虚拟现实(Virtual Reality,VR)技术是当前计算机应用领域中的一个研究热点。VR技术是一种集实时三维计算机图形学技术、人机交互技术、传感技术、多媒体技术、广角立体显示技术、网络技术等多种先进技术为一体的人机交互技术,可以形象地模拟人在自然环境中的各种感知性行为。用户可以通过立体头盔、数据手套、三维鼠标等设备沉浸在计算机创造的虚拟环境中,并可以用人类自然的行为和感知与虚拟环境中的对象进行各种交互性活动。

对于VR场景中的全景视频,显示设备中的虚拟相机(相当于人的眼睛,本申请中也称为用户视点)交互是一种主要的交互手段,通过改变虚拟相机的位置、角度,用户可以360度自由观看全景视频的任意方向,是一种3自由度的交互方式,可以理解为用户的位置没有发生变化,而角度可以变化。

一般的,用户在观看全景视频时,往往具有近距离放大观看全景视频局部区域或者远距离缩小观看全景视频局部区域的需求。目前,常规的缩放方法通过改变虚拟相机的视场角,使同一个硬件屏幕内容对应的视频区域变大或变小来变实现缩放效果。由于更改虚拟相机的视场角会导致VR场景中的视场角大小与显示设备的实际硬件结构的视场角大小不相符,导致显示的全景视频图像存在较大的变形和拉伸,显示效果欠佳,用户体验较差。

发明内容

本申请提供了一种全景视频显示方法及显示设备用以在VR场景中放大或缩小观看全景视频时,提高全景视频显示的准确性。

第一方面,提供一种显示全景视频的显示设备,包括:

显示器,与图形处理器连接,被配置为显示全景视频;

存储器,与图形处理器连接,被配置为存储计算机指令;

所述图形处理器,被配置为根据所述计算机指令执行以下操作:

响应于全景视频播放请求,获取目标全景视频;

针对所述目标全景视频中的每一全景视频帧,响应于缩放请求,确定所述缩放请求对应的目标距离向量,并根据显示设备的旋转角度,确定所述用户视点的当前朝向,所述目标距离向量用于指示所述用户视点与预先创建的全景视频球面网格的球心之间的距离,以及所述用户视点或所述全景视频球面网格的移动方向;

根据确定的所述目标距离向量,在所述用户视点的当前朝向上,调整所述用户视点或所述全景视频球面网格;

根据所述全景视频帧渲染所述全景视频球面网格,并显示渲染后的视频帧。

第二方面,提供一种全景视频显示方法,包括:

响应于全景视频播放请求,获取目标全景视频;

针对所述目标全景视频中的每一全景视频帧,响应于缩放请求,确定所述缩放请求对应的目标距离向量,并根据显示设备的旋转角度,确定所述用户视点的当前朝向,所述目标距离用于指示所述用户视点与预先创建的全景视频球面网格的球心之间的距离,以及所述用户视点或所述全景视频球面网格的移动方向;

根据确定的所述目标距离向量,在所述用户视点的当前朝向上,调整所述用户视点或所述全景视频球面网格;

根据所述全景视频帧渲染所述全景视频球面网格,并显示渲染后的视频帧。

第三方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行上述第二方面的方法。

本申请的上述实施例中,通过人机交互,获取待显示的目标全景视频及接收缩放请求,针对目标全景视频中的每一全景视频帧,根据接收的缩放请求确定满足缩放需求的目标距离向量,根据陀螺仪读取的显示设备的旋转角度确定用户视点的当前朝向,并根据确定的目标距离向量,在用户视点的当前朝向上,调整用户视点或全景视频球面网格,使得用户视点与预先创建的全景视频球面网格的球心之间的距离为目标距离向量的长度,从而达到缩放效果,由于调整过程中未改变虚拟相机(用户视点)的视场角,这样,VR场景中的视场角大小与显示设备的实际硬件结构的视场角大小相符,调整后渲染显示的全景视频帧不会出现变形和拉伸的异常现象。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1示例性示出了本申请的实施例提供的VR头戴显示设备的结构图;

图2a示例性示出了相关技术中全景视频的放大方法平面示意图;

图2b示例性示出了相关技术中全景视频的缩小方法平面示意图;

图3示例性输出了本申请实施例提供的全景视频显示方法流程图;

图4a为本申请实施例提供的调整用户视点的放大方法平面示意图;

图4b为本申请实施例提供的调整用户视点的缩小方法平面示意图;

图4c为本申请实施例提供的调整全景视频球面网格的放大方法平面示意图;

图4d为本申请实施例提供的调整全景视频球面网格的缩小方法平面示意图;

图5示例性示出了本申请实施例提供的调整用户视点进行全景视频缩放显示的完整方法流程图;

图6示例性示出了本申请实施例提供的调整球心进行全景视频缩放显示的完整方法流程图;

图7示例性示出了本申请实施例提供的显示设备的硬件结构图。

具体实施方式

为使本申请的目的、实施方式和优点更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,所描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。

基于本申请描述的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请所附权利要求保护的范围。此外,虽然本申请中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。

需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。

本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明(Unless otherwise indicated)。应该理解这样使用的用语在适当情况下可以互换,例如能够根据本申请实施例图示或描述中给出那些以外的顺序实施。

此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。

本申请中使用的术语“模块”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。

本申请中使用的″虚拟相机″,用于模拟虚拟空间中的人眼,包括人眼的观看位置和视场角的大小。

本申请中使用的″二维屏幕″,是指显示设备中的硬件显示屏幕。

本申请实施例提供一种全景视频显示方法及显示设备。所述显示设备可以是头戴式显示设备、智能手机、平板电脑、计算机、笔记本电脑、智能电视等具有全景视频播放功能和交互功能的设备。

以虚拟现实(Virtual Reality,VR)头戴式显示设备为例,图1示例性示出了本申请的实施例提供的VR头戴显示设备100的结构图。如图1所示,VR头戴显示设备100包括透镜组101以及设置于透镜组101正前方的显示屏102,其中透镜组101由左显示镜片101_1和右显示镜片101_2组成。用户在使用VR头戴显示设备100时,人眼可以通过透镜组101观看显示屏102显示的全景视频帧,体验VR效果。

图2a和图2b示例性示出了相关技术中全景视频的缩放方法平面示意图。其中,全景视频球面为全景视频的渲染载体,视场角A的大小是由显示设备的实际硬件结构确定的。

如图2a所示的放大方法平面示意图,减小视场角A的大小得到视场角B,视场角B对应的视域范围B小于视场角A对应的视域范围A,相对于视场角A看到的视频内容,视场角B看到的视频内容更少将视场角B对应的视域范围B中的视频内容映射到二维屏幕上,相对于视场角A,视频内容被放大,从而实现放大效果。

如图2b所示的缩小方法平面示意图,增大视场角A的大小得到视场角C,视场角C对应的视域范围C大于视场角A对应的视域范围A,相对于视场角A看到的视频内容,视场角C看到的视频内容更多将视场角C对应的视域范围C内的视频内容映射到二维屏幕上,相对于视场角A,视频内容被缩小,从而实现缩小效果。

图2a和图2b是通过更改虚拟相机的视场角大小实现的缩放效果,由于更改后的视场角大小与实际硬件结构的视场角大小不相符,视场角对应的视域范围内的视频内容显示在二维屏幕上时,图像会存在较大的变形和拉伸,显示效果欠佳,用户体验较差。

为了解决上述问题,本申请实施例提供一种全景视频显示方法及显示设备。在VR场景中,通过人机交互,获取目标全景视频及接收缩放请求,通过陀螺仪获取的显示设备的旋转角度确定用户视点的当前朝向;在不改变用户视点视场角的情况下,根据缩放请求确定的目标距离向量,在用户视点的当前朝向上,根据目标距离向量的正负,将用户视点沿着当前朝向的正向或反向移动目标距离,或者,根据目标距离向量的正负,将全景视频球面网格沿着当前朝向的反向或正向移动目标距离,使得用户视点与全景视频球面网格的球心之间的距离为目标距离,让更少或者更多的全景图像进入到视场角内,从而实现放大或缩小的效果。

下面结合附图详细描述本申请的实施例。

图3示例性输出了本申请实施例提供的全景视频显示方法流程图。如图3所示,该流程由显示设备执行,主要包括以下几步:

S301:响应于全景视频播放请求,获取目标全景视频。

该步骤中,通过人机交互,启动VR全景视频播放程序,用户选择需要播放的目标全景视频,向显示设备发送全景视频播放请求。显示设备响应全景视频播放请求,根据全景视频携带的目标全景视频的标识(比如视频名称、视频编号、视频地址等),向服务器发送视频获取请求,服务器接收到视频获取请求后,将目标全景视频发送给显示设备。

为了提高视频获取效率,本申请的实施例中,显示设备还可根据全景视频携带的目标全景视频的标识,先从本地获取目标全景视频,若未获取到,则从服务器侧获取。

在S301中,VR全景视频播放程序启动后,显示设备中的渲染引擎创建一个全景视频球面网格,作为全景视频的渲染载体。全景视频球面网格中每个网格由两个三角形组成,包含多个顶点,经光栅化操作,生成各个片元,各个片元的UV坐标由各个顶点的UV坐标插值得到的。

S302:针对目标全景视频中的每一全景视频帧,响应于缩放请求,确定缩放请求对应的目标距离向量,并根据显示设备的旋转角度,确定用户视点的当前朝向。

该步骤中,目标全景视频播放过程中,用户通过显示设备的触控板、手柄、功能按键等向显示设备发送缩放请求,显示设备接收到缩放请求后,进行全景视频帧的放大或缩小操作,放大或缩小操作可通过改变用户视点与S301中创建的全景视频球面网格之间的距离来实现。为了简化距离计算方式,本申请的实施例中,将用户视点与全景视频球面网格之间的距离转化为用户视点与全景初频球面网格的球心之间的距离。

在S302中,显示设备响应于缩放请求,确定用户视点与全景视频球面网格的球心之间的目标距离向量。本申请的实施例中,设定每次缩放请求对应的距离步长为step,用户每触发一次缩放请求,在当前距离向量的基础上,加上或减去step,step的值可根据实际情况进行设置。具体实施时,假设用户视点与全景视频球面网格的球心之间的距离为d,当接收的缩放请求为放大请求时,在当前距离向量d的基础上加上设定步长step,得到目标距离向量(d’=d+step);当接收的缩放请求为缩小请求时,在当前距离向量d的基础上减去设定步长step,得到目标距离向量d’(d’=d-step)。

其中,目标距离向量的长度(模)也称为目标距离,表示用户视点与预先创建的全景视频球面网格的球心之间的距离,目标距离向量的正负表示用户视点或全景视频球面网格的移动方向。

本申请的实施例中,目标距离向量d’对应的目标距离大于等于全景视频球面网格的半径D时,表明用户视点在全景视频球面网格的外或在全景视频球面网格上,此时,用户无法观看全景视频。为了保证全景视频的正确显示,设定目标距离小于全景视频球面网格的半径D。当用户视点距离全景视频球面网格太近时,由于放大程度过高,显示的全景视频已经没有有效信息,因此,设定距离上限d_max,若确定的目标距离大于设定的距离上限d_max,则将距离上限d_max确定为目标距离。

本申请的实施例中,本次缩放请求确定的目标距离向量d’可作为下一次缩放请求对应的当前距离向量d。

需要说明的是,本申请实施例对目标距离向量的确定方式不做限制性要求,还可以根据缩放请求携带的放大或缩小的倍数,确定目标距离向量,目标距离向量的方向与当前距离向量的方向一致。具体的,根据放大或缩小的倍数对应权重确定目标距离。以放大为例,当放大倍数为1倍时,在当前距离向量的长度基础上乘以第一放大阈值,得到目标距离向量的长度,当放大倍数为2倍时,在当前距离向量的长度基础上乘以第二放大阈值,得到目标距离向量的长度;或者,当放大倍数为1倍时,目标距离向量的长度为D/2,当放大2倍时,目标距离向量的长度为2D/3。

在S302中,针对目标全景视频中的每一全景视频帧,陀螺仪实时测量显示设备的旋转角度,根据旋转角度确定为用户视点的当前朝向。

在一种可选的实施方式中,在执行S302时,陀螺仪可获取当前全景视频帧相对于前一全景视频帧对应的显示设备的旋转角度,根据旋转角度旋转前一全景视频帧对应的用户视点的朝向,得到用户视点的当前朝向。例如,当前全景视频帧相对于前一全景视频帧对应的显示设备的旋转角度为α,前一全景视频帧对应的用户视点的朝向为

在另一种可选的实施方式中,在执行S302时,陀螺仪可获取当前全景视频帧对应的显示设备的全局旋转角度,根据全局旋转角度旋转用户视点的预设初始朝向,得到用户视点的当期朝向。例如,当前全景视频帧相对于设定的初始朝向(0°)对应的显示设备的全局旋转角度为γ,则用户视点的初始朝向旋转γ后得到当前朝向。

在本申请的实施例中,在S302执行前,还包括对用户视点进行初始化操作。具体的,读取陀螺仪数据,获得显示设备的初始旋转角度,根据获取的初始旋转角度,设置用户视点的初始朝向,并将用户视点置于全景视频球面网格的球心,即用户视点与全景视频球面网格的球心之间的初始距离d为0,也就是说,在显示设备未接收到缩放请求时,以原始全景视频帧大小进行显示。

S303:根据确定的目标距离向量,在用户视点的当前朝向上,调整用户视点或全景视频球面网格。

显示设备旋转过程中,用户视点的方向和位置发生变化。在S303中,将用户视点重置于全景视频球面网格的初始球心(即全景视频球面网格未移动前的球心的位置),并调整为当前朝向,使得调整后的用户视点的朝向与陀螺仪读取的旋转角度一致,保证在当前朝向上,显示的全景视频区域正确。进一步地,在用户视点的当前朝向上,根据确定的目标距离向量,调整用户视点或全景视频球面网格,使得用户视点与全景视频球面网格的球心之间的距离为目标距离。调整方式如下:

方式一

保持全景视频球面网格不动,将用户视点从初始球心,沿着当前朝向的正向或反向,根据所述目标距离向量的正负,移动目标距离。

图4a为本申请实施例提供的调整用户视点的放大方法平面示意图。如图4a所示,调整前,用户视点位于全景视频球面网格的初始球心位置,目标距离为0,当缩放请求为放大请求时,调整用户视点,缩小用户视点与全景视频球面网格的距离,使较少的视频内容映射到二维屏幕上,从而达到放大效果。放大过程中,显示设备的视场角大小不变,用户视点与全景视频球面网格的球心的距离为目标距离,也就是说,用户视点位置的移动轨迹为与全景视频球面网格同心的球面,轨迹球面的半径为目标距离,从而保证以当前放大请求对应的放大效果正确显示视场角内看到的全景视频内容。

当接收到放大请求时,用户视点的具体调整方式如下:

若目标距离向量为正,则保持全景视频球面网格不动,将用户视点从初始球心,沿着当前朝向的正向,移动目标距离;若目标距离向量为负,则保持全景视频球面网格不动,将用户视点从初始球心,沿着当前朝向的反向,移动目标距离。

例如,假设当前距离向量为-D/4,接收到放大请求后,加上距离步长D/2,得到的目标距离向量为D/4(大于0),方向为正,则保持全景视频球面网格不动,将用户视点从初始球心,沿着当前朝向的正向,移动D/4。

再例如,假设当前距离向量为-D/2,接收到放大请求后,加上距离步长D/4,得到的目标距离向量为-D/4(小于0),方向为负,则保持全景视频球面网格不动,将用户视点从初始球心,沿着当前朝向的反向,移动D/4。

图4b为本申请实施例提供的调整用户视点的缩小方法平面示意图。如图4b所示,调整前,用户视点位于全景视频球面网格的初始球心位置,目标距离为0,当缩放请求为缩小请求时,调整用户视点,增大用户视点与全景视频球面网格的距离,使较多的视频内容映射到二维屏幕上,从而达到缩小效果。缩小过程中,显示设备的视场角大小不变,用户视点与全景视频球面网格的球心的距离为目标距离,也就是说,用户视点位置的移动轨迹为与全景视频球面网格同心的球面,轨迹球面的半径为目标距离,从而保证以当前缩小请求对应的缩小效果正确显示视场角内看到的全景视频内容。

当接收到缩小请求时,用户视点的具体调整方式如下:

若目标距离向量为正,则保持全景视频球面网格不动,将用户视点从初始球心,沿着当前朝向的正向,移动目标距离;若目标距离向量为负,保持全景视频球面网格不动,将用户视点从初始球心,沿着当前朝向的反向,移动目标距离。

例如,假设当前距离向量为D/2,接收到缩小请求后,减去距离步长D/4,得到的目标距离向量为D/4(大于0),方向为正,则保持全景视频球面网格不动,将用户视点从初始球心,沿着当前朝向的正向,移动D/4。

再例如,假设当前距离向量为D/4,接收到缩小请求后,减去距离步长D/2,得到的目标距离向量为-D/4(小于0),方向为负,则保持全景视频球面网格不动,将用户视点从初始球心,沿着当前朝向的负向,移动D/4。

方式二

保持用户视点不动,将全景视频球面网格从初始位置,沿着当前朝向的正向或反向,移动目标距离。

图4c为本申请实施例提供的调整全景视频球面网格的放大方法平面示意图。如图4c所示,调整前,用户视点位于全景视频球面网格的初始球心位置,目标距离为0,当缩放请求为放大请求时,调整全景视频球面网格,缩小用户视点与全景视频球面网格的距离,使较少的视频内容映射到二维屏幕上,从而达到放大效果。放大过程中,用户视点与全景视频球面网格的球心的距离为目标距离,也就是说,全景视频球面网格球心位置的移动轨迹为与初始球心同心的球面,轨迹球面的半径为目标距离,从而保证以当前放大请求对应的放大效果正确显示视场角内看到的全景视频内容。

当接收到放大请求时,用户视点的具体调整方式如下:

若目标距离向量为正,则保持用户视点不动,将全景视频球面网格的球心从初始位置,沿着当前朝向的反向,移动目标距离;若目标距离向量为负,则保持用户视点不动,将全景视频球面网格的球心从初始位置,沿着当前朝向的正向,移动目标距离。

例如,假设当前距离向量为-D/4,接收到放大请求后,加上距离步长D/2,得到的目标距离向量为D/4(大于0),方向为正,则保持用户视点不动,将全景视频球面网格的球心从初始位置,沿着当前朝向的反向,移动D/4。

再例如,假设当前距离向量为-D/2,接收到放大请求后,加上距离步长D/4,得到的目标距离向量为-D/4(小于0),方向为负,则保持用户视点不动,将全景视频球面网格的球心从初始位置,沿着当前朝向的正向,移动D/4。

图4d为本申请实施例提供的调整全景视频球面网格的缩小方法平面示意图。如图4d所示,调整前,用户视点位于全景视频球面网格的初始球心位置,目标距离为0,当缩放请求为缩小请求时,调整全景视频球面网格,增大用户视点与全景视频球面网格的距离,使较多的视频内容映射到二维屏幕上,从而达到缩小效果。缩小过程中,用户视点与全景视频球面网格的球心的距离为目标距离,也就是说,全景视频球面网格的球心位置的移动轨迹为与初始球心同心的球面,轨迹球面的半径为目标距离,从而保证以当前缩小请求对应的缩小效果正确显示视场角内看到的全景视频内容。

当接收到缩小请求时,用户视点的具体调整方式如下:

若目标距离向量为正,则保持用户视点不动,将全景视频球面网格的球心从初始位置,沿着当前朝向的反向,移动目标距离;若目标距离向量为负,则保持用户视点不动,将全景视频球面网格的球心从初始位置,沿着当前朝向的正向,移动目标距离。

例如,假设当前距离向量为D/2,接收到缩小请求后,减去距离步长D/4,得到的目标距离向量为D/4(大于0),方向为正,则保持用户视点不动,将全景视频球面网格的球心从初始位置,沿着当前朝向的反向,移动D/4。

再例如,假设当前距离向量为D/4,接收到缩小请求后,减去距离步长D/2,得到的目标距离向量为-D/4(小于0),方向为负,则保持用户视点不动,将全景视频球面网格的球心从初始位置,沿着当前朝向的正向,移动D/4。

需要说明的是,上述放大或缩放效果,是相对于接收缩放请求前全景视频帧的播放效果而言的。

S304:根据全景视频帧渲染全景视频球面网格,并显示渲染后的视频帧。

该步骤中,通过调整用户视点或全景视频球面网格,使得用户视点与全景视频球面网格的球心的距离为目标距离后,根据S302中生成的各个片元的UV坐标,从全景视频帧中获取相应片元的颜色值,根据各个片元的颜色值,渲染全景视频球面网格并显示渲染后的视频帧。

本申请的上述实施例中,在不改变显示设备的视场角大小的情况下,当接收到放大请求时,通过调整用户视点或全景视频球面网格的球心,缩小用户视点与全景视频球面网格的距离,使更少的视频内容映射到二维屏幕上,从而达到放大效果,当接收到缩小请求时,通过调整用户视点或全景视频球面网格的球心,增大用户视点与全景视频球面网格的距离,使更多的视频内容映射到二维屏幕上,从而达到缩小效果。与通过改变视场角实现放大或缩小的方法相比,用户可根据实际需求进行放大或缩小操作,提高了观看全景视频时交互的灵活性,并提高了全景视频显示的准确性。

以通过调整用户视点来调整目标距离为例,图5示例性示出了本申请实施例提供的完整的全景视频缩放显示方法流程图。如图5所示,该流程主要包括以下几步:

S501:响应于全景视频播放请求,获取目标全景视频。

该步骤的详细描述参见S301,在此不再重复。

S502:对用户视点进行初始化。

该步骤中,根据陀螺仪读取的显示设备的初始旋转角度,设置用户视点的初始朝向,并将用户视点置至于预先创建的全景视频球面网格的球心,完成用户视点的初始化操作。在接收到目标全景视频后,以初始化后的用户视点状态显示目标全景视频,此时,用户看到的全景视频内容未被放大或缩小。

通过人机交互,用户触发放大请求或缩小请求,请求不同,确定的目标距离向量不同,当接收到当大请求时,执行S503~S510,当接收到缩小请求时,执行S511~S518。

S503:针对目标全景视频中的每一全景视频帧,响应于放大请求,确定用户视点与预先创建的全景视频球面网格的球心之间的当前距离向量,与设定步长的和,得到第一目标距离向量。

该步骤的详细描述参见S302,在此不再重复。

S504~S505:确定第一目标距离向量对应的第一目标距离是否大于等于设定的距离上限,若是,将第一目标距离设置为距离上限。

S506:将用户视点重置于初始球心。

该步骤中,第一目标距离为用户视点与全景视频球面网格的球心之间的距离,放大过程中,全景视频球面网格保持不动(即球心不动),为距离调整方便,可将用户视点重置于初始球心位置后,然后确定用户视角的当前朝向,并按第一目标距离移动用户视点。

S507:根据显示设备的旋转角度,确定用户视点的当前朝向。

该步骤中,陀螺仪实时测量显示设备的旋转角度,根据旋转角度确定用户视点的当前朝向。具体描述参见S302,在此不再重复。

S508:确定第一目标距离向量的正负,若为正,执行S509,若为负,则执行S510。

S509:沿着当前朝向的正向,将用户视点从初始球心移动第一目标距离。

S510:沿着当前朝向的反向,将用户视点从初始球心移动第一目标距离。

在S509和S510中,接收到的放大请求后,通过缩小用户视点与全景视频球面网格之间的距离,使视场角内更少的视频内容映射到二维屏幕上,从而实现放大效果。详细描述参见S303,在吃不在重复。

S511:针对目标全景视频中的每一全景视频帧,响应于缩小请求,确定用户视点与预先创建的全景视频球面网格的球心之间的当前距离向量,与设定步长的差,得到第二目标距离向量。

该步骤的详细描述参见S302,在此不再重复。

S512~S513:确定第二目标距离向量对应的第二目标距离是否小于等于设定的距离上限,若是,将第二目标距离设置为距离上限。

S514:将用户视点重置于初始球心。

该步骤中,第二目标距离为用户视点与全景视频球面网格的球心之间的距离,缩小过程中,全景视频球面网格保持不动(即球心不动),为距离调整方便,可将用户视点重置于初始球心位置后,然后确定用户视角的当前朝向,并按第二目标距离移动用户视点。

S515:根据显示设备的旋转角度,确定用户视点的当前朝向。

该步骤中,陀螺仪实时测量显示设备的旋转角度,根据旋转角度确定用户视点的当前朝向。具体描述参见S302,在此不再重复。

S516:确定第二目标距离向量的正负,若为正,执行S517,若为负,则执行S518。

S517:沿着当前朝向的正向,将用户视点从初始球心移动第二目标距离。

S518:沿着当前朝向的反向,将用户视点从初始球心移动第二目标距离。

在S517和S518中,接收到的缩小请求后,通过增大用户视点与全景视频球面网格之间的距离,使视场角内更多的视频内容映射到二维屏幕上,从而实现缩小效果。详细描述参见S303,在吃不在重复。

以通过调整全景视频球面网格来调整目标距离为例,图6示例性示出了本申请实施例提供的完整的全景视频缩放显示方法流程图。如图6所示,该流程主要包括以下几步:

S601:响应于全景视频播放请求,获取目标全景视频。

该步骤的详细描述参见S301,在此不再重复。

S602:对用户视点进行初始化。

该步骤中,根据陀螺仪读取的显示设备的初始旋转角度,设置用户视点的初始朝向,并将用户视点置至于预先创建的全景视频球面网格的球心,完成用户视点的初始化操作。在接收到目标全景视频后,以初始化后的用户视点状态显示目标全景视频,此时,用户看到的全景视频内容未被放大或缩小。

通过人机交互,用户触发放大请求或缩小请求,请求不同,确定的目标距离向量不同,当接收到当大请求时,执行S603~S610,当接收到缩小请求时,执行S611~S618。

S603:针对目标全景视频中的每一全景视频帧,响应于放大请求,确定用户视点与预先创建的全景视频球面网格的球心之间的当前距离向量,与设定步长的和,得到第一目标距离向量。

该步骤的详细描述参见S302,在此不再重复。

S604~S605:确定第一目标距离向量对应的第一目标距离是否大于等于设定的距离上限,若是,将第一目标距离设置为距离上限。

S606:将用户视点重置于初始球心。

该步骤中,第一目标距离为用户视点与全景视频球面网格的球心之间的距离,放大过程中,为距离调整方便,可将用户视点重置于初始球心位置后,然后确定用户视角的当前朝向,并按第一目标距离移动球心。

S607:根据显示设备的旋转角度,确定用户视点的当前朝向。

该步骤中,陀螺仪实时测量显示设备的旋转角度,根据旋转角度确定用户视点的当前朝向。具体描述参见S302,在此不再重复。

S608:确定第一目标距离向量的正负,若为正,执行S509,若为负,则执行S510。

S609:沿着当前朝向的反向,将全景视频球面网格的球心从初始位置,移动第一目标距离。

S610:沿着当前朝向的正向,将全景视频球面网格的球心从初始位置,移动第一目标距离。

在S609和S610中,接收到的放大请求后,通过缩小用户视点与全景视频球面网格之间的距离,使视场角内更少的视频内容映射到二维屏幕上,从而实现放大效果。详细描述参见S303,在吃不在重复。

S611:针对目标全景视频中的每一全景视频帧,响应于缩小请求,确定用户视点与预先创建的全景视频球面网格的球心之间的当前距离向量,与设定步长的差,得到第二目标距离向量。

该步骤的详细描述参见S302,在此不再重复。

S612~S613:确定第二目标距离向量对应的第二目标距离是否小于等于设定的距离上限,若是,将第二目标距离设置为距离上限。

S614:将用户视点重置于初始球心。

该步骤中,第二目标距离为用户视点与全景视频球面网格的球心之间的距离,缩小过程中,全景视频球面网格保持不动(即球心不动),为距离调整方便,可将用户视点重置于初始球心位置后,然后确定用户视角的当前朝向,并按第二目标距离移动球心。

S615:根据显示设备的旋转角度,确定用户视点的当前朝向。

该步骤中,陀螺仪实时测量显示设备的旋转角度,根据旋转角度确定用户视点的当前朝向。具体描述参见S302,在此不再重复。

S616:确定第二目标距离向量的正负,若为正,执行S617,若为负,则执行S618。

S617:沿着当前朝向的反向,将全景视频球面网格的球心从初始位置,移动第二目标距离。

S618:沿着当前朝向的正向,将全景视频球面网格的球心从初始位置,移动第二目标距离。

在S617和S618中,接收到的缩小请求后,通过增大用户视点与全景视频球面网格之间的距离,使视场角内更多的视频内容映射到二维屏幕上,从而实现缩小效果。详细描述参见S303,在吃不在重复。

基于相同的技术构思,本申请实施例提供一种显示全景视频的显示设备,该显示设备可执本申请实施例提供的全景视频显示方法流程,并能达到同样的技术效果,在此不再重复。

参见图7,该显示设备包括陀螺仪701、存储器702、图形处理器703、显示器704,陀螺仪701、存储器702、显示器704与图形处理器703通过总线(在图7中用粗实线表示)连接,陀螺仪701被配置为读取显示设备的旋转角度;存储器702被配置为存储计算机指令;图形处理器703被配置为根据存储器702存储的计算机指令执行图3、图5、图6中全景视频的显示方法流程;显示器704被配置为显示全景视频。

本申请实施例还提供一种计算机可读存储介质,用于存储一些指令,这些指令被执行时,可以完成前述实施例的方法。

本申请实施例还提供一种计算机程序产品,用于存储计算机程序,该计算机程序用于执行前述实施例的方法。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用所述实施方式以及适于具体使用考虑的各种不同的变形的实施方式。

相关技术
  • 一种全景视频显示方法及显示设备
  • 一种全景视频显示方法及显示设备
技术分类

06120113237143