公开/公告号CN114900681A
专利类型发明专利
公开/公告日2022-08-12
原文格式PDF
申请/专利权人 合肥乾芯科技有限公司;
申请/专利号CN202210433237.3
发明设计人 乔宏波;
申请日2022-04-24
分类号H04N13/332(2018.01);H04N13/363(2018.01);H04N13/366(2018.01);H04N13/398(2018.01);H04N13/194(2018.01);H04L65/80(2022.01);
代理机构合肥兆信知识产权代理事务所(普通合伙) 34161;
代理人汪洋
地址 230088 安徽省合肥市中国(安徽)自由贸易试验区高新区创新大道2800号创新产业园二期F1-2101
入库时间 2023-06-19 16:22:17
法律状态公告日
法律状态信息
法律状态
2023-01-24
发明专利申请公布后的撤回 IPC(主分类):H04N13/332 专利申请号:2022104332373 申请公布日:20220812
发明专利申请公布后的撤回
2022-08-30
实质审查的生效 IPC(主分类):H04N13/332 专利申请号:2022104332373 申请日:20220424
实质审查的生效
技术领域
本发明涉及VR技术领域,具体为一种基于边缘计算存储的Cloud VR视频播放系统。
背景技术
VR向Cloud VR演进已成为了必然趋势,支持云端渲染的Cloud VR对于提升用户体验、降低用户消费VR成本、保护VR内容版权、普及VR商业场景等方面都有巨大价值,CloudVR将计算渲染云化后,由于VR的庞大数据量,传输部分将成为整个系统瓶颈,因此降低传输数据量至关重要。
完整传输全景图像存在较大冗余,但是仅传输视野内的图像会因网络延时及抖动出现延迟或黑屏等情况,大大影响观看体验,本发明提供一种基于边缘计算存储的CloudVR视频播放系统。
发明内容
本发明的目的在于提供一种基于边缘计算存储的Cloud VR视频播放系统,以解决上述背景技术中提出的传输视野内的图像会因网络延时及抖动出现延迟或黑屏的问题。
为实现上述目的,本发明提供如下技术方案:
一种基于边缘计算存储的Cloud VR视频播放系统,包括硬件设备和控制系统,所述硬件设备包括VR头盔、边缘计算储存服务器和中心计算云储存服务器(客户端主机),所述控制系统的控制流程如下:
S1.边缘计算存储服务器采用四棱锥投影方式对ERP全景图进行映射计算;
S2.客户端主机实时获取并进行动态预测用户VR头盔的三维运动数据并计算出用户视角信息,最后把用户视角信息传给边缘计算存储服务器;
S3.边缘计算服务器根据用户视角信息选择相应的版本视频GOP发回客户端主机,客户端主机计算视角切换相应的视点位置移动向量并向VR头盔传递图像。
作为本发明的一种优选实施方式,所述的S1包括对ERP全景图进行四棱锥投影时,生成的图形为正方形全景图。
作为本发明的一种优选实施方式,所述的S2包括以下步骤:
S21,获取VR头盔的视图矩阵,并设置“只旋转”和求逆求转置处理;
S22,空间坐标系按照右手系建立,计算当前播放帧视角的三维方向向量;
S23,Fov方向向量传给边缘计算存储服务器。
作为本发明的一种优选实施方式,所述的S3包括以下步骤:
S31,根据Fov方向向量计算相应的版本编号;
S32,根据编号以及当前播放指针,发送下一视频GOP给客户端主机,并以每一GOP有10帧的格式发送;
S33,判断前后帧是否发生视点版本切换。
与现有技术相比,本发明的有益效果是:
本Cloud VR视频播放系统可将所需带宽降低60%以上,同时视野范围内观看质量无损,有效避免了网络延迟带来的图像滞后和网络以及网络抖动导致的图像缺失的情况。
附图说明
图1为本实施例空间三维右手坐标系图;
图2为本实施例三维坐标变换图;
图3为本发明流程图;
图4为本实施例基于视角动态预测示意图;
图5为本实施例四棱锥/金字塔映射图;
图6为本实施例30视点划分图;
图7为本实施例边缘计算存储框架图;
图8为本实施例Fov传输方案图。
图9为本实施例四棱锥/金字塔贴图示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
请参阅图1-9,本发明提供一种技术方案:
一种基于边缘计算存储的Cloud VR视频播放系统,包括硬件设备和控制系统,所述硬件设备包括VR头盔、边缘计算储存服务器和中心计算云储存服务器(客户端主机),本系统以地球经纬度为例进行划分说明,在赤道上,从0度开始,每隔30度选定一个视点,赤道上有12个视点版本;在南北维30度上,从0度开始,每隔60度选定一个视点,南北维30度上各有6个视点;在南北维90度上,从0度开始,每隔180度选定一个视点,南北维90度上各有2个视点;最后南北极各是一个视点,由此12+6+6+2+2+1+1=30个不同视点版本构成,对视点版本进行编号划分,如图6所示,从北极点到南极点,从0经度完往右手系方向依次编号0,1,2......29,本发明的边缘存储框架是服务器-客户端一对一形式,但并不局限于此,可以增加客户端数量形成一对多形式,可以在这基础上设置多个边缘计算存储器,对客户端进行通信,并由一个中心服务器掌管,控制系统的运行流程如下:
S1.边缘计算存储服务器采用四棱锥投影方式对ERP全景图进行映射计算,每一张全景图根据视点投影划分为30个不同FOV版本存储,即每个全景视频在边缘存储服务器中有30个不同FOV的视频版本存在,ERP全景图进行四棱锥投影时,生成正方形全景图,投影效果如图5所示,即长方形全景图映射成正方形全景图,其流程为:
S11.对于平面图像任意像素点G(m,n)判断当前面;
S12.根据像素属于哪个面确认相应的映射坐标,将二维坐标G(m,n)转换为立方体空间中的三维坐标P(x,y,z);
S13.根据映射公式求得该点在球坐标系中球坐标M;
S14.根据球形全景图生成的公式反向推导出球坐标系中的点在图像的位置N;
S15.判断N的坐标是否为整数,为整数则直接获取N点像素值赋值给立方体平面图像像素点,否则利用双向线性插值获取N点像素值赋值给立方体平面图像像素点。
S2.客户端主机实时获取并进行动态预测用户VR头盔的三维运动数据并计算出用户视角信息,最后把用户视角信息传给边缘计算存储服务器,进行基于机器学习的动态视角预测,采用航位推测法,保留前一帧的视点三维数据,并和当前帧的视点三维数据进行线性预测下一帧的视点三维数据,具体流程如下:
S21.获取VR头盔的视图矩阵(m_mat4HMDPose),并进行相应的置rotate-only和相关求逆求转置处理,处理形式如下:
m_mat4HMDPose.setColumn(3,Vector4(0,0,0,1));
m_mat4HMDPose.invert();
m_mat4HMDPose.transpose();
视图矩阵的作用是把物体的世界坐标系转换为摄像机坐标系,视图矩阵=旋转矩阵*平移矩阵;
计算机内部渲染建立空间右手坐标系,即右边为x轴,后面为z轴,上面为y轴,右手系下/左手系下的视图矩阵如下表:
(右手系下视图矩阵)
(左手系下视图矩阵)
eye(eyeX,eyeY,eyeZ)是视点,即相机在世界坐标系中的位置;
at(atX,atY,atZ)是观测点,即被观察的目标点,指向相机的方向;
up(upX,upY,upZ)是顶部朝向,即确定相机在哪个方向为正上方;
Zaxis是视点看向方向向量,即at看向eye的方向向量;
Yaxis和Xaxis是世界坐标系的y和x方向轴的方向向量;
对视图矩阵进行置rotate-only使得相机只进行旋转操作而不进行平移缩放等操作,由上可知,右手系下只要对视图矩阵的地4列进行置(0,0,0,1)即可,右手系下视图矩阵需要进行求转置,左手系下不需要如此操作;
S22.空间坐标系按照右手系建立,计算当前播放帧视角的三维方向向量,根据c2得知,Zaxis向量就是所需要获取的视角的三维方向向量,对视图矩阵进行先置负再乘上(0,0,1)的操作,把右手系下视图矩阵的第三行前三个分量取出组成新的三维Fov方向向量:Vector3 v3(0,0,1),Fov=(-m_mat4HMDPose)*v3;
S23.Fov方向向量传给边缘计算存储服务器,在实时获取当前视点的视图矩阵的同时,进行基于机器学习的动态视角预测,采用航位推测法。
S3.边缘计算服务器根据用户视角信息选择相应的版本视频GOP发回客户端主机,客户端主机计算视角切换相应的视点位置移动向量并向VR头盔传递图像,先获取前一帧的视角方向和当前帧的视点中心,把当前帧视点中心移动到与前一帧视角方向重合,具体流程如下:
S31.根据Fov方向向量计算相应的版本编号,南北纬15度,45度,75度为界限,经度线则在两个水平视点的中间经度线为界限,视点在南北维15度以内并且经度左右15度以内移动,则不发生视点切换操作,如果视点从0经度0维度移动到16经度0维度,则此时应该切换到以30经度0维度为视点中心的版本;
S32.如图8所示,根据编号以及当前播放指针,发送下一视频GOP给客户端主机,并将每个视频流分成一秒钟的GOP,并实现与视图相关的自适应比特率流以进行回放,每秒(或更少),根据用户的网络条件,视口方向和下一个GOP的时间来确定接下来要获取的流,在受控网络环境中运行多次迭代测试,记录从视口中心到观察者方向的角距离,在每个视口中花费的时间,视口分辨率和切换延迟,缓冲时间,和网络带宽。
S33.判断前后帧是否发生视点版本切换,发生视点版本切换则计算视角切换相应的视点位置移动向量,并且把当前帧的视点进行相应方向的移动,最后向VR头盔传递图像,其过程为,如图2所示,三维数据经过模型矩阵变换,投影矩阵变换和视图矩阵变换,最后渲染到VR头盔上,其中图2中:
ModelViewMatrix为模型矩阵;
ProjectionMatrix为投影矩阵;
ViewportTransform为视图矩阵;
mModel=ModelViewMatrix*ProjectionMatrix*ViewportTransform:模型投影视图矩阵。
d3的具体流程为:
1.先获取前一帧的视角方向和当前帧的视点中心;
frameViewpoint.phi=(90-frameViewPointTable[viewPointIndex][0])*M_PI/180;
frameViewpoint.theta=frameViewPointTable[viewPointIndex][1]*M_PI/180;
2.把当前帧视点中心移动到与前一帧视角方向重合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
机译: 视频播放方法,视频播放设备,视频播放系统,装置和计算机可读存储介质
机译: 视频播放方法,视频播放设备,视频播放系统,设备和计算机可读存储介质
机译: 一种基于人体尺寸的与衣服模型修改有关的计算机系统。用于存储数据的数据存储系统,例如计算机衣服和数据的存储结构