一种虚拟现实移动端动态时间帧补偿渲染系统及方法技术方案

技术编号:14362738 阅读:151 留言:0更新日期:2017-01-09 10:12
本发明专利技术公开了一种虚拟现实移动端动态时间帧补偿渲染系统和方法,所述方法为:应用帧渲染生成应用帧缓存序列,在应用帧缓存序列中提取最新的或者最近的应用帧进行二级渲染得到时间帧,时间帧发送至共享缓冲区,在垂直同步管理模块的时序控制下由屏幕读取时间帧渲染结果进行刷新。通过共享缓冲区的设计,让GPU渲染结果直接到屏幕刷新的缓存,降低多级缓存交换的延迟。通过垂直同步时间管理,控制GPU的渲染时间,避免GPU渲染写入和屏幕刷新读取的冲突,让画面能够在低延迟的同时正常显示,不会产生撕裂。

【技术实现步骤摘要】

本专利技术涉及虚拟现实领域,具体是一种虚拟现实移动端动态时间帧补偿渲染方法。
技术介绍
虚拟现实技术综合利用计算机图形学、光电成像技术、传感技术、计算机仿真、人工智能等多种技术,并借助各种交互设备,旨在为用户提供一个逼真的、具有多重感知的虚拟世界。近年来,虚拟现实技术迅速发展,主机端虚拟现实利用高性能PC或者游戏主机作为计算核心提供虚拟现实体验。凭借其强悍的硬件,已经能够给用户带来很好的沉浸式体验,但因其成本高,配套设备繁琐,未能有很好的普及。相比之下,移动端虚拟现实技术门槛低,因现在高端智能手机的普及率高,加之移动端(如VR头盔)的成本和制造难度与电脑端相比微乎其微,给用户带来的体验也是极为方便,所以现在移动端的虚拟现实技术普及率远远超于主机端,并逐年上升。移动端虚拟现实技术普及率虽然高,但是由于硬件性能受限于尺寸和功耗,无法达到主机端虚拟现实的体验。移动端虚拟现实主要面临两个主要问题,首先是操作系统在在图形渲染方面为了更加平滑,采用了多级缓存机制来匹配GPU计算和屏幕扫描的时间差距,然而在虚拟现实场景下,这种机制将产生高延迟,画面响应迟钝。其次,虚拟现实通过左右眼视差产生立体感,因此左右眼的画面需要单独渲染,此外,虚拟现实应用还需要针对光学参数进行反畸变操作,这些都将对GPU产生较大的负载。由于移动端虚拟现实的硬件性能有限,这样的负载将延长GPU的渲染时间,从而出现掉帧现象。另一方面,GPU长时间在高负载运行会产生大量的发热和功耗,因此对移动端硬件的散热带来挑战。并且高功耗带来的运行持续时间降低的问题也将直接影响用户体验。为了解决虚拟现实中的延迟问题,一些厂商提出了一些技术方案,如Oculus提出的异步时间扭曲技术(AsynchronousTimewarp,简称ATW),其实就是一项生成中间帧技术,当游戏下一帧无法在规定时间内渲染完成时,该技术根据当前已经渲染好的帧及当前VR头盔的状态生成下一帧进行填充,虽然该方法一定层度解决了画面的抖动现象,但是该技术依然具有局限性,例如当移动物体或动画覆盖屏幕很大一部分时,就会产生伪影现象,同时这种方案也没有考虑到移动端虚拟现实的高功耗问题,GPU在处理应用渲染请求的同时还需要额外计算中间帧,一定程度上又增加了GPU的负担,增加了功耗,因此并不能直接适用于移动端虚拟现实。Nvidia针对虚拟现实也提供了SLI双显卡渲染方案,将左右两眼的渲染分配到不同的显卡处理,从而降低单个GPU的开销。然而这种技术主要面向主机端虚拟现实,没有考虑功耗的限制因素,因此也无法在移动虚拟现实端应用。在移动端虚拟现实系统中,GPU的运算性能有限,其渲染计算时间受到场景复杂度和带宽的限制,因此渲染时间并不稳定,而屏幕的刷新频率是固定的(一般为60Hz),为了匹配显示屏刷新率和GPU渲染时间,操作系统中采用多缓冲机制。也就是GPU渲染操作的缓冲区并不直接显示,而是逐级交换显示。在这种机制下,即使GPU没来及时渲染完成,缓冲区中也有之前的帧可以刷新,因此系统能够保证流畅。在虚拟现实应用中,渲染的画面不仅来源于应用自身逻辑,也来源于交互,其中最主要的是头部位置追踪,也就是用户在戴上头盔后显示的画面应该随用户头部位置的转动而刷新。在多级缓冲区的机制下,根据姿态位置数据产生的画面,将通过多级缓冲区交换后才能最终在屏幕上显示。但是在显示时刻头部的位置姿态早已更新,因此产生了从姿态数据采集到最终画面显示间隔时间的高延迟。在高延迟的影响下,用户会感觉画面的更新滞后于头部的转动。从而产生眩晕感。另一方面,移动端虚拟现实的GPU性能有限,相比于手机或者平板这种2D画面居多,更新频率较低的场景,虚拟现实场景渲染中每一帧都需要左右眼渲染,并且每一帧的内容都不一样,因此GPU将长期高负载运行,产生高功耗,移动端虚拟现实主要采用电池供电,高功耗将会产生散热和持久性的问题,这些都将直接影响用户体验。
技术实现思路
本专利技术为解决移动虚拟现实的高延迟和高功耗问题,提出一种虚拟现实移动端动态时间帧补偿渲染系统及方法。技术方案:一种虚拟现实移动端动态时间帧补偿渲染系统,它包括应用-屏幕两级渲染模块、共享缓冲区渲染模块、垂直同步管理模块、应用运行场景识别模块、交互行为识别模块、时间帧补偿控制模块、系统性能配置模块、GPU和屏幕,所述应用-屏幕两级渲染模块包括应用帧渲染模块和时间帧渲染模块,分别进行应用帧一级渲染和时间帧二级渲染;所述应用运行场景识别模块和交互行为识别模块采集信息发送至时间帧补偿控制模块;时间帧补偿控制模块一方面连接应用渲染帧模块,控制应用渲染频率和渲染质量,应用帧的渲染周期和时序受时间帧补偿控制模块的控制;时间帧补偿控制模块另一方面通过系统性能配置模块连接包括CPU大小核、GPU、DDR、屏幕亮度的系统关键组件,控制系统性能,同时匹配预置的时间帧补偿策略进行补偿操作和性能配置;应用帧渲染模块和时间帧渲染模块均连接GPU,GPU连接共享缓冲区渲染模块并输出时间帧渲染结果;共享缓冲区渲染模块连接屏幕,进行屏幕显示刷新;屏幕连接垂直同步管理模块,发起垂直同步信号;垂直同步管理模块连接时间帧渲染模块和共享缓冲区渲染模块,垂直同步管理模块控制时间帧的渲染周期为屏幕刷新频率。其中:应用帧为应用实际渲染的帧,在应用帧渲染中,应用向GPU发送渲染指令进行渲染,该渲染时间受到应用本身业务逻辑和场景复杂度的影响;屏幕刷新率是固定的,每隔固定时间屏幕刷新一遍,假如屏幕刷新率为60Hz,则刷新周期为16.66毫秒;时间帧通过应用帧矫正得到,其中应用帧为:如果应用帧队列存在更新,找到更新中的最新的一帧;如果应用帧队列尚未更新,获取队列中的最新一帧;其中矫正为:读取当前头部位置参数和光学参数对应用帧采用相应的时间帧补偿策略进行位置矫正和光学矫正,生成二级渲染指令。本专利技术还公开了一种虚拟现实移动端动态时间帧补偿渲染方法,基于本专利技术公开的一种虚拟现实移动端动态时间帧补偿渲染系统。应用帧渲染生成应用帧缓存序列,在应用帧缓存序列中提取最新的或者最近的应用帧进行二级渲染得到时间帧,时间帧发送至共享缓冲区,在垂直同步管理模块的时序控制下由屏幕读取时间帧渲染结果进行刷新。优选的,应用帧的渲染周期和时序受时间帧补偿控制模块的控制;时间帧补偿控制模块通过应用场景识别模块和交互行为识别模块采集应用运行时光学参数信息和用户头部位置信息,同时匹配预置的时间帧补偿策略进行补偿操作和性能配置,具体流程如下:步骤1:加载时间帧补偿策略文件,该文件定义不同运行场景和交互行为下的应用帧调度规则和性能等级配置规则;步骤2:读取运行场景信息,该信息由应用运行场景识别模块提供,可以是应用指定的场景模式,也可以是系统根据硬件运行情况自动识别的结果;步骤3:读取交互行为信息,交互行为包含了头部位置的变化,由交互行为识别模块提供;步骤4:根据运行场景信息和交互行为信息匹配加载的时间帧补偿策略;步骤5:如果未匹配到配置的策略规则,则加载默认规则策略;步骤6:根据策略控制应用帧渲染帧率,控制的方式包括固定周期渲染和事件触发渲染;步骤7:判断是否开始应用帧渲染,如果没有开始,等待渲染开始信号;步骤8:开始应用帧渲染流程;步骤9:在步骤6的同时根据策略设置系统性能等级;步骤10,判本文档来自技高网
...
一种虚拟现实移动端动态时间帧补偿渲染系统及方法

【技术保护点】
一种虚拟现实移动端动态时间帧补偿渲染系统,其特征在于它包括应用‑屏幕两级渲染模块、共享缓冲区渲染模块、垂直同步管理模块、应用运行场景识别模块、交互行为识别模块、时间帧补偿控制模块、系统性能配置模块、GPU和屏幕,所述应用‑屏幕两级渲染模块包括应用帧渲染模块和时间帧渲染模块;所述应用运行场景识别模块和交互行为识别模块采集信息发送至时间帧补偿控制模块;时间帧补偿控制模块一方面连接应用渲染帧模块;时间帧补偿控制模块另一方面通过系统性能配置模块连接包括CPU大小核、GPU、DDR、屏幕亮度的系统关键组件;应用帧渲染模块和时间帧渲染模块均连接GPU,GPU连接共享缓冲区渲染模块;共享缓冲区渲染模块连接屏幕;屏幕连接垂直同步管理模块;垂直同步管理模块连接时间帧渲染模块和共享缓冲区渲染模块。

【技术特征摘要】
1.一种虚拟现实移动端动态时间帧补偿渲染系统,其特征在于它包括应用-屏幕两级渲染模块、共享缓冲区渲染模块、垂直同步管理模块、应用运行场景识别模块、交互行为识别模块、时间帧补偿控制模块、系统性能配置模块、GPU和屏幕,所述应用-屏幕两级渲染模块包括应用帧渲染模块和时间帧渲染模块;所述应用运行场景识别模块和交互行为识别模块采集信息发送至时间帧补偿控制模块;时间帧补偿控制模块一方面连接应用渲染帧模块;时间帧补偿控制模块另一方面通过系统性能配置模块连接包括CPU大小核、GPU、DDR、屏幕亮度的系统关键组件;应用帧渲染模块和时间帧渲染模块均连接GPU,GPU连接共享缓冲区渲染模块;共享缓冲区渲染模块连接屏幕;屏幕连接垂直同步管理模块;垂直同步管理模块连接时间帧渲染模块和共享缓冲区渲染模块。2.一种虚拟现实移动端动态时间帧补偿渲染方法,基于权利要求1所述的一种虚拟现实移动端动态时间帧补偿渲染系统,其特征在于应用帧渲染生成应用帧缓存序列,在应用帧缓存序列中提取最新的或者最近的应用帧进行二级渲染得到时间帧,时间帧发送至共享缓冲区,在垂直同步管理模块的时序控制下由屏幕读取时间帧渲染结果进行刷新。3.根据权利要求2所述的一种虚拟现实移动端动态时间帧补偿渲染方法,其特征在于应用帧的渲染周期和时序受时间帧补偿控制模块的控制;时间帧补偿控制模块通过应用场景识别模块和交互行为识别模块采集应用运行时光学参数信息和用户头部位置信息,同时匹配预置的时间帧补偿策略进行补偿操作和性能配置,具体流程如下:步骤1:加载时间帧补偿策略文件,该文件定义不同运行场景和交互行为下的应用帧调度规则和性能等级配置规则;步骤2:读取运行场景信息,该信息由应用运行场景识别模块提供,可以是应用指定的场景模式,也可以是系统根据硬件运行情况自动识别的结果;步骤3:读取交互行为信息,交互行为包含了头部位置的变化,由交互行为识别模块提供;步骤4:根据运行场景信息和交互行为信息匹配加载的时间帧补偿策略;步骤5:如果未匹配到配置的策略规则,则加载默认规则策略;步骤6:根据策略控制应用帧渲染帧率,控制的方式包括固定周期渲染和事件触发渲染;步骤7:判断是否开始应用帧渲染,如果没有开始,等待渲染开始信号;步骤8:开始应用帧渲染流程;步骤9:在步骤6的同时根据策略设置系统性能等级;步骤10,判断是否有垂直同步信号触发,如果没有,则等待垂直同步信息;步骤11:在垂直同步触发后,时间帧渲染前获取应用帧队列;步骤12:如果存在更新的应用帧,则用最新更新的应用帧做矫正二级渲染;步骤13:如果不存在更新的应用帧,从队列中获取最近一个应用帧做矫正二级渲染。4.根据权利要求2或3所述的一种虚拟现实移动端动态时间帧补偿渲染方法,其特征在于应用运行场景识别模块识别应用的运行场景,应用在运行期间有不同运行场景,包括菜单显示,进度条加载,视频播放,固定/指定视角浏览,这些场景信息传送到时间帧补偿控制模块来指导渲染补偿策略,识别流程如下:步骤1:检查应用是否设置了当前运行场景,该运行场景由渲染框架预设提供,包括:菜单显示、进度条加载、视频播放、固定/指定视角浏览和自定义帧率上下限,如果应用已经定义了当前运行场景,直接将场景信息返回给时间帧补偿控制模块;步骤2:如果应用没有定义运行场景,则检测系统组件,包括CPU,GPU,屏幕输出帧率,DDR带宽,解码器的运行情况,将这些信息反馈给时间帧补偿控制模块;步骤3:检查是否到达下一次运行场景检查时间点,该时间点由时间帧补偿控制模块指定的场景检测周期决定;如果尚未到达检查时间点,则挂起线程等待。5.根据权利要求2或3所述的一种虚拟现实移动端动态时间帧补偿渲染方法,其特征在于交互行为识别模块通过移动端虚拟现实硬件中的九轴传感器来控制识别用户的姿态变化,将用户头部位置信息输出到时间帧补偿控制模块进行渲染调度控制,交互行为识别模块流程如下:步骤1:检查九轴传感器状态,如果九轴传感器已经关闭或者锁定,则直接返回九轴传感器状态信息给时间帧补偿控制模块;步骤2:检查九轴...

【专利技术属性】
技术研发人员:张琦孙开权曹俊
申请(专利权)人:南京睿悦信息技术有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1