【发明授权】用于增强现实环境的帧投影_微软技术许可有限责任公司_201780004857.2 

申请/专利权人:微软技术许可有限责任公司

申请日:2017-01-14

发明/设计人:J·N·马戈利斯;M·克赖斯勒

公开(公告)日:2021-02-12

代理机构:上海专利商标事务所有限公司

公开(公告)号:CN108431739B

代理人:顾嘉运;蔡悦

主分类号:G06F3/01(20060101)

地址:美国华盛顿州

分类号:G06F3/01(20060101);G09G3/00(20060101);G06T19/00(20060101);G02B27/01(20060101)

优先权:["20160125 US 15/005,702"]

专利状态码:有效-授权

法律状态:2021.02.12#授权;2018.09.14#实质审查的生效;2018.08.21#公开

摘要:运动向量估计被提供用于按比渲染帧率更大的帧率来生成和显示图像。所显示的图像可包括包含运动向量估计的经预渲染的场景的后期图形调整。头戴式显示器HMD设备可确定与该HMD的将来位置和取向相关联的预测的姿态,基于该预测的姿态来渲染当前帧,基于该当前帧和先前帧来确定一组运动向量,基于该组运动向量和当前帧来生成经更新图像,以及在该HMD上显示该经更新图像。在一个实施例中,HMD可在生成当前帧之后或与生成当前帧并发地确定与该HMD相关联的经更新的姿态,以及基于该经更新的姿态和该组运动向量来生成经更新图像。

主权项:1.一种移动设备,包括:显示器;以及被配置成与所述显示器通信的一个或多个处理器,所述一个或多个处理器被配置成访问使用与所述移动设备的第一姿态相关联的第一姿态信息渲染的第一帧和使用与所述移动设备的第二姿态相关联的第二姿态信息渲染的第二帧,所述一个或多个处理器被配置成基于所述第一姿态信息和所述第二姿态信息之间的差异来变换所述第一帧,以使得经变换的第一帧看起来如同所述经变换的第一帧已被生成以与所述第二姿态相对应,所述一个或多个处理器被配置成基于所述经变换的第一帧和所述第二帧之间的经分析的动画来确定一组运动向量,所述一个或多个处理器被配置成基于所述第二帧和所确定的一组运动向量生成供由所述移动设备的显示器进行显示的第一场。

全文数据:用于増强现实环境的帧投影[0001]背景[0002]本公开涉及用于生成和显示图像的数字信号处理。[0003]增强现实设备是同时具有高性能和降低的功耗要求的移动设备的一个示例。增强现实AR涉及提供增强的现实世界环境,其中用计算机生成的虚拟数据来增强或修改对现实世界环境或表示现实世界环境的数据)的感知。例如,可使用诸如相机或话筒等传感输入设备实时地捕捉表示现实世界环境的数据,并用包括虚拟图像和虚拟声音的计算机生成的虚拟数据来增强该数据。虚拟数据还可包括与现实世界环境相关的信息,诸如与现实世界环境中的现实世界对象相关联的文本描述。一些AR环境内的对象可包括现实对象(S卩,存在于特定现实世界环境中的对象)和虚拟对象(即,不存在于该特定现实世界环境中的对象。[0004]为了将虚拟对象逼真地集成到AR环境中,AR系统通常执行包括映射和本地化的若干任务。映射涉及生成现实世界环境的映射的过程。本地化涉及相对于现实世界环境的映射来定位特定视点或姿态的过程。在一些情形中,AR系统可实时本地化在现实世界环境内移动的移动设备的姿态,以便确定与该移动设备相关联的、需要随该移动设备在现实世界环境中移动而被增强的特定姿态。[0005]AR环境可使用电子显示器例如,与头戴式显示设备集成的LED显示器来被提供给移动设备的终端用户。电子显示器可通过调制被提供到电子显示器(诸如硅上液晶IXOS显示器)的光或通过在电子显示器例如,OLED显示器)内生成光来向终端用户显示虚拟对象的图像。OLED即有机发光二极管)是其中发射电致发光层包括有机薄膜的LED。OLED显示器可包括无源矩阵OLED显示器或有源矩阵OLED显示器。有源矩阵OLED显示器使用每个OLED像素内的一个或多个薄膜晶体管TFT来控制每像素生成的光的量。在一个示例中,每个OLED像素可包括用于驱动OLED的第一TFT以及用于锁存供控制第一TFT的数据的第二TFTJFT可包括多晶硅TFT或非晶硅TFT。在一些情形中,OLED显示器可包括红色、绿色和蓝色发光子像素的组(即,OLED像素中的每一个可包括用于生成红色、绿色和蓝色光的多个LEDWLED显示器还可包括青色、黄色、品红色和白色发光子像素的组。[0006]概述[0007]使用运动向量估计的数字信号处理被提供用于按大于新图像被渲染的速率的帧率来生成和显示图像。所显示的图像可包括包含运动向量估计的经预渲染的场景的后期图形调整。头戴式显示器HMD设备可确定与该HMD的将来位置和取向相关联的预测的姿态,基于该预测的姿态来渲染当前帧,基于该当前帧和先前帧来确定一组运动向量,基于该组运动向量和该当前帧来生成经更新图像,以及在该HMD上显示该经更新图像。在一个实施例中,HMD可在生成当前帧之后或与生成当前帧并发地确定与该HMD相关联的经更新姿态,以及基于该经更新姿态和该组运动向量来生成经更新图像。[0008]HMD可使用当前帧和先前帧的变换来计算一组运动向量。HMD基于被用来渲染当前帧的姿态信息来变换先前帧以移除相机平移和旋转差异,以便确定各帧之间的动画位移。运动向量速度可使用帧的位移和显示时间来被确定。运动向量被用来基于一个或多个目标显示时间来正向投影每个帧,以提供用于经更新图像的动画校正。[0009]提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。[0010]附图简述[0011]图1是可在其中实施所公开的技术的联网计算环境的一个实施例的框图。[0012]图2A描绘了与第二移动设备通信的移动设备的一个实施例。[0013]图2B描绘了HMD的一部分的一个实施例。[00M]图3是根据所公开的技术的一实施例的被配置成生成和显示与一个或多个虚拟对象相关联的图像的计算系统的框图。[0015]图4是描述根据所公开的技术的一实施例的使用运动向量来生成和显示图像的过程的流程图。[0016]图5是描述根据所公开的技术的一实施例的后期重投影LSR模块的更多细节的框图。[0017]图6是描述根据所公开的技术的一实施例的为当前帧生成一个或多个经更新图像的处理的流程图。[0018]图7是描述根据所公开的技术的一实施例的为当前帧计算一组运动向量的过程的流程图。[0019]图8是描绘根据所公开的技术的一实施例的经渲染图像和图像向量的示例的框图。[0020]图9是描述根据所公开的技术的一实施例的为当前帧重投影一组运动向量的过程的流程图。[0021]图10是描述根据所公开的技术的一实施例的生成各场的过程的流程图。[0022]图11是描绘移动计算设备的框图。[0023]详细描述[0024]描述了用于使用运动向量估计来按大于渲染帧率的帧率生成图像的数字信号处理的技术。在一个实施例中,该技术被用来生成和显示与增强现实AR环境内的一个或多个虚拟对象相关联的图像。所显示的图像可包括对经预渲染的场景(即,按渲染帧率来渲染的前向预测的场景)的后期图形调整,以便包含运动向量估计。渲染帧率可以与用于渲染同头戴式显示HMD设备的姿态相关联的图像的最小时间相对应。HMD可确定与该HMD的将来位置和取向相关联的预测的姿态例如,该HMD在将来IOms或20ms的预测的姿态),基于该预测的姿态来渲染当前帧,基于该当前帧和先前帧来确定一组运动向量,基于该组运动向量和该当前帧来生成经更新图像,以及在该HMD上显示该经更新图像。在一个实施例中,HMD可在生成当前帧之后或与生成当前帧并发地确定与该HMD相关联的经更新的姿态,以及基于该经更新的姿态和该组运动向量来生成经更新图像。[0025]在一个实施例中,HMD使用当前帧和按渲染帧率来渲染的先前帧的变换来计算一组运动向量。HMD变换先前帧以模拟被用来渲染当前帧的预测的姿态。系统可根据先前帧来生成如同它已经以当前相机或设备位置和取向被渲染一样来模拟该先前帧的投影图像。先前帧的变换移除了两个帧之间的相机平移和旋转差异。当前帧到投影图像的变换可经由当前帧的单应变换和或像素偏移调整而被生成。[0026]在变换以移除相机移动之后,HMD分析先前帧和当前帧以确定场景内的动画。对于一个或多个像素的块,HMD可确定先前帧和当前帧之间的位移。包括直接和间接方法的用于定位和确定运动向量的各种技术可被使用。在计算了位移的情况下,系统基于各经渲染的帧要被显示的时间之间的时间差来为每个块确定运动向量速度。[0027]HMD正向投影用于当前帧的一组运动向量以生成经更新图像供显示在HMD上。HMD可访问当前帧的一组像素值,诸如uv值。该组像素值可以是原始像素集或基于当前帧和一个或多个其他校正的先前经修改的像素集。HMD确定经更新图像的一个或多个目标显示时间。用于每个像素的运动向量与目标显示时间相组合以确定用于该像素的偏移。这些偏移被应用于每个像素的像素值以生成当前帧的一组经修改的图像分量。在一个实施例中,该组经修改的图像分量被用来确定用于生成经更新图像的一组采样位置。经更新图像可包括当前帧的至少一部分的图像旋转、平移、大小调整例如,拉伸或收缩)、移位或倾斜,以便在该当前帧内投影动画以生成经更新图像。[0028]在一个实施例中,HMD将来自当前帧的动画正向投影到将来的目标显示时间以外插各显示场。在另一实施例中,HMD将动画投影到当前帧和先前帧之间的目标时间以便内插各显示场。这些显示场可按大于核心渲染流水线的帧率的场速率来被生成。[0029]在一个实施例中,HMD选择性地投影来自当前帧的动画以减轻感知到的色分离。例如,在彩色顺序显示器中,可为某帧顺序地显示分开的色场。HMD基于与每个色场相关联的个体目标显示时间来正向投影动画。附加地,HMD可选择性地针对显示器的选定区域来正向投影动画。例如,HMD可使用眼睛跟踪来确定一个或多个焦点区域,诸如用户所聚焦到的一个或多个虚拟对象,或者标识其运动与被跟踪的眼睛移动的方向相关的场景中的对象。HMD可在焦点区域内正向投影动画,而不在焦点区域之外正向投影动画。在另一示例中,HMD可按第一量(例如,从30fps到90fps来正向投影整个场景的动画,并且按第二量(例如,270fps来正向投影焦点区域。[0030]在一个实施例中,HMD使用经重投影的桢作为抗混叠anti-aliasing技术的一部分。HMD可根据先前经渲染的帧生成立体图像对。该对中的每个图像被变换以模拟与当前帧相关联的姿态信息。立体图像对也从根据前帧生成。HMD可接着利用四个图像每个图像模拟相同的姿态信息或使用相同的姿态信息来被渲染),以在显示用于当前帧的经更新图像时提供抗混置。[0031]向HMD的终端用户显示与该HMD的特定姿态对应的世界锁定的虚拟对象的图像的等待时间或时间量在增强现实环境中通常是一个问题。例如,如果在最终用户的头转动离开特定姿态的时间与虚拟对象的图像基于该特定姿态被显示的时间之间流逝的时间太多,则虚拟对象将看上去偏离其在增强现实环境内预期的位置(即,图像可能看上去不与预期的现实世界位置或对象对齐)。由此,存在向最终用户显示虚拟对象的被正确对齐的图像以提升虚拟对象稳定性并提升增强现实体验的需要。此外,需要通过核心渲染流水线使用低渲染速率来提供这些图像,以便降低功率和其他要求。[0032]图1是可在其中实施所公开的技术的联网计算环境100的一个实施例的框图。联网计算环境100包括通过一个或多个网络180互连的多个计算设备。所述一个或多个网络180允许一特定计算设备连接到另一计算设备以及与其通信。所描绘的计算设备包括移动设备11、移动设备12、移动设备19和服务器15。在一些实施例中,此多个计算设备可包括未示出的其他计算设备。在一些实施例中,此多个计算设备可包括比图1所示的计算设备的数目更多或更少的计算设备。一个或多个网络180可包括诸如企业专用网络之类的安全网络、诸如无线开放式网络之类的不安全网络、局域网(LAN、广域网WAN以及互联网。一个或多个网络180中的每个网络可包括集线器、网桥、路由器、交换机以及诸如有线网络或直接有线连接之类的有线传输介质。[0033]可包括补充信息服务器或应用服务器的服务器15可允许客户端从该服务器下载信息例如,文本、音频、图像和视频文件或者执行与存储在该服务器上的特定信息相关的搜索查询。一般而言,“服务器”可以包括在客户端-服务器关系中充当主机的硬件设备、或者与一个或多个客户端共享资源或为所述一个或多个客户端执行工作的软件过程。客户端-服务器关系下的计算设备之间的通信可通过由客户端向服务器发送要求访问特定资源或执行特定工作的请求来发起。服务器随后可以执行所请求的动作并且将响应发送回客户端。[0034]服务器15的一个实施例包括网络接口155、处理器156、存储器157和转换器158,所有这些都彼此通信。网络接口155允许服务器15连接到一个或多个网络180。网络接口155可包括无线网络接口、调制解调器和或有线网络接口。处理器156允许服务器15执行被储存在存储器157中的计算机可读指令以执行在此讨论的过程。转换器158可包括用于将第一文件格式的第一文件转换成第二文件格式的对应第二文件的映射逻辑(即,第二文件可以是经转换的版本的第一文件)。可使用文件映射指令来配置转换器158,该文件映射指令提供用于将第一文件格式的文件或其部分映射成第二文件格式的对应文件的指令。[0035]移动设备19的一个实施例包括网络接口145、处理器146、存储器147、相机148、传感器149、以及显示器150,所有这些都彼此通信。网络接口145允许移动设备19连接到一个或多个网络180。网络接口145可包括无线网络接口、调制解调器和或有线网络接口。处理器146允许移动设备19执行存储在存储器147中的计算机可读指令以执行在此讨论的过程。相机148可捕捉环境的色彩图像和或深度图像。移动设备19可包括捕捉环境的图像的面向外的相机以及捕捉移动设备的终端用户的图像的面向内的相机。传感器149可生成与移动设备19相关联的运动和或定向信息。在一些情形中,传感器149可包括惯性测量单元MU。显示器150可显示数字图像和或视频。显示器150可包括透视显示器。显示器150可包括LED或OLED显示器。[0036]在一些实施例中,包括网络接口145、处理器146、存储器147、相机148以及传感器149的移动设备19的各组件可被集成在单芯片基板上。在一示例中,网络接口145、处理器146、存储器147、相机148和传感器149可被集成为片上系统SOC。在其他实施例中,网络接口145、处理器146、存储器147、相机148和传感器149可被集成在单个封装中。[0037]在一些实施例中,通过采用相机148、传感器149,和运行在处理器146上的姿势识别软件,移动设备19可提供自然用户界面NUI。使用自然用户界面,人的身体部位和移动可被检测、解释、以及用于控制计算应用的各方面。在一个示例中,利用自然用户界面的计算设备可推断与计算设备交互的人的意图(例如,最终用户执行了特定姿势来控制该计算设备)。[0038]联网计算环境100可为一个或多个计算设备提供云计算环境。云计算指的是基于互联网的计算,其中共享的资源、软件和或信息经由互联网(或其他全局网络被按需提供给一个或多个计算设备。基于在计算机网络图中使用的云图来将因特网描绘成对其所表示的底层基础设施的抽象,术语“云”被用作对因特网的比喻。[0039]在一个示例中,移动设备19包括向头戴式显示设备HMD的终端用户提供增强现实环境或混合现实环境的头戴式显示设备。HMD可包括视频透视和或光学透视系统。终端用户佩戴的光学透视HMD可允许例如经由透明透镜对现实世界环境的实际直接查看,并且同时可将虚拟对象的图像投影到终端用户的视野中,由此用虚拟对象来增强终端用户所感知的现实世界环境。[0040]通过利用HMD,佩戴HMD的终端用户可在现实世界环境例如,起居室)中四处移动,并感知覆盖有虚拟对象的图像的现实世界的视图。虚拟对象可以看起来保持与现实世界环境的相干空间关系(即,当最终用户在现实世界环境中转动他们的头或移动时,显示给该最终用户的图像将改变,使得虚拟对象看起来像被最终用户感知的那样存在于该现实世界环境内)。这可被称为世界锁定的虚拟对象或视图。虚拟对象还可看起来相对于终端用户的视点是固定的(例如,无论终端用户如何在现实世界环境中转动他们的头或移动,总是出现在终端用户视角的右上角的虚拟菜单)。在一个实施例中,现实世界环境的环境映射可由服务器15S卩,在服务器侧来执行,而相机本地化可在移动设备19上(S卩,在客户端侧执行。虚拟对象可包括与现实世界对象相关联的文本描述。[0041]在一些实施例中,移动设备诸如移动设备19可与云中的服务器诸如服务器15通信,并可提供与移动设备相关联的服务器位置信息(例如,经由GPS坐标的移动设备的位置和或图像信息例如,与在移动设备的视野内检测到的对象有关的信息)。作为响应,月艮务器可基于提供给该服务器的位置信息和或图像信息向移动设备传送一个或多个虚拟对象。在一个实施例中,移动设备19可指定用于接收一个或多个虚拟对象的特定文件格式,并且服务器15可向移动设备19传送包含在该特定文件格式的文件内的一个或多个虚拟对象。[0042]在一些实施例中,HMD诸如移动设备19可使用从面向外的相机捕捉到的环境的图像,以便相对于该环境的3D图确定对应于这些图像的六自由度6D0F姿态。6D0F姿态可包括与HMD在该环境内的位置和定向相关联的信息。6D0F姿态可用于定位HMD并生成虚拟对象的图像,以使得这些虚拟对象看起来存在于该环境内的合适位置处。关于确定6D0F姿态的更多信息可在题为“DistributedAsynchronousLocalizationandMappingforAugmentedReality增强现实的分布式异步定位和映射”的美国专利申请13152,220中找到。关于执行对移动设备的姿态估计和或定位的更多信息可在题为“MobileCameraLocalizationUsingDepthMaps使用深度图的移动相机定位”的美国专利申请13017,474中找到。[0043]在一些实施例中,HMD诸如移动设备19可按比用于核心渲染流水线或渲染GPU的渲染帧率大的帧率来在增强现实AR环境内显示虚拟对象的图像。HMD可基于按比渲染帧率高的频率提供的经更新的姿态估计来修改按渲染帧率渲染的经预渲染的图像或被前向预测的图像。在一些实施例中,HMD可基于预测的姿态按渲染帧率例如,每16ms生成经预渲染的图像,在生成经预渲染的图像后确定与HMD相关联的一个或多个经更新的姿态(例如,每2ms,基于一个或多个经更新的姿态和经预渲染的图像来生成一个或多个经更新图像,并且在HMD上显示一个或多个经更新图像。在一些情形中,一个或多个经更新图像可使用显示器诸如显示器150内的电路系统经由单应变换和或像素偏移调整来生成。[0044]图2A描绘了与第二移动设备5通信的移动设备19的一个实施例。移动设备19可包括透视HMD。如所描绘的,移动设备19经由有线连接6与移动设备5通信。然而,移动设备19还可经由无线连接与移动设备5通信。移动设备5可被移动设备19用来卸载计算密集的处理任务例如,渲染虚拟对象),并将可被用来提供增强现实环境的虚拟对象信息和其他数据存储在移动设备19上。移动设备5还可向移动设备19提供与移动设备5相关联的运动和或定向信息。在一个示例中,运动信息可包括与移动设备5相关联的速度或加速度,并且定向信息可包括欧拉角,其提供围绕特定坐标系或参考坐标系的转动信息。在一些情形中,移动设备5可包括运动和定向传感器诸如惯性测量单元(IMU,以便获得与移动设备5相关联的运动和或定向信息。[0045]图2B描绘了HMD诸如图1的移动设备19的一部分的一个实施例。仅描绘了HMD200的右侧。HMD200包括右镜腿202、鼻梁204、镜片216、以及眼镜框214。右镜腿202包括与处理单元236通信的捕捉设备213例如,前置相机和或话筒)。捕捉设备213可包括用于记录数字图像和或视频的一个或多个相机,并可将视觉记录传送到处理单元236。一个或多个相机可捕捉色彩信息、IR信息、和或深度信息。捕捉设备213还可包括用于记录声音的一个或多个话筒,并可将音频记录传送到处理单元236。[0046]右镜腿202还包括生物测定传感器220、眼睛跟踪系统221、耳机230、运动和定向传感器238、GPS接收器232、电源239、以及无线接口237,所有这些都与处理单元236通信。生物测定传感器220可包括用于确定与HMD200的终端用户的脉搏或心率相关联的一个或多个电极,以及用于确定与HMD200的终端用户相关联的体温的温度传感器。在一个实施例中,生物测定传感器220包括压着终端用户太阳穴的脉搏率测量传感器。运动和定向传感器238可以包括三轴磁力计、三轴陀螺仪、和或三轴加速度计。在一个实施例中,运动和定向传感器238可包括惯性测量单元MUAPS接收机可确定与HMD200相关联的GPS位置。处理单元236可以包括一个或多个处理器和用于存储将要在所述一个或多个处理器上执行的计算机可读指令。存储器还可存储要在一个或多个处理器上执行的其它类型的数据。[0047]在一个实施例中,眼睛跟踪系统221可包括一个或多个面向内的相机。在另一实施例中,眼睛跟踪系统221可包括眼睛跟踪照明源和相关联的眼睛跟踪图像传感器。在一个实施例中,眼睛跟踪照明源可包括以大约预定IR波长或一定范围的波长发射的一个或多个红外(IR发射器诸如红外发光二极管LED或激光器例如,VCSEL。在一些实施例中,眼睛跟踪传感器可包括用于跟踪闪光位置的IR相机或IR位置敏感检测器PSD。关于眼睛跟踪系统的更多信息可在2008年7月22发布的标题为“HeadMountedEyeTrackingandDisplaySystem头戴式眼睛跟踪和显示系统”的美国专利7,401,920,以及2011年9月26日提交的标题为“IntegratedEyeTrackingandDisplaySystem集成眼睛跟踪和显示系统”的美国专利申请13245,700中找到。[0048]在一个实施例中,镜片216可包括透视显示器,处理单元236生成的图像由此可被投影和或显示在透视显示器上。透视显示器可通过调制被提供到该显示器诸如硅上液晶IXOS显示器)的光或通过在该显示器诸如OLED显示器)内生成光来显示虚拟对象的图像。捕捉设备213可被校准,使得捕捉设备213所捕捉的视野对应于HMD200的终端用户所看到的视野。耳机230可用于输出与虚拟对象的投影图像相关联的声音。在一些实施例中,HMD200可包括两个或更多个前置相机例如,每个镜腿上一个相机),以便从与前置相机所捕捉的视野相关联的立体信息中获得深度。两个或更多个前置相机还可包括3D、IR、和或RGB相机。也可利用来自运动技术的深度从单个相机中获取深度信息。例如,可从单个相机获取两个图像,这两个图像与在不同的时间点的、两个不同的空间点相关联。然后,给定与两个不同空间点有关的位置信息的情况下,可执行视差计算。[0049]在一些实施例中,HMD200可使用注视检测元件和与一个或多个人类眼睛元素诸如角膜中心、眼球旋转的中心、或瞳孔中心有关的三维坐标系,来为终端用户眼睛中的每只眼睛执行注视检测。注视检测可被用来标识终端用户正在关注视野内的何处。注视检测元件的示例可包括生成闪光的照明器和用于捕捉表示所生成的闪光的数据的传感器。在一些情形中,角膜中心可以基于两次闪光使用平面几何来确定。角膜中心链接瞳孔中心和眼球的旋转中心,这可被当作用于确定处于某种注视或观看角度的终端用户的眼睛的光轴的固定位置。[0050]在一个实施例中,处理单元236可包括用于生成经预渲染的图像的核心渲染流水线(例如,包括一个或多个图形处理单元),并且与镜片216相关联的显示器可基于与HMD200相关联的后期姿态信息和运动向量估计来对经预渲染的图像执行后期图形调整。由于经更新的姿态信息可按比用于核心渲染流水线的最大渲染帧率更高的频率来提供,后期图形调整可按大于该最大渲染帧率的频率来被应用到经预渲染的图像。[0051]图3是被配置成生成和显示与一个或多个虚拟对象相关联的图像的计算系统的框图。后期重投影LSR模块308被配置成按大于用于渲染模块302的核心渲染流水线的帧渲染速率的场速率来生成包括图像的视频场。渲染模块302可包括例如图形流水线、图形处理单元GPU或计算机。渲染模块302可生成包括与HMD的特定姿态相对应的经预渲染的图像的帧。这些图像可被称为经预渲染的图像,因为它们在被显示之前就被渲染。特定姿态可通过姿态估计模块312被提供到渲染模块302。姿态估计模块312可基于HMD的移动历史来预测HMD的将来姿态。在一些实施例中,姿态估计模块312可预测HMD的多于一个的将来姿态例如,对于HMD而言三个可能的将来姿态),并且渲染模块302可生成与该多于一个的将来姿态相对应的多个经预渲染的图像。当经更新的姿态信息变得可用时,该多于一个的将来姿态中最接近的姿态(即,最佳预测姿态可被用于通过将后期图形调整应用于该最接近的姿态的对应的经预渲染的图像来生成经更新图像。在一个实施例中,当经更新的姿态信息变得可用时,取代选择与该多于一个的将来姿态中最接近的姿态相关联的经预渲染的图像,可使用从与该多于一个的将来姿态相对应的多个经预渲染的图像中外插和或内插的图像来生成经更新图像。[0052]在一些情形中,姿态估计模块312可根据基于相机的姿态跟踪信息和或基于相机的姿态跟踪信息与低等待时间IMU运动信息的组合来确定HMD的当前姿态。姿态估计模块312可通过外插HMD的先前移动例如,在确定当前姿态前5ms毫秒或IOms的HMD的移动来预测HMD的将来姿态。[0053]后期重投影LSR模块308可基于由姿态估计模块312提供的经更新的姿态估计信息以及由运动向量模块304提供的场景动画信息来对包括由渲染模块302生成的经预渲染的图像的帧执行后期图形调整。在一个实施例中,渲染模块302可每16ms或每32ms生成经预渲染的图像并且LSR模块308可每2ms或每4ms生成经调整的图像(即,LSR模块308可按比渲染模块302的最大渲染帧率大的场速率来向显示器310提供图像)。如描绘的,LSR模块308包括运动向量模块304和图像调整模块304。任何场速率和渲染速率可被使用。[0054]运动向量模块304生成动画信息以基于由渲染模块渲染的图像内的运动来向经预渲染的图像提供后期图形调整。运动向量模块可基于与由渲染模块302生成的当前图像相关联的相机姿态来应用由渲染模块302生成的先前图像的单应变换或其他变换。该变换被应用以移除两个图像之间的相机旋转和平移差异。以这种方式,先前图像被变换以如同它是从当前图像的姿态渲染的那样来模拟它。运动向量模块304可通过首先将单应变换或其他变换应用于经预渲染的图像例如,应用单平面单应性或多平面单应性来如同已经从不同的相机或设备姿态渲染的那样模拟这些图像,以生成投影图像。[0055]在对先前图像进行变换之后,运动向量模块304为投影图像的像素计算一组运动向量。可为单个像素或为像素块生成运动向量。块可包括任意数量的像素,诸如举例而言,一个、两个、四个、八个或十六个像素。运动向量表示该像素块在两个图像之间的场景内运动。与关于显示图像时HMD或其他设备的定位的姿态信息相反,该运动被称为关于图像内的移动的动画运动。在一个示例中,一个或多个像素的块的运动向量通过以下来计算:确定两个图像之间与该块相关联的位移,并接着除以这两个图像要被显示的时间之间的时间,以确定与该块相关联的速度。[0056]图像调整模块304可通过以下来生成经调整的图像:应用透视校正以将经预渲染的图像的经更新的姿态信息纳入考虑,以及应用动画校正以将与经预渲染的图像相关联的运动向量信息纳入考虑。图像调整模块304可通过首先基于自经预渲染的图像基于经预测的姿态而被生成以来生成的经更新的姿态信息来将单应变换或其他变换应用于经预渲染的图像来生成经调整的图像。在一个示例中,图像调整模块306可将仿射变换应用到经预渲染的图像。虽然未示出,但是像素调整模块可执行图像的二维像素移位。由像素调整模块进行了像素移位的图像可包括经预渲染的图像的一部分或由图像调整模块生成的图像的一部分。在一些情况下,LSR模块308可通过将单应变换应用到经预渲染的图像并接着将像素偏移调整应用到经由单应变换生成的图像来生成经更新图像。[0057]在应用单应变换或其他变换之后,图像调整模块306针对经由该变换生成的图像的每个像素应用动画校正。图像调整模块基于当前图像的显示时间来投影每个运动向量。例如,图像调整模块可将运动向量乘以图像将被显示的时间以正向投影该运动向量。正向投影导致每个像素块的偏移,其表示该像素在两个图像之间的位移或动画。在一个示例中,该偏移是像素值应当被调整的uv或其他分量值。以这种方式,图像调整模块306在透视校正之后调整经预渲染的图像,以将自生成该经预渲染的图像之后场景内的动画纳入考虑。[0058]由LSR模块308生成的经调整的图像可被显示在显示器310上。在一个实施例中,显示器310可包括OLED显示器。在一些实施例中,LSR模块308的各部分可与显示器310集成。在一个示例中,像素调整模块可使用显示器310内用于允许显示器310的像素阵列内的像素值的移位的移位寄存器或其他电路系统来执行。在一个示例中,运动向量模块304、图像调整模块306和像素调整模块可由与显示器310集成的控制器或处理器来执行。[0059]图4是描述使用运动向量以按比渲染帧率大的帧率来生成和显示与虚拟对象相关联的图像的过程的流程图。在一个实施例中,图4的过程由诸如图1中的移动设备19之类的HMD来执行。[0060]在步骤404处,渲染模块基于HMD的预测的姿态来渲染当前帧。该当前帧包括经渲染的图像。当渲染每个帧时,HMD可获取与HMD相关联的姿态历史。姿态历史可包括HMD随时间的推移的位置、取向和移动。例如,HMD的当前姿态可使用基于相机的姿态跟踪来被确定。HMD的预测的姿态是基于当前姿态和姿态历史来确定的。经预测的姿态可对应于第一时间点(例如,从当前姿态被确定时起将来或过去8ms或16ms。经预测的姿态可基于HMD的当前位置和取向以及HMD的就在确定该经预测的姿态之前的加速度和速度来被确定例如,通过基于HMD的在确定经预测的姿态之前5ms或IOms的移动来外插该经预测的姿态)。渲染模块基于经预测的姿态来渲染包括图像的当前帧。经渲染的图像可使用GPU或其他渲染系统来被渲染,该其他渲染系统具有在给定经预测的姿态的情况下将三维场景渲染成二维图像的能力。[0061]在步骤406处,由渲染模块渲染的先前帧被变换以模拟与当前帧相关联的经预测的姿态。系统在每个帧被显示之后将其储存达至少一个附加的渲染周期。LSR访问先前帧并将其变形,以看起来好像是其使用当前帧的经预测的姿态被渲染了一样。通过变换先前帧以模拟当前帧的经预测的姿态,两个帧之间的任何相机旋转和或平移差异被移除。在一个实施例中,对先前帧进行变换生成了投影图像。投影图像被投影到与当前帧相关联的姿态。由于两个帧之间的姿态差异被移除,这两个帧可被分析以确定两个帧的场景内的动画。[0062]在一个实施例中,先前帧可通过将图像变换应用到先前帧的经预渲染的图像而被调整。先前帧可基于针对当前帧的姿态估计和针对先前帧的姿态估计之间的姿态差异而被调整。在一个示例中,图像变换可包括对经预先渲染的图像的至少一部分的图像旋转、平移、重新调整大小(例如,伸展或收缩)、移位或倾斜。经变换的图像可经由经预渲染的图像的单应变换而被生成。在一些情形中,单应变换可包括多平面单应性、单平面单应性和或仿射单应性。[0063]在一些实施例中,经变换的图像可通过将像素偏移调整应用到经预渲染的图像而被生成。像素偏移调整的程度可取决于当前帧的姿态估计和先前帧的姿态估计之间的差异。虚拟对象的图像可例如在X维度和Y维度两者上被像素移位。在一个实施例中,经变换的图像使用像素偏移调整或单应变换和像素偏移调整的组合来生成。单应变换和或像素偏移调整可使用与显示器集成的控制器或处理器或通过主机来生成。单应变换可包括当前帧和先前帧内的像素或点之间的加权映射。[0064]在步骤408处,LSR模块计算与当前帧相关联的一个或多个像素的块的运动向量。对于每个块,LSR模块确定当前帧和先前帧的变换之间的位移。在相机姿态信息被移除的情况下,位移表示当前帧和先前帧之间在该像素块处的场景内的移动。LSR模块可将位移除以两个帧要被显示的时间之间的时间来确定像素块的运动向量速度。例如,当前帧可在先前帧之后的一些时间被渲染。在一个实施例中,两个帧的显示之间的时间对应于渲染模块的桢率(例如,30fps、60fps。[0065]在步骤410处,LSR模块投影每个运动向量达一个或多个目标显示时间。每个运动向量可乘以当前帧渲染与当前帧的目标显示时间之间的持续时间。运动向量可被正向投影以从当前帧外插场,或者可被反向投影以在先前帧和当前帧之间内插场。所投影的运动向量包括可被应用到每个像素块的偏移,以校正当前帧被渲染的时间与当前帧将被显示的预期时间之间的动画。[0066]在步骤412处,LSR模块基于所投影的运动向量根据当前帧生成一个或多个经更新的场。经更新的场通过修改当前帧或如下文中将描述的那样通过对当前帧的一次或多次较早修改或校正而被生成。在一个实施例中,LSR模块访问当前帧的一组像素值,诸如uv值。该组uv值可以是来自渲染模块的原始uv值,或者是根据当前帧的光学、深度和或透视校正得到的经修改的uv值。在步骤412处,LSR模块基于作为运动向量投影的结果来计算的对应块的uv偏移来修改每个像素的uv值。在一些情形中,像素偏移调整可使用显示器来执行,该显示器合并用于允许在该显示器的像素阵列内的像素的移位的移位寄存器或其他电路系统。在一个实施例中,像素偏移调整可使用与显示器集成的控制器或处理器来生成。在步骤414处,至少一个经更新的场被显示在HMD上。经更新图像可使用与HMD集成的OLED或其他显示器来显示。[0067]动画校正信息可以按比核心渲染流水线的最大渲染帧率更高的频率来生成。这允许按比最大渲染帧率大的频率将后期图形调整应用到各帧。[0068]图5是描述根据所公开技术的一实施例的后期重投影LSR模块的更多细节的框图。如早先在图3中示出的,LSR308包括运动向量模块304和图像调整模块306。LSR模块按渲染模块的核心渲染流水线的特定帧率或最大帧率从渲染模块接收帧。图5中的帧率作为示例被示为30Hz,然而,根据所公开的技术的各实施例可使用任何帧率。LSR按比最大渲染帧率大的场速率来生成场,诸如用于显示器312的图像。例如,由图5中的LSR模块生成的图像的场速率为270Hz,而帧率为30Hz。以这种方式,LSR模块针对从核心渲染流水线接收的每一帧生成供由HMD显示的九个场。[0069]LSR308为每个帧从渲染模块接收RGB信息和深度信息两者。在另一示例中,LSR模块可仅接收RGB信息而没有深度信息。RGB数据在抗混叠模块518处被接收,该抗混叠模块518被配置成将一个或多个抗混叠算法应用到RGB数据。在一个示例中,抗混叠模块例如是IXSMAA、2XSMAA、4SMAA硬件电路。抗混叠模块518的输出被提供给全域gamut映射520模块,并接着被提供给色分离模块522。色分离模块522可分离色彩数据,诸如举例而言,在彩色顺序显示器中使用个体红色、绿色和蓝色场的情况。个体色场可在不同时间处被生成并加载到显示器中。在其他实施例中,色分离模块522被省略。色分离模块的输出被储存在存储器502中以用于当前帧。[0070]当前帧的RGB数据在转换器514处被接收,该转换器514将RGB数据转换成亮度数据。在另一个例子中,LSR308可直接对RGB数据进行操作以生成运动向量而无需转换成亮度数据。在一个示例中,可在RGB数据的亮度通道中被表示的亮度数据被储存在存储器502中。在其中系统利用RGB或其他数据以供运动向量计算的一个实施例中,转换器514可被省略。[0071]亮度数据被提供给金字塔引擎510,以用于对当前帧进行下采样来为运动向量模块304准备数据。金字塔引擎可将亮度数据下采样到各种分辨率例如,全分辨率、半分辨率、四分之一分辨率等)。经下采样的亮度数据被提供给运动向量模块304以用于生成运动向量。虽然所描述的示例使用亮度数据来生成运动向量,但是RGB或其他图像数据可被用来生成运动向量。[0072]LSR模块308包括透视校正模块504,该透视校正模块504操作被储存在存储器中的先前帧来将其准备给运动向量模块304。先前帧的亮度数据被从存储器502读入高速缓存506中。透视校正模块504将先前帧变换为与当前帧相关联的当前姿态。透视校正模块针对高速缓存506中的先前帧的每个像素或像素块来向采样器508提供像素偏移。采样器根据来自透视校正模块504的像素偏移对高速缓存506中的源数据进行采样。在一个实施例中,采样器508的输出包括每个像素的经修改的uv值。经修改的uv值使用当前帧的姿态信息来模拟先前帧。经修改的uv值被提供给金字塔引擎510。金字塔引擎对经变换的帧的亮度数据进行下采样,并将经下采样的亮度数据提供给运动向量模块304。[0073]运动向量模块304从金字塔引擎510和516接收经下采样的uv值。经下采样的uv值表示先前帧和当前帧,如同两者都是使用当前姿态信息渲染的一样。这两个帧之间的像素或像素群比较可提供像素块的位移数据,其表示场景动画内关联的位移。对于每个像素块,运动向量模块304访问当前帧和先前帧的亮度数据。该数据被比较以确定每个块在这两个帧上的位移。模块304确定位移与帧之间的时间(例如,帧率的倒数的商以确定表示该块的运动向量的速度。这些基于速度的运动向量接着被储存在存储器502中。经渲染的各帧要被显示的时间之间的时间差可被用来确定每个块的运动向量。[0074]图像调整模块306按输入帧率例如,30Hz接收当前帧的uv或其他像素值,并将输出提供给采样器534,以用于按输出场速率例如,270Hz生成经更新的场。任选的光学校正模块526可提供对uv值的初始修改以校正与HMD相关联的光学误差。在一个实施例中,光学校正模块526提供用于每个像素的增量或偏移。第一组经修改的uv值被提供给透视校正模块528,该透视校正模块528执行附加修改以将自渲染当前帧之后接收到的经更新的姿态信息纳入考虑。[0075]透视校正模块528可应用当前帧被渲染的预测的姿态与对应于预期显示时间的经更新的姿态之间的姿态差异。姿态差异确定要被应用到当前帧的一部分以对在生成经渲染的图像时的不正确的姿态预测进行补偿的图像调整的程度。第二组经修改的uv值被提供给任选的深度校正模块,该深度校正模块可使用从存储器502读取的模糊深度信息来作出附加改变。深度校正可基于被渲染的场景的深度来作出附加补偿,以生成第三组经修改的UV值。[0076]该第三组经修改的uv值被提供给动画校正模块532。动画校正模块532从存储器502读取使用当前帧和先前帧计算的运动向量。动画校正模块532确定当前帧的一个或多个目标显示时间,以便生成用于当前帧的uv偏移。动画校正模块532可取像素的运动向量与当前帧的渲染和显示时间之间的差的乘积,以确定用于每个像素的偏移。这些偏移接着被应用于每个像素以生成第四组经修改的uv值。[0077]该第四组经修改的uv值被提供给采样器534以基于图像调整模块的结果来修改采样位置。采样器534按场速率来读取色场RGB信息,并应用来自动画校正532的最后一组uv值来为每个像素选择最终采样位置。[0078]经采样的色场的输出接着被提供给任选的显示校准模块536。显示校准模块可基于显示器来提供各种校准,诸如晕影校正、CABC缩放、伽玛校正和掩膜。显示校准模块536的输出包括用于移动设备的显示器310的场。如所解说的,经调整的场按比核心渲染流水线的帧率高的输出场速率来被生成。[0079]图6是描述基于各帧内的经更新的姿态信息和动画的运动向量来为由模块302渲染的当前帧生成一个或多个经更新图像的过程的流程图。在步骤604处,LSR模块访问由渲染模块302渲染的当前帧。在步骤606处,LSR模块确定HMD的对应于当前帧的预期显示时间的经更新的姿态。LSR模块可访问包括自使用第一经预测的姿态渲染了当前帧之后的姿态信息的HMD的姿态历史,以在步骤606处针对该经更新的姿态确定HMD的第二经预测的姿态。经预测的姿态可基于按比渲染帧率更高的频率被提供到姿态跟踪器的经更新的姿态信息来确定。在一个示例中,经更新的姿态信息可使用低等待时间惯性测量单元(MU或MU和基于相机的姿态跟踪的组合来生成。[0080]在步骤608处,被用来渲染当前帧的第一经预测的姿态(图3的步骤404与在步骤606处确定的经更新的姿态之间的姿态差异被确定。姿态差异可确定要被应用到经渲染的图像的一部分以对自渲染当前帧之后的经更新的姿态预测进行补偿的图像调整的程度。[0081]在步骤610处,LSR模块基于姿态差异来生成第一组经修改的像素值,诸如当前帧的经修改的UV值。经修改的UV值可经由当前桢的一部分的单应变换例如,应用单平面单应性或多平面单应性来生成。在一些情形中,单应变换可包括当前帧的经预渲染的图像的仿射变换。经更新图像还可使用像素偏移调整或单应变换和像素偏移调整的组合来生成。像素偏移调整可包括图像的二维像素移位。该经像素移位的图像可包括经预渲染的图像的一部分或先前已被修改的图像的一部分。在一些情形中,单应变换和或像素偏移调整可使用与HMD的显示器集成的控制器或处理器来生成。在一个实施例中,像素偏移调整可使用HMD的显示器来执行,该显示器合并用于允许在该显示器的像素阵列内的像素值的移位的移位寄存器或其他电路。在另一示例中,与HMD或HMD的显示器集成的控制器或处理器可作出像素偏移调整。[0082]在步骤612处,LSR模块基于来自图4的步骤410的所投影的运动向量来生成当前帧的第二组经修改的像素值。所投影的运动向量包括每个像素块的动画速度乘以直到目标显示时间的时间。所投影的运动向量可作为对在第一组经修改的像素值中接收到的每个像素的uV值的偏移而被应用。[0083]在步骤614处,基于第二组经修改的像素值来为当前帧生成经更新的场。在一个示例中,每个像素的经修改的uv值被用来校正为当前帧储存的色场的采样位置。经更新的场包括基于第二组经修改的uv值的来自当前帧的色场的源位置的经修改的采样。经更新的场包括基于第二经预测的姿态的透视校正以及基于投影的运动向量的动画校正。[0084]在一些情形中,像素偏移调整可使用与HMD的显示器集成的控制器或处理器或使用在显示器内集成的定制电路来生成。在一个实施例中,像素偏移调整可使用HMD的显示器来执行,该显示器合并用于允许在该显示器的像素阵列内的像素值的移位的移位寄存器或其他电路。[0085]图7是描述根据所公开技术的一个实施例的为当前帧计算一组运动向量的过程的流程图。在步骤632处,由核心渲染流水线渲染的当前帧被访问。使用与当前帧相关联的姿态信息的对先前帧的变换同样被访问。[0086]在步骤634处,当前帧和先前帧的一个或多个像素的第一块的图像数据被访问。在步骤636处,该像素块在这两个帧之间的位移被计算。直接的按像素的方法或间接的基于特征的方法可被用来为像素块生成在先前帧和当前帧之间的运动向量。直接运动向量估计可以基于块匹配算法、相位相关和频域算法、像素递归算法、和或光流算法。间接方法可包括角落或边缘检测。因为先前帧被变换到当前姿态位置,所以两个帧之间的相机运动被移除。运动向量因此表示场景内的动画或与场景的特征相关联的运动。[0087]在步骤638处,使用各帧之间的位移和时间差来计算块的速度。在一个实施例中,先前帧和当前帧要被显示的时间之间的时间差被使用。在另一实施例中,渲染各帧之间的时间差可被使用。渲染之间的时间与渲染模块的帧率相对应。例如,如果帧按30fps来被渲染,则渲染各帧之间的时间约为33ms。[0088]在步骤640处,LSR模块确定附加的像素块是否应该被分析以确定运动向量。如果附加的块仍有待分析,则在步骤642处,下一个块的图像数据被访问。该过程接着返回到步骤636以开始确定下一像素块的运动向量。如果已针对当前帧分析了所有块,则在步骤644处完成运动向量估计。[0089]图8是描绘可由渲染模块生成的经渲染的图像的示例的框图。图8例示了用于经渲染的图像的一组示例运动向量。可通过将经渲染的图像与由渲染模块渲染的先前图像诸如紧接在该经渲染的图像的当前帧之前的先前帧进行比较来计算运动向量。运动向量通过比较在两个帧之间每个块内的特征或像素以在统计意义上或者以其他方式估计该块在这两个帧之间的运动而被生成。在该示例中,运动向量由箭头来例示。箭头的长度对应于运动向量的大小。较长的箭头指示较大的运动向量,其表示各帧之间在该块处的较大移动。较小的箭头指示较小的运动向量,其表示该帧之间在该块处的较小移动。[0090]图9是描述投影当前帧的一组运动向量达该帧的各像素的一个或多个预期显示时间的过程的流程图。在步骤660处,当前帧的第一像素的运动向量被访问。在步骤662处,图像数据储如第一像素的uv值被访问。在图9的过程中,该组uv值可以是当前帧的原始uv值或者可以在透视校正或其他过程期间被计算的经修改的一组uv值。在步骤664处,所选择的像素在该情形中为第一像素)的目标显示时间被确定。在步骤666处,为所选择的像素计算动画偏移。动画偏移是指示所选择的像素在场景中的动画或运动的值。该偏移使用运动向量和像素的预期显示时间来计算。运动向量指示所选择的像素的速度,而预期显示时间指示渲染和显示当前帧之间的时间。通过将运动向量和目标显示时间相乘,所选择的像素的位移可被确定。该位移被用来定义用于像素的偏移。在步骤668处,通过偏移值来修改所选择的像素的uv值。经修改的uv值在为当前帧生成场时导致像素的经调整的采样位置。该经调整的采样位置对渲染当前帧和基于该当前帧显示场之间的像素处的动画进行补偿。[0091]在步骤670处,系统确定是否要针对当前帧分析附加像素。如果没有附加像素有待分析,则在步骤676处为当前帧完成运动向量投影。该投影为当前帧提供一组uv值。指示当为当前帧生成场时的偏移采样位置的每个像素的uv值被提供。如果附加像素仍有待分析,则在步骤672处,下一像素的运动向量被访问,并且在步骤674处,下一像素的图像数据被访问。[0092]如图9所指出的,当正向投影运动向量来修改当前帧以用于生成供显示的场时,不同的目标显示时间可被使用。例如,当前帧的运动向量可被投影到第一目标时间以用于基于当前帧生成第一场,并且可被投影到第二目标时间以用于基于当前帧生成第二场。[0093]另外,各个个体像素的目标显示时间可以在供显示的单个场内变化。在扫描显示器中,随着显示从顶部到底部或从底部到顶部按顺序被更新,可以在当前帧的不同时间处显示不同行的像素或不同行的像素群。在这样的情形中,目标显示时间可针对当前帧的不同像素而变化。相应地,系统可访问各像素的个体目标显示时间以生成一组经修改的uv值。[0094]在另一示例中,彩色顺序显示器可被使用,其中为每个帧显示分开的红色、绿色和蓝色场。在这样的情形中,三个场可被生成,并且在当前帧的对应于这三个色场中的每一个的个体时间处被加载到显示器中。每个场被顺序地显示。例如,在240Hz的显示速率下,每个场的显示时间是4ms。系统可在生成每个场时利用经更新的姿态信息以基于各场之间的相机移动来提供透视校正。此外,系统可针对每个场个体地投影运动向量以与特定场的目标显示时间相对应。系统可通过基于每个色场的不同目标显示时间投影每个运动向量来生成每个色场。[0095]然而,已经观察到,当在彩色顺序显示器中顺序地显示分开的色场时可发生色分离。HMD的用户可独立地可视化每种色彩,而不是如所预期地可视化每种色彩的组合。尽管为使动画随每个连续场移动而对各帧进行正向投影可减轻一些色分离,但已经观察到引入了其他色分离。例如,在显示器的非用户所聚焦的区域的区域中,针对不同色场正向投影动画可在这些色场处引入色分离。[0096]在一个实施例中,系统基于查看显示器的用户的一个或多个焦点区域来选择性地投影动画。系统可利用眼睛跟踪和或头部跟踪信息来确定正由用户跟踪的(诸焦点或像素区域。显示器的对应于焦点区域或所跟踪的移动对象的区域处的内容针对各个个体场而被正向投影,而不与焦点区域或所跟踪的移动对象相对应的区域处的内容不被正向投影。通过在显示器内选择性地投影动画,对感知到的色分离的改进可被观察到。[0097]图10是描述按比渲染模块的帧率大的场速率生成场的过程的流程图。在图10中,运动向量和眼睛跟踪信息在生成用于显示的场时被用来选择性地投影自当前帧的动画。[0098]在步骤684处,显示器内的一个或多个焦点区域被标识。眼睛跟踪可被用来确定在特定时间段内由终端用户聚焦或跟踪的显示器的一个或多个区域的集合。在一个实施例中,该一个或多个区域可对应于由用户聚焦或跟踪的一个或多个虚拟对象。该系统可标识由用户聚焦或跟踪的所有对象,并接着确定最常被查看的一个或多个对象。虚拟对象可与距HMD的深度或距离相关联。在单个平面的情形中,可以基于在特定时间段内最常被查看的虚拟对象的深度来选择单个平面。在多个平面的情形中,增强现实环境内的虚拟对象可基于距该多个平面的邻近度而被分割成多个群。对象可能被映射到它最接近的平面。系统可选择一个或多个平面作为用于动画校正的焦点区域。[0099]在步骤686处,系统将为当前帧所选择的场设置为第一色彩例如,红色场)。在步骤688处,系统为所选择的场确定目标显示时间。在步骤690处,系统选择性地正向投影所确定的焦点区域内的像素的运动向量。系统不正向投影焦点区域之外的像素的运动向量。在焦点区域内,系统可将所选择的像素的运动向量乘以所选择的场的用来正向投影该运动向量的目标显示时间。在一个实施例中,选择性地正向投影运动向量的结果是一组经部分修改的UV值。(诸焦点区域内的UV值被修改以反映相对于经渲染的帧的动画,而焦点区域之外的UV值保持在其如被渲染或如先前修改的值处。[0Ί00]在步骤692处,所选择的色场被生成。在一个示例中,经修改的uv值被用来确定当前帧的采样位置以生成所选择的场。在生成所选择的场之后,系统确定是否有待为当前帧生成附加的场。如果是的话,则在步骤696处选择下一色场,并且过程返回到步骤688来为新选择的场确定显示时间。如果已针对当前帧生成了每一个场,则在步骤698处完成运动向量投影。[0101]相应地,所公开的技术的一个实施例包括移动设备,该移动设备包括显示器以及被配置成与该显示器通信的一个或多个处理器。该一个或多个处理器被配置成访问使用与移动设备相关联的第一姿态信息渲染的第一帧以及使用与移动设备相关联的第二姿态信息渲染的第二帧,基于该第一姿态信息和第二姿态信息之间的差异来变换第一帧,在变换第一帧之后基于第一帧和第二帧之间的动画确定一组运动向量,以及基于第二帧和该组运动向量生成用于移动设备的显示器的第一场。[0102]所公开的技术的一个实施例包括一种方法,该方法包括基于与移动设备相关联的第一经预测的姿态来渲染第一图像且基于与移动设备相关联的第二经预测的姿态来渲染第二图像,在渲染第二图像之后基于第一图像和第二经预测的姿态生成投影图像,基于第二图像和投影图像确定一组运动向量,基于第二图像和该组运动向量来为移动设备的显示器生成经更新图像,以及在第二设备的显示器上显示该经更新图像。[0103]所公开的技术的一个实施例包括具有用于对处理器进行编程以执行一种方法的计算机可读指令的计算机可读存储介质,该方法包括基于与在第一帧之后渲染的第二帧相关联的第二经预测的姿态来修改使用第一经预测的姿态渲染的第一帧,基于对第二帧和在被修改之后的第一帧的比较为第二帧确定一组运动向量,基于该组运动向量和第二帧来为移动设备的显示器生成第一场,以及在移动设备的显示器上显示该第一场。[0104]图11是移动设备900诸如图1中所描述的移动设备11、12或19的一个实施例的框图。移动设备可以包括已经整合了无线接收机发射机技术的膝上型计算机、袖珍计算机、移动电话、头戴式显示器HMD、个人数字助理、以及手持式媒体设备。图1的移动设备作为示例而被呈现为所公开的技术的一个说明性实现。将领会到,根据本公开的各实施例的移动设备可包括基于处理器的设备的许多变体。[0105]移动设备900包括一个或多个处理器920以及存储器914。存储器914包括应用916和非易失性存储918。存储器914可以是任何种类的存储器存储介质类型,包括非易失性和易失性存储器。例如,存储器914可包括随机存取存储器RAM、动态RAMDRAM、同步DRAMSDRAM、静态RAMSRAM或其他类型的存储设备。移动设备操作系统处理移动设备900的不同操作,并可包含用于操作的用户界面,如拨打和接听电话呼叫、文本消息收发、检查语音邮件等。应用916可以是任何种类的程序,如用于照片和或视频的相机应用、地址簿、日历应用、媒体播放器、因特网浏览器、游戏、闹钟应用、以及其它应用。存储器914中的非易失性存储组件918可以包含诸如音乐、照片、联系人数据、日程安排数据、以及其它文件之类的数据。[0106]一个或多个处理器920与显示器910进行通信。显示器可以是显示与现实世界环境相关联的一个或多个虚拟对象的传统显示器、触摸屏显示器或透视显示器。此一个或多个处理器920还与下列各项通信:RF发射机接收机906,其又耦合到天线902;红外发射机接收机908;全球定位服务GPS接收器912;以及移动定向传感器922,其可以包括加速度计和或磁力计。RF发射机接收机906可以通过诸如蓝牙®SIEEE802.11标准之类的各种无线技术标准来实现无线通信。加速度计可能已经结合在移动设备中以实现诸如下列应用:智能用户界面应用,其让用户通过姿势输入命令;以及定向应用,其可以在移动设备被旋转时将显示自动地从竖向改变成横向。可以例如通过微机电系统MEMS来提供加速度计,微机电系统是构建在半导体芯片上的微小机械器件微米尺寸)。可以感测加速度方向、以及定向、振动和震动。此一个或多个处理器920还与响铃器振动器924、用户界面小键盘屏幕926、扬声器928、话筒930、数字图像设备100、光传感器934和温度传感器936进行通信。用户界面小键盘屏幕可以包括触敏屏幕显示器。[0107]此一个或多个处理器920控制无线信号的发射和接收。在发射模式期间,此一个或多个处理器920向RF发射机接收机930提供来自话筒906的语音信号,或其它数据信号。发射机接收机906通过天线902来发射信号。响铃器振动器924被用于用信号向用户通知传入呼叫、文本消息、日历提醒、闹钟提醒或其他通知。在接收模式期间,RF发射机接收机906通过天线902接收来自远程站的语音信号或数据信号。所接收到的语音信号被提供给扬声器928,而接收到的其它数据信号被适当地处理。[0108]另外,可以使用物理连接器938来将移动设备900连接到诸如AC适配器或加电对接底座之类的外部电源,以便对电池904进行再充电。物理连接器938还可被用作到外部计算设备的数据连接。该数据连接允许诸如将移动设备数据与另一设备上的计算数据进行同步等操作。[0109]所公开的技术可用各种通用或专用计算系统环境或配置来操作。适合结合本技术中使用的公知的计算系统、环境和或配置的示例包括,但不限于:个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机、包含上述系统或设备中的任一个的分布式计算环境等。[0110]所公开的技术可在诸如程序模块或单元等由计算机执行的计算机可执行指令的通用上下文中描述。一般而言,如此处所述的软件和程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构和其它类型的结构。硬件或硬件和软件的组合可以替代在此描述的软件模块。[0111]本公开的一个或多个实施例可包括各种计算机可读介质。计算机可读介质可以是可由计算设备访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机可读存储介质和通信介质。计算机可读存储介质包括以供存储诸如计算机可读指令、数据结构、程序模块或其他数据等的信息的任何非瞬态方法或技术实现的易失性和非易失性、以及可移动和不可移动介质。计算机可读存储介质包括但不限于,随机存取存储器RAM、只读存储器ROM、EEPR0M、闪存或其他存储器技术,CD-ROM、数字多功能盘DVD或其他光盘存储,磁带盒、磁带、磁盘存储或其他磁存储设备,或可被用来储存信息且可由计算设备访问的任何其他介质。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介质。术语“已调制数据信号”意指以在信号中对信息进行编码的方式来使其一个或多个特性被设定或改变的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如RF及其他无线介质之类的无线介质。上述任何项的组合也被包括在计算机可读介质的范围内。[0112]所公开的技术可以在任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质两者中。[0113]出于本文档的目的,与所公开的技术相关联的每个过程可以持续地并由一个或多个计算设备来执行。该过程中的每个步骤都可由与在其他步骤中所使用的那些计算设备相同或不同的计算设备来执行,且每个步骤不必由单个计算设备来执行。[0114]出于本文的目的,说明书中引述的“一实施例”、“一个实施例”、“某些实施例”或“另一实施例”可被用于描述不同的实施例并且不必然指的是同一实施例。[0115]出于本文的目的,连接可以是直接连接或间接连接例如,经由另一方)。[0116]出于本文的目的,术语对象的“集合”指的是一个或多个对象的“集合”。[0117]尽管用结构特征和或方法动作专用的语言描述了本发明主题,但可以理解,所附权利要求书中定义的主题不必限于以上所描述的具体特征或动作。更确切而言,以上所描述的具体特征和动作是作为实现权利要求的示例形式公开的。

权利要求:1.一种移动设备,包括:显示器;以及被配置成与所述显示器通信的一个或多个处理器,所述一个或多个处理器被配置成访问使用与所述移动设备相关联的第一姿态信息渲染的第一帧和使用与所述移动设备相关联的第二姿态信息渲染的第二帧,所述一个或多个处理器被配置成基于所述第一姿态信息和所述第二姿态信息之间的差异来变换所述第一帧,所述一个或多个处理器被配置成在变换所述第一帧之后基于所述第一帧和所述第二帧之间的动画确定一组运动向量,所述一个或多个处理器被配置成基于所述第二帧和所述一组运动向量生成用于所述移动设备的显不器的第一场。2.根据权利要求1所述的移动设备,其特征在于:每个运动向量与所述显示器的一个或多个像素的块相关联;确定所述一组运动向量包括基于以下各项来确定每个块的速度:与所述块相关联的位移以及与所述第一帧相关联的第一时间和与所述第二帧相关联的第二时间;以及所述一个或多个处理器被配置成基于所述块的速度和每个像素的目标显示时间来为所述显示器的一组像素确定一组偏移。3.根据权利要求2所述的移动设备,其特征在于,所述第一姿态信息对应于第一经预测的姿态且所述第二姿态信息对应于第二经预测的姿态,所述一个或多个处理器被配置成通过以下生成所述第一场:在访问所述第二帧之后确定对应于第三经预测的姿态的第三姿态信息;基于所述第二姿态信息与所述第三姿态信息之间的差异来生成第二场的第一组uv值;以及使用每个像素的所述偏移来修改所述第一组UV值以生成与每个像素的所述目标显示时间相关联的第二组uv值。4.根据权利要求3所述的移动设备,其特征在于,生成所述第二场的所述第一组uv值包括将像素偏移调整应用到所述当前帧的至少一部分。5.一种方法,包括:基于与移动设备相关联的第一经预测的姿态来渲染第一图像且基于与所述移动设备相关联的第二经预测的姿态来渲染第二图像;在渲染所述第二图像之后基于所述第一图像和所述第二经预测的姿态生成投影图像;基于所述第二图像和所述投影图像确定一组运动向量;基于所述第二图像和所述一组运动向量来为所述移动设备的显示器生成经更新图像;以及在所述第二设备的显示器上显示所述经更新图像。6.根据权利要求5所述的方法,其特征在于,基于所述第一图像和所述第二经预测的姿态来生成所述投影图像包括:确定所述第一经预测的姿态和所述第二经预测的姿态之间的姿态差异;以及将单应变换应用到所述第一图像的至少一部分;其中生成所述经更新图像包括基于所述一组运动向量修改与所述第二图像相关联的一组像素值来为所述显示器生成包括所述经更新图像的第一场。7.根据权利要求6所述的方法,其特征在于:所述第一图像是第一经渲染的帧的一部分,而所述第二图像是第二经渲染的帧的一部分;以及修改与所述第二图像相关联的所述一组像素值包括修改与所述第二经渲染的帧相关联的一组uv值。8.根据权利要求7所述的方法,其特征在于,进一步包括:基于与所述第二图像相关联的眼睛跟踪信息确定焦点或跟踪的区域;其中修改所述一组uv值包括修改与所述焦点区域相关联的所述一组uv值的子集。9.根据权利要求7所述的方法,其特征在于,所述显示器是扫描显示器,所述方法进一步包括:确定与所述第一场相关联的多个目标显示时间,所述多个目标显示时间包括与第一行中的第一像素相关联的第一目标显示时间和与第二行中的第二像素相关联的第二目标显示时间,所述第二目标显示时间在所述第一目标显示时间之后;以及基于所述第一目标显示时间和所述一组运动向量确定用于所述第一像素的第一偏移,以及基于所述第二目标显示时间和所述一组运动向量确定用于所述第二像素的第二偏移。10.根据权利要求7所述的方法,其特征在于:所述显示器是被配置成为所述第二经渲染的帧顺序地显示所述第一场、第二场和第三场的彩色顺序显示器;为所述显示器生成所述第一场包括投影所述一组运动向量达与所述第一场相关的第一目标显示时间;以及所述方法进一步包括通过投影所述一组运动向量达与所述第二场相关联的第二目标显示时间来生成所述第二场,以及通过投影所述一组运动向量达与所述第三场相关联的第三目标显示时间来生成所述第三场。

百度查询: 微软技术许可有限责任公司 用于增强现实环境的帧投影