[go: up one dir, main page]

JP2008140042A - Image processing apparatus and program - Google Patents

Image processing apparatus and program Download PDF

Info

Publication number
JP2008140042A
JP2008140042A JP2006324657A JP2006324657A JP2008140042A JP 2008140042 A JP2008140042 A JP 2008140042A JP 2006324657 A JP2006324657 A JP 2006324657A JP 2006324657 A JP2006324657 A JP 2006324657A JP 2008140042 A JP2008140042 A JP 2008140042A
Authority
JP
Japan
Prior art keywords
image processing
module
unit
image
progress
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006324657A
Other languages
Japanese (ja)
Inventor
Takashi Igarashi
貴 五十嵐
Yusuke Sugimoto
裕介 杉本
Kazuyuki Itagaki
和幸 板垣
Yukio Kumazawa
幸夫 熊澤
Takashi Nagao
隆 長尾
Yoichi Isaka
洋一 井坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Corp
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Corp
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 Fuji Xerox Co Ltd, Fujifilm Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2006324657A priority Critical patent/JP2008140042A/en
Publication of JP2008140042A publication Critical patent/JP2008140042A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)

Abstract

【課題】画像処理部を構成する個々のモジュールの構成を変更することなく、画像処理の進行度合の検知を実現する。
【解決手段】前段から画像データを取得して画像処理を行い、画像処理を経た画像データを後段へ出力する画像処理モジュール38と、前段からの画像データをバッファに書き込ませ、バッファに記憶されている画像データを後段によって読み出させる処理を行うバッファモジュール40をパイプライン形態等で連結した画像処理部50の構築にあたり、画像処理部50における画像処理の進行度合の検知が指示されている場合は、挿入箇所における画像処理の進行度合を検知する進行度合検知モジュール48を画像処理モジュール38の次段に挿入し、画像処理の実行中に個々の検知モジュール48で検知された進行度合を収集し、処理部50全体としての進行度合を演算・表示する。
【選択図】図5
To detect the progress of image processing without changing the configuration of individual modules constituting an image processing unit.
An image processing module that obtains image data from the previous stage, performs image processing, and outputs the image data that has undergone image processing to the subsequent stage, and causes the image data from the previous stage to be written into a buffer and stored in the buffer. When the image processing unit 50 is instructed to detect the degree of progress of the image processing in the construction of the image processing unit 50 in which the buffer module 40 that performs processing for reading out the image data to be read later is connected in a pipeline form or the like The progress detection module 48 for detecting the progress of image processing at the insertion point is inserted in the next stage of the image processing module 38, and the progress detected by the individual detection modules 48 during the execution of the image processing is collected. The progress of the processing unit 50 as a whole is calculated and displayed.
[Selection] Figure 5

Description

本発明は画像処理装置及びプログラムに係り、特に、画像処理モジュールの前段及び後段の少なくとも一方にバッファモジュールが連結され、個々のモジュールがパイプライン形態又は有向非循環グラフ形態で連結されて成る画像処理部を構築して画像処理を行う画像処理装置、及び、コンピュータを前記画像処理装置として機能させるための画像処理プログラムに関する。   The present invention relates to an image processing apparatus and a program, and in particular, an image in which a buffer module is connected to at least one of a front stage and a rear stage of an image processing module, and individual modules are connected in a pipeline form or a directed acyclic graph form. The present invention relates to an image processing apparatus that constructs a processing unit and performs image processing, and an image processing program for causing a computer to function as the image processing apparatus.

入力された画像データに対して画像処理を行う画像処理装置や、画像を取扱可能なDTP(デスクトップ・パブリッシング)システム、入力された画像データが表す画像を記録材料に記録するプリントシステム等では、入力された画像データに対して拡大・縮小、回転、アフィン変換、色変換、フィルタ処理、画像合成等の各種の画像処理が行われる。これらの装置やシステムにおいて、入力される画像データの属性や画像データに対する画像処理の内容・手順・パラメータ等が固定されている場合には、専用に設計したハードウエアによって画像処理を行わせる場合もあるが、例えば色空間や1画素当たりのビット数が異なる様々な画像データが入力されたり、画像処理の内容や手順・パラメータ等が様々に変更される場合には、実行する画像処理をより柔軟に変更可能な構成が必要となる。   In an image processing device that performs image processing on input image data, a DTP (desktop publishing) system that can handle images, a print system that records an image represented by input image data on a recording material, etc. Various types of image processing such as enlargement / reduction, rotation, affine transformation, color conversion, filter processing, and image synthesis are performed on the image data. In these devices and systems, if the attributes of the input image data and the contents, procedures, parameters, etc. of the image processing for the image data are fixed, the image processing may be performed by specially designed hardware. However, for example, when various image data with different color space and the number of bits per pixel are input, or when the contents, procedures, and parameters of the image processing are changed variously, the image processing to be executed is more flexible. A changeable configuration is required.

このような要求を満たすために、例えば特許文献1には、プログラマブルな処理モジュールをパイプライン形態やDAG(Directed Acyclic Graph:有向非循環グラフ)形態に接続して、所望の画像処理を行うことを可能とする技術が提案されている。特許文献1に記載の技術では、複数のプログラマブル演算処理部の各々における演算処理の内容と、ネットワーク部による各プログラマブル演算処理部の接続形態を、ホストコントロール手段を通じて外部から自在に設定できるように構成することで、高速かつ高度な演算処理が可能で、機能変更や系統変更に対する自由度が高いデジタル映像信号処理装置を実現している。   In order to satisfy such a requirement, for example, in Patent Document 1, a programmable processing module is connected to a pipeline form or a DAG (Directed Acyclic Graph) form to perform desired image processing. Technologies that enable this have been proposed. The technology described in Patent Literature 1 is configured so that the contents of the arithmetic processing in each of the plurality of programmable arithmetic processing units and the connection form of each programmable arithmetic processing unit by the network unit can be freely set from the outside through the host control means. As a result, a digital video signal processing apparatus capable of high-speed and advanced arithmetic processing and having a high degree of freedom for function change and system change is realized.

また、上記に関連して特許文献2には、コンピュータとの情報の交換を行うコンピュータインターフェース手段、コード情報で表された画像情報をコンピュータインターフェース手段を介して受信し、該受信した画像情報を展開する画像展開手段、画像展開手段によって展開された画像を記録する画像記録手段、及び、画像展開手段によって展開された画像を通信回線を介して送受信する画像通信手段が直列的又は並列的に動作可能な複合画像処理システムにおいて、処理単位の管理番号、処理単位を実行する処理部の情報、処理単位の実行状況の情報、処理単位の内容を示す情報及び処理単位の処理中に発生したエラーの内容を示す情報からなるステータス情報を記憶、更新することで各処理手段の処理状況を監視し、監視の結果(ステータス情報)をユーザに通知する技術が開示されている。
特開平5−260373号公報 特開平8−289061号公報
In relation to the above, Patent Document 2 discloses computer interface means for exchanging information with a computer, receiving image information represented by code information via the computer interface means, and developing the received image information. An image developing means for recording, an image recording means for recording an image developed by the image developing means, and an image communication means for transmitting / receiving an image developed by the image developing means via a communication line are operable in series or in parallel. In the complex image processing system, the management number of the processing unit, the information of the processing unit that executes the processing unit, the information of the execution status of the processing unit, the information indicating the contents of the processing unit, and the content of the error that occurred during the processing of the processing unit By storing and updating status information consisting of information indicating the status of each processing means, the processing status of each processing means is monitored. Technique for notifying scan information) to a user is disclosed.
JP-A-5-260373 JP-A-8-289061

特許文献1に記載の技術のように、複数種の画像処理モジュールを任意に組み合わせて所望の画像処理を行う画像処理装置を構成する場合、以下に述べるような問題がある。すなわち、各画像処理モジュールには、実行する画像処理の種類や内容に応じて処理し易い単位(例えば画素単位、1ライン単位、複数ライン単位、面単位等)がある。しかし、各画像処理モジュールを任意の順番で連結し協調して処理することを可能とするためには、全ての画像処理モジュールの出力単位を揃えるか、或いは各画像処理モジュールが任意の入力単位に対応可能に構成する必要があり、各画像処理モジュールの構成が複雑になる。また、各画像処理モジュールは他の画像処理モジュールと連携して動作するため、各画像処理モジュールには、入力された画像データに対して実際に画像処理を行う部分以外に、自モジュールと連結された他の画像処理モジュールとの間で画像データを受け渡す処理を制御する部分も必要となり、各画像処理モジュールの構成は一層複雑になる。   When configuring an image processing apparatus that performs desired image processing by arbitrarily combining a plurality of types of image processing modules as in the technique described in Patent Document 1, there are the following problems. That is, each image processing module has a unit (for example, a pixel unit, a line unit, a plurality of line units, a surface unit, etc.) that can be easily processed according to the type and content of image processing to be executed. However, in order to be able to connect the image processing modules in an arbitrary order and process them in a coordinated manner, the output units of all the image processing modules are aligned, or each image processing module is set to an arbitrary input unit. It is necessary to be able to cope with it, and the configuration of each image processing module becomes complicated. In addition, since each image processing module operates in cooperation with other image processing modules, each image processing module is connected to its own module other than the part that actually performs image processing on the input image data. In addition, a part for controlling processing for transferring image data to and from other image processing modules is required, and the configuration of each image processing module is further complicated.

上記の問題は、画像処理モジュールの前後にバファを設けた構成を用い、個々の画像処理モジュールで各種の画像処理を行わせると共に、個々の画像処理モジュールを、実行する画像処理の種類や内容に応じた処理し易い単位ずつ前段のバッファから画像データを取得して画像処理を行うように構成することで解決可能である。   The above problems are caused by using a configuration in which a buffer is provided before and after the image processing module, causing each image processing module to perform various types of image processing, and changing each image processing module to the type and content of image processing to be performed. This can be solved by obtaining image data from the previous buffer for each unit that is easy to process, and performing image processing.

しかしながら、上記のように個々の画像処理モジュールの出力単位(画像データの取得単位や画像処理の実行単位)が揃っていない場合、複数の画像処理モジュールやバッファから成る画像処理部全体としての画像処理の進行度合を把握することが困難であるという問題がある。このため、画像処理部における画像処理の進行度合を表示したり、画像処理の処理完了時刻を予測したり、或いは、画像処理部における画像処理の進行度合に応じて、個々のモジュールに対応するプログラムの実行優先度や個々のモジュールへのリソースの割当を変更する等の制御を行うことが困難、という不都合が生じる。   However, when the output units (image data acquisition units and image processing execution units) of the individual image processing modules are not complete as described above, the image processing as the entire image processing unit including a plurality of image processing modules and buffers is performed. There is a problem that it is difficult to grasp the degree of progress. For this reason, a program corresponding to each module is displayed according to the progress of the image processing in the image processing unit, displaying the processing completion time of the image processing, or predicting the processing completion time of the image processing in the image processing unit. Inconvenience arises in that it is difficult to perform control such as changing the execution priority of resources and the allocation of resources to individual modules.

これに対し、前述の特許文献2には、各処理手段からの処理状況報告を基にステータス情報を逐次更新することで処理状況を把握・表示する技術が開示されているものの、特許文献2の記載の技術を適用して画像処理部における画像処理の進行度合を検知するためには、画像処理部を構成する個々の画像処理モジュールを、処理の進行度合が変化する毎に処理状況報告を出力する構成に変更する必要があり、画像処理部における画像処理の進行度合を検知可能な構成を実現するための開発負荷が非常に大きいという問題がある。   On the other hand, although the above-mentioned patent document 2 discloses a technique for grasping and displaying the processing status by sequentially updating the status information based on the processing status report from each processing means, In order to detect the progress of the image processing in the image processing unit by applying the described technology, the processing status report is output for each image processing module constituting the image processing unit every time the progress of the processing changes. There is a problem that the development load for realizing a configuration capable of detecting the progress of image processing in the image processing unit is very large.

本発明は上記事実を考慮して成されたもので、画像処理部を構成する個々のモジュールの構成を変更することなく、画像処理部における画像処理の進行度合を検知できる画像処理装置及び画像処理プログラムを得ることが目的である。   The present invention has been made in consideration of the above facts, and an image processing apparatus and image processing capable of detecting the degree of progress of image processing in the image processing unit without changing the configuration of individual modules constituting the image processing unit. The purpose is to get a program.

上記目的を達成するために請求項1記載の発明に係る画像処理装置は、自モジュールの前段から画像データを取得し、取得した画像データに所定の画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する一連の処理を単位処理量ずつ行う画像処理モジュールのプログラムと、自モジュールの前段から出力される画像データをバッファに書き込ませ、前記バッファに記憶されている画像データを自モジュールの後段によって読み出させる処理を行うバッファモジュールのプログラムと、自モジュールの前段からの画像データの出力回数又は前記画像データのデータ量を計数することで、自モジュールの挿入箇所における画像処理の進行度合を検知する進行度合検知モジュールのプログラムと、を各々記憶する記憶手段と、前記記憶手段に記憶されている各モジュールのプログラムを用いて、前記画像処理モジュールの前段及び後段の少なくとも一方に前記バッファモジュールが連結され、個々のモジュールがパイプライン形態又は有向非循環グラフ形態で連結されて成る画像処理部を構築すると共に、当該画像処理部を構成する1つ以上の画像処理モジュールの後段側に前記進行度合検知モジュールを挿入する構築手段と、前記構築手段によって前記画像処理部に挿入された個々の前記進行度合検知モジュールによって検知された画像処理の進行度合を各々収集し、収集した進行度合に基づいて前記画像処理部における画像処理の進行度合を検知する管理手段と、を含んで構成されている。   In order to achieve the above object, an image processing apparatus according to the first aspect of the present invention acquires image data from the previous stage of its own module, performs predetermined image processing on the acquired image data, and receives the image processing. Alternatively, an image processing module program for performing a series of processing for outputting a processing result of the image processing to the subsequent stage of the module for each unit processing amount and image data output from the preceding stage of the module are written in the buffer, By counting the number of times the image data is output from the previous stage of the own module or the data amount of the image data, the program of the buffer module that performs processing for reading the stored image data by the subsequent stage of the own module, Of a progress detection module for detecting the progress of image processing at the insertion point , And the buffer module is connected to at least one of the front and rear stages of the image processing module using the program of each module stored in the storage means. A construction means for constructing an image processing unit connected in a form or a directed acyclic graph form, and inserting the progress degree detection module at a subsequent stage of one or more image processing modules constituting the image processing unit; Collecting the degree of progress of the image processing detected by each of the degree-of-progress detection modules inserted into the image processing unit by the constructing means, and progressing of the image processing in the image processing unit based on the collected degree of progress And a management means for detecting the degree.

請求項1記載の発明では、自モジュールの前段から画像データを取得し、取得した画像データに所定の画像処理を行い、当該画像処理を経た画像データ又は画像処理の処理結果を自モジュールの後段へ出力する一連の処理を単位処理量ずつ行う画像処理モジュールのプログラムと、自モジュールの前段から出力される画像データをバッファに書き込ませ、バッファに記憶されている画像データを自モジュールの後段によって読み出させる処理を行うバッファモジュールのプログラムと、自モジュールの前段からの画像データの出力回数又は自モジュールの前段からの画像データのデータ量を計数することで、自モジュールの挿入箇所における画像処理の進行度合を検知する進行度合検知モジュールのプログラムが記憶手段に各々記憶されている。   According to the first aspect of the present invention, image data is acquired from the previous stage of the own module, predetermined image processing is performed on the acquired image data, and the image data subjected to the image processing or the processing result of the image processing is passed to the subsequent stage of the own module. The image processing module program that performs a series of output processing for each unit processing amount and the image data output from the previous stage of the own module are written to the buffer, and the image data stored in the buffer is read by the subsequent stage of the own module The degree of progress of image processing at the insertion point of the module is counted by counting the number of times the image data is output from the previous stage of the own module and the number of times the image data is output from the previous stage of the own module. The progress degree detection module program for detecting the .

また請求項1記載の発明では、構築手段により、記憶手段に記憶されている各モジュールのプログラムを用いて、画像処理モジュールの前段及び後段の少なくとも一方にバッファモジュールが連結され、個々のモジュールがパイプライン形態又は有向非循環グラフ形態で連結されて成る画像処理部が構築されると共に、当該画像処理部を構成する1つ以上の画像処理モジュールの後段側に進行度合検知モジュールが挿入される。そして、請求項1記載の発明に係る管理手段は、構築手段によって画像処理部に挿入された個々の進行度合検知モジュールによって検知された画像処理の進行度合を各々収集し、収集した進行度合に基づいて画像処理部における画像処理の進行度合を検知する。   According to the first aspect of the present invention, the buffer module is connected to at least one of the front stage and the rear stage of the image processing module by the construction means using the program of each module stored in the storage means, and each module is connected to the pipe. An image processing unit connected in the form of a line or a directed acyclic graph is constructed, and a progress degree detection module is inserted on the subsequent stage side of one or more image processing modules constituting the image processing unit. The management means according to the first aspect of the invention collects the degree of progress of the image processing detected by each progress degree detection module inserted into the image processing unit by the construction means, and based on the collected degree of progress. The degree of progress of image processing in the image processing unit is detected.

このように、請求項1記載の発明では、自モジュールの前段からの画像データの出力回数又は自モジュールの前段からの画像データのデータ量を計数することで、自モジュールの挿入箇所における画像処理の進行度合を検知する進行度合検知モジュールが、画像処理部を構成する1つ以上の画像処理モジュールの後段側に構築手段によって挿入され、個々の進行度合検知モジュールによって検知された画像処理の進行度合が管理手段によって各々収集され、画像処理部における画像処理の進行度合が検知されるので、画像処理部における画像処理の進行度合を検知するために、画像処理部を構成する個々のモジュール(画像処理モジュールやバッファモジュール)の構成を変更する必要が無くなる。従って、請求項1記載の発明によれば、画像処理部を構成する個々のモジュールの構成を変更することなく、画像処理部における画像処理の進行度合を検知することができる。   Thus, according to the first aspect of the present invention, by counting the number of times image data is output from the previous stage of the own module or the amount of image data from the previous stage of the own module, image processing at the insertion position of the own module is performed. The progress degree detection module for detecting the progress degree is inserted by the construction means on the rear side of one or more image processing modules constituting the image processing unit, and the progress degree of the image processing detected by each of the progress degree detection modules is determined. Since each image is collected by the management means and the progress of the image processing in the image processing unit is detected, each module (image processing module) constituting the image processing unit is detected in order to detect the progress of the image processing in the image processing unit. And the buffer module) need not be changed. Therefore, according to the first aspect of the invention, it is possible to detect the degree of progress of image processing in the image processing unit without changing the configuration of individual modules constituting the image processing unit.

なお、請求項1記載の発明において、画像処理部への進行度合検知モジュールの挿入及び進行度合の検知は常に行うようにしてもよいが、これに限られるものではなく、例えば請求項2に記載したように、構築手段は、画像処理部における画像処理の進行度合の検知が指示されている場合に、画像処理部への進行度合検知モジュールの挿入を行い、管理手段は、進行度合検知モジュールが挿入された画像処理部が構築手段によって構築された場合に、進行度合の収集及び画像処理部における画像処理の進行度合の検知を行うように構成してもよい。これにより、画像処理部における画像処理の進行度合の検知が不要な場合には、進行度合検知モジュールが画像処理部に挿入されず、管理手段による進行度合の収集及び検知も行われないことになり、処理効率を向上させることができる。   In the first aspect of the present invention, the insertion of the progress degree detection module into the image processing unit and the detection of the progress degree may be always performed. However, the present invention is not limited to this. As described above, the construction unit inserts the progress degree detection module into the image processing unit when the detection of the degree of progress of the image processing in the image processing unit is instructed. When the inserted image processing unit is constructed by the construction unit, the progress degree may be collected and the degree of image processing in the image processing unit may be detected. As a result, when it is not necessary to detect the degree of progress of image processing in the image processing unit, the degree of progress detection module is not inserted into the image processing unit, and the degree of progress is not collected and detected by the management means. , Processing efficiency can be improved.

また、請求項1記載の発明において、構築手段は、例えば請求項3に記載したように、画像処理部における画像処理の進行度合の検知が指示されている場合に、画像処理モジュールを構成する全ての画像処理モジュールの後段側に進行度合検知モジュールを各々挿入するか、又は、画像処理部を構成する画像処理モジュールのうち、複数の画像処理モジュールを含み各モジュールが協働して特定の画像処理を実現するモジュールのグループを単位として、その後段側に進行度合検知モジュールを各々挿入するように構成することができる。   Further, in the invention described in claim 1, the constructing means, as described in claim 3, for example, when the detection of the degree of progress of the image processing in the image processing unit is instructed, Each of the image processing modules is inserted into a subsequent stage, or a plurality of image processing modules are included among the image processing modules constituting the image processing unit, and each module cooperates to perform specific image processing. As a unit of a group of modules that realize the above, a progress degree detection module can be inserted in each subsequent stage.

また、請求項1記載の発明において、画像処理部に挿入された個々の進行度合検知モジュールによる、個々の進行度合検知モジュールの挿入箇所における画像処理の進行度合の検知は、具体的には、例えば請求項4に記載したように、管理手段が、画像処理部による処理対象の画像データのデータ量、特定の進行度合検知モジュールの前段側に存在する個々の画像処理モジュールにおける画像処理の内容及び特定の進行度合検知モジュールの前段の画像処理モジュールにおける単位処理量に基づいて、画像処理部が処理対象の画像データに対する処理を完了する迄の間の、前段の画像処理モジュールからの画像データの総出力回数を予め演算して通知する処理を、画像処理部に挿入された個々の進行度合検知モジュールに対して各々行い、画像処理部に挿入された個々の進行度合検知モジュールが、前段の画像処理モジュールから画像データが入力された回数を計数し、計数した回数を管理手段から予め通知された総出力回数で除算することによって行うことができる。   Further, in the first aspect of the invention, the detection of the degree of progress of the image processing at the insertion position of each progress degree detection module by the individual progress degree detection module inserted in the image processing unit is specifically, for example, According to a fourth aspect of the present invention, the management means includes the data amount of the image data to be processed by the image processing unit, the contents of the image processing in the individual image processing modules existing on the upstream side of the specific progress detection module, and the specification The total output of the image data from the preceding image processing module until the image processing unit completes the processing on the processing target image data based on the unit processing amount in the preceding image processing module of the progress degree detection module A process for calculating and notifying the number of times in advance is performed for each progress degree detection module inserted in the image processing unit, and the image is displayed. Each progress detection module inserted in the processing unit counts the number of times image data is input from the preceding image processing module, and divides the counted number by the total number of outputs notified in advance from the management means It can be carried out.

更に、請求項1記載の発明において、画像処理部に挿入された個々の進行度合検知モジュールによる、個々の進行度合検知モジュールの挿入箇所における画像処理の進行度合の検知は、具体的には、例えば請求項5に記載したように、管理手段が、画像処理部による処理対象の画像データのデータ量及び特定の進行度合検知モジュールの前段側に存在する個々の画像処理モジュールにおける画像処理の内容に基づいて、画像処理部が処理対象の画像データに対する処理を完了する迄の間の、前段の画像処理モジュールから出力される画像データの総データ量を予め演算して通知する処理を、画像処理部に挿入された個々の進行度合検知モジュールに対して各々行い、画像処理部に挿入された個々の進行度合検知モジュールは、前段の画像処理モジュールから入力された画像データのデータ量を計数し、計数したデータ量を管理手段から予め通知された総データ量で除算することによって行うことも可能である。   Furthermore, in the first aspect of the invention, the detection of the degree of progress of the image processing at the insertion position of each progress degree detection module by the individual progress degree detection module inserted in the image processing unit is specifically, for example, According to a fifth aspect of the present invention, the management means is based on the data amount of the image data to be processed by the image processing unit and the content of the image processing in each image processing module existing on the upstream side of the specific progress detection module. Until the image processing unit completes the processing on the image data to be processed, and the image processing unit is notified of the total amount of image data output from the preceding image processing module. This is performed for each inserted progress detection module, and each progress detection module inserted in the image processing unit is used for image processing in the previous stage. Counting the data amount of the image data input from Joules can be performed by dividing the total amount of data in advance notification from the management means counts the data amount.

また、請求項1乃至請求項5の何れかに記載の発明において、管理手段は、例えば請求項6に記載したように、検知した画像処理部における画像処理の進行度合を表示手段に表示させるように構成してもよい。これにより、画像処理部における画像処理の進行度合を利用者に認識させることができる。なお、本発明において、画像処理部における画像処理の進行度合を検知した結果は、上記のように表示手段に表示させることに限られるものではなく、画像処理部における画像処理の処理完了時刻を予測して表示手段に表示させたり、画像処理部における画像処理の進行度合に応じて、個々のモジュールに対応するプログラムの実行優先度や個々のモジュールへのリソースの割当を変更する等の制御を行う際に利用することも可能である。   Further, in the invention according to any one of claims 1 to 5, the management unit displays the progress degree of the image processing in the detected image processing unit on the display unit as described in claim 6, for example. You may comprise. Thereby, the user can be made to recognize the degree of progress of the image processing in the image processing unit. In the present invention, the result of detecting the degree of progress of image processing in the image processing unit is not limited to being displayed on the display unit as described above, and the processing completion time of image processing in the image processing unit is predicted. Display on the display means, and control such as changing the execution priority of the program corresponding to each module and the allocation of resources to each module according to the degree of progress of the image processing in the image processing unit. It is also possible to use it.

請求項7記載の発明に係る画像処理プログラムは、自モジュールの前段から画像データを取得し、取得した画像データに所定の画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する一連の処理を単位処理量ずつ行う画像処理モジュールのプログラムと、自モジュールの前段から出力される画像データをバッファに書き込ませ、前記バッファに記憶されている画像データを自モジュールの後段によって読み出させる処理を行うバッファモジュールのプログラムと、自モジュールの前段からの画像データの出力回数又は前記画像データのデータ量を計数することで、自モジュールの挿入箇所における画像処理の進行度合を検知する進行度合検知モジュールのプログラムと、を各々記憶する記憶手段と接続されたコンピュータを、前記記憶手段に記憶されている各モジュールのプログラムを用いて、前記画像処理モジュールの前段及び後段の少なくとも一方に前記バッファモジュールが連結され、個々のモジュールがパイプライン形態又は有向非循環グラフ形態で連結されて成る画像処理部を構築すると共に、当該画像処理部を構成する1つ以上の画像処理モジュールの後段側に前記進行度合検知モジュールを挿入する構築手段、及び、前記構築手段によって前記画像処理部に挿入された個々の前記進行度合検知モジュールによって検知された画像処理の進行度合を各々収集し、収集した進行度合に基づいて前記画像処理部における画像処理の進行度合を検知する管理手段として機能させる。   The image processing program according to the invention of claim 7 acquires image data from the previous stage of its own module, performs predetermined image processing on the acquired image data, and the image data subjected to the image processing or the processing result of the image processing The image processing module program for performing a series of processing for outputting to the subsequent stage of the own module for each unit processing amount and the image data output from the previous stage of the own module are written to the buffer, and the image data stored in the buffer is By counting the number of times the image data is output from the previous stage of the own module or the amount of the image data, the processing of the buffer module that performs processing to be read by the subsequent stage of the own module, the image processing at the insertion position of the own module is performed. Each of the program of the progress detection module for detecting the progress is stored. The buffer module is connected to at least one of the preceding stage and the succeeding stage of the image processing module using a program of each module stored in the storage means, and each module is connected to the pipeline connected to the storage means. A construction means for constructing an image processing unit connected in a form or a directed acyclic graph form, and inserting the progress degree detection module at a subsequent stage of one or more image processing modules constituting the image processing unit, And collecting the degree of progress of the image processing detected by each of the degree-of-progress detection modules inserted into the image processing unit by the construction means, and performing image processing in the image processing unit based on the collected degree of progress. It functions as a management means for detecting the degree of progress.

請求項7記載の発明に係る画像処理プログラムは、上記の記憶手段と接続されたコンピュータを、上記の構築手段及び管理手段として機能させるプログラムであるので、上記コンピュータが請求項7記載の発明に係る画像処理プログラムを実行することで、上記コンピュータが請求項1に記載の画像処理装置として機能することになり、請求項1記載の発明と同様に、画像処理部を構成する個々のモジュールの構成を変更することなく、画像処理部における画像処理の進行度合を検知することができる。   An image processing program according to a seventh aspect of the invention is a program that causes a computer connected to the storage means to function as the construction means and the management means. By executing the image processing program, the computer functions as the image processing apparatus according to claim 1, and, similarly to the invention according to claim 1, the configuration of individual modules constituting the image processing unit is configured. Without changing, it is possible to detect the degree of progress of the image processing in the image processing unit.

以上説明したように本発明は、自モジュールの前段からの画像データの出力回数又はデータ量を計数することで、自モジュールの挿入箇所における画像処理の進行度合を検知する進行度合検知モジュールを、画像処理部を構成する1つ以上の画像処理モジュールの後段側に挿入し、画像処理部に挿入した個々の進行度合検知モジュールによって検知された画像処理の進行度合を各々収集し、収集した進行度合に基づいて画像処理部における画像処理の進行度合を検知するようにしたので、画像処理部を構成する個々のモジュールの構成を変更することなく、画像処理部における画像処理の進行度合を検知できる、という優れた効果を有する。   As described above, according to the present invention, the progress degree detection module that detects the progress degree of the image processing at the insertion position of the own module by counting the number of output times or the amount of data of the image data from the previous stage of the own module, One of the image processing modules constituting the processing unit is inserted into the subsequent stage, and the degree of progress of the image processing detected by each of the degree of progress detection modules inserted in the image processing unit is collected, and the collected degree of progress is collected. Since the progress of image processing in the image processing unit is detected based on this, it is possible to detect the progress of image processing in the image processing unit without changing the configuration of individual modules constituting the image processing unit. Has an excellent effect.

以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図1には、本発明に係る画像処理装置として機能することが可能なコンピュータ10が示されている。なお、このコンピュータ10は、複写機、プリンタ、ファクシミリ装置、これらの機能を兼ね備えた複合機、スキャナ、写真プリンタ等のように内部で画像処理を行う必要のある任意の画像取扱機器に組み込まれていてもよいし、パーソナル・コンピュータ(PC)等の独立したコンピュータであってもよく、更にPDA(Personal Digital Assistant)や携帯電話機等の携帯機器に組み込まれたコンピュータであってもよい。   Hereinafter, an example of an embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 shows a computer 10 that can function as an image processing apparatus according to the present invention. The computer 10 is incorporated in any image handling apparatus that needs to perform image processing internally, such as a copying machine, a printer, a facsimile machine, a multifunction machine having these functions, a scanner, a photographic printer, or the like. Alternatively, it may be an independent computer such as a personal computer (PC), or may be a computer incorporated in a portable device such as a PDA (Personal Digital Assistant) or a cellular phone.

コンピュータ10はCPU12、DRAM又はSRAM等から成るメモリ14、表示部16、操作部18、記憶部20、画像データ供給部22及び画像出力部24を備えており、これらはバス26を介して互いに接続されている。コンピュータ10が上述したような画像取扱機器に組み込まれている場合、表示部16や操作部18としては、画像取扱機器に設けられたLCD等から成る表示パネルやテンキー等を適用することができる。また、コンピュータ10が独立したコンピュータである場合、表示部16や操作部18としては、当該コンピュータに接続されたディスプレイやキーボード、マウス等を適用することができる。また、記憶部20としてはHDD(Hard Disk Drive)が好適であるが、これに代えてフラッシュメモリ等の他の不揮発性記憶手段を用いることも可能である。   The computer 10 includes a CPU 12, a memory 14 including a DRAM or SRAM, a display unit 16, an operation unit 18, a storage unit 20, an image data supply unit 22, and an image output unit 24, which are connected to each other via a bus 26. Has been. When the computer 10 is incorporated in the image handling device as described above, a display panel, a numeric keypad, or the like composed of an LCD or the like provided in the image handling device can be applied as the display unit 16 and the operation unit 18. When the computer 10 is an independent computer, a display, a keyboard, a mouse, or the like connected to the computer can be applied as the display unit 16 or the operation unit 18. The storage unit 20 is preferably an HDD (Hard Disk Drive), but other nonvolatile storage means such as a flash memory can be used instead.

また、画像データ供給部22は処理対象の画像データを供給できるものであればよく、例えば紙や写真フィルム等の記録材料に記録されている画像を読み取って画像データを出力する画像読取部、通信回線を介して外部から画像データを受信する受信部、画像データを記憶する画像記憶部(メモリ14又は記憶部20)等を適用することができる。また、画像出力部24は画像処理を経た画像データ又は該画像データが表す画像を出力するものであればよく、例えば画像データが表す画像を紙や感光材料等の記録材料に記録する画像記録部、画像データが表す画像をディスプレイ等に表示する表示部、画像データを記録メディアに書き込む書込装置、画像データを通信回線を介して送信する送信部を適用することができる。また、画像出力部24は画像処理を経た画像データを単に記憶する画像記憶部(メモリ14又は記憶部20)であっても構わない。   The image data supply unit 22 only needs to be able to supply image data to be processed. For example, an image reading unit that reads an image recorded on a recording material such as paper or photographic film, and outputs the image data. A receiving unit that receives image data from the outside via a line, an image storage unit (memory 14 or storage unit 20) that stores image data, and the like can be applied. The image output unit 24 may be any unit that outputs image data that has undergone image processing or an image represented by the image data. For example, the image recording unit records an image represented by the image data on a recording material such as paper or a photosensitive material. A display unit that displays an image represented by image data on a display, a writing device that writes image data to a recording medium, and a transmission unit that transmits image data via a communication line can be applied. The image output unit 24 may be an image storage unit (memory 14 or storage unit 20) that simply stores image data that has undergone image processing.

図1に示すように、記憶部20には、CPU12によって実行される各種のプログラムとして、メモリ14等のリソースの管理やCPU12によるプログラムの実行の管理、コンピュータ10と外部との通信等を司るオペレーティングシステム30のプログラム、コンピュータ10を本発明に係る画像処理装置として機能させるための画像処理プログラム群34、CPU12が上記画像処理プログラム群を実行することで実現される画像処理装置に対して所望の画像処理を行わせる各種のアプリケーション32のプログラム(図1ではアプリケーションプログラム群32と表記)が各々記憶されている。   As shown in FIG. 1, the storage unit 20 includes various programs executed by the CPU 12, such as management of resources such as the memory 14, management of execution of programs by the CPU 12, and communication between the computer 10 and the outside. A program of the system 30, an image processing program group 34 for causing the computer 10 to function as an image processing apparatus according to the present invention, and a desired image for the image processing apparatus realized by the CPU 12 executing the image processing program group. Programs of various applications 32 to be processed (represented as application program group 32 in FIG. 1) are stored.

画像処理プログラム群34は、前述した各種の画像取扱機器や携帯機器を開発する際の開発負荷を軽減したり、PC等で利用可能な画像処理プログラムを開発する際の開発負荷を軽減することを目的として、各種の画像取扱機器や携帯機器、PC等の各種機器(プラットフォーム)で共通に使用可能に開発されたプログラムであり、本発明に係る画像処理プログラムに対応している。なお、画像処理プログラム群34を記憶する記憶部20は本発明に係る記憶手段に対応している。画像処理プログラム群34によって実現される画像処理装置は、アプリケーション32からの構築指示に従い、アプリケーション32が指示した画像処理を行う画像処理部を構築し、アプリケーション32からの実行指示に従い、前記画像処理部によって画像処理を行うが(詳細は後述)、画像処理プログラム群34は、所望の画像処理を行う画像処理部(所望の構成の画像処理部)の構築を指示したり、構築された画像処理部による画像処理の実行を指示するためのインタフェースをアプリケーション32に提供している。このため、内部で画像処理を行う必要のある任意の機器を新規開発する等の場合にも、前記画像処理を行うプログラムの開発に関しては、当該機器で必要とされる画像処理を上記のインタフェースを利用して画像処理プログラム群34に行わせるアプリケーション32を開発するのみで済み、実際に画像処理を行うプログラムを新たに開発する必要が無くなるので、開発負荷を軽減することができる。   The image processing program group 34 reduces the development load when developing the above-described various image handling devices and portable devices, and reduces the development load when developing an image processing program usable on a PC or the like. The purpose is a program developed so that it can be commonly used in various devices (platforms) such as various image handling devices, portable devices, and PCs, and corresponds to the image processing program according to the present invention. The storage unit 20 for storing the image processing program group 34 corresponds to the storage unit according to the present invention. The image processing apparatus realized by the image processing program group 34 constructs an image processing unit that performs image processing instructed by the application 32 in accordance with a construction instruction from the application 32, and executes the image processing unit in accordance with an execution instruction from the application 32. The image processing program group 34 instructs the construction of an image processing unit (an image processing unit having a desired configuration) for performing desired image processing, or the constructed image processing unit. The application 32 is provided with an interface for instructing execution of image processing according to the above. For this reason, even when newly developing an arbitrary device that needs to perform image processing internally, regarding the development of a program for performing the image processing, the above-described interface is used to perform the image processing required for the device. It is only necessary to develop the application 32 to be used and executed by the image processing program group 34, and it is not necessary to newly develop a program for actually performing image processing, so that the development load can be reduced.

また、画像処理プログラム群34によって実現される画像処理装置は、前述のように、アプリケーション32からの構築指示に従い、アプリケーション32が指示した画像処理を行う画像処理部を構築し、構築した画像処理部によって画像処理を行うので、例えば画像処理対象の画像データの色空間や1画素当たりのビット数が不定であったり、実行すべき画像処理の内容や手順・パラメータ等が不定である場合にも、アプリケーション32が画像処理部の再構築を指示することで、画像処理装置(画像処理部)によって実行される画像処理を、処理対象の画像データ等に応じて柔軟に変更することができる。   Further, as described above, the image processing apparatus realized by the image processing program group 34 constructs an image processing unit that performs image processing instructed by the application 32 according to the construction instruction from the application 32, and constructs the constructed image processing unit. Therefore, for example, when the color space of the image data to be processed and the number of bits per pixel are indefinite or the contents of the image processing to be executed, the procedure / parameter, etc. are indefinite, When the application 32 instructs to reconstruct the image processing unit, the image processing executed by the image processing apparatus (image processing unit) can be flexibly changed according to the image data to be processed.

以下、画像処理プログラム群34について説明する。図1に示すように、画像処理プログラム群34はモジュールライブラリ36と、処理構築部42のプログラムと、処理管理部46のプログラムに大別される。詳細は後述するが、本実施形態に係る処理構築部42は、アプリケーションからの指示により、例として図4に示すように、予め定められた画像処理を行う1つ以上の画像処理モジュール38と、個々の画像処理モジュール38の前段及び後段の少なくとも一方に配置され画像データを記憶するためのバッファを備えたバッファモジュール40と、がパイプライン形態又はDAG(Directed Acyclic Graph:有向非循環グラフ)形態で連結されて成る画像処理部50を構築する。画像処理部50を構成する個々の画像処理モジュールの実体はCPU12によって実行されCPU12で所定の画像処理を行わせるための第1プログラム、又は、CPU12によって実行されCPU12により図1に図示されていない外部の画像処理装置(例えば専用画像処理ボード等)に対する処理の実行を指示するための第2プログラムであり、上述したモジュールライブラリ36には、予め定められた互いに異なる画像処理(例えば入力処理やフィルタ処理、色変換処理、拡大・縮小処理、スキュー角検知処理、画像回転処理、画像合成処理、出力処理等)を行う複数種の画像処理モジュール38のプログラムが各々登録されている。以下では、説明を簡単にするために、画像処理部50を構成する個々の画像処理モジュールの実体が上記の第1プログラムであるものとして説明する。   Hereinafter, the image processing program group 34 will be described. As shown in FIG. 1, the image processing program group 34 is roughly divided into a module library 36, a process construction unit 42 program, and a process management unit 46 program. Although details will be described later, the processing construction unit 42 according to the present embodiment, according to an instruction from the application, as illustrated in FIG. 4 as an example, one or more image processing modules 38 that perform predetermined image processing, A buffer module 40 that is arranged in at least one of the preceding stage and the succeeding stage of each image processing module 38 and has a buffer for storing image data, and a pipeline form or a DAG (Directed Acyclic Graph) form An image processing unit 50 formed by linking is constructed. The entity of each image processing module constituting the image processing unit 50 is a first program executed by the CPU 12 and causing the CPU 12 to perform predetermined image processing, or an external unit that is executed by the CPU 12 and not shown in FIG. 2 is a second program for instructing execution of processing to the image processing apparatus (for example, a dedicated image processing board), and the module library 36 described above stores predetermined different image processing (for example, input processing and filter processing). , Color conversion processing, enlargement / reduction processing, skew angle detection processing, image rotation processing, image composition processing, output processing, and the like) are registered. Hereinafter, in order to simplify the description, it is assumed that the individual image processing modules constituting the image processing unit 50 are the first program.

個々の画像処理モジュール38は、例として図6(A)にも示すように、画像データに対する画像処理を所定の単位処理データ量ずつ行う画像処理エンジン38Aと、画像処理モジュール38の前段及び後段のモジュールとの画像データの入出力及び画像処理エンジン38Aの制御を行う制御部38Bから構成されている。個々の画像処理モジュール38における単位処理データ量は、画像の1ライン分、画像の複数ライン分、画像の1画素分、画像1面分等を含む任意のバイト数の中から、画像処理エンジン38Aが行う画像処理の種類等に応じて予め選択・設定されており、例えば色変換処理やフィルタ処理を行う画像処理モジュール38では単位処理データ量が1画素分とされ、拡大・縮小処理を行う画像処理モジュール38では単位処理データ量が画像の1ライン分又は画像の複数ライン分とされ、画像回転処理を行う画像処理モジュール38では単位処理データ量が画像1面分とされ、画像圧縮伸長処理を行う画像処理モジュール38では単位処理データ量が実行環境に依存するNバイトとされている。   As shown in FIG. 6A as an example, each image processing module 38 includes an image processing engine 38A that performs image processing on image data by a predetermined unit processing data amount, and a front stage and a rear stage of the image processing module 38. The control unit 38B performs input / output of image data with the module and controls the image processing engine 38A. The unit processing data amount in each image processing module 38 is the image processing engine 38A from an arbitrary number of bytes including one line of the image, a plurality of lines of the image, one pixel of the image, one surface of the image, and the like. Is selected and set in advance according to the type of image processing to be performed. For example, in the image processing module 38 that performs color conversion processing and filter processing, the unit processing data amount is one pixel, and the image to be enlarged / reduced is processed. In the processing module 38, the unit processing data amount is equivalent to one line of the image or a plurality of lines of the image, and in the image processing module 38 that performs image rotation processing, the unit processing data amount is equivalent to one image, and the image compression / decompression processing is performed. In the image processing module 38 to be performed, the unit processing data amount is N bytes depending on the execution environment.

また、モジュールライブラリ36には、画像処理エンジン38Aが実行する画像処理の種類が同一でかつ実行する画像処理の内容が異なる画像処理モジュール38も登録されている(図1では、この種の画像処理モジュールを「モジュール1」「モジュール2」と表記して示している)。例えば拡大・縮小処理を行う画像処理モジュール38については、入力された画像データを1画素おきに間引くことで50%に縮小する縮小処理を行う画像処理モジュール38、入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール38等の複数の画像処理モジュール38が各々用意されている。また、例えば色変換処理を行う画像処理モジュール38については、RGB色空間をCMY色空間へ変換する画像処理モジュール38やその逆へ変換する画像処理モジュール38、L*a*b*色空間等の他の色空間変換を行う画像処理モジュール38が各々用意されている。   The module library 36 also registers image processing modules 38 having the same type of image processing executed by the image processing engine 38A and different contents of the image processing executed (in FIG. 1, this type of image processing is performed). Modules are indicated as “module 1” and “module 2”). For example, with respect to the image processing module 38 that performs enlargement / reduction processing, the image processing module 38 that performs reduction processing to reduce the input image data to 50% by thinning out every other pixel is designated for the input image data. A plurality of image processing modules 38 such as an image processing module 38 that performs enlargement / reduction processing at the enlarged / reduced rate are prepared. For example, the image processing module 38 that performs color conversion processing includes an image processing module 38 that converts the RGB color space to the CMY color space, an image processing module 38 that converts the color space to the opposite, and an L * a * b * color space. Image processing modules 38 for performing other color space conversions are prepared.

また、画像処理モジュール38の制御部38Bは、画像処理エンジン38Aが単位処理データ量ずつ処理するために必要な画像データを入力するために、自モジュールの前段のモジュール(例えばバッファモジュール40)から画像データを単位読出データ量ずつ取得し、画像処理エンジン38Aから出力される画像データを単位書込データ量ずつ後段のモジュール(例えばバッファモジュール40)へ出力する(画像処理エンジン38Aで圧縮等のデータ量の増減を伴う画像処理が行われなければ単位書込データ量=単位処理データ量となる)か、画像処理エンジン38Aによる画像処理の結果を自モジュールの外部へ出力する(例えば画像処理エンジン38Aがスキュー角検知処理等の画像解析処理を行う場合、画像データに代えてスキュー角検知結果等の画像解析処理結果が出力されることがある)処理を行うが、モジュールライブラリ36には、画像処理エンジン38Aが実行する画像処理の種類及び内容が同一で、上記の単位処理データ量や単位読出データ量、単位書込データ量が異なる画像処理モジュール38も登録されている。例えば画像回転処理を行う画像処理モジュール38における単位処理データ量についても、前述した画像1面分に限られるものではなく、同じ画像回転処理を行いかつ単位処理データ量が互いに異なる(例えば画像の1ライン分や複数ライン分等の)複数の画像処理モジュール38がモジュールライブラリ36に含まれていても良い。   In addition, the control unit 38B of the image processing module 38 receives an image from a module (for example, the buffer module 40) in the previous stage of its own module in order to input image data necessary for the image processing engine 38A to process each unit processing data amount. Data is acquired for each unit read data amount, and image data output from the image processing engine 38A is output for each unit write data amount to a subsequent module (for example, the buffer module 40) (data amount such as compression by the image processing engine 38A). If the image processing with the increase / decrease is not performed, the unit writing data amount = the unit processing data amount) or the result of the image processing by the image processing engine 38A is output to the outside of the module (for example, the image processing engine 38A When performing image analysis processing such as skew angle detection processing, a scan is performed instead of image data. The image analysis processing result such as the angle detection result may be output). However, the module library 36 has the same type and content of the image processing executed by the image processing engine 38A, and the unit processing described above. Image processing modules 38 having different data amounts, unit read data amounts, and unit write data amounts are also registered. For example, the unit processing data amount in the image processing module 38 that performs image rotation processing is not limited to the one image plane described above, and the same image rotation processing is performed and the unit processing data amounts are different from each other (for example, one image). A plurality of image processing modules 38 (for a line, a plurality of lines, etc.) may be included in the module library 36.

また、モジュールライブラリ36に登録されている個々の画像処理モジュール38のプログラムは、画像処理エンジン38Aに相当するプログラムと制御部38Bに相当するプログラムから構成されているが、制御部38Bに相当するプログラムは部品化されており、個々の画像処理モジュール38のうち単位読出データ量及び単位書込データ量が同一の画像処理モジュール38は、画像処理エンジン38Aで実行される画像処理の種類や内容に拘わらず、制御部38Bに相当するプログラムが共通化されている(制御部38Bに相当するプログラムとして同一のプログラムが用いられている)。これにより、画像処理モジュール38のプログラムの開発にあたっての開発負荷が軽減される。   The program of each image processing module 38 registered in the module library 36 is composed of a program corresponding to the image processing engine 38A and a program corresponding to the control unit 38B, but a program corresponding to the control unit 38B. The image processing module 38 having the same unit read data amount and unit write data amount among the individual image processing modules 38 is concerned with the type and content of image processing executed by the image processing engine 38A. However, the program corresponding to the control unit 38B is shared (the same program is used as the program corresponding to the control unit 38B). Thereby, the development load in developing the program of the image processing module 38 is reduced.

なお、画像処理モジュール38の中には、入力される画像の属性が未知の状態では単位読出データ量及び単位書込データ量が確定しておらず、入力画像データの属性を取得し、取得した属性を所定の演算式に代入して演算することで単位読出データ量や単位書込データ量が確定するモジュールが存在しているが、この種の画像処理モジュール38については、単位読出データ量と単位書込データ量が互いに同一の演算式を用いて導出される画像処理モジュール38について、制御部38Bに相当するプログラムを共通化するようにすればよい。また、本実施形態に係る画像処理プログラム群34は、前述のように各種機器に実装可能であるが、画像処理プログラム群34のうちモジュールライブラリ36に登録する画像処理モジュール38の数や種類等については、画像処理プログラム群34を実装する各種機器で必要とされる画像処理に応じて、適宜追加・削除・入替等が可能であることは言うまでもない。   In the image processing module 38, the unit read data amount and the unit write data amount are not fixed when the input image attribute is unknown, and the input image data attribute is acquired and acquired. There is a module in which the unit read data amount and the unit write data amount are determined by substituting the attribute into a predetermined arithmetic expression, and this type of image processing module 38 has a unit read data amount and For the image processing module 38 in which the unit write data amount is derived using the same arithmetic expression, a program corresponding to the control unit 38B may be shared. The image processing program group 34 according to the present embodiment can be mounted on various devices as described above, but the number and types of image processing modules 38 registered in the module library 36 in the image processing program group 34 are described. Needless to say, addition, deletion, replacement, and the like can be appropriately performed in accordance with image processing required by various devices that implement the image processing program group 34.

また、画像処理部50を構成する個々のバッファモジュール40は、例として図6(B)にも示すように、バッファ40Aと、バッファモジュール40の前段及び後段のモジュールとの画像データの入出力及びバッファ40Aの管理を行うバッファ制御部40Bから構成されている。なお、バッファ40Aはコンピュータ10に設けられたメモリ14からオペレーティングシステム30及びリソース管理部46Bを通じて確保されたメモリ領域で構成される。個々のバッファモジュール40のバッファ制御部40Bもその実体はCPU12によって実行されるプログラムであり、モジュールライブラリ36にはバッファ制御部40Bのプログラムも登録されている(図1ではバッファ制御部40Bのプログラムを「バッファモジュール」と表記して示している)。   Further, as shown in FIG. 6B as an example, the individual buffer modules 40 constituting the image processing unit 50 are used to input / output image data between the buffer 40A and modules before and after the buffer module 40. The buffer control unit 40B manages the buffer 40A. The buffer 40A is composed of a memory area secured from the memory 14 provided in the computer 10 through the operating system 30 and the resource management unit 46B. The buffer control unit 40B of each buffer module 40 is also a program executed by the CPU 12, and the program of the buffer control unit 40B is also registered in the module library 36 (in FIG. 1, the program of the buffer control unit 40B is registered). "Buffer module")

また、画像処理部50における画像処理の進行度合の検知及び表示が指示されている場合には、例として図5(A)〜(C)にも示すように、画像処理部50(を構成する画像処理モジュール38及びバッファモジュール40の配列中)に進行度合検知モジュール48が挿入される(詳細は後述)。進行度合検知モジュール48もその実体はCPU12によって実行されるプログラムであり、モジュールライブラリ36には、進行度合検知モジュール48のプログラムも登録されている(図1では進行度合検知モジュール48のプログラムを「進行度合検知モジュール」と表記して示している)。   When the detection and display of the degree of progress of the image processing in the image processing unit 50 is instructed, the image processing unit 50 is configured as shown in FIGS. 5A to 5C as an example. A progress degree detection module 48 is inserted into the image processing module 38 and the buffer module 40 (details will be described later). The entity of the progress degree detection module 48 is a program executed by the CPU 12, and the program of the progress degree detection module 48 is also registered in the module library 36 (in FIG. "Degree detection module").

また、アプリケーション32からの指示に従って画像処理部50を構築する処理構築部42は、図1に示すように複数種のモジュール生成部44から構成されている。複数種のモジュール生成部44は互いに異なる画像処理に対応しており、アプリケーション32によって起動されることで、対応する画像処理を実現するための画像処理モジュール38及びバッファモジュール40から成るモジュール群を生成する処理を行う。なお、図1ではモジュール生成部44の一例として、モジュールライブラリ36に登録されている個々の画像処理モジュール38が実行する画像処理の種類に対応するモジュール生成部44を示しているが、個々のモジュール生成部44に対応する画像処理は、複数種の画像処理モジュール38によって実現される画像処理(例えばスキュー角検知処理と画像回転処理から成るスキュー補正処理)であってもよい。必要とされる画像処理が複数種の画像処理を組み合わせた処理である場合、アプリケーション32は複数種の画像処理の何れかに対応するモジュール生成部44を順次起動する。これにより、アプリケーション32によって順次起動されたモジュール生成部44により、必要とされる画像処理を行う画像処理部50が構築されることになる。なお処理構築部42は本発明に係る構築手段に対応している。   Further, the processing construction unit 42 that constructs the image processing unit 50 in accordance with an instruction from the application 32 includes a plurality of types of module generation units 44 as shown in FIG. The plural types of module generation units 44 support different image processing, and are activated by the application 32 to generate a module group including an image processing module 38 and a buffer module 40 for realizing the corresponding image processing. Perform the process. In FIG. 1, as an example of the module generation unit 44, the module generation unit 44 corresponding to the type of image processing executed by each image processing module 38 registered in the module library 36 is shown. The image processing corresponding to the generation unit 44 may be image processing realized by a plurality of types of image processing modules 38 (for example, skew correction processing including skew angle detection processing and image rotation processing). When the required image processing is processing combining a plurality of types of image processing, the application 32 sequentially activates the module generation unit 44 corresponding to any of the plurality of types of image processing. As a result, an image processing unit 50 that performs necessary image processing is constructed by the module generation unit 44 that is sequentially activated by the application 32. The processing construction unit 42 corresponds to the construction means according to the present invention.

また図1に示すように、処理管理部46は、画像処理部50における画像処理の実行を制御するワークフロー管理部46A、画像処理部50の各モジュールによるメモリ14や各種のファイル等のコンピュータ10のリソースの使用を管理するリソース管理部46B、及び、画像処理部50で発生したエラーを管理するエラー管理部46Cを含んで構成されている。エラー管理部46Cは、画像処理部50が画像処理を実行している途中でエラーが発生した場合に、発生したエラーの種別・発生箇所等のエラー情報を取得し、画像処理プログラム群34がインストールされたコンピュータ10が組み込まれている機器の種別や構成等を表す装置環境情報を記憶部20等から取得し、取得した装置環境情報が表す装置環境に応じたエラー通知方法を判断し、判断したエラー通知方法でエラーの発生を通知する処理を行う。なお、ワークフロー管理部46Aは本発明に係る管理手段に対応している。   As shown in FIG. 1, the process management unit 46 includes a workflow management unit 46 </ b> A that controls execution of image processing in the image processing unit 50, a memory 14 by each module of the image processing unit 50, and various files of the computer 10. It includes a resource management unit 46B that manages the use of resources, and an error management unit 46C that manages errors that have occurred in the image processing unit 50. When an error occurs while the image processing unit 50 is executing image processing, the error management unit 46C acquires error information such as the type and location of the error that has occurred, and the image processing program group 34 is installed. The device environment information representing the type or configuration of the device in which the computer 10 is incorporated is acquired from the storage unit 20 or the like, and an error notification method according to the device environment represented by the acquired device environment information is determined and determined. Performs processing to notify the occurrence of an error using the error notification method. The workflow management unit 46A corresponds to management means according to the present invention.

次に本実施形態の作用を説明する。画像処理プログラム群34が実装されている機器において、何らかの画像処理を行う必要のある状況になると、この状況が特定のアプリケーション32によって検知される。なお、画像処理を行う必要のある状況としては、例えば画像データ供給部22としての画像読取部によって画像を読み取り、画像出力部24としての画像記録部により記録材料に画像として記録するか、画像出力部24としての表示部に画像として表示させるか、画像出力部24としての書込装置により画像データを記録メディアに書き込むか、画像出力部24としての送信部により画像データを送信するか、画像出力部24としての画像記憶部に記憶させるジョブの実行がユーザによって指示された場合、或いは、画像データ供給部22としての受信部によって受信されるか、画像データ供給部22としての画像記憶部に記憶されている画像データに対して、上記の記録材料への記録、表示部への表示、記録メディアへの書き込み、送信、画像記憶部への記憶の何れかを行うジョブの実行がユーザによって指示された場合が挙げられる。また、画像処理を行う必要のある状況は上記に限られるものではなく、例えばユーザからの指示に応じてアプリケーション32が実行可能な処理の名称等を表示部16に一覧表示している状態で、実行対象の処理がユーザによって選択された等の場合であってもよい。   Next, the operation of this embodiment will be described. In a device in which the image processing program group 34 is installed, when a situation where it is necessary to perform some kind of image processing, this situation is detected by a specific application 32. In addition, as a situation where it is necessary to perform image processing, for example, an image is read by an image reading unit as the image data supply unit 22, and is recorded as an image on a recording material by an image recording unit as the image output unit 24, or image output Whether the image is displayed on the display unit as the unit 24, the image data is written on the recording medium by the writing device as the image output unit 24, the image data is transmitted by the transmission unit as the image output unit 24, or the image output When the execution of a job to be stored in the image storage unit as the unit 24 is instructed by the user, or received by the reception unit as the image data supply unit 22 or stored in the image storage unit as the image data supply unit 22 For the image data being recorded, recording on the recording material, display on the display unit, writing to the recording medium, transmission, Any execution of a job for the storage of the image storage unit include when instructed by the user. In addition, the situation where image processing needs to be performed is not limited to the above. For example, in a state where the names of processes that can be executed by the application 32 in accordance with an instruction from the user are displayed in a list on the display unit 16, For example, the execution target process may be selected by the user.

上記のように、何らかの画像処理を行う必要のある状況になったことを検知すると、アプリケーション32は、まず画像処理対象の画像データを供給する画像データ供給部22の種別を認識し(図2のステップ150も参照)、認識した種別がバッファ領域(メモリ14の一部領域)であった場合(図2のステップ152の判定が肯定された場合)には、画像データ供給部22として指定されたバッファ領域を含むバッファモジュール40を生成する(図2のステップ154も参照)。後述するバッファモジュール40の新規生成では、バッファモジュール40のバッファ制御部40Bのプログラムを実行するスレッド(プロセス又はオブジェクトでもよい:以下同様)を生成することでバッファ制御部40Bを生成し、生成されたバッファ制御部40Bによりバッファ40Aとして使用するメモリ領域が確保されることによって成されるが、このステップ154におけるバッファモジュール40の生成は、指定されたバッファ領域を既に確保されたバッファ40Aとして(バッファ制御部40Bに)認識させるパラメータを設定してバッファ制御部40Bを生成する処理を行うことによって成される。ここで生成されたバッファモジュール40は画像データ供給部22として機能する。   As described above, when detecting that it is necessary to perform some kind of image processing, the application 32 first recognizes the type of the image data supply unit 22 that supplies the image data to be processed (FIG. 2). If the recognized type is a buffer area (partial area of the memory 14) (if the determination in step 152 in FIG. 2 is affirmative), the image data supply unit 22 is designated. A buffer module 40 including a buffer area is generated (see also step 154 in FIG. 2). In the new generation of the buffer module 40 described later, the buffer control unit 40B is generated by generating a thread (which may be a process or an object; the same applies below) that executes a program of the buffer control unit 40B of the buffer module 40. The buffer controller 40B secures a memory area to be used as the buffer 40A. The generation of the buffer module 40 in step 154 is performed by using the designated buffer area as the already secured buffer 40A (buffer control). This is done by setting a parameter to be recognized by the unit 40B and generating a buffer control unit 40B. The buffer module 40 generated here functions as the image data supply unit 22.

続いてアプリケーション32は、上記と同様に、画像処理を行った画像データの出力先としての画像出力部24の種別を認識し(図2のステップ156も参照)、認識した種別がバッファ領域(メモリ14の一部領域)であった場合(図2のステップ158の判定が肯定された場合)は、画像出力部24として指定されたバッファ領域を含むバッファモジュール40を上記と同様にして生成する(図2のステップ160も参照)。ここで生成されたバッファモジュール40は画像出力部24として機能する。また、アプリケーション32は実行すべき画像処理の内容を認識し、実行すべき画像処理を、個々のモジュール生成部44に対応するレベルの画像処理の組み合わせに分解し、実行すべき画像処理を実現するために必要な画像処理の種類及び個々の画像処理の実行順序を判定する(図2のステップ162も参照)。なお、この判定は、例えば上記の画像処理の種類及び個々の画像処理の実行順序を、ユーザが実行を指示可能なジョブの種類と対応付けて予め情報として登録しておき、アプリケーション32は、実行が指示されたジョブの種類に対応する情報を読み出すことによって実現することができる。   Subsequently, as described above, the application 32 recognizes the type of the image output unit 24 as an output destination of the image data subjected to image processing (see also step 156 in FIG. 2), and the recognized type is the buffer area (memory 14 (partial region 14) (if the determination in step 158 of FIG. 2 is affirmative), the buffer module 40 including the buffer region designated as the image output unit 24 is generated in the same manner as described above ( (See also step 160 in FIG. 2). The buffer module 40 generated here functions as the image output unit 24. Further, the application 32 recognizes the contents of the image processing to be executed, decomposes the image processing to be executed into a combination of image processing at a level corresponding to each module generation unit 44, and realizes the image processing to be executed. Therefore, the type of image processing necessary for the purpose and the execution order of the individual image processing are determined (see also step 162 in FIG. 2). In this determination, for example, the type of image processing and the execution order of the individual image processing are registered in advance as information in association with the type of job that can be instructed by the user. Can be realized by reading out information corresponding to the type of job instructed.

そしてアプリケーション32は、上記で判定した画像処理の種類及び実行順序に基づいて、まず実行順序が1番の画像処理に対応するモジュール生成部44を起動(モジュール生成部44のプログラムを実行するスレッドを生成)した後に(図2のステップ164も参照)、起動したモジュール生成部44に対し、当該モジュール生成部44によるモジュール群の生成に必要な情報として、前記モジュール群に画像データを入力する入力モジュールを識別するための入力モジュール識別情報、前記モジュール群が画像データを出力する出力モジュールを識別するための出力モジュール識別情報、前記モジュール群に入力される入力画像データの属性を表す入力画像属性情報、実行すべき画像処理のパラメータを通知し、対応するモジュール群の生成を指示する(図2のステップ166も参照)。   Then, the application 32 first activates the module generation unit 44 corresponding to the image processing whose execution order is No. 1 based on the type and execution order of the image processing determined above (a thread for executing the program of the module generation unit 44). 2) (see also step 164 in FIG. 2), an input module for inputting image data to the module group as information necessary for generating the module group by the module generation unit 44 to the activated module generation unit 44 Input module identification information for identifying, output module identification information for identifying an output module from which the module group outputs image data, input image attribute information representing attributes of input image data input to the module group, Notifies the parameters of image processing to be executed and the corresponding module group Instructing generation (see step 166 of FIG. 2 also).

なお、上記の入力モジュールは、実行順序が1番目のモジュール群については画像データ供給部22が入力モジュールとなり、実行順序が2番目以降のモジュール群については前段のモジュール群の最終モジュール(通常はバッファモジュール40)が入力モジュールとなる。また、上記の出力モジュールについては、実行順序が最後のモジュール群では画像出力部24が出力モジュールとなるので、画像出力部24が出力モジュールとして指定されるが、その他のモジュール群では出力モジュールは未確定のためにアプリケーション32による指定は行われず、必要な場合はモジュール生成部44によって生成・設定される。また、入力画像属性や画像処理のパラメータについては、例えばユーザが実行を指示可能なジョブの種類と対応付けて予め情報として登録しておき、実行が指示されたジョブの種類に対応する情報を読み出すことでアプリケーション32が認識するようにしてもよいし、ユーザに指定させるようにしてもよい。   In the above input module, the image data supply unit 22 is the input module for the module group with the first execution order, and the last module (usually the buffer) for the module group with the second execution order or later. Module 40) is the input module. For the above output modules, the image output unit 24 is designated as the output module in the module group whose execution order is the last, so that the image output unit 24 is designated as the output module. Specification by the application 32 is not performed for confirmation, and it is generated and set by the module generation unit 44 when necessary. The input image attributes and image processing parameters are registered as information in advance in association with, for example, the type of job that the user can instruct execution, and information corresponding to the type of job instructed to execute is read out. Thus, the application 32 may be recognized, or the user may be designated.

一方、モジュール生成部44は、アプリケーション32によって起動されると図3に示すモジュール生成処理を行う(図2のステップ168も参照)。モジュール生成処理では、まずステップ200において、このモジュール生成部44で次に生成すべき画像処理モジュール38が有るか否かを判定する。生成すべき画像処理モジュール38が有る場合には、ステップ202で生成すべき画像処理モジュール38に入力される入力画像データの属性を表す入力画像属性情報を取得し、次のステップ204では、ステップ202で取得した情報が表す入力画像データの属性に照らしても先のステップ200で生成すべきと判定した画像処理モジュール38の生成が必要か否かを判定する。   On the other hand, when the module generation unit 44 is activated by the application 32, the module generation unit 44 performs a module generation process shown in FIG. 3 (see also step 168 in FIG. 2). In the module generation process, first, in step 200, it is determined whether or not there is an image processing module 38 to be generated next by the module generation unit 44. If there is an image processing module 38 to be generated, input image attribute information representing an attribute of the input image data input to the image processing module 38 to be generated is acquired in step 202. Whether the generation of the image processing module 38 determined to be generated in the previous step 200 is necessary even in light of the attribute of the input image data represented by the information acquired in step S200 is determined.

具体的には、例えば実行中のモジュール生成処理に対応するモジュール生成部44が色変換処理を行うモジュール群を生成するモジュール生成部であり、画像処理のパラメータにより出力画像データの色空間としてCMY色空間がアプリケーション32から指定された場合、ステップ202で取得した入力画像属性情報に基づいて入力画像データがRGB色空間のデータであることが判明した場合には、色空間処理を行う画像処理モジュール38としてRGB→CMYの色空間変換を行う画像処理モジュール38を生成する必要があるが、入力画像データがCMY色空間のデータであった場合には、入力画像データの属性と出力画像データの属性が色空間に関して一致しているので、色空間変換処理を行う画像処理モジュール38は生成不要と判断することができる。不要と判断された場合はステップ200に戻る。   Specifically, for example, a module generation unit 44 that generates a group of modules for which the module generation unit 44 corresponding to the module generation process being executed performs color conversion processing, and CMY colors as a color space of output image data according to image processing parameters When the space is designated by the application 32, if the input image data is found to be RGB color space data based on the input image attribute information acquired in step 202, the image processing module 38 that performs color space processing. It is necessary to generate an image processing module 38 that performs RGB → CMY color space conversion as follows. However, if the input image data is CMY color space data, the attributes of the input image data and the output image data are Since the color space is the same, the image processing module 38 that performs color space conversion processing does not need to be generated. It can be determined. If it is determined that it is unnecessary, the process returns to step 200.

なお、入力画像データの属性を取得する処理は、生成する画像処理モジュール38の前段にバッファモジュール40が存在している場合、当該バッファモジュール40に画像データの書き込みを行う更に前段の画像処理モジュール38から出力画像データの属性を取得することによって実現できる。   Note that in the process of acquiring the attributes of the input image data, when the buffer module 40 exists in the preceding stage of the image processing module 38 to be generated, the image processing module 38 in the preceding stage that writes the image data in the buffer module 40. This can be realized by acquiring the attribute of the output image data from.

次のステップ206では、生成する画像処理モジュール38の後段にバッファモジュール40が必要が否かを判定する。この判定は、画像処理モジュールの後段が出力モジュール(画像出力部24)である場合(例えば図4(A)〜(C)に示す画像処理部50における最後段の画像処理モジュール38を参照)や、例として図4(B)に示す画像処理部50においてスキュー角検知処理を行う画像処理モジュール38のように、画像処理モジュールが、画像データに対して解析等の画像処理を行いその結果を他の画像処理モジュール38へ出力するモジュールである場合は否定され、バッファモジュール40の生成を行うことなくステップ210へ移行するが、上記以外の場合は判定が肯定されてステップ208へ移行し、バッファ制御部40Bを起動する(バッファ制御部40Bのプログラムを実行するスレッドを生成する)ことで、画像処理モジュールの後段に連結するバッファモジュール40を生成する。   In the next step 206, it is determined whether or not the buffer module 40 is necessary after the image processing module 38 to be generated. This determination is made when the subsequent stage of the image processing module is an output module (image output unit 24) (see, for example, the last stage image processing module 38 in the image processing unit 50 shown in FIGS. 4A to 4C). As an example, like the image processing module 38 that performs the skew angle detection processing in the image processing unit 50 shown in FIG. If it is a module to be output to the image processing module 38, it is denied, and the process proceeds to step 210 without generating the buffer module 40. However, in other cases, the determination is affirmed and the process proceeds to step 208, where buffer control is performed. By starting the unit 40B (generating a thread for executing the program of the buffer control unit 40B), the image processing module is connected to the subsequent stage. To generate a buffer module 40.

次のステップ210では、前段のモジュール(例えばバッファモジュール40)の情報と後段のバッファモジュール40の情報、画像処理モジュール38に入力される入力画像データの属性、処理パラメータを与えて、画像処理モジュール38を生成する。なお、ステップ206で後段のバッファモジュール40が不要と判断された画像処理モジュール38に対しては後段のバッファモジュール40の情報は与えられず、また例えば50%縮小処理のように処理内容が固定的で特別な画像処理パラメータが必要ない場合には処理パラメータは与えられない。   In the next step 210, information on the preceding module (for example, the buffer module 40), information on the succeeding buffer module 40, attributes of input image data input to the image processing module 38, and processing parameters are given, and the image processing module 38 is given. Is generated. It should be noted that the information of the subsequent buffer module 40 is not given to the image processing module 38 for which it is determined in step 206 that the subsequent buffer module 40 is unnecessary, and the processing content is fixed, for example, 50% reduction processing. If no special image processing parameter is required, no processing parameter is given.

モジュール生成処理(ステップ210)では、モジュールライブラリ36に登録されており、画像処理モジュール38として利用可能な複数の候補モジュールの中から、ステップ202で取得した入力画像データの属性、及び、画像処理モジュール38で実行すべき処理パラメータに合致する画像処理モジュール38を選択する。例えば実行中のモジュール生成処理に対応するモジュール生成部44が色変換処理を行うモジュール群を生成するモジュール生成部であり、処理パラメータにより出力画像データの色空間としてCMY色空間がアプリケーション32から指定され、更に入力画像データがRGB色空間のデータであった場合には、モジュールライブラリ36に登録されている各種の色空間処理を行う複数種の画像処理モジュール38の中から、RGB→CMYの色空間変換を行う画像処理モジュール38が選択される。   In the module generation process (step 210), the attributes of the input image data acquired in step 202 from among a plurality of candidate modules registered in the module library 36 and usable as the image processing module 38, and the image processing module At 38, an image processing module 38 that matches the processing parameter to be executed is selected. For example, the module generation unit 44 corresponding to the module generation processing being executed is a module generation unit that generates a group of modules that perform color conversion processing. Further, when the input image data is RGB color space data, the RGB → CMY color space is selected from among a plurality of types of image processing modules 38 that perform various color space processing registered in the module library 36. The image processing module 38 that performs the conversion is selected.

また、画像処理モジュールが拡大・縮小処理を行う画像処理モジュール38であり、指定された拡大縮小率が50%以外であれば、入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール38が選択され、指定された拡大縮小率が50%であれば、拡大縮小率50%に特化した拡大縮小処理、すなわち入力された画像データを1画素おきに間引くことで50%に縮小する縮小処理を行う画像処理モジュール38が選択される。なお、画像処理モジュール38の選択は上記に限られるものではなく、例えば画像処理エンジン38Aによる画像処理における単位処理データ量が異なる画像処理モジュール38をモジュールライブラリ36に複数登録しておき、画像処理部50へ割当可能なメモリ領域のサイズ等の動作環境に応じて、適切な単位処理データ量の画像処理モジュール38を選択する(例えば上記サイズが小さくなるに従って単位処理データ量の小さい画像処理モジュール38を選択する等)ようにしてもよいし、アプリケーション32或いはユーザに選択させるようにしてもよい。   The image processing module 38 is an image processing module 38 that performs enlargement / reduction processing. If the designated enlargement / reduction ratio is other than 50%, the input image data is enlarged at the designated enlargement / reduction ratio. If the image processing module 38 for performing the reduction process is selected and the designated enlargement / reduction ratio is 50%, the enlargement / reduction process specialized for the enlargement / reduction ratio of 50%, that is, the input image data is set every other pixel. An image processing module 38 that performs a reduction process for reducing the image to 50% by thinning out is selected. The selection of the image processing module 38 is not limited to the above. For example, a plurality of image processing modules 38 having different unit processing data amounts in image processing by the image processing engine 38A are registered in the module library 36, and the image processing unit The image processing module 38 having an appropriate unit processing data amount is selected according to the operating environment such as the size of the memory area that can be allocated to 50 (for example, the image processing module 38 having a smaller unit processing data amount as the size decreases). Or the application 32 or the user may select it.

次のステップ212では、後段のバッファモジュール40のIDと生成した画像処理モジュール38のIDの組をワークフロー管理部46Aに通知する。このIDは、個々のモジュールを一意に判別できる情報であればよく、例えば個々のモジュールの生成順に付与した番号や、バッファモジュール40や画像処理モジュール38のオブジェクトのメモリ上でのアドレス等でも良い。ワークフロー管理部46Aに通知された情報は、テーブル形式やリスト形式、連想配列形式等でワークフロー管理部46Aの内部に保持され、後の処理で使われる。   In the next step 212, the workflow management unit 46A is notified of the set of the ID of the subsequent buffer module 40 and the ID of the generated image processing module 38. The ID may be information that can uniquely identify each module, and may be, for example, a number given in the order of generation of each module, an address of an object of the buffer module 40 or the image processing module 38 on a memory, or the like. Information notified to the workflow management unit 46A is held in the workflow management unit 46A in a table format, a list format, an associative array format, or the like and used in later processing.

ステップ212の処理が終了すると、モジュール生成部44は制御をステップ200に戻して次に生成すべき画像処理モジュールがあるか否かを判定する。なお、個々のモジュール生成部44は、対応する一定の画像処理を行うモジュール群を生成するので、この判定は、個々のモジュール生成部44毎にどのような画像処理モジュールをどのような接続関係で生成するかに関する情報を予め登録して読み出すか、またはモジュール生成部44を動作させるプログラム中に記述しておくことでも実現できる。例えば実行中のモジュール生成処理に対応するモジュール生成部44が、複数種の画像処理モジュール38によって実現される画像処理(例えばスキュー角検知処理を行う画像処理モジュール38と画像回転処理を行う画像処理モジュール38によって実現されるスキュー補正処理)を行うモジュール群を生成する場合には、2個以上の画像処理モジュール38を含むモジュール群が生成される。   When the process of step 212 is completed, the module generation unit 44 returns the control to step 200 and determines whether there is an image processing module to be generated next. Note that each module generation unit 44 generates a corresponding group of modules that perform certain image processing, and therefore this determination is made based on what image processing module is connected to each module generation unit 44 in what connection relationship. It can also be realized by pre-registering and reading information on whether to generate, or by describing it in a program for operating the module generation unit 44. For example, the module generation unit 44 corresponding to the module generation process being executed has image processing (for example, an image processing module 38 that performs skew angle detection processing and an image processing module that performs image rotation processing) realized by a plurality of types of image processing modules 38. In the case of generating a module group for performing skew correction processing realized by 38, a module group including two or more image processing modules 38 is generated.

また、目的とする画像処理(起動されたモジュール生成部44に対応する画像処理)を実現するモジュール群の生成が完了すると、ステップ200の判定が否定されてステップ214へ移行する。本実施形態では、画像処理部50が画像処理を行っている間に、画像処理部50における画像処理の進行度合を検知するか否かをユーザが選択可能とされており、ユーザによる上記選択の結果はユーザが操作部18を操作することで予め入力され、メモリ14上の所定の領域に情報として保持される。ステップ214では、前記所定の領域に保持されている情報を参照することで、画像処理部50における画像処理の進行度合の検知が指示されているか否か判定する。   When the generation of the module group that realizes the target image processing (image processing corresponding to the activated module generation unit 44) is completed, the determination in step 200 is negative and the processing proceeds to step 214. In the present embodiment, the user can select whether or not to detect the degree of progress of the image processing in the image processing unit 50 while the image processing unit 50 is performing image processing. The result is input in advance by the user operating the operation unit 18 and is stored as information in a predetermined area on the memory 14. In step 214, it is determined whether or not the detection of the degree of progress of the image processing in the image processing unit 50 is instructed by referring to the information held in the predetermined area.

判定が否定された場合はモジュール生成処理を終了するが、ステップ214の判定が肯定された場合はステップ216へ移行し、進行度合検知モジュール48を起動する(進行度合検知モジュール48のプログラムを実行するスレッドを生成する)ことで、前述のステップ200〜ステップ212で生成した画像処理モジュール38のうち、最も後段に位置している画像処理モジュール38の次段(当該画像処理モジュールの次段にバッファモジュール40が位置している場合は、画像処理モジュール38とバッファモジュールの間)に進行度合検知モジュール48を挿入する。また、次のステップ218では、ステップ216で挿入した進行度合検知モジュール48のIDをワークフロー管理部46Aに通知することで、進行度合検知モジュール48の挿入をワークフロー管理部46Aに認識させ、モジュール生成処理を終了する。   If the determination is negative, the module generation process is terminated. If the determination in step 214 is affirmative, the process proceeds to step 216, and the progress degree detection module 48 is activated (the program of the progress degree detection module 48 is executed). By generating a thread, among the image processing modules 38 generated in step 200 to step 212 described above, the next stage of the image processing module 38 positioned at the last stage (the buffer module in the next stage of the image processing module) When 40 is located, the progress degree detection module 48 is inserted between the image processing module 38 and the buffer module. In the next step 218, the workflow management unit 46A is notified of the ID of the progress degree detection module 48 inserted in step 216, so that the workflow management part 46A recognizes the insertion of the progress degree detection module 48, and module generation processing is performed. Exit.

アプリケーション32は、モジュール群の生成を指示したモジュール生成部44から、上記のようにしてモジュール群の生成完了が通知されると、図2のステップ162における判定の結果に基づいて、必要とされる画像処理を実現するために他の画像処理を行うモジュール群も生成する必要があるか否か判断する。必要とされる画像処理が複数種の画像処理を組み合わせた処理である場合、アプリケーション32は、個々の画像処理に対応する他のモジュール生成部44を起動してモジュール群の生成に必要な情報を通知する処理を順次行う(図2のステップ170,172も参照)。そして、順次起動されたモジュール生成部44によって上述したモジュール生成処理(図3)が順次行われる(図2のステップ174も参照)ことで、例として図4(A)〜(C)に示すように、必要とされる画像処理を行う画像処理部50が構築されることになる。   When the generation of the module group is notified as described above from the module generation unit 44 that has instructed generation of the module group as described above, the application 32 is required based on the determination result in step 162 of FIG. It is determined whether it is necessary to generate a module group that performs other image processing in order to realize image processing. When the required image processing is a combination of a plurality of types of image processing, the application 32 activates another module generation unit 44 corresponding to each image processing to obtain information necessary for generating a module group. The notification process is sequentially performed (see also steps 170 and 172 in FIG. 2). Then, the module generation processing (FIG. 3) described above is sequentially performed by the module generation unit 44 that is sequentially activated (see also step 174 of FIG. 2), and as an example, as shown in FIGS. 4 (A) to (C). In addition, an image processing unit 50 that performs necessary image processing is constructed.

また、起動された個々のモジュール生成部44は、前述のように、個々のモジュール生成部44に対応する画像処理を実現するモジュール群を生成するが、画像処理部50における画像処理の進行度合の検知が指示されていた場合には、個々のモジュール生成部44によって生成されるモジュール群(請求項3に記載の「単一又は複数の画像処理モジュールを含み各モジュールが協働して特定の画像処理を実現するモジュールのグループ」に相当)を単位として、例として図5(A)〜(C)にも示すように、個々のモジュール群における最も後段の画像処理モジュール38の次段に進行度合検知モジュール48が各々挿入された画像処理部50が構築される。   In addition, the activated individual module generation unit 44 generates a module group that realizes image processing corresponding to the individual module generation unit 44 as described above, but the degree of progress of image processing in the image processing unit 50 is increased. When detection is instructed, a module group generated by each module generation unit 44 (“a single image or a plurality of image processing modules including each image processing module cooperates to specify a specific image”). As an example, as shown in FIGS. 5A to 5C, the degree of progress is set to the next stage of the last image processing module 38 in each module group. An image processing unit 50 into which the detection modules 48 are inserted is constructed.

なお、本実施形態では、特定の画像処理の実行頻度が高い等の場合に、アプリケーション32が、特定の画像処理を行う画像処理部50を生成するための複数種のモジュール生成部44に対し、特定の画像処理を行う画像処理部50を生成させた後も処理終了を指示しないことでスレッドとして残しておき、特定の画像処理を行う必要が生ずる毎に、スレッドとして残しておいた各モジュール生成部44に対してモジュール群の生成を順次指示することで、特定の画像処理を行う画像処理部50を再生成させることも可能とされている。これにより、特定の画像処理を行う必要が生ずる毎に対応する各モジュール生成部44を各々起動する処理が不要となり、特定の画像処理を行う画像処理部50を再生成するのに要する時間を短縮することができる。   In the present embodiment, when the execution frequency of specific image processing is high, for example, the application 32 generates a plurality of types of module generation units 44 for generating the image processing unit 50 that performs specific image processing. Even after generating the image processing unit 50 that performs specific image processing, each module is generated as a thread each time it is necessary to perform specific image processing by not instructing the end of processing to leave it as a thread. It is also possible to regenerate the image processing unit 50 that performs specific image processing by sequentially instructing the unit 44 to generate a module group. This eliminates the need to start each of the corresponding module generation units 44 every time specific image processing needs to be performed, thereby reducing the time required to regenerate the image processing unit 50 that performs specific image processing. can do.

ところで、画像処理モジュール38の制御部38Bは、モジュール生成部44によって起動されると画像処理モジュール38の初期化を行う。この初期化では、まずモジュール生成部44から与えられた自モジュールの前段及び後段のモジュールの情報を記憶する。続いて自モジュールの前段のモジュールを判定する。自モジュールの前段にモジュールが存在していない場合には何ら処理を行わないが、前段のモジュールがバッファモジュール40以外、例えば画像データ供給部22や特定のファイル等である場合には、必要に応じてその初期化処理を行う。また、自モジュールの前段にバッファモジュール40が存在している場合には、前段のバッファモジュール40からの1回の画像データの読み出しによって取得する画像データのデータ量(単位読出データ量)を認識する。この単位読出データ量は、自モジュールの前段のバッファモジュール40の数が1個であれば1個だけであるが、例えば図4(C)に示す画像処理部50において画像合成処理を行う画像処理モジュール38のように、前段のバッファモジュール40の数が複数で、複数のバッファモジュール40から各々取得した画像データを用いて画像処理エンジン38Aが画像処理を行う等の場合、前段の個々のバッファモジュール40に対応する単位読出データ量は、自モジュールの画像処理エンジン38Aが行う画像処理の種類や内容、前段のバッファモジュール40の数等に応じて定まる。そして、認識した単位読出データ量を、前段に存在している全てのバッファモジュール40へ通知することで、前段に存在している全てのバッファモジュール40に単位読出データ量を設定する(図6(A)の(1)も参照)。   Incidentally, the control unit 38B of the image processing module 38 initializes the image processing module 38 when activated by the module generation unit 44. In this initialization, first, the information of the modules before and after the own module given from the module generation unit 44 is stored. Subsequently, the module preceding the own module is determined. No processing is performed when no module exists in the previous stage of the own module, but if the previous module is other than the buffer module 40, for example, the image data supply unit 22, a specific file, or the like, as necessary. The initialization process is performed. When the buffer module 40 exists in the previous stage of the own module, the data amount (unit read data amount) of the image data acquired by reading the image data from the previous buffer module 40 once is recognized. . This unit read data amount is only one if the number of buffer modules 40 in the preceding stage of the own module is one. For example, the image processing unit 50 performs image composition processing in the image processing unit 50 shown in FIG. When there are a plurality of buffer modules 40 in the previous stage and the image processing engine 38A performs image processing using the image data respectively acquired from the plurality of buffer modules 40 as in the module 38, the individual buffer modules in the previous stage The unit read data amount corresponding to 40 is determined according to the type and content of image processing performed by the image processing engine 38A of the own module, the number of buffer modules 40 in the previous stage, and the like. Then, the unit read data amount is set in all the buffer modules 40 existing in the preceding stage by notifying the recognized unit read data amount to all the buffer modules 40 existing in the preceding stage (FIG. 6 ( (See also A) (1)).

次に、自モジュールの後段のモジュールを判定する。自モジュールの後段のモジュールがバッファモジュール40以外、例えば画像出力部24や特定のファイル等の場合には、必要に応じてその初期化処理(例えば後段のモジュールが画像出力部24であれば、単位書込データ量に相当するデータ量ずつ画像データを出力することを通知する処理等)を行う。また、後段のモジュールがバッファモジュール40であれば、1回の画像データの書き込みにおける画像データのデータ量(単位書込データ量)を認識し、後段のバッファモジュールに当該単位書込データ量を設定(図6(A)の(2)も参照)する。そして、当該画像処理モジュール38の初期化の完了をモジュール生成部44に通知して処理を終了する。   Next, the module following the own module is determined. If the module subsequent to the own module is other than the buffer module 40, such as the image output unit 24 or a specific file, the initialization process is performed as necessary (for example, if the subsequent module is the image output unit 24, the unit For example, processing for notifying output of image data by the amount of data corresponding to the amount of write data). If the subsequent module is the buffer module 40, the amount of image data (unit write data amount) in one image data write is recognized, and the unit write data amount is set in the subsequent buffer module. (See also (2) in FIG. 6A). Then, the completion of initialization of the image processing module 38 is notified to the module generation unit 44, and the process is terminated.

一方、画像処理部50を構成する個々のバッファモジュール40のバッファ制御部40Bは、モジュール生成部44又はアプリケーション32によって起動されるとバッファモジュール40の初期化を行う。バッファモジュール40の初期化では、まず自モジュールの前段の画像処理モジュール38から単位書込データ量が通知されるか又は自モジュールの後段の画像処理モジュール38から単位読出データ量が通知される毎に、通知された単位書込データ量又は単位読出データ量を記憶する(図6(B)の(1),(2)も参照)。   On the other hand, the buffer control unit 40B of each buffer module 40 constituting the image processing unit 50 initializes the buffer module 40 when activated by the module generation unit 44 or the application 32. In the initialization of the buffer module 40, the unit write data amount is first notified from the image processing module 38 in the previous stage of the own module or the unit read data amount is notified from the image processing module 38 in the subsequent stage of the own module. The notified unit write data amount or unit read data amount is stored (see also (1) and (2) in FIG. 6B).

自モジュールと連結されている全ての画像処理モジュール38から単位書込データ量又は単位読出データ量が通知されると、自モジュールと連結されている個々の画像処理モジュール38によって各々設定された単位書込データ量及び単位読出データ量に基づいて、自モジュールのバッファ40Aの管理単位である単位バッファ領域のサイズを決定し、決定した単位バッファ領域のサイズを記憶する。単位バッファ領域のサイズとしては、自モジュールに設定された単位書込データ量及び単位読出データ量のうちの最大値が好適であるが、単位書込データ量を設定してもよいし、単位読出データ量(自モジュールの後段に複数の画像処理モジュール38が連結されている場合は、個々の画像処理モジュール38によって各々設定された単位読出データ量の最大値)を設定してもよいし、単位書込データ量と単位読出データ量(の最大値)の最小公倍数を設定してもよいし、この最小公倍数が所定値未満であれば最小公倍数を、最小公倍数が所定値以上であれば別の値(例えば上述した単位書込データ量及び単位読出データ量のうちの最大値、単位書込データ量、単位読出データ量(の最大値)の何れか)を設定するようにしてもよい。   When the unit write data amount or the unit read data amount is notified from all the image processing modules 38 connected to the own module, the unit documents set by the individual image processing modules 38 connected to the own module respectively. The size of the unit buffer area, which is the management unit of the buffer 40A of the own module, is determined based on the embedded data amount and the unit read data amount, and the determined size of the unit buffer area is stored. As the size of the unit buffer area, the maximum value of the unit write data amount and the unit read data amount set in the own module is suitable. However, the unit write data amount may be set or the unit read data amount may be set. The amount of data (the maximum value of the unit read data amount set by each image processing module 38 when a plurality of image processing modules 38 are connected to the subsequent stage of the own module) may be set. The least common multiple of the write data amount and the unit read data amount (the maximum value thereof) may be set. If the least common multiple is less than the predetermined value, the least common multiple is set. A value (for example, any one of the above-mentioned unit write data amount and unit read data amount, the unit write data amount, and the unit read data amount (the maximum value)) may be set.

また、自モジュールがアプリケーション32によって生成され、画像データ供給部22又は画像出力部24として機能するバッファモジュール40であった場合には、自モジュールのバッファ40Aとして用いるメモリ領域が既に存在しているので、先に決定した単位バッファ領域のサイズを、自モジュールのバッファ40Aとして用いる既設のメモリ領域のサイズに変更する。更に、自モジュールの後段の個々の画像処理モジュール38に対応する有効データポインタを各々生成し、生成した有効データポインタを初期化する。この有効データポインタは、自モジュールの前段の画像処理モジュールによって自モジュールのバッファ40Aに書き込まれた画像データのうち、対応する後段の画像処理モジュール38によって読み出されていない画像データ(有効データ)の先頭位置(次の読出開始位置)と末尾位置を各々指し示すポインタであり、初期化時には通常、有効データが存在していないことを意味する特定の情報が設定されるが、自モジュールが自モジュールがアプリケーション32によって生成され、画像データ供給部22として機能するバッファモジュール40であれば、自モジュールのバッファ40Aとして用いるメモリ領域には既に画像処理対象の画像データが書き込まれていることがあり、この場合は当該画像データの先頭位置及び末尾位置が後段の個々の画像処理モジュール38に対応する有効データポインタに各々設定される。以上の処理によりバッファモジュール40の初期化が完了し、バッファ制御部40Bは初期化の完了をワークフロー管理部46Aへ通知する。   Further, when the own module is generated by the application 32 and is the buffer module 40 functioning as the image data supply unit 22 or the image output unit 24, the memory area used as the buffer 40A of the own module already exists. The size of the unit buffer area determined previously is changed to the size of the existing memory area used as the buffer 40A of the own module. Further, valid data pointers corresponding to the individual image processing modules 38 subsequent to the module are generated, and the generated valid data pointers are initialized. This valid data pointer is the image data (valid data) that has not been read by the corresponding subsequent image processing module 38 among the image data written in the buffer 40A of the own module by the preceding image processing module of the own module. These pointers point to the start position (next read start position) and the end position, respectively. At initialization, specific information indicating that there is no valid data is usually set. In the case of the buffer module 40 that is generated by the application 32 and functions as the image data supply unit 22, the image data to be processed may be already written in the memory area used as the buffer 40A of the own module. Indicates that the start and end positions of the image data are Each set of the valid data pointers corresponding to the individual image processing module 38. With the above processing, the initialization of the buffer module 40 is completed, and the buffer control unit 40B notifies the workflow management unit 46A of the completion of initialization.

一方、アプリケーション32は、順次起動したモジュール生成部44によって前述のモジュール生成処理が順次行われることで、必要とされる画像処理を行う画像処理部50の構築が完了すると、ワークフロー管理部46Aのプログラムを実行するスレッドを起動することで、ワークフロー管理部46Aに対して画像処理部50による画像処理の実行を指示する。   On the other hand, when the construction of the image processing unit 50 that performs the required image processing is completed by the above-described module generation processing being sequentially performed by the module generation unit 44 that is sequentially activated, the application 32 starts the program of the workflow management unit 46A. Is activated to instruct the workflow management unit 46A to execute image processing by the image processing unit 50.

処理管理部46のワークフロー管理部46Aは、プログラムが起動されることで図10に示すような画像処理部制御処理を行う。ワークフロー管理部46Aは画像処理部制御処理において、画像処理部50を構成する画像処理モジュール38のうちの所定の画像処理モジュール38に処理要求を入力することで、画像処理部50による画像処理を並列に行わせるが、以下では画像処理部50全体の動作説明に先立ち、個々のバッファモジュール40のバッファ制御部40Bによって行われる初期化処理完了以降の処理、個々の画像処理モジュール38の制御部38Bによって行われる画像処理モジュール制御処理について順に説明する。   The workflow management unit 46A of the processing management unit 46 performs an image processing unit control process as shown in FIG. 10 when the program is started. In the image processing unit control process, the workflow management unit 46A inputs a processing request to a predetermined image processing module 38 among the image processing modules 38 constituting the image processing unit 50, so that the image processing by the image processing unit 50 is performed in parallel. However, in the following, prior to the description of the overall operation of the image processing unit 50, the processing after the completion of the initialization processing performed by the buffer control unit 40B of each buffer module 40, the control unit 38B of each image processing module 38, The image processing module control processing to be performed will be described in order.

本実施形態では、画像処理モジュール38が後段のバッファモジュール40に画像データを書き込む場合には、画像処理モジュール38からバッファモジュール40へ書込要求が入力され、画像処理モジュール38が前段のバッファモジュール40から画像データを読み出す場合には、画像処理モジュール38からバッファモジュール40へ読出要求が入力される。前段の画像処理モジュール38からの書込要求がバッファモジュール40に入力された場合(及び、後述するタイマがタイムアウトした場合)は、以下で説明するデータ書込処理がバッファ制御部40Bによって実行される。   In this embodiment, when the image processing module 38 writes image data to the subsequent buffer module 40, a write request is input from the image processing module 38 to the buffer module 40, and the image processing module 38 receives the previous buffer module 40. When reading image data from the image processing module 38, a read request is input from the image processing module 38 to the buffer module 40. When a write request from the preceding image processing module 38 is input to the buffer module 40 (and a timer described later times out), a data writing process described below is executed by the buffer control unit 40B. .

データ書込処理では、まず自モジュールのバッファ40Aが他のスレッドによって使用中か否か判定する。バッファ40Aに対してデータの書き込みと非同期にデータの読み出しも行われるので、バッファ40Aが使用中の場合は入力された書込要求情報をワークメモリ等に保管し、タイマをスタートさせてデータ書込処理を一旦終了する。なお、以降の処理では、入力された書込要求情報を処理対象の情報とするが、タイマがタイムアウトしてデータ書込処理が起動された場合には、過去に入力されてワークメモリ等に保管している書込要求情報をワークメモリ等から取り出し、取り出した書込要求情報を処理対象の情報として以降の処理を行う。   In the data writing process, first, it is determined whether or not the buffer 40A of the own module is being used by another thread. Since data is also read from the buffer 40A asynchronously with the data write, when the buffer 40A is in use, the input write request information is stored in a work memory or the like, and a timer is started to write the data. The process is temporarily terminated. In the subsequent processing, the input write request information is used as information to be processed. However, if the timer has timed out and the data write processing is started, it is input in the past and stored in the work memory or the like. The write request information being taken out is extracted from the work memory or the like, and the subsequent processing is performed using the taken write request information as information to be processed.

続いてデータ書込処理では、確保すべきメモリ領域のサイズとして単位書込データ量をリソース管理部46Bに通知し、書込用として用いるメモリ領域(書込用バッファ領域:図7(B)も参照)をリソース管理部46Bを介して取得する(リソース管理部における処理については後述する)。次に、自モジュールのバッファ40Aを構成する保管用の単位バッファ領域の中に、単位書込データ量以上の空き領域が有る単位バッファ領域(単位書込データ量の画像データを書き込み可能な単位バッファ領域)が存在しているか否か判定する。モジュール生成部44によって生成されたバッファモジュール40は、当初はバッファ40Aとして用いるメモリ領域(単位バッファ領域)が確保されておらず、メモリ領域の不足が生ずる度に単位バッファ領域を単位として確保されるので、バッファモジュール40に最初に書込要求が入力されたときにはバッファ40Aとして用いるメモリ領域(単位バッファ領域)が存在しておらず、この判定は否定される。また、後述する処理を経てバッファ40Aとして用いる単位バッファ領域が確保された後も、当該単位バッファ領域への画像データの書込に伴って当該単位バッファ領域内の空き領域が単位書込データ量未満になった場合にも上記判定は否定される。   Subsequently, in the data writing process, the unit management data amount is notified to the resource management unit 46B as the size of the memory area to be secured, and the memory area used for writing (writing buffer area: FIG. 7B is also shown). Reference) is acquired via the resource management unit 46B (processing in the resource management unit will be described later). Next, a unit buffer area (a unit buffer in which image data of the unit write data amount can be written) has an empty area larger than the unit write data amount in the storage unit buffer area constituting the buffer 40A of the own module. It is determined whether or not (region) exists. In the buffer module 40 generated by the module generation unit 44, a memory area (unit buffer area) used as the buffer 40A is not initially secured, and a unit buffer area is secured as a unit whenever a memory area shortage occurs. Therefore, when a write request is first input to the buffer module 40, there is no memory area (unit buffer area) used as the buffer 40A, and this determination is denied. Further, even after the unit buffer area used as the buffer 40A is secured through the processing described later, the free area in the unit buffer area is less than the unit write data amount as image data is written to the unit buffer area. The above determination is also denied in the case of

単位書込データ量以上の空き領域が有る単位バッファ領域(単位書込データ量の画像データを書き込み可能な単位バッファ領域)が存在していないと判定された場合は、確保すべきメモリ領域のサイズ(単位バッファ領域のサイズ)をリソース管理部46Bに通知して、自モジュールのバッファ40Aとして用いるメモリ領域(画像データの保管に用いる単位バッファ領域)をリソース管理部46Bを介して取得する。そして、先に取得した書込用バッファ領域を書込領域として、当該書込領域の先頭アドレスを書込要求元の画像処理モジュール38へ通知すると共に、書込対象の画像データを通知した先頭アドレスから順に書き込むよう要請する。これにより、書込要求元の画像処理モジュール38は、先頭アドレスが通知された書込用バッファ領域に画像データを書き込む(図7(B)も参照)。   If it is determined that there is no unit buffer area (unit buffer area into which image data of the unit write data amount can be written) that has an empty area greater than the unit write data amount, the size of the memory area to be secured (A size of the unit buffer area) is notified to the resource management unit 46B, and a memory area (unit buffer area used for storing image data) used as the buffer 40A of the own module is acquired via the resource management unit 46B. Then, using the previously obtained write buffer area as a write area, the start address of the write area is notified to the image processing module 38 of the write request source, and the start address that notifies the image data to be written Request to write in order. As a result, the image processing module 38 of the writing request source writes the image data in the writing buffer area notified of the head address (see also FIG. 7B).

例えば単位バッファ領域のサイズが単位書込データ量の整数倍でない場合、バッファ40A(単位バッファ領域)への単位書込データ量の画像データの書込が繰り返されることで、例として図7(A)にも示すように、空き領域有りの単位バッファ領域における空き領域のサイズが単位書込データ量よりも小さい状態が生ずる。この場合、単位書込データ量の画像データが書き込まれる領域が複数の単位バッファ領域に跨ることになるが、本実施形態では、バッファ40Aとして用いるメモリ領域を単位バッファ領域を単位として確保するので、異なるタイミングで確保した単位バッファ領域が実メモリ(メモリ14)上で連続する領域であることは保証されない。これに対して本実施形態では、画像処理モジュール38による画像データの書き込みを、保管用の単位バッファ領域と別に確保した書込用バッファ領域に対して行わせ、図7(C)に示すように、書込用バッファ領域に一旦書き込まれた画像データを保管用の単一又は複数の単位バッファ領域へ複写するので、画像データが書き込まれる領域が複数の単位バッファ領域に跨るか否かに拘わらず、書込要求元の画像処理モジュール38への書込領域の通知は、上記のようにその先頭アドレスを通知するのみで済み、画像処理モジュール38とのインタフェースが簡単になる。   For example, when the size of the unit buffer area is not an integral multiple of the unit write data amount, the writing of the image data of the unit write data amount to the buffer 40A (unit buffer area) is repeated, for example, as shown in FIG. ), The size of the empty area in the unit buffer area with the empty area is smaller than the unit write data amount. In this case, the area in which the image data of the unit write data amount is written extends over a plurality of unit buffer areas, but in this embodiment, the memory area used as the buffer 40A is secured in units of the unit buffer area. It is not guaranteed that the unit buffer areas secured at different timings are continuous areas on the real memory (memory 14). On the other hand, in the present embodiment, the image processing module 38 writes the image data to the writing buffer area secured separately from the unit buffer area for storage, as shown in FIG. Since the image data once written in the write buffer area is copied to a single unit buffer area or a plurality of unit buffer areas for storage, regardless of whether the area in which the image data is written extends over a plurality of unit buffer areas. As described above, the notification of the write area to the image processing module 38 that is the write request source only needs to be notified of the start address, and the interface with the image processing module 38 is simplified.

なお、自モジュールがアプリケーション32によって生成されたバッファモジュール40である場合、すなわちバッファ40Aとして用いるメモリ領域が既に確保されている場合には、既に確保されたメモリ領域のアドレスを画像処理モジュール38に書込領域のアドレスとして通知し、上記メモリ領域への画像データの書き込みを行わせる。前段の画像処理モジュール38による書込領域への画像データの書き込みが完了すると、書込用バッファ領域に書き込まれている画像データに属性情報を付加した後に、保管用バッファ領域にそのまま書き込む。なお、空き領域有りの単位バッファ領域における空き領域のサイズが単位書込データ量よりも小さい場合、書込用バッファ領域に書き込まれた画像データは、図7(C)に示すように、保管用の複数の単位バッファ領域へ分けて書き込まれることになる。   If the own module is the buffer module 40 generated by the application 32, that is, if the memory area used as the buffer 40A is already secured, the address of the already secured memory area is written to the image processing module 38. This is notified as the address of the embedded area, and the image data is written to the memory area. When the writing of the image data to the writing area by the image processing module 38 in the previous stage is completed, the attribute information is added to the image data written in the writing buffer area, and then written in the storage buffer area as it is. When the size of the empty area in the unit buffer area with the empty area is smaller than the unit write data amount, the image data written in the write buffer area is stored for storage as shown in FIG. Are written separately in a plurality of unit buffer areas.

そして、自モジュールの後段の個々の画像処理モジュール38に対応する有効データポインタのうち有効データの末尾位置を表すポインタを、該ポインタが指し示す有効データの末尾位置が単位書込データ量分だけ後へ移動するように更新する(図7(C)も参照)と共に、先に書込用バッファ領域として確保したメモリ領域をリソース管理部46Bによって解放させ、データ書込処理を一旦終了する。なお、書込用バッファ領域はバッファモジュール40の初期化時に確保し、バッファモジュール40の消去時に解放するように構成してもよい。   Then, the pointer indicating the end position of the valid data among the valid data pointers corresponding to the individual image processing modules 38 subsequent to the own module is moved backward by the unit write data amount by the end position of the valid data indicated by the pointer. In addition to updating so as to move (see also FIG. 7C), the memory area previously secured as the writing buffer area is released by the resource management unit 46B, and the data writing process is temporarily terminated. The write buffer area may be secured when the buffer module 40 is initialized and may be released when the buffer module 40 is erased.

続いて、後段の画像処理モジュール38から読出要求がバッファモジュール40に入力された場合(及び、後述するタイマがタイムアウトした場合)に、バッファモジュール40のバッファ制御部40Bによって実行されるデータ読出処理について説明する。   Subsequently, a data read process executed by the buffer control unit 40B of the buffer module 40 when a read request is input from the subsequent image processing module 38 to the buffer module 40 (and a timer described later times out). explain.

データ読出処理では、まず今回のデータ読出処理の起動要因が、後段の画像処理モジュールからの読出要求の入力による起動か否か判定し、判定が肯定された場合は、後段の画像処理モジュールから入力された読出要求情報を読出用の待ち行列の末尾に登録する。次に、自モジュールのバッファ40Aが他のスレッドによって使用中か否か判定する。バッファ40Aが使用中であれば、読出用の待ち行列に読出要求情報が登録されているか否か判定し、読出要求情報が未登録であればそのままデータ読出処理を終了し、読出要求情報が登録されていればタイマをスタートさせた後にデータ読出処理を終了する。このタイマがタイムアウトするとデータ読出処理が再度起動され、読出用の待ち行列に登録されている未処理の読出要求(情報)が再度取り出され、当該読出要求に応じた処理が行われる。   In the data read process, first, it is determined whether or not the activation factor of the current data read process is a start by inputting a read request from the subsequent image processing module. If the determination is affirmative, an input from the subsequent image processing module is performed. The read request information is registered at the end of the read queue. Next, it is determined whether or not the buffer 40A of the own module is being used by another thread. If the buffer 40A is in use, it is determined whether or not read request information is registered in the read queue. If the read request information is not registered, the data read process is terminated and the read request information is registered. If so, the data read processing is terminated after starting the timer. When this timer times out, the data reading process is started again, an unprocessed read request (information) registered in the read queue is taken out again, and a process corresponding to the read request is performed.

一方、自モジュールのバッファ40Aが使用中でなければ、読出用の待ち行列から先頭に登録されている読出要求情報を取り出し、取り出した読出要求情報に含まれる要求元識別情報に基づいて読出要求元の画像処理モジュール38を認識し、読出要求元の画像処理モジュール38によって設定された単位読出データ量を認識すると共に、読出要求元の画像処理モジュール38に対応する有効データポインタに基づいて、読出要求元の画像処理モジュール38に対応する有効データのバッファ40A上での先頭位置及び末尾位置を認識する。次に、認識した有効データの先頭位置及び末尾位置に基づいて、読出要求元の画像処理モジュール38に対応する有効データ(読出要求元の画像処理モジュール38が読出可能な画像データ)が単位読出データ量以上有るか否か判定する。   On the other hand, if the buffer 40A of the own module is not in use, the read request information registered at the head is extracted from the read queue, and the read request source is based on the request source identification information included in the read request information. The image processing module 38 is recognized, the unit read data amount set by the image processing module 38 of the read request source is recognized, and the read request is based on the valid data pointer corresponding to the image processing module 38 of the read request source. The head position and end position of the valid data on the buffer 40A corresponding to the original image processing module 38 are recognized. Next, based on the recognized start position and end position of valid data, valid data corresponding to the read request source image processing module 38 (image data that can be read by the read request source image processing module 38) is unit read data. Judge whether there is more than the amount.

読出要求元の画像処理モジュール38に対応する有効データが単位読出データ量未満であれば、読出要求元の画像処理モジュール38が読出可能な有効データの末尾が処理対象の画像データの末尾か否か判定する。読出要求元の画像処理モジュール38に対応する有効データがバッファ40Aに単位読出データ量以上記憶されているか、又は、バッファ40Aに記憶されている読出要求元の画像処理モジュール38に対応する有効データが単位読出データ量未満であるものの、当該有効データの末尾が処理対象の画像データの末尾であった場合には、確保すべきメモリ領域のサイズとして読出要求元の画像処理モジュール38に対応する単位読出データ量をリソース管理部46Bに通知すると共に、読出に用いるメモリ領域(読出用バッファ領域:図8(B)も参照)の確保をリソース管理部46Bに要求し、リソース管理部46Bを介して読出用バッファ領域を取得する。   If the valid data corresponding to the image processing module 38 of the read request source is less than the unit read data amount, whether or not the end of the valid data that can be read by the image processing module 38 of the read request source is the end of the image data to be processed judge. Valid data corresponding to the image processing module 38 of the read request source is stored in the buffer 40A at a unit read data amount or more, or valid data corresponding to the image processing module 38 of the read request source stored in the buffer 40A is stored. If the end of the valid data is the end of the image data to be processed, although it is less than the unit read data amount, the unit read corresponding to the image processing module 38 that is the read request source is the size of the memory area to be secured. Not only the resource management unit 46B is notified of the amount of data, but also requests the resource management unit 46B to secure a memory area used for reading (see also the buffer area for reading: FIG. 8B), and the data is read via the resource management unit 46B. Get the buffer area.

次に、読出対象の有効データをバッファ40Aから単位読出データ量分だけ読み出して読出用バッファ領域に書き込み、読出用バッファ領域の先頭アドレスを読出領域の先頭アドレスとして読出要求元の画像処理モジュール38へ通知すると共に、通知した先頭アドレスから画像データを順に読み出すよう要請する。これにより、読出要求元の画像処理モジュール38は、先頭アドレスが通知された読出領域(読出用バッファ領域)からの画像データの読み出しを行う。なお、読出対象の有効データが処理対象の画像データの末尾に相当するデータであった場合には、画像データの読出要求に際し、読出対象の画像データのサイズと共に、処理対象の画像データの末尾であることも読出要求元の画像処理モジュール38に通知する。また、自モジュールがアプリケーション32によって生成されたバッファモジュール40である場合は、バッファ40Aとして用いているメモリ領域(単位バッファ領域の集合体)は連続領域であるので、読出用バッファ領域の確保、読出対象の画像データの読出用バッファ領域への書き込みを省略し、後段の画像処理モジュール38が単位バッファ領域から直接画像データを読み出すようにしてもよい。   Next, the effective data to be read is read from the buffer 40A by the amount of the unit read data and written to the read buffer area, and the head address of the read buffer area is used as the read area start address to the read request source image processing module 38. Along with the notification, the image data is requested to be read sequentially from the notified head address. As a result, the image processing module 38 as the read request source reads the image data from the read area (read buffer area) to which the head address is notified. When the effective data to be read is data corresponding to the end of the image data to be processed, the size of the image data to be read is requested at the end of the image data to be processed when the image data is requested to be read. This is also notified to the image processing module 38 of the reading request source. When the own module is the buffer module 40 generated by the application 32, the memory area (collection of unit buffer areas) used as the buffer 40A is a continuous area. The writing of the target image data to the reading buffer area may be omitted, and the subsequent image processing module 38 may read the image data directly from the unit buffer area.

なお、例として図8(A)に示すように、有効データの先頭部分の画像データを記憶している単位バッファ領域に記憶されている有効データのデータ量が単位読出データ量未満であり、読出対象の有効データが複数の単位バッファ領域に跨っている場合には、今回の読出対象の有効データが実メモリ(メモリ14)上で連続する領域に記憶されているとは限らないが、上記のデータ読出処理では、図8(B),(C)に示すように、このような場合にも読出対象の画像データを読出用バッファ領域に一旦書き込んだ後に該読出用バッファ領域から画像データを読み出させるので、読出対象の画像データが複数の単位バッファ領域に跨って記憶されているか否かに拘わらず、読出要求元の画像処理モジュール38への読出領域の通知は、上記のようにその先頭アドレスを通知するのみで済み、画像処理モジュール38とのインタフェースが簡単になる。   As an example, as shown in FIG. 8A, the amount of valid data stored in the unit buffer area in which the image data of the head portion of the valid data is stored is less than the unit read data amount. When the target valid data extends over a plurality of unit buffer areas, the current target valid data is not always stored in a continuous area on the real memory (memory 14). In the data reading process, as shown in FIGS. 8B and 8C, even in such a case, the image data to be read is once written in the reading buffer area and then read from the reading buffer area. Therefore, regardless of whether or not the image data to be read is stored across a plurality of unit buffer areas, the read request is notified to the image processing module 38 of the read request source as described above. It is only necessary to notify the start address, and the interface with the image processing module 38 is simplified.

読出要求元の画像処理モジュール38による読出領域からの画像データの読み出し完了が通知されると、読出用バッファ領域として確保したメモリ領域の先頭アドレス及びサイズをリソース管理部46Bへ通知して、当該メモリ領域をリソース管理部46Bによって解放させる。この読出用バッファ領域についても、バッファモジュール40の初期化時に確保しておき、バッファモジュール40が消去される時に解放するよう構成してもよい。また、読出要求元の画像処理モジュール38に対応する有効データポインタのうち有効データの先頭位置を表すポインタを、該ポインタが指し示す有効データの先頭位置を単位読出データ量分だけ後へ移動させることで更新する(図8(C)も参照)。   When the completion of reading of the image data from the reading area by the image processing module 38 of the reading request source is notified, the start address and size of the memory area secured as the reading buffer area are notified to the resource management unit 46B, and the memory The area is released by the resource management unit 46B. This read buffer area may also be secured when the buffer module 40 is initialized and released when the buffer module 40 is erased. Further, by moving the pointer representing the start position of the valid data among the valid data pointers corresponding to the image processing module 38 that is the read request source, the start position of the valid data indicated by the pointer is moved backward by the unit read data amount. Update (see also FIG. 8C).

次に、後段の個々の画像処理モジュール38に対応する有効データポインタを各々参照し、先のポインタ更新により、バッファ40Aを構成する単位バッファ領域の中に、記憶している画像データの後段の各画像処理モジュール38による読み出しが全て完了した単位バッファ領域、すなわち有効データを記憶していない単位バッファ領域が出現したか否か判定する。判定が否定された場合は、前述した読出用の待ち行列のチェック処理(読出用の待ち行列に読出要求情報が登録されているか否かの判定)を経てデータ読出処理を終了するが、有効データを記憶していない単位バッファ領域が出現した場合は、当該単位バッファ領域をリソース管理部46Bによって解放させた後に読出用の待ち行列のチェック処理を経てデータ読出処理を終了する。   Next, the effective data pointers corresponding to the individual image processing modules 38 in the subsequent stage are respectively referred to, and each of the subsequent stages of the stored image data is stored in the unit buffer area constituting the buffer 40A by updating the previous pointer. It is determined whether or not a unit buffer area that has been completely read by the image processing module 38, that is, a unit buffer area that does not store valid data, has appeared. If the determination is negative, the data reading process is terminated through the above-described reading queue check process (determination as to whether or not read request information is registered in the reading queue), but valid data When a unit buffer area that does not store is appeared, the unit buffer area is released by the resource management unit 46B, and then the data read process is terminated through a check process for the read queue.

一方、バッファ40Aに記憶されており読出要求元の画像処理モジュール38が読出可能な有効データのデータ量が単位読出データ量未満であり、かつ読出可能な有効データの末尾が処理対象の画像データの末尾でない場合(図6(B)の(4)で読出可能な有効データ無が検知された場合)には、新たな画像データを要求するデータ要求をワークフロー管理部46Aへ出力し(図6(B)の(5)も参照)、読出用の待ち行列から取り出した読出要求情報を元の待ち行列(の先頭又は末尾)に再度登録した後に、読出用の待ち行列のチェック処理を経てデータ読出処理を終了する。この場合、ワークフロー管理部46Aにより、自モジュールの前段の画像処理モジュール38に処理要求が入力されることになる。これにより、読出可能な有効データのデータ量が単位読出データ量以上になるか、読出可能な有効データの末尾が処理対象の画像データの末尾であることが検知される迄の間、対応する読出要求情報は読出用の待ち行列に保存されると共に定期的に取り出されて要求された処理の実行が繰り返し試行されることになる。   On the other hand, the amount of valid data stored in the buffer 40A and readable by the image processing module 38 that is the read request source is less than the unit read data amount, and the end of the readable valid data is the image data to be processed. If it is not the end (when no valid data that can be read is detected in (4) of FIG. 6B), a data request for requesting new image data is output to the workflow management unit 46A (FIG. 6 ( (See also (5) of B)) Read request information retrieved from the read queue is re-registered in the original queue (at the beginning or end), and then the data is read through the check process of the read queue The process ends. In this case, the workflow management unit 46A inputs a processing request to the image processing module 38 in the previous stage of the own module. As a result, until the amount of valid data that can be read exceeds the unit read data amount or until the end of the valid data that can be read is detected to be the end of the image data to be processed, the corresponding readout is performed. The request information is stored in a read queue and is periodically retrieved to repeatedly execute the requested process.

詳細は後述するが、ワークフロー管理部46Aはバッファモジュール40からデータ要求が入力されると、データ要求元のバッファモジュール40の前段の画像処理モジュール38に処理要求を入力する(図6(B)の(6)も参照)。この処理要求の入力をトリガとして前段の画像処理モジュール38の制御部38Bで行われる処理により、前段の画像処理モジュール38がバッファモジュール40へ画像データを書込可能な状態になると、前段の画像処理モジュール38から書込要求が入力されることで前述したデータ書込処理が行われ、前段の画像処理モジュール38からバッファモジュール40のバッファ40Aに画像データが書き込まれる(図6(B)の(7),(8)も参照)。これにより、後段の画像処理モジュール38によるバッファ40Aからの画像データの読出が行われることになる(図6(B)の(9)も参照)。   Although details will be described later, when a data request is input from the buffer module 40, the workflow management unit 46A inputs a processing request to the image processing module 38 in the preceding stage of the buffer module 40 that is the data request source (see FIG. 6B). (See also (6)). When the processing of the control unit 38B of the preceding image processing module 38 is triggered by the input of this processing request, when the preceding image processing module 38 can write image data to the buffer module 40, the preceding image processing is performed. When the writing request is input from the module 38, the above-described data writing process is performed, and the image data is written from the preceding image processing module 38 to the buffer 40A of the buffer module 40 ((7) in FIG. 6B). ), See also (8)). As a result, the image data is read from the buffer 40A by the subsequent image processing module 38 (see also (9) in FIG. 6B).

上述したデータ書込処理及びデータ読出処理では、一方が自モジュールのバッファ40Aにアクセスしている間、他方がバッファ40Aへのアクセスを停止する排他制御が行われる。これにより、コンピュータ10のCPU12が画像処理部50を構成する個々のモジュールに対応するスレッドを並列に実行しても、単一のバッファモジュール40に複数の要求が同時又は略同時に入力されることによる不都合の発生を回避できるので、コンピュータ10のCPU12が個々のモジュールに対応するスレッドを並列に実行することができる。   In the above-described data writing process and data reading process, exclusive control is performed so that while one is accessing the buffer 40A of its own module, the other stops accessing the buffer 40A. Thereby, even if the CPU 12 of the computer 10 executes the threads corresponding to the individual modules constituting the image processing unit 50 in parallel, a plurality of requests are input to the single buffer module 40 simultaneously or substantially simultaneously. Since the occurrence of inconvenience can be avoided, the CPU 12 of the computer 10 can execute threads corresponding to individual modules in parallel.

続いて、画像処理部50を構成する個々の画像処理モジュール38に対してワークフロー管理部46Aから処理要求が入力される毎に、個々の画像処理モジュール38の制御部38Bによって各々行われる画像処理モジュール制御処理(図9)を説明する。   Subsequently, each time a processing request is input from the workflow management unit 46A to the individual image processing modules 38 constituting the image processing unit 50, the image processing modules respectively performed by the control unit 38B of the individual image processing module 38. The control process (FIG. 9) will be described.

画像処理モジュール制御処理では、まずステップ220において、自モジュールの前段にモジュール(バッファモジュール40や画像データ供給部22、画像処理モジュール38等)が存在している場合に、当該前段のモジュールに対してデータ(画像データ又は解析等の画像処理の処理結果)を要求する。次のステップ222では前段のモジュールからデータが取得可能であるかを判定し、ステップ222の判定が否定された場合はステップ224で全体処理終了が通知されたか否かを判定する。ステップ224の判定が否定された場合はステップ222に戻り、前段のモジュールからデータを取得可能となる迄ステップ222,224を繰り返す。ステップ222の判定が肯定された場合には、ステップ226で前段のモジュールからデータを取得し、取得したデータを一時保管用のメモリ領域に書き込むデータ取得処理を行う。   In the image processing module control process, first, in step 220, when a module (the buffer module 40, the image data supply unit 22, the image processing module 38, etc.) exists in the previous stage of the own module, the module in the previous stage is processed. Data (image data or processing result of image processing such as analysis) is requested. In the next step 222, it is determined whether data can be acquired from the previous module. If the determination in step 222 is negative, it is determined in step 224 whether the end of the entire process has been notified. If the determination in step 224 is negative, the process returns to step 222, and steps 222 and 224 are repeated until data can be acquired from the preceding module. If the determination in step 222 is affirmed, data acquisition processing is performed in which data is acquired from the preceding module in step 226 and the acquired data is written in a temporary storage memory area.

ここで、自モジュールの前段のモジュールがバッファモジュール40である場合には、先のステップ220でデータを要求すると(読出要求)、読出可能な有効データがバッファモジュール40のバッファ40Aに単位読出データ量以上記憶されているか、読出可能な有効データの末尾が処理対象の画像データの末尾に一致している状態であれば直ちに、当該状態でなければ、当該バッファモジュール40の前段の画像処理モジュール38が当該バッファモジュール40のバッファ40Aに画像データを書き込んだことに伴って前記状態へ変化した後に、バッファモジュール40から読出領域の先頭アドレスが通知されて画像データの読出が要請される。これにより、ステップ222の判定が肯定されてステップ226へ移行し、前段のバッファモジュール40より先頭アドレスが通知された読出領域から単位読出データ量(又はそれ未満のデータ量)の画像データを読み出し、一時保管用のメモリ領域に書き込むデータ取得処理を行う(図6(A)の(3)も参照)。   Here, if the previous module of the own module is the buffer module 40, when data is requested in the previous step 220 (read request), the readable valid data is transferred to the buffer 40A of the buffer module 40 in the unit read data amount. As long as the end of the valid data that has been stored or readable matches the end of the image data to be processed, the image processing module 38 in the previous stage of the buffer module 40 immediately returns to the state of the image data to be processed. After the image data is written in the buffer 40A of the buffer module 40, the state is changed to the above state, and then the start address of the reading area is notified from the buffer module 40 and the reading of the image data is requested. As a result, the determination at step 222 is affirmed and the routine proceeds to step 226, where image data of a unit read data amount (or a data amount less than that) is read from the read area in which the head address is notified from the preceding buffer module 40, Data acquisition processing to be written into the temporary storage memory area is performed (see also (3) in FIG. 6A).

また、自モジュールの前段のモジュールが画像データ供給部22であれば、先のステップ220でデータ要求を出力すると画像データを取得可能な状態であることが前段の画像データ供給部22から直ちに通知されることで、ステップ222の判定が肯定されてステップ226へ移行し、前段の画像データ供給部22から単位読出データ量の画像データを取得し、一時保管用のメモリ領域に書き込むデータ取得処理を行う。また、自モジュールの前段のモジュールが画像処理モジュール38であれば、先のステップ220でデータ要求(処理要求)を出力すると、前段の画像処理モジュール38が画像処理を実行可能な状態であれば書込要求が入力されることでデータ(画像処理結果)を取得可能な状態であることが通知されるので、ステップ222の判定が肯定されてステップ226へ移行し、前段の画像処理モジュール38によってデータを書き込ませる一時保管用のメモリ領域のアドレスを通知して書込を要請することで、前段の画像処理モジュール38から出力されるデータを一時保管用のメモリ領域に書き込ませるデータ取得処理を行う。   If the previous module of the own module is the image data supply unit 22, the image data supply unit 22 immediately notifies that the image data can be acquired when the data request is output in the previous step 220. As a result, the determination at step 222 is affirmed, and the routine proceeds to step 226, where image data of a unit read data amount is acquired from the image data supply unit 22 at the previous stage, and data acquisition processing for writing into the temporary storage memory area is performed. . If the previous module of the own module is the image processing module 38, a data request (processing request) is output in the previous step 220. If the previous image processing module 38 is ready to perform image processing, the data request is written. Since it is notified that the data (image processing result) can be acquired by inputting the load request, the determination in step 222 is affirmed and the process proceeds to step 226. The data acquisition process for writing the data output from the image processing module 38 in the previous stage to the temporary storage memory area is performed by notifying the address of the temporary storage memory area where the data is written and requesting the writing.

次のステップ228では、自モジュールの前段に複数のモジュールが連結されているか否か判定する。判定が否定された場合には何ら処理を行うことなくステップ232へ移行するが、判定が肯定された場合はステップ230へ移行し、前段に連結されている全てのモジュールからデータを取得したか否か判定する。ステップ230の判定が否定された場合はステップ220に戻り、ステップ230の判定が肯定される迄ステップ220〜ステップ230を繰り返す。前段のモジュールから取得すべきデータが全て揃うと、ステップ228の判定が否定されるかステップ230の判定が肯定されてステップ232へ移行する。   In the next step 228, it is determined whether or not a plurality of modules are connected to the previous stage of the own module. If the determination is negative, the process proceeds to step 232 without performing any processing. If the determination is affirmative, the process proceeds to step 230, and whether or not data has been acquired from all modules connected in the previous stage. To determine. If the determination in step 230 is negative, the process returns to step 220, and steps 220 to 230 are repeated until the determination in step 230 is positive. When all the data to be acquired from the previous module is obtained, the determination in step 228 is denied or the determination in step 230 is affirmed, and the process proceeds to step 232.

次のステップ232では自モジュールの後段のモジュールに対してデータ出力用の領域を要求し、ステップ232でデータ出力領域が取得できる迄(データ出力領域の先頭アドレスが通知される迄)繰り返し判定を行う。なお、後段のモジュールがバッファモジュール40であれば、上記のデータ出力用領域の要求は当該バッファモジュール40に対して書込要求を出力することによって成される。データ出力領域(後段のモジュールがバッファモジュール40であれば当該バッファモジュール40から先頭アドレスが通知された書込領域)が取得できたら(図6(A)の(4)も参照)、次のステップ236において、先のデータ取得処理で取得したデータ、後段のモジュールから取得したデータ出力領域(の先頭アドレス)、画像処理用のメモリ領域(の先頭アドレス及びサイズ)を画像処理エンジン38Aに入力し、入力したデータに対し画像処理用のメモリ領域を使用して所定の画像処理を行わせる(図6(A)の(5)も参照)と共に、処理後のデータをデータ出力領域に書き込ませる(図6(A)の(6)も参照)。画像処理エンジン38Aへの単位読出データ量のデータの入力が完了し、画像処理エンジン38Aから出力されたデータがデータ出力領域に全て書き込まれると、次のステップ238で出力が完了したことを後段のモジュールに通知する。   In the next step 232, an area for data output is requested to the module subsequent to the module, and the determination is repeated until the data output area can be acquired in step 232 (until the start address of the data output area is notified). . If the subsequent module is the buffer module 40, the request for the data output area is made by outputting a write request to the buffer module 40. When the data output area (the write area in which the start address is notified from the buffer module 40 if the subsequent module is the buffer module 40) can be acquired (see also (4) in FIG. 6A), the next step In 236, the data acquired in the previous data acquisition process, the data output area (start address) acquired from the subsequent module, and the memory area (start address and size) for image processing are input to the image processing engine 38A. The input data is subjected to predetermined image processing using the image processing memory area (see also (5) in FIG. 6A), and the processed data is written to the data output area (see FIG. 6). (See also 6 (A) (6)). When the input of the unit read data amount to the image processing engine 38A is completed and all the data output from the image processing engine 38A is written in the data output area, the subsequent step 238 indicates that the output has been completed. Notify the module.

上記のステップ220〜ステップ238により画像処理モジュール38における単位処理データ量のデータに対する処理(単位処理)が完了し、次のステップ242において、ワークフロー管理部46Aへ処理完了通知を出力することで、入力された処理要求に対応する処理が完了したことをワークフロー管理部46Aへ通知し、画像処理モジュール制御処理を終了する。   The processing (unit processing) for the data of the unit processing data amount in the image processing module 38 is completed by the above step 220 to step 238, and in the next step 242, the processing completion notification is output to the workflow management unit 46A, so that the input is performed. The workflow management unit 46A is notified that the processing corresponding to the requested processing request has been completed, and the image processing module control processing is terminated.

また、ワークフロー管理部46Aから処理要求が入力される毎に上述した処理が繰り返されることで処理対象の画像データを末尾まで処理すると、前段のモジュールから処理対象の画像データの終了が通知されることで、ステップ224の判定が肯定されてステップ244へ移行し、処理対象の画像データ(なお、処理対象の画像データは1頁分の画像データであることが多いが、複数頁分の画像データであってもよい)に対する処理が終了したことを意味する全体処理終了通知をワークフロー管理部46A及び後段のモジュールへ各々出力する。また、次のステップ246では取得していた全てのリソースの解放を要求して自モジュールを消去する処理を行い、画像処理モジュール制御処理を終了する。   Further, when the processing image data is processed to the end by repeating the above-described processing every time a processing request is input from the workflow management unit 46A, the end of the processing target image data is notified from the preceding module. Thus, the determination in step 224 is affirmed, and the process proceeds to step 244. The image data to be processed (note that the image data to be processed is often image data for one page, but is image data for a plurality of pages. An overall process end notification that means that the process for (which may be present) has ended is output to the workflow management unit 46A and the subsequent module. In the next step 246, a process for requesting the release of all acquired resources and deleting the own module is performed, and the image processing module control process is terminated.

一方、ワークフロー管理部46Aは、アプリケーション32によって起動されると、図10(A)に示す画像処理部制御処理1を行う。画像処理部制御処理1では、まずステップ500において、画像処理部50における画像処理の進行度合を検知するか否かをユーザが選択した結果が情報として保持されているメモリ14上の所定の領域を参照することで、画像処理部50における画像処理の進行度合の検知が指示されているか否か判定する。なお、以下ではまず画像処理の進行度合の検知が指示されている場合の処理を説明し、画像処理の進行度合の検知が指示されている場合の処理については後述する。判定が否定された場合はステップ508へ移行し、画像処理部50のうち最後段の画像処理モジュール38に処理要求を入力し(図11の(1)参照)、画像処理部制御処理1を終了する。   On the other hand, when activated by the application 32, the workflow management unit 46A performs the image processing unit control process 1 shown in FIG. In the image processing unit control processing 1, first, in step 500, a predetermined area on the memory 14 in which the result of the user's selection as to whether or not to detect the progress of the image processing in the image processing unit 50 is held as information is stored. By referencing, it is determined whether or not the detection of the degree of progress of the image processing in the image processing unit 50 is instructed. In the following, the process when the detection of the degree of progress of image processing is instructed will be described first, and the process when the detection of the degree of progress of image processing is instructed will be described later. If the determination is negative, the process proceeds to step 508, a processing request is input to the last image processing module 38 in the image processing unit 50 (see (1) in FIG. 11), and the image processing unit control processing 1 is terminated. To do.

ここで、図11に示す画像処理部50において、ワークフロー管理部46Aから最後段の画像処理モジュール384に処理要求が入力されると、画像処理モジュール384の制御部38Bは前段のバッファモジュール403に読出要求を入力する(図11の(2)参照)。このとき、バッファモジュール403のバッファ40Aには画像処理モジュール384が読出可能な有効データ(画像データ)が記憶されていないので、バッファモジュール403のバッファ制御部40Bはワークフロー管理部46Aにデータ要求を入力する(図11の(3)参照)。 Here, in the image processing unit 50 shown in FIG. 11, when the process from the workflow management unit 46A to the image processing module 38 4 of the last stage request is input, the control unit 38B of the image processing module 38 4 preceding buffer module 40 A read request is input to 3 (see (2) in FIG. 11). At this time, since the image processing module 38 4 readable valid data in the buffer 40A of the buffer module 40 3 (image data) is not stored, the buffer controller 40B of the buffer module 40 3 data in the workflow management unit 46A A request is input (see (3) in FIG. 11).

ワークフロー管理部46Aは、バッファモジュール40からデータ要求が入力される毎に、図10(B)に示す画像処理部制御処理2を行う。この画像処理部制御処理2では、ステップ510において、データ要求入力元のバッファモジュール40(ここではバッファモジュール403)の前段の画像処理モジュール38(ここでは画像処理モジュール383)を認識し、認識した前段の画像処理モジュール38に処理要求を入力(図11の(4)参照)して処理を終了する。 The workflow management unit 46A performs the image processing unit control process 2 shown in FIG. 10B every time a data request is input from the buffer module 40. In this image processing unit control process 2, in step 510, the image processing module 38 (here, the image processing module 38 3 ) of the preceding stage of the buffer module 40 (here, the buffer module 40 3 ) of the data request input source is recognized and recognized. The processing request is input to the preceding image processing module 38 (see (4) in FIG. 11), and the processing ends.

画像処理モジュール383の制御部38Bは、処理要求が入力されると前段のバッファモジュール402に読出要求を入力し(図11の(5)参照)、バッファモジュール402のバッファ40Aにも読出可能な画像データが記憶されていないので、バッファモジュール402のバッファ制御部40Bはワークフロー管理部46Aにデータ要求を入力する(図11の(6)参照)。ワークフロー管理部46Aは、バッファモジュール402からデータ要求が入力された場合も、前述の画像処理部制御処理2を再度行うことで、その前段の画像処理モジュール382に処理要求を入力し(図11の(7)参照)、画像処理モジュール383の制御部38Bは前段のバッファモジュール401に読出要求を入力する(図11の(8)参照)。また、バッファモジュール401のバッファ40Aにも読出可能な画像データが記憶されていないので、バッファモジュール401のバッファ制御部40Bもワークフロー管理部46Aにデータ要求を入力し(図11の(9)参照)。ワークフロー管理部46Aは、バッファモジュール401からデータ要求が入力された場合も、前述の画像処理部制御処理2を再度行うことで、その前段の画像処理モジュール381に処理要求を入力する(図11の(10)参照)。 Control unit 38B of the image processing module 38 3, the processing request is input to the input read request preceding the buffer module 40 2 (see (5) in FIG. 11), read in the buffer 40A of the buffer module 40 2 since possible image data is not stored, the buffer controller 40B of the buffer module 40 2 inputs the data request to the workflow management unit 46A (see (6) in FIG. 11). Workflow management unit 46A, even if the data request is input from the buffer module 40 2, by performing the image processing unit control processing 2 described above again, enter the processing request to the image processing module 38 2 of the preceding stage (FIG. 11 (7)), the control unit 38B of an image processing module 38 3 inputs the read request to the buffer module 40 1 of the front reference ((8 in FIG. 11)). Further, since the readable image data to the buffer 40A of the buffer module 40 1 is not stored, the buffer controller 40B of the buffer module 40 1 also inputs the data request to the workflow management unit 46A (in FIG. 11 (9) reference). Even when a data request is input from the buffer module 40 1 , the workflow management unit 46A performs the above-described image processing unit control processing 2 again to input a processing request to the preceding image processing module 38 1 (see FIG. 11 (10)).

ここで、画像処理モジュール381の前段のモジュールは画像データ供給部22であるので、画像処理モジュール381の制御部38Bは、画像データ供給部22にデータ要求を入力することで画像データ供給部22から単位読出データ量の画像データを取得し(図11の(11)参照)、取得した画像データに対して画像処理エンジン38Aが画像処理を行うことで得られた画像データを、後段のバッファモジュール401のバッファ40Aに書き込む(図11の(12)参照)。 Here, since the previous module of the image processing module 38 1 is the image data supply unit 22, the control unit 38 B of the image processing module 38 1 inputs a data request to the image data supply unit 22, and thereby the image data supply unit 22. The image data of the unit read data amount is acquired from the image data 22 (see (11) in FIG. 11), and the image data obtained by the image processing engine 38A performing image processing on the acquired image data is stored in the subsequent buffer. write module 40 first buffer 40A (see (12) in FIG. 11).

また、バッファモジュール401のバッファ制御部40Bは、後段の画像処理モジュール382が読出可能な単位読出データ量以上の有効データが書き込まれると画像処理モジュール382に対して読出を要請し、これに伴い画像処理モジュール382の制御部38Bは、バッファモジュール401のバッファ40Aから単位読出データ量の画像データを読み出し(図11の(13)参照)、取得した画像データに対して画像処理エンジン38Aが画像処理を行うことで得られた画像データを、後段のバッファモジュール402のバッファ40Aに書き込む(図11の(14)参照)。 Further, the buffer control unit 40B of the buffer module 40 1 requests the image processing module 38 2 to read when valid data exceeding the unit read data amount that can be read by the subsequent image processing module 38 2 is written. the image processing module 38 and second control unit 38B with the reads image data of the unit read data amount from the buffer module 40 1 of buffer 40A (see (13) in FIG. 11), the image processing engine on the acquired image data 38A is an image data obtained by performing image processing, written in the following buffer module 40 second buffer 40A (see (14) in FIG. 11).

以下同様に、バッファモジュール402のバッファ制御部40Bは、後段の画像処理モジュール383が読出可能な単位読出データ量以上の有効データが書き込まれると画像処理モジュール383へ読出を要請し、画像処理モジュール383の制御部38Bは、バッファモジュール402のバッファ40Aから単位読出データ量の画像データを読み出し(図11の(15)参照)、取得した画像データに対して画像処理エンジン38Aが画像処理を行うことで得られた画像データを、後段のバッファモジュール403のバッファ40Aに書き込む(図11の(16)参照)。 Similarly, the buffer controller 40B of the buffer module 40 2, requested read when the subsequent image processing module 38 3 readable unit read data amount or more valid data is written to the image processing module 38 3, image control unit 38B of the processing modules 38 3 reads the image data of the unit read data amount from the buffer module 40 second buffer 40A (see (15) in FIG. 11), the image processing engine 38A is an image on the acquired image data the image data obtained by performing the processing, written in the following buffer module 40 third buffer 40A (see (16) in FIG. 11).

また、バッファモジュール403のバッファ制御部40Bは、後段の画像処理モジュール384が読出可能な単位読出データ量以上の有効データが書き込まれると画像処理モジュール384に対して読出を要請し、これに伴い画像処理モジュール384の制御部38Bは、バッファモジュール403のバッファ40Aから単位読出データ量の画像データを読み出し(図11の(17)参照)、取得した画像データに対して画像処理エンジン38Aが画像処理を行うことで得られた画像データを、後段のモジュールである画像出力部24へ出力する(図11の(18)参照)。 The buffer controller 40B of the buffer module 40 3 may request the reading the following image processing module 38 4 readable unit read data amount or more valid data is written to the image processing module 38 4, which control unit 38B of the image processing module 38 4 with the reads the image data of the unit read data amount from the buffer module 40 third buffer 40A (see (17) in FIG. 11), the image processing engine on the acquired image data The image data obtained by the image processing performed by 38A is output to the image output unit 24, which is a subsequent module (see (18) in FIG. 11).

また、個々の画像処理モジュール38の制御部38Bは、後段のバッファモジュール40のバッファ40Aへの画像データの書き込みを完了すると、ワークフロー管理部46Aへ処理完了通知を入力する。ワークフロー管理部46Aは、画像処理モジュール38から処理完了通知が入力される毎に、図10(C)に示す画像処理部制御処理3を行う。この画像処理部制御処理3では、ステップ520で処理完了通知元の画像処理モジュール38に処理要求を再度入力し、処理を終了する。このように、任意の画像処理モジュール38から処理完了通知が入力される毎に、処理完了通知元の画像処理モジュール38へ処理要求を再度入力することで、処理対象の画像データに対する画像処理が、個々の画像処理モジュール38で並列に行われる。   In addition, when the control unit 38B of each image processing module 38 completes the writing of the image data to the buffer 40A of the subsequent buffer module 40, the control unit 38B inputs a processing completion notification to the workflow management unit 46A. The workflow management unit 46A performs image processing unit control processing 3 shown in FIG. 10C every time a processing completion notification is input from the image processing module 38. In this image processing unit control process 3, in step 520, the process request is input again to the image processing module 38 that is the process completion notification source, and the process ends. In this way, every time a processing completion notification is input from an arbitrary image processing module 38, by inputting the processing request again to the processing completion notification source image processing module 38, the image processing on the processing target image data is performed. This is done in parallel by the individual image processing modules 38.

また、画像データ供給部22から供給される画像データが処理対象の画像データの末尾に達すると、個々の画像処理モジュール38からワークフロー管理部46Aへの全体処理終了通知の入力が、前段側の画像処理モジュール38から順次行われる。ワークフロー管理部46Aは、画像処理モジュール38から全体処理終了通知が入力される毎に、図10(E)に示す画像処理部制御処理5を行う。   When the image data supplied from the image data supply unit 22 reaches the end of the image data to be processed, the input of the overall processing end notification from the individual image processing module 38 to the workflow management unit 46A is sent to the preceding image. The processing modules 38 are sequentially performed. The workflow management unit 46A performs the image processing unit control process 5 shown in FIG. 10E every time an overall processing end notification is input from the image processing module 38.

この画像処理部制御処理5では、ステップ540において、全体処理終了通知入力元の画像処理モジュール38が最後段の画像処理モジュール38か否か判定する。判定が否定された場合は何ら処理を行うことなく処理を終了するが、処理対象の画像データに対して必要な画像処理が行われた画像データが画像出力部24へ全て出力されることで、最後段の画像処理モジュール38から全体処理終了通知が入力された場合にはステップ540の判定が肯定され、ステップ542(後述)を経てステップ544へ移行し、アプリケーション32に対して画像処理の完了を通知し、画像処理部制御処理5を終了する。そして、画像処理の完了が通知されたアプリケーション32は、ユーザに対して画像処理の完了を通知する。   In this image processing unit control process 5, in step 540, it is determined whether or not the image processing module 38 that is the input source of the overall process end notification is the last image processing module 38. If the determination is negative, the process ends without performing any process, but all the image data that has undergone the necessary image processing on the image data to be processed is output to the image output unit 24. When an overall processing end notification is input from the last-stage image processing module 38, the determination in step 540 is affirmed, and the process proceeds to step 544 through step 542 (described later), and the application 32 is notified of completion of image processing. The image processing unit control process 5 is terminated. The application 32 notified of the completion of the image processing notifies the user of the completion of the image processing.

次に、画像処理の進行度合の検知が指示されている場合の処理を説明する。画像処理の進行度合の検知が指示されている場合は、前述した画像処理部制御処理1(図10(A))のステップ500の判定が肯定されてステップ502へ移行し、個々の進行度合検知モジュール48の前段の画像処理モジュール38から出力される出力画像データの総データ量を認識し、認識した総データ量を個々の進行度合検知モジュール48へ通知する。なお、上記の出力画像データの総データ量は、特定の画像処理モジュール38に入力される入力画像データの総データ量と、特定の画像処理モジュール38で行われる画像処理の種類に基づいて、特定の画像処理モジュール38から出力される出力画像データの総データ量を演算することを、画像処理部50の最前段の画像処理モジュール38から順に行い(なお、画像処理部50の最前段の画像処理モジュール38については、画像処理部50に入力される処理対象の画像データの画像データ量が入力画像データの総データ量となり、それ以外の画像処理モジュール38については、自モジュールの前段側最後段の画像処理モジュール38から出力される出力画像データの総データ量が入力画像データの総データ量となる)、個々の画像処理モジュール38からの出力画像データの総データ量を順に求めることで得ることができる。   Next, a process when the detection of the degree of progress of image processing is instructed will be described. If the detection of the degree of progress of the image processing is instructed, the determination in step 500 of the image processing unit control process 1 (FIG. 10A) described above is affirmed and the process proceeds to step 502, and the individual degree of progress is detected. The total amount of output image data output from the image processing module 38 in the preceding stage of the module 48 is recognized, and the recognized total data amount is notified to the individual progress degree detection modules 48. The total amount of output image data is determined based on the total amount of input image data input to the specific image processing module 38 and the type of image processing performed by the specific image processing module 38. The total amount of output image data output from the image processing module 38 is calculated in order from the image processing module 38 in the foremost stage of the image processing unit 50 (note that the image processing in the foremost stage of the image processing unit 50 is performed). For the module 38, the image data amount of the processing target image data input to the image processing unit 50 is the total data amount of the input image data, and for the other image processing modules 38, the last stage on the front side of the own module. The total amount of output image data output from the image processing module 38 is the total amount of input image data). It can be obtained by determining the total amount of data of the output image data from the module 38 in turn.

ステップ504では、画像処理の進行度合表示画面として、例として図12(A)に示すような初期画面を表示部16に表示させる。図12に示すように、本実施形態に係る進行度合表示画面には、個々の画像処理モジュール38における画像処理の進行度合及び画像処理部50全体としての画像処理の進行度合を数値(百分率)で表示するための表示領域と、画像処理部50全体としての画像処理の進行度合を表す棒グラフ(プログレスバー)52を表示するための表示領域が設けられており、ステップ504では、進行度合表示画面の初期画面として、画像処理の進行度合が各々0%であることを明示した画面を表示部16に表示させる。そしてステップ506では、進行度合の検知結果の収集等の処理を行うタイミングを検知するためのタイマをスタートさせ、前述のステップ508の処理を経て画像処理部制御処理1を終了する。なお、上記タイマのタイマ値(進行度合の検知結果の収集等の処理の実行時間間隔)は、常に一定値としてもよいが、画像処理部50の規模(画像処理部50を構成するモジュールの数)や、処理対象の画像データのデータ量、要求されている画像処理の進行度合の表示精度等に応じて切り替えるようにしてもよい。   In step 504, an initial screen as shown in FIG. 12A is displayed on the display unit 16 as an example of the image processing progress display screen. As shown in FIG. 12, the progress degree display screen according to the present embodiment has numerical values (percentages) for the progress degree of image processing in each image processing module 38 and the progress degree of image processing as the entire image processing unit 50. A display area for displaying and a display area for displaying a bar graph (progress bar) 52 indicating the progress degree of the image processing as the entire image processing unit 50 are provided. In step 504, the progress degree display screen is displayed. As an initial screen, a screen that clearly indicates that the degree of progress of image processing is 0% is displayed on the display unit 16. In step 506, a timer for detecting timing for performing processing such as collection of the detection result of the progress degree is started, and the image processing unit control processing 1 is completed through the processing in step 508 described above. Note that the timer value (execution time interval of processing such as collection of the detection result of the degree of progress) may always be a constant value, but the scale of the image processing unit 50 (the number of modules constituting the image processing unit 50) ), The amount of image data to be processed, the display accuracy of the degree of progress of requested image processing, and the like may be switched.

一方、画像処理部50に設けられた個々の進行度合検知モジュール48は、前段の画像処理モジュール38からの出力画像データの総データ量がワークフロー管理部46Aから通知されると、図13(A)に示す初期化処理を行う。この初期化処理では、まずステップ560において、ワークフロー管理部46Aから通知された、前段の画像処理モジュール38からの出力画像データの総データ量を所定のメモリ領域に記憶させる。そしてステップ562では、前段の画像処理モジュール38からの出力画像データのデータ量の計数結果を表す計数値を初期化し、初期化処理を終了する。   On the other hand, when the progress degree detection module 48 provided in the image processing unit 50 is notified of the total amount of output image data from the previous image processing module 38 from the workflow management unit 46A, FIG. The initialization process shown in Fig. 2 is performed. In this initialization process, first, in step 560, the total amount of image data output from the previous image processing module 38 notified from the workflow management unit 46A is stored in a predetermined memory area. In step 562, the count value indicating the count result of the data amount of the output image data from the previous image processing module 38 is initialized, and the initialization process ends.

なお、画像処理部50の初期化時には、画像処理部50に設けられた個々の進行度合検知モジュール48に対し、後段のバッファモジュール40へ単位書込データ量を通知する情報が前段の画像処理モジュール38から入力されるが、この場合、個々の進行度合検知モジュール48は前段の画像処理モジュール38から入力された情報をそのまま後段のバッファモジュール40へ出力する。   At the time of initialization of the image processing unit 50, information for reporting the unit write data amount to the subsequent buffer module 40 to the individual progress degree detection modules 48 provided in the image processing unit 50 is the preceding image processing module. In this case, each progress degree detection module 48 outputs the information input from the preceding image processing module 38 to the subsequent buffer module 40 as it is.

また、画像処理部制御処理1(図10(A))のステップ508でワークフロー管理部46Aから画像処理部50の最終段の画像処理モジュール38に処理要求が入力されると、前述のように画像処理部50における画像処理が開始され、これに伴い、画像処理部50に設けられた個々の進行度合検知モジュール48に対しては、後段のバッファモジュール40宛の情報として画像データの書込を要求する情報(書込要求)や書込完了を通知する情報(書込完了通知)が前段の画像処理モジュール38から入力され、前段の画像処理モジュール38宛の情報として、書込用バッファ領域への画像データの書込を要請する情報(書込要請)が後段のバッファモジュール40から入力される。個々の進行度合検知モジュール48は、前段の画像処理モジュール38や後段のバッファモジュール40からこれらの情報が入力される毎に、入力された情報を本来の宛先(後段のバッファモジュール40又は前段の画像処理モジュール38)へそのまま出力する。   When a processing request is input from the workflow management unit 46A to the final image processing module 38 of the image processing unit 50 in step 508 of the image processing unit control processing 1 (FIG. 10A), the image is processed as described above. Image processing in the processing unit 50 is started, and accordingly, each progress degree detection module 48 provided in the image processing unit 50 is requested to write image data as information addressed to the subsequent buffer module 40. Information (writing request) and information for writing completion (writing completion notification) are input from the preceding image processing module 38, and are sent to the writing buffer area as information addressed to the preceding image processing module 38. Information for requesting writing of image data (writing request) is input from the buffer module 40 in the subsequent stage. Each time the degree-of-advance detection module 48 receives these pieces of information from the preceding image processing module 38 or the succeeding buffer module 40, the received information is sent to the original destination (the following buffer module 40 or the preceding image). The data is directly output to the processing module 38).

これにより、画像処理部50に進行度合検知モジュール48が挿入されている場合にも、画像処理部50に設けられた個々の画像処理モジュール38やバッファモジュール40が、画像処理部50に進行度合検知モジュール48が挿入されていない場合と同一の処理を行うことで、画像処理部50における画像処理が実現されることになる。   Thereby, even when the progress degree detection module 48 is inserted in the image processing unit 50, the individual image processing modules 38 and the buffer modules 40 provided in the image processing unit 50 detect the progress degree in the image processing unit 50. By performing the same processing as when the module 48 is not inserted, image processing in the image processing unit 50 is realized.

また、後段のバッファモジュール40から書込要請として入力される情報には、書込用バッファ領域の先頭アドレスが含まれているが、画像処理部50に設けられた個々の進行度合検知モジュール48は、後段のバッファモジュール40から上記の書込要請に相当する情報が入力された場合に、入力された情報から書込用バッファ領域の先頭アドレスを抽出し、抽出した先頭アドレスを所定のメモリ領域に記憶させた後に、入力された情報(書込要請)を前段の画像処理モジュール38へ出力する。また、画像処理部50に設けられた個々の進行度合検知モジュール48は、後段のバッファモジュール40から書込要請に相当する情報が入力された後に、前段の画像処理モジュール38から書込完了通知に相当する情報が入力されると、図13(B)に示す進行度合検知処理を行う。   The information input as a write request from the subsequent buffer module 40 includes the start address of the write buffer area, but each progress degree detection module 48 provided in the image processing unit 50 When information corresponding to the above write request is input from the subsequent buffer module 40, the start address of the write buffer area is extracted from the input information, and the extracted start address is stored in a predetermined memory area. After the storage, the input information (write request) is output to the preceding image processing module 38. Each progress degree detection module 48 provided in the image processing unit 50 receives a write completion notification from the preceding image processing module 38 after information corresponding to the writing request is input from the succeeding buffer module 40. When the corresponding information is input, the progress degree detection process shown in FIG.

この進行度合検知処理では、まずステップ570において、先に所定のメモリ領域に記憶させた書込バッファ領域の先頭アドレスに基づいて、前段の画像処理モジュール38によって画像データが書き込まれた書込用バッファ領域を参照し、当該書込用バッファ領域に書き込まれている画像データのデータ量を検知する。次のステップ572では、前段の画像処理モジュール38からの出力画像データのデータ量の計数値に、ステップ570で検知したデータ量を加算する。またステップ574では、自モジュールの挿入位置における画像処理の進行度合(自モジュールの前段の画像処理モジュール38における画像処理の進行度合)として、ステップ572で演算した出力画像データのデータ量の計数値を、先にワークフロー管理部46Aから通知された出力画像データの総データ量で除算した値を演算する。次のステップ576では、ステップ574で演算した進行度合を所定のメモリ領域に記憶させる。そしてステップ578では、前段の画像処理モジュール38から入力された書込完了通知を後段のバッファモジュール40へそのまま出力し、進行度合検知処理を終了する。   In this progress degree detection process, first, in step 570, based on the head address of the write buffer area previously stored in the predetermined memory area, the write buffer into which the image data has been written by the image processing module 38 in the previous stage. By referring to the area, the data amount of the image data written in the write buffer area is detected. In the next step 572, the data amount detected in step 570 is added to the count value of the data amount of the output image data from the previous image processing module 38. In step 574, the count value of the data amount of the output image data calculated in step 572 is used as the degree of progress of image processing at the insertion position of the own module (the degree of progress of image processing in the image processing module 38 preceding the own module). A value obtained by dividing the total amount of output image data notified from the workflow management unit 46A is calculated. In the next step 576, the progress degree calculated in step 574 is stored in a predetermined memory area. In step 578, the writing completion notification input from the preceding image processing module 38 is output as it is to the succeeding buffer module 40, and the progress degree detection processing ends.

このように、画像処理部50に設けられた個々の進行度合検知モジュール48は、前段の画像処理モジュール38によって書込用バッファ領域に画像データが書き込まれる毎に、書き込まれた画像データのデータ量を検知し、検知したデータ量に基づいて画像処理の進行度合を適宜更新する。   In this way, each progress degree detection module 48 provided in the image processing unit 50 has a data amount of the written image data each time the image data is written to the writing buffer area by the image processing module 38 in the previous stage. And the progress degree of the image processing is appropriately updated based on the detected data amount.

次に、画像処理部制御処理1(図10(A))のステップ506でスタートさせたタイマがタイムアウトした場合にワークフロー管理部46Aで行われる画像処理部制御処理4について、図10(D)のフローチャートを参照して説明する。   Next, the image processing unit control processing 4 performed in the workflow management unit 46A when the timer started in step 506 of the image processing unit control processing 1 (FIG. 10A) times out will be described with reference to FIG. This will be described with reference to a flowchart.

画像処理部制御処理4では、ステップ530において、まず画像処理部50に設けられた全ての進行度合検知モジュール48に対し、個々の進行度合検知モジュール48で検知した画像処理の進行度合を問い合わせる情報を各々出力する。画像処理部50に設けられた個々の進行度合検知モジュール48は、ワークフロー管理部46Aから上記情報が入力されると進行度合通知処理(図13(C))を行い、ステップ580において、画像処理の進行度合の検知結果を表す情報を所定のメモリ領域から読出し、ワークフロー管理部46Aへ出力する。画像処理部制御処理4のステップ530では、個々の進行度合検知モジュール48から画像処理の進行度合の検知結果を表す情報が入力される毎に、入力された情報を所定のメモリ領域に記憶させることで、全ての進行度合検知モジュール48から進行度合の検知結果を表す情報を収集する。   In the image processing unit control processing 4, in step 530, first, information for inquiring about the degree of progress of the image processing detected by the individual degree of progress detection module 48 is sent to all the progress degree detection modules 48 provided in the image processing unit 50. Output each. When the above information is input from the workflow management unit 46A, the individual progress degree detection module 48 provided in the image processing unit 50 performs a progress degree notification process (FIG. 13C). Information representing the detection result of the degree of progress is read from a predetermined memory area and output to the workflow management unit 46A. In step 530 of the image processing unit control process 4, every time information indicating the detection result of the progress of image processing is input from each progress detection module 48, the input information is stored in a predetermined memory area. Thus, information representing the detection result of the progress degree is collected from all the progress degree detection modules 48.

次のステップ532では、ステップ530で個々の進行度合検知モジュール48から収集した画像処理の進行度合の検知結果を表す情報に基づいて、表示部16に表示した進行度合表示画面に数値として表示している個々の画像処理モジュール38の画像処理の進行度合を書替えることで、進行度合表示画面の表示を更新する。またステップ534では、個々の進行度合検知モジュール48から収集した画像処理の進行度合の平均値を演算することで、画像処理部50全体としての画像処理の進行度合を演算し、進行度合表示画面に数値及び棒グラフ52として表示している画像処理部50全体としての進行度合を、演算した進行度合に応じて更新する。なお、個々の進行度合検知モジュール48から出力画像データのデータ量を各々収集し、収集したデータ量の合算値を、個々の進行度合検知モジュール48に各々通知した総データ量の合算値で除算することで得られる値を、画像処理部50全体としての画像処理の進行度合として用いてもよい。そして、次のステップ536ではタイマを再スタートさせ、画像処理部制御処理4を終了する。   In the next step 532, a numerical value is displayed on the progress degree display screen displayed on the display unit 16 based on the information indicating the detection result of the degree of progress of the image processing collected from the individual progress degree detection module 48 in step 530. The display of the progress display screen is updated by rewriting the progress of the image processing of each individual image processing module 38. Further, in step 534, by calculating the average value of the progress of the image processing collected from the individual progress detection modules 48, the progress of the image processing as the entire image processing unit 50 is calculated and displayed on the progress display screen. The progress degree of the entire image processing unit 50 displayed as the numerical value and the bar graph 52 is updated according to the calculated progress degree. The amount of output image data is collected from each progress degree detection module 48, and the sum of the collected data amounts is divided by the total value of the total data notified to each progress degree detection module 48. The value obtained in this way may be used as the degree of progress of image processing of the image processing unit 50 as a whole. In the next step 536, the timer is restarted and the image processing unit control process 4 is terminated.

これにより、タイマがタイムアウトする毎に上記の画像処理部制御処理4が起動され、個々の進行度合検知モジュール48からの進行度合の収集、演算及び表示(進行度合表示画面の表示更新)が行われることで、進行度合表示画面上に表示されている画像処理の進行度合がおよそリアルタイムに更新され(図12(B),(C)も参照)、表示部16に表示されている進行度合表示画面をユーザが参照することで、画像処理部50における画像処理の進行度合をリアルタイムで把握することが可能となる。なお、最後段の画像処理モジュール38からワークフロー管理部46Aに全体処理終了通知が入力されると、画像処理部制御処理5(図10(E))のステップ542でタイマが停止されることで、画像処理の進行度合の検知も終了される。   Thus, each time the timer times out, the image processing unit control process 4 is started, and the progress degree is collected, calculated, and displayed (display update of the progress degree display screen) from each progress degree detection module 48. Thus, the progress degree of the image processing displayed on the progress degree display screen is updated approximately in real time (see also FIGS. 12B and 12C), and the progress degree display screen displayed on the display unit 16 is updated. By referring to the above, it is possible to grasp the degree of progress of image processing in the image processing unit 50 in real time. When a notification of the end of the entire process is input from the last-stage image processing module 38 to the workflow management unit 46A, the timer is stopped in step 542 of the image processing unit control process 5 (FIG. 10E). Detection of the degree of progress of image processing is also terminated.

このように、本実施形態では、画像処理部50における画像処理の進行度合の検知が指示された場合に、前段の画像処理モジュール38からの出力画像データのデータ量を計数することで画像処理の進行度合を検知する進行度合検知モジュール48が、モジュール生成部44によって画像処理モジュール38の後段に挿入され、画像処理部50における画像処理の実行中には、個々の進行度合検知モジュール48によって検知された画像処理の進行度合がワークフロー管理部46Aによって各々収集され、画像処理部50における画像処理の進行度合が演算・表示されるので、画像処理モジュール38やバッファモジュール40の構成を変更することなく、画像処理部50における画像処理の進行度合を検知することができる。   As described above, in the present embodiment, when the detection of the degree of progress of image processing in the image processing unit 50 is instructed, the amount of output image data from the previous image processing module 38 is counted to perform image processing. A progress degree detection module 48 that detects the degree of progress is inserted into the subsequent stage of the image processing module 38 by the module generation unit 44, and is detected by the individual progress degree detection modules 48 during execution of image processing in the image processing unit 50. The degree of progress of image processing is collected by the workflow management unit 46A, and the degree of progress of image processing in the image processing unit 50 is calculated and displayed. Therefore, without changing the configuration of the image processing module 38 or the buffer module 40, The degree of progress of image processing in the image processing unit 50 can be detected.

なお、画像処理部50における画像処理の進行度合として、上記では個々の進行度合検知モジュール48から各々収集した画像処理の進行度合の単純平均を用いていたが、本発明はこれに限定されるものではなく、例えば個々の画像処理モジュール38における画像処理の処理速度を事前に計測した結果等に基づいて、画像処理部50を構成する個々の画像処理モジュール38に対して重みを付与し、画像処理部50における画像処理の進行度合として、個々の進行度合検知モジュール48から各々収集した画像処理の進行度合の加重平均を演算するようにしてもよい。具体的には、例えば画像処理部50が3個の画像処理モジュール38,38,38を含んで構成され、このうち画像処理モジュール38が画像処理モジュール38,38よりも画像処理の処理速度が低い場合、例えば画像処理モジュール38,38,38の重みを各々1,2,1とし、例えば画像処理モジュール38,38,38における画像処理の進行度合が各々50%,20%,50%であるときに、画像処理部50における画像処理の進行度合として進行度合の加重平均値=(1×0.5+2×0.2+1×0.5)/4=30%(但し4は重みの総和)を演算・表示するようにしてもよい。 Note that, as the degree of progress of image processing in the image processing unit 50, the simple average of the degree of progress of image processing collected from each individual degree of progress detection module 48 is used in the above, but the present invention is limited to this. Instead, for example, based on the result of measuring the processing speed of the image processing in each image processing module 38 in advance, a weight is given to each image processing module 38 constituting the image processing unit 50, and image processing is performed. As the degree of progress of image processing in the unit 50, a weighted average of the degree of progress of image processing collected from each of the degree of progress detection modules 48 may be calculated. Specifically, for example, the image processing unit 50 is configured to include three image processing modules 38 1 , 38 2 , and 38 3, and among these, the image processing module 38 2 is an image that is higher than the image processing modules 38 1 and 38 3. If the processing speed of the processing is low, for example, the image processing module 38 1, 38 2, and 38 3 of each weight 1,2,1, the progress of image processing in the example image processing module 38 1, 38 2, 38 3 When each is 50%, 20%, 50%, the weighted average value of the progress degree as the progress degree of the image processing in the image processing unit 50 = (1 × 0.5 + 2 × 0.2 + 1 × 0.5) / 4 = 30% (however, 4 may be calculated and displayed.

また、上記では個々の進行度合検知モジュール48が、前段の画像処理モジュール38からの出力画像データのデータ量に基づいて画像処理の進行度合を検知する態様を説明したが、本発明はこれに限定されるものではなく、本実施形態に係る画像処理モジュール38は画像データを一定量(単位書込データ量)ずつ後段へ出力する構成であるので、前段の画像処理モジュール38からの画像データの出力回数を計数することで、画像処理の進行度合を検知するように進行度合検知モジュール48を構成して、画像処理部50における画像処理の進行度合を検知することも可能である。   In the above description, the individual progress degree detection module 48 has been described as detecting the progress degree of the image processing based on the data amount of the output image data from the previous image processing module 38. However, the present invention is not limited to this. Instead, the image processing module 38 according to the present embodiment is configured to output the image data to the subsequent stage by a fixed amount (unit write data amount), so that the output of the image data from the preceding image processing module 38 is performed. By counting the number of times, it is possible to configure the progress degree detection module 48 so as to detect the progress degree of the image processing, and to detect the progress degree of the image processing in the image processing unit 50.

また、上記では画像処理部50における画像処理の進行度合の検知が指示されている場合に、モジュール生成部44が、生成したモジュール群のうち、最も後段に位置している画像処理モジュール38の次段(当該画像処理モジュールの次段にバッファモジュール40が位置している場合は、画像処理モジュール38とバッファモジュールの間)に進行度合検知モジュール48を挿入する態様を説明したが、進行度合検知モジュール48の挿入位置は上記に限られるものではなく、前段からの画像データのデータ量又は画像データの出力回数に基づいて画像処理の進行度合を検知する進行度合検知モジュール48を、図14(A)に示すようにバッファモジュール40の次段に挿入するようにしてもよいし、図14(B)に示すように画像処理モジュール38の次段及びバッファモジュール40の次段に各々挿入するようにしてもよい。   Further, in the above description, when the detection of the degree of progress of the image processing in the image processing unit 50 is instructed, the module generation unit 44 is next to the image processing module 38 positioned at the last stage among the generated module group. Although the embodiment has been described in which the progress degree detection module 48 is inserted into the stage (between the image processing module 38 and the buffer module when the buffer module 40 is located at the next stage of the image processing module), the progress degree detection module has been described. The insertion position of 48 is not limited to the above, and the progress degree detection module 48 that detects the progress degree of the image processing based on the data amount of the image data from the previous stage or the output count of the image data is shown in FIG. As shown in FIG. 14B, it may be inserted in the next stage of the buffer module 40, or as shown in FIG. It may be inserted into the next stage of the module 38 and the next stage of the buffer module 40, respectively.

また、上記では画像処理の進行度合の演算(検知)を行った結果を、進行度合表示画面として表示部16に表示させる態様を説明したが、本発明はこれに限定されるものではなく、画像処理の進行度合の演算(検知)を行った結果に基づいて画像処理部50における画像処理の処理完了時刻を予測し、予測した処理完了時刻を表示部16に表示させるようにしてもよいし、画像処理の進行度合の演算(検知)を行った結果に基づき、個々の画像処理モジュール38に相当するプログラム(や個々のバッファモジュール40のバッファ制御部40Bに相当するプログラム)の実行優先度や、個々の画像処理モジュール38への各種リソース(例えばメモリ14等の記憶リソースや、CPU、MMX(MultiMedia eXtention)用の演算器、SSE (Streaming SIMD Extension)用の演算器、CPUと別に設けられたDSP(Digital Signal Processor)等の高速演算器等のプログラム実行リソース)の割当を、画像処理部50における画像処理の進行度合に応じて変更する(例えば画像処理の実行開始当初は、画像処理部50のうち前段側のモジュールの実行優先度を高くしたり、前段側のモジュールに各種リソースを優先的に割当て、画像処理が進行するに従って、後段側のモジュールの実行優先度や各種リソースの割当ての優先度を相対的に増大させる等)等の制御を行うようにしてもよい。   In the above description, the result of calculating (detecting) the progress of image processing is displayed on the display unit 16 as a progress display screen. However, the present invention is not limited to this, The processing completion time of the image processing in the image processing unit 50 may be predicted based on the calculation (detection) of the processing progress degree, and the predicted processing completion time may be displayed on the display unit 16. Based on the result of calculating (detecting) the degree of progress of image processing, the execution priority of a program corresponding to each image processing module 38 (or a program corresponding to the buffer control unit 40B of each buffer module 40), Various resources for each image processing module 38 (for example, storage resources such as the memory 14, CPU, arithmetic unit for MMX (MultiMedia eXtention), SSE (Streaming SIM) (D Extension) computing unit, and allocation of program execution resources (high-speed computing units such as DSP (Digital Signal Processor) provided separately from the CPU) according to the degree of progress of image processing in the image processing unit 50 (For example, at the beginning of execution of image processing, the execution priority of the module on the upstream side of the image processing unit 50 is increased, or various resources are preferentially allocated to the module on the upstream side, and as the image processing progresses, The execution priority of the side module and the allocation priority of various resources may be relatively increased).

更に、上記では画像処理部50の個々の画像処理モジュール38における画像処理を並列に行わせる実行形態に本発明を適用した態様を説明したが、画像処理の実行形態は上記に限定されるものではない。画像処理部50では、例えば、単一の画像処理モジュール38でのみ画像処理(単位処理)を繰り返し行わせ、前記画像処理モジュール38における1面分の画像データに対する画像処理が完了し、前記画像処理モジュール38の後段のバッファモジュール40のバッファ40Aに1面分の画像データが蓄積されると、画像処理(単位処理)を繰り返し行わせる画像処理モジュール38を、バッファ40Aに1面分の画像データが蓄積されたバッファモジュール40の後段の単一の画像処理モジュール38に切り替える制御を、画像処理部50の前段側の画像処理モジュール38から順に適用する実行形態(所謂面単位処理)で画像処理を行わせることも可能であるが、本発明は面単位処理で画像処理を行われるように画像処理部50を制御する場合の進行度合の検知にも適用可能である。   Furthermore, although the aspect which applied this invention to the execution form which performs the image processing in each image processing module 38 of the image process part 50 in parallel above was demonstrated, the execution form of image processing is not limited above. Absent. In the image processing unit 50, for example, image processing (unit processing) is repeatedly performed only by a single image processing module 38, image processing for one surface of image data in the image processing module 38 is completed, and the image processing When image data for one surface is accumulated in the buffer 40A of the buffer module 40 subsequent to the module 38, the image processing module 38 for repeatedly performing image processing (unit processing) is stored in the buffer 40A. The image processing is performed in an execution form (so-called plane unit processing) in which the control to switch to the single image processing module 38 in the subsequent stage of the accumulated buffer module 40 is applied in order from the image processing module 38 in the previous stage of the image processing unit 50. In the present invention, the image processing unit 50 is controlled so that image processing is performed by plane unit processing. It can also be applied to the detection of the degree of progress of the case that.

更に、上記では本発明に係る画像処理プログラムに相当する画像処理プログラム群34がコンピュータ10に予め記憶(インストール)されている態様を説明したが、本発明に係る画像処理プログラムは、CD−ROMやDVD−ROM等の記録媒体に記録されている形態で提供することも可能である。   Further, in the above description, the image processing program group 34 corresponding to the image processing program according to the present invention is stored (installed) in the computer 10 in advance. However, the image processing program according to the present invention may be a CD-ROM, It is also possible to provide in a form recorded on a recording medium such as a DVD-ROM.

本実施形態に係るコンピュータ(画像処理装置)の概略構成を示すブロック図である。It is a block diagram which shows schematic structure of the computer (image processing apparatus) which concerns on this embodiment. アプリケーションによる処理を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the process by an application. モジュール生成部によって実行されるモジュール生成処理の内容を示すフローチャートである。It is a flowchart which shows the content of the module production | generation process performed by the module production | generation part. 画像処理部の構成例を示すブロック図である。It is a block diagram which shows the structural example of an image process part. 進行度合検知モジュールが挿入された画像処理部の例を示すブロック図である。It is a block diagram which shows the example of the image process part in which the progress degree detection module was inserted. (A)は画像処理モジュール、(B)はバッファモジュールの概略構成及び実行される処理を各々示すブロック図である。(A) is an image processing module, and (B) is a block diagram showing a schematic configuration of a buffer module and processing to be executed. 書込対象の画像データが複数の保管用単位バッファ領域に跨る場合を説明する概略図である。It is the schematic explaining the case where the image data to be written straddles a plurality of storage unit buffer areas. 読出対象の画像データが複数の保管用単位バッファ領域に跨っていた場合を説明する概略図である。It is the schematic explaining the case where the image data to be read straddles a plurality of storage unit buffer areas. 画像処理モジュールの制御部によって実行される画像処理モジュール制御処理の内容を示すフローチャートである。It is a flowchart which shows the content of the image processing module control process performed by the control part of an image processing module. 処理管理部によって実行される画像処理部制御処理の内容を示すフローチャートである。It is a flowchart which shows the content of the image process part control process performed by the process management part. 画像処理部における画像処理の流れを説明する概略図である。It is the schematic explaining the flow of the image processing in an image process part. 進行度合表示画面の一例を示すイメージ図である。It is an image figure which shows an example of a progress degree display screen. 進行度合検知モジュールによって実行される、(A)は初期化処理、(B)は進行度合検知処理、(C)は進行度合通知処理を各々示すフローチャートである。(A) is an initialization process, (B) is a flowchart showing a progress degree detection process, and (C) is a flowchart showing a progress degree notification process executed by the progress degree detection module. 画像処理部への進行度合検知モジュールの挿入箇所の他の例を示すブロック図である。It is a block diagram which shows the other example of the insertion location of the progress degree detection module to an image process part.

符号の説明Explanation of symbols

10 コンピュータ
16 表示部
38 画像処理モジュール
40 バッファモジュール
42 処理構築部
44 モジュール生成部
46 処理管理部
46A ワークフロー管理部
48 進行度合検知モジュール
50 画像処理部
DESCRIPTION OF SYMBOLS 10 Computer 16 Display part 38 Image processing module 40 Buffer module 42 Process construction part 44 Module production | generation part 46 Process management part 46A Workflow management part 48 Progress degree detection module 50 Image processing part

Claims (7)

自モジュールの前段から画像データを取得し、取得した画像データに所定の画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する一連の処理を単位処理量ずつ行う画像処理モジュールのプログラムと、自モジュールの前段から出力される画像データをバッファに書き込ませ、前記バッファに記憶されている画像データを自モジュールの後段によって読み出させる処理を行うバッファモジュールのプログラムと、自モジュールの前段からの画像データの出力回数又は前記画像データのデータ量を計数することで、自モジュールの挿入箇所における画像処理の進行度合を検知する進行度合検知モジュールのプログラムと、を各々記憶する記憶手段と、
前記記憶手段に記憶されている各モジュールのプログラムを用いて、前記画像処理モジュールの前段及び後段の少なくとも一方に前記バッファモジュールが連結され、個々のモジュールがパイプライン形態又は有向非循環グラフ形態で連結されて成る画像処理部を構築すると共に、当該画像処理部を構成する1つ以上の画像処理モジュールの後段側に前記進行度合検知モジュールを挿入する構築手段と、
前記構築手段によって前記画像処理部に挿入された個々の前記進行度合検知モジュールによって検知された画像処理の進行度合を各々収集し、収集した進行度合に基づいて前記画像処理部における画像処理の進行度合を検知する管理手段と、
を含む画像処理装置。
A unit of a series of processes for acquiring image data from the previous stage of the own module, performing predetermined image processing on the acquired image data, and outputting the image data that has undergone the image processing or the processing result of the image processing to the subsequent stage of the own module A buffer module that performs processing for causing an image processing module program to be processed for each processing amount and image data output from the preceding stage of the own module to be written in a buffer, and reading the image data stored in the buffer by a subsequent stage of the own module A program of the progress degree detection module for detecting the progress degree of the image processing at the insertion position of the own module by counting the number of output times of the image data from the previous stage of the own module or the data amount of the image data, Storage means for storing each of
Using the program of each module stored in the storage means, the buffer module is connected to at least one of the preceding stage and the succeeding stage of the image processing module, and each module is in a pipeline form or a directed acyclic graph form. A constructing unit that constructs an image processing unit connected to each other and inserts the progress degree detection module on the rear side of one or more image processing modules constituting the image processing unit;
The degree of image processing detected by each of the degree-of-advance detection modules inserted into the image processing unit by the construction unit is collected, and the degree of image processing in the image processing unit is collected based on the collected degree of progress. Management means to detect,
An image processing apparatus.
前記構築手段は、前記画像処理部における画像処理の進行度合の検知が指示されている場合に、前記画像処理部への前記進行度合検知モジュールの挿入を行い、
前記管理手段は、前記進行度合検知モジュールが挿入された画像処理部が前記構築手段によって構築された場合に、前記進行度合の収集及び前記画像処理部における画像処理の進行度合の検知を行うことを特徴とする請求項1記載の画像処理装置。
The construction means inserts the progress degree detection module into the image processing section when the detection of the degree of progress of image processing in the image processing section is instructed,
The management means collects the progress degree and detects the progress degree of the image processing in the image processing section when the image processing section in which the progress degree detection module is inserted is constructed by the construction means. The image processing apparatus according to claim 1, wherein:
前記構築手段は、前記画像処理部における画像処理の進行度合の検知が指示されている場合に、前記画像処理モジュールを構成する全ての画像処理モジュールの後段側に前記進行度合検知モジュールを各々挿入するか、又は、前記画像処理部を構成する画像処理モジュールのうち、単一又は複数の画像処理モジュールを含み各モジュールが協働して特定の画像処理を実現するモジュールのグループを単位として、その後段側に前記進行度合検知モジュールを各々挿入することを特徴とする請求項1記載の画像処理装置。   The construction means inserts the progress degree detection modules at the subsequent stage side of all the image processing modules constituting the image processing module when the detection of the degree of progress of the image processing in the image processing unit is instructed. Alternatively, among the image processing modules constituting the image processing unit, a subsequent group of units each including a single or a plurality of image processing modules and implementing a specific image processing in cooperation with each module. The image processing apparatus according to claim 1, wherein each of the progress degree detection modules is inserted on each side. 前記管理手段は、前記画像処理部による処理対象の画像データのデータ量、特定の進行度合検知モジュールの前段側に存在する個々の画像処理モジュールにおける画像処理の内容及び特定の進行度合検知モジュールの前段の画像処理モジュールにおける単位処理量に基づいて、前記画像処理部が前記処理対象の画像データに対する処理を完了する迄の間の、前記前段の画像処理モジュールからの画像データの総出力回数を予め演算して通知する処理を、前記画像処理部に挿入された個々の前記進行度合検知モジュールに対して各々行い、
前記画像処理部に挿入された個々の前記進行度合検知モジュールは、前段の画像処理モジュールから画像データが入力された回数を計数し、計数した回数を前記管理手段から予め通知された総出力回数で除算することで前記画像処理の進行度合を検知することを特徴とする請求項1記載の画像処理装置。
The management means includes the amount of image data to be processed by the image processing unit, the contents of image processing in each image processing module existing on the front side of the specific progress degree detection module, and the previous stage of the specific progress degree detection module. Based on the unit processing amount of the image processing module, the total number of output times of the image data from the preceding image processing module until the image processing unit completes the processing on the image data to be processed is calculated in advance. The notification process is performed on each of the progress degree detection modules inserted into the image processing unit,
Each of the progress degree detection modules inserted in the image processing unit counts the number of times image data is input from the previous image processing module, and the counted number is the total number of outputs notified in advance from the management unit. The image processing apparatus according to claim 1, wherein the degree of progress of the image processing is detected by division.
前記管理手段は、前記画像処理部による処理対象の画像データのデータ量及び特定の進行度合検知モジュールの前段側に存在する個々の画像処理モジュールにおける画像処理の内容に基づいて、前記画像処理部が前記処理対象の画像データに対する処理を完了する迄の間の、前記前段の画像処理モジュールから出力される画像データの総データ量を予め演算して通知する処理を、前記画像処理部に挿入された個々の前記進行度合検知モジュールに対して各々行い、
前記画像処理部に挿入された個々の前記進行度合検知モジュールは、前段の画像処理モジュールから入力された画像データのデータ量を計数し、計数したデータ量を前記管理手段から予め通知された総データ量で除算することで前記画像処理の進行度合を検知することを特徴とする請求項1記載の画像処理装置。
The management means includes the image processing unit based on the amount of image data to be processed by the image processing unit and the content of the image processing in each image processing module existing on the upstream side of the specific progress detection module. A process for preliminarily calculating and notifying the total amount of image data output from the preceding image processing module until the processing for the image data to be processed is completed has been inserted into the image processing unit. For each said progress detection module,
Each progress degree detection module inserted in the image processing unit counts the data amount of the image data input from the preceding image processing module, and the total data notified in advance from the management means of the counted data amount The image processing apparatus according to claim 1, wherein the degree of progress of the image processing is detected by dividing by an amount.
前記管理手段は、検知した前記画像処理部における画像処理の進行度合を表示手段に表示させることを特徴とする請求項1乃至請求項5の何れか1項記載の画像処理装置。   6. The image processing apparatus according to claim 1, wherein the management unit causes the display unit to display the detected degree of image processing in the image processing unit. 自モジュールの前段から画像データを取得し、取得した画像データに所定の画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する一連の処理を単位処理量ずつ行う画像処理モジュールのプログラムと、自モジュールの前段から出力される画像データをバッファに書き込ませ、前記バッファに記憶されている画像データを自モジュールの後段によって読み出させる処理を行うバッファモジュールのプログラムと、自モジュールの前段からの画像データの出力回数又は前記画像データのデータ量を計数することで、自モジュールの挿入箇所における画像処理の進行度合を検知する進行度合検知モジュールのプログラムと、を各々記憶する記憶手段と接続されたコンピュータを、
前記記憶手段に記憶されている各モジュールのプログラムを用いて、前記画像処理モジュールの前段及び後段の少なくとも一方に前記バッファモジュールが連結され、個々のモジュールがパイプライン形態又は有向非循環グラフ形態で連結されて成る画像処理部を構築すると共に、当該画像処理部を構成する1つ以上の画像処理モジュールの後段側に前記進行度合検知モジュールを挿入する構築手段、
及び、前記構築手段によって前記画像処理部に挿入された個々の前記進行度合検知モジュールによって検知された画像処理の進行度合を各々収集し、収集した進行度合に基づいて前記画像処理部における画像処理の進行度合を検知する管理手段
として機能させる画像処理プログラム。
A unit of a series of processes for acquiring image data from the previous stage of the own module, performing predetermined image processing on the acquired image data, and outputting the image data that has undergone the image processing or the processing result of the image processing to the subsequent stage of the own module A buffer module that performs processing for causing an image processing module program to be processed for each processing amount and image data output from the preceding stage of the own module to be written in a buffer, and reading the image data stored in the buffer by a subsequent stage of the own module A program of the progress degree detection module for detecting the progress degree of the image processing at the insertion position of the own module by counting the number of output times of the image data from the previous stage of the own module or the data amount of the image data, A computer connected to storage means for storing each of
Using the program of each module stored in the storage means, the buffer module is connected to at least one of the preceding stage and the succeeding stage of the image processing module, and each module is in a pipeline form or a directed acyclic graph form. A constructing means for constructing an image processing unit connected to each other and inserting the progress degree detection module on a subsequent stage side of one or more image processing modules constituting the image processing unit;
And collecting the degree of progress of the image processing detected by each of the degree-of-progress detection modules inserted into the image processing unit by the construction means, and performing image processing in the image processing unit based on the collected degree of progress. An image processing program that functions as a management means for detecting the degree of progress.
JP2006324657A 2006-11-30 2006-11-30 Image processing apparatus and program Pending JP2008140042A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006324657A JP2008140042A (en) 2006-11-30 2006-11-30 Image processing apparatus and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006324657A JP2008140042A (en) 2006-11-30 2006-11-30 Image processing apparatus and program

Publications (1)

Publication Number Publication Date
JP2008140042A true JP2008140042A (en) 2008-06-19

Family

ID=39601448

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006324657A Pending JP2008140042A (en) 2006-11-30 2006-11-30 Image processing apparatus and program

Country Status (1)

Country Link
JP (1) JP2008140042A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012023318A1 (en) * 2010-08-17 2012-02-23 富士フイルム株式会社 Image processing device, image processing method, image processing program, and recording medium
US20250008226A1 (en) * 2023-06-30 2025-01-02 Omron Corporation Real-Time Visualization of State Managed Asynchronous Runtime

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012023318A1 (en) * 2010-08-17 2012-02-23 富士フイルム株式会社 Image processing device, image processing method, image processing program, and recording medium
US20250008226A1 (en) * 2023-06-30 2025-01-02 Omron Corporation Real-Time Visualization of State Managed Asynchronous Runtime

Similar Documents

Publication Publication Date Title
JP4694266B2 (en) Image processing apparatus, method, and program
JP5046801B2 (en) Image processing apparatus and program
US20070248288A1 (en) Image processing device, and recording medium
JP4694267B2 (en) Image processing apparatus, method, and program
US7602392B2 (en) Image processing device, method, and storage medium which stores a program
JP4694268B2 (en) Image processing apparatus, method, and program
JP4795138B2 (en) Image processing apparatus and program
JP2008140046A (en) Image processing apparatus and image processing program
JP4694264B2 (en) Image processing apparatus, method, and program
US20070247466A1 (en) Image processing apparatus and program
JP4694265B2 (en) Image processing apparatus, method, and program
JP4619868B2 (en) Image processing apparatus, method, and program
JP4694269B2 (en) Image processing apparatus, method, and program
JP2008009696A (en) Image processor and program
JP4964219B2 (en) Image processing apparatus, method, and program
JP2008140042A (en) Image processing apparatus and program
JP5440129B2 (en) Image processing apparatus, image forming apparatus, and image processing program
JP2012043096A (en) Device, method and program of image processing
JP2007323393A (en) Image processing apparatus and program
JP4762865B2 (en) Image processing apparatus and image processing program
JP4818893B2 (en) Image processing apparatus and program
JP2008141331A (en) Image processing apparatus and program
JP2008140007A (en) Image processor and program
JP5036588B2 (en) Image processing apparatus and image processing program
JP2009053829A (en) Information processing apparatus and information processing program