一种图像处理方法及终端与流程
未命名
09-13
阅读:82
评论:0

技术领域:
:,尤其涉及一种图像处理方法及终端。
背景技术:
::2.在手机、平板等移动终端中,可以将光线追踪算法用于图形渲染管线中的各个渲染阶段,使得渲染效果和精确性上具有较大提升。光线追踪算法是通过从相机发射光线,与场景中的几何体进行碰撞检测,从而计算光照、材质、阴影等着色效果。与此同时,由于采用光线追踪算法时发射的光线数量是有限,画面上的采样点之间并不连续,会产生噪点。因此,采用光线追踪算法渲染得到的图像的质量需要高度依赖降噪处理。3.然而,现有的降噪方案中,通常需要大量的信息参与运算。例如,采用时空方差引导滤波器(spatiotemporalvariance-guidedfilter,svgf)算法实现降噪时,不仅需要获取当前帧的信息,还需要获取前一帧图像的深度、颜色等信息来参与降噪运算。相应的,图形处理器(graphicsprocessingunit,gpu)需要从内存中读取大量的信息。这就对gpu与内存之间的读写带宽提出了较高的要求,而手机、平板等移动终端极有可能无法负担该带宽要求。技术实现要素:4.有鉴于此,本技术提供了一种图像处理方法及终端,可以利用当前帧图像渲染过程中得到的深度渲染结果和阴影渲染结果实现降噪处理,无需获取大量的信息参与运算,降低了对带宽的要求,可以适用于手机、平板等移动终端。5.为了达到上述目的,本技术实施例采用如下技术方案:6.第一方面,提供一种图像处理方法,可用于手机、平板等终端。终端需要显示第一图像时,可以完成深度渲染,得到第一图像的深度渲染结果。以及,完成阴影渲染,得到第一图像的阴影渲染结果。然后,终端基于深度渲染结果和阴影渲染结果完成对第一图像中阴影的边缘的铝箔处理,从而实现降噪,并且可以得到平滑变化的阴影效果图。7.综上所述,采用本技术实施例,依据深度渲染结果和阴影渲染结果即可得到平滑的阴影效果图,从而可以消除阴影边缘的噪点。无需获取大量的渲染结果来实现降噪,可以减少对数据读写带宽的开销。并且,对阴影的边缘完成滤波处理即可消除阴影边缘的噪点,无需大量复杂的运算,可以有针对性的降噪,简化运算。如此,本技术实施例的图像处理方法也可以适用于手机、平板等数据读写带宽和运算资源都有限的移动终端,提高了降噪处理的通用性。8.常规的渲染管线包括延迟渲染管线和前向渲染管线,上述图像处理方法可以应用于延迟渲染管线和前向渲染管线。下面对本技术实施例提供的图像处理方法在延迟渲染管线和前向渲染管线中的具体实现分别说明。9.第一,应用于延迟渲染管线。10.在一种可能的设计方式中,在终端完成阴影渲染,得到第一图像的阴影渲染结果之前,上述方法还包括:终端完成几何绘制(即g-bufferpass),得到第一图像的几何绘制结果,几何绘制结果包括法线信息。终端完成阴影渲染,得到第一图像的阴影渲染结果,包括:终端基于深度渲染结果和法线信息,完成阴影渲染,得到第一图像的阴影渲染结果,阴影渲染结果包括法线信息、阴影信息和距离信息。11.采用延迟渲染管线,可以将场景内所有几何体绘制到帧缓冲(如图6所示几何绘制过程)后再进行着色计算。几何绘制过程可以计算得到场景中的几何体映射到像素(片元)的位置、颜色、法线等信息。也就是说,采用延迟渲染管线,可以在着色之前计算出法线信息。相应的,可以将该法线信息用于阴影渲染,得到包括法线信息的阴影渲染结果。从而可以得到更丰富的几何信息用于后续降噪处理。12.在一种可能的设计方式中,终端基于深度渲染结果和阴影渲染结果完成降噪处理,包括:终端基于深度渲染结果、法线信息、阴影信息和距离信息完成降噪处理。其中,深度渲染结果用于确定第一图像中的不连续表面,法线信息用于确定第一图像中各个像素的方向,阴影信息用于确定第一图像中的阴影区域,距离信息用于确定第一图像中的半影区域。13.在一种可能的设计方式中,在得到第一图像的阴影渲染结果后,上述方法还包括:终端将阴影渲染结果编码到第一贴图后存储到内存中,第一贴图包括至少四个通道,其中两个通道用于存储法线信息,剩余两个通道中的一个通道用于存储阴影信息、另一个通道用于存储距离信息。在降噪处理前,终端从内存中获取第一贴图,得到阴影渲染结果。14.采用本实施例,将阴影渲染结果编码到一张贴图上存储,从而可以减少后续将阴影渲染结果写入内存或者在降噪处理时从内存中读取阴影渲染结果所需的带宽。例如,在降噪处理时,仅需获取第一贴图,即可获取到用于降噪处理的绝大多数信息,即阴影渲染结果。15.在一种可能的设计方式中,第一贴图为rgba16f格式,第一贴图包括r通道、g通道、b通道和a通道共四个通道。示例性的,r通道和g通道可用于存储法线信息,b通道可用于存储阴影信息,a通道可用于存储距离信息。如此,可以将阴影渲染结果存储在一张贴图的四个通道。16.在一种可能的设计方式中,终端完成几何绘制,得到第一图像的几何绘制结果,包括:终端在终端的gpu的第一片上缓存tilebuffer中完成几何绘制,并将几何绘制结果存储在第一tilebuffer中。17.由于几何绘制过程中,gpu需要向帧缓冲中完成大量几何绘制,因此对gpu与帧缓冲之间的读写数据带宽的开销较大。基于此,设置几何绘制的帧缓冲为gpu的tilebuffer中的帧缓冲(即第一tilebuffer)。如此,可以利用tilebuffer低带宽开销特性,减少gpu绘制几何信息的带宽开销。18.在一种可能的设计方式中,在终端基于深度渲染结果和法线信息,完成阴影渲染之前,上述方法还包括:gpu从第一tilebuffer中获取法线信息。终端基于深度渲染结果和法线信息,完成阴影渲染,包括:gpu在gpu的第二tilebuffer中基于深度渲染结果和法线信息,完成阴影渲染。19.在将几何绘制结果存储到第一tilebuffer后,gpu在降噪处理时,则可以从第一tilebuffer中获取法线信息。与从内存中获取法线信息相比:从第一tilebuffer中获取法线信息,可以减少带宽消耗。20.第二,应用于前向渲染管线。21.在一种可能的设计方式中,上述终端完成阴影渲染,得到第一图像的阴影渲染结果,包括:终端基于深度渲染结果,完成阴影渲染,得到第一图像的阴影渲染结果,阴影渲染结果包括阴影信息和距离信息。22.采用前向渲染管线,不会有几何绘制过程,则不会得到包括法线信息的几何绘制结果。但是,终端依然可以基于深度渲染结果来完成阴影渲染。23.在一种可能的设计方式中,终端基于深度渲染结果和阴影渲染结果完成降噪处理,包括:终端基于深度渲染结果、阴影信息和距离信息完成降噪处理。其中,深度渲染结果用于确定第一图像中的不连续表面,阴影信息用于确定第一图像中的阴影区域,距离信息用于确定第一图像中的半影区域。24.在一种可能的设计方式中,在得到第一图像的阴影渲染结果后,上述方法还包括:终端将阴影渲染结果编码到第二贴图后存储到内存中,第二贴图包括至少两个通道,其中一个通道用于存储阴影信息,另一个通道用于存储距离信息。在降噪处理前,终端从内存获取第二贴图,得到阴影渲染结果。25.采用本实施例,将阴影渲染结果编码到一张贴图上存储,从而可以减少后续将阴影渲染结果写入内存或者在降噪处理时从内存中读取阴影渲染结果所需的带宽。例如,在降噪处理时,仅需获取第二贴图,即可获取到用于降噪处理的绝大多数信息,即阴影渲染结果。26.在一种可能的设计方式中,第二贴图为rg16f格式,rg16f格式的贴图包括r通道和g通道共两个通道。示例性的,r通道用于存储阴影信息,g通道用于存储距离信息。27.在一种可能的设计方式中,在得到平滑变化的阴影效果图之后,上述方法还包括:终端将平滑变化的阴影效果图贴在渲染得到的第一图像上,得到降噪后的第一图像。28.在一种可能的设计方式中,终端完成阴影渲染,包括:终端基于光线追踪算法完成阴影渲染。采用光线追踪算法完成阴影渲染,可以使得渲染效果和精确性上具有较大提升。29.第二方面,提供一种终端,终端包括一个或多个处理器和一个或多个存储器;一个或多个存储器与一个或多个处理器耦合,一个或多个存储器存储有计算机指令。当一个或多个处理器执行计算机指令时,使得终端执行如下步骤:终端完成深度渲染,得到第一图像的深度渲染结果。终端完成阴影渲染,得到第一图像的阴影渲染结果。终端基于深度渲染结果和阴影渲染结果完成降噪处理,得到平滑变化的阴影效果图。30.在一种可能的设计方式中,终端采用延迟渲染管线渲染第一图像,当一个或多个处理器执行计算机指令时,使得终端执行如下步骤:终端完成几何绘制,得到第一图像的几何绘制结果,几何绘制结果包括法线信息。终端基于深度渲染结果和法线信息,完成阴影渲染,得到第一图像的阴影渲染结果,阴影渲染结果包括法线信息、阴影信息和距离信息。31.在一种可能的设计方式中,当一个或多个处理器执行计算机指令时,使得终端执行如下步骤:终端基于深度渲染结果、法线信息、阴影信息和距离信息完成降噪处理。其中,深度渲染结果用于确定第一图像中的不连续表面,法线信息用于确定第一图像中各个像素的方向,阴影信息用于确定第一图像中的阴影区域,距离信息用于确定第一图像中的半影区域。32.在一种可能的设计方式中,当一个或多个处理器执行计算机指令时,使得终端执行如下步骤:终端将阴影渲染结果编码到第一贴图后存储到内存中,第一贴图包括至少四个通道,其中两个通道用于存储法线信息,剩余两个通道中的一个通道用于存储阴影信息、另一个通道用于存储距离信息。在降噪处理前,终端从内存中获取第一贴图,得到阴影渲染结果。33.在一种可能的设计方式中,第一贴图为rgba16f格式,第一贴图包括r通道、g通道、b通道和a通道共四个通道。34.在一种可能的设计方式中,当一个或多个处理器执行计算机指令时,使得终端执行如下步骤:终端在终端的gpu的第一片上缓存tilebuffer中完成几何绘制,并将几何绘制结果存储在第一tilebuffer中。35.在一种可能的设计方式中,当一个或多个处理器执行计算机指令时,使得终端执行如下步骤:gpu从第一tilebuffer中获取法线信息。gpu在gpu的第二tilebuffer中基于深度渲染结果和法线信息,完成阴影渲染。36.在一种可能的设计方式中,终端采用前向渲染管线渲染第一图像,当一个或多个处理器执行计算机指令时,使得终端执行如下步骤:终端基于深度渲染结果,完成阴影渲染,得到第一图像的阴影渲染结果,阴影渲染结果包括阴影信息和距离信息。37.在一种可能的设计方式中,当一个或多个处理器执行计算机指令时,使得终端执行如下步骤:终端基于深度渲染结果、阴影信息和距离信息完成降噪处理。其中,深度渲染结果用于确定第一图像中的不连续表面,阴影信息用于确定第一图像中的阴影区域,距离信息用于确定第一图像中的半影区域。38.在一种可能的设计方式中,当一个或多个处理器执行计算机指令时,使得终端执行如下步骤:终端将阴影渲染结果编码到第二贴图后存储到内存中,第二贴图包括至少两个通道,其中一个通道用于存储阴影信息,另一个通道用于存储距离信息。在降噪处理前,终端从内存获取第二贴图,得到阴影渲染结果。39.在一种可能的设计方式中,第二贴图为rg16f格式,第二贴图包括r通道和g通道共两个通道。40.在一种可能的设计方式中,当一个或多个处理器执行计算机指令时,使得终端执行如下步骤:终端将平滑变化的阴影效果图贴在渲染得到的第一图像上,得到降噪后的第一图像。41.在一种可能的设计方式中,当一个或多个处理器执行计算机指令时,使得终端执行如下步骤:终端基于光线追踪算法完成阴影渲染。42.第三方面,提供一种芯片系统,芯片系统包括接口电路和处理器;接口电路和处理器通过线路互联;接口电路用于从存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,芯片系统执行如上述第一方面以及各种可能的设计中任一种的图像渲染方法。43.第四方面,提供一种计算机可读存储介质,计算机可读存储介质包括计算机指令,当计算机指令运行时,执行如上述第一方面以及各种可能的设计中任一种的图像渲染方法。44.第五方面,提供一种计算机程序产品,计算机程序产品中包括指令,当计算机程序产品在计算机上运行时,使得计算机可以根据指令执行如上述第一方面以及各种可能的设计中任一种的图像渲染方法。45.应当理解的是,上述第二方面,第三方面,第四方面,以及第五方面提供的技术方案,其技术特征均可对应到第一方面及其可能的设计中提供的图像渲染方法,因此能够达到的有益效果类似,此处不再赘述。附图说明46.图1为一种图像渲染的逻辑示意图;47.图2为一种光线追踪算法的原理示意图;48.图3为本技术实施例提供的一种降噪处理的输入输出示意图;49.图4为本技术实施例提供的一种终端的硬件结构图;50.图5为本技术实施例提供的一种终端的软硬件架构图;51.图6为本技术实施例提供的一种用于延迟渲染管线的降噪处理的输入输出示意图;52.图7为本技术实施例提供的一种阴影渲染的模块交互图;53.图8为本技术实施例提供的一种阴影渲染结果的存储形式的示意图;54.图9a为本技术实施例提供的一种降噪处理的模块交互图;55.图9b为本技术实施例提供的一种降噪处理过程的部分原理示意图;56.图10为本技术实施例提供的一种用于前向渲染管线的降噪处理的输入输出示意图;57.图11为本技术实施例提供的另一种阴影渲染的模块交互图;58.图12为本技术实施例提供的另一种阴影渲染结果的存储形式的示意图;59.图13为本技术实施例提供的一种图像处理的流程示意图;60.图14为本技术实施例提供的一种终端的组成示意图;61.图15为本技术实施例提供的一种芯片系统的组成示意图。具体实施方式62.下面结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。其中,在本技术实施例的描述中,以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本技术以下各实施例中,“至少一个”、“一个或多个”是指一个或两个以上(包含两个)。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a、b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。63.在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。术语“连接”包括直接连接和间接连接,除非另外说明。“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。64.在本技术实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。65.目前,大多移动终端都可以向用户提供图像显示功能。例如,手机、平板都可以提供图像显示功能。66.示例性的,移动终端中可以安装有应用程序(application,app)。在应用程序需要通过移动终端显示图像时,可以向移动终端发送指令,以便移动终端根据指令完成图像的渲染,最终通过移动终端的显示屏显示渲染获取的图像。67.结合图1,为一种图像渲染的流程示意图。移动终端中可以设置有中央处理器(centralprocessingunit,cpu)、gpu以及内存等。其中,cpu可以用于指令处理以及控制。gpu可以在cpu的控制下完成图像的渲染。内存则可以用于提供存储功能,如存储gpu渲染获取的渲染结果。68.如图1所示,应用程序可以下发渲染指令,用于指示移动终端渲染图像。cpu接收到渲染指令后,可以调用相应的图形绘制应用程序编程接口(applicationprogramminginterface,api),以便于指示gpu执行与该渲染指令对应的渲染操作。gpu执行渲染指令,并将渲染结果存储在内存中。最后,内存中的渲染结果可以送往显示屏显示。69.需要说明的是,在对一帧图像的渲染过程中,应用程序可以通过渲染指令控制移动终端对完成深度渲染、几何绘制、阴影渲染等渲染操作,由此获取完整的帧图像信息。以下示例中,以应用程序为游戏应用为例。可以理解的是,游戏应用在运行过程中可以通过移动终端向用户展示游戏画面。游戏画面可以是视频画面,视频画面可以是由多个连续播放的帧图像构成的。70.图像渲染的过程,可以基于光线追踪算法来实现。如图2所示,gpu可以基于光线追踪算法,把一个场景的渲染任务拆分成从相机(camera)发出的若干条光线(如图2所示的观察线(viewray))对场景的影响。每条观察线会和场景并行地求交,根据交点位置获取所要显示物体(sceneobject)的材质、纹理等信息,并结合光源(lightsource)信息计算光照。这样,通过计算观察线在图像(image)上各个像素点的信息,即可确定物体在图像上的投射情况。此外,在该场景中,光源可以照射到物体上形成阴影(如通过如图2所示的阴影线(shadowray)照射到物体上形成阴影)。那么,通过上述光线追踪算法,还可以确定物体的阴影对应在图像上的像素点的位置以及相关信息。从而可在图像上获取物体以及阴影的显示信息。71.也就是说,采用光线追踪算法,可以计算得到光照、纹理、材质、阴影等信息,从而使得渲染效果和精确性上具有较大提升。示例性的,继续参见图2,基于光线追踪算法对图像中的物体进行阴影渲染,使得图像中可以包括物体的阴影,更加真实。72.但是,采用光线追踪算法,发出的光线条数通常是有限的,那么,图像上的采样点之间也就并不是连续的。这样,渲染得到的图像上就容易出现噪点。因此,基于光线追踪算法渲染得到的图像的质量极大程度上依赖于降噪处理。降噪处理的效果好,则图像的质量高;降噪处理的效果差,则图像的质量低。73.常规情况下,在对光线追踪算法的渲染结果进行降噪处理时,gpu都需要获取大量的渲染结果来参与降噪计算。以采用svgf算法实现降噪处理为例,gpu不仅需要获取当前帧渲染得到的结果,还需要读取前一帧图像渲染得到的结果,如渲染结果包括深度、颜色等信息。应理解,渲染结果通常存储在内存中,gpu从内存中读取渲染结果,需要带宽开销。那么,gpu从内存中读取大量的渲染结果,则对gpu与内存之间的数据读写带宽提出了较高的要求。以及,常规的降噪算法,gpu在获取到大量的渲染结果后,需要在时域上不断迭代,算法复杂,运算量大。74.然而,手机、平板等移动终端中,gpu与内存之间的数据读写带宽是有限的,而且运算资源也是有限的。因此,手机、平板等移动终端极有可能无法负担常规的渲染算法,导致常规的降噪算法无法适用于这些移动终端。最终导致手机、平板等移动终端中显示的图像的质量较差。75.基于上述问题,本技术实施例提供了一种图像处理方法,该方法不仅可以适用于个人计算机(personalcomputer,pc)、xbox平台等运算能力较强的主机端,还可以适用于手机、平板等移动终端。为了方便说明,下文中将主机端和移动终端统称为终端。参见图3,终端在针对当前的帧图像完成深度渲染和阴影渲染后,可以依据深度渲染结果和阴影渲染结果对帧图像中阴影的边缘完成滤波处理,得到平滑的阴影效果图。然后将平滑的阴影效果图贴在渲染得到的帧图像上,则可以得到降噪后的帧图像。76.综上所述,采用本技术实施例,依据深度渲染结果和阴影渲染结果即可得到平滑的阴影效果图,从而可以消除阴影边缘的噪点。无需获取大量的渲染结果来实现降噪,从而可以减少对数据读写带宽的开销。并且,对阴影的边缘完成滤波处理即可消除阴影边缘的噪点,无需大量复杂的运算,可以简化运算。如此,本技术实施例的图像处理方法也可以适用于手机、平板等数据读写带宽和运算资源都有限的移动终端,提高了降噪处理的通用性。77.示例性的,上述终端可以是手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、pc、超级移动个人计算机(ultra-mobilepersonalcomputer,umpc)、上网本,以及蜂窝电话、个人数字助理(personaldigitalassistant,pda)、人工智能(artificialintelligence,ai)终端、可穿戴式终端、车载终端、智能家居终端和/或智慧城市终端等可以提供图像显示功能的终端。本技术实施例对该终端的具体形态不作特殊限制。78.参见图4,为本技术实施例提供的一种终端的硬件结构图。如图4所示,以终端是手机为例,终端可以包括处理器410,外部存储器接口420,内部存储器(简称内存)421,通用串行总线(universalserialbus,usb)接口440,充电管理模块440,电源管理模块441,电池442,天线1,天线2,移动通信模块450,无线通信模块460,音频模块470,扬声器470a,受话器470b,麦克风470c,耳机接口470d,传感器模块480,按键490,马达491,指示器492,摄像头493,显示屏494,以及用户标识模块(subscriberidentificationmodule,sim)卡接口495等。79.其中,处理器410可以包括cpu、gpu等多个处理器。gpu为图像处理的微处理器。gpu用于执行数学和几何计算,完成图像渲染和降噪处理等。处理器410可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。在一种具体的实现方式中,gpu可以设置有片上存储空间。在gpu运行过程中,可以快速调用其片上存储空间中的数据。设置在gpu片上存储空间中的帧缓冲也可以称为tilebuffer。与从内存中读取渲染结果相比,gpu从tilebuffer中读取渲染结果的带宽开销更低,可以降低带宽开销。80.可以理解的是,本实施例示意的结构并不构成对手机的具体限定。在另一些实施例中,手机可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。81.上述终端的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本技术实施例以分层架构的安卓(androidtm)系统为例,示例性说明终端的软件结构。分层架构将终端的软件系统分成若干个层,每一层都有清晰的角色和分工,层与层之间通过软件接口通信。82.参见图5,以手机为例,终端的软硬件架构可以包括应用(applications,app)层,框架(framework)层,系统库以及硬件层等。83.其中,应用层也可以称为应用程序层。在一些实现中,应用程序层可以包括一系列应用程序包。应用程序包可以包括相机,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频,短信息等应用程序。在本技术实施例中,应用程序包还可以包括需要通过渲染图像向用户展示图像或者视频的应用程序。示例性的,该需要渲染图像的应用程序可以包括游戏类应用程序,例如等。其中,视频可以理解为多帧图像的连续播放。在需要渲染的图像中,可以包括阴影效果。84.框架层也可以称为应用程序框架层。该框架层可以为应用层的应用程序提供应用编程接口(applicationprogramminginterface,api)和编程框架。框架层包括一些预先定义的函数。示例性的,框架层可以包括窗口管理器,内容提供器,视图系统,资源管理器,通知管理器,活动管理器,输入管理器等。窗口管理器提供窗口管理服务(windowmanagerservice,wms),wms可以用于窗口管理、窗口动画管理、surface管理以及作为输入系统的中转站。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。该数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端振动,指示灯闪烁等。活动管理器可以提供活动管理服务(activitymanagerservice,ams),ams可以用于系统组件(例如活动、服务、内容提供者、广播接收器)的启动、切换、调度以及应用进程的管理和调度工作。输入管理器可以提供输入管理服务(inputmanagerservice,ims),ims可以用于管理系统的输入,例如触摸屏输入、按键输入、传感器输入等。ims从输入设备节点取出事件,通过和wms的交互,将事件分配至合适的窗口。85.在本技术实施例中,在框架层中可以设置有一个或多个功能模块,用于实现本技术实施例提供的方案。示例性的,框架层中可以设置有创建模块以及处理模块等。86.其中,创建模块可以用于在内存以及gpu片上存储空间中创建帧缓冲(framebuffer,fb)。例如,创建模块在内存中创建用于存储深度渲染结果的帧缓冲、用于存储阴影渲染结果的帧缓冲、用于存储降噪处理结果的帧缓冲。又如,创建模块在gpu上创建用于阴影渲染的tilebuffer。在采用延迟渲染管线实现渲染时,创建模块还可以在gpu上创建用于几何绘制的tilebuffer。87.需要在此说明的是,在下文中,主要说明了帧缓冲的使用,而并未对帧缓冲的创建过程做过多说明,具体可参见相关现有技术中的说明,本文中不多赘述。88.处理模块可以用于对应用程序下发的渲染指令的处理,并调用相应的api指示gpu执行渲染操作。示例性的,处理模块可以在应用程序下发指示深度渲染的渲染指令(下文中称为深度渲染指令)时,控制gpu完成对当前帧图像的深度渲染操作,并将深度渲染结果存储在帧缓冲中。处理模块可以在应用程序下发指示阴影渲染的渲染指令(下文中称为阴影渲染指令)时,控制gpu获取深度渲染结果,并根据光线追踪算法完成阴影渲染操作得到阴影渲染结果,而后存储在帧缓冲中。89.又示例性的,在采用延迟渲染管线实现渲染时,处理模块在控制gpu完成深度渲染操作,并将深度渲染结果存储在帧缓冲的基础上,还可以在应用程序下发指示几何绘制的渲染指令(下文中称为几何绘制指令)时,控制gpu完成当前帧图像的几何绘制操作,并将包括法线信息的几何绘制结果存储在帧缓冲(如gpu的tilebuffe)中。处理模块可以在应用程序下发阴影渲染指令时,控制gpu获取深度渲染结果和几何绘制结果中的法线信息结果,如从内存的帧缓冲中获取深度渲染结果,从tilebuffer中获取法线信息,并根据光线追踪算法完成渲染操作得到阴影渲染结果,而后存储在帧缓冲中。90.可以看到,创建模块以及处理模块可以对应用程序下发的渲染指令完成对应的响应。在本技术实施例中,为了使得创建模块以及处理模块能够顺利获取应用程序下发的渲染命令,如图5所示,在框架层还可以设置有拦截模块。拦截模块可以用于接收应用程序下发的渲染指令,并根据渲染指令所指示的信息,将对应的渲染指令发送给相应的模块进行处理。例如,将创建帧缓冲的指令发送给创建模块进行处理。又如,将指示深度渲染的渲染指令发送给处理模块进行处理。91.上述关于处理模块的说明中,以处理模块基于应用程序下发的阴影渲染指令控制gpu执行阴影渲染操作来说明。在另一些实施例中,终端也可以自发的执行阴影渲染操作。在本实施例中,如图5所示,框架层中还可以设置阴影渲染模块。处理模块可以在gpu完成某项渲染后,如完成深度渲染或者完成几何绘制后,通知阴影渲染模块控制gpu完成阴影渲染。其中,处理模块可以根据gpu回调的已完成某项渲染的消息,确定gpu已完成某项渲染。例如,gpu在执行几何绘制操作得到几何绘制结果后,可以向处理模块发送已完成几何绘制的消息。处理模块在收到已完成几何绘制的消息后,则可以确定已完成几何绘制。92.本技术实施例中,gpu还需要完成降噪处理。与阴影渲染类似的:在一些实施例中,处理模块可以在应用程序下发降噪处理指令时,控制gpu完成对当前帧图像的降噪处理,并将降噪处理结果(即平滑的阴影效果图)存储在帧缓冲中。在另一些实施例中,终端也可以自发的执行降噪处理。在本实施例中,如图5所示,框架层中还可以设置降噪模块。处理模块或者阴影渲染模块可以在gpu完成阴影渲染后,通知降噪模块控制gpu完成降噪处理。其中,处理模块或者阴影渲染模块可以根据gpu回调的已完成阴影渲染的消息,确定gpu已完成阴影渲染。93.在下文中,主要以终端自发执行阴影渲染处理和降噪处理的实施例来说明。94.系统库可以包括多个功能模块。例如:表面管理器(surfacemanager),媒体框架(mediaframework),标准c库(standardclibrary,libc),sqlite、图形库等。95.其中,表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。媒体框架支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:动态图像专家组4(movingpicturesexpertsgroup,mpeg4),h.264,动态影像专家压缩标准音频层面3(movingpictureexpertsgroupaudiolayer3,mp3),高级音频编码(advancedaudiocoding,aac),自适应多码解码(adaptivemulti-rate,amr),联合图像专家组(jointphotographicexpertsgroup,jpeg,或称为jpg),便携式网络图形(portablenetworkgraphics,png)等。sqlite为终端的应用程序提供轻量级关系型数据库。96.其中,图形库可以包括如下中的至少一种:开放图形库(opengraphicslibrary,opengl)、嵌入式系统的开放图形库(openglforembeddedsystems,opengles)、vulkan等。图形库可以提供应用程序中2d图形和3d图形的绘制和操作。97.硬件层可以包括处理器,如cpu、gpu、npu等。其中,cpu可以控制框架层中的各个模型执行相应的功能。以及,硬件层中还可以包括内存。本技术实施例中,可以在内存中创建帧缓冲用于存储渲染结果和降噪处理结果。98.本技术实施例提供的图像处理方法,可以应用于具有上述图4和图5所示软硬件结构的终端,实现对图像的降噪处理。本技术中,考虑到噪点主要出现在阴影的边缘区域,因此主要对阴影的边缘执行滤波处理,形成平滑的阴影效果图,从而实现降噪。如此,可以有针对性的实现降噪。99.本技术实施例提供的图像处理方法可以应用于常见的前向渲染(forwardrendering)管线和延迟渲染(deferredrendering)管线中。这两种渲染管线的渲染流程不同,渲染过程中可产生的信息也不同。例如,采用前向渲染管线,可以渲染得到深度渲染结果。又如,采用延迟渲染管线,不仅可以得到深度渲染结果,还可以得到包括法线信息的几何渲染结果。下面将分别说明本技术实施例提供的图像处理方法在前向渲染管线和延迟渲染管线中的具体实现。100.参见图6,采用延迟渲染管线,可以将场景内所有几何体绘制到帧缓冲(如图6所示几何绘制过程)后再进行着色计算。几何绘制过程可以计算得到场景中的几何体映射到像素(片元)的位置、颜色、法线等信息。并且,采用延迟渲染管线,深度渲染得到的深度渲染结果(即图6所示的深度信息)和几何绘制得到的几何绘制结果(包括图6所示的法线信息)可用于阴影渲染,得到包括图6所示法线信息、阴影信息和距离信息的阴影渲染结果。101.那么,如图6所示,应用于延迟渲染管线,终端依据深度渲染结果和阴影渲染结果实现降噪处理,具体可以是:将深度渲染得到的深度信息,以及阴影渲染得到的法线信息、阴影信息和距离信息作为降噪处理的输入,并在降噪处理完成后输出平滑的阴影效果图。102.其中,深度渲染过程可以称为depthpass,在完成深度渲染后,可以将深度信息存储在内存的帧缓冲中,如图7所示的帧缓冲71中。几何绘制过程也可以称为g-bufferpass,在完成几何绘制后,可以将包括法线信息的几何绘制结果存储在帧缓冲中,该存储几何绘制结果的帧缓冲可以称为g-buffer。由于几何绘制过程中,gpu需要向g-buffer完成大量绘制,因此对gpu与g-buffer之间的读写数据带宽的开销较大。基于此,在一些实施例中,可以设置g-buffer为gpu的tilebuffer中的帧缓冲(也可以称为第一tilebuffer),如图7所示gpu中的帧缓冲72。如此,可以减少gpu向g-buffer绘制几何信息的带宽开销。应注意,在本技术实施例中,不对深度渲染和几何绘制的具体实现做详细说明,具体实施时,可参见相关现有技术的说明,本文不多赘述。103.以及,阴影渲染过程也可以称为shadowpass。在延迟渲染管线中,阴影渲染可以基于深度渲染得到的深度信息和几何绘制得到的法线信息来完成。因此,阴影渲染需要在深度渲染和几何绘制之后执行。但是,在本技术实施例中,不限定深度渲染和几何绘制之间的先后顺序。下文中,主要以在几何绘制完成后,紧接着完成阴影渲染为例来说明。104.示例性的,参见图7,为本技术实施例提供的一种实现阴影渲染的模块交互示意。该示例中,以终端在完成几何绘制后,自发执行阴影渲染为例来说明。105.如图7所示,处理模块可以在gpu完成几何绘制后,指示阴影渲染模块当前的渲染进度为:已完成几何绘制。其中,处理模块可以根据gpu回调的已完成几何绘制的消息,确定gpu完成几何绘制。阴影渲染模块在接收到已完成几何绘制的渲染进度后,向gpu下发阴影渲染指令。106.阴影渲染指令可以绑定(bind)gpu的tilebuffer(也可以称为第二tilebuffer),以便于利用tilebuffer的低带宽开销特性,在执行阴影渲染操作时高性能的访问g-buffer中的信息。例如,执行阴影渲染的指令可以绑定有帧缓冲73,以便于gpu在帧缓冲73中执行阴影渲染操作时,可以高性能的访问帧缓冲72中的法线信息。107.阴影渲染指令中还可以携带有存储深度信息的帧缓冲id,存储包括法线信息的几何绘制结果的帧缓冲id,以及存储阴影渲染结果的帧缓冲id。例如,阴影渲染指令中可以包括帧缓冲71的帧缓冲id,帧缓冲72的帧缓冲id,以及帧缓冲74的帧缓冲id。以便于gpu从帧缓冲71以及帧缓冲72中获取阴影渲染过程所需要的输入数据,以及将阴影渲染结果存储到帧缓冲74中。108.响应于该阴影渲染指令,gpu可以获取深度信息和法线信息,完成阴影渲染操作。例如,gpu可以从帧缓冲71上获取深度信息,从帧缓冲72上获取法线信息。109.在本技术中,gpu可以在完成阴影渲染操作后,将阴影渲染结果存储在内存中,以便在后续降噪处理过程中,可以调用阴影渲染结果。例如,gpu可以将阴影渲染结果存储到内存的帧缓冲74中。110.其中,阴影渲染结果包括法线信息、阴影信息以及距离信息。其中,法线信息可以包括x、y两个方向上的法线信息。也即,法线信息可以包括法线信息(x)以及法线信息(y)两部分。法线信息(x)也可以被称为normal(x),该法线信息(y)也可以被称为normal(y)。111.在本技术中,gpu在将阴影渲染结果存储到内存的帧缓冲中时,可以将所有的阴影渲染结果编码为一张预设格式的贴图(也可以称为第一贴图)后存储到帧缓冲中。将阴影渲染结果编码到一张贴图上,可以减少脱离tilebuffer后,向帧缓冲中写入该阴影渲染结果或者后续降噪处理时从帧缓冲读取该阴影渲染结果所需的带宽。112.其中,该预设格式的贴图可以包括至少四个通道。两个通道用于存储法线信息,一个通道用于存储阴影信息,另一个通道用于存储距离信息。113.作为一种可能的实现,预设格式可以为rgba16f格式。结合图8,gpu在帧缓冲73上完成阴影渲染操作之后,可以将阴影渲染结果编码到rgba16f格式的贴图上,然后输出到帧缓冲74上。那么,在帧缓冲74中,阴影渲染结果可以rgba16f格式的贴图存在。例如,法线信息(x)(即normal(x))可以被存储到帧缓冲74上rgba16f格式的贴图的r通道中;法线信息(y)(即normal(y))可以被存储到帧缓冲74上rgba16f格式的贴图的g通道中;阴影信息(shadowmask)可以被存储到帧缓冲74上rgba16f格式的贴图的b通道中;距离信息(distance)可以被存储到帧缓冲74上rgba16f格式的贴图的a通道中。114.在经过前述过程完成深度渲染后,则可以得到深度信息;以及,在经过前述过程完成几何绘制和阴影渲染后,则可以得到阴影渲染结果,阴影渲染结果包括法线信息、阴影信息以及距离信息。此后,则可以执行降噪处理。115.示例性的,参见图9a,为本技术实施例提供的一种实现降噪处理的模块交互示意。该示例中,以终端在完成阴影渲染得到阴影渲染结果后,自发执行降噪处理为例来说明。116.如图9a所示,阴影渲染模块可以在gpu完成阴影渲染后,指示降噪模块当前的渲染进度为:已完成阴影渲染。其中,阴影渲染模块可以根据gpu回调的已完成阴影渲染的消息,确定gpu完成阴影渲染。降噪模块在接收到已完成阴影渲染的消息后,可以向gpu下发执行降噪处理指令。117.降噪处理指令中可以携带有存储深度信息的帧缓冲id,存储阴影渲染结果的帧缓冲id,以及存储降噪处理结果的帧缓冲id。例如,降噪处理指令中可以包括帧缓冲71的帧缓冲id,帧缓冲74的帧缓冲id,以及帧缓冲91的帧缓冲id。以便于gpu从帧缓冲71以及帧缓冲74中获取降噪处理过程所需要的输入数据,以及将降噪处理结果存储到帧缓冲91中。118.响应于降噪处理指令,gpu可以获取深度信息、法线信息、阴影信息和距离信息,完成降噪处理操作。应理解,若法线信息、阴影信息和距离信息是编码为预设格式的贴图后存储的,那么,gpu仅需从帧缓冲中获取一张贴图,即可得到法线信息、阴影信息和距离信息,从而可以减少数据读取所需的带宽。例如,gpu可以从帧缓冲71上获取深度信息,从帧缓冲74上获取存储有法线信息、阴影信息和距离信息的贴图。119.其中,阴影信息可用于gpu确定帧图像中的阴影区域,阴影区域包括本影区域和半影区域,本影区域是指是指完全暗区域,半影区域是指半明半暗的区域。半影区域通常位于阴影区域的边缘,噪点一般出现在半影区域内。距离信息可用于计算阴影区域中半影区域的像素范围(kernel)。120.在一些实施例中,在计算得到半影区域的像素范围后,gpu则可以对该像素范围进行滤波处理(也可以称为柔化处理、模糊处理等),使半影区域内的像素点的颜色变化更为平滑,得到平滑的阴影效果图。如此,则可以完成对帧图像的降噪处理。121.实际帧图像中,相邻的像素点在空间中可能并不连续。这通常是由于空间具有深度导致的。如图9b所示,假设像素a和像素b为图像上的两个相邻像素,但在实际空间中,像素a为桌面上的一点,像素b可能为地面或者墙上的一点,很显然,像素a和像素b在空间中并不是连续的,也可以称为表面不连续。在这种表面不连续的位置,阴影区域通常不会继续延续。例如,图9b中杯子的阴影在像素a的方向,由于像素a和像素b之间是桌子边缘是地面或者墙面的分界,因此并不连续,则杯子的阴影不会延伸到像素b。122.基于此,在一些实施例中,gpu还可以基于深度信息确定帧图像中的不连续表面,并在滤波处理时,仅对连续的像素点进行滤波处理。gpu可以对深度信息求偏导数,该偏导数可以表示视空间z的变化率。变化率大,则表示表面是不连续的;变化率小,则表示表面是连续的。gpu可以判断计算得到的偏导数是否大于预设阈值,如0.1、0.12等。若偏导数大于预设阈值,则表示相应位置的表面是不连续的。那么,在滤波处理时,即使该位置对应的像素在半影区域的像素范围内,也不会对其进行滤波处理。反之,若偏导数小于预设阈值,则表示相应位置的表面是连续的。那么,在滤波处理时,若该位置对应的像素在半影区域的像素范围内,则会对其进行滤波处理。如此,不会对不连续表面进行滤波处理,即不会对不存在阴影的位置进行滤波处理,从而可以提升滤波处理的准确性。123.在帧图像中,相邻像素的方向发生突变,则阴影的方向也会随之发生变化。例如,放在椅子的椅面上的物体,其阴影可能同时在椅面和椅背上。但是,由于椅背和椅面几乎是垂直的,则在椅背和椅面相交的位置处,阴影的方向也会发生较大的变化。基于此,在一些实施例中,gpu还可以基于法线信息确定像素的方向,根据像素的方向确定阴影的方向变化。从而便于在滤波处理过程中,更准确的确定半影区域的位置。124.经过上述降噪处理,可以使阴影的边缘(即半影区域)变得更为平滑,得到平滑的阴影效果图。并在完成上述降噪处理操作后,将降噪处理得到的平滑的阴影效果图存储在内存中,以便后续生成降噪的帧图像。例如,gpu可以将降噪处理结果存储到内存的帧缓冲91中。125.这样,在延迟渲染管线中,无需获取前一帧图像的深度、颜色等信息,也无需当前帧图像的大量g-buffer信息,即可实现降噪处理。从而可以降低降噪处理过程中因获取大量信息而导致带宽开销大。126.在完成所有的渲染操作以及降噪处理后,可以将平滑的阴影效果图贴到渲染得到的帧图像上,从而得到降噪后的帧图像。127.与延迟渲染管线不同的是:采用前向渲染管线,针对场景中的一个几何体,需要执行从顶点着色器到像素着色器的一系列计算,然后输出到帧缓冲。通常情况下,场景中会包括多个几何体,那么,则需要对该多个几何体中的每个几何体都执行从顶点着色器到像素着色器的一系列计算,然后输出到帧缓冲。也就是说,采用前向渲染管线,是以几何体为单位来完成渲染的,针对每一个几何体,直至完成像素着色器之后才会输出,中间不会输出包括法线信息的几何绘制结果。即,采用前向渲染管线,不存在g-bufferpass的过程。128.示例性的,场景中包括2把椅子和1个桌子共3个几何体,则采用前线渲染管线可以先对其中一把椅子执行从顶点着色器到像素着色器的一系列计算,将结果输出到帧缓冲;然后对另一把椅子执行从顶点着色器到像素着色器的一系列计算,将结果输出到帧缓冲;最后对桌子执行从顶点着色器到像素着色器的一系列计算,将结果输出到帧缓冲。129.那么,采用前向渲染管线,没有法线信息可用于阴影渲染,相应的,得到的阴影渲染结果也不会包括法线信息。参见图10,应用于前向渲染管线,终端依据深度渲染结果和阴影渲染结果实现降噪处理,具体可以是:将深度渲染得到的深度信息,以及阴影渲染得到的阴影信息和距离信息作为降噪处理的输入,并在降噪处理完成后输出平滑的阴影效果图。130.在前向渲染管线中,深度渲染过程同样可以称为depthpass,在完成深度渲染后,可以将深度信息存储在内存的帧缓冲中,如图11所示的帧缓冲1101中。以及,阴影渲染过程同样可以称为shadowpass。在前向渲染管线中,阴影渲染无法获得法线信息,而只能基于深度信息来完成。因此,阴影渲染需要在深度渲染之后执行。下文中,主要以在深度渲染完成后,紧接着完成阴影渲染为例来说明。131.示例性的,参见图11,为本技术实施例提供的一种实现阴影渲染的模块交互示意。该示例中,以终端在完成深度渲染后,自发执行阴影渲染为例来说明。132.如图11所示,处理模块可以在gpu完成深度渲染后,指示阴影渲染模块当前的渲染进度为:已完成深度渲染。其中,处理模块可以根据gpu回调的已完成深度渲染的消息,确定gpu完成深度渲染。阴影渲染模块在接收到已完成几何绘制的渲染进度后,向gpu下发阴影渲染指令。133.阴影渲染指令中可以携带有存储深度信息的帧缓冲id,以及存储阴影渲染结果的帧缓冲id。例如,阴影渲染指令中可以包括帧缓冲1101的帧缓冲id,以及帧缓冲1102的帧缓冲id。以便于gpu从帧缓冲1101中获取阴影渲染过程所需要的深度信息,以及将阴影渲染结果存储到帧缓冲1102中。134.响应于该阴影渲染指令,gpu可以获取深度信息,完成阴影渲染操作。例如,gpu可以从帧缓冲1101上获取深度信息。135.在本技术中,gpu可以在完成阴影渲染操作后,将阴影渲染结果存储在内存中,以便在后续降噪处理过程中,可以调用阴影渲染结果。例如,gpu可以将阴影渲染结果存储到内存的帧缓冲1102中。其中,与延迟渲染管线不同的是:在前向渲染管线中,阴影渲染结果包括阴影信息以及距离信息,但不包括法线信息。136.在本技术中,gpu在将阴影渲染结果存储到内存的帧缓冲中时,可以将所有的阴影渲染结果编码为一张预设格式的贴图(也可以称为第二贴图)后存储到帧缓冲中。将阴影渲染结果编码存储到一张贴图上,可以减少向帧缓冲中写入该阴影渲染结果或者后续降噪处理时从帧缓冲读取阴影渲染结果所需的带宽。137.其中,该预设格式的贴图可以包括至少两个通道。一个通道用于存储阴影信息,另一个通道用于存储距离信息。138.作为一种可能的实现,预设格式可以为rg16f格式。结合图12,gpu在完成阴影渲染操作之后,可以将阴影渲染结果编码到rg16f格式的贴图上,然后输出到帧缓冲1102上。那么,在帧缓冲1102中,阴影渲染结果可以rg16f格式的贴图存在。例如,阴影信息(shadowmask)可以被存储到帧缓冲1102上rg16f格式的贴图的r通道中;距离信息(distance)可以被存储到帧缓冲1102上rgba16f格式的贴图的g通道中。139.在经过前述过程完成深度渲染后,则可以得到深度信息;以及,在经过前述过程完成阴影渲染后,则可以得到阴影渲染结果,阴影渲染结果包括阴影信息以及距离信息。此后,则可以执行降噪处理。140.在前向渲染管线中,实现降噪处理的过程与前文延迟渲染管线中实现降噪处理的过程类似,具体可参见前文关于图9a的相关说明,此处不再赘述。唯一不同的是:在延迟渲染管线中,gpu响应于降噪处理指令,获取的阴影渲染结果包括阴影信息和距离信息,但不包括法线信息。gpu在获取深度信息、阴影信息和距离信息后,可基于阴影信息确定帧图像中的阴影区域,基于距离信息计算阴影区域中半影区域的像素范围(kernel),以及基于深度信息确定帧图像中的不连续表面。具体原理可参见延迟渲染管线中的相关说明,此处不再赘述。141.经过上述降噪处理,可以使阴影的边缘(即半影区域)变得更为平滑,得到平滑的阴影效果图。并在完成上述降噪处理操作后,将降噪处理得到的平滑的阴影效果图存储在内存中,以便后续生成降噪的帧图像。142.也就是说,在前向渲染管线中,即使没有足够的几何信息,如没有法线信息,也可以依据深度信息、阴影信息和距离信息来实现降噪处理。如此,可以在前向渲染管线的几何信息有限的情况下,实现降噪。从而克服了常规降噪技术只能适用于延迟渲染管线的缺陷。143.最后,在完成所有的渲染操作以及降噪处理后,可以将平滑的阴影效果图贴到渲染得到的帧图像上,从而得到降噪后的帧图像。144.上述实施例中,主要从模块间交互的角度对本技术实施例提供的渲染方法进行了说明。以下结合图13所示的模块交互流程图,继续对本技术实施例提供的方案进行说明。由于不同终端、或者相同终端中的不同应用程序的渲染流程是存在差异的,因此,在图13中并未对深度渲染、几何绘制、阴影渲染等渲染过程做说明,而只是示出了内存中可以存储深度渲染得到的深度渲染结果,以及存储阴影渲染得到的阴影渲染结果。并且,在图13中,以终端完成阴影处理后,自动执行降噪操作为例来说明。145.s1301、gpu向阴影渲染模块发送阴影渲染完成的指示。146.s1302、阴影渲染模块向降噪模块发送阴影渲染完成的指示。147.s1303、降噪模块向gpu发送降噪指令。148.本实施例中,在gpu完成阴影渲染后则接着触发降噪处理。实际中,执行降噪处理的时机并不以此为限,只要可以保证在将渲染得到的帧图像送显前,得到降噪处理结果即可。例如,也可以在所有的渲染处理完成后才触发降噪处理。149.s1304、gpu从内存中读取深度信息和阴影渲染结果。150.应理解,采用延迟渲染管线执行阴影渲染操作,则得到的阴影渲染结果中包括法线信息、阴影信息和距离信息;而采用前向渲染管线执行阴影渲染操作,得到的阴影渲染结果中包括阴影信息和距离信息,不包括法线信息。也就是说,采用不同的渲染管线,则得到的阴影渲染结果是不同的,因此后续用于降噪处理的信息也是不同的。151.在一些实施例中,阴影渲染结果以一张预设格式的贴图存储,数据量小,存储和读取阴影渲染结果的过程中对带宽的开销较小。例如,在延迟渲染管线中,阴影渲染结果以rgba16f格式的64位贴图保存;在前向渲染管线中,阴影渲染结果以rg16f格式的32位贴图保存。152.s1305、gpu根据深度信息和阴影渲染结果执行降噪处理。具体可参见前文关于得到平滑的阴影效果图的说明。153.s1306、gpu向内存发送降噪处理结果。降噪处理结果即为平滑的阴影效果图。154.s1307、存储降噪处理结果。155.在后续将帧图像送显前,可以将降噪处理结果贴在渲染得到的帧图像上,从而可以实现对帧图像的降噪,消除阴影边缘的噪点。156.这样,只要获取深度渲染结果和阴影渲染结果作为输入,即可实现降噪。易于集成到延迟渲染管线和前向渲染管线中。157.上述主要从各个服务模块的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。158.图14示出了的一种终端1400的组成示意图。如图14所示,该终端1400可以包括:处理器1401和存储器1402。该存储器1402用于存储计算机执行指令。示例性的,在一些实施例中,当该处理器1401执行该存储器1402存储的指令时,可以使得该终端1400执行上述实施例中任一种所示的方法。159.需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。160.图15示出了的一种芯片系统1500的组成示意图。该芯片系统1500可以包括:处理器1501和通信接口1502,用于支持相关设备实现上述实施例中所涉及的功能。在一种可能的设计中,芯片系统还包括存储器,用于保存终端必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。需要说明的是,在本技术的一些实现方式中,该通信接口1502也可称为接口电路。161.需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。162.在上述实施例中的功能或动作或操作或步骤等,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。163.尽管结合具体特征及其实施例对本技术进行了描述,显而易见的,在不脱离本技术的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本技术的示例性说明,且视为已覆盖本技术范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包括这些改动和变型在内。当前第1页12当前第1页12
技术特征:
1.一种图像处理方法,其特征在于,应用于终端,所述终端需要显示第一图像,所述方法包括:所述终端完成深度渲染,得到所述第一图像的深度渲染结果;所述终端完成阴影渲染,得到所述第一图像的阴影渲染结果;所述终端基于所述深度渲染结果和所述阴影渲染结果完成降噪处理,得到平滑变化的阴影效果图。2.根据权利要求1所述的方法,其特征在于,所述终端采用延迟渲染管线渲染所述第一图像,在所述终端完成阴影渲染,得到所述第一图像的阴影渲染结果之前,所述方法还包括:所述终端完成几何绘制,得到所述第一图像的几何绘制结果,所述几何绘制结果包括法线信息;所述终端完成阴影渲染,得到所述第一图像的阴影渲染结果,包括:所述终端基于所述深度渲染结果和法线信息,完成阴影渲染,得到所述第一图像的阴影渲染结果,所述阴影渲染结果包括法线信息、阴影信息和距离信息。3.根据权利要求2所述的方法,其特征在于,所述终端基于所述深度渲染结果和所述阴影渲染结果完成降噪处理,包括:所述终端基于所述深度渲染结果、所述法线信息、所述阴影信息和所述距离信息完成降噪处理,所述深度渲染结果用于确定所述第一图像中的不连续表面,所述法线信息用于确定所述第一图像中各个像素的方向,所述阴影信息用于确定所述第一图像中的阴影区域,所述距离信息用于确定所述第一图像中的半影区域。4.根据权利要求2或3所述的方法,其特征在于,在所述得到所述第一图像的阴影渲染结果后,所述方法还包括:所述终端将所述阴影渲染结果编码到第一贴图后存储到内存中,所述第一贴图包括至少四个通道,其中两个通道用于存储所述法线信息,剩余两个通道中的一个通道用于存储阴影信息、另一个通道用于存储距离信息;在降噪处理前,所述终端从所述内存获取所述第一贴图,得到所述阴影渲染结果。5.根据权利要求4所述的方法,其特征在于,所述第一贴图为rgba16f格式,所述第一贴图包括r通道、g通道、b通道和a通道共四个通道。6.根据权利要求2-5中任一项所述的方法,其特征在于,所述终端完成几何绘制,得到所述第一图像的几何绘制结果,包括:所述终端在所述终端的gpu的第一片上缓存tile buffer中完成几何绘制,并将所述几何绘制结果存储在所述第一tile buffer中。7.根据权利要求6所述的方法,其特征在于,在所述终端基于所述深度渲染结果和法线信息,完成阴影渲染之前,所述方法还包括:所述gpu从所述第一tile buffer中获取法线信息;所述终端基于所述深度渲染结果和法线信息,完成阴影渲染,包括:所述gpu在所述gpu的第二tile buffer中基于所述深度渲染结果和所述法线信息,完成阴影渲染。8.根据权利要求1所述的方法,其特征在于,所述终端采用前向渲染管线渲染所述第一
图像,所述终端完成阴影渲染,得到所述第一图像的阴影渲染结果,包括:所述终端基于所述深度渲染结果,完成阴影渲染,得到所述第一图像的阴影渲染结果,所述阴影渲染结果包括阴影信息和距离信息。9.根据权利要求8所述的方法,其特征在于,所述终端基于所述深度渲染结果和所述阴影渲染结果完成降噪处理,包括:所述终端基于所述深度渲染结果、所述阴影信息和所述距离信息完成降噪处理,所述深度渲染结果用于确定所述第一图像中的不连续表面,所述阴影信息用于确定所述第一图像中的阴影区域,所述距离信息用于确定所述第一图像中的半影区域。10.根据权利要求8或9所述的方法,其特征在于,在所述得到所述第一图像的阴影渲染结果后,所述方法还包括:所述终端将所述阴影渲染结果编码到第二贴图后存储到内存中,所述第二贴图包括至少两个通道,其中一个通道用于存储阴影信息,另一个通道用于存储距离信息;在降噪处理前,所述终端从内存中获取所述第二贴图,得到所述阴影渲染结果。11.根据权利要求10所述的方法,其特征在于,所述第二贴图为rg16f格式,所述第二贴图包括r通道和g通道共两个通道。12.根据权利要求1-11中任一项所述的方法,其特征在于,在所述得到平滑变化的阴影效果图之后,所述方法还包括:所述终端将所述平滑变化的阴影效果图贴在渲染得到的所述第一图像上,得到降噪后的所述第一图像。13.根据权利要求1-12中任一项所述的方法,其特征在于,所述终端完成阴影渲染,包括:所述终端基于光线追踪算法完成阴影渲染。14.一种终端,其特征在于,所述终端包括一个或多个处理器和一个或多个存储器;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器存储有计算机指令;当所述一个或多个处理器执行所述计算机指令时,使得所述终端执行如权利要求1-13中任一项所述的图像处理方法。15.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在终端上运行时,使得所述终端执行如权利要求1-13中任一项所述的图像处理方法。16.一种芯片系统,其特征在于,所述芯片系统包括接口电路和处理器;所述接口电路和所述处理器通过线路互联;所述接口电路用于从存储器接收信号,并向所述处理器发送信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述芯片系统执行如权利要求1-13中任一项所述的图像处理方法。
技术总结
一种图像处理方法及终端,涉及图像处理技术领域,利用当前帧图像渲染过程中得到的深度渲染结果和阴影渲染结果实现降噪处理,无需获取大量的信息参与运算,降低了对带宽的要求,可以适用于手机、平板等移动终端。方法包括:终端完成深度渲染,得到第一图像的深度渲染结果。终端完成阴影渲染,得到第一图像的阴影渲染结果。终端基于深度渲染结果和阴影渲染结果完成降噪处理,得到平滑变化的阴影效果图。得到平滑变化的阴影效果图。得到平滑变化的阴影效果图。
技术研发人员:王伟亮
受保护的技术使用者:荣耀终端有限公司
技术研发日:2022.09.27
技术公布日:2023/9/11
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/