CN101156176A - 图像处理装置 - Google Patents
图像处理装置 Download PDFInfo
- Publication number
- CN101156176A CN101156176A CNA2006800118223A CN200680011822A CN101156176A CN 101156176 A CN101156176 A CN 101156176A CN A2006800118223 A CNA2006800118223 A CN A2006800118223A CN 200680011822 A CN200680011822 A CN 200680011822A CN 101156176 A CN101156176 A CN 101156176A
- Authority
- CN
- China
- Prior art keywords
- pixel
- data
- painted
- mentioned
- processing
- 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
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- 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/80—Shading
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/18—Use of a frame buffer in a display terminal, inclusive of the display panel
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本发明备有逐次实施顶点着色处理和像素着色处理的着色处理器、根据由着色处理器进行了顶点着色处理的数据,生成像素着色处理所必需的像素数据的光栅化部、和将从光栅化部输出的像素数据作为接着顶点着色处理的像素着色处理的对象反馈到着色处理器的反馈环路。
Description
技术领域
本发明涉及在显示画面上显示计算机图形图像的图像处理装置,特别是涉及可编程地实施顶点的几何学处理和像素的描绘处理的图像处理装置。
背景技术
一般,3D图形处理能够分类成进行坐标变换或照明(lighting)计算等的几何学处理、和将三角形等分解成像素并施加文本映射等而描绘到帧缓冲器的描画(rendering)处理。近年来,不用由API(应用程序接口)预先决定的古典的几何学处理或描画处理,而用可编程的图形算法进行的真实(photorealistic)表现方法。作为该方法中的一个,有顶点着色器和像素着色器(也称为片段着色器)。关于搭载这些顶点着色器和像素着色器的图形处理器,有例如如非专利文献1所示的处理器。
顶点着色器(vertex shader),例如是用汇编语言或高级着色语言(shading language)编程的图像处理程序,能够用硬件加速应用程序自身的算法。又,在顶点着色器中,能够不改变模型化数据地,对顶点数据自由地加入移动、变形、旋转、照明处理等。因此,3D变形(morphing)、折射效应、拟合(skinning,平滑地表现关节等的顶点的不连续部分)等成为可能,可以不对CPU上加上负载地进行逼真的表现。
像素着色器(pixel shader)用于用像素单位进行可编程的像素运算,与顶点着色器同样用汇编语言或高级着色语言进行编程。因此,在像素着色器中,可以作为文本数据用法线矢量以像素单位进行照明处理或作为文本数据用摄动数据进行凹凸映射(bump mapping)等的处理。
又,像素着色器,不仅改变文本地址的计算方法,而且也能够可编程地进行文本颜色和像素的混合运算。因此,也可以进行灰度等级反转、色空间变换等的图像处理。一般,将顶点着色器和像素着色器组合起来使用,通过将顶点处理和像素处理组合起来可以得到丰富多彩的表现。
在顶点着色器或像素着色器中,使用4-SIMD形式的运算硬件或DSP那样的特殊处理器的情形是很多的,对位置坐标[x,y,z,w]、彩色[r,g,b,a]、文本坐标[s,t,p,q]等的各4个要素并列地进行运算处理。作为运算格式,使用32位浮动小数点(符号∶指数∶尾数=1∶8∶23)或16位浮动小数点(符号∶指数∶尾数=1∶5∶15)。
非专利文献1:Cem Cebenoyan and Matthias Wloka,“Optimizing the Graphics Pipeline”,GDC 2003 NVIDIApresentation。
顶点着色器的处理需要的时间受到顶点运算方法或光源数等的影响。例如,通过位移·映射(displacement mapping)在顶点的位置信息中施加变换,或者当光源数增多时顶点处理所需时间增多。另一方面,像素着色器中的处理时间受到包含在它的原始数据(primitive)中的像素数或像素着色器运算的复杂度的影响。例如,当包含在多边形中的像素数增多,或在像素着色器中取样的文本数多时,处理所需的时间增多。
图8是表示非专利文献1所示的已有的图像处理装置的构成的图,作为一个例子表示了搭载顶点着色器和像素着色器的图形处理器。在该图形处理器中,在描绘处理前,在视频存储器101中,从系统存储器100预先传送几何学数据(构成物体的顶点信息或光源信息等)101a、指令101b、文本数据101c。又,在视频存储器101中,也设置着作为帧缓冲器101d的存储区域。
顶点着色器104,从前级T&L高速缓冲存储器102读出需要的顶点信息进行几何学运算处理,将运算结果写入到后级T&L高速缓冲存储器105。三角形设置106从写入到后级T&L高速缓冲存储器105的运算结果读出3个顶点数据,计算描绘处理所必需的增量值等。光栅化器107用该增量值进行像素的内插处理,将三角形分解成像素。
片段(fragment)着色器108,使用由光栅化器107生成的文本坐标从文本高速缓冲存储器103读出T像素数据,进行读出的T像素数据和彩色数据的混合处理等。最后,在与视频存储器101的帧缓冲器101d之间进行逻辑运算(光栅操作)等,最终将彩色写入到帧缓冲器101d中。
在图8所示的那种已有的图像处理装置的构成中,将顶点着色器和像素着色器作为独立的处理器进行安装。这里,当取得顶点着色器和像素着色器的处理的平衡时,能够高效率地进行流水线处理。但是,例如在小的多边形中,其中包含的像素数少的图像数据时,相对像素着色处理,顶点着色器的处理成为瓶颈,像素着色器频繁地成为空闲状态。相反地,在大的多边形中,当其中包含的像素数多时,像素着色器的处理成为瓶颈,顶点着色器频繁地成为空闲状态。
在一般的应用程序中,该顶点处理和像素处理的关系是不平衡的,处理的负荷偏向其中的某一方的倾向高。例如,在面向便携式电话的应用程序中,也存在着当比较使顶点处理和像素处理进行流水线处理的情形和不进行的情形时,处理性能只提高约10%的报告。
进一步,顶点着色器和像素着色器都搭载了4-SIMD形式的FPU的情形是很多的,硬件规模相当大。尽管这样,某一方的着色器成为空闲状态还是意味着搭载的运算硬件不能够高效率地工作,等于搭载无用的硬件。这特别在面向组装用途等中需要将硬件规模抑制到很小的领域中成为大问题。又,当增加门电路(gate)规模时消耗功率也增加。
发明内容
本发明就是为了解决上述那样的课题提出的,本发明的目的是得到能够解除顶点着色器和像素着色器的处理负荷的不平衡,高效率地实施顶点着色器和像素着色器的处理的图像处理装置。
与本发明有关的图像处理装置备有逐次实施顶点着色处理和像素着色处理的着色处理器、根据由着色处理器进行了顶点着色处理的数据,生成像素着色处理所必需的像素数据的光栅化部、和将从光栅化部输出的像素数据作为接着顶点着色处理的像素着色处理的对象反馈到着色处理器的反馈环路。
如果根据本发明,则因为备有逐次实施顶点着色处理和像素着色处理的着色处理器、根据由着色处理器进行了顶点着色处理的数据,生成像素着色处理所必需的像素数据的光栅化部、和将从光栅化部输出的像素数据作为接着顶点着色处理的像素着色处理的对象反馈到着色处理器的反馈环路,由此由同一处理器逐次实施顶点着色处理和像素着色处理,所以具有能够解除顶点着色器和像素着色器的处理负荷的不平衡,高效率地实施顶点着色处理和像素着色处理的那种效果。
附图说明
图1是表示根据本发明的实施方式1的图像处理装置的构成的框图。
图2是用于说明根据本发明的实施方式2的图像处理装置的着色器芯的构成及其工作的图。
图3是表示根据本发明的图像处理装置的3D图形处理的一个例子的图。
图4是表示本发明的图像处理装置中的着色器芯的程序配置的一个例子的图。
图5是表示根据本发明的实施方式3的图像处理装置的着色器芯的运算器构成的图。
图6是表示根据实施方式3的命令格式的例子的图。
图7是表示根据本发明的实施方式4的图像处理装置的构成的框图。
图8是表示非专利文献1所示的已有的图像处理装置的构成的图。
具体实施方式
下面,为了更详细地说明本发明,按照附图说明用于实施本发明的最佳方式。
实施方式1.
图1是表示根据本发明的实施方式1的图像处理装置的构成的框图。根据本实施方式1的图像处理装置构成为具有:主存储装置1、视频存储器2、着色高速缓冲存储器(cache memory)3、命令高速缓冲存储器(cache memory)4、像素高速缓冲存储器(cache memory)5、着色器芯6、设置引擎7、光栅化器(光栅化部)8和早期片段试验单元(片段试验部)9。主存储装置1存储包含构成成为描绘处理的对象的物体等的图像的顶点信息或光源的照度等的关于光的信息(照明计算用数据)的几何学数据2a、用于将本图像处理装置的处理器作为着色器芯6起作用的着色程序2b和文本数据2c。
视频存储器2是图像处理专用的存储装置,当进行本图像处理装置的图像处理时,从主存储装置1预先传送几何学数据2a、着色程序2b和文本数据2c。又,在视频存储器2中,设置从像素高速缓冲存储器5适当地写入施加了最终的运算处理的像素数据的存储区域,用作帧缓冲器2d的区域。此外,也可以将视频存储器2和主存储装置1作为同一存储器来构成。
在着色高速缓冲存储器3中,从视频存储器2读出几何学数据2a或文本数据2c并保持。当由着色器芯6进行图像处理时,将该着色高速缓冲存储器3的存储数据适当地读出到着色器芯6并用于该处理。从视频存储器2的着色程序2b读出为了使着色器芯6进行工作所必需的命令并保持在命令高速缓冲存储器4中。经由命令高速缓冲存储器4,将着色程序2b的命令读出到着色处理器并实施,作为着色器芯6进行工作,在像素高速缓冲存储器5中,保持存储在帧缓冲器2d中的视频存储器2的目标(destination)数据并读出到着色器芯6,保持施加了运算处理的最终的像素值并写入到帧缓冲器2d。
着色器芯6由实施经由命令高速缓冲存储器4读出的着色程序2b的命令的一个着色处理器构成,经由着色高速缓冲存储器3和像素高速缓冲存储器5读出图像处理所必需的数据并顺序实施关于顶点着色器的处理和关于像素着色器的处理这双方。设置引擎7从着色器芯6输出的原始数据的顶点信息算出插值(interpolation)所必需的增量值。
光栅化器(光栅化部)8,一面进行三角形的内外判定一面将根据顶点信息决定的三角形分解成像素,用由设置引擎7算出的增量值进行插值。早期片段试验单元(片段试验部)9设置在光栅化器8和着色器芯6之间的反馈环路上,比较光栅化器8算出的像素的深度(depth)值和从像素高速缓冲存储器5读出的目标数据的深度值,与比较结果相应地判断是否将像素值反馈到着色器芯6。
下面说明工作。
当进行描绘处理时,预先将构成描绘对象的物体的图像的顶点信息或关于来自光源的光的信息等的几何学数据2a、用于作为着色器芯6使处理器进行工作的着色程序2b和文本数据2c从主存储装置1传送到视频存储器2。
着色器芯6,经由着色高速缓冲存储器3从视频存储器2读出处理对象的几何学数据2a,实施利用了几何学数据2a的几何学运算处理或照明运算处理等的顶点着色器的处理。这时,着色器芯6,经由命令高速缓冲存储器4从视频存储器2读入与顶点着色器有关的着色程序2b的命令并进行工作。此外,逐次地将着色程序2b的命令存储在作为外部存储器的命令高速缓冲存储器4中,所以不限制命令的最大步骤数。
下面,着色器芯6,接着顶点着色处理,实施撮取(culling)、视口(viewport)变换、原始数据的组装处理,将作为处理结果算出的原始数据的顶点信息输出到设置引擎7。此外,撮取处理是从描绘对象抛弃根据顶点数据规定的多边形等的多面体的里面的处理。视口变换是将顶点数据变换到器件坐标系的处理。又,原始数据的组装是将如带(strip)那样一连串结合的三角形或如扇那样共有一个顶点的三角形等再构成为独立的三角形的处理。
这样,通过着色器芯6也逐次地实施顶点着色处理以外的处理,能够省略实施顶点着色处理以外的处理的固定处理硬件,能够综合地实施处理。
在设置引擎7中,根据从着色器芯6输出的原始数据的顶点信息算出构成多边形的像素在显示画面上的坐标值或颜色信息,求得其增量值。将算出的增量值从设置引擎7输出到光栅化器8。光栅化器8,一面进行三角形的内外判定一面将根据顶点信息决定的三角形分解成像素,用根据设置引擎7算出的增量值对三角形内的像素进行插值。通过例如对能够进入三角形内部的像素评价表示三角形边的直线的方程式,判定作为对象的像素是否进入到三角形边的内侧进行三角形的内外判定。
早期片段试验单元9,比较光栅化器8算出的从现在开始描绘的像素(源)的深度值、和从像素高速缓冲存储器5读出的以前的像素的目标数据(显示画面)中的深度值。这时,如果比较结果在应该允许描绘的范围内,则认为试验合格而将要描绘的像素数据反馈到着色器芯6实施描绘处理。另一方面,当比较结果在应该允许描绘的范围外时,因为认为试验失败而不需要描绘,所以不将该像素数据输出到后级的着色器芯6。
接着,着色器芯6,用经由着色高速缓冲存储器3从视频存储器2读出的文本数据2c和从早期片段试验单元9输入的像素值实施像素着色器的处理。这时,着色器芯6,经由命令高速缓冲存储器4从视频存储器2读入与像素着色器有关的着色程序2b的命令进行工作。
下面,着色器芯6,接着像素着色器的处理,经由像素高速缓冲存储器5从帧缓冲器2d读入目标数据而实施α混合(alpha blend)或光栅操作处理。此外,α混合处理是用α值半透明合成2个图像的处理。又,光栅操作处理是图像的重合处理,例如使描绘对象的像素和成为其背景的目标数据的像素重合。
这样,通过着色器芯6也逐次地实施像素着色处理以外的处理,能够省略实施像素着色处理以外的处理的固定处理硬件,能够综合地实施处理。将如上述的那样运算了的最终的像素值,从着色器芯6经由像素高速缓冲存储器5写入到帧缓冲器2d中。
如以上那样,如果根据本实施方式1,则因为通过设置将来自光栅化器8的输出反馈到着色处理器的反馈环路,由1个着色处理器构成顺序实施顶点着色器和像素着色器的处理的着色器芯6,所以能够消除如已有那样将独立的2个图形处理器用于顶点着色器和像素着色器时发生的处理器的空闲状态。因此,能够减少消耗功率,也能够削减硬件规模。
此外,在上述实施方式1中,说明了将早期片段试验单元9设置在光栅化器8和着色器芯6之间的反馈环路上的构成,但是通过使着色器芯6持有该功能,也可以形成省略早期片段试验单元9的构成。
实施方式2.
本实施方式2通过将FIFO(先进先出)用于从光栅化器到着色器芯的数据传送中,能够进行从光栅化器到着色高速缓冲存储器或像素高速缓冲存储器的预先取得(prefetch)。
图2是用于说明根据本发明的实施方式2的图像处理装置的着色器芯的构成及其工作的图。本图像处理装置,在上述实施方式1的构成中,在接受来自光栅化器8的输出的早期片段试验单元9和像素着色器16之间设置着FIFO15。又,在图中,为了说明着色器芯6的功能,将着色器芯6分解成顶点着色器13、几何学着色器14、像素着色器16和取样着色器17来记载,但是实际上是由将这些着色器的处理综合起来实施的一个着色处理器构成的。
在顶点着色器13中,使用资源10a,实施顶点着色处理。又,在几何学着色器14中,使用资源10b实施几何学着色处理。进一步,在像素着色器16中使用资源11实施像素着色处理。在取样着色器17中使用资源12实施取样着色处理。作为资源10a、10b、11、12,例如可以考虑着色处理器内部的数据寄存器或地址寄存器等的内部寄存器、程序计数器等。此外,在图2中,在与图1相同或与其相当的构成要素上附加相同的标号,省略重复的说明。
下面说明工作。
图3是表示根据本发明的图像处理装置的3D图形处理的一个例子的图。根据实施方式2的图像处理装置,因为具有与上述实施方式1基本上相同的构成,所以以后沿图1和图3说明工作。
顶点着色器13,经由着色高速缓冲存储器3从视频存储器2读出顶点数据进行顶点着色处理。这时,着色器芯6的内部寄存器(处理器内部的数据寄存器或地址寄存器等)、程序计数器等的资源,使用顶点着色器13用的资源10a。
下面,当由顶点着色器13进行的顶点着色处理结束时,移动到几何学着色器14的处理。在几何学着色器14中,逐次地实施在上述实施方式1中说明了的视口变换、撮取处理、原始数据的组装处理。当由该几何学着色器14进行处理时,将着色器芯6的内部寄存器或程序计数器等的资源从资源10a切换到几何学着色器14用的资源10b。这样,因为在顶点着色器13和几何学着色器14中使用个别的资源,所以与顶点着色程序的结束状态无关地实施几何学着色程序,可以作为单独的程序进行记述。
当几何学着色器14的处理完成时,将它的运算结果从着色器芯6输出到设置引擎7。在设置引擎7中,与上述实施方式1同样,根据从着色器芯6输出的原始数据的顶点信息算出构成多边形的像素在显示画面上的坐标值或颜色信息,求得其增量值。将算出的增量值从设置引擎7输出到光栅化器8。在光栅化器8中,一面进行三角形的内外判定一面将根据顶点信息决定的三角形分解成(片段的生成)像素,用由设置引擎7算出的增量值对三角形内的像素进行插值。
将由光栅化器8算出的像素信息输出到早期片段试验单元9。在早期片段试验单元9中,比较光栅化器8算出的从现在开始将要描绘的像素(片段)的深度值、和从像素高速缓冲存储器5读出的以前的像素的目标数据中的深度值。这时,如果比较结果在应该允许描绘的范围内,则认为试验合格而将要描绘的像素数据输出到FIFO15。另一方面,当比较结果在应该允许描绘的范围外时,因为认为试验失败而不需要描绘,所以不将该像素数据输出到后级的FIFO15。
同时,光栅化器8将输出到FIFO15的像素的XY坐标值作为像素预先取得地址输出到像素高速缓冲存储器5。像素高速缓冲存储器5根据该坐标预先取得像素数据。通过这样做,当以后使用写入到帧缓冲器2d的所希望的像素数据时,在像素高速缓冲存储器5中,可以读出和写入数据而不出错。又,同时,光栅化器8将文本坐标值作为文本预先取得地址输出到着色高速缓冲存储器3。着色高速缓冲存储器3根据该坐标预先取得T像素数据。
这样,将像素数据或文本数据暂时存储在FIFO15中,由像素高速缓冲存储器5或着色高速缓冲存储器3预先取得像素和T像素数据,由此在实际使用像素或T像素数据时,在像素高速缓冲存储器5或着色高速缓冲存储器3中预先准备好数据,能够将从高速缓冲存储器的读出等待时间(latency)抑制到最小限度。
像素着色器16,用从FIFO15读出的像素信息和从着色高速缓冲存储器3读出的T像素数据,实施关于像素着色处理的运算。这时,内部寄存器和程序计数器等的着色处理器的资源使用像素着色器16用的资源11。
当像素着色器16的处理完成时,取样着色器17根据由像素着色器16进行的运算结果,逐次地实施反锯齿(antialiasing)处理、片段试验处理、混合处理和抖动(dithering)处理。这时,将内部寄存器和程序计数器等的着色处理器的资源从资源11切换到取样着色器17用的资源12。这样,因为在像素着色器16和取样着色器17中使用个别的资源,所以与像素着色程序的结束状态无关地实施取样着色程序,可以作为单独的程序进行记述。
反锯齿处理是算出覆盖(coverage)值而平滑地看到边缘的缺口(jaggy)的处理。混合处理进行α混合等的半透明处理。抖动处理是当彩色位少时加上抖动的处理。又,片段试验处理是判定是否应该描绘作为描绘对象的片段求得的像素的处理,有α试验、深度试验(消除阴面)、模板(stencil)试验。在这些处理中,当需要帧缓冲器2d的目标数据时,由取样着色器17经由像素高速缓冲存储器5读出像素数据(彩色值,深度值,模板值)。
此外,在α试验中,比较写入的像素(片段)的α值和成为基准的从像素高速缓冲存储器5读出的像素的α值,与指定的比较函数相应地决定是否进行描绘。深度试验(消除阴面)是比较写入的像素(片段)的深度值和成为基准的从像素高速缓冲存储器5读出的像素的深度值,与比较函数相应地决定是否进行描绘的处理。模板试验是比较写入的像素(片段)的模板值和成为基准的从像素高速缓冲存储器5读出的像素的模板值,与比较函数相应地决定是否进行描绘的处理。
将由取样着色器17进行了运算处理的像素数据写入到像素高速缓冲存储器5,经由像素高速缓冲存储器5写入到视频存储器2的帧缓冲器2d中。
此外,顶点着色器13和像素着色器16,能够由应用程序设计员记述它的程序,但是因为几何学着色器14和取样着色器17的处理是记述在器件驱动器侧的固定处理,所以不对应用程序设计员开放的情形是很多的。
如以上那样,如果根据本实施方式2,则因为分别用固有的资源实施各着色器的处理,所以在各着色程序中不需要考虑相互的资源管理,能够在一个处理器上高效率地实施多个处理程序。又,将像素信息暂时存储在FIFO15中,由像素高速缓冲存储器5或着色高速缓冲存储器3预先取得像素和T像素数据。因此,当实际使用像素或T像素数据时,在像素高速缓冲存储器5或着色高速缓冲存储器3中预先准备好数据,不发生由等待时间引起的延迟。即,能够将来自高速缓冲存储器的读出等待时间抑制到最小限度。
图4是表示本发明的图像处理装置中的着色器芯的程序配置的一个例子的图,着色程序由顶点着色程序、几何学程序、像素着色程序和取样程序构成。这些程序分别相当于图2中的顶点着色器13、几何学着色器14、像素着色器16、取样着色器17的程序。又,这些程序,不需要顺序地配置,也可以随机地配置在任意的地址上。
首先,在顶点着色程序中,从用程序计数器A指示的命令开始它的实施。当顶点着色器的处理结束时,将程序计数器从程序计数器A切换到程序计数器B,实施用程序计数器B指示的几何学程序的命令。下面同样通过切换程序计数器,顺次地实施像素着色程序的命令、取样着色程序的命令。
用原始数据单位处理顶点着色程序和几何学程序。另一方面,用像素单位处理像素着色程序和取样着色程序。因此,例如在生成包含在三角形中的像素(片段)的期间,以该像素数重复实施像素着色程序和取样着色程序。即,一面切换程序计数器C和程序计数器D一面实施。而且,当包含在三角形中的像素的处理全部结束时,再次将程序计数器切换到程序计数器A,实施用于下一个顶点的顶点着色程序。
这样,通过在各着色器之间切换程序计数器,能够在一个处理器上实施存储在任意地址中的着色程序。又,也可以预先准备好多个着色程序,根据来自应用程序的要求或描绘模式等,适当地选择这些着色程序而实施。
实施方式3.
本实施方式3通过动态地再构成着色器芯的运算器构成和命令组,能够用最适合于各着色程序的运算器构成来高效率地进行处理。
图5是表示根据本发明的实施方式3的图像处理装置的着色器芯的运算器构成的图。在图5中,根据实施方式3的着色器芯6备有输入寄存器18a~18d、交叉开关19、寄存器文件20~24、积和运算器(运算器)25~28、标量运算器(运算器)29、输出寄存器30~34、fp32命令解码器(命令解码器)35、fp16命令解码器(命令解码器)36和序列发生器37。
当例如处理像素的位置坐标时,分别将从其它的图像块输出的像素的位置坐标X、Y、Z、W的数据存储在输入寄存器18a、18b、18c、18d中。又,如果是处理彩色的情形,则将彩色数据R、G、B、A分别存储在输入寄存器18a、18b、18c、18d中。进一步,当处理文本坐标时,成为将文本坐标S、T、R、Q分别保持在输入寄存器18a、18b、18c、18d中的数据。又,也存储任意的标量数据。
交叉开关(crossbar switch)19,按照来自序列发生器37的控制信号,任意选择来自输入寄存器18a~18d或着色高速缓冲存储器3的数据、来自积和运算器25~28和标量运算器29的输出的各分量,分别输出到寄存器文件20~24。将由交叉开关19选出的,来自输入寄存器18a~18d或着色高速缓冲存储器3的标量数据以外的数据、来自积和运算器25~28的输出值存储在寄存器文件20~23中。又,将由交叉开关19选出的,来自输入寄存器18a~18d或着色高速缓冲存储器3的标量数据、来自标量运算器29的输出值存储在寄存器文件24中。
积和运算器25~28,对从寄存器文件20~23输入的数据实施积和运算处理,将运算结果分别输出到输出寄存器30~33。通过用这4个积和运算器25~28,能够以4-SIMD形式进行运算处理。即,能够一次处理顶点的位置坐标(X,Y,Z,W)的运算。
又,标量运算器29对从寄存器文件24输入的标量数据(图中表记为Sa,Sb)实施标量运算处理,分别将运算结果输出到输出寄存器34。这里,由标量运算器29进行的标量运算是作为积和以外的运算处理的除法、乘方、sin/cos等的特殊运算。输出寄存器30~34,暂时存储运算器的运算结果,输出到像素高速缓冲存储器5或设置引擎7。
这里,说明积和运算器的内部构成。例如,积和运算器25具有包含分配器25a、2个伪(pseudo)16位运算器(图中表记为伪fp16运算器)(运算单元)25b、16-32位变换运算器(图中表记为fp16→32变换运算器)(变换单元)25c的构成。分配器25a,当由来自序列发生器37的控制信号指定的运算模式为32位运算模式时,将32位格式的运算数据分割成上位/下位的2个16位格式形式的数据,分别输出到2个伪16位运算器25b。
伪16位运算器25b进行伪16位格式(符号∶指数∶尾数=1∶8∶15)形式的运算,输出fp16位格式形式的数据。又,16-32位变换运算器25c将上位/下位的2个伪16位格式变换到32位浮动小数点格式(符号∶指数∶尾数=1∶8∶23)。
此外,fp32命令解码器35使用32位浮动小数点格式形式对用于用4-SIMD(Single Instruction/Multiple Data(单指示/多数据))进行工作的命令代码进行解码。fp16命令解码器使用16位浮动小数点格式形式对用于用8-SIMD进行工作的命令代码进行解码。序列发生器37,与来自fp32命令解码器35或fp16命令解码器36的要求相应地,向交叉开关19、寄存器文件20~24、积和运算器25~28、标量运算器29输出控制信号。
下面说明工作。
当从命令高速缓冲存储器4读出的命令代码为用于使用32位浮动小数点格式形式、用4-SIMD进行工作的命令代码(fp32命令)时,fp32命令解码器35对该命令代码进行解码,将与该命令相应的要求输出到序列发生器37。另一方面,当从命令高速缓冲存储器4读出的命令代码为用于使用16位浮动小数点格式形式、用8-SIMD进行工作的命令代码(fp16命令)时,fp16命令解码器36对该命令代码进行解码,将与该命令相应的要求输出到序列发生器37。
序列发生器37与从fp32命令解码器35或fp16命令解码器36输入的要求相应地,向交叉开关19、寄存器文件20~24、积和运算器25~28、标量运算器29输出控制信号。例如,作为从输入寄存器18a、18b、18c、18d输出到交叉开关19的数据,有位置坐标(Xa,Ya,Za,Wa)和位置坐标(Xb,Yb,Zb,Wb)。这里,当从fp32命令解码器35或fp16命令解码器36输入的要求为加法处理时,序列发生器37,将控制信号输出到交叉开关19,将这些位置坐标(Xa,Ya,Za,Wa)和(Xb,Yb,Zb,Wb)分别输出到寄存器文件20~23。
进一步,序列发生器37,控制寄存器文件20~23,将与16位加法运算模式或32位加法运算模式相应的数据输出到积和运算器25~28。例如,如果是32位加法运算模式,则寄存器文件20将32位格式的坐标值Xa、Xb输出到积和运算器25。又,当是16位加法运算模式时,寄存器文件20生成将32位格式的坐标值Xa、Xb分别分成上位/下位的16位格式形式的数据X0a、X1a、X0b、X1b,输出到积和运算器25。
在16位加法运算模式中,分配器25a,在从寄存器文件20输入的X0a、X1a、X0b、X1b中,将数据X0a、X0b输出到一方的伪16位运算器25b,将数据X1a、X1b输出到另一方的伪16位运算器25b。因此,2个伪16位运算器25b以16位浮动小数点格式(符号∶指数∶尾数=1∶5∶15)形式同时分别进行加法运算,作为16位格式的2个运算结果将X0=X0a+X0b和X1=X1a+X1b输出到输出寄存器30。
另一方面,在32位浮动小数点模式中,分配器25a,将32位格式的坐标值Xa、Xb分割为上位/下位的2个16位格式形式,分别输出到2个伪16位运算器25b。在2个伪16位运算器25b中,对输入的数据进行加法运算,输出到16-32位变换运算器25c。在16-32位变换运算器25c中,将从2个伪16位运算器输出的上位/下位的伪16位格式的运算结果变换到1个32位格式,作为32位格式的计算结果,将X=Xa+Xb输出到输出寄存器30。此外,关于积和运算器26、27、28和标量运算器29,也以同样的方式进行运算处理。
这样,通过用多个命令解码器和与它们相应的运算器,能够与运算格式相应地再构成运算器构成,能够高效率地实施运算格式不同的运算。例如,通过动态地切换fp32命令和fp16命令,能够一面分开使用4-SIMD的32位浮动小数点运算和8-SIMD的16位浮动小数点运算一面加以实施。
一般,顶点着色处理利用32位浮动小数点格式进行运算,像素着色处理利用16位浮动小数点格式进行运算的情形是很多的。从而,如果用fp32命令实施顶点着色处理,用fp16命令实施像素着色处理,则能够将这些处理作为一连串的处理加以实施。因此,能够最大限度地有效地活用实施顶点着色处理和像素着色器所必需的硬件运算资源,也减小了命令的语句长度。
又,通过动态地变更命令格式,不仅关于运算格式,而且关于运算命令的种类,也可以准备好最适合于各个顶点着色处理、几何学着色处理、像素着色处理、取样着色处理的命令组。
例如,如下所述,存在着在顶点着色处理中多用4×4矩阵运算,在像素着色处理中多用在滤波处理等中需要的线性内插运算的倾向。
(1)矩阵运算
X=M00*A+M01*B+M02*C+M03*D
Y=M10*A+M11*B+M12*C+M13*D
Z=M20*A+M21*B+M22*C+M23*D
W=M30*A+M31*B+M32*C+M33*D
其中,M00~M33是4×4矩阵的各要素。
(2)线性内插处理
内插值C=Arg0*Arg2+Arg1*(1-Arg2)
在顶点着色处理中的位置坐标(X,Y,Z,W)的运算中,例如对(X,Y,Z,W)分量一次实施4×4矩阵运算。因此,对在图6的上段中所示的那种(X,Y,Z,W)分量使用进行根据4-SIMD的运算的命令格式的4-SIMD命令。
又,在像素着色处理中的彩色运算中,对(R,G,B)分量和(A)分量施加不同的运算的情形是很多的。因此,如图6的中段中所示的那样,也可以使用用3-SIMD和1-SIMD的组合进行运算的命令格式。
另一方面,在文本地址的运算中,如多文本等那样,同时运算(S0,T0)分量和(S1,T1)分量较好,如图6的下段所示的那样,用2-SIMD和2-SIMD的组合进行运算的命令格式是高效率的。
如上那样,根据本实施方式3,由这样一种处理器构成着色器芯6,该处理器具有:对指定用32位的运算格式的运算处理的命令代码进行解码的fp32命令解码器35;对指定用16位的运算格式的运算处理的命令代码进行解码的fp16命令解码器36;具有2个伪16位运算器25b和将运算格式从16位变换到32位的16-32位变换运算器25c,通过用16-32位变换运算器25c对由运算器25b进行的运算或它的运算结果进行运算格式变换,进行与各命令代码对应的运算格式数据的运算的多个运算器25~29;输入着色处理所必需的数据,根据该输入数据选择各运算器25~29的运算对象数据的交叉开关19;通过按照fp32命令解码器35或fp16命令解码器36解码了的命令决定交叉开关19的数据选择和进行数据运算的运算器25~29的内部运算器的组合,控制与由运算器25~29进行的与各命令代码对应的运算格式的数据运算的序列发生器37。所以可以准备好在各着色器之间使用频度高的运算命令,根据用途变更运算的并列度,能够高效率地实施运算格式不同的运算。又,可以在同一硬件上高效率地实施最适合的处理。进一步,也可以得到通过动态地变更命令格式,能够与处理的图形API对应地选择最适合的命令组那样的效果。
实施方式4.
本实施方式4,通过将上述实施方式1到3所示的图像处理装置的主要构成部作为综合着色器流水线而多个并列地工作,提高图像处理的处理性能。
图7是表示根据本发明的实施方式4的图像处理装置的构成的图。在图中,分别并列地配置综合着色器流水线39-0、39-1、39-2、39-3、......,构成为包含着色高速缓冲存储器3、着色器芯6、设置引擎7、光栅化器8和早期片段试验单元9。这些构成要素的基本工作与在上述实施方式1中说明了的同样。但是,着色高速缓冲存储器3也具有上述实施方式1所示的像素高速缓冲存储器5的功能,存储根据由着色器芯6进行的运算最终得到的像素数据。
对综合着色器流水线39-0、39-1、39-2、39-3、......共同地设置视频存储器2A。指令数据分配器38读出存储在视频存储器2A中的着色程序的命令或几何学数据的顶点数据,分配给各综合着色器流水线39-0、39-1、39-2、39-3、......的着色器芯6。二级缓存(level 2 cache)40暂时保持由各综合着色器流水线39-0、39-1、39-2、39-3、......进行的运算结果的像素数据,传送到设置在视频存储器2A中的帧缓冲区域。
下面说明工作。
当进行描绘处理时,预先将构成描绘对象的物体的图像的顶点信息或关于来自光源的光的信息等的几何学数据、用于作为着色器芯6使处理器进行工作的着色程序和文本数据从未图示的主存储装置传送到视频存储器2A。
指令数据分配器38读出包含在存储于视频存储器2A中的场景中的顶点数据,分解成三角形带或三角形扇等的单位,与着色程序的命令代码(指令)一起,顺序地传送到综合着色器流水线39-0、39-1、39-2、39-3、......的各着色器芯6。这时,指令数据分配器38,如果传送目的地的综合着色器流水线处于忙录状态,则传送到下一个空闲状态的综合着色器流水线。因此,各综合着色器流水线的着色器芯6,实施用几何学数据的几何学运算处理或照明运算处理等的顶点着色器的处理。
在各综合着色器流水线中,着色器芯6,与上述实施方式1同样,接着顶点着色处理,实施撮取、视口变换、原始数据的组装处理,作为处理结果将算出的原始数据的顶点信息输出到设置引擎7。
在设置引擎7中,根据从着色器芯6输出的原始数据的顶点信息算出构成多边形的像素在显示画面上的坐标值或颜色信息,求得它的增量值。光栅化器8,一面进行三角形的内外判定一面将根据顶点信息决定的三角形分解成像素,用由设置引擎7算出的增量值对三角形内的像素进行插值。
早期片段试验单元9,比较光栅化器8算出的从现在开始将要描绘的像素(源)的深度值、和从像素高速缓冲存储器5读出的以前的像素的目标数据(显示画面)中的深度值。这时,如果比较结果在应该允许描绘的范围内,则认为试验合格而将要描绘的像素数据反馈到着色器芯6,继续描绘处理。另一方面,当比较结果在应该允许描绘的范围外时,因为认为试验失败而不需要描绘,所以不将该像素数据输出到后级的着色器芯6。
接着,指令数据分配器38从视频存储器2A读出文本数据,与关于像素着色器的着色程序的命令代码一起,顺序地传送到综合着色器流水线39-0、39-1、39-2、39-3、......的各着色器芯6。在着色器芯6中,用来自指令数据分配器38的像素信息和从早期片段试验单元9输入的像素信息实施像素着色器的处理。
下面,着色器芯6,接着像素着色器的处理,由指令数据分配器38从视频存储器2A的帧缓冲器读入目标数据,实施α混合或光栅操作处理。
综合着色器流水线39-0、39-1、39-2、39-3、......的各着色器芯6,将对每个综合着色器流水线运算的最终的像素数据暂时存储在着色高速缓冲存储器3中。此后,从着色高速缓冲存储器3将最终的像素数据的运算值写入到二级缓存40。而且,经由二级缓存40将该像素数据传送到视频存储器2A的帧缓冲区域。
如以上那样,如果根据本实施方式4,则因为并列地配置多个综合实施顶点着色处理和像素着色处理的综合着色器流水线,设置对各综合着色器流水线进行指令和处理对象数据的分配的指令数据分配器38,所以如果用多线程(multi-thread)型的综合着色器流水线,则可以进行并列处理,能够提高顶点着色处理和像素着色处理的处理能力。又,通过根据目的变更并列配置的综合着色器流水线的个数,能够对从面向限定硬件规模的组装的领域到面向高端的广大范围灵活对应。
如以上那样,与本发明有关的,能够解除顶点着色器和像素着色器的处理负荷的不平衡,高效率地实施处理的图像处理装置是在显示画面上显示3D计算机图形等的图像的图像处理装置,特别适用于在面向组装用途中需要将硬件规模抑制到很小的便携式终端设备等。
Claims (9)
1.一种图像处理装置,其特征在于,备有:
逐次实施顶点着色处理和像素着色处理的着色处理器;
根据由上述着色处理器进行了顶点着色处理的数据,生成像素着色处理所必需的像素数据的光栅化部;和
将从上述光栅化部输出的像素数据作为接着顶点着色处理的像素着色处理的对象,反馈到上述着色处理器的反馈环路。
2.根据权利要求1所述的图像处理装置,其特征在于,备有:
设置在从光栅化部到着色处理器的反馈环路上,判定可否描绘从上述光栅化部输出的像素数据,与判定结果相应地决定可否将上述像素数据反馈到上述着色处理器的片段试验部。
3.根据权利要求1所述的图像处理装置,其特征在于:
着色处理器经由高速缓冲存储器来进行着色处理所必需的数据的读出或写入、以及着色程序的命令代码的读出。
4.根据权利要求3所述的图像处理装置,其特征在于,备有:
设置在从光栅化部到着色处理器的反馈环路上,保持来自上述光栅化部的输出数据的FIFO;
其中,高速缓冲存储器预先取出从上述光栅化部传送到上述FIFO的数据。
5.根据权利要求1所述的图像处理装置,其特征在于:
着色处理器还逐次实施接着顶点着色处理的像素着色处理以外的着色处理;
各着色处理的着色程序是在上述着色处理器中利用各个程序所固有的资源来实施的。
6.根据权利要求5所述的图像处理装置,其特征在于:
着色处理器备有以与各着色处理相应的处理单位来切换着色程序的程序计数器。
7.根据权利要求1所述的图像处理装置,其特征在于,
着色处理器备有:
对指定不同位数的各运算格式中的运算处理的命令代码进行解码的多个命令解码器;
具有多个运算单元和运算格式的变换单元,通过由上述变换单元对由上述运算单元进行的运算或它的运算结果进行运算格式变换,进行与上述各命令代码对应的运算格式数据的运算的多个运算器;
输入着色处理所必需的数据,根据该输入数据选择上述各运算器的运算对象数据的交叉开关;和
按照上述命令解码器解码了的命令来决定上述交叉开关的数据选择和进行数据运算的上述运算单元的组合,由此控制由上述运算器进行的与各命令代码对应的运算格式的数据运算的序列发生器。
8.根据权利要求7所述的图像处理装置,其特征在于:
利用由指定运算器和它的运算单元的组合的命令代码构成的命令组,与各着色处理中的运算命令的种类对应地变更上述命令组的组合格式。
9.一种图像处理装置,其特征在于,备有:
多个并列地配置的权利要求1所述的图像处理装置;
存储各着色处理所必需的数据和由上述图像处理装置的着色处理器实施的着色程序的视频存储器;和
与由上述各图像处理装置进行的处理相应地,读出存储在上述视频存储器中的数据和着色程序的命令代码并进行分配的指令数据分配部。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP310154/2005 | 2005-10-25 | ||
JP2005310154 | 2005-10-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101156176A true CN101156176A (zh) | 2008-04-02 |
Family
ID=37967722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800118223A Pending CN101156176A (zh) | 2005-10-25 | 2006-10-24 | 图像处理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20090051687A1 (zh) |
JP (1) | JPWO2007049610A1 (zh) |
CN (1) | CN101156176A (zh) |
WO (1) | WO2007049610A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103733228A (zh) * | 2011-09-12 | 2014-04-16 | 三菱电机株式会社 | 几何变形装置 |
CN103782280A (zh) * | 2011-09-07 | 2014-05-07 | 高通股份有限公司 | 用于图形处理的存储器复制引擎 |
US10535185B2 (en) | 2012-04-04 | 2020-01-14 | Qualcomm Incorporated | Patched shading in graphics processing |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5004650B2 (ja) * | 2007-05-09 | 2012-08-22 | 株式会社ソニー・コンピュータエンタテインメント | グラフィックスプロセッサ、描画処理装置および描画処理方法 |
JP4900051B2 (ja) | 2007-05-31 | 2012-03-21 | ソニー株式会社 | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
JP2008299642A (ja) * | 2007-05-31 | 2008-12-11 | Mitsubishi Electric Corp | 図形描画装置 |
US8325184B2 (en) * | 2007-09-14 | 2012-12-04 | Qualcomm Incorporated | Fragment shader bypass in a graphics processing unit, and apparatus and method thereof |
US9093040B2 (en) * | 2008-05-30 | 2015-07-28 | Advanced Micro Devices, Inc. | Redundancy method and apparatus for shader column repair |
CN102047315B (zh) * | 2008-05-30 | 2015-09-09 | 先进微装置公司 | 可扩展及整合的计算系统 |
JP5536760B2 (ja) * | 2008-05-30 | 2014-07-02 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | シェーダ列のための冗長方法及び装置 |
EP2327060A2 (en) * | 2008-09-24 | 2011-06-01 | The Bakery | Method and system for rendering or interactive lighting of a complex three dimensional scene |
US20100188412A1 (en) * | 2009-01-28 | 2010-07-29 | Microsoft Corporation | Content based cache for graphics resource management |
US8711159B2 (en) * | 2009-02-23 | 2014-04-29 | Microsoft Corporation | VGPU: a real time GPU emulator |
US9142057B2 (en) * | 2009-09-03 | 2015-09-22 | Advanced Micro Devices, Inc. | Processing unit with a plurality of shader engines |
JP4756107B1 (ja) * | 2011-02-09 | 2011-08-24 | 株式会社ディジタルメディアプロフェッショナル | グラフィックス処理装置 |
US9378560B2 (en) | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US8830249B2 (en) * | 2011-09-12 | 2014-09-09 | Sony Computer Entertainment Inc. | Accelerated texture lookups using texture coordinate derivatives |
KR102048885B1 (ko) * | 2013-05-09 | 2019-11-26 | 삼성전자 주식회사 | 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 렌더링 방법 |
KR102116708B1 (ko) * | 2013-05-24 | 2020-05-29 | 삼성전자 주식회사 | 그래픽스 프로세싱 유닛 |
WO2015108218A1 (ko) * | 2014-01-20 | 2015-07-23 | (주)넥셀 | 그래픽 처리 장치 및 방법 |
GB2536964B (en) | 2015-04-02 | 2019-12-25 | Ge Aviat Systems Ltd | Avionics display system |
GB2537137B (en) | 2015-04-08 | 2021-02-17 | Advanced Risc Mach Ltd | Graphics processing systems |
US9881351B2 (en) | 2015-06-15 | 2018-01-30 | Microsoft Technology Licensing, Llc | Remote translation, aggregation and distribution of computer program resources in graphics processing unit emulation |
US9786026B2 (en) | 2015-06-15 | 2017-10-10 | Microsoft Technology Licensing, Llc | Asynchronous translation of computer program resources in graphics processing unit emulation |
KR102465969B1 (ko) * | 2015-06-23 | 2022-11-10 | 삼성전자주식회사 | 그래픽스 파이프라인을 수행하는 방법 및 장치 |
US9819913B2 (en) * | 2015-08-26 | 2017-11-14 | Stmicroelectronics International N.V. | Image sensor device with macropixel processing and related devices and methods |
US10121222B2 (en) * | 2016-01-22 | 2018-11-06 | Mediatek Inc. | Bandwidth efficient method for generating an alpha hint buffer |
US20180082464A1 (en) * | 2016-09-16 | 2018-03-22 | Tomas G. Akenine-Moller | Apparatus and method for an efficient 3d graphics pipeline |
US10460513B2 (en) * | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
KR20180038793A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 영상 데이터 처리 방법 및 장치 |
US10649524B2 (en) | 2017-04-07 | 2020-05-12 | Intel Corporation | Apparatus and method for foveated rendering, bin comparison and TBIMR memory-backed storage for virtual reality implementations |
US10685473B2 (en) * | 2017-05-31 | 2020-06-16 | Vmware, Inc. | Emulation of geometry shaders and stream output using compute shaders |
US11455766B2 (en) * | 2018-09-18 | 2022-09-27 | Advanced Micro Devices, Inc. | Variable precision computing system |
US11120602B2 (en) | 2019-06-03 | 2021-09-14 | Microsoft Technology Licensing, Llc | Acceleration of shader programs by compiler precision selection |
US11315315B2 (en) * | 2019-08-23 | 2022-04-26 | Adobe Inc. | Modifying three-dimensional representations using digital brush tools |
US11651548B2 (en) * | 2021-07-08 | 2023-05-16 | Huawei Technologies Co., Ltd. | Method and apparatus for computer model rasterization |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0785219B2 (ja) * | 1990-11-15 | 1995-09-13 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理システム及びデータ制御方法 |
US5808617A (en) * | 1995-08-04 | 1998-09-15 | Microsoft Corporation | Method and system for depth complexity reduction in a graphics rendering system |
JPH1091439A (ja) * | 1996-05-23 | 1998-04-10 | Matsushita Electric Ind Co Ltd | プロセッサ |
JP2000311249A (ja) * | 1999-04-28 | 2000-11-07 | Hitachi Ltd | グラフィック処理装置とそのグラフィックコマンド処理方法 |
US6819325B2 (en) * | 2000-03-07 | 2004-11-16 | Microsoft Corporation | API communications for vertex and pixel shaders |
US7002591B1 (en) * | 2000-08-23 | 2006-02-21 | Nintendo Co., Ltd. | Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system |
US6760032B1 (en) * | 2002-03-14 | 2004-07-06 | Nvidia Corporation | Hardware-implemented cellular automata system and method |
US6825843B2 (en) * | 2002-07-18 | 2004-11-30 | Nvidia Corporation | Method and apparatus for loop and branch instructions in a programmable graphics pipeline |
GB0220138D0 (en) * | 2002-08-30 | 2002-10-09 | Kaydara Inc | Matte extraction using fragment processors |
JP2004145838A (ja) * | 2002-10-25 | 2004-05-20 | Sony Corp | 画像処理装置 |
US7796133B1 (en) * | 2002-11-18 | 2010-09-14 | Ati Technologies Ulc | Unified shader |
US7633506B1 (en) * | 2002-11-27 | 2009-12-15 | Ati Technologies Ulc | Parallel pipeline graphics system |
JP2004234123A (ja) * | 2003-01-28 | 2004-08-19 | Fujitsu Ltd | マルチスレッドコンピュータ |
US7928997B2 (en) * | 2003-02-06 | 2011-04-19 | Nvidia Corporation | Digital image compositing using a programmable graphics processor |
US7151543B1 (en) * | 2003-04-16 | 2006-12-19 | Nvidia Corporation | Vertex processor with multiple interfaces |
US7508448B1 (en) * | 2003-05-29 | 2009-03-24 | Nvidia Corporation | Method and apparatus for filtering video data using a programmable graphics processor |
WO2005029329A2 (en) * | 2003-09-15 | 2005-03-31 | Nvidia Corporation | A system and method for testing and configuring semiconductor functional circuits |
US7948490B2 (en) * | 2003-10-22 | 2011-05-24 | Microsoft Corporation | Hardware-accelerated computation of radiance transfer coefficients in computer graphics |
US6897871B1 (en) * | 2003-11-20 | 2005-05-24 | Ati Technologies Inc. | Graphics processing architecture employing a unified shader |
US7542042B1 (en) * | 2004-11-10 | 2009-06-02 | Nvidia Corporation | Subpicture overlay using fragment shader |
-
2006
- 2006-10-24 JP JP2007521167A patent/JPWO2007049610A1/ja active Pending
- 2006-10-24 CN CNA2006800118223A patent/CN101156176A/zh active Pending
- 2006-10-24 US US11/816,576 patent/US20090051687A1/en not_active Abandoned
- 2006-10-24 WO PCT/JP2006/321152 patent/WO2007049610A1/ja active Application Filing
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103782280A (zh) * | 2011-09-07 | 2014-05-07 | 高通股份有限公司 | 用于图形处理的存储器复制引擎 |
CN103782280B (zh) * | 2011-09-07 | 2016-04-06 | 高通股份有限公司 | 用于图形处理的存储器复制引擎 |
CN103733228A (zh) * | 2011-09-12 | 2014-04-16 | 三菱电机株式会社 | 几何变形装置 |
CN103733228B (zh) * | 2011-09-12 | 2017-07-04 | 三菱电机株式会社 | 几何变形装置 |
US10535185B2 (en) | 2012-04-04 | 2020-01-14 | Qualcomm Incorporated | Patched shading in graphics processing |
US10559123B2 (en) | 2012-04-04 | 2020-02-11 | Qualcomm Incorporated | Patched shading in graphics processing |
US11200733B2 (en) | 2012-04-04 | 2021-12-14 | Qualcomm Incorporated | Patched shading in graphics processing |
US11769294B2 (en) | 2012-04-04 | 2023-09-26 | Qualcomm Incorporated | Patched shading in graphics processing |
Also Published As
Publication number | Publication date |
---|---|
WO2007049610A1 (ja) | 2007-05-03 |
JPWO2007049610A1 (ja) | 2009-04-30 |
US20090051687A1 (en) | 2009-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101156176A (zh) | 图像处理装置 | |
US9916674B2 (en) | Baking path rendering objects into compact and efficient memory representations | |
US7663634B2 (en) | Drawing processing apparatus and drawing processing method for multipass rendering | |
US9177351B2 (en) | Multi-primitive graphics rendering pipeline | |
US6980209B1 (en) | Method and system for scalable, dataflow-based, programmable processing of graphics data | |
US6650327B1 (en) | Display system having floating point rasterization and floating point framebuffering | |
US7477260B1 (en) | On-the-fly reordering of multi-cycle data transfers | |
TWI645371B (zh) | 在上游著色器內設定下游著色狀態 | |
US9256466B2 (en) | Data processing systems | |
US8775777B2 (en) | Techniques for sourcing immediate values from a VLIW | |
GB2420261A (en) | Configuring units of a rendering pipeline | |
US5889997A (en) | Assembler system and method for a geometry accelerator | |
EP3210109A1 (en) | Devices and methods for generating elementary geometries | |
US7852341B1 (en) | Method and system for patching instructions in a shader for a 3-D graphics pipeline | |
US6219071B1 (en) | ROM-based control unit in a geometry accelerator for a computer graphics system | |
US8411094B2 (en) | Rendering module for bidimensional graphics | |
US11138786B1 (en) | Vertex attribute representation in graphics processing systems for executing a graphics processing pipeline | |
JP5864474B2 (ja) | 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法 | |
US7489315B1 (en) | Pixel stream assembly for raster operations | |
US20030043171A1 (en) | Method, apparatus and system for determining an intersection method for a zone renderer | |
JPH10307721A (ja) | ジオメトリ・アクセラレータ性能向上システム | |
US20240036874A1 (en) | Apparatus and method of optimising divergent processing in thread groups | |
US20240193719A1 (en) | Graphics processing | |
JPH10307722A (ja) | ジオメトリ・アクセラレータ性能向上システム | |
JPH02284277A (ja) | グラフィック表示装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20080402 |