基于VR系统的图像处理方法及装置与流程

文档序号:12785833阅读:428来源:国知局
基于VR系统的图像处理方法及装置与流程

本公开VR技术领域,尤其涉及基于VR系统的图像处理方法及装置。



背景技术:

在相关技术中,VR(Virtual Reality,即虚拟现实)系统在用户佩戴好VR头盔后会按照与屏幕刷新频率对应的预设时间间隔(即该屏幕刷新频率的倒数)采集当前需要显示的VR图像,进而将VR图像通过VR头盔中的屏幕进行显示,以使用户完成VR体验,而具体的图像显示方案为:VR系统在用户佩戴好VR头盔后,确定需显示的第i帧VR图像对应的头部转动角度(即虚拟相机的旋转角度),并通过该虚拟相机拍摄该头部转动角度所朝向的观看方向对应的画面,然后通过VR系统中位于所拍摄的画面的指定位置(如正中间)的图像截取区域将所拍摄的画面中正中间部分的与屏幕尺寸适配的画面截取出来作为第i帧VR图像写入至显存中,进而由屏幕在进行第i次刷新(即第i个预设时间间隔)时从显存中读取该第i帧VR图像,并渲染在屏幕上,以呈现给用户,从而让用户观看到在该头部转动角度下自己在虚拟世界中看到的画面,进而完成VR体验;

但屏幕在刷新(即渲染画面)时会消耗一定的时间,而在屏幕渲染画面的这一段时间内用户的头部还有可能会转动,且一旦转动会导致用户观看到的画面再次有所变化,即用户应该看到的画面相比于之前已存储至显存的画面有所变化,因而,相关技术中的这种在截取VR画面并存储至显存时并未考虑到屏幕延迟的VR图像显示方案无疑会导致用户看到的VR画面具有延迟性不够实时。



技术实现要素:

本公开实施例提供了基于VR系统的图像处理方法及装置。所述技术方案如下:

根据本公开实施例的第一方面,提供一种基于VR系统的图像处理方法,包括:

确定所述VR系统中的图像截取区域在虚拟相机处于目标旋转角度时对应的预设位置,其中,所述虚拟相机为所述VR系统中的虚拟相机,所述i为正整数;

获取所述VR系统中的图像显示延迟时间;

根据所述图像显示延迟时间和所述对应的预设位置,对所述图像截取区域进行处理;

将处理后的图像截取区域所截取的图像作为所述第i帧VR显示图像写入显存中。

在一个实施例中,所述获取所述VR系统中的图像显示延迟时间,包括:

根据所述VR系统中显示屏的屏幕刷新频率,分别确定所述显示屏渲染左半屏图像和右半屏图像时所需消耗的时间;

根据所述显示屏渲染左半屏图像和右半屏图像时所需消耗的时间,分别确定所述第i帧VR显示图像的左半部分图像和右半部分图像的左延迟时间和右延迟时间。

在一个实施例中,所述图像截取区域包括左半屏图像的截取区域和右半屏图像的截取区域;

所述根据所述图像显示延迟时间和所述对应的预设位置,对所述图像截取区域进行处理,包括:

根据所述左延迟时间、所述右延迟时间和所述对应的预设位置,分别对所述左半屏图像的截取区域和右半屏图像的截取区域进行处理,以得到处理后的所述图像截取区域。

在一个实施例中,所述根据所述左延迟时间、所述右延迟时间和所述对应的预设位置,分别对所述左半屏图像的截取区域和右半屏图像的截取区域进行处理,包括:

获取所述虚拟相机的旋转角速度;

根据所述旋转角速度,分别预测所述虚拟相机在所述左延迟时间内的第一旋转角度和所述虚拟相机在所述右延迟时间内的第二旋转角度;

根据所述第一旋转角度、所述第二旋转角度和所述对应的预设位置,分别对所述左半屏图像的截取区域和右半屏图像的截取区域进行处理。

在一个实施例中,所述根据所述第一旋转角度、所述第二旋转角度和所述对应的预设位置,分别对所述左半屏图像的截取区域和右半屏图像的截取区域进行处理,包括:

获取所述左半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵和所述右半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵;

根据所述左半屏图像的截取区域的目标旋转矩阵和所述第一旋转角度,获取所述第一旋转角度对应的第一旋转矩阵;

根据所述右半屏图像的截取区域的目标旋转矩阵和所述第二旋转角度,获取所述第二旋转角度对应的第二旋转矩阵;

根据所述第一旋转矩阵的逆矩阵和所述左半屏图像的截取区域的目标旋转矩阵,确定所述左半屏图像的截取区域对应的左变形矩阵;

根据所述第二旋转矩阵的逆矩阵和所述右半屏图像的截取区域的目标旋转矩阵,确定所述右半屏图像的截取区域对应的右变形矩阵;

在基于所述对应的预设位置的基础上,分别根据所述左变形矩阵对所述左半屏图像的截取区域和所述右变形矩阵对所述右半屏图像的截取区域进行处理,得到处理后的左半屏图像的截取区域和处理后的右半屏图像的截取区域;

所述将处理后的图像截取区域所截取的图像作为所述第i帧VR显示图像写入显存中,包括:

根据处理后的左半屏图像的截取区域从所述虚拟相机在所述目标旋转角度下拍摄的目标待截取VR图像中截取第一图像,并将所述第一图像作为所述第i帧VR显示图像的左半部分图像;

根据处理后的右半屏图像的截取区域从所述虚拟相机在所述目标旋转角度下拍摄的目标待截取VR图像中截取第二图像,并将所述第二图像作为所述第i帧VR显示图像的右半部分图像,其中,所述处理包括旋转和/或处理,其中,所述目标待截取VR图像包括第i帧待截取VR图像或者第i-m帧待截取VR图像,其中,m为小于或等于i的正整数。

在一个实施例中,所述对应的预设位置包括:所述图像截取区域位于所述虚拟相机在所述目标旋转角度下拍摄到的目标待截取VR图像的正中间位置时的位置坐标,其中,所述目标待截取VR图像包括第i帧待截取VR图像或者第i-m帧待截取VR图像。

在一个实施例中,所述VR系统包括:VR头盔和内置于所述VR头盔的移动设备。

根据本公开实施例的第二方面,提供一种基于VR系统的图像处理装置,包括:

确定模块,用于确定所述VR系统中的图像截取区域在虚拟相机处于目标旋转角度时对应的预设位置,其中,所述虚拟相机为所述VR系统中的虚拟相机,所述i为正整数;

获取模块,用于获取所述VR系统中的图像显示延迟时间;

处理模块,用于根据所述图像显示延迟时间和所述对应的预设位置,对所述图像截取区域进行处理;

写入模块,用于将处理后的图像截取区域所截取的图像作为所述第i帧VR显示图像写入显存中。

在一个实施例中,所述获取模块包括:

渲染时间确定子模块,用于根据所述VR系统中显示屏的屏幕刷新频率,分别确定所述显示屏渲染左半屏图像和右半屏图像时所需消耗的时间;

延迟时间确定子模块,用于根据所述显示屏渲染左半屏图像和右半屏图像时所需消耗的时间,分别确定所述第i帧VR显示图像的左半部分图像和右半部分图像的左延迟时间和右延迟时间。

在一个实施例中,所述图像截取区域包括左半屏图像的截取区域和右半屏图像的截取区域;

所述处理模块包括:

处理子模块,用于根据所述左延迟时间、所述右延迟时间和所述对应的预设位置,分别对所述左半屏图像的截取区域和右半屏图像的截取区域进行处理,以得到处理后的所述图像截取区域。

在一个实施例中,所述处理子模块包括:

获取单元,用于获取所述虚拟相机的旋转角速度;

预测单元,用于根据所述旋转角速度,分别预测所述虚拟相机在所述左延迟时间内的第一旋转角度和所述虚拟相机在所述右延迟时间内的第二旋转角度;

处理单元,用于根据所述第一旋转角度、所述第二旋转角度和所述对应的预设位置,分别对所述左半屏图像的截取区域和右半屏图像的截取区域进行处理。

在一个实施例中,所述处理单元包括:

第一获取子单元,用于获取所述左半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵和所述右半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵;

第二获取子单元,用于根据所述左半屏图像的截取区域的目标旋转矩阵和所述第一旋转角度,获取所述第一旋转角度对应的第一旋转矩阵;

第三获取子单元,用于根据所述右半屏图像的截取区域的目标旋转矩阵和所述第二旋转角度,获取所述第二旋转角度对应的第二旋转矩阵;

第一确定子单元,用于根据所述第一旋转矩阵的逆矩阵和所述左半屏图像的截取区域的目标旋转矩阵,确定所述左半屏图像的截取区域对应的左变形矩阵;

第二确定子单元,用于根据所述第二旋转矩阵的逆矩阵和所述右半屏图像的截取区域的目标旋转矩阵,确定所述右半屏图像的截取区域对应的右变形矩阵;

处理子单元,用于在基于所述对应的预设位置的基础上,分别根据所述左变形矩阵对所述左半屏图像的截取区域和所述右变形矩阵对所述右半屏图像的截取区域进行处理,得到处理后的左半屏图像的截取区域和处理后的右半屏图像的截取区域;

所述写入模块,包括:

第一截取子模块,用于根据处理后的左半屏图像的截取区域从所述虚拟相机在所述目标旋转角度下拍摄的目标待截取VR图像中截取第一图像,并将所述第一图像作为所述第i帧VR显示图像的左半部分图像;

第二截取子模块,用于根据处理后的右半屏图像的截取区域从所述虚拟相机在所述目标旋转角度下拍摄的目标待截取VR图像中截取第二图像,并将所述第二图像作为所述第i帧VR显示图像的右半部分图像,其中,所述处理包括旋转和/或处理,其中,所述目标待截取VR图像包括第i帧待截取VR图像或者第i-m帧待截取VR图像,其中,m为小于或等于i的正整数。

在一个实施例中,所述对应的预设位置包括:所述图像截取区域位于所述虚拟相机在所述目标旋转角度下拍摄到的目标待截取VR图像的正中间位置时的位置坐标,其中,所述目标待截取VR图像包括第i帧待截取VR图像或者第i-m帧待截取VR图像。

在一个实施例中,所述VR系统包括:VR头盔和内置于所述VR头盔的移动设备。

根据本公开实施例的第三方面,提供了一种基于VR系统的图像处理装置,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

确定所述VR系统中的图像截取区域在虚拟相机处于目标旋转角度时对应的预设位置,其中,所述虚拟相机为所述VR系统中的虚拟相机,所述i为正整数;

获取所述VR系统中的图像显示延迟时间;

根据所述图像显示延迟时间和所述对应的预设位置,对所述图像截取区域进行处理;

将处理后的图像截取区域所截取的图像作为所述第i帧VR显示图像写入显存中。

本公开的实施例提供的技术方案可以包括以下有益效果:

本公开的实施例提供的技术方案,通过确定VR系统中的图像截取区域在虚拟相机处于目标旋转角度时对应的预设位置、图像显示延迟时间,可以根据该图像显示延迟时间和该对应的预设位置,对该图像截取区域进行自动处理,如自动旋转或者移动等,从而使得可根据处理后的图像截取区域截取图像,并将截取的图像作为第i帧VR显示图像写入显存中,从而实现在将第i帧VR显示图像显示至屏幕之前,能够尽可能根据头戴VR头盔的用户在该图像显示延迟时间内可能发生的头部转动,对图像截取区域进行处理,以使得处理后的图像截取区域所截取的图像尽可能接近用户头部转动后应该观看到的真实VR图像,这样就减少了图像显示延迟时间对用户本应该看到的VR显示图像的影响,使得用户看到的第i帧VR显示图像尽可能具有小的延迟和具有一定程度的实时性,进而使得即便头戴VR头盔的用户在该图像显示延迟时间内头部发生了转动而导致画面发生变化,用户仍然能够尽可能的观看到变化后的VR显示图像,而不是相关技术中截取的具有较大延迟的VR显示图像。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是根据一示例性实施例示出的一种基于VR系统的图像处理方法的流程图。

图2是根据一示例性实施例示出的另一种基于VR系统的图像处理方法的流程图。

图3是根据一示例性实施例示出的又一种基于VR系统的图像处理方法的流程图。

图4是根据一示例性实施例示出的再一种基于VR系统的图像处理方法的流程图。

图5是根据一示例性实施例示出的再一种基于VR系统的图像处理方法的流程图。

图6是根据一示例性实施例示出的一种基于VR系统的图像处理装置的框图。

图7是根据一示例性实施例示出的另一种基于VR系统的图像处理装置的框图。

图8是根据一示例性实施例示出的又一种基于VR系统的图像处理装置的框图。

图9是根据一示例性实施例示出的再一种基于VR系统的图像处理装置的框图。

图10是根据一示例性实施例示出的再一种基于VR系统的图像处理装置的框图。

图11是根据一示例性实施例示出的适用于基于VR系统的图像处理装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在相关技术中,VR系统在用户佩戴好VR头盔后会按照与屏幕刷新频率对应的预设时间间隔(即该屏幕刷新频率的倒数)采集当前需要显示的VR图像,进而将VR图像通过VR头盔中的屏幕进行显示,以使用户完成VR体验,而具体的图像显示方案为:VR系统在用户佩戴好VR头盔后,确定需显示的第i帧VR图像对应的头部转动角度(即虚拟相机需要转动的旋转角度),并通过控制该虚拟相机旋转该角度后,拍摄该头部转动角度所朝向的观看方向对应的画面,然后通过VR系统中位于所拍摄的画面的指定位置(如正中间)的图像截取区域将所拍摄的画面中正中间部分的与屏幕尺寸适配的画面截取出来作为第i帧VR图像写入至显存中,进而由屏幕在进行第i次刷新(即第i个预设时间间隔)时从显存中读取该第i帧VR图像,并渲染在屏幕上,以呈现给用户,从而让用户观看到在该头部转动角度下自己在虚拟世界中看到的画面,进而完成VR体验;

但屏幕在刷新(即渲染画面)时会消耗一定的时间,而在屏幕渲染画面的这一段时间内用户的头部还有可能会转动,且一旦转动会导致用户观看到的画面再次有所变化,即用户应该看到的画面相比于之前已存储至显存的画面有所变化,因而,相关技术中的这种在截取VR画面并存储至显存时并未考虑到屏幕显示延迟而可能导致VR图像发生变化的显示方案无疑会导致用户看到的VR画面具有延迟性不够实时;

另一方面,由于屏幕渲染VR画面时需要保持固定的FPS(Frames Per Second,每秒传输帧数)即需要保持该屏幕刷新频率,例如,当屏幕刷新频率等于每秒60帧时,就需要屏幕每秒显示60张图像,但在CPU、GPU或者其它资源有延迟的时候可能导致生成VR图像的速度达不到每秒60张,从而出现丢帧的问题,但相关技术中的VR图像显示方案并无法解决此问题。

为了解决上述技术问题,本公开实施例提供了一种基于VR系统的图像处理方法,该方法可用于基于VR系统的图像处理程序、系统或装置中,且该方法对应的执行主体可以是由移动设备(如手机)和VR头盔组合而成的VR系统、或者是VR头盔与计算机组成的VR系统,当然此时VR头盔中仍然内置有屏幕。

图1是根据一示例性实施例示出的一种基于VR系统的图像处理方法的流程图。

如图1所示,该方法包括步骤S101至步骤S104:

在步骤S101中,确定VR系统中的图像截取区域在虚拟相机处于目标旋转角度时对应的预设位置,其中,虚拟相机为VR系统中的虚拟相机,i为正整数,而目标旋转角度即头部旋转角度;

其中,当屏幕刷新频率为f时,屏幕每渲染一张图像需要消耗的时间为1/f,例如,当f=60hz时,屏幕每渲染一张图像需要消耗的时间为16.67ms,而由于屏幕在渲染相邻两帧图像时时间间隔刚好为16.67ms,因而,当屏幕刷新频率为f时,屏幕刷新的时间间隔也刚好为预设时间间隔1/f;

其次,当VR系统按照屏幕刷新频率f刷新屏幕时,在用户佩戴上VR头盔后,VR系统中的虚拟相机也可按照该预设时间间隔采集每帧需显示在屏幕上的VR图像并写入显存中,以为屏幕能够按照屏幕刷新频率f将每帧采集到的VR图像渲染至屏幕上,以供用户观看奠定基础;

另外,该目标旋转角度为虚拟相机拍摄目标待截取VR图像时的旋转角度(即拍摄目标待截取VR图像时,头戴VR头盔的用户的头部相对于VR系统中的三维坐标系的三个坐标轴的转动角度,而目标待截取VR图像将在下面的实施例中进行介绍),具体地,当CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)或者其它资源没有延迟能够正常控制虚拟相机可按照该预设时间间隔(即1/f)拍摄每帧需显示在屏幕上的VR图像即目标待截取VR图像为第i帧待截取VR图像时,该目标旋转角度为虚拟相机拍摄第i帧VR显示图像所在的第i帧待截取VR图像时的旋转角度;而该图像截取区域在虚拟相机处于目标旋转角度时对应的预设位置可以为该图像截取区域位于该第i帧待截取VR图像的正中间区域时(在该VR系统的三维坐标系中)的位置坐标,即该图像截取区域位于该第i帧待截取VR图像的正中间区域时其各顶点的坐标值,而该图像截取区域位于该第i帧待截取VR图像的正中间区域时其各顶点的坐标值可以通过VR系统为图像截取区域所赋予的各顶点的初始坐标值和该目标旋转角度对应的旋转矩阵获得(如通过各顶点的初始坐标值获得各顶点相对于坐标原点的初始向量,进而将各顶点的初始向量与该目标旋转角度对应的目标旋转矩阵相乘即可获得该图像截取区域位于该第i帧待截取VR图像的正中间区域时其各顶点的坐标值),而该图像截取区域位于上述对应的预设位置时从该第i帧待截取VR图像中截取出的与屏幕尺寸适配的VR图像即相关技术中的截取出来用于存储至显存中的有延迟的第i帧VR图像。

而当CPU、GPU或者其它资源有延迟无法正常控制虚拟相机拍摄第i帧待截取VR图像(即有丢帧现象)即目标待截取VR图像为第i-m帧待截取VR图像时,该目标旋转角度为虚拟相机拍摄第i-m帧VR显示图像所在的第i-m帧待截取VR图像时的旋转角度;而该图像截取区域在虚拟相机处于目标旋转角度时对应的预设位置可以为该图像截取区域位于该第i-m帧待截取VR图像的正中间区域时(在该VR系统的三维坐标系中)的位置坐标,即该图像截取区域位于该第i-m帧待截取VR图像的正中间区域时其各顶点的坐标值,优选地,m等于1。

进一步地,图像截取区域的尺寸依据屏幕的尺寸而定,而在通常情况下,图像截取区域的尺寸稍大于屏幕尺寸,如图像截取区域通常为正方形区域,同时,目标待截取VR图像的尺寸应该大于图像截取区域的尺寸,以便于从中进行图像截取,例如,当屏幕的分辨率为1920p*1080p(其中p即Pixel(像素点))时,图像截取区域的尺寸可以是1920p*1920p,而目标待截取VR图像大于1920p*1920p以便于进行图像截取即可。

在步骤S102中,获取VR系统中的图像显示延迟时间;

在步骤S103中,根据图像显示延迟时间和对应的预设位置,对图像截取区域进行处理;

在步骤S104中,将处理后的图像截取区域所截取的图像作为第i帧VR显示图像写入显存中。

通过确定VR系统中的图像截取区域在虚拟相机处于目标旋转角度时对应的预设位置、图像显示延迟时间,可以根据该图像显示延迟时间和该对应的预设位置,对该图像截取区域进行自动处理,如自动旋转或者移动等,从而使得可根据处理后的图像截取区域截取图像,并将截取的图像作为第i帧VR显示图像写入显存中,从而实现在将第i帧VR显示图像显示至屏幕之前,能够尽可能根据头戴VR头盔的用户在该图像显示延迟时间内可能发生的头部转动,对图像截取区域进行处理,以使得处理后的图像截取区域所截取的图像尽可能接近用户头部转动后应该观看到的真实VR图像,这样就减少了图像显示延迟时间对用户本应该看到的VR显示图像的影响,使得用户看到的第i帧VR显示图像尽可能具有小的延迟和具有一定程度的实时性,进而使得即便头戴VR头盔的用户在该图像显示延迟时间内头部发生了转动而导致画面发生变化,用户仍然能够尽可能的观看到变化后的VR显示图像,而不是相关技术中截取的具有较大延迟的VR显示图像。

当然,上述步骤S101至步骤104可按照上述预设时间间隔不断执行,以不断采集每帧需要显示在屏幕上的VR显示图像,且i可以取任意正整数,因而,第i帧VR显示图像为屏幕上应该渲染的任意一帧VR显示图像。

另外,在CPU、GPU或者其它资源具有延迟而导致图像采集的速度达不到屏幕刷新频率即这些资源无法及时控制虚拟相机拍摄到第i帧待截取VR图像时,可以将第i-m次执行上述步骤S101时图像截取区域所处的对应的预设位置(即图像截取区域在虚拟相机拍摄第i-m帧待截取VR图像时,位于第i-m帧待截取VR图像的正中间区域的位置坐标)作为参考,进而继续第i次执行步骤S102至步骤S104之后,即可尽可能及时得到第i帧VR显示图像,以尽可能实现及时补帧,从而尽可能避免丢帧,进而避免影响用户的VR体验。

图2是根据一示例性实施例示出的另一种基于VR系统的图像处理方法的流程图。

如图2所示,在一个实施例中,上述图1所示的步骤S102,即获取VR系统中的图像显示延迟时间,可以包括步骤A1和步骤A2:

在步骤A1中,根据VR系统中显示屏的屏幕刷新频率,分别确定显示屏渲染左半屏图像和右半屏图像时所需消耗的时间;

在步骤A2中,根据显示屏渲染左半屏图像和右半屏图像时所需消耗的时间,分别确定第i帧VR显示图像的左半部分图像和右半部分图像的左延迟时间和右延迟时间。

显示屏渲染左半屏图像和右半屏图像时所需消耗的时间可依据显示屏的屏幕刷新频率而定,具体地,当显示屏的渲染顺序为从左到右时,由于左半屏图像相比于右半屏图像会被先渲染完成,因而,渲染左半屏图像所消耗的时间=1/f/2,其中,f为屏幕刷新频率,渲染右半屏图像所消耗的时间=1/f(当然,显示屏渲染完一帧图像所消耗的时间自然为1/f,且这种显示屏渲染顺序是最常用的),同样地,当显示屏的渲染顺序为从右到左时,由于右半屏图像相比于左半屏图像会被先渲染完成,因而,渲染左半屏图像所消耗的时间=1/f,其中,f为屏幕刷新频率,渲染右半屏图像所消耗的时间=1/f/2,而当显示屏的渲染顺序为从上到下/从下到上时,由于左半屏图像和右半屏图像会被同时渲染完成,因而,渲染左半屏图像和右半屏图像所消耗的时间均等于1/f。

进一步地,由于用户看到左半屏图像和右半屏图像的时间与左半屏图像和右半屏图像的渲染完成时间有关,因而,可根据显示屏渲染左半屏图像和右半屏图像时所需消耗的时间分别确定第i帧VR显示图像的左半部分图像和右半部分图像的左延迟时间和右延迟时间,例如,可将显示屏渲染左半屏图像和右半屏图像时所需消耗的时间分别确定为第i帧VR显示图像的左半部分图像和右半部分图像的左延迟时间和右延迟时间(如当f=60hz且显示屏的渲染顺序为从左到右时,渲染左半屏图像和右半屏图像时,所需消耗的时间分别为8.33ms(即毫秒)和16.67ms,而VR头盔中镜片与显示屏之间的距离较近,如仅隔着一个凸透镜,因而,左眼只能看到左半屏图像、右眼只能看到右半屏图像,所以,左右眼看到左半屏图像和右半屏图像的延迟时间分别为8.33ms和16.67ms),而左半部分图像即:将显示屏一分为二后,第i帧VR显示图像中显示在左半显示屏上的左半屏图像,同样地,右半部分图像即:将显示屏一分为二后,第i帧VR显示图像中显示在右半显示屏上的右半屏图像。

另外,需要说明的是:本公开中的第i帧VR显示图像的左半部分图像和右半部分图像在显示至屏幕之前,该第i帧VR显示图像在显存中可能对应两张独立的图像或者仅对应一张图像,具体地,如果该VR系统中具有两个虚拟相机,则左右两个虚拟相机在头戴VR头盔的用户头部旋转后会分别拍摄左右两张待截取VR图像,而左半屏图像的截取区域用于截取左虚拟相机拍摄的(左)待截取VR图像,右半屏图像的截取区域用于截取右虚拟相机拍摄的(右)待截取VR图像,同时使用左半屏图像的截取区域和右半屏图像的截取区域截取后的图像分别为头戴VR头盔的用户左眼观看到的左图像(即第i帧VR显示图像的左半部分图像)和右眼观看到的右图像(即第i帧VR显示图像的右半部分图像),而如果该VR系统中仅有一个虚拟相机,则这个虚拟相机在头戴VR头盔的用户头部旋转后会仅会拍摄一张待截取VR图像,而左半屏图像的截取区域和右半屏图像的截取区域分别用于从待截取的VR图像的左半张图像和右半张图像中截取图像,且左半屏图像的截取区域和右半屏图像的截取区域截取的图像分别为头戴VR头盔的用户头部转动后左眼观看到的左图像(即第i帧VR显示图像的左半部分图像)和右眼观看到的右图像(即第i帧VR显示图像的右半部分图像);同样地,写入显存中的参考VR显示图像可能对应左右两张独立的图像或者仅对应一张图像。

当然,本公开是以VR系统中只有一块显示屏为例说明图像处理方式,当VR系统中具有左右两个显示屏时,也可适用于本公开,只是上述第i帧VR显示图像的左半部分图像和右半部分图像分别为左显示屏待显示的第i帧VR显示图像和右显示屏待显示的第i帧的VR显示图像,此时,本领域技术人员应当了解,本公开中的第i帧VR显示图像可理解为是对左显示屏待显示的第i帧VR显示图像和右显示屏待显示的第i帧的VR显示图像的统称,且本公开中的第i帧VR显示图像的左半部分图像和右半部分图像分别相当于左显示屏待显示的第i帧VR显示图像和右显示屏待显示的第i帧的VR显示图像,同时左延迟时间和右延迟时间是相等的,均等于1/f。

最后,为了确保VR系统中图像采集过程(即步骤S101和步骤S104)和图像显示过程(即屏幕从显存中读取第i帧VR图像,并根据第i帧VR图像中每个像素点的像素值点亮屏幕的过程,这是现有技术,本公开未示出)能够相互不影响、可以同时进行,这两个过程可以并行进行,即在CPU、GPU或者其它资源没有延迟时,在按照预设时间间隔执行上述步骤S101至步骤S104时,也按照预设时间间隔执行图像显示过程;但为了确保能够尽可能及时地按照该预设时间间隔执行图像显示过程,将写入显存中的图像渲染至屏幕上,以满足该屏幕刷新频率,可控制图像采集过程稍微比图像显示过程早一点进行,如控制控制图像采集过程一直比图像显示过程早一帧进行,这样,第i帧VR显示图像就会在第i-1个预设时间间隔(即第i-1个预设时间间隔对应的时间段)内被写入显存中,当然,图像采集过程如果过早进行,也会导致延迟时间更长,因而,当VR头盔中的屏幕只有一块时,由于显示屏渲染左半屏图像和右半屏图像时所需消耗的时间刚好相差半个预设时间间隔(即1/f/2),所以,也可控制图像采集过程一直比图像显示过程早半帧进行,这样,第i帧VR显示图像中的左半帧VR显示图像(即第i帧VR显示图像的左半部分图像)会在第i-1个预设时间间隔中的后半个预设时间间隔(即第i-1个预设时间间隔对应的时间段内的后半个时间段)内被写入显存中,而第i帧VR显示图像中的右半帧VR显示图像(即第i帧VR显示图像的右半部分图像)会在第i个预设时间间隔中的前半个时间间隔(即第i个时间间隔对应的时间段内的前半个时间段)内被写入显存中,但无论采用哪种方式控制图像采集过程稍微比图像显示过程早一点进行,由于屏幕从显存中读取图像数据相比于图像被存储至显存中已有一定的延迟,因而,当CPU、GPU或者其它资源没有延迟能够正常控制虚拟相机拍摄第i帧VR显示图像所在的第i帧待截取VR图像时,在根据显示屏渲染左半屏图像和右半屏图像时所需消耗的时间,分别确定第i帧VR显示图像的左半部分图像和右半部分图像的左延迟时间和右延迟时间时,可将由显示屏渲染左半屏图像和右半屏图像时所需消耗的时间分别确定的左延迟时间和右延迟时间进行适当延长,例如,当图像采集过程一直比图像显示过程早半帧时,可将左延迟时间和右延迟时间延长半个预设时间间隔(即1/f/2)或者四分之一个预设时间间隔(即1/f/4),以尽可能确保延迟时间和右延迟时间比较准确,从而尽可能确保可通过处理后的图像截取区域截取出的更为真实、准确、延迟更小的第i帧VR显示图像。

当然,当CPU、GPU或者其它资源有延迟而无法及时控制虚拟相机拍摄出第i帧待截取VR图像时,由于除了屏幕从显存中读取第i帧VR显示图像相比于第i帧VR显示图像被存储至显存中已有一定的延迟之外,从屏幕开始从显存中读取第i-m帧VR显示图像至屏幕开始从显存中读取第i帧VR显示图像已间隔m个1/f(即间隔m*(1/f)),所以,在这种情况下,左延迟时间和右延迟时间在上述已延长的基础上应该被进一步延长,如左延迟时间和右延迟时间可被进一步延长m个预设时间间隔或者m/2个预设时间间隔,例如,当已初步延长的左延迟时间和右延迟时间分别为8.33ms+ΔT0和16.67ms+ΔT0,且m=1时,可将已延迟的左延迟时间和右延迟时间再进一步延迟ΔT1,使得最终的左延迟时间为8.33ms+ΔT0+ΔT1,最终的右延迟时间为16.67+ΔT0+ΔT1,其中,当图像采集过程一直比图像显示过程早半帧时,该ΔT0可以是半个预设时间间隔,而ΔT1可以是一个预设时间间隔即1/f,另外,第i-m帧待截取VR图像为距离该第i帧待截取VR图像最近的,在CPU、GPU或者其它资源没有延迟的情况下,虚拟相机正常拍摄的待截取VR图像,而优选地,m=1。

图3是根据一示例性实施例示出的又一种基于VR系统的图像处理方法的流程图。

如图3所示,在一个实施例中,图像截取区域包括左半屏图像的截取区域和右半屏图像的截取区域;

其中,由于左延迟时间和右延迟时间可能不同且第i帧VR显示图像的左半部分图像和右半部分图像的位置不同,因而,图像截取区域可以包括左半屏图像的截取区域和右半屏图像的截取区域,而左半屏图像的截取区域用于截取第i帧VR显示图像的左半部分图像,右半屏图像的截取区域用于截取第i帧VR显示图像的右半部分图像。

相应地,图像截取区域在虚拟相机处于目标旋转角度时对应的预设位置也包括:左半屏图像的截取区域在虚拟相机处于目标旋转角度时对应的预设位置和右半屏图像的截取区域在虚拟相机处于目标旋转角度时对应的预设位置。

当然,正如上文,如果VR系统中仅有一个虚拟相机,则虚拟相机仅会拍摄一张待截取VR图像,此时,左半屏图像的截取区域在虚拟相机处于目标旋转角度时对应的预设位置和右半屏图像的截取区域在虚拟相机处于目标旋转角度时对应的预设位置可以分别为在虚拟相机拍摄目标待截取VR图像处于目标旋转角度时,图像截取区域作为一个整体位于该目标待截取VR图像的正中间区域时,左半屏图像的截取区域的位置坐标和右半屏图像的截取区域的位置坐标;

如果VR系统中有左右两个虚拟相机,则虚拟相机会拍摄左右两张待截取VR图像,此时,左半屏图像的截取区域在虚拟相机处于目标旋转角度时对应的预设位置可以为:在左虚拟相机拍摄(左)目标待截取VR图像处于目标旋转角度时,该左半屏图像的截取区域位于该左虚拟相机所拍摄的(左)目标待截取VR图像的正中间区域时的位置坐标,右半屏图像的截取区域在虚拟相机处于目标旋转角度时对应的预设位置可以为:在右虚拟相机拍摄(右)目标待截取VR图像处于目标旋转角度时,该右半屏图像的截取区域位于右虚拟相机所拍摄的(右)目标待截取VR图像的正中间区域时的位置坐标。

上述图1所示的步骤S103,即根据图像显示延迟时间和对应的预设位置,对图像截取区域进行处理,可以包括步骤B1:

在步骤B1中,根据左延迟时间、右延迟时间和对应的预设位置,分别对左半屏图像的截取区域和右半屏图像的截取区域进行处理,以得到处理后的图像截取区域,处理后的图像截取区域包括处理后的左半屏图像的截取区域和处理后的右半屏图像的截取区域。

根据左延迟时间、右延迟时间和对应的预设位置,分别对左半屏图像的截取区域和右半屏图像的截取区域分别进行处理时,可以分别基于左延迟时间和左半屏图像的截取区域在虚拟相机处于目标旋转角度时对应的预设位置对左半屏图像的截取区域自动地进行移动、旋转等处理,基于右延迟时间和右半屏图像的截取区域在虚拟相机处于目标旋转角度时对应的预设位置对右半屏图像的截取区域自动地进行移动、旋转等处理,以便于可将处理后的左半屏图像的截取区域所截取的图像作为第i帧VR显示图像的左半部分图像和将处理后的右半屏图像的截取区域所截取的图像作为第i帧VR显示图像的右半部分图像被存储至显存中,从而实现在将第i帧VR显示图像的左半部分图像和右半部分图像显示至屏幕之前,能够尽可能根据预测的头戴VR头盔的用户分别在该左延迟时间和右延迟时间内可能发生的头部转动,分别对左半屏图像的截取区域和右半屏图像的截取区域进行处理,以使得处理后的左半屏图像的截取区域和处理后的右半屏图像的截取区域所截取的图像尽可能接近用户头部转动后应该观看到的真实VR图像,这样就减少了左延迟时间和右延迟时间对用户本应该看到的VR显示图像的影响,使得用户看到的第i帧VR显示图像的左半部分图像和右半部分图像尽可能具有小的延迟和具有一定程度的实时性,进而使得即便头戴VR头盔的用户在左延迟时间和右延迟时间内头部发生了转动而导致画面发生变化,用户仍然能够尽可能的观看到变化后的VR显示图像,而不是相关技术中截取的具有较大延迟的VR显示图像。

图4是根据一示例性实施例示出的再一种基于VR系统的图像处理方法的流程图。

如图4所示,在一个实施例中,上述图3所示的步骤B1,级根据左延迟时间、右延迟时间和对应的预设位置,分别对左半屏图像的截取区域和右半屏图像的截取区域进行处理,可以包括步骤S401至步骤S403:

在步骤S401中,获取虚拟相机的旋转角速度;

该旋转角速度可以从VR系统中的陀螺仪、加速度计等设备中自动获取,而陀螺仪、加速度计等设备可以是VR系统中VR头盔上额外安装的设备或者是内置于VR头盔的移动终端上原有的设备。

在步骤S402中,根据旋转角速度,分别预测虚拟相机在左延迟时间内的第一旋转角度和虚拟相机在右延迟时间内的第二旋转角度;

其次,由于虚拟相机的目标旋转角度等于头戴VR头盔的用户的头部旋转角度,例如,头向右移动1度,就会控制虚拟世界中的虚拟相机也向右移动1度,因而,第一旋转角度和第二旋转角度分别为预测的头戴VR头盔的用户的头部分别在左延迟时间内和右延迟时间内可能旋转的角度。

另外,虚拟相机在虚拟世界中的摆放位置可以是系统建立的三维坐标系中的原点,而该三维坐标系的原点可以个性化设定,且虚拟相机在系统建立的三维坐标系中可在坐标原点沿六个方向随头部的转动而进行自由转动。

此外,虚拟相机的旋转角速度和拍摄目标待截取VR图像时所处的目标旋转角度可通过陀螺仪、加速度计等设备在头戴VR头盔的用户的头部转动后获得的四元数而测得,且虚拟相机的目标旋转角度等于头部转动角度,同时,优选地,陀螺仪、加速度计等设备可以是VR头盔上额外配置的设备,备选地,当VR头盔中的显示屏为手机等移动设备的显示屏时,陀螺仪、加速度计等设备也可以是移动设备上自带的设备。

在步骤S403中,根据第一旋转角度、第二旋转角度和对应的预设位置,分别对左半屏图像的截取区域和右半屏图像的截取区域进行处理。

在对左半屏图像的截取区域和右半屏图像的截取区域分别进行自动处理时,可自动获取VR系统中虚拟相机的旋转角速度,进而根据该旋转角速度分别预测虚拟相机在左延迟时间内的第一旋转角度和虚拟相机在右延迟时间内的第二旋转角度,从而根据该第一旋转角度、第二旋转角度和对应的预设位置,分别对左半屏图像的截取区域和右半屏图像的截取区域进行自动处理,如分别根据该第一旋转角度、和左半屏图像的截取区域在虚拟相机处于目标旋转角度时对应的预设位置对左半屏图像的截取区域自动地进行移动、旋转等处理,基于第二旋转角度和右半屏图像的截取区域在虚拟相机处于目标旋转角度时对应的预设位置对右半屏图像的截取区域自动地进行移动、旋转等处理,从而实现在将第i帧VR显示图像的左半部分图像和右半部分图像显示至屏幕之前,能够尽可能根据头戴VR头盔的用户头部的第一旋转角度和第二旋转角度,分别对左半屏图像的截取区域和右半屏图像的截取区域进行处理,以使得处理后的左半屏图像的截取区域和处理后的右半屏图像的截取区域所截取的图像尽可能接近用户在图像显示延迟时间内发生头部转动后应该观看到的真实VR图像,这样就减少了第一旋转角度和第二旋转角度对用户本应该看到的VR显示图像的影响,使得用户看到的第i帧VR显示图像的左半部分图像和右半部分图像尽可能具有小的延迟和具有一定程度的实时性,进而使得头戴VR头盔的用户的头部即便在屏幕渲染VR图像的左延迟时间内大概转动了第一旋转角度和在右延迟时间内大概转动了第二旋转角度而导致画面发生变化,用户仍然能够尽可能的观看到变化后的VR显示图像,而不是相关技术中截取的具有较大延迟的VR显示图像。

图5是根据一示例性实施例示出的再一种基于VR系统的图像处理方法的流程图。

如图5所示,在一个实施例中,上述图4所示的步骤S403,即根据第一旋转角度、第二旋转角度和对应的预设位置,分别对左半屏图像的截取区域和右半屏图像的截取区域进行处理,可以包括步骤S501至步骤S506:

在步骤S501中,获取左半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵和右半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵;

左/右半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵可通过陀螺仪、加速度计等设备在拍摄目标待截取VR图像时获得的四元数而得到;

而由于在拍摄目标待截取VR图像时,头部的转动角度是一定的,因而,获得的四元数是一定的,所以,左半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵和右半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵是相同的,即下文中的Ma=Ma

在步骤S502中,根据左半屏图像的截取区域的目标旋转矩阵和第一旋转角度,获取第一旋转角度对应的第一旋转矩阵;

在步骤S503中,根据右半屏图像的截取区域的目标旋转矩阵和第二旋转角度,获取第二旋转角度对应的第二旋转矩阵;

由于该左延迟时间和右延迟时间内是不同的,而旋转角速度是一定的因而,第一旋转角度/第二旋转角度是不同的,因而,第一旋转矩阵和第二旋转矩阵也可能是不同的。

具体地,第一旋转角度对应的第一旋转矩阵为虚拟相机拍摄目标待截取VR图像时的目标旋转角度与第一旋转角度之间的旋转角度和所对应的旋转矩阵,第二旋转角度对应的第二旋转矩阵为虚拟相机拍摄目标待截取VR图像时的目标旋转角度与第二旋转角度之间的旋转角度和所对应的旋转矩阵。

在步骤S504中,根据第一旋转矩阵的逆矩阵和左半屏图像的截取区域的目标旋转矩阵,确定左半屏图像的截取区域对应的左变形矩阵;

在步骤S505中,根据第二旋转矩阵的逆矩阵和右半屏图像的截取区域的目标旋转矩阵,确定右半屏图像的截取区域对应的右变形矩阵;

左变形矩阵可以等于Ml-1*Ma,其中,Ma为虚拟相机处于目标旋转角度时对应的旋转矩阵即左半屏图像的截取区域的目标旋转矩阵,而

Ml-1为在目标旋转角度的基础上,虚拟相机继续旋转第一旋转角度后达到的新的旋转角度(即新的头部旋转角度等于目标旋转角度与第一旋转角度之间的旋转角度和)所对应的旋转矩阵(即第一旋转矩阵)的逆矩阵,右变形矩阵可以等于Mr-1*Ma,其中,Ma为虚拟相机处于目标旋转角度时对应的旋转矩阵即(右半屏图像的截取区域的)目标旋转矩阵,而Mr-1为在目标旋转角度的基础上,虚拟相机继续旋转第二旋转角度后达到的新的旋转角度(即新的头部旋转角度等于目标旋转角度与第二旋转角度之间的旋转角度和)所对应的旋转矩阵(第二旋转矩阵)的逆矩阵。

在步骤S506中,在基于对应的预设位置的基础上,分别根据左变形矩阵对左半屏图像的截取区域和右变形矩阵对右半屏图像的截取区域进行处理,得到处理后的左半屏图像的截取区域和处理后的右半屏图像的截取区域;

具体地:由于左半屏图像的截取区域在处理前后面积是不变的,因而左半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵与左半屏图像的截取区域在目标旋转角度下对应的预设位置(即左半屏图像的截取区域位于该目标待截取VR图像的正中间区域时的位置坐标)之间的乘积等于左变形矩阵与处理后的左半屏图像的截取区域在三维空间中的新的坐标值的乘积,所以,基于左半屏图像的截取区域在目标旋转角度下对应的预设位置,可根据左变形矩阵对该左半屏图像的截取区域进行自动平移或旋转等处理,以使左半屏图像的截取区域位于其新的坐标值对应的位置上,进而得到处理后的左半屏图像的截取区域;同样地,

由于右半屏图像的截取区域在处理前后面积是不变的,因而右半屏图像的截取区域在目标旋转角度时对应的目标旋转矩阵与右半屏图像的截取区域在目标旋转角度下对应的预设位置(即右半屏图像的截取区域位于目标待截取VR图像的正中间区域时的位置坐标)之间的乘积等于右变形矩阵与处理后的右半屏图像的截取区域在三维空间中的新的坐标值的乘积,所以,基于右半屏图像的截取区域在目标旋转角度下对应的预设位置,可根据右变形矩阵对该右半屏图像的截取区域进行自动平移或旋转等处理,以使右半屏图像的截取区域位于其新的坐标值对应的位置上,进而并得到处理后的右半屏图像的截取区域。

上述图1所示的步骤S104,即所述将处理后的图像截取区域所截取的图像作为所述第i帧VR显示图像写入显存中,可以包括步骤S507和步骤S508:

在步骤S507中,根据处理后的左半屏图像的截取区域从虚拟相机在目标旋转角度下拍摄的目标待截取VR图像中截取第一图像,并将第一图像作为第i帧VR显示图像的左半部分图像,其中,目标待截取VR图像为虚拟相机拍摄的第i-m帧待截取VR图像或者第i帧待截取VR图像;

虚拟相机拍摄的目标待截取VR图像可以由GPU、GPU等资源根据目标旋转角度、当前时间等参数计算出的待截取VR图像。

在步骤S508中,根据处理后的右半屏图像的截取区域从虚拟相机在目标旋转角度下拍摄的目标待截取VR图像中截取第二图像,并将第二图像作为第i帧VR显示图像的右半部分图像,其中,处理包括旋转和/或处理,其中,目标待截取VR图像包括第i帧待截取VR图像或者第i-m帧待截取VR图像。

当然,正如上文,VR系统中的虚拟相机可能是一个或两个(即分别为位于坐标原点稍微有一定距离间隔的左右两个虚拟相机),相应地,目标待截取VR图像在显存中也可能是一张独立的图像或两张,因而,当VR系统中仅有一个虚拟相机时,目标待截取VR图像仅有一张,此时,处理后的左半屏图像的截取区域和处理后的右半屏图像的截取区域可从该虚拟相机拍摄到的同一张目标待截取VR图像的左右两侧分别截取第i帧VR显示图像的左半部分图像和第i帧VR显示图像的右半部分图像;

当VR系统中有两个虚拟相机时,目标待截取VR图像均是两张(即目标待截取VR图像包括(左)目标待截取VR图像和(右)目标待截取VR图像),此时,处理后的左半屏图像的截取区域从目标待截取VR图像中截取第一图像包括:处理后的左半屏图像的截取区域从左虚拟相机拍摄到的(左)目标待截取VR图像中截取第一图像,而该截取出的第一图像即为第i帧VR显示图像的左半部分图像,同样地,处理后的右半屏图像的截取区域从目标待截取VR图像中截取第二图像包括:处理后的右半屏图像的截取区域从右虚拟相机拍摄到的(右)目标待截取VR图像中截取第二图像,而该截取出的第二图像即为第i帧VR显示图像的右半部分图像。

在分别自动确定出左半屏图像的截取区域对应的左变形矩阵和右半屏图像的截取区域对应的右变形矩阵,在基于对应的预设位置的基础上,可以分别根据左变形矩阵对左半屏图像的截取区域和右变形矩阵对右半屏图像的截取区域进行处理,以分别对左半屏图像的截取区域和右半屏图像的截取区域在目标旋转角度下对应的预设位置进行更改,从而实现对左半屏图像的截取区域和右半屏图像的截取区域进行自动旋转或移动等,进而可根据自动处理后的从目标待截取VR图像中截取出在目标旋转角度的基础上左延迟时间内头部继续转动第一旋转角度左右后可能产生的具有较小延迟和一定实时性的变化后的第i帧VR显示图像的左半部分图像(而非相关技术中,从目标待截取VR图像中直接截取出的在目标旋转角度下观看到的具有延迟的第i帧VR显示图像的左半部分图像)和在目标旋转角度的基础上右延迟时间内头部继续转动第二旋转角度左右后可能产生的具有较小延迟和一定实时性的变化后的第i帧VR显示图像的右半部分图像(而非相关技术中,从目标待截取VR图像中直接截取出的在目标旋转角度下观看到的具有延迟的第i帧VR显示图像的右半部分图像),这样即便头戴VR头盔的用户在头部转动该目标旋转角度之后,若在该图像显示延迟时间内头部又发生了转动而导致画面发生变化,用户仍然能够尽可能的观看到变化后的VR显示图像,而不是相关技术中截取的具有较大延迟的VR显示图像。

最后,在VR系统中为了方便处理,左半屏图像的截取区域和右半屏图像的截取区域可能还被划分成了多个小区域(如左半屏图像的截取区域和右半屏图像的截取区域可能分别由33个小网格组成),但图像处理方式与上述实施例完全相同,此处不再赘述。

在一个实施例中,对应的预设位置包括:图像截取区域位于虚拟相机在目标旋转角度下拍摄到的目标待截取VR图像的正中间位置时的位置坐标,其中,目标待截取VR图像包括第i帧待截取VR图像或者第i-m帧待截取VR图像。

当CPU、GPU或者其它资源没有延迟能够正常控制虚拟相机可按照该预设时间间隔(即1/f)拍摄每帧需显示在屏幕上的VR图像即目标待截取VR图像为第i帧待截取VR图像时,该目标旋转角度为虚拟相机拍摄第i帧VR显示图像所在的第i帧待截取VR图像时的旋转角度;而该图像截取区域在虚拟相机处于目标旋转角度时对应的预设位置可以为该图像截取区域位于该第i帧待截取VR图像的正中间区域时的位置坐标,即该图像截取区域位于该第i帧待截取VR图像的正中间区域时其各顶点的坐标值。

而当CPU、GPU或者其它资源有延迟无法正常控制虚拟相机拍摄第i帧待截取VR图像(即有丢帧现象)即目标待截取VR图像为第i-m帧待截取VR图像时,该目标旋转角度为虚拟相机拍摄第i-m帧VR显示图像所在的第i-m帧待截取VR图像时的旋转角度;而该图像截取区域在虚拟相机处于目标旋转角度时对应的预设位置可以为该图像截取区域位于该第i-m帧待截取VR图像的正中间区域时的位置坐标,即该图像截取区域位于该第i-m帧待截取VR图像的正中间区域时其各顶点的坐标值。

在一个实施例中,VR系统包括:VR头盔和内置于VR头盔的移动设备(如手机等)。

VR系统包括当不限于VR头盔和内置于VR头盔的移动设备,例如还可以包括VR头盔与计算机组成的VR系统,当然此时VR头盔中仍然需内置有一块或两块显示屏。

对应本公开实施例提供的上述基于VR系统的图像处理方法,本公开实施例还提供一种基于VR系统的图像处理装置。

图6是根据一示例性实施例示出的一种基于VR系统的图像处理装置的框图。

如图6所示,该装置包括确定模块601、获取模块602、处理模块603和写入模块604:

确定模块601,被配置为确定VR系统中的图像截取区域在虚拟相机处于目标旋转角度时对应的预设位置,其中,虚拟相机为VR系统中的虚拟相机,i为正整数;

获取模块602,被配置为获取VR系统中的图像显示延迟时间;

处理模块603,被配置为根据图像显示延迟时间和对应的预设位置,对图像截取区域进行处理;

写入模块604,被配置为将处理后的图像截取区域所截取的图像作为第i帧VR显示图像写入显存中。

图7是根据一示例性实施例示出的另一种基于VR系统的图像处理装置的框图。

如图7所示,在一个实施例中,上述图6所示的获取模块602可以包括渲染时间确定子模块6021和延迟时间确定子模块6022:

渲染时间确定子模块6021,被配置为根据VR系统中显示屏的屏幕刷新频率,分别确定显示屏渲染左半屏图像和右半屏图像时所需消耗的时间;

延迟时间确定子模块6022,被配置为根据显示屏渲染左半屏图像和右半屏图像时所需消耗的时间,分别确定第i帧VR显示图像的左半部分图像和右半部分图像的左延迟时间和右延迟时间。

图8是根据一示例性实施例示出的又一种基于VR系统的图像处理装置的框图。

如图8所示,在一个实施例中,图像截取区域包括左半屏图像的截取区域和右半屏图像的截取区域;

上述图6所示的处理模块603可以包括处理子模块6031:

处理子模块6031,被配置为根据左延迟时间、右延迟时间和对应的预设位置,分别对左半屏图像的截取区域和右半屏图像的截取区域进行处理,以得到处理后的图像截取区域。

图9是根据一示例性实施例示出的再一种基于VR系统的图像处理装置的框图。

如图9所示,在一个实施例中,上述图8所示的处理子模块6031可以包括获取单元60311、预测单元60312和处理单元60313:

获取单元60311,被配置为获取虚拟相机的旋转角速度;

预测单元60312,被配置为根据旋转角速度,分别预测虚拟相机在左延迟时间内的第一旋转角度和虚拟相机在右延迟时间内的第二旋转角度;

处理单元60313,被配置为根据第一旋转角度、第二旋转角度和对应的预设位置,分别对左半屏图像的截取区域和右半屏图像的截取区域进行处理。

图10是根据一示例性实施例示出的再一种基于VR系统的图像处理装置的框图。

如图10所示,在一个实施例中,上述图9所示的处理单元60313可以包括第一获取子单元603131、第二获取子单元603132、第三获取子单元603133、第一确定子单元603134、第二确定子单元603135、处理子单元603136,以及上述图6所示的写入模块604可以包括第一截取子模块6041和第二截取子模块6042:

第一获取子单元603131,被配置为获取左半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵和右半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵;

第二获取子单元603132,被配置为根据左半屏图像的截取区域的目标旋转矩阵和第一旋转角度,获取第一旋转角度对应的第一旋转矩阵;

第三获取子单元603133,被配置为根据右半屏图像的截取区域的目标旋转矩阵和第二旋转角度,获取第二旋转角度对应的第二旋转矩阵;

第一确定子单元603134,被配置为根据第一旋转矩阵的逆矩阵和左半屏图像的截取区域的目标旋转矩阵,确定左半屏图像的截取区域对应的左变形矩阵;

第二确定子单元603135,被配置为根据第二旋转矩阵的逆矩阵和右半屏图像的截取区域的目标旋转矩阵,确定右半屏图像的截取区域对应的右变形矩阵;处理子单元603136,被配置为在基于对应的预设位置的基础上,分别根据左变形矩阵对左半屏图像的截取区域和右变形矩阵对右半屏图像的截取区域进行处理,得到处理后的左半屏图像的截取区域和处理后的右半屏图像的截取区域;

上述图6所示的写入模块604可以包括:

第一截取子模块6041,被配置为根据处理后的左半屏图像的截取区域从虚拟相机在目标旋转角度下拍摄的目标待截取VR图像中截取第一图像,并将第一图像作为第i帧VR显示图像的左半部分图像;

第二截取子模块6042,被配置为根据处理后的右半屏图像的截取区域从虚拟相机在目标旋转角度下拍摄的目标待截取VR图像中截取第二图像,并将第二图像作为第i帧VR显示图像的右半部分图像,其中,处理包括旋转和/或处理,其中,目标待截取VR图像包括第i帧待截取VR图像或者第i-m帧待截取VR图像,其中,m为小于或等于i的正整数。

在一个实施例中,对应的预设位置包括:图像截取区域位于虚拟相机在目标旋转角度下拍摄到的目标待截取VR图像的正中间位置时的位置坐标,其中,目标待截取VR图像包括第i帧待截取VR图像或者第i-m帧待截取VR图像。

在一个实施例中,VR系统包括:VR头盔和内置于VR头盔的移动设备。

根据本公开实施例的第三方面,提供一种基于VR系统的图像处理装置,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,处理器被配置为:

确定所述VR系统中的图像截取区域在虚拟相机处于目标旋转角度时对应的预设位置,其中,所述虚拟相机为所述VR系统中的虚拟相机,所述i为正整数;

获取所述VR系统中的图像显示延迟时间;

根据所述图像显示延迟时间和所述对应的预设位置,对所述图像截取区域进行处理;

将处理后的图像截取区域所截取的图像作为所述第i帧VR显示图像写入显存中。

上述处理器还可被配置为:

所述获取所述VR系统中的图像显示延迟时间,包括:

根据所述VR系统中显示屏的屏幕刷新频率,分别确定所述显示屏渲染左半屏图像和右半屏图像时所需消耗的时间;

根据所述显示屏渲染左半屏图像和右半屏图像时所需消耗的时间,分别确定所述第i帧VR显示图像的左半部分图像和右半部分图像的左延迟时间和右延迟时间。

上述处理器还可被配置为:

所述图像截取区域包括左半屏图像的截取区域和右半屏图像的截取区域;

所述根据所述图像显示延迟时间和所述对应的预设位置,对所述图像截取区域进行处理,包括:

根据所述左延迟时间、所述右延迟时间和所述对应的预设位置,分别对所述左半屏图像的截取区域和右半屏图像的截取区域进行处理,以得到处理后的所述图像截取区域。

上述处理器还可被配置为:

所述根据所述左延迟时间、所述右延迟时间和所述对应的预设位置,分别对所述左半屏图像的截取区域和右半屏图像的截取区域进行处理,包括:

获取所述虚拟相机的旋转角速度;

根据所述旋转角速度,分别预测所述虚拟相机在所述左延迟时间内的第

一旋转角度和所述虚拟相机在所述右延迟时间内的第二旋转角度;

根据所述第一旋转角度、所述第二旋转角度和所述对应的预设位置,分别对所述左半屏图像的截取区域和右半屏图像的截取区域进行处理。

上述处理器还可被配置为:

所述根据所述第一旋转角度、所述第二旋转角度和所述对应的预设位置,分别对所述左半屏图像的截取区域和右半屏图像的截取区域进行处理,包括:

获取所述左半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵和所述右半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵;

根据所述左半屏图像的截取区域的目标旋转矩阵和所述第一旋转角度,获取所述第一旋转角度对应的第一旋转矩阵;

根据所述右半屏图像的截取区域的目标旋转矩阵和所述第二旋转角度,获取所述第二旋转角度对应的第二旋转矩阵;

根据所述第一旋转矩阵的逆矩阵和所述左半屏图像的截取区域的目标旋转矩阵,确定所述左半屏图像的截取区域对应的左变形矩阵;

根据所述第二旋转矩阵的逆矩阵和所述右半屏图像的截取区域的目标旋转矩阵,确定所述右半屏图像的截取区域对应的右变形矩阵;

在基于所述对应的预设位置的基础上,分别根据所述左变形矩阵对所述左半屏图像的截取区域和所述右变形矩阵对所述右半屏图像的截取区域进行处理,得到处理后的左半屏图像的截取区域和处理后的右半屏图像的截取区域;

所述将处理后的图像截取区域所截取的图像作为所述第i帧VR显示图像写入显存中,包括:

根据处理后的左半屏图像的截取区域从所述虚拟相机在所述目标旋转角度下拍摄的目标待截取VR图像中截取第一图像,并将所述第一图像作为所述第i帧VR显示图像的左半部分图像;

根据处理后的右半屏图像的截取区域从所述虚拟相机在所述目标旋转角度下拍摄的目标待截取VR图像中截取第二图像,并将所述第二图像作为所述第i帧VR显示图像的右半部分图像,其中,所述处理包括旋转和/或处理,其中,所述目标待截取VR图像包括第i帧待截取VR图像或者第i-m帧待截取VR图像,其中,m为小于或等于i的正整数。

上述处理器还可被配置为:

所述对应的预设位置包括:所述图像截取区域位于所述虚拟相机在所述目标旋转角度下拍摄到的目标待截取VR图像的正中间位置时的位置坐标,其中,所述目标待截取VR图像包括第i帧待截取VR图像或者第i-m帧待截取VR图像。

在一个实施例中,所述VR系统包括:VR头盔和内置于所述VR头盔的移动设备。

图11是根据一示例性实施例示出的一种用于基于VR系统的图像处理装置1100的框图,该装置适用于终端设备。例如,装置1100可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个用户数字助理等。

参照图11,装置1100可以包括以下一个或至少两个组件:处理组件1102,存储器1104,电源组件1106,多媒体组件1108,音频组件1110,输入/输出(I/O)接口1112,传感器组件1114,以及通信组件1116。

处理组件1102通常控制装置1100的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1102可以包括一个或至少两个处理器1120来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1102可以包括一个或至少两个模块,便于处理组件1102和其他组件之间的交互。例如,处理组件1102可以包括多媒体模块,以方便多媒体组件1108和处理组件1102之间的交互。

存储器1104被配置为存储各种类型的数据以支持在装置1100的操作。这些数据的示例包括用于在装置1100上操作的任何存储对象或方法的指令,联系用户数据,电话簿数据,消息,图片,视频等。存储器1104可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

电源组件1106为装置1100的各种组件提供电源。电源组件1106可以包括电源管理系统,一个或至少两个电源,及其他与为装置1100生成、管理和分配电源相关联的组件。

多媒体组件1108包括在所述装置1100和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或至少两个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1108包括一个前置摄像头和/或后置摄像头。当装置1100处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件1110被配置为输出和/或输入音频信号。例如,音频组件1110包括一个麦克风(MIC),当装置1100处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1104或经由通信组件1116发送。在一些实施例中,音频组件1110还包括一个扬声器,用于输出音频信号。

I/O接口1112为处理组件1102和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件1114包括一个或至少两个传感器,用于为装置1100提供各个方面的状态评估。例如,传感器组件1114可以检测到装置1100的打开/关闭状态,组件的相对定位,例如所述组件为装置1100的显示器和小键盘,传感器组件1114还可以检测装置1100或装置1100一个组件的位置改变,用户与装置1100接触的存在或不存在,装置1100方位或加速/减速和装置1100的温度变化。传感器组件1114可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1114还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1114还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件1116被配置为便于装置1100和其他设备之间有线或无线方式的通信。装置1100可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1116经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1116还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,装置1100可以被一个或至少两个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子组件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1104,上述指令可由装置1100的处理器1120执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

一种非临时性计算机可读存储介质,当所述存储介质中的指令由上述装置1100的处理器执行时,使得上述装置1100能够执行一种基于VR系统的图像处理方法,包括:

确定所述VR系统中的图像截取区域在虚拟相机处于目标旋转角度时对应的预设位置,其中,所述虚拟相机为所述VR系统中的虚拟相机,所述i为正整数;

获取所述VR系统中的图像显示延迟时间;

根据所述图像显示延迟时间和所述对应的预设位置,对所述图像截取区域进行处理;

将处理后的图像截取区域所截取的图像作为所述第i帧VR显示图像写入显存中。

在一个实施例中,所述获取所述VR系统中的图像显示延迟时间,包括:

根据所述VR系统中显示屏的屏幕刷新频率,分别确定所述显示屏渲染左半屏图像和右半屏图像时所需消耗的时间;

根据所述显示屏渲染左半屏图像和右半屏图像时所需消耗的时间,分别确定所述第i帧VR显示图像的左半部分图像和右半部分图像的左延迟时间和右延迟时间。

在一个实施例中,所述图像截取区域包括左半屏图像的截取区域和右半屏图像的截取区域;

所述根据所述图像显示延迟时间和所述对应的预设位置,对所述图像截取区域进行处理,包括:

根据所述左延迟时间、所述右延迟时间和所述对应的预设位置,分别对所述左半屏图像的截取区域和右半屏图像的截取区域进行处理,以得到处理后的所述图像截取区域。

在一个实施例中,所述根据所述左延迟时间、所述右延迟时间和所述对应的预设位置,分别对所述左半屏图像的截取区域和右半屏图像的截取区域进行处理,包括:

获取所述虚拟相机的旋转角速度;

根据所述旋转角速度,分别预测所述虚拟相机在所述左延迟时间内的第一旋转角度和所述虚拟相机在所述右延迟时间内的第二旋转角度;

根据所述第一旋转角度、所述第二旋转角度和所述对应的预设位置,分别对所述左半屏图像的截取区域和右半屏图像的截取区域进行处理。

在一个实施例中,所述根据所述第一旋转角度、所述第二旋转角度和所述对应的预设位置,分别对所述左半屏图像的截取区域和右半屏图像的截取区域进行处理,包括:

获取所述左半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵和所述右半屏图像的截取区域在目标旋转角度下对应的目标旋转矩阵;

根据所述左半屏图像的截取区域的目标旋转矩阵和所述第一旋转角度,获取所述第一旋转角度对应的第一旋转矩阵;

根据所述右半屏图像的截取区域的目标旋转矩阵和所述第二旋转角度,获取所述第二旋转角度对应的第二旋转矩阵;

根据所述第一旋转矩阵的逆矩阵和所述左半屏图像的截取区域的目标旋转矩阵,确定所述左半屏图像的截取区域对应的左变形矩阵;

根据所述第二旋转矩阵的逆矩阵和所述右半屏图像的截取区域的目标旋转矩阵,确定所述右半屏图像的截取区域对应的右变形矩阵;

在基于所述对应的预设位置的基础上,分别根据所述左变形矩阵对所述左半屏图像的截取区域和所述右变形矩阵对所述右半屏图像的截取区域进行处理,得到处理后的左半屏图像的截取区域和处理后的右半屏图像的截取区域;

所述将处理后的图像截取区域所截取的图像作为所述第i帧VR显示图像写入显存中,包括:

根据处理后的左半屏图像的截取区域从所述虚拟相机在所述目标旋转角度下拍摄的目标待截取VR图像中截取第一图像,并将所述第一图像作为所述第i帧VR显示图像的左半部分图像;

根据处理后的右半屏图像的截取区域从所述虚拟相机在所述目标旋转角度下拍摄的目标待截取VR图像中截取第二图像,并将所述第二图像作为所述第i帧VR显示图像的右半部分图像,其中,所述处理包括旋转和/或处理,其中,所述目标待截取VR图像包括第i帧待截取VR图像或者第i-m帧待截取VR图像,其中,m为小于或等于i的正整数。

在一个实施例中,所述对应的预设位置包括:所述图像截取区域位于所述虚拟相机在所述目标旋转角度下拍摄到的目标待截取VR图像的正中间位置时的位置坐标,其中,所述目标待截取VR图像包括第i帧待截取VR图像或者第i-m帧待截取VR图像。

在一个实施例中,所述VR系统包括:VR头盔和内置于所述VR头盔的移动设备。

本领域技术用户员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

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