CN101116112B - 绘制装置及绘制方法 - Google Patents
绘制装置及绘制方法 Download PDFInfo
- Publication number
- CN101116112B CN101116112B CN2005800480027A CN200580048002A CN101116112B CN 101116112 B CN101116112 B CN 101116112B CN 2005800480027 A CN2005800480027 A CN 2005800480027A CN 200580048002 A CN200580048002 A CN 200580048002A CN 101116112 B CN101116112 B CN 101116112B
- Authority
- CN
- China
- Prior art keywords
- mentioned
- display message
- buffer
- graphical element
- coordinate
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
-
- 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
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
- Processing Or Creating Images (AREA)
Abstract
YSU(19)按照从小到大的顺序排列多边形#0~#7的最小Y坐标,从而排序对应的结构体实例#0~#7。RPU(9)按照顺序读出YSU(19)排序的结构体实例#0~#7,按照读出的结构体实例,执行对应的多边形的绘制。
Description
技术领域
本发明涉及不使用帧缓冲器(Frame Buffer)也可进行高品质的三维图像显示的绘制装置及其相关技术。
背景技术
历来,在显示三维图像时,一般在图像生成装置上实装可绘制1帧以上的图像数据的帧缓冲器和视频存储器(日本特开平6-348861号公报,日本特开平7-282270号公报)。
但是,想要在图像生成装置上实装帧缓冲器等,具有可存储至少1个整图像的容量的存储器是必不可少的,成本变高。为了显示高品质的三维图像,采用双缓冲器方式的话,需要具有可存储至少两个帧缓冲器容量的存储器,进一步提高了成本。
另一方面,显示二维图像时,不一定需要帧缓冲器,行缓冲器足够。但是,想使用行缓冲器显示三维图像的话,凭借历来的图像生成装置的绘制能力,可绘制的多边形的数量有限等,因此进行令观众满意的高品质的显示也很困难。
因此,本发明的目的在于提供一种虽然使用小存储容量的绘制用缓冲器但可进行高品质的三维图像显示的绘制装置及其关联技术。
此外,本发明的另1个目的在于提供一种虽然使用小存储容量的绘制用缓冲器但可进行半透明合成和进行更高品质的三维图像的显示的绘制装置及其关联技术。
进一步地,本发明的另1个目的还在于提供一种即使在进行隔行扫描显示时,虽然使用小存储容量的绘制缓冲器但可进行高品质的三维图像显 示的绘制装置及其关联技术。
发明内容
根据本发明的第1个观点,绘制装置是一种在分别由多个像素构成的平行的多个行在与该行垂直的方向排列构成的屏幕上,按照包含多角形的图形要素的每个图形要素的显示信息,进行显示由上述图形要素的组合组成的屏幕图像的绘制的绘制装置,其具备:按照升序或降序排列上述显示信息中包含的、表示与上述图形要素的上述行垂直的方向的位置的坐标,从而重排上述每个图形要素的上述显示信息的排序单元;按照顺序读出上述排序单元重排的上述显示信息,再按照读出的上述显示信息,执行对应的上述图像要素的绘制的绘制单元。
根据该构成,按升序或降序排列表示与图形要素的行垂直的方向的位置的坐标,从而重排每个图形要素的显示信息(排序)。因此,只要按照顺序读出排序后的显示信息,进行绘制处理,每当绘制时,就不需要从全部的显示信息中检索当时应绘制的显示信息的处理,可进行高速化处理。以上的结果不一定需要实装存储1帧以上的图像的大容量的缓冲器(帧缓冲器等),即使在实装容量较小的缓冲器(行缓冲器和绘制不满1行的像素的像素缓冲器等)的情况下,也可进行组合很多图形要素的屏幕图像的显示。特别是与二维图像显示的绘制处理相比,更适合于需要高处理能力的三维图像显示的绘制处理。
这里,升序的意思是按照从小到大的顺序排列,降序的意思是按照从大到小的顺序排列。
在上述绘制装置中,上述绘制单元包含:第1缓冲器(例如,相当于图1的行缓冲器LB1、LB2),其可存储构成上述屏幕的上述像素中的第1所定数量的像素信息,为了显示上述屏幕图像,输出存储的上述像素信息,在输出的上述像素信息被存储的位置,存储用于显示上述屏幕图像的新的像素信息;第2缓冲器(例如,相当于图1的循环缓冲器110),其可存储第2所定数量的上述图形要素的上述显示信息,基于上述显示信息的上述像素信息被存储在上述第1缓冲器后,为了将基于该显示信息其他的像素 信息存储在上述第1缓冲器中,在该显示信息可再利用时,按照再利用被传送的顺序,存储该显示信息,在上述第1缓冲器存储上述新的像素信息的期间开始时,按照存储的顺序输出上述显示信息;比较单元,其比较按照上述排序单元重排的顺序被读出的上述显示信息中的、用于生成应存储在上述第1缓冲器的期间开始时的上述新的像素信息的上述显示信息中包含的显示深度信息和从上述第2缓冲器被输出的上述显示信息中包含的显示深度信息,遵循预先设定的规则,选择其中1个上述显示信息,先输出;按照从上述比较单元输出的上述显示信息生成上述像素信息,再将上述生成的像素信息写入上述第1缓冲器的写入单元。
根据该构成,为了向第1缓冲器写入新的像素信息(新的像素信息的绘制),在显示信息可再利用的情况下,该显示信息被存储在第2缓冲器。因此,每次使用相同的显示信息进行新的像素的绘制时,不需要从存储排序后的全部的显示信息的存储器中,反复读出该相同显示信息的处理,实现了处理的进一步高速化。
此外,设置比较单元,来判定按照排序单元重排的顺序新读出的显示信息和存储在用于再利用的第2缓冲器的显示信息的绘制顺序(即,基于该些显示信息的像素的绘制顺序)。因此,判定结束后,只要将可再利用的显示信息传送给第2缓冲器,并按照传送的顺序存储,在第2缓冲器中,可再利用显示信息就会按照适当的绘制顺序被存储。这样,在第2缓冲器中,可再利用显示信息按照适当的绘制顺序被存储,但是该些与按照排序单元重排的顺序新被读出的显示信息之间的绘制顺序进一步被判定,因此,可总是按照适当的顺序进行绘制。
在上述绘制装置中,在显示多个上述图形要素的情况下,该多个图形要素的上述坐标相同时,上述排序单元对于该多个图形要素,按照上述显示信息中包含的显示深度信息表示的显示深度的升序或降序排列上述显示信息。
根据该构成,在显示多个上述图形要素的情况下,该多个图形要素的坐标相同时,在构成屏幕的各行中,显示信息按照显示深度的升序或降序 被重排。因此,在各行中,基于显示信息的图形要素按照显示深度从大到小或从小到大的顺序被绘制。按照显示深度的升序排列显示信息时,图形要素按照显示深度从小到大的顺序被绘制,因此,假设即使赶不上显示深度大的图形要素的绘制处理时,也可使显示后的视觉印象良好。另一方面,按照显示深度的降序排列显示信息时,图形要素按照显示深度从大到小的顺序被绘制,因此适当地进行半透明合成。原因是半透明的图形要素的绘制色依存于位于该图形要素的靠里的图形要素的绘制色,因此需要按照从里向外的顺序绘制图形要素。
在该绘制装置中,多个上述图形要素包含应在上述屏幕的起始行显示的像素时,上述排序单元对该多个图形要素,与上述坐标的大小没有关系,而是按照上述显示深度的升序或降序排列上述显示信息。
根据该构成,多个图形要素包含应在上述屏幕的起始行显示的像素时,与该些图形要素的坐标没有关系,也就是说看作该些图形要素的坐标相同,按照显示深度的升序或降序的顺序排列显示信息。因此,在起始行,基于显示信息的图形要素按照显示深度从大到小或从小到大的顺序被绘制。按照显示坐标顺序(图形要素的、表示与行垂直的方向的坐标顺序)排序显示信息,对于显示坐标相同的按照显示深度顺序排序时,在起始行的绘制中,不一定保证按照显示深度的升序或降序进行绘制,但是根据该构成,可从起始行开始按照显示深度的顺序进行绘制。按照显示深度的升序排列的效果及按照降序排列的效果与上述相同。
在上述绘制装置中,上述排序单元每完成所定数量的上述图形要素的上述显示信息的重排时,就将其通知给上述绘制单元,上述绘制单元接收来自上述排序单元的上述通知,顺次读出重排完成的上述显示信息。
根据该构成,每确定显示信息的排序时,当时,就发出确定的通知,因此绘制单元不用等到全部显示信息的排序的完成,便可逐次读入显示信息。
在该绘制装置中,上述所定数量的上述图形要素的上述显示信息是1个上述图形要素的上述显示信息。
根据该构成,每确定1个图形要素的排序时,发出确定的通知,因此绘制单元在排序确定的图形要素的显示信息的排序完成后,可立刻读入。
在上述绘制装置中,上述绘制单元在第1缓冲器及第2缓冲器的基础上,进一步还包含第3缓冲器(例如,相当于图1的预取缓冲器108),该第3缓冲器可存储第3所定数量的上述图形要素的上述显示信息,按照被读出的顺序存储按照上述排序单元重排的顺序被读出的上述显示信息,按照被存储的顺序输出用于生成应存储在上述第1缓冲器的期间开始时的上述新的像素信息的上述显示信息,上述比较单元比较从上述第3缓冲器输出的上述显示信息中包含的显示深度信息和按照再利用被发送的顺序存储的、从上述第2缓冲器输出的上述显示信息中包含的显示深度信息,遵循上述预先设定的规则,选择1个上述显示信息先输出。
根据该构成,设置第3缓冲器,该第3缓冲器是按照排序单元排序的顺序输入显示信息的输入时间和向比较单元输出显示信息的输出时间的缓冲机构。这样,减少了按照排序单元排序的顺序输入显示信息对绘制单元的等待时间。
在上述绘制装置中,上述预先设定的规则为选择上述比较结果中包含表示上述显示深度大的上述深度信息的上述显示信息。
根据该构成,图形要素按照显示深度从大到小的顺序被绘制。其结果,可适当进行半透明合成。
在上述绘制装置中,上述排序单元执行重排时的上述图形要素的上述坐标为上述图形要素的顶点坐标的最大坐标或最小坐标中的1个。
根据该构成,可用相同的条件对全部的图形要素进行排序,因此可按照正确的绘制顺序进行绘制。
在上述绘制装置中,上述第1缓冲器为存储构成至少1个上述行的多个上述像素信息的缓冲器。
根据该构成,比使用帧缓冲器时可降低成本。此外,比使用存储不满1行的像素的像素缓冲器时,可用简单的电路构成(用简单的控制)实现绘制。
在上述绘制装置中,上述排序单元通过堆排序执行上述显示信息的重排。
根据该构成,显示信息的排序1个1个地被确定,每次确定排序时,可容易地实现通知该确定的机构。此外,可减少全部显示信息的排序所需要的时间的差别。
在上述绘制装置中,上述排序单元独立执行显示作为上述图形要素的多边形的上述显示信息和显示作为上述图形要素的精灵(sprite)的上述显示信息的上述重排。
根据该构成,即使多边形的显示信息和精灵的显示信息的形式及大小不同时,也可容易地进行排序,提高存储显示信息地存储器区域地使用效率。
在该绘制装置中,上述绘制单元进一步包含以上述排序单元的重排的规则为基准归并排序上述排序单元重排的上述多边形的上述显示信息和上述排序单元重排的上述精灵的上述显示信息的归并排序单元。
根据该构成,即使多边形及精灵被独立排序时,因在绘制处理前多边形的显示信息群和精灵的显示信息群被归并排序,所以可进行适合的绘制处理。
根据本发明的第2个观点,绘制装置是一种在分别由多个像素构成的平行的多个行在与该行垂直的方向排列构成的屏幕上,按照包含多角形的图形要素的每个图形要素的显示信息,进行显示由上述图形要素的组合组成的屏幕图像的绘制的绘制装置,其具备:为了显示偶数场,遵循第1规则重排每个上述图形要素的显示信息,且为了显示奇数场,遵循第2规则重排每个上述图形要素的显示信息的排序单元;显示上述奇数场时,为了该显示,按照顺序读出上述排序手段重排的上述显示信息,按照读出的上述显示信息,执行对应的上述图形要素的绘制,且,显示上述偶数场时,为了该显示,按照顺序读出上述排序手段重排的上述显示信息,根据读出的上述显示信息,执行对应的上述图形要素的绘制的绘制单元;上述第1规则为,按照升序或降序排列上述显示信息中包含的、表示与上述图形要 素的上述行垂直的方向的位置的坐标,从而重排每个上述图形要素的上述显示信息时,对于上述坐标表示扫描的奇数行或其前1行的偶数行的上述图形要素,当作该图形要素的上述坐标相同,按照上述显示信息中包含的显示深度信息表示的显示深度的升序或降序排列上述显示信息;上述第2规则为,按照升序或降序排列上述显示信息中包含的、上述图形要素的上述坐标,重排每个上述图形要素的上述显示信息时,对于上述坐标表示扫描的偶数行或其前1行的奇数行的上述图形要素,当作上述坐标相同,按照上述显示信息中包含的显示深度信息表示的显示深度的升序或降序排列上述显示信息。
根据该构成,在起到与第1观点的发明相同的作用效果的基础上,还能起到下述作用效果。通过隔行扫描显示屏幕图像时,显示坐标(图形要素的、表示与行垂直方向位置的坐标)表示跳越扫描的被跳越的行的显示信息和显示表示绘制对象的行的显示信息,在显示对象行的绘制处理中都被读出。因此,视该些显示信息表示的显示坐标为相同的值,通过按照显示深度的顺序进行排序,即使隔行扫描的情况也能保证按照显示深度的顺序进行绘制处理。按照深度的升序排列的效果及按照降序排列的效果与上述相同。
以上的结果,即使在进行隔行扫描的显示时,虽然使用小存储量的绘制用的缓冲器(第1缓冲器),仍然可实现高品质的三维图像显示。
在上述绘制装置中,上述绘制单元包含:第1缓冲器,其可存储构成上述屏幕的上述像素中的第1所定数量的像素信息,为了显示上述屏幕图像,输出存储的上述像素信息,在输出的上述像素信息被存储的位置,存储显示上述屏幕图像的新的像素信息;第2缓冲器,其可存储第2所定数量的上述图形要素的上述显示信息,在基于上述显示信息的上述像素信息被存储在上述第1缓冲器后,为了将基于该显示信息的其他的像素信息存储在上述第1缓冲器中,该显示信息可再利用时,按照再利用被传送的顺序,存储该显示信息,在上述第1缓冲器存储上述新的像素信息的期间开始时,按照存储的顺序输出上述显示信息;比较单元,其在显示上述奇数场时,为了该显示,比较按照上述排序单元重排的顺序被读出的上述显示 信息中的、用于生成应存储在上述第1缓冲器的期间开始时的上述新的像素信息的上述显示信息中包含的显示深度信息,和从上述第2缓冲器被输出的上述显示信息中包含的显示深度信息,遵循预先设定的规则,选择其中1个上述显示信息,先输出,在显示上述偶数场时,为了该显示,比较按照上述排序单元重排的顺序被读出的上述显示信息中的、用于生成应存储在上述第1缓冲器的期间开始时的上述新的像素信息的上述显示信息中包含的显示深度信息,和从上述第2缓冲器被输出的上述显示信息中包含的显示深度信息,遵循预先设定的规则,选择其中1个上述显示信息,先输出;写入单元,其按照从上述比较单元输出的上述显示信息生成上述像素信息,再将上述生成的像素信息作为上述新的像素信息写入上述第1缓冲器。
根据该构成,具有与第1观点的发明附加的第2缓冲器及比较单元相同的第2缓冲器及比较单元。因此,能起到与其相同的作用效果。
在上述绘制装置中,多个上述图形要素包含应在上述屏幕的起始行显示的像素时,上述排序单元不适用上述第1规则及上述第2规则,对该多个图形要素,按照上述显示深度的升序或降序排列上述显示信息。
根据该构成,具有与第1观点的发明附加的多个图形要素包含应在屏幕的起始显示的像素时的重排规则相同的规则。因此,能起到与其相同的作用效果。
在上述绘制装置中,上述排序单元每次完成所定数量(最好1个)的上述图形要素的上述显示信息的重排后,就将其通知给上述绘制单元,且,在显示该奇数场之前的垂直消隐期间开始后开始执行显示上述奇数场的上述重排,在显示该偶数场之前的垂直消隐期间开始后开始执行显示上述偶数场的上述重排。
通过每次排序确定的通知,绘制单元不用等排序完成就可进行绘制处理,而进一步地根据该构成,垂直消隐期间开始后即开始执行排序,因此为排序处理前的演算处理创造了富余,确保了充分的时间。
本发明新颖性的特征记载在权利要求中。但是发明本身及其他的特征 和效果参照附图并阅读具体的实施例的详细说明就能更容易理解。
附图说明
图1(a)是说明本发明的实施方式中的YSU19执行的排序规则1的、在屏幕SCR上显示的多边形#0~#7的示例图。图1(b)是遵循排序规则1排序的示例图。
图2(a)是说明YSU19执行的排序规则2的、在屏幕SCR上显示的多边形#0~#7的示例图。图2(b)是遵循排序规则2排序的示例图。
图3(a)是说明YSU19执行的排序规则3的、在屏幕SCR上显示的多边形#0~#7的示例图。图3(b)是遵循排序规则3排序的示例图。
图4是本发明的实施方式中的RPU19的前段部分的说明图。
图5(a)是说明RPU9的预取缓冲器108、循环缓冲器110及深度比较器112的处理的,在屏幕SCR上显示多边形的示例图。图5(b)是作为RPU9的绘制处理的前处理的YSU19的排序结果的示例图。
图6(a)是表示图5(a)的行Lc的前1行的显示的绘制结束后,预取缓冲器108及循环缓冲器110的存储状态的附图。图6(b)是表示在行Lc上绘制多边形#1、# 2及#4的对应像素时的多边形结构体实例的流程的附图。图6(c)是表示在行Lc上绘制多边形#1、#2及#4的对应像素时的多边形结构体实例的流程的附图。图6(d)表示在行Lc上绘制多边形#1、#2及#4的对应像素时的多边形结构体实例的流程的附图。图6(e)是行Lc的显示的绘制结束后,预取缓冲器108及循环缓冲器110的存储状态的附图。
图7(a)是表示图5(b)的多边形结构体实例#0、#3、#1及#2存储在预取缓冲器108中的状态的附图。图7(b)是表示在行La上绘制图5(a)的多边形#0及#3的对应像素时的多边形结构体实例的流程的附图。图7(c)是表示在行La上绘制图5(a)的多边形#0及#3的对应像素时的多边形结构体实例的流程的附图。图7(d)是表示至多边形#0及#3的显示最终行Lb的多边形结构体实例的流程的附图。图7(e) 是表示在多边形#0及#3的显示最终行Lb的多边形结构体实例的流程的附图。
图8是进行隔行扫描显示时的YSU19的排序规则4的说明图。
图9(a)是按照模式1的时间进行隔行扫描显示时的排序处理的说明图。图9(b)是按照模式2的时间进行隔行扫描显示时的排序处理的说明图。
图10是表示本发明的实施方式的多媒体处理器1的内部构成的附图。
图11是表示图10的多媒体处理器1的图形处理的流程的概要的流程图。
图12是表示图10的RPU9的内部构成的框图。
图13是表示纹理映射模式下的多边形结构体的构成的附图。
图14是表示纹理属性结构体的构成的附图。
图15是表示高洛德着色模式下的多边形结构体的构成的附图。
图16(a)是表示剪辑抑能时的精灵结构体的构成的附图。
图16(b)是表示剪辑致能时的精灵结构体的构成的附图。
图17是切割器118对高洛德着色模式下的多边形进行处理的说明图。
图18是切割器118对纹理映射模式下的多边形进行处理的说明图。
图19是切割器118对精灵进行处理的说明图。
图20是像素抖动器122的抖动的说明图。
图21是双线性过滤器130的双线性过滤的说明图。
图22是表示图10的YSU19对序列A的Y排序完成后的堆结构的附图。
图23是图22的堆结构存储在主RAM25的存储方法的说明图。
图24是表示图10的YSU19的多边形结构体序列的Y排序处理的全部流程的1个例子的流程图。
图25是表示图24的步骤S21的堆结构处理的流程的1个例子的流程图。
图26是表示下推处理的流程的1个例子的流程图。
图27是表示位次比较处理的流程的1个例子的流程图。
具体实施方式
发明的最佳实施方式
以下,参照附图说明本发明的实施方式。在图中,相同或相当的部分赋予相同的参照符号援引说明。数学公式中“·”表示乘法。
首先说明用于本发明实施方式的三维图像显示的绘制处理的原理。在本实施方式中,作为绘制处理的预处理,由后述的Y排序单元(以下称“YSU”)19执行排序(有时也称“Y排序”)处理。排序的对象是结构体序列的各要素。结构体序列是表示被投影到二维空间的三维立体的各面的形状的多角形状的图形要素,即多边形,的结构体序列(以下称“多边形结构体序列”),和与屏幕平行的矩形的图形要素,即精灵(Sprite),的结构体序列(以下称“精灵结构体序列”),其被准备在后述的主RAM(随机存取存储器)25中。多边形结构体序列的要素是“多边形结构体实例”,精灵结构体序列的要素是“精灵结构体实例”。但是,没有必要区别两者进行说明时,只称为“结构体实例”。
存储在多边形结构体序列中的各多边形结构体实例为每个多边形的显示信息(包含屏幕中的顶点坐标,与纹理映射(texture mapping)模式下的纹理图样(texture pattern)相关的信息,高洛德着色(Gouraud Shading)模式下的色彩数据(RGB的色彩分量)),1个多边形对应1个多边形结构体实例。存储在精灵结构体序列中的各精灵结构体实例为每个精灵的显示信息(包含屏幕中的坐标及与纹理图样相关的信息),1个精灵对应1个精灵结构体实例。关于这些,将在后面详述。
以下,说明YSU19的排序规则1、2及3,但是之前说明一下坐标系。将用于向显示装置(图中未表示)进行实际显示的二维坐标系称为屏幕坐标系。在本实施方式中,屏幕坐标系由水平方向2048像素×垂直方向1024像素的二维像素序列构成。坐标原点位于左上角,水平向右方向相当于X轴的正方向,垂直向下方向相当于Y轴的正方向。但是,实际显示的区域不是屏幕坐标系的全部空间,只是一部分空间。将该显示区域称为屏幕。
图1(a)是为了说明YSU19执行的排序规则1的、在屏幕SCR上显示的多边形#0~#7的示例图。图1(b)是遵循排序规则1排序的示例图。如图1(b)所示,多边形结构体序列PS中存储对应图1(a)的多边形#0~#7的多边形结构体实例#0~#7。另外,对于对应的多边形及多边形结构体实例赋予同一参照标记。
YSU19按照多边形#0~#7的Y坐标从小到大的顺序,重排各多边形结构体实例#0~#7。这时,多边形的3个顶点的Y坐标中,将最小的Y坐标(以下称为“最小Y坐标”)作为该重排中使用的多边形的Y坐标。
该排序的结果,如图1(b)的右侧所示,按照最小Y坐标从小到大的顺序,各多边形结构体实例#0~#7被重排。
将如上,按照最小Y坐标从小到大的顺序,重排各多边形结构体实例称为排序规则1。
但是,可能存在最小Y坐标相同的多个多边形。这时,遵循排序规则2。
图2(a)是为了说明YSU19执行的排序规则2的、在屏幕SCR上显示的多边形#0~#7的示例图。图2(b)是遵循排序规则2排序的示例图。如图2(a)所示,在屏幕SCR中,多边形#0、#1及#7的最小Y坐标相同,都为“Ys”。这时,YSU19按照各多边形结构体实例#0、#1及#7中包含的深度值从大到小的顺序,重排各多边形结构体实例#0、#1及#7。
该排序的结果,如图2(b)的右侧所示,多边形结构体实例#0、#1及#7按照深度值从大到小的顺序被重排。
深度值(有时也称为“显示深度信息”)是表示绘制对象的像素重合时先绘制哪个像素的信息,其值越大越先(靠里)绘制,其值越小越后(靠 前)绘制。也就是说,深度值越大表示越靠屏幕SCR的里面显示,深度值越小表示越靠前显示。
如上,对于最小Y坐标相同的多个多边形,按照深度值从大到小的顺序排列各多边形结构体实例为排序规则2。
但是,对于具有在屏幕SCR的起始行显示的像素的多个多边形,即使最小Y坐标不同,YSU19也视为相同,不按照排序规则1而是按照排序规则2,进行各多边形结构体实例的重排。也就是说,在存在多个具有在屏幕SCR的起始行中显示的像素的多边形的情况下,视为最小Y坐标相同(也就是说,与最小Y坐标的值没有关系),按照深度值从大到小的顺序重排。
图3(a)是为了说明YSU19执行的排序规则3的、在屏幕SCR上显示的多边形#0~#7的示例图。图3(b)是遵循排序规则3排序的示例图。如图3(a)所示,具有在屏幕SCR的起始行显示的像素的多边形#2、#5及#7的最小Y坐标不同。这时,YSU19视为多边形#2、#5及#7的最小Y坐标相同,按照各多边形结构体#2、#5及#7中包含的深度值从大到小的顺序,重排各多边形结构体实例#2、#5及#7。
该排序结果,如图3(b)的右侧所示,多边形结构体实例#2、#5及#7按照深度值从大到小的顺序被重排。
如上,对于具有在起始行显示的像素的多个多边形,即使最小Y坐标不同,也不按照排序规则1,而是视最小Y坐标相同,遵循排序规则2,按照深度值从大到小的顺序,重排各多边形结构体实例,这就是排序规则3。
上述排序规则1~3也适用于重排精灵结构体序列的各精灵结构体实例。这里,精灵的最小Y坐标为精灵的4个顶点的Y坐标中最小的Y坐标。
后面将详述,在本实施方式中,多边形结构体的大小为128比特,精灵结构体的大小为64比特。这样,因多边形和精灵的结构体的大小不同,所以结构体实例的重排中,多边形结构体序列和精灵结构体序列的重排分 别进行。
这里,说明按照排序规则1进行排序的效果。为了进行比较,假设每进行各行的绘制时,从全部多边形结构体实例及全部精灵结构体实例中检索在该行应该被绘制的多边形结构体实例及精灵结构体实例,进行绘制处理。在该比较例中,每进行各行的绘制时,需要对全部多边形结构体实例及全部精灵结构体实例的检索处理,不能进行高速处理,有时会产生很多多边形及精灵不能显示的情况,不能进行充分的三维图像的显示。
这点,如本实施方式,通过按照最小Y坐标从大到小的顺序预先排序各多边形结构体实例及各精灵结构体实例,只要按照顺序读出排序后的各多边形结构体实例及各精灵结构体实例,进行绘制处理就可。这时,最小Y坐标比绘制对象位置的Y坐标大的结构体实例按照排序完的结构体序列被读出时,通过停止该行的绘制处理,可完全不进行不需要的结构体的检索处理。其结果,不需要如比较例的检索处理,可实现处理的高速化,大量的多边形及精灵的显示成为可能,充分的三维图像显示也成为可能。
但是,在本实施方式中,以水平行为单位进行对存储像素的缓冲器的绘制处理,因此,需要按照顺序每个水平行地读出具有在对象水平行上应该绘制的像素的多边形及精灵的结构体实例。
因此,在本实施方式中,如后述,具备通过再利用跨多个行的多边形及精灵的结构体实例,避免每次从存储器取得该些结构体实例的机构,判定新从存储器读出的结构体实例和存储在用于再利用的缓冲器中的结构体实例的绘制顺序的机构,及在用于再利用的缓冲器中不存储全部像素绘制结束的结构体实例并进行破坏的机构。
如上述,在显示起始行的多个图形要素(多边形、精灵)的绘制和在相同行最小Y坐标相同的多个图形要素的绘制时,追加排序规则2及3是为了使在各行总是从深度值大的开始绘制。在本实施方式中,具备比较从排序完的结构体序列中读出的结构体实例的深度值和从用于再利用的缓冲器中读出的结构体实例的深度值,先绘制具有更大的深度值的结构体的机构,因此通过排序规则2及3的追加,对全部的结构体实例,可保证 总是从深度值大的开始进行绘制。
这样,在各行,从深度值大、应更靠里显示的图形要素开始先进行绘制处理是为了实现半透明合成。应靠里绘制的不透明的图形要素在应靠前绘制的半透明的图形要素之后绘制时,不能正确处理应可透视的两者重合部分的绘制。因此,在各行,从深度值大、应更靠里显示的图形要素开始先进行绘制处理。
此外,YSU19排序后的各结构体实例,被从主RAM25读入到后述的渲染处理单元(以下称“RPU”(Rendering Processing Unit))9,用于绘制处理。说明该绘制处理的前段处理。这里,在本实施方式中,将将数据写入后述的行缓冲器LB1或LB2中称为绘制。各行缓冲器LB1及LB2存储与屏幕的1行对应的像素的数据。
图4是本发明实施方式的RPU19的前段部分的说明图。如图4所示RPU19在其前段部分包含预取缓冲器108(Prefetch Buffer),循环缓冲器110(Recycle Buffer)及深度比较器(Depth Comparator)112。
预取缓冲器108是从主RAM25顺次读入排序后的结构体实例,再按照读入顺序输出结构体实例的FIFO(先入先出)结构的缓冲器。也就是说,在预取缓冲器108中按照YSU19重排的顺序存储结构实例。并且,被存储的结构实例在对应的多边形或精灵的显示的绘制周期,按照被存储的顺序输出。预取缓冲器108作为主RAM25的输入时间和深度比较器112的输出时间的缓冲机构被装备。这是因为主RAM25与RPU19以外的功能单元共有,因此,可获得来自主RAM25的数据的取得的等待时间。
循环缓冲器110是存储在下1个绘制周期也被使用(也就是说,可再利用)的结构体实例的FIFO结构的缓冲器。因此,存储在循环缓冲器110的结构体实例用于下1个绘制周期。1绘制周期是进行1行显示的绘制期间。也就是说,1绘制周期是为了进行对应行缓冲器LB1或LB2的行的显示,进行全部数据的绘制所需要的期间。
深度比较器112比较从预取缓冲器108取出的结构体实例中包含的深度值和从循环缓冲器110中取出的结构体实例中包含的深度值,选择具有 更大深度值(也就是说,应更靠里显示)的结构体实例,向后段输出。
这时,被选择的结构体实例在下1个绘制周期也被使用(也就是说,在下一行的绘制中也被使用)时,向后段输出的同时,也被输出写入到循环缓冲器110。但是,被选择的结构体实例在下1个绘制周期不被使用(也就是说,在下一行的绘制中不被使用)时,只向后段输出,不写入循环缓冲器110。
因此,循环缓冲器110中按照深度值从大到小的顺序只存储在现行绘制中被使用的结构体实例中的、在下一行的绘制中也被使用的结构体实例。以下,列举具体的例子进行说明。
图5(a)是为了说明RPU9的预取缓冲器108、循环缓冲器110及深度比较器112的处理的、在屏幕SCR上显示的多边形的示例图。图5(b)是作为RPU9的绘制处理的预处理的YSU19的排序结果的示例图。
图6(a)是表示图5(a)的行Lc的前一行显示的绘制结束后,预取缓冲器108及循环缓冲器110的存储状态的图,图6(b)~图6(d)是绘制多边行#1,#2及#4中包含的、与Lc对应的像素时的多边形结构体实例的流程图,图6(e)是表示对行Lc显示的绘制结束后,预取缓冲器108及循环缓冲器110的存储状态的图。
如图6(a)所示,在图5(a)的行Lc的前一行的显示的绘制结束后,预取缓冲器108中按照图5(b)所示的排序后的顺序,存储多边形结构体实例#4、#7、#6及#5,循环缓冲器110中按照深度值从大到小的顺序存储多边形结构体实例#1及#2。另外,多边形结构体实例#0及#3未在行Lc上显示,因此循环缓冲器110中未存储。
并且,如图6(b)所示,深度比较器112比较预取缓冲器108的起始的多边形结构体实例#4和循环缓冲器110的起始的多边形结构体实例#1中包含的深度值,选择深度值大的多边形结构体实例#1,向后段输出的同时,多边形结构体实例#1被送到循环缓冲器110。原因是多边形#1在下一行也显示,在下一次绘制周期中也被使用。这时,多边形结构体实例#4未被深度比较器112选择,因此,预取缓冲器108的读取指针不进 行下一步,仍指向多边形结构体实例#4。
接着,如图6(c)所示,深度比较器112比较预取缓冲器108的起始的多边形结构体实例#4和循环缓冲器110的起始的多边形结构体实例#2中包含的深度值,选择深度值大的多边形结构体实例#4,向后段输出的同时,多边形结构体实例#4被送到循环缓冲器110。原因是多边形#4在下一行也显示,因此在下一次绘制周期中也被使用。这时,多边形结构体实例#2未被深度比较器112选择,因此,循环缓冲器110的读取指针不进行下一步,仍指向多边形结构体实例#2。
并且,如图6(d)所示,深度比较器112,读入循环缓冲器110的起始的多边形结构体实例#2,向后段输出的同时,多边形结构体实例#2被送到循环缓冲器110中。因为多边形#2在下一行也显示,因此在下一次绘制周期中也被使用。
以上的结果,在行Lc显示的绘制结束后,循环缓冲器110按照从大到小的顺序存储用于下一行的绘制的多边形结构体实例#1,#4及#2。另外,在行Lc不显示多边形#7,因此,在图6(e)中,从预取缓冲器108中不读出多边形结构体实例#7。
图7(a)是表示图5(b)的多边形结构体实例#0,#3,#1及#2存储在预取缓冲器108中的状态的图,图7(b)及图7(c)是表示绘制图5(a)的多边形#0及#3中包含的、与La对应的像素时的多边形结构体实例的流程的附图,图7(d)是表示绘制至多边形#0及#3的显示最终行Lb的多边形结构体实例的流程的附图,图7(e)是绘制表示多边形#0及#3的显示最终行Lb的多边形结构体实例的流程的附图。
如图7(a)所示,在图5(a)的起始行La的显示的绘制前,在预取缓冲器108中,图5(b)所示的排序后的多边形结构体实例,按照其排列顺序被存储。
并且,如图7(b)所示,预取缓冲器108的起始的多边形结构体实例#0被读入到深度比较器112,深度比较器112向后段输出该多边形结构体实例#0的同时,多边形结构体实例#0被送到并存储在循环缓冲器110 中。原因是多边形#0在下一行也显示,因此在下一次绘制周期中也被使用。另外,在预取缓冲器108中写入从主RAM25读出的多边形结构体实例#4。
接着,如图7(c)所示,预取缓冲器108的起始的多边形结构体实例#3被读入到深度比较器112,向后段输出的同时,多边形结构体实例#3被送到并存储在循环缓冲器110中。原因是多边形#3在下一行也显示,因此在下一次绘制周期中也被使用。另外,在预取缓冲器108中写入从主RAM25读出的多边形结构体实例#7。
起始行La的显示的绘制结束后,进入到下一行的显示的绘制,如图7(d)所示,深度比较器112从循环缓冲器110读出多边形结构体实例#0向后段输出的同时,多边形结构体实例#0被送到并存储在循环缓冲器110中。原因是多边形#0在下一行也显示,因此在下一次绘制周期中也被使用。接着,深度比较器112从循环缓冲器110读出多边形结构体实例#3向后段输出的同时,多边形结构体实例#3被送到并存储在循环缓冲器110中。原因是多边形#3在下一行也显示,因此在下一次绘制周期中也被使用。这样的处理一直反复,直到多边形#0及#3的绘制的结束。另外,多边形#1还未显示,因此从预取缓冲器108中不读出。
并且,如图7(e)所示,在显示行Lb的多边形#0及#3的绘制处理中,深度比较器112从循环缓冲器110中读出多边形结构体实例#0,向后端输出,但是多边形结构体实例#0不被送到循环缓冲器110中。原因是多边形#0在下一行不再需要显示。接下来,深度比较器112从循环缓冲器110中读出多边形结构体实例#3,向后段输出,但是多边形结构体实例#3不被送到循环缓冲器110中。原因是多边形3在下一行也不再需要显示。
在上述说明中,列举了在屏幕SCR上只显示多边形时的例子,因此,被读入到预取缓冲器108的结构体实例只是多边形结构体实例。但是因为如后述,按照排序规则1~3归并排序排序后的多边形结构体实例和排序后的精灵结构体实例,所以归并排序后的结构体实例被存储在预取缓冲器 108中。因此,显示多边形和精灵两者时,按照排序规则1~3的顺序,各结构体实例被存储在预取缓存器108中,进行如上述处理。
以上,设置深度比较器112及循环缓冲器110,按照深度值从大到小的顺序存储在下1个绘制周期使用的结构体实例。这样,不仅进行YSU19的排序规则1的排序,在各行总是能从深度值大的图形要素(多边形,精灵)开始进行绘制处理。
上述排序规则1~3不仅适用于进行非隔行扫描显示的情况,也同样适用于进行隔行扫描显示的情况。但是,隔行扫描的情况下,不仅限于排序规则1~3,最好再加上下述的排序规则4。
即使在隔行扫描的情况下,也适用上述排序规则1~3。但是,在显示奇数场的排序中,视为奇数行中显示的多边形的最小Y坐标及/或该奇数行的前1行的偶数行中显示的多边形的最小Y坐标相同,按照排序规则2进行排序。但是,除了起始的奇数行。原因是不存在该奇数行的前1行。另一方面,在显示偶数场的排序中,视为偶数行中显示的多边形的最小Y坐标及/或该偶数行的前1行的奇数行中显示的多边形的最小Y坐标相同,按照排序规则2进行排序。将这样的排序称为排序规则4。
图8是进行隔行扫描显示时的YSU19的排序规则4的说明图。如图8所示,假设在屏幕上显示多边形#0~#3的情况,首先考虑显示奇数场的排序处理。图中,注意从上数第2个奇数行。
这时,根据排序规则4,视为在第2个奇数行初次显示的多边形#2的最小Y坐标与在其前1行的偶数行显示的多边形#1的最小Y坐标相同,按照深度值从大到小的顺序,排列为先多边形结构体实例#2,接着为多边形结构体实例#1。
在图8的例子中,按照排序规则1~4排序的结果,奇数场的显示的多边形结构体实例按照#0,#2,#1及#3的顺序被重排。顺便说一下,只按照排序规则1~3,多边形结构体实例按照#0,#1,#2及#3的顺序被重排。
接着,考虑显示偶数场的排序处理,注意图中最上边的偶数行。这时, 根据排序规则4,视为在最上边的偶数行初次显示的多边形#1的最小Y坐标与在其前1行的奇数行初次显示的多边形#0的最小Y坐标相同,按照深度值从大到小的顺序,排列为先多边形结构体实例#1,接着为多边形结构体实例#0。
在图8的例子中,按照排序规则1~4排序的结果,偶数场的显示的多边形结构体实例按照#1,#0,#3,及#2的顺序被重排。顺便说一下,只按照排序规则1~3,多边形结构体实例按照#0,#1,#2及#3的顺序被重排。
上述排序规则4加上排序规则1~3,也适用于重排精灵结构体序列的各精灵结构体实例。
这里,说明隔行扫描的情况下,追加排序规则4的理由。在图8中,假设只按照排序规则1~3进行排序。这时,按照多边形结构体实例#0,#1,#2及#3的顺序,即最小Y坐标从小到大的顺序进行排序。这样的话,显示奇数场时,例如,图中,在从上数第1个奇数行的绘制结束后,在预取缓冲器1 18的起始处有多边形结构体实例#1,在循环缓冲器110的起始处有多边形结构体实例#0。因此,图中,进行从上数第2个奇数行的绘制时,按照多边形#1,#2及#0的顺序进行绘制。这样,在该奇数行,没有按照深度值从大到小的顺序进行绘制。
通过追加排序规则4,显示奇数场时,按照多边形结构体实例#0,#1,#2及#3的顺序进行重排。这样的话,显示奇数场时,例如,图中,在从上数第1个奇数行的绘制结束后,在预取缓冲器108的出口有多边形结构体实例#2,在循环缓冲器11 0的出口,有多边形结构体实例#0。因此,图中,进行从上数第2个奇数行的扫描时,按照多边形#2,#1及#0的顺序,深度值从大到小的顺序进行绘制处理。
以上也可适用于显示偶数场时。
在进行隔行扫描显示的排序处理中,因执行排序的时间不同,进行奇数场用的排序处理和偶数场用的排序处理的时间不同。因此,在本实施方式中,具有模式1和模式2两个排序模式。用附图说明该两个模式。
图9(a)是按照模式1的时间进行隔行扫描显示时的排序处理时的说明图,图9(b)是按照模式2的时间进行隔行扫描显示时的排序处理时的说明图。
如图9(A)所示,在模式1中,YSU19在偶数场B被显示前显示的奇数场A的显示过程中,进行显示该偶数场B的排序B。因此,偶数场B的、代入多边形结构体序列和精灵结构体序列的值(也就是各结构体实例的值)的计算B及排序B两者的处理必需在该偶数场B的前1个显示的奇数场A的显示过程中全部完成。因为要根据计算B的结果进行排序B。
同样地,在模式1中,YSU19在奇数场A被显示前显示的偶数场B的显示过程中,进行显示该奇数场A的排序A。因此,奇数场A的、代入多边形结构体序列和精灵结构体序列的值(也就是各结构体实例的值)的计算A及排序A的两者的处理必需在该奇数场A的前1个显示的偶数场B的显示过程中全部完成。因为要根据计算A的结果进行排序A。
另一方面,在模式2中,如图9(b)所示,YSU19在之前的垂直消隐期间及奇数场A的显示过程中,执行该奇数场A的排序A。奇数场A的计算A在该奇数场A的前1个偶数场B的显示过程中进行。同样的,在模式2中,YSU19在之前的垂直消隐期间中及偶数场B的显示过程中,执行该偶数场B的排序B。偶数场B的计算B在该偶数场B的前1个奇数场A的显示过程中进行。
因此,在模式2中,在奇数场A的显示过程中,可并列执行奇数场A的排序A和偶数场B的计算B,此外,在偶数场B的显示过程中,可并列执行偶数场B的排序B和奇数场A的计算A。其结果,可充分确保计算A及B。
在本实施方式中,具有不用等到全部结构体实例排序的完成,从位次高的开始每确定1个结构体实例,当时,结构体实例便可被读入到RPU9,进行绘制处理的功能。具体地,每确定被排序的多边形结构体序列中的排序完的多边形结构体实例,脉冲信号PPL(后述)就从YSU19传达给RPU9,RPU9计数该脉冲信号PPL的数量,从主RAM25读出不超过计数值的范 围的数量的多边形结构体实例。此外,对于精灵结构体序列的排序及读出,也具有同样的功能。因此,如模式2,在之前的垂直消隐期间及场显示过程中可执行对显示过程中的各结构体实例的排序。
作为可从位次高的结构体实例中1个1个送出结构体实例的排序技术的1个例子,在本实施方式中,采用堆排序。此外,采用堆排序的另外1个优点是排序性能稳定,即排序需要的时间差别小。
图10是表示本发明的实施方式的多媒体处理器1的内部构成的框图。如图10所示,该多媒体处理器具备外部存储器接口3,DMAC(直接存储器存取控制器Direct Memory Access Controller)4,中央演算处理装置(以下称“CPU”)5,CPU本地RAM7,渲染处理单元(以下称“RPU”)9,彩色调色板RAM11,声音处理单元(以下称“SPU”)13,SPU本地RAM15,几何引擎(以下称“GE”)17,Y排序单元(以下称“YSU”)19,外部接口块21,主RAM访问仲裁器(RAMAccess Arbiter)23,主RAM25,I/O总线27,视频DAC(数模转换器)29,音频DAC块31及A/D交换器(以下称“ADC”)33。不需要区别说明主RAM25及外部存储器50时,记为“存储器MEM”。
CPU5执行存储在存储器MEM的程序,进行各种演算和系统全体的控制。此外,CPU5可向DMAC4发出程序及数据的传送要求,也可不通过DMAC4,通过外部存储器接口3及外部总线51,从外部存储器50直接获取程序编码,对外部存储器50直接进行数据访问。
作为与图形处理相关的CPU5的处理,执行存储在存储器MEM的程序,进行各对象及各精灵的扩大·缩小,旋转及/或平行移动的参数,视点坐标(相机坐标)并视线矢量的算出等。这里,将由1个或多个多边形构成的、可进行相同扩大·缩小,旋转及平行移动的变换的单位称为“对象”。
I/O总线27是以CPU5为总线主控器(Bus Master)的系统控制用的总线,用于对总线受控器(Bus Slave)即各功能单元(部存储器接口3,DMAC4,RPU9,SPU13,GE17,YSU19,外部接口块21,及ADC33)的控制寄存器及本地RAM7、11、15的访问。这样,该些功能单元通过 I/O总线27由CPU5控制。
CPU本地RAM7是CPU5专用的RAM,作为子程序调用和中断时进行数据的保存等的堆栈区域,及只有CPU5处理的变量的存储区域等使用。
本发明的特征之一的RPU9实时生成由多边形和精灵构成的三维图像。具体地,RPU9从主RAM25中读出YSU19排序完的、多边形结构体序列的各结构体实例及精灵结构体序列的各精灵结构体实例,执行上述深度比较器112等的处理及后述的各种处理,配合屏幕的扫描,每个水平行地生成图像。生成的图像被变换成表示复合视频信号波形的数据流,输出给视频DAC29。此外,RPU9具有为了多边形及精灵的纹理图样数据的获取对DMAC4发出DMA传送要求的功能。关于RPU9将在后面详述。
纹理图样数据是多边形或精灵上粘贴的二维像素序列数据,各像素数据是指定彩色调色板RAM11的入口的信息的一部分。这样,在本实施方式中,对于色彩的指定,采用间接指定方式。以后,将纹理图样数据的像素称为“纹理像素”,与构成屏幕上显示的图像的像素所指的“像素”区别使用。因此,纹理图样数据是纹理像素数据的集合。
视频DACA29是生成模拟的视频信号的数字/模拟变换器。视频DACA29将从RPU9输入的数据流变换为模拟的复合视频信号,从视频信号输出端子(图中未表示)输出给电视显示器(图中未表示)等。
彩色调色板RAM11在本实施方式中由512色即512入口的彩色调色板组成。RPU9将纹理图样数据中包含的纹理像素数据作为指定调色板的入口的索引的一部分,参照彩色调色板RAM11,将纹理像素数据变换为彩色数据(RGB的彩色分量)。
SPU13生成PCM(脉码调制)波形数据(以下称“WEB数据”),音幅数据及主音量数据。具体地,SPU13生成最大64信道的WEB数据并将其时分复用的同时,生成最大64信道的包络数据,与信道音量数据乘算,时分复用音幅数据。并且,SPU13向音频DAC块31输出主音量数据,时分复用的WEB数据及时分复用的音幅数据。此外,SPU13具有为了WEB数据及包络数据的获取向DMAC4发送DMA传送要求的功能。
音频DAC块31分别将从SPU13输入的WEB数据,音幅数据及主音量数据变换为模拟信号,模拟乘算其结果,生成模拟音频信号。该模拟音频信号从音频信号输出端子(图中未表示)输出到电视显示器等(图中未表示)的音频输入端子(图中未表示)。
SPU本地RAM15存储用于SPU13进行WEB再生及包络生成的参数(例如,WEB数据和包络数据的存储地址和节距等信息)。
GE17执行显示三维图像的几何演算。具体地,GE17执行矩阵积,矢量仿射变换,矢量直交变换,透视投影变换,顶点亮度/多边形亮度计算(矢量内积)及多边形背面剔除(Back-Face Culling)处理(矢量外积)等的演算。
本发明的特征之一的YSU19遵循排序规则1~4排序存储在主RAM25中的多边形结构体序列的各结构体实例及精灵结构体序列的各结构体实例。这时,多边形结构体序列和精灵结构体序列分别进行排序。
外部存储器接口3通过外部总线51读出来自外部存储器50的数据,及管理对外部存储器50的数据的写入。这时,外部存储器接口3遵循图中未表示的EBI优先位次一览表,仲裁来自CPU5及DMAC4的外部总线访问要求的主要原因(要求对外部总线51进行访问的主要原因),并选择1个外部总线访问要求的主要原因。并且,对选择的外部总线51访问要求的主要原因,许可对外部总线51的访问。EBI优先位次一览表是设定来自CPU5的多种外部访问要求的主要原因及来自DMAC4的外部总线访问要求的主要原因的优先位次的一览表。
作为外部总线访问要求的主要原因有,CPU5中包含的图中未表示的IPL(Initial Program Loader初始程序加载程序)的块传送要求,CPU5的数据访问要求,CPU5的命令获取要求及DMAC4的DMA要求。
DMAC4在主RAM25和与外部总线51连接的外部存储器50之间进行DMA的传送。这时,DMAC4按照图中未表示的DMA优先顺序一览表,仲裁来自CPU5、RPU9及SPU13的DMA传送要求的主要原因(要求DMA传送的主要原因),选择1个DMA传送要求的主要原因。并且, 对外部存储器接口3进行DMA要求。DMA优先顺序一览表是设定来自CPU5、RPU9及SPU13的DMA传送要求的主要原因的优先顺序的一览表。
作为SPU13的DMA要求的主要原因有(1)向WEB缓冲器传送WEB数据,(2)向包络缓冲器(envelope buffer)传送包络数据。WEB缓冲器及包络缓冲器分别是在主RAM25上设定的WEB数据及包络数据的临时存储区域。另外,SPU13的2个DMA要求的主要原因间的仲裁由SPU13内的硬件(图中未表示)进行,与DMAC4无关。
作为RPU9的DMA要求的主要原因有向纹理缓冲器传送纹理图样数据。纹理缓冲器是在主RAM25上设定的纹理图样数据的临时存储区域。
作为CPU5的DMA要求的主要原因有(1)在虚拟存储管理中,发生页面错误时的页面的传送,(2)应用程序等要求的数据传送。另外,在CPU5内,同时发生多个DMA要求时,该仲裁由CPU5执行的软件来进行,与DMAC4无关。
DMAC4具备以LZ77运算法则为基础的数据解压缩功能,对于CPU5的DMA传送要求,可一边解压缩存储在外部存储器50中的压缩数据一边进行DMA传送。
外部接口块21是与周边装置54的接口,包含24通道的可编程数据输入输出(I/O)端口。24通道的I/O端口分别有4通道的鼠标接口功能,4通道的光笔接口功能,2位的通用时钟/计数器接口,1位的调步同期式串行接口功能,1位的并行/串行变换端口功能的1个或多个地被内部连接。
ADC33与4通道的模拟输入端口连接,这样,将从模拟输入装置52输入的模拟信号变换为数字信号。例如,采样麦克风声音等的模拟输入信号变换为数字数据。
主RAM访问仲裁器23仲裁功能单元(CPU5、RPU9、GE17、YSU19、DAMC4及外部接口块21(通用并行/串行变换端口))对主RAM25的访问要求,发出对1个单元的访问许可。
主RAM25作为CPU5的工作区域,变量存储区域及虚拟存储管理区 域被使用。此外,主RAM25还作为CPU5从其他功能单元接收的数据的存储区域,RPU9及SPU13通过DMA从外部存储器50获取的数据的存储区域,GE17及YSU19的输入数据及输出数据的存储区域等被使用。
外部总线51是用于访问外部存储器50的总线。其通过外部存储器接口3访问CPU5及DMAC4。外部总线51的地址总线由30比特构成,可连接最大1G字节(=8G比特)的外部存储器50。外部总线51的数据总线由16比特构成,可同时连接具有8比特或16比特的数据总线宽度的外部存储器50。具有可同时连接具有不同数据总线宽度的外部存储器,通过访问的外部存储器自动切换数据总线宽度的功能。
接着,说明多媒体处理器1的图形处理的概要。
图11是表示图10的多媒体处理器1的图形处理的流程的概要的流程图。如图11所示,在步骤S1,CPU5算出各对象(由1个或多个多边形构成,可进行相同扩大·缩小、旋转及平行移动的变换的单位)及各精灵的扩大·缩小、旋转及平行移动的参数。根据算出的参数生成对各对象及各精灵的扩大·缩小、旋转及平行移动的变换矩阵。该些变换矩阵用于从各对象及各精灵的本地的坐标系(本地坐标系)向用统一的坐标系表现全部对象及全部精灵的直交坐标系(世界坐标系)的变换。
此外,CPU5进行视点(相机)坐标,对象点坐标及视线矢量的更新等。根据该些参数生成从世界坐标系向以视点为中心的直交坐标系(视图坐标系)的变换矩阵。
在步骤S2中,对于各对象及各精灵,存在多个扩大·缩小、旋转及平行移动的变换矩阵时,GE17通过求出该些变换矩阵的矩阵积,将多个变换矩阵合成单一的变换矩阵。进一步地,GE17求出合成的变换矩阵和用于坐标系变换的变换矩阵的矩阵积,分别合成用于变换对象顶点坐标序列,对象法线矢量序列及精灵坐标的变换矩阵。
在步骤S3中,GE17用合成的变换矩阵,进行对象顶点坐标序列,对象法线矢量序列及精灵坐标的几何变换。此外,GE17演算变换后的对象法线矢量序列和光源矢量的内积,算出对象的各顶点或面(多边形)的亮 度。该几何变换和光照运算的结果存储在多边形结构体序列及精灵结构体序列。
在步骤S4中,在RPU9进行绘制处理之前,YSU19按照排序规则1~4,排序多边形结构体实例及精灵结构体实例。
在步骤S5中,RPU9读出YSU19排序后的多边形结构体实例及精灵结构体实例的同时,一边读出表示纹理映射模式下的多边形及精灵的属性的纹理属性结构体实例,一边生成各水平显示行的像素数据列。此外,对于纹理映射模式下的多边形及精灵的像素数据列的生成,需要从外部存储器50读出这些多边形及精灵上粘贴的纹理图样。将这样的像素数据列生成处理称为“描画(Raster Rising)”。
在本实施方式中,作为多边形的绘制模式,实装有使用纹理映射进行绘制的纹理映射模式和使用高洛德着色进行多边形的绘制的高洛德着色模式。纹理映射是将排列成二维格子状的纹理像素的图样粘贴在多边形表面的绘制手法。高洛德着色是用少个数的多边形疑似地表现平滑的曲面用的顺滑着色的一种。在高洛德着色中,通过直线增补处理独立被指定的多边形的顶点色,求得多边形内的各像素的绘制色。
此外,RPU9执行剪辑。剪辑是指在多边形及精灵的像素数据列生成时,剪切掉从指定的视口(Viewport)的区域溢出的部分从而不进行显示的处理。生成的像素数据列被写入RPU9内的行缓冲器LB1或LB2,但是这时写入像素设定为半透明色时,进行混合行缓冲器内的像素的色彩和写入像素的色彩的色彩混色。
在步骤S6中,RPU9从行缓冲器LB1或LB2读出显示对象的各像素的信息,追加同步信号及彩色爆裂信号等,生成复合视频信号的数字数据流。生成的数据流被输入到视频DAC29,从视频DAC29输出模拟的复合视频信号。
接着,说明RPU9的详细内容。
图12是表示图10的RPU9的内部构成的框图。如图12所示,RPU9包含RPU内主RAM访问仲裁器100,多边形预取器102,精灵预取器104, 归并排序器(merger sorter)106,预取缓冲器108,循环缓冲器110,深度比较器112,顶点(vertex)排序器114,顶点增强器(vertex)116,切割器(slicer)118,像素步进机(pixel stepper)120,像素抖动器(pixel dither)122,纹理像素贴图器(mapper)124,纹理高速缓存块126,双线性过滤器(Bilinear Filter)130,色彩混合器(Color Blender)132,行缓冲器块134,视频编码器136,视频时间生成器138,存储器管理器140及DMAC接口142。行缓冲器块134包含对应各屏幕的1水平行的行缓冲器LB1及LB2。另外,在图12中,为了说明方便,将彩色调色板11画入RPU9中。
RPU内主RAM访问仲裁器100仲裁来自多边形预取器102,精灵预取器104及存储器管理器140对主RAM25的访问要求,并发出对1个访问要求的许可。被许可的访问要求输出到主RAM访问仲裁器23,在来自多媒体处理器1内的其他功能单元的访问要求之间进行仲裁。
多边形预取器102从主RAM25获取YSU19排序后的各多边形结构体实例。脉冲PPL从YSU19输入到多边形预取器102。YSU19从排序中位次高的开始每确定1个多边形结构体实例,就输出脉冲PPL。因此,多边形预取器102可知道多边形结构体序列的全部多边形结构体实例中,完成了几个多边形结构体实例的排序。
因此,多边形预取器102不用等到全部结构体实例排序的完成,从位次高的开始每确定1个结构体实例,当时就可获得多边形结构体实例。其结果,在帧的显示过程中,就可进行该帧的多边形结构体实例的排序。此外,进行隔行扫描的显示时,通过使用上述模式2(参照图9(b)),即使在场的显示过程中进行该场的排序,也能得到正确的结果。此外,多边形预取器102可从视频时间生成器138的垂直扫描计数信号VC中知道帧及场的切换。
精灵预取器104从主RAM25获取YSU19排序后的各精灵结构体实例。脉冲SPL从YSU19输入到精灵预取器104。YSU19从排序中位次高的开始每确定1个精灵结构体实例,就输出脉冲PPL。因此,精灵预取器104可知道精灵结构体序列的全部精灵结构体实例中,完成了几个精灵结 构体实例的排序。
因此,精灵预取器104不用等到全部精灵实例排序的完成,从位次高的开始每确定1个精灵实例,当时就可获得精灵结构体实例。其结果,在帧的显示过程中,就可进行该帧的精灵结构体实例的排序。此外,进行隔行扫描的显示时,通过使用上述模式2(参照图9(b)),即使在场的显示过程中进行该场的排序,也能得到正确的结果。此外,精灵预取器104可从视频时间生成器138的垂直扫描计数信号VC中知道帧及场的切换。
这里,详细说明多边形结构体,纹理属性结构体实例及精灵结构体的构成。
图13是纹理映射模式下的多边形结构体的示例图。如图13所示,在本实施方式中,该多边形结构体由128比特构成。该多边形结构体的成员Type表示多边形的绘制模式,对于纹理映射模式的多边形设定为“0”。成员Ay,Ax,By,Bx,Cy,Cx分别表示多边形的顶点A的Y坐标,顶点A的X坐标,顶点B的Y坐标,顶点B的X坐标,顶点C的Y坐标及顶点C的X坐标。这些Y坐标及X坐标是屏幕坐标系的值。
成员Bw,Cw,Light,Tsegment分别表示多边形的顶点B的远近补正用参数(=Az/Bz),顶点C的远近补正用参数(=Az/Cz),亮度及纹理图样数据的存储位置。
成员Tattribute,Map,Filter,Depth,Viewport,分别表示纹理属性结构体的索引,纹理图样数据的格式类别,表示双线性过滤或近邻取样的1个的过滤模式,深度值及剪辑的视口指定信息。关于双线性过滤及近邻取样在后面叙述。
以上是纹理映射模式的多边形结构体的各成员的内容,通过1个多边形结构体的实例(代入多边形结构体的值)定义1个多边形。
图14是纹理属性结构体的示例图。如图14所示,在本实施方式中,该纹理属性结构体的成员Width,Height,M,N,Bit及Palette分别为比纹理的宽度(单位:纹理像素数)小“1”的值,比纹理的高度(单位:纹理像素数)小“1”的值,从“Width”的上位开始的屏蔽位数,从“Height” 上位开始的屏蔽位数,色彩模式(每个1像素的比特数-1)及调色板块成员。彩色调色板的512色的入口对应被选择的色彩模式被分为多个块,通过成员Palette,使用的调色板块被显示。
不用每个绘制多边形地1个1个准备纹理属性结构体的实例,64个纹理属性结构体实例与纹理映射模式的全部多边形结构体实例及全部精灵结构体实例共有。
图15是高洛德着色模式下的多边形结构体的示例图。如图15所示,在本实施方式中,高洛德着色模式下的多边形结构体由128比特构成,有成员Ax(11比特),Ay(10比特),Bx(11比特),By(10比特),Cx(11比特),Cy(10比特),Ac(15比特),Bc(15比特),Cc(15比特),Depth(12比特),Viewport(2比特)及Nalpha(3比特)。
成员Type表示多边形的绘制模式,对于高洛德着色模式的多边形设定为“1”。成员Ay,Ax,By,Bx,Cy,Cx分别表示多边形的顶点A的Y坐标,顶点A的X坐标,顶点B的Y坐标,顶点B的X坐标,顶点C的Y坐标及顶点C的X坐标。这些Y坐标及X坐标是屏幕坐标系的值。
成员Ac,Bc,Cc分别表示多边形的顶点A的色彩数据(RGB各5比特),顶点B的色彩数据(RGB各5比特)及顶点C的彩色数据(RGB各5比特)。
成员Depth,Viewport及Nalpha分别表示深度值,剪辑的视口指定信息及α混合(Alpha Blending)使用的(1-α)。(1-α)表示透明度,“000(二进制)”表示透明度为0%,即完全不透明,“111(二进制)”表示透明度为87.5%。
以上是高洛德着色模式下的多边形结构体的各成员的内容,通过1个多边形结构体的实例(代入多边形结构体的值)定义1个多边形。
图16(a)是剪辑抑能时的精灵结构体的示例图,图16(b)是剪辑致能时精灵结构体的示例图。如图16(a)所示,在本实施方式中,剪辑抑能时的精灵结构体由64比特构成。该精灵结构体的成员Ax及Ay分别表示精灵的左上的X坐标及Y坐标。该些Y坐标及X坐标是屏幕坐标系 的值。
成员Depth,Filter,Tattribute分别表示深度值,过滤模式(双线性过滤或近邻取样)及纹理属性结构体的索引。成员ZoomX,ZoomY,Tsegment分别表示X轴方向的精灵扩大率(扩缩率),Y轴方向的精灵扩大率(扩缩率)及纹理图样数据的存储位置信息。
如图16(b)所示,在本实施方式中,剪辑致能时的精灵结构体由64比特构成。该精灵结构体的成员Ax及Ay分别表示精灵的左上的X坐标及Y坐标。该Y坐标及X坐标是屏幕坐标系的值。
成员Depth、Scissor、Viewport、Filter及Tattribute分别表示深度值,剪辑适用标志,剪辑的视口指定信息,过滤模式(双线性过滤或近邻取样)及纹理属性结构体的索引。成员ZoomX、ZoomY、Tsegment分别表示X轴方向的精灵扩大率(扩缩率),Y轴方向的精灵扩大率(扩缩率)及纹理图样数据的存储位置信息。
在剪辑致能时的精灵结构体中,与剪辑抑能时的精灵结构体比较,X坐标及Y坐标的比特数分别少1比特。在剪辑致能、精灵配置在屏幕上时,通过后述的顶点增强器116,给X坐标施加512像素的偏移,Y坐标施加256像素的偏移。此外,深度值的比特数也少1比特,但是在剪辑抑能时,由后述的纹理像素贴图器(mapper)124,在存储在结构体的深度值的LSB侧附加1比特的“0”,作为与剪辑抑能时相同的8比特的深度值来处理。
以上,是剪辑抑能时及剪辑致能时的精灵结构体的各成员的内容,通过1个精灵结构体的实例(代入精灵结构体的值)定义1个精灵。精灵的纹理属性结构体的构成与图14的多边形的纹理属性结构体的构成相同。纹理属性结构体的实例,不用1个1个的准备每个绘制多边形,64个的纹理属性结构体实例与纹理映射模式的全部多边形结构体及全部精灵结构体实例共有。
回到图12,归并排序器106从多边形预取器102及精灵预取器104分别收到多边形结构体实例及其附随的纹理属性结构体实例,并精灵结构体实例及其附随的纹理属性结构体实例,遵循与上述的YSU19的排序规 则1~4相同的排序规则1~4,执行归并排序,将结果输送给预取缓冲器108。
也就是说,归并排序器106遵循排序规则1~4,选择多边形结构体时,对于纹理映射模式下的多边形,将多边形结构体实例作为多边形/精灵数据PSD(128比特),将其附随的纹理属性结构体实例作为纹理属性结构体实例TAI(32比特),输出给预取缓冲器108。
此外,归并排序器106遵循排序规则1~4,选择多边形结构体时,对于高洛德着色模式下的多边形,将多边形结构体实例作为多边形/精灵数据PSD(128比特),将纹理属性结构体实例TAI(32比特)的全部比特作为“0”,输出给预取缓冲器108。
另一方面,归并排序器106遵循排序规则1~4,选择精灵结构体实例时,将精灵结构体实例作为多边形/精灵数据PSD(128比特),将其附随的纹理属性结构体实例作为纹理属性结构体实例TAI(32比特),输出给预取缓冲器108。但是,这时的多边形/精灵数据PSD的有效数据位于LSB,上位64比特表示“0”。
以上详述的预取缓冲器108是从归并排序器106中顺次读出归并排序后的结构体实例(即,多边形/精灵数据PSD及纹理属性结构体实例TAI),按照读入的顺序输出结构体实例的FIFO(先入先出)结构的缓冲器。也就是说,预取缓冲器108中按照归并排序器106重排的顺序存储结构实例。并且,存储的结构实例,在对应的多边形或精灵的显示的绘制周期,按照被存储的顺序输出。另外,预取缓冲器108可从视频时间生成器138的垂直扫描计数信号VC知道绘制中的水平行。也就是说,可知道绘制周期的切换。在本实施方式中,例如,预取缓冲器108可物理地与循环缓冲器110共有缓冲器,包含循环缓冲器110的入口数,为(128比特+32比特)×128入口。
以上详述的循环缓冲器110从切割器118收到在下1个绘制周期也使用(也就是说,可再利用)的结构体实例(即,多边形/精灵数据PSD及纹理属性结构体实例TAI),并存储的FIFO结构的缓冲器。因此,循环缓 冲器110中存储的结构体实例用于下一次的绘制周期。在本实施方式中,例如,循环缓冲器110可物理地与预取缓冲器108共有缓冲器,包含循环缓冲器110的入口数,(128比特+32比特)×128入口。
以上详述的深度比较器112比较预取缓冲器108的起始的结构体实例中包含的深度值和循环缓冲器110的起始的结构体实例中包含的深度值,选择具有更大的深度值(即,应更靠里显示的)结构体实例,向后段输出。这时,深度比较器112选择的结构体实例是多边形结构体实例的情况下,向顶点排序器114输出,是精灵结构体实例的情况下,向顶点增强器116输出。此外,深度比较器112向切割器118输出选择的结构体实例。另外,深度比较器112可从视频时间生成器138的垂直扫描计数信号VC知道绘制中的水平行。也就是说,可知道绘制周期的切换。
顶点增强器116,根据收到的精灵结构体实例中包含的、精灵的左上顶点坐标(Ax,Ay),Y轴方向的扩大率ZoomY及X轴方向的扩大率ZoomX,并该精灵结构体实例附随的纹理属性结构体实例中包含的、比纹理的宽度小“1”的值Width及比高度小“1”的值Height,算出该精灵的顶点坐标(屏幕坐标系中的XY坐标及UV坐标系中的UV坐标),作为多边形/精灵共通数据CI(208比特)输出给切割器118。但是,多边形/精灵共通数据CI的后述的场WG*(*=0,1,2)常常作为“0×0040”(=1.0)被输出。顶点增强器116输出的多边形/精灵共通数据CI的结构(形式)与顶点排序器114输出的多边形/精灵共通数据CI的结构(形式)相同。
顶点增强器116,根据收到的精灵结构体实例中包含的、精灵的左上顶点坐标(Ax,Ay),Y轴方向的扩大率ZoomY及X轴方向的扩大率ZoomX,并该精灵结构体实例附随的纹理属性结构体实例中包含的、比纹理的宽度小“1”的值Width及比高度小“1”的值Height,算出该精灵的顶点坐标(屏幕坐标系中的XY坐标及UV坐标系中的UV坐标),作为多边形/精灵共通数据CI(208比特)输出给切割器118。但是,多边形/精灵共通数据CI的后述的场WG*(*=0,1,2)常常作为“0×0040”(=1.0)被输出。顶点增强器116输出的多边形/精灵共通数据CI的结构 (形式)与顶点排序器114输出的多边形/精灵共通数据CI的结构(形式)相同。
这里,屏幕坐标系如上述。UV坐标系是构成纹理的各纹理像素以多边形或精灵被贴图的样态被配置的二维直交坐标系。
顶点排序器114从收到的多边形结构体实例及其附随的纹理属性结构体实例,取得及算出多边形的各顶点的参数(XYUV坐标,远近补正用参数及色彩数据),按照Y坐标从小到大的顺序重排各顶点的参数,作为多边形/精灵共通数据CI输出给切割器118。顶点的出现顺序从先到后为顶点0,顶点1及顶点2。
也就是说,在纹理映射模式下,顶点排序器114将算出结果,即各顶点0~2的参数(XY坐标,远近补正后的UV坐标及远近补正用参数)作为多边形/精灵共通数据CI输出给切割器118。
此外,在高洛德着色模式下,顶点排序器114将算出结果,即各顶点0~2的参数(XY坐标,及色彩数据)作为多边形/精灵共通数据CI输出给切割器118。
顶点排序器114输出的多边形/精灵共通数据CI的结构(形式)与顶点增强器116输出的多边形/精灵共通数据CI的结构(形式)相同。
说明顶点排序器114及顶点增强器116输出的多边形/精灵共通数据CI的结构。多边形/精灵共通数据CI由场F(1比特),WG*(各16比特),VR*(各16比特),UB*(各16比特),Y*(各10比特),X*(各11比特)组成(共208比特)。*=0,1,2,表示顶点。
场F表示多边形/精灵共通数据CI是关于多边形的还是关于精灵的标志场。因此,顶点排序器114将表示多边形的“1”存储在场F。另一方面,顶点增强器116将表示精灵的“0”存储在场F。
在从顶点增强器116输出的多边形/精灵共通数据CI中,场VR*,UB*,Y*及X*分别为顶点*的V坐标,U坐标,Y坐标,X坐标。这时,在场WG*存储“0×0040”(=1.0)。如上述,顶点*的出现顺序从先到后为顶点0,顶点1及顶点2。
在从顶点排序器114输出的、纹理映射的对象即多边形/精灵共通数据CI中,场WG *,VR*,UB*,Y*及X*分别为顶点*的远近补正用参数,远近补正完的V坐标,远近补正完的U坐标,Y坐标,X坐标。
在从顶点排序器114输出的、高洛德着色的对象即多边形/精灵共通数据CI中,场WG*,VR*,UB*,Y*及X*分别为顶点*的绿色成分,红色成分,蓝色成分,Y坐标,X坐标。
用图17~图19说明切割器118的动作。图17是切割器118对高洛德着色模式下的多边形进行处理的说明图。如图17所示,切割器118求得由被赋予的多边形及精灵共通CI定义的多边形(三角形)与绘制对象的水平行的交点的XY坐标(Xs,Ys)及(Xe,Ye)。这里,对于多边形,以与绘制对象的水平行不相交的边所在的一侧的交点为终端(Xe,Ye),不存在该边的一侧的交点为始端(Xs,Ys)。
并且,切割器118,在绘制Y坐标Yr在Y0≤Yr<Y1的范围内,按照顶点0的RGB值(VR0,WG0,UB0)及顶点2的RGB值(VR2,WG2,UB2),通过直线补间,算出交点始端的RGB(Rs,Gs,Bs)的同时,按照顶点0的RGB值(VR0,WG0,UB0)及顶点1的RGB值(VR1,WG1,UB1),通过直线补间,算出交点终端的RGB值(Re,Ge,Be)。此外,切割器118,在绘制Y坐标Yr在Y1≤Yr≤Y2的范围内,按照顶点0的RGB值(VR0,WG0,UB0)及顶点2的RGB值(VR2,WG2,UB2),通过直线补间,算出交点始端的RGB(Rs,Gs,Bs)的同时,按照顶点1的RGB值(VR1,WG1,UB1)及顶点2的RGB值(VR2,WG2,UB2),通过直线补间,算出交点终端的RGB值(Re,Ge,Be)。
并且,切割器118算出ΔR、ΔG、ΔB及ΔXg。这里ΔR、ΔG、ΔB是位于绘制对象的水平行的每个ΔXg的R,G,B分别变化量,ΔXg是位于绘制对象的水平行的每个像素的X坐标的变化量。ΔXg为“+1”或“-1”中的1个。
ΔR=(Re-Rs)/(Xe-Xs)
ΔG=(Ge-Gs)/(Xe-Xs)
ΔB=(Be-Bs)/(Xe-Xs)
ΔXg=(Xe-Xs)/|Xe-Xs|
切割器118将从深度比较器112收到的结构体实例和算出的Xs,Rs,Gs,Bs,Xe,ΔR,ΔG,ΔB及ΔXg送给像素步进机120。此外,从顶点排序器114收到的多边形/精灵共通数据CI在下1个绘制周期也被使用时,切割器118将从深度比较器112收到的结构体实例写入循环缓冲器110。另外,从来自视频时间生成器138的垂直扫描计数信号VC及多边形的顶点坐标,可知道在下1个周期的使用的有无。
图18是切割器118对纹理映射模式下的多边形进行处理的说明图。如图18所示,切割器118求得由被赋予的多边形及精灵共通CI定义的多边形(三角形)和绘制对象的水平行的交点的XY坐标(Xs,Ys)及(Xe,Ye)。这点与高洛德着色模式下的对多边形的处理相同。
这里,说明远近补正功能。在表现被透视投影变换的三维图像的纹理映射中,仅通过与多边形的各顶点坐标对应的、UV空间的纹理的各顶点坐标的线形增补求得与屏幕上的绘制像素对应的纹理像素的话,有时被映射的图像会歪斜。消除该歪斜的就是远近补正功能,具体进行如下处理。
使向UV空间映射多边形的各顶点A,B,C时的坐标为(Au,Av),(Bu,Bv),(Cu,Cv)。此外,各顶点A,B,C的View坐标为(Ax,Ay,Az),(Bx,By,Bz),(Cx,Cy,Cz)。并且通过(Au/Az,Av/Az,1/Az),(Bu/Bz,Bv/Bz,1/Bz),(Cu/Cz,Cv/Cz,1/Cz)的直线补间求得的值(u/z,v/z,1/z)的u/z与1/z的倒数的乘积值u及v/z与1/z的倒数的成积值v,也就是说通过将(u,v)作为纹理像素坐标(U,V)取得纹理像素数据,实现透视投影变换后的正确的纹理映射。这里,View坐标是View坐标系的坐标。View坐标系是由XYZ三轴组成的三维直交坐标系,以视点为原点,视线为Z轴的正方向。
在本实施方式中,在多边形结构体上不设定每个顶点为1/Az,1/Bz,1/Cz,而是设定为各个值乘以Az的值,即为Az/Az(=Aw),Az/Bz(=Bw),Az/Cz(=Cw)(参照图1 3)。但是,顶点A的参数Aw常常为1, 因此在多边形结构体上不进行设定。
因此,在本实施方式中,通过(Au·Aw,Av·Aw,Aw),(Bu·Bw,Bv·Bw,Bw),(Cu·Cw,Cv·Cw,Cw)的直线补间求得的值(u·w,v·w,w)的u·w乘以1/w的值u及v·w乘以1/w的值v,即将(u,v)作为纹理像素坐标(U,V)取得纹理像素数据,这样,实现了透视投影变换后的正确的纹理映射。
在此基础上,切割器118在绘制Y坐标Yr在Y0≤Yr<Y1的范围内时,根据顶点0的(UB0,VR0,WG0)及顶点2的(UB2,VR2,WG2),通过直线补间算出交点始端的(Us,Vs,Ws)的同时,根据顶点0的(UB0,VR0,WG0)及顶点1的(UB1,VR1,WG1),通过直线补间算出交点终端的(Ue,Ve,We)。此外,切割器118在绘制Y坐标Yr在Y1≤Yr≤Y2的范围内时,按照顶点0的(UB0,VR0,WG0)及顶点2的(UB2,VR2,WG2),通过直线补间算出交点始端的(Us,Vs,Ws)的同时,按照顶点1的(UB1,VR1,WG1)及顶点2的(UB2,VR2,WG2),通过直线补间算出交点终端的(Ue,Ve,We)。
列举了顶点间的Y坐标By≤Ay<Cy,绘制Y坐标Yr在Y1≤Yr≤Y2的范围时的例子说明了上述事情。这样的话,切割器118根据顶点0的(UB0,VR0,WG0)=(Bu·Bw,Bv·Bw,Bw)及顶点2的(UB2,VR2,WG2)=(Cu·Cw,Cv·Cw,Cw),通过直线补间算出交点始端的(Us,Vs,Ws)的同时,根据顶点1的(UB1,VR1,WG1)=(Au·Aw,Av·Aw,Aw)及顶点2的(UB2,VR2,WG2)=(Cu·Cw,Cv·Cw,Cw),通过直线补间算出交点终端的(Ue,Ve,We)。
接着,切割器118算出ΔU、ΔV、ΔW及ΔXt。这里ΔU、ΔV、ΔW分别是绘制对象的水平行中每个ΔXt的U坐标(=u·w),V坐标(=v·w)、远近补正用参数W(=w)的变化量,ΔXt是绘制对象的水平行中每1个像素的X坐标的变化量。ΔXt是“+1”或“-1”中的1个。
ΔU=(Ue-Us)/(Xe-Xs)
ΔV=(Ve-Vs)/(Xe-Xs)
ΔW=(We-Ws)/(Xe-Xs)
ΔXt=(Xe-Xs)/|Xe-Xs|
切割器118将从深度比较器112收到的结构体实例和算出的Xs,Us,Vs,Ws,Xe,ΔU,ΔV,ΔW及ΔXt一起送出给像素步进机120。此外,在从顶点排序器114收到的多边形/精灵共通数据CI在下1个绘制周期也被使用时,切割器118将从深度比较器112收到的结构体实例写入到循环缓冲器110。从视频时间生成器138的垂直扫描计数信号VC及多边形的顶点坐标,可知道在下一次绘制周期的使用的有无。
图19是切割器118对精灵进行处理的说明图。如图19所示,切割器118求得所给的多边形/精灵共通数据CI定义的精灵(矩形)与绘制对象的水平行的交点坐标(Xs,Ys)及(Xe,Ye)。这里,对于精灵,先绘制一侧的交点为始端(Xs,Ys),后绘制一侧的交点为终端(Xe,Ye)。
向UV空间映射精灵的各顶点0,1,2,3时的坐标为(UB0,VR0),(UB1,VR1),(UB2,VR2),(UB3,VR3)。这里,UB3,VR3未被输入到切割器118,但是可分别如下在切割器118内求得。
UB3=UB1
VR3==VR2
切割器118根据顶点0的(UB0,VR0)及顶点2的(UB2,VR2),通过直线补间,算出交点始端的UV坐标(Us,Vs)的同时,根据顶点1的(UB1,VR1)及顶点3的(UB3,VR3),通过直线补间,算出交点终端的UV坐标(Ue,Ve)。
并且,切割器118算出ΔU及ΔV。这里,ΔU、ΔV分别是绘制对象的水平行中的每个ΔXs的U坐标,V坐标的变化量。ΔXs是绘制对象的水平行中的每个像素的X坐标的变化量,常常为“1”,不进行算出。
ΔU=(Ue-Us)/(Xe-Xs)
ΔV=(Ve-Vs)/(Xe-Xs)
ΔXs=(Xe-Xs)/|Xe-Xs|=1
切割器118将从深度比较器112收到的结构体实例和算出的Xs,Us,Vs,Ws,Xe,ΔU,ΔV,ΔW及ΔXt一起送出给像素步进机120。此外,在从顶点排序器114收到的多边形/精灵共通数据CI在下1个绘制周期也被使用时,切割器118将从深度比较器112收到的结构体实例写入到循环缓冲器110。从视频时间生成器138的垂直扫描计数信号VC及多边形的顶点坐标,可知道在下一次绘制周期的使用的有无。
这里,切割器118从多边形/精灵共通数据CI的场F,可识别多边形及精灵,从多边形结构体实例的成员Type,可识别高洛德着色及纹理映射。
回到图12,像素步进器120对于高洛德着色模式下的多边形,从切割器118赋予的参数(Xs,Rs,Gs,Bs,Xe,ΔR,ΔG,ΔB及ΔXg)中,求出绘制对象像素的绘制X坐标和RGB值,与(1-α)值一起送出给像素抖动器122。具体来说,像素步进器120在交点的始端(绘制开始端)Xs的红色成分Rs上,顺次加上每1像素的红色成分的变化量ΔR,求得各像素的红色成分RX。该处理一直进行到到达交点的终端(绘制结束端)。绿色成分GX及蓝色成分BX也一样。此外,在交点的始端Xs上顺次加上ΔXs,求得绘制X坐标Xr。另外X=0~|Xe-Xs|,为整数。
RX=ΔXG·ΔR·X+Rs
GX=ΔXG·ΔG·X+Gs
BX=ΔXG·ΔB·X+Bs
Xr=ΔXs·X+Xs
像素步进器120将求得的各像素的RGB值(RX,GX,BX),和绘制X坐标Xr,和(1-α)值及深度值(Depth)一起,输出给像素抖动器122。
此外,像素步进器120对于纹理映射模式下的多边形,从切割器118赋予的参数(Xs,Us,Vs,Ws,Xe,ΔU,ΔV,ΔW及ΔXt)中,求得向UV空间映射绘制对象像素时的坐标(U,V)。具体来说,像素步进器120在交点的始端(绘制开始端)XS的远近补正用参数WS上,顺次加上每1像素的远近补正用参数的变化量ΔR,求得各像素的远近补正用参数WX。该处理一直进行到到达交点的终端(绘制结束端)。另外X=0~| Xe-Xs|,为整数。
WX=ΔXt·ΔW·X+Ws
像素步进器120在交点的始端(绘制开始端)Xs的U坐标(=u·w)Us上顺次加上每1像素的U坐标的变化量ΔU,再将求得的值乘以WX的倒数,求得各像素的U坐标UX。该处理一直进行到到达交点的终端(绘制结束端)。对于V坐标(=v·w)VX也一样。此外,在交点的始端Xs上顺次加上ΔXs,求得绘制X坐标Xr。另外X=0~|Xe-Xs|,为整数。
UX=(ΔXt·ΔU·X+Us)·(1/WX)
VX=(ΔXt·ΔV·X+Vs)·(1/WX)
Xr=ΔXs·X+Xs
像素步进器120将求得的各像素的UV坐标(UX,VX)并绘制X坐标Xr与从切割器118收到的结构体实例(纹理映射的多边形结构体实例及纹理属性结构体实例)一起输出给纹理像素贴图器124。
进一步地,像素步进器120对于精灵,从切割器118赋予的精灵的参数(Xs,Us,Vs,Xe,ΔU,ΔV及ΔXs)中,求得向UV空间映射绘制对象像素时的坐标(U,V)。具体来说,像素步进器120在交点的始端(绘制开始端)Xs的U坐标Us上,顺次加上每1像素的U坐标的变化量ΔU,求得各像素的U坐标UX。该处理一直进行到到达交点的终端(绘制结束端)。对于V坐标VX也一样。此外,在交点的始端Xs上顺次加上ΔXs即“1”,求得绘制X坐标Xr。另外X=0~|Xe-Xs|,为整数。
UX=ΔXs·ΔU·X+Us
VX=ΔXs·ΔV·X+Vs
Xr=X+Xs
像素步进器120将求得的各像素的UV坐标(UX,VX)并绘制X坐标Xr与从切割器118收到的结构体实例(精灵结构体实例及纹理属性结构体实例)一起输出给纹理像素贴图器124。
像素抖动器122在像素步进器120赋予的RGB值的小数部分加上杂 波,执行马赫带(Mach band)不明显的抖动。此外,像素抖动器122将抖动后的像素的RGB值与绘制X坐标Xr,(1-α)及深度值一起输出给色彩混合器132。
图20是像素抖动器122的抖动的说明图。如图20所示,抖动样式以2×2格子状的像素块为单位,由RPU9的控制寄存器(图中未表示)设定,根据绘制像素的屏幕坐标系XY坐标的LSB的值,决定4个样式“00”,“01”,“10”,“11”哪个适用。
各样式为2比特大小,与RGB值的各小数部分相加。相加的结果,产生对整数部分的余数时,余数被加算在整数部分。实际上用于作为显示色的部分是RGB值的整数部分,因此只要作为抖动样式设定的值不完全相同,颜色的界限部分出现杂波,马赫带便不是很明显。
回到图12,纹理贴图器124算出并输出,在纹理属性结构体的成员Filter表示“0”时,指示坐标(UX,VX)近旁的4个纹理像素数据的4组字节地址WAD及比特地址BAD,和在成员Filter表示“1”时,指示离坐标(UX,VX)最近的1个纹理像素数据的1组字节地址WAD及比特地址BAD。此外,成员Filter在表示“0”时,算出并输出相当于双线性过滤中各像素的系数部分的双线性过滤参数。进一步地,统一剪辑致能时的精灵,剪辑抑能时的精灵和多边形互相不同的深度值(成员Depth)的形式并输出。
纹理高速缓存块126从纹理贴图器124输出的字节地址WAD,比特地址BAD,结构体实例的成员Tsegment算出各像素的地址。算出的地址指示的纹理像素数据已经存储在高速缓冲存储器时,从被存储的纹理像素及属性结构体的成员Palette中,生成选择彩色调色板RAM11的入口的索引,输出给彩色调色板RAM11。
另一方面,该纹理像素数据未被存储在高速缓冲存储器中时,纹理高速缓存块126对存储器管理器140发出纹理像素数据的取得指示。存储器管理器140从主RAM25取得该纹理图样数据,存储在纹理高速缓存块126的高速缓冲存储器中。此外,存储器管理器140按照归并排序器106的指 示,从外部存储器50中取得在后段需要的纹理图样数据,存储在主RAM25中。
这时,存储器管理器140对于纹理映射模式下的多边形用的纹理图样数据,一次性取得1多边形地被映射的全部数据,存储在主RAM25,但是,对于精灵用的纹理图样数据,1精灵地被映射的数据以行为单位取得,存储在主RAM25。这是因为向UV空间映射绘制对象的水平行中包含的像素群的话,多边形的情况下,有映射到UV空间中的所有直线上的可能,而在精灵的情况下,只映射到与U轴平行的直线上。
在本实施方式中,纹理高速缓存块126的高速缓冲存储器为64比特×4入口,块置换算法为最少使用算法LRU(least recently used)。
彩色调色板RAM11将连接纹理高速缓存块126输出的纹理像素数据和成员Palette的索引表示的入口中包含的RGB值及用于半透明合成的(1-α)值输出给双线性过滤器130。对于双线性过滤参数BFP,深度值及绘制X坐标XR,原封不动地输出给双线性过滤器130。
双线性过滤器130执行双线性过滤。在纹理映射中,最单纯地像素绘制颜色的算法是取得位于距离在UV空间被映射的像素坐标(UX,VX)最近的像素坐标的像素的色彩数据,从取得的色彩数据中算出像素的绘制颜色的方法。该手法被称为“近邻取样”。
但是,在UV空间映射相邻的像素时的2点间的距离比1像素大小的距离还小很多时,即在屏幕上纹理被扩大很大映射时,在邻近取样中,纹理像素的边界被清晰的显示,因此变成了粗的嵌合体状的纹理映射。作为消除这样的问题的手法,执行双线性过滤。
图21是双线性过滤器130的双线性过滤的说明图。如图21所示,双线性过滤器130算出在UV空间被映射的像素坐标(UX,VX)的近旁的4像素的RGB值及(1-α)值的加权平均数,决定像素的绘制颜色。这样,纹理像素的颜色被柔和的补完,映射结果中的纹理像素的边界不明显。具体地,双线性过滤按照下式(双线性过滤的公式)执行。但是,在下式中,“u”为U坐标UX的小数部分,“v”为V坐标VX的小数部分, “nu”为(1-u),“nv”为(1-v)。
R=R0·nu·nv+R1·u·nv+R2·nu·v+R3·u·v
G=G0·nu·nv+G1·u·nv+G2·nu·v+G3·u·v
B=B0·nu·nv+B1·u·nv+B2·nu·v+B3·u·v
A=A0·nu·nv+A1·u·nv+A2·nu·v+A3·u·v
这里,R0,R1,R2及R3分别为上述4纹理像素的R值,G0,G1,G2及G3分别为上述4纹理像素的G值,B0,B1,B2及B3分别为上述4纹理像素的B值,A0,A1,A2及A3分别为上述4纹理像素的(1-α)值。
双线性过滤器130将算出的像素的RGB值并A值(即(1-α)值)与深度值及绘制X坐标Xr一起输出给色彩混合器132。
参照图12,在说明色彩混合器132之前,说明行缓冲器块134。行缓冲器块134包含行缓冲器LB1及LB2,采用1个行缓冲器用于显示用时,另1个行缓冲器用于绘制用,交互切换使用显示用和绘制用的双缓冲器方式。用于显示用的行缓冲器LB1或LB2按照来自视频时间生成器138的水平扫描计数信号及垂直扫描计数信号VC,将每个像素的RGB值输出给视频编码器136。
色彩混合器132执行半透明合成。具体如下。色彩混合器132使用像素抖动器122或双线性过滤器130赋予的像素的RGB值及(1-α)值,和存储在绘制对象的行缓冲器LB的绘制对象像素位置(绘制X坐标Xr表示的像素)的RGB值,通过下式,执行α混合,将结果写入行缓冲器LB的绘制对象像素位置。
Rb=Rf·(1-αr)+Rr
Gb=Gf·(1-αr)+Gr
Bb=Bf·(1-αr)+Br
αb=αf·(1-αr)+αr
这里,“1-αr”是像素抖动器122或双线性过滤器130赋予的(1-α) 值。“Rr”,“Gr”,“Br”分别是像素抖动器122或双线性过滤器130赋予的RGB值。“Rf”,“Gf”,“Bf”分别是从用于绘制用的行缓冲器LB的绘制对象像素位置取得的RGB值。在一般的α混合的算法中,上式的Rr,Gr及Br的项分别为Rr·αr、Gr·αr、及Br·αr,但是在本实施方式中,通过预先将Rr·αr,Gr·αr及Br·αr的计算结果作为Rr、Gr及Br准备,可简化演算电路。
视频编码器136将用于显示用的行缓冲器LB1或LB2输入的RGB值和视频时间生成器138输入的时间信息(复合同步信号SYN,复合消隐信号BLK,色同步旗脉冲(burst flag)信号BST及行交替信号La等)变换为表示与信号VS对应的复合视频信号的数据流VD。信号VS是指示电视方式(NTSC、AL等)的信号。
视频时间生成器138根据被输入的块,生成水平扫描计数信号HC及垂直扫描计数信号VC,和复合同步信号SYN,复合消隐信号BLK,色同步旗脉冲信号BST及行交替信号La等时间信号。水平扫描计数信号HC在系统块的每个周期都被增加,1水平行的扫描结束的话,被重设。此外,垂直扫描计数信号VC在每次1/2水平行的扫描结束时,被增加,1帧或1场的扫描结束后,垂直扫描计数信号VC被重设。
接着,参照附图详细说明图10的YSU19的排序处理。如上述,YSU19的排序处理中所采用的排序手法为堆排序。
如上述,多边形结构体序列的排序处理和精灵结构体序列的排序处理分别进行。但是,在分别进行过程中,执行相同的排序处理,因此,在后述的图22及图23中,序列及其要素在多边形结构体序列的排序处理时,分别指多边形结构体序列及多边形结构体实例,在精灵结构体序列的排序处理时,分别指精灵结构体序列及精灵结构体实例。
一般的,序列的要素用可代入值的、带有索引的变量(插入物)来定义,或者用被代入带有索引的变量的值本身来定义。在本实施方式中,有必要区分两者时,将作为变量(插入物)的序列要素称为“要素”,将被代入该变量的值称为“要素值”或“要素的值”。
图22是表示图10的YSU19的序列A的堆构建后的堆结构的附图。在图22中,序列A的要素数为10,Y排序前的要素A[0]~A[9]的要素值分别表示为要素值ev0~ev9。
参照图22,本实施方式中的堆结构具有二叉树(binary tree)的结构,1个母连接2个子。但是在堆结构的末端,有时有只具有1个子的母。母对子具有高的位次,对于2个子间的位次没有特别的规则设定。
这里,位次是指排序规则1~4(隔行扫描时为排序规则1~3)设定的结构体实例间(多边形结构体序列的Y排序时为多边形结构体实例间,精灵结构体序列的Y排序时为精灵结构体实例间)的优先位次。也就是说位次是指排序规则1~4(隔行扫描时为排序规则1~3)设定的要素值间(多边形结构体序列的Y排序时为多边形结构体序列的要素值间,精灵结构体序列的Y排序时为精灵结构体序列的要素值间)的优先位次。树结构越上位,位次越高,因此在图22的例子中,要素值ev3是位次最高的要素值。
说明对主RAM25的堆结构的存储方法。一般的堆结构时,从位次最高的母要素值开始,存储在存储器上的序列的起始位置。在堆排序中,1个1个确定排序结果,因此,一般来说为了高效地利用存储器区域,位次确定的要素值与堆结构的末端的子要素值交换存储。因此,位次最高的母要素值被存储在序列的末尾,从堆结构中分离出来。对此,在本实施方式中,用与一般的顺序相反的顺序,将堆结构存储在存储器上。这点列举图22的堆结构的例子进行说明。
图23是对图22的堆结构存储在主RAM25的存储方法的说明图。如图23(a)及图22所示,在本实施方式的堆结构中,从位次最高的母要素值开始,存储在主RAM25的序列A的末尾。并且,如图23(b)所示,交换存储在位次确定的序列A的末尾A[9]的位次最高的母要素值ev3和存储在序列A的起始A[0]的堆结构的末端的子要素值ev5,要素值ev3被存储的起始的要素A[0]从堆结构中被切离。理由如下。
如上述,YSU19在每确定1个位次(排序结果)时,就向RPU9输出 1脉冲的脉冲信号(多边形时为脉冲信号PPL,精灵时为脉冲信号SPL)。收到该些脉冲信号,RPU9从序列的起始读出位次确定了的要素值,即位次确定了的结构体实例,进行绘制处理。因此,用与一般的顺序相反的顺序,将堆结构存储在主RAM25。
说明序列的1要素的大小。序列的1要素的大小在多边形结构体和精灵结构体中是不同的。在为多边形结构体时,序列的1要素(1个多边形结构体实例)由16比特构成,在为精灵结构体时,序列的1要素(1个精灵结构体实例)由8比特构成(参照图13,图15及图16)。但是多边形结构体实例和精灵结构体实例分别存储在不同的序列,因此,在主RAM25上的相同序列内不混合存在不同大小的要素。此外,YSU19独立进行多边形结构体序列的排序和精灵结构体序列的排序。
接着,用流程图说明YSU19的多边形结构体序列的Y排序处理。YSU19的精灵结构体序列的Y排序处理与YSU19的多边形结构体序列的Y排序处理的流程相同,因此省略其说明。
图24是表示图10的YSU19进行多边形结构体序列的Y排序处理的全体流程的1个例子的流程图。另外,在图24及后述的图25及~图27中,只要没有特别的明示,说到序列时,都是指多边形结构体序列。
参照图24,在步骤S20中,YSU19在序列排序开始前,从YSU19的控制寄存器“Polygon_Array_YSU_Base_Address”(图中未表示)中取得排序对象即该序列的起始地址,且,从YSU19内的控制寄存器“Number_of_Sorted_Polygons”(图中未表示)取得该序列的要素数“s”。另外,在图22及图23的例子中,s=10。
顺便说一下,进行精灵结构体序列的排序时,从YSU19内的控制寄存器“Sprite_Array_YSU_Base_Address”(图中未表示)取得该精灵结构体序列的起始地址,且,从YSU19内的控制寄存器“Number_of_Sorted_Sprite”(图中未表示)取得该序列的要素数“s#”。
在接着的步骤S21中,YSU19构建堆结构(堆构建处理)。后面详细叙述堆构建处理。该处理完成后,序列全部变成堆结构,在分别的要素的 连续中,保证母要素的顺序比子要素的顺序高。因此,堆构建处理后,确定了顺序最高的母,即“根(root)”的母要素的顺序,在序列的全部要素中最高。
以后,YSU19从顺序高的开始每确定1个要素,就交换“根”的母要素的值和堆结构的末端的子要素的值(调换)。这意味着位次确定的“根”的母要素从堆结构中分离,从主RAM25上的序列的起始开始按照顺序整列。
因此,YSU19在步骤S21的下1个步骤S22中,为了交换作为顺序最高的要素确定的母要素的值,即要素[s-1]的值和堆结构的末端的子要素的值即要素[0]的值,设定变量i为“0”,在接着的步骤S23中,交换要素[0]的值和要素[s-1]的值。也就是说,将要素[0]的值代入要素[s-1],将要素[s-1]的值代入要素[0]。该交换后,要素[0]从堆结构中被切离。另外,在图22及图23的例子中,交换要素A[0]的值ev5和要素A[9]的值ev3。
在步骤S27后的步骤S23中,YSU19交换当时的堆结构中作为位次最高的要素确定的母要素的值,即要素[s-1]的值和当时堆结构的末端的子要素的值即递增(increament)后的(步骤S25)的要素[i]的值。也就是说将要素[i]的值代入要素[s-1],将要素[s-1]的值代入要素[i]。该交换后,要素[i]从堆结构中被分离。
在接着的步骤S24中,YSU19应该通知1个要素的位次确定,向RPU9输出1脉冲的脉冲信号PPL。顺便说一下,在为精灵结构体序列的排序的情况下,向RPU9输出1脉冲的脉冲信号SPL。在接着的步骤S25中,YSU19递增变量i的值。因此,变量i常常设定为指示堆结构的末端。这意味着递增前的要素[i]从堆结构中被分离,递增后的要素[i]变成新的堆结构的末端。
在步骤S25中,变量i与递增后的值“s-1”相等时,排序未完成的堆结构中包含的要素只有要素[s-1]。这意味着全部的要素值的排序的完成。因此,YSU19在步骤S26中,判断i=s-1时,就进入步骤S28,输 出1脉冲的表示最后的要素值的位次确定的脉冲信号PPL(精灵的情况的话为脉冲信号SPL),结束Y排序处理。
另一方面,YSU19在步骤S26中,判断变量i不等于“s-1”时,Y排序处理还未完成,因此进入到步骤S27。
这时,通过步骤S23的交换处理,堆结构的末端的子要素的值被存储在“根”的母位置,因此堆结构打乱。为了从该种状态再构建堆结构,在步骤S27中,YSU19进行“下推处理”。这里,从“根”的母开始,按照顺序,1个子要素的位次比母要素高的时候,交换子要素与母要素的值,将交换后的子要素作为新的母要素的值,进行相同的堆结构的末端处理,这称为“下推(Downheap)处理”。在后面详细叙述下推处理。
在步骤S27中,进行将要素[s-1]作为处理开始时的母,将“s-i”作为堆结构的要素数的下推处理。伴随着下推处理的完成,堆结构被再构建。因此,确定步骤S27结束后的“根”的母在当时的堆结构中为最高的位次。之后,返回到步骤S23,继续进行排序处理。
图25是表示图24的步骤S21的堆构建处理的流程的1个例子的流程图。参照图25,在步骤S40中,YSU19设定变量j为“0”,变量j表示下推处理中最初的子要素,在初期状态下,指示堆结构全体的末端要素,即要素[0]。
在接着的步骤S41中,YSU19特定要素[j]的母要素[p]。母要素[p]的索引“p”根据以下计算式算出。在下式中,“s”是堆结构全体的要素数。但是右边除法的商常常使之成整数,舍去余数。
p=s-(s-j)/2
在步骤S42中,YSU19进行将在步骤S41中特定的母要素[p]作为母,“s”为堆结构全体的要素数的下推处理。下推处理将在后面详述。
步骤S42的下推处理完成后,在步骤S43,YSU19递增变量j。并且,在步骤S44,如果递增后的变量j的值比“s-1”小,YSU19就返回到步骤S41。另一方面,递增后的变量j的值与“s-1”相等的话,YSU19就结束堆构建处理,进入到图24的步骤S22。
图26是表示下推处理的流程的1个例子的流程图。该下推处理在图24的步骤S27及图25的步骤S42中执行。
参照图26,在步骤S60中,YSU19从母要素的索引和对象堆结构的要素数来特定对母的子的个数的多少。YSU19使母要素的索引为“p”,对象堆结构的要素数为“s”时,2(s-p)的值比“s”小时,子的个数为2个,与“s”相同时子的个数为1个,比“s”大时子的个数为0个。
在步骤S61,YSU19判断子的个数为“0”的话,就结束下推处理。此外,在步骤S62,YSU19判断子的个数为“1”的话,就进入到步骤S63,将该1个子作为母的比较对象,进入到步骤S66。另一方面,在步骤S62中,YSU19判断子的个数不是“1”,即判定为“2”的话,进入到步骤S64。
在步骤S64中,因为子的个数是“2”,因此YSU19为了判定哪个子的位次更高,进行位次比较处理。并且,在步骤S65中,YSU19设定位次比较处理的结果中位次高的子为与母比较的对象,进入到步骤S66。
在步骤S63后或步骤S65后的步骤S66中,YSU19进行比较对象中设定的子要素和母要素的位次比较处理。比较处理的结果,在步骤S67中,YSU19判定母的位次高时,下推处理结束。另一方面,判定子的位次高时,在步骤S68中,YSU19交换比较对象的子要素的值和母要素的值。交换后,在步骤S69中,YSU19设定值被交换了的子要素(即存储交换前的母要素的值的要素)为新的母,返回到步骤S60。
图27是表示位次比较处理的流程的1个例子的流程图。该位次比较处理在图26的步骤S64及S66中执行。在位次比较处理中,按照排序规则1~4(非隔行扫描的时为排序规则1~3),比较2个多边形结构体实例间的位次。也就是说,在位次比较处理中,按照排序规则1~4(非隔行扫描的时为排序规则1~3),比较序列的2个要素间的位次。这里,将比较对象的2个要素(多边形结构体实例)分别表记为要素“A”及“B”。
在步骤S80中,YSU19比较要素“A”及“B”的每个最小Y坐标和绘制起始行(绘制上端行)的Y坐标。在该例子中,比较对象的要素“A”及“B”为多边形结构体实例,因此,成员Ay,By及Cy(参照图13及 图15)中最小的值作为最小Y坐标处理。顺便说一下,比较对象的要素“A”及“B”为多边形结构体实例时,剪辑致能时是成员Ay的值+256,剪辑抑能时是成员Ay的值作为最小Y坐标处理(参照图16)。
在步骤S81中,YSU19判断只有要素“A”的最小Y坐标在绘制起始行的Y坐标以下时,即判断只有基于要素“A”的多边形与绘制起始行相交或位于绘制起始行的上边时,进入到步骤S82,判定要素“A”的位次高,结束位次比较处理(排序规则1)。
在步骤S83中,YSU19判断只有要素“B”的最小Y坐标在绘制起始行的Y坐标以下时,即判断只有基于要素“B”的多边形与绘制起始行相交或位于绘制起始行的上边时,进入到步骤S84,判定要素“B”的位次高,结束位次比较处理(排序规则1)。
要素“A”及“B”两者的最小Y坐标都在绘制起始行的Y坐标以下时,即意味着分别基于要素“A”及“B”的多边形都与绘制起始行相交或位于绘制起始行上边。要素“A”及“B”的两者的最小Y坐标都位于绘制起始行上边时,基于要素“A”及“B”的多边形在屏幕上不绘制,因此,根据排序规则1判定的位次对绘制结果没有影响。这一点,对于精灵也一样。
因此,在步骤S85,YSU19判断要素“A”及“B”两者的最小Y坐标都在绘制起始行的Y坐标以下时,即判断基于要素“A”及“B”的多边形与绘制起始行相交时,进入到步骤S86,不是根据最小Y坐标的比较,而是根据深度值的比较确定要素“A”及“B”间的位次(排序规则3)。
这时,多边形结构体中有成员Depth(参照图13及图15),根据该值的大小判定位次。精灵的情况也相同,根据精灵结构体的成员Depth的值的大小判定位次(参照图16)。成员Depth的比特数在多边形结构体,剪辑致能时的精灵体,剪辑抑能时的精灵结构体中不同,但是YSU19比较的是同一格式的结构体实例,因此只进行单纯的成员Depth的值的比较就可进行大小判定。
在步骤S86接着的步骤S87中,YSU19判断深度值的比较结果,要 素“A”的深度值在要素“B”的深度值以上时,进入到步骤S88,判定要素“A”的位次高,结束位次比较处理。另一方面,YSU19判断深度值的比较结果,要素“A”的深度值比要素“B”的深度值小时,进入到步骤S89,判定要素“B”的位次高,结束位次比较处理。
另一方面,在步骤S85,YSU19判定要素“A”及“B”两者的最小Y坐标比绘制起始行的Y坐标大时,进入到步骤S90,比较双方的最小Y坐标。但是,在隔行扫描模式下的位次比较处理中,把位于扫描对象场的行上的最小Y坐标的值与位于其前1个场的行上的小1的最小Y坐标的值视为相同,进行比较(排序规则4)。另一方面,在隔行扫描模式下的位次比较处理,单纯最小Y坐标的大小。
并且,在步骤S91中,YSU19判定要素“A”及“B”两者的最小Y坐标相同时,进入到步骤S86,通过深度值的比较,判定要素“A”及“B”的位次(排序规则2)。另一方面,在步骤S91中,判定要素“A”及“B”的最小Y坐标不同时,进入到步骤S92。
在步骤S92中,YSU19判断要素“A”的最小Y坐标比要素“B”的最小Y坐标小时,进入到步骤S93,判定要素“A”的位次高,结束位次比较处理(排序规则1)。另一方面,YSU19判断要素“A”的最小Y坐标在要素“B”的最小Y坐标以上时,进入到步骤S94,判定要素“B”的位次高,结束位次比较处理(排序规则1)。
在图24~图27中,举例说明了多边形结构体序列的Y排序处理,同样的处理也可在精灵结构体序列的Y排序处理中进行。
如以上,根据本发明的实施方式,图形要素(多边形,精灵)的最小Y坐标按照升序(从小到大的顺序)排列,即,按照图形要素的出现顺序,从而重排每个图形要素的结构体实例(排序)。此外,在1次绘制中使用的结构体实例被存储在循环缓冲器中,一直再利用到绘制对象行的Y坐标超过该结构体实例的最大Y坐标(对于多边形为3顶点的Y坐标中最大的Y坐标,对于精灵为4顶点的Y坐标中最大的Y坐标)。
因此,只要顺次读出排序后的结构体实例,进行绘制处理,不需要每 次绘制时从全部的结构体实例中检索当时应绘制的结构体实例的处理,可实现处理的高速化。以上的结果,不一定需要实装存储1帧以上的图像的大容量的缓冲器(帧缓冲器等),即使实装容量小的缓冲器(行缓冲器,绘制不满1行的像素的像素缓冲器等),也可显示组合了很多图像要素的三维图像。
根据一般的技术,想要在行缓冲器或像素缓冲器中进行绘制的话,必需每1行地或每所定数量像素地从全部结构体实例中检索绘制对象的结构体实例,但是在本实施方式中,由YSU19预先按照最小Y坐标的升序(即图形要素的出现顺序)进行排序,因此,不需要这样的检索处理。此外,因为进行这样的检索处理,组合很多图形要素的三维图像的显示变得困难。顺便说一下,实装帧缓冲器时,可存储1帧的图像,最初不需要这样的检索处理,可按照深度值从大到小的顺序进行绘制。
此外,根据本发明的实施方式,为了向行缓冲器LB1或LB2中写入新的像素信息(新的像素的绘制),在结构体实例可再利用的情况下,该结构体实例被存储在循环缓冲器110中。因此,每进行使用相同结构体实例的新的像素的绘制时,不要从存储了排序后的全部的结构体实例的主RAM25中反复读出相同结构体实例的处理,可实现处理的高速化。
此外,设置深度比较器112,判定按照YSU19重排的顺序新读入的结构体实例和用于再利用的、循环缓冲器110中存储的结构体实例的绘制顺序(即,基于该些结构体实例的像素的绘制顺序)。因此,判定结束后,只要向循环缓冲器110发送可再利用的结构体实例并按顺序存储,在循环缓冲器110中对于可再利用的结构体实例就可按照适当的顺序(即,深度值从大到小的顺序)存储结构体实例。这样,在循环缓冲器110中,对于可再利用的结构体实例,按照适当的绘制顺序被存储,进一步判定其与按照YSU19重排的顺序新读出的结构体实例之间的绘制顺序,因此按照经常适合的绘制顺序的(即,深度值从大到小的顺序)绘制成为可能。
进一步地,根据本发明的实施方式,在显示多个图形要素的情况下,该多个图形要素的最小Y坐标相同时,适用于排序规则2,在构成屏幕的 隔行中,按照深度值的降序(从大到小的顺序)排列结构体实例。因此,在各行中,基于结构体实例的图形要素按照深度值从大到小的顺序被绘制。
这里,按照最小Y坐标从小到大的顺序排序结构体实例(排序规则1),对于最小Y坐标相同的按照深度值从大到小的顺序排序时(排序规则2)时,即,在只按照排序规则1及2的显示起始行的绘制中,不一定保证都是按照深度值从大到小的顺序的绘制。
但是,在本实施方式中,多个图形要素包含应在屏幕的起始行显示的像素时,适用于规则3,与该些最小Y坐标没有关系,即,视为该些最小Y坐标相同,按照深度值降序的顺序排列结构体实例。因此,即使在起始行,基于结构体实例的图形要素按照深度值从大到小的顺序被绘制。
以上的结果是,在全行中,图形要素一定按照深度值从大到小的顺序被绘制,因此可适当地进行半透明合成。原因是半透明的图形要素的绘制色依存于位于该图形要素的靠里的图形要素的绘制色,因此需要按照从里向外的顺序绘制图形要素。
进一步,根据本实施方式,设置有预取存储器108,该预取存储器108是按照YSU19排序的顺序的结构体实例的输入时间和对深度比较器112的结构体实例的输出时间的缓冲机构。这样,削减了RPU9对按照YSU19排序的顺序的结构体实例的输入的等待时间。
进一步,根据本实施方式,因实装了行缓冲器LB1,LB2,比使用帧缓冲器时,可降低成本,此外,比使用存储不满1行的像素数的像素数据的像素缓冲器时,可用简单的电路构成(简单的控制)实现控制。
进一步,根据本实施方式,多边形结构体实例和精灵结构体实例个别进行排序,因此多边形结构体实例及精灵结构提实例的形式及大小不同时也可容易的进行排序,提高了存储结构体实例的存储器区域的使用效率。
这样,即使在多边形结构体实例及精灵结构体实例独立被排序时,通过设置归并排序器106,在绘制处理前将多边形结构体实例群及精灵结构提实例群归并排序的适当的绘制处理成为可能。
进一步,根据本实施方式,不仅对应非隔行扫描,还对应隔行扫描。具体如下。
通过隔行扫描显示图像时,最小Y坐标表示跳越扫描的被跳越的行的结构体实例和最小Y坐标表示绘制对象的行的结构体实例,在显示对象行的绘制处理中都被读出。因此,视该些结构体实例的显示的最小Y坐标为相同的值,通过按照深度值从大到小的顺序进行排序,即使隔行扫描的情况也能保证按照深度值从大到小的顺序进行绘制处理。因此,设置在奇数场显示时和在偶数场显示时的进行不同排序的排序规则4。
以上的结果是,不仅在进行非隔行扫描显示,在进行隔行扫描显示时,也是按照深度值从大的开始绘制,因此可实现适当的半透明合成。
进一步,根据本实施方式,YSU19从排序中位次高的开始每确定1个结构体实例,当时就向RPU9输出脉冲PPL,SPL。因此,YSU9不用等全部结构体实例的排序的完成,就可逐次读入结构体实例。进一步地,在之前的垂直消隐期间或该场显示中开始执行对显示中的场的各结构体实例的排序,为排序前的演算创造了充分的富余,确保了充分的时间。
特别是,在上述模式2中,在垂直消隐期间的开始后执行排序,为排序前的演算创造了充分的富余,确保了充分的时间。(参照图9(A))。
进一步,根据本实施方式,YSU19实装的排序技法为堆排序,因此,1个1个确定结构体实例的排序结果,每次确定排序结果时,可容易地实现输出脉冲PPL,SPL。此外,也减少了全部结构体实例排序所需要的时间的差别。
进一步,根据本实施方式,在排序规则1~4中,以对象坐标为最小Y坐标。这样,对于全部的图形要素,可以以相同的条件排序,因此可以按照正确的绘制顺序进行绘制。
本发明不仅限于上述实施方式,在不脱离该要旨的范围内,可有各种实施方式,例如,可进行以下变形。
(1)在上述说明中,由色彩混合器132进行半透明合成,因此在各行中,图形要素(多边形,精灵)从深度值大的开始先绘制。但是不进行 半透明合成时,最好从深度值小的开始先绘制。原因是,通过深度值越小,越先绘制应靠近眼前显示的图形要素,因绘制能力和在1行绘制的图形要素的数量过多等的原因,假设应在1行绘制的全部的图形要素的绘制赶不上显示时,与从深度值大,应靠里显示的图形要素开始先绘制的情况比较,其显示后的视觉印象变好。此外,通过从深度值小的图形要素开始绘制,对于应靠里显示的图形要素,对于已经与被绘制的图形要素重合的部分,不需要绘制,可实现处理的高速化。
(2)在上述说明中,为了绘制,在RPU9内设置可存储屏幕的1行的数据的行缓冲器LB1,LB2。但是,也可在RPU9内设置存储比1行少的像素数的数据的2个像素缓冲器。此外,还可在RPU9内设置可存储K(K是2以上的整数)行的数据的2个缓冲器。
(3)在上述说明中,在RPU9中,采用双缓冲器,但是也可采用单缓冲器的方式,还可采用使用3个以上的缓冲器的方式。
(4)在上述说明中,列举了预取缓冲器108的存储容量与循环缓冲器110的存储容量相同的例子,但是也可不同。
(5)在上述说明中,YSU19每确定1个多边形结构体实例的排序,就输出脉冲PPL,但是也可每确定所定数的多边形结构体实例的排序时,输出脉冲PPL。对于脉冲SPL也相同。
(6)在上述说明中,纹理数据的颜色的指定,采用使用色彩调色板的间接指定方法,也可采用直接指定各像素的颜色的直接指定方式。
以上,通过实施例详细说明了本发明,但是对于本领域的技术人员,本发明明显不限定于本申请中说明的实施例。本发明在不脱离权利要求的记述所确定的本发明的思想及范围的情况下可进行修正和变更方式进行实施。因此,本申请的记述是以例示为目的的记述,没有对发明进行限制的意思。
Claims (30)
1.一种在分别由多个像素构成的平行的多个行在与该行垂直的方向排列构成的屏幕上、按照包含多角形的图形要素的每个图形要素的显示信息、进行显示由上述图形要素的组合组成的屏幕图像的绘制的绘制装置,其具备
按照升序或降序排列上述显示信息中包含的、表示与上述图形要素的上述行垂直的方向的位置的坐标,从而重排上述每个图形要素的上述显示信息的排序单元;
按照顺序读出上述排序单元重排的上述显示信息,再按照读出的上述显示信息,执行对应的上述图形要素的绘制的绘制单元;
上述绘制单元包含
第1缓冲器,其能存储构成上述屏幕的上述像素中的第1所定数量的像素信息,为了显示上述屏幕图像,输出存储的上述像素信息,在输出的上述像素信息被存储的位置,存储用于显示上述屏幕图像的新的像素信息;
第2缓冲器,其能存储第2所定数量的上述图形要素的上述显示信息,基于上述显示信息的上述像素信息被存储在上述第1缓冲器后,为了将基于该显示信息的其他的像素信息存储在上述第1缓冲器中,在该显示信息能再利用时,按照再利用被传送的顺序,存储该显示信息,在上述第1缓冲器存储上述新的像素信息的期间开始时,按照存储的顺序输出上述显示信息;
比较单元,其比较按照上述排序单元重排的顺序被读出的上述显示信息中的、用于生成上述期间开始时存储在上述第1缓冲器的上述新的像素信息的上述显示信息中包含的显示深度信息和从上述第2缓冲器被输出的上述显示信息中包含的显示深度信息,遵循预先设定的规则,选择其中1个上述显示信息,先输出;
写入单元,其按照从上述比较单元输出的上述显示信息生成上述像素信息,再将上述生成的像素信息作为上述新的像素信息写入到上述第1缓冲器。
2.根据权利要求1所述的绘制装置,其特征在于,在显示多个上述图形要素的情况下,该多个图形要素的上述坐标相同时,上述排序单元对于该多个图形要素,按照上述显示信息中包含的显示深度信息表示的显示深度的升序或降序排列上述显示信息。
3.根据权利要求2所述的绘制装置,其特征在于,多个上述图形要素包含应在上述屏幕的起始行显示的像素时,上述排序单元对该多个图形要素,与上述坐标的大小没有关系,而是按照上述显示深度的升序或降序排列上述显示信息。
4.根据权利要求1所述的绘制装置,其特征在于,上述排序单元每次完成所定数量的上述图形要素的上述显示信息的重排后,就将其通知给上述绘制单元,
上述绘制单元接收来自上述排序单元的上述通知,顺次读出重排完成的上述显示信息。
5.根据权利要求4所述的绘制装置,其特征在于,上述排序单元所重排的所定数量的上述图形要素的上述显示信息为1个上述图形要素的上述显示信息。
6.根据权利要求1所述的绘制装置,其特征在于,上述绘制单元进一步还包含
第3缓冲器,其能存储第3所定数量的上述图形要素的上述显示信息,按照被读出的顺序存储按照上述排序单元重排的顺序被读出的上述显示信息,按照被存储的顺序输出用于生成上述期间开始时存储在上述第1缓冲器的上述新的像素信息的上述显示信息;
上述比较单元比较从上述第3缓冲器输出的上述显示信息中包含的显示深度信息和按照再利用被发送的顺序存储的、从上述第2缓冲器输出的上述显示信息中包含的显示深度信息,遵循上述设定的规则,选择1个上述显示信息先输出。
7.根据权利要求1所述的绘制装置,其特征在于,上述预定的规则选择上述比较结果中的、包含表示大的上述显示深度的上述显示深度信息的上述显示信息。
8.根据权利要求1所述的绘制装置,其特征在于,上述排序单元执行重排时的上述图形要素的上述坐标为上述图形要素的顶点坐标,为最大坐标或最小坐标。
9.根据权利要求1所述的绘制装置,其特征在于,上述第1缓冲器为存储构成至少1个上述行的多个上述像素信息的缓冲器。
10.根据权利要求1所述的绘制装置,其特征在于,上述排序单元通过堆排序执行上述显示信息的重排。
11.根据权利要求1所述的绘制装置,其特征在于,
上述排序单元独立执行显示作为上述图形要素的多边形的上述显示信息和显示作为上述图形要素的精灵的上述显示信息的上述重排;
所述精灵为与屏幕平行的矩形图形要素。
12.根据权利要求11所述的绘制装置,其特征在于,
上述绘制单元进一步包含以上述排序单元的重排的规则为基准归并排序上述排序单元重排的上述多边形的上述显示信息和上述排序单元重排的上述精灵的上述显示信息的归并排序单元。
13.一种在分别由多个像素构成的平行的多个行在与该行垂直的方向排列构成的屏幕上、按照包含多角形的图形要素的每个图形要素的显示信息、进行显示由上述图形要素的组合组成的屏幕图像的绘制的绘制装置,其具备
为了显示偶数场,遵循第1规则重排每个上述图形要素的显示信息,且为了显示奇数场,遵循第2规则重排每个上述图形要素的显示信息的排序单元;
显示上述奇数场时,为了该显示,按照顺序读出上述排序单元重排的上述显示信息,按照读出的上述显示信息,执行对应的上述图形要素的绘制,且,显示上述偶数场时,为了该显示,按照顺序读出上述排序单元重排的上述显示信息,根据读出的上述显示信息,执行对应的上述图形要素的绘制的绘制单元;
上述第1规则为,按照升序或降序排列上述显示信息中包含的、表示与上述图形要素的上述行垂直的方向的位置的坐标,从而重排每个上述图形要素的上述显示信息时,对于上述坐标表示扫描的奇数行或其前1行的偶数行的上述图形要素,当作该图形要素的上述坐标相同,按照上述显示信息中包含的显示深度信息表示的显示深度的升序或降序排列上述显示信息;
上述第2规则为,按照升序或降序排列上述显示信息中包含的、上述图形要素的上述坐标,重排每个上述图形要素的上述显示信息时,对于上述坐标表示扫描的偶数行或其前1行的奇数行的上述图形要素,当作上述坐标相同,按照上述显示信息中包含的显示深度信息表示的显示深度的升序或降序排列上述显示信息;
上述绘制单元包含
第1缓冲器,其能存储构成上述屏幕的上述像素中的第1所定数量的像素信息,为了显示上述屏幕图像,输出存储的上述像素信息,在输出的上述像素信息被存储的位置,存储显示上述屏幕图像的新的像素信息;
第2缓冲器,其能存储第2所定数量的上述图形要素的上述显示信息,在基于上述显示信息的上述像素信息被存储在上述第1缓冲器后,为了将基于该显示信息的其他的像素信息存储在上述第1缓冲器中,该显示信息能再利用时,按照再利用被传送的顺序,存储该显示信息,在上述第1缓冲器存储上述新的像素信息的期间开始时,按照存储的顺序输出上述显示信息;
比较单元,其在显示上述奇数场时,为了该显示,比较按照上述排序单元重排的顺序被读出的上述显示信息中的、用于生成上述期间开始时存储在上述第1缓冲器的上述新的像素信息的上述显示信息中包含的显示深度信息,和从上述第2缓冲器被输出的上述显示信息中包含的显示深度信息,遵循预先设定的规则,选择其中1个上述显示信息,先输出,在显示上述偶数场时,为了该显示,比较按照上述排序单元重排的顺序被读出的上述显示信息中的、用于生成上述期间开始时存储在上述第1缓冲器的上述新的像素信息的上述显示信息中包含的显示深度信息,和从上述第2缓冲器被输出的上述显示信息中包含的显示深度信息,遵循预先设定的规则,选择其中1个上述显示信息,先输出;
写入单元,其按照从上述比较单元输出的上述显示信息生成上述像素信息,再将上述生成的像素信息作为上述新的像素信息写入上述第1缓冲器。
14.根据权利要求13所述的绘制装置,其特征在于,多个上述图形要素包含应在上述屏幕的起始行显示的像素时,上述排序单元不适用上述第1规则及上述第2规则,对该多个图形要素,按照上述显示深度的升序或降序排列上述显示信息。
15.根据权利要求13所述的绘制装置,其特征在于,上述排序单元每次完成所定数量的上述图形要素的上述显示信息的重排后,就将其通知给上述绘制单元,且,在显示该奇数场之前的垂直消隐期间开始后开始执行显示上述奇数场的上述重排,在显示该偶数场之前的垂直消隐期间开始后开始执行显示上述偶数场的上述重排。
16.一种在分别由多个像素构成的平行的多个行在与该行垂直的方向排列构成的屏幕上、按照包含多角形的图形要素的每个图形要素的显示信息、进行显示由上述图形要素的组合组成的屏幕图像的绘制的绘制方法,其具备
按照升序或降序排列上述显示信息中包含的、表示与上述图形要素的上述行垂直的方向的位置的坐标,从而重排上述每个图形要素的上述显示信息的排序步骤;
按照顺序读出上述排序步骤重排的上述显示信息,再按照读出的上述显示信息,执行对应的上述图形要素的绘制的绘制步骤;
并且,上述绘制步骤包含
基于上述显示信息的上述像素信息被存储在能存储构成上述屏幕的上述像素中的第1所定数量的像素信息的第1缓冲器中后,为了将基于该显示信息的其他像素信息存储在上述第1缓冲器中,该显示信息能再利用时,按照再利用被传送的顺序,将该显示信息存储在能存储第2所定数量的上述图形要素的上述显示信息的第2缓冲器中的步骤;
在将存储在上述第1缓冲器的上述像素信息为了显示上述屏幕图像而被输出后的新存储的像素信息存储在上述第1缓冲器中的期间开始时,按照存储的顺序从上述第2缓冲器输出上述显示信息的输出步骤;
比较按照上述排序步骤中的重排的顺序被读出的上述显示信息中的、用于生成上述期间开始时存储在上述第1缓冲器的上述新的像素信息的上述显示信息中包含的显示深度信息和从上述第2缓冲器被输出的上述显示信息中包含的显示深度信息,遵循预先设定的规则,选择其中1个上述显示信息,先输出的比较步骤;
按照在上述比较步骤中输出的上述显示信息生成上述像素信息,再将上述生成的像素信息作为上述新的像素信息写入到上述第1缓冲器的写入步骤。
17.根据权利要求16所述的绘制方法,其特征在于,
在显示多个上述图形要素的情况下,该多个图形要素的上述坐标相同时,上述排序步骤对于该多个图形要素,按照上述显示信息中包含的显示深度信息表示的显示深度的升序或降序排列上述显示信息。
18.根据权利要求17所述的绘制方法,其特征在于,多个上述图形要素包含应在上述屏幕的起始行显示的像素时,上述排序步骤对该多个图形要素,与上述坐标的大小没有关系,而是按照上述显示深度的升序或降序排列上述显示信息。
19.根据权利要求16所述的绘制方法,其特征在于,在上述排序步骤中,每次完成所定数量的上述图形要素的上述显示信息的重排后,就将其进行通知,
在上述绘制步骤中,接收上述排序步骤的上述通知,顺次读出重排完成的上述显示信息。
20.根据权利要求19所述的绘制方法,其特征在于,上述排序步骤中所重排的所定数量的上述图形要素的上述显示信息为1个上述图形要素的上述显示信息。
21.根据权利要求16所述的绘制方法,其特征在于,上述绘制步骤进一步还包含
按照被读出的顺序将按照上述排序步骤重排的顺序被读出的上述显示信息存储在能存储第3所定数量的上述图形要素的上述显示信息的第3缓冲器中的存储步骤;
从上述第3缓冲器中按照被存储的顺序输出用于生成上述期间开始时存储在上述第1缓冲器的上述新的像素信息的上述显示信息的输出步骤;
在上述比较步骤中,比较从上述第3缓冲器输出的上述显示信息中包含的显示深度信息和按照再利用被发送的顺序存储的、从上述第2缓冲器输出的上述显示信息中包含的显示深度信息,遵循上述设定的规则,选择1个上述显示信息先输出。
22.根据权利要求16所述的绘制方法,其特征在于,上述预定的规则选择上述比较结果中的、包含表示大的上述显示深度的上述显示深度信息的上述显示信息。
23.根据权利要求16所述的绘制方法,其特征在于,在上述排序步骤中执行重排时的上述图形要素的上述坐标为上述图形要素的顶点坐标,为最大坐标或最小坐标。
24.根据权利要求16所述的绘制方法,其特征在于,上述第1缓冲器为存储构成至少1个上述行的多个上述像素信息的缓冲器。
25.根据权利要求16所述的绘制方法,其特征在于,在上述排序步骤中,通过堆排序执行上述显示信息的重排。
26.根据权利要求16所述的绘制方法,其特征在于,在上述排序步骤中,独立执行显示作为上述图形要素的多边形的上述显示信息和显示作为上述图形要素的精灵的上述显示信息的上述重排;
所述精灵为与屏幕平行的矩形图形要素。
27.根据权利要求26所述的绘制方法,其特征在于,上述绘制步骤进一步包含
以上述排序步骤的重排的规则为基准归并排序上述排序步骤中重排的上述多边形的上述显示信息和上述排序步骤中重排的上述精灵的上述显示信息的步骤。
28.一种在分别由多个像素构成的平行的多个行在与该行垂直的方向排列构成的屏幕上、按照包含多角形的图形要素的每个图形要素的显示信息、进行显示由上述图形要素的组合组成的屏幕图像的绘制的绘制方法,其具备
为了显示偶数场,遵循第1规则重排每个上述图形要素的显示信息的排序步骤;
为了显示奇数场,遵循第2规则重排每个上述图形要素的显示信息的排序步骤;
显示上述奇数场时,为了该显示,按照顺序读出上述排序步骤中重排的上述显示信息,按照读出的上述显示信息,执行对应的上述图形要素的绘制的绘制步骤;
显示上述偶数场时,为了该显示,按照顺序读出上述排序步骤中重排的上述显示信息,按照读出的上述显示信息,执行对应的上述图形要素的绘制的绘制步骤;
上述第1规则为,按照升序或降序排列上述显示信息中包含的、表示与上述图形要素的上述行垂直的方向的位置的坐标,从而重排每个上述图形要素的上述显示信息时,对于上述坐标表示扫描的奇数行或其前1行的偶数行的上述图形要素,当作该图形要素的上述坐标相同,按照上述显示信息中包含的显示深度信息表示的显示深度的升序或降序排列上述显示信息;
上述第2规则为,按照升序或降序排列上述显示信息中包含的、上述图形要素的上述坐标,从而重排每个上述图形要素的上述显示信息时,对于上述坐标表示扫描的偶数行或其前1行的奇数行的上述图形要素,当作上述坐标相同,按照上述显示信息中包含的显示深度信息表示的显示深度的升序或降序排列上述显示信息;
上述各绘制步骤分别包含
基于上述显示信息的上述像素信息被存储在能存储构成上述屏幕的上述像素中的第1所定数量的像素信息的第1缓冲器中后,为了将基于该显示信息的其他像素信息存储在上述第1缓冲器中,该显示信息能再利用时,按照再利用被传送的顺序,将该显示信息存储在能存储第2所定数量的上述图形要素的上述显示信息的第2缓冲器中的步骤;
在将存储在上述第1缓冲器的上述像素信息为了显示上述屏幕图像而被输出后的新存储的像素信息存储在上述第1缓冲器中的期间开始时,按照存储的顺序从上述第2缓冲器输出上述显示信息的输出步骤;
上述奇数场的上述绘制步骤进一步包含
比较为了显示上述奇数场的按照上述排序步骤中重排的顺序被读出的上述显示信息中的、用于生成上述期间开始时存储在上述第1缓冲器的上述新的像素信息的上述显示信息中包含的显示深度信息,和从上述第2缓冲器被输出的上述显示信息中包含的显示深度信息,遵循预先设定的规则,选择其中1个上述显示信息,先输出的比较步骤;
按照上述奇数场的上述比较步骤输出的上述显示信息生成上述像素信息,再将上述生成的像素信息作为上述新的像素信息写入上述第1缓冲器的写入步骤;
上述偶数场的上述绘制步骤进一步包含
比较为了显示上述偶数场的按照上述排序步骤重排的顺序被读出的上述显示信息中的、用于生成上述期间开始时存储在上述第1缓冲器的上述新的像素信息的上述显示信息中包含的显示深度信息,和从上述第2缓冲器被输出的上述显示信息中包含的显示深度信息,遵循预先设定的规则,选择其中1个上述显示信息,先输出的比较步骤;
按照上述偶数场的上述比较步骤输出的上述显示信息生成上述像素信息,再将上述生成的像素信息作为上述新的像素信息写入上述第1缓冲器的写入步骤。
29.根据权利要求28所述的绘制方法,其特征在于,多个上述图形要素包含应在上述屏幕的起始行显示的像素时,在上述奇数场的上述排序步骤中,不适用上述第1规则,在上述偶数场的上述排序步骤中,不适用上述第2规则,在上述各排序步骤中,对该多个图形要素,按照上述显示深度的升序或降序排列上述显示信息。
30.根据权利要求28所述的绘制方法,其特征在于,在各上述排序步骤中,每次完成所定数量的上述图形要素的上述显示信息的重排后,就将其进行通知,
在上述奇数场的上述排序步骤中,在显示该奇数场之前的垂直消隐期间开始后开始执行上述重排,
在上述偶数场的上述排序步骤中,在显示该偶数场之前的垂直消隐期间开始后开始执行上述重排。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP000089/2005 | 2005-01-04 | ||
JP2005000089 | 2005-01-04 | ||
PCT/JP2005/024214 WO2006073131A1 (ja) | 2005-01-04 | 2005-12-26 | 描画装置及び描画方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101116112A CN101116112A (zh) | 2008-01-30 |
CN101116112B true CN101116112B (zh) | 2010-12-29 |
Family
ID=36647610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800480027A Expired - Fee Related CN101116112B (zh) | 2005-01-04 | 2005-12-26 | 绘制装置及绘制方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20080273030A1 (zh) |
EP (1) | EP1847965A4 (zh) |
JP (2) | JP4725741B2 (zh) |
KR (1) | KR20070095984A (zh) |
CN (1) | CN101116112B (zh) |
TW (1) | TW200636612A (zh) |
WO (1) | WO2006073131A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2666622A1 (en) * | 2006-10-20 | 2008-04-24 | Nokia Corporation | Generic indication of adaptation paths for scalable multimedia |
JP5320334B2 (ja) * | 2009-09-24 | 2013-10-23 | 株式会社東芝 | 画像処理装置及びプログラム |
CN102063733B (zh) * | 2009-11-18 | 2015-06-17 | 新奥特(北京)视频技术有限公司 | 一种深度相同的z消隐方法和装置 |
CN102063732B (zh) * | 2009-11-18 | 2015-05-27 | 新奥特(北京)视频技术有限公司 | 一种背景图像的呈现方法和装置 |
US8570336B2 (en) * | 2009-12-08 | 2013-10-29 | Intel Corporation | Texture unit for general purpose computing |
CN101923468A (zh) * | 2010-08-13 | 2010-12-22 | 中兴通讯股份有限公司 | 一种重绘微件的方法及装置 |
JP5642804B2 (ja) * | 2010-12-02 | 2014-12-17 | デジタルプロセス株式会社 | 表示処理方法及び装置 |
US20130106887A1 (en) * | 2011-10-31 | 2013-05-02 | Christopher Tremblay | Texture generation using a transformation matrix |
CN103065349B (zh) * | 2012-12-31 | 2016-01-27 | 艾迪普(北京)文化科技股份有限公司 | 一种数据渲染方法及装置 |
JP6175997B2 (ja) | 2013-08-30 | 2017-08-09 | 株式会社ソシオネクスト | 画像処理方法、および画像処理装置 |
US9367948B2 (en) * | 2013-11-14 | 2016-06-14 | Intel Corporation | Flexible filter logic for multi-mode filtering of graphical texture data |
CN104240302B (zh) | 2014-09-03 | 2017-12-15 | 青岛海信移动通信技术股份有限公司 | 一种图片显示方法及设备 |
CN105488049A (zh) * | 2014-09-17 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 网页图像解析方法、装置及浏览器 |
CN104504755B (zh) * | 2014-12-30 | 2017-04-19 | 华中科技大学 | 一种山体中分布式地下设施温度场仿真方法 |
US20160322031A1 (en) * | 2015-04-28 | 2016-11-03 | Mediatek Singapore Pte. Ltd. | Cost-Effective In-Bin Primitive Pre-Ordering In GPU |
US9990690B2 (en) * | 2015-09-21 | 2018-06-05 | Qualcomm Incorporated | Efficient display processing with pre-fetching |
FR3047378B1 (fr) * | 2016-01-29 | 2018-05-18 | STMicroelectronics (Alps) SAS | Circuit de fourniture d'un signal video analogique |
WO2022068326A1 (zh) * | 2020-09-30 | 2022-04-07 | 华为技术有限公司 | 一种图像帧预测的方法及电子设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2028701C (en) * | 1989-11-15 | 2001-04-24 | Yitshak Birk | Method and apparatus for pipelined parallel rasterization |
JPH0785308A (ja) * | 1993-07-02 | 1995-03-31 | Sony Corp | 画像表示方法 |
WO1997005576A1 (en) * | 1995-07-26 | 1997-02-13 | Silicon Engines, Inc. | Method and apparatus for span and subspan sorting rendering system |
US5815158A (en) * | 1995-12-29 | 1998-09-29 | Lucent Technologies | Method and apparatus for viewing large ensembles of three-dimensional objects on a computer screen |
JP3481382B2 (ja) * | 1996-03-07 | 2003-12-22 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理装置 |
US6234901B1 (en) * | 1996-11-22 | 2001-05-22 | Kabushiki Kaisha Sega Enterprises | Game device, picture data and flare forming method |
JP3415416B2 (ja) * | 1996-11-22 | 2003-06-09 | 株式会社セガ | ゲーム装置、画像データの形成方法及び媒体 |
JP3785709B2 (ja) * | 1996-12-13 | 2006-06-14 | ソニー株式会社 | 形状データの近似化方法及び描画装置 |
JP3133299B2 (ja) * | 1999-03-12 | 2001-02-05 | 株式会社スクウェア | ゲーム装置、動画像表示方法及び記録媒体 |
JP4332934B2 (ja) * | 1999-06-17 | 2009-09-16 | 株式会社セガ | アンチエイリアシング方法及びこれを用いた画像処理装置 |
US6478600B1 (en) * | 2001-12-24 | 2002-11-12 | Hon Hai Precision Ind. Co., Ltd. | SMT contact for a ZIF socket |
-
2005
- 2005-12-26 KR KR1020077017336A patent/KR20070095984A/ko not_active Application Discontinuation
- 2005-12-26 CN CN2005800480027A patent/CN101116112B/zh not_active Expired - Fee Related
- 2005-12-26 EP EP05822791A patent/EP1847965A4/en not_active Withdrawn
- 2005-12-26 JP JP2006550871A patent/JP4725741B2/ja not_active Expired - Fee Related
- 2005-12-26 WO PCT/JP2005/024214 patent/WO2006073131A1/ja active Application Filing
-
2006
- 2006-01-03 TW TW095100131A patent/TW200636612A/zh unknown
-
2008
- 2008-04-23 US US12/108,393 patent/US20080273030A1/en not_active Abandoned
-
2011
- 2011-03-07 JP JP2011049508A patent/JP2011159306A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2011159306A (ja) | 2011-08-18 |
US20080273030A1 (en) | 2008-11-06 |
JP4725741B2 (ja) | 2011-07-13 |
WO2006073131A1 (ja) | 2006-07-13 |
TW200636612A (en) | 2006-10-16 |
EP1847965A1 (en) | 2007-10-24 |
EP1847965A4 (en) | 2009-08-12 |
JPWO2006073131A1 (ja) | 2008-06-12 |
KR20070095984A (ko) | 2007-10-01 |
CN101116112A (zh) | 2008-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101116112B (zh) | 绘制装置及绘制方法 | |
US6333747B1 (en) | Image synthesizing system with texture mapping | |
US4829295A (en) | Image synthesizer | |
JP4013989B2 (ja) | 映像信号処理装置、仮想現実感生成システム | |
US5793376A (en) | Method of producing image data, image data processing apparatus, and recording medium | |
KR100411534B1 (ko) | 영상데이터생성방법,생성장치및생성회로,및게임재생장치 | |
JP3240447B2 (ja) | 画像処理装置 | |
JP4631918B2 (ja) | 映像信号処理装置 | |
WO2002009035A1 (en) | Parallel z-buffer architecture and transparency | |
US20090278845A1 (en) | Image generating device, texture mapping device, image processing device, and texture storing method | |
US8698830B2 (en) | Image processing apparatus and method for texture-mapping an image onto a computer graphics image | |
JP2003515766A (ja) | ハンドヘルドlcd素子に高い色解像度を表示するための方法および装置 | |
KR910009102B1 (ko) | 화상합성 장치 | |
KR20040004393A (ko) | 고속의 범프 매핑을 실현하기 위한 화상 처리 방법, 화상처리 장치, 컴퓨터 프로그램 및 반도체 디바이스 | |
MXPA02002643A (es) | Sistema, dispositivo, metodo y programa de computo para procesar imagenes. | |
JPH09245191A (ja) | 透明度変換方法及びその装置、画像処理装置 | |
JP4631878B2 (ja) | 映像信号処理装置、仮想現実感生成システム | |
JP3556517B2 (ja) | 3次元画像処理装置 | |
JP3409987B2 (ja) | 3次元画像生成方法および装置とこの方法および装置を用いた3次元画像処理装置 | |
JPH0668272A (ja) | 疑似3次元画像合成装置 | |
JP2011159305A (ja) | 描画装置及び描画方法 | |
JP2774874B2 (ja) | 画像合成装置及び画像合成方法 | |
JPWO2007052420A1 (ja) | 画像生成装置 | |
JP2888640B2 (ja) | 画像合成装置及び画像合成方法 | |
JP3680351B2 (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101229 Termination date: 20111226 |