背景技术
近年来,矢量图形系统和算法得到了开发以实现鲁棒和精确的可视化,并且已经被使用在软件需求应用中,例如在计算机辅助设计、图形应用等中。使用矢量图形的好处包括在没有图形损失的情况下的可量测性。画面或者平面图中的矢量典型地包括起点、方向、和长度或者终点。因此,相比于通过其它方法必须表示线条的每一个像素,通过使用矢量图形,可以用减少的信息来描绘线条。此外,矢量并非必须是直线,还可以使用曲线等等,并且包括例如用于限定曲线的附加信息。在执行对应的图形应用期间所使用的对应格式、用于存储对应的图形信息的文件格式、所使用的矢量图形的基本原理(fundamental)和对应的软件应用等均是公知的且将不会在此进行详细描述。
另外,已经开发了一些图形标准,例如Khronos工作组2005年7月28日开发的OpenVG 1.0标准,其作为参考而结合于此,并且所述图形标准包括用于硬件加速的二维矢量和光栅图形应用的应用程序编程接口(API)。所述标准在允许设备制造商对设备(手表、全部基于微处理器的桌面系统、乃至服务器机器等等)提供硬件加速的同时,还为复杂的二维图形应用提供了设备独立且厂商中立的接口。
所述标准为一系列的功能提供了接口,所述功能可以通过硬件和/或软件驱动器来实施,用于光栅化、多边形填充等。在所述标准中,实施两个不同的填充规则,即非零规则和奇/偶规则,并且所述两个规则在标准的72页描述。此类填充技术的基本原理使用了这样的事实:多边形的每个边(edge)都具有方向,这样当填充处理到达左边时,填充处理检测边是向上还是向下,如果边向上,则增大计数器;而如果边向下,则减小计数器。针对屏幕上每个像素的计数器的值都被存储在缓冲器中。然而,所述像素被进一步划分为子像素,其中,必须针对每个子像素的每条线存储计数器值,需要甚至更大的缓冲器。
上述技术提出了紧凑型硬件实施等等问题,并且可能会由于例如制造考虑、成本考虑等等而限制缓冲器大小。例如,如果移动设备具有176×208像素的显示分辨率,且每个像素被划分为16×16个子像素,而且针对每条线使用一个8比特计数器,则需要585728字节的缓冲器。然而,将该大小的缓冲器整合到所述移动设备的图形硬件加速器上是不切实际的。此外,例如由于制造工艺中的公共发展(common evolvement)、对更大图形分辨率的需求等等,仅仅向图形硬件加速器添加更大的存储空间也是不切实际的。
一种解决方案就是使用设备的主存储器来实现上述缓冲器。然而,这样的解决方案会导致增加图形加速器和主存储器之间的有限带宽总线上的通信量。
发明内容
因此,存在降低主存储器和图形加速器之间的总线上的通信量的需要。上述和其它问题将通过本发明的示例性实施例而得到解决,本发明提供了示例性的硬件实施的矢量图形解决方案。可以在多种图形应用中使用所述示例性实施例,所述图形应用包括:计算机图形应用等等,并且特别是手持设备应用、低计算性能的设备应用、存储空间有限的设备应用等。
因此,在本发明的示例性实施例中,提供了用于处理矢量图形基元(primitive)等的图形处理器、图形处理单元、用于图形处理器的功能块、图形设备等。示例性实施例可以包括用于存储值的计数器,所述值表示针对每个子像素采样点的填充规则(filling rule)的当前状态。计数器值存储在存储器中,该存储器可以是所述图形处理器的内部存储器或者外部存储器,例如,设备中的传统的存储器。所述示例性实施例可以进一步包括用于接收指令和基元的总线。如果所述存储器是内部存储器,则所述总线是单向的,而如果所述存储器是外部的,则所述总线是双向的,以发送请求到所述存储器。相应地,存储器用于存储每个计数器的值。
所述示例性实施例可以进一步包括第一内部缓冲器,该缓冲器设置为存储针对每个像素的至少一个指示器比特值。典型地,所述内部缓冲器具有长度为一或者二比特的值。然而,可以根据需要使用不同的比特长度。所述示例性实施例可以进一步包括确定逻辑电路,该确定逻辑电路用于基于所述指示器比特值确定是否从存储器检索计数器值。第一缓冲器的指示器比特包括用于表示计数器的值没有变化的值。此外,所述第一缓冲器的指示器比特包括用于表示必须从存储器检索计数器的值的值,如上所述,所述存储器依赖于给定的实施而可以为内部的或者外部的。
所述示例性实施例可以包括第二内部缓冲器,该缓冲器设置为存储每个计数器的有限值(limited value),并且所述确定逻辑电路可以进一步设置为确定是否从第二缓冲器检索计数器值。所述第一缓冲器的指示器比特可以进一步包括用于表示第二缓冲器的范围的值,从该范围能够检索每个计数器的有限值。
在示例性实施例中,可以以区块来处理多边形,其中,有利的是,不需要为整个屏幕分配使用的内部存储器,而只为其部分进行分配即可。区块大小可以为,例如,32×32个像素。硬件领域的那些技术人员可以理解,在更进一步的实施例中,可以依赖于给定的实施来选择该大小,并且可以针对所述内部存储器、内部缓冲器等使用多种其它的硬件构架。
有利的是,可以通过使用图形处理器中的内部存储器而利用所述示例性实施例来减小图形加速器和外部主存储器之间的总线中的通信量,并且所述内部存储器快于位于所述总线以上的外部主存储器。有利的是,由于示例性实施例在图形处理器内部的第一或第二缓冲器中包含了计数器信息,所以不需要针对每个像素而对主存进行寻址,从而产生了一个能够比传统方法更有利且更快的解决上述问题的解决方案。此外,有利的是,通过所述示例性实施例,可以在尺寸上减小所述第一缓冲器和第二缓冲器,允许将其一体化到图形处理器中,从而实现了制造成本的最小化。
通过示例若干示例性实施例和实施情况(包括用于执行本发明的预期最佳模式),从下面的详细描述中可以很容易看出本发明的其它方面、特征和优点。本发明还允许其它的不同实施例,并且可以在不背离本发明的精神和范围的情况下在多个方面修改其数个细节。因此,附图和说明均视为实际上是示例性的,而非限制性的。
具体实施方式
现在参考附图,其中相同的参考数字代表遍及多个视图中的相同或者相对应的部分,并且更具体地是参考附图的图1和2,示例了根据示例性实施例的示例性图形设备。硬件领域的那些技术人员应该可以理解,示例性实施例中所使用的比特值和数据类型长度仅是为示例性的目的,并且在更进一步的实施例中可以例如根据对应图形模块的整体设计等等来进行选择。在示例性实施例中,示例性图形模块可以为图形处理器单元的部分,其可以是图形卡等的部分。在更进一步的示例性实施例中,例如,在嵌入式系统应用等中,所述图形处理器单元可以包括用于产生图形等的更进一步的功能元件(functionality)。从而,根据更进一步示例性实施例的图形处理器单元可以包括除示例性实施例的功能元件之外的更进一步的功能元件。
在图1中,示例性图形设备10可以包括:例如,移动电话、视频图形卡等等,并且从而,可以包括更进一步的组件,该组件不必是针对示例性实施例进行描述的,但它可用于给定应用。示例性实施例可在例如图形处理器单元11等中进行实施,并且其可以包括其它功能元件15,该功能元件不必是针对示例性实施例进行描述的,但它可以配置为用于给定应用。所述示例性实施例可以经由逻辑电路12(例如,配置为确定是否检索和基于指示器比特值而从存储器检索计数器值)、以及内部缓冲器13和14而被实施。此外,如图1所示,可以使用经由总线17连接的外部存储器16。然而,例如,如果在图形处理器的内部存储器中实施示例性实施例,则不必使用外部存储器16。如果使用外部存储器16,则如图1所示,可以提供双向总线17。否则,可以使用单向总线。另外,如果需要,图形处理器单元11中的其它组件可以使用双向总线或者单向总线。
所述示例性实施例基于示例性构架,该构架可以包括三个不同的存储区,该三个存储区被用来存储用于产生图形图像的信息。被称为边缓冲器25的第一存储区,可以包括先前所描述的填充操作的完整的信息。每个像素包括子像素,该子像素典型地具有位于子像素线上的采样点。从而,所分配的存储空间取决于针对每个对应参数所选择的分辨率。例如,针对对于现有的移动电话应用等中很普通的176×208像素的实际屏幕分辨率,每个像素被划分为16×16子像素,且每个子像素线使用对应的8比特计数器,导致针对对应计数器的585728字节的存储空间分配。所述计数器被用在上述填充技术中,并且其被使用是因为完整的信息不可用。能够作为内部或外部存储器配置对应的585728字节的存储空间。然而,例如,由于制造成本等等,作为内部存储器制造这样的存储器可能不太可能,并且在此情况下,如图1所示,可以使用外部存储器,并且在需要时可以通过双向总线来访问该外部存储器以请求每个计数器值的数值。
根据示例性实施例的两个其它存储器包括内部缓冲器13和14,其中例如,当每个像素或者子像素的填充规则没有变化时,第一内部缓冲器13可以被配置为类型缓冲器(type buffer)23,以及第二内部缓冲器14可以被配置为有限边缓冲器(limited edge buffer)24。从而,通过示例性实施例,可以有利地避免或者最小化向外部存储器的请求等。
在示例性实施例中,第一内部缓冲器13可以配置为具有每个像素2比特的分辨率。因此所使用的对应的存储空间分配为176×208/4字节,其等于9152字节并且显著小于实施完整边缓冲器25所需要的存储空间。针对类型缓冲器23的示例性的值可以包括并且表示,例如:
00=无信息
01=有限边缓冲器,范围-1..2
10=有限边缓冲器,范围-2..1
11=外部存储器中的边缓冲器
所述示例性的值表示可以从何处检索每个像素的填充信息。例如,值00可以表示不存在针对当前像素的可用信息,这意味着当前像素上的填充规则的状态没有变。从而,由于所有的计数器具有与前面的像素相同的值,所以不需要执行更进一步的处理。值01和10可以用于表示信息存储在第二内部缓冲器14中,该第二内部缓冲器14可以为有限边缓冲器24。对应范围的意义将在下面针对第二内部缓冲器14进行进一步的描述。值11表示计数器值不能存储在有限边缓冲器24中,而是应该从完整边缓冲器25中获取。根据所述示例性实施例,首先处理第一内部缓冲器13。因此,为了清理缓冲器,第一内部缓冲器13中的每个值都可以设定为00。在计算边信息时,可以修改第一内部缓冲器13,例如,仅当信息要存储到其它缓冲器中时。从而,当所述类型缓冲器23的值设定为00时,存储在其它缓冲器内的过期信息不可被访问。
由于针对子像素的每条线指定了计数器,第二内部缓冲器14包括更多信息,因为每个像素存在16个计数器。在示例性实施例中,第二内部缓冲器14中的信息还具有两个比特的长度,但该信息被指定给每个子像素采样点。从而,对于使用16×16分辨率的实施而言,每个像素具有32比特的信息。有利的是,可以用单个双字来覆盖32比特的长度。然而,在更进一步的示例性实施例中,硬件领域的技术人员可以理解,可以使用例如取决于给定应用的任何合适的长度。在当前范例中,第二内部缓冲器14使用146432字节,并且其显著小于完整信息所需要的字节量。
对于示例性实施例,由于可以针对值01和10使用2个比特的信息,从而可以描绘4个不同的数字。另外,由于信息可以被指定,所以值01和10的可能情况可以分别包括-1..+2以及-2..+1。这样的范围的选择可表示在类型缓冲器23中,其中在多数情况下,这样的范围对于覆盖一个像素中的变化是足够的,有利的是,减少了对完整边缓冲器25的访问。在示例性实施例中,所述范围可以针对不同的像素而不同,但可以在一个像素中应用单个范围。从而,如果所有范围都不合意,则类型缓冲器23可以设定为这样的值,该值表示可以从完整边缓冲器25检索计数器值。
根据所述示例性实施例,数据长度可以依赖于给定应用而变化。然而,如果作为第一内部缓冲器12的类型缓冲器23具有一个比特的数据长度,则这样的实施不需要使用第二内部缓冲器14。在该情况下,类型缓冲器23仅需要表示是否必须从存储在外部存储器16中的边缓冲器检索计数器值。这样的实施是可能的,但不像上述实施例的实施那样有效。然而,例如,如果不能提供足够的内部存储空间,这样的实施可能被使用并且可能是期望的。另外,针对1比特类型缓冲器23实施的存储空间需求是2比特实施的存储空间需求的一半。
在图2中,示例性图形设备20可以包括图形处理单元21。在示例性实施例中,可以以区块(tile)来处理屏幕,其中,有利的是,不需要针对整个屏幕分辨率来分配对应的存储空间和内部缓冲器。如果存储器是外部存储器,能够针对整个屏幕分配它。有利的是,通过区块式实施,由于减小了对存储器大小的需求,对应的存储器可以为内部存储器。这样的内部存储器可用于针对整个区块存储完整边缓冲器25。例如,如果使用32×32像素区块,可以针对完整边缓冲器25使用16384字节。如果作为第一内部缓冲器13的类型缓冲器23具有2个比特的值,则可以针对该类型缓冲器23使用256字节。如果使用作为第二内部缓冲器14的有限边缓冲器24并且该缓冲器24针对每个子像素线具有2个比特的值,则可以针对该有限边缓冲器24使用4096个字节。如果不使用有限边缓冲器24并且所述类型缓冲器具有1个比特的值,则类型缓冲器23仅需要使用128个字节。有利的是,可以通过选择区块大小来调整所使用的存储器,而不会损失缓冲器中的值的分辨率。当类型缓冲器23、边缓冲器25、以及可能地有限边缓冲器24被存储在图形处理单元21内部时,总线27可以配置为单向总线。该总线27可以配置为从诸如CPU、主存储器等的其它组件28接收指令和数据。逻辑电路22和其它功能元件26可以如图1的示例性实施例中那样运行。除了区块之外,硬件领域的那些技术人员可以理解,在更进一步的实施例中,屏幕可以被划分成多个部分,或者以通过扫描线等的其它方式来处理。
虽然根据作为图形处理器单元的部分的实施描述了示例性实施例,但硬件领域的那些技术人员可以理解,示例性实施例可以作为包括在任何合适的处理器单元等中的图形块来实施。示例性实施例的新颖方面包括逻辑电路22、类型缓冲器23、以及边缓冲器25,但还可以包括有限边缓冲器24等。例如诸如总线27等的剩余组件可以依赖于给定的主处理器的需要。有利的是,示例性实施例不必使用双向总线,即使在通用处理器、图形处理器等中总线典型地是双向的。
在区块式示例性实施例中,处理器单元或者图形块21可以配置为逐个区块地来处理屏幕。在处理一个区块之后,该区块不需要被进一步使用并且可以被丢弃。有利的是,可以通过清理类型缓冲器23来重新使用各个区块存储器。因为只有与当前处理的区块相关的数据是已知的,在示例性实施例中,可以采用合适的规则,例如用于控制与相邻区块相关的信息等。例如,在典型的画面处理中,从左到右进行操作,当前处理的区块可以使用来自左边相邻的区块的信息,并且可以将信息传递给右边相邻的区块。
在示例性实施例中,完整图像的处理可以开始于左边。因此,需要处理的第一种情况为其中多边形未全部处于视野中而是部分位于左侧之外的情形。在该情形中,超出左边界的边部分被推动到左边界。如果整个边都在最左区块的外侧,则可以将整个边推动到该区块的左边界。当边被推动到左边界时,可以改变每个计数器以产生正确呈现在多边形的可视部分中的图形。在没有这样的推动的情况下,某些计数器可能不发生改变并且这可能导致这样的情形:其中部分像素可能被认为是在该多边形之内,而另外的部分像素可能被认为是在该多边形之外。由于填充规则的累积地工作,可能需要知道当前处理的计数器值之前的同一水平线中的所有计数器值。从而,可以在左边界中计算图像之外的值。可以以类似的方式计算最左边界,即使没有采用区块式实施例。
硬件领域的那些技术人员可以理解,当处理完第一区块时,可以以多种不同的方式将影响第二区块的数据发送到第二区块。例如,可以使用计数器来将子像素计数器的值传递给下一个区块。然而,如果边穿过子像素以致未将该边考虑在像素之内,则如果未考虑这点,下一个像素中的结果将不正确。从而,当区块不是最左区块时,仍可以计算当前处理的区块的左边的一个像素的边。在该情况下,与最左区块一样,在左边界上边未推动。
类似地,对应的信息被传送给下一个区块,直到到达最右区块为止。在最右区块中,如上所述,需要从前一个区块接收信息。然而,由于边的其余部分位于视野之外,这样的信息不需要被进一步地传送。当处理完最右区块时,视图移动到下一个区块线,并且如上所述那样起始于最左区块。可以重复此处理直到处理完最后一条区块线的最右区块为止。在该阶段,当前多边形可视为已处理,并且可以针对下一个多边形重复上述处理,直到所有的多边形都被处理完。
硬件领域的那些技术人员可以理解,示例性实施例可以从边馈送组件接收边,所述边馈送组件被配置为发送碰到屏幕或者区块的所有边。另外,硬件领域的那些技术人员可以理解,在最左区块或完整屏幕的实施的情况下,也可以发送当前区块的左边的边。
示例性实施例可以包括在任何合适的设备中,所述设备例如包括任何合适的服务器、工作站、PC、笔记本电脑、PDA、因特网工具、手持设备、蜂窝电话、无线设备、其它设备等,所述任何合适的设备能够执行示例性实施例的处理,并且可以经由一个或者多个接口机制进行通信,所述接口机制包括,例如,因特网接入、任何合适形式的无线电通信(例如,语音、调制解调器等)、无线通信媒介、一个或者多个无线通信网络、蜂窝通信网络、G3通信网络、公共交换电话网络(PSTN)、分组数据网络(PDN)、因特网、内联网、或其组合等。
如硬件领域的那些技术人员而言可以理解的,应当理解,示例性实施例是出于示例的目的,因为用于实施示例性实施例的特定硬件的各种变化都是可能的。例如,可以经由一个或者多个硬件设备来实施示例性实施例的一个或者多个组件的功能元件。
示例性实施例可以存储与于此描述的多种处理相关的信息。此信息可以存储在一个或者多个存储器中,例如硬盘、光盘、磁光盘、RAM等等。一个或者多个数据库可以存储用于实施本发明的示例性实施例的信息。可以通过使用包括在于此列出的一个或者多个存储器或者存储设备中的数据结构(例如,记录、表、队列、域、图表、树、列表、等等)来组织数据库。根据示例性实施例所描述的处理可以包括合适的数据结构,用于将所收集的和/或由示例性实施例的设备和子系统的处理所生成的数据存储在一个或者多个数据库中。
电学领域的那些技术人员可以理解,可以通过预备专用集成电路或者通过互联传统组件电路的合适网络来实施所述示例性实施例的全部或者部分。
如上所述,示例性实施例的组件可以包括计算机可读介质或者根据本发明教示的存储器,并且用于保存数据结构、表、记录和/或于此描述的其它数据。计算机可读介质可以包括任何适合的介质,该介质参与提供指令到处理器以进行执行。这样的介质可以采取多种形式,包括但不限于:非易失性媒介、易失性媒介、传输媒介等等。非易失性媒介可以包括:例如,光盘或磁盘、磁光盘等等。易失性媒介可以包括动态存储器等等。传输媒介可以包括同轴电缆、铜电线、光纤等等。传输媒介还可以采用声、光、电磁波等形式,例如在射频(RF)通信、红外(IR)数据通信等期间所产生的那些。计算机可读媒介的常用形式可以包括:例如,软盘、柔性盘、硬盘、磁带、任何其它合适的磁性介质、CR-ROM、CDRW、DVD、任何其它合适的光介质、穿孔卡片、纸带、光学标记片(optical mark sheet)、任何其它合适的具有模式孔或者其它光学可识别的标志的物理媒介、RAM、PROM、EPROM、FLASH-EPROM、任何其它合适的存储芯片或单元存储器、载波或计算机可从中进行读取的任何其它合适的介质。
虽然已经结合若干示例性实施例和实施而描述了本发明,但本发明并不限于此,而是覆盖了落入预期权利要求书的范围的各种更动和等同设置。