本发明涉及计算机技术安全领域,特别涉及一种降低虚拟现实延迟的方法和装置。
背景技术:
随着虚拟现实技术的兴起,VR产品的渐渐进入人们的视野。当前,VR热潮正处于爆发前期,VR产品存在着诸多技术缺陷待解决,如晕眩感太强等,即用户使用一段时间VR产品后会出现头晕、恶心、甚至呕吐等症状。究其原因,这是因为视觉大脑对运动的认知不同步造成的,根本原因就是受到VR中的“延迟”的影响。
VR是一整套系统集合,包括传感器采集数据、传输数据、引擎处理、最终显示输出,这其中任何一个步骤都有可能形成延迟。这里说的“延迟”特指“Motion-To-Photon Latency(运动的光子延迟)”,是指从用户运动开始到相应画面显示到屏幕上所花的时间。延时问题是VR所面对的最大挑战,当然这也是VR整体需要解决主要问题。延迟不仅影响用户体验,更有甚者,会导致用户因为不适应出现呕吐等症状,因而找出产生延时这一问题的根源和解决方法是十分关键的。
技术实现要素:
为此,需要提供一种降低虚拟现实延迟的技术手段,用以解决VR产品延迟时间长,导致用户体验差、容易出现头晕、恶心、甚至等症状的问题。
为实现上述目的,发明人提供了一种降低虚拟现实延迟的装置,所述装置包括数据采集单元、渲染单元、判断单元、处理单元、显示单元、补偿帧确定单元、插入单元;
所述数据采集单元用于获取图像信息;
所述渲染单元用于对第一图像信息进行渲染;
所述判断单元用于判断第一图像信息是否渲染完成,若是则处理单元用于将第一图像信息发送至显示单元直接显示,所述第一图像信息为当前帧图像信息;否则处理单元用于将第二帧图像信息发送至显示单元,所述第二图像信息为当前帧上一帧且已渲染完成的图像信息;
所述补偿帧确定单元用于根据第一图像信息和第二图像信息确定对应的补偿帧信息;
所述插入单元用于将补偿帧信息插入第一图像信息和第二图像信息之间;
所述显示单元用于显示第一图像信息或第二图像信息,以及用于显示补偿帧信息。
进一步地,所述装置还包括图像分割单元和分辨率确定单元;
所述图像分割单元用于将当前帧图像分割成若干子块,所述子块还包括中央子块和周围子块,所述周围子块位于中央子块的四周;
所述分辨率确定单元用于确定第一分辨率和第二分辨率,所述第二分辨率小于第一分辨率;
所述渲染单元用于获取第一图像信息并进行渲染包括:
渲染单元用于采用第一分辨率对中央子块的图像信息进行渲染,并采用第二分辨率对周围子块的图像信息进行渲染。
进一步地,所述当前帧图像被等分3行3列总计9个子块,则第2行第2列的子块为中央子块,其他子块为周围子块。
进一步地,所述第一分辨率根据显示单元的分辨率确定,所述第二分辨率为第一分辨率的50%~75%。
进一步地,所述显示单元为OLED显示屏。
发明人还提供了一种降低虚拟现实延迟的方法,所述方法应用于降低虚拟现实延迟的装置,所述装置包括数据采集单元、渲染单元、判断单元、处理单元、显示单元、补偿帧确定单元、插入单元;所述方法包括以下步骤:
数据采集单元获取图像信息;
渲染单元对第一图像信息进行渲染;
判断单元判断第一图像信息是否渲染完成,若是则处理单元将第一图像信息发送至显示单元直接显示,所述第一图像信息为当前帧图像信息;否则处理单元将第二帧图像信息发送至显示单元,所述第二图像信息为当前帧上一帧且已渲染完成的图像信息;
补偿帧确定单元根据第一图像信息和第二图像信息确定对应的补偿帧信息;
插入单元将补偿帧信息插入第一图像信息和第二图像信息之间;
显示单元依次显示第一图像信息、补偿帧图像信息以及第二图像信息。
进一步地,所述装置还包括图像分割单元和分辨率确定单元;所述方法包括:
图像分割单元将当前帧图像分割成若干子块,所述子块还包括中央子块和周围子块,所述周围子块位于中央子块的四周;
分辨率确定单元确定第一分辨率和第二分辨率,所述第二分辨率小于第一分辨率;
渲染单元对第一图像信息进行渲染包括:
渲染单元采用第一分辨率对中央子块的图像信息进行渲染,并第二分辨率对周围子块的图像信息进行渲染。
进一步地,所述当前帧图像被等分3行3列总计9个子块,则第2行第2列的子块为中央子块,其他子块为周围子块。
进一步地,所述第一分辨率根据显示单元的分辨率确定,所述第二分辨率为第一分辨率的50%~75%。
进一步地,所述显示单元为OLED显示屏。
上述技术方案所述的降低虚拟现实延迟的方法和装置,采用异步时间扭曲技术,在当前帧渲染完成时直接将当前帧对应的图像信息送往显示单元直接显示,当前帧未渲染完成时,则获取已渲染的上一帧对应的图像信息送往显示单元,有效防止由于当前帧未渲染完成出现画面抖动的现象。此外,本发明还根据第一图像信息和第二图像信息确定对应的补偿帧信息,并将补偿帧信息插入到两帧图像之间,来提升屏幕的刷新率,使画面更加清晰流畅,有效提高了用户体验。
附图说明
图1为本发明一实施方式涉及的降低虚拟现实延迟的装置的示意图;
图2为本发明一实施方式涉及的降低虚拟现实延迟的方法的流程图;
图3为本发明另一实施方式涉及的降低虚拟现实延迟的方法的流程图;
图4为本发明另一实施方式涉及的降低虚拟现实延迟的方法的流程图;
附图标记说明:
101、数据采集单元;
102、渲染单元;
103、判断单元;
104、处理单元;
105、显示单元;
106、补偿帧确定单元;
107、插入单元;
108、图像分割单元;
109、分辨率确定单元。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,本发明一实施方式所述的降低虚拟现实延迟的装置的示意图。所述装置可以用于缩短VR产品的延迟时间,提高用户感官体验。所述装置包括数据采集单元101、渲染单元102、判断单元103、处理单元104、显示单元105、补偿帧确定单元106、插入单元107;
所述数据采集单元101用于获取图像信息;
所述渲染单元102用于对第一图像信息进行渲染;
所述判断单元103用于判断第一图像信息是否渲染完成,若是则处理单元104用于将第一图像信息发送至显示单元105直接显示,所述第一图像信息为当前帧图像信息;否则处理单元104用于将第二帧图像信息发送至显示单元105,所述第二图像信息为当前帧上一帧且已渲染完成的图像信息;
所述补偿帧确定单元106用于根据第一图像信息和第二图像信息确定对应的补偿帧信息;
所述插入单元107用于将补偿帧信息插入第一图像信息和第二图像信息之间;
所述显示单元105用于显示第一图像信息或第二图像信息,以及用于显示补偿帧信息。
在使用降低虚拟现实延迟的装置时,首先数据采集单元101获取图像信息。所述数据采集单元为具有图像采集功能的电子元件,可以为图像传感器等。采集的图像信息为运动图像信息,包括多帧图像。
而后渲染单元102对第一图像信息进行渲染。所述第一图像信息为当前帧图像信息,当前帧为正在进行处理的这一帧图像,属于数据采集单元所采集的图像信息的一部分。在VR产品中,需要对图像信息进行渲染,进而将渲染后的图像信息发送给显示单元进行显示,从而将虚拟现实场景呈现给用户。
在本实施方式中,所述装置还包括图像分割单元108和分辨率确定单元109。所述图像分割单元108用于将当前帧图像分割成若干子块,所述子块还包括中央子块和周围子块,所述周围子块位于中央子块的四周;所述分辨率确定单元109用于确定第一分辨率和第二分辨率,所述第二分辨率小于第一分辨率。所述渲染单元102用于获取第一图像信息并进行渲染包括:渲染单元102用于采用第一分辨率对中央子块的图像信息进行渲染,并采用第二分辨率对周围子块的图像信息进行渲染。所述第一分辨率根据显示单元的分辨率确定,所述第二分辨率为第一分辨率的50%~75%。这样,在中央子块仍然保留完整的分辨率(显示单元100%的分辨率)进行渲染的情况下,用户所感知的效果并不会发生明显变化,同时周围子块采用较低分辨率进行渲染,可以有效降低所需要渲染的图像数量,缩短延迟时间。
进一步地,所述当前帧图像被等分3行3列总计9个子块,则第2行第2列的子块为中央子块,其他子块为周围子块。当然,图像划分的数量以及中央子块的确定可以根据实际需要决定,例如在某些实施例中,也可以将当前图像等分为4行4列总计16个子块,以中间4个子块所围成的面积作为中央子块,其余为周围子块。
而后判断单元103判断第一图像信息是否渲染完成,若是则处理单元104将第一图像信息发送至显示单元105直接显示;否则处理单元104将第二帧图像信息发送至显示单元105。如果当前帧图像信息渲染未能及时完成,会出现画面抖动现象,给用户带来不良体验。为解决这一问题,将调用第二图像信息出来重新显示,同时加上运动变化,保持帧率。所述第二图像信息为当前帧上一帧且已渲染完成的图像信息。
为了提升图像刷新率,增强用户体验,在本实施方式中,补偿帧确定单元106根据第一图像信息和第二图像信息确定对应的补偿帧信息;而后插入单元107将补偿帧信息插入第一图像信息和第二图像信息之间;显示单元105显示第一图像信息或第二图像信息,以及显示补偿帧信息。刷新率就是屏幕每秒钟画面被刷新的次数,即每秒能显示多少幅图像,刷新频率的单位是赫兹(Hz),一般来说,刷新频率越高越好,图象就越稳定,对眼睛的影响也越小。现有主流的屏幕是60Hz,那每帧就是16.67ms;如果提升到90Hz,那每帧就是11.11ms。
假设刷新率为60Hz,并不是代表每帧就有16.67ms的延迟,而是说屏幕图像每16.67ms才更新一次,如果当前帧无法在16.67ms内完成渲染,比如当前帧渲染花了17ms,那么就会拖到下一帧进行提交。这时候的延迟就变成了16.67*2=33.33ms(即需要33.33ms后才会显示刷新出当前帧图像信息)。如果刷新率为90Hz,并不是代表每帧就有11.11ms的延迟,而是说屏幕图像每11.11ms更新一次。由此可见,将屏幕刷新率提升到90Hz大大降低了延时时间。
为了提升屏幕刷新率,本发明采用插帧倍频技术动态映像系统,在传统的两帧图像之间加插一帧运动补偿帧,将普通60Hz刷新率提升至90Hz。这样,运动画面更加清晰流畅,从而达到清除上一帧图像的残影、提高动态清晰度的效果,将影像拖尾降至人眼难以感知的程度。具体地,运动补偿帧可以采用相关算法通过当前帧图像信息以及当前帧的上一帧图像信息通过帧预测得到。当补偿帧预测完成后,显示单元依次显示第二图像信息、补偿帧信息、第一图像信息。
在本实施方式中,所述显示单元为OLED显示屏。传统的显示屏通常为LCD显示屏,LCD在运动时会有拖影,像素从一个值转变到另一个值需要十几毫秒,而OLED的像素切换时间在1毫秒以下。采用OLED显示屏替代LCD显示屏,可以有效减少延迟时间。
在某些实施例中,为了方便对图像信息的渲染、显示,所述装置还包括缓存单元。进一步地,显示单元与渲染单元共用同一块缓存单元,GPU直接到在缓存单元中进行渲染,使更新的画面经过1帧即可显示,快速触发。相较于显示单元与渲染单元分别设立有对应的缓存单元的方式,本方案可以有效避免图像信息在两个缓存单元之间传输的时间,有效缩短延迟。
以及发明人还提供了一种降低虚拟现实延迟的方法,请参阅图2,所述方法包括以下步骤:
首先进入步骤S201数据采集单元获取图像信息。所述数据采集单元为具有图像采集功能的电子元件,可以为图像传感器等。采集的图像信息为运动图像信息,包括多帧图像。
而后进入步骤S202渲染单元对第一图像信息进行渲染。所述第一图像信息为当前帧图像信息,当前帧为正在进行处理的这一帧图像,属于数据采集单元所采集的图像信息的一部分。在VR产品中,需要对图像信息进行渲染,进而将渲染后的图像信息发送给显示单元进行显示,从而将虚拟现实场景呈现给用户。
请参阅图4,在本实施方式中,所述装置还包括图像分割单元和分辨率确定单元。对图像信息的渲染具体可以通过以下方式实现:首先进入步骤S401图像分割单元将当前帧图像分割成若干子块,所述子块还包括中央子块和周围子块,所述周围子块位于中央子块的四周;而后进入步骤S402分辨率确定单元确定第一分辨率和第二分辨率,所述第二分辨率小于第一分辨率;而后进入步骤S403渲染单元采用第一分辨率对中央子块的图像信息进行渲染,并采用第二分辨率对周围子块的图像信息进行渲染。所述第一分辨率根据显示单元的分辨率确定,所述第二分辨率为第一分辨率的50%~75%。这样,在中央子块仍然保留完整的分辨率(显示单元100%的分辨率)进行渲染的情况下,用户所感知的效果并不会发生明显变化,同时周围子块采用较低分辨率进行渲染,可以有效降低所需要渲染的图像数量,缩短延迟时间。对第二图像信息以及对其他帧图像信息的渲染与对第一图像信息的渲染类似,此处不再赘述。
进一步地,所述当前帧图像被等分3行3列总计9个子块,则第2行第2列的子块为中央子块,其他子块为周围子块。当然,图像划分的数量以及中央子块的确定可以根据实际需要决定,例如在某些实施例中,也可以将当前图像等分为4行4列总计16个子块,以中间4个子块所围成的面积作为中央子块,其余为周围子块。
而后进入步骤S203判断单元判断第一图像信息是否渲染完成,若是则进入步骤S204处理单元将第一图像信息发送至显示单元直接显示;否则进入步骤S205处理单元将第二帧图像信息发送至显示单元。如果当前帧图像信息渲染未能及时完成,会出现画面抖动现象,给用户带来不良体验。为解决这一问题,将调用第二图像信息出来重新显示,同时加上运动变化,保持帧率。所述第二图像信息为当前帧上一帧且已渲染完成的图像信息。
为了提升图像刷新率,增强用户体验,请参阅图3,所述方法还包括以下步骤:首先进入步骤S301补偿帧确定单元根据第一图像信息和第二图像信息确定对应的补偿帧信息;而后进入步骤S302插入单元将补偿帧信息插入第一图像信息和第二图像信息之间;而后进入步骤S303显示单元显示第一图像信息或第二图像信息,以及显示补偿帧信息。刷新率就是屏幕每秒钟画面被刷新的次数,即每秒能显示多少幅图像,刷新频率的单位是赫兹(Hz),一般来说,刷新频率越高越好,图象就越稳定,对眼睛的影响也越小。现有主流的屏幕是60Hz,那每帧就是16.67ms;如果提升到90Hz,那每帧就是11.11ms。
假设刷新率为60Hz,并不是代表每帧就有16.67ms的延迟,而是说屏幕图像每16.67ms才更新一次,如果当前帧无法在16.67ms内完成渲染,比如当前帧渲染花了17ms,那么就会拖到下一帧进行提交。这时候的延迟就变成了16.67*2=33.33ms(即需要33.33ms后才会显示刷新出当前帧图像信息)。如果刷新率为90Hz,并不是代表每帧就有11.11ms的延迟,而是说屏幕图像每11.11ms更新一次。由此可见,将屏幕刷新率提升到90Hz大大降低了延时时间。
为了提升屏幕刷新率,本发明采用插帧倍频技术动态映像系统,在传统的两帧图像之间加插一帧运动补偿帧,将普通60Hz刷新率提升至90Hz。这样,运动画面更加清晰流畅,从而达到清除上一帧图像的残影、提高动态清晰度的效果,将影像拖尾降至人眼难以感知的程度。具体地,运动补偿帧可以采用相关算法通过当前帧图像信息以及当前帧的上一帧图像信息通过帧预测得到。当补偿帧预测完成后,显示单元依次显示第二图像信息、补偿帧信息、第一图像信息。
在本实施方式中,所述显示单元为OLED显示屏。传统的显示屏通常为LCD显示屏,LCD在运动时会有拖影,像素从一个值转变到另一个值需要十几毫秒,而OLED的像素切换时间在1毫秒以下。采用OLED显示屏替代LCD显示屏,可以有效减少延迟时间。
在某些实施例中,为了方便对图像信息的渲染、显示,所述装置还包括缓存单元。进一步地,显示单元与渲染单元共用同一块缓存单元,GPU直接到在缓存单元中进行渲染,使更新的画面经过1帧即可显示,快速触发。相较于显示单元与渲染单元分别设立有对应的缓存单元的方式,本方案可以有效避免图像信息在两个缓存单元之间传输的时间,有效缩短延迟。
上述技术方案所述的降低虚拟现实延迟的方法和装置,采用异步时间扭曲技术,在当前帧渲染完成时直接将当前帧对应的图像信息送往显示单元直接显示,当前帧未渲染完成时,则获取已渲染的上一帧对应的图像信息送往显示单元,有效防止由于当前帧未渲染完成出现画面抖动的现象。此外,本发明还根据第一图像信息和第二图像信息确定对应的补偿帧信息,并将补偿帧信息插入到两帧图像之间,来提升屏幕的刷新率,使画面更加清晰流畅,有效提高了用户体验。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。