CN117522752A - 受约束的颜色抖动 - Google Patents
受约束的颜色抖动 Download PDFInfo
- Publication number
- CN117522752A CN117522752A CN202310970732.2A CN202310970732A CN117522752A CN 117522752 A CN117522752 A CN 117522752A CN 202310970732 A CN202310970732 A CN 202310970732A CN 117522752 A CN117522752 A CN 117522752A
- Authority
- CN
- China
- Prior art keywords
- color
- display
- mask
- pixel
- dot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000000007 visual effect Effects 0.000 claims abstract description 39
- 241000282414 Homo sapiens Species 0.000 claims abstract description 33
- 238000000034 method Methods 0.000 claims description 126
- 230000008569 process Effects 0.000 claims description 53
- 238000003860 storage Methods 0.000 claims description 16
- 239000011159 matrix material Substances 0.000 claims description 14
- 238000002922 simulated annealing Methods 0.000 claims description 9
- 230000035945 sensitivity Effects 0.000 claims description 7
- 230000015654 memory Effects 0.000 description 60
- 230000006870 function Effects 0.000 description 42
- 230000008878 coupling Effects 0.000 description 25
- 238000010168 coupling process Methods 0.000 description 25
- 238000005859 coupling reaction Methods 0.000 description 25
- 239000003086 colorant Substances 0.000 description 20
- 238000004891 communication Methods 0.000 description 17
- 238000005457 optimization Methods 0.000 description 15
- 238000006243 chemical reaction Methods 0.000 description 14
- 230000003287 optical effect Effects 0.000 description 13
- 230000002123 temporal effect Effects 0.000 description 10
- 210000001747 pupil Anatomy 0.000 description 9
- 230000003190 augmentative effect Effects 0.000 description 8
- 238000010276 construction Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 6
- 238000013139 quantization Methods 0.000 description 6
- 238000009877 rendering Methods 0.000 description 6
- 238000000137 annealing Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000005484 gravity Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 239000000463 material Substances 0.000 description 4
- 238000012952 Resampling Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003750 conditioning effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000011521 glass Substances 0.000 description 3
- 210000003128 head Anatomy 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 241001270131 Agaricus moelleri Species 0.000 description 2
- 238000005266 casting Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004033 plastic Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000014616 translation Effects 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 206010035148 Plague Diseases 0.000 description 1
- 241000607479 Yersinia pestis Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000004456 color vision Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000033001 locomotion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000004470 vergence movement Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/324—Colour aspects
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/02—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G3/00—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
- G09G3/20—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
- G09G3/2007—Display of intermediate tones
- G09G3/2044—Display of intermediate tones using dithering
- G09G3/2051—Display of intermediate tones using dithering with use of a spatial dither pattern
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/332—Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
- H04N13/344—Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
- G09G2340/0428—Gradation resolution change
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
Abstract
本公开涉及受约束的颜色抖动。在一个实施例中,计算系统可以接收要在显示器上显示的目标图像。该目标图像具有每颜色的第一位数。该系统可以访问RGB颜色通道的每个颜色通道的掩模。所访问的掩模可以是基于以下项来生成的:(1)人类视觉系统的一个或多个特性;以及(2)显示器的子像素几何布局。该系统可以基于目标图像和所访问的掩模来生成输出图像。该输出图像可以具有每颜色的第二位数,每颜色的第二位数小于每颜色的第一位数。该系统可以在显示器上显示输出图像,以用于展示目标图像。
Description
相关申请的交叉引用
本申请要求于2022年8月2日提交的、第17/879,510号美国非临时申请的优先权,该申请的内容通过引用全部结合在本文中。
技术领域
本公开总体上涉及人工现实,例如虚拟现实和增强现实。
背景技术
人工现实是在呈现给用户之前已经以某种方式进行了调整的现实形式,该人工现实例如可以包括虚拟现实(virtual reality,VR)、增强现实(augmented reality,AR)、混合现实(mixed reality,MR)、混合现实(hybrid reality)、或它们的某种组合和/或衍生物。人工现实内容可以包括完全的生成内容、或与所采集的内容(例如,真实世界的照片)相结合的生成内容。人工现实内容可以包括视频、音频、触觉反馈、或它们的某种组合,并且以上中的任何一种可以在单个通道或多个通道中呈现(例如,给观看者带来三维效果的立体视频)。人工现实可以与应用、产品、附件、服务、或它们的某种组合相关联,这些应用、产品、附件、服务、或它们的某种组合例如用于在人工现实中创建内容和/或在人工现实中使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(head-mounted display,HMD)、独立运行的HMD、移动设备或计算系统、或能够向一位或多位观看者提供人工现实内容的任何其他硬件平台。
发明内容
本文所描述的特定实施例涉及一种使用抖动掩模来改善如下的图像的显示质量的方法:所述图像具有比显示硬件能够再现的灰度级(即,色位)更多的灰度级。该抖动掩模可以通过考虑以下项来生成:(1)人类视觉系统(human visual system,HVS)的色度通道;以及(2)显示器的子像素几何布局。概括地讲,该系统可以为RGB颜色通道中的每个颜色通道生成抖动掩模。每个掩模可以包括多个空间上堆叠的点图案,每个点图案与目标灰度级范围内的特定灰度级相对应。每个掩模中的各点图案可以具有空间堆叠特性,使得每个灰度级的点图案可以包括对应于所有更低灰度级的所有点图案。为了确定每个灰度级的这些掩模点图案,系统可以首先生成25%、50%和75%(归一化)灰度级的点图案,然后使用这些点图案作为约束来确定剩余灰度级的点图案。75%灰度级的点图案可以包括50%灰度级的所有点,75%灰度级的点图案还可以包括25%灰度级的所有点。该系统可以首先确定一特定灰度级的点图案的多个点(例如,50%),并且随后使用模拟退火法优化过程来确定点分布。例如,对于50%,系统可以使用针对25%的点图案作为初始点图案。然后,系统可以分配位置不固定的额外25%的点。这些额外的点可以从剩余的非固定点中随机选择。然后,系统可以交换特定颜色通道的一对点或一对两组点的位置(这取决于特定颜色通道的子像素大小),并使用预定代价函数计算感知误差。在每个优化步骤中可以随机选择被交换的点或点组。系统可以重复该过程以最小化由代价函数确定的估计感知误差值,以生成一个或多个优化的抖动掩模。
在特定实施例中,代价函数可以包括人类视觉系统(HVS)的模型,该模型在不同的色度通道和不同的空间频率范围中具有不同的敏感度。代价函数还可以包括子像素几何布局模型,该子像素几何布局模型可以表示每个颜色通道的各实际显示子像素的几何尺寸、形状和布局。在计算感知误差的过程期间,代价函数本身可以循环访问(在RGB颜色空间或对立颜色空间中的)所有RGB颜色通道和该点图案的所有可用点,以确定当前点图案相对于目标灰度级的估计感知误差值。因此,在每个优化步骤中,即使在该步骤中仅交换了一对点或一对特定颜色的两组点,也可以在考虑RGB的所有三色通道的情况下计算感知误差。该系统可以跟踪估计感知误差值,并与在先前步骤中计算的那些估计感知误差值进行比较,如果误差值变小,则该系统可以保留该所交换的点位置;如果误差值变大,则该系统可以丢弃一个或多个所交换的点位置。该系统可以重复该过程,直到该过程收敛并且所生成的点图案提供最小化的感知误差值。
在特定实施例中,当前灰阶值可以确定,将在其点图案中使用多少点(例如,50%)。显示器的子像素几何布局可以确定如下约束:在模拟退火过程中这些点可以被定位在哪里。例如,对于具有大小相同并且竖向定位的各条形RGB子像素的显示器,红色通道的点可以被定位在第1列、第4列、第7列等中;绿色通道的点可以被定位在第2列、第5列、第8列等中;蓝色通道的点可以被定位在第3列、第6列、第9列等中。在代价函数中使用的子像素几何布局模型可以表示显示器的各子像素的几何布局(例如,使用1和0的矩阵,其中1表示该颜色的可能位置,而0表示该颜色的禁止位置)。子像素几何布局模型可以在交换过程中提供对点位置的约束。该退火算法可以指定:哪些组的点应被一起交换以代表更大的子像素(即,宏像素)。
在特定实施例中,当针对一特定灰阶值生成点图案时,系统可以“重新使用”先前针对更低的灰阶值而生成的点图案,使得针对当前灰度值新生成的点图案可以建立在先前点图案的基础上,从而满足空间堆叠特性和颜色堆叠特性。换句话说,对于针对特定灰阶值而开启的点,该点可以保持对所有更高灰阶值开启。此外,对于被分配给特定颜色的点,当目标颜色沿着K-W路径(即,从黑(K)到白(W))移动得更亮时,该点可以在所有后面的点图案中保持该颜色。因此,当目标颜色在不同的颜色之间变化(例如,没有闪烁效果)时,显示系统可以在各点图案中具有更平滑的视觉效果。总而言之,通过考虑人类视觉系统的色度特性以及显示子像素的几何形状和布局,该系统可以生成更好的抖动掩模。该系统可以通过感知上更平滑和更准确的显示图像以及改进的时间特性(例如,更少的闪烁伪影)来实现更好的显示质量。
本文所公开的实施例仅是示例,并且本公开的范围不被限制为这些实施例。特定实施例可以包括以上所公开的实施例的部件、元件、特征、功能、操作或步骤中的全部、一些,或者可以不包括这些部件、元件、特征、功能、操作或步骤。具体地,在所附权利要求中公开了根据本发明的实施例,所附权利要求针对方法、存储介质、系统和计算机程序产品,其中,在一个权利要求类别(例如,方法)中提到的任何特征也可以在另一个权利要求类别(例如,系统)中被主张。仅出于形式原因而选择所附权利要求中的从属关系或回引。但是,由故意回引任何先前权利要求(特别是多项从属关系)而产生的任何主题也可以被主张,使得不管所附权利要求中所选择的从属关系如何,权利要求及其特征的任何组合都被公开,并且可以被主张。可以被主张的主题不仅包括在所附权利要求中所阐述的特征的组合,还包括权利要求中的特征的任何其他组合,其中权利要求中所提及的每个特征可以与权利要求中的任何其他特征或其他特征的组合相结合。此外,本文所描述或所描绘的实施例和特征中的任何可以在单独的权利要求中被主张,和/或在与本文所描述或所描绘的任何实施例或特征的任何组合中或在与所附权利要求书中的任何特征的任何组合中被主张。
附图说明
图1A示出了示例人工现实系统。
图1B示出了示例增强现实系统。
图1C示出了显示引擎的示例架构。
图1D示出了用于生成显示图像数据的显示引擎的示例图形流水线。
图2A示出了示例扫描波导显示器。
图2B示出了扫描波导显示器的示例扫描操作。
图3A示出了示例2D微型LED波导显示器。
图3B示出了2D微型LED波导显示器的示例波导构造。
图4A至4C示出了表示不同灰度级的三个示例点图案。
图4D示出了示例连续色调和对应的抖动点图案。
图5示出了示例单色掩模。
图6示出了示例彩色抖动掩模。
图7A至图7C示出了多个显示子像素的三个示例布局。
图8A和图8B示出了作为子像素几何布局表示的示例矩阵。
图9示出了用于使用抖动技术显示图像的示例方法。
图10示出了示例计算机系统。
具体实施方式
显示器中的可用位的数量可能会限制该显示器的色深或灰度级。为了获得具有较高有效灰度级的显示效果,显示器可以使用一系列具有较少灰度级位的时间子帧来产生具有较多灰度级位的目标图像的错觉。可以使用分段量化过程来生成该一系列子帧,其中每个分段具有不同的权重。在每个子帧内,各量化误差可能在空间上抖动。然而,以这种方式生成的这些子帧可以具有天然的堆叠特性(例如,不使用抖动掩模的直接堆叠特性),并且每个子帧可以在不考虑先前子帧中已经显示了什么的情况下生成,从而导致这些子帧具有可能对观看者体验产生负面影响的一些伪影。
在特定实施例中,该系统可以使用基于掩模的空间-时间抖动方法来生成一系列子帧的每个子帧,每个子帧考虑了在该子帧之前的各先前子帧中已经显示的内容。该系统可以通过补偿各先前子帧的量化误差来确定当前子帧的目标像素值。当前子帧的像素值可以通过以下方式来确定:基于具有空间堆叠特性的抖动掩模来对目标像素值进行量化。可以通过误差缓冲器将量化误差传播到后续子帧中。所生成的各子帧可以满足空间堆叠特性和时间堆叠特性这两者,并提供更好的图像显示效果和更好的用户体验。
该系统的特定实施例可以通过以下方式来提供更好的图像质量并改善用户体验:使用多个具有更小色深的子帧图像来呈现一具有更大色深的图像。该系统的特定实施例可以生成多个具有减少或消除的时间伪影的子帧图像。该系统的特定实施例可以允许AR/VR显示系统通过具有较少的灰阶位来减少像素电路的空间并降低像素电路的复杂性,从而使显示系统的尺寸小型化。该系统的特定实施例可以使得AR/VR显示器能够利用数字像素电路在单色模式下运行,而不使用模拟像素电路来进行全RGB操作。
图1A示出了示例人工现实系统100A。在特定实施例中,人工现实系统100可以包括头戴式设备(headset)104、控制器106和计算系统(也称为计算机)108。用户102可以佩戴头戴式设备104,该头戴式设备可以向用户102显示视觉人工现实内容。头戴式设备104可以包括音频设备,该音频设备可以向用户102提供音频人工现实内容。头戴式设备104可以包括一个或多个摄像头,该一个或多个摄像头可以采集环境的图像和视频。头戴式设备104可以包括眼动追踪系统,该眼动追踪系统用于确定用户102的辐辏距离(vergence distance)。头戴式设备104可以被称为头戴式显示器(HDM)。控制器106可以包括触控板、和一个或多个按钮。控制器106可以接收来自用户102的输入,并将这些输入转发到计算系统108。控制器106还可以向用户102提供触觉反馈。计算系统108可以通过有线或无线连接而连接到头戴式设备104和控制器106。计算系统108可以控制头戴式设备104和控制器106向用户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可以通过有线或无线连接而连接到HMD110和控制器。计算系统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可以包括三个颜色通道(例如,144A、144B、144C)、以及相应的显示驱动芯片(display driver IC,DDI)142A、142B和142C。在特定实施例中,显示系统140可以例如包括但不限于:发光二极管(light-emitting diode,LED)显示器、有机发光二极管(organic light-emitting diode,OLED)显示器、有源矩阵有机发光二极管(active matrix organic light-emitting diode,AMLED)显示器、液晶显示器(liquid crystal display,LCD)、微型发光二极管(micro light-emitting diode,μLED)显示器、电致发光显示器(electroluminescent display,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可以向显示块135输出其的各颜色确定(例如,各像素138)。在特定实施例中,当两个或更多个表面具有重叠区域时,像素块134可以将该两个或更多个表面合成为一个表面。对于重采样过程,所合成的表面可能需要较少的计算资源(例如,计算单元、存储器、功率等)。
在特定实施例中,显示块135可以接收来自像素块134的各像素颜色值,将数据的格式转换为更适合于显示器的扫描线输出,将一个或多个亮度校正应用到这些像素颜色值,并准备供输出到显示器的各像素颜色值。在特定实施例中,显示块135可以各自包括行缓冲器,并且可以对从像素块134接收的像素数据进行处理和存储。像素数据可以被组织成多个四边形(例如,每个四边形具有2×2个像素)和多个瓦片(例如,每个瓦片具有16×16个像素)。显示块135可以将由像素块134生成的各瓦片顺序像素颜色值转换为扫描线数据或行顺序数据,该扫描线数据或行顺序数据可以是物理显示器所需要的。各亮度校正可以包括任何所需的亮度校正、伽马映射和抖动。显示块135可以向物理显示器(例如,光瞳显示器)的驱动器直接输出各校正后的像素颜色值,或者可以以各种格式向显示引擎130外部的块输出这些像素颜色值。例如,头戴式设备系统的双眼显示系统可以包括附加的硬件或软件,以进一步定制后端色彩处理、支持更宽的显示器接口、或优化显示速度或保真度。
在特定实施例中,本公开中所描述的抖动方法和过程(例如,空间抖动方法、时间抖动方法和空间-时间方法)可以在显示引擎130的显示块135中体现或实现。在特定实施例中,显示块135可以包括用于每个颜色通道的基于模型的抖动算法或抖动模型,并向显示系统140的相应的显示驱动芯片(例如,142A、142B、142C)发送相应颜色通道的抖动结果。在特定实施例中,在向相应的显示驱动芯片(例如,142A、142B、142C)发送像素值之前,显示块135还可以包括用于校正例如像素非均匀性、LED非理想性、波导非均匀性、显示缺陷(例如,死像素)等的一个或多个算法。
在特定实施例中,图形应用程序(例如,游戏、地图、提供内容的应用程序等)可以构建场景图,该场景图与给定的视图位置和时间点一起使用,以生成要在GPU或显示引擎上呈现的图元。该场景图可以定义场景中多个对象之间的逻辑和/或空间关系。在特定实施例中,显示引擎130还可以生成并存储这样的场景图:该场景图是完整应用场景图的简化形式。简化的场景图可以用于指定多个表面(例如,由显示引擎130渲染的各图元,例如在3D空间中定义的各四边形或轮廓,所述四边形或轮廓具有基于应用程序所渲染的主帧而生成的对应纹理)之间的逻辑和/或空间关系。存储场景图允许显示引擎130将场景渲染到多个显示帧,并针对当前视点(例如,头部位置)、各当前对象位置(例如,它们可以相对于彼此移动)和改变每个显示帧的其他因素来调整场景图中的每个元素。此外,显示引擎130还可以基于该场景图,对显示子系统所引入的几何和颜色失真进行调整,并且随后将多个对象合成在一起以生成帧。存储场景图允许显示引擎130在实际上以显著低的速率运行GPU或显示引擎130情况下,接近以期望的高帧速率进行全渲染这一结果。
图1D示出了用于生成显示图像数据的显示引擎130的示例图形流水线100D。在特定实施例中,图形流水线100D可以包括可见性步骤152,在该可见性步骤中,显示引擎130可以确定从身体可穿戴计算系统接收的一个或多个表面的可见性。该可见性步骤152可以由显示引擎130的转换块(例如,图1C中的133)执行。显示引擎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可以包括扭曲(bend)步骤154、校正和抖动步骤155、串行化步骤156等。在特定实施例中,可以由显示引擎130的显示块(例如,图1C中的135)执行扭曲步骤154、校正和抖动步骤155、以及串行化步骤156。校正和抖动步骤155可以基于非均匀性数据157和抖动掩模158。显示引擎130可以对显示内容进行混合以用于显示内容渲染、将一个或多个亮度校正应用于各像素颜色值、执行一个或多个抖动算法以用于在空间和时间上对各量化误差进行抖动、对各像素颜色值进行串行化以用于物理显示的扫描线输出、并生成适合于显示系统140的显示数据159。显示引擎130可以向显示系统140发送该显示数据159。在特定实施例中,显示系统140可以包括用于RGB三个颜色通道(例如,144A、144B、144C)的像素的三个显示驱动芯片(例如,142A、142B、142C)。
图2A示出了示例扫描波导显示器200A。在特定实施例中,AR/VR系统的头戴式显示器(HMD)可以包括近眼显示器(near eye display,NED),该NED可以是扫描波导显示器200A。扫描波导显示器200A可以包括光源组件210、输出波导204、控制器216等。扫描波导显示器200A可以为双眼或单眼提供图像。出于说明的目的,图2A显示了与单只眼睛202相关联的扫描波导显示器200A。另一个扫描波导显示器(未示出)可以向用户的另一只眼睛提供图像光,并且这两个扫描波导显示器可以共享一个或多个部件,或者这两个扫描波导显示器可以分开。光源组件210可以包括光源212和光学系统214。光源212可以包括光学部件,该光学部件可以使用光发射器的阵列来产生图像光。光源212可以产生图像光,该图像光包括:例如但不限于,红色图像光、蓝色图像光、绿色图像光、红外图像光等。光学系统214可以对光源212产生的图像光执行多个光学处理或操作。光学系统214执行的光学处理或操作可以包括:例如但不限于,光聚焦、光组合、光调节、扫描等。
在特定实施例中,光学系统214可以包括光组合组件、光调节组件、扫描镜组件等。光源组件210可以产生图像光219并将该图像光219输出到输出波导204的耦合元件218。输出波导204可以是这样的光波导:该光波导可以将图像光输出到用户的眼睛202。输出波导204可以在一个或多个耦合元件218处接收图像光219,并将所接收到的图像光引导到一个或多个解耦元件206。耦合元件218可以是,例如但不限于,衍射光栅、全息光栅、可将图像光219耦合到输出波导204中的任何其他合适的元件、或它们的组合。作为示例而非限制,如果耦合元件218是衍射光栅,则可以选择衍射光栅的节距以允许发生全内反射、并且允许图像光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可以包括耦合元件218的表面。在图像场227上形成的图像可以随着光穿过输出波导204而被放大。在特定实施例中,图像场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的列数相同),但光源220仅具有少数几行光发射器222。光源220可以具有第一长度L1,该第一长度L1是从第一行光发射器器222到最后一行测量。图像场227可以具有第二长度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被完全扫描。对图像场227的扫描可以由反射镜224来确定和控制,其中扫描波导显示器200B的光生成与反射镜224的转动同步。作为示例而非限制,在一个扫描周期期间,反射镜224可以在将光投射到图像场227的第1行的初始位置处开始,并转动到将光投射到图像场227的第P行的最后位置,并且随后转动返回到初始位置。每个扫描周期,可以在图像场227上形成一图像(例如,一帧)。扫描波导显示器200B的帧率可以与每秒的扫描周期数相对应。当反射镜224转动时,光可以扫描遍历图像场以形成图像。给定像素位置229的实际颜色值、以及光强度或亮度可以是在扫描周期期间照射该像素位置的各种光束的颜色的时间上的总和。在结束一扫描周期之后,反射镜224可以恢复回到初始位置,以使用馈送到各光发射器222的新的一组驱动信号来将光投射到图像场227的前几行。随着反射镜224循环转动,可以重复相同的过程,以允许在图像场227中形成不同的图像帧。
图3A示出了示例2D微型LED波导显示器300A。在特定实施例中,显示器300A可以包括细长的波导构造302,该波导构造302可以足够宽或足够长,以将图像投射到用户的双眼。波导构造302可以包括覆盖用户的双眼的解耦区域304。为了通过波导构造302向用户的双眼提供图像,可以在波导构造302的顶表面中设置多个耦合区域306A和306B。耦合区域306A和306B可以包括多个耦合元件,以分别接收来自光发射器阵列组(也称为发射器阵列组)308A和308B的图像光。发射器阵列组308A和308B中的每个可以包括多个单色发射器阵列,该多个单色发射器阵列包括:例如但不限于,红色发射器阵列、绿色发射器阵列和蓝色发射器阵列。在特定实施例中,发射器阵列组308A和308B还可以包括白色发射器阵列、或发射其他颜色或任何多种颜色的任何组合的发射器阵列。在特定实施例中,波导构造302可以具有这样的发射器阵列组308A和308B,该发射器阵列组308A和308B覆盖解耦区域304的由分隔线309A划分的大致相同的部分。在特定实施例中,发射器阵列组308A和308B可以向波导构造302的由分隔线309B不对称地划分的波导提供图像。例如,发射器阵列组308A可以向解耦区域304的一半以上提供图像。在特定实施例中,发射器阵列组308A和308B可以布置在如图3A所示的波导构造302的相对两侧(例如,以180°分开)。在其他实施例中,发射器阵列组308A和308B可以以任何合适的角度布置。波导构造302可以是平面的,或者可以具有弯曲的截面形状以更好地适配用户的脸/头。
图3B示出了用于2D微型LED波导显示器的示例波导构造300B。在特定实施例中,波导构造300B可以包括投影仪设备350,该投影仪设备耦合到波导342。投影仪设备350可以包括多个光发射器352(例如,单色发射器),该多个光发射器352固定到支承结构354(例如,印刷电路板或其他合适的支承结构)。波导342可以通过具有距离D1(例如,大约50μm至大约500μm)的气隙与投影仪设备350分开。由投影仪设备350投射的单色图像可以通过气隙朝向波导342。波导342可以由玻璃或塑料材料制成。波导342可以包括耦合区域330,该耦合区域330包括用于接收来自投影仪设备350的发射光的多个耦合元件334A至334C。波导342可以包括解耦区域,该解耦区域具有位于上表面318A上的多个解耦元件336A和位于下表面318B上的多个解耦元件336B。波导342内位于解耦元件336A和336B之间的区域可以称为传播区域310,在该传播区域310中,从投影仪设备350接收并通过耦合元件334耦合到波导342中的图像光可以在波导342内横向传播。
耦合区域330可以包括这样的耦合元件(例如,334A、334B、334C):所述耦合元件被配置且尺寸被设置为耦合预定波长的光(例如,红色光、绿色光、蓝色光)。当投影仪设备350中包括白色光发射器阵列时,白色光的落入预定波长的部分可以通过耦合元件334A至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个灰度级)。
为了提高显示的图像质量,具有有限的色深或灰度级的显示器可以使用空间抖动来将各量化误差分散到相邻像素,并产生色深或灰度级增加的错觉。为了进一步增加色深或灰度级,显示器可以生成具有较少灰度级位的一系列时间子帧图像,以给出目标图像具有较多灰度级位的错觉。每个子帧图像可以在该子帧图像内使用空间抖动技术进行抖动。该一系列子帧图像的时间平均值或聚合可以对应于观看者所感知的图像。例如,为了显示具有8位像素(即,256个灰度级)的图像,系统可以使用四个子帧图像(该四个子帧图像各自具有6位像素(即,64个灰度级))来表示8位目标图像。作为另一示例,具有8位像素(即,256个灰度级)的图像可以由16个子帧图像来表示,每个子帧图像具有4位像素(即,16个灰度级)。这将允许显示系统利用用于较少灰度级(例如,6位像素或4位像素)的像素电路和支持硬件,来渲染较多灰度级(例如,8位像素)的图像,并因此减小显示系统的空间和尺寸。
在某些情况下,与需要在其上显示图像的显示硬件的像素相比,要显示的图像的像素可能具有更多的每颜色的位数。例如,要显示的图像可以支持每颜色13位,但显示器可能只支持每颜色6位。抖动技术可以用于改善具有有限的位深度的图像的感知质量。传统的抖动掩模可能被设计为单色,其中同一抖动掩模被应用于所有三色通道。此外,传统的生成抖动掩模的方法没有考虑人类视觉系统的色度通道,人类视觉系统在不同的色度通道和空间频率范围内具有不同的敏感度。传统的抖动技术也没有考虑显示器的子像素几何布局。因此,所显示的图像可能具有较不理想的空间显示质量(例如,较易感知的抖动噪声)。最后,传统的抖动技术没有考虑空间堆叠特性或颜色堆叠特性,因此可能容易受到时间伪影(例如,闪烁)的影响。
为了解决这些问题,本公开中的特定实施例可以使用抖动掩模,来生成具有较低色位的输出图像以表示具有较高色位的目标图像。抖动掩模可以通过考虑以下项来生成:(1)人类视觉系统(HVS)的色度通道;和(2)显示器的子像素几何布局。该系统可以为RGB颜色通道中的每个颜色通道生成抖动掩模。为了确定每个掩模的这些点图案,系统可以首先生成具有给定数量的点的随机点图案。然后,系统可以(取决于特定颜色通道的子像素几何布局)将特定颜色通道的一个点或一组点一起交换到不同位置,并使用预定的代价函数来计算感知误差。代价函数可以包括人类视觉系统(HVS)的模型和子像素几何布局模型。代价函数可以循环访问所有RGB颜色通道和所有可用点,以确定当前点图案相对于目标灰度级的估计感知误差值。该系统可以跟踪估计感知误差值,并与在先前步骤中计算的那些估计感知误差值进行比较。如果误差值变小,则该系统可以保留一个或多个所交换的点位置;如果误差值变大,则该系统可以丢弃该一个或多个所交换的点位置。在交换过程期间,可以使用显示器的子像素几何布局作为约束,以用于确定在退火过程期间点可被定位的位置。该系统可以重复该过程,直到该过程收敛并且所生成的点图案提供了最小化的感知误差值。所生成的抖动掩模可以满足空间堆叠特性和颜色堆叠特性。
通过在生成抖动掩模时考虑人类视觉系统特性(例如,对不同色度通道和空间频率范围的不同敏感度)和子像素几何布局(例如,大小、形状、排列等),该系统的特定实施例可以生成更好的抖动掩模,其在点图案方面的视觉效果在空间上更平滑(例如,感知的抖动噪声较少),并且在时间上也更平滑(例如,当目标颜色从一种颜色变为另一种颜色时,闪烁风险降低)。通过使用这些改进后的抖动掩模,该系统可以通过具有感知上更平滑且更准确的显示图像、以及更少的闪烁伪影来实现更好的显示质量。
图4A至图4C示出了表示不同灰度级的三个示例点图案(400A、400B和400C)。图4D示出了示例连续色调和对应的抖动点图案400D。抖动可以是一种用各点图案的空间平均值来呈现灰度级的方式。抖动技术可在AR/VR系统的显示中扮演重要角色,特别是当系统需要用较低的位深度像素值来表示较高的位深度数据时(例如,图像的像素值可能具有13位的精度,但显示硬件可能仅具有6位)。抖动技术可以依赖于这样的原理:人类视觉系统(HVS)可以在合适的条件下并凭借其空间整合特性将具有给定密度的点图案解释为灰阶。就这一点而言,该系统可以使用具有特定点密度的点图案来表示目标灰度级,例如,目标区域中与掩模尺寸相对应的平均灰度级。如图4D所示,当以足够高的角度分辨率观看时,对各单色点图案的空间整合可以表现为连续增加的灰度级0≤g≤1。例如,如图4A至图4C所示的三个点图案可以分别用于表示1/32、1/8和1/4的灰度级。在特定实施例中,AR/VR系统可以使用简单的颜色抖动方法,该颜色抖动方法使用单色抖动掩模,在不增加计算复杂性的情况下提供改善的图像质量。在特定实施例中,系统可以使用更复杂的设计,其中,对于任意子像素几何形状,使用全色抖动掩模来显著提高图像质量,如本公开的以下部分中所描述的。
图5示出了示例单色掩模500。在特定实施例中,该系统可以生成单色抖动掩模,该单色抖动掩模包括堆叠在一起的多个点图案。该掩模可以包括多个空间上堆叠的点图案,每个点图案与目标灰度级范围内的特定灰度级相对应。该掩模中的各点图案可以具有空间堆叠特性,使得每个灰度级的点图案可以包括对应于所有更低灰度级的所有点图案。抖动掩模中的每个点可以与一阈值相关联。该阈值可以和与包括该点的点图案相关联的最小灰阶值相对应。在运行阶段期间,该系统可以(例如使用如下所示的等式1)将目标灰阶值和与一点相关联的阈值进行比较,以确定该点是否应该在该点图案中“开启”(即,该点是否应该包括在该点图案中)以表示目标灰阶值。通过将目标灰阶值和与该掩模中的点相关联的阈值进行比较,系统可以再制作点图案以有效地表示目标灰阶值。
其中,px,y是(x,y)位置的目标像素值,Mx,y是(x,y)位置处的点的阈值,1表示该点应该被开启并因此将被包括在用于表示目标像素值的点图案中,0表示该点不应该被开启并因此将不被包括在用于表示目标像素值的点图案中。在特定实施例中,该过程可以称为“基于掩模的抖动”,并且该过程可以具有几个优点。首先,点图案可能是静态的,并因此该方法可以避免对误差传播技术(例如,弗洛伊德-斯坦伯格(Floyd-Steinberg)算法)产生困扰的运动抖动伪影。其次,基于掩模的技术实现起来可能非常高效,并且可能不需要行缓冲区(因此使用的内存较少)。掩模设计和生成过程可以离线执行,并且可以仅使用非常少量的内存。第三,可以根据人的感知和显示器的子像素几何布局来定制点图案,这可以进一步提高所显示的图像的质量。
在特定实施例中,可以根据两个标准来生成用于每个灰度级(g)的点图案(D)。首先,这些点图案可以满足具有蓝噪声特性的空间点分布特征。其次,这些点图案可以遵守“堆叠特性”,根据该“堆叠特性”,与灰度级相对应的点图案可以包括对应于所有更低灰度级的所有点图案。设计抖动掩模(阈值)可以涉及为每个灰度级g生成点图案D。点密度应与目标所需的灰度级g相匹配。通过考虑HVS函数h,抖动掩模的点图案可以具有“蓝噪声”特性(例如,在感知上均匀)。构建感知上最优的抖动掩模可以被视为这样的优化问题:在该优化问题中,代价函数/感知误差(e)将要被最小化,并且点图案的点密度与对应的目标灰阶值相匹配。给定低通人类视觉系统(HVS)亮度函数(h),系统可以使用如下所示的代价函数来生成点图案集合,以最小化感知误差。
其中,D表示正被优化的点图案,g表示目标灰阶值,h表示人类视觉系统模型(例如,亮度函数),e表示该点图案的估计感知误差。
在特定实施例中,系统可以使用模拟退火法优化方法来确定抖动掩模的点图案。为了确定点图案,系统可以首先生成25%、50%和75%(归一化)灰度级的点图案,并且随后使用这些点图案作为约束来确定其余灰度级的点图案。75%灰度级的点图案可以包括50%灰度级的所有点,75%灰度级的点图案还可以包括25%灰度级的所有点。该系统可以首先确定特定灰度级的点图案的各点(例如,50%),并且随后使用模拟退火过程来确定点分布。例如,对于50%,系统可以使用针对25%的点图案作为初始点图案。然后,系统可以分配位置不固定的额外25%的点。这些额外的点可以从剩余的非固定点中随机选择。然后,系统可以将特定颜色通道的一个点或一组点(这取决于特定颜色通道的子像素几何布局)交换到一个或多个不同位置,并使用预定的代价函数来计算感知误差。点或点组可以成对互换,并且点对或点组对可以在每个优化步骤中随机选择。该系统可以跟踪估计感知误差值,并与在先前步骤中所计算的那些估计感知误差值进行比较。如果感知误差值变小,则系统可以保留一个或多个所交换的点位置;如果感知误差值变大,则系统可以丢弃该一个或多个所交换的点位置。系统可以重复该过程,直到该过程收敛并且所生成的点图案提供了最小化的感知误差值。系统可以重复该过程以最小化由代价函数确定的估计感知误差值,从而生成一个或多个优化的抖动掩模。
通过使用低通人类视觉系统亮度函数(h),所得到的点图案可以具有蓝噪声带通特性(该蓝噪声带通特性可以是感知上均匀的),从而使人类视觉系统感到满意。另一方面,堆叠特性可以规定:灰度级gn的点图案包含前一个灰度级gn-1的点图案。这种空间堆叠特性可以允许在灰度级之间进行最小数量的点变化,从而提供感知上平滑过渡。这种空间堆叠特性还可以允许将该多个图案收集到如图5所示的单个抖动掩模中。抖动算法可以具有抖动输出v,该抖动输出v是通过相对于给定像素处的掩模的值对期望灰度进行阈值化(例如,使用等式1)来计算的。
在特定实施例中,系统可以对RGB的所有三个颜色通道使用单色掩模来进行颜色抖动,其中每个颜色通道被独立地抖动。在特定实施例中,通过利用重心坐标的特性,可以仅使用一个单色掩模来执行颜色抖动。在特定实施例中,系统可以使用四面体的四个顶点来表示RGBK颜色空间的四个原色。对于属于该RGBK颜色空间的任何颜色,其可以表示为四面体顶点v=[v1,v2,v3,v4]及其关联的重心权重w=[w1,w2,w3,w4]的线性组合,如以下等式所示:
V=wvT (3)
其中,vx表示四面体的顶点,每个顶点与颜色空间的一原色相对应;wx表示重心权重值。在特定实施例中,系统可以基于由重心权重w=[w1,w2,w3,w4]确定的相应比例将单色抖动掩模的点的多个子集分别分配给RGBK颜色。因此,该系统可以将任何颜色表示为具有合适的点密度的四种颜色(例如,RGBK)的混合。例如,对于落入RGBK颜色空间的中心的颜色,单色抖动掩模中的(被分配给RGBK的)点子集可以按w=[1/41/41/41/4]的比例开启,并且所得到的颜色C可以看起来是25%的灰色(如由25%的红色点、25%的绿色点、25%的蓝色点和被关闭的25%的点所表示)。因此,对于任何目标颜色,系统可以用重心比率来表示其各自的点颜色密度,然后使用先前生成的单色掩模来确定用于表示目标颜色的点图案。
在特定实施例中,确定用于表示目标颜色的四面体顶点的过程可以由以下等式来描述:
其中,wk是顶点vk的重心值,q是该像素的抖动掩模的阈值。换句话说,当前k个重心权重的和超过该像素处的掩模值q时,系统可以选择四面体顶点vk。所选的四面体顶点vk可以与可用于表示目标颜色的抖动颜色(例如,一个或多个基于比例的原色的混合)相对应。并且该系统可以基于所选择的顶点vk来生成对应的点图案。值得注意的是,由于抖动掩模点图案满足堆叠特性(即,一灰度级的点图案包括更低灰阶值的所有点图案),因此使用等式(4)选择四面体顶点vk可以使得基于由重心权重值确定的百分比来混合原色以表示目标颜色,这是因为一旦选择了顶点,与该顶点相关联的当前原色和被分配给更低百分比值的所有其他颜色也被累计选定。值得注意的是,在特定实施例中,由于点可以按比例着色,因此该方法可以施加空间堆叠特性而不是颜色堆叠特性。
在特定实施例中,由于颜色抖动算法利用了HVS在较高空间频率下具有相对色度不敏感性,因此使用单色掩模进行颜色抖动的系统可以通过具有对于颜色抖动情况明显更平滑的灰色斑块(gray patch)来改善显示质量。在特定实施例中,当硬件不能执行跨通道操作时、或者当不清楚该硬件是否可以执行跨通道操作时,该解决方案可能有用。在特定实施例中,对RGB颜色通道使用同一单色掩模的颜色抖动算法可以在不使用额外的内存资源的情况下提供改善的图像质量,同时允许显示系统具有减小的位深度。
尽管可以对单色掩模方法进行扩展以启用颜色抖动,但此方法可能具有一些限制。使用单色掩模来执行颜色抖动的系统可以允许控制点颜色的比例,但不能生成随色调变化的抖动图案(这是某些AR/VR系统的必要要求)。换句话说,单色掩模设计可能不知道HVS的色度特性。此外,使用单色掩模的系统也可能不考虑混合像素间距。使用单色掩模的抖动方法可能具有时间伪影(例如,在多个帧之间从一种颜色到另一种颜色的闪烁,这是因为它缺乏颜色之间的空间约束)。单色掩模可能无法生成具有随色调变化的点图案的抖动掩模,并且不能考虑到面板或子像素布局。值得注意的是,在特定实施例中,由于点可以仅按比例着色,因此该方法可以施加空间堆叠特性而不是颜色堆叠特性。
在特定实施例中,可以通过将阈值的概念扩展到色域来构建彩色抖动掩模。假设RGBK四面体颜色空间,该系统可以在其质心w=[1/41/41/41/4]处生成四色抖动图案。该系统可以定义从质心到其顶点的路径,并沿满足颜色堆叠特性的这些路径生成抖动图案。例如,从质心朝向红色顶点移动时,在某个位置处,给定点可能会变成红色,之后,对于所有更红的颜色,该点可以保持红色。变成红色的位置可能对应于一阈值。类似的原理也适用于绿色顶点、蓝色顶点和黑色顶点。因此,系统可以对该像素确定重心阈值。该系统可以重复该过程并生成彩色抖动掩模。在特定实施例中,系统可以使用如下等式所示的抖动算法:
其中,qk是彩色抖动掩模在给定像素处的重心坐标。对于四面体v中的任何颜色w,可以根据等式(5)选择四面体顶点vk。概括地讲,等式(5)可以通过将四面体分成四个体积并选取最大体积来描述抖动过程而不是抖动掩模生成过程。相比之下,等式(4)可以将一条线分成多个线段,并选取最长的线段。
图6示出了示例彩色抖动掩模600。在特定实施例中,系统可以使用通过利用以下项来生成彩色抖动掩模的方法:(1)人类视觉系统(HVS)的多个色度通道;和(2)显示器的子像素几何布局。该系统可以为RGB颜色通道中的每个颜色通道生成抖动掩模。每个掩模可以包括多个堆叠的点图案,每个点图案与目标灰度级范围内的特定灰度级相对应。每个掩模中的各点图案可以具有空间堆叠特性,使得每个灰度级的点图案可以包括对应于所有更低灰度级的所有点图案。每个掩模图案可以是固定的,并且可以具有蓝噪声分布,这允许抖动图案不从一帧移动到另一帧,从而消除了在误差传播方法中发现的“游移”伪影。值得注意的是,图6中的示例抖动掩模是黑白印刷的,以说明其点图案。理想情况下,彩色抖动掩模可以用带有彩色点图案的彩色图呈现和印刷。
在特定实施例中,系统可以使用模拟退火法来确定抖动掩模(单色掩模和彩色掩模)的点图案。为了确定每个掩模的这些点图案,系统可以首先生成25%、50%和75%(归一化)灰度级的点图案,并且随后使用这些点图案作为约束来确定剩余灰度级的点图案。75%灰度级的点图案可以包括50%灰度级的所有点,75%灰度级的点图案还可以包括25%灰度级的所有点。该系统可以首先确定特定灰度级的点图案的各点(50%),并且随后使用模拟退火过程来确定点分布。例如,对于50%,系统可以使用针对25%的点图案作为初始点图案。然后,系统可以分配位置不固定的额外的25%的点。这些额外的点可以从剩余的非固定点中随机选择。然后,系统可以将特定颜色通道的一个点或一组点(这取决于特定颜色通道的子像素几何布局)交换到一个或多个不同的位置,并使用预定代价函数来计算感知误差。多个点或多个点组可以成对互换,并且可以在每个优化步骤中随机选择点对或点组对。该系统可以跟踪估计感知误差值,并与在先前步骤中所计算的那些估计感知误差值进行比较。如果感知误差值变小,则系统可以保持一个或多个所交换的点位置;如果感知误差值变大,则系统可以丢弃该一个或多个所交换的点位置。系统可以重复该过程,直到该过程收敛并且所生成的点图案提供最小化的感知误差值。系统可以重复该过程以最小化由代价函数确定的估计感知误差值,从而生成一个或多个优化的抖动掩模。为了提高离线掩模生成过程的计算效率,系统可以仅基于交换的像素位置处的改变来更新感知误差。此外,该系统可以施加颜色堆叠约束以最小化灰度级之间的点变化的数量并最小化潜在的闪烁。例如,在RGB的每个颜色通道中,灰度级gm的点图案可以始终包含灰度级gm-1的点图案。
在特定实施例中,代价函数可以包括人类视觉系统(HVS)的模型,该模型在不同的色度通道和不同的空间频率范围中具有不同的敏感度。代价函数还可以包括子像素几何布局模型,该子像素几何布局模型表示每个颜色通道的各实际显示子像素的几何尺寸、形状和布局。代价函数本身可以循环访问所有RGB颜色通道和所有可用点,以确定当前点图案相对于目标灰度级的估计感知误差值。因此,在每个优化步骤中,即使在该步骤中仅交换了特定颜色的一个点或一组点,也可以在考虑RGB的所有三色通道的情况下计算感知误差。系统可以跟踪估计感知误差值,并与在先前步骤中计算的那些估计感知误差值进行比较,如果误差值变小,则系统可以保留一个或多个所交换的点位置;如果误差值变大,则系统可以丢弃该一个或多个所交换的点位置。该系统可以重复该过程,直到该过程收敛并且所生成的点图案提供最小化的感知误差值。
在特定实施例中,系统可以基于子像素的大小来确定是将多个单独的点交换还是将被分组的多个点一起交换。例如,如果所有颜色通道的子像素具有相同的大小,则系统可以交换多个单独的点,其中,每个点表示单个子像素。如果不同颜色通道的子像素具有不同的大小,则该系统可以使用一组点来表示单个子像素,并且可以在交换过程期间将这组点一起移动。例如,如图7C所示,如果红色子像素是绿色子像素大小的8倍,蓝色子像素是绿色子像素大小的3倍,则系统可以用一个点来表示绿色子像素,使用3个点的组(根据蓝色子像素形状排列成一列)来表示蓝色子像素,并且使用8个点的组(根据红色子像素形状排列成两列)来表示红色子像素。由于每组点表示单个子像素,因此在交换过程期间,每组中的所有点可能需要一起移动。通过考虑各子像素的实际几何布局(大小、形状、排列等),系统可以生成更好的抖动掩模,从而产生更优化的显示效果。
如前所述,设计抖动掩模(阈值)可以涉及为每个灰度级g生成多个点图案D。点密度可能需要与目标所需的灰度级g匹配。通过考虑HVS函数h,抖动掩模的点图案可以具有“蓝噪声”特性(感知上均匀)。构建感知上最优的抖动掩模可以被视为这样的优化问题:在该优化问题中,代价函数/感知误差(e)将要被最小化,并且点图案的点密度与对应的目标灰阶值匹配。在特定实施例中,用于优化点图案的代价函数可以由以下等式描述:
其中,G表示子像素的几何布局,D表示正被优化的点图案,h表示人类视觉系统(HVS)函数,g表示目标灰阶值,e表示估计感知误差。值得注意的是,子像素几何布局模型可以包括与每个颜色通道的显示子像素的几何尺寸、形状和位置布置有关的信息。在每个优化步骤中,代价函数可以循环访问当前点图案的所有点以计算感知误差值,从而考虑显示器的子像素几何布局。值得注意的是,HVS功能并不限于亮度功能,这是因为这3个彩色掩模可以被共同优化,并且系统可以具有考虑了HVS中的亮度和色度的灵活性。
值得注意的是,人类视觉系统在不同的色度通道和不同的空间频率范围内可能具有不同的敏感度。例如,HVS可能对亮度更敏感,而对色度变化不太敏感。在每个优化步骤中,代价函数可以循环访问颜色空间(例如,RGB颜色空间或对立颜色空间)的所有色度通道。例如,系统可以循环访问所有RGB颜色通道和所有点,以确定当前点图案相对于目标灰度级的估计感知误差值。因此,在每个优化步骤中,即使在该步骤中仅对特定颜色的单个点或单个点组在位置上与相应的点或相应的一组点进行了交换,也可以在考虑RGB颜色空间(或在对立颜色空间)的所有三色通道的情况下计算感知误差。
在特定实施例中,在颜色空间中进行优化可以帮助隐藏人类视觉系统较不敏感的、较高空间频率的色度抖动噪声。一般来说,人类的视觉系统可能对亮度更敏感,但对色度不那么敏感。因此,通过对色度通道的访问,抖动掩模可以在颜色感知过程中(例如,使用彩色掩模)被设计,系统可以获得更令人满意的视觉效果。此外,不同颜色通道的掩模可以被共同设计。换句话说,一个特定颜色通道的抖动掩模可以在考虑所有三个颜色通道具有最小的感知误差的效果的情况下生成。因此,该系统可以提供更好的空间图像质量。
如果系统在假设不同颜色通道的子像素位于同一位置的情况下生成抖动掩模、并且使用所生成的抖动掩模来渲染RGB条形几何图形的图案,则颜色点之间的空间关系可能会被破坏。换句话说,抖动图案的“蓝噪声”特性可能不再成立。由此产生的伪影可能会非常不舒服。另一方面,如果系统在考虑底层子像素关系的情况下生成抖动图案(即,点图案被优化,以在子像素网格上提供蓝噪声图案),则系统可以获得更好的抖动图案。就这一点而言,在特定实施例中,系统可以在子像素几何布局(包括大小、形状、位置布置等)的约束下使用受约束的抖动方法来生成彩色抖动掩模。该系统可以使用相同的框架来生成具有附加约束的抖动掩模,以考虑诸如RGB条形几何形状等子像素化布局(例如,红色点、绿色点和蓝色点被约束到不交叠的给定列)。因此,该系统可以生成在抖动质量效果上具有显著改进的彩色抖动掩模。
在特定实施例中,在优化期间施加子像素几何约束可以减少由任意像素几何形状引入的图像质量降级。显示器可以具有不同的子像素布局。例如,显示器可能具有多个面板,红色和蓝色像素可以使用1/2的分辨率来降低制造风险或减少数据带宽。作为另一示例,该显示器可以是子像素化显示器(例如,可变电流GaN显示器),并且可以具有不同的RGB像素分辨率以管理电流密度。在特定实施例中,本公开中所描述的原理、方法、过程和系统可以在允许显示器具有任何子像素布局的框架中实现。在特定实施例中,子像素几何布局可以对几何形状和点密度这两者施加约束。在不了解底层几何体的情况下,抖动的图像可能会显示出纹理状和噪波。在子像素几何布局约束下,点图案可以更加均匀,并且图像质量可以得到改善。
图7A至图7C示出了显示子像素的三个示例布局700A、700B和700C。在特定实施例中,系统可以使用抖动矩阵设计算法,该抖动矩阵设计算法假定同一像素的不同颜色的所有子像素具有同一空间位置。在许多显示器设计中,情况可能并非如此。例如,不同颜色通道的子像素可以具有不同的大小、形状和位置。但是由于大多数现代显示器具有非常小的像素和非常高的位深度,这通常可能不会有问题。但对于低位深度显示技术,例如AR/VR系统中的显示器,其可能基本上依赖于抖动,并且对于具有新颖的子像素几何结构的显示器,这可能是对抖动结果的质量产生负面影响的重要因素。作为示例而非限制,如图7A所示,显示器可以是具有三个面板的多面板显示器,每个面板用于RGB颜色通道的一颜色通道,并且各种颜色的子像素701A、702A、703A可以具有相同的大小。在这种情况下,可以假设不同颜色通道的子像素位于相同位置。每个子像素可以由用于该颜色通道的彩色抖动掩模中的单个点表示。或者替代地,每种颜色的每个子像素可以由用于该颜色通道的彩色抖动掩模中的一组点表示,但是不同颜色通道的子像素可以与不同的点组相对应,每个点组都包括相同数量的点。
作为另一示例,如图7B所示,显示器可以具有这样的子像素几何形状:该子像素几何形状具有RGB条形布局,其中,RGB子像素具有竖向布置的条形形状。如前所述,该显示器的每个子像素可以由用于该颜色通道的彩色抖动掩模中的一组点表示。例如,RGB子像素701B、702B和703B可以分别由竖向排列的四个点的组表示。表示子像素的每组四个点可以在交换过程期间一起移动。作为另一示例,显示器可以具有如图7C所示的非均匀子像素几何布局。在该示例中,红色子像素701C可以是绿色子像素702C大小的8倍,而蓝色子像素703C可以是绿色子像素702C大小的3倍。该系统可以使用一个点(或一个单位组的点)来表示绿色子像素702C。该系统可以使用3个点的组(根据蓝色子像素形状排列成一列)来表示蓝色子像素703C,并且可以使用8个点的组(根据红色子像素形状排列成两列)来表示红色子像素701C。在交换过程期间,每组中的点可能需要一起移动,因为每组点表示单个子像素。通过考虑实际的子像素的几何布局(大小、形状、排列等),系统可以生成更好的抖动掩模,从而产生更优化的显示结果。
图8A至图8B示出了作为子像素几何布局表示的示例矩阵(801、802、803、811、812、813)。如等式(6)中所示,用于确定感知误差值的代价函数可以包括子像素几何布局的表示G。该表示可以将子像素几何布局约束施加到彩色抖动掩模的生成过程。如前所述,子像素大小和形状可以确定用于表示单独子像素的点组的大小。在特定颜色的子像素大于其他颜色通道的子像素的情况下,表示G可以包括如下约束:掩模中的多个点需要一起移动。例如,如果红色子像素比绿色子像素或蓝色子像素大4倍(即,红色子像素大小为2x2,绿色子像素和蓝色子像素大小为1),则将存在这样的约束:该约束指示在交换过程期间,对于红色点,一组2x2的点必须被一起选择并被一起交换。
在特定实施例中,子像素几何布局表示G可以确定在用于生成彩色抖动掩模的交换过程期间、特定颜色通道的特定抖动掩模的点可被定位的位置。对于RGB颜色通道,假定为Gr、Gg和Gb。每个表示G可以被表示为用于对该颜色的像素所处的位置进行编码的矩阵。作为示例而非限制,在如图7A所示的多面板显示器中,所有3个表示Gr、Gg和Gb都将是一个全1的矩阵。这意味着彩色抖动掩模中的RGB点可以(在交换过程中)被定位到同一掩模的任何位置。作为另一示例,如图7B所示,子像素化显示器可以具有被定位在竖向方向上的条形子像素。就这一点而言,Gr、Gg和Gb矩阵可以在图8A中被示出。换言之,红色通道的抖动掩模中的红色点可以仅被定位在掩模的第1、4、7、……列,因为显示器在这些位置处可能仅具有红色子像素。类似地,绿色通道的抖动掩模中的绿色点可以仅被定位在掩模的第2、5、8、……列,因为显示器在这些位置处可能仅具有绿色子像素。类似地,蓝色通道的抖动掩模中的蓝色点可以仅被定位在掩模的第3、6、9、……列,因为显示器在这些位置可能仅具有蓝色子像素。
作为另一示例,如图7C所示,子像素化显示器可以具有用于不同颜色通道的非均匀子像素。子像素几何布局Gr、Gg和Gb表示可以在图8B中示出。在该示例中,红色子像素的大小可以是绿色子像素大小的8倍,而蓝色子像素的大小可以是绿色子像素大小的3倍。该系统可以使用一个点(或1个单位组的点)来表示绿色子像素。该系统可以使用根据蓝色子像素形状而被排列成一列的3个点的组(或3个单位组的点)来表示蓝色子像素。该系统可以使用根据红色子像素形状而被排列成两列的8个点的组(或8个单位组的点)来表示红色子像素。在交换过程期间,由于每组点表示单个子像素,因此每组中的点可能需要一起移动。在用于优化抖动掩模的交换过程期间,红色抖动掩模中的红色点组可以仅被定位在如Gr所示的位置。换句话说,红色抖动掩模中的红色点可以被定位在红色掩模中第1、2、4、5、7、8、……列。类似地,绿色点或绿色点组可以仅被定位在Gg所示的位置。换句话说,绿色抖动掩模中的绿色点可以被定位在绿色掩模中的第1、5、9、……行的第3、6、9、……列。类似地,蓝色点组可以被定位在如Gb所示的位置。换句话说,蓝色掩模中的蓝色点可以被定位在蓝色掩模中的第2、3、4、6、7、8、……行的第3、6、9、……列。就这一点而言,通过考虑实际的子像素的几何布局(大小、形状、排列等),系统可以生成更好的抖动掩模,从而产生更优化的显示效果。值得注意的是,尽管图7C示出了任意布局和子像素化显示器的特定示例,但可以将相同的方法、过程和原理应用于任何任意布局或/和多面板显示器。
在特定实施例中,可以沿着K-W路径设计点图案,其中K表示KRGB-YCMW颜色单位立方体中的黑色,而W表示KRGB-YCMW颜色单位立方体中的白色。可以允许各RGB点在该路径中重叠,从而允许通过模拟退火法来实现像素交换的更高自由度。考虑到RGB面板的不同像素大小,可以施加子像素几何约束。RGB抖动掩模可以被共同设计,以提高感知质量。可以以与单色掩模相同的方式施加彩色掩模。就这一点而言,该系统可以通过使用受约束的抖动来显著改善抖动噪声。
在特定实施例中,与使用单色掩模的方法相比,使用彩色抖动掩模的颜色抖动方法可能会使用3倍的存储内存。然而,它将允许系统利用显示器的独特像素布局来实现更好的抖动效果。值得注意的是,在本公开中使用了RGB条形几何形状作为示例,但该方法不限于此。该原理、方法和过程可以适用于显示器的所有合适的子像素布局(并且适用于多面板显示器和子像素化显示器这两者)。例如,该原理、方法和过程可以适用于使用两个(而不是三个)显示面板的系统,其中一个面板具有全分辨率绿色子像素,而另一个面板具有红色/蓝色拜耳几何结构(Bayer geometry)。作为另一示例,各显示子像素可以是4mm红色/蓝色子像素与2mm绿色子像素的组合。在特定实施例中,使用彩色抖动掩模的颜色抖动方法可以具有更好的投影仪的优化光学特性,这是因为用于生成点图案的人类视觉系统模型h(例如,加权函数)可以结合全色调制传递函数(modulation transfer function,MTF)的信息。作为又一示例,在显示器具有多于三种不同颜色的发射器的情况下,可以使用多原色方法。
在特定实施例中,系统可以访问全色像素值并使用全色抖动掩模执行用于颜色抖动的跨通道操作,并且可以显著提高抖动质量。在彩色掩模设计期间,可以访问人类视觉系统的色度通道,这使得不同的视觉模型能够在相同的框架(例如,对立颜色空间中的视觉模式)中被利用。可以考虑颜色堆叠特性来生成彩色掩模,从而改善时间性能。彩色掩模可以允许系统针对每个颜色通道中的子像素几何形状进行优化。可以使用本公开中所描述的框架来生成彩色掩模,以在多面板显示器中处理具有混合分辨率几何图形(例如,1/2分辨率的红色像素或/和蓝色像素)的子像素化显示。可以使用框架来生成彩色掩模,使得其可以在不同的颜色空间(例如,RGB颜色空间或对立颜色空间)中进行优化。
全色抖动掩模可能更难构建,但与单色掩模方法相比,可以提供许多优点。例如,单色掩模可能仅能够维持空间堆叠特性(或密度堆叠特性),根据该特性,一旦像素对于灰度级gn被开启,则该像素对于高于gn的所有灰度级都保持开启,但是该像素可能无法满足颜色堆叠特性。相比之下,除了空间(密度)堆叠特性之外,彩色抖动掩模还可以满足颜色堆叠特性。根据颜色堆叠特性,如果像素在处于某种颜色w=[w1 w2 w3 w4]时变为红色,则对于比w更红的所有颜色,该像素可以保持为红色。类似地,如果像素在处于某种颜色w=[w1 w2w3 w4]时变为绿色,则对于比w更绿的所有颜色,该像素可以保持为绿色。类似地,如果像素在处于某种颜色w=[w1 w2 w3 w4]时变为蓝色,则对于比w更蓝的所有颜色,该像素可以保持为蓝色。这可以极大地降低像素随灰度级变化而闪烁的可能性。此外,彩色掩模可以在其内部包含关于底层颜色通道几何形状的信息。
在特定实施例中,受约束的抖动的在线实现可以涉及阈值处理,其中抖动图案可以通过比较输入像素值和掩模值来获得,如以下等式所示:
其中,px,y是(x,y)位置的目标像素值,Mx,y是(x,y)位置处的点的阈值,c表示颜色通道,1表示该点应该被“开启”并因此将被包括在用于表示目标像素值的点图案中,0表示该点不应该被开启并因此将不被包括在用于表示目标像素值的点图案中。在运行时,系统可以选择具有RGB颜色分量的目标像素值(例如,70%)。该系统可以将每个颜色分量值与对应的彩色抖动掩模的阈值进行比较。如果目标像素值的颜色分量值大于或等于阈值,则该系统可以将该点包括(即,开启)在结果点图案中。如果目标像素的颜色分量值小于阈值,则系统可以在结果点图案中排除(即,关闭)该点。RGB颜色空间总共可能需要三个掩模(例如,c=R、G、B)。然而,受约束的抖动的计算复杂性和功率要求可能与单色抖动相同。
图9示出了用于使用抖动技术显示图像的示例方法900。该方法可以在步骤910处开始,其中计算系统可以接收要在显示器上显示的目标图像,该目标图像具有每颜色的第一位数。在步骤920处,系统可以访问RGB颜色通道中的每个颜色通道的掩模,所访问的掩模可以是基于如下项来生成的:(1)人类视觉系统的一个或多个特性;以及(2)显示器的子像素几何布局。在步骤930处,系统可以基于目标图像和所访问的掩模来生成输出图像。该输出图像可以具有每颜色的第二位数,该每颜色的第二位数小于每颜色的第一位数。在步骤940处,系统可以在显示器上显示该输出图像,以用于展示目标图像。
在特定实施例中,该颜色通道的掩模可以包括多个点图案,每个点图案与该颜色通道的灰度级相对应。这些点图案可以满足空间堆叠特性。在特定实施例中,特定灰度级的每个点图案可以包括该颜色通道的更低灰度级的所有点图案。在特定实施例中,RGB颜色通道的掩模可以满足颜色堆叠特性。当目标颜色沿从黑色开始到白色结束的颜色空间路径变得更亮时,被分配给一颜色的点可以保持该颜色。在特定实施例中,可以使用模拟退火过程来生成该颜色通道的掩模,该模拟退火过程包括:为该颜色通道的目标灰度级生成第一点图案;计算第一点图案的第一感知误差;通过将第一点图案中的至少一个点交换到不同的点位置来生成第二点图案;计算第二点图案的第二感知误差;以及基于对第一感知误差和第二感知误差的比较来确定是保留还是丢弃第二点图案。
在特定实施例中,可以使用代价函数来计算第一感知误差和第二感知误差。代价函数可以具有基于人类视觉系统的一个或多个特性的第一约束、和基于显示器的子像素几何布局的第二约束。在特定实施例中,人类视觉系统的一个或多个特性可以由以下的矩阵表示:该矩阵表示人类视觉系统在不同色度通道或不同空间频率范围内的不同敏感度。在特定实施例中,显示器的子像素几何布局可以由以下的矩阵表示:该矩阵表示显示器的多个子像素的大小、形状和布局。在特定实施例中,代价函数可以循环访问多个色度通道(例如,RGB颜色通道)和当前点图案的所有点,以确定感知误差值。在特定实施例中,当显示器在当前颜色通道中具有更大的子像素大小时,至少一个点可以包括一组点,该一组点被一起交换以代表具有更大的子像素大小的子像素。在特定实施例中,被交换的多个点可以随机选择,并且该多个点可以受显示器的子像素几何布局的约束而被交换到不同的点位置。在特定实施例中,使用退火法生成的掩模可以提供最小化的感知误差值。
在适当的情况下,特定实施例可以重复图9中的方法的一个或多个步骤。尽管本公开将图9中的方法的特定步骤描述并示出为以特定的顺序进行,但本公开考虑了以任何合适顺序进行图9中的方法的任何合适的步骤。此外,尽管本公开描述并示出了用于使用抖动技术显示图像的、包括图9中的方法的特定步骤的示例方法,但本公开考虑用于使用抖动技术显示图像的、包括任何合适步骤的任何合适方法,在适当情况下,该方法可以包括图9中的方法的全部步骤、一些步骤,或者可以不包括图9中的方法的任何步骤。此外,尽管本公开描述并示出了执行图9中的方法的特定步骤的特定部件、设备或系统,但本公开考虑了执行图9中的方法的任何合适步骤的任何合适的部件、设备或系统的任何合适组合。
图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,共同地或单独地”。
本公开的范围涵盖对本文中所描述或所示出的示例实施例的所有改变、替代、变化、更改和修改,本领域技术人员将理解这些改变、替代、变化、更改和修改。本公开的范围不限于本文所描述或示出的示例实施例。此外,尽管本公开将本文中的各个实施例描述并示出为包括特定的部件、元件、特征、功能、操作或步骤,但是这些实施例中的任何实施例都可以包括本领域普通技术人员将理解的、本文任何地方所描述或所示出的部件、元件、特征、功能、操作或步骤中的任何组合或排列。此外,在所附权利要求中对适用于、被布置为、能够、被配置为、使能够、能够操作、或可被操作以执行特定功能的装置或系统、或装置或系统中的部件的引用,包含该装置、系统、部件,无论该装置、系统、部件或该特定功能是否被激活、开启或解锁,只要该装置、系统或部件如此适用于、被布置为、能够、被配置为、使能够、能够操作或可被操作。另外,尽管本公开将特定实施例描述或示出为提供特定优点,但是特定实施例可以不提供这些优点,或可以提供这些优点中的一些或全部。
Claims (20)
1.一种方法,包括:通过计算系统:
接收要在显示器上显示的目标图像,所述目标图像具有每颜色的第一位数;
访问RGB颜色通道的每个颜色通道的掩模,其中,所访问的所述掩模是基于以下项来生成的:人类视觉系统的一个或多个特性;以及所述显示器的子像素几何布局;
基于所述目标图像和所访问的所述掩模来生成输出图像,其中,所述输出图像具有每颜色的第二位数,所述每颜色的第二位数小于所述每颜色的第一位数;以及
在所述显示器上显示所述输出图像,以用于展示所述目标图像。
2.根据权利要求1所述的方法,其中,所述显示器具有小于所述目标图像的所述每颜色的第一位数的所述每颜色的第二位数。
3.根据权利要求1所述的方法,其中,所述颜色通道的掩模包括多个点图案,每个点图案与所述颜色通道的灰度级相对应,并且其中,所述多个点图案满足空间堆叠特性。
4.根据权利要求3所述的方法,其中,所述多个点图案中的每个点图案包括所述颜色通道的更低灰度级的所有点图案。
5.根据权利要求1所述的方法,其中,所述RGB颜色通道的掩模满足颜色堆叠特性,并且其中,当目标颜色沿着从黑色开始到白色结束的颜色空间路径变得更亮时,分配给一颜色的点保持所述颜色。
6.根据权利要求1所述的方法,其中,所述颜色通道的掩模是使用模拟退火过程生成的,所述模拟退火过程包括:
为所述颜色通道的目标灰度级生成第一点图案;
计算所述第一点图案的第一感知误差;
通过将所述第一点图案中的至少一个点交换到不同的点位置,来生成第二点图案;
计算所述第二点图案的第二感知误差;以及
基于对所述第一感知误差和所述第二感知误差的比较,确定是保留还是丢弃所述第二点图案。
7.根据权利要求6所述的方法,其中,所述第一感知误差和所述第二感知误差是使用代价函数来计算的,并且其中,所述代价函数具有基于所述人类视觉系统的所述一个或多个特性的第一约束、和基于所述显示器的所述子像素几何布局的第二约束。
8.根据权利要求7所述的方法,其中,所述人类视觉系统的所述一个或多个特性由以下矩阵表示:所述矩阵表示所述人类视觉系统在不同色度通道或不同空间频率范围内的不同敏感度。
9.根据权利要求7所述的方法,其中,所述显示器的所述子像素几何布局由以下矩阵表示:所述矩阵表示所述显示器的多个子像素的大小、形状和布局。
10.根据权利要求7所述的方法,其中,所述代价函数循环访问多个色度通道和当前点图案的所有点,以确定感知误差值。
11.根据权利要求6所述的方法,其中,当所述显示器在当前颜色通道中具有更大的子像素大小时,并且其中,所述至少一个点包括一组点,所述一组点被一起交换以代表具有所述更大的子像素大小的子像素。
12.根据权利要求6所述的方法,其中,正被交换的所述至少一个点是随机选择的,并且其中,所述至少一个点受所述显示器的所述子像素几何布局的约束而被交换到所述不同的点位置。
13.根据权利要求6所述的方法,其中,使用所述模拟退火过程生成的所述掩模提供了最小化的感知误差值。
14.一种或多种计算机可读非暂态存储介质,包含软件,所述软件在被执行时能够操作以:
接收要在显示器上显示的目标图像,所述目标图像具有每颜色的第一位数;
访问RGB颜色通道的每个颜色通道的掩模,其中,所访问的所述掩模是基于以下项来生成的:人类视觉系统的一个或多个特性;以及所述显示器的子像素几何布局;
基于所述目标图像和所访问的所述掩模来生成输出图像,其中,所述输出图像具有每颜色的第二位数,所述每颜色的第二位数小于所述每颜色的第一位数;以及
在所述显示器上显示所述输出图像,以展示所述目标图像。
15.根据权利要求14所述的介质,其中,所述显示器具有小于所述目标图像的所述每颜色的第一位数的所述每颜色的第二位数。
16.根据权利要求14所述的介质,其中,所述颜色通道的掩模包括多个点图案,每个点图案与所述颜色通道的灰度级相对应,所述多个点图案满足空间堆叠特性。
17.根据权利要求16所述的介质,其中,所述多个点图案中的每个点图案包括所述颜色通道的更低灰度级的所有点图案。
18.一种系统,所述系统包括:
一个或多个非暂态计算机可读存储介质,所述一个或多个非暂态计算机可读存储介质包含指令;以及
一个或多个处理器,所述一个或多个处理器耦接到所述存储介质并且能够操作地执行所述指令以:
接收要在显示器上显示的目标图像,所述目标图像具有每颜色的第一位数;
访问RGB颜色通道的每个颜色通道的掩模,其中,所访问的所述掩模是基于以下项来生成的:人类视觉系统的一个或多个特性;以及所述显示器的子像素几何布局;
基于所述目标图像和所访问的所述掩模来生成输出图像,其中,所述输出图像具有每颜色的第二位数,所述每颜色的第二位数小于所述每颜色的第一位数;以及
在所述显示器上显示所述输出图像,以展示所述目标图像。
19.根据权利要求18所述的系统,其中,所述显示器具有小于所述目标图像的所述每颜色的第一位数的所述每颜色的第二位数。
20.根据权利要求18所述的系统,其中,所述颜色通道的掩模包括多个点图案,每个点图案与所述颜色通道的灰度级相对应,所述多个点图案满足空间堆叠特性。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/879,510 US20240048681A1 (en) | 2022-08-02 | 2022-08-02 | Constrained color dithering |
US17/879,510 | 2022-08-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117522752A true CN117522752A (zh) | 2024-02-06 |
Family
ID=87517167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310970732.2A Pending CN117522752A (zh) | 2022-08-02 | 2023-08-02 | 受约束的颜色抖动 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240048681A1 (zh) |
EP (1) | EP4318448A1 (zh) |
CN (1) | CN117522752A (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5734369A (en) * | 1995-04-14 | 1998-03-31 | Nvidia Corporation | Method and apparatus for dithering images in a digital display system |
EP1538825B1 (en) * | 2003-12-03 | 2008-04-30 | Seiko Epson Corporation | Color reduction processing apparatus, printer control device, color reduction method, and printer control method |
US7590299B2 (en) * | 2004-06-10 | 2009-09-15 | Samsung Electronics Co., Ltd. | Increasing gamma accuracy in quantized systems |
US9607576B2 (en) * | 2014-10-22 | 2017-03-28 | Snaptrack, Inc. | Hybrid scalar-vector dithering display methods and apparatus |
US10234691B2 (en) * | 2015-10-02 | 2019-03-19 | Pure Depth Limited | Method and system for performing color filter offsets in order to reduce moiré interference in a display system including multiple displays |
-
2022
- 2022-08-02 US US17/879,510 patent/US20240048681A1/en not_active Abandoned
-
2023
- 2023-07-27 EP EP23188097.2A patent/EP4318448A1/en not_active Withdrawn
- 2023-08-02 CN CN202310970732.2A patent/CN117522752A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240048681A1 (en) | 2024-02-08 |
EP4318448A1 (en) | 2024-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11120770B2 (en) | Systems and methods for hiding dead pixels | |
US11942009B2 (en) | Display non-uniformity correction | |
US11551636B1 (en) | Constrained rendering | |
US11694302B2 (en) | Dynamic uniformity correction | |
CN114127834A (zh) | 用于时空抖动的系统和方法 | |
US11562679B2 (en) | Systems and methods for mask-based temporal dithering | |
CN114174979B (zh) | 用于隐藏死像素的系统和方法 | |
US20210398255A1 (en) | Mask-based spatio-temporal dithering | |
US11300793B1 (en) | Systems and methods for color dithering | |
CN117178251A (zh) | 波导校正图压缩 | |
CN117522752A (zh) | 受约束的颜色抖动 | |
US20240233614A1 (en) | Waveguide correction | |
US11430398B2 (en) | Systems and methods for mask-based spatio-temporal dithering | |
US20240202892A1 (en) | Combined tone and gamut mapping for augmented reality display | |
JP2023528111A (ja) | ディスプレイ上の画像のレンダリング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |