优选实施例的详细说明
此处所述的系统和方法将会参照若干示例性应用程序和实施例进行说明,包括的实施例很好地适用于识别与源应用程序的输出相关联的文件类型,比如由一字处理应用软件产生的文件,以便产生那些输出的直观显示的表示,其中所述表示表现为一种概要形式,该概要形式可以被适用于特定平台(比如一手持式设备)的呈现引擎(rendering engine)所呈现,然而,此处所述的系统和方法仅仅是本发明的某些实施例的示例,无论如何不能被理解为限制。
现在参看图1,图1描述了根据本发明的一个系统8。具体来讲,图1描述该系统8、具有若干执行处理过程的数据处理器13、若干输出源流10和一个输出显示器26。该数据处理器13可以是任何一种适当的数据处理平台,包括传统的数据处理平台,比如PC工作站或者服务器。在该数据处理器上执行的处理进程可以是任何产生输出源的应用程序,所述输出源被(或可以被)呈现在一个显示器上。举例来说,所述处理进程可以包括产生.doc文件的文字处理程序,所述.doc文件可以被表现为直观显示器上的页面。类似地,所述处理过程13可以包括一个网络服务器(web server),它传送HTML、XML、流式多媒体或者PDF文件,用于由浏览器显示。所述输出目标设备26可以是任何一种适当的设备,它可以用于显示由所述处理过程传送的源。
因此,图1描述本发明的系统8可以连接若干不同应用程序的输出源以及不同格式的输出源。所述系统8可以识别每一源的格式并处理所述源,作为其格式的函数。该被处理的源可以表现为一种适用于在目标设备26的显示器上呈现的格式。
图2更详细地描述了图1的系统8。具体来讲,图2描述了若干应用程序源10,所述系统8包括一个输入模块11即前端、若干文件代理程序处理过程12、表示直观图像的内部表示的显示列表14、呈现模块18以及一个类属对象类型库19,其中所述直观图像的内部表示与被处理的应用程序源10相关联。
所述自适应前端11包括若干文件代理模块12。每一文件代理模块12可以是能够接收与一应用程序源10相关联的流(比如Unix流或者Java流)的软件或者硬件模块。所述文件代理模块12可以通过所述流来分类,以确定所述代理模块12是否识别那些流的格式。如果所述格式被识别为属于那些代理模块12,所述代理模块12可以开始完全地处理所述输入流。对一个输出源的处理可以包括对所述源进行解析,以便识别所述源内表示被显示的图像的标记。这些标记可以包括测试、字体、位图及其他此类标识符。
在所述实施例中,前端11包括若干不同的文件代理模块,每一文件代理模块与一不同格式输出源相关联。通过提供若干文件代理模块并允许每一文件代理模块12检查所述被处理的输出源,图2中的系统是一个多能的处理引擎,可以显示多种文件的输出源。
所述文件代理模块12处理所述输出流时,所述代理模块12构造一个新的数据文件,显示列表14,它对由所述输出源表示的直观图像编码。所述显示列表14包括直观图像的内部表示。所述显示列表14可以被传送给所述呈现引擎18,它将会处理所述显示列表内的信息,以便创建所述目标输出设备26上的直观图像。为此,通过对于一个已知对象类型库创建包括一组指针的文件,所述文件代理模块12构造直观图像的内部表示。当所述呈现引擎18运行时,要参照所述已知对象类型库19,而从所述库19检索出的对象用于在所述目标输出设备26上显示。
尽管图1和图2图示出该系统8为包括若干功能块单元,对于本领域中普通技术人员显而易见的是,这些单元可以被实现为计算机程序或者部分计算机程序,这些程序能够在数据处理器平台(比如目标设备26)上运行,从而将该数据处理器配置为根据本发明的系统。这些程序可以被实现为软件组件,并在常规的数据处理系统(比如UNIX工作站)上运行,可以被实现为C语言计算机程序、或者以任何高级语言(包括C++、Fortran、Java或者Basic)编写的计算机程序。此外,在采用微控制器或者数字信号处理器的实施例中,所述系统可以被实现为计算机程序,这些计算机程序以微代码编写、或者是以高级语言编写并且被编译为可在所采用的平台上执行的微代码。
现在参照附图中的图3,更详细地示出一种具体实施本发明的数字文件处理系统8以及它的操作方法。
概括地说,所述系统8可以处理的源文件10包括已知格式的数据文件。对所述系统8的输入是包括所述源文件的内容的字节流。输入模块11根据各种标准之任一种识别所述源文件的文件格式,例如所述文件中的明确的文件类型标识符、根据文件名(特别是文件名扩展部分)、或者根据特定文件类型的内容的已知特征。所述字节流被输入给″文件代理模块″12,专用于该源文件的文件格式。所述文件代理模块12适用于解释所述输入字节流,并将其转换为所述系统8所采用的标准格式,结果形成源数据的内部表示14,该内部表示14采用适用于由所述系统8处理的“本地”格式。所述系统8通常包括若干不同的文件代理模块12,每一文件代理模块12适于处理相应的若干预定文件格式之一。
所述系统8还可以被用于从输入设备(诸如数字摄象机或者扫描仪)接收的输入。在该情况下,所述输入字节流可以直接来源于所述输入设备,而不是同样来源于一个″源文件″。然而,该输入字节流仍将是一可预测的、适用于由该系统处理的数据格式,并且用于本发明的目的,从这样一个输入设备接收的输入可以被认为是一个″源文件″。
所述文件代理模块12采用标准对象的库16来产生内部表示14,它按照类属对象连同定义所述文件内部的各种类属对象的特定实例之性质的参数的集合来描述所述源文件的内容,其中类属对象的类型被定义在所述库16中。很清楚的是,所述内部表示可以用所述系统本地的文件格式存储/存放,而输入给所述系统8的可能的源文件的范围可以包括采用所述系统的本地文件格式的文件。使用适当的转换代理模块(未示出),在需要的时候可将所述内部表示14转换为其他文件格式中的任何一个。
所述内部表示14中采用的类属对象一般包括:文本、位图图形以及矢量图(可能是或者可能不是活动的,并且可能是两维或者三维的)、视频、音频、以及各种类型的交互对象,例如按钮和图标。定义类属对象的特定实例的参数通常包括定义对象的物理形状、大小和位置的空间坐标以及任何相应的时间数据,用于定义其特性随时间而变的对象(使该系统能处理动态文件结构和/或显示功能)。对于文本对象,所述参数一般还包括应用于字符串的字体和大小。对象参数还可以定义其他性质,例如透明度。
所述内部表示14的格式将如由对象类型及其参数描述的文件的″结构″(或者″布局″)与各种对象的″内容″分离;例如文本对象的字符串(内容)与该对象的空间参数分离;图形对象的图像数据(内容)与它的空间参数分离。这使得文件结构可以一种非常紧凑方式来定义,并且为远端存储并只有当需要时才由系统取出的内容数据提供选项。
所述内部表示14用″高级″描述来说明所述文件和它的构成对象。
所述内部表示数据14被输入给一解析和呈现模块18,该解析和呈现模块18产生由内部表示14表示的文件的上下文专用的表示(context-specific represnetation)20或″视图″。所要求的视图可以是整个文件的或者它的部分(子集)。所述解析模块/呈现模块18接收视图控制输入40,这些输入定义将被产生的特定文件视图的查看上下文和任何相关的时间参数。举例来说,可以要求该系统10产生一个文件的一部分的图象缩放视图,然后全景展开或者滚动该缩放视图,以显示文件的邻近部分。所述视图控制输入40由所述解析模块/呈现模块18解释,以确定所述内部表示的哪一部分被一特定的视图需要,以及该视图将被如何显示、何时显示和显示多长时间。
所述上下文特定的表示/视图20用基本形状和参数表达。
该解析模块/呈现模块18还可以在产生源文件10的所要求视图20时、对内部表示的相关部分执行另外的预处理功能。该视图表示20被输入给一形状处理器模块22,用于最终处理,以产生一个最终输出24,其格式适用于驱动一个输出设备26(或者多个输出设备),例如显示设备或者打印机。
该解析模块/呈现模块18的预处理功能可以包括色彩校正、分辨率调整/增强和防叠处理(anti-aliasing)。分辩率增强可以包括缩放功能,当由目标输出设备显示或者再现对象的内容时,这些功能保持对象之内容的清晰度。分辩率调整可以上下文相关的;例如在被显示的文件视图正在全景展开或者滚动时,特定的对象的显示分辩率可以被减少,而当该文件视图是静态的时候,分辨率增加。
在呈现模块/解析模块18和内部表示14之间可以有一条反馈路径42;例如,为了触发内部表示14的内容的更新,比如在由该内部表示表现的文件10包括多帧动画的情况。
来自所述解析模块/呈现模块18的输出表示20用″基本″对象来表示文件。对于每一文件对象,优选的是,该表示20至少根据物理的、矩形的边界框、由该边界框界定的对象的实际形状、对象的数据内容和它的透明度来定义该对象。
该形状处理器22解释该表示20,并将它转换为适合于目标输出设备26的输出帧格式24;例如用于打印机的点映射,用于绘图仪的向量指令组或者用于显示设备的位图。对形状处理器22的输出控制输入44定义用于该形状处理器22的必要的参数,以便产生适用于特定输出设备26的输出24。
优选的是,该形状处理器22根据″形状″(即对象的轮廓形状)、″填充″(对象的数据内容)和″阿尔法″(对象的透明度)来处理由视图表示20定义的对象,执行适合于所要求的视图和输出设备的图象缩放和剪贴,并表示该对象以适于输出设备(对于大多数种类的显示设备或者打印机,一般利用通过扫描转换或类似手段的像素)。
该形状处理器22最好包括一边缘缓存器,它利用扫描转换的像素定义对象的形状,并且最好是对其轮廓形状应用防叠处理。优选的是,通过在对象边界上施加一个灰度级梯度(grey-scale ramp),可以用一种由输出设备26的特性确定的方式(即根据所述控制输入44)执行防叠处理。该方法启用存储高效的形状剪贴和形状交叉处理。
可以采用查找表定义多频声响应曲线,提供非线性的呈现控制(伽马校正)。
由所述形状处理器22处理的单独对象被组合成合成的输出帧24。最终输出的质量还可以由用户通过所述输出控制输入44来控制。
形状处理器22具有多级流水线结构(pipeline architecture),该结构适用于通过使用形状处理器流水线的多个实例,对多个对象、或者多个文件、或者一个或多个文件的多个子集进行并行处理。如果需要,所述流水线结构还易于被修改,以包括另外的处理功能(例如过滤功能)。来自多个形状处理器22的输出可以产生多个输出帧24,或者可以被合并在单个输出帧24中。
该系统体系结构本质上是模块化的。举例来说,这使得当需要时可以添加更多的文件代理模块,以处理其他的源文件格式。所述模块结构还允许单个模块(例如库16、解析模块/呈现模块18或者形状处理器22)被修改或者升级,而无需对其他模块做修改。
所述系统体系结构总体上还适用于完全或者部分的并行,用于通过一个或多个文件代理模块12、12a同时处理采用一个或多个文件格式的多输入文件10a、10b等等或者文件的子集。所述系统的集成的、模块化的性质使得当需要时、在数据处理系统或设备内可以产生系统模块的多个实例,仅仅受可用的处理和存储资源的限制。
由所述系统在总体上和形状处理器22在细节上提供的所述灵活的并行性的潜力,使得为了可用带宽和存储可以优化对于一给定设备的显示路径。显示更新和动画可以被改善、加快和需要较少的存储。所采用的对象/参数文件模式是确定的和一致的。所述系统是完全可扩展的,并且允许所述系统的多个实例通过多个CPU。
所述解析模块/呈现模块18和形状处理器22响应于视图控制输入40,以一种最优化使用有效存储和带宽的方式动态地进行交互。这特别适用于当驱动一直观显示时的重新绘制(re-draw)功能,例如当所述显示正在由用户滚动或者全景展开时。
首先,优选的是,该系统实现一种可扩展的延迟(deferred)重新绘制模式,因此文件视图的显示分辩率、或者在一视图内的一个或多个对象的显示分辩率根据其中该显示将被修改的方式动态地变化。正如前面提到的那样,这一般可以包括在对象在屏上移动的同时以减少的分辩率显示该对象、而静止时以完全的分辩率显示该对象。为此目的,所述系统可以采用多级显示质量。一般,这包括文件对象之预构建的、低分辨率的位图表示、和/或动态构建并被调节的位图,无论是否有插入。 该方法提供一个高度反应的显示,这能最好地使用有效存储/带宽。
所述呈现模块/解析模块18和形状处理器22的交互作用最好还包括将所查看的页面分解为若干区域。每一区域与所有包含在区域内或者与区域重叠的对象的列表相关联。因此,重新绘制可以根据这些区域处理,从而所述系统仅仅需要处理与受重新绘制影响的相关区域相关联的对象。该方法便于并行处理,并且改善效率和减少冗余。区域的使用还有助于使用所述系统以便产生用于不同的显示设备的不同的输出(例如用于产生由一组独立的显示屏显示的合成的/拼成的输出)。
能够处理透明的对象是该系统的一个重要的特点。然而,这要求在形状处理器22中使用离屏缓存,以便组合最终输出帧。一般,离屏缓存器将覆盖比直接显示区域更大的区域,使得在缓冲区内允许有限度的全景展开/滚动,而当所要求的显示超出这些界限移动时,必须重新定中心和重新构造整个缓存器。最好是,所述系统通过将该缓存器内容定义为一组拼块(tile)并附标在一个有序列表中,来改善这种缓存处理的效率。当所要求的显示视图在该缓冲区外移动时,那么仅仅需要丢弃那些不再需要的拼块、构造新的拼块来覆盖该显示的新区域和更新拼块列表。这比传统的缓存处理更迅速和更有效,而且便于使用多缓存以及离屏高速缓存。它还有助于可中断的重新绘制功能(例如以便响应于用户输入而可以中断当前重新绘制而开始新的重新绘制)。
如上所述的分区和拼块方案在原理上是独立的,但是可以被方便地组合起来;即,区域可以与一个或多个拼块相互关联。这仍然有助于并行化以及优化系统资源的使用。
该系统最好采用与设备无关的色彩模式,适合的有亮度/色度模式,比如CIE L*a*b*1976模式。这减少了图形对象中的冗余,改善了数据压缩性,并且改善了在不同的输出设备之间色彩输出的一致性。基于对形状处理器22的设备相关的控制输入44,可以采用设备相关的色彩校正。
图2示出的系统具有一输入端和一输出端,在该输入端接收源字节流,在该输出端输出来自该系统的最终输出帧24。然而,很清楚的是,该系统可以包括在其他中间阶段的中间输入和输出,比如为了取出数据内容、或者为了存储/转换在处理的过程中产生的数据。
所述系统8可以被以许多不同的方式结合到各种数据处理系统和设备中,还可以被结合进外围设备中。
在一通用数据处理系统(″主机系统″)中,本发明的系统可以与所述主机系统的操作系统和应用程序并列合并,或者可以被完全地或者部分地合并到该主机操作系统里。
举例来说,本发明的系统允许在具有LCD显示器的便携式数据处理装置上快速显示各种类型的数据文件,而无需要求使用浏览器或者应用程序。为了便携性,这类数据处理装置要求小型、低功率的处理器。一般,这要求使用被设计到ASIC(专用集成电路)中的高级RISC型核心处理器,以使所述电子器件封装是尽可能小和高度集成。这类设备还具有有限的随机存取存储器,并且一般没有非易失性的数据存储器(例如硬盘)。传统的操作系统模式,例如在标准台式计算系统(PC)采用的操作系统模式,要求大功率的中央处理器和大量存储空间,以便处理数字文件并产生有效输出,这些模式完全不适应于这类数据处理装置。具体来讲,常规的系统不提供以一集成方式对多文件格式处理。相形之下,本发明采用用于所有文件格式的公共处理与传递途径,从而提供一个高度集成的文件处理系统,该系统在功率消耗和系统资源的利用方面是非常有效的。
本发明的系统可以被集成在便携式数据处理装置的BIOS级,以便允许用比常规系统模式低得多的系统开销进行文件处理与输出。另一方式是,本发明可以被实现在仅仅高于传输协议栈的最低系统级。举例来说,所述系统可以被合并到一网络设备(卡)或者系统中,以提供网络业务的嵌入(in-line)处理(例如在TCP/IP系统中的分组级工作)。
在一具体设备中,本发明的系统被配置为用一预定组数据文件格式和特定的输出设备运行;例如所述设备的直观显示单元和/或至少一种打印机。
可采用本系统的便携式数据处理装置的例子包括″掌上型″计算机、便携式数字助理(PDA,包括片型PDA,其中主要用户界面包括图形显示,用户直接依靠指示笔设备并利用该图形显示来交互)、可访问因特网的移动电话及其他通讯装置等。
所述系统还可以被合并到低成本数据处理终端中,例如增强的电话和″薄的″网络客户终端(例如具有有限局部处理和存储资源的网络终端)、以及可交互/可访问因特网的有线电视系统使用的“机顶盒”。
当与数据处理系统的操作系统集成时,本发明的系统还可以为所述操作系统(OS)形成一种新颖的图形用户接口(GUI)的基础。由所述系统处理和显示的文件可以包括交互特征,比如菜单、按钮、图标等等,这些为操作系统的底层的功能提供用户接口。经过扩展,可以用系统″文件″来表达、处理和显示一个完全的OS/GUI。该OS/GUI可以包括具有多个″章节″的单一文件。
所述系统允许和/或有助于各种新颖的和/或增强的图形用户接口(GUI)特点,包括但不限于下列:
使用文件的缩略图(thumbnail)图像,用于导航和记录用户的活动(历史);例如当浏览网络内容时。
使用定点设备和/或触摸屏技术的文件交互功能和基于手势的命令;例如:
通过类似于动作的手势,允许进行文件交互,这些动作结合实际的文件或书使用,例如将指示器拖过页面以便翻转所述页面(″翻页″)、拖曳指示器以卷回页面的角,以便查看随后的页面的下面部分(″卷页″);通过从工具栏拖曳工具来提供工具选择,而通过拖曳工具到该显示的预定部分来解除选择;符号光标移动,以指示特定的OS命令,比如″标以记号″、″注销″和″循环″动作用于″确定″(OK)、″删除″和″选择″;基于传统的″审校人″注释的编辑命令;通过旋转或者在横向和纵向格式之间的切换,重新格式化文件视图;实用程序和工具,比如:
一浮动虚拟″放大镜″,它放大底层的文件区域,其中所放大的视窗是基于所述源文件的内部表示14,而不是基于所述文件的位图表示,它可以修改文件参数,比如背景和/或前景色彩;
一浮动虚拟的、半透明的键盘,用于使用定点设备/触摸屏进行文本输入;
一浮动、虚拟、半透明的标尺,它利用各种用户可选部件中的任意一种可重新调节。
替换的菜单或者“标记的页面”拖出/拉下功能。
实际惯量(inertia)/动量(momentum)的模拟,被应用于页面滚动/全景展开(panning)功能(例如当拖动页面的缩放显示以滚动该显示而并且被释放时,该移动的显示在释放之后逐渐减速。
这类GUI特征提供新的或者增强的功能性和/或改善了所述用户接口的主观质量。
本发明的系统还可以被合并到外围设备中,例如硬备份设备(打印机和绘图仪)、显示设备(例如数字投影仪)、联网设备、输入装置(摄像机、扫描仪等等)以及多功能外围设备(MFP)。
当结合到一个打印机中时,该系统允许所述打印机接收来自主机数据处理系统的原始数据文件,并且准确地再现该原始数据文件的内容,而无需由所述主机系统提供特定的应用程序或者驱动程序。这避免了为了驱动一特定类型的打印机而配置计算机系统。本系统直接地产生源文件的点映射图像,适用于由打印机输出(无论本系统是否被合并到打印机本身还是合并到主机系统中都可以)。类似的设想适用于其他硬备份设备,例如绘图仪。
当被合并到一显示设备例如一投影仪中时,本系统也允许该设备准确地显示原始数据文件的内容,而无需使用主机系统上的应用程序或者驱动程序,也无需主机系统和/或显示设备的特定配置。当这些类型的外围设备配备有本系统时,可以通过任何类型的数据通信网络,接收与输出来自任何源的数据文件。
根据以上所述,应该理解的是,本发明的系统可以是“硬布线的”;例如被实现在ROM中、和/或集成到专用集成电路ASIC或者其他单片系统里,或者可以被实现为固件(可编程只读存储器,例如可擦写可编程只读存储器),或者被实现为软件,被本地或者远端存贮而在一特定设备要求时被取出和执行。
不会脱离本发明的范围,可以结合改进和修改。