形状处理器

阅读:98发布:2021-11-18

专利汇可以提供形状处理器专利检索,专利查询,专利分析的服务。并且形状处理器是一个呈现模 块 ,可以用来使具有一种预定义格式的 图形对象 流到一个 帧 缓存器或者一个物理显示器中。将由该形状处理器呈现的文档可以被分解成基本图形对象,并且被传递给该形状处理器,它可以依次组成这些对象用于显示。组成的对象然后在逐个对象的 基础 上被混合到当前的视频数据中。,下面是形状处理器专利的具体信息内容。

1.一种用于处理图形对象的系统,包含:
一个输入单元,用于接收一个对象流,其中每个对象具有一组 定义图像的参数;以及
一个对象处理器,在逐个对象的基础上处理该对象流以创建一 个像素阵列。
2.如权利要求1所述的系统,其中,该组参数中的一个是路径, 该对象处理器处理该路径以创建表示该图像之轮廓的像素阵列。
3.如权利要求2所述的系统,其中,该对象处理器对该路径的 边缘进行去混叠处理。
4.如在前任一权利要求所述的系统,其中,该对象处理器对该 图像的轮廓进行行程编码。
5.如在前任一权利要求所述的系统,其中,该组参数中的一个 是边界框,该边界框向该对象处理器指示将在其中呈现该对象的一 个区域。
6.如在前任一权利要求所述的系统,其中,该对象处理器接收 一个平滑系数,该平滑系数指定该对象相对于该像素阵列的过采样 的量。
7.如在前任一权利要求所述的系统,其中,该组参数中的一个 是透明度,该透明度包含关于该形状的透明度值或者指向透明度值 之位图的指针
8.如在前任一权利要求所述的方法,其中,该组参数中的一个 是填充,该填充包含颜色、纹理、或者位图中的至少一个。
9.如权利要求3所述、或者在引用权利要求3时的权利要求4 到8中任一项所述的方法,其中,被去混叠处理的边缘被表示为灰 度级值。
10.如权利要求9所述的方法,其中,一个色调响应曲线被应 用于该被去混叠处理的边缘的灰度级值。
11.如在前任一权利要求所述的方法,其中,该像素阵列被传 输到屏幕、打印机、网络端口或者文件中的至少一个。
12.如在前任一权利要求所述的方法,其中,这些参数中的一 个是被预处理的形状数据。
13.如权利要求12所述的方法,其中,该被预处理的形状数据 包含剪辑掩膜。
14.如权利要求12或者权利要求13所述的方法,其中,该被 预处理的形状数据包含透明度。
15.如权利要求12到14中任一项所述的方法,其中,该被预 处理的形状数据包含填充。
16.如在前任一权利要求所述的方法,进一步包含:在高速缓 存器中存储中间处理数据,该中间处理数据包含剪辑掩膜、填充或 者透明度中的至少一个。
17.一种用于图像呈现的方法,包含:
接收一个将要被显示的对象,该对象包含形状和填充;
把该对象的形状转换成为多行被编码的扫描数据,所述数据具 有关于显示之像素的至少两种可能状态中的一种,这两种状态包含 第一状态和第二状态,其中第一状态表示像素在该形状之内,而第 二状态表示像素在该形状之外;以及
将该多行被编码的扫描数据中的每一行和该填充混合到一中 的一行用于显示。
18.如权利要求17所述的方法,其中,该被编码的扫描数据包 含一个关于显示之像素的第三种可能状态,它表示一个像素的一部 分在该形状之内。
19.如权利要求17或者权利要求18所述的方法,其中,该形 状包含一个路径,该路径包括多个分段。
20.如权利要求19所述的方法,进一步包含:把被弯曲路径之 多个分段中的一段或多段转换成为多个非弯曲的分段。
21.如权利要求17到20中任一项所述的方法,其中,该帧包 含视频存储器或者显示设备中的至少一个。
22.如权利要求17到21中任一项所述的方法,其中,该帧对 应于非视频存储器或者输出位图格式缓存器中的至少一个。
23.如权利要求17到22中任一项所述的方法,其中,该形状 包含被编码的扫描数据的剪辑掩膜。
24.如权利要求18所述的方法,其中,通过把一个像素划分成 为多个子象素区域、确定该多个子象素区域中的哪几个在该形状之 内、以及确定在该形状内的那些子象素区域与该多个子象素区域的 比值,为该像素计算关于第三种可能状态的值。
25.如权利要求24所述的方法,其中,该值被表示为一个灰度 级值。
26.如权利要求17到25中任一项所述的方法,其中,将要被 显示的对象包含透明度,混合进一步包含把该多行被编码的扫描数 据中的每一行和该透明度混合到一帧中的一行用于显示。
27.如权利要求17到26中任一项所述的方法,其中,将要被 显示的对象包含透明度,其中该透明度根据位深度校正、色调校正、 按比例缩放、解压缩或者解码中的至少一项进行预处理。
28.如权利要求27所述的方法,其中,该透明度包含一个指针, 它指向关于该形状的透明度值之位图。
29.如权利要求17到28中任一项所述的方法,其中,该填充 包含颜色、纹理、或者位图中的至少一个。
30.如权利要求17到29中任一项所述的方法,进一步包含: 把该多行被编码的扫描数据作为剪辑掩膜存储在高速缓存器中。
31.如权利要求30所述的方法,进一步包含:依据该形状对该 剪辑掩膜加索引。
32.一种对被呈现的彩色图像之边缘进行无色去混叠处理的方 法,包含:
接收将要被显示的对象,该对象包含形状和填充,该填充包含 一种或多种颜色;
把显示的像素表示为一个子像素矩阵,该子像素矩阵包含一个 或多个覆盖该像素的子像素区域;
将该形状与该子像素矩阵相交;以及
把该子像素矩阵转换为关于该像素的一个灰度级值。
33.如权利要求32所述的方法,进一步包含:把关于该像素的 灰度级值和对应于该像素的填充与关于该像素的前一个值混合。
34.如权利要求33所述的方法,进一步包含:对于扫描行的像 素,重复接收一个对象、表示一个像素、与该形状相交、转换该子 像素矩阵和混合。
35.如权利要求34所述的方法,进一步包含:对该扫描行的像 素的灰度级值进行行程编码。
36.如权利要求32到35中任一项所述的方法,其中,该子像 素矩阵的一个或多个尺寸由一个平滑度值控制。
37.一种用于平滑图形对象之边缘的方法,该方法包含:
接收将要被显示的对象,该对象包含一个描述该对象之轮廓的 路径,该路径具有一个内侧和一个外侧;
对于与该路径相交的多个像素中的每一个,对这些像素中的一 个进行过采样,以获取一个灰度级值,它表示在该路径之内的、这 些像素中的一个的一部分;以及
把该多个像素与保存在一个像素阵列中的数据混合。
38.如权利要求37所述的方法,其中的混合进一步包含:对于 该多个像素中的每一个,依据该灰度级值对关于该像素的一个填充 值进行加权,并且依据该灰度级值对保存在该视频存储器中的数据 进行解加权。
39.如权利要求38所述的方法,其中的混合进一步包含:对于 该多个像素中的每一个,依据透明度值对该像素的一个填充值进行 加权,并且依据该透明度值对保存在该像素阵列中的数据进行解加 权。
40.一种用于处理图形对象的系统,包含:
接收装置,用于接收将要被显示的对象,该对象包含形状、填 充和阿尔法;
转换装置,用于把该对象之形状转换成为被编码的扫描数据, 该扫描数据具有关于像素的至少两种可能状态中的一种,其中包含 第一状态和第二状态,其中第一状态表示一个像素在该形状之内, 而第二状态表示一个像素在该形状之外;以及
混合装置,用于把该被编码的扫描数据、该填充、和该阿尔法 混合到一帧中的一行。
41.如权利要求40所述的系统,其中,该被编码的扫描数据具 有第三种可能状态,该第三种可能状态包含一个表示处于该形状之 边缘上的一个像素的灰度级值,其中该灰度级值对应于在该形状之 内的像素的一部分。
42.如权利要求40或者权利要求41所述的系统,其中,该帧 对应于显示器、打印机、文件或者网络端口中的至少一个。
43.如权利要求40到42中任一项所述的系统,该对象进一步 包含背景填充或者替换填充中的至少一个,该混合装置把该背景填 充或者该替换填充中的至少一个混合到一帧中的一行。
44.一种用于处理图形对象的计算机程序,包含:
用以接收将要被显示的对象的计算机可执行代码,该对象包含 形状、填充、和阿尔法;
用以把该对象的形状转换成为被编码的扫描数据的计算机可执 行代码,该扫描数据具有关于一个像素阵列之像素的至少两种可能 状态中的一种,其中包含第一状态和第二状态,该第一状态表示一 个像素在该形状之内,该第二状态表示一个像素在该形状之外;以 及
用以把该被编码的扫描数据、该填充、和该阿尔法混合到该像 素阵列的一帧中的一行的计算机可执行代码。
45.如权利要求44所述的计算机程序,其中,该像素阵列对应 于显示器、打印机、文件或者网络端口中的至少一个。
46.如权利要求44或者权利要求45所述的计算机程序,其中, 该被编码的扫描数据具有第三种可能状态,该第三种可能状态包含 一个灰度级值,它表示在该形状之边缘上的一个像素,该灰度级值 对应于在该形状之内的像素的一部分。
47.一种用于处理图形对象的系统,包含:
一个处理器,该处理器被配置用于接收一个包含形状、填充、 和透明度的图形对象,把该图形对象的形状转换成为被编码的扫描 数据,并且把该被编码的扫描数据、填充、和阿尔法与一行像素数 据进行组合,其中该被编码的扫描数据与关于显示之扫描行的内部 像素、外部像素、和过渡像素相对应,每个过渡像素包含一个灰度 级值,该灰度级值对应于在该形状内的像素之一部分;以及
以及一个存储该行像素数据的存储器,该存储器适于向该处理 器提供该行像素数据,而且该存储器适于存储在把该行像素数据与 该被编码的扫描数据、该填充、和该透明度进行组合时生成的一行 新像素数据。
48.如权利要求47所述的系统,进一步包含一个显示器,该显 示器被配置用于显示该存储内容。
49.如权利要求47或者权利要求48所述的系统,该处理器进 一步包含微处理器、微控制器、嵌入式微控制器、可编程数字信号 处理器、专用集成电路、可编程阵列或者可编程阵列逻辑中的一 个或多个。
50.如权利要求47到49中任一项所述的系统,进一步包含下 列设备中的至少一种:被配置为打印保存在该存储器中的多行像素 数据的打印机,被配置为存储保存在该存储器中的多行像素数据的 存储设备、被配置为输出保存在该存储器中的多行像素数据的网络 设备。
51.如权利要求47到50中任一项所述的系统,其中,该处理 器是芯片、芯片组、或者管芯中的至少一种。
52.如权利要求47到50中任一项所述的系统,其中,该处理 器和该存储器是芯片、芯片组、或者管芯中的至少一种。
53.如权利要求48所述的、或者在引用权利要求48时的权利 要求49到52中任意一个所述的系统,其中,该显示器是电子管理 器、掌上型计算机、手持式游戏设备、web使能的蜂窝电话、个人 数字助理、增强的电话、瘦网络客户机、或者机顶盒中至少一种的 显示器。
54.如权利要求48所述的、或者在引用权利要求48时的权利 要求49到52中任一项所述的系统,其中,该显示器是打印机或者 绘图仪中的至少一种。
55.如权利要求48所述的、或者在引用权利要求48时的权利 要求49到52中任一项所述的系统,其中,该显示器被用在一个文 档管理系统中。
56.如权利要求48所述的、或者在引用权利要求48时的权利 要求49到52中任一项所述的系统,其中,该显示器被用在传真机、 复印机、或者一个文档管理系统的打印机中的至少一种中。
57.如权利要求48所述的、或者在引用权利要求48时的权利 要求49到52中任一项所述的系统,其中,该显示器被用在一个汽 车内系统中。
58.如权利要求48所述的、或者在引用权利要求48时的权利 要求49到52中任一项所述的系统,其中,该显示器被用在音频播 放器、微波炉、箱、洗衣机、干衣机、烤箱或者洗碗机中的至少 一种中。
59.如权利要求47到58中任一项所述的系统,其中,该处理 器接收多个图形对象,并且并行处理该多个图形对象。

说明书全文

发明的背景技术

抽象形状的图形绘制可能要求对形状描述数据进行许多处理。 已知的用于处理形状的方法可以在例如Java 2D API中找到,它提供 了用于处理二维矢量图的软件工具。然而,还是需要形状处理引擎 来减少计算复杂性以节省处理资源,尤其是在包含显示设备的嵌入 式系统中。

发明概述

形状处理器是一个呈现模(rendering module),可以用来使具 有预定义格式的图形对象流入到缓冲器或者物理显示器中。由形 状处理器呈现的文档可以被分解成基本的图形对象,并且被传递给 形状处理器,接着由形状处理器依次组成这些对象用于显示。形状 处理器有利地把每个对象处理为灰度级值,直到用于该对象的像素 数据被输出到一个显示器或者帧缓冲器为止。

一种用于处理图形对象的系统可以包含:一个用于接收对象流 的输入单元,其中每个对象具有一组定义图像的参数;以及一个对 象处理器,其在逐个对象的基础上处理该对象流以创建像素阵列。

这组参数中的一个可以是一条路径,该对象处理器处理该路径 以创建一个表示图像轮廓的像素阵列。对象处理器可以对该路径的 边缘进行去混叠处理(anti-alias)。对象处理器可以对该图像的轮廓 做行程编码。这组参数中的一个可以是一个边界框,边界框向对象 处理器指示将在其中呈现该对象的一个区域。对象处理器可以接收 一个平滑系数,该平滑系数指定该对象相对于像素阵列的过采样数 量。这组参数中的一个可以是透明度,透明度包含一个关于该形状 的透明度值或者一个指向透明度值之位图的指针

这组参数中的一个可以是填充,填充包含颜色、纹理、或者位 图中的至少一个。去混叠的边缘可以被表示为灰度级值。色调响应 曲线可以被应用到去混叠边缘的灰度级值。像素阵列可以被传输到 屏幕、打印机、网络端口或者文件中的至少一个。这些参数中的一 个可以是预先处理的形状数据。该预先处理的形状数据可以包含剪 辑掩膜(clip mask)。预先处理的形状数据可以包含透明度。预先处 理的形状数据可以包含填充。该方法可以进一步包含在高速缓存中 存储中间处理数据,该中间处理数据包含剪辑掩膜、填充或者透明 度中的至少一个。

在此描述的一种用于图像绘制的方法可以包含:接收将要被显 示的对象,该对象包含形状和填充;把对象的形状转换成为多行被 编码的扫描数据,它具有关于显示之像素的至少两种可能状态中的 一种,这两种状态包含第一状态和第二状态,其中第一状态表示一 个像素在该形状内,而第二状态表示一个像素在该形状外;以及把 该多行编码的扫描数据中的每一行和该填充混合到一帧的一行中用 于显示。

该编码的扫描数据可以包含关于显示之像素的第三种可能状 态,其表示像素的一部分在该形状内。该形状可以包含一条包括多 个分段的路径。该方法可以包括:把可被弯曲的该路径的多个分段 中的一个或多个转换成为多个非弯曲的分段。该帧可以包含视频存 储器或者显示设备中的至少一个。该帧可以对应于一个非视频存储 器或者一个输出位图格式缓存器中的至少一个。该形状可以包含被 编码的扫描数据的剪辑掩膜。通过把一个像素划分成为多个子像素 区域、确定这多个子像素区域中的哪几个在该形状之内、以及确定 在该形状内的那些子像素区域与该多个子像素区域的比值,可以为 像素计算关于第三种可能状态的一个值。该值可以被表示为灰度级 值。

将要被显示的对象可以包含透明度,而且混合可以进一步包含 把多行被编码的扫描数据中的每一行和透明度混合到一帧的一行中 用于显示。将要被显示的对象可以包含透明度,其中该透明度依据 位深度校正、色调校正、比例缩放、解压缩或者解码中的至少一项 进行预处理。该透明度可以包含一个指向关于该形状的透明度值之 位图的指针。该填充可以包含颜色、纹理、或者位图中的至少一个。 该方法可以包含把多行被编码的扫描数据作为剪辑掩膜存储在高速 缓存中。该方法可以包含依据该形状对该剪辑掩膜加索引。

在此描述的一种方法用于对呈现的彩色图像的边缘进行无色去 混叠,该方法可以包含:接收将要被显示的对象,该对象包含形状 和填充,该填充包含一种或多种颜色;把显示之像素表示为一个子 像素矩阵,该子像素矩阵包含一个或多个覆盖该像素的子像素区域; 使该形状与该子像素矩阵相交;以及把该子像素矩阵转换为关于该 像素的灰度级值。

该方法可以包含:把关于该像素的灰度级值和对应于该像素的 填充与关于该像素的前一个值混合。该方法可以包含:重复接收对 象、表示像素、与该形状相交、转换该子像素矩阵、以及混合,用 于像素扫描行。该方法可以包含对该像素扫描行的灰度级值进行行 程编码。该子像素矩阵的一个或多个尺寸可以由一个平滑度值控制。

在此描述的一种用于平滑图形对象边缘的方法可以包含:接收 将要被显示的对象,该对象包含一条描述该对象之轮廓的路径,该 路径具有一个内侧和一个外侧;对于与该路径相交的多个像素中的 每一个,对像素进行过采样,以获取表示可能在该路径之内的像素 之一的一部分的灰度级值;以及把这多个像素与保存在一个像素阵 列中的数据混合。

该方法可以包含:对于该多个像素中的每一个,依据该灰度级 值对关于该像素的填充值进行加权,并且依据该灰度级值对保存在 视频存储器中的数据进行解加权(de-weighting)。该方法可以包含: 对于该多个像素中的每一个,依据透明度值对关于该像素的填充值 进行加权,并且依据透明度值对保存在像素阵列中的数据进行解加 权。

在此描述的一种用于处理图形对象的系统可以包含:用于接收 将要被显示的对象的接收装置,该对象包含形状、填充和阿尔法 (alpha,透明层次);用于把该对象之形状转换成为被编码的扫描数 据的转换装置,其中该扫描数据具有关于像素的两种可能状态中的 一种,这两种可能状态包含第一状态和第二状态,其中第一状态表 示一个像素在该形状之内,而第二状态表示一个像素在该形状之外; 以及用于把被编码的扫描数据、该填充、和该阿尔法混合到一帧的 一行中的混合装置。

被编码的扫描数据可以具有第三种可能状态,该第三种可能状 态包含表示一个可在该形状边缘上的像素的灰度级值,其中该灰度 级值对应于可在该形状之内的像素的一部分。该帧可以对应于显示 器、打印机、文件或者网络端口中的至少一个。该对象可以包含背 景填充或者替换填充中的至少一个,该混合装置把该背景填充或者 替换填充中的至少一个混合到一帧的一行中。

在此描述的一种用于处理图形对象的计算机程序可以包含:接 收将要被显示的对象的计算机可执行代码,其中该对象包含形状、 填充和阿尔法;把对象的形状转换成为被编码的扫描数据的计算机 可执行代码,该扫描数据具有关于一个像素阵列之像素的至少两种 可能状态中的一种,这两种状态包含第一状态和第二状态,其中第 一状态表示像素在该形状之内,而第二状态表示像素在该形状之外; 以及把被编码的扫描数据、填充、和阿尔法混合到该像素阵列的一 帧的一行中的计算机可执行代码。

像素阵列可以对应于显示器、打印机、文件或者网络端口中的 至少一个。被编码的扫描数据可以具有第三种可能状态,该第三种 可能状态包含灰度级值,它表示可在该形状边缘上的像素,其中该 灰度级值对应于可在该形状之内的像素的一部分。

在此描述的一种用于处理图形对象的系统可以包含:一个处理 器,该处理器被配置为接收一个可以包含形状、填充、和透明度的 图形对象,以把该图形对象的形状转换成为被编码的扫描数据,并 且把该被编码的扫描数据、填充、和阿尔法与一行像素数据进行组 合,其中该被编码的扫描数据与关于显示的扫描行的内部像素、外 部像素、和过渡像素相对应,其中每个过渡像素包含一个对应于在 该形状内的像素之一部分的灰度级值;以及一个存储该行像素数据 的存储器,该存储器适于向该处理器提供该行像素数据,而且该存 储器适于存储新的一行像素数据,当该行像素数据可以与被编码的 扫描数据、填充、和透明度进行组合时,可以产生该新的一行像素 数据。

该系统可以包含一个被配置为显示该存储器的显示器。该处理 器可以是微处理器、微控制器、嵌入式微控制器、可编程的数字信 号处理器、专用集成电路、可编程阵列或者可编程阵列逻辑中的 一个或多个。该系统可以是下列中的至少一个:被配置为打印保存 在存储器中的多行像素数据的打印机,被配置为存储保存在该存储 器中的多行像素数据的存储设备、被配置为输出保存在存储器中的 多行像素数据的网络设备。该处理器可以是芯片、芯片组、或者管 芯(die)中的至少一个。该处理器和存储器可以是芯片、芯片组、 或者管芯中的至少一个。该显示器可以是电子管理器、掌上型计算 机、手持式游戏设备、web使能(web-enabled)的蜂窝电话、个人 数字助理、增强的电话、瘦网络客户机、或者机顶盒中至少一个的 显示器。

该显示器可以是打印机或者绘图仪中的至少一个。该显示器可 以被用于文档管理系统中。该显示器可以被用在文档管理系统的传 真机、复印机、或者打印机中的至少一种中。该显示器可以被用在 一个汽车内系统中。该显示器可以被用在音频播放器、微波炉、 箱、洗衣机、干衣机、烤箱或者洗碗机中的至少一种中。该处理器 可以接收多个图形对象并且并行处理该多个图形对象。

附图简要说明

通过下面进一步的描述并参考附图,本发明的上述及其它目的 和优点将会得到更加充分地理解,其中:

图1示出关于图形对象的数据结构,它可与形状处理器一起使 用;

图2是形状处理器的一个功能框图

图3描述了对交点数据的运算的例子,由一个相交处理过程执 行;

图4显示了关于被编码的扫描数据的数据结构;以及

图5是关于形状处理的处理过程的流程图

优选实施例的详细说明

为了提供对本发明的一个全面理解,下面将描述某些说明性的 实施例,包含一个二维形状处理器,它采用了关于被呈现对象之边 缘的空间滤波和色调控制。然而,本领域普通技术人员应当理解, 在此描述的方法和系统可以被适当地适用于其它应用、诸如三维形 状处理,而且可以与全图像去混叠处理相结合。例如,一个粗糙的 全图像去混叠处理步骤可以与对象边缘的细微去混叠处理相结合。 所有这些适应和修改对本领域技术人员来说是显然的,而且都会落 在在此描述的本发明的范围之内。

图1显示了可与形状处理器一起使用的图形对象的数据结构。 图形对象100、或者简单地说对象100可以包含一个边界框101、一 个形状102、一个填充104,和一个阿尔法106。形状102可以包含 一个具有描边(stroke)110和填充112参数的路径108,或者一个 剪辑掩膜114。填充104可以包含一个颜色116或者一个位图118。 阿尔法106可以包含一个值120或者一个掩膜122。

边界框101可以包含一个将在那儿呈现对象100的位置,而且 可以定义一个将在其中绘制该对象的区域。例如,通过把一条圆周 路径与一个边界框101进行组合,可以使用该参数来简化圆弧的呈 现,边界框101覆盖了该圆周的四分之一。

形状102可以包含一条路径108,它定义了一系列相连的路径 单元,使用PostScript(页面描述语言)格式的路径描述。其它路径 表示是已知的,而且也可以被使用。例如,路径108可以包含直线 段、具有由两点控制的方向和曲率的贝塞尔(Bezier)曲线、或者其 它路径构造。路径108可以被打开或关闭。为了支持更多复杂的几 何形状,路径108可以包含自相交的或者多个不相交的区域。路径 108的描边110可以包含参数或者属性,例如包含连接属性和顶盖 属性,其中连接属性指定关于连接路径单元的呈现,如圆、斜面、 或者斜接,而顶盖属性指定关于路径108的一端的呈现,诸如圆、 粗端、正方形、三形等。填充112可以包含一个弯曲规则(winding rule)、或者其它算法或者参数,用于区分路径108内侧与路径108 外侧,使得适当的区域可以被填充。剪辑掩膜114可以包含一个指 针,指向图形对象100的高速缓存呈现,以便减少重现对象的多余 处理过程。

填充104通常可以包含有关形状102将被如何填充的信息。这 可以包含,例如颜色116,它可以是在调色板(诸如一个8位调色 板)上定义的一个颜色值,或者可以是一个基于颜色的成分,诸如 24位RGB、15位RGB、或者32位CMYK,或者颜色116可以是 一个灰度级值。填充104可以包含一个位图118,位图118包含了 一个将被用于填充形状102的纹理的位图。作为替代,位图118可 以包含一个指向将被用于填充形状102的位图的指针。这样的一个 位图可以在任何种类的颜色模型中被提供,诸如那些被用于填充104 的位图。

阿尔法106通常可以包含与形状102在被填充和显示时的透明 度有关的信息。该阿尔法可以包含一个值120,该值是描述关于整 个形状102的透明度的单个值,通常从0(透明)变化到1(不透明)。 可选的是,阿尔法106可以包含关于被呈现形状102之每一个像素 的值的掩膜122,它是一个阿尔法掩膜、或者指向一个阿尔法掩膜 的指针。

对本领域技术人员来说,对上述数据结构的适当修改和增强将 会是显然的。特别是,图形对象100可以包含在呈现规范(诸如 PostScript、Java 2D API、或者例如在Mac OS X操作系统中使用的 Quartz和QuickDraw库)中描述的其它特征。

图2是形状处理器的一个功能框图。通常,形状处理器200提 供一个用于接收图形对象流的输入单元,并且包含一个对象处理器, 该对象处理器在逐个对象的基础上处理该对象流,以创建一个像素 阵列用于显示在屏幕上。形状处理器200接收一个图形对象,由如 图2所示作为路径202的形状、边界框203、填充204、和阿尔法206 所描述,例如它可以对应于以上参照图1所述的图形对象100的组 件。形状处理器200可以接收一个剪辑掩膜232而不是一个路径202, 它可以由形状处理器200直接传递到一个扫描行混合器226,如以 下所述。

形状处理器200的控制数据可以包含一个屏幕边界框208、一 个平滑度210、一个色调响应曲线212、一个位深度214、一个彩色 空间216、和一个屏幕基地址218。这个控制数据可以存储与显示有 关的物理参数,诸如屏幕基地址218或者色调响应曲线212。如下 所述,色调响应曲线212可以依据显示器设备的非线性,调整被编 码的扫描数据的灰度级值。例如,满刻度之50%的一个亮度值可能 导致一个特定设备的65%的像素亮度。色调响应曲线212可以使用 一个查找表或者其它的算法或者基于查找的方法来调整这种非线 性。其它控制数据可以对应于由用户(或者程序员)指定的参数。 例如,平滑度210存储了一个关于边缘处理之细度(fineness)或者 粒度(granularity)的值,它可以是一个(或者多个)值,描述了其 中每个显示像素的子区域的一个N×N矩阵,这将在下面进行描述。

向一个扫描变换器220提供路径202,其中该扫描变换器220 使用来自于交点221的数据,向一个交点缓存器222提供交点数据。 一个相交处理过程224进一步处理交点数据,并且提供一个输出到 一个扫描行混合器226,由扫描行混合器226把该输出与其它图形 对象描述符和控制数据进行组合,以生成一个输出到一个视频存储 器或者一个物理显示器。由形状处理器200生成的中间数据可以包 含一个路径边界框228、一个变平的路径230、和一个剪辑掩膜232。 剪辑掩膜232或者变平的路径230能够独立于形状处理器200使用, 或者可以被重新表示为有效输入,借此减少了对形状处理器200的 多余重复调用。其它中间数据(未显示)可以由形状处理器200生 成用于输出,作为例子包含,相交的输入或者其它预处理的调整, 诸如填充图的解压缩、和彩色空间转换、校正、调整、和按比例缩 放。

在扫描行处理之前,扫描变换器220可以预处理路径202。例 如,通过相交某些数据和确定是否要求了处理,可以避免不必要的 扫描变换。例如,路径202的边界框203和屏幕边界框208可以在 交点221中相交。如果来自于交点221的输出为空值,则不要求进 一步的处理。尽管在图2中没有明确显示,但是可以获得其它交点, 诸如与用于填充204的一个边界框(它可以由形状处理器200从填 充数据中推断出)、或者用于阿尔法206的一个边界框(它同样可以 由形状处理器200从阿尔法数据中推断出)的一个交点。如果交点 组是空的,则不需要对路径202进行处理,而且下一个连续的路径 202可以立即被处理。如上所述,如果一个剪辑掩膜232作为一个 形状而不是路径202给出,则剪辑掩膜232可以被直接传递到扫描 行混合器226,因此绕过了扫描变换及其它路径处理步骤。可以以 这种方式保存任意的中间处理数据,例如包含剪辑掩膜232、填充 数据、阿尔法数据、变平的路径数据等,以避免或者减少多余的处 理。

扫描变换器220可以把路径202转换成为与一个目标显示设备 的扫描行的交点。可以在向上采样的基础上使用平滑度210来执行 这个功能。也就是说,在定位交点之前,可以使用平滑度210作为 一个参数,把每一行像素分成若干子像素区域、或者子像素矩阵。 所以,例如,为2的平滑度210可以导致100个像素的一个扫描行 被处理,以生成交点数据,作为一个2乘200阵列子像素区域,覆 盖一个屏幕显示中的同一个区域。为4的平滑度210可以导致同一 扫描行被处理,以生成交点数据,作为一个4乘400阵列子像素区 域,等等。

路径202然后可以被应用到子像素区域上。可以在一个平的 逐行基础上存储所得到的交点、或者交点数据,包含每个交点的一 个X座标、以及路径与一个水平轴相交的方向(例如,向上或者向 下)。其它的表示是已知的,而且也可以由扫描变换器220使用。扫 描变换器220可以生成路径边界框228。扫描变换器220还可以生 成一个变平的路径230,作为一个中间步骤,其中连续的、非线性 的段(诸如贝塞尔曲线)被转换成若干个直线路径段。这可以减少 与路径有关运算的计算复杂性。交点数据可以被保存在交点缓存器 222中。

通常,相交处理过程224分析多行子像素区域,并且标识在形 状外的像素串、在形状内的像素串、和过渡像素。那些在一个形状 的边缘上并且与该形状相交、以便使它们部分在形状内和部分在形 状外的过渡像素,可以被平滑以删除或者减少与呈现有关的其它非 自然信号(artifact)或粗糙度(jaggedness)。下面将参考图3对这 种过采样技术进行更详细地描述。如下所述,内部像素、外部像素、 和过渡像素然后可以被混合到视频存储器里。

图3描述了由相交处理过程224执行的、对交点数据的运算的 例子。在图3的例子中,交点数据对应于具有100个像素的一个扫 描行,而且平滑度210具有的一个值对应于关于每个扫描行像素的 一个4乘4子像素矩阵。

图表301显示了从图2的交点缓存器222中接收的交点数据。 如图表301所示,交点数据通常可以包含路径202与子像素区域相 交处的X座标,外加路径202的方向。对于第一行、第N行,路径 202沿一个向上的方向与第40个子像素相交。在同一行上,路径202 沿一个向下方向与第140个子像素相交。在图表301中对第N+1行 到第N+3行也列出了交点数据。应该理解的是,这是一个特殊的例 子,而且可以取决于路径202的复杂度为一行子像素区域提供或多 或少的交点数据。

可以依据一种弯曲规则或者类似的方法对交点数据进行处理, 以提取“打开”或者“关闭”的串。在如图3所示的例子中,通过 在这个例子中应用一种偶数/奇数弯曲规则,可以以这种方式对图 表301中的交点数据进行处理,以生成图表302的被编码数据。

如在图表302中所描述的那样,每行子像素的数据可以被编码 为一个数据对,它包含一个打开/关闭标记和共享该打开/关闭标 记行的一连串相邻子像素。通常,一串的末端可以根据从内侧向外 侧的一个过渡进行标识,或者反之亦然,如通过对交点数据应用一 种弯曲规则或者类似的技术来确定。根据这个数据,可以提取若干 串像素,反映目标显示的像素,这些像素将完全是在该形状内或者 在该形状外,其中该形状是由交点数据来描述的。在图表302的例 子中,在该形状外的第一串的五个“关闭”像素可以很容易地被识 别出来,它们对应于第N行到第N+3行、和水平子像素区域1-20。

如在图表304中描述的那样,从“关闭”串到“打开”串的过 渡可以由关于每行子像素的“打开”或者“关闭”子像素区域的数 目来表征。在该例子中,在第一串的五个“关闭”像素之后的数据 可以被分组为对应于像素的四个子像素区域的集合,例如子像素区 域21-24、25-28等。然后,在每组子像素区域中的“打开”子像 素区域可以对四行求和,以获得一个像素的“打开”子像素区域的 总数。图表304示出关于六个水平连续的像素的这个总数,这些像 素对应于水平子像素区域21-24和第N行到第N+3行,其中的第 一个不包含来自第N到N+2行的“打开”子像素区域,以及来自 第N+3行的四个“打开”子像素区域。这就提供了关于具有四个子 像素区域的这个像素的总打开度(total′on′-ness)。这对应于一个4∶16 的比值或者百分之二十五(4乘4的子像素矩阵的4/16)。这被表 示为一个关于这个像素百分之二十五的灰度级值。这个分析可以为 水平连续的子像素区域重复,直到到达一个充分“打开”的像素为 止。在图3的例子中,在子像素区域41-44处到达一个“打开”像 素,其中16个子像素区域中的十六个都是“打开”的。相应的像素 可以开始一连串的“打开”像素到一扫描行的末端,或者直到下一 个过渡为止,如果这样一个过渡发生的话。

关于每一扫描行的所得到数据被表示为若干串“打开”像素、 若干串“关闭”像素、和一个或多个过渡像素,其中的过渡像素具 有指示了每个过渡像素有多少在一个形状之内(或者做为选择,在 一个形状之外)的灰度级值。在下面,图4示出数据结构的示例, 其中包含以这种形式的数据行程编码的扫描行。在某些实现方案中, 灰度级值可以包含最大或者最小的灰度级值(例如,100%或者0%), 它们以其他方式表示“打开”或者“关闭”状态的像素或者行程。 例如,这种方法可以被有利地应用于最优化数据的编码,该数据展 示了在“打开”和“关闭”之间切换的短行程(short run)。

应该理解的是,可以使用其它技术来得到过渡像素的灰度级值。 例如,使用关于路径306的点和斜率信息,可以用数学方法确定在 一个形状之内的一个像素部分。通过把形状边缘平滑到灰度级值, 可以为全色图像执行一个无色的去混叠运算。随后可以在一个扫描 行混合器中提供颜色,将如以下所描述的那样。这种技术还可以被 有利地使用而不必进行过采样(即,具有一个平滑度210值,指定 每个像素对应于单个子像素区域),这是因为它推迟处理关于一个形 状的阿尔法和填充值,直到新像素数据的扫描行与当前像素数据的 扫描行相混合为止。还应当理解的是,尽管上述例子涉及一个具有 单个内部区域的形状,但是包含多个内部和外部区域的更复杂形状 可以被类似地表征。

再次参见图2,相交处理过程224的输出可以被存储为一个剪 辑掩膜232。可以依据参考编号对剪辑掩膜232加索引,例如,该 参考编号是基于已经被处理的路径202的路径指针、以及任意缩放 信息。当以这种方式进行存储时,由形状处理器200接收的每个新 路径202可以与缓存的剪辑掩膜的放置处相比较,以便同一形状的 多余处理(诸如在文本行中重现字体)可以被减少或者避免。

扫描行混合器226可以把来自于相交处理过程224的输出、或 者剪辑掩膜232与一帧当前视频数据进行混合。从图2中将会理解 到,这可能包含额外的计算(在下面没有提到),以把像素值映射到 显示参数,诸如显示存储器地址、彩色空间、位深度等。扫描行混 合器226的预处理可以包含阿尔法映射或者填充映射的解压缩、彩 色空间转换、颜色校正、颜色调整、以及按比例缩放。

扫描行混合器226可以直接输出到屏幕、到其它的显示设备、 或者到帧缓冲器用于随后的位图呈现。这可以包含非视频存储器或 者输出位图格式缓存器。扫描行混合器226通常每次可以对一行视 频数据、或者一行像素进行运算。在某些实施例中,可以提供若干 扫描行混合器以对若干扫描行进行并行运算。对于每一个像素,扫 描行混合器226可以把填充204(例如,一个24位颜色值)、阿尔 法206、和对应于那个像素的相交处理过程224输出(或者当可得 到时,为剪辑掩膜)进行组合。通常,将填充204乘以阿尔法(对 于透明度(0<=阿尔法<=1))以及乘以相交处理过程224输出(0 (=关闭)<=输出<=1(=打开))。这表示由形状处理器200生成 的像素值。在扫描行混合器226中,这个新值与关于该像素的旧值 相组合,它由一个互补因子进行解加权。这个混合运算可以被以数 学方式表示为:

Pi=αef+(1-αe)Pi-1               [等式1]

其中f=像素的填充值(例如,一个24位颜色值);

Pi=扫描行混合器输出;

Pi-1=前一个像素值(来自于缓存器);

α=该形状在该像素处的阿尔法值;

e=该像素的边缘值(相交处理过程输出)

=0,在外部

=1,在内部

=灰度级值,在形状内之边缘的%

被混合的输出可以被保存在视频存储器中用于显示。应该理解 的是,等式1是有代表性的,其它等式可以被用于在一个像素接一 个像素的基础上组合旧的数据和新的数据,如果该等式适当地加权 旧的数据和新的数据、以反映例如新数据的透明度和边缘。例如, 这可以是一个两步的处理过程,其中首先执行边缘加权,然后进行 透明度加权。此外,存在有等式1的简化形式,它可以被用在扫描 行混合器226中以减少处理复杂度。例如,当在完全不透明的形状 (即,e=1 &α=1)内存在一连串像素时,扫描行混合器226的 输出仅仅是关于每一个像素的填充值。在这种情况下,关于相应像 素的填充值f可以被直接提供给视频存储器而不需要进一步的处理。

图4显示了一个关于被编码扫描数据的数据结构,作为相交处 理过程224的输出。通常,像素值可以被存储为“打开”、“关闭”、 或者“灰度级”。打开的像素对应于在一个形状之内的像素,它们将 被呈现为由图2中的填充204提供的颜色值。关闭的像素对应于在 该形状之外的像素,而且将不会影响现有的显示或者帧缓冲器。如 上所述,可以向一个对象提供另外的参数,诸如提供了关于“关闭” 像素(即在形状之外像素)的填充值的背景填充。作为另一个例子, 可以提供一个替换填充,它在混合之前从在帧缓冲器中的前一个值 中被减去。灰度级值表示形状边缘,而且将被呈现为由填充204提 供的颜色值,而且依据灰度级值进行比例缩放。编码提供了一种用 于表示多行视频数据的方案,它在处理形状时可以明显减少处理成 本。例如,编码为若干串“打开”和“关闭”是廉价的,而且灰度 级计算在存储器使用和处理器时间上是比较低廉的,是因为它们避 免了要求全像素阵列用于图像处理。另外,行程编码在把视频数据 存储为剪辑掩膜时提供了好处。然而,应该理解的是,其它压缩技 术可以和在此描述的系统一起适当地使用。

行程编码的数据结构400可以包含一个头部402、一个长度404、 一个宽度406、一个高度408、一个或多个偏移量410、以及一个或 多个数据段412。头部402可以包含任何可用于标识或者使用数据 结构400的头部信息。长度404可以指示数据结构400的长度。宽 度406可以指示一个以像素为单位、表示一个形状之宽度的值。高 度408可以指示一个表示一个形状的多个扫描行的值。一个或多个 偏移量410指示了对关于形状的每个扫描行的数据段的字节偏移 量。一个或多个数据段412中每个都包含了关于一个形状的扫描行 的被编码数据。数据段412可以被表示为:“内部”再加上以像素为 单位的行程、“外部”再加上以像素为单位的行程、或者“边缘”再 加上在边缘中的像素数以及关于在该边缘中的多个像素中每一个的 灰度级值。例如,每个边缘值可以被表示为一个字节(256级)灰 度级值。

图5是一个用于形状处理的处理过程流程图。在下面的论述中, 短语“交点数据”用于指描述了在路径和子像素区域之间的交点的 数据。在一种简化的情况下,每个子像素区域可以对应于一个完整 的像素,而且因此不执行平滑。短语“被编码的扫描数据”用于指 采用未压缩的或者压缩的(例如,行程编码的)形式的数据,它描 述了处于三种状态(即打开、关闭或者灰度级)之一种状态中的扫 描行的区域。这些行程是通过从一条路径的内部到外部的过渡来确 定,其中该路径是通过对交点数据应用一种弯曲规则或者类似的技 术来定义的。

处理过程500可以在502开始,接收一个对象,如步骤504所 示。例如,该对象可以是以上参考图1所述的图形对象100。在一 个可选的步骤506中,确定该对象是否在高速缓存中。例如,可以 使用形状名称或者任何其他信息来进行这个确定,所述信息能够唯 一地标识如对应于该高速缓存中之存储项的对象之形状。如果该对 象之形状是在高速缓存中,则处理过程500可以继续步骤516,在 该步骤中,使用被高速缓存的形状和任何提供给该对象的填充和透 明度数据,可以将该对象与当前视频存储器相混合。如果该形状没 有在高速缓存中,则处理过程500可以继续到步骤508。

如步骤508中所示,处理过程500可以生成一条被变平的路径, 如上参考图2中的扫描变换器220所述。然后,被变平的路径可以 被用来生成交点数据,交点数据表示在路径和子像素区域之间的交 点,如步骤510所示。可以理解的是,这些交点可以表示一个形状 的边缘。如步骤512中所示,然后可以根据交点数据中生成被编码 的扫描数据,例如,如以上述参考图2中的相交处理过程224。被 编码的扫描数据表示该对象形状的轮廓,可以被保存在高速缓存中, 如步骤514所示。然后可以把视频存储与被编码的扫描数据混合, 如步骤516中所示,以及如参考图2的扫描行混合器226所做的详 细描述。处理过程500然后可以返回到步骤504,在该步骤中,可 以接收下一个连续的对象。

视频存储器可以提供视频数据帧到一个显示器中,其中该视频 存储器的内容被转换为人类可视形式。该视频存储器还可以存储前 一个视频数据的一个或多个帧,用于与由该形状处理器产生的视频 数据之新行混合。应该理解的是,该显示器可以是一个液晶显示器、 发光二极管显示器、或者任何其它用于以人类可视形式提供视频数 据的显示器。该显示器还可以是一个打印机、绘图仪、或者其它设 备,用于以一种固定的、有形的介质(如纸张)再现视频数据。

应该理解的是,上述处理过程500、以及图2中的形状处理器 200,可以以硬件、软件、或者它们的某些组合来实现。处理过程 500可以被实现在一个或多个微处理器、微控制器、嵌入微控制器、 可编程数字信号处理器或者其它可编程设备中,以及内部和/或外 部存储器中,例如只读存储器、可编程只读存储器、电可擦除可编 程只读存储器、随机存取存储器动态随机存取存储器、双倍数据 速率随机存取存储器、Rambus直接随机存取存储器、闪速存储器、 或者任何其它易失性或者非易失性存储器中,它们用于存储程序指 令、程序数据、以及程序输出或者其它中间或者最终结果。处理过 程500以及形状处理器200也可以(或者代之以)包含专用集成电 路、程控选通门阵列、可编程阵列逻辑、或者任何其它可以被配置 用于处理电子信号的设备。

上述电路和部件的任何组合、无论是否被分离地封装为一个芯 片、一个芯片组、或者一个管芯,可以适当地适于与在此描述的系 统一起使用。应该进一步理解的是,上述处理过程500和形状处理 器200可以被实现为计算机可执行代码,利用一种结构化程序设计 语言(诸如C)、一种面向对象的编程语言(诸如C++)、或者任何 其它高级或者低级编程语言来创建该代码,所述其它高级或者低级 编程语言可以被编译或者解释、以在上述设备中的一个上运行,也 可以实现为处理器的多机种组合、处理器体系结构、或者不同硬件 和软件的组合来实现。

形状处理器200尤其可以适合于并行的和/或流水线式的图象 处理系统,其中不同的图形对象可以被同时处理,然后被混合到一 帧视频存储器中。形状处理器200因此可以被实现为若干个物理上 分离的处理,或者实现为若干个逻辑上分离的处理,诸如在一个微 处理器上执行的多个形状处理器线程(thread)。这个方法可以类似 地应用于一个图形对象的不同扫描行。

上述系统提供了用于显示装置的有效图像呈现,可以非常适合 于小型、低功率设备,如具有液晶显示器(“LCD”)屏幕的便携式 设备,包括电子管理器、掌上式计算机、手持式游戏设备、web(网 页)使能的蜂窝电话(或者其它无线电话或者通讯设备)、以及个人 数字助理(“PDA”)。该系统还可以被组合到具有显示单元的廉价终 端设备中,诸如增强的电话、瘦网络客户机、以及机顶盒,以及其 他诸如打印机、绘图仪等等的呈现设备。例如,该系统可以被有用 地用作文件处理设备(如传真机、打印机、复印机等等)中的一个 嵌入式系统,其中一个工作文件和/或一个用户界面的显示器可以 增强功能。该系统可以有用地在汽车内系统中使用,该汽车内系统 向汽车用户呈现图像和/或提供图形用户界面,诸如在仪表板或者 中央操纵台或汽车中。在此描述的系统可以被组合到家用设备中, 包含音频播放器、微波炉冰箱、洗衣机、干衣机、烤箱或者洗碗 机。在此描述的系统还可以在任何上述系统中被有用地配置,其中 输出被产生到不同设备中,诸如显示器、打印机、网络、和/或文 件。单个设备可以使用该形状处理器以输出到这些设备中的任意设 备或所有设备。

虽然已经结合所图示和详细描述的优选实施例公开了该发明, 应该理解的是,本发明并不限于在此公开的实施例中,而是应该根 据权利要求书来理解,这些权利要求将在法律允许的最广阔范围内 得到解释。

高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈