CN115880408A - 一种分块渲染模式图形处理方法及系统 - Google Patents
一种分块渲染模式图形处理方法及系统 Download PDFInfo
- Publication number
- CN115880408A CN115880408A CN202211538863.5A CN202211538863A CN115880408A CN 115880408 A CN115880408 A CN 115880408A CN 202211538863 A CN202211538863 A CN 202211538863A CN 115880408 A CN115880408 A CN 115880408A
- Authority
- CN
- China
- Prior art keywords
- pixels
- pixel
- tile
- target tile
- target
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 181
- 238000009877 rendering Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000001914 filtration Methods 0.000 claims abstract description 152
- 239000012634 fragment Substances 0.000 claims abstract description 23
- 238000012805 post-processing Methods 0.000 claims abstract description 21
- 230000000007 visual effect Effects 0.000 claims abstract description 18
- 238000000638 solvent extraction Methods 0.000 claims abstract description 4
- 230000015654 memory Effects 0.000 claims description 38
- 238000003672 processing method Methods 0.000 claims description 9
- 238000004040 coloring Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 9
- 230000000903 blocking effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- 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/06—Topological mapping of higher dimensional structures onto lower dimensional surfaces
- G06T3/067—Reshaping or unfolding 3D tree structures onto 2D planes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- 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/20021—Dividing image into blocks, subimages or windows
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种分块渲染模式图形处理方法及系统。该图形处理系统包括几何处理系统和片段处理系统;几何处理系统用于对图元进行几何处理后,将可见的图元分块到屏幕视觉空间的多个图块M;片段处理系统用于对多个图块M进行渲染,生成多个图块M的渲染图像;片段处理系统包括后处理模块,后处理模块用于在多个图块M中的目标图块M0的渲染图像生成后、多个图块M的渲染图像全部生成前的第一时间,开始对目标图块M0的第一像素集Pin0中的像素进行像素滤波处理。本发明能有效提升整体图像像素滤波的处理效率,且不会产生额外的像素着色工作量。
Description
技术领域
本发明属于图像处理技术领域,更具体地,涉及一种分块渲染模式图形处理方法及系统。
背景技术
计算机图形处理系统用于处理各种计算机图形应用(例如计算机游戏)的图形数据(包括图元数据和顶点数据),输出通过渲染管道产生的渲染图像。
图形应用程序中的三维模型是使用图元(primitives)(例如包括但不限于三角形、线、点)对场景中物体的剖分建立的,这些图元由顶点为其在三维空间中的位置以及光线效果和着色特性定义。三维模型中图元和顶点的几何数据作为渲染过程中几何处理阶段(geometry processing)的输入数据流,被发送到计算机图形处理系统,对输入图元做几何处理,包括将图元转换到屏幕空间,并删除屏幕空间中不可见的图元。经过几何处理后,图元和顶点的几何数据被发送到片段处理管道(fragment processing pipeline),以便在计算机图形处理系统中进行渲染。作为渲染处理的结果,计算机图形处理系统生成3D模型的输出图像,并在显示单元(例如显示屏幕)上进行显示。
现有的计算机图形处理系统包括基于图块(tile-based)的分块渲染模式。在分块渲染模式下,屏幕被划分为多个矩形图块,图元经过几何处理后在屏幕上被分类至不同图块,然后在屏幕上的每个图块中分别进行片段处理,生成渲染图像。由于分块渲染模式的计算机图形处理系统的渲染图像是在每个图块中单独生成的,而每个图块边界上像素的滤波将涉及相邻图块中的像素,这导致对图块的像素滤波无法在图块处理过程中完成,而是需要等待所有图块的渲染完成后,再对图块进行像素滤波处理,效率较低。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种分块渲染模式图形处理方法及系统,能有效提升整体图像像素滤波的处理效率,且不会产生额外的像素着色工作量。
为实现上述目的,按照本发明的一个方面,提供了一种图形处理系统,包括几何处理系统和片段处理系统;几何处理系统用于对图元进行几何处理后,将可见的图元分块到屏幕视觉空间的多个图块M;片段处理系统用于对多个图块M进行渲染,生成多个图块M的渲染图像,每个图块M具有第一像素集Pin、第二像素集Pb和第三像素集Ptile;其中,Pin=Ptile-Pb,第三像素集Ptile包含了图块M的所有像素;片段处理系统包括后处理模块,后处理模块用于在多个图块M中的目标图块M0的渲染图像生成后、多个图块M的渲染图像全部生成前的第一时间,开始对目标图块M0的第一像素集Pin0中的像素进行像素滤波处理。
在一些实施方式中,后处理模块还用于在多个图块M的渲染图像全部生成后的第二时间,开始对目标图块M0的第二像素集Pb0中的像素进行像素滤波处理。
在一些实施方式中,后处理模块还用于在多个图块M中的目标图块M0的渲染图像生成后、多个图块M的渲染图像全部生成前的第三时间,开始检查目标图块M0的多个相邻图块MX中的渲染状态,在多个相邻图块MX中用于对目标图块M0的第二像素集Pb0中的像素进行像素滤波处理的像素信息全部生成时,对目标图块M0的第二像素集Pb0中的像素进行像素滤波处理;或者,在多个相邻图块MX中用于对目标图块M0的第二像素集Pb0中的像素子集进行像素滤波处理的像素信息全部生成时,对目标图块M0的第二像素集Pb0中的像素子集进行像素滤波处理。
在一些实施方式中,后处理模块还用于在多个图块M的渲染图像全部生成后的第二时间,开始对目标图块M0的第二像素集Pb0中的剩余像素进行像素滤波处理;剩余像素为目标图块M0的第二像素集Pb0中未能在多个图块M的渲染图像全部生成前进行像素滤波处理的像素。
在一些实施方式中,后处理模块还用于设置边界掩码,根据所述边界掩码判断第二像素集Pb0中的像素或者像素子集是否已在多个图块M的渲染图像全部生成前进行像素滤波处理。
在一些实施方式中,将图块M的每条边界均向内移动k个像素,得到的第一矩形区域中的像素构成所述第一像素集Pin;启用(2k+1)×(2k+1)滤波核对目标图块M0的第一像素集Pin0中的像素进行像素滤波处理。
在一些实施方式中,每个图块M还具有第四像素集Ps,第四像素集Ps由图块M的矩形区域去除第二矩形区域之后的第一剩余区域中的像素构成,第二矩形区域通过将图块M的每条边界均向内移动2k个像素得到;片段处理系统用于将每个图块M的第四像素集Ps单独存储;后处理模块还用于从目标图块M0的多个相邻图块MX的第四像素集PsX中获取第二剩余区域中的像素颜色信息,第二剩余区域为第三矩形区域去除目标图块M0的矩形区域之后的区域,第三矩形区域通过将目标图块M0的每条边界向外移动k个像素得到;后处理模块还用于根据目标图块M0的第四像素集Ps0中的像素颜色信息以及第二剩余区域中的像素颜色信息,对目标图块M0的第二像素集Pb0中的像素启用(2k+1)×(2k+1)滤波核进行像素滤波处理。
在一些实施方式中,片段处理系统用于根据目标图块M0的图块索引、多个相邻图块MX的图块索引和目标图块M0内的像素偏移量,计算对第二像素集Pb0中的像素启用(2k+1)×(2k+1)滤波核进行像素滤波处理所需的像素颜色地址。
在一些实施方式中,片段处理系统用于将第四像素集Ps中的像素信息作为一个整体、以图块为单位进行存储;以及在每个图块M对应的存储空间中,将第四像素集Ps中的像素信息按照图块M的顶部像素、底部像素、左侧像素和右侧像素的顺序进行存储。
在一些实施方式中,片段处理系统用于逐列存储第四像素集Ps中图块M的顶部的第一组像素的像素信息,逐列存储第四像素集Ps中图块M的底部的第二组像素的像素信息,逐行存储第四像素集Ps中图块M的左侧的第三组像素的像素信息,以及逐行存储第四像素集Ps中图块M的右侧的第四组像素的像素信息。
在一些实施方式中,对于(2k+1)×(2k+1)滤波核,目标图块M0的第四像素集Ps0中目标图块M0的右侧的第四组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+2×uPhori0+uPvert0+y×2k+(x-Pr0+2k-1),
其中,x和y分别表示该像素在像素坐标系中的横坐标和纵坐标,TileM0表示目标图块M0的图块索引,uPs0表示第四像素集Ps0中的像素数量,uPhori0表示第四像素集Ps0中目标图块M0的顶部像素或者底部像素数量,uPvert0表示第四像素集Ps0中目标图块M0的左侧像素数量或者右侧像素数量,Pr0表示目标图块M0的右侧边界的像素偏移。
在一些实施方式中,对于(2k+1)×(2k+1)滤波核,目标图块M0的第四像素集Ps0中目标图块M0的左侧的第三组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+2×uPhori0+y×2k+x。
在一些实施方式中,对于(2k+1)×(2k+1)滤波核,目标图块M0的第四像素集Ps0中目标图块M0的顶部的第一组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+2k×x+(Pd0-y),
其中,Pd0表示目标图块M0的顶部边界的像素偏移。
在一些实施方式中,对于(2k+1)×(2k+1)滤波核,目标图块M0的第四像素集Ps0中目标图块M0的底部的第二组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+uPhori0+2k×x+(2k-1-y)。
根据本发明的另一方面,提供了一种图形处理方法,其特征在于,包括:对图元进行几何处理后,将可见的图元分块到屏幕视觉空间的多个图块M;对多个图块M进行渲染,生成多个图块M的渲染图像;每个图块M具有第一像素集Pin、第二像素集Pb和第三像素集Ptile;其中,Pin=Ptile-Pb,第三像素集Ptile包含了图块M的所有像素;在多个图块M中的目标图块M0的渲染图像生成后、多个图块M的渲染图像全部生成前的第一时间,开始对目标图块M0的第一像素集Pin0中的像素进行像素滤波处理。
在一些实施方式中,上述方法还包括:在多个图块M的渲染图像全部生成后的第二时间,开始对目标图块M0的第二像素集Pb0中的像素进行像素滤波处理。
在一些实施方式中,上述方法还包括:在多个图块M中的目标图块M0的渲染图像生成后、多个图块M的渲染图像全部生成前的第三时间,开始检查目标图块M0的多个相邻图块MX中的渲染状态;在多个相邻图块MX中用于对目标图块M0的第二像素集Pb0中的像素进行像素滤波处理的像素信息全部生成时,对目标图块M0的第二像素集Pb0中的像素进行像素滤波处理。
在一些实施方式中,上述方法还包括:在多个图块M中的目标图块M0的渲染图像生成后、多个图块M的渲染图像全部生成前的第三时间,开始检查目标图块M0的多个相邻图块MX中的渲染状态;在多个相邻图块MX中用于对目标图块M0的第二像素集Pb0中的像素子集进行像素滤波处理的像素信息全部生成时,对目标图块M0的第二像素集Pb0中的像素子集进行像素滤波处理。
在一些实施方式中,上述方法还包括:在多个图块M的渲染图像全部生成后的第二时间,开始对目标图块M0的第二像素集Pb0中的剩余像素进行像素滤波处理;剩余像素为目标图块M0的第二像素集Pb0中未能在所述多个图块M的渲染图像全部生成前进行像素滤波处理的像素。
在一些实施方式中,上述方法还包括:设置边界掩码,根据所述边界掩码判断第二像素集Pb0中的像素或者像素子集是否已在多个图块M的渲染图像全部生成前进行像素滤波处理。
在一些实施方式中,将图块M的每条边界均向内移动k个像素,得到的第一矩形区域中的像素构成第一像素集Pin;启用(2k+1)×(2k+1)滤波核对目标图块M0的第一像素集Pin0中的像素进行像素滤波处理。
在一些实施方式中,每个图块M还具有第四像素集Ps,第四像素集Ps由图块M的矩形区域去除第二矩形区域之后的第一剩余区域中的像素构成,所述第二矩形区域通过将所述图块M的每条边界均向内移动2k个像素得到;上述方法还包括:单独存储每个图块M的第四像素集Ps;从目标图块M0的多个相邻图块MX的第四像素集PsX中获取第二剩余区域中的像素颜色信息,第二剩余区域为第三矩形区域去除目标图块M0的矩形区域之后的区域,第三矩形区域通过将目标图块M0的每条边界向外移动k个像素得到;根据目标图块M0的第四像素集Ps0中的像素颜色信息以及第二剩余区域中的像素颜色信息,对目标图块M0的第二像素集Pb0中的像素启用(2k+1)×(2k+1)滤波核进行像素滤波处理。
在一些实施方式中,上述方法还包括:根据目标图块M0的图块索引、多个相邻图块MX的图块索引和目标图块M0内的像素偏移量,计算对第二像素集Pb0中的像素启用(2k+1)×(2k+1)滤波核进行像素滤波处理所需的像素颜色地址。
在一些实施方式中,单独存储每个图块M的第四像素集Ps包括:将第四像素集Ps中的像素信息作为一个整体、以图块为单位进行存储;在每个图块M对应的存储空间中,将第四像素集Ps中的像素信息按照图块M的顶部像素、底部像素、左侧像素和右侧像素的顺序进行存储。
在一些实施方式中,单独存储每个图块M的第四像素集Ps还包括:逐列存储第四像素集Ps中图块M的顶部的第一组像素的像素信息;逐列存储第四像素集Ps中图块M的底部的第二组像素的像素信息;逐行存储第四像素集Ps中图块M的左侧的第三组像素的像素信息;逐行存储第四像素集Ps中图块M的右侧的第四组像素的像素信息。
在一些实施方式中,对于(2k+1)×(2k+1)滤波核,目标图块M0的第四像素集Ps0中目标图块M0的右侧的第四组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+2×uPhori0+uPvert0+y×2k+(x-Pr0+2k-1)
其中,x和y分别表示该像素在像素坐标系中的横坐标和纵坐标,TileM0表示目标图块M0的图块索引,uPs0表示第四像素集Ps0中的像素数量,uPhori0表示第四像素集Ps0中目标图块M0的顶部像素或者底部像素数量,uPvert0表示第四像素集Ps0中目标图块M0的左侧像素数量或者右侧像素数量,Pr0表示目标图块M0的右侧边界的像素偏移。
在一些实施方式中,对于(2k+1)×(2k+1)滤波核,目标图块M0的第四像素集Ps0中目标图块M0的左侧的第三组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+2×uPhori0+y×2k+x。
在一些实施方式中,对于(2k+1)×(2k+1)滤波核,目标图块M0的第四像素集Ps0中目标图块M0的顶部的第一组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+2k×x+(Pd0-y)
其中,Pd0表示目标图块M0的顶部边界的像素偏移。
在一些实施方式中,对于(2k+1)×(2k+1)滤波核,目标图块M0的第四像素集Ps0中目标图块M0的底部的第二组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+uPhori0+2k×x+(2k-1-y)。
按照本发明的又一方面,提供了一种电子设备,包括上述图形处理系统;或者,该电子设备包括:处理器;与处理器通信连接的存储器;存储器存储有可被处理器执行的指令,指令被处理器执行,以使处理器能够执行上述方法。
按照本发明的又一方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令被处理器执行时实现上述方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:在图块处理中引入内部像素集、边界像素集和单独存储像素集的概念,分别处理内部像素集和边界像素集,一方面,在图块的渲染图像生成后即启动对该图块内部像素集中像素的滤波处理,无需等待所有图块完成渲染,有效提升了整体图像像素滤波的处理效率,且不会产生额外的像素着色工作量;另一方面,将对边界像素集中的像素进行滤波处理所需的所有像素单独存储,形成单独存储像素集,有助于从存储空间中快速获取单独存储像素集中的像素颜色信息,提升对边界像素集中的像素进行滤波处理的效率。
附图说明
图1是3×3的像素滤波核进行像素滤波的示意图;
图2是本发明实施例的分块渲染模式图形处理系统的结构示意图;
图3是本发明实施例的图块M的各像素集的示意图;
图4是本发明实施例的图块结构示意图;
图5是本发明实施例的独立存储像素集的存储方式示意图;
图6是本发明实施例的独立存储像素集中图块M的水平方向的像素的存储方式示意图;
图7是本发明实施例的独立存储像素集中图块M的垂直方向的像素的存储方式示意图;
图8是本发明实施例的电子设备的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。正如本领域技术人员可以认识到的那样,在不脱离本申请的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
在计算机图形学中,图像处理技术可以应用于渲染图像,例如光华(bloom)、景深和超分辨率放大,以增强渲染的视觉效果。这种图像处理算法通常涉及采样像素周围区域的像素颜色。
例如,像素(x,y)经过(2k+1)×(2k+1)滤波核得到滤波后的颜色G(x,y)可以是:
其中,k为正整数,x和y分别表示该像素在像素坐标系中的横坐标和纵坐标,u和v分别表示图像坐标系中相对于横坐标x和纵坐标y的偏移量,u和v均为整数,f(x+u,y+v)表示(2k+1)×(2k+1)滤波核中像素(x+u,y+v)处的原始像素颜色,h(u,v)表示F(x+u,y+v)的权重因子。
图1为k=1时,3×3的像素滤波核进行像素滤波的示意图,像素(x,y)经过3×3滤波核得到滤波后的颜色可以是 可以看到,对于像素(x,y)进行滤波需要用到其周围8个像素的信息,也就是说,当k=1时,滤波核还需要对位于像素周围的3×3–1个像素进行处理。类似地,当k=2时,滤波核还需要对位于像素周围的5×5–1个像素进行处理。
由于分块渲染模式的计算机图形处理系统的渲染图像是在每个图块中单独生成的,而每个图块边界上像素的滤波将涉及相邻图块中的像素,这导致图块边界上像素的滤波在图块处理过程中无法完成。如图1所示,图块M1中原始像素颜色f(x,y)的滤波计算需要相邻图块M2中原始像素颜色f(x+1,y+1)、f(x+1,y)和f(x+1,y-1)的信息,因此,图块M1的边界像素(x,y)处的滤波在图块M1的处理过程中无法完成。
在本发明的实施例中,将图块划分为内部像素集和边界像素集,分别对内部像素集和边界像素集进行滤波处理。其中,内部像素集的滤波处理可以在图块的渲染图像生成后即启动,因此能够减少所有图块的渲染完成之后的滤波工作量。
如图2所示,本发明实施例的分块渲染模式图形处理系统包括几何处理系统和片段处理系统,几何处理系统用于根据输入的几何数据(例如顶点数据)构造图元,对图元进行几何处理后,将可见的图元分块到屏幕视觉空间的多个图块M,并为每个图块M生成分块显示列表。
几何处理系统进一步包括输入汇编模块、几何处理管道和分块模块。输入汇编模块用于根据输入的几何数据构造图元。几何处理管道用于对构造的图元进行处理,删除屏幕视觉空间中不可见的图元,仅保留屏幕视觉空间中可见的图元。分块模块用于将可见的图元分块到屏幕视觉空间的多个图块M,并为每个图块M生成分块显示列表。
在一些实施方式中,分块显示列表包含与图块M至少部分重叠从而需要在图块M中进行渲染的所有图元;当某个图元位于多个图块中时,该图元将被包含在屏幕视觉空间该图元所在的每个图块的分块显示列表中。
在一些实施方式中,将屏幕视觉空间划分为多个图块M,将可见的图元分块到屏幕视觉空间的多个图块M,并为每个图块M生成分块显示列表。如图3所示,对屏幕视觉空间的N×N像素的图块M,通过检查图元是否在由角点D0、D1、D2和D3定义组成的矩形区域内或至少部分在该矩形区域内,可以完成分块。例如,图元T0与该矩形区域部分重叠,图元T1位于该矩形区域内,因此,图元T0和图元T1均包含在图块M的分块显示列表中。而图元T2和图元T3均与该矩形区域不重叠,因此,图元T2和图元T3均不包含在图块M的分块显示列表中。
几何处理管道进一步包括几何转换模块、裁剪和剔除模块以及数据接收模块。几何转换模块用于将输入汇编模块构造的图元的顶点数据转换到屏幕视觉空间。裁剪和剔除模块用于删除屏幕视觉空间中不可见的图元,仅保留屏幕视觉空间中可见的图元,这部分图元即为渲染场景所需的图元。数据接收模块用于接收和存储屏幕视觉空间中可见的图元的图元数据和转换后的顶点数据。
在一些实施方式中,几何处理系统包括一个几何处理管道,输入汇编模块构造的图元下发至该几何处理管道,由该几何处理管道进行处理。在一些实施方式中,几何处理系统包括多个几何处理管道,输入汇编模块构造的图元分发至下游的多个几何处理管道,由该多个几何处理管道分别处理。
数据接收模块中的图元数据和转换后的顶点数据写入存储模块的第一存储器,分块模块生成的分块显示列表写入存储模块的第二存储器。
片段处理系统用于根据几何处理系统生成的分块显示列表,对多个图块M进行渲染,生成多个图块M的渲染图像。如图2所示,片段处理系统包括分块处理模块、光栅化模块、隐藏面移除模块、像素着色模块和后处理模块。分块处理模块用于从第二存储器读取几何处理系统生成的分块显示列表,将分块显示列表中渲染图块所需的图元发送到光栅化模块。
光栅化模块用于从第一存储器读取分块显示列表中引用的图元所需的图元数据和转换后的顶点数据,将图元光栅化为可见像素。在一些实施方式中,对图块M,将图元光栅化为图块M内的可见像素。
隐藏面移除模块用于对光栅化模块输出的可见像素进行深度测试,具体地,将光栅化模块输出的可见像素的深度值与存储在深度缓冲区的之前图元像素的深度值进行比较,在光栅化模块输出的图元像素被之前图元像素遮挡时,认为深度测试没有通过,将光栅化模块输出的图元像素移除,否则将光栅化模块输出的图元像素发送至像素着色模块。也就是说,通过隐藏面移除模块,将同一像素位置上位于其他图元后面的像素移除。在一些实施方式中,之前图元像素的深度值为预设值。在一些实施方式中,之前图元像素的深度值为之前通过深度测试的图元像素的深度值。
为了避免与外部存储器频繁交换数据,在分块渲染模式的计算机图形处理系统中,每个像素的当前深度值都存储在片上深度缓冲区中。在一些实施方式中,对图块M,具有N×N个像素的图块M中的每个像素的当前深度值都存储在片上深度缓冲区中,即,用于存储当前深度值的片上深度缓冲区的大小为N×N像素。可以理解的是,片上深度缓冲区的大小可根据实际需要进行设置,本发明对此不做限制。
像素着色模块用于将隐藏面移除模块输出的可见像素进行着色处理,以获得图元像素的最终颜色。在一些实施方式中,图块M中像素的颜色信息存储在分块渲染模式的计算机图形处理系统中的片上颜色缓冲区中,以避免与外部存储器进行频繁的数据交换,影响处理效率。
在一些实施方式中,像素着色模块用于对图块M中的像素进行着色处理。
在一些实施方式中,后处理模块用于对图块M的渲染图像启用滤波核进行像素滤波处理,得到滤波后的图像。
在一些实施方式中,图块M中的像素(x,y)经过(2k+1)×(2k+1)滤波核得到滤波后的颜色其中,k为正整数,x和y分别表示该像素在像素坐标系中的横坐标和纵坐标,u和v分别表示图像坐标系中相对于横坐标x和纵坐标y的偏移量,u和v均为整数,f(x+u,y+v)表示(2k+1)×(2k+1)滤波核中像素(x+u,y+v)处的原始像素颜色,h(u,v)表示F(x+u,y+v)的权重因子。
如图3所示,具有N×N像素的图块M为由角点D0、D1、D2和D3定义构成的矩形区域。对图块M进行像素滤波处理,由于需要用到来自图块M的周围图块中的像素信息,因此无法直接在该图块M内部处理位于该图块M边界区域中的像素。
在一些实施方式中,将图块M划分为内部像素集Pin(即第一像素集)和边界像素集Pb(即第二像素集),边界像素集Pb与完整像素集Ptile(即第三像素集)和内部像素集Pin具有如下关系:
Pb=Ptile--Pin
其中,完整像素集Ptile包含图块M的所有像素,由角点D0、D1、D2和D3定义的矩形区域中包含的N×N个像素组成。
图块M的内部像素集Pin由角点D0′、D1′、D2′和D3′定义的矩形区域中包含的像素组成。利用图块M的完整像素集Ptile中的像素信息,即可对内部像素集Pin中的像素进行像素滤波处理,而不需要用到来自图块M之外的、图块M的周围图块中的像素信息。
在一些实施方式中,将图块M的每条边界均向图块M的内部移动k个像素,得到由角点D0′、D1′、D2′和D3′定义的矩形区域(即第一矩形区域)。利用图块M的完整像素集Ptile中的像素信息,即可使用(2k+1)×(2k+1)滤波核对内部像素集Pin中的像素进行像素滤波处理。
由于对内部像素集Pin中的像素使用(2k+1)×(2k+1)滤波核进行像素滤波处理所需的所有像素都在图块M内,对内部像素集Pin中的像素的滤波处理可在图块M中的像素颜色生成之后直接进行,而不需要等待所有图块的渲染图像全部生成。
在一些实施方式中,对多个图块M中的任一目标图块M0,可以在目标图块M0的渲染图像生成后、多个图块M的渲染图像全部生成前的第一时间,开始对目标图块M0的内部像素集Pin0中的像素进行像素滤波处理。
在一些实施方式中,对目标图块M0的内部像素集Pin0中的像素进行像素滤波处理的结果直接写入帧颜色缓冲区的存储器内。
如图3所示,边界像素集Pb由角点D0、D1、D2和D3以及D0′、D1′、D2′和D3′定义的区域中包含的像素组成,即,边界像素集Pb由图块M的矩形区域剔除第一矩形区域后剩余的区域中包含的像素组成。
在一些实施方式中,边界像素集Pb包括:
图块M顶部的第一组边界像素,该第一组边界像素为k行N列像素;
图块M底部的第二组边界像素,该第二组边界像素为k行N列像素;
图块M左侧的第三组边界像素,该第三组边界像素为k列(N-2k)行像素;
图块M右侧的第四组边界像素,该第四组边界像素为k列(N-2k)行像素。
在一些实施方式中,边界像素集Pb包括:
图块M顶部的第一组边界像素,该第一组边界像素为k行(N-2k)列像素;
图块M底部的第二组边界像素,该第二组边界像素为k行(N-2k)列像素;
图块M左侧的第三组边界像素,该第三组边界像素为k列N行像素;
图块M右侧的第四组边界像素,该第四组边界像素为k列N行像素。
因此,边界像素集Pb的像素数量为:
uPb=2k×N+2k×(N-2k)
对于k=1时的3x3内核,以及N=32时的32x32像素的图块M,边界像素集Pb中的像素数量为:
uPb=2×32+2×(32-2)=124
因此,在32x32像素的图块M中,边界像素集Pb中的像素数量占图块M中总像素数量的12.1%。
对于k=2时的5x5内核,以及N=32时的32x32像素的图块M,边界像素集Pb中的像素数量为:
uPb=4×32+4×(32-4)=240
因此,在32x32像素的图块M中,边界像素集Pb中的像素数量占图块M中总像素数量的23.44%。
由于图块M的边界像素集Pb包含需要使用来自图块M之外的、图块M的相邻图块中的像素信息来进行像素滤波处理的像素,边界像素集Pb中的像素不能直接在图块M中处理。
在一些实施方式中,将对图块M的边界像素集Pb中的像素进行像素滤波处理所需的像素颜色信息单独存储。
如图3所示,在本发明实施例中,为对边界像素集Pb中位于图块M右侧的k列边界像素进行(2k+1)×(2k+1)滤波核的像素滤波,需要单独存储图块M的右侧边界D1D2的右侧位于临近图块中的k列像素,以及右侧边界D1D2的左侧位于图块M中的2k列像素。为对边界像素集Pb中位于图块M左侧的k列边界像素进行(2k+1)×(2k+1)滤波核的像素滤波,需要单独存储图块M的左侧边界D0D3的左侧位于临近图块中的k列像素,以及左侧边界D0D3的右侧位于图块M中的2k列像素。为对边界像素集Pb中位于图块M顶部的k行边界像素进行(2k+1)×(2k+1)滤波核的像素滤波,需要单独存储图块M的顶部边界D0D1的上方位于临近图块中的k行像素,以及顶部边界D0D1的下方位于图块M中的2k行像素。为对边界像素集Pb中位于图块M底部的k行边界像素进行(2k+1)×(2k+1)滤波核的像素滤波,需要单独存储图块M的底部边界D2D3的下方位于临近图块中的k行像素,以及底部边界D2D3的上方位于图块M中的2k行像素。
也就是说,在对图块的边界像素启用(2k+1)×(2k+1)滤波核进行滤波处理时,需要该像素周围每个方向相邻的k个像素的颜色信息。因此,为了对边界像素集Pb中的像素进行滤波,单独存储的像素颜色信息除了边界像素集Pb中的像素之外,还应当包括在边界像素周围每个方向相邻的k个像素的颜色信息。
以图4为例,图块T(0,0)的周围有8个图块。对于图块T(0,0)的任意一个边的边界像素的像素滤波过程,需要5个周围图块中的边界像素。以图块T(0,0)顶部的边界像素为例,其像素滤波过程需要图块T(-1,1)、图块T(0,1)、图块T(1,1)、图块T(-1,0)和图块T(1,0)中的边界像素信息。对于图块T(0,0)的顶角位置的边界像素的像素滤波过程,需要3个周围图块中的边界像素。以图块T(0,0)右上角的边界像素为例,其像素滤波过程需要图块T(0,1)、图块T(1,1)和图块T(1,0)中的边界像素信息。
可见,对图块M的边界像素集中的像素进行像素滤波所需的第一部分像素包含在该图块M中,对图块M的边界像素集中的像素进行像素滤波所需的第二部分像素包含在与该图块M相邻的图块中。
具体地,如图3所示,对图块M的边界像素集Pb中的像素进行(2k+1)×(2k+1)滤波核的像素滤波处理,需要用到第三矩形区域去除第二矩形区域之后的区域中的像素,其中,第三矩形区域为通过将图块M的每条边界均向图块M外移动k个像素得到的矩形区域D0″D1″D2″D3″,第二矩形区域通过将图块M的每条边界均向图块M内移动2k个像素得到。
因此,在一些实施方式中,每个图块M的单独存储像素集Ps(即第四像素集)包括该图块M的每个边界内侧的2k行或者2k列像素,即,图块M的单独存储像素集Ps由图块M的矩形区域去除第二矩形区域之后的第一剩余区域中的像素构成。利用多个图块的单独存储像素集中的像素颜色信息,即可对各图块的边界像素集中的像素进行滤波。
在一些实施方式中,根据目标图块M0的单独存储像素集Ps0和目标图块M0的多个相邻图块MX的单独存储像素集PsX中的像素颜色信息,即可对目标图块M0的边界像素集Pb0中的像素进行滤波。
在一些实施方式中,首先从目标图块M0的多个相邻图块MX的单独存储像素集PsX中获取第二剩余区域中的像素颜色信息,再根据目标图块M0的第四像素集Ps0中的像素颜色信息以及第二剩余区域中的像素颜色信息,对目标图块M0的第二像素集Pb0中的像素启用(2k+1)×(2k+1)滤波核进行像素滤波处理。其中,第二剩余区域为第三矩形区域去除目标图块M0的矩形区域之后的区域。
在一些实施方式中,单独存储通过在原有存储器中单独开辟一块存储空间,并将信息存储至该单独开辟的一块存储空间来实现。在一些实施方式中,单独存储通过增加新的存储器,并将信息存储至该新的存储器来实现。在对边界像素集Pb中的像素进行像素滤波处理的像素后处理阶段,可以仅使用该单独存储的颜色信息,有助于从存储空间中快速获取单独存储像素集中的像素颜色信息,提升对边界像素集中的像素进行滤波处理的效率。
在一些实施方式中,在具有N×N个像素的图块M中,单独存储像素集Ps包括:
图块M顶部的第一组像素,该第一组像素为2k行N列像素;
图块M底部的第二组像素,该第二组像素为2k行N列像素;
图块M左侧的第三组像素,该第三组像素为2k列(N-4k)行像素;
图块M右侧的第四组像素,该第四组像素为2k列(N-4k)行像素。
也就是说,单独存储像素集中图块M的水平方向(顶部或者底部)像素数量为uPhori=2k×N,单独存储像素集中图块M的垂直方向(左侧或者右侧)像素数量为uPvert=2k×(N-4k)。
在一些实施方式中,在具有N×N个像素的图块M中,单独存储像素集Ps包括:
图块M顶部的第一组像素,该第一组像素为2k行(N-4k)列像素;
图块M底部的第二组像素,该第二组像素为2k行(N-4k)列像素;
图块M左侧的第三组像素,该第三组像素为2k列N行像素;
图块M右侧的第四组像素,该第四组像素为2k列N行像素。
也就是说,单独存储像素集中图块M的水平方向(顶部或者底部)像素数量为uPhori=2k×(N-4k),单独存储像素集中图块M的垂直方向(左侧或者右侧)像素数量为uPvert=2k×N。
因此,需要单独存储的图块M的像素数量为:
uPs=4k×N+4k×(N-4k)
对于k=1时的3x3内核,以及N=32时的32x32像素的图块M,图块边界区域的单独存储像素集Ps中的像素数量为:
uPs=4×32+4×(32-4)=240
因此,在32x32像素的图块M中,单独存储像素集Ps中的像素数量占总像素数量的23.44%。
对于k=2时的5x5内核,以及N=32时的32x32像素的图块M,图块边界区域的单独存储像素集Ps中的像素数量为:
uPs=8×32+8×(32-8)=448
因此,在32x32像素的图块M中,单独存储的像素集Ps中的像素数量占总像素数量的43.75%。
对边界像素集使用(2k+1)×(2k+1)滤波核的像素滤波过程所需的像素颜色信息可以通过地址计算从单独的存储器或者存储区域中读取,该地址可根据图块索引和图块内的像素偏移量进行计算。
本发明实施例的单独存储像素集Ps在存储器中的存储方式如图5所示。将来自每个图块M的单独存储像素集中的像素信息作为一个整体、以图块为单位进行存储。
在一些实施方式中,图块的单独存储像素集中的像素信息作为一个整体、按照图块的顺序进行存储。例如,图5中,将图块的单独存储像素集中的像素信息作为一个整体、以图块为单位、按照图块顺序M0至M4分别存储。应当了解,图中图块M0至M4均表示具体的图块M,为便于区分和理解,采用不同的标记。在每个图块对应的存储空间中,该图块的单独存储像素集中的像素信息按照图块的顶部像素、底部像素、左侧像素和右侧像素的顺序进行存储。
具体地,对图块M的边界像素集Pb中的位于图块M的右侧的第四组边界像素用(2k+1)×(2k+1)滤波核进行像素滤波时,需要从单独的存储空间里读出位于图块M的右侧边界的左侧、图块M内的2k列像素的颜色信息,因此,位于图块M的右侧边界的左侧、图块M内的2k列像素的颜色信息应该存储在单独的存储空间中的相邻地址上,这样就有可能用最少的读操作从存储空间里得到像素滤波所需的所有信息。
类似地,位于图块M的左侧边界的右侧、图块M内的2k列像素的颜色信息也应该存储在单独的存储空间中的相邻地址上;位于图块M的顶部边界的下方、图块M内的2k行像素的颜色信息也应该存储在单独的存储空间中的相邻地址上;位于图块M的底部边界的上方、图块M内的2k行像素的颜色信息也应该存储在单独的存储空间中的相邻地址上。
在一些实施方式中,为了提高内存访问效率,单独存储像素集中图块的水平方向(顶部或者底部)像素的存储方式为逐列存储,如图6所示,在起始位置先沿垂直方向将像素的颜色信息进行存储,在当前列像素的颜色信息被存储完毕时,沿水平方向移动至下一列位置,再从下一列位置的起始位置继续存储,并依此类推。
在一些实施方式中,为了提高内存访问效率,单独存储像素集中图块的垂直方向(左侧或者右侧)像素的存储方式为逐行存储,如图7所示,在起始位置先沿水平方向将像素的颜色信息进行存储,在当前行像素的颜色信息被存储完毕时,沿垂直方向移动至下一行位置,再从下一行位置的起始位置继续存储,并依此类推。
在一些实施方式中,对于(2k+1)×(2k+1)滤波核,目标图块M0的单独存储像素集Ps0中图块M0的右侧的第四组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+2×uPhori0+uPvert0+y×2k+(x-Pr0+2k-1)
在一些实施方式中,对于(2k+1)×(2k+1)滤波核,目标图块M0的单独存储像素集Ps0中图块M0的左侧的第三组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+2×uPhori0+y×2k+x。
在一些实施方式中,对于(2k+1)×(2k+1)滤波核,目标图块M0的单独存储像素集Ps0中图块M0的顶部的第一组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+2k×x+(Pd0-y)
其中,Pd0表示目标图块M0的顶部边界的像素偏移。
在一些实施方式中,对于(2k+1)×(2k+1)滤波核,目标图块M0的单独存储像素集Ps0中图块M0的底部的第二组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+uPhori0+2k×x+(2k-1-y)。
其中,x和y分别表示该像素在像素坐标系中的横坐标和纵坐标,TileM0表示目标图块M0的图块索引,uPs0表示第四像素集Ps0中的像素数量,uPhori0表示第四像素集Ps0中目标图块M0的顶部像素或者底部像素数量,uPvert0表示第四像素集PsO中目标图块M0的左侧像素数量或者右侧像素数量,Pr0表示目标图块M0的右侧边界的像素偏移,Pd0表示目标图块M0的顶部边界的像素偏移。
如图1所示,对当前图块M1的右侧的边界像素(x,y)使用3×3滤波核得到滤波后的颜色G(x,y)可以是:
图1中(x-1)列和x列像素的像素颜色地址可根据如下公式计算:
Addr(x,y)=TileM1×uPs1+2×uPhori1+uPvert1+y×2+(x-Pr1+1)
图1中右侧相邻图块M2中的第(x+1)列像素的像素颜色地址可根据如下公式计算:
Addr(x,y)=TileM2×uPs1+2×uPhori1+y×2+x
如前所述,在k=1、N=32时,图块M1的单独存储像素集Ps1中的像素数量为uPs1=240。计算得到单独存储像素集中图块M1的水平方向(顶部或者底部)边界像素数量为uPhori1=64,单独存储像素集中图块M1的垂直方向(左侧或者右侧)的边界像素数量为uPvert1=56。
已知目标图块M1的图块索引为TileM1,右侧相邻图块M2的图块索引为TileM2,目标图块M1的右侧边界的像素偏移Pr1=31。
图1中(x-1)列像素的像素颜色地址可计算为:
Addr(x-1,y)=TileM1×240+2×64+56+y×2+(x-1-31+1)=240TileM1+184+2y+(x-31)
图1中x列像素的像素颜色地址可计算为:
Addr(x,y)=TileM1×240+2×64+56+y×2+(x-31+1)=240TileM1+184+2y+(x-30)
图1中(x+1)列像素的像素颜色地址可计算为:
Addr(x+1,y)=TileM2×240+2×64+y×2+x+1=240TileM2+129+2y+x
在一些实施方式中,在所有图块中的像素颜色生成之后的第二时间,开始对目标图块M0的边界像素集Pb0中的像素进行像素滤波处理。
为了进一步提高对图块的边界像素进行像素滤波处理的效率,在本发明的实施例中,在目标图块中的渲染完成后,一方面对目标图块M0的内部像素集中的像素执行像素滤波处理,另一方面检查目标图块M0的相邻图块MX中的渲染状态,在相邻图块中的渲染状态符合要求时,提前对目标图块M0的边界像素集中的像素进行滤波处理,而不用等到所有图块的渲染完成。
在一些实施方式中,在目标图块M0的渲染图像生成后、多个图块M的渲染图像全部生成前的第三时间,开始检查目标图块M0的多个相邻图块MX中的渲染状态,在多个相邻图块MX中用于对目标图块M0的边界像素集Pb0中的像素进行像素滤波处理的像素信息全部生成时,对目标图块M0的边界像素集Pb0中的像素进行像素滤波处理。即,以边界像素集Pb0中的单个像素为单位进行处理。
在一些实施方式中,在目标图块M0的渲染图像生成后、多个图块M的渲染图像全部生成前的第三时间,开始检查目标图块M0的多个相邻图块MX中的渲染状态,在多个相邻图块MX中用于对目标图块M0的边界像素集Pb0中的像素子集进行像素滤波处理的像素信息全部生成时,对目标图块M0的边界像素集Pb0中的像素子集进行像素滤波处理。即,以边界像素集Pb0中的一组像素构成的像素子集为单位进行处理。
在一些实施方式中,边界像素集Pb0中的像素子集为位于目标图块M0顶部的第一组边界像素、位于目标图块M0底部的第二组边界像素、位于目标图块M0左侧的第三组边界像素或者位于目标图块M0右侧的第四组边界像素。
应当了解,上述第三时间与前述第一时间可以是同一时间,也可以是不同时间,均在本申请所保护的范围内,本申请对此不作限制。
在一些实施方式中,在多个图块M的渲染图像全部生成后的第二时间,开始对目标图块M0的边界像素集Pb0中的剩余像素进行像素滤波处理;其中,剩余像素为目标图块M0的边界像素集Pb0中未能在多个图块M的渲染图像全部生成前进行像素滤波处理的像素。
可见,通过上述处理,可以在图块的处理期间(即所有图块的渲染没有全部完成时)对目标图块的边界像素执行像素滤波处理,而不用等到所有图块的渲染完成之后的再执行这一步骤,进一步减少了后期单独处理阶段的工作量。
应当了解,可能有些目标图块的所有四组边界像素均能在图块的渲染期间被处理,也可能有些目标图块的部分组边界像素能在图块的渲染期间被处理,还可能有些目标图块的所有四组边界像素均不满足处理条件,因此没有边界像素能在图块的渲染期间被处理。
进一步地,在一些实施方式中,为每个图块存储边界掩码(boundary mask),以指示图块边界像素集中的像素或者像素子集是否已在多个图块M的渲染图像全部生成前进行像素滤波处理。在一些实施方式中,为每个图块存储4位边界掩码(boundary mask),以分别指示图块边界像素集中位于图块顶部的第一组边界像素、位于图块底部的第二组边界像素、位于图块左侧的第三组边界像素和位于图块右侧的第四组边界像素是否已在所有图块的渲染完成之前进行像素滤波处理。在一些实施方式中,边界像素集中的像素子集完成像素滤波处理后,在边界掩码中对应设置边界位,这样就可以在后续边界像素滤波处理的单独阶段跳过边界,减少单独处理阶段的工作量。
如图4所示,在对图块T(0,0)的内部区域(即内部像素集Pin内的像素)执行像素滤波的过程中,如果相邻图块T(-1,1)、图块T(0,1)、图块T(1,1)、图块T(-1,0)和图块T(1,0)中的渲染已完成并且其边界像素信息已经存储在单独的存储器中并且可用,则可以开始对图块T(0,0)顶部的第一组边界像素进行滤波处理。处理后图块T(0,0)中对应顶部边界像素的边界掩码可以设置为1,以避免在所有图块渲染完成后的单独处理阶段再对图块T(0,0)顶部的第一组边界像素进行滤波处理,能有效提升对边界像素集中的像素进行滤波处理的效率。
图8为根据本申请一实施例的电子设备的结构框图。本申请实施例还提供了一种电子设备,如图8所示,该电子设备包括:至少一个处理器801,以及与至少一个处理器801通信连接的存储器803。存储器803内存储有可被至少一个处理器801执行的指令。指令被至少一个处理器801执行。处理器801执行该指令时实现上述实施例中的图形处理方法。存储器803和处理器801的数量可以为一个或多个。该电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
该电子设备还可以包括通信接口805,用于与外界设备进行通信,进行数据交互传输。各个设备利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器801可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面(Graphical User Interface,GUI)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器803、处理器801及通信接口805集成在一块芯片上,则存储器803、处理器801及通信接口805可以通过内部接口完成相互间的通信。
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(Advanced RISC Machines,ARM)架构的处理器。
本申请实施例提供了一种计算机可读存储介质(如上述的存储器803),其存储有计算机指令,该程序被处理器执行时实现本申请实施例中提供的方法。
可选的,存储器803可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据图形处理方法的电子设备的使用所创建的数据等。此外,存储器803可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器803可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至图形处理方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或多个(两个或两个以上)用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (22)
1.一种图形处理系统,其特征在于,包括几何处理系统和片段处理系统;
所述几何处理系统用于对图元进行几何处理后,将可见的图元分块到屏幕视觉空间的多个图块M;
所述片段处理系统用于对所述多个图块M进行渲染,生成所述多个图块M的渲染图像,每个图块M具有第一像素集Pin、第二像素集Pb和第三像素集Ptile;其中,Pin=Ptile-Pb,第三像素集Ptile包含了图块M的所有像素;
所述片段处理系统包括后处理模块,所述后处理模块用于在所述多个图块M中的目标图块M0的渲染图像生成后、所述多个图块M的渲染图像全部生成前的第一时间,开始对目标图块M0的第一像素集Pin0中的像素进行像素滤波处理。
2.如权利要求1所述的图形处理系统,其特征在于,所述后处理模块还用于在所述多个图块M的渲染图像全部生成后的第二时间,开始对目标图块M0的第二像素集Pb0中的像素进行像素滤波处理。
3.如权利要求1所述的图形处理系统,其特征在于,所述后处理模块还用于在所述多个图块M中的目标图块M0的渲染图像生成后、所述多个图块M的渲染图像全部生成前的第三时间,开始检查目标图块M0的多个相邻图块MX中的渲染状态,在所述多个相邻图块MX中用于对目标图块M0的第二像素集Pb0中的像素进行像素滤波处理的像素信息全部生成时,对目标图块M0的第二像素集Pb0中的像素进行像素滤波处理;或者,在所述多个相邻图块MX中用于对目标图块M0的第二像素集Pb0中的像素子集进行像素滤波处理的像素信息全部生成时,对目标图块M0的第二像素集Pb0中的像素子集进行像素滤波处理。
4.如权利要求3所述的图形处理系统,其特征在于,所述后处理模块还用于在所述多个图块M的渲染图像全部生成后的第二时间,开始对目标图块M0的第二像素集Pb0中的剩余像素进行像素滤波处理;所述剩余像素为目标图块M0的第二像素集Pb0中未能在所述多个图块M的渲染图像全部生成前进行像素滤波处理的像素。
5.如权利要求3所述的图形处理系统,其特征在于,所述后处理模块还用于设置边界掩码,根据所述边界掩码判断第二像素集Pb0中的像素或者像素子集是否已在多个图块M的渲染图像全部生成前进行像素滤波处理。
6.如权利要求1至5中任一项所述的图形处理系统,其特征在于,将图块M的每条边界均向内移动k个像素,得到的第一矩形区域中的像素构成所述第一像素集Pin;启用(2k+1)×(2k+1)滤波核对目标图块M0的第一像素集Pin0中的像素进行像素滤波处理。
7.如权利要求6所述的图形处理系统,其特征在于,每个图块M还具有第四像素集Ps,第四像素集Ps由图块M的矩形区域去除第二矩形区域之后的第一剩余区域中的像素构成,所述第二矩形区域通过将图块M的每条边界均向内移动2k个像素得到;所述片段处理系统用于将每个图块M的第四像素集Ps单独存储;
所述后处理模块还用于从目标图块M0的多个相邻图块MX的第四像素集PsX中获取第二剩余区域中的像素颜色信息,所述第二剩余区域为第三矩形区域去除目标图块M0的矩形区域之后的区域,所述第三矩形区域通过将目标图块M0的每条边界向外移动k个像素得到;
所述后处理模块还用于根据目标图块M0的第四像素集Ps0中的像素颜色信息以及所述第二剩余区域中的像素颜色信息,对目标图块M0的第二像素集Pb0中的像素启用(2k+1)×(2k+1)滤波核进行像素滤波处理。
8.如权利要求7所述的图形处理系统,其特征在于,所述片段处理系统用于根据目标图块M0的图块索引、所述多个相邻图块MX的图块索引和目标图块M0内的像素偏移量,计算对第二像素集Pb0中的像素启用(2k+1)×(2k+1)滤波核进行像素滤波处理所需的像素颜色地址。
9.如权利要求7所述的图形处理系统,其特征在于,所述片段处理系统用于将第四像素集Ps中的像素信息作为一个整体、以图块为单位进行存储;以及在每个图块M对应的存储空间中,将第四像素集Ps中的像素信息按照图块M的顶部像素、底部像素、左侧像素和右侧像素的顺序进行存储。
10.如权利要求9所述的图形处理系统,其特征在于,所述片段处理系统用于逐列存储第四像素集Ps中图块M的顶部的第一组像素的像素信息,逐列存储第四像素集Ps中图块M的底部的第二组像素的像素信息,逐行存储第四像素集Ps中图块M的左侧的第三组像素的像素信息,以及逐行存储第四像素集Ps中图块M的右侧的第四组像素的像素信息。
11.如权利要求10所述的图形处理系统,其特征在于,对于(2k+1)×(2k+1)滤波核,目标图块M0的第四像素集Ps0中目标图块M0的右侧的第四组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+2×uPhori0+uPvert0+y×2k+(x-Pr0+2k-1),
其中,x和y分别表示该像素在像素坐标系中的横坐标和纵坐标,TileM0表示目标图块M0的图块索引,uPs0表示第四像素集Ps0中的像素数量,uPhori0表示第四像素集Ps0中目标图块M0的顶部像素或者底部像素数量,uPvert0表示第四像素集Ps0中目标图块M0的左侧像素数量或者右侧像素数量,Pr0表示目标图块M0的右侧边界的像素偏移。
12.如权利要求11所述的图形处理系统,其特征在于,对于(2k+1)×(2k+1)滤波核,目标图块M0的第四像素集Ps0中目标图块M0的左侧的第三组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+2×uPhori0+y×2k+x。
13.如权利要求11所述的图形处理系统,其特征在于,对于(2k+1)×(2k+1)滤波核,目标图块M0的第四像素集Ps0中目标图块M0的顶部的第一组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+2k×x+(Pd0-y),
其中,Pd0表示目标图块M0的顶部边界的像素偏移。
14.如权利要求11所述的图形处理系统,其特征在于,对于(2k+1)×(2k+1)滤波核,目标图块M0的第四像素集Ps0中目标图块M0的底部的第二组像素的像素颜色地址为:
Addr(x,y)=TileM0×uPs0+uPhori0+2k×x+(2k-1-y)。
15.一种图形处理方法,其特征在于,包括:
对图元进行几何处理后,将可见的图元分块到屏幕视觉空间的多个图块M;
对所述多个图块M进行渲染,生成所述多个图块M的渲染图像;每个图块M具有第一像素集Pin、第二像素集Pb和第三像素集Ptile;其中,Pin=Ptile-Pb,第三像素集Ptile包含了图块M的所有像素;
在所述多个图块M中的目标图块M0的渲染图像生成后、所述多个图块M的渲染图像全部生成前的第一时间,开始对目标图块M0的第一像素集Pin0中的像素进行像素滤波处理。
16.如权利要求15所述的图形处理方法,其特征在于,所述方法还包括:在所述多个图块M的渲染图像全部生成后的第二时间,开始对目标图块M0的第二像素集Pb0中的像素进行像素滤波处理。
17.如权利要求15所述的图形处理方法,其特征在于,所述方法还包括:
在所述多个图块M中的目标图块M0的渲染图像生成后、所述多个图块M的渲染图像全部生成前的第三时间,开始检查目标图块M0的多个相邻图块MX中的渲染状态;
在所述多个相邻图块MX中用于对目标图块M0的第二像素集Pb0中的像素进行像素滤波处理的像素信息全部生成时,对目标图块M0的第二像素集Pb0中的像素进行像素滤波处理;或者,
在所述多个相邻图块MX中用于对目标图块M0的第二像素集Pb0中的像素子集进行像素滤波处理的像素信息全部生成时,对目标图块M0的第二像素集Pb0中的像素子集进行像素滤波处理。
18.如权利要求17所述的图形处理方法,其特征在于,所述方法还包括:在所述多个图块M的渲染图像全部生成后的第二时间,开始对目标图块M0的第二像素集Pb0中的剩余像素进行像素滤波处理;所述剩余像素为目标图块M0的第二像素集Pb0中未能在所述多个图块M的渲染图像全部生成前进行像素滤波处理的像素。
19.如权利要求17所述的图形处理方法,其特征在于,所述方法还包括:设置边界掩码,根据所述边界掩码判断第二像素集Pb0中的像素或者像素子集是否已在多个图块M的渲染图像全部生成前进行像素滤波处理。
20.如权利要求15至19中任一项所述的图形处理方法,其特征在于,将图块M的每条边界均向内移动k个像素,得到的第一矩形区域中的像素构成第一像素集Pin;启用(2k+1)×(2k+1)滤波核对目标图块M0的第一像素集Pin0中的像素进行像素滤波处理。
21.如权利要求20所述的图形处理方法,其特征在于,每个图块M还具有第四像素集Ps,第四像素集Ps由图块M的矩形区域去除第二矩形区域之后的第一剩余区域中的像素构成,所述第二矩形区域通过将所述图块M的每条边界均向内移动2k个像素得到;所述方法还包括:
单独存储每个图块M的第四像素集Ps;
从目标图块M0的多个相邻图块MX的第四像素集PsX中获取第二剩余区域中的像素颜色信息,所述第二剩余区域为第三矩形区域去除目标图块M0的矩形区域之后的区域,所述第三矩形区域通过将目标图块M0的每条边界向外移动k个像素得到;
根据目标图块M0的第四像素集Ps0中的像素颜色信息以及所述第二剩余区域中的像素颜色信息,对目标图块M0的第二像素集Pb0中的像素启用(2k+1)×(2k+1)滤波核进行像素滤波处理。
22.一种电子设备,其特征在于,包括权利要求1至14中任一项所述的图形处理系统;
或者,所述电子设备包括:
处理器;
与所述处理器通信连接的存储器;
所述存储器存储有可被所述处理器执行的指令,所述指令被所述处理器执行,以使所述处理器能够执行权利要求15至21中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211538863.5A CN115880408A (zh) | 2022-10-13 | 2022-10-13 | 一种分块渲染模式图形处理方法及系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211538863.5A CN115880408A (zh) | 2022-10-13 | 2022-10-13 | 一种分块渲染模式图形处理方法及系统 |
CN202211250530.2A CN115330986B (zh) | 2022-10-13 | 2022-10-13 | 一种分块渲染模式图形处理方法及系统 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211250530.2A Division CN115330986B (zh) | 2022-10-08 | 2022-10-13 | 一种分块渲染模式图形处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115880408A true CN115880408A (zh) | 2023-03-31 |
Family
ID=83914608
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211538863.5A Pending CN115880408A (zh) | 2022-10-13 | 2022-10-13 | 一种分块渲染模式图形处理方法及系统 |
CN202211250530.2A Active CN115330986B (zh) | 2022-10-08 | 2022-10-13 | 一种分块渲染模式图形处理方法及系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211250530.2A Active CN115330986B (zh) | 2022-10-08 | 2022-10-13 | 一种分块渲染模式图形处理方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN115880408A (zh) |
WO (1) | WO2024077745A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115147579B (zh) * | 2022-09-01 | 2022-12-13 | 芯动微电子科技(珠海)有限公司 | 一种扩展图块边界的分块渲染模式图形处理方法及系统 |
WO2024073953A1 (zh) * | 2022-10-08 | 2024-04-11 | 芯动微电子科技(珠海)有限公司 | 一种分块渲染模式图形处理方法及系统 |
CN115880408A (zh) * | 2022-10-13 | 2023-03-31 | 芯动微电子科技(珠海)有限公司 | 一种分块渲染模式图形处理方法及系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5977977A (en) * | 1995-08-04 | 1999-11-02 | Microsoft Corporation | Method and system for multi-pass rendering |
EP1489560A1 (en) * | 2003-06-17 | 2004-12-22 | Koninklijke Philips Electronics N.V. | Primitive edge pre-filtering |
US9734598B2 (en) * | 2013-01-15 | 2017-08-15 | Microsoft Technology Licensing, Llc | Engine for streaming virtual textures |
KR102023184B1 (ko) * | 2013-02-20 | 2019-09-20 | 삼성디스플레이 주식회사 | 표시장치, 데이터 처리장치 및 그 방법 |
GB2558886B (en) * | 2017-01-12 | 2019-12-25 | Imagination Tech Ltd | Graphics processing units and methods for controlling rendering complexity using cost indications for sets of tiles of a rendering space |
GB2579111B (en) * | 2019-05-30 | 2021-06-23 | Imagination Tech Ltd | Functional safety in graphics processing systems |
GB2591803B (en) * | 2020-02-07 | 2022-02-23 | Imagination Tech Ltd | Graphics processing method and system for rendering items of geometry based on their size |
WO2022058012A1 (en) * | 2020-09-17 | 2022-03-24 | Huawei Technologies Co., Ltd. | Rendering and post-processing filtering in a single pass |
CN115908102A (zh) * | 2022-08-23 | 2023-04-04 | 芯动微电子科技(珠海)有限公司 | 图形处理方法及系统 |
CN115147579B (zh) * | 2022-09-01 | 2022-12-13 | 芯动微电子科技(珠海)有限公司 | 一种扩展图块边界的分块渲染模式图形处理方法及系统 |
CN115880408A (zh) * | 2022-10-13 | 2023-03-31 | 芯动微电子科技(珠海)有限公司 | 一种分块渲染模式图形处理方法及系统 |
-
2022
- 2022-10-13 CN CN202211538863.5A patent/CN115880408A/zh active Pending
- 2022-10-13 CN CN202211250530.2A patent/CN115330986B/zh active Active
- 2022-12-07 WO PCT/CN2022/137261 patent/WO2024077745A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
CN115330986B (zh) | 2023-02-03 |
CN115330986A (zh) | 2022-11-11 |
WO2024077745A1 (zh) | 2024-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11954759B2 (en) | Tile-based graphics | |
CN115330986B (zh) | 一种分块渲染模式图形处理方法及系统 | |
CN115147579B (zh) | 一种扩展图块边界的分块渲染模式图形处理方法及系统 | |
KR102475212B1 (ko) | 타일식 아키텍처들에서의 포비티드 렌더링 | |
TWI592902B (zh) | 來自片段著色器程式之樣本遮罩的控制 | |
US9589386B2 (en) | System and method for display of a repeating texture stored in a texture atlas | |
KR102122454B1 (ko) | 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치 | |
US9569811B2 (en) | Rendering graphics to overlapping bins | |
US10354365B2 (en) | Hybrid anti-aliasing | |
US8237710B1 (en) | Methods and apparatus for fill rule evaluation over a tessellation | |
TW201539374A (zh) | 用於高解析度顯示緩衝器之有效構造之方法 | |
JP5523035B2 (ja) | 画像処理装置、及び画像処理方法 | |
US7038678B2 (en) | Dependent texture shadow antialiasing | |
US7995073B1 (en) | System and method for anti-aliasing compound shape vector graphics | |
US10134171B2 (en) | Graphics processing systems | |
US10074159B2 (en) | System and methodologies for super sampling to enhance anti-aliasing in high resolution meshes | |
US20180089890A1 (en) | Tessellation Edge Shaders | |
US7825928B2 (en) | Image processing device and image processing method for rendering three-dimensional objects | |
EP4231243A1 (en) | Data storage management method, object rendering method, and device | |
EP1058912B1 (en) | Subsampled texture edge antialiasing | |
KR20160068204A (ko) | 메시 지오메트리를 위한 데이터 처리 방법 및 이를 기록한 컴퓨터 판독 가능 저장 매체 | |
US20060061577A1 (en) | Efficient interface and assembler for a graphics processor | |
CN115660935B (zh) | 一种分块渲染模式图形处理方法及系统 | |
JP2004272635A (ja) | 図形処理装置、図形処理方法、図形処理プログラム、および、プログラム記録媒体 | |
US20240127524A1 (en) | Method and system for processing graphics in tile-based rendering mode |
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 |