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