CN101331453A - 信息处理设备和方法 - Google Patents
信息处理设备和方法 Download PDFInfo
- Publication number
- CN101331453A CN101331453A CNA2006800470640A CN200680047064A CN101331453A CN 101331453 A CN101331453 A CN 101331453A CN A2006800470640 A CNA2006800470640 A CN A2006800470640A CN 200680047064 A CN200680047064 A CN 200680047064A CN 101331453 A CN101331453 A CN 101331453A
- Authority
- CN
- China
- Prior art keywords
- data stream
- wave filter
- filter
- messaging device
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 71
- 230000010365 information processing Effects 0.000 title description 2
- 238000012545 processing Methods 0.000 claims abstract description 260
- 238000001914 filtration Methods 0.000 claims abstract description 66
- 239000000284 extract Substances 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 81
- 230000005540 biological transmission Effects 0.000 claims description 52
- 230000008569 process Effects 0.000 claims description 26
- 230000007246 mechanism Effects 0.000 claims description 6
- 230000008676 import Effects 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 30
- 230000014509 gene expression Effects 0.000 description 22
- 238000007639 printing Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 20
- 230000015654 memory Effects 0.000 description 18
- 238000012546 transfer Methods 0.000 description 14
- 238000013523 data management Methods 0.000 description 11
- 230000005055 memory storage Effects 0.000 description 11
- 238000009434 installation Methods 0.000 description 10
- 238000005457 optimization Methods 0.000 description 10
- 238000003860 storage Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000008878 coupling Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 241001269238 Data Species 0.000 description 5
- 239000000203 mixture Substances 0.000 description 5
- 238000012797 qualification Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 238000011112 process operation Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 241001290864 Schoenoplectus Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000004821 distillation Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000013210 evaluation model Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000007641 inkjet printing Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 238000013441 quality evaluation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000010023 transfer printing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/1803—Receiving particular commands
- G06K15/1805—Receiving printer configuration commands
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
一种数据处理设备,在本地环境中具有基于与本地命令组独立地定义的命令集所配置的、用于动态执行程序的解释程序环境。在本地环境下,将输入数据流分成多个阶段,并且在各状态生成中间数据流。在解释程序环境下,中间数据流经过滤波处理,并且生成滤波后的数据流。通过层接口将中间数据流传递给滤波器。数据流管理属性模块从中间数据流提取预先指定的项目的信息,并且基于该信息的内容,对将中间数据流传递给滤波器进行控制。因此,可以基于数据流中的描述,对是否应用滤波处理进行控制,从而实现高效数据流处理。
Description
技术领域
本发明涉及一种使用本地环境和在本地环境下运行的解释程序环境的信息处理技术,其中固件等在该本地环境下运行。
背景技术
传统地,最常见的是在操作系统(OS)上以静态和固定的方式将例如光复印机或多功能打印机(MFP)等图像处理装置中用于执行图像处理的软件配置成众所周知的固件。即使这类固件内部由多个模块构成,该固件也作为整体被存储在装置内的非易失性存储器中,其整体被静态链接到单个装载模块。当启动系统时,从硬盘等非易失性存储器将该固件装载到RAM,并执行该固件,或者在存储该固件的ROM等非易失性存储器中直接执行该固件。尤其对于低价位图像处理装置,为了经济和安全原因等,通常将组成嵌入式系统的固件配置成不进行部分模块的动态装载或链接。也就是说,用于存储实现动态链接所需的符号表的存储容量和与符号的访问地址的处理有关的开销导致装置的成本-效果下降。另一原因是:子模块的附加装载和链接可能危害在链接到这类子模块之前已足够的整个系统的质量和安全。
为了解决上述问题,开发了这样一种图像处理装置,该装置在实时操作系统之上具有另一软件运行环境层,其中,嵌入式系统固件在该实时操作系统上运行。该附加软件运行环境层支持动态软件特性,包括但不局限于动态装载、动态链接、动态存储器操作。附加软件运行环境构成解释程序和应用程序编程接口(API)组或框架组,从而提供一类用于运行于其上的软件的操作系统或计算平台。解释程序连续读出、解释和执行一系列由包括在预定命令集中的命令组成的命令串。如果将该命令集视为等同于CPU的命令集,则还可以将该解释程序称为虚拟机。API组和框架组的集合为在软件运行环境下运行的软件提供对各种类型的资源组的访问,其中,这些资源组是通过该软件运行环境之下的层中的实时操作系统以抽象化形式所提供的实际资源和硬件资源。这些资源包括但不局限于由处理器执行的命令执行上下文、存储器、文件系统和包括网络接口的各种类型的输入/输出(I/O)。特别地,利用命令执行上下文,与CPU和实时操作系统所提供的多任务功能独立地,软件运行环境能够独自管理解释程序上的命令执行上下文。另外,对于存储器管理,软件运行环境可以提供它自己的存储器管理。
通过解释程序顺序读入并解释运行在这类软件执行环境上的软件,因此,可以通过在该处理过程中监视命令流来消除对系统产生不利影响的操作。另外,通过软件执行环境所提供的API组和框架组来间接进行运行在软件执行环境上的软件对各种资源的访问。因此,提供由固件内的解释程序、API组和框架组组成的软件执行环境的分层的方法使得可以消除该访问处理中对系统产生不利影响的操作。因此,在应该以静态和固定的方式配置的低成本嵌入式系统中,在将软件的动态特性部分引入固件中时,这种方法十分有效,例如,参见日本特开平11-282684号公报和日本特开2003-256216号公报。
利用上述方法,可以采用Java(注册商标)虚拟机作为用于实现软件执行环境的分层的解释程序,并且可以采用与Java有关的API组和框架组。本受让人已在2003年使具有嵌入在图像处理装置的固件中的Java平台的MFP商品化。
迄今,存在这样的配置:使用包括网络计算机的应用程序下载打印机将待打印的数据文件和与该数据文件相对应的应用程序从计算机网络下载到打印机。启动和执行所下载的应用程序,这样打开该数据文件,将该数据文件转换成光栅化图像,并且打印该图像。已公开了这种情况下所使用的应用程序是Java小应用程序(Java applet)的情况,还有如下两种情况:与打印数据文件一起从客户机推入应用程序;以及通过打印机从应用程序服务器等拉出应用程序,例如,日本特开平11-53132号公报。
日本特开平11-306107号公报提出了一种网络通信系统,在该系统中,将多个外围设备、设置有用于操作外围设备的软件的多个终端装置、以及至少具有与用于操作外围设备的软件有关的装置的服务器装置连接到传输通路。利用该网络通信系统,在与传输通路连接的外围设备、终端装置和服务装置之间,基于预定通信协议进行网络通信。这里,外围设备具有客户端控制单元和软件分发代理。客户端控制单元向服务器装置请求并获得用于操作外围设备的软件的全部或部分,或者与该软件所使用的模块相对应的最新模块信息。另外,软件分发代理将所获得的最新模块分发给终端装置。根据日本特开平306107号公报,在如软件用来操作外围装置的客户端模块的情况下,可以提供Java Applet和Java应用程序。
另一方面,对于主干服务系统,一旦其正常运行,则对于维持整个系统的稳定性的要求非常强烈,并且存在不会简单允许打印机驱动程序或应用程序等的改变或版本更新的情况。考虑到现实世界的打印环境限制,处理客户对于打印机的各种类型的需求是打印机厂家的责任,而不是要求客户进行处理。一种方法是修改组成打印机/打印机控制器的固件,并且将其发布给各客户。然而,通过修改固件来应付各客户需要长的装置开发周期和成本,并且更新固件还需要现场工程师的高水平维护等。因此,可以说,如果要实现各客户的需求的快捷处理,该方法在成本-效果上存在问题。
利用具有例如置于嵌入式系统的固件中的Java平台等软件运行环境的MFP,可以在该软件运行环境上开发独立于该固件的新的装置嵌入应用程序,并且可以通过API从Java应用程序访问装置的打印功能。然而,Java平台位于固件内的嵌入式应用程序层中。因此,不可能使作为与Java平台相同层中的本地嵌入应用程序而实现的打印数据接收功能或打印服务器功能适应于Java应用程序。也就是说,还必须向Java端提供具有用于通过例如网络接收打印数据的各种类型的打印服务协议的打印服务器功能,从开发、评价用资源的费用和其执行时的存储容量方面来看,这是效率低下的配置。
另一方面,如果在嵌入式系统的固件内不存在软件运行环境层,则整个嵌入式系统具有能够进行动态链接和插入的配置,因此,整个系统具有动态配置。考虑到下面的概念:只有需要动态特性的组件是用于灵活、可扩展地添加在解释所接收的PDL数据流之前所执行的预处理的配置,因而这对于低成本、小型化系统是不合适的。原因是:在将整个系统配置为动态软件时,伴随着确保质量,开销成本和困难将会增加。
因此,本受让人在日本特开2004-093215号公报中提出了与打印机固件的其他组件分开地设置一种用于进行解释所接收到的PDL数据流之前的前处理的滤波器部分,作为灵活的、可扩展的软件。这是一个通过明确分离该滤波器组件的可扩展软件的实现与需要稳定性的打印机固件的其他组件的实现来提高定制PDL打印机的生产率的提案。
然而,在上述提案的情况下,需要不断对所有打印请求数据流整体进行滤波处理,因此,没有实现高效处理。例如,图像处理装置接收的打印请求数据流构成装置控制数据流部分和绘制数据流部分,利用该配置,在任何时候都对整个打印请求数据流,即这两个数据流部分进行滤波处理,因此整体处理慢,导致吞吐量降低等问题,这意味着不能进行高效处理。此外,没有考虑处理除PDL以外的各种打印处理请求数据流,包括但不局限于图像处理装置中的数据的临时保持处理、或者通过电子邮件传输利用图像处理装置读取的图像数据。
因此,致力于实现更有效的处理,本受让人提交了日本专利申请2004-231433。日本专利申请2004-231433提出了这样一种配置,其中,可以对装置控制数据流部分和绘制数据流部分等各个数据流成分进行滤波。装置控制流成分构成主要与装置的控制有关的指令命令,包括但不局限于使用作业语言(JL)以指定进纸盒或排出托盘。另外,可以包括但不局限于页面描述语言(PDL)的绘制数据流成分构成与绘制有关的指令命令。
日本专利申请2004-231433提出了这样一种配置,该配置对来自打印请求数据流的、图像处理装置内的装置控制数据流成分和绘制数据流成分等各种类型的中间数据流进行最优滤波。然而,在日本专利申请2004-231433的情况下,对各数据流独立进行处理,并且各滤波器独立判断是否对数据流进行滤波。也就是说,没有考虑到如下操作:根据其他数据流的内容确定对一个数据流应用滤波处理。例如,不能进行这样的控制:根据装置控制数据流(JL)中所描述的作业类型和PDL类型,对绘制数据流(PDL)应用滤波处理。
发明内容
本发明提供基于数据流内的描述对是否应用滤波处理进行控制,从而实现高效数据流处理。
利用具有解释程序环境的数据处理设备,在本地环境内,将输入数据流分成多个阶段并进行解释,生成各阶段的中间数据流,并且,在解释程序环境内,中间数据流经过滤波处理,并且生成滤波后的数据流,其中该解释程序环境用于动态执行基于在本地环境内独立于本地命令组定义的命令集而构建的程序。通过层接口进行中间数据流到滤波器的传递。数据流管理属性模块从中间数据流提取预先指定的项目的信息,并且基于该信息的内容,对中间数据流到滤波器的传递进行控制。
根据本发明的第一方面,提供一种信息处理设备,所述信息处理设备在基于由构成硬件的处理器处理的第一命令组所配置的本地环境中,具有基于与所述第一命令组独立地定义的第二命令组所配置的、用于动态执行程序的解释程序环境,所述设备包括:数据流接收部件,用于在所述本地环境中,接收包括来自客户机的处理请求的输入数据流;数据处理部件,用于在所述本地环境中,将所述输入数据流分成多个阶段,并在各阶段生成中间数据流;滤波部件,用于在所述解释程序环境中,通过对由所述数据处理部件所生成的中间数据流进行滤波,生成滤波后的数据流;接口部件,用于在所述本地环境中,从所述滤波部件提取由所述数据处理部件所生成的中间数据流,以及将由所述数据处理部件所生成的中间数据流写回到所述滤波部件;滤波器管理部件,用于在所述本地环境中,通过所述接口部件将由所述数据处理部件所生成的中间数据流传递给所述滤波部件,以及通过所述接口部件取出所述滤波后的数据流;以及控制部件,用于在所述本地环境中,基于所述输入数据流中包含的预先指定的项目的信息的内容,对所述滤波器管理部件将中间数据流传递给所述滤波部件的执行进行控制。
根据本发明的第二方面,提供一种信息处理设备的控制方法,所述信息处理设备在基于由构成硬件的处理器处理的第一命令组所配置的本地环境中,具有基于与所述第一命令组独立地定义的第二命令组所配置的、用于动态执行程序的解释程序环境,所述方法包括:数据流接收步骤,用于在所述本地环境中,接收包括来自客户机的处理请求的输入数据流;数据处理步骤,用于在所述本地环境中,将所述输入数据流分成多个阶段,并在进行解释的各阶段生成中间数据流;滤波步骤,用于在所述解释程序环境中,通过对在所述数据处理步骤中所生成的中间数据流进行滤波,生成滤波后的数据流;接口步骤,用于在所述本地环境中,从所述滤波步骤提取在所述数据处理步骤中所生成的中间数据流,以及将在所述数据处理步骤中所生成的中间数据流写回到所述滤波步骤;滤波器管理步骤,用于在所述本地环境中,通过所述接口步骤将在所述数据处理步骤中所生成的中间数据流传递给所述滤波步骤,以及通过所述接口步骤取出所述滤波后的数据流;以及控制步骤,用于在所述本地环境中,基于所述输入数据流中包含的预先指定的项目的信息的内容,对通过所述滤波器管理步骤将中间数据流传递给所述滤波步骤的执行进行控制。
通过以下参考附图对典型实施例的说明,本发明的其他特征将显而易见。
附图说明
包括在说明书中并构成说明书的一部分的附图示出本发明的实施例,并与说明书一起用来解释本发明的原理。
图1是用于说明根据本发明第一实施例的图像处理设备的硬件结构的框图。
图2是用于说明根据第一实施例的控制器的软件结构的分层图。
图3是示出根据第一实施例的控制器中的软件模块之间的数据的基本流动及其模块之间的数据流的图。
图4是示出根据第一实施例的控制器中的软件模块之间的数据的基本流动和滤波处理时的数据流动的图。
图5是用于说明在根据第一实施例的解释程序环境中配置的滤波器框架中的类的图。
图6A和6B示出由在第一实施例的解释程序环境下配置的滤波器框架219所管理的对象的例子,其中,图6A示出在一个滤波器处于有效状态时由滤波器框架运行时所管理的对象之间的关系,图6B示出在两个滤波器处于有效状态时由滤波器框架运行时所管理的对象之间的关系。
图7A~7C是用于说明操作根据第一实施例的滤波器框架的用户界面的例子的图。
图8是示出根据第一实施例的滤波处理中的主要过程的流程图。
图9是示出根据第一实施例的滤波处理的另一例子的流程图。
图10是用于说明根据第一实施例的处理请求数据流的图。
图11是用于说明根据第一实施例的滤波器对绘制数据流进行的处理的图。
图12是用于说明根据第一实施例的滤波器对绘制数据流进行的滤波处理的图。
图13是用于说明根据第一实施例的最优滤波器对绘制数据流进行的滤波处理的图。
图14是用于说明根据第一实施例的功能添加滤波器对装置控制指令数据流进行的处理的图。
图15是示出用于操作功能扩展滤波器的用户界面的例子的图。
图16是用于说明根据本发明第二实施例的传输数据流的图。
图17是示出根据第二实施例的通过数据流属性管理模块判断是否进行滤波的处理的流程图。
图18是示出用于配置滤波器应用条件的用户界面的例子的图。
具体实施方式
现在将参考附图详细说明本发明的优选实施例。
第一实施例
图1是说明根据本实施例的图像处理设备1000的硬件结构的框图。图像处理装置1000具有图像处理设备控制器1600(以下称之为控制器1600),并且由管理不同控制系统的装置构成。假定根据本实施例的特定图像处理设备1000为打印设备。
CPU 1根据存储在可重写闪存3(以下称之为非易失性存储器3)中的控制程序来执行控制操作。CPU 1还集中控制从连接到局域网(LAN 2000)的多个外部装置(未示出)所发送的各种类型的数据发送/接收请求,该数据发送/接收请求包括但不局限于打印数据或打印机控制命令,该多个外部装置包括但不局限于主计算机。使用预定网络通信协议,通过与系统总线4连接的网络控制器(LANC)5进行与连接到LAN 2000的外部装置的通信。CPU 1集中控制对与系统总线4连接的各种装置的访问。根据存储在ROM 9中的控制程序等,或者根据存储在通过盘控制器(DKC)15所连接的外部存储器10中的控制程序或资源数据等,进行该控制。因此,根据所接收到的打印数据,通过光栅化控制器12生成图像信息,并且将该图像信息输出给标记引擎(打印机引擎)16。
RAM 2用作CPU1的主存储器、工作区等临时存储区域。闪存3是可重写的非易失性存储器,并且与ROM 9一起存储控制程序。系统总线4用于在组成控制器1600的装置间交换数据。
网络控制器(LANC)5将控制器1600连接到LAN 2000。LED6用作指示控制器1600的工作状态的显示单元。例如,利用LED6的闪烁模式或颜色等,可以使用LED 6来表示LANC 5和LAN2000之间的电连接状态(LINK)、可以包括但不局限于10Base或100Base、全双工或半双工的网络通信模式等各种工作状态。外部存储器10具有控制程序和各种类型的数据,并且通过DKC 15与控制器1600连接。通常使用硬盘驱动器或USB存储器等作为外部存储器10。光栅化控制器12基于所接收到的打印数据,生成待输出的图像信息。标记引擎16从光栅化控制器12接收图像信息,并且进行打印。
操作面板(操作单元)18在其上排列有用于设置图像处理装置1000的工作模式和取消打印数据等的按钮、以及具有用于指示图像处理装置1000的工作状态的液晶面板或LED等的显示单元。操作单元18设置有覆盖在液晶面板之上的触摸面板。图像读取单元19通过从操作面板18或局域网2000对其发出的读取图像信息的指令,将所读取(扫描)的图像信息输入给图像处理装置1000。
图1所示的标记引擎16使用公知的打印技术,其优选例子包括但不局限于电子照相术(激光束打印)、喷墨打印或升华(热转印)打印。
图2是示出根据本实施例的控制器1600的软件结构的分层图。该图示出上方位置的上位模块如何依赖于下方位置的下位模块。连接模块的线表示特定依赖关系。
本地代码单元201是组成图像处理设备1000的固件的标准组件,并且由CPU 1直接执行,即,在本地环境下执行该本地代码单元201。在开发该装置时将本地代码单元201静态链接到单个装载模块,并且将本地代码单元201作为固件存储在图像处理设备1000的非易失性存储器3中。当启动图像处理设备1000时,将该固件从非易失性存储器3装载到RAM 2,并且CPU 1从RAM 2顺序读出代码,对该代码进行解释,并执行该代码的处理,同时运行图像处理设备1000。然而,在执行该处理时不进行动态链接。还可以进行这样的配置:将该固件存储在如ROM9一样的、CPU 1可以通过读取直接访问的非易失性存储器中,以使得CPU 1可以从ROM 9顺序读出该代码,对该代码进行解释,并且执行该代码,而无需在RAM 2中进行展开。
数据发送/接收模块202从客户机接收处理请求数据流350(图3),作为输入数据流,并且将在控制器1600内生成的传输数据流358(图3)发送给客户机。数据发送/接收模块202通过实时操作系统(RTOS)214依赖于协议栈223。通过以太网等网络或USB或IEEE 1394等各种接口物理进行数据发送/接收模块202和客户机之间的数据的发送和接收。规定用于根据各连接配置进行处理请求的应用协议。数据发送/接收模块202设置有应用协议服务器功能。存在服务应用协议的各种规范,并且仅网络协议就包括LPR、SMB、PAP和NetWare等各种类型。其实现在开发和质量评估方面需要大量费用。数据发送/接收模块202提供多协议支持,该多协议支持来自针对多个接口中的每个接口所存在的各种类型的服务协议。可以将数据发送/接收模块202配置成在图像处理设备1000的RAM 2中形成作业队列以进行数据的发送/接收,从而使得好比是设置有假脱机功能。在这一例子中,数据发送/接收模块202即使例如在正在执行另一作业时,不能立即执行作业,也从客户机接受作业请求,将作业存储在队列中,并释放客户机。因此,当变得可以执行该作业时,根据调度算法依次对作业进行处理。
嵌入式应用程序203是用于提供图像处理设备1000的中心功能的嵌入式应用程序,并且响应于客户机请求提供服务。在客户机是通过LAN 2000连接的主机上的应用程序和驱动程序软件的情况下,客户机生成处理请求数据流350(图3),其中,客户机通过数据发送/接收模块202将该处理请求数据流350传递给嵌入式应用程序203。嵌入式应用程序203将处理请求数据流350分成装置控制指令数据流351(图3)和绘制数据流352(图3),并且通过控制API 204将各流传递给作业控制模块205。可选地,嵌入式应用程序203解释装置控制指令数据流351,通过控制API 204指示作业控制模块205进行客户机所请求的处理,并且通过控制API 204将绘制数据流352(图3)传递给作业控制模块205。
例如,如果客户机是利用图像处理设备1000的操作面板18发出的指令,则由嵌入式应用程序203生成装置控制指令数据流351(图3),并且通过控制API 204将该装置控制指令数据流351传递给作业控制模块205。可选地,通过控制API 204向作业控制模块205发出从客户机请求的指令。通常将与装置控制有关的该描述部分称为作业语言(JL)。JL包括但不局限于用于解释绘制数据并指定绘制系统的操作参数的环境数据、指定打印输出所使用的转印纸张的纸张给送、设定双面打印等打印模式、指定排出托盘、指定分页(自动分页)和指定订书钉装订和装订成册等自动整理。另一方面,以主要以页为增量描述绘制的PDL描述绘制数据流。
控制API 204是用于访问图像处理设备1000提供的服务的应用程序编程接口。以下是构成控制API 204的两个主要接口。一个接口是用于执行打印作业并对打印作业进行控制的接口,另一接口是用于将装置控制指令数据流351(图3)和绘制数据流352(图3)传递给作业控制模块205的接口。
作业控制模块205对图像处理设备1000提供的各种类型的图像处理作业进行控制。这里说明作为图像处理作业的例子的打印作业处理。
作业控制模块205根据通过控制API 204给出的指令进行设备控制。可选地,作业控制模块205通过解释经控制API 204输入的装置控制指令数据流351(图3)来工作。作业控制模块205响应于经由控制API 204的关于设备控制的指令,或者根据装置控制指令数据流351中所描述的内容,对翻译器206、绘制器207、ME控制模块208、图像处理模块209和数据管理模块210进行控制。在打印作业的情况下,由翻译器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将该装置控制指令数据流351传递给作业控制模块205来执行该传输指令。作业控制模块205从图像读取单元19输入图像数据,将该图像数据存储在RAM 2中,并且将该图像数据传递给图像处理模块209。对这样生成的扫描图像数据流360(图3)进行调度以将其传递给嵌入式应用程序203。嵌入式应用程序203将传递给其的扫描图像数据流360转换成通过操作面板18所指示的格式,以生成通过数据发送/接收模块202发送的传输数据流359(图3)。可选地,如果通过操作面板18所指定的传输目的地为内置的外部存储器10,则嵌入式应用程序203通过控制API 204指示作业控制模块205读取并保存图像数据。由嵌入式应用程序203通过控制API 204直接指示作业控制模块205来执行该指令。可选地,由嵌入式应用程序203生成装置控制指令数据流351,并通过控制API 204将装置控制指令数据流351传递给作业控制命令205,来执行该指令。作业控制模块205从图像读取单元19输入图像数据,将该图像数据存储在RAM 2中,并且将该图像数据传递给图像处理模块209。然后,通过数据管理模块210对由图像处理模块209所生成的扫描图像数据流360(图3)进行调度以将其存储在外部存储器10中。
翻译器206对PDL等绘制数据流352进行解释,并且将其转换成适合于绘制处理的中间打印语言。将利用适合于绘制处理的中间打印语言对打印数据的描述称为显示列表355(图3)。翻译器206针对各种类型的PDL规范中的每一个具有各种固有实现,并且各翻译器将其各自的PDL转换成绘制器207固有的显示列表355。
绘制器207将显示列表355绘制成中间图像数据流356(图3)。绘制器207通过RTOS 214依赖于绘制器驱动程序225。
标记引擎(ME)控制模块208对标记引擎16进行控制,该标记引擎16在图像处理设备1000中进行转印纸张上的图像形成。ME控制模块208通过RTOS 214依赖于ME驱动程序226。
图像处理模块209对图像处理设备1000的中间图像数据流356进行各种类型的图像处理,包括但不局限于半色调、补漏白(trapping)、浓度校正或彩色/单色转换。
数据管理模块210将图像处理设备1000的中间图像数据流356(图3)和最终图像数据流357(图3)等数据流保存在外部存储器10中,并对它们进行管理。可以进行这样的配置:可以保存和管理图像数据流以外的数据流。在图像处理设备1000内,层接口211与解释程序环境215交换数据流。为了向与滤波处理有关的数据流分配等级,通常将层接口211分成内部层接口213和外部层接口212。
外部层接口212将处理请求数据流350、装置控制指令数据流351、绘制数据流352、以及传输数据流358和359从数据发送/接收模块202和嵌入式应用程序203传递到解释程序环境215。外部层接口212将在滤波器221处处理后的各数据流传递给数据发送/接收模块202、嵌入式应用程序203和作业控制模块205。
内部层接口213将由作业控制模块205所生成的显示列表355、中间图像数据流356、最终图像数据流357和扫描图像数据流360传递给解释程序环境215。作业控制模块205通过与翻译器206、绘制器207、ME控制模块208、图像处理模块209、数据管理模块210和图像读取单元19交互,生成列表和数据流。内部层接口213将由滤波器221处理后的作业传递给作业控制模块205。不用说,可以在翻译器206、绘制器207、ME控制模块208、图像处理模块209、数据管理模块210、图像读取单元19和解释程序环境215之间进行数据流的交换,而不是仅作业控制模块205。
RTOS 214是为图像处理设备1000的本地代码固件提供执行环境的平台。RTOS 214为在其上运行的软件提供构建软件所使用的基本服务和设备1000的抽象化硬件资源的服务,并且还提供用于将设备1000的硬件抽象化成软件易于使用的接口的装置驱动程序结构框架。RTOS 214所提供的功能包括但不局限于:任务管理,其中,通过CPU 1的命令执行上下文被抽象化;以及用于实现并行处理的多任务机制,其中,多个执行上下文以虚拟方式同时工作。RTOS 214提供的其他功能包括但不局限于任务间交换消息、用于同步的任务间通信(即,消息队列、信号量等)、管理各种类型的存储器、计时器和时钟、中断管理、以及DMA控制。注意,信号量是这样一种机制,通过该机制,在其他功能之间,使同时操作的处理同步化,并且对中断处理进行控制。
解释程序环境215是通过基于各种类型的解释程序环境,在这种情况下是Java平台运行时环境,向图像处理设备1000添加其特有的API组和框架组所配置的软件平台。该软件平台为以在其上运行的解释程序的解释程序语言所描述的程序提供动态软件运行环境。该解释程序环境包括在本地代码单元201中包括的由本地代码所实现的部分和在图2所示的解释程序代码单元220中包括的作为以解释程序语言所描述的程序所实现的部分。
解释程序216从利用预定命令集描述的命令串读出命令,然后解释程序216对所读出的命令进行解释和执行。解释程序216构成Java虚拟机,并且命令集为Java字节代码。
标准API库和框架组217还使用解释程序环境特有的模块来抽象化RTOS 214所提供的各种类型的抽象化计算资源,从而为在RTOS 214上运行的程序提供执行环境。在这种情况下,通过组成Java平台的标准类库组和开放服务网关联盟(OSGi)框架来实现抽象化,在此使用开放服务网关联盟(OSGi)框架是指符合OSGi标准。Java平台提供相当于RTOS 214的抽象化功能。所提供的功能可以包括但不局限于:线程管理,其中通过虚拟机抽象化命令执行上下文;多线程机制,用于以虚拟方式同时运行多个执行上下文,以实现并行处理;线程通信,用于在线程之间交换消息以及进行同步;对已高度抽象化的各种类型的存储器进行管理,例如收集;以及计时器和时钟;例外管理;对文件系统和网络的访问;以及与外部输入/输出装置连接。OSGi框架在单个Java虚拟机上运行多个Java应用程序或服务。OSGi框架还提供如应用程序生命周期管理和应用程序之间的通信功能等功能。在OSGi框架上预先安装多个系统服务。该系统服务包括:
服务管理服务,用于向解释程序环境添加新的应用程序,并且更新或删除现有应用程序;
小应用程序浏览服务,用于通过将Java类显示在图像处理设备的操作面板上,使得能够通过操作面板18操作通过小应用程序接口所实现的Java类;以及
HTTP服务,用于将通过servlet接口所实现的Java类作为可通过客户机浏览器运行的Web应用程序来运行。
特别地,可以通过抽象窗口工具集(Abstract WindowToolkit,AWT)的API使通过小应用程序接口所实现的Java应用程序间接与操作面板驱动程序227进行交互。
作业控制库218依赖于控制API 204,并且为在解释程序环境上运行的程序提供使得能够执行和控制图像处理作业的应用程序编程接口。
滤波器框架219与嵌入式应用程序203进行通信,以使得在执行作业时,能够对来自在解释程序环境上所实现的滤波器程序的图像处理设备1000的多个数据流进行插入。
将解释程序代码单元220作为以解释程序216可以解释的解释程序语言描述的软件来实现,并且解释程序代码单元220包括组成解释程序环境的一部分API库组和框架组、以及在解释程序环境下运行的程序。跨本地代码单元201和解释程序代码单元220的软件需要根据解释程序环境所规定的特有框架和特有编程模块对在这些空间之间交互的模块进行编码。在这种情况下,根据Java本地接口(Java Native Interface,JNI)进行边界部分编程。
滤波器221是在解释程序环境下实现的程序,并且根据滤波器框架219的框架来实现,以使得能够对嵌入式应用程序203处理后的处理请求数据流进行处理。将协议栈223嵌入在RTOS214的框架中,并且协议栈223设置有在下层的外部接口驱动程序224所控制的外部接口上的传输层和传输层以下的协议。例如,当应用于网络接口时,以上实现TCP/IP和UDP/IP等协议。协议栈223还通过RTOS 214,向嵌入式应用程序203提供Berkleysockets API等用于应用程序编程的接口。另外,如果外部接口为例如USB,则可以实现IEEE 1284.4等协议。
外部接口驱动程序224驱动用于提供与各种类型的接口进行连接的硬件,接口包括但不局限于网络接口、IEEE 1394、USB、RS232C和Centronics。对于网络,例如,装置启动用于连接到以太网等网络的网络接口硬件,从而实现物理层协议。
绘制器驱动程序225驱动绘制器207。绘制器207是用于将图3所示的显示列表355绘制成中间图像数据流356的硬件。可以以软件形式实现绘制器207,并且绘制后的数据流可以是最终图像数据流357(图3)。ME驱动程序226驱动在转印纸张上进行图像形成的标记引擎。操作面板驱动程序227对到图像处理设备1000的操作面板18的显示单元的输出进行处理,还对来自键和触摸屏等的输入事件进行处理。
层接口211具有数据流属性管理模块228。用户可以通过操作面板18向数据流属性管理模块228指示图像处理设备1000中的数据流的处理内容。
具体地,如果数据发送/接收模块202接收到处理请求数据流350,则数据流属性管理模块228启动与该处理请求数据流350相对应的数据流属性管理。本地环境下的各模块根据需要询问数据流属性管理模块228,以确定有关该数据流的处理内容。这种情况下的本地环境内的模块的例子包括数据发送/接收模块202、嵌入式应用程序203和作业控制模块205,还有翻译器206、绘制器207、ME控制模块208、图像处理模块209和数据管理模块210。在提取了所指定的信息的情况下,这些模块还通知数据流属性管理模块228。一旦接收到该通知,数据流属性管理模块228就更新数据流属性。一旦从作业控制模块205接收到大意为结束了关于处理请求数据流350的所有处理的作业通知,数据流属性管理模块228就结束对处理请求数据流350的数据流属性的管理。
可选地,如果作业控制模块205生成了扫描图像数据流360,则数据流属性管理模块228启动扫描图像数据流360的数据流属性的管理,并且以与前述相类似的方式对数据流属性进行管理。一旦从作业控制模块205接收到大意为结束了有关扫描图像数据流360的所有处理的作业通知,数据流属性管理模块228就结束对扫描图像数据流360的数据流属性的管理。
如上所述,如果数据发送/接收模块202接收到处理请求数据流350,则数据流属性管理模块228启动对处理请求数据流350的数据流属性管理。数据流属性管理模块228通过控制API向解释程序环境下存在的模块公开该数据流属性。这样做便于进行与上述类似的有关数据流属性的处理,即,开始对数据流属性进行管理、从模块对数据流管理模块进行询问、从模块对数据流管理模块进行通知、数据流管理模块更新数据流属性、以及结束数据流属性管理。例如,数据流属性还使得可以进行例如根本不传递到解释程序环境模块等操作。
图3是示出根据本实施例的控制器1600中的软件模块之间的基本数据流动和各个模块的数据流的图。以相同附图标记表示图3中与图2中的模块相类似的模块,并且省略对其的详细说明。
如果不存在滤波器221插入,则数据发送/接收模块202通过通路301将从客户机所接收的处理请求数据流350发送给嵌入式应用程序203。通过包括但不局限于RTOS 214所提供的消息队列的任务间通信功能来实现通路301。以类似方式传递其他数据。处理请求数据流350包括装置控制指令数据流351和绘制数据流352。
如果客户机是通过LAN 2000连接的主机上的应用程序和驱动程序软件,则客户机生成处理请求数据流350。然后,通过数据发送/接收模块202将处理请求数据流350传递给嵌入式应用程序203。嵌入式应用程序203将处理请求数据流350分成装置控制指令数据流351和绘制数据流352,并且通过控制API 204将它们各自传递给作业控制模块205。可选地,嵌入式应用程序203解释装置控制指令数据流351,向作业控制模块205指示客户机所请求的处理,并且通过控制API 204将绘制数据流352传递给作业控制模块205。
另一方面,如果客户机是客户利用图像处理设备1000的操作面板18所做出的指令,则由嵌入式应用程序203生成装置控制指令数据流351,并且通过控制API 204将其传递给作业控制模块205。可选地,通过控制API 204将从客户机所请求的指令给予作业控制模块205。通常将与装置控制有关的描述部分称为作业语言(JL)。JL包括但不局限于用于解释绘制数据并指定绘制系统的操作参数的环境数据、指定打印输出所使用的转印纸张的纸张给送、设定双面打印等打印模式、指定排出托盘、指定分页(自动分页)和指定订书钉装订和装订成册等自动整理。另一方面,以主要以页为增量描述绘制的PDL描述绘制数据流。
作业控制模块205根据通过API 204所分发的指令,对设备1000进行控制。可选地,作业控制模块205解释通过控制API 204输入给其的装置控制指令数据流351,并因此进行工作。响应于通过控制API 204所发出的有关设备1000的控制的指令或者在装置控制指令数据流351中列出的内容,作业控制模块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进行图像数据读取和传输的指令。通过控制API204将该指令从嵌入式应用程序203直接传输给作业控制模块205,并且执行该指令。可选地,通过嵌入式应用程序203生成装置控制指令数据流351,并通过控制API 204将装置控制指令数据流351传递给作业控制模块205,来实现该指令。作业控制模块205输入由图像读取单元19所读取的图像数据,将所输入的图像数据保持在RAM 2中,并且将该图像数据传递给图像处理模块209。因此,进行调度,以使得将由图像处理模块209所生成的扫描图像数据流360传递给嵌入式应用程序203。嵌入式应用程序203将所传递的扫描图像数据流360转换成通过操作面板18所指示的格式,从而生成传输数据流359。然后,将该传输数据流359作为传输数据流359从数据发送/接收模块202发送。可选地,如果通过操作面板18所指定的目的地是内置的外部存储器10,则嵌入式应用程序203通过控制API 204指示作业控制模块205读取并保存该图像数据。通过嵌入式应用程序203通过控制API 204直接指示作业控制模块205来执行该指令。可选地,通过嵌入式应用程序203生成装置控制指令数据流351,并通过控制API 204将装置控制指令数据流351传递给作业控制模块205,来进行该执行。作业控制模块205通过控制线390从图像读取单元19输入图像数据,将该图像数据存储在RAM 2中,并且将该图像数据传递给图像处理模块209。通过数据管理模块210对如此生成的扫描图像数据流360进行调度,以将它们存储在外部存储器10中。在本地代码单元201中实现到此为止所述的所有处理。
图4是用于说明根据本实施例的控制器1600中的软件模块之间的数据的基本流动和滤波处理时的数据流动的图。图4中所示的模块中的数据流类似于图3中所示的相应元素,并且利用相同附图标记表示与前述附图相同的部分。
如果数据流经过了滤波处理,则数据发送/接收模块202通过通路306将处理后的数据流发送给外部层接口212。通过任务间通信功能来实现该传递,但是也可以使用其他数据传递过程来实现该目的,该任务间通信功能可以包括但不局限于由RTOS214所提供的消息队列等。层接口211内的外部层接口212将各种数据流传递给解释程序环境215。数据流的例子包括作为通过LAN 2000等从图像处理设备1000的外部所接收的数据流的处理请求数据流350、通过在图像处理设备1000内对处理请求数据流350进行分割所获得的装置控制指令数据流351和绘制数据流352、通过嵌入式应用程序203所执行的转换和生成所获得的传输数据流359、以及经过数据发送/接收模块202的最终传输处理的传输数据流358等。可以通过数据管理模块210从外部存储器10取出数据流。
外部层接口212通过通路307将所取得的数据流发送给滤波器框架219。滤波器框架219的运行时模块管理设置在解释程序环境215内的作为滤波器程序组的滤波器221。滤波器框架219通过通路308将数据流发送给滤波器221。例如,通过由解释程序环境215所提供的线程间通信功能在通路308上实现该传递。相同的处理应用于解释程序环境215内的数据交换。如果设置多个滤波器221,则利用通过解释程序环境215所提供的线程间通信功能所实现的传递,数据流在各滤波器之间流动。运行时模块是指执行程序时所需的软件模块。
滤波器221对作为输入所接收的数据流进行预定处理,并且输出结果。通过通路309将由滤波器221输出的数据流发送给滤波器框架219。滤波器框架219通过通路310将从滤波器221所接收的数据流传递给外部层接口212。因此,外部层接口212通过通路311将数据流发送给嵌入式应用程序203。可选地,可以进行这样的配置:外部层接口212通过通路370将数据流发送给数据发送/接收模块202,将数据流从数据发送/接收模块202通过如上所述的通路301发送给嵌入式应用程序203。
控制通路312和372是根据滤波器框架219的状态来对从数据发送/接收模块202到嵌入式应用程序203的数据流进行控制的通路。如果以有效状态安装滤波器框架219管理的滤波器221,则通路306和307有效,并且进行滤波器221的预处理。如果滤波器框架219没有安装有效滤波器221,则通路301有效,并且数据流直接从数据发送/接收模块202流向嵌入式应用程序203。在这种情况下,可以避免由于插入滤波器框架219而导致的开销,并且以根本不进行滤波器221的定制的标准状态,显示出图像处理设备1000的数据处理能力。
如果嵌入式应用程序203使数据流进行滤波处理,则数据流通过通路314流向外部层接口212。通过任务间通信功能实现该传递,其中任务间通信功能可以包括但不局限于由RTOS 214所提供的消息队列等,该任务间通信功能还应用于其他数据传递。如上所述,在层接口211中,特别是外部层接口212将以下数据流传递给解释程序环境215:基本上为通过LAN 2000等从图像处理设备1000的外部接收到的数据流的处理请求数据流350、通过在图像处理设备1000内对处理请求数据流350进行分割所获得的装置控制指令数据流351和绘制数据流352、通过嵌入式应用程序203的转换和生成所获得的传输数据流359、以及经过数据发送/接收模块202的最终传输处理的传输数据流358。可以通过数据管理模块210从外部存储器10取出数据流。外部层接口212通过通路307将所接收的数据流发送给滤波器框架219。滤波器框架219运行时模块对安装在解释程序环境215中的滤波器221进行管理,并且滤波器框架219通过通路308将所接收的数据流发送给滤波器221。例如,通过由解释程序环境215所提供的线程间通信功能在通路308上实现该传递。相同的处理应用于解释程序环境215内的数据的交换。如果设置多个滤波器221,则利用通过由解释程序环境215所提供的线程间通信功能所实现的传递,数据流在各滤波器之间流动。
滤波器221对作为输入所接收的数据流进行预定处理,并且输出结果。通过通路309将滤波器221输出的数据流发送给滤波器框架219。滤波器框架219通过通路310将从滤波器221所接收的数据流传递给外部层接口212,并且外部层接口212通过通路315将数据流发送给作业控制模块205。可选地,可以进行这样的配置:外部层接口212通过通路371将数据流发送给嵌入式应用程序203,通过如上所述的通路313将数据流从嵌入式应用程序203发送给作业控制模块205。
控制通路316和372是用于根据滤波器框架219的状态对从嵌入式应用程序203到作业控制模块205的数据流进行控制的通路。如果以有效状态安装了滤波器框架219管理的滤波器221,则通路314和307有效,并且进行滤波器221的预处理。另一方面,如果滤波器框架219没有安装有效滤波器221,则通路313有效,并且数据流直接流向作业控制模块205。在这种情况下,可以避免由于插入滤波器框架219所导致的内部操作,并且以根本不进行滤波器221的定制的标准状态,显示图像处理设备1000的数据处理能力。
下面是关于对数据流进行滤波处理的作业控制模块205的情况的说明。在这种情况下,数据流通过通路318流向外部层接口213。通过任务间通信功能实现该传递,该任务间通信功能可以包括但不局限于由RTOS 214所提供的消息队列,并且该任务间通信功能还应用于其他数据传递。在层接口211中,特别是内部层接口213将由图像处理设备1000所生成的显示列表和数据流传递给解释程序环境215。通过内部层接口213传递的数据的例子包括翻译器206通过处理绘制数据流352生成的显示列表355、绘制器207通过处理显示列表355生成的中间图像数据流356、图像处理模块209通过处理中间图像数据流356生成的最终图像数据流357、以及通过图像读取单元19读入的扫描图像数据流360等。通过数据流管理模块210从外部存储器10取出数据流。内部层接口213将通过通路318所接收的数据流发送给滤波器框架219。滤波器框架219的运行时模块对安装在解释程序环境215中的滤波器221进行管理。解释程序代码单元220中的滤波处理与上述处理相同,因此省略对其的说明。
滤波器框架219通过通路310将从滤波器221所接收的数据流传递给内部层接口213。内部层接口213通过通路319将该数据流发送给作业控制模块205。可以进行这样的配置:内部层接口213直接将该数据流传递给翻译器206、绘制器207、图像处理模块209、ME控制模块208和数据管理模块210。
控制通路320和372是用于根据滤波器框架219的状态对数据流进行控制的通路。如果以有效状态安装了滤波器框架219所管理的滤波器221,则通路318和307有效,并且进行滤波器221的预处理。另一方面,如果滤波器框架219没有安装有效滤波器221,则通路317有效,并且数据流直接流向作业控制模块205已调度的下一模块。在这种情况下,可以避免由于插入滤波器框架219所导致的开销,并且以根本不进行滤波器221的定制的标准状态,显示图像处理设备1000的数据处理能力。
根据该配置,根据本实施例,数据流属性管理模块228存在于图像处理设备的本地环境中。数据流属性管理模块228执行如图17所示的处理。
在步骤S21,当从数据发送/接收模块202输入处理请求数据流350时,数据流属性管理模块228开始对所接收的处理请求数据流350的属性进行管理。在步骤S22,分析在步骤S21所接收的处理请求数据流350,并且基于其装置控制指令数据流351,判断处理请求数据流350的作业类型和PDL类型。基于在后面参考图10所述的处理请求数据流801中的装置控制指令数据流351中所描述的“作业类型”和“所使用的PDL”进行该判断。
另一方面,根据本实施例,在滤波器221中登记了多个滤波器,其中,如后面参考图7所述,设置(配置)要应用于处理请求数据流或所期望的中间图像数据流的滤波器或滤波器组合。而且,如后面参考图18所述,为滤波器或滤波器组合设置应用条件。图18所示的例子示出如下方法:对于用于绘制数据流的滤波器或滤波器组合,可以将PDL类型和作业类型配置成滤波器应用的条件。也就是说,根据本实施例,为了应用于各种类型的中间数据,登记滤波器或滤波器组合,并且为了判断是否实际应用滤波处理,登记PDL类型和作业类型等。
因此,在步骤S23,选择要检查的滤波器或滤波器组合。在步骤S24,将输入的处理请求数据流中所描述的PDL类型和作业类型与为所登记的滤波器或滤波器组合所设置的PDL类型和作业类型进行比较。如果比较结果显示一致,则在步骤S25,配置嵌入式应用程序203或作业控制模块205,以使得将滤波器应用于中间图像数据流。另一方面,如果步骤S24中的比较结果显示不一致,则处理进入步骤S26,并且配置嵌入式应用程序203或作业控制模块205,以使得禁止中间图像数据流的传送。对于所登记的所有滤波器进行上述步骤S23~S26的处理(步骤S27)。
在上述处理中,尽管数据流属性管理模块228被描述为分析处理请求数据流并检查与滤波器应用条件的兼容性,但是本实施例不局限于该配置。可以进行这样的配置:输入中间数据流,例如,装置控制指令数据流351,并且分析该数据流以检查与应用条件的兼容性。对于该配置,可以进行这样的配置:例如,使用装置控制指令数据流351来进行对于是否要将滤波器功能应用于绘制数据流352的判断。
一旦对嵌入式应用程序203或作业控制模块205进行了这样的配置,则嵌入式应用程序203或作业控制模块205工作,以仅将所生成的中间数据流(即,绘制数据流352或显示列表355)中配置为应用滤波处理的中间数据流发送给层接口211。这样的控制防止中间数据流的不必要的滤波处理,从而提高处理效率。
图5是用于说明在根据本实施例的解释程序环境215中所配置的滤波器框架219中的类的图。
滤波器管理器(FilterManager)类401是用于实现滤波器框架219的运行时环境的对象类。FilterManager类401具有单个连接器(Connector)类405的对象,作为组合。FilterManager类401还具有参考多个(n个)滤波器抽象类402对象和多个(n-1个)管道(Pipe)类406对象组成的排序列表。FilterManager类401还具有用于对已安装的多个滤波器抽象类402的特定类进行管理的滤波器框架219的运行时中的installedFilters属性410。
滤波器抽象类402是抽象类,通过该抽象类,对各种类型的滤波器类进行抽象化。滤波器抽象类402具有表示文件名称的名称属性等的属性,还具有对继承了输入流(InputStream)抽象类403的类的对象的参考,作为输入属性。滤波器抽象类402还具有对继承了输出流(OutputStream)的类的对象的参考,作为输出属性。滤波器抽象类402的特定类实现了可运行接口411以具有运行方法。配置FilterManager类401的对象,以对数据流进行滤波处理,其中生成所管理的各种滤波器抽象类402的实例。此时,与所配置的滤波器对象相对应地生成线程,并且在并行运行的线程的执行上下文中执行滤波器对象的运行方法。也就是说,将滤波器对象传递给构建器的参数,并且生成并启动Java.lang.Thread对象。因此,各滤波器对象自主工作。
InputStream抽象类403是数据流的输入源的抽象类,并且具有可以顺序读出数据的读取方法。
OutputStream抽象类404是数据流的输出目的地的抽象类,并且具有可以顺序写数据的写方法。
连接器类405是表示用于在解释程序环境对象和本地代码之间交换数据流的连接的对象的类。作为其组合,连接器类405具有作为继承InputStream抽象类403的特定类的ConnectorInputStream类412的对象。连接器类405可以使用它的读取方法,顺序读出从本地代码单元201的数据发送/接收模块202所发送的数据流350。作为其组合,连接器类405具有继承OutputStream抽象类404的ConnectorOutputStream类413的对象。将利用连接器类405的写方法顺序写入的数据流设置给本地代码单元201的作业控制模块205,作为数据流。
管道类406是当对数据流进行多个滤波处理时在滤波器抽象类402的一系列对象间进行链接所使用的对象类。作为其组合,该管道类具有继承OutputStream抽象类404的PipedOutputStream类414和继承InputStream抽象类403的PipedInputStream类415的对象。连接PipedOutputStream对象414和PipedInputStream对象415,从而实现线程间通信。也就是说,滤波器对象使用写方法将数据流顺序写到管道对象的PipedOutputStream对象。这样做使得单独的滤波器对象可以使用读取方法从该管道对象的PipedInputStream顺序读出已写入的数据流。
图6A和6B是示出由配置在解释程序环境215中的滤波器框架219所管理的对象的实例的图。图6A示出在一个滤波器处于有效状态的状态下由滤波器框架219的运行时所管理的对象之间的关系。
连接器(Connector)对象501是连接器类405对象。滤波器对象502是滤波器抽象类402的特定类、特定形式的对象。在滤波器对象502的输入属性中保持对连接器对象501的ConnectorInputStream对象的参考。在输出属性中保持连接器对象501的ConnectorOutputStream的属性。滤波器对象502对从“输入”所指向的ConnectorInputStream对象读取的数据流应用滤波处理。因此,将应用了滤波处理的数据流写入“输出”指向的ConnectorOutputStream对象。因此,实现对象之间的打印数据流(该附图中的大箭头)的传递。
图6B示出在两个滤波器处于有效状态的状态下通过滤波器框架219的运行所管理的对象之间的关系。
滤波器1对象503是滤波器抽象类402的特定类、特定形式的对象。在滤波器1对象503的输入属性中保持对连接器对象501的ConnectorInputStream对象的参考。滤波器1对象503对从“输入”指向的ConnectorInputStream对象所读取的数据流应用滤波处理。在滤波器1对象503的输出属性中保持对管道对象504的PipedOutputStream对象的参考。滤波器1对象503将应用了滤波处理的数据流写入“输出”指向的PipedOutputStream对象。
管道对象504是管道类406对象。管道对象504在连接状态下保持PipedOutputStream对象和PipedInputStream对象。通过被管道对象504的PipedOutputStream对象的写方法调用,将数据流传递给PipedOutputStream对象。然后,通过被管道对象504的PipedInputStream对象的读取方法调用,可以从PipedInputStream对象读出该数据流。
滤波器2对象505是滤波器抽象类402的特定类、特定形式的对象。在滤波器2对象505的输入属性中保持对管道对象504的PipedInputStream对象的参考。滤波器2对象505对从“输入”指向的管道对象504所读取的数据流应用滤波处理。在滤波器2对象505的输出属性中保持对连接器对象501的ConnectorOutputStream对象的参考。将应用了滤波处理的数据流写入“输出”指向的连接器对象501的ConnectorOutputStream对象。
因此,在对象之间实现打印数据流的传递(该附图中的大箭头)。可以通过以类似方式在滤波器对象之间配置管道对象504,为数据流处理配置更多数量的滤波器对象。
图7A~7C是用于说明根据本实施例的用于操作滤波器框架219的用户界面的图。可以利用标准库和框架217(图2)中所包括的http服务,作为Web应用程序(Servlet)来实现用于操作滤波器框架219的用户界面。通过在客户机运行的Web浏览器来操作该用户界面。可选地,可以作为Applet型服务实现该用户界面,以便从图像处理设备1000的操作面板18对其进行操作。
图7A示出用于向本实施例的图像处理设备1000的滤波器框架219安装和添加新的滤波器221的用户界面。滤波器安装画面601包括文件名称输入字段602、浏览按钮603和安装按钮604。
用户将预先存储在客户计算机的文件系统中的、并且用户希望安装的滤波器抽象类402的类文件的文件路径输入文件名称输入字段602。
当用户点击浏览按钮603时,打开由客户计算机的Web浏览器所提供的文件选择对话框。用户可以使用文件选择对话框来浏览客户计算机的整个文件系统,以选择用户希望安装的滤波器抽象类402的类文件。将用户通过文件选择对话框所选择的文件的文件路径自动输入文件名称输入字段602。
当检测到用户点击了安装按钮604时,将所指定的滤波器传输给Web应用程序,以作为新的滤波器来进行安装。也就是说,通过客户计算机的Web浏览器将位于输入到文件名称输入字段602中的文件路径处的类文件传输给用于图像处理设备1000正待机的新滤波器安装的Web应用程序。如此接收到该类文件的Web应用程序将所接收的类文件存储在图像处理设备1000的非易失性存储器3中。为了生成对象实例,将类文件动态装载到解释程序环境215。使所生成的文件对象位于滤波器框架运行时所管理的有效滤波器列表的最下游。如果此时在滤波器列表中已存在有效滤波器对象,则生成用于链接新的滤波器对象的新的管道对象。
当作为Web应用程序实现用户界面时,使用RFC标准所规定的、基于HTML形式的文件上载规范,将滤波器的实现类上载到图像处理设备1000。因此,在客户计算机的Web浏览器中显示文件名称输入字段602和浏览按钮603,并且安装按钮604对应于该形式下的“提交”。
如果作为Applet型服务实现用户界面,则将画面601显示在图像处理设备1000的操作面板18上。如果图像处理装置1000具有可移动存储介质,则为在文件名称输入字段602中所指定的文件指定可移动存储介质中的文件路径。可选地,可以进行这样的配置:可以利用URL等指定图像处理设备1000可利用http或FTP等文件传输协议通过网络访问的共享文件。
图7B是用于说明根据本实施例的用于配置安装在图像处理设备1000的滤波器框架219中的滤波器的用户界面的图。
在滤波器配置画面605中,表606示出在滤波器框架219的运行时中所安装的滤波器组的列表。表606中的各行对应于已安装的滤波器。在表606的“选择”列中存在复选框,其中选择选中行中的滤波器进行后面所述的操作。在滤波器处于无效状态的情况下,表606中的“顺序”列示出“无效”。如果滤波器处于有效状态,则利用数据流处理中从上游到下游的方向以升序分配的数字,“顺序”列表示滤波器的顺序。在表606中的“名称”列上显示在滤波器对象的名称属性中所述的滤波器名称。
附图标记607~611表示用于指示关于通过表606中的勾选所表示的、选择的滤波器的操作的按钮。当用户点击显示详细情况按钮607时,显示与表606中所选择的滤波器有关的详细信息。详细信息的例子包括但不局限于滤波器名称、版本号、说明、类名称、安装源类文件名称(即,文件路径或URL)、以及安装的日期和时间。
当点击向上按钮608时,滤波器列中所选择的滤波器的顺序沿数据流处理的上游方向增大1。当点击向下按钮609时,滤波器列中所选择的滤波器的顺序沿数据流处理的下游方向减小1。每一次点击有效/无效按钮610都在所选择的滤波器的有效/无效状态之间进行切换,使得如果所选择的滤波器处于有效状态,则点击有效/无效按钮610使之处于无效状态,并且,如果所选择的滤波器处于无效状态,则有效/无效按钮610使之处于有效状态。当删除了处于无效状态的滤波器对象时,在滤波器框架运行时的管理下,滤波器抽象类402保持安装状态。当点击卸载按钮611时,从图像处理设备1000的解释程序环境215删除所选择的滤波器的类文件。当点击OK按钮621时,确定如通过设置画面即滤波器配置画面605所配置的滤波器配置。
图7C是示出用于选择滤波器是否可应用于处理数据流的用户界面的例子的图。
图7C所示的用户界面是可应用于选择数据流的选择画面612,在显示滤波器安装画面601和滤波器配置画面605之前将该画面显示给用户,从而使得用户能够确定用户想要进行关于滤波处理的安装或设置的数据流。
列表613提供用户界面,通过该用户界面,可以以列表格式选择图像处理设备1000内存在的数据流。字段614显示从列表613所选择的数据流。OK按钮615是用于对于在字段614中所指定的数据流确定滤波器的安装和管理的按钮。当按下OK按钮615时,显示相关数据流的滤波器安装画面601和滤波器配置画面605。
用于选择数据流进行滤波处理的方法不局限于前述方法。例如,可以进行这样的配置:将滤波器属性提供给滤波器抽象类402,从而使得在安装或管理滤波器时,通过参考滤波器属性来识别待进行滤波的数据流。
利用如前所述的用户界面,对于输入的数据流,即,处理请求数据流或期望的中间数据流,可以配置一个或多个滤波器。注意,如图4所示,已经通过层接口211将如此配置的滤波器或滤波器组合配置在中间数据流的数据通路上。
同样地,如以上参考图17所述,根据本实施例,对于滤波器或滤波器组合可以设置可应用的“PDL类型”和“作业类型”,其中,根据本实施例,与中间数据流相对地配置滤波器或滤波器组合。例如,当按下图7B所示的应用条件按钮620时,出现图18所示的用户界面。在图18中,待处理的数据流为“绘制数据流”,示出下面的情况的显示例子:在图7C的数据流的选择(参见614,矩形粗线框)中,选择了绘制数据流,并且在图7B中按下了应用条件按钮620。在图18中,利用PDL类型设置列表框1501和作业类型设置列表框1502确定应该应用滤波器或滤波器组合的PDL类型或作业类型。点击OK按钮1503最终完成该配置。在这种情况下,如果处理请求数据流具有在此所设置的作业类型和PDL类型,则对包括在处理请求数据流中的绘制数据流进行在图7B中所指定的滤波器的处理。
按照前述根据PDL类型或作业类型进行判断,说明了是否应用滤波处理,但是这些仅是例子,并且本实施例不局限于此。
图8是示出根据本实施例的主要滤波处理过程的流程图。
作为特定滤波器类的运行方法实现该处理。滤波器框架219生成有效滤波器类对象,并且在设定了其输入流和输出流之后,分配线程(线程对象)来执行该对象的运行方法。因此,在滤波器框架219所管理的各滤波器对象中自主且并行执行该过程。
在步骤S1,进行必要的预处理。预处理包括但不局限于滤波器221内部使用的属性的初始化、对于模式匹配所使用的模式描述的预处理、以及将流与用于添加使得易于使用输入/输出流的功能的限定类打包的处理。使得易于使用输入/输出流的功能的例子包括但不局限于使得能够事先读取输入流、以及扩展缓冲以有效使用系统资源。Java.io.FilterInputStream和Java.io.FilterOutputStream的特定类是用于添加这类功能的限定类的例子。
在步骤S2,从输入属性中所设置的输入流读出模式匹配处理所需的量的数据。在步骤S3,进行用于发现滤波器操作的数据模式的模式匹配。滤波器操作的数据模式可以是固定数据串本身,或者可以是以正则表达式等格式语言的描述。众所周知各种类型的用于从数据流中发现与模式描述匹配的数据的配置,grep、sed、AWK和Perl尤其公知。
用于高效进行模式匹配的算法已得到了深入的研究。已知的固定模式描述方法包括但局限于:i)分别比较模式描述和部分数据流的哈希函数,仅当哈希值一致时,才判断为存在完全匹配的方法;ii)Knuth-Morris-Pratt算法;以及iii)Boyer-Moore算法。对于使用正则表达式的模式描述,还已知有限自动机等基于格式语言理论的各种类型的算法。在相对新近的Java平台上,在标准安装中包括用于处理正则表达式的类库Java.util.regex。存在以下情况:例如,状态根据数据流中的上游模式而改变,并且必须根据改变后的状态改变下游模式的解释,此外,对于正则表达式等描述越难,则所需要的模式匹配变得越复杂。在这种情况下,可以将用于评价模式特征本身的算法新写为Java程序。因此,可以实现直前实现,而不管模式匹配有多复杂。
在步骤S4,评估模式匹配的结果,并且,如果在数据流中发现与模式描述匹配的数据,则处理进入步骤S5,否则,处理进入步骤S6。在步骤S5,将根据滤波器的目的的操作应用于与模式描述匹配的数据流的部分数据串,并用其结果进行置换。
在步骤S6,将处理后的部分数据串,即,所监视的模式没有出现的数据串、或者对于包括所监视的模式的数据串已进行步骤S5中的处理的数据串,写入输出流。
在步骤S7,对于输入流是否结束进行评估,并且,如果输入流结束,则结束该处理。否则,处理返回到步骤S2,并且重复该过程。
图9是示出根据本实施例的滤波处理的另一例子的流程图。
作为特定滤波器类的运行方法实现该处理。滤波器框架219生成有效滤波器类对象,并且,在设置其输入流和输出流之后,分配线程(线程对象)来执行该对象的运行方法。因此,在滤波器框架219所管理的各滤波器对象中自主且并行地执行该处理。
在步骤S11,进行必要的预处理。预处理包括但不局限于滤波器221内部使用的属性的初始化、对于模式匹配所使用的模式描述的预处理、以及将流与用于添加使得易于使用输入/输出流的功能的限定类打包的处理。使得易于使用输入/输出流的功能的例子包括但不局限于使得能够事先读取输入流、以及扩展缓冲以有效使用系统资源。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的功能规定的。行1中的“作业类型”属性表示图像处理设备1000可以处理的各种类型的作业,并且可以取包括但不局限于“打印”、“安全打印”和“图像获取”的值。对于在其中没有做出绘制指令的“图像获取”等处理请求,在这类处理请求数据流801中通常不包括绘制数据流803。行2中的“复制数量”属性表示将产生多少份印刷物。行3中的“页面布局”属性表示页面布局规范。页面布局规范包括在单张薄片上拼版多个页面的规范,包括但不局限于“1页/张”、“2页/张”或“4页/张”。页面布局规范包括用于放大一个页面、并在多张薄片上进行打印的规范,包括但不局限于“海报(2×2)”或“海报(3×3)”。行4中的“放置顺序”属性表示页面布局时的放置规范,并且可以取包括但不局限于“从左上到右”、“从左上向下”、“从右上到左”、或“从右上向下”的值。行5中的“打印方法”属性表示打印方法,并且可以取包括但不局限于“单面打印”、“双面打印”或“装订打印”的值。行6中的“装订边”属性表示在自动整理处理中装订多张薄片的哪一边,并且可以取包括但不局限于“长边(左)”、“长边(右)”、“短边(顶部)”、和“短边(底部)”的值。行7中的“排出方法”属性表示自动整理方法,并且可以取包括但不局限于“未指定”、“分页”、“订书钉装订”和“打孔”的值。行8中的“纸张给送”属性表示图像形成的纸张,即转印纸张,并且可以取包括但不局限于“自动”、“手动给送托盘”、“纸盒”、“纸台”、或“普通纸”、“重磅纸”、“彩色纸”或“OHP”的值。当处理请求内容是绘制指令时使用行9中的“所使用的PDL”属性,该属性表示绘制数据流所使用的PDL的类型。
当处理请求内容是绘制指令时使用绘制数据流部分803。通常利用PDL配置绘制数据流。
图11是示出根据本实施例的滤波器对绘制数据流803所进行的处理的图。
兼容性滤波器901是绘制数据流803的滤波器类对象,该兼容性滤波器901实现用于解决输入数据流内的绘制数据流803中的兼容性问题的处理,并且写出到输出流。作为绘制数据流803中的兼容性问题,将对由于图像处理设备的厂家间在其实现中作为代表PDL的Adobe PostScript规范的解释的不同而产生的问题及其解决方案进行说明。
例如,如下解释和实现给定厂家的图像处理设备中的PostScript setpagedevice。如果setpagedevice中的/DeferredMediaSelection参数的值为True(真),则在面板上显示打印纸张请求,作为定制打印纸张处理。另一方面,如果该值为False(假),则从指定尺寸的±5的范围内搜索标准纸张大小,或者,如果没有标准纸张大小,则服从PostScript Policy。如下解释和实现另一厂家的图像处理设备中的PostScriptsetpagedevice:如果setpagedevice中的/DeferredMediaSelection参数的值为True,则搜索正好为指定尺寸(没有范围)的标准薄片大小,并且,如果没有标准打印纸张大小,则作为定制打印纸张进行处理。另一方面,如果该值为Fa1se,则在所指定的大小的±5的范围内搜索标准打印纸张大小,或者,如果没有标准打印纸张大小,则服从PostScript Policy。
本实施例假定在行为基于上述两个解释的后者的前提下,已建立了由另一厂家所提供的主干系统的基础架构环境。在这种情况下,前一图像处理设备将打印请求当作为定制纸张作业,因此,在操作面板上将显示“无打印纸张存在”,并且不打印该作业。因此,前一图像处理设备的厂家必须以尽可能低的费用和尽可能快的速度来解决这一兼容性问题。通过将打印请求数据流中出现的setpagedevice中的/DeferredMediaSelection参数从True转换成False,可以至少临时地应付这一需求。兼容性滤波器901是用于解决这类问题的滤波器对象。也就是说,兼容性滤波器901对具有值为True的/DeferredMediaSelection的setpagedevice进行模式匹配,并且在匹配的情况下,输出以False代替True的数据流。
附图标记902表示作为输入到滤波器中的数据流的例子的PostScript打印数据。与该模式匹配的部分数据出现在行2中。附图标记903表示输入数据流902已经过了兼容性滤波器901的处理、并且以滤波后的PostScript打印数据的形式输出的输出数据流的例子。在输出数据流903中已将行2中的文本串True改变成False。
图12是用于说明根据本实施例的滤波器对绘制数据流所进行的滤波处理的图。
在参考图11的前述例子中,使用数据流模式匹配和替换技术来解决基于图像处理设备之间的规范的不同的兼容性问题。在图12所示的例子中,类似技术用于紧急避免图像形成设备中的实现缺陷,该实现缺陷包括但不局限于固件中的程序缺陷。例如,假定在某一图像处理设备的某一版本发布中,存在如下程序缺陷:当LIPS语言(LIPS是一种页面描述语言)的安全图像区域命令VDM(Virtual Device Metafile,虚拟装置元文件)所指定的图像宽度不是8的倍数时,发生绘制错误。
附图标记1001表示故障避免滤波器,其检测可能发生故障的LIPS数据流1002中的模式,并且将数据流1002转换成数据流1003,从而在不显示故障的情况下实现其功能。例如,故障避免滤波器1001检测可能发生故障的数据流1002中的模式,即,VDM图像宽度为225,不是8的倍数,并且故障避免滤波器1001将所检测到的模式的VDM图像宽度转换成8的倍数,在该情况下为大于225的值232。
图13是用于说明根据本实施例的最优化滤波器对绘制数据流所进行的滤波处理的图。
最优化滤波器1101表示关于绘制数据流的最优化滤波器类对象。最优化滤波器1101读出输入流,检测数据流中出现的冗余描述的PDL数据,将所检测到的PDL数据转换成功能相同但更高效的数据,并且将该数据写入输出流。由于打印请求系统或应用程序的环境,由图像处理设备驱动程序所生成的PDL数据流趋向包括重复等冗余模式。最优化滤波器1101将这类冗余描述模式识别为一种惯用语,并且以更高效的等同表述来代替该冗余描述模式。
附图标记1102示出输入最优化滤波器1101的输入数据流的例子。在输入流1102中进行描述,以便为了填充水平矩形而重复填充三个正方形,如附图标记1103所示。附图标记1104示出来自最优化滤波器1101的输出数据流的例子。最优化滤波器1101检测到冗余重复模式,并且将其重写成单个水平矩形的等同填充1105。
图14是用于说明根据本实施例的功能添加滤波器对于装置控制指令数据流所进行的处理的图。
附图标记1201示出将应用于装置控制指令数据流351的功能扩展滤波器类对象的例子。功能扩展滤波器1201读出输入数据流1202,根据输入数据流进行数据转换和添加数据等处理,以添加新的功能,并写入输出数据流。下面是这些情况下的功能扩展的例子。假定客户系统具有专用PDL驱动程序,并且该PDL驱动程序不支持新的图像处理设备的新能力,该新能力包括但不局限于双面打印或各种类型的自动整理。在这一例子中,可以通过在图像处理设备上提供滤波器支持来具有该设备的新功能,而无需改变驱动程序。
作为属性,功能扩展滤波器1201具有用于实现图像处理设备的新能力的设备控制指令配置,其中,滤波器在该图像处理设备上运行。同样将滤波器对象属性值保存在该设备的非易失性存储器中,并且,即使在关闭和重新启动该设备的电源的情况下,也保存对象的状态。具体地,由图像处理设备具有的功能规定该值。
输入数据流1202是输入功能扩展滤波器1201的打印数据流的数据流。数据流1202是从处理请求数据流获得的装置控制指令数据流351,由传统应用程序生成该处理请求数据流,并且在接收它的图像处理设备1000内对其进行分割。可选地,数据流1202是通过处理请求数据流所获得的装置控制指令数据流351,其中,由图像处理设备1000的驱动程序生成该处理请求数据流,并且在该图像处理设备内对其进行分割。
输出数据流1203表示功能扩展滤波器1201顺序处理并输出的装置控制指令数据流的数据流。除输入数据中的简单处理请求数据流外,为了最大利用图像处理设备1000的新功能,插入各种类型的打印作业描述数据。打印作业描述可以表示嵌套结构,并且可以以每一作业为单位、以对多个文档所进行的自动整理等每一处理为单位、以及以各个文档为单位,在各层次等级指定功能扩展滤波器1201的属性等的各种属性。
在输出数据流1203中,行1中的JobStart表示开始作业。行2中的SetJob意为以每一作业为单位开始设置作业。行3中的作业配置数据表示存在各种类型的作业各自的设置数据。行4中的BinderStart表示开始将多个文档捆绑成一个文档。行5中的SetBinder表示以每一捆绑后的文档为单位开始设置。行6中的文档束设置数据表示存在以每一捆绑后的文档为单位的设置数据。行7中的DocumentStart是表示文档的开头的数据。行8中的SetDocument表示以每一文档为单位开始设置。行9中的文档设置数据表示这里存在以每一文档为单位的设置数据。
图15是示出用于操作功能扩展滤波器1201的用户界面的例子的图。
利用标准库和框架217中所包括的HTTP服务,将滤波器操作的用户界面配置成Web应用程序(Servlet)。通过在客户机上运行的Web浏览器操作该用户界面。可选地,可以作为Applet型服务实现该用户界面,以通过图像处理设备1000的操作面板18来操作该用户界面。
附图标记1301示出功能扩展滤波器1201的基本操作画面。用户可以使用该画面来进行确认和改变滤波器对象属性等各种操作。附图标记1302表示用于操作作业类型属性的作业类型部分。附图标记1312表示用于操作复制数量属性的复制数量部分。附图标记1303表示用于操作页面布局属性的页面布局部分。附图标记1304表示用于操作放置属性的放置顺序部分。附图标记1305表示用于操作打印方法属性的打印方法部分。附图标记1306表示用于操作装订边属性的装订边部分。附图标记1307表示用于操作排出方法属性的排出方法部分。附图标记1308表示用于操作纸张给送属性的纸张给送部分。帮助按钮1309用于显示包括但不局限于如何使用滤波器、滤波器的功能、以及属性的意义的描述。在将配置恢复成其默认的情况下使用恢复默认按钮1310。在要应用属性值改变操作时使用应用按钮1311,从而将新值实际设置为滤波器对象的属性。附图标记1313表示预览图标,其显示与若干重要属性的值的状态相对应的模式图,以在画面上确认各种属性。
如上所述,第一实施例具有以下优点:
(1)作为固件静态实现打印请求接收服务器,并且设置用于将由接收服务器所接收的数据流传递给滤波软件的接口,其中,该滤波软件能够动态装载和动态链接,并且被安装在嵌入式Java环境中。因此,可以清楚地分开稳定组件和动态组件,从而使得易于避免利用动态和冗余软件代替整个装置固件等低效处理或避免在Java环境下实现复制软件的效率低下。因此,可以实现在成本和开发负担方面均合理的滤波器框架。此外,可以容易地实现对于已交付的装置的滤波器的动态添加和替换,从而可以以更低成本和更快速度满足客户的需求。
(2)以更精练的Java环境实现滤波器。这使得可以容易地实现复杂的模式匹配算法,在该算法中,需要对嵌入式系统来说困难的动态存储器管理。该软件还具有高级模块化设计,从而可具有强大的可再用性,使得易于采用基于面向对象范式的设计模式。因此,可以实现高生产率的滤波器实现。
(3)使用模式匹配,可以使用滤波器发现在与其他实现的兼容性方面存在问题的输入数据流内的PDL数据,并且可以适当改变PDL数据。因此,可以低成本地解决兼容性问题和故障。特别地,在客户环境下,在不影响系统、应用程序或图像处理设备驱动程序的情况下,可以利用限于图像处理设备的解决方案,实现这类解决方法。而且,如果没有安装滤波器,则可以避免由于插入滤波器框架所导致的开销,并且,即使没有安装滤波器,也可以保持图像处理设备的标准数据处理性能。
(4)可以使用在Java环境下可以以灵活方式扩展的滤波器,来将冗余描述模式识别为一种惯用语,并可以利用更高效的等同表述来替换该冗余描述模式。因此,可以在根本不影响PDL处理系统的主要组件的情况下,提高打印处理性能。另外,由于利用限于图像处理设备的解决方案进行最优化,因而无需在客户环境下修改该系统、应用程序或图像处理设备驱动程序。强大的滤波器生产率和易于安装等维护使得可以实现适合于每一客户的使用环境的最优化。
(5)在Java环境下可以以灵活方式扩展的滤波器可以通过添加利用新功能所需的数据,来允许使用图像处理设备的新功能。甚至当与不支持图像处理设备的该新功能的客户系统、应用程序或图像处理设备驱动程序组合时,也可以如此完全使用该新功能。
(6)利用用作固件的另一软件平台层的Java环境,为固件中运行的滤波器提供了用于操作附加功能的配置的用户界面。因此,可以便捷地提供与各个用户使用环境相对应的功能扩展。
(7)可以对以下每一个进行最优滤波处理:包括与装置控制有关的指令命令的装置控制指令数据流;以及包括与PDL等绘制有关的指令命令的绘制数据流。
(8)当处理给定数据流时插入数据流属性管理模块228,这允许进行数据流处理的模块通过使用从其他数据流提取的信息来确定滤波处理的应用。具体地,可以根据被称为JL(作业语言)的装置控制指令数据流中所述的作业类型和PDL类型,对绘制数据应用滤波处理。
第二实施例
图16是用于说明根据本发明的第二实施例的传输数据流1401的图。第二实施例的硬件配置和软件配置与上述图1~4中的相同,因此省略对其的说明。
响应于来自客户机的处理请求,图像处理设备1000将图像数据等传输到客户机指定的目的地。此时,图像处理设备1000生成由数据发送/接收模块202传输的传输数据流1401。通常可以将传输数据流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等选项也是适合的。
尽管以上说明了本发明的实施例,但是本发明可应用于由多个装置构成的系统,或者可应用于由单个单元形成的装置。
本发明包括这样一种情况:直接或远程地将软件程序提供给系统或装置,其中通过该系统或装置读出并执行提供给其的程序代码,来实现上述实施例的功能。在这种情况下,所提供的程序不必为程序形式,只要具有程序的功能即可。因此,为了利用计算机实现本发明的功能处理,安装在计算机中的程序代码本身也实现本发明。也就是说,用于实现本发明的功能处理的计算机程序本身也包括在本发明中。在这种情况下,程序可以是任何形式,如对象代码、由解释程序执行的程序、或提供给操作系统的脚本数据等,只要该程序具有程序的功能。
用于提供该程序的存储介质的例子包括:软盘、硬盘、光盘、磁光盘(MO)、CD-ROM、CD-R、CD-RW、磁带、非易失性存储卡、ROM、以及DVD(DVD-ROM、DVD-R)等。此外,用于提供该程序的方法的例子包括:通过客户计算机使用浏览器访问因特网上的主页,并且将根据本发明的计算机程序本身,或者已被压缩且具有自动安装功能的计算机程序的文件从主页下载到硬盘等记录介质。另外,可以通过将组成根据本发明的程序的程序代码分成多个文件,并且从不同主页下载该文件来得以实现。也就是说,使得多个用户能够将实现本发明的功能处理的程序文件下载在计算机上的WWW服务器本身包括在本发明中。
另外,可以对根据本发明的程序进行加密,并且将其存储在用于分发的CD-ROM等记录介质中,其中满足特定条件的用户能够从因特网上的主页下载解密的密钥信息,使用该密钥信息执行加密程序,并且将该程序安装在计算机上。
另外,除通过执行已读出的程序来实现上述实施例的功能外,基于该程序的指令,与在计算机上运行的操作系统等协作,可以实现上述实施例的功能。在这种情况下,操作系统等进行部分或全部实际处理,并且通过操作系统等的处理实现上述实施例的功能。
此外,可以将从记录介质读出的程序写到插入计算机的功能扩展板或与计算机连接的功能扩展单元的存储器,从而实现上述实施例的部分或全部实际处理。在这种情况下,在将程序写到功能扩展板或功能扩展单元之后,设置给功能扩展板或功能扩展单元的CPU等基于该程序的指令,进行部分或全部实际处理。
尽管参考典型实施例说明了本发明,但是应该理解,本发明不局限于所公开的典型实施例。所附权利要求书的范围符合最宽的解释,以包含所有修改、等同结构和功能。
本申请要求2005年12月14日提交的日本专利申请2005-360836的优先权,在此通过引用包括其全部内容。
Claims (17)
1.一种信息处理设备,所述信息处理设备在基于由构成硬件的处理器处理的第一命令组所配置的本地环境中,具有基于与所述第一命令组独立地定义的第二命令组所配置的、用于动态执行程序的解释程序环境,所述设备包括:
数据流接收部件,用于在所述本地环境中,接收包括来自客户机的处理请求的输入数据流;
数据处理部件,用于在所述本地环境中,将所述输入数据流分成多个阶段,并在各阶段生成中间数据流;
滤波部件,用于在所述解释程序环境中,通过对由所述数据处理部件所生成的中间数据流进行滤波,生成滤波后的数据流;
接口部件,用于在所述本地环境中,从所述滤波部件提取由所述数据处理部件所生成的中间数据流,以及将由所述数据处理部件所生成的中间数据流写回到所述滤波部件;
滤波器管理部件,用于在所述本地环境中,通过所述接口部件将由所述数据处理部件所生成的中间数据流传递给所述滤波部件,以及通过所述接口部件取出所述滤波后的数据流;以及
控制部件,用于在所述本地环境中,基于所述输入数据流中包含的预先指定的项目的信息的内容,对所述滤波器管理部件将中间数据流传递给所述滤波部件的执行进行控制。
2.根据权利要求1所述的信息处理设备,其特征在于,还包括传输部件,所述传输部件用于将由所述滤波部件处理后的中间数据流传输给信息处理设备。
3.根据权利要求1所述的信息处理设备,其特征在于,还包括:
设置部件,用于在输入数据流中包含的项目中设置要用作用于判断是否将中间数据传递给所述滤波部件的所述预先指定的项目的项目,以及基于所述项目设置用于判断是否将中间数据传递给所述滤波部件的条件;
其中,所述控制部件基于所述输入数据流中包含的所述预先指定的项目的信息以及由所述设置部件所设置的判断条件,对所述滤波器管理部件将所述中间数据流传递给所述滤波部件的执行进行控制。
4.根据权利要求1所述的信息处理设备,其特征在于,所述数据处理部件将所述输入数据流分成包括第一中间流和第二中间流的多个中间流;
以及,其中,所述控制部件从所述第一中间流提取所述预先指定的项目的信息,并基于所述信息的内容,对所述滤波器管理部件将所述第二中间流传递给所述滤波部件的执行进行控制。
5.根据权利要求1所述的信息处理设备,其特征在于,所述客户机是通过网络连接的信息处理设备,或者所述客户机内置于所述信息处理设备中。
6.根据权利要求1所述的信息处理设备,其特征在于,由所述数据处理部件所生成的所述中间数据流包括:装置控制指令数据流,用于向所述信息处理设备给出装置控制指令;绘制数据流,用于向所述信息处理设备给出绘制指令;通过对所述装置控制指令数据流和所述绘制数据流进行处理所生成的中间图像数据流;以及通过对所述中间图像数据流进行处理所生成的最终图像数据流。
7.根据权利要求1所述的信息处理设备,其特征在于,所述滤波部件的滤波处理包括用于将新的数据流添加到中间数据流的处理。
8.根据权利要求1所述的信息处理设备,其特征在于,所述滤波部件的滤波处理包括用于用其他数据流来替换中间数据流的特定数据流的处理。
9.根据权利要求1所述的信息处理设备,其特征在于,还包括用于使用所述解释程序环境中的用户界面来操作所述滤波部件的处理参数的部件。
10.根据权利要求1所述的信息处理设备,其特征在于,所述解释程序环境提供用于在所述解释程序环境上运行的程序的线程机制,其中,所述滤波部件在与所述线程机制独立的执行上下文下自主执行滤波处理。
11.根据权利要求1所述的信息处理设备,其特征在于,所述解释程序环境基于Java平台。
12.根据权利要求1所述的信息处理设备,其特征在于,所述滤波器管理部件将从所述滤波部件所具有的一个或多个滤波器功能中选择的滤波器功能配置在通过所述接口部件所形成的中间数据流通路中。
13.根据权利要求12所述的信息处理设备,其特征在于,还包括滤波器配置操作部件,所述滤波器配置操作部件用于提供用于指示从所述滤波器管理部件所管理的多个滤波器功能中选择的滤波器功能的配置的用户界面。
14.根据权利要求12所述的信息处理设备,其特征在于,在所述中间数据流通路中没有配置滤波器功能的情况下,所述滤波器管理部件不将所述中间数据流传递给所述滤波部件。
15.根据权利要求12所述的信息处理设备,其特征在于,还包括滤波器导入部件,所述滤波器导入部件用于将用于实现所述滤波器功能的程序文件从外部导入所述设备,并在所述滤波器管理部件的管理下进行配置。
16.一种信息处理设备的控制方法,所述信息处理设备在基于由构成硬件的处理器处理的第一命令组所配置的本地环境中,具有基于与所述第一命令组独立地定义的第二命令组所配置的、用于动态执行程序的解释程序环境,所述方法包括:
数据流接收步骤,用于在所述本地环境中,接收包括来自客户机的处理请求的输入数据流;
数据处理步骤,用于在所述本地环境中,将所述输入数据流分成多个阶段,并在进行解释的各阶段生成中间数据流;
滤波步骤,用于在所述解释程序环境中,通过对在所述数据处理步骤中所生成的中间数据流进行滤波,生成滤波后的数据流;
接口步骤,用于在所述本地环境中,从所述滤波步骤提取在所述数据处理步骤中所生成的中间数据流,以及将在所述数据处理步骤中所生成的中间数据流写回到所述滤波步骤;
滤波器管理步骤,用于在所述本地环境中,通过所述接口步骤将在所述数据处理步骤中所生成的中间数据流传递给所述滤波步骤,以及通过所述接口步骤取出所述滤波后的数据流;以及
控制步骤,用于在所述本地环境中,基于所述输入数据流中包含的预先指定的项目的信息的内容,对通过所述滤波器管理步骤将中间数据流传递给所述滤波步骤的执行进行控制。
17.一种存储在计算机可读介质中的计算机可执行程序,用于实现信息处理设备的控制方法,所述信息处理设备在基于由构成硬件的处理器处理的第一命令组所配置的本地环境中,具有基于与所述第一命令组独立地定义的第二命令组所配置的、用于动态执行程序的解释程序环境,所述程序包括:
数据流接收步骤,用于在所述本地环境中,接收包括来自客户机的处理请求的输入数据流;
数据处理步骤,用于在所述本地环境中,将所述输入数据流分成多个阶段,并在进行解释的各阶段生成中间数据流;
滤波步骤,用于在所述解释程序环境中,通过对在所述数据处理步骤中所生成的中间数据流进行滤波,生成滤波后的数据流;
接口步骤,用于在所述本地环境中,从所述滤波步骤提取在所述数据处理步骤中所生成的中间数据流,以及将在所述数据处理步骤中所生成的中间数据流写回到所述滤波步骤;
滤波器管理步骤,用于在所述本地环境中,通过所述接口步骤将在所述数据处理步骤中所生成的中间数据流传递给所述滤波步骤,以及通过所述接口步骤取出所述滤波后的数据流;以及
控制步骤,用于在所述本地环境中,基于所述输入数据流中包含的预先指定的项目的信息的内容,对通过所述滤波器管理步骤将中间数据流传递给所述滤波步骤的执行进行控制。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005360836A JP2007164526A (ja) | 2005-12-14 | 2005-12-14 | 情報処理装置及び方法 |
JP360836/2005 | 2005-12-14 | ||
PCT/JP2006/325139 WO2007069757A1 (en) | 2005-12-14 | 2006-12-12 | Information processing apparatus and method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101331453A true CN101331453A (zh) | 2008-12-24 |
CN101331453B CN101331453B (zh) | 2012-05-23 |
Family
ID=38163058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800470640A Expired - Fee Related CN101331453B (zh) | 2005-12-14 | 2006-12-12 | 信息处理设备和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090150873A1 (zh) |
EP (1) | EP1963969A4 (zh) |
JP (1) | JP2007164526A (zh) |
CN (1) | CN101331453B (zh) |
WO (1) | WO2007069757A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4706220B2 (ja) | 2004-09-29 | 2011-06-22 | ソニー株式会社 | 情報処理装置および方法、記録媒体、並びにプログラム |
JP2007208594A (ja) * | 2006-02-01 | 2007-08-16 | Seiko Epson Corp | 画像処理装置、画像処理方法及び画像処理プログラム |
US9100319B2 (en) * | 2007-08-10 | 2015-08-04 | Fortinet, Inc. | Context-aware pattern matching accelerator |
US8935677B2 (en) * | 2008-04-07 | 2015-01-13 | Microsoft Corporation | Automatic reverse engineering of input formats |
JP5028372B2 (ja) * | 2008-09-26 | 2012-09-19 | 京セラドキュメントソリューションズ株式会社 | 画像処理装置、画像処理方法及び画像処理プログラム |
US8314951B2 (en) | 2008-09-26 | 2012-11-20 | Kyocera Document Solutions Inc. | Image processing apparatus, and computer-readable recording medium |
US20100162065A1 (en) * | 2008-12-19 | 2010-06-24 | Unity Semiconductor Corporation | Protecting integrity of data in multi-layered memory with data redundancy |
US9558247B2 (en) | 2010-08-31 | 2017-01-31 | Samsung Electronics Co., Ltd. | Storage device and stream filtering method thereof |
US20120054420A1 (en) * | 2010-08-31 | 2012-03-01 | Jeonguk Kang | Storage device and stream filtering method thereof |
US9152437B2 (en) * | 2010-10-28 | 2015-10-06 | Hewlett-Packard Development Company, L.P. | Dynamically installing image processing |
US20140204923A1 (en) * | 2011-06-17 | 2014-07-24 | Telefonaktiebolaget L M Ericsson (Publ) | Method and Arrangement in a Wireless Communication System |
US8763018B2 (en) | 2011-08-22 | 2014-06-24 | Solarflare Communications, Inc. | Modifying application behaviour |
US9632804B2 (en) * | 2013-01-24 | 2017-04-25 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus, and communication system for implementing internet application |
US9542238B2 (en) * | 2013-05-23 | 2017-01-10 | Nxp Usa, Inc. | Systems and methods for direct memory access coherency among multiple processing cores |
US9705833B2 (en) * | 2014-04-02 | 2017-07-11 | International Business Machines Corporation | Event driven dynamic multi-purpose internet mail extensions (MIME) parser |
JP5967623B2 (ja) * | 2014-05-08 | 2016-08-10 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | フィルタを生成する装置及び方法 |
CN104298512B (zh) * | 2014-10-10 | 2018-02-16 | 南京莱斯信息技术股份有限公司 | 一种基于OSGi标准的功能组件式集成开发系统 |
JP6746326B2 (ja) * | 2016-02-19 | 2020-08-26 | キヤノン株式会社 | 印刷データの解釈を複数の解釈手段で行う印刷装置、印刷方法、プログラム |
JP6824725B2 (ja) * | 2016-12-20 | 2021-02-03 | キヤノン株式会社 | アプリケーションを搭載可能な画像形成装置およびその制御方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06110627A (ja) * | 1992-09-29 | 1994-04-22 | Nissin Electric Co Ltd | プリンタサーバ |
AU3060097A (en) * | 1996-05-14 | 1997-12-05 | Ricoh Corporation | Java printer |
JP3683387B2 (ja) | 1997-08-01 | 2005-08-17 | シャープ株式会社 | ネットワークコンピュータ内蔵プリンタおよびこれを備えたコンピュータネットワークシステム |
JPH11282684A (ja) * | 1998-03-27 | 1999-10-15 | Canon Inc | 画像処理装置、画像処理装置の制御方法、および記憶媒体 |
JPH11306107A (ja) | 1998-04-20 | 1999-11-05 | Ricoh Co Ltd | ネットワーク通信システムおよびネットワーク通信システムにおける周辺機器のソフトウェア更新・配布方法並びにその方法をコンピュータに実行させるプログラムを記録した機械読み取り可能な記録媒体 |
US6683696B1 (en) * | 1998-10-27 | 2004-01-27 | Hewlett-Packard Development Company, L.P. | Filter based data imaging method for an image forming device |
US6707568B1 (en) * | 1999-11-02 | 2004-03-16 | Ricoh Company, Ltd. | Printer driver filter and method of printing with the same |
US7069590B1 (en) * | 2000-02-17 | 2006-06-27 | Microsoft Corporation | System and method for protecting data streams in hardware components |
US6813762B1 (en) * | 2000-02-22 | 2004-11-02 | Freescale Semiconductor, Inc. | Method for processing program files in a programming language capable of dynamic loading |
US7080373B2 (en) * | 2001-03-07 | 2006-07-18 | Freescale Semiconductor, Inc. | Method and device for creating and using pre-internalized program files |
US7617446B2 (en) * | 2001-03-26 | 2009-11-10 | International Business Machines Corporation | Method and system for pre-print processing of web-based documents to reduce printing costs |
JP4227342B2 (ja) | 2002-02-27 | 2009-02-18 | キヤノン株式会社 | 画像形成装置、画像形成方法、および記憶媒体 |
JP3900981B2 (ja) * | 2002-03-19 | 2007-04-04 | 富士ゼロックス株式会社 | スプールフル時の印刷ジョブ再投入方式 |
EP1385089A3 (en) * | 2002-07-26 | 2007-01-24 | Ricoh Company, Ltd. | Image forming apparatus, information processing apparatus, program execution method and program producing method |
JP4066747B2 (ja) | 2002-08-29 | 2008-03-26 | 株式会社村田製作所 | 測定装置 |
US7136941B2 (en) * | 2002-12-04 | 2006-11-14 | Microsoft Corporation | Print management architecture for computing devices having a set of filters functions wherein the functions are prevented from conflicting with one another |
JP2004231433A (ja) | 2003-01-28 | 2004-08-19 | Nissan Motor Co Ltd | 改質反応器およびその製造方法 |
JP4164467B2 (ja) * | 2004-03-26 | 2008-10-15 | キヤノン株式会社 | 画像処理装置、画像処理制御方法、及びプログラム |
JP4920879B2 (ja) * | 2004-08-06 | 2012-04-18 | キヤノン株式会社 | 画像処理装置及びデータ処理装置 |
JP4738773B2 (ja) * | 2004-08-06 | 2011-08-03 | キヤノン株式会社 | 画像処理装置及びその制御方法 |
US7554682B2 (en) * | 2004-12-28 | 2009-06-30 | Microsoft Corporation | Printer filter configuration |
-
2005
- 2005-12-14 JP JP2005360836A patent/JP2007164526A/ja active Pending
-
2006
- 2006-12-12 WO PCT/JP2006/325139 patent/WO2007069757A1/en active Application Filing
- 2006-12-12 CN CN2006800470640A patent/CN101331453B/zh not_active Expired - Fee Related
- 2006-12-12 US US12/095,876 patent/US20090150873A1/en not_active Abandoned
- 2006-12-12 EP EP06834866A patent/EP1963969A4/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP1963969A4 (en) | 2009-04-08 |
US20090150873A1 (en) | 2009-06-11 |
WO2007069757A1 (en) | 2007-06-21 |
CN101331453B (zh) | 2012-05-23 |
EP1963969A1 (en) | 2008-09-03 |
JP2007164526A (ja) | 2007-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101331453B (zh) | 信息处理设备和方法 | |
CN1731350B (zh) | 图像处理设备及其控制方法以及数据处理设备 | |
CN100533365C (zh) | 图像打印设备及图像打印控制方法 | |
EP1638017B1 (en) | Method, program and storage medium for controlling an embedded device | |
KR101456624B1 (ko) | 화상형성장치, 및 웹 어플리케이션 설치 방법 | |
US7158248B2 (en) | Control of software via bundling | |
EP1999557B1 (en) | Printing controller,gui display method, printer driver, and recording medium | |
US20120281245A1 (en) | Information processing apparatus, information processing method, and storage medium | |
CN101458615B (zh) | 信息处理设备和信息处理设备控制方法 | |
JP2006268467A (ja) | 画像処理装置 | |
JP2006163901A (ja) | ネットワーク機器、プログラムおよび記録媒体 | |
JP2009054153A (ja) | ドキュメント処理装置のドライバをカスタム化するシステムおよび方法 | |
JP2006215720A (ja) | 画像処理装置及びその制御方法 | |
CN1818871B (zh) | 信息处理装置 | |
JP2009043078A (ja) | シミュレータプログラム及び記録媒体 | |
JP2006020341A (ja) | Webサービス機能を有する画像形成装置 | |
JP2007201796A (ja) | 画像形成装置 | |
JP2007251246A (ja) | 受信データ処理方法、画像処理装置、画像形成装置、受信データ処理方法をコンピュータに実行させるプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120523 |