用于高效图像旋转的方法和装置的制作方法

文档序号:2612776阅读:159来源:国知局
专利名称:用于高效图像旋转的方法和装置的制作方法
技术领域
本发明涉及在图形显示系统中对图像进行有效旋转的方法和装置。特别是,优选实施例涉及在存储器中组织图像数据从而在图像旋转和不旋转时都能有效地将这些数据取出的方法和装置。
背景技术
图形显示系统,特别是不很昂贵的、手持并由电池供电的数字设备(“便携式数字设备”),例如移动或蜂窝电话通常使用图形控制器作为一个或多个图形数据提供器与例如LCD显示板或多个LCD显示板等图形显示设备之间的接口。这些图形数据提供器通常为例如CPU的主机和照相机。所述主机和照相机将图像数据发送到图形控制器从而使其最终在该显示设备上显示出来。所述显示设备适用于在其显示区域上显示数字图像数据的像素(“像素数据”)。所述主机还将控制数据发送给图形控制器和照相机,从而控制这些设备的操作。通常,图形控制器为独立的集成电路(“IC”),并且所述图形控制器、主机和照相机彼此都是远离的。
图形控制器提供了多种处理选择以便处理从主机和照相机接收到的图像数据。例如,图形控制器可以使用例如JPEG编码或解码的方式压缩或解压缩输入或输出的图像数据,裁剪图像数据,调整图像数据的大小,缩放图像数据和根据多种不同的颜色转换方案中的一种来转换图像数据的颜色。
所述图形控制器通常包括内置的存储器,以便存储从图像数据源接收到的图像数据。另外,所述用于存储从图像数据源接收到的图像数据的存储器也可以被置于一个不同于图形控制器IC的独立IC中。图像数据可以被存储在存储器中的帧缓冲部分中,以便于随后被取出并发送到显示设备中。另外,在将所述数据存储在存储器之前,可以对这些数据执行图像处理操作,或者可以从存储器中取出所述数据并执行图像处理操作,然后将这些数据传输到显示设备中或再次存储在该存储器中。该存储器被制成具有多个行和列的2为矩阵结构。存储在该存储器中特定行和列位置的像素数据被映射到显示设备的对应行和列位置。通常,存储器可以为动态随机存取存储器(“DRAM”)、同步DRAM(“SDRAM”)或静态RAM(“SRAM”)。SRAM比DRAM和SDRAM更快,但是也更昂贵。因此,通常使用DRAM和SDRAM来存储图像数据。
DRAM和SDRAM在电容器中存储数据,而所述电容器由于漏电因此需要被周期性地再充电或刷新。利用DRAM和SDRAM,在存取存储器位置之前,需要完成行地址选择(“RAS”)和“预充电”周期。当完成RAS和预充电周期之后,就可以对处于“触发”模式的行进行数据的写入或读取,这个操作在该行内从特定起点开始并顺序经过多个列。该DRAM中的整行也可以被称为“页面”。
通常,主机和照相机按照光栅扫描的次序向图形控制器提供图像数据,即在从上到下的线中按照从左到右提供像素。这些光栅次序的像素数据通常也存储在连续的存储器位置中,即在存储器的多个连续行中从左到右。另外,像素数据通常也是按照光栅次序被取出以便进行处理或传输给显示设备。按照光栅次序取出图像数据是很有效率的,其中所述图像数据是按照光栅次序被提供给存储器并在该存储器的多个连续行中从左到右地被存储起来。这是因为在触发模式中可以一次取出一行数据。
但是,图形显示系统通常可以实现图像旋转。如果图像是按照光栅次序存储在存储器中,则当旋转该图像时,必须按照与存储这些图像数据不同的次序来取出这些图像数据。为了能够将旋转后图像的单行写入到显示器中,必须从该存储器的大量不同行中取出像素数据。通常,由于DRAM或SDRAM中的每次页面变化都需要RAS和预充电周期,因此当使用DRAM存储器时,图像转换将显著地降低取出数据的效率。
因此需要提供一种方法和装置,从而在图形显示系统中实现图像的有效旋转。
发明概述本发明一般涉及一种用于图像有效旋转的方法和装置。该图像最好被定义为图像矩阵,其中每个图像数据与该图像矩阵中的一个特定图像行和特定的图像列对应。优选方法包括将每个数据映射到存储器矩阵,所述存储器矩阵被组织为多个存储器行和多个存储器列。该映射最好包括将下述内容映射到多个存储器行中的一个(a)至少两个数据,它们都与所述多个图像行中的一个对应,和(b)至少两个图像向量部分,这些图像向量部分中的第一个包括至少两个数据,其中每个数据对应于多个图像列中的一个,这些图像向量部分中的第二个包括至少两个其他数据,其中每个数据对应于多个图像列中的另一个。另外,所述第一图像向量部分的所述至少两个数据和所述第二图像向量部分的所述至少两个其他数据最好分别与相同的图像行对应。
优选的用于图像有效旋转的图形控制器包括一存储器和一存储器存储方案控制器,其中该存储器被配置为多个存储器行和多个存储器列。该存储器存储方案控制器用于根据特定的映射方案将每个数据映射到存储器矩阵中。该存储器矩阵最好被配置为多个存储器行和多个存储器列,该映射方案包括将下述内容映射到多个存储器行中的一个中(a)至少两个数据,它们均与多个图像行中的一个对应;和(b)至少两个图像向量部分,这些图像向量部分中的第一个包括至少两个数据,这两个数据中的每一个与多个图像列中的一个对应,这些图像向量部分中的第二个包括至少两个其他数据,这两个数据中的每一个与多个图像列中的另一个对应。另外,所述第一图像向量部分的所述至少两个数据和所述第二图像向量部分的所述至少两个其他数据最好各自分别与相同的图像行对应。
用于图像有效旋转的图形显示系统包括用于提供数据的图像提供器,用于再现数据的图形显示设备,配置为多个存储行和多个存储列的存储器,和图形控制器。优选的,图形控制器包括存储器存储方案控制器,用于根据特定的映射方案将各数据映射到存储器矩阵中。该存储器矩阵最好被配置为多个存储行和多个存储列,该映射方案包括将下述内容映射到多个存储行中的一个中(a)至少两个数据,它们均与多个图像行中的一个对应;和(b)至少两个图像向量部分,这些图像向量部分中的第一个包括至少两个数据,这两个数据中的每一个与多个图像列中的一个对应,这些图像向量部分中的第二个包括至少两个其他数据,这两个数据中的每一个与多个图像列中的另一个对应。在优选实施例中,图像提供器和显示设备距离该图形控制器都较远。另外,所述第一图像向量部分的所述至少两个数据和所述第二图像向量部分的所述至少两个其他数据各自分别与相同的图像行对应。
在最佳实施例中,本发明涉及一种记录有可由机器执行的指令程序的机器可读介质,该指令程序表现一种用于图像有效旋转的方法。优选地,该介质中记录的方法包括将每个数据映射到存储器矩阵中,该存储器矩阵被配置为多个存储行和多个存储列。该映射最好包括将下述内容映射到多个存储行中的一个中(a)至少两个数据,它们均与多个图像行中的一个对应;和(b)至少两个图像向量部分,这些图像向量部分中的第一个包括至少两个数据,这两个数据中的每一个与多个图像列中的一个对应,这些图像向量部分中的第二个包括至少两个其他数据,这两个数据中的每一个与多个图像列中的另一个对应。另外,所述第一图像向量部分的所述至少两个数据和所述第二图像向量部分的所述至少两个其他数据最好各自分别与相同的图像行对应。
应当理解上述概述仅用于概括地确定在附图和详细实施例描述中的技术手段,并不用于限定本发明的范围。在考虑结合附图的下面详细后,将更容易地理解本发明的特征和优点。
说明书附1示出根据本发明优选实施例的具有基于DRAM的图形控制器的图形显示系统的方块图,该图形控制器用于实现高效的图像处理。
图2示出存储器的示意图,该存储器中存储有图像数据。
图3示出

图1所示系统的显示设备显示图像的示意图。
图4为示例性用户接口的示图。
图5示出存储器的示意图,该存储器具有将图2所示图像数据反时针旋转90度后的图像数据。
图6示出图3所示显示设备的示意图,该显示设备具有将图3所示图像反时针旋转90度后的图像。
图7示出与按照普通光栅次序显示的像素相对应的图像矩阵的概念图。
图8示出了除了按时针方向旋转90度外与图7相对应的图像矩阵的概念图。
图9示出根据本发明一个优选实施例的图1所示的图形控制器的存储器的一部分的示意图。
图10示出根据本发明一个优选实施例,按照第一示例性存储器存储方案配置的图9所示存储器的示意图。
图11示出图5所示图像矩阵的示意图,其中所述图像矩阵具有按照图10中的存储器存储方案分组的像素。
图12示出根据本发明一个优选实施例,按照第二示例性存储器存储方案配置的图9所示存储器的示意图。
图13示出图5所示图像矩阵的示意图,其中所述图像矩阵具有按照图12中的存储器存储方案分组的像素。
图14示出根据本发明一个优选实施例,按照第三示例性存储器存储方案配置的图9所示存储器的示意图。
图15示出图5所示图像矩阵的示意图,其中所述图像矩阵具有按照图14中的存储器存储方案分组的像素。
图16示出根据本发明一个优选实施例,按照第四示例性存储器存储方案配置的图9所示存储器的示意图。
图17示出图5所示图像矩阵的示意图,其中所述图像矩阵具有按照图16中的存储器存储方案分组的像素。
图18示出根据本发明一个优选实施例,按照第五示例性存储器存储方案配置的图9所示存储器的示意图。
图19示出图5所示图像矩阵的示意图,其中所述图像矩阵具有按照图18中的存储器存储方案分组的像素。
图20示出根据本发明一个优选实施例,按照第六示例性存储器存储方案配置的图9所示存储器的示意图。
图21示出图5所示图像矩阵的示意图,其中所述图像矩阵具有按照图20中的存储器存储方案分组的像素。
优选实施例的详细描述优选实施例都涉及在图形显示系统中用于有效图像旋转的方法和装置。另外,本发明的方法和装置最好被实现为图形控制器。下面将涉及详细说明本发明的优选实施例,在附图中示出了其例子。在可能的情况下,附图和说明书中会使用相同的附图标记来描述相同或相似的部分。
根据优选实施例,图形控制器最好用于图形显示系统中,该图形显示系统包括至少一个例如主机或照相机之类的图像数据提供器和一个图形显示设备。该图形控制器最好为与系统其他元件分离的IC。本文中的所述其他元件均“远离”该图形控制器。
所述优选图形显示控制器有利地用于数字装置中,例如移动电话、便携式数字音乐播放器和个人数字助理。但是,本发明的原理可用于任何使用DRAM、SDRAM或其他存储器的系统,在这些系统中,由于RAS和预充电周期的需要或由于其他考虑,访问处于同一行内的多个存储位置的效率要比访问处于不同行中的相同数目存储位置的效率要高。另外,本文中对优选实施例的描述比较详细,但是除非另有说明,这并不意味着本发明局限于这些描述。
图1示出根据本发明一个优选实施例的图形显示系统8,它包括图形控制器10。系统8可以为任何数字系统或装置。系统8为便携式数字装置,它通常由电池(未示出)供电。系统8通常包括主机12和图形显示设备14以及一个或更多照相模块(“照相机”)15。图形控制器10作为主机和照相机与显示设备的接口。该图形控制器通常并且最好远离主机、照相机和显示设备。
主机12通常为微处理器,但也可以是数字信号处理器、计算机或任何用于控制数字电路的其他类型的控制设备。主机12通过与该图形控制器10中的主机接口12a相连接的总线16实现与该图形控制器10的通信。
显示设备14具有一个或更多显示板14a,每个显示板14a都具有对应的显示区域18。图形控制器包括显示设备接口20,该显示设备接口20用于通过显示设备总线22实现图形控制器和显示设备之间的连接。LCD通常被用作移动电话中的显示设备,但是也可以使用任何能够再现可视形式的像素数据的设备(一个或多个)。一个或更多显示板14a可用于在其显示区域上显示像素数据。
像素数据对应于图像“帧”。例如,单独的图像帧具有64行像素,其中每行包含128个像素。通常一个帧就对应于在显示设备14上看到的一个独立图像。像素数据通常是按照光栅次序以流的形式由照相机15提供。特定行的像素数据被一起分组,从而使与该特定行对应的所有像素数据能够在任何与下一行对应的像素数据流出之前流出。相似的,特定帧的像素数据也被一起分组,从而使与该特定帧对应的所有像素数据能够在任何与下一帧对应的像素流出之前流出。因此,图形控制器10能够按照顺序接收多个行和帧。
图形控制器具有并行的“数据”接口17,用于接收照相机15经过总线19的DATA线输出的像素数据以及垂直和水平同步信号(“VSYNC”和“HSYNC”)。图形控制器向照相机提供照相机时钟信号CAMCLK,以便对照相机输出的像素数据进行时钟控制。像素数据的多个帧由VSYNC信号分离。
对照相机15提供的数据可以执行多种图像处理操作。这些图像处理操作是由图1中由附图标记19指示的图像处理单元来执行的。作为具体实例说明,图像处理模块19可以包括用于压缩和解压缩图像数据的CODEC和用于缩放和裁剪数据的尺寸调整器。
另外,图像处理模块19还可以包括彩色格式转换器(“CFC”)27。在优选实施例中,像素数据为由三个8位彩色分量构成的24位组,但是该像素数据也可以具有任何其他范围并且局限于所述分量中的一个或多个。在其他优选实施例中,像素数据为16位。所述像素数据也可以为彩色或灰度级。彩色像素数据可以由照相机15以YUV彩色格式输出,其中“Y”是与数据的亮度值相关的参数,“U”和“V”是与像素数据的色度值相关的参数。在图像控制器中最好利用彩色格式转换器将该YUV数据转换为红-绿-兰(“RGB”)彩色格式。在其他实施例中,可以利用CFC27将RGB数据转换为YUV。
例如裁剪、缩放、压缩编码和彩色转换等图像处理操作可以在从照相机接收数据的过程中(即“在飞行中(on the fly)”)执行,或者也可以对已经存储在存储器中的数据执行上述操作。
在优选实施例中,图形控制器包括用于存储图像数据帧的内部存储器24。但是在其他实施例中,存储器24也可以远离所述图形控制器。在存储器控制器28的控制下可以将数据存入内部存储器24或从内部存储器24取出数据。存储器24最好为DRAM、SDRAM或其他存储器,其具有操作性能从而在对处于同一行内的多个存储位置进行存取的效率要大于对处于不同行中相同数目的存储位置进行存取的效率。但是,应当理解本发明的原理也可以用于任何类型的存储器中。
通常,存储器24中存储的图像数据被取出并通过多个并行的“显示通道(display pipes)”26被传输,这些“显示通道”最好为FIFO缓冲器。显示通道26的输出经过用于从这些通道26中的一个中选择数据的选择单元25。然后,该选择单元25通过显示设备接口20和输出总线22将图像数据发送到图形显示设备14。
图2示出示例性存储器24的结构。该存储器24包括多个行“R”和多个列“C”的矩形排列,在图2中,示例性帧F占据了该存储器的一个部分。具体地说,该帧F占据了存储器24中由十一行和九列构成的矩阵。该矩阵中具有像素数据Pm,n,其中m和n是分别表示帧F中像素的行和列的数字。帧F最好是按照光栅次序被排列。存储器24的行和列最好被映射到显示设备的特定行和列,这样如果按照光栅次序取出帧F并将其写入显示器中时,帧F就会作为图像在该显示器上表现出来。
像素数据Pm,n最好是由图形控制器接收,并按照光栅次序被写入到存储器24中,但是这并不是必需的。应当特别注意,一旦将数据按多个行和列存储在存储器中,由于改变行需要RAS和预充电周期,因此在从另一行中读取数据之前,最好尽可能多地从相同的行中读出数据。
在本发明的一个优选实施例说明中,提供给图形控制器以便存储在存储器24中的像素数据Pm,n是由照相机15产生的。在该说明和其他相似说明中,由于照相机15的分辨率通常大于显示设备14的分辨率,因此存储在存储器24中的像素比在该显示设备的显示板14a上显示的像素要多。即,特定帧F在两个方向上可以都比显示板要更宽、更高或更大。举一个例子,,显示板的分辨率为640像素列X480像素行,或307200像素,而照相机可以产生100万象素或更大的帧。作为第二个例子,如图2所示,帧F为9×11,而如图3所示,显示板为4×7。
现在参照图3,其中示出了将帧F的一部分作为图像显示的显示设备14。所述像素数据最好是从存储器24中被取出并按照光栅次序被提供给显示设备14。该显示设备14适用于按照该次序接受像素数据并按照光栅次序将像素数据显示在板14a上。
图3表明所述图形控制器最好通过从照相机帧F中删去像素数据或对该帧进行缩放,来调整照相机帧F的大小。调整大小操作最好是在帧F存储在存储器之前或之后执行,但是缩放应当在将该帧传输到显示板之前执行。另外裁剪应当在该帧存储之后执行,用户可以在显示板上“滚动”或“扫视(pan)”该图像。当扫视帧时,调整操作使得不会取出先前显示的像素数据中的一部分,而取出其他先前没有显示的像素数据。
图形控制器10还可以旋转图像。在图1中,用于执行帧旋转的优选单元是由图像旋转模块29、29b来指示。任何已知的用户界面都可以使用。例如,用户界面可以利用键盘、鼠标、轨迹球从菜单中选择帧旋转。或者,用户界面可以通过点击触敏屏上的一个或多个开关图标来选择帧旋转。本领域技术人员应当还知道其他类型的用户界面。图4中示出了示例性菜单类型的用户界面32。在任何情况下,一旦用户已经选择了一个命令来进行图像旋转,该命令就会被主机12检测到,该主机通过主机接口12a向图形控制器中的图像旋转单元29、29b发送多个适当命令。
在便携式数字装置中,用户通常不能输入特定的旋转角度或希望的旋转中心。而是,向用户提供了是否使该图像相对于显示器的中心(或其他预定旋转中心)旋转预定角度的选择。但是,本领域技术人员很容易明白,应当提供更高级的用户界面,从而允许用户指定旋转角度和希望的旋转中心。
为了执行根据本发明的存储器存储方案,图形控制器10最好包括存储器存储方案控制器29a。该存储器存储方案控制器29a可以是或不是图像旋转模块29、29b中的一个或两个的一部分。在一个优选实施例中,控制器29a适用于仅提供一种存储器存储方案。在其他实施例中,控制器29a适用于提供一个以上的存储器存储方案。在这些实施例中,存储器存储方案最好是可选的。例如,存储器存储方案控制器29a可以由主机12编程。例如,该主机可以通过在该控制器29a中写入一个参数来指定特定的存储方案。另外,主机最好可以指定何时使用该控制器29a。另外,通过或不通过用户输入,可以指定是否要使用控制器29a以及如果使用则指定使用哪个存储方案。最好在获知所存储的图像实际上是否需要被旋转之前,选择特定的存储器存储方案,这样做的目的是为了增加平均效率,因为该效率通常取决于估算所旋转图像的百分比。
存储器存储方案控制器29a计算并向图像旋转模块29、29b提供存储器地址。在优选实施例中,该存储方案控制器29a按照一个像素一个像素的方式为图像旋转模块29、29b指定存储器地址。对于所提供的存储在存储器24中的图像数据,该图像数据可以由主机12、照相机15或其他图像数据源来提供,并最好按照光栅次序被提供。存储器存储方案控制器29a按照例如光栅次序的显示顺序,根据数据的位置为特定像素数据指定存储器地址。因此,源图像矩阵的高度、宽度和排序方案最好被提供给存储方案控制器29a以便在计算地址时使用。另外,控制器29a最好在将像素数据提供给存储器的同时,为图像旋转模块29指定存储器地址。另外,在其他实施例中,控制器29a也可以按照非一个像素接一个像素的方式指定存储器地址。例如,由于彩色像素包括分量数据,因此控制器29a可以为每个分量指定独立的地址。本领域技术人员应当认识到,还可以由多种不同的方式来实现存储方案控制器29a的功能。例如,控制器29a可包括硬件、软件或固件,或以上这些中的一个或多个的组合。
在另一个优选实施例中,存储器存储方案控制器29a和图像旋转模块29b供存储在存储器中的图像数据使用。优选的,图像数据按照光栅次序存储在存储器中。该存储器存储方案控制器29a为图像旋转模块29b指定存储器地址,该图像旋转模块29b用于定义从存储器中取出像素并将其提供给显示设备14、CODEC或其他图像数据终点的顺序。
图1所示的实施例同时包括图像旋转模块29和29b而其他实施例仅包括图像旋转模块29和29b中的一个。
图5示出了在图2中所示的示例性存储器24的另一个视图。在图5中,示例性帧FR占用了存储器的一部分。具体地说,帧FR占用了存储器24中由十一列和九行构成的矩阵。帧FR是图2所示的帧F旋转后的形态。旋转角度为-90度,规定反时针旋转90度。对图2和5比较可知,帧FR比帧F宽度更大、高度更小。
现在参照图6,所示的显示设备14显示了图5中的帧FR的一部分。图6中所显示的图像是使图3所示的F’绕旋转中心(“CEN.ROT.”)旋转的命令的结果,所述旋转中心在该例子中为像素数据P6,6。
在旋转图像时会产生一个问题,这从考虑下面两个例子可以看出。首先,再次参照图3并注意顶行(P3,4,P3,5,P3,6,P3,7)。所有这些像素都显示在图像的一行中。参照图2,对应该图像矩阵中的这些像素的行索引m为3,即所有这些像素都存储该存储器中的一个行中。因此,可以按照一行接一行的方式从存储器24中取出图3中的像素,从而使存储器24所需的RAS和预充电周期的数目最小。因此,如果图像存储的次序与取出该图像以显示的次序相同,则存储器访问能够实现最高效率。
参照作为对照例子的图6所示图像,并注意顶行的像素(P4,9,P5,9,P6,9,P7,9)。参照图2,由于所有这些像素都显示在该图像的一条线中,因此该图像矩阵中的这些像素中的每一个的行索引m都是不同的,即每个像素都存储在该存储器的不同线中。为了从图2所示的存储器24中取出像素,必须从该存储器的不同行中取出各像素。例如,参照图2和6,必须从存储器的行4中取出6P4,9,从行5中取出P5,9,从行6中取出P6,9,从行7中取出P7,9,等等。因此,为了按照光栅次序从图2所示的存储器24中取出图6所示的图像,对每次像素的取出都需要RAS和预充电周期。换句话说,所需的RAS和预充电周期的数目是最多的。因此,从存储器24中取出图6的图像以进行90度旋转将导致最低效率。
如果在将帧存储在存储器之前就预先知道该帧将被旋转显示,则可以按照图5中所示的旋转后次序来存储像素数据,使这些数据与将要显示的图像排列一致。但是,通常我们不能预先知道帧是否要被旋转。另外,相同的图像可能会被查看两次,一次是旋转后的图像,而另一次是未旋转的图像。
本发明的优选实施例涉及的是在存储之前不能预先知道是否需要将帧旋转后显示的情况。另外,优选实施例涉及希望从存储器中将相同的帧取出一次以上的情况,其中上述帧取出中的至少一次是未旋转显示,上述帧取出中的至少一次为旋转后显示。
根据优选实施例,将图形控制器10通过图1中的接口12a或接口17接收到的像素数据按照预定的排列方式存储在存储器24中。这种新的排列方式能够在不考虑取出的数据将被显示为未旋转图像或旋转后图像的情况下,确保从该存储器的各行中取出至少两个像素数据用来显示。这样,对应每个RAS和预充电周期,总能取出至少两个像素。
在描述根据本发明的存储器中像素的优选排列方式之前,首先参照图7、8和9来看一下示例性的未旋转和旋转后图像矩阵以及其他示例性存储器24,其在优选排列方式中有详细描述。
图7示出了与多个像素Pm,n对应的示例性“图像矩阵”IMAGENON_ROT,这些像素按照光栅次序被排列,例如按照从照相机15接收的顺序被排列,该图像矩阵限定了未旋转的图像。矩阵为640像素宽×480像素,因此具有480行ROWNON-ROT和640列COLNON-ROT。
与图7不同,图8示出了具有与图7中所示完全相同的像素的图像矩阵IMAGEROT,但是这些像素的排列使得该图像表现为被旋转+90度(顺时针旋转90度)的形态。该矩阵IMAGEROT是480像素宽×640像素,因此具有640行ROWROT和480列COLROT。对于90度顺时针旋转,图8中的640行(ROWROT)等同于图7中的640列(COLNOT_ROT),其区别仅在于像素PM,N按照相反的顺序排列。另外,图8中的480列(COLROT)也完全等同于图7中的480行(ROWNOT_ROT)。
图9示出了根据本发明优选实施的存储器24的部分24a,其中存储器24是用于存储16个16位像素的256位宽的存储器。在所示实施例中,存储器24的一部分24a用于将[480·640]/16=19,200个像素存储在16列中,该16列包括16列COLMEM和19200行ROWMEM。该存储器部分24a的宽度对应于该存储器24所示实施例中的“页面”。利用单一的一对RAS和预充电周期,就可以读取优选处于触发模式的页面中的像素。由于图9所示的存储器24仅用于说明的目的,因此可以理解本发明并不局限于该示例性存储器。例如,在优选实施例中,存储器24可以为128位宽。另外,该128位宽的存储器最好用于存储24bpp图像数据,从而使每线包含5.33个像素。
图10示出了根据本发明优选实施例的示例性存储器存储方案40。根据该方案40,示出了存储器部分24a,所述存储器部分24a中存储了多个像素Pm,n。图11示出了根据方案40将这些像素从未旋转图像矩阵映射到存储器24a的方式。在图10中,多个像素Pm,n包括60个块BK。块B1-B60表示像素Pm,n的多个块,其中每个块中行索引m的范围是1-8,9-16,…,473-480,列索引n的范围是1-640。每个块包含该存储器部分24a的320行。组G1表示一个8像素部分,包括像素P1,1,P2,1,P3,1,P4,1,P5,1,P6,1,P7,1和P8,1。组G2表示另一个8像素部分,包括像素P1,2,P2,2,P3,2,P4,2,P5,2,P6,2,P7,2和P8,2。
图11示出图7中具有根据方案40突出显示的像素组G1和G2的未旋转图像矩阵。将图10和11进行比较可以发现,根据示例性方案40,图像矩阵IMAGENON-ROT的图像列CNON-ROT(“图像列”)的8像素部分(B=8)的2个组(A=2)被存储在存储器部分24a的相同存储器行RM(“存储器行”)中。例如,组G1和G2表示相应图像列CNR1和CNR2的8像素部分,由图像矩阵IMAGENON-ROT中的八个行(“图像行”)RNR1-RNR8来定义。组G1和G2均存储在并占据所述第一存储器行RM1中,例如组G1占据该存储器部分24a的第一个8列GM1-GM8(“存储器列”)。同样地处理其他的图像列和图像行。
如果将要在不旋转图像的情况下将其显示,则通过利用存储器存储方案40,处于该未旋转图像矩阵IMAGENON-ROT中相同图像行ROWNON-ROT(图11)的多个像素(A=2)将仍然处于相同的存储器行RM中。因此,可以在不需改变存储器部分24a中的页面的情况下读出这两个像素。例如,在第一图像行RNR1中,两个像素P1,1和P1,2都位于相同的存储器行RM1中,因此可以在不改变页面的情况下将它们一起读出。
另一方面,如果需要将图像旋转后显示,则处于该旋转后图像矩阵IMAGEROT的相同行RR中的8个像素(B=8)将仍然处于相同的存储器行RM中,因此可以在不需改变页面的情况下将它们读出。例如,在第一存储器行RM1包括多个像素P1,1,P2,1,P3,1,…,P8,1,这些像素都位于该旋转后图像矩阵IMAGEROT的第一图像行RR1中。
将存储器配置方案40与光栅次序存储器配置(即在图7的未旋转图像矩阵IMAGENON-ROT中所示的次序)进行比较。如果将要在不旋转的情况下显示图像,则使用光栅存储器存储方案的结果是不需要跨过多个页面,因此可以仅在一组RAS和预充电周期或页面变化的情况下,将存储器部分24a的特定行中的所有CM=16个像素一起读出。但是,如果需要将图像旋转后显示,则该图像行中的每个像素都需要从存储器部分24a的不同行中来获得,因此还需要十五次另外的页面变化。
图12示出了根据本发明另一个优选实施例的示例性存储器存储方案50。根据该方案50,示出了存储器部分24a,所述存储器部分24a中存储了多个像素Pm,n。图13示出了根据方案50将这些像素从未旋转图像矩阵映射到存储器24a的方式。在图12中,多个像素Pm,n包括240个块BK。块B1-B240表示像素Pm,n的多个块,其中每个块中行索引m的范围是1-2,3-4,…,479-480,列索引n的范围是1-640。每个块包含该存储器部分24a的80个行。组G1表示一个2像素部分,包括像素P1,1,P2,1。组G2表示另一个2像素部分,包括像素P1,2,P2,2。组G3表示一个2像素部分,包括像素P1,3,P2,3。组G4表示一个2像素部分,包括像素P1,4,P2,4。组G5表示一个2像素部分,包括像素P1,5,P2,5。组G8表示另一个2像素部分,包括像素P1,8,P2,8。
图13示出具有根据方案50分组后的像素的图7的未旋转图像矩阵。将图12和13进行比较可以发现,根据示例性方案50,图像列CNR的2像素部分(B=2)的8个组(A=8)被存储在相同的存储器行RM中。例如,组G1-G8表示相应图像列CNR1-CNR8的2像素部分,由2个图像行RNR1和RNR2来定义。这8个组G1-G8均存储在并占据所述第一存储器行RM1中,例如组G1占据第一个2存储器列GM1和GM2。同样地处理其他的图像列和图像行。
如果将要在不旋转图像的情况下将其显示,则通过利用存储器存储方案50,处于该未旋转图像矩阵IMAGENON-ROT(图13)的相同图像行ROWNON-ROT中的8个像素(A=8)将仍然处于相同的存储器行RM中。因此,可以在不需改变存储器部分24a中的页面的情况下读出这8个像素。例如,在第一图像行RNR1中,八个像素P1,1,P1,2,P1,3,P1,4,P1,5,P1,6,P1,7和P1,8都位于相同的存储器行RM1中,因此可以在不改变页面的情况下将它们一起读出。
另一方面,如果需要将图像旋转后显示,则处于该旋转后图像矩阵IMAGEROT的相同行RR中的2个像素(B=2)将仍然处于相同的存储器行RM中,因此可以在不需改变页面的情况下将它们读出。例如,第一存储器行RM1包括像素P1,1和P2,1,这些像素都位于该旋转后图像矩阵IMAGEROT的第一图像行RR1中。因此,为了利用存储器配置方案50获得一行像素并显示,该旋转后图像仅需要七次页面变化,而未旋转图像仅需要一次页面变化。
图14示出了根据本发明另一个优选实施例的示例性存储器存储方案60。根据该方案60,示出了存储器部分24a,所述存储器部分24a中存储了多个像素Pm,n。图15示出了根据方案60将这些像素从未旋转图像矩阵映射到存储器24a的方式。在图14中,多个像素Pm,n包括120个块BK。块B1-B120表示像素Pm,n的多个块,其中每个块中行索引m的范围分别是1-4,5-8,…,479-480,列索引n的范围是1-640。每个块包含该存储器部分24a的160个行。组G1表示一个4像素部分,包括像素P1,1,P2,1,P3,1,P4,1。组G2表示一个4像素部分,包括像素P1,2,P2,2,P3,2,P4,2。组G3表示一个4像素部分,包括像素P1,3,P2,3,P3,3,P4,3。组G4表示一个4像素部分,包括像素P1,4,P2,4,P3,4,P4,4。
图15示出具有根据方案60分组后的像素的图7的未旋转图像矩阵。将图14和15进行比较可以发现,根据示例性方案60,图像列CNR的4像素部分(B=4)的4个组(A=4)被存储在相同的存储器行RM中。例如,组G1-G4表示相应的图像列CNR1-CNR4的4像素部分,由4个图像行RNR1-RNR4来定义。这4个组G1-G4均存储在并占据所述第一存储器行RM1中,例如组G1占据第一个4存储器列GM1-GM4。同样地处理其他的图像列和图像行。
如果将要在不旋转图像的情况下将其显示,则通过利用存储器存储方案60,处于该未旋转图像矩阵IMAGENON-ROT(图15)的相同图像行ROWNON-ROT中的4个像素(A=4)将仍然处于相同的存储器行RM中。因此,可以在不需改变存储器部分24a中的页面的情况下读出这4个像素。例如,在第一图像行RNR1中,4个像素P1,1,P1,2,P1,3,P1,4都位于相同的存储器行RM1中,因此可以在不改变页面的情况下将它们一起读出。
另一方面,如果需要将图像旋转后显示,则处于该旋转后图像矩阵IMAGEROT的相同行RR中(图8)的4个像素(B=4)将仍然处于相同的存储器行RM中,因此可以在不需改变页面的情况下将它们读出。例如,第一存储器行RM1包括像素P1,1,P2,1,P3,1和P4,1,这些像素都位于该旋转后图像矩阵IMAGEROT的第一图像行RR1中。因此,利用存储器配置方案60,该旋转后和未旋转的图像均仅需要三次页面变化就可以获得一行像素用于显示。
应当知道,在当至少有些时候需要将图像旋转而对效率进行的改进中,方案40可以实现旋转的高效率,方案50可以实现未旋转的高效率,方案60是二者的折衷(splits)。在这些例子中,A和B都是整数值,它们满足公式A·B=CM,这使得可以提供多组图像列部分CNR,从而将存储器部分24a的每个行均分。即,在方案40中,图像列CNR的B=8个像素部分的A=2个组正好对应存储器部分24a的一个行或页面。在方案50中,图像列的B=2个像素部分的A=8个组正好对应一个存储器行。在方案60中,图像列的B=4个像素部分的A=4个组正好对应一个存储器行。但是,这些并不是必需的。
优选的,垂直和水平组中的像素的数目为2的幂次方。使该数目保持为2的幂次方就可以简化像素地址计算逻辑。但是,虽然使该数目保持为2的幂次方,但是这也并不是必需的。
图16示出了根据本发明另一个优选实施例的示例性存储器存储方案70。根据该方案70,示出了存储器部分24a,所述存储器部分24a中存储了多个像素Pm,n。图17示出了根据方案70将这些像素从未旋转图像矩阵映射到存储器24a的方式。在图16中,图像列CNR的3个像素部分(B=3)的51/3个组(A=51/3)。组G1表示图像列CNR1的一个3像素部分,包括像素P1,1,P2,1,P3,1。组G2表示图像列CNR2的一个3像素部分,包括像素P1,2,P2,2,P3,2。组G3表示图像列CNR3的一个3像素部分,包括像素P1,3,P2,3,P3,3。另外,组G6+表示图像列CNR6的一个1像素部分P1,6。
所述51/3个组需要十六个像素存储器行RM中的三个,例如RM1,RM2和RM3,才能接收所述非整数数目(3·5 1/3=16)的组。但是,第一存储器行RM1中的多个像素P1,1,P1,2,P1,3,P1,5和P1,6(图16)都处于未旋转图像(图17)的一个图像行RNR1中,而三个像素P1,1,P2,1,P3,1都处于旋转后图像IMAGEROT(图8)的一个单一图像行RR1中。因此,这些组也不需要与单独一个行有整数关系,现在可以很明显看出,这些行不需要与任何数目的行之间有整数关系,多个块BK也不需要像示例性存储器存储方案40,50和60中一样是规则或矩形的形状。
在上述例子中,映射到单独一个存储器行中的图像列CNR的多个部分精确地对应于相同B图像行RNR,但是,这里必然有某些重叠。这可以通过比较图18和19看出。
图18示出了根据本发明另一个优选实施例的示例性存储器存储方案80。根据该方案80,示出了存储器部分24a,所述存储器部分24a中存储了多个像素Pm,n。图19示出了根据方案80将这些像素从未旋转图像矩阵映射到存储器24a的方式。在图19示出了图7的未旋转图像矩阵,该图像矩阵具有按照与图18中所示存储器存储方案对应的不同分组配置而成的多个像素。该例子与方案60相似之处在于存在图像列CNR的4像素部分(B=4)的4个组(A=4)。图19示出具有四个组的存储器部分24a,这四个组就是存储在第一存储器行RM1中的G1-G4。例如,组G1表示图像列CNR1的4像素部分,包括P1,1,P2,1,P3,1和P4,1;组G2表示图像列CNR2的4像素部分,包括P2,2,P3,2,P4,2和P5,2。
如果将要在不旋转图像的情况下将其显示,利用存储器存储方案80的结果是,第一图像行RNR1所需的两个像素P1,1和P1,3都存储在存储器行RM1中。
另一方面,如果需要将图像旋转后显示(图8),则存储器行RM1提供了四个像素,这些像素都是第一图像行RR1所需要的,即P1,1,P2,1,P3,1,P4,1。换句话说,组G1提供了旋转后图像矩阵IMAGEROT的第一图像行RR1所需的四个像素。
对于示例性存储器存储方案80,应当注意,根据具有包装平铺单元的平铺图案(tiling pattern with wrapping tiles),该图像矩阵上边缘和下边缘上的特定像素应当与相对边缘上的其他像素分为一组。例如图像19中的像素P1,2应当与像素P479,2和P480,2分为一组。
应当知道,由于图像矩阵的行-列对称性,当用“图像行”替换“图像列”时,上面说明书中所描述的所有内容也一样可行。因此,当多个组G被示出为图像列的多个部分时,他们也可以等同为图像行的多个部分。这可以通过比较图20和21看出。
图20示出了根据本发明优选实施例的另一个示例性存储器存储方案38。根据该方案38,示出了存储器部分24a,所述存储器部分24a中存储了多个像素Pm,n。图21示出了根据方案38将这些像素从未旋转图像矩阵映射到存储器24a的方式。在图21示出了图7的未旋转图像矩阵,该图像矩阵具有根据图像行ROWNON-ROT分组的多个像素。这里有8像素部分(B=8)的2组(A=2)。这些像素部分为图像行ROWNON-ROT的部分。图21所示的未旋转图像中特别示出了组G1=图像行RNR1的像素P1,1-P1,8和组G2=图像行RNR2的像素P5,1-P5,8。
如果将要在不旋转图像的情况下将其显示,则第一图像行RNR1的八个像素P1,1-P1,8(即组G1)将被存储在存储器行RM1中。
另一方面,如果需要将图像旋转后显示,则旋转后图像矩阵IMAGEROT(图8)的图像行RR1所需的两个像素P1,1和P5,1将被存储在存储器行RM1中。
图20和21的例子也示出图像矩阵中单个存储器行中的多个组G不需要彼此相邻,组G1和G2由三个行ROWNON-ROT分隔开来。
由于本文中关于图像行或图像列中指定是否将像素分组的描述方法论是无差别的,所以文中的词语“向量”一般是指90度图像旋转情况中的图像行或图像列。
假设图像旋转是以90度递增,但是优选实施例的原理也可应用于其他角度增量的旋转。例如,图像存储配置的优选实施例可用于180度和270度的图像旋转。
模块29a最好被实现为图形控制器19中的硬件。但是应当理解本文中所描述的特征和功能也可以被实现为硬件和软件的结合或软件形式的图形控制器,只要图形控制器适应即可。例如,存储在计算机可读介质中的指令程序可以在图形控制器中包括的处理设备中执行。另外,在不脱离本发明原理的情况下,应当理解文中所描述的由图形控制器10提供的特征和功能也可以由图形控制器10以外来提供。
还应当理解,尽管作为优选已经示出和描述了用于有效图像旋转的特定图形控制器和方法,除了已经描述的内容以外,在不脱离本发明原理的情况下,还可以使用其它配置和方法。
在说明书中使用的词汇和表达方式仅用于描述而非限制的术语,本文中使用这些词汇和表达并不是为了排除所示和所描述的特征的等同物或其某些部分,应当知道本发明的范围是仅由权利要求来限定的。
权利要求
1.一种用于图像有效旋转的方法,该图像由图像矩阵来定义,其中该图像的每个数据与该图像矩阵中的一个特定图像行和特定的图像列对应,该方法包括将每个数据映射到存储器矩阵,所述存储器矩阵被组织为多个存储器行和多个存储器列,其中该映射步骤包括将下述内容映射到多个存储器行中的一个(a)至少两个数据,它们都与所述多个图像行中的一个对应,和(b)至少两个图像向量部分,这些图像向量部分中的第一个包括至少两个数据,其中每个数据对应于多个图像列中的一个,这些图像向量部分中的第二个包括至少两个其他数据,其中每个数据对应于多个图像列中的另一个。
2.如权利要求1所述的方法,其中所述第一图像向量部分的所述至少两个数据和所述第二图像向量部分的所述至少两个其他数据各自分别与相同的图像行对应。
3.如权利要求2所述的方法,其中每个图像向量部分包括B个数据,存储器矩阵具有C个存储器列,其中存储器行中存储器列C等于各图像向量部分中的数据数目和图像向量部分的数目A的乘积(C=B·A)。
4.如权利要求2所述的方法,其中数据被按照光栅次序排列为图像矩阵。
5.如权利要求2所述的方法,还包括从图像提供器接收图像矩阵并将该存储器矩阵存储到存储器中,该存储器被组织为相同数目的存储器行和存储器列作为存储器矩阵。
6.如权利要求5所述的方法,还包括从存储器中取出图像矩阵并将从该存储器中读出的数据发送给图形显示设备,该显示设备的显示区域被组织为相同数目的存储器行和存储器列作为存储器矩阵。
7.一种用于图像有效旋转的图形控制器,该图像由图像矩阵来定义,其中该图像的每个数据与该图像矩阵中的一个特定图像行和特定图像列对应,该图形控制器包括存储器,该存储器被配置为多个存储器行和多个存储器列,和存储器存储方案控制器,用于根据特定的映射方案将各数据映射到存储器矩阵中,该存储器矩阵最好被配置为多个存储器行和多个存储器列,其中该映射方案包括将下述内容映射到多个存储器行中的一个中(a)至少两个数据,它们均与多个图像行中的一个对应;和(b)至少两个图像向量部分,这些图像向量部分中的第一个包括至少两个数据,这两个数据中的每一个与多个图像列中的一个对应,这些图像向量部分中的第二个包括至少两个其他数据,这两个其他数据中的每一个与多个图像列中的另一个对应。
8.如权利要求7所述的图形控制器,其中所述第一图像向量部分的所述至少两个数据和所述第二图像向量部分的所述至少两个其他数据各自分别与相同的图像行对应。
9.如权利要求8所述的图形控制器,其中每个图像向量部分包括B个数据,存储器矩阵具有C个存储器列,其中存储器行中存储器列C等于各图像向量部分中的数据数目和图像向量部分的数目A的乘积(C=B·A)。
10.如权利要求8所述的图形控制器,其中数据为像素数据。
11.如权利要求8所述的图形控制器,其中数据被按照光栅次序排列为图像矩阵。
12.如权利要求11所述的图形控制器,还包括从图像提供器接收图像矩阵并将该存储器矩阵存储到存储器中,该存储器被组织为相同数目的存储器行和存储器列作为存储器矩阵。
13.如权利要求8所述的图形控制器,还包括从存储器中取出图像矩阵并将从该存储器中读出的数据发送给图形显示设备,该显示设备的显示区域被组织为相同数目的存储器行和存储器列作为存储器矩阵。
14.一种用于图像有效旋转的图形显示系统,该图像由图像矩阵来定义,其中该图像的每个数据与该图像矩阵中的一个特定图像行和特定图像列对应,该图形显示系统包括用于提供数据的图像提供器,用于再现数据的图形显示设备,配置为多个存储行和多个存储列的存储器,和图形控制器,该图形控制器包括存储器存储方案控制器,用于根据特定的映射方案将各数据映射到存储器矩阵中,该存储器矩阵最好被配置为多个存储器行和多个存储器列,其中该映射方案包括将下述内容映射到多个存储器行中的一个中(a)至少两个数据,它们均与多个图像行中的一个对应;和(b)至少两个图像向量部分,这些图像向量部分中的第一个包括至少两个数据,这两个数据中的每一个与多个图像列中的一个对应,这些图像向量部分中的第二个包括至少两个其他数据,这两个其他数据中的每一个与多个图像列中的另一个对应。
15.如权利要求14所述的图形显示系统,其中该图像提供器和显示设备远离所述图形控制器。
16.如权利要求14所述的图形显示系统,其中所述第一图像向量部分的所述至少两个数据和所述第二图像向量部分的所述至少两个其他数据各自分别与相同的图像行对应。
17.如权利要求16所述的图形显示系统,其中每个图像向量部分包括B个数据,存储器矩阵具有C个存储器列,其中存储器行中存储器列C等于各图像向量部分中的数据数目和图像向量部分的数目A的乘积(C=B·A)。
18.如权利要求16所述的图形显示系统,其中数据被按照光栅次序排列为图像矩阵。
全文摘要
本发明涉及一种用于实现图像有效旋转的方法和装置。该图像最好被定义为图像矩阵,其中每个图像数据与该图像矩阵中的一个特定图像行和特定图像列对应。优选方法包括将每个数据映射到存储器矩阵,所述存储器矩阵被组织为多个存储器行和多个存储器列。该映射最好包括将下述内容映射到多个存储器行中的一个(a)至少两个数据,它们都与所述多个图像行中的一个对应,和(b)至少两个图像向量部分,这些图像向量部分中的第一个包括至少两个数据,其中每个数据对应于多个图像列中的一个,这些图像向量部分中的第二个包括至少两个其他数据,其中每个其他数据对应于多个图像列中的另一个。另外,所述第一图像向量部分的所述至少两个数据和所述第二图像向量部分的所述至少两个其他数据最好各自分别与相同的图像行对应。
文档编号G09G5/38GK1905000SQ20061010576
公开日2007年1月31日 申请日期2006年7月25日 优先权日2005年7月25日
发明者J·P·范巴森, B·S·赖, 黎国立 申请人:精工爱普生株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1