KR102543344B1 - Image processing apparatus, method for controlling the same, and computer-readable storage medium - Google Patents

Image processing apparatus, method for controlling the same, and computer-readable storage medium Download PDF

Info

Publication number
KR102543344B1
KR102543344B1 KR1020190054048A KR20190054048A KR102543344B1 KR 102543344 B1 KR102543344 B1 KR 102543344B1 KR 1020190054048 A KR1020190054048 A KR 1020190054048A KR 20190054048 A KR20190054048 A KR 20190054048A KR 102543344 B1 KR102543344 B1 KR 102543344B1
Authority
KR
South Korea
Prior art keywords
image processing
memory
executed
application
memory usage
Prior art date
Application number
KR1020190054048A
Other languages
Korean (ko)
Other versions
KR20190132218A (en
Inventor
유토 사사키
Original Assignee
캐논 가부시끼가이샤
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 캐논 가부시끼가이샤 filed Critical 캐논 가부시끼가이샤
Publication of KR20190132218A publication Critical patent/KR20190132218A/en
Application granted granted Critical
Publication of KR102543344B1 publication Critical patent/KR102543344B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00962Input arrangements for operating instructions or parameters, e.g. updating internal software
    • H04N1/00965Input arrangements for operating instructions or parameters, e.g. updating internal software using a plug-in memory module, e.g. memory card, memory stick
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/121Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1225Software update, e.g. print driver, modules, plug-ins, fonts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00002Diagnosis, testing or measuring; Detecting, analysing or monitoring not otherwise provided for
    • H04N1/00071Diagnosis, testing or measuring; Detecting, analysing or monitoring not otherwise provided for characterised by the action taken
    • H04N1/00074Indicating or reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00962Input arrangements for operating instructions or parameters, e.g. updating internal software
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Facsimiles In General (AREA)
  • Stored Programmes (AREA)

Abstract

화상 처리장치는, 취득된 각 화상처리의 메모리 사용량 및 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하고, 비교의 결과 총 메모리 사용량이 허용 메모리 용량을 넘지 않는 경우에는, 새로운 화상처리를 실행하고, 총 메모리 사용량이 허용 메모리 용량을 넘는 경우에, 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지한다.The image processing device includes the total memory usage obtained from the memory usage of each acquired image process and the memory usage when executing the requested new image process, and the allowable memory indicating the memory usage allowed for use by the process executing the plug-in application. The capacities are compared, and as a result of the comparison, if the total memory usage does not exceed the allowable memory capacity, new image processing is executed, and if the total memory usage exceeds the allowable memory capacity, new image processing is not executed and the request source , an error indicating that new image processing cannot be executed due to insufficient memory is reported.

Figure R1020190054048
Figure R1020190054048

Description

화상 처리장치, 그 제어방법, 및 컴퓨터 판독가능한 기억매체{IMAGE PROCESSING APPARATUS, METHOD FOR CONTROLLING THE SAME, AND COMPUTER-READABLE STORAGE MEDIUM}Image processing apparatus, control method thereof, and computer readable storage medium

본 발명은, 화상 처리장치, 그 제어방법, 및 컴퓨터 판독가능한 기억매체에 관한 것이다.The present invention relates to an image processing apparatus, a control method thereof, and a computer readable storage medium.

종래부터, 화상 처리장치에서 제공되지 않고 있는 화상처리를 포함하는 각종 잡을 실행할 경우, 신규 화상처리를 포함하는 잡 실행 어플리케이션을 플러그인으로서 작성하고, 화상 처리장치에 인스톨해서 신규 화상처리를 실현하는 것이 알려져 있다. 각종 잡은, 예를 들면, 카피, 프린트, 스캔 및 보존, 및 스캔 및 송신 등의 화상 처리장치 상에서 실행가능한 화상처리를 포함하는 디바이스 제어 처리이다. 신규 화상처리는, 입력 데이터에 대한 사행 보정, 포맷 변환, 또는 OCR(Optical Character Recognition)후의 번역 변환 등의 화상 처리장치의 기존의 잡에서는 실현할 수 없는 처리이다.Conventionally, when executing various jobs including image processing that are not provided by an image processing device, it is known to create a job execution application including a new image processing as a plug-in and install it in the image processing device to realize the new image processing. there is. Various jobs are device control processes including image processing executable on the image processing apparatus, such as copy, print, scan and save, and scan and transmit, for example. New image processing is processing that cannot be realized in existing jobs of image processing apparatuses, such as skew correction for input data, format conversion, or translation conversion after OCR (Optical Character Recognition).

복수의 신규 화상처리를 추가한 화상 처리장치는, 추가한 신규 화상처리와 병렬 동작시키는 것이 가능하다. 그러나, 메모리를 많이 이용하는 복수의 화상처리가 동시에 실행되면, 메모리 사용량이 화상 처리장치의 메모리의 상한을 넘어 버릴 경우가 있다.An image processing apparatus to which a plurality of new image processes have been added can be operated in parallel with the added new image processes. However, if a plurality of image processes that use a large amount of memory are executed simultaneously, the amount of memory used may exceed the upper limit of the memory of the image processing device.

메모리 사용량이 메모리의 상한을 넘어 버리면, OS는, 사용 빈도가 낮은 메모리 영역의 데이터를 하드디스크에 보존해서 영역을 비우고, 필요에 따라 메모리에 데이터를 재기록하는 스왑 조작을 행한다. 이때, HDD에 기록 처리가 행해지고 이 처리가 이 프로세스 내의 다양한 처리의 퍼포먼스를 저하시킬 경우가 있다. 예를 들면, UI 모듈이 이 프로세스에 존재할 경우, 유저의 조작에 대하여 UI 화면이 신속하게 반응하지 않는 현상이 발생할 수 있다. 또한, 이 동일한 프로세스 상에서 실행하고 있는 복수의 화상처리의 완료까지의 시간이 스왑 조작을 행하지 않고 있는 경우에 걸리는 시간보다 길어지는 현상도 발생할 수 있다. 스왑 영역도 다 사용해 버렸을 경우에는, OS가 메모리 리소스를 많이 사용하고 있는 프로세스를 강제 종료시켜 버린다. 이 경우, 화상처리를 행하는 프로세스가 종료해 버리므로, 화상 처리장치를 재기동하지 않으면 화상처리를 재개할 수 없다.When the amount of memory used exceeds the upper limit of the memory, the OS performs a swap operation to save data in an infrequently used memory area to the hard disk, free the area, and rewrite data to the memory as necessary. At this time, there is a case where a recording process is performed on the HDD and this process deteriorates the performance of various processes in this process. For example, when a UI module exists in this process, a phenomenon in which the UI screen does not respond quickly to a user's manipulation may occur. Further, a phenomenon may occur in which the time until completion of a plurality of image processes being executed on the same process is longer than the time taken when no swap operation is performed. When the swap area is also used up, the OS forcibly terminates the process that uses a lot of memory resources. In this case, since the process of performing image processing ends, image processing cannot be restarted unless the image processing apparatus is restarted.

이것을 해결하기 위해, 일본국 특원 2013-120103호 공보에는, 각각의 플러그인의 메모리 사용량을 실시간으로 계측하고, 이것이 미리 결정된 메모리 최대량을 상회하는 경우에는 플러그인을 기동시키지 않는 기술이 제안되어 있다.In order to solve this problem, Japanese Patent Application Publication No. 2013-120103 proposes a technique of measuring the memory usage of each plug-in in real time and not activating the plug-in when it exceeds a predetermined maximum amount of memory.

그렇지만, 상기 관련기술에는 이하에 기재하는 과제가 있다. 이 관련기술에서는, 예를 들면, 플러그인 기동시에 각 플러그인에 정의된 사용 메모리 선언량과, 이미 화상 처리장치에서 이용하고 있는 메모리 사용량의 합계를 계산한다. 미리 결정된 메모리 최대량을 합계의 메모리 사용량이 상회하는 경우에는, 플러그인 자체를 기동시키지 않음으로써, 전술한 바와 같은 메모리 부족을 회피하고 있다. 상기 제어에서는, 계산된 메모리 사용량이 메모리 최대량을 상회하는 경우, 이미 기동하고 있는 플러그인을 정지시키지 않는 한, 신규의 플러그인을 기동할 수 없다. 실제로는 병렬로 실행하지 않으면 실행할 수 있는 플러그인이라도 기동해서 처리를 행할 수 없다. 이것은 유저의 편리성을 저하시킨다.However, the related art has problems described below. In this related art, for example, when a plug-in is activated, the sum of the declaration amount of used memory defined in each plug-in and the amount of memory used already in the image processing device is calculated. When the total amount of memory used exceeds the predetermined maximum amount of memory, the above-described memory shortage is avoided by not activating the plug-in itself. In the above control, when the calculated memory usage exceeds the maximum amount of memory, a new plug-in cannot be started unless an already activated plug-in is stopped. In practice, even plug-ins that can be executed cannot be activated and processed unless they are executed in parallel. This lowers user convenience.

본 발명은, 처리 실행중에(런타임에서) 총 메모리 사용량을 동적으로 계산하고, 플러그인 자체의 기동을 제한하지 않고, 바람직하게 메모리 부족을 회피하면서, 복수의 화상처리를 병렬로 실행하는 메카니즘의 구현을 가능하게 한다.The present invention provides an implementation of a mechanism that dynamically calculates the total memory usage during processing execution (at runtime) and executes multiple image processing in parallel, without restricting the startup of the plug-in itself and preferably avoiding memory shortages. make it possible

본 발명의 일면은, 1개 이상의 플러그인 어플리케이션에 의한 복수의 화상처리를 실행가능한 화상 처리장치로서, 명령들의 세트를 기억하는 메모리 디바이스; 및 상기 명령들의 세트를 실행하여, 플러그인 어플리케이션에 의한 화상처리의 실행중에, 플러그인 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 플러그인 어플리케이션을 탐색하고, 상기 탐색된 플러그인 어플리케이션과 함께 유지되어 있는, 플러그인 어플리케이션에 의한 상기 새로운 화상처리를 실행했을 때의 메모리 사용량과, 플러그인 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량을 취득하고, 상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하고, 비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우에는 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 적어도 한 개의 프로세서를 구비한 화상 처리장치를 제공한다.One aspect of the present invention is an image processing apparatus capable of executing a plurality of image processing by one or more plug-in applications, comprising: a memory device storing a set of instructions; and executing the set of commands to search for a plug-in application capable of executing the new image processing, if execution of a new image process by the plug-in application is requested during execution of image processing by the plug-in application, and the searched plug-in A memory usage amount when the new image processing by the plug-in application is executed, which is held together with the application, and a memory usage amount of each of the image processing already executed by the plug-in application are acquired, and the acquired memory of each image process is acquired. The total memory usage obtained from the usage amount and the memory usage when executing the requested new image processing is compared with the allowable memory capacity indicating the memory usage allowed in the process executing the plug-in application, and as a result of the comparison, the total memory usage is calculated. If the usage amount does not exceed the allowable memory capacity, the new image processing is executed, and when the total memory usage amount exceeds the allowable memory capacity, the new image processing is not executed, and the request source is caused by memory shortage. An image processing apparatus having at least one processor notifying an error indicating that the new image processing cannot be executed is provided.

본 발명의 또 다른 일면은, 제1 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제1 실행 환경과, 제2 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제2 실행 환경에서 복수의 화상처리를 실행가능한 화상 처리장치로서, 명령들의 세트를 기억하는 메모리 디바이스; 및 상기 명령들의 세트를 실행하여, 상기 제1 실행 환경에서의 화상처리의 실행중에, 상기 제1 프로그래밍 언어로 기술된 제1 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 상기 제1 어플리케이션을 탐색하고, 탐색된 상기 제1 어플리케이션과 함께 유지되어 있는, 상기 제1 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 상기 제1 실행 환경에서 이미 실행중인 화상처리 각각의 메모리 사용량을 취득하고, 상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 상기 제1 실행 환경에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하고, 비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 적어도 한 개의 프로세서를 구비한 화상 처리장치를 제공한다.Another aspect of the present invention is capable of executing a plurality of image processing in a first execution environment for executing a program written in a first programming language and a second execution environment for executing a program written in a second programming language. An image processing apparatus comprising: a memory device for storing a set of instructions; and executing the set of instructions, so that, during execution of image processing in the first execution environment, execution of new image processing by a first application written in the first programming language is requested, the new image processing is executed. Memory usage when the executable first application is searched and the new image processing by the first application, which is maintained together with the searched first application, is executed, and an image already executed in the first execution environment The memory usage amount of each process is acquired, the total memory usage amount obtained from the acquired memory usage amount of each image process and the memory usage amount when the requested new image process is executed, and the memory allowed to be used in the first execution environment. Comparing allowable memory capacities representing usage amounts, and as a result of the comparison, if the total memory usage does not exceed the allowable memory capacity, the new image processing is executed; and if the total memory usage exceeds the allowable memory capacity, the An image processing apparatus having at least one processor notifying an error indicating that the new image processing cannot be executed due to insufficient memory to a request source without executing the new image processing.

본 발명의 또 다른 일면은, 1개 이상의 플러그인 어플리케이션에 의한 복수의 화상처리를 실행가능한 화상 처리장치의 제어방법으로서, 플러그인 어플리케이션에 의한 화상처리의 실행중에, 플러그인 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 플러그인 어플리케이션을 탐색하는 단계와, 상기 탐색된 플러그인 어플리케이션과 함께 유지되어 있는, 플러그인 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 플러그인 어플리케이션에 의해 이미 실행중인 화상처리 각각의 메모리 사용량을 취득하는 단계와, 상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 단계와, 비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하는 제어방법을 제공한다.Another aspect of the present invention is a method for controlling an image processing apparatus capable of executing a plurality of image processes by one or more plug-in applications, wherein, while image processing is executed by a plug-in application, a new image process is executed by a plug-in application. If required, the step of searching for a plug-in application capable of executing the new image processing, the memory usage when executing the new image processing by the plug-in application, which is maintained together with the searched plug-in application, and the plug-in application Acquiring the memory usage of each image process already being executed, the total memory usage obtained from the acquired memory usage of each image process and the memory usage when executing the requested new image process, and the process of executing the plug-in application Comparing an allowable memory capacity indicating a memory usage allowed for use in the memory; and as a result of the comparison, if the total memory usage does not exceed the allowable memory capacity, the new image processing is executed, and the total memory usage is and notifying the requester of an error indicating that the new image processing cannot be executed due to memory shortage, without executing the new image processing when the allowable memory capacity is exceeded.

본 발명의 또 다른 일면은, 제1 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제1 실행 환경과, 제2 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제2 실행 환경에 있어서 복수의 화상처리를 실행가능한 화상 처리장치의 제어방법으로서, 상기 제1 실행 환경에서의 화상처리의 실행중에, 상기 제1 프로그래밍 언어로 기술된 제1 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 상기 제1 어플리케이션을 탐색하는 단계와, 탐색된 상기 제1 어플리케이션과 함께 유지되어 있는, 상기 제1 어플리케이션에 의한 새로운 화상처리를 실행할 때의 메모리 사용량과, 상기 제1 실행 환경에서 이미 실행중인 화상처리 각각의 메모리 사용량을 취득하는 단계와, 상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 상기 제1 실행 환경에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 단계와, 상기 비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하는 제어방법을 제공한다.Another aspect of the present invention is to execute a plurality of image processing in a first execution environment for executing a program written in a first programming language and a second execution environment for executing a program written in a second programming language. As a possible control method of an image processing apparatus, when execution of new image processing by a first application written in the first programming language is requested during execution of image processing in the first execution environment, the new image processing is performed. The step of searching for the executable first application, the memory usage when executing a new image processing by the first application, which is maintained together with the searched first application, and the memory usage that is already running in the first execution environment. Acquiring the memory usage amount of each image process, the total memory usage amount obtained from the acquired memory usage amount of each image process and the memory usage usage when the requested new image process is executed, and the usage in the first execution environment comparing the allowable memory capacity indicating the allowable memory usage; and if the total memory usage does not exceed the allowable memory capacity as a result of the comparison, the new image processing is executed, and the total memory usage is the allowed memory capacity. and notifying an error indicating that the new image processing cannot be executed due to insufficient memory to the request source, without executing the new image processing.

본 발명의 또 다른 일면은, 1개 이상의 플러그인 어플리케이션에 의한 복수의 화상처리를 실행가능한 화상 처리장치의 제어방법에 있어서의 각 단계를 컴퓨터에 실행시키기 위한 컴퓨터 프로그램을 기억한 비일시적인 컴퓨터 판독가능한 기억매체로서, 상기 제어방법은, 플러그인 어플리케이션에 의한 화상처리의 실행중에, 플러그인 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 플러그인 어플리케이션을 탐색하는 단계와, 상기 탐색된 플러그인 어플리케이션과 함께 유지되어 있는, 플러그인 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 플러그인 어플리케이션에 의해 이미 실행중인 화상처리 각각의 메모리 사용량을 취득하는 단계와, 상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 단계와, 비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하는 기억매체를 제공한다.Another aspect of the present invention is a non-temporary computer readable memory storing a computer program for causing a computer to execute each step in a control method of an image processing apparatus capable of executing a plurality of image processing by one or more plug-in applications. As a medium, the control method includes: searching for a plug-in application capable of executing the new image processing, when execution of a new image processing by a plug-in application is requested during execution of image processing by a plug-in application; Acquiring a memory usage when executing the new image processing by the plug-in application, which is maintained together with the plug-in application, and a memory usage of each image process already being executed by the plug-in application; Comparing the total memory usage obtained from the memory usage and the memory usage when executing the requested new image processing with the allowable memory capacity indicating the memory usage allowed in the process executing the plug-in application, and the result of the comparison When the total memory usage amount does not exceed the allowable memory capacity, the new image processing is executed; when the total memory usage amount exceeds the allowable memory capacity, the new image processing is not executed, and the memory memory for the request source is executed. and notifying an error indicating that the new image processing cannot be executed due to shortage.

본 발명의 또 다른 일면은, 제1 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제1 실행 환경과, 제2 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제2 실행 환경에 있어서 복수의 화상처리를 실행가능한 화상 처리장치의 제어방법에 있어서의 각 단계를 컴퓨터에 실행시키기 위한 컴퓨터 프로그램을 기억한 비일시적인 컴퓨터 판독가능한 기억매체로서, 상기 제어방법은, 플러그인 어플리케이션에 의한 화상처리의 실행중에, 플러그인 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 플러그인 어플리케이션을 탐색하는 단계와, 취득부에게, 상기 탐색된 플러그인 어플리케이션과 함께 유지되어 있는, 플러그인 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 플러그인 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량을 취득하게 하는 단계와, 상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 비교 단계와, 비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하는 기억매체를 제공한다.Another aspect of the present invention is to execute a plurality of image processing in a first execution environment for executing a program written in a first programming language and a second execution environment for executing a program written in a second programming language. A non-transitory computer-readable storage medium storing a computer program for causing a computer to execute each step in a possible control method of an image processing apparatus, wherein the control method is stored in a plug-in application during execution of image processing by the plug-in application. Searching for a plug-in application capable of executing the new image processing, when execution of the new image processing is requested, and providing the acquisition unit with the new image processing by the plug-in application that is maintained together with the searched plug-in application. Acquisition of the memory usage at the time of execution and the memory usage of each of the image processes already being executed by the plug-in application, the memory usage of each of the acquired image processes and the memory usage at the time of executing the requested new image process A comparison step of comparing the total memory usage obtained from the above and the allowable memory capacity indicating the memory usage allowed for use in a process executing the plug-in application, and as a result of the comparison, if the total memory usage does not exceed the allowable memory capacity, When the new image processing is executed, and the total memory usage exceeds the allowable memory capacity, the new image processing is not executed, and an error indicating that the new image processing cannot be executed due to insufficient memory for the request source. It provides a storage medium comprising the step of notifying.

본 발명의 또 다른 특징은 첨부도면을 참조하여 주어지는 이하의 실시형태의 상세한 설명으로부터 명백해질 것이다.Further features of the present invention will become apparent from the following detailed description of the embodiments given with reference to the accompanying drawings.

도1은, 일 실시형태에 따른 화상처리 형성 시스템의 구성 예를 나타낸 도면이다.
도2는, 일 실시형태에 따른 화상 처리장치의 하드웨어 구성의 일례를 나타내는 블록도이다.
도3은, 일 실시형태에 따른 화상 처리장치의 소프트웨어 구성의 일례를 도시한 블록도이다.
도4는, 일 실시형태에 따른 화상 처리장치의 처리 절차를 나타내는 흐름도이다.
도5는, 일 실시형태에 따른 네이티브(native) 화상처리 서버의 처리 절차를 나타낸 흐름도이다.
도6은, 일 실시형태에 따른 화상 처리장치의 소프트웨어 구성의 일례를 도시한 블록도이다.
도7은, 일 실시형태에 따른 화상 처리장치의 처리 절차를 나타내는 흐름도이다.
도8a 및 도 8b는, 일 실시형태에 따른 네이티브 화상처리 모듈의 처리 절차를 나타낸 흐름도이다.
도9는, 일 실시형태에 따른 네이티브 화상처리 서버의 처리 절차를 나타낸 흐름도이다.
도10은, 일 실시형태에 따른 네이티브 화상처리 서버의 처리 절차를 나타낸 흐름도이다.
도11은, 일 실시형태에 따른 네이티브 화상처리 모듈의 처리 절차를 나타낸 흐름도이다.
1 is a diagram showing an example of a configuration of an image processing formation system according to an embodiment.
Fig. 2 is a block diagram showing an example of a hardware configuration of an image processing apparatus according to an embodiment.
Fig. 3 is a block diagram showing an example of a software configuration of an image processing apparatus according to an embodiment.
Fig. 4 is a flowchart showing processing procedures of an image processing apparatus according to an embodiment.
5 is a flowchart illustrating a processing procedure of a native image processing server according to an embodiment.
Fig. 6 is a block diagram showing an example of a software configuration of an image processing apparatus according to an embodiment.
Fig. 7 is a flowchart showing processing procedures of an image processing apparatus according to an embodiment.
8A and 8B are flowcharts illustrating processing procedures of a native image processing module according to an embodiment.
9 is a flowchart illustrating a processing procedure of a native image processing server according to an embodiment.
10 is a flowchart illustrating a processing procedure of a native image processing server according to an embodiment.
Fig. 11 is a flowchart illustrating a processing procedure of a native image processing module according to an embodiment.

이하, 첨부도면을 참조하여 본 발명의 실시형태를 더욱 상세히 설명한다. 이때, 본 실시형태에서 설명하는 구성요소들의 상대적인 배치, 수식 및 수치는 달리 구체적으로 언급하지 않는 한 본 발명의 보호범위를 제한하는 것이 아니라는 점에 주목하기 바란다.Hereinafter, embodiments of the present invention will be described in more detail with reference to the accompanying drawings. At this time, it should be noted that the relative arrangement, formulas, and numerical values of the components described in the present embodiment do not limit the protection scope of the present invention unless specifically stated otherwise.

<제1 실시형태><First Embodiment>

<시스템 구성><System Configuration>

이하에서는, 첨부도면을 참조하여, 본 발명의 제1 실시형태에 대해 설명한다. 우선, 도1을 참조하여, 화상 형성 시스템의 구성의 일례를 설명한다. 본 실시형태에 따른 화상 형성 시스템은, 화상 처리장치 101, 102와, 정보 처리 단말 103, 104와, 서버(105)를 포함한다. 화상 처리장치 101, 102와, 정보 처리 단말 103, 104와, 서버(105)는, 네트워크(106)를 거쳐 서로 통신 가능하게 접속된다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a first embodiment of the present invention will be described with reference to the accompanying drawings. First, with reference to Fig. 1, an example of the configuration of an image forming system will be described. The image forming system according to the present embodiment includes image processing devices 101 and 102 , information processing terminals 103 and 104 , and a server 105 . The image processing devices 101 and 102 , the information processing terminals 103 and 104 , and the server 105 are connected via a network 106 to enable communication with each other.

도1에서는, 2대의 화상 처리장치 101, 102가 배치되는 일례를 나타내지만, 화상 처리장치의 수는 임의(1개 이상)이다. 각각의 화상 처리장치 101, 102는, 동일한 구성으로 실현할 수 있다. 따라서, 이하에서는, 화상 처리장치 101, 102를 대표해서 화상 처리장치 101의 구성에 대해 설명하고, 화상 처리장치 102에 관한 상세한 설명을 생략한다. 이때, 네트워크(106)는, LAN(Local Area Network), Internet 등, 화상 형성 시스템 내의 장치가 서로 통신할 수 있는 네트워크이다. 정보 처리 단말과 서버의 대수와 기능을 한정하는 의도는 없다. 서버(105)는, 그 기능을 분산하여 복수대의 장치로 실현되어도 된다. 이때, 본 발명을 적용하는 화상 처리장치는, 화상 형성 기능을 반드시 포함할 필요는 없고, 복수의 화상처리를 동시에 (병렬로) 실행가능한 장치를 적용할 수 있다.In Fig. 1, an example in which two image processing devices 101 and 102 are arranged is shown, but the number of image processing devices is arbitrary (one or more). Each of the image processing devices 101 and 102 can be realized with the same configuration. Therefore, below, the configuration of the image processing device 101 will be described on behalf of the image processing devices 101 and 102, and detailed description of the image processing device 102 will be omitted. At this time, the network 106 is a network, such as LAN (Local Area Network) and the Internet, through which devices in the image forming system can communicate with each other. There is no intention to limit the number and functions of information processing terminals and servers. The server 105 may be implemented by a plurality of devices by distributing its functions. At this time, an image processing apparatus to which the present invention is applied does not necessarily include an image forming function, and an apparatus capable of executing a plurality of image processing simultaneously (parallel) can be applied.

화상 처리장치(101)는, 정보 처리 단말 103, 104로부터 화상 데이터의 인쇄 의뢰(인쇄 데이터)를 수신해서 인쇄하거나, 화상 처리장치(101)의 스캐너로 화상 데이터를 판독하거나, 스캐너로 판독된 화상 데이터를 인쇄하는 것이 가능하다. 또한, 화상 처리장치(101)는, 정보 처리 단말 103, 104로부터 수신한 인쇄 데이터를 보존하거나, 화상 처리장치(101)의 스캐너에 의해 판독된 화상을 정보 처리 단말 103, 104에 송신하는 것이 가능하다. 화상 처리장치(101)는, 서버(105)를 사용해서 화상처리를 행하거나, 서버(105)에 격납되어 있는 문서를 인쇄하는 것이 가능하다. 더구나, 화상 처리장치(101)는, MFP(Multifunction Peripheral) 등의 공지의 화상 처리장치의 기능을 실현하는 것이 가능하다.The image processing device 101 receives and prints image data print requests (print data) from the information processing terminals 103 and 104, reads image data with a scanner of the image processing device 101, or reads an image with a scanner. It is possible to print the data. In addition, the image processing device 101 can store print data received from the information processing terminals 103 and 104 and transmit images read by the scanner of the image processing device 101 to the information processing terminals 103 and 104. do. The image processing device 101 can perform image processing using the server 105 or print documents stored in the server 105 . Moreover, the image processing device 101 is capable of realizing the functions of known image processing devices such as MFP (Multifunction Peripheral).

<화상 처리장치의 하드웨어 구성><Hardware configuration of image processing device>

다음에, 도2를 참조하여, 화상 처리장치(101)의 하드웨어 구성의 일례를 설명한다. 화상 처리장치(101)는, 콘트롤러(201), 프린터(202), 스캐너(203), 및 조작부(204)를 구비한다. 콘트롤러(201)는, CPU(211), RAM(212), HDD(213), 네트워크 I/F(214), 프린터 I/F(215), 스캐너 I/F(216), 조작부 I/F(217), 및 확장 I/F(218)를 구비한다. CPU(211)은, RAM(212), HDD(213), 네트워크 I/F(214), 프린터 I/F(215), 스캐너 I/F(216), 조작부 I/F(217), 및 확장 I/F(218)와 데이터를 교환하는 것이 가능하다.Next, with reference to FIG. 2, an example of the hardware configuration of the image processing apparatus 101 will be described. The image processing device 101 includes a controller 201, a printer 202, a scanner 203, and an operation unit 204. Controller 201 includes CPU 211, RAM 212, HDD 213, network I/F 214, printer I/F 215, scanner I/F 216, operation unit I/F ( 217), and an expansion I/F 218. CPU 211 includes RAM 212, HDD 213, network I/F 214, printer I/F 215, scanner I/F 216, operation panel I/F 217, and expansion It is possible to exchange data with the I/F 218.

CPU(211)은, HDD(213)로부터 판독한 명령을 RAM(212)에 전개하고, RAM(212)에 전개한 명령을 실행하고, 후술하는 각종 처리를 실행한다. HDD(213)에는, CPU(211)에 의해 실행가능한 명령, 화상 처리장치(101)에서 사용하는 설정값, 유저로부터 의뢰된 처리에 관한 데이터 등을 기억하는 것이 가능하다. RAM(212)은, CPU(211)이 HDD(213)로부터 판독한 명령을 일시적으로 격납하기 위한 영역이다. 또한, RAM(212)은, 명령의 실행에 필요한 각종의 데이터를 기억하는 것도 가능하다. 예를 들면, 화상처리는, 입력된 데이터를 RAM(212)에 전개함으로써 행해질 수 있다.The CPU 211 expands the command read from the HDD 213 to the RAM 212, executes the command deployed to the RAM 212, and executes various processes described later. In the HDD 213, it is possible to store commands executable by the CPU 211, setting values used in the image processing device 101, data related to processing requested by the user, and the like. The RAM 212 is an area for temporarily storing commands read by the CPU 211 from the HDD 213. In addition, the RAM 212 can also store various types of data necessary for executing instructions. For example, image processing can be performed by developing inputted data into the RAM 212 .

네트워크 I/F(214)는, 화상 형성 시스템 내의 장치와 네트워크 통신을 행하기 위한 인터페이스다. 네트워크 I/F(214)는, 데이터 수신을 CPU(211)에 통보하거나, RAM(212)의 데이터를 네트워크(106)에 송신하는 것이 가능하다. 프린터 I/F(215)는, CPU(211)로부터 송신된 인쇄 데이터를 프린터(202)에 송신하거나, 프린터(202)로부터 수신한 프린터의 상태를 CPU(211)에 전달하는 것이 가능하다. 스캐너 I/F(216)는, CPU(211)로부터 수신한 화상 판독 지시를 스캐너(203)에 송신하고, 스캐너(203)로부터 수신한 화상 데이터를 CPU(211)에 전달하는 것이 가능하다. 또한, 스캐너 I/F(216)는 스캐너(203)로부터 수신한 상태를 CPU(211)에 전달하는 것이 가능하다.The network I/F 214 is an interface for network communication with devices in the image forming system. The network I/F 214 is capable of notifying the CPU 211 of data reception and transmitting data of the RAM 212 to the network 106 . The printer I/F 215 is capable of transmitting print data sent from the CPU 211 to the printer 202 and conveying printer status received from the printer 202 to the CPU 211 . The scanner I/F 216 can transmit image reading instructions received from the CPU 211 to the scanner 203 and transmit image data received from the scanner 203 to the CPU 211 . Also, the scanner I/F 216 can transmit the status received from the scanner 203 to the CPU 211.

조작부 I/F(217)는, 조작부(204)에 입력된 유저로부터의 지시를 CPU(211)에 전달하거나, 유저가 조작하기 위한 화면 정보를 조작부(204)에 전달하는 것이 가능하다. 확장 I/F(218)는, 화상 처리장치(101)에 외부기기를 접속하는 것을 가능하게 하는 인터페이스다. 확장 I/F(218)는, 예를 들면, USB(Universal Serial Bus) 인터페이스를 구비한다. 화상 처리장치(101)는, USB 메모리 등의 외부 기억장치가 확장 I/F(218)에 접속될 때, 해당 외부 기억장치에 기억되어 있는 데이터의 판독 및 해당 외부 기억장치에 대한 데이터의 기록을 행하는 것이 가능하다.The operation unit I/F 217 is capable of transmitting to the CPU 211 an instruction input from the user input to the operation unit 204 or transmitting screen information for the user to operate to the operation unit 204 . The expansion I/F 218 is an interface that allows external devices to be connected to the image processing device 101 . The expansion I/F 218 includes, for example, a USB (Universal Serial Bus) interface. The image processing device 101, when an external storage device such as a USB memory is connected to the expansion I/F 218, reads data stored in the external storage device and writes data to the external storage device. it is possible to do

프린터(202)는, 프린터 I/F(215)로부터 수신한 화상 데이터를 용지나 시트 등의 기록매체에 인쇄하거나, 프린터(202)의 상태를 프린터 I/F(215)에 전달하는 것이 가능하다. 스캐너(203)는, 스캐너 I/F(216)로부터 수신한 화상 판독 지시에 따라, 스캐너(202) 위에 놓인 용지에 기록된 정보를 판독하고, 이 정보를 디지털화해서 그것을 스캐너 I/F(216)에 전달하는 것이 가능하다. 스캐너(203)는, 자신의 상태를 스캐너 I/F(216)에 전달하는 것이 가능하다. 조작부(204)는, 화상 처리장치(101)에 대하여 각종의 지시를 입력하기 위한 조작을 유저에게 촉구하기 위한 인터페이스다. 예를 들면, 조작부(204)는, 터치패널을 갖는 액정화면을 구비하고, 유저에게 조작 화면을 제공하는 동시에, 유저로부터의 조작을 접수한다.The printer 202 can print image data received from the printer I/F 215 on a recording medium such as paper or a sheet, and can transmit the status of the printer 202 to the printer I/F 215. . The scanner 203 reads the information recorded on the paper placed on the scanner 202 according to the image reading instruction received from the scanner I/F 216, digitizes this information, and transfers it to the scanner I/F 216. It is possible to pass on The scanner 203 can transmit its own state to the scanner I/F 216. The operation unit 204 is an interface for prompting the user to perform operations for inputting various instructions to the image processing device 101 . For example, the operation unit 204 includes a liquid crystal screen with a touch panel, provides an operation screen to the user, and receives operations from the user.

<화상 처리장치의 소프트웨어 구성><Software configuration of image processing device>

다음에, 도3을 참조하여, 본 실시형태에 따른 CPU(211)이 처리하는 소프트웨어의 구조의 일례를 설명한다. 도3에 나타내는 구조를 갖는 소프트웨어는, 화상 처리장치(101)의 HDD(213)에 기억된 프로그램을 사용함으로써 구성된다. 도3에 있어서, 일부의 예외를 제외하고, 하위의 계층이 제공하는 서비스를 상위의 계층이 이용한다.Next, with reference to Fig. 3, an example of the structure of software processed by the CPU 211 according to the present embodiment will be described. The software having the structure shown in Fig. 3 is constructed by using a program stored in the HDD 213 of the image processing apparatus 101. In Fig. 3, with some exceptions, upper layers use services provided by lower layers.

도3에 있어서, 최하층은, 오퍼레이팅 시스템(317)을 포함하고, 프로그램의 실행의 관리, 메모리 관리 등을 행하는 계층이다. 오퍼레이팅 시스템(317)에는, 프린터 제어 드라이버(318), 스캐너 제어 드라이버(319), 및 네트워크 I/F 제어 드라이버(320)가 삽입된다. 프린터 제어 드라이버(318), 스캐너 제어 드라이버(319), 및 네트워크 I/F 제어 드라이버(320)는, 서로 연계하여 기능하는 것이 가능하다. 프린터 제어 드라이버(318)는 프린터 I/F(215)를 거쳐 프린터(202)를 제어하기 위한 소프트웨어다. 스캐너 제어 드라이버(319)는 스캐너 I/F(216)를 거쳐 스캐너(203)를 제어하기 위한 소프트웨어다. 네트워크 I/F 제어 드라이버(320)는 네트워크 I/F(214)를 제어하기 위한 소프트웨어다.In Fig. 3, the lowest layer is a layer that includes an operating system 317 and performs program execution management, memory management, and the like. In the operating system 317, a printer control driver 318, a scanner control driver 319, and a network I/F control driver 320 are inserted. The printer control driver 318, scanner control driver 319, and network I/F control driver 320 can function in conjunction with each other. The printer control driver 318 is software for controlling the printer 202 via the printer I/F 215. The scanner control driver 319 is software for controlling the scanner 203 via the scanner I/F 216. The network I/F control driver 320 is software for controlling the network I/F 214.

최하층으로부터 2번째의 층은, 제2 실행 환경의 일례가 되는 언어 디바이스 제어 라이브러리(309)와 화상처리 제어부(340)를 포함한다. 본 실시형태에 있어서는, 예를 들면, 디바이스 제어 라이브러리(309)와 화상처리 제어부(340)는 C언어나 C++ 언어 등의 컴파일러 언어(제2 프로그래밍 언어)로 기술된다. 따라서, 디바이스 제어 라이브러리(309)와 화상처리 제어부(340)는 CPU(211)에 의해 직접 실행할 수 있는 오브젝트 파일의 형식으로 HDD(213)에 격납된다. 디바이스 제어 라이브러리(309)는, 후술하는 단독 기능 플러그인 어플리케이션(302) 또는 디바이스 제어 어플리케이션(304)에 정적 또는 동적으로 링크된다. 디바이스 제어 라이브러리(309)는, 각 어플리케이션 프로그램으로부터 지시에 근거하여, 오퍼레이팅 시스템(317)을 이용한다. 또한, 각 디바이스 제어 라이브러리(309)는, 네이티브 화상처리 접속 라이브러리(314)에 대하여 화상처리를 의뢰할 수 있다.The second layer from the lowest layer includes a language device control library 309 and an image processing control unit 340 serving as an example of the second execution environment. In this embodiment, for example, the device control library 309 and the image processing control unit 340 are described in a compiler language (second programming language) such as C language or C++ language. Accordingly, the device control library 309 and the image processing control unit 340 are stored in the HDD 213 in the form of object files that can be directly executed by the CPU 211 . The device control library 309 is statically or dynamically linked to a single-function plug-in application 302 or device control application 304 described later. The device control library 309 uses the operating system 317 based on instructions from each application program. In addition, each device control library 309 can request image processing to the native image processing connection library 314 .

다음에, 디바이스 제어 라이브러리(309)의 구성의 일례에 대해 설명한다. 프린트 라이브러리(310)는, 프린터 제어 드라이버(318)의 기능을 이용해서 프린트 잡의 제어를 행하기 위한 API(Application Programming Interface)을 제공하는 라이브러리다. 프린트 잡은, 화상 처리장치(101)의 HDD(213)에 보존되어 있는 인쇄 데이터를 인쇄하거나, 네트워크 I/F(214)를 거쳐 외부장치로부터 수신한 인쇄 데이터를 인쇄하는 일련의 처리를 나타낸다. 외부장치는, 예를 들면, 정보 처리 단말 103, 104이다. 카피 라이브러리(311)는, 스캐너 제어 드라이버(319) 및 프린터 제어 드라이버(318)의 기능을 이용하여 카피 잡의 제어를 행하기 위한 API를 제공하는 라이브러리다. 카피 잡은, 스캐너(203)에 의해 스캔된 화상 데이터를 프린터(202)에 의해 인쇄하는 일련의 처리를 나타낸다.Next, an example of the configuration of the device control library 309 will be described. The print library 310 is a library that provides an API (Application Programming Interface) for controlling a print job by using the functions of the printer control driver 318 . A print job represents a series of processes for printing print data stored in the HDD 213 of the image processing device 101 or printing print data received from an external device via the network I/F 214. External devices are the information processing terminals 103 and 104, for example. The copy library 311 is a library that provides an API for controlling a copy job by using the functions of the scanner control driver 319 and the printer control driver 318 . A copy job represents a series of processes for printing image data scanned by the scanner 203 by the printer 202 .

스캔 보존 라이브러리(312)는, 스캐너 제어 드라이버(319)의 기능을 이용해서 스캔 보존 잡의 제어를 행하기 위한 API를 제공하는 라이브러리다. 스캔 보존 잡은, 스캐너(203)에서 스캔된 화상 데이터를 인쇄 데이터 또는 범용 포맷의 데이터로 변환하고, HDD(213) 또는 확장 I/F(218)에 접속되어 있는 USB 메모리 등의 외부 기억장치에 이 데이터를 보존하는 일련의 처리를 나타낸다. 이때, 범용 포맷은, PDF(Portable Document Format)이나 JPEG(Joint Photographic Experts Group) 등의 데이터 포맷이다.The scan save library 312 is a library that provides an API for controlling scan save jobs using the functions of the scanner control driver 319 . The scan save job converts the image data scanned by the scanner 203 into print data or data in a general-purpose format, and transfers it to an external storage device such as a USB memory connected to the HDD 213 or expansion I/F 218. Represents a series of processes that preserve data. At this time, the universal format is a data format such as PDF (Portable Document Format) or JPEG (Joint Photographic Experts Group).

스캔 송신 라이브러리(313)는, 스캐너 제어 드라이버(319) 및 네트워크 I/F 제어 드라이버(320)의 기능을 이용하여, 스캔 송신 잡의 제어를 행하기 위한 API를 제공하는 라이브러리다. 스캔 송신 잡은, 스캐너(203)에서 스캔된 화상 데이터를 범용 포맷의 데이터로 변환하고, 이 데이터를 네트워크 I/F(214)를 거쳐 파일 서버에 송신하거나, 전자우편에 첨부해서 외부장치에 송신하는 일련의 처리를 나타낸다. 파일 서버는, 예를 들면, 서버(105)이며, 외부장치는, 예를 들면, 정보 처리 단말 103, 104이다.The scan transmission library 313 is a library that provides an API for controlling a scan transmission job by using functions of the scanner control driver 319 and the network I/F control driver 320 . The scan send job converts the image data scanned by the scanner 203 into universal format data, and sends this data to a file server via the network I/F 214 or to an external device as an e-mail attachment. represents a series of processes. The file server is the server 105, for example, and the external devices are the information processing terminals 103 and 104, for example.

화상처리 제어부(340)는, 네이티브 화상처리 접속 라이브러리(314), 네이티브 화상처리 서버(315), 및 네이티브 화상처리 모듈(네이티브 어플리케이션)(316)을 포함한다. 네이티브 어플리케이션은, 화상 처리장치(101)에 프리인스톨되고, 화상처리 등의 각종 기능을 제공하는 어플리케이션이다. 한편, 후술하는 플러그인 어플리케이션은, 화상 처리장치(101)에 대하여, 제품 출하후에 추가가능한 어플리케이션이다. 네이티브 화상처리 접속 라이브러리(314)가 디바이스 제어 라이브러리(309)로부터 화상처리의 실행 의뢰를 받으면, 화상처리 접속 라이브러리(332)에 의뢰 내용을 전송한다. 네이티브 화상처리 서버(315)는, 후술하는 Java(등록상표) 언어로 기술된 소프트웨어로부터 의뢰를 받아서 네이티브 화상처리 모듈을 실행하는 기능을 제공한다. 네이티브 화상처리 모듈(316)은, 다양한 종류의 화상처리를 실행하는 것이 가능한 소프트웨어다. 이때, 네이티브 화상처리 서버(315) 및 네이티브 화상처리 모듈(316)은, 도3에 도시된 다른 소프트웨어와는 분리된 논리 메모리 공간을 갖는 프로그램 실행 단위인 네이티브 화상처리 제어 프로세스(350) 상에서 실행된다. 메모리 공간을 분리하는 구체적인 방법으로서는, 일반적인 OS(Operating System)이 구비하는 프로세스 메카니즘을 사용하는 것이 생각되지만, 다른 방법도 존재한다. 화상처리를 행할 경우에 논리 메모리 공간을 분리하는 구성으로 함으로써, 복잡한 연산과 이것에 따르는 메모리 조작을 행하는 경우에, 처리 에러가 처리의 의뢰측에 미치는 영향을 억제할 수 있다.The image processing controller 340 includes a native image processing connection library 314, a native image processing server 315, and a native image processing module (native application) 316. The native application is an application that is preinstalled in the image processing device 101 and provides various functions such as image processing. On the other hand, a plug-in application described later is an application that can be added to the image processing device 101 after product shipment. When the native image processing connection library 314 receives an image processing execution request from the device control library 309, it transmits the request content to the image processing connection library 332. The native image processing server 315 provides a function of executing a native image processing module upon receiving a request from software written in the Java (registered trademark) language described later. The native image processing module 316 is software capable of executing various types of image processing. At this time, the native image processing server 315 and the native image processing module 316 are executed on the native image processing control process 350, which is a program execution unit having a logical memory space separate from other software shown in FIG. . As a specific method of separating the memory space, it is conceivable to use a process mechanism provided by a general OS (Operating System), but other methods also exist. By adopting a configuration in which the logical memory space is separated when image processing is performed, the influence of processing errors on the requesting side of the processing can be suppressed when performing complex calculations and subsequent memory manipulations.

최상위층으로서의 역할을 하는 Java 언어 실행 환경(330)은, 제1 실행 환경의 일례이며, 플러그인 어플리케이션(301) 및 디바이스 제어 어플리케이션(304)을 포함하는 어플리케이션층이다. 본실시형태에서는, 플러그인 어플리케이션(301) 및 디바이스 제어 어플리케이션(304)은 Java 언어(제1 프로그래밍 언어)로 기술되고, Java 가상 머신이 해석하는 Java 바이트 코드 형식으로 HDD(213)에 격납된다. CPU(211)은 Java 가상 머신의 프로그램을 실행하고, Java 가상 머신이 Java 바이트 코드를 판독해서 실행함으로써 처리를 행한다. 이러한 프로그래밍 언어를 이용하는 이유의 한개는 프로그램 기술의 간이성이다, Java에 있어서는, 메모리 영역을 개발자가 관리할 필요가 없고, 자동적으로 관리된다. 프로그램을 기술하는 수고가 저감되어, 높은 개발 효율이 예상된다.The Java language execution environment 330 serving as the top layer is an example of the first execution environment and is an application layer including a plug-in application 301 and a device control application 304 . In this embodiment, the plug-in application 301 and the device control application 304 are written in the Java language (first programming language) and are stored in the HDD 213 in a Java bytecode format interpreted by the Java virtual machine. The CPU 211 executes the program of the Java virtual machine, and the Java virtual machine reads and executes the Java bytecode to perform processing. One of the reasons for using such a programming language is the simplicity of the program description. In Java, the developer does not need to manage the memory area, and it is managed automatically. The effort of writing the program is reduced, and high development efficiency is expected.

각 어플리케이션은, 디바이스 제어 라이브러리(309) 및 화상처리 접속 라이브러리(332)의 각 API를 이용하여 실행되어 다양한 기능을 제공한다. 디바이스 제어 어플리케이션(304)의 기능은 펌웨어의 갱신에 의해 확장하는 것이 가능하다. 디바이스 제어 어플리케이션(304)에 포함되는 프린트 어플리케이션(305), 카피 어플리케이션(306), 스캔 보존 어플리케이션(307), 및 스캔 송신 어플리케이션(308)은, 각각 화면 정보 321, 화면 정보 322, 화면 정보 323, 화면 정보 324를 가진다. CPU(211)은, 조작부 I/F(217)를 거쳐 조작부(204)에 각각의 화면 정보 321, 화면 정보 322, 화면 정보 323, 화면 정보 324를 표시한다. CPU(211)은, 유저가 조작부(204)를 조작하고 CPU(211)가 디바이스 제어 어플리케이션(304)의 설정의 변경을 검지하면, 그 변경의 내용을 HDD(213)에 기록한다.Each application is executed using each API of the device control library 309 and the image processing connection library 332 to provide various functions. The function of the device control application 304 can be extended by updating the firmware. The print application 305, copy application 306, scan save application 307, and scan transmission application 308 included in the device control application 304 include screen information 321, screen information 322, screen information 323, It has screen information 324. The CPU 211 displays screen information 321, screen information 322, screen information 323, and screen information 324 on the operation unit 204 via the operation unit I/F 217, respectively. When the user operates the operation unit 204 and the CPU 211 detects a change in the settings of the device control application 304, the CPU 211 records the contents of the change in the HDD 213.

CPU(211)(디바이스 제어 어플리케이션(304))가 조작부(204)를 거쳐 잡의 실행 의뢰를 검지하면, 디바이스 제어 라이브러리(309)의 API를 콜하여 해당 잡을 개시한다. 디바이스 제어 어플리케이션(304)은, 화상처리 접속 라이브러리(332)에 대하여, 화상처리를 의뢰하는 것도 가능하다.When the CPU 211 (device control application 304) detects a job execution request via the operation unit 204, it calls the API of the device control library 309 to start the job. The device control application 304 can also request image processing to the image processing connection library 332 .

화상처리 접속 라이브러리(332)는 허용 메모리 정의(325)를 유지한다. 허용 메모리 정의(325)에는 화상처리 접속 라이브러리(332)에 의한 동시 실행시의 최대의 허용 메모리 용량이 정의되어 있다. 예를 들어, 허용 메모리 정의(325)에 정의된 허용 메모리는, 프로그램에 직접 기재해서 HDD(213)로부터 취득해도 된다. 이와 달리, 미리 허용량을 정의한 파일을 설치하고, 실행시에 로드해도 된다. 이때, 허용 메모리를 취득하는 방법은 상기 이외의 방법이어도 된다. 화상처리 접속 라이브러리(332)는, 실행중 메모리 관리부(326)를 더 유지한다. 실행중 메모리 관리부(326)는, 화상처리 접속 라이브러리(332) 경유로 실행중인 화상처리의 총 메모리 용량을 관리하고 있다.The image processing connection library 332 maintains an allowed memory definition 325 . In the allowable memory definition 325, the maximum allowable memory capacity at the time of simultaneous execution by the image processing connection library 332 is defined. For example, the allowed memory defined in the allowed memory definition 325 may be acquired from the HDD 213 by directly writing in a program. Alternatively, it is also possible to install a file in which the allowable amount is defined in advance and load it at the time of execution. At this time, the method of obtaining the allowed memory may be a method other than the above. The image processing connection library 332 further holds the memory management unit 326 during execution. The running memory management unit 326 manages the total memory capacity of image processing being executed via the image processing connection library 332 .

다음에, 디바이스 제어 어플리케이션(304)의 일례에 대해 설명한다. 프린트 어플리케이션(305)은, 프린트 라이브러리(310)의 API를 콜하여 프린트 잡을 실행한다. 카피 어플리케이션(306)은, 카피 라이브러리(311)의 API를 콜하여 카피 잡을 실행한다. 스캔 보존 어플리케이션(307)은, 스캔 보존 라이브러리(312)의 API를 콜하여 스캔 보존 잡을 실행한다. 스캔 송신 어플리케이션(308)은, 스캔 송신 라이브러리(313)의 API를 콜하여 스캔 송신 잡을 실행한다.Next, an example of the device control application 304 will be described. The print application 305 calls the API of the print library 310 to execute a print job. The copy application 306 calls the API of the copy library 311 to execute the copy job. The scan save application 307 calls the API of the scan save library 312 to execute the scan save job. The scan transmission application 308 calls the API of the scan transmission library 313 to execute a scan transmission job.

다음에, 플러그인 어플리케이션(301)의 일례에 대해 설명한다. 플러그인 어플리케이션(301)은, 상주 어플리케이션인 디바이스 제어 어플리케이션(304)과는 달리, 플러그인으로서 인스톨 및 언인스톨이 가능한 어플리케이션이다. 플러그인 어플리케이션(301)은, 단독 기능 플러그인 어플리케이션(302)과 화상처리 플러그인 어플리케이션(303)을 가진다. 플러그인 어플리케이션(301)에는, 각각 동작에 필요한 프로그램이 패키징되어 있다. 플러그인 어플리케이션(301)은, 리모트 UI(User Interface) 사용함으로써, 화상 처리장치(101)에 인스톨된다. 이때, 리모트 UI는, 외부장치의 Web 브라우저로부터 네트워크 I/F(214)를 경유해서 화상 처리장치(101)에 액세스하여, 화상 처리장치(101)의 상황의 확인, 인쇄 잡의 조작, 각종 설정 등을 행할 수 있는 메카니즘이다. 외부장치는, 예를 들면, 정보 처리 단말 103, 104이다. 플러그인 어플리케이션(301)(단독 기능 플러그인 어플리케이션(302), 및 화상처리 플러그인 어플리케이션(303))은, 개별적으로 기동 및 정지를 행하는 것이 가능하다.Next, an example of the plug-in application 301 will be described. Unlike the device control application 304, which is a resident application, the plug-in application 301 is an application that can be installed and uninstalled as a plug-in. The plug-in application 301 has a single function plug-in application 302 and an image processing plug-in application 303. In the plug-in application 301, programs required for each operation are packaged. The plug-in application 301 is installed in the image processing device 101 by using a remote user interface (UI). At this time, the remote UI accesses the image processing device 101 from the web browser of the external device via the network I/F 214, confirms the status of the image processing device 101, operates print jobs, and sets various settings. It is a mechanism that can do this. External devices are the information processing terminals 103 and 104, for example. The plug-in applications 301 (the stand-alone plug-in application 302 and the image processing plug-in application 303) can be individually started and stopped.

이하에서, 플러그인 어플리케이션(301)의 인스톨로부터 기동, 정지, 언인스톨까지의 일련의 동작의 일례를 나타낸다. CPU(211)가 플러그인 어플리케이션(301)의 인스톨을 검지하면, 해당 플러그인 어플리케이션(301)의 정보를 HDD(213)에 보존한다. CPU(211)가 플러그인 어플리케이션(301)의 개시 지시를 검지하면, 해당 플러그인 어플리케이션(301)의 기동 지시를 행한다. 플러그인 어플리케이션(301)이 기동하고 있는 동안, 각 프로그램의 내용을 실행하는 것이 가능하다. CPU(211)가 플러그인 어플리케이션(301)의 정지 지시를 검지하면, 해당 플러그인 어플리케이션(301)의 정지 지시를 행한다. CPU(211)가 플러그인 어플리케이션(301)의 언인스톨 지시를 검지하면, 해당 플러그인 어플리케이션(301)의 정보를 HDD(213)로부터 삭제한다. 이때, 이들 지시는, 예를 들면, 리모트 UI나 조작부(204)로부터 입력될 수 있지만, 이들 지시는 상기한 방법 이외의 방법으로 입력될 수 있다.An example of a series of operations from installation of the plug-in application 301 to start, stop, and uninstallation is shown below. When the CPU 211 detects the installation of the plug-in application 301, the information of the plug-in application 301 is stored in the HDD 213. When the CPU 211 detects an instruction to start the plug-in application 301, it issues an instruction to start the plug-in application 301. While the plug-in application 301 is running, it is possible to execute the contents of each program. When the CPU 211 detects an instruction to stop the plug-in application 301, it issues an instruction to stop the plug-in application 301. When the CPU 211 detects an uninstall instruction for the plug-in application 301, information on the plug-in application 301 is deleted from the HDD 213. At this time, these instructions may be input from, for example, a remote UI or the operation unit 204, but these instructions may be input by a method other than the above method.

다음에, 단독 기능 플러그인 어플리케이션(302)의 일례에 대해 설명한다. 단독 기능 플러그인 어플리케이션(302)은 화면 정보 321을 가진다. 단독 기능 플러그인 어플리케이션(302)은, 디바이스 제어 라이브러리(309)의 API를 콜함으로써 상주의 디바이스 제어 어플리케이션(304)과는 다른 기능과 화면을 유저에게 제공할 수 있다. 예를 들면, 단독 기능 플러그인 어플리케이션(302)은, 어떤 화상 데이터를 복사하는 동시에 스캔하고, 단독 기능 플러그인 어플리케이션(302)이 유지하는 송신처 데이터베이스 내의 특정한 목적지에 문서를 송신하는 기능 등, 복수의 기능을 조합해서 제공하는 것이 가능하다. 이때, 단독 기능 플러그인 어플리케이션(302)은, 화상처리를 행하는 기능을 갖지 않고 있어도 된다. 이 경우, 화상처리의 설정은 행해지지 않는다. 디바이스 제어 라이브러리(309)가 인쇄 데이터 또는 범용 포맷으로 변환후의 화상 데이터를 수신하면, 적절한 오퍼레이팅 시스템(317)에 대하여 처리제어를 지시하여, 잡을 실행시킨다.Next, an example of the stand-alone plug-in application 302 will be described. The stand-alone plug-in application 302 has screen information 321 . The stand-alone plug-in application 302 can provide a user with functions and screens different from those of the resident device control application 304 by calling an API of the device control library 309 . For example, the single-function plug-in application 302 provides a plurality of functions, such as a function of copying and simultaneously scanning certain image data and sending a document to a specific destination in a destination database maintained by the single-function plug-in application 302. It is possible to provide a combination. At this time, the single-function plug-in application 302 may not have a function of performing image processing. In this case, setting of image processing is not performed. When the device control library 309 receives print data or image data converted into a general-purpose format, it instructs the appropriate operating system 317 to process control to execute the job.

다음에, 화상처리 플러그인 어플리케이션(303)의 일례에 대해 설명한다. 화상처리 플러그인 어플리케이션(303)은, 특정한 화상처리를 제공하는 어플리케이션이다. 화상처리 플러그인 어플리케이션(303)은, 단독 기능 플러그인 어플리케이션(302), 디바이스 제어 어플리케이션(304) 등으로부터 화상처리 접속 라이브러리(332) 경유로 처리 대상의 화상 데이터와 처리 파라미터를 접수하여, 의뢰된 화상처리를 실행한다. 화상처리 플러그인 어플리케이션(303)은 디바이스 제어 라이브러리(309)로부터도, 네이티브 화상처리 접속 라이브러리(314)와 화상처리 접속 라이브러리(332)를 경유해서 화상처리 의뢰를 수신하는 것이 가능하다. 이때, 화상처리 플러그인 어플리케이션(303)은 HDD(213) 내에 복수 존재해도 된다. 예를 들면, 입력 화상에 대한 화상 형식 변환, 사행 보정, 장표 인식(form recognition), OCR 처리 등을 행할 수 있는 화상처리 플러그인 어플리케이션(303)이 각각 존재해도 된다.Next, an example of the image processing plug-in application 303 will be described. The image processing plug-in application 303 is an application that provides specific image processing. The image processing plug-in application 303 receives image data and processing parameters to be processed from the stand-alone plug-in application 302, device control application 304, etc. via the image processing connection library 332, and performs requested image processing. run The image processing plug-in application 303 can receive an image processing request from the device control library 309 via the native image processing connection library 314 and the image processing connection library 332 . At this time, a plurality of image processing plug-in applications 303 may exist in the HDD 213 . For example, image processing plug-in applications 303 capable of performing image format conversion, skew correction, form recognition, OCR processing and the like for input images may each exist.

화상처리 플러그인 어플리케이션(303)은, 그 자체가 화상처리 기능을 갖지 않고 있어도 된다. 예를 들면, 화상처리 플러그인 어플리케이션(303)은, 네이티브 화상처리 클라이언트(331)를 이용하고, 네이티브 화상처리 모듈(316)의 화상처리 기능을 이용할 수도 있다. 화상처리 플러그인 어플리케이션(303)이 네이티브 화상처리 모듈(316)을 이용하는 이유의 한가지는, 화상처리를 행할 때의 처리 속도의 고속화이다. 화상처리를 행할 때에는. 대량의 복잡한 수치연산을 행하고 처리의 과정에서 대량의 메모리를 필요로 할 경우가 있다. 그러한 경우에는, Java와 같은 가상 머신을 중개해서 처리를 행하는 프로그래밍 언어 처리계를 이용하는 것 대신에, 직접 CPU가 실행가능한 오브젝트 파일을 생성할 수 있는 컴파일러 언어를 이용함으로써 처리 속도를 향상시킬 수 있다.The image processing plug-in application 303 itself may not have an image processing function. For example, the image processing plug-in application 303 may use the native image processing client 331 and the image processing function of the native image processing module 316 . One of the reasons why the image processing plug-in application 303 uses the native image processing module 316 is to increase the processing speed when image processing is performed. When performing image processing. There are cases in which a large amount of complex numerical calculation is performed and a large amount of memory is required in the process of processing. In such a case, the processing speed can be improved by using a compiler language capable of directly generating an object file executable by the CPU instead of using a programming language processing system that performs processing through a virtual machine such as Java.

화상처리 플러그인 어플리케이션(303)은, 실행 메모리 정의(327)를 유지한다. 실행 메모리 정의(327)는, 각 플러그인이 실행하는 화상처리에 의해 이용되는 최대 메모리 용량을 정의하고 있다. 이때, 상기한 메모리 용량은 플러그인마다 유지되거나, 화상처리의 함수마다 유지되어도 된다.The image processing plug-in application 303 maintains an execution memory definition 327 . The execution memory definition 327 defines the maximum memory capacity used by image processing executed by each plug-in. At this time, the above memory capacity may be maintained for each plug-in or for each function of image processing.

<처리 절차><Processing Procedure>

다음에, 도4를 참조하여, 본 실시형태에 따른 화상 처리장치(101)의 처리 절차의 일례를 설명한다. 화상처리 접속 라이브러리(332)가 화상처리를 접수하고, 메모리 제어를 행한 후, 화상처리 플러그인 어플리케이션(303)에 처리 의뢰를 행하는 케이스를 상정한다. 본 흐름도는, 화상처리 플러그인 어플리케이션(303)을 사용한 화상처리의 일례를 나타낸다. 이때, 이하에서 설명하는 처리는, 예를 들면, CPU(211)이 HDD(213)에 보존된 프로그램을 RAM(212)에 판독해서 그 프로그램을 실행함으로써 실현된다.Next, with reference to Fig. 4, an example of processing procedures of the image processing apparatus 101 according to the present embodiment will be described. Assume a case in which the image processing connection library 332 accepts image processing, performs memory control, and then issues a process request to the image processing plug-in application 303. This flowchart shows an example of image processing using the image processing plug-in application 303. At this time, the processing described below is realized by, for example, the CPU 211 reading the program stored in the HDD 213 into the RAM 212 and executing the program.

우선, 스텝 S401에서, 화상처리 접속 라이브러리(332)는, 디바이스 제어 어플리케이션(304), 네이티브 화상처리 접속 라이브러리(314), 또는 단독 기능 플러그인 어플리케이션(302)으로부터 화상처리의 실행 의뢰를 수신한다. 이때, 수신한 실행 의뢰는 처리를 의뢰하는 화상처리 플러그인 어플리케이션(303)을 특정하기 위해서 필요한 파라미터를 포함하는 것으로 가정한다.First, in step S401, the image processing connection library 332 receives an image processing execution request from the device control application 304, the native image processing connection library 314, or the single function plug-in application 302. At this time, it is assumed that the received execution request includes parameters necessary for specifying the image processing plug-in application 303 requesting processing.

다음에, 스텝 S402에서, 화상처리 접속 라이브러리(332)는, 취득한 실행 의뢰에 대응하는 화상처리를 실행가능한 화상처리 플러그인 어플리케이션(303)을 탐색한다. 스텝 S403에서, 화상처리 접속 라이브러리(332)는, 스텝 S402의 탐색 결과에 근거하여, 대상이 되는 화상처리 플러그인 어플리케이션이 존재하는지 아닌지를 판정한다.Next, in step S402, the image processing connection library 332 searches for the image processing plug-in application 303 capable of executing the image processing corresponding to the acquired execution request. In step S403, the image processing connection library 332 determines whether or not the target image processing plug-in application exists based on the search result in step S402.

스텝 S403에서 화상처리 접속 라이브러리(332)가 수신한 화상처리 의뢰를 실행할 수 있는 어플리케이션이 존재하지 않는다고 판정하면, 스텝 S404로 처리를 진행하여, 화상처리 접속 라이브러리(332)가 수신한 화상처리를 실행할 수 있는 어플리케이션이 존재하지 않는 것을 나타내는 에러를 의뢰처의 모듈에 반환한다. 그 후에 처리를 종료한다. 예를 들면, 네이티브 화상처리 접속 라이브러리(314)가 의뢰처인 경우, 디바이스 제어 라이브러리(309)를 거쳐, 디바이스 제어 어플리케이션(304) 또는 단독 기능 플러그인 어플리케이션(302)에 상기한 에러 내용이 전파된다. 디바이스 제어 어플리케이션(304) 또는 단독 기능 플러그인 어플리케이션(302)은 수신한 상기한 에러 내용을 각 어플리케이션의 조작 화면에 표시한다. 이 에러는, 처리에 필요한 모듈이 존재하지 않고 있는 것을 유저에게 통지할 수 있다. 서비스 맨 또는 IT 관리자가 상기한 인스톨 수법에 의해 필요한 화상처리 플러그인 어플리케이션(303)을 인스톨함으로써, 처리를 계속하는 것이 가능하다.If it is determined in step S403 that the application capable of executing the image processing request received by the image processing connection library 332 does not exist, processing proceeds to step S404, whereby the image processing connection library 332 executes the received image processing. Returns an error indicating that a capable application does not exist to the requesting module. After that, processing is terminated. For example, when the native image processing connection library 314 is the requesting destination, the above-mentioned error content is propagated to the device control application 304 or single function plug-in application 302 via the device control library 309. The device control application 304 or the single function plug-in application 302 displays the received error contents on the operation screen of each application. This error can notify the user that a module required for processing does not exist. By installing the necessary image processing plug-in application 303 by the above installation method by the service man or IT manager, it is possible to continue processing.

스텝 S403에서 화상처리 접속 라이브러리(332)가 대상의 화상처리 플러그인 어플리케이션(303)이 존재한다고 판정하면, 스텝 S405로 처리를 진행하여, 화상처리 접속 라이브러리(332)는, 대상의 화상처리 플러그인 어플리케이션(303)의 실행 메모리 정의(327)로부터 실행 메모리 용량을 취득한다. 이 실행 메모리 용량은, 상기한 바와 같이, 각 플러그인 단위로 정의되거나, 각 플러그인에 있어서의 화상처리의 각 함수단위로 유지되어도 된다. 이어서, 스텝 S406에서, 화상처리 접속 라이브러리(332)는, 화상처리 접속 라이브러리(332)의 허용 메모리 정의(325)로부터 허용 메모리 용량을 취득한다. 스텝 S407에서, 화상처리 접속 라이브러리(332)는, 화상처리 접속 라이브러리(332)의 실행중 메모리 관리부(326)로부터 실행중 총 메모리 용량을 취득한다.If the image processing connection library 332 determines in step S403 that the target image processing plug-in application 303 exists, the processing proceeds to step S405, and the image processing connection library 332 determines that the target image processing plug-in application ( The execution memory capacity is acquired from the execution memory definition 327 of 303). As described above, this execution memory capacity may be defined for each plug-in unit, or may be held for each function unit of image processing in each plug-in. Next, in step S406, the image processing connection library 332 acquires the allowed memory capacity from the allowed memory definition 325 of the image processing connection library 332. In step S407, the image processing connection library 332 acquires the total memory capacity during execution from the execution memory management unit 326 of the image processing connection library 332.

스텝 S408에서, 화상처리 접속 라이브러리(332)는, 취득한 실행중 메모리 용량과, 화상처리 접속 라이브러리(332)가 관리하고 있는 실행중 총 메모리 용량의 합이 허용 메모리 용량을 초과하는지 아닌지(메모리 부족이 될 것인지 아닌지)를 판단한다. 화상처리 접속 라이브러리(332)가 이 합이 허용 메모리 용량을 넘지 않는다고 판단했을 경우, 스텝 S409에서, 실행중 메모리 관리부(326)에서 관리하고 있는 실행중 메모리 용량에 실행 메모리 정의(327)에서 정의된 실행 메모리 용량을 가산한다. 스텝 S410에서, 화상처리 접속 라이브러리(332)는, 대상의 화상처리 플러그인 어플리케이션(303)에 처리를 의뢰한다. 화상처리 플러그인 어플리케이션(303)은, 화상처리 접속 라이브러리(332)로부터 처리 파라미터와 함께, 화상처리 의뢰를 수신하고, 처리 파라미터에 따라 화상처리를 실행한다. 화상처리를 화상처리 플러그인 어플리케이션(303) 내에서 행하는 수법과, 그것을 네이티브 화상처리 모듈(316)에 의해 실행하는 수법이 존재하며, 상세에 관해서는 후술한다. 화상처리 실행시에, 화상처리 플러그인 어플리케이션(303) 또는 네이티브 화상처리 모듈(316)에서는, CPU(211)이 입력 데이터를 RAM(212)에 전개한다. 이때, 화상처리 내용, 및 입력 데이터 사이즈에 대응하는 용량의 메모리를 할당할 필요가 있다. 그 후에, 스텝 S411에서, 화상처리 접속 라이브러리(332)는 화상처리 플러그인 어플리케이션(303)으로부터 처리 결과를 수신하고, 스텝 S412에서 실행중 총 메모리 용량으로부터 실행 메모리 용량을 감산한다. 스텝 S413에서, 화상처리 접속 라이브러리(332)는 화상처리 결과를 의뢰처의 각 모듈에 반환하고, 처리를 종료한다.In step S408, the image processing connection library 332 determines whether or not the sum of the acquired memory capacity during execution and the total memory capacity during execution managed by the image processing connection library 332 exceeds the allowable memory capacity (memory shortage occurs). whether or not) is determined. When the image processing connection library 332 determines that this sum does not exceed the allowable memory capacity, in step S409, the running memory capacity managed by the running memory management unit 326 is defined in the execution memory definition 327. Add the execution memory capacity. In step S410, the image processing connection library 332 requests the target image processing plug-in application 303 for processing. The image processing plug-in application 303 receives an image processing request together with processing parameters from the image processing connection library 332, and executes image processing according to the processing parameters. There is a method of performing image processing within the image processing plug-in application 303 and a method of executing it by the native image processing module 316, which will be described in detail later. When image processing is executed, in the image processing plug-in application 303 or native image processing module 316, the CPU 211 expands input data to the RAM 212. At this time, it is necessary to allocate a memory having a capacity corresponding to the image processing contents and the input data size. Then, in step S411, the image processing connection library 332 receives the processing result from the image processing plug-in application 303, and in step S412 subtracts the execution memory capacity from the total memory capacity during execution. In step S413, the image processing connection library 332 returns the image processing result to each module of the client, and ends the processing.

스텝 S408에서 화상처리 접속 라이브러리(332)가 이 합이 허용 메모리 용량을 넘었다고 판단했을 경우, 스텝 S414로 처리를 진행하여, 화상처리 접속 라이브러리(332)는, 의뢰처의 모듈에 대하여, 현재 화상처리에 필요한 메모리 리소스가 충분하지 않기 때문에(메모리 부족 때문에) 화상처리를 실행할 수 없다는 것을 나타내는 에러를 반환하고, 처리를 종료한다. 네이티브 화상처리 접속 라이브러리(314)가 의뢰처이었을 경우, 디바이스 제어 라이브러리(309)를 거쳐, 상기한 에러 내용이 디바이스 제어 어플리케이션(304) 또는 단독 기능 플러그인 어플리케이션(302)에 전파된다. 디바이스 제어 어플리케이션(304) 또는 단독 기능 플러그인 어플리케이션(302)은 수신한 상기한 에러 내용에 근거하여, 예외처리를 실행한다.When the image processing connection library 332 judges that the sum exceeds the allowable memory capacity in step S408, the processing proceeds to step S414, and the image processing connection library 332 determines the current image processing for the module of the client. Returns an error indicating that image processing could not be executed because memory resources required for processing are not sufficient (due to insufficient memory), and processing is terminated. When the native image processing connection library 314 is the requesting destination, the above-mentioned error content is propagated to the device control application 304 or single function plug-in application 302 via the device control library 309. The device control application 304 or the single function plug-in application 302 executes exception processing based on the received error content.

예외처리의 일례는 리트라이(retry) 처리이다. 각 어플리케이션이 상기한 에러를 수신하면, 화상처리 접속 라이브러리(332) 상에서 복수의 화상처리가 동시에 실행되고 있다고 판단할 수 있다. 각 어플리케이션은, 일단 현재 실행중인 화상처리가 끝날 때까지 리트라이에 의해 대기하고, 실행중인 화상처리가 끝난 타이밍에서 다시 화상처리 요구를 송신한다. 이에 따라, 처리를 중단하지 않고 계속하는 것이 가능해 진다.An example of exception processing is retry processing. When each application receives the above error, it can be determined that a plurality of image processes are being simultaneously executed on the image processing connection library 332 . Each application once waits by retrying until the image processing currently being executed is finished, and transmits an image processing request again at the timing when the image processing being executed is finished. This makes it possible to continue processing without interruption.

또 다른 예외처리는, 각 어플리케이션의 조작 화면에 있어서, 복수의 화상처리가 동시 실행중이기 때문에, 어떤 시간 후에(소정 시간이 경과한 후에) 다시 잡을 투입하도록 촉구하는 에러를 표시하는 제어이다. 이 에러는 유저에게 어떤 시간후에 잡이 실행 가능한 것을 통지할 수 있다.Another exception processing is a control displaying an error that prompts the input of a job again after a certain period of time (after a predetermined period of time has elapsed) since a plurality of image processes are being simultaneously executed on the operation screen of each application. This error can notify the user that the job is available for execution after a certain amount of time.

전술한 바와 같이, 본 실시형태에 따르면, 화상처리 실행을 행하는 모듈(플러그인 어플리케이션)에 처리 의뢰를 행하기 전에, 실행할 화상처리에 의해 메모리 용량이 허용 메모리 용량을 넘을 것인지 아닌지를 판단한다. 메모리 용량이 허용 메모리 용량을 넘을 경우에는, 애당초 화상처리를 의뢰하지 않는다. 본실시형태에서는, 허용 메모리 용량을 초과한 메모리의 할당을 회피할 수 있다. 시스템이 허용하는 메모리 용량을 넘은 메모리의 할당으로 인해 시스템의 동작이 불안정해지기 전에, 메모리 할당을 제어할 수 있다.As described above, according to the present embodiment, before issuing a process request to a module (plug-in application) that performs image processing, it is determined whether or not the memory capacity exceeds the allowable memory capacity by the image processing to be executed. When the memory capacity exceeds the allowable memory capacity, image processing is not requested in the first place. In this embodiment, allocation of memory exceeding the allowable memory capacity can be avoided. Memory allocation can be controlled before the operation of the system becomes unstable due to memory allocation exceeding the memory capacity allowed by the system.

<화상처리 플러그인 어플리케이션에 의한 화상처리><Image processing by image processing plug-in application>

이하에서는, 화상처리 플러그인 어플리케이션에 의한 화상처리에 대해 설명한다. 화상처리를 화상처리 플러그인 어플리케이션(303)이 의뢰하면, 화상처리 플러그인 어플리케이션(303)은 의뢰된 처리 내용에 근거하여, 화상처리를 실행한다. 화상처리 플러그인 어플리케이션(303)은, 적어도 2종류의 방법에 의해 화상처리를 실행할 수 있다. 첫 번째 방법은, 화상처리 플러그인 어플리케이션(303) 내에서 화상처리를 실행하는 것이다. 이 경우, 화상처리 플러그인 어플리케이션은, 화상처리 접속 라이브러리(332)로부터로 수신한 처리 의뢰 및 처리 파라미터를 기초로 화상처리를 실행한다. 이 경우, 화상처리 플러그인 어플리케이션은 Java 언어로 기재할 필요가 있다. 두 번째 방법은, 네이티브 화상처리 모듈(316)에 화상 처리를 의뢰하는 방법이다. 화상처리 플러그인 어플리케이션(303)은, 네이티브 화상처리 클라이언트에 처리를 의뢰함으로써, 화상처리 플러그인 어플리케이션(303)과는 다른 화상처리 전용 프로세스에 있어서 화상처리를 실행하는 것이 가능해 진다.Hereinafter, image processing by an image processing plug-in application will be described. When the image processing plug-in application 303 requests image processing, the image processing plug-in application 303 executes the image processing based on the requested processing content. The image processing plug-in application 303 can execute image processing by at least two types of methods. The first method is to execute image processing within the image processing plug-in application 303. In this case, the image processing plug-in application executes image processing based on the processing request and processing parameters received from the image processing connection library 332 . In this case, the image processing plug-in application needs to be written in the Java language. The second method is a method of requesting image processing to the native image processing module 316 . The image processing plug-in application 303 can execute image processing in a process dedicated to image processing different from the image processing plug-in application 303 by requesting a native image processing client for processing.

도5를 참조하여, 각 화상처리 플러그인 어플리케이션(303)이 화상처리를 실행하는 처리 절차를 설명한다. 본 흐름도는, 네이티브 화상처리 서버(315)에 의뢰해서 화상처리를 실행하는 처리 절차를 나타낸다. 이때, 이하에서 설명하는 처리는, 예를 들면, CPU(211)이 HDD(213)에 보존된 프로그램을 RAM(212)에 판독해서 그 프로그램을 실행함으로써 실현된다.Referring to Fig. 5, a processing procedure in which each image processing plug-in application 303 executes image processing will be described. This flowchart shows a processing procedure for requesting the native image processing server 315 to execute image processing. At this time, the processing described below is realized by, for example, the CPU 211 reading the program stored in the HDD 213 into the RAM 212 and executing the program.

화상처리 플러그인 어플리케이션(303)은 네이티브 화상처리 클라이언트(331)에 처리 파라미터와 함께 화상처리 의뢰를 송신한다. 네이티브 화상처리 클라이언트(331)는 네이티브 화상처리 서버(315)에 대하여, 수신한 처리 파라미터와 함께 처리 의뢰를 행한다.The image processing plug-in application 303 transmits an image processing request together with processing parameters to the native image processing client 331 . The native image processing client 331 issues a processing request to the native image processing server 315 together with the received processing parameters.

스텝 S501에서, 네이티브 화상처리 서버(315)는 화상처리의 실행 의뢰를 수신하고, 스텝 S502에서, 수신한 처리 파라미터를 기초로, 대상이 되는 네이티브 화상처리 모듈(316)을 탐색한다. 스텝 S503에서, 네이티브 화상처리 서버(315)는, 대상의 네이티브 화상처리 모듈(316)이 존재하는지 아닌지를 판정한다. 대상의 네이티브 화상처리 모듈(316)이 존재하지 않는 경우에는, 스텝 S504로 처리를 진행하여, 네이티브 화상처리 서버(315)는, 대상의 네이티브 화상처리 모듈(316)이 존재하지 않는다는 것을 나타내는 에러를 네이티브 화상처리 클라이언트(331)에 반환하고, 처리를 종료한다.In step S501, the native image processing server 315 receives an image processing execution request, and in step S502, it searches for the target native image processing module 316 based on the received processing parameters. In step S503, the native image processing server 315 determines whether or not the target native image processing module 316 exists. If the target native image processing module 316 does not exist, processing proceeds to step S504, and the native image processing server 315 generates an error indicating that the target native image processing module 316 does not exist. It returns to the native image processing client 331, and processing ends.

대상의 네이티브 화상처리 모듈(316)이 존재할 경우, 스텝 S505로 처리를 진행하여, 네이티브 화상처리 서버(315)는, 대상의 네이티브 화상처리 모듈(316)에게 수신한 처리 파라미터를 기초로 화상처리를 실행시킨다. 이어서, 스텝 S506에서, 네이티브 화상처리 서버(315)는, 스텝 S505의 화상처리 결과를 네이티브 화상처리 클라이언트(331)에 반환하고, 처리를 종료한다. 네이티브 화상처리 클라이언트(331)가 화상처리 결과 또는 에러 내용을 수신하면, 그 내용을 화상처리 플러그인 어플리케이션(303)에 반환한다.If the target native image processing module 316 exists, processing proceeds to step S505, and the native image processing server 315 performs image processing based on the processing parameters received from the target native image processing module 316. run it Next, in step S506, the native image processing server 315 returns the image processing result of step S505 to the native image processing client 331, and the processing is terminated. When the native image processing client 331 receives an image processing result or error content, it returns the content to the image processing plug-in application 303 .

이상에서 설명한 바와 같이, 본 실시형태에 따른 화상 처리장치는, 1개 이상의 플러그인 어플리케이션에 의한 복수의 화상처리를 실행가능한 화상 처리장치다. 이 화상 처리장치가, 플러그인 어플리케이션에 의한 화상처리의 실행중에, 플러그인 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 이 새로운 화상처리를 실행가능한 플러그인 어플리케이션을 탐색한다. 또한, 화상 처리장치는 탐색된 플러그인 어플리케이션과 함께 유지되어 있는, 플러그인 어플리케이션에 의해 새로운 화상처리를 실행할 때의 메모리 사용량과, 플러그인 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량을 취득한다. 화상 처리장치는, 취득된 각 화상처리의 메모리 사용량 및 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 해당 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교한다. 화상 처리장치는, 비교의 결과 총 메모리 사용량이 허용 메모리 용량을 넘지 않을 경우는 새로운 화상처리를 실행한다. 총 메모리 사용량이 허용 메모리 용량을 넘을 경우는, 화상 처리장치는, 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지한다. 이에 따라, 화상처리 플러그인 어플리케이션(303)의 기동(인스톨)을 제한하지 않고, 화상처리 실행시에 실행중인 화상처리의 총 메모리를 계산함으로써, 복수의 화상처리에 대한 메모리 제어를 런타임에서 행할 수 있다. 본 실시형태에 따르면, 바람직하게 메모리 부족을 회피하면서, 복수의 화상처리를 실행할 수 있다. 이것은 유저의 편리성을 향상시킬 수 있다.As described above, the image processing device according to the present embodiment is an image processing device capable of executing a plurality of image processing by one or more plug-in applications. When this image processing apparatus is requested to execute a new image process by a plug-in application during execution of image processing by a plug-in application, it searches for a plug-in application capable of executing the new image process. Also, the image processing apparatus acquires the memory usage when a new image process is executed by the plug-in application, which is maintained together with the searched plug-in application, and the memory usage of each of the image processes already executed by the plug-in application. The image processing device indicates the total memory usage amount obtained from the memory usage amount of each acquired image process and the memory usage usage when executing the requested new image process, and the memory usage usage permitted for use in the process executing the corresponding plug-in application. Compare memory capacity. The image processing apparatus executes a new image process when, as a result of the comparison, the total memory usage does not exceed the allowable memory capacity. If the total amount of memory used exceeds the allowable memory capacity, the image processing device does not execute new image processing and notifies the request source of an error indicating that new image processing cannot be executed due to lack of memory. Accordingly, memory control for a plurality of image processes can be performed at runtime by calculating the total memory of the image processes being executed at the time of execution of the image processing without restricting the startup (installation) of the image processing plug-in application 303. . According to this embodiment, it is possible to execute a plurality of image processing while preferably avoiding memory shortage. This can improve user convenience.

본 발명은 상기 실시형태에 한정되지 않고 다양한 변형이 가능하다. 예를 들면, 화상처리 플러그인 어플리케이션(303)의 실행 메모리 정의(327)에 정의되어 있는 실행 메모리는, 네이티브 화상처리 모듈(316)이 화상처리를 실행할 때 사용되는 실행 메모리를 기재하는 것도 가능하다.The present invention is not limited to the above embodiment and various modifications are possible. For example, the execution memory defined in the execution memory definition 327 of the image processing plug-in application 303 can also describe execution memory used when the native image processing module 316 executes image processing.

<제2 실시형태><Second Embodiment>

이하에서는, 본 발명의 제2 실시형태에 대해 설명한다. 상기 제1 실시형태에서는, 화상처리 접속 라이브러리(332)가 복수의 화상처리에 대한 메모리 제어를 런타임에서 행하는 예를 설명했다. 본실시형태에서는, 플러그인 어플리케이션이 화상처리를 의뢰할 때에, 네이티브 화상처리 서버(315)가 네이티브 화상처리 제어 프로세스(350) 내부의 복수의 화상처리에 대한 메모리 제어를 행하는 예에 대해 설명한다.A second embodiment of the present invention will be described below. In the first embodiment, an example in which the image processing connection library 332 performs memory control for a plurality of image processing at runtime has been described. In this embodiment, an example in which the native image processing server 315 performs memory control for a plurality of image processes inside the native image processing control process 350 when a plug-in application requests image processing will be described.

<화상 처리장치의 소프트웨어 구성><Software configuration of image processing device>

우선, 도6을 참조하여, 본 실시형태에 따른 CPU(211)이 처리하는 소프트웨어의 구조의 일례를 설명한다. 이때, 기본적인 구성은 상기 제1 실시형태에 있어서 도3을 참조하여 설명한 내용과 같기 때문에, 주로 차분에 대해 설명한다. 동일한 구성에 대해서는 동일한 참조부호를 붙이고, 설명을 생략한다.First, with reference to Fig. 6, an example of the structure of software processed by the CPU 211 according to the present embodiment will be described. At this time, since the basic configuration is the same as the content described with reference to Fig. 3 in the first embodiment, the difference will be mainly explained. The same reference numerals are attached to the same components, and descriptions are omitted.

네이티브 화상처리 서버(315)는, 허용 메모리 정의(601)를 유지한다. 허용 메모리 정의(601)는 네이티브 화상처리 서버(315) 상에서 동시 실행될 때의 가능한 최대의 허용 메모리 용량을 정의하고 있다. 허용 메모리 정의(601)에 정의된 허용 메모리 용량은, 프로그램에 직접 기재해서 HDD(213)로부터 취득할 수도 있다. 이와 달리, 미리 허용 메모리 용량을 정의한 파일을 설치하고, 실행시에 로드하여도 된다. 이때, 허용 메모리를 취득하는 방법은 상기한 방법 이외의 방법이어도 된다. 네이티브 화상처리 서버(315)는, 실행중 메모리 관리부(602)를 더 유지한다. 실행중 메모리 관리부(602)는, 네이티브 화상처리 서버(315) 경유로 실행중인 화상처리의 총 메모리 용량을 관리하고 있다.The native image processing server 315 maintains an allowed memory definition 601 . The allowed memory definition 601 defines the maximum allowable memory capacity possible when concurrently executed on the native image processing server 315 . The allowable memory capacity defined in the allowable memory definition 601 can also be acquired from the HDD 213 by directly writing in a program. Alternatively, a file defining the allowable memory capacity in advance may be installed and loaded at the time of execution. At this time, the method of obtaining the allowed memory may be a method other than the above method. The native image processing server 315 further maintains a memory management unit 602 during execution. The running memory management unit 602 manages the total memory capacity of image processing being executed via the native image processing server 315 .

<처리 절차><Processing Procedure>

다음에, 도7을 참조하여, 본 실시형태에 따른 화상 처리장치(101)의 처리 절차의 일례를 설명한다. 여기에서는, 네이티브 화상처리 서버(315)가 실행중인 화상처리의 메모리를 관리하고, 화상처리를 실행하는 케이스를 상정한다. 이와 같은 화상처리의 의뢰처는 화상처리 플러그인 어플리케이션(303)이 된다. 이때, 이하에서 설명하는 처리는, 예를 들면, CPU(211)이 HDD(213)에 보존된 프로그램을 RAM(212)에 판독해서 그 프로그램을 실행함으로써 실현된다.Next, with reference to Fig. 7, an example of processing procedures of the image processing apparatus 101 according to the present embodiment will be described. Here, a case is assumed in which the native image processing server 315 manages the memory of the image processing being executed and executes the image processing. The client for such image processing is the image processing plug-in application 303. At this time, the processing described below is realized by, for example, the CPU 211 reading the program stored in the HDD 213 into the RAM 212 and executing the program.

스텝 S701에서, 네이티브 화상처리 서버(315)는 네이티브 화상처리 클라이언트(331)로부터 처리 파라미터와 함께 화상처리의 실행 의뢰를 수신하고, 스텝 S702에서 네이티브 화상처리 모듈(316)을 탐색한다. 스텝 S703에서, 네이티브 화상처리 서버(315)는, 스텝 S702의 탐색 결과에 근거하여, 대상의 네이티브 화상처리 모듈(316)이 존재하는지 아닌지를 판단한다.In step S701, the native image processing server 315 receives an image processing execution request together with processing parameters from the native image processing client 331, and searches for the native image processing module 316 in step S702. In step S703, the native image processing server 315 determines whether or not the target native image processing module 316 exists based on the search result in step S702.

대상의 네이티브 화상처리 모듈(316)이 존재하지 않는 경우에는, 스텝 S704로 처리를 진행하여, 네이티브 화상처리 서버(315)는 대상의 네이티브 화상처리 모듈(316)이 존재하지 않는다는 것을 나타내는 에러를 반환하고, 처리를 종료한다. 에러를 수신시에, 네이티브 화상처리 클라이언트(331)는, 의뢰처인 화상처리 플러그인 어플리케이션(303)에 에러 내용을 전파한다. 이 경우, 화상 처리장치(101)의 HDD(213)에 필요한 네이티브 화상처리 모듈(316)이 인스톨되지 않으며 통상의 조작에 있어서는 발생하지 않는다. 따라서, 개발자가 소스 코드를 수정할 필요가 있다.If the target native image processing module 316 does not exist, processing proceeds to step S704, and the native image processing server 315 returns an error indicating that the target native image processing module 316 does not exist. and end the processing. Upon receiving an error, the native image processing client 331 propagates the content of the error to the requesting image processing plug-in application 303. In this case, the native image processing module 316 necessary for the HDD 213 of the image processing device 101 is not installed and does not occur in normal operation. Therefore, it is necessary for developers to modify the source code.

대상의 네이티브 화상처리 모듈(316)이 존재하는 경우에는, 스텝 S705로 처리를 진행하여, 네이티브 화상처리 서버(315)는, 대상의 네이티브 화상처리 모듈(316)의 실행 메모리 정의(603)로부터 실행 메모리 용량을 취득한다. 이어서, 스텝 S706에서, 네이티브 화상처리 서버(315)는, 네이티브 화상처리 서버(315)의 허용 메모리 정의(601)로부터 허용 메모리 용량을 취득한다. 스텝 S707에서, 네이티브 화상처리 서버(315)는, 네이티브 화상처리 서버(315)의 실행중 메모리 관리부(602)로부터 실행중 총 메모리 용량을 취득한다.If the target native image processing module 316 exists, processing proceeds to step S705, and the native image processing server 315 is executed from the execution memory definition 603 of the target native image processing module 316. Get the memory capacity. Next, in step S706, the native image processing server 315 acquires the allowed memory capacity from the allowed memory definition 601 of the native image processing server 315. In step S707, the native image processing server 315 acquires the total running memory capacity from the running memory management unit 602 of the native image processing server 315.

스텝 S708에서, 네이티브 화상처리 서버(315)는, 취득한 실행중 메모리 용량과 실행중 총 메모리 용량의 합이 허용 메모리 용량을 초과하는지 아닌지를 판단한다. 네이티브 화상처리 서버(315)가 합이 허용 메모리 용량을 넘지 않는다고 판단한 경우에는, 스텝 S709로 처리를 진행하여, 네이티브 화상처리 서버(315)는, 실행중 총 메모리 용량에 실행 메모리 용량을 가산한다. 스텝 S710에서, 네이티브 화상처리 서버(315)는, 네이티브 화상처리 모듈(316)에 대하여 화상처리 실행을 의뢰한다. 네이티브 화상처리 모듈(316)은, 처리 파라미터와 함께 화상처리 의뢰를 수신하고, 처리 파라미터에 따라 화상처리를 실행한다. 화상처리를 실행할 때, 네이티브 화상처리 모듈(316)에서는, CPU(211)이 입력 데이터를 RAM(212)에 전개하고, 처리를 행한다. 이때, 화상처리 내용 및 입력 데이터 사이즈에 따라, 메모리를 할당할 필요가 있다.In step S708, the native image processing server 315 judges whether or not the sum of the acquired memory capacity during execution and the total memory capacity during execution exceeds the allowable memory capacity. If the native image processing server 315 determines that the sum does not exceed the allowable memory capacity, the processing proceeds to step S709, and the native image processing server 315 adds the execution memory capacity to the total memory capacity during execution. In step S710, the native image processing server 315 requests the native image processing module 316 to execute image processing. The native image processing module 316 receives an image processing request with processing parameters, and executes image processing according to the processing parameters. When performing image processing, in the native image processing module 316, the CPU 211 expands input data to the RAM 212 and performs processing. At this time, it is necessary to allocate memory according to image processing content and input data size.

스텝 S711에서, 네이티브 화상처리 서버(315)는, 화상처리 결과를 네이티브 화상처리 모듈(316)로부터 수신하고, 스텝 S712에서 실행중 총 메모리 용량으로부터 실행 메모리 용량을 감산한다. 스텝 S713에서, 네이티브 화상처리 서버(315)는, 화상처리 결과를 네이티브 화상처리 클라이언트(331)에 반환하고, 처리를 종료한다.In step S711, the native image processing server 315 receives the image processing result from the native image processing module 316, and subtracts the execution memory capacity from the total memory capacity during execution in step S712. In step S713, the native image processing server 315 returns the image processing result to the native image processing client 331, and ends the processing.

네이티브 화상처리 서버(315)가 스텝 S708에서 합이 허용 메모리 용량을 넘는다고 판단한 경우에는 스텝 S714로 처리를 진행하여, 네이티브 화상처리 서버(315)는, 현재 필요한 메모리 리소스가 충분하지 않기 때문에, 화상처리를 실행할 수 없다는 것을 나타내는 에러를 네이티브 화상처리 클라이언트(331)에 반환한다. 그 후에 처리를 종료한다.If the native image processing server 315 determines in step S708 that the sum exceeds the allowable memory capacity, the process proceeds to step S714, and the native image processing server 315 determines that the currently required memory resources are not sufficient. An error indicating that processing cannot be executed is returned to the native image processing client 331. After that, processing is terminated.

네이티브 화상처리 클라이언트(331)는 상기한 화상처리 결과 및 에러 내용을 화상처리 플러그인 어플리케이션(303)에 전파한다. 화상처리 플러그인 어플리케이션은 화상처리 결과를 받고, 화상처리 접속 라이브러리(332)를 거쳐 의뢰처의 모듈에 그것을 전파한다. 메모리 리소스가 충분하지 않다는 것을 나타내는 에러를 수신했을 경우, 예외처리를 실행한다. 예외처리의 일례는 리트라이 처리이다. 화상처리 플러그인 어플리케이션(303)은, 상기한 에러를 수신했을 경우, 실행중인 화상처리가 존재하기 때문에 화상처리를 실행할 수 없다고 판단할 수 있다. 따라서, 소정의 시간 후에 화상처리 클라이언트(331)에 처리를 의뢰함으로써 실행하는 것이 가능하다. 화상처리 플러그인 어플리케이션 내에서 행해지는 리트라이 처리는, 의뢰처의 모듈에 의해 리트라이 처리를 행하지 않아도 된다고 하는 이점을 갖는다. 다른 예외처리로서, 의뢰처에 있는 단독 기능 플러그인 어플리케이션(302) 및 디바이스 제어 어플리케이션(304)까지 상기한 에러를 전파한다. 어플리케이션에 따라 리트라이를 행하는 것이 바람직한 경우와, 리트라이를 중단하는 것이 바람직한 경우의 양자를 상정할 수 있는 경우에는, 어플리케이션측에 상기한 에러를 전파함으로써, 어플리케이션 내에서 리트라이 및 중단을 전환하는 것이 가능해 진다.The native image processing client 331 propagates the image processing result and error details to the image processing plug-in application 303 . The image processing plug-in application receives the image processing result and propagates it to the client's module via the image processing connection library 332. Execute exception processing when receiving an error indicating that there are not enough memory resources. An example of exception processing is retry processing. When receiving the above error, the image processing plug-in application 303 can determine that the image processing cannot be executed because there is an image processing being executed. Therefore, it is possible to execute by requesting processing to the image processing client 331 after a predetermined period of time. The retry processing performed in the image processing plug-in application has an advantage that it is not necessary to perform the retry processing by the requesting module. As another exception processing, the above error is propagated to the single function plug-in application 302 and the device control application 304 in the client. If it is possible to assume both a case where it is desirable to perform a retry depending on the application and a case where it is desirable to abort the retry, by propagating the above error to the application side, switching between retry and abort within the application is possible. it becomes possible

전술한 바와 같이, 네이티브 화상처리 모듈(316)에 처리 의뢰를 행하기 전에, 미리 실행할 화상처리에 의해 메모리 용량이 허용 메모리 용량을 넘고 있는지 아닌지를 판단해서 제어를 행한다. 메모리 용량이 허용 메모리 용량을 넘는 경우에는, 애당초 화상처리를 의뢰하지 않기 때문에, 메모리를 쓸데없이 할당하지 않는다. 시스템(장치)이 허용하는 메모리 용량을 넘는 메모리를 할당하는 것으로 인해 시스템의 동작이 불안정해지기 전에, 사전에 메모리 할당을 제어할 수 있다.As described above, before processing is requested to the native image processing module 316, it is judged whether or not the memory capacity exceeds the allowable memory capacity by image processing to be executed in advance, and control is performed. When the memory capacity exceeds the allowable memory capacity, since image processing is not requested in the first place, memory is not allocated uselessly. Memory allocation can be controlled in advance before the operation of the system becomes unstable due to allocation of memory exceeding the memory capacity allowed by the system (device).

본 실시형태에 있어서, 네이티브 화상처리 제어 프로세스(350) 내의 상기한 메모리 제어와 병렬로, 플러그인에 의해 실현되는 다른 화상처리 제어 프로세스에 대해서도 같은 메모리 제어를 행하여도 된다. 즉, 프로세스마다 메모리 허용량을 정의해도 된다. 예를 들면, 제2 실시형태에 따른 구성을 상기 제1 실시형태에 따른 구성과 조합해서 적용해도 된다.In this embodiment, in parallel with the above memory control in the native image processing control process 350, the same memory control may be performed for other image processing control processes realized by plug-ins. That is, you may define the amount of memory allowed for each process. For example, the configuration according to the second embodiment may be applied in combination with the configuration according to the first embodiment.

본 실시형태에 따르면, 화상처리 플러그인 어플리케이션(303)의 기동을 제한하지 않고, 화상처리 실행시에 실행중인 화상처리의 총 메모리를 계산함으로써, 복수의 화상처리에 대한 메모리 제어를 런타임에서 행하는 것이 가능해 진다. 이것은 유저의 편리성을 향상시킬 수 있다. 제1 실시형태와는 다르게, 화상처리를 전문으로 행하는 프로세스(네이티브 화상처리 제어 프로세스(350)) 내에 제한해서 메모리 관리를 행하는 것이 가능해 진다. 화상처리 플러그인 어플리케이션(303)이 네이티브 화상처리 제어 프로세스(350) 상에서의 화상처리의 메모리 제어를 의식할 필요가 없다. 화상처리 플러그인 어플리케이션(303)의 개발 효율이 향상한다고 하는 이점이 있다.According to the present embodiment, it is possible to perform memory control for a plurality of image processes at runtime by calculating the total memory of image processes being executed at the time of image processing execution without restricting the startup of the image processing plug-in application 303. lose This can improve user convenience. Unlike the first embodiment, it becomes possible to perform memory management confined to a process that specializes in image processing (native image processing control process 350). The image processing plug-in application 303 need not be aware of the memory control of image processing on the native image processing control process 350. There is an advantage that the development efficiency of the image processing plug-in application 303 is improved.

<제3 실시형태><Third Embodiment>

이하에서는, 본 발명의 제3 실시형태에 대해 설명한다. 본실시형태에서는, 네이티브 화상처리 모듈(316)이 주로 메모리 제어를 행하는 예를 설명한다. 제3 실시형태에 있어서는, 메모리 제어를 행하고 제1 및 제2 실시형태와 달리 병렬처리를 행할 수 없는 경우에는, 에러를 즉시 반환하지 않고 처리를 실행한다. 복수 페이지의 화상처리에 대한 병렬처리를 행할 수 있는 경우에는, 병렬처리를 사용하여 처리를 고속화한다.Hereinafter, a third embodiment of the present invention will be described. In this embodiment, an example in which the native image processing module 316 mainly performs memory control will be described. In the third embodiment, when memory control is performed and parallel processing cannot be performed unlike in the first and second embodiments, processing is executed without immediately returning an error. When parallel processing for image processing of multiple pages can be performed, parallel processing is used to speed up processing.

<처리 절차><Processing Procedure>

우선, 도8a 및 도 8b를 참조하여, 본 실시형태에 따른 화상 처리장치(101)의 처리 절차의 일례를 설명한다. 네이티브 화상처리 모듈(316)이 네이티브 화상처리 서버(315)에 실행 메모리를 등록하고, 메모리 제어를 행하는 일례를 설명한다. 이때, 이하에서 설명하는 처리는, 예를 들면, CPU(211)이 HDD(213)에 보존된 프로그램을 RAM(212)에 판독해서 그 프로그램을 실행함으로써 실현된다.First, with reference to Figs. 8A and 8B, an example of a processing procedure of the image processing apparatus 101 according to the present embodiment will be described. An example in which the native image processing module 316 registers an execution memory in the native image processing server 315 and performs memory control will be described. At this time, the processing described below is realized by, for example, the CPU 211 reading the program stored in the HDD 213 into the RAM 212 and executing the program.

우선, 스텝 S801에서, 네이티브 화상처리 모듈(316)은, 네이티브 화상처리 서버(315)로부터 화상처리의 실행 의뢰를 수신한다. 이어서, 스텝 S802에서, 네이티브 화상처리 모듈(316)은, 수신한 화상처리에 필요한 메모리 사이즈(메모리 사용량)를 실행 메모리 정의(603)로부터 취득한다. 스텝 S803에서, 네이티브 화상처리 모듈(316)은, 수신한 화상처리에 대하여 병렬처리가 가능한가 아닌지를 판단한다. 네이티브 화상처리 모듈(316)은 병렬처리가 가능인가 아닌지를 나타내는 정보를 가질 수 있으며, 이 정보를 사용해서 판단해도 된다. 이때, 병렬처리가 가능한지 아닌지를 나타낸 정보를 이용하여, 상기 제1 및 제2 실시형태에서 설명한 바와 같이, 네이티브 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량과, 상기 필요한 메모리 사용량에 근거하여, 병렬처리가 가능한지 아닌지를 판단해도 된다. 예를 들면, 상기 2개의 총 메모리 사용량에서 병행 처리를 행했을 경우에 허용 메모리 용량을 총 메모리 사용량이 넘지 않도록, 총 메모리 사용량에 대응하는 임계값 메모리 용량을 결정하고, 임계값 메모리 용량과 허용 메모리 용량의 비교 결과에 근거하여 결정을 행하여도 된다. 이와 달리, 실행 메모리 정의(603)에 미리 메타 정보로서 병렬처리 가능한지 아닌지를 나타내는 정보(예를 들면, 임계값 메모리 용량)를 부가해 두고, 그것을 판독함으로써 판단해도 된다.First, in step S801, the native image processing module 316 receives an image processing execution request from the native image processing server 315. Next, in step S802, the native image processing module 316 acquires the memory size (memory usage) necessary for processing the received image from the execution memory definition 603. In step S803, the native image processing module 316 determines whether or not parallel processing is possible for the received image processing. The native image processing module 316 may have information indicating whether or not parallel processing is possible, and may use this information to make a decision. At this time, using information indicating whether parallel processing is possible or not, as described in the first and second embodiments, based on the amount of memory for each of the image processing already executed by the native application and the amount of memory required, , it may be determined whether or not parallel processing is possible. For example, a threshold memory capacity corresponding to the total memory usage is determined so that the total memory usage does not exceed the allowable memory capacity when parallel processing is performed in the two total memory usages, and the threshold memory capacity and the allowable memory capacity are determined. The decision may be made based on the result of the comparison of capacities. Alternatively, it may be judged by adding information indicating whether parallel processing is possible (for example, threshold memory capacity) as meta information in advance to the execution memory definition 603 and reading it.

스텝 S804에서, 네이티브 화상처리 모듈(316)이, 스텝 S803의 판단 결과에 근거하여, 수신한 화상처리에 대하여 병렬처리가 불가능하다고 판정하면, 스텝 S805로 처리를 진행한다. 네이티브 화상처리 모듈(316)이, 병렬처리가 가능하다고 판정하면, 스텝 S811로 처리를 진행한다.In step S804, if the native image processing module 316 determines that parallel processing is not possible for the received image processing based on the determination result in step S803, the processing proceeds to step S805. If the native image processing module 316 determines that parallel processing is possible, processing proceeds to step S811.

스텝 S805는, 병렬처리가 가능하지 않은(각 화상처리를 순차 실행하는) 경우 스텝 S806 내지 S810의 처리를 동기적으로 수신한 화상처리의 페이지 수만큼 반복하는 처리를 나타낸다. 스텝 S806에서, 네이티브 화상처리 모듈(316)은, 네이티브 화상처리 서버(315)에 네이티브 화상처리 모듈(316)의 실행 메모리 정의(603)로부터 취득한 메모리 정보를 등록한다. 네이티브 화상처리 서버(315)에 의한 메모리 정보의 등록의 상세에 관해서는 도9를 참조해서 후술한다. 스텝 S807에서, 네이티브 화상처리 모듈(316)은, 스텝 S806에서 실행 메모리의 등록이 성공적인지 아닌지를 판단한다. 등록이 실패하는 경우에는, 스텝 S808로 처리를 진행하여, 네이티브 화상처리 모듈(316)은 화상처리에 필요한 메모리 리소스가 충분하지 않기 때문에 화상처리를 실행할 수 없다는 것을 나타내는 에러를 네이티브 화상처리 서버(315)에 반환하고, 처리를 종료한다. 네이티브 화상처리 서버(315)는 네이티브 화상처리 클라이언트(331)를 통해 호출측의 어플리케이션에 이 에러를 전파한다.Step S805 shows processing for repeating the processing of steps S806 to S810 for the number of pages of synchronously received image processing when parallel processing is not possible (each image processing is executed sequentially). In step S806, the native image processing module 316 registers the memory information acquired from the execution memory definition 603 of the native image processing module 316 in the native image processing server 315. Details of registration of memory information by the native image processing server 315 will be described later with reference to FIG. In step S807, the native image processing module 316 determines whether registration of the execution memory is successful or not in step S806. If registration fails, the processing proceeds to step S808, and the native image processing module 316 sends an error indicating that image processing cannot be executed because memory resources required for image processing are not sufficient, to the native image processing server 315. ), and processing ends. The native image processing server 315 propagates this error to the calling application through the native image processing client 331 .

네이티브 화상처리 서버(315)에 실행 메모리의 등록이 성공적인 경우에는, 스텝 S809로 처리를 진행하여, 네이티브 화상처리 모듈(316)이 대상의 화상처리를 실행한다. 화상처리가 완료하면, 스텝 S810에서, 네이티브 화상처리 모듈(316)은, 네이티브 화상처리 서버(315)에 대하여 해제할 메모리 정보와 함께 실행 메모리 해제를 의뢰한다. 반복의 루프 처리가 종료한 후, 처리를 종료한다.If registration of the execution memory in the native image processing server 315 is successful, the processing proceeds to step S809, and the native image processing module 316 executes the target image processing. When the image processing is completed, in step S810, the native image processing module 316 requests the native image processing server 315 to release the execution memory together with the memory information to be released. After the repeated loop processing is finished, the processing ends.

네이티브 화상처리 모듈(316)이 스텝 S804에서 병렬처리가 가능하다고 판단한 경우에는, 스텝 S811로 처리를 진행하여, 병렬처리가 가능할 경우에 있어서의 스텝 S812 내지 S814의 처리를 동기적으로 수신한 화상처리의 페이지 수만큼 반복한다. 스텝 S812에서, 네이티브 화상처리 모듈(316)은, 네이티브 화상처리 모듈(316)의 실행 메모리 정의(603)로부터 취득한 실행 메모리를 네이티브 화상처리 서버(315)에 대하여 등록한다. 이때, 네이티브 화상처리 서버(315)에 의한 메모리 등록의 시퀀스는 도9를 참조해서 후술한다. 스텝 S813에서, 네이티브 화상처리 모듈(316)은, 실행 메모리의 등록이 성공적인지 아닌지를 판단한다. 등록이 성공적인 경우에는, 스텝 S814로 처리를 진행하여, 네이티브 화상처리 모듈(316)이 병렬 실행수를 증분한다. 병렬 실행수는, 병렬로 실행할 스레드 수를 나타내고, RAM(212), HDD(213) 등에서 관리하고 있는 변수이다. 실행 메모리의 등록이 실패하면, 이 루프 처리로부터 처리가 탈출하여 스텝 S815로 진행한다. 반복의 루프 처리가 종료하면, 스텝 S815로 처리를 진행한다. 처리가 이 루프 처리로부터 탈출하는 단계에서, 병렬 실행수에는, 0으로부터 설정된 페이지 수의 범위의 양의 정수가 입력된다.When the native image processing module 316 determines that parallel processing is possible in step S804, the processing proceeds to step S811, and the processing of steps S812 to S814 in the case where parallel processing is possible is synchronously received for image processing. Repeat as many times as the number of pages. In step S812, the native image processing module 316 registers the execution memory acquired from the execution memory definition 603 of the native image processing module 316 with the native image processing server 315. At this time, the memory registration sequence by the native image processing server 315 will be described later with reference to FIG. In step S813, the native image processing module 316 determines whether registration of the execution memory is successful or not. If the registration is successful, processing proceeds to step S814, and the native image processing module 316 increments the number of parallel executions. The number of parallel executions indicates the number of threads to be executed in parallel, and is a variable managed by the RAM 212, HDD 213, and the like. If registration of the execution memory fails, the process escapes from this loop process and proceeds to step S815. When the repetitive loop process ends, the process proceeds to step S815. At the stage where the processing exits from this loop processing, a positive integer in the range of the number of pages set from 0 is input to the number of parallel executions.

스텝 S815에서, 네이티브 화상처리 모듈(316)은, 계산한 병렬 실행수가 0보다 큰지 아닌지를 판단한다. 병렬 실행수가 0보다 크면, 스텝 S816으로 처리를 진행하고, 그렇지 않은 경우에는 스텝 S808로 진행한다. 스텝 S808에서, 네이티브 화상처리 모듈(316)은, 화상처리에 필요한 메모리 리소스가 충분하지 않기 때문에 화상처리를 실행할 수 없다는 것을 나타내는 에러를 네이티브 화상처리 서버(315)에 반환하고, 처리를 종료한다. 네이티브 화상처리 서버(315)는 네이티브 화상처리 클라이언트(331)를 거쳐 호출측의 어플리케이션에 이 에러를 전파한다.In step S815, the native image processing module 316 determines whether or not the calculated number of parallel executions is greater than zero. If the number of parallel executions is greater than 0, the process proceeds to step S816, otherwise the process proceeds to step S808. In step S808, the native image processing module 316 returns an error indicating that image processing cannot be executed because memory resources required for image processing are not sufficient to the native image processing server 315, and the processing is terminated. The native image processing server 315 propagates this error to the calling application via the native image processing client 331.

병렬 실행수가 1개 이상의 정수이면, 스텝 S816으로 처리를 진행하여, 네이티브 화상처리 모듈(316)이 이 병렬 실행수만큼의 스레드를 기동한다. 본 실시형태에서는 스레드를 기동했지만, 프로세스를 기동해도 된다. 계속해서, 스텝 S817로 처리를 진행하여, 스텝 S818의 처리를 설정된 페이지 수만큼 반복한다. 스텝 S818에서, 네이티브 화상처리 모듈(316)은 비어 있는 스레드에 각 페이지의 화상처리를 할당해서 그것을 실행한다. 처리가 이 루프 처리를 탈출한 후, 모든 스레드의 화상처리 실행이 완료하고, 수신한 모든 페이지에 대한 화상처리가 완료한다. 최후에, 스텝 S819에서, 네이티브 화상처리 모듈(316)은, 네이티브 화상처리 서버(315)에 대하여 실행 메모리의 해제 의뢰를 기동 스레드 수만큼 행하고, 처리를 종료한다.If the number of parallel executions is an integer equal to or greater than 1, processing proceeds to step S816, and the native image processing module 316 activates as many threads as the number of parallel executions. In this embodiment, a thread is started, but a process may be started. Subsequently, the process proceeds to step S817, and the process of step S818 is repeated for the set number of pages. In step S818, the native image processing module 316 allocates the image processing of each page to an empty thread and executes it. After the processing exits this loop processing, image processing execution of all threads is completed, and image processing for all received pages is completed. Finally, in step S819, the native image processing module 316 issues a release request of the execution memory to the native image processing server 315 for the number of activated threads, and ends the processing.

<실행 메모리 등록><Register Execution Memory>

다음에, 도9를 참조하여, 스텝 S806 및 S812에 있어서, 네이티브 화상처리 서버(315)가 네이티브 화상처리 모듈(316)로부터 실행 메모리 등록 의뢰를 받았을 때의 처리 절차를 설명한다. 이때, 이하에서 설명하는 처리는, 예를 들면, CPU(211)이 HDD(213)에 보존된 프로그램을 RAM(212)에 판독해서 그 프로그램을 실행함으로써 실현된다.Next, with reference to Fig. 9, processing procedures when the native image processing server 315 receives an execution memory registration request from the native image processing module 316 in steps S806 and S812 will be described. At this time, the processing described below is realized by, for example, the CPU 211 reading the program stored in the HDD 213 into the RAM 212 and executing the program.

스텝 S901에서, 네이티브 화상처리 서버(315)는, 네이티브 화상처리 모듈(316)로부터 실행 메모리 정보와 함께 실행 메모리 등록 의뢰를 수신한다. 스텝 S902에서, 네이티브 화상처리 서버(315)는, 수신한 메모리 사이즈와 실행중인 화상처리 메모리 사이즈의 합계가 허용 메모리 사이즈를 초과하고 있는지 아닌지를 판단한다. 합계가 허용 메모리 사이즈를 넘고 있으면, 스텝 S903으로 처리를 진행하여, 네이티브 화상처리 서버(315)는 등록이 실패한 것을 나타내는 메시지를 네이티브 화상처리 모듈(316)에 반환한다. 그후, 처리를 종료한다. 합계가 허용 메모리 사이즈를 넘지 않고 있으면, 스텝 S904로 처리를 진행하여, 네이티브 화상처리 서버(315)는 실행중 메모리에 수신한 메모리 사이즈를 가산하고, 스텝 S905에서 등록이 성공적인 것을 나타내는 메시지를 네이티브 화상처리 모듈(316)에 반환한다. 그후, 처리를 종료한다.In step S901, the native image processing server 315 receives an execution memory registration request together with execution memory information from the native image processing module 316. In step S902, the native image processing server 315 judges whether or not the sum of the received memory size and the image processing memory size being executed exceeds the allowable memory size. If the total exceeds the allowable memory size, processing proceeds to step S903, and the native image processing server 315 returns a message indicating that registration has failed to the native image processing module 316. After that, processing ends. If the total does not exceed the allowable memory size, the processing proceeds to step S904, the native image processing server 315 adds the received memory size to the memory during execution, and sends a message indicating successful registration in step S905 to the native image processing server 315. Return to processing module 316. After that, processing ends.

<실행 메모리 해제><Release Execution Memory>

도10을 참조하여, 스텝 S810에 있어서, 네이티브 화상처리 서버(315)가 네이티브 화상처리 모듈(316)로부터 실행 메모리의 해제 의뢰를 받았을 때의 처리 절차를 설명한다. 이때, 이하에서 설명하는 처리는, 예를 들면, CPU(211)이 HDD(213)에 보존된 프로그램을 RAM(212)에 판독해서 그 프로그램을 실행함으로써 실현된다.Referring to Fig. 10, a processing procedure when the native image processing server 315 receives a release request of the execution memory from the native image processing module 316 in step S810 will be described. At this time, the processing described below is realized by, for example, the CPU 211 reading the program stored in the HDD 213 into the RAM 212 and executing the program.

스텝 S1001에서, 네이티브 화상처리 서버(315)는, 네이티브 화상처리 모듈(316)로부터 실행 메모리 해제 의뢰를 수신한다. 스텝 S1002에서, 네이티브 화상처리 서버(315)는, 실행중 메모리로부터 수신한 메모리 사이즈를 감산하고, 처리를 종료한다.In step S1001, the native image processing server 315 receives an execution memory release request from the native image processing module 316. In step S1002, the native image processing server 315 subtracts the memory size received from the running memory, and ends the processing.

이상에서 설명한 바와 같이, 본 실시형태에 따르면, 네이티브 화상처리 모듈(316)은 주체가 되어 메모리 제어를 실시할 수 있다. 네이티브 화상처리 모듈(316) 특성에 의존하여, 병렬처리가 가능한지 아닌지에 따라 적절히 스레드 제어를 행하는 것이 가능하다. 메모리 제어를 행하면서, 복수 페이지에 대한 고속화를 실현할 수 있다.As described above, according to the present embodiment, the native image processing module 316 can perform memory control as a main body. Depending on the characteristics of the native image processing module 316, it is possible to appropriately perform thread control depending on whether parallel processing is possible or not. It is possible to realize high speed for multiple pages while performing memory control.

<제4 실시형태><Fourth Embodiment>

이하에서는, 본 발명의 제4 실시형태에 대해 설명한다. 상기 제3 실시형태에서는, 병렬 실행이 가능한 화상처리 모듈에 있어서는, 복수 페이지의 화상처리의 실시전에, 병렬 실행수를 결정한 후 병렬처리를 행하는 예를 설명하였다. 제4 실시형태에서는, 상기 제3 실시형태의 변형예로서, 화상처리의 실행중에 동적으로 병렬 실행수를 증가시키는 예를 설명한다.A fourth embodiment of the present invention will be described below. In the above third embodiment, in the image processing module capable of parallel execution, an example in which parallel processing is performed after determining the number of parallel executions has been described before performing image processing of a plurality of pages. In the fourth embodiment, as a modified example of the third embodiment, an example in which the number of parallel executions is dynamically increased during execution of image processing will be described.

<처리 절차><Processing Procedure>

우선, 도11을 참조하여, 본 실시형태에 따른 화상처리중에 동적으로 병렬 실행수를 증가시키는 처리 절차에 대해 설명한다. 본 흐름도는 도8b의 흐름도의 스텝 S816 내지 S819의 처리의 변형예가 된다. 스텝 S816 이전에 행해지는 처리는 도8b의 흐름도와 같다. 이때, 이하에서 설명하는 처리는, 예를 들면, CPU(211)이 HDD(213)에 보존된 프로그램을 RAM(212)에 판독해서 그 프로그램을 실행함으로써 실현된다.First, with reference to Fig. 11, a processing procedure for dynamically increasing the number of parallel executions during image processing according to the present embodiment will be described. This flowchart is a modified example of the processing of steps S816 to S819 in the flowchart of Fig. 8B. The processing performed before step S816 is the same as the flowchart in Fig. 8B. At this time, the processing described below is realized by, for example, the CPU 211 reading the program stored in the HDD 213 into the RAM 212 and executing the program.

스텝 S1101에서, 네이티브 화상처리 모듈(316)은, 병렬 실행 수 만큼의 스레드를 기동한다. 스텝 S1102로 처리를 진행하여, 스텝 S1103 내지 S1107의 루프처리를 설정된 페이지 수만큼 반복하여 실행한다. 구체적으로는, 스텝 S1103에서, 네이티브 화상처리 모듈(316)은, 비어 있는 스레드에 각 페이지의 화상처리를 할당해서 그것을 실행한다. 스텝 S1104로 처리를 진행하여, 스텝 S1105 내지 S1107의 루프 처리를 화상처리를 대기하는 페이지 수만큼 반복하여 실행한다.In step S1101, the native image processing module 316 activates as many threads as the number of parallel executions. The processing proceeds to step S1102, and the loop processing of steps S1103 to S1107 is repeatedly executed for the set number of pages. Specifically, in step S1103, the native image processing module 316 assigns the image processing of each page to an empty thread and executes it. The processing proceeds to step S1104, and the loop processing of steps S1105 to S1107 is repeatedly executed for the number of pages waiting for image processing.

스텝 S1105에서, 네이티브 화상처리 모듈(316)은, 네이티브 화상처리 서버(315)에 실행 메모리를 등록한다. 스텝 S1106에서, 네이티브 화상처리 모듈(316)은, 실행 메모리의 등록이 성공적인지 아닌지를 판단한다. 실행 메모리의 등록이 실패한 경우에는, 스텝 S1104의 루프로부터 처리가 탈출하여, 스텝 S1102의 루프로 되돌아온다. 스텝 S1106에서 실행 메모리의 등록이 성공적이라고 네이티브 화상처리 모듈(316)이 판단하면, 실행 스레드를 생성하고, 스텝 S1104로 처리가 되돌아온다. 이들 루프를 설정된 화상처리에 대응하는 페이지 수만큼 반복하여 실행한다(스텝 S1102). 그 결과, 모든 페이지의 화상처리가 완료하고, 스텝 S1108로 처리를 진행한다.In step S1105, the native image processing module 316 registers an execution memory in the native image processing server 315. In step S1106, the native image processing module 316 determines whether registration of the execution memory is successful or not. If registration of the execution memory fails, the process escapes from the loop of step S1104 and returns to the loop of step S1102. If the native image processing module 316 determines that registration of the execution memory is successful in step S1106, an execution thread is created, and the process returns to step S1104. These loops are repeatedly executed as many times as the number of pages corresponding to the set image processing (step S1102). As a result, the image processing of all the pages is completed, and the processing proceeds to step S1108.

스텝 S1108에서, 네이티브 화상처리 모듈(316)은, 네이티브 화상처리 서버(315)에 실행 메모리의 해제 의뢰를 기동 스레드 수만큼 행하고, 처리를 종료한다. 이때, 실행 메모리 등록(스텝 S1105) 및 실행 메모리 해제(스텝 S1108)에 대한 네이티브 화상처리 서버(315)에 의한 처리 시퀀스는, 도9 및 도10에서 설명한 것과 같다.In step S1108, the native image processing module 316 requests the native image processing server 315 to release the execution memory as many as the number of activated threads, and ends the processing. At this time, the processing sequence by the native image processing server 315 for registering the execution memory (step S1105) and releasing the execution memory (step S1108) is the same as that described with reference to FIGS. 9 and 10 .

이상에서 설명한 바와 같이, 본 실시형태에 따르면, 복수 페이지의 화상처리에 있어서, 각 페이지의 화상처리 사이에, 네이티브 화상처리 서버(315)에 문의하는 것에 의해 실행 스레드를 동적으로 증가시킬 수 있다. 따라서, 상기 제3 실시형태보다, 더 효율적으로 복수 페이지의 화상처리를 실행할 수 있다.As described above, according to the present embodiment, in image processing of multiple pages, execution threads can be dynamically increased by querying the native image processing server 315 between image processing of each page. Therefore, it is possible to execute image processing of multiple pages more efficiently than in the third embodiment.

<기타 실시형태><Other Embodiments>

본 발명의 실시형태는, 본 발명의 전술한 실시형태(들)의 1개 이상의 기능을 수행하기 위해 기억매체('비일시적인 컴퓨터 판독가능한 기억매체'로서 더 상세히 언급해도 된다)에 기록된 컴퓨터 실행가능한 명령(예를 들어, 1개 이상의 프로그램)을 판독하여 실행하거나 및/또는 전술한 실시예(들)의 1개 이상의 기능을 수행하는 1개 이상의 회로(예를 들어, 주문형 반도체 회로(ASIC)를 포함하는 시스템 또는 장치의 컴퓨터나, 예를 들면, 전술한 실시형태(들)의 1개 이상의 기능을 수행하기 위해 기억매체로부터 컴퓨터 실행가능한 명령을 판독하여 실행함으로써, 시스템 또는 장치의 컴퓨터에 의해 수행되는 방법에 의해 구현될 수도 있다. 컴퓨터는, 1개 이상의 중앙처리장치(CPU), 마이크로 처리장치(MPU) 또는 기타 회로를 구비하고, 별개의 컴퓨터들의 네트워크 또는 별개의 컴퓨터 프로세서들을 구비해도 된다. 컴퓨터 실행가능한 명령은, 예를 들어, 기억매체의 네트워크로부터 컴퓨터로 주어져도 된다. 기록매체는, 예를 들면, 1개 이상의 하드디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 분산 컴퓨팅 시스템의 스토리지, 광 디스크(콤팩트 디스크(CD), 디지털 다기능 디스크(DVD), 또는 블루레이 디스크(BD)TM 등), 플래시 메모리소자, 메모리 카드 등을 구비해도 된다.Embodiments of the present invention are computer executables recorded in a storage medium (which may be more specifically referred to as a 'non-transitory computer readable storage medium') to perform one or more functions of the above-described embodiment(s) of the present invention. One or more circuits (eg, application specific integrated circuits (ASICs)) that read and execute capable instructions (eg, one or more programs) and/or perform one or more functions of the foregoing embodiment(s). By reading and executing computer-executable instructions from a computer of a system or device including a computer or, for example, a storage medium to perform one or more functions of the foregoing embodiment(s), by the computer of the system or device. A computer may include one or more central processing units (CPUs), microprocessing units (MPUs) or other circuitry, and may include a network of separate computers or separate computer processors. Computer-executable instructions may be given to a computer, for example, from a network of storage media The recording medium may include, for example, one or more hard disks, random access memory (RAM), read-only memory (ROM), A storage of a distributed computing system, an optical disk (such as a compact disk (CD), a digital versatile disk (DVD), or a Blu-ray disk (BD) TM ), a flash memory device, a memory card, or the like may be provided.

본 발명은, 상기한 실시형태의 1개 이상의 기능을 실현하는 프로그램을, 네트워크 또는 기억매체를 개입하여 시스템 혹은 장치에 공급하고, 그 시스템 혹은 장치의 컴퓨터에 있어서 1개 이상의 프로세서가 프로그램을 읽어 실행하는 처리에서도 실행가능하다. 또한, 1개 이상의 기능을 실현하는 회로(예를 들어, ASIC)에 의해서도 실행가능하다.In the present invention, a program for realizing one or more functions of the above embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in the computer of the system or device read and execute the program. processing is also feasible. Also, it can be implemented by a circuit (eg ASIC) that realizes one or more functions.

예시적인 실시형태들을 참조하여 본 발명을 설명하였지만, 본 발명이 이러한 실시형태에 한정되지 않는다는 것은 자명하다. 이하의 청구범위의 보호범위는 가장 넓게 해석되어 모든 변형, 동등물 구조 및 기능을 포괄하여야 한다.Although the present invention has been described with reference to exemplary embodiments, it is apparent that the present invention is not limited to these embodiments. The scope of protection of the following claims is to be interpreted most broadly to encompass all modifications and equivalent structures and functions.

Claims (18)

플러그인 어플리케이션에 의한 화상처리와 네이티브 어플리케이션에 의한 화상처리를 각각, 실행가능한 화상 처리장치로서,
명령들의 세트를 기억하는 메모리 디바이스; 및
상기 명령들의 세트를 실행하여,
상기 화상 처리장치에 프리인스톨되어 있는 네이티브 어플리케이션에 의한 화상처리의 실행중에, 상기 네이티브 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리의 실행을 요구한 후, 네이티브 어플리케이션에 의한 상기 새로운 화상처리를 실행했을 때의 메모리 사용량과, 네이티브 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량을 취득하고,
상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 네이티브 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하고,
비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우에는, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 적어도 한 개의 프로세서를 구비하고,
상기 플러그인 어플리케이션이 동작하는 프로세스에서 상기 플러그인 어플리케이션에 의한 화상처리가 실행될 때, 상기 네이티브 어플리케이션이 동작하는 프로세스에 의해 사용되는 상기 허용 메모리 용량은 고려되지 않는, 화상 처리장치.
As an image processing device capable of performing image processing by a plug-in application and image processing by a native application, respectively,
a memory device that stores a set of instructions; and
Executing the above set of instructions,
If execution of new image processing by the native application is requested during execution of image processing by a native application pre-installed in the image processing device, after the execution of the new image processing is requested, the execution of the new image processing by the native application Acquiring the memory usage when a new image process is executed and the memory usage for each of the image processes already executed by the native application;
The total memory usage obtained from the acquired memory usage of each image process and the memory usage when executing the requested new image process is compared with the allowable memory capacity representing the memory usage allowed in the process executing the native application. do,
As a result of the comparison, if the total memory usage amount does not exceed the allowable memory capacity, the new image processing is executed, and if the total memory usage amount exceeds the allowable memory capacity, the new image processing is not executed, and the request request at least one processor for notifying an error indicating that the new image processing cannot be executed due to memory shortage;
When image processing by the plug-in application is executed in a process in which the plug-in application runs, the allowable memory capacity used by the process in which the native application runs is not considered.
삭제delete 제 1항에 있어서,
상기 적어도 한 개의 프로세서가 상기 메모리 디바이스 내부의 명령들을 실행하여,
상기 화상 처리장치에 프리인스톨되어 있는 상기 네이티브 어플리케이션에 의한 화상처리의 실행중에, 상기 네이티브 어플리케이션에 의한 새로운 화상처리가 요구되는 경우, 상기 네이티브 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 상기 네이티브 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량으로부터 병렬처리가 실행 가능한지 아닌지를 판단하고,
판단의 결과 상기 병렬처리가 실행가능하지 않은 경우에는, 상기 새로운 화상처리와, 상기 이미 실행중인 화상처리를 순차 실행하고, 상기 병렬처리가 실행가능한 경우에는 상기 새로운 화상처리와, 상기 이미 실행중인 화상처리를 병렬로 실행하는 화상 처리장치.
According to claim 1,
the at least one processor executing instructions within the memory device;
If new image processing by the native application is requested during execution of image processing by the native application pre-installed in the image processing device, memory usage when executing the new image processing by the native application; judging whether or not parallel processing is feasible from the memory usage of each image processing already executed by the native application;
As a result of the determination, if the parallel processing is not feasible, the new image processing and the already executing image processing are sequentially executed, and if the parallel processing is feasible, the new image processing and the already executing image processing are executed. An image processing device that executes processing in parallel.
제 3항에 있어서,
상기 적어도 한 개의 프로세서가 상기 메모리 디바이스 내부의 명령들을 실행하여,
화상처리의 페이지마다 상기 병렬처리가 가능한지 아닌지를 동적으로 판단하는 화상 처리장치.
According to claim 3,
the at least one processor executing instructions within the memory device;
An image processing device that dynamically determines whether or not the parallel processing is possible for each page of image processing.
제 3항에 있어서,
상기 적어도 한 개의 프로세서가 상기 메모리 디바이스 내부의 명령들을 실행하여,
화상처리를 실행하기 위한 실행 메모리를 할당할 수 없을 경우에, 화상처리를 실행할 수 없다는 것을 나타내는 에러를 송신하는 화상 처리장치.
According to claim 3,
the at least one processor executing instructions within the memory device;
An image processing apparatus that transmits an error indicating that image processing cannot be executed when an execution memory for executing image processing cannot be allocated.
제 1항에 있어서,
상기 요구원이 상기 에러를 수신한 경우, 상기 요구원은 소정 시간이 경과한 후에, 재차 새로운 화상처리를 요구하는 화상 처리장치.
According to claim 1,
When the request source receives the error, the request source requests new image processing again after a predetermined time has elapsed.
제 1항에 있어서,
네이티브 어플리케이션에 의한 새로운 화상 처리장치의 요구원은 새로운 화상 처리장치가 실행되는 프로세스와는 다른 프로세스에서 동작하고 있는 화상 처리장치.
According to claim 1,
A source of request for a new image processing device by a native application is an image processing device operating in a process different from the process in which the new image processing device is executed.
제1 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제1 실행 환경에서의 화상처리와, 제2 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제2 실행 환경에서의 화상처리를 실행가능한 화상 처리장치로서,
명령들의 세트를 기억하는 메모리 디바이스; 및
상기 명령들의 세트를 실행하여,
상기 제2 실행 환경에서의 화상처리의 실행중에, 상기 제2 프로그래밍 언어로 기술된 제2 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 제2 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 상기 제2 실행 환경에서 이미 실행중인 화상처리 각각의 메모리 사용량을 취득하고,
상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 상기 제2 실행 환경에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하고,
비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 적어도 한 개의 프로세서를 구비하고,
상기 제1 프로그래밍 언어로 기술된 제1 어플리케이션이 동작하는 프로세스에서 상기 제1 어플리케이션에 의한 화상처리가 실행될 때, 상기 제2 어플리케이션이 동작하는 프로세스에 의해 사용되는 상기 허용 메모리 용량은 고려되지 않는, 화상 처리장치.
An image processing device capable of executing image processing in a first execution environment for executing a program written in a first programming language and image processing in a second execution environment for executing a program written in a second programming language, comprising:
a memory device that stores a set of instructions; and
Executing the above set of instructions,
When execution of new image processing by the second application written in the second programming language is requested during execution of image processing in the second execution environment, when executing the new image processing by the second application Acquiring a memory usage amount and a memory usage amount of each image process already being executed in the second execution environment;
Comparing the total memory usage obtained from the acquired memory usage of each image process and the memory usage when executing the requested new image process with an allowable memory capacity indicating a memory usage allowed for use in the second execution environment, ,
As a result of the comparison, if the total memory usage amount does not exceed the allowable memory capacity, the new image processing is executed; if the total memory usage amount exceeds the allowable memory capacity, the new image processing is not executed, and the request source at least one processor for notifying an error indicating that the new image processing cannot be executed due to lack of memory;
When image processing by the first application is executed in a process in which the first application described in the first programming language runs, the allowable memory capacity used by the process in which the second application runs is not taken into consideration. processing device.
삭제delete 제 8항에 있어서,
상기 적어도 한 개의 프로세서가 상기 메모리 디바이스 내부의 명령들을 실행하여,
상기 제2 실행 환경에서의 화상처리의 실행중에, 상기 제2 프로그래밍 언어로 기술된 상기 제2 어플리케이션에 의한 상기 새로운 화상처리가 요구되는 경우, 상기 제2 어플리케이션에 의한 새로운 화상처리를 실행할 때의 메모리 사용량과, 상기 제2 실행 환경에서 이미 실행중인 화상처리의 각각의 메모리 사용량으로부터 병렬처리가 실행 가능한지 아닌지를 판단하고,
판단의 결과 상기 병렬처리가 실행가능하지 않은 경우에는, 새로운 화상처리와, 이미 실행중인 화상처리를 순차 실행하고, 상기 병렬처리가 실행가능한 경우에는, 새로운 화상처리와 이미 실행중인 화상처리를 병렬로 실행하는 화상 처리장치.
According to claim 8,
the at least one processor executing instructions within the memory device;
Memory for executing new image processing by the second application, when the new image processing by the second application described in the second programming language is requested during execution of image processing in the second execution environment. judging whether or not parallel processing is feasible from the usage amount and the memory usage amount of each of the image processing already executed in the second execution environment;
As a result of the determination, if the parallel processing is not feasible, a new image process and an image process already being executed are sequentially executed, and if the parallel processing is feasible, a new image process and an image process already being executed are executed in parallel. An image processing device that runs.
제 10항에 있어서,
상기 적어도 한 개의 프로세서가 상기 메모리 디바이스 내부의 명령들을 실행하여,
화상처리의 페이지마다 상기 병렬처리가 가능한지 아닌지를 동적으로 판단하는 화상 처리장치.
According to claim 10,
the at least one processor executing instructions within the memory device;
An image processing device that dynamically determines whether or not the parallel processing is possible for each page of image processing.
제 10항에 있어서,
상기 적어도 한 개의 프로세서가 상기 메모리 디바이스 내부의 명령들을 실행하여,
화상처리를 실행하기 위한 실행 메모리를 할당할 수 없는 경우에는, 화상처리를 실행할 수 없다는 것을 나타내는 에러를 송신하는 화상 처리장치.
According to claim 10,
the at least one processor executing instructions within the memory device;
An image processing apparatus that transmits an error indicating that image processing cannot be executed when an execution memory for executing image processing cannot be allocated.
제 8항에 있어서,
상기 요구원이 상기 에러를 수신한 경우, 상기 요구원은 소정 시간이 경과한 후에, 재차 새로운 화상처리를 요구하는 화상 처리장치.
According to claim 8,
When the request source receives the error, the request source requests new image processing again after a predetermined time has elapsed.
제 1항에 있어서,
화상처리를 실행할 때의 상기 메모리 사용량은, 화상처리에 포함되는 함수마다 유지되어 있는 화상 처리장치.
According to claim 1,
The memory usage amount when performing image processing is maintained for each function included in image processing.
플러그인 어플리케이션에 의한 화상처리와 네이티브 어플리케이션에 의한 화상처리를 각각, 실행가능한 화상 처리장치의 제어방법으로서,
상기 화상 처리장치에 프리인스톨되어 있는 네이티브 어플리케이션에 의한 화상처리의 실행중에, 상기 네이티브 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리의 실행을 요구한 후, 네이티브 어플리케이션에 의한 상기 새로운 화상처리를 실행했을 때의 메모리 사용량과, 네이티브 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량을 취득하는 단계와,
상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 네이티브 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 단계와,
비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하고,
상기 플러그인 어플리케이션이 동작하는 프로세스에서 상기 플러그인 어플리케이션에 의한 화상처리가 실행될 때, 상기 네이티브 어플리케이션이 동작하는 프로세스에 의해 사용되는 상기 허용 메모리 용량은 고려되지 않는, 제어방법.
As a control method of an image processing apparatus capable of performing image processing by a plug-in application and image processing by a native application, respectively,
If execution of new image processing by the native application is requested during execution of image processing by a native application pre-installed in the image processing device, after the execution of the new image processing is requested, the execution of the new image processing by the native application Acquiring a memory usage when a new image process is executed and a memory usage for each image process already executed by a native application;
The total memory usage obtained from the acquired memory usage of each image process and the memory usage when executing the requested new image process is compared with the allowable memory capacity representing the memory usage allowed in the process executing the native application. step of doing,
As a result of the comparison, if the total memory usage amount does not exceed the allowable memory capacity, the new image processing is executed; if the total memory usage amount exceeds the allowable memory capacity, the new image processing is not executed, and the request source notifying an error indicating that the new image processing cannot be executed due to insufficient memory,
When image processing by the plug-in application is executed in a process in which the plug-in application runs, the allowable memory capacity used by the process in which the native application runs is not considered.
제1 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제1 실행 환경에서의 화상처리와, 제2 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제2 실행 환경에서의 화상처리를 실행가능한 화상 처리장치의 제어방법으로서,
상기 제2 실행 환경에서의 화상처리의 실행중에, 상기 제2 프로그래밍 언어로 기술된 제2 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 제2 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 상기 제2 실행 환경에서 이미 실행중인 화상처리 각각의 메모리 사용량을 취득하는 단계와,
상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 상기 제2 실행 환경에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 단계와,
상기 비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하고,
상기 제1 프로그래밍 언어로 기술된 제1 어플리케이션이 동작하는 프로세스에서 상기 제1 어플리케이션에 의한 화상처리가 실행될 때, 상기 제2 어플리케이션이 동작하는 프로세스에 의해 사용되는 상기 허용 메모리 용량은 고려되지 않는, 제어방법.
Control of an image processing apparatus capable of executing image processing in a first execution environment for executing a program written in a first programming language and image processing in a second execution environment for executing a program written in a second programming language. As a method,
When execution of new image processing by the second application written in the second programming language is requested during execution of image processing in the second execution environment, when executing the new image processing by the second application acquiring a memory usage amount and a memory usage amount of each image process already being executed in the second execution environment;
Comparing the total memory usage obtained from the acquired memory usage of each image process and the memory usage when executing the requested new image process with an allowable memory capacity indicating a memory usage allowed for use in the second execution environment. steps,
As a result of the comparison, when the total memory usage does not exceed the allowable memory capacity, the new image processing is executed, and when the total memory usage exceeds the allowable memory capacity, the new image processing is not executed, and the request request notifying the source of an error indicating that the new image processing cannot be executed due to insufficient memory;
When image processing by the first application is executed in a process in which the first application described in the first programming language runs, the allowable memory capacity used by the process in which the second application runs is not taken into consideration. method.
플러그인 어플리케이션에 의한 화상처리와 네이티브 어플리케이션에 의한 화상처리를 각각, 실행가능한 화상 처리장치의 제어방법에 있어서의 각 단계를 컴퓨터에 실행시키기 위한 컴퓨터 프로그램을 기억한 비일시적인 컴퓨터 판독가능한 기억매체로서, 상기 제어방법은,
상기 화상 처리장치에 프리인스톨되어 있는 네이티브 어플리케이션에 의한 화상처리의 실행중에, 상기 네이티브 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리의 실행을 요구한 후, 네이티브 어플리케이션에 의한 상기 새로운 화상처리를 실행했을 때의 메모리 사용량과, 네이티브 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량을 취득하는 단계와,
상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 네이티브 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 단계와,
비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하고,
상기 플러그인 어플리케이션이 동작하는 프로세스에서 상기 플러그인 어플리케이션에 의한 화상처리가 실행될 때, 상기 네이티브 어플리케이션이 동작하는 프로세스에 의해 사용되는 상기 허용 메모리 용량은 고려되지 않는, 기억매체.
A non-transitory computer-readable storage medium storing a computer program for causing a computer to execute each step in a control method of an image processing apparatus capable of executing image processing by a plug-in application and image processing by a native application, respectively, wherein the The control method is
If execution of new image processing by the native application is requested during execution of image processing by a native application pre-installed in the image processing device, after the execution of the new image processing is requested, the execution of the new image processing by the native application Acquiring a memory usage when a new image process is executed and a memory usage for each image process already executed by a native application;
The total memory usage obtained from the acquired memory usage of each image process and the memory usage when executing the requested new image process is compared with the allowable memory capacity representing the memory usage allowed in the process executing the native application. steps to do,
As a result of the comparison, if the total memory usage amount does not exceed the allowable memory capacity, the new image processing is executed; if the total memory usage amount exceeds the allowable memory capacity, the new image processing is not executed, and the request source notifying an error indicating that the new image processing cannot be executed due to insufficient memory,
When image processing by the plug-in application is executed in a process in which the plug-in application runs, the allowable memory capacity used by a process in which the native application runs is not considered.
제1 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제1 실행 환경에서의 화상처리와, 제2 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제2 실행 환경에서의 화상처리를 실행가능한 화상 처리장치의 제어방법에 있어서의 각 단계를 컴퓨터에 실행시키기 위한 컴퓨터 프로그램을 기억한 비일시적인 컴퓨터 판독가능한 기억매체로서, 상기 제어방법은,
상기 제2 실행 환경에서의 화상처리의 실행중에, 상기 제2 프로그래밍 언어로 기술된 제2 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 제2 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 상기 제2 실행 환경에서 이미 실행중인 화상처리 각각의 메모리 사용량을 취득하는 단계와,
상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 상기 제2 실행 환경에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 단계와,
상기 비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하고,
상기 제1 프로그래밍 언어로 기술된 제1 어플리케이션이 동작하는 프로세스에서 상기 제1 어플리케이션에 의한 화상처리가 실행될 때, 상기 제2 어플리케이션이 동작하는 프로세스에 의해 사용되는 상기 허용 메모리 용량은 고려되지 않는, 기억매체.
Control of an image processing apparatus capable of executing image processing in a first execution environment for executing a program written in a first programming language and image processing in a second execution environment for executing a program written in a second programming language. A non-transitory computer-readable storage medium storing a computer program for causing a computer to execute each step in the method, the control method comprising:
When execution of new image processing by the second application written in the second programming language is requested during execution of image processing in the second execution environment, when executing the new image processing by the second application acquiring a memory usage amount and a memory usage amount of each image process already being executed in the second execution environment;
Comparing the total memory usage obtained from the acquired memory usage of each image process and the memory usage when executing the requested new image process with an allowable memory capacity indicating a memory usage allowed for use in the second execution environment. steps,
As a result of the comparison, when the total memory usage does not exceed the allowable memory capacity, the new image processing is executed, and when the total memory usage exceeds the allowable memory capacity, the new image processing is not executed, and the request request notifying the source of an error indicating that the new image processing cannot be executed due to insufficient memory;
When image processing by the first application is executed in a process in which the first application described in the first programming language runs, the allowable memory capacity used by the process in which the second application runs is not considered. media.
KR1020190054048A 2018-05-17 2019-05-09 Image processing apparatus, method for controlling the same, and computer-readable storage medium KR102543344B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JPJP-P-2018-095632 2018-05-17
JP2018095632 2018-05-17
JPJP-P-2018-150641 2018-08-09
JP2018150641A JP7186541B2 (en) 2018-05-17 2018-08-09 IMAGE PROCESSING DEVICE, CONTROL METHOD THEREOF, AND PROGRAM

Publications (2)

Publication Number Publication Date
KR20190132218A KR20190132218A (en) 2019-11-27
KR102543344B1 true KR102543344B1 (en) 2023-06-14

Family

ID=68727125

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190054048A KR102543344B1 (en) 2018-05-17 2019-05-09 Image processing apparatus, method for controlling the same, and computer-readable storage medium

Country Status (3)

Country Link
JP (1) JP7186541B2 (en)
KR (1) KR102543344B1 (en)
CN (1) CN110572527B (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006186777A (en) * 2004-12-28 2006-07-13 Kyocera Mita Corp Apparatus and program for image formation
JP2007030252A (en) * 2005-07-25 2007-02-08 Fuji Xerox Co Ltd Image forming system, interruption processing method and printing apparatus
JP2012049971A (en) 2010-08-30 2012-03-08 Ricoh Co Ltd Image processor, image processing system, image processing method and image processing program
JP2016163108A (en) 2015-02-27 2016-09-05 ブラザー工業株式会社 Facsimile apparatus and printing method for facsimile apparatus
JP2017027467A (en) * 2015-07-24 2017-02-02 富士ゼロックス株式会社 Management device, information processing system and program

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4003679B2 (en) * 2003-03-31 2007-11-07 ブラザー工業株式会社 Image copying machine
JP4923602B2 (en) * 2006-02-10 2012-04-25 富士ゼロックス株式会社 Image formation processing simulation apparatus and image formation processing simulation method
JP5167897B2 (en) * 2007-04-27 2013-03-21 株式会社リコー Electronic device, information processing method, and information processing program
JP4986144B2 (en) * 2007-05-25 2012-07-25 富士ゼロックス株式会社 Printing control apparatus and image forming system
JP5213539B2 (en) * 2008-06-19 2013-06-19 キヤノン株式会社 Image processing apparatus and memory management method for image processing apparatus
JP4561883B2 (en) * 2008-06-19 2010-10-13 コニカミノルタビジネステクノロジーズ株式会社 Image forming apparatus, program, and image forming processing method
JP2011242890A (en) * 2010-05-14 2011-12-01 Hitachi Ltd Request processing method, request processing program and request processing apparatus
JP2014149606A (en) * 2013-01-31 2014-08-21 Fujitsu Ltd Resource usage totaling program, resource usage totaling method and resource usage totaling device
JP2014241506A (en) * 2013-06-11 2014-12-25 株式会社リコー Image processing system, information processing device, and information processing program
CN104461655A (en) * 2014-12-29 2015-03-25 北京网秦天下科技有限公司 Method for automatically selecting application installation position and mobile terminal
JP6961412B2 (en) * 2016-07-26 2021-11-05 キヤノン株式会社 Image forming device, control method of image forming device, and program
US20180113735A1 (en) * 2016-10-21 2018-04-26 Mediatek Inc. Launch method for applications with early-time memory reclaim and electronic device
CN106648747B (en) * 2016-11-14 2021-01-05 腾讯科技(深圳)有限公司 Process preloading processing method and device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006186777A (en) * 2004-12-28 2006-07-13 Kyocera Mita Corp Apparatus and program for image formation
JP2007030252A (en) * 2005-07-25 2007-02-08 Fuji Xerox Co Ltd Image forming system, interruption processing method and printing apparatus
JP2012049971A (en) 2010-08-30 2012-03-08 Ricoh Co Ltd Image processor, image processing system, image processing method and image processing program
JP2016163108A (en) 2015-02-27 2016-09-05 ブラザー工業株式会社 Facsimile apparatus and printing method for facsimile apparatus
JP2017027467A (en) * 2015-07-24 2017-02-02 富士ゼロックス株式会社 Management device, information processing system and program

Also Published As

Publication number Publication date
JP7186541B2 (en) 2022-12-09
JP2019204477A (en) 2019-11-28
CN110572527B (en) 2021-09-10
CN110572527A (en) 2019-12-13
KR20190132218A (en) 2019-11-27

Similar Documents

Publication Publication Date Title
KR102348317B1 (en) Image processing apparatus, method for controlling the same, and non-transitory computer-readable storage medium
US9542228B2 (en) Image processing apparatus, control method thereof and storage medium
US11140291B2 (en) Information processing apparatus, control method thereof, and storage medium
JP2008293081A (en) Electronic equipment
US7911639B2 (en) Image forming device
CN109660688B (en) Information processing apparatus and control method thereof
US10922039B2 (en) Image processing apparatus, information processing method, and storage medium
JP7402643B2 (en) Information processing device, its control method, and program
KR102543344B1 (en) Image processing apparatus, method for controlling the same, and computer-readable storage medium
JP4695348B2 (en) CARD-TYPE MEMORY, IMAGE FORMING DEVICE, AND IMAGE FORMING DEVICE STARTING METHOD
JP2016167151A (en) Program processor
JP6961412B2 (en) Image forming device, control method of image forming device, and program
US10992834B2 (en) Image processing apparatus, method for controlling the same, and computer-readable storage medium
JP7102248B2 (en) Image processing equipment, information processing methods and programs
JP7080061B2 (en) Image processing equipment
JP2014078175A (en) Information processor, control method thereof, and program
JP5111326B2 (en) Electronics
JP2021068190A (en) Information processing device and application management method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right