具体实施方式
应该知道,提供下列索引只是为了更好地理解本发明的详细说明。
[第一实施例]
1)整体设备结构
图1示意性地示出了根据本发明第一实施例的显示设备10的实例结构。在该实施例中,显示设备10用于实现笔画字体数据的高速处理。确切地说,显示设备10具有CPU(中央处理单元)1、控制器驱动器2、LCD(液晶显示)面板3和笔画字体处理电路4。LCD面板3包括有以矩阵形式分布的像素。通过一套x轴和y轴,在LCD面板3上定义了x-y坐标系统,其中x轴定义为沿着LCD面板3的水平方向,y轴定义为沿着其垂直方向。LCD面板3的各个像素是由x地址(也就是列地址)和y地址(也就是行地址)进行编址的。
CPU 1产生与包含在待显示在LCD面板3上的显示图像中的字符有关的字体数据6。字体数据6以笔画字体格式产生,它表示具有形状和线型的每一个字符。具体地说,字体数据6是由指令组成的,每一个指令表示包含在有关字符中的线。每一个指令包括控制点坐标、表示线型的类型数据、包括在线中的像素的像素数据、表示线宽的宽度数据。控制点用于定义线的位置和形状。像素数据通常包括以GRB格式来表示有关像素颜色的颜色数据。在典型结构中,使用其中存储用于所有可用字符的字体数据的字体存储器来产生字体数据6。
笔画字体处理电路4用于产生由字符组成的显示图像的图像数据。在该实施例中,产生的图像数据为位图格式。可以理解,下文中将通过笔画字体处理电路4产生的图像数据称为“位图数据5”。位图数据5是由用于表示LCD面板3内的每一像素颜色的像素数据组成。所产生的位图数据5经由CPU 1被传递到控制器驱动器2。
响应位图数据5,控制器驱动器2驱动LCD面板3,以在LCD面板3上显示期望图像。
笔画字体处理电路4具有笔画字体绘制电路11和图像存储器12。笔画字体绘制电路11依次解释包含在字体数据6中的指令,以响应字体数据6,在图像存储器12上生成对应于字符的位图数据5。笔画字体绘制电路11在图像存储器12上产生与字符有关的位图数据5的这种操作在下文中也可以用术语“绘制字符”来表示。使用图像存储器12作为产生位图数据5的工作区域。在笔画字体绘制电路11在图像存储器12上完成“绘制字符”之后,在图像存储器12上生成有关的位图数据5。然后将由笔画字体绘制电路11生成的位图数据5经由CPU 1传递到控制器驱动器2。
提高像素数据到图像存储器12的写入速度是提高笔画字体处理电路4的运行速度的重要方面之一。如图2A所示,现有图像存储器结构“逐个像素地”将像素数据写入图像存储器。例如,将与以三行三列方式排列的像素有关的像素数据的写操作细分成9次写操作。在该现有写方法中,为了写入像素数据,需要多个写周期;所需写周期的总个数等于与该像素数据有关的像素的个数。该现有方法不适用于快速生成位图数据5。
另一方面,该实施例的显示设备10通过利用每一字符是由单个颜色来绘制这一事实,实现了像素数据到图像存储器12的高速数据写入;与字符有关的所有像素都是用与字符颜色有关的相同像素数据来编程的。具体地说,如图2B所示,当使用相同像素数据来对像素进行编程时,所设计的第一实施例的图像存储器12对于与字符中特定矩形区域相关的一组像素,将其像素数据同步写入图像存储器12。由于与字符有关的像素通常用相同像素数据来编程,因此这种数据写入处理对于写入由字符构成的图像的图像数据来说是有优势的。下面来详细讲述笔画字体绘制电路11和图像存储器12的实例结构和操作。
2)笔画字体绘制电路的结构和操作
如上所述,笔画字体绘制电路11响应字体数据6,为图像存储器12提供“字符绘制”。
示意性地,笔画字体绘制电路11的操作如下:笔画字体绘制电路11根据字体数据6来识别待显示字符的形状,并且在所识别的字符中限定一组矩形区域,以便每一个矩形区域内的像素都用相同像素数据来编程。如后所述,用于表示字符的两个或更多的矩形区域可以相互重叠。
另外,如图1所示,笔画字体绘制电路11产生矩形区域数据13,其每一个都与矩形区域有关。矩形区域数据13包括有关矩形区域参考点的坐标、有关矩形区域沿着x轴方向的宽度“W”、有关矩形区域沿着y轴方向的高度“h”,以及有关矩形区域中所包含的像素的像素数据。每一个矩形区域的宽度“W”用分布于一行中的像素个数来表示,因此宽度“W”为自然数。相应地,每一个矩形区域的高度“h”用分布于一列中的像素个数来表示。在下文中将参考点的坐标集称为“参考坐标”,并且参考点的x和y坐标可以分别用符号“x0”和“y0”来表示。
矩形区域数据13内的参考坐标(x0,y0)用于指明每一个矩形区域的位置。需要注意的是,可以将参考坐标定义为矩形区域内任何位置的坐标。例如,可以将参考坐标定义为每一个矩形区域中心点的坐标,和/或定义为有关矩形区域的(多个)拐角的坐标。还需要注意的是,优选情况下每一个矩形区域的位置用其中心点的坐标来表示,因为这有助于计算每一个矩形区域的位置;以笔画字体格式表示的字体数据6,用有关字符中心线的形状和线型(包括每一个线的颜色)来表示每一个字符。在该实施例中,可以将参考坐标(x0,y0)定义为每一个矩形区域中心点的坐标。
将由笔画字体绘制电路11产生的矩形区域数据13传递到图像存储器12。将以矩形区域数据13描述的矩形区域内像素的像素数据写入图像存储器12,以完成“字符绘制”。将包含在特定矩形区域中的像素的像素数据同时写入图像存储器12,以实现对有关像素的像素数据的高速写入。
3)图像存储器的结构和操作
图5为框图,示意性地示出了图像存储器12的实例结构。图像存储器12是由Y地址控制电路21、Y区域选择电路22、字线解码器23、X地址控制电路24、X区域选择电路25、位线解码器26和存储单元阵列27组成。存储单元阵列27具有像素块33、字线31和位线32。每一个像素块33起到用于存储有关像素数据的像素数据存储元件的作用;像素块33与LCD面板3内的各个像素一一对应。每一个像素块33存储有关像素的像素数据。通过使用有关像素的一组x和y地址,可以对像素块33进行寻址。每一个像素块33是由分布于水平方向(x方向)的n个存储单元34组成,以在其中存储n位像素数据。在该实施例中,所设计的每一个像素块33存储由8位R(红色)数据、8位G(绿色)数据和8位B(蓝色)数据组成的24位像素数据。存储单元34位于字线31和位线32的各个相交处。通过使用期望像素的x和y地址对期望字线31和位线32进行寻址,可以访问用于存储期望像素的像素数据的一组存储单元34。
Y地址控制电路21根据有关矩形区域的y参考坐标“y0”和高度“h”,来计算矩形区域数据13中所表示的有关矩形区域的y地址的一组最大值“yMAX”和最小值“yMIN”。可以使用各种计算方法来确定有关矩形区域的y地址的最大值yMAX和最小值yMIN。
在一个实施例中,根据高度“h”是奇数还是偶数,可以使用不同的公式来确定最大值yMAX和最小值yMIN。在该实施例中,当高度“h”为奇数时,最大值yMAX和最小值yMIN可以使用如下公式来计算:
yMAX=y0+h/2,以及
yMIN=y0-h/2,
当高度“h”为偶数时,使用如下公式来计算:
yMAX=y0+h/2,以及
yMIN=y0-h/2-1,
可选情况下,当高度“h”为偶数时,最大值yMAX和最小值yMIN可以通过如下公式来计算:
yMAX=y0+h/2-1,以及
yMIN=y0-h/2,
在可选实施例中,不论高度“h”为奇数还是偶数,都可以通过如下公式来计算最大值yMAX和最小值yMIN:
yMAX=y0+h,以及
yMIN=y0,
相反,可以通过如下公式来计算最大值yMAX和最小值yMIN:
yMAX=y0,以及
yMIN=y0-h,
Y区域选择电路22响应有关矩形区域的最大值yMAX和最小值yMIN,将y地址信号“280”~“28M-1”输出到字线解码器23。还需要注意的是,符号“M”表示像素块33所分布的行数。这意味着像素的y地址的范围是0~M-1。Y区域选择电路22激活所选的与y地址yMAX~yMIN有关的(多个)y地址信号280~28M-1。应该知道,可以为单个写操作选择两个或更多的y地址。
字线解码器23响应y地址信号280~28M-1,激活所选的字线31。当选择了多个y地址时,同时激活与所选y地址有关的多个字线。这为有关的存储单元34和位线32之间提供了电气连接。
与Y地址控制电路21相类似,所设计的X地址控制电路24根据有关矩形区域的x参考坐标“x0”和宽度“W”,计算矩形区域数据13中所表示的矩形区域的x地址的最大值“xMAX”和最小值“xMIN”。可以使用各种计算方法来确定最大值xMAX和最小值xMIN。
在一个实施例中,根据宽度“W”是奇数还是偶数,可以使用不同的公式来确定最大值xMAX和最小值xMIN。在该实施例中,当宽度“W”为奇数时,最大值xMAX和最小值xMIN可以使用如下公式来计算:
xMAX=x0+W/2,以及
xMIN=x0-W/2,
而当宽度“W”为偶数时,使用如下公式来计算:
xMAX=x0+W/2,以及
xMIN=x0-W/2-1,
可选情况下,当宽度“W”为偶数时,最大值xMAX和最小值xMIN可以通过如下公式来计算:
xMAX=x0+W/2-1,以及
xMIN=x0-W/2,
在可选实施例中,不论宽度“W”为奇数还是偶数,都可以通过如下公式来计算最大值xMAX和最小值xMIN:
xMAX=x0+W,以及
xMIN=x0,
相反,可以通过如下公式来计算最大值xMAX和最小值xMIN:
xMAX=x0,以及
xMIN=x0-W。
X区域选择电路25响应有关矩形区域的x地址的最大值xMAX和最小值xMIN,将x地址信号290~29N-1提供到位线解码器26。x地址信号290~29N-1表示是否选择了各个x地址。需要注意的是,符号“N”表示像素块42所分布的列数。这意味着x地址的范围为0~N-1。X区域选择电路25激活所选的与一组所选x地址有关的(多个)x地址信号290~29N-1,也就是说,范围为xMIN~xMAX的x地址。应该知道,在单个写操作中可以选择多个x地址。通过使用由Y区域选择电路22选择的y地址和由X区域选择电路25选择的x地址来选择期望的(多个)像素块33。
位线解码器26响应x地址信号290~29N-1,将从与所选(多个)x地址有关的位线32中选出的位线32连接到用于将矩形区域数据13内的像素数据传递到图像存储器12的n个信号线。这完成了将像素数据写入所选的(多个)像素块33中,也就是说,将像素数据的数据位写入了所选的(多个)像素块33的有关存储单元34中。
上述结构允许图像存储器12选择位于有关矩形区域内的多行和/或多列上的像素块33,并且将像素数据同时写到所选的像素块33。
4)Y区域选择电路和X区域选择电路的结构和操作
图6为电路图,示出了Y区域选择电路22的实例结构。Y区域选择电路22具有传递栅410~41M-1、N-沟道晶体管420~42M-1、逻辑电路43和输出反相器440~44M-1。传递栅410~41M-1和N-沟道晶体管420~42M-1起到开关元件的作用。
传递栅410~41M-1在电源引脚49和50之间是串联的。将位于串联传递栅一端的传递栅410插入到电源引脚49和输出节点N0之间。将位于串联传递栅另一端的传递栅41M-1插入到输出节点NM-1和电源引脚50之间。将传递栅41i插入到输出节点Ni-1和输出节点Ni之间。换句话说,输出节点Ni将传递栅41i电气耦连到传递栅41i+1。
每一个传递栅41i+1都具有N-沟道MOS晶体管45i、P-沟道MOS晶体管46i和反相器47i。N-沟道MOS晶体管45i和P-沟道MOS晶体管46i具有共用耦连的源极和漏极。反相器47i的输入端和MOS晶体管的栅极连接到控制引脚48i,并且反相器47i的输出端连接到N-沟道MOS晶体管46i的栅极。
响应控制引脚480~48M-1的电势来分别接通或断开传递栅410~41M-1。当控制引脚480~48M-1降低到接地电势时,则断开传递栅410~41M-1。另一方面,当控制引脚480~48M-1升高到电源电势时,则接通传递栅410~41M-1。
将N-沟道MOS晶体管420~42M-1分别插入到输出节点N0~NM-1和接地引脚510~51M-1之间。将N-沟道MOS晶体管42i的漏极连接到输出节点Ni,并且将其源极连接到接地引脚51i。
逻辑电路43响应有关矩形区域y地址的最大值yMAX和最小值yMIN,来控制传递栅410~41M-1和N-沟道MOS晶体管420~42M-1。
下面来详细讲述逻辑电路43的结构。逻辑电路43具有解码器电路520~52M-1、解码器电路530~53M-1、反相器540、NAND栅542~54M-1和反相器550~55M-1。所设计的解码器电路520~52M-1响应矩形区域的y地址的最大值yMAX来升高或降低其输出;当最大值yMAX为“i”时,解码器电路52i将其输出降低到“低”电平;否则解码器电路52i将输出升高到“高”电平。相应地,当最大值yMIN为“i”时,解码器电路53i将其输出降低到“低”电平;当最大值yMIN不为“i”时,则将输出升高到“高”电平。将解码器电路520~52M-1的输出端分别经由反相器550~55M-1连接到N-沟道MOS晶体管420~42M-1的栅极。将位于端点处的解码器电路52M-1的输出端进一步经由反相器55M-1连接到传递栅41M的控制引脚48M。
另一方面,将用于接收最小值yMIN的解码器电路530的输出端连接到反相器540的输入端,并且将反相器540的输出端连接到控制引脚480。将其余解码器电路542~53M-1的输出端分别连接到NAND栅542~54M-1的第一输入端。将NAND栅542~54M-1的第二输入端分别连接到解码器电路520~52M-1的输出端。将NAND栅542~54M-1的输出端分别连接到控制引脚482~48M-1。
将输出反相器440~44M-1的输入端分别连接到输出节点“N0”~“NM-1”。从反相器440~44M-1的输出端输出y地址信号280~28M-1。
图7为概念性示意图,示出了Y区域选择电路22的实例操作;图7的解释假设最大值yMAX为3,最小值yMIN为1。当逻辑电路43接收有关矩形区域y地址的最大值yMAX和最小值yMIN时,逻辑电路43在接通其余传递栅41的同时,断开传递栅“41yMAX+1”和传递栅“41yMIN”。进而,逻辑电路43接通N-沟道MOS晶体管42yMAX,并且断开其余N-沟道MOS晶体管42。这导致输出节点NyMIN~NyMAX被降低到“低”电平,其余输出节点被升高到“高”电平。这导致y地址信号28yMIN~28yMAX被升高到“高”电平,而其余y地址信号28被降低到“低”电平,换句话说,选择了与有关矩形区域有关的y地址yMIN~yMAX 。
提高Y区域选择电路22的运行速度需要高速升高与待去激活的Y地址信号有关的输出节点;不过,如图6所示的Y区域选择电路22的结构不适用于有关输出节点的高速升高。具体地说,如图6所示的Y区域选择电路22的结构需要将期望的输出节点经由一个或更多的传递栅41连接到用于升高期望输出节点的电源引脚49或电源引脚50中的任一个。因此,由于传递栅41的接通电阻,期望输出节点的升高会令人不快地需要较长时间,特别是对于待升高的输出节点是经由大量传递栅41连接到电源引脚49(或电源引脚50)的情况。
为了减少升高期望输出节点所需的时间,优选情况下在将y地址信号280~28M-1驱动到期望电平之前,将输出节点N0~NM-1预充电到“高”电平。图8示出了Y区域选择电路22的优选结构,用于将输出节点N0~NM-1预充电到“高”电平。在该结构中,Y区域选择电路22额外还具有一组P-沟道MOS晶体管560~56M-1。将P-沟道MOS晶体管560~56M-1的源极连接到电源引脚570~57M-1,并且将其漏极连接到输出节点N0~NM-1。将预充电控制信号59输入到P-沟道MOS晶体管560~56M-1的栅极。响应预充电控制信号57的降低,将输出节点N0~NM-1分别电气连接到电源引脚570~57M-1。
用于提高Y区域选择电路22的运行速度的另一方法就是为与待激活的Y地址信号280~29M-1有关的输出节点提供高速降低。优选情况下该方法是通过使用两个或更多N-沟道MOS晶体管42来将期望输出节点降低到“低”电平而实现的。
图9为电路图,示出了Y区域选择电路22的实例结构,用于通过使用两个或更多MOS晶体管42来降低期望输出节点。如图9所示的Y区域选择电路22的结构与如图8所示的不同在于逻辑电路43的结构;图9的逻辑电路43另外还包括了NAND栅580~58M-1。将NAND栅58i的一个输入端连接到第一解码器52i的输出端和第二解码器53i的输出端,将NAND栅58i的另一个输入端连接到反相器55i的输出端。将NAND栅58i的输出端连接到N-沟道MOS晶体管42i的栅极。
图10为概念性示意图,用于表示图9所示的Y区域选择电路22的操作;图10的解释假设最大值yMAX为3,最小值yMIN为1。当逻辑电路43接收矩形区域y地址的最大值yMAX和最小值yMIN时,逻辑电路43在接通其余传递栅41的同时,断开传递栅41yMAX+1和传递栅41yMIN。另外,逻辑电路43在断开其余N-沟道MOS晶体管42的情况下,接通两个N-沟道MOS晶体管42yMAX和42yMIN。结果,输出节点NyMIN~NyMAX被降低到“低”电平,其余输出节点被升高到“高”电平。这导致y地址信号28yMIN~28yMAX被有选择地升高到“高”电平,换句话说,选择了与有关矩形区域有关的y地址yMIN~yMAX。
根据图10应该知道,图9的Y区域选择电路22通过使用用于降低期望输出节点NyMIN~NyMAX的两个N-沟道MOS晶体管42yMAX和42yMIN,有效地减少了降低期望输出节点NyMIN~NyMAX所需的时间。
应该知道,可选情况下可以将接地引脚连接到传递栅410和41M,而不是连接到电源引脚49和50;可选情况下可以将电源引脚连接到N-沟道MOS晶体管420~42M-1,而不是连接到接地引脚510~51M-1;并且可选情况下可以将接地引脚连接到P-沟道MOS晶体管560~56M-1,而不是连接到电源引脚570~57M-1。在该可选情况下,使用传递栅而不使用N-沟道MOS晶体管420~42M-1是合适的。
X区域选择电路25的结构和操作与Y区域选择电路22的基本类似。不同之处在于组成X区域选择电路25的元件个数,并且输入到X区域选择电路25或从X区域选择电路25输出的信号是不同的。X区域选择电路25接收有关矩形区域x地址的最大值xMAX和最小值xMIN,而不是y地址的最大值yMAX和最小值yMIN。进而,设计的X区域选择电路25输出X地址信号290~29M-1,而不是Y地址信号280~28M-1。而且,有关元件的个数根据待输出的地址信号个数的变化而变化。由于本领域的普通技术人员都明白对Y区域选择电路22的必要修改,因此省略了对X区域选择电路23的结构和操作的详细解释。
5)显示设备的操作
如上所述,设计的第一实施例中的显示设备通过使用笔画字体处理电路4来将以笔画字体格式表示的字体数据6转换成位图数据5,并且响应位图数据5来驱动LCD面板3。下面来详细讲述将字体数据6转换成位图数据5的实例处理。
回头参照图1,如后所述,笔画字体处理电路4的字体绘制电路11从字体数据6产生矩形区域数据13。字体绘制电路11确认用于组成待显示的每一个字符的线的形状,并且限定用于各个线的一组矩形区域,以便每一个矩形区域包括待用相同像素数据来进行编程的像素;组成字符的线是用一组矩形区域来表示的。然后字体绘制电路11为每一个矩形区域产生矩形区域数据13,以便矩形区域数据13表示x和y参考坐标x0和y0、有关矩形区域的宽度“W”、高度“h”,以及对有关像素进行编程的像素数据。在该实施例中,x和y参考坐标x0和y0被定义为每一个矩形区域的中心点。
对矩形区域进行合理的限定对于以较少步骤数来实现将所需像素数据写入到图像存储器12上来说是有效的。特别是,限定矩形区域对于减少与像素数据的数据写入有关的步骤数来说是有效的,以便两个或更多的矩形区域能够相互重叠。
在一个实施例中,如图3A所示,根据下面讲述的两个步骤,将分布于具有相同颜色的十字形区域中像素的像素数据写到图像存储器12:第一,将与第一矩形区域内以五行三列方式排列的具有相同颜色的像素有关的像素数据同时写到图像存储器12。随后同步写入第二矩形区域内与以三行和五列方式排式的具有相同颜色的像素有关的像素数据。需要注意的是,所限定的第二矩形区域与第一矩形区域相重叠。该处理有效地减少了写入与分布于十字形区域内像素有关的像素数据所必需的步骤数。与十字形区域有关的上述写方法也适用于写入分布于斜线中像素的像素数据。在优选实施例中,在与分布于斜线中的像素有关的像素数据的写操作中,沿着斜线的中心线扫描十字形区域的中心点。这以较少步骤数有效地实现了有关像素数据的数据写入。
进而,如图3C所示,通过限定矩形区域以覆盖整个有关线,可以同时写入与分布于沿着水平方向(x方向)延伸的有关线之内的像素有关的像素数据。对于沿着垂直方向(y方向)延伸的线来说,也是如此。以这种方式限定的矩形区域有效地减少了写入与分布于沿着水平或垂直方向延伸的线之内的像素有关的像素数据所需的步骤数。
图4示出了用于产生矩形区域数据13的字体绘制电路11的详细操作。字体绘制电路11为字体数据6中描述的每一个线提供了如后所述的处理操作。
字体绘制电路11确定待处理的每一个线是直线还是曲线。在有关线为直线的情况下,字体绘制电路11在步骤S01执行线绘制计算。在该线绘制计算中,字体绘制电路11根据位于待处理直线的中心线两端上的控制点坐标,计算一套x和y参考坐标x0和y0,以及用于表示每一个矩形区域的直线倾斜度的倾斜数据。进而,字体绘制电路11在步骤S02执行宽度/高度计算,它包括根据以字体数据6描述的有关直线的倾斜数据和宽度数据来计算每个矩形区域的宽度“W”和高度“h”。矩形区域数据13是通过执行线绘制计算和宽度/高度计算来产生的。
线绘制计算和宽度/高度计算中执行的处理操作取决于线绘制计算中计算的倾斜度。在待处理的直线为水平线(也就是沿着x方向的线)的情况下,如图3C所示,字体绘制电路11限定矩形区域以覆盖水平线,其中具有相同颜色的像素是以行列方式分布的。然后字体绘制电路11根据定义在待处理直线的中心线两端上的控制点坐标,计算有关矩形区域的x和y参考坐标x0和y0以及宽度W。另外,字体绘制电路11确定有关矩形区域的高度“h”作为以字体数据6描述的有关直线的宽度数据的值。x和y参考坐标x0和y0的定义使得x和y参考坐标x0和y0与有关直线的中心线的中值点相对应。
在待处理的直线为垂直线(也就是沿着y方向的直线)的情况下,执行类似的处理操作。字体绘制电路11限定矩形区域以覆盖垂直线,其中具有相同颜色的像素是以行列方式分布的。字体绘制电路11由位于该垂直线的中心线的两边缘上的控制点的坐标来计算矩形区域的高度“h”,并且确定矩形区域的宽度“W”作为以字体数据6描述的垂直线的宽度数据的值。
在待处理的直线为斜线的情况下,字体绘制电路11产生矩形区域数据13,以便有关斜线由多个矩形区域来表示。应该知道,这些矩形区域可以相互重叠,如图3B所示。具体地说,字体绘制电路11确定每一个矩形区域的x和y参考坐标x0和y0,以便x和y参考坐标x0和y0与位于斜线的中心线上的点相对应。进而,字体绘制电路11根据倾斜数据和与待处理的直线有关的宽度数据,计算每一个矩形区域的宽度“W”和高度“h”。
另一方面,在待处理的线为曲线的情况下,字体绘制电路11通过使用多个短直线来近似曲线。字体绘制电路11首先在步骤S03根据曲线的控制点坐标来确定用于近似曲线的线的个数,这可被称为分割数。进而,字体绘制电路11在步骤S04将有关曲线分成一组短直线,其总数等于分割数,并且计算通过分割有关曲线而获得的直线两端点的坐标来作为所获直线的控制点坐标。然后字体绘制电路11对每一个所获直线执行步骤S01和S02中定义的上述处理操作,以产生矩形区域数据13。
为各个矩形区域所确定的矩形区域数据13被依次传递到图像存储器12。响应矩形区域数据13,将位于每一个矩形区域内像素的像素数据同时写入图像存储器12中。该步骤有效地实现了在图像存储器12上高速地产生位图数据5。
6)阶段性结论
如前所述,当使用具有相同颜色的相同像素数据对有关像素进行编程时,第一实施例的显示设备10将分布于矩形区域中的多个像素的像素数据同步写到图像存储器12。换句话说,显示设备10将由相同颜色来表示的像素数据写入以多行多列方式分布的多个像素块33中。这样设计的显示设备10在产生位图数据5的过程中有效地提高了对图像存储器12的访问速度。
在该实施例中的笔画字体处理电路4中执行的图像处理操作适用于对诸如绘画图像等包含有大量与相同颜色有关的像素的图像进行处理。在这种情况下,将表示有关图像内所包括的图元的形状数据发送到图像存储器电路,然后该图像处理电路为图元限定一组矩形区域,以便每一个矩形区域包括与相同颜色有关的像素。图像处理电路产生了表示每一个矩形区域的位置、颜色、宽度和高度的矩形区域数据,并且根据所产生的矩形数据,将每一个矩形区域内像素的像素数据同时写入图像存储器。上述图像处理方法实现了在图像存储器上高速地产生与包含有大量相同颜色像素的图像有关的期望图像数据。
在可选实施例中,可以在图像存储器12上生成表示字符形状而不表示字符颜色的图像数据,而不是生成位图格式图像数据(也就是由RGB数据构建的位图数据5)。例如,可以在图像存储器12上生成二进制数据。在这种情况下,将位于待绘制字符内有关像素的像素数据设定为例如“1”,而将不位于该字符内的像素的像素数据设定为例如“0”。
第二实施例
在本发明的第二实施例中,对显示设备的结构和操作进行修改,以减少加载到笔画字体绘制电路11的处理操作量;对笔画字体绘制电路11的操作进行修改,如图11和图12所示,并且也对图像存储器12的结构进行修改,如图13所示。
图11示出了第二实施例中笔画字体绘制电路11的操作。笔画字体绘制电路11对包括在待显示字符内的每一个有关线执行如图11所示的操作。
对于有关线为曲线的情况,在步骤S11将曲线分成一组直线;对于有关线为直线的情况,就跳过步骤S11。
随后,在步骤S12以近似的方式将有关直线的中心线细分成一组垂直线、(多个)水平线和多个点。应该知道,在步骤S12待处理的有关直线可以是待处理的有关线,并且是通过细分曲线而获得的直线之一。
图12为流程图,示出了将一条有关直线的中心线细分成一组(多个)垂直线、(多个)水平线和(多个)点的算法。首先,在步骤S12-1获得有关直线中心线两端的坐标。在下文中将中心线的端点称为点“A”和“B”。然后在步骤S12-2,笔画字体绘制电路11确定点A和点B之间沿着x轴方向的距离“dx”,以及点A和点B之间沿着y方向的另一距离“dy”。距离“dx”和“dy”由如下公式表示:
dx=|xA-xB|+1,以及
dy=|yA-yB|+1,
这里(xA,yA)为点A(中心线的一个端点)的坐标,(xB,yB)为点B(中心线的另一个端点)的坐标。坐标xA、yA、xB和yB都是由用于表示有关像素地址的整数来表示的。应该知道,距离“dx”和“dy”也是整数,它是通过坐标(xA,yA)和坐标(xB,yB)来获得的。
接下来在步骤S12-3,通过比较距离“dx”和距离“dy”,来判定有关直线的中心线是“纵”线还是“横”线。
在步骤S12-4,当距离dx长于距离dy时,将中心线分成“dy”段水平线。例如,在作为有关中心线端点的点A和点B的坐标分别为(0,0)和(5,1)的情况下,将有关中心线分成两段水平线:也就是说,将有关中心线细分成其端点位于坐标(0,0)和(2,0)的第一水平线,以及其端点位于坐标(3,1)和(5,1)的第二水平线。
通过分割有关中心线获得的水平线的长度如下:
(a)当距离“dx”可被距离“dy”整除时,将所有水平线的长度确定为“dx/dy”。
(b)当距离“dx”不能被距离“dy”整除时,将“dy-{dx mod dy}”段水平线的长度确定为“dx/dy”,并且将其余“dx mod dy”段水平线的长度确定为“dx/dy-1”。
另一方面,在距离“dx”短于距离“dy”的情况下,在步骤S12-5将中心线细分成“dx”段垂直线。用于将该中心线细分成一组垂直线的方法与将中心线细分成水平线的方法是相同的。
在距离“dx”等于距离“dy”的情况下,在步骤S12-6将有关中心线细分成“dx”个(=“dy”个)点。
在第二实施例中,为通过细分中心线产生的每一个水平线、垂直线和点来限定矩形区域;为每一个水平线、垂直线和点来确定表示每一个矩形区域位置的参考坐标。
在该实施例中,给定用于每一个矩形区域的两组参考坐标;两组参考坐标(x0,y0)和(x1,y1)的定义如下。对于水平线和垂直线,根据如下公式由位于水平线和垂直线两端的点“P”和“Q“的坐标(xP,yP)和(xQ,yQ)来确定参考坐标(x0,y0)和(x1,y1)。
x0=max(xP,xQ),
x1=min(xP,xQ),
y0=max(yP,yQ),以及
y1=min(yP,yQ),
另一方面,对于点,根据如下公式由有关点的坐标(xR,yR)来确定参考坐标(x0,y0)和(x1,y1):
x0=x1=xR,以及
y0=y1=yR
笔画字体绘制电路11为每一个矩形区域产生矩形区域数据13,以便矩形区域数据13包括两组参考坐标(x0,y0)和(x1,y1)、宽度数据和像素数据,并且将所产生的矩形区域数据13提供给图像存储器12。如后所述,参考坐标(x0,y0)和(x1,y1)以及宽度数据用于计算每一个矩形区域的x地址的最大值xMAX和最小值xMIN,也用于计算每一个矩形区域的y地址的最大值yMAX和最小值yMIN;参考坐标和宽度数据表示有关矩形区域的位置、宽度和高度。
笔画字体绘制电路11响应包括了参考坐标(x0,y0)和(x1,y1)、宽度数据和像素数据的矩形区域数据13,将用于每一个矩形区域的有关像素的像素数据同时写入图像存储器12。
具体地说,y地址控制电路21根据参考坐标(x0,y0)、(x1,y1)和宽度数据来计算每一个矩形区域y地址的最大值yMAX和最小值yMIN。相应地,x地址控制电路24根据参考坐标(x0,y0)、(x1,y1)和宽度数据来计算每一个矩形区域x地址的最大值xMAX和最小值xMIN。
可以使用各种方法来计算最大值yMAX、最小值yMIN、最大值xMAX和最小值xMIN。
在一个实施例中,根据宽度“”是奇数还是偶数,使用不同的公式来计算最大值yMAX、最小值yMIN、最大值xMAX和最小值xMIN,宽度“”是用矩形区域数据13内的宽度数据来描述的。当宽度“”为奇数时,最大值xMAX和最小值xMIN、最大值yMAX和最小值yMIN可以由如下公式来计算:
xMAX=x0+/2,
xMIN=x1-/2,
yMAX=y0+/2,以及
yMIN=y1-/2
另一方面,当宽度“”为偶数时,最大值xMAX和最小值xMIN、最大值yMAX和最小值yMIN可以由如下公式来计算:
xMAX=x0+/2,
xMIN=x1-/2-1,
yMAX=y0+/2,以及
yMIN=y1-/2-1
可选情况下,当宽度“”为偶数时,最大值xMAX和最小值xMIN、最大值yMAX和最小值yMIN可以由如下公式来计算:
xMAX=x0+/2-1,
xMIN=x1-/2,
yMAX=y0+/2-1,以及
yMIN=y1-/2
在可选实施例中,不论宽度“”是奇数还是偶数,最大值xMAX和最小值xMIN、最大值yMAX和最小值yMIN可以由如下公式来计算:
xMAX=x0+,
xMIN=x0,
yMAX=y0+,以及
yMIN=y0
相反,最大值xMAX和最小值xMIN、最大值yMAX和最小值yMIN可以由如下公式来计算:
xMAX=x0,
xMIN=x0-,
yMAX=y0,以及
yMIN=y0-
然后Y区域选择电路22响应有关矩形区域y地址的最大值yMAX和最小值yMIN,选择y地址信号280~28M-1。选择了与范围为yMAX~yMIN的y地址有关的一个或多个y地址信号280~28M-1。
字线解码器23响应y地址信号280~28M-1,激活有关的字线31。当选择了多个y地址时,同时激活了两个或更多的字线31。将与所激活的字线31相连接的存储单元34电气连接到位线32。
相应地,X地址控制电路25响应有关矩形区域x地址的最大值xMAX和最小值xMIN,选择x地址信号290~29N-1。选择了与范围为xMAX~xMIN的x地址有关的一个或多个x地址信号290~29N-1。
位线解码器26响应x地址信号290~29N-1,将与所选x地址有关的位线32连接到用于将像素数据传递到图像存储器12的信号线。结果,像素数据被写入了所选的像素块33中。换句话说,像素数据的数据位被写入了所选像素块33内的有关存储单元34中。
第二实施例中的显示设备的一个优点是由笔画字体绘制电路11执行的计算操作非常简单;与第一实施例相比,它有效地减少了由笔画字体绘制电路11执行的处理量。这对于在图像存储器12上实现高速“字符绘制”来说是有效的。
第三实施例
图14为框图,示意性地示出了根据本发明第三实施例的显示设备20的实例。第三实施例的显示设备20集成了控制器驱动器,用于响应外部所输入的笔画字体数据来产生像素数据,并且根据所产生的像素数据来驱动LCD面板。所产生的像素数据存储在与第一和第二实施例所使用的图像存储器12具有相同结构的存储器中,用于同时写入与以多行多列方式排列的多个像素有关的像素数据。在第三实施例中来详细描述显示设备20。
在第三实施例中,显示设备20具有CPU 61、控制器驱动器62和包括了以矩阵方式分布的像素的LCD面板63。CPU 61为控制器驱动器62提供了与待显示在LCD面板63上的图像有关的显示数据。CPU61另外为控制器驱动器62提供了控制信号66和颜色板数据67。控制器驱动器62响应像素数据、控制信号66和颜色板数据67,用以驱动LCD面板63,从而在其上显示期望图像。
从CPU 61提供给控制器驱动器62的显示数据包括两类数据:与背景图像有关的位图数据64和与待叠加在背景图像上的字符有关的字体数据65。
位图数据64是由用RGB格式表示的像素数据组成,用于表示每一个像素的R、G和B灰度级。
字体数据65是用笔画字体格式表示的,用于描述待显示在LCD面板63上的字符。使用用于传递待显示字符的笔画字体格式对于减少显示数据的规模是有效的。一般地说,用笔画字体格式描述的字体数据的规模约为用位图格式描述的1/4。
在该实施例中,字体数据65指明使用了n位颜色标号而不是RGB数据的每一个字符的颜色。需要注意的是,当n位颜色标号用于指明其颜色时,用于表示特定字符的可用颜色数等于2n。对n位颜色标号进行定义,使得用于表示字符的可用颜色数要小于用于在LCD面板63上显示图像的可用颜色数。在该第三实施例中,每一个颜色标号的范围为0~3,用两个数据位来表示。使用颜色标号有一个优点,即用于存储显示数据的控制器驱动器62的存储容量较小。
颜色板数据67描述了以字体数据65描述的颜色标号和与可用颜色有关的RGB数据(也就是表示R、G、B灰度级的数据集)之间的关联。图15为解释图,概念性地示出了上述颜色板数据67的内容。例如,颜色标号“1”与“蓝色”有关(也就是与对应于“蓝色”的RGB数据有关);另一颜色标号“2”与“红色”有关(也就是与对应于“红色”的RGB数据有关);又一颜色标号“3”与“黄色”有关(也就是与对应于“黄色”的RGB数据有关)。
回头参照图14,控制器驱动器62具有控制电路71、图像显示存储器72、笔画字体绘制电路73、字体处理存储器74、字体显示存储器75、滤波器76、颜色板电路77和驱动电路78。控制电路71响应从CPU 62接收的控制信号66,以控制集成在控制器驱动器62内的电路。首先,控制电路71将从CPU 61接收的数据传送到合适的目的地。具体地说,控制电路71将位图数据64传送到图像显示存储器72,而将字体数据65传送到笔画字体绘制电路73。进而,控制电路71将颜色板数据67传送到颜色板电路77。最后,控制电路71将定时控制信号79提供给驱动电路78,以控制驱动电路78的运行时间,并且将计算控制信号80提供给滤波器76,以表示应该由滤波器76执行的计算。
图像显示存储器72从控制电路71接收与背景图像有关的位图数据64,并且存储所接收的位图数据64。
笔画字体绘制电路73的设计与根据第一实施例(或第二实施例)的笔画字体绘制电路11相类似。设计的笔画字体绘制电路73根据字体数据65来识别每一个有关字符的形状,并且限定一组矩形区域,以便每一个矩形区域包括与相同颜色有关的像素。如上所述,两个或更多的矩形区域可以相互重叠。进而,笔画字体绘制电路73为每一个矩形区域产生矩形区域数据81。矩形区域数据81包括的内容与第一实施例(或第二实施例)的矩形区域数据13的内容相类似,每一个矩形区域数据81表示了有关矩形区域的x和y参考坐标x0和y0,并且描述了有关矩形区域沿着x轴方向的宽度“W”和其沿着y轴方向的高度“h”,以及用于指明有关矩形区域颜色的颜色标号。需要注意的是,在矩形区域数据81中,每一个矩形区域的颜色是通过颜色标号而不是通过RGB数据来指明的。
字体处理存储器74的设计与第一实施例(或第二实施例)的图像存储器12的相类似,用于在其中存储由待显示字符的像素数据组成的用颜色标号来表示字符颜色的颜色标号数据82。字体处理存储器74根据从笔画字体绘制电路73接收的矩形区域数据81,产生颜色标号数据82。具体地说,字体处理存储器74依次从笔画字体绘制电路73接收矩形区域数据81,并且字体处理存储器74将在所传递的矩形区域数据81中描述的颜色标号数据同时写入与包括在有关矩形区域内的像素有关的像素块中。这实现了在字体处理存储器74上产生颜色标号数据82,从而完成了“字符绘制”。
字体显示存储器75从字体处理存储器74接收颜色标号数据82,然后将所接收的颜色标号数据82存储其中。存储在字体显示存储器器75中的颜色标号数据82用于在LCD面板63上显示期望的字符。
设计的滤波器76对待显示字符和背景图像进行合成;滤波器76通过执行诸如屏幕计算和α混合等图像计算来产生所合成的图像位图数据83,用于对字符和LCD面板63上的背景图像进行合成。滤波器76响应从控制电路71传来的控制信号80,以执行图像计算。当控制信号80指示滤波器76将背景图像按原样显示在LCD面板63上时,滤波器76简单地将与背景图像有关的位图数据64从图像显示存储器72传送到驱动电路78。另一方面,当控制电路71要求滤波器76执行用于合成字符和背景图像的图像计算时,滤波器76以成行的像素从图像显示存储器72接收位图数据64,并还从字体显示存储器75接收颜色标号数据82。参照存储在颜色板电路77中的颜色板数据67,滤波器76将用颜色标号来表示像素颜色的颜色标号数据82转换成相应的RGB数据。滤波器76根据由转换产生的RGB数据和位图数据64的RGB数据来执行图像计算,从而产生合成的图像位图数据83。
驱动电路78从滤波器76接收所选的背景图像的位图数据64和合成图像位图数据83之一,并且响应所接收的位图数据64或83来驱动LCD面板63的数据线(未显示)。响应从控制设备71接收的定时控制信号79来控制对LCD面板63的数据线的定时驱动。
需要注意的是,字体处理存储器74中产生的颜色标号数据82并不直接用于将字符显示在LCD面板63上。这避免了将不完整的字符显示在LCD面板63上。如前所述,在字体处理存储器74上产生颜色标号数据82包括依次解释字体数据6中所描述的指令;直到对所有的有关字符都完成了对矩形区域的矩形区域数据81进行处理的操作之后,在字体处理存储器74上才完成颜色标号数据82。与LCD面板63的刷新周期相比,完成颜色标号数据82所需的时间是不能被忽略的。结果,如果字体处理存储器74中产生的颜色标号数据82被直接用于显示在LCD面板63上,则将在LCD面板63上显示不完整的字符。其中对字体显示存储器75和字体处理存储器74分开提供的这种结构有效地避免了将不完整的字符显示在LCD面板63上。设计的控制器驱动器62在字体处理存储器74上完成颜色标号数据82之后,将颜色标号数据82从字体处理存储器74传递到字体显示存储器75。滤波器76和驱动电路77使用从字体显示存储器75接收的完整颜色标号数据82,以执行屏幕显示。这有效地避免了将不完整的字符显示在LCD面板63上。
图16为框图,示出了用于对期望字符和背景图像进行合成的控制器驱动器62的操作。
一旦从CPU 61接收与背景图像有关的位图数据64和与字符有关的字体数据65,控制电路71将位图数据64传送到图像显示存储器72,并且将字体数据65传送到笔画字体绘制电路73。位图数据64被写入图像显示存储器72。在颜色板数据67是从CPU 61传来的情况下,控制电路71将颜色板数据67传送到颜色板电路77。
笔画字体绘制电路73依次解释字体数据65中描述的指令,以识别待显示的每一个字符的形状。然后笔画字体绘制电路73限定用于每一个有关字符的矩形区域,并且产生与矩形区域有关的矩形区域数据81。接下来就是依次将矩形区域数据81从笔画字体绘制电路73传送到字体处理存储器74,以在字体处理存储器74上执行“字符绘制”。每一个矩形区域内包括的一整套像素的像素数据被同时写入字体处理存储器74中。这有效地提高了完成“字符绘制”的操作速度。作为“字符绘制”完成的结果,在字体处理存储器74上产生了颜色标号数据82。
在字体处理存储器74上完成颜色标号数据82之后,将颜色标号数据82传递到字体显示存储器75。与LCD面板63的刷新周期相比,将颜色标号数据82传递到字体显示存储器75是在短时间内执行的。
滤波器76从图像显示存储器72接收与背景图像有关的位图数据64,并且也从字体显示存储器75接收颜色标号数据82。然后滤波器76响应位图数据64和颜色标号数据82来产生合成图像位图数据83。滤波器76将颜色标号数据82的颜色标号转换成RGB数据,并且根据通过数据转换获得的RGB数据和位图数据64的RGB数据,产生合成图像位图数据83。驱动电路77响应从滤波器76接收的合成图像位图数据83,驱动LCD面板63,以便在LCD面板63上显示其中字符被叠加在背景图像上的图像。
总之,与第一实施例相类似,当有关像素的颜色彼此相同时,设计的第三实施例的显示设备20将分布在特定矩形区域中的多个像素的像素数据同时写入字体处理存储器74。这实现了在字体处理存储器74上高速产生颜色标号数据82。
另外,在第三实施例的显示设备20中,对通过颜色标号来表示每一个像素颜色的颜色标号数据82的使用有效地减少了字体处理存储器74和字体显示存储器75的存储容量。
最后,该第三实施例中控制器驱动器的结构通过传输笔画字体格式的字体数据65,有效地减少了传递到控制器驱动器62的显示数据规模。这有效地减少了控制器驱动器62的功耗。
虽然本发明是以具有一定特殊性的优选形式来描述的,但是应该知道,对其结构细节,以及部件的组合和布局等方面可以对该优选形式的公开内容进行更改,只要不偏离本文所声明的本发明的范围。