计算机绘图之颜色资料的压缩系统及方法

文档序号:6650266阅读:182来源:国知局

专利名称::计算机绘图之颜色资料的压缩系统及方法
技术领域
:本发明涉及一种计算机绘图之颜色资料的压缩系统及方法,该方法用于计算机绘图技术中的三维绘图系统,特别是关于一种多次取样防图形失真系统中使用多重平面以进行颜色压缩的系统及方法。
背景技术
:三维(3-D)计算机绘图技术涉及三维物件(object)之二维(2-D)影像的产生,以及将这些产生的影像显示(rendering)于显示器或监视器上,例如阴极射线管(CRT)或液晶显示器(LCD)。物件可以是指具有简单几何形状的基本图形元素(primitive),例如点、线段、三角形、或多边形。比较复杂的物件可以通过显示一系列互相串联的平面多边形(planarpolygons)于显示器上,例如显示一系列互相串联的平面三角形于显示器上。所有几何基本图形元素都可以使用一顶点或者一组顶点来表示,例如以坐标(x,y,z)来表示一个点,或者表示线段的端点,或者多边形的顶点。为了产生这些三维基本图形元素之二维投射显示数据,这些基本图形元素的顶点必须经过一系列的运算、或者图形显示管道(graphics-renderingpipeline)的层级处理,其中的管道(pipeline)由串接的处理单元(units)或层级(stages)所组成,其前一级的输出作为后一级的输入。对于绘图处理器(graphicsprocessor),这些层级包括顶点运算(per-vertexoperation)、基本图形元素组合运算(primitiveassemblyoperation)、像素运算(pixeloperation)、纹理组合运算(textureassemblyoperation)、扫瞄线运算(rasterizationoperation)、及片段运算(fragmentoperation)。在一般的绘图显示系统中,以影像数据库(例如一命令列)来储存景物中物件的描述。这些物件以数个小多边形来描述,用以填满该物件的表面;这就好象使用磁砖来填满一个墙壁一般。每一个多边形除了以一系列的顶点来表示(在模式化的坐标系统(Modelcoordinates)中为X,Y,Z),再加上表面特性之材质描述(亦即,颜色、纹理、光泽(shininess)等),以及每一顶点处之表面法向量(normalvector)。对于一个具有复杂曲率表面的三维物件(对像),此多边形为三角形或者四边形,而后者通常还会再分割为一对三角形。转换引擎(transformationengine)根据使用者所选择输入的视角(angleofviewing)来转换物件的坐标。另外,使用者还可以选择视野(fieldofview)、所要产生影像的大小、以及是否要将背景涵盖进来。一旦景象区域(viewingarea)选择好了,则依剪切逻辑(clippinglogic)来将景象区域以外的多边形(通常即是指三角形)删除,以及删除位于景象边界上的多边形。经剪切之后的这些多边形即形成景象区域的一个多边形,并形成该景象区域的新边缘(edge(s))。此多边形的顶点将被传送至下一级,其坐标对应于显示器屏幕的X,Y坐标,且每一顶点具有一相关的深度值作为Z坐标。在一般的绘图系统中,接着使用光模式(lightingmodel)来表现光源。前述的多边形及其相关的颜色值将被传送至扫瞄线运算单元(rasterizer)。针对每一个多边形,扫瞄线运算单元(rasterizer)决定哪些像素位置被多边形所涵盖,且同时将相关的颜色值及深度值(Z坐标)一并放到视框缓冲存储器(framebuffer)中。此扫瞄线运算单元比较正处理中的多边形的深度值与之前储存于缓冲存储器中的深度值。假如正处理中的多边形的深度值小于之前的深度值,也就是说,现正处理的多边形位于前一多边形的前面,此时新的深度值将会取代之前的深度值。持续此种处理过程,直到所有多边形都被扫瞄线化(rasterized)。这时候,视讯控制器(videocontroller)会将缓冲存储器中的内容,一行一行的显示于显示屏上。一般即时(realtime)图形显示的预设方法是显示出多边形内部(或外部)的像素,然而,其所形成的边缘(edges)在静态影像显示中通常会造成锯齿状(jagged),而在动态显示时则会产生蠕动(或拖尾)(crawing)现象。这些现象通称为图形失真(aliasing)现象,而用以克服这些缺陷的方法则称为防图形失真(anti-aliasing)方法。与屏幕相关的防图形失真方法并不需要知道所要显示的物件,因为屏幕显示时仅会使用到管道(pipeline)的输出取样。通常使用一种称为多次取样防图形失真(Multi-SampleAnti-Aliasing,MSAA)的行(line)防图形失真技术,其在单一执行(singlepass)中对于每一像素采多次取样。每一像素所取样的数目(称为取样(samples)或次像素(sub-pixels))称为取样率;当取样率增加时,则存储器的资料流量也会跟着增加。依据上述的一般背景说明,接着请参照图1所示,传统计算机绘图系统中的绘图管道(graphicspipeline)的功能方块图。值得注意的是,每一个系统之组成的元件可能各有不同,且不限定于图1的表现形式。主计算机10(或者是执行于主计算机中的绘图应用程序介面(API))会产生命令列(commandlist)12,其通常是包含一系列绘图命令及资料,用以于绘图显示器中产生绘图环境。图1中所示的各个组成元件将对这些命令及资料进行运算,用以于显示器上进行显示。语法分析单元14接收命令列12中的资料并进行语法分析,其解释这些命令并将定义基本图形元素(primitive)的资料传送至绘图管道。该绘图基本元素可以通过其位置数据(例如x,y,z,w坐标),以及光照(lighting)、纹理讯息来加以定义。语法分析单元14可以从命令列得到每一个基本图形元素的讯息,再将其传送到顶点明暗处理单元(vertexshader)16。此顶点明暗处理单元16会将接收到的数据进行各种转换。例如,从世界坐标(Worldcoordinates)转换为模型景象坐标(ModelViewcoordinates),再转换为投射坐标(projectioncoordinates),最后转换为屏幕坐标(Screencoordinates)。顶点明暗处理单元16为已知技术,因此不在此详述其功能。经顶点明暗处理单元16处理的绘图数据再传送至扫瞄线运算单元(rasterizer)18。接着,以z测试单元(z-test)20处理基本图形元素的每一个像素,其将目前基本图形元素的像素之z值与之前储存的z值作比较;此z值用以表示某一像素深度值。假如目前的z值所表示的深度较之前z值来得浅(较接近视者),则以目前的z值来取代之前储存的z值,且目前的绘图讯息(亦即颜色)也会取代缓冲存储器相对应位置上的颜色讯息,这些将由底下的像素明暗处理单元(pixelshader)22来决定。假如目前的z值所表示的深度并没有较之前z值来得浅,则缓冲存储器和z缓冲器都不作变更。对于前述基本图形元素被判定较之前来得浅时,则相关的讯息将被传送至像素明暗处理单元(pixelshader)22,用以决定这些较浅像素的颜色讯息。一旦颜色讯息经像素明暗处理单元22计算得到后,即储存于视框缓冲存储器24中。虽然前面简短的介绍了各处理单元的运作情形,然而,绘图资料的处理其实是很复杂的;因此,亟待进一步增进其处理效率。
发明内容本发明的目的是提供一种计算机绘图之颜色资料的压缩系统,该系统用于多次取样防图形失真系统中使用多重平面以进行颜色压缩,其包含一绘图处理单元;一视框缓冲存储器,与绘图处理单元电性连结,用以储存像素的颜色资料;多数个次像素,其中每一个次像素包含一像素的颜色取样;一取样率,其为一默认值,包含每一像素的次像素之数目;一分割区域(tile),其包含多数个像素;及多数个平面,用以储存颜色取样,其中平面的数目相等于一取样率。在本发明的其中一个实施例可以使用计算机绘图硬件来实施,其包含一装置用以压缩颜色资料,且使用多数个预定平面以储存次像素颜色取样资料。本发明方法的一实施例用于计算机绘图系统中,对于颜色资料的压缩方法,其包含储存像素颜色资料于一视框缓冲存储器;设定一取样率,用以决定每一像素的颜色取样之数目;分配多个颜色取样给每一像素,其中每一颜色取样包含一次像素,使得每一像素包含有多数个次像素;产生一分割区域(tile),其包含多数个像素;组织存储器使成为多数个平面,其中每一个次像素相对应于一个不同的平面,且每一个平面包含一连续存储器区块;及取得一分割记录(tilerecord),其包含分割压缩资料(tilecompressiondata)。本发明方法的另一实施例用于计算机绘图系统中,其包含一多次取样防图形失真逻辑单元,用以储存每一像素之多数个颜色取样,其中每一颜色取样包含一次像素,使得每一像素的颜色资料包含多数个次像素,且一分割区域(tile)包含多数个像素;一颜色数据压缩逻辑单元,用以设定多数个平面,其中每一平面分配给不同的次像素,且每一平面包含一连续存储器区块;及一压缩状态逻辑单元,用以决定一分割区域的可压缩性,其中一分割记录(tilerecord)包含一完整涵盖之分割区域资料(tilefullycovereddata),用以表示分割区域的所有像素都被完整涵盖住,且当分割区域被完整涵盖时,则分割区域颜色资料则储存于平面中的第一平面。本发明的其它实施系统、方法、特征及其优点,在看了以下的实施方式说明及相关附图后,将可以得到清晰的了解。这些实施系统、方法、特征及其优点都属于本发明所保护的范围,其如申请专利范围中所述之。图1显示传统绘图管道的功能方块图。图2显示本发明实施例之绘图管道的功能方块图。图3显示本发明实施例之实施颜色数据压缩功能的绘图管道之组成单元。图4显示本发明实施例之分割与像素资料的组织态样。图5显示在一例示的分割区域中具有次像素。图6显示本发明实施例中一个多次取样防图形失真的像素例子。图7显示本发明实施例中另一个多次取样防图形失真像素的例子。图8显示本实施例多次取样防图形失真系统中,多重平面于视框缓冲存储器中的分配。图9显示本发明实施例之分割记录的格式。图10显示被四个基本图形元素所分别部分涵盖的例子。图11A至图11D显示本发明实施例中分割区域被基本图形元素完整涵盖的例子。图12A至图12C显示本发明实施例中分割区域未被基本图形元素完整涵盖的例子。图13A至图13B显示本发明实施例中分割区域被三个基本图形元素部分涵盖的例子。图14显示本发明实施例之颜色数据压缩的流程图。图15显示本发明实施例之颜色数据压缩的流程图。图中符号说明10主计算机(绘图应用程序介面)12命令列14语法分析单元16顶点明暗处理单元18扫描线运算处理单元20Z-测试单元22像素明暗处理单元24视框缓冲存储器210绘图单元212多次取样防图形失真逻辑单元214颜色数据压缩逻辑单元302主计算机310绘图处理单元312命令语法分析单元314顶点及几何明暗处理单元316三角形设定318延伸/分割产生单元320分割区域Z-范围测试单元322像素Z-测试单元324像素明暗处理单元326视框缓冲存储器330分割记录产生单元340外部存储器350颜色压缩逻辑单元400显示器402像素404分割区域406分割区域408矩410列412行500分割区域502像素504次像素600像素601,602,603,604次像素605左上方颜色资料取样606右上方颜色资料取样607左下方颜色资料取样608右下方颜色资料取样700像素704次像素706颜色资料取样800视框缓冲存储器802列804平面806颜色资料取样900分割纪录910分割压缩资料912分割区域完整涵盖资料914未被完整涵盖的像素位置916分割区域边缘资料918分割区域之未压缩资料1000,1010次像素1020,1021,1022,1023基本图形元素1030,1031次像素1110显示器1120三角形1122扫瞄线1124垂直线1130分割区域1140像素1210显示器1220基本图形元素1230分割区域1240,1242,1243,1244像素1250,1260基本图形元素1310显示器1320基本图形元素1330分割区域1340,1343像素1342部分涵盖的像素1350,1360基本图形元素1400方法1410分配多个像素给分割区域1420决定每像素的取样数(取样率)1430储存像素颜色资料于视框存储器缓冲区1440于存储器规划出连续存储器区块给平面使用1450分配和储存颜色取样(次像素)1460读取具有分割压缩资料的分割记录以决定读取哪一平面1500方法1510从外部存储器读取分割记录1520读取分割压缩状态资料1530分割区域是否完全被基本图形元素所涵盖1540分割区域仅需一种颜色1542压缩不需额外的存储器读取动作1550分割区域需多个颜色平面1552读取被部分涵盖之像素的资料位置1554读取边缘型态号码1556从存储器的表格查询边缘函数1558决定像素位于边缘的哪一边1560储存颜色于第N平面,其中N=1+(边缘的数目)具体实施方式前面概要的说明本发明的一些特征,以下将配合附图详细说明本发明,然而本发明并不限定于这些实施例。相反的,以下内容用以提供且涵盖申请专利范围的各种替代作法、修饰、及等效改变。另外,除了计算机绘图领域外,本发明还可以适用于绘图系统的其它部分。图2显示本发明实施例的基本组成单元。其中,绘图单元(graphicscomponent)210可以代表绘图管道(graphicspipeline)中的硬件单元。在这个绘图单元210当中具有多次取样防图形失真(multi-sampleanti-aliasing)逻辑单元212,其对于每一像素(pixel)提供颜色资料的多次取样并储存于视框缓冲存储器(framebuffer)中。另外,绘图单元210当中还具有一颜色数据压缩逻辑单元(colordatacompressionlogic)214,用以压缩这些颜色资料,达到减少处理器与视框缓冲存储器之间的资料流量。本实施例可以适用于一些可程序化处理功能中,一般称为绘图处理单元(GraphicProcessingUnits,GPU),例如像素明暗处(pixelshading),用以取代硬件的处理。通过减少绘图处理单元(GPU)与视框缓冲存储器之间的资料流量,可以大大增进可程序化绘图处理单元(programmableGPU)的效率。图3显示本发明实施例中,用以实施颜色数据压缩功能的绘图管道之组成单元。在这些单元当中,有些沿用已知技术,有些则包含本发明的特征。例如,绘图处理单元(GPU)310、命令语法分析单元312、顶点及几何明暗处理单元(vertexandgeometryshader)314、三角形设定(trianglesetup)316、及延伸/分割产生单元(span/tile)318属于已知技术,因此不作进一步说明。另外,z范围测试单元(z-rangetest)320也是运用已知的技术,其用来对压缩的z资料进行z值测试;根据压缩的z讯息,得以接受或拒绝某些基本图形元素(primitive)或者某像素范围,因而增进效率。类似的情形,由像素z测试单元(pixelz-test)322来测试各像素。图3还显示了分割纪录产生单元(generatingtilerecord)330其储存于外部存储器340、像素明暗处理单元(pixelshader)324、以及颜色数据压缩单元(colorcompressionlogic)350。像素明暗处理单元324和分割纪录产生单元330属于习知技术,因此不作进一步说明。如其名称所显示的,像素明暗处理单元324针对各像素作明暗处理。对于一基本图形元素或者对于一分割(tile)区域,有些像素因为其深度因素或者因受到目前像素与景象点之间物件的阻挡而看不到;对于这些像素,就不需要进行像素明暗运算。在多次取样防图形失真(Multi-SampleAnti-Aliasing,MSAA)系统中,由于每一像素需要储存多个取样,因此资料流量将大幅增加。一旦颜色资料讯息经由像素明暗处理单元324运算后,其讯息将储存于视框缓冲存储器326中。颜色压缩逻辑单元350自外部存储器340读取分割纪录(tilerecord)以进行颜色资料的压缩,并配合像素明暗处理单元324,因而得以减少绘图处理单元(GPU)310与视框缓冲存储器326之间的资料流量。图4显示本发明实施例之绘图资料的组织态样,于显示器400之内具有绘图的基本单元,亦即像素(pixel)402。多个像素402于各维度的组合后因而形成分割(tile)区域404。在本例示中,在纵向维度具有八个像素而横向维度则具有一个像素;本发明也适用于其它型态的分割区域。如前所示,于计算机绘图系统中,每一像素402对应有相当多的绘图资料;其可以包含颜色资料,例如红、绿、蓝、alpha(R,G,B,A)、深度讯息(Z)、纹理讯息(U,V坐标)等等。对于多次取样防图形失真(MSAA)系统,光是颜色讯息就包含了相当多的资料量,尤其是当取样率增加时更甚。例如,一个采用多次取样防图形失真(MSAA)的计算机绘图系统,当其取样率为四时,则每一个像素将具有四个颜色取样;相对于分割(tile)区域406将有三十二个颜色取样,如408所示的矩阵,其每一系列410具有四个取样,且每一行412相对应于每一像素的相同颜色之取样。图5显示在一例示的分割(tile)区域中具有次像素(sub-pixel)。与前一图类似的情形,分割(tile)区域500具有八个像素502,其排列型态在纵向维度具有八个像素而横向维度则具有一个像素。每一个像素更包含有多个次像素(sub-pixel)504,每一个次像素504包含一个颜色取样(sample)。在图式中,由于取样率为四,因此,每一像素含有四个次像素。又例如,如果取样率为十六,则每一像素即包含十六个次像素或十六个取样。在本实施例中,每一个次像素的颜色资料采用多重平面(multipleplanes)的方式来储存的。图6显示本发明实施例中一个多次取样防图形失真(MSAA)像素的例子。在此例子中,取样率为四,因而像素600包含有四个颜色资料之次像素601-604;此次像素601-604分别包含颜色资料取样605-608。这些取样605-608用以代表像素600中不同位置的颜色。例如,根据这些次像素的数目及安排,颜色资料取样605-608的位置可能有所不同,因此像素的各个颜色资料取样就可以使用较有效的方式来安排。每一个颜色资料取样储存于不同的平面,例如左上方的颜色资料取样605位于平面0,其它平面的安排如下表所示这些平面对应于每一像素之颜色资料取样。特别的是,每一次像素被分派于一预定平面(defaultplane),又称为标记平面(designatedplane)。例如,所有像素的左上方颜色资料取样605都分派为平面0,并储存于连续的视框缓冲存储器区块中。同样的,所有像素的右上方颜色资料取样606都分派为平面1,并储存于另一个连续的视框缓冲存储器区块中。图7显示本发明实施例中另一个多次取样防图形失真(MSAA)像素的例子。在此例子中,取样率为八,因而像素700包含有八个颜色资料的次像素704;此次像素704分别包含有颜色资料取样706。这些取样706用以代表像素700中不同位置的颜色。相较于图6中的四个颜色资料取样605-608,本附图中的八个颜色资料取样706具有更高的颜色分辨率。每一个颜色资料取样706分别储存于不同的平面0至7。与图6类似的是,每一个平面相对应于每一像素之颜色资料取样。特别的是,每一次像素被分派于一特定平面,并储存于连续的视框缓冲存储器区块中。图8显示本实施例多次取样防图形失真(MSAA)系统中,多重平面于视框缓冲存储器中的分配情形。延续之前具有八个像素之分割(tile)区域的例子,取样率为N的多重平面分配于视框缓冲存储器800当中,其中,颜色资料取样806组织成各个平面804。每一个像素的各个颜色资料取样位于同一系列(row)802中的N个平面。再者,每一平面则位于同一行(column)。每一平面的颜色资料取样储存于连续的存储器区块中。另外,各个平面存储器区块之间,可视实际需要使其互相连续。从这个例子当中可以知道,当取样率增加时,每一像素的颜色资料量将跟着大幅提高。图9显示本发明实施例之分割记录(tilerecord)的格式。此分割记录900储存于外部存储器中,其包含分割压缩资料910。此分割压缩资料910包含一个字段912,用以表示该分割(tile)区域是否被基本图形元素(primitive)所完整的涵盖。当分割(tile)区域被基本图形元素(primitive)完整的涵盖时,因为除了该分割记录的压缩资料以外,并不需进行存储器的读取,因此颜色资料的压缩率将可以达到最高。例如,分割(tile)区域中的所有像素之颜色资料可以储存于平面0,其只需要一个平面来储存颜色资料取样。分割压缩资料910还包括一字段914,用以表示未被完整涵盖的像素之位置。例如,当某一像素成为两个基本图形元素(primitive)之边缘时,使得像素并未被完整涵盖于其中一个基本图形元素(primitive)。此时,必须要决定出一个最佳化的情形,以进行颜色资料之压缩;在此最佳化之下,存储器读取的机率较低。例如,最佳化的决定是究竟要涵盖哪一部份的像素。图10显示被四个基本图形元素(primitives)所分别部分涵盖的例子。当取样率为八时,该像素1000包含有八个次像素1010;这八个次像素1010被四个基本图形元素(primitives)1020-1023所分割,其中,每一个基本图形元素涵盖有二个次像素。例如,基本图形元素1021涵盖次像素1030-1031。在这个例子中,当其它像素被储存于平面0时,此像素的次像素则储存于平面1。在此例子中,平面1最多可以储存八个颜色资料,因此用来储存像素1000的八个次像素1010。再回到图9,分割记录900还包括分割区域边缘资料(tileedgedata)916,用来表示具有边缘的分割区域。由于大部分未被完整涵盖者通常具有一个边缘,因此可以得到一个有效利用数据压缩的最佳化情形。于压缩码中储存边缘资料以表示其边缘型态号码(edgepatternnumber)以及一相对应的对照表(lookuptable),用以取得实际的边缘函数(edgefunction)。此边缘函数(edgefunction)用以决定每一个次像素相对于边缘每一部位的位置,其颜色数据则储存于平面0与平面1。一般熟悉该技术者可以知道,当取样率大于二时,将颜色资料储存于两个平面,将可以有效减少资料流量。分割记录900还包括分割区域之未压缩资料(tileuncompressibledata)918,适用于当分割区域并不适于作数据压缩的情形。此字段用以表示,当对于分割区域作最佳化时,发现数据压缩并不会对于资料流量有所改善的情形。图11显示本发明实施例中分割(tile)区域被基本图形元素(primitives)完整涵盖的例子。为了让本发明特征更容易了解,图11A至图11D所示为一个经过简化的例子;然而,这里所揭露的原则作法可以应用于较复杂的真实情况中。于图11A中,三角形的基本图形元素(primitives)1120位于显示器1110边界的内部。通常,在单一的计算机绘图显示当中,就可能显示有上千个基本图形元素,这些基本图形元素通常都会被分割成为三角形的基本图形元素,例如图式中的三角形1120。在绘图管道的一些前段处理元件中,会对基本图形元素先进行一些设定(setup)及顶点方面的运算。延伸/分割产生单元(span/tile)将基本图形元素分割为一条条的扫瞄线1122(图11B)及像素1140(图11D),其由垂直线1124(图11C)与扫瞄线1122互相交错所定义出来的。通常,像素1140会组合成尺寸为2×2、4×4、8×8、或其它尺寸的分割(tile)区域。图11D显示一具有1×8尺寸的分割(tile)区域1130;由于此分割(tile)区域1130被三角形基本图形元素1120所完整涵盖,因此这个例子代表了压缩的最佳情况。如同前面所说明的,此被完整涵盖之分割(tile)区域1130的颜色资料将被储存于一个单一平面0中。图12A至图12C显示本发明实施例中分割(tile)区域未被基本图形元素(primitives)完整涵盖的例子。为了让本发明特征更容易了解,图12A至图12C所示为一个经过简化的例子;然而,这里所揭露的原则作法可以应用于较复杂的真实情况中。于图12A中,两个相邻的三角形的基本图形元素(primitives)1220、1250位于显示器1210边界的内部。通常,在单一的计算机绘图显示当中,就可能显示有上千个基本图形元素,这些基本图形元素通常都会被分割成为三角形的基本图形元素,例如图式中的三角形1220、1250。如前面所描述的,延伸/分割产生单元(span/tile)将基本图形元素分割为像素1240(图12B),其由垂直线与扫瞄线互相交错所定义出来的。通常,像素1140会组合成尺寸为2×2、4×4、8×8、或其它尺寸的分割(tile)区域。图12B显示一具有1×8尺寸的分割(tile)区域1230。与图11不同的是,图12C所示的分割(tile)区域1230被基本图形元素1220所部分涵盖,以及被基本图形元素1250所部分涵盖,因此这个例子的较佳化压缩需要将颜色资料储存于两个平面0、1当中。在压缩码中,分割记录(tilerecord)必须包含有分割边缘资料(tileedgedata),用以区别出部分涵盖的像素1242,以及分别为基本图形元素(primitives)1220、1250所涵盖的像素1243、1244。执行了压缩以后,将可以大大减少存储器资料流量,由其当取样率变大时更甚。图13A至图13B显示本发明实施例中分割(tile)区域被三个基本图形元素(primitives)部分涵盖的例子。为了让本发明特征更容易了解,图13A至图13B所示为一个经过简化的例子;然而,这里所揭露的原则作法可以应用于较复杂的真实情况中。于图13A中,三个相邻的三角形基本图形元素(primitives)1320、1350、1360位于显示器1310边界的内部。通常,在单一的计算机绘图显示当中,就可能显示有上千个基本图形元素,这些基本图形元素通常都会被分割成为三角形的基本图形元素,例如图式中的三角形1320、1350、1360。如前面所描述的,延伸/分割产生单元(span/tile)将基本图形元素分割为像素1340(图13B),其由垂直线与扫瞄线互相交错所定义出来的。通常,像素1340会组合成尺寸为2×2、4×4、8×8、或其它尺寸的分割(tile)区域。图13B显示一具有1×8尺寸的分割(tile)区域1330。与图11完整涵盖及图12具有单一边缘(edge)不同的是,图13B所示的分割(tile)区域1330分别被基本图形元素1320、1350、1360所部分涵盖,因此这个例子的较佳化压缩需要将颜色资料储存于三个平面当中;在某些取样率之下,压缩可能不会对存储器资料流量有所改善。在一些情形下,例如本例子中具有两个边缘者,分割记录(tilerecord)可能不会包含有分割边缘资料(tileedgedata);在此情形下,会在分割记录(tilerecord)中的分割区域之未压缩资料(tileuncompressibledata)字段中加以注记,且此时会将所有取样资颜色资料直接储存于视框缓冲存储器中。然而,在某些情形下,即使分割(tile)区域被多于二个基本图形元素所部分涵盖时,当取样率变大时,因压缩所需花费的成本可能仍小于存储器资料量的改善,因此,进行压缩仍然是值得的。图14显示本发明实施例之颜色数据压缩的流程图。在本实施例方法1400中,首先分配多个像素给分割(tile)区域(步骤1410)。这些分割区域可以组合成尺寸为2×2、4×4、8×8、或者如前述例子中的1×8。根据系统的容量及绘图分辨率要求,于步骤1420中决定每一个像素究竟要取多少个颜色资料取样(colordatasamples);在多次取样防图形失真(MSAA)系统中,此称为取样率(samplingrate)。上述像素之颜色资料则储存于视框缓冲存储器(framebuffer)中(步骤1430),这些数据将会由绘图处理单元(GPU)来读取。通过压缩可以减少一些资料的储存与读取,此将可以有效减少存储器读取的资料流量。将视框缓冲存储器予以规划出多个连续存储器空间的平面,用以储存分割区域中所有像素的的次分割区域(subtile)(步骤1440)。其中,每一个次分割区域(subtile)包含次像素(sub-pixel)的颜色资料取样,并将这些取样资料储存起来(步骤1450)。接着,读取储存于绘图处理单元(GPU)外部存储器中的分割记录(tilerecord)及分割区域的压缩资料,以决定众多平面当中究竟要读取哪一个平面(步骤1460)。由于读取个别分割记录(tilerecord)及压缩资料并不需要很大的资料流量,通过使用多重平面以压缩颜色资料,因而可以大幅减少绘图处理单元(GPU)与视框缓冲存储器之间的资料流量。图15显示本发明实施例之颜色数据压缩的流程图。在本实施例方法1500中,首先从外部存储器读取分割记录(tilerecord)(步骤1510)。如之前所述的,读取分割记录所增加的资料流量与数据压缩所减少的资料流量相比,显然是微不足道。接着,从分割记录(tilerecord)当中读取数据压缩状态(步骤1520);此状态表示分割(tile)区域是否被基本图形元素(primitives)所完整涵盖(步骤1530)。如果为完整涵盖,则此分割区域仅需要一种颜色(步骤1540),在多次取样防图形失真(MSAA)系统中此颜色资料仅储存于多重平面其中的一个;在此情形下,压缩就不需要额外的存储器读取动作(步骤1542),因此可以大大减少存储器读取的流量。如果分割(tile)区域并非被完整涵盖,则分割区域需要使用多于一种的颜色平面(步骤1550)。接着,于步骤1552读取部分涵盖像素的资料位置,且于步骤1554读取边缘型态号码(edgepatternnumber)。根据此边缘型态号码查询相对应的对照表(lookuptable),用以取得边缘函数(edgefunction)(步骤1556);并决定次像素相对于边缘的哪一边(步骤1558)。根据压缩所需的取样数,颜色资料被储存于所需数目的平面内(步骤1560)。一般来说,压缩需要N个平面来储存颜色资料,其中,N为与分割区域相交的边缘数目再加一。以上所述的的实施例可以使用硬件、软件、韧体、或其组合来实施。在某些实施例中,颜色资料的压缩以软件或韧体形式,储存于存储器中再以适当的指令系统来执行。如果以硬件形式,则颜色资料的压缩可以使用底下的形式之一或其组合来实施分立的(discrete)逻辑电路,其具有逻辑闸用以对数据进行逻辑运算;特定用途集成电路(ASIC),其具有适当的组合逻辑闸;可编程门阵列(PGA);现场可编程门阵列(FPGA)等等。前述流程图中的方块或描述可以代表程序代码的某些模块、片段、或部份,其可以经执行指令以实现特殊逻辑功能或步骤;另外,这些功能或步骤可以根据需求在其它实施例中依照不同的顺序来执行,甚至是同时(concurrently)执行或者以相反的顺序执行。以上所述的仅为本发明之较佳实施例而已,主要是为了说明方便,并非用以限定本发明之申请专利范围;凡其它未脱离本发明所揭示之精神下所完成的等效改变或修饰,均应包含在所述的申请专利范围内。权利要求1.一种计算机绘图之颜色资料的压缩系统,包含一绘图处理单元;一视框缓冲存储器,与该绘图处理单元电性连结,用以储存像素颜色数据;多数个次像素,其中每一该次像素包含一像素的颜色取样;一取样率,其为一默认值,包含每一像素的次像素之数目;一分割区域,其包含多数个像素;及多数个平面,用以储存该颜色取样,其中该平面的数目相等于一取样率。2.如权利要求1所述的计算机绘图之颜色资料的压缩系统,其中上述每一该平面所储存的颜色取样针对该次像素其中之一,使得每一该次像素相对应于一个指定平面。3.如权利要求2所述的计算机绘图之颜色资料的压缩系统,其中上述每一该平面包含一连续存储器区块,用以储存该分割区域。4.如权利要求1所述的计算机绘图之颜色资料的压缩系统,更包含一分割记录,其包含压缩状态资料。5.如权利要求4所述的计算机绘图之颜色资料的压缩系统,其中上述之压缩状态资料包含一完整涵盖之分割区域位,当该分割区域的所有像素都被完整涵盖住,则该分割区域即为被完整涵盖;及一被部分涵盖之像素的位置资料。6.如权利要求5所述的计算机绘图之颜色资料的压缩系统,其中上述之压缩状态资料更包含分割边缘资料;该分割边缘资料包含一边缘的位置;一边缘型态号码;及一边缘函数对照表,其边缘函数可以根据该边缘型态号码来取得。7.如权利要求4所述的计算机绘图之颜色资料的压缩系统,其中上述之压缩状态资料包含一分割区域之未压缩位,用以表示该分割区域是否适于进行颜色数据压缩。8.一种计算机绘图之颜色资料的压缩方法,包含储存像素颜色资料于一视框缓冲存储器;设定一取样率,用以决定每一像素的颜色取样之数目;分配多个颜色取样给每一像素,其中每一颜色取样包含一次像素,使得每一像素包含有多数个次像素;产生一分割区域,其包含多数个像素;组织存储器使成为多数个平面,其中每一个次像素相对应于一个不同的平面,且每一个该平面包含一连续存储器区块;及取得一分割记录,其包含分割压缩资料。9.如权利要求8所述的计算机绘图之颜色资料的压缩方法,其中上述之分割压缩资料包含一完整涵盖之分割区域资料,用以表示该分割区域的所有像素都被完整涵盖住。10.如权利要求9所述的计算机绘图之颜色资料的压缩方法,当该分割区域被完整涵盖时,一分割颜色包含该像素其中之一颜色取样。11.如权利要求8所述的计算机绘图之颜色资料的压缩方法,其中上述之分割压缩资料包含分割边缘资料;该分割压缩资料包含一边缘的位置,用以指出该分割区域中那个像素包含一边缘;一边缘型态号码;及一边缘函数对照表,用以决定一边缘函数。12.如权利要求11所述的计算机绘图之颜色资料的压缩方法,更包含一步骤以测试该次像素,以决定每一该次像素相对于该边缘的位置。13.一种计算机绘图系统,包含一多次取样防图形失真逻辑单元,用以储存每一像素的多数个颜色取样,其中每一该颜色取样包含一次像素,使得每一像素的颜色资料包含多数个次像素,且一分割区域包含多数个像素;一颜色数据压缩逻辑单元,用以设定多数个平面,其中每一平面分配给不同的次像素,且每一该平面包含一连续存储器区块;及一压缩状态逻辑单元,用以决定一分割区域的可压缩性,其中一分割记录包含一完整涵盖的分割区域资料,用以表示该分割区域的所有像素都被完整涵盖住,且当该分割区域被完整涵盖时,则该分割区域颜色资料则储存于该平面中的第一平面。14.如权利要求13所述的计算机绘图系统,其中上述之分割记录包含分割边缘资料,其中当该分割区域包含一第一边缘时,则该颜色资料储存于该平面中的第一及第二平面。15.如权利要求14所述的计算机绘图系统,其中上述之分割边缘资料包含该边缘的位置;一边缘型态号码;及一边缘函数表,其边缘函数可以根据该边缘型态号码来取得。16.如权利要求14所述的计算机绘图系统,当上述之分割边缘资料显示有n边缘时,则该分割颜色资料储存于第n+1平面。全文摘要本发明为一种计算机绘图之颜色资料的压缩系统及方法,用于多次取样防图形失真系统中使用多重平面以进行颜色压缩,其包含绘图处理单元;视框缓冲存储器,与绘图处理单元电性连结,用以储存像素的颜色资料;多数个次像素,其中每一个次像素包含一像素的颜色取样;一取样率,其为一默认值,包含每一像素的次像素之数目;一分割区域,其包含多数个像素;及多数个平面,用以储存颜色取样,其中平面的数目相等于一取样率。本发明的系统和方法适用于可程序化处理的绘图处理单元中,例如像素明暗处理,用以取代硬件的处理。通过减少绘图处理单元与视框缓冲存储器之间的资料流量,可以大大增进可程序化绘图处理单元的效率。文档编号G06T15/00GK1773552SQ20051011819公开日2006年5月17日申请日期2005年11月11日优先权日2004年11月12日发明者廖群峰申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1