图像处理装置、其控制方法及计算机可读存储介质与流程

文档序号:19414497发布日期:2019-12-14 00:47阅读:168来源:国知局
图像处理装置、其控制方法及计算机可读存储介质与流程

本发明涉及一种图像处理装置、其控制方法及计算机可读存储介质。



背景技术:

传统上已知,当执行包括不是由图像处理装置提供的图像处理的各种作业时,包括新图像处理的作业执行应用被创建为插件并被安装在图像处理装置中以实施该新图像处理。各种作业例如是包括在图像处理装置上可执行的图像处理(诸如复印、打印、扫描并保存以及扫描并发送等)的设备控制处理。新图像处理是不能通过图像处理装置中的现有作业而实施的处理,诸如针对输入数据的歪斜校正、格式转换或ocr(光学特征识别)后的翻译。

添加了多个新图像处理的图像处理装置能够并行地执行所添加的新图像处理。然而,当使用许多存储器的多个图像处理被同时执行时,存储器使用量可能超出图像处理装置的存储器的上限。

当存储器使用量超出存储器的上限时,os进行交换操作以将使用频率低的存储区域中的数据临时保存在硬盘中,释放该区域,并在必要时将数据写回到存储器。此时,写处理在hdd上进行,可能会降低在此过程中各种处理的性能。例如,当该过程中存在ui模块时,可能发生ui画面没有对用户操作进行快速响应的现象。也可能发生如下现象:直到在同一过程中执行的多个图像处理完成为止的时间变得长于不进行交换操作时所花的时间。如果连交换区域都用尽,则os强制终止使用大量存储器资源的过程。在这种情况下,用于执行图像处理的过程结束,所以除非图像处理装置被重新启动,否则不能重新开始图像处理。

为了解决此问题,日本特愿第2013-120103号公报提出了如下技术:实时测量各插件的存储器使用量,并且当其超出预定的最大存储器容量时,不启动插件。

然而,上述现有技术存在下面将描述的问题。在该现有技术中,例如,在启动插件时,计算针对各插件定义的所宣称的存储器使用量与图像处理装置中已经使用的存储器的使用量的和。如果总的存储器使用量超出预定的最大存储器容量,则通过不启动插件本身来避免如上所述的存储器不足。在上述的控制中,当计算出的存储器使用量超出最大存储器容量时,除非已经启动的插件停止,否则不能启动新插件。除非被并行执行,否则甚至是实际上能够被执行的插件也不能被启动来进行处理。这损害了用户便利性。



技术实现要素:

本发明能够实现如下的机制:在处理执行期间(运行时)动态地计算总存储器使用量,并且在适当地避免存储器不足的同时并行地执行多个图像处理,而不限制插件自身的启动。

本发明的一方面提供一种图像处理装置,其能够通过一个或更多个插件应用执行多个图像处理,所述图像处理装置包括:存储器设备,其存储一组指令;以及至少一个处理器,其执行该组指令以:在由插件应用执行图像处理期间请求由插件应用执行新图像处理的情况下,搜索能够执行新图像处理的插件应用;获得与搜索到的插件应用一起被保持的、执行插件应用的新图像处理时的存储器使用量以及插件应用的已经在运行中的各个图像处理的存储器使用量;将由所获得的各个图像处理的存储器使用量和当执行被请求的新图像处理时的存储器使用量获得的总存储器使用量、与表示在执行插件应用的过程中被允许使用的存储器使用量的允许存储器容量进行比较;以及在比较结果为总存储器使用量不超出允许存储器容量的情况下,执行新图像处理,而在总存储器使用量超出允许存储器容量的情况下,向请求源通知表示由于存储器不足而不能执行新图像处理的错误,而不执行新图像处理。

本发明的另一方面提供一种图像处理装置,其能够在用于执行以第一编程语言记述的程序的第一执行环境中和用于执行以第二编程语言记述的程序的第二执行环境中执行多个图像处理,所述图像处理装置包括:存储器设备,其存储一组指令;以及至少一个处理器,其执行该组指令以:在第一执行环境中执行图像处理期间请求了由以第一编程语言记述的第一应用来执行新图像处理的情况下,搜索能够执行新图像处理的第一应用;获得与搜索到的第一应用一起被保持的、执行第一应用的新图像处理时的存储器使用量以及第一执行环境中已经在运行中的各个图像处理的存储器使用量;将由所获得的各个图像处理的存储器使用量和当执行被请求的新图像处理时的存储器使用量获得的总存储器使用量、与表示在第一执行环境中被允许使用的存储器使用量的允许存储器容量进行比较;以及在比较结果为总存储器使用量不超出允许存储器容量的情况下,执行新图像处理,而在总存储器使用量超出允许存储器容量的情况下,向请求源通知表示由于存储器不足而不能执行新图像处理的错误,而不执行新图像处理。

本发明的又一方面提供一种图像处理装置的控制方法,所述图像处理装置能够通过一个或更多个插件应用来执行多个图像处理,所述控制方法包括:在插件应用执行图像处理期间请求由插件应用执行新图像处理的情况下,搜索能够执行新图像处理的插件应用;获得与搜索到的插件应用一起被保持的、在执行插件应用的新图像处理时的存储器使用量以及插件应用的已经在运行中的各个图像处理的存储器使用量;将由所获得的各个图像处理的存储器使用量和当执行被请求的新图像处理时的存储器使用量获得的总存储器使用量、与表示在执行插件应用的过程中被允许使用的存储器使用量的允许存储器容量进行比较;以及在比较结果为总存储器使用量不超出允许存储器容量的情况下,执行新图像处理,而在总存储器使用量超出允许存储器容量的情况下,向请求源通知表示由于存储器不足而不能执行新图像处理的错误,而不执行新图像处理。

本发明的又一方面提供一种图像处理装置的控制方法,所述图像处理装置能够在用于执行以第一编程语言记述的程序的第一执行环境中和用于执行以第二编程语言记述的程序的第二执行环境中执行多个图像处理,所述控制方法包括:在第一执行环境中执行图像处理期间请求以第一编程语言记述的第一应用来执行新图像处理的情况下,搜索能够执行新图像处理的第一应用;获得与搜索到的第一应用一起被保持的、在执行第一应用的新图像处理时的存储器使用量以及第一执行环境中已经在运行中的各个图像处理的存储器使用量;将由所获得的各个图像处理的存储器使用量和当执行被请求的新图像处理时的存储器使用量获得的总存储器使用量、与表示在第一执行环境中被允许使用的存储器使用量的允许存储器容量进行比较;以及在比较结果为总存储器使用量不超出允许存储器容量的情况下,执行新图像处理,而在总存储器使用量超出允许存储器容量的情况下,向请求源通知表示由于存储器不足而不能执行新图像处理的错误,而不执行新图像处理。

本发明的又一方面提供一种存储计算机程序的非暂时性计算机可读存储介质,所述计算机程序用于使计算机执行图像处理装置的控制方法中的各步骤,所述图像处理装置能够通过一个或更多个插件应用来执行多个图像处理,所述控制方法包括:在由插件应用执行图像处理期间请求由插件应用执行新图像处理的情况下,搜索能够执行新图像处理的插件应用;获得与搜索到的插件应用一起被保持的、执行插件应用的新图像处理时的存储器使用量以及插件应用的已经在运行中的各个图像处理的存储器使用量;将由所获得的各个图像处理的存储器使用量和当执行被请求的新图像处理时的存储器使用量获得的总存储器使用量、与表示在执行插件应用的过程中被允许使用的存储器使用量的允许存储器容量进行比较;以及在比较结果为总存储器使用量不超出允许存储器容量的情况下,执行新图像处理,而在总存储器使用量超出允许存储器容量的情况下,向请求源通知表示由于存储器不足而不能执行新图像处理的错误,而不执行新图像处理。

本发明的又一方面提供一种存储计算机程序的非暂时性计算机可读存储介质,所述计算机程序用于使计算机执行图像处理装置的控制方法中的各步骤,所述图像处理装置能够在用于执行以第一编程语言记述的程序的第一执行环境中和用于执行以第二编程语言记述的程序的第二执行环境中执行多个图像处理,所述控制方法包括:在由插件应用执行图像处理期间请求由插件应用执行新图像处理的情况下,搜索能够执行新图像处理的插件应用;使获得单元获得与搜索到的插件应用一起被保持的、执行插件应用的新图像处理时的存储器使用量以及插件应用的已经在运行中的各个图像处理的存储器使用量;将由所获得的各个图像处理的存储器使用量和当执行被请求的新图像处理时的存储器使用量获得的总存储器使用量、与表示在执行插件应用的过程中被允许使用的存储器使用量的允许存储器容量进行比较;以及在比较结果为总存储器使用量不超出允许存储器容量的情况下,执行新图像处理,而在总存储器使用量超出允许存储器容量的情况下,向请求源通知表示由于存储器不足而不能执行新图像处理的错误,而不执行新图像处理。

通过以下参照附图对示例性实施例的说明,本发明的其他特征将变得清楚。

附图说明

图1是示出根据实施例的图像处理形成系统的布置的示例的图;

图2是示出根据实施例的图像处理装置的硬件布置的示例的框图;

图3是示出根据实施例的图像处理装置的软件布置的示例的框图;

图4是示出根据实施例的图像处理装置的处理过程的流程图;

图5是示出根据实施例的本地(native)图像处理服务器的处理过程的流程图;

图6是示出根据实施例的图像处理装置的软件布置的示例的框图;

图7是示出根据实施例的图像处理装置的处理过程的流程图;

图8a和图8b是示出根据实施例的本地图像处理模块的处理过程的流程图;

图9是示出根据实施例的本地图像处理服务器的处理过程的流程图;

图10是示出根据实施例的本地图像处理服务器的处理过程的流程图;

图11是示出根据实施例的本地图像处理模块的处理过程的流程图。

具体实施方式

现在将参照附图详细地描述本发明的优选实施例。注意,除非另外特别指出,否则在这些实施例中给出的部件的相对布置、数字表达式及数值不限制本发明的范围。

<第一实施例>

<系统布置>

下面将参照附图描述本发明的第一实施例。首先,将参照图1描述图像形成系统的布置的示例。根据该实施例的图像形成系统包括图像处理装置101和102、信息处理终端103和104以及服务器105。图像处理装置101和102、信息处理终端103和104以及服务器105经由网络106相互连接以使得他们能够相互通信。

图1例示了布置有两个图像处理装置101和102的示例,但是图像处理装置的数量是任意的(一个或更多个)。各个图像处理装置101和102能够通过相同的布置实现。由此,将描述作为图像处理装置101和102的代表的图像处理装置101的布置,而省略对图像处理装置102的详细描述。注意,网络106是诸如lan(局域网)或因特网等的网络,通过该网络,图像形成系统中的装置能够相互通信。不意图限制信息处理终端和服务器的数量及功能。服务器105可以通过分配其功能而由多个装置实现。注意,本发明所应用的图像处理装置不必总是包括图像形成功能,并且能够同时(并行)执行多个图像处理的装置是适用的。

图像处理装置101能够从信息处理终端103和104接收图像数据的打印请求(打印数据)并进行打印,通过图像处理装置101的扫描仪读取图像数据或者打印通过扫描仪读取的图像数据。图像处理装置101还能够保存从信息处理终端103和104接收到的打印数据,或者将通过图像处理装置101的扫描仪读取的图像发送到信息处理终端103和104。图像处理装置101能够使用服务器105进行图像处理,或者打印服务器105中存储的文档。另外,图像处理装置101能够实现诸如mfp(多功能外围设备)等的公知图像处理装置的功能。

<图像处理装置的硬件布置>

接下来,将参照图2描述图像处理装置101的硬件布置的示例。图像处理装置101包括控制器201、打印机202、扫描仪203和操作单元204。控制器201包括cpu211、ram212、hdd213、网络i/f214、打印机i/f215、扫描仪i/f216、操作单元i/f217及扩展i/f218。cpu211能够与ram212、hdd213、网络i/f214、打印机i/f215、扫描仪i/f216、操作单元i/f217及扩展i/f218交换数据。

cpu211将从hdd213读出的指令展开到ram212,执行在ram212中展开的指令,并执行后面将要描述的各种处理。hdd213能够存储可由cpu211执行的指令、图像处理装置101中使用的设置值、与从用户请求的处理相关联的数据等。ram212是用于临时存储cpu211从hdd213读出的指令的区域。ram212还能够存储执行指令所需的各种数据。例如,通过将输入数据在ram212中展开而能够进行图像处理。

网络i/f214是用于与图像形成系统中的装置进行网络通信的接口。网络i/f214能够向cpu211通知数据的接收,或者将ram212中的数据发送到网络106。打印机i/f215能够将从cpu211接收到的打印数据发送到打印机202,或者将从打印机202接收到的打印机202的状态传送到cpu211。扫描仪i/f216能够将从cpu211接收到的图像读取指令发送到扫描仪203,并将从扫描仪203接收到的图像数据传送到cpu211。此外,扫描仪i/f216还能够将从扫描仪203接收到的状态传送到cpu211。

操作单元i/f217能够将用户在操作单元204上输入的指令传送到cpu211,或者将针对用户的操作的画面信息传送到操作单元204。扩展i/f218是能够将外部设备连接到图像处理装置101的接口。扩展i/f218包括例如usb(通用串行总线)接口。当诸如usb存储器等的外部存储设备被连接到扩展i/f218时,图像处理装置101能够读出外部存储设备中存储的数据,以及将数据写入外部存储设备。

打印机202能够在诸如纸张或片材等的打印介质上打印从打印机i/f215接收到的图像数据,或者将打印机202的状态传送到打印机i/f215。扫描仪203能够根据从扫描仪i/f216接收到的图像读取指令来读取扫描仪203上设置的纸张上书写的信息,数字化该信息,并将其传送到扫描仪i/f216。扫描仪203能够将其状态传送到扫描仪i/f216。操作单元204是用于提示用户进行用于向图像处理装置101输入各种指令的操作的接口。例如,操作单元204包括具有触摸板的液晶屏幕,向用户提供操作画面,以及接受来自用户的操作。

<图像处理装置的软件布置>

接下来,将参照图3描述根据本实施例的由cpu211处理的软件的结构的示例。使用图像处理装置101的hdd213中存储的程序来构造具有图3所示结构的软件。在图3中,排除少数例外情况,上层使用由下层提供的服务。

在图3中,最下层是包括操作系统317的层,并且在该层中进行程序执行管理、存储器管理等。打印机控制驱动器318、扫描仪控制驱动器319和网络i/f控制驱动器320被嵌入在操作系统317中。打印机控制驱动器318、扫描仪控制驱动器319和网络i/f控制驱动器320能够相互协作地发挥作用。打印机控制驱动器318是用于经由打印机i/f215控制打印机202的软件。扫描仪控制驱动器319是用于经由扫描仪i/f216控制扫描仪203的软件。网络i/f控制驱动器320是用于控制网络i/f214的软件。

从最下层起的第二层包括用作第二执行环境的示例的语言设备控制库309及图像处理控制器340。在本实施例中,例如以诸如c语言或c++语言的编译器语言(第二编程语言)来描述设备控制库309及图像处理控制器340。由此,设备控制库309及图像处理控制器340以cpu211可直接执行的目标文件的形式存储在hdd213中。设备控制库309静态或动态地链接到后面将描述的单功能插件应用302或设备控制应用304。设备控制库309基于来自各应用程序的指令使用操作系统317。另外,设备控制库309能够请求本地图像处理连接库314的图像处理。

接下来,将描述设备控制库309的布置的示例。打印库310是提供用于使用打印机控制驱动器318的功能来控制打印作业的api(应用程序接口)的库。打印作业表示打印图像处理装置101的hdd213中保存的打印数据或者打印经由网络i/f214从外部设备接收到的打印数据的一系列处理。外部设备是例如信息处理终端103或104。复印库311是提供用于使用扫描仪控制驱动器319和打印机控制驱动器318的功能来控制复印作业的api的库。复印作业表示通过打印机202来打印由扫描仪203扫描的图像数据的一系列处理。

扫描保存库312是提供用于使用扫描仪控制驱动器319的功能来控制扫描保存作业的api的库。扫描保存作业表示将通过扫描仪203扫描的图像数据转换为打印数据或通用格式的数据并将数据保存在hdd213或连接到扩展i/f218的诸如usb存储器等的外部存储设备中的一系列处理。注意,通用格式是诸如pdf(便携式文件格式)或jpeg(联合图像专家组)等的数据格式。

扫描发送库313是提供用于使用扫描仪控制驱动器319和网络i/f控制驱动器320的功能来控制扫描发送作业的api的库。扫描发送作业表示将通过扫描仪203扫描的图像数据转换为通用格式的数据并经由网络i/f214将数据发送到文件服务器、或者将数据附加到电子邮件并发送到外部设备的一系列处理。文件服务器例如是服务器105,外部设备例如是信息处理终端103或104。

图像处理控制器340包括本地图像处理连接库314、本地图像处理服务器315及本地图像处理模块(本地应用)316。本地应用是图像处理装置101中预先安装的并提供诸如图像处理等各种功能的应用。相反,后面将描述的插件应用是产品出厂后能够添加到图像处理装置101的应用。当本地图像处理连接库314接收来自设备控制库309的图像处理执行请求时,其将请求内容传送到图像处理连接库332。在接收到来自以后述的语言记述的软件的请求时,本地图像处理服务器315提供执行本地图像处理模块的功能。本地图像处理模块316是能够执行各种图像处理的软件。注意,本地图像处理服务器315和本地图像处理模块316在本地图像处理控制过程350上被执行,该本地图像处理控制过程350是具有与图3所示的其他软件程序分开的逻辑存储器空间的程序执行单元。作为分开存储器空间的具体方法,可以想到使用由通用os(操作系统)提供的处理机制,但是其他方法也是可用的。即使在进行复杂计算和附加的存储器操作的情况下,在进行图像处理时分开逻辑存储器空间的构造也能够抑制处理错误对处理请求侧的影响。

用作最上层的java语言执行环境330是第一执行环境的示例,并且是包括插件应用301和设备控制应用304的应用层。在该实施例中,插件应用301和设备控制应用304是以java语言(第一编程语言)记述的并且以由java虚拟机解释的java字节代码格式被存储在hdd213中。cpu211执行java虚拟机的程序,并且java虚拟机读出并执行java字节代码以进行处理。使用这种编程语言的一个原因是便于程序记述。在java中,存储器区域不需要由开发者管理,而是被自动管理。减少了记述程序的劳动并且预期了高开发效率。

各应用使用设备控制库309和图像处理连接库332的api进行运行并提供各种功能。通过更新固件能够扩展设备控制应用304的功能。设备控制应用304中包括的打印应用305、复印应用306、扫描保存应用307和扫描发送应用308分别具有画面信息321、画面信息322、画面信息323和画面信息324。cpu211能够经由操作单元i/f217将画面信息321、画面信息322、画面信息323和画面信息324显示在操作单元204上。当用户对操作单元204进行操作并且cpu211检测到设备控制应用304的设置改变时,cpu211将改变内容写入hdd213中。

当cpu211(设备控制应用304)经由操作单元204检测到作业执行请求时,cpu211调用设备控制库309的api并开始作业。设备控制应用304能够请求图像处理连接库332的图像处理。

图像处理连接库332保持允许存储器定义部325。允许存储器定义部325定义图像处理连接库332进行同时执行时最大允许存储器容量。例如,在允许存储器定义部325中定义的允许存储器可以被直接记述在程序中,并从hdd213获得。另选地,定义允许量的文件可以被预先安装并在执行时加载。注意,获得允许存储器的方法可以是除上述方法以外的其他方法。图像处理连接库332还保持运行中存储器管理部326。运行中存储器管理部326经由图像处理连接库332管理运行中的图像处理的总存储器容量。

接下来,将描述设备控制应用304的示例。打印应用305调用打印库310的api并执行打印作业。复印应用306调用复印库311的api并执行复印作业。扫描保存应用307调用扫描保存库312的api并执行扫描保存作业。扫描发送应用308调用扫描发送库313的api并执行扫描发送作业。

接下来,将描述插件应用301的示例。与作为常驻应用(residentapplication)的设备控制应用304不同,插件应用301是可以作为插件安装及卸载的应用。插件应用301具有单功能插件应用302和图像处理插件应用303。在插件应用301中,各个操作所需的程序被打包。通过使用远程ui(用户接口)等而将插件应用301安装在图像处理装置101中。注意,远程ui是如下一种机制:能够经由网络i/f214从外部设备的web浏览器访问图像处理装置101,并进行对图像处理装置101的状况的确认、打印作业的操作、各种设置等。外部设备例如是信息处理终端103或104。插件应用301(单功能插件应用302和图像处理插件应用303)能够独立地被启动及停止。

下面将描述从插件应用301的安装到启动、停止及卸载的一系列操作的示例。当cpu211检测到插件应用301的安装时,其将插件应用301的信息保存在hdd213中。当cpu211检测到开始插件应用301的指令时,其给出启动插件应用301的指令。在插件应用301启动的同时,其能够执行各程序的内容。当cpu211检测到停止插件应用301的指令时,其给出停止插件应用301的指令。当cpu211检测到卸载插件应用301的指令时,其从hdd213删除插件应用301的信息。注意,这些指令能够从远程ui或操作单元204输入,但是这些指令可以通过除上述方法以外的方法输入。

接下来,将描述单功能插件应用302的示例。单功能插件应用302具有画面信息321。通过调用设备控制库309的api,单功能插件应用302能够向用户提供与常驻的设备控制应用304不同的功能和画面。例如,单功能插件应用302能够提供组合的多个功能,诸如复印并扫描给定的图像数据的功能以及向由单功能插件应用302保持的发送目的地数据库中的特定目的地发送文档的功能等。注意,单功能插件应用302不需要具有进行图像处理的功能。在这种情况下,不针对图像处理进行设置。当设备控制库309接收到打印数据或转变为通用格式的图像数据时,设备控制库309指示合适的操作系统317进行处理控制,并使其执行作业。

接下来,将描述图像处理插件应用303的示例。图像处理插件应用303是提供特定图像处理的应用。图像处理插件应用303经由图像处理连接库332从单功能插件应用302、设备控制应用304等接受处理对象图像数据和处理参数,并执行所请求的图像处理。图像处理插件应用303能够经由本地图像处理连接库314和图像处理连接库332从甚至设备控制库309接收图像处理请求。注意,在hdd213中可以存在多个图像处理插件应用303。例如,可以存在针对输入图像能够进行图像格式转换、歪斜校正、表单识别、ocr处理等的各个图像处理插件应用303。

图像处理插件应用303自身可以不具有图像处理功能。例如,图像处理插件应用303能够使用本地图像处理客户端331并使用本地图像处理模块316的图像处理功能。图像处理插件应用303使用本地图像处理模块316的原因之一在于进行图像处理时的高处理速度。当进行图像处理时,有时进行大量复杂的数值计算,并且在处理期间需要大量存储器容量。在这种情况下,替代使用如java那样的经由虚拟机进行处理的编程语言处理系统,通过使用能够生成可由cpu直接执行的目标文件的编译器语言能够提高处理速度。

图像处理插件应用303保持执行存储器定义部327。执行存储器定义部327定义由各插件执行的图像处理使用的最大存储器容量。注意,可以针对各插件或针对图像处理的各功能保持上述存储器容量。

<处理过程>

接下来,将参照图4描述根据本实施例的图像处理装置101的处理过程的示例。这里假定如下情况:图像处理连接库332接受图像处理、进行存储器控制、然后请求图像处理插件应用303的处理。此流程图表示使用图像处理插件应用303的图像处理的示例。注意,当例如cpu211将hdd213中保存的程序读出到ram212并执行该程序时实现下面将要描述的处理。

首先,在步骤s401中,图像处理连接库332从设备控制应用304、本地图像处理连接库314或单功能插件应用302接收图像处理执行请求。此时,假定接收到的执行请求包括用于指定处理被请求的图像处理插件应用303所需的参数。

然后,在步骤s402中,图像处理连接库332搜索能够执行与获得的执行请求对应的图像处理的图像处理插件应用303。在步骤s403中,图像处理连接库332基于步骤s402中的搜索结果,确定是否存在对象图像处理插件应用。

如果图像处理连接库332在步骤s403中确定不存在能够执行所接收到的图像处理请求的应用,则处理前进至步骤s404,在步骤s404中,图像处理连接库332将表示不存在能够执行所接收到的图像处理请求的应用的错误发回至作为请求源的模块。之后,处理结束。例如,当本地图像处理连接库314是请求源时,上述的错误内容经由设备控制库309被传递到设备控制应用304或单功能插件应用302。设备控制应用304或单功能插件应用302将接收到的错误内容显示在各应用的操作画面上。该错误能够通知用户不存在处理所需的模块。服务人员或it管理员通过上述安装方法安装所需的图像处理插件应用303并能够继续处理。

如果图像处理连接库332在步骤s403中确定对象图像处理插件应用303存在,则处理前进至步骤s405,在步骤s405中,图像处理连接库332从对象图像处理插件应用303的执行存储器定义部327中获得执行存储器容量。如上所述,执行存储器容量可以是针对各插件单元而定义的,或者由各插件中的图像处理的各功能单元而保持。随后,在步骤s406中,图像处理连接库332从图像处理连接库332的允许存储器定义部325获得允许存储器容量。在步骤s407中,图像处理连接库332从图像处理连接库332的运行中存储器管理部326获得总的运行中存储器容量。

在步骤s408中,图像处理连接库332确定获得的运行中存储器容量与由图像处理连接库332管理的总的运行中存储器容量的总和是否超出允许存储器容量(存储器是否变得不足)。如果图像处理连接库332确定该总和没有超出允许存储器容量,则在步骤s409中将由执行存储器定义部327定义的执行存储器容量加到由运行中存储器管理部326管理的运行中存储器容量中。在步骤s410中,图像处理连接库332请求对象图像处理插件应用303的处理。图像处理插件应用303从图像处理连接库332接收图像处理请求连同处理参数,并根据处理参数执行图像处理。具有在图像处理插件应用303内进行图像处理的方法和通过本地图像处理模块316执行的方法,其详情将在后面描述。在执行图像处理时,在图像处理插件应用303或本地图像处理模块316中,cpu211将输入数据在ram212中展开。此时,需要指派容量与图像处理内容和输入数据大小相对应的存储器。之后,在步骤s411中,图像处理连接库332从图像处理插件应用303接收处理结果,并在步骤s412中从总的运行中存储器容量减去执行存储器容量。在步骤s413中,图像处理连接库332将图像处理结果发回至作为请求源的各模块并结束处理。

如果在步骤s408中图像处理连接库332确定总和超出允许存储器容量,则处理前进至步骤s414,在步骤s414中,图像处理连接库332将表示由于图像处理所需的存储器资源当前不足(由于存储器不充足)而不能够执行图像处理的错误发回至作为请求源的模块,并且结束处理。当本地图像处理连接库314是请求源时,上述错误内容经由设备控制库309被传递至设备控制应用304或单功能插件应用302。设备控制应用304或单功能插件应用302基于接收到的上述错误内容执行例外处理。

例外处理的示例是重试处理。当各应用接收到上述错误时,其能够确定在图像处理连接库332上同时执行多个图像处理。各应用通过重试而进行等待直到当前运行中的图像处理暂时结束为止,并且在运行中的图像处理结束时再次发送图像处理请求。因此处理能够继续而不中断。

另一例外处理是对在各应用的操作画面上显示如下错误的控制,所述错误提示由于同时执行多个图像处理所以在一定时间之后(经过预定时间之后)再次输入作业。此错误能够通知用户在一定时间之后能够执行该作业。

如上所述,根据本实施例,在对执行图像处理的模块(插件应用)请求处理之前,确定存储器容量是否超出由于要执行图像处理的允许存储器容量。如果存储器容量超出允许存储器容量,则首先不请求图像处理。在本实施例中,能够避免指派超出允许存储器容量的存储器。能够在由于指派超出系统允许的存储器容量的存储器而使系统操作变得不稳定之前控制存储器指派。

<图像处理插件应用的图像处理>

下面将描述图像处理插件应用的图像处理。当对图像处理插件应用303请求了图像处理时,图像处理插件应用303基于所请求的处理内容执行图像处理。图像处理插件应用303能够通过至少两种方法执行图像处理。第一种方法是在图像处理插件应用303内执行图像处理。在这种情况下,图像处理插件应用基于从图像处理连接库332接收到的处理请求和处理参数执行图像处理。在这种情况下,图像处理插件应用需要以java语言来记述。第二种方法是请求本地图像处理模块316的图像处理。图像处理插件应用303请求本地图像处理客户端331的处理,并能够以不同于图像处理插件应用303的图像处理专用过程执行图像处理。

将参照图5描述由图像处理插件应用303执行图像处理的处理过程。此流程图表示请求本地图像处理服务器315执行图像处理的处理过程。注意,当例如cpu211将hdd213中保存的程序读出到ram212并执行该程序时实现下面将要描述的处理。

图像处理插件应用303将图像处理请求连同处理参数一起发送到本地图像处理客户端331。本地图像处理客户端331向本地图像处理服务器315发送接收到的处理参数并请求本地图像处理服务器315的处理。

在步骤s501中,本地图像处理服务器315接收图像处理执行请求,并在步骤s502中基于接收到的处理参数搜索对象本地图像处理模块316。在步骤s503中,本地图像处理服务器315确定是否存在对象本地图像处理模块316。如果不存在对象本地图像处理模块316,则处理前进至步骤s504,在步骤s504中,本地图像处理服务器315将表示不存在对象本地图像处理模块316的错误发回至本地图像处理客户端331,并结束处理。

如果存在对象本地图像处理模块316,则处理前进至步骤s505,在步骤s505中,本地图像处理服务器315使对象本地图像处理模块316基于接收到的处理参数执行图像处理。然后,在步骤s506中,本地图像处理服务器315将步骤s505中的图像处理的结果发回至本地图像处理客户端331,并结束处理。当本地图像处理客户端331接收到图像处理结果或错误内容时,其将内容发回至图像处理插件应用303。

如上所述,根据本实施例的图像处理装置是能够通过一个或更多个插件应用执行多个图像处理的图像处理装置。当在由插件应用执行图像处理期间图像处理装置被请求通过插件应用执行新图像处理时,图像处理装置搜索能够执行新图像处理的插件应用。此外,图像处理装置获得与搜索到的插件应用一起保持的、执行插件应用的新图像处理时的存储器使用量以及插件应用的已经在运行中的各图像处理的存储器使用量。图像处理装置将由获得的各图像处理的存储器使用量和当执行所请求的新图像处理时的存储器使用量获得的总存储器使用量、与表示在执行插件应用的过程中被允许使用的存储器使用量的允许存储器容量进行比较。当比较结果为总存储器使用量没有超出允许存储器容量时,图像处理装置执行新图像处理。当总存储器使用量超出允许存储器容量时,图像处理装置向请求源通知表示由于存储器不足而不能执行新图像处理的错误,而不执行新图像处理。因此,通过计算在执行图像处理时运行中的图像处理的总存储器而能够在运行时进行对多个图像处理的存储器控制,而不限制图像处理插件应用303的启动(安装)。根据本实施例,在优选地避免存储器不足的同时能够执行多个图像处理。这能够提高用户的便利性。

本发明不限于上述实施例,并且各种修改例是可行的。例如,在图像处理插件应用303的执行存储器定义部327中定义的执行存储器能够描述当本地图像处理模块316执行图像处理时使用的执行存储器。

<第二实施例>

下面将描述本发明的第二实施例。第一实施例描述了图像处理连接库332对处于运行时间的多个图像处理进行存储器控制的示例。第二实施例将描述如下示例:当插件应用请求图像处理时,本地图像处理服务器315对本地图像处理控制过程350中的多个图像处理进行存储器控制。

<图像处理装置的软件布置>

首先,将参照图6描述根据本实施例的由cpu211处理的软件结构的示例。注意,基本布置与第一实施例中参照图3描述的内容相同,所以将主要说明不同之处。相同的附图标记表示相同的部分,并且不再重复其描述。

本地图像处理服务器315保持允许存储器定义部601。允许存储器定义部601定义在本地图像处理服务器315上同时执行时可行的最大允许存储器容量。允许存储器定义部601中定义的允许存储器容量可以被直接记述在程序中并被从hdd213获得。另选地,定义允许存储器容量的文件可以被预先安装并在执行时被加载。注意,获得允许存储器的方法可以是除上述方法以外的方法。本地图像处理服务器315还保持运行中存储器管理部602。运行中存储器管理部602经由本地图像处理服务器315管理运行中的图像处理的总存储器容量。

<处理过程>

接下来,将参照图7描述根据本实施例的图像处理装置101的处理过程的示例。这里假定如下情况:本地图像处理服务器315管理运行中的图像处理的存储器并执行图像处理。该图像处理的请求源是图像处理插件应用303。注意,当例如cpu211将hdd213中保存的程序读出到ram212并执行该程序时实现下面将要描述的处理。

在步骤s701中,本地图像处理服务器315从本地图像处理客户端331接收图像处理执行请求连同处理参数,并在步骤s702中搜索本地图像处理模块316。在步骤s703中,本地图像处理服务器315基于步骤s702中的搜索结果来确定对象本地图像处理模块316是否存在。

如果对象本地图像处理模块316不存在,则处理前进至步骤s704,在步骤s704中,本地图像处理服务器315发回表示对象本地图像处理模块316不存在的错误,并且结束处理。当接收到错误时,本地图像处理客户端331将错误内容传递至用作请求源的图像处理插件应用303。在这种情况下,需要的本地图像处理模块316没有被安装在图像处理装置101的hdd213中并且也没有在通常操作下生成。因此,开发者需要修改源代码。

如果对象本地图像处理模块316存在,则处理前进至步骤s705,在步骤s705中,本地图像处理服务器315从对象本地图像处理模块316的执行存储器定义部603获得执行存储器容量。随后在步骤s706中,本地图像处理服务器315从本地图像处理服务器315的允许存储器定义部601获得允许存储器容量。在步骤s707中,本地图像处理服务器315从本地图像处理服务器315的运行中存储器管理部602获得总的运行中存储器容量。

在步骤s708中,本地图像处理服务器315确定获得的运行中存储器容量与总的运行中存储器容量的总和是否超出允许存储器容量。如果本地图像处理服务器315确定总和没有超出允许存储器容量,则处理前进至步骤s709,在步骤s709中,本地图像处理服务器315将执行存储器容量加到总的运行中存储器容量中。在步骤s710中,本地图像处理服务器315请求本地图像处理模块316执行图像处理。本地图像处理模块316接收图像处理请求连同处理参数,并根据处理参数执行图像处理。在执行图像处理时,cpu211将输入数据展开在ram212中,并在本地图像处理模块316中进行处理。此时,需要根据图像处理内容和输入数据大小指派存储器。

在步骤s711中,本地图像处理服务器315从本地图像处理模块316接收图像处理结果,并在步骤s712中从总的运行中存储器容量中减去执行存储器容量。在步骤s713中,本地图像处理服务器315将图像处理结果发回至本地图像处理客户端331并结束处理。

如果在步骤s708中本地图像处理服务器315确定总和超出允许存储器容量,则处理前进至步骤s714,在步骤s714中,本地图像处理服务器315将表示由于所需的存储器资源当前不足而不能执行图像处理的错误发回至本地图像处理客户端331。之后,处理结束。

本地图像处理客户端331将上述图像处理结果和错误内容传递至图像处理插件应用303。图像处理插件应用接收图像处理结果并将其经由图像处理连接库332传递至作为请求源的模块。当表示存储器资源不足的错误被接收到时,执行例外处理。例外处理的示例是重试处理。当接收到上面提到的错误时,图像处理插件应用303能够确定由于存在运行中的图像处理而使得不能执行该图像处理。由此,在预定时间之后请求图像处理客户端331进行处理且该处理能够被执行。在图像处理插件应用内进行的重试处理具有不用通过作为请求源的模块来进行重试处理的优点。作为另一例外处理,上述错误甚至被传递至单功能插件应用302和请求源处的设备控制应用304。当依据应用可想到期望进行重试的情况和期望中断重试的情况二者时,通过向应用侧传递上述错误能够在应用内进行重试和中断的切换。

如上所述,通过在对本地图像处理模块316请求处理前预先确定是否由于要执行图像处理而导致存储器容量超出允许存储器容量来进行控制。如果存储器容量超出允许存储器容量,则首先不请求图像处理并且不浪费地指派存储器。可以在由于指派超出系统(装置)允许的存储器容量的存储器而使系统操作变得不稳定之前预先控制存储器指派。

在本实施例中,可以与本地图像处理控制过程350内的上述存储器控制并行地,对通过插件实现的甚至另一图像处理控制过程进行相同的存储器控制。也即,可以针对各过程定义允许存储器容量。例如,可以与根据第一实施例的布置相组合地应用根据第二实施例的布置。

根据本实施例,通过计算在执行图像处理时的运行中图像处理的总存储器,能够在运行时间内进行对多个图像处理的存储器控制,而不用限制图像处理插件应用303的启动。这样能够提高用户便利性。与第一实施例不同,能够在专用于进行图像处理的过程(本地图像处理控制过程350)内限制性地进行存储器管理。图像处理插件应用303不需要关注于对本地图像处理控制过程350上的图像处理的存储器控制。显著地提高了图像处理插件应用303的开发效率。

<第三实施例>

下面将描述本发明的第三实施例。该实施例将说明本地图像处理模块316主要进行存储器控制的示例。在第三实施例中,当进行存储器控制并且不能进行并行处理时,与第一实施例和第二实施例不同,进行处理而不快速地发回错误。当能够对多页的图像处理进行并行处理时,使用并行处理来加速过程。

<处理过程>

首先,将参照图8a和图8b描述根据本实施例的图像处理装置101的处理过程的示例。将说明如下示例:本地图像处理模块316在本地图像处理服务器315中登记执行存储器并执行存储器控制。注意,当例如cpu211将hdd213中保存的程序读出到ram212并执行该程序时实现下面将要描述的处理。

首先,在步骤s801中,本地图像处理模块316接收来自本地图像处理服务器315的图像处理执行请求。然后,在步骤s802中,本地图像处理模块316从执行存储器定义部603获得接收到的图像处理所需的存储器大小(存储器使用量)。在步骤s803中,本地图像处理模块316确定并行处理是否对接收到的图像处理可行。本地图像处理模块316可以具有表示并行处理是否可行的信息并使用此信息进行确定。注意,如上述第一实施例和第二实施例所描述的,基于需要的存储器使用量和已经通过本地应用运行的各图像处理的存储器使用量,可以使用表示并行处理是否可行的信息来确定并行处理是否可行。例如,可以确定与总存储器使用量相对应的阈值存储器容量,使得当以两个总存储器使用量进行并行处理时总存储器使用量不超出允许存储器容量,并且基于阈值存储器容量与允许存储器容量之间的比较结果来进行确定。另选地,表示并行处理是否可行的信息(例如阈值存储器容量)可以作为元信息(metainformation)被预先添加到执行存储器定义部603并被读出以进行确定。

如果在步骤s804中,本地图像处理模块316基于步骤s803中的确定结果,确定不可对接收到的图像处理进行并行处理,则处理前进至步骤s805。如果本地图像处理模块316确定并行处理可行,则处理前进至步骤s811。

步骤s805表示如下的处理,即当并行处理不可行(顺次执行各个图像处理)时,依照同步接收的图像处理的页数重复步骤s806至s810的处理。在步骤s806中,本地图像处理模块316将从本地图像处理模块316的执行存储器定义部603获得的存储器信息登记在本地图像处理服务器315中。稍后将参照图9描述通过本地图像处理服务器315登记存储器信息的详情。在步骤s807中,本地图像处理模块316确定步骤s806中对执行存储器的登记是否成功。如果登记失败,则处理前进至步骤s808,在步骤s808中,本地图像处理模块316将表示由于图像处理所需的存储器资源不足而不能执行图像处理的错误发回至本地图像处理服务器315,并结束处理。本地图像处理服务器315经由本地图像处理客户端331将错误传递至调用侧的应用。

如果执行存储器在本地图像处理服务器315中的登记成功,则处理前进至步骤s809,在步骤s809中,本地图像处理模块316执行对象图像处理。当完成图像处理时,在步骤s810中本地图像处理模块316请求本地图像处理服务器315删除执行存储器以及要被删除的存储器信息。在重复的循环处理结束之后,处理结束。

如果在步骤s804中本地图像处理模块316确定并行处理可行,则处理前进至步骤s811,在步骤s811中,当并行处理可行时,依照同步接收的图像处理的页数重复步骤s812至s814中的处理。在步骤s812中,本地图像处理模块316将从本地图像处理模块316的执行存储器定义部603获得的执行存储器登记在本地图像处理服务器315中。注意,稍后将参照图9描述通过本地图像处理服务器315的存储器登记的序列。在步骤s813中,本地图像处理模块316确定执行存储器的登记是否成功。如果登记成功,则处理前进至步骤s814,在步骤s814中,本地图像处理模块316使并行执行计数增加。并行执行计数表示要并行执行的线程(thread)的数量并且是ram212、hdd213等中管理的变量。如果执行存储器的登记失败,则处理从该循环处理退出并前进至步骤s815。如果重复的循环处理结束,则处理前进至步骤s815。在处理从循环处理退出的阶段,在并行执行计数中输入从0至设置页计数的范围之间的正整数。

在步骤s815中,本地图像处理模块316确定计算出的并行执行计数是否大于0。如果并行执行计数大于0,则处理前进至步骤s816;否则处理前进至步骤s808。在步骤s808中,本地图像处理模块316将表示由于图像处理所需的存储器资源不足而不能执行图像处理的错误发回至本地图像处理服务器315,并结束处理。本地图像处理服务器315经由本地图像处理客户端331将该错误传递至调用侧的应用。

如果并行执行计数是1或更大的整数,则处理前进至步骤s816,在步骤s816中,本地图像处理模块316依照并行执行计数启动线程。虽然在本实施例中启动线程,但也可以启动处理。随后,处理前进至步骤s817,在步骤s817中,依照设置的页计数来重复步骤s818中的处理。在步骤s818中,本地图像处理模块316对空闲线程(freethread)分配各页的图像处理并执行。当处理从该循环处理退出时,完成了所有线程的图像处理的执行,并且完成了对所有接收到的页的图像处理。最后,在步骤s819中,本地图像处理模块316请求本地图像处理服务器315依照启动的线程计数删除执行存储器,并结束处理。

<执行存储器的登记>

将参照图9描述在步骤s806和s812中当本地图像处理服务器315接收到来自本地图像处理模块316的执行存储器登记请求时的处理过程。注意,当例如cpu211将hdd213中保存的程序读出到ram212并执行该程序时实现下面将要描述的处理。

在步骤s901中,本地图像处理服务器315从本地图像处理模块316接收执行存储器登记请求连同执行存储器信息。在步骤s902中,本地图像处理服务器315确定接收到的存储器大小与运行中的图像处理的存储器大小的总和是否超出允许存储器大小。如果总和超出允许存储器大小,则处理前进至步骤s903,在步骤s903中,本地图像处理服务器315将表示登记失败的消息发回至本地图像处理模块316。然后,处理结束。如果总和没有超出允许存储器大小,则处理前进至步骤s904,在步骤s904中,本地图像处理服务器315将接收到的存储器大小加到运行中的存储器,并在步骤s905中将表示登记成功的消息发回至本地图像处理模块316。然后,处理结束。

<执行存储器的删除>

将参照图10描述步骤s810中当本地图像处理服务器315接收来自本地图像处理模块316的执行存储器删除请求时的处理过程。注意,当例如cpu211将hdd213中保存的程序读出到ram212并执行该程序时实现下面将要描述的处理。

在步骤s1001中,本地图像处理服务器315接收来自本地图像处理模块316的执行存储器删除请求。在步骤s1002中,本地图像处理服务器315从运行中的存储器中减去接收到的存储器大小,并结束处理。

如上所述,根据本实施例,本地图像处理模块316能够主要执行存储器控制。线程控制可以根据并行处理是否可行而适当地进行并且不依赖于本地图像处理模块316的特性。在进行存储器控制的同时能够提高针对多页的速度。

<第四实施例>

下面将描述本发明的第四实施例。第三实施例已经描述了如下的示例:在执行多页的图像处理之前确定并行执行计数,然后在能够并行执行的图像处理模块中进行并行处理。第四实施例将描述在图像处理执行期间并行执行计数被动态地增加的示例,作为第三实施例的修改例。

<处理过程>

首先,将参照图11描述根据本实施例的在图像处理期间动态增加并行执行计数的处理过程。该流程图是图8b的流程图中的步骤s816至s819中的处理的修改例。步骤s816之前进行的处理与图8b的流程图中的相同。注意,当例如cpu211将hdd213中保存的程序读出到ram212并执行该程序时实现下面将要描述的处理。

在步骤s1101中,本地图像处理模块316依照并行执行计数来启动线程。处理前进至步骤s1102,在步骤s1102中,依照设置的页计数来重复执行步骤s1103至s1107的循环处理。更具体地,在步骤s1103中,本地图像处理模块316对空闲线程分配各页的图像处理并执行。处理前进至步骤s1104,在步骤s1104中,依照等待图像处理的页的数量来重复执行步骤s1105至s1107的循环处理。

在步骤s1105中,本地图像处理模块316将执行存储器登记在本地图像处理服务器315中。在步骤s1106中,本地图像处理模块316确定执行存储器的登记是否成功。如果执行存储器的登记失败,则处理从步骤s1104起的循环退出,并返回到步骤s1102的循环。如果在步骤s1106中本地图像处理模块316确定执行存储器的登记成功,则生成执行线程并且处理返回到步骤s1104。依照与设置的图像处理相对应的页的数量来重复执行这些循环(步骤s1102)。结果,完成了对所有页的图像处理,并且处理前进至步骤s1108。

在步骤s1108中,本地图像处理模块316请求本地图像处理服务器315依照启动的线程计数删除执行存储器,并结束处理。注意,本地图像处理服务器315对执行存储器登记(步骤s1105)和执行存储器删除(步骤s1108)的处理序列与参照图9和图10描述的相同。

如上所述,根据本实施例,在多页的图像处理中通过在各页的图像处理之间对本地图像处理服务器315进行询问能够动态地增加执行线程。因此,与第三实施例相比,能够更加有效地执行多页的图像处理。

<其它实施例>

还可以通过读出并执行记录在存储介质(也可更完整地称为“非暂时性计算机可读存储介质”)上的计算机可执行指令(例如,一个或更多个程序)以执行上述实施例中的一个或更多个的功能、并且/或者包括用于执行上述实施例中的一个或更多个的功能的一个或更多个电路(例如,专用集成电路(asic))的系统或装置的计算机,来实现本发明的实施例,并且,可以利用通过由所述系统或装置的计算机例如读出并执行来自所述存储介质的所述计算机可执行指令以执行上述实施例中的一个或更多个的功能、并且/或者控制所述一个或更多个电路执行上述实施例中的一个或更多个的功能的方法,来实现本发明的实施例。所述计算机可以包括一个或更多个处理器(例如,中央处理单元(cpu),微处理单元(mpu)),并且可以包括分开的计算机或分开的处理器的网络,以读出并执行所述计算机可执行指令。所述计算机可执行指令可以例如从网络或所述存储介质被提供给计算机。所述存储介质可以包括例如硬盘、随机存取存储器(ram)、只读存储器(rom)、分布式计算系统的存储器、光盘(诸如压缩光盘(cd)、数字通用光盘(dvd)或蓝光光盘(bd)tm)、闪存设备以及存储卡等中的一个或更多个。

本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(cpu)、微处理单元(mpu)读出并执行程序的方法。

虽然参照示例性实施例描述了本发明,但是,应该理解,本发明不限于公开的示例性实施例。下述权利要求的范围应当被赋予最宽的解释,以涵盖所有这类修改以及等同的结构和功能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1