掌桥专利:专业的专利平台
掌桥专利
首页

波导校正图压缩

文献发布时间:2024-04-18 19:58:26


波导校正图压缩

技术领域

本公开总体上涉及人工现实,例如虚拟现实和增强现实。

背景技术

人工现实是在呈现给用户之前已经以某种方式进行了调整的现实形式,该人工现实例如可以包括虚拟现实(virtual reality,VR)、增强现实(augmented reality,AR)、混合现实(mixed reality,MR)、混合现实(hybrid reality)、或它们的某种组合和/或衍生物。人工现实内容可以包括完全生成的内容、或与采集到的内容(例如,真实世界照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈、或它们的某种组合,并且以上中任何一种均可以在单个通道或多个通道中呈现(例如,为观看者带来三维效果的立体视频)。人工现实可以与应用、产品、附件、服务、或它们的某种组合相关联,这些应用、产品、附件、服务、或它们的某种组合例如用于在人工现实中创建内容,和/或在人工现实中使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(head-mounted display,HMD)、独立的HMD、移动设备或计算系统、或能够向一位或多位观看者提供人工现实内容的任何其他硬件平台。

发明内容

本文所描述的特定实施例涉及这样的系统和方法:所述系统和方法用于在内存资源有限的情况下、使用多个经压缩的校正图来补偿显示器中的波导非均匀性,以减少存储校正图所需的内存。对于特定眼睛位置,系统可以基于从该特定的眼睛位置观看时、所测量的波导的非均匀光传输特性,来生成校正图。对于从该特定眼睛位置观看的静态图像,该系统可以通过应用为该眼睛位置生成的校正图,来消除由波导非均匀性造成的负面视觉效果。对于从不同眼睛位置观看的一系列动态图像,该系统可以使用眼动追踪系统,来动态测量观看者的眼睛位置并基于所动态测量的眼睛位置来确定合适的校正图。

根据本公开的第一方面,提供了一种方法,该方法包括:对于当前帧,确定观看者相对于显示器的波导的当前眼睛位置;识别在距该当前眼睛位置的阈值距离内的多个预定眼睛位置,该多个预定眼睛位置共同形成围绕该当前眼睛位置的眼睛位置网格;从显示器上的内存获取多个经压缩的缩放因子阵列,该多个经压缩的缩放因子阵列被配置为校正波导在多个预定眼睛位置处的非均匀性;基于该多个经压缩的缩放因子阵列执行插值,以生成用于当前眼睛位置的定制缩放因子阵列;至少基于该定制缩放因子阵列来调整当前帧的像素值;以及向显示器输出具有调整后的像素值的当前帧。

在一些实施例中,该方法还包括:在调整当前帧的像素值之前,将双线性上采样操作应用于该定制缩放因子阵列,以提高该定制缩放因子阵列的分辨率。

在一些实施例中,该波导包括用于将图像光传输到观看者的眼睛的光瞳复制波导;并且观看者的当前眼睛位置是使用眼动追踪系统来确定的。

在一些实施例中,执行插值包括:将解压缩操作应用于多个经压缩的缩放因子阵列,以生成多个经解压缩的缩放因子阵列;以及对该多个经解压缩的缩放因子阵列执行插值。

在一些实施例中,执行插值包括:对多个经压缩的缩放因子阵列执行插值;以及将解压缩操作应用于插值的结果,以生成用于当前眼睛位置的定制缩放因子阵列。

在一些实施例中,多个经压缩的缩放因子阵列通过以下方式生成:将抖动操作应用于多个预定缩放因子阵列,以减小该多个预定缩放因子阵列中的位深度,该多个预定缩放因子阵列被配置为校正波导在多个预定眼睛位置处的非均匀性;以及向抖动操作中注入噪声。

在一些实施例中,该方法还包括:在从显示器上的内存获取多个经压缩的缩放因子阵列之前:在显示器处接收来自计算单元的多个经压缩的缩放因子阵列,该计算单元不同于该显示器,并且该多个经压缩的缩放因子阵列先前存储在该计算单元上;以及将该多个经压缩的缩放因子阵列存储在该显示器上的内存中。

在一些实施例中,多个经压缩的缩放因子阵列和定制缩放因子阵列与特定颜色通道相关联;并且调整当前帧的像素值包括调整该特定颜色通道的像素值。

在一些实施例中,多个经压缩的缩放因子阵列通过以下方式生成:将与三色颜色空间中的像素值相关联的缩放因子转换为与替换颜色空间中的像素值相关联的缩放因子,该替换颜色空间包括一个亮度通道和两个色度通道;以及对与该两个色度通道相关联的值进行压缩。

在一些实施例中,执行插值包括:对与该替换颜色空间中的两个色度通道相关联的值进行解压缩;将与该替换颜色空间中的像素值相关联的、包括经解压缩的值的缩放因子转换回与该三色颜色空间中的像素值相关联的缩放因子;以及对转换回与该三色颜色空间中的像素值相关联的缩放因子的缩放因子执行插值。

在一些实施例中,执行插值包括:对与该替换颜色空间中的像素值相关联的缩放因子执行插值;对与该替换颜色空间中的两个色度通道相关联的经插值的值进行解压缩;以及将该替换颜色空间中的、包括经解压缩的值的经插值的值转换为与三色颜色空间中的像素值相关联的经插值的缩放因子。

在一些实施例中,该方法还包括访问一个或多个补充缩放因子阵列,该一个或多个补充缩放因子阵列先前用于针对该当前帧之前的一个或多个帧校正该波导的非均匀性;并且调整该当前帧的像素值还基于该一个或多个补充缩放因子阵列。

根据本公开的第二方面,提供了一种或多种计算机可读非暂态存储介质,该一种或多种计算机可读非暂态存储介质包含软件,该软件在执行时能够操作以:对于当前帧,确定观看者相对于显示器的波导的当前眼睛位置;识别在距该当前眼睛位置的阈值距离内的多个预定眼睛位置,该多个预定眼睛位置共同形成围绕该当前眼睛位置的眼睛位置网格;从显示器上的内存获取多个经压缩的缩放因子阵列,该多个经压缩的缩放因子阵列被配置为校正波导在多个预定眼睛位置处的非均匀性;基于该多个经压缩的缩放因子阵列执行插值,以生成用于该当前眼睛位置的定制缩放因子阵列;至少基于该定制缩放因子阵列来调整当前帧的像素值;以及向显示器输出具有调整后的像素值的当前帧。

在一些实施例中,执行插值包括:将解压缩操作应用于多个经压缩的缩放因子阵列,以生成多个经解压缩的缩放因子阵列;以及对该多个经解压缩的缩放因子阵列执行插值。

在一些实施例中,执行插值包括:对多个经压缩的缩放因子阵列执行插值;以及将解压缩操作应用于插值的结果,以生成用于该当前眼睛位置的定制缩放因子阵列。

在一些实施例中,多个经压缩的缩放因子阵列通过以下方式生成:将抖动操作应用于多个预定缩放因子阵列,以减小该多个预定缩放因子阵列中的位深度,该多个预定缩放因子阵列被配置为校正波导在多个预定眼睛位置处的非均匀性;或者,将与三色颜色空间中的像素值相关联的缩放因子转换为,与包括一个亮度通道和两个色度通道的替换颜色空间中的像素值相关联的缩放因子,以及对与该两个色度通道相关联的值进行压缩。

根据本公开的第三方面,提供了一种系统,该系统包括:一个或多个处理器;以及一个或多个计算机可读非暂态存储介质,该一个或多个计算机可读非暂态存储介质耦接到该一个或多个处理器中的一个或多个,并且包括程序指令,所述程序指令在被该一个或多个处理器中的一个或多个执行时,能够操作以使得该系统:对于当前帧,确定观看者相对于显示器的波导的当前眼睛位置;识别在距该当前眼睛位置的阈值距离内的多个预定眼睛位置,该多个预定眼睛位置共同形成围绕该当前眼睛位置的眼睛位置网格;从显示器上的内存获取多个经压缩的缩放因子阵列,该多个经压缩的缩放因子阵列被配置为校正波导在多个预定眼睛位置处的非均匀性;基于该多个经压缩的缩放因子阵列执行插值,以生成用于该当前眼睛位置的定制缩放因子阵列;至少基于该定制缩放因子阵列来调整当前帧的像素值;以及向显示器输出具有调整后的像素值的当前帧。

在一些实施例中,执行插值包括:将解压缩操作应用于多个经压缩的缩放因子阵列,以生成多个经解压缩的缩放因子阵列;以及对该多个经解压缩的缩放因子阵列执行插值。

在一些实施例中,执行插值包括:对多个经压缩的缩放因子阵列执行插值;以及将解压缩操作应用于插值的结果,以生成用于该当前眼睛位置的定制缩放因子阵列。

在一些实施例中,多个经压缩的缩放因子阵列通过以下方式生成:将抖动操作应用于多个预定缩放因子阵列,以减小该多个预定缩放因子阵列中的位深度,该多个预定缩放因子阵列被配置为校正波导在多个预定眼睛位置处的非均匀性;或者,将与三色颜色空间中的像素值相关联的缩放因子转换为,与包括一个亮度通道和两个色度通道的替换颜色空间中的像素值相关联的缩放因子,以及对与该两个色度通道相关联的值进行压缩。

在特定实施例中,该系统可以为相对于波导(例如,光瞳复制波导)的多个预定眼睛位置(例如,对应于6×6网格)生成校正图。每个校正图可以与特定的RGB颜色通道相关联,并且每个预定眼睛位置可以与三个校正图相关联,RGB颜色通道中的每个颜色通道一个校正图。每个校正图可以包括2D缩放因子阵列,以缩放该特定颜色通道的2D图像像素值。在一些实施例中,如果当前眼睛位置(X,Y)没有落在预定眼睛位置上,而是落在预定眼睛位置的网格之间,则该系统可以识别与包含当前眼睛位置(X,Y)的区域相关联的16个预定眼睛位置(例如,4×4阵列)。然后,该系统可以对与该预定眼睛位置相关联的校正图应用各种插值技术中的一种,以便为特定于该当前眼睛位置的每个颜色通道生成相应的校正图。例如,该系统可以对与16个预定眼睛位置相关联的相应的校正图应用双三次插值,以生成用于当前眼睛位置的每个颜色通道的校正图。在其他实施例中,可以对与包含当前眼睛位置的区域相关联的不同数量或布置的预定眼睛位置执行这种插值。

在特定实施例中,该系统可以使用基于当前眼睛位置生成的校正图和用于校正先前帧的一个或多个先前校正图,来校正待显示的图像。例如,在一些实施例中,该系统可以至少部分地基于用于校正先前帧的一个或多个先前校正图中的值的平均值或加权平均值,来生成校正图。该系统可以将所生成的校正图存储在数据库和计算机存储器中。这些校正图可以具有相对低的空间分辨率(例如,25像素×25像素),以最小化系统资源使用(例如,存储空间、内存访问、处理能力、CPU资源等)的负担。该系统可以使用双线性插值或类似的插值来对校正图进行上采样,以具有与图像分辨率或显示器分辨率(例如,1856像素×1472像素)匹配的更高分辨率。然后,该系统可以将由上采样过程生成的高分辨率校正图应用于当前帧,其中在输出当前帧以用于显示之前,将每个高分辨率校正图应用于一个颜色通道。应用这些高分辨率校正图可以使得当前帧的RGB颜色通道的像素值按照各个高分辨率校正图的相应缩放因子进行调整。因此,所显示的内容随着时间的推移可能看起来更平滑,并且对眼动追踪数据的误差更具弹性。受由波导显示器的最大微型LED亮度施加的校正限制,可以消除或减小由波导非均匀性引起的视觉效果。

目前的趋势表明,在AR/VR系统中执行波导校正所需的校正图的数量和尺寸虽然已然很大,但仍然在潜在地增长。假定波导校正图数据显著增加,在本申请中描述的、用于对用于补偿波导非均匀性的校正图应用压缩和解压缩技术的方法可以显著减少内存需求,和/或维持存储校正图所需的当前内存大小。这些方法可以允许对校正图进行预计算并将其以压缩形式存储在计算机存储器中,并且在运行时根据需要对这些校正图进行解压缩。更具体地,这些方法可以包括:对预计算的校正图数据进行压缩,将经压缩的校正图数据存储在显示设备上的本地内存中,以及基于经压缩的校正图数据执行插值以生成特定眼睛位置的校正图。在一些实施例中,显示设备可以在执行插值之前对校正图进行解压缩。在其他实施例中,显示设备可以对经压缩的校正图数据执行插值,并且可以在将所得到的用于每个颜色通道校正图应用于图像数据之前对这些校正图进行解压缩。

在特定实施例中,一种用于确定和应用合适的校正图以补偿显示器中的波导非均匀性的方法可以包括:计算系统对于当前帧确定观看者相对于显示器的波导的当前眼睛位置;识别多个眼睛位置,该多个眼睛位置共同形成围绕当前眼睛位置的眼睛位置网格;从显示器上的内存获取用于校正波导在所识别的眼睛位置处的非均匀性的多个经压缩的缩放因子阵列;基于该多个经压缩的阵列执行插值,以生成用于当前眼睛位置的缩放因子阵列;基于定制阵列调整当前帧的像素值;以及向显示器输出具有调整后的像素值的当前帧。压缩操作可以包括抖动或将像素值转换到不同的颜色空间。在使用定制的位置特定的校正图来校正图像数据之前,显示设备可以对定制的校正图数据进行上采样,以提高其分辨率。生成用于当前眼睛位置的缩放因子阵列还可以基于多个补充缩放因子阵列中的值的平均值或加权平均值,该多个补充缩放因子阵列用于针对当前帧之前的一个或多个帧、校正显示器的视点相关的非均匀性。缩放因子阵列和调整后的像素值可以与特定颜色通道相关联。

本文所公开的各个实施例仅是示例,并且本公开的范围不限于这些实施例。特定实施例可以包括以上所公开的这些实施例的部件、元件、特征、功能、操作或步骤中的全部、一些,或者可以不包括这些部件、元件、特征、功能、操作或步骤。针对方法、存储介质、系统和计算机程序产品的所附权利要求中特别地披露了根据本发明的实施例,其中,在一个权利要求类别(例如方法)中提到的任何特征也可以主张在另一个权利要求类别(例如系统)中得到保护。所附权利要求中的从属关系或引用关系仅仅是出于形式上的原因而选择的。然而,也可以主张保护通过对任何多项先前权利要求的有意引用(特别是多个从属关系)而产生的任何主题,从而披露了多项权利要求及其特征的任何组合,并且不管所附权利要求中选择的从属关系如何,都可以主张保护该多项权利要求及其特征的任何组合。可主张保护的主题不仅包括所附多项权利要求中阐述的多个特征的多种组合,而且还包括该多项权利要求中的多个特征的任何其他组合,其中,该多项权利要求中提到的每个特征可以与该多项权利要求中的任何其他特征相组合、或者与多个其他特征的组合相组合。此外,可以在单个权利要求中主张保护本文中所描述或描绘的多个实施例和多个特征中的任何实施例和特征,和/或可以主张保护本文所描述或描绘的多个实施例和多个特征中的任何实施例和特征与本文所描述或描绘的任何实施例或特征的任何组合、或可以主张保护本文所描述或描绘的多个实施例和多个特征中的任何实施例和特征与所附权利要求的任何特征的任何组合。

附图说明

图1A示出了示例人工现实系统。

图1B示出了示例增强现实系统。

图1C示出了显示引擎的示例架构。

图1D示出了用于生成显示图像数据的显示引擎的示例图形流水线。

图2A示出了示例扫描波导显示器。

图2B示出了扫描波导显示器的示例扫描操作。

图3A示出了示例2D微型LED波导显示器。

图3B示出了2D微型LED波导显示器的示例波导构造。

图4A示出了用于测量波导非均匀性并为预定眼睛位置生成校正图的示例过程。

图4B示出了基于预先生成的校正图的双线性插值(bilinear interpolation)来为当前眼睛位置生成校正图的示例过程。

图4C示出了基于预先生成的校正图的双三次插值(bicubic interpolation)来为当前眼睛位置生成校正图的示例过程。

图5A示出了用于为波导区域内的当前眼睛位置生成校正图的示例框架。

图5B示出了用于为波导区域内的当前眼睛位置生成校正图的、包括时间过滤的示例框架。

图6示出了用于使用用于波导内部的预定眼睛位置的经压缩的校正图来校正波导非均匀性的示例方法。

图7A示出了用于使用经压缩的校正图来为波导区域内的当前眼睛位置生成校正图的示例框架,其中在执行插值以生成位置特定的校正图之前执行解压缩操作。

图7B示出了用于使用经压缩校正图来为波导区域内的当前眼睛位置生成校正图的示例框架,其中在解压缩操作之前执行插值以生成位置特定的数据。

图8A示出了根据图7A所示的框架、使用用于波导内部的预定眼睛位置的经压缩的校正图来校正波导非均匀性的示例方法。

图8B示出了根据图7B所示的框架、使用用于波导内部的预定眼睛位置的经压缩的校正图来校正波导非均匀性的示例方法。

图9示出了示例人工神经网络。

图10示出了示例计算机系统。

具体实施方式

图1A示出了示例人工现实系统100A。在特定实施例中,人工现实系统100可以包括头戴式设备(headset)104、控制器106和计算系统108。用户102可以佩戴头戴式设备104,该头戴式设备可以向用户102显示视觉人工现实内容。头戴式设备104可以包括音频设备,该音频设备可以向用户102提供音频人工现实内容。头戴式设备104可以包括一个或多个摄像头,该一个或多个摄像头可以采集环境的图像和视频。头戴式设备104可以包括眼动追踪系统,该眼动追踪系统用于确定用户102的辐辏距离(vergence distance)。头戴式设备104可以被称为头戴式显示器(HDM)。控制器106可以包括触控板和一个或多个按钮。控制器106可以接收来自用户102的输入,并将这些输入转发到计算系统108。控制器206还可以向用户102提供触觉反馈。计算系统108可以通过有线连接或无线连接而连接到头戴式设备104和控制器106。计算系统108可以控制头戴式设备104和控制器106向用户102提供虚拟现实内容并接收来自用户102的输入。计算系统108可以是独立的主计算机系统、与头戴式设备104集成在一起的机载计算机系统、移动设备或能够向用户102提供人工现实内容并接收来自用户102的输入的任何其他硬件平台。

图1B示出了示例增强现实系统100B。增强现实系统100B可以包括头戴式显示器(HMD)110(例如,眼镜)和计算系统120,该HMD包括框架112、一个或多个显示器114。显示器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等,或者可以在纹理内存132、转换块133、像素块134、显示块135等上实现。显示引擎130可以包括用于另一图形流水线的另一组转换块、像素块和显示块。该一个或多个图形流水线可以由控制器或显示引擎130的控制块(未示出)控制。在特定实施例中,纹理内存132可以包括在控制块内,或者可以是位于控制块外部但位于显示引擎130本地的内存单元。显示引擎130的多个部件中的一个或多个部件可以被配置为通过高速总线、共享内存或任何其他合适的方法进行通信。该通信可以包括对数据的传输、以及对控制信号、中断指令或/和其他指令的传输。例如,纹理内存132可以被配置为通过输入数据总线211接收图像数据。作为另一示例,显示块135可以通过输出数据总线142将像素值发送到显示系统140。在特定实施例中,显示系统140可以包括三个颜色通道(例如,颜色通道114A、114B、114C),该三个颜色通道具有相应的显示驱动器IC(display driver IC,DDI)142A、142B和143B。在特定实施例中,显示系统140可以包括例如但不限于:发光二极管(light-emitting diode,LED)显示器、有机发光二极管(organic light-emitting diode,OLED)显示器、有源矩阵有机发光二极管(active matrix organic light-emittingdiode,AMLED)显示器、液晶显示器(liquid crystal display,LCD)、微型发光二极管(micro light-emitting diode,μLED)显示器、电致发光显示器(electroluminescentdisplay,ELD)或任何合适的显示器。

在特定实施例中,显示引擎130可以包括控制块(未示出)。该控制块可以通过一个或多个数据总线接收来自显示引擎130外部的控制器的数据和控制包(例如,位置数据和表面信息)。例如,控制块可以接收来自身体可穿戴计算系统的输入流数据。该输入数据流可以包括以30Hz至90Hz的主帧率生成的一系列主帧图像。包括这些主帧图像的输入流数据可以被转换成所需的格式并存储到纹理内存132中。在特定实施例中,控制块可以接收来自身体可穿戴计算系统的输入,并对显示引擎中的图形流水线进行初始化,以准备和最终确定用于在显示器上渲染的图像数据。数据和控制包可以包括与例如一个或多个表面有关的信息,该信息包括纹理数据、位置数据和附加渲染指令。控制块可以根据需要将数据分发给显示引擎130的一个或多个其他块。控制块可以启动图像流水线,以用于处理要显示的一个或多个帧。在特定实施例中,用于双眼显示系统的两个图形流水线可以各自包括控制块或共享同一控制块。

在特定实施例中,转换块133可以确定要在人工现实场景中显示的各表面的初始可见性信息。总体而言,转换块133可以从屏幕上的各像素位置投射光线,并产生过滤命令(例如,基于双线性插值技术或其他类型的插值技术的过滤)以发送到像素块134。转换块133可以执行从(例如,使用头戴式设备的惯性测量单元、眼动追踪传感器和/或任何合适的追踪/定位算法(例如,同步定位与地图构建(simultaneous localization and mapping,SLAM)确定的)用户的当前视点到人工场景(各表面被定位在其中)中的光线投射,并且可以生成瓦片/表面对144以发送到像素块134。在特定实施例中,转换块133可以包括如下的四级流水线。光线投射器可以发出与一个或多个对准像素的阵列相对应的光线束,所述阵列被称为瓦片(例如,每个瓦片可以包括16×16个对准像素)。这些光学束在进入人工现实场景之前,可以根据一个或多个失真网格来扭曲。失真网格可以被配置为对至少源于头戴式设备系统的双眼显示系统的几何失真效果进行校正。转换块133可以通过将每个瓦片的边界框与该场景中的各表面的边界框进行比较,来确定每个光线束是否与这些表面相交。如果光线束未与对象相交,则可以丢弃该光线束。在检测到瓦片-表面相交之后,可以将对应的瓦片/表面对传递到像素块134。

在特定实施例中,像素块134可以基于各瓦片-表面对来确定各像素的颜色值或灰阶值。每个像素的颜色值可以从所接收到并存储在纹理内存132中的各表面的纹理数据中采样。像素块134可以接收来自转换块133的各瓦片-表面对,并且可以使用一个或多个过滤块来调度双线性过滤。对于每个瓦片-表面对,像素块134可以使用多个颜色值(其同所投影的瓦片与表面相交的位置相对应)来对该瓦片内的各像素的颜色信息进行采样。像素块134可以(例如,使用双线性插值)基于所检索到的纹理来确定像素值。在特定实施例中,对于每个像素,像素块134可以分别处理红色分量、绿色分量和蓝色分量。在特定实施例中,显示器可以包括用于双眼显示系统的两个像素块。该双眼显示系统的两个像素块可以独立地并且彼此并行地工作。然后,像素块134可以将其的各颜色确定(例如,各像素138)输出到显示块135。在特定实施例中,当两个或更多个表面具有重叠区域时,像素块134可以将该两个或更多个表面合成为一个表面。对于重采样过程,所合成的表面可能需要较少的计算资源(例如,计算单元、内存、功率等)。

在特定实施例中,显示块135可以接收来自像素块134的各像素颜色值,将数据的格式转换为更适合于显示器的扫描线输出,对像素颜色值应用一个或多个亮度校正,并准备用于输出到显示器的各像素颜色值。在特定实施例中,显示块135可以各自包括行缓冲器,并且可以对从像素块134接收的像素数据进行处理和存储。像素数据可以被组织成多个四边形(例如,每个四边形2×2像素)和多个瓦片(例如,每个瓦片16×16像素)。显示块135可以将由像素块134生成的各瓦片顺序像素颜色值转换为扫描线数据或行顺序数据,该扫描线数据或行顺序数据可以是物理显示所需要的。各亮度校正可以包括任何所需的亮度校正、伽马映射和抖动。显示块135可以向物理显示器(例如,光瞳显示器)的驱动器直接输出各校正后的像素颜色值,或者可以以各种格式向显示引擎130外部的块输出这些像素值。例如,头戴式设备系统的双眼显示系统可以包括附加的硬件或软件,以进一步定制后端色彩处理、支持更宽的显示器接口、或优化显示速度或保真度。

在特定实施例中,本公开中所描述的抖动方法和过程(例如,空间抖动方法、时间抖动方法和空间-时间方法)可以在显示引擎130的显示块135中体现或实现。在特定实施例中,显示块135可以包括用于每个颜色通道的基于模型的抖动算法或抖动模型,并向显示系统140的相应的显示驱动器IC(DDI)(例如,142A、142B、142C)发送相应颜色通道的抖动结果。在特定实施例中,在向相应的显示驱动器IC(例如,142A、142B、142C)发送像素值之前,显示块135还可以包括用于校正例如像素非均匀性、LED非理想性、波导非均匀性、显示缺陷(例如,死像素)等的一个或多个算法。

在特定实施例中,图形应用(例如,游戏、地图、提供内容的应用等)可以构建场景图,该场景图与给定的视图位置和时间点一起使用,以生成要在GPU或显示引擎上渲染的图元。该场景图可以定义场景中多个对象之间的逻辑和/或空间关系。在特定实施例中,显示引擎130还可以生成并存储这样的场景图:该场景图是完整应用场景图的简化形式。简化的场景图可以用于指定多个表面(例如,由显示引擎130渲染的各图元,例如在3D空间中定义的各四边形或轮廓,所述四边形或轮廓具有基于应用所渲染的主帧而生成的对应纹理)之间的逻辑和/或空间关系。存储场景图允许显示引擎130将场景渲染到多个显示帧,并针对当前视点(例如,头部位置)、各当前对象位置(例如,它们可以相对于彼此移动)和改变每个显示帧的其他因素来调整场景图中的每个元素。此外,显示引擎130还可以基于该场景图,对显示子系统所引入的几何失真和颜色失真进行调整,并且随后将多个对象合成在一起以生成帧。存储场景图允许显示引擎130在实际上以显著低的速率运行GPU或显示引擎130的情况下,接近以期望的高帧率进行全渲染这一结果。

图1D示出了用于生成显示图像数据的显示引擎130的示例图形流水线100D。在特定实施例中,图形流水线100D可以包括可见性步骤152,在该可见性步骤中,显示引擎130可以确定从身体可穿戴计算系统接收的一个或多个表面的可见性。该可见性步骤152可以由显示引擎130的转换块(例如,图1C中的2133)执行。显示引擎130可以(例如,通过控制块或控制器)接收来自身体可穿戴计算系统的输入数据151。该输入数据151可以包括来自身体可穿戴计算系统的一个或多个表面、纹理数据、位置数据、RGB数据和渲染指令。输入数据151可以包括每秒帧数(frames per second,FPS)为30至90的主帧图像。该主帧图像可以具有例如每像素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等。在特定实施例中,可以由显示引擎130的显示块(例如,图1C中的135)执行扭曲步骤154、校正和抖动步骤155、以及串行化步骤156。显示引擎130可以混合用于显示内容渲染的显示内容,对各像素颜色值应用一个或多个亮度校正,并执行一个或多个抖动算法、以用于在空间上和时间上(在特定实施例中,部分地基于非均匀数据157和/或误差传播数据158)对各量化误差进行抖动,针对物理显示器的扫描线输出对各像素值进行串行化,并生成适合于显示系统140的显示数据159。显示引擎130可以将显示数据159发送到显示系统140。在特定实施例中,显示系统140可以包括用于RGB三个颜色通道(例如,144A、144B、144C)的像素的三个显示驱动器IC(例如,142A、142B、142C)。

图2A示出了示例扫描波导显示器200A。在特定实施例中,AR/VR系统的头戴式显示器(HMD)可以包括近眼显示器(near eye display,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。可以通过改变图像光219进入耦合元件218的的方位和位置,来控制从输出波导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(如由小图中的点表示)的阵列。由光源220发射的光223可以包括由每列光发射器222发射的一组准直光束。光223在到达反射镜224之前,可以由不同的光学器件(例如,调节组件(未示出))来调节。在扫描操作期间,反射镜224可以通过绕轴225转动,使来自光源220的光223反射并投射到图像场227。反射镜224可以是微机电系统(microelectromechanical system,MEMS)反射镜或任何其他合适的反射镜。当反射镜224绕轴225转动时,光223可以被投射到图像场227的不同部分,如用实线表示的反射部分的光226A和用虚线表示的反射部分的光226B所示。

在特定实施例中,当反射镜224绕轴225转动以沿不同的方向投射光226A和226B时,图像场227可以接收光226A和226B。例如,图像场227可以与图2A中的耦合元件218的一部分或解耦元件206的一部分相对应。在特定实施例中,图像场227可以包括耦合元件206的表面。在图像场227上形成的图像可以随着光传输通过输出波导220而被放大。在特定实施例中,图像场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中的光发射器222的列数可以与图像场227中的像素位置229的列数相同,但行数更少。作为示例而非限制,光源220可以具有大约1280列的光发射器222(其可以与图像场227的像素位置229的列数相同),但仅具有少数几行光发射器222。光源220可以具有第一长度L1,该第一长度L1是从光发射器222的第一行到最后一行测量得到的。图像场530可以具有第二长度L2,该第二长度L2是从图像场227的第一行(例如,第1行)到最后一行(例如,第P行)测量得到的。L2可以大于L1(例如,L2比L1大50到10000倍)。

在特定实施例中,像素位置229的行数可以大于光发射器222的行数。显示设备200B可以使用反射镜224在不同时间将光223投射到不同的像素行。当反射镜224转动并且光223扫描遍历图像场227时,可以在图像场227上形成图像。在一些实施例中,光源220也可以具有比图像场227更少的列数。反射镜224可以在两个维度上转动以用光填充图像场227,例如使用光栅型扫描过程向下扫描多行,然后移动到图像场227中的新的列。反射镜224的完整转动周期可以被称为扫描周期,该扫描周期可以是预定周期时间,在该预定周期时间期间,整个图像场227被完全扫描。可以通过反射镜224来确定和控制对图像场227的扫描,其中显示设备200B的光生成与反射镜224的转动同步。作为示例而非限制,在一个扫描周期期间,反射镜224可以在将光投射到图像场227的第1行的初始位置处开始,并转动到将光投射到图像场227的第P行的最后位置,并且随后转动返回到初始位置。每个扫描周期,可以在图像场227上形成一图像(例如,一帧)。显示设备200B的帧率可以对应于一秒内的扫描周期数。当反射镜224转动时,光可以扫描遍历图像场以形成图像。给定像素位置229的实际颜色值、和光强度或亮度可以是在扫描周期期间照射该像素位置的各种光束的颜色的时间上的总和。在结束一扫描周期之后,反射镜224可以恢复回到初始位置,以使用馈送到各光发射器222的新的一组驱动信号来将光投射到图像场227的前几行。随着反射镜224循环转动,可以重复相同的过程,以允许在扫描场227中形成不同的图像帧。

图3A示出了示例2D微型LED波导显示器300A。在特定实施例中,显示器300A可以包括细长的波导构造302,该波导构造可以足够宽或足够长,以将图像投射到用户的双眼。波导构造302可以包括覆盖用户的双眼的解耦区域304。为了通过波导构造302向用户的双眼提供图像,可以在波导构造302的顶表面中提供多个耦合区域306A和360B。耦合区域306A和306B可以包括多个耦合元件,以分别接收来自光发射器阵列组308A和308B的图像光。发射器阵列组308A和308B中的每个可以包括多个单色发射器阵列,该多个单色发射器阵列包括:例如但不限于,红色发射器阵列、绿色发射器阵列和蓝色发射器阵列。在特定实施例中,发射器阵列组308A和308B还可以包括白色发射器阵列、或发射其他颜色或任何多种颜色的任何组合的发射器阵列。在特定实施例中,波导构造302可以具有这样的发射器阵列组308A和308B:该发射器阵列组308A和308B覆盖解耦区域304的由分隔线309A划分的大致相同的部分。在特定实施例中,发射器阵列组308A和308B可以向波导构造302的由分隔线309b不对称地划分的波导提供图像。例如,发射器阵列组308A可以向解耦区域304的一半以上提供图像。在特定实施例中,发射器阵列组308A和308B可以布置在如图3B所示的波导构造302的相对两侧(例如,以180°分开)。在其他实施例中,发射器阵列组308A和308B可以以任何合适的角度布置。波导构造302可以是平面的,或者可以具有弯曲的截面形状以更好地适配用户的脸部/头部。

图3B示出了用于2D微型LED波导显示器的示例波导构造300B。在特定实施例中,波导构造300B可以包括耦合到波导342的投影仪设备350。投影仪设备320可以包括固定到支承结构354(例如,印刷电路板或其他合适的支承结构)的多个光发射器352(例如,单色发射器)。可以通过具有距离D1(例如,大约50μm到大约500μm)的气隙将波导342与投影仪设备350分开。由投影仪设备350投射的单色图像可以通过气隙朝向波导342。波导342可以由玻璃或塑料材料制成。波导342可以包括耦合区域330,该耦合区域包括用于接收从投影仪设备350发射的光的多个耦合元件334A至334C。波导342可以包括解耦区域,该解耦区域具有位于上表面318A上的多个解耦元件336A和位于下表面318B上的多个解耦元件336B。波导342内位于解耦元件336A与336B之间的区域可以被称为传播区域310,在该传播区域中,从投影仪设备350接收并通过耦合元件334耦合到波导342中的图像光可以在波导342内横向传播。

耦合区域330可以包括这样的耦合元件(例如,334A、334B、334C):所述耦合元件被配置且尺寸被设置为耦合预定波长的光(例如,红色光、绿色光、蓝色光)。当投影仪设备350中包括白色光发射器阵列时,白色光中落入预定波长的部分可以通过耦合元件334A、334B、334C中的每个来进行耦合。在特定实施例中,耦合元件334A和334B可以是尺寸被设置为耦合预定波长的光的光栅(例如,布拉格光栅(Bragg grating))。在特定实施例中,各个耦合元件的光栅可以呈现出与预定波长的光相关联的、光栅间的间隔距离,并且各个耦合元件可以具有不同的光栅间隔距离。因此,如果投影仪设备350中包括白色光发射器阵列,则每个耦合元件(例如,334A至334C)可以耦合来自投影仪设备350的白色光发射器阵列的白色光的有限部分。在特定实施例中,各个耦合元件(例如,334A至334C)可以具有相同的光栅间隔距离。在特定实施例中,耦合元件334A至334C可以是或包括多路复用耦合器。

如图3B所示,红色图像320A、蓝色图像320B和绿色图像320C可以分别通过耦合元件334A、334B、334C耦合到传播区域310中,并且可以开始在波导342内横向传播。在光接触解耦元件336A以进行一维光瞳复制之后、并且在光接触解耦元件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个灰度级)。

AR/VR显示系统可以使用光瞳复制波导将图像光传输到观看者的双眼。然而,对于RGB颜色通道中的每个颜色通道的光传输,所述波导可以具有空间变化的非均匀性。这种非均匀性可能会导致所显示的图像在从不同的眼睛位置观看时具有不同的颜色,并因此负面地影响用户体验。理想情况下,从特定眼睛位置观看的静态图像可以使其像素值被调整,以补偿波导非均匀性并消除负面视觉效果。例如,为了补偿波导非均匀性,可以在显示图像之前使用基于当前眼睛位置确定的校正图来校正图像。然而,由于非均匀性与视点相关,因此为每个可能的眼睛位置预先生成和存储校正图可能是不切实际的。实际上,对于预定的眼睛位置,可能只能预先生成相对少量的校正图。对于特定眼睛位置,系统可以基于所测量到的从预定眼睛位置观看的波导的非均匀传输特性来生成校正图(即,可以根据预先生成的校正图对特定眼睛位置的校正图进行插值)。此外,对于从不同眼睛位置观看的一系列图像,可能需要眼动追踪系统来动态测量观看者的眼睛位置以确定合适的补偿。用于确定眼睛位置的眼动追踪系统可能存在一些问题,例如时延、以及在准确性和精确度方面的限制。如果基于眼动追踪系统所提供的眼睛位置直接对图像进行校正(这可能不准确或有时延),则对图像进行的校正可能不准确或不正确。当发生这种情况时,观看者可以在所显示的一系列图像中观察到闪烁伪影。

该系统的特定实施例可以使用校正图来校正要显示的图像,该校正图是基于使用眼动追踪系统确定的当前眼睛位置来生成的。该系统可以生成相对于该波导(例如,光瞳复制波导)的多个预定眼睛位置(例如,对应于6×6网格)的校正图,且随后将其作为输入数据使用。每个校正图可以与三色颜色空间(tristimulus color space)的特定颜色通道相关联,在该三色颜色空间中,每种颜色在标准化条件下与三种基准色(例如,原色红色、绿色和蓝色)匹配。例如,在特定实施例中,每个校正图可以与特定RGB颜色通道相关联,并且每个预定眼睛位置可以与三个校正图相关联,RGB颜色通道中的每个颜色通道一个校正图。每个校正图可以包括2D缩放因子阵列,以缩放该特定颜色通道的2D图像像素值。如果当前眼睛位置(X,Y)没有落在预定眼睛位置上,而是落在预定眼睛位置的网格之间,则该系统可以识别与包含当前眼睛位置(X,Y)的区域相关联的16个预定眼睛位置(例如,4×4阵列)。然后,该系统可以对与16个预定眼睛位置相关联的相应校正图应用双三次插值,以生成用于当前眼睛位置的(用于RGB颜色通道的)校正图。

在特定实施例中,如果当前眼睛位置位于适眼框(eye-box)的边缘处或边缘附近,则该系统可以识别位于包含当前眼睛位置(X,Y)的网格区域的四个角处的最近四个预定眼睛位置(例如,对应于2×2阵列)。然后,该系统可以对与这四个预定眼睛位置相关联的相应校正图应用双线性插值,以生成用于当前眼睛位置的(用于RGB颜色通道的)校正图。该系统可以使用双线性插值来分别为RGB颜色通道生成三个校正图,其中每个校正图是基于同一颜色通道的四个校正图的双线性插值而生成的。替代地,该系统可以访问或以其他方式获取(例如,通过外推法)与适眼框外侧的点相关联的校正图数据,并且可以使用该附加校正数据来完成对与当前眼睛位置周围的区域相关联的4×4缩放因子阵列的填充。在任一情况下,在当前眼睛位置靠近适眼框的边缘时、使用与适眼框外侧的点相关联的校正图数据来补偿波导非均匀性可能会导致比不考虑这样的数据时更平滑的图像校正行为和更好的用户体验。

在特定实施例中,系统可以存储与适眼框内的眼睛位置相关联的预先生成的校正图。在特定实施例中,系统可以使用时间过滤器来基于以下校正图来生成优化校正图:基于当前眼睛位置而生成的校正图、和用于校正先前帧的校正图。在特定实施例中,系统可以将校正图向上采样到与图像分辨率或显示分辨率匹配的更高空间分辨率,并将高分辨率图应用于当前帧以供显示。因此,可以消除或减少由波导非均匀性引起的所显示的一系列图像中的视觉伪影。在特定实施例中,通过使用时间过滤器并考虑先前帧的校正图,该系统可以有效地消除或减少由只考虑空间非均匀性而不考虑时间域的非均匀性补偿所引起的闪烁伪影。通过利用有限的分辨率和有限数量的预定眼睛位置计算和存储预先生成的校正图,该系统可以提高系统效率并减少计算机资源的使用。

在特定实施例中,AR/VR显示系统可以使用光瞳复制波导来将光传输到观看者的眼睛,以向观看者显示图像或视频。耦合到波导中的图像可以在视场角上进行复制。光瞳复制波导可以具有空间变化特性,以传输用于RGB颜色通道的不同颜色和强度非均匀性的光。因此,当从不同的眼睛位置(也称为瞳孔位置)观看所显示图像(或所显示图像的一部分)时,所显示图像(或所显示图像的一部分)可能看起来具有不同的颜色。例如,当从特定眼睛位置观看图像时,本应为白色的图像区域可能看起来是品红色,因为当从该特定眼睛位置观看时,绿色通道的传输被波导抑制。在特定实施例中,该系统可以通过基于观看者的当前眼睛位置调整所显示图像的像素值来补偿波导的非均匀性。作为示例而非限制,该系统可以测量波导对于特定眼睛位置的光传输特性,并且基于所测量的波导对于这些特定眼睛位置的传输特性来生成校正图。每个校正图可以包括用于缩放特定颜色通道的图像像素值的缩放因子阵列。该系统可以为RGB颜色通道的每个颜色通道生成校正图。当观看者的眼睛位于那些特定的眼睛位置时,该系统可以将这些校正图应用于要显示的图像以调整这些图像的像素值。具有调整后的像素值的图像一旦被显示可能会在从这些特定眼睛位置被观看时具有正确的颜色,波导非均匀性效应被消除或减少。

假设线性空间中所需的全色图像由第一矩阵P表征,并且彩色波导图案由第二矩阵W表征,则观看者所看到的图像I可以被表示为以下等式:

I=P·W (1)

该系统可以通过使用由以下等式确定的校正图F来修改图像的像素值,来补偿波导非均匀性以扭转图像中的颜色失真:

F= W

然后,该系统可以通过应用校正图并使用以下等式在线性空间中导出校正图像P’,来生成对所需图像的合理近似值:

P′=P·F(3)

在上面的等式(3)中,F的值可以在[0,1]的范围内。观看者所看到的图像可以用以下等式来表征:

I=P′·W=(P·F)·W≈P (4)

该近似值可以是由于诸如眼睛位置测量中的时延和有限的精确性和准确性、未对准、眼睛运动等因素引起的不完美校正。校正范围可以被包含在F的数值范围内。在特定实施例中,非均匀性水平可以在标称水平5:1内,并且最大F值与最小F值的比值可以等于或小于5。

在特定实施例中,对于要从特定眼睛位置观看的静态图像,该系统可以通过将相应的校正图应用于该图像以调整其像素值来补偿波导非均匀性。具有调整后的像素值的图像一旦被显示可能会在从该特定眼睛位置被观看时、具有较少的由波导非均匀性引起的视觉伪影或没有视觉伪影。然而,为了向观看者显示一系列图像,并且当观看者的眼睛位置在视场角内(例如,从左到右)移动时,当从不同的眼睛位置观看该一系列图像时,该一系列图像可能看起来具有不同的颜色。因此,随眼睛位置变化的波导非均匀性可能会对要显示的图像施加空间要求和时间要求两者。与可在空间域(例如,使用用于特定眼睛位置的校正图)进行有效补偿的静态图像不同,从不同眼睛位置观看的一系列图像可能需要在空间域和时间域两者中进行补偿。在特定实施例中,为了显示从不同眼睛位置观看的一系列图像,该系统可以使用眼动追踪系统来动态测量观看者的眼睛位置,并基于所动态测量的眼睛位置来确定相应的校正图。

在某些情况下,眼动追踪系统在测量眼睛位置以用于动态非均匀性校正时可能存在时延问题。例如,在用于生成并应用与特定眼睛位置相关联的校正图的时间期间,观看者的眼睛可能会移动相对较大的距离。由眼动追踪系统确定的观看者的眼睛位置可能会在时间上落后于观看者的实际眼睛位置。该系统可以在眼动追踪系统测量眼睛位置的第一时刻与经校正的帧被实际渲染和显示的第二时刻之间具有恒定或可变的时间段。在特定实施例中,眼动追踪系统的时延可以高达7ms。此外,对于测量眼睛位置,眼动追踪系统可能具有有限的准确度(例如,与地面实况(ground truth)的恒定空间偏移)和有限的精确度(例如,样本到样本抖动、地面实况和眼动追踪读取之间的时间变化差值)。在特定实施例中,眼动追踪系统的精确度可以是0.086mm(对应于视角的0.5度),并且眼动追踪系统的准确度可以是0.125mm(对应于视角的0.7度)。眼动追踪系统的准确度和精确度可以彼此独立,但可能对所显示图像的质量具有联合影响。空间伪影可能会受眼动追踪系统的准确度的影响。时间伪影可能会受眼动追踪系统的准确度和精确度两者的影响。因此,如果基于眼动追踪系统提供的眼睛位置来对图像进行直接校正,则对图像进行的补偿可能是不准确和不精确的。当发生这种情况时,观看者可以在所显示的图像中观察到闪烁或闪烁伪影。例如,眼动追踪系统中关于眼睛位置的读取的持续偏差可能会导致不准确的补偿图。不精确的眼睛位置读取可能导致眼睛位置数据中的较高水平的噪声,并导致校正图在时间域中不平滑(例如,连续帧的校正图的差异高于阈值)。为了解决这些问题,该系统的特定实施例可以基于校正图来校正要显示的图像,这些校正图基于以下项来生成:(1)(使用眼动追踪系统确定的)当前眼睛位置;以及(2)考虑用于校正先前帧的校正图的时间过滤器,如本公开的后面部分将描述的。注意,尽管附图中所示出和本文中所描述的几个示例实施例使用双三次插值、来基于与包含当前眼睛位置的区域中的预定眼睛位置的集合(例如,预定眼睛位置的4×4阵列)相关联的校正图来生成用于当前眼睛位置的校正图,但是在其他实施例中,可以使用不同类型的插值来基于与附近眼睛位置相关联的校正图来生成用于当前眼睛位置的校正图。例如,尽管可以选择双三次插值,因为它具有连续的一阶导数,但可以使用其他插值算法,这些插值算法需要与双三次插值所需的4×4支持不同的支持。还要注意,尽管附图中所示出和本文中所描述的几个示例实施例为RGB颜色空间中的三个颜色通道中的每个颜色通道生成相应的校正图,但在其他实施例中,可以为不同颜色空间中的每个颜色通道生成校正图。例如,在特定实施例中,可以为YCbCr颜色空间(其包括一个亮度通道(Y)和两个色度通道(Cb和Cr))中的每个颜色通道生成校正图,或者可以为如下颜色空间中的每个颜色通道生成校正图:在该颜色空间中,已经压缩了YCbCr颜色空间值以降低内存需求。在特定实施例中,各个校正图可以与三色颜色空间(其随后可以被转换成RGB颜色空间)的特定颜色通道相关联,其中三色实现方式在理论上可以处理任何数量的主要基准颜色的不同集合。注意,在各种实施例中,为可应用颜色空间的每个颜色通道生成的相应校正图可能具有或可能不具有相同的数据分辨率。例如,在YCbCr压缩的情况下,用于Cb通道和Cr通道的数据分辨率将是用于Y通道的数据分辨率的一半。

图4A示出了用于测量波导非均匀性并生成用于预定眼睛位置的校正图的示例过程400A。在特定实施例中,该系统可以从对应于波导视场角(例如,尺寸为10mm×10mm的适眼框区域)中的N×N网格的多个预定眼睛位置预先测量波导的光传输特性。然后,该系统可以基于所测量的光传输特性,为这些预定眼睛位置生成校正图。每个校正图可以包括用于对要显示的图像的特定颜色通道的像素值进行缩放的缩放因子阵列。作为示例而非限制,如图4A所示,该系统可以预先测量与6×6网格410的交点相对应的位置处的波导特性(例如,RGB颜色通道的光传输特性、色移范围、颜色失真、不同颜色的光强度等)。网格410中的每个点可以对应于眼睛位置(例如,眼睛位置411P和466P)。每个眼睛位置可以对应于如下波导模型:该波导模型表征从该特定眼睛位置观看的波导的光传输特性。对于这些预定眼睛位置中的每个(例如,411P和466P),该系统可以生成用于调整要显示的图像的像素值的相应校正图(例如,411M和466M)。作为另一示例,该系统可以预先测量在与9×7网格的交点相对应的位置处的波导特性。在特定实施例中,波导区域可以具有10mm×10mm的尺寸,并且可以对应于20度×30度的视场角。在特定实施例中,可以在波导区域的间隔距离为2mm的每个点处测量波导区域的颜色非均匀性,以生成相应的输入校正图。在特定实施例中,该系统可以为这些预定眼睛位置生成校正图,并将所生成的图存储在数据库和计算机存储器中。在特定实施例中,预先生成的校正图可以具有相对较低的空间分辨率(例如,25像素×25像素),以最小化计算机系统资源(例如,存储器、内存访问、处理能力等)的使用负担。如本公开稍后将描述的,该系统可以在将校正图应用于要显示的图像之前,将低分辨率校正图上采样到与图像分辨率或显示分辨率匹配的较高分辨率。

在特定实施例中,为了校正一系列图像的当前帧,该系统可以首先使用眼动追踪系统来确定观看者的当前眼睛位置(X,Y)。可以在用于准备当前帧的过程开始时确定当前眼睛位置(X,Y)。该系统可以将由眼动追踪系统确定的当前眼睛位置(X,Y)与波导区域(例如,适眼框区域)的预定眼睛位置进行比较。当当前眼睛位置(X,Y)落在预定眼睛位置中的一个预定眼睛位置时(例如,处于到预定眼睛位置的阈值距离内)时,该系统可以选择与该特定眼睛位置相关联的校正图。该系统可以从数据库和计算机存储器访问和检索所选择的校正图。所检索到的校正图在由图形流水线的后续步骤(例如,时间过滤器和/或上采样算法)处理之后,可以用于校正当前帧以补偿波导非均匀性。

在特定实施例中,使用眼动追踪系统确定或测量的观看者的当前眼睛位置(X,Y)可以不落在预定眼睛位置中的任何一个上(例如,超过到任何预定眼睛位置的阈值距离),并且落在这些预定位置之间的区域中。作为示例而非限制,在第一时刻,观看者的眼睛位置可以位于由眼动追踪系统测量或追踪的眼睛位置401处,并且可以开始沿着眼睛运动向量402向眼睛位置403移动。在第二时刻,观看者的眼睛位置可以位于由眼动追踪系统测量或追踪的眼睛位置403处。该系统可能需要分别在第一时刻和第二时刻向观看者显示两帧图像。针对这两帧所测量的眼睛位置可以不落在网格410中的任何预定眼睛位置处。而是,所测量的眼睛位置401和403可以落在预定眼睛位置之间的区域中。该系统可以基于对预定位置的预先生成的校正图进行插值来生成用于测量的眼睛位置401和403的校正图。

在特定实施例中,该系统可以识别16个预定眼睛位置,该16个预定眼睛位置对应于4×4阵列,并且与包含当前眼睛位置(X,Y)的区域(例如,对应于预定位置的4×4阵列的最小区域)相关联。然后,该系统可以从数据库访问和检索与这16个预定眼睛位置相关联的相应校正图。然后,系统可以对与16个预定眼睛位置相关联的相应校正图应用双三次插值,以为当前眼睛位置生成(用于RGB颜色通道的)校正图。该系统可以使用双三次插值来分别为三个RGB颜色通道生成三个校正图,每个校正图是基于同一颜色通道的十六个校正图的双三次插值而生成的。在特定实施例中,替代地,该系统可以识别位于包含当前眼睛位置(X,Y)的网格区域的四个角处的最接近的四个预定眼睛位置(例如,2×2阵列)。然后,该系统可以对与四个预定眼睛位置相关联的相应校正图应用双线性插值,以为当前眼睛位置生成(用于RGB颜色通道的)校正图。该系统可以使用双线性插值来分别为RGB颜色通道生成三个校正图,其中每个校正图是基于同一颜色通道的四个校正图的双线性插值而生成。

图4B示出了用于基于预先生成的校正图的双线性插值来为当前眼睛位置401生成校正图的示例过程400B。总体而言,二维校正图的值可以取决于观看者的眼睛位置。波导校正图案可以包围整个视场角,但是可以针对多个预定眼睛位置进行测量。针对多个预定位置的中间眼睛位置重建校正图可以是四维插值问题,该四维插值问题包括用于瞳孔位置的两个维度和用于空间波导图案的另外两个维度。在特定实施例中,在给定瞳孔位置落入的波导区域(例如,适眼框区域)的情况下,该四维问题可以简化为2D插值。在特定实施例中,如图4A至图4C所示,可以在对应于6×6网格的多个预定点处对波导区域(例如,适眼框区域)进行采样。该系统可以这些这些点预先生成校正图,并将这些预先生成的校正图存储在数据库和计算机存储器中。在运行时,为了显示一系列图像的当前帧,该系统可以首先使用眼动追踪系统来确定或测量当前眼睛位置(X,Y)。然后,该系统可以识别位于包含当前眼睛位置(X,Y)的网格区域的四个角处的最接近的四个预定眼睛位置(例如,2×2阵列)。然后,该系统可以基于对与四个预定眼睛位置相关联的相应校正图的双线性插值来生成用于当前眼睛位置的校正图。

作为示例而非限制,对于在波导区域(例如,10mm×10mm适眼框区域)中所测量的具有坐标(X,Y)的眼睛位置401,该系统可以确定所测量的眼睛位置401相对于与包含所测量的眼睛位置401的最小网格区域406相关联的四个预定眼睛位置(例如,405A、405B、405C和405D)的归一化坐标(X,Y)。在特定实施例中,N×N个采样点可以使用(i,j)进行索引,其中i处于1≤i≤N的范围内,j处于1≤j≤N的范围内。X方向上的瞳孔位置范围可以是[X

p=(N-1)(X-X

q=(N-1)(Y-Y

眼睛位置405C(其是网格区域406的四个角中在X方向和Y方向上具有最小坐标值的网格区域406的角)可以具有使用以下等式确定的其索引(ic,jc):

i

j

所测量的眼睛位置401相对于四个相关联的预定眼睛位置(例如,405A、405B、405C和405D)的归一化位置(x,y)可以使用以下等式来确定:

x=p-floor(p) (9)

y=q-floor(q)(10)

在等式(9)和(10)中,floor表示floor函数。然后,系统可以基于与四个预定位置405A、405B、405C和405D相关联的校正图的双线性插值来确定当前眼睛位置(X,Y)的校正图F。可以使用以下等式来确定眼睛位置(X,Y)处的波导校正图F:

F=(1-x)·(1-y)·F

在等式(11)中,F

F(X,Y)=(1-y)·a+b·y(12)

在等式(12)中,(x,y)是眼睛位置(X,Y)相对于包含眼睛位置(X,Y)的最小网格区域的四个角的归一化坐标,a和b是由以下等式确定的中间参数:

a=(1-x)·F

b=(1-x)·F

如本文所描述的,动态均匀性校正既是空间问题,也是时间问题。因此,当所选择的校正图快速改变时,可能希望实现不受伪影影响的插值方案。要做到这一点,重要的是插值的一阶导数是连续的,否则图像之间可能会有跳跃或闪烁。尽管通常使用双线性插值,因为它相对简单和容易实现,但在给定的样本点,一阶导数是不连续的。用连续的一阶导数进行插值的一种方法是使用双三次插值。使用双三次插值而不是双线性插值的一大优点是,由于插值算法保证了连续的一阶导数而提高了时空性能。然而,它也有一些劣势,例如:1)它需要比双线性插值更多的计算资源,以及2)它需要4×4支持。换言之,对于给定的眼睛位置,需要围绕给定眼睛位置的4×4样本支持以便执行插值。这种方法可能特别适合于给定眼睛位置位于波导的中心部分的情况,其中有左右排列、上下排列的两个样本。

图4C示出了用于基于预先生成的校正图的双三次插值来生成当前眼睛位置403的校正图的示例过程400C。在特定实施例中,该系统可以识别与最小区域相关联的16个预定眼睛位置(例如,4×4阵列),该最小区域对应于预定眼睛位置的4×4阵列并且包含当前眼睛位置(X,Y)。然后,系统可以对与该16个预定眼睛位置相关联的相应校正图应用双三次插值,以生成当前眼睛位置(X,Y)的(用于RGB颜色通道的)校正图。该系统可以使用双三次插值来分别为三个RGB颜色通道生成三个校正图,每个校正图是基于同一颜色通道的16个校正图的双三次插值而生成的。在特定实施例中,系统可以通过以下方式识别与当前眼睛位置相关联的4×4个点:(1)首先识别2×2个点,该2×2个点对应于包含当前眼睛位置的最小网格区域(例如,408);(2)识别参考点(例如,407),该参考点对应于网格区域的四个角中具有最小X值和Y值的网格区域的角;(3)使用如图4C中的4×4阵列420中的点所示的相对位置关系,基于参考点识别剩余的15个网格点。在特定实施例中,双三次插值可以在优选实施例中使用,以用于防止闪烁,因为双三次插值具有有助于防止闪烁的连续一阶导数。

作为示例而非限制,对于所测量的眼睛位置403,系统可以基于由眼动追踪系统测量的眼睛位置403来识别网格410中的点的4×4阵列420。所识别的4×4个点可以对应于包含所测量的眼睛位置403的最小4×4点区域。然后,系统可以对与点的4×4阵列420相关联的校正图执行双三次插值,以生成所测量的眼睛位置403的校正图。双三次插值可以保证用于对校正图进行插值的连续一阶导数。给定位于网格410的中心适眼框区域中的眼睛位置(X,Y),可以使用以下等式的双三次插值来确定眼睛位置(X,Y)的校正图:

F(X,Y)=b+(y/2)·(c-a+y·(2a-5b-4c-d+y·(3b-3c+d-a)))(15)

在等式(15)中,使用以下等式确定参数a、b、c和d:

a=F

b=F

c=F

d=F

在等式(15)至(19)中,F

在特定实施例中,该系统可以在用户的眼睛位置位于波导区域的中心适眼框区域内时、生成校正图并将这些校正图应用于所显示的图像,并且可以在用户的眼睛位置超出中心适眼框区域时不将校正图应用于所显示的图像。在特定实施例中,系统可以确定波导区内对应于用户视场角的中心适眼框区域。中心适眼框区域可以是波导区域的子区域,并且可以位于波导区域的中心区域。在特定实施例中,中心适眼框区域可以具有任何合适的形状或小于波导区域的任何合适的尺寸。例如,中心适眼框区域可以是波导区域的矩形子区域,并且可以与矩形波导区域对齐并共同居中。作为另一示例,中心适眼框区域可以是位于波导区域的中心区域处的圆形子区域。

在特定实施例中,对于中心适眼框区域内的眼睛位置(例如图4C中所示的测量的眼睛位置403),该系统可以选择多个预定眼睛位置(例如,具有均匀间隔距离的眼睛位置阵列),并为多个预定眼睛位置中的每个眼睛位置生成(用于相应RGB颜色通道的)三个校正图。该系统可以基于在相应预定眼睛位置处测量的波导传输特性来生成这些校正图。该系统可以将这些预先生成的校正图存储在数据库中。在运行时,在确定了当前用户眼睛位置之后,该系统可以首先检查当前用户眼睛位置是否位于中心适眼框区域内。响应于确定用户眼睛位置位于中心适眼框区域内,该系统可以访问预先生成的校正图,并使用如本公开所描述的空间插值和时间平均方法来为当前用户眼睛位置生成(用于各个颜色通道的)校正图。然后,该系统可以针对当前用户眼睛位置而将校正图应用于显示图像。

图5A示出了用于为波导区域的中心区域中的当前眼睛位置生成校正图的示例框架500A。在特定实施例中,该系统可以使用光瞳复制波导来将光传输到观看者的眼睛,以向观看者显示图像。为了显示一系列图像的当前帧,该系统可以首先使用眼动追踪系统来确定观看者的当前眼睛位置529的(X,Y)坐标。观看者的当前眼睛位置529可以相对于波导区域,该波导区域对应于适眼框区域(例如,10mm×10mm)。可以在与适眼框区域相对应的波导区域中的多个预定位置处预先测量波导的光传输特性。多个预定位置可以对应于适眼框区域中的N×N网格(例如,6×6网格)。该系统可以为网格的预定眼睛位置中的每个预定位置预先生成三个校正图,其中三个校正图中的每个校正图与特定的颜色通道相关联。这些校正图可以基于在对应眼睛位置处测量的波导的光传输特性来生成。该系统可以将这些预先生成的校正图(例如,511、512和513)存储在数据库510中,该数据库可以存储在计算机存储器中。这些预先生成的校正图可以具有相对较低的空间分辨率(例如,25像素×25像素)以减少计算机资源的负担。

在特定实施例中,系统可以接收来自眼动追踪系统的当前眼睛位置529的(X,Y)坐标,并将这些眼睛位置坐标(X,Y)馈送到插值算法520。该系统可以识别适眼框区域的(例如,如图4C所示的)N×N网格中的预定眼睛位置的4×4阵列。预定眼睛位置的4×4阵列可以与包含(例如,如图4C所示的)当前眼睛位置的网格区域相关联。该系统可以从数据库510中检索与16个预定眼睛位置相关联的16组预先生成的校正图。每组校正图可以与对应的预定眼睛位置相关联。每组校正图可以包括三个校正图(例如,511、512和513),其包括用于RGB颜色通道的每个特定颜色通道的一个校正图。插值算法520可以对所检索到的16组校正图执行双三次插值,并分别使用双三次插值运算521、522和523生成一组校正图,该组校正图包括用于当前眼睛位置(X,Y)529的三个校正图(例如,用于红色通道的校正图531、用于绿色通道的校正图532和用于蓝色通道的校正图533)。

在特定实施例中,由插值算法520生成的校正图可以具有相对较低的空间分辨率,并且该系统可以使用双线性插值过程来将所生成的校正图上采样到与图像分辨率或显示分辨率(例如,1856像素×1472像素)匹配的较高空间分辨率。然后,该系统在输出当前帧以用于显示之前,可以将通过上采样过程生成的高分辨率校正图应用于当前帧(其中,每个高分辨率校正图被应用于一个颜色通道)。应用这些高分辨率校正图可能会使得当前帧的RGB颜色通道的像素值被这些高分辨率校正图中的相应缩放因子调整。因此,可以消除或减少由波导非均匀性引起的视觉伪影,并且该系统可以提高计算机资源的使用效率(例如,使用更少的存储空间、使用更少的处理能力、具有更长的电池寿命等)。例如,在所生成的校正图(例如,531、532和533)为低分辨率图的实施例中,系统可以使用上采样算法560来将低分辨率校正图(例如,531、532和533)转换为高分辨率校正图(例如,571、572和573)。上采样算法560可以基于低分辨率校正图,使用双线性插值(例如,561、562和563)来生成高分辨率校正图。高分辨率图(例如,571、572和573)可以具有与要显示的图像的分辨率或显示器的分辨率(例如,1856像素×1472像素)匹配的分辨率。然后,系统可以对要显示的一系列图像中的当前帧应用该三个高分辨率校正图(例如,571、572和573),以调整当前帧图像的像素值。可以将三个高分辨率图(例如,571、572和573)中的每个应用于当前帧的相关联的颜色通道。该系统可以将当前帧输出到显示器的光瞳复制波导。因此,可以显示当前帧,其中来自波导非均匀性的影响被消除或减少。

在特定实施例中,为了显示一系列图像,该系统可以使用眼动追踪系统来针对一系列图像的每一帧确定观看者的眼睛位置,并基于每一帧的对应眼睛位置生成校正图。根据图像的帧率和观看者眼睛的移动速度,在两个连续帧之间的时间段期间,观看者的眼睛位置可能已经移动了相对较大的距离(例如,大于阈值距离)。因此,由于所测量的第一帧的眼睛位置与所测量的第二帧的眼睛位置之间的距离相对较大,因此用于第一帧的校正图和用于第一帧之后的第二帧的校正图可能差别较大。因此,即使所生成的校正图能够分别很好地补偿第一帧和第二帧的波导非均匀性,观看者也可能会因校正图中的相对较大差异而遇到闪烁的视觉效果。

为了解决该问题,在特定实施例中,系统可以使用时间过滤器,不仅将当前帧的校正图考虑进去、还将用于校正先前帧的校正图考虑进去。在特定实施例中,该系统可以从计算机存储器中检索用于校正先前帧的先前校正图。然后,该系统可以使用时间过滤器,来基于以下项为每个颜色通道生成优化校正图:(例如,基于对与波导区域中的N×N网格相对应的预先生成的校正图进行的双线性插值或双三次插值)为当前眼睛位置生成的校正图、以及所检索到的用于校正先前帧的校正图。然后,该系统可以(在如后面部分中所述的上采样过程之后)使用优化校正图来调整要显示的图像的图像像素值,以补偿波导非均匀性。在特定实施例中,优化校正图可以是基于如下校正图的平均或加权平均而生成的平均校正图:(例如,基于对与波导区域中的N×N个网格相对应的预先生成的校正图进行的双线性插值或双三次插值)为当前眼睛位置生成的校正图、以及用于校正先前帧的一个或多个先前校正图。在特定实施例中,可以使用概率估计方法、基于(例如,基于对与波导区域中的N×N网格相对应的预先生成的校正图进行的双线性插值或双三次插值)为当前眼睛位置生成的校正图和用于校正先前帧的一个或多个先前校正图,来生成优化校正图。

作为示例而非限制,系统可以基于如下的校正图为每个颜色通道确定优化校正图:所述校正图是基于与预定的内部眼睛位置相关联的预先生成的校正图、和用于一先前帧的校正图的插值来为当前眼睛位置生成的。作为另一示例,系统可以基于如下的校正图为每个颜色通道确定优化校正图:所述校正图是基于与预定的内部眼睛位置相关联的预先生成的校正图、和与两个先前帧相关联的两个校正图的插值来为当前眼睛位置生成的。作为示例而非限制,该系统可以基于如下校正图为每个颜色通道确定优化校正图:所述校正图是基于与预定的内部眼睛位置相关联的预先生成的校正图、和与三个先前帧相关联的三个校正图的插值来为当前眼睛位置生成的。作为示例而非限制,该系统可以基于如下校正图为每个颜色通道确定优化校正图:所述校正图是基于与预定的内部眼睛位置相关联的预先生成的校正图、和与当前帧之前的所有帧相关联的任何先前校正图或所有先前校正图的插值来为当前眼睛位置生成的。

在特定实施例中,时间过滤器可以使用为当前眼睛位置生成的校正图、以及用于校正一个或多个先前帧的一个或多个先前校正图的直接平均或加权平均来确定优化校正图。例如,优化校正图中的缩放因子可以是为当前眼睛位置生成的校正图、以及用于校正先前帧的一个或多个先前校正图的相应缩放因子(例如,各个图中相同索引的缩放因子)的平均值。作为另一示例,优化校正图中的缩放因子可以是为当前眼睛位置生成的校正图、以及用于校正先前帧的一个或多个先前校正图的相应缩放因子(例如,各个图中相同索引的缩放因子)的加权平均值。作为又一示例,可以使用概率估计方法、基于为当前眼睛位置生成的校正图、以及用于校正先前帧的一个或多个先前校正图的相应缩放因子(例如,各个图中的相同索引的缩放因子),来确定优化校正图中的缩放因子。在特定实施例中,通过使用由时间过滤器生成的优化校正图,该系统可以减小用于校正图像的连续帧的校正图之间的差异。由相应优化校正图校正的图像的连续帧可以具有平滑过渡视觉效果,其中消除或减少了由校正图中的差异引起的强度的急剧变化。因此,所显示的内容随着时间的推移可能看起来更平滑,并且可能对眼动追踪数据中的误差更具弹性。

在特定实施例中,为当前眼睛位置生成的校正图可以具有相对较低的空间分辨率。类似地,存储在计算机存储器中的与先前帧相关联的先前校正图也可以具有相对较低的空间分辨率,以减少计算机资源使用的负担。因此,由时间过滤器基于当前帧的当前眼睛位置的校正图和与先前帧相关联的校正图而生成的优化校正图也可以具有相对较低的分辨率。在特定实施例中,低分辨率图可以具有与25×25缩放因子阵列相对应的25像素×25像素的空间分辨率。注意,25像素×25像素的空间分辨率是用于示例目的,并且校正图分辨率不限于此。例如,校正图可以具有允许使用合理数量的计算机资源存储和处理校正图的任何合适的分辨率。在特定实施例中,由于通过时间过滤器生成的优化校正图可能具有相对较低的空间分辨率,因此该系统可以使用双线性插值过程来将优化校正图上采样到与图像分辨率或显示分辨率(例如,1856像素×1472像素)匹配的较高空间分辨率。然后,该系统在输出当前帧以用于显示之前,可以将通过上采样过程生成的该高分辨率校正图应用于当前帧(每个高分辨率校正图被应用于一个颜色通道)。应用这些高分辨率校正图可能会使得当前帧的RGB颜色通道的像素值被这些高分辨率校正图中的相应缩放因子调整。因此,可以消除或减少由波导非均匀性引起的视觉伪影,并且该系统可以提高计算机资源的使用效率(例如,使用更少的存储空间、使用更少的处理能力、具有更长的电池寿命等)。

图5B示出了用于为波导区域内的当前眼睛位置生成校正图的示例框架,该波导区域对应于包括时间过滤器的适眼框区域。在特定实施例中,该系统可以使用光瞳复制波导来将光传输到观看者的眼睛,以用于向观看者显示图像。为了显示一系列图像的当前帧,该系统可以首先使用眼动追踪系统来确定观看者的当前眼睛位置529的(X,Y)坐标。观看者的当前眼睛位置529可以相对于波导区域,该波导区域对应于适眼框区域(例如,10mm×10mm)。可以在与适眼框区域相对应的波导区域中的多个预定位置处预先测量波导的光传输特性。多个预定位置可以对应于适眼框区域中的N×N网格(例如,6×6网格)。

在特定实施例中,该系统可以接收来自眼动追踪系统的当前眼睛位置529的(X,Y)坐标,并将这些眼睛位置坐标(X,Y)馈送到插值算法520。系统可以识别N×N网格内的围绕当前眼睛位置并且可能最接近当前眼睛位置的预定眼睛位置的4×4阵列。如图5A中所示的框架并如上所述,系统可以访问来自数据库510的校正图。这些校正图可以包括与预定的内部眼睛位置相关联的多组预先生成的校正图(例如,图5A中所示以及如上所述的校正图511、512和513)。每组校正图可以包括三个校正图,其包括用于RGB颜色通道的每个特定颜色通道的一个校正图。这些校正图可以具有相对较低的空间分辨率(例如,25像素×25像素),以减少对计算机资源的负担。

插值算法520可以对所访问的16组校正图(其包括与预定的内部眼睛位置相关联的多组预先生成的校正图)执行双三次插值,并且分别使用双三次插值运算521、522和523生成一组校正图,该组校正图包括用于当前眼睛位置(X,Y)529的三个校正图(例如,用于红色通道的校正图531、用于绿色通道的校正图532和用于蓝色通道的校正图533)。

在特定实施例中,在运行过程期间,该系统可以在计算机存储器中存储与先前帧相关联的(低分辨率格式的)先前校正图549。为了显示一系列图像的当前帧,该系统可以从计算机存储器访问和检索先前校正图549,并使用时间过滤算法540来生成当前帧的三个优化校正图(例如,551、552和553)。每个优化校正图可以具有相对较低的空间分辨率(例如,25×25),并且可以与RGB的特定色彩通道相关联(例如,低分辨率图551用于红色通道501、低分辨率图552用于绿色通道502、以及低分辨率图553用于蓝色通道503)。在特定实施例中,每个优化校正图可以是由插值算法520为当前眼睛位置(X,Y)生成的相应校正图、和与一个或多个先前帧相关联的(相同颜色通道的)一个或多个先前校正图549的平均值或加权平均值。在特定实施例中,可以使用概率估计方法、基于由插值算法520为当前眼睛位置(X,Y)生成的相应校正图以及与一个或多个先前帧相关联的(相同颜色通道的)一个或多个先前校正图549,来生成优化校正图。由于通过时间过滤算法540生成的校正图(例如,551、552和553)为低分辨率图,因此系统可以使用上采样算法560来将低分辨率校正图(例如,551、552和553)转换为高分辨率校正图(例如,571、572和573)。上采样算法560可以基于低分辨率校正图,使用双线性插值(例如,561、562和563)来生成高分辨率校正图。高分辨率图(例如,571、572和573)可以具有与要显示的图像的分辨率或显示器的分辨率(例如,1856像素×1472像素)匹配的分辨率。然后,系统可以对要显示的一系列图像的当前帧应用该三个高分辨率校正图(例如,571、572和573),以调整当前帧图像的像素值。可以将该三个高分辨率图(例如,571、572和573)中的每个应用于当前帧的相关联的颜色通道。该系统可以将当前帧输出到显示器的光瞳复制波导。因此,可以显示当前帧,其中来自波导非均匀性的影响被消除或减少。

在特定实施例中,为了显示当前帧,系统可以使用眼动追踪系统来确定观看者的当前眼睛位置,为该眼睛位置生成校正图,并将校正图应用于当前帧、以在向显示器输出图像之前调整图像像素值。然而,生成校正图并将校正图应用于图像可能需要一定的时间。如果观看者的眼睛快速移动,则在确定眼睛位置、生成校正图并将其应用于图像的时间段期间,观看者的眼睛位置可能已经移动了相对较大的距离(例如,大于阈值距离)。在实际显示图像的时刻,观看者的眼睛位置可以位于第二位置,该第二位置不同于由眼动追踪系统提供并用于生成校正图的眼睛位置(例如,相差阈值距离)。因此,所显示的图像即使通过校正图进行了调整,也仍然可能存在由波导非均匀性引起的伪影。

为了解决该问题,在特定实施例中,系统可以预测在图像(在被校正图调整之后)被实际显示的时刻、眼睛位置所处的位置。在特定实施例中,系统可以基于从当前时刻开始的未来一段时间(例如,1ms~100ms)内眼睛位置的预测移动路径或移动轨迹来预测眼睛位置。例如,系统可以(例如,使用眼动追踪数据)确定移动速度和移动方向,并基于移动速度和移动方向计算观看者的眼睛位置的预测移动路径或移动轨迹。作为另一示例,系统可以识别眼动追踪数据的一个或多个趋势,并基于所识别的眼动追踪数据的趋势来预测观看者的眼睛位置的移动路径或移动轨迹。作为另一示例,系统可以基于所显示内容的情境(例如,该内容被设计为按照特定路径以特定顺序观看,用户正在跟随移动对象)来预测眼睛位置的移动路径或移动轨迹。

在特定实施例中,可以在用于准备当前帧以供显示的过程的开始时刻进行预测。然后,系统可以计算图像将要实际显示的时刻的预测眼睛位置。预测眼睛位置可以基于由眼动追踪系统测量的当前眼睛位置、预测移动轨迹、以及生成校正图并将校正图应用于图像所需的时间量。预测眼睛位置可以更靠近图像被实际显示的时刻的实际眼睛位置的地面实况。因此,代替直接使用眼动追踪系统读取来生成校正图,系统可以使用预测眼睛位置(对应于图像将被实际显示的时刻)来生成校正图。因此,基于预测眼睛位置生成的校正图可以更有效地校正图像和补偿波导的非均匀性。

作为示例而非限制,为了显示当前帧,该系统可以使用眼动追踪系统来测量与用于准备当前帧以用于显示的开始相对应的第一时刻的当前眼睛位置。该系统可以基于眼动追踪数据的趋势确定观看者的眼睛位置正沿着直线并以第一速度朝特定方向移动。该系统可以预测特定时间段(例如,与两个或更多个连续帧的时间间隔相对应的时间段)内眼睛位置的移动路径。然后,该系统可以计算图像将被实际显示的时刻的预测眼睛位置。该系统可以基于以下来计算预测眼睛位置:由眼动追踪系统测量的第一时刻的当前眼睛位置、眼睛位置的预测移动路径、以及与用于生成校正图并将校正图应用于图像的时间量相对应的时间段。然后,该系统可以(例如,对预先生成的校正图使用双三次插值)为与图像将被实际显示的时刻相对应的预测眼睛位置生成校正图。然后,该系统可以使用时间过滤器,来基于预测眼睛位置的校正图、和与一个或多个先前帧相关联的一个或多个先前校正图来生成一组优化校正图。然后,该系统可以在输出图像以用于显示之前,将优化校正图上采样到与图像分辨率或显示分辨率匹配的更高分辨率、并将高分辨率校正图应用于该图像。因此,可以有效地补偿波导非均匀性对视觉效果的影响。

在特定实施例中,系统可以预测在覆盖一个或多个未来帧的未来时间段内观看者的眼睛位置的移动路径或移动轨迹。该系统可以基于预测的移动路径或移动轨迹,来预测在该时间段期间的任何时刻的观看者的眼睛位置。该系统可以为当前帧、半帧时刻、下一帧和其他后续帧等预测观看者的眼睛位置。然后,该系统可以为当前帧和一个或多个后续未来帧生成校正图。在特定实施例中,该系统不仅可以将用于校正先前帧的先前校正图馈送到时间过滤器中,还可以将一个或多个后续未来帧的校正图馈送到时间过滤器中,以生成时间优化校正图(在时间上平滑的校正图)。时间优化校正图可以允许所显示的图像进一步减少由波导非均匀性引起的伪影,并且使得在多个帧之间实现更平滑的过渡视觉效果。

在特定实施例中,该系统可以以90Hz的帧率操作。在特定实施例中,该系统可以通过增加帧率来进一步减少由波导非均匀性引起的视觉伪影。较高的帧速率可以对应于两个连续帧之间的较短时间段。给定眼睛位置的相同移动速度,则两个连续帧之间的较短时间段可以对应于在该时间段内眼睛位置的较小移动距离。因此,用于连续帧的校正图可以具有较小的差异,并因此在连续帧之间产生更平滑的过渡视觉效果。

在特定实施例中,该系统可以通过每帧多次更新校正图来进一步减少由波导非均匀性引起的伪影。作为示例而非限制,该系统可以测量与准备当前帧以用于显示的开始相对应的第一时刻的当前眼睛位置。该系统可以计算在生成和应用校正图所需的时间段之后的未来时刻的预测眼睛位置。如在本公开的其他部分中所描述的,该系统可以生成校正图并将其应用于一系列图像的当前帧。在实际输出经校正的图像之前,该系统可以再次测量当前眼睛位置,并将所测量的当前眼睛位置与用于生成当前使用的校正图的预测眼睛位置进行比较。即使新测量到的眼睛位置可能由于测量时延而仍然具有其自身的误差,新测量到的眼睛位置也可能因没有进行生成校正图和应用校正图的步骤而更接近眼睛位置的地面实况(例如,处于到该时刻的实际眼睛位置的合理距离内)。当所测量的当前眼睛位置和预测的眼睛位置彼此接近时(例如,处于阈值距离内),该系统可以继续进行以输出经校正的当前帧。当所测量的当前眼睛位置和预测的眼睛位置彼此相距很远(例如,超过阈值距离)时,该系统可以计算新预测的眼睛位置,并基于新预测的眼睛位置重新生成校正图,并将这些校正图重新应用于图像。该系统可以重复该过程,直到预测的眼睛位置和后来测量的眼睛位置彼此处于阈值距离内。然后,该系统可以继续进行以输出经校正的当前帧。因为可以每帧多次更新校正图,所以校正图可以由于预测眼睛位置中的误差减小而具有一定程度的误差。因此,可以进一步减少由波导非均匀性引起的视觉伪影。在预测位置位于边界区域内并且靠近与适眼框区域相对应的波导区域的外边缘的实施例中,为预测位置生成校正图可以基于用于波导内部的眼睛位置的预先生成的校正图和用于波导外部的眼睛位置的附加校正图数据这两者。在特定实施例中,该系统可以通过以相对较短的帧照明时间(例如,持续性)进行操作,来进一步减少由波导非均匀性引起的伪影。这种方法可以减少眼动追踪器估计通过适眼框区域的眼睛路径所需的时间量,使得在眼睛移动期间不会产生太大的误差。

如前所述,目前的趋势表明,在AR/VR系统中执行波导校正所需的校正图的数量和大小尽管已经很大,但仍然在潜在地增长。现有的波导非均匀性校正的方法可以使用这样的校正图:在所述校正图中,用于每个像素的校正数据具有8位精度,其在以前被确定为足以保持图像质量。尽管可能存在使用朴素量化方案(在该朴素量化方案中,校正图中的数据被量化到存储精度所提供的最接近的水平)进一步将位深度减少到8位以下的可能性,但这可能产生轮廓伪影,从而对图像质量造成不可接受的影响。在一个示例实施例中,大小为72×112的校正图(其中,每个像素具有8位精度)可以使用量化到4位的精度来压缩,并随后被双线性上采样到1152×1792,从而产生了轮廓伪影。

假定波导校正图数据显著增加,本文所描述的用于对校正图应用压缩和解压缩技术以补偿波导非均匀性的方法可以显著减少内存要求、和/或维持存储校正图所需的当前内存大小。这些方法可以允许预计算校正图并将其以压缩形式存储在计算机存储器中,并在运行时根据需要对这些校正图进行解压缩。更具体地,本申请中所描述的方法可以包括对预计算的校正图数据进行压缩、将经压缩的校正图数据存储在显示设备上的本地内存中、以及基于经压缩的校正图数据执行插值以生成用于特定眼睛位置的校正图。在一些情况下,显示设备可以在执行插值之前解对校正图进行解压缩。在其他情况下,显示设备可以对经压缩的校正图数据执行插值,并且可以在将所得到的用于每个颜色通道的校正图应用于图像数据之前对其进行解压缩。

用于对校正图进行压缩的一个示例方法依赖于抖动(其中抖动数据在空间上平均到其原始值),以减小校正图的位深度,同时降低量化伪影的可见性。抖动涉对信号应用具有特定性质的整形噪声,其目的是平滑该信号的值。在图像处理中,可以使用抖动来平滑亮度值和颜色饱和值。从形式上讲,抖动消除了因试图用少量信息表示颜色而导致的亮度颜色的量化。这可以防止图像中出现某些类型的图案,例如颜色或亮度条纹。抖动还可以提高颜色分布的平滑度。已经设计了许多抖动算法,并且这些抖动算法可以在亮度校正网格中实现。可以基于准备用于显示的帧(或帧的一部分)来确定亮度校正网格。

在一些实施例中,本文所描述的系统可以使用空间抖动来对校正图数据进行压缩,同时例如通过将量化误差传播到相邻像素来生成色深或灰度级增加的错觉。在一些实施例中,可以使用包括Floyd-Steinberg(弗洛伊德-斯坦伯格)核的抖动模型来计算空间抖动。在一些实施例中,为了执行空间抖动,本文所描述的系统可以确定与目标图像区域的目标颜色值相关联的重心坐标系。该系统可以确定目标颜色值相对于重心坐标系的顶点的重心权重。该系统可以基于目标颜色值的重心权重和满足空间堆叠约束的抖动掩模来确定目标图像区域的多个像素组。每个像素组可以与这样的颜色空间的颜色相关联:所述颜色空间与重心坐标系的顶点相关联。该系统可以通过将像素组中的像素分别分配给相关联的颜色来生成包括目标图像区域的图像。目标图像区域的平均颜色值可以大体上等于目标颜色值。

在本文所描述的系统中,可以对RGB颜色空间中的三个颜色通道中的每个颜色通道的相应校正图中的数据应用抖动操作。由于校正图是相对静态的并且离线生成的,因此可以使用任何合适的抖动技术来对校正图进行压缩,这些抖动技术包括但不限于矢量化的Floyd-Steinberg抖动方法。为了减少蠕虫状伪影,可以将噪声(例如,蓝色噪声或另一类型的随机噪声)注入抖动过程。在一些实施例中,为了补偿由显示设备执行的上采样过程将保留任何抖动噪声并将其传输到校正的图像的这一事实,该方法可以包括在解压缩期间将箱式滤波器或其他空间平均技术应用于校正图数据。例如,可以在滑动窗口中将箱式滤波器(其为卷积滤波器)应用于经解压缩的校正图数据。

用于对校正图进行压缩的另一示例方法依赖于YCbCr 4:2:0压缩方案,在YCbCr4:2:0压缩方案中,RGB颜色空间中的校正图被转换到YCbCr颜色空间,在这之后,两个色度通道(Cb和Cr)在每个维度上被压缩2倍,而亮度通道(Y)不被压缩。在该示例中,显示设备可以执行解压缩,将校正图转换到RGB颜色空间,并且在将经解压缩和经转换的校正图应用于图像数据之前对其进行上采样。在一些情况下,显示设备可以在执行上述插值之前,执行对校正图的解压缩和/或转换。在其他情况下,显示设备可以对经压缩的YCbCr数据执行插值,并且可以对所得到的RGB颜色空间中的每种颜色的校正图进行解压缩、转换和上采样以应用于图像数据,这可以显著减少计算开销。

这些方法中的每种方法都可能产生对校正图数据的2倍压缩。在特定实施例中,可以组合这些和/或其他压缩技术以进一步减少校正图数据的内存需求。

图6示出了使用用于波导内部的预定眼睛位置的经压缩的校正图来校正波导非均匀性的示例方法600。该方法可以在步骤610处开始,其中显示设备的计算系统或与显示设备相关联的计算系统可以对于要显示的当前帧,确定观看者相对于显示器的波导的当前眼睛位置。在特定实施例中,可以使用眼动追踪系统来确定观看者的当前眼睛位置。在步骤620处,计算系统可以识别在距当前眼睛位置的阈值距离内的多个预定眼睛位置,这些预定眼睛位置共同形成围绕当前眼睛位置的眼睛位置网格。

在步骤630处,该方法可以包括:计算系统从显示器上的内存获取多个经压缩的缩放因子阵列,该多个经压缩的缩放因子阵列被配置为校正波导在多个预定眼睛位置处的非均匀性。在特定实施例中,获取多个预计算的缩放因子阵列可以包括从计算机存储器访问与多个预定眼睛位置相关联的多个预计算和预压缩的缩放因子阵列。

在步骤640处,计算系统可以基于多个经压缩的缩放因子阵列来执行插值,以生成用于当前眼睛位置的定制缩放因子阵列,如本文所述。该定制缩放因子阵列可以用于校正显示器在当前眼睛位置处的视点相关的非均匀性。在特定实施例中,多个预定眼睛位置可以共同形成包括最接近或围绕当前眼睛位置的预定数量的眼睛位置的网格,并且生成定制缩放因子阵列可以包括将双三次插值应用于与网格的多个眼睛位置相关联的多个缩放因子阵列,以生成用于当前眼睛位置的定制缩放因子阵列。如本文中更详细地描述的,在一些实施例中,可以将插值应用于多个经压缩的缩放因子阵列,而在其他实施例中,可以在执行插值之前对多个经压缩的缩放因子阵列进行解压缩。

在至少一些实施例中,在步骤650处,该方法可以包括:在将定制缩放因子应用于当前帧的图像数据之前,将双线性上采样操作或另一类型的上采样操作应用于该定制缩放因子阵列,以提高该定制缩放因子阵列的分辨率。

在步骤660处,方法600可以包括:计算系统至少基于定制缩放因子阵列来调整当前帧的像素值。在步骤670处,计算系统可以向显示器输出具有调整后的像素值的当前帧。在特定实施例中,多个预计算的缩放因子阵列和定制缩放因子阵列可以与特定颜色通道相关联,并且当前帧的调整后的像素值可以与该特定颜色通道相关联。在特定实施例中,对于一个或多个其他颜色通道,可以重复方法600,或者对于多个颜色通道中的每个颜色通道,可以并行执行方法600的各个实例。

在特定实施例中,用于通过使用经压缩的校正图调整图像像素值来校正波导非均匀性的方法还可以依赖于时间过滤。例如,如上所述并如图5B所示(图6中未示出),图6中示出的方法600还可以包括:访问多个补充缩放因子阵列,该多个补充缩放因子阵列用于针对当前帧之前的一个或多个帧校正显示器的视点相关的非均匀性,并且调整当前帧的像素值还可以基于该多个补充缩放因子阵列。

在适当的情况下,特定实施例可以重复图6的方法的一个或多个步骤。尽管本公开描述和示出了图6的方法的以特定顺序进行的特定步骤,但是本公开考虑了图6的方法的以任何合适的顺序进行的任何合适的步骤。此外,尽管本公开描述和示出了用于通过使用经压缩的校正图调整图像像素值来校正波导非均匀性的、包括图6的方法的特定步骤的示例方法,但是本公开考虑了通过使用经压缩的校正图来调整图像像素值来校正波导非均匀性的、包括任何合适的步骤的任何合适的方法,在适当的情况下,该方法包括图6的方法的多个步骤中的所有步骤、一些步骤,或者不包括图6的方法的多个步骤中的任何步骤。此外,尽管本公开描述和示出了执行图6的方法的特定部件、设备或系统,但是本公开考虑了执行图6的方法的任何合适步骤的任何合适部件、设备或系统的任何合适的组合。

图7A示出了用于使用经压缩的校正图为波导区域内的当前眼睛位置生成校正图的示例框架700A,在该示例框架中,在执行插值以生成位置特定的校正图之前执行解压缩操作。在特定实施例中,该系统可以使用光瞳复制波导来将光传输到观看者的眼睛,以用于向观看者显示图像。为了显示一系列图像的当前帧,该系统可以首先使用眼动追踪系统来确定观看者的当前眼睛位置729的(X,Y)坐标。观看者的当前眼睛位置729可以相对于波导区域,该波导区域对应于适眼框区域(例如,10mm×10mm)。可以在与适眼框区域相对应的波导区域中的多个预定位置处预先测量波导的光传输特性。多个预定位置可以对应于适眼框区域中的N×N网格(例如,6×6网格)。

该系统可以识别N×N网格内的、围绕并且可能最接近当前眼睛位置的预定眼睛位置的4×4阵列。该系统可以访问来自数据库710的多个经压缩的校正图。这些校正图可以包括与预定眼睛位置相关联的多组预先生成的校正图(其被显示为经压缩的校正图数据711、712和713)。每组校正图可以包括三个校正图,其包括用于RGB颜色通道的每个特定颜色通道的一个校正图。这些校正图可以具有相对较低的空间分辨率(例如,25像素×25像素)以减少对计算机资源的负担。解压缩算法740可以对所访问的16组校正图(其包括与预定眼睛位置相关联的多组预先生成的校正图)执行解压缩,并且分别使用解压缩操作741、742和743来生成经解压缩的校正图数据(例如,用于红色通道的751、用于绿色通道的752和用于蓝色通道的753)。

如本文所述,解压缩算法740可以依赖于用于生成经压缩的校正图数据711、712和713的特定压缩方法。例如,在一些实施例中,可以通过以下方式来生成经压缩的缩放因子阵列:将抖动操作应用于多个预定缩放因子阵列、以减小该多个预定缩放因子阵列中的位深度,并且(可选地)向抖动操作中注入噪声,该多个预定缩放因子阵列被配置为校正波导在多个预定眼睛位置处的非均匀性。在通过将抖动操作应用于多个预定缩放因子阵列来生成多个经压缩的缩放因子阵列的实施例中,解压缩算法可以包括将箱式过滤器或其他空间平均技术应用于经压缩的校正图数据。在其他实施例中,可以通过以下方式来生成多个经压缩的缩放因子阵列:将与三色颜色空间中的像素值相关联的缩放因子转换为替换颜色空间(其包括一个亮度通道和两个色度通道)中的像素值相关联的缩放因子,并且对与该两个色度通道相关联的值进行压缩。在通过将与三色颜色空间中的像素值相关联的缩放因子转换为与替换颜色空间中的像素值相关联的缩放因子来生成多个经压缩的缩放因子阵列的实施例中,生成多个经解压缩的缩放因子阵列可以包括:对与替换颜色空间中的两个色度通道相关联的值进行解压缩,以及将与替换颜色空间中的像素值相关联的缩放因子(包括经解压缩的值)转换回与三色颜色空间中的像素值相关联的缩放因子。

在特定实施例中,系统可以接收来自眼动追踪系统的当前眼睛位置729的(X,Y)坐标,并将这些眼睛位置坐标(X,Y)馈送到插值算法720。插值算法720可以对经解压缩的校正图数据(例如,751、752和753)执行双三次插值,并且生成包括用于当前眼睛位置(X,Y)729的三个校正的一组定制的校正图,该经解压缩的校正图数据表示与预定眼睛位置相关联的多组预先生成的校正图。每个定制的校正图可以具有相对较低的空间分辨率(例如,25×25),并且可以与RGB的特定色彩通道相关联(例如,低分辨率图731用于红色通道701、低分辨率图732用于绿色通道702、以及低分辨率图733用于蓝色通道703)。

因为由插值算法720生成的定制的校正图(例如,731、732和733)是低分辨率图,所以该系统可以使用上采样算法760来将低分辨率校正图(例如,731、732和733)转换为高分辨率校正图(例如,771、772和773)。上采样算法760可以基于低分辨率校正图,使用双线性插值运算(例如,761、762和763)来生成高分辨率校正图。高分辨率图(例如,771、772和773)可以具有与要显示的图像的分辨率或显示器的分辨率(例如,1856像素×1472像素)匹配的分辨率。该系统可以对要显示的一系列图像的当前帧应用这三个高分辨率校正图(例如,771、772和773),以调整当前帧的像素值。可以将这三个高分辨率图(例如,771、772和773)中的每个应用于当前帧的相关联的颜色通道。该系统可以将当前帧输出到显示器的光瞳复制波导。因此,可以显示当前帧,其中来自波导非均匀性的影响被消除或减少。

在特定实施例中,用于调整图像像素值以校正显示器在当前眼睛位置处的视点相关的非均匀性的方法还可以依赖于时间过滤。例如,如上所述以及如图5B所示(图7A中未示出),图7A中示出的框架700A还可以包括多个补充缩放因子阵列、以及时间过滤器,该多个补充缩放因子阵列用于针对当前帧之前的一个或多个帧校正显示器的视点相关的非均匀性,该时间过滤器用于还基于该多个补充缩放因子阵列来调整当前帧的像素值。

图7B示出了用于使用经压缩的校正图来为波导区域内的当前眼睛位置生成校正图的示例框架700B,在该示例框架中,在解压缩操作之前执行插值以生成位置特定的数据。在特定实施例中,该系统可以使用光瞳复制波导来将光传输到观看者的眼睛,以用于向观看者显示图像。为了显示一系列图像的当前帧,该系统可以首先使用眼动追踪系统来确定观看者的当前眼睛位置529的(X,Y)坐标。观看者的当前眼睛位置529可以相对于波导区域,该波导区域对应于适眼框区域(例如,10mm×10mm)。可以在与适眼框区域相对应的波导区域中的多个预定位置处预先测量波导的光传输特性。多个预定位置可以对应于适眼框区域中的N×N网格(例如,6×6网格)。

在特定实施例中,该系统可以接收来自眼动追踪系统的当前眼睛位置729的(X,Y)坐标,并将这些眼睛位置坐标(X,Y)馈送到插值算法720。该系统可以识别N×N网格内的、围绕并且可能最接近于当前眼睛位置的预定眼睛位置的4×4阵列。该系统可以访问来自数据库710的多个经压缩的校正图。这些校正图可以包括与预定眼睛位置相关联的多组预先生成的校正图(其被显示为经压缩的校正图数据711、712和713)。每组校正图可以包括三个校正图,其包括用于RGB颜色通道的每个特定颜色通道的一个校正图。这些校正图可以具有相对较低的空间分辨率(例如,25像素×25像素)以减少对计算机资源的负担。

插值算法720可以分别使用双三次插值运算721、722和723,对所访问的16组校正图(其包括与多个预定眼睛位置相关联的多组预先生成的校正图)执行双三次插值,并且生成包括用于当前眼睛位置(X,Y)729的三个校正图的一组定制的校正图。每个定制的校正图可以具有相对较低的空间分辨率(例如,25×25),并且可以与RGB的特定色彩通道相关联(例如,低分辨率图731用于红色通道701、低分辨率图732用于绿色通道702、以及低分辨率图733用于蓝色通道703)。

解压缩算法780可以分别使用解压缩操作781、782和783对定制的一组校正图执行解压缩,并生成多个经解压缩的校正图(例如,用于红色通道的791、用于绿色通道的792和用于蓝色通道的793)。如本文所述,解压缩算法780可以依赖于用于生成经压缩的校正图数据711、712和713的特定压缩方法。例如,在一些实施例中,可以通过以下方式来生成多个经压缩的缩放因子阵列:将抖动操作应用于多个预定缩放因子阵列、以减小该多个预定缩放因子阵列中的位深度,并且(可选地)向抖动操作中注入噪声,该多个预定缩放因子阵列被配置为校正波导在多个预定眼睛位置处的非均匀性。在通过将抖动操作应用于多个预定缩放因子阵列来生成多个经压缩的缩放因子阵列的实施例中,解压缩算法可以包括将箱式过滤器或其他空间平均技术应用于经压缩的校正图数据。在其他实施例中,可以通过以下方式来生成多个经压缩的缩放因子阵列:将与三色颜色空间中的像素值相关联的缩放因子转换为替换颜色空间(其包括一个亮度通道和两个色度通道)中的像素值相关联的缩放因子,并且对与该两个色度通道相关联的值进行压缩。在通过将与三色颜色空间中的像素值相关联的缩放因子转换为与替换颜色空间中的像素值相关联的缩放因子来生成多个经压缩的缩放因子阵列的实施例中,生成多个经解压缩的缩放因子阵列可以包括对与替换颜色空间中的两个色度通道相关联的值进行解压缩,以及将与替换颜色空间中的像素值相关联的缩放因子(包括经解压缩的值)转换回与三色颜色空间中的像素值相关联的缩放因子。

因为经解压缩的定制的校正图(例如,791、792和793)为低分辨率图,所以系统可以使用上采样算法760来将低分辨率校正图(例如,791、792和793)转换为高分辨率校正图(例如,771、772和773)。上采样算法760可以基于低分辨率校正图,使用双线性插值(例如,761、762和763)来生成高分辨率校正图。高分辨率图(例如,771、772和773)可以具有与要显示的图像的分辨率或显示器的分辨率(例如,1856像素×1472像素)匹配的分辨率。该系统可以对要显示的一系列图像的当前帧应用这三个高分辨率校正图(例如,771、772和773),以调整当前帧的像素值。可以将这三个高分辨率图(例如,771、772和773)中的每个应用于当前帧的相关联的颜色通道。该系统可以将当前帧输出到显示器的光瞳复制波导。因此,可以显示当前帧,其中来自波导非均匀性的影响被消除或减少。

在特定实施例中,用于调整图像像素值以校正显示器在当前眼睛位置处的视点相关的非均匀性的方法还可以依赖于时间过滤。例如,如上所述以及如图5B所示(图7B中未示出),图7B中示出的框架700B还可以包括多个补充缩放因子阵列、以及时间过滤器,该多个补充缩放因子阵列用于针对当前帧之前的一个或多个帧校正显示器的视点相关的非均匀性,该时间过滤器用于进一步基于该多个补充缩放因子阵列来调整当前帧的像素值。

图8A示出了根据图7A所示的框架、使用用于波导内部预定眼睛位置的经压缩的校正图来校正波导非均匀性的示例方法800。该方法可以在步骤805处开始,其中显示器可以接收被配置为校正波导非均匀性的多个经压缩的缩放因子阵列,并且可以将该多个经压缩的缩放因子阵列存储在显示器上的内存中。在一些实施例中,可以通过以下方式来生成多个经压缩的缩放因子阵列:将抖动操作应用于多个预定缩放因子阵列、以减小该多个预定缩放因子阵列中的位深度,并且(可选地)向抖动操作中注入噪声,该多个预定缩放因子阵列被配置为校正波导在多个预定眼睛位置处的非均匀性。在其他实施例中,可以通过以下方式来生成多个经压缩的缩放因子阵列:将与三色颜色空间中的像素值相关联的缩放因子转换为替换颜色空间(其包括一个亮度通道和两个色度通道)中的像素值相关联的缩放因子,并且对与该两个色度通道相关联的值进行压缩。

在步骤810处,该方法可以包括:对于要显示的当前帧,确定观看者相对于显示器的波导的当前眼睛位置。在至少一些实施例中,该波导可以是或包括用于将图像光传输到观看者的眼睛的光瞳复制波导,并且观看者的当前眼睛位置可以使用眼动追踪系统来确定。

在步骤815处,方法800可以包括识别在距当前眼睛位置的阈值距离内的多个预定眼睛位置,这些预定眼睛位置共同形成围绕当前眼睛位置的眼睛位置网格。在步骤820处,该方法可以包括从显示器上的内存获取多个经压缩的缩放因子阵列,该多个经压缩的缩放因子阵列被配置为校正波导在多个预定眼睛位置处的非均匀性。

在步骤825处,该方法可以包括:显示器将解压缩操作应用于多个经压缩的比例因阵列,以生成多个经解压缩的缩放因子阵列。在通过将与三色颜色空间中的像素值相关联的缩放因子转换为与替换颜色空间中的像素值相关联的缩放因子来生成多个经压缩的缩放因子阵列的实施例中,生成多个经解压缩的缩放因子阵列可以包括:对与替换颜色空间中的两个色度通道相关联的值进行解压缩,以及将与替换颜色空间中的像素值相关联的缩放因子(包括经解压缩的值)转换回与三色颜色空间中的像素值相关联的缩放因子。

在步骤830处,方法800可以包括:显示器对多个经解压缩的缩放因子阵列执行插值,以生成用于当前眼睛位置的定制缩放因子阵列。定制缩放因子阵列可以用于校正显示器在当前眼睛位置处的视点相关的非均匀性。在一些实施例中,作为解压缩操作的一部分,可以对与替换颜色空间中的像素值相关联的缩放因子(其已经被转换回与三色颜色空间中的像素值相关联的缩放因子)执行插值。在通过将抖动操作应用于多个预定缩放因子阵列来生成多个经压缩的缩放因子阵列的实施例中,显示器还可以将箱式过滤器或其他空间平均技术应用于定制缩放因子阵列(图8A中未示出)。

在步骤835处,该方法可以包括:显示器将双线性上采样操作应用于定制缩放因子阵列,以提高定制缩放因子阵列的分辨率,如本文所述。在步骤840处,该方法可以包括至少基于定制缩放因子阵列来调整当前帧的像素值,并且在步骤845处,该方法可以包括向显示器输出具有调整后的像素值的当前帧。

在特定实施例中,用于通过使用经压缩的校正图调整图像像素值来校正波导非均匀性的方法还可以依赖于时间过滤。例如,如上所述并如图5B所示(图8A中未示出),图8A中示出的方法800还可以包括访问多个补充缩放因子阵列,该多个补充缩放因子阵列用于针对当前帧之前的一个或多个帧校正显示器的视点相关的非均匀性,并且调整当前帧的像素值还可以基于该多个补充缩放因子阵列。

在适当的情况下,特定实施例可以重复图8A的方法的一个或多个步骤。尽管本公开描述和示出了图8A的方法的以特定顺序进行的特定步骤,但是本公开考虑了图8A的方法的以任何合适的顺序进行的任何合适的步骤。此外,尽管本公开描述和示出了用于通过使用经压缩的校正图调整图像像素值来校正波导非均匀性的、包括图8A的方法的特定步骤的示例方法,但是本公开考虑了用于通过使用经压缩的校正图调整图像像素值来校正波导非均匀性的、包括任何合适步骤的任何合适的方法,在适当的情况下,该方法可以包括图8A的方法的多个步骤中的所有步骤、一些步骤,或者不包括图8A的方法的多个步骤中的任何步骤。此外,尽管本公开描述和示出了执行图8A的方法的特定步骤的特定部件、设备或系统,但是本公开考虑了执行图8A的方法的任何合适的步骤的任何合适的部件、设备或系统的任何合适的组合。

图8B示出了根据图7B所示的框架、使用用于波导内部的预定眼睛位置的经压缩的校正图来校正波导非均匀性的示例方法850。该方法可以在步骤855处开始,其中显示器可以接收被配置为校正波导非均匀性的多个经压缩的缩放因子阵列,并且可以将多个经压缩的缩放因子阵列存储在显示器上的内存中。在一些实施例中,可以通过以下方式来生成多个经压缩的缩放因子阵列:将抖动操作应用于多个预定缩放因子阵列、以减小该多个预定缩放因子阵列中的位深度,并且(可选地)向抖动操作中注入噪声,该多个预定缩放因子阵列被配置为校正波导在多个预定眼睛位置处的非均匀性。在其他实施例中,可以通过以下方式来生成多个经压缩的缩放因子阵列:将与三色颜色空间中的像素值相关联的缩放因子转换为替换颜色空间(其包括一个亮度通道和两个色度通道)中的像素值相关联的缩放因子,并且对与该两个色度通道相关联的值进行压缩。

在步骤860处,该方法可以包括:对于要显示的当前帧,确定观看者相对于显示器的波导的当前眼睛位置。在至少一些实施例中,该波导可以是或包括用于将图像光传输到观看者的眼睛的光瞳复制波导,并且观看者的当前眼睛位置可以使用眼动追踪系统来确定。

在步骤865处,方法850可以包括:识别在距当前眼睛位置的阈值距离内的多个预定眼睛位置,这些预定眼睛位置共同形成围绕当前眼睛位置的眼睛位置网格。在步骤870,该方法可以包括:从显示器上的内存获取多个经压缩的缩放因子阵列,该多个经压缩的缩放因子阵列被配置为校正波导在多个预定眼睛位置处的非均匀性。

在步骤875处,该方法可以包括:显示器对多个经压缩的缩放因子阵列执行插值。在一些实施例中,如本文所述,可以对与替换颜色空间中的像素值相关联的缩放因子执行插值。

在步骤880处,该方法可以包括将解压缩操作应用于插值的结果,以生成用于当前眼睛位置的经解压缩的定制缩放因子阵列。经解压缩的定制缩放因子阵列可以用于校正显示器在当前眼睛位置处的视点相关的非均匀性。在通过将与三色颜色空间中的像素值相关联的缩放因子转换为与替换颜色空间中的像素值相关联的缩放因子来生成多个经压缩的缩放因子阵列的实施例中,应用解压缩操作可以包括:对与替换颜色空间中的两个色度通道相关联的经插值的值进行解压缩,并且将替换颜色空间中的经插值的值(包括经解压缩的值)转换为与三色颜色空间中的像素值相关联的经插值的缩放因子。在通过将抖动操作应用于多个预定缩放因子阵列来生成多个经压缩的缩放因子阵列的实施例中,该方法还可以包括将箱式过滤器或其他平均技术应用于经解压缩的定制缩放因子阵列(图8B中未示出)。

在步骤885处,如本文所述,该方法可以包括:显示器将双线性上采样操作应用于定制缩放因子阵列,以提高定制缩放因子阵列的分辨率。在步骤890处,该方法可以包括至少基于定制缩放因子阵列来调整当前帧的像素值,并且在步骤895处,该方法可以包括向显示器输出具有调整后的像素值的当前帧。

在特定实施例中,用于通过使用经压缩的校正图调整图像像素值来校正波导非均匀性的方法还可以依赖于时间过滤。例如,如上所述并如图5B所示(图8B中未示出),图8B中示出的方法850还可以包括访问多个补充缩放因子阵列,该多个补充缩放因子阵列用于针对当前帧之前的一个或多个帧校正显示器的视点相关的非均匀性,并且调整当前帧的像素值还可以基于该多个补充缩放因子阵列。

在适当的情况下,特定实施例可以重复图8B的方法的一个或多个步骤。尽管本公开描述和示出了图8B的方法的以特定顺序进行的特定步骤,但是本公开考虑了图8B的方法的以任何合适的顺序进行的任何合适步骤。此外,尽管本公开描述和示出了用于通过使用经压缩的校正图调整图像像素值来校正波导非均匀性的、包括图8B的方法的特定步骤的示例方法,但是本公开考虑了用于通过使用经压缩的校正图调整图像像素值来校正波导非均匀性的、包括任何合适步骤的任何合适的方法,在适当的情况下,该方法可以包括图8B的方法的多个步骤中的所有步骤、一些步骤,或者不包括图8B的方法的多个步骤中的任何步骤。此外,尽管本公开描述和示出了执行图8B的方法的特定步骤的特定部件、设备或系统,但是本公开考虑了执行图8B的方法的任何合适步骤的任何合适的部件、设备或系统的任何合适的组合。

在特定实施例中,系统可以生成与比在本文的几个示例中描述的6×6网格的校正图的数量更多的预定眼睛位置相对应的校正图集合。例如,如果波导中非均匀性的空间频率增加,则可能需要更大的图来表示合适的校正。在该示例和其他示例中,可以预先计算更大的图并将其以压缩形式存储在计算机存储器中,并且可以在运行时根据需要对所述更大的图进行解压缩。

在特定实施例中,系统可以针对与在用户数据中观察到的眼睛位置的统计分布相对应的各个眼睛位置预计算缩放因子阵列,而不是针对适眼框区域上具有均匀分布的各个眼睛位置预计算缩放因子阵列。例如,适眼框中瞳孔的统计分布可能取决于眼睛的解剖结构,更具体地,从统计学上讲,取决于人们移动眼睛的位置。在这个示例中,在适眼框的中心区域比远离中心的区域(例如,在适眼框的边缘附近)具有更多的样本测量、并因此具有更高的分辨率可能是有用的。最高分辨率(和最高采样点密度)可以对应于适眼框中心的眼睛位置,对于离中心越来越远的区域中的眼睛位置,分辨率逐渐较低(并且采样点密度逐渐降低)。基于在这些非均匀分布样本点处的测量的缩放因子阵列可以被预计算并被存储在数据库中,该数据库可以存储在计算机存储器中。

在特定实施例中,计算设备(例如,本文所描述的那些计算设备中的任何一个)可以使用人工神经网络来学习校正图的系数,所述校正图用于校正显示器在当前眼睛位置处的视点相关的非均匀性。例如,人工神经网络可以基于适眼框区域内特定用户的时间相关联的眼睛位置、和在不同适眼框位置处的非均匀性检测随时间的显式测量或隐式测量的组合,来递归地更新校正图的权重。基于这些贯穿空间和时间的输入,机器学习算法可以被训练为在采集特定用户的眼睛定向动态特性、他们对非均匀性的视觉敏感性和/或该单元的特定物理非均匀性形状的同时,对某些图进行比其他图更重的加权。

图9示出了示例人工神经网络(artificial neural network,ANN)900,该人工神经网络可以用于学习校正图的系数,所述校正图用于校正显示器在当前眼睛位置处的视点相关的非均匀性。在特定实施例中,ANN可以指包括一个或多个节点的计算模型。示例ANN900可以包括输入层910、隐藏层920、930、940和输出层950。ANN 900的每一层可以包括一个或多个节点,例如节点905或节点915。在特定实施例中,ANN的每个节点可以连接到ANN的另一个节点。作为示例而非限制,输入层910的每个节点可以连接到隐藏层920的多个节点中的一个节点。在特定实施例中,一个或多个节点可以是偏置节点(例如,层中未连接到前一层中的任何节点且不从前一层中的任何节点接收输入的节点)。在特定实施例中,每一层中的每个节点可以连接到前一层或后一层的一个或多个节点。尽管图9描绘了具有特定数量的层、特定数量的节点以及节点之间的特定连接的特定ANN,但是本公开考虑了具有任何合适数量的层、任何合适数量的节点以及节点之间的任何合适连接的任何合适的ANN。作为示例而非限制,尽管图9描绘了输入层910的各个节点与隐藏层920的各个节点之间的连接,但是输入层910的一个或多个节点可以不连接到隐藏层920的一个或多个节点。

在特定实施例中,ANN可以是前馈ANN(例如,不具有循环或环路的ANN,其中节点之间的通信从输入层开始并向连续层单向流动)。作为示例而非限制,对隐藏层920的各个节点的输入可以包括输入层910的一个或多个节点的输出。作为另一示例而非限制,对输出层950的各个节点的输入可以包括隐藏层940的一个或多个节点的输出。在特定实施例中,ANN可以是深度神经网络(例如,包括至少两个隐藏层的神经网络)。在特定实施例中,ANN可以是深度残差网络。深度残差网络可以是包括被组织成残差块的隐藏层的前馈ANN。第一残差块之后的对每个残差块的输入可以是前一残差块的输出和前一残差块的输入的函数。作为示例而非限制,对残差块N的输入可以是F(x)+x,其中F(x)可以是残差块N-1的输出,x可以是对残差块N-1的输入。尽管本公开描述了特定的ANN,但是本公开考虑了任何合适的ANN。

在特定实施例中,激活函数可以对应于ANN的每个节点。对于给定输入,节点的激活函数可以为定义节点的输出。在特定实施例中,对节点的输入可以包括一组输入。作为示例而非限制,激活函数可以是身份函数、二元阶梯函数(binary step function)、逻辑函数或任何其他合适的函数。作为另一示例而非限制,节点k的激活函数可以是sigmoid函数

在特定实施例中,可以使用训练数据来训练ANN。作为示例而非限制,训练数据可以包括对ANN 900的输入和预期输出。作为另一示例而非限制,训练数据可以包括各自表示一训练对象的多个向量和各个训练对象的预期标签。在特定实施例中,训练ANN可以包括通过优化目标函数来修改与ANN的节点间的连接相关联的权重。作为示例而非限制,可以使用训练方法(例如,共轭梯度法、梯度下降法、随机梯度下降),来反向传播(例如,使用最小化平方和误差的代价函数)被测量为表示训练对象的各个向量之间的距离的平方和误差。在特定实施例中,可以使用丢弃技术(dropout technique)来训练ANN。作为示例而非限制,在训练时可以临时省略一个或多个节点(例如,该一个或多个节点不接收输入并且不生成输出)。对于每个训练对象,ANN的一个或多个节点可以具有被省略的可能性。为特定训练对象省略的节点可以不同于为其他训练对象省略的节点(例如,这些节点可以在逐个对象的基础上被临时省略)。尽管本公开描述了以特定方式训练ANN,但是本公开考虑以任何合适的方式训练ANN。

图10示出了示例计算机系统1000。在特定实施例中,一个或多个计算机系统1000执行本文所描述或所示出的一个或多个方法的一个或多个步骤。在特定实施例中,一个或多个计算机系统1000提供本文所描述或所示出的功能。在特定实施例中,在一个或多个计算机系统1000上运行的软件执行本文所描述或所示出的一个或多个方法的一个或多个步骤,或者提供本文所描述或所示出的功能。特定实施例包括一个或多个计算机系统1000的一个或多个部分。在本文中,在适当的情况下,对计算机系统的引用可以包括计算设备,且反之亦然。此外,在适当的情况下,对计算机系统的引用可以包括一个或多个计算机系统。

本公开考虑了任何合适数量的计算机系统1000。本公开考虑了采用任何合适的物理形式的计算机系统1000。作为示例而非限制,计算机系统1000可以是嵌入式计算机系统、片上系统(system-on-chip,SOC)、单板计算机系统(single-board computer system,SBC)(例如,模块上计算机(computer-on-module,COM)或模块上系统(system-on-module,SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式自助服务终端(kiosk)、大型机、计算机系统组网、移动电话、个人数字助理(personal digital assistant,PDA)、服务器、平板计算机系统、增强/虚拟现实设备、或这些计算机系统中的两者或两者以上的组合。在适当的情况下,计算机系统1000可以包括一个或多个计算机系统1000;可以是单一的或分布式的;可以跨越多个位置;可以跨越多台机器;可以跨越多个数据中心;或者可以位于云端中,该云端可以包括一个或多个网络中的一个或多个云端部件。在适当的情况下,一个或多个计算机系统1000可以在没有大量的空间或时间限制的情况下,执行本文所描述或所示出的一种或多种方法中的一个或多个步骤。作为示例而非限制,一个或多个计算机系统1000可以实时地或以批处理模式执行本文所描述或示出的一个或多个方法中的一个或多个步骤。在适当的情况下,一个或多个计算机系统1000可以在不同的时间或在不同的位置执行本文所描述或所示出的一个或多个方法的一个或多个步骤。

在特定实施例中,计算机系统1000包括处理器1002、内存1004、存储器1006、输入/输出(input/output,I/O)接口1008、通信接口1010和总线1012。尽管本公开描述并示出了具有特定数量的以特定布置的特定部件的特定计算机系统,但本公开考虑了在具有任何合适数量的以任何合适布置的任何合适部件的任何合适的计算机系统。

在特定实施例中,处理器1002包括用于执行指令(例如,构成计算机程序的那些指令)的硬件。作为示例而非限制,为了执行指令,处理器1002可以从内部寄存器、内部高速缓冲存储器、内存1004、或存储器1006中检索(或读取)多个指令;解码并执行这些指令;并且随后将一个或多个结果写入内部寄存器、内部高速缓冲存储器、内存1004或存储器1006。在特定实施例中,处理器1002可以包括用于数据、指令或地址的一个或多个内部高速缓冲存储器。在适当的情况下,本公开考虑了包括任何合适数量的任何合适的内部高速缓冲存储器的处理器1002。作为示例而非限制,处理器1002可以包括一个或多个指令高速缓冲存储器、一个或多个数据高速缓冲存储器、和一个或多个页表缓存(translation lookasidebuffer,TLB)。指令高速缓冲存储器中的多个指令可以是内存1004或存储器1006中的多个指令的副本,并且指令高速缓冲存储器可以加速处理器1002对这些指令的检索。数据高速缓冲存储器中的数据可以是内存1004或存储器1006中的数据的副本,以供在处理器1002处执行的指令对其进行操作;可以是在处理器1002处执行的先前指令的结果,以供在处理器1002处执行的后续指令访问、或用于写入内存1004或存储器1006;或者可以是其它合适的数据。数据高速缓冲存储器可以加速处理器1002的读操作或写操作。TLB可以加速处理器1002的虚拟地址转换。在特定实施例中,处理器1002可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开考虑了包括任何合适数量的任何合适的内部寄存器的处理器1002。在适当的情况下,处理器1002可以包括一个或多个算术逻辑单元(arithmetic logic unit,ALU);可以是多核处理器;或者可以包括一个或多个处理器1002。尽管本公开描述和示出了特定的处理器,但本公开考虑了任何合适的处理器。

在特定实施例中,内存1004包括主内存,该主内存用于存储供处理器1002执行的指令或供处理器1002操作的数据。作为示例而非限制,计算机系统1000可以将指令从存储器1006或另一源(例如,另一计算机系统1000)加载到内存1004。然后,处理器1002可以将这些指令从内存1004加载到内部寄存器或内部高速缓冲存储器。为了执行这些指令,处理器1002可以从内部寄存器或内部高速缓冲存储器中检索这些指令并对其进行解码。在这些指令的执行期间或之后,处理器1002可以将一个或多个结果(该一个或多个结果可以是中间结果或最终结果)写入内部寄存器或内部高速缓冲存储器。然后,处理器1002可以将这些结果中的一个或多个结果写入内存1004。在特定实施例中,处理器1002仅执行一个或多个内部寄存器或一个或多个内部高速缓冲存储器中的、或内存1004(与存储器1006不同或其它位置)中的指令,并且仅对一个或多个内部寄存器或一个或多个内部高速缓冲存储器中的、或内存1004(与存储器1006不同或其它位置)中的数据进行操作。一条或多条内存总线(该一条或多条内存总线可以各自包括地址总线和数据总线)可以将处理器1002耦接到内存1004。如下所述,总线1012可以包括一条或多条内存总线。在特定实施例中,一个或多个内存管理单元(memory management unit,MMU)位于处理器1002和内存1004之间,并且促进处理器1002所请求的对内存1004的访问。在特定实施例中,内存1004包括随机存取存储器(random access memory,RAM)。在适当的情况下,该RAM是易失性存储器。在适当的情况下,该RAM可以为动态RAM(dynamic RAM,DRAM)或静态RAM(static RAM,SRAM)。而且,在适当的情况下,该RAM可以为单端口或多端口RAM。本公开考虑了任何合适的RAM。在适当的情况下,内存1004可以包括一个或多个内存1004。尽管本公开描述并示出了特定内存,但是本公开考虑了任何适当的内存。

在特定实施例中,存储器1006包括用于数据或指令的大容量存储器。作为示例而非限制,存储器1006可以包括硬盘驱动器(hard disk drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带、或通用串行总线(universal serial bus,USB)驱动器、或者这些中的两种或更多种的组合。在适当的情况下,存储器1006可以包括可移动介质或不可移动(或固定)介质。在适当的情况下,存储器1006可以在计算机系统1000的内部或外部。在特定实施例中,存储器1006是非易失性固态存储器。在特定实施例中,存储器1006包括只读存储器(read-only memory,ROM)。在适当的情况下,该ROM可以是掩模编程ROM、可编程ROM(programmable ROM,PROM)、可擦除PROM(erasable PROM,EPROM)、电可擦除PROM(electrically erasable PROM,EEPROM)、电可改写ROM(electrically alterable ROM,EAROM)、或闪存、或者这些中的两种或更多种的组合。本公开考虑了采用任何适当的物理形式的大容量存储器1006。在适当的情况下,存储器1006可以包括促进处理器1002与存储器1006之间的通信的一个或多个存储控制单元。在适当的情况下,存储器1006可以包括一个或多个存储器1006。尽管本公开描述并示出了特定存储器,但本公开考虑了任何合适的存储器。

在特定实施例中,I/O接口1008包括这样的硬件、软件或这两者:该硬件、软件或这两者为计算机系统1000与一个或多个I/O设备之间的通信提供一个或多个接口。在适当的情况下,计算机系统1000可以包括这些I/O设备中的一个或多个I/O设备。这些I/O设备中的一个或多个I/O设备可以实现人和计算机系统1000之间的通信。作为示例而非限制,I/O装置可以包括键盘、小键盘、传声器、监视器、鼠标、打印机、扫描仪、扬声器、静物摄像头(still camera)、手写笔、手写板、触摸屏、轨迹球、摄影机、另一合适的I/O设备、或这些I/O设备中的两者或更多者的组合。I/O设备可以包括一个或多个传感器。本公开考虑了任何合适的I/O设备和用于这些I/O设备的任何合适的I/O接口1008。在适当的情况下,I/O接口1008可以包括一个或多个设备或软件驱动程序,该软件驱动程序能够使得处理器1002驱动这些I/O设备中的一个或多个I/O设备。在适当的情况下,I/O接口1008可以包括一个或多个I/O接口1008。尽管本公开描述和示出了特定的I/O接口,但本公开考虑了任何合适的I/O接口。

在特定实施例中,通信接口1010包括这样的硬件、软件或这两者:该硬件、软件或这两者为计算机系统1000与一个或多个其他计算机系统1000或与一个或多个网络之间的通信(例如,基于包(packet-based)的通信)提供一个或多个接口。作为示例而非限制,通信接口1010可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(network interface controller,NIC)或网络适配器,或者可以包括用于与无线网络(例如,Wi-Fi网络)进行通信的无线NIC(wireless NIC,WNIC)或无线适配器。本公开考虑了任何合适的网络和用于该网络的任何合适的通信接口1010。作为示例而非限制,计算机系统1000可以与如下的网络进行通信:自组网、个人区域网(personal area network,PAN)、局域网(local area network,LAN)、广域网(wide area network,WAN)、城域网(metropolitan area network,MAN)、或互联网的一个或多个部分、或这些网络中的两者或更多者的组合。这些网络中的一个或多个网络的一个或多个部分可以是有线或无线的。作为示例,计算机系统1000可以与如下的网络进行通信:无线PAN(wireless PAN,WPAN)(例如,蓝牙(BLUETOOTH)WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(Global System for Mobile Communication,GSM)网络)、或其他合适的无线网络、或这些网络中的两者或更多者的组合。在适当的情况下,计算机系统1000可以包括用于这些网络中的任何的任何合适的通信接口1010。在适当的情况下,通信接口1010可以包括一个或多个通信接口1010。尽管本公开描述并示出了特定通信接口,但是本公开考虑了任何适当的通信接口。

在特定实施例中,总线1012包括将计算机系统1000的多个部件彼此耦接的硬件、软件或这两者。作为示例而非限制,总线1012可以包括加速图形端口(AcceleratedGraphics Port,AGP)或其它图形总线、增强型工业标准体系结构(Enhanced IndustryStandard Architecture,EISA)总线、前端总线(front-side bus,FSB)、超传输(hypertransport,HT)互连、工业标准体系结构(Industry Standard Architecture,ISA)总线、无限带宽(INFINIBAND)互连、低引脚数(low-pin-count,LPC)总线、内存总线、微通道体系结构(Micro Channel Architecture,MCA)总线、外围组件互连(PeripheralComponent Interconnect,PCI)总线、快速PCI(PCI-Express,PCIe)总线、串行高级技术附件(serial advanced technology attachment,SATA)总线、视频电子标准协会本地(videoelectronics standards association local,VLB)总线、或另一适当的总线、或者这些中的两者或更多者的组合。在适当的情况下,总线1012可以包括一条或多条总线1012。尽管本公开描述并示出了特定的总线,但是本公开考虑了任何合适的总线或互连。

本文中,在适当的情况下,一种或多种计算机可读非暂态存储介质可以包括一个或多个基于半导体的或其他集成电路(integrated circuit,IC)(例如,现场可编程门阵列(field-programmable gate array,FPGA)或专用IC(application-specific IC,ASIC))、硬盘驱动器(hard disk drive,HDD)、混合硬盘驱动器(hybrid hard drive,HHD)、光盘、光盘驱动器(optical disc drive,ODD)、磁光盘、磁光驱动器、软盘、软盘驱动器(floppydisk drive,FDD)、磁带、固态驱动器(solid-state drive,SSD)、RAM驱动器、安全数字卡或驱动器、任何其他合适的计算机可读非暂态存储介质、或这些中的两者或更多者的任何合适的组合。在适当的情况下,计算机可读非暂态存储介质可以是易失性的、非易失性的、或者易失性和非易失性的组合。

在本文中,除非另有明确指示或上下文另有指示,否则“或”是开放性的而不是排他性的。因此,本文中,除非另有明确指示或上下文另有指示,否则“A或B”是指“A、B、或这两者”。此外,除非另有明确指示或上下文另有指示,否则“和”是共同的和各自的。因此,本文中,除非另有明确指示或上下文另有指示,否则“A和B”是指“A和B,共同地或单独地”。

本公开的范围涵盖对本文中所描述或所示出的示例实施例的所有改变、替代、变化、更改和修改,本领域技术人员将理解这些改变、替代、变化、更改和修改。本公开的范围不限于本文所描述或示出的示例实施例。此外,尽管本公开将本文中的各个实施例描述并示出为包括特定的部件、元件、特征、功能、操作或步骤,但是这些实施例中的任何实施例都可以包括本领域普通技术人员将理解的、本文任何地方所描述或所示出的部件、元件、特征、功能、操作或步骤中的任何组合或排列。此外,在所附权利要求中对适用于、被布置为、能够、被配置为、使能够、能够操作、或可被操作以执行特定功能的装置或系统、或装置或系统中的部件的引用,包含该装置、系统、部件,无论该装置、系统、部件或该特定功能是否被激活、开启或解锁,只要该装置、系统或部件如此适用于、被布置为、能够、被配置为、使能够、能够操作或可被操作。另外,尽管本公开将特定实施例描述或示出为提供特定优点,但是特定实施例可以不提供这些优点,或可以提供这些优点中的一些或全部。

相关技术
  • 图象显示校正系统,图象显示校正装置和方法,和图象显示装置和方法
  • 具有相位校正、波导和压缩的音频驱动器
技术分类

06120116494960