本发明专利技术提供了一种图形引擎,用于根据所接收的定义多边形的高级图形命令来再现显示像素的图像数据,该图形引擎包括边绘制单元,用于读入与单个多边形边相对应的语言的命令语句,并基于该命令语句将该命令转换为空间表达。还提供了合并有该图形引擎的电子装置以及具有嵌入式图形引擎的存储器集成电路。(*该技术在2023年保护过期,可自由使用*)
【技术实现步骤摘要】
本专利技术涉及一种图形引擎以及合并有该图形引擎的电子装置和存储器。
技术介绍
本专利技术应用于电子装置的显示器,特别是便携式或控制台电子装置上的小面积显示器。存在很多这种装置,例如PDA、无绳电话、移动电话和桌面电话、汽车内信息控制板、手持电子游戏设备、多功能手表等。在现有技术中,通常具有主CPU,该主CPU产生命令,并接收显示命令,对这些显示命令进行处理,并以描述各个显示像素属性的像素数据的形式将处理结果传送给显示模块。传送到显示模块的数据量与显示器分辨率和色浓度(colour depth)成正比。例如,具有四级灰度的96×96像素的小单色显示器需要向显示模块传送非常小的数据量。然而,这种屏幕不能满足用户对更吸引人和更能够提供信息的显示器的需求。随着对彩色显示器和对需要较高屏幕分辨率的复杂图形的需求,由CPU处理并传送给显示模块的数据量变得很大。更加复杂的图形处理增加了CPU的负担并使装置的速度减慢,使得显示器的反应和刷新速率变得难以接受。对于游戏应用尤其存在问题。另一问题是图形处理的增加导致耗电量增加,这显著地缩短了电池供电装置的充电时间间隔。以可接受的速度显示复杂图形的问题通常由附加卡(extra card)上的硬件图形引擎(也被称为图形加速器)来解决,该附加卡安装在处理器壳体中,或作为主板上的嵌入单元。图形引擎负责主CPU的至少一部分显示命令处理。图形引擎是专门为图形处理而开发,所以与处理相同图形任务的CPU相比较,图形引擎更加快速并使用更少的电力。随后将所得到的视频数据从处理器壳体发送给单独的"哑"显示模块。在PC中使用的已知图形引擎专门为大面积显示器设计,因此是非常复杂的系统,需要所使用的大量门的单独硅电路小片。将这些引擎并入便携式装置是行不通的,因为便携式装置的显示器面积小,尺寸和重量有严格限制,而且电力资源有限。此外,PC图形引擎被设计用来处理在大面积显示器中所使用的数据类型,例如复杂图像的多个位图。目前,传送给移动的小面积显示器的数据可以是矢量图形的形式。矢量图形语言的示例有MacroMediaFlashTM及SVGTM。矢量图形定义也用于许多游戏应用编程接口(API),例如Microsoft Directx和OpenGL。在矢量图形中,图像被定义为多个复杂的多边形。这使得矢量图形适合于能够容易地通过数学函数来定义的图像,例如游戏场景、文本和GPS导航地图。对于这些图像,矢量图形比相应位图的效率高得多。也就是,定义与位图文件(以各个单个显示像素的方式)相同细节的矢量图形文件(以复杂多边形的方式)将包含较少的字节。将矢量图形文件转换成多边形内部的像素(或子像素)的坐标流,以形成位图,通常被称为″光栅化(rasterisation)″。位图文件是像素格式的最终图像数据,可以直接复制到显示器。复杂多边形是自交叉(self-intersect)并且其中具有″孔″的多边形。复杂多边形的示例有字母和数字,例如″X″和″8″以及汉字字符。当然,矢量图形也适于定义诸如构成许多计算机游戏的基本图元的三角形的简单多边形。多边形由直线边或曲线边以及填充命令来定义。理论上,各个多边形的边数不受限制。然而,例如包含复杂场景的相片的矢量图形文件将包含比相应位图多几倍的字节。已知适于与例如由小面积显示器采用的高级/矢量图形语言一起使用的图形处理算法。例如,在″Computer GraphicsPrinciples and Practice″Foley,Van Damn,Feiner,Hughes 1996 Edition,ISBN 0-201-84840-6中提供了一些算法。图形引擎通常是软件图形算法,采用具有链表和排序操作的内部动态数据结构。给出一个多边形的多边形边数据的所有矢量图形命令在其开始再现(rendering)(从所接收的高级命令产生用于显示的图像)之前必须被读取到软件引擎中,并且存储在数据结构中。用于各个多边形的命令例如存储在各个多边形边的起始点和终止点的控制列表(master list)中。逐条扫描线地绘制(光栅化)多边形。对于显示器的各条扫描线,该软件首先检查整个列表(或至少检查可能与所选择的扫描线相关的部分列表)并选择哪个多边形边(“有效(active)边”)与扫描线交叉。然后识别各个所选择的边在何处与扫描线交叉,并且对它们进行排序(通常从左到右),从而从显示区域的左边开始,将交叉点标记为1、2、3...。对交叉点进行排序后,可以在它们之间填充多边形(例如,使用在奇交叉点开始填充而在下一(偶)交叉点停止的奇/偶规则)。各个顶点需要存储x和y。通常为32位浮点值。对于″n″边多边形,所需的最大存储是″n″乘以顶点数(该定点数是未知的)。因此,可以处理的控制列表的大小受到软件可用的存储器容量的限制。已知的软件算法因此具有下述缺点需要大量的存储空间以在再现之前存储复杂多边形的所有命令。这使它们难以转换成硬件,并可能使制造商产生偏见而反对在移动装置中并入矢量图形处理。硬件图形引擎更有可能使用三角形光栅化器(rasteriser)电路,该三角形光栅化器电路将各个多边形分为多个三角形(或者用的较少的梯形),分别处理各个三角形以产生该三角形的填充像素,然后重新组合经处理的三角形以生成整个多边形。虽然划分三角形可以由硬件或软件来执行,但是随后的再现几乎始终是在硬件中进行的。该技术有时被称为三角形化(或三角形镶嵌法(triangle tessellation)),而且是目前大多数图形硬件使用的再现2D和3D对象的传统方法。读入各个三角形的几何形状,对其进行光栅化而产生该三角形内的所有像素的像素坐标。通常逐条线地输出像素坐标,但也可以采用其它次序。由于各个三角形的光栅化所需的几何形状信息是固定的(x和y表示的3个顶点),所以在硬件中实现时没有存储的问题。事实上,这些顶点所需的存储空间可以为任意大小,例如,可以存在各个顶点的颜色和其它信息。然而,对于光栅化,这些信息不是必须的,所以光栅化所需的数据是固定的。然而,对于更复杂的多边形,三角形化并不容易,尤其是对那些自交叉的多边形,因为必须在三角形化之前输入并存储整个复杂的多边形,以避免充填以后将成为“孔”的像素。很明显,即使在开始处理简单的凸多边形之前,也需要多个(如果不是所有)边来表明边的哪一侧要进行填充。一种实现该处理的方法是在开始三角形化之前等待″填充″命令,这在定义多边形的所有边之后进行。希望克服现有技术的固有缺点,并减少便携式电子装置中用于显示目的的CPU负荷和/或数据流量。
技术实现思路
在独立权利要求中限定了本专利技术,现对其进行说明。在从属权利要求中限定了优选特征。根据本专利技术的一个实施例,提供了一种图形引擎,用于根据所接收的定义多边形的高级图形命令再现显示像素的图像数据,该图形引擎包括边绘制单元,用于读入与单个多边形边相对应的语言的命令语句,并基于该命令语句将该命令转换成该边的空间表达。因此,优选实施例的图形引擎包括控制电路/逻辑,用于一次读入一条高级图形(例如,向量图形)命令,并将该命令转换成空间表达(即,绘制该边)。如果该图形引擎并行工作,或者可以设置多个边绘制单元,则该图形引擎可以同时读入并转换多条线。在此所述的命令或命令语句不一定仅表示单个命令本文档来自技高网...
【技术保护点】
一种图形引擎,用于根据所接收的定义多边形的高级图形命令再现显示像素的图像数据,该图形引擎包括边绘制单元,用于读入与单个多边形边相对应的语言的命令语句,以及基于该命令语句将该命令转换成边的空间表达。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:梅托德科舍利亚,米卡图奥米,
申请(专利权)人:比特波伊斯有限责任公司,日本电气电子株式会社,
类型:发明
国别省市:FI[芬兰]