JP2010128767A - Image processing apparatus and program - Google Patents

Image processing apparatus and program Download PDF

Info

Publication number
JP2010128767A
JP2010128767A JP2008302445A JP2008302445A JP2010128767A JP 2010128767 A JP2010128767 A JP 2010128767A JP 2008302445 A JP2008302445 A JP 2008302445A JP 2008302445 A JP2008302445 A JP 2008302445A JP 2010128767 A JP2010128767 A JP 2010128767A
Authority
JP
Japan
Prior art keywords
module
image processing
unit
processing
image
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
JP2008302445A
Other languages
Japanese (ja)
Other versions
JP5047139B2 (en
Inventor
Yukio Kumazawa
幸夫 熊澤
Takashi Nagao
隆 長尾
Keiichi Morita
恵一 森田
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 JP2008302445A priority Critical patent/JP5047139B2/en
Publication of JP2010128767A publication Critical patent/JP2010128767A/en
Application granted granted Critical
Publication of JP5047139B2 publication Critical patent/JP5047139B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To improve processing efficiency when an image processing unit is configured by many modules or a plurality of module groups which can be operated mutually independently. <P>SOLUTION: A processing flow management unit 46A for managing the performance of processing in the image processing unit 50 previously registers the identification information of respective modules to be managed (normally, all modules of the image processing unit 50) in a management table (refer to (A)), instructs a final image processing module to perform the processing, and when a processing request is inputted from any one of modules to be managed, retrieves the management table, recognizes the preceding module, and instructs the recognized module to perform the processing. But, by dividing the image processing unit 50 into a plurality of module groups allowed to be independently operated in parallel and forming respective processing flow units 46A for managing individual module groups (refer to (B)), the retrieval time of the management table is shortened and the processing efficiency is improved. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は画像処理装置及び画像処理プログラムに関する。   The present invention relates to an image processing apparatus and an image processing program.

入力された画像データに対して画像処理を行う画像処理装置や、画像を取扱可能な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

本発明は、多数のモジュール、或いは、互いに独立して動作可能な複数のモジュール群で画像処理部を構成する場合の処理効率の向上を実現できる画像処理装置及び画像処理プログラムを得ることが目的である。   It is an object of the present invention to obtain an image processing apparatus and an image processing program that can realize improvement in processing efficiency when an image processing unit is configured by a large number of modules or a plurality of modules that can operate independently of each other. is there.

上記目的を達成するために請求項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 construction means for constructing an image processing unit connected in a line form or a directed acyclic graph form, and each module group corresponding to each module group when the image processing part is divided into a plurality of module groups. Is stored as management information in a table, a specific module in the corresponding module group is instructed to execute processing, and a predetermined request is input from any module in the corresponding module group. Each time the module is connected, it is determined based on the management information a module that is connected to the preceding stage or the subsequent stage of the module and that can execute the process that satisfies the predetermined request, and executes the process that satisfies the predetermined request for the determined module Is a processing flow for executing image processing by the corresponding module group in the image processing unit. Including a management unit generating means for generating respectively processing section, a is constituted.

請求項2記載の発明は、請求項1記載の発明において、前記管理部生成手段は、前記画像処理部を、互いに独立して動作可能な複数のモジュール群に分割したときのn個(n≧1)のモジュール群を単位として、前記処理フロー管理部を各々生成する。   According to a second aspect of the present invention, in the first aspect of the present invention, the management unit generation unit includes n (n ≧ n) when the image processing unit is divided into a plurality of module groups operable independently of each other. The processing flow management unit is generated for each module group of 1).

請求項3記載の発明は、請求項2記載の発明において、前記管理部生成手段は、前記画像処理部を、前記画像処理部を構成する各モジュールのうち、記憶媒体に記憶されている画像データを前記記憶媒体から読み込んで出力するデータ読込モジュール、画像データを生成して出力するデータ生成モジュール、及び、同一の画像データを複数のモジュールへ各々出力するデータ分岐モジュール又は当該データ分岐モジュールの後段に連結された特定モジュールの何れかを各々先頭とし、末尾が他のモジュール群と連結されていない複数のモジュール群に分割することで、前記画像処理部を、互いに独立して動作可能な複数のモジュール群に分割する。   According to a third aspect of the present invention, in the second aspect of the present invention, the management unit generation unit includes the image processing unit and image data stored in a storage medium among the modules constituting the image processing unit. A data reading module that reads and outputs data from the storage medium, a data generation module that generates and outputs image data, and a data branch module that outputs the same image data to a plurality of modules, respectively, or subsequent to the data branch module A plurality of modules capable of operating the image processing unit independently from each other by dividing one of the connected specific modules into a plurality of module groups each having a head and a tail not connected to another module group Divide into groups.

請求項4記載の発明は、請求項3記載の発明において、前記管理部生成手段は、前記構築手段による前記画像処理部の構築に際し、構築対象の前記画像処理部を構成するモジュールとして、前記データ読込モジュール、前記データ生成モジュール、及び、前記データ分岐モジュール又は前記データ分岐モジュールの後段に連結された特定モジュールの何れか1つが前記構築手段によって生成される毎に、生成されたモジュールを先頭とするモジュール群に対応する前記処理フロー管理部を生成すると共に、前記生成されたモジュールを先頭とするモジュール群の末尾が他のモジュール群と連結された場合には、前記生成されたモジュールを先頭とするモジュール群に対応する前記処理フロー管理部と前記他のモジュール群に対応する前記処理フロー管理部を単一の前記処理フロー管理部へ統合する。   According to a fourth aspect of the present invention, in the invention according to the third aspect, the management unit generation unit is configured to use the data as a module constituting the image processing unit to be constructed when the construction unit constructs the image processing unit. Each time any one of the reading module, the data generation module, and the data branch module or the specific module connected to the subsequent stage of the data branch module is generated by the construction means, the generated module is set as the head. The processing flow management unit corresponding to the module group is generated, and when the end of the module group starting from the generated module is connected to another module group, the generated module is set to the top. The processing flow management unit corresponding to the module group and the processing corresponding to the other module group Integrating low management unit to a single of the processing flow management unit.

請求項5記載の発明は、請求項1〜請求項4の何れかに記載の発明において、任意の前記処理フロー管理部の消去が指示された場合に、消去が指示された前記処理フロー管理部に対応するモジュール群の各モジュールが確保していたリソースを解放して消去すると共に、消去が指示された前記処理フロー管理部を消去する消去処理を行う消去処理手段を更に備えている。   The invention according to claim 5 is the processing flow management unit in which erasure is instructed when erasure of any of the processing flow management units is instructed in the invention according to any one of claims 1 to 4. Further, an erasure processing unit is provided for performing erasure processing for erasing the processing flow management unit instructed to be erased, while releasing and erasing the resources secured by each module of the module group corresponding to.

請求項6記載の発明に係る画像処理プログラムは、自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムを各々記憶する記憶手段を備えたコンピュータを、前記記憶手段に記憶されているプログラムにより、前記複数種の画像処理モジュールの中から選択した1つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方に前記バッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築する構築手段、及び、前記画像処理部を複数のモジュール群に分割したときの個々のモジュール群を単位として、対応するモジュール群の個々のモジュールの情報を管理情報としてテーブルに記憶し、前記対応するモジュール群のうちの特定のモジュールに処理の実行を指示すると共に、前記対応するモジュール群のうちの任意のモジュールから所定の要求が入力される毎に、当該モジュールの前段又は後段に連結され前記所定の要求を満たす処理を実行可能なモジュールを前記管理情報に基づいて判断し、前記判断したモジュールに前記所定の要求を満たす処理の実行を指示することで、前記画像処理部のうちの前記対応するモジュール群で画像処理を実行させる処理フロー管理部を各々生成する管理部生成手段として機能させる。   The image processing program according to the invention described in claim 6 performs different image processing on the image data acquired from the previous stage of the own module, and displays the image data that has undergone the image processing or the processing result of the image processing of 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 The construction means for constructing the image processing units connected in the form of the pipeline or the directed acyclic graph, and the module group corresponding to each module group when the image processing unit is divided into a plurality of module groups. Information on individual modules is stored as management information in a table, a specific module in the corresponding module group is instructed to execute processing, and a predetermined request is received from any module in the corresponding module group. Each time an input is made, a module that is connected to a preceding stage or a subsequent stage of the module and that can execute a process that satisfies the predetermined request is determined based on the management information, and a process that satisfies the predetermined request for the determined module is determined. Processing to execute image processing in the corresponding module group in the image processing unit by instructing execution Each function as management unit generating means for generating a low management unit.

請求項1,2,6記載の発明は、多数のモジュール、或いは、互いに独立して動作可能な複数のモジュール群で画像処理部を構成する場合の処理効率の向上を実現できる、という優れた効果を有する。   The inventions according to claims 1, 2 and 6 are excellent in that the processing efficiency can be improved when the image processing unit is composed of a large number of modules or a plurality of module groups operable independently of each other. Have

請求項3記載の発明は、複数のモジュール群への画像処理部の分割を適正に行うことができる、という効果を有する。   The invention described in claim 3 has an effect that the image processing unit can be appropriately divided into a plurality of module groups.

請求項4記載の発明は、処理フロー管理部の数の必要以上の増加を防止できる、という効果を有する。   The invention according to claim 4 has an effect that an increase in the number of processing flow management units more than necessary can be prevented.

請求項5記載の発明は、リソースの確実な解放を実現できる、という効果を有する。   The invention according to claim 5 has an effect that the resource can be surely released.

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

コンピュータ10はCPU12、DRAM又はSRAM等から成るメモリ14、表示部16、操作部18、記憶部20、画像データ供給部22及び画像出力部24を備えており、これらはバス26を介して互いに接続されている。コンピュータ10が上述したような画像取扱機器に組み込まれている場合、表示部16や操作部18としては、画像取扱機器に設けられたLCD等から成る表示パネルやテンキー等を適用することができる。また、コンピュータ10が独立したコンピュータである場合、表示部16や操作部18としては、当該コンピュータに接続されたディスプレイやキーボード、マウス等を適用することができる。また、記憶部20としてはHDD(Hard Disk Drive)が好適であるが、これに代えてフラッシュメモリ等の他の不揮発性記憶手段を用いることも可能である。   The computer 10 includes a CPU 12, a memory 14 including a DRAM or SRAM, a display unit 16, an operation unit 18, a storage unit 20, an image data supply unit 22, and an image output unit 24, which are connected to each other via a bus 26. Has been. When the computer 10 is incorporated in 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は、画像処理対象の画像データを供給する画像データ供給部22の種別を認識し、認識した種別がバッファ領域(メモリ14の一部領域)であった場合には、画像データ供給部22として指定されたバッファ領域を既に確保されたバッファ40Aとしてバッファ制御部40Bに認識させるパラメータを設定し、バッファ制御部40Bのプログラムを実行するスレッド(プロセス又はオブジェクトでもよい:以下同様)を生成する(バッファ制御部40Bを生成する)ことで、指定されたバッファ領域を含むバッファモジュール40(画像データ供給部22として機能するバッファモジュール40)を生成する。   As described above, when it is detected that the situation where it is necessary to perform some kind of image processing, the application 32 recognizes the type of the image data supply unit 22 that supplies the image data to be processed, and the recognized type is If it is a buffer area (partial area of the memory 14), a parameter for causing the buffer control unit 40B to recognize the buffer area designated as the image data supply unit 22 as the buffer 40A that has already been secured is set, and buffer control is performed. A buffer module 40 including the designated buffer area (as the image data supply unit 22) is generated by generating a thread (which may be a process or an object; the same applies below) that executes the program of the unit 40B (generates the buffer control unit 40B). A functioning buffer module 40) 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或いはユーザに選択させるようにしてもよい。   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.

またモジュール生成部44が、複数種の画像処理モジュール38によって実現される画像処理(例えばスキュー角検知処理を行う画像処理モジュール38と画像回転処理を行う画像処理モジュール38によって実現されるスキュー補正処理)を行うモジュール群を生成する場合には、上記処理が繰り返されて2個以上の画像処理モジュール38を含むモジュール群が生成される。アプリケーション32によって順次起動された個々のモジュール生成部44により、以上のモジュール生成処理が順次行われることで、例として図2(A)〜(C)に示すように、必要とされる画像処理を行う画像処理部50が構築される。   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. The module generation processing described above is sequentially performed by the individual module generation units 44 that are sequentially activated by the application 32, so that the necessary image processing can be performed as shown in FIGS. An image processing unit 50 to perform is constructed.

更に、モジュール生成部44が生成する画像処理モジュール38が、別の画像処理モジュール38による画像処理の結果(例えばヒストグラム等の画像解析処理結果)を用いて画像処理を行うモジュールであり、前記別の画像処理モジュール38が未生成の場合には、モジュール生成部44によって前記別の画像処理モジュール38(或いは前記別の画像処理モジュール38を含むモジュール群)の生成も行われる。一例として図5(A)に示す画像処理部50では、「画像処理B」と表記した画像処理モジュール38が、「画像処理N1」と表記した画像処理モジュール38及び「画像処理N2」と表記した画像処理モジュール38による画像処理の結果を用いて画像処理を行う構成であり、このような画像処理部50を構築する場合、「画像処理B」の画像処理モジュール38を生成するモジュール生成部44により、「画像処理L1」の画像処理モジュール38、「BuffL1」のバッファモジュール40、「画像処理M1」の画像処理モジュール38、「BuffM1」のバッファモジュール40、及び、「画像処理N1」の画像処理モジュール38から成るモジュール群と、「画像処理L2」の画像処理モジュール38、「BuffL2」のバッファモジュール40、「画像処理M2」の画像処理モジュール38、「BuffM2」のバッファモジュール40、及び、「画像処理N2」の画像処理モジュール38から成るモジュール群が各々生成されることになる。なお、上記処理は本発明に係る構築手段に対応している。   Furthermore, the image processing module 38 generated by the module generation unit 44 is a module that performs image processing using the result of image processing by another image processing module 38 (for example, image analysis processing result such as a histogram). When the image processing module 38 has not been generated, the module generation unit 44 also generates the other image processing module 38 (or a module group including the other image processing module 38). As an example, in the image processing unit 50 shown in FIG. 5A, the image processing module 38 expressed as “image processing B” is expressed as “image processing N1” and “image processing N2”. The image processing module 38 is configured to perform image processing using the result of image processing. When such an image processing unit 50 is constructed, the module generation unit 44 that generates the image processing module 38 of “image processing B” is used. The image processing module 38 of “image processing L1”, the buffer module 40 of “BuffL1”, the image processing module 38 of “image processing M1”, the buffer module 40 of “BuffM1”, and the image processing module of “image processing N1” 38, a module group of “image processing L2”, a buffer module 4 of “BuffL2” The image processing module 38 of the "image processing M2", the buffer module 40 of "BuffM2", and, so that the module group consisting of the image processing module 38 of the "image processing N2" are respectively generated. The above processing corresponds to the construction means according to the present invention.

なお、画像処理部50として動作するプログラムの実行については、画像処理部50を構成する個々のモジュールを単位とし、個々のモジュールのプログラムを実行するスレッドを生成し、CPU12によって実行させるようにしてもよいが、次に説明する処理管理部生成処理で生成される個々の処理管理部46によって管理されるモジュール群(独立して並列に動作可能なモジュール群)を単位としてスレッドを生成し、CPU12によって実行させるようにすることが好ましい。   As for the execution of the program that operates as the image processing unit 50, a thread for executing the program of each module may be generated and executed by the CPU 12 for each module constituting the image processing unit 50 as a unit. Although a thread is generated in units of module groups (module groups that can operate independently and in parallel) managed by individual process management units 46 generated in the process management unit generation process described below, the CPU 12 It is preferable to make it execute.

一方、処理構築部42は、アプリケーション32からの指示に従い、画像処理部50を構成する個々のモジュールを順次生成する上述した処理と並行して、図4に示す処理管理部生成処理を行う。なお、以下で説明する処理管理部生成処理は本発明に係る管理部生成手段による処理に対応しており、処理構築部42は本発明に係る管理部生成手段(より詳しくは請求項2〜請求項4に記載の管理部生成手段)としても機能する。   On the other hand, the process construction unit 42 performs the process management unit generation process illustrated in FIG. 4 in parallel with the above-described process of sequentially generating the individual modules constituting the image processing unit 50 in accordance with an instruction from the application 32. Note that the process management unit generation process described below corresponds to the process performed by the management unit generation unit according to the present invention, and the process construction unit 42 includes the management unit generation unit according to the present invention (more specifically, claims 2 to It also functions as the management unit generating means described in item 4.

この処理管理部生成処理では、まずステップ100において、処理管理部46のプログラムを実行するスレッドを生成することで、コンピュータ10上で動作する処理管理部46の処理フロー管理部46A、リソース管理部46C及びエラー管理部46Bを各々生成する。また、処理フロー管理部46Aは管理対象のモジュールの識別情報を登録するための管理テーブルを備えており、次のステップ102では、ステップ100で生成した処理フロー管理部46Aの管理テーブルをクリア(初期化)する。次のステップ104では新たな画像処理モジュール38が生成されたか否か判定する。この判定が否定された場合はステップ106へ移行し、画像処理部50の構築が完了したか否か判定する。この判定も否定された場合はステップ104に戻り、何れかの判定が肯定される迄ステップ104,106を繰り返す。   In this process management unit generation process, first, in step 100, a thread for executing the program of the process management unit 46 is generated, so that the process flow management unit 46A and the resource management unit 46C of the process management unit 46 operating on the computer 10 are processed. And error management unit 46B. Further, the processing flow management unit 46A includes a management table for registering identification information of modules to be managed. In the next step 102, the management table of the processing flow management unit 46A generated in step 100 is cleared (initially). ). In the next step 104, it is determined whether or not a new image processing module 38 has been generated. If this determination is negative, the process proceeds to step 106 to determine whether or not the construction of the image processing unit 50 is completed. If this determination is also denied, the process returns to step 104, and steps 104 and 106 are repeated until either determination is affirmed.

また、アプリケーション32からの指示に従って新たな画像処理モジュール38が生成されると、ステップ104の判定が肯定されてステップ108へ移行し、今回生成された画像処理モジュール38が、画像データ供給部22から画像データを読み込んで後段へ出力するデータ読込モジュール、画像データを生成して後段へ出力するデータ生成モジュール、他の画像処理モジュール38と共に同一のバッファモジュール40(分岐モジュール)の後段(次段)に接続された画像処理モジュール38(単一のバッファモジュール40の後段に複数のモジュール群が連結され、同一の画像データが複数のモジュール群へ各々出力(分岐)される構成において、個々のモジュール群の先頭に相当する画像処理モジュール38:請求項3に記載の特定モジュールに相当)の何れかに該当するか否か判定する。   When a new image processing module 38 is generated in accordance with an instruction from the application 32, the determination in step 104 is affirmed and the process proceeds to step 108. The image processing module 38 generated this time is transmitted from the image data supply unit 22. A data reading module that reads image data and outputs it to the subsequent stage, a data generation module that generates image data and outputs it to the subsequent stage, and other image processing modules 38 together with the same buffer module 40 (branch module) in the subsequent stage (next stage) In a configuration in which a plurality of module groups are connected to the subsequent stage of the connected image processing module 38 (a single buffer module 40 and the same image data is output (branched) to the plurality of module groups, respectively, each module group The image processing module 38 corresponding to the head: the specific module according to claim 3 It corresponds to any one of the above.

詳細は後述するが、本実施形態に係る処理管理部生成処理では、画像処理部50を互いに独立して並列に動作可能な複数のモジュール群に分割したときの個々のモジュール群を単位として処理フロー管理部46Aを設けており、上述したステップ108の判定では、今回生成された画像処理モジュール38が、画像処理部50を互いに独立して並列に動作可能な複数のモジュール群に分割した場合の何れかのモジュール群(対応する処理フロー管理部46Aを設けるモジュール群)の先頭になり得る画像処理モジュール38か否かを判断している。   Although details will be described later, in the process management unit generation process according to the present embodiment, the process flow is performed in units of individual module groups when the image processing unit 50 is divided into a plurality of module groups that can operate in parallel independently of each other. The management unit 46A is provided, and in the determination in step 108 described above, the image processing module 38 generated this time is any of the cases where the image processing unit 50 is divided into a plurality of module groups that can operate in parallel independently of each other. It is determined whether or not the image processing module 38 can be the head of the module group (the module group provided with the corresponding processing flow management unit 46A).

すなわち、前述したデータ読込モジュールを先頭とするモジュール群は、当該モジュール群への画像データの入力が、先頭のデータ読込モジュールによる画像データ供給部22からの画像データの読み込み・出力によって成され、他のモジュール群における処理の進行に依存していないので、他のモジュール群と独立して並列に動作可能である可能性が高い。例えば図5(A)に示す「画像処理A」「画像処理L1」「画像処理L2」の各画像処理モジュール38は何れもデータ読込モジュールであり、これらのデータ読込モジュールを先頭とする個々のモジュール群(画像処理A、BuffA、画像処理B、BuffB、画像処理C、BuffC、画像処理Dから成る第1モジュール群、画像処理L1、BuffL1、画像処理M1、BuffM1、画像処理N1から成る第2モジュール群、及び、画像処理L2、BuffL2、画像処理M2、BuffM2、画像処理N2から成る第3モジュール群)は互いに独立して並列に動作可能である。   That is, in the module group starting from the data reading module described above, input of image data to the module group is performed by reading / outputting image data from the image data supply unit 22 by the leading data reading module. Therefore, there is a high possibility of being able to operate in parallel independently of other module groups. For example, each of the image processing modules 38 of “image processing A”, “image processing L1”, and “image processing L2” shown in FIG. 5A is a data reading module, and individual modules starting with these data reading modules Group (first module group consisting of image processing A, Buff A, image processing B, Buff B, image processing C, Buff C, image processing D, second module consisting of image processing L1, Buff L1, image processing M1, Buff M1, and image processing N1 Group, and a third module group consisting of image processing L2, BuffL2, image processing M2, BuffM2, and image processing N2) can operate independently and in parallel.

また、前述したデータ生成モジュールを先頭とするモジュール群についても、当該モジュール群への画像データの入力が、先頭のデータ生成モジュールによる画像データの生成・出力によって成され、他のモジュール群における処理の進行に依存していないので、他のモジュール群と独立して並列に動作可能である可能性が高い。また、分岐モジュールの後段(次段)のモジュールを先頭とするモジュール群についても、他のモジュール群と独立して並列に動作可能である可能性が高い。例えば図7(A)に示す画像処理部50における「画像処理B」「画像処理L1」「画像処理L2」の各画像処理モジュール38は、何れも分岐モジュールとしてのバッファモジュールBuffAの後段(次段)のモジュールであり、これらの画像処理モジュールを先頭とする個々のモジュール群(画像処理B、BuffB、画像処理C、BuffC、画像処理Dから成る第1モジュール群、画像処理L1、BuffL1、画像処理M1、BuffM1、画像処理N1から成る第2モジュール群、及び、画像処理L2、BuffL2、画像処理M2、BuffM2、画像処理N2から成る第3モジュール群)は互いに独立して並列に動作可能である。   In addition, for the module group having the data generation module at the head as described above, the input of the image data to the module group is performed by the generation and output of the image data by the head data generation module, and the processing of the other module group is performed. Since it does not depend on progress, there is a high possibility that it can operate in parallel independently of other module groups. In addition, the module group starting from the module following the branch module (next stage) is also likely to be able to operate in parallel independently of other module groups. For example, each of the image processing modules 38 of “image processing B”, “image processing L1”, and “image processing L2” in the image processing unit 50 shown in FIG. 7A is a subsequent stage (next stage) of the buffer module BuffA as a branch module. ), And each module group starting from these image processing modules (first module group including image processing B, Buff B, image processing C, Buff C, and image processing D, image processing L1, Buff L1, and image processing) The second module group including M1, BuffM1, and image processing N1, and the third module group including image processing L2, BuffL2, image processing M2, BuffM2, and image processing N2) can operate in parallel independently of each other.

このため、ステップ110の判定が肯定された場合、今回生成された画像処理モジュール38は、他のモジュール群と独立して並列に動作可能なモジュール群の先頭に位置している可能性が高いと判断できるので、ステップ112へ移行し、処理管理部生成処理で生成した処理フロー管理部46Aの中に、管理テーブルに管理対象のモジュールの識別情報が未登録の処理フロー管理部46A(今回生成された画像処理モジュール38を先頭とするモジュール群に割当可能な処理フロー管理部46A)が存在しているか否か判定する。   For this reason, when the determination in step 110 is affirmed, it is highly possible that the image processing module 38 generated this time is positioned at the top of a module group that can operate in parallel independently of other module groups. Since the determination can be made, the process proceeds to step 112, and in the processing flow management unit 46A generated by the processing management unit generation processing, the processing flow management unit 46A (which is generated this time) whose management table identification information is not registered in the management table. It is determined whether there is a process flow management unit 46A) that can be assigned to the module group starting with the image processing module 38.

今回生成された画像処理モジュール38が画像処理部50の先頭に位置している場合、先のステップ100で生成した処理フロー管理部46Aは、管理対象のモジュールを未割当ての状態であるので、当初はステップ110の判定が肯定されてステップ116へ移行し、今回生成された画像処理モジュール38の識別情報を管理対象として管理テーブルに登録する処理フロー管理部46Aを既存の処理フロー管理部46Aの中から選択する。なお、先のステップ110の判定が肯定された場合、上記の処理フロー管理部46Aとしては、管理テーブルに管理対象のモジュールの識別情報が未登録の処理フロー管理部46A(ステップ100で生成された処理フロー管理部46A)が選択される。次のステップ118では、今回生成された画像処理モジュール38の後段のモジュールが別系統のモジュール群へ画像データを出力しているか否か判定する。   When the image processing module 38 generated this time is located at the head of the image processing unit 50, the processing flow management unit 46A generated in the previous step 100 is in an unassigned state of the module to be managed. When the determination in step 110 is affirmed, the process proceeds to step 116, and the processing flow management unit 46A for registering the identification information of the image processing module 38 generated this time in the management table as a management target is added to the existing processing flow management unit 46A. Select from. If the determination in the previous step 110 is affirmed, the processing flow management unit 46A described above is a processing flow management unit 46A in which the identification information of the module to be managed is not registered in the management table (generated in step 100). The processing flow management unit 46A) is selected. In the next step 118, it is determined whether the subsequent module of the image processing module 38 generated this time outputs image data to a module group of another system.

ステップ118の判定が否定された場合はステップ124へ移行し、今回生成された画像処理モジュール38の識別情報(ID)を、当該画像処理モジュール38の後段に連結されたバッファモジュール40の識別情報(ID)と対応付け、対応する処理フロー管理部46A(ここではステップ116で選択した処理フロー管理部46A)の管理テーブルに登録する。なお、上記の識別情報(ID)は個々のモジュールを一意に判別できる情報であればよく、例えば個々のモジュールの生成順に付与した番号や、バッファモジュール40や画像処理モジュール38のオブジェクトのメモリ上でのアドレス等でも良い。ステップ124の処理を行うとステップ104に戻り、ステップ104,106を繰り返す。   If the determination in step 118 is negative, the process proceeds to step 124, and the identification information (ID) of the image processing module 38 generated this time is used as the identification information (ID of the buffer module 40 connected to the subsequent stage of the image processing module 38 ( ID) and the corresponding processing flow management unit 46A (here, the processing flow management unit 46A selected in step 116) is registered in the management table. The identification information (ID) may be any information that can uniquely identify each module. For example, the identification information (ID) is assigned in the order of generation of each module, or in the object memory of the buffer module 40 or the image processing module 38. The address may be used. If the process of step 124 is performed, it will return to step 104 and will repeat step 104,106.

また、単一の画像処理部50において、データ読込モジュール、データ生成モジュール、分岐モジュールの後段(次段)のモジュールの何れかに該当する画像処理モジュール38が複数生成された場合、2番目以降に生成された上記の画像処理モジュール38に対しては、ステップ108の判定が肯定されると共にステップ110の判定が否定されてステップ112へ移行し、処理管理部46のプログラムを実行するスレッドを追加生成することで、今回生成された画像処理モジュール38(を先頭とするモジュール群)に対応する処理管理部46(少なくとも処理フロー管理部46Aを備えた処理管理部46)を追加生成する。また、次のステップ114では、ステップ112で生成した処理フロー管理部46Aの管理テーブルをクリア(初期化)する。そしてステップ124へ移行し、今回生成された画像処理モジュール38の識別情報(ID)を、当該画像処理モジュール38の後段に連結されたバッファモジュール40の識別情報(ID)と対応付け、ステップ112で生成した対応する処理フロー管理部46Aの管理テーブルに登録する。   Further, when a plurality of image processing modules 38 corresponding to any one of the data reading module, the data generating module, and the module following the branch module (next stage) are generated in the single image processing unit 50, the second and subsequent ones are generated. For the generated image processing module 38, the determination in step 108 is affirmed and the determination in step 110 is denied, and the process proceeds to step 112, and a thread for executing the program of the process management unit 46 is additionally generated. As a result, the process management unit 46 (the process management unit 46 including at least the process flow management unit 46A) corresponding to the image processing module 38 (module group starting from the current generation) generated this time is additionally generated. In the next step 114, the management table of the processing flow management unit 46A generated in step 112 is cleared (initialized). Then, the process proceeds to step 124, where the identification information (ID) of the image processing module 38 generated this time is associated with the identification information (ID) of the buffer module 40 connected to the subsequent stage of the image processing module 38. The generated information is registered in the management table of the corresponding processing flow management unit 46A.

上記のように、ステップ108の判定が肯定されると共にステップ110の判定が否定される毎に、処理管理部46(処理フロー管理部46A)が追加生成されることで、例として図5(B),図7(B)に示すように、データ読込モジュール、データ生成モジュール、分岐モジュールの後段(次段)のモジュールの何れかを先頭とするモジュール群を単位として、処理管理部46(処理フロー管理部46A)が各々生成される (図5(B)は画像処理A、画像処理L1、画像処理L2の3個のデータ読込モジュールを各々先頭とする3個のモジュール群に対応して3個の処理管理部46(処理フロー管理部46A)が生成され、図7(B)は画像処理Aのデータ読込モジュール、及び、画像処理B、画像処理L1、画像処理L2の3個のデータ読込モジュールを各々先頭とする合計4個のモジュール群に対応して4個の処理管理部46(処理フロー管理部46A)が生成された例を示す)。   As described above, each time the determination in step 108 is affirmed and the determination in step 110 is denied, the processing management unit 46 (processing flow management unit 46A) is additionally generated, so that FIG. 7B, as shown in FIG. 7B, the process management unit 46 (processing flow) is performed with a module group starting from any one of the data reading module, the data generation module, and the branch module (next stage) as the head. Each of the management units 46A) is generated (FIG. 5B shows three modules corresponding to the three module groups each starting with the three data reading modules of image processing A, image processing L1, and image processing L2. 7B is generated. FIG. 7B shows a data reading module for image processing A, and three data reading modules for image processing B, image processing L1, and image processing L2. The An example is shown in which four processing management units 46 (processing flow management unit 46A) are generated corresponding to a total of four module groups each starting from the top).

また、データ読込モジュール、データ生成モジュール、分岐モジュールの後段(次段)のモジュールの何れにも該当しない画像処理モジュール38が生成された場合、ステップ108の判定が否定されてステップ116へ移行するが、この場合は、今回生成された画像処理モジュール38の識別情報を管理対象として管理テーブルに登録する処理フロー管理部46Aとして、今回生成された画像処理モジュール38の前段に存在するモジュールと同一の処理フロー管理部46Aが選択され、ステップ124において、今回生成された画像処理モジュール38及びその後段に連結されたバッファモジュール40の識別情報(ID)は、ステップ116で選択した処理フロー管理部46Aの管理テーブルに登録されることになる。   If the image processing module 38 that does not correspond to any of the data reading module, the data generation module, and the subsequent module of the branch module is generated, the determination in step 108 is negative and the process proceeds to step 116. In this case, as the processing flow management unit 46A for registering the identification information of the image processing module 38 generated this time in the management table as a management target, the same processing as the module existing in the previous stage of the image processing module 38 generated this time The flow management unit 46A is selected. In step 124, the identification information (ID) of the image processing module 38 generated this time and the buffer module 40 connected to the subsequent stage is managed by the processing flow management unit 46A selected in step 116. It will be registered in the table.

これにより、図5(B),図7(B)にも示すように、個々の処理管理部46の処理フロー管理部46Aの管理テーブルには、対応するモジュール群(管理対象のモジュール群)の個々のモジュールの識別情報のみが登録され、個々の処理管理部46の処理フロー管理部46Aにより、画像処理部50における画像処理の実行を管理する処理が、データ読込モジュール、データ生成モジュール、分岐モジュールの後段(次段)のモジュールの何れかを先頭とする個々のモジュール群を単位として行われることになる。   As a result, as shown in FIGS. 5B and 7B, the management table of the processing flow management unit 46A of each processing management unit 46 includes the corresponding module group (module group to be managed). Only the identification information of each module is registered, and the process of managing the execution of image processing in the image processing unit 50 by the processing flow management unit 46A of each processing management unit 46 includes a data reading module, a data generation module, and a branch module. This is performed in units of individual module groups starting from one of the subsequent (next) modules.

また、前述のステップ112で追加生成する処理管理部46は、少なくとも処理フロー管理部46Aを備えた処理管理部46であればよいが、図5(B),図7(B)では、処理フロー管理部46Aに加えてエラー管理部46Bも備えた処理管理部46を追加生成した例を示している。この場合、画像処理部50で発生したエラーを管理するエラー管理処理についても、データ読込モジュール、データ生成モジュール、分岐モジュールの後段(次段)のモジュールの何れかを先頭とする個々のモジュール群を単位として行われる。また、ステップ112において、処理フロー管理部46A及びリソース管理部46Cを備えた処理管理部46を追加生成するようにしてもよいし、処理フロー管理部46A、エラー管理部46B及びリソース管理部46Cを各々備えた処理管理部46を追加生成するようにしてもよい。   Further, the process management unit 46 additionally generated in the above-described step 112 may be the process management unit 46 provided with at least the process flow management unit 46A. However, in FIG. 5B and FIG. In this example, the process management unit 46 including an error management unit 46B in addition to the management unit 46A is additionally generated. In this case, an error management process for managing an error that has occurred in the image processing unit 50 also includes an individual module group starting from one of the data reading module, the data generation module, and the subsequent module (next stage) of the branch module. Done as a unit. In step 112, a process management unit 46 including a process flow management unit 46A and a resource management unit 46C may be additionally generated, or the process flow management unit 46A, the error management unit 46B, and the resource management unit 46C may be You may make it additionally generate the process management part 46 with which each was provided.

一方、モジュールライブラリ36には画像合成処理を行う画像処理モジュール38のプログラムが登録されているが、例えば図2(C)に示すように、画像合成処理等のように複数の画像データを用いる画像処理を行う画像処理モジュール38は、互いに異なるモジュールから出力された複数の画像データを用いて画像処理を行うので、複数の画像データを用いる画像処理を行う画像処理モジュール38を先頭とするモジュール群における処理の進行は、前段の複数のモジュール群(複数の画像データを用いる画像処理を行う画像処理モジュール38へ画像データを出力する複数のモジュールを各々末尾とする複数のモジュール群)における処理の進行に依存しており、複数の画像データを用いる画像処理を行う画像処理モジュール38を先頭とするモジュール群については、前段の複数のモジュール群と画像処理の実行を一体に管理することが処理効率上望ましい。   On the other hand, a program of an image processing module 38 for performing image composition processing is registered in the module library 36. For example, as shown in FIG. 2C, an image using a plurality of image data as in image composition processing or the like. The image processing module 38 that performs processing performs image processing using a plurality of image data output from modules different from each other. Therefore, in the module group that starts with the image processing module 38 that performs image processing using a plurality of image data. The progress of the process is the progress of the process in a plurality of module groups in the preceding stage (a plurality of module groups each having a plurality of modules that output image data to the image processing module 38 that performs image processing using a plurality of image data). The image processing module 38 that performs image processing using a plurality of image data is headed. For the module group, it is desirable in terms of processing efficiency to integrally manage the execution of image processing with the plurality of module groups in the previous stage.

前述のステップ118では、今回生成された画像処理モジュール38の後段のモジュールが、複数の画像データを用いる画像処理を行う画像処理モジュール38を先頭とするモジュール群へ画像データを出力するように連結されているか否か判定しており、この判定が肯定された場合はステップ120、122において、今回生成された画像処理モジュール38を含むモジュール群に対応する処理フロー管理部46A(処理管理部46)を、今回生成された画像処理モジュール38の後段のモジュールが連結されているモジュール群に対応する別の処理フロー管理部46A(処理管理部46)と統合する処理を行う。   In step 118 described above, the subsequent module of the image processing module 38 generated this time is connected to output image data to a module group starting with the image processing module 38 that performs image processing using a plurality of image data. If the determination is affirmative, in steps 120 and 122, the processing flow management unit 46A (processing management unit 46) corresponding to the module group including the image processing module 38 generated this time is displayed. Then, a process of integrating with another processing flow management unit 46A (processing management unit 46) corresponding to the module group to which the subsequent module of the image processing module 38 generated this time is connected is performed.

すなわち、ステップ120では、先のステップ116で選択した処理フロー管理部46Aの管理テーブルに登録されている各モジュールの識別情報を、今回生成された画像処理モジュール38の後段のモジュールが連結されているモジュール群に対応する別の処理フロー管理部46Aの管理テーブルに複写する。そしてステップ122では、先のステップ116で選択した処理フロー管理部(処理管理部46)のプログラムを実行するスレッドを消去(削除)した後にステップ124へ移行する。   That is, in step 120, the module subsequent to the image processing module 38 generated this time is connected to the identification information of each module registered in the management table of the processing flow management unit 46A selected in the previous step 116. Copy to the management table of another processing flow management unit 46A corresponding to the module group. In step 122, after deleting (deleting) the thread for executing the program of the processing flow management unit (processing management unit 46) selected in the previous step 116, the process proceeds to step 124.

これにより、先のステップ116で選択した処理フロー管理部46A(処理管理部46)が、今回生成された画像処理モジュール38の後段のモジュールが連結されているモジュール群に対応する別の処理フロー管理部46A(処理管理部46)と統合され、ステップ124において、今回生成された画像処理モジュール38及びその後段に連結されたバッファモジュール40の識別情報(ID)は、統合後の処理フロー管理部46Aの管理テーブルに登録される。従って、今回生成された画像処理モジュール38を含むモジュール群は、同一の処理フロー管理部46Aにより、今回生成された画像処理モジュール38の後段のモジュールが連結されている別のモジュール群と画像処理の実行が一体に管理されることになる。   As a result, the processing flow management unit 46A (processing management unit 46) selected in the previous step 116 performs another processing flow management corresponding to the module group to which the subsequent module of the image processing module 38 generated this time is connected. In step 124, the identification information (ID) of the image processing module 38 and the buffer module 40 connected to the subsequent stage is integrated with the integrated processing flow management unit 46A. Registered in the management table. Accordingly, the module group including the image processing module 38 generated this time is processed by the same processing flow management unit 46A with another module group to which the module subsequent to the image processing module 38 generated this time is connected. Execution is managed together.

次に、上記の処理で構築された画像処理部50で画像処理が行われる際の個々の画像処理モジュール38及びバッファモジュール40の動作を順に説明する。   Next, operations of the individual image processing modules 38 and the buffer modules 40 when image processing is performed by the image processing unit 50 constructed by the above processing will be described in order.

画像処理の実行時には、対応する処理フロー管理部46Aから個々の画像処理モジュール38に処理要求が入力される(図3(A)の(1)も参照)。画像処理モジュール38は、処理要求が入力されると、予め設定された識別情報で規定されている自モジュールの前段のモジュール(通常はバッファモジュール40)に対して画像データを要求する(図3(A)の(2)も参照)。読出可能な有効データがバッファモジュール40のバッファ40Aに単位読出データ量以上記憶されていれば、バッファモジュール40から読出領域の先頭アドレスが通知されて画像データの読出が要請される。これにより、画像処理モジュール38は先頭アドレスが通知された前段のモジュールの読出領域から単位読出データ量の画像データを読み出す(図3(A)の(3)も参照)。   When executing image processing, a processing request is input from the corresponding processing flow management unit 46A to each image processing module 38 (see also (1) in FIG. 3A). When the processing request is input, the image processing module 38 requests image data from the module (usually the buffer module 40) in front of the own module defined by the preset identification information (FIG. 3 ( (See also A) (2)). If readable readable data is stored in the buffer 40A of the buffer module 40 in a unit read data amount or more, the buffer module 40 notifies the start address of the read area and requests reading of image data. As a result, the image processing module 38 reads the image data of the unit read data amount from the read area of the preceding module notified of the head address (see also (3) in FIG. 3A).

次に、画像処理モジュール38は自モジュールの後段のモジュールに対してデータ出力用の領域を要求し、データ出力領域(後段のモジュールがバッファモジュール40であれば当該バッファモジュール40から先頭アドレスが通知された書込領域)が取得できたら(図3(A)の(4)も参照)、先に前段のモジュールから取得した画像データ、後段のモジュールから取得したデータ出力領域(の先頭アドレス)を画像処理エンジン38Aに入力し、入力したデータに対して所定の画像処理を行わせる(図3(A)の(5)も参照)と共に、処理後のデータをデータ出力領域に書き込ませる(図3(A)の(6)も参照)。そして、画像処理エンジン38Aへの単位読出データ量のデータの入力が完了し、画像処理エンジン38Aから出力されたデータがデータ出力領域に全て書き込まれると、出力完了を後段のモジュールに通知すると共に、先に入力された処理要求に対応する処理を完了したことを処理要求元(対応する処理フロー管理部46A)へ通知する(図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, and if the data output area (the module at the subsequent stage is the buffer module 40), the start address is notified from the buffer module 40. (See also (4) in FIG. 3A), the image data acquired from the previous module and the data output area (first address) acquired from the subsequent module are converted into an image. The image data is input to the processing engine 38A and predetermined image processing is performed on the input data (see also (5) in FIG. 3A), and the processed data is written in the data output area (FIG. 3 ( (See also A) (6)). When the input of the unit read data amount to the image processing engine 38A is completed and all the data output from the image processing engine 38A is written in the data output area, the output completion is notified to the subsequent module, and The process request source (corresponding process flow management unit 46A) 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.

なお、画像処理モジュール38によっては、他の画像処理モジュール38から処理要求が入力されることがある。例えば図5に示す画像処理部50では、前述のように、画像処理L1、BuffL1、画像処理M1、BuffM1、画像処理N1から成る第2モジュール群、及び、画像処理L2、BuffL2、画像処理M2、BuffM2、画像処理N2から成る第3モジュール群が、画像処理Bの画像処理モジュール38からの指示によって生成されるが、各モジュール群の最後段の画像処理モジュール38(画像処理N1及び画像処理N2の画像処理モジュール38)は、画像処理Bの画像処理モジュール38から処理要求が入力されることで上記の処理シーケンスが実現される。   Depending on the image processing module 38, a processing request may be input from another image processing module 38. For example, in the image processing unit 50 shown in FIG. 5, as described above, the second module group including the image processing L1, BuffL1, image processing M1, BuffM1, and image processing N1, and the image processing L2, BuffL2, image processing M2, A third module group consisting of BuffM2 and image processing N2 is generated in response to an instruction from the image processing module 38 of image processing B, and the last image processing module 38 (image processing N1 and image processing N2 of each module group) is generated. The image processing module 38) realizes the above-described processing sequence when a processing request is input from the image processing module 38 of the image processing B.

また、バッファモジュール40のバッファ制御部40Bは、予め設定された識別情報で規定されている自モジュールの後段のモジュール(通常は画像処理モジュール38)から画像データが要求されると(図3(B)の(1)も参照)、要求された画像データがバッファ40Aに記憶されているか否かチェックする(図3(B)の(2)も参照)が、読出可能な有効データがバッファ40Aに単位読出データ量以上記憶されていない場合は、処理フロー管理部46Aに対して画像データを要求する(図3(B)の(3)も参照)。ここで、処理フロー管理部46Aは、画像データ要求元のバッファモジュール40の識別情報(ID)をキーにして管理テーブルを検索し、画像データ要求元のバッファモジュール40の識別情報(ID)と対応付けて管理テーブルに識別情報(ID)が登録されている画像処理モジュール38を、画像データ要求元のバッファモジュール40の前段に位置している画像処理モジュール38と認識し、認識した画像処理モジュール38に処理要求を入力する(図3(B)の(4)も参照)。   When the buffer controller 40B of the buffer module 40 requests image data from a module (usually the image processing module 38) subsequent to its own module defined by preset identification information (FIG. 3B ) (See also (1))), it is checked whether or not the requested image data is stored in the buffer 40A (see also (2) in FIG. 3B), but readable valid data is stored in the buffer 40A. If no unit read data amount is stored, the processing flow management unit 46A is requested for image data (see also (3) in FIG. 3B). Here, the processing flow management unit 46A searches the management table using the identification information (ID) of the buffer module 40 of the image data request source as a key, and corresponds to the identification information (ID) of the buffer module 40 of the image data request source. In addition, the image processing module 38 in which the identification information (ID) is registered in the management table is recognized as the image processing module 38 located in the preceding stage of the buffer module 40 that requested the image data, and the recognized image processing module 38 is recognized. The processing request is input to (see also (4) of FIG. 3B).

そして、図3(A)に示したシーケンスを経て、前段の画像処理モジュール38によってバッファ40Aに画像データが書き込まれ(図3(B)の(5),(6)も参照)、バッファ40Aから読出可能な有効データが単位読出データ量以上になると、バッファモジュール40から後段の画像処理モジュール38に対して読出領域の先頭アドレスが通知され、後段の画像処理モジュール38によってバッファモジュール40のバッファ40Aから画像データが読み出されることになる(図3(B)の(7)も参照)。   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).

一方、先の処理管理部生成処理によって生成された個々の処理管理部46の処理フロー管理部46Aは、画像処理部50の構築完了を検知したアプリケーション32から画像処理の実行が指示されると、画像処理部50のうち管理対象のモジュール群の最後段に位置している画像処理モジュール38に処理要求を入力し(管理対象のモジュール群が、図5の第2モジュール群や第3モジュール群等のように他の画像処理モジュール38からの指示によって生成された場合を除く)、管理対象のモジュール群の最後段に位置している画像処理モジュール38から処理完了通知が入力される毎に、当該最後段に位置している画像処理モジュール38に処理要求を再度入力することを、前記最後段に位置している画像処理モジュール38から全体処理の終了(処理対象の画像データ(例えば1フレーム分の画像データ)に対する画像処理の終了)が通知される迄繰り返し、前記最後段に位置している画像処理モジュール38から全体処理の終了が通知されると、画像処理の実行を指示したアプリケーション32に対して管理対象のモジュール群における画像処理の実行終了を通知する。   On the other hand, when the processing flow management unit 46A of each processing management unit 46 generated by the previous processing management unit generation processing is instructed to execute image processing from the application 32 that detects completion of the construction of the image processing unit 50, A processing request is input to the image processing module 38 located at the last stage of the module group to be managed in the image processing unit 50 (the module group to be managed is the second module group, the third module group, or the like in FIG. 5). Each time a processing completion notification is input from the image processing module 38 located in the last stage of the module group to be managed, except when generated by an instruction from another image processing module 38 as shown in FIG. Re-inputting the processing request to the image processing module 38 located at the last stage means that the entire processing is performed from the image processing module 38 located at the last stage. The end of the entire process is notified from the image processing module 38 located at the last stage until the end (the end of image processing for the image data to be processed (for example, image data for one frame)) is notified. And notifies the application 32 that has instructed the execution of the image processing of the end of the execution of the image processing in the module group to be managed.

また、個々の処理管理部46の処理フロー管理部46Aは、管理対象のモジュール群で画像処理が行われている間、管理対象のモジュール群の任意のバッファモジュール40からデータ要求が入力される毎に、前述のように管理テーブルの検索を行うことで、データ要求入力元のバッファモジュール40の前段の画像処理モジュール38を認識し、認識した画像処理モジュール38に処理要求を入力する。ここで、画像処理部50を構成するモジュールの数は画像処理部50で行う画像処理の内容や画像処理部50が画像処理を行う画像データの内容等によって変化し、画像処理の内容や画像データの内容等によっては、モジュールが数千〜数万個もの膨大な数のモジュールによって画像処理部50が構成されることも生じ得る。そして、画像処理部50を構成するモジュールが膨大な数に上ると、処理フロー管理部46Aの管理テーブルにも膨大な数のモジュールの識別情報(ID)が登録されることになるので、データ要求が入力される毎に行われる管理テーブルの検索に要する時間が長時間化し、処理効率が大幅に低下する。   The processing flow management unit 46A of each processing management unit 46 receives a data request from an arbitrary buffer module 40 of the management target module group while image processing is being performed on the management target module group. In addition, by searching the management table as described above, the image processing module 38 in the previous stage of the buffer module 40 that is the data request input source is recognized, and the processing request is input to the recognized image processing module 38. Here, the number of modules constituting the image processing unit 50 varies depending on the content of image processing performed by the image processing unit 50, the content of image data that the image processing unit 50 performs image processing, and the like. Depending on the contents of the image processing unit 50, the image processing unit 50 may be configured by a huge number of modules of several thousand to several tens of thousands. If the number of modules constituting the image processing unit 50 is enormous, the identification information (ID) of the enormous number of modules is registered in the management table of the processing flow management unit 46A. The time required to search the management table each time is entered increases the processing efficiency.

これに対して本実施形態では、画像処理部50を互いに独立して並列に動作可能な複数のモジュール群に分割したときの個々のモジュール群を単位として処理フロー管理部46Aを設けているので、図5(B)に示す個々の処理フロー管理部46Aの管理テーブルのサイズを、図5(A)に示す単一の処理フロー管理部46Aの管理テーブルのサイズと比較しても明らかなように、個々の処理フロー管理部46Aの管理テーブルのサイズを小さくすることができ、管理テーブルの検索に要する時間を短縮することができる。   On the other hand, in the present embodiment, the processing flow management unit 46A is provided in units of individual module groups when the image processing unit 50 is divided into a plurality of module groups that can operate in parallel independently of each other. As apparent from the comparison of the size of the management table of the individual processing flow management unit 46A shown in FIG. 5B with the size of the management table of the single processing flow management unit 46A shown in FIG. The size of the management table of each processing flow management unit 46A can be reduced, and the time required for searching the management table can be shortened.

また、画像処理の実行中に画像処理部50を構成する何れかのモジュールでエラーが発生した場合、エラーが発生したモジュールを含むモジュール群を管理対象とする処理管理部46のエラー管理部46Bへエラーの発生が通知され、エラー管理部46Bは、エラーの発生が通知されると、発生したエラーの種別・発生箇所等のエラー情報を取得し、動作しているコンピュータ(コンピュータ10)の種別や構成等を表す装置環境情報を記憶部20から取得し、取得した装置環境情報が表す装置環境に応じたエラー通知方法を判断し、判断したエラー通知方法でエラーの発生を通知する。   Further, when an error occurs in any of the modules constituting the image processing unit 50 during the execution of the image processing, the error management unit 46B of the process management unit 46 that manages the module group including the module in which the error has occurred. When the occurrence of the error is notified and the error management unit 46B is notified of the occurrence of the error, the error management unit 46B acquires error information such as the type and location of the error that has occurred, and the type of the computer (computer 10) that is operating The device environment information representing the configuration or the like is acquired from the storage unit 20, the error notification method corresponding to the device environment represented by the acquired device environment information is determined, and the occurrence of the error is notified by the determined error notification method.

また、アプリケーション32は、個々の処理管理部46の処理フロー管理部46Aから、管理対象のモジュール群における画像処理の実行終了が通知される毎に、通知元の処理管理部46の消去を指示する。これにより、管理対象のモジュール群で画像処理が終了した処理管理部46は、管理対象のモジュール群を構成する個々のモジュール(のプログラムを実行するスレッド)を消去すると共に、処理管理部46自身(のプログラムを実行するスレッド)も消去する消去処理を行うが、この消去処理の途中でリソース管理部46Cに一時的に制御が渡り、消去される個々のモジュールや処理管理部46(の処理フロー管理部46Aやエラー管理部46B)が確保していたメモリ領域等のリソースは、リソース管理部46Cを通じて全て解放される。   Each time the application 32 is notified by the processing flow management unit 46A of each processing management unit 46 that the execution of image processing in the module group to be managed has been completed, the application 32 instructs to delete the notification source processing management unit 46. . As a result, the process management unit 46 that has completed the image processing in the module group to be managed erases the individual modules (threads for executing the program) constituting the module group to be managed, and the process management unit 46 itself ( The thread that executes the program) also performs an erasure process. In the middle of this erasure process, control is temporarily transferred to the resource management unit 46C, and the individual modules to be erased and the process management unit 46 (the process flow management of the module). All resources such as a memory area secured by the unit 46A and the error management unit 46B) are released through the resource management unit 46C.

これにより、アプリケーション32のコーディングに際しては、画像処理の実行終了が通知される毎に処理管理部46の消去を指示するコードを記述するのみで、構築を指示した画像処理部50の生成に伴って確保されたリソースを確実に解放することができ、個々のモジュールが確保していたリソースの解放を指示するコードの記述漏れに伴って一部のリソースが解放されずに有効利用率が低下してしまうことを防止することができる。なお、上記の消去処理を行う処理管理部46は、リソースの解放を行うリソース管理部46Cと共に請求項5に記載の消去処理手段に対応している。   As a result, when coding the application 32, each time the completion of the image processing is notified, only the code for instructing the erasure of the processing management unit 46 is described. With the generation of the image processing unit 50 instructing the construction, Secured resources can be released with certainty, and due to the omission of the description of the code that instructs the release of resources that each module has secured, some resources are not released and the effective utilization rate decreases. Can be prevented. The process management unit 46 that performs the above-described erasure processing corresponds to the erasure processing unit according to claim 5 together with the resource management unit 46C that releases resources.

なお、上記では独立して並列に動作可能な個々のモジュール群を単位として、処理フロー管理部46Aを備えた処理管理部46を各々生成する態様を説明したが、本発明はこれに限定されるものではなく、処理管理部46自体は1個のみ設け、個々のモジュール群を単位として処理フロー管理部46Aを各々生成するようにしてもよい。これは、先に説明した処理管理部生成処理(図4)のステップ112において、処理管理部46は追加生成せずに処理フロー管理部46Aを追加生成することによって実現できる。例として図6には、図5(A)に示す画像処理部50に対し、個々のモジュール群を単位として処理フロー管理部46A及びエラー管理部46Bを各々生成した態様を示す。この態様においても、個々の処理フロー管理部46Aの管理テーブルのサイズを小さくすることができるので、管理テーブルの検索に要する時間を短縮することができる。   In the above description, the mode in which the process management unit 46 including the process flow management unit 46A is generated for each module group that can operate independently and in parallel has been described. However, the present invention is limited to this. Instead, only one process management unit 46 may be provided, and each process flow management unit 46A may be generated in units of individual module groups. This can be realized by additionally generating the processing flow management unit 46A without generating the additional processing management unit 46 in step 112 of the processing management unit generation processing (FIG. 4) described above. As an example, FIG. 6 shows a mode in which a processing flow management unit 46A and an error management unit 46B are generated for each module group for the image processing unit 50 shown in FIG. Also in this aspect, since the size of the management table of each processing flow management unit 46A can be reduced, the time required for searching the management table can be shortened.

また、上記では画像処理部50が分岐モジュールを含んで構成されている場合に、図7(B)に示すように、分岐モジュールの後段(次段)の複数のモジュールを各々先頭とする複数のモジュール群について、対応する処理管理部46(処理フロー管理部46A)を各々設ける態様を説明したが、本発明はこれに限定されるものではなく、例として図8に示すように、分岐モジュールの後段(次段)の複数のモジュールのうちの何れか1つのモジュールを先頭とする単一のモジュール群については、分岐モジュールを含むモジュール群と統合し、統合後のモジュール群に対応する処理管理部46(処理フロー管理部46A)を設けるようにしてもよい。   Further, in the above, when the image processing unit 50 is configured to include a branch module, as shown in FIG. 7B, a plurality of modules, each having a plurality of modules following the branch module (next stage) as the head, respectively. Although the mode in which the corresponding processing management unit 46 (processing flow management unit 46A) is provided for each module group has been described, the present invention is not limited to this, and as an example, as shown in FIG. A single module group starting from any one of a plurality of modules in the subsequent stage (next stage) is integrated with the module group including the branch module, and the process management unit corresponding to the module group after integration 46 (processing flow management unit 46A) may be provided.

また、上記では処理管理部46(処理フロー管理部46A)を、画像処理部50を構成するモジュール群と同数設ける態様を説明したが、本発明はこれに限定されるものではなく、複数の処理管理部(処理フロー管理部46A)のうちの1個以上の処理管理部(処理フロー管理部46A)については、複数のモジュール群を管理対象とするようにしてもよい。この場合、処理管理部46(処理フロー管理部46A)の数はモジュール群の数よりも少なくなるが、本発明はこのような態様も権利範囲に含むものである。   In the above description, the processing management unit 46 (processing flow management unit 46A) is provided in the same number as the module group constituting the image processing unit 50. However, the present invention is not limited to this, and a plurality of processings are performed. For one or more process management units (process flow management unit 46A) of the management units (process flow management unit 46A), a plurality of module groups may be managed. In this case, the number of processing management units 46 (processing flow management unit 46A) is smaller than the number of module groups, but the present invention includes such an aspect within the scope of rights.

更に、上記では画像処理部50を独立して並列に動作可能な個々の複数のモジュール群に分割する態様を説明したが、本発明はこれに限定されるものではなく、例えば個々のモジュール群は独立して動作可能であれば並列に動作可能でなくてもよいし、個々のモジュール群が独立して動作可能であるか否かと無関係に、個々のモジュール群を構成するモジュールの数が平均化されるように複数のモジュール群に分割したり、個々のモジュール群における負荷、或いは処理時間が平準化されるように複数のモジュール群に分割する等、複数のモジュール群への分割には任意の分割規則を適用可能である。   Further, in the above description, the mode in which the image processing unit 50 is divided into a plurality of individual module groups that can operate independently and in parallel has been described. However, the present invention is not limited to this, and for example, As long as they can operate independently, they do not have to be able to operate in parallel, and the number of modules constituting each module group is averaged regardless of whether each module group can operate independently. Divided into a plurality of module groups, or divided into a plurality of module groups so that the load in each module group or the processing time is leveled, etc. Dividing rules can be applied.

また、上記では処理管理部46(処理フロー管理部46A)の追加生成を画像処理部50の生成と並列に行う態様を説明したが、本発明はこれに限定されるものではなく、画像処理部50の生成が完了した後に、生成が完了した画像処理部50を複数のモジュール群に分割し、画像処理部50を複数のモジュール群に分割した結果に基づいて、処理管理部46(或いは処理フロー管理部46A)を複数の処理管理部46(或いは複数の処理フロー管理部46A)に分割するようにしてもよい。   Further, in the above description, the mode in which the additional generation of the processing management unit 46 (processing flow management unit 46A) is performed in parallel with the generation of the image processing unit 50 has been described, but the present invention is not limited to this, and the image processing unit After the generation of the image processing unit 50 is completed, the generated image processing unit 50 is divided into a plurality of module groups, and based on the result of dividing the image processing unit 50 into a plurality of module groups, the processing management unit 46 (or processing flow) The management unit 46A) may be divided into a plurality of process management units 46 (or a plurality of process flow management units 46A).

また、上記では本発明に係る画像処理プログラムに対応する画像処理プログラム群34が記憶部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 is stored (installed) in the storage unit 20 in advance. However, the image processing program according to the present invention is a CD-ROM. It is also possible to provide it in a form recorded on a recording medium such as a DVD-ROM.

本実施形態に係るコンピュータ(画像処理装置)の概略構成を示すブロック図である。1 is a block diagram showing a schematic configuration of a computer (image processing apparatus) according to an 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 a flowchart which shows the content of the process management part production | generation process performed by the process construction part. (A)は画像処理部の構成の一例、(B)は(A)に示す画像処理部に対して処理管理部生成処理によって生成される処理管理部の一例を各々示すブロック図である。(A) is a block diagram showing an example of the configuration of an image processing unit, and (B) is a block diagram showing an example of a process management unit generated by the process management unit generation process for the image processing unit shown in (A). 図5(A)に示す画像処理部に対して処理管理部生成処理によって生成される処理管理部の他の例を各々示すブロック図である。FIG. 6 is a block diagram illustrating another example of the process management unit generated by the process management unit generation process for the image processing unit illustrated in FIG. (A)は画像処理部の構成の一例、(B)は(A)に示す画像処理部に対して処理管理部生成処理によって生成される処理管理部の一例を各々示すブロック図である。(A) is a block diagram showing an example of the configuration of an image processing unit, and (B) is a block diagram showing an example of a process management unit generated by the process management unit generation process for the image processing unit shown in (A). 図7(A)に示す画像処理部に対して処理管理部生成処理によって生成される処理管理部の他の例を各々示すブロック図である。FIG. 8 is a block diagram illustrating another example of the process management unit generated by the process management unit generation process for the image processing unit illustrated in FIG.

符号の説明Explanation of symbols

10 コンピュータ
12 CPU
14 メモリ
34 画像処理プログラム群
40 バッファモジュール
42 処理構築部
46 処理管理部
46A 処理フロー管理部
46B エラー管理部
46C リソース管理部
50 画像処理部
10 Computer 12 CPU
14 memory 34 image processing program group 40 buffer module 42 processing construction unit 46 processing management unit 46A processing flow management unit 46B error management unit 46C resource management unit 50 image processing unit

Claims (6)

自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムを各々記憶する記憶手段と、
前記記憶手段に記憶されているプログラムにより、前記複数種の画像処理モジュールの中から選択した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 Construction means for constructing image processing units connected in a line form or a directed acyclic graph form;
Information on individual modules of the corresponding module group is stored in a table as management information in units of individual module groups when the image processing unit is divided into a plurality of module groups, and identification of the corresponding module groups Each time a predetermined request is input from any module of the corresponding module group, a process that is connected to the preceding stage or the subsequent stage of the module and satisfies the predetermined request is performed. An executable module is determined based on the management information, and the determined module is instructed to execute a process that satisfies the predetermined request, whereby the corresponding module group in the image processing unit performs image processing. Management unit generating means for generating each processing flow management unit to be executed;
An image processing apparatus.
前記管理部生成手段は、前記画像処理部を、互いに独立して動作可能な複数のモジュール群に分割したときのn個(n≧1)のモジュール群を単位として、前記処理フロー管理部を各々生成する請求項1記載の画像処理装置。   The management unit generating means sets each of the processing flow management units in units of n (n ≧ 1) module groups when the image processing unit is divided into a plurality of module groups operable independently of each other. The image processing apparatus according to claim 1 to be generated. 前記管理部生成手段は、前記画像処理部を、前記画像処理部を構成する各モジュールのうち、記憶媒体に記憶されている画像データを前記記憶媒体から読み込んで出力するデータ読込モジュール、画像データを生成して出力するデータ生成モジュール、及び、同一の画像データを複数のモジュールへ各々出力するデータ分岐モジュール又は当該データ分岐モジュールの後段に連結された特定モジュールの何れかを各々先頭とし、末尾が他のモジュール群と連結されていない複数のモジュール群に分割することで、前記画像処理部を、互いに独立して動作可能な複数のモジュール群に分割する請求項2記載の画像処理装置。   The management unit generating means includes a data reading module that reads the image data stored in a storage medium from the storage medium among the modules constituting the image processing unit, and outputs the image data. A data generation module that generates and outputs, and a data branch module that outputs the same image data to a plurality of modules, or a specific module that is connected to the subsequent stage of the data branch module, each of which starts and ends with another The image processing apparatus according to claim 2, wherein the image processing unit is divided into a plurality of module groups operable independently of each other by being divided into a plurality of module groups not connected to the module group. 前記管理部生成手段は、前記構築手段による前記画像処理部の構築に際し、構築対象の前記画像処理部を構成するモジュールとして、前記データ読込モジュール、前記データ生成モジュール、及び、前記データ分岐モジュール又は前記データ分岐モジュールの後段に連結された特定モジュールの何れか1つが前記構築手段によって生成される毎に、生成されたモジュールを先頭とするモジュール群に対応する前記処理フロー管理部を生成すると共に、前記生成されたモジュールを先頭とするモジュール群の末尾が他のモジュール群と連結された場合には、前記生成されたモジュールを先頭とするモジュール群に対応する前記処理フロー管理部と前記他のモジュール群に対応する前記処理フロー管理部を単一の前記処理フロー管理部へ統合する請求項3記載の画像処理装置。   The management unit generation unit, when the image processing unit is constructed by the construction unit, as a module constituting the image processing unit to be constructed, the data reading module, the data generation module, and the data branch module or the Each time any one of the specific modules connected to the subsequent stage of the data branch module is generated by the construction means, the processing flow management unit corresponding to the module group starting from the generated module is generated, and When the end of a module group starting from the generated module is connected to another module group, the processing flow management unit corresponding to the module group starting from the generated module and the other module group The processing flow management unit corresponding to the above is integrated into a single processing flow management unit Motomeko third image processing apparatus according. 任意の前記処理フロー管理部の消去が指示された場合に、消去が指示された前記処理フロー管理部に対応するモジュール群の各モジュールが確保していたリソースを解放して消去すると共に、消去が指示された前記処理フロー管理部を消去する消去処理を行う消去処理手段を更に備えた請求項1〜請求項4の何れか1項記載の画像処理装置。   When erasure of any of the processing flow management units is instructed, the resources reserved by the modules of the module group corresponding to the processing flow management unit instructed to be erased are released and erased. The image processing apparatus according to claim 1, further comprising an erasure processing unit that performs an erasure process for erasing the instructed processing flow management unit. 自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムを各々記憶する記憶手段を備えたコンピュータを、
前記記憶手段に記憶されているプログラムにより、前記複数種の画像処理モジュールの中から選択した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 Construction means for constructing image processing units connected in line form or directed acyclic graph form,
And the information of each module of the corresponding module group is stored in the table as management information in units of individual module groups when the image processing unit is divided into a plurality of module groups, Each specific module is instructed to execute the process, and each time a predetermined request is input from any module of the corresponding module group, it is connected to the preceding or subsequent stage of the module and satisfies the predetermined request. A module capable of executing processing is determined based on the management information, and the determined module group is instructed to execute processing that satisfies the predetermined request. An image processing program for functioning as a management unit generation unit that generates a processing flow management unit for executing processing Mu.
JP2008302445A 2008-11-27 2008-11-27 Image processing apparatus and program Expired - Fee Related JP5047139B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008302445A JP5047139B2 (en) 2008-11-27 2008-11-27 Image processing apparatus and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008302445A JP5047139B2 (en) 2008-11-27 2008-11-27 Image processing apparatus and program

Publications (2)

Publication Number Publication Date
JP2010128767A true JP2010128767A (en) 2010-06-10
JP5047139B2 JP5047139B2 (en) 2012-10-10

Family

ID=42329120

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008302445A Expired - Fee Related JP5047139B2 (en) 2008-11-27 2008-11-27 Image processing apparatus and program

Country Status (1)

Country Link
JP (1) JP5047139B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112445546A (en) * 2019-08-31 2021-03-05 比亚迪股份有限公司 Electric vehicle, process management method and device thereof, storage medium and electronic equipment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003281518A (en) * 2002-03-20 2003-10-03 Fuji Xerox Co Ltd Image processor and image processing method
JP2005018610A (en) * 2003-06-27 2005-01-20 Toshiba Corp Scheduling method and information processing system
JP2006048535A (en) * 2004-08-06 2006-02-16 Canon Inc Image processor and its control method
JP2006338500A (en) * 2005-06-03 2006-12-14 Fuji Xerox Co Ltd Image processor, image processing method, and program
JP2007287085A (en) * 2006-04-20 2007-11-01 Fuji Xerox Co Ltd Program and device for processing images
JP2008250980A (en) * 2007-03-07 2008-10-16 Ricoh Co Ltd Image processor, image processing method and image processing program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003281518A (en) * 2002-03-20 2003-10-03 Fuji Xerox Co Ltd Image processor and image processing method
JP2005018610A (en) * 2003-06-27 2005-01-20 Toshiba Corp Scheduling method and information processing system
JP2006048535A (en) * 2004-08-06 2006-02-16 Canon Inc Image processor and its control method
JP2006338500A (en) * 2005-06-03 2006-12-14 Fuji Xerox Co Ltd Image processor, image processing method, and program
JP2007287085A (en) * 2006-04-20 2007-11-01 Fuji Xerox Co Ltd Program and device for processing images
JP2008250980A (en) * 2007-03-07 2008-10-16 Ricoh Co Ltd Image processor, image processing method and image processing program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112445546A (en) * 2019-08-31 2021-03-05 比亚迪股份有限公司 Electric vehicle, process management method and device thereof, storage medium and electronic equipment

Also Published As

Publication number Publication date
JP5047139B2 (en) 2012-10-10

Similar Documents

Publication Publication Date Title
JP4979287B2 (en) Image processing apparatus and program
JP5046801B2 (en) Image processing apparatus and program
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
JP5703729B2 (en) Data processing apparatus and program
US7602391B2 (en) Image processing device, method, and storage medium which stores a program
JP4795138B2 (en) Image processing apparatus and program
US20060274971A1 (en) Image processing device, method, and storage medium which stores a program
US20070248288A1 (en) Image processing device, and recording medium
US7595803B2 (en) Image processing device, method, and storage medium which stores a program
US20080129740A1 (en) Image processing apparatus, storage medium that stores image processing program, and image processing method
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
US20070247466A1 (en) Image processing apparatus and program
JP2007323393A (en) Image processor and program
JP4964219B2 (en) Image processing apparatus, method, and program
JP5047139B2 (en) Image processing apparatus and program
JP4762865B2 (en) Image processing apparatus and image processing program
JP2008140007A (en) Image processor and program
JP4869890B2 (en) Image processing apparatus and program
JP4818893B2 (en) Image processing apparatus and program
JP2008140170A (en) Image processor and program
JP5440129B2 (en) Image processing apparatus, image forming apparatus, and image processing program
JP4920725B2 (en) Image processing apparatus and program
JP5036588B2 (en) Image processing apparatus and image processing program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100915

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120508

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: 20120626

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: 20120717

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

Free format text: PAYMENT UNTIL: 20150727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5047139

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees