CN110582797A - 用于多级绘制后图像变换的方法和系统 - Google Patents
用于多级绘制后图像变换的方法和系统 Download PDFInfo
- Publication number
- CN110582797A CN110582797A CN201880029610.0A CN201880029610A CN110582797A CN 110582797 A CN110582797 A CN 110582797A CN 201880029610 A CN201880029610 A CN 201880029610A CN 110582797 A CN110582797 A CN 110582797A
- Authority
- CN
- China
- Prior art keywords
- image
- data
- transform
- transformation
- location
- 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.)
- Withdrawn
Links
- 230000009466 transformation Effects 0.000 title claims abstract description 227
- 238000009877 rendering Methods 0.000 title claims abstract description 93
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000005070 sampling Methods 0.000 claims abstract description 95
- 230000015654 memory Effects 0.000 claims abstract description 84
- 238000000844 transformation Methods 0.000 claims description 39
- 238000013507 mapping Methods 0.000 claims description 8
- 238000007781 pre-processing Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 15
- 230000003287 optical effect Effects 0.000 description 12
- 210000001508 eye Anatomy 0.000 description 11
- 230000033001 locomotion Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 230000002829 reductive effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 4
- 230000006837 decompression Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 210000005252 bulbus oculi Anatomy 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 210000001747 pupil Anatomy 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 241000226585 Antennaria plantaginifolia Species 0.000 description 1
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010008 shearing Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/18—Image warping, e.g. rearranging pixels individually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/20—Linear translation of whole images or parts thereof, e.g. panning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/32—Determination of transform parameters for the alignment of images, i.e. image registration using correlation-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Image Processing (AREA)
Abstract
提供了用于多级绘制后图像变换的系统和方法。系统可以包括变换生成模块,其被布置为动态地生成图像变换。系统可以包括变换数据生成模块,其被布置为:通过针对第一采样位置和第二采样位置应用所生成的图像变换并且将变换数据存储在存储器中,生成第一变换数据和第二变换数据。系统可以包括第一图像变换级,其选择针对目的地图像位置的第一变换数据和第二变换数据,并且基于所选择的第一变换数据和第二变换数据来计算估计源图像位置。系统可以包括第二图像变换级,其选择针对目的地图像位置的第一变换数据和第二变换数据,从存储器中取回第一变换数据和第二变换数据,并且基于所选择的第一变换数据和第二变换数据来重新计算估计源图像位置。
Description
背景技术
即使通过采用专用硬件将三维(3-D)场景、模型和/或对象绘制为二维(2-D)图像的图形处理单元(GPU),绘制这样的图像通常也需要大量的计算和时间。因此,可以基于在绘制图像之前所计算的参数来绘制图像,这些参数最终与图像被显示时的实际条件不一致。例如,用于绘制图像的、针对未来时间的用户取向的“最佳猜测”估计可能与该未来时间的用户的实际取向不匹配,从而导致经绘制的图像和经绘制的图像被显示时的条件之间的不匹配。
减少这样的不匹配的一个方法是执行经绘制的图像的绘制后变换,相对于经绘制的图像的绘制,该绘制后变换以显著减少的时间量被执行。例如,可以基于早期的参数估计来绘制初始图像,并且可以基于在图像被显示之前不久执行的、新的更准确的参数估计来执行初始图像的绘制后变换。然而,由于更复杂的图像变换需要更多的时间来完成,因此常规方法面临着延时和图像变换的复杂性之间的折衷。另外,由于预先可能不知道执行图像后变换的时间量,因此可能在较早的时间发起图像后变换来允许通常不会发生的“最坏情况”场景,从而导致失去进一步减少延时的机会。通常,已通过使用诸如仿射或投影变换的简单图像变换来解决这样的问题,以实现低延时绘制后变换。
发明内容
用于多级绘制后图像变换的系统和方法。系统可以包括变换生成模块,其被布置为动态地生成源空间中的位置与目的地空间中的对应位置之间的图像变换。系统还可以包括第一存储器,其被布置为接收和存储变换数据。系统还可以包括变换数据生成模块,其被布置为:从变换生成模块接收图像变换,通过针对第一采样位置应用由变换生成模块生成的图像变换来生成针对第一采样位置的第一变换数据,通过针对第二采样位置应用由变换生成模块生成的图像变换来生成针对第二采样位置的第二变换数据,以及将第一变换数据和第二变换数据存储在第一存储器中。系统可以包括第一图像变换级(stage),其被布置为:选择针对第一目的地图像位置的、第一变换数据和第二变换数据,基于由第一图像变换级选择的第一变换数据和第二变换数据来计算针对第一目的地图像位置的第一估计源图像位置,以及通过使用所计算的第一估计源图像位置来执行第一操作来生成第一数据。系统还可以包括第二图像变换级,其被布置为:选择针对第一目的地图像位置的、第一变换数据和第二变换数据,从存储器中取回所选择的第一变换数据和第二变换数据,基于由第二图像变换级取回的第一变换数据和第二变换数据来重新计算针对第一目的地图像位置的第一估计源图像位置,以及使用经重新计算的第一估计源图像位置和由第一绘制级生成的第一数据来生成针对第一目的地图像位置的第一图像数据。系统还可以包括绘制后变换模块,其被布置为:接收第一图像数据,并且基于第一图像数据来生成第一变换图像。
提供本发明内容是以简化形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中指出的任何或所有缺点的实施方式。
附图说明
通过仅是示例而非限制的方式,附图描绘了根据本教导的一个或多个实施方式。在附图中,相同的附图标记是指相同或相似的元件。
图1是图示了被配置为执行多级图像变换的示例系统中包括的特征的示意图。
图2A和图2B图示了用于第一图像变换级的、针对目的地图像位置的估计源图像位置的计算的示例,该计算在与用于第二图像变换级的、针对目的地图像位置的估计源图像位置的重新计算的时间远离的时间处发生。
图3图示了从目的地空间中的采样位置到源空间中的对应的经完全变换的位置的逆变换或逆映射的示例。
图4图示了从源空间中的采样位置到目的地空间中的对应的经完全变换的位置的正向变换或正向映射的示例。
图5A图示了以下实例:其中目的地空间的一部分已被划分为多个四边形,以使用所存储的变换数据来计算针对目的地空间中的位置的估计源图像位置。图5B图示了以下示例:其中目的地空间的一部分被划分为多个三角形,以使用所存储的变换数据来计算针对目的地空间中的位置的估计源图像位置。
图6A和图6B图示了使用所存储的变换数据来计算估计源图像位置以生成变换输出图像的示例。
图7图示了采样位置选择模块的实施方式的示例,该采样位置选择模块被布置为:基于用于绘制要被变换的源图像数据的3-D模型的特征来选择源空间中的采样位置。
图8图示了其中如本文所描述生成的变换数据用于并发地变换所显示的源图像数据的示例。
图9是图示了示例系统中包括的特征的示意图,该示例系统被布置为:减少用于初始的经绘制的图像的实时后级重投影(LSR)以经由显示设备显示的处理。
图10图示了包括图9中所图示的元件的、示例头戴式显示器(HMD)的一部分。
图11图示了以下示例:如可以由图9中的系统或图10中的HMD执行的,使用LSR以从基于初始预测姿势绘制的初始源图像数据来生成针对经更新的预测姿势的变换图像。
图12A、图12B和图12C图示了与本文描述的技术相比的各种LSR实施方式的时序和操作。
具体实施方式
在下面的详细描述中,通过示例的方式阐述了许多具体细节,以提供对相关教导的透彻理解。然而,显而易见的是,可以在没有这些细节的情况下实践本教导。在其他情况下,为了避免不必要地模糊本教导的各个方面,在相对高级别处未详细地描述公知的方法、过程、组件和/或电路。
图1是图示了被配置为执行多级图像变换的示例系统100中包括的特征的示意图。注意,贯穿本公开,名词“变换(transform)”可以用作“变换(transformation)”的简写。系统100包括源图像绘制模块110,其被布置为绘制或以其他方式生成源图像数据122。源绘制图像模块110可以被称为“核绘制器”、“核绘制管线”或“核绘制模块”。源图像绘制模块110包括GPU或被布置为将来自指定视点或姿势的3-D模型数据(其可以描述例如场景或对象)绘制为二维栅格源图像数据122的其他绘制系统。源图像数据122的示例包括但不限于:像素颜色数据(例如,红色、蓝色和/或绿色信道和/或子像素的强度值)、alpha信道数据、Z缓冲区或深度缓冲区和/或纹理数据。源图像数据122也可以被称为“经绘制的图像数据”或“经完全绘制的图像数据”。源图像绘制模块110被布置为将所生成的源图像数据122存储在源图像绘制存储器120中,这在下文中更详细地讨论。可以使用压缩编码格式将源图像数据122存储在源图像绘制存储器120中,压缩编码格式可以是无损压缩格式或有损压缩格式。
在一些实施方式中或一些情况下,源图像绘制模块110可以生成多个源图像数据项,以用于生成单个变换图像。例如,在绘制对象或场景时,源图像绘制模块110可以生成提供像素颜色数据的第一源图像数据和提供深度信息的第二源图像数据两者。虽然两个这样的源图像数据项跨越相同的视觉区域,但它们可以具有不同的像素维度。作为另一示例,源图像绘制模块110可以将第一3-D模型数据(例如,针对第一对象)绘制为第一源图像数据,并且将第二3-D模型数据(例如,针对第二对象)绘制为第二源图像数据。在一些实施方式中或一些情况下,源图像数据122的视场可以大于由绘制后变换模块170生成的变换图像的目标视场。
通过利用源图像绘制模块110执行复杂的3-D绘制并且使用绘制后变换模块170进行之后的变换,源图像绘制模块110的资源可以集中于3-D绘制活动。这可以提高经绘制的图像的帧速率和/或质量。
源图像绘制存储器120被布置为接收和存储由源图像绘制模块110生成的源图像数据122,并且将所存储的源图像数据122的被请求部分提供给源图像数据取回模块180。在一些实施方式中,源图像绘制存储器120还被布置为存储3-D模型数据124,并且将所存储的3-D模型数据124的被请求部分提供给源图像绘制模块110和/或变换预处理模块130。在一些实施方式中,源图像绘制存储器120被包括在存储器设备(图1中未示出)中或以其他方式由存储器设备提供,该存储器设备由系统100中包括的其他模块或元件使用且由之共享。在一些实施方式中,源图像绘制存储器120可以被包括在源图像绘制模块110中。例如,被包括在用于GPU的专用存储器中。源图像绘制存储器120可以使用一个或多个DRAM设备(诸如但不限于DDR2、DDR3、DDR4、DDR5、GDDR5或GDDR5X SDRAM)来实现,或者可以使用非DRAM易失性或非易失性存储器设备(诸如但不限于3D XPointTM、磁阻式RAM(MRAM)或电阻式RAM(RRAM))来实现。在一些实施方式中,虽然以更高的延时为代价,特别是在源图像绘制存储器120被包括在受到系统100的各个元件之间的竞争的共享存储器设备中的实施方式中,但是源图像绘制存储器120供给的存储量比片上高速缓存、缓冲器或其他SRAM实现的存储器通常所供给的存储量大得多。在片上系统(SoC)实施方式中,源图像绘制存储器120的一部分可以被包括在SoC中,诸如,用于存储源图像数据122的一部分。
变换预处理模块130被布置为生成变换数据152,以供绘制后变换模块170使用,以根据动态生成的变换来对源图像数据122进行变换。变换预处理模块130包括变换生成模块135,变换生成模块135被布置为基于动态信息来动态地生成图像变换,该动态信息随着时间变化并且在开始绘制源图像数据122之后可用,例如,反映最终用户或最终用户的环境的变化的传感器导出数据。在被布置为针对连续的图像帧(例如,每秒24帧或更多帧的视频帧速率)生成变换图像的系统100的实施方式中,变换生成模块135可以被布置为:针对每个连续图像帧,动态地生成新的图像变换。如稍后所示,在一些示例中,动态信息可以反映最终用户的最新移动。所生成的变换也可以被称为“映射”,并且所生成的变换的应用可以被称为“映射”。在一些实施方式中或一些情况下,所生成的变换是“正向”变换,“正向”变换将源空间(例如,适用于源图像数据122的坐标系)中的预变换位置变换或映射到目的地空间(例如,适用于由绘制后变换模块170生成的变换图像的坐标系)中的对应的变换后位置。在一些实施方式中或一些情况中,所生成的变换是“逆”变换或“反向”变换,其将目的地空间中的预变换位置变换或映射到源空间中的对应的变换后位置。所生成的图像变换被提供给变换数据生成模块145并由其应用,变换数据生成模块145将在下面进行描述。术语“位置”包括例如绝对坐标、相对坐标、位移矢量和/或归一化坐标或矢量,并且位置可以被编码为整数、定点或浮点值。
图像变换的动态生成可以包括:基于动态信息选择要应用的一个或多个图像变换,和/或基于动态信息生成针对一个或多个图像变换的一个或多个参数。动态生成的图像变换可以包括图像变换的序列、级联或其他组合,该图像变换包括一个或多个动态生成的变换,并且还可以包括一个或多个预定变换(例如,用于固定焦距镜头的固定光学校正)或预先计算的变换(例如,基于在一段时间内保持不变的、特定于用户、特定于环境或特定于应用的参数来生成的变换)。变换的组合中所使用个体变换可以被称为“分量变换”或“组分变换”。通过组合多个变换,可以定义更复杂的变换,其更准确地实现针对一个目标(例如,复杂不对称光学失真)的变换。通过组合多个变换,可以使用相应变换来实现多个目标(例如,光学失真的校正和用以考虑最终用户的估计姿势的更新的源图像数据122的变换)。附加地,常规由GPU执行的变换可以替代地并入到由变换生成模块135动态生成的变换的组合中,从而使得GPU免于执行用于变换的计算。在一些实施方式中,可以生成多个变换来校正色差,例如,将第一动态生成的变换与红色信道变换组合的第一变换,将第一动态生成的变换与绿色信道变换组合的第二变换,以及将第一动态生成的变换与蓝色信道变换组合的第三变换。
个体变换的一些示例包括二维几何图像变换、非线性图像变换,二维几何图像变换诸如但不限于:仿射变换(线性共形(缩放、平移、旋转)和剪切)、投影变换(投影、单应和直射变换)以及分段线性变换(例如,分开地应用于图像的三角区域的仿射变换);非线性图像变换诸如但不限于:多项式变换、不均匀缩放、圆形或径向失真(桶形、枕形、胡须形和多阶)和切向失真(例如,使用Brown模型)。在一些实施方式中,可以基于与采样位置相对应的3D位置来执行变换,例如,可以基于3-D模型124或基于源图像数据122中包括的深度信息来确定3-D位置。与2-D图像变换相比,这样的3-D变换可以产生针对预测的姿势变化的更准确的变换。可以使用各种技术来实现变换或变换的各部分,各种技术诸如但不限于:矩阵运算、数值逼近(诸如,泰勒级数或牛顿-拉夫森)以及映射/插值。通过将位置从一个坐标系转换或变换到另一坐标系(例如,在栅格、笛卡尔坐标和/或极坐标之间),可以更容易地计算一些变换。许多变换可以更简单或更高效地被实现为正向变换。许多正向变换缺少闭合形式的逆,这需要通过诸如牛顿-拉夫森迭代的数值解来计算对应的逆变换。
变换预处理模块130包括采样位置选择模块140,其被适配为选择多个稀疏分布的采样位置,由变换生成模块135生成的变换将被应用于这些稀疏分布的采样位置来生成对应的经变换的位置(其中,“稀疏”通常是指每个采样位置有多于一个像素(在用于采样位置的源空间或目的地空间中))。在一些实施方式中,预定模式或算法被用于选择采样位置,例如,从而产生均匀分布的采样位置。在一些实施方式中,每个采样位置大约有9个或更多个像素(例如,每个3×3像素块大约一个采样位置)。在一些实施方式中,每个采样位置大约有16个或更多个像素(例如,每个4×4像素块大约一个采样位置)。在一些实施方式中,每个采样位置大约有64个或更多个像素(例如,每个8×8像素块大约一个采样位置)。在一些实施方式中,每个采样位置大约有256个或更多个像素(例如,每个16×16像素块大约一个采样位置)。还可以使用非正方形的矩形块。对于这样的像素块,可以从每个块的预定角(例如,左上角)选择采样位置,其中为边沿块选择附加的角来获得沿着整个边沿的采样位置。在一些实施方式中,采样位置选择模块140可以被布置为选择不均匀分布的采样位置;稍后描述若干这样的实施方式。在由变换生成模块135生成正向变换的情况下,采样位置在源空间中。在由变换生成模块135生成逆变换的情况下,采样位置在目的地空间中。
变换数据生成模块145被布置为:通过对由采样位置选择模块140选择的稀疏分布的采样位置中的每个采样位置应用由变换生成模块135生成的变换,生成针对采样位置的变换数据152。在所应用的变换是正向图像变换的情况下,变换被应用于源空间中的预变换采样位置,以生成目的地空间中的对应的变换后位置。在所应用的变换是逆图像变换的情况下,变换被应用于目的地空间中的预变换目的地位置,以在源空间中生成对应的变换后位置。为了本公开的目的,这样的将由变换生成模块135生成的变换应用于采样位置可以被称为执行采样位置的“精确”或“完全”变换、被称为执行其经变换的位置的“精确”或“完全”计算,或被称为将变换“精确地”或“完全地”应用于采样位置。应当理解,这样的对术语“精确”的使用不旨在表示已计算出精确值;例如,包括诸如牛顿-拉夫森的迭代方法的数值逼近可以用于执行变换或变换的一部分。在一些实施方式中,采样位置选择模块140可以响应于连续的经完全变换的位置之间的距离大于或等于阈值、和/或经完全变换的位置的密度小于或等于阈值,来添加附加的采样位置。
变换数据152基于得到的经完全计算的经变换的位置而被生成,并且以对从所供应的目的地图像位置计算估计的源图像位置有效的形式被编码,诸如,经由基于经变换的位置的插值被编码,以在无需实际完全应用变换的情况下来估计、模拟或逼近完全应用变换。为了本公开的目的,基于目的地图像位置和变换数据152计算的源图像位置可以被称为“所估计的”、“所模拟的”或“所逼近的”源图像位置。稍后结合图3至图7来描述选择采样位置、生成对应的变换数据以及存储变换数据的示例。在一些实施方式中,可以生成中间变换数据,并且中间变换数据用于生成针对两个不同采样位置的变换数据。
通过将变换生成模块135所生成的变换的完全应用限制为仅应用稀疏分布的采样位置,充分减少了被完全变换(计算上昂贵的操作)的位置的数目。例如,在为每个8×8像素块选择大约一个采样位置的情况下,大约仅发生所有像素的完全变换的成本的1/64。在一些实施方式中,这可以提供附加的设计自由度来应用更复杂的变换。
系统100包括存储器150,存储器150被布置为存储从变换数据生成模块145接收的变换数据152,并且还被布置为将所存储的变换数据152提供给源图像位置估计模块160。在一些实施方式中,存储器150包括静态RAM(SRAM)、触发电路或用于存储和取回变换数据152的其他这样的存储器元件(包括例如高速缓存存储器)。在这样的实施方式中,存储器150可以被称为“本地存储器”或“低延时存储器”,并且与将变换数据152存储在诸如源图像绘制存储器120的较高延时存储器中相比,有效地显著加速了基于变换数据152的估计源图像位置的生成。
附加地,在使用本地存储器来存储变换数据152的情况下,仅使用稀疏分布的采样位置特别有用。这样的存储器通常供不应求或具有有限的未使用空间。通过充分减少采样位置的数目并且因此减小得到的变换数据152的大小,低延时存储器150的使用变得更容易并入系统100的实施方式中。而且,避免对与系统100的其他元件共享的共享DRAM存储器设备的频繁访问提高了系统100的DRAM通量。
源图像位置估计模块160被布置为:接收目的地图像位置(例如,用于生成变换图像的目的地空间中的栅格像素的中心位置);选择针对目的地图像位置的变换数据152的多个部分(例如,基于目的地图像位置和与所选择的部分变换数据152相关联的位置的接近度);以及基于变换数据152的所选择的部分来计算或重新计算对应的估计源图像位置。例如,可以通过涉及变换数据152的所选择的部分的插值来执行估计。可以采用各种插值技术,包括但不限于:线性插值、双线性插值、三次插值、双三次插值、最近邻插值、自然插值和/或样条插值。稍后结合图3至图6来描述计算这样的估计的示例。为了本公开的目的,术语“重新计算(recalculate)”和“重新计算(recalculating)”是指:在针对目的地图像位置的先前计算之后,执行针对相同目的地图像位置的计算(例如,不同模块在不同时间对相同的目的地图像位置进行操作)。在一些实施方式中,源图像位置估计模块160可以被包括在绘制后变换模块170中。在一些实施方式中,使用用于计算估计源图像位置的表驱动的方法。在一些实施方式中,系统100可以包括多个源图像估计模块,使得被包括在绘制后变换模块170中的、使用估计源图像位置的每个级包括其自己的源图像位置估计模块。在一些实施方式中,源图像位置估计模块160被布置为使用变换数据152来计算针对单个目的地图像位置的多个估计源图像位置,其中估计源图像位置中的一些或全部根据对于抗混叠有用的超采样模式或内核来对应于子像素位置。对于彼此极为接近的多个估计源图像位置的这样的计算,可以利用各种优化、捷径和/或逼近。在一些实施方式中,源图像位置估计模块160被布置为:对最新计算的估计源图像位置和/或用于计算估计源图像位置的中间值进行高速缓存,并且使用这样的经高速缓存的信息来加速计算其他的估计源图像位置。
系统100包括多级绘制后变换模块170,多级绘制后变换模块170包括各自利用估计源图像位置的多个图像变换级175a-175n,包括第一图像变换级175a和第二图像变换级175n。虽然它们被称为“图像变换级”,但是该术语不旨在暗示多个图像变换级175a-175n中的每一个都对图像执行变换操作。可以被包括在绘制后变换模块170中的源图像数据取回模块180被布置为:响应于从绘制后变换模块170接收到的对源图像数据122的部分的请求,从源图像绘制存储器120取回这样的部分。在一些实施方式中,源图像数据取回模块180包括缓冲器185(例如,SRAM存储器),以存储从源图像绘制存储器120接收的源图像数据122的部分。
在一些实施方式中,第一图像变换级175a可以实现预获取级,预获取级被布置为发起对与一个或多个目的地图像位置相对应的源图像数据122的一部分的预获取。通过发起源图像数据122的该部分的预获取,可以“隐藏”高延时(这对于共享DRAM存储器设备可能更糟糕),使得在不延迟或减少延迟后续图像变换级的情况下,已从源图像绘制存储器150接收源图像数据122的该部分。在绘制后变换模块170被布置为执行基于图块的处理(像素的矩形单元)、基于四边形的处理(2×2像素的单元)或对成组像素的其他处理的实施方式中,对于第一图像变换级175a,计算组中的所有像素的估计源图像位置(其可以包括用于抗混叠的经超采样的源图像位置),并且源图像数据122的一个或多个对应部分要被预获取。通过执行包括请求源图像数据122的一部分以及后续的接收所请求的源图像数据122的操作,第一图像变换级175a生成由后续的图像变换级使用的数据。
多个图像变换级175a-175n可以包括辅助信息预获取级。以类似于针对第一图像变换级175a所描述的方式,辅助信息预获取级被布置为:发起对来自源图像绘制存储器的、诸如深度或混合信息的辅助源图像数据的预获取,以隐藏与正被实现的预获取相关联的延时。对于辅助信息预获取级,使用变换数据152计算或重新计算与目的地图像位置相对应的估计源图像位置,并且将估计源图像位置用于标识源图像数据122的要被预获取的对应部分。多个图像变换级175a-175n还可以包括辅助信息处理级,其被布置为接收预获取的辅助信息并对所接收的辅助信息进行处理。对于辅助信息处理级,使用变换数据152计算或重新计算与目的地图像位置相对应的估计源图像位置,以用于标识用于处理的适当的取回数据。
多个图像变换级175a-175n可以包括解压缩级,其接收已经以压缩格式存储的源图像数据122。在一些实施方式中,解压缩级被布置为:基于使用变换数据152重新计算的、经重新计算的估计源图像位置,确定经压缩的源图像数据中应当被解压缩的一部分,以获得经解压缩的源图像数据中对应于目的地图像位置的一部分。在一些实施方式中,解压缩级被布置为:将经压缩的源图像数据的整个区块进行解压缩,并且使用变换数据152、基于经重新计算的估计源图像位置,确定源图像数据的经解压缩的区块内的位置,以获得经解压缩的源图像数据中与目的地图像位置相对应的一部分。因此,解压缩级生成由后续图像变换级使用的数据。
第二图像变换级175n被布置为:基于由图像变换级175a-175n中的另一图像变换级生成的数据以及使用变换数据152重新计算的、与目的地图像位置相对应的、经重新计算的估计源图像位置,来生成用于目的地图像位置(例如,与显示设备的像素相对应的位置)的图像数据。在一些实施方式中,第二图像变换级175n包括抗混叠级。对于栅格图像数据的变换,诸如,源图像数据122的变换,混叠伪影可能是严重且明显的。附加地,通过简单地取回与估计源图像位置最近邻的源图像数据,而不是对相邻像素的像素颜色数据进行插值或混合,可以简化针对具有分数分量的估计源图像位置的源图像数据122的取回和处置。对于抗混叠级,使用变换数据152来计算或重新计算针对单个目的地图像位置的多个估计源图像位置,其中根据对于抗混叠有用的超采样模式或内核,估计源图像位置中的一些或全部对应于子像素位置。可以基于多个估计源图像位置来选择来自图像变换级175a-175n中的另一图像变换级所生成的数据的对应值,以生成针对目的地图像位置的图像数据。在一些实施方式中或一些情况下,该图像数据可以指定针对变换图像中的对应栅格位置的像素颜色数据。
在其中子像素位置被完全变换的常规绘制后变换的抗混叠(特别是对于通常不具有闭合形式的实施方式的逆变换)中,除了对于诸如仿射或投影变换的较简单的变换之外,完全变换的显著增加(例如,4倍或更大的超采样是常见的)可能使得抗混叠不切实际。然而,通过使用系统100中的源图像位置估计模块160来使用变换数据152计算针对子像素位置的估计源图像位置,充分减少了计算大量的估计源图像位置的工作量和/或时间,即使是对于计算上更复杂的变换和多个变换的组合。
使用源图像位置估计模块160对变换数据152的简单计算,允许每次针对相同的目的地图像位置来计算和重新计算相同的估计源图像位置。相反,利用被用来对位置进行完全变换的某些逼近技术,可以针对一个级与另一级来计算不同的位置值。因此,系统100确保从一个级到另一级将使用相同的源图像数据。
在一些实施方式中,存储器150、源图像位置估计模块160、绘制后变换模块170和源图像数据取回模块180被实现在单个片上系统(SoC)(图1中未示出)内。在这样的实施方式中,变换预处理模块130也可以在单个SoC内实现,并且还可以在单个SoC内包括源图像绘制模块110和/或源图像绘制存储器120。在一些实施方式中,
图1中所图示的元件可以被包括在单个电子设备或移动电子设备中。在一些实施方式中,图1中所图示的元件可以被包括在单个头戴式移动设备中。
图2A和图2B图示了以下示例:用于第一图像变换级275a的、针对目的地图像位置210d的估计源图像位置230d的计算,该计算在与用于第二图像变换级275n的、针对目的地图像位置210d的估计源图像位置230d的重新计算的时间远离的时间处发生。图2A和图2B与示例系统200的一部分有关,该示例系统200被配置为以类似于针对系统100所描述的方式执行多级图像变换。系统200包括存储器250,存储器250存储变换数据252,这类似于结合图1中的存储器150和变换数据152所描述的。系统200还包括第一图像变换级275a和第二图像变换级275n,它们的布置和功能类似于结合图1中的第一图像变换级175a和第二图像变换级175n所描述的。在图2所图示的示例中,第一图像变换级275a和第二图像变换级275n中的每一个图像变换级具有源图像位置估计模块260a和260n中的相应的一个源图像位置估计模块,源图像位置估计模块260a和260n各自如结合图1中的源图像位置估计模块160所描述的那样进行操作。在一些示例中,源图像位置估计模块可以由第一图像变换级275a和第二图像变换级275n共享,这类似于图1中的系统100中那样。图1中所图示的其他特征,诸如源图像绘制存储器120、源图像数据取回模块180和变换预处理模块130,在系统200中具有对应体,但是未被包括在图2的图示中。
图2A图示了系统200的部分在第一时间或约第一时间处的操作。在第一时间或约第一时间处,第一图像变换级275a寻求获得针对目的地图像位置210d的估计源图像位置230d。目的地图像位置210d被提供给源图像位置估计模块260a,以计算用于第一图像变换级275a的估计源图像位置230d。图1图示了先前的目的地图像位置210a、210b和210c(以虚线示出),其对应的经估计的源位置在计算估计源图像位置230d的第一时间之前被计算,以用于第一图像变换级275a。在第一时间或约第一时间处,源图像位置估计模块260a选择两个(并且可能更多个)变换数据220d1和220d2,其被存储在存储器250中且从存储器250中取回。然后,基于所取回的变换数据220d1和220d2,源图像位置估计模块260a计算针对目的地图像位置210d的估计源图像位置230d。第一图像变换级275a通过使用所计算的估计源图像位置230d执行第一操作来生成第一数据。
在第一时间或约第一时间处,第二图像变换级275n寻求获得针对目的地图像位置210a的估计源图像位置230a(如以上讨论的,针对目的地图像位置210a,在第一时间之前已先前计算了对应的估计源图像位置230a)。目的地图像位置210a被提供给源图像位置估计模块260n,以重新计算用于第二图像变换级275n的估计源图像位置230a。为此,源图像位置估计模块260n选择两个(并且可能更多个)变换数据220a1和220a2,其被存储在存储器250中且从存储器250中取回。然后,基于所取回的变换数据220a1和220a2,源图像位置估计模块260n重新计算针对目的地图像位置210a的估计源图像位置230a。第二图像变换级275n使用经重新计算的估计源图像位置230a来生成针对目的地图像位置210a的第一图像数据。
图2B图示了系统200的部分在比第一时间晚并且在时间上远离第一时间的第二时间处或约第二时间处的操作。在第一时间或约第一时间处的图2A中所图示的操作和图2B中所图示的操作之间的时间间隔中,(按顺序)计算了针对目的地图像位置210e和210f(用虚线示出)的、用于第一图像变换级275a的经估计的源位置,并且(按顺序)重新计算了针对目的地图像位置210b和210c(用虚线示出)的、用于第二图像变换级275n的经估计的源位置。同样在该时间间隔中,针对目的地图像位置210e和210f中的每个目的地图像位置,源图像位置估计模块260a从存储器250中选择并取回两个或更多个变换数据,并且针对目的地图像位置210b和210c中的每个目的地图像位置,源图像位置估计模块260n从存储器250中选择并取回两个或更多个变换数据。例如,鉴于在该时间间隔期间针对其他目的地图像位置所执行的操作,图2B中的第二时间与图2A中的第一时间在时间上远离。这也可以被描述为:图2A中所图示的操作发生在第一时间片段(slice)中或期间,并且图2B中所图示的操作发生在第二时间片段中或期间。
图2B中所图示的第一图像变换级275a和第二图像变换级275n的操作类似于针对图2A所描述的,但是针对不同的目的地图像位置。在第二时间或约第二时间处,源图像位置估计模块260a计算用于第一图像变换级275a的估计源图像位置230g,在该过程中选择和取回变换数据220g1和220g2。在第二时间或约第二时间处,源图像位置估计模块260n重新计算用于第二图像变换级275n的估计源图像位置230d(其在图2A中的第一时间或约第一时间处被计算)、在该过程中选择并取回变换数据220d1和220d2(类似于图2A中通过源图像位置估计模块260a选择并取回变换数据220d1和220d2)。第二图像变换级275n使用经重新计算的估计源图像位置230d来生成针对目的地图像位置210d的第二图像数据。在第一图像变换级275a和第二图像变换级275n共享源图像位置估计模块的示例中,类似于图1所图示的示例,源图像位置估计模块将在与相同源图像位置估计模块将重新计算用于第一图像变换级275a的估计源图像位置230d的、在时间上远离的之后的时间处,计算用于第一图像变换级275a的估计源图像位置230d(并且还再次选择并取回针对目的地图像位置210d的变换数据220d1和220d2)。
注意,图2A中针对第一图像变换级275a和第二图像变换级275n所图示的操作彼此不一定是同时或并发的,但是的确在大约相同的时间发生。例如,图2A中所图示的用于第二图像变换级275n的操作可以在用于第一图像变换级275a的、与目的地图像位置210c相对应的估计源图像位置被计算之后被发起,并且在目的地图像位置210d被提供给源图像位置估计模块260a以计算用于第一图像变换级275a的估计源图像位置230d之前被完成。类似的考虑适用于图2B。
图3图示了从目的地空间中的采样位置到源空间中的对应的经完全变换的位置的逆变换或逆映射的示例。图3图示了目的地空间330的16×16像素部分。被定位在目的地空间330的所图示部分内部的36个黑色圆圈示出了由采样位置选择模块140选择的多个稀疏分布的采样位置,包括与栅格像素350相对应的采样位置。注意,图3中示出了少量像素和少量采样位置,以更清楚地图示和讨论主题。在图3中,采样位置是均匀分布的,其中相邻的采样位置列由两个空列隔开,并且相邻行由两个空行隔开。在目的地空间330的大部分中,每个3×3像素块的一个角(例如,左上角)中存在一个采样位置,其中附加的11个采样位置(例如,沿着目的地空间330的右侧和底侧)提供沿着目的地空间330的整个边沿的采样位置。在图3所图示的示例中,每个采样位置被定位在像素的中心(其可以对应于积分位置值),但是采样位置并不必须居中于像素中。
与以上结合图1所描述的类似,对于图3所图示的示例,变换数据生成模块145将由变换生成模块145生成的、动态生成的逆变换应用于每个采样位置,以生成相应的经完全变换的源图像位置,包括例如与采样位置340相对应的经完全变换的源图像位置320。所得到的经变换的位置被示为被定位于源空间310的16×16像素部分中的36个黑色圆圈。虽然对于源空间310和目的地空间330图示了相同数目的像素,但可以存在不同数目的像素。如图3所图示的,虽然采样位置被定位在相应像素的中心处,但是所得到的经变换的位置可以位于像素中心之间的中间位置处。这样的经变换的位置的值可以包括分数分量。
变换生成模块145基于所得到的经变换的位置来生成变换数据152。存在用于对变换数据152进行编码以存储在存储器150中的许多方法。目标是提供适合于源图像位置估计模块160来计算与目的地图像位置相对应的估计源图像位置的变换数据152。在一些实施方式中,浮点算术可以用于将变换应用于采样位置、并且对所得到的经完全变换的源图像位置执行进一步处理,以生成变换数据152,但是被存储在存储器150中的值可以被编码为整数和/固定点值,以减小变换数据152的大小、并且提供适合于源图像位置估计模块160后续使用的格式的值。在一些实施方式中,可以针对每个经变换的位置编码绝对坐标。在一些实施方式中,位移矢量或相对位置指示采样位置的坐标值与其对应的经完全变换的位置的坐标位置之间的差。这样的位移对于采样位置中的一些或全部可能很小,并且因此与绝对坐标值相比被编码得更紧凑。
在一些实施方式中,预处理值而不是上述绝对位置或相对位置可以被包括在变换数据152中,该预处理值基于经变换的位置生成、有助于由源图像位置估计模块160进行更高效的计算或估计源图像位置。例如,可以将值预缩放或生成系数,以避免在由源图像位置估计模块160执行的计算中执行一个或多个算术运算。在采样位置均匀分布的情况下,可以使用特定的优化或预处理。
变换数据152并不必须限于用于计算针对目的地图像位置的估计源图像位置的值。例如,可以包括表征特定采样位置、经变换的位置或采样位置之间的区域的信息。例如,基于针对位置确定的距离和/或应用变换所引起的失真量,提示可以被提供,以允许源图像位置估计模块160和/或绘制后变换模块170适应性地选择插值、超采样和/或锐化技术和/或参数。在一些实施方式中,一个或多个查找表被生成以更快地执行插值。
在以矩形模式(但是并不必须以正方形网格或均匀网格)布置采样位置的实施方式中或情况下,源图像位置估计模块160可以通过在计算上简单的闭合形式的双线性插值、使用变换数据152来计算估计源图像位置,以将由围绕目的地图像位置的四个采样位置限定的矩形域内的目的地图像位置映射到由变换数据152中包括的、对应于这四个采样位置的值限定的二次域。对于直接在两个采样位置之间的行或列上的目的地图像位置,甚至可以使用更简单的线性插值。对于采样位置处的目的地图像位置,可能根本不需要插值。
图4图示了从源空间中的采样位置到目的地空间中的对应的经完全变换的位置的正向变换或正向映射的示例。如前所述,许多变换不具有闭合形式解的逆变换。因此,在一些实施方式中或情况下,使用正向变换可能更高效。在图4所图示的示例中,36个稀疏分布的采样位置在源空间410的所图示的16×16像素部分中具有与被示出在图3中的目的地空间330中的采样位置相同的位置。
与以上结合图1所描述的类似,对于图4所图示的示例,变换数据生成模块145将由变换生成模块145生成的、动态生成的正向变换应用于每个采样位置,以生成相应的经完全变换的目的地图像位置,包括例如与栅格像素位置430中的采样位置420相对应的经完全变换的目的地图像位置450。所得到的经变换的位置被示为被定位于目的地空间440的22×22像素部分中的36个黑色圆圈。与图3所图示的源图像位置在目的地空间330中的规则布置相反,正向变换得到目的地空间中的经完全变换的位置的不规则布置,这使得使用变换数据152来计算估计源图像位置更加困难。
图5A图示了以下示例:其中目的地空间510的一部分已被划分为多个四边形,以使用所存储的变换数据152来计算针对目的地空间510中的位置的估计源图像位置。在该示例中,目的地空间440中的经完全变换的位置被用作多个四边形的顶点或角。例如,经完全变换的位置450是四边形510的一个顶点或角。在一些实施方式中,源图像位置估计模块160被布置为:确定目的地图像位置位于哪个四边形中以选择变换数据152的部分(例如,变换数据152对应于四边形的顶点的部分),并且使用变换数据152的所选择的部分对估计源图像位置进行插值。但是,即使标识了适当的四边形,也不存在用于从图5A中的任意四边形到源空间410中的均匀分布的采样位置或其他任意四边形(可能在源空间中采样位置不均匀分布的情况下发生)进行插值的闭合形式的方法。可以使用牛顿-拉夫森迭代法,但其在计算上是昂贵的。
图5B图示了以下示例:其中目的地空间530的一部分被划分为多个三角形,以使用所存储的变换数据152来计算针对目的地空间510中的位置的估计源图像位置。在该示例中,目的地空间440中的经完全变换的位置被用作多个三角形的顶点或角。例如,经完全变换的位置450被包括作为三角形520和530的顶点或角。经完全变换的位置的三角剖分可以使用Delaunay三角剖分来执行,但是也可以使用其他技术。在一些实施方式中,源图像位置估计模块160被布置为:确定目的地图像位置位于哪个三角形中以选择变换数据152的部分(例如,变换数据152中对应于三角形的顶点的部分,或变换数据152中对应于三角形的部分),并且使用变换数据152的所选择的部分对估计源图像位置进行插值。重心插值可以用于计算估计源图像位置。用于重心插值的中间值(例如,某些矢量叉积值)可以被预先计算,并且被包括在变换数据152中。
图6A和图6B图示了以下示例:使用所存储的变换数据来计算估计源图像位置,以生成变换输出图像。在这些示例中,使用了目的地空间440中的经完全变换的位置的一部分和图5B中所图示的三角剖分,包括经完全变换的位置610ba、610bb、610bc、610bd、610ca、610cb、610cc和610cd以及由此限定的、包括三角形520和530的三角形。图6A图示了:通过标识与变换图像620中包括的栅格像素相对应的目的地图像位置,生成变换图像620的一部分。在图6A所图示的示例中,逐行生成用于变换图像620的栅格像素;例如,从处理第一像素行630a开始,并且然后处理在第一栅格像素行630a下方的第二栅格像素行630b。针对第一栅格像素行630左端上的第一栅格像素,目的地图像位置被标识;例如,被标识在栅格像素的中心位置处。
为了估计对应的源图像位置,源图像位置估计模块160确定当前目的地图像位置位于哪个三角形中。为了标识当前目的地图像位置所位于的三角形,源图像位置估计模块160可以确定:其中包括最新处理的目的地图像位置的三角形是否也包括当前目的地图像位置。如果不包括,则可以针对相邻的三角形执行类似的确定。另外,当使用所存储的变换数据152来计算针对像素行中的第一像素(例如,针对像素行630b的开始处的目的地图像位置640z)的估计源图像位置时,可以对当前目的地图像位置是否位于目的地图像位置640a所位于的三角形内进行类似的确定。然后,基于相对于当前目的地图像位置的三角形的顶点位置以及与三角形的顶点相对应的采样位置,执行重心插值。绘制后变换模块170使用所得到的估计源图像位置来生成用于生成变换图像620的图像数据。
图6B图示了针对特定栅格像素的示例处置。目的地图像位置640a被确定为在三角形520内。因此,源图像位置估计模块160基于被存储在存储器150中的、与三角形520的顶点610ba、610bb和610cb相关联的变换数据152来执行重心插值。同样,对于目的地图像位置640c,源图像位置估计模块160基于被存储在存储器150中的、针对由顶点610bb、610cb和610cc限定的相邻三角形的变换数据152来执行重心插值。另外,对于目的地图像位置640i,源图像位置估计模块160基于被存储在存储器150中的、针对由顶点610bc、610bd和610cc限定的相邻三角形的变换数据152来执行重心插值。
图7图示了采样位置选择模块140的实施方式的示例:采样位置选择模块140被布置为:基于用于绘制要被变换的源图像数据的3-D模型的特征,选择源空间中的采样位置。在一些实施方式中,源图像绘制模块110被配置为:在用于绘制源图像数据122的3-D模型124中标识感兴趣的顶点或边缘,并且还可以确定并标识源空间中与所标识的顶点或边缘相对应的位置。采样位置选择模块140可以被布置为:诸如经由源图像绘制存储器120,从源图像绘制模块110接收标识这样的源图像位置的信息。
图7图示了源空间710的一部分,其中已绘制了3-D模型数据124中包括的对象720。14个黑色圆圈示出了基于由3-D模型数据124指定的特征所选择的采样位置。例如,基于采样位置740a与源图像数据122中的、对应顶点被绘制于该处的位置相对应,选择该采样位置740a。此外,沿着由3-D模型数据124指定的边缘750来选择附加的采样位置740b。在一些实施方式中,采样位置选择模块140被布置为沿着一个或多个所选择的边缘来选择较大密度的采样位置,以确保沿着或围绕所选择的边缘的源图像数据122的更准确的变换。在一些实施方式中,采样位置选择模块140被布置为选择与所绘制的对象或模型的边界或轮廓相对应的采样位置。其余的23个白色圆圈示出了由位置选择模块140选择的采样位置,其包括采样位置730,这类似于图4中针对源空间410所描述的。
类似于结合图2和图4所描述的,变换数据生成模块145将正向变换应用于源空间710中的采样位置,从而生成目的地空间760中的对应的经完全变换的位置。附加地,类似于结合图5B所描述的,已经执行三角剖分。阴影三角形对应于变换图像中对象720将被显示于其中的部分。通过基于3-D模型数据124选择针对对象720的采样位置,可以减少显示对象720时的不期望的失真,同时继续仅使用稀疏分布的采样位置。
图8图示了以下示例:其中如本文所描述生成的变换数据用于并发地变换所显示的源图像数据。在该示例中,逆变换已被应用于目的地空间850中所示的采样位置,以在源图像空间中生成经完全变换的位置。三个经绘制的图像820、830和840已被绘制或要被绘制,并且针对三个经绘制的图像820、830和840中的每个经绘制的图像的对应源图像数据被存储在源图像数据存储器120中。经绘制的图像820不与目的地空间850中的经绘制的图像830和840中的任一个重叠(如变换图像825、835和845所图示)。图像830和840在目的地空间850中、在重叠区域860中重叠。对于重叠区域860中的像素,可以生成针对变换图像835的第一像素颜色值,可以生成针对变换图像845的第二像素颜色值,并且基于第一像素颜色值和第二像素颜色值(例如,通过合成操作)来确定最终像素颜色值。
图9是图示了示例系统900中包括的特征的示意图,示例系统900被布置为:减少用于初始的经绘制的图像的实时后级重投影(LSR)以经由显示设备965显示的处理。LSR对于沉浸式和/或交互式显示技术特别有用。例如,对于使用最终用户所佩戴的头戴式显示设备(HMD)的虚拟现实(VR)、增强现实(AR)或混合现实(MR)系统,大多数最终用户即使对用户移动(例如,头部移动)和HMD上显示的图像之间的少量的延时也是敏感的,并且一些用户对该少量的延时超级敏感。附加地,在对由相机捕获的环境图像执行直通显示的AR中、或使用光学透视显示器(包括但不限于最终用户佩戴的光学透视HMD)的MR系统中,光学透视显示器允许直接查看现实世界环境(例如,经由透明透镜或透明面板)并且将虚拟对象的图像投影到最终用户的视场中,从而利用虚拟对象来增强最终用户所感知的现实世界环境,LSR通过减少所显示的虚拟对象与现实世界环境之间的延时和相关联的错误配准来改善最终用户体验。除了使用HMD的系统外,还存在其他沉浸式显示技术和应用(例如,基于不位于最终用户的身体上的传感器、基于针对最终用户的预测姿势来生成并显示图像的视频游戏控制台),LSR针对这些沉浸式显示技术和应用提供改善的用户体验。LSR还提供了生成具有相对于移动设备和/或低功率应用中的输入的低延迟的图像的方法,因为它允许以低帧速率来绘制复杂的三维模型,以及基于较新的预测姿势对模型的绘制进行一个或多个重投影,而无需对模型进行另外的完全绘制。
系统900包括互连905,互连905包括被布置为在系统900的各个元件之间和/或之中传送数据和/或信号的电路,各个元件包括例如传感器910、姿势估计模块915、源图像绘制模块920、变换预处理模块925、CPU 930、LSR变换模块940、存储器控制器970和/或存储器设备975。互连120可以包括拓扑,诸如但不限于总线、环、网格、点对点或片上网络(NoC)。虽然图9图示了单个互连905,但是一些实施方式包括在系统900的各个元件之间提供通信的多个这样的互连。例如,可以在姿势估计模块915和一个或多个传感器910之间使用各种串行总线协议,诸如但不限于I2C(集成电路间)、SMBus(系统管理总线)、和/或1-Wire。
系统900包括被布置为收集并提供传感器数据的传感器910,传感器数据诸如但不限于:取向数据(例如,经由一个或多个陀螺仪)、移动数据(例如,经由一个或多个加速度计)、位置数据(例如,经由全球定位卫星信号接收器和/或信标接收器)、图像数据(例如,经由一个或多个相机)、环境深度数据(例如,经由一个或多个深度相机和/或超声波测距设备)、音频数据(例如,经由一个或多个麦克风和相关的音频信号输入设备)和/或眼睛跟踪数据(例如,经由红外眼睛跟踪相机)。针对基于HMD的实施方式,大多数或所有传感器910(或至少提供姿势估计模块915所使用的传感器数据的传感器910)可以被包括在HMD中或HMD上。姿势估计模块915被布置为:基于来自传感器910的、随时间收集的传感器数据,基于由传感器910收集的传感器数据,生成针对系统900的最终用户的、针对所选择的不久的将来的时间的预测姿势。姿势估计模块915可以从系统900中包括的其他元件接收经预处理的传感器数据;例如,可以执行对原始传感器数据的过滤、积分和/或相关来生成这样的经预处理的传感器数据。预测姿势可以指示例如位置、取向(例如,凝视方向)和移动信息(例如,对于应用运动模糊有效的移动信息)。
除了与以下讨论相抵触的情况,图1至图8中对源图像绘制模块110、变换预处理模块130、存储器150、源图像位置估计模块160、绘制后变换模块170和源图像数据取回模块180的各种实施方式的描述适用于其对应的源图像绘制模块920(其中源图像绘制模块被布置为:基于预测姿势信息来绘制源图像数据,并且将经绘制的源图像数据存储在存储器设备975中)、变换预处理模块925、存储器945、源图像位置估计模块950、绘制后变换模块955和源图像数据取回模块960(其中源图像数据取回模块960被布置为取回被存储在存储器设备975中的源图像数据)。
系统900包括CPU 930,CPU 930被配置为执行使得CPU 930对系统900中包括的其他元件的操作进行配置、协调和/或控制的程序指令。CPU 930可以被称为“处理器”或“处理单元”。在一些实施方式中,姿势估计模块915和变换预处理模块925的一些或全部功能可以由CPU 930部分地实现。系统900包括一个或多个机器可读介质,在一个或多个机器可读介质中包括指令和/或数据,该指令和/或数据在由系统900的元件处理和/或执行时,使得那些元件和/或系统900执行本文所述的各种技术;例如,CPU 930可以根据存储在非易失性存储设备(图9中未示出)中的指令来执行。CPU 930可以包括适于执行相应指令流的一个或多个处理核。CPU 930可以执行程序指令来执行其他功能,诸如但不限于操作系统功能和/或应用程序。系统900可以附加地包括被布置为协调和控制系统900中包括的各种元件的操作的其他控制电路(图9中未示出)。
系统900包括LSR变换模块940,其包括存储器945、源图像位置估计模块950、绘制后变换模块955和源图像数据取回模块960。在一些实施方式中,变换预处理模块925中的一些或全部被包括在LSR变换模块940中。在图9所图示的特定示例中,LSR变换模块940还包括被布置为向显示设备965提供像素数据的电路。例如,由绘制后变换模块955生成的变换图像可以作为像素数据被提供给显示设备965。LSR变换模块940或显示设备965可以包括显示控制器(图9中未示出),其被布置为执行用于物理地显示像素数据的信令。在一些实施方式中,显示设备965包括光学透视显示器,通过光学透视显示器,用户可以并发地查看现实世界环境和经物理显示的像素数据。
在一些实施方式中,LSR变换模块940被实现在单个SoC(图9中未示出)内。在这样的实施方式中,姿势估计模块915、变换预处理模块925、CPU 930和存储器控制器970也可以被实现在单个SoC内,并且还可以在单个SoC内包括源图像绘制模块920和/或存储器设备975。在一些实施方式中,在具有或不具有显示设备965的情况下,图9中所图示的元件可以被包括在单个电子设备或移动电子设备中。在一些实施方式中,图11中所图示的元件可以被包括在单个头戴式移动设备中。
在一些实施方式中,系统900包括存储器控制器970,存储器控制器970被布置为控制和/或调度由系统900的各个元件请求的对存储器设备975的访问,从而允许那些元件共享存储器设备975的使用。诸如但不限于闪存或其他非易失性存储器设备的附加存储器设备(图9中未示出)也可以经由存储器控制器970来访问和共享。存储器控制器970包括专用于与存储器设备975互操作、以允许系统900的各种元件以在所选择或指定的地址存储和/或取回被存储在存储器设备975中的数据的电路。在一些实施方式中,存储器控制器970可以并入互连905中。
存储器设备975被布置为:响应于所接收的存储器写入命令和对应的写入数据来接收和存储数据。存储器设备975还被布置为接收存储器读取命令,例如,指定地址和可选长度的存储器读取命令,并且输出被存储在存储器设备975中的对应数据。类似于结合图1中的源图像绘制存储器120所描述的,系统900被布置为使用存储器设备975的一部分,诸如以用于存储源图像数据和/或3-D模型数据。在一些实施方式中,CPU 930执行生成这样的3-D模型数据的指令,CPU 930可以将这样的3-D模型数据存储在存储器设备975中和/或直接提供给源图像绘制模块920。
图9中所图示的元件之中的布置和互连仅作为示例被图示。应当理解,本公开还涉及可以用于类似效果的、这样的元件之中的其他布置和互连。以下结合图10至图12描述系统900的另外的细节、实施方式和各种实施方式。
图10图示了包括图9中所图示的元件的、示例HMD 1000的一部分。仅描绘了HMD1000的右侧。虽然图9将各种元件图示为被放置在HMD 1000的右侧上或被包括在HMD 1000的右侧中,但是这些元件可以位于HMD 1000上或HMD 1000中的其他地方。HMD 1000包括右镜脚1002、鼻托1004、镜片1016、镜框1014、耳机1030、无线通信模块1037和电源1039等。耳机1030可以用于输出与虚拟对象的投影图像相关联的声音。HMD 1000还包括CPU 1036,CPU1036以类似于图9中针对CPU 930所描述的那样被配置。
HMD 1000包括可以被称为“头戴式传感器”的多个传感器,多个传感器可以用于确定佩戴HMD 1000的最终用户的预测姿势。右镜脚1002包括一个或多个前向传感器1013(例如,一个或多个成像相机、一个或多个麦克风和/或一个或多个深度传感器),传感器1013中的一些传感器可以如针对图9中的传感器910所描述的被采用,以提供用于姿势估计的传感器数据,如结合图9中的姿势估计模块915所描述的那样。成像相机和/或深度传感器可以被布置使得所捕获的视场与HMD 1000的最终用户所看到的视场相对应。在一些实施方式中,HMD 1000包括两个或更多个前置相机(例如,每个镜撑上一个前置相机),以从与前置相机捕获的视场相关联的立体信息中获得深度。右镜脚1002还包括可以被采用以提供用于姿势估计的传感器数据的、运动和取向传感器1038和GPS接收器1032。运动和取向传感器1038可以包括三轴磁力计、三轴陀螺仪和/或三轴加速度计。在一些实施方式中,运动和取向传感器1038包括惯性测量单元(IMU)。GPS接收器1032可以确定与HMD 1000相关联的GPS位置。在一些实施方式中,右镜脚1002还包括眼睛跟踪系统1021,眼睛跟踪系统1021也可以提供用于姿势估计的传感器数据。基于由眼睛跟踪系统1021提供的传感器数据,HMD 1000可以被用来确定最终用户的眼睛的瞳孔的位置、眼球的旋转中心、眼球的光轴和/或凝视或观看角度。这样的信息可以用于动态地生成用于LSR的变换。
在一些实施方式中,镜片1016包括光学透视显示器,光学透视显示器允许并发观看现实世界环境和由HMD 1000生成的图像,由HMD 1000生成的图像可以被投影和/或显示在透视显示器上。透视显示器可以通过调制被提供给显示器(诸如,硅基液晶(LCOS)显示器)的光、或通过在显示器(诸如,OLED显示器)内生成光来显示虚拟对象的图像。在诸如针对VR设备或AR设备的其他实施方式中,可以替代地使用非透视显示器。
在一些实施方式中,系统900可以被布置为针对两个或更多个显示设备或显示区域执行LSR变换;例如,生成在多个显示器或显示区域上并发显示的多个变换图像。例如,在HMD 1000的一些实施方式中,提供两个单独的显示设备或一个显示设备的两个显示区域,一个用于左眼,并且另一个用于右眼。对每个眼睛显示不同的图像,从而提供虚拟对象的立体视图。对于第一显示器或显示区域,类似于结合图10所描述的,考虑与第一显示器或显示区域相关联的视点(例如,左眼的位置和/或凝视方向)来绘制第一源图像数据;动态生成第一变换;选择第一多个采样位置;生成第一变换数据;以及生成第一变换图像。附加地,对于第二显示器或显示区域,考虑与第二显示器或显示区域相关联的视点(例如,右眼的位置和/或凝视方向)来绘制不同的第二源图像数据;动态生成不同的第二变换;选择第二多个采样位置(其可以不同于第一多个采样位置);生成不同的第二变换数据;以及生成不同的第二变换图像。在一些实施方式中,系统900包括针对每个显示器或显示区域的单独的LSR变换模块,类似于图9中的LSR变换模块940,同时共享其他元件,诸如,姿势估计模块915、图像绘制模块920、变换预处理模块925、CPU 930和/或存储器设备975。在一些实施方式中,系统900针对多个显示器或显示区域使用单个LSR变换模块。可以使用各种方法来共享单个LSR变换模块。在一些实施方式中,LSR变换模块被布置为:针对一个显示器或显示区域,一次性串行地生成变换图像。在一些实施方式中,LSR变换模块被布置为:交错生成变换图像,诸如通过在生成变换图像的子部分(诸如,一个或多个扫描线或图块)之后进行到下一显示;对于这样的实施方式,存储器945可以并发地存储用于所有显示器或显示区域的变换数据。类似的适配可以应用于系统100。
图11图示了以下示例:如可以由图9中的系统900或图10中的HMD 1000执行的,使用LSR以从基于初始预测姿势1110绘制的初始源图像数据1120来生成针对经更新的预测姿势1130的变换图像1140。在图11所图示的示例中,姿势估计模块915基于由传感器910提供的传感器数据来确定针对最终用户的初始预测姿势1110。如图10所图示的,对于基于HMD的实施方式,传感器910中的大部分或全部(或至少提供用于姿势估计的数据的传感器910)可以被包括在HMD中或HMD上。初始预测姿势1110针对在不久的将来的第一选择时间而被生成;例如,针对期望在其期间在显示设备965上将图像呈现给最终用户的估计时间或实际时间而被生成。
基于初始预测姿势1110和关于要被显示给最终用户的场景、模型、图像和/或对象的信息,源图像绘制模块920基于初始预测姿势1110生成初始源图像数据1120。通常,初始源图像数据1120的视场大于显示器965的视场,并且初始源图像数据1120的一部分或各部分被用来经由LSR变换模块940生成经更新的图像。类似于先前的示例中所描述的,初始源图像数据1120被存储在存储器设备975中。
通常,在已经基于初始预测姿势1110绘制了初始源图像数据1120之后(鉴于实时处理资源和最后期限(deadline),这可能花费大量的时间、计算和/或能量),传感器910已经提供了附加的传感器数据,其被用来生成针对第二选择时间的经更新的预测姿势1130。第二选择时间可以大约是第一选择时间(从而基于较新的传感器数据来提供改进的且可能更准确的预测姿势),或是第一选择时间附近的另一时间。变换预处理模块925被布置为:基于经更新的预测姿势1130来动态地生成变换,诸如,基于初始预测姿势1110和经更新的预测姿势1130之间的差异来动态地生成变换,并且针对多个稀疏放置的采样位置应用所生成的变换以产生变换数据。类似于结合图1中的变换数据152、源图像位置估计模块160和绘制后变换模块170所描述的,LSR变换模块940使用变换数据来对被存储在存储器设备975中的初始源图像数据1120的一部分进行变换,以生成针对经更新的预测姿势1130的变换图像1140。变换图像1140在显示设备965上被呈现给最终用户。由变换预处理模块925生成的变换可以基于初始预测姿势1110和经更新的预测姿势1130之间的差异而被动态地生成。可以使用附加的输入或因子来动态地生成变换;例如,可以进一步基于相对于光学表面的瞳孔位置来生成动态变换。针对经更新的预测姿势1130的第二时间对应于期间变换图像1140被呈现在显示设备965上的估计时间或实际时间。
虽然在图11中未示出,但是可以以类似于变换图像1140的方式从初始源图像数据1120生成多于一个变换图像。基于传感器910提供的又一传感器数据,可以针对第三选择时间来生成第二经更新的预测姿势。例如,第三选择时间可以对应于在显示变换图像1140的图像帧之后被显示的图像帧。变换预处理模块925可以被布置为:基于第二经更新的预测姿势,诸如基于初始预测姿势1110与第二经更新的预测姿势之间的差异,来动态地生成第二变换,并且针对多个稀疏放置的采样位置应用第二变换以产生变换数据。第二变换数据由LSR变换模块940使用,以从初始源图像数据1120生成第二变换图像,以用于经由显示设备965显示。这可以针对附加的图像帧来重复,其中针对每个图像帧动态生成新的变换,直到新的源图像数据已经被绘制。该方法允许以比向最终用户显示变换图像的帧速率更慢的帧速率来生成源图像数据。
图12A、图12B和图12C图示了与本文描述的技术相比的各种LSR实施方式的时序和操作。所图示的时序和频率仅出于讨论的目的而被呈现,并且不旨在是实际比例或频率。图12A图示了用于执行LSR的常规方法的时序和操作的示例。图12A的顶行示出了以下时间点:基于已被接收或获得的附加传感器数据,可以获得新的经更新的预测姿势1215。例如,100Hz或更高的IMU采样速率是相对常见的。最后期限1320a、1320b和1320c指示与经由用于完成LSR操作的显示设备显示经更新的图像帧相关联的实时最后期限。在左侧,执行对所有目的地图像位置进行完全变换的第一LSR操作1330a。在一些实施方式中,应用不要求很多计算的较简单的变换来减少第一LSR操作1330a的持续时间,以确保最后期限1320a被满足。经更新的预测姿势在1215a处被获得,并且被用于对经预绘制的图像进行变换。第一LSR操作1330a花费由非阴影部分指示的时间量,并且阴影部分示出未使用时间。如果预先知道第一LST操作1330a实际上将花费多长时间,则它可以较迟开始并且受益于较迟的、且可能更准确的经更新的预测姿势1215a'。然而,由于与第一LSR操作相关联的时间量或计算量可能变化,因此使用保守的方法来确保满足最后期限1320a。
在图12A的中间,发生类似的问题,但是程度更大。使用经更新的预测姿势1215b来执行类似于第一LSR操作1330a的第二LSR操作1330b。然而,第二LSR操作1330b相当快地完成。再次,如果预先知道第二LST操作1330b实际上将花费多长时间,则它可以较迟开始并且受益于显著较迟的、且可能更准确的经更新的预测姿势1215b'。然而,关于第二LSR操作1330b所需时间的预先不确定性导致其较早开始。
在图12A的右侧,基于经更新的预测姿势1215c来执行第三LSR操作1330c。然而,第三LSR操作1330c图示了“最坏情况”处理,其中直到最后期限1320c的全部或几乎全部时间都用于执行第三LSR操作1330c。正是由于这样的事件,LSR操作与所需要的一些时间相比较早开始,以确保实现完成LSR操作的实时最后期限。
图12B图示了用于执行其中更复杂的变换被执行的LSR的常规方法的时序和操作的示例。因此,由第三LSR操作1260c所图示的、“最坏情况”处理所需的时间量显著长于图12A中的时间量。因此,第三LSR操作1260c显著更早地开始,并且基于经更新的预测姿势1245c,经更新的预测姿势1245c比变换图像被显示给最终用户的时间稍微更远。这意味着对于其他LSR操作,诸如第一LSR操作1260a和第二LSR操作1260b,未使用的时间量比图12A中更明显。而且,在实际使用的经更新的预测姿势1245a和1245b与可能已被使用的经更新的预测姿势1245a'和1245b'之间的时间差同样更大。
图12C图示了图9和图10所图示的系统900和系统1000的时序和操作的示例。通过使用所存储的变换数据而不是经完全变换的源图像位置来计算估计源图像位置,并且针对稀疏分布的采样位置执行完全变换,可以比图12A和图12B更快地执行合理准确的LSR(从而允许在时间上与变换图像被显示的时间更接近的、经更新的预测姿势1275a、1275b和1275c的使用,这减少了延时且改善了最终用户体验)。而且,由于由源图像位置估计模块950执行的计算是一致的工作量,因此减少了用于LSR操作1290a、1290b和1290c的时间变化,这允许更确信地延迟针对每个图像帧的LSR处理的开始,从而允许使用较新的传感器数据进行姿势预测。最后,即使在执行比图12B中的变换更复杂的变换的情况下,也可以实现这样的益处。
通常,可以使用软件、固件、硬件(例如,固定逻辑、有限状态机和/或其他电路)或这些实施方式的组合来实现本文描述的功能(例如,图1、图9和图10所图示的特征)。在图1、图9和图10中分开示出的模块可以或可以不被实现为分开的模块。在软件实施方式的情况下,程序代码在处理器(例如,一个或多个CPU)上执行时执行指定的任务。程序代码可以被存储在一个或多个机器可读存储器设备中。本文描述的技术的特征是独立于平台的,这意味着可以在具有各种处理器的各种计算平台上实现这些技术。例如,实施方式可以包括使得硬件执行例如处理器功能块等的操作的实体(例如,软件)。例如,硬件设备可以包括机器可读介质,机器可读介质可以被配置为维持使得硬件设备执行操作的指令,该硬件设备包括在其上执行的操作系统和相关联的硬件。因此,指令可以运行以配置操作系统和相关联的硬件来执行操作,并且从而配置或以其他方式适配硬件设备来执行上述功能。指令可以由机器可读介质通过各种不同的配置提供给执行指令的硬件元件。
机器可读介质的一个这样的配置是信号承载介质,并且因此被配置为诸如经由网络将指令(例如,作为载波)传送给设备。机器可读介质还可以被配置为机器可读存储介质,并且因此不是信号承载介质,并且可以是非暂态机器可读存储介质。机器可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪存、硬盘存储器以及可以使用磁性、光学和其他技术来存储指令和其他数据的其他存储器设备。
虽然前面已描述了被认为是最佳模式的示例和/或其他示例,但是应当理解,可以在其中进行各种修改,并且可以以各种形式和示例来实现本文公开的主题,并且这些教导可以应用于许多应用中,本文仅描述了其中的一些应用。所附权利要求书旨在要求落入本教导的真实范围内的任何和所有应用、修改和变化。
除非另有说明,否则在本说明书中、包括在所附权利要求书中阐述的所有测量、值、额定值、位置、幅度、尺寸和其他规格都是近似的而不是精确的。它们旨在具有与它们所涉及的功能以及它们所属于的领域中的习惯相一致的合理范围。
保护范围仅受所附权利要求书的限制。当根据本说明书和之后的审查历史进行解释时,该范围旨在并且应当被解释为与权利要求中所使用的语言的普通含义相一致的范围一样宽泛,并且涵盖所有结构性和功能性的等同物。尽管如此,所有权利要求均不旨在包含不满足专利法第101、102或103条要求的主题,也不应当以这种方式解释这些主题。特此拒绝对这样的主题的任何非预期的包含。
除以上所述外,不论权利要求中是否记载,所陈述或所图示的任何内容都不旨在或不应当被解释为使任何组件、步骤、特征、对象、益处、优点或等同物专用。
应当理解,除了本文中以其他方式阐述特定意义的情况,本文使用的术语和表达具有与关于其对应的相应研究和研究领域的术语和表达相一致的普通含义。诸如第一和第二等的关系术语可以仅用于区分一个实体或动作与另一实体或动作,而不必要求或暗示这样的实体或动作之间的任何实际的这样的关系或顺序。术语“包括”、“包含”或其任何其他变体旨在覆盖非排他性包括,使得包括元素列表的过程、方法、物品或装置不仅仅包括那些元素,还可以包括未明确列出的、或这样的过程、方法、物品或装置所固有的其他元素。在没有其他限制的情况下,以“一”或“一个”开头的元素并不排除在包括该元素的过程、方法、物品或装置中存在另外的相同元素。
提供本公开的摘要是为了允许读者快速地确认本技术公开的性质。在理解该摘要不会被用于解释或限制权利要求的范围或含义的情况下,提交了该摘要。附加地,在前面的具体实施方式中,可以看出,出于使本公开简单化的目的,在各种示例中将各种特征分组在一起。本公开的方法不应被解释为反映权利要求需要比每个权利要求中明确记载的特征更多的特征的意图。相反,如所附权利要求所反映的,发明主题存在于少于单个公开示例的所有特征。因此,所附权利要求于此并入具体实施方式中,其中每个权利要求独立地作为分开要求保护的主题。
Claims (15)
1.一种电子设备,包括:
变换生成模块,被布置为动态地生成源空间中的位置与目的地空间中的对应位置之间的图像变换;
第一存储器,被布置为接收和存储变换数据;
变换数据生成模块,被布置为:
从所述变换生成模块接收所述图像变换,
通过针对第一采样位置应用由所述变换生成模块生成的所述图像变换,生成针对所述第一采样位置的第一变换数据,
通过针对第二采样位置应用由所述变换生成模块生成的所述图像变换,生成针对所述第二采样位置的第二变换数据,以及
将所述第一变换数据和所述第二变换数据存储在所述第一存储器中;第一图像变换级,被布置为:
选择针对第一目的地图像位置的、所述第一变换数据和所述第二变换数据,
基于由所述第一图像变换级选择的所述第一变换数据和所述第二变换数据,计算针对所述第一目的地图像位置的第一估计源图像位置,以及
通过使用所计算的所述第一估计源图像位置来执行第一操作,来生成第一数据;第二图像变换级,被布置为:
选择针对所述第一目的地图像位置的、所述第一变换数据和所述第二变换数据,
从所述存储器中取回所选择的所述第一变换数据和所述第二变换数据,
基于由所述第二图像变换级取回的所述第一变换数据和所述第二变换数据,重新计算针对所述第一目的地图像位置的所述第一估计源图像位置,以及
使用经重新计算的所述第一估计源图像位置和由第一绘制级生成的所述第一数据,生成针对所述第一目的地图像位置的第一图像数据;以及
绘制后变换模块,被布置为:接收所述第一图像数据,并且基于所述第一图像数据来生成第一变换图像。
2.根据权利要求1所述的电子设备,还包括:
第二存储器;
源图像绘制模块,被布置为:接收三维模型,基于所述三维模型来绘制第一源图像数据,并且将所述第一源图像数据存储在所述第二存储器中;以及
源图像数据取回模块,被布置为:接收所述第一估计源图像位置,并且从所述第二存储器中存储的所述第一源图像数据中取回与所接收的所述第一估计源图像位置相对应的第二源图像数据,其中
所述第二图像变换级还被布置为:基于所取回的所述第二源图像数据来生成所述第一图像数据,并且
所述设备被布置为:在与对用于所述第二图像变换级的所述第一估计源图像位置的所述重新计算的时间远离的时间处,计算用于所述第一图像变换级的所述第一估计源图像位置。
3.根据权利要求1所述的电子设备,还包括:
姿势估计模块,被布置为确定针对最终用户的预测姿势;以及
源图像绘制模块,被适配为:基于由所述姿势估计模块确定的、针对所述最终用户的初始预测姿势,绘制来自三维模型的源图像数据;
其中所述变换生成模块被布置为:基于由所述姿势估计模块确定的、针对所述最终用户的经更新的预测姿势,动态地生成所述图像变换。
4.根据权利要求3所述的电子设备,还包括:
头戴式显示器(HMD);以及
头戴式传感器;
其中:
所述姿势估计模块还被布置为:
基于经由所述头戴式传感器获得的第一传感器数据,生成所述初始预测姿势,以及
在获得所述第一传感器数据之后,基于经由所述头戴式传感器获得的第二传感器数据来生成经更新的所述预测姿势;并且所述电子设备被布置为在所述HMD上显示所述第一变换图像。
5.根据权利要求1所述的电子设备,其中:
所述第一采样位置是目的地图像位置;
所述第二采样位置是目的地图像位置;
所述变换生成模块被布置为:动态地生成逆图像变换,以用于将所述目的地空间中的预变换位置映射到所述源空间中的对应的变换后位置;并且
所述变换数据生成模块被布置为:
通过将所述逆图像变换应用于所述第一采样位置,来针对所述第一采样位置应用所生成的所述图像变换,以生成对应的第一变换后源位置,
基于所述第一变换后源位置,生成所述第一变换数据,
通过将所述逆图像变换应用于所述第二采样位置,来针对所述第二采样位置应用所生成的所述图像变换,以生成对应的第二变换后源位置,以及
基于所述第二变换后源位置,生成所述第二变换数据。
6.一种用于多级绘制后图像变换的方法,包括:
动态地生成源空间中的位置与目的地空间中的对应位置之间的第一图像变换;
通过针对第一采样位置应用所生成的所述第一图像变换,生成针对所述第一采样位置的第一变换数据;
通过针对第二采样位置应用所生成的所述第一图像变换,生成针对所述第二采样位置的第二变换数据;
将所述第一变换数据和所述第二变换数据存储在第一存储器中;
针对第一图像变换级,选择针对第一目的地图像位置的、所述第一变换数据和所述第二变换数据;
针对所述第一级,基于由所述第一图像变换级选择的所述第一变换数据和所述第二变换数据,计算针对所述第一目的地图像位置的第一估计源图像位置;
针对所述第一级,通过使用所计算的所述第一估计源图像位置来执行第一操作,来生成第一数据;
针对第二图像变换级,选择针对所述第一目的地图像位置的、所述第一变换数据和所述第二变换数据,并且从所述第一存储器中取回所选择的所述第一变换数据和所述第二变换数据;
针对所述第二级,基于所取回的所述第一变换数据和所述第二变换数据,重新计算针对所述第一目的地图像位置的所述第一估计源图像位置;
使用经重新计算的所述第一估计源图像位置和由第一绘制级生成的所述第一数据,生成针对所述第一目的地图像位置的第一图像数据;以及
基于所生成的所述第一图像数据,生成第一变换图像。
7.根据权利要求6所述的方法,还包括:
基于三维模型来绘制第一源图像数据;
将所述第一源图像数据存储在第二存储器中;以及
从所述第二存储器中存储的所述第一源图像数据中取回与所述第一估计源图像位置相对应的第二源图像数据,其中
所述生成所述第一图像数据基于所取回的所述第二源图像数据,并且
所述计算用于所述第一级的第一估计源图像位置在与所述重新计算用于所述第二级的所述第一估计源图像位置的时间远离的时间处被执行。
8.根据权利要求6所述的方法,还包括:
确定针对最终用户的初始预测姿势;
基于所述初始预测姿势,绘制来自三维模型的源图像数据;以及
确定针对所述最终用户的经更新的预测姿势;其中
所述第一图像变换基于所述经更新的预测姿势而被动态地生成,并且
所述第一图像数据基于所述源图像数据中与所述第一源图像位置相对应的一部分而被生成。
9.根据权利要求8所述的方法,还包括:
从头戴式传感器接收第一传感器数据;
基于所接收的所述第一传感器数据,生成所述初始预测姿势;
在接收所述第一传感器数据之后,从所述头戴式传感器接收第二传感器数据;
基于所接收的所述第二传感器数据,生成所述经更新的预测姿势;以及
在头戴式显示器(HMD)上显示所述第一变换图像。
10.根据权利要求6所述的方法,其中:
所述第一采样位置是源图像位置;
所述针对所述第一采样位置应用所生成的所述第一图像变换包括:将正向图像变换应用于所述第一采样位置,以生成对应的第一变换后目的地位置;
所述生成针对所述第一采样位置的第一变换数据包括:基于所述第一变换后目的地位置,对值进行编码;
所述第二采样位置是源图像位置;
所述针对所述第二采样位置应用所生成的所述第一图像变换包括:将所述正向图像变换应用于所述第二采样位置,以生成对应的第二变换后目的地位置;并且
所述生成针对所述第二采样位置的第二变换数据包括:基于所述第二变换后目的地位置,对值进行编码。
11.根据权利要求1所述的电子设备,还包括:
采样位置选择模块,被布置为标识稀疏分布的采样位置的集合,所述集合由多个采样位置、所述第一采样位置和所述第二采样位置组成;
其中所述变换数据生成模块还被布置为:针对所述多个采样位置中包括的每个采样位置,针对所述采样位置应用由所述变换生成模块生成的所述图像变换,并且将所生成的所述变换数据存储在所述第一存储器中。
12.根据权利要求1所述的电子设备,其中所述变换生成模块还被布置为:生成用于所述图像变换的二维(2D)几何图像变换的组合和/或系列,所述2D几何图像变换包括预定的2D几何图像变换和动态生成的2D几何图像变换。
13.根据权利要求1所述的电子设备,其中:
所述电子设备被布置为:在显示设备上显示连续的第一图像帧和第二图像帧,其中所述第一图像帧包括所述第一变换图像;并且
所述变换生成模块被布置为:动态地生成不同于所述第一图像变换的第二图像变换,以用于生成所述第二图像帧中包括的第二变换图像。
14.根据权利要求6所述的方法,还包括:
标识稀疏分布的采样位置的集合,所述集合由多个位置、所述第一采样位置和所述第二采样位置组成;以及
针对所述多个采样位置中包括的每个采样位置,通过针对所述采样位置应用所生成的所述第一图像变换来生成变换数据,并且将所生成的所述变换数据存储在所述第一存储器中。
15.根据权利要求6所述的方法,还包括:
在显示设备上显示连续的第一图像帧和第二图像帧,其中所述第一图像帧包括所述第一变换图像;以及
动态地生成不同于所述第一图像变换的第二图像变换,以用于生成所述第二图像帧中包括的第二变换图像。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/586,214 US10403029B2 (en) | 2017-05-03 | 2017-05-03 | Methods and systems for multistage post-rendering image transformation |
US15/586,214 | 2017-05-03 | ||
PCT/US2018/028463 WO2018204092A1 (en) | 2017-05-03 | 2018-04-20 | Methods and systems for multistage post-rendering image transformation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110582797A true CN110582797A (zh) | 2019-12-17 |
Family
ID=62196683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880029610.0A Withdrawn CN110582797A (zh) | 2017-05-03 | 2018-04-20 | 用于多级绘制后图像变换的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10403029B2 (zh) |
EP (1) | EP3619677A1 (zh) |
CN (1) | CN110582797A (zh) |
WO (1) | WO2018204092A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201713051D0 (en) * | 2017-08-15 | 2017-09-27 | Imagination Tech Ltd | Low latency distortion unit for head mounted displays |
US10459609B2 (en) * | 2018-04-03 | 2019-10-29 | Palantir Technologies Inc. | Multi-stage data page rendering |
US11538184B2 (en) * | 2018-06-01 | 2022-12-27 | Hewlett-Packard Development Company, L.P. | Substantially real-time correction of perspective distortion |
US10681165B2 (en) | 2018-09-11 | 2020-06-09 | Palantir Technologies Inc. | System architecture for enabling efficient inter-application communications |
US10776993B1 (en) * | 2019-02-27 | 2020-09-15 | Snap Inc. | Continuous device pose representation in AR/VR displays |
US11200752B1 (en) | 2019-08-23 | 2021-12-14 | Lucasfilm Entertainment Company Ltd. | Color correction for immersive content production systems |
JP2023518421A (ja) | 2020-03-20 | 2023-05-01 | マジック リープ, インコーポレイテッド | 網膜結像および追跡のためのシステムおよび方法 |
US11443411B2 (en) * | 2020-07-08 | 2022-09-13 | Nxp Usa, Inc. | Method and system for image distortion correction using quarter and tangential lookup tables |
US11978177B2 (en) * | 2020-09-25 | 2024-05-07 | Intel Corporation | Method and system of image processing of omnidirectional images with a viewpoint shift |
US11978154B2 (en) | 2021-04-23 | 2024-05-07 | Lucasfilm Entertainment Company Ltd. | System and techniques for lighting adjustment for an immersive content production system |
US11887251B2 (en) | 2021-04-23 | 2024-01-30 | Lucasfilm Entertainment Company Ltd. | System and techniques for patch color correction for an immersive content production system |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0778267A (ja) * | 1993-07-09 | 1995-03-20 | Silicon Graphics Inc | 陰影を表示する方法及びコンピュータ制御表示システム |
US5586204A (en) * | 1994-06-30 | 1996-12-17 | Hughes Electronics | Integrity checking procedure for high throughput data transformations |
US7106347B1 (en) | 2000-05-31 | 2006-09-12 | Intel Corporation | Transforming pixel data and addresses |
EP1386287B1 (de) * | 2001-04-25 | 2007-03-07 | Siemens Aktiengesellschaft | Bildverarbeitungsverfahren |
US7706629B2 (en) | 2006-02-24 | 2010-04-27 | Apple Inc. | Methods and apparatuses for pixel transformations |
WO2008022222A2 (en) | 2006-08-15 | 2008-02-21 | Intelliscience Corporation | Systems and methods for data transformation |
US8089494B2 (en) | 2008-10-13 | 2012-01-03 | Hewlett-Packard Development Company, L.P. | Image rotation |
GB2470740B (en) | 2009-06-02 | 2015-04-22 | Aptina Imaging Corp | Systems and methods for the efficient computation of image transforms |
US8548274B2 (en) | 2011-04-29 | 2013-10-01 | Aptina Imaging Corporation | Systems and methods for efficient storage of image transformations |
US9153007B2 (en) | 2011-09-21 | 2015-10-06 | Semiconductor Components Industries, Llc | Imaging systems with conformal image buffers |
GB2509170B (en) | 2012-12-21 | 2019-02-27 | Displaylink Uk Ltd | Image transformation |
US9514571B2 (en) | 2013-07-25 | 2016-12-06 | Microsoft Technology Licensing, Llc | Late stage reprojection |
US9558595B2 (en) * | 2014-12-17 | 2017-01-31 | Ross Video Limited | Methods and systems for intersecting digital images |
US9536287B1 (en) * | 2015-07-09 | 2017-01-03 | Intel Corporation | Accelerated lens distortion correction with near-continuous warping optimization |
US20170169612A1 (en) * | 2015-12-15 | 2017-06-15 | N.S. International, LTD | Augmented reality alignment system and method |
US10521920B2 (en) * | 2017-09-21 | 2019-12-31 | Intel Corporation | Reducing textured IR patterns in stereoscopic depth sensor imaging |
-
2017
- 2017-05-03 US US15/586,214 patent/US10403029B2/en active Active
-
2018
- 2018-04-20 EP EP18725685.4A patent/EP3619677A1/en not_active Withdrawn
- 2018-04-20 CN CN201880029610.0A patent/CN110582797A/zh not_active Withdrawn
- 2018-04-20 WO PCT/US2018/028463 patent/WO2018204092A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
US10403029B2 (en) | 2019-09-03 |
US20180322688A1 (en) | 2018-11-08 |
EP3619677A1 (en) | 2020-03-11 |
WO2018204092A1 (en) | 2018-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10403029B2 (en) | Methods and systems for multistage post-rendering image transformation | |
JP6712366B2 (ja) | 曲面ビューポート上に頂点の投影を近似することによる、グラフィックス処理における画面位置に基づく有効解像度の変化 | |
US9569886B2 (en) | Variable shading | |
EP3129958B1 (en) | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters | |
JP7142162B2 (ja) | 姿勢変動3d顔面属性生成 | |
JP2021061041A (ja) | 中心窩ジオメトリテッセレーション | |
US10114454B2 (en) | Velocity and depth aware reprojection | |
US20200410740A1 (en) | Graphics processing systems | |
US11100899B2 (en) | Systems and methods for foveated rendering | |
JPH10302079A (ja) | 立体テクスチャマッピング処理装置及びそれを用いた3次元画像生成装置 | |
US20160104458A1 (en) | Graphics processing unit for adjusting level-of-detail, method of operating the same, and devices including the same | |
KR20090079241A (ko) | 공유된 산술 논리 유닛을 구비한 그래픽 처리 유닛 | |
CN105654418B (zh) | 图形处理单元和包括其的装置 | |
US20180174349A1 (en) | Adaptive partition mechanism with arbitrary tile shape for tile based rendering gpu architecture | |
US20090295798A1 (en) | System, method, and computer program product for a tessellation engine using a geometry shader | |
US11120591B2 (en) | Variable rasterization rate | |
US20170323469A1 (en) | Stereo multi-projection implemented using a graphics processing pipeline | |
US10134171B2 (en) | Graphics processing systems | |
US11211034B2 (en) | Display rendering | |
US20180211434A1 (en) | Stereo rendering | |
CN113302658A (zh) | 并行纹理采样 | |
KR20220148814A (ko) | 효율적인 다중 뷰 래스터화를 위한 방법들 및 장치 | |
CN113362442A (zh) | 一种虚拟现实图像的渲染方法、存储介质及虚拟现实设备 | |
US12002132B1 (en) | Rendering using analytic signed distance fields | |
TW202129599A (zh) | 用於多鏡頭畸變校正的方法和裝置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20191217 |