利用存储控制单元显示图像的制作方法

文档序号:2616482阅读:183来源:国知局
专利名称:利用存储控制单元显示图像的制作方法
技术领域
本发明涉及一种显示图像的方法。本发明还涉及用于显示图像的装置。
背景技术
图l显示了用于产生动画的一种已知方法。通过在计算机(没有显示)
上运行的程序产生关于每个帧的图像数据2。为了产生动画,计算机每次 将动画的一个帧写入帧緩存器4中。帧緩存器4具有足够的空间来仅仅存 储一个图像帧。将帧緩存器4的内容从图像的顶部到图像的底部按水平行 8传送到显示器6。计算机并行地把对应于下一帧的图像数据2从图像顶部 到图像底部按水平行10写到帧緩存器4。计算机需要仅写到帧緩存器4的 已经被复制到显示器6的部分中。
图像撕裂是一种在显示计算机产生的动画中的众所周知的问题。图2 显示了图l象撕裂的一个例子。当图像数据2向帧緩存器4的写入超it^帧 緩存器4向显示器6的传送时发生图像撕裂,并且反 之亦然。这里,计算 机因此写入到还没有在显示器6上刷新的图像部分。于是,显示器6包含 位于显示器的顶部12的一个帧10的图^f象数据,以及位于显示器底部16 的下一帧14的图4象数据。当两个帧IO, 14的内容不同时,结果是撕裂的 图# ,这对用户显示为晃动。
当存储在帧緩存器4中的图像是横向格式时可能发生另一问题,这在 图3进行了示意。计算机以水平线10从上到下写入对应于横向帧的图像数 据2。然而图像帧,皮旋转从而将其显示在纵向取向的显示器6,并且因此, 按垂直行8从左到右传送帧的内容。因此,由于一直发生两个连续帧之间 的重叠,不可能使用上述技术正确地更新帧。
避免该问题的最简单方法是把图像数据2的完整帧写入到帧緩存器4, 并且然后在刷新显示器6期间,停止向帧緩存器4写入图像数据2。由于 极大地降低了帧速率,该方法不能令人满意。
用于将图像撕裂减小到最小的一种技术被称为"双緩存"。在该技术 中,4吏用两个緩存器,其中一个緩存器被称为前部緩存器,另一緩存器初L 称为后部緩存器。后部緩存器用于递交看不见的,即,没有被显示的帧。 前部緩存器存储之前递交的完整的帧。将前部緩存器的内容传送到显示器 从而被用户观看。当后部緩存器的帧是完整的,即,帧中充满图像数据时, 交换前部和后部緩存器。然后将下一帧写入到新的后部緩存器,同时将前 部緩存器的数据发送到显示器。只把完全递交的图^^呈现给用户,因此消 除了图像撕裂。理想的,前部和后部緩存器的交换即时的发生。然而,在 实际中,在緩存器交换时存在一个较小的延时。这会降低帧速率。双緩存 技术还需要传统系统双倍数量的存储器,并且因此建立该系统比较昂贵。
由于数据从不会被递交到用于把数据传送到显示器的相同帧緩存器, 双緩存器允许更加灵活的显示方向,从而不同的读写方向并不重要。
发明者清楚提供一种用于图像显示的改进的方法,在不需要并行帧緩 存器的情况下避免图像撕裂,这是非常有利的。

发明内容
本发明的第一方面提供了一种显示图像的方法,包括 使用存储控制单元把包括二维存储单元矩阵的緩存器分割成至少第一
块和第二块;
把数据写入到所述块的第一块;以及
把所述块的第一块的所述数据复制到显示器的对应块,
其中对所述块的相继块重复执行所述写入和复制步骤,以及其中到所
述块的数据写入与从所述块复制数据的方向垂直。
这允许没有图像撕裂地显示图像,同时避免了对两个并行帧緩存器的
需要,并且当需要支持横向和纵向方向时可以使用。
本发明的另一方面提供了一种显示图像的装置,包括 緩存器,包括二维存储单元矩阵; 显示器;以及
存储控制单元,被配置为把所述緩存器分割成至少第 一块和第二块, 把数据写入所述块的第一块,并把所述块的第一块中的数据复制到显示器 的相应块,
其中所述存储控制单元还被配置为顺序地把数据写入到所述块的相继 块中,并顺序地为所述块的相继块复制数据,并且其中到所述块的数据写 入与从所述块复制数据的方向垂直。
现在将通过相应的附图,仅仅作为例子,描述本发明的实施例。


在附图中
图1示意了依照现有技术显示纵向图像; 图2示意了显示器中图像撕裂的一个例子; 图3示意了试图使用图1中的现有技术系统显示横向图像; 图4是依照本发明用于显示图像的装置的示意图; 图5a和5b是示意依照本发明的图4中装置的操作的流程图;以及 图6示意了依照在图4系统的操作的不同时间的緩存器和显示器状态 来显示横向图像。
在附图中,相同的参考标记在全文中表示相同的部件。
具体实施例方式
首先参考图4,图像显示装置17包括存储控制单元18、视频緩存器 20、帧緩存器4和显示器6。图像显示装置构成移动、手持设备(例如移 动电话、智能手机或PDA)的一部分。
存储控制单元(MCU) 18具有连接到各个视频緩存器20、帧緩存器 4以及显示器6的输出控制。视频緩存器20具有数据输出,其被连接到帧
緩存器4的数据输入。帧緩存器4具有数据输出,其被连接到显示器6的 数据输入。
MCU 18控制图像数据2从视频緩存器20到帧緩存器4的写入,以及 图像从帧緩存器4到显示器6的传送以便刷新显示器6。 MCU 18把帧緩 存器4分割成从第l到第4的块61、 62、 63、 64。帧緩存器4并没有被物 理的划分成4块MCU 18控制图像数据2到帧緩存器4的写入,使其被 逐块地执行。MCU 18还控制数据从帧緩存器4到显示器6的传送,使其 被逐块地执行。这样,帧緩存器4被划分成虛拟的块。
视频緩存器20可以由物理存储器构成。可选择的,可以是运行在处理 器上的程序的输出,其中该程序例如在游戏期间实时地产生图像数据。
帧緩存器4可以位于计算机的系统RAM中。可选择的,帧緩存器4 可以位于包含显示器6的分立显示模块中。当帧緩存器4位于计算机的系 统RAM时,并且帧緩存器4的图像是横向格式时,使用旋转技术把帧緩 存器4中的图像传送到显示器6。当帧緩存器4位于具有显示器6的显示 模块时,显示才莫块本身可以处理旋转,并且从帧緩存器4到显示器6的传 送方向与从视频緩存器20到帧緩存器4的传送方向相同。
从视频緩存器20到帧緩存器4的数据传送优选在DMA (直接存旨 问)信道上执行。这允许数据从存储器传送到目的地设备而无需经过CPU。 因此,与其他信道的数据传送相比,这种数据传送可以快速发生。基于同 样的理由,从帧緩存器4到显示器6的数据传送优选的使用DMA信道。
图5a、 5b和6中示意了图4装置的操作。描述了用于处理横向图像的 操作。然而,相同的操作可以用于显示纵向图像。该装置简单地防止了从 视频緩存器20到帧緩存器4的图像数据2写入超过从帧緩存器4到显示器 6的图像块的刷新,并且反之亦然。在下面的实施例中,帧緩存器4并不 位于显示模块中。因此,图像数据2到帧緩存器4的写入方向与数据到显 示器6的写入方向不同。在该例子中,块的数量为n, n等于4。每个块 61、 62、 63、 64包括至少两4亍。
图5A显示了从视频緩存器20到帧緩存器4的第一数据传送过程21a。图5B显示了从帧緩存器4到显示器6的第二数据传送过程21b。第一和第 二数据传送过程21a, 21b并行地发生并且受MCU18控制。第一和第二传 送过程21a, 21通过使用标记来相互通信。帧緩存器4和显示器6的n个 块中的每一个都具有一个标记。用于控制MCU 18以执行第一和第二婆:据 传送过程21a, 21b的步骤的指令,以一个或多个计算机程序的形式存储在 图4移动设备的存储器中。 一个或多个计算机程序可以被提供为在通信链 路上传输的瞬时信号,或者存储在事先安装在移动设备上的可读介质上。 首先参考图5A,通过在步骤22设置除了最后的标记外的所有标记并
清除最后的标记,来启动操作。在步骤23,把ka和ia初始化为l。 ka标识
第一数据传送过程21a当前处理的帧的号码,ia表示第一数据传送过程21a 当前处理的块的号码。在步骤23之后,第一数据传送过程21a预备把现频 緩存器20中的第一块数据写入帧緩存器4中。
在步骤25,判断是否已经设置第i个标记。如果没有设置该标记,则 第一数据传送过程21a再次前进到步骤25的输入。这样,笫一数据传送过 程21a—直保持到第i个标记,皮设定。 一旦步骤25产生肯定的答案,则过 程21a前进到步骤26。这里,对于帧ka的块ia从视频緩存器20写入帧緩 存器4。之后,在步骤27清除第i个标记。随后,步骤28确定ia的值是否 等于n,也就是确定步骤26写入的块是否是帧中的最后一块。如果步骤28 产生否定结果,则步骤29递增ia的值,并且过程然后返回到步骤25的输 入。如果步骤28产生肯定结果,则在过程21a返回到步骤25的输入前, 步骤30将ia的值复位为1,并且递增ka的值。
现在参考图5B,其中显示了第二数据传送过程21b。过程21b涉及帧 緩存器4和显示器6之间的数据传送。
在步骤31, kb的值和ib的值被初始化为1,其中kb的值表示第二数据 传送过程21b正在处理的帧的号码,以及ib的值表示该过程正在处理的块 的号码。过程21b然后前进到步骤32,该步骤确定标记i是否清楚。如果 标记i在第一数据传送过程21a中已经被清除,则标记i是清楚的。如果标 记不清楚,则第二数据传送过程21b返回步骤32的输入。 一旦标记i是清
楚的,则过程21b前进到步骤33。这里,关于帧kb的块ib的第一行,皮从 帧緩存器4更新到显示器6。之后,在步骤34确定ib是否等于l。这样, 步骤34确定在步骤33第一行被刷新的块是否是该帧中的第一块。如果步 骤34产生肯定结果,则在过程21b前进到步骤37之前,在步骤36设置标 记n。如果步骤34产生否定结果,则在过程21b前进到步骤37之前,在 步骤35设置标记i-l。在步骤37,完成帧kb的块ib。
在步骤37之后,在步骤38确定ib的值是否等于n。从而该步骤确定 步骤33和37写入的块是否是帧的最后一块。如果步骤38产生否定结果, 则在第二数据传送过程21b再次前进到步骤32的输入前,在步骤39递增 ib的值。如果步骤38产生肯定结果,则在第二数据传送过程21b前进到步 骤32的输入前,在步骤40将ib的值设置为1以及递增kb的值。
已经描述了由MCU 18操作的第一和第二数据传送过程21a和21b, 下面还将参考图6描述把数据2从视频緩存器20写入显示器6的操作。图 6显示了在第一和第二数据传送过程21a和21b所构成的显示更新过程期 间在视频緩存器20、帧緩存器4以及显示器6之间的传送过程以及它们的 状态。
在图6中,帧緩存器4被分割成从左到右的大小渐增的第一、第二、 第三和第四块61、 62、 63、 64。用对应于两行的数据表示第一块61、对应 于三行的数据表示第二块62、对应于四行的数据表示第三块63、以及用对 应于五行的数据表示第四块64。然而,这仅仅是示意性的目的,并且应当 清楚在实际的实现中可有更多行的数据。而且根据实际的实现,选择块的 数量来提供最佳的方案,并且块的数量可以比4更多或更少,这取决于特 定实施方式。
图6中最上面的图像组示意了在时间h的緩存器状态。这里行8表示 第一帧的第一块,即,kb = l, ib-l的数据从帧緩存器4到显示器6的写 入。 一旦第一块61的第一行被从帧緩存器4写入到显示器6,则发生第一 次中断42。这涉及第二数据传送过程21b的步骤33的完成。然后依照步 骤34和36设置第四标记。行10表示数据从视频緩存器20到帧緩存器4
的写入。在时间tp行10被写入到帧緩存器4的第四块64。因此,先前 已经为第一、第二、第三和第四快中的每一个执行了步骤25到29,并且 已经在步骤27清除了标记1、 2和3。步骤27中对第一标记的清除允许第 二数据传送过程21b——尤其是步骤32准许从帧緩存器4向显示器6刷新 图像数据2的第一块61。 一旦第一块的数据被刷新到显示器,则步骤36 设置第四标记。 一旦第一数据传送过程21a把数据的最后像素写入到帧緩 存器4的第四块64,则发生第二次中断44。这对应于框26的完成。随后, 在步骤27清除与帧的最后块64相关的第四标记。随后,步骤28确定ia 等于n,即,帧的最后一块已经被刷新,从而步骤30将U复位为l并把帧 数ka增加为2。
之后,在时间h,第二数据传送过程21b从帧緩存器4中一一尤其是 从帧緩存器4的第二块62中,将数据8写入显示器6。仅仅在该过程已经 为第一帧写入第二块62之后,第二标记被第一数据传送过程21a的步骤 27清除,这才成为可能。当第二数据传送过程21b已经完成把帧緩存器4 的第二块的第一行写入到显示器6后,发生第三次中断46。这对应于步骤 33的完成。在这时,由于这时ib-2,于是步骤34产生否定结果,步骤35 设置第一标记。第一标记的设置允许第一数据传送过程21a执行步骤25 到26,其中在该步骤写入帧ka = 2的第一块61。这在图6的时间t3进行了 示意。并行地,第二数据传送过程21b将数据8从帧緩存器4的第二块写 入到显示器6。从视频緩存器2到帧緩存器4的第一块的数据刷新10的完 成导致了第四次中断48。这导致了在第一数据传送过程21a的步骤27清 除第一标记。同时,第二数据传送过程21b已经完成从帧緩存器4的第二 块62到显示器6的数据写入8。
由于在时间t3,步骤37已经完成了第二块62,步骤38产生否定结果 并且步骤39将ib的值递增为3。由于在第一数据传送过程21a对前帧的第 三块63的写入数据之后在步骤27清除了第三标记,步骤32显示第三标记 被清除,因此第二数据传送过程21b可以直接执行步骤33。 一旦第三块的 第一行已经被从帧緩存器4刷新到显示器6,则发生第五次中断50。在图
6中显示为第五次中断50发生在时间1 之前。第五次中断50导致了在步 骤35设置第二标记,允许第一数据传送过程21a将数据从视频緩存器20 写入到帧緩存器4的第二块62,在时间t4,第一数据传送过程21a已经完 成将数据写入10到帧緩存器4的第二块62中,并产生第六次中断52。在 该时刻,第二数据传送过程21b还已经完成了把数据从帧緩存器4的第三 块63写入到显示器6。由于在这时第四标记是清楚的,第二数据传送过程 21b可以开始把数据从帧緩存器4的第四块64刷新到显示器6,在该例子 中这样做。
一旦第四块64的第一行已经从帧緩存器4刷新到显示器6,则发生第 七次中断54。这导致了在步骤35设置第三标记,这允许在步骤26第一数 据传送过程21a把第三块63的数据从视频緩存器20写入到帧緩存器4。 这在图6的时间ts示意为10。当第一数据传送过程21a已经完成把第三块 63的数据从视频緩存器20写入到帧緩存器4后,产生第八次中断。这导 致了第三标记的清除,从而允许第二数据传送过程21b及时地使用帧緩存 器4的第三块63中的数据刷新显示器6。在时间ts,图6显示了第二数据 传送过程21b刚刚完成数据从帧緩存器4的第四块64到显示器6的写入8。 这时,在已经通过第一数据传送过程21a将视频緩存器20中的数据提供给 帧緩存器4后,笫二数据传送过程21b已经使用帧緩存器4的所有四块61、 62、 63和64的数据刷新了显示器6。而且,在时间t5,第一数据传送过程 21a已经把第二帧的数据写入到帧緩存器4的第一块61、第二块62和第三 块63。
因此,由于在时间t3的中断48之后,通过第一数据传送过程21a的步 骤27清除了第一标记,而允许在时间t6第二数据传送过程21b已经把数 据从帧緩存器4的第一块61写入8到显示器。这涉及第一块61的第一行 结束时的第九次中断58。而且在时间t6,第一数据传送过程21a已经把数 据从视频緩存器20写入8到帧緩存器4的第四块64,并且第十次中断60 通知该数据的最后的象素已经被写入。
在图6所示的例子中,从视频緩存器20到帧緩存器4的数据传送过程,
即,第一数据传送过程21a,比把来自该帧的数据传送到显示器6的第二 数据传送过程21b快。因此,第一数据传送过程21a趋向于在步骤25处等 待与其接下来将要写入的块对应的标记被第二数据传送过程21b清除。
然而,第二数据传送过程21b的步骤32的配置还保证了除非第一数据 传送过程21a已经完成了把数据写入到块中,否则不从帧緩存器4的该块 向显示器6传送数据。因此,消除了撕裂的可能性。而且,不需要提供两 个并行帧緩存器就可以实现。这是由帧緩存器4分成几个块以及对这几个 块单独进行数据进出传送来实现的。
从图6中可以看出第一数据传送过程21a将数据从视频緩存器20写入 帧緩存器4的方向与第二数据传送过程21b将数据从緩存器4写入到显示 器6的方向相垂直。在传统的单帧緩存器系统中,数据写入和写出帧緩存 器的方向不同,其不可能不等待整个帧緩存器被在先视频緩存器的数据充 满就把数据从帧緩存器写入显示器。然而,帧緩存器4分成几个块允许将 来自帧緩存器4的一部分的数据写入显示器6,同时向帧緩存器4的其它 部分写入来自视频緩存器20的数据。
然而,应当清楚如果从帧緩存器4向显示器6写入数据的方向与从视 频緩存器20向帧緩存器4写入数据的方向相同,则系统可以同样4艮好的工 作。因此,把数据从视频緩存器20写入到帧緩存器4的方向并不关键,这 允许^使用具有或不具有旋转DMA的技术。
因此,系统17可以用在一种i殳备中,在该i殳备中,显示器6的取向需 要在横向和纵向之间转换,同时避免图像的撕裂以及避免需要除了少数硬 件中断外的附加硬件。
当第二数据传送过程21b已经tef目关数据块的第一行从帧緩存器4写 入到显示器6时发生的中断42、 46、 50、 54和58可以通过任何合适的方 式实现。它们可以是硬件中断。可选择的,它们可以是软件中断。而且, 它们可以不是传统意义上的中断,而可以是在实现第二数据传送过程21b 中由MCU 18操作的程序中的简单代码行。
当第一数据传送过程已经把数据写入帧緩存器4的相关块中时发生的
中断48、 52、 56和60可以以硬件、软件或任何其他合适的方式实现。
在该例子中,允许把下一帧的数据写入在先块的中断42、 46、 50、 54 和58被置于块的第一行的结束。然而,这仅仅是一个例子,并且任何其他 合适的位置都可以使用。尽管由于从视频緩存器20向帧緩存器4写入数据 的延时可以被减小到最小,越早通知越好,但仅仅需要即时保证在先的块 已经被完全刷新到显示器6。
可以存在任何数量的块,这里提供至少两个块。
在上述实施例中,优选地,显示器6的刷新比图Y象数据2的写入快。 优选地,在整个帧緩存器4块的尺寸不断增加。根据两个过程21a和21b 的相对速度最优化块的尺寸。把图像数据2写入块ia花费的时间等于或略 大于复制较大块ib - ia+l的图像数据并把数据刷新到显示器6花费的时间。
中断46、 50和54向过程21a指示块已经被刷新到显示器,这意味着 该块的下一帧可以被写入到帧緩存器4。然而,由于在该例子中,块到显 示器6的刷新比把继续进行的块的图像数据2写入到帧緩存器4快,应当 清楚这些中断并不是必需的。因此,如果根据相对DMA传送速度正确地 选择块的尺寸,则可以省略中断46、 50和54。然而,中断48、 52、 56和 60保证,在任何块中,在图像数据2被刷新到显示器6之前其被写入帧緩 存器4中。中断42和58保证关于下一帧的图傳Jt据2在下一帧的第二 块被刷新前被写入到最后块。这样,可以保证在所有时间,显示器6上 的图像数据2刷新超过向帧緩存器4的图像数据2写入至少一个块。
如果写入过程21a具有速度Sl以及复制过程21b具有速度S2,则第 一块之后的每一块的最大尺寸可以等于前一正在处理的块的尺寸WS2/S1, 这样,块的尺寸依照平方率增加。如果省略中断46、 50、 54,则每一块的 尺寸可以略小于最大块尺寸,以防复制过程21b略'隄或者写入过程21b稍 微提速。
在另一实施例中(没有显示),图像数据2到帧緩存器4的写入比显 示器6的刷新快。这样,优选得,块的尺寸顺次降低。才艮据两个过程21a 和21b的速度优化块的尺寸。优选的,把图像数据2写入緩存器的块花费
的时间等于或略小于复制紧随其后的块并将其刷新到显示器6花费的时 间。
在过程21a和21b具有基本相同的速度的情况下,块可以具有基4^目 同的尺寸,并且需要图6中指示的所有中断来保证图像撕裂不会发生。
在帧緩存器4上提供块的另一优点是可以执行图像帧的部分更新。当 从一个帧到下帧特定块中的数据并没有改变时,例如表示菜单的图像数据, 这是有用的。
尽管已经根据上述实施例描述了本发明,本领域技术人员应当清楚在 不脱离本发明的范围的情况下可以进行修改。例如,可以提供任意数量的 块。
权利要求
1.一种显示图像的方法,包括使用存储控制单元把包含二维存储单元矩阵的缓存器分成至少第一块和第二块;把数据写入所述块的第一块;以及把所述数据从所述块的第一块复制到显示器的相应块,其中,对所述块的相继块重复所述写入和复制步骤,以及其中到所述块的所述数据写入与从所述块复制数据的方向垂直。
2. 如权利要求l所述的方法,进一步包括 检测所述块的第一块的所述数据写入被完成;以及 响应于所述检测,允许对于进入所述块的第一块的所述数据的所述复制。
3. 如权利要求2所述的方法,其中所述检测步骤由中断发起。
4. 如权利要求l所述的方法,进一步包括 检测对于所述块的第一块的所述复制步骤被完成;以及 响应于所述检测,允许向所述块的第一块写入替换数据。
5. 如权利要求4所述的方法,其中所述检测步骤由中断发起。
6. 如权利要求1所述的方法,其中除了所述第一块外,每一 块比紧接着进行的块大。
7. 如权利要求1所迷的方法,其中写入所述緩存器的所述数 据表示一个图像帧,包括,在把图像帧的数据写入所述緩存器的 最后的块之后,把下一图像帧的数据写入所迷緩存器的第一块。
8. —种计算机程序,被可选择地存储在计算机可读介质上, 所述程序包括执行计算机可执行指令的控制装置,用于执行权利 要求1所述的显示图像的方法。
9. 一种显示图像的装置,包括 緩存器,包括二维存储单元矩阵; 显示器;以及存储控制单元,其被配置为把所述緩存器分成至少第一块和第 二块,把数据写入所述块的第一块,以及把所述数据从所述块的 第一块复制到所述显示器的相应块,其中所述存储控制单元进一步被配置为顺序地把数据写入所 述块的相继块并顺序地复制所述相继块的数据,以及其中到所述 块的所述数据写入与从所述块复制数据的方向垂直。
10. 如权利要求9所述的显示图像的装置,进一步包括把所述 数据写入所述緩存器的第一直接存储访问信道。
11,如权利要求10所述的显示图像的装置,进一步包括把所 述数据从所述緩存器复制到所述显示器的第二直接存储访问信 道。
全文摘要
存储控制单元控制从视频缓存器到帧缓存器的和从帧缓存器到显示器的图像数据传送被逐块地执行。从视频缓存器向帧缓存器一次一块地写入图像数据。当整个块的图像数据已经被写入到帧缓存器后,该块的数据可以被刷新到显示器。只有一旦该块的数据已经被刷新到显示器,才向帧缓存器写入下一帧的图像数据。这样,可以消除图像撕裂。当向帧缓存器写入数据的方向垂直于从帧缓存器复制数据并刷新显示器的方向时,也可以成功的传递图像。这样,可以不需要双缓存器,把横向图像传递到纵向显示器上。
文档编号G09G5/39GK101176142SQ200680017101
公开日2008年5月7日 申请日期2006年4月20日 优先权日2005年4月20日
发明者T·海明基 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1