图形描绘装置和图形描绘方法

申请号 CN200780051897.9 申请日 2007-02-28 公开(公告)号 CN101622646A 公开(公告)日 2010-01-06
申请人 松下电器产业株式会社; 发明人 春元英明;
摘要 当显示诸如3D图形的 动态图像 时,通过维持显示 帧 速率、抑制显示内容的失败并且使用描绘引擎的最大处理能 力 ,能够显示高 质量 图像。图形描绘装置包括:帧 缓冲器 (40),具有多个区域;描绘帧计数器(15),用于对已描绘的帧的数目进行计数;显示帧计数器(17),用于对其描绘已完成的帧当中的已在屏幕上显示的帧的数目进行计数;描绘控制单元(11),用于根据描绘帧计数器的值和显示帧计数器的值判断帧缓冲器是否具有空区域,并且如果空区域存在,则允许下一帧的描绘;描绘时间预测单元(13),用于预测描绘所需的时间;和描绘省略控制单元(12),用于根据显示帧计数器的值、帧显示周期和预测的描绘时间,判断描绘在显示之前是否完成,并且当确定在显示之前没有完成时,省略随后的描绘命令的执行以继续到下一帧的处理。
权利要求

1.一种图形描绘装置,用于顺序地描绘以时间序列顺序地出现的多个显 示,所述图像描绘装置包括:
缓冲器,具有用于多个帧的多个区域,每个区域存储在一个显示帧中 显示的显示内容的数据;
描绘帧计数器,对响应于结束描绘的帧的数目而改变的值进行计数;
显示帧计数器,对响应于在结束描绘的各个帧中完成在屏幕上显示的帧 的数目而改变的值进行计数;
描绘必需时间预测部分,预测描绘所需时间;和
描绘省略控制部分,基于显示帧计数器的值、帧的显示周期和由描绘必 需时间预测部分所预测的描绘所需时间,确定在显示之前描绘是否完成,并 且当确定在显示之前描绘没有完成时,通过省略随后的描绘命令的执行来执 行下一帧的描绘处理。
2.根据权利要求1所述的图形描绘装置,还包括:
描绘控制部分,根据描绘帧计数器的值和显示帧计数器的值来确定在帧 缓冲器上是否存在空区域,并且当确定存在空区域时,允许描绘下一帧中的 显示元素,
其中当描绘控制部分允许描绘时,描绘必需时间预测部分预测描绘所需 时间。
3.根据权利要求1所述的图形描绘装置,其中所述描绘必需时间预测部 分基于指示被关注的帧中的描绘内容的描绘命令的列表,估计用于一帧中的 描绘的所需时间,作为当执行所述列表中包含的各个描绘命令时检测到的所 需时间的累积值。
4.根据权利要求1所述的图形描绘装置,其中所述描绘必需时间预测部 分基于指示被关注的帧中的描绘内容的描绘命令的列表,估计用于一帧中的 描绘的所需时间,作为指示预先分配给所述列表中包含的各个描绘命令的执 行所需时间的常数的累积值。
5.根据权利要求1所述的图形描绘装置,还包括:
绘制命令列表保存部分,保存指示各个帧中的描绘内容的描绘命令的列 表,并且对于每个描绘命令,保存指示与列表中的两种或更多种优先级相关 的类别的优先级信息,
其中所述描绘控制部分基于相关优先级和执行描绘的描绘引擎的处理能 ,确定在绘制命令列表保存部分中保存的列表中包含的各个描绘命令是否 能够执行描绘,并且省略满足预定条件的描绘命令的执行。
6.一种图形描绘方法,顺序地描绘以时间序列顺序地出现的多个显示帧, 所述图形描绘方法包括:
采用具有用于多个帧的多个区域的帧缓冲器,每个区域存储在一个显示 帧中显示的显示内容的数据;
对响应于结束描绘的帧的数目而改变的第一值进行计数;
对响应于在结束描绘的各个帧中完成在屏幕上显示的帧的数目而改变的 第二值进行计数;和
基于第二值、帧的显示周期和预测的描绘所需时间,确定在显示之前描 绘是否完成,并且当确定在显示之前描绘没有完成时,通过省略随后的描绘 命令的执行来执行下一帧的描绘处理。
7.一种图形显示装置,其中安装有权利要求1所述的图形描绘装置。

说明书全文

技术领域

发明涉及用于按照任意输入命令顺序地描绘(rendering)诸如图形、 字符、图像等显示元素的图形描绘装置和图形描绘方法,所述显示元素将分 别与以时间序列(time series)顺序地出现的多个显示同步地被显示。

背景技术

例如,诸如蜂窝电话终端、移动信息终端(PDA)等的大多数设备能够 在需要的情况下执行各种应用程序。除了可执行应用程序以外,还包含通过 利用三维图形在屏幕上显示各种图形或字符的许多程序,例如,利用以三维 显示的各种字符的3D游戏、显示三维地图的导航、显示三维图形的模拟器 等。
而且,在上面的应用程序中必须在屏幕上显示运动图像,并且在短时间 周期内频繁地更新由应用程序显示在屏幕上的内容。具体地,当诸如游戏等 的应用程序试图显示平滑改变的高质量运动图像时,必须高速地更新将要以 预定帧周期显示在屏幕上的图像的内容。
在这一事件中,需要非常高的描绘处理能来描绘诸如三维图形的图像。 而且,对于构成运动图像的每一帧的描绘操作所允许的时间受到帧周期的限 制,因此必须在非常短的时间内描绘海量的显示元素。
在计算机图形设备中,不仅存在以尽可能高的清晰度描绘精细图像的需 求,而且还存在显示的帧速率应当保持尽可能高的需求。如果可接受降低显 示速率,则高清晰度的美丽图像可被较慢地描绘。然而,当在游戏应用程序 等中必须描绘包括大量运动的图像时,除非能够保持帧速率,否则无法向用 户提供适当的呈现。
例如,在专利文献1中公开了一种调节计算机图形系统的描绘性能的方 法,该方法被设计用来满足上述需要。在专利文献1中,提供了用于计算显 示元素的描绘操作所需的时间的模拟算法。该算法旨在创建以下环境:通过 使得创建作为执行描绘处理的源的信息的创建者(即,游戏应用程序的游戏 开发者)来选择最佳描绘参数,从开始就不应当应用使得不可能保持帧速率 的不合理描绘处理。
而且,在专利文献2中公开的现有技术中,已经公开了这样的方法:应 当以被分配给一帧的描绘操作数可被抑制在描绘引擎的描绘能力之内的方 式,响应于在屏幕上占据的区域中的外观布局(looking layout),基于描绘引 擎的描绘能力,控制三维字符的产生的多边形的数目。
专利文献1:JP-T-2002-503854
专利文献2:JP-A-2000-242807

发明内容

本发明要解决的问题
例如,在采用了其处理能力可以在与一帧周期对应的时间内描绘5000个 显示元素的描绘引擎的情形中,当准备了针对需要在一帧中显示10000个显 示元素的命令的数据时,实际上在可允许的时间内不能描绘全部数据的显示 元素。因此,在屏幕上显示其中丢失了显示图像的一部分的内容,因此造成 显示内容的损坏。当采用专利文献1中公开的传统方法时,创建者可以在描 绘处理之前预先准备不会造成显示损坏的完整数据。
而且,例如,当用户通过使用蜂窝电话终端等下载游戏内容等时,在执 行内容软件的描绘处理的时刻,用户可以利用这样的现有技术来实时地判定 是否可以保持显示速率。然而,这样的现有技术不能提供用于保持显示速率 本身的具体对策。
具体地,蜂窝电话终端范围的机型差别很大,并且很可能的是,安装到 各个蜂窝电话终端用于描绘的描绘引擎的描绘能力应当每种机型极大地不 同。因此,即使当准备了适应于特定机型以便保持显示速率的内容(诸如游 戏等)时,也会发生这样的情况:即,因为当机型不同时描绘能力较低,因 此不能正确地再现内容。
而且,当采用专利文献2中的现有技术时,通过执行多边形描绘的抽取 (decimation),可以保持显示的帧速率。然而,当执行所述抽取时,仅基于 所使用的描绘引擎的能力判定三维字符的多边形数目的分配。结果,恐怕不 能总是实现内容创建者能够允许的抽取。换句话说,描绘的多边形的数目被 删除得多于保持显示的帧速率所需求的,因此存在不能显示内容的创建者期 望的图像质量的屏幕的可能性。
本发明的一个目的是提供一种图形描绘装置和图形描绘方法,在应当显 示要求高描绘处理能力的诸如三维图形的运动图像等的情形中,即使当每帧 中用于描绘操作的允许时间较短时,也能够通过保持显示帧速率、抑制显示 内容的损坏并且使得绘制引擎展现最大的处理能力来显示高质量图像。
解决问题的技术手段
一种本发明的图形描绘装置用于按照任意输入命令顺序地描绘诸如图 形、字符、图像等的显示元素,所述显示元素将分别与以时间序列顺序地出 现的多个显示帧同步地被显示,所述图形描绘装置包括:帧缓冲器,其具有 用于多个帧的多个区域,每个区域存储在一个显示帧中显示的显示内容的数 据;描绘帧计数器,其对响应于结束描绘的帧的数目而改变的值进行计数; 显示帧计数器,其对响应于在结束描绘的各个帧中完成在屏幕上显示的帧的 数目而改变的值进行计数;描绘控制部分,用于基于描绘帧计数器的值和显 示帧计数器的值确定在帧缓冲器中是否存在空区域,并且当确定存在空区域 时允许描绘下一帧中的显示元素;描绘必需时间预测部分,用于当描绘控制 部分允许描绘时预测描绘所需时间;和描绘省略控制部分,其基于显示帧计 数器的值、帧的显示周期和由描绘必需时间预测部分所预测的描绘所需时间, 确定在显示之前描绘是否完成,并且当确定在显示之前描绘没有完成时,通 过省略随后的描绘命令的执行来执行下一帧的描绘处理。
根据这一配置,帧缓冲器具有存储显示内容的数据并且对应于多个帧的 区域。因此,在屏幕上显示各个帧中的图像之前,将描绘处理应用于帧缓冲 器的相应区域,并且可以在需要的定时在屏幕上显示其描绘操作完成的各个 区域中的帧缓冲器的内容。结果,当在屏幕上显示一帧中的图像时,可以分 别地执行多个其它帧中的图像的描绘操作。例如,即使当在预定帧周期中在 屏幕上顺序地显示每一帧中的图像时,一帧时间中描绘的内容不限制在一帧 内,并且如果对于实际描绘处理能力存在空间,则可以在一帧时间内描绘范 围在两个帧或更多帧上的图像。换句话说,如果完成了接着将要在某一定时 显示的帧中的显示内容的描绘,则可以开始将要在下一帧之后显示的显示内 容的描绘。结果,通过减少不实际执行描绘操作的等待时间,能够有效地执 行描绘处理,并且因此描绘引擎的处理能力能够展现最大的能力。
在这种情况下,帧缓冲器上区域的数目是有限的,并且因此必须以循环 的方式分别重复地顺序使用特定数目的区域。由此,当每个帧中显示的显示 元素的数目相对较小,而不是实际的描绘处理能力时,则恐怕在完成描绘之 后,通过另一描绘处理将描绘内容的覆盖应用于显示仍未结束的帧中的区域。
为了防止所述情形,提供描绘帧计数器、显示帧计数器和描绘控制部分。 描绘帧计数器对响应于结束描绘的帧的数目而改变的值进行计数。显示帧计 数器对响应于结束描绘的各个帧中完成在屏幕上显示的帧的数目而改变的值 进行计数。描绘控制部分根据描绘帧计数器的值和显示帧计数器的值来确定 在帧缓冲器上是否存在空区域(其中保存了已完成其显示的数据的区域被认 为是空区域),并且当确定存在空区域时允许描绘下一帧中的显示元素,
同时,当在帧缓冲器上的各个区域上描绘将要显示的各种显示元素之后 应用在屏幕上显示各个区域中的内容的处理时,在屏幕上显示各个区域中的 内容之前必须立即结束每显示帧的描绘处理。然而,对于所采用的描绘引擎 的每种类型,实际的描绘处理能力是不同的,并且先前不假定作为描绘对象 的描绘命令和数据的实际描绘处理需要的所需时间。因此,不能总是在有限 的时间内(直到所关注帧的显示开始为止)处理了作为描绘对象的所有描绘 命令。
因此,描绘省略控制部分基于显示帧计数器的值、帧的显示周期、和由 描绘必需时间预测部分预测的描绘所需时间,确定在显示之前描绘是否完成, 并且当在显示之前描绘未完成时通过省略随后的描绘命令的执行来执行下一 帧的描绘处理。因此,在可以在到所关注帧的显示定时为止完成描绘的范围 内,可以执行最大描绘处理。结果,即使准备了大量的描绘命令来显示高质 量图像,在每一帧的允许时间内也可以打断(punctuate)描绘处理,并且结果可 以将显示图像的总质量维持为一般。
而且,在本发明的图形描绘装置中,描绘必需时间预测部分基于指示关 注的帧中的描绘内容的描绘命令的列表,估计用于一帧中的描绘的所需时间, 作为指示预先分配给列表中包含的各个描绘命令的执行所需时间的常数的累 积值。
根据该配置,计算了当执行各个描绘命令时检测到的所需时间的累积值。 因此,即使当实际采用的描绘引擎的描绘处理能力改变时,也能够精确地估 计用于一帧中的描绘的所需时间。
而且,在本发明的图形描绘装置中,描绘必需时间预测部分基于指示关 注的帧中的描绘内容的描绘命令的列表,估计用于一帧中的描绘的所需时间, 作为指示当执行列表中包含的各个描绘命令时检测到的所需时间的累积值。
当预定描绘引擎执行作为处理对象的各个描绘命令时需要的所需时间取 决于描绘引擎自身的处理能力和描绘命令的类型而极大地变化。当采用处理 能力已知的描绘引擎时,通过基于每种描绘命令可以指定的常数做出的计算, 可以估计每个描绘命令的所需时间。
根据这样配置,通过计算对每种帧描绘命令类型指定的常数的累积值, 可以估计用于一帧中的描绘操作的所需时间。
而且,本发明的图形描绘装置还包括:绘制命令列表保存部分,其保存 指示各个帧中的描绘内容的描绘列表的列表,并且对于每个描绘命令保存指 示与列表中的两种或更多种优先级相关的类别的优先级信息;其中所述描绘 控制部分基于相关优先级和执行描绘的描绘引擎的处理能力,确定在绘制命 令列表保存部分中保存的列表中包含的各个描绘命令是否能够执行描绘,并 且省略执行满足预定条件的描绘命令。
当在帧缓冲器上的各个区域上描绘将要显示的各种显示元素之后应用在 屏幕上显示各个区域中的内容的处理时,在屏幕上显示各个区域中的内容之 前必须立即结束每显示帧的描绘处理。然而,对于所采用的描绘引擎的每种 类型,实际的描绘处理能力是不同的,并且先前不假定作为描绘对象的描绘 命令和数据的实际描绘处理需要的所需时间。因此,不能总是在有限的时间 内(直到所关注帧的显示开始为止)处理了作为描绘对象的所有描绘命令。
然而,因为期望只要可能就应当显示较高质量的图像,因此必须以尽可 能高的精度详尽地(extensively)准备显示对象的数据(描绘命令的列表)。然 而,可能发生这样的情形:由于实际采用的描绘引擎的描绘处理能力的限制, 不能在允许的时间内执行所有描绘命令。在这种情形下,导致显示内容的损 坏,因此存在不显示内容创建者(例如游戏创建者)期望的质量的屏幕的可 能性。
根据这一配置,可以针对每个描绘命令,将优先级信息提供给列表中的 描绘命令。因此,可以优先地处理具有高优先级的描绘命令,从而尽可能地 不省略描绘。而且,基于描绘引擎的优先级和处理能力,确定是否可以执行 描绘操作。因此,采用其处理能力被设定为高的描绘引擎的装置也能够以不 省略具有低优先级的描绘的方式处理具有低优先级的描绘命令。结果,内容 创建者可以将他或她自己的意图(即使描绘引擎的性能较低也基于优先级显 示的内容)反映到每个描绘命令的优先级,并且可以抑制显示内容的损坏。
而且,一种本发明的图形描绘方法用于按照任意输入命令顺序地描绘诸 如图形、字符、图像等的显示元素,所述显示元素分别与以时间序列顺序出 现的多个显示帧同步地显示,所述方法包括:采用帧缓冲器,在该帧缓冲器 中提供了用于存储在一个显示帧中显示的显示内容的数据的区域,以便对应 于多个帧;对响应于结束描绘的帧的数目而改变的第一值进行计数;对响应 于在结束描绘的各个帧中完成在屏幕上显示的帧的数目而改变的第二值进行 计数;基于第一值和第二值确定在帧缓冲器上是否存在空区域,并且当存在 空区域时,允许随后帧中的显示内容的描绘处理并且预测描绘所需时间;和 基于第二值、帧的显示周期和预测的描绘所需时间,确定在显示之前是否完 成了描绘,并且当在显示之前没有完成描绘时通过省略随后的描绘命令的执 行来继续下一帧的描绘处理。
根据这一方法,应用这样的控制:即,确定在显示之前是否完成描绘, 并且当预测在显示之前没有完成描绘时,所述处理通过省略随后的描绘命令 的执行而继续到下一帧中的描绘处理。因此,在描绘可以追上所关注的帧的 显示定时的范围内可以执行最大描绘处理。结果,即使准备了大量的描绘命 令来显示高质量图像,也可以在每帧的允许的时间内打断描绘处理,并且结 果,所显示图像的总质量可维持在合理的级别。
本发明的优点
根据本发明,应用下述控制:在应当描绘诸如三维图形等的运动图像(其 需要高描绘处理能力)的情形下,即使当用于每帧中的描绘操作的允许时间 较短时,确定在显示之前是否完成描绘,并且随后如果在显示之前未完成描 绘,则所述处理通过省略随后的描绘命令的执行来继续随后帧中的描绘处理。 结果,可以保持显示帧速率,并且也可以抑制显示内容的损坏,因此可以将 显示图像的总质量维持在一般。而且,通过使得绘制引擎展现最大的处理能 力,能够显示高质量图像。
附图说明
[图1]方框图示出了根据实施例的图形显示装置的硬件配置的示例。
[图2]流程图示出了图1中所示的装置的主要部分的操作示例。
[图3]时间图示出了图1中所示的装置的操作以及现有技术中的操作的示 例。
[图4]时间图示出了图1中所示的装置的操作示例。
[图5]时间图示出了图1中所示的装置的操作以及现有技术中的操作的示 例。
[图6]方框图示出了用来检测描绘必需时间的构成元件的具体示例。
[图7]示意图示出了描绘命令列表的结构性示图。
[图8]流程图示出了图1中所示的装置的主要部分的操作示例。
附图标记的描述
10    图形处理部分
11    微处理器
12    多边形描绘引擎
13    描绘时间检测部分
14    描绘时间累积计算部分
15    描绘计数器
16    显示引擎
17    显示计数器
20    描绘命令保存部分
21    描绘命令列表
30    显示装置
40    环形缓存器
41    存储区域

具体实施方式

下文中,将参考图1到图8来解释本发明的图形描绘装置和图形描绘方 法的一个具体实施例。
图1是示出一实施例中的图形显示装置的硬件结构的示例方框图,所述 图形显示装置中安装了实施例中的图形描绘装置。图2是示出图1中所示的 装置的主要部分的操作示例的流程图。图3是示出图1中所示的装置的操作 以及现有技术的操作的示例时间图。图4是示出图1中所示的装置的操作示 例的时间图。图5是示出图1中所示的装置的操作以及现有技术的操作的示 例的时间图。图6是示出用来检测描绘必需时间的构成元件的具体示例的方 框图。图7是示出描绘命令列表的结构性示图的示意图。图8是示出图1中 所示的装置的主要部分的操作示例的流程图。
图1中所示的图形显示装置包括图形处理部分10、描绘命令保存部分20、 显示装置30和环形缓冲器40。而且,图形处理部分10包括微处理器(CPU) 11、多边形描绘引擎12、描绘时间检测部分13、描绘时间累积计算部分14、 描绘计数器15、显示引擎16和显示计数器17。
在这种情况下,图形显示装置对应于例如蜂窝电话、PDA、便携式游戏 机等等。
图形处理部分10是执行关于图形的各种处理的硬件。显示装置30是配 备有例如类似液晶显示装置的二维显示屏幕的显示装置。描绘命令保存部分 20是用于保存描绘命令列表21的数据的存储装置,在所述描绘命令列表21 中,与将要在屏幕的每个帧中显示的各个显示元素(诸如多边形等的图形) 对应的描绘命令被排列为表格。环形缓冲器40是用于对于每一帧保存将要在 显示装置30的屏幕上显示的显示内容的数据的存储装置。
在图1所示的具体示例中,三个存储区域41(0)、41(1)、41(2)被 提供在环形缓冲器40上。存储区域41(0)、41(1)、41(2)可以分别保存 与独立帧的显示内容对应的数据。在三个存储区域41(0)、41(1)、41(2) 与显示装置30的连续出现的各个显示帧相关联的情况下,顺序且循环地使用 这些存储区域,并且结果,这些存储区域充当环形缓冲器。也就是,这些存 储区域41(0)、41(1)、41(2)以顺序41(0)、41(1)、41(2)、41(0)、 41(1)、41(2)...与各个显示帧相关联。
微处理器11产生描绘命令作为判定显示内容的数据,并且将它们存储在 描绘命令保存部分20中作为描绘命令列表21。而且,微处理器11执行图形 处理部分10的整体控制。
多边形描绘引擎12是专用于描绘处理的硬件,并且根据在描绘命令列表 21中存在的各个描绘命令而执行多边形描绘。由多边形描绘引擎12描绘的 结果被存储在环形缓冲器40上的任意一个存储区域41中。而且,当多边形 描绘引擎12从描绘命令列表21中取出描绘命令时,依靠DMA(直接存储器 存取)而没有微处理器11的干预,将描绘命令的数据从描绘命令保存部分20 传送到多边形描绘引擎12。而且,多边形描绘引擎12被设计来当在多边形 描绘引擎12中完成一系列描绘处理时,对微处理器11的处理发起一个中断。
显示引擎16是用于执行在显示装置30的屏幕上显示所描绘内容的处理 的专用硬件。具体地,显示引擎16执行将环形缓冲器40上的各个存储区域 41中的内容(数据)高速传送到显示装置30上的存储器的处理。而且,每 当完成将一帧数据传送到显示装置30的处理时,显示引擎16向微处理器11 给出预定完成通知中断作为帧同步中断。
显示计数器17是对已经在显示装置30上显示的帧的数目进行计数的计 数器。这里,显示计数器17的内容用变量L表示。描绘计数器15是对已经 结束了描绘处理的帧的数目进行计数的计数器。这里,描绘计数器15的内容 用变量K表示。描绘时间检测部分13对当多边形描绘引擎12执行每个描绘 命令时所需的描绘必需时间进行计数。描绘时间累积计算部分14执行关于描 绘时间检测部分13计数的描绘必需时间的累积处理。
图2中示出了关于图1中所示的图形显示装置的主要处理的控制过程的 具体示例。图2中所示的处理由微处理器11控制,并且由表达正被相互独立 操作的程序的处理内容的描绘线程和显示线程组成。
首先,下面将解释图2中所示的显示线程的算法。在这种情况下,不能 开始显示操作,除非完成了可显示的描绘数据。因此,通常显示线程的开始 从描绘线程延迟一指定时间,或者显示线程在可显示数据完成之后开始。
当开始显示线程时,在初始化步骤,显示计数器17的内容(L)被初始 化为0(S31)。然后,处理经过结束判定步骤(S32),并且它等待在周期T 中生成的显示帧的中断进入微处理器11(步骤S33)。在这种情况下,周期T 表示显示帧的更新周期,并且被设定为例如大约1/60秒的预定时间。
当显示帧的中断进入时,处理继续到步骤S34。然后,通过使用显示引 擎16将在环形缓冲器40(存储区域41(0)、41(1)、41(2)中的任意一个)中保 存的、与当使用环形缓冲器40的循环数目N(在图1的示例中,N=3)作为 基数通过余数系统(residue system)指示显示计数器17的内容(L)时获得 的索引(变量)对应的数据传送到显示装置30。然后,在屏幕上显示数据 的内容。
在步骤S35中递增显示计数器17的内容(L)。然后,更新接着将被显示 的环形缓冲器40的索引(S36)。这个索引是如上所述当使用循环数目N作 为基数通过余数系统指示显示计数器17的内容(L)的值时获得的。然后, 处理返回到判定显示结束的步骤(S32)。当检测到显示结束时,结束显示线 程。
简言之,当重复地执行图2所示的显示线程时,每当显示帧的中断进入 时,环形缓冲器40的存储区域41(0)、41(1)、41(2)、41(0)、41(1)、41(2)、... 的内容被顺序地传送到显示装置30并且随后被显示在屏幕上。这样的情况解 释为:每当显示帧的中断进入时,顺序地传送环形缓冲器40的存储区域41(0)、 41(1)、41(2)、41(0)、41(1)、41(2)、...的内容。在这种情况下,可以采用这 样的构造:当显示帧的中断进入预定次数时,可以顺序地传送环形缓冲器40 的存储区域41(0)、41(1)、41(2)、41(0)、41(1)、41(2)、...的内容。作为显示 帧的中断周期,用作液晶屏幕的扫描周期的1/60秒是普遍的,因此图像一秒 更新60次。在这种情况下,根据显示图像的内容,图像可以一秒更新30次、 20次或15次。为了调节以这种方式一秒更新图像的次数,如果可以采用当 显示帧的中断进入两次时顺序地传送环形缓冲器40的存储区域41的内容的 配置,则图像可以一秒更新30次。而且,如果可以采用当显示帧的中断进入 三次时顺序地传送环形缓冲器40的存储区域41的内容的配置,则图像可以 一秒更新20次。而且,如果可以采用当显示帧的中断进入四次时顺序地传送 环形缓冲器40的存储区域41的内容的配置,则图像可以一秒更新15次。这 时,当显示帧的中断进入两次、三次或四次时,可以更新显示计数器L。
接着,下文中将解释图2中所示的描绘线程的算法。这里,在图2中所 示的比较处理中的相应步骤中,“!=”表示用于判定左边和右边的值是否彼 此不等的比较,“||”表示逻辑和(OR),“==”表示用于判定左边和右 边的值是否彼此相等的比较(K=0)。
当开始描绘操作时,在初始化步骤中各个计数器及其它被清除为0(S11)。 然后,所述处理经过结束判定步骤(S12),并且随后微处理器11在第K帧 中产生描绘命令列表21(S13)。接着,描绘命令列表21被存储在图1中所 示的描绘命令保存部分20中。
接着,在步骤S14中,将指示多边形描绘引擎12目前描绘的环形缓冲器 40的目的存储区域41的索引(指示写位置、即描绘位置的变量)与指示从 中进行显示或者目前从中传送显示数据的存储区域41的索引(指示读取位 置、即显示位置的变量)进行比较,然后在环形缓冲器40的机制上判定描绘 索引是否没有超过显示索引。
作为一种简单的判定方法,当描绘与显示之间的索引的差值在使用循环 数N作为基数基于余数系统观看时不是0时(如果满足((K-L)%N!=0),在环 形缓冲器40中不造成重叠。因此,既不会造成超过(passing),也不会造成 追上(catching-up),因此安全地执行了描绘操作。将描绘处理应用于环形缓 冲器40的空区域(其中保存了已被显示的不需要的数据的区域)。在这种情 况下,所述处理无条件地经过该判定步骤(S14),并且继续到下一步骤,以 便在开始描绘线程之后,即,当描绘计数器15的内容(K)是0时,立即执 行描绘命令。当检测到追上为判定结果时,所述处理不继续到执行描绘命令 的步骤,并进入等待步骤(S15),直到显示计数器L被更新并且描绘缓冲器 与显示缓冲器之间的操作的重叠被消除为止。后面将描述需要等待的原因。
接着,下面将描述执行描绘命令的步骤。当多边形描绘引擎(描绘引擎) 12从微处理器11接收允许执行描绘操作的命令时,该引擎经由DMA传递从 描绘命令保存部分20的缓冲器中获取描绘命令列表21的命令序列,并且根 据命令内容执行描绘处理(S16)。
而且,如图1所示,描绘时间检测部分13连接到多边形描绘引擎12, 并且描绘时间检测部分13监视多边形描绘引擎12的操作状态和时间。然后, 在步骤S16,描绘时间检测部分13检测在开始执行每一描绘命令之后直到结 束该命令为止所需的时间δ。
而且,与描绘时间检测部分13连接的描绘时间累积计算部分14顺序地 累积描绘时间检测部分13在各个时间点检测的所需时间δ,并且计算累积时 间t(S17)。该累积时间t表示从当开始图2中的描绘线程时的时间点开始的 累积消逝时间。
然后,所述处理接续到下一步骤,其中判定多边形描绘引擎12现在正描 绘的第K帧中的处理直到显示定时是否可以完成。也就是,在步骤S18,将 描绘时间累积计算部分14计算的累积时间t与表示在显示线程中进行显示的 时间的(L×T)进行比较。其中L是显示计数器的值,T是显示的帧周期。
如果时间t小于(L×T),则在进行显示的时刻之前可以结束描绘,因此 所述处理继续到下一步骤S19。如果判定所述描绘不能在显示时间之前结束, 则判定继续描绘是毫无意义的,因为现在正努力描绘的数据直到显示时间都 无法完成。目前被处理的帧的描绘被中断,并且所述处理跳转到计数器K的 更新步骤(S21),以便行进到下一帧中的描绘处理。后面将参考图5给出为 什么执行跳转的原因的详细解释。
如果t小于(L×T),则在下一步骤S19中判定目前被描绘的第K帧是 否完成,即,是否结束描绘命令列表21上的所有描绘命令的执行。如果判定 第K帧未完成,则所述处理继续到步骤S20以便执行下一描绘命令。然后, 从描绘命令列表21中取出下一描绘命令。然后,重复步骤S16之后的所述处 理,就象一个循环。
如果判定完成了第K帧中的描绘,则所述处理从步骤S19行进到步骤 S21,然后更新描绘计数器15的值K。接着,其中在下一步骤S22中执行描 绘的目标缓冲器(环形缓冲器40上的一个被关注的存储区域41)被切换到 与下一索引对应的缓冲器。在这种情况下,通过使用余数系统利用N作为基 数(K%N)来表示描绘计数器15的值K来获得该索引的值。
在图2中所示的描绘线程的处理中,作为描绘目的的目标缓冲器被切换, 随后所述处理被循环到结束判定步骤(S12),以便无中断地进行下一帧中的 描绘操作,随后继续下一帧中的描绘,除非所述处理到达最后一帧。下文中 将参考图3来解释这样做的原因。
图3示出了在图1中所示的图形显示装置中的描绘操作和显示操作的定 时的具体示例。图3(a)示出了当执行图2中所示的操作时的定时,图3(b) 示出了当执行普通(传统)操作时的定时。
在图3(b)中所述的操作示例中,描绘处理在每帧的帧起始时间处开始, 并且描绘处理在一帧所允许的时间(帧间隔T内)已消逝之前结束。然后, 其描绘处理结束的显示内容的数据与下一帧开始处的定时相一致地被显示。 因此,描绘对象的数据(对应于描绘命令列表21中的内容)必须预先准备得 更小一些,从而在消逝时间超过帧间隔T之前可以结束描绘处理而不会失败。 结果,发生多边形描绘引擎12在期间停止描绘处理的“剩余时间”,直到在 每一帧中的描绘处理完成之后开始下一帧为止。因此,在执行描绘处理中无 法有效地利用帧间隔T的整个期间(full span),并且即使利用了其处理能力 较高的多边形描绘引擎12,也不能执行大量的描绘命令。结果,通过执行图 2中所示的操作能够实现有效的描绘处理的执行。
也就是,在图3(a)中所示的操作示例中,在多边形描绘引擎12结束一 帧中的描绘处理之后,所述多边形描绘引擎12不等待下一帧开始的定时就开 始随后帧中的描绘处理。结果,不发生图3(b)中所示的“剩余时间”,并 且可以有效利用有限时间(帧间隔T)的整个期间来执行描绘处理。在图1 所示的图形显示装置中,多个存储区域41被提供给环形缓冲器40,因此能 够同时地执行关于除了目前所显示的帧以外的多个帧的描绘处理。因此,当 大量描绘命令被预先准备为描绘命令列表21时,通过有效地使用“剩余时 间”,能够描绘复杂精细的画面。
然而,因为环形缓冲器40上的存储区域41的数目是有限的,因此,很 可能造成图4(b)中示出的问题,除非应用特殊控制。也就是,在图4(b) 所示的示例中,假设多边形描绘引擎12能够在一个帧时间(帧间隔T)中执 行三(N)帧中或更多帧中的显示内容。因此,在一帧的描绘时间内在存储 区域41(0)、41(1)、41(2)中顺序写入显示内容之后,在存储区域41(0) 的内容被显示在屏幕上之前,必须将随后帧中的显示内容写入存储区域 41(0)。结果,存在先前被写入到存储区域41(0)的显示内容由于覆盖而被破坏 的可能性。
因此,通过执行图2中所示的描绘线程中的处理可以防止所述问题的爆 发。也就是,当在图2中的步骤S14中确定描绘处理是否没有超过显示,即, 在环形缓冲器40中是否存在除了其中其显示未完成的数据未被写入的区域 之外的空区域时,可以防止由上述覆盖造成的数据破坏。
例如,在图4(a)中所示的操作示例中,在多边形描绘引擎12在一帧的 描绘时间内将显示内容顺序地写入存储区域41(0)、41(1)、41(2)之后, 所述多边形描绘引擎12中断描绘处理并且等待直到下一帧开始的定时为止, 以便防止存储区域41(0)中的数据的破坏(对应于图2中的S15)。
同时,甚至在容许量在某种程度上被设定为一帧中的描绘时间的情形下, 当画面(待显示的内容)变得更复杂精细时,发生描绘处理的完成无法追上 所述帧的显示时间的情形。
例如,在图5(b)中所示的操作示例中,将要在时间ta和时间tb之间 的间隔(T)中处理的帧的描绘在时间tb处未完成。描绘处理直到显示起始 定时(tb)都无法完成,因此,在屏幕上显示不完整的画面。而且,由于先 前帧中的描绘处理在时间tb处仍继续,因此在时间tb与时间tc之间的间隔 (T)中将要处理的帧中的描绘处理的起始被延迟。因此,很有可能随后帧中 的描绘处理无法追上显示定时。结果,造成实际上所显示的画面的内容的破 坏。
然而,通过在图2中所示的描绘线程的处理中执行步骤S18可以避免这 种问题的发生。换句话说,当某一帧中的描绘处理的执行时间经过显示所关 注的帧的定时或者当判定描绘处理直到那个定时才完成时,省略随后的描绘 命令的执行,并且随后所述处理继续到后续帧中的描绘处理。
例如,在图5(a)中所示的操作示例中,在将要在时间ta与时间tb之间 的间隔(T)中处理的帧中的描绘操作直到时间tb未结束。因此,那个帧中 的描绘在流逝的时间经过时间tb时的时间点处被中断,并且然后所述处理继 续到后续帧中的描绘操作。结果,显示不适合于时间ta与时间tb之间的间隔 的特定帧中的不完整画面。在这一事件中,所述不完整画面对后续帧中的描 绘操作没有影响,并且显示内容的破坏被抑制到最低限度。
在图2中所示的描绘线程的步骤S18中,在描绘处理经过显示开始的时 刻的时间点处中断这个描绘处理。在这种情况下,如果步骤S18中的比较内 容变化,则在描绘处理经过显示开始时的时刻之前可以中断这个描绘处理。
图6中示出了可被安装到图1中所示的图形显示装置的描绘时间检测部 分13的配置示例。与图1中所示的配置相同,图6(a)中所示的配置示例被 构造成描绘时间检测部分13监控多边形描绘引擎12的操作状态和时间,并 且测量实际描绘处理所需的必需时间。
相反,在图6(b)中所示的配置示例中,假设下列情况:描绘时间检测 部分13掌握从描绘命令列表21输入到多边形描绘引擎12的各个描绘命令的 内容,并且从所述内容估计所述描绘处理所需的必需时间。具体地,提供用 于预先保存常数(其对于每种类型的描绘命令分别表示执行该命令所需的时 间)的数据库,并且描绘时间检测部分13基于检测的描绘命令的类型访问所 述数据库,并估计描绘操作的必需时间。这里,实际描绘必需时间根据所采 用的多边形描绘引擎12的性能而变化。然而,甚至当从其性能各自不同的多 种多边形描绘引擎12中检测到描绘必需时间时,数据库中的常数也可以通过 使用对应于实际采用的多边形描绘引擎12的性能的校正因数来校正,结果可 以估计确切的必需时间。
顺便提及,当应当处理与所采用的多边形描绘引擎12的性能相比较太过 繁重的(大量)描绘命令时,在每帧所允许的有限时间内无法处理所有描绘 命令。因此,例如发生这样的情况,如图5(a)所示,即,多边形描绘引擎 12中途不得不中断描绘操作。在这种情况下,不管内容创建者的意图如何, 取决于多边形描绘引擎12的性能而显示不完整的画面。结果,不可能避免显 示内容的外观布局变得更糟的这种情形。
下文中将解释解决上述问题的方法。如图7所示,例如,描绘命令保存 部分20上保存的描绘命令列表21包含优先级信息和描绘命令,所述优先级 信息各自与描绘命令相关联。在图7中所示的示例中,假设可以分配包括“优 先级A”和“优先级B”两种优先级的情况。例如,“优先级A”作为高优先 级被分配给用于描绘在屏幕上显示的显示元素当中相对大的元素、显眼元素 (如位于其它元素的前侧的元素)或者具有大的影响的元素的描绘命令。相 反,“优先级B”作为低优先级被分配给用于描绘相对小的元素、或者不显眼 元素(如位于其它元素的后侧的元素)的描绘命令。
结果,当在对硬件性能具有许多限制的装置(诸如蜂窝电话等)中执行 应用程序(例如游戏内容等)时,内容创建者可以利用优先级的分配来实现 在所述创建者考虑外观布局之后抽取(decimation)描绘操作和保持显示速率 的方法。
也就是,优先处理具有“优先级A”的描绘命令1到4。然而,可以应 用这样的控制:当由于多边形描绘引擎12的基本潜能,描绘操作无法迅速以 保持帧速率时,具有“优先级B”的描绘命令5以及下列等等可以跳过描绘 操作,并且可以变换到执行下一个描绘命令。换句话说,内容创建者从一开 始可以将被分配“优先级B”的描绘命令指定为构成一个屏幕中的这样的对 象,“即使没有特别显示这样的对象,也可以向玩家(player)通知屏幕意图;或 者如果显示了这样的对象,则能够给出丰富的表现,但是当没有在屏幕上显 示这样的对象时,也不会引起任何问题”。因此,可以判定反映内容创建者意 图的显示内容。
当存在包括如图7中所示的优先级的信息的描绘命令列表21时,微处理 器11的控制内容可以与图8中所示的操作示例类似地改变,而不是与图2中 所示的操作示例类似地改变。图8中所示的操作示例与图2中的操作示例的 不同之处在于添加了步骤S46和S47,但是剩余的步骤类似于图2中的那些 步骤。
在图8中的步骤S46,判定处理对象的描绘命令的优先级对应于“优先 级A”和“优先级B”中的哪一个。如果优先级是“优先级B”,则所述处理 继续到下一步骤S47。如果优先级是“优先级A”,则所述处理继续到下一步 骤S48。
在步骤S47,判定包括多边形描绘引擎12作为主体的这种装置的硬件是 否具备足以执行具有“优先级B”的描绘命令的性能。换句话说,当安装了 其能力较高的硬件时,该硬件在处理中具有余量(margin)。因此,通过执行 具有相对较低的优先级的描绘命令可以显示包含大量信息的高质量画面。相 反,当安装了其能力较低的硬件时,该硬件在处理中不具有余量,因此,可 以省略具有低优先级的描绘命令的执行。结果,可以应用这样的控制,即可 以防止其中处理未及时完成的情形的发生,并且也可以不省略地执行具有高 优先级的最低数量的描绘命令,以反映内容创建者的意图。
在这种情况下,根据所采用的多边形描绘引擎12的类型及其操作频率, 可以指定在步骤S47中检测到的硬件的性能。因此,例如,可以将指示多边 形描绘引擎12的类型的信息和指示多边形描绘引擎12的操作频率的信息作 为基本信息预先登记在ROM(只读存储器)中。然后,一旦执行步骤S47, 就可以基于从ROM读取的信息检测硬件的性能,并且随后可以将该结果与 预先与“优先级B”相关联的常数(阈值)相比较。
在图7和图8中所示的具体示例中,假设其中将两种类型的“优先级A” 和“优先级B”预备为优先级的情况。但是可以将三种类型或者更多类型的 优先级分配给相应的描绘命令。在这样的情况下,响应于优先级的可分配数 目,可以进一步添加与图8中的步骤S46、S47中的处理类似的处理。
参考特定实施例详细解释了本发明。但是对于本领域的普通技术人员明 显的是,在不背离本发明的精神和范畴的情况下,可以应用各种变化和修改
工业实用性
本发明能够使得即使当通过在并未总是安装高性能多边形描绘引擎的设 备(例如蜂窝电话终端或移动信息终端(PDA))中执行3D游戏应用程序等来 显示高质量图形时,绘制引擎展现最大的处理能力。因此,即使当对于每帧 中的描绘操作允许的时间较短,也可以保持显示帧速率,并且也可以抑制显 示内容的损坏。
QQ群二维码
意见反馈