CN114127834A - 用于时空抖动的系统和方法 - Google Patents

用于时空抖动的系统和方法 Download PDF

Info

Publication number
CN114127834A
CN114127834A CN202080051804.8A CN202080051804A CN114127834A CN 114127834 A CN114127834 A CN 114127834A CN 202080051804 A CN202080051804 A CN 202080051804A CN 114127834 A CN114127834 A CN 114127834A
Authority
CN
China
Prior art keywords
image
pixel
display
images
error
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
CN202080051804.8A
Other languages
English (en)
Inventor
爱德华·巴克利
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.)
Meta Platforms Technologies LLC
Original Assignee
Facebook Technologies LLC
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 Facebook Technologies LLC filed Critical Facebook Technologies LLC
Publication of CN114127834A publication Critical patent/CN114127834A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/2007Display of intermediate tones
    • G09G3/2074Display of intermediate tones using sub-pixels
    • 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/10Beam splitting or combining systems
    • G02B27/1006Beam splitting or combining systems for splitting or combining different wavelengths
    • G02B27/102Beam splitting or combining systems for splitting or combining different wavelengths for generating a colour image from monochromatic image signal sources
    • G02B27/1026Beam splitting or combining systems for splitting or combining different wavelengths for generating a colour image from monochromatic image signal sources for use with reflective spatial light modulators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/2007Display of intermediate tones
    • G09G3/2044Display of intermediate tones using dithering
    • G09G3/2051Display of intermediate tones using dithering with use of a spatial dither pattern
    • G09G3/2055Display of intermediate tones using dithering with use of a spatial dither pattern the pattern being varied in time
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/2007Display of intermediate tones
    • G09G3/2059Display of intermediate tones using error diffusion
    • G09G3/2062Display of intermediate tones using error diffusion using error diffusion in time
    • G09G3/2066Display of intermediate tones using error diffusion using error diffusion in time with error diffusion in both space and time
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/16Calculation or use of calculated indices related to luminance levels in display data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Optics & Photonics (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)
  • Image Processing (AREA)

Abstract

在一个实施例中,系统可以接收图像系列中的图像的像素的目标像素值。该系统可以基于目标像素值和第一误差值来确定误差修正的目标像素值。该系统可以生成对应于误差修正的目标像素值的量化像素值,以用于由图像的像素进行显示。该系统可以确定由图像的像素和该图像系列中的一个或更多个在先图像的对应像素显示的量化像素值的聚合表示。该系统可以基于量化像素值的聚合表示以及第一误差修正的目标像素值来确定第二误差值。该系统可以将第二误差值的至少一部分至少抖动到图像系列中的下一图像的对应像素。

Description

用于时空抖动的系统和方法
技术领域
本公开总体涉及人工现实,诸如虚拟现实和增强现实。
背景
人工现实是一种在呈现给用户之前已经以某种方式进行了调整的现实形式,其可以包括例如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、混杂现实或它们的某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与捕获的内容(例如,真实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈或它们的某种组合,并且它们中的任何一个都可以在单个通道或多个通道中呈现(例如向观看者产生三维效果的立体视频)。人工现实可以与应用、产品、附件、服务或它们的某种组合相关联,这些应用、产品、附件、服务或它们的某种组合例如用于在人工现实中创建内容和/或在人工现实中使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(HMD)、独立的HMD、移动设备或计算系统、或者能够向一个或更多个观看者提供人工现实内容的任何其他硬件平台。
特定实施例的概述
本文描述的特定实施例涉及一种时空抖动方法,该方法用于生成子帧图像系列,该子帧图像系列在所有子帧图像上具有更均匀的亮度分布,以便更好地表示比子帧图像具有更大数量的灰度级(gray level)或色深(color depth)的目标图像。对于像素的给定目标像素值,系统可以首先基于目标像素值和从在先子帧图像抖动的第一量化误差值来生成误差修正的目标像素值。误差修正的目标像素值可以通过将第一量化误差值与目标像素值相加来确定。然后,系统可以通过将误差修正的目标像素值投射到显示色域(displaygamut)来确定校正目标像素值,以确保校正目标像素值在由显示色域确定的有效范围内。然后,系统可以使用矢量量化器或标量量化器,通过将校正目标像素值映射到由子帧图像的灰度级或色深确定的像素值范围,来量化校正目标像素值。量化像素值可以被用于由当前子帧图像的像素进行显示。此后,系统可以确定由当前子帧图像的当前像素和所有在先子帧图像的对应像素(如果存在在先子帧图像的话)显示的多个量化像素值的聚合表示。然后,系统可以通过从误差修正的目标像素值中减去量化像素值的聚合表示来计算量化误差值。量化误差可以被馈送/抖动到下一子帧图像,以用于确定该子帧图像系列中下一子帧图像的对应像素的误差修正的目标像素值。例如,量化误差可以被馈送到Floyd-Steinberg模型,以用于计算当前像素的四个相邻像素中的每一个像素的空间抖动误差。空间抖动误差中的一个可以在时间上被馈送到下一子帧图像,而剩余的空间抖动误差可以在空间上分布到相同子帧图像的相邻像素。因而,该方法可以从时间上将量化误差分布到子帧当中,使得时间能量或亮度在所有子帧上基本上保持均匀,并且同时从空间上在当前子帧图像内分布量化误差,并因此显著提高AR/VR系统的显示质量。在特定实施例中,系统可以使用颜色显示模型来生成显示像素值,并且基于显示像素值而不是量化像素值来确定量化误差。
本文公开的实施例仅仅是示例,并且本公开的范围不限于它们。特定实施例可以包括上面公开的实施例的部件、元件、特征、功能、操作或步骤中的全部、一些或全部不被包括。根据本发明的实施例在所附权利要求中以特定方式被公开,这些权利要求涉及方法、存储介质、系统和计算机程序产品,其中在一个权利要求类别(例如方法)中提到的任何特征也可以在另一个权利要求类别(例如系统)中被要求保护。在所附权利要求中的从属性或往回引用仅为了形式原因而被选择。然而,也可以要求保护由对任何前面的权利要求的有意往回引用(特别是多项引用)而产生的任何主题,使得权利要求及其特征的任何组合被公开并且可被要求保护,而不考虑在所附权利要求中选择的从属性。可以被要求保护的主题不仅包括如在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,在权利要求中提到的每个特征可以与在权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的实施例和特征中的任一个可以在单独的权利要求中和/或以与本文描述或描绘的任何实施例或特征的任何组合或以与所附权利要求的任何特征的任何组合被要求保护。
在实施例中,一种方法可以包括,通过计算系统:
接收图像系列中的图像的像素的目标像素值;
基于目标像素值和第一误差值来确定第一误差修正的目标像素值;
生成与误差修正的目标像素值相对应的量化像素值,其中量化像素值被用于由图像的像素进行显示;
确定由以下项显示的多个量化像素值的第一聚合表示:(1)图像的像素和(2)图像系列中的一个或更多个在先图像的对应像素;
基于多个量化像素值的第一聚合表示以及第一误差修正的目标像素值来确定第二误差值;和
将第二误差值的至少一部分至少抖动到图像系列中的下一图像的对应像素。
该图像系列可以用于表示目标图像,并且目标像素值可以对应于目标图像的对应像素值。
目标像素值可以等于目标图像的对应像素值,并且多个量化像素值的第一聚合表示可以是多个量化像素值的平均值。
目标像素值可以等于目标图像的对应像素值乘以与图像系列中的图像相关联的序列号得出的结果,并且多个量化像素值的第一聚合表示可以是多个量化像素值的和。
该图像系列可以包括N数量个图像,该图像系列中的每一个图像可以具有K位灰度级位(gray level bit),并且目标图像可以具有M位灰度级位,并且该图像系列和目标图像可以具有以下关系:2M=N×2K
在实施例中,一种方法可以包括:
通过将第一误差修正的目标像素值投射到显示色域来确定校正目标像素值,其中,量化像素值是基于校正目标像素值生成的。
将第一误差修正的目标像素值投射到显示色域可以包括将第一误差修正的目标像素值裁剪(clip)到与显示色域相关联的值范围。
量化像素值可以通过将校正目标像素值映射到由K位灰度级位确定的像素值范围来确定,并且量化像素值可以是与校正目标像素值最接近的K位二进制数。
第二误差值可以通过从第一误差修正的目标像素值中减去多个量化像素值的聚合表示来确定。
通过将第二误差值的至少一部分用于确定图像系列中的下一图像的对应像素的第二误差修正的目标像素值,第二误差值的至少一部分可以被抖动到图像系列中的下一图像的对应像素。
当图像是图像系列中的第一图像时,第一误差值可以为零。
当图像是子帧图像系列中的后续图像时,第一误差值可以是来自在先图像的对应像素的在先误差值。
在实施例中,一种方法可以包括:
使用空间抖动模型,基于第二误差值,确定一个或更多个空间误差值,其中一个或更多个空间误差值包括关于在像素的同一行且下一列中的第一相邻像素的第一空间误差值、关于在像素的下一行且前一列中的第二相邻像素的第二空间误差值、关于位于像素的下一行且同一列的第三相邻像素的第三空间误差值、以及关于位于像素的下一行且下一列的第四相邻像素的第四空间误差值。
空间抖动模型可以包括Floyd-Steinberg核。
第一空间误差值可以在时域中被抖动到图像系列中的下一图像的对应像素。
通过将第一空间误差值用于确定图像系列中的下一图像的对应像素的第二误差修正的目标像素值,第一空间误差值可以在时域中被抖动到下一图像的对应像素。
第二空间误差值、第三空间误差值和第四空间误差值可以在空间域中被抖动到图像内的第二相邻像素、第三相邻像素和第四相邻像素。
在实施例中,一种方法可以包括:
使用颜色显示模型,基于量化像素值来确定显示像素值以用于由图像的像素进行显示;和
确定由以下项显示的多个显示像素值的第二聚合表示:(1)图像的像素和(2)图像系列中的一个或更多个在先图像的对应像素,其中第二误差值是通过从第一误差修正的目标像素值中减去多个显示像素值的第二聚合表示来确定的。
在实施例中,一个或更多个计算机可读非暂时性存储介质可以体现软件,该软件在被执行时可操作来:
接收图像系列中的图像的像素的目标像素值;
基于目标像素值和第一误差值来确定第一误差修正的目标像素值;
生成与误差修正的目标像素值相对应的量化像素值,其中量化像素值被用于由图像的像素进行显示;
确定由以下项显示的多个量化像素值的第一聚合表示:(1)图像的像素和(2)图像系列中的一个或更多个在先图像的对应像素;
基于多个量化像素值的第一聚合表示和第一误差修正的目标像素值确定第二误差值;和
将第二误差值的至少一部分至少抖动到图像系列中的下一图像的对应像素。
在实施例中,一种系统可以包括:
第一数字电子电路,其被配置为确定人工现实场景的一个或更多个区域,其中该一个或更多个区域从用户的当前视点是可见的;
第二数字电子电路,其被配置为确定与该一个或更多个区域相关联的多个像素中的每一个像素的像素值;和
第三数字电子电路,其被配置为抖动与多个像素相关联的量化误差,其中量化误差既在空间上被抖动到当前帧内的一个或更多个相邻像素,并且也在时间上被抖动到下一帧。
在实施例中,一种系统可以包括:
存储器单元,其被配置为存储不同分辨率的源数据,基于不同分辨率的源数据来确定与一个或更多个区域相关联的多个像素的像素值。
在实施例中,一种系统可以包括:
显示系统,其包括三个颜色通道的多个微型LED像素、用于驱动相应颜色通道的多个微型LED像素的三个显示驱动器电路、以及将第三数字电子电路连接到三个显示驱动器电路的一个或更多个数据总线。
显示系统可以包括光源组件、多个去耦元件以及将光源组件耦合到多个去耦元件的多个输出波导。
该显示系统可以包括:光源,该光源包括发射多个光束的多个光发射器;像场(image filed)中的多个显示像素;以及将多个光束反射到像场中的多个显示像素的可旋转反射镜。
显示系统可以包括发射多个光束的投影仪设备、包括沿着波导分布的多个耦合元件和多个去耦元件的波导,多个耦合元件和多个去耦元件可以沿着波导反射多个光束的光强度的第一部分,并且多个去耦元件可以从波导去耦多个光束的光强度的第二部分。
附图简述
图1A示出了示例人工现实系统。
图1B示出了示例增强现实系统。
图1C示出了显示引擎的示例架构。
图1D示出了用于生成显示图像数据的显示引擎的示例图形管线(graphicpipeline)。
图2A示出了示例扫描波导显示器。
图2B示出了扫描波导显示器的示例扫描操作。
图3A示出了示例2D微型LED波导显示器。
图3B示出了用于2D微型LED波导显示器的示例波导配置。
图4A示出了由具有较小色深的子帧图像系列表示的示例目标图像。
图4B-图4E示出了使用分割量化和空间抖动方法生成用以表示目标图像的四个示例子帧图像。
图4F示出了用于将目标像素值映射到四个子帧图像的加权像素值范围的示例过程。
图5A示出了示例时空抖动模型,该示例时空抖动模型用于生成具有更均匀亮度的子帧图像系列以表示目标图像。
图5B示出了用于在时域中将量化误差在时间上从子帧图像系列中的当前子帧图像抖动到下一子帧图像的示例过程。
图6A示出了包括Floyd-Steinberg模型的示例时空抖动模型。
图6B示出了用于在时域中将量化误差在时间上抖动到下一子帧图像以及又在空间上抖动到相同子帧图像中的相邻像素的示例过程。
图7示出了包括Floyd-Steinberg模型和显示模型的示例时空抖动模型。
图8A示出了由具有较小灰度级的子帧图像系列表示的示例目标图像。
图8B-图8E示出了使用时空抖动模型生成的四个示例子帧图像。
图9示出了使用时空抖动方法生成具有更均匀亮度的图像系列的示例方法。
图10示出了示例计算机系统。
示例实施例的描述
显示器中可用位数可能会限制显示器的色深或灰度级。具有有限色深或灰度级的显示器可以使用空间抖动来产生色深或灰度级增加的错觉,例如,通过将量化误差扩散到相邻像素。为了进一步增加色深或灰度级,显示器可以生成具有较少灰度级位的时间子帧图像系列,以给出具有较多灰度级位的目标图像的错觉。每个子帧图像可以被分配一个色彩强度范围,并使用空间抖动技术进行抖动。然而,使用这种方法,即使所有子帧图像随时间的平均亮度近似等于目标图像,子帧也可能具有非常不同的亮度,并且将在AR/VR显示中产生时间伪影(例如,随时间的闪烁或不均匀亮度),因为用户的眼睛和头部位置可能在子帧图像之间急剧变化。
为了解决这个问题,系统的特定实施例可以使用时空抖动方法来生成在所有子帧图像上具有更均匀亮度分布的子帧图像系列,用于表示目标图像。时空抖动方法可以在空间上将量化误差抖动到同一子帧图像的相邻像素,并且也在时间上将量化误差抖动到子帧图像系列中的下一子帧图像的对应像素。子帧图像的像素的时间抖动量化误差可以在时域中被抖动到子帧图像系列的下一个子帧图像中的对应像素。
该系统的特定实施例通过使用具有较小色深的多个子帧图像表示具有较大色深的图像,来为AR/VR显示提供了更好的图像质量和改进的用户体验。该系统的特定实施例生成具有跨子帧图像更均匀的亮度分布的子帧图像来表示目标图像,并且当用户的眼睛和头部位置在子帧图像之间变化时,消除时间伪影,诸如在AR/VR显示中随时间的闪烁或不均匀亮度。该系统的特定实施例允许AR/VR显示系统减少像素电路的空间且降低复杂度,并因此使显示系统的尺寸小型化。该系统的特定实施例使得AR/VR显示器能够消除用于全RGB操作的模拟像素电路,并且在AR/VR显示器的像素设计上提供更多的灵活性。
图1A示出了示例人工现实系统100A。在特定实施例中,人工现实系统100可以包括头戴式装置104、控制器106和计算系统108。用户102可以佩戴头戴式装置104,该头戴式装置104可以向用户102显示视觉人工现实内容。头戴式装置104可以包括可以向用户102提供音频人工现实内容的音频设备。头戴式装置104可以包括能够捕获环境图像和视频的一个或更多个相机。头戴式装置104可以包括眼睛跟踪系统,以用于确定用户102的辐辏(vergence)距离。头戴式装置104可以被称为头戴式显示器(HDM)。控制器106可以包括触控板(trackpad)和一个或更多个按钮。控制器106可以接收来自用户102的输入,并将该输入中继到计算系统108。控制器206还可以向用户102提供触觉反馈。计算系统108可以通过线缆连接或无线连接连接到头戴式装置104和控制器106。计算系统108可以控制头戴式装置104和控制器106,以向用户102提供人工现实内容并从用户102接收输入。计算系统108可以是独立的主计算机系统、与头戴式装置104集成的机载计算机系统、移动设备或能够向用户102提供人工现实内容并从用户102接收输入的任何其他硬件平台。
图1B示出了示例增强现实系统100B。增强现实系统100B可以包括头戴式显示器(HMD)110(例如,眼镜),其包括框架112、一个或更多个显示器114和计算系统120。显示器114可以是透明或半透明的,以允许佩戴HMD 110的用户透过显示器114观看真实世界,并且同时向用户显示视觉人工现实内容。HMD 110可以包括可以向用户提供音频人工现实内容的音频设备。HMD 110可以包括能够捕获环境图像和视频的一个或更多个相机。HMD 110可以包括眼睛跟踪系统,以跟踪佩戴HMD 110的用户的辐辏运动。增强现实系统100B还可以包括控制器,该控制器包括触控板和一个或更多个按钮。控制器可以接收来自用户的输入,并将该输入中继到计算系统120。控制器还可以向用户提供触觉反馈。计算系统120可以通过线缆连接或无线连接连接到HMD 110和控制器。计算系统120可以控制HMD 110和控制器,以向用户提供增强现实内容并从用户接收输入。计算系统120可以是独立的主计算机系统、与HMD 110集成的机载计算机系统、移动设备或能够向用户提供人工现实内容并从用户接收输入的任何其他硬件平台。
图1C示出了显示引擎130的示例架构100C。在特定实施例中,如在本公开中描述的过程和方法可以在显示引擎130中(例如,在显示块135中)体现或实现。显示引擎130可以包括例如但不限于纹理存储器132、变换块133、像素块134、显示块135、输入数据总线131、输出数据总线142等。在特定实施例中,显示引擎130可以包括一个或更多个图形管线,以用于生成要在显示器上渲染的图像。例如,显示引擎可以使用图形管线来基于主帧图像和由一个或更多个眼睛跟踪传感器测量的用户的视点或视角来生成子帧图像系列。主帧图像可以以30Hz-90Hz的主帧速率生成和/或加载到系统中,并且子帧速率可以以1kHz-2kHz的子帧速率生成。在特定实施例中,显示引擎130可以包括用于用户左眼和右眼的两个图形管线。图形管线中的一个可以包括或者可以在纹理存储器132、变换块133、像素块134、显示块135等上实现。显示引擎130可以包括用于另一图形管线的另一组变换块、像素块和显示块。图形管线可以由显示引擎130的控制器或控制块(未示出)控制。在特定实施例中,纹理存储器132可以被包括在控制块内,或者可以是控制块外部但在显示引擎130本地的存储器单元。显示引擎130的一个或更多个组件可以被配置为经由高速总线、共享存储器或任何其他合适的方法进行通信。该通信可以包括数据以及控制信号、中断和/或其他指令的传输。例如,纹理存储器132可以被配置为通过输入数据总线211接收图像数据。作为另一个例子,显示块135可以通过输出数据总线142向显示系统140发送像素值。在特定实施例中,显示系统140可以包括三个颜色通道(例如,114A、114B、114C)以及相应的显示驱动器IC(DDI)142A、142B和143B。在特定实施例中,显示系统140可以包括例如但不限于发光二极管(LED)显示器、有机发光二极管(OLED)显示器、有源矩阵有机发光二极管(AMLED)显示器、液晶显示器(LCD)、微型发光二极管(μLED)显示器、电致发光显示器(ELD)或任何合适的显示器。
在特定实施例中,显示引擎130可以包括控制器块(未示出)。控制块可以通过一个或更多个数据总线从显示引擎130外部的控制器接收数据和控制包,诸如位置数据和表面信息。例如,控制块可以从身体可穿戴的计算系统接收输入流数据。输入数据流可以包括以30Hz-90Hz的主帧速率生成的主帧图像系列。包括主帧图像的输入流数据可以被转换成所需的格式并被存储在纹理存储器132中。在特定实施例中,控制块可以从身体可穿戴的计算系统接收输入,并初始化显示引擎中的图形管线,以准备和最终确定用于在显示器上渲染的图像数据。数据和控制包可以包括信息,该信息涉及例如包括纹理数据、位置数据的一个或更多个表面以及附加的渲染指令。控制块可以根据需要向显示引擎130的一个或更多个其他块分发数据。控制块可以启动图形管线来处理要显示的一个或更多个帧。在特定实施例中,用于双眼显示系统的图形管线可以各自包括控制块或共享相同的控制块。
在特定实施例中,变换块133可以确定在人工现实场景中将要显示的表面的初始可见性信息。一般来说,变换块133可以从屏幕上的像素定位(location)投射光线,并产生要发送到像素块134的滤光器命令(例如,基于双线性或其他类型的插值技术的过滤)。变换块133可以执行从(例如,使用头戴式装置的惯性测量单元、眼睛跟踪传感器和/或任何合适的跟踪/定位算法(诸如同步定位和建图(simultaneous localization and mapping,SLAM))确定的)用户的当前视点到表面所在的人工场景中的光线投射,并且可以产生图块(tile)/表面对144以发送到像素块134。在特定实施例中,变换块133可以包括如下四级管线。光线投射器可以发出对应于一个或更多个对齐的像素的阵列的光线束,该阵列称为图块(例如,每个图块可以包括16×16的对齐的像素)。根据一个或更多个畸变网格(distortion mesh),光线束可以在进入人工现实场景之前被扭曲。畸变网格可以被配置为校正至少由于头戴式装置系统的眼睛显示系统引起的几何畸变效应。变换块133可以通过将每个图块的边界框与表面的边界框进行比较来确定每个光线束是否与场景中的表面相交。如果光线束与对象不相交,则它可能会被丢弃。在检测到图块-表面的相交之后,可以将对应的图块/表面对传递到像素块134。
在特定实施例中,像素块134可以基于图块-表面对来确定像素的颜色值或灰度值。从被纹理存储器132接收并且存储的表面的纹理数据中可以采样每个像素的颜色值。像素块134可以从变换块133接收图块-表面对,并且可以使用一个或更多个滤光器块来调度双线性过滤。对于每个图块-表面对,像素块134可以使用对应于投射的图块与表面相交之处的颜色值,采样图块内的像素的颜色信息。像素块134可以基于检索到的纹理(例如,使用双线性插值)来确定像素值。在特定实施例中,像素块134可以为每个像素单独处理红色分量、绿色分量和蓝色分量。在特定实施例中,显示器可以包括用于双眼显示系统的两个像素块。双眼显示系统的两个像素块可以独立工作并且彼此并行工作。像素块134然后可以将其颜色确定(例如,像素138)输出到显示块135。在特定实施例中,当两个或更多个表面具有重叠区域时,像素块134可以将两个或更多个表面合成为一个表面。对于重采样过程,合成表面可能需要较少的计算资源(例如,计算单元、存储器、功率等)。
在特定实施例中,显示块135可以从像素块134接收像素颜色值,将数据的格式转换成更适合于显示器的扫描线输出,对像素颜色值应用一个或更多个亮度校正,并准备输出到显示器的像素颜色值。在特定实施例中,显示块135可以每个都包括行缓冲器,并且可以处理和存储从像素块134接收的像素数据。像素数据可以被组织成四边形(例如,每个四边形2×2个像素)和图块(例如,每个图块16×16个像素)。显示块135可以将像素块134所生成的图块-级(tile-order)像素颜色值转换成物理显示器可能需要的扫描线或行-级数据。亮度校正可以包括任何所需的亮度校正、伽马映射和抖动。显示块135可以将校正的像素颜色值直接输出到物理显示器(例如,瞳孔显示器)的驱动器,或者可以以各种格式将像素值输出到显示引擎130外部的块。例如,头戴式装置系统的眼睛显示系统可以包括附加的硬件或软件,以进一步定制后端颜色处理,支持显示器更宽的接口,或者优化显示速度或保真度。
在特定实施例中,本公开中描述的抖动方法和过程(例如,空间抖动方法、时间抖动方法和时-空方法)可以在显示引擎130的显示块135中体现或实现。在特定实施例中,显示块135可以包括用于每个颜色通道的基于模型的抖动算法或抖动模型,并将相应颜色通道的抖动结果发送到显示系统140的相应显示驱动器IC(例如,142A、142B、142C)。在特定实施例中,在将像素值发送到相应显示驱动器IC(例如,142A、142B、142C)之前,显示块135可以进一步包括用于校正例如像素不均匀性、LED不理想性、波导不均匀性、显示缺陷(例如,死像素(dead pixels))等的一个或更多个算法。
在特定实施例中,图形应用(例如,游戏、地图、内容提供应用等)可以构建场景图,该场景图与给定的视图位置和时间点一起用于生成图元(primitive)以在GPU或显示引擎上进行渲染。场景图可以定义场景中对象之间的逻辑和/或空间关系。在特定实施例中,显示引擎130还可以生成并存储场景图,该场景图是完整应用场景图的简化形式。简化的场景图可用于指定表面之间的逻辑和/或空间关系(例如,由显示引擎130渲染的图元,诸如在3D空间中定义的四边形或轮廓,其具有基于由应用渲染的主帧生成的相对应的纹理)。存储场景图允许显示引擎130将场景渲染到多个显示帧,并且针对当前视点(例如,头部位置)、当前对象位置(例如,它们可能相对于彼此移动)和每个显示帧改变的其他因素来调整场景图中的每个元素。此外,基于场景图,显示引擎130还可以针对显示子系统引入的几何和颜色畸变进行调整,以及然后将对象合成在一起以生成帧。存储场景图允许显示引擎130以期望的高帧速率近似完成完整渲染的结果,而实际上以明显更低的速率运行GPU或显示引擎130。
图1D示出了用于生成显示图像数据的显示引擎130的示例图形管线100D。在特定实施例中,图形管线100D可以包括可见性步骤152,在该步骤中显示引擎130可以确定从身体可穿戴的计算系统接收的一个或更多个表面的可见性。可见性步骤152可以由显示引擎130的变换块(例如,图1C中的2133)来执行。显示引擎130可以从身体-可穿戴的计算系统接收(例如,通过控制块或控制器接收)输入数据151。输入数据151可以包括来自身体可穿戴计算系统的一个或更多个表面、纹理数据、位置数据、RGB数据以及渲染指令。输入数据151可以包括每秒30帧-90帧(FPS)的主帧图像。主帧图像可以具有例如每像素24位的色深。显示引擎130可以处理接收到的输入数据151并将其保存在纹理存储器132中。接收到的数据可以被传递到变换块133,变换块133可以确定要显示的表面的可见性信息。变换块133可以为屏幕上的像素定位投射光线,并产生要发送到像素块134的滤光器命令(例如,基于双线性或其他类型的插值技术的过滤)。变换块133可以从(例如,使用头戴式装置的惯性测量单元、眼睛跟踪器和/或任何合适的跟踪/定位算法(诸如同步定位和建图(SLAM))确定的)用户的当前视点执行到表面所在的人工场景中的光线投射,并且产生要发送到像素块134的表面-图块对。
在特定实施例中,图形管线100D可以包括重采样步骤153,其中显示引擎130可以从图块-表面对确定颜色值以产生像素颜色值。重采样步骤153可以由显示引擎130在图1C中的像素块134执行。像素块134可以从变换块133接收图块-表面对,并可以调度双线性过滤。对于每个图块-表面对,像素块134可以使用对应于投射的图块与表面相交之处的颜色值,采样图块内的像素的颜色信息。像素块134可以基于检索到的纹理(例如,使用双线性插值)确定像素值,并将确定的像素值输出到相应显示块135。
在特定实施例中,图形管线100D可以包括混合步骤154、校正和抖动步骤155、串行化步骤156等。在特定实施例中,混合步骤154、校正和抖动步骤155和串行化步骤156可以由显示引擎130的显示块(例如,图1C中的135)执行。显示引擎130可以混合用于显示内容渲染的显示内容,对像素颜色值应用一个或更多个亮度校正,执行一个或更多个抖动算法以在空间上和时间上抖动量化误差,串行化用于物理显示器的扫描线输出的像素值,并生成适合于显示系统140的显示数据159。显示引擎130可以向显示系统140发送显示数据159。在特定实施例中,显示系统140可以包括用于RGB三个颜色通道(例如,144A、144B、144C)的像素的三个显示驱动器IC(例如,142A、142B、142C)。
图2A示出了示例扫描波导显示器200A。在特定实施例中,AR/VR系统的头戴式显示器(HMD)可以包括近眼显示器(NED),近眼显示器(NED)可以是扫描波导显示器200A。扫描波导显示器200A可以包括光源组件210、输出波导204、控制器216等。扫描波导显示器200A可以为双眼或单眼提供图像。出于说明的目的,图3A示出了与单只眼睛202相关联的扫描波导显示器200A。另一个扫描波导显示器(未示出)可以向用户的另一只眼睛提供图像光,并且这两个扫描波导显示器可以共享一个或更多个组件或者可以是独立的。光源组件210可以包括光源212和光学系统214。光源212可以包括可以使用光发射器阵列生成图像光的光学部件。光源212可以生成图像光,包括例如但不限于红色图像光、蓝色图像光、绿色图像光、红外图像光等。光学系统214可以对光源212生成的图像光执行许多光学过程或操作。由光学系统214执行的光学过程或操作可以包括,例如,但不限于,光聚焦、光组合、光调节、扫描等。
在特定实施例中,光学系统214可以包括光组合组件、光调节组件、扫描镜组件等。光源组件210可以生成图像光219并将其输出到输出波导204的耦合元件218。输出波导204可以是能够向用户眼睛202输出图像光的光波导。输出波导204可以在一个或更多个耦合元件218处接收图像光219,并将接收到的图像光引导到一个或更多个去耦元件206。耦合元件218可以是例如但不限于衍射光栅、全息光栅、可以将图像光219耦合到输出波导204中的任何其他合适的元件或它们的组合。作为示例而非限制,如果耦合元件350是衍射光栅,则可以选择衍射光栅的节距,以允许发生全内反射,并且图像光219在内部朝着去耦元件206传播。衍射光栅的节距可以是在300nm至600nm的范围内。去耦元件206可以将全内反射图像光从输出波导204去耦。去耦元件206可以是例如但不限于衍射光栅、全息光栅、可以将图像光从输出波导204去耦的任何其他合适的元件或者它们的组合。作为示例而非限制,如果去耦元件206是衍射光栅,则可以选择衍射光栅的节距以使入射图像光离开输出波导204。通过改变进入耦合元件218的图像光219的取向和位置,可以控制从输出波导204离开的图像光的取向和位置。衍射光栅的节距可以是在300nm至600nm的范围内。
在特定实施例中,输出波导204可以由可以促进图像光219的全内反射的一种或更多种材料组成。输出波导204可以由一种或更多种材料组成,该一种或更多种材料包括例如但不限于硅、塑料、玻璃、聚合物或它们的某种组合。输出波导204可以具有相对较小的形状因子。作为示例而非限制,输出波导204可以沿X维度约50mm宽,沿Y维度约30mm长,以及沿Z维度约0.5mm-1mm厚。控制器216可以控制光源组件210的扫描操作。控制器216可以至少基于用于渲染一个或更多个图像的一个或更多个显示指令来确定用于光源组件210的扫描指令。显示指令可以包括图像文件(例如位图),并且可以从例如AR/VR系统的控制台或计算机接收。扫描指令可以由光源组件210使用来生成图像光219。扫描指令可以包括,例如,但不限于,图像光源类型(例如,单色光源、多色光源)、扫描速率、扫描装置取向、一个或更多个照明参数或它们的某种组合。控制器216可以包括硬件、软件、固件或支持控制器216功能的任何合适部件的组合。
图2B示出了扫描波导显示器200B的示例扫描操作。光源220可以包括具有多行和多列的光发射器222的阵列(如小图(inset)中的点所示)。由光源220发射的光223可以包括由每列光发射器222发射的一组准直光束。在到达反射镜224之前,光223可以通过不同的光学设备(诸如调节组件(未示出))调节。在扫描操作期间,反射镜224可以通过围绕轴225旋转将来自光源220的光223反射并投射到像场227。反射镜224可以是微机电系统(MEMS)反射镜或任何其他合适的反射镜。当反射镜224围绕轴225旋转时,光223可以被投射到像场227的不同部分,如以实线示出的光226A的反射部分和以虚线示出的光226B的反射部分。
在特定实施例中,随着反射镜224围绕轴225旋转以在不同方向投射光226A-226B,像场227可以接收光226A-226B。例如,像场227可以对应于图2A中的耦合元件218的一部分或去耦元件206的一部分。在特定实施例中,像场227可以包括耦合元件206的表面。当光行进通过输出波导220时,在像场227上形成的图像可以被放大。在特定实施例中,像场227可以不包括实际的物理结构,而是包括图像光被投射到其上以形成图像的区域。像场227也可以被称为扫描场。当光223被投射到像场227的区域时,像场227的区域可以被光223照亮。像场227可以包括具有多行和多列的像素定位229的矩阵(由小图228中的块表示)。像素定位229可以在像场227的区域中在空间上被限定,其中像素定位对应于单个像素。在特定实施例中,像场227中的像素定位229(或像素)可以不包括单独的物理像素元素。相反,像素定位229可以是在像场227内定义并将像场227划分成像素的空间区域。像素定位229的大小和定位可以取决于来自光源220的光223的投射。例如,在反射镜224的给定旋转角度,从光源220发射的光束可以落在像场227的区域上。因此,像场227的像素定位229的大小和定位可以基于每个投射光束的定位来定义。在特定实施例中,像素定位229可以在空间上细分为子像素(未示出)。例如,像素定位229可以包括红色子像素、绿色子像素和蓝色子像素。红色子像素、绿色子像素和蓝色子像素可以对应于一个或更多个红色光束、绿色光束和蓝色光束被投射到的相应定位。在这种情况下,像素的颜色可以基于像素的子像素的时间和/或空间平均值。
在特定实施例中,光发射器222可以以反射镜224的特定旋转角度照射像场227的一部分(例如,像场227上的多个像素定位229的特定子集)。在特定实施例中,光发射器222可以被布置和间隔开,使得来自每个光发射器222的光束被投射到相对应的像素定位229上。在特定实施例中,光发射器222可以包括多个发光元件(例如,微型LED),以允许来自光发射器222的子集的光束被投射到相同的像素定位229。换句话说,多个光发射器222的子集可以一次共同照亮单个像素定位229。作为示例而非限制,包括八个发光元件的一组光发射器可以被布置成一行,以在给定的取向角度下利用反射镜224照射单个像素定位229。
在特定实施例中,光源220的光发射器222的行数和列数可以与像场227中的像素定位229的行数和列数相同或不同。在特定实施例中,一行中的光发射器222的数量可以等于像场227的一行中的像素定位229的数量,而光发射器222可以具有比像场227中的像素定位229的数量更少的列。在特定实施例中,光源220可以具有与像场227中的像素定位229的列数相同的光发射器222的列数,但是具有更少的行。作为示例而非限制,光源220可以具有大约1280列光发射器222,其可以与像场227的像素定位229的列数相同,但是只有少数几行光发射器222。光源220可以具有从光发射器222的第一行到最后一行测量的第一长度L1。像场530可以具有从像场227的第一行(例如,行1)到最后一行(例如,行P)测量的第二长度L2。L2可能比L1大(例如,L2比L1大50到10000倍)。
在特定实施例中,像素定位229的行数可以大于光发射器222的行数。显示设备200B可以使用反射镜224在不同的时间将光223投射到不同的像素行。当反射镜520旋转并且光223扫描通过像场227时,可以在像场227上形成图像。在一些实施例中,光源220也可以具有比像场227更少的列数。反射镜224可以二维旋转以用光填充像场227,例如,使用光栅型扫描过程向下扫描行,然后移动到像场227中的新列。反射镜224的完整旋转周期可以被称为扫描周期,该扫描周期可以是整个像场227在其期间被完全扫描的预定周期时间。在显示设备200B的光生成与反射镜224的旋转同步时,像场227的扫描可以通过反射镜224确定和控制。作为示例而非限制,在一个扫描周期期间,反射镜224可以在初始位置开始将光投射到像场227的行1,并且旋转到将光投射到像场227的行P的最后位置,以及然后旋转回到初始位置。可以逐扫描周期在像场227上形成图像(例如,帧)。显示设备200B的帧速率可以对应于每秒的扫描周期数。随着反射镜224旋转,光可以扫描通过像场以形成图像。给定像素定位229的实际颜色值和光强度或亮度可以是在扫描周期期间照射像素定位的各种光束的颜色在时间上的和。在完成扫描周期之后,反射镜224可以恢复到初始位置,以将光投射到像场227的前几行,同时新的一组驱动信号被馈送到光发射器222。随着反射镜224循环旋转,可以重复相同的过程,以允许在扫描场227中形成不同的图像帧。
图3A示出了示例2D微型LED波导显示器300A。在特定实施例中,显示器300A可以包括长形波导配置302,其可以足够宽或足够长以将图像投射到用户的双眼。波导配置302可以包括覆盖用户双眼的去耦区域304。为了通过波导配置302向用户的双眼提供图像,可以在波导配置302的顶表面中提供多个耦合区域306A-306B。耦合区域306A和306B可以包括多个耦合元件,以分别从光发射器阵列组308A和308B接收图像光。每个发射器阵列组308A-308B可以包括多个单色发射器阵列,多个单色发射器阵列包括例如但不限于红色发射器阵列、绿色发射器阵列和蓝色发射器阵列。在特定实施例中,发射器阵列组308A-308B还可以包括白色发射器阵列或发射其他颜色或任何多种颜色的任何组合的发射器阵列。在特定实施例中,波导配置302可以具有发射器阵列组308A和308B,它们覆盖由分隔线309A划分的去耦区域304的大致相同的部分。在特定实施例中,发射器阵列组308A和308B可以不对称地将图像提供到波导配置302的波导中,如由分隔线309B划分的。例如,发射器阵列组308A可以向去耦区域304中的超过一半的区域提供图像。在特定实施例中,发射器阵列组308A和308B可以布置在波导配置302的相对侧(例如,间隔180°),如图3B所示。在其他实施例中,发射器阵列组308A和308B可以以任何合适的角度布置。波导配置302可以是平面的或者可以具有弯曲的横截面形状,以更好地适合用户的面部/头部。
图3B示出了用于2D微型LED波导显示器的示例波导配置300B。在特定实施例中,波导配置300B可以包括耦合到波导342的投影仪设备350。投影仪设备320可以包括固定到支撑结构354(例如,印刷电路板或其他合适的支撑结构)的多个光发射器352(例如,单色发射器)。波导342可以以具有D1距离(例如,大约50μm到大约500μm)的气隙与投影仪设备350分开。由投影仪设备350投射的单色图像可以穿过气隙朝向波导342。波导342可以由玻璃或塑料材料形成。波导342可以包括耦合区域330,该耦合区域330包括多个耦合元件334A-334C,以用于接收从投影仪设备350发射的光。波导342可以包括去耦区域,该去耦区域在顶表面318A上具有多个去耦元件336A,以及在底表面318B上具有多个去耦元件336B。波导342内在去耦元件336A和336B之间的区域可以被称为传播区域310,其中从投影仪设备350接收并通过耦合元件334耦合到波导342中的图像光可以在波导342内横向传播。
耦合区域330可以包括耦合元件(例如,334A、334B、334C),该耦合元件被配置和定尺寸为耦合预定波长(例如,红色、绿色、蓝色)的光。当白光发射器阵列被包括在投影仪设备350中时,落入预定波长的白光的部分可以被耦合元件334A-334C中的每一个耦合。在特定实施例中,耦合元件334A-334B可以是尺寸被设计成耦合预定波长的光的光栅(例如布拉格光栅)。在特定实施例中,每个耦合元件的光栅可以呈现与预定光波长相关联的光栅之间的分离距离,并且每个耦合元件可以具有不同的光栅分离距离。因此,如果白光发射器阵列被包括在投影仪设备350中,则每个耦合元件(例如,334A-334C)可以耦合来自投影仪设备350的白光发射器阵列的有限部分的白光。在特定实施例中,每个耦合元件(例如,334A-334C)可以具有相同的光栅分离距离。在特定实施例中,耦合元件334A-334C可以是或包括多路复用耦合器。
如图3B所示,红色图像320A、蓝色图像320B和绿色图像320C可以分别通过耦合元件334A、334B、334C耦合到传播区域310中,并且可以开始在波导342内横向穿过。在光接触去耦元件336A之后,一部分光可以从波导342投射出以用于一维光瞳复制(pupilreplication),以及在光接触去耦元件336A和336B两者之后,一部分光可以从波导342投射出以用于二维光瞳复制。在二维光瞳复制中,光可以在去耦元件336A的图案与去耦元件336B的图案相交的定位处从波导342投射出。未被去耦元件336A从波导342投射出的那部分光可以被去耦元件336B反射。去耦元件336B可以将所有入射光反射回到去耦元件336A。因此,波导342可以将红色图像320A、蓝色图像320B和绿色图像320C组合成可以称为光瞳复制322的多色图像实例。多色光瞳复制322可以被投射到用户的眼睛,用户的眼睛可以将光瞳复制322解释为全色图像(例如,除了红色、绿色和蓝色之外还包括其他颜色的图像)。波导342可以产生数十或数百个光瞳复制322,或者可以产生单个复制322。
在特定实施例中,AR/VR系统可以使用扫描波导显示器或2D微型LED显示器来向用户显示AR/VR内容。为了使AR/VR系统小型化,显示系统可能需要使像素电路的空间小型化,并且对于显示器可能具有有限可用位数。显示器中可用位数可能会限制显示器的色深或灰度级,从而限制显示图像的质量。此外,用于AR/VR系统的波导显示器可能具有跨越所有显示像素的不均匀性问题。像素不均匀性的补偿操作可能导致图像灰度的损失,并进一步降低显示图像的质量。例如,具有8位像素(即,256灰度级)的波导显示器在补偿不均匀性(例如,8∶1波导不均匀性、0.1%死微型LED像素和20%微型LED强度不均匀性)之后,可以等效地具有6位像素(即,64灰度级)。
为了提高显示的图像质量,具有有限色深或灰度级的显示器可以使用空间抖动来将量化误差扩散到相邻像素,并生成色深或灰度级增加的错觉。为了进一步增加色深或灰度级,显示器可以生成具有较少灰度级位的时间子帧图像系列,以给出具有更多灰度级位的目标图像的错觉。每个子帧图像可以在该子帧图像内使用空间抖动技术来抖动。子帧图像系列的平均值可以对应于观看者所感知的图像。例如,为了显示具有8位像素(即256灰度级)的图像,系统可以使用四个子帧图像来表示8位目标图像,每个子帧图像具有6位像素(即64灰度级)。作为另一个示例,具有8位像素(即256灰度级)的图像可以由16个子帧图像表示,每个子帧图像具有4位像素(即16灰度级)。这将允许显示系统用较少灰度级(例如,6位像素或4位像素)的像素电路和支持硬件来渲染更多灰度级(例如,8位像素)的图像,并因此减小显示系统的空间和尺寸。
图4A示出了由具有较小色深的子帧图像系列表示的示例目标图像400A。图4B-图4E示出了使用分割量化和空间抖动方法生成用以表示目标图像400A的四个示例子帧图像400B-400E。目标图像400A可以具有比物理显示器更多的灰度级位。子帧图像400B-400E可以具有对应于物理显示器的灰度级位,其少于目标图像400A,并且可以用于使用观看者感知的时间平均值来表示目标图像。通常,如果目标图像具有M位灰度级位,子帧图像具有K位灰度级位,并且子帧图像系列包括N个子帧图像,则子帧图像和目标图像可以具有满足以下条件的关系:2M=N×2K。作为示例而非限制,图像400A可以具有3位灰度级位(即8灰度级),并且4个子帧图像400B-400E可以具有1位灰度级位(即2灰度级),满足:23=4×21。为了生成每个子帧图像,可以根据对应于子帧图像的加权值范围的一系列分割值范围来量化目标图像中每个像素的值。每个子帧图像可以对应于目标图像的像素范围的分割部分(例如,四分之一)。每个子帧图像的像素值范围可以根据目标图像像素范围的相对应的分割部分来加权。
图4F示出了用于将目标像素值442A映射到四个子帧图像400B-400E的加权像素值范围的示例过程。目标图像400A的3位像素可以具有[0,7]的值范围。四个子帧图像400B-400E的四个加权像素值范围可以各自对应于目标图像400A的像素范围的四分之一。子帧图像400B-400E可以各自捕获目标图像400A的不同级别的能量位。例如,第一子帧图像400B可以捕获目标图像的最低能量位。第二子帧图像、第三子帧图像和第四子帧图像400C-400E中的每一个相比于在先子帧图像捕获目标图像的更高能量位。因而,目标图像400A的像素值410可以被量化并映射到四个子帧图像400B-400E的相对应的加权像素范围。例如,对于目标图像400A中具有值3.4的像素422A,四个子帧图像400B-400E的相对应的量化像素值可以是1、1、0和0,表示加权量化像素值1、3、4和6。在每个子帧图像中,可以使用空间抖动方法将量化误差抖动到相邻像素,而不考虑显示器的时间特性。
然而,使用这种分割量化和空间抖动方法,即使所有子帧图像随时间的平均亮度近似等于目标图像,子帧400B-400E也可以具有非常不同的亮度,如图4B-图4E所示。例如,捕获较低能量位的子帧图像400B可能非常亮,因为目标图像的大多数像素值可能超过子帧400B的最大像素值。捕获高能量位的子帧图像400E可能非常暗淡,因为目标图像400A的大部分像素值可能低于子帧400E的像素值范围。这对于诸如LCD/LED显示器之类的传统显示器来说可能工作得很好,因为用户的眼睛在子帧图像之间不会发生显著变化。然而,由于在佩戴AR/VR头戴式装置时用户的眼睛和头部位置可能在子帧图像之间发生显著变化,因此会在AR/VR系统中随着时间的推移产生诸如闪光或亮度不均匀的时间伪影,并且会对AR/VR系统上显示的图像质量和用户体验产生负面影响。
图5A示出了用于生成具有更均匀亮度的子帧图像系列以表示目标图像的示例时空抖动模型500A。在特定实施例中,系统可以使用时空抖动模型来在时域中将量化误差抖动到后续子帧的对应像素。例如,系统可以确定子帧图像系列中的第(n-1)个子帧图像的像素的量化误差,并将该量化误差抖动到子帧图像系列中的第n个子帧图像的对应像素。通过该时间抖动过程,系统可以生成在子帧图像中具有更均匀分布的能量的子帧图像。即使用户在子帧图像之间显著改变眼睛或/和头部位置,在子帧图像之间诸如闪光或亮度不均匀的伪影也可以被减少或消除,这是因为每个子帧图像具有近似相同的亮度。在本公开中,术语“子帧图像”可以指用于表示目标图像的图像系列中的图像。然而,值得注意的是,“子帧图像”可以是任何类型的图像或任何格式的任何合适的图像。
在特定实施例中,系统可以生成或接收要向用户显示的目标图像。例如,目标图像可以是来自电影、游戏、应用等的AR/VR内容的场景。目标图像可以是任何合适的格式,并且可以具有每像素或每颜色分量的任何合适的色深或灰度级位(例如,32位、24位、16位、8位、4位、2位)。该系统可以使用时空抖动过程来生成子帧图像系列,这些子帧图像可以比目标图像具有更少的灰度级位,并且使用子帧图像系列来表示目标图像。子帧图像系列的时间平均值可以近似等于所表示的目标图像。由于子帧图像系列的观看者感知的是子帧图像系列的时间平均值,所以系统可以使用在时域中顺序显示的子帧图像系列来有效地表示或近似目标图像。通常,如果目标图像具有M位灰度级位,如果子帧图像具有K位灰度级位,并且如果子帧图像系列包括N个子帧图像,则子帧图像和目标图像可以具有满足以下条件的关系:2M=N×2K。作为示例,具有3位灰度级位(即8灰度级)的目标图像可以由4个具有1位灰度级位(即2灰度级)的子帧图像表示,满足:23=4×21。作为另一个示例,具有8位灰度级位(即256灰度级)的目标图像可以由四个子帧图像表示,每个子帧图像具有6位灰度级位(即64灰度级)。作为又一示例,具有8位灰度级位(即,256灰度级)的图像可以由16个具有4位灰度级位(即,16灰度级)的子帧图像来表示。
在特定实施例中,系统可以通过基于目标图像的对应像素值确定每个子帧图像的每个像素的值(例如,逐个和逐行)来生成子帧图像系列。该系统可以基于目标图像的对应像素值来确定子帧图像的像素的目标像素值,并使用时空抖动方法来确定该像素要显示的对应量化像素值或显示像素值。系统可以从第一行的第一个像素开始,并扫描通过第一行(例如,从左到右)。然后,系统可以移动到目标图像的下一行像素,并重复扫描过程,直到生成完整的子帧图像。然后,系统可以移动到下一个子帧图像,并且可以按顺序(例如,从子帧图像1到子帧图像N)生成子帧图像系列。
在特定实施例中,系统可以为当前子帧图像的当前像素选择或生成目标像素值,该当前子帧图像在用于表示目标图像的子帧图像系列中。目标像素值可以对应于目标图像的对应像素值。在特定实施例中,目标像素值可以等于目标图像的对应像素值。在特定实施例中,目标像素值可以等于目标图像的对应像素值乘以与图像系列中的图像相关联的序列号的结果。对于给定的目标像素值,系统可以为子帧图像系列中的当前子帧图像的当前像素确定误差修正的目标像素值U(i,j)。误差修正的目标像素值U(i,j)可以基于目标像素值和从在先子帧图像抖动的第一量化误差值来确定。例如,误差修正的目标像素值U(i,j)可以通过使用加法模块502将(从在先子帧图像抖动的)第一量化误差值与目标像素值相加来确定。在特定实施例中,当目标像素值等于目标图像的对应像素值时,误差修正的目标像素值U(i,j)可以通过下式计算:RGB+E(i,j,n-1),其中RGB是目标图像的对应像素值,E(i,j,n-1)是从在先子帧图像抖动的第一量化误差。在特定实施例中,当目标像素值等于目标图像的对应像素值乘以与图像系列中的图像相关联的序列号n的结果时,误差修正的目标像素值U(i,j)可以通过下式计算:n×RGB+E(i,j,n-1)。对于子帧图像系列中的第一子帧图像,馈入误差修正的目标像素值的量化误差E(i,j,n-1)可以为零,因为没有在先子帧图像。
在特定实施例中,在已经确定了误差修正的目标像素值之后,系统可以通过将误差修正的目标像素值U(i,j)投射到与显示系统相关联的显示色域504来确定校正目标像素值G(i,j)。作为示例而非限制,投射过程可以包括将误差修正的目标像素值U(i,j)裁剪到与显示色域504相关联的值范围,以确保校正目标像素值G(i,j)的颜色将在显示色域504的有效值范围内。作为另一个示例,系统可以使用以下方案:像素值沿着恒定色调的线被投射回来,直到像素值在色域内。作为又一示例,系统可以生成与色域外像素和亮度轴的中间相交的线,并沿着该线投射。在已经确定了校正目标像素值G(i,j)之后,系统可以使用矢量量化器506来量化校正目标像素值G(i,j)并确定量化像素值C(i,j,n),以便由子帧图像系列中具有序号n的当前子帧图像的像素来显示。量化像素值C(i,j,n)可以通过将校正目标像素值G(i,j)映射到由子帧图像的K位灰度级位确定的像素值范围来确定。量化像素值C(i,j,n)可以是在K位二进制数的值范围内与校正目标像素值G(i,j)最接近的K位二进制数。在特定实施例中,系统可以将目标像素值的整个范围映射到与子帧图像的K位灰度级位相对应的K位二进制数的整个范围(而不是如图4F所述,将目标像素值范围的分割部分映射到每个子帧图像的对应范围)。
在特定实施例中,在已经确定量化像素值C(i,j,n)之后,系统可以确定多个量化像素值的聚合表示,该多个量化像素值包括当前图像的当前像素的量化像素值和一个或更多个在先图像的对应像素的量化像素值,或包括由当前图像的当前像素和一个或更多个在先图像的对应像素显示的量化像素值。在特定实施例中,当目标像素值等于目标图像的对应像素值乘以与图像系列中的图像相关联的序列号n得出的结果时,量化像素值的聚合表示可以是使用求和模块508对根据
Figure BDA0003473443840000251
确定的抖动量化像素值的和,其中n是子帧图像系列中当前子帧图像的序列号。在特定实施例中,当目标像素值等于目标图像的对应像素值时,量化像素值的聚合表示可以是量化像素值的数量的平均值(包括当前图像的当前像素的量化像素值和一个或更多个在先图像的对应像素的量化像素值,或包括由当前图像的当前像素和一个或更多个在先图像的对应像素显示的量化像素值)。量化像素值的聚合表示可以捕获关于当前像素显示了多大的光强度的时间信息。量化像素值的聚合表示可以对应于由子帧图像系列的观看者感知的有效像素值。一个或更多个在先子帧图像可以对应于已经抖动的子帧图像,包括当前子帧图像和当前子帧图像之前的所有子帧图像。
在特定实施例中,在量化像素值的聚合表示已经被确定之后,系统可以基于量化像素值的聚合表示和误差修正的目标像素值来确定当前子帧图像的当前像素的量化误差值E(i,j)。当前帧的当前像素的量化误差值E(i,j)可以通过使用减法模块510从当前子帧图像的当前像素的误差修正的目标像素值U(i,j)中减去量化像素值的聚合表示来确定。量化误差E(i,j)可以对应于当前像素或当前像素的颜色分量(例如,红色、绿色、蓝色)。
图5B示出了用于在时域中将量化误差在时间上从子帧图像系列中的当前子帧图像抖动到下一子帧图像的示例过程。在当前子帧图像的当前像素的量化误差值E(i,i)已经被确定之后,量化误差值E(i,i)可以被馈送到时空抖动模型的输入端,以用于确定下一个子帧图像的对应像素的值。量化误差值E(i,i)可用于确定下一子帧图像的对应像素的误差修正的目标像素值。换句话说,当前子帧图像的当前像素的量化误差可以被抖动到子帧图像系列中的下一个后续子帧图像的对应像素。对于总共具有N个数量的子帧图像的子帧图像系列,第(n-1)个子帧图像(例如,520A)中的像素的量化误差可以被抖动到第n个子帧图像(例如,520B)的对应像素,直到所有N个子帧图像都已被抖动。对于子帧图像系列中的第一个子帧图像,由于第一个子帧图像没有在先子帧图像,所以馈送到误差修正的目标像素值中的量化误差可以为零。
在特定实施例中,系统可以在空间上和时间上抖动量化误差,以生成具有更均匀亮度分布的子帧图像系列。例如,系统可以将当前子帧图像的当前像素的量化误差的至少一部分在时间上抖动到下一个子帧,并且将量化误差的剩余部分在空间上抖动到当前子帧图像内的当前像素的相邻像素。要在时间和空间上抖动的量化误差的比例可以是预定的,或者可以由空间或时间误差抖动模型来确定。在特定实施例中,系统可以使用Floyd-Steinberg模型针对空间和时间抖动操作来分割量化误差。
图6A示出了包括Floyd-Steinberg模型610的示例时空抖动模型600。在特定实施例中,系统可以使用空间抖动模型来将当前子帧图像的当前像素的量化误差E(i,j)分别分成用于时间和空间抖动的两个或更多个部分,而不是将整个量化误差E(i,j)馈送到时空抖动模型以确定下一子帧图像的对应像素的值。系统可以在时域中将量化误差的第一部分抖动到下一个子帧图像的对应像素中,并将量化误差的第二部分或/和其他部分抖动到同一子帧图像内的当前像素的一个或更多个相邻像素中。
作为示例而非限制,系统可以将量化误差E(i,j)馈送到Floyd-Steinberg模型610中,并确定对应于当前像素的四个相邻或邻近像素的四个空间误差(例如,E(i,j+1)、E(i+1,j-1)、E(i+1,j)、E(i+1,j+1))。例如,系统可以确定对应于第一相邻像素的第一空间误差值E(i,j+1),该第一相邻像素是当前像素的相同行且下一列的像素。第一空间误差值可以通过使用E(i,j)×7/16来确定。系统可以确定对应于第二相邻像素的第二空间误差值E(i+1,j-1),第二相邻像素是当前像素的下一行且前一列的像素。第二空间误差值可以通过使用E(i,j)×3/16来确定。系统可以确定对应于第三相邻像素的第三空间误差值E(i+1,j),该第三相邻像素是当前像素的下一行且相同列的像素。第三空间误差值可以通过使用E(i,j)×5/16来确定。系统可以确定对应于第四相邻像素的第四空间误差值E(i+1,j+1),第四相邻像素是当前像素的下一行且下一列的像素。第二空间误差值可以通过使用E(i,j)×1/16来确定。
图6B示出了用于在时域中将量化误差在时间上抖动到下一个后续子帧图像以及也在空间上抖动到同一子帧图像中的邻近像素的示例过程。在特定实施例中,对于第(n-1)个子帧图像,系统可以在时间上将第一空间误差值E(i,j+1)抖动到第n子帧图像的对应像素。第一空间误差值E(i,j+1)可以被馈送到时空抖动模型,以用于确定下一子帧图像的对应像素的值。第一空间误差值E(i,j+1)可用于确定子帧图像系列中的下一子帧图像的对应像素的误差修正的目标像素值。在特定实施例中,系统可以在空间域中将第二空间误差值E(i+1,j-1)、第三空间误差值E(i+1,j)和第四空间误差值E(i+1,j+1)抖动到当前子帧图像内的当前像素的第二相邻像素、第三相邻像素和第四相邻像素。每个空间误差值(例如,E(i,j+1)、E(i+1,j-1)、E(i+1,j)、E(i+1,j+1))可以存储在与子帧图像的大小相对应的帧缓冲器中,并且可以在处理该子帧图像时被抖动到对应子帧图像的对应像素。值得注意的是,Floyd-Steinberg模型在本文中被用作确定空间和时间抖动的量化误差的部分的示例。用于空间和时间抖动的量化误差的部分可以是具有任何合适加权因子的任何合适比例,并且不限于Floyd-Steinberg模型。在特定实施例中,系统可以在子帧图像系列中的所有子帧图像中近似均匀地分布目标图像的光强度。
图7示出了包括Floyd-Steinberg模型610和显示模型710的示例时空抖动模型700。在特定实施例中,时空抖动模型700可以包括颜色显示模型710。在已经确定量化像素值C(i,j,N)之后,系统可以使用颜色显示模型710根据与物理显示器相关联的颜色显示模型710来确定显示像素值D(i,j,N)。显示像素值D(i,j,N)可以是将在物理显示器上显示的实际像素值。然后,系统可以确定与已经抖动的所有子帧图像(包括当前子帧图像和一个或更多个在前子帧图像)的相同像素相对应的多个显示像素值的聚合表示。在特定实施例中,当目标像素值可以等于目标图像的对应像素值乘以与图像系列中的图像相关联的序列号得出的结果时,显示像素值的聚合表示可以是对应于当前子帧的当前像素和在先子帧图像的对应像素的显示像素值(例如,根据
Figure BDA0003473443840000281
确定)的和。在特定实施例中,当目标像素值可以等于目标图像的对应像素值时,显示像素值的聚合表示可以是对应于当前子帧的当前像素和在先子帧图像的对应像素的显示像素值的平均值。量化误差值E(i,j)可以通过使用减法模块510从误差修正的目标像素值E(i,j)中减去显示像素值的聚合表示来确定。
图8A示出了由具有较少灰度级的子帧图像系列表示的示例目标图像800A。图8B-图8E示出了使用时空抖动模型生成的四个示例子帧图像800B-800E。通过将量化误差既在时域中在时间上抖动到下一个子帧图像,并且又在空间上抖动到同一子帧图像的邻近像素,系统可以生成具有更均匀亮度分布的子帧图像系列。目标图像800A可以具有比物理显示器更多的灰度级位。子帧图像800B-800E可以具有对应于物理显示器并且少于目标图像800A的灰度级位。子帧图像800B-800E可用于使用观看者感知的时间平均值来表示目标图像。通常,如果目标图像具有M位灰度级位,子帧图像具有K位灰度级位,并且子帧图像系列包括N个数量的子帧图像,则子帧图像和目标图像可以具有满足以下关系:2M=N×2K。作为示例,图像800A可以具有3位灰度级位(即,8灰度级),并且4个子帧图像800B-800E可以具有1位灰度级位(即,2灰度级),满足:23=4×21。可以使用Floyd-Steinberg模型将第(n-1)子帧图像的每个像素的量化误差E(i,j)分成四个部分(例如,E(i,j+1),E(i+1,j-1),E(i+1,j),E(i+1,j+1))。第一量化误差部分E(i,j+1)可以在时间上被抖动到第n子帧图像的对应像素,并且被馈送到时空抖动模型,以用于确定子帧图像系列中的第n子帧图像的对应像素的误差修正的目标像素值。第二量化误差部分E(i+1,j-1)、第三量化误差部分E(i+1,j)和第四量化误差部分E(i+1,j+1)可以在空间域中被抖动到当前子帧图像内的当前像素的第二相邻像素、第三相邻像素和第四相邻像素。因而,子帧图像800B-800E可以在子帧图像之间具有更均匀的亮度分布(例如,比较子帧图像400B-400E,其中在子帧图像之间存在很大的亮度对比度)。在特定实施例中,AR/VR系统可以使用扫描波导显示器、2D微型LED显示器来向用户显示AR/VR内容。本公开中描述的时空抖动模型和方法适用于但不限于扫描波导显示器、2D微型LED显示器或用于AR/VR系统的任何合适的显示器。
图9示出了使用时空抖动方法生成具有更均匀亮度的图像系列的示例方法900。方法900可以在步骤910开始,在步骤910,系统可以接收或生成图像系列中的当前图像的当前像素的目标像素值。该图像系列可用于表示目标图像。目标像素值可以对应于将由图像系列表示的目标图像的对应像素值。在特定实施例中,目标像素值可以等于目标图像的对应像素值。在特定实施例中,目标像素值可以等于目标图像的对应像素值乘以与图像系列中的图像相关联的序列号得出的结果。当图像系列包括N个数量的图像时,当该图像系列中的每一个图像具有K位灰度级位时,并且当目标图像具有M位灰度级位时,该图像系列和目标图像可以满足以下关系:2M=N×2K。在步骤920,系统可以基于目标像素值和第一误差值确定第一误差修正的目标像素值。第一误差值可以是来自图像系列中的在先图像的对应像素的量化误差值。例如,当当前图像是图像系列的第一图像时,第一误差值可以为零。当当前图像是该图像系列中的后续图像时,第一误差值可以是来自在先图像的对应像素的在先量化误差值。第一误差修正的目标像素值可以通过从目标像素值中减去第一量化误差值来确定。
在步骤930,系统可以使用矢量量化器来确定与误差修正的值相对应的量化像素值,以由图像的像素进行显示。在特定实施例中,系统可以通过将第一误差修正的目标像素值投射到显示色域来确定校正目标像素值。第一误差修正的目标像素值到显示色域的投射可以包括将第一误差修正的目标像素值裁剪到与显示色域相关联的值范围。在特定实施例中,量化像素可以基于校正目标像素值来确定。例如,量化像素值可以通过将校正目标像素值映射到由图像系列(例如,多个子帧图像)中的图像(例如,子帧图像)的灰度级位确定的像素值范围来确定。如果该图像系列具有K位灰度级位,量化像素值可以是与校正目标像素值最接近的K位二进制数。在步骤940,系统可以确定多个量化像素值的第一聚合表示,该多个量化像素值包括由当前图像的当前像素和已经抖动的图像系列中的一个或更多个在先图像的对应像素显示的像素值。在特定实施例中,目标像素值可以等于目标图像的对应像素值。在这种情况下,量化像素值的第一聚合表示可以是由(1)图像的像素和(2)图像系列中的一个或更多个在先图像的对应像素显示的量化像素值的平均值。在特定实施例中,目标像素值可以等于目标图像的对应像素值乘以与图像系列中的图像相关联的序列号得出的结果。在这种情况下,量化像素值的聚合表示可以是由(1)图像的像素和(2)图像系列中的一个或更多个在先图像的对应像素显示的量化像素值的和。
在步骤950,系统可以基于(由图像的像素和图像系列中的一个或更多个在先图像的对应像素显示的)量化像素值的聚合表示和误差修正的目标像素值来确定第二量化误差值。第二量化误差值可以通过从第一误差修正的目标像素值中减去量化像素值的聚合表示来确定。在步骤960,系统可以将第二量化误差值的至少一部分至少抖动到下一子帧图像的对应像素。抖动到下一图像的对应像素的第二量化误差值的部分可以用于确定该图像系列中的下一图像的对应像素的第二误差修正的目标像素值。
在特定实施例中,系统可以使用空间抖动模型基于第二量化误差值来确定一个或更多个空间误差值。例如,空间抖动模型可以是或包括Floyd-Steinberg内核。一个或更多个空间误差值可以包括位于像素的同一行且下一列的第一相邻像素的第一空间误差值、位于像素的下一行且前一列的第二相邻像素的第二空间误差值、位于像素的下一行且同一列的第三相邻像素的第三空间误差值、位于像素的下一行且下一列的第四相邻像素的第四空间误差值,等等。在特定实施例中,通过将第一空间误差值用于确定图像系列中的下一图像的对应像素的第二误差修正的目标像素值,可以在时域中将第一空间误差值抖动到下一图像的对应像素。第二空间误差值、第三空间误差值和第四空间误差值可以在空间域中被抖动到图像内的第二相邻像素、第三相邻像素和第四相邻像素。在特定实施例中,系统可以使用颜色显示模型,基于量化像素值来确定由图像的像素显示的显示像素值。系统可以确定由以下项显示的显示像素值的聚合表示:(1)图像的像素和(2)图像系列中的一个或更多个在先图像的对应像素。在特定实施例中,系统可以通过从第一误差修正的目标像素值中减去显示像素值的聚合表示来确定第二量化误差值。
在特定实施例中,该系统可以包括第一数字电子电路(例如,显示引擎的变换块),该第一数字电子电路被配置为确定从用户的当前视点可见的人工现实场景的一个或更多个区域(例如,图块、表面或表面的一部分)。例如,第一数字电子电路可以使用光线投射方法来确定从当前视点对用户可见的多个图块(例如,每个图块对应于像素阵列)。第一数字电子电路可以确定图块/表面对,以用于确定对用户可见的对应像素。该系统可以包括第二数字电子电路(例如,显示引擎的像素块),该第二数字电子电路被配置为确定与可见区域相关联(例如,与图块/表面对相关联)的多个像素中的每个像素的像素值。该系统可以包括第三数字电子电路(例如,显示引擎的显示块),其被配置为抖动与像素相关联的一个或更多个量化误差。量化误差可以既在空间上被抖动到当前帧内的一个或更多个邻近像素,并且也在时间上抖动到下一帧的对应像素。在特定实施例中,该系统可以包括被配置为存储不同分辨率的源数据(例如,MIP图纹理数据)的存储器单元(例如,纹理存储器)。与可见区域相关联的像素的像素值可以基于不同分辨率的源数据来确定。
在特定实施例中,该系统可以包括具有三个RGB颜色通道的显示系统、分别用于三个颜色通道的三个显示驱动器电路、以及将第三逻辑单元连接到显示驱动器电路的一个或更多个数据总线。在特定实施例中,显示系统可以包括光源组件、多个去耦元件以及将光源组件耦合到去耦元件的多个输出波导。在特定实施例中,显示系统可以包括光源,该光源包括发射多个光束的多个光发射器、像场中的多个像素以及将光束反射到像场中的像素的可旋转反射镜。在特定实施例中,显示系统可以包括发射多个光束的投影仪设备、包括沿波导分布的多个耦合元件和多个去耦元件的波导。耦合元件和去耦元件可以(例如,通过反射)沿着波导传输光束的光强度的第一部分。去耦元件可以将光束的光强度的第二部分从波导去耦。
在适当的情况下,特定实施例可以重复图9的方法的一个或更多个步骤。尽管本公开描述并示出了以特定顺序发生的图9的方法的特定步骤,但是本公开设想了以任何合适的顺序发生的图9的方法的任何合适的步骤。此外,尽管本公开描述并示出了使用包括图9的方法的特定步骤的时空抖动方法来生成具有更均匀亮度的子帧图像的示例方法,但是本公开设想了使用包括任何适当步骤的时空抖动方法来生成具有更均匀亮度的子帧图像的任何适当方法,在适当的情况下,该方法可以包括图9的方法的所有、一些步骤或不包括图9的方法的任何步骤。此外,尽管本公开描述并示出了执行图9的方法的特定步骤的特定部件、设备或系统,但是本公开设想了执行图9的方法的任何合适步骤的任何合适的部件、设备或系统的任何合适的组合。
图10示出了示例计算机系统1000。在特定实施例中,一个或更多个计算机系统1000执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在特定实施例中,一个或更多个计算机系统1000提供本文描述或示出的功能。在特定实施例中,在一个或更多个计算机系统1000上运行的软件执行本文描述或示出的一个或更多个方法的一个或更多个步骤,或者提供本文描述或示出的功能。特定实施例包括一个或更多个计算机系统1000的一个或更多个部分。在本文,在适当的情况下,对计算机系统的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以包括一个或更多个计算机系统。
本公开设想了任何合适数量的计算机系统1000。本公开设想了采取任何合适的物理形式的计算机系统1000。作为示例而不是作为限制,计算机系统1000可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,模块上计算机(COM)或模块上系统(SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式信息亭、大型机、计算机系统网状网、移动电话、个人数字助理(PDA)、服务器、平板计算机系统、增强/虚拟现实设备、或者这些系统的两个或更多个的组合。在适当的情况下,计算机系统1000可以包括一个或更多个计算机系统1000;是整体式的或分布式的;跨越多个定位;跨越多台机器;跨越多个数据中心;或者驻留在云中,云可以包括在一个或更多个网络中的一个或更多个云部件。在适当的情况下,一个或更多个计算机系统1000可以在没有实质性空间或时间限制的情况下执行本文描述或示出的一个或更多个方法的一个或更多个步骤。作为示例而不是作为限制,一个或更多个计算机系统1000可以实时地或以批处理模式来执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在适当的情况下,一个或更多个计算机系统1000可以在不同的时间或在不同的定位处执行本文描述或示出的一个或更多个方法的一个或更多个步骤。
在特定实施例中,计算机系统1000包括处理器1002、存储器1004、存储装置1006、输入/输出(I/O)接口1008、通信接口1010和总线1012。尽管本公开描述并示出了具有在特定布置中的特定数量的特定部件的特定计算机系统,但是本公开设想了具有在任何合适布置中的任何合适数量的任何合适部件的任何合适的计算机系统。
在特定实施例中,处理器1002包括用于执行指令(例如构成计算机程序的那些指令)的硬件。作为示例而不是作为限制,为了执行指令,处理器1002可以从内部寄存器、内部高速缓存、存储器1004或存储装置1006中检索(或取回)指令;将它们解码并执行它们;以及然后将一个或更多个结果写到内部寄存器、内部高速缓存、存储器1004或存储装置1006。在特定实施例中,处理器1002可以包括用于数据、指令或地址的一个或更多个内部高速缓存。在适当的情况下,本公开设想了处理器1002包括任何合适数量的任何合适的内部高速缓存。作为示例而不是作为限制,处理器1002可以包括一个或更多个指令高速缓存、一个或更多个数据高速缓存、以及一个或更多个转译后备缓冲器(TLB)。在指令高速缓存中的指令可以是在存储器1004或存储装置1006中的指令的副本,并且指令高速缓存可以加速处理器1002对这些指令的检索。在数据高速缓存中的数据可以是:在存储器1004或存储装置1006中的用于使在处理器1002处执行的指令进行操作的数据的副本;在处理器1002处执行的先前指令的结果,以用于由在处理器1002处执行的后续指令访问或者用于写到存储器1004或存储装置1006;或其他合适的数据。数据高速缓存可以加速由处理器1002进行的读或写操作。TLB可以加速关于处理器1002的虚拟地址转译。在特定实施例中,处理器1002可以包括用于数据、指令或地址的一个或更多个内部寄存器。在适当的情况下,本公开设想了处理器1002包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器1002可以包括一个或更多个算术逻辑单元(ALU);是多核处理器;或者包括一个或更多个处理器1002。尽管本公开描述并示出了特定的处理器,但是本公开设想了任何合适的处理器。
在特定实施例中,存储器1004包括用于存储用于使处理器1002执行的指令或用于使处理器1002操作的数据的主存储器。作为示例而不是作为限制,计算机系统1000可以将指令从存储装置1006或另一个源(诸如例如,另一个计算机系统1000)加载到存储器1004。处理器1002然后可以将指令从存储器1004加载到内部寄存器或内部高速缓存。为了执行指令,处理器1002可以从内部寄存器或内部高速缓存中检索指令并将它们解码。在指令的执行期间或之后,处理器1002可以将一个或更多个结果(其可以是中间结果或最终结果)写到内部寄存器或内部高速缓存。处理器1002然后可以将这些结果中的一个或更多个写到存储器1004。在特定实施例中,处理器1002仅执行在一个或更多个内部寄存器或内部高速缓存中或在存储器1004(而不是存储装置1006或其他地方)中的指令,并且仅对在一个或更多个内部寄存器或内部高速缓存中或在存储器1004(而不是存储装置1006或其他地方)中的数据进行操作。一个或更多个存储器总线(其可以各自包括地址总线和数据总线)可以将处理器1002耦合到存储器1004。如下所述,总线1012可以包括一个或更多个存储器总线。在特定实施例中,一个或更多个存储器管理单元(MMU)驻留在处理器1002和存储器1004之间,并且便于由处理器1002请求的对存储器1004的访问。在特定实施例中,存储器1004包括随机存取存储器(RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可以是单端口RAM或多端口RAM。本公开设想了任何合适的RAM。在适当的情况下,存储器1004可以包括一个或更多个存储器1004。尽管本公开描述并示出了特定的存储器,但是本公开设想了任何合适的存储器。
在特定实施例中,存储装置1006包括用于数据或指令的大容量存储装置。作为示例而不是作为限制,存储装置1006可以包括硬盘驱动器(HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器、或这些中的两个或更多个的组合。在适当的情况下,存储装置1006可以包括可移动或不可移动(或固定)介质。在适当的情况下,存储装置1006可以在计算机系统1000的内部或外部。在特定实施例中,存储装置1006是非易失性固态存储器。在特定实施例中,存储装置1006包括只读存储器(ROM)。在适当的情况下,该ROM可以是掩模编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可变ROM(EAROM)、或闪存、或这些中的两个或更多个的组合。本公开设想了采用任何合适的物理形式的大容量存储装置1006。在适当的情况下,存储装置1006可以包括便于在处理器1002和存储装置1006之间的通信的一个或更多个存储装置控制单元。在适当的情况下,存储装置1006可以包括一个或更多个存储装置1006。尽管本公开描述并示出了特定的存储装置,但是本公开设想了任何合适的存储装置。
在特定实施例中,I/O接口1008包括提供用于在计算机系统1000和一个或更多个I/O设备之间的通信的一个或更多个接口的硬件、软件或两者。在适当的情况下,计算机系统1000可以包括这些I/O设备中的一个或更多个。这些I/O设备中的一个或更多个可以实现在人和计算机系统1000之间的通信。作为示例而不是作为限制,I/O设备可以包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态相机、触笔、平板计算机、触摸屏、轨迹球、视频相机、另一个合适的I/O设备、或这些中的两个或更多个的组合。I/O设备可以包括一个或更多个传感器。本公开设想了任何合适的I/O设备以及用于它们的任何合适的I/O接口1008。在适当的情况下,I/O接口1008可以包括使处理器1002能够驱动这些I/O设备中的一个或更多个的一个或更多个设备或软件驱动器。在适当的情况下,I/O接口1008可以包括一个或更多个I/O接口1008。尽管本公开描述并示出了特定的I/O接口,但是本公开设想了任何合适的I/O接口。
在特定实施例中,通信接口1010包括提供用于在计算机系统1000和一个或更多个其他计算机系统1000或一个或更多个网络之间的通信(诸如例如,基于包(packet-based)的通信)的一个或更多个接口的硬件、软件或两者。作为示例而不是作为限制,通信接口1010可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或用于与无线网络(例如Wi-Fi网络)进行通信的无线NIC(WNIC)或无线适配器。本公开设想了任何合适的网络和用于它的任何合适的通信接口1010。作为示例而不是作为限制,计算机系统1000可以与自组织网络、个域网(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)或互联网的一个或更多个部分、或这些中的两个或更多个的组合进行通信。这些网络中的一个或更多个的一个或更多个部分可以是有线的或无线的。作为示例,计算机系统1000可以与无线PAN(WPAN)(诸如例如,蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(诸如例如,全球移动通信系统(GSM)网络)、或其他合适的无线网络、或这些中的两个或更多个的组合进行通信。在适当的情况下,计算机系统1000可以包括用于这些网络中的任一个的任何合适的通信接口1010。在适当的情况下,通信接口1010可以包括一个或更多个通信接口1010。尽管本公开描述并示出了特定的通信接口,但是本公开设想了任何合适的通信接口。
在特定实施例中,总线1012包括将计算机系统1000的部件耦合到彼此的硬件、软件或两者。作为示例而不是作为限制,总线1012可以包括加速图形端口(AGP)或其他图形总线、扩展工业标准体系结构(EISA)总线、前端总线(FSB)、HYPERTRANSPORT(HT)互连、工业标准体系结构(ISA)总线、INFINIBAND互连、低引脚数(LPC)总线、存储器总线,微通道体系结构(MCA)总线、外围部件互连(PCI)总线、PCI-Express(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线、或任何其他合适的总线、或这些中的两个或更多个的组合。在适当的情况下,总线1012可以包括一个或更多个总线1012。尽管本公开描述并示出了特定总线,但是本公开设想了任何合适的总线或互连。
在本文,在适当的情况下,一个或更多个计算机可读非暂时性存储介质可以包括一个或更多个基于半导体的或其他集成电路(IC)(诸如例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字(SECUREDIGITAL)卡或驱动器、任何其他合适的计算机可读非暂时性存储介质、或这些中的两个或更多个的任何合适组合。在适当的情况下,计算机可读非暂时性存储介质可以是易失性的、非易失性的或者易失性和非易失性的组合。
本文中,除非另有明确指示或通过上下文另有指示,否则“或”是包括一切的而非排他性的。因此,在本文,除非另有明确指示或通过上下文另有指示,否则“A或B”意指“A、B或两者”。此外,除非另有明确指示或通过上下文另有指示,否则“和”既是联合的又是各自的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“A和B”意指“联合的或各的A和B”。
本公开的范围包括本领域中的普通技术人员将理解的对本文描述或示出的示例实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于本文描述或示出的示例实施例。此外,尽管本公开将本文的相应实施例描述并示为包括特定的部件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个可以包括本领域中的普通技术人员将理解的在本文任何地方描述或示出的任何部件、元件、特征、功能、操作或步骤的任何组合或置换。此外,在所附权利要求中对适合于、被布置成、能够、被配置成、实现来、可操作来、或操作来执行特定功能的装置或系统或装置或系统的部件的引用包括该装置、系统、部件,只要该装置、系统或部件是这样被调整、被布置、使能够、被配置、被实现、可操作的、或操作的,而不管其或该特定功能是否被激活、开启或解锁。此外,尽管本公开将特定实施例描述或示为提供特定优点,但是特定实施例可以提供这些优点中的一些、全部或不提供这些优点。

Claims (15)

1.一种方法,包括由计算系统:
接收图像系列中的图像的像素的目标像素值;
基于所述目标像素值和第一误差值,确定第一误差修正的目标像素值;
生成与所述误差修正的目标像素值相对应的量化像素值,其中所述量化像素值被用于由所述图像的像素进行显示;
确定由以下项显示的多个量化像素值的第一聚合表示:(1)所述图像的像素和(2)所述图像系列中的一个或更多个在先图像的对应像素;
基于所述多个量化像素值的第一聚合表示以及所述第一误差修正的目标像素值来确定第二误差值;和
将所述第二误差值的至少一部分至少抖动到所述图像系列中的下一图像的对应像素。
2.根据权利要求1所述的方法,其中,所述图像系列被用于表示目标图像,并且其中所述目标像素值对应于所述目标图像的对应像素值。
3.根据权利要求2所述的方法,其中,所述目标像素值等于所述目标图像的对应像素值,并且其中,所述多个量化像素值的第一聚合表示是所述多个量化像素值的平均值;或者
其中,所述目标像素值等于所述目标图像的对应像素值乘以与所述图像系列中的图像相关联的序列号得出的结果,并且其中,所述多个量化像素值的第一聚合表示是所述多个量化像素值的和。
4.根据权利要求2所述的方法,其中,所述图像系列包括N数量个图像,其中,所述图像系列中的每一个图像具有K位灰度级位,其中所述目标图像具有M位灰度级位,并且其中所述图像系列和所述目标图像具有以下关系:2M=N×2K
5.根据权利要求5所述的方法,还包括:
通过将所述第一误差修正的目标像素值投射到显示色域来确定校正目标像素值,其中,所述量化像素值是基于所述校正目标像素值生成的;
其中,将所述第一误差修正的目标像素值投射到所述显示色域包括将所述第一误差修正的目标像素值裁剪到与所述显示色域相关联的值范围;和/或
其中,所述量化像素值是通过将所述校正目标像素值映射到由K位灰度级位确定的像素值范围来确定的,并且其中,所述量化像素值是与所述校正目标像素值最接近的K位二进制数。
6.根据权利要求1所述的方法,其中,所述第二误差值是通过从所述第一误差修正的目标像素值中减去所述多个量化像素值的聚合表示来确定的;和/或
其中,通过将所述第二误差值的至少一部分用于确定所述图像系列中的所述下一图像的对应像素的第二误差修正的目标像素值,所述第二误差值的至少一部分被抖动到所述图像系列中的所述下一图像的对应像素。
7.根据权利要求1所述的方法,其中,当所述图像是所述图像系列中的第一图像时,所述第一误差值为零;和/或
其中,当所述图像是子帧图像系列中的后续图像时,所述第一误差值是来自在先图像的对应像素的在先误差值。
8.根据权利要求1所述的方法,还包括:
使用空间抖动模型,基于所述第二误差值,确定一个或更多个空间误差值,其中所述一个或更多个空间误差值包括在所述像素的同一行且下一列中的第一相邻像素的第一空间误差值、在所述像素的下一行且前一列中的第二相邻像素的第二空间误差值、在所述像素的下一行且同一列的第三相邻像素的第三空间误差值、以及在所述像素的下一行且下一列的第四相邻像素的第四空间误差值。
9.根据权利要求8所述的方法,其中,所述空间抖动模型包括Floyd-Steinberg核;和/或其中,通过将所述第一空间误差值用于确定所述图像系列中的所述下一图像的对应像素的第二误差修正的目标像素值,所述第一空间误差值在时域中被抖动到所述图像系列中的所述下一图像的对应像素;和/或其中,所述第二空间误差值、第三空间误差值和第四空间误差值在空间域中被抖动到所述图像内的所述第二相邻像素、第三相邻像素和第四相邻像素。
10.根据权利要求1所述的方法,还包括:
使用颜色显示模型,基于所述量化像素值来确定显示像素值,所述显示像素值用于被所述图像的像素显示;和
确定由以下项显示的多个显示像素值的第二聚合表示:(1)所述图像的像素和(2)所述图像系列中的一个或更多个在先图像的对应像素,其中,所述第二误差值是通过从所述第一误差修正的目标像素值中减去所述多个显示像素值的第二聚合表示来确定的。
11.一种或更多种计算机可读非暂时性存储介质,其包含软件,所述软件在被执行时能够操作来:
接收图像系列中的图像的像素的目标像素值;
基于所述目标像素值和第一误差值,确定第一误差修正的目标像素值;
生成与所述误差修正的目标像素值相对应的量化像素值,其中,所述量化像素值被用于由所述图像的像素进行显示;
确定由以下项显示的多个量化像素值的第一聚合表示:(1)所述图像的像素和(2)所述图像系列中的一个或更多个在先图像的对应像素;
基于所述多个量化像素值的第一聚合表示以及所述第一误差修正的目标像素值来确定第二误差值;和
将所述第二误差值的至少一部分至少抖动到所述图像系列中的下一图像的对应像素。
12.一种系统,包括:
第一数字电子电路,所述第一数字电子电路被配置为确定人工现实场景的一个或更多个区域,其中所述一个或更多个区域从用户的当前视点是可见的;
第二数字电子电路,所述第二数字电子电路被配置为确定与所述一个或更多个区域相关联的多个像素中的每一个像素的像素值;和
第三数字电子电路,所述第三数字电子电路被配置为抖动与所述多个像素相关联的量化误差,其中,所述量化误差既在空间上被抖动到当前帧内的一个或更多个邻近像素,并且也在时间上被抖动到下一帧。
13.根据权利要求12所述的系统,还包括:
存储器单元,所述存储器单元被配置为存储不同分辨率的源数据,其中,与所述一个或更多个区域相关联的所述多个像素的像素值是基于不同分辨率的所述源数据确定的。
14.根据权利要求12所述的系统,还包括:
显示系统,所述显示系统包括三个颜色通道的多个微型LED像素、用于驱动相应颜色通道的多个微型LED像素的三个显示驱动器电路、以及将所述第三数字电子电路连接到所述三个显示驱动器电路的一个或更多个数据总线;
其中,所述显示系统还包括光源组件、多个去耦元件和将所述光源组件耦合到所述多个去耦元件的多个输出波导;和/或
其中,所述显示系统还包括光源,所述光源包括发射多个光束的多个光发射器、像场中的多个显示像素以及将所述多个光束反射到所述像场中的所述多个显示像素的可旋转反射镜。
15.根据权利要求14所述的系统,其中,所述显示系统还包括发射多个光束的投影仪设备、包括沿波导分布的多个耦合元件和多个去耦元件的波导,其中所述多个耦合元件和所述多个去耦元件沿着所述波导反射所述多个光束的光强度的第一部分,并且其中所述多个去耦元件将所述多个光束的光强度的第二部分从所述波导去耦。
CN202080051804.8A 2019-07-23 2020-07-16 用于时空抖动的系统和方法 Pending CN114127834A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/520,031 2019-07-23
US16/520,031 US11508285B2 (en) 2019-07-23 2019-07-23 Systems and methods for spatio-temporal dithering
PCT/US2020/042433 WO2021016052A1 (en) 2019-07-23 2020-07-16 Systems and methods for spatio-temporal dithering

Publications (1)

Publication Number Publication Date
CN114127834A true CN114127834A (zh) 2022-03-01

Family

ID=71995114

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080051804.8A Pending CN114127834A (zh) 2019-07-23 2020-07-16 用于时空抖动的系统和方法

Country Status (4)

Country Link
US (1) US11508285B2 (zh)
EP (1) EP4004900A1 (zh)
CN (1) CN114127834A (zh)
WO (1) WO2021016052A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11733773B1 (en) 2020-12-29 2023-08-22 Meta Platforms Technologies, Llc Dynamic uniformity correction for boundary regions
US11681363B2 (en) 2021-03-29 2023-06-20 Meta Platforms Technologies, Llc Waveguide correction map compression
US11754846B2 (en) 2022-01-21 2023-09-12 Meta Platforms Technologies, Llc Display non-uniformity correction

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080309953A1 (en) * 2007-06-15 2008-12-18 Guotong Feng Method for reducing image artifacts on electronic paper displays
US20130011076A1 (en) * 2008-12-31 2013-01-10 Nokia Corporation Method and Apparatus for Finding Data Quantisation Error
US20150287354A1 (en) * 2014-04-03 2015-10-08 Qualcomm Mems Technologies, Inc. Error-diffusion based temporal dithering for color display devices
CN204906538U (zh) * 2014-04-29 2015-12-23 半导体元件工业有限责任公司 生成噪声校正的像素值的电子设备、减小噪声信号的电子设备和成像系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9818336B2 (en) * 2016-03-22 2017-11-14 Snaptrack Inc. Vector dithering for displays employing subfields having unevenly spaced gray scale values
US11302234B2 (en) 2018-08-07 2022-04-12 Facebook Technologies, Llc Error correction for display device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080309953A1 (en) * 2007-06-15 2008-12-18 Guotong Feng Method for reducing image artifacts on electronic paper displays
US20130011076A1 (en) * 2008-12-31 2013-01-10 Nokia Corporation Method and Apparatus for Finding Data Quantisation Error
US20150287354A1 (en) * 2014-04-03 2015-10-08 Qualcomm Mems Technologies, Inc. Error-diffusion based temporal dithering for color display devices
CN204906538U (zh) * 2014-04-29 2015-12-23 半导体元件工业有限责任公司 生成噪声校正的像素值的电子设备、减小噪声信号的电子设备和成像系统

Also Published As

Publication number Publication date
US11508285B2 (en) 2022-11-22
US20210027694A1 (en) 2021-01-28
EP4004900A1 (en) 2022-06-01
WO2021016052A1 (en) 2021-01-28

Similar Documents

Publication Publication Date Title
US11120770B2 (en) Systems and methods for hiding dead pixels
US11410272B2 (en) Dynamic uniformity correction
US11410580B2 (en) Display non-uniformity correction
US11551636B1 (en) Constrained rendering
CN114127834A (zh) 用于时空抖动的系统和方法
US11562679B2 (en) Systems and methods for mask-based temporal dithering
CN114174979B (zh) 用于隐藏死像素的系统和方法
US20210398255A1 (en) Mask-based spatio-temporal dithering
US11300793B1 (en) Systems and methods for color dithering
US11430398B2 (en) Systems and methods for mask-based spatio-temporal dithering
US20240233614A1 (en) Waveguide correction
US20240202892A1 (en) Combined tone and gamut mapping for augmented reality display
US20240048681A1 (en) Constrained color dithering
CN115335895A (zh) 在显示器上渲染图像

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Yuan Platform Technology Co.,Ltd.

Address before: California, USA

Applicant before: Facebook Technologies, LLC