CN118115357A - 虚拟、增强和混合现实系统和方法 - Google Patents

虚拟、增强和混合现实系统和方法 Download PDF

Info

Publication number
CN118115357A
CN118115357A CN202410252612.3A CN202410252612A CN118115357A CN 118115357 A CN118115357 A CN 118115357A CN 202410252612 A CN202410252612 A CN 202410252612A CN 118115357 A CN118115357 A CN 118115357A
Authority
CN
China
Prior art keywords
image data
display
depth plane
virtual
image
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.)
Pending
Application number
CN202410252612.3A
Other languages
English (en)
Inventor
J·F·罗德里格兹
R·M·佩雷兹
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
Publication of CN118115357A publication Critical patent/CN118115357A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3212Monitoring battery levels, e.g. power saving mode being initiated when battery voltage goes below a certain level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3231Monitoring the presence, absence or movement of users
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3265Power saving in display device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/44Morphing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • 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/04Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Optics & Photonics (AREA)
  • Processing Or Creating Images (AREA)
  • Geometry (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Liquid Crystal (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • User Interface Of Digital Computer (AREA)
  • Power Sources (AREA)
  • Transforming Electric Information Into Light Information (AREA)

Abstract

本公开涉及虚拟、增强和混合现实系统和方法。一种虚拟、增强或混合现实显示系统包括显示器,所述显示器被配置为显示虚拟、增强或混合现实图像数据,该显示器包括将光学畸变或像差引入到图像数据的一个或多个光学部件。该系统还包括显示控制器,所述显示控制器被配置为将图像数据提供给显示器。该显示控制器包括用于存储光学畸变校正信息的存储器,以及使用光学畸变校正信息至少部分地校正图像数据的光学畸变或像差的一个或多个处理元件。

Description

虚拟、增强和混合现实系统和方法
本申请是申请日为2017年8月22日、PCT国际申请号为PCT/US2017/048069、中国国家阶段申请号为201780065160.6、发明名称为“虚拟、增强和混合现实系统和方法”的申请的分案申请。
相关申请的交叉引用
本申请要求2016年8月22日提交的代理案卷号为ML.30085.00、名称为“MIXEDREALITY SYSTEMS AND METHODS(混合现实系统和方法)”、序列号为62/377,829的美国临时申请;2016年8月22日提交的代理案卷号为ML.30086.00、名称为“MIXED REALITY SYSTEMSAND METHODS(混合现实系统和方法)”、序列号为62/377,804的美国临时申请;以及2017年2月22日提交的代理案卷号为MLk-30093、名称为“VIRTUAL,AUGMENTED,AND MIXED REALITYSYSTEMS AND METHODS(虚拟、增强和混合现实系统和方法)”、序列号为62/462,279的美国临时申请的优先权。本申请涉及2014年11月27日提交的代理案卷号为ML.20011.00、名称为“VIRTUAL AND AUGMENTED REALITY SYSTEMS AND METHODS(虚拟和增强现实系统和方法)”、序列号为14/555,585的美国实用新型专利申请。上述专利申请的全部内容通过引用特此明确地全部并入本文中,就像完整阐述一样。上述并入的专利申请中描述了虚拟、增强和混合现实系统和方法的各种实施例。本文描述了虚拟、增强和混合现实系统的进一步实施例。
版权注意事项
本专利文件的一部分公开内容包含受版权保护的材料。版权所有者不反对任何人对专利和商标局专利文件或记录中出现的专利文件或专利公开内容进行传真复制,但在其它方面保留所有版权。
技术领域
本公开涉及虚拟现实、增强现实和混合现实成像、可视化及显示系统和方法。
背景技术
现代计算和显示技术促进了虚拟现实(“VR”)、增强现实(“AR”)和混合现实(“MR”)系统的开发。VR系统为用户创建用于体验的模拟环境。这可通过使用头戴式显示器向用户呈现计算机生成的图像来实现。该图像创建使用户沉浸在模拟环境中的感官体验。VR场景通常涉及仅呈现计算机生成的图像,而不包括实际的真实世界图像。
AR系统通常用模拟元素补充真实世界环境。例如,AR系统可以经由头戴式显示器向用户提供周围真实世界环境的视图。然而,计算机生成的图像也可以被呈现在显示器上,以增强真实世界环境。该计算机生成的图像可以包括与真实世界环境在情境上相关的元素。这些元素可以包括模拟的文本、图像、对象等。MR系统还将模拟的对象引入到真实世界环境中,但是这些对象的交互程度通常大于AR系统中的交互程度。模拟的元素经常可以实时交互。
图1示出了示例性AR/MR场景1,其中用户看到以人、树、位于背景中的建筑物以及混凝土平台20为特征的真实世界公园设置6。除了这些项目之外,还向用户呈现计算机生成的图像。该计算机生成的图像例如可以包括站在真实世界平台20上的机器人雕像10,以及飞过的卡通式化身角色2,该化身角色看起来是大黄蜂的化身,即使这些元素2、10在真实世界中实际上不存在。
各种光学系统在不同的深度处产生用于显示VR、AR和MR场景的图像。有些这样的光学系统在2014年11月27日提交的序列号为14/555,585(代理案卷号ML.20011.00)的美国实用新型专利申请中进行了描述,该专利申请的内容之前已经通过引用并入本文中。其它这样的用于显示MR体验的光学系统在序列号为14/738,877(代理案卷号ML.20019.00)的美国实用新型专利申请中进行了描述,该专利申请的全部内容通过引用特此明确地全部并入本文中,就像完整阐述一样。
由于人类视觉感知系统复杂,因此产生便于除其它虚拟或真实世界图像元素之外还舒适、自然、丰富地呈现虚拟图像元素的VR/AR/MR技术极具挑战性。需要改进的技术以在这样的系统中处理图像数据,包括例如,用于提供控制数据以控制如何显示图像数据的技术;用于校正图像数据中的光学畸变的技术;用于显示和混合来自许多深度平面的图像数据的技术,以及用于基于用户的头部姿势使图像数据变形(warp)的技术。VR/AR/MR技术还具有尺寸和便携性问题、电池寿命问题、系统过热问题以及其它系统和光学挑战。需要改进的技术来解决这些问题,包括例如过热原因识别、时域功率管理、离散成像模式,以及基于眼睛/注视跟踪的渲染修改。本文中描述的系统和方法被配置为解决这些以及其它挑战。
需要一种或多种对旧技术和/或优于其它所考虑方案进行改进的技术。该背景技术中描述的一些途径是可以遵从的方案,但是不一定是之前已经构想或遵从的方案。
发明内容
镜头畸变校正
在一个实施例中,一种虚拟、增强或混合现实显示系统包括显示器,其被配置为显示虚拟、增强或混合现实图像数据,所述显示器包括一个或多个光学部件,所述光学部件将光学畸变或像差引入到所述图像数据。所述系统还包括显示控制器,其被配置为将所述图像数据提供给所述显示器。述显示控制器包括用于存储光学畸变校正信息的存储器以及一个或多个处理元件,所述一个或多个处理元件用于使用所述光学畸变校正信息至少部分地校正所述图像数据的所述光学畸变或像差。
在一个或多个实施例中,所述光学畸变校正信息由所述显示控制器用于以与所述光学畸变或像差至少部分地逆相关的方式使所述图像数据预畸变。所述显示控制器可以被配置为,通过基于由所述显示控制器接收的非畸变校正图像数据中不同的第二位置(x',y')附近的一个或多个非畸变校正像素确定第一位置(x,y)处的畸变校正像素,使其提供给所述显示器的所述图像数据预畸变。所述光学畸变校正信息可以被用于确定所述第二位置(x',y')。所述第二位置的(x',y')坐标可以是分数。所述显示控制器可以被配置为通过在所述第二位置(x',y')周围的一个或多个非畸变校正像素之间进行插值来确定所述第一位置(x,y)处的畸变校正像素。所述显示控制器可以使用双线性内插。
在一个或多个实施例中,所述显示器包括与所述图像数据的一种或多种颜色对应的一个或多个至少部分地不同的光学路径,并且所述光学畸变校正信息可以包括所述图像数据的所述多种颜色中的每一者的单独光学畸变校正信息。所述光学畸变校正信息可以以一个或多个查找表的形式被存储。所述一个或多个查找表可以以压缩格式被存储,并且所述显示控制器可以被配置为在使用所述光学畸变校正信息校正所述光学畸变或像差之前扩展所述一个或多个查找表。所述光学畸变校正信息还可以包括用于执行一个或多个图像变形(warp)操作的信息,并且其中所述显示控制器被进一步配置为对所述图像数据执行所述一个或多个图像变形操作。
在另一实施例中,一种在虚拟、增强或混合现实显示系统中的方法包括提供要在显示器上显示的虚拟、增强或混合现实图像数据,所述显示器包括一个或多个光学部件,所述光学部件将光学畸变或像差引入到所述图像数据。所述方法还包括存储光学畸变校正信息。所述方法进一步包括使用所述光学畸变校正信息至少部分地校正所述图像数据的所述光学畸变或像差。此外,所述方法包括使用所述显示器将所述图像数据显示给所述用户。
在一个或多个实施例中,所述方法还包括使用所述光学畸变校正信息以与所述光学畸变或像差至少部分地逆相关的方式使所述图像数据预畸变。所述方法可以进一步包括:通过基于未畸变图像数据中不同的第二位置(x',y')附近的一个或多个非畸变校正像素确定第一位置(x,y)处的畸变校正像素,来使提供给所述显示器的所述图像数据预畸变。此外,所述方法可以包括使用所述光学畸变校正信息确定所述第二位置(x',y')。另外,所述第二位置的(x',y')坐标可以是分数。所述方法还可以包括:通过在所述第二位置(x',y')周围的一个或多个非畸变校正像素之间进行插值,来确定所述第一位置(x,y)处的畸变校正像素。所述方法还可以包括使用双线性内插。
在一个或多个实施例中,所述显示器包括与所述图像数据的一种或多种颜色对应的一个或多个至少部分地不同的光学路径,并且所述光学畸变校正信息包括所述图像数据的所述多种颜色中的每一者的单独光学畸变校正信息。所述方法还可以包括以一个或多个查找表的形式存储所述光学畸变校正信息。权利要求20的方法还可以包括以压缩格式存储所述一个或多个查找表,并且在使用所述光学畸变校正信息校正所述光学畸变或像差之前扩展所述一个或多个查找表。所述光学畸变校正信息还可以包括用于执行一个或多个图像变形操作的信息,并且还包括对所述图像数据执行所述一个或多个图像变形操作。
颜色混合(虚拟深度平面)
在又一实施例中,一种虚拟、增强或混合现实显示系统包括显示器,其被配置为显示多个深度平面的数字图像数据,所述显示器包括用于显示与第一深度平面对应的图像数据的第一光学路径和用于显示与第二深度平面对应的图像数据的至少部分地不同的第二光学路径。所述系统还包括显示控制器,其被配置为将对应于所述第一深度平面的图像数据与对应于所述第二深度平面的图像数据进行混合,以使得当混合的图像数据由所述显示器显示时,所述混合的图像数据看起来对应于位于所述第一深度平面和所述第二深度平面之间的虚拟深度平面。
在一个或多个实施例中,所述显示控制器被配置为通过计算对应于所述第一深度平面的图像数据和对应于所述第二深度平面的图像数据的加权组合,将对应于所述第一深度平面的图像数据与对应于所述第二深度平面的图像数据进行混合。所述显示控制器可以被配置为基于被嵌入在所述数字图像数据中的虚拟深度平面指示(indicator)信息而确定所述加权组合,所述虚拟深度平面指示数据指定一个或多个可能的虚拟深度平面中的一者。所述虚拟深度平面指示数据可以被嵌入在所述数字图像数据的像素值中。所述数字图像数据可以包括用于每个像素的一个或多个颜色值,所述颜色值的多个最低有效位是所述虚拟深度平面指示数据。
在一个或多个实施例中,所述虚拟深度平面指示数据被用于访问与由所述虚拟深度平面指示数据指定的虚拟深度平面相关联的混合加权值。用于每个虚拟深度平面的混合加权值可以被存储在查找表中。可以为所述数字图像数据的每个深度平面提供一个或多个查找表。所述显示控制器可以被配置为将对应于所述第一深度平面的图像数据的所有像素与对应于所述第二深度平面的图像数据的所有像素混合到同一虚拟深度平面。所述显示控制器可以被配置为将对应于所述第一深度平面的图像数据的不同像素混合到不同的虚拟深度平面。
在又一实施例中,一种在虚拟、增强或混合现实显示系统中的方法包括提供要在显示器上显示的用于一个或多个深度平面的数字图像数据,所述显示器包括用于显示与第一深度平面对应的图像数据的第一光学路径和用于显示与第二深度平面的对应图像数据的至少部分地不同的第二光学路径。所述方法还包括将对应于所述第一深度平面的图像数据与对应于所述第二深度平面的图像数据进行混合,以使得当混合的图像数据由所述显示器显示时,所述混合的图像数据看起来对应于位于所述第一深度平面和所述第二深度平面之间的虚拟深度平面。
在一个或多个实施例中,所述方法还包括:通过计算对应于所述第一深度平面的图像数据和对应于所述第二深度平面的图像数据的加权组合,将对应于所述第一深度平面的图像数据与对应于所述第二深度平面的图像数据进行混合。所述方法还可以包括:基于被嵌入在所述数字图像数据中的虚拟深度平面指示信息而确定所述加权组合,所述虚拟深度平面指示数据指定一个或多个可能的虚拟深度平面中的一者。所述虚拟深度平面指示数据可以被嵌入在所述数字图像数据的像素值中。所述数字图像数据可以包括用于每个像素的一个或多个颜色值,所述颜色值的多个最低有效位是所述虚拟深度平面指示数据。
在一个或多个实施例中,所述方法还包括使用所述虚拟深度平面指示数据访问与由所述虚拟深度平面指示数据指定的虚拟深度平面相关联的混合加权值。所述方法还可以包括将用于每个虚拟深度平面的混合加权值存储在查找表中。所述方法还可以包括为所述数字图像数据的每个深度平面提供一个或多个查找表。所述方法还可以包括将对应于所述第一深度平面的图像数据的所有像素与对应于所述第二深度平面的图像数据的所有像素混合到同一虚拟深度平面。所述方法还可以包括将对应于所述第一深度平面的图像数据的不同像素混合到不同的虚拟深度平面。
后期图像变形(late image warping)
在另一实施例中,一种虚拟、增强或混合现实显示系统包括惯性测量单元,其被配置为进行与用户头部的位置相关的测量。所述系统还包括图形处理单元,其被配置为渲染(render)虚拟、增强或混合现实图像数据。所述系统进一步包括显示器,其被配置为向所述用户显示变换后的图像数据。此外,所述系统包括显示驱动器,其被配置为接收已被扫描输出的渲染图像数据并使所述显示器显示所述变换后的图像数据。所述显示驱动器包括:头部姿势处理器,其被配置为从所述惯性测量单元接收测量值并确定头部姿势信息;以及图像变形处理器,其被配置为基于所述头部姿势信息将所述渲染图像数据变换为所述变换后的图像数据。
在一个或多个实施例中,所述系统还包括显示控制器,其被配置为从所述图形处理单元接收所述渲染图像数据,并将所述渲染图像数据扫描输出到所述显示驱动器。所述图形处理单元和所述显示控制器中的至少一者可以被配置为基于使用来自所述惯性测量单元的第一测量值确定的第一头部姿势信息而对所述渲染图像数据执行第一变换。所述显示驱动器可以被配置为基于使用来自所述惯性测量单元的更新的第二测量值确定的第二头部姿势信息而对所述渲染图像数据执行第二变换,所述第二头部姿势信息涉及由所述第一头部姿势信息指示的所述用户的头部位置和由所述第二头部姿势信息指示的所述用户的头部位置之间的差异。
在一个或多个实施例中,所述渲染图像数据包括一个或多个颜色分量。所述图像变形处理器可以被配置为基于单独的头部姿势信息而变换所述渲染图像数据的每个颜色分量。所述显示器可以被配置为顺序地显示所述变换后的图像数据的多个颜色分量。
在一个或多个实施例中,所述显示器被配置为在第一时间显示所述变换后的图像数据的第一颜色分量,并且在随后的第二时间显示所述变换后的图像数据的第二颜色分量。所述图像变形处理器可以被配置为基于在所述第一时间之后确定的头部姿势信息而变换所述渲染图像数据的第二颜色分量。可以由所述图像变形处理器执行的变换包括所述渲染图像数据的每个颜色分量的旋转或平移。
在一个或多个实施例中,所述渲染图像数据包括一个或多个深度平面。所述图像变形处理器可以被配置为基于单独的头部姿势信息而变换所述渲染图像数据的每个深度平面。所述显示器可以被配置为顺序地显示所述变换后的图像数据的一个或多个深度平面。
在一个或多个实施例中,所述显示器被配置为在第一时间显示所述变换后的图像数据的第一深度平面,并且在随后的第二时间显示所述变换后的图像数据的第二深度平面。所述图像变形处理器可以被配置为基于在所述第一时间之后确定的头部姿势信息而变换所述渲染图像数据的第二深度平面。由所述图像变形处理器执行的变换可以包括所述渲染图像数据的每个深度平面的旋转或平移。由所述图像变形处理器执行的变换可以包括图像旋转或平移。
在一个或多个实施例中,所述显示器被配置为显示包括第一数量的像素列和第二数量的像素行的变换后的图像数据。所述图形处理单元可以被配置为向所述显示驱动器提供渲染图像数据,所述渲染图像数据包括多于所述第一数量的像素列或多于所述第二数量的像素行。提供给所述显示驱动器的渲染图像数据可以包括渲染图像数据的中心区域和渲染图像数据的缓冲区域,所述中心区域具有所述第一数量的像素列和所述第二数量的像素行,所述缓冲区域包括延伸超出所述中心区域的像素。基于所述头部姿势信息变换所述渲染图像数据可以使得来自所述缓冲区域的所述渲染图像数据进入所述中心区域。
□一个或多个实施例中,所述图形处理单元不被配置为基于头部姿势信息执行图像变形。所述图形处理单元可以被配置为将来自所述惯性测量单元的更新的测量值或更新的头部姿势信息添加到所述渲染图像数据。所述图形处理单元可以被配置为在扫描输出渲染图像数据的最后一行之后,将来自所述惯性测量单元的更新的测量值或更新的头部姿势信息添加到所述渲染图像数据。所述系统还可以包括时钟,其被配置为向所述惯性测量单元、所述图形处理单元和所述显示驱动器提供共同时钟信号,以便为与所述用户的头部位置相关的测量值、头部姿势信息、或基于头部姿势信息的变换提供共同基准(commonreference)。
在又一实施例中,一种在虚拟、增强或混合现实显示系统中的方法包括使用图形处理单元渲染虚拟、增强或混合现实图像数据。所述方法还包括将渲染图像数据扫描输出到显示器以显示给用户。所述方法进一步包括使用惯性测量单元进行与用户头部的位置相关的测量。此外,所述方法包括使用来自所述惯性测量单元的测量值确定头部姿势信息。另外,所述方法包括在将所述渲染图像数据扫描输出到所述显示器之后,基于所述头部姿势信息变换所述渲染图像数据。所述方法还包括在所述显示器上显示变换后的图像数据。
在一个或多个实施例中,所述方法还包括基于使用来自所述惯性测量单元的第一测量值确定的第一头部姿势信息而对所述渲染图像数据执行第一变换。所述方法还可以包括基于使用来自所述惯性测量单元的更新的第二测量值确定的第二头部姿势信息而对扫描输出的渲染图像数据执行第二变换,所述第二头部姿势信息涉及由所述第一头部姿势信息指示的所述用户的头部位置和由所述第二头部姿势信息指示的所述用户的头部位置之间的差异。
在一个或多个实施例中,在将所述渲染图像数据扫描输出到所述显示器之后,使用来自所述惯性测量单元的测量值确定头部姿势信息。所述渲染图像数据可以包括一个或多个颜色分量。所述方法还可以包括基于单独的头部姿势信息而变换所述渲染图像数据的每个颜色分量。所述方法还可以包括顺序地显示所述变换后的图像数据的多个颜色分量。
在一个或多个实施例中,所述方法还包括在第一时间显示所述变换后的图像数据的第一颜色分量,并且在随后的第二时间显示所述变换后的图像数据的第二颜色分量。所述方法还可以包括基于在所述第一时间之后确定的头部姿势信息而变换所述渲染图像数据的第二颜色分量。
在一个或多个实施例中,变换所述渲染图像数据的每个颜色分量包括旋转或平移所述渲染图像数据的每个颜色分量。所述渲染图像数据可以包括一个或多个深度平面。所述方法还可以包括基于单独的头部姿势信息而变换所述渲染图像数据的每个深度平面。所述方法还可以包括顺序地显示所述变换后的图像数据的多个深度平面。
在一个或多个实施例中,该方法还包括在第一时间显示所述变换后的图像数据的第一深度平面,并且在随后的第二时间显示所述变换后的图像数据的第二深度平面。所述方法还可以包括基于在所述第一时间之后确定的头部姿势信息而变换所述渲染图像数据的第二深度平面。变换所述渲染图像数据的每个深度平面可以包括旋转或平移所渲染图像数据的每个深度平面。
在一个或多个实施例中,基于所述头部姿势信息变换所述渲染图像数据包括旋转或移动所述渲染图像数据。所述变换后的图像数据可以包括在所述显示器上的第一数量的像素列和第二数量的像素行。所述方法还可以包括向所述显示驱动器提供渲染图像数据,所述渲染图像数据包括多于所述第一数量的像素列或多于所述第二数量的像素行。
在一个或多个实施例中,向所述显示驱动器提供的所述渲染图像数据包括渲染图像数据的中心区域和渲染图像数据的缓冲区域,所述中心区域具有第一数量的像素列和第二数量的像素行,所述缓冲区域包括延伸超出所述中心区域的像素。所述方法还可以包括通过使渲染图像数据从所述缓冲区域进入所述中心区域,基于所述头部姿势信息变换所述渲染图像数据。
在一个或多个实施例中,基于所述头部姿势信息变换所述渲染图像数据不是由渲染所述虚拟、增强或混合现实图像数据的图形处理单元执行的。所述方法还可以包括将来自所述惯性测量单元的更新的测量值或更新的头部姿势信息添加到所述渲染图像数据。所述方法还可以包括在扫描输出渲染图像数据的最后一行之后,将来自所述惯性测量单元的更新的测量值或更新的头部姿势信息添加到所述渲染图像数据。所述方法还可以包括提供共同时钟信号,以便为与所述用户的头部位置相关的测量值、头部姿势信息、或基于头部姿势信息的变换提供共同基准。
平场校正
在又一实施例中,一种虚拟、增强或混合现实显示系统包括显示器,其包括一个或多个光学部件,所述光学部件引起所述显示器的不同部分处的亮度变化。所述系统还包括显示控制器,其被配置为将一个或多个不同的亮度校正值应用于图像数据中的一个或多个像素值以产生校正的图像数据。所述显示器被配置为向用户显示所述校正的图像数据,以减小所述亮度变化。
在一个或多个实施例中,所述显示控制器被配置为通过将来自所述多个不同的亮度校正值当中的一亮度校正值与来自所述图像数据中的所述多个像素值当中的对应像素值相乘来应用亮度校正值。可以基于在所述显示器上显示的校准图像来确定所述多个不同的亮度校正值。所述多个不同的亮度校正值可以被存储在查找表中。所存储的查找表的分辨率可以小于所述图像数据的分辨率。所述显示控制器可以被配置为将所述查找表扩展为与所述图像数据的分辨率匹配。
在一个或多个实施例中,所述显示器包括:一个或多个波导,用于引导所述校正的图像数据的多个颜色分量;以及一个或多个光重定向元件,用于将光从所述波导重定向到用户的眼睛作为一个或多个出射光束。多个出射光束之间可能存在变化,这导致在显示器的不同部分处显示的图像数据的亮度变化。来自所述多个波导的不同波导可以与不同的光焦度(optical power)相关联,以便在不同的表观深度处显示所述图像数据的不同深度平面。
在另一实施例中,一种在虚拟、增强或混合现实显示系统中的方法包括使用包括一个或多个光学部件的显示器,所述光学部件引起所述显示器的不同部分处的亮度变化。所述方法还包括将一个或多个不同的亮度校正值应用于图像数据中的一个或多个像素值以产生校正的图像数据。所述方法进一步包括在所述显示器上向用户显示所述校正的图像数据,以减小所述亮度变化。
在一个或多个实施例中,应用亮度校正值包括将来自所述多个亮度校正值当中的一亮度校正值与来自所述图像数据中的所述多个像素值当中的对应像素值相乘。所述方法还可以包括基于在所述显示器上显示的校准图像确定所述多个不同的亮度校正值。所述方法还可以包括将所述多个不同的亮度校正值存储在查找表中。所存储的查找表的分辨率可以小于所述图像数据的分辨率。所述方法还可以包括扩展将所述查找表以与所述图像数据的分辨率匹配。
在一个或多个实施例中,所述方法还包括使用一个或多个波导引导所述校正的图像数据的一个或多个颜色分量。所述方法还可以包括使用一个或多个光重定向元件将光从所述波导重定向到用户的眼睛作为一个或多个出射光束。所述多个出射光束之间可能存在变化,这导致在显示器的不同部分处显示的图像数据的亮度变化。所述方法还可以包括使用来自所述多个波导当中的与不同的光焦度相关联的不同波导在不同的表观深度处显示所述图像数据的不同深度平面。
像素处理流水线(Pixel Processing pipeline)
在又一实施例中,一种虚拟、增强或混合现实显示系统包括显示器,其被配置为显示用于一个或多个深度平面的虚拟、增强或混合现实图像数据。所述显示器包括用于显示与第一深度平面对应的图像数据的第一光学路径和用于显示与第二深度平面对应的图像数据的至少部分地不同的第二光学路径。所述显示器还包括将光学畸变或像差引入到所述图像数据的一个或多个光学部件。所述显示器进一步包括引起所述显示器的不同部分处的亮度变化的一个或多个光学部件。所述系统还包括控制器。所述控制器被配置为使用光学畸变校正信息至少部分地校正所述图像数据的所述光学畸变或像差。所述控制器还被配置为将对应于所述第一深度平面的图像数据与对应于所述第二深度平面的图像数据进行混合,以使得混合图像数据看起来对应于位于所述第一深度平面和所述第二深度平面之间的虚拟深度平面。所述控制器被进一步配置为将一个或多个不同的亮度校正值应用于所述图像数据中的一个或多个像素值,以减小所述亮度变化。此外,所述控制器被配置为基于控制数据,通过旋转或像素移位操作来变换所述图像数据。另外,所述控制器被配置为将所述图像数据提供给所述显示器。
在一个或多个实施例中,所述控制器是显示控制器。所述控制器可以是远程处理单元。所述控制器可以是DP到MPI桥。
在又一实施例中,一种在虚拟、增强或混合现实显示系统中的方法包括使用显示器显示用于一个或多个深度平面的虚拟、增强或混合现实图像数据。所述显示器包括用于显示与第一深度平面对应的图像数据的第一光学路径和用于显示与第二深度平面对应的图像数据的至少部分地不同的第二光学路径。所述显示器还包括将光学畸变或像差引入到所述图像数据的一个或多个光学部件。所述显示器进一步包括引起所述显示器的不同部分处的亮度变化的一个或多个光学部件。所述方法还包括通过显示控制器向所述显示器提供所述图像数据。所述显示控制器被配置为使用光学畸变校正信息至少部分地校正所述图像数据的所述光学畸变或像差。所述显示控制器还被配置为将对应于所述第一深度平面的图像数据与对应于所述第二深度平面的图像数据进行混合,以使得混合图像数据看起来对应于位于所述第一深度平面和所述第二深度平面之间的虚拟深度平面。所述显示控制器被进一步配置为将一个或多个不同的亮度校正值应用于所述图像数据中的一个或多个像素值,以减小所述亮度变化。此外,所述显示控制器被配置为基于控制数据,通过旋转或像素移位操作来变换所述图像数据。
时域功率管理
在另一实施例中,一种在虚拟、增强或混合现实系统中的方法包括所述系统在低功率模式下操作。所述方法还包括所述系统接收对正常处理器模式的请求。所述方法进一步包括响应于接收到所述对正常处理器模式的请求,所述系统从所述低功率模式切换到正常功率模式。此外,所述方法包括所述系统接收低处理器模式的可接受性指示。而且,所述方法包括响应于接收到所述低处理器模式的所述可接受性指示,所述系统从所述正常功率模式切换到所述低功率模式。
在一个或多个实施例中,所述低功率模式包括系统部件被关闭或处于具有快速唤醒功能的待机模式。所述系统从所述低功率模式切换到所述正常功率模式可以包括所述系统激活先前被关闭或处于待机模式的所述系统部件。所述系统接收所述对正常处理器模式的请求可以包括通过低延迟通信信道接收所述对正常处理器模式的请求。可以响应于用户的姿势改变大于预定阈值量而产生所述对正常处理器模式的请求。所述低处理器模式的所述可接受性指示可以是在预定时间内用户的姿势改变小于预定阈值量。
在又一实施例中,一种在虚拟、增强或混合现实系统中的方法包括所述系统在正常功率模式下操作。所述方法还包括所述系统接收对高处理器模式的请求。所述方法进一步包括响应于接收到所述对高处理器模式的请求,所述系统从所述正常功率模式切换到高功率模式。此外,所述方法包括所述系统接收正常处理器模式的可接受性指示。另外,所述方法包括响应于接收到所述正常处理器模式的所述可接受性指示,所述系统从所述高功率模式切换到所述正常功率模式。
在一个或多个实施例中,所述高功率模式包括所述系统的可用电流量增加。所述系统从所述高功率模式切换到所述正常功率模式可以包括所述系统减小所述系统的可用电流量。可以响应于呈现(render)多于预定阈值量的虚拟对象的请求,产生所述对高处理器模式的请求。所述正常处理器模式的所述可接受性指示可以是持续预定时间呈现小于预定阈值量的虚拟对象的请求。
离散成像模式
在又一实施例中,一种在虚拟、增强或混合现实系统中的方法包括在多平面模式下操作,其中所述系统在一个或多个深度平面上呈现和投射图像。所述方法还包括接收单平面活动指示。所述方法进一步包括响应于接收到所述单平面活动指示,从所述多平面成像模式切换到离散成像模式,其中在所述离散成像模式下,所述系统在单个深度平面上呈现和投射图像。此外,所述方法包括接收多平面活动指示。另外,所述方法包括响应于接收到所述多平面活动指示,从所述单平面模式切换到所述多平面模式。
在一个或多个实施例中,所述单平面活动指示包括用户请求在虚拟屏幕上显示电影、用户打开2D应用、或者传感器数据指示用户的注视持续预定阈值时间量会聚在特定平面。所述方法还可以包括在眨眼或眼睛运动期间在所述离散成像模式和所述多平面成像模式之间切换。所述多平面活动指示可以包括用户请求停止当前在虚拟屏幕上显示的电影,或者传感器数据指示用户的注视持续预定阈值时间量离开特定平面。
在另一实施例中,一种在虚拟、增强或混合现实系统中的方法包括在多平面模式下操作,其中所述系统在一个或多个深度平面上呈现和投射图像。所述方法还包括接收所述系统达到预定阈值的指示。所述方法进一步响应于接收到所述系统达到预定阈值的指示,从所述多平面成像模式切换到离散成像模式,其中在所述离散成像模式下,所述系统在单个深度平面上呈现和投射图像。此外,所述方法包括接收正常系统操作的指示。另外,所述方法包括响应于接收到所述正常系统操作的指示,从所述单平面模式切换到所述多平面模式。
在一个或多个实施例中,所述预定阈值包括温度阈值或电池电量剩余阈值。所述方法还可以包括在眨眼或眼睛运动期间在所述离散成像模式和所述多平面成像模式之间切换。所述正常系统操作的指示包括在预定量的预定阈值内没有系统特性。
光照图(Light Map)
在又一实施例中,一种在虚拟、增强或混合现实系统中的方法包括获得用户视野的图像。所述方法还包括确定所述图像包含私人信息。所述方法进一步包括确定根据所述图像生成的光照图将是公开的。此外,所述方法包括响应于确定所述图像包括私人信息并且响应于确定所述光照图将是公开的,生成包括照明信息但不包括所述私人信息的代替图像(proxy image)。另外,所述方法包括将所述代替映像发送到服务器。所述方法还包括使用所述代替图像生成公开光照图。
在一个或多个实施例中,所述私人信息是财务信息或儿童图像。确定根据所述图像生成的光照图将是公开的可以包括检测将图像数据发送到服务器的指令。代替图像可以包括在所述用户视野中显示所述私人信息的原始对象的替代对象。
在又一实施例中,一种在虚拟、增强或混合现实系统中的方法包括接收真实房间的照明信息。所述方法还包括生成所述真实房间的光照图。所述方法进一步包括使用所述光照图生成虚拟对象。此外,所述方法包括显示所述虚拟对象。
在一个或多个实施例中,所述照明信息包括颜色信息、照度级(illuminationlevel)或光方向。所述光照图可以包括所述真实房间中的照明源的模型。所述模型可以包括被透射、漫射、反射或衍射的光。
基于眼睛/注视跟踪的渲染修改
在另一实施例中,一种在虚拟、增强或混合现实系统中的方法包括跟踪用户的眼睛位置。所述方法还包括使用所述用户的眼睛位置计算用户的焦点。所述方法进一步包括识别以所述用户的焦点为中心的聚焦区域(foveated area)。此外,所述方法包括相对于在所述聚焦区域之外的图像的第二部分,更准确地呈现位于所述聚焦区域中的所述图像的第一部分。另外,所述方法包括显示所述图像包括所述第一部分和所述第二部分。
在一个或多个实施例中,在X、Y或Z方向上确定所述用户的焦点。所述用户的焦点可以是所述用户的视野的一象限。更准确地呈现所述图像的所述第一部分可以包括相对于所述图像的所述第二部分增加所述图像的所述第一部分的锐度。所述方法还可以包括呈现将所述聚焦区域的中心增大到所述聚焦区域的外边缘的锐度梯度。所述方法还可以包括基于用户眼睛运动量、系统温度或用户偏好来修改凹量(amount of foveation)。所述方法还可以包括增加在所述聚焦区域中的眼睛位置跟踪的准确度。
基于瞳孔跟踪的深度平面切换
在又一实施例中,一种在虚拟、增强或混合现实系统中的方法包括分别获得用于第一平面和第二平面的第一平面和第二内容。所述方法还包括确定瞳孔取向。所述方法进一步包括将所述第一内容和第二内容与所述瞳孔信息组合以生成切换模式(switchingpattern)。此外,所述方法包括将所述切换模式发送到所述系统的显示器。另外,所述方法包括所述显示器使用所述切换模式执行切换。
在一个或多个实施例中,对于所述第一平面和所述第二平面中的每一者,此处的切换是每秒30或60帧的快速切换。所述切换可以包括消隐(blank)所述第一平面。所述显示器可以使用模拟开关执行所述切换。
低功率深度平面切换
在又一实施例中,一种在虚拟、增强或混合现实系统中的方法包括获得相应的多个平面的一个或多个内容。所述方法还包括分析所述多个内容以生成切换模式。所述方法进一步包括将所述切换模式发送到所述系统的显示器。此外,所述方法包括所述显示器使用所述切换模式执行切换。
在一个或多个实施例中,所述切换模式包括以下至少一者:对所述多个平面中的一些重新排序;消隐所述多个平面中的一个;跳过图像帧;交换图像帧的对;以及执行颜色排序。对于所述多个平面中的每个平面,所述切换可以是每秒30或60帧的快速切换。所述显示器可以使用模拟开关执行所述切换。
在另一实施例中,一种在虚拟、增强或混合现实系统中的方法包括获得对应于多个帧的相应多个内容。所述方法还包括分析所述相应多个内容以产生对应于所述多个帧的一个或多个切换模式。所述方法进一步包括将所述多个切换模式发送到所述系统的显示器。此外,所述方法包括所述显示器逐帧地使用所述切换模式执行切换。
在一个或多个实施例中,所述方法还包括将所述多个切换模式存储在存储缓冲器中。所述存储缓冲器可以是时间排序的先进先出缓冲器、循环缓冲器和一系列存储器位置或寄存器中的一者。所述切换可以是每秒30或60帧的快速切换。所述显示器可以使用模拟开关执行所述切换。
在一个或多个实施例中,所述方法还包括:检测用户眨眼;以及修改所述切换模式以使两个显示器的帧消隐与所述用户眨眼一致。所述方法还可以包括:检测用户眨眼;以及修改所述切换模式以使一个显示器的帧消隐与所述用户眨眼一致。
低功率低延迟头戴装置
在又一实施例中,一种虚拟、增强或混合现实系统包括头戴装置以及远程计算模块。所述头戴装置被配置为接收用户输入,检测所述用户输入中的关键字,以及响应于检测到所述用户输入中的所述关键字,将唤醒代码发送到所述远程计算模块,所述远程计算模块处于低功率待机模式。所述远程计算模块被配置为响应于接收到所述唤醒代码而退出所述低功率待机模式。
在一个或多个实施例中,所述用户输入是音频输入,并且其中接收所述用户输入包括使用所述头戴装置上的麦克风检测所述音频输入。检测所述用户输入中的所述关键字的头戴装置包括所述头戴装置中与所述麦克风通信以接收所述音频输入的音频处理器;以及所述头戴装置中与所述音频处理器通信以接收音频数据的感知处理器。
在一个或多个实施例中,所述头戴装置检测所述用户输入中的所述关键字还包括:所述感知处理器访问关键字存储装置;以及所述感知处理器将所述音频数据与所述关键字存储装置中的一个或多个关键字进行比较以检测所述关键字。所述系统还可以包括:响应于检测到所述用户输入中的所述关键字,所述头戴装置向所述远程计算模块发送中断代码。
低功率低延迟运动预测
在又一实施例中,一种虚拟、增强或混合现实系统包括:在感知处理器中具有预测引擎的头戴装置;以及远程计算模块。所述头戴装置被配置为检测用户运动的开始并且响应于检测到所述用户运动的开始而测量所述用户运动。所述头戴装置中的所述感知处理器中的所述预测引擎根据所测量的用户运动而产生预测的用户运动。所述头戴装置中的所述感知处理器响应于所述预测引擎产生所述预测的用户运动而使用所述预测的用户运动对图像数据执行变换。
在一个或多个实施例中,所述头戴装置使用所述预测的用户运动和变换参数而对所述图像数据执行变换。所述头戴装置可以使用所述预测的用户运动和预测的颜色变化而对所述图像数据执行变换。所述头戴装置可以使用所述预测的用户运动和预测的照明变化或预测的对比度变化而对所述图像数据执行变换。
在一个或多个实施例中,所述系统还包括所述头戴装置中的预测用户焦点的感知处理器。所述头戴装置中的所述感知处理器可以响应于所述预测引擎产生所述预测的用户运动而使用所预测的用户运动和所预测的用户焦点对所述图像数据执行变换。所述用户运动可以是头部运动。所述用户运动可以是眼睛运动。
低功率侧信道
在另一实施例中,一种虚拟、增强或混合现实系统包括具有本地处理模块的头戴装置。所述系统还包括远程处理模块。所述系统进一步包括所述本地处理模块和所述远程处理模块之间的第一通信信道。此外,所述系统包括所述本地处理模块和所述远程处理模块之间的第二通信信道,其中所述第二通信信道需要比所述第一通信信道少的功率。
在一个或多个实施例中,所述第一通信信道是USB或PCIE连接,并且所述第二通信信道是SPI或类似的低功率连接。
在又一实施例中,一种在虚拟、增强或混合现实系统中的方法,所述系统具有远程处理模块和包括本地处理模块的头戴装置,所述方法包括检测操作模式。所述方法还包括确定在所述操作模式期间能够禁用所述本地处理模块和所述远程处理模块之间的第一通信信道。所述方法进一步包括识别在所述操作模式期间能够被禁用的所述第一通信信道的部件。此外,所述方法包括通过所述本地处理模块和所述远程处理模块之间的第二通信信道进行通信,其中所述第二通信信道需要比所述第一通信信道少的功率。另外,所述方法包括基于所述第二通信信道上的成功通信,禁用所述第一通信信道的部件。
在一个或多个实施例中,所述方法还包括重新映射所述第二通信信道的连接器以便于所述第二通信信道上的通信。所述方法还可以包括提供对所述第二通信信道的连接器的互斥访问,以便于所述第二通信信道上的通信。
多部件低功率模式
在又一实施例中,一种在虚拟、增强或混合现实系统中的方法包括检测所述虚拟、增强或混合现实系统的第一部件处的低功率需求指示。所述方法还包括识别所述第一部件处的本地低功率模式。所述方法进一步包括识别包括所述虚拟、增强或混合现实系统的第二部件的协调低功率模式。此外,所述方法包括向所述第二部件发送所述协调低功率模式的指示。另外,所述方法包括所述第一部件进入所述本地低功率模式。所述方法还包括所述第二部件进入所述协调低功率模式。
在一个或多个实施例中,所述低功率需求指示是静音按钮的激活。所述本地低功率模式可以包括停用麦克风。所述协调低功率模式可以包括停用语音处理器。
在另一实施例中,一种在虚拟、增强或混合现实系统中的方法包括检测所述虚拟、增强或混合现实系统的第一部件处的低功率需求指示。速欧式方法还包括识别所述第一部件处的第一和第二本地低功率模式。所述方法进一步包括识别第一和第二协调低功率模式,第一和第二协调低功率模式中的每一者包括所述虚拟、增强或混合现实系统的第二部件。此外,所述方法包括比较所述第一和第二本地低功率模式以识别优选的本地低功率模式。另外,所述方法包括比较所述第一和第二协调低功率模式以识别优选的协调低功率模式。所述方法还包括根据所述优选的本地低功率模式和所述优选的协调低功率模式而产生组合低功率模式。所述方法进一步包括所述第一和第二部件进入所述组合低功率模式。
多部件低功率模式同步
在又一实施例中,一种在虚拟、增强或混合现实系统中的方法,所述系统具有头戴装置和远程计算模块,所述方法包括所述头戴装置将头戴装置时间码发送到所述远程计算模块。所述方法还包括所述远程计算模块将远程计算模块时间码发送到所述头戴装置。所述方法进一步包括所述头戴装置比较所述远程计算模块时间码和所述头戴装置时间码以识别第一漂移。此外,所述方法包括所述远程计算模块比较所述头戴装置时间码和所述远程计算模块时间码以识别第二漂移。
在一个或多个实施例中,所述方法还包括所述头戴装置基于所述第一漂移重置其时钟,以使所述头戴装置和所述远程计算模块同步。所述方法还可以包括所述远程计算模块基于所述第二漂移重置其时钟,以使所述头戴装置和所述远程计算模块同步。
在又一实施例中,一种在虚拟、增强或混合现实系统中的方法,所述系统具有头戴装置、投影仪和远程计算模块,所述方法包括所述远程计算模块向所述头戴装置发送低带宽构造(construct)。所述方法还包括所述投影仪向所述头戴装置发送低功率选项。所述方法进一步包括所述头戴装置将来自低功率选项的低功率指令发送到所述投影仪。
数据的时分多路复用
在另一实施例中,一种在虚拟、增强或混合现实系统中的方法,所述系统具有头戴装置和远程计算模块,所述方法包括在所述头戴装置中配置麦克风。所述方法还包括配置从所述头戴装置到所述远程计算模块的通信路径。所述方法进一步包括所述头戴装置中的感知处理器计算第一数量的可用声道和第二数量的所需声道。此外,所述方法包括所述感知处理器确定所述第二数量大于所述第一数量。另外,所述方法包括所述感知处理器将额外的数据打包到未使用的声道中。
在一个或多个实施例中,所述额外的数据包括回声消除数据、眼睛姿势数据或和头部姿势数据中的至少一者。所述方法可以动态地被执行。
附图说明
下面描述的附图仅出于说明的目的。这些附图并非旨在限制本公开的范围。
附图示出了本公开的各种实施例的设计和实用性。应该注意,附图未按比例绘制,并且在所有附图中,具有相似结构或功能的元件由相同的参考标号表示。为了更好地理解如何获得本公开的各种实施例的上述和其它优点和目标,将通过参考在附图中示出的本公开的具体实施例来呈现本公开的更详细的说明。应理解,这些附图仅示出了本公开的典型实施例,因此不应认为是对其范围的限制,将通过使用附图,借助附加的特征和细节来描述和解释本公开。
图1示出了用户使用示例性AR系统看到的AR/MR场景的视图。
图2A示出了可穿戴显示系统的示例。
图2B是示出根据一个实施例的AR/MR系统的框图。
图2C是根据一个实施例的AR/MR头戴式显示器的分解透视图。
图2D包括根据一个实施例的移动计算支持系统的各种视图。
图2E是图2D中示出的移动计算支持系统的分解透视图。
图2F是根据一个实施例的图腾(totem)控制器的透视图。
图2G是根据一个实施例的VR/AR/MR系统框图,其包括用于实现VR/AR/MR系统的远端定位部件。
图2H示出了根据一个实施例的用于实现VR/AR/MR系统的部件的布置。
图3示出了用于为用户模拟三维图像的传统显示系统。
图4示出了使用多个深度平面模拟三维图像的方案的各方面。
图5A至5C示出了曲率半径与焦半径之间的关系。
图6示出了用于将图像信息输出给用户的波导堆叠的示例。
图7示出了由波导输出的出射光束的示例。
图8示出了波导堆叠的示例设计,其中每个深度平面具有三个相关联的波导,每个波导输出不同颜色的光。
图9示出了用于显示光场视频数据的VR/AR/MR系统的示例性时序方案。
图10示出了包括附加控制数据的视频数据帧的示例格式。控制数据也可以在消隐期间作为元数据被发送。
图11示出了包括控制数据的视频数据帧的另一示例格式。
图12A示出了包括嵌入式控制数据的视频数据像素的示例格式。
图12B示出了包括嵌入式控制数据的视频数据的像素的另一示例格式。
图13示出了如何将视频帧分为可以串行显示的颜色分量。
图14示出了如何使用深度平面指示数据将光场视频数据帧分为多个深度平面,每个深度平面可以被分为用于显示的颜色分量子帧。
图15示出了其中图12A和12B的深度平面指示数据指示一光场视频数据帧的一个或多个深度平面不活动的示例。
图16示出了增强现实系统中的计算机生成的图像帧的示例绘图区域。
图17是由系统的显示控制器实现的示例像素处理流水线的框图。
图18示出了视频像素的示例格式,该视频像素被标记(tag)有用于控制与对应于另一深度平面的像素的混合操作的数据。
图19示出了可以由图17所示的像素处理流水线的颜色混合块执行的示例混合操作。
图20示出了颜色混合块的实施例,其逐像素地执行图像数据的深度平面之间的混合操作。
图21示出了颜色混合块的实施例,其针对整个深度平面均匀地执行图像数据的深度平面之间的混合操作。
图22是图17所示的像素处理流水线的镜头畸变校正功能的示意表示。
图23示出了像素内插器对四个输入像素A、B、C、D进行内插以计算畸变校正的输出像素的值。
图24A示出了图17所示的像素处理流水线的滚动缓冲器(rolling buffer)内的宏块(macroblock)。
图24B示出用于将像素从宏块传递到内插器的示例多路复用器逻辑。
图25A示出了用于基于头部姿势信息来使VR/AR/MR图像数据变形的示例系统。
图25B示出了用于基于头部姿势信息来使VR/AR/MR图像数据变形的改进系统。
图25C示出了用于基于头部姿势信息来变换VR/AR/MR图像数据的另一改进系统。
图26示出了用于实现颜色查找表混合操作模式的系统的示例实施例。
图27是根据一个实施例的用于产生MR体验的方法的示意图。
图28是根据一个实施例的AR/MR系统的示意图。
图29是示出根据一个实施例的在低功率模式和正常功率模式之间切换的方法的流程图。
图30是示出根据一个实施例的在正常功率模式和突发(burst)或高功率模式之间切换的方法的流程图。
图31A和31B是示出根据两个实施例的在多平面显示模式和离散成像模式之间切换的方法的流程图。
图32是示出根据一个实施例的使用跟踪的和/或预测的眼睛或注视位置以减少渲染处理器要求的方法的流程图。
图33示出了根据一个实施例的3D场景,该场景示出了与在AR/MR系统中使用的真实世界场景相结合的场景增强。
图34示出了根据一个实施例的在实现VR/AR/MR系统的部件中使用的一个或多个连续更远的深度平面。
图35包括根据各种实施例的图34所示的多个连续更远的深度平面,以及示出用于实现低功率VR/AR/MR系统的切换深度平面的方法的流程图。
图36示意性地示出根据一个实施例的包括远端定位的部件的VR/AR/MR系统。
图37示出了根据一个实施例的在VR/AR/MR系统中使用模拟开关的逐帧低功率深度平面切换。
图38示出了根据一个实施例的在低功率VR/AR/MR系统中使用模拟开关的逐帧眨眼(winking)或眨眼(blinking)事件深度平面切换。
图39示意性地示出了根据一个实施例的用于实现VR/AR/MR系统中的低功率显示技术的六发式射机(six-shooter)架构。
图40示意性地示出了根据一个实施例的VR/AR/MR系统中的低功率、低延迟头戴装置架构。
图41是根据一个实施例的比较VR/AR/MR系统中的低延迟低功率流和较长延迟功耗流两者的图表。
图42示意性地示出了根据一个实施例的用于将运动预测传递到头戴装置部件的VR/AR/MR系统。
图43示意性地示出了根据一个实施例的在头戴装置部件中具有本地预测引擎的VR/AR/MR系统。
图44是根据两个实施例的比较VR/AR/MR系统中的低延迟本地预测引擎和较长延迟本地预测引擎的图表。
图45示意性地示出了根据一个实施例的具有低功率侧信道(side-channel)的VR/AR/MR系统。
图46A至46C是示出根据各种实施例的用于在VR/AR/MR系统中使用低功率侧信道的基于模式的流程的流程图。
图47示意性地示出了根据一个实施例的用于在VR/AR/MR系统中使用低功率侧信道的电缆配置。
图48示意性地示出了根据一个实施例的用于在VR/AR/MR系统中的协作部件之间实现低功率侧信道通信的模式配置协议。
图49示意性地示出了根据一个实施例的用于在VR/AR/MR系统中的协作部件之间实现低功率侧信道通信的多部件模式配置流程。
图50示意性地示出了根据一个实施例的在VR/AR/MR系统中的协作部件之间使用的低功率同步技术。
图51是示出根据一个实施例的要在VR/AR/MR系统中的协作部件之间传送的数据的时分复用的实现的流程图。
图52示出了根据一个实施例的用于实现要在VR/AR/MR系统中的部件之间传送的数据的时分复用的数据打包。
图53示意性地示出了根据一个实施例的用于VR/AR/MR系统的电池升压系统。
图54示意性地示出了根据一个实施例的包括VR/AR/MR系统的协作部件的电缆连接的系统。
图55示意性地示出了根据一个实施例的包括VR/AR/MR系统的协作部件的无线连接的系统。
图56示意性地示出了根据一个实施例的包括VR/AR/MR系统的多个协作部件的系统部件划分。
图57示意性地示出了根据一个实施例的用于在VR/AR/MR系统的协作部件上实现的系统功能划分。
图58示意性地示出了根据一个实施例的用于在VR/AR/MR系统的协作部件上实现的系统功能划分。
图59是示出根据一个实施例的产生将在真实物理房间中显示的准确照射的虚拟对象的方法的流程图。
图60是示出根据一个实施例的使用包括私人信息的图像产生公开可用光照图的方法的流程图。
图61示意性地示出了根据两个实施例的包括VR/AR/MR系统的多个协作部件的系统部件划分。
图62示出了根据第一实施例的GPU中的WARP操作。
图63示出了根据第二实施例的GPU中的WARP操作。
图64示出了根据第三实施例的GPU中的WARP操作。
具体实施方式
本公开的各种实施例涉及单个实施例或多个实施例中的虚拟现实(VR)/增强现实(AR)/混合现实(MR)的系统、方法和制品。在具体实施方式、附图说明和权利要求中描述了本公开的其它目的、特征和优点。
现在将参考附图详细描述各种实施例,提供附图是作为说明性示例,以使得本领域技术人员能够实践本公开。值得注意的是,下面的附图和示例并不意味着限制本公开的范围。在使用已知部件(或方法或过程)可以部分地或完全地实现本公开的某些元件的情况下,将仅描述这些已知部件(或方法或过程)中对于理解本公开所必需的那些部分,并且省略对这些已知部件(或方法或过程)的其它部分的详细描述,以免模糊本公开。此外,各种实施例包含本文中通过说明的方式提及的部件的当前和未来已知的等同物。
根据本公开的实施例解决了经常依赖于现成部件和定制部件的组合的VR/AR/MR系统的实现的问题。在一些情况下,现成部件不具有实现待部署的VR/AR/MR系统的特定期望方面所需的所有特征或性能特性。一些实施例涉及用于添加性能和/或重新利用(repurpose)资源以适应待部署的VR/AR/MR系统的期望特征或性能特性的方案。这里的附图和讨论给出了VR/AR/MR系统的示例环境、系统、方法和计算机程序产品。
概述
本文公开的虚拟现实(“VR”)、增强现实(“AR”)和混合现实(“MR”)系统可以包括向用户呈现计算机生成的图像(视频/图像数据)的显示器。在一些实施例中,显示系统是可穿戴的,其可以有利地提供更具沉浸感的VR/AR/MR体验。图2A示出了可穿戴VR/AR/MR显示系统80(以下被称为“系统80”)的示例。系统80包括显示器62,以及支持该显示器62的功能的各种机械和电子模块和系统。显示器62可以被耦接到框架64,框架64可由显示系统用户或观看者60(下文被称为“用户60”)穿戴并且被配置为将显示器62定位在用户60的眼睛前方。在一些实施例中,扬声器66被耦接到框架64并且定位在用户60的耳道附近。在一些实施例中,未示出的另一扬声器位于用户60的另一耳道附近,以提供立体声/可塑形的声音控制。显示器62可操作地被耦接(例如通过有线或无线连接68)到本地处理和数据模块70,本地处理和数据模块70可以以各种配置被安装,例如固定地附接到框架64,固定地附接到用户穿戴的头盔或帽子,嵌入在耳机中或以其它方式可拆卸地附接到用户60(例如,背包式配置、腰带耦接式配置等)。
本地处理和数据模块70可以包括处理器以及数字存储器,例如非易失性存储器(例如,闪速存储器),这两者都可以被用于辅助数据的处理和存储。这包括从传感器捕获的数据,所述传感器例如为图像捕获设备(例如,相机)、麦克风、惯性测量单元、加速度计、罗盘、GPS单元、无线电设备、天线阵列、深度传感器和/或陀螺仪。传感器可以可操作地被耦接到框架64或以其它方式附接到用户60。替代地或附加地,可以使用远程处理模块72和/或远程数据储存库74来获取和/或处理传感器数据,这些数据可能在进行这样的处理或检索之后被传送到显示器62。本地处理和数据模块70可通过通信链路(76、78)(例如通过有线或无线通信链路)可操作地被耦接到远程处理模块72和远程数据储存库74,使得这些远程模块(72、74)可操作地彼此耦接并且可作为资源用于本地处理和数据模块70。
在一些实施例中,远程处理模块72可以包括被配置为分析和处理数据(例如,传感器数据和/或图像信息)的一个或多个处理器。在一些实施例中,远程数据储存库74可以包括数字数据存储设施,其可通过因特网或“云”资源配置中的其它网络配置获得。在一些实施例中,在本地处理和数据模块中存储所有数据并且执行所有计算,允许从远程模块完全自主地使用。
在一些实施例中,经由显示器62提供的计算机生成的图像数据可以产生三维的印象。这可以例如通过向用户60呈现立体图像数据来完成。在一些传统系统中,这样的图像数据可以包括来自略微不同视角的场景或对象的单独的图像。所述单独的图像可以被分别呈现给用户60的右眼和左眼,从而模拟双眼视觉及其相关的深度感知。
现在参考图2B,其中示出了AR或MR系统3300(下文中被称为“系统3300”)的示例性实施例。系统3300使用堆叠的光导光学元件(下文中被称为“LOE 3390”)。系统3300通常包括图像生成处理器3310、光源3320、控制器3330、空间光调制器(“SLM”)3340以及用作多平面聚焦系统的至少一组堆叠的LOE 3390。系统3300还可以包括眼睛跟踪子系统3350。应该理解,其它实施例可以具有多组堆叠的LOE 3390。
图像生成处理器3310被配置为生成要向用户显示的虚拟内容。图像生成处理器3310可以将与虚拟内容相关联的图像或视频转换为可以以3D方式投影给用户的格式。例如,在生成3D内容时,需要设置虚拟内容的格式,使得特定图像的部分在特定深度平面处显示,而其它部分在其它深度平面处显示。在一个实施例中,可以在特定深度平面处生成图像的全部。在另一实施例中,图像生成处理器3310可以被编程为向右眼和左眼提供略微不同的图像,以便当同时观看时,以对于用户的眼睛来说看起来连贯且舒适的方式呈现虚拟内容。
图像生成处理器3310可以进一步包括存储器3312、GPU 3314、CPU 3316以及用于图像生成和处理的其它电路。图像生成处理器3310可以被编程有要呈现给系统3300的用户的所需虚拟内容。应该理解,在一些实施例中,图像生成处理器3310可以被容纳在系统3300中。在其它实施例中,图像生成处理器3310和其它电路可以被容纳在被耦接到系统3300的腰包中。
图像生成处理器3310可操作地被耦接到投射与所需的虚拟内容相关联的光的光源3320和一个或多个空间光调制器3340。光源3320是紧凑光源并且具有高分辨率。光源3320可操作地被耦接到控制器3330。光源3320可以包括以各种几何配置设置的颜色特定的LED和激光器。或者,光源3320可以包括相同颜色的LED或激光器,每个激光器被连接到显示器的视场的特定区域。在另一实施例中,光源3320可以包括广域发射器,例如白炽灯或荧光灯,其具有分割发射区域和位置的遮罩(mask overlay)。尽管在图2B中光源3320被直接连接到系统3300,但是光源3320可以经由光纤(未示出)被连接到系统3300。系统3300还可以包括被配置为对来自光源3320的光进行准直的聚光器(未示出)。
在各种示例性实施例中,SLM 3340可以是反射式(例如,LCOS、FLCOS、DLP DMD或MEMS镜系统)、透射式(例如,LCD)或发射式(例如,FSD或OLED)的。可以选择SLM 3340的类型(例如,速度、尺寸等)以改善3D感知的创建。虽然以较高刷新率操作的DLP DMD可以容易地被并入到固定系统3300中,但是可穿戴系统3300可以使用较小尺寸和功率的DLP。DLP的强大功能改变了3D深度平面/焦平面的创建方式。图像生成处理器3310可操作地被耦接到SLM3340,SLM 3340利用所需的虚拟内容对来自光源3320的光进行编码。来自光源3320的光可以在其从SLM 3340反射、发射或传输通过SLM 3340时用图像信息编码。
来自SLM 3340的光被引导到LOE 3390,使得SLM 3340利用用于一个深度平面和/或颜色的图像数据编码的光束有效地沿着单个LOE 3390传播,以传递到用户的眼睛。每个LOE 3390被配置为将看起来源自期望深度平面或FOV角位置的图像或子图像投射到用户的视网膜上。因此,光源3320和LOE 3390可以选择性地投射看起来源自空间中的各种深度平面或位置的图像(在控制器3330的控制下由SLM 3340同步地进行编码)。通过使用光源3320和LOE 3390中的每一者以足够高的帧速率(例如,有效全容积帧速率为60Hz,对于六个深度平面,帧速率为360Hz)顺序地投射图像,系统3300可以在各种深度平面处生成虚拟对象的3D图像,这些深度平面看起来同时存在于3D图像中。
控制器3330与图像生成处理器3310、光源3320和SLM 3340通信并可操作地被耦接到图像生成处理器3310、光源3320和SLM 3340,以通过指示SLM 3340利用来自图像生成处理器3310的适当图像信息对来自光源3320的光束进行编码来协调图像的同步显示。
系统3300还包括可选的眼睛跟踪子系统3350,该眼睛跟踪子系统3350被配置为跟踪用户的眼睛并确定用户的焦点。在一个实施例中,系统3300被配置为基于来自眼睛跟踪子系统3350的输入来照射LOE 3390的子集,使得图像在与用户的焦点/调节一致的期望深度平面处生成。例如,如果用户的眼睛彼此平行,则系统3300可以照射被配置为将准直光传递到用户的眼睛的LOE 3390,使得图像看起来源自光学无限远。在另一示例中,如果眼睛跟踪子系统3350确定用户的焦点在1米远处,则可以照射被配置为大致在该范围内聚焦的LOE3390。
图2C示出了根据一个实施例的混合现实头戴式显示器3400。混合现实头戴式显示器3400可以形成混合现实系统的一部分(例如,图2A和2B中示出的AR或MR系统)。混合现实头戴式显示器3400包括框架3402,其它部件被固定到框架3402,从而形成类似于一副眼镜或护目镜的形状因子。显示器3400还包括镜腿/垫3404、前额间隔件3406和鼻件3408,它们与框架3402共同起作用以将显示器3400舒适地保持在用户的头部上。框架3402、镜腿/垫3404、前额间隔件3406和鼻件3408都是模块化的并且可以以各种尺寸使用,使得显示器3400的整体形状因子可以被修改以符合用户头部的尺寸和形状。
例如,某些用户的头部可能较长且较窄,而其他用户的头部可能较短且较宽。对于前者的用户,镜腿/垫3404可以更柔和地朝着用户的头部变细,以适应较长且较窄的头部。对于后者的用户,镜腿/垫3404可以更突然地朝着用户的头部变细,以适应较短且较宽的头部。类似地,可以存在多个(例如,三个)前额间隔件3406和鼻件3408,以优化显示器3400在用户头部上的适配。镜腿/垫3404、前额间隔件3406和鼻件3408可以包括在硅树脂外模内的可控/可延展合金,以便于微调配合。镜腿/垫3404可以包括具有硅树脂内表面的塑料衬垫,以便与用户头部的侧面舒适地接触。
框架3402还可具有各种尺寸以适应各种用户的头部。框架3402可以由铝制成,这有利于进行各种表面处理以使显示器3400个性化。示例性表面处理包括但不限于阳极氧化、着色、喷涂和印刷。使用表面处理,可以定制显示器3400以迎合用户的品味和审美。
显示器3400还包括一对投影仪/SLM 3410,以向用户显示用图像数据编码的光。显示器3400还包括一对光学组件3412,以将来自相应投影仪/SLM 3410的光引导到用户的眼睛。上面已经描述了投影仪/SLM 3410和光学组件3412的示例。此外,显示器3400包括一对外部镜片3414,该镜片可以是装饰性的、着色的和/或抗冲击的。从装饰的角度来看,外部镜片3414可以遮蔽外部镜片3414后面的系统部件,以使显示器3400看起来更清洁。在着色方面,外部镜片3414可具有50%至70%的透明度以优化涉及来自虚拟对象和真实世界物理对象二者的光的AR体验。
显示器3400还包括前带3416和传感器盖3418,以保护系统部件,同时在外部镜片3414周围形成显示器3400的连续前部。显示器3400还包括一对内盖3422,用于保护系统部件,同时形成用于邻近用户面部的显示器3400的保护性内表面。此外,显示器3400可以包括一个或多个可选的处方镜片3422,以适应需要矫正镜片的用户。
显示器3400包括邻近框架3402设置的一系列传感器。一对眼睛跟踪相机3424设置在外部镜片3414附近。三个前置相机3426设置在框架3402的顶部附近。惯性测量单元(“IMU”)3428也邻近框架3402的顶部设置。IMU 3428可以包括一个或多个加速度计、陀螺仪和磁力计。IMU 3428可以测量六个自由度中的力、角度变化和/或磁场变化。一对麦克风3430设置在镜腿/垫3404附近。
显示器3400还包括邻近镜腿/垫3404设置的一对扬声器3432。示例性扬声器在序列号为62/369,561(代理案卷号为ML.30041.00)的美国临时专利申请中描述,该专利申请的全部内容通过引用特此明确地全部并入本文中,就像完整阐述一样。如序列号为62/369,561的美国临时专利申请中所述,扬声器3432可以是模块化的,以便可根据用户的偏好更换和/或修改它们。此外,邻近镜腿/垫3404的扬声器3432的位置允许显示器3400与闭合耳机(未示出)一起使用,作为扬声器3432的替代或补充。
显示器3400还包括邻近框架3402的前部中心设置的中心印刷电路板3434。此外,显示器3400包括一对电缆3436以便于与其中包含的处理器的移动计算支持系统(请参见图2D)通信。电缆3436还可以将电力从移动计算支持系统输送到显示器3400。电缆3436可以包括集成光源(例如,小LED或光纤),其使得电缆3436能够发射光或以各种颜色和/或模式发光以表示AR或MR系统的某些功能,例如数据传输、电力传输和/或AR体验的显示。
图2D示出了根据一个实施例的移动计算支持系统3500。移动计算支持系统3500可以形成混合现实系统的一部分(例如,图2A所示的AR或MR系统)。例如,在一个实施例中,移动计算支持系统3500可以可操作地被耦接到图2C所示的混合现实头戴式显示器3400。移动计算支持系统3500包括通过连接器3506连接到长圆形(即,“药丸形”)部分3504的圆形部分3502。圆形部分3502可以容纳诸如处理器之类的计算部件。长圆形部分3504容纳为移动计算支持系统3500供电的电池,并且在一些实施例中,容纳整个混合现实系统,包括混合现实头戴式显示器3400。这样,电池和长圆形部分3504可能产生大量热。
连接器3506将圆形部分3502与长圆形部分3504分开,在它们之间形成空间3508。空间3508使圆形部分3502与长圆形部分3504热绝缘。空间3508还被配置为通过以下方式使得移动计算支持系统3500可移动地固定到衣服口袋(例如,裤子上的臀部口袋)上:即,通过将长圆形部分3504插入口袋,并将圆形部分3502留在口袋外部,从而将形成口袋的织物固定在空间3508中。或者,移动计算支持系统3500可通过系索穿戴在用户的颈部上。
移动计算支持系统3500包括设置在其盘状部分3502的前表面上的电源按钮3510和LED灯3512。移动计算支持系统3500还包括从其盘状部分3502的顶部表面延伸的数据电缆3514。在一个实施例中,数据电缆3514分为两部分,形成被附接到图2C所示的混合现实头戴式显示器3400的一对电缆3436。这样,数据电缆3514可以发射光或以各种颜色和/或模式发光以表示AR或MR系统的某些功能,例如数据传输、电力传输和/或AR体验的显示。圆形部分3502的形状便于通过将数据电缆3514缠绕在圆形部分3502的周围来存放数据电缆3514。可通过在圆形部分3502的周边周围包括凹槽(未示出)来进一步便于上述存放。
移动计算支持系统3500还包括设置在其盘状部分3502的左表面(进气口3516和排气口3518)和右表面(进气口3516)上的两个进气口3516和一排气口3518。移动计算支持系统3500还包括被设置在其盘状部分3502的左表面上的控制按钮3520(例如,静音、音量增大和音量减小)。此外,移动计算支持系统3500包括被设置在其盘状部分3502的左表面上的耳机插孔3522。该插孔3522便于将耳机连接到可以与混合现实头戴式显示器3400上的扬声器3432一起使用的AR或MR系统。此外,移动计算支持系统3500包括被设置在其底部表面上的端口3524。在一个实施例中,端口3524是用于传输数据和电力的USB端口。
图2D以分解图示出了图2C中示出的移动计算支持系统3500。图2E示出了,圆形部分3502和长圆形部分3504中的每一者包括前置装饰盖。电源按钮3510延伸穿过圆形部分3502的装饰盖。通过圆形部分3502的装饰盖可以看到LED灯3512。
图2F示出了根据一个实施例的图腾控制器3600。图腾控制器3600可以形成混合现实系统的一部分(例如,图2A和2B所示的AR或MR系统)。例如,在一个实施例中,图腾控制器3600可以可操作地被耦接到图2C到2E中示出的混合现实头戴式显示器3400和移动计算支持系统3500。图腾控制器3600包括圆形触摸板3602,该触摸板被设置在图腾控制器的顶部表面上并且被配置为由用户的拇指操纵。圆形触摸板3602可以是电容式触摸板,被配置为记录X轴和Y轴上的运动以及对触摸板3602的向下按压。圆形触摸板3602可以包括聚合物涂层,使得其摸上去柔软。图腾控制器3600还包括各种其它控制表面3604(例如,按钮、触发器等)。圆形触摸板3602和控制表面3604允许用户与各种程序交互,包括AR体验、生产力应用和游戏应用。图腾控制器3600还可以包括IMU和LED灯(例如,围绕圆形触摸板3602)。
在一些实施例中,图2C至2F所示的混合现实头戴式显示器3400、移动计算支持系统3500和图腾控制器3600形成混合现实系统,以供用户体验并与混合现实体验交互。在一个这样的实施例中,混合现实头戴式显示器3400、移动计算支持系统3500、图腾控制器3600和连接这些部件的电缆都包括LED灯(例如,图腾控制器3600中的12个RGB LED灯),这些LED灯在颜色、定时和模式方面同步,以指示混合现实系统的各种状态和由混合现实系统执行的功能。可以由LED灯指示的状态和功能的示例包括通知、校准和电源状态。
虽然已经描述了包括图2C至2F所示的混合现实头戴式显示器3400、移动计算支持系统3500和图腾控制器3600的示例性混合现实系统,但是其它混合现实系统可以包括更少、更多、不同的系统部件。例如,在一个实施例中,当穿戴着具有混合现实头戴式显示器3400、移动计算支持系统3500以及图腾控制器3600的混合现实系统的用户走进包括兼容服务器或基站(未示出)的房间时,混合现实系统可以自动地或根据用户输入而连接到服务器或基站,使得其被添加为混合现实系统的部件。
在其它实施例中,当穿戴着具有混合现实头戴式显示器3400和移动计算支持系统3500以及图腾控制器3600的混合现实系统的用户走进包括兼容服务器或基站(未示出)的房间时,混合现实系统可以自动地或根据用户输入而断开与移动计算支持系统3500的连接并关闭移动计算支持系统3500,并连接到服务器或基站。在这样的实施例中,服务器或基站替代移动计算支持系统3500以节省其电力。在这些实施例中,混合现实头戴式显示器3400和图腾控制器3600具有允许它们从服务器或基站汲取电力的单独电源或电缆。
在又一实施例中,键盘可以被连接到混合现实头戴式显示器3400,替代移动计算支持系统3500和图腾控制器3600二者。这些和其它系统配置被包括在本公开的范围内。
图2G是VR/AR/MR系统80框图(例如,用于类似于图2A所示的系统的系统80),其中包括用于实现VR/AR/MR系统的远端定位部件。作为一种选择,VR/AR/MR系统80或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。VR/AR/MR系统80或其任何方面可以在任何环境中实现。
图2G所示的实施例仅是一个示例。如图所示,VR/AR/MR系统80框图示出了HMD或头戴装置(如图所示)形式的本地处理模块70的具体实现,其包括内置感知处理器或计算机视觉处理器(“CVPU”)85、腰包形式的远程处理模块72的具体实现,以及可通过路径78访问的存储器形式的远程数据储存库74的具体实现。可以将“CVPU”称为“感知处理器”,或将“感知处理器”称为“CVPU”。另外,显示系统62包括投影仪65,该投影仪又可以包括光源(例如,LED/激光模块)或空间光调制器(SLM)(例如,硅上液晶(LCOS)模块)和显示光学器件(例如,左显示光学器件811和右显示光学器件812)。示例性光源包括LED和激光模块(例如,激光二极管或“LD”模块)。
VR/AR/MR系统80通常包括腰包(如图所示),腰包又可包括图像生成处理器10、头戴装置(如图所示)和目镜,而目镜又可以包括投影仪65。
图像生成处理器10或腰包的任何其它构成部件被配置为生成要向用户显示的虚拟内容。图像生成处理器10可以将与虚拟内容相关联的图像或视频转换为能够以3D方式投射(例如,使用投影仪65的部件)到用户的格式。例如,在生成3D内容时,可能需要设置虚拟内容的格式,以使得特定图像的部分显示在特定深度平面处,而其它部分显示在其它深度平面处。在一个实施例中,可以在特定深度平面处生成图像的全部。在另一实施例中,图像生成处理器可以被编程为向右眼和左眼提供略微不同的图像,以便当同时观看时,以对于用户的眼睛看起来连贯且舒适的方式呈现虚拟内容。
图像生成处理器10还可以包括存储器、GPU、CPU和用于图像生成和处理的其它电路。在一些情况下,GPU和CPU体现为单个芯片(例如,现成的芯片或定制的片上系统(SOC)实现)。在其它情况下,GPU处理器在腰包和感知处理器/CVPU之间被分开。图像生成处理器10可以用要呈现给VR/AR/MR系统80的用户的期望虚拟内容编程。应该理解,在一些实施例中,图像生成处理器10可以被容纳在采用除腰包之外的形式的VR/AR/MR系统80的可穿戴部件中。在一些实施例中,图像生成处理器10和其它电路通过电缆被连接或无线地被连接或被耦接到头戴装置。
投影仪65内的光源可以由LED、激光部件或SLM/LCOS部件形成。光源可以包括以各种几何配置设置的颜色特定的LED和/或激光器。或者,光源可以包括相同颜色的LED或激光器,每个激光器被连接到显示器的视场的特定区域。在另一实施例中,光源3320可以包括广域发射器,例如白炽灯或荧光灯,其具有分割发射区域和位置的遮罩。光源可以经由光纤而被连接到系统。该系统还可以包括被配置为对来自光源的光进行准直的聚光器(未示出)。
控制器30与图像生成处理器10和投影仪65内的光源进行通信并可操作地被耦接到图像生成处理器10和投影仪65内的光源,以通过指示光源投射来自图像生成处理器10的适当图像信息来协调图像的同步显示。在一些情况下,VR/AR/MR系统80还包括上述眼睛跟踪子系统,该眼睛跟踪子系统被配置为跟踪用户的眼睛并确定用户的焦点。
现在参考所示的头戴装置,该头戴装置可以包括被配置为与各种换能器接口的CVPU 85。例如,CVPU 85可以从麦克风或从专用声音或语音处理器接收音频或语音信号。此外,CVPU 85可通过所示的扬声器(或耳塞)产生音频或语音信号。在一些情况下,CVPU 85与前述眼睛跟踪子系统接口,和/或CVPU 85与一个或多个加速度计和/或其它形式的惯性测量装置连接,以便跟踪用户头部和/或身体运动。CVPU 85可以组合同时接收的换能器输入以制定对用户姿势(例如,头部姿势、眼睛姿势、躯干姿势等)的评估。CVPU 85可以组合同时接收的换能器输入以制定对用户姿势的评估,该评估包括有关改变用户姿势(例如,转弯、站立、行走、跑步、做手势等)的特征的时间预测。CVPU 85还能够执行(1)图形/图像处理,(2)语音处理(例如,音素或字检测),(3)通信(例如,信令和/或基于包的通信等),以及(4)通用计算,例如基于给定的或测量的输入而计算值。
可以使用构成部件的各种划分来实现头戴装置。在下图中给出了一个这样的划分,其包括若干构成部件之间的数据流。
图2H示出了用于在VR/AR/MR系统80中实现头戴装置的部件的布置。作为一种选择,该布置或部件或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。
图2H所示的实施例仅是一个示例。如图所示,部件的布置支持包括感测数据(例如,来自加速度计)的数据流,该感测数据源自本地处理模块,然后被传递到远程处理模块。在使用远程处理模块的CPU和/或GPU进行处理之后,诸如图像信息之类的VR/AR/MR数据(包括深度和其它空间信息)被传递到本地处理模块的构成部件以向用户显示,可能使用投影仪(例如,所示的投影仪)。本文进一步讨论了所示的流程以及某些替代流程和部件布置,其用于降低功耗、缩短延迟,降低通信开销等的目的。
图3示出了用于为用户(例如,用户60)模拟三维图像数据的传统显示系统。向用户输出两个不同的图像84和86,其中为每只眼睛4和5输出一个图像。图像84和86沿着与用户60的视线平行的光轴或z轴与眼睛4和5相隔一距离12。图像84和86是平坦的,眼睛4和5可通过假设单个调节状态而聚焦在该图像上。这样的系统依赖于人类视觉系统来组合图像84和86以提供组合图像的深度感。
然而,应该理解,人类视觉系统更复杂并且提供逼真的深度感更具挑战性。例如,传统的3D显示系统的许多用户发现这样的系统不舒服或者根本无法感觉到深度感。不受理论的限制,据信观看对象的用户可能由于聚散和调节的组合而将对象感知为“三维的”。两只眼睛相对于彼此的聚散运动(即,瞳孔朝向彼此或远离彼此滚动运动以使眼睛的视线会聚以注视对象)与眼睛的晶状体的聚焦(或“调节”)密切相关。在正常情况下,改变眼睛的晶状体的焦点或调节眼睛,以将焦点从一个对象改变到不同距离处的另一对象将根据被称为“调节-聚散反射”的关系而自动导致与同一距离匹配的聚散变化。同样,在正常情况下,聚散的变化将触发调节的匹配变化。如本文所述,许多立体显示系统使用略微不同的呈现(以及,因此略微不同的图像)向每只眼睛显示场景,使得人类视觉系统感知到三维透视。这样的系统对于许多用户来说是不舒服的,因为它们简单地提供场景的不同呈现,而眼睛在单个调节状态下观看所有图像信息,因此违反“调节-聚散反射”而起作用。在调节与聚散之间提供更好匹配的系统可以形成更逼真和舒适的三维图像数据模拟。
例如,可以将光场视频数据呈现给用户以模拟三维视图。光场视频数据可以模拟在真实世界环境中进入用户60的眼睛的光线。例如,当显示光场视频数据时,可以使来自被模拟为在一距离处感知的对象的光线在进入用户的眼睛时变得更加准直,而来自被模拟为在附近被感知的对象的光线变得更加发散。因此,来自一场景中的对象的光线进入用户眼睛的角度取决于这些对象与观看者的模拟距离。VR/AR/MR系统中的光场视频数据可以包括来自不同深度平面的场景或对象的多个图像。这些图像对于每个深度平面都可以是不同的(例如,一个深度平面可以包括与场景的前景对应的图像,而另一深度平面包括与场景的背景对应的图像),并且可以由观看者的眼睛单独聚焦,从而有助于为用户提供舒适的深度感。
当这些多个深度平面图像同时或快速连续地呈现给观看者时,结果被观看者解释为三维图像。当观看者体验这种类型的光场视频数据时,眼睛以与体验真实场景时相同的方式适应为聚焦不同的深度平面。这些焦点线索可以提供更逼真的模拟三维环境。
在一些配置中,在每个深度平面处,可通过覆盖各自具有特定分量颜色的分量图像来形成全色图像。例如,可以分别输出红色、绿色和蓝色图像以形成每个全色深度平面图像。结果,每个深度平面可以具有与其相关联的多个分量颜色图像。
图4示出了使用多个深度平面模拟三维图像的方法的各方面。由眼睛(4、5)调节在z轴上距眼睛4和5各种距离处的对象,以使这些对象处于聚焦状态。眼睛4和5呈现特定的调节状态,以使对象在沿z轴的不同距离处聚焦。因此,可以说,特定的调节状态与深度平面14中的特定的一个深度平面相关联,以使得当眼睛处于用于一特定深度平面的调节状态时,该深度平面中的对象或对象的部分对焦。在一些实施例中,可通过为每只眼睛(4、5)提供图像数据的不同呈现,并且还通过提供与每个深度平面对应的图像数据的不同呈现,来模拟三维图像数据。
对象与眼睛(4或5)之间的距离可以改变来自该眼睛所看到的该对象的光的发散量。图5A至5C示出了距离与光线发散之间的关系。对象与眼睛4之间的距离以逐渐减小的距离R1、R2和R3的顺序表示。如图5A至5C所示,随着从眼睛4到对象的距离减小,光线变得更加发散。随着从眼睛4到对象的距离的增加,光线变得更加准直。换句话说,可以说,由点(对象或对象的部分)产生的光场具有球面波前曲率,球面波前曲率是该点离用户眼睛4多远的函数。曲率随着对象与眼睛4之间的距离的减小而增加。因此,在不同的深度平面处,光线的发散程度也不同,发散程度随着深度平面与眼睛4之间的距离的减小而增加。虽然为了清楚说明而在图5A至图5C和本文的其他图中仅示出了单只眼睛4,但是应当理解,关于眼睛4的讨论可以适用于观看者的双眼(4和6)。
不受理论的限制,据信人眼通常可以解释有限数量的深度平面以提供深度感知。因此,通过向眼睛提供与这些有限数量的深度平面中的每一个相对应的图像数据的不同呈现,可以实现高度可信的感知深度模拟。
图6示出了用于将图像数据输出给用户(例如,用户60)的波导堆叠的示例。显示系统1000包括波导堆叠或堆叠的波导组件178,其可用于使用一个或多个波导(182、184、186、188、190)向眼睛/大脑提供三维感知。在一些实施例中,显示系统1000是图2A的系统80,图6更详细地示意性地示出了系统80的一些部分。例如,堆叠波导组件178可以被集成到图2A的显示器62中。
堆叠波导组件178还可以包括位于波导之间的一个或多个特征(198、196、194、192)。在一些实施例中,特征(198、196、194、192)可以是透镜。波导(182、184、186、188、190)和/或透镜(198、196、194、192)可以被配置为以各种级别的波前曲率或光线发散度向眼睛发送图像数据。每个波导层级可以与特定深度平面相关联,并且可以被配置为输出对应于该深度平面的图像数据。图像注入装置(200、202、204、206、208)可被用于将图像数据注入到波导(182、184、186、188、190)中,如本文所述,每个波导可以被配置为使入射光分布跨过每个相应的波导,以朝向眼睛4输出。光从图像注入装置(200、202、204、206、208)的输出表面(300、302、304、306、308)射出,并且被注入到波导(182、184、186、188、190)的相应输入边缘(382、384、386、388、390)中。在一些实施例中,可以将单个光束(例如,准直光束)注入到每个波导中以输出克隆的准直光束的整个场,所述克隆的准直光束以特定角度(和发散量)被导向眼睛4,所述特定角度(和发散量)对应于与特定波导相关联的深度平面。
在一些实施例中,图像注入装置(200、202、204、206、208)是离散显示器,每个离散显示器产生用于注入到对应的波导(分别为182、184、186、188、190)中的图像数据。在一些其它实施例中,图像注入装置(200、202、204、206、208)是单个多路复用显示器的输出端,多路复用显示器可以经由一个或多个光学导管(例如,光纤光缆)将图像数据通过管道传输到图像注入装置(200、202、204、206、208)中的每一者。
控制器210控制堆叠波导组件178和图像注入装置(200、202、204、206、208)的操作。在一些实施例中,控制器210包括编程(例如,非暂时性计算机可读介质中的指令),该编程根据本文公开的各种方案中的任何方案,调节定时和向波导(182、184、186、188、190)提供图像数据。在一些实施例中,控制器210可以是单个整体设备,或者是通过有线或无线通信信道连接的分布式系统。在一些实施例中,控制器210可以是处理模块(例如,图2A的本地处理和数据模块70和/或远程处理模块72)的一部分。
波导(182、184、186、188、190)可以被配置为通过全内反射(TIR)在每个相应的波导内传播光。波导(182、184、186、188、190)可以各自是平面的或弯曲的,具有顶部主表面和底部主表面以及在这些顶部主表面和底部主表面之间延伸的边缘。在所示的配置中,波导(182、184、186、188、190)可各自包括光重定向元件(282、284、286、288、290),这些元件被配置为将在每个相应的波导内传播的光重定向出波导,以将图像数据输出到眼睛4。在波导内传播的光照射到光重定向元件的位置处,由波导输出光束。光重定向元件(282、284、286、288、290)可以是反射式和/或衍射式的光学特征。尽管为了便于描述和描绘清楚而示出为被设置在波导(182、184、186、188、190)的底部主表面处,但是在一些实施例中,光重定向元件(282、284、286、288、290)可以被设置在顶部和/或底部主表面处,和/或可以被直接设置在波导(182、184、186、188、190)的体中。在一些实施例中,光重定向元件(282、284、286、288、290)可以被形成在附接到透明基板的材料层中,以形成波导(182、184、186、188、190)。在一些其它实施例中,波导(182、184、186、188、190)可以是单片材料,并且光重定向元件(282、284、286、288、290)可以被形成在该片材料的表面上和/或内部中。
如本文所讨论的,每个波导(182、184、186、188、190)被配置为输出光以形成对应于特定深度平面的图像。例如,最靠近眼睛4的波导182可以被配置为将注入这种波导182的准直光传送到眼睛4。该准直光可以代表光学无限远焦平面。下一上行波导184可以被配置为发出准直光,该准直光在可以到达眼睛4之前传输通过第一透镜192(例如,负透镜)。第一透镜192可以被配置为产生轻微凸起的波前曲率,使得眼睛/大脑将来自该下一上行波导184的光解释为来自从光学无限远向内更靠近眼睛4的第一焦平面。类似地,第三上行波导186使其输出光在到达眼睛4之前传输通过第一透镜192和第二透镜194;第一透镜192和第二透镜194的组合光焦度可以被配置为产生波前曲率的另一增量,使得眼睛/大脑将来自第三波导186的光解释为来自从光学无限远向内进一步更靠近用户的第二焦平面,而不是来自向下一上行波导184的光。
其它波导(188、190)和透镜(196、198)被类似地配置,其中堆叠中的最高波导190将其输出发送通过其与眼睛之间的全部透镜,以获得代表距用户最近的焦平面的总光焦度。为了在观看/解释来自堆叠波导组件178的另一侧上的世界144的光时补偿透镜堆叠(198、196、194、192),可以在堆叠波导组件178的顶部处设置补偿透镜层180,以补偿下面的透镜堆叠(198、196、194、192)的总焦度。这种配置提供与可用的波导/透镜配对一样多的感知焦平面。波导的光重定向元件和透镜的聚焦方面都可以是静态的(即,不是动态的或电活性的)。在一些替代实施例中,通过使用电活性特征,它们可以是动态的。
光重定向元件(282、284、286、288、290)可以被配置为既将光重定向到它们相应的波导之外,也为与该波导相关联的特定深度平面输出具有适当的发散量或准直量的该光。结果,具有不同的关联深度平面的波导可以具有不同配置的光重定向元件(282、284、286、288、290),这些元件根据关联的深度平面输出具有不同发散量的光。在一些实施例中,如本文所述,光重定向元件(282、284、286、288、290)可以是体积特征或表面特征,其可以被配置为以特定角度输出光。例如,光重定向元件(282、284、286、288、290)可以是体积全息、表面全息和/或衍射光栅。诸如衍射光栅之类的光重定向元件在2015年3月7日提交的美国专利申请No.14/641,376中描述,该申请的全部内容通过引用并入本文中。在一些实施例中,特征(198、196、194、192)可以不是透镜;相反,它们可以简单地是间隔物(例如,包层和/或用于形成气隙的结构)。
在一些实施例中,光重定向元件(282、284、286、288、290)是形成衍射图案的衍射特征,或“衍射光学元件”(在本文中也被称为“DOE”)。优选地,DOE具有相对低的衍射效率,使得只有一部分光束借助DOE的每个交叉点向眼睛4偏转,而其余部分经由全内反射继续移动通过波导。因此,携带图像数据的光被分为多个相关的出射光束,这些出射光束在多个位置处离开波导,结果是对于在波导内四处反射的此特定准直光束,形成朝着眼睛4出射的相当均匀的图案。
在一些实施例中,一个或多个DOE可以在它们活跃地衍射的“开启”状态和它们不显著衍射的“关闭”状态之间可切换。例如,可切换的DOE可以包括聚合物分散液晶层,其中,微滴包括处于主体介质中的衍射图案,并且微滴的折射率可以被切换为基本匹配主体材料的折射率(在这种情况下,图案不会显著地衍射入射光)或者微滴可以被切换为与主体介质的折射率失配的折射率(在这种情况下,图案活跃地衍射入射光)。
图7示出了由波导输出的出射光束的示例。示出了一个波导,但是应该理解,堆叠波导组件178中的其它波导可以类似地起作用。光400在波导182的输入边缘382处被注入到波导182中,并通过TIR在波导182内传播。在光400照射在DOE 282上的点处,一部分光作为出射光束402离开波导。出射光束402被示为基本上平行,但是如本文所讨论的,它们也可以被重定向为以一角度(例如,形成发散的出射光束)传播到眼睛4,该角度取决于与波导182相关联的深度平面。可以理解,基本上平行的出射光束可以指示与在距眼睛4较远的模拟距离(例如,光学无限远)处的深度平面对应的波导。其它波导可以输出更加发散的出射光束图案,这将要求眼睛4调节以聚焦在更近的模拟距离处,并且将被大脑解释为来自比光学无限远更靠近眼睛4的距离的光。
图8示意性地示出了堆叠波导组件(例如,堆叠波导组件178)的示例设计,其中每个深度平面具有三个相关联的波导,每个波导输出不同颜色的光。通过以多种分量颜色(例如,三种或更多种分量颜色)中的每一者覆盖图像,可以在每个深度平面处形成全色图像。在一些实施例中,分量颜色包括红色、绿色和蓝色。在一些其它实施例中,其它颜色(包括品红色、黄色和青色)可以与红色、绿色或蓝色中的一种结合使用或者可以替代红色、绿色或蓝色中的一种。每个波导可以被配置为输出特定分量颜色,因此,每个深度平面可以使多个波导与其相关联。每个深度平面可以使三个波导与其相关联:第一个用于输出红光,第二个用于输出绿色光,第三个用于输出蓝色光。
图8示出了深度平面14a至14f。在所示实施例中,每个深度平面使三个分量颜色图像与其相关联:第一颜色G的第一图像;第二颜色R的第二图像;第三颜色B的第三图像。这些字母中的每一者后面的数字表示屈光度(1/m),或该深度平面距观看者的视距(apparentdistance)的倒数,并且图中的每个框表示单独的分量颜色图像。在一些实施例中,G是绿色,R是红色,B是蓝色。如上所述,所感知的该深度平面距用户的距离可以由光重定向元件(282、284、286、288、290)(例如,衍射光学元件(DOE))和/或透镜(198、196、194、192))建立,使得光以与视距相关联的角度发散。
在一些布置中,每个分量颜色图像可以由波导堆叠中的不同波导输出。例如,每个深度平面可以使三个分量颜色图像与其相关联:第一波导用于输出第一颜色G;第二波导用于输出第二颜色R;第三波导用于输出第三颜色B。在其中波导被用于输出分量颜色图像的布置中,图8中的每个框可以被理解为表示单独的波导。
虽然为了便于描述,在此示意图中与每个深度平面相关联的波导被示出为邻近彼此,但应当理解,在物理设备中,波导可以全部被布置为堆叠形式,其中每层一个波导。对于字母G、R和B之后的屈光度,图中用不同的数字表示不同的深度平面。
附图的定义和使用
下面定义了在本说明书中使用的一些术语作为参考。所给出的术语及其相应的定义不严格限于这些定义—术语可通过本公开内的术语使用进一步限定。术语“示例性”在本文中用于表示用作示例、实例或说明。在本文中描述为“示例性”的任何方面或设计不必被解释为比其它方面或设计更优选或更具优点。相反,单词“示例性”的使用旨在以具体的方式呈现概念。如在本申请和所附权利要求中所使用的,术语“或”旨在表示包含性的“或”,而非排他性的“或”。也就是说,除非另有说明或根据上下文是显而易见的,否则“X使用A或B”旨在表示任何自然的包含性全排列。也就是说,如果X使用A,X使用B,或者X同时使用A和B,则在任何前述实例中都满足“X使用A或B”。如在本文中所使用的,A或B中的至少一个意指至少一个A,或至少一个B,或A和B中的至少一个。换句话说,该短语是区别连词。本申请和所附权利要求中使用的冠词“一”和“一个”应一般被理解为表示“一个或多个”,除非另有说明或根据上下文明确地涉及单数形式。
在本文中参考附图描述了各种实施例。应当注意,附图不一定按比例绘制,并且在整个附图中有时用相同的参考标号表示相似结构或功能的元件。还应注意,附图仅旨在便于描述所公开的实施例——它们不代表对所有可能实施例的穷举处理,并且它们不旨在对权利要求的范围进行任何限制。另外,所示实施例不需要描绘在任何特定环境中的用途的所有方面或优点。
结合特定实施例描述的方面或优点不必限于该实施例,并且也可以在任何其它实施例中实践,即使这些其它实施例未如此示出。本说明书通篇对“一些实施例”或“其它实施例”的提及是指结合这些实施例描述的特定特征、结构、材料或特性被包括在至少一个实施例中。因此,贯穿本说明书在各个地方出现的短语“在一些实施例中”或“在其它实施例中”不一定指相同的一个或多个实施例。所公开的实施例不旨在限制权利要求。
显示时序方案
在一些实施例中,VR/AR/MR系统(例如,系统80)通过针对给定的视频数据帧连续地显示多个不同的深度平面来提供光场视频数据。然后,系统80更新到下一视频数据帧,并针对该帧连续显示多个不同的深度平面。例如,第一视频数据帧实际上可以包括三个单独的视频数据子帧:远场帧D0、中场帧D1和近场帧D2。D0、D1和D2可以连续地显示。随后,可以显示第二视频数据帧。第二视频数据帧同样可以包括连续显示的远场帧、中场帧和近场帧,以此类推。虽然该示例使用三个深度平面,但是光场视频数据不受此限制。而是,可以使用任意多个深度平面,具体取决于例如期望的视频帧速率和系统80的能力。
由于每个光场视频数据帧包括用于不同深度平面的多个子帧,因此,提供光场视频数据的系统80可受益于能够具有高刷新率的显示面板。例如,如果系统80以120Hz的帧速率显示视频数据,但包括来自多个不同深度平面的图像数据,则显示器62需要能够具有大于120Hz的刷新率,以便适应用于每个视频数据帧的图像数据的多个深度平面。在一些实施例中,使用硅上液晶(LCOS)显示面板,但也可以使用其它类型的显示面板(包括彩色顺序制显示器和非彩色顺序制显示器)。
图9示出了用于显示光场视频数据的VR/AR/MR系统(例如,系统80)的示例性时序方案。在该示例中,视频帧速率是120Hz并且光场视频数据包括三个深度平面。在一些实施例中,连续而非同时显示每个帧的绿色、红色和蓝色分量。在一些实施例中,红色、绿色和蓝色分量不具有相同的活动(即“开启”)时间。在一些实施例中,红色、绿色和蓝色分量中的一者或多者可以在帧内重复若干次。
120Hz的视频帧速率允许8.333ms,在该8.333ms中显示单个视频数据帧的所有深度平面。如图9所示,每个视频数据帧包括三个深度平面,每个深度平面包括绿色、红色和蓝色分量。例如,深度平面D0包括绿色子帧G0、红色子帧R0和蓝色子帧B0。类似地,深度平面D1分别包括绿色、红色和蓝色子帧G1、R1和B1,深度平面D2分别包括绿色、红色和蓝色子帧G2、R2和B2。假设每个视频帧包括三个深度平面,并且每个深度平面具有三个颜色分量,则所分配的8.333ms被分为9个段,每个段0.926ms。如图9所示,在第一时间段期间显示用于第一深度平面的绿色子帧G0,在第二时间段期间显示用于第一深度平面的红色子帧R0,以此类推。用于每个视频帧的总绿色开启时间为2.778ms。用于每帧的总红色开启时间和蓝色开启时间也是如此。然而,应该理解,也可以使用其它视频帧速率,在这种情况下,可以相应地调整图9所示的特定时间间隔。虽然各个颜色分量被示出为具有相同的显示时间,但这不是必需的,并且颜色分量之间的显示时间的比率可以变化。此外,图9中针对深度平面和颜色分量子帧示出的闪烁顺序仅是一个示例。也可以使用其它闪烁顺序。此外,虽然图9示出了使用彩色顺序制显示技术的实施例,但是本文中描述的技术不限于彩色顺序制显示器。
其它显示时序方案也是可能的。例如,帧速率、深度平面数量和颜色分量可以变化。在一些实施例中,如本文中所述的系统的帧速率是80Hz,并且存在三个深度平面。在一些实施例中,可以在不同的帧中显示不同的深度平面。例如,通过以120Hz的帧速率每帧显示两个深度平面,可以以60Hz的有效帧速率显示具有四个深度平面的光场视频数据(深度平面D0和D1可以在第一8.33ms中显示,并且深度平面D2和D3可以在下一8.33ms内显示——对于60Hz的有效帧速率,在16.7ms中提供全深度信息)。在一些实施例中,所示的深度平面数量可以在显示器上在空间上变化。例如,可以在用户60的视线内的显示器子部分中显示更多数量的深度平面,并且可以在位于用户60的外围视野内的显示器62的子部分中显示更少数量的深度平面。在这样的实施例中,可使用眼睛跟踪器(例如,相机和眼睛跟踪软件)来确定用户60正在观看显示器62的哪个部分。
视频数据的控制数据
图10示出了根据一个实施例的包括附加控制数据的视频数据帧的示例格式。如图10所示,每个帧包括控制数据1010和图像数据1020。图像数据1020可以是被格式化为行(行0001到行0960)和列(列0000到列1279)的像素数据阵列。在所示的示例中,存在1280列和960行的图像数据1020,这些图像数据形成图像。图10还示出了控制数据1010可以被附加到图像数据1020。控制数据1010例如可以作为额外的行被附加到图像数据1020。在一些配置中,控制数据1010可以是在水平或垂直消隐时间期间发送的控制数据包(control packet)或元数据。第一行(行0000)包括控制数据1010,而其余行(行0001至0960)包括图像数据1020。因此,在该实施例中,主机将1280×961的分辨率发送到显示控制器,其中图像数据1020是1280×960,控制数据是1280×1。
显示控制器读取附加的控制数据1010并且使用它,例如以配置发送到一个或多个显示面板(例如,左眼和右眼显示面板)的图像数据1020。在该示例中,控制数据1010的行不被发送到显示面板。因此,当主机以1280×961的分辨率将包括控制数据1010和图像数据1020的数据流发送到显示控制器时,显示控制器从数据流中移除控制数据1010,并且仅以1280×960的分辨率将图像数据1020发送到显示面板。尽管在其它实施例中,控制数据1010也可以被发送到显示面板以控制图像数据1020如何被显示。在这样的实施例中,控制数据1010可以在显示器62上显示图像数据1020之前由显示驱动器移除。图像数据1020可以以例如显示串行接口(DSI)格式被发送到显示面板(例如,LCOS显示面板)。
虽然图10示出了附加控制数据1010是被附加在每个视频数据帧的开始处的单个行,但是可替代地附加其它量的控制数据。例如,控制数据1010可以是多个行或部分行。此外,控制数据1010不一定必须被附加在每个帧的开始处,而是可以替代地在其它位置处(例如,在消隐时间期间)被插入到帧中。例如,控制数据1010可以被插入在图像数据1020的行之间,或者可以被附加在图像数据1020的结尾处。此外,控制数据1020不一定需要被提供为一个或多个行(或者部分行),而是可以替代地被提供为设置在图像数据1020的左侧的一个或多个列(或部分列)(例如,列0000),设置在图像数据1020的右侧的一个或多个列(或部分列)(例如,列1279),或者在图像数据1020的列之间。在帧开始处附加控制数据1010可以允许控制器更容易地作用于在帧开始处的控制数据110,而在帧结尾处附加控制数据1010可以允许控制数据1010较新。这些方法中的任何一种都可以是有益的,具体取决于控制数据1010所涉及的特定操作。
图11示出了根据另一实施例的包括控制数据的视频数据帧的另一示例格式。图11示出了包括控制数据1110和图像数据1120的视频数据帧。图11的帧类似于图10的帧,只是插入图11的控制数据1110来代替图11的图像数据1120的第一行,而图10的控制数据1010被附加在图10的图像数据1020的第一行之前。因此,帧的第一行(行0000)包括控制数据1110,而剩余的行(行0001至0959)包括图像数据1120。
在该示例中,主机以1280×960的分辨率向显示控制器发送信息。显示控制器可以使用控制数据1110来配置被发送到显示面板的图像数据1120。然后,显示控制器将图11所示的帧发送到显示面板。然而,在一些实施例中,在将帧发送到显示面板之前,显示控制器可通过例如将图像数据的该行设置为零来移除控制数据1110。这导致每个帧的第一行在显示屏上显示为暗线。
使用图11所示的方案,控制数据1110可以与帧一起被包括,而不改变发送到显示控制器的信息的分辨率。然而,该示例中的折衷是,由于一些图像数据被控制数据1110代替,有效显示分辨率降低。尽管图11示出控制数据1110是一个行,但是也可以使用其它量的控制数据1110。例如,控制数据1110可以是多个行或部分行。此外,尽管图11示出了代替图像数据的第一行而使控制数据1110插入,但是也可以替代地代替帧中的另一行而使控制数据1110插入。例如,控制数据1110可以被插入来代替图像数据1120的其它行之间的图像数据1120的一行,或者可以其被提供为位于图像数据1120的结尾处的一行。此外,控制数据1110不一定需要被提供为一个或多个行(或部分行),而是可以被提供为设置在图像数据1120的左侧的一个或多个列(或部分列)(例如,列0000)、设置在图像数据1120的右侧的一个或多个列(例如,列1279),或者位于图像1120的列之间。
例如图10和图11中分别示出的控制数据1010和1110(稍后在图12A和12B中示出)可被用于多种不同的目的。例如,控制数据可以指示应该在左眼视频面板还是右眼视频面板上显示视频数据帧。控制数据可以指示图像数据对应于一个或多个深度平面(真实的或虚拟的)中的哪一个,如下面进一步描述的。控制数据可以指示光场视频数据的闪烁顺序。例如,控制数据可以指示显示每个深度平面的顺序,以及显示用于每个深度平面的颜色分量子帧的顺序。
另外,例如分别在图10和11中示出的控制数据1010和1110可被用于指示要对例如分别在图10和图11中示出的图像数据1020和1120执行的一个或多个图像变形操作。图像变形操作可以包括例如图像旋转和/或像素移位(向左/右或上/下)。在GPU已经生成用于显示的内容之后,可能出现执行这种图像变形操作的需要。这可能是由于例如用户60的头部姿势的变化,或者用户60用来与虚拟对象或场景交互的有形对象(被称为“图腾”)的取向的变化。不是调整和重新渲染分别在图10和11中示出的图像数据1020和1120,控制数据1010和1110而是可以包括图像变形信息,该信息指定显示控制器应该对图像数据执行的像素移位或图像旋转的方向和幅度。在一些实施例中,控制数据可以包括头部姿势数据和/或图腾姿势数据,这些数据可被用于确定要执行的一个或多个图像变形操作。控制数据1010和1110可以进一步包括时间同步数据,该时间同步数据可被用于使头部姿势数据和/或图腾姿势数据与要执行的图像变形操作同步。下面进一步描述基于嵌入式控制数据1010和1110的图像变形。
控制数据还可以指示是否应该将用于两个立体显示器中的一个立体显示器的视频数据帧复制到另一个中。例如,在最远模拟深度平面(例如,背景图像)的情况下,右眼图像和左眼图像之间可能存在相对小的差异(例如,由于视差移位)。在这种情况下,控制数据可以指示针对一个或多个深度平面,将立体显示器中的一个立体显示器的图像复制到另一立体显示器。这可以在不重新渲染右眼和左眼显示器的GPU处的图像数据或者将数据重新传输到显示控制器的情况下实现。如果右眼图像和左眼图像之间存在相对较小的差异,则也可以使用像素移位进行补偿而无需重新渲染或重新传输用于双眼的图像数据。
图10和图11中所示的控制数据也可以用于除了在此具体列举的那些之外的其它目的。
虽然图10和11示出了一行或多行控制数据可以与图像数据一起被包括,但是控制数据也可以(或者替代地)被嵌入在图像数据的个体(individual)像素中。图12A示出了包括嵌入式控制数据1240的图像数据的像素1200的示例格式。图12A示出了像素1200包括蓝色值1230(字节0)、绿色值1220(字节1)和红色值1210(字节2)。在该实施例中,每个颜色值具有8位的颜色深度。在一些实施例中,与颜色值中的一个或多个对应的一个或多个位可以被控制数据1240代替,但是要牺牲颜色值的位深度。因此,控制数据可以被直接嵌入在像素1200中,同时牺牲用于像素1200的颜色值的动态范围。例如,如图12A所示,蓝色值的突出显示的两个最低有效位1230可以被专用作控制数据1240。虽然未示出,但是其它颜色值的位也可以被专用作控制数据1240。例如,来自红色值1210、绿色值1220和蓝色值1230的任何组合的位可被用作控制数据1240。此外,不同数量的像素位可以被专用作控制数据1240。例如,在下面参考图18讨论的一个实施例中,使用总共6位(来自红色值1210、绿色值1220和蓝色值1230中每一者的各2位)作为控制数据1240。
在一些实施例中,被嵌入在像素1200中的控制数据1240可以是深度平面指示数据(尽管被嵌入在像素1200中的控制数据1240也可以是任何其它类型的控制数据,包括本文中描述的其它类型)。如本文所讨论的,光场视频数据可包括多个深度平面。因此,可以减小帧中一个或多个像素的位深度,并且可以使用所得到的可用位来指示像素所对应的深度平面。
作为具体示例,考虑图12A所示的24位RGB像素数据。红色、绿色和蓝色值中的每一者具有8位的位深度。如已经讨论的,可以牺牲一个或多个颜色分量的位深度并用深度平面指示数据代替。例如,由于眼睛对蓝色不太敏感,可以由6位(图12A中的位B2至B7)代替8位来表示蓝色分量。所得到的额外两位(位B0和B1)可被用于指定像素1200对应于最多四个深度平面中的哪一个。如果存在更多或更少的深度平面,则可以牺牲更多或更少数量的颜色位并将其用作深度平面指示数据。例如,如果位深度减少一位(即,提供一位深度平面指示数据),则可以指定最多两个深度平面。如果位深度减少三位(即,提供三位深度平面指示数据),则可以指定最多八个深度平面,等等。以这种方式,可以对颜色值的动态范围进行折衷,以便将深度平面指示数据直接编码到图像数据本身内。
尽管可以通过使用像素1200的某些位作为控制数据1240来减少颜色深度,但是可以使用抖动(dithering)来产生所牺牲的颜色深度中的部分或全部保留的感知。例如,通过形成在可用调色板中保留的颜色的抖动图案,可以使用抖动来近似在像素1200的调色板中不再可用的颜色(由于控制数据1240已经取代了一些图像数据)。这些颜色图案被用户60感知为颜色混合,其可以近似于像素1200的调色板之外的颜色。
在一些实施例中,深度平面指示数据被编码在图像数据的每个像素1200中。在其它实施例中,深度平面指示数据可以在每帧一个像素1200中被编码,或者在每行一个像素1200中编码,在每个VR/AR/MR对象一个像素1200中编码等等。此外,可以将深度平面指示数据编码在仅一个颜色分量中,或者编码在多个颜色分量中。类似地,直接将深度平面指示数据编码在图像数据内的技术不仅仅限于彩色图像数据。对于灰度图像数据等,该技术可以以相同的方式实施。
图12A示出了一种用于将深度平面指示数据编码在图像数据中的技术。图12B示出了另一技术,该技术采用色度(chroma)子采样并使用所得到的可用位作为深度平面指示数据。例如,图像数据可以以YCbCr格式表示,其中Y表示亮度分量(可以是或可以不是伽玛校正的),Cb表示蓝色差异色度分量,Cr表示红色差异色度分量。由于眼睛对色度分辨率的敏感度低于对亮度分辨率的敏感度,因此,可以以低于亮度信息的分辨率提供色度信息,同时不会过度降低图像质量。在一些实施例中,使用YCbCr 4:2:2格式,其中为每个像素提供Y值,但是仅以交替方式为每隔一个像素提供Cb和Cr值中的每一者。这种情况在图12B中示出,其中第一像素由亮度字节1260和蓝色差异色度字节1250组成,而相邻的第二像素由亮度字节1280和红色差异色度字节1270组成。如果一像素(在没有色度子采样的情况下)通常由24位信息(8位Y值,8位Cb值和8位Cr值)组成,那么在采用色度子采样之后,每个像素只需要16位信息(8位Y值和8位Cb或Cr值)。其余8位可用作深度平面指示数据。根据该技术,在1280×960图像数据的情况下,对于每个子帧,将存在1280×960×2字节的图像数据和1280×960×1字节的深度平面指示数据(或其它控制数据)。深度平面指示数据可被用于将像素分离成适当的深度平面以在适当的时间显示。在另外的实施例中,可以使用任何数据压缩技术来压缩图像数据。通过使用压缩释放的带宽可被用于提供本文讨论的任何控制数据。
在图12A所示的RGB实施例和图12B所示的YCbCr 4:2:2色度子采样实施例中,深度平面指示数据可指定受系统80支持的实际深度平面和/或虚拟深度平面,如稍后所讨论的。如果深度平面指示数据指定虚拟深度平面,则它还可以指定要混合的深度平面的权重,以便创建虚拟深度平面,如下文所述。
图14示出了嵌入式深度平面指示数据在显示控制器中的使用。但是首先,图13以背景的方式提供,以示出仅存在单个深度平面时显示控制器的操作。图13示出了如何将视频帧分离为可以串行显示的颜色分量。图13的左侧面板1310示出了包括每秒120帧(fps)视频的一个帧。如图13的右侧面板1330所示,图像被分离为红色、绿色和蓝色分量,这些分量在1/120秒(8.33ms)的过程中通过显示控制器在显示器上顺序地闪烁。为简单起见,图13示出每个颜色分量闪烁一次,并且每个颜色分量活动持续相同的时间量。然而,每个颜色分量可以闪烁多于一次以避免忽明忽暗。然后,人类视觉系统将右侧面板1330中示出的各个颜色分量子帧融合成左侧面板1310所示的原始彩色图像中。图14示出了当每个视频数据帧包括多个深度平面时如何调整该过程。
图14示出了如何使用深度平面指示数据将光场视频数据帧分离为多个深度平面,每个深度平面可以被分为用于显示的颜色分量子帧。在一些实施例中,主机将光场视频数据流发送到显示控制器。该光场视频数据流由图14的左侧面板1410中的图像表示。显示控制器可以使用嵌入式深度平面指示数据(例如,控制数据1240的深度平面指示数据)来将光场视频数据流分离为一个或多个RxGxBx序列,其中R0G0B0序列对应于第一深度平面,R1G1B1序列对应于第二深度平面,R2G2B2序列对应于第三深度平面。该深度平面分离可以基于每个像素中的两个最低有效蓝色位来执行(即,如图12A所示),但是也可以附加地/或替代地使用来自红色和/或绿色和/或蓝色值的位。结果显示在图14的中间面板1420中,该中间面板示出了三个分离的深度平面图像。最后,图14的中间面板1420所示的三个分离的深度平面图像中的每一者可以被分离为其成分颜色分量子帧。然后,每个深度平面的颜色分量子帧可以顺序地闪烁到显示器,如图14的右侧面板1430所示。序列顺序可以是例如图14所示的R0G0B0-R1G1B1-R2G2B2或图9所示的G0R0B0-G1R1B1-G2R2B2。
深度平面指示数据可被显示控制器用于确定要使用的RxGxBx序列数量以及哪些像素对应于哪个序列。还可以提供控制数据以指定闪烁到显示器的RxGxBx颜色序列的顺序。例如,在包括三个深度平面(D0、D1、D2)的图像数据的情况下,存在六种可能的顺序,各个RxGxBx序列可以以这六种可能的顺序闪烁到显示面板:D0、D1、D2;D0、D2、D1;D1、D0、D2;D1、D2、D0;D2、D0、D1;和D2、D1、D0。如果由控制数据指定的顺序是D0、D1、D2,则具有与第一深度平面D0对应的深度平面指示数据(例如,蓝色LSB位)“0 0”的像素可以被选择作为第一RxGxBx颜色序列图像输出。具有与第二深度平面D1对应的深度平面指示数据(例如,蓝色LSB位)“0 1”的像素可以被选择作为第二RxGxBx颜色序列图像输出,以此类推。
图15示出了其中图12A和12B的深度平面指示数据指示一光场视频数据帧的一个或多个深度平面不活动的示例。图15与图14的类似之处在于其示出了由左侧面板1510表示的视频数据流被分离为由中间面板1520表示的深度平面,然后每个深度平面被分离为由右侧面板1530表示的颜色分量子帧。然而,图15与图14的不同之处在于仅示出了一个深度平面是活动的。
图12A中的深度平面指示数据是每个像素中的蓝色值的两个最低有效位。这两个位能够指定最多四个深度平面。然而,光场视频数据可包括少于四个深度平面。例如,在前面的示例中,光场视频数据仅包括三个深度平面。在视频数据包括少于可指定深度平面的最大数量的情况下,深度平面指示数据可指定一个或多个深度平面不活动。例如,继续前面的示例,如果像素中的深度平面指示数据(例如,两个蓝色LSB位)被设置为“11”,则像素可以被分配给不活动的第四深度平面D3。如图15所示,在输出序列中仅激活三个RxGxBx颜色序列中的一个;不活动的深度平面在图15中显示为空白帧,并且可以由系统80显示为例如黑屏。如前所述,可以提供控制数据以指定深度平面的显示顺序。如图15的中间面板1520所示,控制数据已指定不活动的深度平面D3在该序列中首先和最后显示。因此,只有序列中的中间帧包括闪烁到显示器的实际图像数据。(也可以使用其它序列。例如,活动深度平面可以排在序列的首位或末位,或者可以在序列中重复不止一次)。
当显示控制器确定一像素被分配给不活动的深度平面时,则显示控制器可以简单地忽略该像素而不将其闪烁到显示器。另外,当控制数据指示一深度平面是不活动的时,可以减小(例如,关闭)针对该特定深度平面向显示器提供光的光源的功率,从而降低功耗。这可以节省显示驱动器的开关功率。因此,可通过将图像数据的一个或多个深度平面指定为不活动的来实现功率节省模式。同样地,在一些实施例中,控制数据可以指示一深度平面内的一个或多个色场(color field)是不活动的,而该深度平面中的一个或多个其它色场是活动的。基于该控制数据,显示控制器可以控制显示器忽略一个或多个不活动的色场,并且显示来自一个或多个活动色场(没有不活动色场)的图像数据。例如,当控制数据指示色场是不活动的时,可以减少(例如,关闭)针对该特定色场向显示器提供的光的光源的功率,从而降低功耗。因此,可以关闭向显示器提供照明的光源,例如发光二极管(LED)、激光器等,或者针对不活动的深度平面和/或不活动的色场减小其功率。
控制数据包
虽然上述控制数据包被存储在图像数据中,但是在其它实施例中,控制数据包可以被存储在单独的存储器位置中,并且像素处理流水线可以被暂停以允许读取控制数据包(例如,由显示器读取)。可以单独读取控制数据包的部分,而非读取整个控制数据包。
控制数据包可以包括以下项的一些或全部:数据包头块;通用输入/输出(“GPIO”)块;放大因子块(每种颜色);全局像素移位块(每种颜色);均匀混合因子块(每种颜色);滚动缓冲器起始行块;以及专有数据块。如果显示器确实检测到数据包头块与预期的头不匹配,则显示器可以设置错误标志,并使用先前版本的控制数据包。GPIO块指示显示器的GPIO改变到其中GPIO变化在受控时间发生并与显示/图像数据完全同步的状态。放大因子块控制每种颜色(例如,RGB)的显示放大率。全局像素移位块控制每种颜色(例如,RGB)在一个或多个方向上的像素位置移位。均匀混合因子块包括控制每种颜色(例如RGB)的混合的因子。滚动缓冲器起始行块识别滚动缓冲器的起始行(如下所述)。专有数据块可选地被用于存储其它数据。
多深度平面图像压缩
在一些实施例中,跨多个深度平面应用图像压缩技术,以便通过去除深度平面之间的信息冗余来减少图像数据的量。例如,不是针对每个深度平面发送图像数据的整个帧,而是可以根据相对于相邻深度平面的变化来表示一些或全部深度平面。在一些实施例中,这可以在相邻时刻的帧之间的时间基础上及时完成。压缩技术可以是无损的或有损的,以使得小于给定阈值的相邻深度平面帧之间或时间相邻帧之间的变化可以被忽略,从而减少图像数据。另外,压缩算法可以使用运动矢量将对象的运动编码在单个深度平面(X-Y运动)内和/或深度平面之间(Z运动)。如文本所讨论的,不是要求运动对象的图像数据随时间被重复发送,而是可以用像素移位控制信息完全或部分地实现对象的运动。
动态可配置的显示绘图区域
在显示光场视频数据的系统中,由于针对每个视频帧包括相对大量的信息(例如,多个深度平面,每个深度平面具有多个颜色分量),因此实现高视频帧速率具有挑战性。然而,通过识别计算机生成的光场视频数据一次可能仅占据显示器的一部分,可以提高视频帧速率,特别是在AR模式下,如图16所示。
图16示出了增强现实系统中的计算机生成的图像的帧的示例绘图区域。图16与图1类似,不同之处在于它仅示出显示器的要在其中绘制增强现实图像的部分。在这种情况下,增强现实图像包括机器人雕像10和大黄蜂角色2。AR模式下的显示器剩余区域可以仅是用户周围的真实世界环境的视图。因此,可能不需要在显示器的这些区域中绘制计算机生成的图像。通常情况下,计算机生成的图像一次仅占据显示区域的相对小的部分。通过动态地重新配置从帧到帧刷新的特定绘图区域以排除不需要显示计算机生成的图像的区域,可以提高视频帧速率。
计算机生成的AR图像可以被表示为一个或多个像素,每个像素具有例如相关联的亮度和颜色。视频数据帧可以包括这种像素的M×N阵列,其中M表示行数,N表示列数。在一些实施例中,系统80的显示器至少部分透明,以便除了显示计算机生成的图像之外还能够提供用户的真实世界环境的视图。如果计算机生成的图像中的给定像素的亮度被设置为零或相对低的值,则用户60在该像素位置处将看到真实世界环境。或者,如果给定像素的亮度被设置为较高值,则用户在该像素位置处将看到计算机生成的图像。对于任何给定的AR图像帧,许多像素的亮度可能低于指定阈值,以使得它们不需要在显示器上显示。不是针对这些低于阈值的像素中的每一个刷新显示器,而是可以动态地配置显示器以不刷新这些像素。
在一些实施例中,系统80包括用于控制显示的显示控制器。显示控制器可以动态地配置显示器的绘图区域。例如,显示控制器可以动态地配置在任何给定的刷新周期期间帧中的哪些像素被刷新。在一些实施例中,显示控制器可以接收对应于第一视频帧的计算机生成的图像数据。如本文所讨论的,计算机生成的图像数据可包括若干深度平面。基于第一视频帧的图像数据,显示控制器可以动态地确定针对每个深度平面刷新哪个显示像素。例如,如果显示器62利用扫描型显示技术,则控制器可以动态地调整扫描图案,以便跳过不需要刷新AR图像的区域(例如,没有AR图像或者AR图像的亮度低于指定阈值的帧区域)。
以这种方式,基于所接收的每个帧,显示控制器可以识别显示器的其中应当显示AR图像的子部分。每个这样的子部分可以包括显示器上的单个连续区域或多个非连续区域(如图16所示)。可以针对光场视频数据中的每个深度平面确定显示器的这些子部分。然后,显示控制器可以使显示器针对该特定帧仅刷新显示器的所识别的子部分。可以针对每个帧执行该过程。在一些实施例中,显示控制器动态地调整将在每帧开始处刷新的显示器区域。
如果显示控制器确定应当刷新的显示器区域随时间的推移变小,则显示控制器可以增加视频帧速率,因为绘制AR图像的每个帧所需的时间较少。或者,如果显示控制器确定应当刷新的显示器区域随时间的推移变大,则可以降低视频帧速率以允许有足够的时间绘制AR图像的每个帧。视频帧速率的变化可能与需要用图像填充的显示器的部分成反比。例如,如果仅需要填充十分之一的显示器,则显示控制器可以将帧速率提高为10倍。
可以逐帧地执行这种视频帧速率调整。或者,这种视频帧速率调整可以以指定的时间间隔执行,或者在显示器的要刷新的子部分的大小增加或减少指定量时执行。在一些情况下,取决于特定显示技术,显示控制器还可以调整显示器上显示的AR图像的分辨率。例如,如果显示器上的AR图像的尺寸相对较小,则显示控制器可以使图像以增加的分辨率显示。相反,如果显示器上的AR图像的尺寸相对较大,则显示控制器可以使图像以降低的分辨率显示。
基于环境照明的图像颜色调整
在一些实施例中,本文描述的系统80包括用于检测环境照明的亮度和/或色调的一个或多个传感器(例如,相机)。这样的传感器可以被包括在例如系统80的显示头盔中。然后可以使用关于环境照明的感测信息来调整虚拟对象(例如,VR、AR或MR图像)的所生成的像素的亮度或色调。例如,如果环境照明具有淡黄色投射(cast),则可以将计算机生成的虚拟对象改变为具有淡黄色色调,该色调与房间中的真实对象的色调更匹配。类似地,如果房间中的光强度相对较高,则可以增加用于驱动显示器62的光源的电流,以使得计算机生成的虚拟对象的亮度更接近地与环境照明匹配。或者反之亦然,可以响应于变暗的环境照明而减小用于驱动显示器62的光源的电流。这也具有省电的好处。可以在由GPU渲染图像时进行这种像素调整。替代地和/或附加地,可以在使用此处讨论的控制数据进行渲染之后进行这种像素调整。
像素处理流水线
图17是由系统80的显示控制器实现的示例像素处理流水线1700的框图。在一些实施例中,像素处理流水线1700被实现为专用硬件。显示控制器从图形处理单元(GPU)接收渲染图像数据(在帧缓冲器1702处),然后执行若干功能,其中包括镜头畸变校正、重新采样/图像缩放、全局移位、颜色混合、平场校正,以及伽马校正。在执行这些功能之后,显示控制器将处理后的图像数据(在色场缓冲器1750处)输出到显示器62。尽管图17示出了功能的示例集,但是像素处理流水线1700的其它实施例可以省略图示的功能或包括本文描述的其它功能。
在图17中,渲染图像数据经由帧缓冲器1702从GPU被输入到像素处理流水线1700。帧缓冲器1702可以是例如乒乓缓冲器(也被称为双缓冲器),其允许在处理一个帧的同时将另一帧加载到存储器中。如本文所讨论的,每个帧可以包括用于数字图像的一个或多个深度平面中的每一个的一个或多个颜色分量子帧。例如,每个帧可以由用于两个或三个深度平面中的每一个的红色、绿色和蓝色子帧组成。由像素处理流水线1700执行的功能可以针对要由系统80显示的图像数据的每个深度平面的每个颜色分量子帧来完成。在一些实施例中,图像数据的每个帧可具有1280水平像素乘以960垂直像素的分辨率,并且帧速率可以是每秒60、80或120帧,但是可以使用许多其它分辨率和帧速率,具体取决于硬件功能、应用、色场或深度平面的数量等等。
在一些实施例中,彩色图像数据的位深度是24位,对于每个像素包括8个红色位、8个蓝色位和8个绿色位。因此,对于彩色图像数据的每个深度平面,输入到帧缓冲器1702中的数据量是1280×960×24位(30Mb)。如果1280×960全色图像数据的三个深度平面(每个深度平面由三个颜色子帧(例如,红色、绿色和蓝色子帧)组成)以每秒80帧的速率被处理,则像素处理流水线1700通常需要具有大约885MB/s(1280×960×3×3×80)的处理带宽能力。或者,对于通常相同的计算成本,像素处理流水线1700可以以每秒120帧的帧速率处理用于两个深度平面的全色图像数据(1280×960×3×2×120是885MB/s)。深度平面和帧速率的其它组合也是可能的,并且在一些实施例中,像素处理流水线1700可以在各种组合之间动态地切换。在任何这些情况下,由于像素处理流水线1700中待处理的图像数据量相对较大,因此可以实施多个并行处理路径以满足处理带宽要求。例如,如果像素处理流水线1700硬件以125MHz工作,则可以使用8个并行像素处理路径以实现前述示例的885MB/s带宽要求。然而,并行处理路径数量可以基于许多因素变化,这些因素包括图像数据的分辨率、像素处理流水线1700硬件的速度等。
当渲染图像数据流被输入到像素处理流水线1700的帧缓冲器1702时,显示控制器可以使用嵌入式控制数据(如本文所讨论的)来确定每个像素属于哪个深度平面的哪个颜色分量,并且确定每个深度平面的颜色分量闪烁到显示器62的顺序。这可以如上面参考图13至15所述的那样实现。例如,显示控制器可以使用嵌入式深度平面指示数据来将渲染图像数据流分离为一个或多个RxGxBx序列,其中R0G0B0序列对应于第一深度平面的红色、绿色和蓝色子帧,R1G1B1序列对应于第二深度平面的红色、绿色和蓝色子帧,R2G2B2序列对应于第三深度平面的红色、绿色和蓝色子帧。在像素处理流水线1700中的处理之后,每个深度平面的颜色分量子帧可以顺序地闪烁到显示器62,如参考图9所述。
由图17中的像素处理流水线1700执行的功能之一是颜色混合,颜色混合由颜色混合块1704执行。颜色混合块1704从帧缓冲器1702接收渲染图像数据。颜色混合块1704混合对应于不同深度平面的图像数据,以便创建混合图像数据,当由本文描述的显示器62显示时,该混合图像数据看起来位于混合深度平面之间的虚拟深度平面处。例如,颜色混合块1704可以将R0G0B0序列的全部或一部分与R1G1B1序列的全部或一部分混合(但也可以由颜色混合块1704混合深度平面颜色序列的任何其它对)。
通过借助适当的权重混合两个深度平面图像,可以在系统80中的两个限定的深度平面之间以期望的间隔设置虚拟深度平面。例如,如果期望一虚拟深度平面位于远场深度平面D0与中场深度平面D1之间的半路,则颜色混合块1704可以赋予D0图像数据的像素值以50%的权值,同时还赋予D1图像数据的像素值以50%的权值(只要权重总和为100%,便可保持图像数据的表观亮度,但是权重总和不一定为100%;可以使用任意权重)。当远场图像数据和中场图像数据二者都由本文描述的显示器62显示时,由人类视觉系统解释的结果是看起来位于D0和D1之间的虚拟深度平面。可以通过使用不同的混合权重来控制虚拟深度平面的表观深度。例如,如果期望虚拟深度平面看起来与D0相比更靠近D1,则可以赋予D1图像更大权值。
来自GPU的在帧缓冲器1702处提供的渲染图像数据可以包括控制数据,该控制数据确定混合操作如何由颜色混合块1704执行。在一些实施例中,控制数据可以导致针对一深度平面中的所有像素执行均匀混合。在其它实施例中,控制数据可以导致针对给定深度平面中的不同像素执行不同量的混合(包括根本不混合)。另外,控制数据可以导致给定深度平面中的不同像素与来自不同深度平面的像素进行混合。在这些情况下,可以用控制数据标记每个像素,以指定要针对该特定像素执行的混合,如图18所示。
图18示出了用于像素1800的示例格式,像素1800用控制数据1840标记以控制与对应于另一深度平面的像素的混合操作。在该示例中,控制数据1840是虚拟深度平面指示数据,其指定像素1800对应于一个或多个不同的虚拟深度平面中的哪一个。像素1800包括蓝色值1830(字节0)、绿色值1820(字节1)和红色值1810(字节2)。在该实施例中,虚拟深度平面指示数据作为每个颜色值的两个最低有效位(即,B0、B1、G0、G1、R0和R1)被嵌入在像素1800中。因此,每种颜色的位深度从8位减少到6位。因此,虚拟深度平面指示数据可以直接被嵌入在图像数据的像素中,其中以该像素的颜色值的动态范围为代价。虚拟深度平面指示数据的总共六个位允许指定26=64个虚拟深度平面。在例如图像数据包括三个深度平面D0、D1和D2的情况下,则深度平面指示位中的一个可以指示像素1800应该位于从D0到D1的范围内的一虚拟深度平面中,还是位于从D1到D2的范围内的一虚拟深度平面中,而其它五位指定选定范围内的32个虚拟深度平面。在一些实施例中,虚拟深度平面指示数据被用于定位(reference)一个或多个查找表,这些查找表输出与由虚拟深度平面指示位1840指定的虚拟深度平面对应的混合乘数值。尽管图18示出总共六位的虚拟深度平面指示数据,但是其它实施例可以包括不同数量的位。另外,可以使用图18所示的技术之外的其它技术来提供虚拟深度平面指示数据。例如,可以使用图12B所示的YCbCr 4:2:2技术来提供虚拟深度平面指示数据。
图19示出了可以由颜色混合块1704执行的示例混合操作。该混合操作由图20所示的颜色混合块1704的示例实施例执行,如下文所述。图19示出了由本文描述的显示器62显示的数字图像的三个深度平面。远场子帧1910与显示器62中的一光焦度相关联,该光焦度使得该子帧中的图像数据在用户60看来位于远场位置处。类似地,中场子帧1920与显示器62中的一光焦度相关联,该光焦度使得该子帧中的图像数据在用户60看来位于中场位置处,而近场子帧1930与显示器62中的一光焦度相关联,该光焦度使得该子帧中的图像数据在用户60看来位于近场位置处。
在图19所示的实施例中,中场子帧1920包括机器人虚拟对象10和大黄蜂虚拟对象2。同时,远场子帧1910仅包括机器人虚拟对象10,并且近场子帧1930仅包括大黄蜂虚拟对象2。用嵌入式的虚拟深度平面指示数据(例如,图18所示的控制数据1840)标记这三个子帧的像素,该指示数据控制由图20所示的颜色混合块1704执行的混合操作。
可以如图19所示混合远场子帧1910和中场子帧1920,以便产生在用户60看来源自位于远场和中场深度之间的虚拟深度平面的图像。这通过用远场子帧1910中与机器人虚拟对象10对应的像素乘以混合乘数值,并且通过对中场子帧1920中与机器人虚拟对象10对应的像素执行相同的操作来实现。远场和中场子帧中的用于机器人虚拟对象10的相应混合乘数值的和可以为1,以便保持机器人虚拟对象10的亮度,但这并非是必需的。可以使用一个或多个缩放因子(scaler)来确保虚拟对象在被混合的两个深度平面中基本具有相同的大小,以便在混合操作期间组合虚拟对象的相同部分。
类似地,可以混合中场子帧1920和近场子帧1930,以便产生在用户60看来源自位于中场和近场深度之间的虚拟深度平面的图像。这同样可通过用中场子帧1920中与大黄蜂虚拟对象2对应的像素乘以混合乘数值,并且通过对近场子帧1930中与大黄蜂虚拟对象2对应的像素执行相同的操作来实现。
图20示出了逐帧地在图像数据的深度平面之间执行混合操作的颜色混合块1704的实施例。颜色混合块1704包括多路复用器2010、查找表2020和乘法器2030。如图20所示,来自帧缓冲器1702的渲染图像数据被提供给多路复用器2010。在帧缓冲器1702处接收的渲染图像数据利用图18所示的像素格式。因此,在这种情况下,像素1800的每个颜色值(R、G和B)的仅六个最高有效位表示实际图像数据。这些是被输入到多路复用器2010的位。多路复用器2010又将与颜色值之一对应的六个位一次性传递到乘法器2030。这六个位通过被输入到多路复用器2010的控制来选择,该控制指定当前的活动颜色。同时,像素1800的颜色值的六个最低有效位(对于三个颜色值中的每一者,两个最低有效位)被输入到查找表2020。如关于图18所讨论的,这些位是虚拟深度平面指示数据,其指定像素1800属于64个可能的虚拟深度平面中的哪一个。为每个深度平面的每个色场提供单独的查找表2020。因此,在图像数据包括三个深度平面且每个深度平面具有三个颜色分量的情况下,总共有九个查找表2020。
在一些实施例中,每个查找表2020保持64个混合乘数值,每个值定义64个虚拟深度平面之一的混合权重。通常,查找表2020中的混合乘数值从零(这导致给定像素对最终显示图像的贡献最小)到1(这导致给定像素对最终显示图像的贡献最大)变化。虚拟深度平面之间的间距由查找表2020中的混合权重之间的间距限定。虽然虚拟深度平面之间的间距可以是线性的,但不需要必须是线性的,因为可以在虚拟深度平面之间设置任何自定义间距,包括指数、对数间距等。
在操作中,选择与当前正被处理的颜色分量和深度平面对应的特定查找表2020,并且虚拟深度平面指示数据被用于输出相关联的混合乘数值。然后将混合乘数值传递到乘法器2030,在乘法器中,该乘数值缩放像素1800的对应颜色值,从而实现由虚拟深度平面指示数据指定的混合效果。然后将混合图像数据提供给滚动缓冲器1706。
图21示出了针对整个深度平面在图像数据的深度平面之间均匀地执行混合操作的颜色混合块1704的实施例。再一次地,颜色混合块1704包括多路复用器2110和乘法器2130。在该实施例中,由于针对深度平面中的每个像素均匀地执行混合操作,因此不需要用嵌入式虚拟深度平面指示数据单独地标记像素。因此,可以针对每个像素的每个颜色值保持8位的全位深度。这些8位颜色值被传递到多路复用器2110,多路复用器2110又基于被输入到多路复用器的指示当前活动颜色的控制而输出与颜色值之一对应的八个位。
在这种情况下,虚拟深度平面指示数据对于该深度平面中的所有像素是共用的。换句话说,该深度平面中的所有像素被指定为混合到同一虚拟深度平面。结果,使用同一混合乘数值缩放该深度平面中的每个像素。在一些实施例中,该共用的虚拟深度平面指示数据和/或共用的混合乘数值可以在图像数据行中的一行之前或代替该行图像数据的定制数据包中提供(如关于图10和11所讨论的)。然后,乘法器2130使用混合乘数值来缩放正被处理的像素的对应颜色值。最后,混合图像然后被提供给滚动缓冲器1706。
在用来自颜色混合块1704的混合图像数据的一部分填充滚动缓冲器1706(下面讨论)之后,滚动缓冲器提取器1708(也在下面讨论)从滚动缓冲器中选择并提取一组像素以在像素内插器1710中使用。像素内插器1710执行内插计算,所述内插计算是像素处理流水线1700的镜头畸变校正功能的一部分。
像素处理流水线1700的镜头畸变校正功能校正在系统80的光学路径中存在的光学畸变和/或像差。这些光学畸变和/或光学像差可发生在位于如下两点之间的光学路径中的任何位置:在其中一点处,图像数据从数字电子数据被转换为光,在另一点处,光从显示器62被输出朝向用户60的眼睛。在一些实施例中,像素处理流水线1700通过使将向用户60显示的图像数据预畸变来校正光学畸变和/或像差。例如,可以以至少部分地,优选地基本上与在系统80中存在的光学畸变和/或像差逆相关的方式使图像数据预畸变。以此方式,当光学图像信号传播通过系统80的光学路径时,由像素处理流水线1700引入的预畸变至少部分地,优选地基本上被系统80的光学部件消除。
尚未被预畸变以校正镜头畸变和/或像差的像素在本文中可被称为非畸变校正像素或图像数据,而已被预畸变的像素可被称为畸变校正像素或图像数据。像素内插器1710基于来自滚动缓冲器1706的一个或多个非畸变校正像素(例如,在帧缓冲器1702处从GPU接收的渲染图像数据的像素)来计算每个畸变校正像素。由像素内插器1710输出的畸变校正图像数据可通过使用畸变校正数据而被预畸变,该畸变校正数据用于指示应当使用哪个(例如,来自帧缓冲器1702的)非畸变校正像素来计算任何给定的畸变校正像素(例如,由像素内插器1710计算并最终被发送到显示器62的像素)的值。例如,可以使用位于输入图像数据中的不同位置(x',y')处或附近的一个或多个非畸变校正像素(例如,在帧缓冲器1702处从GPU接收的像素),来计算位于输出到显示器62的图像数据中的索引位置(x,y)处的畸变校正像素的值。这可以利用这样的知识(基于实验或理论)来实现:即,显示器62中的光学畸变和/或像差将导致代表针对位置(x,y)处的像素提供给显示器62的图像数据的光线朝向位置(x',y')畸变、靠近位置(x',y')畸变、或被畸变到位置(x',y')。因此,通过利用(x',y')处的非畸变校正数据预先计算(x,y)处的畸变校正像素值,显示器62的光学畸变和/或像差至少部分地被补偿。
在一些实施例中,来自像素内插器1710的每个畸变校正像素的值(例如,RGB值、YCbCr值等)取自另一位置处的内插的非畸变校正像素,该像素本身依赖于四个相邻的非畸变校正像素的插值。然而,其它实施例可以在像素内插器1710中使用不同数量的非畸变校正像素。内插的非畸变校正像素的位置以及因此四个相邻的非畸变校正像素的位置,是使用存储在存储器中的一个或多个镜头畸变校正查找表1712确定的。可以针对图像数据的每个深度平面的每个色场存储单独的镜头畸变校正查找表,这是因为其中的每一者可以具有以独特的畸变和/或像差通过显示器62的至少部分地独特的光学路径。(例如,可以为每个深度平面的每个颜色分量提供单独的波导,如关于图6至8所讨论的)。在图像数据由图像数据的三个深度平面构成且每个深度平面由三个色场组成的情况下,可能存在九个单独的镜头畸变校正查找表。具有不同数量的深度平面和/或色场的其它实施例可能需要更多或更少的镜头畸变校正查找表。通常,镜头畸变校正查找表1712将从主处理器被加载到显示控制器的存储器中,并且在系统80的给定使用期间不会改变。然而,在一些实施例中,如果系统80中的光学畸变和/或像差发生改变,或者如果关于它们的更多信息被获知,则镜头畸变校正查找表1712可以是动态,从而允许对镜头畸变校正查找表1712的改进。
图22是图17的像素处理流水线1700的镜头畸变校正功能的示意表示。图22示出了图像数据的像素的网格2200。像素的网格2200表示图像数据帧的一部分。像素的网格2200包括位于要向显示器62输出的图像数据行中的8个标记的畸变校正像素P0、P1、P2、P3、P4、P5、P6和P7。这些畸变校正像素中的每一者可以具有例如相关联的红色(R)、绿色(G)和/或蓝色(B)值。畸变校正像素P0位于网格点(x,y)处,而畸变校正像素P1位于网格点(x+1,y)处,畸变校正像素P2位于网格点(x+2,y)处,依此类推。
在一些实施例中,8个相邻的畸变校正像素P0、P1、P2、P3、P4、P5、P6和P7构成的组全部由像素处理流水线1700的专用硬件同时并行处理。单独的8像素的块中的每一个依次被处理,直至整个图像数据帧完成为止。在其它实施例中,被一起并行处理的像素的块可以具有其它大小和/或尺寸。另外,可以以任何顺序或模式处理共同构成图像数据帧的像素的块。
每个镜头畸变校正查找表1712可以包括用于图像数据的每个畸变校正像素的一组畸变校正坐标。畸变校正坐标被用于确定应当用于计算每个畸变校正像素(例如,从像素内插器1710输出并最终显示在显示器62上的像素)的值的非畸变校正像素(例如,在帧缓冲器1702处接收的像素)。从概念上讲,这通过示出相应内插的非畸变校正像素P0'、P1'、P2'、P3'、P4'、P5'、P6'和P7'来在图22中进行说明,这些非畸变校正像素被用于分别提供畸变校正像素P0、P1、P2、P3、P4、P5、P6和P7的值。如图22所示,在从像素内插器1710输出并最终被发送到显示器62的图像数据中位于(x,y)处的畸变校正像素P0由位于(x',y')处的内插的非畸变校正像素P0'确定。(x',y')坐标可以是分数,在这种情况下它们不对应于在帧缓冲器1702处接收的图像数据的任何实际的非畸变校正像素。因此,内插的非畸变校正像素P0'的值可以经由从(x',y')周围的非畸变校正图像数据的一组像素进行内插来计算。在一些实施例中,P0'的值是从四个相邻的非畸变校正像素A、B、C和D的集合2210计算的。图22示出了可被用于计算内插的非畸变校正像素P0'的值的非畸变校正像素的示例集合2210。
为每个畸变校正像素(例如,P0)提供一组畸变校正坐标。畸变校正坐标指示应当被用于确定对应的畸变校正像素的内插的非畸变校正像素(例如,P0')的位置。畸变校正坐标可以针对待确定的畸变校正像素的索引或坐标在相对意义上表示。例如,在这种情况下,畸变校正坐标可以指示给定畸变校正像素的x(水平)索引或坐标在+/-x方向上的移位量,以及该畸变校正像素的y(垂直)索引或坐标在+/-y方向上的移位量。或者,镜头畸变校正查找表1712可以包括每个畸变校正像素的绝对畸变校正坐标值。例如,在这种情况下,绝对坐标值可以指示应当被用于计算给定畸变校正像素(例如,P0)的内插的非畸变校正像素(例如,P0')的具体坐标,而不参考该畸变校正像素的位置。然而,使用相对位移的方法可能是有利的,因为它需要更少的位来指定每个非畸变校正像素的位置,从而减小镜头畸变校正查找表1712的大小。在任一情况下,重要的是再次注意到,畸变校正坐标不必是整数。例如,畸变校正坐标可以指示使用分数内插的非畸变校正像素(例如,P0')来确定任何给定的畸变校正像素(例如,P0)。
每个镜头畸变校正查找表1712中的具体畸变校正坐标可通过实验(例如,通过将已知的校准图像输入到系统80,并将显示的图像与校准图像进行比较)或根据理论(例如,通过使用光线跟踪算法来确定系统80的光学路径的畸变和/或像差)确定。镜头畸变校正查找表1712是有利的,因为它们可被用于校正使用例如数学公式难以或不能校正的线性的、规则的、不规则的、复杂的和/或非线性的畸变和/或像差。该方法在本文所述的系统80中特别有利,因为显示器62可包括一组复杂的光学部件,其中包括具有可导致复杂的光学畸变和/或像差的不规则形状的波导堆叠和衍射光学元件。
在一些实施例中,每个镜头畸变校正查找表1712针对图像数据的彩色子帧中的1280×960像素中的每一者由22个位构成,其中22个位表示两个带符号数字——水平和垂直畸变校正坐标中的每一者一个——其被格式化为七个整数位和四个小数位。在给定每个帧中的像素数量以及镜头畸变校正查找表1712的数量的情况下,需要相对大的存储量来存储镜头畸变校正查找表1712。为了减轻存储需求,每个镜头畸变校正查找表1712可以以降低的分辨率被存储在显示控制器的存储器中。例如,每个镜头畸变校正查找表1712可以以80×60的分辨率(或81×61的分辨率以考虑查找表的外部网格)而非1280×960被存储。在这样的实施例中,镜头畸变校正查找表内插器1714将每个镜头畸变校正查找表1712内插到其1280×960全分辨率。这可以例如使用双线性内插填充在镜头畸变校正查找表1712的数据点之间的值中来实现。但是也可以使用其它类型的插值。另外,可以使用其它压缩技术来减小镜头畸变校正查找表在存储器中的大小,并且可以在像素处理流水线中使用相应的扩展技术以将镜头畸变校正查找表扩展到全尺寸。
在使用镜头畸变校正查找表内插器1714将镜头畸变校正查找表1714扩展到全分辨率的像素处理流水线1700的实施例中,镜头畸变校正查找表内插器1714通常接收扩展比率输入,该输入表示每个镜头畸变校正查找表1712的扩展程度。例如,在80×60镜头畸变校正查找表和1280×960图像的情况下,扩展比率将是80/1280=60/960=0.0625。
使用待确定的畸变校正像素(例如,P0)的(x,y)索引或坐标,镜头畸变校正查找表1712被用于输出相应的畸变校正坐标。这些畸变校正坐标被用于确定内插的非畸变校正像素(例如,P0')的位置,该像素的值将确定畸变校正像素(例如,P0)的值。在存储相对(而非绝对)畸变校正坐标的镜头畸变校正查找表1712的情况下,像素处理流水线1700包括加法器1716a、1716b,这些加法器将使用镜头畸变校正查找表1712确定的相应畸变校正坐标加到待确定的畸变校正像素的对应索引/坐标上。在加法器1716a处,水平镜头畸变校正坐标被加到畸变校正像素的x索引/坐标上。类似地,在加法器1716b处,垂直镜头畸变校正坐标被加到畸变校正像素的y索引/坐标上。参考图22所示的图表,在像素处理流水线1700中,使用畸变校正像素P0的(x,y)坐标从镜头畸变校正查找表1712中查找一组相应的相对畸变校正坐标。加法器1716a、1716b将这些相对畸变校正坐标加到P0的(x,y)坐标上,以便确定内插的非畸变校正像素P0'的(x',y')坐标,该非畸变校正像素P0'的值应被用作畸变校正像素P0的值。
在由加法器1716a、1716b计算内插的非畸变校正像素(例如,P0')的坐标之后,像素处理流水线1700的下一阶段执行重新采样和图像变形操作,例如图像移位。这可以包括垂直和水平图像缩放以及在水平和/或垂直方向上应用全局移位。尽管未示出,像素处理流水线1700的该阶段也可以执行图像旋转。下面更详细地讨论图像变形操作。
缩放因子K以及全局移位值GS(x)和GS(y)可以经由本文描述的控制数据而被传递到显示控制器。图像旋转信息也可以经由控制数据而被传递到显示控制器。如果移位或缩放过程访问图像帧的边界(例如,1280×960像素)之外的图像数据,则可以假设该帧外的像素为零(黑色)。在这样的实施例中不需要像素环绕。而且,即使在应用K缩放因子和/或全局移位之后,图像数据的每个输出帧通常也将包括与输入帧相同的分辨率(例如,1280×960)。
像素处理流水线1700包括图像缩放/移位块1720a、1720b,图像缩放/移位块1720a、1720b接收使用镜头畸变校正查找表1712和加法器1716a、1716b确定的内插的非畸变校正像素(例如,P0')的坐标,并且应用像素移位和/或图像重新采样(放大/缩小)。此能力的益处是能够由显示控制器执行像素移位、图像旋转和/或调整图像大小的操作,以对图像数据进行调整而不需要由GPU对其重新渲染。
顶部图像缩放/移位块1720a对内插的非畸变校正像素(例如,P0')的水平坐标进行操作,而底部缩放/移位块1720b对内插的非畸变校正像素的垂直坐标进行操作。图像缩放/移位块1720a、1720b包括加法器1722a、1722b,加法器1722a、1722b被用于关于点(0,0)集中(centralize)内插的非畸变校正像素坐标,以便可以应用缩放和移位。顶部块1720a的第一加法器1722a通过从其中减去值HOR/2来集中内插的非畸变校正像素的水平坐标,HOR/2等于图像数据的宽度除以2。类似地,底部块1722b的第一加法器1722b通过从其中减去值VER/2来集中内插的非畸变校正像素的垂直坐标,VER/2等于图像数据的高度除以2。
然后,内插的非畸变校正像素P0'的集中坐标被传递到缩放器1724a、1724b。缩放器1724a、1724b执行图像重新采样(放大或缩小)。此操作使用缩放因子K(在本文讨论的控制数据中提供)完成,该缩放因子K被用来乘以内插的非畸变校正像素(例如,P0')的集中坐标。在一些实施例中,缩放因子K被限制在0.9到1.1的范围内,以避免可能导致明显的图像伪影的图像大小调整操作,但是在其它实施例中,缩放因子可以具有更大的范围。顶部块1720a中的缩放器1724a用缩放因子K乘以内插的非畸变校正像素的水平坐标,而底部块1720b中的缩放器1724b对内插的非畸变校正像素的垂直坐标执行相同的操作。在一些实施例中,对于水平和垂直坐标使用相同的缩放因子K,以便保持图像数据的宽高比,但是在其它实施例中可以使用不同的缩放因子。
图像缩放/移位块1720a、1720b还包括执行像素移位的加法器1726a、1726b。如下面进一步讨论的,控制数据可以包括像素移位值,像素移位值引起图像数据的水平和/或垂直移位。顶部块1720a中的第二加法器1726a将内插的非畸变校正像素(例如,P0')的缩放后的水平坐标与GS(x)相加,GS(x)是水平全局移位值。它还将HOR/2加到这些值上以撤消先前在顶部图像缩放/移位块1720a中执行的水平集中操作。类似地,底部块1720b中的第二加法器1726b将内插的非畸变校正像素的缩放后的垂直坐标与GS(y)相加,GS(y)是垂直全局移位值。它同样将VER/2加到这些值上以撤消垂直集中操作。在一些实施例中,图像数据的每个颜色分量的全局移位量可以是像素的带符号数字,该数字最大为例如+/-128,具有四个子像素位的精度。因此GS(x)和GS(y)可以是12位量。
尽管图17示出了在使用镜头畸变查找表1712之后执行图像缩放和变形操作,但是在其它实施例中,这些操作可以以不同的顺序执行。例如,可以在使用镜头畸变查找表1712之前或在像素处理流水线1700内的其它位置处应用图像缩放和图像变形。在其它实施例中,可以将图像变形操作直接并入镜头畸变查找表1712中。例如,像素处理流水线1700可以接收头部姿势信息,该头部姿势信息被用于确定对图像数据执行的适当的图像变形操作。然后,像素处理流水线1700可以改变镜头畸变查找表1712,以便反映要对图像数据施加的一个或多个图像变形操作。这是可能的,因为镜头畸变查找表1712将在帧缓冲器1702处接收的非畸变校正像素映射到要在显示器62上显示的新的畸变校正像素位置。类似地,图像变形还涉及将像素映射到新位置。因此,镜头畸变校正映射可以与图像变形映射组合在同一表中。以这种方式,可以同时执行镜头畸变校正和图像变形。
在被缩放和/或移位之后,内插的非畸变校正像素(例如,P0')的坐标(例如,(x',y'))被提供给滚动缓冲器提取器1708。滚动缓冲器提取器1708(与滚动缓冲器1706结合)向像素内插器1710提供特定非畸变校正像素,所述特定非畸变校正像素是为了计算每个内插的非畸变校正像素(例如,P0')并由此计算每个畸变校正像素(例如,P0)所需的。基于内插的非畸变校正像素(例如,P0')的坐标(例如,(x',y')),从在帧缓冲器1702处接收的所有输入像素当中确定那些特定的非畸变校正像素。在使用坐标(例如,(x',y'))从滚动缓冲器1706中识别和提取为了计算一个或多个内插的非畸变校正像素(例如,P0')所需的非畸变校正像素之后,滚动缓冲器获取器1708接着将所提取的像素传递到像素内插器1710,以用于根据本文描述的镜头畸变校正技术确定畸变校正像素(例如,P0)。
图23示出了像素内插器1710对四个非畸变校正像素A、B、C、D的内插,以计算内插的非畸变校正像素P0'的值,并因此确定畸变校正像素P0的值。可以基于使用镜头畸变校正查找表1712确定的内插非畸变校正像素P0'的坐标(x',y')来指定四个非畸变校正像素A、B、C和D。内插的非畸变校正像素P0'的(x',y')坐标可被用于确定以下四个值:x_floor,其是x方向坐标的整数部分;x_fraction,其是x坐标的小数部分;y_floor,其是y方向坐标的整数部分;以及y_fraction,其是y坐标的小数部分。如图23所示,内插处理中使用的像素A由坐标(x_floor,y_floor)指定。像素B由坐标(x_floor+1,y_floor)指定。像素C由坐标(x_floor,y_floor+1)指定。像素D由坐标(x_floor+1,y_floor+1)指定。这些非畸变校正像素(A、B、C、D)是由滚动缓冲器提取器1708提供给像素内插器1710的像素。如图22所示,非畸变校正像素A、B、C和D是围绕内插的非畸变校正像素P0'的位置(x',y')的像素。然后,由像素内插器1710根据图23所示的等式(其中,在该示例的等式中,P0=P0'=P(out))执行双线性内插处理,以计算内插的像素P0'的值,该值转而可被用作畸变校正像素P0的值。
如下情况是可能的:根据内插的非畸变校正像素P0'在图像数据帧中的位置,像素A、B、C、D中的一者或多者将位于数据图像的边界(例如,0至1279和0至959或1-960,具体取决于实施例)之外。在这些受限的情况下,所讨论的边界外的像素可以被视为黑色像素。尽管图23示出了四个相邻像素的双线性内插,但是也可以使用其它类型的内插。此外,可以在内插处理中使用不同数量的非畸变校正像素来计算畸变校正像素的值。另外,图23示出了一种从内插的非畸变校正像素P0'的坐标中选择用于内插处理的像素组2210(例如,像素A、B、C和D)的方式;也可以使用其它的选择用于内插的像素的方式。
现在将详细讨论滚动缓冲器1706和滚动缓冲器提取器1708。如已经提到的,这些部件的目的是将非畸变校正像素(例如,从帧缓冲器1702)提供给像素内插器1710,以用于镜头畸变校正计算。它们实现了此目的,尽管由于像素处理流水线1700通常在专用硬件而非软件中实现以达到更高速度和更大吞吐量的事实而导致某些约束。例如,以下约束可能是适用的:由像素内插器1710执行的内插功能所需的所有像素可能需要在一个时钟周期(或一些其它有限数量的时钟周期)内一起被读取;可用存储可能有限;并且像素内插器1710可能被硬连线以对具有设定大小/形状的一组像素执行操作。
滚动缓冲器1706的有利之处在于其减少了存储像素内插器1710可能需要的非畸变校正像素所需的存储量。具体而言,滚动缓冲器1706在任何给定时间仅存储视频数据帧的子集,并且基于滚动而这样做。例如,在一些实施例中,滚动缓冲器1706存储一组(aswath of)48行非畸变校正图像数据。每行可以包括例如1280个像素。尽管滚动缓冲器1706将被描述为存储48行非畸变校正图像数据,但是应该理解,在其它实施例中,滚动缓冲器1706可以存储不同量(例如,行数)的非畸变校正图像数据。当每个新的非畸变校正图像数据行被读入滚动缓冲器1706时,它基于先进先出(FIFO)而替换先前存储在滚动缓冲器1706中的行。例如,如果滚动缓冲器1706当前正存储行0至47,则当行48被读入缓冲器时,可以排出行0。新的非畸变校正图像数据行可以一次一行或一次多行地被读入滚动缓冲器1706中。
滚动缓冲器1706还有助于降低像素处理流水线1700的功率并提高其吞吐量。这是因为来自帧缓冲器1702的任何给定行的非畸变校正像素可以针对各种不同的畸变校正像素的计算而被调用许多不同的次数以被用于像素内插器1710(具体取决于系统80的光学畸变/像差)。在没有滚动缓冲器1706的情况下,给定行的非畸变校正像素可能被多次读取和丢弃。但是因为滚动缓冲器1706保持一组(a swath of)图像数据,所以有助于避免针对相同的像素从帧缓冲器1702执行重复读取操作的需要。
当像素处理流水线1700开始针对给定的视频数据帧执行镜头畸变校正时,滚动缓冲器1706可以被48行非畸变校正图像数据填充,这些数据起始于例如本文描述的控制数据中指定的一行。在控制数据指示镜头畸变校正将从畸变校正图像数据的第一行(即,行0)开始的情况下,非畸变校正图像数据的行0至47被加载到滚动缓冲器1706中。
然后,像素处理流水线1700根据本文描述的技术开始计算畸变校正像素的值。在执行此操作时,第一行(即,行0)畸变校正像素可以取决于被加载到滚动缓冲器1706中的前48行(即,行0至47)非畸变校正图像数据的中的任一行。换句话说,系统80可以处理导致图像数据被畸变到多达48行远的位置的光学畸变。可以基于系统80中存在的光学畸变的典型幅度来选择滚动缓冲器1706的大小,其中较大的滚动缓冲器允许校正较大的光学畸变,但是需要额外的存储资源。
像素处理流水线1700包括逻辑(logic),在计算第一行(即,行0)畸变校正像素之后,该逻辑确定是将滚动缓冲器1706保持在原位(即,不加载任何新的非畸变校正图像数据)还是使滚动缓冲器1706向下滑动(例如,加载一个或两个新行的非畸变校正图像数据)。该逻辑具有相对于以任何必要方式计算的当前行的畸变校正像素定位48行滚动缓冲器1706的灵活性,以便增强滚动缓冲器1706将包括所请求的非畸变校正像素的可能性。例如,当正在计算图像数据帧顶部附近的畸变校正像素时,滚动缓冲器1706可以被定位以允许随后的47行图像数据内的任何非畸变校正像素被用于该计算。当正在计算图像数据帧中间附近的畸变校正像素时,滚动缓冲器1706可以被定位以允许位于畸变校正像素的位置的上方或下方的大约24行的任何非畸变校正像素被用于该计算。最后,当正在计算最后一行图像数据中的畸变校正像素时,滚动缓冲器1706可以被定位以允许访问前47行中的任何非畸变校正像素。以这种方式,可以相对于正被计算的当前行畸变校正像素而改变滚动缓冲器1706的位置。在一些配置中,当计算畸变校正像素时,可以在第一行和最后一行非畸变校正图像数据之间平滑地改变滚动缓冲器1706的位置。
在一些实施例中,在完成每行畸变校正像素的计算之后,存在三种用于更新滚动缓冲器1706的可能选项:1)不对滚动缓冲器1706进行更新(即,零个额外行的非畸变校正图像数据被添加);2)通过额外的一行非畸变校正图像数据更新滚动缓冲器1706;或者3)通过额外的两行非畸变校正图像数据更新滚动缓冲器1706。在其它实施例中,该算法可以允许将其它数量的额外行的非畸变校正图像数据读入滚动缓冲器1706中。
下面概述用于确定采取这三个动作过程中的哪一个的示例算法。首先,确定最后一行非畸变校正图像数据(例如,取决于控制数据的配置,行959或960)是否已经被加载到滚动缓冲器1706中,或者是否存在可加载的额外行的非畸变校正图像数据。其次,确定第一变量,该第一变量被定义为生成当前行畸变校正图像数据所需的最小行非畸变校正图像数据。第三,确定第二变量,该第二变量被定义为生成前一行畸变校正图像数据所需的最小行非畸变校正图像数据。如果这两个变量之间的差为零,则不更新滚动缓冲器1706。如果这两个变量之间的差为1,则通过添加额外的一行非畸变校正图像数据来更新滚动缓冲器1706。如果这两个变量之间的差为2或更大,则通过添加额外的两行非畸变校正图像数据来更新滚动缓冲器1706。也可使用其它算法定位滚动缓冲器1706。
当滚动缓冲器1706存储为了确定给定内插的非畸变校正像素(例如,P0')的值从而确定相应的畸变校正像素(例如,P0)而由像素内插器1710所需的所有非畸变校正像素时,滚动缓冲器1706良好地执行。但是在一些情况下,特定的一组坐标(x',y')可能调用在滚动缓冲器1706中不可用的非畸变校正像素。这可能在异常大的畸变的事件中发生。在这种情况下,可以将被调用但是不存在于滚动缓冲器1706中的非畸变校正像素视为黑色像素,或者可以替代地使用在滚动缓冲器1706中可用的最近像素。
滚动缓冲器获取器1708接收为了计算正被确定的当前畸变校正像素(例如,P0)的值所需的内插的非畸变校正像素(例如,P0')的坐标(例如,(x',y')),然后从滚动缓冲器1706识别并提取镜头畸变校正计算所需的非畸变校正像素。由于像素处理流水线1700通常具有多个并行处理路径以增加计算吞吐量的事实,该处理是复杂的。如上所述,由于相对大量的图像数据(例如,三个深度平面,每个深度平面包括三个颜色子帧)和相对高的帧速率(例如,每秒80或120帧),出现了对多个并行路径的需求。在一些实施例中,存在8个并行处理路径。这意味着内插器1710同时(例如,在一个时钟周期内)确定8个畸变校正像素,这又要求滚动缓冲器提取器1708同时(例如,在一个时钟周期内)提供确定这8个畸变校正像素所需的所有非畸变校正像素。由于像素内插器1710可能被硬连线以接受具有设定大小和形状的一组非畸变校正像素的事实,滚动缓冲器获取器1708的工作进一步复杂化。因此,滚动缓冲器提取器1708在滚动缓冲器1706内识别非畸变校正像素的宏块,该宏块与像素内插器1710被硬连线以接受的设定大小和形状相匹配。滚动缓冲器提取器1708在一个时钟周期内一起从滚动缓冲器1706读取非畸变校正像素的宏块,并将该宏块提供给像素内插器1710。图22中示出了这种宏块2220的一个示例。在所示实施例中,宏块2220是3×11的非畸变校正像素组,但是在其它实施例中它可以具有不同的尺寸。例如,一些实施例可以使用6×4宏块。
图24A示出了滚动缓冲器1706内的示例宏块2220。如已经讨论的,滚动缓冲器1706包括可被用于镜头畸变校正计算的48行非畸变校正图像数据。同时,宏块2220示出了为了确定畸变校正像素而在给定时钟周期期间从滚动缓冲器1706实际读取并被提供给像素内插器1710的那些非畸变校正像素。在一些实施例中,将非畸变校正像素的宏块2220作为一个组一起提取有助于避免执行多个读取周期以提取像素内插器1710中所需的像素的需求,因为执行多个读取周期很可能使像素处理流水线1700变慢。然而,这意味着滚动缓冲器提取器1708必须包括用于选择宏块2220的逻辑,宏块2220可能包括确定全部8个畸变校正像素(例如,P0、P1、P2、P3、P4、P5、P6和P7)所需的所有非畸变校正像素。
从图22中显而易见,宏块2220是否包含确定畸变校正像素(即,P0、P1、P2、P3、P4、P5、P6和P7)所需的所有非畸变校正像素取决于确定畸变校正像素所需的内插的非畸变校正像素(即P0'、P1'、P2'、P3'、P4'、P5'、P6'和P7')的扩展(spread)或局部畸变。如果没有局部畸变(即,如果像素P0'、P1'、P2'、P3'、P4'、P5'、P6'和P7'正如P0、P1、P2、P3、P4、P5、P6和P7一样全部落在8个连续像素的行中),则8个畸变校正像素将取决于2×9的非畸变校正像素块,这是由对于每个内插的非畸变校正像素(即,P0'、P1'、P2'、P3'、P4'、P5'、P6'和P7')的四像素(即,A、B、C和D)的重叠组的双线性内插引起的。在所示实施例中,3×11宏块2220具有一个额外行和两个额外列,以允许内插的非畸变校正像素P0'、P1'、P2'、P3'、P4'、P5'、P6'和P7'之间的某种局部畸变。然而,应该理解,3×11宏块2220仅是一个示例,其它示例可以使用具有不同尺寸的宏块。在其它实施例中,宏块2220的大小可以基于通常存在于系统80中的局部光学畸变的量来确定。如果宏块2220的大小增加,则可以处理更大的局部畸变。然而,增加宏块2220的大小还可能要求增加内插器1710的大小以适应更大数量的像素的输入。
再次参考图22,用于P0'、P1'、P2'、P3'、P4'、P5'、P6'和P7'的一组8个坐标全部一起被提供给滚动缓冲器提取器1708。滚动缓冲器提取器1708的第一任务是确定需要哪些非畸变校正像素以便计算像素P0'、P1'、P2'、P3'、P4'、P5'、P6'和P7'。为了从滚动缓冲器1706提取正确的3×11宏块2220,滚动缓冲器提取器1708可通过例如以下方式分析P0'、P1'、P2'、P3'、P4'、P5'、P6'和P7'的坐标:即,确定存在的最小水平和垂直坐标,并提取具有匹配的最小水平和垂直坐标的宏块2220。基于来自内插的非畸变校正像素的坐标集的这些最小水平和垂直坐标,滚动缓冲器提取器1708将所需宏块2220的地址发送到滚动缓冲器1706。这在图20和21中示出。滚动缓冲器1706通过将选定的非畸变校正像素的宏块2220提供给滚动缓冲器提取器1708来做出响应。如图20和21所示,在3×11宏块2220的情况下,来自滚动缓冲器1706的输出由三条信号线(宏块2220的每一行一条)组成,每条信号线提供88个位或11个字节(每个像素一个)。然后,滚动缓冲器提取器1708将宏块2220中的像素传递到像素内插器1710以确定畸变校正像素。
像素内插器1710可以包括例如8个单独的内插单元,以便允许同时确定8个畸变校正像素。存在用来计算内插的非畸变校正像素P0'、P1'、P2'、P3'、P4'、P5'、P6'和P7'中的每一者、从而确定相应的畸变校正像素P0、P1、P2、P3、P4、P5、P6和P7的值的一个内插单元。如已经讨论的,可通过在包围内插的非畸变校正像素的位置的4个相邻像素(例如,A、B、C、D)构成的组2210当中进行内插来计算每个内插的非畸变校正像素。由于宏块2220包括4个相邻像素的多个不同的可能组2210以供选择,因此每个内插单元可具有相应的多路复用器,该多路复用器负责选择内插单元所需的4个相邻像素的特定组2210。这些多路复用器中的每一个可被硬连线以从宏块2220接收4个相邻像素的多个组2210。每个多路复用器选择一个这样的组2210作为输入而传递到相应的内插器单元。每个多路复用器还可以包括逻辑,该逻辑用于选择4个相邻像素的多个组2210中的哪个组传递到相应的内插器单元以计算内插的非畸变校正像素之一,并因此确定相应的畸变校正像素。
图24B示出了用于将像素从宏块2220传递到像素内插器1710内的8个内插单元的示例多路复用器逻辑2400。8个内插单元被标记为bilerp0、bilerp1、bilerp2等。图24B还示出了宏块2220并且标记了其33个像素中的每一个。行0中的像素被标记为P0、P1、P2等。行1中的像素被标记为Q0、Q1、Q2等。行2中的像素被标记为R0、R1、R2等。多路复用器逻辑2400示出了向与每个内插单元对应的多路复用器提供的4个相邻像素的若干候选组2210。例如,用于第一内插单元bilerp0的多路复用器可以在由P0、P1、Q0和Q1组成的宏块2220中的第一组4个相邻像素和由Q0、Q1、R0和R1组成的宏块2220中的第二组4个相邻像素之间进行选择。要计算的每个内插的非畸变校正像素(例如,P0'、P1'、P2'、P3'、P4'、P5'、P6'和P7')的坐标可被用于寻址多路复用器之一的选择线(select line)。为了正确地寻址多路复用器的选择线,可通过减去宏块2220的最小水平和垂直坐标(如之前由滚动缓冲器提取器1708所确定的)来将每个内插的非畸变校正像素的坐标映射到3×11宏块2220的坐标空间。基于多路复用器选择线的这些输入,多路复用器依次将正确的非畸变校正像素数据传递到内插单元以计算内插的非畸变校正像素P0'、P1'、P2'、P3'、P4'、P5'、P6'和P7',从而确定相应的畸变校正像素P0、P1、P2、P3、P4、P5、P6和P7。
在一些实施例中,宏块2220中的4个相邻像素的所有可能组2210被提供给8个多路复用器中的每一个,以用作8个内插单元中的每一个的可能输入。然而,可通过识别每个畸变校正像素可能仅调用来自宏块2220的子部分的像素,来减小像素内插器1710中的逻辑的大小。例如,参考图22,畸变校正像素P7对应于可能朝向宏块2220的右侧定位的内插的非畸变校正像素P7'。因此,负责确定P7的内插单元很可能不需要朝向宏块2220的左侧定位的非畸变校正像素以便确定P7的值。类似地,畸变校正像素P3和P4的值对应于可能位于宏块2220的中间附近的非畸变校正像素P3'和P4',因此不太可能依赖于位于宏块2220侧面附近的非畸变校正像素的值。因此,多路复用器逻辑2400可以被配置为使得每个多路复用器仅从宏块2220的相关子部分接收非畸变校正像素。每个多路复用器的相关子部分可以被选择为对应于宏块2220的为了计算相应畸变校正像素而将被依赖的可能部分。例如,如图24B所示,用于bilerp1的多路复用器可以仅接收来自宏块2220的列0至4的像素。用于bilerp2的多路复用器可以仅接收来自宏块2220的列1至5的像素。用于bilerp3的多路复用器可以仅接收来自宏块2220的列2至4的像素,依此类推。
当从滚动缓冲器1706读取为了计算全部8个内插的非畸变校正像素(例如,P0'、P1'、P2'、P3'、P4'、P5'、P6'和P7')的值(将被用作相应的8个畸变校正像素(P0、P1、P2、P3、P4、P5、P6和P7)的值)所需的所有像素时,滚动缓冲器提取器1708良好地执行。但是在一些情况下,一组坐标(x',y')可能调用从滚动缓冲器1706读取的宏块2220中不存在的非畸变校正像素。在这种情况下,可以将丢失的像素视为黑色像素,或者可以替代地使用存在于宏块2220中的最近像素。
畸变校正像素(例如,P0、P1、P2、P3、P4、P5、P6和P7)一旦被像素内插器1710确定,便被传递到平场校正块1730。平场校正块1730能够至少部分地校正本文所述的显示器62上可能存在的不希望的亮度变化。如上所述,显示器62可以包括波导(182、184、186、188、190)的堆叠,这些波导将与图像的各种深度平面的各个色场对应的光分布到用户60的眼睛。显示器62还可以包括光重定向元件(282、284、286、288、290),例如具有相对低衍射效率的衍射特征,以使得在与每个特征的交叉处,仅将一部分光引导到用户60的眼睛,同时剩余光继续经由全内反射移动通过波导。因此,携带图像数据的光被分为多个相关的出射光束,这些出射光束在多个位置处离开波导。尽管波导和衍射特征通常被设计为朝着用户60的眼睛提供相对均匀的出射光束图案,但是显示器62的光学复杂性可导致在不同位置输出的光量的一些不平衡。如果在显示器62的不同部分上显示,则这些不平衡可以导致旨在具有相同的颜色和/或亮度的两个像素看起来不同。这些不平衡可通过平场校正块1730来校正。
在一些实施例中,平场校正块1730将亮度校正值应用于图像数据的每个像素。亮度校正值可以是分别用来与相应像素值相乘的因子。例如,在一些实施例中,亮度校正值的范围从0到2,但是也可以使用其它范围。可以选择亮度校正值的范围,以提供动态地将任何给定像素的亮度增加或减小到补偿显示器62中固有的亮度不平衡所需的程度的灵活性。亮度因子可通过实验(例如,通过将已知的校准图像输入到系统70并将显示的图像与校准图像进行比较)或根据理论(例如,通过使用光线跟踪算法)来确定,以便一旦在显示器62上显示该图像数据便减少不希望的亮度变化。
亮度校正值可以被存储在上传到显示控制器的查找表中。图像数据的每个深度平面的每个色场可以具有独特的一组亮度校正值。因此,在由每个具有三个色场的三个深度平面构成的图像数据中,可以在配置期间提供总共九个查找表。对于高分辨率图像数据,存储九个全分辨率查找表所需的存储量可能很大。因此,可以以降低的分辨率存储亮度校正值的查找表。例如,在分辨率为1280×960的图像数据的情况下,查找表可以具有降低的分辨率80×60(或具有分辨率81×61以考虑查找表的外部网格)。在操作期间,可以使用例如双线性内插将降低的分辨率的表扩展到全尺寸。
来自平场校正块1730的输出像素可以被传递到应用传统伽马校正的伽马校正块1740。最后,伽马校正块1740的输出像素可以被传递到色场缓冲器1750,以将彩色顺序制输出到显示器62,如关于图9所描述的。
图61示出了根据两个实施例的系统布置。第一实施例示出了由VR/AR/MR系统的显示控制器实现的像素处理流水线,其从图像生成器接收图像数据,操纵图像数据(例如,移除控制数据),并且仅将图像数据发送到显示面板。然而,如图61所示,像素处理流水线也可以由远程处理器(“腰包处理器”)和/或DP到MPI桥接器(第二实施例)实现。这些像素处理流水线位置仅是示例性的,并且像素处理流水线可以由VR/AR/MR系统的各种其它部件实现。
基于头部姿态数据的后期图像变形
如本文所讨论的,系统80可以包括身体安装式显示器,例如头盔、眼镜、护目镜等。此外,系统80可以包括诸如陀螺仪、加速度计等之类的传感器,这些传感器执行测量,可使用这些测量在三个维度上估计和跟踪用户60的头部的位置、取向、速度和/或加速度。传感器可以被设置在由用户60穿戴在他或她头上的惯性测量单元中。以这种方式,用户60的头部姿势可以被估计为例如指示头部取向的矢量。诸如此类的头部姿势信息可被用作允许用户60与VR/AR/MR场景交互的手段。例如,如果用户60转动或倾斜他或她的头部,则可以以相应的方式使场景变形或被调整(例如,可以使场景的视野移位或倾斜)。
图25A示出了用于基于头部姿势信息使图像数据变形的示例系统2500a。系统2500a包括惯性测量单元2510a,惯性测量单元2510a获取并跟踪可被用于计算用户60的头部姿势的测量值。它还可以包括可被用于检测用户60的头部的位置和取向的其它类型的传感器。这些传感器可以包括例如面向外的视频相机。来自惯性测量单元2510a和其它传感器的数据被传递到头部姿势处理器2512a。头部姿势处理器2512a分析来自所有源的头部姿势测量数据以确定用户60的当前头部姿势。替代地和/或附加地,头部姿势处理器2512a可以使用当前和过去的头部姿势测量数据来预测用户60在未来的一个或多个时刻的头部姿势。
系统2500a还包括GPU 2520a。GPU 2520a负责渲染要显示给用户60的虚拟、增强和/或混合现实图像数据。由头部姿势处理器2512a确定的用户60的当前和/或预测的头部姿势可以被输入到GPU 2520a。GPU 2520a可以使用该头部姿势信息来确定要渲染的图像数据的视锥体。另外,GPU 2520a包括变形处理器2524a,其使用头部姿势信息来基于用户60的头部的位置、取向和/或移动来执行适当的图像变形操作。图像变形操作例如可以包括旋转、平移和补偿用户60的头部姿势变化的任何其它变换。
然后,来自GPU 2520a的渲染图像数据被传递到显示控制器2530a。如本文所讨论的,显示控制器2530a可以利用诸如混合深度平面和校正光学畸变之类的功能来处理渲染图像数据。然后,显示控制器2530a将图像数据扫描输出到显示驱动器2540a,显示驱动器2540a然后使图像数据显示在显示器2550a上。
尽管图25A所示的系统2500a的类型可以基于头部姿势使图像数据变形,但是这样做确实存在一些限制。例如,GPU 2520a和显示控制器2530a中存在处理延迟。另外,存在与向显示驱动器2550a提供图像数据的扫描输出时间相关联的延迟。扫描输出时间通常取决于系统2500a的帧速率。例如,60fps的帧速率通常涉及约1/60=16ms的扫描输出时间,而120fps的帧速率通常涉及约1/120=8ms的扫描输出时间,并且240fps的帧速率通常涉及约1/240=4ms的扫描输出时间。因此,如果GPU 2520a基于用户60的当前头部姿势执行图像变形,则在图像数据实际显示在显示器2550a上之前,头部姿势易于改变。或者,GPU 2520a可以基于用户60的预测的将来头部姿势执行图像变形,但是预测的将来头部姿势的准确性可能不足,因为预测误差可以随着到预测的头部姿势的时间而增加。VR系统可以容忍此方面的一些延迟和/或不准确,因为用户60通常只能看到呈现给他或她的虚拟图像数据。但是AR和MR系统一般对基于头部姿势的图像数据变形的延迟和/或不准确性更敏感。这是由于用户60同时看到虚拟图像数据与他或她的真实世界环境。
通过替代地使用显示控制器执行一些或全部图像变形,可以缓解与利用GPU执行基于头部姿势的图像变形相关联的一些问题。
图25B示出了用于基于头部姿势信息使图像数据变形的改进系统2500b。该改进系统2500b包括惯性测量单元2510b,其与其它可选的位置检测传感器一起捕获头部姿势测量数据。头部姿势测量数据由惯性测量单元2510b提供给头部姿势处理器2512b。头部姿势处理器2512b使用头部姿势测量数据来确定用户60的当前和/或预测的头部姿势。由头部姿势处理器2512b计算的头部姿势信息被输入到GPU 2520b。GPU 2520b使用该头部姿势信息来确定用于渲染要显示给用户60的虚拟图像数据的视锥体。GPU 2520b还包括变形处理器2524b,变形处理器2524b用于基于从头部姿势处理器2512b提供的头部姿势信息对图像数据执行一个或多个图像变形操作。然后,GPU 2520b将渲染图像数据提供给显示控制器2530b。
如本文所讨论的,由于多种原因,诸如图像旋转和像素移位之类的图像变形操作可以由显示控制器2530b执行。在由于例如用户60的头部运动而需要在显示器2550b上移动图像数据的情况下,可以执行像素移位和图像旋转。在这种情况下,图像数据的内容可以是相同的。但是其在显示器62的观看区域内的位置需要被移位。不是在GPU 2520b处重新渲染图像数据并且再次将整组像素发送到显示控制器2530b,而是可以使用图像变形控制数据将像素移位和/或图像旋转应用于图像数据。如图10和11所示,包括图像变形控制数据的控制数据可以被包括在帧的开头。替代地和/或附加地,可以在帧内(例如,在第一行之后)或在帧尾发送图像变换控制数据。这可以使用例如移动工业处理器接口(MIPI)显示串行接口(DSI)虚拟信道完成。
在用户60移动其头部并且想要更准确的像素表示的情况下,也可以执行像素移位和/或图像旋转。不是让GPU 2520b重新渲染图像,而是可以由显示控制器2530b以明显较短的延迟来应用后期图像变形操作。本文描述的任何像素移位和/或图像旋转可以影响单个深度平面或多个深度平面。如本文已经讨论的,在一些实施例中,在显示各种深度平面之间存在时间差。在这些时间差期间,用户60可以移动他或她的眼睛,使得需要使视锥体移动。这可以使用用于任何深度平面的像素移位来实现。
图像变形控制数据可以指示单个深度平面的帧内的X-Y方向上的像素偏移。替代地和/或附加地,像素移位控制数据可以指示Z方向上深度平面缓冲器之间的移位。例如,先前在一个或多个深度平面中显示的对象可以以Z像素移位移到另一深度平面集。此类移位还可以包括放大或缩小每个深度的局部图像的缩放器。假设例如所显示的角色在两个深度平面之间浮动并且该角色没有被另一对象遮挡。可通过使用Z像素移位和缩放器将向前或向后一个或多个深度平面重新绘制该角色来完成该角色在深度方向上的表观移动。这可以在不重新渲染角色且不将帧更新发送到显示控制器2530b的情况下实现,从而以更低的计算成本产生更平滑的运动性能。
缩放器还可被用于补偿由于例如透镜192、194、196、198而在显示器内发生的放大效应。这样的透镜可产生可被用户观察到的虚拟图像。当虚拟对象从一个深度平面移动到另一深度平面时,虚拟图像的光学放大实际上可以与在物理世界中预期的相反。例如,在物理世界中,当对象位于距观看者较远的深度平面处时,该对象看起来比位于较近的深度平面处时更小。然而,当虚拟对象在显示器中从较近的深度平面移动到较远深度平面时,透镜可能实际上放大了该对象的虚拟图像。因此,在一些实施例中,缩放器被用于补偿显示器中的光学放大效应。可以为每个深度平面提供缩放器以校正由光学器件引起的放大效应。另外,如果存在基于每种颜色解决的任何缩放问题,则可以针对每种颜色提供缩放器。
在一些实施例中,最大水平像素移位可对应于整个面板宽度,而最大垂直像素移位可对应于整个面板高度。正负移位均可由控制数据指示。使用该像素移位信息,显示控制器可以使视频数据帧在深度平面之间左右、上下以及前后地移位。像素移位信息还可以使视频数据帧完全或部分地从左眼显示面板移位到右眼显示面板,反之亦然。可以针对光场视频数据中的每个深度平面包括像素移位信息。
在一些实施例(诸如使用基于扫描的显示器的实施例)中,可以执行递增的分布式图像变形操作(例如,像素移位和/或图像旋转)。例如,可以对视频数据帧的不同颜色分量子帧图像数据执行不同的图像变形操作(例如,基于每个子帧图像被处理时可用的当前头部姿势信息)。例如,先处理和/或显示的像素可以比帧内后处理/显示的像素移位得更多或更少,以便补偿中间帧头部移动或者以便模拟虚拟对象的运动。类似地,可以对不同的深度平面执行不同的图像变形操作(例如,基于当每个深度平面被处理时可用的当前头部姿势信息)。例如,一个深度平面中的像素可以比另一深度平面中的像素移位得更多或更少。在一些实施例中,眼睛跟踪技术被用于确定用户60注视在显示屏幕的哪个部分上。在不同深度平面中的,甚至在单个深度平面内的不同位置处的虚拟对象可以根据用户60是否正在观看显示器的该部分而进行像素移位(或不移位)和/或旋转。如果存在用户不在注视的对象,则可以忽略这些对象的图像变形控制数据,以便提高对用户正在注视的图像数据的变形的性能。同样,可以使用眼睛跟踪器来确定用户60正在观看的显示器62上的位置。
返回参考图25B,可以将来自GPU 2520b的渲染图像数据与控制数据一起提供给显示控制器2530b。在改进系统2500b的实施例中,被提供有渲染图像数据的控制数据可以包括由GPU 2520b用来执行图像变形操作的头部姿势信息。控制数据还可以包括时间戳,该时间戳指示与被GPU 2520b用来执行图像变形操作的头部姿势信息对应的时刻(例如,捕获被用来确定头部姿势信息的测量值的时刻)。可以使用来自时钟2560b的时钟信号产生时间戳。
显示控制器2530b从GPU 2520b接收渲染图像数据,并且可以执行本文所讨论的任何处理任务,其中包括光学畸变校正、深度平面混合等。此外,在改进系统2500b中,惯性测量单元2510b可以在由GPU 2520b处理图像数据期间和之后直接向显示控制器2530b提供更新的头部姿势测量数据。这可以使用专用信道完成,如图25B所示。或者,可以将更新的头部姿势测量数据作为控制数据提供给显示控制器2530b,该控制数据恰好在渲染图像数据从GPU 2520b被提供到显示控制器2530b之前被插入有渲染图像数据。如果软件不能保证在发送出最后一行图像数据之后立即将最新的头部姿势测量数据写入缓冲器,则可通过专用硬件添加该控制数据。在通过专用信道或附加控制数据传递更新的头部姿势测量数据的情况下,可以对提供给显示控制器2530b的更新的头部姿势测量数据加上时间戳。可以使用来自时钟2560b的时钟信号产生时间戳。如图所示,时钟2560b可以向惯性测量单元2510b、头部姿势处理器2512b、GPU 2520b和显示控制器2530b提供相同的时钟信号。使用该共同时钟信号,这些设备中的每一者可以具有用于执行基于时间的头部姿势相关的图像变形操作的共同基准帧。
显示控制器2530b包括头部姿势处理器2532b和变形处理器2534b。头部姿势处理器2532b可以使用由惯性测量单元2510b提供的更新的头部姿势测量值来确定当前的头部姿势信息。通常,由显示控制器2530b内的头部姿势处理器2532b生成的头部姿势信息比由GPU 2520b用来执行图像变形操作的头部姿势信息更新。这是因为,惯性测量单元2510b通常可以以比由GPU 2520b渲染图像数据所需的时间更快的速率捕获头部姿势测量值。换句话说,当图像数据由GPU 2520b渲染且然后被传递到显示控制器2530b时,惯性测量单元2510b继续收集更新的头部姿势测量数据。该更新的头部姿势测量数据被提供给显示控制器2530b。
从惯性测量单元2510b提供的更新的头部姿势测量结果由显示控制器2530b内的头部姿势处理器2532b使用,以产生当前头部姿势信息(例如,当前头部姿势矢量)。然后可以将该当前头部姿势信息与由GPU 2520b用来执行图像变形的头部姿势信息进行比较。另外,可以比较这些头部姿势信息集合中的每一者的时间戳。这些相应的头部姿势信息集合之间的差异以及相应时间戳之间的差异可被用于确定差量(delta)头部姿势信息。该差量头部姿势信息可以是例如差量头部姿势矢量,差量头部姿势矢量表示用户60的头部姿势变化(从头部姿势信息被确定用于由GPU 2520b进行的图像变形操作的时间直到更加新的头部姿势信息被确定用于由显示控制器2530b执行的图像变形操作的时间之间的变化)。
显示控制器2530b包括变形处理器2534b,该变形处理器然后可以基于差量头部姿势信息执行一个或多个图像变形操作。作为使用差量头部姿势信息在显示控制器2530b中执行图像变形操作的替代,GPU 2520b可以放弃执行任何图像变形操作,并且相反地,变形处理器2534b可以仅基于由显示控制器2530b内的头部姿势处理器2532b确定的当前头部姿势信息来执行图像变形操作。然而,先用GPU 2520b执行初始图像变形操作,然后由显示控制器2530b利用差量头部姿势信息执行附加的图像变形操作的方法可能是有利的,这是因为该方法可导致由显示控制器2530b执行的图像变形操作具有较小的量级。
在一些实施例中,由GPU 2520b提供给显示控制器2530b的图像数据可以相对于显示器2550b的显示分辨率尺寸过大。例如,如果显示器2550b被设计为显示1280×960图像数据,则可以向显示控制器2530b提供具有更多行和/或列的图像数据。这些超额的图像数据行和/或列可用作图像数据的所有四侧上的缓冲区。这些缓冲区允许显示控制器2530b执行基于头部姿势的图像变形(例如,旋转和/或平移),而不会用完边缘处的图像数据。例如,如果用户60的头部姿势要求将图像数据向右移位X列,则左侧缓冲区中的X列图像数据可以移动到将要显示的图像中。以这种方式,提供给显示控制器2530b的过大尺寸图像避免或降低了由于缺少图像数据而不能完成图像变形操作或者必须插入黑色像素来代替缺少的图像数据的风险。
如本文所讨论的,显示控制器2530b可以基于在显示控制器2530b正处理图像数据时最新的头部姿势信息执行图像变形操作,诸如图像缩放、平移和图像旋转。这允许改进系统2500b中的显示控制器2530b更好地补偿用户60的头部姿势变化。然后,图像数据从显示控制器2530b被读出到显示驱动器2540b,显示驱动器2540b最终在显示器2550b上显示图像数据。但即使在改进系统2500b中,由于扫描输出时间,在显示控制器2530b应用基于头部姿势的图像变形的时间和用户60实际看到图像的时间之间仍存在潜在显著的延迟量。可通过以相对高的帧速率(例如,240fps或更高)操作系统2500b来减小扫描输出延迟,但这会涉及显著的计算成本以及相关的功率增加。然而,图25C所示的改进系统解决了这些问题中的一些或全部。
图25C示出了用于基于头部姿势信息使图像数据变形的另一改进系统2500c。与图25B的系统2500b类似,图25C的改进系统2500c可以包括惯性测量单元2510c、头部姿势处理器2512c、GPU 2520c(具有变形处理器2524c)、显示控制器2530c(具有头部姿势处理器2532c和变形处理器2534c)、显示驱动器2540c和显示器2550c。这些部件中的每一者按照上面关于图25B的系统2500b所讨论的那样操作。然而,在改进系统2500c中,显示驱动器2540c被定制为包括头部姿势处理器2542c和变形处理器2544c。显示器驱动器2540c的头部姿势处理器2542c和/或变形处理器2544c可以驻留在显示器桥接芯片(未示出)上,例如到移动工业处理器接口(MIPI)桥接器的显示器端口。
来自惯性测量单元2510c(以及可能的其它位置检测传感器)的头部姿势测量数据被提供给显示驱动器2540c。来自时钟2560c的时钟信号也被提供给显示驱动器2540c。基于该架构,可以在从显示控制器2530c扫描输出图像之后基于更加新的头部姿势信息执行一个或多个基于头部姿势的图像变形操作。例如,在一些实施例中,显示驱动器2540c基于不超过1ms之前的头部姿势信息执行一个或多个图像变形操作。
在改进系统2500c中,显示控制器2530c按照已经讨论的那样将图像数据扫描输出到显示驱动器2540c,但是在该实施例中,扫描输出的图像数据包括控制数据。被提供有扫描输出的图像数据的控制数据可以包括由显示控制器2530c用来执行图像变形操作的头部姿势信息。另外,控制数据还可以包括时间戳,该时间戳指示对应于该头部姿势信息的时刻(例如,捕获由显示控制器2530c用来执行图像变形的头部姿势测量的时刻)。可以使用来自时钟2560c的时钟信号产生时间戳。
另外,在显示控制器2530c处理图像数据期间和之后,惯性测量单元2510c可以继续向显示驱动器2540c提供更新的头部姿势测量数据。可以为该头部姿势测量数据提供时间戳。可以使用专用信道从惯性测量单元2510c向显示驱动器2540c提供更新的头部姿势测量数据,如图25C所示。或者,可以将更新的头部姿势测量数据作为控制数据提供给显示驱动器2540c,该控制数据恰好在被扫描输到显示控制器2530b之前被插入在帧尾处。如果软件不能保证在发送出最后一行图像数据之后立即将最新的头部姿势测量数据写入到缓冲器,则可以通过专用硬件添加该控制数据。在通过专用信道或附加的控制数据传递更新的头部姿势测量数据的情况下,显示驱动器2540c可以使用头部姿势处理器2542c来基于由惯性测量单元2510c提供的更新的头部姿势测量值确定头部姿势信息。通常,由显示驱动器2540c内的头部姿势处理器2542c产生的头部姿势信息比由显示器控制器2530c提供的头部姿势信息更新。这是因为,惯性测量单元2510c在显示控制器2530c处理图像数据的同时继续收集更新的头部姿势测量数据。该更新的头部姿势测量数据被提供给显示驱动器2530c。
然后,可以将由显示驱动器2540c内的头部姿势处理器2542c产生的更加新的头部姿势信息与由显示控制器2530c用来执行图像变形操作的头部姿势信息进行比较。另外,可以比较这些头部姿势信息集合中的每一者的时间戳。这些相应的头部姿势信息集合之间的差异以及相应时间戳之间的差异可被用于确定差量头部姿势信息。差量头部姿势信息可以是例如差量头部姿势矢量,差量头部姿势矢量表示用户60的头部姿势变化(从头部姿势信息被确定用于由显示控制器2530c执行的图像变形操作的时间直到更加新的头部姿势信息被确定用于由显示驱动器2540c执行的图像变形操作的时间的变化)。
显示驱动器2540c包括变形处理器2544c,变形处理器2544c然后可以基于差量头部姿势信息执行一个或多个图像变形操作。作为使用差量头部姿势信息在显示驱动器2540c中执行图像变形操作的替代,GPU 2520c和/或显示控制器2530c可以放弃执行任何图像变形操作,并且相反地,变形处理器2544c可以仅基于由显示驱动器2540c内的头部姿势处理器2542c确定的当前头部姿势信息执行图像变形操作。然而,首先用GPU 2520c执行初始图像变形操作,然后由显示驱动器2540c利用差量头部姿势信息执行附加的图像变形操作的方法可能是有利的,因为该方法可导致由显示驱动器2540c执行的图像变形操作具有较小的量级。
由于由显示驱动器2540c执行的图像变形操作在时间上更接近用户60实际看到图像数据,并且由于这些操作基于更加新的头部姿势信息,因此用户60享有具有更短的头部姿势相关延迟的更好的体验。
在一些实施例中,由GPU 2520c和显示控制器2530c提供给显示驱动器2540c的图像数据可以相对于显示器2550c的显示分辨率尺寸过大。例如,如果显示器2550c被设计为显示1280×960图像数据,则可以向显示驱动器2540c提供具有更多行和/或列的图像数据。这些超额的图像数据行和/或列可用作图像数据的所有四侧上的缓冲区。这些缓冲区允许显示驱动器2540c执行基于头部姿势的图像变形(例如,旋转和/或平移),而不会用完边缘处的图像数据。例如,如果用户60的头部姿势要求将图像数据向右移位X列,则左侧缓冲区中的X列图像数据可以被移动到将要显示的图像中。以这种方式,提供给显示驱动器2540c的过大尺寸图像避免或降低了由于缺少图像数据而不能完成图像变形操作或者必须插入黑色像素来代替缺少的图像数据的风险。
在图25B和25C所示的改进系统2500b和2500c的一些实施例中,显示控制器(2530b、2530c)和/或显示驱动器(2540c)可以基于相同的头部姿势测量值和/或其它头部姿势信息,针对图像数据的所有色场和/或深度平面一起执行一个或多个图像变形操作。或者,在一些实施例中,显示控制器(2530b、2530c)和/或显示驱动器(2540c)可以基于不同的头部姿势测量值和/或其它头部姿势信息,针对图像数据的不同色场和/或深度平面执行一个或多个图像变形操作。例如,可以使用对应于第一时间的第一头部姿势测量值和/或其它头部姿势信息,对图像数据的第一色场和/或深度平面执行第一图像变形操作。然后,可以使用对应于随后的第二时间的更新的第二头部姿势测量值和/或其它头部姿势信息,对图像数据的第二色场和/或深度平面执行第二图像变形操作。可以每次基于更新的头部姿势测量值和/或其它头部姿势信息,针对图像数据的每个色场和/或深度平面重复执行上述操作。
另外,在一些实施例中,显示控制器(2530b、2530c)和/或显示驱动器(2540c)可以基于不同的头部姿势信息,针对图像数据的其它子帧或色场的不同部分执行一个或多个图像变形操作。例如,可以使用与第一时间的头部姿势测量值对应的第一头部姿势信息,对图像数据的其它子帧或色场的第一部分执行第一图像变形操作。然后,可以使用与随后的第二时间的头部姿势测量值对应的更新的第二头部姿势信息,对图像数据的其它子帧或色场的第二部分执行第二图像变形操作。可以每次基于更新的头部姿势信息,针对图像数据的其它子帧或色场的每个部分重复执行此操作。在这些实施例中,图像数据可以被分解为块,而且,包括头部姿势测量值和/或其它头部姿势信息的控制数据可以被提供在块之间的散布有图像数据的各个行和/或列中。用于每个块的头部姿势测量值和/或其它头部姿势信息可以相对于前一个块被更新。用于每个块的更新的头部姿势测量值和/或其它头部姿势信息可被用于针对相应的块执行一个或多个图像变形操作。
图25B和25C中所示的改进系统2500b和2500c对于连续地(如图9所示)而非同时地显示不同色场的彩色顺序制显示技术特别有利。这是因为在彩色顺序制显示器中,在处理或显示每帧图像的相应色场的时间之间存在一些延迟。用户60在该延迟期间的头部移动可导致诸如色分离之类的错误,在色分离中,意图被叠加的图像数据的不同颜色在空间上是分离的。因此,在一些实施例中,改进系统2500b中的显示控制器2530b和/或改进系统2500c中的显示驱动器2540c可以基于每色场而执行基于头部姿势的图像变形。例如,显示控制器2530b和/或显示驱动器2540c可以连续地从惯性测量单元2510c接收头部姿势测量值,并且可以连续地计算更新的头部姿势信息。然后,显示控制器2530b和/或显示驱动器2540c可以使用更新的头部姿势信息来恰好在每个相应色场被处理或显示在显示器上之前针对图像的每个色场使图像数据变形。
图25B和25C中所示的改进系统2500b和2500c对于使用诸如本文描述的多深度平面图像的系统80也是特别有利的。这是因为,在处理或显示给定图像数据帧的不同深度平面的时间之间通常存在一些延迟。例如,可以在第一时间处理或显示与远场深度平面相关联的图像数据,而可以在随后的第二时间处理或显示与近场深度平面相关联的图像数据。用户60的在该延迟期间的头部移动可导致诸如深度平面分离之类的错误,在深度平面分离中,例如,旨在被位于近场深度平面中的另一虚拟对象遮挡的位于远场深度平面中的虚拟对象变得移位,使得该近场对象不再适当地遮挡远处对象。因此,在一些实施例中,改进系统2500b中的显示控制器2530b和/或改进系统2500c中的显示驱动器2540c可以基于每个深度平面执行基于头部姿势的图像变形。例如,显示控制器2530b和/或显示驱动器2540c可以连续地从惯性测量单元2510c接收头部姿势测量值,并且可以连续地计算更新的头部姿势信息。然后,显示控制器2530b和/或显示驱动器2540c可以使用更新的头部姿势信息来恰好在每个相应的深度平面被处理或显示在显示器2550c上之前使用于图像数据的每个深度平面的图像数据变形。
在另一示例中,显示控制器2530b和/或显示驱动器2540c可以基于每个色场和每个深度平面执行基于头部姿势的图像变形。例如,参考图9所示的彩色顺序制显示方案,显示控制器2530b和/或显示驱动器2540c可以计算G0场的第一头部姿势信息,G0场是D0深度平面的绿色场。然后,显示驱动器2540c可以恰好在处理G0场或在显示器2550上显示G0场之前(例如,在1ms内)使G0场变形。随后,显示控制器2530b和/或显示驱动器2540c可以计算R0场的第二头部姿势信息,该R0场是D0深度平面的红色场。然后,显示控制器2530b和/或显示驱动器2540c可以恰好在处理R0场或在显示器2550c上显示R0场之前使R0场变形。然后可以针对B0、G1、R1、B1、G2、R2和B2色场依次重复相同的过程。
图62至64示出了根据各种实施例的用于在GPU中执行WARP操作的各种方法。这会将WARP操作推向像素处理/显示流水线。首先,将最新的头部姿势估计发送到显示控制器(例如,在显示缓冲器中的最后一行图像数据中)。最新的头部姿势估计可能是4ms前的,但是给定8.33ms可被用于显示单个帧的深度平面,这会将姿势预测延迟减少到显示时间的大约50%。这减小了预测误差。当WARP操作在显示流水线上执行时,它与图像处理并行进行,从而使更多的GPU周期可被用于其它图像处理功能。
图62示出了第一实施例(相对于图63和64)。在第一实施例中,在显示流水线和前一个场上并行地执行WARP操作,从而将GPU从该操作中释放出来并缩短了操作的延迟,这是因为该操作并非如第二实施例所示那样串行执行。
图63示出了第二实施例,其中IMU更新频率增加到大约300Hz并且直接与显示流水线共享数据。在该实施例中,新的IMU数据可以被用于每个WARP(例如,基于色场)。这缩短了姿势确定和WARP操作之间的时间(例如,从6.77-12.3ms缩短到2.77ms)。因此,这减少了WARP错误和色分离。
在该实施例中,显示流水线分析在系统的最后一行上提供的最新姿势,在产生GPU内容时使用的姿势,以及用于执行WARP的最新IMU样本。这显著缩短预测时间,因为该场将在IMU样本的3ms内被呈现,而非像第一实施例中那样长达21ms。较低的预测时间直接转化为明显较小的错误以及较低的色分离。
图64示出了第三实施例,其中在GPU处执行大型WARP,接着执行后续IMU测量,并且将更小、更快的WARP(例如,每色场)推向显示流水线更远处。针对每个色场使用更新的IMU样本(如在图63所示的第二实施例中那样)仍然在GPU中使用给定头部姿势的渲染事件与实际光子击中显示器之间留下非零时间量。在第三实施例中,像素流水线作为自定义块驻留在桥接器或GPU上。该实施例可以在处理器控制器上使用大型显示缓冲器,以避免必须每次屏幕更新时从DRAM 3次读取帧缓冲器(这会消耗带宽)。该实施例还可以使用数据压缩来减小缓冲器大小。如果像素流水线位于桥接器上,则WARP操作也可以是畸变补偿的一部分。
颜色查找表混合模式
图26示出了用于实现颜色查找表混合操作模式的系统2600的示例实施例。系统2600包括3转1(3-to-1)多路复用器2640和一个或多个查找表2650。多路复用器2640的输入是包括红色、绿色和蓝色色场的图像数据。图像数据的每个像素具有8位红色值2610、8位绿色值2620和8位蓝色值2630。这些颜色值的某些位可以包括控制数据,如本文其它地方所讨论的。例如,在所示实施例中,用于每个色场的像素值包括8位,其中6个最高有效位被用于指定颜色,而2个最低有效位被留出作为控制数据。在一些实施例中,控制数据可以指定与图像数据的每个像素对应的深度平面(在图26中被称为RGBx序列)。
如图26所示,多路复用器2640接收3个输入:红色值2610的6个最高有效位,绿色值2620的6个最高有效位,以及蓝色值2630的6个最高有效位。多路复用器2640具有当前活动颜色控制线,该控制线被用于选择这些输入中的一者以传递到查找表2650。在一些实施例中,当前活动颜色控制线可具有值0、1或2,这些值中的每一者对应于三个色场之一。在所示实施例中,当前活动颜色为红色。因此,多路复用器2640将红色值2610的6个最高有效位传递到查找表2650。
除了接收当前活动颜色的6个最高有效位之外,查找表2650还从色场中的一个或多个接收控制数据。在所示实施例中,每个颜色值的两个最低有效位用作控制数据,并且所有这些位作为附加的输入被传递到查找表2650。查找表2650还接收当前活动颜色作为输入。最后,查找表2650接收当前深度平面作为输入。在一些实施例中,当前深度平面是由控制数据指定的三个深度平面之一。
查找表2650被用于基于所有上述输入而指定当前活动颜色的最终颜色值。在所示实施例中,当前活动颜色是红色,并且使用红色值2610的6个最高有效位、红色值2610的2个最低有效位、绿色值2620的2个最低有效位以及蓝色值2630的2个最低有效位(即,总共12位)索引到4千字节的查找表2650。存在9个这样的可被索引的查找表2650。基于当前活动颜色(3个选项)和当前活动深度平面(3个选项)进行表选择。该方法允许跨若干个深度平面进行像素颜色的线性、定制和非线性混合,从而在显示器62输出方面提供大量灵活性。
可通过的世界(Passable World)
图27示意性地示出了根据一个实施例的用于产生MR体验的方法3700。在步骤3702,穿戴着MR系统的用户在真实物理世界内四处移动。当他们这样做时,其相应的MR系统捕获图像和深度信息。可选地,可以用描述MR系统在捕获图像和深度信息时的位置和取向的姿势信息来标记所捕获的图像和深度信息。因为各种用户具有相对于真实物理世界的不同的位置和取向,所以来自各种用户的所捕获的图像和深度信息可被用于构建更完整的真实物理世界表示,该表示由于来自多个位置和取向,因此更准确。
在步骤3704,根据表示真实物理世界的所捕获的图像和深度信息而生成的“可通过的世界”被存储在持久性数据中。在一个实施例中,可通过的世界被存储在可操作地被耦接到由用户穿戴的MR系统的服务器上。
在步骤3706,“对象识别器”(被配置为分析图像数据并从中识别对象的软件和/或应用)分析可通过的世界。对象(例如表)由对象识别器识别。对象识别器可以在MR系统和/或与其连接的服务器上运行。
在步骤3708,MR系统和/或与其连接的服务器确定可通过的世界的被占用的部分。例如,确定其中设置有桌子的可通过的世界的部分被占用,以使得虚拟对象不会产生或移动到该可通过的世界的该部分中(这会降低MR体验)。
在步骤3710,MR系统和/或与其连接的服务器产生一个或多个网格(mesh)以定义可通过的世界中的对象的表面。在步骤3712,MR系统和/或与其连接的服务器形成一个或多个平面,以限定可通过的世界中对象的表面。这些网格和平面均能促进更逼真的MR体验并简化应用开发(例如,游戏开发)。
在步骤3714,MR系统和/或与其连接的服务器将可通过的世界(包括识别的对象、占用八叉树、网格和平面)发送到各种MR应用。这些应用可以将可通过的世界用于各种功能,这些功能包括在可通过的世界中放置或“粘附”虚拟对象或像素。所述应用还可以使用可通过的世界确定可通过的世界中的表面和对象的遮挡、冲突和行为。
无线数据传输
MR头戴式显示器、移动计算支持系统和图腾控制器之间的无线连接将导致更容易、更自然可用的MR系统。然而,用户的身体使无线信号衰减,导致信号损失太高和/或带宽太低,使得当前的无线连接无法有效地传输产生具有可接受质量的MR体验所需的数据量。
在用于以较高带宽发送数据(例如,以满足MR带宽要求)的一些实施例中,MR系统包括天线、接收器和发射器以增加带宽。在一些实施例中,MR系统利用数据压缩来减少带宽需求。在一些实施例中,MR系统包括分布在每个主要部件(例如,MR头戴式显示器、移动计算支持系统和/或图腾控制器)上的GPU。在这样的实施例中,传输最少的低比特率图形数据(例如,OpenGL)(有或没有压缩)。然后,接收部件基于所接收的最少低比特率图形数据来渲染图像。
在图28所示的实施例中,MR系统3800包括2.4GHz高速无线链路以在MR系统的各种部件(例如,MR头戴式显示器3802、移动计算支持系统3804以及图腾控制器3806)之间传输数据。与其它无线通信链路相比,2.4GHz高速无线链路以相对低的延迟传输数据(例如,在图腾控制器3806中的IMU和移动计算支持系统3804之间传输数据)。MR系统3800还包括蓝牙(IEEE 802.15.1)和WiFi(IEEE 802.11)无线链路,从而导致三个无线链路在各种MR系统部件之间传输数据。
2.4GHz高速无线链路通过MR头戴式显示器3802、移动计算支持系统3804和图腾控制器3806中的每一者内的2.4GHz高速无线链路收发器3808来实现。蓝牙无线链路通过MR头戴式显示器3802、移动计算支持系统3804和图腾控制器3806中的每一者内的蓝牙收发器3808来实现。WiFi无线链路通过MR头戴式显示器3802、移动计算支持系统3804和图腾控制器3806中的每一者内的WiFi收发器3812来实现。
增加无线收发器的数量会增加天线的数量。在一些实施例中,用于每个MR系统部件上的各种无线收发器(2.4GHz高速、蓝牙、WiFi)的天线在物理上彼此分离,以使各种无线收发器3808、3810、3812之间的干扰最小化。在一个实施例中,通过向柔性电路添加引线,将天线添加到移动计算支持系统3804,该柔性电路可以使特定天线免受干扰。
当多个MR系统彼此接近地工作时,增加无线收发器的数量也增加了干扰的可能性(例如,来自频率重叠)。在用于解决此问题的一个实施例中,每个MR系统的每个无线收发器被配置为在启动时扫描其操作频率以选择开放频率(open frequency)。在另一实施例中,每个MR系统的每个无线收发器被配置为与其它MR系统协商(例如,使用近场通信)以选择开放频率。在又一实施例中,基于MR系统的独特标识号而略微修改每个MR系统上的无线收发器的频率,以使得频率本身对于MR系统是独特的。
用于降低频率重叠和干扰多个MR系统的可能性的方法也可被应用于MR系统和具有物理位置的共享资源(例如,房间中的无线基站)之间的无线通信。例如,每个MR系统的每个无线收发器可以被配置为在启动时扫描其操作频率以选择用于与无线基站通信的开放频率。在另一实施例中,每个MR系统的每个无线收发器被配置为与无线基站和/或其它MR系统协商(例如,使用近场通信)以选择开放频率。在又一实施例中,基于MR系统的独特标识号而略微修改每个MR系统上的无线收发器的频率。
时域功率管理
另一实施例解决了系统功耗和随着功耗和处理器周期的增加而导致的系统发热的相关问题。
图29是示出根据一个实施例的在低功率模式和正常功率模式之间切换并同时提供MR系统产生高质量MR体验所需的处理器周期的方法4000的流程图。在步骤4002,MR系统在低功率模式下操作。在此模式下,许多消耗大量电池功率的部件被关闭或者被置于具有快速唤醒选项的待机模式。在一个实施例中,当用户坐在桌子旁而不改变其姿势时,MR系统处于低功率模式。
在步骤4004,处于低功率模式的MR系统通过低延迟通信信道接收对正常处理器模式的请求。例如,MR系统可以使用低功率传感器检测到用户的姿势已经改变超过特定阈值水平。
在步骤4006,MR系统通过对先前关闭或处于待机模式的系统部件加电来切换到正常功率模式。MR系统基于对正常处理器模式的特定请求来管理系统部件的加电,以控制从电池汲取的总电流量和由系统部件加电产生的热量。
在步骤4008,MR系统接收系统可以在低处理器功率模式下运行的指示(indicator)。例如,MR系统可以检测到用户的姿势持续特定阈值时间量保持相对恒定。
在步骤4010,MR系统返回到低功率模式。增加MR系统在低功率模式下操作的时间量既降低了电池功耗,又减少了由系统部件(例如处理器)产生的热量。
图30是示出根据一个实施例的在正常功率模式和突发或高功率模式之间切换,并同时提供MR系统产生高质量MR体验所需的处理器周期的方法4100的流程图。在步骤4102,MR系统在正常功率模式下操作。在一个实施例中,当用户使其身体移位并注视而没有诸如渲染和显示虚拟对象之类的其它MR系统功能时,MR系统处于正常功率模式。
在步骤4104,处于正常功率模式的MR系统接收对高处理器模式的请求。例如,MR系统可以接收到渲染和显示虚拟对象的请求。
在步骤4106,MR系统通过操作需要大量功率的特定系统部件来切换到突发或高功率模式。MR系统基于对高处理器模式的特定请求来管理系统部件的第一模式,以控制从电池汲取的总电流量和由以突发模式操作的系统部件产生的热量。
在步骤4108,MR系统接收系统可以在正常处理器模式下运行的指示。例如,MR系统可以检测到它不再需要渲染和显示虚拟对象。
在步骤4110,MR系统返回到正常功率模式。减少MR系统在突发模式下操作的时间量既降低了电池功耗,又减少了由系统部件(例如处理器)产生的热量。
离散成像模式
离散成像模式是用于具有多个平面的MR系统的特定功率节省和热量减少模式。在离散成像模式下,所有或大部分内容在一个平面上。处于离散成像模式的MR系统通过将其资源引导到在一个平面中渲染和投射图像来节省功率并减少热量。其它平面中的图像以少得多的处理(例如,通过模糊,通过降低更新频率等)被呈现。在单个深度平面上呈现图像减少了需要许多处理器周期的混合问题。
图31A是示出根据一个实施例的在保持高质量MR体验的同时,在多平面显示模式和离散成像模式之间切换的方法4200的流程图。在步骤4202,MR系统在多平面模式下操作。在多平面模式下,MR系统在多个深度平面上渲染和投射图像。渲染和投射图像需要大量处理器周期和电池功率,从而产生大量热量。
在步骤4204,MR系统接收单平面活动的指示。单平面活动的指示包括但不限于用户请求使用MR系统在虚拟屏幕上显示电影,以及用户使用MR系统打开2D应用。单平面活动的其它指示包括但不限于,眼睛或注视跟踪结果指示用户的注视持续阈值时间量会聚于特定平面。
在步骤4206,MR系统响应于接收到单平面活动的指示而切换到离散成像模式。为了防止急速模式切换伪像,可以跟踪用户的眼睛以检测和/或预测眨眼(blink),并且MR系统可以被配置为在眨眼期间从多平面模式改变到离散成像模式。MR系统可以被配置为在检测到的或预测的眼睛运动(例如,飞快扫视)期间改变模式以产生非不和谐的过渡。当虚拟对象被呈现在与系统当前正在渲染的平面不同的平面上时,MR系统可以检测到或预测眼睛运动。
在步骤4208,系统接收多平面活动的指示。多平面活动的指示包括但不限于,用户的注视离开离散成像模式的平面的时间超过阈值时间量。多平面活动的其它指示包括但不限于,用户请求停止正在离散成像模式的平面上显示的电影或应用。
在步骤4210,响应于接收到多平面活动的指示,系统返回到多平面模式。如同在步骤4206,MR系统可以被配置为在检测到的或预测的眨眼或飞快扫视期间切换模式以产生非不和谐的过渡。
图31B是示出根据另一实施例的在保持高质量MR体验的同时,在多平面显示模式和离散成像模式之间切换的方法4200的流程图。在步骤4202,MR系统在多平面模式下操作。在多平面模式下,MR系统在多个深度平面上渲染和投射图像。渲染和投射图像需要大量的处理器周期和电池功率,从而产生大量热量。
在步骤4204',MR系统接收MR系统接近预定阈值的指示。如在本申请中所使用的,“接近”一数值阈值包括但不限于系统特性/统计数值在数字阈值的预定量或百分比内。预定阈值包括但不限于系统温度限制和电池功率限制。例如,当系统接近或达到预定的最大温度阈值时,MR系统可以接收到指示。在另一实施例中,MR系统可以在系统接近或达到预定的最小电池功率阈值时接收到指示。阈值对于系统功能是临界的,使得达到或超过这些阈值可能导致系统关闭。或者,阈值可以被设定或预先确定以指示可导致系统在次优水平下运行的状态。
在步骤4206,响应于接收到MR系统接近预定阈值的指示,MR系统切换到离散成像模式。为了防止急速模式切换伪像,可以跟踪用户的眼睛以检测和/或预测眨眼,并且MR系统可以被配置为在眨眼期间从多平面模式改变到离散成像模式。MR系统可以被配置为在检测到的或预测的眼睛运动期间(例如,飞快扫视)改变模式以产生非不和谐的过渡。当虚拟对象被呈现在与系统当前正在渲染的平面不同的平面上时,MR系统可以检测到或预测眼睛运动。
在步骤4208',系统接收正常系统操作的指示。正常系统操作的指示包括但不限于,系统在数值阈值的预定量或百分比内不具有系统特性/统计数值。正常系统操作的其它指示包括但不限于系统被连接到充电电源。
在步骤4210,响应于接收到正常系统操作的指示,系统返回到多平面模式。如同在步骤4206,MR系统可以被配置为在检测到的或预测的眨眼或飞快扫视期间切换模式以产生非不和谐的过渡。
基于眼睛/注视跟踪的渲染修改
眼睛和注视跟踪可被用于修改对象的渲染以减少处理器周期和电池功耗以及热量的产生。例如,眼睛和/或注视跟踪指示用户正聚焦于/观看其FOV中的特定区域,图像的渲染可以集中于/聚焦于用户的焦点。这可以在X和Y方向,以及沿光轴的Z方向上(例如,特定的深度平面)实现。还可以通过预测用户的眼睛运动(例如,使用深度学习网络)来预测用户的焦点。也可以使用可操作地被耦接到MR系统的各种传感器(例如,IMU、麦克风、相机等)的传感器融合来预测用户的眼睛运动。
在一个实施例中,MR系统被配置为使图像聚焦于用户FOV的特定象限。这降低了对眼睛和注视跟踪/预测的准确性的要求。如上所述,可以使用需要较少处理器周期的方法来渲染用户正将其注视聚焦于的特定象限之外的图像。
在一个实施例中,当更多功率和/或处理器容量可用时(例如,当MR系统被连接到电源并且处理器使用率低于阈值水平时),可以增加/扩宽聚焦期间的锐利渲染区域。该实施例既节省功率,又能确保位于用户焦点处的对象以MR系统可实现的最高水平被渲染。增加聚焦期间的锐利渲染区域也导致对于用户更自然的过渡。MR系统可基于其它因素修改在聚焦期间的锐利渲染区域,这些其它因素包括但不限于眼睛运动量、系统温度、用户偏好等。
在另一实施例中,可以修改被用于预测用户眼睛的位置的模型,以使得该模型在以用户的当前焦点为中心的聚焦区域中更准确。对于在聚焦区域之外的区域,该模型可能不太准确甚至是错误的。
可以基于所计算的眼睛旋转中心的位置而非观看矢量(viewing vector)来跟踪用户眼睛。眼睛的旋转中心随时间推移不会发生明显变化。因此,基于用户眼睛的旋转中心而渲染图像会是处理器较不密集的。
图32是示出根据一个实施例的使用跟踪的和/或预测的眼睛或注视位置来降低渲染处理器要求的方法4300的流程图。
在步骤4302,MR系统跟踪和/或预测其用户的眼睛位置。
在步骤4304,MR系统基于跟踪的或预测的眼睛位置计算用户的当前焦点。
在步骤4306,MR系统生成以用户的当前焦点为中心的聚焦区域。MR系统可以基于当前系统状态和/或用户偏好而生成聚焦区域。
在步骤4308,MR系统渲染一个或多个虚拟图像,以使得这些图像的在聚焦区域内的部分被更准确地渲染(以较高的处理器成本),并且这些图像的在聚焦区域之外的部分以较低的准确性(以较低的处理器成本)被渲染。
在步骤4310,MR系统向用户显示渲染的虚拟图像。
场景增强
图33示出了3D场景1,其示出了与AR/MR系统中使用的真实世界场景相结合的场景增强。作为一种选择,3D场景1或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的情景(context)中实现。
图35所示的实施例仅是一个示例。如图所示,3D场景1包括角色2形式的场景增强8。角色2被示出为具有三个维度,其中包括深度(即,角色2被取向为使得它穿过多个深度平面)。本文讨论的技术中的一些包括结合图形处理器使用感知处理器/CVPU来模拟深度感知。本文讨论的实施例中的一些涉及在显示或模拟与深度有关的方面中使用的深度平面的高速度和低功率管理。更特别地,包括显示或模拟与深度有关的方面的场景增强可通过头戴式显示器(HMD)实现,该头戴式显示器可能包括附加模块,如下图所示。
在一些实施方式中,前述投影仪由多个平面形成,每个平面与对应的深度平面相关联。可以以各种配置来组织深度平面,其中一种配置如关于图34所示和所讨论的。
基于瞳孔跟踪的深度平面切换
图34示出了在实现VR/AR/MR系统的部件中使用的连续更远的深度平面4500(从远离用户的1个屈光度到6个屈光度)的组织。作为一个选项,深度平面4500或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。
显示单元81被用于向用户呈现图像。图像可能包括场景增强,而场景增强又可能呈现看起来是三维的一个或多个角色或对象。在与VR/AR/MR的任何会话期间,用户可能相对多地或相对少地对一个或另一个深度平面感兴趣。例如,用户可能对前景图像中的精细特征感兴趣,并且可能对背景图像不感兴趣。在一些情况下,可以检测(例如,通过瞳孔取向检测器4502,如图所示)用户对特定深度平面的感兴趣水平。可以有目的地保持对前景(或任何其它深度平面)的兴趣和/或可以有目的地处理一深度平面(例如,消隐、模糊、颜色去饱和等),以便适应瞳孔移动和/或从其进行推断。在一些情况下,通过对感兴趣/不感兴趣的检测和/或对感兴趣/不感兴趣的推断,和/或通过显式命令,可以在跨许多帧的模式下禁用或以其它方式控制一个或多个深度平面。深度平面切换技术的一个示例在下面给出。
图35示出了被用于实现低功率VR/AR/MR系统的深度平面切换技术4600。作为一个选项,深度平面切换技术4600或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。用于在两个或更多个深度平面之间切换的深度平面切换技术4600或其任何方面可以在任何环境中实现。
如图所示,流程从步骤4602开始以确定每个平面的内容(如果有的话)。步骤4604确定瞳孔取向,之后,显示应用或服务将深度平面信息与瞳孔信息进行组合,以在将切换模式应用于显示的平面(步骤4608)之前自动确定切换模式(在步骤4606)。严格地说,作为一个示例,可以使一个深度平面消隐。作为另一示例,可以使多个深度平面消隐。作为又一示例,可以通过自动切换模式单独地控制所显示的帧的序列的显示或消隐。
通常,切换模式以高速率运行,例如每秒30帧,或每秒60帧,或针对六个平面中的每一者每秒60帧,这样达到每秒360个可单独控制的帧的总速率。因此,用于实现切换模式的某些技术相对更适当,而另一些技术则不那么适当。至少出于快速切换和低功耗的目的,可使用一组模拟开关,以快速切换顺序单独地接通或关断各个深度平面。
关于深度平面切换的一般方法的进一步细节在2016年5月4日提交的(代理案卷号ML.20058.00)、名称为“SEPARATED PUPIL OPTICAL SYSTEMS FOR VIRTUAL AND AUGMENTEDREALITY AND METHODS FOR DISPLAYING IMAGES USING SAME(用于虚拟和增强现实的分离式瞳孔光学系统以及使用该系统显示图像的方法)”、序列号为15/146,296的美国申请中进行了描述,该申请的全部内容通过引用并入本文中。
低功率深度平面切换
图36示出了使用模拟开关4708来实现VR/AR/MR系统中的低功率深度平面切换技术4700。作为一个选项,低功率深度平面切换技术4700或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。低功率深度平面切换技术4700或其任何方面可以在任何环境中实现。
如图所示,显示单元81由一个或多个显示平面82组成。一个或多个显示平面82中的每个单独的显示平面可以被单独控制,以便单独地消隐(例如,关闭)或去饱和或调暗(例如,降低功率)任何个体深度平面。可以由应用或服务4712确定时变开关设置组。应用或服务4712又可以实现将被传递到模拟开关4708(经由路径4711)的动态确定的开关模式的形成。
可以至少部分地通过一系列决定来定义切换模式。如图所示,这样的决定可以包括在形成动态确定的开关模式时对深度平面重新排序,消隐深度平面,跳过一个或多个帧,交换(swap)一个或多个帧,和/或执行颜色排序。这种消隐或跳过或交换或重新排序或颜色排序可用于提供更令人愉悦且更逼真的场景增强(例如,没有中断或具有在视觉序列中可见的衰减的中断)。针对帧序列跳过一个或多个平面也可被用于提供更令人愉悦且更逼真的场景增强。
多重实现配置
利用LED的多路复用(“MUXing”)的一种方式是使用一个RBG驱动器和时域MUX,该时域MUX使用上述模拟开关以在两个深度平面之间切换。这支持极高切换速率,并且在特定平面处没有数据的情况下还可自动禁用激光器。另一种方式是实现“颜色顺序”模式。可以闪烁R、G,然后闪烁B,而不是先显示RGB平面1,然后显示RGB平面2等。可以使用时间多路复用方法交换和执行颜色顺序操作。当用户移动他/她的头部时,该技术减少(例如)平面1和平面2之间的色分离。可以将交换指令编码到帧数据中,以便于逐帧地执行彩色顺序制颜色交换。
一些实施例关闭空平面上的LED。这可用于提高对比度并节省功率。这些技术可以结合以下项而被使用:(1)选择性地关闭LED,以及(2)顺序帧。
作为示例,考虑具有3个深度平面的帧和仅具有1个深度平面的下一帧。可以通过关闭不需要的功能(例如,功率、对比度损失等)来控制这种情况。可以使用“第一行数据包”逐帧地进行控制,其中80或90字节的控制信息被编码到数据包中并被用于同步显示。
在一种实施方式中,管理处理器被用于串行化控制数据,以减少通过头戴装置到腰包连接的引脚数量。这种串行化支持更长的电缆,在使用低压差分信号(LVDS)时可提供提高的抗噪性和信号完整性。
其它深度平面处理
图像数据的时间复用实现了令人感兴趣的效应。可以创建由短脉冲(shortburst)构成的“时间上的光场”,所述短脉冲在发送一个深度平面时出现,然后另一个,然后另一个,以此类推。更有趣的是,当使用彩色顺序制显示时(对于第一平面,依次显示R、G和B;对于第二平面,依次显示R、G和B),切换越快,用户注意到的帧到帧分离越少。
为了实现超高速切换,可在提供深度平面信息时在GPU中实时更新头部位置数据。例如,可以将姿势信息编码到帧行数据中(例如,最后一行数据中)。这样,显示控制器可以在本地处理变形。此外,GPU可以被配置为以下面的方式发送显示数据:(1)一次一种颜色,以及(2)一次一个深度平面。延迟被显著减少或超出人类感知地被消除。这样,实时姿势数据可被用于命令显示控制器实时调整。例如,当处理RGB数据的一个特定平面时,变换调整可以独立于其它平面而对该数据执行变形。还可以对输入数据进行重新排序,使其以场顺序朝向显示像素前进。使用上述方式可以有效地完成两个或更多个深度平面的拟合。在某些情况下,图像和控制数据被压缩,以减少重新排序所需的临时存储和带宽。
图37示出了使用模拟开关实现VR/AR/MR系统中使用的逐帧低功率深度平面切换技术4800。作为一个选项,技术4800或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。技术4800或其任何方面可以在任何环境中实现。
可以使用模拟开关4708实现快速切换。用于保持深度平面消隐指令序列的逐帧缓冲器可以被实现为按时间排序的先进先出(FIFO)缓冲器或被实现为循环缓冲区或被实现为一系列存储器位置或寄存器。因此,如图所示,可以在一系列帧上应用切换模式(例如,切换模式48100、切换模式48101和切换模式48102)。此外,任何给定的帧可以具有与每个单独的深度平面相关的关联消隐指令集。
述的方法,使用值(例如,消隐位值、颜色或亮度位字段值等)实现六个深度平面(例如,DP1、DP2、DP3、DP4、DP5和DP6)的切换模式。更具体地说,对于每个帧时钟(例如,在帧时钟的正边缘上,或在帧时钟的负边缘上),可以将下一组值加载到模拟开关的控制端子上,以便产生所需的消隐和/或颜色或亮度变化等。
在一些情况下,应用或服务(例如,应用或服务4712)可以基于眨眼示意(wink)或眨眼(blink)检测来实现消隐。
图38示出了使用模拟开关实现在低功率VR/AR/MR系统中的逐帧眨眼或眨眼示意事件深度平面切换技术4900。作为一个选项,技术4900或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。技术4900或其任何方面可以在任何环境中实现。
感知处理器/CVPU 85可以确定眨眼示意事件的开始和结束(在4906处)和/或眨眼事件的开始和结束(在4904处)。在眨眼示意或眨眼事件期间,可以建立(例如,通过设定或清除值)切换模式,以使得显示器的左侧和/或显示器的右侧在相应事件期间被消隐(例如,关闭)。可以建立一系列单独的切换值以形成跨多个帧的切换模式。例如,因为当用户的闭眼时,他/她没有感知到视觉信息,所以可以关闭显示器而不会减损AR体验。在此期间关闭显示屏可以节省功率。在一些情况下,显示单元可以被分为两个部件:(1)执行实际光生成的第一部件,以及(2)控制第一部件的接通/关断状态的第二部件。
六发式射机(six-shooter)实施例
图39示出了使用六发式射机架构实现低功率VR/AR/MR系统中的显示技术。六发式射机架构可以与三种不同颜色(例如,R、G、B)的三个发射器和两帧序列组合使用。可以对帧进行排序,以使得第一帧中的任何特定像素可以与六发式射机的一元件相关联,并且第二帧中的任何特定像素可以与六发式射机的另一元件相关联。因此,六发式射机控制六个可独立控制的发射器。
一些实施例依赖于发射器的组织,以使得存在2×R、2×G和2×B个发射器(例如,在不同方向上从面板反弹的6个LED发射器)。当执行混合变焦技术时,连续帧顺序是{RGB,RGB},首先到达深度平面1,然后到达深度平面2。在一些实施例中,存在对这两个平面的单独控制。因此,可以将相同的帧缓冲器传递到具有所有相同像素{RGB,RGB}的每个深度平面,然后调制基础场的亮度。因此,在单独控制发射器的情况下,结果是:例如,当及时闪烁两个R发射器时,以一种方式呈现暗反射,并且以另一方式呈现亮反射。在许多情况下,6个发射器依次发射,我们使用离开面板的出射角将其发射到波导中。在改进方法中(例如,在混合变焦模式下),将相同的RGB发送到两个平面——像素阵列仍然是相同的,但是LED的亮度(差分照明)被调整为使得显示器更暗(或不更暗)。例如,使用上述技术,50%亮度被发送到前面,50%亮度被发送到后面(使用相同的帧数据)。通过改变LED强度来实现深度混合。当使用离散变焦时,所有像素在平面1和平面2上是相同的,整个帧缓冲器跨这两个平面被混合,因此不需要使用这样的技术来使单独的场变形。这可以在硬件中实现以覆盖许多情况或变化(例如,对于非顺序制显示,其中R1和R2不同和/或移位等的变化)。
关于制造和使用六发式射机的一般方法的进一步细节在2016年5月4日提交的(代理人案卷号为ML.20058.00)、名称为“SEPARATED PUPIL OPTICAL SYSTEMS FOR VIRTUALAND AUGMENTED REALITY AND METHODS FOR DISPLAYING IMAGES USING SAME(用于虚拟和增强现实的分离式瞳孔光学系统以及使用该系统显示图像的方法)”、序列号为15/146,296的美国申请中描述,该申请的全部内容通过引用并入本文中。
低功率低延迟头戴装置
图40示出了在VR/AR/MR系统中使用的低功率低延迟头戴装置架构5100。作为一个选项,低功率低延迟头戴装置架构5100或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。低功率低延迟头戴装置5100或其任何方面可以在任何环境中实现。
所示的低功率低延迟头戴装置架构5100可被用于实现命令唤醒能力。具体地说,如图所示,感知处理器或CVPU 85可以访问一组存储的关键字,这些关键字被映射到命令唤醒能力。当用户说出唤醒命令关键字之一(例如,“醒来”,“嘿,计算机”等)时,CVPU 85可以检测到该话语,将其分类为命令唤醒关键字,并且将命令唤醒关键字代码(可能带有中断命令5108)发送到腰包。如果腰包处于睡眠状态或休眠状态或其它低功率待机模式,则上述中断结合关键字代码的出现将导致腰包醒来。
实现该功率低延迟数据流的一种方式是将关键字检测(例如,经由关键字检测装置5102)和分类置于头戴装置中,而非腰包中。这样,腰包中的功能(例如,软件)可以进入低功率模式(例如,睡眠或静默,但不是OFF(关闭)模式),可以在接收(例如,被腰包接收)到唤醒命令时退出该模式。可以进入这种低功率或极低功率睡眠或休眠模式,并且预期该模式可以在任何时刻在头戴装置检测到唤醒命令之后及时被唤醒。
在一种实施方式中,如图所示,CVPU 85与音频处理器87通信,音频处理器87又被连接到一个或多个麦克风。CVPU 85和/或音频处理器87可以访问关键字存储装置5104,以便将话语(例如,通过麦克风接收并由音频处理器处理)与关键字存储装置5104中的条目进行比较。如图所示,关键字存储装置5104包括单个单词形式的条目,然而关键字可以是关键短语。关键字存储装置5104可以包括采样数据和/或音素数据,和/或任何编码数据,以便于话语与一个或多个关键字条目之间的匹配。在匹配时,可以将关键字代码5106(例如,1、2、3等)发送到腰包以将其从其休眠或其它低功率状态唤醒。在该实施例中,可以在极短时间内做出关键字或关键短语上的匹配(例如,对于一些关键字,在一百毫秒内,或对于其它关键字或关键短语,在几百毫秒内)。
图41是示出VR/AR/MR系统中使用的低延迟低功率流的两个序列的比较图表5200。作为一个选项,比较图表5200或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。比较图表5200或其任何方面可以在任何环境中实现。
如图41所示,与操作和决定的第二序列(例如,COMMS#2)相比,操作和决定的第一序列(例如,COMMS#1)表现出相对较长的延迟和较高的功率的操作。第一序列通过检测(在步骤5210)话语(例如,使用任何前述麦克风)开始。然后,将话语的声音样本发送到腰包(在步骤5212)以进行处理(例如,以检测该话语是否是关键字)。如果腰包上的处理器确定(在判定5214处)该话语是关键字,则启动唤醒操作(在步骤5216)。对话语声音样本打包并将打包的声音样本从头戴装置传送到腰包耗费时间和功率。
处理话语和启动唤醒操作可以专门在头戴装置域中完成(如图41的COMMS#2和图40中所示)。更具体地说,第二序列通过检测(在步骤5202)话语(例如,使用任何前述麦克风)开始。然后,在头戴装置处本地处理该话语的声音样本以检测该话语是否是关键字(在步骤5204),而不将话语声音发送到腰包。如果头戴装置上的处理器确定该话语是关键字,则发送中断命令(在步骤5206)以在腰包处启动唤醒操作(在步骤5208)。因此,这导致说话时刻和启动唤醒命令时刻之间的延迟相对较低。而且,与第一序列的较高功率操作5222相比,第二序列导致较低功率操作5220。
低功率低延迟运动预测
图42是用于将运动预测传递到VR/AR/MR系统的头戴装置部件的VR/AR/MR系统框图5300。作为一个选项,VR/AR/MR系统框图5300或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。VR/AR/MR系统框图5300或其任何方面可以在任何环境中实现。
在许多VR/AR/MR系统中,检测用户运动,尤其是用户的头部运动(例如,使用加速度计)。基于运动的性质安排(schedule)场景增强的变化。在一些情况下,上述场景增强变化安排涵盖相对长的时间段(例如,一秒的大部分到若干秒)。为了改善平滑显示和逼真性,包括在上述场景增强中检测(在步骤5302)和使用的头部运动的启动的运动改变了安排。在一些情况下,头部(或眼睛)运动(例如,运动事件5304)的初始测量可以与预测器(例如,预测引擎5308)结合使用以产生一系列预测(例如,一系列运动预测5312),这些预测涉及头部或眼睛在未来某个时刻的位置。通常,非常近期的预测相对于实际运动是相当准确的(例如,在仅几毫秒的误差内),但随着时间的推移,误差倾向于变得越来越大,导致误差锥5310扩展。在某个点上,误差变得足够大,致使预测被视为“错误的”或“无用的”,并且需要根据当时的听力运动事件做出新的预测。运动事件的检测和可将运动预测传递到头戴装置以进行相应图像变换的时间之间的时间可能足够长,致使图像变换被认为是“晚的”或“不同步的”。下面的段落中给出了处理头部运动以实现同步图像变换的另一种方式。
图43是示出VR/AR/MR系统的头戴装置部件中的本地预测引擎的VR/AR/MR系统框图5400。作为一个选项,VR/AR/MR系统框图5400或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。VR/AR/MR系统框图5400或其任何方面可以在任何环境中实现。
该实施例检测运动事件5304并将运动事件传递到位于头戴装置的本地的感知处理器/CVPU 85。如图所示,感知处理器/CVPU 85包括本地预测引擎5402。因此,运动事件与一系列运动预测(其可被用于驱动变换调整)的开始之间的延迟非常短。可以基于运动预测5312F和调整参数5404的组合做出变换调整5306。
图44是用于比较VR/AR/MR系统中使用的本地预测引擎的性能的比较图表5500。作为一个选项,比较图表5500或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。比较图表5500或其任何方面可以在任何环境中实现。
比较图表5500可被用于通过在时间尺度上比较操作来评估延迟。如图所示,操作和决定的第三序列(例如,COMMS#3)通过检测头部运动(在步骤5510)开始,然后将运动数据发送到远程预测引擎(在步骤5512)。在腰包处,执行运动预测(在步骤5514),然后将运动预测发送到头戴装置(在步骤5516),以在头戴装置处做出变换调整(在步骤5518)。
严格地说,作为示例,下表呈现了变换和相应错误类型的选择。变形变换/校正错误类型包括跨所有显示平面的聚散和调节。旋转变换/校正错误类型包括跨所有显示平面的扫调(pan)。高程(elevation)变换/校正错误类型包括跨所有显示平面的有利位置(vantage)和调节。
表1:变换调整
为了比较,操作和决定的第四序列(例如,COMMS#40)也从检测头部运动(在步骤5502)开始,这些事件在本地预测引擎处立即可用(在步骤5504),此时,头部运动预测可以由本地预测引擎做出(在步骤5506),其转而可以基于运动预测5312和调整参数5404的组合而启动图像变换(在步骤5508)。
可以将表征第三序列的较长延迟和较大错误操作5522与第四序列的较低延迟和较小错误操作5520进行比较。
颜色校正
如前所述,变换调整5306可基于运动预测5312和调整参数5404的组合做出。此外,变换调整5306可基于运动预测5312结合预测的颜色变化做出。例如,当在诸如房间内的场景之类的真实世界图像上产生场景增强时,用户可以移动他们的头部以将焦点从房间的相对较暗的区域改变到房间的相对较亮的区域。因此,变换调整5306可以包括照明调整、对比度调整、颜色调整等,以使得所计算的调整相对于预测的头部运动和预测头部位置时的帧内的真实世界场景的照明条件而被执行。对用户焦点的准确预测可以促进准确的渲染,和/或消除错误/丢弃的照明渲染,从而在不减损用户体验的情况下节省功率。
其它实施例
加速度计将传感器融合数据提供到嵌入式处理器中,该嵌入式处理器可以将运动更新发送到本地处理器以进行传感器融合、显示调整等。上述所有都可以在本地完成——就在显示器/头戴装置处完成。正如附加示例一样,显示调整可以包括变形、变换等,非常接近显示器(例如,LCOS)(例如,并且不依赖于远端腰包的参与)。这样的方法缩短了来/去远程部件的延迟。延迟是不希望的,改善这种情况的方法是使图像处理块位于显示器/头戴装置附近。
低功率侧信道
图45是示出VR/AR/MR系统中使用的低功率侧信道的系统框图5600。作为一个选项,系统框图5600或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。系统框图5600或其任何方面可以在任何环境中实现。
如图所示,本地处理模块70可以通过路径76而与远程处理模块72通信。在一些实施例中,路径76被实现为通用串行总线(USB、USB2、USB3、PCIE等),被示出为USB 5601。USB5601路径提供高带宽,并且因此由本地处理模块70和/或远程处理模块72的许多构成部件使用。本领域技术人员将观察到USB 5601路径要求相对大量的功率。此外,本领域技术人员将观察到,由于USB是先验已知的高带宽,因此通常依赖于适应许多用途,其中一些用途无法被准确预测。因此,USB 5601路径可能遭受数据通信量堵塞。在这种情况下(例如,当通过USB 5601路径传输大数据包或大数据序列时),其它较小但可能具有较高优先级的通信被卡住。在该实施例中,在本地处理模块70和远程处理模块72之间提供备用路径(alternatepath)。可以使用分别被连接到本地处理模块70和远程处理模块72的部件来构建该备用路径。具体地说,可以使用本地处理模块70的通用输入/输出(GPIO)块的少量引脚和CPU的一些引脚或远程处理模块72的外围设备来构建该备用路径。更具体地说,可以使用本地处理模块70的GPIO块的少量引脚和CPU的一些JTAG引脚或远程处理模块72的外围设备来构建串行外围互连(SPI)形式的备用路径。
这种SPI 5604的存在意味着USB 5601路径和SPI 5604路径都不需要始终可操作。SPI 5604和USB 5601可以被多路复用和/或分别根据一种或多种基于模式的方案被接通或关断。这种基于模式的方案可以在逻辑流程中实现,例如下面示出和描述的逻辑流程。
图46A、图46B和图46C分别示出了用于使用VR/AR/MR系统中的低功率侧信道的基于模式的流程5700A、5700B、5700C。作为一个选项,基于模式的流程5700A、5700B、5700C或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。基于模式的流程5700A、5700B、5700C或其任何方面可以在任何环境中实现。
图46A的流程5700A通过检测模式(在步骤5708)开始。基于检测到的模式,可以确定(在判定5710处)USB路径是否被全部或部分地禁用。接下来,可以确定(在判定5712处)可以禁用USB路径的哪些能力。例如,可以禁用USB操作的某些方面,同时令其它方面保持启用状态。作为一个具体示例,USB路径可以包括转发器(repeater)。(例如,在静默或低带宽操作期间),有可能在某一时刻不需要转发器,因此可以考虑在低功率转发器模式下或在直通(pass-through)模式下操作。
当确定在遵守基于模式的方案时要禁用至少一些USB模式时,可以使用GPIO引脚(例如,GPIO块5602的GPIO引脚)和JTAG引脚(例如,管理处理器的JTAG引脚5606)通过SPI路径(例如,SPI 5604路径)执行串行通信(在步骤5714)。一旦确认可通过SPI 5604路径进行串行通信,则禁用适用的USB模式。可以在任何时间点重新启用USB路径。
现在参考图46B的流程5700B,在某些情况下,GPIO引脚可能已经被用于某种其它目的。因此,使用GPIO引脚进行串行通信可能需要引脚的重新配置的重新映射。这样的确定可在步骤5718做出,然后在步骤5720执行。更具体地说,当确定在遵守基于模式的方案时至少一些USB模式要被禁用时,GPIO引脚和JTAG引脚可以被配置为通过SPI路径(例如,SPI5604路径)执行串行通信。一旦确认可通过SPI 5604路径进行串行通信,便禁用适用的USB模式(步骤5716)。可以在任何时间点重新启用USB路径。
现在参考图46C的流程5700C,在某些情况下,GPIO引脚可能当前被用于某种其它目的,需要对GPIO引脚进行互斥访问。因此,可以管理使用GPIO引脚进行串行通信以进行互斥访问。提供MUTEX(在步骤5722)。对这种MUTEX的访问可导致授权(在步骤5724),之后图46C和46B的逻辑可以针对所检测模式的待进入操作方案启动引脚的重新配置的重新映射。当确定至少一些USB模式要被禁用以遵守基于模式的方案时,GPIO引脚和JTAG引脚可以被配置为通过SPI路径(例如,SPI 5604路径)执行串行通信。一旦确认可通过SPI 5604路径进行串行通信,则禁用适用的USB模式(步骤5716)。可以在任何时间点重新启用USB路径。
前述管理处理器可以作为具有JTAG接口,或者在现场可编程门阵列(FPGA)中实现的现成处理器被提供。更具体地说,JTAG接口包括诸如在JTAG(IEEE 1149.1)中定义的信号引脚。这种JTAG引脚可以包括:TDI(测试数据输入)、TDO(测试数据输出)、TCK(测试时钟)、TMS(测试模式选择),以及可选引脚,例如TRST(测试复位)。JTAG引脚可以通过任何已知的方式控制,包括从本领域已知的GPIO引脚进行控制。
低功率侧信道的一种具体实施方式使用FPGA和GPIO。
多实施方式配置
前述SPI连接可被用于禁用腰包处理器上的USB的全部或部分,可穿戴处理器上的USB SS的全部或部分,以及USB转接驱动器(redriver)的全部或部分。USB功耗在系统中很重要,这种低功率接口减少了始终启用较高功率接口(即USB)的需要。
图47示出了用于在VR/AR/MR系统中使用低功率侧信道的电缆配置5800。作为一个选项,电缆配置5800或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。电缆配置5800或其任何方面可以在任何环境中实现。
图47所示的实施例仅是电缆的一个示例,该示例包括(1)用于支持USB通信和配电的电导体,以及(2)用于其它通信(例如,通过SPI)的电导体(例如,SPI导体528)。此外,图46A、图46B、图46C和图47的低功率模式相关流程仅仅是用于配置本地处理模块70和远程处理模块72之间的较低功率通信路径的一些示例流程。
多部件低功率模式
当部件之间协作时,可以进入和退出其它低功率模式。更具体地说,构成本地处理模块70的部件可以通过协议通信,以达成关于远程处理模块72的哪些构成部件可以被关闭或降到相应的低功率模式的协定。在替代方案中,构成远程处理模块72的部件可以通过协议通信,以达成关于本地处理模块70的哪些构成部件可以被关闭或降到相应的低功率模式的协定。
诸如下面的附图所示的那些的合作协议和流程用于检测低功率机会,部件间的模式协商,贯彻合作协议的过程中的部件间消息的中继,以及确定部件特定的低功率模式。
图48示出了用于在VR/AR/MR系统的协作部件之间实现低功率侧信道通信的模式配置协议5900。作为一个选项,模式配置协议5900或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。模式配置协议5900或其任何方面可以在任何环境中实现。
如图所示,协议在检测到可疑事件5902时开始。该事件可能由命令或按钮按压或VR/AR/MR系统中的任何事件导致。在操作5904处,确定在给定传入事件和特定部件的当时状态的情况下适用的一个或多个本地(例如,自启动)低功率模式。另外,在操作5906处,可以确定一个或多个协调低功率模式,然后可以使用部件间信令或消息传递(例如,使用消息5908)来协商该模式。
VR/AR/MR系统的任何部件可以接收可疑事件并发起其自己的处理。在某些情况下,外围设备可能是无法进行消息传递的“简单”外围设备。在这种情况下,外围设备可能仅基于命令进入低功率模式。例如,如图所示,感知处理器/CVPU可能检测到用户按钮按下以使麦克风静音。此时(取决于模式)直到静音被解除为止,可能不需要语音处理器来执行语音处理。因此,命令(例如,消息5910)可以使语音处理器进入其低功率模式之一。命令可以简单地通过在寄存器中(例如,在语音处理器芯片中或在另一芯片中)设定一值,或者通过插拔语音处理器的引脚来实现。
图49示出了用于在VR/AR/MR系统的协作部件之间实现低功率侧信道通信的多部件模式配置流程6000。作为一个选项,模式配置流程6000或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。模式配置流程6000或其任何方面可以在任何环境中实现。
该图示出了可由任何相应部件并行执行的多个并发操作流程。部件(例如,CPU、GPU、感知处理器/CVPU等)仅仅是示例,并且其它部件也是可能的。
该流程的步骤扩增了上述协议。所示流程通过接收可疑事件(在步骤6012)开始,接着对两个或更多个低功率模式可能性按优先序排列(在步骤6014),然后确定系统中的其它部件可以进入的本地低功率模式和协调模式的组合集(步骤6016)。然后,该确定可以促使进入协议(例如,图48的上述协议),以便使其它部件参与协商(在步骤6018)。在执行此协商的过程中,可以将关于低功率模式的细节(例如,ID、确认码、超时值等)传送到协商中涉及的其它部件,之后(步骤6020),进入本地低功率模式(例如,如在前面的步骤6014和步骤6016中所确定的)。
至此描述的协议消息传递和/或部件模式配置流的任何组合可被用于实现系统范围的低功率同步。
严格地说,作为示例,可以在头戴装置和腰包之间使用第一组低功率技术,并且可以在头戴装置和投影仪之间使用第二组低功率技术。图50提供了如下细节。
多部件低功率模式同步
图50示出了在VR/AR/MR系统的协作部件之间使用的低功率同步技术6100。作为一个选项,低功率同步技术6100或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。低功率同步技术6100或其任何方面可以在任何环境中实现。
如表2所示,在头戴装置和腰包之间的操作期间可以应用和/或同时激活许多同步技术。在低功率持续(ongoing)同步技术的示例中,头戴装置和腰包通过低速、低功率侧信道6132(例如,图45中的SPI 5604)通信。在头戴装置和腰包之间传送少量数据(例如,每个时钟周期的时间码数据6126),以在所有操作条件下保持逐时钟同步。
在低功率持续待机同步技术的示例中,腰包定期从头戴装置接收时间码数据,并且头戴装置定期从腰包接收时间码数据。对时间码进行比较以评估漂移。警报指示6128从腰包被发送到头戴装置。唤醒事件命令6124从头戴装置被发送到腰包。
在低带宽显示控制同步技术的示例中,低带宽显示构造6130从腰包被发送到头戴装置。投影仪(例如,从显示微处理器)向头戴装置发送低功率选项6136。头戴装置将低功率命令(例如,低功率模式命令6122)中继到投影仪。投影仪加载具有与低功率模式有关的控制值的控制模块6138。
表2:头戴装置、腰包和投影仪之间的低功率技术
仍然参考图50,如表2所示,其它低功率技术包括减少用于在腰包和头戴装置之间的通信的带宽量。视频数据可以在被发送之前被编码6142和/或被压缩6144。可以使用针对当时系统条件而选择的压缩技术(例如,MPEG)对视频数据进行编码6142。可以使用行程编码来对空白帧或空白帧序列进行编码。视频数据可以在被发送之前被压缩6144。可以使用针对当时条件而选择的压缩参数(例如,1080p、720p等)来压缩视频数据。
音频数据可以在被发送之前被编码6146或被压缩。可以使用针对当时条件而选择的压缩技术(例如,MPEG)对音频数据进行编码/压缩。可以在音频流的未使用部分中发送非音频数据。
表3:腰包和头戴装置之间的低功率技术
数据的时分复用
在一些情况下,以模拟等时数据传输的方式在USB总线上执行音频数据的通信。例如,语音可以以立体声(例如,左声道和右声道)或四声道数据格式被发送。正在进行的语音可以通过正在进行的立体声流或四声道数据包而被发送。在一些情况下,外围芯片以小数据脉冲发送语音或音频数据或自动语音识别ASR数据的流。此外,在一些情况下,数据脉冲的格式由外围芯片的配置(例如,立体声配置、四声道配置)来固定。此外,可能存在可能不需要立体声传输的一个声道(例如,右声道)的时刻。在许多这样的情况下,除声音数据之外的数据可以被打包到立体声或四声道流的未使用部分中。图51和52中的图和讨论给出了多种用于打包和/或多路复用要在协作部件之间传送的数据的技术。
图51是示出要在VR/AR/MR系统的协作部件之间传送的数据的时分复用的实现的流程图6200。作为一个选项,流程图6200或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。流程图6200或其任何方面可以在任何环境中实现。
如图所示,该流程通过在头戴装置中配置麦克风(在步骤6202)开始,并配置从头戴装置到腰包的一个或多个通信路径(在步骤6204)。处理器(例如,感知处理器/CVPU)计算可用声道的数量“C”(例如,两个用于立体声,四个用于四声道等)(在步骤6206)。此外,计算所需声道的数量“N”(在步骤6208)。所需声道的数量是动态的。例如,即使声音芯片被配置为四声道声音,也会经常只有立体声素材可用。在某些时刻,仅使用一个声道(例如,用于音频警报)。如果“N”(例如,所需声道数量)小于“C”(例如,可用声道数量),则采用一路径(在步骤6210),以便可以将可用的和未使用的声道打包到被用于除发送音频之外的其它目的的可用声道中。
严格地说,作为示例,可以将当前头部姿势(在步骤6212)或眼睛姿势数据(在步骤6214)打包到可用声道中。作为另一示例,可以将回声消除数据打包到可用声道中(在操作6216)。以上仅仅是使用时分多路复用和数据打包的示例,这些技术在图51中被指示为TDM信道打包6218。
图52示出了用于实现要在VR/AR/MR系统的部件之间传送的数据的时分复用的数据打包技术6300。作为一个选项,数据打包技术6300或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。数据打包技术6300或其任何方面可以在任何环境中实现。
可以基于当时的实时条件结合当时的实时可用性而动态地执行TDM信道打包。可以在任何时刻检查条件的存在或事件的发生。如果存在至少可能释放信道的事件,或要执行TDM信道打包的事件,则在检测到该条件或事件时,可以执行图51的流程或其部分。
图52的示例示出了第一时间样本窗口,包括涉及左声道的音频数据和涉及右信道的音频数据。在时间TD,发生事件。执行由图51的流程或其部分做出的判定,并且该判定导致将姿势或声音数据打包到下一样本窗口的右信道中(在步骤6320)。这可以继续通过N个样本窗口6322,或者直至另一条件或事件导致对信道使用的动态重新评估。
电池升压系统
图53示出了用于在VR/AR/MR系统的协作部件之间传送电池寿命信息的电池升压系统6400。作为一个选项,电池升压系统6400或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。电池升压系统6400或其任何方面可以在任何环境中实现。
一些实施例包括低功率侧信道。这种信道(或任何其它信道)可被用于将低电量指示传送到头戴装置。头戴装置转而可能会向用户警告电池状况。
在所示实施例中,腰包具有腰包电池6410,该电池被连接到电压检测器6408和升压器6406。在电池正常操作期间,电流通过导体6404被传送到头戴装置。然而,当电池电量低时,电压检测器6408将可能使用低功率侧信道SPI 5604向头戴装置发送低电量指示6412。头戴装置中的电量警告单元6402接收低电池电量指示并向用户发出警报。除了向头戴装置发送低电池电量指示之外,电压检测器6480还将调用升压器6406以通过提升电压(以及减小最大电流)而开始操作。这种低电池电压指示可以与本文描述的任何低功率技术结合使用。
系统部件连接
图54示出了包括VR/AR/MR系统的协作部件的电缆连接系统6500。作为一个选项,电缆连接系统6500或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。电缆连接系统6500或其任何方面可以在任何环境中实现。
图54所示的实施例仅是一个示例。如图所示,电缆连接系统6500包括头戴装置(左侧)和腰包(右侧)。头戴装置使用电缆6506而被连接到腰包。电缆6506提供头戴装置和腰包之间的数据通信。腰包包括电池连接器以提供与外部电池的电连接。外部电池提供电流以给应用处理器6508和腰包的其它部件供电。电缆6506包括电导体以将电流从腰包传送到头戴装置。因此,腰包的外部电池提供电流以给CVPU处理器6502和头戴装置的其它部件供电。在一些实施例中,应用处理器6508可以访问温度传感器,以便在规定的温度范围内自我调节功耗。
在某些情况下,可以恰当地通过移除电缆而从腰包解下头戴装置。
图55示出了包括VR/AR/MR系统的协作部件的无线连接系统6600。作为一个选项,无线连接系统6600或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。无线连接系统6600或其任何方面可以在任何环境中实现。
前面通过电缆提供的通信可以通过无线连接6504无线地提供。收发器(例如,收发器6522H和收发器6522B)被用于支持一个或多个无线通信设施。在一些情况下,如图所示,无线通信被配置为支持多个无线通信标准和/或多个专属无线通信协议栈。
严格地说,作为示例,所示的无线通信设施包括蓝牙(例如,802.15x)、WiFi(例如,802.11x)、蓝牙近场通信、蓝牙低功耗和/或用于腰包和头戴装置之间的通信的一个或多个专属无线设施。
示例性系统架构
图56示出了包括VR/AR/MR系统的多个协作部件的系统部件划分6700。作为一个选项,系统部件划分6700或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。系统部件划分6700或其任何方面可以在任何环境中实现。
图56所示的实施例仅是一个示例。如图所示,系统部件划分包括目镜,目镜被连接到包括目镜的头戴装置部件。此外,图56所示的实施例适合于实现以下图57和图58中描述的功能中的任一者或全部或部分。
图57示出了用于在VR/AR/MR系统的协作部件上实现的系统功能划分6800。作为一个选项,系统功能划分6800或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。系统功能划分6800或其任何方面可以在任何环境中实现。
感知处理器(CVPU 85)用于涉及用户以及用户与VR/AR/MR系统的交互的许多目的。可以被映射到感知处理器/CVPU的一组功能与姿势有关。特别地,眼睛姿势可以包括聚散,头部姿势可以包括垂直惯性几何形状,图腾姿势可以包括深度方面。与校准信息结合的来自相机的信息可以由感知处理器/CVPU处理,以便操纵经由投影仪被呈现给用户的图像。特别地,由图腾位置感测的深度信息和/或由任何惯性测量装置感测的深度信息可以被感知处理器/CVPU组合以操纵深度平面的呈现。
可以将所示出的许多功能映射到感知处理器/CVPU中,然后映射到诸如图56或图2G的系统之类的系统中。系统功能划分6800示出了云和与云资源相关的功能,即,语音识别功能、几何识别、以及宏定位(例如,全球定位、相对于全局位置或音量的用户取向等)。这些功能可以由任何形式的远程数据储存库74提供或与其结合提供。严格地说,作为一个示例,远程数据储存库(例如,远程数据储存库74)可以通过基于云的计算基础设施来实现。
图58示出了用于在VR/AR/MR系统的协作部件上实现的系统功能划分6900。作为一个选项,系统功能划分6900或其任何方面的一个或多个变体可以在本文描述的实施例的架构和功能的上下文中实现。系统功能划分6900或其任何方面可以在任何环境中实现。
可以将所示出的许多功能映射到诸如图56的系统之类的系统上。更具体地说,如图所示,帧组合功能集被映射到GPU上,音频相关功能集可被映射到数字信号处理器(DSP)上,应用集可以被映射到CPU上。CPU可以设置有操作系统,可能具有内置服务,例如用于生成CGI图像的网格构造、手/手势识别,以及用于访问远程数据储存库的服务和/或基于云的服务。
如图所示,GPU执行场景渲染以及某些图像变换(例如,用于颜色校正等)。
DSP可以执行任何/所有形式的语音和/或音频处理,诸如麦克风信号调节,扬声器扫调,3D声音塑形等。DSP可以在有或没有语音或其它音频相关协处理器的情况下执行。在一些情况下,也可以将可分配给感知处理器/CVPU的处理全部或部分地分配给DSP。在一些情况下,也可以将可分配给音频相关协处理器的处理全部或部分地分配给DSP。
原始光子事件(Raw Photonic Event)
为了逼真,诸如压缩和消隐之类的操作往往被避免。原始光子事件的捕获、保留(例如,记录)以及渲染/显示通常为体验带来逼真感。在大范围三维空间中记录原始事件需要大的存储器。需要在原始光子事件域的工作范围与逼真感之间权衡,并且存在收益递减的点。上述系统中的处理考虑了逼真感与系统效果之间的权衡,系统效果例如为瞬时带宽要求、对VR/AR/MR系统的其它操作(例如,非成像操作)的影响、瞬时聚焦、系统约束(例如每秒帧数、在帧或序列中显示的平面数等)。分割成较小的平面子集只是可被用于满足瞬时测量或预测的带宽可用性的一种技术。
除了处理光子事件之外,还经常依赖于眼睛位置确定哪些光子事件来自与其它光子事件相比更远的深度平面。具体地说,在两只眼睛从两个(略微)不同的视角观看的情况下,各种深度平面需要相对于每只眼睛在空间中排列。作为示例,如果场景在8”处具有一个对象,在16”的深度处具有大小相同的相邻对象,则通过向左移动头部,将逼真地存在两个对象在XY平面中的更多重叠。然而,假如向右移动头部,则逼真地存在在XY平面中形成的间隙。一种技术涉及将眼睛位置和/或头部位置与场景数据组合,以便协同眼睛位置的变化和/或头部位置的变化执行平面的移位(例如,产生重叠或间隙)。另一技术是体积渲染,因此针对左眼和右眼的渲染图像来自左眼和右眼的(稍微不同的)视角。
子块处理
上述子块的识别有助于使用各种技术来照射(或不照射)设备上的平面以供眼睛接收。例如,如果角色位于特定子块内并且该同一子块内存在遮挡对象(例如,位于更近的深度平面中),则一种增强逼真度的技术是不照射被该对象遮挡的角色部分。
当渲染半透明对象时,用于发送数据的改进技术不是跨界面将一个平面图像发送到显示器,而是将场景分成“子块”,例如由GPU处理的子块。一旦做出这样的划分,便可做出关于发送或不发送,合并或不合并,执行颜色压缩或不执行颜色压缩等的确定。例如,一组示例步骤包括识别α区域,发送与组中的这些α区域相关的数据(例如,用于多个平面的子块在一个组中),以及使显示控制器或其协处理器分派任务以处理这些组。
作为另一示例,如果在不透明对象前面存在半透明对象,则可以应用减法或乘法混合模式技术。考虑半透明窗(如玻璃窗)的情况,其中虚拟角色部分地位于该半透明窗后面。进一步假设头部位于半透明窗上方,但是身体位于半透明窗的窗框内。进一步考虑该窗是否具有蓝色色调。在这种情况下,角色的身体将具有某种蓝色色调影响。可以使用乘法混合来渲染此效果。渲染器将识别出(例如,通过窗的属性),该窗将仅允许特定波长的光通过它,因此,可以混合任何穿过该窗的光来实现逼真。使用子块,可以将窗及其所有颜色信息与角色分开处理,然后单独发送背景角色及其全部颜色信息。实际的显示系统会将蓝色光添加到显示中。显示系统将首先加载蓝色色调窗,然后加载角色。快速、有效地在GPU处分离为多组数据(例如,子块),然后单独地发送到显示系统。
光照图
诸如VR、AR或MR系统之类的光学系统结合真实物理环境渲染和显示虚拟对象。用自然出现的光照射这些虚拟对象会是困难的。
本文描述的实施例使用光照图解决了此问题,该光照图存储与真实物理环境中的光相关的信息。
光照图是包括与房间中的光相关的信息的数据结构。光相关信息包括但不限于颜色(例如,由MR系统上的颜色传感器检测的)、照明度和光方向(例如,由MR系统上的光传感器检测的)。
图59是示出根据一个实施例的准确地生成在真实物理房间中被照射的用于显示的虚拟对象的方法7300的流程图。在步骤7302,MR系统接收真实物理房间的照明信息。例如,颜色信息可以由MR系统或真实物理房间中的其他用户的MR系统上的颜色传感器检测到。另外,照明度和光方向可以由MR系统或真实物理房间中的其他用户的MR系统上的光传感器检测到。
在步骤7304,MR系统和/或与其连接的服务器基于从真实物理房间中的一个或多个MR系统接收的照明信息而生成真实物理房间的光照图。光照图是真实物理房间中的光源的模型,包括被透射、漫射、反射、衍射等的光。
在步骤7306,MR系统和/或服务器使用光照图来生成虚拟对象,所述虚拟对象基于真实物理房间中的光源的模型和虚拟对象在其中的位置而被更准确地照射。
在步骤7308,MR将虚拟对象显示给用户。例如,在AR场景中,虚拟对象更加可信,因为它们被更准确地照射。例如,真实物理房间可能有白色或黄色的头顶灯,虚拟对象的颜色可以本修改以匹配房间光。这很重要,因为广告商在其宣传和商标中使用非常特殊的颜色(例如,INTEL蓝、YAHOO!紫等)。此外,照明信息中的光方向信息可被用于更准确地生成与虚拟对象相关的阴影(例如,在虚拟对象上或由虚拟对象产生(例如,通过光线跟踪))。
使用来自一个或多个用户的信息构建光照图将导致隐私问题。例如,除了照明信息之外,一个用户的视野(FOV)还可以包括一些私人信息(包括图像)。如果用户的FOV的图像被发送到公共服务器,则私人信息(包括图像)可能被无意地公开。私人信息的示例包括在桌面计算机或移动计算机的屏幕上显示的私人财务信息,以及图像包括一些儿童图像。
图60是示出根据一个实施例的在使私人信息的暴露最小化的同时使用包括私人信息的图像产生公开可用的光照图的方法7400的流程图。光照图有助于虚拟图像的精确渲染,以使得虚拟图像的照明方案与它们将被显示于的真实物理房间的照明方案相匹配。此外,通过收集真实物理房间中的多个用户的此类信息来增加光信息量可以提高由此生成的光照图的准确度。
在步骤7402,MR系统获得用户的FOV的一个或多个图像。MR系统的前置相机使得收集用户的FOV的图像相对容易。
在步骤7404,MR系统分析一个或多个图像以识别包括私人信息的图像。
在步骤7406,MR系统确定光照图是将在本地使用并因此是私密的,还是由被连接到服务器的其他用户使用并因此是公开的。公开可用的光照图可以包括从中生成光照图的图像,或者可以包括从中执行这样的图像的反向工程的信息。
在步骤7408,当MR系统确定光照图是公开的时,它生成包括光照信息但不包括私人信息的代替图像(proxy image)。例如,包括私人信息的智能电话表面可以在该代替图像中被具有相同反射性但没有私人信息的智能电话代替。
在步骤7410,MR系统将代替图像发送到服务器以用于构建光照图。在步骤7412,服务器至少使用代替图像产生光照图。这样,可以从包括私人信息的一个或多个图像中提取照明信息,从而生成不暴露私人信息的准确光照图。
MR系统可以具有句柄,该句柄链接到包括私人信息的真实图像和具有匿名的或被编辑的信息的代替图像。MR系统可以被配置为使得当光照图被确定为私密的时,句柄调用真实图像。否则,句柄将调用代替图像。
本文已经描述了本公开的某些方面、优点和特征。应当理解,根据本公开的任何特定实施例,不一定可以实现所有这些优点。因此,本公开可以以实现或优化本文所教导的一个优点或一组优点的方式来实施或执行,而不必实现本文可能教导或提出的其它优点。
已经结合附图描述了实施例。然而,应当理解的是,这些附图不是按比例绘制的。距离、角度等仅仅是说明性的,并不一定与所示装置的实际尺寸和布局有精确的关系。此外,前述实施例已经以详细程度进行了描述,以允许本领域的普通技术人员制造和使用本文所述的装置、系统、方法等。各种各样的变化是可能的。组件、元件和/或步骤可以被改变、添加、移除或重新排列。
本文描述的装置和方法可以有利地使用例如计算机软件、硬件、固件或者软件、硬件和固件的任意组合来至少部分地实现。软件模块可以包括存储在计算机存储器中的计算机可执行代码,用于执行本文描述的功能。在一些实施例中,计算机可执行代码由一个或多个通用计算机执行。然而,根据本公开,本领域技术人员将理解,可以使用将在通用计算机上执行的软件来实现的任何模块也可以使用硬件、软件或固件的不同组合来实现。例如,这种模块可以使用集成电路的组合完全以硬件实现。可选地或另外地,可以使用被设计为执行本文描述的特定功能的专用计算机而不是通用计算机完全或部分地实现这种模块。另外,在所描述的方法是或可能至少部分由计算机软件执行的情况下,应当理解,可以在非暂时性计算机可读介质上提供这样的方法,当其被计算机或其它处理设备读取时,使其执行该方法。
虽然已经明确描述了某些实施例,但是基于本公开,其它实施例对于本领域的普通技术人员将变得显而易见。
本文描述的各种处理器和其它电子部件适用于任何用于投射光的光学系统。本文描述的各种处理器和其它电子部件也适用于任何用于接收语音命令的音频系统。
本文描述了本公开的各种示例性实施例。以非限制性的意义引用这些实施例。提供它们是为了说明本公开的更广泛适用的方面。在不脱离本公开的真实精神和范围的情况下,可以对所描述的本公开进行各种改变,并且可以替换等同物。此外,可以进行许多修改以使特定情况、材料、物质组成、过程、一个或多个过程动作或步骤适应本公开的一个或多个目的、精神或范围。此外,如本领域技术人员将理解的,本文描述和示出的每个单独的变型具有分立的部件和特征,其可以容易地与任何其它若干实施例的特征分离或组合,而不脱离本公开的范围或精神。所有这些修改旨在落入与本公开相关联的权利要求的范围内。
本公开包括可以使用主题设备执行的方法。该方法可以包括提供这种合适设备的行为。这种提供可以由终端用户执行。换言之,“提供”动作仅需要该终端用户获得、访问、接近、定位、设置、激活、加电或执行其它动作以在主题方法中提供必需的设备。本文所述的方法可以以在逻辑上可能的所述事件的任何顺序进行,也可以以所述的事件顺序进行。
以上已经阐述了本公开的示例性方面以及关于材料选择和制造的细节。有关本公开的其它细节,可以结合上述专利和公开以及本领域技术人员通常公知或理解的方式理解这些细节。就通常或逻辑上采用的附加动作而言,对于本公开基于方法的方面也是如此。
另外,尽管已经参考任选地结合各种特征的若干示例描述了本公开,但是本公开不限于关于本公开的每个变型所描述或指示的那些内容。可以在不脱离本公开的精神和范围的情况下,对所描述的本公开进行各种改变,并且可以替换等同物(无论是在本文中引用还是为了简洁起见而未包括)。另外,在提供一系列值的情况下,应理解的是,该范围的上限和下限之间的每个中间值,以及所述范围内的任何其它所述值或中间值都包含在本公开内。
而且,可以构想,所描述的公开变型的任何可选特征可以独立地,或者与本文描述的任何一个或多个特征组合地进行阐述或被要求保护。对单数项的引用包括存在多个相同项的可能性。更具体地说,如本文和与此相关联的权利要求中所使用的,单数形式“一”、“一个”、“所述”和“该”包括复数个指示物,除非另有具体说明。换言之,冠词的使用允许上述说明书以及与本公开相关联的权利要求中具有“至少一个”主题项。还应注意,可以起草这样的权利要求以排除任何可选元素。因此,本声明旨在作为结合权利要求元素的叙述使用诸如“单独”、“仅”之类的排他性术语或使用“否定”限制的先行基础。
在不使用这种排他性术语的情况下,与本公开相关联的权利要求中的术语“包括”应允许包括任何附加元素,不论在这样的权利要求中是否列举给定数量的元素,还是添加特征可以被视为改变这些权利要求中阐述的元素的性质。除非本文中具体定义,否则本文使用的所有技术和科学术语在保持权利要求有效性的同时尽可能广泛地被赋予通常理解的含义。
本公开的广度不限于所提供的示例和/或主题说明书,而是仅由与本公开相关联的权利要求语言的范围限制。
在前述说明书中,已经参考本公开的具体实施例对其进行了描述。然而,显而易见的是,在不脱离本公开的更广泛的精神和范围的情况下,可以对其进行各种修改和改变。例如,参考过程动作的特定顺序来描述上述过程流程。然而,可以改变许多所描述的过程动作的顺序而不影响本公开的范围或操作。因此,说明书和附图应被视为说明性的而非限制性的。

Claims (10)

1.一种虚拟、增强或混合现实显示系统,包括:
显示器,其被配置为显示多个深度平面的数字图像数据,所述显示器包括用于显示对应于第一深度平面的图像数据的第一光学路径和用于显示对应于第二深度平面的图像数据的至少部分地不同的第二光学路径;以及
显示控制器,其被配置为将对应于所述第一深度平面的所述图像数据与对应于所述第二深度平面的所述图像数据进行混合,以使得当混合的图像数据由所述显示器显示时,所述混合的图像数据看起来对应于位于所述第一深度平面和所述第二深度平面之间的虚拟深度平面。
2.一种虚拟、增强或混合现实显示系统中的方法,所述方法包括:
提供要在显示器上显示的多个深度平面的数字图像数据,所述显示器包括用于显示对应于第一深度平面的图像数据的第一光学路径和用于显示对应于第二深度平面的图像数据的至少部分地不同的第二光学路径;以及
将对应于所述第一深度平面的所述图像数据与对应于所述第二深度平面的所述图像数据进行混合,以使得当混合的图像数据由所述显示器显示时,所述混合的图像数据看起来对应于位于所述第一深度平面和所述第二深度平面之间的虚拟深度平面。
3.一种虚拟、增强或混合现实显示系统,包括:
惯性测量单元,其被配置为执行与用户的头部位置相关的测量;
图形处理单元,其被配置为渲染虚拟、增强或混合现实图像数据;
显示器,其被配置为向所述用户显示变换后的图像数据;
显示驱动器,其被配置为接收已被扫描输出的渲染图像数据并使所述显示器显示所述变换后的图像数据,其中所述显示驱动器包括:
头部姿势处理器,其被配置为从所述惯性测量单元接收测量值并确定头部姿势信息;以及
图像变形处理器,其被配置为基于所述头部姿势信息将所述渲染图像数据变换为所述变换后的图像数据。
4.一种虚拟、增强或混合现实显示系统中的方法,所述方法包括:
使用图形处理单元渲染虚拟、增强或混合现实图像数据;
将渲染图像数据扫描输出到显示器以显示给用户;
使用惯性测量单元执行与用户的头部位置相关的测量;
使用来自所述惯性测量单元的测量值确定头部姿势信息;
在将所述渲染图像数据扫描输出到所述显示器之后,基于所述头部姿势信息变换所述渲染图像数据;以及
在所述显示器上显示变换后的图像数据。
5.一种虚拟、增强或混合现实显示系统,包括:
显示器,其包括一个或多个光学部件,所述光学部件引起所述显示器的不同部分处的亮度变化;以及
显示控制器,其被配置为将多个不同的亮度校正值应用于图像数据中的多个像素值以产生校正的图像数据,
其中,所述显示器被配置为向用户显示所述校正的图像数据,以便减小所述亮度变化。
6.一种虚拟、增强或混合现实显示系统中的方法,所述方法包括:
使用包括一个或多个光学部件的显示器,所述光学部件引起所述显示器的不同部分处的亮度变化;
将多个不同的亮度校正值应用于图像数据中的多个像素值以产生校正的图像数据;以及
在所述显示器上向用户显示所述校正的图像数据,以减小所述亮度变化。
7.一种虚拟、增强或混合现实显示系统,包括:
显示器,其被配置为显示用于多个深度平面的虚拟、增强或混合现实图像数据,所述显示器包括:
用于显示对应于第一深度平面的图像数据的第一光学路径和用于显示对应于第二深度平面的图像数据的至少部分地不同的第二光学路径;
将光学畸变或像差引入到所述图像数据的一个或多个光学部件;以及
引起所述显示器的不同部分处的亮度变化的一个或多个光学部件;以及
控制器,其被配置为:
使用光学畸变校正信息至少部分地校正所述图像数据的所述光学畸变或像差,
将对应于所述第一深度平面的所述图像数据与对应于所述第二深度平面的所述图像数据进行混合,以使得混合的图像数据看起来对应于位于所述第一深度平面和所述第二深度平面之间的虚拟深度平面,
将多个不同的亮度校正值应用于所述图像数据中的多个像素值,以减小所述亮度变化,
基于控制数据,通过旋转或像素移位操作来变换所述图像数据,以及
将所述图像数据提供给所述显示器。
8.一种虚拟、增强或混合现实显示系统中的方法,所述方法包括:
使用显示器显示用于多个深度平面的虚拟、增强或混合现实图像数据,所述显示器包括:
用于显示对应于第一深度平面的图像数据的第一光学路径和用于显示对应于第二深度平面的图像数据的至少部分地不同的第二光学路径;
将光学畸变或像差引入到所述图像数据的一个或多个光学部件;以及
引起所述显示器的不同部分处的亮度变化的一个或多个光学部件;以及
通过显示控制器向所述显示器提供所述图像数据,所述显示控制器被配置为:
使用光学畸变校正信息至少部分地校正所述图像数据的所述光学畸变或像差,
将对应于所述第一深度平面的所述图像数据与对应于所述第二深度平面的所述图像数据进行混合,以使得混合的图像数据看起来对应于位于所述第一深度平面和所述第二深度平面之间的虚拟深度平面,
将多个不同的亮度校正值应用于所述图像数据中的多个像素值,以减小所述亮度变化,以及
基于控制数据,通过旋转或像素移位操作来变换所述图像数据。
9.一种虚拟、增强或混合现实系统中的方法,包括:
所述系统在低功率模式下操作;
所述系统接收对正常处理器模式的请求;
响应于接收到所述对正常处理器模式的请求,所述系统从所述低功率模式切换到正常功率模式;
所述系统接收低处理器模式的可接受性指示;以及
响应于接收到所述低处理器模式的所述可接受性指示,所述系统从所述正常功率模式切换到所述低功率模式。
10.一种虚拟、增强或混合现实系统中的方法,包括:
所述系统在正常功率模式下操作;
所述系统接收对高处理器模式的请求;
响应于接收到所述对高处理器模式的请求,所述系统从所述正常功率模式切换到高功率模式;
所述系统接收正常处理器模式的可接受性指示;以及
响应于接收到所述正常处理器模式的所述可接受性指示,所述系统从所述高功率模式切换到所述正常功率模式。
CN202410252612.3A 2016-08-22 2017-08-22 虚拟、增强和混合现实系统和方法 Pending CN118115357A (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201662377829P 2016-08-22 2016-08-22
US201662377804P 2016-08-22 2016-08-22
US62/377,829 2016-08-22
US62/377,804 2016-08-22
US201762462279P 2017-02-22 2017-02-22
US62/462,279 2017-02-22
PCT/US2017/048069 WO2018039270A1 (en) 2016-08-22 2017-08-22 Virtual, augmented, and mixed reality systems and methods
CN201780065160.6A CN109863533B (zh) 2016-08-22 2017-08-22 虚拟、增强和混合现实系统和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201780065160.6A Division CN109863533B (zh) 2016-08-22 2017-08-22 虚拟、增强和混合现实系统和方法

Publications (1)

Publication Number Publication Date
CN118115357A true CN118115357A (zh) 2024-05-31

Family

ID=61190829

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201780065160.6A Active CN109863533B (zh) 2016-08-22 2017-08-22 虚拟、增强和混合现实系统和方法
CN202410252612.3A Pending CN118115357A (zh) 2016-08-22 2017-08-22 虚拟、增强和混合现实系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201780065160.6A Active CN109863533B (zh) 2016-08-22 2017-08-22 虚拟、增强和混合现实系统和方法

Country Status (9)

Country Link
US (5) US10529063B2 (zh)
EP (2) EP3500977B1 (zh)
JP (4) JP6880174B2 (zh)
KR (5) KR20240024290A (zh)
CN (2) CN109863533B (zh)
AU (3) AU2017317600B2 (zh)
CA (1) CA3034384A1 (zh)
IL (4) IL307594A (zh)
WO (1) WO2018039270A1 (zh)

Families Citing this family (164)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10365711B2 (en) 2012-05-17 2019-07-30 The University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for unified scene acquisition and pose tracking in a wearable display
WO2015123658A1 (en) 2014-02-14 2015-08-20 Sonic Blocks, Inc. Modular quick-connect a/v system and methods thereof
US11049476B2 (en) 2014-11-04 2021-06-29 The University Of North Carolina At Chapel Hill Minimal-latency tracking and display for matching real and virtual worlds in head-worn displays
US20160259404A1 (en) 2015-03-05 2016-09-08 Magic Leap, Inc. Systems and methods for augmented reality
US10838207B2 (en) 2015-03-05 2020-11-17 Magic Leap, Inc. Systems and methods for augmented reality
KR102626821B1 (ko) 2016-08-02 2024-01-18 매직 립, 인코포레이티드 고정-거리 가상 및 증강 현실 시스템들 및 방법들
JP6880174B2 (ja) 2016-08-22 2021-06-02 マジック リープ, インコーポレイテッドMagic Leap,Inc. 仮想現実、拡張現実、および複合現実システムおよび方法
CN108111874B (zh) * 2016-11-16 2020-01-31 腾讯科技(深圳)有限公司 一种文件处理方法、终端及服务器
KR20180061956A (ko) * 2016-11-30 2018-06-08 삼성전자주식회사 눈 위치 예측 방법 및 장치
US10451714B2 (en) 2016-12-06 2019-10-22 Sony Corporation Optical micromesh for computerized devices
US10536684B2 (en) * 2016-12-07 2020-01-14 Sony Corporation Color noise reduction in 3D depth map
US20190129183A1 (en) * 2016-12-08 2019-05-02 Snail Innovation Institute Integrated frames in wearable display devices
WO2018123801A1 (ja) * 2016-12-28 2018-07-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元モデル配信方法、三次元モデル受信方法、三次元モデル配信装置及び三次元モデル受信装置
US10812936B2 (en) 2017-01-23 2020-10-20 Magic Leap, Inc. Localization determination for mixed reality systems
US10560680B2 (en) * 2017-01-28 2020-02-11 Microsoft Technology Licensing, Llc Virtual reality with interactive streaming video and likelihood-based foveation
US10495735B2 (en) 2017-02-14 2019-12-03 Sony Corporation Using micro mirrors to improve the field of view of a 3D depth map
US11127110B2 (en) * 2017-03-01 2021-09-21 Arm Limited Data processing systems
US10795022B2 (en) 2017-03-02 2020-10-06 Sony Corporation 3D depth map
US10525324B2 (en) 2017-03-07 2020-01-07 vSports, LLC Mixed-reality kick tracking and simulation
US10204456B2 (en) 2017-03-07 2019-02-12 vGolf, LLC Mixed reality golf simulation and training system
US10646767B2 (en) 2017-03-07 2020-05-12 vSports, LLC Mixed reality sport simulation and training system
US10409363B1 (en) 2017-03-07 2019-09-10 vGolf, LLC Mixed-reality golf tracking and simulation
JP7009494B2 (ja) 2017-03-17 2022-01-25 マジック リープ, インコーポレイテッド カラー仮想コンテンツワーピングを伴う複合現実システムおよびそれを使用して仮想コンテンツ生成する方法
JP7009495B2 (ja) 2017-03-17 2022-01-25 マジック リープ, インコーポレイテッド 多ソース仮想コンテンツ合成を伴う複合現実システムおよびそれを使用して仮想コンテンツを生成する方法
CN110431599B (zh) 2017-03-17 2022-04-12 奇跃公司 具有虚拟内容扭曲的混合现实系统及使用该系统生成虚拟内容的方法
US10803988B2 (en) * 2017-03-20 2020-10-13 SK Commercial Construction, Inc. Color analysis and control using a transparent display screen on a mobile device with non-transparent, bendable display screen or multiple display screen with 3D sensor for telemedicine diagnosis and treatment
US10290120B2 (en) * 2017-03-20 2019-05-14 SK Commercial Construction, Inc. Color analysis and control using an electronic mobile device transparent display screen
US10499042B2 (en) * 2017-04-01 2019-12-03 Intel Corporation Barreling and compositing of images
US10979687B2 (en) 2017-04-03 2021-04-13 Sony Corporation Using super imposition to render a 3D depth map
RU2763922C2 (ru) * 2017-04-06 2022-01-11 Константин РОГГАЦ Очки дополненной реальности (др) и способ добавления виртуальных изображений в изображение, видимое носителю очков по меньшей мере через одно стекло очков
US11163416B2 (en) 2017-04-27 2021-11-02 Magic Leap, Inc. Light-emitting user input device for calibration or pairing
US10497090B2 (en) * 2017-05-16 2019-12-03 Qualcomm Incorporated Systems and methods for reducing memory bandwidth via multiview compression/decompression
IL311011A (en) * 2017-05-30 2024-04-01 Magic Leap Inc Power supply assembly with fan assembly for an electronic device
WO2018227011A1 (en) 2017-06-07 2018-12-13 vSports, LLC Mixed-reality sports tracking and simulation
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
US11138915B2 (en) 2017-07-28 2021-10-05 Magic Leap, Inc. Fan assembly for displaying an image
US10360832B2 (en) * 2017-08-14 2019-07-23 Microsoft Technology Licensing, Llc Post-rendering image transformation using parallel image transformation pipelines
US11533450B2 (en) 2017-09-25 2022-12-20 Comcast Cable Communications, Llc Anti-piracy video transmission and display
US10521881B1 (en) * 2017-09-28 2019-12-31 Apple Inc. Error concealment for a head-mountable device
US10484667B2 (en) 2017-10-31 2019-11-19 Sony Corporation Generating 3D depth map using parallax
US10652550B2 (en) * 2017-12-22 2020-05-12 Shenzhen China Star Optoelectronics Semiconductor Display Technology Co., Ltd. Compensation table compressing method
US11533272B1 (en) * 2018-02-06 2022-12-20 Amesite Inc. Computer based education methods and apparatus
AU2019231697B2 (en) 2018-03-07 2020-01-30 Magic Leap, Inc. Visual tracking of peripheral devices
WO2019170250A1 (en) * 2018-03-09 2019-09-12 MAX-PLANCK-Gesellschaft zur Förderung der Wissenschaften e.V. System for displaying information to a user
US10714050B2 (en) * 2018-03-21 2020-07-14 Daqri, Llc Reducing latency in augmented reality (AR) displays
JP7188900B2 (ja) * 2018-03-30 2022-12-13 東京ガスiネット株式会社 情報処理システム及びプログラム
US11039041B2 (en) * 2018-04-03 2021-06-15 Intel Corporation Display panel synchronization for a display device
US11006154B2 (en) * 2018-04-04 2021-05-11 DISH Technologies L.L.C. Selected replacement of digital imagery portions using augmented reality
US10636362B2 (en) 2018-04-09 2020-04-28 Apple Inc. Radio frequency signal emission induced display artifact mitigation systems and methods
US11262839B2 (en) 2018-05-17 2022-03-01 Sony Interactive Entertainment Inc. Eye tracking with prediction and late update to GPU for fast foveated rendering in an HMD environment
WO2019226927A1 (en) * 2018-05-24 2019-11-28 Compound Photonics Us Corporation Systems and methods for driving a display
US10827165B2 (en) * 2018-05-30 2020-11-03 Intel Corporation Enhanced imaging for thin form factor head mounted displays and near light field displays
EP3804306B1 (en) * 2018-06-05 2023-12-27 Magic Leap, Inc. Homography transformation matrices based temperature calibration of a viewing system
US10410372B1 (en) * 2018-06-14 2019-09-10 The University Of North Carolina At Chapel Hill Methods, systems, and computer-readable media for utilizing radial distortion to estimate a pose configuration
JP7378431B2 (ja) 2018-06-18 2023-11-13 マジック リープ, インコーポレイテッド フレーム変調機能性を伴う拡張現実ディスプレイ
US11694435B2 (en) 2018-06-18 2023-07-04 Magic Leap, Inc. Systems and methods for temporarily disabling user control interfaces during attachment of an electronic device
WO2019246044A1 (en) 2018-06-18 2019-12-26 Magic Leap, Inc. Head-mounted display systems with power saving functionality
EP3811360A4 (en) * 2018-06-21 2021-11-24 Magic Leap, Inc. PORTABLE SYSTEM VOICE PROCESSING
US10549186B2 (en) 2018-06-26 2020-02-04 Sony Interactive Entertainment Inc. Multipoint SLAM capture
GB2575097B (en) * 2018-06-29 2023-01-18 Advanced Risc Mach Ltd Data processing systems
US10802585B2 (en) * 2018-07-12 2020-10-13 Apple Inc. Electronic devices with display operation based on eye activity
JP7304934B2 (ja) 2018-07-23 2023-07-07 マジック リープ, インコーポレイテッド 仮想コンテンツワーピングを伴う複合現実システムおよびそれを使用して仮想コンテンツを生成する方法
EP3827584A4 (en) 2018-07-23 2021-09-08 Magic Leap, Inc. INTRA-FIELD SUB-CODE SYNCHRONIZATION IN SEQUENTIAL FIELD DISPLAYS
USD930614S1 (en) 2018-07-24 2021-09-14 Magic Leap, Inc. Totem controller having an illumination region
WO2020023491A1 (en) 2018-07-24 2020-01-30 Magic Leap, Inc. Thermal management system for electronic device
USD918176S1 (en) 2018-07-24 2021-05-04 Magic Leap, Inc. Totem controller having an illumination region
WO2020026226A1 (en) * 2018-07-30 2020-02-06 Reality Plus Ltd. Mixed reality glasses which display virtual objects that move naturally throughout a user's complete field of view
US11227435B2 (en) 2018-08-13 2022-01-18 Magic Leap, Inc. Cross reality system
US10957112B2 (en) 2018-08-13 2021-03-23 Magic Leap, Inc. Cross reality system
US11373379B2 (en) 2018-08-23 2022-06-28 Sony Interactive Entertainment Inc. Image generation apparatus and image generation method for generating augmented reality images based on user interaction
US10607353B2 (en) 2018-08-30 2020-03-31 Facebook Technologies, Llc Structured light depth sensing
CN112639579B (zh) 2018-08-31 2023-09-15 奇跃公司 用于增强现实装置的空间分辨的动态调暗
US11040441B2 (en) * 2018-09-20 2021-06-22 Sony Group Corporation Situation-aware robot
US11455705B2 (en) * 2018-09-27 2022-09-27 Qualcomm Incorporated Asynchronous space warp for remotely rendered VR
WO2020072985A1 (en) 2018-10-05 2020-04-09 Magic Leap, Inc. Rendering location specific virtual content in any location
US11308681B1 (en) * 2018-11-02 2022-04-19 Facebook Technologies, Llc. Display engine for post-rendering processing
CN109327284B (zh) * 2018-11-27 2021-04-13 联想(北京)有限公司 数据传输方法、装置及电子设备
KR102091217B1 (ko) * 2018-12-12 2020-03-19 주식회사 하이쓰리디 모바일 증강현실 영상 편집 시스템
JP2022517207A (ja) 2019-01-11 2022-03-07 マジック リープ, インコーポレイテッド 種々の深度における仮想コンテンツの時間多重化された表示
CN115100020A (zh) * 2019-01-18 2022-09-23 奇跃公司 虚拟、增强和混合现实系统以及方法
US11399252B2 (en) * 2019-01-21 2022-07-26 Outer Echo Inc. Method and system for virtual acoustic rendering by time-varying recursive filter structures
EP3931827A4 (en) 2019-03-01 2022-11-02 Magic Leap, Inc. INPUT DETERMINATION FOR A VOICE PROCESSING ENGINE
US11373400B1 (en) 2019-03-18 2022-06-28 Express Scripts Strategic Development, Inc. Methods and systems for image processing to present data in augmented reality
CN113875230B (zh) 2019-05-23 2023-03-28 奇跃公司 混合模式三维显示方法
US11386237B2 (en) * 2019-06-19 2022-07-12 Facebook Technologies, Llc Scalable encryption engine having partitionable data paths
US11288763B1 (en) * 2019-06-21 2022-03-29 Gopro, Inc. Systems and methods for visually encoding information into a pixel-based image
US11189061B2 (en) * 2019-06-25 2021-11-30 Universal City Studios Llc Systems and methods for virtual feature development
US11049330B2 (en) * 2019-06-27 2021-06-29 Facebook Technologies, Llc Color reference for overlaid images
WO2021006191A1 (ja) * 2019-07-10 2021-01-14 株式会社ソニー・インタラクティブエンタテインメント 画像表示装置、画像表示システムおよび画像表示方法
WO2021010772A1 (ko) * 2019-07-18 2021-01-21 삼성전자(주) 다중 깊이 표현이 가능한 영상 표시 장치
CN112241068A (zh) * 2019-07-18 2021-01-19 三星电子株式会社 能够多深度表达的图像显示装置
US11328740B2 (en) 2019-08-07 2022-05-10 Magic Leap, Inc. Voice onset detection
US11176901B1 (en) * 2019-08-13 2021-11-16 Facebook Technologies, Llc. Pan-warping and modifying sub-frames with an up-sampled frame rate
US11660535B2 (en) * 2019-10-11 2023-05-30 Nvidia Corporation Hardware acceleration and event decisions for late latch and warp in interactive computer products
CN114586071A (zh) 2019-10-15 2022-06-03 奇跃公司 支持多设备类型的交叉现实系统
US11568605B2 (en) 2019-10-15 2023-01-31 Magic Leap, Inc. Cross reality system with localization service
JP2022551735A (ja) 2019-10-15 2022-12-13 マジック リープ, インコーポレイテッド 無線フィンガプリントを用いたクロスリアリティシステム
US11232834B2 (en) 2019-10-29 2022-01-25 Qualcomm Incorporated Pose estimation in extended reality systems
JP2023501952A (ja) 2019-10-31 2023-01-20 マジック リープ, インコーポレイテッド 持続座標フレームについての品質情報を伴うクロスリアリティシステム
EP4052248A4 (en) * 2019-11-01 2023-12-13 Evolution Optiks Limited LIGHT FIELD DEVICE, ASSOCIATED MULTI-DEPTH PIXEL RENDERING METHOD, AND MULTI-DEPTH VISION PERCEPTION SYSTEM AND METHOD USING SAME
IL270429B2 (en) * 2019-11-05 2023-08-01 Simbionix Ltd A method and system for an enveloping mixed reality space(s).
JP7525603B2 (ja) 2019-11-12 2024-07-30 マジック リープ, インコーポレイテッド 位置特定サービスおよび共有場所ベースのコンテンツを伴うクロスリアリティシステム
CN110990917A (zh) * 2019-11-19 2020-04-10 北京长空云海科技有限公司 Bim模型展示的方法、装置及系统
EP4066042A4 (en) 2019-11-26 2023-11-08 Telefonaktiebolaget LM Ericsson (publ) PROVIDING A USER WITH MULTI-LAYER AUGMENTED REALITY IMAGES
IL271129B (en) * 2019-12-02 2021-12-01 Elbit Systems Ltd Method and system for optical vision through a head-mounted display of virtual objects precisely aligned with external objects
CN114746903B (zh) 2019-12-06 2023-11-14 奇跃公司 虚拟、增强和混合现实系统和方法
EP4073763A4 (en) 2019-12-09 2023-12-27 Magic Leap, Inc. CROSS-REALLY SYSTEM WITH SIMPLIFIED PROGRAMMING OF VIRTUAL CONTENT
CN113031754A (zh) * 2019-12-09 2021-06-25 未来市股份有限公司 头戴式显示系统及其旋转中心修正方法
US11109073B2 (en) * 2020-01-16 2021-08-31 Rockwell Collins, Inc. Image compression and transmission for heads-up display (HUD) rehosting
EP4097564A4 (en) 2020-01-27 2024-02-14 Magic Leap, Inc. LOOK TIMER BASED EXPANSION OF THE FUNCTIONALITY OF A USER INPUT DEVICE
KR20210096449A (ko) 2020-01-28 2021-08-05 삼성전자주식회사 Hud 시스템에서 영상을 재생하는 방법 및 그 hud 시스템
US20210240257A1 (en) * 2020-01-31 2021-08-05 Ati Technologies Ulc Hiding latency in wireless virtual and augmented reality systems
US11307410B2 (en) 2020-02-06 2022-04-19 Varjo Technologies Oy Display apparatus and method incorporating adaptive pose locking
US11170678B2 (en) 2020-02-06 2021-11-09 Varjo Technologies Oy Display apparatus and method incorporating gaze-based modulation of pixel values
EP4052245A1 (en) * 2020-02-06 2022-09-07 Varjo Technologies Oy Display apparatus and method incorporating adaptive pose locking
US11348514B2 (en) 2020-02-06 2022-05-31 Varjo Technologies Oy LED-based display apparatus and method incorporating sub-pixel shifting
US11308900B2 (en) 2020-02-06 2022-04-19 Varjo Technologies Oy Display apparatus and method incorporating sub-pixel aware shifting and overlap compensation
US11625037B2 (en) * 2020-02-13 2023-04-11 Honeywell International Inc. Methods and systems for searchlight control for aerial vehicles
WO2021163295A1 (en) 2020-02-13 2021-08-19 Magic Leap, Inc. Cross reality system with prioritization of geolocation information for localization
US11410395B2 (en) 2020-02-13 2022-08-09 Magic Leap, Inc. Cross reality system with accurate shared maps
CN115398314A (zh) 2020-02-13 2022-11-25 奇跃公司 使用多分辨率帧描述符进行地图处理的交叉现实系统
USD940688S1 (en) * 2020-02-19 2022-01-11 XRSpace CO., LTD. Controller
US11551430B2 (en) 2020-02-26 2023-01-10 Magic Leap, Inc. Cross reality system with fast localization
US11107290B1 (en) 2020-02-27 2021-08-31 Samsung Electronics Company, Ltd. Depth map re-projection on user electronic devices
WO2021172950A1 (en) 2020-02-27 2021-09-02 Samsung Electronics Co., Ltd. Electronic device and method for depth map re-projection on electronic device
US11917384B2 (en) 2020-03-27 2024-02-27 Magic Leap, Inc. Method of waking a device using spoken voice commands
JP2023524446A (ja) 2020-04-29 2023-06-12 マジック リープ, インコーポレイテッド 大規模環境のためのクロスリアリティシステム
JP7541850B2 (ja) * 2020-05-15 2024-08-29 キヤノン株式会社 電子機器、制御方法、プログラム
KR20210143607A (ko) * 2020-05-20 2021-11-29 삼성전자주식회사 이미지 생성 장치 및 방법
KR20220008118A (ko) 2020-07-13 2022-01-20 삼성전자주식회사 가상 객체들의 밝기를 다르게 표시하는 방법 및 장치
KR20220009733A (ko) * 2020-07-16 2022-01-25 엘지디스플레이 주식회사 증강 현실을 구현할 수 있는 착용형 표시 시스템
CN111915683B (zh) * 2020-07-27 2024-06-25 湖南大学 图像位置标定方法、智能设备及存储介质
US11228750B1 (en) 2020-09-08 2022-01-18 Rovi Guides, Inc. Systems and methods for generating virtual reality scenes
JP2022046316A (ja) * 2020-09-10 2022-03-23 キヤノン株式会社 情報提示システム、その制御方法、および、プログラム
CN112181139B (zh) * 2020-09-17 2022-04-15 东北大学 一种虚拟现实和混合现实的协作控制交互方法
US20230410699A1 (en) * 2020-09-25 2023-12-21 Apple Inc. Structured display shutdown for video pass-through electronic devices
US11648959B2 (en) * 2020-10-20 2023-05-16 Argo AI, LLC In-vehicle operation of simulation scenarios during autonomous vehicle runs
KR20220074643A (ko) * 2020-11-27 2022-06-03 가온미디어 주식회사 슬림형 xr 디바이스 및 그 제어 방법
US20210168578A1 (en) * 2020-12-23 2021-06-03 Intel Corporation Apparatus, system and method of communicating audio traffic over a bluetooth link
KR20220093985A (ko) * 2020-12-28 2022-07-05 삼성전자주식회사 이미지 지연 보정 방법 및 이를 이용한 장치
WO2022170230A1 (en) * 2021-02-08 2022-08-11 CITA Equity Partners, LLC Shared mixed reality and platform-agnostic format
US12019449B2 (en) 2021-02-18 2024-06-25 Argo AI, LLC Rare event simulation in autonomous vehicle motion planning
US11741918B1 (en) 2021-02-22 2023-08-29 Apple Inc. Display with a vignetting mask
EP4309377A1 (en) * 2021-03-19 2024-01-24 Dolby Laboratories Licensing Corporation Sensor data prediction
CN117120912A (zh) * 2021-04-06 2023-11-24 维耶尔公司 具有混合式显示器的ar系统
US12079385B2 (en) 2021-04-27 2024-09-03 Elbit Systems Ltd. Optical see through (OST) head mounted display (HMD) system and method for precise alignment of virtual objects with outwardly viewed objects
KR20220156331A (ko) * 2021-05-18 2022-11-25 삼성전자주식회사 이미지 지연을 보정하기 위한 전자 장치 및 방법
US11570418B2 (en) 2021-06-17 2023-01-31 Creal Sa Techniques for generating light field data by combining multiple synthesized viewpoints
US11893989B2 (en) * 2021-07-13 2024-02-06 Snap Inc. Voice-controlled settings and navigation
US11954885B2 (en) * 2021-09-15 2024-04-09 Apple Inc. Display tracking systems and methods
US20230136662A1 (en) * 2021-10-27 2023-05-04 Meta Platforms Technologies, Llc Parallax Asynchronous Spacewarp for Multiple Frame Extrapolation
JP7365066B2 (ja) * 2021-12-08 2023-10-19 株式会社palan 表示システム
KR20230088534A (ko) * 2021-12-10 2023-06-20 삼성디스플레이 주식회사 표시장치 및 이의 구동방법
US11900840B2 (en) 2021-12-13 2024-02-13 Qualcomm Incorporated Chrominance optimizations in rendering pipelines
KR20230105139A (ko) * 2022-01-03 2023-07-11 한국전자통신연구원 깊이 분포 기반 워핑 영상 혼합 방법 및 장치
GB202205618D0 (en) * 2022-04-14 2022-06-01 V Nova Int Ltd Extended reality encoding
US20230350213A1 (en) * 2022-04-28 2023-11-02 Dell Products, Lp Method and apparatus for a frame, shroud, and face mask for a head mounted display device
US20230350203A1 (en) * 2022-04-29 2023-11-02 Snap Inc. Ar/vr enabled contact lens
JP2023177951A (ja) * 2022-06-03 2023-12-14 株式会社ソニー・インタラクティブエンタテインメント ヘッドマウントディスプレイおよびコンテンツ表示システム
US20240037698A1 (en) * 2022-07-27 2024-02-01 Rockwell Collins, Inc. Head-frame symbology isolation for head worn display (hwd)
WO2024029212A1 (ja) * 2022-08-03 2024-02-08 ソニーグループ株式会社 立体画像表示装置および立体画像表示方法
KR102617175B1 (ko) * 2022-08-04 2023-12-27 주식회사 라온텍 화면 왜곡 보정이 가능한 디스플레이 장치 및 그의 화면 왜곡 보정 방법
US11797099B1 (en) * 2022-09-19 2023-10-24 Snap Inc. Visual and audio wake commands

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5583656A (en) * 1992-12-31 1996-12-10 Eastman Kodak Company Methods and apparatus for attaching compressed look-up table (LUT) representations of N to M-dimensional transforms to image data and for processing image data utilizing the attached compressed LUTs
JP3212762B2 (ja) * 1993-06-11 2001-09-25 オリンパス光学工業株式会社 表示装置
US5594563A (en) * 1994-05-31 1997-01-14 Honeywell Inc. High resolution subtractive color projection system
US5760636A (en) * 1996-06-28 1998-06-02 Intel Corporation Adjusting clock frequency and voltage supplied to a processor in a computer system
JP3324695B2 (ja) * 1999-03-08 2002-09-17 日本電信電話株式会社 三次元表示方法およびヘッドマウントディスプレイ装置
JP3022558B1 (ja) 1998-05-21 2000-03-21 日本電信電話株式会社 三次元表示方法及び装置
JP3499805B2 (ja) * 2000-05-12 2004-02-23 日本電信電話株式会社 三次元表示方法
US6988214B1 (en) * 2000-11-06 2006-01-17 Dell Products L.P. Processor power state transistions using separate logic control
JP3755593B2 (ja) 2002-03-26 2006-03-15 セイコーエプソン株式会社 投写型画像表示システム、プロジェクタ、プログラム、情報記憶媒体および画像処理方法
JP2004109994A (ja) * 2002-08-30 2004-04-08 Olympus Corp 頭部装着型画像表示システム装置及びその画像処理方法
HUP0203993A2 (hu) * 2002-11-19 2004-08-30 László Domján Binokuláris videoszemüveg optikai rendszere
JP2004236191A (ja) * 2003-01-31 2004-08-19 Nikon Corp 画像表示装置
US7205960B2 (en) 2003-02-19 2007-04-17 Mirage Innovations Ltd. Chromatic planar optic display system
JP2004274642A (ja) * 2003-03-12 2004-09-30 Nippon Telegr & Teleph Corp <Ntt> 3次元映像情報の伝送方法
WO2006106522A2 (en) * 2005-04-07 2006-10-12 Visionsense Ltd. Method for reconstructing a three- dimensional surface of an object
JP2007166277A (ja) * 2005-12-14 2007-06-28 Nippon Telegr & Teleph Corp <Ntt> 3次元画像情報の伝送方法、送信側装置および受信側装置
JP4013989B2 (ja) * 2006-02-20 2007-11-28 松下電工株式会社 映像信号処理装置、仮想現実感生成システム
JP2009105593A (ja) * 2007-10-23 2009-05-14 Nikon Corp ヘッドマウントディスプレイ装置
US8266507B2 (en) 2007-11-16 2012-09-11 Samsung Electronics Co., Ltd. Data processing apparatus for operating lens correction and method for compressing and restoring lookup table values
JP5094430B2 (ja) 2008-01-10 2012-12-12 キヤノン株式会社 画像処理方法、画像処理装置、システム
TW200949755A (en) * 2008-05-30 2009-12-01 Asustek Comp Inc Method of controlling operation mode of graphic processing unit
JP5078781B2 (ja) * 2008-07-04 2012-11-21 オリンパス株式会社 画像表示装置及び撮像装置
JP5388534B2 (ja) 2008-10-09 2014-01-15 キヤノン株式会社 画像処理装置およびその方法、頭部装着型ディスプレイ、プログラム、記録媒体
JP5341462B2 (ja) 2008-10-14 2013-11-13 キヤノン株式会社 収差補正方法、画像処理装置および画像処理システム
US20110075257A1 (en) * 2009-09-14 2011-03-31 The Arizona Board Of Regents On Behalf Of The University Of Arizona 3-Dimensional electro-optical see-through displays
US10180572B2 (en) 2010-02-28 2019-01-15 Microsoft Technology Licensing, Llc AR glasses with event and user action control of external applications
KR101222155B1 (ko) * 2010-03-15 2013-01-15 한국과학기술원 어안렌즈를 이용한 증강현실 구현 시스템 및 그 구현 방법
JP5652037B2 (ja) * 2010-07-30 2015-01-14 富士通株式会社 模擬映像生成装置、方法、プログラム
JP5299383B2 (ja) * 2010-08-20 2013-09-25 株式会社Jvcケンウッド 画像補正装置および画像補正方法
US8595529B2 (en) * 2010-12-16 2013-11-26 Qualcomm Incorporated Efficient power management and optimized event notification in multi-processor computing devices
JP5948801B2 (ja) * 2011-11-14 2016-07-06 セイコーエプソン株式会社 頭部装着型表示装置および頭部装着型表示装置の制御方法
US10509466B1 (en) * 2011-05-11 2019-12-17 Snap Inc. Headwear with computer and optical element for use therewith and systems utilizing same
WO2012164148A1 (en) * 2011-05-31 2012-12-06 Nokia Corporation Methods, apparatuses and computer program products for generating panoramic images using depth map data
US8670000B2 (en) * 2011-09-12 2014-03-11 Google Inc. Optical display system and method with virtual image contrast control
JP2013061442A (ja) * 2011-09-13 2013-04-04 Seiko Epson Corp 電気光学装置
US8862338B2 (en) * 2011-09-29 2014-10-14 Cnh Industrial Canada, Ltd. Method and apparatus for auto-leveling of bulk fill hopper frame
JP5779512B2 (ja) * 2012-01-24 2015-09-16 株式会社ソシオネクスト 画像の光学歪み補正装置,画像の光学歪み補正方法,および,画像の光学歪み補正装置を有する画像生成装置
WO2013125138A1 (ja) * 2012-02-22 2013-08-29 ソニー株式会社 表示装置、画像処理装置及び画像処理方法、並びにコンピューター・プログラム
KR101222153B1 (ko) * 2012-05-21 2013-01-15 한국과학기술원 어안렌즈를 이용한 증강현실 구현 시스템 및 그 구현 방법
US8793518B2 (en) * 2012-06-13 2014-07-29 Dell Products Lp Systems and methods for providing supplemental power to battery powered information handling systems
JP5929567B2 (ja) * 2012-07-03 2016-06-08 ソニー株式会社 画像信号処理装置、および画像信号処理方法、並びにプログラム
US20150237323A1 (en) * 2012-07-23 2015-08-20 Thomlson Licensing 3d video representation using information embedding
JP6464748B2 (ja) * 2013-01-22 2019-02-06 ソニー株式会社 投影型画像表示装置、画像処理装置及び画像処理方法、並びにコンピューター・プログラム
US20140376773A1 (en) * 2013-06-21 2014-12-25 Leap Motion, Inc. Tunable operational parameters in motion-capture and touchless interface operation
US9443355B2 (en) * 2013-06-28 2016-09-13 Microsoft Technology Licensing, Llc Reprojection OLED display for augmented reality experiences
US9514571B2 (en) * 2013-07-25 2016-12-06 Microsoft Technology Licensing, Llc Late stage reprojection
US11402629B2 (en) 2013-11-27 2022-08-02 Magic Leap, Inc. Separated pupil optical systems for virtual and augmented reality and methods for displaying images using same
CN107329259B (zh) * 2013-11-27 2019-10-11 奇跃公司 虚拟和增强现实系统与方法
US10203762B2 (en) 2014-03-11 2019-02-12 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
US9928565B2 (en) * 2014-04-21 2018-03-27 Qualcomm Incorporated Flex rendering based on a render target in graphics processing
US9652893B2 (en) * 2014-04-29 2017-05-16 Microsoft Technology Licensing, Llc Stabilization plane determination based on gaze location
US9983663B2 (en) * 2014-05-16 2018-05-29 Qualcomm Incorporated Imaging arrangement for object motion detection and characterization
US10438331B2 (en) 2014-06-26 2019-10-08 Intel Corporation Distortion meshes against chromatic aberrations
JP2016016856A (ja) * 2014-07-04 2016-02-01 現代自動車株式会社Hyundaimotor Company 車両ランプ用光学モジュールの故障判断方法および装置
US20160025971A1 (en) * 2014-07-25 2016-01-28 William M. Crow Eyelid movement as user input
US10368011B2 (en) * 2014-07-25 2019-07-30 Jaunt Inc. Camera array removing lens distortion
US9462189B2 (en) * 2014-07-31 2016-10-04 Apple Inc. Piecewise perspective transform engine
US10397539B2 (en) * 2014-08-25 2019-08-27 Schepens Eye Research Institute Compensating 3D stereoscopic imagery
KR102688893B1 (ko) * 2014-09-29 2024-07-29 매직 립, 인코포레이티드 상이한 파장의 광을 도파관 밖으로 출력하기 위한 아키텍쳐 및 방법
CA3109499A1 (en) * 2015-04-22 2016-10-27 Esight Corp. Methods and devices for optical aberration correction
US11481911B2 (en) * 2015-08-18 2022-10-25 Magic Leap, Inc. Virtual and augmented reality systems and methods
US20170115489A1 (en) * 2015-10-26 2017-04-27 Xinda Hu Head mounted display device with multiple segment display and optics
US20170169612A1 (en) 2015-12-15 2017-06-15 N.S. International, LTD Augmented reality alignment system and method
KR101785027B1 (ko) * 2016-01-14 2017-11-06 주식회사 라온텍 화면 왜곡 보정이 가능한 디스플레이 장치 및 이를 이용한 화면 왜곡 보정 방법
US10460704B2 (en) * 2016-04-01 2019-10-29 Movidius Limited Systems and methods for head-mounted display adapted to human visual mechanism
CN105791789B (zh) * 2016-04-28 2019-03-19 努比亚技术有限公司 头戴设备、显示设备及自动调整显示输出的方法
US10156723B2 (en) * 2016-05-12 2018-12-18 Google Llc Display pre-distortion methods and apparatus for head-mounted displays
JP6880174B2 (ja) 2016-08-22 2021-06-02 マジック リープ, インコーポレイテッドMagic Leap,Inc. 仮想現実、拡張現実、および複合現実システムおよび方法
US10955685B2 (en) * 2018-12-28 2021-03-23 Lightspace Technologies, SIA Volumetric display arrangement and a method for representing content of an image

Also Published As

Publication number Publication date
EP4235391A3 (en) 2023-10-25
EP3500977A1 (en) 2019-06-26
IL287380B2 (en) 2024-03-01
EP3500977A4 (en) 2019-09-11
US20180053284A1 (en) 2018-02-22
EP3500977B1 (en) 2023-06-28
CN109863533B (zh) 2024-03-15
AU2022201611B2 (en) 2022-12-01
US20200098097A1 (en) 2020-03-26
IL287380A (en) 2021-12-01
US20200342577A1 (en) 2020-10-29
KR102566791B1 (ko) 2023-08-11
WO2018039270A1 (en) 2018-03-01
JP7506126B2 (ja) 2024-06-25
AU2022201611A1 (en) 2022-03-31
JP7397777B2 (ja) 2023-12-13
KR20190042644A (ko) 2019-04-24
CN109863533A (zh) 2019-06-07
AU2023201212B2 (en) 2024-06-27
KR102634343B1 (ko) 2024-02-05
JP2020195154A (ja) 2020-12-03
US20240046433A1 (en) 2024-02-08
JP2023015037A (ja) 2023-01-31
AU2023201212A1 (en) 2023-04-06
US11823360B2 (en) 2023-11-21
JP2024123073A (ja) 2024-09-10
IL276547A (en) 2020-09-30
AU2017317600A1 (en) 2019-02-28
IL264666B (en) 2020-08-31
KR20220016308A (ko) 2022-02-08
AU2017317600B2 (en) 2021-12-09
KR102246836B1 (ko) 2021-04-29
KR20240024290A (ko) 2024-02-23
KR20230122177A (ko) 2023-08-22
IL307594A (en) 2023-12-01
KR20210047979A (ko) 2021-04-30
IL276547B (en) 2021-12-01
US20220005164A1 (en) 2022-01-06
JP2019535156A (ja) 2019-12-05
US10529063B2 (en) 2020-01-07
US11151699B2 (en) 2021-10-19
CA3034384A1 (en) 2018-03-01
EP4235391A2 (en) 2023-08-30
KR102357273B1 (ko) 2022-02-08
JP6880174B2 (ja) 2021-06-02
US10748259B2 (en) 2020-08-18
IL287380B1 (en) 2023-11-01

Similar Documents

Publication Publication Date Title
CN109863533B (zh) 虚拟、增强和混合现实系统和方法
JP7454627B2 (ja) 仮想および拡張現実システムならびに方法
NZ791444A (en) Virtual, augmented, and mixed reality systems and methods
EP4369330A1 (en) Eye-tracking based foveation control of displays
NZ791441A (en) Virtual, augmented, and mixed reality systems and methods
Das et al. NextGen XR Requirements State-of-the-Art

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