KR20190132218A - 화상 처리장치, 그 제어방법, 및 컴퓨터 판독가능한 기억매체 - Google Patents

화상 처리장치, 그 제어방법, 및 컴퓨터 판독가능한 기억매체 Download PDF

Info

Publication number
KR20190132218A
KR20190132218A KR1020190054048A KR20190054048A KR20190132218A KR 20190132218 A KR20190132218 A KR 20190132218A KR 1020190054048 A KR1020190054048 A KR 1020190054048A KR 20190054048 A KR20190054048 A KR 20190054048A KR 20190132218 A KR20190132218 A KR 20190132218A
Authority
KR
South Korea
Prior art keywords
image processing
application
memory usage
memory
executing
Prior art date
Application number
KR1020190054048A
Other languages
English (en)
Other versions
KR102543344B1 (ko
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/ko
Application granted granted Critical
Publication of KR102543344B1 publication Critical patent/KR102543344B1/ko

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)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Facsimiles In General (AREA)
  • Stored Programmes (AREA)

Abstract

화상 처리장치는, 취득된 각 화상처리의 메모리 사용량 및 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하고, 비교의 결과 총 메모리 사용량이 허용 메모리 용량을 넘지 않는 경우에는, 새로운 화상처리를 실행하고, 총 메모리 사용량이 허용 메모리 용량을 넘는 경우에, 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지한다.

Description

화상 처리장치, 그 제어방법, 및 컴퓨터 판독가능한 기억매체{IMAGE PROCESSING APPARATUS, METHOD FOR CONTROLLING THE SAME, AND COMPUTER-READABLE STORAGE MEDIUM}
본 발명은, 화상 처리장치, 그 제어방법, 및 컴퓨터 판독가능한 기억매체에 관한 것이다.
종래부터, 화상 처리장치에서 제공되지 않고 있는 화상처리를 포함하는 각종 잡을 실행할 경우, 신규 화상처리를 포함하는 잡 실행 어플리케이션을 플러그인으로서 작성하고, 화상 처리장치에 인스톨해서 신규 화상처리를 실현하는 것이 알려져 있다. 각종 잡은, 예를 들면, 카피, 프린트, 스캔 및 보존, 및 스캔 및 송신 등의 화상 처리장치 상에서 실행가능한 화상처리를 포함하는 디바이스 제어 처리이다. 신규 화상처리는, 입력 데이터에 대한 사행 보정, 포맷 변환, 또는 OCR(Optical Character Recognition)후의 번역 변환 등의 화상 처리장치의 기존의 잡에서는 실현할 수 없는 처리이다.
복수의 신규 화상처리를 추가한 화상 처리장치는, 추가한 신규 화상처리와 병렬 동작시키는 것이 가능하다. 그러나, 메모리를 많이 이용하는 복수의 화상처리가 동시에 실행되면, 메모리 사용량이 화상 처리장치의 메모리의 상한을 넘어 버릴 경우가 있다.
메모리 사용량이 메모리의 상한을 넘어 버리면, OS는, 사용 빈도가 낮은 메모리 영역의 데이터를 하드디스크에 보존해서 영역을 비우고, 필요에 따라 메모리에 데이터를 재기록하는 스왑 조작을 행한다. 이때, HDD에 기록 처리가 행해지고 이 처리가 이 프로세스 내의 다양한 처리의 퍼포먼스를 저하시킬 경우가 있다. 예를 들면, UI 모듈이 이 프로세스에 존재할 경우, 유저의 조작에 대하여 UI 화면이 신속하게 반응하지 않는 현상이 발생할 수 있다. 또한, 이 동일한 프로세스 상에서 실행하고 있는 복수의 화상처리의 완료까지의 시간이 스왑 조작을 행하지 않고 있는 경우에 걸리는 시간보다 길어지는 현상도 발생할 수 있다. 스왑 영역도 다 사용해 버렸을 경우에는, OS가 메모리 리소스를 많이 사용하고 있는 프로세스를 강제 종료시켜 버린다. 이 경우, 화상처리를 행하는 프로세스가 종료해 버리므로, 화상 처리장치를 재기동하지 않으면 화상처리를 재개할 수 없다.
이것을 해결하기 위해, 일본국 특원 2013-120103호 공보에는, 각각의 플러그인의 메모리 사용량을 실시간으로 계측하고, 이것이 미리 결정된 메모리 최대량을 상회하는 경우에는 플러그인을 기동시키지 않는 기술이 제안되어 있다.
그렇지만, 상기 관련기술에는 이하에 기재하는 과제가 있다. 이 관련기술에서는, 예를 들면, 플러그인 기동시에 각 플러그인에 정의된 사용 메모리 선언량과, 이미 화상 처리장치에서 이용하고 있는 메모리 사용량의 합계를 계산한다. 미리 결정된 메모리 최대량을 합계의 메모리 사용량이 상회하는 경우에는, 플러그인 자체를 기동시키지 않음으로써, 전술한 바와 같은 메모리 부족을 회피하고 있다. 상기 제어에서는, 계산된 메모리 사용량이 메모리 최대량을 상회하는 경우, 이미 기동하고 있는 플러그인을 정지시키지 않는 한, 신규의 플러그인을 기동할 수 없다. 실제로는 병렬로 실행하지 않으면 실행할 수 있는 플러그인이라도 기동해서 처리를 행할 수 없다. 이것은 유저의 편리성을 저하시킨다.
본 발명은, 처리 실행중에(런타임에서) 총 메모리 사용량을 동적으로 계산하고, 플러그인 자체의 기동을 제한하지 않고, 바람직하게 메모리 부족을 회피하면서, 복수의 화상처리를 병렬로 실행하는 메카니즘의 구현을 가능하게 한다.
본 발명의 일면은, 1개 이상의 플러그인 어플리케이션에 의한 복수의 화상처리를 실행가능한 화상 처리장치로서, 명령들의 세트를 기억하는 메모리 디바이스; 및 상기 명령들의 세트를 실행하여, 플러그인 어플리케이션에 의한 화상처리의 실행중에, 플러그인 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 플러그인 어플리케이션을 탐색하고, 상기 탐색된 플러그인 어플리케이션과 함께 유지되어 있는, 플러그인 어플리케이션에 의한 상기 새로운 화상처리를 실행했을 때의 메모리 사용량과, 플러그인 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량을 취득하고, 상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하고, 비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우에는 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 적어도 한 개의 프로세서를 구비한 화상 처리장치를 제공한다.
본 발명의 또 다른 일면은, 제1 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제1 실행 환경과, 제2 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제2 실행 환경에서 복수의 화상처리를 실행가능한 화상 처리장치로서, 명령들의 세트를 기억하는 메모리 디바이스; 및 상기 명령들의 세트를 실행하여, 상기 제1 실행 환경에서의 화상처리의 실행중에, 상기 제1 프로그래밍 언어로 기술된 제1 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 상기 제1 어플리케이션을 탐색하고, 탐색된 상기 제1 어플리케이션과 함께 유지되어 있는, 상기 제1 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 상기 제1 실행 환경에서 이미 실행중인 화상처리 각각의 메모리 사용량을 취득하고, 상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 상기 제1 실행 환경에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하고, 비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 적어도 한 개의 프로세서를 구비한 화상 처리장치를 제공한다.
본 발명의 또 다른 일면은, 1개 이상의 플러그인 어플리케이션에 의한 복수의 화상처리를 실행가능한 화상 처리장치의 제어방법으로서, 플러그인 어플리케이션에 의한 화상처리의 실행중에, 플러그인 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 플러그인 어플리케이션을 탐색하는 단계와, 상기 탐색된 플러그인 어플리케이션과 함께 유지되어 있는, 플러그인 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 플러그인 어플리케이션에 의해 이미 실행중인 화상처리 각각의 메모리 사용량을 취득하는 단계와, 상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 단계와, 비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하는 제어방법을 제공한다.
본 발명의 또 다른 일면은, 제1 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제1 실행 환경과, 제2 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제2 실행 환경에 있어서 복수의 화상처리를 실행가능한 화상 처리장치의 제어방법으로서, 상기 제1 실행 환경에서의 화상처리의 실행중에, 상기 제1 프로그래밍 언어로 기술된 제1 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 상기 제1 어플리케이션을 탐색하는 단계와, 탐색된 상기 제1 어플리케이션과 함께 유지되어 있는, 상기 제1 어플리케이션에 의한 새로운 화상처리를 실행할 때의 메모리 사용량과, 상기 제1 실행 환경에서 이미 실행중인 화상처리 각각의 메모리 사용량을 취득하는 단계와, 상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 상기 제1 실행 환경에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 단계와, 상기 비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하는 제어방법을 제공한다.
본 발명의 또 다른 일면은, 1개 이상의 플러그인 어플리케이션에 의한 복수의 화상처리를 실행가능한 화상 처리장치의 제어방법에 있어서의 각 단계를 컴퓨터에 실행시키기 위한 컴퓨터 프로그램을 기억한 비일시적인 컴퓨터 판독가능한 기억매체로서, 상기 제어방법은, 플러그인 어플리케이션에 의한 화상처리의 실행중에, 플러그인 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 플러그인 어플리케이션을 탐색하는 단계와, 상기 탐색된 플러그인 어플리케이션과 함께 유지되어 있는, 플러그인 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 플러그인 어플리케이션에 의해 이미 실행중인 화상처리 각각의 메모리 사용량을 취득하는 단계와, 상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 단계와, 비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하는 기억매체를 제공한다.
본 발명의 또 다른 일면은, 제1 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제1 실행 환경과, 제2 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제2 실행 환경에 있어서 복수의 화상처리를 실행가능한 화상 처리장치의 제어방법에 있어서의 각 단계를 컴퓨터에 실행시키기 위한 컴퓨터 프로그램을 기억한 비일시적인 컴퓨터 판독가능한 기억매체로서, 상기 제어방법은, 플러그인 어플리케이션에 의한 화상처리의 실행중에, 플러그인 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 플러그인 어플리케이션을 탐색하는 단계와, 취득부에게, 상기 탐색된 플러그인 어플리케이션과 함께 유지되어 있는, 플러그인 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 플러그인 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량을 취득하게 하는 단계와, 상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 비교 단계와, 비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하는 기억매체를 제공한다.
본 발명의 또 다른 특징은 첨부도면을 참조하여 주어지는 이하의 실시형태의 상세한 설명으로부터 명백해질 것이다.
도1은, 일 실시형태에 따른 화상처리 형성 시스템의 구성 예를 나타낸 도면이다.
도2는, 일 실시형태에 따른 화상 처리장치의 하드웨어 구성의 일례를 나타내는 블록도이다.
도3은, 일 실시형태에 따른 화상 처리장치의 소프트웨어 구성의 일례를 도시한 블록도이다.
도4는, 일 실시형태에 따른 화상 처리장치의 처리 절차를 나타내는 흐름도이다.
도5는, 일 실시형태에 따른 네이티브(native) 화상처리 서버의 처리 절차를 나타낸 흐름도이다.
도6은, 일 실시형태에 따른 화상 처리장치의 소프트웨어 구성의 일례를 도시한 블록도이다.
도7은, 일 실시형태에 따른 화상 처리장치의 처리 절차를 나타내는 흐름도이다.
도8a 및 도 8b는, 일 실시형태에 따른 네이티브 화상처리 모듈의 처리 절차를 나타낸 흐름도이다.
도9는, 일 실시형태에 따른 네이티브 화상처리 서버의 처리 절차를 나타낸 흐름도이다.
도10은, 일 실시형태에 따른 네이티브 화상처리 서버의 처리 절차를 나타낸 흐름도이다.
도11은, 일 실시형태에 따른 네이티브 화상처리 모듈의 처리 절차를 나타낸 흐름도이다.
이하, 첨부도면을 참조하여 본 발명의 실시형태를 더욱 상세히 설명한다. 이때, 본 실시형태에서 설명하는 구성요소들의 상대적인 배치, 수식 및 수치는 달리 구체적으로 언급하지 않는 한 본 발명의 보호범위를 제한하는 것이 아니라는 점에 주목하기 바란다.
<제1 실시형태>
<시스템 구성>
이하에서는, 첨부도면을 참조하여, 본 발명의 제1 실시형태에 대해 설명한다. 우선, 도1을 참조하여, 화상 형성 시스템의 구성의 일례를 설명한다. 본 실시형태에 따른 화상 형성 시스템은, 화상 처리장치 101, 102와, 정보 처리 단말 103, 104와, 서버(105)를 포함한다. 화상 처리장치 101, 102와, 정보 처리 단말 103, 104와, 서버(105)는, 네트워크(106)를 거쳐 서로 통신 가능하게 접속된다.
도1에서는, 2대의 화상 처리장치 101, 102가 배치되는 일례를 나타내지만, 화상 처리장치의 수는 임의(1개 이상)이다. 각각의 화상 처리장치 101, 102는, 동일한 구성으로 실현할 수 있다. 따라서, 이하에서는, 화상 처리장치 101, 102를 대표해서 화상 처리장치 101의 구성에 대해 설명하고, 화상 처리장치 102에 관한 상세한 설명을 생략한다. 이때, 네트워크(106)는, LAN(Local Area Network), Internet 등, 화상 형성 시스템 내의 장치가 서로 통신할 수 있는 네트워크이다. 정보 처리 단말과 서버의 대수와 기능을 한정하는 의도는 없다. 서버(105)는, 그 기능을 분산하여 복수대의 장치로 실현되어도 된다. 이때, 본 발명을 적용하는 화상 처리장치는, 화상 형성 기능을 반드시 포함할 필요는 없고, 복수의 화상처리를 동시에 (병렬로) 실행가능한 장치를 적용할 수 있다.
화상 처리장치(101)는, 정보 처리 단말 103, 104로부터 화상 데이터의 인쇄 의뢰(인쇄 데이터)를 수신해서 인쇄하거나, 화상 처리장치(101)의 스캐너로 화상 데이터를 판독하거나, 스캐너로 판독된 화상 데이터를 인쇄하는 것이 가능하다. 또한, 화상 처리장치(101)는, 정보 처리 단말 103, 104로부터 수신한 인쇄 데이터를 보존하거나, 화상 처리장치(101)의 스캐너에 의해 판독된 화상을 정보 처리 단말 103, 104에 송신하는 것이 가능하다. 화상 처리장치(101)는, 서버(105)를 사용해서 화상처리를 행하거나, 서버(105)에 격납되어 있는 문서를 인쇄하는 것이 가능하다. 더구나, 화상 처리장치(101)는, MFP(Multifunction Peripheral) 등의 공지의 화상 처리장치의 기능을 실현하는 것이 가능하다.
<화상 처리장치의 하드웨어 구성>
다음에, 도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)와 데이터를 교환하는 것이 가능하다.
CPU(211)은, HDD(213)로부터 판독한 명령을 RAM(212)에 전개하고, RAM(212)에 전개한 명령을 실행하고, 후술하는 각종 처리를 실행한다. HDD(213)에는, CPU(211)에 의해 실행가능한 명령, 화상 처리장치(101)에서 사용하는 설정값, 유저로부터 의뢰된 처리에 관한 데이터 등을 기억하는 것이 가능하다. RAM(212)은, CPU(211)이 HDD(213)로부터 판독한 명령을 일시적으로 격납하기 위한 영역이다. 또한, RAM(212)은, 명령의 실행에 필요한 각종의 데이터를 기억하는 것도 가능하다. 예를 들면, 화상처리는, 입력된 데이터를 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)에 전달하는 것이 가능하다.
조작부 I/F(217)는, 조작부(204)에 입력된 유저로부터의 지시를 CPU(211)에 전달하거나, 유저가 조작하기 위한 화면 정보를 조작부(204)에 전달하는 것이 가능하다. 확장 I/F(218)는, 화상 처리장치(101)에 외부기기를 접속하는 것을 가능하게 하는 인터페이스다. 확장 I/F(218)는, 예를 들면, USB(Universal Serial Bus) 인터페이스를 구비한다. 화상 처리장치(101)는, USB 메모리 등의 외부 기억장치가 확장 I/F(218)에 접속될 때, 해당 외부 기억장치에 기억되어 있는 데이터의 판독 및 해당 외부 기억장치에 대한 데이터의 기록을 행하는 것이 가능하다.
프린터(202)는, 프린터 I/F(215)로부터 수신한 화상 데이터를 용지나 시트 등의 기록매체에 인쇄하거나, 프린터(202)의 상태를 프린터 I/F(215)에 전달하는 것이 가능하다. 스캐너(203)는, 스캐너 I/F(216)로부터 수신한 화상 판독 지시에 따라, 스캐너(202) 위에 놓인 용지에 기록된 정보를 판독하고, 이 정보를 디지털화해서 그것을 스캐너 I/F(216)에 전달하는 것이 가능하다. 스캐너(203)는, 자신의 상태를 스캐너 I/F(216)에 전달하는 것이 가능하다. 조작부(204)는, 화상 처리장치(101)에 대하여 각종의 지시를 입력하기 위한 조작을 유저에게 촉구하기 위한 인터페이스다. 예를 들면, 조작부(204)는, 터치패널을 갖는 액정화면을 구비하고, 유저에게 조작 화면을 제공하는 동시에, 유저로부터의 조작을 접수한다.
<화상 처리장치의 소프트웨어 구성>
다음에, 도3을 참조하여, 본 실시형태에 따른 CPU(211)이 처리하는 소프트웨어의 구조의 일례를 설명한다. 도3에 나타내는 구조를 갖는 소프트웨어는, 화상 처리장치(101)의 HDD(213)에 기억된 프로그램을 사용함으로써 구성된다. 도3에 있어서, 일부의 예외를 제외하고, 하위의 계층이 제공하는 서비스를 상위의 계층이 이용한다.
도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)를 제어하기 위한 소프트웨어다.
최하층으로부터 2번째의 층은, 제2 실행 환경의 일례가 되는 언어 디바이스 제어 라이브러리(309)와 화상처리 제어부(340)를 포함한다. 본 실시형태에 있어서는, 예를 들면, 디바이스 제어 라이브러리(309)와 화상처리 제어부(340)는 C언어나 C++ 언어 등의 컴파일러 언어(제2 프로그래밍 언어)로 기술된다. 따라서, 디바이스 제어 라이브러리(309)와 화상처리 제어부(340)는 CPU(211)에 의해 직접 실행할 수 있는 오브젝트 파일의 형식으로 HDD(213)에 격납된다. 디바이스 제어 라이브러리(309)는, 후술하는 단독 기능 플러그인 어플리케이션(302) 또는 디바이스 제어 어플리케이션(304)에 정적 또는 동적으로 링크된다. 디바이스 제어 라이브러리(309)는, 각 어플리케이션 프로그램으로부터 지시에 근거하여, 오퍼레이팅 시스템(317)을 이용한다. 또한, 각 디바이스 제어 라이브러리(309)는, 네이티브 화상처리 접속 라이브러리(314)에 대하여 화상처리를 의뢰할 수 있다.
다음에, 디바이스 제어 라이브러리(309)의 구성의 일례에 대해 설명한다. 프린트 라이브러리(310)는, 프린터 제어 드라이버(318)의 기능을 이용해서 프린트 잡의 제어를 행하기 위한 API(Application Programming Interface)을 제공하는 라이브러리다. 프린트 잡은, 화상 처리장치(101)의 HDD(213)에 보존되어 있는 인쇄 데이터를 인쇄하거나, 네트워크 I/F(214)를 거쳐 외부장치로부터 수신한 인쇄 데이터를 인쇄하는 일련의 처리를 나타낸다. 외부장치는, 예를 들면, 정보 처리 단말 103, 104이다. 카피 라이브러리(311)는, 스캐너 제어 드라이버(319) 및 프린터 제어 드라이버(318)의 기능을 이용하여 카피 잡의 제어를 행하기 위한 API를 제공하는 라이브러리다. 카피 잡은, 스캐너(203)에 의해 스캔된 화상 데이터를 프린터(202)에 의해 인쇄하는 일련의 처리를 나타낸다.
스캔 보존 라이브러리(312)는, 스캐너 제어 드라이버(319)의 기능을 이용해서 스캔 보존 잡의 제어를 행하기 위한 API를 제공하는 라이브러리다. 스캔 보존 잡은, 스캐너(203)에서 스캔된 화상 데이터를 인쇄 데이터 또는 범용 포맷의 데이터로 변환하고, HDD(213) 또는 확장 I/F(218)에 접속되어 있는 USB 메모리 등의 외부 기억장치에 이 데이터를 보존하는 일련의 처리를 나타낸다. 이때, 범용 포맷은, PDF(Portable Document Format)이나 JPEG(Joint Photographic Experts Group) 등의 데이터 포맷이다.
스캔 송신 라이브러리(313)는, 스캐너 제어 드라이버(319) 및 네트워크 I/F 제어 드라이버(320)의 기능을 이용하여, 스캔 송신 잡의 제어를 행하기 위한 API를 제공하는 라이브러리다. 스캔 송신 잡은, 스캐너(203)에서 스캔된 화상 데이터를 범용 포맷의 데이터로 변환하고, 이 데이터를 네트워크 I/F(214)를 거쳐 파일 서버에 송신하거나, 전자우편에 첨부해서 외부장치에 송신하는 일련의 처리를 나타낸다. 파일 서버는, 예를 들면, 서버(105)이며, 외부장치는, 예를 들면, 정보 처리 단말 103, 104이다.
화상처리 제어부(340)는, 네이티브 화상처리 접속 라이브러리(314), 네이티브 화상처리 서버(315), 및 네이티브 화상처리 모듈(네이티브 어플리케이션)(316)을 포함한다. 네이티브 어플리케이션은, 화상 처리장치(101)에 프리인스톨되고, 화상처리 등의 각종 기능을 제공하는 어플리케이션이다. 한편, 후술하는 플러그인 어플리케이션은, 화상 처리장치(101)에 대하여, 제품 출하후에 추가가능한 어플리케이션이다. 네이티브 화상처리 접속 라이브러리(314)가 디바이스 제어 라이브러리(309)로부터 화상처리의 실행 의뢰를 받으면, 화상처리 접속 라이브러리(332)에 의뢰 내용을 전송한다. 네이티브 화상처리 서버(315)는, 후술하는 Java(등록상표) 언어로 기술된 소프트웨어로부터 의뢰를 받아서 네이티브 화상처리 모듈을 실행하는 기능을 제공한다. 네이티브 화상처리 모듈(316)은, 다양한 종류의 화상처리를 실행하는 것이 가능한 소프트웨어다. 이때, 네이티브 화상처리 서버(315) 및 네이티브 화상처리 모듈(316)은, 도3에 도시된 다른 소프트웨어와는 분리된 논리 메모리 공간을 갖는 프로그램 실행 단위인 네이티브 화상처리 제어 프로세스(350) 상에서 실행된다. 메모리 공간을 분리하는 구체적인 방법으로서는, 일반적인 OS(Operating System)이 구비하는 프로세스 메카니즘을 사용하는 것이 생각되지만, 다른 방법도 존재한다. 화상처리를 행할 경우에 논리 메모리 공간을 분리하는 구성으로 함으로써, 복잡한 연산과 이것에 따르는 메모리 조작을 행하는 경우에, 처리 에러가 처리의 의뢰측에 미치는 영향을 억제할 수 있다.
최상위층으로서의 역할을 하는 Java 언어 실행 환경(330)은, 제1 실행 환경의 일례이며, 플러그인 어플리케이션(301) 및 디바이스 제어 어플리케이션(304)을 포함하는 어플리케이션층이다. 본실시형태에서는, 플러그인 어플리케이션(301) 및 디바이스 제어 어플리케이션(304)은 Java 언어(제1 프로그래밍 언어)로 기술되고, Java 가상 머신이 해석하는 Java 바이트 코드 형식으로 HDD(213)에 격납된다. CPU(211)은 Java 가상 머신의 프로그램을 실행하고, Java 가상 머신이 Java 바이트 코드를 판독해서 실행함으로써 처리를 행한다. 이러한 프로그래밍 언어를 이용하는 이유의 한개는 프로그램 기술의 간이성이다, Java에 있어서는, 메모리 영역을 개발자가 관리할 필요가 없고, 자동적으로 관리된다. 프로그램을 기술하는 수고가 저감되어, 높은 개발 효율이 예상된다.
각 어플리케이션은, 디바이스 제어 라이브러리(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)에 기록한다.
CPU(211)(디바이스 제어 어플리케이션(304))가 조작부(204)를 거쳐 잡의 실행 의뢰를 검지하면, 디바이스 제어 라이브러리(309)의 API를 콜하여 해당 잡을 개시한다. 디바이스 제어 어플리케이션(304)은, 화상처리 접속 라이브러리(332)에 대하여, 화상처리를 의뢰하는 것도 가능하다.
화상처리 접속 라이브러리(332)는 허용 메모리 정의(325)를 유지한다. 허용 메모리 정의(325)에는 화상처리 접속 라이브러리(332)에 의한 동시 실행시의 최대의 허용 메모리 용량이 정의되어 있다. 예를 들어, 허용 메모리 정의(325)에 정의된 허용 메모리는, 프로그램에 직접 기재해서 HDD(213)로부터 취득해도 된다. 이와 달리, 미리 허용량을 정의한 파일을 설치하고, 실행시에 로드해도 된다. 이때, 허용 메모리를 취득하는 방법은 상기 이외의 방법이어도 된다. 화상처리 접속 라이브러리(332)는, 실행중 메모리 관리부(326)를 더 유지한다. 실행중 메모리 관리부(326)는, 화상처리 접속 라이브러리(332) 경유로 실행중인 화상처리의 총 메모리 용량을 관리하고 있다.
다음에, 디바이스 제어 어플리케이션(304)의 일례에 대해 설명한다. 프린트 어플리케이션(305)은, 프린트 라이브러리(310)의 API를 콜하여 프린트 잡을 실행한다. 카피 어플리케이션(306)은, 카피 라이브러리(311)의 API를 콜하여 카피 잡을 실행한다. 스캔 보존 어플리케이션(307)은, 스캔 보존 라이브러리(312)의 API를 콜하여 스캔 보존 잡을 실행한다. 스캔 송신 어플리케이션(308)은, 스캔 송신 라이브러리(313)의 API를 콜하여 스캔 송신 잡을 실행한다.
다음에, 플러그인 어플리케이션(301)의 일례에 대해 설명한다. 플러그인 어플리케이션(301)은, 상주 어플리케이션인 디바이스 제어 어플리케이션(304)과는 달리, 플러그인으로서 인스톨 및 언인스톨이 가능한 어플리케이션이다. 플러그인 어플리케이션(301)은, 단독 기능 플러그인 어플리케이션(302)과 화상처리 플러그인 어플리케이션(303)을 가진다. 플러그인 어플리케이션(301)에는, 각각 동작에 필요한 프로그램이 패키징되어 있다. 플러그인 어플리케이션(301)은, 리모트 UI(User Interface) 사용함으로써, 화상 처리장치(101)에 인스톨된다. 이때, 리모트 UI는, 외부장치의 Web 브라우저로부터 네트워크 I/F(214)를 경유해서 화상 처리장치(101)에 액세스하여, 화상 처리장치(101)의 상황의 확인, 인쇄 잡의 조작, 각종 설정 등을 행할 수 있는 메카니즘이다. 외부장치는, 예를 들면, 정보 처리 단말 103, 104이다. 플러그인 어플리케이션(301)(단독 기능 플러그인 어플리케이션(302), 및 화상처리 플러그인 어플리케이션(303))은, 개별적으로 기동 및 정지를 행하는 것이 가능하다.
이하에서, 플러그인 어플리케이션(301)의 인스톨로부터 기동, 정지, 언인스톨까지의 일련의 동작의 일례를 나타낸다. CPU(211)가 플러그인 어플리케이션(301)의 인스톨을 검지하면, 해당 플러그인 어플리케이션(301)의 정보를 HDD(213)에 보존한다. CPU(211)가 플러그인 어플리케이션(301)의 개시 지시를 검지하면, 해당 플러그인 어플리케이션(301)의 기동 지시를 행한다. 플러그인 어플리케이션(301)이 기동하고 있는 동안, 각 프로그램의 내용을 실행하는 것이 가능하다. CPU(211)가 플러그인 어플리케이션(301)의 정지 지시를 검지하면, 해당 플러그인 어플리케이션(301)의 정지 지시를 행한다. CPU(211)가 플러그인 어플리케이션(301)의 언인스톨 지시를 검지하면, 해당 플러그인 어플리케이션(301)의 정보를 HDD(213)로부터 삭제한다. 이때, 이들 지시는, 예를 들면, 리모트 UI나 조작부(204)로부터 입력될 수 있지만, 이들 지시는 상기한 방법 이외의 방법으로 입력될 수 있다.
다음에, 단독 기능 플러그인 어플리케이션(302)의 일례에 대해 설명한다. 단독 기능 플러그인 어플리케이션(302)은 화면 정보 321을 가진다. 단독 기능 플러그인 어플리케이션(302)은, 디바이스 제어 라이브러리(309)의 API를 콜함으로써 상주의 디바이스 제어 어플리케이션(304)과는 다른 기능과 화면을 유저에게 제공할 수 있다. 예를 들면, 단독 기능 플러그인 어플리케이션(302)은, 어떤 화상 데이터를 복사하는 동시에 스캔하고, 단독 기능 플러그인 어플리케이션(302)이 유지하는 송신처 데이터베이스 내의 특정한 목적지에 문서를 송신하는 기능 등, 복수의 기능을 조합해서 제공하는 것이 가능하다. 이때, 단독 기능 플러그인 어플리케이션(302)은, 화상처리를 행하는 기능을 갖지 않고 있어도 된다. 이 경우, 화상처리의 설정은 행해지지 않는다. 디바이스 제어 라이브러리(309)가 인쇄 데이터 또는 범용 포맷으로 변환후의 화상 데이터를 수신하면, 적절한 오퍼레이팅 시스템(317)에 대하여 처리제어를 지시하여, 잡을 실행시킨다.
다음에, 화상처리 플러그인 어플리케이션(303)의 일례에 대해 설명한다. 화상처리 플러그인 어플리케이션(303)은, 특정한 화상처리를 제공하는 어플리케이션이다. 화상처리 플러그인 어플리케이션(303)은, 단독 기능 플러그인 어플리케이션(302), 디바이스 제어 어플리케이션(304) 등으로부터 화상처리 접속 라이브러리(332) 경유로 처리 대상의 화상 데이터와 처리 파라미터를 접수하여, 의뢰된 화상처리를 실행한다. 화상처리 플러그인 어플리케이션(303)은 디바이스 제어 라이브러리(309)로부터도, 네이티브 화상처리 접속 라이브러리(314)와 화상처리 접속 라이브러리(332)를 경유해서 화상처리 의뢰를 수신하는 것이 가능하다. 이때, 화상처리 플러그인 어플리케이션(303)은 HDD(213) 내에 복수 존재해도 된다. 예를 들면, 입력 화상에 대한 화상 형식 변환, 사행 보정, 장표 인식(form recognition), OCR 처리 등을 행할 수 있는 화상처리 플러그인 어플리케이션(303)이 각각 존재해도 된다.
화상처리 플러그인 어플리케이션(303)은, 그 자체가 화상처리 기능을 갖지 않고 있어도 된다. 예를 들면, 화상처리 플러그인 어플리케이션(303)은, 네이티브 화상처리 클라이언트(331)를 이용하고, 네이티브 화상처리 모듈(316)의 화상처리 기능을 이용할 수도 있다. 화상처리 플러그인 어플리케이션(303)이 네이티브 화상처리 모듈(316)을 이용하는 이유의 한가지는, 화상처리를 행할 때의 처리 속도의 고속화이다. 화상처리를 행할 때에는. 대량의 복잡한 수치연산을 행하고 처리의 과정에서 대량의 메모리를 필요로 할 경우가 있다. 그러한 경우에는, Java와 같은 가상 머신을 중개해서 처리를 행하는 프로그래밍 언어 처리계를 이용하는 것 대신에, 직접 CPU가 실행가능한 오브젝트 파일을 생성할 수 있는 컴파일러 언어를 이용함으로써 처리 속도를 향상시킬 수 있다.
화상처리 플러그인 어플리케이션(303)은, 실행 메모리 정의(327)를 유지한다. 실행 메모리 정의(327)는, 각 플러그인이 실행하는 화상처리에 의해 이용되는 최대 메모리 용량을 정의하고 있다. 이때, 상기한 메모리 용량은 플러그인마다 유지되거나, 화상처리의 함수마다 유지되어도 된다.
<처리 절차>
다음에, 도4를 참조하여, 본 실시형태에 따른 화상 처리장치(101)의 처리 절차의 일례를 설명한다. 화상처리 접속 라이브러리(332)가 화상처리를 접수하고, 메모리 제어를 행한 후, 화상처리 플러그인 어플리케이션(303)에 처리 의뢰를 행하는 케이스를 상정한다. 본 흐름도는, 화상처리 플러그인 어플리케이션(303)을 사용한 화상처리의 일례를 나타낸다. 이때, 이하에서 설명하는 처리는, 예를 들면, CPU(211)이 HDD(213)에 보존된 프로그램을 RAM(212)에 판독해서 그 프로그램을 실행함으로써 실현된다.
우선, 스텝 S401에서, 화상처리 접속 라이브러리(332)는, 디바이스 제어 어플리케이션(304), 네이티브 화상처리 접속 라이브러리(314), 또는 단독 기능 플러그인 어플리케이션(302)으로부터 화상처리의 실행 의뢰를 수신한다. 이때, 수신한 실행 의뢰는 처리를 의뢰하는 화상처리 플러그인 어플리케이션(303)을 특정하기 위해서 필요한 파라미터를 포함하는 것으로 가정한다.
다음에, 스텝 S402에서, 화상처리 접속 라이브러리(332)는, 취득한 실행 의뢰에 대응하는 화상처리를 실행가능한 화상처리 플러그인 어플리케이션(303)을 탐색한다. 스텝 S403에서, 화상처리 접속 라이브러리(332)는, 스텝 S402의 탐색 결과에 근거하여, 대상이 되는 화상처리 플러그인 어플리케이션이 존재하는지 아닌지를 판정한다.
스텝 S403에서 화상처리 접속 라이브러리(332)가 수신한 화상처리 의뢰를 실행할 수 있는 어플리케이션이 존재하지 않는다고 판정하면, 스텝 S404로 처리를 진행하여, 화상처리 접속 라이브러리(332)가 수신한 화상처리를 실행할 수 있는 어플리케이션이 존재하지 않는 것을 나타내는 에러를 의뢰처의 모듈에 반환한다. 그 후에 처리를 종료한다. 예를 들면, 네이티브 화상처리 접속 라이브러리(314)가 의뢰처인 경우, 디바이스 제어 라이브러리(309)를 거쳐, 디바이스 제어 어플리케이션(304) 또는 단독 기능 플러그인 어플리케이션(302)에 상기한 에러 내용이 전파된다. 디바이스 제어 어플리케이션(304) 또는 단독 기능 플러그인 어플리케이션(302)은 수신한 상기한 에러 내용을 각 어플리케이션의 조작 화면에 표시한다. 이 에러는, 처리에 필요한 모듈이 존재하지 않고 있는 것을 유저에게 통지할 수 있다. 서비스 맨 또는 IT 관리자가 상기한 인스톨 수법에 의해 필요한 화상처리 플러그인 어플리케이션(303)을 인스톨함으로써, 처리를 계속하는 것이 가능하다.
스텝 S403에서 화상처리 접속 라이브러리(332)가 대상의 화상처리 플러그인 어플리케이션(303)이 존재한다고 판정하면, 스텝 S405로 처리를 진행하여, 화상처리 접속 라이브러리(332)는, 대상의 화상처리 플러그인 어플리케이션(303)의 실행 메모리 정의(327)로부터 실행 메모리 용량을 취득한다. 이 실행 메모리 용량은, 상기한 바와 같이, 각 플러그인 단위로 정의되거나, 각 플러그인에 있어서의 화상처리의 각 함수단위로 유지되어도 된다. 이어서, 스텝 S406에서, 화상처리 접속 라이브러리(332)는, 화상처리 접속 라이브러리(332)의 허용 메모리 정의(325)로부터 허용 메모리 용량을 취득한다. 스텝 S407에서, 화상처리 접속 라이브러리(332)는, 화상처리 접속 라이브러리(332)의 실행중 메모리 관리부(326)로부터 실행중 총 메모리 용량을 취득한다.
스텝 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)는 화상처리 결과를 의뢰처의 각 모듈에 반환하고, 처리를 종료한다.
스텝 S408에서 화상처리 접속 라이브러리(332)가 이 합이 허용 메모리 용량을 넘었다고 판단했을 경우, 스텝 S414로 처리를 진행하여, 화상처리 접속 라이브러리(332)는, 의뢰처의 모듈에 대하여, 현재 화상처리에 필요한 메모리 리소스가 충분하지 않기 때문에(메모리 부족 때문에) 화상처리를 실행할 수 없다는 것을 나타내는 에러를 반환하고, 처리를 종료한다. 네이티브 화상처리 접속 라이브러리(314)가 의뢰처이었을 경우, 디바이스 제어 라이브러리(309)를 거쳐, 상기한 에러 내용이 디바이스 제어 어플리케이션(304) 또는 단독 기능 플러그인 어플리케이션(302)에 전파된다. 디바이스 제어 어플리케이션(304) 또는 단독 기능 플러그인 어플리케이션(302)은 수신한 상기한 에러 내용에 근거하여, 예외처리를 실행한다.
예외처리의 일례는 리트라이(retry) 처리이다. 각 어플리케이션이 상기한 에러를 수신하면, 화상처리 접속 라이브러리(332) 상에서 복수의 화상처리가 동시에 실행되고 있다고 판단할 수 있다. 각 어플리케이션은, 일단 현재 실행중인 화상처리가 끝날 때까지 리트라이에 의해 대기하고, 실행중인 화상처리가 끝난 타이밍에서 다시 화상처리 요구를 송신한다. 이에 따라, 처리를 중단하지 않고 계속하는 것이 가능해 진다.
또 다른 예외처리는, 각 어플리케이션의 조작 화면에 있어서, 복수의 화상처리가 동시 실행중이기 때문에, 어떤 시간 후에(소정 시간이 경과한 후에) 다시 잡을 투입하도록 촉구하는 에러를 표시하는 제어이다. 이 에러는 유저에게 어떤 시간후에 잡이 실행 가능한 것을 통지할 수 있다.
전술한 바와 같이, 본 실시형태에 따르면, 화상처리 실행을 행하는 모듈(플러그인 어플리케이션)에 처리 의뢰를 행하기 전에, 실행할 화상처리에 의해 메모리 용량이 허용 메모리 용량을 넘을 것인지 아닌지를 판단한다. 메모리 용량이 허용 메모리 용량을 넘을 경우에는, 애당초 화상처리를 의뢰하지 않는다. 본실시형태에서는, 허용 메모리 용량을 초과한 메모리의 할당을 회피할 수 있다. 시스템이 허용하는 메모리 용량을 넘은 메모리의 할당으로 인해 시스템의 동작이 불안정해지기 전에, 메모리 할당을 제어할 수 있다.
<화상처리 플러그인 어플리케이션에 의한 화상처리>
이하에서는, 화상처리 플러그인 어플리케이션에 의한 화상처리에 대해 설명한다. 화상처리를 화상처리 플러그인 어플리케이션(303)이 의뢰하면, 화상처리 플러그인 어플리케이션(303)은 의뢰된 처리 내용에 근거하여, 화상처리를 실행한다. 화상처리 플러그인 어플리케이션(303)은, 적어도 2종류의 방법에 의해 화상처리를 실행할 수 있다. 첫 번째 방법은, 화상처리 플러그인 어플리케이션(303) 내에서 화상처리를 실행하는 것이다. 이 경우, 화상처리 플러그인 어플리케이션은, 화상처리 접속 라이브러리(332)로부터로 수신한 처리 의뢰 및 처리 파라미터를 기초로 화상처리를 실행한다. 이 경우, 화상처리 플러그인 어플리케이션은 Java 언어로 기재할 필요가 있다. 두 번째 방법은, 네이티브 화상처리 모듈(316)에 화상 처리를 의뢰하는 방법이다. 화상처리 플러그인 어플리케이션(303)은, 네이티브 화상처리 클라이언트에 처리를 의뢰함으로써, 화상처리 플러그인 어플리케이션(303)과는 다른 화상처리 전용 프로세스에 있어서 화상처리를 실행하는 것이 가능해 진다.
도5를 참조하여, 각 화상처리 플러그인 어플리케이션(303)이 화상처리를 실행하는 처리 절차를 설명한다. 본 흐름도는, 네이티브 화상처리 서버(315)에 의뢰해서 화상처리를 실행하는 처리 절차를 나타낸다. 이때, 이하에서 설명하는 처리는, 예를 들면, CPU(211)이 HDD(213)에 보존된 프로그램을 RAM(212)에 판독해서 그 프로그램을 실행함으로써 실현된다.
화상처리 플러그인 어플리케이션(303)은 네이티브 화상처리 클라이언트(331)에 처리 파라미터와 함께 화상처리 의뢰를 송신한다. 네이티브 화상처리 클라이언트(331)는 네이티브 화상처리 서버(315)에 대하여, 수신한 처리 파라미터와 함께 처리 의뢰를 행한다.
스텝 S501에서, 네이티브 화상처리 서버(315)는 화상처리의 실행 의뢰를 수신하고, 스텝 S502에서, 수신한 처리 파라미터를 기초로, 대상이 되는 네이티브 화상처리 모듈(316)을 탐색한다. 스텝 S503에서, 네이티브 화상처리 서버(315)는, 대상의 네이티브 화상처리 모듈(316)이 존재하는지 아닌지를 판정한다. 대상의 네이티브 화상처리 모듈(316)이 존재하지 않는 경우에는, 스텝 S504로 처리를 진행하여, 네이티브 화상처리 서버(315)는, 대상의 네이티브 화상처리 모듈(316)이 존재하지 않는다는 것을 나타내는 에러를 네이티브 화상처리 클라이언트(331)에 반환하고, 처리를 종료한다.
대상의 네이티브 화상처리 모듈(316)이 존재할 경우, 스텝 S505로 처리를 진행하여, 네이티브 화상처리 서버(315)는, 대상의 네이티브 화상처리 모듈(316)에게 수신한 처리 파라미터를 기초로 화상처리를 실행시킨다. 이어서, 스텝 S506에서, 네이티브 화상처리 서버(315)는, 스텝 S505의 화상처리 결과를 네이티브 화상처리 클라이언트(331)에 반환하고, 처리를 종료한다. 네이티브 화상처리 클라이언트(331)가 화상처리 결과 또는 에러 내용을 수신하면, 그 내용을 화상처리 플러그인 어플리케이션(303)에 반환한다.
이상에서 설명한 바와 같이, 본 실시형태에 따른 화상 처리장치는, 1개 이상의 플러그인 어플리케이션에 의한 복수의 화상처리를 실행가능한 화상 처리장치다. 이 화상 처리장치가, 플러그인 어플리케이션에 의한 화상처리의 실행중에, 플러그인 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 이 새로운 화상처리를 실행가능한 플러그인 어플리케이션을 탐색한다. 또한, 화상 처리장치는 탐색된 플러그인 어플리케이션과 함께 유지되어 있는, 플러그인 어플리케이션에 의해 새로운 화상처리를 실행할 때의 메모리 사용량과, 플러그인 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량을 취득한다. 화상 처리장치는, 취득된 각 화상처리의 메모리 사용량 및 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 해당 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교한다. 화상 처리장치는, 비교의 결과 총 메모리 사용량이 허용 메모리 용량을 넘지 않을 경우는 새로운 화상처리를 실행한다. 총 메모리 사용량이 허용 메모리 용량을 넘을 경우는, 화상 처리장치는, 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지한다. 이에 따라, 화상처리 플러그인 어플리케이션(303)의 기동(인스톨)을 제한하지 않고, 화상처리 실행시에 실행중인 화상처리의 총 메모리를 계산함으로써, 복수의 화상처리에 대한 메모리 제어를 런타임에서 행할 수 있다. 본 실시형태에 따르면, 바람직하게 메모리 부족을 회피하면서, 복수의 화상처리를 실행할 수 있다. 이것은 유저의 편리성을 향상시킬 수 있다.
본 발명은 상기 실시형태에 한정되지 않고 다양한 변형이 가능하다. 예를 들면, 화상처리 플러그인 어플리케이션(303)의 실행 메모리 정의(327)에 정의되어 있는 실행 메모리는, 네이티브 화상처리 모듈(316)이 화상처리를 실행할 때 사용되는 실행 메모리를 기재하는 것도 가능하다.
<제2 실시형태>
이하에서는, 본 발명의 제2 실시형태에 대해 설명한다. 상기 제1 실시형태에서는, 화상처리 접속 라이브러리(332)가 복수의 화상처리에 대한 메모리 제어를 런타임에서 행하는 예를 설명했다. 본실시형태에서는, 플러그인 어플리케이션이 화상처리를 의뢰할 때에, 네이티브 화상처리 서버(315)가 네이티브 화상처리 제어 프로세스(350) 내부의 복수의 화상처리에 대한 메모리 제어를 행하는 예에 대해 설명한다.
<화상 처리장치의 소프트웨어 구성>
우선, 도6을 참조하여, 본 실시형태에 따른 CPU(211)이 처리하는 소프트웨어의 구조의 일례를 설명한다. 이때, 기본적인 구성은 상기 제1 실시형태에 있어서 도3을 참조하여 설명한 내용과 같기 때문에, 주로 차분에 대해 설명한다. 동일한 구성에 대해서는 동일한 참조부호를 붙이고, 설명을 생략한다.
네이티브 화상처리 서버(315)는, 허용 메모리 정의(601)를 유지한다. 허용 메모리 정의(601)는 네이티브 화상처리 서버(315) 상에서 동시 실행될 때의 가능한 최대의 허용 메모리 용량을 정의하고 있다. 허용 메모리 정의(601)에 정의된 허용 메모리 용량은, 프로그램에 직접 기재해서 HDD(213)로부터 취득할 수도 있다. 이와 달리, 미리 허용 메모리 용량을 정의한 파일을 설치하고, 실행시에 로드하여도 된다. 이때, 허용 메모리를 취득하는 방법은 상기한 방법 이외의 방법이어도 된다. 네이티브 화상처리 서버(315)는, 실행중 메모리 관리부(602)를 더 유지한다. 실행중 메모리 관리부(602)는, 네이티브 화상처리 서버(315) 경유로 실행중인 화상처리의 총 메모리 용량을 관리하고 있다.
<처리 절차>
다음에, 도7을 참조하여, 본 실시형태에 따른 화상 처리장치(101)의 처리 절차의 일례를 설명한다. 여기에서는, 네이티브 화상처리 서버(315)가 실행중인 화상처리의 메모리를 관리하고, 화상처리를 실행하는 케이스를 상정한다. 이와 같은 화상처리의 의뢰처는 화상처리 플러그인 어플리케이션(303)이 된다. 이때, 이하에서 설명하는 처리는, 예를 들면, CPU(211)이 HDD(213)에 보존된 프로그램을 RAM(212)에 판독해서 그 프로그램을 실행함으로써 실현된다.
스텝 S701에서, 네이티브 화상처리 서버(315)는 네이티브 화상처리 클라이언트(331)로부터 처리 파라미터와 함께 화상처리의 실행 의뢰를 수신하고, 스텝 S702에서 네이티브 화상처리 모듈(316)을 탐색한다. 스텝 S703에서, 네이티브 화상처리 서버(315)는, 스텝 S702의 탐색 결과에 근거하여, 대상의 네이티브 화상처리 모듈(316)이 존재하는지 아닌지를 판단한다.
대상의 네이티브 화상처리 모듈(316)이 존재하지 않는 경우에는, 스텝 S704로 처리를 진행하여, 네이티브 화상처리 서버(315)는 대상의 네이티브 화상처리 모듈(316)이 존재하지 않는다는 것을 나타내는 에러를 반환하고, 처리를 종료한다. 에러를 수신시에, 네이티브 화상처리 클라이언트(331)는, 의뢰처인 화상처리 플러그인 어플리케이션(303)에 에러 내용을 전파한다. 이 경우, 화상 처리장치(101)의 HDD(213)에 필요한 네이티브 화상처리 모듈(316)이 인스톨되지 않으며 통상의 조작에 있어서는 발생하지 않는다. 따라서, 개발자가 소스 코드를 수정할 필요가 있다.
대상의 네이티브 화상처리 모듈(316)이 존재하는 경우에는, 스텝 S705로 처리를 진행하여, 네이티브 화상처리 서버(315)는, 대상의 네이티브 화상처리 모듈(316)의 실행 메모리 정의(603)로부터 실행 메모리 용량을 취득한다. 이어서, 스텝 S706에서, 네이티브 화상처리 서버(315)는, 네이티브 화상처리 서버(315)의 허용 메모리 정의(601)로부터 허용 메모리 용량을 취득한다. 스텝 S707에서, 네이티브 화상처리 서버(315)는, 네이티브 화상처리 서버(315)의 실행중 메모리 관리부(602)로부터 실행중 총 메모리 용량을 취득한다.
스텝 S708에서, 네이티브 화상처리 서버(315)는, 취득한 실행중 메모리 용량과 실행중 총 메모리 용량의 합이 허용 메모리 용량을 초과하는지 아닌지를 판단한다. 네이티브 화상처리 서버(315)가 합이 허용 메모리 용량을 넘지 않는다고 판단한 경우에는, 스텝 S709로 처리를 진행하여, 네이티브 화상처리 서버(315)는, 실행중 총 메모리 용량에 실행 메모리 용량을 가산한다. 스텝 S710에서, 네이티브 화상처리 서버(315)는, 네이티브 화상처리 모듈(316)에 대하여 화상처리 실행을 의뢰한다. 네이티브 화상처리 모듈(316)은, 처리 파라미터와 함께 화상처리 의뢰를 수신하고, 처리 파라미터에 따라 화상처리를 실행한다. 화상처리를 실행할 때, 네이티브 화상처리 모듈(316)에서는, CPU(211)이 입력 데이터를 RAM(212)에 전개하고, 처리를 행한다. 이때, 화상처리 내용 및 입력 데이터 사이즈에 따라, 메모리를 할당할 필요가 있다.
스텝 S711에서, 네이티브 화상처리 서버(315)는, 화상처리 결과를 네이티브 화상처리 모듈(316)로부터 수신하고, 스텝 S712에서 실행중 총 메모리 용량으로부터 실행 메모리 용량을 감산한다. 스텝 S713에서, 네이티브 화상처리 서버(315)는, 화상처리 결과를 네이티브 화상처리 클라이언트(331)에 반환하고, 처리를 종료한다.
네이티브 화상처리 서버(315)가 스텝 S708에서 합이 허용 메모리 용량을 넘는다고 판단한 경우에는 스텝 S714로 처리를 진행하여, 네이티브 화상처리 서버(315)는, 현재 필요한 메모리 리소스가 충분하지 않기 때문에, 화상처리를 실행할 수 없다는 것을 나타내는 에러를 네이티브 화상처리 클라이언트(331)에 반환한다. 그 후에 처리를 종료한다.
네이티브 화상처리 클라이언트(331)는 상기한 화상처리 결과 및 에러 내용을 화상처리 플러그인 어플리케이션(303)에 전파한다. 화상처리 플러그인 어플리케이션은 화상처리 결과를 받고, 화상처리 접속 라이브러리(332)를 거쳐 의뢰처의 모듈에 그것을 전파한다. 메모리 리소스가 충분하지 않다는 것을 나타내는 에러를 수신했을 경우, 예외처리를 실행한다. 예외처리의 일례는 리트라이 처리이다. 화상처리 플러그인 어플리케이션(303)은, 상기한 에러를 수신했을 경우, 실행중인 화상처리가 존재하기 때문에 화상처리를 실행할 수 없다고 판단할 수 있다. 따라서, 소정의 시간 후에 화상처리 클라이언트(331)에 처리를 의뢰함으로써 실행하는 것이 가능하다. 화상처리 플러그인 어플리케이션 내에서 행해지는 리트라이 처리는, 의뢰처의 모듈에 의해 리트라이 처리를 행하지 않아도 된다고 하는 이점을 갖는다. 다른 예외처리로서, 의뢰처에 있는 단독 기능 플러그인 어플리케이션(302) 및 디바이스 제어 어플리케이션(304)까지 상기한 에러를 전파한다. 어플리케이션에 따라 리트라이를 행하는 것이 바람직한 경우와, 리트라이를 중단하는 것이 바람직한 경우의 양자를 상정할 수 있는 경우에는, 어플리케이션측에 상기한 에러를 전파함으로써, 어플리케이션 내에서 리트라이 및 중단을 전환하는 것이 가능해 진다.
전술한 바와 같이, 네이티브 화상처리 모듈(316)에 처리 의뢰를 행하기 전에, 미리 실행할 화상처리에 의해 메모리 용량이 허용 메모리 용량을 넘고 있는지 아닌지를 판단해서 제어를 행한다. 메모리 용량이 허용 메모리 용량을 넘는 경우에는, 애당초 화상처리를 의뢰하지 않기 때문에, 메모리를 쓸데없이 할당하지 않는다. 시스템(장치)이 허용하는 메모리 용량을 넘는 메모리를 할당하는 것으로 인해 시스템의 동작이 불안정해지기 전에, 사전에 메모리 할당을 제어할 수 있다.
본 실시형태에 있어서, 네이티브 화상처리 제어 프로세스(350) 내의 상기한 메모리 제어와 병렬로, 플러그인에 의해 실현되는 다른 화상처리 제어 프로세스에 대해서도 같은 메모리 제어를 행하여도 된다. 즉, 프로세스마다 메모리 허용량을 정의해도 된다. 예를 들면, 제2 실시형태에 따른 구성을 상기 제1 실시형태에 따른 구성과 조합해서 적용해도 된다.
본 실시형태에 따르면, 화상처리 플러그인 어플리케이션(303)의 기동을 제한하지 않고, 화상처리 실행시에 실행중인 화상처리의 총 메모리를 계산함으로써, 복수의 화상처리에 대한 메모리 제어를 런타임에서 행하는 것이 가능해 진다. 이것은 유저의 편리성을 향상시킬 수 있다. 제1 실시형태와는 다르게, 화상처리를 전문으로 행하는 프로세스(네이티브 화상처리 제어 프로세스(350)) 내에 제한해서 메모리 관리를 행하는 것이 가능해 진다. 화상처리 플러그인 어플리케이션(303)이 네이티브 화상처리 제어 프로세스(350) 상에서의 화상처리의 메모리 제어를 의식할 필요가 없다. 화상처리 플러그인 어플리케이션(303)의 개발 효율이 향상한다고 하는 이점이 있다.
<제3 실시형태>
이하에서는, 본 발명의 제3 실시형태에 대해 설명한다. 본실시형태에서는, 네이티브 화상처리 모듈(316)이 주로 메모리 제어를 행하는 예를 설명한다. 제3 실시형태에 있어서는, 메모리 제어를 행하고 제1 및 제2 실시형태와 달리 병렬처리를 행할 수 없는 경우에는, 에러를 즉시 반환하지 않고 처리를 실행한다. 복수 페이지의 화상처리에 대한 병렬처리를 행할 수 있는 경우에는, 병렬처리를 사용하여 처리를 고속화한다.
<처리 절차>
우선, 도8a 및 도 8b를 참조하여, 본 실시형태에 따른 화상 처리장치(101)의 처리 절차의 일례를 설명한다. 네이티브 화상처리 모듈(316)이 네이티브 화상처리 서버(315)에 실행 메모리를 등록하고, 메모리 제어를 행하는 일례를 설명한다. 이때, 이하에서 설명하는 처리는, 예를 들면, CPU(211)이 HDD(213)에 보존된 프로그램을 RAM(212)에 판독해서 그 프로그램을 실행함으로써 실현된다.
우선, 스텝 S801에서, 네이티브 화상처리 모듈(316)은, 네이티브 화상처리 서버(315)로부터 화상처리의 실행 의뢰를 수신한다. 이어서, 스텝 S802에서, 네이티브 화상처리 모듈(316)은, 수신한 화상처리에 필요한 메모리 사이즈(메모리 사용량)를 실행 메모리 정의(603)로부터 취득한다. 스텝 S803에서, 네이티브 화상처리 모듈(316)은, 수신한 화상처리에 대하여 병렬처리가 가능한가 아닌지를 판단한다. 네이티브 화상처리 모듈(316)은 병렬처리가 가능인가 아닌지를 나타내는 정보를 가질 수 있으며, 이 정보를 사용해서 판단해도 된다. 이때, 병렬처리가 가능한지 아닌지를 나타낸 정보를 이용하여, 상기 제1 및 제2 실시형태에서 설명한 바와 같이, 네이티브 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량과, 상기 필요한 메모리 사용량에 근거하여, 병렬처리가 가능한지 아닌지를 판단해도 된다. 예를 들면, 상기 2개의 총 메모리 사용량에서 병행 처리를 행했을 경우에 허용 메모리 용량을 총 메모리 사용량이 넘지 않도록, 총 메모리 사용량에 대응하는 임계값 메모리 용량을 결정하고, 임계값 메모리 용량과 허용 메모리 용량의 비교 결과에 근거하여 결정을 행하여도 된다. 이와 달리, 실행 메모리 정의(603)에 미리 메타 정보로서 병렬처리 가능한지 아닌지를 나타내는 정보(예를 들면, 임계값 메모리 용량)를 부가해 두고, 그것을 판독함으로써 판단해도 된다.
스텝 S804에서, 네이티브 화상처리 모듈(316)이, 스텝 S803의 판단 결과에 근거하여, 수신한 화상처리에 대하여 병렬처리가 불가능하다고 판정하면, 스텝 S805로 처리를 진행한다. 네이티브 화상처리 모듈(316)이, 병렬처리가 가능하다고 판정하면, 스텝 S811로 처리를 진행한다.
스텝 S805는, 병렬처리가 가능하지 않은(각 화상처리를 순차 실행하는) 경우 스텝 S806 내지 S810의 처리를 동기적으로 수신한 화상처리의 페이지 수만큼 반복하는 처리를 나타낸다. 스텝 S806에서, 네이티브 화상처리 모듈(316)은, 네이티브 화상처리 서버(315)에 네이티브 화상처리 모듈(316)의 실행 메모리 정의(603)로부터 취득한 메모리 정보를 등록한다. 네이티브 화상처리 서버(315)에 의한 메모리 정보의 등록의 상세에 관해서는 도9를 참조해서 후술한다. 스텝 S807에서, 네이티브 화상처리 모듈(316)은, 스텝 S806에서 실행 메모리의 등록이 성공적인지 아닌지를 판단한다. 등록이 실패하는 경우에는, 스텝 S808로 처리를 진행하여, 네이티브 화상처리 모듈(316)은 화상처리에 필요한 메모리 리소스가 충분하지 않기 때문에 화상처리를 실행할 수 없다는 것을 나타내는 에러를 네이티브 화상처리 서버(315)에 반환하고, 처리를 종료한다. 네이티브 화상처리 서버(315)는 네이티브 화상처리 클라이언트(331)를 통해 호출측의 어플리케이션에 이 에러를 전파한다.
네이티브 화상처리 서버(315)에 실행 메모리의 등록이 성공적인 경우에는, 스텝 S809로 처리를 진행하여, 네이티브 화상처리 모듈(316)이 대상의 화상처리를 실행한다. 화상처리가 완료하면, 스텝 S810에서, 네이티브 화상처리 모듈(316)은, 네이티브 화상처리 서버(315)에 대하여 해제할 메모리 정보와 함께 실행 메모리 해제를 의뢰한다. 반복의 루프 처리가 종료한 후, 처리를 종료한다.
네이티브 화상처리 모듈(316)이 스텝 S804에서 병렬처리가 가능하다고 판단한 경우에는, 스텝 S811로 처리를 진행하여, 병렬처리가 가능할 경우에 있어서의 스텝 S812 내지 S814의 처리를 동기적으로 수신한 화상처리의 페이지 수만큼 반복한다. 스텝 S812에서, 네이티브 화상처리 모듈(316)은, 네이티브 화상처리 모듈(316)의 실행 메모리 정의(603)로부터 취득한 실행 메모리를 네이티브 화상처리 서버(315)에 대하여 등록한다. 이때, 네이티브 화상처리 서버(315)에 의한 메모리 등록의 시퀀스는 도9를 참조해서 후술한다. 스텝 S813에서, 네이티브 화상처리 모듈(316)은, 실행 메모리의 등록이 성공적인지 아닌지를 판단한다. 등록이 성공적인 경우에는, 스텝 S814로 처리를 진행하여, 네이티브 화상처리 모듈(316)이 병렬 실행수를 증분한다. 병렬 실행수는, 병렬로 실행할 스레드 수를 나타내고, RAM(212), HDD(213) 등에서 관리하고 있는 변수이다. 실행 메모리의 등록이 실패하면, 이 루프 처리로부터 처리가 탈출하여 스텝 S815로 진행한다. 반복의 루프 처리가 종료하면, 스텝 S815로 처리를 진행한다. 처리가 이 루프 처리로부터 탈출하는 단계에서, 병렬 실행수에는, 0으로부터 설정된 페이지 수의 범위의 양의 정수가 입력된다.
스텝 S815에서, 네이티브 화상처리 모듈(316)은, 계산한 병렬 실행수가 0보다 큰지 아닌지를 판단한다. 병렬 실행수가 0보다 크면, 스텝 S816으로 처리를 진행하고, 그렇지 않은 경우에는 스텝 S808로 진행한다. 스텝 S808에서, 네이티브 화상처리 모듈(316)은, 화상처리에 필요한 메모리 리소스가 충분하지 않기 때문에 화상처리를 실행할 수 없다는 것을 나타내는 에러를 네이티브 화상처리 서버(315)에 반환하고, 처리를 종료한다. 네이티브 화상처리 서버(315)는 네이티브 화상처리 클라이언트(331)를 거쳐 호출측의 어플리케이션에 이 에러를 전파한다.
병렬 실행수가 1개 이상의 정수이면, 스텝 S816으로 처리를 진행하여, 네이티브 화상처리 모듈(316)이 이 병렬 실행수만큼의 스레드를 기동한다. 본 실시형태에서는 스레드를 기동했지만, 프로세스를 기동해도 된다. 계속해서, 스텝 S817로 처리를 진행하여, 스텝 S818의 처리를 설정된 페이지 수만큼 반복한다. 스텝 S818에서, 네이티브 화상처리 모듈(316)은 비어 있는 스레드에 각 페이지의 화상처리를 할당해서 그것을 실행한다. 처리가 이 루프 처리를 탈출한 후, 모든 스레드의 화상처리 실행이 완료하고, 수신한 모든 페이지에 대한 화상처리가 완료한다. 최후에, 스텝 S819에서, 네이티브 화상처리 모듈(316)은, 네이티브 화상처리 서버(315)에 대하여 실행 메모리의 해제 의뢰를 기동 스레드 수만큼 행하고, 처리를 종료한다.
<실행 메모리 등록>
다음에, 도9를 참조하여, 스텝 S806 및 S812에 있어서, 네이티브 화상처리 서버(315)가 네이티브 화상처리 모듈(316)로부터 실행 메모리 등록 의뢰를 받았을 때의 처리 절차를 설명한다. 이때, 이하에서 설명하는 처리는, 예를 들면, CPU(211)이 HDD(213)에 보존된 프로그램을 RAM(212)에 판독해서 그 프로그램을 실행함으로써 실현된다.
스텝 S901에서, 네이티브 화상처리 서버(315)는, 네이티브 화상처리 모듈(316)로부터 실행 메모리 정보와 함께 실행 메모리 등록 의뢰를 수신한다. 스텝 S902에서, 네이티브 화상처리 서버(315)는, 수신한 메모리 사이즈와 실행중인 화상처리 메모리 사이즈의 합계가 허용 메모리 사이즈를 초과하고 있는지 아닌지를 판단한다. 합계가 허용 메모리 사이즈를 넘고 있으면, 스텝 S903으로 처리를 진행하여, 네이티브 화상처리 서버(315)는 등록이 실패한 것을 나타내는 메시지를 네이티브 화상처리 모듈(316)에 반환한다. 그후, 처리를 종료한다. 합계가 허용 메모리 사이즈를 넘지 않고 있으면, 스텝 S904로 처리를 진행하여, 네이티브 화상처리 서버(315)는 실행중 메모리에 수신한 메모리 사이즈를 가산하고, 스텝 S905에서 등록이 성공적인 것을 나타내는 메시지를 네이티브 화상처리 모듈(316)에 반환한다. 그후, 처리를 종료한다.
<실행 메모리 해제>
도10을 참조하여, 스텝 S810에 있어서, 네이티브 화상처리 서버(315)가 네이티브 화상처리 모듈(316)로부터 실행 메모리의 해제 의뢰를 받았을 때의 처리 절차를 설명한다. 이때, 이하에서 설명하는 처리는, 예를 들면, CPU(211)이 HDD(213)에 보존된 프로그램을 RAM(212)에 판독해서 그 프로그램을 실행함으로써 실현된다.
스텝 S1001에서, 네이티브 화상처리 서버(315)는, 네이티브 화상처리 모듈(316)로부터 실행 메모리 해제 의뢰를 수신한다. 스텝 S1002에서, 네이티브 화상처리 서버(315)는, 실행중 메모리로부터 수신한 메모리 사이즈를 감산하고, 처리를 종료한다.
이상에서 설명한 바와 같이, 본 실시형태에 따르면, 네이티브 화상처리 모듈(316)은 주체가 되어 메모리 제어를 실시할 수 있다. 네이티브 화상처리 모듈(316) 특성에 의존하여, 병렬처리가 가능한지 아닌지에 따라 적절히 스레드 제어를 행하는 것이 가능하다. 메모리 제어를 행하면서, 복수 페이지에 대한 고속화를 실현할 수 있다.
<제4 실시형태>
이하에서는, 본 발명의 제4 실시형태에 대해 설명한다. 상기 제3 실시형태에서는, 병렬 실행이 가능한 화상처리 모듈에 있어서는, 복수 페이지의 화상처리의 실시전에, 병렬 실행수를 결정한 후 병렬처리를 행하는 예를 설명하였다. 제4 실시형태에서는, 상기 제3 실시형태의 변형예로서, 화상처리의 실행중에 동적으로 병렬 실행수를 증가시키는 예를 설명한다.
<처리 절차>
우선, 도11을 참조하여, 본 실시형태에 따른 화상처리중에 동적으로 병렬 실행수를 증가시키는 처리 절차에 대해 설명한다. 본 흐름도는 도8b의 흐름도의 스텝 S816 내지 S819의 처리의 변형예가 된다. 스텝 S816 이전에 행해지는 처리는 도8b의 흐름도와 같다. 이때, 이하에서 설명하는 처리는, 예를 들면, CPU(211)이 HDD(213)에 보존된 프로그램을 RAM(212)에 판독해서 그 프로그램을 실행함으로써 실현된다.
스텝 S1101에서, 네이티브 화상처리 모듈(316)은, 병렬 실행 수 만큼의 스레드를 기동한다. 스텝 S1102로 처리를 진행하여, 스텝 S1103 내지 S1107의 루프처리를 설정된 페이지 수만큼 반복하여 실행한다. 구체적으로는, 스텝 S1103에서, 네이티브 화상처리 모듈(316)은, 비어 있는 스레드에 각 페이지의 화상처리를 할당해서 그것을 실행한다. 스텝 S1104로 처리를 진행하여, 스텝 S1105 내지 S1107의 루프 처리를 화상처리를 대기하는 페이지 수만큼 반복하여 실행한다.
스텝 S1105에서, 네이티브 화상처리 모듈(316)은, 네이티브 화상처리 서버(315)에 실행 메모리를 등록한다. 스텝 S1106에서, 네이티브 화상처리 모듈(316)은, 실행 메모리의 등록이 성공적인지 아닌지를 판단한다. 실행 메모리의 등록이 실패한 경우에는, 스텝 S1104의 루프로부터 처리가 탈출하여, 스텝 S1102의 루프로 되돌아온다. 스텝 S1106에서 실행 메모리의 등록이 성공적이라고 네이티브 화상처리 모듈(316)이 판단하면, 실행 스레드를 생성하고, 스텝 S1104로 처리가 되돌아온다. 이들 루프를 설정된 화상처리에 대응하는 페이지 수만큼 반복하여 실행한다(스텝 S1102). 그 결과, 모든 페이지의 화상처리가 완료하고, 스텝 S1108로 처리를 진행한다.
스텝 S1108에서, 네이티브 화상처리 모듈(316)은, 네이티브 화상처리 서버(315)에 실행 메모리의 해제 의뢰를 기동 스레드 수만큼 행하고, 처리를 종료한다. 이때, 실행 메모리 등록(스텝 S1105) 및 실행 메모리 해제(스텝 S1108)에 대한 네이티브 화상처리 서버(315)에 의한 처리 시퀀스는, 도9 및 도10에서 설명한 것과 같다.
이상에서 설명한 바와 같이, 본 실시형태에 따르면, 복수 페이지의 화상처리에 있어서, 각 페이지의 화상처리 사이에, 네이티브 화상처리 서버(315)에 문의하는 것에 의해 실행 스레드를 동적으로 증가시킬 수 있다. 따라서, 상기 제3 실시형태보다, 더 효율적으로 복수 페이지의 화상처리를 실행할 수 있다.
<기타 실시형태>
본 발명의 실시형태는, 본 발명의 전술한 실시형태(들)의 1개 이상의 기능을 수행하기 위해 기억매체('비일시적인 컴퓨터 판독가능한 기억매체'로서 더 상세히 언급해도 된다)에 기록된 컴퓨터 실행가능한 명령(예를 들어, 1개 이상의 프로그램)을 판독하여 실행하거나 및/또는 전술한 실시예(들)의 1개 이상의 기능을 수행하는 1개 이상의 회로(예를 들어, 주문형 반도체 회로(ASIC)를 포함하는 시스템 또는 장치의 컴퓨터나, 예를 들면, 전술한 실시형태(들)의 1개 이상의 기능을 수행하기 위해 기억매체로부터 컴퓨터 실행가능한 명령을 판독하여 실행함으로써, 시스템 또는 장치의 컴퓨터에 의해 수행되는 방법에 의해 구현될 수도 있다. 컴퓨터는, 1개 이상의 중앙처리장치(CPU), 마이크로 처리장치(MPU) 또는 기타 회로를 구비하고, 별개의 컴퓨터들의 네트워크 또는 별개의 컴퓨터 프로세서들을 구비해도 된다. 컴퓨터 실행가능한 명령은, 예를 들어, 기억매체의 네트워크로부터 컴퓨터로 주어져도 된다. 기록매체는, 예를 들면, 1개 이상의 하드디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 분산 컴퓨팅 시스템의 스토리지, 광 디스크(콤팩트 디스크(CD), 디지털 다기능 디스크(DVD), 또는 블루레이 디스크(BD)TM 등), 플래시 메모리소자, 메모리 카드 등을 구비해도 된다.
본 발명은, 상기한 실시형태의 1개 이상의 기능을 실현하는 프로그램을, 네트워크 또는 기억매체를 개입하여 시스템 혹은 장치에 공급하고, 그 시스템 혹은 장치의 컴퓨터에 있어서 1개 이상의 프로세서가 프로그램을 읽어 실행하는 처리에서도 실행가능하다. 또한, 1개 이상의 기능을 실현하는 회로(예를 들어, ASIC)에 의해서도 실행가능하다.
예시적인 실시형태들을 참조하여 본 발명을 설명하였지만, 본 발명이 이러한 실시형태에 한정되지 않는다는 것은 자명하다. 이하의 청구범위의 보호범위는 가장 넓게 해석되어 모든 변형, 동등물 구조 및 기능을 포괄하여야 한다.

Claims (18)

1개 이상의 플러그인 어플리케이션에 의한 복수의 화상처리를 실행가능한 화상 처리장치로서,
명령들의 세트를 기억하는 메모리 디바이스; 및
상기 명령들의 세트를 실행하여,
플러그인 어플리케이션에 의한 화상처리의 실행중에, 플러그인 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 플러그인 어플리케이션을 탐색하고,
상기 탐색된 플러그인 어플리케이션과 함께 유지되어 있는, 플러그인 어플리케이션에 의한 상기 새로운 화상처리를 실행했을 때의 메모리 사용량과, 플러그인 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량을 취득하고,
상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하고,
비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우에는, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 적어도 한 개의 프로세서를 구비한 화상 처리장치.
제 1항에 있어서,
상기 적어도 한 개의 프로세서가 상기 메모리 디바이스 내부의 명령들을 실행하여,
상기 화상 처리장치에 프리인스톨되어 있는 네이티브 어플리케이션에 의한 화상처리의 실행중에, 네이티브 어플리케이션에 의한 새로운 화상처리가 요구되는 경우, 새로운 화상처리를 실행가능한 네이티브 어플리케이션을 탐색하고,
탐색된 네이티브 어플리케이션과 함께 유지되어 있는, 네이티브 어플리케이션에 의한 새로운 화상처리를 실행할 때의 메모리 사용량과, 네이티브 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량을 취득하고,
취득된 각 화상처리의 메모리 사용량 및 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 플러그인 어플리케이션이 동작하는 프로세스와는 다른, 네이티브 어플리케이션이 동작하는 다른 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하고,
비교의 결과 총 메모리 사용량이 허용 메모리 용량을 넘지 않는 경우에는, 새로운 화상처리를 실행하고, 총 메모리 사용량이 허용 메모리 용량을 넘는 경우에는, 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 화상 처리장치.
제 1항에 있어서,
상기 적어도 한 개의 프로세서가 상기 메모리 디바이스 내부의 명령들을 실행하여,
상기 화상 처리장치에 프리인스톨되어 있는 네이티브 어플리케이션에 의한 화상처리의 실행중에, 네이티브 어플리케이션에 의한 새로운 화상처리가 요구되는 경우, 네이티브 어플리케이션에 의한 새로운 화상처리를 실행할 때의 메모리 사용량과, 네이티브 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량으로부터 병렬처리가 실행 가능한지 아닌지를 판단하고,
판단의 결과 상기 병렬처리가 실행가능하지 않은 경우에는, 새로운 화상처리와, 이미 실행중인 화상처리를 순차 실행하고, 상기 병렬처리가 실행가능한 경우에는 새로운 화상처리와, 이미 실행중인 화상처리를 병렬로 실행하는 화상 처리장치.
제 3항에 있어서,
상기 적어도 한 개의 프로세서가 상기 메모리 디바이스 내부의 명령들을 실행하여,
화상처리의 페이지마다 상기 병렬처리가 가능한지 아닌지를 동적으로 판단하는 화상 처리장치.
제 3항에 있어서,
상기 적어도 한 개의 프로세서가 상기 메모리 디바이스 내부의 명령들을 실행하여,
화상처리를 실행하기 위한 실행 메모리를 할당할 수 없을 경우에, 화상처리를 실행할 수 없다는 것을 나타내는 에러를 송신하는 화상 처리장치.
제 1항에 있어서,
상기 요구원이 상기 에러를 수신한 경우, 상기 요구원은 소정 시간이 경과한 후에, 재차 새로운 화상처리를 요구하는 화상 처리장치.
제 2항에 있어서,
네이티브 어플리케이션에 의한 새로운 화상 처리장치의 요구원은 새로운 화상 처리장치가 실행되는 프로세스와는 다른 프로세스에서 동작하고 있는 화상 처리장치.
제1 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제1 실행 환경과, 제2 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제2 실행 환경에서 복수의 화상처리를 실행가능한 화상 처리장치로서,
명령들의 세트를 기억하는 메모리 디바이스; 및
상기 명령들의 세트를 실행하여,
상기 제1 실행 환경에서의 화상처리의 실행중에, 상기 제1 프로그래밍 언어로 기술된 제1 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 상기 제1 어플리케이션을 탐색하고,
탐색된 상기 제1 어플리케이션과 함께 유지되어 있는, 상기 제1 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 상기 제1 실행 환경에서 이미 실행중인 화상처리 각각의 메모리 사용량을 취득하고,
상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 상기 제1 실행 환경에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하고,
비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 적어도 한 개의 프로세서를 구비한 화상 처리장치.
제 8항에 있어서,
상기 적어도 한 개의 프로세서가 상기 메모리 디바이스 내부의 명령들을 실행하여,
상기 제2 실행 환경에서의 화상처리의 실행중에, 상기 제2 프로그래밍 언어로 기술된 제2 어플리케이션에 의한 새로운 화상처리가 요구되는 경우, 새로운 화상처리를 실행가능한 상기 제2 어플리케이션을 탐색하고,
상기 탐색된 제2 어플리케이션과 함께 유지되어 있는, 상기 제2 어플리케이션에 의한 새로운 화상처리를 실행할 때의 메모리 사용량과, 상기 제2 실행 환경에서 이미 실행중인 화상처리의 각각의 메모리 사용량을 취득하고,
취득된 각 화상처리의 메모리 사용량 및 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 상기 제2 실행 환경에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하고,
비교의 결과, 총 메모리 사용량이 허용 메모리 용량을 넘지 않는 경우에는, 새로운 화상처리를 실행하고, 총 메모리 사용량이 허용 메모리 용량을 넘는 경우에는, 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 화상 처리장치.
제 8항에 있어서,
상기 적어도 한 개의 프로세서가 상기 메모리 디바이스 내부의 명령들을 실행하여,
상기 제2 실행 환경에서의 화상처리의 실행중에, 상기 제2 프로그래밍 언어로 기술된 제2 어플리케이션에 의한 새로운 화상처리가 요구되는 경우, 상기 제2 어플리케이션에 의한 새로운 화상처리를 실행할 때의 메모리 사용량과, 상기 제2 실행 환경에서 이미 실행중인 화상처리의 각각의 메모리 사용량으로부터 병렬처리가 실행 가능한지 아닌지를 판단하고,
판단의 결과 상기 병렬처리가 실행가능하지 않은 경우에는, 새로운 화상처리와, 이미 실행중인 화상처리를 순차 실행하고, 상기 병렬처리가 실행가능한 경우에는, 새로운 화상처리와 이미 실행중인 화상처리를 병렬로 실행하는 화상 처리장치.
제 10항에 있어서,
상기 적어도 한 개의 프로세서가 상기 메모리 디바이스 내부의 명령들을 실행하여,
화상처리의 페이지마다 상기 병렬처리가 가능한지 아닌지를 동적으로 판단하는 화상 처리장치.
제 10항에 있어서,
상기 적어도 한 개의 프로세서가 상기 메모리 디바이스 내부의 명령들을 실행하여,
화상처리를 실행하기 위한 실행 메모리를 할당할 수 없는 경우에는, 화상처리를 실행할 수 없다는 것을 나타내는 에러를 송신하는 화상 처리장치.
제 8항에 있어서,
상기 요구원이 상기 에러를 수신한 경우, 상기 요구원은 소정 시간이 경과한 후에, 재차 새로운 화상처리를 요구하는 화상 처리장치.
제 1항에 있어서,
화상처리를 실행할 때의 상기 메모리 사용량은, 화상처리에 포함되는 함수마다 유지되어 있는 화상 처리장치.
1개 이상의 플러그인 어플리케이션에 의한 복수의 화상처리를 실행가능한 화상 처리장치의 제어방법으로서,
플러그인 어플리케이션에 의한 화상처리의 실행중에, 플러그인 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 플러그인 어플리케이션을 탐색하는 단계와,
상기 탐색된 플러그인 어플리케이션과 함께 유지되어 있는, 플러그인 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 플러그인 어플리케이션에 의해 이미 실행중인 화상처리 각각의 메모리 사용량을 취득하는 단계와,
상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 단계와,
비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하는 제어방법.
제1 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제1 실행 환경과, 제2 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제2 실행 환경에 있어서 복수의 화상처리를 실행가능한 화상 처리장치의 제어방법으로서,
상기 제1 실행 환경에서의 화상처리의 실행중에, 상기 제1 프로그래밍 언어로 기술된 제1 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 상기 제1 어플리케이션을 탐색하는 단계와,
탐색된 상기 제1 어플리케이션과 함께 유지되어 있는, 상기 제1 어플리케이션에 의한 새로운 화상처리를 실행할 때의 메모리 사용량과, 상기 제1 실행 환경에서 이미 실행중인 화상처리 각각의 메모리 사용량을 취득하는 단계와,
상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 상기 제1 실행 환경에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 단계와,
상기 비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하는 제어방법.
1개 이상의 플러그인 어플리케이션에 의한 복수의 화상처리를 실행가능한 화상 처리장치의 제어방법에 있어서의 각 단계를 컴퓨터에 실행시키기 위한 컴퓨터 프로그램을 기억한 비일시적인 컴퓨터 판독가능한 기억매체로서, 상기 제어방법은,
플러그인 어플리케이션에 의한 화상처리의 실행중에, 플러그인 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 플러그인 어플리케이션을 탐색하는 단계와,
상기 탐색된 플러그인 어플리케이션과 함께 유지되어 있는, 플러그인 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 플러그인 어플리케이션에 의해 이미 실행중인 화상처리 각각의 메모리 사용량을 취득하는 단계와,
상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 단계와,
비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하는 기억매체.
제1 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제1 실행 환경과, 제2 프로그래밍 언어로 기술된 프로그램을 실행하기 위한 제2 실행 환경에 있어서 복수의 화상처리를 실행가능한 화상 처리장치의 제어방법에 있어서의 각 단계를 컴퓨터에 실행시키기 위한 컴퓨터 프로그램을 기억한 비일시적인 컴퓨터 판독가능한 기억매체로서, 상기 제어방법은,
플러그인 어플리케이션에 의한 화상처리의 실행중에, 플러그인 어플리케이션에 의한 새로운 화상처리의 실행이 요구되는 경우, 상기 새로운 화상처리를 실행가능한 플러그인 어플리케이션을 탐색하는 단계와,
취득부에게, 상기 탐색된 플러그인 어플리케이션과 함께 유지되어 있는, 플러그인 어플리케이션에 의한 상기 새로운 화상처리를 실행할 때의 메모리 사용량과, 플러그인 어플리케이션에 의해 이미 실행중인 화상처리의 각각의 메모리 사용량을 취득하게 하는 단계와,
상기 취득된 각 화상처리의 메모리 사용량 및 상기 요구된 새로운 화상처리를 실행할 때의 메모리 사용량으로부터 얻어지는 총 메모리 사용량과, 플러그인 어플리케이션을 실행하는 프로세스에서의 사용이 허용되는 메모리 사용량을 나타내는 허용 메모리 용량을 비교하는 비교 단계와,
비교의 결과 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘지 않는 경우, 상기 새로운 화상처리를 실행하고, 상기 총 메모리 사용량이 상기 허용 메모리 용량을 넘는 경우에는, 상기 새로운 화상처리를 실행하지 않고, 요구원에 대하여 메모리 부족에 의해 상기 새로운 화상처리를 실행할 수 없다는 것을 나타내는 에러를 통지하는 단계를 포함하는 기억매체.
KR1020190054048A 2018-05-17 2019-05-09 화상 처리장치, 그 제어방법, 및 컴퓨터 판독가능한 기억매체 KR102543344B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2018095632 2018-05-17
JPJP-P-2018-095632 2018-05-17
JP2018150641A JP7186541B2 (ja) 2018-05-17 2018-08-09 画像処理装置、その制御方法、及びプログラム
JPJP-P-2018-150641 2018-08-09

Publications (2)

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

Family

ID=68727125

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190054048A KR102543344B1 (ko) 2018-05-17 2019-05-09 화상 처리장치, 그 제어방법, 및 컴퓨터 판독가능한 기억매체

Country Status (3)

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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006186777A (ja) * 2004-12-28 2006-07-13 Kyocera Mita Corp 画像形成装置及び画像形成プログラム
JP2007030252A (ja) * 2005-07-25 2007-02-08 Fuji Xerox Co Ltd 画像形成システムおよび割り込み処理方法および印刷装置
JP2012049971A (ja) * 2010-08-30 2012-03-08 Ricoh Co Ltd 画像処理装置、画像処理システム、画像処理方法及び画像処理プログラム
JP2016163108A (ja) * 2015-02-27 2016-09-05 ブラザー工業株式会社 ファクシミリ装置およびファクシミリ装置の印刷方法
JP2017027467A (ja) * 2015-07-24 2017-02-02 富士ゼロックス株式会社 管理装置、情報処理システム及びプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4003679B2 (ja) * 2003-03-31 2007-11-07 ブラザー工業株式会社 画像複写装置
JP4923602B2 (ja) * 2006-02-10 2012-04-25 富士ゼロックス株式会社 画像形成処理シミュレーション装置及び画像形成処理シミュレーション方法
JP5167897B2 (ja) 2007-04-27 2013-03-21 株式会社リコー 電子機器、情報処理方法、及び情報処理プログラム
JP4986144B2 (ja) 2007-05-25 2012-07-25 富士ゼロックス株式会社 印刷制御装置および画像形成システム
JP4561883B2 (ja) * 2008-06-19 2010-10-13 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置、プログラム及び画像形成処理方法
JP5213539B2 (ja) * 2008-06-19 2013-06-19 キヤノン株式会社 画像処理装置及び画像処理装置のメモリ管理方法
JP2011242890A (ja) 2010-05-14 2011-12-01 Hitachi Ltd リクエスト処理方法、リクエスト処理プログラム、および、リクエスト処理装置
JP2014149606A (ja) 2013-01-31 2014-08-21 Fujitsu Ltd 資源使用量集計プログラム、資源使用量集計方法及び資源使用量集計装置
JP2014241506A (ja) * 2013-06-11 2014-12-25 株式会社リコー 画像処理システム、情報処理装置、及び情報処理プログラム
CN104461655A (zh) * 2014-12-29 2015-03-25 北京网秦天下科技有限公司 用于自动选择应用安装位置的方法和移动终端
JP6961412B2 (ja) * 2016-07-26 2021-11-05 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、およびプログラム
US20180113735A1 (en) * 2016-10-21 2018-04-26 Mediatek Inc. Launch method for applications with early-time memory reclaim and electronic device
CN106648747B (zh) * 2016-11-14 2021-01-05 腾讯科技(深圳)有限公司 进程预加载处理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006186777A (ja) * 2004-12-28 2006-07-13 Kyocera Mita Corp 画像形成装置及び画像形成プログラム
JP2007030252A (ja) * 2005-07-25 2007-02-08 Fuji Xerox Co Ltd 画像形成システムおよび割り込み処理方法および印刷装置
JP2012049971A (ja) * 2010-08-30 2012-03-08 Ricoh Co Ltd 画像処理装置、画像処理システム、画像処理方法及び画像処理プログラム
JP2016163108A (ja) * 2015-02-27 2016-09-05 ブラザー工業株式会社 ファクシミリ装置およびファクシミリ装置の印刷方法
JP2017027467A (ja) * 2015-07-24 2017-02-02 富士ゼロックス株式会社 管理装置、情報処理システム及びプログラム

Also Published As

Publication number Publication date
JP2019204477A (ja) 2019-11-28
JP7186541B2 (ja) 2022-12-09
KR102543344B1 (ko) 2023-06-14
CN110572527A (zh) 2019-12-13
CN110572527B (zh) 2021-09-10

Similar Documents

Publication Publication Date Title
KR102348317B1 (ko) 화상 처리 장치, 화상 처리 장치를 제어하는 방법 및 비일시적 컴퓨터 판독 가능 저장 매체
US11140291B2 (en) Information processing apparatus, control method thereof, and storage medium
US9542228B2 (en) Image processing apparatus, control method thereof and storage medium
US7895373B2 (en) Electronic device for data access management
KR20200104216A (ko) 화상 형성 장치, 화상 형성 장치에 대한 제어 방법 및 컴퓨터 판독가능 저장 매체
US7911639B2 (en) Image forming device
KR102347702B1 (ko) 정보 처리 장치 및 그 제어 방법
US10922039B2 (en) Image processing apparatus, information processing method, and storage medium
JP4695348B2 (ja) カード型メモリ、画像形成装置、画像形成装置起動方法
JP2016167151A (ja) プログラム処理装置
JP6961412B2 (ja) 画像形成装置、画像形成装置の制御方法、およびプログラム
KR102543344B1 (ko) 화상 처리장치, 그 제어방법, 및 컴퓨터 판독가능한 기억매체
JP5166955B2 (ja) 情報処理装置、情報処理方法、及び、情報処理プログラム
US10992834B2 (en) Image processing apparatus, method for controlling the same, and computer-readable storage medium
JP5589582B2 (ja) 画像処理装置及びプログラム
JP7102248B2 (ja) 画像処理装置、情報処理方法及びプログラム
JP7080061B2 (ja) 画像処理装置
JP6627910B2 (ja) 電子機器、及び情報処理システム
JP2009020594A (ja) ジョブ管理装置、ジョブ管理方法、ジョブ管理プログラムならびに記憶媒体
JP7030426B2 (ja) 画像形成装置及びその制御方法、並びにプログラム
JP2005173888A (ja) 情報処理装置、プログラム復旧方法、プログラム復旧プログラム及び記録媒体

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