CN110050250B - 显示器同步的图像规整 - Google Patents
显示器同步的图像规整 Download PDFInfo
- Publication number
- CN110050250B CN110050250B CN201780075873.0A CN201780075873A CN110050250B CN 110050250 B CN110050250 B CN 110050250B CN 201780075873 A CN201780075873 A CN 201780075873A CN 110050250 B CN110050250 B CN 110050250B
- Authority
- CN
- China
- Prior art keywords
- display device
- warping
- wearable display
- rendered image
- 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.)
- Active
Links
- 230000001360 synchronised effect Effects 0.000 title claims description 10
- 238000000034 method Methods 0.000 claims abstract description 52
- 238000009877 rendering Methods 0.000 claims abstract description 35
- 238000012545 processing Methods 0.000 claims abstract description 33
- 230000008859 change Effects 0.000 claims description 5
- 230000009466 transformation Effects 0.000 description 12
- 210000003128 head Anatomy 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 206010020675 Hypermetropia Diseases 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 210000005069 ears Anatomy 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 208000001491 myopia Diseases 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 208000029257 vision disease Diseases 0.000 description 1
- 230000004393 visual impairment Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/18—Image warping, e.g. rearranging pixels individually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
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 Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Controls And Circuits For Display Device (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开内容的某些方面提供了用于对可穿戴显示设备进行操作的方法和装置。本公开内容的某些方面提供了一种用于对可穿戴显示设备进行操作的方法。该方法包括:基于运动传感器来确定可穿戴显示设备的位置。该方法包括:由图形处理单元基于所确定的位置来渲染图像。该方法包括:基于运动传感器来确定可穿戴显示设备的第一经更新位置。该方法包括:由规整引擎基于第一经更新位置来规整经渲染图像的第一部分。该方法包括:在可穿戴显示设备的显示器上显示经渲染图像的经规整的第一部分。
Description
相关申请的交叉引用
本申请要求享有于2016年12月9日递交的美国申请No.15/374,165的优先权,该申请已经转让给本申请的受让人并在此明确地并入本文中。
技术领域
概括地说,本公开内容的某些方面涉及图像处理,并且更具体地说,涉及用于显示器同步的图像规整(warping)的技术。
背景技术
使用可穿戴显示设备(例如用于虚拟现实(VR)系统中)变得越来越普遍。例如,用户可以使用可穿戴显示设备在视觉上使自己沉浸在VR或增强现实(AR)环境中。可穿戴显示设备可以包括佩戴在用户身体上的任何类型的有线或无线显示设备。举例而言,可穿戴显示设备可以包括佩戴在用户头上的有线或无线头戴显示器或者有线或无线头盔式显示器(HMD),以便将一个或多个显示器(不透明、透明、半透明等等)置于用户眼睛的前方。
一个或多个处理器(例如,图形处理单元(GPU)、中央处理单元(CPU)等等)可以被配置为:处理并渲染可穿戴显示设备上所显示的多媒体数据(例如,图像、场景、视频等等)。这些处理器可以集成在可穿戴显示设备中,或者可以耦合到可穿戴显示设备(例如,使用无线或有线连接)。
此外,可穿戴显示设备可以包括一个或多个传感器(例如,加速度计、磁力计、陀螺仪、全球定位系统(GPS)接收机(和/或其它卫星定位系统(SPS)接收机)、高度计等等)以感测可穿戴显示设备的移动和/或方位。可穿戴显示设备的移动和/或方位可以对应于佩戴该可穿戴显示设备的用户(例如,用户头部)的移动和/或方位。移动和/或方位信息可以用于确定要在可穿戴显示设备上显示的图像。例如,佩戴可穿戴显示设备的用户可以在观看场景(例如,从第一人称视角)。向用户显示的场景的图像可以基于可穿戴显示设备的移动和/或方位,以使得场景的视图对应于可穿戴显示设备的位置,从而使用户沉浸在场景中。
发明内容
本公开内容的某些方面提供了一种用于对可穿戴显示设备进行操作的方法。所述方法包括:基于运动传感器来确定所述可穿戴显示设备的位置。所述方法包括:基于所确定的位置来渲染图像。所述方法包括:基于所述运动传感器来确定所述可穿戴显示设备的第一经更新位置。所述方法包括:基于所述第一经更新位置来规整所述经渲染图像的第一部分,并校正由于所述可穿戴显示设备的透镜引起的失真。所述方法包括:在所述可穿戴显示设备的显示器上显示所述经渲染图像的所述经规整的第一部分。所述方法包括:基于所述运动传感器来确定所述可穿戴显示设备的第二经更新位置。所述方法包括:基于所述第二经更新位置来规整所述经渲染图像的第二部分,并校正由于所述可穿戴显示设备的所述透镜引起的失真。所述方法包括:在所述可穿戴显示设备的所述显示器上显示所述经渲染图像的所述经规整的第二部分。
本公开内容的某些方面提供了一种用于对可穿戴显示设备进行操作的方法。所述方法包括:基于运动传感器来确定所述可穿戴显示设备的位置。所述方法包括:由图形处理单元基于所确定的位置来渲染图像。所述方法包括:基于所述运动传感器来确定所述可穿戴显示设备的第一经更新位置。所述方法包括:由规整引擎基于所述第一经更新位置来规整所述经渲染图像的第一部分。所述方法包括:在所述可穿戴显示设备的显示器上显示所述经渲染图像的所述经规整的第一部分。
本公开内容的某些方面提供了一种用于对可穿戴显示设备进行操作的计算机系统。所述计算机系统包括处理器,所述处理器被配置为:基于运动传感器来确定所述可穿戴显示设备的位置。所述处理器还被配置为:基于所述运动传感器来确定所述可穿戴显示设备的第一经更新位置。所述处理器还被配置为:基于所述运动传感器来确定所述可穿戴显示设备的第二经更新位置。所述计算机系统包括图形处理单元,所述图形处理单元被配置为:基于所确定的位置起来渲染图像。所述计算机系统包括与所述图形处理单元分离的规整引擎,所述规整引擎被配置为:基于所述第一经更新位置来规整所述经渲染图像的第一部分,并校正由于所述可穿戴显示设备的透镜引起的失真。所述规整引擎还被配置为:基于所述第二经更新位置来规整所述经渲染图像的第二部分,并校正由于所述可穿戴显示设备的所述透镜引起的失真。所述计算机系统包括显示器驱动器,所述显示器驱动器被配置为:在所述可穿戴显示设备的显示器上显示所述经渲染图像的所述经规整的第一部分。所述显示器驱动器还被配置为:在所述可穿戴显示设备的所述显示器上显示所述经渲染图像的所述经规整的第二部分。
本公开内容的某些方面提供了一种用于对可穿戴显示设备进行操作的计算机系统。所述计算机系统包括:用于基于运动传感器来确定所述可穿戴显示设备的位置的单元。所述计算机系统包括:用于基于所确定的位置来渲染图像的单元。所述计算机系统包括:用于基于运动传感器来确定所述可穿戴显示设备的第一经更新位置的单元。所述计算机系统包括:用于基于所述第一经更新位置来规整所述经渲染图像的第一部分,并校正由于所述可穿戴显示设备的透镜引起的失真的单元。所述计算机系统包括:用于在所述可穿戴显示设备的显示器上显示所述经渲染图像的所述经规整的第一部分的单元。所述计算机系统包括:用于基于运动传感器来确定所述可穿戴显示设备的第二经更新位置的单元。所述计算机系统包括:用于基于所述第二经更新位置来规整所述经渲染图像的第二部分,并校正由于所述可穿戴显示设备的所述透镜引起的失真的单元。所述计算机系统包括:用于在所述可穿戴显示设备的所述显示器上显示所述经渲染图像的所述经规整的第二部分的单元。
本公开内容的某些方面提供了一种其上存储有用于对可穿戴显示设备进行操作的指令的非暂时性计算机可读介质。由计算系统执行所述指令使得所述计算系统执行以下步骤:基于运动传感器来确定所述可穿戴显示设备的位置。由所述计算系统执行所述指令使得所述计算系统执行以下步骤:基于所确定的位置来渲染图像。由所述计算系统执行所述指令使得所述计算系统执行以下步骤:基于所述运动传感器来确定所述可穿戴显示设备的第一经更新位置。由所述计算系统执行所述指令使得所述计算系统执行以下步骤:基于所述第一经更新位置来规整所述经渲染图像的第一部分,并校正由于所述可穿戴显示设备的透镜引起的失真。由所述计算系统执行所述指令使得所述计算系统执行以下步骤:在所述可穿戴显示设备的显示器上显示所述经渲染图像的所述经规整的第一部分。由所述计算系统执行所述指令使得所述计算系统执行以下步骤:基于所述运动传感器来确定所述可穿戴显示设备的第二经更新位置。由所述计算系统执行所述指令使得所述计算系统执行以下步骤:基于所述第二经更新位置来规整所述经渲染图像的第二部分,并校正由于所述可穿戴显示设备的所述透镜引起的失真。由所述计算系统执行所述指令使得所述计算系统执行以下步骤:在所述可穿戴显示设备的所述显示器上显示所述经渲染图像的所述经规整的第二部分。
附图说明
为了能详细地理解本公开内容的上述特征所用的方式,可以参照各方面来对以上简要概述的内容进行更具体的描述,其中一些方面在附图中说明。然而,要注意,附图仅示出本公开内容的某些典型方面,并且因此不应被认为限定本公开内容的范围,因为该描述可以允许其它等同有效的方面。
图1是根据本公开内容的某些方面的对佩戴在用户头上的可穿戴显示设备的例子的简要说明。
图2根据本公开内容的某些方面,示出了可以被并入图1的可穿戴显示设备和/或与图1的可穿戴显示设备通信地耦合的计算机系统的实施例。
图3根据本公开内容的某些方面,示出了用于使用图2的计算机系统在图1的可穿戴显示设备的显示器上渲染图像的示例性数据流。
图4根据本公开内容的某些方面,示出了可以被并入图1的可穿戴显示设备和/或与图1的可穿戴显示设备通信地耦合的计算机系统的实施例。
图5根据本公开内容的某些方面,示出了用于执行即时(just in time)规整的示例性操作。
图6根据本公开内容的某些方面,示出了图像的不同视场的示例。
图7是根据本公开内容的某些方面的图4的示例性规整引擎的框图。
图8根据本公开内容的某些方面,示出了用于执行即时规整的示例性操作。
具体实施方式
后文参考附图更充分地描述了本公开内容的各个方面。然而,本公开内容可以用许多不同的形式来实施,并且不应当被解释为受限于贯穿本公开内容所给出的任何特定结构或功能。相反,提供这些方面使得本公开内容将是充分的和完整的,并且将向本领域技术人员充分传达本公开内容的范围。基于本文的教导,本领域技术人员应当意识到,无论本公开内容的方面是独立地实现还是与本公开内容的任何其它方面组合地实现,本公开内容的范围旨在覆盖本文所公开的内容的任何方面。例如,可以使用本文所阐述的任意数量的方面来实现一种装置或者实施一种方法。另外,本公开内容的范围旨在涵盖一种装置或方法,这种装置或方法使用其它结构、功能,或者除了本文所阐述的公开内容的各个方面之外或与本文所阐述的公开内容的各个方面不同的结构和功能来实施。应当理解的是,可以通过权利要求的一个或多个要素来实施本文所公开的内容的任何方面。
本文中使用词语“示例性”表示“用作示例、实例或说明”。本文中描述为“示例性”的任何方面不一定解释为比其它方面优选或有利。
图1是佩戴在用户110头上的可穿戴显示设备120的例子的简要说明,该可穿戴显示设备120可以与本文所描述的各方面中的一个或多个方面一起使用或者可以实现本文所描述的各方面中的一个或多个方面。可穿戴显示设备120包括主体或框架(类似于一副眼镜),该主体或框架可以放置于用户的鼻子或耳朵上。可穿戴显示设备120的显示器的各部分可以像一副眼镜的透镜一样置于用户眼睛的前方。在一些方面中,显示器是不透明的(例如,用于VR)。在一些方面中,显示器的至少一部分可以是透明的(例如,用于AR),以使得在用户的视场内用户110能够看到用户的周围环境以及利用显示器示出的图像(例如,数据元素)两者。取决于期望的显示器功能、利用显示器示出的图形用户界面(GUI)的设置和/或由可穿戴显示设备120执行的软件应用(例如,视频、地图、互联网浏览器等等),显示器上示出的图像的透明度级别可以不同。
此外,可穿戴显示设备120可以包括诸如扬声器(和/或耳机)、触摸板、按钮等的接口以便与用户110交互。在另一方面中,可穿戴显示设备120可以包括无线接口以用于与互联网、本地无线网络或另一计算设备连接。可穿戴显示设备120还可以操作为从用户接收音频和/或手势输入。这种手势或音频输入可以是口述的语音命令或经识别的用户手势,这些命令或手势在被计算设备识别时可以使得该设备执行对应的命令。可以从被并入可穿戴显示设备120和/或与可穿戴显示设备120通信地耦合的一个或多个运动传感器和/或相机接收手势,以允许可穿戴显示设备跟踪一个或多个对象(例如,用户的手),并确定该对象是否已作出手势。此外,在某些方面中,可穿戴显示设备120可以包括相机和/或其它传感器以确定用户的注视(例如,用户正在看何处)。这种眼睛跟踪功能可以被并入姿势和/或其它用户输入中,或者用于图像规整,包括小凹渲染,如本文所讨论的。
此外,可穿戴显示设备120可以包括运动传感器和/或与运动传感器通信地耦合,例如一个或多个加速度计、磁力计、陀螺仪、全球定位系统(GPS)接收机(和/或其它卫星定位系统(SPS)接收机)、高度计、相机、红外传感器等等,以感测用户110和/或用户头部的位置(例如,移动和/或方位)。为了显示如本文描述的图像,确定用户的视场可以基于例如提供检测到的用户的头部方位/行进方向的传感器信息。可以例如由指南针(例如,磁力计)和/或多个定位测量(例如,SPS位置测量)来确定行进方向。可以使用仰角和/或上下文数据来确定用户是否因为路径倾斜而正在俯视或仰视。例如,来自陀螺仪的数据可以与仰角数据进行比较以确定头部是否在用户所在的路径的倾斜的方向上倾斜。
计算机系统(例如,图2的计算机系统200)可以被并入可穿戴显示设备120和/或与可穿戴显示设备120通信地耦合(有线地或无线地)。因此,可穿戴显示设备120可以执行软件应用,例如游戏、地图、视频和/或本文所描述的其它应用,这些应用生成在可穿戴显示设备120上显示的图像。另外地或替代地,在某些方面中,可穿戴显示设备120能够显示由一个或多个设备执行的软件应用,该一个或多个设备经由例如无线设备到设备协议(例如,蓝牙或WI-FI直连)和/或经由网络(例如,WIFI网络)与可穿戴显示设备120通信地耦合。例如,可穿戴显示设备120可以与一个或多个移动设备(例如,移动电话、个人媒体播放器、游戏系统和/或其它设备)通信地耦合,并显示来自移动设备的信息。
计算机系统200的一个或多个组件可以在不同设备之间共享,例如可穿戴显示设备、智能电话、平板、个人计算机或其它计算设备。在一些实施例中,软件和其它应用可以在通信地链接到可穿戴显示设备的单独设备上运行。在其它实施例中,可穿戴显示设备可以与计算机系统200的一些或全部集成。
图2提供了能够执行由各个其它实施例提供的方法的计算机系统200的一个实施例的示意性说明。应该注意,图2仅意在提供各个组件的一般性说明,可以视情况利用这些组件中的任何或所有组件。因此,图2广义地示出了可以如何以相对分离或相对更加集成的方式来实现单独的系统元件。
计算机系统200被示出为包括能够经由总线226电耦合(或者可以视情况另外处于通信中)的硬件元件。硬件元件可以包括CPU 210,该CPU 210可以包括但不限于一个或多个通用处理器、一个或多个专用处理器和/或其它处理单元,如上面陈述的,这些处理单元可以用于执行各种步骤,例如图3中所示出的框中的一个或多个框。总线226可以耦合两个或更多个CPU 210、或者单个CPU或多个CPU中的多个核。硬件元件还可以包括一个或多个输入/输出设备237,这些输入/输出设备可以包括但不限于一个或多个GPS接收机(和或来自任何其它卫星定位系统(SPS)的接收机)、加速度计、陀螺仪、磁力计(和/或其它方位传感器)、高度计、相机和/或能够检测位置、运动、方位、光、声音等等的其它传感器,这些传感器可以用作为用于收集位置、移动和其它数据的单元。此外,可以利用传感器连同CPU 210作为用于检测用户头上的可穿戴显示设备120的移动的单元,如本文所描述的。还可以包括其它设备,例如触摸板、键盘、麦克风等等。还包括一个或多个另外的设备。这些设备可以包括一个或多个显示器和/或其它显示单元,以及扬声器和/或其它设备。
计算机系统200还可以包括主存储器235,该主存储器235可以包括但不限于随机存取存储器(“RAM”),例如动态随机存取存储器(DRAM),例如双倍数据速率(DDR)同步DRAM(SDRAM)。
计算机系统200还包括GPU 212,该GPU 212是用于处理图形处理的专用处理器。计算机系统200还包括显示器驱动器240,该显示器驱动器240被配置为:例如通过驱动对显示器的各部分的扫描以显示图像,来驱动可穿戴显示设备120上的显示器。
计算机系统200还可以包括通信子系统230,该通信子系统230可以包括但不限于调制解调器、网络卡(无线或有线)、红外通信设备、无线通信设备和/或芯片组(例如蓝牙TM设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设施等)等。通信子系统230可以包括一个或多个输入和/或输出通信接口,以允许与网络、其它计算机系统和/或任何其它电气设备/外围设备交换数据。
计算机系统230还可以包括例如位于主存储器235内的软件元件,包括操作系统、设备驱动器、可执行库和/或其它代码(例如一个或多个应用),这些代码可以包括由各个实施例提供的计算机程序和/或可以被设计为实现方法和/或配置由其它实施例提供的系统,如本文所描述的。仅举例而言,针对本文所讨论的方法所描述的一个或多个过程的一部分可以实现为可由计算机(和/或计算机内的处理单元)执行的代码和/或指令;在一方面中,这些代码和/或指令可以用于配置和/或适配通用计算机(或其它设备)以执行根据所描述的方法的一个或多个操作。
这些指令和/或代码集合可以存储在非暂时性计算机可读存储介质上。在一些情况下,存储介质可以被并入计算机系统(例如,计算机系统200)内。在其它实施例中,存储介质可以与计算机系统分离(例如,可移除介质,例如光盘)和/或在安装包中提供,以使得存储介质可以用于利用存储在其上的指令/代码来编程、配置和/或适配通用计算机。这些指令可以采用可执行代码(其可由计算机系统200执行)的形式和/或可以采用源和/或可安装代码的形式,该源和/或可安装代码在计算机系统200上编译和/或安装(例如,使用各种通常可用的编译器、安装程序、压缩/解压缩实用程序(utility)等等中的任何一种)时,则采用可执行代码的形式。
对于本领域技术人员将显而易见的是,可以根据特定要求作出很大变化。
虽然图1示出了具有眼镜状框架和用于显示器的屏幕(例如,液晶显示器(LCD)、有机发光二极管(OLED)等等)的可穿戴显示设备120的实施例,但是其它实施例可以具有不同的形状因子和/或利用能够提供类似显示功能的不同光学技术(例如,视网膜投影仪或其它光学系统)。当讨论在可穿戴显示设备120上显示图像时,这种显示是指在可穿戴显示设备120的显示器上显示图像。
对于这种可穿戴显示设备120,一种性能度量是运动到光子(motion to photonM2P)延迟,该M2P延迟测量从可穿戴显示设备120的移动到可穿戴显示设备120上所显示的图像被更新以对应于可穿戴显示设备120的该移动(例如,新位置)的时间的时间延迟。例如,用户110可以在一个方向上观看,并且可穿戴设备120可以显示第一场景。用户110随后可以移动他的头部,并且需要显示与用户110的新位置相对应的场景。在用户110的位置变化与可穿戴显示设备120上的显示器的更新之间具有低延时(例如,<20ms)有利地允许更真实的体验,并且还防止用户具有运动不适(motion sickness)。
对于这种可穿戴显示设备120的另一顾虑是适应向存储器读取并写入图像的存储器带宽需求。例如,存储器带宽需求对于高分辨率(例如,每只眼4K及以上)可以非常高。针对图3来进一步讨论用于在可穿戴显示设备120的屏幕上渲染图像的过程对M2P延迟和存储器带宽的影响。
图3示出了用于使用计算机系统200在可穿戴显示设备120的显示器上渲染图像的示例性数据流300。如所示出的,在305处,可以使用运动传感器来测量与可穿戴显示设备120的位置相关的数据。在310处,由CPU 210接收并处理所测量的运动传感器数据以确定可穿戴显示设备120的位置(例如,三个自由度(3DoF)姿势数据、6DoF姿势数据等等)。在315处,位置信息可以存储在主存储器235中。在320处,CPU 210从主存储器235读取位置自信息并基于该位置信息来生成用于渲染图像的应用命令。例如,CPU 210生成供GPU 212例如针对正在执行的应用渲染场景的命令。在325处,应用命令存储在主存储器235中。在330处,GPU 212从主存储器235读取应用命令,并且在335处,读取与来自主存储器235的应用命令相对应的纹理(例如,图像)(即,基于在315处存储的位置信息的纹理)。在340处,GPU 212基于纹理来渲染针对用户110的右眼的图像和针对用户110的左眼的图像以便在可穿戴显示设备120的显示器上显示。经渲染图像对应于在315处存储的位置信息。在345处,GPU 212将针对每只眼睛渲染的图像存储在主存储器235中。在350处,GPU 212从主存储器235读取经渲染图像,并例如通过向经渲染图像应用时间规整、透镜规整等等来规整经渲染图像,如本文将进一步讨论的。在355处,GPU 212将经规整的图像存储在主存储器235中。在360处,显示器驱动器240从主存储器235读取整个经规整的图像,并利用该经规整的图像来驱动可穿戴显示设备120的显示器。
时间规整图像(例如在350处执行的)是指由于在图像已经由例如GPU 212渲染之后可穿戴显示设备120变化的位置而改变要在可穿戴显示设备120中显示的经渲染图像。例如,如针对数据流300所讨论的,GPU 212可以基于可穿戴显示设备120的位置来渲染图像。然而,这种位置信息是在GPU 212实际渲染图像之前的某个时间间隔来确定的(例如,由于CPU、GPU等等处理、以及存储器读和写中的延时)。因此,可穿戴显示设备120的位置还可以在(例如,在310处)初始地确定位置时、(例如,在340处)渲染图像时、以及(例如,在360处)在可穿戴显示设备120的显示器上显示经渲染图像时之间变化。因此,在渲染图像之后并在可穿戴显示设备120上显示该图像之前,可以向经渲染图像应用时间规整,这基于可穿戴显示设备120的经更新位置信息来修改经渲染图像。例如,在350处,GPU 212从CPU 210接收经更新位置信息并向经渲染图像应用变换(例如,使用深度图(Z缓冲器)来移动图像中的对象以基于经更新位置给出视差),这与重新渲染图像相比可以具有减小的计算复杂度。
透镜规整图像(例如在350处执行的)是指改变要在可穿戴显示设备120中显示的经渲染图像以校正由可穿戴显示设备120中的透镜引入的失真。例如,可穿戴显示设备120除了显示器之外还可以利用透镜来将图像引导到用户的眼中。在显示器上显示的图像可能需要进行变换(例如,桶形失真、色差校正等)以校正由透镜引入的失真。
由于GPU 212需要渲染图像并且进一步规整图像,因此使用额外的处理周期来执行规整并且存在由渲染与规整之间的上下文切换导致的不利后果,这意味着可用于渲染的资源更少。
此外,由于规整是作为整个处理链中的单独步骤来应用的,因此在从主存储器235(例如,在350和360处)读取以及向主存储器235(例如,在345和355处)写入经渲染图像和经规整图像时主存储器235的峰值带宽增加。此外,为了确保针对从主存储器235存储和读取两者按时完成规整以便在显示器的下一次刷新时在可穿戴显示设备120的显示器上显示图像,可能提前发起规整过程,从而在M2P中引入额外的延迟。
因此,本文的技术涉及用于向由GPU渲染的图像应用规整(例如,时间规整和透镜规整)以便在可穿戴显示设备上显示的系统和方法,这些系统和方法减小了M2P的延迟和存储器的带宽。具体而言,本文的某些方面涉及与用于渲染图像的GPU分离的规整引擎。
图4是根据本公开内容的某些方面的、包括具有与GPU分离的规整引擎的图像渲染系统的示例性计算机系统400的框图。如所示出的,计算机系统400包括与图2的计算机系统200相同的组件,但是另外包括规整引擎480和高速缓存490。如所示出的,规整引擎480耦合到主存储器435和高速缓存490。规整引擎480可以是处理单元,例如被配置为执行本文所描述的某些操作的集成电路。在某些方面中,规整引擎480是与GPU和/或计算机系统的其它组件分离的硬件组件(例如,硬件加速器)。高速缓存490可以是少量的易失性存储器。在某些方面中,高速缓存490是与主存储器435(例如,片外存储器)分离的片上存储器(例如,系统高速缓存)。例如,高速缓存490可以在与CPU 210和/或GPU 212相同的管芯或经封装芯片上。
规整引擎480可以被配置为规整由GPU 212渲染的图像(例如,时间规整、透镜规整等等)。通过将用于渲染图像的资源(例如,GPU 212)与用于规整图像的资源(例如,规整引擎480)分离,更多的资源可以用于渲染图像,从而减少用于渲染图像的延时以及M2P延迟。
此外,在一些方面中,规整引擎480可以相对于由GPU 212进行的渲染异步地规整由GPU 212渲染的图像的各部分。例如,规整引擎480可以与可穿戴显示设备的显示器同步(例如,刷新速率、扫描时间等等)而不是与GPU 212同步,并且在可穿戴显示设备120的显示器实际扫描并在显示器上显示经渲染图像的各部分时“即时”规整经渲染图像的那些部分(例如,逐条、逐行等等)。“即时”规整可以减少M2P延迟,因为在规整与在显示器上显示之间存在很少的延迟。
例如,在一些方面中,规整引擎480可以读取由GPU从主存储器235产生的经渲染图像数据。然而,规整引擎480可以一次仅将所需要的经规整图像的部分(例如,行、条等)写入高速缓存490(例如,最后一级高速缓存),而不是将整个经规整图像写回到主存储器235,并且显示器驱动器240可以从高速缓存490读取该部分并使得显示器扫描经规整图像的该部分。这些方面有利地可以具有减小的主存储器235的带宽,因为消除了向主存储器235写入和读取经规整图像。
在一些方面中,对图像的部分进行规整并将图像的该部分写入高速缓存490与显示器驱动器240同步。具体而言,可穿戴显示设备120的显示器可以被配置为:通过针对显示器的每次刷新逐行扫描显示器来在显示器上显示图像。例如,显示器可以针对要显示的第一图像按部分(例如,逐行或逐条)扫描显示器,并且随后通过针对要显示的第二图像按部分扫描显示器来刷新屏幕。因此,规整引擎480在显示器的一部分要由显示器驱动器240扫描之前(例如,在规整图像之前的充足时间)可以接收可穿戴显示设备120的经更新位置信息,规整要在显示器的部分上扫描的图像的部分,并将图像的经规整部分写入高速缓存490。显示器驱动器240随后可以在显示器上扫描存储在高速缓存490中的图像的经规整部分。此外,在一些方面中,当显示器驱动器240正在显示器上扫描存储在高速缓存490中的图像的经规整部分时,规整引擎480还可以规整图像的下一部分以便在显示器的下一部分上扫描。因此,规整引擎480能够即时地生成要扫描的图像的经规整部分以供显示器驱动器240以最小的M2P延迟将图像的经规整部分扫描至显示器。此外,在一些方面中,规整引擎480能够一次得到被扫描至显示器的图像的每个部分的经更新位置信息,而不是一次得到整个图像的经更新位置信息。
在一些方面中,规整引擎480可以通过使用与可穿戴显示设备120的透镜相对应的矢量图对经渲染图像执行桶形失真和色差来应用透镜规整。在一些方面中,例如由于时间规整,规整引擎480还可以向矢量图应用透视校正。
图5根据本公开内容的某些方面,示出了用于例如由计算机系统400执行即时规整的示例性操作500。
在505处,GPU 212基于可穿戴显示设备120的位置信息来渲染用于显示在可穿戴显示设备120上的左侧和右侧图像,并将经渲染图像存储在主存储器235中。例如,执行数据流300的框305-345。在框510处,规整引擎480从主存储器235读取经渲染图像。在515处,规整引擎480在对可穿戴显示设备120的显示器的一部分进行更新之前,接收可穿戴显示设备120的经更新位置信息(例如,从传感器、CPU等等),之后。在520处,规整引擎480规整经渲染图像与要更新的显示器部分相对应的部分。例如,规整引擎480可以应用时间规整、透镜规整或者其它类型的图像规整,如本文所讨论的。
在525处,规整引擎480将经渲染图像的经规整部分写入高速缓存490。在530处,显示器驱动器240从高速缓存490读取经渲染图像的经规整部分,并将经渲染图像的该部分扫描至可穿戴显示设备120的显示器。在535处(例如,与530并行),规整引擎480确定是否存在显示器的另一部分要更新。在535处,如果确定存在显示器的另一部分要更新,则该过程返回到515并执行框515-525(例如,与530并行)。如果在535处确定不存在显示器的另一部分要更新,则该过程结束。
在一些方面中,规整引擎480可以被配置为:应用除了如本文所讨论的透镜规整和时间规整之外的其它类型的规整。例如,在一些方面中,规整引擎480可以被配置为:向经渲染图像执行其它类型的规整以便针对VR系统产生更好的结果。在一些方面中,GPU 212可以渲染与要显示在可穿戴显示设备120上的图像相对应的多个图像,并将该多个经渲染图像存储在主存储器235中。规整引擎480可以被配置为:读取多个经渲染图像,并基于该多个图像来产生要扫描至可穿戴显示设备120的显示器的单个输出。
在一些方面中,多个经渲染图像可以用于可穿戴显示设备120的所确定位置,或者用于与可穿戴显示设备120的所确定位置的多个偏移。因此,如本文所讨论的,规整引擎480可以使用多个经渲染图像,通过使用图像的实际经渲染部分来规整图像而不是对图像的变换,来应用更精确的时间规整。
在一些方面中,多个经渲染图像可以对应于图像的不同视角、对焦水平、或视场。例如,图6示出了针对一场景的图像的不同视场,包括场景的宽对焦、场景的中对焦和场景的窄对焦。因此,规整引擎480可以支持使用不同数量的像素/分辨率来渲染图像的不同部分(例如,基于可穿戴显示设备120的用户的眼睛位置)的小凹渲染。例如,眼睛聚焦的图像的各部分可以以较高的分辨率来渲染,而眼睛未聚焦的图像的各部分(例如,外围)可以以较低的分辨率来渲染。GPU 212因此可以被配置为:以不同的视场来渲染图像,如图6中所示出的。基于指示用户眼睛的位置的传感器输入,规整引擎480随后可以利用经渲染图像中的每一图像的不同部分以及不同的视场并生成单个经规整图像以供显示在屏幕上。在一些方面中,可以通过使用与用户眼睛相对于图像的位置相对应的阿尔法平面图来支持小凹渲染。
在一些方面中,规整引擎480可以确定本文所描述的规整并将该规整单独地应用于构成经渲染图像的不同颜色通道(例如,红、绿和蓝)中的每个颜色通道。
在一些方面中,规整引擎480可以规整经渲染图像,例如改变经渲染图像的焦点,以使其适合于具有视觉障碍(例如,近视、远视等)的用户。
图7是根据本公开内容的某些方面的示例性规整引擎480的框图。规整引擎480包括用于存储图像数据的高速缓存720。图像数据可以存储为像素。此外,每个像素可以划分成子像素,每个子像素对应于颜色通道(例如,红、绿、蓝)。
规整引擎480还包括一个或多个透视变换单元705。如所示出的,规整引擎480包括三个透视变换单元705,颜色通道中的每个颜色通道对应一个透视变换单元。在一些方面中,可以包括另外的或更少的透视变换单元705例如用于其它颜色通道,或者其中单个透视变换单元705对应于多个颜色通道。透视变换单元705被配置为:执行本文所描述的时间规整以及可选的透镜规整技术。例如,如所示出的,每个透视变换单元705接收经渲染图像(例如,针对不同眼睛和/或不同视场的经渲染图像)与特定颜色通道相对应的像素并对经渲染图像执行规整。具体而言,每个透视变换单元705接收可穿戴显示设备120的经更新位置信息以及与桶形失真和色差相对应的矢量图以应用于经渲染图像与特定颜色通道相对应的像素。透视变换单元705还基于可穿戴显示设备120的经更新位置信息向矢量图应用透视校正(时间规整),并将矢量图应用于经渲染图像的像素以便对图像进行时间规整和透镜规整。经规整图像的像素存储在高速缓存720中。
规整引擎480还包括一个或多个内插器单元710。如所示出的,对于每个被规整的经渲染图像(例如,与不同视场相对应的每个经渲染图像),规整引擎480包括三个内插器单元710,颜色通道中的每个颜色通道对应一个内插器单元。在一些方面中,类似于透视变换单元705并进一步基于一个或多个经渲染图像是否在被规整,规整引擎480包括另外的或更少的内插器单元710。内插器单元710应用滤波器系数来改善图像质量。
规整引擎480还包括一个或多个包装单元715。如所示出的,对于每个被规整的经渲染图像,规整引擎480包括一个包装单元715。在一些方面中,类似于内插器单元710,规整引擎480包括另外的或更少的包装单元715。包装单元715将对应于不同颜色通道的经规整像素组合成经规整图像的完整像素。
例如当规整引擎480生成多个经渲染图像(例如,具有不同的视场)时,规整引擎480还可以包括组合器725。组合器725可以使用如本文所讨论的阿尔法图来确定要组合多个经渲染图像中的哪些部分以生成要在显示器上示出的经规整图像。
图8根据本公开内容的某些方面,示出了用于例如由计算机系统400来执行即时规整的示例性操作800。
在805处,计算机系统基于运动传感器来确定可穿戴显示设备的位置。在810处,计算机系统基于所确定的位置来渲染图像。在815处,计算机系统基于运动传感器来确定可穿戴显示设备的第一经更新位置。
在820处,计算机系统基于第一经更新位置来规整经渲染图像的第一部分,并校正由于可穿戴显示设备的透镜引起的失真。在825处,计算机系统基于运动传感器在可穿戴显示设备的显示器上显示经渲染图像的经规整的第一部分。
在830处,计算机系统基于运动传感器来确定可穿戴显示设备的第二经更新位置。在835处,计算机系统基于第二经更新位置来规整经渲染图像的第二部分,并校正由于可穿戴显示设备的透镜引起的失真。在840处,计算机系统在可穿戴显示设备的显示器上显示经渲染图像的经规整的第二部分。
可以由能够执行对应功能的任何适当单元来执行上面所描述的方法的各个操作。单元可以包括各种硬件和/或软件组件和/或模块,包括但不限于电路、专用集成电路(ASIC)或处理器。通常,在附图中示出了操作的情况下,这些操作可以具有对应的配对单元加功能组件,这些组件具有类似的编号。例如,参考计算机系统400,CPU 210可以包括一个或多个位置确定组件以提供用于基于运动传感器来确定可穿戴显示设备120的位置、第一经更新位置和第二经更新位置的单元。GPU 212可以包括一个或多个图像渲染组件以提供用于基于确定位置来渲染图像的单元。规整引擎480可以包括一个或多个部分规整组件以提供用于基于第一更新位置来规整经渲染图像的第一部分以校正由于可穿戴显示设备120的透镜引起的失真以及用于基于第二经更新位置来规整经渲染图像的第二部分并校正由于可穿戴显示设备120的透镜引起的失真的单元。显示器驱动器240可以包括一个或多个显示组件以提供用于在可穿戴显示设备120的显示器上显示经渲染图像的第一部分和经渲染图像的第二部分的单元。
如本文所使用的,术语“确定”涵盖多种多样的动作。例如,“确定”可以包括运算、计算、处理、推导、调查、查找(例如,在表格、数据库或另一数据结构中查找)、判定等等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等等。此外,“确定”可以包括解析、选择、选取、建立等等。
如本文使用的,提及“中的至少一个”的项目列表的短语是指这些项目的任意组合,包括单一成员。举例而言,“a、b或c中的至少一个”旨在覆盖:a、b、c、a-b、a-c、b-c和a-b-c,以及多个相同要素的任意组合(例如,a-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-c、c-c以及c-c-c或者a、b和c的任何其它排序)。
可以利用被设计为执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、ASIC、现场可编程门阵列(FPGA)或其它可编程逻辑器件(PLD)、分立门或晶体管逻辑器件、分立硬件组件或者其任意组合,来实现或执行结合本公开内容所描述的各种说明性的逻辑框、模块和电路。通用处理器可以是微处理器,但在替代方案中,该处理器可以是任何商业可用的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、与DSP内核结合的一个或多个微处理器,或者任何其它此种配置。
本文所公开的方法包括用于实现所描述的方法的一个或多个步骤或动作。在不偏离权利要求的范围的情况下,各方法步骤和/或动作可以彼此互换。换言之,除非指定步骤或动作的特定顺序,否则可以在不偏离权利要求的范围的情况下修改特定步骤和/或动作的顺序和/或使用。
可以在硬件、软件、固件、或者其任意组合中实现所描述的功能。如果在硬件中实现,则示例性硬件配置可以包括无线节点中的处理系统。可以利用总线结构来实现处理系统。取决于处理系统的具体应用和整体设计约束,总线可以包括任意数量的互连总线和桥接。总线可以将各种电路链接在一起,包括处理器、机器可读介质和总线接口。总线接口可以用于将网络适配器等等经由总线连接到处理系统。网络适配器可以用于实现物理(PHY)层的信号处理功能。在用户终端的情况下,用户接口(例如,键盘、显示器、鼠标、操纵杆等等)也可以连接到总线。总线还可以链接诸如定时源、外设、电压调节器、功率管理电路等各种其它电路,这些在本领域公知,因此将不再进一步描述。
处理系统可以被配置为通用处理系统,该通用处理系统具有提供处理器功能的一个或多个微处理器以及提供机器可读介质的至少一部分的外部存储器,所有这些通过外部总线架构与其它支持电路链接在一起。替代地,可以利用ASIC以及处理器、总线接口、在接入终端的情况下的用户接口、支持电路、以及被并入单个芯片中的机器可读介质的至少一部分,或者利用一个或多个FPGA、PLD、控制器、状态机、门控逻辑单元、分立硬件组件、或者任何其它适当的电路、或者能够执行贯穿本公开内容所描述的各个功能的电路的任意组合来实现处理系统。本领域技术人员将认识到,如何根据具体应用和施加在整体系统上的整体设计约束来最佳地实现针对处理系统所描述的功能。
要理解,权利要求不限于上面所示出的精确配置和组件。在不偏离权利要求的范围的情况下,可以对上面所描述的方法和装置的布置、操作和细节做出各种修改、变化和变型。
Claims (30)
1.一种用于对可穿戴显示设备进行操作的方法,所述方法包括:
在第一时间基于运动传感器来确定所述可穿戴显示设备的位置;
基于所确定的位置来渲染图像;
在所述第一时间之后的第二时间基于所述运动传感器,针对经渲染图像的第一部分来确定所述可穿戴显示设备的第一经更新位置;
基于所述第一经更新位置来规整所述经渲染图像的所述第一部分,并校正由于所述可穿戴显示设备的透镜引起的失真;
在所述可穿戴显示设备的显示器上显示所述经渲染图像的经规整的第一部分;
在所述第二时间之后的第三时间基于所述运动传感器,针对所述经渲染图像的第二部分来确定所述可穿戴显示设备的第二经更新位置;
基于所述第二经更新位置来规整所述经渲染图像的所述第二部分,并校正由于所述可穿戴显示设备的所述透镜引起的失真;以及
在所述可穿戴显示设备的所述显示器上显示所述经渲染图像的经规整的第二部分。
2.根据权利要求1所述的方法,其中,渲染是使用图形处理单元来执行的,并且规整是使用与所述图形处理单元分离的规整引擎来执行的。
3.根据权利要求1所述的方法,其中,规整所述第一部分和规整所述第二部分与所述可穿戴显示设备的所述显示器的刷新同步。
4.根据权利要求3所述的方法,其中,规整所述第一部分与显示所述第一部分同步。
5.根据权利要求3所述的方法,其中,规整所述第一部分和规整所述第二部分与渲染所述图像异步。
6.根据权利要求1所述的方法,还包括:
将所述经渲染图像存储在存储器中;
从所述存储器读取所述经渲染图像;
将所述经渲染图像的所述经规整的第一部分存储在与所述存储器不同的高速缓存中;以及
从所述高速缓存读取所述经渲染图像的所述经规整的第一部分。
7.根据权利要求6所述的方法,其中,所述高速缓存包括片上存储器。
8.根据权利要求1所述的方法,还包括:
渲染多个图像,所述多个图像中的每个图像对应于所述图像的不同视场;以及
组合所述多个图像中的每个图像的部分以生成所述经渲染图像的所述经规整的第一部分。
9.根据权利要求1所述的方法,还包括:规整所述经渲染图像的所述第一部分,以基于所述可穿戴显示设备的用户的视觉来改变所述经渲染图像的所述第一部分的焦点。
10.根据权利要求1所述的方法,其中,显示所述第一经规整部分和规整所述第二部分是并行执行的。
11.一种用于对可穿戴显示设备进行操作的计算机系统,所述计算机系统包括:
处理器,所述处理器被配置为:
在第一时间基于运动传感器来确定所述可穿戴显示设备的位置;
在所述第一时间之后的第二时间基于所述运动传感器来确定所述可穿戴显示设备的第一经更新位置;以及
在所述第二时间之后的第三时间基于所述运动传感器来确定所述可穿戴显示设备的第二经更新位置;图形处理单元,所述图形处理单元被配置为:
基于所确定的位置来渲染图像;与所述图形处理单元分离的规整引擎,所述规整引擎被配置为:
基于针对经渲染图像的第一部分的所述第一经更新位置来规整所述经渲染图像的所述第一部分,并校正由于所述可穿戴显示设备的透镜引起的失真;以及
基于针对所述经渲染图像的第二部分的所述第二经更新位置来规整所述经渲染图像的所述第二部分,并校正由于所述可穿戴显示设备的透镜引起的失真;以及
显示器驱动器,所述显示器驱动器被配置为:
在所述可穿戴显示设备的显示器上显示所述经渲染图像的经规整的第一部分;以及
在所述可穿戴显示设备的所述显示器上显示所述经渲染图像的经规整的第二部分。
12.根据权利要求11所述的计算机系统,其中,规整所述第一部分和规整所述第二部分与所述可穿戴显示设备的所述显示器的刷新同步。
13.根据权利要求12所述的计算机系统,其中,规整所述第一部分与显示所述第一部分同步。
14.根据权利要求12所述的计算机系统,其中,规整所述第一部分和规整所述第二部分与渲染所述图像异步。
15.根据权利要求11所述的计算机系统,还包括:
存储器,所述存储器被配置为:存储所述经渲染图像;以及
与所述存储器不同的高速缓存,所述高速缓存被配置为:存储所述经渲染图像的所述经规整的第一部分。
16.根据权利要求15所述的计算机系统,其中,所述高速缓存包括片上存储器。
17.根据权利要求11所述的计算机系统,其中:
所述图形处理单元还被配置为:渲染多个图像,所述多个图像中的每个图像对应于所述图像的不同视场;以及
所述规整引擎还被配置为:组合所述多个图像中的每个图像的部分以生成所述经渲染图像的所述经规整的第一部分。
18.根据权利要求11所述的计算机系统,其中所述规整引擎还被配置为:规整所述经渲染图像的所述第一部分,以基于所述可穿戴显示设备的用户的视觉来改变所述经渲染图像的所述第一部分的焦点。
19.根据权利要求11所述的计算机系统,其中,显示所述第一经规整部分和规整所述第二部分是并行执行的。
20.一种其上存储有用于对可穿戴显示设备进行操作的指令的非暂时性计算机可读介质,其中,由计算系统执行所述指令使得所述计算系统执行以下步骤:
在第一时间基于运动传感器来确定所述可穿戴显示设备的位置;
基于所确定的位置来渲染图像;
在所述第一时间之后的第二时间基于所述运动传感器,针对经渲染图像的第一部分来确定所述可穿戴显示设备的第一经更新位置;
基于所述第一经更新位置来规整所述经渲染图像的所述第一部分,并校正由于所述可穿戴显示设备的透镜引起的失真;
在所述可穿戴显示设备的显示器上显示所述经渲染图像的经规整的第一部分;
在所述第二时间之后的第三时间基于所述运动传感器,针对所述经渲染图像的第二部分来确定所述可穿戴显示设备的第二经更新位置;
基于所述第二经更新位置来规整所述经渲染图像的所述第二部分,并校正由于所述可穿戴显示设备的所述透镜引起的失真;以及
在所述可穿戴显示设备的所述显示器上显示所述经渲染图像的经规整的第二部分。
21.根据权利要求20所述的非暂时性计算机可读介质,其中,渲染是使用图形处理单元来执行的,并且规整是使用与所述图形处理单元分离的规整引擎来执行的。
22.根据权利要求20所述的非暂时性计算机可读介质,其中,规整所述第一部分和规整所述第二部分与所述可穿戴显示设备的所述显示器的刷新同步。
23.根据权利要求22所述的非暂时性计算机可读介质,其中,规整所述第一部分与显示所述第一部分同步。
24.根据权利要求22所述的非暂时性计算机可读介质,其中,规整所述第一部分和规整所述第二部分与渲染所述图像异步。
25.根据权利要求20所述的非暂时性计算机可读介质,其中,由所述计算系统执行所述指令还使得所述计算系统执行以下步骤:
将所述经渲染图像存储在存储器中;
从所述存储器读取所述经渲染图像;
将所述经渲染图像的所述经规整的第一部分存储在与所述存储器不同的高速缓存中;以及
从所述高速缓存读取所述经渲染图像的所述经规整的第一部分。
26.根据权利要求25所述的非暂时性计算机可读介质,其中,所述高速缓存包括片上存储器。
27.根据权利要求20所述的非暂时性计算机可读介质,其中,由所述计算系统执行所述指令还使得所述计算系统执行以下步骤:
渲染多个图像,所述多个图像中的每个图像对应于所述图像的不同视场;以及
组合所述多个图像中的每个图像的部分以生成所述经渲染图像的所述经规整的第一部分。
28.根据权利要求20所述的非暂时性计算机可读介质,其中,由所述计算系统执行所述指令还使得所述计算系统执行以下步骤:规整所述经渲染图像的所述第一部分,以基于所述可穿戴显示设备的用户的视觉来改变所述经渲染图像的所述第一部分的焦点。
29.根据权利要求20所述的非暂时性计算机可读介质,其中,显示所述第一经规整部分和规整所述第二部分是并行执行的。
30.一种用于对可穿戴显示设备进行操作的计算机系统,所述计算机系统包括:
用于在第一时间基于运动传感器来确定所述可穿戴显示设备的位置的单元;
用于基于所确定的位置来渲染图像的单元;
用于在所述第一时间之后的第二时间基于所述运动传感器,针对经渲染图像的第一部分来确定所述可穿戴显示设备的第一经更新位置的单元;
用于基于所述第一经更新位置来规整所述经渲染图像的所述第一部分,并校正由于所述可穿戴显示设备的透镜引起的失真的单元;
用于在所述可穿戴显示设备的显示器上显示所述经渲染图像的经规整的第一部分的单元;
用于在所述第二时间之后的第三时间基于所述运动传感器,针对所述经渲染图像的第二部分来确定所述可穿戴显示设备的第二经更新位置的单元;
用于基于所述第二经更新位置来规整所述经渲染图像的所述第二部分,并校正由于所述可穿戴显示设备的所述透镜引起的失真的单元;以及
用于在所述可穿戴显示设备的所述显示器上显示所述经渲染图像的经规整的第二部分的单元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/374,165 | 2016-12-09 | ||
US15/374,165 US10043318B2 (en) | 2016-12-09 | 2016-12-09 | Display synchronized image warping |
PCT/US2017/065077 WO2018106898A1 (en) | 2016-12-09 | 2017-12-07 | Display synchronized image warping |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110050250A CN110050250A (zh) | 2019-07-23 |
CN110050250B true CN110050250B (zh) | 2020-11-03 |
Family
ID=61054476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780075873.0A Active CN110050250B (zh) | 2016-12-09 | 2017-12-07 | 显示器同步的图像规整 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10043318B2 (zh) |
EP (1) | EP3552081B1 (zh) |
CN (1) | CN110050250B (zh) |
BR (1) | BR112019010815A2 (zh) |
ES (1) | ES2855123T3 (zh) |
HU (1) | HUE052188T2 (zh) |
TW (1) | TWI659391B (zh) |
WO (1) | WO2018106898A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10839321B2 (en) | 1997-01-06 | 2020-11-17 | Jeffrey Eder | Automated data storage system |
KR20180082033A (ko) * | 2017-01-09 | 2018-07-18 | 삼성전자주식회사 | 음성을 인식하는 전자 장치 |
CN110573929A (zh) * | 2017-05-01 | 2019-12-13 | 无限增强现实以色列有限公司 | 增强或混合现实环境的光学引擎时间扭曲 |
AU2018285543B2 (en) * | 2017-06-14 | 2023-10-05 | Hadal, Inc. | Systems and methods for virtual reality motion sickness prevention |
US10169843B1 (en) * | 2017-11-20 | 2019-01-01 | Advanced Micro Devices, Inc. | Temporal foveated rendering using motion estimation |
KR102473840B1 (ko) * | 2017-11-21 | 2022-12-05 | 삼성전자주식회사 | 디스플레이 드라이버 및 모바일 전자 기기 |
KR102604738B1 (ko) * | 2017-12-22 | 2023-11-22 | 삼성전자주식회사 | 와핑 처리를 수행하는 그래픽 프로세서, 이를 포함하는 렌더링 시스템 및 그래픽 프로세서 동작방법 |
US10551914B2 (en) * | 2018-02-09 | 2020-02-04 | Microsoft Technology Licensing, Llc | Efficient MEMs-based eye tracking system with a silicon photomultiplier sensor |
US10627899B2 (en) | 2018-02-09 | 2020-04-21 | Microsoft Technology Licensing, Llc | Eye tracking system for use in a visible light display device |
US10853911B2 (en) * | 2018-04-17 | 2020-12-01 | Google Llc | Dynamic adaptation of images for projection, and/or of projection parameters, based on user(s) in environment |
CN109739356B (zh) * | 2018-12-29 | 2020-09-11 | 歌尔股份有限公司 | Vr系统中图像显示的控制方法、装置及vr头戴设备 |
US10802287B2 (en) * | 2019-01-14 | 2020-10-13 | Valve Corporation | Dynamic render time targeting based on eye tracking |
US11660535B2 (en) * | 2019-10-11 | 2023-05-30 | Nvidia Corporation | Hardware acceleration and event decisions for late latch and warp in interactive computer products |
US20220201271A1 (en) * | 2020-12-23 | 2022-06-23 | Facebook Technologies, Llc | Temporal foveated rendering |
US11822713B2 (en) | 2021-06-11 | 2023-11-21 | Rockwell Collins, Inc. | Pose augmentation of head worn display video for latency reduction |
CN114125301B (zh) * | 2021-11-29 | 2023-09-19 | 卡莱特云科技股份有限公司 | 一种虚拟现实技术拍摄延迟处理方法及装置 |
US11586286B1 (en) | 2022-05-18 | 2023-02-21 | Bank Of America Corporation | System and method for navigating on an augmented reality display |
US11720380B1 (en) | 2022-05-18 | 2023-08-08 | Bank Of America Corporation | System and method for updating augmented reality navigation instructions based on a detected error |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9232139B2 (en) * | 2012-07-24 | 2016-01-05 | Apple Inc. | Image stabilization using striped output transformation unit |
US9240069B1 (en) * | 2015-06-30 | 2016-01-19 | Ariadne's Thread (Usa), Inc. | Low-latency virtual reality display system |
CN105847785A (zh) * | 2016-05-09 | 2016-08-10 | 上海乐相科技有限公司 | 一种图像处理方法、设备和系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3745117B2 (ja) * | 1998-05-08 | 2006-02-15 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
WO2011046633A1 (en) * | 2009-10-14 | 2011-04-21 | Zoran Corporation | Method and apparatus for image stabilization |
TWI454663B (zh) * | 2011-11-22 | 2014-10-01 | Core Wireless Licensing Sarl | 用於決定位置偏移資訊之方法、設備和電腦可讀儲存媒體 |
US9740007B2 (en) * | 2012-03-22 | 2017-08-22 | Sony Corporation | Display device, image processing device and image processing method, and computer program |
WO2013151883A1 (en) | 2012-04-02 | 2013-10-10 | Intel Corporation | Systems, methods, and computer program products for runtime adjustment of image warping parameters in a multi-camera system |
US9576397B2 (en) | 2012-09-10 | 2017-02-21 | Blackberry Limited | Reducing latency in an augmented-reality display |
WO2015044716A1 (en) * | 2013-09-27 | 2015-04-02 | Freescale Semiconductor, Inc. | Head-up display warping controller |
US9551916B2 (en) * | 2014-09-25 | 2017-01-24 | Intel Corporation | Integrated and adjustable image projection with auto-image correction in electronic devices using an in-facing or world-facing image projector |
US20160260246A1 (en) | 2015-03-02 | 2016-09-08 | Advanced Micro Devices, Inc. | Providing asynchronous display shader functionality on a shared shader core |
US9874932B2 (en) * | 2015-04-09 | 2018-01-23 | Microsoft Technology Licensing, Llc | Avoidance of color breakup in late-stage re-projection |
US9704217B2 (en) | 2015-04-20 | 2017-07-11 | Intel Corporation | Apparatus and method for non-uniform frame buffer rasterization |
-
2016
- 2016-12-09 US US15/374,165 patent/US10043318B2/en active Active
-
2017
- 2017-12-07 WO PCT/US2017/065077 patent/WO2018106898A1/en active Search and Examination
- 2017-12-07 ES ES17835892T patent/ES2855123T3/es active Active
- 2017-12-07 TW TW106142882A patent/TWI659391B/zh active
- 2017-12-07 BR BR112019010815A patent/BR112019010815A2/pt unknown
- 2017-12-07 HU HUE17835892A patent/HUE052188T2/hu unknown
- 2017-12-07 CN CN201780075873.0A patent/CN110050250B/zh active Active
- 2017-12-07 EP EP17835892.5A patent/EP3552081B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9232139B2 (en) * | 2012-07-24 | 2016-01-05 | Apple Inc. | Image stabilization using striped output transformation unit |
US9240069B1 (en) * | 2015-06-30 | 2016-01-19 | Ariadne's Thread (Usa), Inc. | Low-latency virtual reality display system |
CN105847785A (zh) * | 2016-05-09 | 2016-08-10 | 上海乐相科技有限公司 | 一种图像处理方法、设备和系统 |
Non-Patent Citations (1)
Title |
---|
The Asynchronous Time Warp for Virtual Reality on Consumer Hardware;J.M.P. van Waveren;《Proceedings of the 22nd ACM Conference on Virtual Reality Software and Technology》;20161104;37-46 * |
Also Published As
Publication number | Publication date |
---|---|
EP3552081A1 (en) | 2019-10-16 |
TWI659391B (zh) | 2019-05-11 |
BR112019010815A2 (pt) | 2019-10-01 |
US10043318B2 (en) | 2018-08-07 |
CN110050250A (zh) | 2019-07-23 |
WO2018106898A1 (en) | 2018-06-14 |
TW201830339A (zh) | 2018-08-16 |
US20180165878A1 (en) | 2018-06-14 |
HUE052188T2 (hu) | 2021-04-28 |
ES2855123T3 (es) | 2021-09-23 |
EP3552081B1 (en) | 2020-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110050250B (zh) | 显示器同步的图像规整 | |
CN110199267B (zh) | 利用数据压缩进行实时图像转换的无缺失的高速缓存结构 | |
US10360832B2 (en) | Post-rendering image transformation using parallel image transformation pipelines | |
CN110249317B (zh) | 用于实时图像变换的无未命中高速缓存结构 | |
US8970495B1 (en) | Image stabilization for color-sequential displays | |
US10134174B2 (en) | Texture mapping with render-baked animation | |
US11798241B2 (en) | Apparatus and operating method for displaying augmented reality object | |
US20230039100A1 (en) | Multi-layer reprojection techniques for augmented reality | |
KR20160002602A (ko) | 디스플레이 디바이스 및 이를 이용한 가속된 헤드 추적 방법 | |
EP3572916B1 (en) | Apparatus, system, and method for accelerating positional tracking of head-mounted displays | |
US11301969B1 (en) | Context aware dynamic distortion correction | |
Bastani et al. | Foveated pipeline for AR/VR head‐mounted displays | |
US20200029057A1 (en) | Systems and methods for correcting color separation in field-sequential displays | |
US11308685B2 (en) | Rendering computer-generated reality text | |
KR20200063614A (ko) | Ar/vr/mr 시스템용 디스플레이 유닛 | |
US11880920B2 (en) | Perspective correct vector graphics with foveated rendering | |
US11836872B1 (en) | Method and device for masked late-stage shift | |
US20230196621A1 (en) | Sparse rgb filter hardware accelerator | |
US20240029363A1 (en) | Late stage occlusion based rendering for extended reality (xr) | |
US12034908B2 (en) | Stereoscopic-image playback device and method for generating stereoscopic images | |
US20230239458A1 (en) | Stereoscopic-image playback device and method for generating stereoscopic images | |
US20220180473A1 (en) | Frame Rate Extrapolation |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40010560 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |