CN1170171A - 带三维图形和数字音频信号处理协处理器的视频游戏系统 - Google Patents

带三维图形和数字音频信号处理协处理器的视频游戏系统 Download PDF

Info

Publication number
CN1170171A
CN1170171A CN96121757A CN96121757A CN1170171A CN 1170171 A CN1170171 A CN 1170171A CN 96121757 A CN96121757 A CN 96121757A CN 96121757 A CN96121757 A CN 96121757A CN 1170171 A CN1170171 A CN 1170171A
Authority
CN
China
Prior art keywords
texture
field
color
explain
pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN96121757A
Other languages
English (en)
Inventor
蒂莫西·J·范霍克
卡罗尔·菲利普·戈赛特
内森·F·普利
安东尼·P·德洛利雅
斯蒂芬·J·谢尔帕德
拜伦谢泼德
罗伯特·乔丹·穆尔
约翰普林森
竹田玄洋
哈罗德·斯蒂芬·安德森
杰弗利·钱德勒·道蒂
加藤周平
霍华德·浩·陈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Chart Ltd By Share Ltd
Nintendo Co Ltd
Original Assignee
Silicon Chart Ltd By Share Ltd
Nintendo Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Silicon Chart Ltd By Share Ltd, Nintendo Co Ltd filed Critical Silicon Chart Ltd By Share Ltd
Publication of CN1170171A publication Critical patent/CN1170171A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/203Image generating hardware
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images

Abstract

一种低成本高性能的三维图形系统,该系统能模拟三维世界并将模型投影到根据可变视点选中的二维观察平面上。操作用户输入控制装置可实时交互地改变视点。系统能在彩电屏幕上快速产生相应变化的图像。系统使用户在虚拟的三维世界中实时相互作用。最佳特性的装置/结构为视频游戏和其他图形应用提供了高质量快速移动的三维图形和数字立体声。系统应用灵活,功能强,但价位在大多数消费者的承受范围内。

Description

带三维图形和数字音频信号处理协处理器的视频游戏系统
本发明涉及低成本的视频游戏系统。尤其,涉及一种能模拟三维世界并将该模型投影到根据可变视点选择的二维观察平面上的视频游戏系统。
可见图像燃起了人类的想象。日落时实际看到的、夜里梦见的、阅读小说时脑海中描绘的图像—所有这些可记忆的场景都是由可视图像构成的。在整个历史长河中,人们曾尝试用铅笔、画笔或录像带等来记录这些图像。但是,只有随着计算机的出现,我们才开始创造与现实世界或想象中同样生动、细致和真实的图像。
基于计算机的家庭视频游戏机,例如任天堂娱乐系统和超级任天堂娱乐系统,已相当成功,因为它们能交互式地产生激动人心的视频图形。但是,如果没有辅助的附加硬件,这些现有的视频图形系统一般只能进行二维操作,用类似于在布告栏上钉平面剪纸的方式通过平面图像表现产生图形显示。尽管可用二维图形技术制作非常激动人心的游戏,但2D系统不能提供三维图形系统所能给予的真实感。
3D图形与2D图形有着根本的不同。在3D图形技术中,在三维空间里表示一个“世界”。系统允许用户在该世界内选择一个视点。系统根据被选中的视点将该世界“投影”,产生一图像。结果得到真正的具有深度和真实感的三维图形。
专家们已化了多年时间用高级计算机和高档工作站来创作难以置信的逼真的3D图像—例如,小汽车、飞机和分子等极细致的模型;如同从喷气式飞机的座舱或奥林匹克雪橇的前座看到的虚拟现实;以及“侏罗纪公园”的恐龙等。但是,在过去,用于交互产生这种图像的计算机系统价值几万美元—远远超出普通消费者的财力。
这里所述的低成本高性能3D图形系统第一次给予成千上万的游戏机玩家,而不仅仅是专家们,用一极富特征的高性能低成本系统在这些壮观的虚拟的3D世界内进行交互作用的机会。玩家能够获得真正的惊喜—胜过任何家庭计算机系统许多倍的能力、更生动逼真的3D动画、极好的图形—所有这些都以足够低的成本提供,在普通消费者的财力范围内。
以下例举了本发明系统所提供的一些优点。
—在低价位系统中逼真的交互式3D图形;
—低成本系统的最佳特征装置/结构,使用彩色电视机,以在低成本系统中提供视频游戏和其他图像应用,和/或产生特殊的屏幕效果;
—能提供高性能3D图形和数字声音处理协处理器;
—信号处理器被图形数字处理和音频信号处理共享,以在基于低成本彩色电视机的系统中获得高质量的立体声和3D图形;
—一元化RAM的方法提高了适应性;
—所有主要的系统部件可以通过共享的RAM通信;
—用于补偿狭窄的主存储器总线宽度的技术/结构;
—可将来自存储器件(例如,便携式存储器盒)的可执行码装入公共RAM中,并通过协处理器的存储器存取/仲裁电路,用主处理器进行存取;
—可装图形协处理器的微码存储器从便携式存储媒体中接收微码,以提供附加的灵活性并简化兼容性问题;
—通过执行“引导ROM”指令装入微码;
—用最佳命令和相关格式调用协处理器内的图形和音频功能,并在图形协处理器和系统的其余部分之间提供一接口;
—协处理器寄存器装置包括特殊的硬件寄存器的定义、格式及相关功能;
—微码图形和音频结构/过程提供有效的高性能操作;
—向量单元在低成本设备(package)中为图形和音频数字处理提供最佳性能;
—流水线光栅化装置(pipelined rasterizing engine)提供每周期一个像素和每周期两个像素的模式,以在提供丰富的特征集的同时使硬件开支最低;
—低的协处理器管脚;
本发明的第一方面提供了一种用于至少产生一个由三维图形系统处理的显示模式控制命令的过程,该过程包括至少产生一个设置模式命令的步骤,而设置模式命令包含:
一命令标识符字段,该字段包括一个101111的六位二进制数值,以及
以下模式控制字段中的至少一个:
(k)原子基元模式字段,它规定了是否在读取下一个基元之前强制将一基元写入帧缓)冲器中,
(i)循环类型模式字段,它选择显示流水线循环控制模式,
(h)透视纹理允许模式字段,它有选择地允许透视纹理校正,
(g)纹理细节模式字段,它有选择地允许纹理细节处理,
(f)纹理突出允许模式字段,它有选择地突出纹理,
(e)纹理细节允许模式字段,它有选择地允许纹理详细程度处理,
(d)允许查找表模式字段,它有选择地从颜色查找表中查找纹理值,
(c)纹理查找表类型模式字段,它规定了颜色查找表中纹理单元的类型,
(b)抽样类型模式字段,它规定了如何对纹理单元进行抽样,
(a)中间纹理单元模式字段,它规定了是否应当用2×2半纹理单元内插对纹理单元进行筛选,
(Z)第一双线性内插(bilerp)模式字段,它规定了纹理筛选器是否应当把纹理单元双线性内插到流水线循环0中,
(Y)第二双线性内插模式字段,它规定了纹理筛选器是否应当把纹理单元双线性内插到流水线循环1中,
(X)纹理单元转换模式字段,它规定了是否应当对流水线循环0期间纹理筛选器输出的纹理单元进行颜色转换,
(W)色度键允许模式字段,它有选择地允许色度键起作用,
(V2)红绿蓝抖动选择模式字段,它选择红绿蓝抖动的类型,
(V1)α高抖动选择模式字段,它选择α抖动的类型,
(V)多个混合模式字,它们规定了混合器的参数,
(M)强制混合允许模式字段,它规定了是否应当强制允许混合器,
(L)α覆盖选择模式字段,它规定了是否应当用覆盖来确定像素α,
(K)覆盖乘α选择模式字段,它规定了是否应当用α乘以覆盖来确定像素α和覆盖,
(J)z模式选择模式字段,它规定了z缓冲模式,
(I)覆盖目标模式字段,它规定了覆盖目标,
(H)覆盖颜色模式字段,它规定了是否当只在覆盖溢出时更新颜色,
(G)图像读取允许模式字段,它有选择地允许对颜色和/或覆盖进行读/改/写的帧缓冲存储器进行存取,
(F)z更新允许模式字段,它根据是否允许颜色写,来有选择地允许对z缓冲器进行写操作,
(E)z比较允许模式字段,它规定了在深度比较基础上允许有条件的颜色写,
(D)去混叠允许模式字段,它用覆盖允许混合,
(C)z源选择模式字段,它在基元深度和像素深度之间进行选择,
(B)抖动α允许模式字段,它规定了是否应当在α比较中使用随机噪声,
(A)α比较允许模式字段,它在α比较的基础上允许有条件的颜色写。
前述过程还可包括用于产生一循环类型模式字段的步骤,该字段在每像素1循环模式、每像素2循环模式、复制模式和填充模式中选择一个显示流水线循环控制模式。
前述过程还可包括用于产生一纹理查找表类型模式字段的步骤,该字段在以下两者之间选择:
(1)用5位红、5位绿、5位蓝和1位α的RGBA格式将纹理单元存储在颜色查找表中,
(2)用提供8位亮度值和8位α值的亮度α格式将纹理单元存储在颜色查找表中,
前述过程还可包括用于产生一抽样类型模式字段的步骤,该步骤在以下两者之间选择:
点抽样,和
2×2阵列抽样。
前述过程还可包括用于产生一红绿蓝抖动选择模式字段的步骤,该字段在基于以下各项的抖动间选择:
(1)幻方矩阵(magic square matrix),
(2)bayer矩阵,
(3)噪声,或
(4)无抖动。
前述过程还可包括用于产生一α抖动选择模式字段的步骤,该字段根据以下各项规定抖动:
(1)预定图形(pattern),
(2)预定图形的负像(negative),
(3)噪声,或
(4)无抖动。
前述过程还可包括用于产生多个混合模式字的步骤,这些混合模式字规定了混合器参数,规定:
在流水线循环0期间,有选择地乘第一混合器输入,
在流水线循环1期间,有选择地乘第一混合器输入,
在流水线循环0期间,有选择地乘第二混合器输入,
在流水线循环1期间,有选择地乘第二混合器输入,
在流水线循环0期间,有选择地乘第三混合器输入,
在流水线循环1期间,有选择地乘第三混合器输入,
在流水线循环0期间,有选择地乘第四混合器输入,
在流水线循环1期间,有选择地乘第四混合器输入。
前述过程还可包括用于产生一覆盖目标模式字段的步骤,该字段在以下覆盖目标模式之间选择:
(1)夹紧(clamp),
(2)包裹(wrap),
(3)强制全覆盖,和
(4)保存。
前述过程还可包括用于产生一z模式选择模式字段的步骤,该字段从以下z缓冲模式中选择一个模式:
(1)不透明,
(2)相互贯穿,
(3)透明,和
(4)移画印花。
本发明的第二方面提供了一种用于至少产生一个由三维图形系统处理的三维显示模式控制命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的电路,用于至少提供一设置模式命令,设置模式命令具有:
一命令标识符字段,该字段包括一个101111的六位二进制数值,以及
以下模式控制字段中的至少一个:
(k)原子基元模式字段,它规定了是否在读取下一个基元之前强制将一基元写入帧缓冲器中,
(i)循环类型模式字段,它选择显示流水线循环控制模式,
(h)透视纹理允许模式字段,它有选择地允许透视纹理校正,
(g)纹理细节模式字段,它有选择地允许纹理细节处理,
(f)纹理突出允许模式字段,它有选择地突出纹理,
(e)纹理细节允许模式字段,它有选择地允许纹理详细程度处理,
(d)允许查找表模式字段,它有选择地从颜色查找表中查找纹理值,
(c)纹理查找表类型模式字段,它规定了颜色查找表中纹理单元的类型,
(b)抽样类型模式字段,它规定了如何对纹理单元进行抽样,
(a)中间纹理单元模式字段,它规定了是否应当用2×2半纹理单元内插对纹理单元进行筛选,
(Z)第一双线性内插模式字段,它规定了纹理筛选器是否应当把纹理单元双线性内插到流水线循环0中,
(Y)第二双线性内插模式字段,它规定了纹理筛选器是否应当把纹理单元双线性内插到流水线循环1中,
(X)纹理单元转换模式字段,它规定了是否应当对流水线循环0期间纹理筛选器输出的纹理单元进行颜色转换,
(W)色度键允许模式字段,它有选择地允许色度键起作用,
(V2)红绿蓝抖动选择模式字段,它选择红绿蓝抖动的类型,
(V1)α抖动选择模式字段,它选择α抖动的类型,
(V)多个混合模式字,它们规定了混合器的常数,
(M)强制混合允许模式字段,它规定了是否应当强制允许混合器,
(L)α覆盖选择模式字段,它规定了是否应当用覆盖来确定像素α,
(K)覆盖乘α选择模式字段,它规定了是否应当用α乘以覆盖来确定像素α和覆盖,
(J)z模式选择模式字段,它规定了z缓冲模式,
(I)覆盖目标模式字段,它规定了覆盖目标,
(H)覆盖颜色模式字段,它规定了是否当只在覆盖溢出时更新颜色,
(G)图像读取允许模式字段,它有选择地允许对颜色和/或覆盖进行读/改/写的帧缓冲存储器进行存取,
(F)z更新允许模式字段,它根据是否允许颜色写,来有选择地允许对z缓冲器进行写操作,
(E)z比较允许模式字段,它规定了在深度比较基础上允许有条件的颜色写,
(D)去混叠允许模式字段,它用覆盖允许混合,
(C)z源选择模式字段,它在基元深度和像素深度之间进行选择,
(B)抖动α允许模式字段,它规定了是否应当在α比较中使用随机噪声,
(A)α比较允许模式字段,它在α比较的基础上允许有条件的颜色写。
前述系统还可包括用于产生一循环类型模式字段的装置,该字段在每像素1循环模式、每像素2循环模式、复制模式和填充模式中选择一个显示流水线循环控制模式。
前述系统还可包括用于提供一纹理查找表类型模式字段的装置,该字段在以下两者之间选择:
(1)用5位红、5位绿、5位蓝和1位α的RGBA格式将纹理单元存储在颜色查找表中,
(2)用提供8位亮度值和8位α值的亮度α格式将纹理单元存储在颜色查找表中。
前述系统还可包括用于产生一抽样类型模式字段的电路,该字段在以下两者之间选择:
点抽样,和
2×2阵列抽样。
前述系统还可包括用于提供一红绿蓝抖动选择模式字段的电路,该字段在基于以下各项的抖动间选择:
(1)幻方矩阵,
(2)bayer矩阵,
(3)噪声,或
(4)无抖动。
前述系统还可包括用于产生一α抖动选择模式字段的装置,该字段根据以下各项规定抖动:
(1)预定图形,
(2)预定图形的负像,
(3)噪声,或
(4)无抖动。
前述系统还可包括用于产生多个混合模式字的装置,这些混合模式字规定了混合器参数,规定:
在流水线循环0期间,有选择地乘第一混合器输入,
在流水线循环1期间,有选择地乘第一混合器输入,
在流水线循环0期间,有选择地乘第二混合器输入,
在流水线循环1期间,有选择地乘第二混合器输入,
在流水线循环0期间,有选择地乘第三混合器输入,
在流水线循环1期间,有选择地乘第三混合器输入,
在流水线循环0期间,有选择地乘第四混合器输入,
在流水线循环1期间,有选择地乘第四混合器输入。
前述系统还可包括用于产生一覆盖目标模式字段的电路,该字段在以下覆盖目标模式之间选择:
(1)夹紧,
(2)包裹,
(3)强制全覆盖,和
(4)保存。
前述系统还可包括用于提供一z模式选择模式字段的电路,该字段从以下z缓冲模式中选择一个模式:
(1)不透明,
(2)相互贯穿,
(3)透明,和
(4)移画印花。
本发明的第三方面是,提供了一种在三维图形系统中用于至少解释一个设置模式命令的过程,该过程包括以下步骤:
(a)解释包括一个101111六位二进制数值的命令标识符字段,
(b)至少解释以下模式控制字段中的一个:
(k)原子基元模式字段,它规定了是否在读取下一个基元之前强制将一基元写入帧缓冲器中,
(i)循环类型模式字段,它选择显示流水线循环控制模式,
(h)透视纹理允许模式字段,它有选择地允许透视纹理校正,
(g)纹理细节模式字段,它有选择地允许纹理细节处理,
(f)纹理突出允许模式字段,它有选择地突出纹理,
(e)纹理细节允许模式字段,它有选择地允许纹理详细程度处理,
(d)允许查找表模式字段,它有选择地从颜色查找表中查找纹理值,
(c)纹理查找表类型模式字段,它规定了颜色查找表中纹理单元的类型,
(b)抽样类型模式字段,它规定了如何对纹理单元进行抽样,
(a)中间纹理单元模式字段,它规定了是否应当用2×2半纹理单元内插对纹理单元进行筛选,
(Z)第一双线性内插模式字段,它规定了纹理筛选器是否应当把纹理单元双线性内插到流水线循环0中,
(Y)第二双线性内插模式字段,它规定了纹理筛选器是否应当把纹理单元双线性内插到流水线循环1中,
(X)纹理单元转换模式字段,它规定了是否应当对流水线循环0期间纹理筛选器输出的纹理单元进行颜色彩转换,
(W)色度键允许模式字段,它有选择地允许色度键起作用,
(V2)红绿蓝抖动选择模式字段,它选择红绿蓝抖动的类型,
(V1)α抖动选择模式字段,它选择α抖动的类型,
(V)多个混合模式字,它们规定了混合器的参数,
(M)强制混合允许模式字段,它规定了是否应当强制允许混合器,
(L)α覆盖选择模式字段,它规定了是否应当用覆盖来确定像素α,
(K)覆盖乘α选择模式字段,它规定了是否应当用α乘以覆盖来确定像素α和覆盖,
(J)z模式选择模式字段,它规定了z缓冲模式,
(I)覆盖目标模式字段,它规定了覆盖目标,
(H)覆盖颜色模式字段,它规定了是否当只在覆盖溢出时更新颜色,
(G)图像读取允许模式字段,它有选择地允许对颜色和/或覆盖进行读/改/写的帧缓冲存储器进行存取,
(F)z更新允许模式字段,它根据是否允许颜色写,来有选择地允许对z缓冲器进行写操作,
(E)z比较允许模式字段,它规定了在深度比较基础上允许有条件的颜色写,
(D)去混叠允许模式字段,它用覆盖允许混合,
(C)z源选择模式字段,它在基元深度和像素深度之间进行选择,
(B)抖动α允许模式字段,它规定了是否应当在α比较中使用随机噪声,
(A)α比较允许模式字段,它在α比较的基础上有条件地进行颜色写。
(c)至少部分根据步骤(b)产生一图像。
前述过程还可包括用于解释一循环类型模式字段的步骤,该字段在每像素1循环模式、每像素2循环模式、复制模式和填充模式中选择一个显示流水线循环控制模式。
前述过程还可包括用于解释一纹理查找表类型模式字段的步骤,该字段在以下两者之间选择:
(1)用5位红、5位绿、5位蓝和1位α的RGBA格式将纹理单元存储在颜色查找表中,
(2)用提供8位亮度值和8位α值的亮度α格式将纹理单元存储在颜色查找表中,
前述过程还可包括用于解释一抽样类型模式字段的步骤,该字段在以下两者之间选择:
点抽样,和
2×2阵列抽样。
前述过程还可包括用于解释一红绿蓝抖动选择模式字段的步骤,该字段在基于以下各项的抖动间选择:
(1)幻方矩阵,
(2)bayer矩阵,
(3)噪声,或
(4)无抖动。
前述过程还可包括用于解释—α抖动选择模式字段的步骤,该字段根据以下各项规定抖动:
(1)预定图形,
(2)预定图形的负像,
(3)噪声,或
(4)无抖动。
前述过程还可包括用于解释多个混合模式字的步骤,这些混合模式字规定了混合器参数,规定:
在流水线循环0期间,有选择地乘第一混合器输入,
在流水线循环1期间,有选择地乘第一混合器输入,
在流水线循环0期间,有选择地乘第二混合器输入,
在流水线循环1期间,有选择地乘第二混合器输入,
在流水线循环0期间,有选择地乘第三混合器输入,
在流水线循环1期间,有选择地乘第三混合器输入,
在流水线循环0期间,有选择地乘第四混合器输入,
在流水线循环1期间,有选择地乘第四混合器输入。
前述过程还可包括用于解释一覆盖目标模式字段的步骤,该字段在以下覆盖目标模式之间选择:
(1)夹紧,
(2)包裹,
(3)强制全覆盖,和
(4)保存。
前述过程还可包括用于解释一z模式选择模式字段的步骤,该字段从以下z缓冲模式中选择一个模式:
(1)不透明,
(2)相互贯穿,
(3)透明,和
(4)移画印花。
本发明的第四方面是,提供一种用于至少解释一个设置模式命令的三维图形系统,设置模式命令具有包括一个101111六位二进制数值的命令标识符字段,该系统包括:
第一解码器,它解释包括一个101111六位二进制数值的命令标识符字段,
(k)用于解释原子基元模式字段电路,该字段规定了是否在读取下一基元之前把一基元强制写入一帧缓冲器中,
(i)用于解释循环类型模式字段的电路,该字段选择显示流水线循环控制模式,
(h)用于解释透视纹理允许模式字段的电路,该字段有选择地允许透视纹理校正,
(g)用于解释纹理细节模式字段的电路,该字段有选择地允许纹理细节处理,
(f)用于解释纹理突出允许模式字段的电路,该字段有选择地使纹理突出,
(e)用于解释纹理细节允许模式字段的电路,该字段有选择地允许纹理详细程度处理,
(d)用于解释允许查找表模式字段的电路,该字段有选择地从颜色查找表中查找纹理值,
(c)用于解释纹理查找表类型模式字段的电路,该字段规定了颜色查找表中纹理单元的类型,
(b)用于解释抽样类型模式字段的电路,该字段规定了应如何对纹理单元抽样,
(a)用于解释中间纹理单元模式字段的电路,该字段规定了是否应当用2×2半纹理单元内插对纹理单元筛选,
(Z)用于解释第一双线性内插模式字段的电路,该字段规定了纹理筛选器是否应当把纹理单元双线性内插到流水线循环0中,
(Y)用于解释第二双线性内插模式字段的电路,该字段规定了纹理筛选器是否应当把纹理单元双线性内插到流水线循环1中,
(X)用于解释纹理单元转换模式字段的电路,该字段规定了是否应当对流水线循环0期间纹理筛选器输出的纹理单元进行色彩转换,
(W)用于解释色度键允许模式字段的电路,该字段有选择地允许色度键起作用,
(V2)用于解释红绿蓝抖动选择模式字段的电路,该字段选择红绿蓝抖动的类型,
(V1)用于解释α抖动选择模式字段的电路,该字段选择α抖动的类型,
(V)用于解释多个混合模式字的电路,这些混合模式字规定了混合器的参数,
(M)用于解释强制混合允许模式字段的电路,该字段规定了是否应当强制允许混合器,
(L)用于解释α覆盖选择模式字段的电路,该字段规定了是否应当用覆盖来确定像素α,
(K)用于解释覆盖乘α选择模式字段的电路,该字段规定了是否应当用α乘以覆盖来确定像素α和覆盖,
(J)用于解释z模式选择模式字段的电路,该字段规定了z缓冲模式,
(I)用于解释覆盖目标模式字段的电路,该字段规定了覆盖目标,
(H)用于解释覆盖颜色模式字段的电路,该字段规定了是否只应在覆盖溢出时更新颜色,
(G)用于解释图像读取允许模式字段的电路,该字段有选择地允许对颜色和/或覆盖进行读/改/写的帧缓冲存储器进行存取,
(F)用于解释z更新允许模式字段的电路,该字段根据是否允许颜色写,来有选择地允许对z缓冲器进行写操作,
(E)用于解释z比较允许模式字段的电路,该字段规定了在深度比较基础上允许有条件的颜色写,
(D)用于解释去混叠允许模式字段的电路,该字段用覆盖允许混合,
(C)用于解释z源选择模式字段的电路,该字段在基元深度和像素深度之间进行选择,
(B)用于解释抖动α允许模式字段的电路,该字段规定了是否应当在α比较中使用随机噪声,
(A)用于解释α比较允许模式字段的电路,该字段在α比较的基础上有条件地进行颜色写,
(c)与上述电路(a)-(k),(A)-(M),(V1),(V2)和(W)-(Z)耦连的电路,用于产生图像。
前述系统还可包括用于解释一循环类型模式字段的装置,该字段在每像素1循环模式、每像素2循环模式、复制模式和填充模式中选择一个显示流水线循环控制模式。
前述系统还可包括用于解释一纹理查找表类型模式字段的装置,该字段在以下两者之间选择:
(1)用5位红、5位绿、5位蓝和1位α的RGBA格式将纹理单元存储在颜色查找表中,
(2)用提供8位亮度值和8位α值的亮度α格式将纹理单元存储在颜色查找表中。
前述系统还可包括用于解释一抽样类型模式字段的装置,该字段在以下两者之间选择:
点抽样,和
2×2阵列抽样。
前述系统还可包括用于解释一红绿蓝抖动选择模式字段的装置,该字段在基于以下各项的抖动间选择:
(1)幻方矩阵,
(2)bayer矩阵,
(3)噪声,或
(4)无抖动。
前述系统还可包括用于解释一α抖动选择模式字段的装置,该字段根据以下各项规定抖动:
(1)预定图形,
(2)预定图形的负像,
(3)噪声,或
(4)无抖动。
前述系统还可包括用于解释多个混合模式字的装置,这些混合模式字规定了混合器参数,规定
在流水线循环0期间,有选择地乘第一混合器输入,
在流水线循环1期间,有选择地乘第一混合器输入,
在流水线循环0期间,有选择地乘第二混合器输入,
在流水线循环1期间,有选择地乘第二混合器输入,
在流水线循环0期间,有选择地乘第三混合器输入,
在流水线循环1期间,有选择地乘第三混合器输入,
在流水线循环0期间,有选择地乘第四混合器输入,
在流水线循环1期间,有选择地乘第四混合器输入。
前述系统还可包括用于解释一覆盖目标模式字段的装置,该字段在以下覆盖目标模式之间选择:
(1)夹紧,
(2)包裹,
(3)强制全覆盖,和
(4)保存。
前述系统还可包括用于提供一z模式选择模式字段的装置,该字段从以下z缓冲模式中选择一个模式:
(1)不透明,
(2)相互贯穿,
(3)透明,和
(4)移画印花。
本发明的第五方面是,提供了一种与三维图形系统一同使用的存储媒体,存储媒体至少存储了一个三维显示模式控制命令,命令包括:
一命令标识符字段,它包括一个101111的六位二进制数值,和
以下模式控制字段中的至少一个:
(k)原子基元模式字段,它规定了是否在读取下一个基元之前强制将一基元写入帧缓冲器中,
(i)循环类型模式字段,它选择显示流水线循环控制模式,
(h)透视纹理允许模式字段,它有选择的进行透视纹理校正,
(g)纹理细节模式字段,它有选择地允许纹理细节处理,
(f)纹理突出允许模式字段,它有选择地突出纹理,
(e)纹理细节允许模式字段,它有选择地允许纹理详细程度处理,
(d)允许查找表模式字段,它有选择地从颜色查找表中查找纹理值,
(c)纹理查找表类型模式字段,它规定了颜色查找表中纹理单元的类型,
(b)抽样类型模式字段,它规定了如何对纹理单元进行抽样,
(a)中间纹理单元模式字段,它规定了是否应当用2×2半纹理单元内插对纹理单元进行筛选,
(Z)第一双线性内插模式字段,它规定了纹理筛选器是否应当把纹理单元双线性内插到流水线循环0中,
(Y)第二双线性内插模式字段,它规定了纹理筛选器是否应当把纹理单元双线性内插到流水线循环1中,
(X)纹理单元模式字段,它规定了是否应当对流水线循环0期间纹理筛选器输出的纹理单元进行颜色转换,
(W)色度键允许模式字段,它有选择地允许色度键起作用,
(V2)红绿蓝抖动选择模式字段,它选择红绿蓝抖动的类型,
(V1)α抖动选择模式字段,它选择α抖动的类型,
(V)多个混合模式字,它们规定了混合器的参数,
(M)强制混合允许模式字段,它规定了是否应当强制允许混合器,
(L)α覆盖选择模式字段,它规定了是否应当用覆盖来确定像素α,
(K)覆盖乘α选择模式字段,它规定了是否应当用α乘以覆盖来确定像素α和覆盖,
(J)z模式选择模式字段,它规定了z缓冲模式,
(I)覆盖目标模式字段,它规定了覆盖目标,
(H)覆盖颜色模式字段,它规定了是否当只在覆盖溢出时更新颜色,
(G)图像读取允许模式字段,它有选择地允许对颜色和/或覆盖进行读/改/写的帧缓冲存储器进行存取,
(F)z更新允许模式字段,它根据是否允许颜色写,来有选择地允许对z缓冲器进行写操作,
(E)z比较允许模式字段,它规定了在深度比较基础上允许有条件的颜色写,
(D)去混叠允许模式字段,它用覆盖允许混合,
(C)z源选择模式字段,它在基元深度和像素深度之间进行选择,
(B)抖动α允许模式字段,它规定了是否应当在α比较中使用随机噪声,
(A)α比较允许模式字段,它在α比较的基础上有条件地进行颜色写。
前述存储媒体还可包括用于存储一循环类型模式字段的装置,该字段在每像素1循环模式、每像素2循环模式、复制模式和填充模式中选择一个显示流水线循环控制模式。
前述存储媒体还可包括用于存储一纹理查找表类型模式字段的装置,该字段在以下两者之间选择:
(1)用5位红、5位绿、5位蓝和1位α的RGBA格式将纹理单元存储在颜色查找表中,
(2)用提供8位亮度值和8位α值的亮度α格式将纹理单元存储在颜色查找表中。
前述存储媒体还可包括用于存储一抽样类型模式字段的装置,该字段在以下两者之间选择:
点抽样,和
2×2阵列抽样。
前述存储媒体还可包括用于存储一红绿蓝抖动选择模式字段的装置,该字段在基于以下各项的抖动间选择:
(1)幻方矩阵,
(2)bayer矩阵,
(3)噪声,或
(4)无抖动。
前述存储媒体还可包括用于存储一α抖动选择模式字段的装置,该字段根据以下各项规定抖动:
(1)预定图形,
(2)预定图形的负像,
(3)噪声,或
(4)无抖动。
前述存储媒体还可包括用于存储多个混合模式字的装置,这些混合模式字规定了混合器参数,规定
在流水线循环0期间,有选择地乘第一混合器输入,
在流水线循环1期间,有选择地乘第一混合器输入,
在流水线循环0期间,有选择地乘第二混合器输入,
在流水线循环1期间,有选择地乘第二混合器输入,
在流水线循环0期间,有选择地乘第三混合器输入,
在流水线循环1期间,有选择地乘第三混合器输入,
在流水线循环0期间,有选择地乘第四混合器输入,
在流水线循环1期间,有选择地乘第四混合器输入。
前述存储媒体还可包括用于存储一覆盖目标模式字段的装置,该字段在以下覆盖目标模式之间选择:
(1)夹紧,
(2)包裹,
(3)强制全覆盖,和
(4)保存。
前述存储媒体还可包括用于提供一z模式选择模式字段的装置该字段从以下z缓冲模式中选择一个模式:
(1)不透明,
(2)相互贯穿,
(3)透明,和
(4)移画印花。
本发明的第六方面是,提供一种用于至少产生一个由三维图形系统处理的显示模式控制命令的过程,该过程包括至少产生一个设置模式命令的步骤,而设置模式命令具有:
一命令标识符字段,它包括一个111100的六位二进制数值,和
以下附加字段中的至少一个:
至少一个组合器减法模式控制字段,它规定从一颜色组合器中至少减去一个颜色空间值,
至少一个组合器乘法模式控制字段,它规定至少用一个颜色空间值乘颜色组合器的输入,以及
至少一个组合器加法控制字段,它规定了颜色组合器加法器的输入。
前述过程还可包括产生以下组合器减法模式控制字段从而指定实现函数(A-B)×C+D的多路复用器源的步骤:
(1)指定减法源A的减法源控制字段,
(2)指定减法源B的减法源控制字段,
(3)指定乘法源C的乘法源控制字段,
(4)指定加法源D的加法源控制字段。
前述过程还可包括产生以下组合器减法模式控制字段从而指定实现函数(A-B)×C+D的多路复用器源的步骤:
(1)指定RGB分量减法源A的减法源控制字段,
(2)指定α分量减法源A的减法源控制字段,
(3)指定RGB分量减法源B的减法源控制字段,
(4)指定α分量减法源B的减法源控制字段,
(5)指定RGB分量乘法源C的乘法源控制字段,
(6)指定α分量乘法源C的乘法源控制字段,
(7)指定RGB分量加法源D的加法源控制字段,
(8)指定α分量加法源D的加法源控制字段。
前述过程还可包括产生以下组合器减法模式控制字段从而指定实现函数(A-B)×C+D的多路复用器源的步骤:
(1)为流水线循环0指定RGB分量减法源A的减法源控制字段,
(2)为流水线循环1指定RGB分量减法源A的减法源控制字段,
(3)为流水线循环0指定α分量减法源A的减法源控制字段,
(4)为流水线循环1指定α分量减法源A的减法源控制字段,
(5)为流水线循环0指定RGB分量减法源B的减法源控制字段,
(6)为流水线循环1指定RGB分量减法源B的减法源控制字段,
(7)为流水线循环0指定α分量减法源B的减法源控制字段,
(8)为流水线循环1指定α分量减法源B的减法源控制字段,
(9)为流水线循环0指定RGB分量乘法源C的乘法源控制字段,
(10)为流水线循环1指定RGB分量乘法源C的乘法源控制字段,
(11)为流水线循环0指定α分量乘法源C的乘法源控制字段,
(12)为流水线循环1指定α分量乘法源C的乘法源控制字段,
(13)为流水线循环0指定RGB分量加法源D的加法源控制字段,
(14)为流水线循环1指定RGB分量加法源D的加法源控制字段,
(15)为流水线循环0指定α分量加法源D的加法源控制字段。
(16)为流水线循环1指定α分量加法源D的加法源控制字段。
前述过程还可包括:
至少产生第一、第二、第三和第四多路复用器选择值,它们规定了RGB颜色组合器信道的相应输入;和
至少产生第五、第六、第七和第八多路复用器选择值,它们规定了α颜色组合器信道的相应输入。
前述过程还可包括:
至少产生第一、第二、第三和第四多路复用器选择值,它们规定了流水线循环0颜色组合操作的相应输入;和
至少产生第五、第六、第七和第八多路复用器选择值,它们规定了流水线循环1颜色组合操作的相应输入。
本发明的第七方面是,提供一种用于至少产生一个由三维图形系统处理的显示模式控制命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的电路,用于至少提供一个设置模式命令,设置模式命令包括:
一命令标识符字段,它包括一个111100的六位二进制数值,和
以下附加字段中的至少一个:
至少一个组合器减法模式控制字段,它规定从一颜色组合器中至少减去一个颜色空间值,
至少一个组合器乘法模式控制字段,它规定至少用一个颜色空间值乘颜色组合器的输入,以及
至少一个组合器加法控制字段,它规定了颜色组合器加法器的输入。
前述系统还可包括提供以下组合器减法模式控制字段从而指定实现函数(A-B)×C+D的多路复用器源的装置:
(1)指定减法源A的减法源控制字段,
(2)指定减法源B的减法源控制字段,
(3)指定乘法源C的乘法源控制字段,
(4)指定加法源D的加法源控制字段。
前述系统还可包括产生以下组合器减法模式控制字段从而指定实现函数(A-B)×C+D的多路复用器源的装置:
(1)指定RGB分量减法源A的减法源控制字段,
(2)指定α分量减法源A的减法源控制字段,
(3)指定RGB分量减法源B的减法源控制字段,
(4)指定α分量减法源B的减法源控制字段,
(5)指定RGB分量乘法源C的乘法源控制字段,
(6)指定α分量乘法源C的乘法源控制字段,
(7)指定RGB分量加法源D的加法源控制字段,
(8)指定α分量加法源D的加法源控制字段。
前述系统还可包括产生以下组合器减法模式控制字段从而指定实现函数(A-B)×C+D的多路复用器源的装置:
(1)为流水线循环0指定RGB分量减法源A的减法源控制字段,
(2)为流水线循环1指定RGB分量减法源A的减法源控制字段,
(3)为流水线循环0指定α分量减法源A的减法源控制字段,
(4)为流水线循环1指定α分量减法源A的减法源控制字段,
(5)为流水线循环0指定RGB分量减法源B的减法源控制字段,
(6)为流水线循环1指定RGB分量减法源B的减法源控制字段,
(7)为流水线循环0指定α分量减法源B的减法源控制字段,
(8)为流水线循环1指定α分量减法源B的减法源控制字段,
(9)为流水线循环0指定RGB分量乘法源C的乘法源控制字段,
(10)为流水线循环1指定RGB分量乘法源C的乘法源控制字段,
(11)为流水线循环0指定α分量乘法源C的乘法源控制字段,
(12)为流水线循环1指定α分量乘法源C的乘法源控制字段,
(13)为流水线循环0指定RGB分量加法源D的加法源控制字段,
(14)为流水线循环1指定RGB分量加法源D的加法源控制字段,
(15)为流水线循环0指定α分量加法源D的加法源控制字段。
(16)为流水线循环1指定α分量加法源D的加法源控制字段。
前述系统还可包括:
用于至少提供第一、第二、第三和第四多路复用器选择值的电路,这些选择值规定了RGB颜色组合器信道的相应输入;和
用于至少提供第五、第六、第七和第八多路复用器选择值的装置,这些选择值规定了α颜色组合器信道的相应输入。
前述系统还可包括:
用于至少产生第一、第二、第三和第四多路复用器选择值的电路,这些选择值规定了流水线循环0颜色组合操作的相应输入;和
用于至少产生第五、第六、第七和第八多路复用器选择值的电路,这些选择值规定了流水线循环1颜色组合操作的相应输入。
本发明的第八方面是,提供一种在三维图形显示系统中用于至少解释一个设置模式命令的过程,该过程包括:
(a)解释一具有111100六位二进制数值的命令标识符字段,和
(b)至少解释以下附加字段中的一个:
    至少一个组合器减法模式控制字段,它规定从一颜色组合器中至
    少减去一个颜色空间值,
    至少一个组合器乘法模式控制字段,它规定至少用一个颜色空间
    值乘颜色组合器的输入,和
    至少一个组合器加法控制字段,它规定了颜色组合器加法器的输
    入,以及
(c)至少部分根据步骤(b)产生一图像。
前述过程还可包括解释以下组合器减法模式控制字段从而指定实现函数(A-B)×C+D的多路复用器源的步骤:
(1)指定减法源A的减法源控制字段,
(2)指定减法源B的减法源控制字段,
(3)指定乘法源C的乘法源控制字段,
(4)指定加法源D的加法源控制字段。
前述过程还可包括解释以下组合器减法模式控制字段从而指定实现函数(A-B)×C+D的多路复用器源的步骤:
(1)指定RGB分量减法源A的减法源控制字段,
(2)指定α分量减法源A的减法源控制字段,
(3)指定RGB分量减法源B的减法源控制字段,
(4)指定α分量减法源B的减法源控制字段,
(5)指定RGB分量乘法源C的乘法源控制字段,
(6)指定α分量乘法源C的乘法源控制字段,
(7)指定RGB分量加法源D的加法源控制字段,
(8)指定α分量加法源D的加法源控制字段。
前述过程还可包括解释以下组合器减法模式控制字段从而指定实现函数(A-B)×C+D的多路复用器源的步骤:
(1)为流水线循环0指定RGB分量减法源A的减法源控制字段,
(2)为流水线循环1指定RGB分量减法源A的减法源控制字段,
(3)为流水线循环0指定α分量减法源A的减法源控制字段,
(4)为流水线循环1指定α分量减法源A的减法源控制字段,
(5)为流水线循环0指定RGB分量减法源B的减法源控制字段,
(6)为流水线循环1指定RGB分量减法源B的减法源控制字段,
(7)为流水线循环0指定α分量减法源B的减法源控制字段,
(8)为流水线循环1指定α分量减法源B的减法源控制字段,
(9)为流水线循环0指定RGB分量乘法源C的乘法源控制字段,
(10)为流水线循环1指定RGB分量乘法源C的乘法源控制字段,
(11)为流水线循环0指定α分量乘法源C的乘法源控制字段,
(12)为流水线循环1指定α分量乘法源C的乘法源控制字段,
(13)为流水线循环0指定RGB分量加法源D的加法源控制字段,
(14)为流水线循环1指定RGB分量加法源D的加法源控制字段,
(15)为流水线循环0指定α分量加法源D的加法源控制字段。
(16)为流水线循环1指定α分量加法源D的加法源控制字段。
前述过程还可包括:
至少解释第一、第二、第三和第四多路复用器选择值,它们规定了RGB颜色组合器信道的相应输入;和
至少解释第五、第六、第七和第八多路复用器选择值,它们规定了α颜色组合器信道的相应输入。
前述过程还可包括:
至少解释第一、第二、第三和第四多路复用器选择值,它们规定了流水线循环0颜色组合操作的相应输入;和
至少解释第五、第六、第七和第八多路复用器选择值,它们规定了流水线循环1颜色组合操作的相应输入。
本发明的第九个方面是,提供了一种用于至少解释一个包括111100六位二进制数值的设置模式命令的三维图形系统,其特征在于,包括:
(a)用于解释包括111100六位二进制数值的命令标识符字段的装置,
(b)用于根据以下附加字段中的至少一个至少产生一个控制信号的装置:
    至少一个组合器减法模式控制字段,它规定从一颜色组合器中至
    少减去一个颜色空间值,
    至少一个组合器乘法模式控制字段,它规定至少用一个颜色空间
    值乘颜色组合器的输入,以及
    至少一个组合器加法控制字段,它规定了颜色组合器加法器的输
    入,并且
(c)用于至少部分根据控制信号产生一图像的装置。
前述系统还可包括一个组合器电路,用于解释以下组合器减法模式控制字段,从而指定实现函数(A-B)×C+D的多路复用器源:
(1)指定减法源A的减法源控制字段,
(2)指定减法源B的减法源控制字段,
(3)指定乘法源C的乘法源控制字段,
(4)指定加法源D的加法源控制字段。
前述系统还可包括一组合器,用于解释以下组合器减法模式控制字段,从而指定实现函数(A-B)×C+D的多路复用器源:
(1)指定RGB分量减法源A的减法源控制字段,
(2)指定α分量减法源A的减法源控制字段,
(3)指定RGB分量减法源B的减法源控制字段,
(4)指定α分量减法源B的减法源控制字段,
(5)指定RGB分量乘法源C的乘法源控制字段,
(6)指定α分量乘法源C的乘法源控制字段,
(7)指定RGB分量加法源D的加法源控制字段,
(8)指定α分量加法源D的加法源控制字段。
前述系统还可包括一组合器,它根据以下组合器减法模式控制字段组合颜色信号,从而指定实现函数(A-B)×C+D的多路复用器源:
(1)为流水线循环0指定RGB分量减法源A的减法源控制字段,
(2)为流水线循环1指定RGB分量减法源A的减法源控制字段,
(3)为流水线循环0指定α分量减法源A的减法源控制字段,
(4)为流水线循环1指定α分量减法源A的减法源控制字段,
(5)为流水线循环0指定RGB分量减法源B的减法源控制字段,
(6)为流水线循环1指定RGB分量减法源B的减法源控制字段,
(7)为流水线循环0指定α分量减法源B的减法源控制字段,
(8)为流水线循环1指定α分量减法源B的减法源控制字段,
(9)为流水线循环0指定RGB分量乘法源C的乘法源控制字段,
(10)为流水线循环1指定RGB分量乘法源C的乘法源控制字段,
(11)为流水线循环0指定α分量乘法源C的乘法源控制字段,
(12)为流水线循环1指定α分量乘法源C的乘法源控制字段,
(13)为流水线循环0指定RGB分量加法源D的加法源控制字段,
(14)为流水线循环1指定RGB分量加法源D的加法源控制字段,
(15)为流水线循环0指定α分量加法源D的加法源控制字段。
(16)为流水线循环1指定α分量加法源D的加法源控制字段。
前述系统还可包括:
至少解释第一、第二、第三和第四多路复用器选择值的装置,这些选择值规定了RGB颜色组合器信道的相应输入;和
至少解释第五、第六、第七和第八多路复用器选择值的装置,这些选择值规定了α颜色组合器信道的相应输入。
前述系统还可包括:
至少解释第一、第二、第三和第四多路复用器选择值的装置,这些选择值规定了流水线循环0颜色组合操作的相应输入;和
至少解释第五、第六、第七和第八多路复用器选择值的装置,这些选择值规定了流水线循环1颜色组合操作的相应输入。
本发明的第十个方面是,提供了一种与三维图形系统一同使用的存储媒体,存储媒体至少存储了一个显示模式控制命令,命令包括:
一命令标识符字段,它包括一个111100的六位二进制数值,和
以下附加字段中的至少一个:
至少一个组合器减法模式控制字段,它规定从一颜色组合器中至少减去一个颜色空间值,
至少一个组合器乘法模式控制字段,它规定至少用一个颜色空间值乘以颜色组合器的输入,以及
至少一个组合器加法控制字段,它规定了颜色组合器加法器的输入。
前述存储媒体还可包括用于存储以下组合器减法模式控制字段从而指定实现函数(A-B)×C+D的多路复用器源的装置:
(1)指定减法源A的减法源控制字段,
(2)指定减法源B的减法源控制字段,
(3)指定乘法源C的乘法源控制字段,
(4)指定加法源D的加法源控制字段。
前述存储媒体还可包括用于存储以下组合器减法模式控制字段从而指定实现函数(A-B)×C+D的多路复用器源的装置:
(1)指定RGB分量减法源A的减法源控制字段,
(2)指定α分量减法源A的减法源控制字段,
(3)指定RGB分量减法源B的减法源控制字段,
(4)指定α分量减法源B的减法源控制字段,
(5)指定RGB分量乘法源C的乘法源控制字段,
(6)指定α分量乘法源C的乘法源控制字段,
(7)指定RGB分量加法源D的加法源控制字段,
(8)指定α分量加法源D的加法源控制字段。
前述存储媒体还可包括用于存储以下组合器减法模式控制字段从而指定实现函数(A-B)×C+D的多路复用器源的装置:
(1)为流水线循环0指定RGB分量减法源A的减法源控制字段,
(2)为流水线循环1指定RGB分量减法源A的减法源控制字段,
(3)为流水线循环0指定α分量减法源A的减法源控制字段,
(4)为流水线循环1指定α分量减法源A的减法源控制字段,
(5)为流水线循环0指定RGB分量减法源B的减法源控制字段,
(6)为流水线循环1指定RGB分量减法源B的减法源控制字段,
(7)为流水线循环0指定α分量减法源B的减法源控制字段,
(8)为流水线循环1指定α分量减法源B的减法源控制字段,
(9)为流水线循环0指定RGB分量乘法源C的乘法源控制字段,
(10)为流水线循环1指定RGB分量乘法源C的乘法源控制字段,
(11)为流水线循环0指定α分量乘法源C的乘法源控制字段,
(12)为流水线循环1指定α分量乘法源C的乘法源控制字段,
(13)为流水线循环0指定RGB分量加法源D的加法源控制字段,
(14)为流水线循环1指定RGB分量加法源D的加法源控制字段,
(15)为流水线循环0指定α分量加法源D的加法源控制字段。
(16)为流水线循环1指定α分量加法源D的加法源控制字段。
前述存储媒体还可包括:
用于至少存储第一、第二、第三和第四多路复用器选择值的装置,这些选择值规定了RGB颜色组合器信道的相应输入;和
用于至少存储第五、第六、第七和第八多路复用器选择值的装置,这些选择值规定了α颜色组合器信道的相应输入。
前述存储媒体还可包括:
用于至少存储第一、第二、第三和第四多路复用器选择值的装置,这些选择值规定了流水线循环0颜色组合操作的相应输入;和
用于至少存储第五、第六、第七和第八多路复用器选择值的装置,这些选择值规定了流水线循环1颜色组合操作的相应输入。
本发明的第十一方面是,提供一种用于至少产生一个由三维图形系统处理的彩色图像模式命令的过程,该过程包括至少产生一个命令的步骤,命令包括:
一命令标识符字段,它包括在111111和111101组内的一个六位二进制值;
一图像数据格式参数;
一颜色元素大小参数;
一图像宽度参数;和
一基本地址参数。
前述过程还可包括产生图像数据格式参数的步骤,图像数据格式参数在以下各项中选择:
(a)rgba,
(b)yuv,
(c)颜色索引,
(d)亮度α,和
(e)α。
前述过程还可包括产生颜色元素大小参数的步骤,颜色元素大小参数在以下各项中选择:
(a)4位宽的颜色元素值,
(b)8位宽的颜色元素值,
(c)16位宽的颜色元素值,和
(d)32位宽的颜色元素值。
前述过程还可包括产生图像宽度参数值的步骤,图像宽度参数值规定了存储在存储器中的图像像素的宽度。
前述过程还可包括产生基本地址参数的步骤,基本地址参数规定了图像的左上角在主存储器中的基本地址。
本发明的第十二方面是,提供一种用于至少提供一种由三维图形系统处理的彩色图像模式命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的电路,用于至少产生一个命令,命令包括:
一命令标识符字段,它包括在111111和111101组内的一个六位二进制数值;
一图像数据格式参数;
一颜色元素参数;
一图像宽度参数;和
一基本地址参数。
前述系统还可包括用于提供图像数据格式参数的装置,图像数据格式参数在以下各项中选择:
(a)rgba,
(b)yuv,
(c)颜色索引,
(d)亮度α,和
(e)α。
前述系统还可包括用于提供颜色元素大小参数的装置,颜色元素大小参数在以下各项中选择:
(a)4位宽的颜色元素值,
(b)8位宽的颜色元素值,
(c)16位宽的颜色元素值,和
(d)32位宽的颜色元素值。
前述系统还可包括用于提供图像宽度参数值的装置,图像宽度参数值规定了存储在存储器中的图像像素的宽度。
前述系统还可包括用于提供基本地址参数的装置,基本地址参数规定了图像的左上角在主存储器中的基本地址。
本发明的第十三方面是,提供一种在三维图形系统中用于至少执行一个彩色图像模式命令的过程,该过程包括:
(a)解释一命令标识符字段,该命令标识符字段包括在111111和111101组内的一个六位二进制值,与彩色图像模式对应;
(b)至少解释以下参数中的一个:
    图像数据格式参数;
    颜色元素大小参数;
    图像宽度参数;
    基本地址参数;并且
(c)至少部分根据步骤(b)产生一个彩色图像显示。
前述过程还可包括根据图像数据格式参数在以下各项中选择的步骤:
(a)rgba,
(b)yuv,
(c)颜色索引,
(d)亮度α,和
(e)α。
前述过程还可包括根据颜色元素大小参数在以下各项中选择的步骤:
(a)4位宽的颜色元素值,
(b)8位宽的颜色元素值,
(c)16位宽的颜色元素值,和
(d)32位宽的颜色元素值。
前述过程还可包括根据图像宽度参数值设置存储在存储器中的图像像素宽度的步骤。
前述过程还可包括根据基本地址参数设置图像左上角在主存储器中的基本地址的步骤。
本发明的第十四个方面是,提供了一种用于至少执行一个具有命令标识符字段的彩色图像模式命令的三维图形系统,对应于彩色图像模式,所述命令标识符字段包括在111111和111101组中的一个六位二进制数值,所述系统包括:
一命令标识符解码器,它用于解释命令标识符字段,对应于彩色图像模式,所述命令标识符字段包括在111111和111101组中的一个六位二进制数值;
一命令参数解码器,它用于至少解释以下一个参数:
    图像数据格式参数;
    颜色元素大小参数;
    图像宽度参数;和
    基本地址参数;以及
一显示电路,它至少部分根据诸参数产生彩色图像显示。
前述系统还可包括根据图像数据格式参数在以下各项中选择的结构:
(a)rgba,
(b)yuv,
(c)颜色索引,
(d)亮度α,和
(e)α。
前述系统还可包括根据颜色元素大小参数在以下各项中选择的结构:
(a)4位宽的颜色元素值,
(b)8位宽的颜色元素值,
(c)16位宽的颜色元素值,和
(d)32位宽的颜色元素值。
前述系统还可包括根据图像宽度参数值设置存储在存储器中的图像像素宽度的装置。
前述系统还可包括根据基本地址参数设置图像左上角在主存储器中的基本地址的电路。
本发明的第十五个方面是,提供了一种与三维图形系统一同使用的存储媒体,它至少存储了一个彩色图像模式命令,命令包括:
一命令标识符字段,它包括在111111和111101组中的一个六位二进制数值;
图像数据格式参数;
颜色元素大小参数;
图像宽度参数;和
基本地址参数。
前述存储媒体还可包括用于存储图像数据格式参数的装置,图像数据格式参数在以下各项中选择:
(a)rgba,
(b)yuv,
(c)颜色索引,
(d)亮度α,和
(e)α。
前述存储媒体还可包括用于存储颜色元素大小参数的装置,彩色像素大小参数在以下各项种选择:
(a)4位宽的颜色元素值,
(b)8位宽的颜色元素值,
(c)16位宽的颜色元素值,和
(d)32位宽的颜色元素值。
前述存储媒体还可包括用于存储图像宽度参数值的装置,图像宽度参数值规定了存储在存储器中的图像像素的宽度。
前述存储媒体还可包括用于存储基本地址参数的装置,基本地址参数规定了图像的左上角在主存储器中的基本地址。
本发明的第十六个方面是,提供了一种用于至少产生一个由三维图形系统处理的屏蔽图像模式命令的过程,该过程包括至少产生一个设置屏蔽图像命令的步骤,设置屏蔽图像命令包括:
一命令标识符字段,它包括一个111110的六位二进制数值,和
一基本地址,它规定了至少一个深度图像左上角的存储器地址。
本发明的第十七个方面是,提供了一种用于至少提供一个由三维图形系统处理的屏蔽图像模式命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的装置,用于至少提供一个设置屏蔽图像命令,设置屏蔽图像命令包括:
一命令标识符字段,它包括一个111110的六位二进制数值,和
一基本地址,它规定了至少一个深度图像左上角的存储器地址。
本发明的第十八个方面是,提供了一种在三维图形系统中用于至少解释一个屏蔽图像模式命令的过程,该过程包括:
解释一命令标识符字段,命令标识符字段包括一个111110的六位二进制数值,和
解释一基本地址,基本地址规定了至少一个深度图像左上角的存储器地址。
本发明的第十九个方面是,提供了一种在三维图形系统中用于至少解释一个包括111110六位二进制数值的屏蔽图像模式命令的解码器,系统包括:
用于解释一命令标识符字段的装置,命令标识符字段包括一个111110的六位二进制数值,和
用于解释一基本地址的装置,基本地址规定了至少一个深度图像左上角的存储器地址。
本发明的第二十个方面是,提供了一种与三维图形系统一同使用的存储媒体,存储媒体用于至少存储一个屏蔽图像模式命令,屏蔽图像模式命令包括:
一命令标识符字段,它包括一个111110的六位二进制数值,和
一基本地址,它规定了至少一个深度图像左上角的存储器地址。
本发明的第二十一个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的过程,该过程包括至少产生一个具有命令标识符字段的三角形描绘命令,其命令标识符字段包括在001000至001111范围内的一个六位二进制数值,并至少后接x和y位置值,三角形描绘命令格式至少规定了一个三角形,三角形位于相应于x和y位置值的x和y位置处。
本发明的第二十二个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的装置,用于至少提供一个具有命令标识符字段的三角形描绘命令,命令标识符字段包括在001000至001111范围内的一个六位二进制数值,并至少后接x和y位置值,三角形绘图命令格式至少规定了一个三角形,三角形位于相应于x和y位置值的x和y位置处。
本发明的第二十三个方面是,提供了一种在三维图形系统中用于至少执行一个显示命令以便处理的过程,该过程包括以下步骤:
(a)至少解释一个具有命令标识符字段的三角形描绘命令,其命令标识符字段包括在001000至001111范围内的一个六位二进制数值,并至少后接x和y位置值,并且
(b)至少在相应于x和y位置值的x和y位置处描绘一个基元。
本发明的第二十四个方面是,提供了一种用于至少执行一个显示命令的三维图形系统,所述显示命令包括在001000至001111范围内的一个六位二进制数值,并至少后接x和y位置值,所述系统包括:
一解码器,它至少解释一个具有命令标识符字段的三角形描绘命令,所述命令标识符字段包括在001000至001111范围内的一个六位二进制数值,并至少后接x和y位置值,和
一显示处理器,它在相应于x和y位置值的x和y位置处至少描绘一个基元。
本发明的第二十五个方面是,提供了一种与三维图形系统一同使用的存储媒体,所述存储媒体至少存储了一个具有命令标识符字段的显示命令,其命令标识符字段包括在001000至001111范围内的一个六位二进制数值,并至少后接x和y位置值,三角形绘图命令格式在相应于x和y位置值的x和y位置处至少规定了一个三角形。
本发明的第二十六个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的过程,该过程包括至少产生一个三角形描绘命令的步骤,三角形描绘命令包括:
一命令标识符字段,它具有001111和001011中至少一个的六位二进制数值,
一组边缘系数,
一组纹理系数,和
一组z缓冲系数,三角形描绘命令格式至少规定了一个要描绘的三角形,该三角形根据边缘系数组描绘,至少部分根据纹理系数组用纹理填充,并至少部分根据z缓冲系数组进行z缓冲。
本发明的第二十七个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的电路,用于至少提供一个三角形描绘命令,三角形描绘命令包括:
一命令标识符字段,它具有001111和001011中至少一个的六位二进制数值,
一组边缘系数,
一组纹理系数,和
一组z缓冲系数,三角形描绘命令格式至少规定了一个要描绘的三角形,该三角形根据边缘系数组描绘,至少部分根据纹理系数组用纹理填充,并至少部分根据z缓冲系数组进行z缓冲。
本发明的第二十八个方面是,提供了一种用于在三维图形系统中至少执行一个三角形描绘命令的过程,该过程包括:
(a)解释一命令标识符字段,该命令标识符字段具有001111和001011中至少一个六位二进制数值,
(b)解释一组边缘系数,
(c)解释一组纹理系数,
(d)解释一组z缓冲系数,和
(e)根据边缘系数组至少描绘一个三角形,至少部分根据纹理系数组用纹理填充三角形,并至少部分根据z缓冲系数组进行z缓冲。
本发明的第二十九个方面是,提供了一种用于至少执行一个具有命令标识符字段的三角形描绘命令的三维图形系统,命令标识符字段具有001111和001011中至少一个六位二进制数值,该系统包括:
(a)用于解释一命令标识符字段的装置,该命令标识符字段具有001111和001011中至少一个六位二进制数值,
(b)用于解释一组边缘系数的装置,
(c)用于解释一组纹理系数的装置,
(d)用于解释一组z缓冲系数的装置,和
(e)与上述装置耦连的装置,用于根据边缘系数组至少描绘一个三角形,至少部分根据纹理系数组用纹理填充三角形,并至少部分根据z缓冲系数组进行z缓冲。
本发明的第三十个方面是,提供了一种与三维图形系统一同使用的存储媒体,该存储媒体用于至少存储一个三角形描绘命令,命令包括:
一命令标识符字段,它具有001111和001011中至少一个六位二进制数值,
一组边缘系数,
一组纹理系数,和
一组z缓冲系数,三角形描绘命令格式至少规定了一个要描绘的三角形,该三角形根据边缘系数组描绘,至少部分根据纹理系数组用纹理填充,并至少部分根据z缓冲系数组进行z缓冲。
本发明的第三十一个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的过程,该过程包括至少产生一个三角形描绘命令的步骤,命令包括:
一命令标识符字段,它具有001111和001011中至少一个六位二进制数值,
一组边缘系数,
一组纹理系数,和
一组z缓冲系数,三角形描绘命令格式至少规定了一个要描绘三角形,该三角形根据边缘系数组描绘,并至少部分根据纹理系数组用纹理填充三角形。
本发明的第三十二个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的电路,用于至少产生一个三角形描绘命令,该三角形描绘命令包括:
一命令标识符字段,它具有一个从001010和001110集合中选出的六位二进制数值,
一组边缘系数,
一组纹理系数,和
一组z缓冲系数,三角形描绘命令格式至少规定了一个要描绘的三角形,该三角形根据边缘系数组描绘,并且至少部分根据纹理系数组用纹理填充三角形。
本发明的第三十三个方面是,提供了一种用于在三维图形系统中至少执行一个三角形描绘命令的过程,该过程包括:
(a)解释一命令标识符字段,命令标识符字段具有一个从001010和001110组中选出的六位二进制数值,
(b)解释一组边缘系数,
(c)解释一组纹理系数,和
(d)根据边缘系数组至少描绘一个三角形,并且至少部分根据纹理系数组用纹理填充三角形。
本发明的第三十四个方面是,提供了一种至少执行一个具有命令标识符字段的三角形描绘命令的三维图形系统,命令标识符字段具有一个从001010和001110组中选出的六位二进制数值,该系统包括:
一命令标识符字段解码器,它解释命令标识符字段,命令标识符字段具有一个从001010和001110组中选出的六位二进制数值,
一光栅化装置,它解释一组边缘系数,
一纹理坐标装置,它解释一组纹理系数,
一显示处理器,它根据边缘系数组至少描绘一个三角形,并至少部分根据纹理系数组用纹理填充三角形。
本发明的第三十五个方面是,提供了一种与三维图形系统一同使用的存储媒体,该存储媒体用于至少存储一个三角形描绘命令,命令包括:
一命令标识符字段,它具有一个从001010和001110组中选出的六位二进制数值,
一组边缘系数,和
一组纹理系数,三角形描绘命令格式至少规定了一个要描绘的三角形,该三角形根据边缘系数组描绘,并且至少部分根据纹理系数组用纹理填充三角形。
本发明的第三十六个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的过程,该过程包括至少产生一个三角形描绘命令的步骤,命令包括:
一命令标识符字段,它具有一个从001001组中选出的六位二进制数值,
一组边缘系数,和
一组z缓冲系数,三角形描绘命令格式至少规定了一个要描绘的无明暗的三角形,该三角形根据边缘系数组描绘,并至少部分根据z缓冲系数组进行z缓冲。
本发明的第三十七个方面是,提供了一种用于至少提供一个由三维图形系统处理的显示命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的电路,用于至少提供一个三角形描绘命令,三角形描绘命令包括:
一命令标识符字段,它具有一个从0001001组中选出的六位二进制数值,
一组边缘系数,和
一组z缓冲系数,三角形描绘命令格式至少规定了一个要描绘的无明暗的三角形,该三角形根据边缘系数组描绘,并且至少部分根据z缓冲系数进行z缓冲。
本发明的第三十八个方面是,提供了一种用于在三维图形系统中至少执行一个三角形描绘命令的过程,该过程包括:
(a)解释一命令标识符字段,命令标识符字段具有一个从001001组中选出的六位二进制数值,
(b)解释一组边缘系数,
(c)解释一组纹理系数,并且
(d)根据边缘系数组至少绘制一个无明暗的三角形,并且至少部分根据z缓冲系数组进行z缓冲。
本发明的第三十九个方面是,提供了一种至少执行一个具有命令标识符字段的三角形描绘命令的三维图形系统,命令标识符字段具有一个从001001组中选出的六位二进制数值,该系统包括:
一解码器,它解释命令标识符字段,命令标识符字段具有一个从001001组中选出的六位二进制数值,
一边缘游动器,它解释一组边缘系数,
一z缓冲控制器,它解释一组z缓冲系数,以及
一显示处理器,它根据边缘系数组至少描绘一个无明暗的三角形,并至少部分根据z缓冲系数进行z缓冲。
本发明的第四十个方面是,提供了一种与三维图形系统一同使用的存储媒体,该存储媒体用于至少存储一个三角形描绘命令,命令包括:
一命令标识符字段,它具有一个从001001组中选出的六位二进制数值,
一组边缘系数,和
一组z缓冲系数,三角形描绘命令格式至少规定了一个无明暗的三角形,三角形根据边缘系数组描绘,并至少部分根据z缓冲系数进行z缓冲。
本发明的第四十一个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的过程,该过程包括至少产生一个带纹理的矩形描绘命令的步骤,命令包括:
一命令标识符字段,它具有在100100和100101范围内的一个六位二进制数值,
至少两个x坐标值,
至少两个y坐标值,
一组纹理系数,和
砖描述符索引值,带纹理的矩形描绘命令格式至少规定了一个要描绘的矩形,矩形根据x和y坐标值描绘,并至少部分根据纹理系数组和砖描述符索引值用纹理填充矩形。
本发明的第四十二个方面是,提供了一种用于至少提供一个由三维图形系统处理的显示命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的装置,用于至少提供一个带纹理的矩形描绘命令,带纹理的矩形描绘命令包括:
一命令标识符字段,它具有在100100和100101范围内的一个六位二进制数值,
至少两个x坐标值,
至少两个y坐标值,
一组纹理系数,和
砖描述符索引值,带纹理的矩形描绘命令格式至少规定了一个要描绘的矩形,矩形根据x和y坐标值描绘,并至少部分根据纹理系数组和砖描述符索引值用纹理填充矩形。
本发明的第四十三个方面是,提供了一种用于在三维图形系统中至少执行一个带纹理的矩形描绘命令的过程,该过程包括:
(a)解释一命令标识符字段,命令标识符字段具有在100100和100101范围内的一个六位二进制数值,
(b)至少解释两个x坐标值,
(c)至少解释两个y坐标值,
(d)解释一组纹理系数,
(e)解释砖描述符索引值,并且
(f)根据x和y坐标值至少描绘一个矩形,并至少部分根据纹理系数组和砖描述符索引值用纹理填充矩形。
本发明的第四十四个方面是,提供了一种用于至少执行一个具有命令标识符字段的带纹理的矩形描绘命令的三维图形系统,命令标识符字段具有在100100和100101范围内的一个六位二进制数值,所述系统包括:
一解码器,它解释一个命令标识符字段,所述命令标识符字段具有在100100和100101范围内的一个六位二进制数值,和
一处理器,它至少解释两个x坐标值和两个y坐标值,
一纹理坐标单元,它解释纹理系数组和砖描述符索引值,和
一显示处理器,它根据x和y坐标值至少描绘一个矩形,并至少部分根据纹理系数组和砖描述符索引值将纹理填入矩形。
本发明的第四十五个方面是,提供了一种与三维图形系统一同使用的存储媒体,所述存储媒体至少存储了一个带纹理的矩形描绘命令,所述带纹理的矩形描绘命令包括:
一命令标识符字段,它具有在100100和100101范围内的一个六位二进制数值,
至少两个x坐标值,
至少两个y坐标值,
一纹理系数组,和
一砖描述符索引值,带纹理的矩形描绘命令格式规定根据x和y坐标值至少绘制一个矩形,并至少部分根据纹理系数组和砖描述符索引值将纹理填入矩形。
本发明的第四十六个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的过程,该过程包括以下步骤:
(a)至少产生一个设置基元颜色命令,命令包括:
一命令标识符字段,它具有一个111010的六位二进制数值,
一组颜色坐标;并且
(b)至少产生一个被填充矩形描绘命令,命令包括;
一命令标识符字段,它具有一个110110的六位二进制数值,
至少两个x坐标值,和
至少两个y坐标值,被填充矩形描绘命令格式至少规定了一个要描绘的矩形,矩形根据x和y坐标值绘制,并至少部分根据颜色坐标用颜色填充矩形。
本发明的第四十七个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的装置,用于产生:
(a)至少一个设置基元颜色命令,命令包括:
一命令标识符字段,它具有一个111010的六位二进制数值,
一组颜色坐标;以及
(b)至少一个被填充矩形描绘命令,命令包括;
一命令标识符字段,它具有一个110110的六位二进制数值,
至少两个x坐标值,和
至少两个y坐标值,被填充矩形描绘命令格式至少规定了一个要描绘的矩形,矩形根据x和y坐标值描绘,并至少部分根据颜色坐标用颜色填充矩形。
本发明的第四十八个方面是,提供了一种用于在三维图形系统中至少执行一个显示命令的过程,该过程包括以下步骤:
(a)至少解释一个设置基元颜色命令,命令包括:
    一命令标识符字段,它具有一个111010的六位二进制数值,
    一组颜色坐标;以及
(b)至少解释一个被填充矩形描绘命令,命令包括;
    一命令标识符字段,它具有一个110110的六位二进制数值,
    至少两个x坐标值,和
        至少两个y坐标值,并且
(c)根据x和y坐标值至少描绘一个矩形,并至少部分根据颜色坐标用颜色填充矩形。
本发明的第四十九个方面是,提供了一种用于至少执行一个具有命令标识符字段的显示命令的设备,命令标识符字段具有一个111010的六位二进制数值,设备包括以下装置:
用于至少解释一个设置基元颜色命令的装置,命令包括:
    一命令标识符字段,它具有一个111010的六位二进制数值,
    一组颜色坐标;以及
用于至少解释一个被填充矩形描绘命令的装置,命令包括;
    一命令标识符字段,它具有一个110110的六位二进制数值,
    至少两个x坐标值,和
    至少两个y坐标值,并且
根据x和y坐标值至少描绘一个矩形的装置,并至少部分根据颜色坐标用颜色填充矩形。
本发明的第五十个方面是,提供了一种与三维图形系统一同使用的存储媒体,存储媒体存储:
(a)至少一个设置基元颜色命令,命令包括:
一命令标识符字段,它具有一个111010的六位二进制数值,
一组颜色坐标;和
(b)至少一个被填充矩形描绘命令,命令包括:
一命令标识符字段,它具有一个110110的六位二进制数值,
至少两个x坐标值,和
至少两个y坐标值,被填充矩形描绘命令格式至少规定了一个要描绘的矩形,矩形根据x和y坐标值描绘,并至少部分根据颜色坐标用颜色填充矩形。
本发明的第五十一个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的过程,该过程包括至少产生一个纹理确定命令的步骤,命令包括:
一命令标识符字段,它具有一个110101六位二进制数值,
一图像数据格式参数,
一颜色元素大小参数,
一砖线大小参数,
一起始纹理存储器地址,
一砖描述符索引,
一调色板号码,
至少一个纹理坐标夹紧允许参数,
至少一个纹理坐标镜反射允许参数,
至少一个纹理坐标包裹/镜反射屏蔽,和
至少一个纹理坐标级详细程度位移参数。
本发明的第五十二个方面是,提供了一种用于至少提供一个由三维图形系统处理的显示命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的装置,用于至少提供一个纹理确定命令,纹理确定命令包括:
一命令标识符字段,它具有一个110101六位二进制数值,
一图像数据格式参数,
一颜色元素大小参数,
一砖线大小参数,
一起始纹理存储器地址,
一砖描述符索引,
一调色板号码,
至少一个纹理坐标夹紧允许参数,
至少一个纹理坐标镜反射允许参数,
至少一个纹理坐标包裹/镜反射屏蔽,和
至少一个纹理坐标详细程度位移参数。
本发明的第五十三个方面是,提供了一种用于在三维图形系统中至少处理一个纹理确定命令的过程,该过程包括:
(a)解释命令标识符字段,命令标识符字段具有一个110101六位二进制数值,
(b)解释一图像数据格式参数,
(c)解释一颜色元素大小参数,
(d)解释一砖线大小参数,
(e)解释一起始纹理存储器地址,
(f)解释一砖描述符索引,
(g)解释一调色板号码,
(h)至少解释一个纹理坐标夹紧允许参数,
(i)至少解释一个纹理坐标镜反射允许参数,
(j)至少解释一个纹理坐标包裹/镜反射屏蔽,
(k)至少解释一个纹理坐标详细程度位移参数,和
(l)至少部分根据上述步骤至少产生一个图像。
本发明的第五十四个方面是,提供了一种用于至少处理一个具有命令标识符字段的纹理确定命令的三维图形设备,所述命令标识符字段具有一个110101六位二进制数值,所述设备包括:
用于解释具有110101六位二进制值的命令标识符字段的装置,
一电路,它解释图像数据格式参数、颜色单元大小参数、砖线大小参数、起始纹理存储器地址、砖描述符索引、调色板号码、至少一个纹理坐标夹紧允许参数、至少一个纹理坐标镜反射允许参数、至少一个纹理坐标包裹/镜反射屏蔽,和至少一个纹理坐标详细程度位移参数,以及
一显示处理器,它至少部分根据上述装置至少产生一个图像。
本发明的第五十五个方面是,提供了一种与三维图形系统一同使用的存储媒体,所述存储媒体至少存储一个纹理确定命令,所述纹理确定命令包括:
一命令标识符字段,它具有一个110101六位二进制数值,
一图像数据格式参数,
一颜色元素大小参数,
一砖线大小参数,
一起始纹理存储器地址
一砖描述符索引,
一调色板号码,
至少一个纹理坐标夹紧允许参数,
至少一个纹理坐标镜反射允许参数,
至少一个纹理坐标包裹/镜反射屏蔽,和
至少一个纹理坐标详细程度位移参数。
本发明的第五十六个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的过程,该过程包括至少产生一个纹理砖命令的步骤,纹理砖命令包括:
一命令标识符字段,它具有在110100和110010组内的一个六位二进制数值;
高和低的砖S坐标;
高和低的砖T坐标;和
一砖描述符索引。
本发明的第五十七个方面是,提供了一种用于至少提供一个由三维图形系统处理的显示命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的电路,用于至少提供一个纹理砖命令,纹理砖命令包括:
一命令标识符字段,它具有在110100和110010组内的一个六位二进制数值;
高和低的砖S坐标;
高和低的砖T坐标;和
一砖描述符索引。
本发明的第五十八个方面是,提供了一种用于在三维图形系统中至少执行一个显示命令的过程,该过程包括:
(a)解释命令标识符字段,命令标识符字段具有在110100和110010组内的一个六位二进制数值;
(b)解释高和低的砖S坐标;
(c)解释高和低的砖T坐标;
(d)解释一砖描述符索引;并且
(e)至少部分根据步骤(a)-(d)产生一个显示。
本发明的第五十九个方面是,提供了一种用于至少执行一个具有命令标识符字段的纹理砖命令的三维图形系统,命令标识符字段具有110100和110010组内的一个六位二进制数值,该系统包括:
一解码器,它解释具有110100和110010组内一个六位二进制数值的命令标识符字段;
一纹理单元,它解释高和低的砖S坐标、高和低的砖T坐标和一砖描述符索引;以及
一显示处理器电路,它至少部分根据坐标标识符和命令标识符产生一显示。
本发明的第六十个方面是,提供了一种与三维图形系统一同使用的存储媒体,存储媒体至少存储一个纹理砖命令,纹理砖命令包括:
一命令标识符字段,它具有110100和110010组内的一个六位二进制数值;
高和低的砖S坐标;
高和低的砖T坐标;和
一砖描述符索引。
本发明的第六十一个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的过程,该过程包括至少产生一个纹理存储器块装入命令的步骤,纹理存储器块装入命令包括:
一命令标识符字段,它具有一个110011六位二进制数值;
高和低的砖S坐标参数;
低的砖T坐标参数;
一T增量值;和
一砖描述符索引。
本发明的第六十二个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的装置,用于至少产生一个纹理存储器块装入命令,纹理存储器块装入命令包括:
一命令标识符字段,它具有一个110011六位二进制数值;
高和低的砖S坐标参数;
低的砖T坐标参数;
一T增量值;和
一砖描述符索引。
本发明的第六十三个方面是,提供了一种用于在三维图形系统中至少执行一个纹理存储器块装入命令的过程,该过程包括:
(a)解释命令标识符字段,命令标识符字段具有一个110011六位二进制数值;
(b)解释高和低的砖S坐标参数;
(c)解释一低的砖T坐标参数;
(d)解释一T增量值;
(e)解释一砖描述符索引;并且
(f)至少部分根据步骤(a)-(e)至少显示一个带纹理的基元。
本发明的第六十四个方面是,提供了一种用于至少执行一个具有命令标识符字段的纹理存储器块装入命令的三维图形系统,命令标识符字段具有一个110011六位二进制数值,该系统包括:
用于解释具有110011六位二进制值的命令标识符字段的装置;
用于解释高和低的砖S坐标参数的装置;
用于解释低的砖T坐标参数的装置;
用于解释T增量值的装置;
用于解释砖描述符索引的装置;以及
一显示电路,用于至少部分根据S和T坐标参数、T增量值和砖描述符索引,至少显示一个带纹理的基元。
本发明的第六十五个方面是,提供了一种与三维图形系统一同使用的存储媒体,存储媒体至少存储一个纹理存储器块装入命令,纹理存储器块装入命令包括:
一命令标识符字段,它具有一个110011六位二进制数值;
高和低的砖S坐标参数;
低的砖T坐标参数;
一T增量值;和
一砖描述符索引。
本发明的第六十六个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的过程,该过程包括至少产生一个装入纹理查找表命令的步骤,装入纹理查找表命令包括:
一命令标识符字段,它具有一个110000的六位二进制数值;
表中的高和低的索引;和
一砖描述符索引。
本发明的第六十七个方面是,提供了一种用于至少提供一个由三维图形系统处理的显示命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的电路,用于至少提供一个装入纹理查找表命令,装入纹理查找表命令包括:
一命令标识符字段,它具有一个110000的六位二进制数值;
表中的高和低的索引;和
一砖描述符索引。
本发明的第六十八个方面是,提供了一种用于在三维图形系统中至少执行一个装入纹理查找表命令的过程,该过程包括以下步骤:
(a)解释命令标识符字段,命令标识符字段具有一个110000的六位二进制数值;
(b)解释表中的高和低的索引;
(c)解释一砖描述符索引;并且
(d)至少部分根据步骤(a)-(c)将一纹理查找表装入存储器中。
本发明的第六十九个方面是,提供了一种用于至少执行一个具有命令标识符字段的装入纹理查找表命令的三维图形系统,命令标识符字段具有一个110000六位二进制数值,该系统包括:
一纹理存储器装置,用于解释具有110000六位二进制值的命令标识符字段;
用于解释表中高和低的索引的装置;
用于解释砖描述符索引的装置;
用于至少部分根据命令标识符字段和索引将纹理查找表装入纹理存储器中的装置。
本发明的第七十个方面是,提供了一种与三维图形系统一同使用的存储媒体,存储媒体至少存储一个装入纹理查找表命令,装入纹理查找表命令包括:
一命令标识符字段,它具有一个110000六位二进制数值;
表中的高和低的索引;和
一砖描述符索引。
本发明的第七十一个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的过程,该过程包括至少产生一个设置颜色命令的步骤,设置颜色命令包括:
一命令标识符字段,它具有在110111至111011范围内的一个六位二进制数值;
红色分量参数;
绿色分量参数;
蓝色分量参数;和
α分量参数。
前述过程还可包括产生附加的详细程度小数字段以及相关最小夹紧参数的步骤。
本发明的第七十二个方面是,提供了一种用于至少提供一个由三维图形系统处理的显示命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的电路,用于至少产生一个设置颜色命令,设置颜色命令包括:
一命令标识符字段,它具有在110111至111011范围内的一个六位二进制数值;
红色分量参数;
绿色分量参数;
蓝色分量参数;和
α分量参数。
前述系统还可包括用于提供附加的详细程度小数字段以及相关最小夹紧参数的电路。
本发明的第七十三个方面是,提供了一种用于在三维图形系统中至少解释一个设置颜色命令的过程,该过程包括以下步骤:
(a)解释命令标识符字段,命令标识符字段具有在110111至111011范围内的一个六位二进制数值;
(b)解释红色分量参数;
(c)解释绿色分量参数;
(d)解释蓝色分量参数;
(e)解释α分量参数;以及
(f)至少部分根据步骤(a)-(e)产生一个图像。
前述过程还可包括解释附加的详细程度小数以及相关最小夹紧参数的步骤。
本发明的第七十四个方面是,提供了一种用于至少解释一个具有命令标识符字段的设置颜色命令的三维图形系统,命令标识符字段具有在110111至111011范围内的一个六位二进制数值,该系统包括:
用于解释具有110111至111011范围内一个六位二进制数值的命令标识符字段的装置;
用于解释红色分量参数的装置;
用于解释绿色分量参数的装置;
用于解释蓝色分量参数的装置;
用于解释α分量参数的装置;以及
一显示电路,用于至少部分根据所述参数,产生一图像。
前述系统还可包括用于解释附加的详细程度小数以及相关最小夹紧参数的装置。
本发明的第七十五个方面是,提供了一种与三维图形系统一同使用的存储媒体,存储媒体至少存储一个设置颜色命令,设置颜色命令包括:
一命令标识符字段,它具有在110111至111011范围内的一个六位二进制数值;
红色分量参数;
绿色分量参数;
蓝色分量参数;和
α分量参数。
前述存储媒体还可包括用于存储附加的详细程度小数以及相关最小夹紧参数的装置。
本发明的第七十六个方面是,提供了一种用于至少产生一个由三维图形系统处理的显示命令的过程,该过程包括至少产生一个设置基元深度命令的步骤,设置基元深度命令包括:
一命令标识符字段,它具有一个101110的六位二进制数值,
一基元深度参数,和
一基元增量(delta)深度参数。
本发明的第七十七个方面是,提供了一种用于至少提供一个由三维图形系统处理的显示命令的系统,该系统包括:
至少一个处理器,
至少一个存储器,和
与处理器和存储器耦连的装置,用于至少提供一个设置基元深度命令,设置基元深度命令包括:
一命令标识符字段,它具有一个101110的六位二进制数值,
一基元深度参数,和
一基元增量深度参数。
本发明的第七十八个方面是,提供了一种用于在三维图形系统中至少处理一个设置基元深度命令的过程,该过程包括以下步骤:
(a)解释命令标识符字段,命令标识符字段具有一个101110的六位二进制数值,
(b)解释基元深度参数,
(c)解释基元增量深度参数,并且
(d)至少部分根据步骤(a)-(c)至少产生一个图像。
本发明的第七十九个方面是,提供了一种用于至少处理一个具有命令标识符字段的设置基元深度命令的三维图形系统,命令标识符字段具有一个101110的六位二进制数值,系统包括:
用于解释命令标识符字段的装置,命令标识符字段具有一个101110的六位二进制数值,
用于解释基元深度参数的装置,
用于解释基元增量深度参数的装置,以及
至少部分根据诸参数至少产生一个图像的显示电路。
本发明的第八十个方面是,提供了一种与三维图形系统一同使用的存储媒体,存储媒体至少存储了一个设置基元深度命令,设置基元深度命令包括:
一命令标识符字段,它具有一个101110的六位二进制数值,
一基元深度参数,和
一基元增量深度参数。
结合附图,参照以下较佳实施例的详细描述,将更加清楚完整地理解本发明的这些和其他特征和优点,其中:
图1示出了能产生3D图像和经数字处理的立体声的总体视频游戏系统;
图1A-1F例示了用图1系统可获得的3D屏幕效果;
图2示出了一例总体视频游戏系统的主要部件;
图3例示了一总体视频游戏系统的主要处理操作;
图4例示了一视频游戏系统的总体操作情况;
图4A例示了一视频游戏系统产生图形图像所执行的总体步骤;
图5示出了一例详细的总体系统结构;
图5A示出了一例主处理器初始化的程序;
图5B示出了一例主处理器存储图(memory map);
图6示出了一例协处理器的内部结构;
图6A示出了一例协处理器内部总线的结构;
图7示出了一例信号处理器的内部结构;
图7A示出了一例信号处理器的指令格式;
图7B示出了图7A中源字段或目的地字段的划分(slicing),可用图7所示的向量单元进行处理;
图7C示出了一例信号处理器向量单元所进行的加法运算;
图7D-7L例示了信号处理寄存器;
图8示出了一例分层任务表,它包括图形显示表和音频播放表(audio playlist);
图9示出了一例微码装入程序;
图10示出了一例简单的信号处理器的显示表处理;
图11示出了一例信号处理器的图形微码控制步骤序列;
图12A示出了一例双精度表示;
图12B示出了一例矩阵格式;
图13A示出了一例信号处理器的顶点缓冲器格式;
图13B示出了一例顶点数据定义;
图13C示出了一例信号处理器的段寻址方案;
图14示出了一例音频软件结构;
图15示出了一例简单的信号处理器的播放表处理;
图16示出了一例信号处理器的音频微码控制步骤序列;
图17示出了一例信号处理器的音频处理结构;
图18例示了显示处理器的总体处理步骤;
图19A和图19B例示了显示处理器的流出线结构;
图20示出了一例显示处理器的结构;
图21A-21J例示了显示处理器的寄存器;
图22示出了一例纹理存储器砖瓦描述符(tile descriptor)的方案;
图23示出了一例纹理单元的工作过程;
图24示出了一例纹理坐标单元和纹理存储单元的结构;
图25示出了一例纹理处理器的颜色索引模式(color index mode)查找;
图26示出了纹理存储器用于存储标有颜色索引的纹理结构的详细应用;
图27示出了一例颜色组合器的工作情况;
图28示出了一例α组合器的工作情况;
图29示出了一例α组织过程;
图30示出了一例对不同类型图原(primitive)的混合;
图31示出了一例混合器的工作情况;
图32示出了一例颜色元素格式;
图33示出了一例深度(z)元素格式;
图33A示出了一例允许写入的产生过程;
图34示出了一例视频接口的结构;
图34A示出了一例视频接口的操作序列;
图35A-35P例示了视频接口的控制寄存器;
图36示出了一例主存储器接口的结构;
图37A-37H例示了存储器接口的控制器寄存器;
图38示出了一例主处理器接口的结构;
图39A-39D例示了主处理器接口寄存器;
图40示出了一例音频接口的结构;
图41A-41F例示了音频接口寄存器;
图42示出了一例串行接口的结构;
图43A-43D例示了串行接口寄存器;
图44示出了一例外围接口的结构;以及
图45A-451例示了外围接口控制/状态寄存器。
图1示出了依照本发明的一视频游戏系统50实施例。该例中的视频游戏系统50包括主机52、视频游戏存储器件54和手动控制器56(或其他用户输入设备)。在该例中,主机52接至常规的家庭彩色电视机58。电视机58在其电视屏幕60上显示3D视频游戏图像并通过其扬声器62再现立体声。
在该例中,视频游戏存储器件54是一种可替换的存储器盒(memory car-tridge),可以插入主机52的顶面66上的插槽64中。例如,视频游戏存储器件54可以包含一个装有只读存储器(ROM)芯片76的塑料外壳68。在该例中,只读存储器76含有视频游戏软件。当把视频游戏存储器件54插入主机插槽64中时,存储器盒的电气触点74与主机内相应的“印刷板插座(edge connector)”的电气触点配对。该操作使存储器件的只读存储器76与主机52内的电子器件电气连接。
“只读存储器”芯片76存储了软件指令和其他与一特殊视频游戏相关的信息。例如,某一存储器件54中的只读存储器芯片76可以包含玩一探险游戏的指令和其他信息。另一存储器件54中的只读存储器芯片76可以包含玩一驾车或赛车游戏的指令和信息。再一存储器件54的只读存储器芯片76可以包含进行一教育游戏的指令和信息。当要更换游戏时,视频游戏系统50的用户可以简单地将合适的存储器件54插入主机插槽64中—从而使该存储器件的只读存储器芯片76(以及存储器件包含的任何其他电路)与主机52相连。这使主机52能够访问只读存储器76内所含的信息,这些信息按只读存储器中视频游戏软件的控制所规定的那样在彩色电视机58上显示图像并再现声音,来控制主机执行合适的视频游戏。
为了用视频游戏系统50玩视频游戏,用户应首先在主机52和他/她的彩色电视机58之间连接电缆78,使主机和电视机相连。主机52产生“视频”信号和“音频”信号,用以控制彩色电视机58。“视频”信号是控制显示在电视机屏幕60上的图像的信号,而“音频”信号通过电视机扬声器62播放声音。根据彩色电视机58的类型,可能必须在主机52和彩色电视机58之间的线路上使用一种称作“射频(RF)调制器”的附加装置。“RF调制器”(未示出)将主机52的视频和音频输出转换成可用电视机的内部“调谐器”接收和处理的广播样式的电视信号(例如,在电视频道2或3上)
用户还需使主机52与一电源相连。该电源可以包括一常规的AC适配器(未示出),适配器插入标准的家用电气壁插座中,并将室内电流转换成适于向主机52供电的较低的DC电压信号。
然后,用户可将手动控制器56a和56b接至主机面板82上相应的连接器80。控制器56可以是各种形式的。在本例中,所示的每个控制器56都有包括多种按钮84和一个方向开关或其他控制按钮86。例如,方向开关86可用来确定电视屏幕60上显示的符号应移动的方向(上、下、左或右),并且/或者确定3D世界中的视点。其他的控制器还可以是游戏杆、鼠标控制器和其他常规的用户输入装置。在本例中,能与主机52相连的控制器56可以多达四个,可玩四人玩的游戏。
然后,用户选择含有他或她想玩的游戏的存储器件54,并将该存储器件插入主机插槽64中(从而通过印刷电路板70和相关的印刷板插座,使只读存储器76与主机中的电子线路电气连接)。然后,用户可以操作电源开关88,接通视频游戏系统50。这使主机52开始根据只读存储器54中存储的软件进行视频游戏。他或她可以操纵控制器86,向主机52提供各种输入,从而影响视频游戏的进行。例如,按下按钮84之一可以使游戏起动。如上所述,移动方向开关86可使活动符号沿不同的方向在电视屏幕60上移动,或者改变用户在3D世界中的视点。根据存储在存储器件54内的特殊的视频游戏,控制器56上的这些不同的控制按钮84和86可以在不同的时候完成各自的功能。如果用户想重新起动游戏,他或她可以按复位按钮90。
                     3D屏幕效果举例
系统50可以实时交互式地处理三维世界的数字表示或模型,以便从该世界内的任意视点显示世界(或其局部)。例如,系统50可以响应来自游戏控制器86的实时输入,交互式地改变视点。例如,这可使游戏玩家通过在该世界内移动的“虚拟人”的眼睛观察该世界,并且到游戏玩家命令他或她去的地方走走看看。这种能够实时交互式地显示3D图像的能力可产生非常逼真并且激动人心的游戏。
图1A-1F仅示出了系统50可在彩色电视机58屏幕上产生的三维屏幕效果的一例。由于专利不能印刷成彩色的,所以图1A-1F是黑白的,但是系统50在彩色电视机上可把这些不同的屏幕显示成色彩斑斓的图像。另外,系统50可以对游戏控制器的操纵作出实时响应,快速产生这些图像(例如,几秒或零点几秒)。
图1A-1F中的每张图都是用一个表现山顶城堡的“世界”的三维模型产生的。该模型由几何形状(即,多边形)和“纹理”(数字存储的图形)构成,其中纹理被映射在几何形状确定的表面上。系统50适当地扩缩、旋转和移动这些几何形状,将其“投影”,并把它们合在一起,从而可从任意视点提供此三维世界的逼真图像。系统50可以响应人对游戏控制器86的操纵,实时交互式地完成上述功能。
图1A-1C和图1F从四个不同的视点显示了城堡的俯瞰图。注意,每张图都是透视图。系统50可在几秒内交互式地产生这些图像(以及其间的图像),几乎没有延迟或者延迟无法察觉,就好象视频游戏玩家正在实际飞过城堡一样。
图1D和1E示出了在从地面仰视城堡大门或城堡大门附近的图像。系统50对游戏控制器命令视点“落”在城堡前并命令“虚拟观察者”(即,3D世界中移动的虚拟人,通过他的眼睛显示景像)面向不同方向的输入作出响应,实时交互式地产生这些图像。图1D示出了一例“纹理映像”,图中砖墙的纹理(图形)被映射在城堡的墙上,从而产生了非常逼真的图像。
               视频游戏系统总体的电子线路
图2示出了主机52内的主要电子线路,它们包括:主处理器100、协处理器200和主存储器300。主处理器100是一计算机,它能根据控制器56提供的输入,运行存储器件54提供的视频游戏程序。协处理器200根据它从主处理器100获得的指令和命令,产生图像和声音。主存储器300是一快速存储器,用于存储主处理器100和协处理器200需要处理的信息,并且供主处理器和协处理器共享。在本例中,所有对主存储器300的访问都是通过协处理器200进行的。
在本例中,主处理器100通过主处理器和协处理器200之间的通信通路102,经协处理器200访问视频游戏程序。主处理器100可以通过协处理器和视频游戏存储器件之间的另一条通信通路104,从存储器件54读取信息。主处理器100可通过通路106将来自视频游戏存储器件54的视频游戏程序复制到主存储器300中,然后通过协处理器200以及通路102和106访问主存储器300中的视频游戏程序。
主处理器100不时地产生通知协处理器200做什么的命令表。本例中的协处理器200包括一个特殊用途的、高性能的专用集成电路(ASIC),对其内部设计加以优化以快速处理3D图像和数字音频。响应于主处理器100通过通路102所提供的命令,协处理器200产生施加于彩色电视机58的视频和音频。协处理器200用存储在主存储器300和/或视频游戏存储器件54内的图形数据、音频数据和其他数据,产生图像和声音。
图2示出,本例中的协处理器200包括一信号处理器400和一显示处理器500。信号处理器400是一个嵌入式可编程微控制器,它在视频游戏存储器件54提供的“微码”计算机程序的控制下,进行图像几何处理和音频数字信号处理。显示处理器500是一高速状态机(state machine),它能提供图原(graphic primi-five),从而产生图像,以在电视58上显示。信号处理器400和显示处理器500相互独立工作,但信号处理器可以通过向显示处理器发送图形命令,来管理显示处理器。信号处理器400和显示处理器500都由主处理器100直接控制。以下例举了信号处理器400和显示处理器500执行的功能和操作:信号处理器
—矩阵控制
—3D转换
—照明(lighting)
—剪切、透视和视口(viewport)应用
—显示处理器命令的产生显示处理器
—光栅化(rasterization)
—纹理坐标的产生
—纹理应用和筛选
—颜色组合
—混合
—模糊(fogging)
—去混叠(antialiasing)
—帧缓冲器和帧缓冲器控制
图3示出了本例系统50中主处理器100、协处理器200和主存储器300进行的主要过程。主处理器100从游戏控制器56接收输入,并执行存储器件54提供的视频游戏程序,以提供游戏处理(方框120)。它提供动画,并汇编图形和声音命令,供协处理器200使用。方框122、124和126对主处理器100产生的图形和声音命令进行处理—每个方框都由协处理器200完成。在本例中,协处理器的信号处理器400进行3D几何转换和照明处理(方框122),以便为显示处理器500产生图形显示命令。显示处理器500“画出”图原(例如,线、三角形和矩形),以产生图像,供彩色电视机58显示。显示处理器500通过使每个图原“光栅化”并加上纹理(如果需要),来完成这一“绘画”或描绘的功能(方框1 26)。完成速度非常快—例如,每秒数百万个“像素”彩色电视机图像元素)数量级。显示处理器500将其图像输出写入主存储器300中的帧缓冲器(方框128)。该帧缓冲器存储了将显示在电视机屏幕60上的图像的数字表示。协处理器200内的附加电路读取来自帧缓冲器的信息,并将其输出给电视机58,进行显示(方框130)。
信号处理器400还用数字音频信号处理技术处理从主处理器100接收到的声音命令(方框124)。信号处理器400将其音频输出写入主存储器300中的声音缓冲器。主存储器暂时“缓冲”(即,存储)声音输出(方框132)。协处理器200中的其他电路读取来自主存储器300的该被缓冲的声音数据,并将其转换成音频电信号(立体声左右通道),以施加于电视机扬声器62a、62b并由其再现(方框134)。
电视机58每秒显示30或60幅新图像。此“帧速率”可骗过人的眼睛认为看见了连续的运动,可以通过图像从一帧至下一帧的略微变化使主机52在电视机屏幕60上产生动画效果。为了跟上该电视机帧速率,协处理器200必须每1/30或1/60秒就产生一幅新图像。协处理器200还必须能够产生一连续的声音流,与屏幕60上的动画效果相伴。
                      系统总体操作
图4详细地显示了系统50的总体操作,并且图4A示出了该系统产生图形时进行的总体步骤。在本例中,主处理器100读取主存储器300中存储的视频游戏程序108(一般,该视频游戏程序来自视频游戏存储器件54,并已从视频游戏存储器件被复制到主存储器中)。响应于该视频游戏程序108的执行(并响应于来自游戏控制器56的输入),主处理器100为协处理器200产生一命令表110(或从存储器件58读取该表)(图4A,方框120a)。一般,表110包括两类命令:
(1)图形命令
(2)音频命令图形命令通知协处理器200将在TV屏幕60上产生什么图像。音频命令通知声音协处理器200它应产生什么声音以在TV扬声器62上再现。
图形命令表被称为“显示表”,因为它控制图像协处理器200在TV屏幕60上显示的图像。音频命令表被称为“播放表(play list)”,因为它控制通过扬声器62播放的声音。一般,主处理器100为彩色电视机58的每个视频“帧”时刻确定一新的显示表和一新的播放表。
在本例中,主处理器100通过把显示/播放表110存储入主存储器300而向协处理器200提供该表,然后通知协处理器在哪里找到该表(图4A,方框120c)。主处理器100还保证主存储器300包含一图形和音频数据库112,该数据库包括协处理器200产生显示/播放表110要求的图形和声音所需要的所有数据。图形和音频数据库112的全部或部分可以来自存储器件54。显示/播放表110规定协处理器200应使用图形和音频数据库112中的哪些部分。主处理器100还负责确保信号处理器400已装入了“微码”(即,通知信号处理器做什么的计算机程序)。
信号处理器400从主存储器300读取显示/播放表110,并对该表进行处理—需要时,访问图形和音频数据库112内的附加数据。信号处理器400产生两个主要输出:一为图形显示命令112,供显示处理器500作进一步处理(图4A,方框122c);另一个为音频输出数据114,供暂时存储在主存储器300内。信号处理器400处理音频数据的时间远远少于其通过扬声器62播放声音的时间。被称为“音频接口”(未示出)的协处理器200中的另一部分实质上读取经缓冲的音频数据并实时输出,供电视机扬声器62再现。
信号处理器400可以通过协处理器200内的通路将图形显示命令112直接提供给显示处理器500,或者它可以把那些图形显示命令写入主存储器300中,供显示处理器检索(未示出)。这些图形显示命令112命令显示处理器500用规定的符号画出(“描绘”)规定的几何形状(图4A,方框126a)。例如,显示处理器500可以根据这些图形显示命令112画出直线、三角形或矩形(多边形),并且可用特殊的颜色和/或纹理116填充三角形和矩形(例如,一棵树的树叶或一堵砖墙的砖块的图像)—所有都按图形显示命令112的规定。主处理器100将纹理图像11 6存储入主存储器300,供显示处理器500访问。主处理器100还可以将图形显示命令112直接写入主存储器300,供显示处理器500检索,从而直接命令显示处理器。
显示处理器500产生将出现在电视机屏幕60上的图像的数字化表示作为其输出(图4A,方框126b)。经数字化的图像(有时称为“位图”),被存储在主存储器300中的帧缓冲器118中。显示处理器500还可以存储和使用主存储器300中的深度(Z)缓冲器118b,以存储图像的深度信息。被称为“视频接口”(未示出)的协处理器200的另一部分对帧缓冲器118进行读操作,并将其内容转换成视频信号,以施加于彩色电视机58(图4A,方框127)。一般,帧缓冲器118是“双缓冲”(double buffered)的,即当协处理器200正将“下一幅”图像写入帧缓冲器的某一半时,视频接口正在读取帧缓冲器的另一半。
在本例中,图4A所示和上述各种步骤是“流水线式”的。所谓“流水线式”是指对图形生成过程的不同阶段同时进行不同操作。简单的类比是大多数人的洗衣方式。洗衣的非流水线方式包括在开始洗涤下一批衣物前对本批衣物完成所有相关的任务(洗涤、烘干、熨烫/折叠和存放)。为了节省时间,有多批衣物要洗涤的人通过对不同批衣物同时进行洗涤、烘干、熨烫/折叠和存放操作,而使洗衣过程流水线化。
同样,在本例中,主处理器100、信号处理器400、显示处理器500和视频接口210所进行的操作是流水线式的。例如,当本例中的主处理器100正在汇编提前两个视频帧的显示表时,信号处理器400和显示处理器500可以正在处理提前一个视频帧的数据,而视频接口可以正在处理程序中当前视频帧的数据。如以下所述,方框126a中由显示处理器500执行的描绘图形的详细步骤也是以流水线式的,以便使速度性能最佳。
                    更详细的系统结构
图5示出了视频游戏系统50更详细的结构。图中所示的视频游戏主机52除了包括主处理器100、协处理器200和主存储器300之外,还包括时钟发生器136、串行外围接口138、音频数/模转换器(DAC)140、音频放大器/混合器142、视频数/模转换器144和视频编码器146等附加部件。
在本例中,时钟发生器136(可由晶体148控制)产生定时信号,以对主机52中的其他部件定时并使之同步。不同的主机部件需要不同的时钟频率,而时钟发生器136能提供合适的时钟频率输出(或者提供可通过诸如分频等方法导出合适时钟频率的频率)。协处理器200中的定时块216从接收来自时钟发生器136的时钟信号,并且(必要时经适当分频后)将其分配给协处理器中各种其他的电路。
在本例中,游戏控制器58不与主处理器100直接相连,而是通过串行外围接口138接至主机52。串行外围接口138对从多达四个(或五个)游戏控制器56(或其他串行外围装置)输入的串行数据信号作多路分配,并按一预定的格式通过协处理器200将数据提供给主处理器100。在本例中,串行外围接口138是双向的,即,它除了能接收串行信息外,还能发送主处理器100确定的串行信息。
本例中的串行外围接口138还包括“引导ROM”只读存储器150,它用于存储少量的初始程序装入(IPL)码。当起动和/或复位时,主处理器100执行存储在引导ROM 150中的IPL码,以便主处理器开始执行存储器件54内的游戏程序指令108a(见图5A,方框160a和160b)。而初始游戏程序指令108a又可以控制主处理器100,从而对其访问主存储器300所需的驱动器和控制器初始化,并将视频游戏程序和数据复制到较快的主存储器300中,供主处理器100和协处理器200执行和使用(见图5A,方框160e、160f和160g)。
在本例中,串行外围接口138还包括一个安全处理器(security processor)(例如,一个小的微处理器),它能与存储器件54中一相关的安全处理器152(例如,另一个小的微处理器)进行通信(见图5)。这对安全处理器(一个在存储器件54中,另一个在主机52中)完成一鉴别功能,以确保只有被授权的存储器件才可与视频游戏主机52一起使用。参见美国专利第4,799,635号。在本例中,串行外围接口138中的安全处理器除了在软件控制下完成安全功能外,还可在软件控制下对从游戏控制器56接收到的数据进行处理。
图5示出了视频游戏主机52中的一个连接器154。在本例中,该连接器154接至存储器件印刷电路板70的边缘处的电气触点74(见图)。因此,连接器154使协处理器200与存储器件ROM76电气连接。另外,连接器154使存储器件中的安全处理器152与主机的串行外围接口138相连。尽管特例中的连接器154主要被用来从不可写的只读存储器76中读取数据和指令,但系统52的设计使连接器为双向的,即主机除了从存储器件54读取信息外,还能把信息发送给它。
图5还示出,协处理器200的音频和视频输出在被发送给电视机58之前,由协处理器外部的一些电子线路进行处理。特别在本例中,协处理器200以数字形式输出其音频和视频信息,然而常规的家用电视机58一般要求模拟的音频和视频信号。因此,要把协处理器200的数字输出转换成模拟形式—这是一种由DAC 140对音频信息和由VDAC 144对视频信息实行的功能。音频放大器142将DAC 140的模拟音频输出放大,放大器142还可以混合主机52外部产生的音频信号和通过连接器154提供的音频信号。VDAC 144的模拟视频输出被提供给视频编码器146,视频编码器146例如可以将“RGB”输入信号转换成复合视频输出。把经放大器142放大的立体声音频输出和视频编码器146的复合视频输出通过未示出的连接器提供给家用彩色电视机58。
如图5所示,主存储器300以CPU指令108b的形式存储视频游戏程序。这些CPU指令108b一般从存储器件54中复制得到。尽管本例中的CPU 100能够执行直接出自存储器件ROM 76的指令,但从ROM访问每条指令所需的时间量要比从主存储器300存取指令所需的时间多得多。因此,为了实际执行指令,一般主处理器器100会根据需要按块将游戏程序/数据108a从ROM 76复制到主存储器300中,然后访问主存储器以实际执行指令(见图5A,方框160e和160f)。主处理器器100最好包括一内部高速缓冲存储器,以便进一步减少指令的存取时间。
图5显示出,存储器件54还存储提供特殊视频游戏之图形和声音所需的图形和声音数据112a的数据库。主处理器100根据需要从存储器件54中读取图形和声音数据,并用纹理数据116、声音数据112b和图形数据112c的形式将其存储在主存储器300中。在本例中,显示处理器500包括一内部纹理存储器502,纹理数据116按需要被复制到该存储器502中,以供显示存储器使用。
存储器件54还存储协处理器的微码156。如上所述,在本例中,信号处理器400执行一计算机程序,从而完成其各种图形和音频功能。此计算机程序或“微码”由存储器件54提供。由于微码156由存储器件54提供,所以不同的存储器件可以提供不同的微码—从而在软件的控制下适应协处理器200提供的特殊功能。一般,当主处理器100起动信号处理器时,它会把微码156的一部分复制到主存储器300中,然后信号处理器400再根据需要访问微码的其他部分。信号处理器400执行信号处理器400中指令存储器402提供的微码。由于信号处理器(SP)微码156太大,无法一起装入信号处理器的内部指令存储器402,所以需把微码的不同部分从主存储器300装入指令存储器402,以便信号处理器400执行不同的任务。例如,可将SP微码156的一部分装入信号处理器400,进行图形处理,并将微码的另一部分装入该信号处理器,进行音频处理。在本例中,将信号处理器微码RAM 402(和图5中未示出的附加的信号处理器数据存储器RAM)映射到主处理器100的地址空间中,从而主存储器可以在软件的控制下通过装入和存储指令直接访问RAM的内容。
                      主处理器100
本例中的主处理器100是加州Mountain View市MIPS技术股份有限公司设计的MIPS R4300 RISC微处理器。此R4300处理器包括一带有64位寄存器存储器(file)的执行单元,可进行整数和浮点运算;一16KB的指令高速缓冲存储器;一8KB的回写数据高速缓冲存储器;以及一32入口的快速重编址缓冲器(TLB),用于虚拟至实际的地址计算。主处理器100用32位地址,以核心模式(kernel mode)读取“CPU指令(例如一视频游戏程序)108”。在该模式下可进行64位的整数运算,但32位调用约定可使性能最佳。有关主处理器100更多的信息,例如可参见Heinrich《MIPS微处理器R4000用户手册》(MIPS技术有限公司,1994年,第二版)。
主处理器器100通过总线102与协处理器200通信,在本例中,该总线包括双向32位SysAD多路复用地址/数据总线、双向5位宽SysCMD总线和附加的控制和定时线路。参见上述Heinrich手册第12章等。
常规的R4300主处理器支持六种硬件中断、一种内部(定时器)中断、两种软件中断和一种不可屏蔽中断(NMI)。在本例中,六种硬件中断输入中的三种(INT0,INT1和INT2)以及不可屏蔽中断(NMI)输入允许系统50中的其他部分中断主处理器。具体地说,连接主处理器中断INT0,以允许协处理器200中断主处理器;连接主处理器中断INT1,以允许存储器件54中断主处理器;并且连接主处理器中断INT2和NMI,以允许串行外围接口138中断主处理器。每当处理器被中断时,将查看内部中断寄存器,以便确定中断的原因,然后以适当的方式作出响应(例如,读取状态寄存器或者进行其他适当的操作)。除了来自串行外围接口138的NMI中断之外,所有的中断都是可屏蔽的(即,主处理器100在软件的控制下可以有选择地允许和禁止这些中断)。
主处理器100通过CPU至协处理器的总线102从系统50的其余部分读取和对其写入数据。协处理器200实行存储器映射功能,以允许主处理器100对主存储器30、存储器件盒ROM 76、“串行外围接口”138中的“引导ROM”150(和串行外围接口的其他部分)、协处理器200的各个部分(包括信号处理器RAM402)以及系统50的其他部分进行寻址。
在本例中,主处理器100所进行的操作完全依赖于视频游戏程序108。在本例中,所有“系统”软件都由存储器件58提供,以给予最大的灵活性。用不同类型的高级软件可更有效地运行不同的视频游戏(或其他应用)。因此,本例中的主机52不提供任何标准的软件库—或者根本不提供任何有关该事项的软件—因为这些库会限制灵活性。而本例中的所有软件由存储器件54提供。
视频游戏软件108的开发者可能希望用诸如器件驱动器(devicedriver)、调度部件(scheduler)和线索库(thread library)等高级软件结构来管理系统50中的各种资源。由于主处理器100是最新RISC(精简指令系统计算机)处理器/计算机,因此适于在高级软件环境中使用这些软件结构/构造并实行视频游戏程序108。
图5B中示出了一例主处理器100地址空间的系统“存储图””。如图5B所示,在本例中主存储器300分成两个存储体(存储体0和存储体1)。另外,与协处理器200中的寄存器一样,主存储器300中的某些组态(configuration)寄存器307被映射至主处理器的地址空间中。本例中的主处理器100通过在视频游戏程序和108的控制下,写入与每个协处理器200的子块有关的控制寄存器,能够控制每个协处理器的子块。
如图5B所示,存储器件54的地址空间被分成两个“域”(例如,对于两个不同的器件)。这些“域”被映射到主处理器100地址空间的几个部分中。串行外围接口138的各个部分(即,PIF引导ROM 150、PIF缓冲器RAM和PIF状态寄存器)也被映射到主处理器100的地址空间中。
                   一元化的主存储器300
本例中的主存储器300包括一RDRAM动态随机存取存储器,该存储器可从加州Mountain View市的Rambus股份有限公司获得。在本例中,尽管在发运(ship)时主机52只装有较小的RAM(例如,2或3MB)以降低成本,但主存储器300是可扩展的,可以提供多达8兆字节的存储空间。
在本例中,主存储器300为整个系统50提供存储。它为存储所有重要的数据结构提供一单独的地址空间,如图5所示,例如包括:
—主处理器指令108;
—信号处理器微码156;
—显示表图形命令110a;
—播放表音频命令110b;
—纹理图116和其他图形数据112c;
—彩色图像帧缓冲器118a;
—深度(z)缓冲器118b;
—声音数据112b;
—音频输出缓冲器114;
—主处理器工作值;
—协处理器工作值;
—在系统各部分间通信的数据。对光栅扫描显示系统采用单地址空间存储结构的优点和缺点是已知的(例如,参见再版的由Foley等人撰写的《计算机图形学:原理和实践》一书,Addison-Wesley公司,1990年第二版,第177-178页)。在过去,许多视频游戏(和其他图形)系统的设计师都拒绝单地址空间结构,而对图形数据采用专用视频RAM器件,对其他类型的数据采用存储器件。但是,在此视频游戏系统50的特殊例子中,一元化的主存储器300具有许多优点。例如:
简化了系统部件之间的数据通信。一旦将数据存储在主存储器300中,向系统另一部分传输数据就几乎没有或没有附加开销(overhead)。由此,可将系统中不同部分之间数据传输的开销降至最低。例如,由于主处理器100和协处理器200内的每个子块都能访问系统的主存储器300,所以被所有系统部件用作数据结构存储的主存储器还可用作各部件间的通用通信信道/数据缓冲器。
例如,信号处理器400可以直接访问被主处理器100存储在主存储器300内的显示表110。同样,显示处理器500可以直接访问被主处理器(和/或信号处理器)存储在主存储器内的显示命令。系统的所有其他部件可以直接获得主处理器100工作数据(它可通过“快速缓冲存储器流”(cacheflush)被自动写入主存储器300)。
一元化的存储器提供了存储器分配的灵活性。主存储器300的存储单元是相似的,所以每个存储单元都可用来存储任何类型的数据结构。主存储器300所有的分配方案都留给应用程序员决定。这在数据结构大小和存储器使用方面提供了很大的灵活性。数据结构可以存储在主存储器300中的任何地方,并且即使应用程序员作了规定,存储器300中的每个存储单元都可分配。
例如,某视频游戏程序员可以为高分辨率图像和/或图像卷起(scrolling)和观看图像全景(panning)提供较大的帧缓冲器,而另一程序员可以决定使用较小的帧缓冲器,以便为其他的数据结构(例如,纹理或音频数据)释放出存储空间。某件应用可以为音频数据花费主存储器300中较多的存储量给图形数据较少的存储量,而另一件应用可以为与图形有关的数据分配大部分存储量。同一视频游戏程序108可以动态地使存储分配从游戏的某一部分移至另一部分(例如,当游戏变换级次时),从而实现不同的效果,任何固定的或硬接线的存储分配都不会限制应用的灵活性。
一元化RAM结构支持灵活的数据结构共享及使用。由于所有重要的数据结构都被存储在公共主存储器300中,所以主处理器100和其他系统部件都可对其进行访问。在显示图像和源图像之间不存在硬件差异。例如,如果需要,主处理器100可以直接访问帧缓冲器118内单独的像素。显示处理器500的扫描转换输出可用作纹理映射过程中的纹理。图像源数据和经扫描变换的图像数据可以互换和/或合并,以实现某些特殊效果,例如将经扫描变换进入视点的图像歪曲。
通过精心的系统设计已将一元化存储器结构的缺点(例如,系统的不同部件争着访问主存储器300)降至最小。尽管在本例中通过单条窄(9位宽)总线106访问主存储器300,但通过使该总线速度加快(例如,240兆赫兹数量级)已提供了可接受的带宽。在整个系统50中提供了多个数据高速缓冲存储器,可使每个子部件能更耐心等待主存储器300。
                      协处理器200
图5示出,协处理器200除了包括信号处理器400和显示处理器500之外,还包括若干部件,它们是:
—CPU接口202;
—串行接口204;
—并行外围接口206;
—音频接口208;
—视频接口210;
—主存储器DRAM控制器/接口212;
—主内部总线214;以及
—定时块216。在本例中,主总线214允许协处理器200中的每个主要部件相互通信。
图6更详细的描绘了协处理器200。图中,协处理器是处理器、存储器接口和所有同时运行并且并行工作的控制逻辑的集合。以下将简要描述协处理器200中这些其它子块所提供的总体功能:
—信号处理器400是一执行音频和图形任务的微码装置;
—显示处理器500是表现为帧缓冲器118的图形显示流水线。
—在本例中,协处理器的串行接口204在串行外围接口138和协处理器200之间提供一接口。
—协处理器的并行外围接口206与存储器件54或接至连接器154的其他并行器件相接。
—音频接口208从主存储器300中的音频缓冲器114读取信息,并将其输出给音频DAC 140。
—协处理器的视频接口210从主存储器300中帧缓冲器118a读取信息,并将其输出给视频DAC 144。
—CPU接口202是主处理器100、协处理器200与系统50其他部分之间的网关。
—DRAM控制器/接口212是协处理器200(和主处理器100)访问主存储器300所通过的网关。存储器接口212为主处理器100、信号处理器400、显示处理器500、视频接口210、音频接口208以及串行和并行接口204和206访问主存储器300提供了通道。
这些不同的处理器和接口可以同时工作。
本例中的信号处理器400包括上述指令存储器402、数据存储器404、标量处理单元410和向量处理单元420。指令存储器402存储由标量单元410和/或向量单元420执行的微码。数据存储器404为标量单元410和向量单元420存储输入数据、工作数据和输出数据。在本例中,信号处理器400只能执行来自指令存储器402的指令,但是可以通过存储器直接存取(DMA)技术对主存储器300进行存取。
本例中,标量单元410是一个执行MIPS R4000指令系统一个子系统的通用整数处理器。它用于进行指令存储器402内微码所规定的通用运算。向量单元420包括八个能进行并行数值计算的16位计算元件。向量单元420特别适用于进行图形矩阵计算和某些类型的数字音频信号处理运算。
本例中的显示处理器500是一种能够提供显示图像之数字表示的图形显示流水线装置。它根据信号处理器400和/或主处理器100产生的图形显示命令进行工作。显示处理器500除了包括纹理存储器502之外,还包括一光栅化装置(rasterizer)504、纹理单元506、颜色组合器508、混合器(blender)510和存储器接口512。概括地说,光栅化装置504使多边形(例如,三角形和矩形)几何基元光栅化,以便确定显示屏60上的哪些像素是在这些基元内。纹理单元可将存储在纹理存储器502中的纹理图施加到用光栅化装置504求解的基元边缘方程(primitive edge equation)所确定的纹理区上。颜色组合器508对纹理颜色和一种与图原有关的颜色进行组合和内插。混合器510将所得的像素与帧缓冲器118中的像素混合(通过存储器接口512存取帧缓冲器中的像素),并且还进行Z缓冲(即,用于去除隐藏面和去混叠操作)。存储器接口512对单个像素进行读、修改和写操作,并且还具有装入/复制纹理存储器502、填充矩形(快速清除),以及将纹理存储器502中的多个像素复制到帧缓冲器118中的专用模式。存储器接口512具有一个或多个像素高速缓冲存储器,以减少对主存储器300的存取次数。
显示处理器500包括存储显示处理器状态的电路514。例如,显示处理器500的其余部分利用该状态信息来选择描绘模式(rendering mode),确保实现受某一模式变化影响的所有先前的描绘都发生在该模式改变之前。
显示处理器500的命令表通常通过连接信号处理器和显示处理器的专用“X总线”218,直接来自信号处理器400。说得更具体些,本例中的X-总线218被用来把图形显示命令从信号处理器数据存储器404传送到显示处理器500中的命令缓冲器(图6中未示出)中,由显示处理器进行处理。但是,在本例中,也可由信号处理器400和/或主处理器100通过主存储器300把图形显示命令传送给显示处理器500。
显示处理器500用物理地址访问主存储器300,以便装入其内部纹理存储器502,为混合而读取帧缓冲器118,为比较深度而读取Z缓冲器118B,写至Z-缓冲器和帧缓冲器,以及读取存储在主存储器中的任何图形显示命令。协处理器内部总线结构
图6A更详细地显示了一例协处理器总线214的结构,在本例中,该总线包括32位地址(“C”)总线214C和64位数据(“D”)总线。这些总线214C和214D与信号处理器400、显示处理器500、CPU接口202、音频接口208、视频接口210、串行接口204、并行外围接口206以及主存储器(RAM)接口212都相连。如图6A所示,主处理器100和协处理器200的每一子块都通过内部协处理器总线214C和214C以及主存储器接口/控制器212a/212b与主存储器300通信。
在本例中,主存储器接口/控制器212a和212b将被认定在协处理器地址总线214C上的主存储器地址转换成9位宽的格式,以便通过9位宽的主存储器多路复用地址/数据总线106进行通信,并且主存储器接口/控制器212a和212b还在主存储器总线106的9位宽数据格式和协处理器数据总线214D的64位宽数据格式之间转换。在本例中,作为其一部分的DRAM控制器/接口212包括由Rambus股份有限公司提供的常规RAM控制器212b(见图5C)。9位宽主存储器总线106的使用减少了协处理器200的芯片引脚数。
在本例中,所示的协处理器200的每个子块都有一个相关的存储器直接存取(DMA)电路,可允许子块独立对主存储器300寻址和存取。例如,信号存储器DMA电路454、显示存储器DMA电路900、串行接口DMA电路1300和并行外围接口DMA电路1400,它们都允许其相关的协处理器子块在协处理器地址总线214C上产生地址,并通过协处理器数据总线传输数据(另外,显示处理器500还具有一个存储器接口块512,可对主存储器的帧缓冲器118和纹理数据116进行存取)。
尽管协处理器200的每个子块都能独立对主存储器300进行存取,但是在本例中,它们都共享公共总线214C和214D-并且某时刻只能有一个子块可以使用这些被共享的总线。因此,协处理器200已被设计得能够最有效地利用公共总线214。例如,协处理器200的子块可以缓冲或“高速缓冲”信息,以使同一子块对不同总线访问的频率最低,并使子块更能容忍总线的暂时无效。专用总线218允许信号处理器400不必等待主总线214有效便能与显示处理器500通信。
再如图6A所示,协处理器200的每个子块都包括控制/状态寄存器,主处理器100可以通过CPU接口202访问这些寄存器。例如,信号处理器寄存器407、显示处理器寄存器507、音频接口寄存器1207、视频接口寄存器907、串行接口寄存器1307、并行外围接口寄存器206、RAM接口寄存器1007a以及RAM控制器寄存器1007b都被映射到主处理器100的地址空间中。在游戏程序108的控制下主处理器100可以对这些不同的寄存器进行读写,从而直接控制协处理器200中子块的运行。
                      信号处理器400
图7更详细地给出了本例中信号处理器400的结构。如上所述,信号处理器400包括标量单元410、向量单元420、指令存储器402和数据存储器404。本例中,标量单元410是一个执行MIPS4000指令系统中一个分系统的32位整数处理器。向量单元420(在MIPS 4000结构中定义为标量单元410的“CP1”处理器)并行地对8组16位数值执行整数计算(例如乘法、加法、减法和相乘/累加)。
向量单元420可以同时并行地对8对16位运算数作相同的运算。这就使得信号处理器400特别适用于“乘积和”计算,如在矩阵乘法、纹理重复取样(tex-ture resampling)和音频数字信号处理(如数字音频合成和空间滤波及频率滤波)中的那些计算。
信号处理器400采用RISC(reduced instruction set computer,精简指令系统计算机)结构,根据指令存储器402中的指令提供高性能的机器控制。本例中,执行单元包括一程序计数器432,用来在通路434上对指令存储器402寻址。本例中,该程序计数器432仅能访问指令存储器402中的4千字节的指令空间,这就需要首先将要由信号处理器执行的指令装入指令存储器内。执行单元430根据当前正在执行的指令,产生输出控制信号436。这些输出控制信号436控制信号处理器400的所有其他部分,并排定顺序管理流水线式的指令处理。标量单元410和向量单元420受这些控制信号436的控制。例如,标量单元410可以通过通路438对数据存储器404寻址,用装入(load)/存储块440从数据存储器读取数据和/或将数据写入数据存储器。数据通路414可以根据计算结果进行测试,并通过通路442将得出的条件输出提供给执行单元430。将具有恰当(下一个)地址的程序计数器432装入指令存储器402,执行单元430可以用这些条件输出进行条件分支或转移。因为标量处理器410具有这些更为通用的能力,因而本例中用作通用的功能,例如,除了提供32位整数计算外,还可用于控制流、地址计算等。
执行单元430按照标准MIPS R4000指令系统,执行中间、转移和寄存指令格式。图7A示出了一例寄存指令格式450,以及信号处理器400是如何使用寄存指令格式访问数据存储器404中3个128位宽的字452的。寄存指令格式450可以包括一个6位操作码字段450(a)、一个5位源寄存器说明符450(b)、一个5位目标(源/目的地)寄存器说明符450(c)、一个5位目的地寄存器说明符450(d)和参数字段450(e)。参数字段450(e)可以指定移位量和/或功能,并与操作码450(a)一起确定要进行的运算。字段450(b)、450(c)和450(d)中的每一个规定了在数据存储器404中的一个存储单元,因此每一个字段都指定一个128位的字。
如图7B所示,向量单元420将这些128位的字中的每一个都视为8个16位值的并置序列,并且并行对16位值中的每一个进行运算。向量单元420的运算是由CP1类型指令中的指令调用的,CP1类型指令通常是为MIPS R4000指令系统中的浮点运算保留的(本例中信号处理器400没有浮点运算)。
标量单元410包括一个寄存器文件存储器412,它包括32个寄存器,每个寄存器为32位宽。标量单元还包括一数据通路414,它包含加法器、移位器和进行整数计算和其他运算所需要的其他逻辑电路。寄存器文件存储器412与由MIPS R4000结构定义的通用寄存器文件存储器类似,并以R4000格式接受指令。数据通路414包括一整数乘法器/除法器,并与从指令存储器402接收64位宽指令的执行单元430一起进行运算。
向量单元420包括8组寄存器文件存储器422(0)-422(7)和8组相应的数据通路423(0)-423(7)。数据通路423中的每一条包括一16位乘法器、一16位加法器和一48位累加器(48位累加为音频筛选器提供大量抽头(tap),并且还提供部分乘积,其中,一系列的16位乘积与和用来获取需要多于16位精度的某些图形计算的32位结果)。每个寄存器文件存储器422包括32个寄存器,每个寄存器为32位宽。一条128位宽的数据通路444将向量单元420与装入/存储块440相连,而另一条128位宽的数据通路446将装入/存储块440与数据存储器404相连。数据存储器404存储4096(4KB)个字,每个字128位宽。当检索出数据存储器404中的某一字供向量单元420使用时,它被分成8个16位的段,每一段被送到向量单元420中不同的寄存器存储器422内(见图7B)。图7C描述了一例由向量单元420进行的加法运算。当向量单元420向在数据存储器404内被寻址的目的地写入时,每个寄存器文件存储器422贡献出16位,这些16位在写入数据存储器之前被合并成一128位字(见图7A)。也可以是,装入/存储器块440包括一导引(steering)乘法器结构(未图示),该导引乘法器结构可以导引数据存储器128位字中的16位字去往/来自不同向量单元寄存器文件存储器422,其中,特定的子字和特定的向量单元寄存器文件存储器可以根据来自指令存储器402的指令选取。与此类似,装入/存储块440包括另一导引乘法器结构(未图示),该结构可以装入数据存储器408和标量单元410之间导引不同大小的数据单元(例如,字节、16位半字或32位字),其中,特定的数据单元和大小是由指令存储器402中的指令指定。例如,参见Heinrich的《MIPS R4000微处理机用户手册》(1994年第二版)中装入和存储“字节”、“半字”、“字”、“字左(word left)”和“字右(word right)”的描述。
信号处理器400还包括一DMA控制器454和CPU控制寄存器456。DMA控制器454与协处理器内部总线214相连,用来将数据转入和转出指令存储器402和/或数据存储器404。例如,DMA控制器454可以把微码模块156从主存储器300复制到信号处理器指令存储器402内,DMA控制器454也可以用来在数据存储器404和主存储器300之间传送信息。DMA控制器可以接受执行单元430的指令,并在通路438上从标量单元数据通路414接收DMA地址和数据信息。DMA控制器454还可以通过CPU控制寄存器456接受主处理器100的指令。把CPU控制寄存器456映射入主处理器100的地址空间内,并可以用MIPS“CP0”指令格式,由信号处理器400和执行单元430访问。
图7D-7L描述了一例CPU控制寄存器756。图7D-7H中的寄存器用来控制和/或监视DMA控制器454。
例如,图7D中的SP-DRAM DMA地址寄存器458可以由主处理器(以及SP执行单元430)写入或读取,并用来指定指令存储器402或数据存储器404中的起始DMA地址。图7E中的SP存储器DMA地址460用来指定主存储器300中的起始DMA地址。图7F和7G中的读和写DMA长度寄存器462、464分别规定在信号处理器400和主存储器300之间转移的数据块的长度,转移的方向取决于这两个寄存器中哪一个是用来指定块长度的。图7H和7I中的DMA状态寄存器466、468可以分别由主处理器100读取,以确定DMA控制器454分别是满还是忙。
图7J描述的是CPU控制寄存器456中的主要SP状态寄存器470。当由主处理器100写入时(图7J的上图),SP状态寄存器470用作SP控制寄存器,并且当由主处理器读取时(图7J的下图),指示SP状态。当用作状态寄存器时,SP状态寄存器470通知主处理器100 SP是否停机(字段471)、SP是否以断点模式运行(字段472)、DMA控制器454是忙还是满(字段475)、SP I/O是否满、SP是否以单步方式运行(字段477)、SP是否以达到断点时不产生中断的方式运行(方框478)以及SP是否已经产生可以在软件控制下定义的各种通用“信号”479,以提供涉及各种依赖于软件的参数的状态。主处理器100可以写入寄存器470,使信号处理器400停止或开始(字段480、481)、清除断点模式(字段482)、清除或设置中断模式(字段483、484)、清除或设置单步模式(字段485、486)清除或设置在断点处中断的模式(字段487、488)以及清除或设置各种依赖于软件的“信号”(字段489、490)。
图7K描述了一种用作主处理器100和信号处理器400之间通用通信的“号志”(semaphore)的附加SP寄存器491。该寄存器491包含一标志,主寄存器100在读取寄存器时设置它,而在写入寄存器时清除它。信号处理器400也能设置或清除该标志。
图7L描述了一个指令存储器内装自测试器(BIST)状态寄存器,在由主处理器100写入时用作BIST控制寄存器(图L的上图),并当由主处理器读取时指示BIST状态(图7L的下图)。程序计数器432最好也映射入CPU控制寄存器456内,从而它可以由主处理器100写入和读取。
                       信号处理器微码
信号处理器400完成的特定功能依赖于存储器件54提供的SP微码156。本例中,SP微代码156既提供图形处理功能也提供音频处理功能。如上所述,信号处理机400用作图形处理时执行的主要任务包括读取显示清单、执行三维几何变换和照明计算,以及产生由显示处理器500使用的相应的图形显示指令。更详细地说,信号处理器400在微码156的控制下执行下述所有的图形功能:
·显示表处理
·矩阵定义
·顶点产生和照明
·纹理确定/装入
·剪切和挑选
·显示处理器指令设立
·流控制信号处理器400在微码156的控制下执行下述所有功能,来处理音频:
·播放表处理
·数字音频合成/处理
·将数字音频抽样写至主存储器音频缓冲器114
                       任务表
通过向信号处理器提供任务表,主处理器110通知信号处理器400该做什么。在信号处理器400上运行的微码156程序称为任务。主处理器100(因此由存储器件54提供的视频游戏程序108)负责在信号处理器400上对任务按时间排列和调用任务。任务表含有信号处理器400开始执行任务所需的所有信息,包括为执行任务需要运行的微码156程序的指针。主处理器100在游戏程序108的控制下提供该任务表。
图8给出一例任务表250。任务表250可以参照一个或多个显示表和/或播放表110。这些显示表或播放表回过来又可以参照包括其他显示表或播放表的附加数据结构。显示表110可以指向其他的显示表和/或图形数据。与此类似,一播放表可以参照其他的播放表和/或声音数据。本例中,显示表和播放表可以被认为是多达10层深的分层数据结构。信号处理器400处理堆栈的显示表和播放表、推进和上托当前显示表指针。所有的显示表必须用“结束”指令来终止。例如,图8中所示的显示表110(1)参照另一显示表110(2)。显示表110(2)参照执行该表需要的图形数据112。
为了作出图形动画,只需要对那些从一帧到另一帧有变化的显示表部分设置“双缓冲器”。这样,只需要对那些从一帧到另一帧有变化的数据“双缓冲”,这样就节省了主存储器300中的空间。双重缓冲器之间的交换是通过改变任务表250中的区段基地址和通过以恰当有效的方式组织分层显示表来有效完成的。显示表或显示表的片断(fragment)可以链接在一起,便于更有效的利用存储器。
图9描述了一例由主处理器100执行的调用由信号处理器400作的新任务表处理的过程。主处理器100首先将任务(显示)表装入主存储器300(方框601)。随后,它通过写至SP状态寄存器470和/或从SP状态寄存器470读取,使信号处理器400停机(或检验以确保信号处理器停机)(方框602)。主处理器100然后写至SP DMA寄存器485、460、462,以将初始微码模块装入信号处理器指令存储器402(604,图9)。主处理器100接着将由方框601装入的任务(显示)表的主存储器300中的地址存储到信号处理器数据存储器404内(方框606,图9)。主处理器100然后使信号处理器程序计数器432复位(方框608,图9),并写至SP状态寄存器470,以启动信号处理器400(方框610,图9)。通常,信号处理器400接着再用其DMA控制器454将任务(显示)表从主存储器300装入其数据存储器404内。
既然信号处理器400有一个任务表并且被启动,所以它执行任务表中被请求的每一个操作。它继续执行任务表,直到到达任务表的终点,那时它停下等待主处理器100提供新的任务表。尽管如上所述,在许多情况下只有一部分任务表和/或任务表参照的显示表和/或播放表实际上从一帧改变到下一帧。主存储器300中的任务表的部分可以被“双缓冲”,因而当信号处理器400从一个缓冲器读取时,主处理器100可以向另一个缓冲器写入。在下一个视频帧之前,主处理器100可以改变指针,使信号处理器400进入新的缓冲器。
信号处理器400执行任务表时,它根据执行指定任务的需要,从主存储器300检索附加的SP微码156模块。例如,信号处理器400可以用它的DMA装置454将特定的图形微码装入指令存储器402,执行由某一任务表指定的图形命令,并可以类似地检索并装入音频处理微码程序,进行由任务表指定的音频处理。可以根据需要装入不同的微码程序或“重复占位程序段(overlays)”,从而可以以较佳方式处理特定类型的图形和/或音频处理操作。举例来说,信号处理器400可以装入特定的照明程序作为重复占位程序段,执行特定的照明操作,并且可以装入剪取程序或重复占位程序段,执行特定的选取操作。本例中,因为信号处理器指令存储器402不够大而无法存储所有的SP微代码156,所以,在执行单个任务表250期间必须将微码装入和再装入信号处理器400,并且将信号处理器设计成只执行来自其内部指令存储器的指令。
图10描述了一例根据显示表110由信号处理器400执行的简化图形处理过程。该简化的处理过程中,显示表首先指令信号处理器400设置各种将由协处理器给出的定义整体图形画面的属性。这些属性包括,例如,浓淡、照明、Z缓冲、纹理产生、模糊和选取(图10方框612)。显示表接下来指令信号处理器400定义建模(modeling)/观察矩阵和投影(project)矩阵(图10,方框614)。定义了恰当的矩阵以后,显示表根据由方框614定义的建模/观察矩阵和投影矩阵、并且还根据由方框612设置的属性,指令信号处理器400变换一组顶点。最后,显示表指令信号处理器400产生一图形显示(如三角形)命令,该图形显示指令指引处理器500根据方框616产生的顶点和方框612设置的属性描绘一图元(图10,方框618)。信号处理器400可以响应于618转移它已经产生的显示处理器指令(或者该指令的地址,该地址可由信号处理器存储在其数据存储器404内或存储在主存储器300内),用作由显示处理器500进行的访问和执行。
图11描述的是由信号处理器图形微码156进行的处理某一显示表110的整个过程(例如进行图10中所示类型的处理过程)。信号处理器400得到下一个显示表指令,并确定该指令是哪一种类型的指令(图11,方框622)。本例中的显示表通常具有5种不同的类型:
·信号处理器属性指令
·显示处理器指令
·矩阵指令
·顶点指令
·三角形指令
·流控制指令
如果显示表指令是一个信号处理器属性指令,那么信号处理器400就像由指令指定的那样设置信号处理器属性(图11,方框624)。本例中,规定了如下类型的SP属性指令:
·浓淡
·照明
·Z-缓冲
·纹理
·模糊
·挑选
下面是SP属性指令格式和相关定义的一些例子:信号处理器属性指令G_SETGEOMETRYMODE:
    command
  command
该命令“设置”某个描绘流水线状态。该状态保持在信号处理器400内,并向使用者提供一SET(设置)/CLEAR(清除)接口。
命令字段中“接通”的位在内部状态下被接通(ON)。G_SHADE    使能进行顶点明暗处理或使用图元颜色给多边
形涂色(缺省为顶点明暗处理)。G_LIGHTING    使能进行照明计算。G_    SHADING_  使能进行光滑或平滑的明暗处理(清除该位的SMOOTH    缺省为平滑明暗处理)。G_ZBUFFER    使能进行z缓冲器深度计算。  G_TEXTURE_GEN           使能进行纹理坐标S&T的自动产生。变换以
                      后,可以用球面映射来替代该顶点原先给出的
                      任何S&T值。G_FOG                   使能产生模糊系数,并替换顶点α。大的α更加
                      模糊(较远)。G_TEXTURE_GEN_LINEAR    使设置G_TEXTURE_GEN时产生的纹理坐
                      标线性化。例如,当进行环境变换时,它允许使
                      用全景纹理变换。G_LOD                   使能产生mipmapped纹理和纹理边缘模式的
                      详细等级(LOD)值。G_CULL_FRONT            选取面向正面的多边形G_CULL_BACK             选取面向背面的多边形G_CLEARGEOMETRY MODE:
与G_SETGEOMETRYMODE相同,但该命令/“清除”了某个描绘流水线状态(命令字段中“接通”的位在内部状态中被断开(OFF))。G_LIGHT:
         Command     param     length=16
    seg     address
    light.r     light.g     light.b     0x00
    light.r     light.g     light.b     0x00
    light.x     light.y     light.z     0x00
该命令把光传送到描绘流水线。这里可以有多达7种有向光(以数字1-7标出)加上一背景光。param指定用哪个光号(n)替换该光说明。用G_NUM_LIGHTS指令指定使用8种光中的几种光。如果指定的光的数目是N,则开始的N种光(1-N)是使用的光,而第N+1种光将是背景光。“param”字段应当根据数据存储器404+(n-1)×2中保持的值来设置。
背景光是由一种颜色定义的:light.r,light.g,light.b(无符号的8位整数),它应被设置成背景光乘以要画的物体的颜色(如果你想照亮某一经纹理映射的物体,则采用背景光的颜色)。(对于背景光,light.x,light.y和light.z字段可忽略。本例中,除了指定黑色以外,不能断开背景光。
有向光是由一种颜色指定的:light.r,light.g,light.b(无符号的8位整数),与背景光相同,它应被设置成光源的颜色乘以要画的物体颜色。有向光也具有方向。light.x,light.y和light.z字段(带符号的8位小数,其中小数为7位)表示从物体到光的方向。必须至少有一种有向光被接通(如果在G_SETGEOME-TRYMODE命令中允许G_LIGHTING),但如果颜色是黑色,则不会对景色产生影响。
即使光的数目没有变化,有时在下一个G_VTX命令之前、G_LIGHT命令之后,应当始终使用G_NUM_LIGHTS命令。G_NUM_LIGHTS:
    Command     param     length=8
   seg               address
   0x8000     32x(1+N)
        0x00000000
N=漫射光源数(1-7)。
该指令指定应当使用多少种光。在下一个G_VTX指令之前,在G_LIGHT指令之后始终应当使用该指令。该参量指定漫射光源数(N),该数至少为1,并且不大于7。背景光源将是编号为N+1的光,而有向光源将为编号1至N的光。G_ETOTHERMODE_H:
    command     shift    len
                      word
该命令在显示处理器中设置“其他”方式的高字(high word),包括混合、纹理和帧缓冲器参数。信号处理器400记忆“其他”状态下显示处理器500的高字和低字(low word),以便给出一简单设定的命令接口。尽管这是一个显示处理器指令,但它必须由信号处理器400进行句法分析和解释,因而在没有经过信号处理器之前,不能直接传送到显示处理器。
该命令中的移位(shift)和长度(len)参数用来构筑一屏蔽(mask):
(((0x01<<len-1)<<shift)该屏蔽用来清除显示处理器500状态字中的那些位。来自字参数的新的位经“或(OR)”后进入状态字(参数字必须预移位(pre-shift)。G_SETOTHERMODE_L
这与G_SETOTHERMODE_H相同,但影响显示处理器500上“其他”方式下的低字。G_TEXTURE:
    command            sscale
    tscale   mipmaplevel     tilenum     on
该命令将纹理变换(texture mapping)接通/断开(ON/OFF),提供纹理坐标比例,并选择砖瓦(tile)数(在铺砖瓦的纹理内)。比例参数在(.16)的格式中,并对顶点指令中的纹理参数确定比例。纹理开/关接通和断开几何流水线中的纹理坐标处理。砖瓦数与流水线光栅部分中选择的砖瓦对应。砖瓦数还保持细节等级(LOD)中的最大等级(mid-mapping)。G_LOOKAT_X:
    Command     param     length=16
   seg             address
           0x00000000
           0x00000000
   X    Y    Z    0x00
该命令用作自动纹理坐标产生。它用来描述眼睛的方位,从而信号处理器400知道是相对于什么产生纹理坐标的。XYZ值(8位带符号的小数,小数为7位)描述的是世界空间(worldspace)(MODELVIEW矩阵和PROJECTION矩阵之间的空间)中的一个向量,该空间垂直于观察者的观察方向,并指向观察者的右侧。G_LOOKAT_Y
与G_LOOKAT_X相同,但被寻址段开头的零字(zero word)为零(0x00000000)。
                         DP命令产生
回过来看图11,如果下一个显示表命令是显示处理器500想要的命令,那么信号处理器400简单地将命令写到显示处理器(图11的方框626)。方框626可以将DMA显示处理器命令通过X-总线218写入显示处理器500,也可以将显示处理器命令存放在主存储器300中的缓冲器内,供显示处理器访问。矩阵命令
如果下一个显示表命令是一个矩阵命令,则信号处理器400更新它正在使用的当前矩阵的状态(图11,方框628),并将经更新的矩阵放置在矩阵堆栈(stack)上(方框630)。如上所述,本例中,信号处理器400保持有10层深的建模/观察矩阵堆栈。可以将新的矩阵装入到存储栈上,乘以(并置)存储栈的顶部,或从堆栈弹出(pop off)。本例中,信号处理器400保持“一层深”的投影矩阵。所以,新矩阵可以装入或乘以当前投影矩阵,但不能下压(push)或弹出(pop)。
本例中,建模/观察矩阵堆栈位于主存储器300内。视频游戏程序108必须将足够的存储器分配给该堆栈,并将指针提供给任务表250中的栈区。矩阵的格式对于信号处理器的向量单元420优化。为了提供恰当的分辨率,本例中的信号处理器400以32位“双精度”表示每一矩阵值,用高16位带符号整数部分(表示值大于1的部分)和低16位小数部分(表示值介于0和1之间的部分)。然而,本例中的向量单元420对16位宽的值进行运算,而不能直接乘以32位宽的值。矩阵格式(如图12B所示)将各矩阵元的整数部分合成一组,后面是各个矩阵元的小数部分。这样,信号处理器400就可以更有效地单独乘16位整数部分和16位小数部分的办法来处理矩阵,而不用反复对矩阵进行“扩张”(unpack)或“压缩”(pack)。
例如,向量单元420可以在一次运算中乘一矩阵行中的每一16位定点带符号的整数值,而在另一次运算中可以乘同一行中的每一16位小数部分。这两个部分结果可以加起来,得到一个32位双精度值,它们也可以分开使用(例如,对于只需结果的整数部分或者的只需结果小数部分的运算)。所以,本例中,即使向量单元420对16位值进行运算而且没有明显的“双精度”性能,矩阵表达式仍然使信号处理器400能够有效地处理32位精度值。
下面是信号处理器矩阵命令和相关的格式的举例:矩阵命令例:G_MTX:
    Command     param     length
   seg              address
    m00int     m00frac
    m10int     m10frac
     …      …
矩阵命令以受参数字段中标志控制的方式,指向用来变换后续几何图形的4×4矩阵(见图12B)。长度是以字节表示的输入矩阵的大小。由该命令指向的4×4矩阵具有下述格式:它是存储器邻近的块(block),以ROW MAJOR次序包含16个矩阵元。每一矩阵元处在固定点格式,S15.16。以字节表示的4×4矩阵的长度应当是64字节。段的id字段和地址字段用来构造实际矩阵的主存储器300地址(详见G_SEGMENT SP命令)。
参数字段中采用下面标志:G_MTX_MODELVIEW  识别该输入矩阵是一个建模/观察矩阵,该矩阵
               对于提供用于明暗等的多边形法线(normal)
               的有效变换是必须的(缺省设置)。G_MTX_PROJECTION 识别该输入矩阵是一个投影矩阵,它不会影响
               用于明暗等的多边形法线的变换。G_MTX_MUL        输入矩阵与当前的矩阵堆栈顶部并置(缺省)。G_MTX_LOAD       输入矩阵替换当前的建模/观察或投影矩阵堆
               栈的顶部G_MTX_NOPUSH     在进行装入或与堆栈顶部并置运算前不下压当
               前的矩阵堆栈顶部(缺省)。G_MTX_PUSH       在进行装入或与堆栈顶部并置运算前下压当前
               的矩阵堆栈顶部。仅G_MTX_MODELVIEW
               支持下压,而G_MTX_PROJECTION不支持
               下压,因为不存在投影矩阵堆栈(必须明显地重
               新装入投影)。
该单个命令与参数组合一起允许作出各种常用的矩阵运算。例如,(G_MTX_LOAD|G\--MTX_NOPUSH)替换了堆栈顶部。(G_MTX_MUL|G_MTX_PUSH)在对于典型的建模分层结构下压堆栈时进行并置。
为了进行照明和纹理处理,多边形法线也必须通过建模/观察矩阵的逆转置来变换(参见“公开的GL程序设计指南”(Open GL Programming Guide))。这就是保留独立的建模/观察和投影堆栈以及必须识别输入矩阵的原因。G POPMTX:
    command
   param
该命令弹出建模/观察矩阵堆栈。参数字段必须为0。弹出一空堆栈导致…(不弹出)。由于不存在投影矩阵堆栈,所以仅建模/观察矩阵支持该命令。G VIEWPORT:
   Command    param    length=16
   seg    address
    ↓
      xscale     yscale
      zscale     pad
     xtranslate     ytranslate
    ztranslate     pad
该命令将视口结构送到图形流水线。
与段id和地址字段用于构筑实际的VIEWPORT结构的主存储器300地址(详见G_SEGMENT)。
观察口变换是一种归一化屏幕坐标的比例转换。通常,观察口必须与投影矩阵一起构筑,以便满足屏幕装置坐标的硬件要求。
x和y的比例和变换项有2位小数,这是在硬件中满足子像素(sub-pixel)定位所必须的。z值没有小数部分。
用缺省投影矩阵中的一个,计及小数部分的位,观察口结构可以初始化成:(SCREEN_WD/2*4,(SCREEN_HT/2)*4,G_MAXZ,0,/*scale)*/
(SCREEN_WD/2*4,(SCREEN_HT/2)*4,0,0,/*translate)*/
                     顶点命令处理
再参见图11,如果下一个显示表命令是“顶点命令”,那么信号处理器400就通过当前矩阵状态对于由顶点命令指定并且也可能是由当前照明状态而变暗的顶点进行变换,对顶点进行剪取测试、以及将得出的顶点装入到数据存储器404中的顶点缓冲器408内。本例中的信号处理器400具有保持多达16个顶点的顶点缓冲器。图13A示出了一个信号处理器400顶点缓冲器,它完全暴露给主处理器100与此也暴露给视频游戏程序108。这个可以保持多达16个点的内部顶点缓冲器404存放在信号处理器数据存储器404内,并且可以由主处理器100读取。
尽管本例中信号处理器只可以处理线、三角形或矩形(即由2、3或4个顶点限定的表面)但本例中的顶点缓冲器408存储了多达16个顶点,因而信号处理器可以重复利用变换的顶点值,而不必每次重新计算顶点。本例中,用来产生视频游戏程序108的3D创造/建模软件最好应当组织显示表110以使顶点重复利用率(因而也是速度性能)最大。
图13B描述的是一例信号处理器400用来表示顶点存储器408中存储的每一个顶点的顶点数据结构。本例中,与顶点对应的经变换的x、y、z值和w以双精度格式存储,整数部分在先,小数部分在后(字段408(1)(a)-408(1)(h))。顶点颜色(r,g,b,α)存储在字段408(1)(I)-408(1)(l)内,顶点纹理坐标(s,t)存储在字段(1)(m)、408(1)(n)内。另外,由本例,屏幕空间坐标的顶点值(即经变换和投影到观察平面上)存储在字段408(1)(o)-408(1)(t)内(1/w值以双精度格式存储)。显示处理器500用屏幕坐标绘制由顶点限定的多边形。经变换的3维坐标保持在顶点缓冲器408内,供剪取测试用。由于剪取了多边形(不是顶点),并且由于顶点缓冲器408中的顶点可以再次用于多个多边形,因而这些经变换的3维顶点值被存储起来,用于多个要进行的可能的剪取测试。此外,顶点数据结构408(1)包括信号处理器400可以使用的标志408(1)(v),例如指定剪取测试结果(即,顶点落在六个不同剪取平面中每一个之内还是之外)。保留存储在字段408(1)(s)408(1)(t)内的透视投影系数,用作由显示处理器纹理坐标单元进行的透视校正操作(见下述)。
下面是用某些点装入内部顶点缓冲器的顶点命令格式的一例:G VTX:
    Command    n    v0    length
   seg         address
          ↓
             x          y
             z          flag
             s          t
    rornx     gorny     bornz    a
该命令从顶点缓冲器中的地址v0开始将(n+1)个点装入顶点缓冲器。段id和地址字段用来构筑实际VTX结构的主存储器300地址(详见G_SEGMENT)。把顶点数n编码成“顶点数减一”,以便以4位表示全部16个顶点。长度是点数乘16,即VTX结构的大小(以字节表示)。顶点坐标是16位整数,纹理坐标s和t为S10.5。本例中忽略标志参数。顶点或者是有颜色的,或者一法线(用作明暗处理)。颜色是8位不带符号的数。法线是8位带符号的小数(小数7位)。(0x7f映射成+1.0,0x8l映射成-1.0,而0x0映射成0.0)。必须将法线向量归一化,即 x 2 + y 2 + z 2 ≤ 127
接收到顶点命令后,信号处理器400用当前建模/观察矩阵变换顶点命令中指定的顶点(图11,方框632)。参见Neider等的“公开的GL程序设计指南》(Silicon Graphic映射公司,1993),第三章(“观察”)。这些变换使得用三维空间中顶点表示的物体相对于所选的观察点取向。例如,它们可以使所表示的物体相对于所选的观察点平移、旋转和/或取比例。这些变换计算大量地使用了信号处理器向量单元420以及它的同时进行8个并行计算的能力。本例中,经变换的结果以双精度格式存储在顶点数据结构字段408(1)(a)-408(1)(h)内。剪取测试
信号处理器400随后进行剪取测试(图11,方框636),以确定经变换的顶点是在场景里面还是外面。6个剪取平面限定了观察体积的侧面和端面。将每一经变换的顶点与这6个平面中的每一平面比较,并将比较结果(即,顶点位于剪取平面的哪一侧)存储在顶点缓冲器“标志”字段408(v)内(见图13B)。剪取方框646响应于“三角形命令”使用这些结果(参见下文)。注意,由于本例剪取多边形而不是顶点,所以图11方框636实际上进行的不是剪取,它所进行的只是相对于剪取平面的测试顶点的位置。投影
信号处理器400随后用投影矩阵变换顶点值(图11,方框638)。投影变换的目的是限定以两种方式使用的观察体积。观察体积确定物体是如何被投射到二维观察屏幕上去的(即,采用透视投影或正射投影)。(见“公开的GL程序设计指南”第90页及以后)。得到的经变换的顶点现在从三维空间投射到了二维观察平面上,并且经恰当地缩短(如果投影矩阵确定透视投影)或者正射(如果投影矩阵确定义正射投影)。这些屏幕坐标值也写入到顶点缓冲器数据结构的字段408(1)(o)-408(1)(t)处(保留“1/w”值,用作以后的透视校正)。照明
信号处理器400接下来进行照明计算,以便“照亮”顶点命令中指定的每一个顶点。系统50支持多种复杂的实时照明效果,包括背景(均匀)照明、漫射(有向)光以及反射强光(用纹理映射。本例中为了进行照明计算,信号处理器400首先必须装入一SP微码108重复占位程序段,进行照明计算。G_SETGEOME-TRYMODE命令必须已经指定启动了照明计算,并且光必须已经由上述G_NUM_LIGHTS命令确定。进行照明计算的部分微码108通常不在信号处理器400内,而是当需要照明时通过重复占位程序段带入的。这种性能表示场景中某些物体被照亮,而另一些物体被静态(statically)着色。本例中照明重复占位程序段重写了剪取微码,所以为了获得最好的特性,最好使被照明的场景中被剪取物体最小或完全避免之。
为了照亮物体,组成物体的顶点必须具有法线,而不是规定的颜色。本例中,法线由3个带符号的8位数组成,代表法线的x、y和z分量(见上面描述的G_VTX命令格式)。本例中,每一分量的值在-128到+127的范围内。x分量处在顶点的红色位置,y分量处在绿色位置,而z分量处在蓝色范围内。α保持不变。如上所述,法线向量必须归一化。
通过物体改变其取向时物体呈现方式的改变照明可以有助于获得深度效果。本例中,信号处理器400支持场景中多达7种漫射光。每一种光有一个方向和一种颜色。不管物体和观察者的取向如何,每一种光将继续沿同样的方向(相对于开放的"世界”)照耀,直到改变光的方向。此外,一种背景光提供均匀的照度。本例中明暗不是明显由信号处理器400支持的。
如上所述,照明信息以光数据结构传送到信号处理器400。漫射光的数量可以为从0改变到7。具有红、绿和蓝光值的变量代表光的颜色,并且取值范围为0到255。具有x、y和z后缀的变量代表光的方向。法则是方向指向光。这意味着光的方向表示朝向光的方向,而不是光照耀的方向(例如,如果光是从世界的左上方入射的,则方向可以是x=-141,y=-141,z=0)。为了避免背景光,程序员必须指定背景光为黑色(0,0,0)。
G_LIGHT命令用来启动显示表上的一组光。一旦这些光被启动以后,它们就保持到下一组光被启动为止。这就意味着在信号处理器400中设定光的新结构就重写了光的旧结构。接通照明计算从而使光产生效果时,需要用G_SET-GEOMETRYMODE命令接通照明模式位。
上述照明结构用来提供彩色值,用以存入顶点缓冲器字段408(1)(i)-408(1)(l)。纹理坐标比例/产生
信号处理器400接着进行纹理坐标比例和/或产生(图11,方框642)。本例中,方框642执行的运算可以用来完成反射强光、反射映射和背景映射。为了实现这些效果,本例中的协处理器200采用光或背景的图像的纹理映射,并根据从观察点至表面法线的角度计算纹理坐标s和t。该纹理映射技术无需在每一像素处计算表面法线以完成反射照明。本例中在每一像素处进行表面法线计算对于系统50来说计算量太大。
可以通过一个纹理映射来表示来自大多数光源的反射强光,纹理映射确定了一个代表光强分布的指数或高斯函数的圆点,如果场景包含来自其他零星形成的光源(比如荧光灯或发光的剑)的强光,那么只要可以获得强光的纹理映射,则表示的困难就不大。
尽管在本例中显示处理器500进行纹理映射运算,但是当需要这些效果时,信号处理器400对每一顶点进行纹理坐标变换。信号处理器纹理坐标变换的启动或撤销是由G_SETGEOMETRYMODE命令中的值指定的(见上述)。另外,SET_GEOMETRYMODE命令可以指定产生的纹理坐标的线性化,例如,当进行背景映射时允许使用全景纹理映射。
本例中,信号处理器400纹理坐标产生采用屏幕空间中沿x和y方向顶点法线的投影,分别参照该纹理产生s和t指数。在每一顶点处,观察点和表面法线之间的角度用来产生s和t。对法线投影取比例,以获得本例中的实际s和t值。信号处理器400可以将观察点“后面”的顶点映射成0,并可以将正的投影映射成某一比例值。
本例中,纹理是用上述信号处理器属性命令部分中的G_TEXTURE命令启动的。其中该命令提供了比例值,用来进行上述纹理坐标映射。
如上所述,本例中,由信号处理器400进行的纹理坐标映射还需要规定人眼取向的信息,从而可以计算顶点表面法线和人眼之间的角度。G_LOOKAT_X和G_LOOKAT_Y命令提供用于信号处理器400进行自动纹理坐标产生的人眼取向。如果经变换的纹理坐标值被计算出来,则这些值由信号处理器400以顶点数据结构在字段408(1)(m)、408(1)(n)处存储起来。这些纹理坐标值提供给显示处理器500,用G_TEXTURE命令指定的纹理,进行所需的纹理映射。
因为这些效果采用纹理映射,所以它们能与另外的纹理映射物体一起使用。顶点缓冲器写入
在进行了所有这些步骤以后,信号处理器400将经变换、照明和投影的顶点值写入顶点缓冲器408内(图11,方框644),并回到分析下一个显示命令命令(方框622)。三角形命令处理
一旦信号处理器400已经将顶点写入到其顶点缓冲器408内,显示表110可以提供一“三角形命令”。指定由顶点缓冲器408内的顶点限定的多边形的“三角形命令”本质上是一个要信号处理器400产生一个表示一多边形的图形显示命令、并将该命令传送到显示处理器500以进行描绘的请求。本例中,信号处理器400可以描绘三种不同类型的图元:直线、三角形和矩形。本例中需要装入不同的微码108模块来描绘线或三角形。本例中,所有的矩形是以屏幕坐标规定的二维图元,而非剪取的或剪的。
下面是三角命令格式和相关功能的例子:三角命令的例子
下面的命令指定由顶点缓冲器中3个顶点确定的三角形:G_TRI1:
command
    N    v0     v1    v2
该命令用内部顶点缓冲器中存储的顶点v0、v1和v2产生一个三角形。N字段识别三个顶点中哪一个顶点包含表面法线(或平面明暗)或表面颜色(或平面明暗)的标记。
下面的命令用来控制信号处理器400产生描绘由顶点缓冲器408中的两个顶点定义线的显示处理器500命令:G_LINE3D:
  command
   N    v0    v1
该命令用内部顶点缓冲器中的顶点v0和v1产生一条线。N字段指定二顶
点中哪一个顶点包含该面的颜色(或平面明暗)。
经纹理处理和填充的矩形需要由信号处理器400干预并因此也是信号处理器运算。下面是纹理矩形命令的命令格式和相关功能的例:G_TEXRECT
   command    x0    y0
   x1    y1
   command                  0x000000
    S(top left texture coord)     T(top left texture coord)
   command     0x000000
   DsDx     DtDy
这三个命令以当前的纹理描绘二维矩形。参数x0、y0指定矩形的左上角;x1、y1指定右下角。所有的坐标为12位。S和T是带符号的10.5位数,并指定s和t的左上角坐标。DsDx和DtDy是带符号的5.10位数,并规定x(y)坐标的每一变化产生的s(t)的变化。
信号处理器400在本例中还支持G_TEXRECT_FLIP命令,该命令除了翻转(flip)纹理以外,与G_TEXRECT命令相同,从而s坐标沿y方向变化,而t坐标沿x方向变化。
  command     x0     y0
    x1     y1
该命令以当前填充颜色绘制二维矩形。参数x0和y0指定矩形的左上角;x1、y1指定右下角。所有的坐标为12位。剪切/准备(setup):
再回过来看图11,在收到三角形命令以后,信号处理器400对顶点进行任何必要的剪切(图11,方框646)。该剪切操作消除了留在限定观察平面的6个剪切平面以外的几何图元的一部分。
如上所述,对每一顶点进行的剪切测试636的结果存储在顶点缓冲器408内并可在那里取得。现在采用三角形命令确定由这些顶点限定的图元,信号处理器400可以剪切该图元。如果图元的所有顶点位于由6个剪切平面限定的空间内,那么整个图元就存在于显示空间内并且不必被剪切。如果限定一图元的所有顶点位于同一剪切平面之外(由图13B中所示的顶点数据结构408(1)的标志字段表示),则整个图元可以从显示中除去并因此而舍弃。如果限定某一图元的某些顶点位于显示空间内而某些位于显示空间外(或者如果所有的顶点位于显示空间之外但确定了一个通过被显示空间的图元),那么需要剪切图元并确定新的顶点。本例中,这些测试和操作是通过剪切方框646进行的。
信号处理器400随后进行背面选取(图11,方框647)。这一操作通过舍弃可以确定为处在物体背面因而不能被看见的多边形而使绘图速度最大。本例中,前面或者背面,而不是两种类型的图元可以由方框647挑选(即舍弃)。挑选图元的类型是由上述G_SETGEOMETRYMODE命令中的参数指定的,使得可以沿任何方向或在采用不同挑选标志的地方整理几何图形来获得各种效果(例如内表面、多边形两边等)。
信号处理器400还进行某些准备操作(图11,方框648),并且随后可以将图形显示命令传送到显示处理器500,控制显示处理器描绘图元(图11,方框650)。作为准备操作(方框648)的一部分,本例中的信号处理器400把显示表110中的“分段的”地址变换成显示处理器500可以使用的物理地址(本例中,显示处理器是一个物理地址机器)。
本例中,信号处理器400采用一段表(segment table)416(见图13C)来帮助它对确定主存储器300寻址。更具体地说,信号处理器400中的地址可以用一个表入口417A和一26位偏移量417B来表示。表入口417A参照段地址表416中的16个基本地址中的一个地址。参照的基本地址可以加到偏移量417b上,在主存储器300中产生一个物理地址。信号处理器400通过将用于该段的基本地址和26位偏移量相加(例如可以通过一显示表110提供)来构筑主存储器300地址。段表416是根据下述举例的G_SEGMENT命令构筑的:G_SEGMENT
    command
  seg     address
该命令叠加上面讨论的段表416中的入口。
本例中信号处理器400所使用分段寻址可以有助于双缓冲的动画制作。例如,视频游戏程序108可以在主存储器300内保留特定显示表片断的两个复制件,两种不同片断中具有相同的偏移量。切换它们的复制件与在信号处理器400中交换段指针一样容易。另一用途是对一个段中的数据和纹理分组,并在另一段中对静态背景几何图形分组。对数据分组将有助于优化主处理器100中的超高速缓冲存储。含有嵌入地址的所有数据之前必须有恰当的G_SEGMENT命令,它用恰当的基本地址装入信号处理器400。
虽然信号处理器400可以使用如图13C所示的段寻址方案,但本例中的信号处理器500不具备这种安排。所以,部分准备处理648是把描绘所需的指向数据结构的任何段地址转换成显示处理器500可以直接使用的物理地址。DP命令写
用于图形目的的信号处理器400的初级输出是由图11、方框650输出的给信号处理器500的一条或多条命令。尽管主处理器100(或存储器件54)可以直接提供信号处理器500命令,对于三维图像,信号处理器400通常需要进行上述变换处理,产生代表变换、投影、照明、剪切、挑选图元的显示处理器命令。
显示处理器命令的指令表见附录A中列出。信号处理器400负责恰当地将其产生的显示处理器命令格式化,并用来将恰当的信息和地址信息包括在这些命令中。另外,信号处理器400可以产生并提供显示处理器绘制信号处理器用恰当的参数指定的特定图元而可能需要的某些恰当的模式和属性命令(尽管用于显示处理器500的许多模式和属性命令通常是在游戏程序108的控制下由主处理器100直接提供的)。如上所述,主处理器100可以直接提供给任一显示处理器500,但一般需要依赖于信号处理器,从而每当三维物体需要变换,产生至少某些显示处理器命令。流控制命令处理
再参见图11,如果由信号处理器400接收的显示表命令是流控制命令,那么信号处理器400会以恰当的方式响应于该命令,通过或穿过显示表110。下面的命令和格式例子提供了流控制。流控制命令举例:G_DL:
    Command     param     (not used)
   seg             address
.
.
该命令指向另一显示表,并用来产生显示表层次、嵌套显示表、间接引用(references)等。段字段对存储段识别。地址字段是与该段基本地址的偏移量。所有这些形成指向新显示表的主存储器300中的地址。长度字段(未图示)可以以字节描述新显示表的长度,尽管本例中所有的显示表最好用G_ENDDL命令来终止。参数字段保持控制转移行为的标志。如果设置标志G_DL_NOPUSH,那么在转移控制之前,不把当前的显示表向堆栈下压。这更像一个分支(branch)或转向(go to),而不是分层显示表(这可以用于将一更大的显示表分成非邻接存储片段(piece),随后将它们与显示表分支相连)。G_ENDDL:
结束显示表命令终止显示表层次的分支,在显示表层次处理中产生“出栈”。该命令最适用于构筑可变的未知大小的显示表片断,用一结束命令而不是先验地提供一显示表长度来终止。所有的显示表必须用该命令来终止。G_NOOP:
Figure A9612175701022
该命令不做任何动作。它是在某些情况下在内部产生的。
图11、方框652执行在主存储器300中保留显示表堆栈,以及对该显示表堆栈下压和空操作(穿过)的功能。当信号处理器遇到一“open end”显示表命令时,方框652使信号处理器400停机。信号处理器微码音频处理
本例中的信号处理器400除了进行上述图形处理以外,还进行数字音频处理。信号处理器向量单元420特别适用于进行对特定类型的音频信号(如音频解压、波表(wavetable)重新取样、合成和滤波)信号处理特别有用的“乘积和”计算。因为包含有向量单元数据通路423和48位宽的累加器,所以可以提供具有相当大数量抽头的数字空间和/或频率滤波而不损失精度。作为用于音频处理的向量单元特定最佳使用的一个例子,信号处理器向量单元420的8个分立的寄存器存储器422和相关的数据通路423可以同时用来并行处理8个不同的MI-DI声音。下面是可以用向量单元420有效进行附加音频处理的例子:
·解多项式方程,
·并行处理8个音频声音或8个时间抽样,
·用立方内插法(cubic intespolation)进行波表合成,其中,向量单元数据通路423中的4个用来处理一个抽样,另4个向量单元数据通路423用来处理第二个抽样。
·音频包络处理,其中,8个向量单元数据通路中的每一个可以用一个不同的权重因子乘一个不同的音频抽样,以及
·音频混合处理,其中,8个向量单元数据通路中的每一个可以用相应的混合器权重因子乘一个不同的音频抽样。
由于信号处理器400可以在高速下有效地进行音频数字信号处理,所以,信号处理器只需花费音频回放真实时间间隔中的很小一部分来进行和完成与该时间间隔有关的数字音频处理。例如,信号处理器400花费比1/30秒还要少得多的时间来对协处理器音频接口208在1/30秒的时间间隔上实时回放的音频进行数字处理。因为具有这一性能,所以本例中的信号处理器400可以在图形处理和数字音频处理之间时间共享。
通常,主处理器100在指定下一个接着而来的视频帧期间要产生的图像和声音的视频帧的一开始,给信号处理器400一个任务表250。在下一个接着而来帧开始时,协处理器200必须结束该下一个接着而来帧的音频和图像处理。因为视频显示和音频回放是一个实时连续过程(即,必须在每一视频帧时刻提供新的视频图像,并且音频必须连续提供),所以,协处理器200需要在下一个帧开始的时刻之前,结束与每一个接着而来的视频帧相关的音频和视频信号处理。
本例中,信号处理器400被图形处理和数字音频信号处理共亨。由于信号处理器向量单元420的高速计算能力,信号处理器400能够在比当前视频帧时间小得多的时间内,在下一个接着而来的视频帧期间完成要播放的声音的处理,并且能够以比当前帧时间小的多的时间,在下一个接着而来的图像中完成要显示的图像的图形处理。这使得任务表250可以指定必须由信号处理器400/协处理器200在下一个视频帧时间开始前完成的图形显示表和音频播放表。然而,本例中,没有防止主处理器100向协处理器200提供在下一个视频帧开始之前协处理器无法完成的任务表250的措施。如果信号处理器400需要的组合的音频和图形处理足够细致并且很花费时间,那么信号处理器400可以对整个当前视频帧时间并且在下一个视频帧开始时刻前还未完成的任务表进行处理。该由视频游戏程序108避免使协处理器200负担过度并且在发生负担过度时以恰当方式处理任何负担过度。视频游戏程序员可通过进行模拟确保有效组织所有的显示表110、以一有效方式对三维物体进行模拟,并采取确保避免广泛的花费时间的处理(如剪切)或使之最小化的措施以免信号处理器400负担过重。然而即使有这些措施,协处理器200可以花费多于一个视频帧的时间来完成特别复杂的图像。视频游戏程序员可以通过放慢有效帧速率来处理这一情况,从而电视机58在多个视频帧内重新显示在一部分帧缓冲器118内存储的同一图像其时协处理器200可以完成对下一个图像的处理。因为用户可以把变化的帧速率理解为不需要的延迟,所以最好将整个有效帧速率降低到协处理器200完成多数处理—细致图像所需的速率,因而防止了较复杂图像显现的速度比不太复杂图像的显现速度更慢的情况。
对于音频处理来说,由于用户会听到连续声音流中扰人的“拍打”声,所以不能在给定视频帧时间内提供声音,这通常是无法接受的。这种声音破坏很容易被听到,并可能是很扰人的。所以,应当避免。在信号处理器400不能及时完成其指派的声音处理的情况下,避免可容易检测的声音破坏的一种途径对于主处理器100来说是命令音频接口208在下一个接着而来的帧期间重播上一帧的声音。可以接受的声音可以以这种方式产生,没有细心的用户心注意到声音破坏。其他的方法包括使信号处理器400在单个视频帧时间内处理多个视频帧的声音,从而提供与有效视频帧速率不同(较快)的有效音频“帧”速率。“有效帧速率”是指协处理器200产生一帧信息的速率(本例中,电视机实际帧速度保持为常数)。音频软件举例
图14给出一例由系统50提供用以合成并控制音频的总体软件结构。该总体软件结构700包括4个软件体,本例中为一顺序播放器(sequence playes)702、放音器(sound playes)704、合成驱动器706和音频合成微码708。本例中,顺序播放器702、放音器704和合成驱动器706都根据主处理器100动作,而音频合成微码708根据协处理器信号处理器400运行。因此,顺序播放器702、放音器704和合成驱动器706中的每一个都作为存储装置54游戏程序108的一部分提供,声音合成微码708作为SP微代码156的一部分提供。
根据正在播放的特定视频游戏,顺序播放器702、放音器704和合成驱动器706可以不同。通常,顺序播放器702负责类型MIDI音乐顺序文件的回放。它负责顺序、乐器库和合成器资源分配、顺序演奏和MIDI信息的安排。放音器704负责所有经自适应差分脉码调制(ADPCM)压缩的音频抽样的回放。它用于音响效果和其他的汇流(streamed)声音。合成驱动器706负责产生由主处理器100在软件控制下并入任务内的放音表110,并以任务表250的形式送到协处理器200。本例中,合成驱动器706使得放音器704或其他“客户”可以把波表分配给合成器声音,并控制回放参数。如上所述,音频合成微码708处理传送给它的任务,并合成左/右(L/R)立体声16位抽样,这些抽样是信号处理器400通过音频接口208、音频DAC140和放大器/混合器142存入主存储器300内的音频缓冲器114内用作回放的。
本例中,合成驱动器706以音频“帧”的形式将音频任务传送到信号处理器400。一“帧”是多个音频抽样—通常接近于在规则的视频帧速率下(例如30或60Hz)填满一完整的视频帧时间所需数目的抽样。尽管电视机58以不受任何视频帧速率参数限制的连续流接收并处理音频信号(例如,电视机可以在水平和垂直消隐和回扫期间产生声音),但是本例中的系统50以视频帧速率组织音频处理,这是因为音频处理和图形处理共亨的信号处理器400必须按照视频帧速率因为与其执行的与图形有关的任务是与视频帧速率联系在一起的)。播放表处理举例
图15给出一例简单的信号处理器播放表的处理过程。图15中的过程是由主处理器100在视频游戏程序108的控制下产生的播放表110指定的,并且指定作为任务表250的一部分。因此,图15的SP播放表过程是以音频播放表110的形式提供给信号处理器400的合成驱动器706的输出的一例。
因为本例中的命令存储器402的大小有限,所以合成微码708通常不连续驻留在信号处理器400内。相反,主处理器100安排初始化微码装入命令存储器402(见图9,方框604),确保恰当的音频微码程序被装入命令存储器,用作音频处理(同时也确保恰当的图形微码程序被装入命令存储器,用作图形处理)。图15中所示的步骤假设音频合成微码708驻留于信号处理器命令存储器402内,并且信号处理器400读取指定所示步骤的音频播放表110。
通常,音频播放表110的第一个任务是在执行音频处理任务所需的信号处理器数据存储器408内设置缓冲器(图15,方框710)。通常,该缓冲器设置过程包括在将要用的数据存储器404内分配作为一个或多个音频数据缓冲器的区域,以及在数据存储器内分配一音频输出缓冲器。通常,主处理器110还命令信号处理器400用它的DMA装置454将音频输入数据112b从主存储器检索到被分配的一个或多个输入缓冲器内进行处理。主处理器100随后可以设定将用作音频处理的某些特定属性(例如音量范围和变化率)(图15,方框712)。随后。主处理器100指定要由信号处理器400进行的信号处理器的类型以及恰当的参数(图15,方框714)。本例中,主处理器100可以指定要单独进行或合在一起进行的解压、重新抽样、包络/移动(pan)、混合和其他处理(例如混响)。音频播放表110通常用一个命令来终止,以将信号处理器数据存储器404中存储的输出音频缓冲器的内容存放到主存储器300中(方框716)。音频合成微代码举例
图16描述的是本例中由音频合成微码708执行的整体任务。信号处理器400在微码的控制下检索来自当前音频播放表110的下一个播放表命令,并确定它是哪一种类型的命令(图16,方框718)。本例中,音频播放表110中的音频命令可以是下面一些普通类型的命令:
·缓冲器命令
·流控制命令
·属性命令
·解压命令
·重新抽样命令
·包络/移动命令
·混合命令
·特殊信号处理/效果命令。缓冲器命令处理
缓冲器命令管理信号处理器数据存储器404中的音频缓冲器,并允许音频数据可以在数据存储器和主存储器300之间转移。下面是缓冲器命令格式和相关功能的例:缓冲器命令举例:
A_SETBUFF:
  command    dmemin
    dmomout     count
该命令设置内部信号处理器数据存储器404缓冲器指针以及由处理命令使用的计数值。该命令通常是在处理命令之前发出的。dmemin指向输入缓冲器,dmemout指向输出缓冲器,而count确定待处理的16位抽样的数量。
A_LOADBUFF:
  command
  seg     address
该命令装入由seg+address字段给出的来自主处理器300的信号处理器数据存储器404缓冲器。SP数据存储器缓)冲器地址和要装入的16位抽样的数量是通过在A_LOADBUFF命令之前发出一A_SETBUFF命令来确定的。
A_CLEARBUFF:
  command     dmemin
    count
该命令清除在由dmen给出的信号处理器400数据存储器地址处开始的大小为count的16位抽样的区域。
A_SAVEBUFF:
  command
 seg     address
该命令将信号处理器数据存储器404内的16位抽样的缓冲器存放到由seg+address字段给出的主存储器300地址内。输入SP数据存储缓冲器和抽样的数量是通过发出一A_SETBUFF命令确定的。
A_SEGMENT:
  command
  seg     address
见图形G-SEGMENT命令。该命令用来将间接的“段”地址映射入主存储器300物理地址内。
再参见图16,信号处理音频合成微码708通过建立、管理、将数据写入相关的数据存储缓冲器409或从相关的数据存储缓冲器409读取数据来执行指定的缓冲器命令(图16,方框720)。通常,信号处理器400可以用其DMA装置454在主存储器300和信号处理器存储器404之间转移数据,以便为处理检索音频数据,或为由音频接口208回放将音频数据存放到主存储器内。流控制命令处理:
如果下一个播放表命令是流控制命令,那么信号处理器400以该命令指定的方式通过穿越当前音频播放表响应于该命令。最好允许音频播放表110的嵌套,并且信号处理器400可以把音频播放表堆栈保留在主存储器300内(正如为图形显示表所作的那样)。属性命令处理:
如果下一个音频播放表命令是一个属性命令,那么信号处理器通过建立将用作后续音频处理的恰当模式和/或属性条件来处理该命令(图16,方框724)。本例中,音频合成微码708支持下述属性命令格式和相关的功能:属性命令举例:
A_SETVQL:
  command     volume
    volume target     volume rate
该命令用来设置用作后续处理命令的音量参数。目前,这应当在A_ENVE_LOPE、A_PAN和A_RESAMPLE之前发出。解压命令处理
如果信号处理器400检索到的下一个音频播放表命令是解压指令,则信号处理器进行解压操作,把存储在数据存储器404的输入缓冲器内的压缩的音频二进制流解压,产生16比特音频抽样,存储在其数据存储器的定义音频输出缓冲器(图16,块726)内。在这个例子中,音频合成微码708支持下面的音频解压命令格式和相关的功能:解指命令例:
A_ADPCM:
  command  flags     gain
  seg     address
该命令对信号处理器数据存储器404内的二进制流解压,产生16位抽样。数据存储器404内的输入和输出缓冲器的地址和处理的抽样数由在A_AD-PCM命令之前发出A_SETBUFF命令来定义。seg+address字段指向用于存储和复原状态的主存储器300地址。增益参数用于换算输出,表示作S.15。
标志定义了命令行为。当前定义的标志为:
A_INIT,    seg+address字段用于复原命令开始时的状态。然而,如果
            没有设置,则根据起始状态忽略状态指针,状态在处理结束
            时存储至该地址。
A_MIX,    把结果混入到输出缓冲器中。如果没有设置,则把结果放入输
           出缓冲器中。重新取样命令处理:
如果信号处理器400读取的下一个音频播放表命令是重取样命令,则信号处理器根据命令中规定的参数(图16,方框728)提供间距偏移(pitch shifting)/重新取样以及积分包络调制。下面是由音频合成微码708支持的重新取样命令和相关的功能的一例。重新取样命令例A_RESAMPLE:
  command   flags     pitch
 seg       address
该命令提供了间距偏移/重新取样以及积分包络调制。通过发出A_SET-BUFF命令来定义信号处理器数据存储器404输入和输出缓冲器以及抽样数,通过发出A_SETVOL命令来定义音量包络参数。由间距来定义再取样系数。
标志定义了命令行为。当前定义的标志为:
A_INIT,    seg+address字段用于复原命令开始时的状态。然而,如果
            没有设置,则根据起始状态忽略状态指针,状态在处理结束
            时存储至该地址。
A_MIX    把结果混入到输出缓冲器中。如果没有设置,则把结果输入到
         输出缓冲器中。包络/移动(Pan)命令处理:
如果信号处理器400读取的下一个音频播放表命令是包络/移动命令,则信号处理器通过用线性包络(图16,方框730)调制一个或两个音频信号流。包络命令把音频输入抽样流乘以线性函数,因此它能使音频音量斜升或斜降。“移动”命令通常把逆线性函数加到左立体声和右立体声声道的音频上——以达到在空间中移动感觉到的声音或者语音源的效果(即,从左到右或者从右到左)。下面的包络/移动命令格式和相关功能的例子得到本例系统50的音频合成微码708的支持。包络/移动命令例:A_ENVEIOPE:
  command   flags
  seg     address
该命令用线性包络调制抽样流。通过发出A_SETVOL来定义音量包络的参数,通过在发出A_ENVELOPE命令之前发出A_SETBUFF来定义信号处理器数据存储器404的缓冲器地址和处理的抽样数。
标志定义了命令行为。当前定义的标志为:
A_INIT,    seg+address字段用于复原命令开始时的状态。然而,如果
            没有设置,则根据起始状态忽略状态指针,状态在处理结束
            时存储至该地址。
A_MIX,    把结果混入到输出缓冲器中。如果没有设置,则把结果输入到
           输出缓冲器中。A_PAN:
  command   flags     dmemout2
seg     address
该命令提供一个输入和二个输出移动。通过发出A_SETBUFF命令来定义输入、第一输出和抽样数,通过发出A_SETVOL命令来定义移动参数。第二输出由dememout2(数据存储器输出2)来定义。
标志定义了命令行为。当前定义的标志为:
A_INIT,    seg+address字段用于复原命令开始时的状态。然而,如果
            没有设置,则根据起始状态忽略状态指针,状态在处理结束
            时存储至该地址。
A_MIX,    把结果混入到输出缓)中器中。如果没有设置,则把结果放入
           输出缓冲器中。混合命令处理:
如果下一个音频播放表命令是混合命令,则由信号处理器400执行混合功能,把两路音频输入抽样流混合到输出音频缓冲器(图16,方框732)中。下面的混合命令格式和相关的功能例子由本例中的信号处理器400和音频合成微码708支持。混合命令例子:A_MIXER:
  command     gain
    dmemoutf
该命令提供了双精度混合功能。在乘以增益之后,把信号精度输入加到双精度输出。dmemoutf指向存储混合流小数部分的信号处理器数据存储器404区域。通过在A_MIX之前发出A_SETBUFF来定义输入缓冲器、抽样数和混合输出的整数部分。特殊音频效果处理:
如果下一个音频播放表命令是特殊信号处理/效果命令,则信号处理器400通过提供指定的特殊效果或者信号处理(图16,方框734)来执行该命令。特殊信号处理/效果的一个例子是加入混响以产生现场效果(presence)。该特殊效果模拟了洞穴、音乐厅等的声音反射,也可以用于各种其它的特殊效果。信号处理器400和音频合成微码708支持下面的混响特殊效果命令格式和相关功能的例子:效果命令例:A_REVERB:
  command     flags
  seg     address
该命令把混响特殊效果加到抽样流中。通过发出A_SETBUFF指令来定义信号处理器数据存储器404的输入、输出和抽样数。
标志定义了命令行为。当前定义的标志为:
A_INIT,    seg+address字段用于复原命令开始时的状态。然而,如果
            没有设置,则根据起始状态忽略状态指针,状态在处理结束
            时在该地址。
A_MIX, 把结果混入到输出缓冲器中。如果没有设置,则把结果放入输出
        缓冲器中。音频处理结构:
为了实现本例中每个音频处理功能728、730、732、734,音频合成微码708使用通用的在单延迟线上控制数据的效果实现装置。图17示出了通用的音频处理实现装置740的一个例子。在这个例子中,可以认为把音频输入抽样加到邻接的单延迟线742的输入端。把延迟线的输出抽头通过增益器744加到信号处理器数据存储器404内的音频输出缓冲器。来自延迟线742的另一个抽头的抽样通过加法器746直接返回到延迟线(经路径748),还通过系数块750、另一加法器752和低通筛选器754。延迟线742的再一个抽头756连接到加法器752的另一个输入端,还连接到加法器746的另一输入端(此时通过另一个系数块758)。这种一般的实现装置740可以通过把任意数量的效果基元加到单延迟线742上来构成特定的效果。由上述的命令使每个效果基元的参数通过。每个基元包括带有可变长度的抽头的全通加上DC归一化在(DC处为单位增益)单转态(sin-gle poll)低通筛选器754加上输出增益744,它规定了该基元有多少输出贡献给最后的效果输出。基元的每个参数值规定了该基元在效果内总体上的功能。请注意,在图17中,反馈系数块758可以用于构成“梳内全通”((all-pass insidea comb)混响)响应于上面讨论的混响命令)。
实现装置740的一般特性不意味着可以实现所有的功能。只有那些由合法参数驱动的功能可由信号处理器400实际产生音频命令操作。这给了视频游戏程序员在确定适于声音质量和效率的效果方面有较大的灵活性。
                 协处理器显示处理器500
本例中的显示处理器500使三角形和矩形光栅化,并产生高质量的有纹理、去混叠和z缓冲的像素。图18示出了显示处理器500进行的整体处理。显示处理器500接收图形显示命令,该命令规定了要被描绘的图形的例如顶点、颜色、纹理、表面法线和其它特征。在本例中,显示处理器500可以描绘直条、三角形和矩形。一般地,显示处理器500将从信号处理器400接收它要描绘的基元的说明,虽然主处理器100也可是直接向显示处理器规定这些命令。
显示处理器500对输入基元进行的第一操作是光栅化基元,即,产生覆盖基元内部的像素(图18,方框550)。光栅化方框550产生基元内的各像素的各种属性(例如屏幕位置、深度、RGBA颜色信息、纹理坐标和其它参数,以及覆盖值)。光栅化方框550向纹理方框552输出纹理坐标和参数。纹理方框552访问存储在纹理存储器502内的纹理信息,并把纹理存储器内规定纹理纹理元件(texel)。施加(“映射”)到由光栅化框550输出的每个像素上。颜色转换方框554和色度键方框556进一步处理像素值,向颜色组合块558提供纹理颜色。
同时,光栅化方框550向颜色组合方框558提供同一像素的基元颜色(例如,作为明暗处理的结果)。颜色组合方框558组合这两颜色,得到单一的像素颜色。该单一像素颜色输出可用方框560(加雾使之模糊)(例如,产生烟充满房间的效果,或者不那么历害,当物体进一步移离观看者时降低了颜色亮度的自然效果)。然后由方框562把得到的像素颜色值与帧缓冲器118存储的同一屏坐标位置的像素值混合。附加的去混叠/z-缓冲操作564除去隐藏表面(即,较近的不透明物体遮住远的物体)、去混叠(除去用一串像素近似的基元边缘的锯齿),并把新的像素值写回到帧缓冲器118中。
对待要描绘的每个基元内的每个像素都执行图18所示的操作。许多基元可以确定一复杂的场景,而每个基元可以包含成百上千个像素。因此,显示处理器500必须对在彩色电视机58上显示的每幅图像的几百万个像素进行处理。
一般地,帧缓冲器118为“双缓冲的”其意思是它的大小可以包含两幅完整的电视屏幕图像。显示处理器500填充一帧的帧缓冲器信息,而视频接口210同时从帧缓冲器118的另一半读取。在视频帧结束时,视频接口210和显示处理器500交换位置,视频接口从显示处理器500刚完成的新的图像表示中读取,而显示处理器重写另一半帧缓冲器。这种双缓冲没有给显示处理器500更多的时间来完成一帧图像;通常,它仍必须在一视频帧时间内(即,就在要显示新的图像的帧时间之前的视频帧时间期间内)完成图像。流水线
因为在描绘像素时高速操作是非常重要的,显示处理器500被设计成如“流水线”那样工作。再参见图18,“流水线”的意思是图18所示的各种步骤可以对不同的像素平行进行。例如,当栅化方框550可以把第一像素值提供给纹理方框552,然后开始对下一个像素值进行工作,同时纹理方框仍对第一像素值进行工作。同样,光栅化方框550可以超过混合方框562正在工作的像素之前许多像素。
在本例中,显示处理器500具有两种不同的流水线模式:单循环模式和双循环模式。在单循环模式中,在显示处理器500每次循环的时间间隔中处理一个像素。在图19A中图示了单循环模式操作。注意,图19A中所示的操作是流水线的(即,混合操作562对与光栅化操作550当前进行光栅化的像素不同的像素进行操作),但整个操作项列每个循环处理一个像素。
图19B示出了本例中显示处理器500的双循环流水线模式操作。在图19B的例子中,图18所示的某些操作对每个像素进行两次。例如,图18所示的纹理和颜色转换/筛选(filtering)操作552、554对每个像素重复进行;颜色组合操作558进行两次(一次对一纹理操作的纹理颜色输出,一次对另一纹理操作的纹理颜色输出)。同样,图18所示的混合操作562对每个像素进行两次。
即使这些不同的操作进行两次,本例中的显示处理器500并不包含两组相同的硬件来进行同时发生的两组操作(硬件加倍将提高成本和增加复杂性)。因此,在本例中,显示处理器500是用特定的电路(例如纹理单元、颜色组合器或者混合器)进行处理,然后再用同样的电路再对同一像素进行同一类型的操作来重复一个操作。这种重复使流水线慢了一倍(每个像素在流水线中每一站必须“维持”两个循环而不是一个循环),但可以进行更复杂的处理。例如,因为每个像素两个循环的模式可以把两个纹理映射到同一像素上,可以进行“三线性”(“mipmapping″)纹理映射。另外,由于在本例中,显示处理器500使用同一个混合硬件来进行模糊操作560和混合操作562(但不能同时进行混合和模糊),所以通常必须以每个像素两个循环模式进行操作,以提供有用的模糊效果。
下面的表格总结了图19A和19B所示的各个方框在单循环和双循环模式时进行的操作:                单循环模式时显示处理器流水线块功能块                         功能光栅化550          产生被基元内部覆盖的像素及其属性。纹理552            产生4个纹理图中最接近的该像素的纹理元
               件。筛选纹理554        把4个纹理元件双线性筛选成1个纹理元件,
               或进行YUV至RGB转换的步骤1。组合558            把各种颜色组合成一种颜色,或进行,YUV到
               RGB的转换的步骤2。混合562            把该像素与帧缓冲存储器像素混合,或模糊该
               像素,以写到帧缓冲器中。帧缓冲器563        从帧缓冲存储器中取出像素(颜色和z),和把
               像素写到帧冲存储器中。
        双循环模式时显示处理器流水线块功能块                         功能光栅化550          产生被基元内部覆盖的像素及其属性。纹理552a           产生4个纹理图中最接近该像素的纹理元件。
               这可以是X级mipmap。纹理552b           产生4个纹理图中最接近该像素的纹理元件。
               这可以是X+1级mipmap。过滤纹理554a      把4个纹理元件双线性筛选成1个纹理元件。过滤纹理554b      把4个纹理元件双线性筛选成1个纹理元件。
组合558a    把各种颜色组合成一种颜色,或对从2个相邻
            级的mipmap来的2个经双线性筛选的纹理元
            件线性内插,或进行YUV到RGB的转换的步
            骤2。
组合558b    把各种颜色组合成一种颜色,或色度键控。
混合562a    把模糊颜色与得到的CC1颜色组合。
混合562b    把流水线像素与帧缓冲存储器像素混合。
帧缓冲器563a读/修正/写彩色存储器;和
帧缓冲器563b读/修正/写z存储器。填充和复制操作
显示处理器500还具有“填充”模式和“复制”模式,每种模式每个循环处理四个像素。填充模式用于用相同的像素值填充帧缓冲器118区域(例如高性能地清除帧缓冲器或者其区域)。复制模式用于对图像到图像的高性能复制(例如,从显示处理器纹理存储器502复制到帧缓冲器118指定的区域)。复制模式除了提供另一方向(例如,从帧缓冲器到纹理存储器)的高性能复制外,还提供了位“blit”操作。
图19A和19B所示的流水线操作在填充和复制模式期间大多是不用的,因为在本例中,操作跟不上像素填充或者复制速率。然而,在本例中,在复制模式中进行“α比较”(混合操作562的一部分),以使显示器把图像“blit”到帧缓冲器118中,并有条件地去除字α=0的图像像素(例如,透明的像素)。
通过向显示处理器500发送规定“循环类型”参数的“设置其它模式”命令来选择显示处理器的操作模式。参见附录A。在每个像素单循环或每个像素双循环的流水线模式中,附加的显示处理器500命令可用于确保维持流水线同步(例如,在一个基元的参数生效前使流水线对另一个基元为空的)。参见附录A中的“Sync Pipe”命令。
                   显示处理器500的结构例子
图20示出了显示处理器500的结构例子。在本例中,显示处理器500包括与RAM516和DMA控制器518关联的命令单元514;“边缘游动器(edge wak-ler)/光栅化器504;RGBAZ像素步进器(stepper)520;颜色组合器/级解释程序508;混合器/模糊器510;抖动器(ditherer)522、覆盖估计器524;深度(z)比较器526;存储器接口512和纹理单元506。在本例中,纹理单元506除了纹理存储器502外,还包括纹理步进器528、纹理坐标单元530和纹理筛选(filter)单元532。
命令单元514和DMA控制器518连接到协处理器的主内部总线214,还通过专用“x”总线218连接到信号处理器400。存储器接口512为显示处理器500专用的存储器接口,主要用于访问存储在主存储器300内的彩色帧缓)冲器118a和z缓冲器118b(因此,显示处理器通过存储器接口512还通过协处理器内部总线214访问主存储器300。DMA控制器
DMA控制器518经总线214从信号处理器400或者主处理器100接收DMA命令。DMA控制器518具有一些如图21A-21C所示的读/写寄存器,可使信号处理器400和/或主处理器100规定SP数据存储器404或主存储器300的开始地址和结束地址,由它们读取一串图形显示命令(图21A示出了开始地址寄存器518A,图21B示出了结束地址寄存器518B)。如果寄存器518a、518b规定主存储器300的地址,则DMA控制器518经主协处理器总线214读取数据,如果寄存器518a、518b规定数据存储器404的地址,则在经专用“x”总线214从信号处理器的数据存储器404读取数据。DMA控制器518还包括另一个寄存器(图21C所示的寄存器518C),它包含了DMA控制器518正在读取的当前地址。在本例中,DMA控制器518是单向性的(即,它只能从总线214写到RAM516上)。因此,DMA控制器518在本例中用于从信号处理器400或主存储器300进行读取。在本例中,显示处理器500通过把纹理装入命令送至命令单元514,并用存储器接口512来执行这些命令来获得其纹理存储器502的数据。命令单元
命令单元514保存有许多与显示处理器500相关的当前状态信息(例如,由“设置命令”指定的模式和其它选择),并输出属性和指令控制信号,以规定和确定显示处理器500剩余部分的操作。命令单元514包括一些附加的寄存器,主处理器100(或信号处理器400)通过协处理器总线214可以访问这些寄存器。这些附加的映射到主处理器100地址空间的寄存器使主处理器可以控制和监视显示处理器500。
例如,命令单元514包括图21D所示的状态/命令寄存器534,它在主处理器100读取时起状态寄存器的作用,而在主处理器对其写时起命令寄存器的作用。当读该寄存器534时,主处理器100可以确定,显示处理器500是否被占用来进行从信号处理器的数据存储器404读取的DMA操作(字段536(1);显示处理器是否停止等待访问主存储器300(字段536(2));显示处理器的流水线是否正在流动(字段536(3));显示处理器的图形时钟是否起动(字段536(4));纹理存储器502是否忙(字段536(5));显示处理器的流水线是否忙(字段536(6));命令单元514是否忙(字段536(7));命令缓冲器RAM516是否准备接受新的输入(字段536(8));DMA控制器是否忙(字段536(9));以及开始和结束地址和寄存器518a和518b是否分别有效(字段536(10),536(11))。当对同一寄存器534写时,主处理器100(或信号处理器400)可以从信号处理器400清除X总线的DMA操作(字段538(1));开始信号处理器的数据存储器404的X总线DMA操作(字段538(2));起动或者停止显示处理(字段538(3),538(4));起动或者停止流水线流动操作(字段538(5),538(6));清除图21H所示的纹理存储器的地址计数器540(字段538(7));清除图21F所示的流水线忙计数器542(字段58(8));清除用于索引(index)命令缓冲器RAM516的命令计数器544(图21G所示的计数器544)(字段538(9));以及清除用于对时钟周期进行计数的时钟计数器546(见图21E)(字段538(10))。
如上所述,时钟计数、缓冲器计数、流水线计数和纹理存储器计数都可以直接从寄存器540-546读出(见图21E-21H)。另外,主处理器100或信号处理器400可以读取和控制与纹理存储器502有关的BIST操作(见图21I所示的BIST状态/控制寄存器548),还可以利用图21J所示的存储器间隔(mem span)测试寄存器549(a),549(b)和549(c)控制对存储器接口512的测试。
返回参见图20,一旦有一条或一条以上的命令装入到命令单元缓)冲器RAM518,并且显示处理器500已经起动,则命令单元514开始按顺序读取和处理每条命令。显示处理器500所理解的全部指令表列在附录A中。显示处理器500内的硬件(例如,逻辑和门阵列等)直接解释RAM516内的图形显示命令。在本例中,在经过命令表时,该显示处理器500不能转移或者跳转。相反,在本例中,显示处理器500为一顺序状态机,它严格地按顺序接收输入的每条新命令,并响应于该命令改变其状态和输出。
如果其命令缓冲器RAM516为空,(即它已经处理了作为FIFO的缓冲器中所有的命令)则显示处理器500停止。主处理器100或者信号处理器400读取显示处理器的状态寄存器534可以确定显示处理器500是否停止,并且,如果希望,也可以把一使显示处理器暂停止的命令传送给显示处理器(参见附录A中的“(Sync Full)”命令)。边缘游动器和步进器:
图20所示的边缘游动器504进行图18所示的光栅化处理。在本例中,边缘游动器504接收在“三角形命令”中规定的边缘系数、明暗系数、纹理系数和z缓冲器系数(参见规定了特定基元的直线、三角形或矩形的附录A),并输出“间距”值,根据该间距值可以对基元内包含的每个像素得出下述属性:
·屏幕x,y位置
·z缓冲器用的z深度
·RGBA彩色信息
·s/w,t,w,l/w纹理坐标、纹理索引的详细程度,透视校正以及mipmap-ping(这些一般与s,t,w,l有关)
·覆盖值(基元边缘上的像素具有部分覆盖值,而基元内部内的像素为满覆盖值)。
边缘游动器504把跨过基元的一行像素的参数(“间距”)送至流水线硬件下游,进行其它的计算。尤其是,纹理步进器528和RGBAZ步进器520接收边缘游动器504规定的“间距”信息,并沿着“间距”的水平线(在观察平面坐标系统内)内的每个像素顺序地步进,以获得该间距内的各别的像素的各纹理坐标和RGBAZ值。
RGBAZ步进器520还可以对三角形基元进行“剪取”(scissor)操作(在本例中对矩形不进行),以有效地去除延伸到观察面剪取矩形外的三角形基元部分。剪取通常用来去除在信号处理器400上运行性能增强的剪切(clip)操作。剪取在原理上与剪切相似,但剪切是在三维坐标系统内进行的,而剪取是在观察平面的二维坐标系统内进行的。步进器520,528的剪取是通过向显示处理器500发送“set scissor”命令(参见附录A)来调用的。
如上所述,步进器520产生边缘游动器504确定的“间距”内的每个像素的颜色信息和α信息。同样,纹理步进器528产生间距内的每个像素的纹理坐标值(s,t,w)。步进器520,528以同步的方式工作,所以纹理单元506向颜色组合器58输出像素的经映射的纹理值,同时,RGBAZ步进器520根据基元颜色、明暗、照明等输出同一像素的颜色值。纹理单元:
在本例中,纹理单元506得到像素的纹理坐标s,t,w以及详细程度值(如上所述,纹理步进器528根据边缘游动器504提供的“间距”信息得出各像素的这些值),并从机上纹理存储器502取得合适的纹理信息,以映射到该像素上。在本例中,从纹理存储器502取得四个最接近屏幕像素的纹理元件,而这四个纹理元件值用于进行映射。视频游戏程序108可以控制诸如纹理图像类型和格式,如何与在何处装入纹理图像以及纹理取样属性等的纹理状态。
纹理坐标单元530计算出合适的纹理坐标,以把存储在纹理存储器502内的纹理映射到正在描绘的基元上。由于存储在纹理存储器502内的二维纹理是必须映射到各种大小的三角形上的方形或矩形图像,所以530内的纹理坐标必须在纹理内选择合适的纹理元件,以映射到基元内的像素上,避免使纹理变形。参见《公开的GL编程指南》第278页。
纹理坐标单元530计算输入的像素纹理坐标与存储在纹理存储器502中合适的纹理内的四个纹理元件之间的映射。然后纹理坐标单元530适当地对纹理存储器502进行寻址,以取得这四个纹理元件。把四个纹理元件值送到纹理筛选单元532。纹理筛选单元532得到从纹理存储器502取得的四个纹理元件,并产生简单双线性筛选的纹理元件。在本例中,纹理筛选器532可以进行三种类型的筛选操作:点取样、箱式筛选(boxfiltering)和双线性内插。点取样选择最接近屏幕像素的纹理元件。在屏幕像素总是在四个纹理元件的中心的特殊情况下,可以用箱式筛选。在典型的三维情况下,任意旋转多边形、双线性筛选一般是最佳的选择。为了降低硬件成本,显示处理器的纹理筛选单元532不进行真双线性过滤。而是线性内插三个最接近的纹理元件,以产生最后的像素。这具有自然的三角网斜线,在正常的纹理图像中注意不到,而在规则图形的图像中可以注意到。这种假像可以通过用较宽的筛选器预筛选纹理图像来消除。用“set mode”显示命令内的参数来设置纹理过滤单元532进行筛选的类型(参见附录A)。纹理存储器502
显示处理器500把纹理存储器502作为通用纹理存储器来处理。在本例中,纹理处理器502分成四个可同时访问的存储体,每个时钟周期给出四个纹理元件的输出。视频游戏程序58可以把具有不同格式的大小变化的纹理装入纹理存储器502的任何地方。纹理坐标单元530保持描述纹理图像在纹理存储器502内的位置、各纹理的格式以及其取样参数的8个纹理砖(tile)描述符。这可以使显示处理器500同时访问多达8块不同的纹理砖(可以把多于8块纹理砖装入纹理存储器内,但任一时刻只有8块砖可以访问)。
图22示出了纹理磁砖式描述符的一个例子和它们与存储在纹理存储器502内的纹理磁砖的关系。在图22所示的特殊例子中,把8块不同的纹理砖802存储在纹理存储器502内。每块纹理砖802具有相关的纹理砖描述符方框804(如上所讨论的,显示处理器500对应于存储在纹理存储器502内的8块纹理砖,保持多至8个的描述符804)。纹理描述符包含“set tile”命令(参见附录A)规定的信息。例如,这些纹理砖描述符规定图像数据格式(RGBA,YUV,颜色索引模式等),每个像素/纹理元件颜色单元的大小(四、八、十六、三十二位),64位字的砖线的大小,纹理存储器502内的砖的开始地址,4位颜色索引的纹理元件的调色板数,S和T方向的每个方向的抓取(clamp)和镜反射允许,S和T方向的每个方向内包裹(wrapping)/镜反射(mirroring)屏蔽(mask),S和T地址的每个地址偏移的详细程度。这些描述符804由纹理坐标单元530使用,以计算纹理元件在纹理存储器502内的地址。纹理坐标单元:
图23示出了纹理坐标单元530处理的更详细的例子。图23示出了作为加到纹理坐标单元530的输入的各种砖描述符804。图23还示出了纹理坐标单元530从纹理步进器528接收当前像素的基元砖/程度/纹理坐标。纹理坐标单元530另外还从命令单元514根据例如“set other mode”和“set texture image”命令(参见附录A)接收模式控制信号。根据所有这些输入信息,纹理坐标单元530计算哪个砖描述符804用于该基元,并把输入的纹理图像坐标转换成如砖描述符804规定的纹理坐标单元包裹、镜反射和/或抓取的与砖相关的坐标。然后纹理坐标单元530根据这些砖坐标产生输入到纹理存储器502内的偏移量。在本例中,纹理坐标单元530可以在单循环或双循环模式下对2×2的纹理元件区域进行寻址,或者在复制模式下对4×1的区域进行寻址。纹理坐标单元530还产生S/T/L小数值,用于双线性或三线性地内插这些纹理元件。
图24是纹理坐标单元530和纹理存储器单元502的详图。如图24所示,把输入的s,t,w纹理坐标输入到透视校正块566中,当允许透视校正时,它根据w提供透视校正。然后,把经透视校正的s,t值提供给详细程度或者精确位移块568,它在透视分割后使纹理坐标位移(例如,为MIP映射以及可能由于精度原因)。然后,块570把位移后的纹理坐标转换成砖坐标,向纹理筛选单元532提供小数值。然后由块572根据显示处理器500当前的纹理模式参数抓取、包裹和/或镜反射这些砖坐标值。同时,也把透视校正块566提供的经透视校正的纹理坐标提供给细节程度块,当允许进行细节程度计算时,细节程度块574计算砖描述符指标,输入到砖描述符存储器576中,还计算用于由颜色组合器508内插的细节程度小数值。砖描述符804存储在砖描述符存储器576中,检索出砖描述符并输出至存储转换块578,该转换块也接收块572的调整后的纹理坐标值。地址转换块578根据砖描述符804规定的当前砖大小、格式和其它参数,把调整后的纹理坐标值转换成纹理存储单元地址。地址转换块578把纹理元件地址输出到纹理存储单元502。纹理存储单元502还接收用到的附加参数,例如,如果纹理是颜色索引的。纹理存储单元502向纹理筛选单元532输出四个纹理元件值,以进行如上的筛选。纹理存储器装入:
纹理存储单元502包括一个在协处理器200内的四千字节的随机存取存储器。因为纹理处理需要大量的具有一致访问时间的随机访问,因此,在本例中,直接从主存储器300进行纹理处理是不实际的。所用的方法是在片内的高速纹理存储器502内超高速缓存多达四千字节的图像。所有的基元可以用纹理存储器502内的内容来进行纹理处理。
为了使用纹理存储器502,视频游戏程序108必须把一块纹理砖装入纹理存储器,然后把相关的描述符804装入砖描述符576中。“load tile”命令(参见附录A)用于把砖装入纹理存储器502内,“set tile”和“set tile size”命令用于把相应的砖描述符块804装入砖描述符存储器576中。另外,“Load Tlut”命令(参见附录A)可以用于把颜色查找表装入纹理存储器502内,供经颜色索引的纹理使用。
实际上,纹理存储器502由四个存储体组成,每个存储体包含256个16位宽的字,具有低半区和高半区。这种结构可以用于存储4位的纹理(每行20个纹理元件),8位纹理(每行10个纹理元件),16位纹理(每行6个纹理元件),16位YUV纹理(每行12个纹理元件),以及32比特纹理(每行6个纹理元件)。另外,本例中的纹理单元506支持纹理存储器502的高半区用于存储颜色查找表和纹理存储器的低半区用于存储4位或者8位颜色索引纹理的颜色索引的纹理模式。图25示出了这种结构。在图25的例子中,颜色索引的纹理砖580存储在纹理存储器502的低半区502(L)内,对应的颜色查找表582存储在纹理存储器的高半区502(H)内。
图26更详细地示出了特定纹理存储器颜色索引模式的示意图,在该图中,颜色查找表582分成四个调色板存储体或者表,每个存储体具有例如16个条目,每个条目为16位特宽。颜色查找表可以用16位的RGBA格式或者16比特IA格式来表示颜色。由于同时要对四个纹理元件寻址,所以有四个(通常是相同的)查找表484存储在纹理存储器502的高半区。如上所述,这些查找表用如附录A所示的“load tlut”指令来装入。
显示处理器500支持另一种纹理存储器502的低半区内的每个纹理元件包含8位的颜色索引纹理模式,因此可以直接访问纹理存储器502的上半区502(H)中256个存储单元中的任一个存储单元。因此,由于它们对所有256单元的查找表直接进行寻址,8位颜色索引的纹理不使用砖调色板号。当使用8位颜色索引的纹理时,不必用纹理存储器502的整个高半区作为查找表。例如,如果颜色查找使用了少于8位的8位的颜色索引的纹理砖,则仅需要颜色存储器的高半区502(H)中的一部分来存储查找表,因此,可以把纹理存储器502的高半区的剩余部分用来存储诸如4位I纹理(参见图25)的非颜色索引的纹理。同样,即使当把颜色索引的纹理580存储在纹理存储器502的低半区502(L)内,也可以在低半区存储非颜色索引的纹理。因此,颜色索引的纹理和非颜色索引的纹理可以共同驻留在纹理存储器502内。
纹理存储器502和纹理坐标单元530支持下面的纹理格式和大小:
                       纹理格式和尺寸
  类型    4位    8位    16位    32位
  RGBA     X     X
  YUV     X
  颜色索引     X     X
强度α(IA)     X     X     X
  强度(I)     X     X
在本例中,除非另有说明,纹理单元506将根据装入立即改变砖描述符804或者纹理砖802,即使先前基元的纹理映射仍使用它。在基元描绘后的纹理装入应在“sync load”命令之后,砖描述符属性的改变应在“sync tile”命令之后,以确保纹理单元506的纹理砖和砖描述符状态在最近一个基元完全完成处理(例如,这些命令的格式和功能可参见附录A)之前不改变。
如上结合信号处理器400的描述,两个专用命令(“texture rectangle”和“texture rectangle flip”可以用于把纹理映射到矩形基元(参见附录A)上。例如,可以用“texture rectangle”命令把纹理存储器502的图像复制到帧缓冲器118内。参见附录A。颜色组合器
再次参见图20,颜色组合器508把纹理单元506输出的纹理元件与RG-BAZ步进器520输出的步进RGBA像素值相组合。颜色组合器508可从多个源中得到两个颜色值,并在它们之间进行线性内插。颜色组合器508运行下述公式:
               newcolor=(A-B)*C+D
此处,A、B、C和D可来自许多不同的源(注意,如果D=B,则颜色组合器508进行简单的线性内插)。
图27示出了本例中用于RGB和α颜色组合的通用线性内插颜色组合器的可能的输入选择。如从图27可以看出的,仅仅左列中的一些输入来自纹理单元506或者RGBAZ步进器520。余下的输入得自可以通过向显示处理器500发送命令进行编程的组合器508的内部状态。如上所讨论的,提供给颜色组合器508的“经组合的颜色”和“经组合的α”值从RGBAZ步进器520获得,而纹理颜色和纹理α从纹理单元506获得(由于在每像素两循环模式中,纹理单元506提供两个纹理元件用于例如mipmapping,所以示出了两个纹理元件颜色和对应的α值)。另外,细节程序的小数输入可以从图24的块574获得,基元细节程度值以及基元颜色和基元α值可以从发送到显示处理器500的“set primitive color”命令(参见附录A)获得(基元的颜色值/α/细节程序值可以用于设置不变的多边形表面颜色)。同样,明暗颜色和相关的α值可以从“shade coefficient”命令(参见附录A)获得,环境颜色和相关的α值可以从“设置环境颜色”命令(参见附录A)获得(上述的环境颜色/α值可以用于表示周围环境颜色)。两种“set key”命令(一种用于绿/蓝,另一种用于红)分别用于绿/蓝色键控和红色键控,这向颜色组合器508提供了适当的键:中心(key:center)和键:比例(key:scale)输入(参见附录A)。基元和环境值都是可以编程的,因此能用作通常的线性内插源。
在本例中,输入到颜色组合器508的转换K4(convertk4)和K5通过“setconvert”命令(参见附录A)来规定,它在把纹理元件值从YUV格式转换到RGB格式后调节红色坐标(对应于这种set convert命令的余下的转换过程在纹理筛选器532内进行)。
图28示出了用来组合图27所示的输入的α值的颜色组合器508的一部分。对于颜色组合器508进行的α颜色组合操作中的RGB颜色组合,有两种模式,分别是两种可能的每像素一个循环和每像素两循环的流水线模式。在两循环模式中,颜色组合器508可以进行两个线性内插算术计算。一般,第二个循环用于进行纹理和明暗颜色调制(即,颜色组合器508的操作,一般专在单循环模式中使用),而第一循环可以用于另一线性内插计算(例如,在来自两个mipmap砖的两双线性筛选纹理元件之间内插的详细程度)。在本例中,颜色组合器508还进行如图29所示的“α固定”操作(参见附录A中的“set key GB”命令)。混合器
如上所讨论的,混合器510得到颜色组合器508提供的组合像素值,并可以把它们对帧缓冲器118的像素进行混合。透明是通过对帧缓冲器颜色像素进行混合来达到的。一部分多边形边缘的去混叠通过混合器510根据深度(z)范围用有条件的颜色混合来进行。混合器510还可以在两循环模式中,进行模糊操作。
混合器510能进行不同的有条件的颜色混合和z缓冲器更新,因此,它可以处理如图30所示的所有各种类型的表面(即,不透明表面、移画印花(decal)表面、透明表面以及互相贯穿表面)。
混合器510一个重要的特点是它参与去混叠处理。混合器510根据深度范围有条件地把像素混合或者写入帧缓冲器118A(参见图33,它示出了包括“dz”深度范围字段的z缓冲器格式的例子)。请参见Akeley等人的名为“根据深度范围值合并像素的系统和方法”的美国专利申请No.____,该申请与本申请同时提出。(Atty.Dkt.No.SKGF 1452/1740000;SGI docket no.15-4-300.00)
在本例中,视频接口210在帧缓冲器读出时刻提供空间筛选器来计算周围背景的颜色,以产生去混叠的轮廓边缘。去混叠方法要求进行有顺序按表面或线的类型分类的描绘。此处是z缓冲器的去假模式的理现顺序和表面/线类型:
1、描绘所有不透明的表面。
2、描绘所有不透明的移画印花表面。
3、描绘所有互相贯穿的表面。
4、描绘所有透明的表面和线条。这些可以以任意顺序描绘,但适当的深度顺序可以给出适当的透明性。
模式混合器510部分由限定基元的三角形命令中规定的系数组来控制(参见附录A)。因此,基元可以按三角形命令规定的z缓冲模式或非z缓冲模式来描绘。另外,除了规定“blend masks”和允许/禁止去混叠之外,“set othermodes”命令(参见附录A)还规定了循环0和循环1的混合模式字。
混合器510具有两个内部颜色寄存器:模糊颜色和混合颜色。这些值是可分别用“set fog color”和“set blend color”命令(参见附录A)来编程的。这些值可用于具有不变的模糊或透明性的几何图形。
混合器510可以把输入像素α值与可编程的α源进行比较,以有条件地更新帧缓冲器118A。该特点例如可以允许有复杂的有轮廓的广告牌型物体。除了对一个值规定了阈值外,在本例中,混合器510还可以对一抖动值进行比较,给出随机的颗粒效果。请参见:“set other modes”命令(附录A)。在1循环或者2循环模式中,混合器510还可以进行模糊操作。混合器510把步进z值用作模糊和流水线颜色混合的模糊系数(fog coefficient)。
图31示出了本例的混合器进行的所有操作的一个例子。在该特定的例子中,混合器510可以工作在覆盖估计器524产生的覆盖值可以用于规定混合量的模式中。覆盖估计器524把当前像素(由边缘游动器504提供)的覆盖值与存储在帧缓冲器118A内的覆盖值作比较。如图32(在颜色帧缓冲器118A内存储的每个像素的颜色信息格式图)所示,像素的颜色用每种5位红、绿和蓝数据以及3位的“覆盖”值表示。该“覆盖”值可以就那样用或者乘以α值,用作像素α和/或覆盖(参见附录A中的“set other modes”命令)。“覆盖”值名义上规定了像数的多少个被特定的表面覆盖。因此,边缘游动器504输出的覆盖值对于完全位于基元内部的像素为1,而对在基元边缘上的像素覆盖值小于1。在本例中,混合器510使用覆盖值进行去混叠。在混合器510混合基元边缘时,并不了解基元边缘是否在由多个基元形成的物体内,或者边缘是否在所表示的物体的外边缘上。为了解决本例中的这一问题,当视频接口210读出显示用的帧缓冲器118A时,推迟对不透明的边缘值的最后混合,一直到显示时刻。视频接口210使用该覆盖值,在帧缓冲器118A的像素颜色和邻近的像素颜色之间进行内插。为了在显示时刻实现这种去混叠,混合器510必须把每个像素的覆盖值保持在帧缓冲器118A内,从而使视频接口210稍后决定特定的像素是否为轮廓边缘或者是否是多个多边形物体的内部边缘。存储器接口512和Z缓冲
存储器接口512提供了显示处理器500与主存储器300之间的接口。存储器接口512主要在正常的显示处理器500工作期间用于访问颜色帧缓冲器118a和Z缓冲器118b。颜色帧缓冲器118a存储彩色电视机屏幕60上每个像素的颜色值。像素格式示于图32。Z缓冲器118b对于每个存储在颜色帧存储器118a内的颜色像素值存储深度值和深度范围值。图33示出了z缓冲器值格式的一个例子。Z缓冲器118b主要由混合器510用来决定新描绘的基元是在先前描绘的基元之前还是在其后(从而除去隐藏的表面)。图33所示的“DZ”深度范围值可以用于帮助确定相邻的纹理元件是否是同一物体表面的一部分。
存储器接口512可以写到主存储器300,从主存储器读取,或者读、修改和写(RMW)主存储器中的存储单元。对于RMW操作,在本例中,只要边缘游动器504确定了间距的x,y坐标,就从帧缓冲器118a中预取一行像素。存储器接口512包括一内部“间距缓冲器”512a,用于存储该间距或该行像素。存储器接口512在适当的时刻向混合器510a提供合适的从间距缓冲器510a预取的像素值,由此减少对主存储器300的访问次数。间距缓冲器512a还用于暂存储混合后的(修改后的)像素值,所以显示处理器500每次混合新的像素值时不需要访问主存储器300。通常,存储器接口512立刻把全部间距的像素作为一块写到主存储器300内。
存储器接口512有足够的芯片上RAM来保持几个间距缓冲器。然而,如果两个顺序的间距碰巧覆盖同一屏幕区域,这可能引起问题。在开始下一个基元之前,“set other modes”命令(参见附录A)内的参数“atomic space”强制存储器接口512把一个基元写到帧缓冲器118a中,从而在描绘基元的上一间距之后不增加循环来避免这种潜在的问题。
深度比较器526与z缓冲器118一起工作,以除去隐藏的表面,并确保适当地混合透明值。深度比较器526把当前像素的z或深度值与当前驻留在z缓冲器118a内的该屏幕位置的z值作比较。在开始描绘现新的帧时,最好把z缓冲器118b内的所有存储单元初始化成离观察者最大距离(因此,任何物体都将在该初始化值“前”展现)。通常,显示处理器500每次把新像素混入到帧缓冲器118a内,深度比较器526把当前像素的深度与驻留在z缓冲器118b该存储单元内的深度作比较。如果老的z缓冲器值指出前次写入的像素比新像素更接近观察者,则把新像素(至少对于不透明值)丢弃,并不写入到帧缓冲器中,由此除去隐藏表面。如果深度比较器526指出新像素更接近老像素,则可以把新像素值(至少对于不透明像素)代替帧缓冲器118a内的老像素值,而z缓冲器118b内的相应值同样用新像素的z位置来更新(参见图33A)。透明性混合可以这样实现,即不更新z缓冲器值,但仍然首先读取它,并且如果透明像素在不透明像素后面,则不进行混合。视频接口210
视频接口210读取帧缓冲器118的数据输出,并产生复合S视频RGB视频输出信号。在本例中,视频接口还进行去混叠操作,还可以进行滤波,以除去引入的抖动噪声引起的截断(truncation)现像。
在本例中,视频接口210工作在NTSC或者PAL模式,可以显示具有或者不具有在高和低分辨率下滤波的15位或24位彩色像素。视频接口210还可以按比例放大较小的图像以填充屏幕。视频接口210提供28种不同的视频模式加上另外一些特点。
在本例中,视频接口210与电子束扫描彩色电视机屏幕60同步地读取颜色帧缓冲器118a,并向视频DAC144提供数字形式的每个像素的RGB值,以转换成模拟视频电平。视频接口210对于根据覆盖的不透明值,进行混合(从而提供去混叠功能),还进行反向滤波(back-filtering)操作,以除去一些屏幕抖动引入的噪声。
图34是视频接口210的结构框图。在本例中,视频接口210包括DMA控制器900、缓冲器902、控制逻辑904、去混叠滤波器906a、906b、误差校正块908a、908b、帧内插器(滤波器)910、行内插器(过滤器)912、“随机”函数发生器914、γ块916和总线驱动器918。
DMA控制器900连接到协处理器总线214上。DMA控制器900从由以主处理器100规定的主存储器内的“起始”地址开始,读取颜色帧存储器118a(参见图35B)。DMA控制器900顺序地与电视机58的行扫描操作同步地从帧缓)中器118a读取像素颜色和覆盖值(参见图32)。在本例中,DMA控制器900读取的像素值由视频接口210的余下部分进行处理,并输出到视频DAC144,以转换成模拟复合视频信号NTSC或者PAL格式。
在本例中,DMA控制器900把从主存储器帧缓冲器118a读取的颜色/覆盖值提供给RAM缓冲器902,作暂时存储。在本例中,缓冲器902不存储对应于所有电视视频一整行的像素颜色值。而缓冲器902存储多个像素数据块,每块对应于一视频行的一部分。缓冲器902提供“双缓冲”,即,它具有足够的缓冲器使行的一些部分可用于滤波器906,而另一些缓冲器正由DMA控制器900写入。
在本例中,DMA控制器900访问对应于要在电视机屏幕60上显示的视频行的几个水平成一直线的部分的几个像素数据,并存储到缓冲器902内。请见图34A,为了图示说明起见,把帧缓冲器118a表示成以对应于电视机屏幕上的像素的行/列顺序构成(应当理解,如主存储器300内存储的帧缓冲实际上可以作为像素颜色/覆盖值的长序列表存储)。在本例中,DMA控制器900读出对应于待显示的当前视频第n行的特定段的像素值块(图34A的帧缓冲器118a内的顶部打明暗线的块),也读取对应于“下一”第n+1视频行(即,表示紧接在第n行下的“下一”行线的一部分)的水平成一直线(在电视机屏幕上)的线段的像素值。在这特定的例子中,还从帧缓冲器读出对应于水平成一直线准的视频第n+2行线段的像素值块。
这些像素值块的每一块存储在缓冲器902中。滤波器906a、906b根据覆盖值进行滤波/去混叠操作,以用相邻的像素值(即,与彩色电视机屏幕上60的显示位置相邻的像素值)内插当前的线像素值。滤波器906a、906b进行的去混叠滤波操作如Van Hook等人同时申请的待批专利申请No.____中所描述的那样。简言之,在滤波器906进行的混合处理中,对三条扫描线高的相邻像素用覆盖值进行彩色加权。通过用帧缓冲器118a内剩余的像素覆盖值(该覆盖值指出像素的百分之几被多边形覆盖),相对于相邻像素值在混合处理时的贡献调节该像素值的贡献,以产生当前像素值,该滤波操作在表面边缘上得到更平滑、较少锯齿的线。由于去混叠处理引入了轻微的假像,“Divot”误差校正块908a、908b校正去混叠筛选器906a、906b的输出。尤其是,对于轮廓边缘上或者相邻于轮廓边缘的像素,误差校正块908把三个相邻像素的当中一个值作为待显示的颜色,代替中心像素。可以在软件控制下允许或禁止这种误差校正(参见图35A),视频游戏程序员可能由于它与移画印花线描绘模式缺乏相互作用而希望禁止误差校正。
在本例中,去混叠筛选器906a、906b并行工作,产生对应于帧缓冲器118a表示的图像的两连续行(第n和n+1行)的水平成一直线部分的像素数据块。这些像素值提供给帧内插器910,它在这两图像行之间进行线性内插,产生单个扫描行的图像部分(参见图34A)。内插器910在连续扫描行之间进行内插,以减少隔行显示时的闪烁。例如,内插器910可以加入来自前一或下一连续的水平成一线的扫描行部分的贡献,以使连续的视频扫描行之间的转换较不显著,从而减少闪烁。
另外,本例中的内插器910可以进行垂直换算(scaling)功能,这可以使电视机屏幕60上显示的行数与帧缓冲器118a的像素信息表示的行数不同。在本例中,筛选器906通过对帧缓冲器118a表示的连续的图像行的像素数据重新取样来对垂直尺度进行换算,从而使电视机屏幕60具有不同的行数。这种换算操作(这也调节了偏移量)由视频接口Y换算寄存器(参见图35N)内的值控制。相对于帧缓)冲器118a的数字图像尺寸换算电视图像的能力提供了额外的灵活性。例如,这种换算能力使信号处理器400和显示处理器500可以在帧缓冲器118内产生较小的数字图像表示,并仍使该较小的图像充满整个电视机屏幕60。由于较小的帧缓冲器118需要较少的时间进行光栅化(即,对于给定的多边形显示处理器500需要处理较少的间距和每个间隔较少的像素)和用较少的存储器进行存储,所以换算能力可以提高性能,即使以低分辨率的图像为代价。请参见同时提交的专利申请No.____,以获得关于图像换算的更进一步信息。
在本例中,场筛选器910的输出是表示待显示的部分视频行的像素值的像素数据块。如图34A所示,把该像素值块提供给行内插器912。行内插器912在相邻的像素值之间提供线性内插,以根据存储在X换算寄存器内的水平换算系数对像素重新取样(参见图35M)。因此行内插器912提供了水平换算能力,以例如把少量的帧缓冲器值沿水平行转换成大量的屏幕像素。
把行内插器912的输出提供给γ校正电路916,它把线性RGB强度转换成适合于产生TV监视器的γ非线性度的复合视频的非线性强度值。这相当于对线性颜色空间取平方根。TV监视器有效地把这些颜色值提高到2.2或者2.4次幂。“随机”功能块914把附加的分辨率位引入到各R、G和B颜色值中,以进行“去抖动”(即,补偿由显示处理器的抖动块522作的位截断)。如图32所示,在本例中帧缓冲器118颜色像素格式的一个例子各对于R、G和B每一种仅提供5位的分辨率,以节省主存储器300内的存储空间。显示处理器抖动块522可以截断混合器510提供的8位RGB颜色值,以提供图32所示的压缩表示。块914可以倒转该截断过程,以对RGB值进行解压,提供各R、G和B不同的显示颜色值。参见11/21/95以Gossett的名义申请的、名称为“截断像素的分辨率筛选器”的美国专利申请No.____。这种抖动筛选器操作可以在软件控制下起动或停止(参见图35A)。视频接口寄存器的例子
视频接口210有16个控制寄存器,它们控制其所有的功能,包括同步产生、视频再换算以及去混叠等。图35A-35P示出了视频接口210内的可被主处理器100访问的各种寄存器。
图35A示出了视频接口控制寄存器952。主处理器100可以把下列值写入到该寄存器来控制视频接口210的操作:
·类型字段952a,把像素数据大小规定成空白(无数据,无同步),其格式如图32所示(对于RGB,每种5位,再加3位覆盖值),或者8/8/8/8(32位颜色值和8位覆盖值);
·γ抖动允许字段925b,在最后量化到7位以消除马赫(Mach)带状假像(bending artifact)之前,向视频输出的最低有效位接通和断开附加一些随机噪声;
·γ允许字段952c,接通和断开γ校正;
·Divot允许字段952d,接通打开和断开上述的divot误差校正;
·视频总线时钟允许字段952e,接通或断开内部时钟;
·隔行扫描字段952f,接通或断开隔行扫描;
·测试模式字段952g;
·去混叠模式开/关字段952h;
·诊断字段952i;
·像素提前(advace)字段952j;和
·抖动筛选允许字段952k。
图35B示出了用于规定帧缓冲器118a的主存储器300的起始地址以便读出的视频接口原始寄存器954。在本例中,视频接口210每次从主存储器300的新区域读出时(例如,读取双缓冲帧缓冲器118的另一半),主处理器100都需要明确地设置该寄存器954。
图35c示出了视频接口行宽寄存器956,它可以被设置成规定在每一行中的像素数。图35d示出了视频接口帧中断寄存器958,主处理器100可以用特定的重直线号来设置,以使协处理器200在规定的垂直线或半线处每帧中断主处理器一次。图35e示出了视频接口当前线寄存器960,它规定了主处理器100读取垂直时的当前垂直线,并当主处理器写入时,清除垂直线中断。
主处理器使用图35F-35L所示的寄存器962-972,规定详细的复合视频定时参数。例如:
·图35F示出了帧接口定时寄存器962,主处理器100可以写入,以规定行同步脉冲宽度、颜色同步脉冲宽度、帧同步脉冲宽度以及色同步脉冲起始定时。
·图35G示出了视频接口帧同步寄存器964,主处理器100可以写入,以规定每场的垂直半线(half-line)数。
·图35H示出了视频接口行同步寄存器965,主处理器100可以写入,以规定PAL的一行的总持续时间和水平“跳跃图形”(leap pattern)。
·图35I示出了规定PAL两个可替换的h同步跳跃参数的视频接口h同步跳跃寄存器966。
·在图35j、35k分别示出的视频接口行视频寄存器和帧视频寄存器968、970用于规定行和帧视频相对于行同步和帧同步的起始和结束时刻。
·图35L所示的帧接口帧脉冲寄存器972规定色同步脉冲起始和结束时间。
可编程到寄存器962-972的定时参数可以用来提供与不同类型的电视机58的兼容性。例如,美国的大多数电视机58使用称为NTSC的复合视频格式,而大多数欧洲的电视机采用称为PAL的复合视频格式。这些格式在详细的定时参数上不同(例如,信号图形内的帧消隐积分宽度和位置,行同步脉冲宽度、色同步脉冲信号宽度等)。因为寄存器962-972控制这些复合视频定时参数,并且它是可通过在主处理器100上执行的软件来编程,所以视频游戏机108的程序员可以把适当的命令包括在视频游戏程序内,把适当的值写入到寄存器962-972中,使程序与NTSC兼容、与PAL兼容,或者与两者都兼容(根据用户选择)。因此,在本例中,协处理器200与NTSC制式的电视机58、PAL制式的电视机兼容,甚至与在寄存器962-972的内容所规定的范围的不同于这些格式的视频格式兼容。
如上所述,帧接口x和y换算寄存器974、976(分别参见图35m、35n)规定了行和帧换算的x和y按比例增加和子像素偏移量参数。图350和35p示出了用于诊断的视频接口测试数据和地址寄存器978、980。存储器控制器/接口212
如上所解释的,协处理器存储器接口212用协处理器内部总线214连接主存储器300。在本例中,通过9位宽的总线访问主存储器300,而任务存储器接口212之一承担缓冲连续的9位字的任务,所以协处理器200可以更方便地处理它们。图36示出了存储器控制器/接口212的整体结构的一个例子的图。
在本例中,存储器接口/控制器212包括一对寄存器/缓冲器1000,1002、控制块1004和RAM控制器块212b。RAM控制器块212b包含由Rambus公司设计和给出技术条件的RAM控制电路,用于控制主存储器300。寄存器1000,1002分别用于锁存输出和输入数据。控制块1004控制存储器接口212的操作。存储器控制器/接口寄存器之例
图37A-37H示出了主处理器100用来控制存储器接口212的控制寄存器的一个例子。图37A示出了规定操作模式和是否启动发生或接收的读/写模式寄存器(1052)。图37B示出了规定当前控制输入和当前控制允许的配置寄存器1054。图37C表示为只写的当前模式寄存器1056,任何写该寄存器就更新当前控制寄存器。图37D示出了用于选择接收或发送的选择寄存器1058。图37E示出了用于规定DMA潜伏/重叠的潜隐寄存器1060。图37F示出了刷新寄存器1062,它规定了干净和不净的刷新延迟(clean and dirty refresh delay),指出了当前刷新的存储体,指出了是否允许刷新,指出了刷新是否最佳,并且它包括规定了刷新多存储体设备的字段。图37G示出了误差寄存器,它在读模式下指出了NACK、ACK和超范围误差,并在主处理器100写入时清除所有的误差位。图37H示出了存储体状态寄存器1066,当从该寄存器读取时,它指出了当前存储体的有效和不净位,当写入时,它清除了当前存储体的有效位和设置不净位。CPU接口
图38示出了本例的协处理器CPU接口202的方框图。CPU接口202包含FIFO缓冲器1102和控制块1104。FIFO缓冲器1102提供CPU Sys AD多路复用的地址/数据总线102a与协处理器多路复用的地址/数据总线214D之间的双向缓冲。控制块1104接收主处理器100认定的地址,并把它们放到协处理器的地址总线214C上。控制块1104还从协处理器200的其它部分接收中断信号,并通过Sys CMD总线102b从主处理器100接收命令控制信号。CPU接口寄存器之例
图39A-39D示出了本例中包含在CPU接口303内的寄存器。图39示出了CPU接口状态/控制寄存器1152,当主处理器写至该寄存器时控制协处理器200,而当主处理器从该寄存器读取时指出所有协处理器的状态。主处理器100可以写至寄存器1152,以规定初始化码的长度、设置或清除初始化模式、设置或清除内部协处理器总线测试模式、清除显示处理器400的中断以及设置或清除主存储器寄存器模式。当主处理器100从该寄存器1152读取时,它可以确定初始化码长度、初始化模式、内部协处理器总线测试模式以及协处理器是否以主存储器寄存器模式工作。
图39b示出了版本寄存器1154,主处理器100可以从其读取,以确定属于协处理器200内的各部分的版本信息。
图39c示出了中断寄存器1156,主处理器100可以从其读取,以确定它从协处理器200接收到的中断源。在本例中,信号线连接在协处理器200与主处理器100之间,以用于中断。一旦接收到协处理器的中断,主处理器100可以读取中断寄存器(它包含有一个中断向量),以查明协处理器200中的哪个部分(即信号处理器400、串行接口204、音频接口208、视频接口210、并行接口206或者显示处理器500)产生中断。图39d示出了中断屏蔽寄存器1158,主处理器100可以写入,以设置或清除中断寄存器1156内规定的任何中断的中断屏蔽,也可以读出,以确定哪些中断被屏蔽哪些没有被屏蔽。音频接口
图40示出了本例中音频接口的整体框图结构。音频接口208包括DMA逻辑1200、状态机/控制器1202、音频时钟发生器1204、音频数据缓冲器1206和并串行转换器1208。在本例中,DMA逻辑1200从主存储器300内的音频缓冲器114取得数字音频抽样数据。DMA逻辑1200把该音频抽样数据以每次8个字节写入到音频数据缓冲器1206中。在FIFO内设置有多个音数据缓冲器1206,所以DMA逻辑1200可以预取出一些音频抽样数据,同时并串行转换器1208把其它的预取并缓冲的音频抽样数据进行并串转换。因此,在DMA逻辑1200的块读数之间,缓冲器1206存储足够的数据供并串行转换器1208。由于并串行转换器1208的输出速率较低(例如,在50kHz进为4字节),所以单个64位缓冲器1206b可以存储足够多的数字化音频抽样,以维持较长时间的实时音频输出。
如上所述,并串行转换器把音频缓冲器1206的并行内容转换成串行格式,并把得到的串行数字音频数据流放在总线209上,与音频DAC140通信。在本例中,数字音频总线209包括在左声道数据与右声道数据之间复用的单根串行数据线209a。在本例中,每个立体声声道并串行转换器1208输出16位长的字,并在这些声道之间转换。并串行转换器1208的输出比特率由音频时钟发生器1204规定。音频时钟发生器1204在209b上产生音频时钟输出,使音频DAC140与并串行转换器1208的输出比特率同步,并在线209c上产生规定当前并串行转换输出1208是用于左或右立体声声道的音频L/R时钟。
图40示出了多个用于控制音频接口208的寄存器和计数器。DMA控制器1200从地址寄存器1210接收起始的主存储器地址。主处理器100写至该地址寄存器1210(参见图41A),向音频接口208指出主存储器300内的地址,主存储器300提供给音频缓冲器114待播放的当前音频信号。计数器1212在DMA控制器1200每次读取时增加该地址,从而使DMA控制器按顺序通过所有音频缓冲器114。主处理器100把音频缓冲器114的长度写入到传送长度寄存器1214(参见图41B)内。另一个与长度寄存器1214相关的计数器1216使状态机1202按顺序通过合适数目的对应于音频缓冲器114长度的控制状态。状态机1202产生使音频接口208的另一部分的操作相互同步的控制信号。在本例中,主处理器100通过写至DMA允许寄存器存储单元1217(图40中未示出,参见图41C)可以使音频接口208开始从主存储器300读取数据。主处理器100还可以通过读取音频接口的状态寄存器1218(图40中未示出,参见图41D)确定音频接口的状态。在本例中,当状态机1202到达长度寄存器1214规定的音频缓冲器114的结尾时,它产生主处理器中断,而主处理器100可以通过写至状态寄存器1218的存储单元(参见图41D)来清除该中断。
在本例中,主处理器100还可以控制音频时钟发生器1204产生的时钟信号的速率。主处理器100可以写通过至音频速率寄存器1218,1220(参见图41E、41F)来对这些速率进行编程。计数器1222可以根据主处理器100写入到音频速率寄存器1218、1220内的速率值提供可编程的分频(dividing)功能。串行接口
图42示出了本例中串行接口204的总体高层方框图。
在本例中,串行接口204把数据块在协处理器200与串行外围接口138之间移动。串行接口204可以或者从串行外围接口138读取64字节的数据块,并把它传送到主存储器300内指定的位置,或者可以读取存储在主存储器内的64字节的数据块,并把它串行传送至串行外围接口。在本例中,串行接口204包含基本直接存储器访问逻辑1300、控制逻辑1302和并/串转换器1304。在本例中,并/串转换器包含移位寄存器,它把串行外围接口138在读数据/确认总线205a上传送的串行数据转换成并行数据,用于加到锁存器1308。然后,把锁存器1308的内容加到协处理器数据总线214d,以写入主存储器300内。另一方面,在并—串转换模式中,移位寄存器1304通过锁存器1310从协处理器数据总线214d接收并行数据,并把该数据转换成串行,通过命令和写数据总线205b传送至串行外围接口138。
主处理器100通过把该地址写入到地址寄存器1312规定串行接口204读或写的主存储器300内的地址(参见图43A)。地址寄存器1312的内容规定了要装入DMA地址计数器1314的主存储器地址。地址寄存器1312的部分内容还可以用于规定串行外围接口138内的“地址”信息。把这些串行外围接口“地址”信息装入锁存器1316,把其内容提供给移位寄存器1304,以传送给串行外围接口。该串行外围接口“地址”信息可以用于例如规定串行外围接口138的存储单元(即,引导ROM存储单元158、RAM缓冲器或者状态寄存器)。
在本例中,串行接口204具有把移位寄存器1304的并行输出通过寄存器1308、多路复用器1318和锁存器1320放到协处理器地址总线214c上的能力。
如图43B、43C所示,本例中的主处理器100通过写至存储单元1322或1324规定了串行传送的方向。对存储单元1322的写入使串行接口204从串行外围接口138读取64字节数据块,并把它写到由地址寄存器1312规定的主存储器300的存储单元。主处理器100写入寄存器存储单元1324使串行接口204从地址寄存器1312规定的主存储器300的存储单元读取64字节数据块,并把该数据以串行形式写至串行外围接口138。
图43D示出了串行接口状态寄存器1326。主处理器100可以读状态寄存器1326,以确定串行接口204的状态(例如,串行接口是否分别因DMA或者I/0操作忙(字段1328(1)1328(2));是否有DMA误差(字段1328(3));或者串行接口是否引起主处理器中断(字段1328(4)))。每当它完成来/往自串行外围接口138的数据传送,串行接口204可以产生主处理器中断。主处理器100可以通过写至寄存器1326来清除串行接口中断。并行外围接口
图44示出了并行外围接口206的例子的方框图。在本例中,并行接口206把数据块在主存储器300与存储器件54之间进行传送。虽然上述的存储器件54只包括连接到并行总线104的只读存储器76,但系统50可以把不同的外围结构连接到连接器154上。例如,可以把两种不同类型的外围器件(例如,ROM和RAM)连接到外围连接器154上。外围接口206设计成支持两种不同类型的连接到同一并行总线104上的外围器件之间进行通信,而不需要在写之间进行任何耗时的再配置。
某些外围器件可以是只读的(例如ROM76),另一些外围器件可以是读/写的(例如随机存取存储器或者调制解调器),再一些外围器件可以是只写的。外围接口206支持连接器154与主存储器300之间经并行总线104双向并行传送。
在本例中,并行外围接口206包括DAM控制器1400、控制/寄存器块1402和寄存器存储器1404。寄存器存储器缓冲外围接口206在连接到连接器154的外围器件与主存储器300内的存储单元块之间传送的数据块。在本例中,寄存器存储器1404包含小型的RAM,它存储16个64位的字。寄存器存储器1404工作成FIFO,由控制/寄存器块1402寻址。寄存器存储器1404的输出由多路复用器1406多路复用成16位部分。这些16位宽的值由锁存器1408锁存,通过多路复用地址/数据总线104ad加到连接到连接器154的外围器件上。在加到寄存器存储器1404之前(通过也把16位读取值放置在64位字的适当的四分之一上的多路复用器1412),通过多路复用地址/数据总线104ad把读取的数据暂时存储在锁存器1410内。多路复用器1412还通过锁存器1414从协处理器数据总线214d接收数据,并能把该接收到的数据按规定路线传送给寄存器存储器1404以存储。寄存器存储器1404的输出还可以通过锁存器1416耦合到协处理器的数据总线214d上。在本例中,寄存器存储器1404的输出也可以通过多路复用器1418和锁存器1420耦合到协处理器地址总线214c上。
主处理器100通过把参数写入控制/寄存器块1402控制由外围接口206进行的DAM传送的参数。例如,主处理器100可以把主存储器开始地址写入DRAM地址寄存器1422(参见图45A),并可以通过把外围总线地址的开始地址写入外围总线寄存器1424(参见图45B)来写入连接到连接器154的外围器件的开始地址空间。在本例中,主处理器100通过分别写到图45C、45D所示的寄存器1426、1428之一来规定传送的长度和方向。图45C所示的读取长度寄存器1426的写入控制外围接口206沿一个方向传送,而写一长度值到图45D所示的寄存器1428使外围接口沿相反的方向传输。在本例中,主处理器100可以通过从状态寄存器存储单元1430(R)(参见图45B)的读取来读外围接口206的状态。该状态寄存器1430(R)包含指出进行中的DMA传送(字段1432(1))、进行中的I/O操作(字段1432(2))、误差情况(字段1432(3))的字段1432。通过写入同一寄存器1430(W)存储单元,主处理器100可以当其完成请求的传送时清除外围接口206产生的中断。写到状态寄存器存储单元1430(W)也使主处理器100清除中断和放弃进行中的传送(参见图45A的字段1434(1))。
图45F、45G、45H和45I示出了另外的主处理器100可以写入以控制外围接口总线104的定时和其它参数的寄存器。这些寄存器允许主处理器100为特定类型的外围器件配置总线104,所有都是在在游戏程序108内的软件的控制下进行的。在本例中,外围接口44支持图45F-45I所示的两组寄存器1436、1438、1440和1442,允许把不同的外围总线104规约用于同时连接到总线上的不同的外围器件,而不需要主处理器100每次请求访问不同的器件时重写配置寄存器。在本例中,每当外围接口206访问16位外围地址空间内的“区域1”地址空间时,一组配置寄存器1436、1438、1440和1442用于配置总线104规约,每当外围接口访问外围总线地址范围内的“区域2”地址空间时,使用另一组寄存器参数(参见图5D的存储器映像)。主处理器100写到适当的区域可简单地请求由这两组寄存器规定的配置。
在本例中,图45A-45I所示的各种控制寄存器可以位于图44的控制/寄存器块1402内。存储在寄存器1436、1438、1442中的配置值在本例中可用于控制控制/寄存器块1402在总线控制线1404C上产生的存取控制信号的定时。锁存器1434用于把地址暂时锁存在协处理器地址总线214c上,以加到控制/寄存器块1402上(例如,在各种寄存器之间选择)。在本例中,控制/寄存器块1402包括适当的计数器等以自动地增加DMA地址。
虽然已结合目前认为是最实用的和较佳的实施例描述了本发明,但应当理解,本发明并不限于该描述的实施例,相反,它要覆盖包括在所附权利要求书的精神和范围内的各种变化和等效的安排。附录A:显示处理器500图形显示命令例示格式和该例相关的功能
                RDP  命令系统
E
Edge Coefficients 12
F
fill Rcctangle 20
L
Load Block 7
Load Tile 6
Load Thll 10
N
No Op 44
S
Set Blend Color 31
Set Color Image 1
Set Combine Mode 24
Set Conven 36
Set Env Color 29
Set Fill Color 33
Set Fog Color 32
Set Key GB 39
set Key R 38
Set Other Modes 26
Set Prim Color 30
Set Prim Depth 34
Set Scissor 35
Set Texture Image 2
Set Tile 4
Set Tile Size 9
Set Z Image 3
Shade Coelficlents 15
Sync Full 40
Sync Load 41
Sync Pipe 42
Sync Tile 43
T
Texture Cocfficicnts 17
Texture Reclangle 21
Texture Rcclangle Flip 23
Z
ZBuffer Cocfficicnts 19
                                                                                                                                                                                                                                                                                             Pape 45 of 45                                                                                                                                                                                               Last Modincd 1/7/95TabIe 1:Set_Color_ImageCommand Format
Figure A9612175701412
Table 2:Legat Color Image Types/SizesSet_Color_Image Usage Notse:Remd/Modify/write of 32b color image with depth buffec must be done in two cycle cyclc mode.
Figure A9612175701414
Figure A9612175701421
Table 3:Set_Texture_Image Commoud Formnttable 4:Legnl Texture Image Types/Sizes
                                                                                                                                                                                                                                                                                              Page 2 of 45                                                                                                                                                                                               Last Modincd 1/7/95
Figure A9612175701422
Figure A9612175701423
Figure A9612175701431
Table 5:Set_Mask_Image Command Formnt
Figure A9612175701433
Figure A9612175701441
Table 6:Set_Tile Command Format
Figure A9612175701442
Figure A9612175701443
Set_Tile Usage Notes:For YUV textmes,Tile Line(number of Tmem words Per line)is Line= (Wkhh+7)>>3(8b texels)bccause although the image texels are 16 bit,the Tmem Y texels are 8 bit and the Tmem UV texels are 16 bit at 1/2 thewidth in S.YUV mask and mask/mirror are undefinedNo mirroriog for 32b RGBA images.Wrap on all but YUV images.YUV texture images are stored ns inedenved 8 bit YUYV as 16 bits per texet.Software most speeily texture coordinates and tile coordinntes and sizes which are even numbers in S (isb==0),so that a pair UV vnines are nvalable.Software must speeify a Tile Base address in the low half of Tmem,and load a lile whieh lits in the low half(where 2048<Base+W*ID in 8b Y′s. Software can′t have CTTLUT′s and YUV texlures coexisting inTmem.32b RGBA.YUV Set_Tile type should indicate 16b texels.Mask==I means pass bit 0 so minimum mask width is 2 texels
                                                                                                                                                                                                                                                                                                                                             Pape 5 of 45                                                                                                                                               Last Modified 1/7/95
Figure A9612175701461
Table 8:Load_Block
    Field     Word     Bits     Description
command 0 61-56 Command identifier Load Block loads a Tmemfile wilh a single memory"span"from SL.,TL.to SII TL During thefile load,the T coordinate is incremented by DxT every X Tmem bytes,in order to perform odd-line swapping and linestrides.
SL 0 55-44 Low S coordinate of tile in image
TL 0 43-32 Low T coordinate of tile in image.the two MSlls of this number should be zero the..a 10bit number)
Tile 0 26-24 file descriptor index
Sll 0 23-12 High S coordinate of tile in image
DxT 0 11-0 ansigned Tincrement value
Load_Block Usage Notes:Aeeiling function must be performed on the l.ll DxT field of Load_Block.That is,if any number has non-zero bits to the right of the 11-bil fraelion then a eeiling operation should be perfornned on the the number.For exam-ple.a 12 texet(lGh/texet) wide texture would have a DxT of 1/3.The 11b taction would be 1/3′20-l8 or 682 2/3.The ceiting is 683.The texture image width must be muhiples of 8 byles.For cxample.a 4 bit texel texture must have an image width of a 16Ench Lond_Block command should be followed hy Set_Tile_Sz command to set the nelual the Sll.Tll values.4b textures should be loaded as bytes flhey must be byle aligneel asing the Set _Image_Texture type field when loading more than 4k texcls.This means the Load_mock paramelels will have 8b texe units.The Set_Tile typetield can be used to set the proper 4b type after the Load-Block.The Set_Tile_Size can be used to set the proper SL.Sll.TL.Tll values after the Load_Block.In generat,rextures can be loaded as one type and used as amuhertype by ptoter maoipudation of the Set_Texlote and Set_Tile size fields Nommally.duing a lond.the tile tesel size and inage plxel size should match.YUV. texluse images are stored as imedenved X hit YUYV as 16 bils per texel.Software must specify lcxlure coordinales and tile cordinates and sizes which are even numbers in S clsb==(1),so that a pair UV valoes are ava.iable.Software must speeity a Tile lsase address in the low half of Tmem.nnd load n tile which lits in the low half (where 20.1X1<Dase +W 10 in 8b Y′s,Soflware can‘t have Cl Tl. UT′s and YUV lextures coexisting in
                                                                                                                                                                                                                                                                                               Page 7 of 45                                                                                                                                                                                              Last Modincd 8/7/95    Tmem.
In Load-block.the Tile line is the number of words to skip for each T.That is,zero for a conliguous tile.
Whem Load-block is used to load molliple liles of differenl widlhs(such as a mipmap pyrnnld).the lmnge data in memory must be ordered for Tmem imedeaved access.This means that tor odd lines (l&l).the two longs
(32b)in each dorble (6lb) must be swapped Since Load _block lines must comsist of am integral number of double words,this is mot effeclcd by winth Note that Load_Tile pcrforms this imerleave duting load.and Load-Block
can perform this interleave by Computing aT coordinate from DxT in the command.For memory image diua which is imlerleaved,DxT should be zero.
                                                                                                                                                                                                                                                                           page 8 of 45                                                                                                                                                                                                                  Last Modincd 8/7/95
Figure A9612175701491
Tnble 9:Set_Tile_Size
Field Word Bits Description
command 0 61-56 Command identifier
SL 0 55-44 Low S coordinate of tile in image
TL 0 43-32 Low T Coordinate of tile in image
Tile 0 26-24 Tile deseriptor index
SH 0 23-12 lligh S coordinate of tile in image
TH 0 11-0 lligh T coordinate of tile in image
Set_Tile_Size Usage Notes:For YUV lextures Sl.must be even aml slt must be odd(this means the wldlh is an even number of texels) Hardware will clamp to  Sll-l.that is.the last even texel.in order to have a valid UV at the last texel. If linear Inler.polation is perforned.the max S texture coordinate must be odd.and Sll is the max S+2(an odd sII)in order to srpply a valid UV at the max S+l.
                                                                                                                                                                                                                                                                                       Page 9 of 45                                                                                                                                                                                                      Last Modincd 8/7/95
Figure A9612175701501
Tnble 10:Lond_Tlut
    field   Word     Bits                                                      Descriplion
command 0 61-56 Command idemilier,this command is used to initiale a load from  DRAM of a Indexed Texture Lookop Table(TLUT).This table dereferences color imdexed texels beforeir lexlure lihering.
SL 0 55-44 low index into table(0-255),fmetional hils should be zero
TL 0 43-32 normally zero
Tile 0 26-24 Tile deseriptor index
slt 0 23-12 high index into table (0-255).fracional bits should be zero
Tll 0 11-0 nonnally zero
Load_TrIlIl Usage Notes:Use the set_image-lexture to defroe the dranl address,with a l6b type.Use seI-lite to define the Tmem address.Referenee that 1ile in load-IlIlI.TheTextnre Coordinale unit should get a DxS of 4 due to quadricalion of tablewhen loading.Tmem  Address must be high half(msb==l)of Tmem,Tmem nddress in 64bb words.
                                                                                                                                                                                                                                                                                                                   Page 10 of 45                                                                                                                                                                         Last Modincd 1/7/95Triangle commands of various types are formed by concmonating groups of coenienls as shown in the table below. The order for concatouation is from left right to the table.The formats for ench group of coefficients are
                                                                              Table ll:Trlnngle Commands
Figure A9612175701511
                                                                                        shown on the following pages. Table 12:Edge Cneffielents
Figure A9612175701522
Figure A9612175701523
Table 12:Edge Coeffielents
Figure A9612175701532
Figure A9612175701541
Shade CoefficientsTable 13:Shadc Coefficients Table 13:Shade Cocffielents Texture CocffieientsTable 14:Textare Cocffieients
Figure A9612175701571
Table 14:Texture Cocffieients
Figure A9612175701591
Table 15:ZBnffer Cocffieients
Figure A9612175701593
Table 16:FiH_Rectangle
Figure A9612175701602
Figure A9612175701611
Table 17:Texture_Reetangte
    Field     Word    Bits Deseriplion
command 0 61-56 Conmand idenlilier
Xll 0 55-44 X coordinale of top left corner of rectangle
Yll 0 43-32 Y coordinate of top left corner of reetangle
tile 0 26-24 Tile descriptor index
XL 0 23-12 X coordinate of bollom right corner of reclanglc
YL 0 11-0 Y coordinate  of bollom right corner of reclangle
S 1 63-48 S texlure coordinate at lop left corner of reclangle
T 1 47-32 r texlure coordinate at top left corner of reclangle
DsDx 1 34-16 Change in S per change in X coordinate
DtDy 1 15-0 Change in T per change in Y coordinate
Textore_Reclangle Usage Notes:To copy an image,set cycle.set cycle_type to“copy”in Set_Other_Modes.nnd set the condlination of Set_Tile’shin S”nnd DxDx to step tly 4 lexcls.No lextore liltcring,color colnbining. or blcnding oprations are arailable for cop-jcd texcls.Write enables mity be generated using threshohl connpares of the alpha cnannel of each copied texel.Texture Rextaage and Copy mode:No Z-buffer or anti-aliasing in copy mode.
                                                                                                                                                                                                                                                                                 Page 21 of 45                                                                                                                                                                                                          Last Modified 1/7/954b.YUV.and 32b RGBA textufes  Cannol be direclly Copied4b images are expanded to Rb images before copying4b and 8b Images can be copied to nn 8b color image only.16b image can be copied to 10 16b color image only.Nole that 4b.YUV.nnd 32b RGBA images can be copied by asing 8b 01 16b co1or images mnl concclly scaling image coordinates and width.Page 22 of 45                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Last Modified 1/7/95
Figure A9612175701631
Table 18:Texture_Reclangle FHp
Figure A9612175701633
Figure A9612175701641
Table 19:Set Comblne ModeSet_Comblne_Mode Usage Notes:The Color Combiner impleems the equation:(A-B)*C+D on ench color.RGB and Alpha channels have separnle mux selccls.In nddilion.there are separate mus seleets for  cyele 0 and cycle l. If the RDP is conhgured for
                                                                                                                                                                                                                                                                                                                             Page 24 of 45                                                                                                                                                              Last Modified 1/7/95one cycle mode.set the cycle 0 and cycle 1 mux sclecls to the same vnlue.Page 25 of 45                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Last Modified 1/7/95Set_Other ModesTable 20:Set Other Modes
Figure A9612175701661
Figure A9612175701663
Table 20:Set_Other Modes
Figure A9612175701671
Figure A9612175701672
Table 20:Set_Other_Modes
            Field       Word     Bits                                   Descriplion
D:dither_alpha_cn 0 1 use random noise in alpha compare.otherwise use blend alpla in pha compate
A:alpha_compare_cn 0 0 conditional color write on alpha compate
Set_Other_Modes Usage Notes:YUV Copy mode is not supponed.Fill mode in”Cycle Type”means replicate the Fill Color(see Set_Fill_Color).Initialize the Z-buffer by setting the color image to point to the Z-buffer(Set_Color_lmage)and nlling with initial depth value.Multi-tile mixed color index thru TLUT and other not supported,because TLUT elkels all modes.
                                                                                                                                                                                                                                                                                    Page 28 of 45                                                                                                                                                                                                 Last Modified  1/7/95
Figure A9612175701691
Table 21:Set Env Color
      Field     Word    Bits             Description
command 0 61-56 Command idemilier
Red 0 31-24 Red Component
Green 0 23-16 Green Component
Blue 0 15-8 Blue Component
Alpha 0 7-0 Alpha Componenl
Page 29 of 45                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Last Modified 1/75/95Table 22:Set Env Color
       Field     Word    Bits                                        Description
command 0 61-56 Command idemilier
prim Min Level 0 44-40 Minimum clamp for 1.OD fraction when in detail or sharpen texture modes.fixed poim 0.5.
Prim Level 1-rac 0 39-32 Level of Dclaif (raclion for primilive, used primarily in moldi-tile operations for rectan,eprimitives,0.8.
Green 0 23-16 Green Component
Blue 0 15-8 Blue Component
Alpha 0 7-0 Alpha Component
Page 30 of 45                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Last Modified1/7/95
Figure A9612175701711
Table 23:Set Blend Color
     Field        Word    Bits          Deseription
command 0 61-56 Command identilier
Red 0 31-24 Red Component
Green 0 23-16 Green Component
Blue 0 15-8 Blue Componend
Alpha 0 7-0 Alpha Component
Page 31 of 45                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Last Modified 1/7/95
Figure A9612175701721
Table 24:Set Fog Color
     Field    Word    Bits          Deseription
command 0 61-56 Command  idenlilicf
Red 0 31-24 Red Component
Green 0 23-16 Green Component
Blue 0 15-8 Blue Component
Alpha 0 7-0 Alpha Component
Page 32 of 45                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Last Modified 1/7/95
Figure A9612175701731
Table 25 :Set Fill Color
Figure A9612175701732
Figure A9612175701733
Figure A9612175701741
Table 26:Set Prim Depth
         Field     Word     Bits         Dewriptim
command 0 61-56 Command identilier
Primitive Z 0 31-16 Primitive Z
Poimilive Deha Z 0 15-0 Primitive Deha Z
Page 34 of 45                                                                                                                                                                                                                                                                                                                                                                                  Last Modified 1/7/95
Figure A9612175701751
Table 27:Set Selssor
       Fied    Word    Bits                                                Deseription
command 0 61-56 Command identilier
XB 0 55-44 X coordinate of top left comer of scelssor box in screen space.
YB 0 43-32 Y coordinate of top left corner of seissor box in sereen spncc.
f 0 25 scissor field,enables scissoring of odd or even lines for interlaced displays
o 0 24 odd line:0=keep even line,1=keep odd line,indientes whether all odd lines or all even lines should be skipped (forinterlaced displays).
XL 0 23-12 X coordinate of bouom right colner of scissor box in screen space.
YL 0 11-0 Y coordinate of bottom right comer of scissor box in screenspace.
Page 35 of 45                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Last Modified 1/7/95
Figure A9612175701761
Table 28:Set Convert
      Field      Word      Bits                                     Description
command 0 61-56 Command idenlifler.this command apdates the coeflicicnts for converting YUV pixels to RGB.Conceptually theequations are:R=C0*(Y-16)+C1*VG=C0*( Y-16)-C2*U-C3*VB=C0*(Y-16)+C4*U
K0 0 45-53 K0 term of YUV-RGB conversion matrix
K1 0 36-44 K1 term of YUV-RGB conversion matrix
K2 0 27-35 K2 term of YUV-RGB conversion matrix
K3 0 18-26 K3 term of YUV-RGB conversion matrix
K4 0 9-17 K4 term of YUV-RGB conversion matrix
K5 0 0-8 K5 term of YUV-RGB conversion matrix
Set_Convert Usage Notes:In the hardware.the color conversion is done in two stages.In the texture liter(TF).the fottowing eqoation is performed:R′=Y+K0*VG′=Y+K1*U+K2*VB′=Y+K3*UIn the Color Combiner.the fottowing equations are performed:R=(R′-K4)*K5+R′Page 36 of 45                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Last Modified 1/7/95    G=(G′-K4)*K5+G′
B=(B′-K4)*K5+B′
Where(CX terms as defined in the table above):
K0=C1/C0
Kl=C2/C0
K2=C3/C0
K1=C4/C0
K4=16+16/(C0-1.0)
K5=C0-1.0
Typical Values for YUV to RGB conversion:
K0=175
K1=-43
K2=-89
K3=222
K4=114
K5=42
                                                                                                                                                                                                                                                                                                         Page 37 of 45                                                                                                                                                                                  Last Modified 1/7/95
Figure A9612175701781
Table 29:Set_Key_R
      Field    Word    Bits                                                                 Descriplion
Command 0 61-56 Command idenciner.This command set the cocfficients used for Red keying.The equalion used for keying is:KeyR=clump(0.0.-abs((R·Center)*Seale)+Width.1.0).The Key alpha is the minimum of the KeyR.KeyG.KeyB.
Width R 0 27-16 (Size of half the key window incklding the soft edge)* scnte.If width〉1.0.then keying is disabled for that chammel.
Cenler R 0 15-8 Defines color or imensity at which key is aclive.0-255
Sende R 0 7-0 (1.0/(size of soft edge).For hard edge keying.set scale to 255.
Page 32 of 45                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Last Modified 1/7/95Table 30:Set_Key_GB
     Field     Word     Bits                                         Deserlpion
command 0 61-56 Command idemiher.This command set the coefhcients used for Green/lltue keying.Conceptually. the cquation usedfor keying is:KeyG/B=clamp(0,0,-nbs((G/B-Center)*Seale)+Width,1.0).The KeyAtpha is theminimum ofthe KeyR,KeyG,KeyB.
Width G 0 55-44 (Size of half the key window inchnding the son edge)*seale.ll width>1.0.thenkeyingis disabled forthat channel.
Width B 0 43-32 (Size of half the key window including the son edge)*seale.Ifwidth>1.0.then keyingisdisabled for that channel.
Center G 0 31-24  Delines color or intensity at which key is active.0-255
Seale G 0 23-16 (1.0/(size of soft edge).For hard edge keuing,set seale to 255.
Center B 0 15-8 Dehnes color or intensity atwhich key is nclive,0-255
Seale B 0 7-0 (1.0/(size of soft edge).For hard edge keying.set scafe to 255.
Set_Key_XX Usage Notes:In the hardware,the keying cquation is pemormed in two stages,In the Color Combiner(CC),the equation peformed is:Key′=(pixel-center)*Scale+0In the Alpha Fixup unit(AF),the equmtion performed is:Key=clamp(0,-abs(Key′)+Width,1.0)KeyAlpha=MIN(KeyR,KeyG,KeyB)In two-cycle mode,the keying operation must be specined in the second cycle (thatis,the keyalpha is not avallable as a combine operand).
                                                                                                                                                                                                                                                                                                Page 39 of 45                                                                                                                                                                                           Last Modlfled 1/7/95
Figure A9612175701801
Table 31:Syne Full
     Field    Word    Bits                                            Deseription
command 0 61-56 Command ideatilier,This command stalls the RDP until the last dram butter is read or wrillen from any preceedingprimitive.It is typically only needed if the memory date is to be reased,like switehing display buffers,or writing acolor_Image to be used as a texlure_image,or for consistemr/waccess to an RDP w/rimage from the cpu.
Page 40 of 45                                                               Last Modified 1/7/95
Figure A9612175701811
Table t:Syne Full
     Field    Word    Bits                                               Deseription
Command 0 61-56 Command identifier,This command stalls the execution of load commands(loadTI.UT.load tile,load black) untilpreceeding primhives has completely linished.Usually preceedallload commands by sync load.
Page 41 of 45                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Last Modified 1/7/95Table 32:Syne Plpe
      Field    Word    Bits                                            Deseription
command 0 61-56 Command idemilier,General attributes(other than prim_color/depth)which are being read by up to two prececdingprimilives should be preceeded by sync_pipe,which stalls unlil the most recent primilive is past the last usage of anyanribyte,Only one syne_pipe is needed before any number of auribute commands.Softwaer can optimizesync_pipeusage if it Knows whill is being read,for exatnple,a set_texture_image can follow tri′s or rects in prepamlion for aload_lile window a syne_pipe,because tris or reels don′t use the texlure_image anrihute.(lin general,the RDP is optimized for a number of primitives rendered with the same allribute setting,If auributes per primilive.perfor-mance will degrade slightly.
Page 42 of 45                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Last Modified 1/7/95Table 33:Syne Tile
Field Word Bits Deseription
command 0 61-56 Command idemilier,Allows synchromnjzlion between commands that write to the same tile descriptor that on immedi-utely previous commang is rending.
Page 43 of 45                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Last Modified 1/7/95
Figure A9612175701841
Table 34:No Op
    Field    Word     Bits                        Descripon
command 0 61-56 Command idemilier This command has no effect on rdp command execution but is useful for padding command buff-ers.
Page 44 of 45                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Last Modified 1/7/95

Claims (23)

1.一种交互式视频游戏系统,其特征在于,包括:
一交互式用户输入装置;
一主处理器,它与输入装置耦连,所述主处理器具有一地址空间,所述主处理器能响应于来自用户输入装置的输入交互地选择视点;
一协处理器,它与主处理器耦连,所述协处理器提供一预定的图形特征集,以便响应已选样的视点,通过把表示三维世界的多边形投影到二维观察平面上,而交互地产生图像数据,所述协处理器包括:
一信号处理器,它至少由图形功能和音频处理功能共享,所述信号处理器包括一标量单元和一向量单元,所述向量单元能并行执行多种计算,所述信号处理器还包括一用于存储微码的微码存储器,所述信号处理器执行微码存储器中的微码,从而实现图形和音频处理功能;
一显示处理器,它包括显示流水线硬件,可替换地提供每循环一个象素模式和每循环两个象素模式,从而使硬件最少,并能提供具有详细程度处理的丰富的特征组,所述显示流水线硬件包括含有第一和第二部分的纹理存储器,所述纹理存储器第一部分能够存储可颜色索引的纹理图和不可颜色索引的纹理图,所述纹理存储器第二部分能够存储纹理图和/或可颜色索引纹理图的颜色查找表,
一视频接口,
一音频接口,
一串行接口,
一并行外围接口,
其中,信号处理器、显示处理器、视频接口、音频接口、串行接口和并行外围接口都包括访问主存储器用的电路;
主处理器,它通过一9位宽的总线与所述协处理器耦连,所述主存储器为所述协处理器和所述主处理器提供一公用的地址空间,所述主存储器至少存储以下数据结构;
    由所述主处理器执行的指令;
    一彩色帧缓冲器;
    一深度缓冲器;
    图形微码;
    音频处理微码;
    至少一个显示表;
    至少一个纹理图;以及
    至少一个音频输出缓冲器;
    一视频信号发生电路,它与所述协处理器的视频接口耦连,所述视频信
号发生电路产生视频信号,可显示在彩色电视机上;
可卸存储装置,它包括一外壳、一安全芯片、一只读存储器和至少另一个存储器件,所述协处理器包括一个能将所述只读存储器和所述另一个存储器件映射到主存储器地址空间中的装置,所述只读存储器初始存储图形和音频处理微码;
一连接器,它连接所述处理器和所述可拆卸存储装置;以及
一串行外围接口电路,它与所述协处理器的串行接口耦连,所述串行外围接口电路包括一可实现串行接口功能和安全功能的处理器,还包括一能为主处理器提供初始程序装入指令的引导ROM,所述串行接口电路的处理器通过所述连接器与所述可拆卸存储装置的安全芯片耦连。
2.一种交互式实时图形显示系统,其特征在于,包括:
至少一个用户输入装置;
一主随机存取存储器,它提供一公用的地址空间;
一主处理器,它被耦连用来对所述主存储器寻址,并且还与所述用户输入装置耦连,所述主处理器实时响应从所述用户输入装置接收到的输入,将指令存入所述主存储器中并执行来自主存储器的指令,所述主处理器至少将显示表图形命令和播放表音频命令存储到所述主存储器中;
一信号处理器,它被耦连用来对所述主存储器寻址,所述信号处理器取得并执行存储在所述主存储器中的微码,所述信号处理器从所述主存储器中读取显示表图形命令和播放表音频命令,所述信号处理器响应于播放表音频命令产生音频抽样数据,并响应于显示表产生图形显示命令,所述信号处理器将抽样数据存储在被分配于所述主存储器中的一个音频输出缓冲器中;
一显示处理器,它被耦连用来对所述主存储器寻址,所述显示处理器至少部分根据至少一个纹理图和其他存储在所述主存储器中的图形数据产生图像数据,所述显示处理器响应于所述图形显示命令产生图像数据,所述显示处理器将所述图像数据存储在所述主存储器内的一个彩色图像帧缓冲器中;
一视频接口,它被耦连用来对所述主存储器寻址,所述视频接口与显示光栅扫描同步,对所述彩色图像帧缓冲器进行读操作;以及
一音频接口,它被耦连用来对所述主存储器寻址,所述音频接口与实时发声同步,对所述音频输出缓冲器进行读操作。
3.一种用于操作一图形显示系统的方法,所述图形显示系统包括一主处理器;一协处理器,它与所述主处理器耦连;一主随机存取存储器,它与所述协处理器耦连并且所述主处理器和所述协处理器都可对它寻址;以及一视频信号发生装置,它可产生一显示用的视频信号,其特征在于,所述方法包括以下步骤:
(a)将主处理器的代码存储到所述主存储器中;
(b)用所述主处理器执行由存储步骤存储的所述主处理器代码,所述执行步骤包括将协处理器代码、一任务表、至少一个纹理图和一个颜色查找表存储到所述主存储器中;
(c)从主存储器中获取所述任务表;
(d)至少部分根据步骤(b)所存储的所述协处理器代码,用所述协处理器处理所述任务表,所述处理步骤包括进行以下步骤:
    (1)将来自所述主存储器的所述纹理图和所述颜色查找表装入一片内
纹理存储器;
    (2)用一标量单元和一向量单元对一组顶点至少进行一次三维几何变
换,包括用所述向量单元并行进行多种计算;
    (3)根据所述三维几何变换产生一个三角形命令;
    (4)响应于所述三角形命令产生一个象素值;
    (5)对所述纹理存储器存取两次,从而根据所述三角形命令提供可颜色
索引的纹理单元;
    (6)将所述纹理单元与所述已产生的象素值组合,从而产生一组合的象
素值;
    (7)对存储在所述主存储器中的一个帧缓冲器中象素值进行访问;
    (8)将所述组合的象素值与存储在所述帧缓冲器中的至少一个象素值
混合;
    (9)根据比较,用存储在所述主存储器中的一个深度缓冲器有条件地将
所述经组合的象素值写入所述帧缓冲器中;
    (10)用所述标量和向量单元产生输出音频抽样,包括用向量单元并行
执行多种计算;以及
    (11)将所述输出音频抽样存储到所述主存储器中;
(e)与彩色电视机行扫描实时同步地对所述帧缓冲器进行读操作,并将所述帧缓冲器的内容转换成一合成视频信号;并且
(f)实时地读取被存储的输出音频抽样,并将所述被存储的音频抽样转换成立体声。
4.一种用于至少解释一个设置模式命令的三维图形系统,所述设置模式命令具有包括101111六位二进制数值的一命令标识符字段,其特征在于,所述系统包括:
第一解码器,它解释包括101111六位二进制数值的命令标识符字段,
(k)用于解释原子基元模式字段的电路,该字段规定了是否在读取下一基元之前把一基元强制写入一帧缓冲器中,
(i)用于解释循环类型模式字段的电路,该字段选择显示流水线循环控制模式,
(h)用于解释透视纹理允许模式字段的电路,该字段有选择地允许透视纹理校正,
(g)用于解释纹理细节模式字段的电路,该字段有选择地允许纹理细节处理,
(f)用于解释纹理突出允许模式字段的电路,该字段有选择地允许纹理突出,
(e)用于解释纹理细节允许模式字段的电路,该字段有选择地允许纹理详细程度处理,
(d)用于解释允许查找表模式字段的电路,该字段有选择地允许从颜色查找表中查找纹理值,
(c)用于解释纹理查找表类型模式字段的电路,该字段规定了颜色查找表中纹理单元的类型,
(b)用于解释抽样类型模式字段的电路,该字段规定了应如何对纹理单元抽样,
(a)用于解释中间纹理单元模式字段的电路,该字段规定了是否应当用2×2半纹理单元内插对纹理单元筛选,
(Z)用于解释第一双线性内插模式字段的电路,该字段规定了纹理筛选器是否应当把纹理单元双线性内插到流水线循环0中,
(Y)用于解释第二双线性内插模式字段的电路,该字段规定了纹理筛选器是否应当把纹理单元双线性内插到流水线循环1中,
(X)用于解释纹理单元转换模式字段的电路,该字段规定了是否应当对流水线循环0期间纹理筛选器输出的纹理单元进行颜色转换,
(W)用于解释色度键允许模式字段的电路,该字段有选择地允许色度键起作用,
(V2)用于解释红绿蓝抖动选择模式字段的电路,该字段选择红绿蓝抖动的类型,
(V1)用于解释α抖动选择模式字段的电路,该字段选择α抖动的类型,
(V)用于解释多个混合模式字的电路,这些模式字规定了混合器参数,
(M)用于解释强制混合允许模式字段的电路,该字段规定了是否应当强制允许混合器,
(L)用于解释α覆盖选择模式字段的电路,该字段规定了是否应当用覆盖来确定象素α,
(K)用于解释覆盖乘α选择模式字段的电路,该字段规定了是否应当用α乘以覆盖来确定象素α和覆盖,
(J)用于解释z模式选择模式字段的电路,该字段规定了z缓冲模式,
(I)用于解释覆盖目标模式字段的电路,该字段规定了覆盖目标,
(H)用于解释覆盖颜色模式字段的电路,该字段规定了是否只应在覆盖溢出时更新颜色,
(G)用于解释图像读取允许模式字段的电路,该字段有选择地允许对颜色和/或覆盖读/改/写帧缓冲存储器进行存取,
(F)用于解释z更新允许模式字段的电路,该字段根据是否允许颜色写,来有选择地允许对z缓冲器进行写操作,
(E)用于解释z比较允许模式字段的电路,该字段规定了在深度比较基础上允许有条件的颜色写,
(D)用于解释去混叠允许模式字段的电路,该字段允许用覆盖来混合,
(C)用于解释z源选择模式字段的电路,该字段在基元深度和象素深度之间进行选择,
(B)用于解释抖动α允许模式字段的电路,该字段规定了是否应当在α比较中使用随机噪声,
(A)用于解释α比较允许模式字段的电路,该字段在α比较的基础上允许有条件的颜色写。
(c)与所述电路(a)-(k),(A)-(M),(V1),(V2)和(W)-(Z)耦连的电路,用于产生图像。
5.一种与三维图形系统一同使用的存储媒体,其特征在于,所述存储媒体至少存储了一个三维显示模式控制命令,命令包括:
一命令标识符字段,它包括一个101111的六位二进制数值,和
以下模式控制字段中的至少一个:
(k)原子基元模式字段,它规定了是否在读取下一个基元之前强制将一基元写入帧缓冲器中,
(i)循环类型模式字段,它选择显示流水线循环控制模式,
(h)透视纹理允许模式字段,它有选择地允许透视纹理校正,
(g)纹理细节模式字段,它有选择地允许纹理细节处理,
(f)纹理突出允许模式字段,它有选择地允许突出纹理,
(e)纹理细节允许模式字段,它有选择地允许纹理详细程度处理,
(d)允许查找表模式字段,它有选择地允许从颜色查找表中查找纹理值,
(c)纹理查找表类型模式字段,它规定了颜色查找表中纹理单元的类型,
(b)抽样类型模式字段,它规定了如何对纹理单元抽样,
(a)中间纹理单元模式字段,它规定了是否应当用2×2半纹理单元内插对纹理单元筛选,
(Z)第一双线性内插模式字段,它规定了纹理筛选器是否应当把纹理单元双线性内插到流水线循环0中,
(Y)第二双线性内插模式字段,它规定了纹理筛选器是否应当把纹理单元双线性内插到流水线循环1中,
(X)纹理单元转换模式字段,它规定了是否应当对流水线循环0期间纹理筛选器输出的纹理单元进行颜色转换,
(W)色度键允许模式字段,它有选择地允许色度键起作用,
(V2)红绿蓝抖动选择模式字段,它选择红绿蓝抖动的类型,
(V1)α抖动选择模式字段,它选择α抖动的类型,
(V)多个混合模式字,它们规定了混合器的参数,
(M)强制混合允许模式字段,它规定了是否应当强制允许混合器,
(L)α覆盖选择模式字段,它规定了是否应当用覆盖来确定象素α,
(K)覆盖乘α选择模式字段,它规定了是否应当用α乘以覆盖来确定象素α和覆盖,
(J)z模式选择模式字段,它规定了z缓冲模式,
(I)覆盖目标模式字段,它规定了覆盖目标,
(H)覆盖颜色模式字段,它规定了是否只应在覆盖溢出时更新颜色,
(G)图像读取允许模式字段,它有选择地允许对颜色和/或覆盖读/改/写帧缓冲存储器进行存取,
(F)z更新允许模式字段,它根据是否允许颜色写,来有选择地允许对z缓冲器进行写操作,
(E)z比较允许模式字段的电路,它规定了在深度比较基础上允许有条件的颜色写,
(D)去混叠允许模式字段,它允许用覆盖来混合,
(C)z源选择模式字段,它在基元深度和象素深度之间进行选择,
(B)抖动α允许模式字段,它规定了是否应当在α比较中使用随机噪声,
(A)α比较允许模式字段,它在α比较的基础上允许有条件的颜色写。
6.一种用于至少解释一个包括111100六位二进制数值的设置模式命令的三维图形系统,其特征在于,所述系统包括:
(a)用于解释包括111100六位二进制数值的命令标识符字段的装置,
(b)用于根据以下附加字段中的至少一个至少产生一个控制信号的装置:
    至少一个组合器减法模式控制字段,它规定从一颜色组合器中至少减
去一个颜色空间值,
    至少一个组合器乘法模式控制字段,它规定至少用一个颜色空间值乘
以颜色组合器的输入,以及
    至少一个组合器加法控制字段,它规定了颜色组合器加法器的输入,
以及
(c)用于至少部分根据控制信号产生一图像的装置。
7.一种与三维图形系统一同使用的存储媒体,其特征在于,所述存储媒体至少存储了一个三维显示模式控制命令,命令包括:
一命令标识符字段,它包括111100六位二进制数值,和
以下附加字段中的至少一个:
至少一个组合器减法模式控制字段,它规定从一颜色组合器中至少减去一个颜色空间值,
至少一个组合器乘法模式控制字段,它规定至少用一个颜色空间值乘以颜色组合器的输入,以及
至少一个组合器加法控制字段,它规定了颜色组合器加法器的输入。
8.一种用于至少执行一个具有命令标识符字段的彩色图像模式命令的三维图形系统,对应于彩色图像模式,所述命令标识符字段包括111111和111101组中的一个六位二进制数值,其特征在于,所述系统包括:
一命令标识符解码器,它用于解释命令标识符字段,对应于彩色图像模式,所述命令标识符字段包括111111和111101组中的一个六位二进制数值;
一命令参数解码器,它用于至少解释以下一个参数:
    图像数据格式参数;
    颜色元素大小参数;
    图像宽度参数;和
    基本地址参数;以及
一显示电路,它至少部分根据诸参数产生彩色图像显示。
9.一种与三维图形系统一同使用的存储媒体,其特征在于,所述存储媒体至少存储了一个彩色图像模式命令,命令包括:
一命令标识符字段,它包括111111和111101组中的一个六位二进制数值;
图像数据格式参数;
颜色元素大小参数;
图像宽度参数;和
基本地址参数。
10.一种用于至少执行一个显示命令的三维图形系统,所述显示命令包括在001000至001111范围内的一个六位二进制数值,并至少后接x和y位置值,其特征在于,所述系统包括:
一解码器,它至少解释一个具有命令标识符字段的三角形描绘命令,所述命令标识符字段包括在001000至001111范围内的一个六位二进制数值,并至少后接x和y位置值,和
一显示处理器,它在相应于x和y位置值的x和y位置处至少描绘一个基元。
11.一种与三维图形系统一同使用的存储媒体,其特征在于,所述存储媒体至少存储了一个具有命令标识符字段的显示命令,所述命令标识符字段包括在001000至00111 1范围内的一个六位二进制数值,并至少后接x和y位置值,三角形描绘命令格式在相应于x和y位置值的x和y位置处至少规定了一个三角形。
12.一种用于至少执行一个具有命令标识符字段的带纹理的矩形描绘命令的三维图形系统,所述每标识符字段具有100100和100101范围内的一个六位二进制数值,其特征在于,所述系统包括:
一解码器,它解释一个命令标识符字段,所述命令标识符字段具有100100和100101范围内的一个六位二进制数值,和
一处理器,它至少解释两个x坐标值和两个y坐标值,
一纹理坐标单元,它解释一组纹理系数和一个砖描述符索引值,和
一显示处理器,它根据x和y坐标值至少描绘一个矩形,并至少部分根据纹理系数组和砖描述符索引值将纹理填入矩形。
13.一种与三维图形系统一同使用的存储媒体,其特征在于,所述存储媒体至少存储了一个带纹理的矩形描绘命令,所述带纹理的矩形描绘命令包括:
一命令标识符字段,它具有100100和100101范围内的一个六位二进制数值,
至少两个x坐标值,
至少两个y坐标值,
一组纹理系数,和
一个砖描述符索引值,带纹理的矩形描绘命令格式规定根据x和y坐标值至少描绘一个矩形,并至少部分根据纹理系数组和砖描述符索引值将纹理填入矩形。
14.一种用于至少处理一个具有命令标识符字段的纹理确定命令的三维图形设备,所述命令标识符字段具有一个110101六位二进制数值,其特征在于,所述设备包括:
用于解释具有110101六位二进制值的命令标识符字段的装置,
一电路,它解释图像数据格式参数、颜色元素大小参数、砖线大小参数、起始纹理存储器地址、砖描述符索引、调色板号码、至少一个纹理坐标夹紧允许参数、至少一个纹理坐标镜反射允许参数、至少一个纹理坐标包裹/镜反射屏蔽,和至少一个纹理坐标详细程度位移参数,以及
一显示处理器,它至少部分根据上述结构至少产生一个图像。
15.一种与三维图形系统一同使用的存储媒体,其特征在于,所述存储媒体至少存储一个纹理确定命令,所述纹理确定命令包括:
一命令标识符字段,它具有一个110101六位二进制数值,
一图像数据格式参数,
一颜色元素大小参数,
一砖线大小参数,
一起始纹理存储器地址,
一砖描述符索引,
一调色板号码,
至少一个纹理坐标夹紧允许参数,
至少一个纹理坐标镜反射允许参数,
至少一个纹理坐标包裹/镜反射屏蔽,和
至少一个纹理坐标详细程度位移参数。
16.一种用于至少执行一个具有命令标识符字段的纹理存储器块装入命令的三维图形系统,所述命令标识符字段具有一个110011六位二进制数值,其特征在于,所述系统包括:
用于解释具有110011六位二进制值的命令标识符字段的装置;
用于解释高和低的砖S坐标参数的装置;
用于解释低的砖T坐标参数的装置;
用于解释T增量值的装置;
用于解释砖描述符索引的装置;以及
一显示电路,用于至少部分根据S和T坐标参数、T增量值和砖描述符索引,至少显示一个带纹理的基元。
17.一种与三维图形系统一同使用的存储媒体,其特征在于,所述存储媒体至少存储一个纹理存储器块装入命令,所述纹理存储器块装入命令包括:
一命令标识符字段,它具有一个110011六位二进制数值;
高和低的砖S坐标参数;
一低的砖T坐标参数;
一T增量值;和
一砖描述符索引。
18.一种用于至少执行一个具有命令标识符字段的装入纹理查找表命令的三维图形系统,所述命令标识符字段具有一个110000六位二进制数值,其特征在于,所述系统包括:
一纹理存储装置,用于解释具有110000六位二进制值的命令标识符字段;
用于解释表中高和低的索引的装置;
用于解释砖描述符索引的装置;
用于至少部分根据命令标识符字段和索引将纹理查找表装入纹理存储器中的装置。
19.一种与三维图形系统一同使用的存储媒体,其特征在于,所述存储媒体至少存储一个装入纹理查找表命令,所述装入纹理查找表命令包括:
一命令标识符字段,它具有一个110000六位二进制数值;
表中的高和低的索引;和
一砖描述符索引。
20.一种用于至少执行一个具有命令标识符字段的纹理砖命令的三维图形系统,所述命令标识符字段具有110100和110010组内的一个六位二进制数值,其特征在于,所述系统包括:
一解码器,它解释具有110100和110010组内一个六位二进制数值的命令标识符字段;
一纹理单元,它解释高和低的砖S坐标、高和低的砖T坐标和一砖描述符索引;以及
一显示处理器电路,它至少部分根据坐标标识符和命令标识符产生一显示。
21.一种与三维图形系统一同使用的存储媒体,其特征在于,所述存储媒体至少存储一个纹理砖命令,所述纹理砖命令包括:
一命令标识符字段,它具有110100和110010组内的一个六位二进制数值;
高和低的砖S坐标;
高和低的砖T坐标;和
一砖描述符索引。
22.一种用于至少解释一个具有命令标识符字段的设置颜色命令的三维图形系统,所述命令标识符字段具有在110111至111011范围内的一个六位二进制数值,其特征在于,所述系统包括:
用于解释具有在110111至111011范围内一个六位二进制数值的命令标识符字段的装置;
用于解释红色分量参数的装置;
用于解释绿色分量参数的装置;
用于解释蓝色分量参数的装置;
用于解释α分量参数的装置;以及
一显示电路,用于至少部分根据所述参数,产生一图像。
23.一种与三维图形系统一同使用的存储媒体,其特征在于,所述存储媒体至少存储一个设置颜色命令,所述设置颜色命令包括:
一命令标识符字段,它具有在110111至111011范围内的一个六位二进制数值;
红色分量参数;
绿色分量参数;
蓝色分量参数;和
α分量参数。
CN96121757A 1995-11-22 1996-11-22 带三维图形和数字音频信号处理协处理器的视频游戏系统 Pending CN1170171A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/561,718 US6331856B1 (en) 1995-11-22 1995-11-22 Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
US08/561,718 1995-11-22

Publications (1)

Publication Number Publication Date
CN1170171A true CN1170171A (zh) 1998-01-14

Family

ID=24243137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN96121757A Pending CN1170171A (zh) 1995-11-22 1996-11-22 带三维图形和数字音频信号处理协处理器的视频游戏系统

Country Status (6)

Country Link
US (6) US6331856B1 (zh)
EP (1) EP0778536B1 (zh)
JP (1) JPH09325759A (zh)
CN (1) CN1170171A (zh)
DE (1) DE69628266T2 (zh)
TW (1) TW337570B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100356406C (zh) * 2004-06-17 2007-12-19 奥林巴斯株式会社 图像处理方法和图像处理装置
CN100456328C (zh) * 2003-12-19 2009-01-28 Td视觉有限公司 三维视频游戏系统
CN102047241A (zh) * 2008-05-30 2011-05-04 先进微装置公司 本地与全局数据共享
CN101681526B (zh) * 2007-01-24 2013-03-27 英特尔公司 通过使用可置换的剔除程序提高图形性能的方法和装置
CN103871352A (zh) * 2012-12-11 2014-06-18 华东师范大学 一种三维显示控制装置
CN101547231B (zh) * 2008-03-27 2014-11-05 Tcl集团股份有限公司 一种信息共享系统
CN107408373A (zh) * 2015-02-24 2017-11-28 巴科股份有限公司 稳定的色彩渲染管理器
CN109166538A (zh) * 2018-11-22 2019-01-08 合肥惠科金扬科技有限公司 显示面板的控制电路及显示装置
CN110114803A (zh) * 2016-12-28 2019-08-09 松下电器(美国)知识产权公司 三维模型分发方法、三维模型接收方法、三维模型分发装置以及三维模型接收装置
CN111111154A (zh) * 2019-12-04 2020-05-08 北京代码乾坤科技有限公司 虚拟游戏对象的建模方法、装置、处理器及电子装置
CN111669603A (zh) * 2019-03-07 2020-09-15 阿里巴巴集团控股有限公司 多角度自由视角数据处理方法及装置、介质、终端、设备
CN112231020A (zh) * 2020-12-16 2021-01-15 成都完美时空网络技术有限公司 模型切换方法和装置、电子设备和存储介质
CN113709006A (zh) * 2021-10-29 2021-11-26 上海闪马智能科技有限公司 一种流量确定方法、装置、存储介质及电子装置
US11521347B2 (en) 2019-03-07 2022-12-06 Alibaba Group Holding Limited Method, apparatus, medium, and device for generating multi-angle free-respective image data

Families Citing this family (410)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8821276B2 (en) 1992-05-22 2014-09-02 Bassilic Technologies Llc Image integration, mapping and linking system and methodology
US5553864A (en) * 1992-05-22 1996-09-10 Sitrick; David H. User image integration into audiovisual presentation system and methodology
US6762733B2 (en) * 1993-06-24 2004-07-13 Nintendo Co. Ltd. Electronic entertainment and communication system
US6654014B2 (en) * 1995-04-20 2003-11-25 Yoshinori Endo Bird's-eye view forming method, map display apparatus and navigation system
US7542035B2 (en) 1995-11-15 2009-06-02 Ford Oxaal Method for interactively viewing full-surround image data and apparatus therefor
US6331856B1 (en) * 1995-11-22 2001-12-18 Nintendo Co., Ltd. Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
US6767286B1 (en) * 1996-11-22 2004-07-27 Kabushiki Kaisha Sega Enterprises Game device, picture data forming method and medium
JP3104643B2 (ja) * 1997-05-07 2000-10-30 株式会社セガ・エンタープライゼス 画像処理装置及び画像処理方法
US9098297B2 (en) * 1997-05-08 2015-08-04 Nvidia Corporation Hardware accelerator for an object-oriented programming language
US6054993A (en) * 1997-09-17 2000-04-25 Cirrus Logic, Inc. Chroma-keyed specular texture mapping in a graphics processor
US7554510B1 (en) 1998-03-02 2009-06-30 Ati Technologies Ulc Method and apparatus for configuring multiple displays associated with a computing system
US6448965B1 (en) * 1998-06-19 2002-09-10 George Mason University Voice-controlled immersive virtual reality system
US6480205B1 (en) 1998-07-22 2002-11-12 Nvidia Corporation Method and apparatus for occlusion culling in graphics systems
US6552723B1 (en) 1998-08-20 2003-04-22 Apple Computer, Inc. System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline
JP3566889B2 (ja) * 1998-10-08 2004-09-15 株式会社ソニー・コンピュータエンタテインメント 情報追加方法、ビデオゲーム機及び記録媒体
EP1125235B1 (en) * 1998-10-26 2003-04-23 STMicroelectronics Asia Pacific Pte Ltd. Multi-precision technique for digital audio encoder
US6573905B1 (en) 1999-11-09 2003-06-03 Broadcom Corporation Video and graphics system with parallel processing of graphics windows
US6661422B1 (en) 1998-11-09 2003-12-09 Broadcom Corporation Video and graphics system with MPEG specific data transfer commands
US6768774B1 (en) * 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US6853385B1 (en) * 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
US6636222B1 (en) 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
US7982740B2 (en) 1998-11-09 2011-07-19 Broadcom Corporation Low resolution graphics mode support using window descriptors
US6927783B1 (en) 1998-11-09 2005-08-09 Broadcom Corporation Graphics display system with anti-aliased text and graphics feature
US7446774B1 (en) * 1998-11-09 2008-11-04 Broadcom Corporation Video and graphics system with an integrated system bridge controller
US6798420B1 (en) 1998-11-09 2004-09-28 Broadcom Corporation Video and graphics system with a single-port RAM
US7071949B1 (en) * 1998-11-18 2006-07-04 Microsoft Corporation View dependent tiled textures
US6453366B1 (en) * 1999-02-18 2002-09-17 International Business Machines Corporation Method and apparatus for direct memory access (DMA) with dataflow blocking for users
US7749089B1 (en) 1999-02-26 2010-07-06 Creative Kingdoms, Llc Multi-media interactive play system
US8698840B2 (en) * 1999-03-05 2014-04-15 Csr Technology Inc. Method and apparatus for processing video and graphics data to create a composite output image having independent and separate layers of video and graphics display planes
US7623140B1 (en) * 1999-03-05 2009-11-24 Zoran Corporation Method and apparatus for processing video and graphics data to create a composite output image having independent and separate layers of video and graphics
JP3644295B2 (ja) * 1999-03-17 2005-04-27 セイコーエプソン株式会社 投写型表示装置
US6344852B1 (en) * 1999-03-17 2002-02-05 Nvidia Corporation Optimized system and method for binning of graphics data
US6333744B1 (en) * 1999-03-22 2001-12-25 Nvidia Corporation Graphics pipeline including combiner stages
US6577320B1 (en) * 1999-03-22 2003-06-10 Nvidia Corporation Method and apparatus for processing multiple types of pixel component representations including processes of premultiplication, postmultiplication, and colorkeying/chromakeying
US6181352B1 (en) * 1999-03-22 2001-01-30 Nvidia Corporation Graphics pipeline selectively providing multiple pixels or multiple textures
JP3368226B2 (ja) * 1999-03-26 2003-01-20 キヤノン株式会社 情報処理方法及び情報処理装置
US6753865B1 (en) * 1999-06-30 2004-06-22 Realnetworks, Inc. System and method for generating video frames and post filtering
US6760378B1 (en) 1999-06-30 2004-07-06 Realnetworks, Inc. System and method for generating video frames and correcting motion
US20030142107A1 (en) * 1999-07-16 2003-07-31 Intel Corporation Pixel engine
DE60023081D1 (de) 1999-10-14 2005-11-17 Sony Computer Entertainment Inc Unterhaltungssystem, Unterhaltungsvorrichtung, Aufzeichnungsmedium und Programm
US7058462B1 (en) 1999-10-14 2006-06-06 Sony Computer Entertainment Inc. Entertainment system, entertainment apparatus, recording medium, and program
US6452600B1 (en) * 1999-10-28 2002-09-17 Nintendo Co., Ltd. Graphics system interface
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US9668011B2 (en) * 2001-02-05 2017-05-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Single chip set-top box system
US8913667B2 (en) * 1999-11-09 2014-12-16 Broadcom Corporation Video decoding system having a programmable variable-length decoder
US6538656B1 (en) 1999-11-09 2003-03-25 Broadcom Corporation Video and graphics system with a data transport processor
US6868421B1 (en) * 1999-11-27 2005-03-15 Ching-Fang Lin Method of converting geospatial database into compressive database for multiple dimensional data storage
US7209140B1 (en) 1999-12-06 2007-04-24 Nvidia Corporation System, method and article of manufacture for a programmable vertex processing model with instruction set
US6353439B1 (en) * 1999-12-06 2002-03-05 Nvidia Corporation System, method and computer program product for a blending operation in a transform module of a computer graphics pipeline
US6417851B1 (en) * 1999-12-06 2002-07-09 Nvidia Corporation Method and apparatus for lighting module in a graphics processor
US6844880B1 (en) 1999-12-06 2005-01-18 Nvidia Corporation System, method and computer program product for an improved programmable vertex processing model with instruction set
US6198488B1 (en) * 1999-12-06 2001-03-06 Nvidia Transform, lighting and rasterization system embodied on a single semiconductor platform
JP2001161998A (ja) * 1999-12-14 2001-06-19 Maruhon Ind Co Ltd 遊技機
US6591361B1 (en) 1999-12-28 2003-07-08 International Business Machines Corporation Method and apparatus for converting data into different ordinal types
JP3807654B2 (ja) * 1999-12-28 2006-08-09 株式会社スクウェア・エニックス ビデオゲーム用のプログラムを記録したコンピュータ読み取り可能な記録媒体、ビデオゲームにおけるオブジェクト描画方法及びビデオゲーム装置
US6947057B2 (en) * 2000-01-11 2005-09-20 Sun Microsystems, Inc. Rendering lines with sample weighting
US6421067B1 (en) * 2000-01-16 2002-07-16 Isurftv Electronic programming guide
US6823525B1 (en) * 2000-01-21 2004-11-23 Ati Technologies Inc. Method for displaying single monitor applications on multiple monitors driven by a personal computer
JP3350655B2 (ja) * 2000-01-25 2002-11-25 株式会社ナムコ ゲームシステム及び情報記憶媒体
US6925641B1 (en) * 2000-02-04 2005-08-02 Xronix Communications, Inc. Real time DSP load management system
JP3413383B2 (ja) 2000-02-17 2003-06-03 株式会社ナムコ ゲームシステム及び情報記憶媒体
US7445550B2 (en) 2000-02-22 2008-11-04 Creative Kingdoms, Llc Magical wand and interactive play experience
US6761637B2 (en) 2000-02-22 2004-07-13 Creative Kingdoms, Llc Method of game play using RFID tracking device
US7878905B2 (en) 2000-02-22 2011-02-01 Creative Kingdoms, Llc Multi-layered interactive play experience
JP3543942B2 (ja) 2000-03-02 2004-07-21 株式会社ソニー・コンピュータエンタテインメント 画像生成装置
US6724385B2 (en) * 2000-03-08 2004-04-20 Sony Computer Entertainment Inc. Method of replaying game, recording medium, program, and entertainment system
JP2001252463A (ja) * 2000-03-10 2001-09-18 Konami Co Ltd ゲーム装置、指定位置の判定方法、及び記録媒体並びにプログラム
US6483505B1 (en) * 2000-03-17 2002-11-19 Ati International Srl Method and apparatus for multipass pixel processing
EP1136974A1 (en) * 2000-03-22 2001-09-26 Deutsche Thomson-Brandt Gmbh Method for processing video data for a display device
US6897874B1 (en) * 2000-03-31 2005-05-24 Nvidia Corporation Method and apparatus for providing overlay images
US6701424B1 (en) 2000-04-07 2004-03-02 Nintendo Co., Ltd. Method and apparatus for efficient loading and storing of vectors
US6857061B1 (en) * 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
JP3433918B2 (ja) * 2000-04-28 2003-08-04 株式会社コナミコンピュータエンタテインメントジャパン ゲームシステム、ゲームシステムにおける表示画像形成方法およびゲーム用プログラムが記憶されたコンピュータ読み取り可能な記録媒体
US6791564B1 (en) * 2000-05-05 2004-09-14 Ipfirst, Llc Mechanism for clipping RGB value during integer transfer
US20050078118A1 (en) * 2000-05-12 2005-04-14 Microsoft Corporation Table indexing system and method
JP2001324976A (ja) * 2000-05-16 2001-11-22 Nec Shizuoka Ltd 情報表示システム
US8522266B1 (en) 2000-09-13 2013-08-27 Jlb Ventures Llc System and method for insertion of recorded media into a broadcast
US20020007488A1 (en) * 2000-06-19 2002-01-17 Dan Kikinis Transparent object management for removable media recorders
US6782432B1 (en) * 2000-06-30 2004-08-24 Intel Corporation Automatic state savings in a graphics pipeline
JP2002041285A (ja) * 2000-07-28 2002-02-08 Toshiba Corp データ処理装置およびデータ処理方法
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US7576748B2 (en) 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US6980218B1 (en) * 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
US7369665B1 (en) * 2000-08-23 2008-05-06 Nintendo Co., Ltd. Method and apparatus for mixing sound signals
US6580430B1 (en) * 2000-08-23 2003-06-17 Nintendo Co., Ltd. Method and apparatus for providing improved fog effects in a graphics system
EP1182617A3 (en) * 2000-08-23 2004-01-02 Nintendo Co., Limited Graphics system with reconfigurable embedded frame buffer and copy out conversions between embedded frame buffer and main memory
US6606689B1 (en) * 2000-08-23 2003-08-12 Nintendo Co., Ltd. Method and apparatus for pre-caching data in audio memory
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US7002591B1 (en) * 2000-08-23 2006-02-21 Nintendo Co., Ltd. Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
JP4683760B2 (ja) * 2000-08-23 2011-05-18 任天堂株式会社 再構成可能なピクセルフォーマットを有する組み込みフレームバッファを有するグラフィックスシステム
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US6643744B1 (en) 2000-08-23 2003-11-04 Nintendo Co., Ltd. Method and apparatus for pre-fetching audio data
US6937245B1 (en) * 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
US6639595B1 (en) * 2000-08-23 2003-10-28 Nintendo Co., Ltd. Achromatic lighting in a graphics system and method
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US7034828B1 (en) * 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6609977B1 (en) 2000-08-23 2003-08-26 Nintendo Co., Ltd. External interfaces for a 3D graphics system
US7134960B1 (en) 2000-08-23 2006-11-14 Nintendo Co., Ltd. External interfaces for a 3D graphics system
US6664958B1 (en) * 2000-08-23 2003-12-16 Nintendo Co., Ltd. Z-texturing
US7000044B2 (en) * 2000-09-25 2006-02-14 Olympus Corporation Electronic camera and data transmission system
US6828980B1 (en) * 2000-10-02 2004-12-07 Nvidia Corporation System, method and computer program product for z-texture mapping
US7066781B2 (en) 2000-10-20 2006-06-27 Denise Chapman Weston Children's toy with wireless tag/transponder
US6697074B2 (en) * 2000-11-28 2004-02-24 Nintendo Co., Ltd. Graphics system interface
US6765964B1 (en) 2000-12-06 2004-07-20 Realnetworks, Inc. System and method for intracoding video data
US6919904B1 (en) * 2000-12-07 2005-07-19 Nvidia Corporation Overbright evaluator system and method
JP3705739B2 (ja) * 2000-12-11 2005-10-12 株式会社ナムコ 情報記憶媒体及びゲーム装置
US7098921B2 (en) * 2001-02-09 2006-08-29 Activision Publishing, Inc. Method, system and computer program product for efficiently utilizing limited resources in a graphics device
GB2372848B (en) * 2001-02-20 2004-10-27 Advanced Risc Mach Ltd Data processing using a coprocessor
US6895520B1 (en) 2001-03-02 2005-05-17 Advanced Micro Devices, Inc. Performance and power optimization via block oriented performance measurement and control
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US20020140706A1 (en) * 2001-03-30 2002-10-03 Peterson James R. Multi-sample method and system for rendering antialiased images
US7221381B2 (en) * 2001-05-09 2007-05-22 Clairvoyante, Inc Methods and systems for sub-pixel rendering with gamma adjustment
US6966837B1 (en) 2001-05-10 2005-11-22 Best Robert M Linked portable and video game systems
US7916124B1 (en) * 2001-06-20 2011-03-29 Leapfrog Enterprises, Inc. Interactive apparatus using print media
US7909696B2 (en) 2001-08-09 2011-03-22 Igt Game interaction in 3-D gaming environments
US8002623B2 (en) * 2001-08-09 2011-08-23 Igt Methods and devices for displaying multiple game elements
US6887157B2 (en) 2001-08-09 2005-05-03 Igt Virtual cameras and 3-D gaming environments in a gaming machine
US7901289B2 (en) * 2001-08-09 2011-03-08 Igt Transparent objects on a gaming machine
US8267767B2 (en) * 2001-08-09 2012-09-18 Igt 3-D reels and 3-D wheels in a gaming machine
US7367885B2 (en) * 2001-08-09 2008-05-06 Igt 3-D text in a gaming machine
US20040077404A1 (en) * 2002-10-17 2004-04-22 Schlottmann Gregory A. Transparent objects on a gaming machine
JP3770121B2 (ja) * 2001-08-30 2006-04-26 株式会社デンソー 画像処理装置
US7145577B2 (en) 2001-08-31 2006-12-05 Micron Technology, Inc. System and method for multi-sampling primitives to reduce aliasing
US20030050116A1 (en) * 2001-09-10 2003-03-13 William Chen Picture video signal converting/processing circuit for GBA (gameboy advance) or GBC (gameboy color)
US6842177B2 (en) * 2001-12-14 2005-01-11 University Of Washington Macroblock padding
US7158141B2 (en) * 2002-01-17 2007-01-02 University Of Washington Programmable 3D graphics pipeline for multimedia applications
US6847372B2 (en) * 2002-03-11 2005-01-25 Sun Microsystems, Inc. Magnified texture-mapped pixel performance in a single-pixel pipeline
US20070066396A1 (en) 2002-04-05 2007-03-22 Denise Chapman Weston Retail methods for providing an interactive product to a consumer
US6967566B2 (en) 2002-04-05 2005-11-22 Creative Kingdoms, Llc Live-action interactive adventure game
US7043599B1 (en) 2002-06-20 2006-05-09 Rambus Inc. Dynamic memory supporting simultaneous refresh and data-access transactions
US7918730B2 (en) * 2002-06-27 2011-04-05 Igt Trajectory-based 3-D games of chance for video gaming machines
US6828976B2 (en) * 2002-07-26 2004-12-07 Sun Microsystems, Inc. Method and apparatus for hardware acceleration of graphical fill in display systems
US7674184B2 (en) 2002-08-01 2010-03-09 Creative Kingdoms, Llc Interactive water attraction and quest game
JP4326766B2 (ja) 2002-08-20 2009-09-09 アルゼ株式会社 メダル発行機
US6922199B2 (en) 2002-08-28 2005-07-26 Micron Technology, Inc. Full-scene anti-aliasing method and system
US20040077401A1 (en) * 2002-10-17 2004-04-22 Schlottmann Gregory A. Displaying paylines on a gaming machine
US20040077402A1 (en) * 2002-10-17 2004-04-22 Schlottmann Gregory A. Payline curves on a gaming machine
US8259121B2 (en) 2002-10-22 2012-09-04 Broadcom Corporation System and method for processing data using a network
US8073304B2 (en) * 2002-11-16 2011-12-06 Gregory Karel Rohlicek Portable recorded television viewer
US7511710B2 (en) * 2002-11-25 2009-03-31 Microsoft Corporation Three-dimensional program guide
US20040100484A1 (en) * 2002-11-25 2004-05-27 Barrett Peter T. Three-dimensional television viewing environment
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US8366552B2 (en) 2002-12-10 2013-02-05 Ol2, Inc. System and method for multi-stream video compression
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US9077991B2 (en) 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
US10201760B2 (en) 2002-12-10 2019-02-12 Sony Interactive Entertainment America Llc System and method for compressing video based on detected intraframe motion
US8549574B2 (en) 2002-12-10 2013-10-01 Ol2, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US8526490B2 (en) 2002-12-10 2013-09-03 Ol2, Inc. System and method for video compression using feedback including data related to the successful receipt of video content
US9108107B2 (en) 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US9192859B2 (en) 2002-12-10 2015-11-24 Sony Computer Entertainment America Llc System and method for compressing video based on latency measurements and other feedback
US9446305B2 (en) 2002-12-10 2016-09-20 Sony Interactive Entertainment America Llc System and method for improving the graphics performance of hosted applications
US8964830B2 (en) 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US8711923B2 (en) 2002-12-10 2014-04-29 Ol2, Inc. System and method for selecting a video encoding format based on feedback data
US9061207B2 (en) 2002-12-10 2015-06-23 Sony Computer Entertainment America Llc Temporary decoder apparatus and method
US7367886B2 (en) * 2003-01-16 2008-05-06 Wms Gaming Inc. Gaming system with surround sound
US7364508B2 (en) * 2003-01-16 2008-04-29 Wms Gaming, Inc. Gaming machine environment having controlled audio and visual media presentation
US20040142747A1 (en) * 2003-01-16 2004-07-22 Pryzby Eric M. Selectable audio preferences for a gaming machine
JP4193979B2 (ja) * 2003-03-17 2008-12-10 任天堂株式会社 シャドウボリューム生成プログラム及びゲーム装置
US7173635B2 (en) * 2003-03-25 2007-02-06 Nvidia Corporation Remote graphical user interface support using a graphics processing unit
US9446319B2 (en) 2003-03-25 2016-09-20 Mq Gaming, Llc Interactive gaming toy
US7667710B2 (en) 2003-04-25 2010-02-23 Broadcom Corporation Graphics display system with line buffer control scheme
US7256779B2 (en) * 2003-05-08 2007-08-14 Nintendo Co., Ltd. Video game play using panoramically-composited depth-mapped cube mapping
JP3855270B2 (ja) * 2003-05-29 2006-12-06 ソニー株式会社 アンテナ実装方法
US7681112B1 (en) 2003-05-30 2010-03-16 Adobe Systems Incorporated Embedded reuse meta information
GB2403115B (en) * 2003-06-17 2006-02-08 Imagination Tech Ltd Texturing 3-dimensional computer graphic images
US7057620B2 (en) * 2003-08-25 2006-06-06 Ati Technologies Inc. Method and apparatus for graphics rendering on a mobile device
US7099978B2 (en) * 2003-09-15 2006-08-29 Hewlett-Packard Development Company, Lp. Method and system of completing pending I/O device reads in a multiple-processor computer system
US7239322B2 (en) 2003-09-29 2007-07-03 Ati Technologies Inc Multi-thread graphic processing system
US7895411B2 (en) * 2003-10-02 2011-02-22 Nvidia Corporation Physics processing unit
US20050086040A1 (en) * 2003-10-02 2005-04-21 Curtis Davis System incorporating physics processing unit
US7739479B2 (en) 2003-10-02 2010-06-15 Nvidia Corporation Method for providing physics simulation data
US8063916B2 (en) * 2003-10-22 2011-11-22 Broadcom Corporation Graphics layer reduction for video composition
EP1528512A3 (en) * 2003-10-28 2006-02-15 Samsung Electronics Co., Ltd. Graphic decoder, image reproduction apparatus and method for graphic display acceleration based on commands
US7245302B1 (en) * 2003-10-30 2007-07-17 Nvidia Corporation Processing high numbers of independent textures in a 3-D graphics pipeline
US20050141784A1 (en) * 2003-12-31 2005-06-30 Ferriz Rafael M. Image scaling using an array of processing elements
US8643659B1 (en) 2003-12-31 2014-02-04 3Dlabs Inc., Ltd. Shader with global and instruction caches
JP2005202767A (ja) 2004-01-16 2005-07-28 Toshiba Corp プロセッサシステム、dma制御回路、dma制御方法、dmaコントローラの制御方法、画像処理方法および画像処理回路
US7526456B2 (en) * 2004-01-22 2009-04-28 Nvidia Corporation Method of operation for parallel LCP solver
US20050195200A1 (en) * 2004-03-03 2005-09-08 Chuang Dan M. Embedded system with 3D graphics core and local pixel buffer
US8081182B2 (en) * 2004-03-03 2011-12-20 Qualcomm Incorporated Depth buffer for rasterization pipeline
US7983835B2 (en) 2004-11-03 2011-07-19 Lagassey Paul J Modular intelligent transportation system
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
US20050248566A1 (en) * 2004-04-05 2005-11-10 Vesely Michael A Horizontal perspective hands-on simulator
JP2007531951A (ja) * 2004-04-05 2007-11-08 マイケル エー. ベセリー 水平遠近法ディスプレイ
JP4198087B2 (ja) * 2004-04-13 2008-12-17 株式会社ソニー・コンピュータエンタテインメント 画像生成装置および画像生成方法
US7847800B2 (en) * 2004-04-16 2010-12-07 Apple Inc. System for emulating graphics operations
US8134561B2 (en) 2004-04-16 2012-03-13 Apple Inc. System for optimizing graphics operations
US8704837B2 (en) * 2004-04-16 2014-04-22 Apple Inc. High-level program interface for graphics operations
US7231632B2 (en) * 2004-04-16 2007-06-12 Apple Computer, Inc. System for reducing the number of programs necessary to render an image
US7636489B2 (en) * 2004-04-16 2009-12-22 Apple Inc. Blur computation algorithm
US7248265B2 (en) * 2004-04-16 2007-07-24 Apple Inc. System and method for processing graphics operations with graphics processing unit
US20050251644A1 (en) * 2004-05-06 2005-11-10 Monier Maher Physics processing unit instruction set architecture
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US7091983B1 (en) * 2004-05-26 2006-08-15 Nvidia Corporation Coordinate wrapping for anisotropic filtering of non-power of two textures
EP1781893A1 (en) 2004-06-01 2007-05-09 Michael A. Vesely Horizontal perspective simulator
ATE379823T1 (de) * 2004-06-16 2007-12-15 Nxp Bv Vorwärts-texturabbildungs-3d-graphiksystem
WO2005124693A2 (en) * 2004-06-16 2005-12-29 Koninklijke Philips Electronics N.V. Inverse texture mapping 3d graphics system
US8130237B2 (en) 2004-06-24 2012-03-06 Apple Inc. Resolution independent user interface design
US8068103B2 (en) * 2004-06-24 2011-11-29 Apple Inc. User-interface design
US7397964B2 (en) * 2004-06-24 2008-07-08 Apple Inc. Gaussian blur approximation suitable for GPU
US7652678B2 (en) * 2004-06-25 2010-01-26 Apple Inc. Partial display updates in a windowing system using a programmable graphics processing unit
US8302020B2 (en) 2004-06-25 2012-10-30 Apple Inc. Widget authoring and editing environment
US20050285866A1 (en) * 2004-06-25 2005-12-29 Apple Computer, Inc. Display-wide visual effects for a windowing system using a programmable graphics processing unit
US8239749B2 (en) 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
US8453065B2 (en) 2004-06-25 2013-05-28 Apple Inc. Preview and installation of user interface elements in a display environment
US7490295B2 (en) 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US7546543B2 (en) 2004-06-25 2009-06-09 Apple Inc. Widget authoring and editing environment
US7761800B2 (en) 2004-06-25 2010-07-20 Apple Inc. Unified interest layer for user interface
US8566732B2 (en) 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
US7746347B1 (en) 2004-07-02 2010-06-29 Nvidia Corporation Methods and systems for processing a geometry shader program developed in a high-level shading language
US8044951B1 (en) * 2004-07-02 2011-10-25 Nvidia Corporation Integer-based functionality in a graphics shading language
US7958498B1 (en) 2004-07-02 2011-06-07 Nvidia Corporation Methods and systems for processing a geometry shader program developed in a high-level shading language
US20060020935A1 (en) * 2004-07-02 2006-01-26 Tran Sang V Scheduler for dynamic code reconfiguration
WO2006017339A2 (en) * 2004-07-13 2006-02-16 3Plus1 Technology, Inc. Programmable processor system with two types of sub-processors to execute multimedia applications
US7721069B2 (en) * 2004-07-13 2010-05-18 3Plus1 Technology, Inc Low power, high performance, heterogeneous, scalable processor architecture
FR2873466A1 (fr) * 2004-07-21 2006-01-27 St Microelectronics Sa Procede de programmation d'un controleur de dma dans un systeme sur puce et systeme sur puce associe
US7817157B2 (en) 2004-08-23 2010-10-19 Hewlett-Packard Company, L.P. Method and apparatus for capturing slices of video data
JP4239096B2 (ja) * 2004-08-24 2009-03-18 ソニー株式会社 情報処理装置および方法、並びにプログラム
JP3877077B2 (ja) * 2004-08-31 2007-02-07 任天堂株式会社 ゲーム装置および画像処理プログラム
JP2006092209A (ja) * 2004-09-22 2006-04-06 Sega Corp 画像処理装置およびその方法
JP2006092195A (ja) * 2004-09-22 2006-04-06 Sega Corp 画像処理装置及び画像処理方法
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
JP2006101462A (ja) * 2004-09-30 2006-04-13 Sanyo Electric Co Ltd 画像信号処理装置
CA2585157A1 (en) * 2004-11-15 2006-05-26 Nvidia Corporation Video processing
US8687008B2 (en) * 2004-11-15 2014-04-01 Nvidia Corporation Latency tolerant system for executing video processing operations
US7620530B2 (en) * 2004-11-16 2009-11-17 Nvidia Corporation System with PPU/GPU architecture
US20060126925A1 (en) * 2004-11-30 2006-06-15 Vesely Michael A Horizontal perspective representation
US7369136B1 (en) 2004-12-17 2008-05-06 Nvidia Corporation Computing anisotropic texture mapping parameters
US7227551B2 (en) * 2004-12-23 2007-06-05 Apple Inc. Manipulating text and graphic appearance
US7831656B2 (en) * 2004-12-29 2010-11-09 International Business Machines Corporation Effortless association between services in a communication system and methods thereof
US8140975B2 (en) 2005-01-07 2012-03-20 Apple Inc. Slide show navigation
US7602395B1 (en) * 2005-04-22 2009-10-13 Nvidia Corporation Programming multiple chips from a command buffer for stereo image generation
US8717423B2 (en) 2005-05-09 2014-05-06 Zspace, Inc. Modifying perspective of stereoscopic images based on changes in user viewpoint
US20060250391A1 (en) * 2005-05-09 2006-11-09 Vesely Michael A Three dimensional horizontal perspective workstation
US20060252978A1 (en) * 2005-05-09 2006-11-09 Vesely Michael A Biofeedback eyewear system
US7650266B2 (en) * 2005-05-09 2010-01-19 Nvidia Corporation Method of simulating deformable object using geometrically motivated model
US7875132B2 (en) * 2005-05-31 2011-01-25 United Technologies Corporation High temperature aluminum alloys
US8543931B2 (en) 2005-06-07 2013-09-24 Apple Inc. Preview including theme based installation of user interface elements in a display environment
US8893016B2 (en) * 2005-06-10 2014-11-18 Nvidia Corporation Using a graphics system to enable a multi-user computer system
US10026140B2 (en) * 2005-06-10 2018-07-17 Nvidia Corporation Using a scalable graphics system to enable a general-purpose multi-user computer system
US9298311B2 (en) 2005-06-23 2016-03-29 Apple Inc. Trackpad sensitivity compensation
US7742063B2 (en) * 2005-07-07 2010-06-22 Lsi Corporation Efficient and high speed 2D data transpose engine for SOC application
US20070043466A1 (en) * 2005-08-18 2007-02-22 Vesely Michael A Stereoscopic display using polarized eyewear
US20070040905A1 (en) * 2005-08-18 2007-02-22 Vesely Michael A Stereoscopic display using polarized eyewear
US8313379B2 (en) 2005-08-22 2012-11-20 Nintendo Co., Ltd. Video game system with wireless modular handheld controller
US7942745B2 (en) 2005-08-22 2011-05-17 Nintendo Co., Ltd. Game operating device
US7927216B2 (en) 2005-09-15 2011-04-19 Nintendo Co., Ltd. Video game system with wireless modular handheld controller
JP4805633B2 (ja) 2005-08-22 2011-11-02 任天堂株式会社 ゲーム用操作装置
JP4262726B2 (ja) 2005-08-24 2009-05-13 任天堂株式会社 ゲームコントローラおよびゲームシステム
US8870655B2 (en) 2005-08-24 2014-10-28 Nintendo Co., Ltd. Wireless game controllers
US8308563B2 (en) 2005-08-30 2012-11-13 Nintendo Co., Ltd. Game system and storage medium having game program stored thereon
US20070057972A1 (en) * 2005-09-09 2007-03-15 Samsung Electronics Co., Ltd. Method and apparatus for blending colors
US8157651B2 (en) 2005-09-12 2012-04-17 Nintendo Co., Ltd. Information processing program
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US7447874B1 (en) * 2005-10-18 2008-11-04 Qlogic, Corporation Method and system for designing a flexible hardware state machine
US7743336B2 (en) 2005-10-27 2010-06-22 Apple Inc. Widget security
US9104294B2 (en) 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US8543824B2 (en) 2005-10-27 2013-09-24 Apple Inc. Safe distribution and use of content
US7954064B2 (en) 2005-10-27 2011-05-31 Apple Inc. Multiple dashboards
US8269788B2 (en) * 2005-11-15 2012-09-18 Advanced Micro Devices Inc. Vector graphics anti-aliasing
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
KR100682456B1 (ko) * 2006-02-08 2007-02-15 삼성전자주식회사 렌더링 영역을 최소화하는 3d 그래픽스 데이터의 렌더링방법 및 시스템
US7768517B2 (en) * 2006-02-21 2010-08-03 Nvidia Corporation Asymmetric multi-GPU processing
JP4530419B2 (ja) 2006-03-09 2010-08-25 任天堂株式会社 座標算出装置および座標算出プログラム
JP4151982B2 (ja) 2006-03-10 2008-09-17 任天堂株式会社 動き判別装置および動き判別プログラム
US20070216685A1 (en) * 2006-03-15 2007-09-20 Microsoft Corporation Scene write-once vector and triangle rasterization
JP4684147B2 (ja) 2006-03-28 2011-05-18 任天堂株式会社 傾き算出装置、傾き算出プログラム、ゲーム装置およびゲームプログラム
US7715653B2 (en) * 2006-04-03 2010-05-11 Humberto Garduno Non-platform specific method and/or system for navigating through the content of large images, allowing zoom into or out, pan and/or rotation
US9958934B1 (en) 2006-05-01 2018-05-01 Jeffrey D. Mullen Home and portable augmented reality and virtual reality video game consoles
JP4843377B2 (ja) * 2006-05-18 2011-12-21 株式会社東芝 画像処理装置及び画像処理方法
US7940262B2 (en) * 2006-06-15 2011-05-10 Right Hemisphere Limited Unification and part hiding in three dimensional geometric data
US20070291031A1 (en) * 2006-06-15 2007-12-20 Right Hemisphere Limited Three dimensional geometric data correction
US8525842B1 (en) * 2006-06-16 2013-09-03 Nvidia Corporation System and method for utilizing semaphores in a graphics pipeline
ES2577291T3 (es) * 2006-06-27 2016-07-14 Waterfall Security Solutions Ltd. Enlaces unidireccionales seguros desde y hacia un motor de seguridad
US8888592B1 (en) 2009-06-01 2014-11-18 Sony Computer Entertainment America Llc Voice overlay
US9349201B1 (en) 2006-08-03 2016-05-24 Sony Interactive Entertainment America Llc Command sentinel
US8869027B2 (en) 2006-08-04 2014-10-21 Apple Inc. Management and generation of dashboards
US8144266B2 (en) * 2007-02-27 2012-03-27 Sony Corporation Module system for permitting storage device interface with TV
US20080059321A1 (en) * 2006-08-31 2008-03-06 Zucker Brian T Online Sales Method for Information Handling Systems and Related Peripherals
GB2449398B (en) * 2006-09-29 2009-02-11 Imagination Tech Ltd Improvements in memory management for systems for generating 3-dimensional computer images
US7830389B2 (en) * 2006-10-03 2010-11-09 Honeywell International Inc. Dual processor accelerated graphics rendering
US7973797B2 (en) * 2006-10-19 2011-07-05 Qualcomm Incorporated Programmable blending in a graphics processing unit
US7663621B1 (en) * 2006-11-03 2010-02-16 Nvidia Corporation Cylindrical wrapping using shader hardware
WO2008063391A2 (en) 2006-11-10 2008-05-29 Wms Gaming Inc. Wagering games using multi-level gaming structure
IL180020A (en) * 2006-12-12 2013-03-24 Waterfall Security Solutions Ltd Encryption -and decryption-enabled interfaces
US20080143825A1 (en) * 2006-12-19 2008-06-19 Barry Atkinson Portable multimedia device
IL180748A (en) * 2007-01-16 2013-03-24 Waterfall Security Solutions Ltd Secure archive
JP5127242B2 (ja) 2007-01-19 2013-01-23 任天堂株式会社 加速度データ処理プログラムおよびゲームプログラム
US7627744B2 (en) * 2007-05-10 2009-12-01 Nvidia Corporation External memory accessing DMA request scheduling in IC of parallel processing engines according to completion notification queue occupancy level
US8384710B2 (en) 2007-06-07 2013-02-26 Igt Displaying and using 3D graphics on multiple displays provided for gaming environments
JP4989324B2 (ja) * 2007-06-13 2012-08-01 任天堂株式会社 情報処理システム、情報処理装置、情報処理プログラム
US8190403B2 (en) * 2007-06-26 2012-05-29 Microsoft Corporation Real-time rendering of light-scattering media
US8009168B2 (en) * 2007-06-26 2011-08-30 Microsoft Corporation Real-time rendering of light-scattering media
US7990377B2 (en) * 2007-06-26 2011-08-02 Microsoft Corporation Real-time rendering of light-scattering media
US8605133B2 (en) * 2007-06-27 2013-12-10 University Of Florida Research Foundation, Inc. Display-based interactive simulation with dynamic panorama
US7940269B2 (en) * 2007-06-29 2011-05-10 Microsoft Corporation Real-time rendering of light-scattering media
US7940268B2 (en) * 2007-06-29 2011-05-10 Microsoft Corporation Real-time rendering of light-scattering media
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8441487B1 (en) 2007-07-30 2013-05-14 Nvidia Corporation Bandwidth compression for shader engine store operations
US7886116B1 (en) * 2007-07-30 2011-02-08 Nvidia Corporation Bandwidth compression for shader engine store operations
US8667415B2 (en) 2007-08-06 2014-03-04 Apple Inc. Web widgets
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8156307B2 (en) * 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US9710384B2 (en) * 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US8095735B2 (en) 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US8122229B2 (en) * 2007-09-12 2012-02-21 Convey Computer Dispatch mechanism for dispatching instructions from a host processor to a co-processor
US9015399B2 (en) 2007-08-20 2015-04-21 Convey Computer Multiple data channel memory module architecture
US8561037B2 (en) * 2007-08-29 2013-10-15 Convey Computer Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US8156467B2 (en) 2007-08-27 2012-04-10 Adobe Systems Incorporated Reusing components in a running application
US8176466B2 (en) 2007-10-01 2012-05-08 Adobe Systems Incorporated System and method for generating an application fragment
US8004502B2 (en) * 2007-10-05 2011-08-23 Microsoft Corporation Correcting for ambient light in an optical touch-sensitive device
US8174620B2 (en) 2007-11-06 2012-05-08 Microsoft Corporation High definition media content processing
US9168457B2 (en) 2010-09-14 2015-10-27 Sony Computer Entertainment America Llc System and method for retaining system state
US8968087B1 (en) * 2009-06-01 2015-03-03 Sony Computer Entertainment America Llc Video game overlay
US9498714B2 (en) 2007-12-15 2016-11-22 Sony Interactive Entertainment America Llc Program mode switching
US8613673B2 (en) 2008-12-15 2013-12-24 Sony Computer Entertainment America Llc Intelligent game loading
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9619304B2 (en) 2008-02-05 2017-04-11 Adobe Systems Incorporated Automatic connections between application components
GB2458488C (en) 2008-03-19 2018-09-12 Imagination Tech Ltd Untransformed display lists in a tile based rendering system
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US9419620B2 (en) * 2008-07-22 2016-08-16 Nytell Software LLC Field programmable object array and video compression processor for video data compression
US8656293B1 (en) 2008-07-29 2014-02-18 Adobe Systems Incorporated Configuring mobile devices
US8205066B2 (en) * 2008-10-31 2012-06-19 Convey Computer Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor
US8893026B2 (en) * 2008-11-05 2014-11-18 Pierre-Alain Lindemann System and method for creating and broadcasting interactive panoramic walk-through applications
US8274501B2 (en) * 2008-11-18 2012-09-25 Intel Corporation Techniques to control self refresh display functionality
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
US8926435B2 (en) 2008-12-15 2015-01-06 Sony Computer Entertainment America Llc Dual-mode program execution
US9865233B2 (en) * 2008-12-30 2018-01-09 Intel Corporation Hybrid graphics display power management
WO2010087132A1 (ja) * 2009-01-27 2010-08-05 三菱電機株式会社 状態表示装置及び状態表示装置の表示方法
US20100231600A1 (en) * 2009-03-11 2010-09-16 Horizon Semiconductors Ltd. High bandwidth, efficient graphics hardware architecture
US9426502B2 (en) 2011-11-11 2016-08-23 Sony Interactive Entertainment America Llc Real-time cloud-based video watermarking systems and methods
US9723319B1 (en) 2009-06-01 2017-08-01 Sony Interactive Entertainment America Llc Differentiation for achieving buffered decoding and bufferless decoding
US9082216B2 (en) * 2009-07-01 2015-07-14 Disney Enterprises, Inc. System and method for filter kernel interpolation for seamless mipmap filtering
US9654792B2 (en) 2009-07-03 2017-05-16 Intel Corporation Methods and systems for motion vector derivation at a video decoder
US8419534B2 (en) * 2009-09-30 2013-04-16 Disney Enterprises, Inc. Systems and methods for using images to generate gameplay content
JP5296656B2 (ja) * 2009-10-26 2013-09-25 株式会社ソニー・コンピュータエンタテインメント 画像処理装置および画像処理方法
WO2011052117A1 (ja) * 2009-10-26 2011-05-05 株式会社ソニー・コンピュータエンタテインメント 画像ファイル生成装置、画像処理装置、画像ファイル生成方法、画像処理方法、および画像ファイルのデータ構造
JP5368254B2 (ja) * 2009-10-26 2013-12-18 株式会社ソニー・コンピュータエンタテインメント 画像ファイル生成装置、画像処理装置、画像ファイル生成方法、画像処理方法、および画像ファイルのデータ構造
US8423745B1 (en) 2009-11-16 2013-04-16 Convey Computer Systems and methods for mapping a neighborhood of data to general registers of a processing element
US8823721B2 (en) * 2009-12-30 2014-09-02 Intel Corporation Techniques for aligning frame data
US8643658B2 (en) * 2009-12-30 2014-02-04 Intel Corporation Techniques for aligning frame data
US8717360B2 (en) 2010-01-29 2014-05-06 Zspace, Inc. Presenting a view within a three dimensional scene
US9053562B1 (en) 2010-06-24 2015-06-09 Gregory S. Rabin Two dimensional to three dimensional moving image converter
US8676591B1 (en) 2010-08-02 2014-03-18 Sony Computer Entertainment America Llc Audio deceleration
EP2609520B1 (en) 2010-09-13 2018-05-30 Sony Computer Entertainment America LLC Add-on management
KR20170129967A (ko) 2010-09-13 2017-11-27 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 게임 서버를 포함하는 컴퓨터 게임 시스템에서 통신 네트워크를 통해 클라이언트들 간에 게임 세션을 이송하는 방법
US9942593B2 (en) * 2011-02-10 2018-04-10 Intel Corporation Producing decoded audio at graphics engine of host processing platform
US8786529B1 (en) 2011-05-18 2014-07-22 Zspace, Inc. Liquid crystal variable drive voltage
US9390773B2 (en) 2011-06-28 2016-07-12 Hewlett Packard Enterprise Development Lp Shiftable memory
WO2013062561A1 (en) * 2011-10-27 2013-05-02 Hewlett-Packard Development Company, L.P. Shiftable memory supporting atomic operation
US20130106887A1 (en) * 2011-10-31 2013-05-02 Christopher Tremblay Texture generation using a transformation matrix
KR20130058584A (ko) * 2011-11-25 2013-06-04 삼성전자주식회사 복호화기의 버퍼 관리를 위한 영상 부호화 방법 및 장치, 그 영상 복호화 방법 및 장치
FR2984556B1 (fr) * 2011-12-20 2014-09-26 Commissariat Energie Atomique Systeme et procede de communication entre un circuit d'acquisition et un circuit de traitement de donnees
WO2013115779A1 (en) 2012-01-30 2013-08-08 Hewlett-Packard Development Company, L.P. Word shift static random access memory (ws-sram)
US20130227190A1 (en) * 2012-02-27 2013-08-29 Raytheon Company High Data-Rate Processing System
WO2013130109A1 (en) 2012-03-02 2013-09-06 Hewlett-Packard Development Company L.P. Shiftable memory defragmentation
WO2013137894A1 (en) * 2012-03-16 2013-09-19 Intel Corporation Techniques for a secure graphics architecture
US10430190B2 (en) 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
US9424685B2 (en) 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments
US9635037B2 (en) 2012-09-06 2017-04-25 Waterfall Security Solutions Ltd. Remote control of secure installations
US9535722B2 (en) * 2012-09-12 2017-01-03 The Directv Group, Inc. Method and system for communicating between a host device and a user device through an intermediate device using a composite graphics signal
EP2713341B1 (en) * 2012-09-28 2015-08-19 ABB Research Ltd. Visualization of three-dimensional power distribution data
US9078577B2 (en) 2012-12-06 2015-07-14 Massachusetts Institute Of Technology Circuit for heartbeat detection and beat timing extraction
US8996565B2 (en) * 2012-12-18 2015-03-31 Sap Se Systems and methods for in-memory database processing
GB201223089D0 (en) 2012-12-20 2013-02-06 Imagination Tech Ltd Hidden culling in tile based computer generated graphics
KR101969965B1 (ko) * 2012-12-24 2019-08-13 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 화상독취장치, 이미지 보정 방법 및 컴퓨터 판독가능 기록매체
US9992021B1 (en) 2013-03-14 2018-06-05 GoTenna, Inc. System and method for private and point-to-point communication between computing devices
US9269179B2 (en) * 2013-03-15 2016-02-23 Nvidia Corporation System, method, and computer program product for generating primitive specific attributes
GB2506706B (en) 2013-04-02 2014-09-03 Imagination Tech Ltd Tile-based graphics
US9419975B2 (en) 2013-04-22 2016-08-16 Waterfall Security Solutions Ltd. Bi-directional communication over a one-way link
WO2015083837A1 (en) 2013-12-06 2015-06-11 Square Enix Holdings Co., Ltd. Program, recording medium, information processing apparatus, and control method
GB2521352B (en) * 2013-12-16 2015-11-04 Imagination Tech Ltd Encoder configuration
CN103729888A (zh) * 2013-12-31 2014-04-16 成都有尔科技有限公司 一种方便调试的3d投影装置及其调试方法
CN104796649B (zh) * 2014-01-21 2017-12-26 北京炬力北方微电子有限公司 一种三维投影的方法及装置
WO2015199734A1 (en) * 2014-06-27 2015-12-30 Hewlett-Packard Development Company, Lp Buffer-based update of state data
IL235175A (en) 2014-10-19 2017-08-31 Frenkel Lior Secure desktop remote control
US10617955B1 (en) * 2015-03-24 2020-04-14 Amazon Technologies, Inc. Testing and delivery of game design assets in a service provider environment
US9530237B2 (en) * 2015-04-02 2016-12-27 Apple Inc. Interpolation circuitry and techniques for graphics processing
CN105335257A (zh) * 2015-10-28 2016-02-17 无锡澳优汇国际贸易有限公司 一种媒体数据协同处理系统
US9818051B2 (en) * 2016-01-29 2017-11-14 Ricoh Company, Ltd. Rotation and clipping mechanism
IL250010B (en) 2016-02-14 2020-04-30 Waterfall Security Solutions Ltd Secure connection with protected facilities
WO2017149591A1 (ja) * 2016-02-29 2017-09-08 オリンパス株式会社 画像処理装置
CN106095366B (zh) * 2016-06-07 2019-01-15 北京小鸟看看科技有限公司 一种缩短图像延迟的方法、装置和虚拟现实设备
US9971507B2 (en) * 2016-06-27 2018-05-15 Disney Enterprises, Inc. Systems and methods for reducing storage requirement for storing information defining a virtual space
US10974144B2 (en) * 2016-09-01 2021-04-13 Razer (Asia-Pacific) Pte. Ltd. Methods for emulating a virtual controller device, emulators, and computer-readable media
US10489967B2 (en) * 2017-02-22 2019-11-26 Microsoft Technology Licensing, Llc Indexed value blending for use in image rendering
US10497340B2 (en) * 2017-04-10 2019-12-03 Intel Corporation Beam scanning image processing within an improved graphics processor microarchitecture
CN116456097A (zh) 2017-04-28 2023-07-18 苹果公司 视频流水线
US10979685B1 (en) 2017-04-28 2021-04-13 Apple Inc. Focusing for virtual and augmented reality systems
US10861142B2 (en) * 2017-07-21 2020-12-08 Apple Inc. Gaze direction-based adaptive pre-filtering of video data
TWI696076B (zh) * 2018-06-08 2020-06-11 大陸商深圳大心電子科技有限公司 指令處理方法及儲存控制器
CN110618833B (zh) * 2018-06-19 2022-01-11 深圳大心电子科技有限公司 指令处理方法及存储控制器
CN111238497B (zh) 2018-11-29 2022-05-06 华为技术有限公司 一种高精度地图的构建方法及装置
TWI692719B (zh) * 2019-03-21 2020-05-01 瑞昱半導體股份有限公司 音訊處理方法與音訊處理系統
CN112070651A (zh) * 2019-06-10 2020-12-11 华夏芯(北京)通用处理器技术有限公司 一种基于双Buffer架构下的纹理贴图硬件加速器
US11782624B2 (en) 2020-10-06 2023-10-10 Samsung Electronics Co., Ltd. Worflow-based partition allocation
CN114092338B (zh) * 2022-01-20 2022-04-19 长沙金维信息技术有限公司 图像缩放快速计算方法

Family Cites Families (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US31200A (en) * 1861-01-22 I H S White Newspaper-file
JPS559742B2 (zh) * 1974-06-20 1980-03-12
USRE31200F1 (en) 1976-01-19 1990-05-29 Raster scan display apparatus for dynamically viewing image elements stored in a random access memory array
US4404629A (en) * 1981-01-26 1983-09-13 Atari, Inc. Data processing system with latch for sharing instruction fields
US4454593A (en) * 1981-05-19 1984-06-12 Bell Telephone Laboratories, Incorporated Pictorial information processing technique
GB2133257B (en) 1982-12-22 1987-07-29 Ricoh Kk T v game system
EP0989536B1 (en) * 1983-12-26 2003-05-07 Hitachi, Ltd. Graphic pattern processing apparatus
CA1270339A (en) 1985-06-24 1990-06-12 Katsuya Nakagawa System for determining a truth of software in an information processing apparatus
US4789927A (en) 1986-04-07 1988-12-06 Silicon Graphics, Inc. Interleaved pipeline parallel processing architecture
GB8614876D0 (en) * 1986-06-18 1986-07-23 Rca Corp Display processors
US4823120A (en) 1986-09-12 1989-04-18 Apple Computer, Inc. Enhanced video graphics controller
CA1330596C (en) 1986-11-19 1994-07-05 Yoshiaki Nakanishi Memory cartridge and data processing apparatus
US4825391A (en) * 1987-07-20 1989-04-25 General Electric Company Depth buffer priority processing for real time computer image generating systems
US5181014A (en) * 1987-10-26 1993-01-19 Tektronix, Inc. Method and apparatus for representing three-dimensional color data in a one-dimensional reference system
JPH01181163A (ja) * 1988-01-13 1989-07-19 Seiko Instr & Electron Ltd 図形表示システム
US5187796A (en) * 1988-03-29 1993-02-16 Computer Motion, Inc. Three-dimensional vector co-processor having I, J, and K register files and I, J, and K execution units
US5068644A (en) * 1988-05-17 1991-11-26 Apple Computer, Inc. Color graphics system
US4951232A (en) 1988-09-12 1990-08-21 Silicon Graphics, Inc. Method for updating pipelined, single port Z-buffer by segments on a scan line
US5038297A (en) 1988-09-13 1991-08-06 Silicon Graphics, Inc. Method and apparatus for clearing a region of Z-buffer
US4970636A (en) 1989-01-23 1990-11-13 Honeywell Inc. Memory interface controller
US5051737A (en) 1989-02-23 1991-09-24 Silicon Graphics, Inc. Efficient graphics process for clipping polygons
US5113490A (en) 1989-06-19 1992-05-12 Silicon Graphics, Inc. Method for forming a computer model from an intersection of a cutting surface with a bounded volume
JPH03119386A (ja) * 1989-10-02 1991-05-21 Canon Inc 画像処理装置
US5227863A (en) 1989-11-14 1993-07-13 Intelligent Resources Integrated Systems, Inc. Programmable digital video processing system
WO1991012588A1 (en) 1990-02-16 1991-08-22 Silicon Graphics, Inc. Method and apparatus for providing a visually improved image by converting a three-dimensional quadrilateral to a pair of triangles in a computer system
US5204664A (en) * 1990-05-16 1993-04-20 Sanyo Electric Co., Ltd. Display apparatus having a look-up table for converting pixel data to color data
JP3056514B2 (ja) 1990-08-27 2000-06-26 任天堂株式会社 画像表示装置およびそれに用いる外部記憶装置
JP3068842B2 (ja) 1990-08-27 2000-07-24 任天堂株式会社 画像処理装置におけるダイレクトメモリアクセス装置およびそれに用いる外部記憶装置
US5228126A (en) * 1991-01-08 1993-07-13 Radius Inc. Image data accelerated processing apparatus and method
US5266941A (en) 1991-02-15 1993-11-30 Silicon Graphics, Inc. Apparatus and method for controlling storage of display information in a computer system
US5307450A (en) 1991-02-19 1994-04-26 Silicon Graphics, Inc. Z-subdivision for improved texture mapping
US5230039A (en) 1991-02-19 1993-07-20 Silicon Graphics, Inc. Texture range controls for improved texture mapping
US5343558A (en) 1991-02-19 1994-08-30 Silicon Graphics, Inc. Method for scan converting shaded triangular polygons
US5479189A (en) * 1991-02-28 1995-12-26 Chesavage; Jay 4 channel color display adapter and method for color correction
US5265199A (en) 1991-05-22 1993-11-23 Silicon Graphics, Inc. Method and apparatus for accomplishing Z-buffering by prediction
JPH05108043A (ja) * 1991-10-16 1993-04-30 Pioneer Video Corp グラフイツクスデコーダ
US5388841A (en) 1992-01-30 1995-02-14 A/N Inc. External memory system having programmable graphics processor for use in a video game system or the like
US5357604A (en) 1992-01-30 1994-10-18 A/N, Inc. Graphics processor with enhanced memory control circuitry for use in a video game system or the like
US5684897A (en) * 1992-02-19 1997-11-04 Ezel Inc. Method for quantizing color image data by minimizing least squares error of binary coding
US5469535A (en) * 1992-05-04 1995-11-21 Midway Manufacturing Company Three-dimensional, texture mapping display system
US5553864A (en) * 1992-05-22 1996-09-10 Sitrick; David H. User image integration into audiovisual presentation system and methodology
JPH07325934A (ja) * 1992-07-10 1995-12-12 Walt Disney Co:The 仮想世界に向上したグラフィックスを提供する方法および装置
GB2270243B (en) * 1992-08-26 1996-02-28 Namco Ltd Image synthesizing system
DE69325588T2 (de) 1992-10-30 1999-11-18 Sega Enterprises Kk Informations-verarbeitungsgerät
WO1994010641A1 (en) 1992-11-02 1994-05-11 The 3Do Company Audio/video computer architecture
US5500925A (en) * 1992-12-01 1996-03-19 Xaos Tools Dynamic image processing using particle systems
EP0606781B1 (en) * 1993-01-07 2001-03-28 Canon Kabushiki Kaisha Color image processing apparatus and method
US5907315A (en) * 1993-03-17 1999-05-25 Ultimatte Corporation Method and apparatus for adjusting parameters used by compositing devices
JP3124648B2 (ja) * 1993-03-19 2001-01-15 富士通株式会社 色データ管理方法及び装置
US5450607A (en) 1993-05-17 1995-09-12 Mips Technologies Inc. Unified floating point and integer datapath for a RISC processor
GB2278524B (en) * 1993-05-28 1997-12-10 Nihon Unisys Ltd Method and apparatus for rendering visual images employing area calculation and blending of fractional pixel lists for anti-aliasing and transparency
US5408605A (en) 1993-06-04 1995-04-18 Sun Microsystems, Inc. Command preprocessor for a high performance three dimensional graphics accelerator
CA2127053C (en) 1993-07-02 2005-01-04 Makoto Furuhashi Method and apparatus for time-sharing cpu system bus in image generation system
JPH0785308A (ja) 1993-07-02 1995-03-31 Sony Corp 画像表示方法
US5369739A (en) 1993-07-09 1994-11-29 Silicon Graphics, Inc. Apparatus and method for generating point sample masks in a graphics display system
JP3349787B2 (ja) 1993-10-15 2002-11-25 株式会社ソニー・コンピュータエンタテインメント 描画データ作成装置及び描画データ作成方法
US5491498A (en) * 1993-11-15 1996-02-13 Koyama; Ryo Digital audio delivery in a graphics controller architecture
US5515081A (en) * 1993-11-30 1996-05-07 Borland International, Inc. System and methods for improved storage and processing of BITMAP images
JPH07219894A (ja) 1994-01-31 1995-08-18 Sony Corp データ転送方法及びデータ転送装置
JPH07281652A (ja) 1994-04-07 1995-10-27 Sony Corp 画像処理装置
JPH07282270A (ja) 1994-04-08 1995-10-27 Sony Corp 画像生成方法および装置
US5493643A (en) 1994-05-03 1996-02-20 Loral Aerospace Corp. Image generator architecture employing tri-level fixed interleave processing and distribution buses
JP3220328B2 (ja) * 1994-06-01 2001-10-22 株式会社ソニー・コンピュータエンタテインメント ビデオゲーム機
JPH0816530A (ja) 1994-07-04 1996-01-19 Kurieiteibu Design:Kk コプロセサシステムおよび補助演算機能付外部メモリ装置
FR2723797B1 (fr) * 1994-08-19 1996-09-20 Sextant Avionique Procede de codage de memoire image
JP3528284B2 (ja) * 1994-11-18 2004-05-17 ヤマハ株式会社 3次元サウンドシステム
US5949409A (en) * 1994-12-02 1999-09-07 Sony Corporation Image processing in which the image is divided into image areas with specific color lookup tables for enhanced color resolution
US5701444A (en) 1995-03-24 1997-12-23 3Dlabs Inc. Ltd. Three-dimensional graphics subsystem with enhanced support for graphical user interface
US5818438A (en) * 1995-04-25 1998-10-06 Bellsouth Corporation System and method for providing television services
EP0834136B1 (en) * 1995-06-07 1999-08-11 Advanced Micro Devices, Inc. Computer system having a dedicated multimedia engine including multimedia memory
US5842004A (en) * 1995-08-04 1998-11-24 Sun Microsystems, Inc. Method and apparatus for decompression of compressed geometric three-dimensional graphics data
US5797028A (en) * 1995-09-11 1998-08-18 Advanced Micro Devices, Inc. Computer system having an improved digital and analog configuration
JP2861890B2 (ja) * 1995-09-28 1999-02-24 日本電気株式会社 カラー画像表示装置
US6331856B1 (en) * 1995-11-22 2001-12-18 Nintendo Co., Ltd. Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
US5740076A (en) * 1995-11-30 1998-04-14 Candela, Ltd. System for describing a color gamut in a graphical data processing system
JPH09284671A (ja) * 1996-04-18 1997-10-31 Toshiba Corp 走査線変換装置
US5831604A (en) * 1996-06-03 1998-11-03 Intel Corporation Alpha blending palettized image data
US5903278A (en) 1996-08-02 1999-05-11 Hewlett-Packard Company Primitive colorization of three dimensional graphics to provide feedback to a developer
US5896136A (en) * 1996-10-30 1999-04-20 Hewlett Packard Company Computer graphics system with improved blending
US6002406A (en) * 1996-11-13 1999-12-14 Silicon Graphics, Inc. System and method for storing and accessing data representative of an object in various level-of-detail
US5986663A (en) * 1997-10-10 1999-11-16 Cirrus Logic, Inc. Auto level of detail-based MIP mapping in a graphics processor
US5990903A (en) * 1997-02-03 1999-11-23 Micron Technologies, Inc. Method and apparatus for performing chroma key, transparency and fog operations
US6016151A (en) * 1997-09-12 2000-01-18 Neomagic Corp. 3D triangle rendering by texture hardware and color software using simultaneous triangle-walking and interpolation for parallel operation

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100456328C (zh) * 2003-12-19 2009-01-28 Td视觉有限公司 三维视频游戏系统
CN100356406C (zh) * 2004-06-17 2007-12-19 奥林巴斯株式会社 图像处理方法和图像处理装置
CN101681526B (zh) * 2007-01-24 2013-03-27 英特尔公司 通过使用可置换的剔除程序提高图形性能的方法和装置
US10140750B2 (en) 2007-01-24 2018-11-27 Intel Corporation Method, display adapter and computer program product for improved graphics performance by using a replaceable culling program
CN101547231B (zh) * 2008-03-27 2014-11-05 Tcl集团股份有限公司 一种信息共享系统
US10140123B2 (en) 2008-05-30 2018-11-27 Advanced Micro Devices, Inc. SIMD processing lanes storing input pixel operand data in local register file for thread execution of image processing operations
CN102047241A (zh) * 2008-05-30 2011-05-04 先进微装置公司 本地与全局数据共享
CN102047241B (zh) * 2008-05-30 2014-03-12 先进微装置公司 本地与全局数据共享
US9619428B2 (en) 2008-05-30 2017-04-11 Advanced Micro Devices, Inc. SIMD processing unit with local data share and access to a global data share of a GPU
CN103871352A (zh) * 2012-12-11 2014-06-18 华东师范大学 一种三维显示控制装置
CN107408373A (zh) * 2015-02-24 2017-11-28 巴科股份有限公司 稳定的色彩渲染管理器
CN107408373B (zh) * 2015-02-24 2020-07-28 巴科股份有限公司 稳定的色彩渲染管理器
CN110114803A (zh) * 2016-12-28 2019-08-09 松下电器(美国)知识产权公司 三维模型分发方法、三维模型接收方法、三维模型分发装置以及三维模型接收装置
CN110114803B (zh) * 2016-12-28 2023-06-27 松下电器(美国)知识产权公司 三维模型分发方法、三维模型接收方法、三维模型分发装置以及三维模型接收装置
CN109166538A (zh) * 2018-11-22 2019-01-08 合肥惠科金扬科技有限公司 显示面板的控制电路及显示装置
CN109166538B (zh) * 2018-11-22 2023-10-20 合肥惠科金扬科技有限公司 显示面板的控制电路及显示装置
CN111669603A (zh) * 2019-03-07 2020-09-15 阿里巴巴集团控股有限公司 多角度自由视角数据处理方法及装置、介质、终端、设备
US11521347B2 (en) 2019-03-07 2022-12-06 Alibaba Group Holding Limited Method, apparatus, medium, and device for generating multi-angle free-respective image data
CN111111154A (zh) * 2019-12-04 2020-05-08 北京代码乾坤科技有限公司 虚拟游戏对象的建模方法、装置、处理器及电子装置
CN111111154B (zh) * 2019-12-04 2023-06-06 北京代码乾坤科技有限公司 虚拟游戏对象的建模方法、装置、处理器及电子装置
CN112231020A (zh) * 2020-12-16 2021-01-15 成都完美时空网络技术有限公司 模型切换方法和装置、电子设备和存储介质
CN113709006A (zh) * 2021-10-29 2021-11-26 上海闪马智能科技有限公司 一种流量确定方法、装置、存储介质及电子装置

Also Published As

Publication number Publication date
US6556197B1 (en) 2003-04-29
DE69628266D1 (de) 2003-06-26
US20030080963A1 (en) 2003-05-01
EP0778536B1 (en) 2003-05-21
DE69628266T2 (de) 2003-11-27
EP0778536A3 (en) 1999-11-03
US6593929B2 (en) 2003-07-15
JPH09325759A (ja) 1997-12-16
US6166748A (en) 2000-12-26
US6331856B1 (en) 2001-12-18
US6342892B1 (en) 2002-01-29
EP0778536A2 (en) 1997-06-11
US6239810B1 (en) 2001-05-29
TW337570B (en) 1998-08-01

Similar Documents

Publication Publication Date Title
CN1170171A (zh) 带三维图形和数字音频信号处理协处理器的视频游戏系统
US7176919B2 (en) Recirculating shade tree blender for a graphics system
JP4890638B2 (ja) グラフィクスシステムにおいて直接および間接テクスチャを処理するための方法および装置
JP4719363B2 (ja) 内部フレームバッファと主メモリ間でのコピーアウト変換を有するグラフィクスシステム
US6392655B1 (en) Fine grain multi-pass for multiple texture rendering
JP4680407B2 (ja) 可変ビットフィールドによる符号化
JP4698893B2 (ja) 改良されたフォグ効果を提供するための方法、グラフィックスシステム、およびプログラム
US6664962B1 (en) Shadow mapping in a low cost graphics system
US7995069B2 (en) Graphics system with embedded frame buffer having reconfigurable pixel formats
US6937245B1 (en) Graphics system with embedded frame buffer having reconfigurable pixel formats
US6181352B1 (en) Graphics pipeline selectively providing multiple pixels or multiple textures
CN1691069A (zh) 采用多图形处理器加速方格片元过滤的实时体绘制方法
CN110291563A (zh) 图形处理中的多个着色器进程
CN1656465A (zh) 可缩放的高性能3d图形显示
CN1256675C (zh) 在音频存储器中预缓存数据的方法和装置
JP3777149B2 (ja) プログラム、情報記憶媒体及び画像生成装置
JP4975159B2 (ja) グラフィックシステム、グラフィックス画像を生成する方法およびプログラムにおける無色光のライティング
CN110383339A (zh) 用于图像渲染的索引值混合
CN1231041A (zh) 点光特性形成方法以及使用该方法的图像处理装置
JP2007128180A (ja) 演算処理装置
Raghavachary Rendering for Beginners: Image Synthesis using RenderMan
EP1182617A2 (en) Graphics system with reconfigurable embedded frame buffer and copy out conversions between embedded frame buffer and main memory
JP4698894B2 (ja) グラフィックスシステムにおけるテクスチャタイリングのための方法、装置およびプログラム
Whitted Architectures for 3D graphics display hardware

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication