JP2010146055A - Image processing apparatus, method and program - Google Patents

Image processing apparatus, method and program Download PDF

Info

Publication number
JP2010146055A
JP2010146055A JP2008319357A JP2008319357A JP2010146055A JP 2010146055 A JP2010146055 A JP 2010146055A JP 2008319357 A JP2008319357 A JP 2008319357A JP 2008319357 A JP2008319357 A JP 2008319357A JP 2010146055 A JP2010146055 A JP 2010146055A
Authority
JP
Japan
Prior art keywords
image processing
module
image
processing
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008319357A
Other languages
Japanese (ja)
Other versions
JP4964219B2 (en
Inventor
Keiichi Morita
恵一 森田
Takashi Nagao
隆 長尾
Yukio Kumazawa
幸夫 熊澤
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 JP2008319357A priority Critical patent/JP4964219B2/en
Publication of JP2010146055A publication Critical patent/JP2010146055A/en
Application granted granted Critical
Publication of JP4964219B2 publication Critical patent/JP4964219B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To improve processing efficiency, when respectively applying an identical image processings on a plurality of processing units that constitute the image data. <P>SOLUTION: When an image processing section 50, constituted of a plurality of module groups which can operate independently from each other, applies image processing to three dimensional image data, etc., the image processing is applied to two dimensional image data having different positions of z axis among the three-dimensional image data which is the processing object in respective module groups, after having individual image processing modules 38 carry out initializing processes, including a reference data preparation process the generating and setting of the data to be set for LUT. When image processing is terminated at any of the module groups (the module groups from M<SB>1-1</SB>to M<SB>1-3</SB>in Figure), the image processing is applied to the unprocessed two-dimensional image data by the module group after the initializing process is carried out again that excludes the reference data preparation process from the initializing process in individual image processing modules 38 in the module groups. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は画像処理装置、方法及びプログラムに係り、特に、1つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方にバッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築して画像処理を行う画像処理装置、該画像処理装置に適用可能な画像処理方法、及び、コンピュータを前記画像処理装置として機能させるための画像処理プログラムに関する。   The present invention relates to an image processing apparatus, method, and program, and more particularly, a buffer module is provided in at least one of the preceding and following stages of each of one or more image processing modules, and each module is in a pipeline form or a directed acyclic graph form. The present invention relates to an image processing apparatus that performs image processing by constructing an image processing unit connected in the above, an image processing method applicable to the image processing apparatus, 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 apparatuses and systems, for example, when various image data having different color spaces and the number of bits per pixel are input, or when image processing contents, procedures, parameters, and the like are variously changed, an image to be executed A configuration that can change processing flexibly is required.

このような要求を満たすために、特許文献1には、画像処理モジュールの前段及び後段の少なくとも一方にバッファモジュールが連結されるように、個々のモジュールをパイプライン形態又はDAG(Directed Acyclic Graph:有向非循環グラフ)形態で連結して成る画像処理部を構築し、画像処理部の個々の画像処理モジュールにおいて、自モジュールの前段から取得した画像データに所定の画像処理を行い、所定の画像処理を経た画像データ又は処理結果を自モジュールの後段へ出力する処理を繰り返させる処理管理部を設けることで、画像処理部によって処理対象の画像全体を処理させる技術が提案されている。
特開2006−338500号公報
In order to satisfy such a requirement, Patent Document 1 discloses that each module is connected in a pipeline form or a DAG (Directed Acyclic Graph: Existence) so that a buffer module is connected to at least one of the front and rear stages of the image processing module. The image processing unit is configured to be connected in the form of a non-circular graph), and in each image processing module of the image processing unit, predetermined image processing is performed on the image data acquired from the previous stage of the own module, and predetermined image processing is performed A technique has been proposed in which an image processing unit processes the entire image to be processed by providing a processing management unit that repeats the process of outputting image data or processing results that have undergone processing to the subsequent stage of the own module.
JP 2006-338500 A

ところで近年、コンピュータ等の性能向上に伴い、3次元の画像データや動画像データを取り扱うことが身近になってきている。しかし、3次元の画像データは2次元画像を表す2次元画像データが高さ方向(z軸方向)に多数連なったデータ構造であり、動画像データは2次元画像データが時間方向(t軸方向)に多数連なったデータ構造であるので、何れもデータ量が膨大である。これに対して特許文献1に記載の技術は、2次元画像データに対する画像処理を行うことを前提として開発された技術であり、2次元画像データ1フレームに対し、画像処理部の構築・構築した画像処理部による画像処理の実行・画像処理を完了した画像処理部の消去を行う構成である。このため、3次元画像の画像データや動画像データのように、膨大なデータ量の画像データに対する画像処理に上記技術を適用したとすると、処理に膨大な時間が掛かり、例えば動画像の再生と並行して動画像データに対する画像処理を行うことができない等、上記技術の用途が制限されてしまうという問題があった。   Incidentally, in recent years, with the improvement of the performance of computers and the like, it has become familiar to handle three-dimensional image data and moving image data. However, three-dimensional image data has a data structure in which two-dimensional image data representing a two-dimensional image is connected in the height direction (z-axis direction), and moving image data has two-dimensional image data in the time direction (t-axis direction). ), The amount of data is enormous. On the other hand, the technique described in Patent Document 1 is a technique developed on the premise that image processing is performed on two-dimensional image data, and an image processing unit is constructed and constructed for one frame of two-dimensional image data. This is a configuration for performing image processing by the image processing unit and erasing the image processing unit that has completed the image processing. For this reason, if the above-described technique is applied to image processing for a large amount of image data such as image data or moving image data of a three-dimensional image, the processing takes an enormous amount of time. There is a problem that the application of the above technique is limited, such as being unable to perform image processing on moving image data in parallel.

本発明は上記事実を考慮して成されたもので、画像データを構成する複数の処理単位に同一の画像処理を各々行う場合の処理効率の向上を実現できる画像処理装置、画像処理方法及び画像処理プログラムを得ることが目的である。   The present invention has been made in consideration of the above facts, and is an image processing apparatus, an image processing method, and an image that can realize improvement in processing efficiency when the same image processing is performed for each of a plurality of processing units constituting image data. The purpose is to obtain a processing program.

上記目的を達成するために請求項1記載の発明に係る画像処理装置は、自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムを各々記憶する記憶手段と、前記記憶手段に記憶されているプログラムにより、前記複数種の画像処理モジュールの中から選択した1つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方に前記バッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築した後に、構築した前記画像処理部のうちの前記画像処理モジュールにおいて、画像処理時に用いる変数を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理を含む第1の初期化処理を行わせる構築・初期化手段と、前記処理対象の画像データに対する画像処理を、前記処理対象の画像データを複数の処理単位に分割したときの個々の処理単位毎に前記画像処理部で行わせると共に、前記画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、前記画像処理部のうちの前記画像処理モジュールにおいて、前記第1の初期化処理から前記参照データ準備処理を除外した第1の再初期化処理を行わせた後に、前記処理対象の画像データのうちの未処理の処理単位に対する画像処理を前記画像処理部で行わせる処理管理手段と、を含んで構成されている。   In order to achieve the above object, an image processing apparatus according to the first aspect of the present invention performs image processing different from each other on image data acquired from a previous stage of its own module, and the image data that has undergone the image processing or the image processing A plurality of types of image processing modules that output the processing results of the module to the subsequent stage, and the image data output from the preceding module is written to the buffer and the image data stored in the buffer is read by the subsequent module. A storage unit for storing each of the buffer module programs to be output; and a pre-stage and a post-stage of each of the one or more image processing modules selected from the plurality of types of image processing modules by the program stored in the storage unit The buffer module is provided in at least one of the A variable initialization process and an image for initializing variables used at the time of image processing in the image processing module of the constructed image processing unit after constructing an image processing unit connected in a line form or a directed acyclic graph form Construction / initialization means for performing a first initialization process including a reference data preparation process for preparing reference data to be referred to at the time of processing, and image processing on the processing target image data, a plurality of processing target image data The image processing unit performs each processing unit when the image processing unit is divided, and each time the image processing for the single processing unit is completed in the image processing unit, In the image processing module, after performing the first reinitialization process excluding the reference data preparation process from the first initialization process, And an image processing with respect to untreated processing units of the image data is configured to include a, a processing management unit that performed in the image processing unit.

請求項1記載の発明では、自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムが記憶手段に各々記憶されている。また、請求項1記載の発明に係る構築・初期化手段は、記憶手段に記憶されているプログラムにより、複数種の画像処理モジュールの中から選択した1つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方にバッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築する。   In the first aspect of the present invention, a plurality of image processings are performed on the image data acquired from the previous stage of the own module, and the image data subjected to the image processing or the processing result of the image processing is output to the subsequent stage of the own module. Various kinds of image processing modules and buffer module programs for causing the image data output from the preceding module to be written to the buffer and reading the image data stored in the buffer by the subsequent module are stored in the storage means. Has been. Further, the construction / initialization means according to the invention of claim 1 includes a first stage of each of one or more image processing modules selected from a plurality of types of image processing modules and a program stored in the storage means. A buffer module is provided in at least one of the subsequent stages, and an image processing unit is constructed in which each module is connected in a pipeline form or a directed acyclic graph form.

また、構築・初期化手段は、画像処理部を構築した後に、構築した画像処理部のうちの画像処理モジュールにおいて、画像処理時に用いる変数(例えばポインタやカウンタ等)を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理(例えばLUT(Look Up Table)に設定する変換データを生成してLUTに設定したり、予め記憶媒体に記憶されている参照データをメモリに読み込む等の処理)を含む第1の初期化処理を行わせる。構築・初期化手段が画像処理モジュールで第1の初期化処理を行わせることで、画像処理部は処理対象の画像データに対する画像処理を行うことが可能な状態となり、処理管理手段は、処理対象の画像データに対する画像処理を、処理対象の画像データを複数の処理単位(この処理単位としては1フレーム分の2次元画像データが好適であるが、より小さい単位(例えば1フレーム分の2次元画像を複数の部分画像に分割したときの個々の部分画像を表すデータ)であってもよい)に分割したときの個々の処理単位毎に画像処理部で行わせる。なお、処理対象の画像データとしては、例えば請求項9に記載したように、3次元画像を表す3次元画像データや動画像データが好適であるが、2次元画像を表す2次元画像データ等であってもよい。   Further, the construction / initialization means is a variable initialization process for initializing variables (for example, a pointer and a counter) used during image processing in the image processing module of the constructed image processing unit after the image processing unit is constructed. In addition, reference data preparation processing for preparing reference data to be referred to during image processing (for example, conversion data to be set in a LUT (Look Up Table) is generated and set in the LUT, or reference data stored in advance in a storage medium is stored in the memory. The first initialization process including the process of reading in (1) is performed. The construction / initialization unit causes the image processing module to perform the first initialization process, so that the image processing unit can perform image processing on the image data to be processed. Image processing is performed on a plurality of processing units (two-dimensional image data for one frame is preferable as this processing unit, but a smaller unit (for example, a two-dimensional image for one frame) May be data representing individual partial images when the image data is divided into a plurality of partial images). As image data to be processed, for example, as described in claim 9, 3D image data or moving image data representing a 3D image is preferable, but 2D image data representing a 2D image, or the like. There may be.

上記のように、処理対象の画像データに対する画像処理を、処理対象の画像データを複数の処理単位に分割したときの個々の処理単位毎に行う場合、新たな処理単位に対する画像処理を開始する際には、画像処理時に用いる変数を初期化する変数初期化処理を再度行う必要がある。一方、画像データを構成する複数の処理単位に同一の画像処理を各々行う場合は、画像処理モジュールが画像処理時に参照する参照データも同一でよく、処理単位毎に相違させる必要はない。また、画像処理モジュールが行う画像処理の種類等によっては、参照データの生成に時間が掛かったり、膨大なデータ量の参照データをメモリに読み込む必要があり、参照データを準備する参照データ準備処理は長い時間を要することが多い。   As described above, when image processing for image data to be processed is performed for each individual processing unit when the image data to be processed is divided into a plurality of processing units, when image processing for a new processing unit is started In this case, it is necessary to perform the variable initialization process for initializing the variables used at the time of image processing again. On the other hand, when the same image processing is performed for each of a plurality of processing units constituting the image data, the reference data referred to by the image processing module at the time of image processing may be the same and does not need to be different for each processing unit. Also, depending on the type of image processing performed by the image processing module, it may take time to generate reference data, or it may be necessary to read a huge amount of reference data into the memory. Often it takes a long time.

上記に基づき請求項1記載の発明に係る処理管理手段は、画像処理部で単一の処理単位に対する画像処理が終了する毎に、画像処理部のうちの画像処理モジュールにおいて、第1の初期化処理から参照データ準備処理を除外した第1の再初期化処理を行わせた後に、処理対象の画像データのうちの未処理の処理単位に対する画像処理を画像処理部で行わせている。これにより、或る処理単位に対する画像処理が終了する毎に行われる第1の再初期化処理が短時間で終了し、未処理の新たな処理単位に対する画像処理を直ちに開始することができるので、画像データを構成する複数の処理単位に同一の画像処理を各々行う場合の処理効率の向上を実現することができる。   Based on the above, the processing management means according to the first aspect of the invention includes the first initialization in the image processing module of the image processing unit every time the image processing for the single processing unit is completed in the image processing unit. After performing the first re-initialization process excluding the reference data preparation process from the process, the image processing unit performs image processing on an unprocessed processing unit in the processing target image data. As a result, the first re-initialization process performed every time image processing for a certain processing unit is completed can be completed in a short time, and image processing for a new unprocessed processing unit can be started immediately. It is possible to improve the processing efficiency when the same image processing is performed for each of a plurality of processing units constituting the image data.

なお、請求項1記載の発明において、構築・初期化手段が、互いに独立して動作可能な複数のモジュール群から成る画像処理部を構築する場合、処理管理手段は、例えば請求項2に記載したように、画像処理部の個々のモジュール群で互いに異なる処理単位に対する画像処理を行わせると共に、複数のモジュール群のうちの何れかで単一の処理単位に対する画像処理が終了する毎に、画像処理が終了したモジュール群のうちの画像処理モジュールにおいて第1の再初期化処理を行わせた後に、処理対象の画像データのうちの未処理の処理単位に対する画像処理を画像処理が終了したモジュール群で行わせるように構成してもよい。   In the invention described in claim 1, when the construction / initialization means constructs an image processing unit composed of a plurality of module groups that can operate independently from each other, the process management means is described in claim 2, for example. As described above, each of the module groups of the image processing unit performs image processing for different processing units, and each time image processing for a single processing unit is completed in any one of the plurality of module groups, image processing is performed. After the first re-initialization process is performed in the image processing module in the module group in which the image processing is completed, the image processing for the unprocessed processing unit in the processing target image data is performed in the module group in which the image processing is completed. You may comprise so that it may be performed.

また、請求項1又は請求項2記載の発明において、例えば請求項3に記載したように、構築・初期化手段は、画像処理部を構築した後に、構築した画像処理部のうちのバッファモジュールにおいて、バッファとして用いるメモリ領域を確保する処理を含む第2の初期化処理を行わせ、処理管理手段は、画像処理部で単一の処理単位に対する画像処理が終了する毎に、画像処理部のうちのバッファモジュールにおいて、バッファの参照位置を先頭に戻す第2の再初期化処理を行わせるように構成してもよい。この場合、或る処理単位に対する画像処理が終了する毎に、メモリ領域を確保する処理に代えて、より短時間で処理可能なバッファの参照位置の更新(リセット)が行われるので、画像データを構成する複数の処理単位に同一の画像処理を各々行う場合の処理効率を更に向上させることができる。なお、請求項3記載の発明において、互いに独立して動作可能な複数のモジュール群から成る画像処理部が構築される場合には、請求項2記載の発明と同様に、個々のモジュール群を単位として第2の再初期化処理を行わせるように処理管理手段を構成すればよい。   In the invention described in claim 1 or claim 2, for example, as described in claim 3, the construction / initialization unit constructs the image processing unit and then constructs the buffer module in the constructed image processing unit. And a second initialization process including a process for allocating a memory area used as a buffer, and the process management unit is configured so that the image processing unit In the buffer module, the second re-initialization process for returning the buffer reference position to the top may be performed. In this case, every time image processing for a certain processing unit is completed, instead of the processing for securing the memory area, the buffer reference position that can be processed in a shorter time is updated (reset). It is possible to further improve the processing efficiency when the same image processing is performed for each of a plurality of processing units. In the invention described in claim 3, when an image processing unit composed of a plurality of module groups operable independently of each other is constructed, each module group is divided into units as in the invention described in claim 2. The process management means may be configured to perform the second re-initialization process.

また、或る処理単位に対する画像処理が行われることでバッファモジュールのバッファに記憶される画像処理結果は、別の処理単位に対する画像処理が行われる際に参照されることがあることを考慮すると、請求項3記載の発明において、処理管理手段は、例えば請求項4に記載したように、バッファモジュールにおいて第2の再初期化処理を行わせる前に、バッファモジュールのバッファとして用いていたメモリ領域に記憶されている画像処理結果を別のメモリ領域に複写することで前記画像処理結果を保存するように構成してもよい。これにより、或る処理単位に対する画像処理によって得られた画像処理結果を、別の処理単位に対する画像処理で参照することが可能となる。   Further, considering that image processing results stored in the buffer module buffer by performing image processing for a certain processing unit may be referred to when image processing for another processing unit is performed, In the invention described in claim 3, the process management means, for example, as described in claim 4, before the second re-initialization process in the buffer module is performed, the memory area used as the buffer of the buffer module is stored in the memory area. The image processing result may be stored by copying the stored image processing result to another memory area. Thereby, it is possible to refer to an image processing result obtained by image processing for a certain processing unit in image processing for another processing unit.

また、請求項1又は請求項2記載の発明において、例えば請求項5に記載したように、構築・初期化手段は、画像処理部を構築した後に、構築した画像処理部のうちのバッファモジュールにおいて、バッファとして用いるメモリ領域を確保する処理を含む第2の初期化処理を行わせ、処理管理手段は、画像処理部で単一の処理単位に対する画像処理が終了する毎に、画像処理部の既存のバッファモジュールでバッファとして用いていたメモリ領域を保存すると共に、新たなバッファモジュールを生成し、生成した新たなバッファモジュールを既存のバッファモジュールに代えて画像処理部に連結し、新たなバッファモジュールにおいて第2の初期化処理を行わせるように構成してもよい。この場合、請求項4記載の発明と同様に、或る処理単位に対する画像処理によって得られた画像処理結果を、別の処理単位に対する画像処理で参照することが可能となる。   In the invention described in claim 1 or claim 2, for example, as described in claim 5, after the construction / initialization unit constructs the image processing unit, the buffer module in the constructed image processing unit And a second initialization process including a process for allocating a memory area to be used as a buffer, and the process management means each time the image processing unit completes image processing for a single processing unit, The memory area used as a buffer in the buffer module is saved, a new buffer module is generated, the generated new buffer module is connected to the image processing unit instead of the existing buffer module, and the new buffer module You may comprise so that a 2nd initialization process may be performed. In this case, similarly to the fourth aspect of the invention, it is possible to refer to an image processing result obtained by image processing for a certain processing unit in image processing for another processing unit.

なお、請求項5記載の発明では、或る処理単位に対する画像処理が終了する毎に、新たに生成されて画像処理部に連結されたバッファモジュールでメモリ領域を確保する処理を含む第2の初期化処理が行われるので、前述の請求項3記載の発明よりは処理効率が低下するものの、処理効率低下の主因となっていたのは参照データ準備処理であり、請求項1記載の発明によって参照データ準備処理が省略されることで、従来よりは大幅な処理効率の向上を実現できる。   According to the fifth aspect of the present invention, a second initial process including a process of securing a memory area with a buffer module newly generated and connected to the image processing unit every time image processing for a certain processing unit is completed. Although the processing efficiency is lower than that of the invention described in claim 3 above, the reference data preparation process is the main cause of the reduction in processing efficiency, and is referred to by the invention described in claim 1. By omitting the data preparation processing, it is possible to realize a significant improvement in processing efficiency compared to the conventional case.

また、請求項4又は請求項5記載の発明において、構築・初期化手段が、構成が互いに同一でかつ他のモジュール群による他の処理単位に対する画像処理結果を参照して画像処理を行うように連結されたモジュール群を複数備えた画像処理部を構築する場合、処理管理手段は、例えば請求項6に記載したように、処理対象の画像データの特定の処理単位について、当該特定の処理単位に対する画像処理を行った任意のモジュール群の個々のバッファモジュールのバッファに記憶された画像処理結果が、処理対象の画像データのうちの何れの処理単位に対する画像処理を行うモジュール群によって参照されるかを判断し、判断結果を記憶することを、処理対象の画像データの個々の処理単位について各々行った後に、画像処理部の個々のモジュール群で互いに異なる処理単位に対する画像処理を行わせ、複数のモジュール群のうちの何れかで任意の処理単位に対する画像処理が終了する毎に、記憶した判断結果に基づき、画像処理の終了に伴い記憶している画像処理結果の他のモジュール群による参照が終了したバッファが出現したか否か判断し、該当するバッファが出現したと判断した場合に該当するバッファとして用いていたメモリ領域を解放するように構成することが好ましい。   Further, in the invention according to claim 4 or claim 5, the construction / initialization means performs image processing with reference to image processing results for other processing units having the same configuration and other modules. When constructing an image processing unit including a plurality of linked module groups, for example, as described in claim 6, the processing management unit is configured to process a specific processing unit of image data to be processed with respect to the specific processing unit. Whether the image processing result stored in the buffer of each buffer module of an arbitrary module group that has performed image processing is referred to by a module group that performs image processing for which processing unit of image data to be processed After determining and storing the determination result for each processing unit of the image data to be processed, each module of the image processing unit is stored. Each time a group of images is processed for different processing units, and image processing for an arbitrary processing unit is completed in any one of a plurality of module groups, based on the stored determination results, It is determined whether or not a buffer that has been referred to by another module group of the stored image processing results has appeared, and when it is determined that the corresponding buffer has appeared, the memory area used as the corresponding buffer is released. It is preferable to configure as described above.

構成が互いに同一でかつ他のモジュール群による他の処理単位に対する画像処理結果を参照して画像処理を行うように連結されたモジュール群を複数備えた画像処理部が構築され、当該画像処理部の個々のモジュール群で互いに異なる処理単位に対する画像処理を行わせる場合、或る処理単位に対する画像処理が終了しても、当該画像処理によって得られた画像処理結果が他の処理単位に対する画像処理で参照されるので、請求項4又は請求項5記載の発明のように画像処理結果を記憶するメモリ領域を保存しておく必要があるが、これに伴い、特に処理対象の画像データのデータ量が比較的大きい等の場合に、メモリ領域等のリソースが大量に使用されることになるという問題が生ずる。   An image processing unit having a plurality of module groups connected to perform image processing with reference to image processing results for other processing units having the same configuration and other module groups is constructed. When image processing for different processing units is performed in individual module groups, even if image processing for a certain processing unit is completed, the image processing result obtained by the image processing is referred to for image processing for other processing units. Therefore, it is necessary to save the memory area for storing the image processing result as in the invention of claim 4 or claim 5, and in accordance with this, the data amount of the image data to be processed is particularly compared. In the case of a large size, there arises a problem that a large amount of resources such as a memory area are used.

これに対して請求項6記載の発明は、処理対象の画像データの特定の処理単位に対する画像処理を行った任意のモジュール群の個々のバッファモジュールのバッファに記憶された画像処理結果が、処理対象の画像データのうちの何れの処理単位に対する画像処理を行うモジュール群によって参照されるかを判断し、判断結果を記憶することが、処理対象の画像データの個々の処理単位について各々行われ、画像処理の実行時には、複数のモジュール群のうちの何れかで任意の処理単位に対する画像処理が終了する毎に、記憶した判断結果に基づき、画像処理の終了に伴い記憶している画像処理結果の他のモジュール群による参照が終了したバッファが出現したか否か判断し、該当するバッファが出現したと判断した場合に該当するバッファとして用いていたメモリ領域を解放するので、記憶している画像処理結果が参照されなくなったバッファ(メモリ領域)が解放されずに残存することを防止することができ、画像処理の実行中のメモリ領域等のリソースの使用量を必要最小限に抑制することができる。   On the other hand, in the invention according to claim 6, the image processing result stored in the buffer of each buffer module of an arbitrary module group that has performed image processing on a specific processing unit of image data to be processed is processed. It is determined for each processing unit of the image data to be processed that each processing unit of the image data to be processed is stored by determining which processing unit of the image data is referred to by a module group that performs image processing, and storing the determination result. At the time of execution of the process, every time image processing for an arbitrary processing unit is completed in any one of a plurality of module groups, based on the stored determination result, other than the image processing result stored at the end of the image processing It is determined whether or not a buffer that has been referenced by the module group has appeared, and when it is determined that the corresponding buffer has appeared, The memory area that was being used is released, so it is possible to prevent the buffer (memory area) from which the stored image processing results are no longer referenced from being left unreleased. The amount of resources used such as areas can be minimized.

また、請求項4又は請求項5記載の発明において、構築・初期化手段が、構成が互いに同一でかつ他のモジュール群による他の処理単位に対する画像処理結果を参照して画像処理を行うように連結されたモジュール群を複数備えた画像処理部を構築する場合、処理管理手段は、例えば請求項7に記載したように、処理対象の画像データの特定の処理単位について、特定の処理単位に対する画像処理を行う任意のモジュール群が、処理対象の画像データのうちの何れの処理単位に対する画像処理を行うモジュール群に含まれるバッファモジュールのバッファに記憶された画像処理結果を参照するかを判断し、判断結果を記憶することを、処理対象の画像データの個々の処理単位について各々行った後に、画像処理部の個々のモジュール群に対して互いに異なる処理単位に対する画像処理の実行を指示すると共に、記憶した前記判断結果に基づき、画像処理が行う特定のモジュール群が参照する画像処理結果を記憶するバッファが存在しているか否かを、画像処理が行う個々のモジュール群について各々判断し、存在していないバッファが有ると判断した場合は、存在していないバッファを含むモジュール群を追加生成し、追加生成したモジュール群により、特定のモジュール群が参照する画像処理結果が得られる特定の処理単位に対する画像処理を行わせるように構成することが好ましい。   Further, in the invention according to claim 4 or claim 5, the construction / initialization means performs image processing with reference to image processing results for other processing units having the same configuration and other modules. When constructing an image processing unit including a plurality of connected module groups, the process management means, for example, as described in claim 7, for a specific processing unit of image data to be processed, an image for a specific processing unit It is determined whether an arbitrary module group that performs processing refers to an image processing result stored in a buffer of a buffer module included in a module group that performs image processing for which processing unit of image data to be processed, After the determination result is stored for each processing unit of the image data to be processed, each module group of the image processing unit is stored. Whether to instruct execution of image processing for different processing units, and based on the stored determination result, whether or not there is a buffer for storing an image processing result referred to by a specific module group to be subjected to image processing. Judgment is made for each module group to be processed, and if it is determined that there is a nonexistent buffer, a module group including a nonexistent buffer is additionally generated, and a specific module group is generated by the additionally generated module group. It is preferable that the image processing is performed for a specific processing unit in which an image processing result referred to by is obtained.

構成が互いに同一でかつ他のモジュール群による他の処理単位に対する画像処理結果を参照して画像処理を行うように連結されたモジュール群を複数備えた画像処理部が構築され、当該画像処理部の個々のモジュール群で互いに異なる処理単位に対する画像処理を行わせる場合、例えば、第1の処理単位に対する画像処理を行う特定モジュール群が、参照と必要とする第2の処理単位に対する画像処理結果が得られていないために画像処理を停止している一方、第2の処理単位に対する画像処理が、特定モジュール群による第1の処理単位に対する画像処理が終了した後に前記特定モジュール群に行わせる予定であった等のようにデッドロックが発生し、画像処理の進行が停止してしまう可能性がある。   An image processing unit having a plurality of module groups connected to perform image processing with reference to image processing results for other processing units having the same configuration and other module groups is constructed. When image processing is performed on different processing units in individual module groups, for example, a specific module group that performs image processing on the first processing unit obtains image processing results for the reference and necessary second processing units. However, the image processing for the second processing unit is scheduled to be performed by the specific module group after the image processing for the first processing unit by the specific module group is completed. There is a possibility that a deadlock occurs like this and the progress of the image processing is stopped.

これに対して請求項7記載の発明では、処理対象の画像データの特定の処理単位に対する画像処理を行う任意のモジュール群が、処理対象の画像データのうちの何れの処理単位に対する画像処理を行うモジュール群に含まれるバッファモジュールのバッファに記憶された画像処理結果を参照するかを判断し、判断結果を記憶することが、処理対象の画像データの個々の処理単位について各々行われ、また、記憶した前記判断結果に基づき、画像処理が行う特定のモジュール群が参照する画像処理結果を記憶するバッファが存在しているか否かを、画像処理が行う個々のモジュール群について各々判断し、存在していないバッファが有ると判断した場合は、存在していないバッファを含むモジュール群を追加生成し、追加生成したモジュール群により、特定のモジュール群が参照する画像処理結果が得られる特定の処理単位に対する画像処理を行わせるので、デッドロックが発生して画像処理の進行が停止してしまうことを防止することができる。   On the other hand, in the invention described in claim 7, any module group that performs image processing for a specific processing unit of image data to be processed performs image processing for any processing unit of the image data to be processed. It is determined whether to refer to the image processing result stored in the buffer of the buffer module included in the module group, and the determination result is stored for each processing unit of the image data to be processed. Based on the determination result, whether or not there is a buffer for storing an image processing result referred to by a specific module group that performs image processing is determined for each module group that performs image processing. If it is determined that there is no buffer, an additional module group including the nonexistent buffer is generated, and the additional generated module group More, since to perform image processing for a particular unit of processing is an image processing result reference specific modules obtained, it is possible to prevent the progress of the image processing deadlock will stop.

また、請求項1〜請求項7の何れかに記載の発明において、第1の再初期化処理で除外する処理は参照データ準備処理に限られるものではなく、例えば請求項8に記載したように、構築・初期化手段は、第1コンピュータ上で動作する第1のモジュール群と、第1コンピュータと通信回線を介して接続された第2コンピュータ上で動作する第2のモジュール群と、を含む画像処理部を構築した場合、構築した画像処理部のうち、隣接するモジュールとの間に通信回線が存在する特定の画像処理モジュールにおいて、第1コンピュータと第2コンピュータとの間にセッションを確立するための認証処理も含む第1の初期化処理を行わせ、処理管理手段は、画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、画像処理部のうちの特定の画像処理モジュールにおいて、第1の初期化処理から認証処理も除外した第1の再初期化処理を行わせるように構成してもよい。   Further, in the invention according to any one of claims 1 to 7, the process excluded in the first re-initialization process is not limited to the reference data preparation process. For example, as described in claim 8 The construction / initialization means includes a first module group that operates on the first computer, and a second module group that operates on the second computer connected to the first computer via a communication line. When the image processing unit is constructed, a session is established between the first computer and the second computer in a specific image processing module in which a communication line exists between adjacent modules among the constructed image processing units. A first initialization process including an authentication process for the image processing unit, and the process management unit includes: In the constant image processing module may be configured to cause the first re-initialization process that excluded the authentication process from the first initialization process.

認証処理では一般に暗号化情報を送受するので時間が掛かり、また、認証処理を繰り返し行うと、セキュリティ上の理由で相手コンピュータからセッションの確立を拒否される可能性もある。これに対して請求項8記載の発明では、画像処理部で単一の前記処理単位に対する画像処理が終了した場合に、画像処理部のうちの特定の画像処理モジュールにおいて、第1の初期化処理から認証処理も除外した第1の再初期化処理を行わせるので、認証処理が省略されることで処理効率が向上すると共に、処理対象の画像データを構成する全ての処理単位に対する画像処理が終了する前に相手コンピュータからセッションの確立を拒否されることで、処理対象の画像データに対する画像処理が中断してしまうことも防止することができる。   Authentication processing generally takes time because encrypted information is sent and received, and if authentication processing is repeated, establishment of a session may be rejected by the partner computer for security reasons. On the other hand, in the invention according to claim 8, when the image processing for the single processing unit is completed in the image processing unit, the first initialization process is performed in the specific image processing module of the image processing unit. Since the first re-initialization process excluding the authentication process is performed, the processing efficiency is improved by omitting the authentication process, and the image process for all the processing units constituting the image data to be processed is completed. If the establishment of the session is rejected by the partner computer before the image processing is performed, it is possible to prevent the image processing for the image data to be processed from being interrupted.

請求項10記載の発明に係る画像処理方法は、記憶手段は、自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムを各々記憶し、構築・初期化手段は、前記記憶手段に記憶されているプログラムにより、前記複数種の画像処理モジュールの中から選択した1つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方に前記バッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築した後に、構築した前記画像処理部のうちの前記画像処理モジュールにおいて、画像処理時に用いる変数を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理を含む第1の初期化処理を行わせ、処理管理手段は、前記処理対象の画像データに対する画像処理を、前記処理対象の画像データを複数の処理単位に分割したときの個々の処理単位毎に前記画像処理部で行わせると共に、前記画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、前記画像処理部のうちの前記画像処理モジュールにおいて、前記第1の初期化処理から前記参照データ準備処理を除外した第1の再初期化処理を行わせた後に、前記処理対象の画像データのうちの未処理の処理単位に対する画像処理を前記画像処理部で行わせるので、請求項1記載の発明と同様に、画像データを構成する複数の処理単位に同一の画像処理を各々行う場合の処理効率の向上を実現することができる。   In the image processing method according to the tenth aspect of the present invention, the storage means performs different image processing on the image data acquired from the previous stage of the own module, and the image data subjected to the image processing or the processing result of the image processing. A plurality of types of image processing modules for outputting the image data to the subsequent stage of the own module, and a buffer for causing the image data output from the previous module to be written to the buffer and the image data stored in the buffer to be read by the subsequent module Each of the module programs is stored, and the construction / initialization means includes a first stage of each of the one or more image processing modules selected from the plurality of types of image processing modules according to the program stored in the storage means, and The buffer module is provided in at least one of the subsequent stages, and each module is piped In the image processing module of the constructed image processing unit after constructing the image processing unit connected in the in-form or directed acyclic graph form, a variable initialization process and an image for initializing variables used in image processing A first initialization process including a reference data preparation process for preparing reference data to be referred to at the time of processing is performed, and the process management means performs image processing on the processing target image data, and converts the processing target image data into a plurality of processing target image data. The image processing unit performs each processing unit when divided into processing units, and each time image processing for a single processing unit is completed in the image processing unit, the image processing unit In the image processing module, after performing the first re-initialization process excluding the reference data preparation process from the first initialization process, the image to be processed Since image processing for unprocessed processing units in the data is performed by the image processing unit, the same image processing is performed for each of a plurality of processing units constituting image data, as in the first aspect of the invention. It is possible to improve the processing efficiency.

請求項11記載の発明に係る画像処理プログラムは、自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムを各々記憶する記憶手段を備えたコンピュータを、前記記憶手段に記憶されているプログラムにより、前記複数種の画像処理モジュールの中から選択した1つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方に前記バッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築した後に、構築した前記画像処理部のうちの前記画像処理モジュールにおいて、画像処理時に用いる変数を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理を含む第1の初期化処理を行わせる構築・初期化手段、及び、前記処理対象の画像データに対する画像処理を、前記処理対象の画像データを複数の処理単位に分割したときの個々の処理単位毎に前記画像処理部で行わせると共に、前記画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、前記画像処理部のうちの前記画像処理モジュールにおいて、前記第1の初期化処理から前記参照データ準備処理を除外した第1の再初期化処理を行わせた後に、前記処理対象の画像データのうちの未処理の処理単位に対する画像処理を前記画像処理部で行わせる処理管理手段として機能させる。   An image processing program according to an eleventh aspect of the invention performs different image processing on the image data acquired from the previous stage of the own module, and the image data that has undergone the image processing or the processing result of the image processing is stored in the own module. A plurality of types of image processing modules to be output to the subsequent stage, and a buffer module program that causes the image data output from the previous module to be written to the buffer and the image data stored in the buffer to be read by the subsequent module. At least one of the preceding and following stages of each of the one or more image processing modules selected from the plurality of types of image processing modules by a program stored in the storage means, each of which includes a storage means for storing. The buffer module is provided in the After constructing an image processing unit connected in an ipline form or a directed acyclic graph form, in the image processing module of the constructed image processing unit, a variable initialization process and an image for initializing variables used during image processing Construction / initialization means for performing a first initialization process including a reference data preparation process for preparing reference data to be referred to at the time of processing, and an image process for the process target image data. The image processing unit performs each processing unit when the processing unit is divided into a plurality of processing units, and each time the image processing for the single processing unit is completed in the image processing unit, In the image processing module, after performing the first re-initialization process excluding the reference data preparation process from the first initialization process, Image processing of untreated process unit of the image data to be processed to function as processing management means for causing by the image processing unit.

請求項11記載の発明に係る画像処理プログラムは、上記の記憶手段を備えたコンピュータを、上記の構築・初期化手段及び処理管理手段として機能させるためのプログラムであるので、コンピュータが請求項11記載の発明に係る画像処理プログラムを実行することで、コンピュータが請求項1に記載の画像処理装置として機能することになり、請求項1記載の発明と同様に、画像データを構成する複数の処理単位に同一の画像処理を各々行う場合の処理効率の向上を実現することができる。   The image processing program according to the invention described in claim 11 is a program for causing a computer including the storage means to function as the construction / initialization means and the process management means. By executing the image processing program according to the present invention, the computer functions as the image processing apparatus according to claim 1, and, similarly to the invention according to claim 1, a plurality of processing units constituting image data It is possible to improve the processing efficiency when performing the same image processing.

以上説明したように本発明は、画像処理部を構築した際には、画像処理時に用いる変数を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理を含む第1の初期化処理を画像処理モジュールで行わせ、処理対象の画像データを複数の処理単位に分割したときの単一の前記処理単位に対する画像処理が画像処理部で終了した場合には、第1の初期化処理から参照データ準備処理を除外した第1の再初期化処理を画像処理モジュールで行わせるようにしたので、画像データを構成する複数の処理単位に同一の画像処理を各々行う場合の処理効率の向上を実現できる、という優れた効果を有する。   As described above, the present invention includes a variable initialization process that initializes variables used during image processing and a reference data preparation process that prepares reference data referenced during image processing when an image processing unit is constructed. When the image processing module finishes the image processing for one processing unit when the image processing module divides the image data to be processed into a plurality of processing units, Since the first re-initialization process excluding the reference data preparation process from the initialization process is performed by the image processing module, the same image process is performed for each of a plurality of processing units constituting the image data. It has an excellent effect of improving the processing efficiency.

以下、図面を参照して本発明の実施形態の一例を詳細に説明する。   Hereinafter, an example of an embodiment of the present invention will be described in detail with reference to the drawings.

〔第1実施形態〕
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図1には、本発明に係る画像処理装置として機能することが可能なコンピュータ10が示されている。なお、このコンピュータ10は、複写機、プリンタ、ファクシミリ装置、これらの機能を兼ね備えた複合機、スキャナ、写真プリンタ等のように内部で画像処理を行う必要のある任意の画像取扱機器に組み込まれていてもよいし、パーソナル・コンピュータ(PC)等の独立したコンピュータであってもよく、更にPDA(Personal Digital Assistant)や携帯電話機等の携帯機器に組み込まれたコンピュータであってもよい。
[First Embodiment]
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 an 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 only needs to output 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. Various programs of applications 32 (indicated as application program group 32 in FIG. 1) to be processed are stored.

画像処理プログラム群34は、前述した各種の画像取扱機器や携帯機器を開発する際の開発負荷を軽減したり、PC等で利用可能な画像処理プログラムを開発する際の開発負荷を軽減することを目的として、各種の画像取扱機器や携帯機器、PC等の各種機器(プラットフォーム)で共通に使用可能に開発されたプログラムであり、本発明に係る画像処理プログラムに対応している。画像処理プログラム群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 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は、アプリケーションからの指示により、例として図2に示すように、予め定められた画像処理を行う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. As will be described in detail later, the processing construction unit 42 according to the present embodiment, according to an instruction from the application, as illustrated in FIG. 2 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 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 each image processing module constituting the image processing unit 50 is the first program.

個々の画像処理モジュール38は、例として図3(A)にも示すように、画像データに対する画像処理を所定の単位処理データ量ずつ行う画像処理エンジン38Aと、画像処理モジュール38の前段及び後段のモジュールとの画像データの入出力及び画像処理エンジン38Aの制御を行う制御部38Bから構成されている。個々の画像処理モジュール38における単位処理データ量は、画像の1ライン分、画像の複数ライン分、画像の1画素分、画像1面分等を含む任意のバイト数の中から、画像処理エンジン38Aが行う画像処理の種類等に応じて予め選択・設定されており、例えば色変換処理やフィルタ処理を行う画像処理モジュール38では単位処理データ量が1画素分とされ、拡大・縮小処理を行う画像処理モジュール38では単位処理データ量が画像の1ライン分又は画像の複数ライン分とされ、画像回転処理を行う画像処理モジュール38では単位処理データ量が画像1面分とされ、画像圧縮伸長処理を行う画像処理モジュール38では単位処理データ量が実行環境に依存するNバイトとされている。   As shown in FIG. 3A 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 set to 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, type, and the like of the image processing modules 38 registered in the module library 36 in the image processing program group 34. 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は、例として図3(B)にも示すように、バッファ40Aと、バッファモジュール40の前段及び後段のモジュールとの画像データの入出力及びバッファ40Aの管理を行うバッファ制御部40Bから構成されている。なお、バッファ40Aはコンピュータ10に設けられたメモリ14からオペレーティングシステム30及びリソース管理部46Cを通じて確保されたメモリ領域で構成される。個々のバッファモジュール40のバッファ制御部40Bもその実体はCPU12によって実行されるプログラムであり、モジュールライブラリ36にはバッファ制御部40Bのプログラムも登録されている(図1ではバッファ制御部40Bのプログラムを「バッファモジュール」と表記して示している)。   Further, as shown in FIG. 3B as an example, the individual buffer modules 40 constituting the image processing unit 50 are configured 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 46C. 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")

また、アプリケーション32からの指示に従って画像処理部50を構築する処理構築部42は、図1に示すように複数種のモジュール生成部44から構成されている。複数種のモジュール生成部44は互いに異なる画像処理に対応しており、アプリケーション32によって起動されることで、対応する画像処理を実現するための画像処理モジュール38及びバッファモジュール40から成るモジュール群を生成する処理を行う。なお、図1ではモジュール生成部44の一例として、モジュールライブラリ36に登録されている個々の画像処理モジュール38が実行する画像処理の種類に対応するモジュール生成部44を示しているが、個々のモジュール生成部44に対応する画像処理は、複数種の画像処理モジュール38によって実現される画像処理(例えばスキュー角検知処理と画像回転処理から成るスキュー補正処理)であってもよい。必要とされる画像処理が複数種の画像処理を組み合わせた処理である場合、アプリケーション32は複数種の画像処理の何れかに対応するモジュール生成部44を順次起動する。これにより、アプリケーション32によって順次起動されたモジュール生成部44により、必要とされる画像処理を行う画像処理部50が構築されることになる。   In addition, 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, 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 as an example of the module generation unit 44. 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.

また図1に示すように、処理管理部46は、画像処理部50における画像処理の実行を制御する処理フロー管理部46A、画像処理部50の各モジュールによるメモリ14や各種のファイル等のコンピュータ10のリソースの使用を管理するリソース管理部46C、及び、画像処理部50で発生したエラーを管理するエラー管理部46Bを含んで構成されている。エラー管理部46Bは、画像処理部50が画像処理を実行している途中でエラーが発生した場合に、発生したエラーの種別・発生箇所等のエラー情報を取得し、画像処理プログラム群34がインストールされたコンピュータ10が組み込まれている機器の種別や構成等を表す装置環境情報を記憶部20等から取得し、取得した装置環境情報が表す装置環境に応じたエラー通知方法を判断し、判断したエラー通知方法でエラーの発生を通知する処理を行う。   As shown in FIG. 1, the processing management unit 46 includes a processing flow management unit 46 </ b> A that controls execution of image processing in the image processing unit 50, the memory 10 by each module of the image processing unit 50, and the computer 10 such as various files. A resource management unit 46C that manages the use of these resources and an error management unit 46B that manages errors that have occurred in the image processing unit 50 are configured. When an error occurs while the image processing unit 50 is executing image processing, the error management unit 46B 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.

次に本実施形態の作用を説明する。画像処理プログラム群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 to 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 on the display unit 16 as a list, For example, the execution target process may be selected by the user.

上記のように、何らかの画像処理を行う必要のある状況になったことを検知すると、アプリケーション32は、処理管理部46のプログラムを実行するスレッド(プロセス又はオブジェクトでもよい:以下同様)を生成することで、コンピュータ10上で動作する処理管理部46のワークフロー管理部46A、リソース管理部46B及びエラー管理部46Cを各々生成する。続いてアプリケーション32は、画像処理対象の画像データを供給する画像データ供給部22の種別を認識し、認識した種別がバッファ領域(メモリ14の一部領域)であった場合には、画像データ供給部22として指定されたバッファ領域を既に確保されたバッファ40Aとしてバッファ制御部40Bに認識させるパラメータを設定し、バッファ制御部40Bのプログラムを実行するスレッドを生成する(バッファ制御部40Bを生成する)ことで、指定されたバッファ領域を含むバッファモジュール40(画像データ供給部22として機能するバッファモジュール40)を生成する。   As described above, when it is detected that a situation where it is necessary to perform some image processing is performed, the application 32 generates a thread (which may be a process or an object; the same applies below) that executes the program of the processing management unit 46. Thus, a workflow management unit 46A, a resource management unit 46B, and an error management unit 46C of the process management unit 46 operating on the computer 10 are generated. Subsequently, the application 32 recognizes the type of the image data supply unit 22 that supplies the image data to be processed, and if the recognized type is the buffer area (partial area of the memory 14), the image data supply A parameter for causing the buffer control unit 40B to recognize the buffer area designated as the unit 22 as an already secured buffer 40A is set, and a thread for executing the program of the buffer control unit 40B is generated (the buffer control unit 40B is generated). Thus, the buffer module 40 including the designated buffer area (the buffer module 40 functioning as the image data supply unit 22) is generated.

続いてアプリケーション32は、上記と同様に、画像処理を行った画像データの出力先としての画像出力部24の種別を認識し、認識した種別がバッファ領域(メモリ14の一部領域)であった場合は、画像出力部24として指定されたバッファ領域を含むバッファモジュール40を上記と同様にして生成する。ここで生成されたバッファモジュール40は画像出力部24として機能する。また、アプリケーション32は実行すべき画像処理の内容を認識し、実行すべき画像処理を、個々のモジュール生成部44に対応するレベルの画像処理の組み合わせに分解し、実行すべき画像処理を実現するために必要な画像処理の種類及び個々の画像処理の実行順序を判定する。なお、この判定は、例えば上記の画像処理の種類及び個々の画像処理の実行順序を、ユーザが実行を指示可能なジョブの種類と対応付けて予め情報として登録しておき、アプリケーション32は、実行が指示されたジョブの種類に対応する情報を読み出すことによって実現することができる。   Subsequently, in the same manner as described above, the application 32 recognizes the type of the image output unit 24 as the output destination of the image data subjected to image processing, and the recognized type is the buffer area (partial area of the memory 14). In this case, the buffer module 40 including the buffer area designated as the image output unit 24 is generated in the same manner as described above. 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. 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は、上記で判定した画像処理の種類及び実行順序に基づいて、特定の画像処理に対応するモジュール生成部44を起動(モジュール生成部44のプログラムを実行するスレッドを生成)した後に、起動したモジュール生成部44に対し、当該モジュール生成部44によるモジュール群の生成に必要な情報として、前記モジュール群に画像データを入力する入力モジュールを識別するための入力モジュール識別情報、前記モジュール群が画像データを出力する出力モジュールを識別するための出力モジュール識別情報、前記モジュール群に入力される入力画像データの属性を表す入力画像属性情報、実行すべき画像処理のパラメータを通知して対応するモジュール群の生成を指示する。また、必要とされる画像処理が複数種の画像処理を組み合わせた処理である場合、アプリケーション32は、指示したモジュール生成部44からモジュール群の生成完了が通知されると、個々の画像処理に対応する他のモジュール生成部44を起動してモジュール群の生成に必要な情報を通知する処理を個々の画像処理の実行順序の昇順に繰り返す。   Then, the application 32 activates the module generation unit 44 corresponding to the specific image processing (generates a thread for executing the program of the module generation unit 44) based on the type and execution order of the image processing determined above. Input module identification information for identifying 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 for the activated module generation unit 44, and the module group Output module identification information for identifying an output module that outputs image data, input image attribute information that represents an attribute of input image data input to the module group, and a corresponding module that notifies parameters of image processing to be executed Instruct the generation of a group. In addition, when the required image processing is a combination of a plurality of types of image processing, the application 32 responds to individual image processing when notified of completion of generation of the module group from the instructed module generation unit 44. The process of starting the other module generation unit 44 and notifying the information necessary for generating the module group is repeated in ascending order of the execution order of the individual image processes.

なお、上記の入力モジュールは、実行順序が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. As 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 the module generation unit 44 generates and sets it 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 can be instructed by the user, and information corresponding to the type of job instructed to be executed is read out. As a result, the application 32 may recognize it, or the user may specify it.

一方、モジュール生成部44は、アプリケーション32によって起動されるとモジュール生成処理を行う。モジュール生成処理では、まず生成対象の画像処理モジュール38に入力される入力画像データの属性を表す入力画像属性情報を取得する。なお、入力画像データの属性を取得する処理は、生成対象の画像処理モジュール38の前段にバッファモジュール40が存在している場合、当該バッファモジュール40に画像データの書き込みを行う更に前段の画像処理モジュール38から出力画像データの属性を取得することによって実現できる。   On the other hand, the module generation unit 44 performs module generation processing when activated by the application 32. In the module generation process, first, input image attribute information representing an attribute of input image data input to the generation target image processing module 38 is acquired. Note that the processing for acquiring the attributes of the input image data is performed in the case where the buffer module 40 exists in the previous stage of the generation target image processing module 38 and the image processing module in the previous stage that writes image data in the buffer module 40. This can be realized by acquiring the attributes of the output image data from the image data 38.

そして、取得した情報が表す入力画像データの属性に基づいて、生成対象の画像処理モジュール38の生成が必要か否か判定する。例えばモジュール生成部44が色変換処理を行うモジュール群を生成するモジュール生成部であり、画像処理のパラメータにより出力画像データの色空間としてCMY色空間がアプリケーション32から指定された場合、取得した入力画像属性情報に基づいて入力画像データがRGB色空間のデータであることが判明したときには、色空間処理を行う画像処理モジュール38としてRGB→CMYの色空間変換を行う画像処理モジュール38を生成する必要があるが、入力画像データがCMY色空間のデータであったときには、入力画像データの属性と出力画像データの属性が色空間に関して一致しているので、色空間変換処理を行う画像処理モジュール38は生成不要と判断する。   Then, based on the attribute of the input image data represented by the acquired information, it is determined whether the generation of the image processing module 38 to be generated is necessary. For example, the module generation unit 44 is a module generation unit that generates a group of modules that perform color conversion processing. When the CMY color space is designated as the color space of the output image data by the image processing parameter from the application 32, the acquired input image When the input image data is found to be RGB color space data based on the attribute information, it is necessary to generate an image processing module 38 that performs RGB → CMY color space conversion as an image processing module 38 that performs color space processing. However, when the input image data is data in the CMY color space, the attribute of the input image data and the attribute of the output image data match with respect to the color space, so that the image processing module 38 that performs color space conversion processing generates Judge as unnecessary.

生成対象の画像処理モジュール38の生成が必要と判断した場合には、生成対象の画像処理モジュール38の後段にバッファモジュール40が必要が否かを判定する。この判定は、画像処理モジュールの後段が出力モジュール(画像出力部24)である場合(例えば図2(A)〜(C)に示す画像処理部50における最後段の画像処理モジュール38を参照)や、例として図2(B)に示す画像処理部50においてスキュー角検知処理を行う画像処理モジュール38のように、画像処理モジュールが、画像データに対して解析等の画像処理を行いその結果を他の画像処理モジュール38へ出力するモジュールである場合は否定されるが、上記以外の場合は判定が肯定されてバッファ制御部40Bを起動することで、画像処理モジュール38の後段に連結するバッファモジュール40を生成する。   If it is determined that the generation target image processing module 38 needs to be generated, it is determined whether the buffer module 40 is required after the generation target image processing module 38. This determination is made when the subsequent stage of the image processing module is the 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. 2A to 2C). As an example, like the image processing module 38 that performs skew angle detection processing in the image processing unit 50 shown in FIG. 2B, the image processing module performs image processing such as analysis on the image data, and the result is the other. In the case other than the above, the determination is affirmed, and the buffer control unit 40B is activated to activate the buffer module 40 connected to the subsequent stage of the image processing module 38. Is generated.

続いて、前段のモジュール(例えばバッファモジュール40)の情報、後段のバッファモジュール40の情報(後段にバッファモジュール40を生成した画像処理モジュール38のみ)、画像処理モジュール38に入力される入力画像データの属性、処理パラメータを与えて、モジュールライブラリ36に登録されており、画像処理モジュール38として利用可能な複数の候補モジュールの中から、先に取得した入力画像データの属性、及び、画像処理モジュール38で実行すべき処理パラメータに合致する画像処理モジュール38を選択・生成する。   Subsequently, information on the preceding module (for example, the buffer module 40), information on the succeeding buffer module 40 (only the image processing module 38 that generated the buffer module 40 in the succeeding stage), and input image data input to the image processing module 38 Attributes and processing parameters are given and registered in the module library 36. Among a plurality of candidate modules that can be used as the image processing module 38, the attributes of the input image data acquired earlier and the image processing module 38 An image processing module 38 that matches the processing parameter to be executed is selected and generated.

例えばモジュール生成部44が色変換処理を行うモジュール群を生成するモジュール生成部であり、処理パラメータにより出力画像データの色空間としてCMY色空間が指定され、更に入力画像データがRGB色空間のデータであった場合には、モジュールライブラリ36に登録されている各種の色空間処理を行う複数種の画像処理モジュール38の中から、RGB→CMYの色空間変換を行う画像処理モジュール38が選択・生成される。また、画像処理モジュールが拡大・縮小処理を行う画像処理モジュール38であり、指定された拡大縮小率が50%以外であれば、入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール38が選択・生成され、指定された拡大縮小率が50%であれば、拡大縮小率50%に特化した拡大縮小処理、すなわち入力された画像データを1画素おきに間引くことで50%に縮小する縮小処理を行う画像処理モジュール38が選択・生成される。   For example, the module generation unit 44 is a module generation unit that generates a group of modules that perform color conversion processing. The CMY color space is specified as the color space of the output image data by the processing parameter, and the input image data is data in the RGB color space. If there is, an image processing module 38 that performs RGB → CMY color space conversion is selected and generated from a plurality of types of image processing modules 38 that perform various color space processing registered in the module library 36. The 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 that performs the reduction process is selected and generated 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 one pixel. An image processing module 38 that performs a reduction process of reducing to 50% by thinning out at intervals is selected and generated.

なお、画像処理モジュール38の選択は上記に限られるものではなく、例えば画像処理エンジン38Aによる画像処理における単位処理データ量が異なる画像処理モジュール38をモジュールライブラリ36に複数登録しておき、画像処理部50へ割当可能なメモリ領域のサイズ等の動作環境に応じて、適切な単位処理データ量の画像処理モジュール38を選択する(例えば上記サイズが小さくなるに従って単位処理データ量の小さい画像処理モジュール38を選択する等)ようにしてもよいし、アプリケーション32或いはユーザに選択させるようにしてもよい。またモジュール生成部44が、複数種の画像処理モジュール38によって実現される画像処理(例えばスキュー角検知処理を行う画像処理モジュール38と画像回転処理を行う画像処理モジュール38によって実現されるスキュー補正処理)を行うモジュール群を生成する場合には、上記処理が繰り返されて2個以上の画像処理モジュール38を含むモジュール群が生成される。   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. Further, the module generation unit 44 performs image processing realized by a plurality of types of image processing modules 38 (for example, skew correction processing realized by the image processing module 38 that performs skew angle detection processing and the image processing module 38 that performs image rotation processing). When generating a module group for performing the above, the above process is repeated to generate a module group including two or more image processing modules 38.

例えば図4(A)に示すように、アプリケーション32によって規定(指定)されるのは、目的とする画像処理を実現するための画像処理モジュール38の種類や配置順序等のみであるが、アプリケーション32によって順次起動された処理構築部42の個々のモジュール生成部44により、以上のモジュール生成処理が順次行われることで、例として図2(A)〜(C)や図4(B)に示すように、必要に応じてバッファモジュールが挿入され、目的とする画像処理を行う画像処理部50が構築される。   For example, as shown in FIG. 4A, what is defined (specified) by the application 32 is only the type and arrangement order of the image processing module 38 for realizing the target image processing. As shown in FIG. 2A to FIG. 4C and FIG. 4B as an example, the module generation processing described above is sequentially performed by the individual module generation units 44 of the processing construction unit 42 that is sequentially started by the above. In addition, a buffer module is inserted as necessary, and the image processing unit 50 that performs the target image processing is constructed.

また、本実施形態に係る画像処理部50は、2次元画像データが高さ方向(z軸方向)に多数連なったデータ構造の3次元画像データや、2次元画像データが時間方向(t軸方向)に多数連なったデータ構造の動画像データを処理対象とすることも可能とされているが、データ量が比較的多い3次元画像データや動画像データを処理対象とする場合や、高速処理が要求されている等の場合には、例えば図4(A)に「モジュール群数=n」と表記したように、モジュール構成が同一(画像処理内容が同一)で互いに独立して並列に動作するモジュール群の生成数もアプリケーション32によって規定(指定)される。モジュール群の生成数が指定された場合、処理構築部42は、指定された生成数だけモジュール群を生成する。なお、図4(B)はモジュール群が3個生成された場合を示している。   In addition, the image processing unit 50 according to the present embodiment is configured such that three-dimensional image data having a data structure in which two-dimensional image data is continuously arranged in the height direction (z-axis direction) or two-dimensional image data in the time direction (t-axis direction ), It is possible to process moving image data having a data structure that is connected in large numbers. However, when processing 3D image data or moving image data having a relatively large amount of data, or high-speed processing is possible. For example, as shown in FIG. 4A, “number of module groups = n”, the module configuration is the same (the image processing content is the same), and the modules operate independently and in parallel. The number of generated module groups is also specified (specified) by the application 32. When the generation number of the module group is specified, the process construction unit 42 generates the module group by the specified generation number. FIG. 4B shows a case where three module groups are generated.

なお、モジュール群の生成数はアプリケーション32によって規定(指定)されることに限られるものではない。例えば処理対象の画像データが動画像データであり、画像処理部50に対し、画像処理を経た動画像データを20fpsの転送レートで出力することが要求されている一方、単一のモジュール群における画像処理が5fpsの転送レートに相当する処理速度であった場合、処理構築部42は要求性能を満足するモジュール群の生成数を演算し、算出された生成数=4と同数のモジュール群を生成するようにしてもよい。   The number of generated module groups is not limited to being specified (designated) by the application 32. For example, image data to be processed is moving image data, and the image processing unit 50 is required to output moving image data that has undergone image processing at a transfer rate of 20 fps. If the processing is at a processing speed corresponding to a transfer rate of 5 fps, the process construction unit 42 calculates the number of modules that satisfy the required performance, and generates the same number of modules as the calculated number of generations = 4. You may do it.

また、画像処理部50として動作するプログラムの実行については、画像処理部50を構成する個々のモジュールを単位とし、個々のモジュールのプログラムを実行するスレッドを生成し、CPU12によって実行させることも可能であるが、本実施形態では、モジュール構成が同一(画像処理内容が同一)で互いに独立して並列に動作するモジュール群を単位としてスレッドを生成し、CPU12によって実行させている。   In addition, the execution of the program that operates as the image processing unit 50 can be executed by the CPU 12 by generating a thread for executing the program of each module in units of individual modules constituting the image processing unit 50. However, in this embodiment, a thread is generated and executed by the CPU 12 in units of module groups having the same module configuration (the same image processing content) and operating in parallel independently of each other.

上記のようにして、処理構築部42によって画像処理部50が構築され、画像処理部50の構築が完了したことが処理構築部42から処理管理部46(のワークフロー管理部46A)に通知されると、処理管理部46(のワークフロー管理部46A)では、図5に示す処理管理部処理を行う。以下、この処理管理部処理について説明する。   As described above, the processing construction unit 42 constructs the image processing unit 50, and the processing construction unit 42 notifies the processing management unit 46 (the workflow management unit 46A) that the construction of the image processing unit 50 is completed. Then, the process management unit 46 (the workflow management unit 46A) performs the process management unit process shown in FIG. Hereinafter, this process management part process is demonstrated.

図4(B)に示すように、本第1実施形態に係る処理管理部46(のワークフロー管理部46A)は、各モジュール群の末尾に位置している画像処理モジュール38(最終画像処理モジュール38)の情報を登録するためのモジュールリスト、任意のモジュール群で任意の処理単位についての画像処理が終了することで画像処理結果が記憶されたバッファモジュール40(のバッファ40A)の情報を登録するための保存バッファリスト、及び、処理実行中の処理単位の情報を登録するための処理中リストを保持しており、ステップ100では、処理構築部42によって構築された画像処理部50を構成する各モジュール群の最終画像処理モジュール38の情報をモジュールリストに登録し(例として図4(C)には、3個のモジュール群の最終画像処理モジュール38の情報"M1-3","M2-3","M3-3"がモジュールリストに登録された状態を示している)、次のステップ102では保存バッファリスト及び処理中リストをクリアする。 As shown in FIG. 4B, the process management unit 46 (the workflow management unit 46A) according to the first embodiment is an image processing module 38 (final image processing module 38) located at the end of each module group. ) For registering information of the buffer module 40 (the buffer 40A thereof) in which the image processing result is stored by completing the image processing for an arbitrary processing unit in an arbitrary module group. Storage buffer list and a processing list for registering information of processing units being executed. In step 100, each module constituting the image processing unit 50 constructed by the processing construction unit 42 is stored. The information of the final image processing module 38 of the group is registered in the module list (for example, FIG. Yuru 38 information "M 1-3", "M 2-3 ", "M 3-3" indicates the state of being registered in the module list), a buffer list and process in the list stored in the next step 102 To clear.

ステップ104では個々のモジュール群を識別するための変数iを1に初期化し、次のステップ106では、モジュールリストを参照してモジュール群iの最終画像処理モジュール38を認識し、認識したモジュール群iの最終画像処理モジュール38に対して初期化処理の実行を指示する。これにより、モジュール群iの最終画像処理モジュール38において、画像処理時に用いる変数(例えばポインタやカウンタ、中間データ(例えばディザ化処理における拡散誤差値)等)を初期化する変数初期化処理や、画像処理時に参照する参照データを準備する(例えばLUTに設定する変換データを生成してLUTに設定したり、予め記憶媒体に記憶されている参照データをメモリに読み込む等の)参照データ準備処理を含む初期化処理が行われる。この初期化処理は請求項1に記載の第1の初期化処理に対応している。   In step 104, a variable i for identifying each module group is initialized to 1. In the next step 106, the final image processing module 38 of the module group i is recognized with reference to the module list, and the recognized module group i is recognized. The final image processing module 38 is instructed to execute initialization processing. Thereby, in the final image processing module 38 of the module group i, a variable initialization process for initializing variables used at the time of image processing (for example, a pointer, a counter, intermediate data (for example, a diffusion error value in the dithering process), etc.) Includes reference data preparation processing that prepares reference data to be referred to at the time of processing (for example, generates conversion data to be set in the LUT and sets it in the LUT, or reads the reference data stored in the storage medium in advance into the memory). Initialization processing is performed. This initialization process corresponds to the first initialization process described in claim 1.

また、初期化処理を完了した最終画像処理モジュール38は、自モジュールの前段のモジュールに対して初期化処理の実行が指示されたことを通知する。最終画像処理モジュール38の前段に存在しているのは、通常はバッファモジュール40であり、バッファモジュール40は、自モジュールの後段のモジュールから初期化処理の実行が指示されると、処理中にバッファ制御部40Bが用いる変数(例えばポインタ等)を初期化する変数初期化処理や、バッファ40Aとして用いるメモリ領域をリソース管理部46Cを通じて確保するメモリ確保処理を含む初期化処理を行う。この初期化処理は請求項3,5に記載の第2の初期化処理に対応している。そして、初期化処理を完了したバッファモジュール40は、自モジュールの前段のモジュールに対して初期化処理の実行が指示されたことを通知する。これにより、図4(C)に白抜きの矢印で示すように、初期化処理の実行指示がモジュール群iの最終画像処理モジュール38から各モジュールへ順に伝播していき、モジュール群iの各モジュールで上述した初期化処理が各々行われることになる。   In addition, the final image processing module 38 that has completed the initialization process notifies the previous module of the module that the execution of the initialization process has been instructed. The buffer module 40 is normally present in the previous stage of the final image processing module 38. When the execution of the initialization process is instructed from the module in the subsequent stage of the own module, the buffer module 40 is buffered during the process. An initialization process including a variable initialization process for initializing variables (for example, pointers) used by the control unit 40B and a memory securing process for securing a memory area used as the buffer 40A through the resource management unit 46C is performed. This initialization process corresponds to the second initialization process described in claims 3 and 5. Then, the buffer module 40 that has completed the initialization process notifies the preceding module of the module that the execution of the initialization process has been instructed. As a result, as indicated by white arrows in FIG. 4C, the execution instruction for the initialization process is propagated in order from the final image processing module 38 of the module group i to each module, and each module of the module group i Thus, the above-described initialization process is performed.

モジュール群iの全モジュールで初期化処理が終了するとステップ108へ移行し、変数iがモジュール群の生成数nに達したか否か判定する。判定が否定された場合はステップ110へ移行し、変数iを1だけインクリメントした後にステップ106に戻る。これにより、ステップ108の判定が肯定される迄ステップ106〜ステップ110が繰り返され、画像処理部50の全てのモジュール群で初期化処理が行われる。なお、上述したステップ100〜ステップ110の処理を行う処理管理部46は、画像処理部50の構築を行う処理構築部42と共に本発明に係る構築・初期化手段(より詳しくは請求項2,3,5に記載の構築・初期化手段)に対応しており、ステップ112以降の処理を行う処理管理部46は、本発明に係る処理管理手段(より詳しくは請求項2,5〜7に記載の処理管理手段)に対応している。   When the initialization process is completed for all modules in the module group i, the process proceeds to step 108, and it is determined whether or not the variable i has reached the module group generation number n. If the determination is negative, the process proceeds to step 110, and after the variable i is incremented by 1, the process returns to step 106. Thus, steps 106 to 110 are repeated until the determination in step 108 is affirmed, and initialization processing is performed in all the module groups of the image processing unit 50. It should be noted that the processing management unit 46 that performs the processing of Step 100 to Step 110 described above, together with the processing construction unit 42 that constructs the image processing unit 50, constructs and initializes according to the present invention. , 5, and the process management unit 46 that performs the processing from step 112 onward is a process management means according to the present invention (more specifically, claims 2 to 7). To process management means).

また、ステップ108の判定が肯定されてステップ112へ移行し、個々のモジュール群を識別するための変数i、及び、画像データを複数の処理単位に分割したときの個々の処理単位を識別するための変数jを各々1に初期化する。次のステップ114では、モジュール群iの最終画像処理モジュール38に対し、出力画像の処理単位jのデータを得る画像処理の実行を指示(処理要求を入力)し、ステップ116では処理単位jを処理中リストに登録する。次のステップ118では変数iがモジュール群の生成数nに達したか否か判定する。判定が否定された場合はステップ120へ移行し、変数i及び変数jを各々1づつインクリメントした後にステップ114に戻る。これにより、ステップ118の判定が肯定される迄ステップ114〜ステップ120が繰り返され、画像処理部50の全てのモジュール群に対し、出力画像の互いに異なる処理単位のデータを得る画像処理の実行が各々指示される。   In addition, the determination in step 108 is affirmed, and the process proceeds to step 112 to identify a variable i for identifying individual module groups and individual processing units when image data is divided into a plurality of processing units. Are initialized to 1 respectively. In the next step 114, the final image processing module 38 of the module group i is instructed to execute image processing for obtaining data of the processing unit j of the output image (inputs a processing request). In step 116, the processing unit j is processed. Register to the medium list. In the next step 118, it is determined whether or not the variable i has reached the module group generation number n. If the determination is negative, the process proceeds to step 120, and the variable i and the variable j are incremented by 1, respectively, and then the process returns to step 114. Thus, steps 114 to 120 are repeated until the determination in step 118 is affirmed, and execution of image processing for obtaining data of different processing units of the output image is performed for all module groups of the image processing unit 50. Instructed.

なお、ステップ114〜ステップ120では個々のモジュール群への処理単位の割当てを逐次行っているが、処理単位の割当ては並列に行ってもよく、その場合、個々のモジュール群へ割当てる処理単位が重複しないように、個々のモジュール群へ割当てる処理単位を決定する際に排他制御を行うように構成すればよい。   In steps 114 to 120, the processing units are assigned to the individual module groups sequentially. However, the processing units may be assigned in parallel, and in this case, the processing units assigned to the individual module groups are duplicated. In order to avoid this, exclusive control may be performed when determining a processing unit to be assigned to each module group.

以下、画像処理の実行が指示された場合の画像処理部50の個々のモジュールにおける処理を説明するが、以下では説明を簡単にするために、処理対象の画像データが3次元画像データ又は動画像データであり、処理対象の画像データ中の個々の2次元画像データを処理単位とする場合を説明する。   Hereinafter, the processing in each module of the image processing unit 50 when the execution of the image processing is instructed will be described. However, in order to simplify the description, the image data to be processed is three-dimensional image data or a moving image. A case will be described in which individual two-dimensional image data in the image data to be processed is a processing unit.

上記のように、処理管理部46(処理フロー管理部46A)から処理要求が入力される(図3(A)の(1)も参照)と、画像処理モジュール38は、自モジュールの前段のモジュール(通常はバッファモジュール40)に対して画像データを要求する(図3(A)の(2)も参照)。後段の画像処理モジュール38からのデータ要求に対し、前段のバッファモジュール40のバッファ40Aに読出可能な有効データが単位読出データ量以上記憶されていれば、前段のバッファモジュール40から後段の画像処理モジュール38へ読出領域の先頭アドレスが通知されて画像データの読出が要請される。これにより、後段の画像処理モジュール38は先頭アドレスが通知された前段のバッファモジュール40の読出領域から単位読出データ量の画像データを読み出す(図3(A)の(3)も参照)。   As described above, when a processing request is input from the processing management unit 46 (processing flow management unit 46A) (see also (1) in FIG. 3A), the image processing module 38 is a module preceding the own module. The image data is requested to the (usually the buffer module 40) (see also (2) in FIG. 3A). In response to a data request from the subsequent-stage image processing module 38, if more than the unit read data amount is stored in the buffer 40A of the previous-stage buffer module 40, the subsequent-stage image processing module is transferred from the previous-stage buffer module 40. 38 is notified of the start address of the reading area, and reading of image data is requested. As a result, the subsequent image processing module 38 reads the image data of the unit read data amount from the read area of the previous buffer module 40 notified of the head address (see also (3) in FIG. 3A).

次に、画像処理モジュール38は自モジュールの後段のモジュール(最終画像処理モジュール38であれば画像出力部24)に対してデータ出力用の領域を要求し、データ出力領域(後段のモジュールがバッファモジュール40であれば当該バッファモジュール40から先頭アドレスが通知された書込領域)が取得できたら(図3(A)の(4)も参照)、先に前段のモジュールから取得した画像データ、後段のモジュールから取得したデータ出力領域(の先頭アドレス)を画像処理エンジン38Aに入力し、入力したデータに対して所定の画像処理を行わせる(図3(A)の(5)も参照)と共に、処理後のデータをデータ出力領域に書き込ませる(図3(A)の(6)も参照)。そして、画像処理エンジン38Aへの単位読出データ量のデータの入力が完了し、画像処理エンジン38Aから出力されたデータがデータ出力領域に全て書き込まれると、出力完了を後段のモジュールに通知すると共に、先に入力された処理要求に対応する処理を完了したことを処理要求元(処理管理部46)へ通知する(図3(A)の(7)も参照)。個々の画像処理モジュール38で上記処理が繰り返されることで、画像処理部50における画像処理が実現される。   Next, the image processing module 38 requests an area for data output from the module subsequent to the module itself (the image output unit 24 if the final image processing module 38), and the data output area (the module at the subsequent stage is a buffer module). If it is 40, the write area in which the start address is notified from the buffer module 40) can be acquired (see also (4) in FIG. 3A), the image data acquired from the previous module first, The data output area (first address) acquired from the module is input to the image processing engine 38A, and predetermined image processing is performed on the input data (see also (5) in FIG. 3A). The later data is written in the data output area (see also (6) in FIG. 3A). 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 output completion is notified to the subsequent module, and The process request source (process management unit 46) is notified that the process corresponding to the previously input process request has been completed (see also (7) in FIG. 3A). The image processing in the image processing unit 50 is realized by the above processing being repeated in each image processing module 38.

また、バッファモジュール40のバッファ制御部40Bは、自モジュールの後段のモジュール(通常は画像処理モジュール38)から画像データが要求されると(図3(B)の(1)も参照)、要求された画像データがバッファ40Aに記憶されているか否かチェックする(図3(B)の(2)も参照)が、読出可能な有効データがバッファ40Aに単位読出データ量以上記憶されていない場合は、処理管理部46に対して画像データを要求する(図3(B)の(3)も参照)。処理管理部46は、画像データ要求元のバッファモジュール40の前段に位置している画像処理モジュール38に処理要求を入力する(図3(B)の(4)も参照)。そして、図3(A)に示したシーケンスを経て、前段の画像処理モジュール38によってバッファ40Aに画像データが書き込まれ(図3(B)の(5),(6)も参照)、バッファ40Aから読出可能な有効データが単位読出データ量以上になると、バッファモジュール40から後段の画像処理モジュール38に対して読出領域の先頭アドレスが通知され、後段の画像処理モジュール38によってバッファモジュール40のバッファ40Aから画像データが読み出されることになる(図3(B)の(7)も参照)。   Further, the buffer control unit 40B of the buffer module 40 is requested when image data is requested from a module (usually the image processing module 38) of its own module (see also (1) in FIG. 3B). It is checked whether or not the image data is stored in the buffer 40A (see also (2) in FIG. 3B). However, if the readable valid data is not stored in the buffer 40A for more than the unit read data amount, Then, the image data is requested to the process management unit 46 (see also (3) in FIG. 3B). The process management unit 46 inputs a process request to the image processing module 38 located in the preceding stage of the buffer module 40 that is the image data request source (see also (4) in FIG. 3B). Then, through the sequence shown in FIG. 3A, the image data is written into the buffer 40A by the image processing module 38 in the previous stage (see also (5) and (6) in FIG. 3B), and from the buffer 40A. When the readable effective data exceeds the unit read data amount, the buffer module 40 notifies the subsequent image processing module 38 of the start address of the reading area, and the subsequent image processing module 38 uses the buffer 40A of the buffer module 40 from the buffer 40A. Image data is read out (see also (7) in FIG. 3B).

なお、個々の画像処理モジュール38は、処理要求の入力時に指示された出力画像の処理単位jを、自モジュールで実行する画像処理の処理内容に基づき、対応する入力画像の処理単位kへ換算する機能を有している。例えば画像の拡大/縮小や圧縮/解凍等以外の画像処理を行う画像処理モジュール38では、入力画像の処理単位k=出力画像の処理単位jとなるが、例えば処理対象としての3次元画像データをz軸方向に1/n倍に縮小する画像処理を行う画像処理モジュール38では、上記の換算機能により、指示された出力画像の処理単位jが、入力画像の処理単位kの範囲=nj−(n−1)〜njへ換算される。そして、画像処理モジュール38からその前段のモジュールへのデータ要求時には、上記の換算機能によって得られた入力画像の処理単位の範囲内のデータ(最初は前記範囲内の先頭のデータ)が要求される。このデータ要求が、個々の画像処理モジュール38で換算されながらより前段のモジュールへ伝播していくことで、個々のモジュール群の先頭に位置している画像処理モジュール38は、画像データ供給部22に記憶されている処理対象の画像データのうち、処理管理部46から要求された処理単位のデータを最終画像処理モジュール38から出力させるための入力画像の処理単位(の範囲)を認識することができ、認識した処理単位のデータを画像データ供給部22から読み出す。   Each image processing module 38 converts the processing unit j of the output image designated at the time of inputting the processing request into the processing unit k of the corresponding input image based on the processing content of the image processing executed by the own module. It has a function. For example, in the image processing module 38 that performs image processing other than image enlargement / reduction or compression / decompression, the input image processing unit k is equal to the output image processing unit j. For example, three-dimensional image data to be processed is processed. In the image processing module 38 that performs image processing that is reduced to 1 / n times in the z-axis direction, the processing unit j of the output image that is instructed is the range of the processing unit k of the input image = nj− ( n-1) to nj. When data is requested from the image processing module 38 to the preceding module, data within the range of the processing unit of the input image obtained by the conversion function (initially, the first data within the range) is requested. . The data request is propagated to the previous module while being converted by the individual image processing module 38, so that the image processing module 38 positioned at the head of each module group is sent to the image data supply unit 22. Of the stored image data to be processed, the processing unit (range) of the input image for causing the final image processing module 38 to output the processing unit data requested from the processing management unit 46 can be recognized. The data of the recognized processing unit is read from the image data supply unit 22.

一方、処理管理部46は、先のステップ114〜ステップ120で画像処理部50の全てのモジュール群に対して画像処理の実行を指示すると、ステップ118の判定が肯定されてステップ122へ移行し、画像処理の実行を指示した各モジュール群の何れかから全体処理の終了(先に指示した出力画像の特定の処理単位のデータを得る画像処理の終了)が通知されたか否か判定する。そして処理管理部46は、この判定が肯定される迄ステップ122を繰り返すが、この間、任意のモジュール群の任意のバッファモジュール40からデータ要求が入力される毎に、データ要求入力元のバッファモジュール40の前段の画像処理モジュール38に処理要求を入力すると共に、任意のモジュール群の最終画像処理モジュール38から処理完了通知が入力される毎に、当該最終画像処理モジュール38に処理要求を再度入力する処理を行う。これにより、個々のモジュール群において、出力画像のうち先に指示した互いに異なる処理単位のデータを得るための画像処理が互いに独立かつ並列に行われ、各処理単位のデータが画像出力部24に順次書き込まれる。   On the other hand, when the process management unit 46 instructs execution of image processing to all the module groups of the image processing unit 50 in the previous steps 114 to 120, the determination in step 118 is affirmed and the process proceeds to step 122. It is determined whether or not the end of the whole process (end of image processing for obtaining data of a specific processing unit of the output image instructed earlier) is notified from any of the module groups instructed to execute the image processing. The process management unit 46 repeats step 122 until this determination is affirmed. During this time, every time a data request is input from an arbitrary buffer module 40 of an arbitrary module group, the buffer module 40 that is the data request input source. The processing request is input to the preceding image processing module 38, and each time a processing completion notification is input from the final image processing module 38 of any module group, the processing request is input to the final image processing module 38 again. I do. Thereby, in each module group, image processing for obtaining data of different processing units instructed earlier in the output image is performed independently and in parallel, and the data of each processing unit is sequentially sent to the image output unit 24. Written.

また、任意のモジュール群の最終画像処理モジュール38から全体処理の終了(先に指示した出力画像の特定の処理単位のデータを得る画像処理の終了)が通知されると、ステップ122の判定が肯定されてステップ124へ移行し、出力画像の単一の処理単位についての画像処理が終了したモジュール群(全体処理の終了を通知した最終画像処理モジュール38を含むモジュール群)を構成する個々のバッファモジュール40の情報(例えば個々のバッファモジュール40のバッファ40Aを構成するメモリ領域のアドレス等)を保存バッファリストに登録する(例として図6に示す保存バッファリストも参照)。   Further, when the final image processing module 38 of any module group notifies the end of the entire processing (end of the image processing for obtaining data of a specific processing unit of the output image specified earlier), the determination in step 122 is affirmative. Then, the process proceeds to step 124, and the individual buffer modules constituting the module group (the module group including the final image processing module 38 that has notified the end of the entire process) that has completed the image processing for a single processing unit of the output image. 40 information (for example, the address of the memory area constituting the buffer 40A of each buffer module 40) is registered in the save buffer list (see also the save buffer list shown in FIG. 6 as an example).

次のステップ126では、出力画像の中に何れのモジュール群でも画像処理が行われていない(未処理の)処理単位が存在しているか否か判定する。判定が肯定された場合はステップ128へ移行し、出力画像の単一の処理単位についての画像像処理が終了したモジュール群に設けられていたバッファモジュール40と同数(ステップ124で保存バッファリストに情報を登録したバッファモジュール40と同数)のバッファモジュール40を追加生成する。そしてステップ130では、ステップ128で追加生成したバッファモジュール40を、先のステップ124で保存バッファリストに情報を登録したバッファモジュール40に代えて、出力画像の単一の処理単位についての画像処理が終了したモジュール群に繋ぎ直す(例として図6に示すバッファモジュールB4-1,B4-2も参照)。 In the next step 126, it is determined whether or not there is a processing unit in which no image processing is performed (unprocessed) in any module group in the output image. If the determination is affirmative, the process proceeds to step 128, and the same number as the buffer modules 40 provided in the module group for which the image image processing has been completed for a single processing unit of the output image (the information is stored in the storage buffer list in step 124). The same number of buffer modules 40 as the number of registered buffer modules 40 are generated. In step 130, the buffer module 40 additionally generated in step 128 is replaced with the buffer module 40 in which information is registered in the storage buffer list in the previous step 124, and image processing for a single processing unit of the output image is completed. (For example, see also buffer modules B 4-1 and B 4-2 shown in FIG. 6).

また、次のステップ132では、出力画像の単一の処理単位についての画像処理が終了した特定のモジュール群の最終画像処理モジュール38に対し、再初期化処理の実行を指示する。これにより、特定のモジュール群の最終画像処理モジュール38では、先に説明した画像処理モジュール38の初期化処理のうち、参照データ準備処理を除外した処理(例えば変数初期化処理等)から成る再初期化処理が行われる。この再初期化処理は請求項1に記載の第1の再初期化処理に対応している。また、再初期化処理を完了した最終画像処理モジュール38は、自モジュールの前段のモジュールに対して再初期化処理の実行が指示されたことを通知する。最終画像処理モジュール38の前段に存在しているバッファモジュール40では、後段のモジュールから再初期化処理の実行が指示されると、先に説明した変数初期化処理やメモリ確保処理を含むバッファモジュール40の初期化処理を行った後に、自モジュールの前段のモジュールに対して再初期化処理の実行が指示されたことを通知する。   In the next step 132, the final image processing module 38 of the specific module group that has completed the image processing for the single processing unit of the output image is instructed to execute the reinitialization processing. Thereby, the final image processing module 38 of the specific module group performs re-initialization including processing (for example, variable initialization processing) excluding the reference data preparation processing among the initialization processing of the image processing module 38 described above. Processing is performed. This re-initialization process corresponds to the first re-initialization process described in claim 1. In addition, the final image processing module 38 that has completed the reinitialization process notifies the previous module of the module that the execution of the reinitialization process has been instructed. In the buffer module 40 existing in the preceding stage of the final image processing module 38, when the execution of the reinitialization process is instructed from the subsequent module, the buffer module 40 including the variable initialization process and the memory securing process described above. After performing the initialization process, the module in front of the module is notified that execution of the re-initialization process has been instructed.

これにより、図6に白抜きの矢印で示すように、再初期化処理の実行指示が特定のモジュール群の最終画像処理モジュール38から各モジュールへ順に伝播していき、特定のモジュール群の画像処理モジュール38では再初期化処理が、バッファモジュール40では初期化処理が各々行われ、特定のモジュール群が、出力画像の新たな処理単位についての画像処理を実行することが可能な状態となる。なお、処理管理部46から各モジュールに対して再初期化処理の実行を同時又はほぼ同時に指示することで、各モジュールで再初期化処理(又は初期化処理)を並列に行わせるようにしてもよい。   As a result, as shown by the white arrow in FIG. 6, the re-initialization processing execution instruction is propagated in order from the final image processing module 38 of the specific module group to each module, and the image processing of the specific module group is performed. Re-initialization processing is performed in the module 38 and initialization processing is performed in the buffer module 40, so that a specific module group can execute image processing for a new processing unit of the output image. Note that the re-initialization process (or initialization process) may be performed in parallel in each module by instructing each module to execute the re-initialization process simultaneously or almost simultaneously from the process management unit 46. Good.

画像処理モジュール38で行われる初期化処理に含まれる参照データ準備処理は、一般に処理に長い時間を要し、画像処理モジュール38が行う画像処理の種類に依っては、画像データに対する画像処理よりも処理時間が長くなる場合もある。これに対し、特に3次元画像データや動画像データに対する画像処理では、3次元画像データや動画像データを構成する多数の2次元画像データに対して同一の画像処理が行われ、2次元画像データに対する画像処理の内容を個々の2次元画像データ毎に切替える必要が無いことが殆どである。上記に基づき本実施形態では、或るモジュール群で出力画像の任意の処理単位についての画像処理を終了し、未処理の処理単位が残存していた場合には、前記モジュール群の個々の画像処理モジュール38において、初期化処理から参照データ準備処理を除外した再初期化処理を行わせるので、出力画像の任意の処理単位についての画像処理を終了したモジュール群が、出力画像の新たな処理単位についての画像処理を実行することが可能な状態に短時間で切り替わり、画像処理部50における画像処理の処理効率を向上させることができる。   The reference data preparation process included in the initialization process performed by the image processing module 38 generally takes a long time to process. Depending on the type of image processing performed by the image processing module 38, the reference data preparation process is more than the image processing for image data. Processing time may be long. On the other hand, in particular, in the image processing for 3D image data or moving image data, the same image processing is performed on a large number of 2D image data constituting the 3D image data or moving image data. In most cases, it is not necessary to switch the content of image processing for each two-dimensional image data. Based on the above, in the present embodiment, when an image processing for an arbitrary processing unit of an output image is finished in a certain module group and an unprocessed processing unit remains, individual image processing of the module group is performed. In the module 38, the reinitialization process excluding the reference data preparation process from the initialization process is performed, so that the module group that has finished the image process for an arbitrary processing unit of the output image has a new processing unit for the output image. It is possible to switch to a state where the image processing can be executed in a short time, and the processing efficiency of the image processing in the image processing unit 50 can be improved.

これにより、例えば処理対象の画像データが動画像データである場合に、画像処理部50における画像処理の処理効率が低レベルであることが、動画像データのインタラクティブ性やリアルタイム性を阻害する要因となることを防止することができ、画像処理部50を、動画像データや3次元画像データに対する画像処理に適用することが可能となる。   Thus, for example, when the image data to be processed is moving image data, the low processing efficiency of the image processing in the image processing unit 50 is a factor that hinders the interactivity and real-time property of the moving image data. Therefore, the image processing unit 50 can be applied to image processing for moving image data and three-dimensional image data.

出力画像の任意の処理単位についての画像処理を終了したモジュール群が、上記の再初期化処理の実行指示により、出力画像の新たな処理単位についての画像処理を実行することが可能な状態になると、ステップ134では変数jを1だけインクリメントし、次のステップ136では、新たな処理単位についての画像処理を実行することが可能な状態になったモジュール群の最終画像処理モジュール38に対し、出力画像の処理単位jのデータを得る画像処理の実行を指示し、次のステップ138で処理単位jを処理中リストに登録してステップ122に戻る。これにより、出力画像の任意の処理単位についての画像処理を終了したモジュール群が新たに出現する毎に、ステップ122の判定が肯定され、上述したステップ124〜ステップ138が繰り返される。そして、前述のステップ126の判定が否定されると、全てのモジュール群で画像処理が終了した後に、各モジュール群として機能するスレッドの実行を停止させ、画像処理の終了をアプリケーション32へ通知して処理管理部処理を終了する。   When a module group that has finished image processing for an arbitrary processing unit of an output image can execute image processing for a new processing unit of the output image in accordance with the execution instruction for the reinitialization processing described above. In step 134, the variable j is incremented by 1. In the next step 136, the output image is output to the final image processing module 38 of the module group that is ready to execute image processing for a new processing unit. The execution of image processing for obtaining data of the processing unit j is instructed, and in the next step 138, the processing unit j is registered in the processing list, and the processing returns to step 122. Thereby, every time a module group that has finished image processing for an arbitrary processing unit of the output image newly appears, the determination in step 122 is affirmed, and the above-described steps 124 to 138 are repeated. If the determination in step 126 is negative, after the image processing has been completed for all the module groups, execution of threads that function as each module group is stopped, and the end of the image processing is notified to the application 32. The process management process ends.

〔第2実施形態〕
次に本発明の第2実施形態について説明する。なお、本第2実施形態は第1実施形態と同一の構成であるので、各部分に同一の符号を付して構成の説明を省略し、以下、本第2実施形態の作用を説明する。
[Second Embodiment]
Next, a second embodiment of the present invention will be described. Since the second embodiment has the same configuration as that of the first embodiment, the same reference numerals are given to the respective parts, description of the configuration is omitted, and the operation of the second embodiment will be described below.

第1実施形態で説明した処理管理部処理(図5)では、或るモジュール群で出力画像の任意の処理単位についての画像処理が終了する毎に、前記モジュール群の個々のバッファモジュール40のバッファ40Aとして用いていたメモリ領域の情報を保存バッファリストに登録し、前記メモリ領域に記憶されている画像処理結果を保存するようにしていたが、画像処理部50を構成するモジュール群の数や、個々のモジュール群に設けられたバッファモジュール40の数、処理対象の画像データのデータ量が多くなるに従い、画像処理部50での画像処理が終了する前にメモリ領域等のリソースの不足が生ずる可能性が高くなるという問題がある。   In the process management unit process (FIG. 5) described in the first embodiment, every time image processing for an arbitrary processing unit of an output image is completed in a certain module group, the buffer of each buffer module 40 of the module group is completed. The information on the memory area used as 40A is registered in the save buffer list, and the image processing results stored in the memory area are saved, but the number of module groups constituting the image processing unit 50, As the number of buffer modules 40 provided in each module group and the amount of image data to be processed increase, a shortage of resources such as a memory area may occur before the image processing in the image processing unit 50 ends. There is a problem that the property becomes high.

また、画像処理モジュール38の中には、例えばN×N×N(但しN≧2)のフィルタ処理等のように、他のモジュール群による出力画像の他の処理単位についての画像処理の結果を参照して画像処理を行う画像処理モジュール38が存在しているが、画像処理部50がこの種の画像処理モジュール38を含んで構築されたものの、アプリケーション32によって指定されたモジュール群の生成数nが、上記の画像処理モジュール38によって参照される画像処理結果の数に比して小さい場合、例えば、処理単位j1についての画像処理を行うモジュール群iが、参照と必要とする処理単位j2についての画像処理結果が得られていないために画像処理を停止している一方、処理単位j2についての画像処理が、モジュール群iによる処理単位j1についての画像処理が終了した後にモジュール群iに行わせる順番になっていた等のようにデッドロックが発生し、画像処理部50における画像処理の進行が停止してしまう恐れがある。 Further, in the image processing module 38, the results of image processing for other processing units of the output image by other module groups, such as N × N × N (where N ≧ 2) filter processing, for example, are displayed. Although there is an image processing module 38 that performs image processing with reference, the number n of module groups specified by the application 32 is generated although the image processing unit 50 is constructed to include this type of image processing module 38. Is smaller than the number of image processing results referred to by the image processing module 38, for example, the module group i that performs image processing on the processing unit j 1 is referred to and required processing unit j 2. while the image processing result for has stopped image processing to not obtained, the image processing of the processing unit j 2 is the processing unit by module group i j 1 Deadlock As such image processing with had become the order to be performed by the modules i after the termination occurs, the progress of the image processing in the image processing unit 50 to lead to a stop.

本第2実施形態に係る処理管理部処理は上述した問題を解決するものであり、以下、図7を参照して本第2実施形態に係る処理管理部処理を説明する。なお、以下では処理構築部42により、例として図8に示すように、画像データ供給部22に接続され画像データ供給部22から画像データを読み出す第1及び第2の画像処理モジュール38(例えば画像処理モジュールM1-1,M1-2)、第1の画像処理モジュール38又は第2の画像処理モジュール38の後段に各々連結された第1及び第2のバッファモジュール40(例えばバッファモジュールB1-1,B1-2)、第1及び第2のバッファモジュール40の後段に各々連結された第3の画像処理モジュール38(例えば画像処理モジュールM1-3)、第3の画像処理モジュール38の後段に連結された第3のバッファモジュール40(例えばバッファモジュールB1-3)、及び、同一のモジュール群及び他の複数のモジュール群の第3のバッファモジュール40の後段に各々連結された第4の画像処理モジュール38(例えば画像処理モジュールM1-4)から成るモジュール群が3個設けられた画像処理部50が構築されたものとして説明する。上記構成において、第4の画像処理モジュール38は「他のモジュール群による他の処理単位についての画像処理の結果を参照して画像処理を行う」画像処理モジュール38に対応している。 The process management unit process according to the second embodiment solves the above-described problem. Hereinafter, the process management unit process according to the second embodiment will be described with reference to FIG. Hereinafter, as shown in FIG. 8 as an example, the processing construction unit 42 is connected to the image data supply unit 22 to read out image data from the image data supply unit 22 (for example, an image processing module 38). processing module M 1-1, M 1-2), the first image processing module 38 or the first and second buffer module 40 are respectively connected to the rear stage of the second image processing module 38 (e.g., the buffer module B 1 -1 , B 1-2 ), a third image processing module 38 (for example, an image processing module M 1-3 ) and a third image processing module 38 respectively connected to the subsequent stage of the first and second buffer modules 40. A third buffer module 40 (for example, buffer module B 1-3 ) connected to the subsequent stage, and a third buffer module of the same module group and a plurality of other module groups In the following description, it is assumed that the image processing unit 50 including three module groups each including the fourth image processing module 38 (for example, the image processing module M 1-4 ) connected to the subsequent stage of the module 40 is constructed. In the above configuration, the fourth image processing module 38 corresponds to the image processing module 38 that “performs image processing with reference to the result of image processing for another processing unit by another module group”.

図7に示すように、第2実施形態に係る処理管理部処理では、第1実施形態で説明した処理管理部処理(図5)と同様に、画像処理部50を構成する各モジュール群の最終画像処理モジュール38の情報をモジュールリストに登録し(ステップ100)、保存バッファリスト及び処理中リストをクリア(ステップ102)した後に、各モジュール群の最終画像処理モジュール38に対して初期化処理の実行を各々指示する(ステップ104〜ステップ110)。   As shown in FIG. 7, in the process management unit process according to the second embodiment, as in the process management unit process (FIG. 5) described in the first embodiment, the final process of each module group constituting the image processing unit 50 is performed. After the information of the image processing module 38 is registered in the module list (step 100) and the storage buffer list and the processing list are cleared (step 102), the initialization processing is executed for the final image processing module 38 of each module group. (Step 104 to step 110).

一方、本第2実施形態に係る処理管理部46(のワークフロー管理部46A)は、第1実施形態で説明したモジュールリスト、保存バッファリスト及び処理中リストに加え、出力画像の任意の処理単位についての画像処理を行うモジュール群の個々の画像処理モジュール38が、出力画像の何れの処理単位についての画像処理を行うモジュール群の何れのバッファモジュール40に記憶される画像処理結果を用いて画像処理を行うかを表す依存関係情報を、出力画像の個々の処理単位毎及び単一のモジュール群を構成する個々の画像処理モジュール38毎に登録するための依存関係リスト、及び、出力画像の任意の処理単位についての画像処理が終了することで保存バッファリストに情報が登録されたバッファモジュール40(のバッファ40Aとして用いていたメモリ領域)を解放する際の条件を表す解放条件情報を、出力画像の個々の処理単位毎及び単一のモジュール群を構成する個々のバッファモジュール40毎に登録するための解放リストを保持しており、次のステップ111では上記の依存関係リスト及び解放リストに登録する各情報の生成・各リストへの登録を行う。   On the other hand, the processing management unit 46 (the workflow management unit 46A) according to the second embodiment, for an arbitrary processing unit of the output image, in addition to the module list, the storage buffer list, and the processing list described in the first embodiment. Each image processing module 38 of the module group that performs the image processing of the image processing unit performs image processing using the image processing result stored in any buffer module 40 of the module group that performs image processing for any processing unit of the output image. Dependency list for registering dependency relationship information indicating whether to perform each processing unit of the output image and each image processing module 38 constituting a single module group, and arbitrary processing of the output image When the image processing for the unit is completed, the buffer module 40 (the buffer 40A of the buffer module 40 in which information is registered in the storage buffer list) Release for registering release condition information indicating conditions for releasing the memory area used for each processing unit of the output image and each buffer module 40 constituting a single module group In the next step 111, information to be registered in the dependency list and release list is generated and registered in each list.

なお、依存関係リストに登録する依存関係情報は以下の処理で得ることができる。すなわち、特定の画像処理モジュール38に対し、当該特定の画像処理モジュール38における画像処理の処理内容、前記特定の画像処理モジュール38の前段に連結されているバッファモジュール40の数、前記特定の画像処理モジュール38の前段に連結されている個々のバッファモジュール40が何れのモジュール群に属しているか等に基づき、前記特定の画像処理モジュール38を含む特定のモジュール群が出力画像の特定の処理単位についての画像処理を行う際に、特定の画像処理モジュール38が、前段に連結されているバッファモジュール40のうちの何れのバッファモジュール40(出力画像の何れの処理単位についての画像処理を行うモジュール群に属するバッファモジュール40)に記憶される画像処理結果を用いるかを判断し、判断結果を記憶することを、特定のモジュール群が出力画像の各処理単位についての画像処理を行う場合について各々行う。上記処理を単一のモジュール群内の個々の画像処理モジュール38について各々行うことで依存関係情報を生成することができる。   Note that the dependency relationship information registered in the dependency relationship list can be obtained by the following processing. That is, with respect to a specific image processing module 38, the processing contents of the image processing in the specific image processing module 38, the number of buffer modules 40 connected to the preceding stage of the specific image processing module 38, the specific image processing Based on which module group each buffer module 40 connected to the previous stage of the module 38 belongs to, a specific module group including the specific image processing module 38 is used for a specific processing unit of an output image. When performing image processing, a specific image processing module 38 belongs to any of the buffer modules 40 connected in the previous stage (which belongs to a module group that performs image processing for any processing unit of an output image). Whether to use the image processing result stored in the buffer module 40) Disconnection, and storing a determination result, performs each case a particular module group performs image processing for each processing unit of an output image. Dependency information can be generated by performing the above processing for each image processing module 38 in a single module group.

図8には、依存関係リストに登録した依存関係情報(の一部)を模式的に示している。図8等において、Mx-yは出力画像の処理単位xについての画像処理を行うモジュール群におけるy番目の画像処理モジュール38を、Bx-yは出力画像の処理単位xについての画像処理を行うモジュール群におけるy番目のバッファモジュール40を各々意味し、例えば、依存関係リスト上で画像処理モジュールM1-3がバッファモジュールB1-1,B1-2と対応付けられているのは、出力画像の処理単位1についての画像処理を行うモジュール群の3番目の画像処理モジュール38は、同モジュール群における1番目及び2番目のバッファモジュール40に記憶されている画像処理結果を用いて画像処理を行うことを表しており、画像処理モジュールM2-4がバッファモジュールB1-3,B2-3,B3-3と対応付けられているのは、出力画像の処理単位2についての画像処理を行うモジュール群の4番目の画像処理モジュール38は、出力画像の処理単位1についての画像処理を行うモジュール群の3番目のバッファモジュール40、出力画像の処理単位2についての画像処理を行うモジュール群の3番目のバッファモジュール40、及び、出力画像の処理単位3についての画像処理を行うモジュール群の3番目のバッファモジュール40に記憶されている画像処理結果を各々用いて画像処理を行うことを表している。 FIG. 8 schematically shows (part of) the dependency relationship information registered in the dependency relationship list. In FIG. 8 and the like, M xy is the y-th image processing module 38 in the module group that performs image processing for the output image processing unit x, and B xy is the module group that performs image processing for the output image processing unit x. Each of the y-th buffer modules 40 means that, for example, the image processing module M 1-3 is associated with the buffer modules B 1-1 and B 1-2 on the dependency relationship list. The third image processing module 38 in the module group that performs image processing for unit 1 performs image processing using the image processing results stored in the first and second buffer modules 40 in the module group. The image processing module M 2-4 is associated with the buffer modules B 1-3 , B 2-3 , and B 3-3 in the processing unit 2 of the output image. The fourth image processing module 38 of the module group that performs image processing on the third buffer module 40 of the module group that performs image processing on the output image processing unit 1, and image processing on the output image processing unit 2 The image processing is performed using the image processing results stored in the third buffer module 40 of the module group performing the image processing and the third buffer module 40 of the module group performing the image processing for the processing unit 3 of the output image. Represents what to do.

また、解放リストに登録する解放条件情報は、例えば依存関係リストに登録した依存関係情報を、「出力画像の特定の処理単位についての画像処理を行うモジュール群の特定のバッファモジュール40」の情報をキーとして検索し、検索キーとして用いたバッファモジュール40の情報と対応付けられている画像処理モジュール38の情報を全て抽出し、検索キーとして用いたバッファモジュールの情報を、抽出した個々の画像処理モジュール38の情報と各々対応付けることを、出力画像の個々の処理単位及び単一のモジュール群内の個々のバッファモジュール40について各々行うことで生成することができる。   The release condition information registered in the release list includes, for example, the dependency relationship information registered in the dependency list, and information on “a specific buffer module 40 of a module group that performs image processing for a specific processing unit of an output image”. Search as a key, extract all the information of the image processing module 38 associated with the information of the buffer module 40 used as the search key, and extract the information of the buffer module used as the search key as individual image processing modules The association with each of the 38 pieces of information can be generated by performing each processing unit of the output image and each buffer module 40 in a single module group.

図8には、解放リストに登録した解放条件情報(の一部)も模式的に示しており、例えば、解放リスト上でバッファモジュールB1-1,B1-2が画像処理モジュールM1-3と対応付けられているのは、バッファモジュールB1-1,B1-2のメモリ領域は画像処理モジュールM1-3における画像処理が終了すれば解放可能であることを表している。また、解放リスト上でバッファモジュールB2-3が画像処理モジュールM1-4, M2-4, M3-4と対応付けられているのは、バッファモジュールB2-3のメモリ領域は画像処理モジュールM1-4, M2-4, M3-4における画像処理が全て終了すれば解放可能であることを表している。 FIG. 8 also schematically shows (part of) release condition information registered in the release list. For example, the buffer modules B 1-1 and B 1-2 on the release list are image processing modules M 1- Corresponding to 3 indicates that the memory areas of the buffer modules B 1-1 and B 1-2 can be released when the image processing in the image processing module M 1-3 is completed. The buffer module B 2-3 is associated with the image processing modules M 1-4 , M 2-4 , and M 3-4 on the release list because the memory area of the buffer module B 2-3 is an image. It represents that the image can be released when all the image processing in the processing modules M 1-4 , M 2-4 , and M 3-4 is completed.

また、本第2実施形態に係る処理管理部処理では、第1実施形態で説明した処理管理部処理(図5)と同様に、次のステップ112〜ステップ120において、画像処理部50の個々のモジュール群に対し、出力画像の互いに異なる処理単位のデータを得る画像処理の実行を順に指示するが、ステップ114でモジュール群iの最終画像処理モジュール38に対し、出力画像の処理単位jのデータを得る画像処理の実行を指示した後、次のステップ140において、依存関係リストに登録されている依存関係情報のうち、処理単位jについての画像処理を行うモジュール群の個々の画像処理モジュール38についての依存関係情報(画像処理モジュールMj-xの依存関係情報)を参照し、参照した依存関係情報で個々の画像処理モジュールMj-xと対応付けられているバッファモジュール40(個々の画像処理モジュールMj-xが画像処理結果を参照するバッファモジュール40)が全て存在しているか否か判定する。 Further, in the process management unit process according to the second embodiment, in the next step 112 to step 120, the individual processing of the image processing unit 50 is performed as in the process management unit process (FIG. 5) described in the first embodiment. The module group is instructed in order to execute image processing for obtaining data of processing units different from each other in the output image. In step 114, the data of the processing unit j of the output image is sent to the final image processing module 38 of the module group i. After instructing the execution of the obtained image processing, in the next step 140, among the dependency relationship information registered in the dependency relationship list, the individual image processing modules 38 of the module group that performs image processing for the processing unit j. Refers to dependency information (dependency information of image processing module M jx ), and corresponds to each image processing module M jx with the referenced dependency information It is determined whether or not all attached buffer modules 40 (buffer modules 40 in which individual image processing modules M jx refer to image processing results) exist.

この判定が肯定された場合はステップ116へ移行するが、ステップ140の判定が否定された場合はデッドロックによって画像処理部50における処理の進行が停止してしまう可能性があるので、ステップ142へ移行し、ステップ140で存在していないと検知したバッファモジュール40を含むモジュール群を追加生成し、モジュールリストも更新する。またステップ116では、ステップ142で生成した追加生成したモジュール群の最終画像処理モジュール38に対して初期化処理の実行を指示する。これにより、追加生成したモジュール群の各モジュールで初期化処理が行われ、追加生成したモジュール群が画像処理を実行可能な状態となる。そして次のステップ146において、モジュール群の生成数nにステップ142で追加生成したモジュール群の数を加算した後にステプ116へ移行する。   If this determination is affirmed, the process proceeds to step 116, but if the determination in step 140 is negative, the process in the image processing unit 50 may stop due to deadlock, and thus the process proceeds to step 142. The module group including the buffer module 40 detected as not existing in step 140 is generated, and the module list is also updated. In step 116, the final image processing module 38 of the additionally generated module group generated in step 142 is instructed to execute initialization processing. Thereby, initialization processing is performed in each module of the additionally generated module group, and the additionally generated module group is in a state where image processing can be executed. In the next step 146, the number of module groups additionally generated in step 142 is added to the module group generation number n, and then the process proceeds to step 116.

上述したモジュール群の追加生成について、例を挙げて更に説明する。図8に示す依存関係リストにおいて、画像処理モジュールM3-4がバッファモジュールB2-3,B3-3,B4-3と対応付けられていることからも明らかなように、出力画像の処理単位3についての画像処理を行うモジュール群の4番目の画像処理モジュール38は、出力画像の処理単位2についての画像処理を行うモジュール群の3番目のバッファモジュール40、出力画像の処理単位3についての画像処理を行うモジュール群の3番目のバッファモジュール40、及び、出力画像の処理単位4についての画像処理を行うモジュール群の3番目のバッファモジュール40に記憶されている画像処理結果を各々用いて画像処理を行うが、図8に示す状態の画像処理部50には、出力画像の処理単位4についての画像処理を行うモジュール群が存在しておらず、当該モジュール群の3番目のバッファモジュール40も存在していないので、画像処理モジュールM3-4はバッファモジュールB4-3に記憶されている画像処理結果を用いて画像処理を行うことができず、バッファモジュールB4-3が出現して画像処理結果がバッファモジュールB4-3に記憶される迄待機する必要がある。 The additional generation of the above-described module group will be further described with an example. As apparent from the fact that the image processing module M 3-4 is associated with the buffer modules B 2-3 , B 3-3 , and B 4-3 in the dependency relationship list shown in FIG. The fourth image processing module 38 of the module group that performs image processing for the processing unit 3 is the third buffer module 40 of the module group that performs image processing for the processing unit 2 of the output image, and the processing unit 3 of the output image. The image processing results stored in the third buffer module 40 of the module group that performs the image processing and the third buffer module 40 of the module group that performs the image processing for the output image processing unit 4 are used. Although the image processing is performed, the image processing unit 50 in the state illustrated in FIG. 8 includes a module group that performs image processing for the processing unit 4 of the output image. Razz, since the third buffer module 40 of the modules may not exist, the image processing module M 3-4 is to perform image processing using the image processing results stored in the buffer module B 4-3 It is necessary to wait until the buffer module B 4-3 appears and the image processing result is stored in the buffer module B 4-3 .

この例では、出力画像の処理単位1についての画像処理を行っていたモジュール群において、処理単位1についての画像処理が終了すると、個々の画像処理モジュール38で再初期化処理が行われた後に処理単位4についての画像処理が開始されるのでデッドロックは生じないが、例えばモジュール群の中に、より多数の処理単位についての画像処理結果を用いて画像処理を行う画像処理モジュール38が存在していたり、当初指定されたモジュール群の生成数nがより少数であった場合はデッドロックが生ずる。   In this example, when the image processing for the processing unit 1 is completed in the module group that has performed the image processing for the processing unit 1 of the output image, the processing is performed after the reinitialization processing is performed by the individual image processing modules 38. Since the image processing for the unit 4 is started, deadlock does not occur. For example, an image processing module 38 that performs image processing using image processing results for a larger number of processing units exists in the module group. If the number n of modules specified at the beginning is smaller, deadlock occurs.

これに対して本第2実施形態に係る処理管理部処理では、上記の例において、出力画像の処理単位3についての画像処理を行うモジュール群に対して画像処理の実行を指示した際に、前記モジュール群の4番目の画像処理モジュール38が画像処理結果を読み出す一部のバッファモジュール40(出力画像の処理単位4についての画像処理を行うモジュール群の3番目のバッファモジュール40)が存在していないことが検知されることでステップ140の判定が否定され、 例として図9に示すように、存在していないことが検知されたバッファモジュール40(バッファモジュールB4-3)を含む新たなモジュール群が追加生成されると共に、追加生成されたモジュール群の個々のモジュールで初期化処理を行わせる。そしてその後、追加生成されたモジュール群(の最終画像処理モジュール38)に対して画像処理の実行が指示されるので、構築された画像処理部50が、他のモジュール群による出力画像の他の処理単位についての画像処理の結果を参照して画像処理を行う画像処理モジュール38を含んで構成されている場合にも、デッドロックが発生することを確実に防止することができる。 On the other hand, in the process management unit process according to the second embodiment, in the above example, when the execution of the image process is instructed to the module group that performs the image process for the processing unit 3 of the output image, There is no buffer module 40 (third buffer module 40 in the module group that performs image processing for the output image processing unit 4) from which the fourth image processing module 38 in the module group reads out the image processing result. As a result, the determination in step 140 is denied. As an example, as shown in FIG. 9, a new module group including the buffer module 40 (buffer module B 4-3 ) that has been detected not to exist. Are additionally generated, and initialization processing is performed on each module of the additionally generated module group. Then, since execution of image processing is instructed to the additionally generated module group (the final image processing module 38), the constructed image processing unit 50 performs other processing of the output image by other module groups. Even when the image processing module 38 that performs image processing with reference to the result of image processing for each unit is included, it is possible to reliably prevent the occurrence of deadlock.

なお、上述したステップ140〜ステップ146の処理、及び、先のステップ111で依存関係情報の生成・依存関係リストへの登録を行う処理管理部46は、請求項7に記載の処理管理手段に対応している。また、モジュール群を追加生成するタイミングは、上記のように個々のモジュール群に対して画像処理の実行を指示する際に限られるものではなく、画像処理の実行中に何れかのモジュール群のうちの何れかの画像処理モジュール38から、画像処理結果の読出対象のバッファモジュール40が存在していないことが通知されたことを契機として、存在していないことが通知されたバッファモジュール40を含むモジュール群を追加生成するようにしてもよい。   Note that the processing management unit 46 that performs the processing of the above-described steps 140 to 146 and the generation of the dependency relationship information and the registration to the dependency relationship list in the previous step 111 corresponds to the processing management unit according to claim 7. is doing. Further, the timing for generating additional module groups is not limited to instructing execution of image processing to individual module groups as described above, and any of the module groups during execution of image processing is not limited. A module including the buffer module 40 that is notified of the absence of the buffer module 40 from which the image processing result is to be read out from any one of the image processing modules 38 Additional groups may be generated.

また、本第2実施形態に係る処理管理部処理では、第1実施形態で説明した処理管理部処理(図5)と同様に、任意のモジュール群の最終画像処理モジュール38から、出力画像の単一の処理単位についての画像処理の終了が通知されると(ステップ122の判定が肯定されると)、出力画像の単一の処理単位についての画像処理が終了したモジュール群を構成する個々のバッファモジュール40の情報を保存バッファリストに登録(ステップ124)した後に、次のステップ150において、解放リストに登録されている解放条件情報のうち、保存バッファリストに情報が登録されている個々のバッファモジュール40の解放条件リストを各々参照し、保存バッファリストに情報が登録されているバッファモジュール40の中に、今回の画像処理の終了通知により解放条件情報が表す解放条件を満たしたバッファモジュール40が存在しているか否か判定する。   Further, in the process management unit process according to the second embodiment, similarly to the process management unit process (FIG. 5) described in the first embodiment, an output image is simply output from the final image processing module 38 of an arbitrary module group. When the end of the image processing for one processing unit is notified (when the determination in step 122 is affirmative), the individual buffers constituting the module group in which the image processing for the single processing unit of the output image is completed After registering the information of the module 40 in the storage buffer list (step 124), in the next step 150, among the release condition information registered in the release list, individual buffer modules whose information is registered in the storage buffer list Each of the 40 release condition lists is referred to, and in the buffer module 40 in which information is registered in the storage buffer list, Ryo determines whether the buffer module 40 is present, which satisfies the release condition releasing condition information indicating the notification.

この判定が否定された場合はステップ126へ移行するが、ステップ150の判定が肯定された場合はステップ152へ移行し、解放条件を満たしたバッファモジュール40のバッファ40Aとして用いていたメモリ領域をリソース管理部46Cを通じて解放した後にステップ152へ移行する。例えば、出力画像の処理単位1についての画像処理を行っていたモジュール群で前記画像処理が終了したことが通知された場合、当該モジュール群のうちの画像処理モジュールM1-3における画像処理は終了しているので、バッファモジュールB1-1,B1-2のメモリ領域はステップ152で解放される。一方、バッファモジュールB1-3のメモリ領域については、画像処理モジュールM1-4における画像処理は終了しているものの、画像処理モジュールM2-4における画像処理は終了していないので、上記タイミングでは解放されず、出力画像の処理単位2についての画像処理を行っていたモジュール群で前記画像処理が終了したことが通知された場合に解放されることになる。 If this determination is denied, the process proceeds to step 126. If the determination in step 150 is affirmed, the process proceeds to step 152, and the memory area used as the buffer 40A of the buffer module 40 that satisfies the release condition is used as a resource. After releasing through the management unit 46C, the process proceeds to step 152. For example, when it is notified that the image processing has been completed in the module group that has performed image processing for the processing unit 1 of the output image, the image processing in the image processing module M 1-3 in the module group is completed. Therefore, the memory areas of the buffer modules B 1-1 and B 1-2 are released in step 152. On the other hand, with respect to the memory area of the buffer module B 1-3 , the image processing in the image processing module M 2-4 has not been completed although the image processing in the image processing module M 1-4 has been completed. Is not released, but is released when it is notified that the image processing has been completed in the module group that has performed image processing for the output image processing unit 2.

このように、本第2実施形態に係る処理管理部処理では、或るモジュール群で出力画像の任意の処理単位についての画像処理が終了したことが通知される毎に、前記モジュール群の個々のバッファモジュール40(のバッファ40Aとして用いているメモリ領域)の情報を保存バッファリストに一旦登録するものの、解放リストに事前に登録した解放条件情報に基づき、保存バッファリストに情報を登録したバッファモジュール40に記憶されている画像処理結果の参照(画像処理モジュール38による読み出し)が終了したと判断した場合には、当該バッファモジュール40のバッファ40Aとして用いていたメモリ領域を解放するので、画像処理部50を構成するモジュール群の数や個々のモジュール群に設けられたバッファモジュール40の数が比較的多い場合、或いは、処理対象の画像データのデータ量が比較的多い場合にも、画像処理部50での画像処理が終了する前にメモリ領域等のリソースの不足が生ずることを防止することができる。なお、上述したステップ150,152の処理、及び、先のステップ111で解放条件情報の生成・解放リストへの登録を行う行う処理管理部46は、請求項6に記載の処理管理手段に対応している。   As described above, in the process management unit process according to the second embodiment, every time it is notified that the image processing for an arbitrary processing unit of the output image is completed in a certain module group, the individual module group Although the information of the buffer module 40 (the memory area used as the buffer 40A) is temporarily registered in the storage buffer list, the buffer module 40 in which information is registered in the storage buffer list based on the release condition information registered in advance in the release list. When it is determined that the reference (reading by the image processing module 38) of the image processing result stored in is completed, the memory area used as the buffer 40A of the buffer module 40 is released, so that the image processing unit 50 The number of module groups constituting the buffer module 40 and the buffer modules 40 provided in the individual module groups Even when the number is relatively large or when the amount of image data to be processed is relatively large, it is possible to prevent a shortage of resources such as a memory area before the image processing in the image processing unit 50 ends. can do. Note that the processing management unit 46 that performs the processing in steps 150 and 152 described above and registers the release condition information in the generation / release list in the previous step 111 corresponds to the processing management unit according to claim 6. ing.

また、本第2実施形態に係る処理管理部処理では、第1実施形態で説明した処理管理部処理(図5)と同様に、出力画像の或る処理単位についての画像処理を終了したモジュール群に、出力画像の別の処理単位についての画像処理を行わせる場合(出力画像の未処理の処理単位が残存していた場合)には、前記モジュール群の最終画像処理モジュールに対して再初期化処理の実行を指示することで、前記モジュール群の個々の画像処理モジュール38では初期化処理から参照データ準備処理を除外した再初期化処理を、個々のバッファモジュール40では初期化処理を各々行わせるので、第1実施形態と同様に、前記モジュール群が出力画像の新たな処理単位についての画像処理を実行することが可能な状態に短時間で切り替わることで、画像処理部50における画像処理の処理効率を向上させることができる。   Further, in the process management unit process according to the second embodiment, as in the process management unit process (FIG. 5) described in the first embodiment, the module group that has finished the image process for a certain processing unit of the output image. When performing image processing on another processing unit of the output image (when an unprocessed processing unit of the output image remains), reinitialization is performed on the final image processing module of the module group. By instructing the execution of processing, the individual image processing modules 38 of the module group perform reinitialization processing in which the reference data preparation processing is excluded from the initialization processing, and the individual buffer modules 40 perform initialization processing. Therefore, as in the first embodiment, the module group is switched to a state in which image processing for a new processing unit of the output image can be executed in a short time, thereby enabling image processing. The processing efficiency of the image processing in the unit 50 can be improved.

なお、上記では任意のモジュール群で出力画像の或る処理単位についての画像処理が終了した場合に、前記モジュール群の個々の画像処理モジュール38において、初期化処理から参照データ準備処理を除外した再初期化処理を行わせる態様を説明したが、本発明はこれに限定されるものではない。一例として、図10に示すように、画像処理部50が互いに異なるコンピュータ(第1/第2コンピュータ)上で動作する複数の部分画像処理部から構成され、第1コンピュータと第2コンピュータが通信回線を介して接続されている場合、当該画像処理部50のうち、隣接するモジュールとの間に通信回線が存在する特定の画像処理モジュール38(図10における画像処理モジュールM1-2,M2-2,M3-2)では、初期化処理として、相手コンピュータと暗号化情報を送受することで第1コンピュータと第2コンピュータとの間にセッションを確立するための認証処理も行われるが、従来は1フレーム分の画像処理が終了する毎に初期化処理を行っていたので、3次元画像データや動画像データを処理対象とした場合、認証処理が繰り返し行われることで画像処理の大幅に低下すると共に、セキュリティ上の理由で相手コンピュータからセッションの確立を拒否される可能性もある。このため、任意のモジュール群で出力画像の或る処理単位についての画像処理が終了する毎に、前記モジュール群のうちの上記特定の画像処理モジュール38で行わせる再初期化処理として、参照データ準備処理に加えて上記の認証処理も初期化処理から除外した処理を行わせることが好ましい。これにより、出力画像の或る処理単位についての画像処理が終了したモジュール群が、短時間で新たな処理単位についての画像処理を実行可能な状態となり、画像処理の処理効率が向上すると共に、相手コンピュータからセッションの確立を拒否されることで、処理対象の画像データに対する画像処理が中断してしまうことも防止することができる。このように、再初期化処理として行わせる処理は、初期化処理から参照データ準備処理を除外した処理に限られるものではなく、上記の認証処理や他の処理を除外対象に加えてもよい。 In the above, when the image processing for a certain processing unit of the output image is finished in an arbitrary module group, the individual image processing modules 38 of the module group re-exclude the reference data preparation process from the initialization process. Although the mode for performing the initialization process has been described, the present invention is not limited to this. As an example, as shown in FIG. 10, the image processing unit 50 is composed of a plurality of partial image processing units operating on different computers (first / second computers), and the first computer and the second computer communicate with each other through a communication line. when connected via, among the image processing unit 50, an image processing module M 1-2 at a specific image processing module 38 (FIG. 10 that the communication line is present between the adjacent modules, M 2- 2 , M 3-2 ), as an initialization process, an authentication process for establishing a session between the first computer and the second computer by transmitting / receiving encrypted information to / from the other computer is also performed. Since initialization processing was performed every time image processing for one frame was completed, authentication processing is repeatedly performed when processing three-dimensional image data or moving image data. As well as significantly reduced in image processing by, possibly it is denied established from other computer session for security reasons. Therefore, every time image processing for a certain processing unit of an output image is completed in an arbitrary module group, reference data preparation is performed as re-initialization processing to be performed by the specific image processing module 38 in the module group. In addition to the processing, it is preferable to perform the above-described authentication processing that is excluded from the initialization processing. As a result, the module group that has completed the image processing for a certain processing unit of the output image can execute the image processing for the new processing unit in a short time, and the processing efficiency of the image processing is improved. By rejecting the establishment of the session from the computer, it is possible to prevent the image processing for the image data to be processed from being interrupted. As described above, the process to be performed as the reinitialization process is not limited to the process in which the reference data preparation process is excluded from the initialization process, and the above authentication process and other processes may be added to the exclusion target.

また、上記では任意のモジュール群で出力画像の或る処理単位についての画像処理が終了した場合に、前記モジュール群の個々のバッファモジュール40(のバッファ40Aとして用いていたメモリ領域)の情報を保存バッファリストに登録すると共に、新たなバッファモジュール40を生成し、元のバッファモジュール40に代えて画像処理部50に接続する態様(請求項5記載の発明に相当する態様)を説明したが、これに限定されるものではなく、例えば他のモジュール群による出力画像の他の処理単位についての画像処理の結果を参照して画像処理を行う画像処理モジュール38が画像処理部50の中に存在しておらず、出力画像の或る処理単位についての画像処理が終了したモジュール群の個々のバッファモジュール40に記憶されている画像処理結果に対して参照等の利用をすることがない場合には、前記個々のバッファモジュール40において、再初期化処理として、バッファ40Aの参照位置を先頭に戻す処理を行わせるようにしてもよい。この場合、新たなバッファモジュール40を生成する必要が無くなるので、画像処理の処理効率を更に向上させることができる。上記態様は請求項3記載の発明に対応しており、上記態様におけるバッファの参照位置を先頭に戻す処理は請求項3に記載の第2の再初期化処理に対応している。   Further, in the above, when image processing for a certain processing unit of an output image is finished in an arbitrary module group, information on each buffer module 40 (memory area used as the buffer 40A) of the module group is saved. The mode of registering in the buffer list and generating a new buffer module 40 and connecting to the image processing unit 50 in place of the original buffer module 40 (a mode corresponding to the invention of claim 5) has been described. For example, an image processing module 38 that performs image processing with reference to a result of image processing for another processing unit of an output image by another module group exists in the image processing unit 50. However, it is stored in each buffer module 40 of the module group in which image processing for a certain processing unit of the output image is completed. When the reference is not used for the image processing result to be processed, the individual buffer module 40 is caused to perform a process of returning the reference position of the buffer 40A to the head as a reinitialization process. Also good. In this case, since it is not necessary to generate a new buffer module 40, the processing efficiency of image processing can be further improved. The above aspect corresponds to the invention described in claim 3, and the process of returning the buffer reference position to the head in the above aspect corresponds to the second re-initialization process described in claim 3.

また、任意のモジュール群で出力画像の或る処理単位についての画像処理が終了した場合に、前記モジュール群の個々のバッファモジュール40に記憶されている画像処理結果に対して参照等の利用をする(又はその可能性が有る)場合に、新たなバッファモジュール40を生成し、元のバッファモジュール40に代えて画像処理部50に接続することに代えて、画像処理結果を記憶するための結果保存用メモリ領域を予め確保しておき、出力画像の或る処理単位についての画像処理が終了したモジュール群の個々のバッファモジュール40に記憶されている画像処理結果を、結果保存用メモリ領域に複写して保存しておくようにしてもよい。この場合、画像処理結果を複写する処理は必要になるものの、バッファモジュール40を繋ぎ直す等の処理が不要となる。上記態様は請求項4記載の発明に対応している。   Further, when image processing for a certain processing unit of an output image is finished in an arbitrary module group, reference is used for the image processing result stored in each buffer module 40 of the module group. In the case where (or there is a possibility), a new buffer module 40 is generated, and instead of connecting to the image processing unit 50 instead of the original buffer module 40, a result storage for storing the image processing result A memory area is reserved in advance, and the image processing results stored in the individual buffer modules 40 of the module group that has finished image processing for a certain processing unit of the output image are copied to the result storage memory area. May be saved. In this case, processing for copying the image processing result is required, but processing such as reconnecting the buffer module 40 becomes unnecessary. The above aspect corresponds to the invention described in claim 4.

また、上記では処理対象の画像データとして3次元画像データ及び動画像データを例に挙げて説明したが、本発明は2次元画像データに対して画像処理を行う場合にも適用可能であることは言うまでもない。また、上記では互いに独立して動作可能な複数のモジュール群から成る画像処理部50に本発明を適用した態様を説明したが、例えば図2(A)〜(C)に示すように、単一のモジュール群から成る構成の画像処理部に本発明を適用することも可能である。   In the above description, 3D image data and moving image data have been described as examples of image data to be processed. However, the present invention can also be applied to the case where image processing is performed on 2D image data. Needless to say. In the above description, the embodiment in which the present invention is applied to the image processing unit 50 including a plurality of module groups that can operate independently from each other has been described. For example, as illustrated in FIGS. It is also possible to apply the present invention to an image processing unit having a configuration including the module group.

また、上記では本発明に係る画像処理プログラムに対応する画像処理プログラム群34がコンピュータ10の記憶部20等に予め記憶(インストール)されている態様を説明したが、本発明に係る画像処理プログラムは、CD−ROMやDVD−ROM等の記録媒体に記録されている形態で提供することも可能である。   In the above description, the image processing program group 34 corresponding to the image processing program according to the present invention has been described in advance as being stored (installed) in the storage unit 20 or the like of the computer 10. It is also possible to provide the information recorded in a recording medium such as a CD-ROM or 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 block diagram which shows the structural example of an image process part. (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 for demonstrating construction | assembly and initialization of an image process part. 第1実施形態に係る処理管理部処理の内容を示すフローチャートである。It is a flowchart which shows the content of the process management part process which concerns on 1st Embodiment. 画像処理部の或るモジュール群で単一の処理単位について画像処理が終了した場合の処理を説明するための概略図である。It is the schematic for demonstrating a process when an image process is complete | finished about the single process unit in a certain module group of an image process part. 第2実施形態に係る処理管理部処理の内容を示すフローチャートである。It is a flowchart which shows the content of the process management part process which concerns on 2nd Embodiment. 第2実施形態に係る画像処理部及び各種リストの内容の一例を各々示す概略図である。。It is the schematic which each shows an example of the content of the image process part which concerns on 2nd Embodiment, and various lists. . 第2実施形態におけるモジュール群の追加生成を示す概略図である。It is the schematic which shows the additional production | generation of the module group in 2nd Embodiment. 画像処理部が互いに異なるコンピュータ上で動作する複数のモジュール群から成る場合の初期化処理及び再初期化処理を説明するための概略図である。It is the schematic for demonstrating the initialization process and re-initialization process in case an image process part consists of several module groups which operate | move on a mutually different computer.

符号の説明Explanation of symbols

10 コンピュータ
14 メモリ
20 記憶部
22 画像データ供給部
24 画像出力部
34 画像処理プログラム群
38 画像処理モジュール
40 バッファモジュール
42 処理構築部
46 処理管理部
50 画像処理部
DESCRIPTION OF SYMBOLS 10 Computer 14 Memory 20 Storage part 22 Image data supply part 24 Image output part 34 Image processing program group 38 Image processing module 40 Buffer module 42 Process construction part 46 Process management part 50 Image processing part

Claims (11)

自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムを各々記憶する記憶手段と、
前記記憶手段に記憶されているプログラムにより、前記複数種の画像処理モジュールの中から選択した1つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方に前記バッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築した後に、構築した前記画像処理部のうちの前記画像処理モジュールにおいて、画像処理時に用いる変数を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理を含む第1の初期化処理を行わせる構築・初期化手段と、
前記処理対象の画像データに対する画像処理を、前記処理対象の画像データを複数の処理単位に分割したときの個々の処理単位毎に前記画像処理部で行わせると共に、前記画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、前記画像処理部のうちの前記画像処理モジュールにおいて、前記第1の初期化処理から前記参照データ準備処理を除外した第1の再初期化処理を行わせた後に、前記処理対象の画像データのうちの未処理の処理単位に対する画像処理を前記画像処理部で行わせる処理管理手段と、
を含む画像処理装置。
A plurality of types of image processing modules that perform different image processing on the image data acquired from the previous stage of the own module, and output 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, and Storage means for storing each of the programs of the buffer modules for causing the image data output from the previous module to be written in the buffer and for causing the image data stored in the buffer to be read by the subsequent module;
According to the program stored in the storage means, the buffer module is provided in at least one of the preceding stage and the succeeding stage of each of the one or more image processing modules selected from the plurality of types of image processing modules, and each module is piped A variable initialization process and an image for initializing variables used at the time of image processing in the image processing module of the constructed image processing unit after constructing an image processing unit connected in a line form or a directed acyclic graph form Construction / initialization means for performing a first initialization process including a reference data preparation process for preparing reference data to be referred to during processing;
The image processing on the processing target image data is performed by the image processing unit for each processing unit when the processing target image data is divided into a plurality of processing units, and the image processing unit Each time the image processing for the processing unit is completed, the image processing module of the image processing unit performs a first reinitialization process excluding the reference data preparation process from the first initialization process. And processing management means for causing the image processing unit to perform image processing for an unprocessed processing unit in the processing target image data.
An image processing apparatus.
前記構築・初期化手段は、互いに独立して動作可能な複数のモジュール群から成る画像処理部を構築し、
前記処理管理手段は、前記画像処理部の個々のモジュール群で互いに異なる処理単位に対する画像処理を行わせると共に、前記複数のモジュール群のうちの何れかで単一の前記処理単位に対する画像処理が終了する毎に、画像処理が終了したモジュール群のうちの前記画像処理モジュールにおいて前記第1の再初期化処理を行わせた後に、前記処理対象の画像データのうちの未処理の処理単位に対する画像処理を前記画像処理が終了したモジュール群で行わせる請求項1記載の画像処理装置。
The construction / initialization means constructs an image processing unit composed of a plurality of module groups operable independently of each other,
The processing management unit causes each module group of the image processing unit to perform image processing for different processing units, and completes image processing for a single processing unit in any of the plurality of module groups. Each time the image processing module of the module group in which image processing is completed performs the first re-initialization processing, the image processing for the unprocessed processing unit in the processing target image data is performed. The image processing apparatus according to claim 1, wherein the image processing is performed in a module group for which the image processing has been completed.
前記構築・初期化手段は、前記画像処理部を構築した後に、構築した前記画像処理部のうちの前記バッファモジュールにおいて、前記バッファとして用いるメモリ領域を確保する処理を含む第2の初期化処理を行わせ、
前記処理管理手段は、前記画像処理部で前記単一の処理単位に対する画像処理が終了する毎に、前記画像処理部のうちのバッファモジュールにおいて、前記バッファの参照位置を先頭に戻す第2の再初期化処理を行わせる請求項1又は請求項2記載の画像処理装置。
The construction / initialization unit performs a second initialization process including a process of securing a memory area used as the buffer in the buffer module of the constructed image processing unit after constructing the image processing unit. Let
Each time the image processing unit completes image processing for the single processing unit, the processing management unit performs a second re-transmission of returning the buffer reference position to the top in the buffer module of the image processing unit. The image processing apparatus according to claim 1, wherein initialization processing is performed.
前記処理管理手段は、前記バッファモジュールにおいて前記第2の再初期化処理を行わせる前に、前記バッファモジュールの前記バッファとして用いていたメモリ領域に記憶されている画像処理結果を別のメモリ領域に複写することで前記画像処理結果を保存する請求項3記載の画像処理装置。   The processing management means stores the image processing result stored in the memory area used as the buffer of the buffer module in another memory area before causing the buffer module to perform the second re-initialization process. The image processing apparatus according to claim 3, wherein the image processing result is stored by copying. 前記構築・初期化手段は、前記画像処理部を構築した後に、構築した前記画像処理部のうちの前記バッファモジュールにおいて、前記バッファとして用いるメモリ領域を確保する処理を含む第2の初期化処理を行わせ、
前記処理管理手段は、前記画像処理部で前記単一の処理単位に対する画像処理が終了する毎に、前記画像処理部の既存のバッファモジュールで前記バッファとして用いていたメモリ領域を保存すると共に、新たなバッファモジュールを生成し、生成した新たなバッファモジュールを前記既存のバッファモジュールに代えて前記画像処理部に連結し、前記新たなバッファモジュールにおいて前記第2の初期化処理を行わせる請求項1又は請求項2記載の画像処理装置。
The construction / initialization unit performs a second initialization process including a process of securing a memory area used as the buffer in the buffer module of the constructed image processing unit after constructing the image processing unit. Let
The processing management means saves the memory area used as the buffer in the existing buffer module of the image processing unit each time image processing for the single processing unit is completed in the image processing unit, and A new buffer module is generated, the generated new buffer module is connected to the image processing unit instead of the existing buffer module, and the second initialization process is performed in the new buffer module. The image processing apparatus according to claim 2.
前記構築・初期化手段は、構成が互いに同一でかつ他のモジュール群による他の処理単位に対する画像処理結果を参照して画像処理を行うように連結されたモジュール群を複数備えた画像処理部を構築し、
前記処理管理手段は、前記処理対象の画像データの特定の処理単位について、当該特定の処理単位に対する画像処理を行った任意のモジュール群の個々のバッファモジュールのバッファに記憶された画像処理結果が、前記処理対象の画像データのうちの何れの処理単位に対する画像処理を行うモジュール群によって参照されるかを判断し、判断結果を記憶することを、前記処理対象の画像データの個々の処理単位について各々行った後に、前記画像処理部の個々のモジュール群で互いに異なる処理単位に対する画像処理を行わせ、前記複数のモジュール群のうちの何れかで任意の処理単位に対する画像処理が終了する毎に、記憶した前記判断結果に基づき、前記画像処理の終了に伴い記憶している画像処理結果の他のモジュール群による参照が終了したバッファが出現したか否か判断し、該当するバッファが出現したと判断した場合に前記該当するバッファとして用いていたメモリ領域を解放する請求項4又は請求項5記載の画像処理装置。
The construction / initialization unit includes an image processing unit including a plurality of module groups that are configured in the same manner and connected to perform image processing with reference to an image processing result for another processing unit by another module group. Build and
The processing management means, for a specific processing unit of the processing target image data, the image processing result stored in the buffer of each buffer module of any module group that has performed image processing for the specific processing unit, It is determined for each processing unit of the processing target image data that the processing unit for performing the image processing for which processing unit of the processing target image data is referred to, and the determination result is stored. After the image processing unit, each image group of the image processing unit is caused to perform image processing for different processing units, and each time the image processing for an arbitrary processing unit is completed in any one of the plurality of module groups, the data is stored. Based on the determination result, the image processing result stored at the end of the image processing is referred to by another module group. Finished buffer determines whether appeared, corresponding image processing apparatus of the buffer releases the memory area which has been used as the applicable buffer when it is determined that emerged claim 4 or claim 5, wherein.
前記構築・初期化手段は、構成が互いに同一でかつ他のモジュール群による他の処理単位に対する画像処理結果を参照して画像処理を行うように連結されたモジュール群を複数備えた画像処理部を構築し、
前記処理管理手段は、前記処理対象の画像データの特定の処理単位について、当該特定の処理単位に対する画像処理を行う任意のモジュール群が、前記処理対象の画像データのうちの何れの処理単位に対する画像処理を行うモジュール群に含まれるバッファモジュールのバッファに記憶された画像処理結果を参照するかを判断し、判断結果を記憶することを、前記処理対象の画像データの個々の処理単位について各々行った後に、前記画像処理部の個々のモジュール群に対して互いに異なる処理単位に対する画像処理の実行を指示すると共に、記憶した前記判断結果に基づき、画像処理が行う特定のモジュール群が参照する画像処理結果を記憶するバッファが存在しているか否かを、画像処理が行う個々のモジュール群について各々判断し、存在していないバッファが有ると判断した場合は、前記存在していないバッファを含むモジュール群を追加生成し、追加生成したモジュール群により、前記特定のモジュール群が参照する画像処理結果が得られる特定の処理単位に対する画像処理を行わせる請求項4又は請求項5記載の画像処理装置。
The construction / initialization unit includes an image processing unit including a plurality of module groups that are configured in the same manner and connected to perform image processing with reference to an image processing result for another processing unit by another module group. Build and
The processing management unit is configured such that an arbitrary module group that performs image processing on a specific processing unit of a specific processing unit of the processing target image data is an image for any processing unit of the processing target image data. Whether to refer to the image processing result stored in the buffer of the buffer module included in the module group to be processed is determined, and the determination result is stored for each processing unit of the image data to be processed Later, each module group of the image processing unit is instructed to execute image processing for different processing units, and based on the stored determination result, an image processing result referred to by a specific module group to be subjected to image processing For each module group to be processed by the image processing, If it is determined that there is a non-existing buffer, a module group including the non-existing buffer is additionally generated, and the additional generated module group provides an image processing result referred to by the specific module group. The image processing apparatus according to claim 4, wherein image processing is performed on the processing unit.
前記構築・初期化手段は、第1コンピュータ上で動作する第1のモジュール群と、前記第1コンピュータと通信回線を介して接続された第2コンピュータ上で動作する第2のモジュール群と、を含む画像処理部を構築した場合、構築した前記画像処理部のうち、隣接するモジュールとの間に前記通信回線が存在する特定の画像処理モジュールにおいて、前記第1コンピュータと前記第2コンピュータとの間にセッションを確立するための認証処理も含む第1の初期化処理を行わせ、
前記処理管理手段は、前記画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、前記画像処理部のうちの前記特定の画像処理モジュールにおいて、前記第1の初期化処理から前記認証処理も除外した第1の再初期化処理を行わせる請求項1〜請求項7の何れか1項記載の画像処理装置。
The construction / initialization means includes: a first module group that operates on a first computer; and a second module group that operates on a second computer connected to the first computer via a communication line. When the image processing unit including the image processing unit is constructed, in the specific image processing module in which the communication line exists between adjacent modules among the constructed image processing units, between the first computer and the second computer. To perform a first initialization process including an authentication process for establishing a session,
The processing management means, in the specific image processing module of the image processing unit, from the first initialization processing to the processing each time image processing for the single processing unit is completed in the image processing unit. The image processing apparatus according to claim 1, wherein the first re-initialization process excluding the authentication process is performed.
前記処理対象の画像データは、3次元画像を表す3次元画像データ又は動画像データである請求項1〜請求項8の何れか1項記載の画像処理装置。   The image processing apparatus according to any one of claims 1 to 8, wherein the image data to be processed is three-dimensional image data or moving image data representing a three-dimensional image. 記憶手段は、自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムを各々記憶し、
構築・初期化手段は、前記記憶手段に記憶されているプログラムにより、前記複数種の画像処理モジュールの中から選択した1つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方に前記バッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築した後に、構築した前記画像処理部のうちの前記画像処理モジュールにおいて、画像処理時に用いる変数を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理を含む第1の初期化処理を行わせ、
処理管理手段は、前記処理対象の画像データに対する画像処理を、前記処理対象の画像データを複数の処理単位に分割したときの個々の処理単位毎に前記画像処理部で行わせると共に、前記画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、前記画像処理部のうちの前記画像処理モジュールにおいて、前記第1の初期化処理から前記参照データ準備処理を除外した第1の再初期化処理を行わせた後に、前記処理対象の画像データのうちの未処理の処理単位に対する画像処理を前記画像処理部で行わせる画像処理方法。
The storage means performs different image processing on the image data acquired from the previous stage of the own module, and outputs 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 module and a buffer module program for causing the image data output from the previous module to be written to the buffer and reading the image data stored in the buffer by the subsequent module;
The construction / initialization means includes the buffer module in at least one of the preceding stage and the succeeding stage of each of the one or more image processing modules selected from the plurality of types of image processing modules according to the program stored in the storage means. After constructing an image processing unit in which each module is connected in a pipeline form or a directed acyclic graph form, the variables used at the time of image processing are initialized in the image processing module of the constructed image processing unit A first initialization process including a variable initialization process to be performed and a reference data preparation process for preparing reference data to be referred to during image processing;
The processing management unit causes the image processing unit to perform image processing on the processing target image data for each processing unit when the processing target image data is divided into a plurality of processing units. Each time image processing for a single processing unit is completed, the image processing module of the image processing unit performs a first re-exclusion of the reference data preparation processing from the first initialization processing. An image processing method for causing an image processing unit to perform image processing for an unprocessed processing unit in the processing target image data after performing initialization processing.
自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムを各々記憶する記憶手段を備えたコンピュータを、
前記記憶手段に記憶されているプログラムにより、前記複数種の画像処理モジュールの中から選択した1つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方に前記バッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築した後に、構築した前記画像処理部のうちの前記画像処理モジュールにおいて、画像処理時に用いる変数を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理を含む第1の初期化処理を行わせる構築・初期化手段、
及び、前記処理対象の画像データに対する画像処理を、前記処理対象の画像データを複数の処理単位に分割したときの個々の処理単位毎に前記画像処理部で行わせると共に、前記画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、前記画像処理部のうちの前記画像処理モジュールにおいて、前記第1の初期化処理から前記参照データ準備処理を除外した第1の再初期化処理を行わせた後に、前記処理対象の画像データのうちの未処理の処理単位に対する画像処理を前記画像処理部で行わせる処理管理手段
として機能させるための画像処理プログラム。
A plurality of types of image processing modules that perform different image processing on the image data acquired from the previous stage of the own module, and output 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, and A computer having storage means for storing each of the programs of the buffer module that causes the image data output from the previous module to be written to the buffer and the image data stored in the buffer to be read by the subsequent module;
According to the program stored in the storage means, the buffer module is provided in at least one of the preceding stage and the succeeding stage of each of the one or more image processing modules selected from the plurality of types of image processing modules, and each module is piped A variable initialization process and an image for initializing variables used at the time of image processing in the image processing module of the constructed image processing unit after constructing an image processing unit connected in a line form or a directed acyclic graph form Construction / initialization means for performing a first initialization process including a reference data preparation process for preparing reference data to be referred to during processing;
In addition, image processing on the processing target image data is performed by the image processing unit for each processing unit when the processing target image data is divided into a plurality of processing units. Each time image processing for one processing unit is completed, a first reinitialization process in which the reference data preparation process is excluded from the first initialization process in the image processing module of the image processing unit. An image processing program for causing the image processing unit to perform image processing on an unprocessed processing unit in the processing target image data after the image processing is performed.
JP2008319357A 2008-12-16 2008-12-16 Image processing apparatus, method, and program Active JP4964219B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008319357A JP4964219B2 (en) 2008-12-16 2008-12-16 Image processing apparatus, method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008319357A JP4964219B2 (en) 2008-12-16 2008-12-16 Image processing apparatus, method, and program

Publications (2)

Publication Number Publication Date
JP2010146055A true JP2010146055A (en) 2010-07-01
JP4964219B2 JP4964219B2 (en) 2012-06-27

Family

ID=42566481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008319357A Active JP4964219B2 (en) 2008-12-16 2008-12-16 Image processing apparatus, method, and program

Country Status (1)

Country Link
JP (1) JP4964219B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017163442A1 (en) * 2016-03-24 2017-09-28 富士ゼロックス株式会社 Image processing device, image processing method, and image processing program
WO2019044340A1 (en) * 2017-08-30 2019-03-07 富士フイルム株式会社 Image processing apparatus, image processing method, and image processing program
JP2020035393A (en) * 2018-08-31 2020-03-05 富士フイルム株式会社 Image processing apparatus, image processing method, and image processing program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04114286A (en) * 1990-09-05 1992-04-15 Fujitsu Ltd Picture data processor
JP2003281517A (en) * 2002-03-19 2003-10-03 Fuji Xerox Co Ltd Image processor and image processing method
JP2008009696A (en) * 2006-06-29 2008-01-17 Fuji Xerox Co Ltd Image processor and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04114286A (en) * 1990-09-05 1992-04-15 Fujitsu Ltd Picture data processor
JP2003281517A (en) * 2002-03-19 2003-10-03 Fuji Xerox Co Ltd Image processor and image processing method
JP2008009696A (en) * 2006-06-29 2008-01-17 Fuji Xerox Co Ltd Image processor and program

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017163442A1 (en) * 2016-03-24 2017-09-28 富士ゼロックス株式会社 Image processing device, image processing method, and image processing program
US10795725B2 (en) 2016-03-24 2020-10-06 Fuji Xerox Co., Ltd. Image processing device, image processing method, and non-transitory computer readable medium for image processing
WO2019044340A1 (en) * 2017-08-30 2019-03-07 富士フイルム株式会社 Image processing apparatus, image processing method, and image processing program
CN111052084A (en) * 2017-08-30 2020-04-21 富士胶片株式会社 Image processing apparatus, image processing method, and image processing program
JPWO2019044340A1 (en) * 2017-08-30 2020-10-29 富士フイルム株式会社 Image processing equipment, image processing method, and image processing program
US11257178B2 (en) * 2017-08-30 2022-02-22 Fujifilm Corporation Image processing device, image processing method, and storage medium
CN111052084B (en) * 2017-08-30 2023-10-17 富士胶片株式会社 Image processing device, image processing method, and image processing program
JP2020035393A (en) * 2018-08-31 2020-03-05 富士フイルム株式会社 Image processing apparatus, image processing method, and image processing program
WO2020045292A1 (en) * 2018-08-31 2020-03-05 富士フイルム株式会社 Image processing device, image processing method, and program
JP7039424B2 (en) 2018-08-31 2022-03-22 富士フイルム株式会社 Image processing device, image processing method, and image processing program

Also Published As

Publication number Publication date
JP4964219B2 (en) 2012-06-27

Similar Documents

Publication Publication Date Title
US7602394B2 (en) Image processing device, method, and storage medium which stores a program
US7602392B2 (en) Image processing device, method, and storage medium which stores a program
US7605819B2 (en) Image processing device, method, and storage medium which stores a program
US7605818B2 (en) Image processing device, method, and storage medium which stores a program
JP4979287B2 (en) Image processing apparatus and program
JP5046801B2 (en) Image processing apparatus and program
US7602391B2 (en) Image processing device, method, and storage medium which stores a program
US7595803B2 (en) Image processing device, method, and storage medium which stores a program
US9064324B2 (en) Image processing device, image processing method, and recording medium on which an image processing program is recorded
US20070248288A1 (en) Image processing device, and recording medium
US7598957B2 (en) Image processing device, method, and storage medium which stores a program
US7602393B2 (en) Image processing device, method, and storage medium which stores a program
JP2007287084A (en) Image processor and program
JP4964219B2 (en) Image processing apparatus, method, and program
CN110741408A (en) Image processing apparatus, image processing method, and image processing program
JP2012118932A (en) Information processing device and program
JP4762865B2 (en) Image processing apparatus and image processing program
JP2008140007A (en) Image processor and program
JP5047139B2 (en) Image processing apparatus and program
JP5440129B2 (en) Image processing apparatus, image forming apparatus, and image processing program
JP2008140170A (en) Image processor and program
JP2009053829A (en) Information processor and information processing program
JP2008140006A (en) Image processing apparatus, and program
JP2012043096A (en) Device, method and program of image processing
JP2008139968A (en) Image processor and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111021

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120306

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120327

R150 Certificate of patent or registration of utility model

Ref document number: 4964219

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250