一种全景视频处理方法及服务器和客户端与流程

文档序号:12478977阅读:289来源:国知局
一种全景视频处理方法及服务器和客户端与流程

本发明涉及通信领域,尤其涉及一种全景视频处理方法及服务器和客户端。



背景技术:

VR(Virtual Reality)虚拟现实,综合利用计算机图形系统和各种现实及控制等接口设备,在计算机上生成的、可交互的三维环境中提供沉浸感觉的技术。虚拟现实技术可以创建体验虚拟世界的计算机仿真系统,利用计算机生成一种多源信息融合的交互式的三维动态视景和实体行为的模拟环境,使用户沉浸到该环境中。

3D视频(立体电影),利用人双眼的视角差和会聚功能产生立体效果,这种视频放映时通过观众的特制眼镜或幕前辐射状半锥形透镜光栅等技术手段,使观众左眼看到从左视角拍摄的画面,右眼看到从右视角拍摄的画面,通过双眼的会聚功能,合成为立体视觉影像,可以通过普通的摄像机拍摄,然后转换压制成适合VR头戴显示器或VR手机盒子看的视频格式。

全景视频通过360°全景摄像机拍摄,全景视频的每帧全景视频图像是由六幅不同方位的图像,经过图像拼接、融合等技术合成而来,在渲染阶段,运用openGL(Open Graphics Library,开放图形库)等技术将每帧全景视频图像以球面的形式呈现出来,模拟观看视角在球心位置,这样只要用户转动头部就能看到立体360度范围内的画面,这种渲染图像方法亦称为全景贴图。其播放格式主要分两大类,2D全景格式和3D全景格式,其中,2D全景格式的全景视频指的是普通的平面全景视频,3D全景格式又分为左右全景格式和上下全景格式,左右全景格式的全景视频和上下全景格式的全景视频通常指的是立体的全景视频,即既是3D视频又是全景视频。由于目前全景视频发展成熟,资源非常丰富,所以全景视频的分辨率也十分多样,导致部分分辨率的全景视频在进行播放时,不得不进行下采样才能将全景视频的每帧图像映射到球面域上,显然这样在进行网络传输时浪费了带宽,且较原始的全景视频图像损失了清晰度,,另外因为客户端在进行播放时不得不进行采样,导致全景视频的播放发生卡顿,实时性较低。

因此,亟需一种方法可以解决由于全景视频的分辨率不够合适导致的全景视频在传输时浪费带宽,渲染时损失清晰度,以及全景视频播放不够实时的问题。



技术实现要素:

本发明实施例提供一种全景视频处理方法及服务器和客户端,用以解决目前由于全景视频的分辨率不够合适,导致播放器在渲染图像时进行下采样从而浪费带宽、损失清晰度以及全景视频播放不够实时的问题。

本发明方法包括一种全景视频处理方法,该方法由服务器执行,包括:接收客户端发送的全景视频播放请求,所述全景视视频播放请求包含待播放的视频源标识和待播放的视频源的播放格式;

根据所述全景视频播放请求获取待播放的视频源,并确定所述待播放的视频源的横向分辨率与纵向分辨率之间的原始比例;

判断所述原始比例是否与预设的与所述播放格式相对应的设定比例一致;

若不一致,则调整所述待播放的视频源的横向分辨率与纵向分辨率之间的比例至设定比例,并将调整后的待播放的视频源发送至所述客户端,以使所述客户端将所述视频源的每帧图像的各像素点渲染在球面域上。

基于同样的发明构思,本发明实施例从进一步地提供一种全景视频处理方法,该方法由客户端执行,该方法包括:向服务器发送全景视视频播放请求,所述全景视视频播放请求包含待播放的视频源标识和待播放的视频源的播放格式;

接收所述服务器发送的与所述全景视视频播放请求相对应的待播放的视频源,并确定所述待播放的视频源的横向分辨率与纵向分辨率之间的原始比例;

判断所述原始比例是否与预设的与所述播放格式相对应的设定比例一致;

若不一致,则调整所述待播放的视频源的横向分辨率与纵向分辨率之间的比例至设定比例,并将调整后的待播放的视频源的每帧图像的各像素点渲染在球面域上。

基于同样的发明构思,本发明实施例进一步地提供服务器,该设备包括:

接收单元,用于接收客户端发送的全景视频播放请求,所述全景视视频播放请求包含待播放的视频源标识和待播放的视频源的播放格式;

获取单元,用于根据所述全景视频播放请求获取待播放的视频源;

确定单元,用于确定所述待播放的视频源的横向分辨率与纵向分辨率之间的原始比例;

判断单元,用于判断所述原始比例是否与预设的与所述播放格式相对应的设定比例一致;

调整单元,用于若不一致,则调整所述待播放的视频源的横向分辨率与纵向分辨率之间的比例至设定比例;

发送单元,用于将调整后的待播放的视频源发送至所述客户端,以使所述客户端将所述视频源的每帧图像的各像素点渲染在球面域上。

进一步地提供一种客户端,该设备包括:发送单元,用于向服务器发送全景视视频播放请求,所述全景视视频播放请求包含待播放的视频源标识和待播放的视频源的播放格式;

接收单元,用于接收所述服务器发送的与所述全景视视频播放请求相对应的待播放的视频源,

确定单元,用于确定所述待播放的视频源的横向分辨率与纵向分辨率之间的原始比例;

判断单元,用于判断所述原始比例是否与预设的与所述播放格式相对应的设定比例一致;

调整单元,用于若不一致,则调整所述待播放的视频源的横向分辨率与纵向分辨率之间的比例至设定比例,

渲染图像单元,用于将调整后的待播放的视频源的每帧图像的各像素点渲染在球面域上。

本发明实施例通过研究发现只有当每帧全景视频图像的宽高比例符合一定条件时,该全景视频帧和球面之间才会形成一一映射这一规律,进而得到不同播放格式的全景视频的设定比例,然后利用设定比例判断待播放的视频源的横向分辨率与纵向分辨率之间的原始比例是否与之一致,若不一致,则将待播放的视频源的分辨率进行调整,利用调整后的视频源进行播放,显然这种改进方法若应用于服务器侧,可以显著地提高传输带宽的利用率,提高视频清晰度,另外若这种改进方法应用于客户端侧,则因为避免了客户端进行下采样这一步骤,使得全景视频播放实时性得到提高。

附图说明

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

图1为现有技术提供的一种球面坐标系示意图;

图2为现有技术提供的一种矩形坐标系统示意图;

图3为现有技术提供的一种2D图像映射至3D球面域的贴面示意图;

图4为现有技术提供的一种2D图像的水平线与球面域的纬线之间的映射关系图;

图5为现有技术提供的一种2D图像的竖直线与球面域的经线之间的映射关系图;

图6为本发明实施例提供的一种全景视频处理方法流程示意图一;

图7为本发明实施例提供的一种全景视频处理方法流程示意图二;

图8至图10为本发明实施例提供的一种全景视频播放过程示意图;

图11为本发明实施例提供的一种服务器;

图12为本发明实施例提供的一种客户端。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

基于背景技术中关于球面贴图的分析,实验发现当每个全景视频帧的宽高比例满足一定条件时,该全景视频帧和球面之间才会形成一一映射(极点除外),所有像素点均会被映射到球面域上,具体的原理如下:

首先,介绍一下球面坐标的概念,如图1所示,设球心O(0,0,0),球面任一点P(x,y,z),点P在XOY平面上的投影为P'(x,y,0),即如公式1所示:

其中,r表示球体半径,α表示向量与z轴正方向的夹角,θ表示向量与x轴正方向的夹角。

另外,介绍一下矩形坐标系的概念,矩形位于平面直角坐标系XOY,设坐标原点O(0,0)位于矩形左下角,矩形宽为w,矩形高为h,M(x',y')为其上任一点,x'∈[0,w],y'∈[0,h],则矩形坐标系如图2所示。

因为矩形的球面贴图过程可认为是:矩形先映射到圆柱面上,然后从圆柱面的中间水平截面向两极,同轴圆弧的半径以rsinα的速度收敛,且在两极处矩形的上下两条水平棱线分别收敛成一个点,最后即形成球面,如图3所示。从工程实现上看,先将矩形在水平和竖直方向划分成若干个小矩形,然后逐块地映射到球面上。在球面上,原规整的小矩形会发生不同程度的形变,近似梯形,且越近赤道,形变越小,越向两极,形变越大,在靠近两极处,映射成了三角形。

另外,若从水平和竖直方向看,如图4和图5所示,矩形的每条水平棱线映射为球面上一系列半径为rsinα的同轴圆弧(即纬线),且越近两极,半径越小,在两极(即α等于0或π)收缩为一点,矩形的每条竖直棱线映射为球面上一系列半径为r的半圆弧(即经线)。

由以上分析可知,计算求出公式[1]中α、θ分别为:

将公式[2]和公式[3]代入公式[1],可知矩形上的点M到球面上的点P之间的映射关系为:

由公式[4]可知,从XOY直角坐标系到球面坐标的映射是一个非线性过程,故而会产生变形,如图4和图5所示。但原矩形和球面在特定量纲上存在一定的比例关系,如赤道纬线的弧长与矩形的宽度,经线与矩形的高度等,如果贴图过程按照这种比例关系进行,则能使得贴图实现像素点的一一映射(极点除外)。基于上述理论分析,本发明实施例通过对不同的播放格式的全景视频帧进行分析得出如下规律,对于2D全景视频来说,当视频帧的宽高比为2:1时,才能达到一一映射(极点除外);对于左右全景格式全景视频来说,当视频帧的宽高比为4:1时,才能达到一一映射(极点除外);对于左右全景格式全景视频来说,当视频帧的宽高比为1:1时,才能达到一一映射(极点除外)。上述规律的推导方法如下。

由于全景帧的中间水平棱线映射成球面赤道所在圆弧,对应张角为2π,所有竖直棱线映射成球面的经线,对应张角为π,所以可得出以下结论。

全景帧的宽度与赤道所在弧长存在以下关系:

2πr*f(ρ)=w……..公式[5]

全景帧高度与球面的经线存在以下关系:

πr*g(ρ)=h……..公式[6]

其中,ρ为球面弧线的曲率,f(ρ)、g(ρ)均为关于曲率的函数。

由于球面任一点曲率一样,所以可得出:

f(ρ)=g(ρ)……..公式[7]

由公式[5]、公式[6]、公式[7]可知,2D全景帧的宽高比应为2:1,才能达到一一映射(极点除外),所以我们提出2D全景帧的最优宽高比为2:1。

进一步地,因为左右全景格式的3D视频帧是从中间垂直方向将视频帧等分成几乎成镜像的两部分,只有稍许差别,所以对于左右全景格式的3D全景视频(既是全景又是3D),也是一幅视频帧分成左右两部分,且分别为全景帧。为达到最优映射,基于2D全景帧最优比例是2:1的分析,我们得出左右全景格式的3D全景视频帧的最优宽高比为4:1时,才能达到一一映射(极点除外)。

进一步地,因为上下全景格式的3D视频帧是从中间水平方向将画面等分为两半,且这两部分也几乎成镜像,只有稍许差别,所以对于上下全景格式的3D全景帧(同样既是全景又是3D),也是一幅视频帧分成上下两部分,且分别为全景。为达到最优映射,基于2D全景帧最优比例是2:1的分析,我们提出上下全景格式的3D全景视频的最优宽高比为1:1。

基于上述规律,本发明实施例提供一种全景视频处理方法流程示意图,参见图6所示,具体地实现方法包括:

步骤S101,接收客户端发送的全景视频播放请求,所述全景视视频播放请求包含待播放的视频源标识和待播放的视频源的播放格式。

步骤S102,根据所述全景视频播放请求获取待播放的视频源,并确定所述待播放的视频源的横向分辨率与纵向分辨率之间的原始比例。

步骤S103,判断所述原始比例是否与预设的与所述播放格式相对应的设定比例一致。

步骤S104,若不一致,则调整所述待播放的视频源的横向分辨率与纵向分辨率之间的比例至设定比例,并将调整后的待播放的视频源发送至所述客户端,以使所述客户端将所述视频源的每帧图像的各像素点渲染在球面域上。

在步骤S101中,待播放的视频源标识可以指的是高清标识或者标清标识等。需要说明的是上述方法的执行主体是视频服务器,管理员可以对该视频服务器进行管控,为了让客户端请求的视频服务器上的视频源可以被一一映射到球面域上,本发明实施例通过改进视频服务器,改进方法是让视频服务器在输出视频源给客户端之前先对视频源的横向分辨率与纵向分辨率之间的原始比例进行判断,即判断该原始比例是否满足之前总结出来的最优比例,例如,如果视频源是2D全景视频帧,则判断原始比例是否满足2:1,假设判断结果是不满足,则对原始比例进行调整,将该视频源调整至设定比例,例如调整至2:1。这样,经过调整之后,视频源发给客户端的每帧图像的各像素点就可以被渲染在球面域上了。

具体地,视频服务器是根据全景视频播放请求进行判断,判断方法如下:若所述待播放的视频源的播放格式为2D全景格式,则2D全景格式对应的视频源的设定比例是2:1,则判断所述原始比例是否满足2比1;若所述待播放的全景视频源的播放格式为左右全景格式,则左右全景格式对应的视频源的设定比例是4:1,判断所述原始比例是否满足4比1;若所述待播放的全景视频源的播放格式为上下全景格式,则上下全景格式对应的视频源的设定比例是1:1,判断所述原始比例是否满足1比1。

经过上述判断之后,视频服务器将全景视频帧图像的比例进行调整,调整之后常用的视频分辨率如下:2D格式的全景视频帧:1920X960p、2048X1024p、2560X1280p、3840X1920p、4096X2048p;左右全景格式的全景视频帧:1920X480p、2048X512p、2560X640p、3840X960p、4096X1024p;上行格式的全景视频帧:960X960p、1024X1024p、1280X1280p、1920X1920p、2048X2048p;然后将调整后的待播放的视频源按照与所述设定比例对应的编码参数进行编码,将编码后的待播放的视频源发送至所述客户端,比如进行在线编码(即上传给服务器进行编码)或离线编码(即本地编码),编码完之后上传到CDN(Content Distribution Network,内容分发网)管理系统。其中,因为编码方法可以利用现有技术提供的各种编码方法,在此不作限定。显然,通过这种方法,视频服务器向客户端传送的视频源的像素点可以被一一映射到球面域上,所以带宽的利用率达到了100%,而且客户端因为不需要再进行下采样,所以可以提高视频播放的实时性。

考虑到我们的客户端会播放第三方的视频源(比如我们的合作方),其提供的全景视频源分辨率可能不符合上述最优比,但因为这时视频源是从第三方服务器获取的,所以无法进行管控,故本发明实施例进一步地提供一种全景视频处理方法流程示意图,参见图7所示,具体地实现方法包括:

步骤S201,向服务器发送全景视视频播放请求,所述全景视视频播放请求包含待播放的视频源标识和待播放的视频源的播放格式;

步骤S202,接收所述服务器发送的与所述全景视视频播放请求相对应的待播放的视频源,并确定所述待播放的视频源的横向分辨率与纵向分辨率之间的原始比例;

步骤S203,判断所述原始比例是否与预设的与所述播放格式相对应的设定比例一致;

步骤S204,若不一致,则调整所述待播放的视频源的横向分辨率与纵向分辨率之间的比例至设定比例,并将调整后的待播放的视频源的每帧图像的各像素点渲染在球面域上。

也就是说,因为第三方服务器无法进行管控,所以当客户端发出全景视频播放请求后,第三方服务器将对应标识的视频源发送给客户端,然后客户端对视频源的分辨率的原始比例进行判断,若发现不满足条件,则进行图像调整,将调整之后的图像进行渲染;若视频源来自我们自己的服务器,由于对所述视频源的比例的确定、判断工作已在服务器端完成,所以客户端只需负责接收渲染工作。显然这样做,对于来自我们自己服务器的视频源,因为省略了确定、判断等过程,所以提高了视频播放的实时性,对于来自第三方服务器的视频源,客户端增加了判断、调整等工作,但兼容了第三方视频源。

为了更加系统地描述全景视频图像的处理和播放的流程,本发明实施例进一步地提供图8至图10所示的设备示意图进行阐述。如图8所述,后台上传2D格式全景视频到服务器,然后服务器在将视频源发送给客户端之前,将视频源的分辨率的比例调整至最优比例,然后视频服务器将视频源发送至移动终端,然后移动终端在VR设备中进行播放,从而使用户可以进行全景观看。其中图9中左右全景格式的全景视频帧和图10的上下全景格式的全景视频帧的播放过程如图所示,对于左右全景格式的全景视频帧,在渲染图像时,左边图像和右边图像分别渲染一个球面域,对于上下全景格式的全景视频帧,在渲染图像时,上边图像和下边图像分别渲染一个球面域,然后在播放时,上边的球面域会调整到移动终端的左半边,下边的球面域会调整到移动终端的右半边,其余与图8的播放过程基本一致,因此不再赘述。

基于相同的技术构思,本发明实施例还提供一种服务器,该服务器可执行上述方法实施例。本发明实施例提供的服务器如图11所示,包括:接收单元301、获取单元302、确定单元303、判断单元304、调整单元305、发送单元306,其中:

接收单元301,用于接收客户端发送的全景视频播放请求,所述全景视视频播放请求包含待播放的视频源标识和待播放的视频源的播放格式;

获取单元302,用于根据所述全景视频播放请求获取待播放的视频源;

确定单元303,用于确定所述待播放的视频源的横向分辨率与纵向分辨率之间的原始比例;

判断单元304,用于判断所述原始比例是否与预设的与所述播放格式相对应的设定比例一致;

调整单元305,用于若不一致,则调整所述待播放的视频源的横向分辨率与纵向分辨率之间的比例至设定比例;

发送单元306,用于将调整后的待播放的视频源发送至所述客户端,以使所述客户端将所述视频源的每帧图像的各像素点渲染在球面域上。

进一步地,所述判断单元304具体用于:若所述待播放的视频源的播放格式为2D全景格式,则2D全景格式对应的视频源的设定比例是2:1,则判断所述原始比例是否满足2比1;若所述待播放的视频源的播放格式为左右全景格式,则左右全景格式对应的视频源的设定比例是4:1,则判断所述原始比例是否满足4比1;若所述待播放的视频源的播放格式为上下全景格式,则上下全景格式对应的视频源的设定比例是1:1,则判断所述原始比例是否满足1比1。

进一步地,所述发送单元306具体用于:将调整后的待播放的视频源按照与所述设定比例对应的编码参数进行编码,将编码后的待播放的视频源发送至所述客户端。这样同样码率下去编码所述原始比例的视频与所述设定比例的视频,很明显,所述设定比例的视频会更清晰。例如,假设现有原始分辨率为1920X1080p的2D全景视频,则所述原始比例为16:9,调整后为1920X960p,则所述设定比例为2:1,原始视频如用5Mbps的码率去编码,调整后的视频用5X96/108Mbps去编码,理论上清晰度是一样的,很明显,如用介于5Mbps和5X96/108Mbps之间码率对调整后的视频进行编码,则调整后的视频更清晰且节省带宽。另外,原始1920X1080p之所以要下采样到1920*960p,是因为按照我们的分析,最终贴图渲染阶段只有1920X960p分辨率的全景帧能保证每个像素点都能映射到球面域上,即1920X1080p分辨率的全景帧会有1920*120p个像素浪费。

当客户端请求的是第三方服务器上的视频源时,本发明实施例进一步地提供一种客户端,该客户端可以执行客户端侧的方法。本发明实施例提供的客户端如图12所示,包括:发送单元401、接收单元402、确定单元403、判断单元404、调整单元405、渲染图像单元406,其中:

发送单元401,用于向服务器发送全景视视频播放请求,所述全景视视频播放请求包含待播放的视频源标识和待播放的视频源的播放格式;

接收单元402,用于接收所述服务器发送的与所述全景视视频播放请求相对应的待播放的视频源,

确定单元403,用于确定所述待播放的视频源的横向分辨率与纵向分辨率之间的原始比例;

判断单元404,用于判断所述原始比例是否与预设的与所述播放格式相对应的设定比例一致;

调整单元405,用于若不一致,则调整所述待播放的视频源的横向分辨率与纵向分辨率之间的比例至设定比例,

渲染图像单元406,用于将调整后的待播放的视频源的每帧图像的各像素点渲染在球面域上。

进一步地,所述判断单元具体用于:若所述待播放的视频源的播放格式为2D全景格式,则2D全景格式对应的视频源的设定比例是2:1,则判断所述原始比例是否满足2比1;若所述待播放的视频源的播放格式为左右全景格式,则左右全景格式对应的视频源的设定比例是4:1,则判断所述原始比例是否满足4比1;若所述待播放的视频源的播放格式为上下全景格式,则上下全景格式对应的视频源的设定比例是1:1,则判断所述原始比例是否满足1比1。

综上所述,本发明实施例通过研究发现只有当每帧全景视频图像的宽高比例符合一定条件时,该个全景视频帧和球面之间才会形成一一映射这一规律,进而得到不同播放格式的全景视频的设定比例,然后利用设定比例判断待播放的视频源的横向分辨率与纵向分辨率之间的原始比例是否与之一致,若不一致,则将待播放的视频源的分辨率进行调整,利用调整后的视频源的进行播放,显然这种改进方法若应用于服务器侧,可以显著地提高传输带宽的利用率,另外若这种改进方法应用于客户端侧,则因为避免了客户端进行下采样这一步骤,使得全景视频播放实时性得到提高。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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