CN1463416A - 图像处理方法 - Google Patents
图像处理方法 Download PDFInfo
- Publication number
- CN1463416A CN1463416A CN02802010A CN02802010A CN1463416A CN 1463416 A CN1463416 A CN 1463416A CN 02802010 A CN02802010 A CN 02802010A CN 02802010 A CN02802010 A CN 02802010A CN 1463416 A CN1463416 A CN 1463416A
- Authority
- CN
- China
- Prior art keywords
- polygon
- pixel
- coordinate
- longest edge
- size
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- 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/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
- Apparatus For Radiation Diagnosis (AREA)
Abstract
关于组成计算机图形中对象的三角多边形的数据的大小与预定阈值进行比较。把数据大小未超过阈值的多边形转换为像素。另一方面,把数据大小超过阈值的多边形进行分割,并将各图块再次与阈值进行比较。因此有效处理了多边形,而不会明显地增大电路结构的规模和成本。多边形处理不受其大小所影响。
Description
技术领域
本发明涉及图像处理方法、图像处理装置、记录了图像处理程序的记录媒体以及用于从三维图像信息中产生在二维屏幕、如电视监视设备上绘制的二维图像信息的图像处理程序。
背景技术
近年来,电视游戏控制台和个人计算机中的处理器和存储器加速地向更高集成度和更快的处理速度发展,使得有可能以实时方式从三维图像中生成细腻真实的二维图像,并且能够在二维监视器屏幕上显示它。
目前大多数图像处理系统根据以多边形为基础的绘制处理来生成二维图像。目前的图像处理系统在二维图像生成中采用基于多边形的绘制处理的原因在于:根据多边形顶点表示的多边形数据易于控制;多边形数据向像素数据的转换可通过将顶点线性内插于绘制屏幕上来实现,因而存储器存取及操作可具有局部性,这就足以提高处理速度;以及如果采用DDA(数字微分分析器)来执行线性内插,则通过添加就可简单地完成大部分操作,因此,即使在现有的电路规模下,也可实现非常有效的实时绘制。
从数据类型转换的角度来看,二维图像的生成处理如下所述。
首先,完全坐标系上的多边形数据经过包括坐标变换、裁剪及光线处理在内的几何计算。然后,经过这种几何计算后获得的多边形数据再经过投影变换而转换为屏幕坐标上的多边形数据。屏幕坐标上的多边形数据经过着色而转换为屏幕上的像素数据(像素转换)。像素数据被进一步转换为屏幕数据,以便在二维屏幕上进行显示。屏幕数据被发送到电视监视装置中,并作为二维图像在二维屏幕上显示。
应当指出,多边形数据以顶点为基础,另一方面,像素数据以像素为基础。也就是说,这两种数据在处理的单元上有所不同。因此,多边形数据向像素数据的转换常常导致数据处理的延迟以及计算电路的低效运算。更具体地说,着色是多边形面积直接影响的处理,因此,对较大多边形的像素转换要耗费较长的处理时间,而对较小多边形则耗费较短时间。相反,几何计算和投影变换是基于顶点的计算过程,与多边形面积无关,因此,对于较大的多边形以及较小的多边形,这些计算均耗费几乎同样长的时间。也就是说,对于先绘制较大的多边形、然后再绘制较小的多边形的典型情况,强制性地暂停较小多边形的几何计算和投影变换,直到完成通过着色对较大多边形进行的像素转换。
近年来用于着色的主流计算电路是这样的:对于单个多边形,每个处理周期生成多个多边形,其中,这些像素的数量是固定的,视硬件而定。另一方面,即使在着色之后,较小多边形常常达不到固定的像素数量。因此,达不到固定的像素数量的小多边形的数量的增加会降低计算电路的处理效率,从而降低像素填充速率。
根据这些情况,图像处理系统能够以最有效的方式在绘制屏幕上进行处理的多边形的大小几乎是由用于几何计算、设置处理和着色处理(像素转换)的电路结构及其性能比(性能差异)等唯一决定的。尤其是传统的图像处理系统被配置成高效地绘制相对较大的多边形。换言之,这意味着传统的图像处理系统无法高效地处理除具有用于高效处理的大小的多边形以外的多边形。
另一方面,据推测,绘制模型会变得更为复杂,并且着色处理将来会更为多样化。如果绘制模型变得更为复杂且着色处理更为多样化,则可以预测:多边形不可避免地会变得更小;小多边形的数量会显著增加;以及关于多边形顶点的参数的数量也会增加。此外,根据这些结果,可以预测,图像处理系统会大大降低像素填充速率。
如上所述,为了有效地处理大量的小多边形,图像处理系统应当加快像素转换处理,并提高多边形的吞吐量。此外,为了提高像素填充速率,图像处理系统应同时绘制较大的多边形。然而,既要对大量小多边形进行高速处理,同时又要提高像素填充速率,以便满足上述两种需求,这对于传统的图像处理系统来说是很难兼顾的。为满足这两种需求所作的工作将使图像处理系统具有大量的昂贵且庞大的DDA,这在成本及电路规模方面都是不可行的。
本发明是针对上述问题提出的,其目的在于提供一种图像处理方法、图像处理装置、记录了图像处理程序的记录媒体以及能够在不扩展电路结构或明显增加成本的前提下高效处理大量的小多边形、并且提高像素填充速率而不受多边形大小所影响的图像处理程序。
发明的公开
根据本发明,每个多边形的大小与预定阈值进行比较,检测大小超过该阈值的三角多边形的最长边,然后用连接最长边上的预定点与和该最长边相对的顶点的线段来分割大小超过阈值的三角多边形;以及把大小未超过阈值的每个多边形转换成像素。特别的是,所述预定点是多边形最长边的中点。
也就是说,根据本发明,超过阈值的每个多边形通过连接最长边中点与和最长边相对的顶点的线段来分割。递归地执行这种分割处理,直到每个多边形的大小都收敛在预定值的范围之内。例如,阈值对应于像素转换的计算范围。换句话说,根据本发明,像素转换的计算被限制得小到一定程度,使得用于像素转换的结构可以小型化,这更易于提高并行处理的程度。同时,根据本发明,执行递归分割,以便使超过阈值的多边形收敛为一种多边形,该多边形的计算范围限制在适合执行像素转换的小范围。因此,本发明能够通过递归分割大小超过预定值的多边形,使各种多边形大小收敛为适合像素转换的计算范围的大小。此外,本发明能够提高多边形的吞吐量,并通过使像素转换并行化来极大地提高像素填充速率。
附图简介
图1是说明像素转换的概念的示意图;
图2是说明一种处理的示意图,其中,采用数字信号处理器(DSP)或图形处理器(GP)、或者基于软件来进行像素转换;
图3是说明比较面积大小的处理的框图;
图4是用于说明比较面积大小的处理的示例三角多边形的视图;
图5是说明多边形分割处理的示意图;
图6是用于说明多边形分割处理的示例三角多边形的视图;
图7是说明三角多边形的最长边及其中点的视图;
图8是说明这样分割的多边形的视图;
图9是框图,说明应用于电子游戏控制台的图形处理器单元(GPU)的像素转换处理的具体结构。
本发明的最佳实施方式
下面参照图1说明根据本发明的多边形的像素转换处理的概况。
在一种从三维图像信息中产生二维图像的情况中,有若干大多边形Pl和大量小多边形Ps。如果待绘制的模型要更准确,则应增加小多边形Ps的数量。因此,可以预计,通过根据小多边形Ps来适当地减小计算范围(像素转换中的处理位长),并通过以并行方式来进一步进行这种处理,可提高处理性能。不过,如果根据小多边形Ps来设置像素转换的计算范围,则无法处理超过该计算范围的大多边形Pl。
根据本发明的一个实施例的图像处理装置,像素转换的计算范围限制在适当减小的程度,以及在该计算范围(小多边形Ps)内的多边形会直接进行像素转换。另一方面,如果多边形超过该计算范围(大多边形Pl),根据本发明的实施例的图像处理装置则对这些多边形进行分割(多边形分割处理D),直到所产生的多边形在该计算范围内。另外,图像处理装置还对小多边形Ps以及通过多边形分割处理D获得的小多边形Pd执行像素转换。这确保在最小时间耗费的前提下对每种大小的多边形进行有效的像素转换。由于计算范围限制在适当减小的程度,因此像素转换可通过简化的小型结构来实现,并且易于并行处理。
此外,在本实施例中,如稍后所说明的,通过连接最长边上的预定点与和该最长边相对的顶点的线段来分割多边形,这种分割被递归地执行,从而使多边形的三边近似相等,并且使多边形的大小适合于像素转换的计算范围。
换句话说,根据本实施例的图像处理装置通过将像素转换的计算范围限制在减小的程度而减少了像素转换的负荷,并增加了并行处理的重数。此外,根据本实施例的图像处理装置保证了具有最小时间耗费的高效像素转换,并通过将大多边形Pl分割成大小适合像素转换的计算范围的小多边形Pd以及执行并行化的像素转换PX,提高了像素填充速率。
示范结构
图2说明一种处理的具体实例,根据这种处理进行像素转换。可通过包括数字信号处理器(DSP)或图形处理器(GP)的硬件结构,或者通过采用软件(计算机可执行的应用程序)来进行像素转换。图2说明负责像素转换的DSP和GP的内部处理单元。对于这种情况,像素转换是基于软件来进行的,应用程序包含对应于图2所示各个部分的程序步骤。信息处理装置、如个人计算机的CPU根据应用程序来工作。
图2中,信息存储部分32存储图形信息,如多边形(顶点信息或顶点链接信息,如顶点的坐标值、RGB顶点颜色值、映射坐标值以及向量值)。其中的图形信息是以前捕获的,例如从诸如CD-ROM、DVD-ROM及半导体存储器之类的各种记录媒体中读取,或者通过基于电缆或无线电通信的通信或传输媒体下载。
几何计算部分31从信息存储部分32提取所存储的图形信息,然后再使所提取的图形信息经过所谓的仿射变换、对屏幕坐标的投影变换以及顶点的光源处理。投影变换之后的图形信息(多边形数据)被发送给着色部分33。
着色部分33负责用于在屏幕上显示多边形的计算处理,并将从几何计算部分31接收的多边形数据转换为像素。着色部分33可大致分为多边形设置部分41、像素计算部分42以及帧缓冲部分46。
多边形设置部分41负责以下处理:提取并缓存从几何计算部分31接收的多边形数据;将具有条形或扇形的多边形网格结构转换为独立的多边形;以及将结果发送给像素计算部分42。多边形设置部分41还负责通过面积挑选或反向挑选来放弃不必要的多边形。放弃不必要的多边形,以便提高后续像素计算部分42所执行的处理的效率。
像素计算部分42负责根据以上参照图1所述的计算范围对大多边形进行分割处理,以及负责像素转换的并行处理。像素计算部分42包括面积大小比较部分43、多边形分割部分44以及像素转换部分45。
像素计算部分42首先将从多边形设置部分41接收的多边形数据馈送给面积大小比较部分43。面积大小比较部分43判定所接收的多边形是否在计算范围内,然后再将所找出的在计算范围内的多边形的数据发送给像素转换部分45,并将超过该范围的多边形的数据发送给多边形分割部分44。稍后说明面积大小比较部分43的具体结构和操作。
多边形分割部分44通常将超过计算范围的多边形一分为二,从而重构两个多边形。然后,这样分割的两个多边形的数据被发送给面积大小比较部分43,在此将其大小再次进行评估。如果对分割的多边形的第二次判断发现它们仍超过计算范围,则多边形分割部分44再次将这些多边形一分为二。也就是说,像素计算部分42通过递归分割超过计算范围的多边形,将大多边形Pl转换为计算范围内的小多边形Pd。稍后说明多边形分割部分44的具体结构和操作。
然后,把分割之后或者从最初起就在计算范围内的多边形的数据从面积大小比较部分43发送给像素转换部分45。
像素转换部分45将多边形数据转换为光栅数据或像素数据(各个像素的颜色值),然后再将结果发送给帧缓冲部分46。这里的像素转换部分45通过内插多边形数据的顶点颜色值或者获取映射坐标值,产生各个像素的颜色值。像素转换部分45的x和y轴计算范围设置为相同的值,以及转换部分45通过使多个处理单元并行化而构成,其中,计算限制在减小的程度。换句话说,通过使x轴和y轴的计算范围之间没有差别以及将计算范围限制在减小的程度,简单地构成像素转换部分45。此外,像素转换部分45被配置成增加并行处理的重数,以便执行高效的处理。
帧缓冲部分46将各个像素的颜色值写入对应于电视监视装置等的显示器(屏幕)35的存储空间中。一旦显示控制部分34发出请求,就读出存储空间中这样按帧产生的屏幕数据。
显示控制部分34产生电视监视装置的水平同步信号和垂直同步信号,并且还与监视器上的显示定时同步地以换行方式从帧缓冲部分46中依次提取像素颜色值。这样提取的颜色值组成将在诸如电视监视装置之类的显示器35上进行显示的二维图像。
面积大小比较部分的详细操作及结构
下面将参照图3和4详细说明面积大小比较部分43的操作和结构。以下说明主要涉及与判定多边形是否在计算范围内有关的信息流,以及涉及根据判定结果改变(选择)数据发送目的地。
如图3所示,从多边形设置部分41接收的多边形数据被馈送给面积大小比较部分43的输入部分51。另一方面,从多边形分割部分44接收的多边形数据被馈送给输入部分52。
假定所馈送的多边形是具有顶点坐标值Va(Vax,Vay)、Vb(Vbx,Vby)以及Vc(Vcx,Vcy)的三角多边形P0,如图4所示。顶点坐标部分53从三角多边形P0的各个顶点坐标值中提取x坐标值Vax、Vbx以及Vcx。另一方面,顶点坐标部分54从三角多边形P0的各个顶点坐标值中提取y坐标值Vay、Vby以及Vcy。x坐标值Vax、Vbx、Vcx以及y坐标值Vay、Vby、Vcy与所馈送的多边形数据一起分别发送给相应的最大值/最小值选择部分55、56。
最大值/最小值选择部分55根据下列公式(1)和(2)从x坐标值Vax、Vbx、Vcx中确定最大x坐标值Vxmax和最小x坐标值Vxmin:
Vxmax=max(Vax,Vbx,Vcx) (1)
Vxmin=min(Vax,Vbx,Vcx) (2)
最大值/最小值选择部分56根据下列公式(3)和(4)从y坐标值Vay、Vby、Vcy中确定最大y坐标值Vymax和最小y坐标值Vymin:
Vymax=max(Vay,Vby,Vcy) (3)
Vymin=min(Vay,Vby,Vcy) (4)
在图4所示实例中,Vcx为最大x坐标值Vxmax,Vax为最小x坐标值Vxmin,Vay为最大y坐标值Vymax,以及Vbx为最小y坐标值Vymin。最大值/最小值选择部分55、56所确定的最大及最小坐标值对应于屏幕坐标上三角多边形P0的偏移坐标分量。
这些最大x坐标值Vxmax、最小x坐标值Vxmin、最大y坐标值Vymax以及最小y坐标值Vymin与多边形数据一起分别发送给差值计算部分57、58。
差值计算部分57根据下式(5)计算最大x坐标值Vxmax和最小x坐标值Vxmin之差。也就是说,差值计算部分57假设一个包含三角多边形P0的全部顶点的方形(图中虚线所表示的边界框BB),并找出x轴方向上的边长Wx。应当指出,边界框BB的顶边和底边与屏幕的x轴平行,其侧边与屏幕的y轴平行。
Wx=Vxmax-Vxmin (5)
差值计算部分58根据下式(6)计算最大y坐标值Vymax和最小y坐标值Vymin之差。也就是说,差值计算部分58找出y轴方向上的边界框BB的边长Wy。
Wy=Vymax-Vymin (6)
根据图3所示的结构,最大和最小坐标值由最大值/最小值选择部分55、56来确定,两者之差由差值计算部分57、58来计算,以及所馈送的多边形数据由偏置量和差值来表示,因此,用于后续像素转换的数据的位长将减至最小。这个优点减轻了后续像素转换部分45的过多的计算负荷,并简化了电路结构。
由差值计算部分57、58分别计算的边长Wx、Wy被发送给差值比较部分59。然后,通过差值计算部分57、58传递的多边形数据被发送给输出选择部分60。
差值比较部分59采用公式(7)将边长Wx、Wy与对应于像素转换部分45的计算范围的预定阈值范围进行比较,并且将比较结果发送给输出选择部分60。更具体地说,当边长Wx、Wy中任一个超过阈值范围时,差值比较部分59向输出选择部分60发送表示这种状况的信号,以及当两个边长Wx、Wy均在阈值范围内时,差值比较部分59向输出选择部分60发送表示这种状况的信号。
然后,输出选择部分60采用公式(7),根据由差值比较部分59获得的比较结果来进行输出选择:该多边形数据应当从输出部分61发送给多边形分割部分44,还是从输出部分62发送给像素转换部分45。当边长Wx、Wy中任一个超过阈值范围时,输出选择部分60将多边形数据发送给多边形分割部分44,以及当两个边长Wx、Wy均在阈值范围内时,输出选择部分60将多边形数据发送给像素转换部分45。
if((Wx>范围)‖(Wy>范围)
多边形分割部分( );
否则
像素转换部分( ); (7)
采用大小比较器、差值计算器以及切换器,面积大小比较部分43的电路结构可以极为简单,因此,该电路可以方便地构造为并行结构,而不会明显地增加成本或扩大电路结构。具有并行结构的面积大小比较部分43可以无冲突地处理从多边形设置部分41接收的多边形数据以及从多边形分割部分44接收的分割多边形数据,尤其是能够避免新馈送的多边形数据排队等待而未处理的情况。
多边形分割部分的详细操作和结构
下面参照图5至图8来说明图2所示的多边形分割部分44的操作及结构。
如图5所示,从面积大小比较部分43接收的多边形数据被输入到多边形分割部分44的输入部分71。然后,输入的多边形数据被发送给顶点坐标部分72至77、输出选择部分90以及多边形重构部分93。
顶点坐标部分72主要包括电阻器,在各个顶点坐标值Va(Vax,Vay)、Vb(Vbx,Vby)以及Vc(Vcx,Vcy)中提取顶点坐标值Va(Vax,Vay)的x坐标值Vax。顶点坐标部分73提取顶点坐标值Va(Vax,Vay)的y坐标值Vay。顶点坐标部分74提取顶点坐标值Vb(Vbx,Vby)的x坐标值Vbx。顶点坐标部分75提取顶点坐标值Vb(Vbx,Vby)的y坐标值Vby。顶点坐标部分76提取顶点坐标值Vc(Vcx,Vcy)的x坐标值Vcx。顶点坐标部分77提取顶点坐标值Vc(Vcx,Vcy)的y坐标值Vcy。由顶点坐标部分72所提取的x坐标值Vax被发送给最小值选择部分78、80。由顶点坐标部分73所提取的y坐标值Vay也被发送给最小值选择部分78、80。由顶点坐标部分74所提取的x坐标值被发送给最小值选择部分78、79。由顶点坐标部分75所提取的y坐标值Vby也被发送给最小值选择部分78、79。由顶点坐标部分76所提取的x坐标值Vcx被发送给最小值选择部分79、80。由顶点坐标部分77所提取的y坐标值Vcy也被发送给最小值选择部分79、80。
最小值选择部分78分别从来自顶点坐标部分72、74的x坐标值Vax和Vbx中选择较小的值,并且还从来自顶点坐标部分73、75的y坐标值Vay和Vby中选择较小的值。最小值选择部分79从来自顶点坐标部分74、76的x坐标值Vbx和Vcx中选择较小的值,并且还从来自顶点坐标部分75、77的y坐标值Vby和Vcy中选择较小的值。最小值选择部分80从来自顶点坐标部分72、76的x坐标值Vax和Vcx中选择较小的值,并且还从来自顶点坐标部分73、77的y坐标值Vay和Vcy中选择较小的值。在图6所示的示例情况中,最小值选择部分78选择x坐标值Vax和y坐标值Vby,最小值选择部分79选择x坐标值Vbx和y坐标值Vby,以及最小值选择部分80选择x坐标值Vax和y坐标值Vcy。
最小值选择部分78将从前面的顶点坐标部分72、73、74、75接收的各个x和y坐标值直接发送给输出选择部分87、90以及发送给宽度计算部分81,并且还向宽度计算部分81发送表示选取了哪个坐标值的信息。最小值选择部分79将从前面的顶点坐标部分74、75、76、77接收的各个x和y坐标值直接发送给输出选择部分87、90以及发送给宽度计算部分82,并且还向宽度计算部分82发送表示哪个坐标值被选取的信息。最小值选择部分80将从前面的顶点坐标部分72、73、76、77接收的各个x和y坐标值直接发送给输出选择部分87、90以及宽度计算部分83,并且还向宽度计算部分83发送表示哪个坐标值被选取的信息。
宽度计算部分81通过从x坐标值Vbx中减去由最小值选择部分78所选的x坐标值Vax来得出图6所示的宽度Xb,并且还通过从y坐标值Vay中减去由最小值选择部分78所选的y坐标值Vby来得出图6所示的宽度Yb。宽度计算部分82通过从x坐标值Vcx中减去由最小值选择部分79所选的x坐标值Vbx来得出图6所示的宽度Xc,并且还通过从y坐标值Vcy中减去由最小值选择部分79所选的y坐标值Vby来得出图6所示的宽度Yc。宽度计算部分83通过从x坐标值Vcx中减去由最小值选择部分80所选的x坐标值Vax来得出图6所示的宽度Xa,并且还通过从y坐标值Vay中减去由最小值选择部分80所选的y坐标值Vcy来得出图6所示的宽度Ya。也就是说,最小值选择部分78至80分别选择较小值,使得相关的宽度计算部分81至83不会得出负值。宽度计算部分81将宽度Xb和Yb发送给边长计算部分84。宽度计算部分82将宽度Xc和Yc发送给边长计算部分85。宽度计算部分83将宽度Xa和Ya发送给边长计算部分86。
边长计算部分84至86仅通过将宽度Xb和Yb相加、将宽度Xc和Yc相加、将宽度Xa和Ya相加来确定三角多边形P0的各边。更具体地说,边长计算部分84采用由宽度计算部分81得出的宽度Xb和Yb,按下式(8)得出图6所示三角多边形P0的边Eb。
Eb=Xb+Yb (8)
边长计算部分85采用由宽度计算部分82得出的宽度Xc和Yc,按下式(9)得出图6所示的边Ec。
Ec=Xc+Yc (9)
类似地,边长计算部分86采用由宽度计算部分83获得的宽度Xa和Ya,按下式(10)得出图6所示的边Ea。
Ea=Xa+Ya (10)
然后,分别由边长计算部分84至86所获得的边Eb、Ec、Ea被发送给最长边选择部分89。
最长边选择部分89从由边长计算部分84至86获得的边Eb、Ec、Ea中选择最长的边,并产生用于输出选择部分87、90中的输出选择的控制信号。在图6所示的示例情况中,最长边选择部分89选择边Eb。
输出选择部分87从最小值选择部分78至80所提供的各个x和y坐标值中选择并输出组成最长边Eb的顶点坐标值Va(Vax,Vay)和Vb(Vbx,Vby)。然后,从输出选择部分87输出的顶点坐标值Va(Vax,Vay)和Vb(Vbx,Vby)被发送给坐标计算部分88。
坐标计算部分88求出从输出选择部分87获得的Va(Vax,Vay)和Vb(Vbx,Vby)之间的中点坐标值Vd(Vdx,Vdy),然后再将中点坐标值Vd(Vdx,Vdy)发送给顶点信息计算部分91。坐标计算部分88通过将多个比特值所表示的坐标值右移一位来求出中点坐标值。
输出选择部分90根据从最小值选择部分78至80提供的各个x和y坐标值,以及根据从最长边选择部分89接收的控制信号,从来自输入部分71的多边形数据中选择并输出对应于顶点坐标值Va(Vax,Vay)和Vb(Vbx,Vby)的参数。这样,对应于顶点坐标值Va(Vax,Vay)和Vb(Vbx,Vby)的所选参数被发送给顶点信息计算部分91。
如图7所示,顶点信息计算部分91找出对应于从输出选择部分90获得的顶点坐标值Va(Vax,Vay)和Vb(Vbx,Vby)的中点参数,然后再将中点参数发送给透视校正部分92。
透视校正部分92采用z值来校正中点参数,并将这样校正后的参数发送给多边形重构部分93。
多边形重构部分93采用通过输入部分71提供的多边形数据以及透视校正部分92所提供的校正的参数来构造如图8所示的分割的多边形P1和P2。也就是说,通过用连接最长边Eb上坐标值为Vd(Vdx,Vdy)的中点与坐标值为Vc(Vcx,Vcy)的顶点的线段来分割图6所示多边形P0,生成图8所示的多边形P1和P2。多边形P1和P2通过输出部分94发回给面积大小比较部分43。
如果多边形P1和P2经面积大小比较部分43判定为超过了计算范围,则把多边形P1和P2再次输入多边形分割部分44的输入部分71。在这种情况下,多边形P1将具有顶点坐标值Va1(Vax1,Vay1)、Vb1(Vbx1,Vby1)、Vc1(Vcx1,Vcy1)以及边Ea1、Eb1、Ec1,然后,再对它们进行上述处理。另一方面,多边形P2将具有顶点坐标值Va2(Vax2,Vay2)、Vb2(Vbx2,Vby2)、Vc2(Vcx2,Vcy2)以及边Ea2、Eb2、Ec2,然后再对它们进行上述处理。
这样,像素计算部分42递归地执行多边形分割,从而最终获得在计算范围内的多边形。
如上所述,多边形分割部分44通过从三角多边形的三条边(图6中的边Eb、Ec和Ea)中选择最长边,并连接最长边上的中点与和其相对的顶点以便生成新边,由此进行多边形分割,从而生成两个多边形,并以新边作为公共边。像素计算部分42递归地对大小超过像素转换部分45的计算范围的多边形进行多边形分割。通过这种处理,超过计算范围的三角多边形的大小能够逐步减小,并且三条边的长度将会相等。因此,三角多边形的大小收敛到适合于像素转换部分45的计算范围和最有效处理的大小。换句话说,通过递归分割获得的多边形能够几乎高效地利用像素转换部分45的计算范围。在本实施例中,由于将整个三角多边形分割得尽量小(或者进行分割从而使三条边长变得相等),到超过计算范围的多边形的大小变到像素转换部分45的计算范围(处理位长)内为止所进行的多边形分割的递归次数(大多边形的分割次数)至多可表示为:(初始多边形顶点的位长一像素转换部分的处理位长)×2。多边形分割可由基于定点运算或浮点运算的计算器来进行,并且能够以最简单的方式来实现。虽然随着初始馈送的多边形的大小变大,分割的次数会增加,但大多边形的数量本来就少,因此不会影响整体处理时间。
如上所述,图2所示的结构限制了像素转换部分45的计算范围(处理位长),并且在像素转换部分45中直接处理计算范围内的多边形。另一方面,超过计算范围的多边形在多边形分割部分44中经过递归分割而变到计算范围内之后,由像素转换部分45进行处理。换句话说,图2所示的结构通过在像素计算部分42中递归分割,使三角多边形的大小收敛到像素转换的计算范围,并且在像素转换部分45中以并行方式来执行处理。因此,图2所示的结构能够对任何大小的多边形进行像素转换,并确保有效高速的像素转换,这能够提高像素填充速率。
在x和y轴方向的像素转换的计算范围之间没有差别的情况下,通过实际计算模拟证明,通过上述递归分割使其三条边长接近相等的三角多边形(进行分割以便与计算范围相比而言较小的多边形)的像素转换是有效处理所需要的。
具体应用
图1所示的像素转换通常适用于由图9所示电子游戏控制台的图形处理器单元(GPU)101所执行的图像处理。
图9所示的电子游戏控制台包括主CPU 100、图形处理器单元(GPU)101、I/O处理器(IOP)104、光盘再现部分112、主存储器105、掩膜-ROM 106以及声音处理器单元(SPU)108。主CPU 100负责根据诸如用于实现电子游戏的游戏应用程序之类的各种程序来控制信号处理及内部组件。GPU 101负责图像处理,其中包括上述像素转换。IOP104负责处理外部装置与游戏控制台内部装置之间的接口并确保向下兼容性。光盘再现部分112负责对存储了应用程序或多媒体数据的诸如DVD和CD之类的光盘进行再现。主存储器105作为缓冲器,临时存储从主CPU 100的工作区或光盘读出的数据。掩膜-ROM 106主要存储由主CPU 100和I/O处理器104所执行的操作系统程序。SPU 108负责声音信号处理。
电子游戏控制台还配备了CD/DVD数字信号处理器(DSP)110、驱动器111、机械控制器109以及卡式连接器(PC卡插槽)107。DSP 110通过将光盘再现信号进行纠错(CIRC处理)以及扩展解码等,对记录在CD或DVD中的数据进行再现(解码),其中,光盘再现信号由光盘再现部分112从CD或DVD中读取,并由RF放大器113进行放大。驱动器111和机械控制器109负责控制光盘再现部分112的主轴电动机的旋转、光学传感器的聚焦/跟踪控制以及光盘托盘的装入。卡式连接器107是通信卡、外部硬盘驱动器等的连接端口。
这些部分主要通过总线102、103相互连接。主CPU 100和GPU 101与专用总线连接。主CPU 100和IOP 104与SBUS连接。IOP 104与DSP 110、掩膜-ROM 106、声音处理器单元108以及卡式连接器107的连接是通过SSBUS来实现的。
主CPU 100通过执行存储在掩膜-ROM 106中的主CPU所用的操作系统程序,控制电子游戏控制台2的所有操作。主CPU 100还通过执行游戏应用程序来控制游戏操作,其中,游戏应用程序从诸如CD-ROM或DVD-ROM之类的光盘读出之后或者通过通信网下载之后被装入主存储器105中。
IOP 104控制响应游戏玩家的操作从控制器20接收的信号的输入/输出、向存储各种游戏设置的存储卡26输入数据或从中输出数据、向USB终端5、IEEE 1394终端6、PC卡插槽(未标出)之类输入或从中输出。
GPU 101起到以下作用:几何变换引擎,负责坐标变换;以及着色处理器,按照主CPU 100的指示执行包含像素转换在内的绘制,并将这样绘制的图像存储到帧缓冲器中(未标出)。在光盘上存储的应用程序采用所谓的三维(3D)图形、如电子游戏的典型情况下,GPU 101执行几何计算,从而计算多边形的坐标,以便组成三维对象,然后执行着色,从而实现透明转换,其中涉及用以生成可能通过用虚拟摄像机对三维对象进行摄影而获取的图像的各种计算,然后将最终获得的图像写入帧缓冲器。GPU 101输出对应于这样生成的图像的视频信号。
SPU 108具有ADPCM(自适应差分脉码调制)解码、音频信号再现以及信号调制的功能。ADPCM解码是指用于对通过自适应预测编码所编码的声音数据进行解码的功能。音频信号再现是指这样一种功能,即读出存储在声音缓冲器(未标出)中的声音波形数据,其中声音缓冲器内置于或连接到SPU 108,从而再现并输出音频信号、如有效声音。信号调制是指一种功能,用于通过对存储在声音缓冲器中的波形数据进行调制来生成各种声音波形。换句话说,SPU 108还作为所谓的采样声源,可以从存储在声音缓冲器中的波形数据中生成音频信号、如音乐声或有效声音。
当这样组成的电子游戏控制台通电时,从掩膜-ROM 106中读出主CPU和IOP所用的操作系统程序。主CPU 100和IOP 104分别执行相应的操作系统程序。这样,主CPU 100一般控制电子游戏控制台的各个部分。IOP 104控制对控制器20、存储卡26等的输入/输出。主CPU100执行操作系统程序,从而实现初始化、如操作确认,控制光盘再现部分112以便读出应用程序、如存储在光盘中的游戏应用程序,将应用程序装入主存储器105,以及执行该程序。执行游戏应用程序时,主CPU 100响应由游戏玩家发出的通过IOP 104从控制器20接收的指令,控制GPU 101和SPU 108,从而控制图像显示和有效声音及音乐声的生成。
上述实施例只是本发明的实例的一部分。因此应当理解,只要不背离本发明的范围和技术精神,本发明可以根据本文具体说明之外的设计等在任何修改方案中实现。例如,多边形分割不限于一分为二,而是还可允许分割为三个或三个以上多边形。如果一次将多边形分成两个以上,多边形分割会成功地减少递归次数。此外,当多边形具有四个以上顶点时,根据本实施例的图像处理装置可通过分割多边形来生成三角多边形,以及对三角多边形执行诸如阈值比较处理或递归分割处理之类的处理。
工业适用性
本发明可适用于采用电子游戏机或个人计算机以从三维图像中生成在二维屏幕、如电视监视装置上显示的二维图像的图像处理。
Claims (8)
1.一种图像处理方法,它包括以下步骤:
提取用于组成计算机图形中的对象的三角多边形的数据;
将所述多边形的大小与预定阈值进行比较;
检测大小超过所述阈值的每个多边形的最长边,并且采用连接所述最长边上的预定点与和所述最长边相对的顶点的线段来分割所述多边形;以及
把大小未超过所述阈值的每个多边形转换为像素。
2.如权利要求1所述的图像处理方法,其特征在于,所述分割步骤负责生成分别将所述三角多边形的各边作为各个斜边的三个直角三角形,从所述三个直角三角形中选择一个具有最大的两条直角边长度之和的直角三角形;以及检测以这种方式选取的直角三角形的斜边,作为所述多边形的所述最长边。
3.如权利要求1或2所述的图像处理方法,其特征在于,所述分割步骤负责确定所述三角多边形的所述最长边的中点,作为所述预定点。
4.如权利要求1至3中任一项所述的图像处理方法,其特征在于,所述像素转换步骤通过并行处理将所述多边形转换为像素。
5.一种图像处理装置,它包括:
提取部分,提取用以组成计算机图形中的对象的三角多边形的数据;
比较部分,将所述多边形的大小与预定阈值进行比较;
分割部分,检测大小超过所述阈值的每个多边形的最长边,并且采用连接所述最长边上的中点与和所述最长边相对的顶点的线段来分割所述多边形;以及
转换部分,将大小未超过所述阈值的每个多边形转换为像素。
6.一种计算机可读记录媒体,其中存储了要在计算机中执行的图像处理程序,该程序包括以下步骤:
提取用于组成计算机图形中的对象的三角多边形的数据;
将所述多边形的大小与预定阈值进行比较;
检测大小超过所述阈值的每个三角多边形的最长边,并且采用连接所述最长边上的预定点与和所述最长边相对的顶点的线段来分割每个多边形;以及
将大小未超过所述阈值的每个多边形转换为像素。
7.一种在计算机中执行的图像处理程序,它包括以下步骤:
提取用于组成计算机图形中的对象的三角多边形的数据;
将所述多边形的大小与预定阈值进行比较;
分割大小超过所述阈值的每个多边形;以及
将大小未超过所述阈值的每个多边形转换为像素。
8.一种在计算机中执行的图像处理程序,它包括以下步骤:
提取用于组成计算机图形中的对象的三角多边形的数据;
将所述多边形的大小与预定阈值进行比较;
检测大小超过所述阈值的每个三角多边形的最长边,并且采用连接所述最长边上的预定点与和所述最长边相对的顶点的线段来分割每个多边形;以及
将大小未超过所述阈值的每个多边形转换为像素。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP174030/2001 | 2001-06-08 | ||
JP2001174030 | 2001-06-08 | ||
JP174030/01 | 2001-06-08 | ||
JP133585/02 | 2002-05-09 | ||
JP133585/2002 | 2002-05-09 | ||
JP2002133585A JP3638568B2 (ja) | 2001-06-08 | 2002-05-09 | 画像処理プログラム、画像処理プログラムを記録した記録媒体、画像処理装置及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1463416A true CN1463416A (zh) | 2003-12-24 |
CN1258746C CN1258746C (zh) | 2006-06-07 |
Family
ID=26616604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028020103A Expired - Lifetime CN1258746C (zh) | 2001-06-08 | 2002-06-04 | 图像处理方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US6947041B2 (zh) |
EP (1) | EP1394748A4 (zh) |
JP (1) | JP3638568B2 (zh) |
KR (1) | KR100843027B1 (zh) |
CN (1) | CN1258746C (zh) |
AU (1) | AU2002304166B2 (zh) |
TW (1) | TW578080B (zh) |
WO (1) | WO2002101653A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6975318B2 (en) * | 2002-06-25 | 2005-12-13 | Intel Corporation | Polygon binning process for tile-based rendering |
JP4492567B2 (ja) * | 2006-03-17 | 2010-06-30 | ソニー株式会社 | 画像処理装置および画像処理方法、並びにプログラム |
JP4838079B2 (ja) * | 2006-09-07 | 2011-12-14 | 株式会社リコー | パーツ識別画像作成装置およびプログラムおよびコンピュータ読み取り可能な記憶媒体 |
JP5078712B2 (ja) * | 2008-04-01 | 2012-11-21 | 任天堂株式会社 | 画像処理プログラム、画像処理装置、画像処理システム及び画像処理方法 |
US8669989B2 (en) * | 2010-05-19 | 2014-03-11 | Pinebrook Imaging, Inc. | Parallel image processing system |
US9256709B2 (en) * | 2014-02-13 | 2016-02-09 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method for integrated circuit mask patterning |
CN116883228B (zh) * | 2023-09-08 | 2023-12-01 | 武汉凌久微电子有限公司 | 一种gpu像素填充率测量方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5020002A (en) * | 1988-12-20 | 1991-05-28 | Sun Microsystems, Inc. | Method and apparatus for decomposing a quadrilateral figure for display and manipulation by a computer system |
JPH0573259A (ja) | 1991-09-10 | 1993-03-26 | Hitachi Ltd | 画像シエーデイング方法及び画像処理装置 |
US5719598A (en) * | 1993-08-23 | 1998-02-17 | Loral Aerospace Corporation | Graphics processor for parallel processing a plurality of fields of view for multiple video displays |
GB9518695D0 (en) * | 1995-09-13 | 1995-11-15 | Philips Electronics Nv | Graphic image rendering |
JP3548648B2 (ja) * | 1996-02-06 | 2004-07-28 | 株式会社ソニー・コンピュータエンタテインメント | 描画装置及び描画方法 |
US5905500A (en) * | 1997-02-19 | 1999-05-18 | Seiko Epson Corporation | Method and apparatus for adaptive nonlinear projective rendering |
US5977983A (en) * | 1997-02-20 | 1999-11-02 | S3 Incorporated | Method and apparatus for adjusting graphics processing procedures based on a selectable speed/quality gauge |
JP3179392B2 (ja) * | 1997-11-17 | 2001-06-25 | 日本電気アイシーマイコンシステム株式会社 | 画像処理装置及び画像処理方法 |
JP2002503854A (ja) * | 1998-02-17 | 2002-02-05 | サン・マイクロシステムズ・インコーポレーテッド | ポリゴンのためのグラフィックス・システム・パフォーマンスの推定 |
US6356263B2 (en) * | 1999-01-27 | 2002-03-12 | Viewpoint Corporation | Adaptive subdivision of mesh models |
-
2002
- 2002-05-09 JP JP2002133585A patent/JP3638568B2/ja not_active Expired - Lifetime
- 2002-06-04 CN CNB028020103A patent/CN1258746C/zh not_active Expired - Lifetime
- 2002-06-04 WO PCT/JP2002/005487 patent/WO2002101653A1/ja active IP Right Grant
- 2002-06-04 KR KR1020037001827A patent/KR100843027B1/ko active IP Right Grant
- 2002-06-04 AU AU2002304166A patent/AU2002304166B2/en not_active Expired
- 2002-06-04 EP EP02730902A patent/EP1394748A4/en not_active Ceased
- 2002-06-06 TW TW091112213A patent/TW578080B/zh not_active IP Right Cessation
- 2002-06-07 US US10/165,282 patent/US6947041B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP3638568B2 (ja) | 2005-04-13 |
EP1394748A4 (en) | 2006-09-27 |
WO2002101653A1 (fr) | 2002-12-19 |
CN1258746C (zh) | 2006-06-07 |
US20020190983A1 (en) | 2002-12-19 |
US6947041B2 (en) | 2005-09-20 |
JP2003058903A (ja) | 2003-02-28 |
KR100843027B1 (ko) | 2008-07-01 |
EP1394748A1 (en) | 2004-03-03 |
AU2002304166B2 (en) | 2007-06-07 |
TW578080B (en) | 2004-03-01 |
KR20030022368A (ko) | 2003-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8705845B2 (en) | Entertainment device and method of interaction | |
EP2306399B1 (en) | Image processing method, apparatus and system | |
EP2422319B1 (en) | Entertainment device, system, and method | |
CN101281656B (zh) | 用于将纹理映射到三维对象模型的方法和装置 | |
US7338373B2 (en) | Method and apparatus for generating sounds in a video game | |
US20080215974A1 (en) | Interactive user controlled avatar animations | |
JP2010049690A (ja) | エンタテイメント装置、システム、及び方法 | |
JP2002236934A (ja) | グラフィックシステムにおいて改良されたフォグ効果を提供するための方法および装置 | |
EP2118840A1 (en) | Interactive user controlled avatar animations | |
JP2008225767A (ja) | 画像処理プログラムおよび画像処理装置 | |
WO2010128321A2 (en) | Entertainment device, system, and method | |
JP2008225985A (ja) | 画像認識システム | |
CN1256675C (zh) | 在音频存储器中预缓存数据的方法和装置 | |
JP2009095677A (ja) | デジタル・イメージ・キャプチャを用いて対話型エンタテインメントのためにアセットを生成する方法 | |
WO2008106197A1 (en) | Interactive user controlled avatar animations | |
CN1258746C (zh) | 图像处理方法 | |
US20230267664A1 (en) | Animation processing method and apparatus, electronic device and storage medium | |
US8585498B2 (en) | Image processing apparatus and storing medium that stores image processing program | |
JP2008198111A (ja) | 指示位置演算システム、指示体及びゲームシステム | |
KR20200012561A (ko) | 가상현실 게임 구현 시스템 및 방법 | |
JP2009205522A (ja) | プログラム、情報記憶媒体、情報変換システム | |
MXPA00008514A (es) | Metodo y aparato para proporcionar efectos de esfuminado profundo dentro de un sistema videografico de tercera dimension. | |
JP4861862B2 (ja) | プログラム、情報記憶媒体、及び、画像生成システム | |
JP2007512603A (ja) | 画像描画 | |
JP4202276B2 (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20060607 |