CN109863538B - 用于虚拟及增强现实显示的连续时间扭曲及双目时间扭曲系统和方法 - Google Patents

用于虚拟及增强现实显示的连续时间扭曲及双目时间扭曲系统和方法 Download PDF

Info

Publication number
CN109863538B
CN109863538B CN201780065917.1A CN201780065917A CN109863538B CN 109863538 B CN109863538 B CN 109863538B CN 201780065917 A CN201780065917 A CN 201780065917A CN 109863538 B CN109863538 B CN 109863538B
Authority
CN
China
Prior art keywords
image
image frame
display device
time
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780065917.1A
Other languages
English (en)
Other versions
CN109863538A (zh
Inventor
I·约
L·埃德温
S·A·米勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Magic Leap Inc
Original Assignee
Magic Leap Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Magic Leap Inc filed Critical Magic Leap Inc
Priority to CN202311364932.XA priority Critical patent/CN117453038A/zh
Publication of CN109863538A publication Critical patent/CN109863538A/zh
Application granted granted Critical
Publication of CN109863538B publication Critical patent/CN109863538B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/026Control of mixing and/or overlay of colours in general
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • H04N13/117Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • H04N13/344Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking
    • H04N13/383Image reproducers using viewer tracking for tracking with gaze detection, i.e. detecting the lines of sight of the viewer's eyes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8082Virtual reality
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2215/00Indexing scheme for image rendering
    • G06T2215/16Using real world measurements to influence rendering
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/20Details of the management of multiple sources of image data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Optics & Photonics (AREA)
  • Processing Or Creating Images (AREA)
  • Controls And Circuits For Display Device (AREA)
  • User Interface Of Digital Computer (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

本公开的实施例涉及连续和/或双目时间扭曲方法,以考虑用户头部运动而不必重新渲染显示的图像。连续时间扭曲允许图像从观看者的第一透视角变换到第二透视角而不必从第二透视角重新渲染该图像。双目时间扭曲指示结合包括用于左眼的左显示单元和用于右眼的右显示单元的显示设备使用的延迟帧时间扭曲,其中,针对左显示单元和右显示单元分开地执行延迟帧时间扭曲。将扭曲的图像发送到左显示单元和右显示单元,其中,生成光子并朝向观看者的相应的眼睛发射光子,从而同时在左显示单元和右显示单元上显示图像。

Description

用于虚拟及增强现实显示的连续时间扭曲及双目时间扭曲系 统和方法
相关申请的交叉引用
本申请是2016年8月26日提交的序列号为62/380,302的,名称为“Time Warp forVirtual and Augmented Reality Display Systems and Methods(用于虚拟和增强现实显示系统和方法的时间扭曲)”的美国专利申请的非临时申请并且主张该专利申请的权益,该申请的全部内容出于所有目的通过引用并入此文。以下美国专利申请中的每个申请的全部内容通过引用并入本申请:2016年3月25日提交的美国临时申请NO.62/313698(案卷号为MLEAP.058PR1);2014年7月14日提交的美国专利申请NO.14/331218;2014年11月27日提交的美国专利申请NO.14/555585;2015年4月18日提交的美国专利申请NO.14/690401;2015年5月29日提交的美国专利申请NO.14/726424;2015年5月29日提交的美国专利申请NO.14/726429;2016年5月4日提交的美国专利申请NO.15/146296;2016年6月14日提交的美国专利申请NO.15/182511;2016年6月14日提交的美国专利申请NO.15/182528;2015年8月18日提交的美国专利申请NO.62/206765(案卷号为MLEAP.002PR);2016年8月18日提交的美国专利申请NO.15/239710(案卷号为MLEAP.002A);2016年8月22日提交的美国临时申请NO.62/377831(案卷号为101782-1021207(000100US));以及2016年8月26日提交的美国临时申请NO.62/380302(案卷号为101782-1022084(000200US))。
技术领域
本公开涉及虚拟现实和增强现实可视化系统。更具体地说,本公开涉及用于虚拟现实和增强现实可视化系统的连续时间扭曲和双目时间扭曲方法。
背景技术
现代计算和显示技术促进了用于所谓的“虚拟现实”(VR)或“增强现实”(AR)体验的系统的开发,其中,数字再现的图像或其一部分以看起来是真实的或者可能被感知为真实的方式呈现给用户。VR场景通常涉及以对其它实际的真实世界视觉输入不透明的方式呈现数字或虚拟图像信息。AR场景通常涉及将数字或虚拟图像信息呈现为对用户周围的真实世界的可视化的增强。
例如,参考图(图1),该图示出了AR场景4,其中,AR技术的用户看到真实世界公园状设置6,该设置以人、树木、建筑物以及位于背景中的混凝土平台8为特征。除了这些项目之外,AR技术的用户还可以感知到他“看到”站在真实世界平台8上的机器人雕像10,以及看起来是大黄蜂的化身的正在飞舞的卡通式化身角色11302,尽管这些元素(例如,化身角色2和机器人雕像10)在真实世界中不存在。由于人类视觉感知和神经系统非常复杂,因此开发促进虚拟图像元素在其它虚拟或真实世界的图像元素中舒适、感觉自然、丰富呈现的VR或AR技术极具挑战性。
一个主要问题涉及基于用户移动修改向用户显示的虚拟图像。例如,当用户移动他们的头部时,他们的视觉区域(例如,视场)和视觉区域内的对象的视角可能发生改变。考虑到用户移动,需要实时地或接近实时地修改将要显示给用户的重叠的内容,以提供更逼真的VR或AR体验。
系统的刷新率控制系统生成内容并将所生成的内容显示给用户(或发送所生成的内容以显示)的速率。例如,如果系统的刷新率是60赫兹,则系统生成(例如,渲染、修改等)内容并且每隔16毫秒将所生成的内容显示给用户。VR和AR系统可以基于用户的姿势生成内容。例如,系统可以确定用户的姿势,基于所确定的姿势生成内容,以及将所生成的内容显示给用户均在16毫秒时间窗口内。在系统确定用户姿势时与系统向用户显示所生成的内容时之间的时间被称为“光子运动(Motion-To-Photon)延迟”。用户可以在系统确定用户姿势时与系统显示所生成的内容之间的时间内改变其姿势。如果不考虑此改变,则可导致不期望的用户体验。例如,系统可以确定用户的第一姿势并且开始基于第一姿势生成内容。然后,用户可以在系统确定第一姿势并接下来基于第一姿势生成内容时与系统将所生成的内容显示给用户时之间的时间内将其姿势改变到第二姿势。由于内容是基于第一姿势生成的并且用户现在具有第二姿势,因此显示给用户的所生成的内容将由于姿势不匹配而相对于用户显得错位。姿势不匹配可导致不期望的用户体验。
系统可以考虑在整个渲染图像帧范围内的用户姿势的变化来应用校正,例如作为对缓冲图像进行操作的后处理步骤。虽然这种技术对于通过在渲染所有像素时闪烁/照射所有像素来显示(例如,在2ms内)图像帧的面板显示器有效,但是此技术无法良好适用于以顺序的方式逐像素地显示(例如,在16ms内)图像帧的扫描显示器。在以顺序的方式逐像素地显示图像帧的扫描显示器中,第一像素与最后一个像素之间的时间可以达到整帧持续时间(例如,对于60Hz显示器为16ms),其间用户的姿势可能发生显著变化。
实施例解决了这些以及其它与实现常规时间扭曲的VR或AR系统相关联的问题。
发明内容
本公开涉及实现三维(3D)可视化系统的技术。更具体地说,本公开提出了产生增强现实(“AR”)内容的部件、子部件、架构和系统,该AR内容通过显示系统向用户显示,使得虚拟现实(“VR”)或AR内容的感知如同这些虚拟现实或AR内容发生在所观看到的真实世界中一样。这种沉浸式传感输入也可以被称为混合现实(“MR”)。
在一些实施例中,光图案被注入显示系统的波导中,该显示系统被配置为向穿戴显示系统的用户呈现内容。光图案可以由光投影仪注入,并且波导可以被配置为在波导内通过全内反射传播特定波长的光。光投影仪可包括发光二极管(LED)和硅基液晶(LCOS)系统。在一些实施例中,光投影仪可以包括扫描光纤。光图案可以以时序方式包括图像数据。
各种实施例提供连续和/或双目时间扭曲方法以考虑用户的头部运动并最小化由用户的头部运动导致的光子运动延迟。连续时间扭曲允许图像从第一透视角(例如,基于用户头部的第一位置)变换到第二透视角(例如,基于用户头部的第二位置)而不必从第二透视角重新渲染图像。在一些实施例中,连续时间扭曲在外部硬件(例如,显示器外部的控制器)上执行,并且在其它实施例中,连续时间扭曲在内部硬件(例如,显示器内部的控制器)上执行。连续时间扭曲在显示设备(例如,顺序显示设备)处显示最终图像之前执行。
一些实施例提供了一种用于基于观看者的更新的位置来变换图像帧的方法。该方法可以包括由计算设备从图形处理单元获取第一图像帧。该第一图像帧与第一视角对应,该第一视角与观看者的第一位置相相关联。该方法还可以包括接收与观看者的第二位置相关联的数据。计算设备可以逐像素地连续变换第一图像帧的至少一部分,以生成第二图像帧。该第二图像帧与第二视角对应,该第二视角与所述观看者的第二位置相关联。计算设备可以将第二图像帧传输到近眼显示设备的显示模块以在该近眼显示设备上显示。
各种实施例提供一种用于基于观看者的更新的位置来变换图像帧的方法。该方法可以包括由图形处理单元在第一时间处针对双目近眼显示设备的左显示器渲染左图像帧。该左图像帧与第一视角对应,该第一视角与观看者的第一位置相关联。该方法还可以包括由计算设备从图形处理单元针对双目近眼显示设备的右显示器渲染右图像帧。该右图像帧与第一视角对应,该第一视角与观看者的第一位置相关联。图形处理单元可以在比第一时间晚的第二时间处接收与观看者的第二位置相关联的数据。该数据包括基于观看者的第二位置的第一姿势估计。图形处理单元可以使用基于观看者的第二位置的第一姿势估计来变换左图像帧的至少一部分,以针对双目近眼显示设备的左显示器生成更新的左图像帧。该更新的左图像帧与第二视角对应,该第二视角与观看者的第二位置相关联。图形处理单元可以在比第二时间晚的第三时间处将更新的左图像帧传输到双目近眼显示设备的左显示器以在该左显示器上显示。图形处理单元可以在比第二时间晚的第四时间处接收与观看者的第三位置相关联的数据。该数据包括基于观看者的第三位置的第二姿势估计。图形处理单元可以使用基于观看者的第三位置的第二姿势估计来变换右图像帧的至少一部分,以针对双目近眼显示设备的右显示器生成更新的右图像帧。该更新的右图像帧与第三视角对应,该第三视角与观看者的第三位置相关联。图形处理单元可以在比第四时间晚的第五时间处将更新的右图像帧传输到双目近眼显示设备的右显示器以在该右显示器上显示。
实施例可以包括用于执行上述方法步骤的计算机系统,该计算系统包括至少一个图形处理单元、控制器和近眼显示设备。
其它特征、优势和实施例在下面的具体实施方式、附图和权利要求中进行描述。
附图说明
附图(图)1示出了根据一些实施例的通过可穿戴AR设备观看的增强现实(“AR”)场景。
图2示出了根据一些实施例的可穿戴AR显示系统。
图3A示出了根据一些实施例的与真实世界环境交互的AR显示系统的用户的交互。
图3B示出了根据一些实施例的观看光学组件的部件。
图4示出了根据一个实施例的时间扭曲。
图5示出了根据一个实施例的观看者从初始位置观看的观看区域。
图6示出了根据一个实施例的由于观看者的平移,观看者从第二位置观看的观看区域。
图7示出了根据一个实施例的由于观看者的旋转,观看者从第三位置观看的观看区域。
图8示出了将压缩图像数据发送到显示设备的图形处理单元(GPU)。
图9示出了根据一个实施例的读指针重定向连续时间扭曲。
图10示出了根据一个实施例的位于GPU与显示设备之间的外部控制器单元。
图11示出了根据一个实施例的作为用于执行读指针重定向连续时间扭曲的架构中的外部硬件单元的外部控制器单元。
图12示出了根据一个实施例的以光栅模式前进的读指针。
图13示出了根据一个实施例的以光栅模式利用读指针重定向前进的读指针。
图14示出了根据一个实施例的读指针交叉的区域。
图15示出了根据一个实施例的防止区域交叉的缓冲区超前距离。
图16示出了根据一个实施例的缓冲区重新拖尾(re-smear)连续时间扭曲。
图17示出了根据示例性实施例的用于执行缓冲区重新拖尾连续时间扭曲的系统架构。
图18示出了根据一个实施例的像素重定向连续时间扭曲。
图19示出了根据一个实施例的用于执行像素重定向连续时间扭曲的系统架构。
图20示出了根据一个实施例的写指针重定向连续时间扭曲。
图21示出了根据一个实施例的用于执行写指针重定向连续时间扭曲的系统架构。
图22示出了根据一个实施例的具有轨迹的写指针。
图23示出了根据一个实施例的具有轨迹的写指针和读指针中的每一者。
图24示出了根据一个实施例的用于执行写/读指针重定向连续时间扭曲的系统架构。
图25示出了根据一个实施例的双目时间扭曲。
图26示出了根据又一实施例的交错双目时间扭曲。
图27示出了根据另一实施例的交错双目时间扭曲。
图28示出了根据一个实施例的交错双目时间扭曲。
图29示出了根据另一实施例的双目时间扭曲。
具体实施方式
虚拟现实(“VR”)体验可通过可穿戴显示系统向用户提供。图2示出了可穿戴显示系统80(以下称为“系统80”)的示例。系统80包括头戴式显示设备62(以下称为“显示设备62”),以及支持显示设备62的功能的各种机械和电子模块和系统。显示设备62可以被耦合到框架64,该框架可由显示系统用户或观看者60(以下称为“用户60”)穿戴并且被配置为将显示设备62定位在用户60的眼前。根据各种实施例,显示设备62可以是顺序显示器。显示设备62可以是单目的或双目的。在一些实施例中,扬声器66被耦合到框架64并且被定位在用户60的耳道附近。在一些实施例中,另一个扬声器(未示出)被定位在用户60的另一耳道附近以提供立体声/可塑形的声音控制。显示设备62诸如通过有线引线或无线连接可操作地将68耦合到本地数据处理模块70,本地数据处理模块70可以以各种配置安装,诸如固定地附接到框架64,固定地附接到由用户60穿戴的帽子或头盔,嵌入耳机中,或以其它方式可拆卸地附接到用户60(例如,采用背包式配置,采用束带连接式配置)。
本地数据处理模块70可以包括处理器,以及诸如非易失性存储器(例如,闪存)之类的数字存储器,两者可被用于辅助数据处理、缓存和存储。这些数据可以包括(a)通过传感器(其例如被可操作地耦接到框架64或以其它方式附接到用户60上)捕获的数据,这些传感器诸如包括图像捕获设备(例如,相机)、麦克风、惯性测量单元、加速度计、指南针、GPS单元、无线电设备和/或陀螺仪;和/或(b)使用远程处理模块72和/或远程数据存储库74获取和/或处理的数据,该数据可能在这种处理或检索之后被传送到显示器62。本地数据处理模块70可以通过通信链路76、78(诸如经由有线或无线通信链路)被分别可操作地耦接到远程处理模块72和远程数据存储库74,使得这些远程模块72、74被可操作地彼此耦接,并且可用作本地处理和数据模块70的资源。
在一些实施例中,本地数据处理模块70可以包括被配置为分析和处理数据和/或图像信息的一个或多个处理器(例如,图形处理单元(GPU))。在一些实施例中,远程数据存储库74可以包括数字数据存储设施,该设施可以通过因特网或“云”资源配置中的其它网络配置获得。在一些实施例中,在本地数据处理模块70中存储所有数据并执行所有计算,从而允许从远程模块的完全自主地使用。
在一些实施例中,本地数据处理模块70被可操作地耦合到电池82。在一些实施例中,电池82是可移除电源,诸如工作台上电池(over the counter battery)。在其它实施例中,电池82是锂离子电池。在一些实施例中,电池82包括内置锂离子电池和可移除电池,内置锂离子电池可在系统80的非运行时间期间由用户60充电,使得用户60能够更长时间段地操作系统80,不必被束缚在电源上以对锂离子电池充电,或者不必必须关闭系统80以更换电池。
图3A示出了当用户30在真实世界环境32(以下称为“环境32”)内移动时,穿戴增强现实(“AR”)显示系统的用户30渲染AR内容。用户30将AR显示系统定位在位置34处,并且AR显示系统相对于位置34(诸如,与映射特征或定向音频输入的姿势关系)记录联通的世界(passable world)的背景信息,例如,真实世界中可以被存储并通过真实世界中对象的变化而更新的对象的数字表示。例如。位置34被聚合到数据输入36并且至少由联通的世界模块38(诸如,图2的远程处理模块72)处理。联通的世界模块38确定如何在根据数据输入36确定的真实世界中放置AR内容40以及放置在何处,诸如放置在固定元素42(例如,桌子)上,或者放置在尚未在视场44中或相对于真实世界的映射网格模型46的结构内。如图所示,固定元素42充当真实世界内任何固定元素的代理,这些固定元素可以被存储在联通的世界模块38中,使得每当用户30看到该固定元素时,不必映射到固定元素42便可感知该固定元素42上的内容。因此,固定元素42可以是来自先前建模会话的映射网格模型,也可以由单独用户确定,但无论如何均存储在联通的世界模块38上以便将来供多个用户参考。因此,联通的世界模块38可以从先前映射的环境识别环境32,并且在不需要用户30的设备首先映射环境32的情况下显示AR内容,从而节省计算过程和周期并且避免任何渲染AR内容的延迟。
类似地,真实世界的映射网格模型46可以由AR显示系统创建,并且用于交互和显示AR内容40的适当表面和度量可以被映射并存储在联通的世界模块38中以在不需要重新映射或建模的情况下供用户30或其他用户将来检索。在一些实施例中,数据输入36是诸如地理定位、用户识别和当前活动之类的输入,用于向联通的世界模块38指示一个或多个固定元素中的哪个固定元素42可用,哪个AR内容40最后被放置在固定元素42上,以及是否显示同一内容(这种AR内容是“持久”内容,与观看特定联通的世界模型的用户无关)。
图3B示出了观看光学组件48和附属部件的示意图。在一些实施例中,朝向用户眼睛49的两个眼睛跟踪相机50检测用户眼睛49的度量,例如眼睛形状、眼睑闭合、瞳孔方向和用户眼睛49上的闪光。在一些实施例中,诸如飞行时间传感器之类的深度传感器51向世界发射中继信号以确定到给定对象的距离。在一些实施例中,世界相机52记录大于周边的视图以映射环境32并检测可影响AR内容的输入。相机53还可以捕获用户视场内的真实世界图像的特定时间戳。世界相机52、相机53和深度传感器51中的每一者具有相应视场54、55和56,以从真实世界场景(诸如,图3A所示的真实世界环境32)收集数据并记录真实世界场景。
惯性测量单元57可以确定观看光学组件48的移动和取向。在一些实施例中,每个部件被可操作地耦合到至少一个其它部件。例如,深度传感器51被可操作地耦合到眼睛跟踪相机50,作为对用户眼睛49正在观看的实际距离的测量的调节的确认。
在AR系统中,当用户30的位置改变时,需要调整渲染的图像以考虑用户30的新观看区域。例如,参考图2,当用户60移动其头部时,需要更新在显示设备62上显示的图像。然而,如果用户60的头部正在移动,则在显示设备62上渲染图像可能存在延迟,并且系统80需要基于新的头部姿势确定渲染的图像的新透视图。
根据各种实施例,可能不需要重新渲染要显示的图像以节省时间。而是,可以变换图像以与用户60的新视角(例如,新观看区域)一致。这种快速图像重新调整/视图校正可以被称为时间扭曲。时间扭曲允许系统80看起来更具响应性和沉浸感,即使随着用户60的头部位置改变,因此其视角也发生改变。
时间扭曲可用于防止对所显示图像产生的不希望的影响,诸如撕裂。图像撕裂是显示设备62中的视觉伪像,其中,显示设备62在单个画面绘制中显示来自多个帧的信息。当到显示设备62的帧传输速率与显示设备62的刷新速率不同步时,可能发生撕裂。
图4示出了如何在渲染3D内容时立即执行时间扭曲。图4所示的系统100包括姿势估计器101,该姿势估计器101接收图像数据112和来自一个或多个惯性测量单元(IMU)的IMU数据114。然后,姿势估计器101可以基于所接收的图像数据112和IMU数据114生成姿势122,并且将该姿势122提供给3D内容生成器102。3D内容生成器102可以生成3D内容(例如,3D图像数据)并将3D内容提供给图形处理单元(GPU)104进行渲染。GPU 104可以在时间t1116处渲染所接收的3D内容,并且将渲染图像125提供给时间扭曲模块106。时间扭曲模块106可以在时间t2117处从GPU 104接收渲染的图像125并且从姿势估计器101接收最新姿势124。然后,时间扭曲模块106可以在时间t3 118处使用最新姿势124对渲染的图像125执行时间扭曲。变换的图像126(即,被执行时间扭曲的图像)被发送到显示设备108(例如,图1的显示设备62)。在显示设备108处生成光子并朝向用户的眼睛110发射光子,从而在时间t4120处在显示设备108上显示图像。图4所示的时间扭曲能够呈现有关显示设备108上显示的图像的最新姿势更新信息(例如,最新姿势124)。旧帧(即,先前显示的帧或从GPU接收的帧)可用于时间扭曲的内插。利用时间扭曲,可以将最新姿势124并入所显示的图像数据中。
在一些实施例中,时间扭曲可以是参数扭曲、非参数扭曲或异步扭曲。参数扭曲涉及仿射操作,如图像的平移、旋转和缩放。在参数扭曲中,图像的像素以统一的方式重新定位。因此,虽然参数扭曲可用于正确地更新用户头部旋转的场景,但是参数扭曲不能诠释图像的一些区域受到的影响不同于其它区域的用户头部平移。
非参数扭曲涉及一些图像的部分的非参数畸变(例如,图像的部分的拉伸)。即使非参数扭曲可以在图像的不同区域中不同地更新图像的像素,但是由于被称为“去遮挡”的概念,非参数扭曲仅可部分地诠释用户头部平移。去遮挡可以指示例如由于用户姿势的改变,视线中障碍物的移除等原因,使得对象可见,或者再现先前无法看到的对象。
异步时间扭曲可以指示将场景渲染和时间扭曲分成两个单独的异步操作的扭曲。异步时间扭曲可以在GPU上或在外部硬件上执行。异步时间扭曲可以将显示的图像的帧速率提高到渲染速率以上。
根据各种实施例,可以响应于用户的新头部位置(即,估算的头部姿势)来执行时间扭曲。例如,如图4所示,用户可以在时间t0 115处移动他们的头部(例如,用户旋转和/或平移)。因此,用户的透视角可以改变。这将导致用户看到的内容发生改变。因此,需要为了逼真的VR或AR体验考虑用户的头部运动来更新渲染图像。也就是说,渲染的图像125被扭曲以对准(例如,对应)新的头部位置,使得用户感知具有相对于用户在显示设备108处显示的图像中的透视角正确的空间定位和取向的虚拟内容。为此,实施例旨在减少光子运动延迟,该延迟是从用户移动其头部的时间到包含该运动的图像(光子)落在用户视网膜上的时间之间的时间。在没有时间扭曲的情况下,光子运动延迟是用户引起在姿势122中捕获的运动的时间到朝向眼睛110发射光子的时间之间的时间。在具有时间扭曲的情况下,光子运动延迟是用户引起在最新姿势124中捕获的运动的时间到朝向眼睛110发射光子的时间之间的时间。在尝试减少由光子运动延迟引起的误差时,姿势估计器可以预测用户的姿势。姿势估计器预测用户姿势的时间(也称为预测范围)越远,预测越不确定。不以此处公开的方式实现时间扭曲的常规系统通常具有至少一个帧持续时间或更长时间(例如,对于60Hz,至少16毫秒或更长)的光子运动延迟。实施例实现约1至2毫秒的光子运动延迟。
本文公开的实施例涉及两种非互斥型时间扭曲:连续时间扭曲(CTW)和交错双目时间扭曲(SBTW)。实施例可与使用扫描光纤或任何其它扫描图像源(例如,微机电系统(MEMS)镜)作为图像源的显示设备(例如,图1的显示设备62)一起使用。扫描光纤经由单模光纤将来自远程光源的光中继到扫描光纤。显示设备使用致动光纤电缆以扫描出远大于光纤本身孔径的图像。扫描光纤方法不受扫描输入开始时间和扫描输出开始时间的限制,并且在扫描输入开始时间与扫描输出开始时间之间(例如,在可以将图像上传到显示设备之前)可以存在变换。相反,可以执行连续时间扭曲,其中逐像素地执行变换,并且当图像被眼睛扫过时,调整像素的x-y位置,甚至x-y-z位置。
可以使用图2所示的系统80执行本文所讨论的各种实施例。然而,实施例不限于系统80,可以结合能够执行本文所讨论的时间扭曲方法的任何系统使用。
视角调整和扭曲
根据各种实施例,AR系统(例如,系统80)可以使用二维(2D)透视式显示器(例如,显示设备62)。为了在显示器上表示三维(3D)对象,需要将3D对象投射到一个或多个平面上。在显示器处得到的图像取决于经由显示设备62观看3D对象的系统80的用户(例如,用户60)的视角。附图(图)5至附图(图)7通过显示用户60相对于3D对象的移动,以及用户60在每个位置看到的内容来示出视图投影。
图5示出了用户从第一位置观看的观看区域。当用户位于第一位置314时,如“用户看到的内容316”所示,用户看到第一3D对象304和第二3D对象306。从第一位置314,用户看到第一3D对象304的全部,并且放置在第二3D对象306前面的第一3D对象304使第二3D对象的一部分被模糊。
图6示出了用户从第二位置观看的观看区域。当用户相对于图5的第一位置314进行平移(例如,侧向移动)时,用户的视角发生改变。因此,从第二部分320可见的第一3D对象304和第二3D对象306的特征可能与从第一位置314可见的第一3D对象304和第二3D对象306的特征不同。在图6所示的示例中,当用户侧向远离第二3D对象306并朝向第一3D对象304平移时,与从第一位置314的视图相比,用户看到第一3D对象304使第二3D对象304的更大部分模糊。当用户位于第二位置320时,如“用户看到的内容318”所示,用户看到第一3D对象304和第二3D对象306。根据各种实施例,当用户以图6所示方式侧向平移时,“用户看到的内容318”非均匀地更新(即,更靠近用户的对象(例如,第一3D对象304)看起来比远距离的对象(例如,第二3D对象306)移动得更多)。
图7示出了用户从第三位置观看的观看区域。当用户相对于图5的第一位置314旋转时,用户的视角发生改变。因此,从第三位置324可见的第一3D对象304和第二3D对象306的特征与从第一位置314可见的第一3D对象304和第二3D对象306的特征不同。在图7所示的示例中,当用户顺时针旋转时,第一3D对象304和第二3D对象306与来自第一位置314的“用户看到的内容316”相比向左移位。当用户位于第三位置324时,如“用户看到的内容322”所示,用户看到第一3D对象304和第二3D对象306。根据各种实施例,当用户围绕光学中心(例如,围绕视角中心)旋转时,投射的图像“用户看到的内容322”仅进行平移。像素的相对布置不会改变。例如,图5中的“用户看到的内容316”的像素的相对布置与图7中的“用户看到的内容322”相同。
图5至图7示出了如何取决于用户的位置渲染被观看对象。基于用户的移动修改用户看到的内容(即,渲染视图)影响AR体验的质量。在无缝AR体验中,表示虚拟对象的像素应始终在空间上与物理世界配准(称为“像素粘附到世界”(PStW))。例如,如果在AR体验中,虚拟咖啡杯可被放置在真实的桌子上,则当用户环顾四周(即,改变视角)时,虚拟杯子应该呈现为固定在桌子上。如果未实现PStW,则当用户环顾四周时,虚拟杯子将在空间中漂移,从而打破了虚拟杯子在桌子上的感知。在该示例中,真实的桌子相对于真实世界取向是静态的,而用户的视角通过用户头部姿势的改变而改变。因此,系统80可能需要估计头部姿势(相对于世界坐标)以将虚拟对象与真实世界配准,然后从正确的观看视角绘制/呈现虚拟对象的光子。
在所呈现的图像中结合正确的观看姿势对于PStW概念是至关重要的。这种结合可能发生在沿着渲染流水线的不同点处。通常,当姿势估计与呈现图像之间的时间较短或者当针对给定预测范围的姿势预测更准确时,可以更好地实现PStW概念,因为这将导致所呈现的图像尽可能最新。也就是说,如果在显示基于姿势估计生成的图像时姿势估计过期,则像素将不会粘附到世界,可能无法实现PStW。
与图5的第一位置314对应的“用户看到的内容316”的像素位置和与图6的第二位置320(即,平移位置)对应的“用户看到的内容318”的像素位置或与图7的第三位置(即,旋转位置)对应的“用户看到的内容324”的像素位置之间的关系可以被称为图像变换或扭曲。
时间扭曲
时间扭曲可以指示与不同视角(例如,用户头部位置)对应的2D图像之间的数学变换。当用户头部位置改变时,可以应用时间扭曲来变换所显示的图像以与新视角一致,而不必重新渲染新图像。因此,可以快速计算用户头部位置的改变。当用户移动她的头部从而修改她的视角时,时间扭曲可以允许AR系统看起来更具响应性和沉浸感。
在AR系统中,在基于用户的初始位置估计姿势(例如,第一姿势)之后,用户可以移动和/或改变位置,从而改变用户看到的内容,而且,新姿势(例如,第二姿势)可以基于改变后的用户位置来估计。为了逼真的VR或AR体验,基于第一姿势渲染的图像需要基于第二姿势进行更新以适应用户的移动和/或位置变化。为了快速适应该变化,AR系统可以生成新姿势。可以使用第二姿势执行时间扭曲以生成适应用户的移动和/或位置变化的变换的图像。该变换的图像被发送到显示设备并显示给用户。如上所述,时间扭曲对渲染的图像进行变换,这样,时间扭曲对现有图像数据有效。因此,时间扭曲可不被用于渲染全新的对象。例如,如果渲染的图像示出容器,并且用户将头部移动得足够远以使用户能够看到隐藏在容器后面的一美分硬币,则可能无法使用时间扭曲来渲染一美分硬币,因为便士不在渲染的图像的视图内。但是,时间扭曲可以被用于基于新姿势(例如,根据用户的新视点)适当地渲染容器位置。
时间扭曲的功效可取决于(1)新头部姿势的准确性(由此计算时间扭曲),即,姿势估计器/传感器融合的质量(如果在显示图像之前发生扭曲);(2)跨预测范围时间的姿势预测的准确性,即,姿势预测器的质量(如果扭曲发生在显示图像之前的某个时间(预测范围));(3)预测范围时间的长度(例如,越短越好)。
I.时间扭曲操作
时间扭曲操作可以包括延迟帧时间扭曲和/或异步时间扭曲。延迟帧时间扭曲可以指示在显示器(例如,显示设备62)处呈现包括渲染的图像(或其时间扭曲版本)的帧之前,在帧生成时段内尽可能晚地扭曲渲染的图像。目的是通过最小化从估计用户姿势时到被用户观看到与用户姿势对应的渲染的图像时之间的时间(例如,运动/光子/姿势估计到光子延迟)来最小化投影误差(例如,基于用户观看点将虚拟世界与真实世界对准的误差)。采用延迟帧时间扭曲,光子运动延迟(即,从估计用户姿势时到用户观看到与用户姿势对应的渲染的图像时之间的时间)可能小于帧持续时间。也就是说,可以快速执行延迟帧时间扭曲,从而提供无缝AR体验。可以在图形处理单元(GPU)上执行延迟帧时间扭曲。延迟帧时间扭曲对同时显示帧的整个像素的同时/闪烁面板显示器可以非常有效。但是,延迟帧时间扭曲对在渲染像素时逐像素地显示帧的顺序/扫描显示器可能无效。延迟帧时间扭曲可以是参数扭曲、非参数扭曲、或非同步扭曲。
图8示出了根据一个实施例的用于执行延迟帧时间扭曲的系统。如图8所示,应用处理器/GPU 334(以下称为GPU 334)可以在将扭曲的图像数据(例如,红绿蓝(RGB)数据)336发送到显示设备350之前,对图像数据执行时间扭曲操作。在一些实施例中,图像数据336可以是压缩图像数据。显示设备可以包括双目显示设备。在该实施例中,显示设备350可以包括左显示器338和右显示器340。GPU 334可以将图像数据336传输到显示设备350的左显示器338和右显示器340。GPU 334能够按深度发送顺序数据,并且不会将数据折叠成2D图像。GPU 334包括时间扭曲模块335,用于在将图像数据336传输到显示设备350(例如,诸如LCOS之类的近眼显示器)之前扭曲图像数据336。
延迟帧时间扭曲和异步时间扭曲都可以在GPU 334上执行,并且变换域(例如,将变换的图像部分)可以包括整个图像(例如,同时扭曲整个图像)。在GPU 334扭曲图像之后,GPU 334将图像发送到显示设备350,无需做出进一步修改。因此,延迟帧或异步时间扭曲适用于包括同时/闪烁显示器(即,一次照射所有像素的显示器)的显示设备上的应用。对于这样的显示设备,在打开显示设备350的左显示器338和右显示器340之前,GPU 334必须扭曲整个帧(即,必须完成扭曲)。
II.连续时间扭曲
根据一些实施例,GPU可以渲染图像数据并将渲染的图像数据输出到外部部件(例如,诸如现场可编程门阵列(FPGA)之类的集成电路)。外部部件可以对渲染的图像执行时间扭曲,并将扭曲的图像输出到显示设备。在一些实施例中,时间扭曲可以是连续时间扭曲(“CTW”)。CTW可以包括在外部硬件上逐渐扭曲图像数据,直到恰好在扭曲的图像数据被从外部硬件输出到将扭曲的图像转换为光子的显示设备之前。CTW的一个重要特征是当图像数据从外部硬件流传输到显示设备时,可以对图像数据的子部分执行连续扭曲。
CTW的连续/流传输操作可以是包括顺序/扫描显示器(即,随时间输出行或像素的显示器)的显示设备上的适合应用。对于这样的显示设备,流传输显示设备的特性对具有CTW的流传输特性的串行有效,因此极具时效性。
实施例提供四种示例性连续时间扭曲方法:读指针重定向、像素重定向、缓冲区重新拖尾和写指针重定向。
1.读指针重定向(RCRD)方法
如本文所使用的,显示设备像素可以指示物理显示设备的显示元素/单元(例如,CRT屏幕上的荧光体方块)。如本文所使用的,图像像素可以指示计算机生成的图像的数字表示(例如,4字节整数)的单元。如本文所使用的,图像缓冲区指示在图像数据从一个地方(例如,GPU外部的存储器或硬件模块)移到另一个地方(例如,显示设备)的同时,用于临时存储图像数据的物理存储器的区域。
根据各种实施例,GPU可以使用写指针将渲染的图像数据(例如,图像像素)输入到图像缓冲区中,该写指针通过在图像缓冲区内随时间前进来扫描该图像缓冲区。图像缓冲区可以使用读指针将图像像素输出到显示设备,该读指针通过在图像缓冲区内随时间前进来扫描该图像缓冲区。
对于包括顺序/扫描显示器的显示设备,可以按照规定的顺序(例如,从左到右,从顶部到底部)接通显示设备像素。然而,显示在显示设备像素上的图像像素可以改变。当每个显示设备像素依次准备接通时,读指针可以在图像缓冲区内前进,拾取接下来投射的图像像素。在没有CTW的情况下,每个显示设备像素始终对应于相同的图像像素(例如,观看没有修改的图像)。
在实现读指针重定向(“RCRD”)的实施例中,可以连续地重定向读指针以选择与默认图像像素不同的图像像素。这导致输出图像的扭曲。当使用顺序/扫描显示器时,输出图像可以逐行输出,其中,每行可以被单独扭曲,使得用户感知的最终输出图像被以期望的方式扭曲。读指针的位移和图像缓冲区的位移可以是相对于彼此的。也就是说,利用RCRD,当重定向读指针时,图像缓冲区中的图像数据可能移位。重定向读指针可能等同于平移输出图像。
图9示出了根据一个实施例的RCRD CTW方法。可针对所有显示设备像素使用同一重定向矢量。可以引导读指针从图像缓冲区332中选择图像像素800以在显示设备350的对应显示设备像素804处显示。这可以被称为读指针的默认位置,或被简称为默认指针。利用RCRD,可以重定向读指针来选择图像缓冲区332的图像像素802以使其在显示设备350的对应显示设备像素804处显示。这可以被称为读指针的重定向位置,或被简称为重定向指针。作为RCRD的结果,读指针选择图像缓冲区332的图像像素802(如下面结合图11进一步说明的),并将所选择的图像像素802发送到显示设备350的显示设备像素804处进行显示。当对显示设备350的所有显示设备像素应用同一重定向矢量时,图像缓冲区332中的图像数据被左移两列。图像缓冲区332的图像像素被扭曲,并且最终显示图像330是图像缓冲区332中的图像数据的平移版本。
图10示出了根据一个实施例的用于执行RCRD的系统。在GPU 334与显示设备350之间提供外部(即,GPU和显示设备的外部)控制器342。GPU 334可以生成图像数据336并将其发送到外部控制器342以进行进一步处理。外部控制器342还可以接收来自一个或多个IMU的惯性测量单元(IMU)数据344。在一些实施例中,IMU数据344可包括观看者位置数据。外部控制器342可以对从GPU 334接收的图像数据336进行解压缩,基于IMU数据344对解压缩的图像数据应用连续时间扭曲,执行像素变换和数据分割,并且重新压缩最终数据以便发送到显示设备350。外部控制器342可以将图像数据346发送到左显示器338并将图像数据348发送到右显示器340。在一些实施例中,图像数据346和图像数据348可以是压缩的扭曲的图像数据。
在一些实施例中,左渲染的图像数据和右渲染的图像数据都可以被发送到左显示器338和右显示器340中的每一者。因此,左显示器338和右显示器340可以执行附加的精确图像渲染操作,诸如使用附加图像数据进行的去遮挡。例如,在右显示器340上渲染图像之前,除了右渲染的图像数据之外,右显示器340还可以使用左渲染的图像数据执行去遮挡。类似地,在左显示器338上渲染图像之前,除了左渲染的图像数据之外,左显示器338还可以使用右渲染的图像数据执行去遮挡。
图11示出了在执行RCRD CTW的系统架构中外部控制器342作为的GPU 334与显示设备350之间的外部硬件单元(例如,现场可编程门阵列(FPGA)、数字信号处理器(DSP)、专用集成电路(ASIC)等)。外部控制器342的姿势估计器/预测器模块354接收光学数据352和来自一个或多个IMU 345的IMU数据344。外部控制器342可以从GPU 334接收图像数据336并对图像数据336进行解压缩。可以将解压缩的图像数据提供给外部控制器342的(子)帧缓冲区356。读指针重定向模块396执行RCRD连续时间扭曲,以基于姿势估计器/预测器354的输出387变换GPU 334的压缩图像数据336。所生成的数据346、348是时间扭曲的图像数据,然后,该数据被发送到显示设备350以被转换为朝向观看者眼睛发射的光子358。
i(子)帧缓冲区大小
现在参考图12和图13,其中,相对于(子)帧缓冲区(例如,(子)帧缓冲区356)的大小讨论RCRD。根据一些实施例,GPU 334可以产生光栅图像(例如,作为点阵数据结构的图像),并且显示设备350可以输出光栅图像(例如,显示设备350可以“光栅输出”)。如图12所示,读指针360(前进通过图像缓冲区拾取接下来将被投射的图像像素的指针)可以在不利用RCRD的情况下,以光栅图案的形式前进通过(子)帧缓冲区356。
利用图13所示的RCRD,恰好在显示图像像素之前重新估计观看者姿势可以包括从缓冲的图像中的不同位置拾取刚要向用户显示的图像像素,而不是从默认位置拾取图像像素。在给定限定的头部/眼睛运动的情况下,重定向的读取位置(即,不同的位置)的轨迹是读指针360周围的限定区域(例如,圆圈B)362内的闭集。该轨迹与光栅前进动量叠加,因为显示设备350仍在光栅输出图像。图13示出了通过连续扭曲/姿势重新估计,读指针轨道是轨迹与光栅前进的叠加。(子)帧缓冲区356的缓冲区高度364需要等于或大于限定区域362的直径,以防止读指针360延伸超出(子)帧缓冲区356的边界。较大的(子)帧缓冲区可能需要额外的处理时间和计算能力。
限定区域362的直径是显示设备350的渲染速率、渲染时的姿势预测精度和用户头部运动的最大速度的函数。因此,对于较快的渲染速率,限定区域362的直径减小,因为较快的渲染速率导致头部姿势在渲染时偏离姿势假设所经过的时间更少。因此,读指针可能需要的重定向程度可能较小(例如,重定向的读取位置将更接近原始读指针位置)。另外,为了在渲染时(例如,当渲染图像时)更准确地执行姿势预测,限定区域362的直径减小,因为所需的时间扭曲校正更小。因此,读指针可能需要的重定向可能较小(例如,重定向的读取位置将更接近原始读指针位置)。此外,对于较高的头部运动速度,限定区域362的直径增加,因为通过头部快速运动,对于给定时间间隔,头部姿势可以偏离地更多。因此,读指针可能需要的重定向较大(例如,重定向的读取位置将远离原始读指针位置)。
II.读指针与写指针位置
根据一些实施例,(子)帧缓冲区356还可以包括写指针。在不进行读指针重定向的情况下,读指针360可以紧跟在写指针之后,例如,两者都以光栅的形式前进通过在(子)帧缓冲区356。(子)帧缓冲区356可以包括用于在一个时间戳处渲染的内容的第一区域(例如,新数据区域),以及用于在先前时间戳处渲染的内容的第二区域(例如,旧数据区域)。图14示出了包括新数据区域368和旧数据区域370的(子)帧缓冲区356。利用RCRD,如果从(子)帧缓冲区356读取的读指针360紧跟在写入(子)帧缓冲区356的写指针366之后,则重定向的读取位置的轨迹(例如,如图13的限定区域362所示)可导致“区域交叉”,其中,读指针360横穿到旧数据区域370中,如图14所示。也就是说,读指针360可以读取旧数据区域370中的旧数据,但可能无法检索由写指针366写入(子)帧缓冲区356的新数据。
区域交叉可导致图像撕裂。例如,如果(子)帧缓冲区356中的图像像素包括向右移动的直的竖行的图示,并且读指针360由于RCRD在两个内容渲染之间移动(例如,新数据区域368中的第一内容渲染和旧数据370中的第二内容渲染),所显示的行不是直的,并且将已经撕裂了出现区域交叉的区域。可以通过使在写指针366后面的读指针360居中来防止图像撕裂,这样,读指针360的重定向位置的限定区域362处于新数据区域368中,如图15所示。者可通过在限定区域362的中心与将新数据区域368和旧数据区域370分开的边界639之间设置缓冲区超前距离372来完成。缓冲区超前距离372强制限定区域362完全留在新数据区域368中。
读指针360的重新定位实现了期望的输出图像像素取向(即,图像像素的取向精确,忽略内容准时性)。因此,将限定区域362定位在写指针366后面不会对PStW或姿态估计/光子预测延迟产生不利影响。
另一方面,缓冲区超前距离372可以增加与缓冲区超前距离372成比例的光子渲染延迟。光子渲染延迟是从场景渲染到光子输出之间的时间。通过完美的时间扭曲,光子可以具有零姿势估计/光子预测延迟,但是,光子渲染延迟只能通过减少从场景渲染到光子输出之间的时间来缩短。例如,对于每秒60帧(fps)的渲染速率,默认的光子渲染延迟可以是约16毫秒(ms)。1000行图像中的10行缓冲区超前(例如,缓冲区超前距离372)仅增加0.16ms光子渲染延迟。根据一些实施例,当外部控制342(例如,FPGA)直接访问GPU时,例如,如果不需要缓冲区发送时间(例如,如果没有写指针),则可以移除光子渲染延迟,从而消除由GPU334与外部控制342之间的传输时间而增加的光子渲染延迟。
III.外部抗混叠
抗混叠是在时间扭曲之后执行的视图相关操作,用于避免模糊伪像。利用CTW,可以恰好在产生光子之前由外部硬件执行抗混叠。利用直接访问GPU 334(或2个协调GPU)的外部控制342(例如,FPGA)可被用于在连续时间扭曲之后并在要显示的光子生成之前执行外部抗混叠。
2.缓冲区重新拖尾方法
RCRD CTW可能不适用于取决于像素深度(或到观看者的距离)的需要非均匀地移位图像像素的用户头部的平移。即使在观看者平移时,也可以使用不同的CTW方法(即缓冲区重新拖尾方法)来渲染图像。缓冲区重新拖尾是在读指针提取要显示的图像像素之前通过更新缓冲的图像像素来合并最新姿势估计/预测的概念。由于不同的图像像素可以以不同的量移位,因此缓冲区重新拖尾可适用于用户头部平移。图16示出了根据一个实施例的缓冲区重新拖尾CTW方法。利用最新姿势对图像缓冲区374执行缓冲区重新拖尾导致修改的图像缓冲区376。来自修改的图像缓冲区376的图像像素被显示在显示设备350的对应显示设备像素处。
图17示出了根据一个实施例的用于缓冲区重新拖尾CTW的系统架构。外部控制器342被设置在GPU 334与显示设备350之间。外部控制器342的姿势估计器/预测器模块354接收光学数据352和IMU数据344(来自一个或多个IMU 345)。外部控制器342从GPU 334接收压缩的图像数据336并对图像数据336进行解压缩。可以将解压缩的图像数据提供给外部控制器342的(子)帧缓冲区356。在将像素发送到显示设备350以变换为朝向观看者眼睛发射的光子358之前,外部缓冲处理器378基于姿势估计器/预测器354的输出387完成对从GPU 334接收的压缩的图像数据336的缓冲区重新拖尾。
根据各种实施例,每当要将新姿势被纳入所显示的图像中时,可以发生缓冲区重新拖尾,这是针对顺序显示器的每个像素的。即使仅对(子)帧缓冲区356的一部分执行重新拖尾,这也很是耗费计算的操作。
3.像素重定向方法
另一CTW方法可以是像素重定向方法,此方法是读指针重定向方法的逆操作。根据像素重定向方法,外部控制器确定针对给定图像像素激活哪个显示设备像素来代替显示设备350确定要提取的适当图像像素。换句话说,外部控制器确定需要在哪个显示设备像素处显示图像像素。因此,在像素重定向中,可以独立地重新定位每个图像像素。图18示出了像素重定向导致可能适用于用户头部旋转和/或(部分地)适用于头部平移的扭曲。
如图18所示,图像缓冲区380中的第一图像像素391最初注定在显示设备350的第一显示设备像素393处显示。即,第一显示设备像素393可被分配给第一图像像素391。然而,像素重定向方法可以确定应该在第二显示设备像素395处显示第一图像像素391,并且外部控制器可以将第一图像像素391发送到第二显示设备像素395。类似地,图像缓冲区380中的第二图像像素394最初注定在显示设备350的第三显示设备像素397处显示。也就是说,第二图像像素394可被分配给第三显示设备像素397。然而,像素重定向方法可以确定应该在第四显示设备像素399处显示第二图像像素394,并且外部控制器可以将第二图像像素394发送到第四显示设备像素399。对图像缓冲区380执行的像素重定向导致在显示设备350上显示最终的显示图像382。像素重定向可能需要特殊种类的显示设备350,该显示器350可以以任意顺序选择性地接通任意像素。可以使用特殊类型的OLED或类似的显示设备作为显示设备350。像素可以首先被重定向到第二图像缓冲区,然后可以将第二缓冲区发送到显示设备350。
图19示出了根据一个实施例的用于外部硬件像素重定向方法的系统架构。外部控制器342被设置在GPU 334与显示设备350之间。外部控制器342的姿势估计器/预测器模块354接收光学数据352和IMU数据344(来自一个或多个IMU 345)。外部控制器342可以从GPU334接收图像数据336并对图像数据336进行解压缩。可以将解压缩的图像数据提供给外部控制器342的(子)帧缓冲区356。姿势估计器/预测器354的输出387和(子)帧缓冲区356的输出389被提供给显示设备350,以被变换为朝向观看者眼睛发射的光子358。
4.写指针重定向方法
另一CTW方法(即写指针重定向(WCRD)方法)改变了将图像数据写入(子)帧缓冲区的方式。图20示出了WCRD方法,该方法可适用于用户头部的旋转和(部分)头部平移。可以独立地重新定位每个像素(例如,利用前向映射/分散操作)。例如,GPU 334的图像缓冲区333中的第一图像像素401最初注定于外部控制器342(例如,FPGA)的(子)帧缓冲区356中的第一图像像素403。然而,利用前向映射,第一图像像素401可被引导到(子)帧缓冲区356中的第二图像像素404。类似地,图像缓冲区333中的第二图像像素402最初注定于(子)帧缓冲区356中的第三图像像素405。然而,利用前向映射,第二图像像素402可被引导到(子)帧缓冲区356中的第四图像像素406。因此,可以在数据从GPU 334的帧缓冲区333传输到外部控制器342(例如,FPGA)的(子)帧缓冲区356期间扭曲图像。也就是说,在图像到达(子)帧缓冲区356之前对图像执行CTW。
图21示出了根据一个实施例的用于外部硬件WCRD CTW的系统架构。外部控制器342被设置在GPU 334与显示设备350之间。外部控制器342的姿势估计器/预测器模块354接收光学数据352和IMU数据344(来自一个或多个IMU 345)。由GPU 334(即,GPU 334的帧缓冲区333)传输的图像数据336和姿势估计器/预测器354的输出387在外部控制器342的写指针重定向模块386处被接收。对于每个输入的图像数据像素,图像像素基于当前姿势估计/预测和图像像素深度被重定向到以及写入(子)帧缓冲区356中的姿势一致位置。(子)帧缓冲区356的输出346、348是时间扭曲的图像数据,然后,该数据被发送到显示设备350以变换为朝向观看者眼睛发射的光子358。
根据各种实施例,写指针重定向模块386可以是1像素缓冲区,因为外部控制器342需要处理应该写入图像像素的位置。
图22示出了WCRD方法,其中,写指针366的写入位置的轨迹是前进通过(子)帧缓冲区356的限定区域(例如,圆圈B)388内的闭集。(子)帧缓冲区356的缓冲区高度392需要等于或大于限定区域388的直径。WCRD方法需要限定区域388的中心与读指针360之间有缓冲区超前距离390。根据各种实施例,缓冲区超前距离390可以是显示设备的帧速率、图像的分辨率和预期头部运动速度中的至少一者或多者的函数。
根据一些实施例,WCRD方法可能引入一些姿势估计/光子预测延迟,因为在产生光子之前,姿势估计/预测包括一定量的时间(与缓冲区超前距离成比例)。例如,对于60fps的显示时钟输出速率,1000行图像的10行缓冲可引入0.16ms的姿势估计/光子预测延迟。
5.写/读指针重定向方法
这里讨论的CTW方法并不相互排斥。通过用RCRD方法补充WCRD方法,可以适用于观看者的旋转和平移。图23示出了利用写-读指针重定向(WRCRD)方法,写-读指针位置均分别在限定区域388和362内,但是与写指针366的限定区域388相比,读指针360的限定区域362要小得多。可以确定最小缓冲区高度392以容纳限定区域362和限定区域388,而不会引起从新数据区域368到旧数据区域370的交叉。在一些实施例中,用于WRCRD方法的最小缓冲区高度392可以是用于RCRD方法的缓冲区高度364的两倍。另外,可以确定缓冲区超前距离410以容纳限定区域362和限定区域388,而不会引起从新数据区域368到旧数据区域370的交叉。在一些实施例中,用于WRCRD方法的缓冲区超前距离410可以是用于WCRD的缓冲区超前距离390(例如,10行)或用于RCRD的缓冲区超前距离372(例如,10行)的两倍(例如,20行)。
根据一些实施例,限定区域388的大小与由于在渲染时纳入最新的姿势而需要的姿势调整程度成比例。限定区域362的大小也与由于像素数据写入(子)帧缓冲区时纳入最后姿势而需要的姿势调整程度成比例。如果在1000行图像中读指针到写指针的缓冲区距离是10行,则从写指针366将图像数据写入像素中的时间到读指针360从像素中读取图像数据的时间之间经过的时间接近从写指针366的姿势估计到渲染时的姿势估计之间经过的时间的1%。换句话说,读指针360越靠近写指针366,读指针360读取的数据越新(例如,由写指针366越近写入的数据),从而缩短从写入图像数据时到读取图像数据时之间的时间。因此,缓冲区大小和超前距离可能不需要加倍,而只需增加几个百分点即可。
WRCRD方法中的RCRD不适用于用户头部的平移。但是,稍早发生的WRCRD方法中的WCRD适用于用户头部的平移。因此,WRCRD可以实现极低(例如,几乎为零)延迟参数扭曲和极低延迟非参数扭曲(例如,对于60fps的显示时钟输出,以及1000行图像的10行缓冲约为0.16ms)。
根据一个实施例,用于外部硬件WRCRD CTW的系统架构在图24中示出。外部控制器342被设置在GPU 334与显示设备350之间。外部控制器342的姿势估计器/预测器模块354接收光学数据352和IMU数据344(来自一个或多个IMU 345)。由GPU 334(即,GPU 334的帧缓冲区333)传输的图像数据336和姿势估计器/预测器354的输出387在写指针重定向模块386处接收。对于输入图像数据,每个图像像素基于当前姿势估计/预测和图像像素的深度而被重定向到以及写入(子)帧缓冲区356中的姿势一致位置。另外,读指针重定向模块396执行RCRD CTW以基于姿势估计器/预测器354的输出387变换从写指针重定向模块386接收的图像数据。所生成的数据346、348是时间扭曲的图像数据,然后该数据被发送到显示设备350以被变换为朝向观看者眼睛发射的光子358。根据各种实施例,WRCRD方法可以在同一外部控制器342上实现,对单个(子)帧缓冲区356执行操作,并且还对流数据执行操作。写指针重定向模块386和/或读指针重定向模块396可以针对不同的显示选项独立地关断。因此,WRCRD架构可以根据需要用作WCRD或RCRD架构。
III.双目时间扭曲
如本文所使用的,双目时间扭曲指示结合显示设备使用的延迟帧时间扭曲,该显示设备包括用于左眼的左显示单元和用于右眼的右显示单元,其中,针对左显示单元和右显示单元分别执行延迟帧时间扭曲。图25示出了双目时间扭曲,其中,一旦在时间t1 3003处在GPU 3002上渲染3D内容,并且在时间t2 3007之前从姿势估计器3006接收到最新姿势输入3004,则在时间t2 3007处针对左帧3008和右帧3010同时或几乎同时地执行时间扭曲。例如,在由同一外部控制器执行两时间扭曲的实施例中,然后可以依次(例如,几乎同时地)执行用于左帧的时间扭曲和用于右帧的时间扭曲。
变换的图像3014和3016(即,被执行时间扭曲的图像)分别被发送到显示设备350的左显示单元3018和右显示单元3020。光子在左显示单元3018和右显示单元3020处生成,并朝向观看者的相应的眼睛发射,从而同时(例如,在时间t3 3015处)在左显示单元3018和右显示单元3020上显示图像。也就是说,在双目时间扭曲的一个实施例中,同一最新姿势3004被用于针对左显示单元3018和右显示单元3020,对同一渲染帧执行时间扭曲。
在另一实施例中,交错双目时间扭曲,其中,针对左显示单元3018和右显示单元3020,使用不同的最新姿势执行时间扭曲。可以以各种方式执行交错时间扭曲,如图26至图29所示。图26至图29所示的交错双目时间扭曲能够呈现有关在显示设备350上显示的图像的最新姿势更新信息。旧帧(即,先前显示的帧或从GPU接收的帧)可被用于时间扭曲的内插。利用交错双目时间扭曲,最新姿势可纳入显示的图像中并缩短光子运动延迟。也就是说,一只眼睛借助的纳入扭曲的姿势观看图像比另一只眼睛借助的姿势新,而不是使用“较旧的”最新姿势同时更新这两个姿势。
图26示出了根据一个实施例的另一交错双目时间扭曲。在时间t1 3071处使用同一GPU 3070分别生成由左显示单元3018和右显示单元3020使用的左右渲染视角。在时间t23073处,时间扭曲左帧模块3072使用从姿势估计器3006接收的第一最新姿势3074对渲染的左帧执行第一时间扭曲。时间扭曲左帧模块3072的输出被传输到左显示单元3018。左显示单元3018将接收到的数据变换为光子并朝向观看者的左眼发射光子,从而在时间t4 3079处在左显示单元3018上显示图像。
在时间t3 3077(例如,在执行第一时间扭曲的t2 3073之后的时间)处,时间扭曲右帧模块3078使用从姿势估计器3006接收的第二最新姿势3080对渲染的右帧执行第二时间扭曲。时间扭曲右帧模块3078的输出被传输到右显示单元3020。右显示单元3020将接收到的数据变换为光子并朝向观看者的右眼发射光子,从而在时间t5 3081处在右显示单元3020上显示图像。右显示单元3020显示图像的时间晚于左显示单元3018显示图像的时间。
图27示出了根据一个实施例的另一种交错双目时间扭曲。针对左显示单元3018和右显示单元3020使用同一GPU 3050生成渲染帧。在不同的时间渲染左帧和右帧(即,在交错的时间渲染左帧和右帧)。如图所示,左帧可以在时间t1 3051处渲染,右帧可以在比时间t13051晚的时间t2 3052处渲染。时间扭曲左帧模块3058使用在时间t3 3053之前从姿势估计器3006接收的第一最新姿势3054对渲染的左帧执行第一时间扭曲。时间扭曲左帧模块3058的输出被传输到左显示单元3018。左显示单元3018将接收到的数据变换为光子并朝向观看者的左眼发射光子,从而在时间t5 3061处在左显示单元3018上显示图像。
在时间t4 3059(例如,在执行第一时间扭曲的t3 3053之后的时间)处,时间扭曲右帧模块3060使用在时间t4 3059之前从姿势估计器3006接收的第二最新姿势3062对渲染的右帧执行第二时间扭曲。时间扭曲右帧模块3060的输出被传输到右显示单元3020。右显示单元3020将接收到的数据变换为光子并向观看者的右眼发射光子,从而在时间t6 3063处在右显示单元3020上显示图像。右显示单元3020显示图像的时间晚于左显示单元3018显示图像晚的时间。
图28示出了根据一个实施例的交错双目时间扭曲。根据图28所示的实施例,两个单独的GPU 3022和3024可被用于针对左显示单元3018和右显示单元3020生成渲染视图。第一GPU 3022可在时间t1 3025处渲染左视图。第二GPU 3024可在比时间t1 3025晚的时间t23026处渲染右视图。在时间t3 3027处,时间扭曲左帧模块3030使用在时间t3 3027之前从姿势估计器3006接收的第一最新姿势3004对渲染的左视图执行第一时间扭曲。时间扭曲左帧模块3030的输出被传输到左显示单元3018。左显示单元3018将接收到的数据变换为光子并朝向观看者的左眼发射光子。左显示单元3018在时间t5 3033处显示图像。
在时间t4 3031(例如,比执行第一时间扭曲时更晚的时间)处,时间扭曲右帧模块3032使用在时间t4 3031(例如,比时间扭曲左帧模块3030获得第一最新姿势3004时晚的时间)之前从姿势估计器3006接收的第二最新姿势对渲染的右视图执行第二时间扭曲。时间扭曲右帧模块3032的输出被传输到右显示单元3020。右显示单元3020将接收到的数据变换为光子并朝向观看者的右眼发射光子。右显示单元3020在时间t6 3035处显示图像(即,比在左显示单元3018在时间t5 3033处显示图像更晚的时间)。显示在右显示单元3020上的图像可以更新,因为它是在考虑到更新姿势(即,第二最新姿势3034)的情况下生成的。
图29示出了根据一个实施例的另一类型的双目时间扭曲。可以针对左显示单元3018和右显示单元3020使用同一GPU 3036生成渲染视图。如图29所示,GPU 3036在时间t13037处生成左帧的渲染视图。在时间t3 3041处生成左帧的时间扭曲图像。左显示单元3018的显示更新速率可以足够慢以使得GPU 3036可以在生成左帧的时间扭曲图像(例如,在左显示单元3018上显示左帧的时间扭曲图像)之后执行第二渲染(即,针对右显示单元3020的渲染)。
在时间t2 3038处,时间扭曲左帧模块3040使用从IMU接收的第一最新姿势3039对渲染的左帧执行第一时间扭曲。时间扭曲左帧模块3040的输出被传输到左显示单元3018。左显示单元3018将接收到的数据变换为光子并朝向观看者的左眼发射光子,从而在时间t33041处在左显示单元3018上显示图像。在左显示单元3018上显示图像之后,GPU 3036可以在时间t4 3042处通过获取的数据(例如,从图像和IMU接收的用于生成有关右眼的姿势估计的数据,以及根据姿势估计生成的3D内容)渲染右帧。在时间t5 3043(例如,在时间t33041处在左显示单元3018上显示时间扭曲图像之后)处,时间扭曲右模块3055使用从IMU接收的第二最新姿势3044对渲染的右帧执行第二时间扭曲。时间扭曲右帧模块3046的输出被传输到右显示单元3020。右显示单元3020将接收到的数据变换为光子并朝向观看者的右眼发射光子,从而在时间t6 3047处在右显示单元3020上显示图像。右显示单元3020在从图像和IMU接收数据的“x”几秒之后显示图像,其中,x是小于平滑观看所需的刷新率的数学关系。因此,两个显示单元(即,左显示单元3018和右显示单元3020)完全彼此偏移地更新,其中,每个更新都在另一更新之后(例如,2x<平滑观看所需的刷新率)。
本领域普通技术人员将理解,左显示单元和右显示单元显示图像的顺序可以与上面结合图26至图29所讨论的顺序不同。可以修改系统,使得左显示单元3018显示图像的时间晚于右显示单元3020显示图像晚的时间。
还应理解,本文描述的示例和实施例仅用于说明目的,并且对于本领域技术人员而言,建议对其做出各种修改或改变,并且这些修改或改变包括在本申请的精神和范围以及所附权利要求的范围内。
还应理解,本文描述的示例和实施例仅用于说明目的,并且本领域技术人员可以建议轻微地对其进行各种修改或改变,并且这些修改或改变包括在本申请的精神和范围内以及所附权利要求的范围内。

Claims (18)

1.一种用于基于观看者的更新的位置来变换图像帧的方法,所述方法包括:
由计算设备从图形处理单元获取与第一视角对应的第一图像帧,所述第一视角与所述观看者的第一位置相关联;
接收与所述观看者的第二位置相关联的数据;
由所述计算设备逐像素地连续变换所述第一图像帧的至少一部分,以生成与第二视角对应的第二图像帧,所述第二视角与所述观看者的第二位置相关联;其中,所述连续变换包括:
通过在每个进程处变换所述第一图像帧的不同像素,将所述第一图像帧逐渐变换为所述第二图像帧;以及
由所述计算设备将所述第二图像帧传输到近眼显示设备的显示模块以在所述近眼显示设备上显示;
其中,所述第一图像帧是从所述图形处理单元流传输的图像的子部分;其中,所述第一图像帧被连续变换,直到所述第二图像帧被转换为光子。
2.根据权利要求1所述的方法,其中,所述第二位置与从所述第一位置围绕所述近眼显示设备的光学中心的旋转对应。
3.根据权利要求1所述的方法,其中,所述第二位置与从所述第一位置的水平平移对应。
4.根据权利要求1所述的方法,其中,所述计算设备包括帧缓冲区,所述帧缓冲区用于从所述图形处理单元接收所述第一图像帧,其中,逐像素地连续变换所述第一图像帧的所述至少一部分进一步包括:
由所述计算设备将所述近眼显示设备的显示设备像素从所述帧缓冲区中的默认图像像素重定向到所述帧缓冲区中的不同图像像素。
5.根据权利要求1所述的方法,其中,所述计算设备包括帧缓冲区,所述帧缓冲区用于从所述图形处理单元接收所述第一图像帧,其中,逐像素地连续变换所述第一图像帧的所述至少一部分进一步包括:
由所述计算设备将所述帧缓冲区中的图像像素发送到所述近眼显示设备的与分配给所述图像像素的默认显示设备像素不同的显示设备像素。
6.根据权利要求1所述的方法,其中,所述计算设备包括帧缓冲区,所述帧缓冲区用于从所述图形处理单元接收所述第一图像帧,其中,连续变换进一步包括:
在从所述图形处理单元的帧缓冲区接收所述第一图像帧的同时,变换所述第一图像帧的所述至少一部分,所述变换包括:
由所述计算设备从所述图形处理单元接收位于所述计算设备的所述帧缓冲区中的第一图像像素处的所述图形处理单元的所述帧缓冲区中的第一图像像素,其中,所述图形处理单元的所述帧缓冲区中的所述第一图像像素初始被分配给所述计算设备的所述帧缓冲区中的第二图像像素。
7.根据权利要求1所述的方法,其中,与所述观看者的所述第二位置相关联的所述数据包括光学数据和来自惯性测量单元的数据,其中,所述计算设备包括:姿势估计器模块,所述姿势估计器模块用于接收所述光学数据和来自所述惯性测量单元的所述数据;以及帧缓冲区,所述帧缓冲区用于从所述图形处理单元接收所述第一图像帧。
8.根据权利要求1所述的方法,其中,所述计算设备包括:帧缓冲区,所述帧缓冲区用于从所述图形处理单元接收所述第一图像帧;以及外部缓冲处理器,所述外部缓冲处理器用于通过在将所述第二图像帧传输到所述近眼显示设备之前移位存储在所述帧缓冲区中的缓冲的图像像素,将所述第一图像帧的所述至少一部分变换为所述第二图像帧。
9.根据权利要求8所述的方法,其中,所述帧缓冲区中的第一图像像素被移位第一量,所述帧缓冲区中的第二图像像素被移位与所述第一量不同的第二量。
10.一种用于基于观看者的更新的位置来变换图像帧的方法,所述方法包括:
由图形处理单元在第一时间处针对双目近眼显示设备的左显示器渲染左图像帧,其中,所述左图像帧与第一视角对应,所述第一视角与所述观看者的第一位置相关联;
由计算设备从所述图形处理单元针对所述双目近眼显示设备的右显示器渲染右图像帧,其中,所述右图像帧与所述第一视角对应,所述第一视角与所述观看者的所述第一位置相关联;
由所述图形处理单元在比所述第一时间晚的第二时间处接收与所述观看者的第二位置相关联的数据,其中,所述数据包括基于所述观看者的所述第二位置的第一姿势估计;
由所述图形处理单元使用基于所述观看者的所述第二位置的所述第一姿势估计来变换所述左图像帧的至少一部分,以针对所述双目近眼显示设备的所述左显示器生成更新的左图像帧,其中,所述更新的左图像帧与第二视角对应,所述第二视角与所述观看者的所述第二位置相关联;
由所述图形处理单元在比所述第二时间晚的第三时间处将所述更新的左图像帧传输到所述双目近眼显示设备的所述左显示器以在所述左显示器上显示;
由所述图形处理单元在比所述第二时间晚的第四时间处接收与所述观看者的第三位置相关联的数据,其中,所述数据包括基于所述观看者的所述第三位置的第二姿势估计;
由所述图形处理单元使用基于所述观看者的所述第三位置的所述第二姿势估计来变换所述右图像帧的至少一部分,以针对所述双目近眼显示设备的所述右显示器生成更新的右图像帧,其中,所述更新的右图像帧与第三视角对应,所述第三视角与所述观看者的所述第三位置相关联;以及
由所述图形处理单元在比所述第四时间晚的第五时间处将所述更新的右图像帧传输到所述双目近眼显示设备的所述右显示器以在所述右显示器上显示。
11.根据权利要求10所述的方法,其中,所述右图像帧由所述图形处理单元在所述第一时间处渲染。
12.根据权利要求10所述的方法,其中,所述右图像帧由所述图形处理单元在比所述第一时间晚且比所述第四时间早的第六时间处渲染。
13.根据权利要求10所述的方法,其中,所渲染的右图像帧与在所述第一时间处所渲染的左图像帧相同。
14.一种基于观看者的更新的位置来变换图像帧的系统,包括:
图形处理单元,被配置为:
生成与第一视角对应的第一图像帧,所述第一视角与观看者的第一位置相关联;
控制器,被配置为:
接收与所述观看者的第二位置相关的数据,
逐像素地连续变换所述第一图像帧的至少一部分,以生成与第二视角对应的第二图像帧,所述第二视角与所述观看者的所述第二位置相关联,其中,所述连续变换包括:
通过在每个进程处变换所述第一图像帧的不同像素,将所述第一图像帧逐渐变换为所述第二图像帧;以及
流传输所述第二图像帧;
其中,所述第一图像帧是从所述图形处理单元流传输的图像的子部分;
其中,所述第一图像帧被连续变换,直到所述第二图像帧被转换为光子;以及
近眼显示设备,被配置为:
接收由所述控制器流传输的所述第二图像帧,
将所述第二图像帧转换为光子,以及
朝着所述观看者发射所述光子。
15.根据权利要求14所述的系统,其中,所述近眼显示设备是顺序扫描显示设备。
16.根据权利要求14所述的系统,其中,所述控制器被结合在所述近眼显示设备中。
17.根据权利要求14所述的系统,其中,所述控制器耦合到所述图形处理单元和所述近眼显示设备并设置在所述图形处理单元与所述近眼显示设备之间。
18.根据权利要求14所述的系统,其中,所述控制器进一步包括:
帧缓冲区,用于从所述图形处理单元接收所述第一图像帧;以及
外部缓冲处理器,用于通过在将所述第二图像帧流传输到所述近眼显示设备之前移位存储在所述帧缓冲区中的缓冲的图像像素,将所述第一图像帧的所述至少一部分变换为所述第二图像帧。
CN201780065917.1A 2016-08-26 2017-08-25 用于虚拟及增强现实显示的连续时间扭曲及双目时间扭曲系统和方法 Active CN109863538B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311364932.XA CN117453038A (zh) 2016-08-26 2017-08-25 用于虚拟及增强现实显示的连续时间扭曲及双目时间扭曲系统和方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662380302P 2016-08-26 2016-08-26
US62/380,302 2016-08-26
PCT/US2017/048656 WO2018039586A1 (en) 2016-08-26 2017-08-25 Continuous time warp and binocular time warp for virtual and augmented reality display systems and methods

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311364932.XA Division CN117453038A (zh) 2016-08-26 2017-08-25 用于虚拟及增强现实显示的连续时间扭曲及双目时间扭曲系统和方法

Publications (2)

Publication Number Publication Date
CN109863538A CN109863538A (zh) 2019-06-07
CN109863538B true CN109863538B (zh) 2023-10-27

Family

ID=61243183

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201780065917.1A Active CN109863538B (zh) 2016-08-26 2017-08-25 用于虚拟及增强现实显示的连续时间扭曲及双目时间扭曲系统和方法
CN202311364932.XA Pending CN117453038A (zh) 2016-08-26 2017-08-25 用于虚拟及增强现实显示的连续时间扭曲及双目时间扭曲系统和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202311364932.XA Pending CN117453038A (zh) 2016-08-26 2017-08-25 用于虚拟及增强现实显示的连续时间扭曲及双目时间扭曲系统和方法

Country Status (9)

Country Link
US (4) US10699472B2 (zh)
EP (1) EP3504686A4 (zh)
JP (4) JP6898430B2 (zh)
KR (2) KR102210993B1 (zh)
CN (2) CN109863538B (zh)
AU (3) AU2017314940B2 (zh)
CA (1) CA3034668C (zh)
IL (4) IL301071B2 (zh)
WO (1) WO2018039586A1 (zh)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10962780B2 (en) * 2015-10-26 2021-03-30 Microsoft Technology Licensing, Llc Remote rendering for virtual images
US10943409B2 (en) * 2016-04-18 2021-03-09 Sony Corporation Information processing apparatus, information processing method, and program for correcting display information drawn in a plurality of buffers
CN109863538B (zh) 2016-08-26 2023-10-27 奇跃公司 用于虚拟及增强现实显示的连续时间扭曲及双目时间扭曲系统和方法
US10379611B2 (en) * 2016-09-16 2019-08-13 Intel Corporation Virtual reality/augmented reality apparatus and method
US10462336B2 (en) * 2017-03-15 2019-10-29 Microsoft Licensing Technology, LLC Low latency tearing without user perception
US10580200B2 (en) * 2017-04-07 2020-03-03 Intel Corporation Virtual reality apparatus and method including prioritized pixel shader operations, alternate eye rendering, and/or augmented timewarp
US10444098B2 (en) 2017-04-10 2019-10-15 Fanuc Corporation Torque sensor and robot
US10896657B2 (en) * 2017-04-17 2021-01-19 Intel Corporation Graphics with adaptive temporal adjustments
WO2018203324A1 (en) * 2017-05-01 2018-11-08 Infinity Augmented Reality Israel Ltd. Optical engine time warp for augmented or mixed reality environment
US10338400B2 (en) 2017-07-03 2019-07-02 Holovisions LLC Augmented reality eyewear with VAPE or wear technology
US10859834B2 (en) 2017-07-03 2020-12-08 Holovisions Space-efficient optical structures for wide field-of-view augmented reality (AR) eyewear
US10714050B2 (en) * 2018-03-21 2020-07-14 Daqri, Llc Reducing latency in augmented reality (AR) displays
CN108632598A (zh) * 2018-05-25 2018-10-09 小派科技(上海)有限责任公司 降低vr设备mtp延时的方法及装置
TWI794512B (zh) * 2018-06-15 2023-03-01 美商亞沃公司 用於擴增實境之系統及設備及用於使用一即時顯示器實現拍攝之方法
CN108921951B (zh) * 2018-07-02 2023-06-20 京东方科技集团股份有限公司 虚拟现实图像显示方法及其装置、虚拟现实设备
WO2020023383A1 (en) * 2018-07-23 2020-01-30 Magic Leap, Inc. Mixed reality system with virtual content warping and method of generating virtual content using same
CN109242944B (zh) * 2018-09-28 2023-08-11 京东方科技集团股份有限公司 一种显示方法和装置
WO2020071029A1 (ja) 2018-10-04 2020-04-09 ソニー株式会社 情報処理装置、情報処理方法、及び記録媒体
US11200636B2 (en) * 2018-11-30 2021-12-14 Mediatek Inc. Method and apparatus for generating a series of frames with aid of synthesizer to offload graphics processing unit rendering in electronic device
EP3902613A4 (en) * 2018-12-28 2023-02-22 Magic Leap, Inc. LOW MOTION-TO-PHOTON LATENCY ARCHITECTURE FOR AUGMENTED REALITY AND VIRTUAL REALITY DISPLAY SYSTEMS
JP7457714B2 (ja) 2018-12-28 2024-03-28 マジック リープ, インコーポレイテッド 機械的に作動される画像プロジェクタを伴う可変ピクセル密度ディスプレイシステム
US11022322B2 (en) * 2019-01-04 2021-06-01 Whirlpool Corporation Cooking appliance with an imaging device
US10853927B2 (en) * 2019-03-19 2020-12-01 Apple Inc. Image fusion architecture
CN110221432B (zh) 2019-03-29 2021-07-16 华为技术有限公司 头戴式显示器的图像显示方法及设备
US10853928B2 (en) 2019-03-29 2020-12-01 Apple Inc. Image fusion processing module
WO2020213088A1 (ja) * 2019-04-17 2020-10-22 楽天株式会社 表示制御装置、表示制御方法、プログラム、ならびに、非一時的なコンピュータ読取可能な情報記録媒体
CN112752119B (zh) * 2019-10-31 2023-12-01 中兴通讯股份有限公司 一种时延误差校正方法、终端设备、服务器及存储介质
CN110969706B (zh) * 2019-12-02 2023-10-10 Oppo广东移动通信有限公司 增强现实设备及其图像处理方法、系统以及存储介质
US20210192681A1 (en) * 2019-12-18 2021-06-24 Ati Technologies Ulc Frame reprojection for virtual reality and augmented reality
US11973926B2 (en) 2020-03-03 2024-04-30 Google Llc Multiview autostereoscopic display using lenticular-based steerable backlighting
US11487118B2 (en) * 2020-05-13 2022-11-01 Texas Instruments Incorporated Rendered optical super resolution display
CN115668100B (zh) * 2020-05-21 2023-10-27 奇跃公司 使用眼睛跟踪对激光束扫描显示器进行扭曲
US11321859B2 (en) * 2020-06-22 2022-05-03 Toyota Research Institute, Inc. Pixel-wise residual pose estimation for monocular depth estimation
US11698530B2 (en) * 2020-09-21 2023-07-11 Meta Platforms Technologies, Llc Switch leakage compensation for global illumination
WO2022074791A1 (ja) * 2020-10-08 2022-04-14 マクセル株式会社 3次元拡張現実処理システム、3次元拡張現実処理方法、及び3次元拡張現実処理システムのユーザインターフェース装置
CN112509025B (zh) * 2020-12-03 2022-11-11 山东省科学院海洋仪器仪表研究所 一种基于三维欧氏距离的岩石空间结构距离图的计算方法
KR102404884B1 (ko) * 2020-12-29 2022-06-07 이규인 상황기반 페어링 장치 및 그 방법
US20220327784A1 (en) * 2021-04-09 2022-10-13 Varjo Technologies Oy Image reprojection method, and an imaging system
US20220375026A1 (en) * 2021-05-18 2022-11-24 Snap Inc. Late warping to minimize latency of moving objects
EP4341742A1 (en) * 2021-05-18 2024-03-27 Snap Inc. Late warping to minimize latency of moving objects
KR20220156331A (ko) 2021-05-18 2022-11-25 삼성전자주식회사 이미지 지연을 보정하기 위한 전자 장치 및 방법
US11822713B2 (en) * 2021-06-11 2023-11-21 Rockwell Collins, Inc. Pose augmentation of head worn display video for latency reduction
US20220413433A1 (en) * 2021-06-28 2022-12-29 Meta Platforms Technologies, Llc Holographic Calling for Artificial Reality
CN113596569B (zh) * 2021-07-22 2023-03-24 歌尔科技有限公司 图像处理方法、装置和计算机可读存储介质
US20230171395A1 (en) * 2021-11-23 2023-06-01 Isabella H. Schwartz System and method for smart tv anywhere
US11694409B1 (en) 2021-12-08 2023-07-04 Google Llc Augmented reality using a split architecture
GB2614326A (en) * 2021-12-31 2023-07-05 Sony Interactive Entertainment Europe Ltd Apparatus and method for virtual reality
US20230237730A1 (en) * 2022-01-21 2023-07-27 Meta Platforms Technologies, Llc Memory structures to support changing view direction
US20240037698A1 (en) * 2022-07-27 2024-02-01 Rockwell Collins, Inc. Head-frame symbology isolation for head worn display (hwd)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101617531A (zh) * 2007-08-24 2009-12-30 索尼株式会社 图像处理装置、运动图像播放装置及其处理方法和程序
CN102047199A (zh) * 2008-04-16 2011-05-04 虚拟蛋白质有限责任公司 交互式虚拟现实图像生成系统
US8345052B1 (en) * 2007-11-08 2013-01-01 Nvidia Corporation Method and system for using a GPU frame buffer in a multi-GPU system as cache memory
CN103714559A (zh) * 2012-10-02 2014-04-09 辉达公司 用于提供动态显示刷新的系统、方法和计算机程序产品
CN104603673A (zh) * 2012-09-03 2015-05-06 Smi创新传感技术有限公司 头戴式系统以及使用头戴式系统计算和渲染数字图像流的方法
CN105393283A (zh) * 2013-06-28 2016-03-09 微软技术许可有限责任公司 增强现实体验的重投影oled显示
CN105404393A (zh) * 2015-06-30 2016-03-16 指点无限(美国)有限公司 低延迟虚拟现实显示系统

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5467104A (en) * 1992-10-22 1995-11-14 Board Of Regents Of The University Of Washington Virtual retinal display
US5523886A (en) * 1994-01-04 1996-06-04 Sega Of America, Inc. Stereoscopic/monoscopic video display system
US8624895B2 (en) * 2005-01-20 2014-01-07 Production Resource Group, Llc Controls for digital lighting
US8982110B2 (en) * 2005-03-01 2015-03-17 Eyesmatch Ltd Method for image transformation, augmented reality, and teleperence
KR101309176B1 (ko) * 2006-01-18 2013-09-23 삼성전자주식회사 증강 현실 장치 및 방법
KR100735676B1 (ko) 2006-02-24 2007-07-06 조현덕 가상현실 모델하우스 운영시스템 및 운영방법
JP4857196B2 (ja) 2007-05-31 2012-01-18 キヤノン株式会社 頭部装着型表示装置、及びその制御方法
US9171221B2 (en) 2010-07-18 2015-10-27 Spatial Cam Llc Camera to track an object
KR101691565B1 (ko) * 2010-07-19 2016-12-30 주식회사 비즈모델라인 증강현실을 이용한 가상객체 표시 방법
JP5652037B2 (ja) 2010-07-30 2015-01-14 富士通株式会社 模擬映像生成装置、方法、プログラム
KR101729524B1 (ko) 2010-10-28 2017-04-24 엘지전자 주식회사 영상표시장치 및 그 동작방법
JP2013062731A (ja) * 2011-09-14 2013-04-04 Namco Bandai Games Inc プログラム、情報記憶媒体及び画像生成システム
JP5456820B2 (ja) 2012-03-28 2014-04-02 株式会社スクウェア・エニックス ゲーム装置
KR102271726B1 (ko) * 2013-03-15 2021-06-30 매직 립, 인코포레이티드 디스플레이 시스템 및 방법
US9565414B2 (en) 2013-05-24 2017-02-07 Disney Enterprises, Inc. Efficient stereo to multiview rendering using interleaved rendering
JP6225546B2 (ja) 2013-08-02 2017-11-08 セイコーエプソン株式会社 表示装置、頭部装着型表示装置、表示システムおよび表示装置の制御方法
JP6353214B2 (ja) * 2013-11-11 2018-07-04 株式会社ソニー・インタラクティブエンタテインメント 画像生成装置および画像生成方法
KR101553273B1 (ko) * 2013-12-20 2015-09-15 배재대학교 산학협력단 증강현실 서비스를 제공하는 방법 및 장치
US9551873B2 (en) * 2014-05-30 2017-01-24 Sony Interactive Entertainment America Llc Head mounted device (HMD) system having interface with mobile computing device for rendering virtual reality content
GB2528699B (en) * 2014-07-29 2017-05-03 Sony Computer Entertainment Europe Ltd Image processing
US20160238852A1 (en) * 2015-02-13 2016-08-18 Castar, Inc. Head mounted display performing post render processing
CN109863538B (zh) 2016-08-26 2023-10-27 奇跃公司 用于虚拟及增强现实显示的连续时间扭曲及双目时间扭曲系统和方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101617531A (zh) * 2007-08-24 2009-12-30 索尼株式会社 图像处理装置、运动图像播放装置及其处理方法和程序
US8345052B1 (en) * 2007-11-08 2013-01-01 Nvidia Corporation Method and system for using a GPU frame buffer in a multi-GPU system as cache memory
CN102047199A (zh) * 2008-04-16 2011-05-04 虚拟蛋白质有限责任公司 交互式虚拟现实图像生成系统
CN104603673A (zh) * 2012-09-03 2015-05-06 Smi创新传感技术有限公司 头戴式系统以及使用头戴式系统计算和渲染数字图像流的方法
CN103714559A (zh) * 2012-10-02 2014-04-09 辉达公司 用于提供动态显示刷新的系统、方法和计算机程序产品
CN105393283A (zh) * 2013-06-28 2016-03-09 微软技术许可有限责任公司 增强现实体验的重投影oled显示
CN105404393A (zh) * 2015-06-30 2016-03-16 指点无限(美国)有限公司 低延迟虚拟现实显示系统

Also Published As

Publication number Publication date
IL290382A (en) 2022-04-01
JP2021103537A (ja) 2021-07-15
US11127195B2 (en) 2021-09-21
AU2017314940A1 (en) 2019-03-14
JP2019532395A (ja) 2019-11-07
JP2024059761A (ja) 2024-05-01
US20190019328A1 (en) 2019-01-17
WO2018039586A1 (en) 2018-03-01
US10699472B2 (en) 2020-06-30
AU2021286370A1 (en) 2022-01-20
US20200126292A1 (en) 2020-04-23
JP7386825B2 (ja) 2023-11-27
IL264799B (en) 2021-07-29
US20180061121A1 (en) 2018-03-01
NZ751028A (en) 2023-10-27
IL290382B1 (en) 2023-04-01
KR102210993B1 (ko) 2021-02-02
US11200730B2 (en) 2021-12-14
KR20190085509A (ko) 2019-07-18
EP3504686A4 (en) 2019-09-25
CA3034668A1 (en) 2018-03-01
AU2017314940B2 (en) 2021-09-23
IL301071B1 (en) 2023-12-01
EP3504686A1 (en) 2019-07-03
KR20210012071A (ko) 2021-02-02
AU2023270240A1 (en) 2023-12-07
AU2021286370B2 (en) 2023-08-24
JP2023017046A (ja) 2023-02-02
IL290382B2 (en) 2023-08-01
JP7442608B2 (ja) 2024-03-04
US10553017B2 (en) 2020-02-04
KR102424864B1 (ko) 2022-07-22
IL284834A (en) 2021-08-31
CA3034668C (en) 2024-02-27
IL301071A (en) 2023-05-01
IL284834B (en) 2022-03-01
IL301071B2 (en) 2024-04-01
JP6898430B2 (ja) 2021-07-07
CN117453038A (zh) 2024-01-26
CN109863538A (zh) 2019-06-07
US20200279432A1 (en) 2020-09-03

Similar Documents

Publication Publication Date Title
CN109863538B (zh) 用于虚拟及增强现实显示的连续时间扭曲及双目时间扭曲系统和方法
CN108351691B (zh) 用于虚拟图像的远程渲染
US10089790B2 (en) Predictive virtual reality display system with post rendering correction
KR20160149252A (ko) 시선 위치에 기초한 안정 평면 결정
JP2012079291A (ja) プログラム、情報記憶媒体及び画像生成システム
US20210368152A1 (en) Information processing apparatus, information processing method, and program
US11749141B2 (en) Information processing apparatus, information processing method, and recording medium
WO2021040010A1 (ja) 情報処理装置、制御方法
NZ751028B2 (en) Continuous time warp and binocular time warp for virtual and augmented reality display systems and methods
NZ791691A (en) Continuous time warp and binocular time warp for virtual and augmented reality display systems and methods

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant