图像处理装置及其控制方法

文档序号:7621424阅读:69来源:国知局
专利名称:图像处理装置及其控制方法
技术领域
本发明涉及一种图像处理装置及其控制方法。
背景技术
传统上,在例如复印机或者MFP(Multifunction Printer,多功能打印机)的图像处理装置上进行图像处理的软件主要构造为在操作系统(OS)上是静态的且固定的所谓固件(firmware)。即使在由多个模块在内部构成的情况下,这种固件仍以其整体静态链接到单个加载模块的方式存储在装置的非易失性存储器中。在系统启动时,它或者从例如硬盘的非易失性存储器加载到RAM中以执行,或者直接在其中存储有固件的例如ROM的非易失性存储器中执行。特别是,为了经济性和安全性,构成例如低成本图像处理装置的嵌入式系统的固件通常不进行动态加载或不链接部分模块。这是因为用于存储实现动态链接所需的符号表的存储器的数量和与访问符号地址的处理有关的开销使该装置的性能价格比恶化。此外,还因为这样的危险,即子模块的额外加载和链接可能危害在链接该子模块之前充分评价和实现的整个系统的质量和安全性。
传统上,正在开发在嵌入式系统的固件的实时OS上具有软件操作环境的更进一步的层,并且在所提供的软件操作环境中支持例如动态加载、动态链接和动态存储操作的软件的动态属性的图像处理装置。能添加模块的软件操作环境由解释程序、一组应用程序接口(API)和一组框架构成,而且提供一种用于在其上运行软件的OS或者计算平台。该解释程序依次读取、解释和执行一系列由包括在预定指令集中的指令构成的指令序列。在该指令集与CPU的指令集处于同等地位的情况下,特别地,则可以将解释程序称为虚拟机。该API组和该组框架允许访问由位于该软件操作环境的下层的实际实时OS所提供的资源、以及具有为了在软件操作环境下操作软件而抽象化的硬件资源的各种资源组。这些资源是通过处理器、存储器、文件系统和包括例如网络接口的各种输入/输出(I/O)的指令执行上下文。软件操作环境可以独自管理解释程序上的指令执行上下文,而与CPU和实时OS提供的多任务机制无关。关于存储器管理,软件操作环境同样可以提供独自的存储器管理。
在这种软件操作环境下运行的软件解释被依次读取,并由解释程序进行解释,因此,在这些处理的过程中,可以监测指令序列,并排除对系统具有不利影响的操作。通过软件操作环境所提供的API组和框架组,可以间接从在软件操作环境下运行的软件来访问各种资源。因此,在该访问过程中,可以排除对系统具有不利影响的操作。因此,为了向应该被静态、固定配置的低成本嵌入式系统的固件中部分引入软件的动态特性,采用提供软件操作环境的分层结构的方法是非常有效的,该软件操作环境在固件内包括解释程序、API组和框架组(参考日本特开平11-282684和日本特开2003-256216)。
对于上述方法,为了实现软件操作环境的分层结构,可以将Java(注册商标)虚拟机用作解释程序,并采用与Java(注册商标)有关的API组和框架组。在2003年,本申请人商业化了一种在图像处理装置的固件内部嵌入Java(注册商标)平台的复合机。
传统上,具有网络计算机的应用程序下载型打印机用于将要打印的数据文件和对应于该数据文件的应用程序从计算机网络下载到打印机。有一种已知的组合有网络计算机的打印机,用来在打印机内部启动和运行所下载的应用程序、打开数据文件、并将其变换为光栅图像,以进行打印。还公开了一种在这种情况下用作应用程序的“Java(注册商标)Applet”。还公开了即使在被来自客户机的打印数据文件推进的情况下,应用程序也由打印机从应用程序服务器拉出(参考日本特开平11-53132)。
日本特开平11-306107公开了一种用于将服务器装置连接到发送通道,以根据预定的通信协议进行网络通信的网络通信系统,该服务器装置具有多个外围设备、多个具有操作外围设备的软件的终端装置、以及至少一个与操作外围设备的软件有关的数据库,其中,外围设备包括客户机控制部分,用于从服务器装置请求并获取与操作外围设备的全部或部分软件、或该软件所使用的模块相对应的当前模块信息;以及软件分布代理程序,用于向终端装置分布所获取的当前模块。还公开了在这种情况下提供“Java(注册商标)Applet”和“Java(注册商标)应用程序”作为操作外围设备的软件所使用的客户机侧模块。
对于商用系统,存在这样的情况,对维持已启动了正常操作的整个系统的稳定性的要求非常强烈,以致不能简单地允许打印机驱动程序和应用程序的改变或版本升级。在这种实际打印环境的限制中,打印机销售商的任务是通过打印机侧的解决方案来满足各种客户要求,而不是在客户侧寻找解决方案。为此,有一种定制构成打印机和打印机控制器的固件并发布该固件以满足每个客户要求的方法。然而,满足每个客户要求的固件的定制需要的开发周期长,装置的开发成本高,而且固件的更新带来了需要由现场工程师进行高级维护的问题。因此,仍然存在在成本效率方面迅速满足每个客户要求的问题。
例如,对于将软件操作环境例如Java(注册商标)平台嵌入到嵌入式系统的固件中的复合机,可以开发将独立于固件的应用程序嵌入到软件操作环境中的新装置。还可以利用API从Java(注册商标)应用程序访问装置的打印功能。然而,Java(注册商标)平台位于固件内的嵌入式应用程序层,因此,不能将与本机(native)嵌入式应用程序在同一层上实现的打印数据接收功能和打印服务器功能变为Java(注册商标)应用程序。更具体地说,例如,需要在Java(注册商标)侧实现具有用来通过在其上实现的网络来接收打印数据的各种打印服务协议的打印服务器功能。因此,在开发负担、评估负担、以及实施所需存储器的数量方面的效率低下。
在其它嵌入式系统的固件中没有软件操作环境层的情况下,对整个嵌入式系统进行配置,以便能动态链接或插入,从而具有动态结构。在假定要求动态特性的部分仅是在解释所接收到的PDL数据流之前灵活地、可扩充地添加预处理的机制的情况下,因为增加了成本和用来将整个系统配置为动态软件的开销,而且难以保证质量,因此这种传统方法不适合低成本、小规模的系统。
因此,提出了一种用于提高定制PDL打印机的生产率的技术,从而将用来在解释打印机所接收到的PDL数据流之前执行预处理的过滤器部分实现为灵活的、可扩充的软件,以将其与要求稳定性的打印机固件的其它部分的实现明确分离(日本特愿2004-093215)。
在上面的日本特愿2004-093215的情况下,需要对全部打印请求数据流进行过滤,因此,不能实现高效率的处理。更具体地说,图像处理装置所接收到的打印请求数据流主要由以下数据流构成装置控制数据流部分,包括与装置控制有关的指令和命令,该装置控制例如是打印机的进纸和排纸阶段的规定,例如JL(作业语言);以及绘图数据流部分,包括与绘图例如PDL有关的指令和命令。总是对包括它们二者的数据流进行过滤,由于整个处理变重,并且降低了吞吐量,因而不能执行高效率的处理。此外,没有考虑到对PDL之外的各种处理请求数据流例如临时存储到图像处理装置的数据进行的处理,并且没有考虑到对各种数据流例如通过电子邮件来发送由图像处理装置所读取的图像数据进行的处理。

发明内容
本发明的目的在于消除传统技术的缺点。
本发明的特征在于提供一种图像处理装置及其控制方法,该图像处理装置通过对所输入的数据流应用动态加载或可链接的过滤器,可以简单地对数据流进行各种处理。
根据本发明的一个方面,提供一种图像处理装置,其位于根据由构成硬件的处理器进行处理的第一命令组所构建的本机环境中,并且具有用来动态执行根据独立于第一命令组而定义的第二命令组所构建的程序的解释程序环境,该装置包括数据流接收装置,用于在本机环境中从客户机接收包括处理请求的输入数据流;数据处理装置,用于在本机环境中,在将输入数据流划分为多个阶段进行解释的每个阶段中生成中间数据流;过滤装置,用于在解释程序环境中过滤中间数据流,并生成过滤后的数据流;接口装置,用于在本机环境中,在该接口装置本身与过滤装置之间取出并写回中间数据流;以及过滤管理装置,用于在本机环境中将通过接口装置取出的中间数据流传送到在解释程序环境中对应的过滤装置,并通过接口装置写回过滤后的数据流。
通过下面结合附图所做的说明,本发明的其它特征和优点是显而易见的,在所有附图中,相同的附图标记表示相同或相似的部分。


引入说明书并构成说明书的一部分的附图,示出了本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是用于说明根据实施例的图像处理装置的硬件结构的方框图;图2示出用于说明根据实施例的控制器的硬件结构的层级结构图;图3是示出在根据实施例的控制器的软件模块中的基本数据流和每个模块中存在的数据流的示意图;图4是示出根据实施例在控制器的软件模块中的基本数据流和过滤时的数据流的示意图;图5是用于说明在实施例的解释程序环境中构建的过滤器框架的类的示意图;图6A和6B示出在实施例的解释程序环境中构建的由过滤器框架所管理的对象的例子的视图,其中,图6A示出当一个过滤器处于有效状态时,由过滤器框架的运行时间所管理的对象之间的关系,图6B示出当两个过滤器处于有效状态时,由过滤器框架的运行时间所管理的对象之间的关系;图7A至7C示出了用于说明根据实施例操作过滤器框架的用户界面的例子的示意图;图8是示出根据实施例的过滤处理的主要程序的流程图;
图9是示出根据实施例的过滤处理程序的另一个例子的流程图;图10是用于说明根据实施例的处理请求数据流的示意图;图11是用于说明根据实施例由过滤器对绘图数据流执行的处理的示意图;图12是用于说明根据实施例由过滤器对绘图数据流执行的过滤处理的示意图;图13是用于说明根据实施例由优化过滤器对绘图数据流执行的处理的示意图;图14是用于说明根据第一实施例,由功能附加过滤器对装置控制指示数据流执行的处理的示意图;图15示出了用于操作功能增强过滤器的用户界面的例子的示意图;以及图16是用于说明根据本发明第二实施例的发送数据流的示意图。
具体实施例方式
现在,将参考附图来详细说明本发明的优选实施例。应当指出,下面的实施例不限制在权利要求书中提出的本发明,并且在实施例中所说明的特征的全部组合并非是获得本发明所必需的方式。
图1是用于说明根据实施例的图像处理装置1000的硬件结构的方框图。
图像处理装置1000具有图像处理装置控制器(以下称为控制器)1600,并由控制不同控制系统的装置构成。更具体地说,假定该实施例的图像处理装置1000是打印机。
根据存储在可重写闪速存储器3上的控制程序,CPU 1执行控制动作。CPU 1使用预定的网络通信协议对各种数据传输请求例如打印数据和打印机控制指令进行全面的控制,该打印数据和打印机控制指令是从多个外部装置(未示出)例如通过连接到系统总线4的网络控制器(LANC)5连接到局域网(LAN2000)的主机发出的。CPU 1还根据存储在ROM 9内的控制程序或者存储在通过磁盘控制器(DKC)15连接的外部存储器10内的控制程序或者资源数据,全面控制对连接到系统总线4的各种装置的访问。因此,根据接收到的打印数据,利用光栅控制器12生成图像数据,以将图像数据输出到标记(marking)引擎(打印机引擎)16。
RAM 2用作主存储器的临时存储区和CPU 1的工作区。闪速存储器3是用于存储也存储在ROM 9内的控制程序的可重写非易失性存储器。系统总线4用于在包括在控制器1600内的装置之间交换数据。
网络控制器(LANC)5将控制器1600连接到LAN 2000。LED 6用作表示控制器1600的操作状态的显示器,该显示器通过LED 6的闪烁方式和颜色,来表示各种操作状态,例如,网络控制器(LANC)5与局域网(LAN)2000之间的电连接状态和网络通信模式(10Base、100Base、全双工、半双工)。外部存储器10保持控制程序和各种数据,并通过DKC 15连接到控制器1600。硬盘驱动程序、USB存储器等用作外部存储器10。根据接收到的打印数据,光栅控制器12生成要输出的图像数据。标记引擎16从光栅控制器12接收图像数据,并打印该图像数据。
控制台(操作部分)18具有按钮,用于进行操作,例如,设置操作模式以及删除图像处理装置1000的打印数据;触摸屏,重叠显示在液晶屏上;液晶屏,用于表示图像处理装置1000的操作状态;以及显示器,例如LED。图像读取器19提供通过控制台18或者局域网2000读取图像数据的指令,从而将所读取(扫描)的图像数据输入到图像处理装置1000。
图1所示的标记引擎16采用已知的打印技术,例如,优选的例子是电子照相方法(激光束方法)、喷墨方法以及升华(热转印)方法。
图2是示出根据实施例的控制器1600的软件结构的分层结构的图。图2示出,位于上部的高位模块依赖于位于下部的低位模块。它还特别示出,在利用导线连接的模块之间存在依赖性。
本机码部分201是构成图像处理装置1000的固件的标准部分,并直接由CPU 1来执行。在设计该装置时,本机码部分201静态链接到单个加载模块作为固件,且被存储在图像处理装置1000的闪速存储器3内。在启动图像处理装置1000时,将固件从闪速存储器3加载到RAM 2上,在图像处理装置1000的操作期间,CPU 1从RAM 2顺序读取代码,以解释并处理该代码。然而,在进行该处理时,不执行动态链接。还可以将固件存储到可由CPU 1直接读取和访问的非易失性存储器例如ROM 9内,使CPU 1直接从ROM 9顺序读取代码,而不将其加载到RAM 2内,从而解释并执行它。
数据发送/接收模块202从客户机接收处理请求数据流350(图3),并将由控制器1600产生的发送数据流358(图3)发送到客户机。通过RTOS(实时OS)214,数据发送/接收模块202依赖于协议堆栈223。通过例如以太网(Ethernet,注册商标)的网络和例如USB和IEEE 1394的各种接口,物理执行与客户机的数据发送和接收,其中有为了根据每种连接模式进行处理请求而规定的应用程序协议。数据发送/接收模块202具有在其上执行的应用程序协议的服务器功能。关于服务的应用程序协议,有各种规范,例如,LPR、SMB、PAP和NetWare,这些仅是网络协议的例子,其执行需要巨大的开发成本和质量评价成本。数据发送/接收模块202支持由针对多个接口中的每个接口的各种现有服务协议组成的多个协议。为了进行数据发送和接收,数据发送/接收模块202可以在图像处理装置1000的RAM 2内配置作业队列,以在其上执行所谓假脱机功能。在这种情况下,数据发送/接收模块202可以从客户机接收作业请求,并将其存储到队列中,从而即使在不能立即执行该作业的情况下,例如另一个作业正在执行中,仍可以释放客户机。因此,当作业变为可执行时,根据调度算法来顺序处理存储在队列内的作业。
嵌入式应用程序203是用于提供图像处理装置1000的中心功能的嵌入式应用程序,并根据来自客户机的请求来提供服务。在客户机是通过LAN 2000在主机上的应用程序和驱动程序软件的情况下,客户机生成处理请求数据流350(图3),并通过数据发送/接收模块202将其传送到嵌入式应用程序203。嵌入式应用程序203将该处理请求数据流350分成装置控制指示数据流351(图3)和绘图数据流352(图3),并通过控制API 204将它们分别传送到作业控制模块205。或者,它解释装置控制指示数据流351(图3),并通过控制API 204对由客户机请求的处理来指示作业控制模块205,以对其发送绘图数据流352(图3)。
对于通过图像处理装置1000的控制台18的客户机指令,嵌入式应用程序203产生装置控制指示数据流351(图3),并通过控制API 204将其传送到作业控制模块205。或者,它根据客户机的请求,通过控制API 204来指示作业控制模块205。装置的控制的说明部分通常称为JL(作业语言),包括环境数据,用于指定与绘图数据的解释和展开有关的操作参数;用于打印输出的转印纸的进给的指定;例如双面打印的打印模式的指定;排纸托盘的指定;分类(排序)的指定;以及例如订书和装订的整理的指定。绘图数据流以PDL进行说明,主要说明在每页上的图。
控制API 204是用于访问图像处理装置1000提供的服务的应用程序接口。构成控制API 204的一个主要接口是用于执行并控制打印作业,并将装置控制指示数据流351(图3)和绘图数据流352(图3)传送到作业控制模块205的接口。
作业控制模块205对图像处理装置1000提供的各种图像处理作业进行控制。以下示出作为图像处理作业的例子的打印作业的处理。
作业控制模块205根据通过控制API 204的指令来控制装置。或者,模块205通过控制API 204来解释输入到作业控制模块205的装置控制指示数据流351(图3),以执行该操作。根据与装置的控制有关的指令、或者装置控制指示数据流351的说明内容,通过控制API 204,作业控制模块205控制翻译器206、渲染器207、ME控制模块208、图像处理模块209以及数据管理模块210。关于打印作业,作业控制模块205通过翻译器206将绘图数据流352(图3)转换为显示列表355(图3)。通过渲染器207,将显示列表355(图3)进一步转换为中间图像数据流356(图3)。进行调度,以通过图像处理模块209将中间图像数据流356转换为最终图像数据流357(图3),并将最终图像数据流357发送到ME控制模块208进行打印。
作为另一个例子,对读取和发送由嵌入式应用程序203所提供的图像数据的操作进行说明。如果指示从控制台18读取并发送图像数据,则嵌入式应用程序203通过控制API 204,指示作业控制模块205读取并发送图像数据。通过嵌入式应用程序203经由控制API 204直接指示作业控制模块205,或者通过嵌入式应用程序203产生装置控制指示数据流351、并经由控制API 204将其传送到作业控制模块205,来执行该发送指令。作业控制模块205输入来自图像读取器19的图像数据,并将其保持到RAM 2内,以将其传送到图像处理模块209。进行调度,以将由此产生的扫描图像数据流360(图3)传送到嵌入式应用程序203。嵌入式应用程序203将发送来的扫描图像数据流360转换为由控制台18指定的格式,以产生发送数据流359(图3),并通过数据发送/接收模块202进行发送。或者,当由控制台18指定的目的地是内置的外部存储器10时,则通过控制API 204,嵌入式应用程序203指示作业控制模块205读取并存储图像数据。通过嵌入式应用程序203经由控制API204直接指示作业控制模块205,或者通过嵌入式应用程序203产生装置控制指示数据流351、并经由控制API 204将其传送到作业控制模块205,来执行该指令。作业控制模块205输入来自图像读取器19的图像数据,并将其保持在RAM 2内,以将其传送到图像处理模块209。进行调度,以通过数据管理模块210,将图像处理模块209所产生的扫描图像数据流360(图3)存储到外部存储器10。
翻译器206解释例如PDL的绘图数据流352(图3),并将其转换为适合于渲染处理的打印用的中间语言。将适合于渲染处理的打印用的中间语言的打印数据的说明称为显示列表355(图3)。对于各种PDL规范中的每种,翻译器206具有不同且唯一的实现。每个翻译器将其PDL转换为渲染器207独有的显示列表355。
渲染器207将显示列表355展开为中间图像数据流356(图3)。通过RTOS 214,渲染器207依赖于渲染器驱动程序225。
标记引擎(ME)控制模块208控制标记引擎16,以在图像处理装置1000的转印纸上形成图像。通过RTOS 214,ME控制模块208依赖于ME驱动程序226。
图像处理模块209对图像处理装置1000的中间图像数据流356等的图像数据进行各种图像处理,例如,半色调、捕获、密度校正、以及彩色到单色的转换。
数据管理模块210将图像处理装置1000的的数据流例如中间图像数据流356(图3)和最终图像数据流357(图3)存储到外部存储器10内,并管理它们。还可以对除可存储和可管理的图像数据流之外的数据流进行渲染。层I/F 211与解释程序环境215交换图像处理装置1000内的数据流。为了在过滤数据流时进行标记,将层I/F 211粗略划分为内部层I/F 213和外部层212。
外部层212将处理请求数据流350、装置控制指示数据流351、绘图数据流352和发送数据流358、359从数据发送/接收模块202和嵌入式应用程序203传送到解释程序环境215,还将过滤器221处理过的数据流传送到数据发送/接收模块202、嵌入式应用程序203和作业控制模块205。
内部层I/F 213将作业控制模块205与翻译器206、渲染器207、ME控制模块208、图像处理模块209、数据管理模块210和图像读取器19交换而生成的显示列表355、中间图像数据流356、最终图像数据流357、以及扫描图像数据流360传送到解释程序环境215。而且,I/F 213将过滤器处理过的作业传送到作业控制模块205。在此,显然,除了作业控制模块205之外,还可以在解释程序环境215与翻译器206、渲染器207、ME控制模块208、图像处理模块209、数据管理模块210以及图像读取器19之间交换上述数据流。
实时OS 214是用于提供图像处理装置1000的本机码固件的执行环境的平台。为了在其上运行软件,实时OS 214提供用于软件构建的基本服务、并提供将图像处理装置1000的硬件资源抽象化的服务。OS 214还提供用于构建装置驱动程序的框架,用于将图像处理装置1000的硬件抽象化为软件可容易地访问的接口。RTOS 214提供的功能是任务管理,用于将CPU 1的指令执行上下文抽象化;多任务机制,用于进行并行处理,以同时虚拟操作多个执行上下文;任务间通信(消息队列、信号量(semaphore)等),用于在任务之间交换消息并执行同步;各种存储器管理;定时器和时钟;中断管理;以及DMA控制等。信号量表示在并行运行的处理之间执行同步、并对中断处理进行控制的机制。
解释程序环境215是基于各种解释程序环境的软件平台,即,在这种情况下,是Java(注册商标)平台的运行时间环境,而且通过添加图像处理装置1000所独有的API组和框架组来构成。该软件平台动态地为以解释程序语言描述的、运行在其上的程序提供软件运行环境。该解释程序环境包括通过本机码实现的部分(包括在本机码部分201中)、和以解释程序语言描述的程序来实现的部分(包括在图2的解释程序代码部分220中)。
解释程序216从通过预定的指令集描述的指令序列顺序读取指令,以解释和执行它们。在此,解释程序216由Java(注册商标)虚拟机构成,指令集是Java(注册商标)字节码。
利用解释程序环境独有的模型,标准API库和框架组217进一步抽象化RTOS 214所提供的各种已抽象过的计算资源,以对运行在RTOS 214上的程序提供执行环境。在此,由构成Java(注册商标)平台的标准类库组和OSGi的框架来实现。Java(注册商标)平台提供与RTOS 214等效的抽象化功能,例如线程管理,用于抽象化虚拟机的指令执行上下文;多线程机制,用于同时虚拟运行多个执行上下文,以执行并行处理;线程间通信,用于在线程之间交换消息,并使其同步;各种高度抽象后的存储器管理(例如,集合);定时器和时钟;例外管理;文件系统和网络访问;以及与外部输入/输出装置的接口等。OSGi框架在单个Java(注册商标)虚拟机上运行多个Java(注册商标)应用程序(服务)。它还提供应用程序的寿命周期的管理和在应用程序之间通信的功能。OSGi框架具有预装在其上的多个系统服务。关于所准备的系统服务,包括服务管理服务,用于在解释程序环境中添加、更新和删除新的应用程序;Applet(小程序)查看器服务,用于在图像处理装置的控制台上显示根据Applet接口执行的Java(注册商标)类,并运行它,以便由控制台18进行操作;以及HTTP服务,用于运行根据Servlet接口执行的Java(注册商标)类,作为可通过客户机的浏览器进行操作的Web应用程序。特别是,根据Applet接口执行的Java(注册商标)应用程序可以通过AWT的API间接连接到控制台驱动程序227。OSGi是开放服务网关(OpenService Gateway Initiative)的缩写,在这里表示基于OSGi规范。
作业控制库218对于依赖于控制API 204并在解释程序环境运行的程序,提供可以执行并控制图像处理作业的应用程序编程接口。
过滤器框架219与嵌入式应用程序203通信,因此,在执行作业时,它可以对在解释程序环境执行的过滤器程序所输出的图像处理装置1000的多个数据流进行干预。
利用以可由解释程序进行解释的解释程序语言描述的软件来实现解释程序代码部分220,该解释程序代码部分220包括构成解释程序环境的API库组、以及利用解释程序环境中的部分框架组运行的程序。对于跨越本机码部分201和解释程序代码部分220的软件,需要根据解释程序环境所规定的唯一框架和程序模型,对各空间之间的接口模块进行编码。在此,根据Java(注册商标)本机接口(JNI),执行边界部分的编程。
过滤器221是在解释程序环境中执行的程序。根据过滤器框架219的框架执行该过滤器221,以对要被嵌入式应用程序203处理的处理请求数据流进行处理。将协议堆栈223嵌入RTOS 214的框架,在由更低层的外部接口驱动程序224所控制的外部接口上执行发送层和其下层的协议。例如,对于网络接口,执行例如TCP/IP和UDP/IP的协议,通过RTOS 214对嵌入式应用程序203提供例如Barkley套接字(Socket)的应用程序编程的接口。例如,如果外部接口是USB,则执行例如1284.4的协议。
外部接口驱动程序224驱动用于对例如网络接口、IEEE1394、USB、RS232C和Centronics的各种接口提供连接的硬件。对于网络,通过驱动用于连接例如Ethernet(以太网,注册商标)的网络的网络接口硬件,实现物理层的协议。
渲染器驱动程序225驱动渲染器207。渲染器207是用于将显示列表355(图3)展开为中间图像数据流356的硬件。可以通过软件来实现渲染器207,所展开的数据流可以是最终图像数据流357(图3)。标记引擎(ME)驱动程序226驱动标记引擎,以在转印纸上形成图像。控制台驱动程序227对输出到图像处理装置1000的控制台18的显示器的输出、以及来自键和触摸屏的输入事件进行处理。
图3是示出在根据本实施例的控制器1600的软件模块中的基本数据流和每个模块中存在的数据流的示意图。利用相同的符号表示与图2所示模块相同的模块,而且省略其说明。
如果不通过过滤器221,则数据发送/接收模块202通过路径301,使从客户机接收的包括装置控制指示数据流351和绘图数据流352的处理请求数据流350流入嵌入式应用程序203。例如,通过任务间通信功能例如由RTOS 214所提供的消息队列来实现路径301。其它的数据传送也是相同的。
在客户机是位于通过LAN 2000的主机上的应用程序和驱动程序软件的情况下,客户机产生处理请求数据流350,并通过数据发送/接收模块202将其传送到嵌入式应用程序203。嵌入式应用程序203将处理请求数据流350分为装置控制指示数据流351和绘图数据流352,从而通过控制API 204分别将其传送到作业控制模块205。或者,应用程序203解释装置控制指示数据流351,并通过控制API 204对作业控制模块205指示客户机所请求的处理,以对其发送绘图数据流352。
对于通过图像处理装置的控制台18的客户机指令,嵌入式应用程序203产生装置控制指示数据流351,并通过控制API204将其传送到作业控制模块205。或者,根据客户机的请求,应用程序203通过控制API 204来指示作业控制模块205。通常,将装置的控制的说明部分称为JL(作业语言),其包括环境数据,用于指定与绘图数据的解释和展开有关的操作参数;用于打印输出的转印纸(transferpaper)的进给的指定;例如双面打印的打印模式的指定;排纸托盘的指定;分类(排序)的指定;以及例如订书和装订的整理的指定。绘图数据流以PDL记载,主要记载每页上的图。
作业控制模块205根据通过控制API 204的指令来控制装置。或者,模块205通过控制API 204来解释输入到作业控制模块205的装置控制指示数据流351,以执行该操作。根据与装置1000的控制有关的指令、或者装置控制指示数据流351的记载内容,通过控制API 204,作业控制模块205通过路径390来控制翻译器206、渲染器207、ME控制模块208、图像处理模块209以及数据管理模块210。关于打印作业,作业控制模块205通过翻译器206将绘图数据流352转换为显示列表355。通过渲染器207,将显示列表355转换为中间图像数据流356。进行调度,以通过图像处理模块209将中间图像数据流356转换为最终图像数据流357,以使最终图像数据流357流入ME控制模块208,并被打印。
作为另一个例子,对读取和发送由嵌入式应用程序203所提供的图像数据的操作进行说明。如果指示从控制台18读取并发送图像数据,则嵌入式应用程序203通过控制API 204,指示作业控制模块205读取并发送图像数据。通过嵌入式应用程序203经由控制API 204直接指示作业控制模块205,或者通过嵌入式应用程序203产生装置控制指示数据流351、并经由控制API 204将其传送到作业控制模块205,来执行该指令。作业控制模块205输入图像读取器19读取的图像数据,并将其保持到RAM 2内,以将其传送到图像处理模块209。进行调度,以将图像处理模块209产生的扫描图像数据流360传送到嵌入式应用程序203。嵌入式应用程序203将发送来的扫描图像数据流360转换为由控制台18指定的格式,以产生发送数据流359。并且应用程序203通过数据发送/接收模块202作为发送数据流359来发送该发送数据流359。或者,当由控制台18指定的目的地是内置的外部存储器10时,则通过控制API 204,嵌入式应用程序203指示作业控制模块205读取并存储图像数据。通过嵌入式应用程序203经由控制API 204直接指示作业控制模块205,或者通过嵌入式应用程序203产生装置控制指示数据流351、并经由控制API 204将其传送到作业控制模块205,来执行该指令。作业控制模块205通过路径390输入来自图像读取器19的图像数据,并将其保持在RAM 2内,以将其传送到图像处理模块209。进行调度,以通过数据管理模块210,将由此产生的扫描图像数据流360存储到外部存储器10。
在本机码部分201(图2)中实现所有上述处理。
图4是用于说明根据该实施例在控制器1600的软件模块中的基本数据流和过滤时的数据流的示意图。模块的数据流与图3相同,利用相同的符号表示与上述附图中相同的部分。
在对数据流进行过滤的情况下,数据发送/接收模块202使处理过的数据流通过路径306流入外部层212。例如,路径306是通过任务间通信功能例如由RTOS 214所提供的消息队列来传送的。其它的数据传送也是可能的。外部层212特别是在层I/F 211中,将以下数据流传送到解释程序环境215处理请求数据流350,其基本上是通过LAN 2000等从图像处理装置1000的外部接收到的数据流;在图像处理装置1000中对处理请求数据流350进行分割而获得的装置控制指示数据流351和绘图数据流352;由嵌入式应用程序转换和产生的发送数据流359;以及最终由数据发送/接收模块202发送的发送数据流358。这些数据流可以是数据管理模块210从外部存储器10获取的数据流。
外部层212使接收到的数据流通过路径307流入过滤器框架219。过滤器框架219的运行时间模块管理在解释程序环境215中执行的过滤器程序组221。过滤器框架219使数据流通过路径308流入过滤器221。通过路径308,例如,利用解释程序环境215提供的线程间通信功能传送它们。以下在解释程序环境215中数据的交换是相同的。在设置有多个过滤器221的情况下,数据流在其各自的过滤器中流动,并通过解释程序环境215所提供的线程间通信功能来传送它们。运行时间模块是执行程序所需的软件模块。
过滤器221对作为输入所接收的数据流进行预定处理,然后将其输出。过滤器221输出的数据流通过路径309流入过滤器框架219。通过路径310,过滤器框架219将从过滤器221接收的数据流传送到外部层212。因此,外部层212使该数据流通过路径311流入嵌入式应用程序203。或者,还可以具有这样的结构,即,外部层212使该数据流通过路径370流入数据发送/接收模块202,从而使该数据流通过前述的路径301流入嵌入式应用程序203。
控制路径312和372是根据过滤器框架219的状态,控制从数据发送/接收模块202到嵌入式应用程序203的数据流的路径。在过滤器框架219管理的过滤器221处于有效状态的情况下,前述路径306和307有效,以使过滤器221执行预处理。在过滤器框架219没有设置有效的过滤器221的情况下,路径301有效,以使数据流直接从数据发送/接收模块202流入嵌入式应用程序203。在这种情况下,可以避免因为过滤器框架219的干预而产生的开销,从而发挥处于未通过过滤器221进行定制的标准状态下的图像处理装置1000的数据处理性能。
在嵌入式应用程序203对数据流进行过滤的情况下,数据流通过路径314流入外部层212。例如,路径314是通过任务间通信功能例如由RTOS 214所提供的消息队列来传送的。其它的数据传送也是相同的。如前所述,外部层212特别是在层I/F 211中将以下数据流传送到解释程序环境215处理请求数据流350,其基本上是通过LAN 2000从图像处理装置1000的外部接收到的数据流;在图像处理装置1000中对处理请求数据流350进行分割而获得的装置控制指示数据流351和绘图数据流352;由嵌入式应用程序转换和产生的发送数据流359;以及最终由数据发送/接收模块202发送的发送数据流358。这些数据流可以是数据管理模块210从外部存储器10获取的数据流。外部层212使接收到的数据流通过路径307流入过滤器框架219。过滤器框架219的运行时间模块管理在解释程序环境215中执行的过滤器程序组221。过滤器框架219使数据流通过路径308流入过滤器221。路径308例如由解释程序环境215提供的线程间通信功能来实现。以下在解释程序环境215中数据的交换是相同的。在设置有多个过滤器221的情况下,数据流在其各自的过滤器中流动,并通过解释程序环境215所提供的线程间通信功能来传送它们。
过滤器221对接收到的数据流进行预定处理,然后将其输出。过滤器221输出的数据流通过路径309流入过滤器框架219。通过路径310,过滤器框架219将从过滤器221接收的数据流传送到外部层212。外部层212使该数据流通过路径315流入作业控制模块205。还可以具有这样的结构,即,外部层212使该数据流通过路径371流入嵌入式应用程序203,从而使该数据流通过前述的路径313流入作业控制模块205。
控制路径316和372是根据过滤器框架219的状态,控制从嵌入式应用程序203到作业控制模块205的数据流的路径。在过滤器框架219管理的过滤器221处于有效状态的情况下,路径314和307有效,以使过滤器221执行预处理。在过滤器框架219没有设置有效的过滤器221的情况下,路径313有效,以使数据流直接流入作业控制模块205。在这种情况下,可以避免因为过滤器框架219的干预而产生的开销,从而发挥处于未通过过滤器221进行定制的标准状态下的图像处理装置1000的数据处理性能。
接着,将对作业控制模块205对数据流进行过滤的情况进行说明。在这种情况下,数据流通过路径318流入内部层I/F213。例如,路径318是通过任务间通信功能例如由RTOS 214所提供的消息队列来传送的。其它的数据传送也是相同的。内部层I/F 213特别是在层I/F 211中将以下数据流传送到解释程序环境215由图像处理装置1000产生的数据流,例如通过翻译器206对绘图数据流352进行处理而产生的显示列表355;通过渲染器207对显示列表355进行处理而产生的中间图像数据流356;通过图像处理模块209对中间图像数据流356进行处理而产生的最终图像数据流357;从图像读取器19读取的扫描图像数据流360。这些数据流可以是数据管理模块210从外部存储器10获取的数据流。内部层I/F 213使通过路径318接收到的数据流流入过滤器框架219。过滤器框架219的运行时间模块管理在解释程序环境215执行的过滤器221。解释程序代码部分220的过滤处理与上述处理相同,因而省略其说明。
过滤器框架219将从过滤器221接收到的数据流通过路径310传送到内部层I/F 213。通过路径319,内部层I/F 213使该数据流流入作业控制模块205。还可以具有这样的配置,即,内部层I/F 213直接将其传送到翻译器206、渲染器207、图像处理模块209、ME控制模块208、以及数据管理模块210。
控制路径320和372是根据过滤器框架219的状态来控制数据流的路径。在过滤器框架219管理的过滤器221处于有效状态的情况下,路径318和307有效,以使过滤器221执行预处理。在过滤器框架219没有设置有效的过滤器221的情况下,路径317有效,以使数据流直接流入由作业控制模块205调度的下一个模块。在这种情况下,可以避免因为过滤器框架219的干预而产生的开销,从而发挥处于未通过过滤器221进行定制的标准状态下的图像处理装置的数据处理性能。
图5是用于说明在实施例的解释程序环境215中构建的过滤器框架219的类的示意图。
过滤器管理器(FilterManager)类401是用于实现过滤器框架219的运行时间环境的对象的类。过滤器管理器类401具有一个连接器(connector)类405对象作为组件。它还具有顺序列表,该顺序列表包括对多个(n)过滤器抽象(abstract)类402对象的参照和对多个{(n)-1}管道(pipe)类406对象的参照。它还具有已安装过滤器(installedFilter)的属性410,该属性410用于在过滤器框架219的运行时间中管理多个已安装过滤器类402的具体类。
过滤器抽象类402是用于抽象各种过滤器类的抽象类。过滤器抽象类402具有“name(名称)”属性,用于指出过滤器的名称。它还具有对继承了输入流(InputStream)抽象类403的类的对象的参照,作为输入属性。它还具有对继承了输出流(OutputStream)抽象类404的类的对象的参照,以作为输出属性。过滤器抽象类402的具体(concrete)类具有可运行接口411,还具有“run(运行)”方法。当过滤器管理器类401的对象产生被管理的过滤器抽象类402的各种实例、并为数据流的过滤处理而对其进行配置时,产生对应于所配置的每个过滤器对象的线程,在并行运行的线程上下文中执行过滤器对象的运行方法(更具体地,将过滤器对象传送到构造器(constructor)的参数,以产生Java(注册商标).lang.Thread对象,并启动(start)它)。因此,每个单独的过滤器对象自主地运行。
输入流抽象类403是数据流的输入源的抽象类,具有当每次调用时能够顺序读取数据的读取(read)方法。
输出流抽象类404是数据流的输出目的地的抽象类,具有当每次调用时能够顺序写入数据的写入(write)方法。
连接器类405是表示用于在解释程序环境与本机码的对象之间交换数据流的接点的对象的类。连接器类405具有连接器输入流(ConnectorInputStream)类412的对象作为组件,该连接器输入流类412是继承输入流抽象类403的具体类,能利用其读取方法来顺序读取从本机码部分201的数据发送/接收模块202流出的数据流306。连接器类405还具有连接器输出流(ConnectorOutputStream)类413的对象作为组件,该连接器输出流类413继承输出流抽象类404,使利用其写入方法顺序写入的数据流作为数据流流入本机码部分201的作业控制模块205。
管道(pipe)类406是当对数据流进行多个过滤处理时,用于连接过滤器抽象类402的一系列对象的对象的类。管道类406具有继承输出流抽象类404的管道输出流(PipedOutputStream)类414和继承输入流抽象类403的管道输入流(PipedInputStream)类415的各自的对象,以作为组件。将作为管道对象的管道输出流对象414和管道输入流对象415连接起来,以实现线程间的通信。更具体地说,由某个过滤器对象通过写入方法依次写入某个管道对象的管道输出流对象的数据流,可以由另一个过滤器对象通过读取方法从该管道对象的管道输入流对象来依次读取。
图6A和6B示出在解释程序环境215中构建的由过滤器框架219所管理的对象的视图,其中,图6A示出当一个过滤器处于有效状态时,由过滤器框架219的运行时间所管理的对象之间的关系。
图6A和6B示出在解释程序环境215中构建的由过滤器框架219所管理的对象的视图,其中,图6A示出当一个过滤器处于有效状态时,由过滤器框架219的运行时间所管理的对象之间的关系。(这段上部分也有,注意合一块的时候别重了!)连接器对象501是连接器类405的对象。过滤器对象502是被具体化后的过滤器抽象类402的具体类的对象。过滤器502的输入属性具有连接器对象501的连接器输入流对象的参照。输出属性具有连接器对象501的连接器输出流对象的属性。过滤器对象502对从由“输入(input)”指向的连接器输入流对象所读取的数据流进行过滤处理。它将经过这样过滤处理的数据流写入由“输出(output)”指向的连接器输出流对象。
如上所述,打印数据流在对象中传送(图6A中的宽箭头)。
图6B示出当两个过滤器处于有效状态时,由过滤器框架219的运行时间所管理的对象之间的关系。
过滤器1对象503是被具体化的过滤器抽象类402的具体类的对象。过滤器1对象503的输入属性具有连接器对象501的连接器输入流对象的参照。过滤器1对象503对从由输入指向的连接器输入流对象所读取的数据流进行过滤处理。过滤器1对象503的输出属性具有管道对象504的管道输出流对象的参照,过滤器1对象503将经过这样过滤处理的数据流写入由输出所指向的管道输出流对象。
管道对象504是管道类406(日文为405)的对象。管道对象504具有处于连接状态的管道输出流对象和管道输入流对象。通过管道对象504的管道输入流对象的读取方法的调用,可以将通过管道对象504的管道输出流对象的写入方法的调用而传送的数据流作为数据流进行读取。
过滤器2对象505是被具体化的过滤器抽象类402的具体类的对象。其输入属性具有管道对象504的管道输入流的参照。它对从由输入指向的管道对象504所读取的数据流进行过滤处理。过滤器2对象505的输出属性具有连接器对象501的连接器输出流的参照,它将已经进行了过滤处理的数据流写入由输出指向的连接器对象501的连接器输出流。
如上所述,打印数据流在对象中传送(图6B中的宽箭头)。还可以设置更多的过滤器对象进行数据流处理,并在它们之间同样设置管道对象504。
图7A~7C示出了用于说明根据该实施例操作过滤器框架219的用户界面的例子的示意图。通过包括在标准库和框架217(图1)内的HTTP服务,将用于操作过滤器框架的用户界面实现为Web应用程序(Servlet),并且可从运行在客户机上的Web浏览器来操作。或者,可以将其实现为从图像处理装置1000的控制台18操作的Applet型服务。
图7A示出了用于在该实施例的图像处理装置1000的过滤器框架219上追加安装新的过滤器221的客户机的用户界面。该过滤器安装屏幕601具有文件名输入字段602、参照按钮603和安装按钮604。
用户在文件名输入字段602输入事先存储在客户计算机的文件系统中的、要安装的过滤器抽象类402的类文件的文件路径。
如果用户点击客户计算机上的参照按钮603,则打开由客户计算机的Web浏览器所提供的文件选择对话框,以在客户计算机的文件系统中浏览,并选择要安装的过滤器抽象类402的类文件。由用户通过文件选择对话框选择的文件的文件路径自动输入到文件名输入字段602。
如果用户接着点击安装按钮604,则客户计算机的Web浏览器将输入到文件名输入字段602的文件路径的类文件发送到在图像处理装置1000中待机的、用于安装新的过滤器的Web应用程序。这样接收接收到类文件的Web应用程序将所接收的类文件存储到图像处理装置1000的非易失性存储器3中。它还将类文件动态加载到解释程序环境215中,以产生对象实例。此外,它将所产生的过滤器对象设置在由过滤器框架运行时间所管理的有效过滤器序列列表的最下游(如果在过滤器序列内已经存在有效过滤器对象,则产生新的管道对象,以连接新的过滤器对象)。
在利用Web应用程序实现这种用户界面的情况下,在将过滤器实现类上载到图像处理装置1000时,使用基于由RFC规定的HTML表单(form)的文件上载的规范。因此,在这种情况下,客户计算机的Web浏览器显示文件名输入字段602和参照按钮603,安装按钮604与表单的提交(submit)相对应。
在利用Applet型服务实现用户界面的情况下,屏幕601显示在图像处理装置1000的控制台18的显示器上。对于在文件名输入字段602指定的文件,当图像处理装置1000具有可移动存储介质时,能指定该可移动存储介质上的文件路径。或者,能通过URL等指定共享文件,该共享文件可使用文件传输协议例如HTTP和FTP等、通过网络从图像处理装置读取和访问。
图7B示出了用于说明用于布置安装在根据该实施例的图像处理装置1000的过滤器框架219上的过滤器的用户界面的示意图。
在该过滤器布置屏幕605上,表606显示在过滤器框架219的运行时间中安装的过滤器组的列表。表606的每行对应于每个所安装的过滤器。表606的“选择”列具有排列的复选框,其中,所选中的行的过滤器被选择作为后述操作的对象。表606的“顺序”列具有指出过滤器处于无效状态的“无效”。在处于有效状态的情况下,显示从该数据流处理的上游到下游以升序给出的编号。此外,表606的“名称”列显示过滤器对象的名称属性所描述的过滤器名称。
附图标记607~611表示用于指定对所选择的过滤器的操作的按钮,并指定对在表606的选择列所选中的行的过滤器的操作。如果用户点击详细显示图(日文为按钮)607,则显示与在表606中选择的过滤器有关的详细信息。详细信息可以包括过滤器名称、版本、说明、类名称、安装来源的类文件名(文件路径或URL)、以及安装的日期和时间。
如果点击了向上按钮608,则将在过滤器列中所选择的过滤器的顺序向数据流处理中的上游仅移动一步。如果点击了向下按钮609,则将在过滤器列中所选择的过滤器的顺序向数据流处理中的下游仅移动一步。如果点击了有效/无效切换按钮610,则使所选择的处于有效状态的过滤器变为无效状态;如果处于无效状态,则将其变为有效状态。被无效的过滤器对象被删除。然而,过滤器类402(图5)仍被安装,且处于过滤器框架运行时间的管理下。如果点击了卸载按钮611,则从图像处理装置1000的解释程序环境中删除所选择的过滤器的类文件。
图7C示出了用户界面的例子的示意图,该用户界面用于选择过滤器的对象数据流。
在显示过滤器安装屏幕601和过滤器布置屏幕605之前,可以显示对象数据流选择屏幕612,使用户进行选择,以判定用户希望安装和设置的、与过滤处理有关的数据流。
列表613是用于选择以列表格式存在于图像处理装置1000中的数据流的用户界面。字段614显示从列表613选择的数据流。决定按钮615是用于决定安装和管理在字段614中指定的数据流的过滤器的按钮。如果按下了按钮615,则显示相关数据流的过滤器安装屏幕601和过滤器布置屏幕605。
关于用于选择要进行过滤处理的数据流的其它方法,还可以对过滤器抽象类402提供过滤器属性,并在安装或管理过滤器时参考该过滤器属性,以指定过滤的对象数据流。
图8是示出根据实施例的过滤处理的主要过程的流程图。
利用具体过滤器类的运行方法来实现该过程。过滤器框架219产生有效过滤器类的对象,并设置其输入流和输出流,然后分配线程(线程对象),以执行该对象的运行方法。由此,在由过滤器框架219所管理的每个过滤器对象中,该过程分别独立地以并行处理来执行。
首先,在步骤S1,执行必要的预处理。该预处理包括由过滤器221内部使用的属性的初始化;对用来进行模式匹配的模式说明的预处理;和通过修饰(modification)类(Java(注册商标).io.FilterInputStream或Java(注册商标).io.FilterOutputStream的具体类)对流进行分组加密(wrap)的处理,该修饰类用于添加简化输入流和输出流的使用的功能(例如,使得可预读输入流,扩展缓存以有效使用系统资源)。接着,在步骤S2,从被设置在输入属性中的输入流中读取模式匹配处理所需数量的数据。在步骤S3,执行模式匹配,以从所输入的数据流中发现要由该过滤器操作的数据模式的出现。要由该过滤器操作的数据模式可以是固定的数据列本身,或者以形式语言,例如正则表达式描述。关于从数据流中发现与模式描述相匹配的数据的出现,有各种广为人知的实现方式。例如,众所周知的grep、sed、AWK和Perl。
高效执行模式匹配的算法已经得到了广泛的研究。对于固定模式描述,有以下已知的方法,例如首先将模式描述与部分数据流各自的哈希函数进行比较,以仅当其哈希值匹配时判定完全匹配的方法;Knuth-Morris-Pratt方法;以及Boyer-Moore方法。对于正则表达式的模式描述,有以例如有限自动化(finite automation)的形式语言理论等为背景的各种已知算法。较近期的Java(注册商标)平台将用于处理正则表达式的类库(Java(注册商标).util.regex)作为标准。例如,在状态根据数据流的上游的模式发生变化、且必须根据变化后的状态来改变下游的模式的解释,并且所需的模式匹配非常复杂以致以正则表达式的描述很困难的情况下,可以利用Java(注册商标)程序编写用于评估模式本身的特性的算法。因此,无论模式匹配如何复杂,均可直接实现模式匹配。
接着,在步骤S4,判定模式匹配的结果。当在数据流中发现与模式说明匹配的数据,则进入步骤S5。否则,进入步骤S6。在步骤S5,根据该过滤器的目标,对与模式说明匹配的数据流的部分数据列进行操作,以利用其结果进行替换。接着,在步骤S6,将处理过的部分数据列(即,被监视的模式未出现的数据列,或对包括被监视的模式进行了步骤S5的处理后的数据列)写入输出流。在步骤S7,判定输入流是否已结束。当终止时,结束。否则,返回步骤S2,并重复该程序。
图9是示出根据实施例的过滤过程的另一个例子的流程图。
利用具体过滤器类的运行方法执行该过程。过滤器框架219产生有效过滤器类的对象,并设置其输入流和输出流,然后分配线程(线程对象),以执行该对象的运行方法。由此,在由过滤器框架219所管理的每个过滤器对象中,该过程分别独立地以并行处理来执行。
首先,在步骤S11,执行必要的预处理。该预处理包括由过滤器内部使用的属性的初始化;对用来进行模式匹配的模式说明的预处理;和通过修饰类(Java(注册商标).io.FilterInputStream或Java(注册商标).io.FilterOutputStream的具体类)对流进行分组加密的处理,该修饰类用于添加简化输入流和输出流的使用的功能(例如,使输入流可预读,扩展缓存以有效使用系统资源)。接着,在步骤S12,产生新的部分数据流。接着,在步骤S13,从被设置在输入属性中的输入流中读取预定量的数据。在步骤S14,将在步骤S12产生的部分数据列添加到所读取的数据流。接着,在步骤S15,将处理过的部分数据列写入输出流。在步骤S16,将存在于输入流中的其余数据写入输出流。
图10是用于说明根据实施例的处理请求数据流的示意图。
附图标记801表示处理请求数据流。通过产生处理请求数据流801、并将其发送到图像处理装置1000,客户机产生对图像处理装置1000的处理请求。通过使图像处理装置1000处理处理请求数据流801,来执行该请求的处理。可以将处理请求数据流801粗略划分为装置控制指示数据流802(相当于图3所示的附图标记351)和绘图数据流803(相当于图3所示的附图标记352)。
装置控制指示数据流部分802具有向图像处理装置1000的、与除绘图之外的处理请求有关的指示。更具体地说,通常已知给出以下由图像处理装置1000的功能所规定的指示。第一行上的“作业类型”属性可以取表示图像处理装置1000的各种作业类型值,例如“打印”、“安全打印”以及“获取图像”。在处理请求给出非绘图指示例如“获取图像”的情况下,绘图数据流803通常不包括在这种处理请求数据流801内。第二行上的“份数”属性表示要产生的打印内容的份数。第三行上的“页面布局”属性表示页面布局规定,包括在一张纸上布置多页的规定,例如“1页/张”、“2页/张”或“4页/张”;或者将一页放大并将其分到多张纸上进行打印的规定,例如“海报(2×2)”或“海报(3×3)”。第四行上的“布置顺序”属性可以取表示在页面布局时各面的布置规定的值,例如“左上到向右”、“左上到向下”、“右上到向左”以及“右上到向下”。第五行上的“打印方法”属性可以取表示打印方法的值,例如“单面打印”、“双面打印”以及“装订打印”。第六行上的“装订方向”可以取表示在整理处理时装订多张纸的方向的值,例如“长边装订(左侧)”、“长边装订(右侧)”、“短边装订(顶部)”以及“短边装订(底部)”。第七行上的“排纸方法”属性可以取表示整理方法的值,例如“不指定”、“分类”、“装订”以及“冲孔”。第八行上的“进纸”属性可以取表示作为成像对象的纸(转印纸)的进纸规定的值,例如“自动”、“手动托盘”、“盒”以及“板”或者“普通纸”、“厚纸”、“彩色纸”和“OHP”。在处理请求内容是绘图指示的情况下,使用第九行上的“使用PDL”属性,该属性表示用于绘图数据流的PDL类型。
在处理请求内容是绘图指示的情况下,使用绘图数据流部分803,通常利用PDL构成该绘图数据流。
图11是用于说明根据实施例由过滤器对绘图数据流803执行的处理的示意图。
兼容过滤器901表示绘图数据流803的过滤器类的对象,并执行用来解决在输入数据流中出现的绘图数据流803的兼容性问题的处理,以将其写入输出数据流。关于绘图数据流803的兼容性问题,这里将说明由于在由各销售商实现的图像处理装置中对作为代表PDL之一的Adobe的PostScript规范的解释的差别所带来的问题及其解决方案的例子。
PostScript的“setpagedevice”中的“/DeferredMediaSelection”为真的情况下,某个销售商的图像处理装置在控制台18上显示作为自定义纸张来处理的纸张要求。如果为假,则在解释时,通过在指定尺寸的±5的范围内搜索固定格式的纸张、并在不存在固定格式的纸时遵从PostScript的策略来实现。在另一个销售商的图像处理装置中,在“/DeferredMediaSelection”为真的情况下,在指定尺寸本身(没有范围)内搜索固定格式的纸,如果不存在固定格式的纸,则作为自定义纸张来处理。在为假的情况下,通过在±5的范围内搜索固定格式的纸、并在不存在该固定格式的纸时遵从PostScript的策略来实现。这里,另一销售商所提供的系统的基础结构环境是基于后一解释行为的假设而构建的。在这种情况下,前一图像处理装置将打印请求作为自定义纸张进行处理,因此,在控制台上显示“无纸”,不进行打印。因此,要求前一图像处理装置的销售商尽可能廉价且迅速地解决兼容性问题。通过将打印请求数据流中出现的setpagedevice的“/DeferredMediaSelection”参数从真变换为假,能够至少暂时解决这一要求。兼容过滤器901是用于解决这一问题的过滤器对象,并对来自输入数据流的、“/DeferredMediaSelection”为真的setpagedevice执行模式匹配,如果匹配,则输出置换为假(false)的发送数据流。
附图标记902表示以PostScript描述的打印数据,作为发送到过滤器的输入数据的例子。在打印数据的第二行出现与上述模式匹配的部分数据。附图标记903表示由过滤器对输入数据流901进行过滤处理后输出的输出数据流的例子,其表示过滤处理后的PostScript的打印数据。在发送数据流903中,字符串“真(true)”变为第二行数据中的“假(false)”。
图12是用于说明根据实施例由过滤器对绘图数据流执行的过滤处理的示意图。
上述例子采用了利用过滤器进行模式匹配并替换数据流,从而解决由于图像处理装置间规定的不同而导致的兼容性问题的技术。为了紧急避免在图像处理装置的实现中的故障(例如,固件缺陷),也可以采用相同的技术。例如,考虑某图像处理装置的某版本的发布有缺陷的情况,其中缺陷是,除非由LIPS(注册商标)语言的“图像区域安全命令(VDM)”指定的图像宽度是8的倍数,否则会出现绘图故障。
附图标记1001表示故障避免过滤器,从LIPS(注册商标)数据流1002中发现用于表示故障的模式(VDM的图像宽度不是8的倍数,而是“225”),并将其转换为由附图标记1003所表示的数据流,以实现相同的功能,而不实际发生该故障。这里,将VDM的图像宽度变换为“232”,“232”是8的倍数,且比“225”大。
图13是用于说明根据实施例由优化过滤器对绘图数据流执行的处理的示意图。
优化过滤器1101表示用于绘图数据流的优化过滤器类的对象,该优化过滤器1101读取输入流,以发现在数据流中出现的冗余描述的PDL数据,从而将其转换为同样功能的更有效率的数据,然后将其写入发送数据流。因为客户机的打印请求系统和应用程序侧的便利性,由图像处理装置的驱动程序产生的PDL数据流本质上倾向于包括例如重复的冗余处理的模式。这种冗余描述模式被视为一种“习惯用语(idiom)”,以利用更高效的等价表达式对其进行替换。
附图标记1002表示输入到过滤器1101的输入数据流的例子。如附图标记1103所表示的那样,描述输入数据流1102,以重复涂抹3个正方形,从而涂抹横宽的矩形。附图标记1104表示来自优化过滤器1101的发送数据流的例子。在此,过滤器1101检测冗余的重复模式,并将其重新写为一个与其等价的、涂抹过的横宽矩形1105。
图14是用于说明根据实施例由功能附加过滤器对装置控制指示数据流执行的处理的示意图。
附图标记1201表示用于装置控制指示数据流351的功能增强过滤器类的对象的例子。功能增强过滤器1201读取输入数据流1202,并根据该输入数据流执行处理,例如用于添加新功能的数据变换和数据添加,从而将其写入发送数据流。作为功能增强的例子,将说明当客户的系统具有专用PDL驱动程序,该专用PDL驱动程序尚未准备好处理新图像处理装置的新能力例如双面打印和各种整理时,通过在不改变驱动程序的情况下处理其过滤器,来有效利用图像处理装置1000的新功能。
功能增强过滤器1201具有作为其属性的装置控制指示设置,用来有效发挥在其上过滤器1201运行的图像处理装置的新能力。过滤器对象的属性值也存储到装置的非易失性存储器3中,从而即使在装置断电然后重新启动时,仍可以存储对象的状态。更具体地说,使用前述图像处理装置的功能进行规定。
输入数据流1202是要输入到打印数据流的功能增强过滤器1201的数据流,且是装置控制指示数据流351,其中,在图像处理装置中分割由图像处理装置1000接收的由传统应用程序或图像处理装置的驱动程序所产生的处理请求数据流。
输出数据流1203表示被装置控制指示数据流的功能增强过滤器1201依次处理、然后输出的数据流。除了存在于输入数据中的简单处理请求数据流,还插入有用来完全使用图像处理装置1000的新功能的各种打印作业说明数据。打印作业说明可以表示嵌套结构,其中,在作业单位、处理单位例如使多个文档成为整体的整理、以及单独的文档单位的每个分层结构中,可以指定像功能增强过滤器1201的属性那样的各种属性。
在输出数据流1203中,第一行中的“SetJob”表示作业单位的设置的开始。第二行中的“作业设置数据”表示在该位置存在的各种作业单位设置数据。第三行中的“BinderStart”表示使多个文档成为整体的单位的开始。第四行中的“SetBinder”表示对使多个文档成为整体的单位进行设置的开始。第五行中的“文档束设置数据”表示在该位置存在使多个文档成为整体的单位的设置数据。第六行中的“DocumentStart”表示文档的开始。第七行中的“SetDocument”表示文档单位的设置的开始。第八行中的“文档设置数据”表示在该位置存在使文档作为单位的设置数据。
图15示出了用于操作功能增强过滤器1201的用户界面的例子的示意图。
通过包括在标准库和框架217内的HTTP服务,用于操作过滤器的用户界面由Web应用程序(Servlet)来实现,并可从运行在客户机上的Web浏览器来操作。或者,可以利用可从图像处理装置1000的控制台18进行操作的Applet型服务来实现。
附图标记1301表示功能增强过滤器1201的基本操作屏幕,该屏幕可用于执行检验和更改过滤器对象属性的操作。附图标记1302用于操作作业类型属性。附图标记1312用于操作份数属性。附图标记1303用于设置页面布局属性。附图标记1304用于设置布置顺序属性。附图标记1305用于设置打印方法属性。附图标记1306用于设置装订方向属性。附图标记1307用于设置排纸方法属性。附图标记1308用于设置进纸部分。帮助按钮1309用于显示如下内容的说明如何使用该过滤器,该过滤器的功能,以及属性的意义。在使各种属性返回缺省时,使用“返回标准”按钮1310。“应用”按钮1311用于应用属性值改变操作,并将新值实际设置为过滤器对象的属性。附图标记1313表示预览图标,其根据属性值的状态来显示某些重要属性的示意图,以便在屏幕上检验各种属性。
如上所述,第一实施例具有下面的效果。
(1)使用固件静态实现了打印请求接收服务器,该打印请求接收服务器具有接口,该接口用于将由接收服务器接收到的数据流传送到在嵌入式Java(注册商标)环境中实现的、能动态加载和动态链接的过滤器软件。因此,可以清楚地将稳定部分与动态部分分离,以防止低效率的处理,例如将装置的全部固件替换为动态、冗余的软件;或者使其在Java(注册商标)环境侧实现而双重具有。这样实现的过滤器框架在成本和开发负担方面是合理的。此外,容易对已交付的装置动态添加或替换过滤器,从而以更低的支持成本、更迅速地满足客户的要求。
(2)由于在更高级的Java(注册商标)环境中实现过滤器,容易实现高级模式匹配算法,从而有效实现了在嵌入式系统中通常难以实现的动态存储器管理。将其设计为以高级模块实现的高度可重复使用的软件,因而容易采用基于面向对象的样式(paradigm)的设计模式。因此,能实现高生产率的过滤器部分。
(3)通过该过滤器,可以利用模式匹配从输入数据流中发现在与其它实现在兼容性方面存在问题的PDL数据,以适当改变PDL数据。这样,以低成本解决了兼容性问题和故障。特别是,仅通过对图像处理装置侧进行处理就可以实现它,而不对客户环境设置的系统、应用程序以及图像处理装置的驱动程序产生影响。在未配置过滤器的情况下,因为该结构,可以避免由于过滤器框架的干预而产生的开销。因此,即使未配置过滤器,仍能维持图像处理装置的原始数据处理性能。
(4)利用在Java(注册商标)环境可柔性扩充的过滤器,可以将冗余的说明模式视为一种“习惯用语”,以便利用更高效的等价表达式来替换它。因此,可以提高打印处理性能,而不对PDL处理系统的主要部分产生影响。由于仅对图像处理装置侧进行优化处理,所以不需要变换客户环境的系统、应用程序、以及图像处理装置的驱动程序。过滤器具有高生产率,且包括安装在内的维护方便,因此,可以根据每个单独的用户的使用方式进行优化。
(5)可以将有效发挥新功能所需的数据添加到在Java(注册商标)环境中可柔性扩充的过滤器中,以便即使在将其与未准备好执行图像处理装置的新功能的客户环境的系统、应用程序和图像处理装置的驱动程序组合在一起的情况下,仍可完全使用该新功能。
(6)过滤器具有用户界面,该用户界面作为在Java(注册商标)环境下的固件的软件平台的另一层,用来操作运行在固件上的过滤器的附加功能的设置。因此,还能提供支持每个单独客户的使用方式的功能增强。
(7)可以对包括与装置控制有关的指令和命令的装置控制数据流部分、以及包括与例如PDL的绘图有关的指令和命令的绘图数据流部分中的每个进行最优过滤处理。
第二实施例图16是用于说明根据本发明第二实施例的发送数据流1401的示意图。与第二实施例有关的硬件结构和软件结构与上述图1~图4所示的相同,因而省略其说明。
图像处理装置1000根据来自客户机的处理请求将图像数据等发送到由客户机指定的目的地。在这种情况下,图像处理装置1000产生发送数据流1401,并通过数据发送/接收模块202发送该数据流。可将发送数据流1401粗略划分为其上列出了发送数据流的作业类型的数据流部分1402和图像数据流1403。数据流部分1402具有除在此描述的图像数据本身之外的信息。图像处理装置1000的功能规定了数据流部分1402的格式。当进行数据发送处理时,通过作业控制模块205或嵌入式应用程序203将数据流部分1402添加到图像数据,并通过数据发送/接收模块202将其作为发送数据流进行发送。通过使图像处理模块209对从图像读取器19输入的扫描图像数据流360(图3)进行处理,产生图像数据流部分1403。在此,如上所述,可以对发送数据流1401、数据流部分1402、以及图像数据流1403中的每个进行过滤处理。
根据上述第二实施例,可以对存在于图像处理装置中的扫描图像数据流360、图像数据流、以及发送数据流359中的每个进行最优过滤处理。
其它实施例关于存在于图像处理装置中、除上述数据流之外的数据流,包括通过PDL处理而产生的显示列表355;在图像处理装置上最终产生的最终图像数据流357;以及为了产生最终图像数据流357而产生的中间图像数据流356等。它们具有由图像处理装置的功能所规定的它们各自的格式。可以以与上述结构相同的结构对每个数据流进行最优过滤处理。
还可以配置功能增强过滤器,以在除了打印数据流中的控制数据之外的打印对象的字符串数据中,发现指定字符串模式的出现,当与指定字符串模式匹配时,产生与该字符串等价的控制数据,以代替或插入它。在这种情况下,例如,当客户通过应用程序例如字处理器来输入指定字符串作为文本、且通过图像处理装置的普通驱动程序打印它时,在图像处理装置侧的过滤器中,可以例如将指定字符串变换为例如用来绘制与之对应的图像(标识、标记、或水印)的矢量绘图指令的指令序列。
在上面的实施例中,Java(注册商标)的虚拟机环境用作固件内部的解释程序环境。然而,本发明并不局限于此。即使在通过将例如另一脚本语言的解释程序环境嵌入到固件来进行配置的情况下,仍能具有例如动态过滤器添加和固件部分的分离的同样的效果。
存在很多其它能高效率地开发的例如面向对象等的解释程序环境,这些解释程序环境可用来获得与过滤器生产率等相同的效果。特别是,例如sed、AWK、和Perl的选择项也适用于基于模式匹配的数据流的处理。
其它实施例以上详细说明了本发明的实施例。本发明适用于由多个装置构成的系统,也适用于由一个装置构成的装置。
本发明包括这样的情况将用于实现上述实施例的功能的软件程序直接或从远程提供给系统或装置,以便该系统或装置的计算机读取并执行所提供的程序代码,从而实现本发明。在这种情况下,如果具有该程序的功能,并非必须是程序的形式。因此,为了在计算机上实现本发明的功能处理,也可以通过安装在计算机上的程序代码本身来实现本发明。更具体地说,本发明包括用于实现本发明的功能处理的计算机程序本身。在这种情况下,如果具有该程序的功能,程序可以是任意形式,例如目标代码、由解释程序实现的程序、或者提供给OS的脚本数据。
用于提供程序的存储介质可以是软盘(floppy,注册商标)、硬盘、光盘、磁光盘、MO、CD-ROM、CD-R、CD-RW、磁带、非易失性存储卡、ROM、或者DVD(DVD-ROM、DVD-R)。关于提供程序的其它方法,可以这样来提供使用客户计算机的浏览器连接到因特网上的主页,从主页上将本发明的计算机程序本身或包括自动安装功能的压缩文件下载到例如硬盘的存储介质上。还可以通过将构成本发明的程序的程序代码分成多个文件,然后从不同主页下载各文件来实现本发明。更具体地说,本发明的权利要求书包括用于将用来在计算机上实现本发明的功能处理的程序文件下载到多个用户的WWW服务器。
还可以对本发明的程序进行加密,然后将其存储到例如CD-ROM的存储介质上,并分发给用户,通过因特网将用来解密的密钥信息从主页下载到满足预定条件的用户,利用该密钥信息执行被加密的程序,以将其安装到计算机上,并在计算机上执行。
通过使计算机执行所读取的程序,可以实现上述实施例的功能。通过由运行在计算机上的OS等基于程序的指令而执行部分或全部实际处理,也可以实现实施例的上述功能。
此外,在将从记录介质读取的程序写入由插入计算机的功能扩展板或连接到计算机的功能扩展单元所提供的存储器之后,通过由功能扩展板或功能扩展单元提供的CPU等基于程序的指令而执行部分或全部实际处理,可以实现上述实施例的功能。
由于在不脱离本发明的精神和范围的情况下,可以做出本发明的很多明显相同的实施例,因此,应当理解,除了在所附权利要求书中定义之外,本发明不局限于具体实施例。
权利要求
1.一种图像处理装置,其位于根据由构成硬件的处理器进行处理的第一命令组所构建的本机环境中,并且具有用来动态执行根据独立于第一命令组而定义的第二命令组所构建的程序的解释程序环境,该装置包括数据流接收装置,用于在本机环境中从客户机接收包括处理请求的输入数据流;数据处理装置,用于在本机环境中,在将输入数据流划分为多个阶段进行解释的每个阶段中生成中间数据流;过滤装置,用于在解释程序环境中过滤中间数据流,并生成过滤后的数据流;接口装置,用于在本机环境中,在该接口装置本身与过滤装置之间取出并写回中间数据流;以及过滤管理装置,用于在本机环境中将通过接口装置取出的中间数据流传送到在解释程序环境中对应的过滤装置,并通过接口装置写回过滤后的数据流。
2.根据权利要求1所述的图像处理装置,其特征在于,进一步包括发送装置,用于将由过滤装置处理过的中间数据流发送到信息处理装置。
3.根据权利要求1所述的图像处理装置,其特征在于客户机内置在通过网络连接的信息处理装置中或图像处理装置中。
4.根据权利要求1所述的图像处理装置,其特征在于,中间数据流包括用于对图像处理装置给出控制指示的装置控制指示数据流、用于对图像处理装置给出绘图指示的绘图数据流、通过处理装置控制指示数据流和绘图数据流而生成的中间图像数据流、以及通过处理中间图像数据流而生成的最终图像数据流。
5.根据权利要求1所述的图像处理装置,其特征在于由过滤装置进行的过滤包括将新的数据流添加到中间数据流的处理。
6.根据权利要求1所述的图像处理装置,其特征在于由过滤装置进行的过滤包括使用另一数据流来替换中间数据流的特定数据流的处理。
7.根据权利要求1所述的图像处理装置,其特征在于进一步包括通过使用解释程序环境的用户界面来操作过滤装置的处理参数的装置。
8.根据权利要求1所述的图像处理装置,其特征在于解释程序环境为在解释程序环境中运行的程序提供线程机制,过滤装置在该线程机制的独立执行上下文中自主地执行过滤。
9.根据权利要求1所述的图像处理装置,其特征在于解释程序环境基于Java平台。
10.一种图像处理装置,包括数据流接收装置,用于从客户机接收包括处理请求的输入数据流;数据处理装置,用于通过将输入数据流划分为多个阶段来解释输入数据流,并在每个阶段中生成中间数据流,根据由输入数据流指示的内容来执行处理;过滤装置,用于过滤中间数据流,并生成过滤后的数据流;接口装置,用于在该接口装置本身与过滤装置之间取出并写回数据流;用于选择过滤装置的过滤功能的选择装置;用于选择要由过滤装置进行过滤的数据流的选择装置;以及过滤管理装置,用于通过接口装置取出由选择装置所选择的数据流,将该数据流传送到由选择装置所选择的对应的过滤装置,并通过接口装置写回过滤后的数据流。
11.根据权利要求10所述的图像处理装置,其特征在于进一步包括发送装置,用于将由过滤装置处理过的中间数据流发送到信息处理装置。
12.根据权利要求10所述的图像处理装置,其特征在于客户机包括在通过网络连接的信息处理装置中或图像处理装置中。
13.根据权利要求10所述的图像处理装置,其特征在于由过滤装置进行的过滤包括将新的数据流添加到中间数据流的处理。
14.根据权利要求10所述的图像处理装置,其特征在于由过滤装置进行的过滤包括使用另一数据流来替换中间数据流的特定数据流的处理。
15.一种图像处理装置的控制方法,该图像处理装置位于根据由构成硬件的处理器进行处理的第一命令组所构建的本机环境中,并且具有用来动态执行根据独立于第一命令组而定义的第二命令组所构建的程序的解释程序环境,该方法包括数据流接收步骤,用于在本机环境中从客户机接收包括处理请求的输入数据流;数据处理步骤,用于在本机环境中,在将输入数据流划分为多个阶段进行解释的每个阶段中生成中间数据流;过滤步骤,用于在解释程序环境中过滤中间数据流,并生成过滤后的数据流;接口步骤,用于在本机环境中,在该接口步骤本身与过滤步骤之间取出并写回中间数据流;以及过滤管理步骤,用于在本机环境中将通过接口步骤取出的中间数据流传送到在解释程序环境中对应的过滤步骤,并通过接口步骤写回过滤后的数据流。
16.根据权利要求15所述的图像处理装置的控制方法,其特征在于进一步包括发送步骤,用于将在过滤步骤中处理过的中间数据流发送到信息处理装置。
17.根据权利要求15所述的图像处理装置的控制方法,其特征在于客户机包括在通过网络连接的信息处理装置中或图像处理装置中。
18.根据权利要求15所述的图像处理装置的控制方法,其特征在于,中间数据流包括用于对图像处理装置给出控制指示的装置控制指示数据流、用于对图像处理装置给出绘图指示的绘图数据流、通过处理装置控制指示数据流和绘图数据流而生成的中间图像数据流、以及通过处理中间图像数据流而生成的最终图像数据流。
19.根据权利要求15所述的图像处理装置的控制方法,其特征在于在过滤步骤中进行的过滤包括将新的数据流添加到中间数据流的处理。
20.根据权利要求15所述的图像处理装置的控制方法,其特征在于在过滤步骤中进行的过滤包括使用另一数据流来替换中间数据流的特定数据流的处理。
21.根据权利要求15所述的图像处理装置的控制方法,其特征在于进一步包括通过使用解释程序环境的用户界面来操作过滤步骤的处理参数的步骤。
22.根据权利要求15所述的图像处理装置的控制方法,其特征在于解释程序环境为在解释程序环境中运行的程序提供线程机制,过滤步骤在该线程机制的独立执行上下文中自主地执行过滤。
23.根据权利要求15所述的图像处理装置的控制方法,其特征在于解释程序环境基于Java平台。
24.一种图像处理装置的控制方法,包括数据流接收步骤,用于从客户机接收包括处理请求的输入数据流;数据处理步骤,用于通过将输入数据流划分为多个阶段来解释输入数据流,并在每个阶段中生成中间数据流,以根据由输入数据流指示的内容来执行处理;过滤步骤,用于过滤中间数据流,并生成过滤后的数据流;接口步骤,用于在该接口步骤本身与过滤步骤之间取出并写回数据流;用于选择过滤步骤的过滤功能的选择步骤;用于选择要在过滤步骤中进行过滤的数据流的选择步骤;以及过滤管理步骤,用于通过接口步骤取出在选择步骤中所选择的数据流,将该数据流传送到在选择步骤中所选择的对应的过滤步骤,并通过接口步骤写回过滤后的数据流。
25.根据权利要求24所述的图像处理装置的控制方法,其特征在于进一步包括发送步骤,用于将在过滤步骤中处理过的中间数据流发送到信息处理装置。
26.根据权利要求24所述的图像处理装置的控制方法,其特征在于客户机包括在通过网络连接的信息处理装置中或图像处理装置中。
27.根据权利要求24所述的图像处理装置的控制方法,其特征在于在过滤步骤中进行的过滤包括将新的数据流添加到中间数据流的处理。
28.根据权利要求24所述的图像处理装置的控制方法,其特征在于在过滤步骤中进行的过滤包括使用另一数据流来替换中间数据流的特定数据流的处理。
29.一种数据处理装置,其位于根据由构成硬件的处理器进行处理的第一命令组所构建的第一程序环境中,并且具有用来动态执行根据独立于第一命令组而定义的第二命令组所构建的程序的第二程序环境,该装置包括数据流接收装置,用于在第一程序环境中从客户机接收包括处理请求的输入数据流;数据处理装置,用于在第一程序环境中,在将输入数据流划分为多个阶段进行解释的每个阶段中生成中间数据流;过滤装置,用于在第二程序环境中过滤中间数据流,并生成过滤后的数据流;接口装置,用于在第一程序环境中,在该接口装置本身与过滤装置之间取出并写回中间数据流;以及过滤管理装置,用于在第一程序环境中将通过接口装置取出的中间数据流传送到在第二程序环境中对应的过滤装置,并通过接口装置写回过滤后的数据流。
30.一种数据处理装置,包括数据流接收装置,用于从客户机接收包括处理请求的输入数据流;数据处理装置,用于通过将输入数据流划分为多个阶段来解释输入数据流,并在每个阶段中生成中间数据流,根据由输入数据流指示的内容来执行处理;过滤装置,用于过滤中间数据流,并生成过滤后的数据流;接口装置,用于在该接口装置本身与过滤装置之间取出并写回数据流;用于选择过滤装置的过滤功能的选择装置;用于选择要由过滤装置进行过滤的数据流的选择装置;以及过滤管理装置,用于通过接口装置取出由选择装置所选择的数据流,将该数据流传送到由选择装置所选择的对应的过滤装置,并通过接口装置写回过滤后的数据流。
31.一种图像处理装置,其位于根据由构成硬件的处理器进行处理的第一命令组所构建的第一环境中,并且具有用来动态执行根据独立于第一命令组而定义的第二命令组所构建的程序的第二环境,该装置包括数据流接收装置,用于在第一环境中从客户机接收包括处理请求的输入数据流;数据处理装置,用于在第一环境中,在将输入数据流划分为多个阶段进行解释的每个阶段中生成中间数据流;过滤装置,用于在第二环境中过滤中间数据流,并生成过滤后的数据流;接口装置,用于在第一环境中,在该接口装置本身与过滤装置之间取出并写回中间数据流;以及过滤管理装置,用于在第一环境中将通过接口装置取出的中间数据流传送到在第二环境中对应的过滤装置,并通过接口装置写回过滤后的数据流。
32.一种图像处理装置的控制方法,该图像处理装置位于根据由构成硬件的处理器进行处理的第一命令组所构建的第一环境中,并且具有用来动态执行根据独立于第一命令组而定义的第二命令组所构建的程序的第二环境,该方法包括数据流接收步骤,用于在第一环境中从客户机接收包括处理请求的输入数据流;数据处理步骤,用于在第一环境中,在将输入数据流划分为多个阶段进行解释的每个阶段中生成中间数据流;过滤步骤,用于在第二环境中过滤中间数据流,并生成过滤后的数据流;接口步骤,用于在第一环境中,在该接口步骤本身与过滤步骤之间取出并写回中间数据流;以及过滤管理步骤,用于在第一环境中将通过接口步骤取出的中间数据流传送到在第二环境中对应的过滤步骤,并通过接口步骤写回过滤后的数据流。
全文摘要
本发明提供一种图像处理装置及其控制方法。数据处理装置在根据由构成硬件的处理器进行处理的本机命令组所构建的本机环境中,具有用来动态执行根据独立于本机命令组而定义的命令组所构建的程序的解释程序环境。该装置在本机环境中,在将输入数据流划分为多个阶段进行解释的每个阶段中生成中间数据流;在解释程序环境中过滤中间数据流,以生成过滤后的数据流。
文档编号H04N1/32GK1731350SQ20051008771
公开日2006年2月8日 申请日期2005年8月5日 优先权日2004年8月6日
发明者种田仁一, 中泽纪之, 奥津俊久, 角田正美, 伊藤嘉则, 浅原英雄 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1