CN115908157A - 渲染3d场景的图像 - Google Patents
渲染3d场景的图像 Download PDFInfo
- Publication number
- CN115908157A CN115908157A CN202211178376.2A CN202211178376A CN115908157A CN 115908157 A CN115908157 A CN 115908157A CN 202211178376 A CN202211178376 A CN 202211178376A CN 115908157 A CN115908157 A CN 115908157A
- Authority
- CN
- China
- Prior art keywords
- image
- outer product
- noisy
- blurring
- rendering
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 claims abstract description 101
- 238000005286 illumination Methods 0.000 claims description 97
- 239000011159 matrix material Substances 0.000 claims description 63
- 230000006870 function Effects 0.000 claims description 25
- 238000013139 quantization Methods 0.000 claims description 25
- 238000001914 filtration Methods 0.000 claims description 24
- 238000003860 storage Methods 0.000 claims description 8
- 239000000047 product Substances 0.000 description 100
- 238000012545 processing Methods 0.000 description 78
- 238000004519 manufacturing process Methods 0.000 description 52
- 238000005070 sampling Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 12
- 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 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000010606 normalization Methods 0.000 description 6
- 238000005094 computer simulation Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000005266 casting Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000000342 Monte Carlo simulation Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012993 chemical processing Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000206 photolithography Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000005389 semiconductor device fabrication Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
-
- 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/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20016—Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Processing (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明涉及渲染3D场景的图像。提供了一种渲染3D场景的图像的方法。所述方法包括:渲染(110)有噪图像;以及获得(112)一个或多个引导通道。对于多个局部邻域中的每一者,所述方法包括:计算(120)将所述有噪图像近似为所述一个或多个引导通道的函数的模型的参数,以及应用(130,150)所计算的参数以产生去噪图像。(i)所述有噪图像、(ii)所述一个或多个引导通道和(iii)所述去噪图像中的至少一者以量化的低位深度格式存储。
Description
技术领域
本发明涉及渲染3D场景的图像。
背景技术
路径跟踪是用于近似场景中的光传输的蒙特卡罗法(Monte Carlo method)。结果的质量取决于每个像素的样本数量—样本数量越多,结果就越近似实际的光传输。
然而,增加样本数量在计算上是昂贵的,尤其是因为噪声的标准偏差与样本数量N相关的系数为这意味着需要四倍的样本来实现50%的噪声降低。因此,作为降低路径跟踪图像中的噪声的方式,快速增加样本的数量变得不切实际。
众所周知,应用去噪算法可以在不增加样本数量的情况下降低噪声。已经发现“引导滤波器”在这项任务中工作良好。最初由He等人提出,引导滤波器将有噪图像的每个邻域建模为引导图像的对应邻域的仿射变换。引导图像应该是无噪声的,并且应该包含对应于有噪图像的场景结构(例如,对象边缘、遮挡边界或阴影边缘)。此类引导图像在路径跟踪的上下文中是可用的,因为场景是合成的,并且它的各种“辅助”图像可以通过其他方式渲染。具有若干引导通道的引导图像可以在引导滤波器中使用,并且每个引导通道可以包含可用于重构无噪声图像的不同种类的信息(例如,深度通道和表面法线通道)。引导通道的不同组合在图像的不同部分中可能是有用的,出于该原因,该方法被称为局部线性(或者,更正确但不太普遍地称为局部仿射)模型。
因为它是由关于场景的结构内容的信息引导的,所以只要合适的结构信息在引导通道中的一者或多者中可用,引导滤波器就可以对场景的有噪路径跟踪图像去噪,而不会在图像内的对象边缘上引起显著模糊。
为了更好地支持路径跟踪,特别是允许在计算资源和功率有限的设备(诸如移动设备)上以更高的帧速率和/或更好的质量执行路径跟踪,期望提高去噪的质量,并且更有效地实现去噪。
发明内容
提供本发明内容是为了以简化形式介绍下文在具体实施方式中进一步描述的一系列概念。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
提供了一种渲染3D场景的图像的方法。该方法包括:渲染有噪图像;以及获得一个或多个引导通道。对于多个局部邻域中的每一者,该方法包括:计算将有噪图像近似为一个或多个引导通道的函数的模型的参数,以及应用所计算的参数以产生去噪图像。(i)有噪图像、(ii)一个或多个引导通道和(iii)去噪图像中的至少一者以量化的低位深度格式存储。
根据一个方面,提供了一种渲染3D场景的图像的方法,该方法包括:
渲染有噪图像;
获得一个或多个引导通道;以及
对于多个局部邻域中的每一者:
计算将有噪图像近似为一个或多个引导通道的函数的模型的参数;以及
应用所计算的参数来产生去噪图像,
其中有噪图像、一个或多个引导通道和去噪图像中的至少一者以量化的低位深度格式存储。
根据一些示例,该方法可以提供组合的渲染和去噪流水线,适于至少部分地使用路径跟踪产生的图像的高效渲染。通过一个或多个引导通道的这样的函数来近似有噪图像的方法对应于通过引导滤波进行去噪。该函数可以包括引导通道和标量偏移的线性组合或由其组成。因此,该模型可以包括或者可以是仿射模型。
在一些示例中,可以通过在每个像素处包括具有统一值(例如,一的阵列)的引导通道来将标量偏移合并到模型中。任选地,该引导通道不存储在存储器中—其可以在模型的拟合期间(例如,通过模型拟合单元)在运行中以软件或硬件来实例化。
引导通道可包含关于3D场景中的场景结构的信息,包括但不限于对象边界、遮挡边界和阴影边缘。引导通道可以基本上无噪声。它们可以通过确定性计算(例如通过光栅化)来渲染,而有噪图像可以通过随机采样来渲染。
量化可以减少要存储的数据量,并且由此可以减少存储器带宽需求。量化将数据从高位深度格式(例如,32位浮点)转换为低位深度格式(例如,8位整数)。本发明人已经认识到,(i)有噪图像、(ii)一个或多个引导通道,或(iii)去噪图像中的至少一者可以以量化格式存储(并传输到存储器或从存储器传输),而不会显著降低去噪图像的图像质量。
计算参数和应用所计算的参数的步骤可以使用浮点计算来执行。
所计算的参数可以应用于一个或多个引导通道(即,用于计算参数的相同引导通道)。替代地,在一些示例中,所计算的参数可以应用于一个或多个引导通道的第二集,对应于用于计算参数的那些引导通道。例如,引导通道的第二集可以是不同分辨率下的对应引导通道,例如,它们可以是在参数计算中使用的引导通道的上采样或下采样版本。
特别地,有噪图像可以是低分辨率图像,并且该方法可包括计算将有噪图像近似为一个或多个低分辨率引导通道的函数的模型的参数。该方法然后可以包括将所计算的参数应用于一个或多个全分辨率引导通道以产生去噪图像。全分辨率引导通道对应于低分辨率引导通道,因为它们包含基本相同的内容。
在有噪图像、一个或多个引导通道和去噪图像中的不止一者以量化低位深度格式存储的情况下,它们可以以不同的量化低位深度格式存储,即它们不需要全部以相同的格式存储。
“低分辨率”和“全分辨率”图像的相对分辨率可以根据应用的需要来选择。一般来说,“全分辨率”图像具有大于或等于“低分辨率”图像的分辨率的分辨率(并且因此,“全分辨率”图像具有比“低分辨率”图像更多数量的像素或与“低分辨率”图像相同数量的像素)。然而,在大多数示例中,“全分辨率”图像比“低分辨率”图像具有更高的分辨率。
该方法使得能够从低分辨率有噪图像产生去噪的全分辨率图像。与对全分辨率有噪图像执行去噪操作相比,这在计算上更高效并且/或者在存储器访问带宽方面更高效。当基于低分辨率图像去噪时,可以减少必须从存储器中检索并处理的数据的量。这是因为低分辨率引导通道和低分辨率有噪图像的局部邻域通常比全分辨率下的对应邻域更小(即,将包含更少的像素)。
每个局部邻域可以是以有噪低分辨率图像的相应像素为中心的局部邻域,由此为每个像素计算不同的模型参数集。
将计算的参数应用于一个或多个全分辨率引导通道可以包括将针对低分辨率引导通道的局部邻域计算的参数应用于全分辨率引导通道的对应局部邻域。将所计算的参数应用于一个或多个全分辨率引导通道可以包括对所计算的参数进行上采样,并且将经上采样的所计算的参数应用于一个或多个全分辨率引导通道。
渲染有噪图像任选地包括通过路径跟踪进行渲染。在这种情况下,该方法可以被视为通过引导滤波对路径跟踪图像进行去噪。路径跟踪在计算上是密集的,因为每像素需要投射多条射线,每条射线可能有多次“反弹”。当有噪图像是低分辨率图像时,本方法的示例可以避免渲染全分辨率路径跟踪图像的需要。本发明人已经发现,通过使用低分辨率图像并在每像素的射线数量和/或每条射线的反弹数量方面投入计算工作,而不是渲染更多数量的像素,可以更有效地实现可比较的结果。换句话说,计算工作更好地投入在产生噪声较少的低分辨率图像和/或更接近光传输的近似,而不是产生噪声更大或更近似的全分辨率图像。
有噪图像(i)可包括场景中的间接照明,或者(ii)可包括环境遮挡图像。
任选地,有噪图像仅由间接照明组成。此处,“直接”照明是指在到达虚拟相机/观察者之前与单个对象交互(相交)的射线。这意味着光线直接从光源行进到对象(或者等效地,从对象跟踪到光源),然后直接从对象行进到虚拟相机。因此,对象被光源“直接”照亮。相比之下,“间接”照明是指已经与光源和虚拟相机之间的至少两个对象交互(相交)的光线。例如,光线可以被第一对象朝向第二对象反射,并且可以被第二对象朝向虚拟相机反射。直接照明图像不包含关于场景中对象的表面反射的任何信息。间接照明图像不包含任何关于“最靠近”虚拟相机的对象的表面反射的信息,这意味着光线在其从光源到相机的路径上与之交互的最终表面。然而,一般来说,间接照明图像确实包含关于“更靠近”光源的表面的颜色的信息,因为光线与这些有色表面的交互将影响落在“最靠近”对象上的间接照射的颜色。可以在去噪之前或之后组合直接照明和间接照明。例如,可以使用射线跟踪来对直接照明图像进行建模。它通常是低噪声或无噪声的。间接照明通常比直接照明噪声更大。
在一些示例中,有噪图像可以包括射线跟踪的环境遮挡图像。这可以提供对间接照明的近似(忽略光源的位置和强度)。
去噪图像可以是去噪间接照明图像或去噪环境遮挡图像,并且该方法还可包括:获得直接照明图像;以及将去噪图像与直接照明图像组合以产生全局照射图像。
组合可以包括对去噪图像和直接照明图像求和。在该示例中,直接照明图像在去噪后与间接照明图像(或环境遮挡图像)组合。应当理解,如果有噪图像包括环境遮挡图像,则全局照射图像将包含对全局照射的近似。
获得直接照明图像可以包括通过射线跟踪对其进行渲染或者通过光栅化对其进行渲染。在所述射线跟踪中,每条射线可沿着路径投射,正好有一次反弹。通过光栅化渲染直接照明图像可包括利用阴影映射进行渲染。
有噪图像可以是有噪全局照射图像,包括场景中的直接照明和间接照明,由此去噪图像是去噪全局照射图像。
渲染有噪全局照射图像可以包括组合有噪间接照明图像和直接照明图像(例如,对其进行求和)。在该示例中,直接照明图像在去噪之前与间接照明图像组合。替代地,可以通过模拟直接照明和间接照明的路径跟踪来直接渲染有噪全局照射图像。
该方法还可包括将全局照射图像或去噪全局照射图像与表面反射图像组合以产生3D场景的渲染图像。组合可包括将全局照射乘以表面反射。表面反射图像可包括反照率或由反照率组成,包括漫射反照率或镜面反照率。表面反射图像可以通过光栅化来渲染。
引导通道可以通过射线投射或光栅化(以任何组合)来渲染。
获得一个或多个引导通道可以包括通过光栅化进行渲染。例如,低分辨率引导通道可以通过光栅化来渲染,而高分辨率引导通道可以通过射线投射或光栅化来渲染。替代地,高分辨率引导通道可以通过光栅化来渲染,而低分辨率引导通道可以通过射线投射或光栅化来渲染。
低分辨率引导通道可以通过第一光栅化轮次以低分辨率进行渲染来获得;并且全分辨率引导通道可以通过第二光栅化轮次以全分辨率进行渲染来获得。
也就是说,低分辨率引导通道和全分辨率引导通道可以单独渲染。替代地,低分辨率引导通道可以通过下采样从全分辨率引导通道生成。然而,本发明人已经发现,可能更有效的是以不同的分辨率渲染引导通道两次,而不是以全分辨率渲染引导通道一次并对其进行下采样。这是因为可以通过渲染引导通道两次来减小存储器访问带宽。不是向/从存储器写入/读取引导通道,而是可以按算法所需以期望分辨率来渲染引导通道。
单个光栅化轮次可具有若干输出。因此,多个引导通道(以及任选地所有引导通道)可通过单个光栅化轮次生成。
引导通道可以包括以下各项中的任一项或者两项或更多项的任何组合:3D场景中对象的深度信息;识别3D场景中的对象的材料的信息;3D场景中对象的表面反射;3D场景中的阴影;以及3D场景中对象的表面法线。
该方法可包括:定义第一图块,定义有噪图像和一个或多个引导通道的相应第一邻接部分,每个第一邻接部分包括第一多个像素;定义第二图块;定义有噪图像和一个或多个引导通道的相应的第二邻接部分,每个第二邻接部分包括第二多个像素;计算一个或多个引导通道中的每个像素与其自身之间的第一外积;以及计算一个或多个引导通道中的每个像素与有噪图像中的对应像素之间的第二外积,其中针对第一图块中的像素,(i)在第二图块之前或(ii)与第二图块并行地计算第一外积和第二外积。
在存在多个引导通道的情况下,这些通道可以被视为形成引导图像,并且可以在引导图像中的每个像素与其自身之间计算第一外积,同时可以在引导图像中的每个像素与有噪低分辨率图像中的对应像素之间计算第二外积。在第二图块之前计算第一图块的外积意味着在开始计算第二图块的外积之前完成第一图块的计算。以这种方式,可以例如由硬件中的单个处理器或单个内核单独和连续地处理图块。并行地计算它们意味着同时单独计算它们。这允许并行处理,特别是在硬件中的不同处理器或内核上。第一图块和第二图块可以是非重叠的。
以这种方式组织处理可以允许更大的数据局部性。这有助于存储器带宽效率—可以将图块中的数据局部高速缓存到执行计算的处理器或内核,这意味着可能需要对外部存储器的更少访问。
该方法还可包括,在渲染有噪图像之后,用非线性量化以量化的低位深度格式对其进行量化,使得将图像的较暗区域量化到相对较大的量化级别密度,并且将图像的较亮区域量化到相对较小的量化级别密度;以及将量化的低位深度格式存储在存储器中,其中该方法任选地还包括,在计算模型的参数之前,从存储器中检索量化的低位深度值并执行逆量化。
此处,图像的暗区域中的量化步长小于图像的亮区域中的量化步长。这允许场景的暗(例如,昏暗的)区域被准确地表示。在非线性量化的一个示例中,量化包括应用平方根函数,随后对平方根函数的输出进行均匀量化。
计算模型的参数任选地包括:计算一个或多个引导通道中的每个像素与其自身之间的第一外积;计算一个或多个引导通道中的每个像素与有噪图像中的对应像素之间的第二外积;模糊第一外积以计算每个局部邻域的第一矩矩阵;模糊第二外积以计算每个局部邻域的第二矩矩阵;以及针对每个局部邻域计算模型的参数(A),包括计算第一矩矩阵的逆矩阵,以及计算逆矩阵和第二矩矩阵的乘积。
此处,应当理解,每个像素由行向量表示。一个或多个引导通道中的每个像素被表示为行向量x;有噪图像中的每个像素由行向量y表示。
“模糊”是指空间平均,例如,在局部邻域上求和,任选地使用加权求和,任选地,其中局部邻域的中心在求和中被给予比局部邻域的外围更大的权重。
任选地,计算模型的参数包括,在计算逆矩阵之前,向第一矩矩阵添加正则化矩阵。正则化矩阵可以包括对角矩阵。正则化矩阵可以帮助避免矩阵求逆中的数值不稳定性。
模糊第一外积任选地包括从第一外积计算第一多尺度金字塔并基于第一多尺度金字塔计算第一矩矩阵;并且/或者模糊第二外积任选地包括从第二外积计算第二多尺度金字塔并基于第二多尺度金字塔计算第二矩矩阵。
多尺度金字塔具有多个级别,其中连续的级别以连续的不同细节级别描述外积。例如,多尺度金字塔可以包括mipmap金字塔或由其组成。mipmap适于例如在图形处理单元(GPU)的固定功能硬件中的有效实现。
模糊外积(即,矩矩阵)可以从金字塔的预先确定级别直接计算。在这种情况下,金字塔的计算可能会停止在该级别。在其他示例中,矩矩阵可以通过使用金字塔的内插来计算。内插可以包括双线性或三线性内插,或其他采样,例如双三次采样。
模糊可以包括水平方向和竖直方向上的可分离滤波。
滤波可以使用中心加权滤波函数,诸如高斯函数。任选地,可分离滤波可以应用于多尺度金字塔的预先确定级别。这可以有助于以降低的计算复杂度有效地实现中心加权滤波(与直接使用中心加权滤波器对外积进行滤波相比)。
这种类型的模糊可应用于第一外积和第二外积中的一者或两者。
模糊可以包括使用各向异性2D滤波器进行滤波。所谓各向异性,是指滤波器具有长轴和垂直于长轴的短轴,并且沿长轴比短轴延伸得更远。轴可以与水平方向和竖直方向对准,或者轴可以独立于水平方向和竖直方向。
一个或多个引导通道可以包括3D场景中的对象的表面法线,并且模糊可以包括:对于每个局部邻域,基于邻域中心处的对象的表面法线来确定2D滤波器的长轴和短轴;基于短轴的长度来选择多尺度金字塔的级别;以及沿着长轴对多尺度金字塔的所选择的级别进行采样。
这可以提供计算有效的方式来使模糊适应场景内容,特别是通过根据被采样的表面的取向来调整模糊。
在一些示例中,模糊可以包括IIR滤波。
在一些示例中,模糊可以包括用运行箱式滤波器进行滤波。
该方法可以包括:定义第一外积图块,定义第一外积的第一邻接部分和第二外积的相应第一邻接部分,每个第一邻接部分包括第一多个像素;以及定义第二外积图块,定义第一外积的第二邻接部分和第二外积的相应第二邻接部分,每个第二邻接部分包括第二多个像素,其中针对第一图块,(i)在第二图块之前或(ii)与第二图块并行地计算第一矩矩阵和第二矩矩阵。
第一外积图块和第二外积图块可以是重叠的图块。这是因为,一般来讲,外积的模糊将不会分成非重叠的图块。重叠的程度可以取决于用于模糊的滤波器的大小。
该方法还可以包括对第一矩矩阵和第二矩矩阵中的一者或两者进行归一化和/或正则化。这可以提高矩阵求逆的稳定性。在这方面,归一化可以补充正则化矩阵的使用。归一化可以包括在逆计算之前利用矩矩阵中的平均值和标准偏差信息来对矩进行归一化。这可以提高矩阵求逆的数值稳定性,从而提高视觉质量。在一些示例中,一个或两个矩阵可以被归一化为具有零平均值和恒定标准偏差(诸如等于一的标准偏差)。
还提供了被配置为渲染3D场景的图像的图形处理单元,该图形处理单元包括:
第一渲染块,该第一渲染块被配置为渲染有噪图像;
第二渲染块,该第二渲染块被配置为渲染一个或多个引导通道;
模型拟合块,该模型拟合块被配置为针对多个局部邻域中的每一者,计算将有噪图像近似为一个或多个引导通道的函数的模型的参数;以及
模型应用块,该模型应用块被配置为针对多个局部邻域中的每一者,应用所计算的参数以产生去噪图像,
其中有噪图像和一个或多个引导通道中的至少一者以量化的低位深度格式存储。
模型应用块可被配置为将所计算的参数应用于一个或多个引导通道(即,用于计算参数的相同引导通道)。替代地,在一些示例中,模型应用块可被配置为将计算的参数应用于一个或多个引导通道的第二集,对应于用于计算参数的那些引导通道。
有噪图像和/或一个或多个引导通道可以以量化的低位深度格式存储在存储器中。
第一渲染块可被配置为通过路径跟踪来渲染有噪图像。
第二渲染块可被配置为通过光栅化或射线跟踪来渲染一个或多个引导通道。
有噪图像可包括场景中的间接照明或者可以包括环境遮挡图像,其中去噪图像包括间接照明图像或去噪环境遮挡图像,并且其中图形处理单元任选地还包括:第四渲染块,该第四渲染块被配置为渲染直接照明图像;以及组合块,该组合块被配置为将去噪图像与直接照明图像组合以产生全局照射图像。
第四渲染块可被配置为通过射线跟踪来渲染直接照明图像。
有噪图像可以是有噪全局照射图像,包括场景中的直接照明和间接照明,由此去噪图像是去噪全局照射图像。
第二渲染块可被配置为渲染表面反射图像,并且图形处理单元还可以包括乘积块,该乘积块被配置为计算全局照射图像或去噪全局照射图像和表面反射图像的乘积,从而产生3D场景的渲染图像。
表面反射图像可以通过光栅化来渲染。
还公开了一种渲染3D场景的图像的方法,该方法包括:
渲染有噪低分辨率图像;
获得一个或多个低分辨率引导通道并获得一个或多个对应全分辨率引导通道;以及
对于多个局部邻域中的每一者:
计算将有噪低分辨率图像近似为一个或多个低分辨率引导通道的函数的模型的参数;以及
将所计算的参数应用于一个或多个全分辨率引导通道以产生全分辨率去噪图像。
还公开了被配置为渲染3D场景的图像的图形处理单元,该图形处理单元包括:
第一渲染块,该第一渲染块被配置为渲染有噪低分辨率图像;
第二渲染块,该第二渲染块被配置为渲染一个或多个低分辨率引导通道;
第三渲染块,该第三渲染块被配置为渲染一个或多个全分辨率引导通道,每个全分辨率引导通道对应于相应的低分辨率引导通道;
模型拟合块,该模型拟合块被配置为针对多个局部邻域中的每一者,计算将有噪低分辨率图像近似为一个或多个低分辨率引导通道的函数的模型的参数;以及
模型应用块,该模型应用块被配置为针对多个局部邻域中的每一者,将所计算的参数应用于一个或多个全分辨率引导通道以产生全分辨率去噪图像。
还公开了一种渲染3D场景的图像的方法,该方法包括:
渲染有噪图像;
获得一个或多个引导通道;以及
对于多个局部邻域中的每一者:
计算将有噪图像近似为一个或多个引导通道的函数的模型的参数;以及
应用所计算的参数来产生去噪图像,
其中计算模型的参数包括:
定义第一图块,定义有噪图像和一个或多个引导通道的相应第一邻接部分,每个第一邻接部分包括第一多个像素;
定义第二图块,定义有噪图像和一个或多个引导通道的相应第二邻接部分,每个第二邻接部分包括第二多个像素;
计算一个或多个引导通道中的每个像素与其自身之间的第一外积;以及
计算一个或多个引导通道中的每个像素与有噪图像中的对应像素之间的第二外积,
其中针对第一图块中的像素,(i)在第二图块之前或(ii)与第二图块并行地计算第一外积和第二外积。
还公开了一种渲染3D场景的图像的方法,该方法包括:
渲染有噪图像;
获得一个或多个引导通道;以及
对于多个局部邻域中的每一者:
计算将有噪图像近似为一个或多个引导通道的函数的模型的参数;以及
应用所计算的参数来产生去噪图像,
其中计算模型的参数包括:
计算一个或多个引导通道中的每个像素与其自身之间的第一外积;
计算一个或多个引导通道中的每个像素与有噪图像中的对应像素之间的第二外积;
模糊第一外积以计算每个局部邻域的第一矩矩阵;
模糊第二外积以计算每个局部邻域的第二矩矩阵;以及
针对每个局部邻域的计算模型的参数,包括计算第一矩矩阵的逆矩阵,以及计算逆矩阵和第二矩矩阵的乘积,
该方法包括,当模糊第一外积和第二外积时:
定义第一外积图块,定义第一外积的第一邻接部分和第二外积的相应第一邻接部分,每个第一邻接部分包括第一多个像素;以及
定义第二外积图块,定义第一外积的第二邻接部分和第二外积的相应第二邻接部分,每个第二邻接部分包括第一多个像素,
其中针对第一图块,(i)在第二图块之前或(ii)与第二图块并行地计算第一矩矩阵和第二矩矩阵。
还公开了被配置为渲染3D场景的图像的图形处理单元,该图形处理单元包括:
第一渲染块,该第一渲染块被配置为渲染有噪图像;
第二渲染块,该第二渲染块被配置为渲染一个或多个引导通道;
模型拟合块,该模型拟合块被配置为针对多个局部邻域中的每一者,计算将有噪图像近似为一个或多个引导通道的函数的模型的参数;以及
模型应用块,该模型应用块被配置为针对多个局部邻域中的每一者,应用所计算的参数以产生去噪图像,
其中模型拟合块被配置为当计算参数时:
定义第一图块,定义有噪图像和一个或多个引导通道的相应第一邻接部分,每个第一邻接部分包括第一多个像素;
定义第二图块,定义有噪图像和一个或多个引导通道的相应第二邻接部分,每个第二邻接部分包括第二多个像素;
计算一个或多个引导通道中的每个像素与其自身之间的第一外积;以及
计算一个或多个引导通道中的每个像素与有噪图像中的对应像素之间的第二外积,
其中针对第一图块中的像素,(i)在第二图块之前或(ii)与第二图块并行地计算第一外积和第二外积。
还公开了被配置为渲染3D场景的图像的图形处理单元,该图形处理单元包括:
第一渲染块,该第一渲染块被配置为渲染有噪图像;
第二渲染块,该第二渲染块被配置为渲染一个或多个引导通道;
模型拟合块,该模型拟合块被配置为针对多个局部邻域中的每一者,计算将有噪图像近似为一个或多个引导通道的函数的模型的参数;以及
模型应用块,该模型应用块被配置为针对多个局部邻域中的每一者,应用所计算的参数以产生去噪图像,
其中模型拟合块被配置为当计算参数时:
计算一个或多个引导通道中的每个像素与其自身之间的第一外积;
计算一个或多个引导通道中的每个像素与有噪图像中的对应像素之间的第二外积;
模糊第一外积以计算每个局部邻域的第一矩矩阵;
模糊第二外积以计算每个局部邻域的第二矩矩阵;并且
针对每个局部邻域的计算模型的参数,包括计算第一矩矩阵的逆矩阵,以及计算逆矩阵和第二矩矩阵的乘积,
其中模型拟合块被配置为当模糊第一外积和第二外积时:
定义第一外积图块,定义第一外积的第一邻接部分和第二外积的相应第一邻接部分,每个第一邻接部分包括第一多个像素;并且
定义第二外积图块,定义第一外积的第二邻接部分和第二外积的相应第二邻接部分,每个第二邻接部分包括第一多个像素,
其中针对第一图块,(i)在第二图块之前或(ii)与第二图块并行地计算第一矩矩阵和第二矩矩阵。
还提供了一种图形处理系统,该图形处理系统被配置为执行如上概述的方法,并且/或者包括如上概述的图形处理单元。所述图形处理系统可以在集成电路上的硬件中体现。
还提供了一种使用集成电路制造系统来制造如上概述的图形处理系统的方法。
还提供了一种使用集成电路制造系统制造如上概述的图形处理系统的方法,该方法包括:使用布局处理系统对图形处理系统的计算机可读描述进行处理,以生成体现图形处理系统的集成电路的电路布局描述;以及使用集成电路生成系统,根据电路布局描述来制造图形处理系统。
进一步提供了一种计算机可读代码,该计算机可读代码被配置为在代码运行时使如上概述的方法得以执行;以及任选地在上面对计算机可读代码进行编码的计算机可读存储介质。
还提供了集成电路定义数据集,当在集成电路制造系统中进行处理时,该集成电路定义数据集配置集成电路制造系统以制造如上概述的图形处理系统。
更进一步提供了一种计算机可读存储介质(任选地为非暂态的),该计算机可读存储介质上存储有如上概述的图形处理系统的计算机可读描述,该计算机可读描述在集成电路制造系统中处理时使集成电路制造系统制造体现该数据处理系统的集成电路。
还提供了一种计算机可读存储介质(任选地为非暂态的),该计算机可读存储介质上存储有如上概述的图形处理系统的计算机可读描述,该计算机可读描述在集成电路制造系统中处理时使集成电路制造系统执行以下运算:使用布局处理系统对图形处理系统的计算机可读描述进行处理,以生成体现该图形处理系统的集成电路的电路布局描述;并且使用集成电路生成系统根据电路布局描述来制造图形处理系统。
还提供了一种集成电路制造系统,该集成电路制造系统被配置为制造如上概述的图形处理系统。
还提供了一种集成电路制造系统,包括:计算机可读存储介质(任选地为非暂态的),该计算机可读存储介质上存储有如上概述的图形处理系统的计算机可读描述;布局处理系统,该布局处理系统被配置为处理计算机可读描述,以生成体现该图形处理系统的集成电路的电路布局描述;以及集成电路生成系统,该集成电路生成系统被配置为根据电路布局描述来制造图形处理系统。
布局处理系统可被配置为确定从集成电路描述导出的电路的逻辑部件的位置信息,以生成包含该图形处理系统的集成电路的电路布局描述。
如对本领域的技术人员将显而易见,上述特征可以适当地组合,并且可与本文中所描述的示例的各方面中的任一方面进行组合。
附图说明
现在将参考附图详细描述示例,在附图中:
图1示出示出了根据示例的渲染方法的流程图;
图2是根据示例的用于渲染的图形处理单元的框图;
图3更详细地示出了图1的模型拟合步骤;
图4示出了图1所示方法的一部分的变型,其使用基于图块的处理;
图5示出了使用基于图块的处理的图1所示方法的一部分的另一个变型;
图6A示出图3所示的模型拟合方法的变型;
图6B和图6C示出了根据示例的mipmap金字塔的创建;
图7示出了图6A中模糊步骤的示例;
图8A示出了各向异性模糊的基本原理;
图8B示出了图6A中模糊步骤的另一个示例;
图9示出了根据示例的数据的量化和逆量化;
图10是示出了根据另一个示例的图1的方法的替代方案的流程图;
图11示出其中实现图形处理单元的图形处理系统;并且
图12示出用于生成体现图形处理系统的集成电路制造系统。
附图示出了各种示例。技术人员将了解,附图中所示出的元件边界(例如,框、框的组,或其他形状)表示边界的一个示例。在一些示例中,情况可能是一个元件可以被设计为多个元件,或者多个元件可以被设计为一个元件。在适当的情况下,贯穿各附图使用共同的附图标记来指示类似的特征。
具体实施方式
借助于示例呈现以下描述,以使得本领域的技术人员能够制造和使用本发明。本发明不限于本文中所描述的实施方案,并且对所公开实施方案的各种修改对于本领域的技术人员将显而易见。
现在将仅借助于示例来描述实施方案。
用于渲染的各种技术在计算机图形领域是已知的。“渲染”,也称为图像合成,是指生成虚拟3D场景的图像的过程,就像虚拟相机在特定位置和取向处观看一样。以三维对场景中的对象的几何形状进行建模,并且渲染过程近似/模拟光线如何从光源与所建模的几何形状的交互到达虚拟相机。
路径跟踪、射线跟踪和光栅化是三种渲染技术。术语“射线跟踪”和“路径跟踪”在文献中有时可互换使用。为了更加清楚,在本上下文中,我们将首先定义我们用这些术语表示的含义。
如本文所用,术语“路径跟踪”是指随机采样方法,其模拟光在3D场景中的传输。在根据本公开的一些示例中,路径跟踪能够通过对光线和场景中的对象之间的所有类型的交互进行建模来近似全局照射,潜在地包括更高阶的反射(第二次反弹和第三次反弹等)。然而,由于其随机性质,路径跟踪固有地有噪声。注意,路径跟踪不限于近似全局照射。“射线跟踪环境遮挡”是一种路径跟踪,它计算3D场景中的每个点暴露于环境照明的程度(而不是照此计算全局照射)。射线跟踪环境遮挡可以被认为是间接照明的粗略近似。
如本文所用,术语“射线跟踪”是指通过对光线和对象之间的某种交互进行建模来模拟3D场景中的光传输的确定性、无噪声的方法。射线跟踪通常仅确定直射光、反射、折射等,而不依赖于与多个对象交互的复杂光路。
术语“射线投射”是指一种特定种类的射线跟踪,其中射线沿着单一的直接路径投射,没有反射或折射。
通过路径跟踪和射线跟踪进行渲染不同于通过“光栅化”进行渲染。在光栅化中,3D场景几何形状被映射到2D屏幕空间中的像素,而不考虑3D场景中光的物理传输。
渲染流水线
现在将参考图1和图2描述渲染图像的第一示例。图1是示出了根据示例的渲染3D场景的图像的方法的流程图。图2是示出被配置为执行图1的方法的图形处理单元的功能块的框图。图形处理单元(GPU)包括第一渲染块、第二渲染块、第三渲染块和第四渲染块。在该示例中,第一渲染块是路径跟踪块210。第二渲染块和第三渲染块均由光栅化块240提供。第四渲染块是射线跟踪块260。GPU还包括模型拟合块220、上采样器230、模型组合块250、求和块270和乘积块280。上采样230和模型组合块250一起构成模型应用块,负责应用模型。求和块270作为组合块操作,将由模型的应用产生的去噪图像与由第四渲染块260产生的图像组合。
在步骤110中,路径跟踪块210通过路径跟踪产生低分辨率间接照明图像。在步骤112中,光栅化块240在第一光栅化轮次中产生低分辨率引导通道。间接照明图像和引导通道彼此对应,因为它们都是针对3D场景中的相同视点渲染的。它们也以相同(低)的分辨率渲染。由于路径跟踪的随机性质,间接照明图像是有噪声的。因为光栅化是确定性的,所以引导通道是无噪声的。在本示例中,低分辨率引导通道集包括深度图像、表面反射图像和表面法线图像。然而,低分辨率引导通道集不需要包括所有这些图像(例如,可能不包括表面反射图像)。任选地,可以包括其他引导通道,诸如识别场景中对象的材料的图像和/或示出场景中阴影的图像。
低分辨率图像通常是期望的全分辨率图像的大小的一部分。例如,它们可以在每个维度上(即,在高度和宽度上)小二分之一,使得它们是全分辨率图像的面积和分辨率的四分之一。在一些示例中,它们可能仍是全分辨率图像的较小部分。例如,低分辨率图像可以在每个维度上小四分之一,使得它们是全分辨率图像的面积和分辨率的十六分之一。
该渲染方法将部分基于引导图像(包括多个引导通道)和有噪间接照明图像来产生全分辨率渲染图像。低分辨率图像(即,引导图像和间接照明图像)被传递到模型拟合块220。在步骤120中,模型拟合块220为低分辨率图像的每个像素拟合仿射模型的参数,使得它可以用于将低分辨率引导图像映射到低分辨率间接照明图像上。对于每个像素,参数估计检查以像素为中心的局部邻域,并且在该局部邻域内将有噪间接照明图像近似为引导通道和标量偏移的线性组合。这为局部邻域中的每一者(即,为像素中的每个像素)产生模型参数集。
在步骤130中,上采样器230将模型参数上采样到全分辨率。在步骤140中,光栅化块240在第二光栅化轮次中渲染全分辨率引导通道集。全分辨率引导通道与低分辨率引导通道一一对应。实际上,在一些示例中,低分辨率引导通道可以通过对全分辨率引导通道进行子采样来生成。然而,本发明人已经发现,通过在两次光栅化轮次中分别渲染低分辨率引导通道和全分辨率引导通道,可以节省存储器访问带宽。这可以避免对存储全分辨率多通道引导图像并随后从存储器中检索其以进行下采样的需要。在一些硬件架构和应用中,存储器带宽可能是限制因素;因此,减少存储器带宽是非常期望的。使用低分辨率引导通道的另一个优点是减少了产生(低分辨率)矩图像所需的操作次数,因为在产生矩图像时将需要求和的矩阵更少。
全分辨率引导通道被提供给模型组合块250。如上所述,本示例中的引导通道包括表面反射图像。全分辨率表面反射图像被附加地提供给乘积块280。在表面反射图像不被用作引导通道的其他示例中,表面反射图像仍然产生(即,以及引导通道),使得它可以被提供给乘积块280。
在步骤150中,模型组合块将来自上采样器230的上采样模型参数与由光栅化块240产生的全分辨率引导通道组合。这涉及将每个像素生成为全分辨率引导通道的线性组合,其中线性组合由该像素的模型参数确定。在本示例中,由于要去噪的图像是有噪间接照明图像,所以模型组合块250的输出是全分辨率去噪间接照明图像。
在步骤160中,射线跟踪块260通过射线跟踪渲染直接照明图像。如上文所解释的,射线跟踪是确定性的。这样,与通过路径跟踪渲染110间接照明图像相比,射线跟踪固有地无噪声,并且在计算上较不密集。作为这种较低复杂度的结果,以全分辨率渲染直接照明图像不会施加大的计算负担。
在步骤170中,求和块270通过对由模型组合块250提供的去噪间接照明图像与由射线跟踪块260提供的直接照明图像进行求和来组合它们。求和的结果是全分辨率下的全局照射图像。在步骤180中,乘积块280将全分辨率表面反射图像与全分辨率全局照射图像相乘(逐像素)。这将在全局照射条件下产生场景的最终渲染图像。
在步骤120中创建的仿射模型基于He等人(Kaiming He,Jian Sun和Xiaoou Tang,“Guided Image Filtering”,Daniilidis K.、Maragos P.、Paragios N.(编辑)ComputerVision–ECCV 2010.Lecture Notes in Computer Science,第6311卷,Springer.https:// doi.org/10.1007/978-3-642-15549-9_1)的引导滤波方法。对于有噪输入图像的每个局部邻域Y,该方法试图找到将引导图像的局部邻域X最佳映射到有噪输入图像的对应局部邻域Y的仿射变换A。这些局部邻域可以被表示为矩阵,并且“最佳”变换被定义为最小二乘最佳拟合。也就是说,发现解A使矩阵方程最小化,其中并且并且N是局部邻域中的像素数量,G是引导通道的数量(包括偏移项),并且M是输出通道的数量。应当理解,维度的标记基本上是任意的。
如在本示例中,在引导图像中可以存在多个引导通道。在这种情况下,模型A是具有多个输入信号的仿射变换。根据本公式(并且与He等人的公式不同),通过添加由A矩阵中具有对应值的一的阵列组成的附加引导通道,将偏移项直接包括在矩阵乘法中。一的该附加引导通道是恒定的,因此在框220中可以是隐式的,从而不浪费传输它的带宽。因此,表示引导图像通道的矩阵X如下构成
此处,每行代表以感兴趣的像素为中心的局部邻域中的像素。每列代表整个多通道引导图像的一个通道。最小二乘优化问题被修改以包括正则化,这得出更平滑的结果并降低对数值不稳定的敏感性:
此处,N是标量,为了与He等人的公式一致而引入。U是一个对角矩阵(diagonalmatrix),其被构造成使得对应于X中的一的通道的条目为零:
U=diag(0,∈0,∈1,...)。
数字是∈正的。合适的示例性值为约0.0001。相对于A最小化E具有闭合形式解:
A=(XTX+NU)-1XTY。
去噪像素由向量矩阵乘积xA给出,其中x是像素(X矩阵的一行)的结构向量,并且A是从目标像素的邻域构建的模型。通过将引导图像与每个像素处的对应局部模型参数A相乘来得出去噪输出。如图3所示,模型参数A的计算可以分成几个阶段。第一阶段涉及计算项XTX和XTY,它们有时被称为“矩矩阵”或简称为“矩”。这继而可以分为两个阶段。首先,执行每像素外积计算。其次,在局部邻域(“模糊”)上对外积求和,以产生矩矩阵。尽管上面的方程(其解释了如何为给定的局部邻域计算矩阵A)没有指出,但是可以表明,在计算外积项之后在空间上模糊外积项等同于显式地构造X和Y矩阵并执行产生矩矩阵所需的矩阵乘法。模型拟合块220对外积的计算由图3中的步骤122表示。我们将步骤122的输出称为第一外积xTx和第二外积xTy。在步骤124中,模型拟合块220模糊外积以产生矩矩阵。我们将模糊步骤的输出称为第一矩矩阵XTX和第二矩矩阵XTY。模糊可以以各种不同的方式来执行,并且将在下面进一步详细描述。
在步骤124中模糊矩之后,模型拟合块220添加正则化并求解最小二乘问题。这涉及对正则化的第一矩矩阵求逆,然后将矩阵求逆的结果乘以第二矩矩阵,如上面的方程所指示。步骤126的输出是低分辨率图像的每个像素的模型矩阵。在He等人的方法中,模型参数在空间上进一步模糊。然而,本发明人发现这是不必要的,并且实际上在许多情况下会导致较低的图像质量。因此,该方法在不模糊模型参数的情况下进行。
如上文所解释的,模型参数在步骤130中被上采样器230上采样。这将它们转换为全分辨率。然后将它们(在步骤150中)与由光栅化单元产生的全分辨率引导图像组合。如前所讨论的,该操作实现了公式Y=XA。
平铺
图4和图5中示出了可以引入模型拟合120的一些任选附加步骤。模型拟合中涉及的计算在某种程度上是计算密集和数据密集的。本发明人已经认识到,以基于图块的方式执行模型拟合可能是有利的。这种方法涉及将数据分解成图块(一般来讲,可能是重叠或非重叠的)并分别处理每个图块。这具有若干潜在优点。首先,可以选择图块的大小,使得执行一个图块的计算所需的所有数据可以存储在GPU中的片上存储器中。这可以避免对从外部存储器读取数据以及向外部存储器写入数据的需要,这通常是比访问片上存储器更慢的操作。其次,当GPU中有多个处理器或内核可用时,将处理划分为图块的能力有助于并行实现。然而,应注意,由于第一个优点,平铺独立于并行化是有用的。即使由单个内核或单个处理器连续处理图块,较大的数据局部性和减少的存储器存取带宽的效果仍可促进增加的处理速度和/或减少的功率消耗。
平铺可以以至少两种方式应用。如图4所示,可以在外积的计算中使用平铺。在步骤115中,GPU将低分辨率有噪间接照明图像和引导图像划分成图块。然后,在步骤122a中,作为步骤122的变型,独立于其他图块计算每个图块的外积。在步骤115中创建的图块是非重叠的,因为外积计算所需的数据从每个图块到下一个图块是不同的。这是因为外积的计算固有地是逐像素的操作。
替代地或附加地,可以在模糊中使用平铺,这从外积计算矩矩阵。这在图5中示出。在步骤122(或步骤122a)中生成的外积在步骤125中被划分成重叠的图块。在步骤124a中,模糊被独立地应用于每个图块。应注意,由于用于创建模型的局部邻域的空间范围,用于模糊的图块必然在一定程度上重叠。这些局部邻域反映在用于模糊的滤波器核的大小中。
模糊
模糊(步骤124或步骤124a)可以以多种方式进行。模糊的目的是对以感兴趣的像素为中心的局部邻域上的外积xTx和xTy求和,以生成矩矩阵XTX和XTY。任选地,该和可以是加权和,通常强调每个邻域的中心中的像素的贡献,而不强调邻域的外围像素的贡献。有多种方式来有效地实现这一点。在一个示例中,通过重复使用重叠区域之间的计算并利用快速图像滤波技术来加速矩矩阵的计算。设X中的每个像素由行向量x表示,而Y中的每个像素由行向量y表示。针对每个输出位置计算xTx和xTy,即外积。考虑整个图像,这给出了具有示例性维度[H,W,N,N]和[H,W,N,M]的4D张量,其中H和W是图像高度和宽度,并且N和M分别是X和Y中的通道数量。在这些张量的前两个维度上卷积2D箱式滤波器。为了效率,可以使用积分图像或可分离的水平和竖直核来实现该箱式滤波器。这可被示为等同于构建矩矩阵:
此处,{X}i,j是矩阵X的第i行和第j列上的元素。Xp,:是X的第p行的行向量。X:,i是X的第i列的列向量。以这种方式,矩矩阵XTX可被写为X的行的外积之和。由于局部邻域之间的重叠以及线性滤波器可被廉价地计算的事实,以这种方式构造它是有效的。类似的公式应用于第二矩矩阵XTY。
上述滤波器实现了简单的箱式滤波。这可以以多种方式加速。一种选择是使用积分图像(也称为求和面积表)来预先计算外积的和,直到并包括低分辨率图像中的每个像素。然后,基于矩形的四个角处的积分值,可以从积分图像导出任意期望面积中的外积之和。
另一种选择是使用所谓的“运行箱式滤波器”。这基于如下原理工作:通过将已经进入窗口的值相加并且减去已经从窗口中落出的值,可以针对定义局部邻域的窗口的每次移位递增地计算外积的连续和。通过参考简单的一维示例可以更好地理解这一点。假设期望沿着一行像素a、b、c、d、e计算三像素箱式滤波器。第一和是a+b+c。第二和是b+c+d。这可以通过取前面的值(a+b+c),加上d(它进入窗口)并减去a(它从窗口落出)来计算。这得出了计算(a+b+c)+d-a=b+c+d。该过程在下一步骤重复:(b+c+d)+e-b=c+d+e。应注意,虽然这不改变在窗口的每次移位时的计算数量,但是对于该简化的三像素示例,它对于较大的箱式滤波器具有相当大的益处。无论滤波器大小如何,在每次移位时,都可以通过单个减法和单个加法计算出所需的总和。上面讨论的可分离的1-D水平和竖直箱式滤波的可能性可以与运行箱式滤波器的使用组合。也就是说,运行箱式滤波器可以以两个维度单独实现。
尽管箱式滤波器计算起来是高效的,但是它给予局部邻域中的所有像素相等的权重。通过给予靠近邻域中心的像素比边缘处的像素更多的影响,可以获得更好的结果。挑战是找到实现这种更复杂种类的滤波的有效方式,以实现计算效率和图像质量之间的良好平衡。
一种提供良好潜力来协调这些竞争需求的方法是使用mipmap来实现模糊。这样的mip映射在计算机图形文献中是已知的,它已经被应用于纹理采样的环境中。它使用缩放空间金字塔,其中金字塔的每个级别(在本领域中有时称为“链”)是通过对前一级别进行下采样而产生的。在一些示例中,金字塔的每个级别都是通过2×2箱式滤波器从前一级别产生的。这可以通过对前一级别进行双线性重采样来递归计算。本发明人已经认识到,可以针对外积的每个通道计算mipmap金字塔,然后这些mipmap可以用于支持模糊的有效实现。有时,没有必要计算mipmap金字塔的所有级别(如下面更详细讨论的)。这可以节省时间、功率、存储器和带宽。
图6A示出了图3的方法的变型,结合了mip映射的使用。在步骤122中,模型拟合块220计算外积(如前所述);并且在步骤322中,作为模糊过程的一部分,该模型拟合块从外积创建mipmap。该过程在图6B中示出。在金字塔的底部级别处的是原始外积张量10(为了简单起见,示出为2D阵列,尽管它实际上是更高维的张量)。这在空间上(例如,双线性)下采样,以产生金字塔的第二级别12。第二级别被下采样以产生第三级别14,并且这继而被下采样以产生第四级别和最终级别16。图6C是从底部级别产生第二级别时双线性下采样的图示。原始外积阵列的四个像素10-1至10-4被平均以产生金字塔的第二级别的一个像素12-1。这对于原始外积阵列的每个相邻的2×2像素块重复。因此,金字塔的每个级别大约是前一级别的大小的四分之一。通常,该过程可以继续迭代,直到一个或两个空间维度达到1,或者直到已经达到足够低的分辨率。
一旦已经针对每个外积计算了mipmap,就通过选择金字塔的相关级别并适当采样以获得外积的模糊版本来实现模糊操作(步骤324)。在一些示例中,模糊仅包括在mipmap金字塔的适当级别处的采样操作。但在其他示例中,模糊可任选地包括将滤波器应用于从mipmap检索的样本。由于较高金字塔级别的分辨率降低,因此与将相同大小的滤波器直接应用于外积的情况相比,mipmap能够以较少数量的计算来实现滤波。在步骤126中,从模糊步骤324输出的模糊矩如前所述被处理。
现在将描述基于mipmap的实现的一些示例。通常,基于我们希望构建的模糊滤波器核的大小来选择一个或多个mipmap级别。在一些示例中,如上所述,来自mipmap的各个样本可以直接用于产生模糊矩。这将实现相对简单的方形模糊滤波器,其有效核大小对应于所选择的金字塔的级别。应注意,如果预先固定了核大小,那么实际上只需要mipmap金字塔的单个级别。mipmap的构建可以在该级别处终止。替代地,可以直接生成所需的单个级别(即,不需要递归)。在其最简单的形式中,可以基于最近邻采样来执行模糊,尽管这可能具有潜在混叠伪影形式的缺点。
在其他示例中,mipmap金字塔可以在单个细节级别处被双线性地采样。在另外的其他示例中,可以使用三线性采样在级别之间对mipmap进行采样。这涉及在两个连续的细节级别处进行双线性采样,并在结果之间进行线性内插。在另外的其他示例中,可以使用双三次采样对mipmap进行采样。双线性采样、三线性采样和双三次采样通常用于mipmap的纹理采样应用,并且因此,这些操作可能会在一些GPU上进行硬件加速。这可以用来进一步加速模糊计算。
如果需要,然后可以(通过任何选定的采样方式)对从mipmap提取的样本进行(进一步)滤波,以产生模糊矩,通常使用小的低通滤波器核。图7示出了以这种方式进行模糊324的一个示例。从mipmap金字塔的预先确定级别提取样本,并且首先用水平高斯滤波器402进行滤波,其次用竖直高斯滤波器404进行滤波。以这种方式使用两个连续的、正交的一维滤波器的可分离滤波可以进一步降低计算复杂度,并增加速度。高斯核的使用是对邻域中心的样本给予比边缘处的样本更大的权重的一个示例。其他示例也是可能的。例如,可以使用无限脉冲响应(IIR)滤波器来代替高斯滤波器。
图8A和图8B示出了由mipmap辅助的模糊的另一个示例。本发明人已经发现,在执行模糊时考虑场景内容可能是有利的。特别地,考虑表面相对于虚拟相机的取向是有利的。其原因在图8A中示出。当场景中的平面平行于图像平面时,图像平面上的圆形区域25映射到场景中的平面上的圆形区域20a。然而,当场景中的平面不平行于图像平面时,图像平面上的相同圆形区域25映射到场景中的平面上的椭圆形区域20b。考虑到这一点对于模糊是有利的。不是使用在整个图像中各向同性(高度=宽度)的模糊核,而是核的形状可以是各向异性的(高度≠宽度),并且可以局部地适应于正在其上执行模糊的表面的取向。目的是确保核到场景上的投影在场景空间中近似恒定且各向同性。
图8B示出了在步骤322中创建的mipmap的帮助下应用该原理的方法。在步骤502中,模型拟合块220根据每个像素位置处的场景内容,确定图像平面上滤波器覆盖区的适当长轴和短轴的大小和取向。这是从屏幕空间表面法线(例如,可从相关的引导通道获得)和滤波器核大小的组合中获得的。长轴和短轴不需要轴对准(即,水平和竖直)。各向异性滤波将基于所确定的长轴和短轴来执行,如以下示例中所述。在步骤504中,模型拟合块220例如通过计算log2(以像素为单位的短轴长度)来选择mipmap金字塔中的适当细节级别。一般来说,这不一定是整数值。可以将其四舍五入为最接近的整数,也可以使用三线性采样来获得金字塔级别之间的细节级别。在步骤506中,模型拟合块220在步骤504中选择的细节级别处识别沿着长轴长度的点。它通过适当的采样,以指定的细节级别从mipmap中提取外积样本。这可以是例如点采样、双线性采样或双三次采样。步骤506的输出是沿着长轴的采样点的平均值。对每个像素重复这一过程。在一些示例中,平均值可以是加权平均值,在核的中心附近具有较大的权重。加权平均值的权重不需要总和为一。
当然,应当理解,使用mipmap/多尺度金字塔只是有效地实现模糊的一种方式。其他有效的滤波方法也是可能的。例如,适于有效地实现模糊的IIR滤波器在GB2541179A中描述。
归一化
如上文所解释的,在矩阵求逆之前,正则化被添加到矩矩阵XTX,以便增加数值稳定性。然而,发明人已经发现,不完全依赖正则化来避免数值不稳定性是有利的。更好质量的渲染结果可以通过(替代地或附加地)归一化矩矩阵来实现。在本示例中,两个矩矩阵均是归一化的,因此它们看起来好像是从具有零平均值和单位标准偏差的数据中生成的。这是通过从原始矩矩阵中提取平均值和标准偏差统计来实现的。第一矩矩阵XTX可被划分为:
归一化版本可以通过以下计算来提取:
其中
此处,μ是平均值,并且σ是数据X的标准偏差。类似地,第二矩矩阵XTY可以重写为:
从中可以将归一化版本提取为:
已经发现,归一化有助于减少场景中结构边界上不必要的模糊(例如,有助于避免对象周围的“发光”),以及减少来自不良条件矩阵的噪声。
量化
可通过量化用于传输到GPU以及从GPU传输的数据来进一步减少存储器方位带宽和存储。虽然以浮点格式执行计算可能是有益的,但是以低位深度整数格式存储和传输数据也是可能的。这可以减少在GPU和存储器之间传输数据所需的带宽。当将数据传输到片外存储器时,存储器访问带宽是特别珍贵的资源。实验表明,引导图像可以以8位整数格式存储(有符号或无符号,视每个引导通道的数值范围而定)。所得去噪图像的图像质量与使用浮点引导通道实现的图像质量相当接近。实验表明,可能需要对照明图像更加小心。特别地,已经发现直接(线性)量化在去噪输出图像的质量方面产生次优结果。本发明人已经发现,非线性量化的使用可在该上下文中给出更好的结果,同时仍实现存储器访问带宽的减小。图9示出了用于在本示例的渲染方法中使用的编码610和解码620照明图像的一种方式。这可以特别应用于由路径跟踪块210产生的有噪间接照明图像。然而,它也可以应用于其他照明图像,诸如由射线跟踪块260产生的直接照明图像,以及最终渲染的输出图像。在步骤612中,将非线性应用于浮点照明图像。也就是说,输入浮点值通过使用非线性函数将它们映射到第二浮点值而被变换。然后,在步骤614中,对变换后的输入值进行均匀量化。非线性和均匀量化的组合为图像的较暗区域提供较大的量化级别密度,而图像的较亮区域被相对稀疏地量化。实现这种效果的合适的非线性包括平方根函数和对数函数。在步骤614中的量化之后,在步骤616,量化的浮点数被转换成低位深度整数。然后将低位整数从GPU传输到存储器(例如,片上或外部存储器)。量化减少了要存储在存储器中的数据量,更重要的是,减少了向存储器传输数据和从存储器传输数据所需的带宽。在本具体实施中,低位深度整数以8位的位深度存储。然而,不同的低位深度格式可以用于不同的引导通道和/或有噪图像。也就是说,在产生去噪图像的任何给定过程期间,不同的引导通道和有噪图像不需要使用相同的低位深度格式,它们可以独立于不同的格式进行编码和解码。例如,如果发现对于深度使用比对于表面法线分量更多的位对于总体结果是有益的,则这可能是有利的。
当需要数据时(例如,当从存储器中检索数据以用于计算内积时),对其进行解码620以反转非线性量化。在步骤622中,低位深度整数被转换回浮点数。然后,在步骤624中,应用逆非线性,以在步骤612中反转非线性函数的效果。例如,如果在步骤612中应用平方根函数,则在步骤624中将应用二次(平方)函数。如果在步骤612中应用了对数函数,则在步骤624中应用的函数将涉及指数。
去噪输出图像也可以在产生后被量化。这通过以较低的位深度(与没有量化步骤相比)输出去噪图像而提供了与上述类似的益处,即,当输出去噪图像时节省了带宽。这可能是特别有益的,因为去噪输出通常显著大于有噪低分辨率输入,并且因此如果以非量化的方式输出则将表示显著更大的带宽负载。
替代流水线
图1所示的流水线不是通过引导滤波使用低分辨率去噪来渲染图像的唯一方式。图10示出了另一个示例。图10与图1的不同之处在于,在去噪程序之前,将有噪低分辨率间接照明图像与直接照明图像组合。在步骤110和112中,如前所述,通过路径跟踪来渲染低分辨率有噪间接照明图像,并且通过光栅化来渲染低分辨率引导通道。然而,代替在步骤160中渲染全分辨率直接照明图像,射线跟踪块在步骤760中渲染低分辨率直接照明图像。在步骤770中,对低分辨率直接照明图像和低分辨率间接照明图像进行求和。所得的全局照射图像有噪声,因为它包括间接照明。在步骤720中,该有噪图像被传递到模型拟合块,并且估计模型参数,其方式与上面针对步骤120描述的方式相同。以低分辨率产生的所得模型参数在步骤730中被上采样,并在步骤750中与全分辨率引导通道组合。这产生了全分辨率去噪全局照射图像。正如图1所示,在步骤180中,该全局照射图像与表面反射图像组合,以产生最终的渲染输出图像。对于图10的流水线的最佳结果,低分辨率图像优选地与全分辨率图像是相同的大小(相同的分辨率)。否则,存在阴影边缘的次优重建的风险,在这些边缘上引入了不希望的模糊。
在流水线的另一变型中,射线跟踪160或760可以由光栅化来代替,例如任选地使用阴影映射。
再次参考图1的流水线,上面解释了“全分辨率”图像的分辨率大于或等于“低分辨率”图像的分辨率。当“低分辨率”图像具有与“全分辨率”图像相同的分辨率时,应当理解,步骤112和140中的光栅化可以在单个步骤中执行,因为当计算模型参数并应用它们时使用相同引导通道集。替代地,它们仍可作为两个步骤执行(如图1确切所示)其中步骤140重复在步骤112中执行的引导通道的光栅化。
替代照明模式
虽然上面的示例组合了直接照明图像和间接照明图像来提供全局照射,但这不是唯一可能的具体实施。例如,在其他示例中,代替间接照明图像,类似于步骤110的低分辨率路径跟踪步骤可以实现射线跟踪的环境遮挡。这是间接照明的简化近似,但它仍然依赖于随机采样;因此,所得的路径跟踪图像仍然有噪声,并且可以受益于组合的渲染和去噪流水线。图1的流水线或图10的流水线中的任一者可以与射线跟踪环境遮挡一起使用。
在使用射线跟踪环境遮挡的一些示例中,将直接照明图像与在流水线的某个阶段由射线跟踪环境遮挡产生的图像组合。例如,这将是使用与图1和图10中的那些流水线类似的流水线的情况。然后,这不是必需的。该方法可以是例如使用比简单地与直接照明组合更复杂的光栅化技术的更大渲染流水线的一部分。
替代模型拟合
尽管以上示例在仿射模型中将有噪输入图像建模为引导通道的线性组合,但是本公开的范围不限于此。可以使用其他模型,包括例如非线性/更高阶模型。这种更高阶模型的一个示例将是二次拟合。可以通过在引导图像中包括任何通道的平方来实现二次模型。
系统
图11示出了其中可以实现本文所述的图形处理单元的图形处理系统。计算机系统包括CPU 902、GPU 904、存储器906和其他设备914,诸如显示器916、扬声器918和相机919。处理块910(对应于处理块210-280)在GPU 904上实现。在其他示例中,处理块910可以在CPU902上实现。计算机系统的部件可经由通信总线920彼此进行通信。存储库912(对应于存储库112)被实现为存储器906的一部分。
虽然图9示出图形处理系统的一个具体实施,但将理解,可针对人工智能加速器系统绘制类似框图—例如通过用神经网络加速器(NNA)替换CPU 902或GPU 904,或通过添加NNA作为额外单元。在这类情况下,处理块910可在NNA中实现。
图2的GPU以及图1和图10的方法/流水线被示为包括多个功能块。这仅仅是示意性的,并且不旨在限定这类实体的不同逻辑元件之间的严格划分。每个功能块可以任何合适的方式来提供。应理解,本文中描述为由GPU形成的中间值不必在物理上由GPU在任一点处生成,并且仅可以表示方便地描述由GPU在其输入与输出之间执行的处理的逻辑值。
本文所述的GPU和图形处理系统可以以集成电路上的硬件来体现。本文所述的GPU和图形处理系统可以被配置为执行本文所述的任何方法。一般来说,上文所描述的功能、方法、技术或部件中的任一者可在软件、固件、硬件(例如固定逻辑电路系统)或它们的任何组合中实现。本文中可以使用术语“模块”、“功能性”、“部件”、“元件”、“单元”、“块”和“逻辑”来概括地表示软件、固件、硬件或它们的任何组合。在软件具体实施的情况下,模块、功能性、部件、元件、单元、块或逻辑表示程序代码,当在处理器上被执行时,该程序代码执行指定任务。本文中所描述的算法和方法可由执行代码的一个或多个处理器执行,该代码促使处理器执行算法/方法。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪存存储器、硬盘存储器,以及可使用磁性、光学和其他技术来存储指令或其他数据并且可由机器访问的其他存储器设备。
如本文中所使用的术语计算机程序代码和计算机可读指令是指供处理器执行的任何种类的可执行代码,包含以机器语言、解释语言或脚本语言表达的代码。可执行代码包含二进制代码、机器代码、字节代码、定义集成电路的代码(例如硬件描述语言或网表),以及用例如C、或OpenCL等编程语言码表达的代码。可执行代码可以是例如任何种类的软件、固件、脚本、模块或库,当在虚拟机或其他软件环境中被适当地执行、处理、解释、编译、运行时,这些软件、固件、脚本、模块或库使支持可执行代码的计算机系统的处理器执行由该代码指定的任务。
处理器、计算机或计算机系统可以是任何种类的装置、机器或专用电路,或它们的具有处理能力以使得其可执行指令的集合或部分。处理器可以是任何种类的通用或专用处理器,诸如CPU、GPU、NNA、片上系统、状态机、媒体处理器、专用集成电路(ASIC)、可编程逻辑阵列、现场可编程门阵列(FPGA)等。计算机或计算机系统可包括一个或多个处理器。
本发明还意图涵盖限定如本文所描述的硬件的配置的软件,诸如硬件描述语言(HDL)软件,用于设计集成电路或用于配置可编程芯片以执行所要功能。也就是说,可以提供一种其上编码有呈集成电路定义数据集形式的计算机可读程序代码的计算机可读存储介质,当在集成电路制造系统中处理(即,运行)时,计算机可读程序代码将系统配置成制造被配置为执行本文所描述的方法中的任一方法的图形处理系统,或者制造包括本文所描述的任何装置的图形处理系统。集成电路定义数据集可以是例如集成电路描述。
因此,可以提供一种在集成电路制造系统处制造如本文所描述的图形处理系统的方法。此外,可以提供一种集成电路定义数据集,当在集成电路制造系统中处理时,集成电路定义数据集使得制造图形处理系统的方法得以执行。
集成电路定义数据集可以是计算机代码的形式,例如作为网表,用于配置可编程芯片的代码,作为定义适合于在集成电路中以任何级别制造的硬件描述语言,包括作为寄存器传输级(RTL)代码,作为高级电路表示法(诸如Verilog或VHDL),以及作为低级电路表示法(诸如OASIS(RTM)和GDSII)。在逻辑上定义适合于在集成电路中制造的硬件的更高级表示法(诸如RTL)可在计算机系统处进行处理,该计算机系统被配置为用于在软件环境的上下文中产生集成电路的制造定义,该软件环境包括电路元件的定义以及用于组合这些元件以便产生由表示法如此定义的集成电路的制造定义的规则。如通常软件在计算机系统处执行以便定义机器的情况一样,可能需要一个或多个中间用户步骤(例如,提供命令、变量等),以便将计算机系统配置为生成集成电路的制造定义,以执行定义集成电路以便生成该集成电路的制造定义的代码。
现在将关于图12描述在集成电路制造系统处处理集成电路定义数据集以便将系统配置成制造图形处理系统的示例。
图12示出了集成电路(IC)制造系统1002的示例,该集成电路制造系统被配置为制造如本文任何示例中描述的图形处理系统。特别地,IC制造系统1002包括布局处理系统1004和集成电路生成系统1006。IC制造系统1002被配置为接收IC定义数据集(例如,定义如本文任何示例中描述的图形处理系统)、处理IC定义数据集以及根据IC定义数据集来生成IC(例如,其包含如本文任何示例中所述的图形处理系统)。通过对IC定义数据集的处理,将IC制造系统1002配置为制造包含如本文任何示例中描述的图形处理系统的集成电路。
布局处理系统1004被配置为接收和处理IC定义数据集以确定电路布局。根据IC定义数据集确定电路布局的方法在本领域中是已知的,并且例如可涉及合成RTL代码以确定待产生电路的门级表示,例如就逻辑部件(例如NAND、NOR、AND、OR、MUX和FLIP-FLOP部件)而言。通过确定逻辑部件的位置信息,可以根据电路的门级表示来确定电路布局。这可以自动完成或者在用户参与下完成,以便优化电路布局。当布局处理系统1004已经确定电路布局时,其可将电路布局定义输出到IC产生系统1006。电路布局定义可以是例如电路布局描述。
如本领域中所已知,IC产生系统1006根据电路布局定义来产生IC。例如,IC产生系统1006可实施用以产生IC的半导体设备制造工艺,该半导体设备制造工艺可涉及光刻和化学处理步骤的多步骤序列,在此期间,在由半导体材料制成的晶片上逐渐形成电子电路。电路布局定义可呈掩模的形式,掩模可在光刻工艺中用于根据电路定义来产生IC。可替代地,提供给IC产生系统1006的电路布局定义可呈计算机可读代码的形式,IC产生系统1006可使用该计算机可读代码来形成用于产生IC的合适的掩模。
由IC制造系统1002执行的不同过程可全部在一个位置例如由一方来实施。替代地,IC制造系统1002可以是分布式系统,使得一些过程可以在不同位置执行,并且可以由不同方来执行。例如,以下阶段中的一些可以在不同位置和/或由不同方来执行:(i)合成表示IC定义数据集的RTL代码,以形成要生成的电路的门级表示;(ii)基于门级表示来生成电路布局;(iii)根据电路布局来形成掩码;以及(iv)使用掩码来制造集成电路。
在其他示例中,在集成电路制造系统中对集成电路定义数据集的处理可以将该系统配置成在不处理IC定义数据集以确定电路布局的情况下制造图形处理系统。例如,集成电路定义数据集可以定义诸如FPGA的可重新配置的处理器的配置,并且对该数据集进行的处理可以将IC制造系统配置为(例如,通过将配置数据加载到FPGA)生成具有该定义的配置的可重新配置的处理器。
在一些实施方案中,当在集成电路制造系统中被处理时,集成电路制造定义数据集可以使集成电路制造系统生成如本文中描述的装置。例如,通过集成电路制造定义数据集以上文参考图12描述的方式对集成电路制造系统进行配置,可以制造出如本文描述的装置。
在一些示例中,集成电路定义数据集可以包含在数据集处定义的硬件上运行的软件,或者与在数据集处定义的硬件组合运行的软件。在图12所示的示例中,IC产生系统可以由集成电路定义数据集进一步配置成在制造集成电路时根据在集成电路定义数据集处限定的程序代码将固件加载到该集成电路上,或者以其他方式向集成电路提供与集成电路一起使用的程序代码。
与已知的实施方式相比,在本申请中阐述的概念在装置、设备、模块和/或系统中(以及在本文中实现的方法中)的实施方式可以提高性能。性能改进可包括计算性能提高、等待时间减少、吞吐量增大和/或功耗减小中的一者或多者。在制造这种设备、装置、模块和系统(例如,在集成电路中)期间,可在性能改进与物理具体实施之间进行权衡,从而改进制造方法。例如,可在性能改进与布局面积之间进行权衡,从而匹配已知具体实施的性能,但使用更少的硅。例如,这可以通过以串行方式重复使用功能块或在设备、装置、模块和/或系统的元件之间共享功能块来完成。相反,本申请中所阐述的引起设备、装置、模块和系统的物理具体实施的改进(诸如硅面积减小)的概念可与性能提高进行权衡。这可以例如通过在预定义面积预算内制造模块的多个实例来完成。
申请人据此独立地公开了本文中所描述的每个单独的特征以及两个或更多个此类特征的任意组合,到达的程度使得此类特征或组合能够根据本领域的技术人员的普通常识基于本说明书整体来实行,而不管此类特征或特征的组合是否解决本文中所公开的任何问题。鉴于前文描述,本领域的技术人员将清楚,可以在本发明的范围内进行各种修改。
Claims (15)
1.一种渲染3D场景的图像的方法,所述方法包括:
渲染(110)有噪图像;
获得(112)一个或多个引导通道;以及
对于多个局部邻域中的每一者:
计算(120)将所述有噪图像近似为所述一个或多个引导通道的函数的模型的参数;以及
应用(130,150)所计算的参数来产生去噪图像,
其中所述有噪图像、所述一个或多个引导通道和所述去噪图像中的至少一者以量化的低位深度格式存储。
2.如权利要求1所述的方法,其中所述有噪图像(i)包括所述场景中的间接照明,或者(ii)包括环境遮挡图像。
3.如权利要求2所述的方法,其中所述去噪图像是去噪间接照明图像或去噪环境遮挡图像,并且其中所述方法还包括:
获得(160)直接照明图像;以及
将所述去噪图像与所述直接照明图像组合(170)以产生全局照射图像。
4.如权利要求2所述的方法,其中所述有噪图像是有噪全局照射图像,包括所述场景中的直接照明和间接照明,由此所述去噪图像是去噪全局照射图像。
5.如权利要求3至4中任一项所述的方法,还包括将所述全局照射图像或所述去噪全局照射图像与表面反射图像组合(180)以产生所述3D场景的渲染图像。
6.如前述权利要求中任一项所述的方法,还包括在渲染(110)所述有噪图像之后,用非线性量化以量化的低位深度格式对其进行量化(610),使得将所述图像的较暗区域量化到相对较大的量化级别密度,并且将所述图像的较亮区域量化到相对较小的量化级别密度;以及将所量化的低位深度格式存储在存储器中,
其中所述方法还包括,在计算所述模型的所述参数之前,从所述存储器中检索所量化的低位深度值并执行逆量化(620)。
7.如前述权利要求中任一项所述的方法,其中计算所述模型的所述参数包括:
计算(122,122a)所述一个或多个引导通道中的每个像素(x)与其自身之间的第一外积(xTx);
计算(122,122a)所述一个或多个引导通道中的每个像素(x)与所述有噪图像中的对应像素(y)之间的第二外积(xTy);
模糊(124,124a)所述第一外积以计算每个局部邻域的第一矩矩阵(XTX);
模糊(124,124a)所述第二外积以计算每个局部邻域的第二矩矩阵(XTY);以及
针对每个局部邻域的计算(126)所述模型的参数(A),包括计算所述第一矩矩阵的逆矩阵,以及计算所述逆矩阵和所述第二矩矩阵的乘积。
8.如权利要求7所述的方法,其中模糊(124,124a)所述第一外积包括从所述第一外积计算(322)第一多尺度金字塔并基于所述第一多尺度金字塔计算(324)所述第一矩矩阵;并且/或者
其中模糊(124,124a)所述第二外积包括从所述第二外积计算(322)第二多尺度金字塔并基于所述第二多尺度金字塔计算(324)所述第二矩矩阵。
9.如权利要求7或权利要求8所述的方法,其中所述模糊包括水平方向和竖直方向上的可分离滤波(402,404)。
10.如权利要求7至9中任一项所述的方法,其中所述模糊包括使用各向异性2D滤波器进行滤波(502,504,506)。
11.如权利要求8所述的方法,其中所述一个或多个引导通道包括所述3D场景中的对象的表面法线,并且其中所述模糊包括:
对于每个局部邻域,
基于所述邻域的中心处的所述对象的所述表面法线来确定(502)2D滤波器的长轴和短轴;
基于所述短轴的长度来选择(504)所述多尺度金字塔的级别;以及
沿着所述长轴对所述多尺度金字塔的所选择的级别进行采样(506)。
12.如权利要求7至10中任一项所述的方法,其中所述模糊包括以下中的一项:
IIR滤波;以及
用运行箱式滤波器进行滤波。
13.如权利要求7至12中任一项所述的方法,包括:
定义(125)第一外积图块,定义所述第一外积的第一邻接部分和所述第二外积的相应第一邻接部分,每个第一邻接部分包括第一多个像素;以及
定义(125)第二外积图块,定义所述第一外积的第二邻接部分和所述第二外积的相应第二邻接部分,每个第二邻接部分包括第一多个像素,
其中针对所述第一图块,(i)在所述第二图块之前或(ii)与所述第二图块并行地计算(124a)所述第一矩矩阵和所述第二矩矩阵。
14.如权利要求7至13中任一项所述的方法,还包括对所述第一矩矩阵和所述第二矩矩阵中的一者或两者进行归一化和/或正则化。
15.一种计算机可读存储介质,在其上编码有计算机可读代码,所述计算机可读代码被配置为在运行所述代码时使得如权利要求1至14中任一项所述的方法被执行。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2114030.6A GB2605666B (en) | 2021-09-30 | 2021-09-30 | Rendering an image of a 3-D scene |
GB2114029.8 | 2021-09-30 | ||
GB2114029.8A GB2605472B (en) | 2021-09-30 | 2021-09-30 | Rendering an image of a 3-D scene |
GB2114030.6 | 2021-09-30 | ||
GB2114031.4A GB2605667B (en) | 2021-09-30 | 2021-09-30 | Rendering an image of a 3-D scene |
GB2114031.4 | 2021-09-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115908157A true CN115908157A (zh) | 2023-04-04 |
Family
ID=83400619
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211178376.2A Pending CN115908157A (zh) | 2021-09-30 | 2022-09-26 | 渲染3d场景的图像 |
CN202211172091.8A Pending CN115908156A (zh) | 2021-09-30 | 2022-09-26 | 渲染3d场景的图像 |
CN202211179123.7A Pending CN115908667A (zh) | 2021-09-30 | 2022-09-27 | 渲染3d场景的图像 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211172091.8A Pending CN115908156A (zh) | 2021-09-30 | 2022-09-26 | 渲染3d场景的图像 |
CN202211179123.7A Pending CN115908667A (zh) | 2021-09-30 | 2022-09-27 | 渲染3d场景的图像 |
Country Status (3)
Country | Link |
---|---|
US (3) | US20230118937A1 (zh) |
EP (3) | EP4174783A3 (zh) |
CN (3) | CN115908157A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2541179B (en) * | 2015-07-31 | 2019-10-30 | Imagination Tech Ltd | Denoising filter |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309412A (zh) * | 2008-07-07 | 2008-11-19 | 浙江大学 | 基于深度图像渲染的多通道视频流编码器和解码器 |
US20170116708A1 (en) * | 2015-10-27 | 2017-04-27 | Imagination Technologies Limited | Systems and Methods for Processing Images of Objects Using Interpolation Between Keyframes |
CN111586408A (zh) * | 2019-02-19 | 2020-08-25 | 诺基亚技术有限公司 | 用于跨通道残差编码和解码的量化参数得出 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6906714B2 (en) * | 2002-06-21 | 2005-06-14 | Intel Corporation | Accelerated visualization of surface light fields |
US20130202177A1 (en) * | 2010-06-30 | 2013-08-08 | Medic Vision - Imaging Solutions Ltd. | Non-linear resolution reduction for medical imagery |
US9508121B2 (en) * | 2015-01-14 | 2016-11-29 | Lucidlogix Technologies Ltd. | Method and apparatus for controlling spatial resolution in a computer system by rendering virtual pixel into physical pixel |
US10419762B2 (en) * | 2015-03-02 | 2019-09-17 | Dolby Laboratories Licensing Corporation | Content-adaptive perceptual quantizer for high dynamic range images |
GB2541179B (en) | 2015-07-31 | 2019-10-30 | Imagination Tech Ltd | Denoising filter |
US10354432B2 (en) * | 2016-01-15 | 2019-07-16 | Intel Corporation | Texture space shading and reconstruction for ray tracing |
US10223772B2 (en) * | 2016-03-22 | 2019-03-05 | Algolux Inc. | Method and system for denoising and demosaicing artifact suppression in digital images |
US10096088B2 (en) * | 2016-09-28 | 2018-10-09 | Disney Enterprises, Inc. | Robust regression method for image-space denoising |
US10453241B2 (en) * | 2017-04-01 | 2019-10-22 | Intel Corporation | Multi-resolution image plane rendering within an improved graphics processor microarchitecture |
US10798321B2 (en) * | 2017-08-15 | 2020-10-06 | Dolby Laboratories Licensing Corporation | Bit-depth efficient image processing |
EP3557872A1 (en) * | 2018-04-16 | 2019-10-23 | InterDigital VC Holdings, Inc. | Method and device for encoding an image or video with optimized compression efficiency preserving image or video fidelity |
US10769764B2 (en) * | 2019-02-08 | 2020-09-08 | Adobe Inc. | Hierarchical scale matching and patch estimation for image style transfer with arbitrary resolution |
GB201908517D0 (en) * | 2019-06-13 | 2019-07-31 | Spectral Edge Ltd | 3D digital imagenoise reduction system and method |
CN110634147B (zh) * | 2019-09-19 | 2023-06-23 | 延锋伟世通电子科技(上海)有限公司 | 基于双边引导上采样的图像抠图方法 |
US11395008B2 (en) * | 2019-09-23 | 2022-07-19 | Apple Inc. | Video compression with in-loop sub-image level controllable noise generation |
CN111161386A (zh) * | 2019-12-30 | 2020-05-15 | 无锡触典科技有限公司 | 超声图像的渲染方法、装置及超声设备 |
US11087522B1 (en) * | 2020-03-15 | 2021-08-10 | Intel Corporation | Apparatus and method for asynchronous ray tracing |
CN111583135B (zh) * | 2020-04-24 | 2023-04-07 | 华南理工大学 | 一种核预测神经网络蒙特卡罗渲染图像去噪方法 |
KR102339619B1 (ko) * | 2020-11-19 | 2021-12-17 | 광주과학기술원 | 이미지 품질향상장치, 이미지 품질향상방법 |
US20230215091A1 (en) * | 2021-09-25 | 2023-07-06 | Intel Corporation | Apparatus and method for tree structure data reduction |
-
2022
- 2022-09-26 CN CN202211178376.2A patent/CN115908157A/zh active Pending
- 2022-09-26 CN CN202211172091.8A patent/CN115908156A/zh active Pending
- 2022-09-27 CN CN202211179123.7A patent/CN115908667A/zh active Pending
- 2022-09-29 EP EP22198826.4A patent/EP4174783A3/en active Pending
- 2022-09-29 EP EP22198825.6A patent/EP4174782A3/en active Pending
- 2022-09-29 EP EP22198827.2A patent/EP4174784A3/en active Pending
- 2022-09-29 US US17/956,778 patent/US20230118937A1/en active Pending
- 2022-09-30 US US17/956,907 patent/US20230114852A1/en active Pending
- 2022-09-30 US US17/956,925 patent/US11915397B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309412A (zh) * | 2008-07-07 | 2008-11-19 | 浙江大学 | 基于深度图像渲染的多通道视频流编码器和解码器 |
US20170116708A1 (en) * | 2015-10-27 | 2017-04-27 | Imagination Technologies Limited | Systems and Methods for Processing Images of Objects Using Interpolation Between Keyframes |
CN111586408A (zh) * | 2019-02-19 | 2020-08-25 | 诺基亚技术有限公司 | 用于跨通道残差编码和解码的量化参数得出 |
Non-Patent Citations (2)
Title |
---|
JOHANNES KOPF ET AL.: ""Joint Bilateral Upsampling"", 《ACM TRANSACTIONS ON GRAPHICS》, vol. 26, no. 3, 29 July 2007 (2007-07-29), pages 96 - 1, XP058336153, DOI: 10.1145/1276377.1276497 * |
PABLO BAUSZAT ET AL.: ""guided image filtering for interactive high-quality global illumination"", 《HTTPS://ONLINELIBRARY.WILEY.COM/DOI/FULL/10.1111/J.1467-8659.2011.01996.X》, vol. 30, no. 4, 9 July 2011 (2011-07-09), pages 1361 - 1368 * |
Also Published As
Publication number | Publication date |
---|---|
US11915397B2 (en) | 2024-02-27 |
US20230114852A1 (en) | 2023-04-13 |
EP4174783A2 (en) | 2023-05-03 |
CN115908156A (zh) | 2023-04-04 |
EP4174783A3 (en) | 2023-11-08 |
EP4174782A3 (en) | 2023-08-30 |
US20230177769A1 (en) | 2023-06-08 |
EP4174782A2 (en) | 2023-05-03 |
EP4174784A2 (en) | 2023-05-03 |
US20230118937A1 (en) | 2023-04-20 |
EP4174784A3 (en) | 2023-11-08 |
CN115908667A (zh) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Paris et al. | A fast approximation of the bilateral filter using a signal processing approach | |
US9082180B2 (en) | System, method, and computer program product for implementing a spatially varying unsharp mask noise reduction filter | |
US20090309877A1 (en) | Soft shadow rendering | |
US11915397B2 (en) | Rendering an image of a 3-D scene | |
US10192349B2 (en) | Texture sampling techniques | |
US20230298212A1 (en) | Locking mechanism for image classification | |
US20210398244A1 (en) | Input/output filter unit for graphics processing unit | |
GB2605667A (en) | Rendering an image of a 3-D scene | |
GB2605472A (en) | Rendering an image of a 3-D scene | |
GB2605666A (en) | Rendering an image of a 3-D scene | |
US20230039364A1 (en) | Image processing using filtering function covariance | |
US20240135505A1 (en) | Adaptive sharpening for blocks of pixels | |
CN117830093A (zh) | 对像素块进行上采样 | |
CN117830145A (zh) | 像素块的自适应锐化 | |
Hangün | Performance evaluation of a parallel image enhancement technique for dark images on multithreaded cpu and gpu architectures | |
GB2623071A (en) | Adaptive sharpening for blocks of pixels | |
WO2023177887A1 (en) | Super resolution upscaling | |
WO2023208385A1 (en) | A soft shadow algorithm with contact hardening effect for mobile gpu | |
GB2613765A (en) | Texture filtering | |
GB2609080A (en) | Input/output filter unit for graphics processing unit | |
GB2622500A (en) | Input/output filter unit for graphics processing unit | |
Zhao et al. | Real-Time Weighted Median Filtering with the Edge-Aware 4D Bilateral Grid | |
Kosloff | Fast image filters for depth-of-field post-processing | |
Windsheimer et al. | Implementation of a visual difference metric using commodity graphics hardware | |
Ludwig | Implementation of a spatio-temporal Laplacian image pyramid on the GPU |
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 |