(57)【特許請求の範囲】
【請求項１】
複数の処理ブロックに関するライブラリ情報を記憶する情報テーブル部と、前記ライブラリ情報に基づいて前記複数の処理ブロックを組み合わせてソースプログラムを生成するソースプログラム生成手段と、を有する並列プロセッサ用組み込みプログラム開発装置において、
前記ソースプログラムが処理する連続した複数のデータから構成された処理単位あたりのデータ数と、１つのデータの処理を行う際に必要とする前記１つのデータの前後の参照データ数と、該ソースプログラムを実行する並列プロセッサが同時に処理できる最大データ数と、に基づいて、前記処理単位あたりに実行する並列処理のループ回数を決定するループ回数決定手段を有していることを特徴とする並列プロセッサ用組み込みプログラム開発装置。
【請求項２】
前記情報テーブル部に記憶するライブラリ情報が、各々の前記複数の処理ブロックにおける必要ハードウェア資源、プログラム容量、サイクル数、及び、参照データ数を少なくとも含んでいることを特徴とする請求項１に記載の並列プロセッサ用組み込みプログラム開発装置。
【請求項３】
前記ループ回数決定手段が、前の処理ブロックの結果を利用して次の処理ブロックが処理を行う場合は、前記ライブラリ情報に含まれる各処理ブロックの参照データ数を加算した値に基づいて、前記ループ回数を決定するように設定されていることを特徴とする請求項１または２に記載の並列プロセッサ用組み込みプログラム開発装置。
【請求項４】
前記ループ回数決定手段が、次の処理ブロックが前の処理ブロックの結果を利用しない場合は、前記ライブラリ情報に含まれる各処理ブロックの参照データ数のうち最大の参照データ数に基づいて、前記ループ回数を決定するように設定されていることを特徴とする請求項１または２に記載の並列プロセッサ用組み込みプログラム開発装置。
【請求項５】
複数の処理ブロックに関するライブラリ情報を記憶する情報テーブル部に記憶されたライブラリ情報に基づいて前記複数の処理ブロックを組み合わせてソースプログラムを生成する並列プロセッサ用組み込みプログラム開発方法において、
前記ソースプログラムが処理する連続した複数のデータから構成された処理単位あたりのデータ数と、１つのデータの処理を行う際に必要とする前記１つのデータの前後の参照データ数と、該ソースプログラムを実行する並列プロセッサが同時に処理できる最大データ数と、に基づいて、前記処理単位あたりに実行する並列処理のループ回数を決定することを特徴とする並列プロセッサ用組み込みプログラム開発方法。
【請求項６】
複数の処理ブロックに関するライブラリ情報を記憶する情報テーブル部を有した並列プロセッサ用組み込みプログラム開発装置のコンピュータを、前記ライブラリ情報に基づいて前記複数の処理ブロックを組み合わせてソースプログラムを生成するソースプログラム生成手段として機能させる並列プロセッサ用組み込みプログラム開発プログラムにおいて、
前記ソースプログラムが処理する連続した複数のデータから構成された処理単位あたりのデータ数と、１つのデータの処理を行う際に必要とする前記１つのデータの前後の参照データ数と、該ソースプログラムを実行する並列プロセッサが同時に処理できる最大データ数と、に基づいて、前記処理単位あたりに実行する並列処理のループ回数を決定するループ回数決定手段として、前記コンピュータを機能させるための並列プロセッサ用組み込みプログラム開発プログラム。
【請求項７】
請求項６に記載の並列プロセッサ用組み込みプログラム開発プログラムを格納したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列プロセッサを動作させる組み込みプログラム開発装置、並列プロセッサ用組み込みプログラム開発方法、並列プロセッサ用組み込みプログラム開発プログラムおよび並列プロセッサ用組み込みプログラム開発プログラムを格納した記録媒体に関する。
【背景技術】
【０００２】
ＳＩＭＤ（Single Instruction stream Multiple Data stream）型マイクロプロセッサなどの並列プロセッサを動作させるプログラムは、例えば特許文献１に記載の組み込みプログラム生成方法のように、パーソナルコンピュータ等のコンピュータ機器上において、直接プログラムコードを記述することなく、マウス等を用いたＧＵＩ（Graphical User Interface）操作で複数の処理ブロックを組み合わせてソースプログラムの自動生成を行うことが行われている。
【０００３】
特許文献１に記載の組み込みプログラム生成方法で画像処理用のプログラムを作成する場合、画像データの１行分の処理を行うための並列処理自体のループ回数は、一般的にその画像データの１行分の画素数を並列処理数で除算することで求められる。
【０００４】
例えば、１行あたり１０２４画素の画像データで、対象とする並列プロセッサの並列処理数が１００ならば、１０２４÷１００＝１０あまり２４であるため、１１回のループを行うようなプログラムソースコードが生成されることになる。
【特許文献１】特開２００７−８００４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、画像処理によっては、対象とする画素の周辺画素値を用いて演算する場合があるので、一回の並列演算では、実処理画素数が、プロセッサの最大並列処理数より少なくなってしまい、画像データの１行分の画素数を並列処理数で除算する求め方ではループ数が正確でない場合がある。
【０００６】
よって、本発明は、並列プロセッサを動作させるプログラムを自動で生成する際に、実処理画素数を考慮したループ数を算出することができる並列プロセッサ用組み込みプログラム開発装置、並列プロセッサ用組み込みプログラム開発方法、並列プロセッサ用組み込みプログラム開発プログラムおよび並列プロセッサ用組み込みプログラム開発プログラムを格納した記録媒体を提供することを課題とする。
【課題を解決するための手段】
【０００７】
請求項１に記載の並列プロセッサ用組み込みプログラム開発装置は、複数の処理ブロックに関するライブラリ情報を記憶する情報テーブル部と、前記ライブラリ情報に基づいて前記複数の処理ブロックを組み合わせてソースプログラムを生成するソースプログラム生成手段と、を有する並列プロセッサ用組み込みプログラム開発装置において、前記ソースプログラムが処理する連続した複数のデータから構成された処理単位あたりのデータ数と、１つのデータの処理を行う際に必要とする前記１つのデータの前後の参照データ数と、該ソースプログラムを実行する並列プロセッサが同時に処理できる最大データ数と、に基づいて、前記処理単位あたりに実行する並列処理のループ回数を決定するループ回数決定手段を有していることを特徴としている。
【０００８】
請求項２に記載の並列プロセッサ用組み込みプログラム開発装置は、請求項１に記載の並列プロセッサ用組み込みプログラム開発装置において、前記情報テーブル部に記憶するライブラリ情報が、各々の前記複数の処理ブロックにおける必要ハードウェア資源、プログラム容量、サイクル数、及び、参照データ数を少なくとも含んでいることを特徴としている。
【０００９】
請求項３に記載の並列プロセッサ用組み込みプログラム開発装置は、請求項１または２に記載の並列プロセッサ用組み込みプログラム開発装置において、前記ループ回数決定手段が、前の処理ブロックの結果を利用して次の処理ブロックが処理を行う場合は、前記ライブラリ情報に含まれる各処理ブロックの参照データ数を加算した値に基づいて、前記ループ回数を決定するように設定されていることを特徴としている。
【００１０】
請求項４に記載の並列プロセッサ用組み込みプログラム開発装置は、請求項１または２に記載の並列プロセッサ用組み込みプログラム開発装置において、前記ループ回数決定手段が、次の処理ブロックが前の処理ブロックの結果を利用しない場合は、前記ライブラリ情報に含まれる各処理ブロックの参照データ数のうち最大の参照データ数に基づいて、前記ループ回数を決定するように設定されていることを特徴としている。
【００１１】
請求項５に記載の並列プロセッサ用組み込みプログラム開発方法は、複数の処理ブロックに関するライブラリ情報を記憶する情報テーブル部に記憶されたライブラリ情報に基づいて前記複数の処理ブロックを組み合わせてソースプログラムを生成する並列プロセッサ用組み込みプログラム開発方法において、前記ソースプログラムが処理する連続した複数のデータから構成された処理単位あたりのデータ数と、１つのデータの処理を行う際に必要とする前記１つのデータの前後の参照データ数と、該ソースプログラムを実行する並列プロセッサが同時に処理できる最大データ数と、に基づいて、前記処理単位あたりに実行する並列処理のループ回数を決定することを特徴としている。
【００１２】
請求項６に記載の並列プロセッサ用組み込みプログラム開発プログラムは、複数の処理ブロックに関するライブラリ情報を記憶する情報テーブル部を有した並列プロセッサ用組み込みプログラム開発装置のコンピュータを、前記ライブラリ情報に基づいて前記複数の処理ブロックを組み合わせてソースプログラムを生成するソースプログラム生成手段として機能させる並列プロセッサ用組み込みプログラム開発プログラムにおいて、前記ソースプログラムが処理する連続した複数のデータから構成された処理単位あたりのデータ数と、１つのデータの処理を行う際に必要とする前記１つのデータの前後の参照データ数と、該ソースプログラムを実行する並列プロセッサが同時に処理できる最大データ数と、に基づいて、前記処理単位あたりに実行する並列処理のループ回数を決定するループ回数決定手段として、前記コンピュータを機能させることを特徴としている。
【００１３】
請求項７に記載のコンピュータ読み取り可能な記録媒体は、請求項６に記載の並列プロセッサ用組み込みプログラム開発プログラムを格納したことを特徴としている。
【発明の効果】
【００１４】
請求項１に記載の並列プロセッサ用組み込みプログラム開発装置によれば、ループ回数決定手段が、連続する複数のデータから構成された処理単位あたりに実行する並列処理のループ回数を、処理単位あたりのデータ数と、１つのデータの処理を行う際に必要とする１つのデータの前後の参照データ数と、該ソースプログラムを実行する並列プロセッサが同時に処理できる最大データ数と、に基づいて決定しているので、処理ごとの実処理データ数（実処理画素数）を考慮したループ回数を算出することができる。
【００１５】
請求項２に記載の並列プロセッサ用組み込みプログラム開発装置によれば、ライブラリ情報に、各々の複数の処理ブロックにおける必要ハードウェア資源、プログラム容量、サイクル数、及び、参照データ数を少なくとも含んでいるので、これらの情報を管理することができ、生成されたソースプログラムのループ回数だけでなく、ハードウェア資源、プログラム容量、サイクル数も管理し、ソースプログラム生成時に考慮することができる。
【００１６】
請求項３に記載の並列プロセッサ用組み込みプログラム開発装置によれば、前の処理ブロックの結果を利用して次の処理ブロックが処理を行う場合は、ライブラリ情報に含まれる各処理ブロックの参照データ数を加算した値に基づいてループ回数を決定しているので、前の処理による実処理データ数を次の処理の入力とする場合は、この実処理データ数に基づいた処理を行うこととなるために、このような場合にも正確なループ回数を算出することができる。
【００１７】
請求項４に記載の並列プロセッサ用組み込みプログラム開発装置によれば、次の処理ブロックが前の処理ブロックの結果を利用しない場合は、ライブラリ情報に含まれる各処理ブロックの参照データ数のうち最大の参照データ数に基づいてループ回数を決定しているので、実処理データ数が少ない方の処理を基準にループ回数を算出することとなるために、正確なループ回数を算出することができる。
【００１８】
請求項５に記載の並列プロセッサ用組み込みプログラム開発方法によれば、連続する複数のデータから構成された処理単位あたりに実行する並列処理のループ回数を、処理単位あたりのデータ数と、１つのデータの処理を行う際に必要とする前記１つのデータの前後の参照データ数と、該ソースプログラムを実行する並列プロセッサが同時に処理できる最大データ数と、に基づいて決定しているので、処理ごとの実処理データ数（実処理画素数）を考慮したループ回数を算出することができる。
【００１９】
請求項６に記載の並列プロセッサ用組み込みプログラム開発プログラムによれば、ループ回数決定手段が、連続する複数のデータから構成された処理単位あたりに実行する並列処理のループ回数を、処理単位あたりのデータ数と、１つのデータの処理を行う際に必要とする前記１つのデータの前後の参照データ数と、該ソースプログラムを実行する並列プロセッサが同時に処理できる最大データ数と、に基づいて決定しているので、処理ごとの実処理データ数（実処理画素数）を考慮したループ回数を算出することができる。
【００２０】
請求項７に記載のコンピュータ読み取り可能な記録媒体によれば、請求項６に記載の並列プロセッサ用組み込みプログラム開発プログラムを格納したので、プログラム単体で流通させることができ、バージョンアップ等を容易に行うことができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の一実施形態を、図１ないし図９を参照して説明する。図１は、本発明の一実施形態にかかる並列プロセッサ用組み込みプログラム開発装置のブロック図である。図２は、情報テーブル部の内容を示した説明図である。図３は、図１に示された並列プロセッサ用組み込みプログラム開発装置において生成されるソースプログラムの全体の処理を示すフローチャートである。図４は、図１に示された並列プロセッサ用組み込みプログラム開発装置におけるループ回数を決定する動作を示したフローチャートである。図５は、有効画素と参照画素との関係の説明図である。図６は、ループ回数を算出する処理ブロックの例１である。図７は、図６に示された処理の参照画素数と属性を示す表である。図８は、ループ回数を算出する処理ブロックの例２である。図９は、図８に示された処理の参照画素数と属性を示す表である。
【００２２】
図１に示した並列プロセッサ用組み込みプログラム開発装置１は、入力部２と、生成部３と、ループ回数算出部４と、表示部５と、ブロックデータ部６と、生成プログラム格納部７と、から構成されている。また、並列プロセッサ用組み込みプログラム開発装置１は主に画像処理に用いられる並列プロセッサの組み込みプログラムを開発する装置である。並列プロセッサ用組み込みプログラム開発装置１は、直接プログラムコードを記述してプログラミングするのではなく、マウス等を用いるＧＵＩ（Graphical User Interface）操作によってプログラミングを行う。
【００２３】
入力部２は、例えばマウスやキーボードなどであって、使用者が並列プロセッサ用組み込みプログラム開発装置１を使用してプログラムを開発する際に操作するための入力手段である。
【００２４】
ソースプログラム生成手段としての生成部３は、入力部２からの操作に基づいて後述するブロックデータ部６から読み出した複数の処理ブロックのライブラリ情報などからソースプログラムを生成し生成プログラム格納部７に格納する。また、読み出したライブラリ情報をループ回数算出部４に出力する。また、生成部３は、ブロックデータ部６から読み出した処理ブロックのライブラリ情報を利用し、選択される処理ブロックが使用するハードウェア資源、プログラムステップ数、サイクル数、及び参照画素数等を算出管理する。すなわち、情報テーブル部に記憶されたライブラリ情報に基づいて複数の処理ブロックを組み合わせてソースプログラムを生成している。
【００２５】
ループ回数決定手段としてのループ回数算出部４は、生成部３経由で取得したライブラリ情報に基づいて並列処理のループ回数を算出、決定し、生成部３に出力する。
【００２６】
表示部５は、例えばモニタディスプレイなどであって、並列プロセッサ用組み込みプログラム開発装置１を操作するためにＧＵＩなどを表示する。
【００２７】
情報テーブル部としてのブロックデータ部６は、複数の処理ブロックのライブラリ情報を記憶する。処理ブロックのライブラリ情報とは、例えば当該処理ブロック部分のソースプログラムや当該処理ブロックのステップ数やサイクル数などのハードウェア資源の使用量を示すテーブルなどである。
【００２８】
ライブラリ情報のテーブルの内容例を図２に示す。すなわち、プログラムステップ数、最大プログラムサイクル数、最小プログラムサイクル数、データＲＡＭ容量、使用ラインメモリ数、関連ライブラリ情報、左側参照画素数、右側参照画素数および属性などである。勿論必要に応じてさらに項目を増やしても良い。
【００２９】
生成プログラム格納部７は、生成部３で生成されたソースプログラムを格納する。
【００３０】
上述した構成の並列プロセッサ用組み込みプログラム開発装置１はパーソナルコンピュータに各機能ブロックが割り当てられ実現してもよい。例えば、生成部３とループ回数算出部４は予めハードディスクに記憶させたプログラムとし、ＣＰＵで実行されることで実現し、ブロックデータ部６および生成プログラム格納部７は、ハードディスクなどの不揮発性の記録装置で実現する。また、ブロックデータ部６および生成プログラム格納部７は同じ記録装置に記録しても良いし、それぞれ個別の記録装置に記録しても良い。
【００３１】
上述した構成の並列プロセッサ用組み込みプログラム開発装置１において生成されたソースプログラムは、例えば図３に示すようなフローチャートに沿って動作する。
【００３２】
図３に示したフローチャートは、並列プロセッサに対する初期化処理（ステップＳ１０１）を行って、フレーム開始処理（ステップＳ１０２）を行って、ライン開始処理（ステップＳ１０３）を行う。つまり、フレームの１ライン目から順次入力する。その後並列前処理（ステップＳ１０４）を行って、画像処理（ステップＳ１０５）、並列後処理（ステップＳ１０６）を行う。この画像処理のステップで、１ライン分のデータを、並列可能な画素数分に分けて、複数回繰り返して処理している。その後１ライン終了判定（ステップＳ１０７）を行い、１ライン終了した場合はライン終了処理（ステップＳ１０８）を行い、全ライン終了判定（ステップＳ１０９）を行って全ライン終了している場合はフレーム終了処理（ステップＳ１１０）を行って終了する。
【００３３】
次に、上述した構成の並列プロセッサ用組み込みプログラム開発装置１における並列処理のループ回数を決定する動作を図４を参照して説明する。このループ回数とは図３におけるステップＳ１０４〜Ｓ１０７の繰り返し回数である。この動作は、全てのＧＵＩ操作によるプログラミングが終わった時点でループ回数算出部４において行われる。
【００３４】
まず、ステップＳ１において、参照データ数としての参照画素数を初期化してステップＳ２に進む、参照画素数とは、ある画素を処理する際に必要とする周辺の画素を示す。例えば、図５に示すようにＳＩＭＤ型マイクロプロセッサで１度に１００画素処理でき（１回の並列処理で１００画素処理できる）、行う画像処理が当該画素の左右１画素を参照する場合は、１００画素のうち一番左の画素と一番右の画素は、参照画素が無い（一番左は左側の画素、一番右は右側の画素がそれぞれ無い）ために処理後の値が正確で無い。したがって１回の並列処理で正確な値が算出できるのは９８画素となる。次のループの時は前のループで正しい値が算出できなかった１００番目の画素が正しく処理できるように９９番目の画素から読み込む必要がある。
【００３５】
次に、ステップＳ２において、処理ブロックの解析を行ってステップＳ３に進む。処理ブロックの解析とはブロックデータ部６から読み込んだ処理ブロックのライブラリ情報からループ回数を算出するために必要な情報を取得することである。
【００３６】
次に、ステップＳ３において、当該処理ブロックの参照画素属性は相対値か絶対値かを判断し、相対値の場合はステップＳ４に進み、絶対値の場合はステップＳ５に進む。当該処理ブロックの参照画素属性が相対値か絶対値かはブロックデータ部６から読み込んだ処理ブロックのライブラリ情報を参照して判断する。相対値とは、前の処理ブロックの結果を利用して処理を行なう場合、絶対値とは、前の処理ブロックの結果を利用せずに処理を行なう場合である。
【００３７】
次に、ステップＳ４において、左右の参照画素数を加算してステップＳ８に進む。ブロックデータ部６から読み込んだ処理ブロックのライブラリ情報の左側参照画素数および右側参照画素数の値をそれぞれ加算する（初期化後は０に対して加算する）。加算した値は例えばメモリやレジスタなどに保存しておく。
【００３８】
ステップＳ５においては、それまでの参照画素数が絶対値以下であるか否かを判断し、以下である場合（Ｙの場合）はステップＳ６に進み、そうでない場合（Ｎの場合）はステップＳ７に進む。本ステップではステップＳ４で加算した値とステップＳ３において絶対値と判断された処理ブロックの参照画素数とを比較する。
【００３９】
次に、ステップＳ６において、参照画素数の絶対値への置き換えを行ってステップＳ８に進む。ステップＳ３で絶対値と判断された処理ブロックの参照画素数がステップＳ４で加算されてきた参照画素数の総和以上と判断されたのでステップＳ３で絶対値と判断された処理ブロックの参照画素数をステップＳ４で保存するメモリやレジスタなどに上書きする。
【００４０】
ステップＳ７においては、参照画素数を変更せずにステップＳ８に進む。ステップＳ３で絶対値と判断された処理ブロックの参照画素数がステップＳ４で加算されてきた参照画素数の総和未満と判断されたのでステップＳ４で保存するメモリやレジスタなどの値を変更しない。
【００４１】
次に、ステップＳ８において、処理ブロックが終了か否かを判断し、終了の場合はステップＳ９に進み、終了で無い場合はステップＳ２に戻る。複数の処理ブロックが有る場合は、全ての処理ブロックの解析が終了するまでステップＳ２〜Ｓ８を行う。
【００４２】
次に、ステップＳ９において有効画素数を次の（１）式により算出し、ステップＳ１０に進む。
有効画素数＝並列数−左側参照画素数−右側参照画素数・・・（１）
【００４３】
有効画素数とは、図５で示した一度の並列処理において正確な値が算出される画素を示している。並列数とは、並列プロセッサで一度に並列処理できるデータ数である（ソースプログラムを実行する並列プロセッサが同時に処理できる最大データ数）。
【００４４】
次に、ステップＳ１０においてループ回数を次の（２）式により算出する（小数点以下は切り捨て）。
ループ回数＝（画像データの主走査方向の画素数−１）÷有効画素数＋１・・・（２）
【００４５】
ループ回数とは並列処理を行う繰り返しの回数である。画像データの主走査方向の画素数とは、例えば画像の横方向１ラインの画素数である（連続する複数のデータから構成された処理単位あたりのデータ数、この場合１ラインが処理単位に相当する）。また、画像データの主走査方向の画素数から１を減算して有効画素数で割って、最後に１を加算するのは、画像データの主走査方向の画素数を有効画素数で割った際の余りの分を考慮したループ回数を算出するためである。すなわち、以上の処理は、連続する複数のデータから構成された処理単位あたりのデータ数と、ソースプログラムが１つのデータの処理を行う際に必要とする１つのデータの前後の参照データ数と、ソースプログラムが同時に処理できる最大データ数と、に基づいて、処理単位あたりに実行する並列処理のループ回数を決定している。
【００４６】
ここで、具体的な例を挙げて説明する。例えば図６に示すような処理ブロックＡ、処理ブロックＢ、処理ブロックＣを行う場合のループ回数を算出する場合を考える。図６は図３のステップＳ１０５の画像処理の処理内容を示す。すなわち、ＡＢＣＡＢＣＡＢＣ…という処理のループ回数である。
【００４７】
図６の処理ブロックＡは、例えば５行５列のマトリクス係数によるフィルター処理で、左右の参照画素数は各２画素となる。同様に処理ブロックＢも左右各２画素、そして処理ブロックＣは７行７列のマトリクス係数によるフィルター処理で、左右の参照画素は各３画素であるものとする。以上をまとめた表が図７である。そして、走査方向が１０００画素で、並列プロセッサの並列数を１００とすると、（１）式より
有効画素数＝１００−（２＋２＋３）−（２＋２＋３）＝８６
となり、（２）式より
ループ回数＝（１０００−１）÷８６＋１＝１２
となり、図６の場合は１２回ループ回数が必要となる。
【００４８】
図６および図７に示した例は図４のフローチャートをステップＳ１、Ｓ２、Ｓ３、Ｓ４、Ｓ８、Ｓ２、Ｓ３、Ｓ４、Ｓ８、Ｓ２、Ｓ３、Ｓ４、Ｓ８、Ｓ９、Ｓ１０の順で実行した場合である。すなわち、前の処理ブロックの結果を利用して次の処理ブロックが処理を行う場合は、ライブラリ情報に含まれる各処理ブロックの参照データ数を加算した値に基づいて、処理単位あたりに実行する並列処理のループ回数を決定している。
【００４９】
次に、図８に示すような処理ブロックＤ、処理ブロックＥ、処理ブロックＦを行う場合のループ回数を算出する場合を考える。図８は図３のステップＳ１０５の画像処理の処理内容を示す。すなわち、ＤＥＦＤＥＦＤＥＦ…という処理のループ回数である。
【００５０】
図８の処理ブロックＤは、例えば３行３列のマトリクス係数によるフィルター処理で、左右の参照画素数は各１画素となる。同様に処理ブロックＥは左右各２画素の参照画素とする。処理ブロックＦは、処理ブロックＥまでの処理結果が、一旦内部のラインバッファに出力されて、それまでの参照画素の積み上げが必要なく、改めて参照画素が必要な画像処理であるとする。その参照画素数を左右とも４画素とする。以上をまとめた表が図９である。そして、主走査方向が１０００画素で、並列プロセッサの並列数を１００とすると、（１）式より
有効画素数＝１００−４−４＝９２
となり、（２）式より
ループ回数＝（１０００−１）÷９２＋１＝１１
となる。
【００５１】
図８の場合は図９に示すように処理ブロックＦの属性が絶対値であるために、相対値である処理ブロックＤ、Ｅの参照画素数の加算値と比較する。処理ブロックＤ、Ｅの参照画素数の加算値は３で、処理ブロックＦの参照画素数は４であるために有効画素数の算出には処理ブロックＦの参照画素数を用いる。その結果、ループ回数が１１回必要と算出される。
【００５２】
図８および図９に示した例は図４のフローチャートをステップＳ１、Ｓ２、Ｓ３、Ｓ４、Ｓ８、Ｓ２、Ｓ３、Ｓ４、Ｓ８、Ｓ２、Ｓ３、Ｓ５、Ｓ６、Ｓ８、Ｓ９、Ｓ１０の順で実行した場合である。すなわち、次の処理ブロックが前の処理ブロックの結果を利用しない場合は、情報テーブル部に含まれる各処理ブロックの参照データ数のうち最大の参照データ数にて、処理単位あたりに実行する並列処理のループ回数を決定している。
【００５３】
本実施形態によれば、並列プロセッサを動作させる並列プログラムにおける並列処理のループ回数を、ブロックデータ部６に記憶したライブラリ情報の各処理ごとの参照画素数や属性と、並列プロセッサの並列数および画像データの主走査方向の画像数に基づいてループ回数算出部４が算出し決定するので、参照画素を考慮したループ回数を算出することができる。
【００５４】
また、処理ブロックの属性によって、参照画素数を加算するか否かおよびそれまでの参照画素数の加算値との比較を行うことで、有効画素が次の処理に引き継がれる場合と引き継がれない場合とが混在しても正確なループ回数を算出することができる。
【００５５】
なお、上述した実施形態は画像処理を行う並列プロセッサ用プログラムについて説明したが、例えばＤＳＰオーディオアプリケーションで用いられる音声データの補間処理など、隣接するデータに依存するデータ群を処理する並列プロセッサのプログラムであれば適用することができる。
【００５６】
なお、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。
【図面の簡単な説明】
【００５７】
【図１】本発明の第１の実施形態にかかる並列プロセッサ用組み込みプログラム開発装置のブロック図である。
【図２】情報テーブル部の内容を示した説明図である。
【図３】図１に示された並列プロセッサ用組み込みプログラム開発装置において生成されるソースプログラムの全体の処理を示すフローチャートである。
【図４】図１に示された並列プロセッサ用組み込みプログラム開発装置におけるループ回数を決定する動作を示したフローチャートである。
【図５】有効画素と参照画素との関係の説明図である。
【図６】ループ回数を算出する処理ブロックの例１である。
【図７】図６に示された処理の参照画素数と属性を示す表である。
【図８】ループ回数を算出する処理ブロックの例２である。
【図９】図８に示された処理の参照画素数と属性を示す表である。
【符号の説明】
【００５８】
１        並列プロセッサ用組み込みプログラム開発装置
３        生成部（ソースプログラム生成手段）
４        ループ回数算出部（ループ回数決定手段）
６        ブロックデータ部（情報テーブル部）
【図１】
0004989348.tif 000002
【図２】
0004989348.tif 000003
【図３】
0004989348.tif 000004
【図４】
0004989348.tif 000005
【図５】
0004989348.tif 000006
【図６】
0004989348.tif 000007
【図７】
0004989348.tif 000008
【図８】
0004989348.tif 000009
【図９】
0004989348.tif 000010