用于生成图形数据的可视表示和数字文档处理的系统和方法

文档序号:6429134阅读:109来源:国知局
专利名称:用于生成图形数据的可视表示和数字文档处理的系统和方法
技术领域
本发明涉及数据处理方法和系统。特别是本发明涉及用于处理“图形数据”和“数字文档”(如在此所定义的)的方法和系统以及涉及包含这种方法和系统的设备。概括地说,本发明涉及生成源数据和文档的输出表示;例如作为可视显示或作为硬拷贝。更具体地说,本发明涉及混合相互覆盖的图形对象的堆栈,包括一个或多个动画对象,以便产生合成图形输出。
背景技术
如在此所使用的,术语“图形数据”、“图形对象”和“数字文档”用来描述由数据处理系统处理的任何类型的数据的数字表示,其通过通过可视显示或再现(例如,通过可视显示单元或打印机),或通过文本-语音转换等等,意图以某种形式,整个或部分最终向人类用户输出。这些数据、对象和文档可以包括能表示的任何特征,包括但不限于下述文本;图形图象;动画图形图象;全动视频图象;交互式图标、按钮、菜单或超级链接。数字文档还可以包括非可视单元诸如音频(声音)单元。数字文档通常包括或由图形数据和/或至少一个图形对象组成。
通常需要数字处理系统,诸如个人计算机系统来处理可以来自多个本地或远程源的任何一个以及可以以各种数据格式(“文件格式”)的任何一个存在的“数字文档”。为生成文档的输出版本,不管作为例如可视显示还是印刷拷贝,需要计算机系统来解释原始数据文件和生成与相关输出设备(例如监视器,或其他可视显示设备或打印机)兼容的输出。一般来说,这一过程可以包含适合于解释数据文件的应用程序、计算机的操作系统、专用于所需输出设备的软件“驱动程序”,以及在某些情况下(特别是用于监视器或其他可视显示单元),还包含以扩展卡形式的另外的硬件。
在硬件资源、软件开销和处理时间方面,处理数字文档以便生成输出的这种常规方法效率低,以及完全不适合于低功率、便携式数字处理系统,包括无线通讯系统,或不适合于低成本处理系统,诸如网络终端等等。在常规数字文档处理系统中面临其他问题,包括需要构造多个系统构件(包括硬件和软件构件)来以所需方式交互作用,以及在由不同系统处理相同源材料方面的不一致性(例如格式化、颜色再现等等方面的差异)。另外,数字文档处理的常规方法不能利用文件格式组件的通用性和/或可再用性。

发明内容
本发明的目的是提供用于处理图形数据、图形对象和数字文档的方法和系统,以及包含这些方法和系统的设备,这些方法和系统避免或减轻了常规方法和系统的上述缺陷。
在附加权利要求中在其各种方面定义本发明。本发明的另外的方面和特征从下述描述将是显而易见的。
在第一方面中,本发明涉及一种在数字文档处理系统中混合多个相互重叠的图形对象的方法,其中,在包括至少一个静态对象和至少一个动画对象的有序堆栈中排列所述多个图形对象,所述对象的每一个包括图形内容以及具有用于与之有关的对象的至少一部分的至少一个混合参数,所述方法包括(a)考虑到静态对象的各个混合参数,混合所述静态对象的内容以便形成至少一个合成静态对象;以及(b)考虑到动画对象的混合参数,将动画对象的内容与合成静态对象或每个合成静态对象混合。
在本发明的典型的实施例中,每个对象的至少一个混合参数包括表示与之有关的对象的至少一部分的透明度的至少一个α值。
在一个优选实施例中,步骤(a)包括混合堆栈中位于动画对象之下的静态对象以便形成第一合成静态对象以及混合堆栈中位于动画对象之上的静态对象以便形成第二合成静态对象,以及步骤(b)包括将动画对象与第一和第二合成静态对象混合。
在另一优选实施例中,步骤(a)包括考虑到堆栈中所有静态和动画对象的相对混合参数,将堆栈中所有静态对象的内容混合成单个合成静态对象,以及形成用于堆栈中动画对象或每个动画对象的混合参数值模板,模板或每个模板的混合参数值考虑到相应动画对象和堆栈中相应动画对象上的任何对象的混合参数值,以及步骤(b)包括在相应的混合参数值模板的基础上,将动画对象或每个动画对象的内容与合成静态对象混合。
根据本发明的第二方面,提供用来实现第一方面的方法的数字文档处理系统。
根据本发明的第二方面的优选系统包括输入装置,用于以一个或多个预定数据格式,接收表示源数据的输入字节流;解释装置,用于解释所述字节流;转换装置,用于将来自所述字节流的解释内容转换成内部表示数据格式;以及处理装置,用于处理所述内容表示数据以便生成适合于驱动输出设备的输出表示数据。
在另一方面中,本发明涉及用于数据处理系统的图形用户界面,其中通过根据本发明的第二方面的数字文档处理系统和包含这种图形用户界面的数据处理系统来生成由用户界面采用的交互式可视显示。
在另一方面中,本发明涉及包含根据本发明的第二方面的数字文档处理系统的各种类型的设备,包括硬件设备、数字处理系统和外围设备。
现在将参考附图,仅通过举例来描述本发明的实施例。
附图简要说明

图1示出在实现本发明的各个方面中可采用的优选数字文档处理系统的实施例的框图;图2示出根据本发明的一个方面,混合图形对象的方法的第一实施例的图;图3示出根据本发明的一个方面,混合图形对象的方法的另一实施例的图;图4示出根据本发明的一个方面,在混合图形对象中使用平铺(tiling)方法的图;图5示出根据本发明的一个方面,用于混合图形对象的方法的另一实施例的图;图6是表示在实现图5的方法的一个例子期间显示器和模板缓冲器(stencil buffer)的内容如何变化的示意图;图7是进一步示出图6的例子的表;图8示出用于将动画内容加在合成图形图象上、以及从合成图形图象减去动画内容的图5至7的方法的操作的示意图;图9是将常规的对象混合过程与图2和3的方法以及图5至8的方法比较的图;图10A示出与常规的缓冲方法有关的存储分配和分段的图;图10B示出与用在本发明的优选实施例中的平铺方法有关的存储分配和分段的图;
图10C示出实现用在本发明的优选实施例中的平铺方法的优选方法的图;图11示出使用用于实现图4B的方法的多个并行处理器组件的图。
优选实施例的详细说明现在参考附图,图1示出一种优选的数字文档处理系统8,其中可以实现本发明的各个方面的方法。在详细地描述本发明的方法之前,作为背景,将首先描述系统8。将理解的是,可以在除如在此所述的系统8外的处理系统中实现本发明的方法。
概括地说,系统8将处理包括以公知格式的数据文件的一个或多个源文档10。系统8的输入是包括源文档的内容的字节流。输入模块11在多个规则的任何一个的基础上,诸如文档内的明确的文件类型标识,由文件名(特别是文件名扩展),或由特定文件类型的内容的已知特性来识别源文档的文件格式。将字节流输入到专用于源文档的文件格式的“文档代理模块”12。文档代理模块12适合于解释输入字节流以及将其转换成由系统8采用的标准格式,产生适合于由系统8处理的以“本地(native)”格式的源数据的内部表示14。系统8通常将包括多个不同文档代理模块12,每个适合于处理相应的多个预定文件格式的一个。
系统8还可应用于从输入设备(诸如数字摄像机或扫描仪)接收的输入。在这种情况下,输入字节流可以直接来自输入设备,而不是同样地来自“源文件”。然而,该输入字节流仍然以适合于由系统处理的可预知数据格式,以及为系统目的,从这种输入设备接收的输入可以被视为“源文档”。
文档代理模块12中采用标准对象库16以便产生内部表示,在如在库16中定义的的类属对象的集合方面,其描述源文档的内容以及定义文档中的各个类属对象的特定实例的属性的参数。将理解到,可以以系统原始的文件格式保存/存储内部表示以及输入到系统8的可能的源文档10的范围可以包括以系统的原始文件格式的文档。对内部表示14来说还可以转换成其他文件格式的范围的任何一个。如果需要的话,使用适当的转换代理(未示出)。
用在内部表示14中的类属对象通常将包括文本、位形和矢量图形(其可以是或可以不是动画以及可以是二维或三维)、视频、音频和各种类型的交互式对象诸如按钮和图标。定义类属对象的特定实例的参数通常将包括定义对象的物理形状、大小和位置的空间坐标以及用于定义其属性随时间改变的对象的任何相关时间数据(允许系统处理动态文档结构和/或显示功能)。对文本对象来说,参数通常还包括将应用到字符串上的字体和大小。其他参数还可以定义其他属性,诸如透明度。
内部表示14的格式将如由对象类型和它们的参数描述的文档的“结构”(或“布局”)与各个对象的“内容”分开,例如,将文本对象的字符串(内容)与对象的空间参数分开;单独地图形对象的图象数据(内容)与其空间参数分开。这允许以非常紧密的方式定义文档结构以及提供用于将远程存储或仅当需要时,由系统提取的内容数据的选项。
内部表示14根据“高级”描述,描述文档和其组成对象。
将内部表示数据14输入到解析和再现模块18,生成由内部表示14表示的文档的上下文特定的表示20或“视图”。所需视图可以是整个文档或其一部分(子集)。解析/再现器18接收定义将生成的特定文档视图的观看上下文和任何相关的空间参数的视图控制输入40。例如,可以要求系统生成文档部分的变焦视图(zoomed view),然后平移(pan)或滚动变焦视图来显示文档的相邻部分。视图控制输入40由解析器/再现器18解释以便确定对特定视图需要内部表示的哪一部分以及如何、何时以及显示多久该视图。
根据原始形状和参数,表示上下文特定的表示/视图20。
解析器/再现器当生成源文档10的所需视图20时,也可以在内部表示14的相关部分上执行另外的预处理操作。视图表示20被输入到形状处理器模块22,用于最终处理以便生成以适合于驱动输出设备26(或多个输出设备),诸如显示设备或打印机的最终输出24。
解析器/再现器18的预处理功能可以包括颜色校正、分辨率调整/增强和防混叠。分辨率增强可以包括当由目标输出设备显示或再现时,保持对象的内容的易读性的缩放函数。分辨率调整可以是上下文有关的,例如,可以降低特定对象的显示分辨率同时当文档视图是静态时,平移或滚动所显示的文档视图。
在再现器/解析器18和内部表示14间可以存在反馈路径42,例如,为触发更新内部表示14的内容的目的,诸如在由内部表示表示的文档10由多个帧的动画组成的情况下。
来自解析器/再现器18的输出表示20根据同“原始”对象表示文档。对每个文档对象,表示20最好至少根据物理、矩形边界框、以边界框为界的对象的实际形状、对象的数据内容及其透明度来定义对象。
形状处理器22解释表示20以及将其转换成适合于目标输出设备26的输出帧格式24,例如,用于打印机的点图(dot map)、为绘图机而设置的矢量指令、或用于显示设备的位图。对形状处理器22的输出控制输入44定义用于形状处理器22的所需参数以便生成适合于特定输出设备26的输出24。
形状处理器22最好根据“形状”(即对象的轮廓形状)、“填充”(对象的数据内容)以及“α”(对象的透明度),处理由视图表示20定义的对象,执行适合于所需视图和输出设备的缩放和剪辑,以及根据适合于输出设备(对多数类型的显示设备或打印机来说,通常根据扫描转换或类似方式的像素)来表示对象。
形状处理器22最好包括根据扫描转换的像素、定义对象的形状的边界缓冲器,以及最好将防混叠应用于轮廓形状。最好以由输出设备26的特性确定的方式(即在控制输入44的基础上)、通过在对象边界上应用灰度斜坡,执行防混叠。这种方法能够实现存储器高效形状剪辑和形状交叉过程。
可以应用查找表来定义多个色调响应曲线,允许非线性再现控制(伽马校正)。
在合成输出帧24中组合由形状处理器22处理过的单个对象。最终输出的质量可以由用户经输出控制输入44来控制。
形状处理器22具有多级流水线结构,使得其本身通过使用形状处理器流水线的多个实例,并行处理多个对象,或多个文档,或一个或多个文档的多个子集。很容易修改流水线体系结构以便在需要时包括附加的处理功能(例如,滤波器功能)。来自多个形状处理器22的输出可以生成多个输出帧24或可以被组合在单个输出帧24中。
系统体系结构实际上是模块化的。这允许例如根据需要和当需要时,进一步增加文档代理模块以便处理另外的源文件格式。模块化的体系结构还允许在不要求改变其他模块的情况下,改变或升级单个模块,诸如库16、解析器/再现器18或形状处理器22。
系统体系结构作为整体还为其自身提供整体或部分并行性,用于以一个或多个文件格式,经一个或多个文档代理模块12、12a,同时处理多个输入文档10a、10b等等,或文档的子集。
系统的集成化、模块化性质允许根据需要或当需要时,在数据处理系统或设备内产生系统模块的多个实例,仅受可用处理和存储资源的限制。
用于总体上由系统,特别是形状处理器22提供的灵活的并行性的潜能使得对可用带宽和存储器而优化用于指定设备的显示路径。可以改善显示更新和动画、更快和要求更少存储器。所采用的对象/参数文档模型是确定和一致的。系统是完全可扩展的,并允许在多个CPU上的系统的多个实例。
解析器/再现器18和形状处理器22响应视图控制输入40,以优化使用的可用存储器和带宽的方式动态地交互。当驱动可视显示器,例如,当由用户滚动或平移显示时,这特别适合于刷新屏幕功能。
该系统可以实现可扩展延迟的刷新屏幕模型,以使文档视图,或视图内的一个或多个对象的显示分辨率根据将修改的显示的方式动态地改变。这通常可包含正以降低的分辨率显示、同时在屏幕上移动对象并在静止时以全分辨率显示对象。为此目的,系统可以采用多级显示质量。典型地,这将包含文档图象的预制、低分辨率位图表示和/或具有或不具有内插的动态组合和缩放的位图。这种方法提供了最佳利用可用存储器/带宽的强响应显示。
至今所描述的系统可以用来实现由本发明提供的方法。
根据本发明的第一方面,提供用于生成多个重叠(即,至少部分重叠)对象,至少其中的一个对象是动画对象的合成可视表示的方法,在此称为“混合”对象。根据至少一个预定混合函数,执行混合。每个对象具有与所应用的至少一个混合函数有关的至少一个混合参数值。适合这些方法的最常用的混合参数是透明度,本发明在此将特别参考透明度来说明。然而,将理解到本发明同样适合于其他混和参数。
如在此所使用的,“动画对象”包括其内容(包括数据内容和/或其他可视属性和/或位置和/或方向,和/或形状和/或大小)随时间定期或不定期、以任何方式和为任何原因改变的对象,包括但不限于视频对象、帧动画对象和逐渐更新的图形对象。
如在此所使用的,“部分透明对象”是指不是完全模糊的对象,以及术语“α值”表示指出在完全透明和完全不透明间,对象或其一部分的相对透明度的数值。部分透明度还指对象的防混叠“软”边界。“静态对象”是指其内容(包括位置、方向、形状、大小和其他相关属性)在感兴趣的时间周期期间不改变的对象。
现在参考图2,可以要求诸如图1的系统在考虑到每个对象的相对透明度(α值)的情况下,通过组合对象的所有内容,生成重叠的部分透明图形对象的有序堆栈的合成可视表示。如果堆栈中的一个对象是动画(如上所述),那么每次相对于其他对象改变动画对象的内容时,通常需要处理整个堆栈的对象以便生成反映动画对象的更新内容的新表示。
根据本发明的一个实施例,以将再现的对象的顺序,将对象堆栈分成动画对象(在下文中,称为“动画”)上下的静态对象的若干群集(cluster)。底部群集150包括堆栈中位于动画152之下的一个或多个对象,以及上部群集154包括堆栈中位于动画152之上的一个或多个对象。再现/混合底部群集150以便产生单个底部位图对象156以及再现/混合上部群集154以便产生单个上部位图对象158,以及动画152仍然单独地位于上下部位图之间。然后,仅需要混合两个位图对象和动画以便每次改变动画152的内容时,获得所需合成输出。即,仅需要混合下部群集对象一次和上部群集对象一次,提供大大降低的用于重复动画152中的变化的处理开销。
应理解的是,该方法即使在一个或多个群集仅由单个静态对象组成的情况下,也适用本发明,尽管随着每个群集中的对象数量增加,本方法在节省处理开销方面的优点也增加。
还应理解的是,在动画152位于堆栈的顶部(没有上部群集)或堆栈的下部(没有下部群集)的情况下,该方法也适用本发明。
动画152可以具有剪辑掩码(定义其形状)和与其相关的α掩码(定义其透明度)。类似的掩码可以用来定义除透明度以外的混合参数。
该方法还适用于在堆栈中有多个动画的情况下,如图3所示。在这里,群集160包括用于动画152B的下部群集,群集162包括用于动画152B的上部群集和用于动画152A的下部群集,以及群集164包括用于动画152A的上部群集,群集160、162和164分别混合成相应的单个位图对象166、168和170。对对象堆栈中多个动画,这种“聚类分离”能无限地嵌套/重复。可以看出,该方法同样适用于在堆栈内、堆栈的上端以及堆栈的下端,多个动画彼此相邻情形。
如图4所示,在动画152的任何一侧上的堆栈中的对象可以不同量彼此重叠以及重叠动画。在这种情况下,混合对象包含剪辑与动画152重叠的区域的静态对象(如图4中的阴影区),以便使混合群集对象158和156被剪辑到动画152的区域。
当处理是“基于对象”时,这需要任意的存储量。聚类方法能与平铺方法组合,如共同未决的国际专利申请号PCT/GB01/01742和美国专利申请序列号09/835483中所述,通过使所剪辑的对象四舍五入为最接近的固定图块大小,以便存储器和处理要求变得可预测,从而改善存储器和性能特性以及简化相关的编码。这还适合于如下所述的本发明的其他实施例。
可以通过将缓冲内容定义为按有序列表索引的图块(tile)阵列136,可以提高诸如用在本发明的方法中的各种图形对象的处理中的缓冲处理的效率。每个图块包括固定大小的位图(例如,32×32或64×64)以及可以被视为“微缓冲器”。当所需显示视图内容改变或被剪辑或在缓冲区外移动等等时,那么仅需要放弃不再需要的那些图块,构造新图块以便覆盖任何新显示内容以及更新图块列表。这比常规的缓冲处理更快和更有效,因为在缓冲器内不需要块拷贝,以及不需要移动或拷贝物理存储器。
可以综合使用在此所述的平铺方案来提供用于所有文档和屏幕刷新操作的图块库(tile pool)。图块被用于高速缓存屏幕外的文档和/或对象以及允许快速、有效地刷新视图。
使用所述的图块库还允许更有效地使用存储器和处理器资源。图10A表示由于不可预测的相连块分配需求,包含任意、不可预测大小的数据块的常规的屏幕上缓冲方法如何导致存储分段。由缓冲操作所需的存储块与处理器存储管理单元(MMU)块不匹配,以致重新分配存储器变得低效、要求大量物理存储拷贝操作,以及削弱高速缓存一致性。通过使用若干个固定、预定大小的图块,存储需求变得更可预测,以便更高效地使用和管理存储器和处理器资源,在不影响可用性的情况下,不限制分段以及对许多类型的缓冲操作,基本上可以消除存储器拷贝操作的需要(图10B)。理想地,选择图块大小以便符合处理器MMU块大小。
图10C示例说明用于管理图块库中的图块的优选方案。总是为构造每个新图块预留图块数量0。只要已经构造了新图块,使用下一可用空闲数来重新计数(即,在图块库能容纳n个图块的最大数的情况下,所分配的图块地址的数量限制到n-1)。在图块库重新计数失败的情况下,当图块库满以及不再有空闲图块时,新图块0直接写入到屏幕上以及启动背景处理(线程),用于碎片收集(例如,识别和移除“老化”图块)和/或分配额外的图块地址。这为处理资源分配失败提供了自适应机制。
所描述的平铺方案适用于并行处理,如图11所示。对一组图块的处理可以被划分在多个并行处理之间(例如,图1的形状处理器22的多个实例间)。例如,基于图块的屏幕位置,能划分一堆栈图块1-20以便由一个处理器WASP-A处理图块1-10的处理以及由第二处理器WASP-B处理图块11-20的处理。因此,如果刷新屏幕指令要求刷新图块1-3、7-9和12-14,由WASP-A处理图块2-4和7-9以及由WASP-B处理图块12-14。另外,基于图块存储器映象中的图块的位置,能划分图块堆栈,将图块存储器划分成用于由WASP-A处理的存储器A和用于由WASP-B处理的存储器B。
所描述的平铺方案有助于使用多重缓冲和脱屏高速缓存。它还便于可中断刷新功能(例如,使得可以中断当前刷新和响应用户输入启动新的刷新)、有效颜色/显示变换和抖动、用软件快速90度(肖像/风景)旋转整个显示,以及减小各个对象所需的刷新存储器。平铺还使得内插位图缩放更快和更有效。将理解的是,诸如图1的系统可以采用用于所有操作系统/GUI的公用图块库和数据处理系统的应用显示功能。
在本发明的这一方面的另外的实施例中,堆栈中的所有静态对象能被组合(混合)成单个位图对象,然后在混合静态对象中生成的“模板”或“掩码”(“α掩码”,其中混合参数表示透明度,如下所述)的基础上,通过单个位图对象混合动画。这在图5、6和7中描述过。
该方法使用显示缓冲器200,用于临时存储混合对象的合成像素值,以及一个或多个模板缓冲器202,用于临时存储用在将一个或多个动画与表示对象堆栈中的所有混合静态对象的显示缓冲内容混合中的模板的相应的像素值。
以下将参考对象A-F(从堆栈的下至上)堆栈来描述本发明的这一方面的例子,其中D是动画以及A、B、C、E和F是静态对象。每个对象具有相关的α值。对象可以具有单个、恒定的α值,或α值可以随对象区改变(例如,对象可以具有“软边界”,变得朝边界方向逐步更透明)。这同样适用于除α值外的混合函数和参数。在此所述的例子涉及最通用的情形,其中每个对象的混合参数值(这一例子中的α值)从一个像素到一个像素任意改变。
在该过程的第一阶段,考虑到它们各自的像素值(通常以根据所采用的颜色模型定义颜色和饱和度,或色度和亮度等等)和α值,以及还考虑到动画D的α值,按从堆栈的底部到顶部的顺序混合静态对象A、B、C、E和F。在这一混合静态对象期间,不考虑动画D的像素值,它导致包含单个位图对象的显示缓冲器200,单个位图对象为从所有静态对象A、B、C、E和F的像素值和所有对象A-F的α值导出的合成对象。
在显示缓冲器200中混合静态对象的同时,在堆栈中动画D本身和这一例子中的动画D上的那些静态对象E和F的α值的基础上,在模板缓冲器202中生成模板H。在如上所述混合所有静态对象后获得的最终模板包括相对于堆栈中的所有对象以及考虑到堆栈中动画D的位置,反映动画D的透明度的用于每个像素的一堆栈合成α值。
在过程的最后阶段,使用来自模板H的α值,通过动画D的像素值,混合合成位图G的像素值以便产生所有对象A-F的合成的最终位图。无论何时改变动画D的内容,仅需要使用在前获得的模板H,通过先前获得的位图G,混合新动画。
如果动画的透明度相对于其他对象而改变,那么当然有必要生成新的合成位图G和模板H。如下所述的本发明的另一实施例简化了生成新合成位图和模板的过程,当对象的透明度(或其他混合参数)随时间改变,例如使对象淡入或淡出。(其透明度或其他混合参数随时间变化的另外的静态对象是,或者变为如上所提供的定义内的动画对象)。
该方法可以适合于堆栈内的多个动画,考虑到堆栈中的每个对象的透明度和位置,生成用于每个动画的单个合成位图G和模板H。
通过参考如图5、6和7中所示的特定的、简化例子,将更好地理解该方法。
图6表示10像素×10像素显示缓冲器200和相应的10×10模板缓冲器202。在每个缓冲器下,示意性地示例说明用于该方法的步骤[1]-[7]的每个缓冲器的一行204的每个像素的内容。在缓冲内容的示例说明中,垂直方向表示从每个对象和从对象的组合导出的内容的比例。在各个α值的基础上,在此通过参考缩放不同对象的像素值和组合,描述这些比例的变化。该方法将通过特别参考所示的行的左边像素206描述该方法。所示的用于其他行的值完全是任意的,仅用于示例说明。
图7是表示如何计算和改变显示和模板缓冲器的内容用于图6的左边像素行的表,假定对象A-F的每一个的相关行的左边像素的α值如下对象α值A 60%B 20%C 40%D 60%(动画)E 40%F 20%在预备步骤中(未示出),初始化显示缓冲器200的内容,例如变黑或变白,以及使模板缓冲器初始化为“100%”。为方便起见,这一初始显示缓冲器200状态将称为初始对象I。
在每个步骤[1]至[6]中,通过按将混合的下一静态对象N的α的分量缩放当前缓冲像素值,按其自己的α值缩放对象N的像素值,以及将两者相加确定显示缓冲器的新内容。即,本例子的步骤[1]中得到的像素值=(100-60)%I+60%Ad[1]=40%I+60%A当该过程达到动画D时,按动画α值的补码缩放当前缓冲内容,但不将任何值加到该缓冲器上。此后,如前缩放和增加当前缓冲值和下一静态对象值。在已经将最终静态对象F缩放和增加到缓冲器后,缓冲器内容包括合成静态位图P(步骤[6])。
在每个步骤[1]至[6]期间,模板缓冲器内容保持不变,直至到达动画D(步骤[4])。然后,以该动画的α值缩放模板值。对于后续的对象(即,堆栈中在动画上的对象),按每个对象的α值的补码缩放模板值。一旦已处理最后一个(顶端的)对象,则获得最后的模板值H(步骤[6])。
最后,在步骤[7]中,按模板值H缩放动画D的像素值以及将其增加到合成位图值G上,以便获得包括动画内容的最终的合成显示。对动画内容的随后变化,仅需要以新动画内容重复步骤[7],以便更新显示(当有必要重新计算合成位图G和模板H时,只要相对于其他对象的动画的透明度不改变)。
如上所述,该方法适合于包括多个动画的对象堆栈。将考虑到每个动画的位置(堆栈内)和透明度而计算合成静态位图G,以及考虑到堆栈内各个动画本身和动画的所有静态和动画对象的透明度,计算用于每个动画的模板H。
应该理解,为本发明的这一实施例目的,重要的是按正确的顺序(从堆栈的底部到顶部)执行各个对象的像素值的缩放,以便最终合成图象适当地反映对象的顺序和相对透明度,但其中将各个对象的缩放值加在一起的顺序是不重要的。
这一方法有效地分开动画混合过程的两个阶段,缩放和增加,使得第二阶段(增加)被推迟,直到执行帧更新。因此,可以通过简单地减去缩放动画像素值来从合成图象移去在前动画对象帧。新帧可被缩放和增加,而前面的帧可以在单个步骤中被去除,降低系统开销,同时降低通常通过常规方法引起的可视显示闪烁。这被示出在图8中,图8表示最初包括合成静态内容G、第一动画内容K和第二动画内容L的组合的合成显示帧。能通过简单地从合成显示内容减去其缩放的像素值来去除第一动画内容K,以及能简单地通过增加已经使用与用于内容K相同的模板值缩放的新动画内容M来代替。
应该理解,可以用多种不同方法组合/混合在本发明的方法中采用的合成静态对象和动画对象内容,以便生成显示内容和执行更新。例如,可以在更新当前显示内容前独立地执行混合或通过从当前显示内容减去和增加到当前显示内容,“同时”执行混合和更新,例如,如上所述。
图9通过参考与图5中相同的对象堆栈,将常规的对象混合过程与图2和3的“聚类分离”方法以及图5至图8的“反面聚类分离”方法比较。在常规方法中,每次动画内容改变时,有必要处理堆栈中的所有单个对象以便生成正确的新合成显示输出。这一过程是“便宜的”(在系统资源方面)以便初始化,因为在绘制第一显示帧前,不需要预处理,但对后续的刷新是花费太大的,因为每次必须重新处理所有对象。
聚类分离方法将相邻静态对象堆栈减小到单个对象T和B,以便与常规方法中的六个对象A-F相比,每次刷新仅包含处理三个对象T、D和B。初始化花费更大,因为需要生成合成静态对象T和B。注意,在常规和聚类分离方法中,每次刷新需要处理对象A-F和T、D和B的内容和透明度(和/或其它混和参数值)。
反面聚类分离方法将所有静态对象减小到单个合成静态对象G,以及还要求生成动画α模板(和/或其他混合参数模板),如上所述,使得初始化比前述方法的任何一个花费更大。然而,每次刷新仅需要按α模板值缩放新动画内容以及增加到单个合成对象G上。在这一阶段的“混合”简单地包含正增加到合成对象G的在前确定的内容上的缩放动画内容。因此与聚类分离方法相比,刷新更便宜,即使动画D在堆栈的顶部或底部(即,仅有对象T和B中的一个)。
应当进一步注意,反面聚类分离方法是有利的,即使堆栈仅包括单个静态对象和位于静态对象之下的单个动画。将动画“翻转”到堆栈的顶部的过程同样降低了刷新成本。同时,聚类分离和反面聚类分离方法同样与仅包含单个静态对象的堆栈或群集一起使用,即使这些方法不提供任何成本节省。
上述例子为每个对象假设单个α值(或在大多数通常情况下,每个对象的每个像素)。然而应该理解,每个对象/像素中的颜色分量具有其自己的α。例如,如果使用RGB颜色方案,对象中的每个像素将具有三个颜色分量-每个分别用于红、绿和蓝(通常用(R,G,B))表示。在前例子对此进行处理,但通过将所有三个分量乘以相同的α值。然而,也可以对三个分量的每一个具有不同的α值-一个α值用于R分量,另一个用于G分量,以及第三用于B分量。可以用基本上如前所述相同的方式应用本发明的方法,唯一的扩展是现在有三个显示缓冲器和三个模板,R,G和B的每一个都对应一组。
可替换地,现有的缓冲器和模板可被视为深度为3的阵列。不改变算法,例如,当处理α红时,使用用于所有红色分量等等的补码(1-α红)。
已经参考RGB基色描述过这种“有色混合”(与同样适合于所有彩色通道的“消色差混合”不同),但同样适用于任何分量基色模型,诸如YUV,YCC等等。应理解的是,用相似的方式,可以将不同混合函数独立地应用于不同彩色通道上。
如上所述,本发明的“翻转顺序”混合方法能用于使一个或多个动画(包括与混合参数的空间变量分开的另外的静态的对象)退色(改变透明度或其他混合参数)。(同样,这可适用于消色差和有色混合,如上所述)。
考虑在中间某处具有动画A的对象的堆栈,这一动画具有透明度α。通过下述方法,能显示整个堆栈,包括具有透明度α的A或任何修改的透明度值。
可以使用如上所述的翻转顺序算法来创建两组显示缓冲器和模板。使用用于动画A的假定的透明度值0来创建第一组(D0,S0)。通过用于动画A的透明度值1来计算第二组(D1,S1)。
然后,可以创建生成的显示缓冲器(D,S)用于A的透明度的任何选定值(t)如下D=(1-t)D0+tD1S=(1-t)S0+tS1以及如前所述的最终结果来自将生成模板应用于动画A以及增加显示缓冲器(=AS+D)。当t=α时,这产生了初始效果。然而,通过简单地改变方程式中的t值,可以快速创建褪色效果,而不需要重复生成D0、D1、S0或S1的任一混合步骤。
一般来说,这种方法适合于使用如前所述的翻转顺序方法,在一个或多个步骤中,改变图形对象的有序堆栈中的至少一个动画对象的混合参数值。该方法包括形成用于相应于第一和第二混合参数值或混合参数值集的堆栈中的动画对象或每个动画对象的第一和第二混合参数模板和第一及第二显示缓冲器。所述第一和第二模板的每一个的混合参数值考虑到堆栈中相应动画对象或相应动画对象上的任何对象的混合参数值。对改变混合参数的值的每个步骤,从第一和第二模板和第一和第二显示缓冲器及用于当前步骤的所需参数混合值导出生成的混合参数模板和生成的显示缓冲内容。然后将生成的模板和显示缓冲器用在混合动画对象和合成静态对象的内容中。
再参考图1,实现本发明的方法的优选系统最好采用设备无关的颜色模型,适宜地,亮度/色度模型诸如CLE L*a*b*1976模型。这降低了图形对象中的冗余度,提高了数据可压缩性以及提高了不同输出设备间的颜色输出的一致性。根据形状处理器22的设备相关的控制输入44,能应用设备相关的颜色校正。
还应理解的是,用在本发明的方法中的不同对象和/或模板的分辨率可以彼此不同,和/或不同于最终输出显示的分辨率。不同的对象还可以采用不同的颜色模型。应用这些方法的最初一组图形对象也可以包括对象,诸如掩码、模板和过滤器。
图1表示具有接收源字节流的输入端以及从系统输出最终输出帧24的输出端的系统。然而,应理解的是,系统可以在其中间阶段中包括中间输入和输出,诸如用于提取数据内容或用于节省/转换在处理期间产生的数据。
尽管在此特别参考集成的、或至少局部数据处理设备和系统来描述本发明,但本发明也可以被实现在通过将一个或多个内容源链接到一个或多个位置的任意类型的数据通信网络的分配系统中。关于这一点,本发明很有利,因为例如混合对象和/或模板仅需要经网络传送一次以及随后,仅需要传送动画内容更新,节省了带宽以及保存了网络资源。在用于传送到一个或多个终端用户的位置的一个或多个中间位置,能混合来自不同源的内容,其中如果需要的话,可以在终端用户处执行最终混合。
根据本发明的第二方面的数字文档处理系统可以用多种不同的方式被组合在各种数据处理系统和设备中,以及被组合在外围设备中。
在通用数据处理系统(“主机系统”)中,可以与主机系统的操作系统和应用系统并排地组合本发明的系统,或可以将本发明的系统全部或部分组合在主机操作系统中。
例如,本发明的系统允许在具有LCD显示器的便携式数据处理设备上快速显示各种类型的数据文件,而不需要使用浏览器或应用程序。为了便携性,这类数据处理设备需要小尺寸、低功率处理器。典型地,这要求使用设计成ASIC(专用集成电路)的先进的RISC型核心处理器,以便电子封装尽可能地小且高度集成。这种类型的设备还具有有限的随机存取存储器,典型地,不具有非易失性数据存储器(例如,硬盘)。诸如用在标准台式计算系统(PC)中的常规的操作系统模型需要高动力中央处理器以及大量存储器,以便处理数字文档和生成有用输出,以及整个不适合于这种类型的数据处理设备。特别地,常规系统不以集成方式提供用于多个文件格式的处理。相反,本发明可以对所有文件格式利用公共处理和流水线,从而提供一种在功耗和系统资源的使用率方面极其高效的高度集成的文档处理系统。
可以在便携式数据处理设备的BIOS级集成本发明的系统,以便能够实现通过比常规系统模型更低开销的文档处理和输出。可替换地,可以正好在传输协议堆栈上的最低系统级上实现本发明。例如,可以将该系统集成到网络设备(卡)或系统中,以便提供网络业务的联机处理(例如,在TCP/IP系统中的分组级工作)。
在特定的设备中,本发明的系统被构造以处理一组预定的数据文件格式和操作特定的输出设备;例如,设备的可视显示单元和/或至少一种类型的打印机。
可以采用本发明的系统的便携式数据处理设备的例子可包括“掌上”计算机、便携式数字助理(PDA,包括台式PDA,其中主要用户界面包括用户用其通过尖笔设备直接进行交互的图形显示)、因特网使能的移动电话和其他通信设备等等。
该系统还可以集成到低成本数据处理终端中,诸如增强型电话和“瘦”网络客户端(例如,具有有限本地处理和存储资源的网络终端),以及用在交互式/因特网使能的有线电视系统中的“机顶盒”。
当与数据处理系统的操作系统结合时,本发明的系统还可以形成用于操作系统(OS)的新颖图形用户接口(GUI)的基础。由系统处理和显示的文档可以包括交互式特征,诸如菜单、按钮、图标等等,其提供操作系统的基本功能的用户界面。通过扩展,根据系统“文档”,可以表示、处理和显示整个OS/GUI。OS/GUI可以包括具有多个“章节”的单个文档。
本发明的系统还可以被集成到外围设备中,诸如硬拷贝设备(打印机和绘图机)、显示设备(诸如数字投影仪)、联网设备、输入设备(照相机、扫描仪等等),以及多功能外围设备(MFP)。
当集成到打印机中时,系统可以允许打印机从主机数据处理系统接收原始数据文件,以及正确地再现原始数据文件的内容,而不需要由主机系统提供的特殊的应用程序或驱动程序。这避免了需要构造计算机系统来驱动特殊类型的打印机。本系统还可以直接地生成适合于由打印机输出的源文档的点映射图像(不管将该系统集成到打印机本身还是主机系统中,都是如此)。类似的考虑应用于其他硬拷贝设备诸如绘图仪。
当集成到显示设备,诸如投影仪中时,系统可以再次允许设备来正确地显示原始数据文件的内容而不使用主机系统上的应用程序或驱动程序,以及不需要主机系统和/或显示设备的专用的结构。这些类型的外围设备在具有本系统时,可以经任何类型的数据通信网络,从任何信源接收和输出数据文件。
根据上文,应理解的是,本发明的系统可以是“硬布线”,例如被实现在ROM中和/或被集成到ASIC或其他单芯片系统中,或可以被实现为固件(可编程ROM,诸如可闪速的ePROM),或被实现为软件而在本地或远程存储,以及根据需要由特定设备提取和执行。
可以包含改善和改进,而不背离本发明的范围。
权利要求
1.一种在数字文档处理系统中混合多个相互重叠的图形对象的方法,其中,在包括至少一个静态对象和至少一个动画对象的有序堆栈中排列所述多个图形对象,所述对象的每一个包括图形内容以及具有用于与之有关的对象的至少一部分的至少一个混合参数,所述方法包括(a)考虑到静态对象的各个混合参数,混合所述静态对象的内容以便形成至少一个合成静态对象;以及(b)考虑到动画对象的混合参数,将动画对象的内容与合成静态对象或每个合成静态对象混合。
2.如权利要求1所述的方法,进一步包括(c)当动画对象的内容改变时,使用在步骤(a)中形成的在前获得的合成静态对象,重复步骤(b)。
3.如权利要求2所述的方法,其中,用通过将第二动画对象内容与在步骤(a)中形成的在前获得的合成静态对象混合形成的新显示内容代替使用第一动画对象内容、在步骤(b)中形成的当前显示内容。
4.如权利要求2所述的方法,其中,通过将当前显示内容减去第一动画内容以及增加第二动画对象内容,来更新使用第一动画对象内容、在步骤(b)中形成的当前显示内容。
5.如权利要求1至4的任何一个所述的方法,其中,动画对象在堆栈的顶部,以及步骤(a)包括混合堆栈中位于动画对象之下的静态对象以便形成单个合成静态对象,以及步骤(b)包括将动画对象与单个合成静态对象混合。
6.如权利要求1至4的任何一个所述的方法,其中,动画对象在堆栈的底部,以及步骤(a)包括混合堆栈中位于动画对象之上的静态对象以便形成单个合成静态对象,以及步骤(b)包括将动画对象与单个合成静态对象混合。
7.如权利要求1至4的任何一个所述的方法,其中,步骤(a)包括混合堆栈中位于动画对象之下的静态对象以便形成第一合成静态对象以及混合堆栈中位于动画对象之上的静态对象以便形成第二合成静态对象,以及步骤(b)包括将动画对象与第一和第二合成静态对象混合。
8.如权利要求7所述的方法,其中,该堆栈包括多个动画对象,以及其中,步骤(b)包括形成用于位于最底部的动画对象之下、最顶部的动画对象之上或介入该堆栈中动画对象之间之中的任一位置的每组静态对象的一个合成静态对象。
9.如权利要求1至4的任何一个所述的方法,其中,步骤(a)包括考虑到堆栈中所有静态和动画对象的相对混合参数,将堆栈中所有静态对象的内容混合成单个合成静态对象,以及形成用于堆栈中动画对象或每个动画对象的混合参数值模板,模板或每个模板的混合参数值考虑到相应动画对象和堆栈中相应动画对象上的任何对象的混合参数值,以及步骤(b)包括在相应的混合参数值模板的基础上,将动画对象或每个动画对象的内容与该合成静态对象混合。
10.如权利要求9所述的方法,其中,所述对象被混合在显示缓冲器中,以及包括利用堆栈中下一对象的混合参数值的补码,通过缩放显示缓冲器的当前内容,按从堆栈的底部到顶部的顺序处理所述对象,以及在堆栈中的下一对象为静态对象的情况下,按其自己的混合参数值缩放静态对象的内容,以及将静态对象的缩放内容增加到显示缓冲器的缩放内容上。
11.如权利要求10所述的方法,其中,在模板缓冲器中形成用于每个动画对象的混合参数值模板,以及包括在堆栈中的下一对象是与模板缓冲器对应的动画对象的情况下,按该动画对象的混合参数值缩放模板的混合参数值,以及在堆栈中的下一对象在与模板缓冲器对应的动画对象之上的情况下,按下一对象的混合参数值的补码缩放模板缓冲器的当前混合参数值。
12.如权利要求11所述的方法,其中,步骤(b)包括按对应的模板的混合参数值缩放动画对象的内容、以及将缩放的动画对象内容增加到显示缓冲器的合成、缩放的静态对象内容上。
13.如权利要求12所述的方法,其中,通过使用在前获得的混合参数值模板、缩放新动画对象内容,以及将新缩放的动画对象内容增加到在前获得的合成静态对象上,以更新当前显示内容。
14.如权利要求12所述的方法,其中,通过使用在前获得的混合参数值模板来缩放新动画对象内容,从当前显示内容减去当前缩放的动画对象内容,以及增加新缩放的动画对象内容,以更新当前显示内容。
15.如权利要求10至14的任何一个所述的方法,适用于在一个或多个步骤中改变图形对象的有序堆栈中至少一个动画对象的混合参数值,包括形成用于与第一和第二混合参数值或若干混合参数值的集合对应的堆栈中的动画对象或每个动画对象的第一和第二混合参数模板及第一和第二显示缓冲器,所述第一和第二模板的每一个的混合参数值考虑到相应动画对象和堆栈中相应动画对象之上的任何对象的混合参数值,以及对改变混合参数值的每个步骤,由第一和第二模板以及第一和第二显示缓冲器,以及用于当前步骤所需的参数混合值导出用在所述步骤(b)中的合成混合参数模板和合成显示缓冲器内容。
16.如权利要求15所述的方法,其中,使用混合参数值0创建第一模板S0和第一显示缓冲器D0,以及使用混合参数值1创建第二模板S0和第二显示缓冲器D1,以及其中,计算合成模板S和合成显示缓冲器内容D用于当前步骤的所需参数混合值t如下D=(1-t)D0+tD1S=(1-t)S0+tS1。
17.如权利要求1至16的任何一个所述的方法,其中,每个对象的所述至少一个混合参数包括表示与之有关的对象的至少一部分的透明度的至少一个α值。
18.如任何一个在前权利要求所述的方法,其中,所述至少一个混合参数是适合于与之有关的对象的所有彩色通道的消色差混合参数。
19.如权利要求17所述的方法,其中,所述至少一个混合参数包括多个有色混合参数值,每个有色混合参数值适合于与之有关的对象的至少一个彩色通道。
20.如权利要求1至19的任何一个所述的方法,包括将所述图形对象和合成对象划分成多个固定的、预定大小的位图块以及将所述图块存储在一附标阵列中。
21.如权利要求20所述的方法,包括通过四舍五入为最接近的图块大小,有选择地剪辑至少一个所述对象。
22.如权利要求20所述的方法,其中,通过从所选择的集合去除冗余图块以及将新图块增加到所述选择的集合中,来更新所述图形对象的当前内容。
23.如权利要求15至22的任何一个所述的方法,包括并行处理所述图块的子集。
24.如权利要求1至19的任何一个所述的方法,其中,根据权利要求20至23的任一项,由图块组装所述对象和合成显示内容。
25.如任何一个在前权利要求所述的方法,其中,所述图形对象来自用于经数据通信网络,传送到至少一个输出位置的至少一个内容源,以及其中,至少部分地在所述内容源的至少一个和/或在所述输出位置的至少一个和/或在至少一个中间位置执行混合步骤(a)和(b)。
26.一种数字文档处理系统,适于实现权利要求1至25的任一项的方法。
27.如权利要求26所述的系统,包括输入装置,用于以一个或多个预定数据格式,接收表示源数据的输入字节流;解释装置,用于解释所述字节流;转换装置,用于将由所述字节流解释的内容转换成内部表示数据格式;以及处理装置,用于处理所述内容表示数据,以便生成适合于驱动输出设备的输出表示数据。
28.如权利要求27所述的系统,其中,所述源数据定义数字文档的内容和结构,以及其中,根据定义多种数据类型的类属对象和定义类属对象的特定实例的属性,所述内部表示数据描述所述结构,而与所述内容分开。
29.如权利要求28所述的系统,进一步包括类属对象类型库,所述内部表示数据基于所述库的内容。
30.如权利要求28或权利要求29所述的系统,包括一个解析和再现模块,用来在所述解析和再现模块的第一控制输入的基础上,生成所述内部表示数据的至少一部分的特定视图的基于对象和参数的表示。
31.如权利要求30所述的系统,进一步包括形状处理模块,用来从所述解析和再现模块接收所述特定视图的所述基于对象和参数的表示,以及将所述基于对象和参数的表示转换成适合于驱动特定输出设备的输出数据格式。
32.如权利要求31所述的系统,其中,所述形状处理模块在定义对象的边界的边界框、定义由边界框限定的对象的实际形状的形状、对象的数据内容和对象的透明度的基础上,处理所述对象。
33.如权利要求32所述的系统,其中,所述形状处理模块用来对所述对象的边缘施加灰度级防混叠。
34.如权利要求31、权利要求32或权利要求33所述的系统,其中,所述形状处理模块具有流水线体系结构。
35.如权利要求28至34的任何一个所述的系统,其中,所述对象参数包括空间、物理和时间参数。
36.如权利要求27至35的任何一个所述的系统,其中,所述系统采用基于色度/亮度的彩色模型以便描述颜色数据。
37.如权利要求27至36的任何一个所述的系统,其中,该系统适合于整体或部分的多重并行实现,以便处理来自一个或多个数据源的一个或多个源数据的集合以及用于生成一个或多个输出表示数据的集合。
38.一种用于数据处理系统的图形用户接口,其中,借助于如权利要求26至37的任何一个所述的数字文档处理系统,生成由用户接口采用的交互式可视显示。
39.一种数据处理设备,包含如权利要求38所述的图形用户接口。
40.一种硬件设备,用于数据处理和/或存储编码如权利要求26至37的任何一个所述的数字文档处理系统。
41.如权利要求40所述的硬件设备,进一步包括核心处理器系统。
42.如权利要求41所述的硬件设备,其中,所述核心处理器是RISC处理器。
43.一种数据处理系统,包括如权利要求26至37的任何一个所述的数字文档处理系统。
44.如权利要求43所述的数据处理系统,其中,所述数据处理系统包括便携式数据处理设备。
45.如权利要求44所述的数据处理系统,其中,所述便携式数据处理设备包括无线远程通信设备。
46.如权利要求43所述的数据处理系统,其中,所述数据处理系统包括网络用户终端。
47.一种用于与数据处理系统一起使用的外围设备,包括如权利要求26至37的任何一个所述的数字文档处理系统。
48.如权利要求47所述的外围设备,其中,所述外围设备是可视显示设备。
49.如权利要求47所述的外围设备,其中,所述外围设备是硬拷贝输出设备。
50.如权利要求47所述的外围设备,其中,所述外围设备是输入设备。
51.如权利要求47所述的外围设备,其中,所述外围设备是网络设备。
52.如权利要求47所述的外围设备,其中,所述外围设备是多功能外围设备。
全文摘要
一种在数字文档处理系统中混合多个相互重叠的图形对象的方法。这些图形对象被排列在包括至少一个静态对象和至少一个动画对象的有序堆栈中。每个对象具有至少一个相关混合参数(例如透明度)。该方法包括(a)考虑到静态对象的各个混合参数,混合静态对象的内容以便形成至少一个合成静态对象;以及(b)考虑到动画对象的混合参数,将动画对象的内容与合成静态对象混合。当动画对象的内容改变时,可以重新使用在步骤(a)中形成的合成静态对象。在优选实施例中,在步骤(a)中,考虑到堆栈中所有对象的混合参数,使堆栈中的所有静态对象的内容混合成单个合成静态对象。考虑到相应动画对象和堆栈中相应动画对象之上的任何对象的混合参数值,创建混合参数值模板用于堆栈中的每个动画对象。步骤(b)包括根据相应的模板、将每个动画对象的内容与合成静态对象混合。
文档编号G06T11/60GK1568484SQ02820279
公开日2005年1月19日 申请日期2002年10月10日 优先权日2001年10月13日
发明者马吉德·安瓦尔, 布里安·里夏德·波洛克 申请人:皮克塞(研究)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1