(57)【要約】【課題】画像処理プログラムの作成に際して設定する画像バッファを適切に確保する仕組みを提供すること。【解決手段】画像バッファと画像処理モジュールをあらかじめ記憶しておき、画像処理モジュールを描画領域に配置することにより、処理フローを生成する。描画領域に画像処理モジュールの追加指示を受け付け、あらかじめ記憶している画像バッファのうち、処理フローで用いられていない画像バッファを特定する。特定された画像バッファを、追加指示を受け付けた画像処理モジュールに対して割り当てる。【選択図】図４
2017151530.tif 000002
【特許請求の範囲】
【請求項１】
記憶手段に設けられた画像データを保存する領域である画像バッファを管理する管理手段と、
画像処理モジュールを記憶するモジュール記憶手段と、
前記モジュール記憶手段に記憶された画像処理モジュールを描画領域に配置し、当該描画領域上の当該画像処理モジュールの順番に応じて、画像データに適用する画像処理プログラムを生成する生成手段と、を有する情報処理装置であって、
前記描画領域に対して画像処理モジュールの追加指示を受け付ける受付手段と、
前記受付手段で追加指示を受け付ける前に前記描画領域に配置されている画像処理モジュールに対応付けられていない前記管理手段で管理される画像バッファを特定する特定手段と、
前記特定手段で特定された前記画像バッファを、前記受付手段で受け付けた画像処理モジュールに対して割り当てる割り当て手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記管理手段は、前記特定手段で前記画像処理モジュールに対応付けられていない画像バッファを特定することができなかった場合に、前記管理手段は新たに画像バッファを追加するよう制御し、
前記割り当て手段は、前記管理手段で新たに追加された前記画像バッファを前記受付手段で追加指示を受け付けた画像処理モジュールに対して割り当てることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特定手段で、前記管理手段で管理される画像バッファのうち前記画像処理モジュールに対応付けられていない画像バッファを特定することができなかった場合に、前記画像処理モジュールに割り当てる画像バッファが不足している旨を警告表示するように制御する表示制御手段
を更に備えることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記受付手段は、前記画像処理モジュールが前記描画領域に対してドラッグ＆ドロップされることにより、追加指示を受け付けることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
記憶手段に設けられた画像データを保存する領域である画像バッファを管理する管理手段と、
画像処理モジュールを記憶するモジュール記憶手段と、
前記モジュール記憶手段に記憶された画像処理モジュールを描画領域に配置し、当該描画領域上の当該画像処理モジュールの順番に応じて、画像データに適用する画像処理プログラムを生成する生成手段と、を有する情報処理装置であって、
前記描画領域に対して画像処理モジュールの追加指示を受け付ける受付手段と
前記受付手段で追加指示を受け付ける前に前記描画領域に配置されている画像処理モジュールに対応付けられていない前記管理手段で管理される画像バッファを特定する特定手段と、
前記管理手段で管理される画像バッファを一覧表示させるとともに、当該一覧表示で、前記特定手段で特定された前記画像バッファが識別可能に一覧表示するよう制御する表示制御手段と
を備えることを特徴とする情報処理装置。
【請求項６】
前記表示制御手段で一覧表示された画像バッファの選択を受け付けることで、当該画像バッファを前記受付手段で追加指示を受け付けた画像処理モジュールに割り当てる割り当て手段
を備えることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
記憶手段に設けられた画像データを保存する領域である画像バッファを管理する管理手段と、
画像処理モジュールを記憶するモジュール記憶手段と、
前記モジュール記憶手段に記憶された画像処理モジュールを描画領域に配置し、当該描画領域上の当該画像処理モジュールの順番に応じて、画像データに適用する画像処理プログラムを生成する生成手段と、を有する情報処理装置の制御方法であって、
前記情報処理装置が、
前記描画領域に対して画像処理モジュールの追加指示を受け付ける受付ステップと、
前記受付ステップで追加指示を受け付ける前に前記描画領域に配置されている画像処理モジュールに対応付けられていない前記管理手段で管理される画像バッファを特定する特定ステップと、
前記特定ステップで特定された前記画像バッファを、前記受付ステップで受け付けた画像処理モジュールに対して割り当てる割り当てステップと
を備えることを特徴とする情報処理装置の制御方法。
【請求項８】
記憶手段に設けられた画像データを保存する領域である画像バッファを管理する管理手段と、
画像処理モジュールを記憶するモジュール記憶手段と、
前記モジュール記憶手段に記憶された画像処理モジュールを描画領域に配置し、当該描画領域上の当該画像処理モジュールの順番に応じて、画像データに適用する画像処理プログラムを生成する生成手段と、を有する情報処理装置で実行可能なプログラムであって、
前記情報処理装置を、
前記描画領域に対して画像処理モジュールの追加指示を受け付ける受付手段と、
前記受付手段で追加指示を受け付ける前に前記描画領域に配置されている画像処理モジュールに対応付けられていない前記管理手段で管理される画像バッファを特定する特定手段と、
前記特定手段で特定された前記画像バッファを、前記受付手段で受け付けた画像処理モジュールに対して割り当てる割り当て手段
として機能させることを特徴とするプログラム。
【請求項９】
記憶手段に設けられた画像データを保存する領域である画像バッファを管理する管理手段と、
画像処理モジュールを記憶するモジュール記憶手段と、
前記モジュール記憶手段に記憶された画像処理モジュールを描画領域に配置し、当該描画領域上の当該画像処理モジュールの順番に応じて、画像データに適用する画像処理プログラムを生成する生成手段と、を有する情報処理装置の制御方法であって、
前記情報処理装置が、
前記描画領域に対して画像処理モジュールの追加指示を受け付ける受付ステップと、
前記受付ステップで追加指示を受け付ける前に前記描画領域に配置されている画像処理モジュールに対応付けられていない前記管理手段で管理される画像バッファを特定する特定ステップと、
前記特定ステップで特定された前記画像バッファを、前記描画領域上の当該画像処理モジュールで用いられている画像バッファとは識別可能に表示制御する表示制御ステップと
を備えることを特徴とする情報処理装置の制御方法。
【請求項１０】
記憶手段に設けられた画像データを保存する領域である画像バッファを管理する管理手段と、
画像処理モジュールを記憶するモジュール記憶手段と、
前記モジュール記憶手段に記憶された画像処理モジュールを描画領域に配置し、当該描画領域上の当該画像処理モジュールの順番に応じて、画像データに適用する画像処理プログラムを生成する生成手段と、を有する情報処理装置で実行可能なプログラムであって、
前記情報処理装置を、
前記描画領域に対して画像処理モジュールの追加指示を受け付ける受付手段と、
前記受付手段で追加指示を受け付ける前に前記描画領域に配置されている画像処理モジュールに対応付けられていない前記管理手段で管理される画像バッファを特定する特定手段と、
前記特定手段で特定された前記画像バッファを、前記描画領域上の当該画像処理モジュールで用いられている画像バッファとは識別可能に表示制御する表示制御手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
チップマウンターにおける基板や部品の位置決めや、出来上がった製品の検査では、カメラで撮影した画像データに画像処理を行い、当該画像処理が行われた画像データを用いて位置決めや検査を行うことが一般的である。
【０００３】
このような画像処理を行うことが出来る画像処理装置には、予め設定された汎用性のある画像処理だけが行える汎用タイプの画像処理装置以外に、ユーザのニーズに合致する画像処理をユーザ自身が構築して用いることができる専用タイプの画像処理装置が存在している。
【０００４】
このような汎用タイプの画像処理装置は、画像データに適用する画像処理内容を新規に構築する必要がないため、実際の製造工程等への導入に際してユーザの労力はかからないが、ユーザのニーズを完全に満たせない場合もある。
【０００５】
一方、専用タイプの画像処理装置は、ユーザのニーズを完全に満たす画像処理の内容を構築することが可能である。しかしながら、専用タイプの場合には、ユーザが画像処理の内容を都度構築しなければならず、多大な開発労力と開発期間、更には多大なコストがかかるものであった。
【０００６】
そこで、ユーザのニーズを満たすことができつつも画像処理内容の構築を効率化できる技術として特許文献１に示すような技術が提案されている。具体的に特許文献１には、予め設定された複数の画像処理モジュールの実行する順番を選択することで、検査対象の画像に対しユーザ所望の画像処理が行えることが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−２９６１１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、特許文献１に開示されるような画像処理モジュールの順番を簡便に選択する手段としては、画像処理モジュールをＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）上でフローチャート形式に配置することで、画像処理のプログラム（以下、画像処理プログラム）を生成することができるアプリケーションが知られている。このようなアプリケーションでは、画像処理モジュールのアイコンを描画領域にドラッグ＆ドロップして配置してフローチャート形式の処理フローを生成すると、アイコンが配置された順番で画像処理モジュールに対応するソースコードが組み合され、検査対象の画像データを画像処理するプログラムが生成される。
【０００９】
また、このようなアプリケーションでは、各画像処理モジュールが適用される画像データや、その出力結果の画像データを一時的に記憶する場所は、画像バッファとして管理することが一般的である。このような画像バッファは、あらかじめメモリの領域を割り当て複数用意しておき極力用意された範囲内で納めることで、検査対象の画像を画像処理する際に必要となるメモリの容量を事前に把握することができる。
【００１０】
しかしながら、このような仕組みでは、新しく画像処理モジュールを描画領域に追加すると、処理フローで既に使用している画像バッファに影響を及ぼさないように注意しながらあらかじめ用意された画像バッファの中から追加された画像処理モジュールで使用する画像バッファを指定する必要があり、作業が煩雑となるという課題があった。
【００１１】
そこで本発明は、処理フローに新たに追加された画像処理モジュールで使用する画像バッファを簡便に割り当てることが可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記の目的を達成するために本発明の情報処理装置は、記憶手段に設けられた画像データを保存する領域である画像バッファを管理する管理手段と、画像処理モジュールを記憶するモジュール記憶手段と、前記モジュール記憶手段に記憶された画像処理モジュールを描画領域に配置し、当該描画領域上の当該画像処理モジュールの順番に応じて、画像データに適用する画像処理プログラムを生成する生成手段と、前記描画領域に対して画像処理モジュールの追加指示を受け付ける受付手段と、を有する情報処理装置であって、前記受付手段で追加指示を受け付ける前に前記描画領域に配置されている画像処理モジュールに対応付けられていない前記管理手段で管理される画像バッファを特定する特定手段と、前記特定手段で特定された前記画像バッファを、前記受付手段で受け付けた画像処理モジュールに対して割り当てる割り当て手段とを備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、処理フローに新たに追加された画像処理モジュールで使用する画像バッファを簡便に割り当てることが可能な仕組みを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】情報処理装置１００のハードウェア構成の一例を示す図である。
【図２】情報処理装置１００の機能構成の一例を示す図である。
【図３】本実施形態の一連の処理の流れを説明するフローチャートである。
【図４】処理フロー構築画面４００の画面構成の一例を示す図である。
【図５】モジュールテーブル５００のテーブル構成の一例を示す図である。
【図６】処理フローテーブル６００のテーブル構成の一例を示す図である。
【図７】スイッチテーブル７００のテーブル構成の一例を示す図である。
【図８】画像処理１テーブル８００のテーブル構成の一例を示す図である。
【図９】画像バッファ設定画面９００の画面例を示す図である。
【図１０】画像バッファテーブル１０００のテーブル構成の一例を示す図である。
【図１１】図３のモジュール追加処理の詳細な処理の流れを説明するフローチャートである。
【図１２】利用有無リスト作成処理の一連の処理の流れを示すフローチャートである。
【図１３】使用有無リスト１３００のテーブル構成の一例を示す図である。
【図１４】確認画面１４００の画面構成の一例を示す図である。
【図１５】選択プルダウン１５００の画面構成の一例を示す図である。
【図１６】画像処理１モジュール追加後の処理フローの画面構成の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００１６】
図１は、情報処理装置１００のハードウェア構成の一例を示す図である。本発明の情報処理装置１００は、画像処理を実行可能なプログラム（以下、画像処理プログラム）を生成可能な装置である。情報処理装置１００には画像処理プログラムを構築するためのアプリケーション（以下、画像処理プログラム構築アプリケーション）がインストールされており、当該アプリケーションを用いて画像処理プログラムを生成する。
【００１７】
画像処理プログラム構築アプリケーションでは、あらかじめ用意されたモジュールを描画領域上に載置し、フローチャート形式で組み合わせることにより、画像処理プログラムを構築する。各モジュールには、画像処理を実行可能なモジュールや、ループや分岐を行うモジュール等が存在する。これらがソースコード形式で用意されているため、ユーザは所望の画像処理プログラムとなるよう、これらのモジュールを組み合わせてフローチャート（以下、処理フロー）にし、当該フローチャートの処理順でモジュールのソースコードを組み合わせることで、画像処理プログラムが生成できる。
【００１８】
ＣＰＵ１０１は、システムバス１０４に接続される各デバイスやコントローラを統括的に制御する。
【００１９】
また、ＲＯＭ１０２あるいは外部メモリ１１１（記憶手段）には、ＣＰＵ１０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、情報処理装置１００の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ１０３は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。
【００２０】
ＣＰＵ１０１は、処理の実行に際して必要なプログラム等をＲＡＭ１０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２１】
また、入力コントローラ（入力Ｃ）１０５は、キーボードや不図示のマウス等のポインティングデバイス等の入力デバイス１０９からの入力を制御する。
【００２２】
ビデオコントローラ（ＶＣ）１０６は、ディスプレイ１１０等の表示器への表示を制御する。表示器の種類はＣＲＴや、液晶ディスプレイを想定するが、これに限らない。
【００２３】
メモリコントローラ（ＭＣ）１０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ１１１へのアクセスを制御する。
【００２４】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）１０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。
【００２５】
尚、ＣＰＵ１０１は、例えばＲＡＭ１０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ１１０上での表示を可能としている。また、ＣＰＵ１０１は、ディスプレイ１１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００２６】
本発明の情報処理装置１００が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ１１１（モジュール記憶手段に相当する）に記録されており、必要に応じてＲＡＭ１０３にロードされることによりＣＰＵ１０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ１１１に格納されている。
【００２７】
次に、情報処理装置１００の機能構成について、図２を用いて説明する。尚、図２の機能構成は一例であり、用途や目的に応じて様々な構成例がある。
【００２８】
情報処理装置１００は、テーブル記憶部２００、処理フロー作成部２１０、ソースコード変換部２２０、コンパイル部２３０、処理フロー実行部２４０、処理フロー保存部２５０、画像バッファ管理部２６０（管理手段に相当する）、テンプレートモジュール保存部２７０、使用画像バッファ特定部２８０を備える。
【００２９】
テーブル記憶部２００は、本実施形態で用いる各種テーブルを記憶する機能部である。テーブル記憶部２００には、モジュールテーブル５００、処理フローテーブル６００、スイッチテーブル７００、テンプレートモジュールテーブル８００、画像バッファテーブル１０００が記憶されている。
【００３０】
ここで、本実施形態においては、図２のテーブル記憶部２００が、例えば図１に示す外部メモリ１１１に構成される（一旦、ＲＡＭ１０３に構成された後に外部メモリ１１１に構成される場合も含む）。また、図２の処理フロー作成部２１０、ソースコード変換部２２０、コンパイル部２３０、処理フロー実行部２４０、処理フロー保存部２５０、画像バッファ管理部２６０、テンプレートモジュール保存部２７０、使用画像バッファ特定部２８０が、例えば図１に示すＣＰＵ１０１と、ＲＯＭ１０２或いは外部メモリ１１１に記憶されているプログラムと、から構成される。
【００３１】
モジュールテーブル５００は、画像処理ロジック構築プログラムで用いるモジュールに関する情報を格納するテーブルである。モジュールテーブル５００のテーブル構成の一例を図５に示す。
【００３２】
モジュールテーブル５００は、情報処理装置１００の外部メモリ１１１等に記憶されており、モジュールＩＤ５０１、モジュール名５０２、ソースコード５０３、入力パラメータ５０４、出力パラメータ５０５、参照先テーブル５０６から構成される。
【００３３】
モジュールＩＤ５０１は、モジュールテーブル５００のレコードごとに割り振られる識別情報である。モジュール名５０２は、モジュールの名称を示す。ソースコード５０３は、当該モジュールのソースコードが格納されている。ソースコードの保存先を格納しておいてもよい。入力パラメータ５０４と出力パラメータ５０５とは、当該モジュールが当該モジュールの処理を実行する際に設定可能な入力パラメータと出力パラメータを示す。例えば、モジュールＩＤ５０１が「Ｕ００００７」の二値化モジュールは、入力パラメータとして「入力画像バッファ」と「閾値」とが設定可能であり、出力パラメータとして「出力画像バッファ」が設定可能であることがわかる。画像バッファとは、外部メモリ１１１に記憶される画像データの一時保存するための領域である。入力画像バッファとは、モジュールが処理を実行する際に用いる画像データの入力元である画像バッファを示す。出力画像バッファとは、モジュールが処理を実行した結果の画像データの出力先である画像バッファを示す。参照先テーブル５０６は、参照先のテーブルの識別番号（テーブルのＩＤ）を格納している。参照先のテーブルに格納される識別番号ごとにテンプレートモジュールテーブル８００が存在している。参照先テーブル５０６に識別番号の存在するモジュールをテンプレートモジュールといい、テンプレートモジュールは、例えば図７や図８に示すテーブルに規定されるように、１つのモジュールの中に、複数のモジュールを格納するものである。この複数のモジュールは、処理フローのように一定の順列をなしていて、一連の処理により画像処理を行うまとまりを示すものである。
【００３４】
本実施形態では、テンプレートモジュールの例として画像処理１モジュールを例として説明する。テンプレートモジュールテーブルは、例えば図８に示す画像処理１のテンプレートである、画像処理１テーブル８００Ａである。画像処理１テーブル８００Ａは、ＩＮＤＥＸ８０１、モジュールＩＤ８０２、モジュール名８０３、入力パラメータ８０４、出力パラメータ８０５から構成される。
【００３５】
ＩＮＤＥＸ８０１は処理フローの上流から下流に向けて昇順となるよう割り振られた識別情報である。すなわち、処理フローの最も上流に配置されたモジュールのＩＮＤＥＸ８０１が「１」となる。その次の位置に配置されたモジュールのＩＮＤＥＸ８０１が「２」となる。モジュールＩＤ８０２はモジュールごとに割り振られる識別情報である。モジュール名８０３はモジュールの名称を示す情報である。入力パラメータ８０４、出力パラメータ８０５には当該モジュールに設定された入力パラメータと出力パラメータとが格納される。図７のスイッチテーブル７００も同様にテンプレートモジュールテーブルであり構成は同様であるため説明は省略する。
【００３６】
次に、処理フローテーブル６００Ａの説明を行う。処理フローテーブル６００Ａは、処理フローを構成しているモジュールに関する情報を格納するテーブルである。処理フローテーブル６００Ａのテーブル構成の一例を図６に示す。なお、処理フローテーブル６００Ｂは処理フローテーブル６００Ａに画像処理１モジュールを追加したものであり、テーブルの構成は処理フローテーブル６００Ａと変わらないため、説明は省略する。
【００３７】
処理フローテーブル６００Ａは、情報処理装置１００の外部メモリ１１１等に記憶されており、ＩＮＤＥＸ６０１、モジュールＩＤ６０２、モジュール名６０３、入力パラメータ６０４、出力パラメータ６０５、参照先テーブル６０６から構成される。
【００３８】
ＩＮＤＥＸ６０１は、処理フローの上流から下流に向けて昇順となるよう割り振られた識別情報である。すなわち、処理フローの最も上流に配置されたモジュールのＩＮＤＥＸ６０１が「１」となる。その次の位置に配置されたモジュールのＩＮＤＥＸ６０１が「２」となる。モジュールＩＤ６０２は、処理フローに配置されたモジュールに一意に割り振られる識別情報である。モジュール名６０３は、当該モジュールのモジュール名５０２に対応するモジュールの名称が格納される。入力パラメータ６０４と出力パラメータ６０５とは、当該モジュールに設定された入力パラメータと出力パラメータとが格納される。例えば、図６の処理フローテーブル６００のＩＮＤＥＸ６０１が「１」であるカメラモジュールは、出力パラメータに、出力画像バッファとして「画像バッファ１」が設定されている。参照先テーブル６０６は、モジュールがテンプレートモジュール、ループや分岐、テンプレートのモジュールである場合に参照すべき他のテーブルを示す。例えば、図６の処理フローテーブル６００ＡのＩＮＤＥＸ６０１が「４」であるスイッチモジュールの参照先テーブル６０６には、参照先として「ＴＤ００４」が設定されている。つまり、スイッチモジュールの実行時には、この「ＴＤ００４」のテーブルを参照することを示している。参照先テーブル６０６が示す各種テーブルには、処理フローテーブル６００と同様に複数のモジュールに関する情報が格納されており、テンプレートモジュールの実行時には参照先テーブル６０６に示すテーブルに格納されるモジュールが実行される。
【００３９】
参照先テーブル６０６が示すテーブルとして、例えば、スイッチテーブル７００がある。
【００４０】
スイッチテーブル７００（図７参照）は、スイッチモジュールの参照先として用いられるテーブルであり、スイッチ条件テーブル７１０、スイッチＥＬＳＥテーブル７２０、スイッチＣＡＳＥテーブル７３０、スイッチＣＡＳＥテーブル７４０から構成される。スイッチ条件テーブル７１０は、多方向に分岐するための条件が格納されており、スイッチＥＬＳＥテーブル７２０は、どの条件にも当てはまらなかった場合に参照され、スイッチＣＡＳＥテーブル７３０、スイッチＣＡＳＥテーブル７４０はスイッチ条件テーブル７１０に格納された条件に応じて参照する。
【００４１】
スイッチ条件テーブル７１０は、情報処理装置１００の外部メモリ１１１等に記憶され、ＩＮＤＥＸ７１１、ＣＡＳＥ条件７１２、参照先テーブル７１３から構成される。ＩＮＤＥＸ７１１は、条件ごとに割り振られる識別情報である。ＣＡＳＥ条件７１２は、分岐のための条件を示す。参照先テーブル７１３は、当該条件の判定結果が真（ＴＲＵＥ）であった場合に参照するスイッチＣＡＳＥテーブルを示す。図７に示すスイッチ条件テーブル７１０の例では、分岐条件が２つあり、その２つの条件のいずれかで真と判定されると、真と判定された条件に設定されたスイッチＣＡＳＥテーブル７３０またはスイッチＣＡＳＥテーブル７４０を参照することになる。一方、いずれの条件が一致しない場合には、スイッチＥＬＳＥテーブル７２０を参照することになる。
【００４２】
スイッチＥＬＳＥテーブル７２０は、情報処理装置１００の外部メモリ１１１等に記憶され、ＩＮＤＥＸ７２１、モジュールＩＤ７２２、モジュール名７２３、入力パラメータ７２４、出力パラメータ７２５、参照先テーブル７２６から構成される。また、スイッチＣＡＳＥテーブル７３０は、情報処理装置１００の外部メモリ１１１に記憶され、ＩＮＤＥＸ７３１、モジュールＩＤ７３２、モジュール名７３３、入力パラメータ７３４、出力パラメータ７３５、参照先テーブル７３６から構成される。また、スイッチＣＡＳＥテーブル７４０は、情報処理装置１００の外部メモリ１１１に記憶され、ＩＮＤＥＸ７４１、モジュールＩＤ７４２、モジュール名７４３、入力パラメータ７４４、出力パラメータ７４５、参照先テーブル７４６から構成される。スイッチＥＬＳＥテーブル７２０を構成する各項目と、スイッチＣＡＳＥテーブル７３０を構成する各項目と、スイッチＣＡＳＥテーブル７４０を構成する各項目とは、前述した処理フローテーブル６００を構成する各項目と同様である。
【００４３】
画像バッファテーブル１０００（図１０参照）は、処理フローを構成する各モジュールが使用する画像バッファに関する情報を示す。画像バッファテーブル１０００は、情報処理装置１００の外部メモリ１１１等に記憶され、ＩＮＤＥＸ１００１、画像バッファＩＤ１００２、名称１００３、画像情報１００４から構成される。ＩＮＤＥＸ１００１は、作成された画像バッファごとに割り振られる識別情報である。また画像バッファＩＤ１００２は、作成された画像バッファのＩＤを示す。名称１００３は、画像バッファの名称であり、ユーザが自由につけることの可能な名称である。画像情報１００４は、画像バッファの大きさやビット数を示すものであり、ＳｉｚｅＸ（横のピクセル数），ＳｉｚｅＹ（縦のピクセル数），Ｂｉｔ（１ピクセルあたりのビット数）を格納している。これらの情報により、画像バッファのサイズ・容量が規定される。
【００４４】
図２の説明に戻る。処理フロー作成部２１０は、ユーザからの指示に応じて、モジュールテーブル５００に格納された各モジュールを処理フロー描画領域４０１に追加しフローチャート形式に処理フローを構築する機能部である。処理フロー作成部２１０は、モジュールを処理フローに追加するのみならず、処理フロー描画領域４０１に配置されたモジュールを削除したり、位置を移動させたり、処理フローに配置されたモジュールのパラメータ変更や、利用する画像バッファの選択・変更等を行うことができる。
【００４５】
ソースコード変換部２２０は、処理フロー作成部２１０で作成された処理フローが示す画像処理ロジックを、ソースコードに変換する機能部である。処理フロー描画領域４０１に配置された処理フローを構成する各モジュールのソースコード５０３を取得し、処理フローが示す処理順となるよう取得したソースコードを組み合わせて、処理フロー描画領域４０１に配置されたモジュールをソースコードに変換する。
【００４６】
コンパイル部２３０は、ソースコード変換部２２０で変換されたソースコードをコンパイルし、オブジェクトコードを生成する機能部である。
【００４７】
処理フロー実行部２４０は、コンパイル部２３０でコンパイルされたオブジェクトコードを実行する機能部である。
【００４８】
処理フロー保存部２５０は、処理フロー作成部２１０で作成された処理フローを保存する機能部である。
【００４９】
画像バッファ管理部２６０は、処理フロー作成部２１０で作成された処理フローを構成するモジュールが使用する画像バッファを管理する機能部である。画像バッファ管理部２６０は、外部メモリ１１１上の領域として画像バッファを管理しており、ユーザによって設定されてもよいし、既定としてあらかじめ設定されていてもよい。
【００５０】
テンプレートモジュール保存部２７０は、処理フロー作成部２１０で作成された処理フローをテンプレートモジュールとして保存する機能部である。
【００５１】
使用画像バッファ特定部２８０は、処理フローに追加しようとするテンプレートモジュールを実行させるために必要とする画像バッファを特定する機能部である。
【００５２】
次に、本発明の実施形態における一連の処理の流れについて、図３を用いて説明する。
【００５３】
まず、ステップＳ３０１では、情報処理装置１００のＣＰＵ１０１は、ユーザからの指示に応じて画像処理ロジック構築アプリケーションを起動し、処理フロー構築画面４００をディスプレイ１１０に表示する。
【００５４】
処理フロー構築画面４００の画面構成の一例を図４に示す。処理フロー構築画面４００は、処理フロー描画領域４０１、モジュール一覧領域４０２、パラメータ一覧領域４０３、通知領域４０４、ユーザ保存テンプレート一覧領域４０６を備える。ユーザは、モジュール一覧領域４０２に表示された、モジュールテーブル５００に記憶されるモジュールの一覧から、所望の画像処理ロジックを構築するために必要なモジュールを選択し、ドラッグアンドドロップで処理フロー描画領域４０１に追加していく。処理フロー描画領域４０１に表示された処理フローを構成するモジュールのうち、パラメータを閲覧・設定したいモジュールを選択することで、選択されたモジュールのパラメータがパラメータ一覧領域４０３に表示される。また、何かユーザに対して通知すべきことがあれば、通知領域４０４で通知がなされる。ユーザ保存テンプレート一覧領域４０６は、後述するステップＳ３１２で保存されたテンプレートモジュールを表示する領域である。ユーザは、モジュール一覧領域４０２からモジュールを選択し、または、ユーザ保存テンプレート一覧領域４０６からテンプレートモジュールを選択し、ドラッグアンドドロップで処理フロー描画領域４０１に追加していくことにより、処理フローを作成していく。
【００５５】
ステップＳ３０２では、情報処理装置１００のＣＰＵ１０１は、ユーザから入力デバイス１０９を通じて入力を受け付けたか否かを判定する。入力を受け付けたと判定した場合には、ステップＳ３０３に処理を進める。入力を受け付けたと判定できなかった、すなわち入力を受け付けていない場合には、ユーザからの入力があるまで待機する。
【００５６】
ステップＳ３０３では、情報処理装置１００のＣＰＵ１０１は、ユーザからの入力が画像バッファの設定を行う指示であるか否かを判定する。より具体的には、処理フロー構築画面４００のプロジェクトメニューに備える画像バッファの設定項目（不図示）が選択されたか否かで判定する。ユーザからの入力が画像バッファの設定を行う指示であると判定した場合には、ステップＳ３０４に処理を進める。ユーザからの入力が画像バッファの設定を行う指示でないと判定した場合には、ステップＳ３０５に処理を進める。
【００５７】
ステップＳ３０４では、情報処理装置１００のＣＰＵ１０１は、画像バッファ設定画面９００を表示し、ユーザからの指示に応じて画像バッファの設定を行う。図９に画像バッファ設定画面９００の画面構成の一例を示す。画像バッファ設定画面９００では、処理フロー描画領域４０１に描画された処理フローで利用するために外部メモリ１１１上に確保される画像バッファの追加や削除を行うことが可能である。追加ボタン９０１の押下を受け付けると、新しく画像バッファの記憶領域を確保するための入力項目が追加される。また、削除ボタン９０２が押下されると、最下行の画像バッファの入力項目が削除される。画像バッファの追加や削除を行い、ＯＫボタンの押下を受け付けることで、前述した画像バッファテーブル１０００が更新される。新しくレコードが作成されると画像バッファが追加されメモリ領域に確保される。画像バッファのレコードが削除されると、対象の画像バッファが削除される。このように処理フローに対して事前に画像バッファを確保しておくことで、無駄な画像バッファをＲＡＭ１０３や外部メモリ１１１に確保しないという効果がある。
【００５８】
画像バッファ設定画面９００には、名称入力欄９０３、横幅９０４、高さ９０５、ビット数９０６が設けられている。名称入力欄９０３は名称１００３の入力を受け付けることの可能な入力欄である。横幅９０４、高さ９０５、ビット数９０６は、ユーザから画像バッファに関する情報の指定を受け付けることができる入力欄であり、横幅９０４が画像情報１００４のＳｉｚｅＸ、高さ９０５がＳｉｚｅＹ、ビット数９０６がＢｉｔに対応するものである。このような設定画面を介して、ユーザは画像バッファテーブル１０００を編集することが可能であり、あらかじめ必要と考えられる数の画像バッファを確保しておくことができる。なお、ユーザが設定せずとも規定の画像バッファがあらかじめ確保されるような構成としても構わない。本処理が終わったら（閉じるボタン等が押下されたら）、ステップＳ３０２に処理を戻す。
【００５９】
ステップＳ３０５では、情報処理装置１００のＣＰＵ１０１は、ユーザからの入力が処理フローにモジュールの追加を行う指示であるか否かを判定する（受付手段に相当する）。より具体的には、モジュール一覧領域４０２からいずれかのモジュール、または、ユーザ保存テンプレート一覧からテンプレートモジュールが、処理フロー描画領域４０１の処理フローにドラッグアンドドロップされたか否かに応じて判定する。ユーザからの入力が処理フローにモジュールの追加を行う指示（処理フロー描画領域４０１の処理フローへのモジュールのドラッグアンドドロップ）であったと判定した場合には、ステップＳ３０６に処理を進める。ユーザからの入力が処理フローにモジュールの追加を行う指示でないと判定した場合には、ステップＳ３０７に処理を進める。
【００６０】
ステップＳ３０６では、情報処理装置１００のＣＰＵ１０１は、処理フローにモジュールを追加する処理を行う。モジュール追加処理の詳細は、後述する図１１に示す。モジュール追加処理が終了したら、ステップＳ３０２に処理を戻す。
【００６１】
ステップＳ３０７では、ユーザからの入力が処理フローで構築した画像処理ロジックを実行する指示であるか否かを判定する。より具体的には、不図示の実行ボタンが押下されたか否かを判定する。ユーザからの入力が処理フローで構築した画像処理ロジックを実行する指示であると判定した場合には、ステップＳ３０８に処理を進める。ユーザからの入力が処理フローで構築された画像処理ロジックを実行する指示でないと判定した場合には、ステップＳ３０９に処理を進める。
【００６２】
ステップＳ３０８では、情報処理装置１００のＣＰＵ１０１は、処理フローに配置された各モジュールを、処理フローが示す処理順に実行する。処理フローに配置された各モジュールのソースコードをモジュールテーブル５００のソースコード５０３から取得し、取得したソースコードを処理順に組み合わせて、コンパイルする（生成手段に相当する）。そしてコンパイルした結果得られるオブジェクトコードを実行することで、これを実現する。処理が終わったら、ステップＳ３０２に処理を戻す。
【００６３】
ステップＳ３０９では、情報処理装置１００のＣＰＵ１０１は、ユーザからの入力が処理フローを保存する指示であるか否かを判定する。より具体的には、不図示の保存ボタンが押下されたか否かを判定する。ユーザからの入力が処理フローを保存する指示であると判定した場合には、ステップＳ３１０に処理を進める。ユーザからの入力が処理フローを保存する指示でないと判定した場合には、ステップＳ３１１に処理を進める。
【００６４】
ステップＳ３１０では、情報処理装置１００のＣＰＵ１０１は、処理フロー描画領域４０１で構築された処理フローを保存する。より具体的には、処理フローテーブル６００を外部メモリ１１１等に保存する。こうしておくことで、ユーザは保存された処理フローを用いて作業を再開することができる。
【００６５】
ステップＳ３１１では、情報処理装置１００のＣＰＵ１０１は、ユーザからの入力が、処理フローをテンプレートモジュールとして保存する指示であるか否かを判定する。より具体的には、不図示のテンプレートモジュール保存ボタンが押下されたか否かを判定する。ユーザからの入力がテンプレートモジュールとして処理フローを保存する指示であると判定した場合には、ステップＳ３１２に処理を進める。ユーザからの入力が処理フローを保存する指示でないと判定した場合には、ステップＳ３１３に処理を進める。
【００６６】
ステップＳ３１２では、情報処理装置１００のＣＰＵ１０１は、処理フロー描画領域４０１で構築された処理フローをテンプレートモジュールとして保存する。より具体的には、処理フローテーブル６００をコピーすることで、新しくテンプレートモジュールテーブルを生成し外部メモリ１１１に記憶する。
【００６７】
ステップＳ３１３では、情報処理装置１００のＣＰＵ１０１は、ユーザからの入力が、画像処理ロジック構築アプリケーションの終了指示であるか否かを判定する。より具体的には、不図示の終了ボタンが押下されたか否かを判定する。ユーザからの入力が画像処理ロジック構築アプリケーションの終了指示であると判定した場合には、ステップＳ３１４に処理を進める。ユーザからの入力が画像処理ロジック構築アプリケーションの終了指示でないと判定した場合、すなわち前述した処理以外の処理を実行する、または入力内容が特定できないのでエラーを通知し、ステップＳ３０２に処理を戻す。
【００６８】
ステップＳ３１４では、情報処理装置１００のＣＰＵ１０１は、ステップＳ３０１で表示した処理フロー構築画面４００を閉じて、画像処理ロジック構築アプリケーションを終了する。
【００６９】
以上で図３に示す本実施形態の全体の処理の流れの説明を終了する。
【００７０】
次に、モジュール追加処理について図１１を用いて説明する。
【００７１】
まずステップＳ１１０１では、情報処理装置１００のＣＰＵ１０１は、処理フローに追加されるモジュールのモジュールＩＤ５０１またはモジュールＩＤ８０２を特定する。より具体的には、モジュール一覧領域４０２からドラッグされたモジュールのモジュールＩＤを特定する。
【００７２】
ステップＳ１１０２では、情報処理装置１００のＣＰＵ１０１は、処理フローに追加する位置を特定する。より具体的には、モジュール一覧領域４０２またはユーザ保存テンプレート一覧領域４０６からドラッグされたモジュールがドロップされた処理フロー上の位置を特定し、その位置に基づいて、追加されるモジュールの位置を特定する。
【００７３】
ステップＳ１１０３では、情報処理装置１００のＣＰＵ１０１は、ステップＳ１１０２で特定された処理フロー上の位置に相当する、処理フローテーブル６００の挿入するレコードの位置にモジュールを追加する。具体的に説明する。例えば図４に示す処理フロー構築画面では、ユーザがユーザ保存テンプレート一覧から「画像処理１」のモジュールをドラッグしている。この「画像処理１」のモジュールを領域４０７にドロップした場合を例に説明する。領域４０７の位置は、処理フロー上の「Ｕ０００２２：メディアン」と「Ｕ００００４：スイッチ」の間に存在していると特定できる。特定された「Ｕ０００２２：メディアン」のレコード（ＩＮＤＥＸ６０１が「３」）と「Ｕ００００４：スイッチ」のレコード（ＩＮＤＥＸ６０１が「４」）の間に、画像処理１のレコードを新たに追加する。
【００７４】
処理フローテーブル６００Ａは「画像処理１」が処理フローに追加される前の処理フローテーブル６００であり、処理フローテーブル６００Ｂは、「画像処理１」が処理フローに追加された後の処理フローテーブル６００である。このように、Ｕ０００２２：メディアン」と「Ｕ００００４：スイッチ」の間に新たなレコードが追加され、「Ｕ００００４：スイッチ」のＩＮＤＥＸ６０１は「５」に繰り上がる。モジュールが追加された時点では、入力パラメータ６０４や、出力パラメータ６０５の画像バッファは「ＮＵＬＬ」の状態で、画像バッファの設定がされていない。画像バッファは処理フローの内容に応じてユーザが好適に設定すべきものであるため、手動で設定される。この設定に関してはステップＳ１１２２〜ステップＳ１１２８で後述する。
【００７５】
ステップＳ１１０４では、情報処理装置１００のＣＰＵ１０１は、ステップＳ１１０３で追加されたモジュールがテンプレートモジュールか否かを判定する。より具体的には、ステップＳ１１０１で特定されモジュールのモジュールＩＤ５０１またはモジュールＩＤ８０２に対応する、参照先テーブル５０６がテンプレートモジュールを参照しているか（モジュールＩＤに対応して格納されているか）否かを判定する。モジュールが、テンプレートモジュールを参照している場合には、モジュールがテンプレートモジュールであると判定する。テンプレートモジュールであると判定された場合には処理をステップＳ１１０５に進める。テンプレートモジュールでないと判定された場合には処理をステップＳ１１１８に進める。
【００７６】
ステップＳ１１０５では、情報処理装置１００のＣＰＵ１０１は、画像バッファの利用有無リスト作成処理を行う。画像バッファの利用有無リスト作成処理の詳細な処理の説明は、図１２に示すフローチャートを用いて説明する。
【００７７】
図１２は利用有無リスト作成処理の詳細な処理を説明するフローチャートである。
【００７８】
ステップＳ１２０１では、情報処理装置１００のＣＰＵ１０１は、外部メモリ１１１に記憶される画像バッファテーブル１０００を取得する。
【００７９】
ステップＳ１２０２では、情報処理装置１００のＣＰＵ１０１は、ステップＳ１２０１で取得された画像バッファテーブル１０００の画像バッファＩＤ１００２を、使用有無リスト１３００に複製する。使用有無リスト１３００とは例えば図１３に示すリストである。使用有無リスト１３００には、画像バッファＩＤ１００２と使用フラグ１３０１とが対応づいて記憶されている。使用フラグ１３０１は、画像バッファが処理フローテーブル６００において利用されているか否かを示すフラグである。本実施形態では、「０」が使用していない、「１」が使用しているとして判断することができる。なお、情報処理装置１００に確保されている画像バッファの使用状況を管理することができればよく、上記の方法はあくまでも例である。
【００８０】
ステップＳ１２０３では、情報処理装置１００のＣＰＵ１０１は、外部メモリ１１１に記憶される処理フローテーブル６００を取得する。
【００８１】
ステップＳ１２０４では、情報処理装置１００のＣＰＵ１０１は、ステップＳ１２０３で取得された処理フローテーブル６００の入力パラメータ６０４、出力パラメータ６０５を参照し、入力パラメータ６０４、出力パラメータ６０５で使用されている画像バッファを抽出する。例えば、図６の処理フローテーブル６００Ａの入力パラメータ６０４、出力パラメータ６０５で使用されている画像バッファを抽出すると、「画像バッファ１」、「画像バッファ２」、「画像バッファ４」が抽出されることになる。
【００８２】
ステップＳ１２０５では、情報処理装置１００のＣＰＵ１０１は、ステップＳ１２０４で抽出された画像バッファに対応する使用フラグ１３０１を立てる。上述の「画像バッファ１」、「画像バッファ２」、「画像バッファ４」の使用フラグ１３０１が立った例が図１３に示す使用有無リスト１３００である。このようにして、ユーザが処理フローに対して処理を追加しようとする時点での処理フローにおける画像バッファを利用状況が、使用有無リスト１３００に表されることになる。
【００８３】
以上で図１２に示すフローチャートの説明を終了する。
【００８４】
図１１の説明に戻る。
ステップＳ１１０６では、情報処理装置１００のＣＰＵ１０１は、ステップＳ１１０５で作成された使用有無リスト１３００を取得する。
【００８５】
ステップＳ１１０７では、情報処理装置１００のＣＰＵ１０１は、ステップＳ１１０１で特定されたモジュールに対応するテンプレートモジュールテーブル（例えば、図８に示す画像バッファ１テーブル８００）を読み込む。本実施形態では、追加されるテンプレートモジュールは画像バッファ１を例として説明するが他のテンプレートモジュールが追加されるようにしても構わない。
【００８６】
ステップＳ１１０８〜ステップＳ１１１７の処理は、ステップＳ１１０７で取得されたテンプレートモジュールテーブルのすべてのレコードの処理が終了するまで繰り返し実行される。本実施形態では、画像処理１テーブル８００ＡのＩＮＤＥＸ８０１が「１」〜「３」までのレコードがすべて処理されるまで、繰り返しステップＳ１１０８〜ステップＳ１１１７の処理が実行されるものとする。すべてのレコードの処理が実行されると、繰り返しの処理を終了させ、処理をステップＳ１１２１に進めることができる。
【００８７】
ステップＳ１１０８では、情報処理装置１００のＣＰＵ１０１は、入力パラメータ８０４及び出力パラメータ８０５の画像バッファが、ステップＳ１１０６で取得された使用有無リスト１３００の使用フラグ１３０１が立っているか否かを判定する。例えば、図８の画像処理１テーブル８００のＩＮＤＥＸ８０１が「１」であれば、入力パラメータ８０４が「画像バッファ１」、出力パラメータが「画像バッファ２」である。この場合使用有無リスト１３００を参照すると、「画像バッファ１」及び「画像バッファ２」の使用フラグ１３０１は立っていると判断することができる。入力パラメータ８０４及び出力パラメータ８０５の画像バッファの使用フラグ１３０１が立っていると判定された場合は処理をステップＳ１１０９に進め、そうでない場合は次のレコードのステップＳ１１０８の処理を行う。次のレコードが存在しない場合（すべてのレコードの処理が終了した）場合には処理をステップＳ１１２１に進める。
【００８８】
ステップＳ１１０９では、情報処理装置１００のＣＰＵ１０１は、使用有無リスト１３００で使用フラグ１３０１が立っていない（処理フローで使用していない）画像バッファがあるか否かを判定する。使用有無リスト１３００で使用フラグ１３０１が立っていない画像バッファがあると判定された場合には処理をステップＳ１１１０に進め、そうでない場合には処理を次のレコードに対してステップＳ１１０８の処理を行う。次のレコードが存在しない場合には、処理をステップＳ１１２１に進める。
【００８９】
ステップＳ１１１０では、情報処理装置１００のＣＰＵ１０１は、ステップＳ１１０９で使用フラグ１３０１の立っていないと判定された画像バッファを特定する（特定手段に相当する）。例えば、図１３に示す使用有無リスト１３００であれば、使用フラグ１３０１が立っていない画像バッファは、画像バッファＩＤ１００２が、「画像バッファ３」「画像バッファ５」「画像バッファ６」であると特定することができる。
【００９０】
ステップＳ１１１１では、情報処理装置１００のＣＰＵ１０１は、ステップＳ１１１０で特定された処理フローで未使用の画像バッファのうち、ひとつの画像バッファをレコードに割り当てる（割り当て手段に相当する）。割り当てたのち、次のレコードに対してステップＳ１１０８の処理を実行する。具体的には、画像処理１モジュールテーブル８００ＡのＩＮＤＥＸ８０１が「１」の入力パラメータ８０４であれば、ステップＳ１１１０で特定された「画像バッファ３」として割り当てる。このようにして、処理フローテーブル６００で使用されていない画像バッファを、テンプレートモジュールに含まれるモジュールに割り当てることで、処理フローに対して影響を与えることなく、テンプレートモジュールの処理を実行させるよう、ユーザの手間を掛けず自動的に画像バッファを割り当てることを可能とする効果がある。
【００９１】
ステップＳ１１１１の処理を画像処理１テーブル８００Ａに実行した後のテーブルが画像処理１テーブル８００Ｂである。このようにして、処理フローで使用されていない画像バッファが割り当てられた画像処理１テーブル８００（テンプレートモジュールテーブル）を作成することができる。
【００９２】
なお、本実施形態では、自動的に画像バッファを割り当てるようにしたが、ユーザに対して未使用の画像バッファを明示し、ユーザに未使用の画像バッファを割り当てるよう促すような構成にしても構わない。
【００９３】
ステップＳ１１１２では、情報処理装置１００のＣＰＵ１０１は、外部メモリ１１１に記憶されている確認画面１４００をディスプレイ１１０に表示する（表示制御手段に相当する）。例えば図１４に示すような確認画面１４００である。このような警告表示を行うことにより、ユーザが画像バッファが外部メモリに新たに追加されることを認識することができるようになる。
【００９４】
ステップＳ１１１３では、情報処理装置１００のＣＰＵ１０１は、画像バッファの追加指示をユーザから受け付けたか否かを判定する。追加指示を受け付けたと判定された場合には処理をステップＳ１１１４に進め、そうでない場合には処理をステップＳ１１１７に進める。より具体的にはステップＳ１１１２で表示された確認画面１４００のＯＫボタン１４０１が押下された場合には処理をステップＳ１１１４に進め、そうでない場合には処理をステップＳ１１１７に進める。
【００９５】
ステップＳ１１１４では、情報処理装置１００のＣＰＵ１０１は、画像バッファを新たに追加して確保する。具体的には、画像バッファテーブル１０００のレコードを一つ追加し、画像バッファを外部メモリ１１１上に確保する。追加される画像バッファは、本画像処理プログラム構築アプリケーションに設定されている既定の画像バッファを確保する。例えば図１０に示す画像バッファテーブル１０００に対してレコードが一つ追加される場合、ＩＮＤＥＸ１００１は「７」、画像バッファＩＤ１００２は「画像バッファ７」、名称１００３は「バッファ７」、画像情報１００４は、ＩＮＤＥＸ１００１が「６」と同じ画像情報１００４を複製する。外部メモリ１１１には、上記の画像バッファを新たに確保する。なお、確保される画像バッファは、既定の画像バッファではなく、図９の画像バッファ設定画面９００などを介してユーザにより好適に設定されるような構成としても構わない。
【００９６】
ステップＳ１１１５では、情報処理装置１００のＣＰＵ１０１は、ステップＳ１１１４で確保された画像バッファを該当するレコードに割り当てる（割り当て手段に相当する）。例えば、画像処理１テーブル８００Ａのすべてのレコードに対してステップＳ１１０８〜ステップＳ１１１７の繰り返しの処理を行った場合、図８に示す画像処理テーブル１テーブル８００ＡのＩＮＤＥＸ８０１が「３」の、出力パラメータ８０５に対して未使用の画像バッファを割り当てようとしても、処理フローでの未使用の画像バッファが存在しなくなってしまう。そのため、ステップＳ１１１４で確保された画像バッファである「画像バッファ７」を出力パラメータ８０５に割り当てる。ステップＳ１１１４で確保された画像バッファが割り当てられたテーブルの例が、画像処理１テーブル８００Ｂである。このように、処理フローであらかじめ確保されていた画像バッファが、追加されようとしているモジュールに対して不足するようであれば、画像バッファを自動的に追加されるようにすることで、ユーザが画像バッファを作成する手間を軽減することができるという効果がある。
【００９７】
ステップＳ１１１６では、情報処理装置１００のＣＰＵ１０１は、外部メモリ１１１に記憶されている使用有無リスト１３００を更新する。具体的には、ステップＳ１１１４で追加された画像バッファのレコードとして、使用有無リスト１３００の画像バッファＩＤ１００２を追加し、当該レコードの使用フラグ１３０１を立てる。上述した例であれば、画像バッファＩＤ１００２が「画像バッファ７」のレコードが新たに追加されることになる。
【００９８】
ステップＳ１１１７では、情報処理装置１００のＣＰＵ１０１は、ディスプレイ１１０に画像バッファが不足していることを通知する画面（不図示）を表示する。このように、追加されたテンプレートモジュールで使用する画像バッファが不足していることをユーザに対して通知することができる。通知したのち、次のレコードに対してステップＳ１１０８の処理を実行する。
【００９９】
ステップＳ１１１８では、情報処理装置１００のＣＰＵ１０１は、ステップＳ１１０４でテンプレートモジュールではないと判定されたモジュールが画像バッファの設定が可能なモジュールか否かを判定する。具体的には、ステップＳ１１０４でテンプレートモジュールではないと判定されたモジュールの入力パラメータ５０４、及び出力パラメータ５０５を参照し、画像バッファの設定が可能なモジュールか否かを判定する。図５のテーブルの例であれば、「画像バッファ＝ＮＵＬＬ」とあれば画像バッファの設定が可能なモジュールであると判断できる。画像バッファの設定が可能なモジュールか否かの判定方法はこれに限定されない。
【０１００】
ステップＳ１１１９では、情報処理装置１００のＣＰＵ１０１は、使用有無リスト１３００の作成処理を実行する。使用有無リスト１３００の作成処理の詳細な処理の流れについては図１２のフローチャートに示しているが、図１２の説明については前述のとおりであるため説明を省略する。
【０１０１】
ステップＳ１１２０では、情報処理装置１００のＣＰＵ１０１は、図１３の使用有無リスト１３００を参照する。
【０１０２】
ステップＳ１１２１では、情報処理装置１００のＣＰＵ１０１は、処理フロー構築画面４００の入力パラメータプルダウン４１０の押下を受け付けたか否かを判定する。入力パラメータプルダウン４１０の選択を受け付けたと判定された場合には処理をステップＳ１１２２に進め、そうでない場合には処理をステップＳ１０１２３に進める。入力パラメータプルダウン４１０は、処理フローに追加されたモジュールの入力パラメータである画像バッファを設定することが可能ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）である。
【０１０３】
ステップＳ１１２２では、情報処理装置１００のＣＰＵ１０１は、画像バッファテーブル１０００で管理されている画像バッファのうち、処理フローで使用中の画像バッファと未使用の画像バッファとに対応する選択項目であるＧＵＩを表示する。このＧＵＩは画像バッファテーブル１０００の各レコードの画像バッファと紐付いているものである。例えば図１５に示す選択プルダウン１５００のように、下線が引いてあるＧＵＩ１５０１が処理フローで使用中の画像バッファであり、下線の引いていないＧＵＩ１５０２が未使用の画像バッファである。このようにして、ユーザがモジュールを追加した際の処理フローの画像バッファの使用状況に応じた、画像バッファの候補を一覧表示することで、ユーザが画像バッファの選択をしやすいＧＵＩを提供することが可能となる効果がある。なお、画像バッファの使用済みであるか未使用であるかを識別する手法は上記の下線の有無だけではなく、色の変更、使用済みの画像バッファのみ（もしくは未使用の画像バッファのみ）を表示するようにしても構わない。
【０１０４】
ステップＳ１１２３では、情報処理装置１００のＣＰＵ１０１は、ステップＳ１１２２で表示されたＧＵＩの選択を受け付ける。
【０１０５】
ステップＳ１１２４では、情報処理装置１００のＣＰＵ１０１は、ステップＳ１１２３で選択を受け付けたＧＵＩに対応する画像バッファをステップＳ１１０１で特定されたモジュールの入力パラメータとして割り当てる。処理フローの実行時に、ステップＳ１１２４で割り当てられた画像バッファから、テンプレートモジュールの初めの画像バッファに画像が複製されることで、処理が行われるものとする。具体的には、画像処理１の入力パラメータである画像バッファ４から、画像処理１テーブル８００Ｂの最初のモジュールの入力パラメータ８０４である画像バッファ３に画像がコピーされることで、画像処理１モジュールが処理フローにおいて実行される。出力パラメータも同様に、出力パラメータ８０５から、画像処理１モジュールの出力パラメータの画像バッファに複製される。
【０１０６】
ステップＳ１１２５では、情報処理装置１００のＣＰＵ１０１は、処理フロー構築画面４００の出力パラメータプルダウン４１１の選択を受け付けたか否かを判定する。出力パラメータプルダウン４１１の選択を受け付けたと判定された場合には、処理をステップＳ１１２６に進め、そうでない場合には処理を終了させる。
【０１０７】
ステップＳ１１２６では、情報処理装置１００のＣＰＵ１０１は、画像バッファテーブル１０００で管理されている画像バッファのうち、処理フローで使用中の画像バッファと未使用の画像バッファとを選択可能なＧＵＩを表示する。このＧＵＩは画像バッファテーブル１０００の各レコードの画像バッファと紐付いているものである。例えば図１５に示す選択プルダウン１５００のように、下線が引いてあるＧＵＩ１５０１が処理フローで使用中の画像バッファであり、下線の引いていないＧＵＩ１５０２が未使用の画像バッファである。このようにして、ユーザがモジュールを追加した際の処理フローの画像バッファの使用状況に応じた、画像バッファの候補を表示することで、ユーザが画像バッファの選択をしやすいＧＵＩを提供することが可能となる効果がある。なお、画像バッファの使用済みであるか未使用であるかを識別する手法は上記の下線の有無だけではなく、色の変更、使用済みの画像バッファのみ（もしくは未使用の画像バッファのみ）を表示するようにしても構わない。
【０１０８】
ステップＳ１１２７では、情報処理装置１００のＣＰＵ１０１は、ステップＳ１１２６で表示されたＧＵＩの選択を受け付ける。
【０１０９】
ステップＳ１１２８では、情報処理装置１００のＣＰＵ１０１は、ステップＳ１２２７で選択を受け付けたＧＵＩに対応する画像バッファをステップＳ１１０１で特定されたモジュールの出力パラメータとして割り当てる。
【０１１０】
ステップＳ１１２４及びステップＳ１１２８での割り当てを行ったあとの処理フロー構築画面４００が図１６に示す画面例である。入力パラメータプルダウン４１０と出力パラメータプルダウン４１１にはそれぞれ、ユーザが選択したＧＵＩが表示されている。図１６ではいずれも画像バッファ４が選択されている。
【０１１１】
このようにして、ユーザが入力パラメータと出力パラメータを設定するためのＧＵＩにおいて、処理フローで使用中の画像バッファと未使用の画像バッファとを識別可能に表示することで、ユーザが画像バッファを選択する際に画像バッファを選択する際の手間を軽減することの可能な効果がある。また、誤って使用中（または未使用）の画像バッファを選択してしまうことを防ぐ効果もある。
【０１１２】
以上で図１１に示すフローチャートの説明を終了する。
【０１１３】
以上説明したように、本実施形態によれば、処理フローに追加される画像処理モジュールの画像バッファを簡便に割り当てることの可能な仕組みを提供することの可能な効果を奏する。
【０１１４】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【０１１５】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０１１６】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１１７】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１１８】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１１９】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１２０】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１２１】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１２２】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１２３】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１２４】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１２５】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  システムバス
１０５  入力コントローラ
１０６  ビデオコントローラ
１０７  メモリコントローラ
１０８  通信Ｉ／Ｆ（インターフェース）コントローラ
１０９  入力デバイス
１１０  ディスプレイ
１１１  外部メモリ
【図１】
2017151530.tif 000003
【図２】
2017151530.tif 000004
【図３】
2017151530.tif 000005
【図４】
2017151530.tif 000006
【図５】
2017151530.tif 000007
【図６】
2017151530.tif 000008
【図７】
2017151530.tif 000009
【図８】
2017151530.tif 000010
【図９】
2017151530.tif 000011
【図１０】
2017151530.tif 000012
【図１１】
2017151530.tif 000013
【図１２】
2017151530.tif 000014
【図１３】
2017151530.tif 000015
【図１４】
2017151530.tif 000016
【図１５】
2017151530.tif 000017
【図１６】
2017151530.tif 000018