图像处理设备、图像处理控制方法、程序和存储介质的制作方法

文档序号:6655410阅读:139来源:国知局
专利名称:图像处理设备、图像处理控制方法、程序和存储介质的制作方法
技术领域
本发明涉及图像处理设备、图像处理控制方法和程序。具体地说,本发明涉及具有打印机功能等的图像处理设备、用于这种图像处理设备的图像处理控制方法、用来使计算机执行这种图像处理控制方法的程序和存储这种程序的存储介质。
背景技术
传统上,图像处理设备的软件主要在实时OS(操作系统)上构成为静态且固定的所谓固件。即使这样的固件内部含有多个模块,也是整个固件存储在图像处理设备的非易失性存储器内,处在静态地与单个装入模块链接的状态。因此,在引导OS时,固件从诸如硬盘之类的非易失性存储器装入RAM(随机存取存储器)并被执行,或者固件直接在诸如ROM(只读存储器)之类的非易失性存储器上执行。特别是,考虑经济性和安全性,通常将构成低价格图像处理设备或类似设备内的嵌入式系统的固件构成为使得部分模块不是动态装入或链接的。也就是说,之所以要如上那样构成固件是由于实现动态链接所必需的符号表的存储容量、解决符号地址的处理的开销等会降低设备的价格性能,而且存在所附加装入和链接的子模块会损害整个系统在链接子模块前业已充分评估和达到的质量和安全的风险。
因此,如本申请人在例如日本专利申请公报No.H11-282684、日本专利申请公报No.2003-256216等中所公开的,开发了一种图像处理设备,其中在嵌入式系统的固件的实时OS上再设置一软件操作环境。具体地说,所公开的图像处理设备在如上加入的软件操作环境内支持诸如动态装入、动态链接、动态存储器操作之类的软件动态特性。所加入的软件操作环境由解释器和一组API(应用编程接口)组和框架组组成,并提供一种供软件在其上运行的OS或所谓的计算平台。在这里,解释器顺序读取、解释和执行一系列由包含在预定指令集内的指令组成的指令串。如果认为该指令集相当于用于硬件的CPU的指令集,就可以特别将解释器称为虚拟机。这组API组和框架组为在软件操作环境上运行的软件提供了对由该软件操作环境层的下层内存在的实际实时OS提供的资源和从硬件资源抽象化出的各种资源组的访问。在这里,应注意的是,资源包括处理器的指令执行上下文以及包括存储器、文件系统和网络接口的各种I/O(输入/输出)等。特别是,在指令执行上下文中,软件操作环境可以独立地管理指令执行上下文而与由实际CPU和实时OS提供的多任务机制无关。类似地,在存储器内,软件操作环境可以提供独立的存储器管理。
在以上软件执行环境上运行的软件由解释器顺序读取、解释和执行,从而可以在上述处理期间监视指令串,除去对系统有不利影响的操作。此外,在从软件执行环境上的软件访问每个资源中,资源通过软件执行环境提供的API组和框架组被间接管理,从而可以在上述处理期间可以除去对系统有不利影响的操作。因此,在固件内设置包括解释器、API组和框架组的软件执行环境层的这种方法对在基本上要静态和固定地构成的低成本嵌入式系统的固件内部分引入软件的动态特性非常有效。
在上述方法中,能用JavaTM虚拟机作为解释器来实现软件执行环境层,由此可采用与JavaTM有关的API组和框架组。要提及的是,本申请人在2003年就将在图像处理设备的固件内作为含有JavaTM平台的多功能设备的MEAPTM(多功能嵌入式应用平台)引入市场。
另一方面,例如日本专利申请公报No.H11-053132(以下称为JP′132)公开了一种网络计算机内建打印机和包括这种打印机的计算机网络系统。具体地说,在JP′132中,需打印的数据文件和与数据文件相应的应用从计算机网络下载入内部配备有网络计算机的应用下载型打印机,所下载的应用由网络计算机启动,从而将数据文件提取出来变换为光栅图像,并将所获得的光栅图像实际打印。此外,JP′132公开了应用是JavaTM小程序的情况、应用从客户机与打印数据文件一起推送的情况和打印机从应用服务器等拉取应用的情况。
此外,日本专利申请公报N0.H11-306107(以下称为JP′107)公开了一种网络通信系统,在这种网络通信系统内多个外围设备、多个具有操作外围设备的软件的终端设备和具有与操作至少外围设备的软件有关的数据库的服务器设备被连接到传输信道上,并且在这些设备之间根据预定的通信协议执行网络通信。更具体地说,在JP′107中,外围设备包括从服务器设备请求/获得与操作外围设备的所有或部分软件或软件使用的模块相应的最新模块信息的客户机控制单元和将所获得的最新模块信息传送给终端设备的软件传送代理。此外,JP′132公开了可以提供JavaTM小程序和JavaTM应用作为由软件用来操作外围设备的客户端模块。
要提及的是,在PDL(页面描述语言)打印机中,可能请求诸如自定义、微小校正之类的个别处理。也就是说,客户的打印环境和在各自的环境内的请求是各种各样的。例如,在基本业务系统内,可能构成为在每个客户的环境内独立开发的业务应用直接产生打印数据。此外,即使在业务应用通过打印机驱动器产生打印数据的情况下,用户对保持一旦开始工作的整个系统的稳定性的需要或请求通常也是非常强烈的,从而可能不允许轻易地改变打印机驱动器。此外,某种类型的打印机具有解释和打印由其他公司开发的PDL数据的功能。在这种情况下,若干类型的系统可能被构成为使得打印通过由第三方开发的打印机驱动器、而不是专为该打印机开发的打印机驱动器和由PDL开发源开发的打印机驱动器执行,从而可以不允许改变打印机驱动器。也就是说,实际客户环境是各种各样的,因此必须独立处理这些环境中的每个环境。
在对实际打印环境的这样一些限制中,打印机厂家必须通过从打印机侧处理不同的客户请求来满足这些客户请求,而不是请求从客户环境侧处理。例如,在提供执行双面打印、装订等最终处理功能作为打印机新产品的新功能的情况下,如果打印作业通过与开发新产品一起开发的专用打印机驱动器输入,或者如果用户的业务应用被更新以产生包括新加入的命令串的PDL数据,那当然能充分使用上述新的功能。然而,实际要求的是仅通过从打印机侧处理就能够使用打印机的新功能,而不影响任何客户系统。
可替代的是,在多个供应厂商提供与某个PDL规范相应的打印机的情况下,始终可能出现在按照供应厂商的能力解释PDL上有差异的兼容性问题。因此,在出现这种类型的问题而且成为实际业务的阻碍的客户环境中,即使是个别的处理,打印机侧也必须处理和消除该问题。
而且,在极少的情况下,产品可能在带着由于打印机固件实现(或封装或安装)中的问题而对特定模式的PDL数据出现的隐错的情况下。在正常情况下,由于打印机是作为通过充分的质量评估的产品发货的,在许多客户打印环境内正常使用该打印机时并不出现上述特定模式的PDL数据,因此这隐错根本不成为问题。然而,隐错可能在例如上述业务系统等中可能显现出来。因此,在这种情况下,当然必须特别是在有关客户环境内尽快采取对抗这隐错的措施。
此外,专用应用产生的PDL数据由于打印机实现中的特性可能包括具有可优化的余地的数据模式。例如,在将包括冗余描述的PDL数据与包括最佳描述的PDL数据进行比较时,包括最佳描述的PDL数据的打印性能与包括冗余描述的PDL数据的打印性能相比较有显著的改善。因此,在使用以上专用应用的客户打印环境内,如果应用或打印机驱动器不能更新,希望通过打印机侧的处理来优化PDL数据。
为了满足以上对打印机侧的要求而不影响任何客户系统,有一种改变构成打印机的固件和将它释放用于个别处理的方法,而这种方法可能被实际采用。然而,在为个别处理改变固件的情况下,包括对整个设备的质量重新评估在内,开发时间就会拉长,开发费用也要增加。而且,在更新被嵌入已发到客户环境的设备内的固件的情况下,由于不断需要由现场工程师等进行高级维护,在及时满足客户要求上和在成本效益上都有问题。实际上,即使不改变打印机的整个固件,一部分客户要求也可以通过在解释所接收的PDL数据流前加入预处理、并在预处理中对PDL数据流本身执行必要的变换来满足。因此,需要提供一种更动态的机制,通过该机制,除了另一个固件外,可以以灵活的可扩展方式仅加入用于实现需在解释所接收的PDL数据流前执行的预处理的软件。
然而,即使准备用这种背景技术来满足以上要求,还是存在以下问题。
在诸如MEAPTM之类的在嵌入式系统的固件内含有诸如JavaTM平台之类的软件操作环境层的传统设备内,可以除了固件之外在软件操作环境上新开发新设备的嵌入式应用。因此,JavaTM应用可以通过API访问设备的打印功能。然而,由于JavaTM平台处在固件内的嵌入式应用层,因此作为同一层内的本机嵌入式应用实现的打印数据接收功能和打印服务器功能就不能转给JavaTM应用。也就是说,必须在JavaTM应用侧再次实现实现了用于通过网络接收打印数据的各种打印服务协议的打印服务器功能,从而就开发装入、评估装入、在执行打印服务器功能的情况下的存储器容量等而言它是低效的。
另一方面,在其他在嵌入式系统的固件内不含有软件操作环境的传统设备内,整个嵌入式系统构成为能采用动态链接和插件。也就是说,整个系统具有动态结构。在要求具有动态特性的部分只是以灵活的可扩展方式加入需在解释所接收的PDL数据流前执行的预处理的机构的前提下,如上所述的传统设备的这些方法不适合低成本的小型系统,因为按照将整个系统构成为动态软件的开销成本,这将使成本增大而质量难以保证。

发明内容
本发明考虑到如上所述的这些问题而作出,因此它的一个目的是提供一种在对PDL打印机的定制中生产率得到改善的图像处理设备、一种用于这种图像处理设备的图像处理控制方法和一种用来使计算机执行这种图像处理控制方法的程序。
本发明的另一个目的是提供一种图像处理设备,这种图像处理设备包括打印请求数据流接收单元,适于从外部接收外打印请求数据流;打印作业控制器,适于控制解释打印请求数据流和执行图像形成的打印作业;过滤器单元,适于执行对打印请求数据流的数据处理,从而生成经处理的打印请求数据流;第一接口,适于将打印请求数据流接收单元所接收的打印请求数据流发送给过滤器单元;以及第二接口,适于将过滤器单元所生成的经处理的打印请求数据流发送给打印作业控制器。
在这里,例如,优选的是所述图像处理设备具有作为根据由处理器处理的本机指令构成的固件的本机环境,所述本机环境包括动态装入、链接和执行根据与所述本机指令独立地定义的指令集构成的程序的解释器环境,以及所述打印请求数据流接收单元配置在本机环境上,而所述过滤器单元配置在解释器环境上。
在这里,例如,优选的是所述图像处理设备还包括第三接口单元,其适于将打印请求数据流单元所接收的打印请求数据流发送给作业控制器。
在这里,例如,优选的是所述过滤器单元进一步包括模式匹配单元,适于检测打印请求数据流内与预定数据模式一致的部分,以及替换单元,适于生成与模式匹配单元检测到的打印请求数据流内的一致部分相应的预定部分数据流,用所生成的预定部分数据流代替该一致部分。
在这里,例如,优选的是所述图像处理设备还包括用户界面构成单元,适于在解释器环境内构成通过其用户对在解释器环境上操作的程序进行操作的用户界面,以及在所述过滤器单元内对打印请求数据流进行数据处理的处理参数由用户用用户界面构成单元所构成的用户界面进行操作。
在这里,例如,优选的是所述图像处理设备还包括线程单元,线程单元适于在解释器环境内并行执行在解释器环境上操作的程序的指令的读取和解释,以及所述过滤器单元在所述线程单元的独立执行上下文下自主地执行对打印请求数据流的数据处理。
在这里,例如,优选的是所述解释器环境基于JavaTM平台。
此外,本发明的另一个目的是提供一种图像处理设备,这种图像处理设备包括打印请求数据流接收单元,适于从外部接收外打印请求数据流;打印作业控制器,适于控制解释打印请求数据流和执行图像形成的打印作业;过滤器单元,适于执行对打印请求数据流的数据处理,从而生成经处理的打印请求数据流;第一接口单元,适于将打印请求数据流接收单元所接收的打印请求数据流发送给过滤器单元;第二接口单元,适于将过滤器单元所生成的经处理的打印请求数据流发送给打印作业控制器;以及过滤器管理单元,适于管理多个过滤器单元,控制成能将过滤器单元配置在打印请求数据流的数据通路内,以及使所配置的过滤器单元顺序处理打印请求数据流。
在这里,例如,优选的是所述图像处理设备还包括过滤器配置操作接受单元,过滤器配置操作接受单元适于接受从过滤器管理单元所管理的多个过滤器单元中有选择地将所希望的过滤器单元配置在打印请求数据流的数据通路内的用户操作。
在这里,例如,优选的是所述图像处理设备还包括第三接口单元,第三接口单元适于在过滤器管理单元不将任何过滤器单元配置在打印请求数据流的数据通路内的情况下直接将打印请求数据流接收单元所接收的打印请求数据流发送给打印作业控制器。
在这里,例如,优选的是所述图像处理设备还包括过滤器引入单元,适于将过滤器单元从外部引入图像处理设备,以便将所引入的过滤器单元置于过滤器管理单元的管理之下。
此外,本发明的另一个目的是提供一种用于图像处理设备的控制方法,图像处理设备包括适于从外部接收外打印请求数据流的打印请求数据流接收单元、适于控制解释打印请求数据流和执行图像形成的打印作业的打印作业控制器和适于执行对打印请求数据流的数据处理从而生成经处理的打印请求数据流的过滤器单元,所述方法包括将打印请求数据流接收单元所接收的打印请求数据流发送给过滤器单元的第一接口步骤;以及将过滤器单元所生成的经处理的打印请求数据流发送给打印作业控制器的第二接口步骤。
在这里,例如,优选的是所述控制方法还包括将打印请求数据流接收单元所接收的打印请求数据流发送给作业控制器的第三接口步骤。
此外,本发明的另一个目的是提供一种用于图像处理设备的控制方法,图像处理设备包括适于从外部接收外打印请求数据流的打印请求数据流接收单元、适于控制解释打印请求数据流和执行图像形成的打印作业的打印作业控制器和适于执行对打印请求数据流的数据处理从而生成经处理的打印请求数据流的过滤器单元,所述方法包括将打印请求数据流接收单元所接收的打印请求数据流发送给过滤器单元的第一接口步骤;将过滤器单元所生成的经处理的打印请求数据流发送给打印作业控制器的第二接口步骤;以及管理多个过滤器单元、控制成能将过滤器单元配置在打印请求数据流的数据通路内和使所配置的过滤器单元顺序处理打印请求数据流的过滤器管理步骤。
在这里,例如,优选的是所述控制方法还包括接收从在过滤器管理步骤所管理的多个过滤器单元中有选择地将所希望的过滤器单元配置在打印请求数据流的数据通路内的用户操作的过滤器配置操作接受步骤。
在这里,例如,优选的是所述控制方法还包括在过滤器管理步骤适合不将任何过滤器单元配置在打印请求数据流的数据通路内的情况下直接将打印请求数据流接收单元所接收的打印请求数据流发送给打印作业控制器的第三接口步骤。
此外,还提供了一种使计算机执行上述控制方法的计算机程序和一种存储使计算机执行上述控制方法的计算机程序的计算机可读存储介质。
按照本发明,通过将在解释打印机所接收的PDL数据流前执行预处理的滤波器部分实现为灵活的可扩展软件,从而将所实现的滤波器部分与对稳定性有要求的打印机固件的其他部分的实现分开,可以改善PDL打印机定制的生产率。
从以下结合附图对示范性的实施例的说明中可以清楚地看到本发明的上述这些及其他一些目的。


图1为示出根据本发明的第一实施例的图像处理设备的硬件组成的方框图;图2为示出使图1所示图像处理设备工作的软件(模块)的组成的层示意图;图3为示出图2所示的图像处理设备内的软件模块之间的数据流的示意图;图4为示出在解释器环境上构成的过滤器框架的类的示意图;图5A和5B为示出由在解释器环境上构成的过滤器框架管理的对象的实例的示意图;图6A和6B为示出用来操作过滤器框架的用户界面的例子的示意图;图7为示出过滤器处理的主要流程的流程图;图8为说明由第一实施例中的兼容过滤器执行的处理的示意图;图9为说明由第一实施例中的校正过滤器执行的处理的示意图;图10为说明由第二实施例中的过滤器执行的处理的示意图;图11为说明由第三实施例中的过滤器执行的处理的示意图;以及图12为示出用来操作功能扩展过滤器的用户界面的例子的示意图。
具体实施例方式
下面,将结合

实现本发明的最佳方式。
(第一实施例)图1为示出根据本发明的第一实施例的图像处理设备的硬件组成的方框图。
在图1中,打印机1000其中包括打印机控制器1600。
在打印机控制器1600内,网络打印服务器的CPU(中央处理单元)1根据存储在可重写闪速ROM(只读存储器)3内的控制程序完全控制从多个外部设备发送的打印数据和诸如打印机控制指令之类的各种数据传输/接收请求。这里,多个外部设备为连接到LAN(局域网)2000上的主计算机等(未示出),LAN 2000上的通信由连接到系统总线4上的LANC(局域网控制器)5控制。上述各种数据传输/接收请求由外部设备按照预定的网络通信协议发送。
CPU 1根据存储在ROM 9内的控制程序等、存储在通过DKC(盘控制器)15连接的外部储存器10内的控制程序和资源数据等控制对连接到系统总线4上的各个设备的全部访问。此外,CPU 1根据所接收的打印数据使光栅控制器12产生输出图像信息,还使标记引擎16输出图像信号。
RAM 2用作CPU 1的主存储器和诸如工作区之类的临时存储区。
LED(发光二极管)6起着显示打印机控制器1600的操作状态的显示单元的作用。例如,LED 6通过闪烁模式或发光颜色指示LANC5与LAN 2000之间的电连接状态(LINK)和诸如网络通信模式(10Base模式或100Base模式;全双工模式或半双工模式)之类的各种操作状态。
操作面板(操作单元)18包括按钮、液晶屏、叠加在液晶屏上的触摸屏和诸如LED之类的显示部分。这里,按钮用来设置打印机1000的操作模式等,执行诸如取消打印数据之类的各种操作,而液晶屏用来显示打印机1000的操作状态。
要提及的是,标记引擎16用来通过使用已知的打印技术执行打印。更具体地说,标记引擎16通过电子照相方法(激光束方法)、喷墨方法、染料升华方法(热转印方法)等在转印纸上形成图像。
图2为示出使图1所示图像处理设备工作的软件(模块)的组成的层示意图。
在这里,图2示出了处在较高层的模块依赖于处在较低层的模块,而在用线连接的模块之间有着强烈的依赖关系。
标号201表示本机代码(native code)部分,其为构成图像处理设备的固件的标准部分,包括由硬件CPU 1直接执行的本机代码。此外,本机代码部分201在开发图像处理设备时作为固件静态地链接到单个装入模块上,在实际制造图像处理设备时存储在图像处理设备的非易失性存储器内。在图像处理设备开始工作时固件从非易失性存储器取入RAM 2,在图像处理设备工作时,CPU 1从RAM 2顺序读取代码并对代码予以解释。然而,CPU 1不执行动态链接。或者,也可以是将固件存储在CPU能直接读取和访问的诸如ROM之类的非易失性存储器内,使CPU从ROM顺序读取代码并对代码予以解释,而不将固件取入RAM。
标号202表示打印应用,它是嵌入式应用,为图像处理设备提供作为打印机的核心功能。打印应用202响应来自客户机的请求提供打印服务,执行客户机通过控制API(应用编程接口)204请求的打印作业。
标号203表示打印请求接收模块,它接收由客户机输入的打印作业。打印请求接收模块203通过RTOS(实时操作系统)209依赖于协议栈210。来自客户机的打印请求物理地通过诸如以太网(EthernetTM)之类的网络和诸如USB(通用串行总线)、IEEE 1394(电气和电子工程师协会1394)之类的各种接口发送给打印机,并且规定了按照各自连接模式执行打印请求的应用协议。此外,打印请求接收模块203具有用于打印的应用协议的服务器功能。相对于例如只有一种网络协议,用于打印服务的应用协议包括诸如LPR(行式打印机守护协议)、SMB(服务器消息块)、PAP(口令验证协议)、NetWare之类的各种规范,从而为了实现这些规范,需要巨大的开发费用和质量评估费用。此外,打印请求接收模块203支持多种协议,包括用于这些接口中每个接口的各种打印业务协议。
打印请求接收模块203可以在图像处理设备的存储装置内建立打印作业队列,也就是说,打印请求接收模块203可以具有假脱机功能。在这种情况下,打印请求接收模块203接收到来自客户机的打印作业请求并将其存储在队列内,从而释放客户机。要提及的是,存储在队列内的打印作业在实际可以执行打印作业时按照调度算法顺序处理。
标号204表示控制API,它是访问图像处理设备所提供的设备服务的应用编程接口。要提及的是,构成控制API 204的主接口之一是执行和控制打印作业的接口。
标号205表示作业控制模块,它控制图像处理设备所提供的各种图像处理作业。在这里,主要的图像处理作业是打印作业。作业控制模块205解释通过控制API 204请求执行的打印作业的数据流,将打印作业的描述与需打印的打印数据的描述分开。在这里,打印作业的描述包括指定与解释和提取打印数据有关的操作参数、指定用来打印的转印纸的进给、指定诸如双面打印之类的打印模式、指定排纸托盘、指定分类(比较)、指定诸如钉书钉装订、书本式装订之类的最后处理等等的环境数据。另一方面,打印数据由PDL描述,每一页的描画主要在其中描述。要提及的是,作业控制模块205控制翻译器206、呈现器207和ME(标记引擎)控制模块208。此外,作业控制模块205执行对打印数据流的调度,使得处理按照翻译器206、呈现器207和ME控制模块208的顺序进行。
标号206表示翻译器,它解释用PDL描述的打印数据,将它变换成用适合呈现处理的打印中间语言的描述的打印数据。在这里,用适合呈现处理的打印中间语言对打印数据的描述称为显示表。翻译器206具有对于各种PDL规范中的每一种规范不同的固有实现,从而任何翻译器将PDL变换成对于呈现器来说是固有的显示表。
标号207表示呈现器,它将显示表提取成光栅图像。在这里,呈现器207通过RTOS 209依赖于呈现器驱动器212。
标号208表示ME控制模块,它控制在图像处理设备内执行在转印纸上形成图像的标记引擎16。在这里,ME控制模块208通过RTOS209依赖于ME驱动器213。
标号209表示RTOS,它是提供图像处理设备的本机代码固件的执行环境的平台。对于在其上操作的软件来说,RTOS 209提供用于软件构成的基本服务和抽象化图像处理设备的硬件资源的服务,并且为能从软件方便地使用的接口提供抽象化图像处理设备的硬件的设备驱动器结构的框架。要提及的是,RTOS 209所提供的功能包括抽象化CPU 1的指令执行上下文的任务管理、通过同时对多个执行上下文进行虚拟操作实现并行处理的多任务机制、在任务之间交换和同步消息的任务间通信(消息队列、信号量等)、各种存储器管理、定时器、时钟、中断管理、DMA(直接存储器访问)控制,等等。
标号210表示协议栈,它嵌入RTOS 209的框架,实现等于或低于由较低的外部接口驱动器211控制的外部接口上的传输层的协议。例如,在网络接口的情况下,实现诸如TCP/IP(传输控制协议/网际协议)、UDP/IP(用户数据报协议/网际协议)之类的协议,通过RTOS209为嵌入式应用层提供诸如Berkeley套接字之类的应用编程的接口。此外,例如,在外部接口为USB时,实现诸如IEEE标准1284.4之类的协议。
标号211表示外部接口驱动器,它驱动提供与网络接口和诸如IEEE 1394、USB、RS 232C(推荐标准232版本C)、Centronics接口之类的各种接口的连接的硬件。例如,在网络的情况下,外部接口驱动器211驱动连接到诸如以太网(EthernetTM)之类的网络上的网络接口硬件,从而实现物理分层结构协议。
标号212表示呈现器驱动器,它驱动呈现器207。呈现器207为将显示表提取成光栅图像的硬件,但是可以用软件实现。
标号213表示ME驱动器,它驱动在转印纸上执行图像形成的标记引擎16。
标号214表示操作面板驱动器,它处理给图像处理设备的操作面板18的显示单元的输出,以及处理来自键和触摸屏的输入事件。
标号215表示解释器环境,它是基于各种解释器环境中的JavaTM平台的运行时环境的软件平台。此外,在图像处理设备内固有的API组和框架组被加入解释器环境215。在这里,这个软件平台为在其上操作的、用解释语言描述的程序提供动态软件操作环境。要提及的是,解释器环境215包括用本机代码实现的部分(包括在本机代码部分201内)和作为用解释语言描述的程序实现的部分(包含在解释器代码部分220内)。
标号216表示解释器,它从用预定的指令集描述的指令串中顺序读取、解释和执行指令。在本实施例中,解释器216用JavaTM虚拟机形成,指令集用JavaTM字节代码表示。
标号217表示标准API库和框架组。在组217内,由RTOS 209提供的抽象化的各种计算资源进一步用解释器环境215内固有的模型抽象化,从而提供在其上操作的程序的执行环境。此外,组217由构成JavaTM平台的标准类库组和OSGi(开放式服务网关协议)框架实现。
上述JavaTM平台提供了与RTOS 209相应的抽象化的功能,例如包括抽象化虚拟机的指令执行上下文的线程管理,通过同时对多个执行上下文进行虚拟操作实现并行处理的多线程机制,在这些线程之间交换和同步消息的线程间通信,高度抽象的各种存储器管理(纠错等),定时器,时钟,例外管理,对文件系统和网络的访问,与外部输入/输出设备的接口,等等。
此外,OSGi框架对单个JavaTM虚拟机上的多个JavaTM应用(服务)进行操作、管理这些应用的生存期和提供应用间通信功能。要提及的是,多个系统服务业已预装在OSGi框架上。在这里,所准备的系统服务包括在解释器环境上加入、更新和删除新的应用的业务管理服务,在操作面板18上显示按照应用小程序接口实现的JavaTM类、使得用户可以对在操作面板18上显示的类进行操作的应用小程序查看服务,对按照服务小程序接口实现的、作为能从客户机的浏览器操作的web应用的JavaTM类进行操作的HTTP(超文本传输协议)服务,等等。特别是,按照应用小程序接口实现的JavaTM应用可以间接地通过AWT(抽象开窗工具包)的API等与操作面板驱动器214接口。
标号218表示作业控制库,它依赖于控制API 204。作业控制库218为在解释器环境215上操作的程序提供允许执行和控制图像处理作业的应用编程接口。
标号219表示过滤器框架,它在执行对打印数据流的打印作业请求的情况下通过与打印应用202通信来允许从在解释器环境215上实现的过滤器程序插入。
标号220表示解释器代码部分,它实现为用能由解释器216解释的解释语言描述的软件。此外,解释器代码部分220包括构成解释器环境215的API库组和框架组的一部分和在解释器环境215上运行的程序。要提及的是,对于跨本机代码部分201和解释器代码部分220的软件来说,必须按照由解释器环境215和编程模型定义的固有框架对在各空间之间接口的模块执行编码。在本实施例中,这些空间的边界的编程按照JNI(JavaTM本机接口)执行。
标号221表示过滤器,它是在解释器环境215上实现的程序。由于过滤器221按照过滤器框架219的框架实现,能对需由打印应用202处理的打印数据流执行处理。标号222表示各种应用和Web应用。
图3为示出图2所示的图像处理设备内的软件模块之间的数据流的示意图。
在打印请求接收模块203不对从客户机接收到的打印作业数据流执行过滤器处理的情况下,打印作业数据流301从打印请求接收模块203流至作业控制模块205。在这里,例如打印作业数据流301用由RTOS 209提供的诸如消息队列之类的任务间通信功能发送。
作业控制模块205顺序解释打印作业数据流301,并进一步解释打印作业数据流301内的作业描述。然后,按照解释,作业控制模块205通过控制通路302控制翻译器206、呈现器207和ME控制模块208。
另一方面,打印作业数据流301内的打印数据是通常用PDL描述的命令序列303,这个命令序列303流至翻译器206。然后,翻译器206对打印数据进行解释,产生显示表304。所产生的显示表304然后流至呈现器207。接着,呈现器207提取显示表304,产生光栅图像数据305。在这里,光栅图像数据305可以以页为单位产生,也可以以通过将页在副扫描方向上分成多个区域得到的带为单位产生。在任何情况下,所产生的光栅图像数据305流至ME控制模块208。ME控制模块208将光栅图像数据305传送给标记引擎16,标记引擎16由此在转印纸上执行图像形成。
上述处理都由在本机代码部分201内实现的软件实现。
另一方面,在要对打印作业数据流执行过滤器处理的情况下,打印请求接收模块203从客户机接收到的打印作业数据流306流至过滤器框架219。在这里,例如打印作业数据流306通过由RTOS 209提供的诸如消息队列之类的任务间通信功能发送。
过滤器框架219的运行时模块管理在解释器环境215上实现的过滤器程序组。过滤器框架219将所接收的打印作业数据流306作为打印作业数据流307流至过滤器221。在这里,例如打印作业数据流307通过由解释器环境215提供的线程间通信功能发送。要提及的是,在配置或设置有多个过滤器时,打印作业数据流在各过滤器之间流动,而这些打印作业数据流通过由解释器环境215提供的线程间通信功能发送。
过滤器221对所接收的打印作业数据流307执行预定的处理,然后输出数据流308。过滤器221输出的数据流308流至过滤器框架219。例如,数据流308用解释器环境215提供的线程间通信功能发送。
过滤器框架219将从过滤器221接收到的数据流308作为数据流309流至作业控制模块205。在这里,例如数据流309用RTOS 209提供的诸如消息队列之类的任务间通信功能发送。此后,数据就象不使用过滤器221的情况那样流动。
标号310表示从过滤器框架219延伸到打印请求接收模块203的控制通路。利用控制通路310,从过滤器框架219对将打印作业数据流301从打印请求接收模块203发送给作业控制模块205进行控制。也就是说,在过滤器框架219所管理的过滤器221配置成处在有效状态时,打印作业数据流306有效,从而用过滤器221对打印作业数据流306执行预处理。另一方面,在过滤器框架219所管理的过滤器221没有配置成处在有效状态时,打印作业数据流301有效,从而使从客户机接收到的打印作业数据流直接流至作业控制模块205。在这种情况下,由于能省去过滤器框架219所涉及的开销,因此就能使打印机发挥处在根本不应用过滤器221所作的任何定制的标准状态的数据处理性能。
图4为示出在解释器环境215上构成的过滤器框架219的类的示意图。
在图4中,FilterManager(过滤器管理器)类(class)401为实现过滤器框架219的运行时环境的对象(object)的类。FilterManager类401具有作为成分(composition)的一个Connector(连接器)类405的对象。此外,FilterManager类401还具有包括对多个(n个)Filter(过滤器)抽象类402的对象的引用和对多个(n-1个)Pipe(管道)类406的对象的引用的有序表。此外,FilterManager类401还包括管理在过滤器框架219的运行时安装的多个Filter抽象类402中的具体类的installed Filter(安装的过滤器)属性。
Filter抽象类402是将各种滤波器类抽象化的抽象类,并Filter抽象类402具有指示过滤器名称的名称属性等。此外,Filter抽象402具有作为输入属性的对继承InputStream(输入流)抽象类403的类的对象的引用和作为输出属性的对继承OutputStream(输出流)抽象类404的类的对象的引用。为Filter抽象类402中的具体类实现Runnable(可运行的)接口,Filter抽象类402具有运行方法。在FilterManager对象产生所管理的各种过滤器类的实例并且被配置用于数据流的过滤器处理时,FilterManager对象产生与所配置的各过滤器对象对应的线程,在并行操作的线程的执行上下文内执行过滤器对象的运行方法。也就是说,将过滤器对象发送给构造器的参数,产生“java.lang.Thread”对象,然后启动。由此,各过滤器对象自主地进行操作。
InputStream抽象类403为数据流的输入源的抽象类,具有能在每次调用时顺序读取数据的读取方法。
OutputStream抽象类404为数据流的输出目的地的抽象类,具有能在每次调用时顺序写入数据的写入方法。
Connector类405为表示在解释器环境215的对象与本机代码之间交换数据流的接触点的对象的类。而且,Connector类405具有作为继承InputStream抽象类403的具体类的ConnectorInputStream(连接器输入流)类的对象来作为成分,可以用它的读取方法顺序读取从本机代码的打印请求接收模块203流出的数据流306。此外,Connector类405具有继承OutputStream抽象类404的ConnectorOutputStream(连接器输出流)类的对象来作为成分,用它的写入方法顺序写入的数据流作为数据流309流至本机代码的作业控制模块205。
Pipe类406为在对数据流执行多个过滤处理时用来链接Filter抽象类402的一系列对象的对象的类。Pipe类406具有继承OutputStream抽象类404的PipedOutputStream(管道输出流)类的对象和继承InputStream抽象类403的PipedInputStream(管道输入流)类的对象来作为成分。在这里,Pipe对象的PipedOutputStream对象和PipedInputStream对象相互连接,从而实现线程间通信。也就是说,对于一个Pipe对象来说,由一个Filter对象通过写入方法顺序写入该Pipe对象的PipedOutputStream对象的数据流能由另一个Filter对象通过读取方法从该Pipe对象的PipedInputStream对象顺序读出。
图5A和5B为示出由在解释器环境215上构成的过滤器框架219管理的对象的实例的示意图。
具体地说,图5A示出了处在一个过滤器有效的状态时由过滤器框架219的运行时管理的对象之间的关系。
在图5A中,Connector对象501是Connector类405的对象。
Filter对象502是通过对Filter抽象类402抽象化所得到的抽象类的对象。要提及的是,Connector对象501的ConnectorInputStream对象的引用保持在Filter对象502的输入属性内,而Connector对象501的ConnectorOutputStream对象的属性保持在Filter对象502的输出属性内。Filter对象502对从由信号“input(输入)”指示的ConnectorInputStream对象读出的数据流执行过滤器处理,将经过滤器处理的数据流写入由信号“output(输出)”指示的ConnectorOutputStream对象。
以如上所说明的方式,实现对象之间的打印数据流的发送(图5A中的粗箭头)。
此外,图5B示出了处在两个滤波器有效的状态时由过滤器框架219的运行时管理的对象之间的关系。
过滤器1对象503是通过对过滤器抽象类402抽象化所得到的抽象类的对象。要提及的是,Connector对象501的ConnectorInputStream对象的引用保持在过滤器1对象503的输入属性内,而过滤器1对象503对从由信号“input”指示的ConnectorInputStream对象读出的数据流执行过滤器处理。另一方面,Pipe对象504的PipedOutputStream对象的引用保持在过滤器1对象503的输出属性内,而过滤器1对象503将经过滤器处理的数据流写入由信号“output”指示的PipedOutputStream对象。
Pipe对象504是Pipe类406的对象,将PipedOutputStream对象和PipedInputStream对象保持在这些对象被连接的状态。因此,通过调用Pipe对象504的PipedOutputStream对象的写入方法发送的数据流能通过调用Pipe对象504的PipedInputStream对象的读取方法作为数据流读出。
过滤器2对象505是通过对Filter抽象类402抽象化所得到的抽象类的对象。要提及的是,Pipe对象504的PipedInputStream的引用保持在过滤器2对象505的输入属性内,而过滤器2对象505对从由信号“input”指示的Pipe对象504读出的数据流执行过滤器处理。同时,Connector对象501的ConnectorOutputStream的引用保持在过滤器2对象505的输出属性内,过滤器2对象505将经过滤器处理的数据流写入由信号“output”指示的Connector对象501的ConnectorOutputStream内。
以如上所说明的方式,实现对象之间的打印数据流的发送(图5B中的粗箭头)。类似地,随着将Pipe对象夹在有关过滤器对象之间,能配置更多个过滤器对象来对数据流进行处理。
图6A和6B为示出用来操作过滤器框架219的用户界面的例子的示意图。
用来操作过滤器框架219的用户界面通过标准库和包含在框架217内的HTTP服务实现为Web应用(服务小程序),并且从客户机端的Web浏览器操作。要提及的是,也能构成实现为应用小程序服务并且用图像处理设备的操作面板操作的用户界面。
图6A示出了用来为图像处理设备的过滤器框架219另外安装新的过滤器的用户界面。
在图6A中,标号601表示过滤器安装屏幕的例子。
标号602表示文件名输入栏。具体地说,在文件名输入栏602内,用户输入预先存储在客户计算机的文件系统内的、要安装的过滤器类的类文件的文件路径。
标号603表示引用按钮。在用户单击引用按钮603时,就打开了由客户计算机的Web浏览器提供的文件选择对话框。因此,用户能在客户计算机的文件系统内浏览,从而选择要安装的过滤器类的类文件。然后,用户通过文件选择对话框选择的文件的文件路径被自动输入文件名输入栏602。
标号604表示安装按钮。在用户单击安装按钮604时,输入文件名输入栏602的文件路径的类文件就被发送给通过客户计算机的Web浏览器安装新的过滤器的Web应用。接收到类文件的Web应用将所接收的类文件存储在图像处理设备的非易失性存储器(闪速ROM 3或外部存储器10)内。此外,类文件动态地装入解释器环境215,生成对象实例,再将所生成的过滤器对象配置在由过滤器框架219的运行时管理的有效过滤器串的列表的最下游。在这里,如果在过滤器串内已经存在有效的过滤器对象,也生成链接新过滤器对象的新的Pipe对象。
在上述用户界面已实现为Web应用的情况下,将过滤器实现类上载给图像处理设备的机构通过使用根据由RFC(请求注解文件)确定的基于HTML(超文本置标语言)形式的文件上载规范执行该实现。因此,在这种情况下,文件名输入栏602和引用按钮603由客户计算机的Web浏览器显示,而安装按钮604对应于“submit(提交)”形式。
此外,在上述用户界面实现为应用小程序服务的情况下,在图像处理设备的操作面板18的显示部分上显示过滤器安装屏幕601。在这里,作为将在文件名输入栏602内指定的文件,在图像处理设备安装有可移动存储介质时,可应用在可移动存储介质内的文件路径。否则,可以通过使用URL(统一资源定位符)等指定通过网络用诸如HTTP、FTP(文件传输协议)之类的文件传输协议从图像处理设备可读和可访问的共享文件。
图6B示出了用来配置安装在图像处理设备的过滤器框架219内的过滤器的用户界面。
在图6B中,标号605表示过滤器配置屏幕的例子。
标号606表示列有在过滤器框架的运行时安装的过滤器组的表。在表606内,各行分别与所安装的过滤器一一对应,“选择”列包括一些复选框,与所选的行相应的过滤器就选为稍后要说明的操作的目标。此外,在表606的“顺序”列内,在过滤器处在未激活状态时,显示消息“非活动”。另一方面,在过滤器处在激活状态时,从上到下按递升次序显示序号(即,数据流处理顺序)。此外,在表606的“名称”列内显示对过滤器对象的名称属性所描述的各个过滤器的名称。
标号607至611表示各个用来指示对所选择的过滤器的操作的按钮。具体地说,这些按钮用来指示对在表606的“选择”列内所选中的复选框所在行内所描述的过滤器的操作。
即,在用户单击“详细信息显示”按钮607时,就显示与所选择的过滤器有关的详细信息。在这里,详细信息包括所选择的过滤器的名称和版本、它的说明、类名、安装源的类文件名(文件路径或URL)、安装日期和时间等。
在用户单击“向上”按钮608时,所选择的过滤器在过滤器串内的顺序在数据流处理中向上游方向移一步。
在用户单击“向下”按钮609时,所选择的过滤器在过滤器串内的顺序在数据流处理中向下游方向移一步。
在用户单击“活动/非活动”切换按钮610时,将所选择的过滤器的激活状态改变为未激活状态,或将所选择的过滤器的未激活状态改变为激活状态。未激活过滤器对象被删除。然而,过滤器类在安装时仍保留,而所保留的过滤器类由过滤器框架219的运行时管理。
此外,在用户单击“卸载”按钮611时,就从图像处理设备的解释器环境215删除所选择的过滤器的类文件。
图7为示出过滤器处理的主要过程的流程图。
在这里,应注意的是图7所示的过程实现为具体过滤器类的运行方法。也就是说,过滤器框架219生成有效过滤器类的对象、建立它的输入流和输出流,然后分配线程(线程对象)来执行这个对象的运行方法。因此,图7所示的流程作为并行处理在过滤器框架219所管理的各个过滤器对象内自主运行。
首先,在步骤S701,执行必需的预处理。在这里,应注意的是,预处理包括对需由过滤器内部使用的属性的初始化、对需在模式匹配中使用的模式描述的预处理、为了加入能更方便地使用输入流和输出流(例如,能预先查看输入流,扩展缓冲以有效使用系统资源)而由合格类(java.io.FilterInputStream或java.io.FilterOutputStream的具体类)对流进行的卷绕处理,等等。
在步骤S702,从设置在输入属性内的输入流读出模式匹配处理所需量的数据。
在步骤S703,执行模式匹配,以便从输入数据流中发现出现需由过滤器操作的数据模式的出现。在这里,应注意的是,过滤器应操作的数据模式可以是固定数据串本身,也可以由诸如正则表示(regular expression)之类的形式语言描述。此外,还应注意的是,在数据流内发现符合模式描述的数据的出现的各种实现都是已知的(特别,有名的有“grep”、“sed”、“AWK”、“Perl”等)。
有效执行模式匹配的算法得到充分研究。也就是说,对于固定模式描述来说,已知的一种方法是将模式描述与部分数据流的各自散列函数相互比较,在所比较的散列函数的散列值相互一致时判定相关模式完全一致。此外,所知道的还有Knuth-Morris-Pratt方法、Boyer-Moore方法等。此外,对于利用正则表示等的模式描述来说,已知的有有限自动机等以形式语言理论为背景的各种算法。在较为近来的JavaTM平台中,通常提供了处理正则表示的类库(Java.util.regex)。例如,在状态按照数据流的上游的模式改变、对下游的模式的解释必需按照改变了的状态改变时,就需要用正则表示等很难描述的复杂的模式匹配。在这种情况下,可以将评估该模式的特性本身的算法写成JavaTM程序。这样做,即使如何复杂的模式匹配,也能很好实现。
在步骤S704,判断在数据流内是否发现与模式描述一致的数据。在判定在数据流内发现有关数据时,流程进至步骤S705。另一方面,在判定在数据流内没有发现有关数据时,流程进至步骤S706。
然后,在步骤S705,对数据流内与模式描述一致的那部分数据串执行与有关过滤器的对象相应的操作,替换所获取的(与模式描述一致的)数据。
接着,在步骤S706,将经处理的部分数据串写入输出流。更具体地说,将没有出现所监视的模式的数据串或者包括所监视的模式并在步骤S705得到处理的数据串写入输出流。
然后,在步骤S707判断输入流是否结束。在判定输入流结束时,处理终止。另一方面,在判定输入流没有结束时,流程返回步骤S702,重复以上过程。
图8为说明由本实施例中的兼容过滤器执行的处理的示意图。
在图8中,标号801表示兼容过滤器类对象(兼容过滤器),它读取输入流、执行解决在数据流内出现的兼容性问题的处理,再将经处理的数据流写入输出流。在这里,作为兼容性问题,取基于在实现了作为典型的PDL之一的Adobe的Postscript规范的各供应厂商的打印机之间每个供应厂商的解释中的差异的问题,对它的解决方案的例子进行说明。
按照某个供应厂商的打印机,在PostScript的“setpagedevice”中,在“/DeferredMediaSelection”为真时,在面板上显示对自定义打印纸的打印纸请求。另一方面,在“/DeferredMediaSelection”为假时,在指定的纸张大小的±5的范围内搜索定型纸。如果没有定型纸,则执行实现,以便遵从PostScript的Policy(策略)。此外,按照另一个供应厂商的打印机,在“/DeferredMediaSelection”为真时,用所指定的尺寸本身(没有范围)搜索定型纸。如果没有定型纸,就将纸处理为自定义纸。另一方面,在“/DeferredMediaSelection”为假时,在指定的纸张大小的±5的范围内搜索定型纸。如果没有定型纸,则执行实现,以便遵从PostScript的Policy。
在这里,假设由又一个供应厂商提供的基本系统的基础设施环境是以基于以上解释中的后者的行为为前提构建的。在这种情况下,在前者的打印机内,对于这个系统的打印请求来说,在与用户的期望相反的情况下将纸处理为自定义纸,从而在操作面板上显示“没有打印纸”。因此,出现客户不能打印的缺点。由于这个原因,要求前者打印机的供应厂商尽可能迅速和成本尽可能低地为客户提供解决这种兼容性问题的方法。通过将出现在打印请求数据流内的参数“setpagedevice”的“/DeferredMediaSelection”从“真”变换为“假”,至少可以临时应付这种需要。
兼容过滤器801为有助于解决这个问题的过滤器对象。具体地说,兼容过滤器801对从输入数据流中通过“/DeferredMediaSelection”的“true(真)”指定的“setpagedevice”执行模式匹配。在获得匹配(或一致)时,将“/DeferredMediaSelection”的“true”用它的“false(假)”代替后再输出输出数据流。
标号802表示输入数据流即PostScript的打印数据的一个例子。在输入数据流802的第二行上,出现与模式一致的部分数据。
标号803表示输出数据流即经过滤器处理的PostScript的打印数据的例子。在输出数据流803的第二行的数据内,字符串“true”已经用字符串“false”代替。
图9为说明由本实施例中的校正过滤器执行的处理的示意图。
上述兼容过滤器用模式匹配和替换技术来解决基于打印机之间的规范解释差异的兼容性问题。在这里应注意的是,同样的技术也能用来紧急消除打印机实现中的麻烦(例如,固件的隐错)。例如,假设在某打印机的某个版本被发布的情况下,有一个如果在LIPS(LBP图象打印系统)语言的“图像区域确保指令(VDM)”内指定的图像的宽度不是8的倍数就会出现描绘不正确的隐错。在这里,即使只是在特定应用的特定使用中的极少情况下输出这样的模式的数据流,或者即使上述隐错必需在诸如翻译器或呈现器之类的LIPS语言处理系统的核心部分根本得到校正,也必须在实际客户环境中尽快地处理这样的麻烦。这样的问题由校正过滤器解决。
在图9中,标号901表示校正过滤器,它从包括例如由902表示的数据的LIPS数据流中发现引起隐错的模式(即,VDM的图像宽度为“225”,不是8的倍数),用达到等效功能而不会引起隐错的例如由903表示的数据来代替数据902(即,VDM的图像宽度用大于“225”的8的倍数“232”代替)。
如上所述,按照第一实施例,提供了将静态地实现为固件的打印请求接收服务器所接收的数据流发送给在嵌入式JavaTM环境上实现的能动态装入和动态链接的过滤器软件的接口,从而能清楚地将稳态部分和动态部分相互分开。因此,就能避免要将整个设备固件用动态和冗余的软件代替的低效率的情况。此外,还能避免打印请求接收服务器功能在JavaTM环境侧重新实现从而成为双重实现的低效率情况。因此,就能实现设备成本和开发负担都合理的过滤器框架。此外,对于已经交付和装备在客户环境内的图像处理设备来说还能方便地实现动态添加和过滤器替换,从而能以低的支持成本尽快地为客户提供解决方案。
此外,按照第一实施例,过滤器在比嵌入式系统的固件开发环境更为复杂的JavaTM环境上实现,从而能方便地实现由在嵌入式系统内通常困难的动态存储器管理产生效果的高级模式匹配算法。此外,还能容易地采用基于面向对象的范例的设计模式,因为系统设计成高度模块化和可重用性高的软件。因此,能以高的生产率实现过滤器或过滤部分。
此外,在过滤器内,通过模式匹配在输入数据流内发现对另一个实现引起兼容性问题的PDL数据,从而替换所发现的数据。因此,能尽可能迅速和以尽可能低的成本解决兼容性问题。特别是,只是通过封闭到打印机侧的措施就能实现这样的效果,而不会影响客户环境上的系统、应用和打印机驱动器。
而且,在没有配置过滤器时,构成为使得打印请求接收模块所接收的数据流直接流至作业控制模块。因此,在过滤器是不必要的情况下,能省去与过滤器框架有关的开销,从而能保持打印机所固有的数据处理性能。
(第二实施例)下面,将对本发明的第二实施例进行说明。
在这里,应注意的是第二实施例的组成基本上与第一实施例的组成相同。因此,在第二实施例的组成中,与第一实施例的组成中相同的那些部分用相应的相同标号标注,不再对这些相同部分进行说明。也就是说,只对第二实施例中与第一实施例不同的部分进行说明。
图10为说明由第二实施例中的过滤器执行的处理的示意图。
在图10中,标号1001表示优化过滤器类对象,它读取输入流,发现在数据流内出现的冗余描述的PDL数据,将所发现的数据变换成更为高效的等效功能数据,再将经变换的数据写入输出流。打印机驱动器生成的PDL数据流按照客户机打印请求系统和应用侧的原因基本上倾向于包括诸如重复之类的冗余处理模式。优化过滤器类对象1001将上述冗余模式识别为一种“传统表现”,用更为高效的等效表现来代替这个模式。
标号1002表示给优化过滤器类对象1001的输入数据流的例子。在输入数据流1002中,如方框1003所示,进行了重复填充(或涂刷)三个正方形以便填充(或涂刷)景观矩形的描述。
标号1004表示从优化过滤器类对象1001输出的输出数据流。优化过滤器类对象1001检测到冗余重复模式,将检测到的模式改写为如方框1005所示的一个等效景观矩形填充。
如上所述,按照第二实施例,在可灵活地在JavaTM环境上扩展的过滤器内,将冗余描述模式识别为一种“传统表示”,用更为高效的等效表现代替这个模式。因此,能够改善打印性能,而完全不触及PDL处理系统的核心。此外,按照第二实施例,优化处理在封闭到打印机侧的状态下执行,因此不必改变或改造客户环境上的系统、应用和打印机驱动器。而且,过滤器生产率高,诸如实现之类的过滤器维护方便。因此,能按照客户使用的类型提供个别地与客户相应的优化。
(第三实施例)下面,将对本发明的第三实施例进行说明。
在这里,应注意的是第三实施例的组成基本上与第一实施例的组成相同。因此,在第三实施例的组成中,与第一实施例的组成中相同的那些部分用相应的相同标号标注,不再对这些相同部分进行说明。也就是说,只对第三实施例中与第一实施例不同的部分进行说明。
图11为说明由第三实施例中的过滤器执行的处理的示意图。
在图11中,标号1101表示功能扩展过滤器类对象,它读取输入流,按照所读取的数据执行诸如数据变换、数据加入之类的处理以加入新的功能,然后将经处理的数据写入输出流。在这里,作为功能扩展的一个例子,将说明在客户的系统包括专用PDL驱动器而这个PDL驱动器与新的打印机的诸如双面打印、各种最后处理之类的新的性能不对应的情况下,通过打印机侧的过滤对应来激活图像处理设备的新的功能,而不改变专用PDL驱动器。
功能扩展滤波器1101作为它的属性具有激活上述过滤器在其中工作的打印机的新性能的打印作业设置。过滤器对象的属性值也存储在图像处理设备的非易失性存储器内,从而即使在图像处理设备的电源断开后再接通的情况下也能保持对象的状态。
在这里,作业类型属性具有诸如“打印”、“安全打印”之类的值。也就是说,作业类型属性表示打印机内所包括的每种作业的类型。副本数量属性表示应该产生多少套打印材料副本。页面布局属性表示页面布局指定。也就是说,可以用这个属性指示将多页打印到一张纸(副本)上的指定,诸如“1页/副本”、“2页/副本”、“4页/副本”之类。此外,还可以用这个属性指示将一页放大后分开打印到多张纸上的指定,诸如“分打(2×2)”、“分打(3×3)”之类。排列次序属性具有诸如“从左上向右”、“从左上向下”、“从右上向左”、“从右上向下”之类的值。也就是说,排列次序属性指示对在页面布局处理中每面上的排列的指定。打印方法属性具有诸如“单面打印”、“双面打印”、“装订打印”之类的值。也就是说,打印方法属性指示对打印方法的指定。装订方位属性具有诸如“长边装订(左侧)”、“长边装订(右侧)”、“短边装订(上侧)”、“短边装订(下侧)”之类的属性。也就是说,装订方位属性指示在最后处理中将多张纸装订在一起的方位。出纸方法属性具有诸如“无指定”、“分类”、“订书钉”、“穿孔”之类的值。也就是说,出纸方法属性指示最后处理方法。给纸属性具有诸如“自动”、“人工给纸盘”、“纸盒”、“纸匣”、“普通纸”、“厚纸”、“有色纸”、“OHP”之类的值。也就是说,给纸属性指示对进给要执行形成图像的纸(转印纸)的指定。
标号1102表示给功能扩展滤波器1101的输入数据流的例子。更具体地说,输入数据流1102是包括由传统的应用和打印机驱动器生成的、仅仅基于每页的图像形成描述的PDL和文本的打印数据流。
标号1103表示由功能扩展滤波器1101顺序处理并输出的输出数据流的例子。除了在输入数据内存在的单纯打印数据流之外,在输出数据流1103内还插入了充分使用打印机的新功能的各种打印作业描述。在这里,应注意的是,打印作业描述可以表示嵌套结构,从而能为作业单元、诸如装订多个文件的最后处理的处理单元和单个文件单元的各个层次指定诸如功能扩展滤波器1101的属性之类的各种属性。
在输出数据流1103内,第一行示出了指示作业的开始的数据,第二行示出了指示作业单元内的设置的开始的数据,而第三行示出了在这个位置存在作业单元内的各种设置数据。此外,第四行示出了指示集中多个文件的单元的开始的数据,第五示出了指示集中多个文件的单元的设置的开始的数据,而第六行示出了在这个位置存在集中多个文件的单元的设置数据。此外,第七行示出了指示文件的开始的数据,第八行示出了文件单元内的设置的开始的数据,而第九示出了在这个位置存在文件单元内的设置数据。此外,第十行示出了指示文件描述数据的开始的数据,第十一行示出了在这个位置存在表示文件本身的文件描述数据。在这种情况下,在这个位置存在在输入数据流1102内存在的打印数据流。此外,第十二行示出了指示文件的结束的数据,第十三行示出了指示集中多个文件的单元的结束的数据,而第十四行示出了指示作业的结束的数据。
图12为示出用来操作功能扩展过滤器1101的用户界面的例子的示意图。
用来操作过滤器的用户界面由标准库和包含在框架217(图2)内的HTTP服务实现为Web应用(服务小程序),从客户机端的Web浏览器操作。要提及的是,也能构成实现为应用小程序服务的用户界面,用图像处理设备的操作面板18操作。
在图12中,标号1201表示功能扩展滤波器1101的基本操作屏幕。在基本操作屏幕1201上,能确认和改变过滤器对象属性。
在位置1202处,处理作业类型属性。
在位置1203处,处理副本数量属性。
在位置1204处,处理页面布局属性。
在位置1205处,处理排列次序属性。
在位置1206处,处理打印方法属性。
在位置1207处,处理装订方位属性。
在位置1208处,处理出纸方法属性。
在位置1209处,处理给纸属性。
标号1210表示帮助按钮。在帮助按钮1210按下时,显示关于怎样使用功能扩展滤波器1101、功能的含意、属性的含意等的说明。
标号1211表示标准化按钮。在标准化按钮1211按下时,各种属性分别返回到各自的缺省值。
标号1212表示应用按钮。在应用按钮1212按下时,应用属性值改变操作,从而将新的值实际设置为过滤器对象的属性。
标号1213表示预览图标,它示出了与若干重要属性之一的值相应的示意图,以便帮助用户确认各种属性。
如上所述,按照第三实施例,在可在JavaTM环境上灵活扩展的过滤器内,加入了激活新的功能所必需的数据。因此,即使在过滤器与系统组合在一起的情况下,客户环境上的与打印机的新功能不对应的应用和打印机驱动器也能充分使用该有关新功能。
此外,JavaTM环境还准备了为在其上进行操作的过滤器实现用户界面的装置,作为固件内另一层的软件平台。因此,可以在过滤器上提供设置附加功能的用户界面。
而且,过滤器生产率高,诸如过滤器安装之类的维护方便。因此,能按照客户使用的类型提供与顾客单个对应的功能扩展。
(其它实施例)要提及的是,能构成这样的功能扩展滤波器,它在发现在打印目标字符数据串内出现某一字符串模式而所发现的模式与特定的字符串模式一致的情况下,生成与该字符串相应的控制数据而不是包括在打印数据流内的控制数据,并替换或插入所生成的控制数据。在这种情况下,例如,假设客户或用户在例如文字处理器等的普通应用中输入仅作为文本的特定字符串,通过普通打印机驱动器打印所输入的字符串。仅仅用这样一个操作,就能在打印机侧的过滤器内将特定字符串变换成描绘与该特定字符串相应的图像(例如,徽标、标志、水印等)的诸如向量描绘指令之类的指令串。
此外,在上述实施例中,JavaTM虚拟机和环境用作固件内的解释器环境215。然而,本发明并不局限于此。也就是说,即使在诸如另一种脚本语言之类的解释器环境被嵌入固件的情况下,也能获得诸如动态过滤器加入、固件部分分离之类的同样效果。而且,解释器不需要总是一个接一个地解释和执行由解释器的指令集组成的指令串。也就是说,在执行时,解释器可以集中地将部分或所有的指令串变换成本机指令(即,硬件CPU的指令集)的指令串,集中地执行所变换的指令串。
此外,由于有许多诸如面向对象之类的能获得高效率开发的其他解释器环境,因此也能使用这些解释器环境来获得诸如过滤器生产率之类的同样效果。特别是,对于基于模式匹配处理的数据流来说,诸如“sed”、“AWK”、“Perl”之类的选项也是适当的。
这里,即使在将存储实现以上实施例的功能的软件的程序代码的存储介质提供给系统或设备,从而由系统或设备内的计算机(或CPU或MPU)读出和执行存储在存储介质内的程序代码的情况下,本发明的目的也能达到。
在这种情况下,从存储介质读出的程序代码本身实现本发明实施例的新颖功能,从而存储该程序代码的存储介质和程序构成了本发明。
作为提供程序代码的存储介质,例如可以使用软盘、硬盘、光盘、磁光盘、CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW、磁带、非易失性存储卡、ROM等。
此外,本发明不仅包括上述实施例的功能通过执行由计算机读出的程序代码来实现的情况,而且包括在计算机上运行的OS(操作系统)等根据程序代码的指示执行部分或所有的实际处理从而通过这些处理来实现上述实施例的功能的情况。
此外,本发明还包括在将从存储介质读出的程序代码写入插在计算机内的功能扩展卡或连接到计算机上的功能扩展单元内的存储器后、配置在功能扩展卡或功能扩展单元内的CPU等根据程序代码的指示执行部分或所有的实际处理从而通过这些处理来实现上述实施例的功能的情况。
因此,本发明的保护范围仅由以下权利要求确定,而不受说明书的文本的限制,在与权利要求的范围等同的范围内所做出的修改均落入本发明的精神实质和保护范围内。
本申请要求2004年3月26日递交的日本专利申请No.2004-093215的优先权,该申请在这里以参考的方式被包含。
权利要求
1.一种图像处理设备,所述图像处理设备包括打印数据流接收单元,适于从外部接收打印数据流;打印作业控制器,适于控制解释打印数据流和执行图像形成的打印作业;过滤器单元,适于执行对打印数据流的数据处理,从而生成经处理的打印数据流;第一接口,适于将所述打印数据流接收单元所接收的打印数据流发送给所述过滤器单元;以及第二接口,适于将所述过滤器单元生成的经处理的打印数据流发送给所述打印作业控制器。
2.根据权利要求1所述的图像处理设备,其中所述图像处理设备具有作为根据将由处理器处理的本机指令构成的固件的本机环境,所述本机环境包括动态装入、链接和执行根据与所述本机指令相独立地定义的指令集构成的程序的解释器环境,以及所述打印数据流接收单元配置在所述本机环境上,并且所述过滤器单元配置在所述解释器环境上。
3.根据权利要求1所述的图像处理设备,所述图像处理设备还包括第三接口单元,所述第三接口单元适于将所述打印数据流接收单元所接收的打印数据流发送给所述作业控制器。
4.根据权利要求1所述的图像处理设备,其中所述过滤器单元进一步包括模式匹配单元,适于检测打印数据流中与预定数据模式一致的部分,以及替换单元,适于生成与所述模式匹配单元检测到的、打印数据流中的所述一致部分相应的预定部分数据流,用所生成的预定部分数据流代替所述一致部分。
5.根据权利要求2所述的图像处理设备,所述图像处理设备还包括用户界面构成单元,适于在所述解释器环境内构成用户用以操作在所述解释器环境上操作的程序的用户界面,其中用于在所述过滤器单元内对打印数据流进行数据处理的处理参数由用户利用所述用户界面构成单元所构成的用户界面进行操作。
6.根据权利要求2所述的图像处理设备,所述图像处理设备还包括线程单元,所述线程单元适于在所述解释器环境内并行执行在所述解释器环境上操作的程序的指令的读取和解释,其中所述过滤器单元在所述线程单元的独立执行上下文下自主地执行对打印数据流的数据处理。
7.根据权利要求2所述的图像处理设备,其中所述解释器环境基于JavaTM平台。
8.一种图像处理设备,所述图像处理设备包括打印数据流接收单元,适于从外部接收打印数据流;打印作业控制器,适于控制解释打印数据流和执行图像形成的打印作业;过滤器单元,适于执行对打印数据流的数据处理,从而生成经处理的打印数据流;以及过滤器管理单元,适于管理多个过滤器单元,控制成能将过滤器单元配置在打印数据流的数据通路内,以及使所配置的过滤器单元顺序处理打印数据流。
9.根据权利要求8所述的图像处理设备,所述图像处理设备还包括过滤器配置操作接受单元,所述过滤器配置操作接受单元适于接受用于从所述过滤器管理单元所管理的多个过滤器单元中有选择地将所希望的过滤器单元配置在打印数据流的数据通路内的用户操作。
10.根据权利要求8所述的图像处理设备,所述图像处理设备还包括第一接口单元,适于将所述打印数据流接收单元所接收的打印数据流发送给所述过滤器单元;第二接口单元,适于将所述过滤器单元所生成的经处理的打印数据流发送给所述打印作业控制器;以及第三接口单元,适于在所述过滤器管理单元不将任何过滤器单元配置在打印数据流的数据通路内的情况下,直接将所述打印数据流接收单元所接收的打印数据流发送给所述打印作业控制器。
11.根据权利要求8所述的图像处理设备,所述图像处理设备还包括过滤器引入单元,所述过滤器引入单元适于将过滤器单元从外部引入所述图像处理设备,以便将所引入的过滤器单元置于所述过滤器管理单元的管理之下。
12.一种用于图像处理设备的控制方法,所述图像处理设备包括适于从外部接收打印数据流的打印数据流接收单元、适于控制解释打印数据流和执行图像形成的打印作业的打印作业控制器和适于执行对打印数据流的数据处理从而生成经处理的打印数据流的过滤器单元,所述方法包括将打印数据流接收单元所接收的打印数据流发送给过滤器单元的第一接口步骤;以及将过滤器单元所生成的经处理的打印数据流发送给打印作业控制器的第二接口步骤。
13.根据权利要求12所述的控制方法,还包括将打印数据流接收单元所接收的打印数据流发送给作业控制器的第三接口步骤。
14.一种用于图像处理设备的控制方法,所述控制方法包括从外部接收打印数据流的打印数据流接收步骤;控制解释打印数据流和执行图像形成的打印作业的打印作业控制步骤;执行对打印数据流的数据处理从而生成经处理的打印数据流的过滤步骤;以及管理多个过滤器单元、控制成能将过滤器单元配置在打印数据流的数据通路内和使所配置的过滤器单元顺序处理打印数据流的过滤器管理步骤。
15.根据权利要求14所述的控制方法,所述控制方法还包括接受从用于在所述过滤器管理步骤所管理的多个过滤器单元中有选择地将所希望的过滤器单元配置在打印数据流的数据通路内的用户操作的过滤器配置操作接受步骤。
16.根据权利要求14所述的控制方法,所述控制方法还包括将打印数据流接收单元所接收的打印数据流发送给过滤器单元的第一接口步骤;将过滤器单元所生成的经处理的打印数据流发送给打印作业控制器的第二接口步骤;以及在所述过滤器管理步骤适于不将任何过滤器单元配置在打印数据流的数据通路内的情况下直接将打印数据流接收单元所接收的打印数据流发送给打印作业控制器的第三接口步骤。
17.一种使计算机执行应用于图像处理设备的控制方法的计算机程序,所述图像处理设备包括适于从外部接收打印数据流的打印数据流接收单元、适于控制解释打印数据流和执行图像形成的打印作业的打印作业控制器和适于执行对打印数据流的数据处理从而生成经处理的打印数据流的过滤器单元,所述程序包括将打印数据流接收单元所接收的打印数据流发送给过滤器单元的第一接口步骤;以及将过滤器单元所生成的经处理的打印数据流发送给打印作业控制器的第二接口步骤。
18.一种计算机可读存储介质,所述计算机可读存储介质存储使计算机执行应用于包括以下部分的图像处理设备的控制方法适于从外部接收打印数据流的打印数据流接收单元、适于控制解释打印数据流和执行图像形成的打印作业的打印作业控制器和适于执行对打印数据流的数据处理从而生成经处理的打印数据流的过滤器单元,其中所述计算机程序包括将打印数据流接收单元所接收的打印数据流发送给过滤器单元的第一接口步骤;以及将过滤器单元所生成的经处理的打印数据流发送给打印作业控制器的第二接口步骤。
19.一种使计算机执行应用于图像处理设备的控制方法的计算机程序,所述程序包括从外部接收打印数据流的打印数据流接收步骤;控制解释打印数据流和执行图像形成的打印作业的打印作业控制步骤;执行对打印数据流的数据处理从而生成经处理的打印数据流的过滤步骤;以及管理多个过滤器单元、控制成能将过滤器单元配置在打印数据流的数据通路内和使所配置的过滤器单元顺序处理打印数据流的过滤器管理步骤。
20.一种存储使计算机执行应用于图像处理设备的控制方法的计算机程序的计算机可读存储介质,所述程序包括从外部接收打印数据流的打印数据流接收步骤;控制解释打印数据流和执行图像形成的打印作业的打印作业控制步骤;执行对打印数据流的数据处理从而生成经处理的打印数据流的过滤步骤;以及管理多个过滤器单元、控制成能将过滤器单元配置在打印数据流的数据通路内和使所配置的过滤器单元顺序处理打印数据流的过滤器管理步骤。
全文摘要
本发明所公开的图像处理设备包括从外部接收打印请求数据流的打印请求数据流接收单元、控制解释打印请求数据流和执行图像形成的打印作业的打印作业控制器和执行对打印请求数据流的数据处理从而生成经处理的打印请求数据流的过滤器。这种图像处理设备将打印请求数据流接收单元所接收的打印请求数据流通过第一接口发送给过滤器,而将过滤器所生成的经处理的打印请求数据流通过第二接口发送给打印作业控制器。
文档编号G06F9/54GK1934531SQ200580009609
公开日2007年3月21日 申请日期2005年3月24日 优先权日2004年3月26日
发明者山本雅仁 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1