一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于基于掩模的时空抖动的系统和方法与流程

2022-03-01 18:15:58 来源:中国专利 TAG:


1.本公开总体涉及人工现实,诸如虚拟现实和增强现实。
2.背景
3.人工现实是一种在呈现给用户之前已经以某种方式进行了调整的现实形式,其可以包括例如虚拟现实(vr)、增强现实(ar)、混合现实(mr)、混杂现实或它们的某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与捕获的内容(例如,真实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈或它们的某种组合,并且它们中的任何一个都可以在单个通道或多个通道中呈现(例如向观看者产生三维效果的立体视频)。人工现实可以与应用、产品、附件、服务或它们的某种组合相关联,这些应用、产品、附件、服务或它们的某种组合例如用于在人工现实中创建内容和/或在人工现实中使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(hmd)、独立的hmd、移动设备或计算系统、或者能够向一个或更多个观看者提供人工现实内容的任何其他硬件平台。
4.特定实施例的概述
5.本文描述的特定实施例涉及一种方法,该方法使用多个抖动掩模(dithering mask)来生成具有较少灰度级位(gray level bit)(或色深)的时空子帧图像以表示具有较多灰度级位的目标图像,而不使用误差缓冲器。时间子帧图像可以具有在灰度级之间的平滑抖动模式转换和在子帧之间的最小时间变化。对于目标图像的目标区域(例如,图块(tile)区域),系统可以为每个子帧图像生成抖动掩模。每个抖动掩模可以包括具有蓝色噪声分布的点图案,并满足空间堆叠约束。点图案可以包括多个堆叠的点图案,其中每个点图案具有对应于在量化范围内的灰度级(例如,8位显示器的0~255灰度级)的点密度。所有的点图案可以被选择为具有蓝色噪声属性,并且可以具有空间堆叠属性,根据该空间堆叠属性,灰度级n 1的点图案可以包括所有从0到n的较低灰度级的点图案。抖动掩模中的每个点可以对应于阈值,该阈值等于用于开启(tuning on)该点的最低灰度级(即,在对应点图案包括该点时的最低灰度级)。
6.在特定实施例中,为了表示目标灰度值g(例如,目标图块区域的平均灰度值),对应于所有较低灰度级的点图案可以被空间堆叠以表示上限为分布极限g
l
的目标灰度级(例如,目标灰度级的点图案可以包括所有较低灰度级的点)。可以通过将最大灰度级(例如,1)除以子帧的数量(例如,4个子帧)来确定分布极限g
l
(例如,0.25)。在g《g
l
的条件下,每个子帧的每个抖动掩模的点图案可以包括与任何其他子帧没有重叠点的点子集。为了呈现高于分布极限g
l
(例如,g》0.25)的灰度,可以增量地添加和开启附加的点。为了确保时间一致性,增量地添加的点可以从被包括在其他子帧的一个或更多个抖动掩模中的点中选择。例如,为了对分布极限g
l
到分布极限的两倍2g
l
之间的灰度(例如,0.25《g《0.5)进行量化,可以从被包括在第二子帧的抖动掩模中的点中增量地选择添加到第一子帧(其灰度为0.25)中的点。作为另一个示例,为了对分布极限的两倍2g
l
到分布极限的三倍3g
l
范围内的灰度(例如,0.5《g《0.75)进行量化,要开启的点可以包括第一子帧抖动掩模和第二子帧抖动掩模
(例如,它们的灰度都为0.25)的点。增量地添加的点可以从被包括在第三子帧的抖动掩模中的点中选择。用于生成子帧图像的抖动掩模可以是预先确定的,并且可以在生成子帧图像的过程需要使用时是可用的。因此,所有子帧图像可以基本上同时生成(或并行生成),并且量化误差可以在子帧图像生成过程期间在时域中抖动到其他子帧。因此,系统可能不需要存储用于到其他子帧的时间抖动过程的量化误差。因而,使用遵循这些原理生成的抖动掩模,可以在不使用误差缓冲器的情况下生成时间子帧图像,并且因此减少了与子帧图像生成过程相关的存储器使用。子帧图像可以在灰度之间具有平滑的抖动模式转换,并且在子帧之间具有最小的时间变化。
7.在特定实施例中,用于生成子帧的多个掩模可以从存储在计算机存储装置(storage)中的单个种子掩模(seed mask)生成。系统可以存储单个种子掩模而不是多个抖动掩模,以减少与子帧生成过程相关的存储存储器使用。对于任意数量的子帧n,可以通过循环置换(permuting)种子掩模来生成第n子帧的掩模。对于目标灰度级g,系统可以基于(n-1)
·
g除以g
最大
的余数来确定偏移系数kn,g
最大
是最大灰度级。然后,系统可以基于(t
1-kn)除以g
最大
的余数来确定后续子帧掩模的阈值,其中t1是第一掩模中的点的阈值。作为示例,对于灰度范围[0,1]中的目标灰度0.25和4个子帧,第一子帧掩模、第二子帧掩模、第三子帧掩模和第四子帧掩模可以分别包括阈值在[0,0.25]、[0.25,0.5]、[0.5,0.75]和[0.75,1]范围内的点。第一子帧抖动掩模、第二子帧抖动掩模、第三子帧抖动掩模和第四子帧抖动掩模的阈值可以分别通过mod(t1–
0),1)、mod(t
1-0.25,1)、mod(t
1-0.5,1)和mod(t
1-0.75,1)确定。作为另一个示例,对于在灰度范围[0,1]内的目标灰度0.6和4个子帧,第一子帧掩模、第二子帧掩模、第三子帧掩模和第四子帧掩模可以包括分别具有阈值在[0,0.6]、[0.2,0.8]、[0.4,1]和[0.2,0.8]范围内的点。第一子帧掩模、第二子帧掩模、第三子帧掩模和第四子帧掩模的阈值可以分别通过mod(t1–
0),1)、mod(t
1-0.2,1)、mod(t
1-0.3,1)和mod(t
1-0.2,1)确定。
[0008]
本文公开的实施例仅仅是示例,并且本公开的范围不限于它们。特定实施例可以包括上面公开的实施例的部件、元件、特征、功能、操作或步骤中的全部、一些或全部不被包括。根据本发明的实施例在所附权利要求中以特定方式被公开,涉及方法、存储介质、系统和计算机程序产品,其中在一个权利要求类别(例如方法)中提到的任何特征也可以在另一个权利要求类别(例如系统)中被要求保护。在所附权利要求中的从属性或往回引用仅为了形式原因而被选择。然而,也可以要求保护由对任何前面的权利要求的有意往回引用(特别是多项引用)而产生的任何主题,使得权利要求及其特征的任何组合被公开并且可被要求保护,而不考虑在所附权利要求中选择的从属性。可以被要求保护的主题不仅包括如在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,在权利要求中提到的每个特征可以与在权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的实施例和特征中的任一个可以在单独的权利要求中和/或以与本文描述或描绘的任何实施例或特征的任何组合或以与所附权利要求的任何特征的任何组合被要求保护。
[0009]
在实施例中,一种方法可以包括,通过计算系统:
[0010]
接收目标图像,该目标图像具有每种颜色的第一位数;
[0011]
访问掩模,每个掩模包括与灰度范围相关联的点,其中与每个掩模相关联的点子
集与灰度范围的子范围相关联,其中与掩模相关联的点子集内的点具有不同的位置;
[0012]
基于目标图像和掩模生成多个图像,其中该多个图像中的每个图像具有每种颜色的第二位数,该每种颜色的第二位数小于每种颜色的第一位数;和
[0013]
在显示器上顺序显示多个图像以表示目标图像。
[0014]
每个掩模的点可以与点图案相关联,点图案可以包括多个堆叠的点图案,并且多个堆叠的点图案中的每一个可以通过包括与所有较低灰度级相对应的所有点图案来满足空间堆叠约束。
[0015]
点图案的每个点可以与阈值相关联,并且阈值可以对应于最低灰度级,该最低灰度级使对应的点图案包括该点。
[0016]
每个掩模可以具有对应于量化灰度范围的所有灰度级的阈值,该量化灰度范围对应于每种颜色的第二位数。
[0017]
多个堆叠的点图案可以对应于量化灰度范围的所有灰度级。
[0018]
每个掩模的点图案中的点可以具有蓝色噪声属性。
[0019]
掩模的点图案的和(sum)可以具有蓝色噪声属性。
[0020]
可以通过满足时间堆叠约束来生成多个图像,并且时间堆叠约束可以允许多个图像具有阈值范围内的亮度。
[0021]
显示器可以具有每种颜色的第二位数。
[0022]
在实施例中,掩模可以同时可用于生成多个图像的过程,并且一种方法可以包括:
[0023]
基于目标图像的一个或更多个颜色值和与掩模中的一个掩模相关联的一个或更多个阈值来确定一个或更多个定量误差(quantitation error);和
[0024]
在时间上抖动一个或更多个量化误差到一个或更多个图像,而不使用误差缓冲器。
[0025]
在实施例中,一种方法可以包括:
[0026]
生成种子掩模,该种子掩模包括覆盖量化灰度范围的阈值;
[0027]
将种子掩模存储在存储介质中;和
[0028]
从存储介质访问种子掩模,其中基于循环关系从种子掩模生成多个掩模。
[0029]
量化灰度范围可以具有多个均匀放置的灰度级。
[0030]
量化灰度范围可以具有多个不均匀放置的灰度级。
[0031]
在实施例中,一种方法可以包括:
[0032]
基于最大灰度级和用于表示目标图像的图像数量来确定灰度极限。
[0033]
当与目标图像相关联的目标灰度值小于灰度极限时,多个图像的对应区域可以包括彼此不重叠的像素集合。
[0034]
当与目标图像相关联的目标灰度值大于灰度极限时,多个图像的对应区域可以包括重叠的像素集合,并且其中该重叠的像素集合是通过从掩模中的至少另一个掩模中增量地选择点来确定的。
[0035]
目标图像的目标区域的平均灰度值可以用作目标灰度值,并且多个掩模中的每个掩模可以具有与目标图像的目标区域相同的尺寸。
[0036]
可以通过对目标图像重复应用相对应的掩模来生成多个图像。
[0037]
在实施例中,一个或更多个计算机可读非暂时性存储介质可以包含软件,该软件
在被执行时可操作来:
[0038]
接收目标图像,该目标图像具有每种颜色的第一位数;
[0039]
访问掩模,每个掩模包括与灰度范围相关联的点,其中与每个掩模相关联的点子集与灰度范围的子范围相关联,其中与掩模相关联的点子集内的点具有不同的位置;
[0040]
基于目标图像和掩模生成多个图像,其中多个图像中的每个图像具有每种颜色的第二位数,该每种颜色的第二位数小于每种颜色的第一位数;和
[0041]
在显示器上顺序显示多个图像以表示目标图像。
[0042]
在实施例中,一种系统可以包括:一个或更多个非暂时性计算机可读存储介质,其包含指令;以及一个或更多个处理器,该一个或更多个处理器耦合到存储介质,并且可操作来执行指令以:
[0043]
接收目标图像,该目标图像具有每种颜色的第一位数;
[0044]
访问掩模,每个掩模包括与灰度范围相关联的点,其中与每个掩模相关联的点子集与灰度范围的子范围相关联,其中与掩模相关联的点子集内的点具有不同的位置;
[0045]
基于目标图像和掩模生成多个图像,其中多个图像中的每个图像具有每种颜色的第二位数,该每种颜色的第二位数小于每种颜色的第一位数;和
[0046]
在显示器上顺序显示多个图像以表示目标图像。
[0047]
附图简述
[0048]
图1a示出了示例人工现实系统。
[0049]
图1b示出了示例增强现实系统。
[0050]
图1c示出了显示引擎的示例架构。
[0051]
图1d示出了用于生成显示图像数据的显示引擎的示例图形管线(graphic pipeline)。
[0052]
图2a示出了示例扫描波导显示器。
[0053]
图2b示出了扫描波导显示器的示例扫描操作。
[0054]
图3a示出了示例2d微型led波导显示器。
[0055]
图3b示出了用于2d微型led波导显示器的示例波导配置。
[0056]
图4a示出了由具有较小色深的子帧图像系列表示的示例目标图像。
[0057]
图4b-图4d示出了使用分段量化和空间抖动方法生成的示例子帧图像,以表示图4a的目标图像。
[0058]
图5a示出了基于具有蓝色噪声属性并满足空间堆叠约束的点图案的示例抖动掩模。
[0059]
图5b-图5d示出了在灰度级范围[0,255]中灰度级1、8和32的示例点图案。
[0060]
图6a-图6d示出了用于生成满足空间堆叠约束和时间堆叠约束的时间子帧图像的四个抖动掩模的示例点图案。
[0061]
图6e示出了通过堆叠如图6a-图6d所示的四个抖动掩模的点图案而生成的点图案。
[0062]
图7a-图7d示出了满足空间堆叠约束和时间堆叠约束二者的四个示例抖动掩模。
[0063]
图8a示出了由灰度级较小的子帧图像系列表示的示例目标图像。
[0064]
图8b-图8e示出了使用基于掩模的时空抖动方法生成的四个示例子帧图像。
[0065]
图9示出了使用基于掩模的抖动方法来生成子帧图像系列以表示目标图像的示例方法。
[0066]
图10示出了示例计算机系统。
[0067]
示例实施例的描述
[0068]
显示器中可用的位数可能会限制显示器的色深或灰度级。具有有限色深或灰度级的显示器可以使用空间抖动来生成色深或灰度级增加的错觉,例如,通过将量化误差扩散到相邻像素。为了进一步增加色深或灰度级,显示器可以生成具有较少灰度级位的时间子帧图像系列来给出具有更多灰度级位的目标图像的错觉。可以使用抖动技术(例如,时空抖动方法)来生成每个子帧图像。然而,这些抖动技术可能需要误差缓冲器来提供时间反馈,并且因此需要更多的存储器空间。
[0069]
为了减少与生成子帧图像的过程相关的存储器使用,系统的特定实施例可以使用多个抖动掩模来生成子帧图像系列,该子帧图像系列具有跨所有子帧图像的均匀的亮度分布,以表示目标图像。为了生成n个子帧图像,系统可以为每个子帧图像生成抖动掩模。每个抖动掩模可以包括多个点图案,其中每个点图案具有对应于量化范围内的灰度级(例如,8位显示器的0~255灰度级)的点密度。点图案可以基于蓝色噪声分布生成,并满足空间堆叠属性。例如,灰度级为n的点图案可以包括用于所有从0到n的较低灰度级的点图案。抖动掩模可以包括对应于量化范围中的所有灰度级的点图案。抖动掩模中的每个点可以对应于阈值,该阈值等于允许该点被包括在点图案中的最低灰度级。系统可以在不使用误差缓冲器的情况下基于抖动掩模生成子帧图像。
[0070]
该系统的特定实施例通过在不使用误差缓冲器的情况下减少与生成时间子帧图像相关的存储器使用来提高ar/vr显示的效率。该系统的特定实施例通过使用具有较小色深的多个子帧图像来表示具有较大色深的图像,为ar/vr显示提供了更好的图像质量并改善了用户体验。该系统的特定实施例生成子帧图像用于表示目标图像,这些子帧图像具有跨子帧图像的更均匀的亮度分布,并且当用户的眼睛和头部位置在子帧图像之间变化时,消除在ar/vr显示中随时间的时间伪影诸如闪光或不均匀亮度。该系统的特定实施例允许ar/vr显示系统通过具有更少的灰度级位来减少像素电路的空间和复杂度,并因此使显示系统的尺寸小型化。该系统的特定实施例使得ar/vr显示器能够在单色模式下通过数字像素电路操作,并且消除用于全rgb操作的模拟像素电路。
[0071]
图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接收输入的任何其他硬件平台。
[0072]
图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集成的机载计算机系统、移动设备或能够向用户提供人工现实内容并从用户接收输入的任何其他硬件平台。
[0073]
图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)或任何合适的显示器。
[0074]
在特定实施例中,显示引擎130可以包括控制器块(未示出)。控制块可以通过一个或更多个数据总线从显示引擎130外部的控制器接收数据和控制包,诸如位置数据和表面信息。例如,控制块可以从身体可穿戴的计算系统接收输入流数据。输入数据流可以包括以30hz-90hz的主帧速率生成的主帧图像系列。包括主帧图像的输入流数据可以被转换成所需的格式并被存储在纹理存储器132中。在特定实施例中,控制块可以从身体可穿戴的计算系统接收输入,并初始化显示引擎中的图形管线,以准备和最终确定用于在显示器上渲染
的图像数据。数据和控制包可以包括信息,该信息涉及例如包括纹理数据、位置数据的一个或更多个表面以及附加的渲染指令。控制块可以根据需要向显示引擎130的一个或更多个其他块分发数据。控制块可以启动图形管线来处理要显示的一个或更多个帧。在特定实施例中,用于双眼显示系统的图形管线可以各自包括控制块或共享相同的控制块。
[0075]
在特定实施例中,变换块133可以确定在人工现实场景中将要显示的表面的初始可见性信息。一般来说,变换块133可以从屏幕上的像素定位投射光线,并产生要发送到像素块134的滤光器命令(例如,基于双线性或其他类型的插值技术的过滤)。变换块133可以执行从(例如,使用头戴式装置的惯性测量单元、眼睛跟踪传感器和/或任何合适的跟踪/定位算法(诸如同步定位和建图(simultaneous localization and mapping,slam))确定的)用户的当前视点到表面所在的人工场景中的光线投射,并且可以产生图块/表面对144以发送到像素块134。在特定实施例中,变换块133可以包括如下四级管线。光线投射器可以发出对应于一个或更多个对齐的像素的阵列的光线束,该阵列称为图块(例如,每个图块可以包括16
×
16的对齐的像素)。根据一个或更多个畸变网格(distortion mesh),光线束可以在进入人工现实场景之前被扭曲。畸变网格可以被配置为校正至少由于头戴式装置系统的眼睛显示系统引起的几何畸变效应。通过将每个图块的边界框与表面的边界框进行比较,变换块133可以确定每个光线束是否与场景中的表面相交。如果光线束与对象不相交,则它可能会被丢弃。在检测到图块-表面的相交之后,可以将对应的图块/表面对传递到像素块134。
[0076]
在特定实施例中,像素块134可以基于图块-表面对来确定像素的颜色值或灰度值。从被纹理存储器132接收并且存储的表面的纹理数据中可以采样每个像素的颜色值。像素块134可以从变换块133接收图块-表面对,并且可以使用一个或更多个滤光器块来调度双线性过滤。对于每个图块-表面对,像素块134可以使用对应于投射的图块与表面相交之处的颜色值,采样图块内的像素的颜色信息。像素块134可以基于检索到的纹理(例如,使用双线性插值)来确定像素值。在特定实施例中,像素块134可以为每个像素单独处理红色分量、绿色分量和蓝色分量。在特定实施例中,显示器可以包括用于双眼显示系统的两个像素块。双眼显示系统的两个像素块可以独立工作并且彼此并行工作。像素块134然后可以将其颜色确定(例如,像素138)输出到显示块135。在特定实施例中,当两个或更多个表面具有重叠区域时,像素块134可以将两个或更多个表面合成为一个表面。对于重采样过程,合成表面可能需要较少的计算资源(例如,计算单元、存储器、功率等)。
[0077]
在特定实施例中,显示块135可以从像素块134接收像素颜色值,将数据的格式转换成更适合于显示器的扫描线输出,对像素颜色值应用一个或更多个亮度校正,并准备输出到显示器的像素颜色值。在特定实施例中,显示块135可以每个都包括行缓冲器,并且可以处理和存储从像素块134接收的像素数据。像素数据可以被组织成四边形(例如,每个四边形2
×
2个像素)和图块(例如,每个图块16
×
16个像素)。显示块135可以将像素块134所生成的图块-级(tile-order)像素颜色值转换成物理显示器可能需要的扫描线或行-级数据。亮度校正可以包括任何所需的亮度校正、伽马映射和抖动。显示块135可以将校正的像素颜色值直接输出到物理显示器(例如,瞳孔显示器)的驱动器,或者可以以各种格式将像素值输出到显示引擎130外部的块。例如,头戴式装置系统的眼睛显示系统可以包括附加的硬件或软件,以进一步定制后端颜色处理,支持显示器更宽的接口,或者优化显示速度或保真
度。
[0078]
在特定实施例中,本公开中描述的抖动方法和过程(例如,空间抖动方法、时间抖动方法和时-空方法)可以在显示引擎130的显示块135中体现或实现。在特定实施例中,显示块135可以包括用于每个颜色通道的基于模型的抖动算法或抖动模型,并将相应颜色通道的抖动结果发送到显示系统140的相应显示驱动器ic(例如,142a、142b、142c)。在特定实施例中,在将像素值发送到相应显示驱动器ic(例如,142a、142b、142c)之前,显示块135可以进一步包括用于校正例如像素不均匀性、led不理想性、波导不均匀性、显示缺陷(例如,死像素(dead pixel))等的一个或更多个算法。
[0079]
在特定实施例中,图形应用(例如,游戏、地图、内容提供应用等)可以构建场景图,该场景图与给定的视图位置和时间点一起用于生成图元(primitive)以在gpu或显示引擎上进行渲染。场景图可以定义场景中对象之间的逻辑和/或空间关系。在特定实施例中,显示引擎130还可以生成并存储场景图,该场景图是完整应用场景图的简化形式。简化的场景图可用于指定表面之间的逻辑和/或空间关系(例如,由显示引擎130渲染的图元,诸如在3d空间中定义的四边形或轮廓,其具有基于由应用渲染的主帧生成的相对应的纹理)。存储场景图允许显示引擎130将场景渲染到多个显示帧,并且针对当前视点(例如,头部位置)、当前对象位置(例如,它们可能相对于彼此移动)和每个显示帧改变的其他因素来调整场景图中的每个元素。此外,基于场景图,显示引擎130还可以针对显示子系统引入的几何和颜色畸变进行调整,以及然后将对象合成在一起以生成帧。存储场景图允许显示引擎130以期望的高帧速率近似完成完整渲染的结果,而实际上以明显更低的速率运行gpu或显示引擎130。
[0080]
图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的表面-图块对。
[0081]
在特定实施例中,图形管线100d可以包括重采样步骤153,其中显示引擎130可以从图块-表面对确定颜色值以产生像素颜色值。重采样步骤153可以由显示引擎130在图1c中的像素块134执行。像素块134可以从变换块133接收图块-表面对,并可以调度双线性过滤。对于每个图块-表面对,像素块134可以使用对应于投射的图块与表面相交之处的颜色值,采样图块内的像素的颜色信息。像素块134可以基于检索到的纹理(例如,使用双线性插
值)确定像素值,并将确定的像素值输出到相应显示块135。
[0082]
在特定实施例中,图形管线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)。
[0083]
图2a示出了示例扫描波导显示器200a。在特定实施例中,ar/vr系统的头戴式显示器(hmd)可以包括近眼显示器(ned),近眼显示器(ned)可以是扫描波导显示器200a。扫描波导显示器200a可以包括光源组件210、输出波导204、控制器216等。扫描波导显示器200a可以为双眼或单眼提供图像。出于说明的目的,图3a示出了与单只眼睛202相关联的扫描波导显示器200a。另一个扫描波导显示器(未示出)可以向用户的另一只眼睛提供图像光,并且这两个扫描波导显示器可以共享一个或更多个部件或者可以是独立的。光源组件210可以包括光源212和光学系统214。光源212可以包括可以使用光发射器阵列生成图像光的光学部件。光源212可以生成图像光,包括例如但不限于红色图像光、蓝色图像光、绿色图像光、红外图像光等。光学系统214可以对光源212生成的图像光执行许多光学过程或操作。由光学系统214执行的光学过程或操作可以包括,例如,但不限于,光聚焦、光组合、光调节、扫描等。
[0084]
在特定实施例中,光学系统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的范围内。
[0085]
在特定实施例中,输出波导204可以由可以促进图像光219的全内反射的一种或更多种材料组成。输出波导204可以由一种或更多种材料组成,该一种或更多种材料包括例如但不限于硅、塑料、玻璃、聚合物或它们的某种组合。输出波导204可以具有相对较小的形状因子。作为示例而非限制,输出波导204可以沿x维度约50mm宽,沿y维度约30mm长,以及沿z维度约0.5mm-1mm厚。控制器216可以控制光源组件210的扫描操作。控制器216可以至少基于用于渲染一个或更多个图像的一个或更多个显示指令来确定用于光源组件210的扫描指
令。显示指令可以包括图像文件(例如位图),并且可以从例如ar/vr系统的控制台或计算机接收。扫描指令可以由光源组件210使用来生成图像光219。扫描指令可以包括,例如,但不限于,图像光源类型(例如,单色光源、多色光源)、扫描速率、扫描装置取向、一个或更多个照明参数或它们的某种组合。控制器216可以包括硬件、软件、固件或支持控制器216功能的任何合适部件的组合。
[0086]
图2b示出了扫描波导显示器200b的示例扫描操作。光源220可以包括具有多行和多列的光发射器222的阵列(如小图中的点所表示)。由光源220发射的光223可以包括由每列光发射器222发射的一组准直光束。在到达反射镜224之前,光223可以通过不同的光学设备(诸如调节组件(未示出))调节。在扫描操作期间,反射镜224可以通过围绕轴225旋转将来自光源220的光223反射并投射到像场227。反射镜224可以是微机电系统(mems)反射镜或任何其他合适的反射镜。当反射镜224围绕轴225旋转时,光223可以被投射到像场227的不同部分,如以实线示出的光226a的反射部分和以虚线示出的光226b的反射部分。
[0087]
在特定实施例中,随着反射镜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可以包括红色子像素、绿色子像素和蓝色子像素。红色子像素、绿色子像素和蓝色子像素可以对应于一个或更多个红色光束、绿色光束和蓝色光束被投射到的相应定位。在这种情况下,像素的颜色可以基于像素的子像素的时间和/或空间平均值。
[0088]
在特定实施例中,光发射器222可以在反射镜224的特定旋转角度照射像场227的一部分(例如,像场227上的多个像素定位229的特定子集)。在特定实施例中,光发射器222可以被布置和间隔开,使得来自每个光发射器222的光束被投射到相对应的像素定位229上。在特定实施例中,光发射器222可以包括多个发光元件(例如,微型led),以允许来自光发射器222的子集的光束被投射到相同的像素定位229。换句话说,多个光发射器222的子集可以一次共同照亮单个像素定位229。作为示例而非限制,包括八个发光元件的一组光发射器可以被布置成一行,以在给定的取向角度下利用反射镜224照射单个像素定位229。
[0089]
在特定实施例中,光源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倍)。
[0090]
在特定实施例中,像素定位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中形成不同的图像帧。
[0091]
图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可以是平面的或者可以具有弯曲的横截面形状,以更好地适合用户的面部/头部。
[0092]
图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内横向传播。
[0093]
耦合区域330可以包括耦合元件(例如,334a、334b、334c),该耦合元件被配置和定尺寸为耦合预定波长(例如,红色、绿色、蓝色)的光。当白光发射器阵列被包括在投影仪设备350中时,落入预定波长的白光的部分可以被耦合元件334a-334c中的每一个耦合。在特定实施例中,耦合元件334a-334b可以是尺寸被设计成耦合预定波长的光的光栅(例如布拉格光栅)。在特定实施例中,每个耦合元件的光栅可以呈现与预定光波长相关联的光栅之间的分离距离,并且每个耦合元件可以具有不同的光栅分离距离。因此,如果白光发射器阵列被包括在投影仪设备350中,则每个耦合元件(例如,334a-334c)可以耦合来自投影仪设备350的白光发射器阵列的有限部分的白光。在特定实施例中,每个耦合元件(例如,334a-334c)可以具有相同的光栅分离距离。在特定实施例中,耦合元件334a-334c可以是或包括多路复用耦合器。
[0094]
如图3b所示,红色图像320a、蓝色图像320b和绿色图像320c可以分别通过耦合元件334a、334b、334c耦合到传播区域310中,并且可以开始在波导342内横向穿过。在光接触去耦元件336a之后,一部分光可以从波导342投射出以用于一维光瞳复制,以及在光接触去耦元件336a和336b两者之后,一部分光可以从波导342投射出以用于二维光瞳复制。在二维光瞳复制中,光可以在去耦元件336a的图案与去耦元件336b的图案相交的定位处从波导342投射出。未被去耦元件336a从波导342投射出的那部分光可以被去耦元件336b反射。去耦元件336b可以将所有入射光反射回到去耦元件336a。因此,波导342可以将红色图像320a、蓝色图像320b和绿色图像320c组合成可以称为光瞳复制322的多色图像实例。多色光瞳复制322可以被投射到用户的眼睛,用户的眼睛可以将光瞳复制322解释为全色图像(例如,除了红色、绿色和蓝色之外还包括其他颜色的图像)。波导342可以产生数十或数百个光瞳复制322,或者可以产生单个复制322。
[0095]
在特定实施例中,ar/vr系统可以使用扫描波导显示器或2d微型led显示器来向用户显示ar/vr内容。为了使ar/vr系统小型化,显示系统可能需要使像素电路的空间小型化,并且对于显示器可能具有有限可用位数。显示器中可用位数可能会限制显示器的色深或灰度级,从而限制显示图像的质量。此外,用于ar/vr系统的波导显示器可能具有跨越所有显示像素的不均匀性问题。像素不均匀性的补偿操作可能导致图像灰度的损失,并进一步降低显示图像的质量。例如,具有8位像素(即,灰度级为256)的波导显示器在补偿不均匀性(例如,8∶1波导不均匀性、0.1%死微型led像素和20%微型led强度不均匀性)之后,可以等效地具有6位像素(即,灰度级为64)。
[0096]
为了提高显示的图像质量,具有有限色深或灰度级的显示器可以使用空间抖动来将量化误差扩散到相邻像素,并生成色深或灰度级增加的错觉。为了进一步增加色深或灰度级,显示器可以生成具有较少灰度级位的时间子帧图像系列来给出具有较多灰度级位的
目标图像的错觉。可以在每个子帧图像内使用空间抖动技术来抖动该子帧图像。子帧图像系列的平均值可以对应于观看者所感知的图像。例如,为了显示具有8位像素(即灰度级为256)的图像,系统可以使用四个子帧图像来表示8位目标图像,该四个子帧图像中的每一个具有6位像素(即灰度级为64)。作为另一个示例,具有8位像素(即灰度级为256)的图像可以由16个子帧图像表示,该16个子帧图像中的每一个具有4位像素(即灰度级为16)。这将允许显示系统用支持较少灰度级(例如,6位像素或4位像素)的像素电路和支持硬件来渲染更多灰度级(例如,8位像素)的图像,并因此减小显示系统的空间和尺寸。
[0097]
图4a示出了由具有较小色深的子帧图像系列表示的示例目标图像400a。图4b-图4d示出了使用分段量化和空间抖动方法生成的示例子帧图像400b-400d,以表示图4a的目标图像400a。目标图像400a可以具有比物理显示器更多的灰度级位。子帧图像400b-400d可以具有对应于物理显示器的、相比于目标图像400a更少的灰度级位,并且可以用于使用观看者感知的时间平均值来表示目标图像。为了生成每个子帧图像,可以根据对应于子帧图像的加权值范围的一系列分段值范围来量化目标图像中每个像素的值。每个子帧图像可以对应于目标图像的像素范围的分段部分。每个子帧图像的像素值范围可以根据目标图像像素范围的相对应的分段部分来加权。作为示例而非限制,第一子帧、第二子帧和第三子帧(分别如图4b-图4d所示)可以覆盖归一化灰度级范围[0,1]中的[0,1/3]、[1/3,2/3]和[2/3,1]的灰度级范围。使用这种时间堆叠属性,与渲染图像相关的时间积分噪声可以减少1/n2,其中n是子帧图像的数量。
[0098]
然而,使用这种分段量化和空间抖动方法,即使所有子帧图像随时间的平均亮度近似等于目标图像,如图4b-4d所示,子帧400b-400d也可以具有非常不同的亮度。例如,捕获较低能量位的子帧图像400b可以非常亮,因为目标图像400a的大多数像素值可能超过子帧400b的最大像素值。捕获高能量位的子帧图像400d可能非常暗淡,因为目标图像400a的大部分像素值可能低于子帧400d的像素值范围。这对于诸如lcd/led显示器之类的传统显示器来说可能工作得很好,因为用户的眼睛在子帧图像之间不会发生显著变化。然而,由于用户在佩戴ar/vr头戴式装置时眼睛和头部位置可能在子帧图像之间发生显著变化,因此会在ar/vr系统中随着时间的推移产生诸如闪光或亮度不均匀等时间伪影,并且会对ar/vr系统上显示的图像质量和用户体验产生负面影响。
[0099]
为了解决子帧图像亮度不均匀的问题,本系统的特定实施例可以使用时空抖动方法来生成用于表示目标图像的具有跨所有子帧图像更均匀亮度分布的子帧图像系列。时空抖动方法可以既在空间上将量化误差抖动到同一子帧图像的相邻像素,并且又在时间上将量化误差抖动到子帧图像系列中的下一子帧图像的相对应的像素。子帧图像的像素的时间抖动量化误差可以在时域中抖动到子帧图像系列中的下一子帧图像中的相对应的像素。该系统可以使用时空抖动方法生成每个子帧图像。然而,这些抖动方法可能需要误差缓冲器来提供时间反馈,并且因此使用更多的存储器。为了减少与生成子帧图像的过程相关的存储器使用,该系统的特定实施例可以使用多个抖动掩模来生成用于表示目标图像的具有跨所有子帧图像均匀亮度分布的子帧图像系列。该系统可以通过将目标灰度值与相对应的抖动掩模的阈值进行比较,并且在不使用误差缓冲器的情况下将量化误差抖动到其他子帧,来使用相对应的抖动掩模生成子帧图像,这将在本公开的后面部分中详细描述。
[0100]
图5a示出了基于具有蓝色噪声属性并满足空间堆叠约束的点图案的示例抖动掩
模。图5b-图5d示出了在[0,255]的灰度级范围内的灰度级1、8和32的示例点图案。在特定实施例中,系统可以基于具有蓝色噪声属性的点图案生成空间抖动掩模。抖动掩模可以包括多个点图案,其中每一个点图案具有对应于灰度级范围或量化范围内的灰度级的点密度。较高灰度级的点图案可以比较低灰度级的点图案具有更高的点密度。点图案可以被选择为具有蓝色噪声属性(例如,具有被蓝色噪声加权的频谱)。灰度级范围或量化范围可以由显示器的位长度确定。例如,8位显示器可以具有[0,255]的灰度级范围。作为另一个示例,6位显示器可以具有[0,63]的灰度级范围。作为另一个示例,4位显示器可以具有[0~15]的灰度级范围。在特定实施例中,抖动掩模的点图案可以具有空间堆叠属性,根据该空间堆叠属性,灰度级为n的点图案可以包括所有从0到n-1的较低灰度级的点图案。例如,灰度级为1的点图案(如图5a所示)中的点可以被包括在灰度级为8的点图案(如图5b所示)和灰度级为32的点图案(如图5c所示)中。作为另一个示例,灰度级为8的点图案(如图5b所示)中的点可以被包括在灰度级为32的点图案(如图5c所示)中。
[0101]
在特定实施例中,抖动掩模中的每个点可以对应于等于最低灰度级(即,其对应的点图案包括该点的最低灰度级)的阈值,最低灰度级允许该点被开启。从最低灰度级到最高灰度级,一旦点被开启(即,被包括在灰度级的点图案中),该点可以对于所有较高灰度级保持开启状态(即,被包括在所有较高灰度级的点图案中)。点图案的空间堆叠属性可以允许所有点图案被编码到一个抖动掩模中。在特定实施例中,抖动掩模(例如,图5a中的500a)可以包括对应于量化范围的所有灰度级的所有点图案(这些点图案在空间上堆叠在一起),量化范围可以对应于显示器的灰度级位(例如,对于8位显示器为[0,255],对于6位显示器为[0,63],对于3位显示器为[0,15])。抖动掩模(例如,图5a中的500a)可以具有用于存储与相应点相关联的阈值的第三维。在特定实施例中,存储在抖动掩模中的阈值可以是实际的灰度级值(例如,8位显示器的[0,255])。在特定实施例中,存储在抖动掩模中的阈值可以是归一化的灰度级值(例如,对于任意位显示器为[0,1])。在这种情况下,阈值可以由[0,1]的归一化灰度级范围和灰度级数(例如,对于8位显示器为255)来确定。例如,对于8位显示器,阈值可以是0、1/255、2/255
……
8/255
……
32/255
……
255/255等。作为另一个示例,对于3位显示器,阈值可以是0、1/7、2/7、

7/7等。
[0102]
在特定实施例中,对于量化过程,系统可以将目标灰度值g与抖动掩模中的点相关联的阈值进行比较,并确定量化灰度值。例如,系统可以选择抖动掩模中最接近的阈值(即,量化范围内最接近的灰度级)作为目标灰度值的量化灰度值。然后,系统可以通过将量化灰度值与目标比例值进行比较来确定量化误差。系统可以将量化误差在空间上抖动到同一子帧的邻近像素或区域(例如,图块区域)或者/和在时间上抖动到其他时间子帧的相对应的像素或区域(例如,下一子帧图像的相对应的像素或区域)。系统可以基于目标灰度值的量化灰度值和(例如,从前一子帧图像或从同一子帧图像的相邻图块区域抖动)到目标灰度值的相对应的图块区域的像素的抖动量化误差来确定显示灰度值。系统可以选择对应于最接近显示灰度值的灰度级的点图案,并使用所选择的点图案来表示目标灰度值。
[0103]
在特定实施例中,抖动量化误差的过程可能需要误差缓冲器来将量化误差传播到其他子帧。例如,可以按先后顺序(例如,从1到n)生成子帧图像系列。子帧n的量化误差可以存储在误差缓冲器或帧缓冲器中(例如,与子帧图像相同大小),并且可以在子帧n 1的生成过程中抖动到子帧n 1。值得注意的是,如本公开中所述,基于掩模的抖动方法的特定实施
例可能不需要使用误差缓冲器来将量化误差传播到其他子帧。而是,为了生成n数量个子帧图像,系统可以生成n数量个抖动掩模。抖动掩模可以在生成子帧图像的过程之前(例如,在离线过程期间)预先确定或预先生成。所有n数量个抖动掩模可以同时可用于生成子帧图像。系统可以使用n数量个抖动掩模来并行地或/和基本上同时地生成n数量个子帧图像。在并行子帧生成过程期间,子帧的量化误差可以被抖动到下一子帧,因为它们可以是并行的或者基本上是同时的。用于抖动到下一子帧的时间抖动过程和用于抖动到相邻像素的空间抖动过程可以在子帧生成过程期间基本上同时执行。系统可能不需要将量化误差存储在误差缓冲器中,并因此可以减少子帧生成过程中的存储器使用和电力消耗。例如,对于分辨率为2560
×
1792、4位灰度级和3个rgb颜色通道的子帧图像的时间抖动过程,基于误差缓冲器的方法可能需要存储器大小为6.6兆字节的误差缓冲器。对于抖动过程,基于掩模的方法可以消除对误差缓冲器或帧缓冲器的需求,并且因此允许更少的存储器使用。尽管基于掩模的方法可能需要n个耦合的抖动掩模,但是相同的抖动掩模可以用于r、g和b的三个颜色通道。例如,对于子帧数n=16,系统可能需要130千字节的存储器来存储16个子帧掩模,其中每个掩模具有128
×
128的分辨率和4位灰度级(即,130千字节=128
×
128
×
4位
×
16个子帧),这比6.6兆字节的误差缓冲器大小小得多。作为另一个示例,对于子帧数n=32,系统可能需要260千字节的存储器来存储32个子帧掩模,其中每个掩模具有128
×
128的分辨率和4位灰度级(即,260千字节=128
×
128
×
4位
×
32个子帧),这比6.6兆字节的误差缓冲器大小小得多。因此,与基于误差缓冲器的方法相比,基于掩模的抖动方法可以将抖动过程的存储器使用减少5-10倍。此外,误差缓冲器或帧缓冲器可能需要是用于抖动操作的既可写又可读的存储器,以在抖动过程期间存储和访问量化误差。然而,基于掩模的抖动方法一旦在阈值被首先确定之后,就可以具有固定的阈值,并且可以将掩模(具有固定的阈值的掩模)存储在只读存储器单元中,这进一步提高了存储器使用的效率并且降低了电力消耗。
[0104]
在特定实施例中,为了生成n个子帧图像,系统可以生成同时满足空间堆叠约束和时间堆叠约束两者的n个耦合的蓝色噪声抖动掩模,并且使用抖动掩模来生成子帧图像。通过使用这种方法,系统可以生成具有高质量抖动的子帧,并将渲染图像的时间积分噪声降低1/n2。该方法可以同时具有空间堆叠属性和时间堆叠属性两种属性。空间堆叠属性——根据其灰度为n的点图案可以包括灰度从0到n-1的所有点图案——可以允许生成的子帧在灰度级之间具有平滑的抖动模式转换。时间堆叠属性——根据其由第一子帧渲染的灰度n和由第一子帧和第二子帧的组合渲染的灰度n 1可以服从堆叠属性——可以允许子帧从一个子帧到另一个子帧具有最小的时间变化。所有这些优点都可以在不使用误差缓冲器的情况下实现。替代地,系统可以使用n个独立生成的抖动掩模来生成没有时间堆叠属性的n个子帧。然而,通过使用n个独立生成的抖动掩模,而不是使用n个耦合的蓝色噪声抖动掩模,时间积分噪声只能减少1/n。
[0105]
在特定实施例中,系统可以使用n个抖动掩模来生成用于表示目标图像的n个子帧(n可以是任何整数)。为了确定目标灰度值(例如,目标图块区的平均灰度值)的点图案,对应于所有较低灰度级的点图案可以被空间堆叠以表示目标灰度值。在特定实施例中,当目标灰度值低于或等于灰度极限g
l
(即,g
l
=g
最大
/n,其中g
最大
是最大灰度级,以及n是子帧的数量)时,系统可以生成在任意两个抖动掩模之间没有重叠点的n个抖动掩模。换句话说,每个抖动掩模可以包括不同于任何其他抖动掩模的点集合,并且当堆叠在一起时,所有抖动掩
模中的点可以对应于目标图像的所有像素。每个抖动掩模可以包括对应于灰度极限g
l
的点图案。因此,系统可以使用n个非重叠抖动掩模来生成在任意两个子帧之间没有重叠像素的n个子帧。因此,子帧可以具有时间堆叠属性,该时间堆叠属性允许n个子帧的所有像素一旦被堆叠在一起就对应于目标图像中的所有像素。因而,子帧可以具有更均匀的亮度和更均匀的显示结果来表示目标图像。
[0106]
在特定实施例中,系统可以通过将灰度范围(例如[0,1])内的最大灰度级(例如1)除以子帧数量n来确定非重叠抖动掩模的灰度极限g
l
(即,g
l
=g
最大
/n,其中g
最大
是最大灰度级)。例如,在最大灰度级为1且子帧数量为4的情况下,非重叠抖动掩模的灰度极限可以被确定为0.25。作为另一个示例,在最大灰度级为1且子帧数量为10的情况下,非重叠抖动掩模的灰度极限可以被确定为0.1。作为另一个示例,在最大灰度级为1且子帧数量为16的情况下,非重叠抖动掩模的灰度极限可以被确定为1/16。
[0107]
图6a-图6d示出了用于生成满足空间堆叠约束和时间堆叠约束的时间子帧图像的四个抖动掩模600a-600d的示例点图案。图6e示出了通过堆叠如图6a-图6d所示的四个抖动掩模600a-600d的点图案而生成的示例点图案。在特定实施例中,目标图像可以由包括n个子帧的子帧图像系列来表示。作为示例而非限制,系统可以使用4个子帧来表示目标图像。对于每个子帧,系统可以生成具有与灰度极限0.25相对应的点图案的抖动掩模(例如,600a、600b、600c、600d)。每个抖动掩模可以具有空间堆叠属性,根据该空间堆叠属性,抖动掩模的点图案(例如,对应于灰度级0.25)可以包括较低灰度级(例如,0《=g《0.25)的所有点图案。四个抖动掩模可以被选择为具有蓝色噪声属性,并且可以彼此没有重叠的点。换句话说,600a-600d的四个抖动掩模中的每一个都可以包括唯一的点集合。因此,四个抖动掩模600a-600d可以具有时间堆叠属性,根据该时间堆叠属性,四个抖动掩模的点一旦堆叠在一起就可以对应于目标图像的目标区域的所有像素(如图6a所示)。四个抖动掩模600a-600d的非重叠点图案的关系可以由以下方程式描述:
[0108][0109][0110][0111][0112]
(g1∪g2∪g3∪g4)=1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)其中g1、g2、g3和g4分别是第一抖动掩模、第二抖动掩模、第三抖动掩模和第四抖动掩模的点集合。换句话说,每个抖动掩模可以不具有与任何其他抖动掩模重叠的点,并且所有抖动掩模的组合可以对应于目标图像区域的所有像素。
[0113]
在特定实施例中,可以使用模拟退火(simulated annealing)算法来生成具有蓝色噪声属性的抖动掩模的点图案。当目标灰度值小于灰度极限0.25时,可以通过将如图6a-6d所示的四个抖动掩模应用到目标图像来生成四个子帧图像。因而,四个子帧图像可以具有由抖动掩模定义的空间堆叠属性和时间堆叠属性两者。例如,对于四个子帧图像中的每一个,表示目标灰度值的点图案可以包括所有对应于较低灰度级的点图案。四个子帧图像可以包括彼此不同的像素集合,并且四个子帧图像的和(例如,通过将四个子帧图像堆叠在一起)可以对应于目标图像的所有像素。在特定实施例中,目标灰度值可以是目标图像区域
(诸如图块区域)的平均灰度值。目标图像可以包括多个目标区域(例如,图块区域)。用于生成子帧图像的过程可以包括将子帧图像的抖动掩模应用于每个目标区域。值得注意的是,子帧数量n=4被用作示例,而子帧的数量并不限于n=4,并且可以是任何合适的整数。本公开中描述的系统和方法可以适用于任意n数量个子帧。
[0114]
图7a-图7d示出了满足空间堆叠约束和时间堆叠约束两者的四个示例抖动掩模700a-700d。如前所述,对于第n子帧,低于灰度极限g
l
的目标灰度值可以由第n抖动掩模(其对应于灰度极限g
l
)的点子集表示。然而,为了表示大于灰度极限g
l
的灰度级值,系统可能需要从其他子帧的一个或更多个抖动掩模中选择点(因为一个抖动掩模的点只能表示上限为灰度极限g
l
的灰度级)。作为示例而非限制,系统可以生成如图7a-图7d所示的四个抖动掩模,以用于生成四个子帧图像(即,n=4)来表示目标图像。对于四个子帧图像,灰度极限可以被确定为0.25。对于[0.25,0.5]范围内的目标灰度值,系统为了第n子帧图像可能需要使用第n抖动掩模的点图案中的所有点,并从另一个子帧的抖动掩模中选择一些点。
[0115]
作为示例而非限制,为了在第一子帧图像中表示[0.25,0.5]范围内的灰度值g,系统可以确定包括来自第一抖动掩模700a(其对应于0.25)的所有点和来自第二抖动掩模700b的点子集的点图案。从第二抖动掩模700b中选择的点子集可以一起堆叠到第一抖动掩模的点图案,以弥补灰度值与灰度极限的差值部分(即,g-0.25)。因为第一抖动掩模700a的点图案和第二抖动掩模700b的点图案没有重叠的点,所以从第二抖动掩模700b选择的点子集可以被堆叠到第一抖动掩模700a的点图案,而不违反空间堆叠约束。作为另一个示例,为了在第二子帧图像中表示[0.25,0.5]范围内的目标灰度值g,系统可以确定包括来自第二抖动掩模700b的所有点和来自第三抖动掩模700c的点子集的点图案。从第三抖动掩模700b中选择的点子集可以一起堆叠到第二抖动掩模700b的点图案,以弥补目标灰度值与灰度极限的差值部分(即,g-0.25)。因为第二抖动掩模700b的点图案和第三抖动掩模700c的点图案没有重叠的点,所以从第三抖动掩模700c选择的点子集可以被堆叠到第一抖动掩模700b的点图案,而不违反空间堆叠约束。
[0116]
作为另一个示例,为了在第三子帧图像中表示[0.25,0.5]范围内的目标灰度值g,系统可以确定包括来自第三抖动掩模700c的所有点和来自第四抖动掩模700d的点子集的点图案。从第四抖动掩模700d中选择的点子集可以一起堆叠到第三抖动掩模700c的点图案,以弥补目标灰度值与灰度极限的差值部分(即,g-0.25)。因为第三抖动掩模700c的点图案和第四抖动掩模700d的点图案没有重叠的点,所以从第四抖动掩模700d选择的点子集可以被堆叠到第三抖动掩模700c的点图案,而不违反空间堆叠约束。作为另一个示例,为了在第四子帧图像中表示[0.25,0.5]范围内的目标灰度值g,系统可以确定包括来自第四抖动掩模700d的所有点和来自第一抖动掩模700a的点子集的点图案。从第一抖动掩模700a中选择的点子集可以一起堆叠到第四抖动掩模70dc的点图案,以弥补目标灰度值与灰度极限的差值部分(即,g-0.25)。因为第四抖动掩模700d和第一抖动掩模700a的点图案没有重叠的点,所以从第一抖动掩模700a选择的点子集可以被堆叠到第四抖动掩模700d的点图案,而不违反空间堆叠约束。从其他抖动掩模中选择点来表示在[0.25,0.5]范围内的目标灰度值的原理可以由以下方程式描述:
[0117]g1|0.25<g<0.5
=g
1|g=0.25
g
2|g≤0.25
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0118]g2|0.25<g<0.5
=g
2|g=0.25
g
3|g≤0.25
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0119]g3|0.25<g<0.5
=g
3|g=0.25
g
4|g≤0.25
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0120]g4|0.25<g<0.5
=g
4|g=0.25
g
1|g≤0.25
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)其中,g1、g2、g3和g4分别是第一子帧、第二子帧、第三子帧和第四子帧的点集合,且g是灰度级。
[0121]
在特定实施例中,为了在第n子帧图像中表示[0.5,0.75]范围内的目标灰度值,系统可能需要使用第n抖动掩模的点图案中的所有点,并从另外两个子帧的抖动掩模中选择点。例如,为了在第一子帧图像中表示[0.5,0.75]范围内的目标灰度值,系统可以确定包括来自第一抖动掩模700a(其对应于0.25)的所有点、第二抖动掩模700b(其对应于0.25)的所有点以及来自第三抖动掩模700c的点子集的点图案。从第二抖动掩模700b和第三抖动掩模700c中选择的点可以一起堆叠到第一抖动掩模700a的点图案。因为第一抖动掩模、第二抖动掩模和第三抖动掩模700a-700c的点图案没有重叠的点,所以从第二抖动掩模700b和第三抖动掩模700c中选择的点可以被堆叠到第一抖动掩模700a的点图案,而不违反空间堆叠约束。
[0122]
作为另一个示例,为了在第二子帧图像中表示[0.5,0.75]范围内的目标灰度值,系统可以确定包括来自第二抖动掩模700b(其对应于0.25)的所有点、第三抖动掩模700c(其对应于0.25)的所有点以及来自第四抖动掩模700d的点子集的点图案。从第三抖动掩模700c和第四抖动掩模700d中选择的点可以被堆叠到第一抖动掩模700a的点图案。因为第二抖动掩模、第三抖动掩模和第四抖动掩模700b-700d的点图案没有重叠的点,所以从第三抖动掩模700b和第四抖动掩模700d中选择的点可以被堆叠到第一抖动掩模700b的点图案,而不违反空间堆叠约束。
[0123]
作为另一个示例,为了在第三子帧图像中表示[0.5,0.75]范围内的目标灰度值,系统可以确定包括来自第三抖动掩模700c(其对应于0.25)的所有点、第四抖动掩模700d(其对应于0.25)的所有点以及来自第一抖动掩模700a的点子集的点图案。从第四抖动掩模700d和第一抖动掩模700a中选择的点可以被堆叠到第三抖动掩模700c的点图案。因为第三抖动掩模700c、第四抖动掩模700d和第一抖动掩模700a的点图案没有重叠的点,所以从第四抖动掩模700d和第一抖动掩模700a中选择的点可以被堆叠到第三抖动掩模700c的点图案,而不违反空间堆叠约束。
[0124]
作为另一个示例,为了在第四子帧图像中表示[0.5,0.75]范围内的目标灰度值,系统可以确定包括来自第四抖动掩模700d(其对应于0.25)的所有点、第一抖动掩模700a(其对应于0.25)的所有点和来自第二抖动掩模700b的点子集的点图案。从第一抖动掩模700a和第二抖动掩模700b中选择的点可以被堆叠到第四抖动掩模700d的点图案。因为第一抖动掩模700a、第二抖动掩模700b和第四抖动掩模700d的点图案没有重叠的点,所以从第一抖动掩模700a和第二抖动掩模700b中选择的点可以被堆叠到第四抖动掩模700d的点图案,而不违反空间堆叠约束。从其他抖动掩模中选择点来表示在[0.5,0.75]范围内的目标灰度值的原理可以由以下方程式描述:
[0125]g1|0.5<g<0.75
=g
1|g=0.25
g
2|g=0.25
g
3|g≤0.25
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0126]g2|0.5<g<0.75
=g
2|g=0.25
g
3|g=0.25
g
4|g≤0.25
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0127]g3|0.5<g<0.75
=g
3|g=0.25
g
4|g=0.25
g
1|g≤0.25
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0128]g4|0.5<g<0.75
=g
4|g=0.25
g
1|g=0.25
g
2|g≤0.25
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)其中,g1、g2、g3和g4分别是第一子帧、第二子帧、第三子帧和第四子帧的点集合,g是灰度级。
[0129]
在特定实施例中,为了在第n子帧图像中表示[0.75,1]范围内的灰度值,系统可能需要使用第n抖动掩模的点图案中的所有点,并从另外三个子帧的抖动掩模中选择点。例如,为了表示第一子帧中[0.75,1]范围内的目标灰度值,系统可以确定包括来自第一抖动掩模700a(其对应于0.25)的所有点、第二抖动掩模700b(其对应于0.25)的所有点、第三抖动掩模700c的所有点以及来自第四抖动掩模700d的点子集的点图案。从第二抖动掩模、第三抖动掩模和第四抖动掩模700b-700d中选择的点可以被堆叠到第一抖动掩模700a的点图案。因为四个抖动掩模700a-700d的点图案没有重叠的点,所以从第二抖动掩模、第三抖动掩模和第四抖动掩模700b-700d中选择的点可以被堆叠到第一抖动掩模700a的点图案,而不违反空间堆叠约束。
[0130]
作为另一个示例,为了在第二子帧上表示[0.75,1]范围内的目标灰度值,系统可以确定包括来自第二抖动掩模700b(其对应于0.25)的所有点、第三抖动掩模700c(其对应于0.25)的所有点、第四抖动掩模700d的所有点以及来自第一抖动掩模700a的点子集的点图案。从第三抖动掩模、第四抖动掩模和第一抖动掩模(700c-700d和700a)中选择的点可以被堆叠到第二抖动掩模700b的点图案。因为四个抖动掩模700a-700d的点图案没有重叠的点,所以从第三抖动掩模、第四抖动掩模和第一抖动掩模(700c-700d和700a)中选择的点可以被堆叠到第二抖动掩模700b的点图案,而不违反空间堆叠约束。
[0131]
作为另一个示例,为了在第三子帧图像上表示[0.75,1]范围内的目标灰度值,系统可以确定包括来自第三抖动掩模700c(其对应于0.25)的所有点、第四抖动掩模700d(其对应于0.25)的所有点、第一抖动掩模700a的所有点和来自第二抖动掩模700b的点子集的点图案。从第四抖动掩模、第一抖动掩模和第二抖动掩模(700d和700a-700b)中选择的点可以被堆叠到第三抖动掩模700c的点图案。因为四个抖动掩模700a-700d的点图案没有重叠的点,所以从第四抖动掩模700d、第一抖动掩模700a和第二抖动掩模700b中选择的点可以被堆叠到第三抖动掩模700c的点图案,而不违反空间堆叠约束。
[0132]
作为另一个示例,为了在第四子帧图像中表示[0.75,1]范围内的目标灰度值,系统可以确定包括来自第四抖动掩模700d(对应于0.25)的所有点、第一抖动掩模700a(对应于0.25)的所有点、第二抖动掩模700b的所有点、以及来自第三抖动掩模700c的点子集的点图案。从第一抖动掩模、第二抖动掩模和第三抖动掩模700a-700c中选择的点可以被堆叠到第四抖动掩模700d的点图案。因为四个抖动掩模700a-700d的点图案没有重叠的点,所以从第一抖动掩模、第二抖动掩模和第三抖动掩模700a-700c中选择的点可以被堆叠到第四抖动掩模700d的点图案,而不违反空间堆叠约束。从其他抖动掩模中选择点来表示在[0.75,1]范围内的目标灰度值的原理可以由以下方程式描述:
[0133]g1|0.75<g<1
=g
1|g=0.25
g
2|g=0.25
g
3|g=0.25
g
4|g≤0.25
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0134]g2|0.75<g<1
=g
2|g=0.25
g
3|g=0.25
g
4|g=0.25
g
1|g≤0.25
ꢀꢀꢀꢀꢀꢀꢀ
(15)
[0135]g3|0.75<g<1
=g
3|g=0.25
g
4|g=0.25
g
1|g=0.25
g
2|g≤0.25
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(16)
[0136]g4|0.5<g<0.75
=g
4|g=0.25
g
1|g=0.25
g
2|g=0.25
g
3|g≤0.25
ꢀꢀꢀꢀꢀꢀꢀ
(17)其中,g1、g2、g3和g4分别是第一子帧、第二子帧、第三子帧和第四子帧的点集合,g是灰度级。值得注意的是,子帧数量n=4被用作示例,并且子帧的数量不限于n=4,并且可以是任何合适的整数。本公开中描述的系统和方法可以适用于任意n数量个子帧。
[0137]
在特定实施例中,系统可以使用离线过程来生成n个耦合的抖动掩模,并将生成的
n个抖动掩模存储在存储介质中。在生成子帧图像的过程期间,系统可以从存储介质访问存储的抖动掩模,并使用抖动掩模来生成n数量的子帧图像。在特定实施例中,耦合的n数量个的抖动掩模可以具有循环关系,这允许基于循环关系从单个种子掩模生成所有抖动掩模。在特定实施例中,系统可以仅存储种子掩模,而不是存储所有n数量个的抖动掩模,并且当其他抖动掩模被需要时,基于循环关系从种子掩模生成所有其他抖动掩模。因而,系统可以将用于存储抖动掩模的存储器使用减少n倍。
[0138]
在特定实施例中,由系统存储的种子掩模可以包括具有对应于最大灰度级(例如,对于归一化灰度级范围[0,1],最大灰度级为1)的点密度的点图案。种子掩模可以具有与基于种子掩模生成的n个抖动掩模中的每一个抖动掩模相同的分辨率和尺寸。例如,种子掩模和n个抖动掩模中的每个抖动掩模可以具有100像素
×
100像素、150像素
×
150像素、180像素
×
180像素等的像素分辨率。种子掩模的点图案可以包括与目标图像的目标区域(例如,相同大小的图块区域)的所有像素相对应的所有点。存储在种子掩模中的阈值可以覆盖量化范围内的所有灰度级。在特定实施例中,系统可以在离线过程期间预生成种子掩模,并将种子掩模存储在存储介质中以备后用。预生成的种子掩模可以在生成后被固定,并且相同的种子掩模可以用于为数字内容的所有目标图像(例如,ar/vr内容的所有主帧图像)生成抖动掩模。
[0139]
在特定实施例中,对于任意n数量个子帧,系统可以存储单个种子掩模(而不是n个抖动掩模),以减少与子帧生成过程相关的存储器使用。对于总共n个抖动掩模中的第n抖动掩模,抖动掩模可以通过循环置换种子掩模来生成,如以下方程式所述:
[0140]
tn=mod(t
1-kn,1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(18)
[0141]kn
=mod((n-1)g,1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(19)其中tn是第n抖动掩模的阈值;t1是种子掩模的阈值;kn为偏移系数;g是目标灰度值;并且mod是求余运算符。对于第n子帧图像的目标灰度级g,系统可以基于(n-1)
·
g除以1的余数来确定偏移系数kn。然后,系统可以基于(t
1-kn)除以1的余数来确定第n子帧掩模的阈值。种子掩模可以包括对应于所有相关点的阈值矩阵。系统可以对每个阈值重复应用方程式18,以确定第n抖动掩模的相应阈值。
[0142]
如本公开的前面部分所述,为了表示低于灰度极限g
最大
/n的灰度值,系统可以为n个子帧中的每一个生成n个抖动掩模,并允许生成的n个抖动掩模满足空间堆叠约束和时间堆叠约束。对于空间堆叠属性,n个抖动掩模中的每个抖动掩模可以包括具有对应于灰度极限g
最大
/n的点密度的点图案。抖动掩模的点图案可以包括与所有从0到g
最大
/n的较低灰度级相对应的点图案的堆叠,并且任何灰度级的点图案可以包括较低灰度级的点图案的所有点。对于时间堆叠属性,n个抖动掩模可以以它们彼此没有重叠点的方式生成。例如,对于n=4,系统可以生成4个抖动掩模,这4个抖动掩模的点图案彼此没有重叠的点。在特定实施例中,系统可以将灰度范围划分成n个灰度段,其中每个段覆盖g
最大
/n个灰度级单元(其中每个灰度级单元对应于一个增量灰度级步长),并且选择每个段中覆盖的种子掩模点作为要包括在对应于该段的抖动掩模中的点。例如,对于n=4和覆盖阈值[0,1]的种子掩模,系统可以确定第一抖动掩模、第二抖动掩模、第三抖动掩模和第四抖动掩模以包括分别由阈值段0《t
m1
《=0.25、0.25《t
m2
《=0.5、0.5《t
m2
《=0.75和0.75《t
m2
《=1覆盖的种子掩模点,其中t
m1
、t
m2
、t
m3
和t
m1
是第一抖动掩模、第二抖动掩模、第三抖动掩模和第四抖动掩模的阈值。由
于空间堆叠属性,每个灰度级单元或灰度级步长的点图案可以不具有与任何其他灰度级单元重叠的点,并且以这种方式为每个抖动掩模选择的点可以通过在任何两个抖动掩模之间没有重叠的点自然地满足时间堆叠属性。
[0143]
在特定实施例中,系统可以使用如方程式18和19中描述的循环关系,基于种子掩模的阈值来确定n个抖动掩模的阈值。作为示例而非限制,系统可以为每个主帧图像生成4个子帧图像。对于n=4,灰度极限可以确定为0.25。为了表示灰度值0.25,系统可以使用如方程式18和19中描述的循环关系从种子掩模生成4个抖动掩模。如前面部分所述,对于归一化灰度范围[0,1],种子掩模可以具有对应于最大灰度级1的点图案。对于第一子帧、第二子帧、第三子帧和第四子帧的抖动掩模,通过应用如下方程式19,偏移系数k1、k2、k3和k4可以分别被确定为0、0.25、0.5和0.75:
[0144]
k1=mod((1-1)
·
0.25,1)=0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(20)
[0145]
k2=mod((2-1)
·
0.25,1)=0.25
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(21)
[0146]
k3=mod((3-1)
·
0.25,1)=0.5
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(22)
[0147]
k3=mod((4-1)
·
0.25,1)=0.75
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(23)因此,第一抖动掩模、第二抖动掩模、第三抖动掩模和第四抖动掩模的阈值可以如下通过应用方程式18来确定:
[0148]
t
m1
=mod(t
sm1-0,1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(24)
[0149]
t
m2
=mod(t
sm1-0.25,1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(25)
[0150]
t
m3
=mod(t
sm1-0.5,1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(26)
[0151]
t
m2
=mod(t
sm1-0.75,1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(27)其中t
m1
、t
m2
、t
m3
和t
m1
是第一抖动掩模、第二抖动掩模、第三抖动掩模和第四抖动掩模的阈值;t
sm
是种子掩模的相对应的阈值。系统可以重复地将这些方程式应用于种子掩模中每个点的阈值,以确定相对应的抖动掩模的阈值。因而,第一抖动掩模、第二抖动掩模、第三抖动掩模和第四抖动掩模的抖动图案可以分别被确定为0《t
m1
《=0.25、0《t
m2
《=0.25、0《t
m2
《=0.25和0《t
m2
《=0.25,其中t
m1
、t
m2
、t
m3
和t
m1
是第一抖动掩模、第二抖动掩模、第三抖动掩模和第四抖动掩模的阈值。换句话说,四个抖动掩模可以具有其阈值,该阈值由各自的偏移系数移动到目标阈值范围[0,0.25]。因而,每个抖动掩模可以具有对应于灰度值0.25的点图案,并且每个抖动掩模可以覆盖[0,0.25]的阈值范围。因此,为了表示小于或等于灰度极限0.25的任何灰度值,可以通过将四个抖动掩模应用于目标主帧图像来生成四个子帧图像,并且所生成的子帧图像中的每一个都可以满足空间堆叠属性,并且一起满足时间堆叠属性,如本公开的前面部分所述。
[0152]
在特定实施例中,为了表示高于灰度极限g
最大
/n的灰度值,系统可以使用如方程式18和19中描述的循环关系从种子掩模生成n个抖动掩模。生成的n个抖动掩模可以具有重叠的点,但是抖动掩模的点图案可以以满足空间堆叠属性和时间堆叠属性并允许n个抖动掩模之间均匀的亮度或能量分布的方式来进行选择。如本公开的前面部分所述,具有重叠点的点图案可以通过从用于其他子帧的抖动掩模中选择点或借用点来确定。在特定实施例中,系统可以基于如方程式18和19中描述的循环关系来确定具有重叠点的抖动掩模的点图案。
[0153]
在特定实施例中,系统可以确定[0,1]的灰度范围内的n个灰度段,并且使每个灰度段覆盖g
最大
/n个灰度级单元(其中每个灰度级单元对应于一个增量灰度步长)。系统可以选择覆盖在每个段中的种子掩模点作为要被包括在对应于该段的抖动掩模中的点。通过重
复应用方程式18和19,可以基于循环关系来执行灰度段和相对应的点图案的确定。作为示例而非限制,对于n=4,为了表示[0,1]的灰度范围内的目标灰度0.6,第一灰度段、第二灰度段、第三灰度段和第四灰度段可以被确定为0《t
sm
《=0.6、0.2《t
sm
《=0.8、0.4《t
sm
《=1和0.2《t
sm
《=0.8,其中t
sm
是种子掩模的阈值。系统可以选择由四个灰度段覆盖的种子掩模(其覆盖了[0,1]的灰度范围)中的点,以作为包括在四个抖动掩模的相应点图案中的点。例如,第一抖动掩模可以具有包括覆盖在0《t
sm
《=0.6的灰度段中的种子掩模的点的点图案。第二抖动掩模可以具有包括覆盖在0.2《t
sm
《=0.8的灰度段中的种子掩模的点的点图案。第三抖动掩模可以具有包括覆盖在0.4《t
sm
《=1的灰度段中的种子掩模的点的点图案。第四抖动掩模可以具有包括覆盖在0.2《t
sm
《=0.8的灰度段中的种子掩模的点的点图案。
[0154]
值得注意的是,对用于抖动掩模的点图案的选择是出于示例目的,并且点图案的部分不受这些段或范围的限制。还值得注意的是,对抖动掩模的点图案的确定可以不取决于灰度段或范围的顺序。允许抖动掩模的点图案满足时空堆叠属性并在子帧中具有均匀亮度分布的任何顺序的任何阈值段或范围都可以被用于确定抖动掩模的点图案。例如,第一抖动掩模、第二抖动掩模、第三抖动掩模和第四抖动掩模的点图案可以包括由0《t
sm
《=0.6、0.2《t
sm
《=0.8、0.2《t
sm
《0.8和0.4《t
sm
《=1的阈值段覆盖的种子掩模的点。值得注意的是,一些阈值段可以通过回绕(wrap-around)操作来确定。例如,由于[0.6,1.2]的范围超出了[0,1]的灰度范围,系统可以使用回绕操作来确定也覆盖相同宽度的灰度范围的[0.6,1]和[0,0.2]的灰度段。
[0155]
对于n=4,为了表示[0,1]的灰度范围内的目标灰度0.6,通过如下应用方程式19,第一抖动掩模、第二抖动掩模、第三抖动掩模和第四抖动掩模的偏移系数k1、k2、k3和k4可以分别被确定为0、0.6、0.2和0.8:
[0156]
k1=mod((1-1)
·
0.6,1)=0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(20)
[0157]
k2=mod((2-1)
·
0.6,1)=0.6
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(21)
[0158]
k3=mod((3-1)
·
0.6,1)=0.2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(22)
[0159]
k3=mod((4-1)
·
0.6,1)=0.8
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(23)因此,第一抖动掩模、第二抖动掩模、第三抖动掩模和第四抖动掩模的阈值可以通过如下应用方程式18来确定:
[0160]
t
m1
=mod(t
sm1-0,1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(24)
[0161]
t
m2
=mod(t
sm1-0.6,1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(25)
[0162]
t
m3
=mod(t
sm1-0.2,1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(26)
[0163]
t
m2
=mod(t
sm1-0.8,1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(27)其中t
m1
、t
m2
、t
m3
和t
m1
是第一抖动掩模、第二抖动掩模、第三抖动掩模和第四抖动掩模的阈值;t
sm
是种子掩模的相对应的阈值。系统可以重复地将这些方程式应用于种子掩模中每个点的阈值,以确定相对应的抖动掩模的阈值。因而,第一抖动掩模、第二抖动掩模、第三抖动掩模和第四抖动掩模的抖动图案可以分别被确定为0《t
m1
《=0.6、0《t
m2
《=0.6、0《t
m2
《=0.6和0《t
m2
《=0.6,其中t
m1
、t
m2
、t
m3
和t
m1
是第一抖动掩模、第二抖动掩模、第三抖动掩模和第四抖动掩模的阈值。系统可以使用这四个抖动掩模来生成四个子帧图像,并且每个子帧图像可以具有其点密度对应于目标灰度值0.6的点图案。
[0164]
在特定实施例中,系统可以使用抖动掩模来确定对于任意灰度值要抖动的值。对于具有均匀间隔的m位灰度级和n个时间子帧的显示器,系统可以使用如下描述的过程抖动
任意目标灰度值g。在特定实施例中,系统可以将最低有效位(lsb)定义为lsb=1/(2
m-1)。例如,8位、6位和4位显示器的lsb值可以被确定为1/255、1/63和1/7。灰度值w的整个部分可以通过w=lsb
·
floor(g/lsb)来确定。余数r的范围为[0,1],余数r可由r=(g-w)/lsb确定。对于第n子帧,偏移系数kn可以被确定为kn=mod((n-1)
·
r,1)。因此,第n子帧的阈值可以由tn=mod(t
1-kn,1)确定。系统可以在第n子帧中显示灰度值w的整个部分,并且将余数r在时间上抖动到其他子帧。对于接收抖动的余数的子帧,总显示灰度值可以通过dn=w (r》tn)
·
lsb来确定。
[0165]
在特定实施例中,系统可以使用抖动掩模来确定对于任意灰度值要抖动的值。对于具有不均匀间隔的j位灰度级和n个时间子帧的显示器,系统可以使用如下描述的过程抖动任意目标灰度值g。在特定实施例中,系统可以将最低有效位(lsb)定义为相邻灰度级之间的差(即,w
j 1-wj)。系统可以确定对应于最接近的灰度级wj的索引j,该最接近的灰度级wj小于在wj和w
j 1
之间的g。系统可以通过r=(g-wj)/(w
j-w
j 1
)来确定余数r,余数r在[0,1]的范围内。对于第n子帧,偏移系数kn可以由kn=mod((n-1)
·
r,1)确定。因此,第n子帧的阈值可以由tn=mod(t
1-kn,1)确定。系统可以在第n子帧中显示灰度值w的整个部分,并且将余数r在时间上抖动到其他子帧。对于接收抖动的余数的子帧,总显示灰度值可以通过dn=w
j (r》tn)
确定。
[0166]
在特定实施例中,为了用n个子帧图像表示任何灰度值g,系统可以基于循环关系从种子掩模生成n个抖动掩模。生成的n个抖动掩模可以具有同时满足空间堆叠属性和时间堆叠属性的点图案。n个抖动掩模的阈值可以通过用使用方程式18确定的偏移系数移动种子掩模的灰度范围来确定。在移动之后,四个抖动掩模可以各自具有覆盖0《tm《=g的阈值范围的点图案。系统可以使用n个抖动掩模来生成n个子帧图像,其中每个子帧图像可以具有对应于目标灰度值g的点密度。n个子帧图像彼此之间可以具有均匀的亮度分布或能量分布。因而,为了对任意数量的子帧执行时空抖动,当需要抖动掩模来生成子帧图像时,系统可以只需要存储种子掩模并使用循环关系从种子掩模生成所有抖动掩模。
[0167]
值得注意的是,用于基于求余运算确定点图案的系统、方法和过程是出于示例目的,并且抖动掩模的点图案的生成不限于此。只要四个抖动掩模覆盖n个灰度范围,并且以满足空间堆叠属性和时间堆叠属性的方式确定点图案,所生成的抖动掩模就可以有资格被用来生成子帧图像。本公开覆盖了用于生成抖动掩模的点图案的所有合适的系统、方法和过程,这些抖动掩模满足本公开前面部分中描述的空间堆叠属性和时间堆叠属性。
[0168]
图8a示出了由灰度级较小的子帧图像系列表示的示例目标图像800a。图8b-图8e示出了使用基于掩模的时空抖动方法生成的四个示例帧图像800b-800e。通过使用基于掩模的抖动方法,系统可以生成具有均匀的亮度分布的子帧图像系列。目标图像800a可以具有比物理显示器更多的灰度级位。子帧图像800b-800e可以具有对应于物理显示器的灰度级位并且该灰度级位少于目标图像800a的灰度级位。子帧图像800b-800e可以用于使用由观看者感知的时间平均值来表示目标图像。系统可以生成四个抖动掩模,并使用这四个抖动掩模来生成四个子帧图像800b-800e,如本公开的在先部分所述。因而,子帧图像800b-800e可以在子帧图像之间具有更均匀的亮度分布(例如,与在子帧图像之间具有很大亮度对比度的子帧图像400b-400d相比)。在特定实施例中,ar/vr系统可以使用扫描波导显示器、2d微型led显示器来向用户显示ar/vr内容。本公开中描述的系统和方法适用于但不限
于扫描波导显示器、2d微型led显示器或用于ar/vr系统的任何合适的显示器。
[0169]
图9示出了使用基于掩模的抖动方法来生成子帧图像系列以表示目标图像的示例方法900。方法900可以在步骤910开始,在步骤910系统可以接收目标图像,该目标图像可以具有与第一色深相对应的每种颜色的第一位数。目标图像可以包括多个图块区域,其中每个图块区域可以被用作目标区域,并且可以由每种颜色具有较少颜色位的多个图像的对应图块区域来表示。每个目标区域的平均灰度值可以被用作量化过程的目标灰度值。在步骤920,系统可以访问掩模,其中每个掩模包括与灰度范围相关联的点。与掩模中的每一个相关联的点子集可以与灰度范围的子范围相关联。与掩模相关联的点子集内的点可以具有不同的位置,或者换句话说,与每个掩模相关联的每个点子集可以包括来自其他掩模的唯一的点集合。每个掩模的点可以与点图案相关联,该点图案可以包括多个堆叠的点图案。每个堆叠的点图案可以通过包括与所有较低灰度级相对应的点图案的所有点来满足空间堆叠约束。例如,系统可以访问n数量个抖动掩模,其中每个抖动掩模包括点图案,并且每个点图案可以包括多个堆叠的点图案。每个抖动掩模的点图案的点子集可以包括其他掩模的点图案独有的点集合。在特定实施例中,n数量个抖动掩模可以被预先生成并存储在计算机存储装置中,或者在需要这些抖动掩模时从计算机存储装置中访问它们。在特定实施例中,当需要抖动掩模时,可以基于存储在计算机存储装置中的单个种子掩模来生成n数量个抖动掩模。每个抖动掩模可以具有与目标图像的目标区域相同的尺寸。每个抖动掩模可以包括满足空间堆叠约束和时间堆叠约束的点图案。点图案可以包括蓝色噪声分布中的多个点。每个掩模的点图案可以包括与量化灰度范围的所有灰度级相对应的多个点图案(例如,在空间上被堆叠在一起)。点图案的每个点可以与阈值相关联,该阈值可以等于使相对应的点图案包括该点的最低灰度级。每个抖动掩模可以具有对应于量化灰度范围的所有灰度级的阈值。每个堆叠的点图案可以满足空间堆叠约束。换句话说,与灰度级相对应的堆叠点图案的点图案可以包括与所有较低灰度级相对应的点图案的所有点。掩模的点图案的和也可以具有蓝色噪声属性。量化灰度范围可以具有均匀放置的灰度级或不均匀放置的灰度级。
[0170]
在步骤930,系统可以基于目标图像和掩模生成多个图像。每个图像可以具有每种颜色的第二位数,该每种颜色的第二位数小于每种颜色的第一位数。例如,系统可以基于目标图像和n个抖动掩模生成n数量个子帧图像。每个子帧图像可以具有关于每种颜色的第二位数的颜色值(例如,在第二位长度中的灰度值)。每种颜色的第二位数可以对应于显示器的色深,该色深可以小于每种颜色的第一位数。换句话说,与目标图像相比,n数量个子帧图像可以具有较少的色深。满足时间堆叠约束的抖动掩模可以允许子帧图像在图像之间具有均匀的亮度分布(例如,每个图像具有阈值范围内的亮度)。在特定实施例中,可以使n个抖动掩模同时可用于生成子帧图像的过程。该系统可以基于目标图像的一个或更多个颜色值以及与抖动掩模之一相关联的一个或更多个阈值来确定一个或更多个定量误差。系统可以在时间上抖动量化误差到一个或更多个其他子帧图像,而不使用误差缓冲器。可以通过对目标图像重复应用相对应的掩模来生成子帧图像。
[0171]
在步骤940,系统可以在显示器上顺序显示子帧图像,用于表示目标图像。因而,用于表示目标图像的子帧图像可以在子帧图像之间具有均匀的亮度分布(例如,具有阈值范围内的亮度)。在特定实施例中,系统可以生成种子掩模,该种子掩模可以包括覆盖量化灰度范围的阈值。该系统可以将种子掩模存储在存储介质中,并且从存储介质访问种子掩模,
用于基于循环关系从种子掩模生成n个抖动掩模,并且因此减少用于生成子帧图像的存储空间使用。在特定实施例中,系统可以基于最大灰度级g
最大
和用于表示目标图像的子帧图像的数量n来确定灰度极限g
l
(例如,g
l
=g
最大
/n)。当子帧图像的图块区域的目标灰度值小于灰度极限时,可以基于包括彼此不重叠的点集合的不重叠抖动掩模来生成子帧图像的相对应的图块区域。因此,子帧图像的相对应的图块区域可以包括彼此不重叠的像素集合。当与目标图像相关联的目标灰度值大于灰度极限时,可以基于n数量个重叠抖动掩模来生成子帧图像的相对应的图块区域,该抖动掩模包括从至少另一个抖动掩模增量地选择的重叠点。n数量个重叠掩模可以通过从多个掩模中的至少另一个掩模中增量地选择点来生成。因此,子帧图像的相对应的图块区域可以包括重叠的像素集合,这些重叠的像素集合可以通过从掩模中的至少另一个掩模中增量地选择点来确定。
[0172]
在适当的情况下,特定实施例可以重复图9的方法的一个或更多个步骤。尽管本公开描述并示出了以特定顺序发生的图9的方法的特定步骤,但是本公开设想了以任何合适的顺序发生的图9的方法的任何合适的步骤。此外,尽管本公开描述并示出了用于使用基于掩模的抖动方法来生成子帧图像系列以表示目标图像的包括图9的方法的特定步骤的示例方法,但是本公开设想了用于使用基于掩模的抖动方法来生成子帧图像系列以表示目标图像的包括任何适当步骤的任何适当的方法,在适当的情况下,该方法可以包括图9的方法的所有步骤、一些步骤或不包括图9的方法中的任何步骤。此外,尽管本公开描述并示出了执行图9的方法的特定步骤的特定部件、设备或系统,但是本公开设想了执行图9的方法的任何合适步骤的任何合适的部件、设备或系统的任何合适的组合。
[0173]
图10示出了示例计算机系统1000。在特定实施例中,一个或更多个计算机系统1000执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在特定实施例中,一个或更多个计算机系统1000提供本文描述或示出的功能。在特定实施例中,在一个或更多个计算机系统1000上运行的软件执行本文描述或示出的一个或更多个方法的一个或更多个步骤,或者提供本文描述或示出的功能。特定实施例包括一个或更多个计算机系统1000的一个或更多个部分。在本文,在适当的情况下,对计算机系统的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以包括一个或更多个计算机系统。
[0174]
本公开设想了任何合适数量的计算机系统1000。本公开设想了采取任何合适的物理形式的计算机系统1000。作为示例而不是作为限制,计算机系统1000可以是嵌入式计算机系统、片上系统(soc)、单板计算机系统(sbc)(诸如例如,模块上计算机(com)或模块上系统(som))、台式计算机系统、膝上型或笔记本计算机系统、交互式信息亭、大型机、计算机系统网状网、移动电话、个人数字助理(pda)、服务器、平板计算机系统、增强/虚拟现实设备、或者这些系统的两个或更多个的组合。在适当的情况下,计算机系统1000可以包括一个或更多个计算机系统1000;是整体式的或分布式的;跨越多个定位;跨越多台机器;跨越多个数据中心;或者驻留在云中,云可以包括在一个或更多个网络中的一个或更多个云部件。在适当的情况下,一个或更多个计算机系统1000可以在没有实质性空间或时间限制的情况下执行本文描述或示出的一个或更多个方法的一个或更多个步骤。作为示例而不是作为限制,一个或更多个计算机系统1000可以实时地或以批处理模式来执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在适当的情况下,一个或更多个计算机系统1000可
以在不同的时间或在不同的定位处执行本文描述或示出的一个或更多个方法的一个或更多个步骤。
[0175]
在特定实施例中,计算机系统1000包括处理器1002、存储器1004、存储装置1006、输入/输出(i/o)接口1008、通信接口1010和总线1012。尽管本公开描述并示出了具有在特定布置中的特定数量的特定部件的特定计算机系统,但是本公开设想了具有在任何合适布置中的任何合适数量的任何合适部件的任何合适的计算机系统。
[0176]
在特定实施例中,处理器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。尽管本公开描述并示出了特定的处理器,但是本公开设想了任何合适的处理器。
[0177]
在特定实施例中,存储器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。尽管本公开描述并示出了特定的存储器,但是本公开设想了任何合适的存储器。
[0178]
在特定实施例中,存储装置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。尽管本公开描述并示出了特定的存储装置,但是本公开设想了任何合适的存储装置。
[0179]
在特定实施例中,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接口。
[0180]
在特定实施例中,通信接口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。尽管本公开描述并示出了特定的通信接口,但是本公开设想了任何合适的通信接口。
[0181]
在特定实施例中,总线1012包括将计算机系统1000的部件耦合到彼此的硬件、软件或两者。作为示例而不是作为限制,总线1012可以包括加速图形端口(agp)或其他图形总线、扩展工业标准体系结构(eisa)总线、前端总线(fsb)、hypertransport(ht)互连、工业标准体系结构(isa)总线、infiniband互连、低引脚数(lpc)总线、存储器总线,微通道体系结构(mca)总线、外围部件互连(pci)总线、pci-express(pcie)总线、串行高级技术附件(sata)总线、视频电子标准协会本地(vlb)总线、或任何其他合适的总线、或这些中的两个或更多个的组合。在适当的情况下,总线1012可以包括一个或更多个总线1012。尽管本公开描述并示出了特定总线,但是本公开设想了任何合适的总线或互连。
[0182]
在本文,在适当的情况下,一个或更多个计算机可读非暂时性存储介质可以包括一个或更多个基于半导体的或其他集成电路(ic)(例如,现场可编程门阵列(fpga)或专用ic(asic))、硬盘驱动器(hdd)、混合硬盘驱动器(hhd)、光盘、光盘驱动器(odd)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(fdd)、磁带、固态驱动器(ssd)、ram驱动器、安全数字(securedigital)卡或驱动器、任何其他合适的计算机可读非暂时性存储介质、或这些中的两个或更多个的任何合适组合。在适当的情况下,计算机可读非暂时性存储介质可以是易失性的、非易失性的或者易失性和非易失性的组合。
[0183]
本文中,除非另有明确指示或通过上下文另有指示,否则“或”是包括一切的而非排他性的。因此,在本文,除非另有明确指示或通过上下文另有指示,否则“a或b”意指“a、b或两者”。此外,除非另有明确指示或通过上下文另有指示,否则“和”既是联合的又是各自的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“a和b”意指“联合的或各的a和b”。
[0184]
本公开的范围包括本领域中的普通技术人员将理解的对本文描述或示出的示例实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于本文描述或示出的示例实施例。此外,尽管本公开将本文的相应实施例描述并示为包括特定的组件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个可以包括本领域中的普通技术人员将理解的在本文任何地方描述或示出的任何组件、元件、特征、功能、操作或步骤的任何组合或置换。此外,在所附权利要求中对适合于、被布置成、能够、被配置成、实现来、可操作来、或操作来执行特定功能的装置或系统或装置或系统的组件的引用包括该装置、系统、组件,只要该装置、系统或组件是这样被调整、被布置、使能够、被配置、被实现、可操作的、或操作的,而不管其或该特定功能是否被激活、开启或解锁。此外,尽管本公开将特定实施例描述或示为提供特定优点,但是特定实施例可以提供这些优点中的一些、全部或不提供这些优点。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献