(57)【要約】【課題】処理対象画像の幅方向画素数よりもＰＥ数の少ない１次元ＳＩＭＤ並列画像処理システムにおいて画像全体に対する処理を行う際、必要となるプログラムコード量を削減する。【解決手段】ＰＥアレイ１を制御するコントローラ２内に、命令の反復実行部２２を有し、その内部にオペランド変換部２２１、メモリアドレス変換部２２２、オペコード変換部２２３を有する。プログラムメモリ３に格納されたプログラムコードを命令フェッチ・デコード部２２が読み出して実行する際、反復実行部２２がプログラムコードを判断し、命令に応じてオペランド変換部２２１、メモリアドレス変換部２２２、オペコード変換部２２３による変換を行い、１命令のプログラム記述を各ＰＥに割り当てられた複数の処理対象画素に適応した反復実行を行うことにより、プログラムコード量が削減できる。【選択図】図１
2007116560.tif 000002
【特許請求の範囲】
【請求項１】
処理対象データ数より少ない個数の要素プロセッサを有し、各要素プロセッサが複数個の処理対象データを処理する並列画像処理システムの制御方法において、
前記要素プロセッサに割り当てた処理対象データ数に応じて命令を自動的に反復実行し、
所定命令を反復実行する際、反復中のそれぞれの実行時に処理するデータに応じてオペコードを置き換え、
前記置き換えられたオペコードによって前記要素プロセッサを制御する、
ことを特徴とする並列画像処理システムの制御方法。
【請求項２】
前記処理データとして複数の画素を処理する際、
前記要素プロセッサに割り当てた画素数に応じて命令を自動的に反復実行し、
隣接画素の画素値取得命令を反復実行する際、処理する画素の位置に応じてオペコードを隣接要素プロセッサからの画素値転送命令と自要素プロセッサ上の画素値取得命令の組み合わせに置き換え、
前記置き換えられたオペコードによって前記要素プロセッサを制御する、請求項１に記載の並列画像処理システムの制御方法。
【請求項３】
各要素プロセッサに割り当てた画素数に合わせてレジスタ群を分割して利用し、反復実行時に利用するレジスタ群を切り替えるようにオペランドを書き換え、
メモリアクセス命令の反復実行時に前記要素プロセッサに割り当てた画素数に合わせたオフセット値をアドレスに加算する、
ことを特徴とする請求項２に記載の並列画像処理システムの制御方法。
【請求項４】
処理対象データ数より少ない個数の要素プロセッサを有し、各要素プロセッサが複数個の処理対象データを処理する並列画像処理システムの制御装置において、
前記要素プロセッサに割り当てた処理対象データ数に応じて命令を自動的に反復実行する反復実行手段を有し、
前記反復実行手段は、所定命令を反復実行する際、反復中のそれぞれの実行時に処理するデータに応じてオペコードを置き換えるオペコード変換手段を有し、前記置き換えられたオペコードによって前記要素プロセッサを制御することを特徴とする並列画像処理システムの制御装置。
【請求項５】
前記処理データとして複数の画素を処理する際、
前記反復実行手段は、前記要素プロセッサに割り当てた画素数に応じて命令を自動的に反復実行し、
前記反復実行手段は、隣接画素の画素値取得命令を反復実行する際、処理する画素の位置に応じてオペコードを隣接要素プロセッサからの画素値転送命令と自要素プロセッサ上の画素値取得命令の組み合わせに置き換えるオペコード変換手段を有し、前記置き換えられたオペコードによって前記要素プロセッサを制御する、請求項４に記載の並列画像処理システムの制御装置。
【請求項６】
前記要素プロセッサが複数個の画素を処理する１次元プロセッサアレイ構造からなり、
前記１次元プロセッサアレイ構造は１次元ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）プロセッサアレイ構造である、請求項５に記載の並列画像処理システムの制御装置。
【請求項７】
前記反復実行手段は、
各要素プロセッサに割り当てた画素数に合わせてレジスタ群を分割して利用し、反復実行時に利用するレジスタ群を切り替えるようにオペランドを書き換えるオペランド変換手段と、
メモリアクセス命令の反復実行時に前記要素プロセッサに割り当てた画素数に合わせたオフセット値をアドレスに加算するメモリアドレス変換手段と、
を更に有する、請求項６に記載の並列画像処理システムの制御装置。
【請求項８】
処理対象データ数より少ない個数の要素プロセッサを有し、各要素プロセッサが複数個の処理対象データを処理する並列画像処理システムにおいて、
前記要素プロセッサに割り当てた処理対象データ数に応じて命令を自動的に反復実行する反復実行手段を有し、
前記反復実行手段は、所定命令を反復実行する際、反復中のそれぞれの実行時に処理するデータに応じてオペコードを置き換えるオペコード変換手段を有し、前記置き換えられたオペコードによって前記要素プロセッサを制御する、ことを特徴とする並列画像処理システム。
【請求項９】
前記処理データとして複数の画素を処理する際、
前記反復実行手段は、前記要素プロセッサに割り当てた画素数に応じて命令を自動的に反復実行し、
前記反復実行手段は、隣接画素の画素値取得命令を反復実行する際、処理する画素の位置に応じてオペコードを隣接要素プロセッサからの画素値転送命令と自要素プロセッサ上の画素値取得命令の組み合わせに置き換えるオペコード変換手段を有し、前記置き換えられたオペコードによって前記要素プロセッサを制御する、請求項８に記載の並列画像処理システム。
【請求項１０】
処理対象データ数より少ない個数の要素プロセッサを有し、各要素プロセッサが複数個の処理対象データを処理する並列画像処理システムを構成するコンピュータに、
前記要素プロセッサに割り当てた処理対象データ数に応じて命令を自動的に反復実行する機能と、
前記反復実行ステップで所定命令を反復実行する際、反復中のそれぞれの実行時に処理するデータに応じてオペコードを置き換える機能と、
前記置き換えられたオペコードによって前記要素プロセッサを制御する機能とを実行させることを特徴とするプログラム。
【請求項１１】
前記コンピュータに、前記処理データとして複数の画素を処理させる際、
前記要素プロセッサに割り当てた画素数に応じて命令を自動的に反復実行する機能と、
前記反復実行ステップで隣接画素の画素値取得命令を反復実行する際、処理する画素の位置に応じてオペコードを隣接要素プロセッサからの画素値転送命令と自要素プロセッサ上の画素値取得命令の組み合わせに置き換える機能と、
前記置き換えられたオペコードによって前記要素プロセッサを制御する機能とを実行させる、請求項１０に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は並列画像処理システムに係り、特に１次元ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）プロセッサアレイ構造からなる並列画像処理システムの制御方法および装置に関する。
【背景技術】
【０００２】
従来の並列画像処理システムの一例が特許２８３９０２６号公報（特許文献１）および特開２００２−７３５９号公報（特許文献２）に記載されている。この従来の並列画像処理システムは、多数の演算要素プロセッサ（Ｐｒｏｃｅｓｓｏｒ  Ｅｌｅｍｅｎｔ、以下「ＰＥ」という。）が１次元並列接続されたＰＥアレイと、それらを制御するコントローラとから構成されてる。各ＰＥは演算処理を行う演算部（ＡＬＵ）、処理対象画像の局所的な画素値を格納するローカルメモリおよび一時的な演算結果を保持するレジスタから構成されている。【０００３】
このような構成を有する従来の並列画像処理システムは、ローカルメモリに格納された処理対象画像の特定行に対して何らかの演算を行う場合、ローカルメモリの特定行に対応するアドレスから画素値を読み出し、レジスタに格納する。レジスタに格納した画素値を読み出し、ＡＬＵで演算を行い、演算結果をレジスタに格納する。レジスタに格納した演算結果をローカルメモリの特定行に格納する。演算において、処理対象とする画素の周辺に位置する画素値が必要な場合は、ＰＥ間のデータ転送部を用いて必要な画素値を収集して演算を行う。【０００４】
また、特開２００４−３６２０８６号公報（特許文献３）には、システムが処理対象となる画像に最適なＰＥ数を持たない場合のプログラム効率を向上させるため、ＰＥの並列度に応じて自動的にＰＥ命令を繰り返し実行する機能を備えたＳＩＭＤ型並列処理システムが記載されている。この並列処理システムにおいては、プログラムによって指示される並列度情報とＳＩＭＤ演算器の並列度情報とから繰り返し実行回数を算出し、システムの持つＰＥ数に応じて必要となる回数のＰＥ命令の自動繰り返し実行を実現している。【０００５】
【特許文献１】特許２８３９０２６号公報（図１、段落０００８など）
【特許文献２】特開２００２−７３５９号公報（図１、段落００１４〜００１６など）
【特許文献３】特開２００４−３６２０８６号公報（段落００１１〜００２１、図１など）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来の並列画像処理システムでは、ＰＥ数が処理対象画像の幅方向画素数より少なく、各ＰＥに複数画素を割り当てて処理を行う場合のメモリ上における画素の配置、ＰＥ間にまたがったデータ取得の自動化について何ら考慮されていない。【０００７】
上記特許文献３に記載されたシステムでは、同一命令あるいは同一サブルーチンの繰り返し実行を行っているが、このような単純な繰り返し実行では隣接ＰＥとの通信を含む処理を自動化することはできない。近隣画素値を必要とするような処理を実現するためには、必要な近隣画素値が同一ＰＥ内あるいは隣接ＰＥ内のいずれに割り当てられているかに応じた特別な処理の追加が必要となり、プログラムコード量が増大してしまう。【０００８】
本発明の目的は、近隣画素値を必要とする処理の自動化を可能にする新規な並列画像処理システムおよびその制御方法を提供することにある。【０００９】
本発明の他の目的は、近隣画素値を必要とするような処理においても、処理対象画像の幅方向画素数と同一ＰＥ数を持つ１次元ＳＩＭＤ並列画像処理システムと同程度のプログラムコード量で画像全体に対する画像処理を実行できる画像処理システムの制御方法および装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、処理対象データ数より少ない個数の要素プロセッサを有し、各要素プロセッサが複数個の処理対象データを処理する並列画像処理システムの制御方法であり、要素プロセッサに割り当てた処理対象データ数に応じて命令を自動的に反復実行し、所定命令を反復実行する際、反復中のそれぞれの実行時に処理するデータに応じてオペコードを置き換え、置き換えられたオペコードによって要素プロセッサを制御することを特徴とする。【００１１】
本発明の一実施形態よれば、処理対象画像の幅方向画素数より少ない個数の要素プロセッサを有し、各要素プロセッサが複数個の画素を処理する１次元プロセッサアレイ構造からなる並列画像処理システムの制御方法であって、要素プロセッサに割り当てた画素数に応じて命令を自動的に反復実行し、隣接画素の画素値取得命令を反復実行する際、処理する画素の位置に応じてオペコードを隣接要素プロセッサからの画素値転送命令と自要素プロセッサ上の画素値取得命令の組み合わせに置き換え、置き換えられたオペコードによって前記要素プロセッサを制御することを特徴とする。【００１２】
さらに、各要素プロセッサに割り当てた画素数に合わせてレジスタ群を分割して利用し、反復実行時に利用するレジスタ群を切り替えるようにオペランドを書き換え、メモリアクセス命令の反復実行時に前記要素プロセッサに割り当てた画素数に合わせたオフセット値をアドレスに加算する、ことを特徴とする。【００１３】
本発明の一実施例による並列画像処理システムは、プログラムに従ってＰＥアレイを制御するコントローラ内に、プログラム中の各アドレスの命令を各ＰＥに割り当てられた画素数に応じて自動的に反復実行するための手段を有し、さらに、反復実行する命令中のオペランドを変換する手段と、反復実行する命令中のメモリアクセス時のアドレスを変換する手段と、反復実行時に各ＰＥに割り当てられた複数の画素中の画素位置に応じてオペコードを変換する手段とを有する。【００１４】
このような構成を採用し、プログラムに記述された１つの命令を各ＰＥに割り当てられた複数の処理対象画素に対して自動的に反復実行、オペコード変換することにより、近隣画素値を必要とする処理の自動化が可能となり、処理対象画像の幅方向画素数と同一ＰＥ数を持つ１次元ＳＩＭＤ並列画像処理システムと同程度のプログラムコード量で画像全体に対する画像処理を実行できる。
【発明の効果】
【００１５】
上述したように、本発明によれば、要素プロセッサに割り当てた処理対象データ数に応じて命令を自動的に反復実行し、所定命令を反復実行する際、反復中のそれぞれの実行時に処理するデータに応じてオペコードを置き換え、置き換えられたオペコードによって要素プロセッサを制御する。これによって、実行対象の画素位置に応じて異なる動作を行う必要がある周辺画素値の取得命令等において画素位置を考慮した命令変換を行うことができ、近隣画素値を必要とする処理の自動化を少ないプログラムコード量で実現することができる。【００１６】
また、処理対象画像の幅方向画素数より少ないＰＥ数を持つ１次元ＳＩＭＤ画像処理システムにおいて、コントローラ内に有する反復実行手段、オペランドを変換する手段およびメモリアドレスを変換する手段により、１画素に対する命令のプログラム記述のみで自動的に反復実行することができ、また、オペコードを変換することにより、近隣画素値を必要とする処理の自動化が可能となりプログラムコード量を増大せせることなく画像全体に対する画像処理を実行できる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態を図に基づいて詳細に説明する。【００１８】
１．システム構成
図１は本発明の一実施形態による並列画像処理システムの機能的構成を示すブロック図である。本実施形態による並列画像処理システムは、画像処理におけるそれぞれの命令動作を行うＰＥアレイ１と、プログラムによりＰＥアレイ１の動作を制御するコントローラ２と、実行すべき画像処理を記述したプログラムを格納するプログラムメモリ３とを含む。【００１９】
ＰＥアレイ１は多数のＰＥ１０が１次元に配列され接続された構成を有し、各ＰＥが同一プログラムを実行するＳＩＭＤ方式として構成されている。ただし、図１では煩雑にならないように隣接する３つのＰＥだけが図示されている。【００２０】
各ＰＥ１０は、ローカルメモリ１１、演算部１２およびレジスタ群１３を含む。ＰＥアレイ１に含まれるＰＥ１０の個数は処理対象画像の幅方向画素数の整数分の１であることが望ましい。各ＰＥ１０に同一数の画素を割り当てることができるためである。ただし、この整数分の１という条件を満たさない場合でも本発明は適用可能であり、同様の効果を得ることができる。【００２１】
コントローラ２はＰＥアレイ１の動作シーケンスを制御するユニットであり、命令フェッチ・デコード部２１および反復実行部２２を含む。反復実行部２２はコントローラ２が実行する命令に対して各ＰＥに割り当てられた処理対象画素数に応じて反復実行を行うためのユニットであり、オペランド変換部２２１、メモリアドレス変換部２２２、オペコード変換部２２３、反復実行カウンタ２２４、反復実行指定レジスタ２２５、および、処理対象画像高さレジスタ２２６を含む。【００２２】
反復実行カウンタ２２４は、反復実行部２２において反復実行指定レジスタ２２５の値で指定された回数の命令反復実行の際に用いるカウンタＣRである。反復実行指定レジスタ２２５は、命令の反復実行を行う際の反復回数ＮRを指定し保持するレジスタであり、ＰＥ数と処理対象画像の幅方向画素数との比によって必要となる反復回数、すなわち各ＰＥに割り当てられた処理対象画素数を指定する。処理対象画像高さレジスタ２２６は、処理対象とする画像の高さ方向の画素数ＮHを格納し保持するレジスタであり、この値はメモリアクセス命令の反復実行時に処理対象画像が格納されたアドレスのオフセット値算出に用いる。【００２３】
１．１）ＰＥアレイ
ＰＥアレイ１は、各ＰＥ１０に処理対象画像の画素を割り当て、各ＰＥで同一の命令を並列に動作させることにより画像処理動作を行う。ＰＥ１０は、処理対象画像中の割り当てられた画素値を格納、演算する要素プロセッサであり、通常のプロセッサの持つ命令実行機能を備え、コントローラ２からの制御信号により命令動作を行う。各ＰＥ１０はデータの受け渡しを行うために隣接するＰＥ１０と接続されている。【００２４】
ローカルメモリ１１は、各ＰＥ１０が個別に持つメモリであり、演算部１２と密接に接続され、処理対象画像中の各ＰＥに割り当てられた画素値を格納する他、処理途中の演算結果等を格納する。処理対象画像の各ＰＥに割り当てられたそれぞれの画素値を、処理対象画像の高さ方向画素数分のオフセットを持つアドレスにそれぞれ格納する。この時のアドレスオフセット値、すなわち処理対象画像の高さ方向画素数をＯｍとする。例えば、ＰＥに割り当てられた画素値は、左端の画素値をアドレスＡに格納するとした場合、Ａ、Ａ＋Ｏｍ、Ａ＋２×Ｏｍ、Ａ＋３×Ｏｍのアドレスにそれぞれ格納される。【００２５】
演算部１２は、レジスタ群１３の読み出し／書き込み命令、ローカルメモリ１１に対する読み出し／書き込み命令、算術演算命令、論理演算命令等を実行するユニットであり、画像処理において、割り当てられた画素値に対する演算等を行う。【００２６】
レジスタ群１３は、各ＰＥ１０中の演算部１２が個別に持つ演算用レジスタであり、演算動作時に入力となる値、出力される演算結果を格納する。各レジスタにはＲ（０）からＲ（レジスタ本数−１）までのレジスタ番号を与える。各ＰＥ１０に対して割り当てられた複数画素を自動的に処理するため、含まれるレジスタ本数を割り当てた画素数で分割して利用する。例えば、各ＰＥ１０に対して２個の画素を割り当てた場合、レジスタ群１３の持つレジスタ本数を前半と後半の２つに分割して利用し、各ＰＥ１０に対して４個の画素を割り当てた場合にはレジスタ群１３の持つレジスタ本数を４分割して利用する。【００２７】
１．２）コントローラ
コントローラ２は、命令フェッチ・デコード部２１によってプログラムメモリ３に格納されたプログラムを逐次読み出し、解釈してＰＥアレイ１を制御することにより、画像処理を進める。【００２８】
命令フェッチ・デコード部２１は、プログラムメモリ３からプログラムを読み出し、オペコード、オペランドを解釈してＰＥアレイ１の制御を行う、コントローラ２の中核をなすユニットである。プログラムメモリ３から読み出したオペコード、オペランドを反復実行部２２に引き渡して反復実行の判断を行う。反復実行部２２が反復実行を行うと判断した場合には、指定回数の反復が完了するまで後続するプログラムの読み出しは停止される。反復実行部２２によって反復実行の各ステップに応じて書き換えられたオペコード、オペランドを用いてＰＥアレイ１を制御する。【００２９】
反復実行部２２は、命令フェッチ・デコード部２１より入力されたオペコードが反復実行対象となる命令であるかを判断し、対象命令であった場合には、反復実行カウンタ２２４を用いて反復実行指定レジスタ２２５に指定された回数ＮRの反復実行を行う。また、反復実行が終了するまでの間、命令フェッチ・デコード部２１に対して後続する命令のプログラムメモリからの読み出しを停止するよう指示する。反復実行を行う際は、反復実行指定レジスタ２２５に指定された回数ＮR、すなわち各ＰＥに割り当てられた処理対象画素数と、反復実行カウンタ２２４の値ＣRによって算出できる処理対象画素群中の画素位置に応じて、オペランド変換部２２１、メモリアドレス変換部２２２、オペコード変換部２２３によってオペランド、メモリアドレス、オペコードの変換を行う。【００３０】
１．３）オペランド変換部
オペランド変換部２２１は、反復実行時にレジスタ群１３中のレジスタ利用部分を処理対象画素位置に応じて切り替えるため、レジスタ番号の変換を行うユニットである。命令フェッチ・デコード部２１から入力されたオペコードによってオペランドの変換が必要な命令であるかを判断する。オペランド変換が必要な場合は、ＰＥアレイ１中のレジスタ群１３の持つレジスタ本数を反復実行指定レジスタ２２５に格納された反復実行回数ＮRによって分割し、分割した各レジスタ本数に反復実行カウンタ２２４に格納される０から（ＮR−１）までの値を乗算した値をレジスタ位置切り替えに用いるオフセット値として算出する。【００３１】
レジスタ本数が反復実行回数ＮRで分割しきれない場合には小数点以下を切り捨てた整数値を用い、これに反復実行カウンタ２２４の値ＣＲを乗算してオフセット値を算出する。算出したオフセット値を命令フェッチ・デコード部２１から入力されたオペランド（レジスタ番号）に加算することによりオペランド変換を行い、変換結果のオペランドを命令フェッチ・デコード部へ引き渡す。【００３２】
オフセット値を算出する手段としては除算器や乗算器を用いた構成、テーブルを用いた構成が考えられるが、ここではテーブルを用いてオフセット値を算出するように構成したオペランド変換部２２１を次に説明する。【００３３】
図２は本実施形態による並列画像処理システムにおけるオペランド変換部の構成を機能的に示したブロック図である。オペランド変換部２２１は、レジスタ番号の変換に用いるオフセット値を、反復実行指定レジスタ値ＮＲと反復実行カウンタ値ＣＲをキーとしてオフセット算出テーブルを用いて決定する。ここでは、反復実行指定レジスタ２２５の値ＮRによって指定される反復実行回数について、１回（反復実行を行わない）から４回までに対応するオフセット算出テーブル２２１．１を用意した。【００３４】
図２におけるオフセット算出テーブル２２１．１はレジスタ本数がＮ本であるものとして記載している。オペコードがオペランド変換対象命令であるか否かを判断し（２２１．６）、その結果により、入力レジスタ番号をそのまま出力するか、オフセット算出テーブル２２１．１により決定されたオフセット値を加算して（２２１．５）出力するかを選択する（２２１．７）。すなわち、オフセット値オペランド変換対象命令である場合には、入力レジスタ番号とオフセット算出テーブル２２１．１により決定されたオフセット値とを加算した結果を出力し、対象命令でない場合は入力レジスタ番号をそのまま出力する。【００３５】
また、オペランド変換部２２１は、オフセット算出テーブル２２１．１を参照する際の反復実行カウンタ値ＣＲを調整するカウンタ値調整部を有する。これは、隣接画素値の取得命令を反復実行する際に必要となるユニットである。隣接画素値の取得命令を反復実行する際には、反復実行カウンタ２２４の値ＣＲに応じて、必要とする隣接画素値を隣接ＰＥが保持して、隣接ＰＥから自ＰＥへの画素値転送を行う場合と、必要とする隣接画素値を自ＰＥが保持して、レジスタ番号をオフセットしたレジスタからの参照を行う場合との２通りの場合が存在する。この時、命令が左右どちら側の画素値を参照する命令であるか、転送元が隣接ＰＥであるか、自ＰＥであるかによって、入力オペランドに指定されたレジスタ番号をオフセットしてやることが必要となる。【００３６】
そこで、図２に示すように、オフセット算出テーブル２２１．１を参照する際に反復実行カウンタ値ＣRを差し替える。まずオペコードからカウンタ値ＣRの調整が必要か否かを判断し（２２１．２）、必要であればカウンタ値ＣRを調整し（２２１．３）、調整された結果を選択して（２２１．４）オフセット算出テーブル２２１．１を参照する。カウンタ値ＣRの調整が不要であれば、入力したカウンタ値ＣRを選択して（２２１．４）、オフセット算出テーブル２２１．１を参照する。【００３７】
１．４）メモリアドレス変換部
メモリアドレス変換部２２２は、メモリアクセス命令を反復実行する際にアクセスするアドレスを変換するためのユニットである。命令フェッチ・デコード部２１から入力されたオペコードがローカルメモリ１１の読み出し／書き込み命令であった場合、処理対象画像高さレジスタ２２６の値ＮHと反復実行カウンタ２２４の値ＣRとを乗算して得られる値を入力アドレスに加算するアドレス変換を行い、命令フェッチ・デコード部２１へ変換済みアドレスを引き渡す。【００３８】
１．５）オペコード変換部
オペコード変換部２２３は、反復実行に際して実行対象とする画素位置に応じて異なる動作を行う必要のある左右隣接画素値の取得命令を実行する際に、ＰＥアレイ１で実行するオペコードの変換を行うユニットである。命令フェッチ・デコード部２１から入力されたオペコードが左右隣接画素値の取得命令であった場合、反復実行カウンタ２２４および反復実行指定レジスタ２２５の値ＣRおよびＮRによって現在実行対象としている画素の各ＰＥに割り当てられた複数画素中における画素位置を算出し、取得すべき隣接画素値が自ＰＥのレジスタに保持されているか、隣接ＰＥのレジスタに保持されているかを判断し、自ＰＥレジスタからの読み出し、あるいは右側隣接ＰＥからのレジスタ値転送となるよう変換したオペコードを命令フェッチ・デコード部２１へ引き渡す。【００３９】
２．動作
図３は本実施形態による並列画像処理システムの全体的動作を示すフローチャートである。命令フェッチ・デコード部２１がプログラムメモリ３に格納されたプログラムから実行すべきアドレスのプログラムコードを読み出し、反復実行部２２に供給する（ステップＡ１）。反復実行部２２は供給されたプログラムコードのオペコードが反復実行対象命令であるか否かを判断する（ステップＡ２）。反復実行対象命令ではないと判断した場合には（ステップＡ２のＮＯ）、プログラムコードをそのまま命令フェッチ・デコード部２１に引き渡し、ＰＥアレイ１を制御し命令処理を行う（ステップＡ３、Ａ４）。【００４０】
オペコードが反復実行対象命令であると判断した場合には（ステップＡ２のＹＥＳ）、反復実行カウンタ２２４の値ＣRを０に初期化し（ステップＡ５）、オペランド変換部２２１、メモリアドレス変換部２２２およびオペコード変換部２２３にプログラムコードを引き渡す（ステップＡ６、Ａ７、Ａ８）。【００４１】
命令フェッチ・デコード部２１は、オペランド変換部２２１、メモリアドレス変換部２２２およびオペコード変換部２２３によって変換されたプログラムコードを受け取り（ステップＡ９）、これを解釈してＰＥアレイ１を制御し、各命令に応じた処理を行う（ステップＡ１０）。【００４２】
その後、反復実行カウンタ２２４の値ＣRを１だけインクリメントさせ（ステップＡ１１）、反復実行指定レジスタ２２５の値ＮRと比較を行う（ステップＡ１２）。反復実行カウンタ２２４の値ＣR＜反復実行指定レジスタ２２５の値ＮRであれば（ステップＡ１２のＮＯ）、ステップＡ６、Ａ７、Ａ８へ戻って反復実行を行う。反復実行カウンタ２２４の値ＣRが反復実行指定レジスタ２２５の値ＮRと等しくなった時点で（ステップＡ１２のＹＥＳ）、入力プログラムコードの１ステップに対して必要な回数の反復実行が終了したものとして、次のプログラムコードの処理へ進む。【００４３】
以下、オペランド変換部２２１、メモリアドレス変換部２２２およびオペコード変換部２２３がそれぞれ実行するステップＡ６、Ａ７およびＡ８について詳細に説明する。【００４４】
２．１）オペランド変換
図４は本実施形態による並列画像処理システムのオペランド変換動作を示すフローチャートである。オペランド変換部２２１は、命令フェッチ・デコード部２１から入力されたプログラムコード中に含まれる入力元、出力先となる各オペランドについて、オペコードとオペランド位置によって変換対象とすべきであるか否かを判断する（ステップＢ１）。オペランドが変換対象でない場合には（ステップＢ１のＮＯ）、変換を行わず入力されたレジスタ番号をそのまま出力する。【００４５】
オペランドが変換対象である場合には（ステップＢ１のＹＥＳ）、さらにオペコードが隣接画素値の取得命令であるかを判断する（ステップＢ２）。上述したように、隣接画素値の取得命令を反復実行する際には、反復実行カウンタ２２４の値ＣRに応じて、取得するべき隣接画素値を隣接ＰＥが保持しており隣接ＰＥから自ＰＥへの画素値転送を行う場合と、取得するべき隣接画素値を自ＰＥが保持しておりレジスタ番号をオフセットしたレジスタからの参照を行う場合と、の２通りの場合が存在する。この時、命令が左右どちら側の画素値を参照する命令であるか、転送元が隣接ＰＥであるか、自ＰＥであるかによって、入力オペランドに指定されたレジスタ番号をオフセットしてやることが必要となるため、オフセット算出テーブルを参照する際に反復実行カウンタ値ＣRを差し替える処理を行う必要がある。そこで、オペコードが隣接画素値の取得命令である場合には（ステップＢ２のＹＥＳ）、さらに、オペコードが左右どちら側の隣接画素値を取得する命令であるかを判断する（ステップＢ３）。【００４６】
オペコードが右側隣接画素値を取得する命令の場合、（反復実行カウンタ値ＣR）＜（反復実行指定レジスタ値ＮR−１）であれば自ＰＥの持つレジスタを参照することとなり、カウンタ値調整は行わない。（反復実行カウンタ値ＣR）＝（反復実行指定レジスタ値ＮR−１）であれば、右側隣接ＰＥの持つ左端の画素を保持しているレジスタを参照することとなり、この場合は入力された反復実行カウンタ値ＣRを０に調整（変換）する（ステップＢ４）。【００４７】
オペコードが左側隣接画素値を取得する命令の場合、（反復実行カウンタ値ＣR）＞０であれば自ＰＥの持つレジスタを参照することとなるためカウンタ値調整は行わない。（反復実行カウンタ値ＣR）＝０である場合には、左側隣接ＰＥの持つレジスタを参照することとなるが、左側隣接ＰＥが保持している画素のうち右端となるレジスタ値を参照することとなるため、入力された反復実行カウンタ値ＣRを（反復実行指定レジスタ値ＮR−１）に調整（変換）する（ステップＢ５）。【００４８】
その後、反復実行指定レジスタ２２５の値ＮRと、必要に応じて調整された反復実行カウンタ２２４の値ＣRとをキーとしてオフセット算出テーブル２２１．１を参照し、オペランドのオフセット値を決定する（ステップＢ６）。入力されたレジスタ番号にオフセット値を加算した結果をオペランド変換結果として出力する（ステップＢ７）。【００４９】
２．２）メモリアドレス変換
図５は本実施形態による並列画像処理システムのメモリアドレス変換動作を示すフローチャートである。メモリアドレス変換部２２２は、入力されたオペコードがメモリアドレス変換の対象となるメモリ読み出し命令／メモリ書き込み命令等であるかを判断する（ステップＣ１）。【００５０】
入力オペコードが変換対象命令である場合は（ステップＣ１のＹＥＳ）、処理対象画像高さレジスタ２２６の値ＮHに反復実行カウンタ２２４の値ＣRを乗じた値をメモリアドレスのオフセット値として算出する（ステップＣ２）。そして、入力メモリアドレスに算出したオフセット値を加えた値を変換済みメモリアドレスとして出力する（ステップＣ３）。入力オペコードが変換対象命令でない場合には（ステップＣ１のＮＯ）、変換を行わずそのままのアドレスを出力する。【００５１】
２．３）オペコード変換
図６は本実施形態による並列画像処理システムのオペコード変換動作を示すフローチャートである。オペコード変換部２２３は、命令フェッチ・デコード部２１から入力されたオペコードが変換対象となる左右隣接画素値の取得命令であるかを判断する（ステップＤ１）。【００５２】
入力オペコードが左右隣接画素値の取得命令である場合は（ステップＤ１のＹＥＳ）、オペコードが右側隣接画素値取得命令であるか、左側隣接画素取得命令であるかによってそれぞれ以下の動作を行う（ステップＤ２）。【００５３】
オペコードが右側隣接画素値を取得する命令の場合、反復実行カウンタ値ＣR＜（反復実行指定レジスタ値ＮR−１）であれば、自ＰＥの持つレジスタを参照するため、同一ＰＥ内でのレジスタ間移動命令を変換済みオペコードとして出力する。反復実行カウンタ値ＣR＝（反復実行指定レジスタ値ＮR−１）であれば右側隣接ＰＥの持つ左端の画素を保持しているレジスタを参照するため、入力オペコードである右側隣接ＰＥのレジスタ値を転送する命令をそのまま出力する（ステップＤ３）。【００５４】
オペコードが左側隣接画素値を取得する命令の場合、反復実行カウンタ値ＣR＞０であれば自ＰＥの持つレジスタを参照するため、同一ＰＥ内でのレジスタ間移動命令を変換済みオペコードとして出力する。反復実行カウンタ値ＣR＝０である場合には、左側隣接ＰＥの持つレジスタを参照するため、入力オペコードである左側隣接ＰＥのレジスタ値を転送する命令をそのまま出力する（ステップＤ４）。【００５５】
入力オペコードが左右隣接画素値の取得命令でない場合には（ステップＤ１のＮＯ）、オペコード変換は行わず、そのままのオペコードを命令フェッチ・デコード部２１へ出力する。【００５６】
３．効果
上述したように、本実施形態によれば、プログラムメモリ３から読み出されたプログラムコードの１命令に対して命令フェッチ・デコード部２１が解釈・実行を行う際、反復実行部２２によって複数命令に相当するＰＥアレイ制御を行う。したがって、各ＰＥに割り当てられた複数の画素に対する処理を１命令で記述でき、プログラムコード量が削減できる。【００５７】
また、反復実行部２２内にオペコード変換部２２３を備えることにより、隣接する左右画素値の受け渡しを必要とするような処理において、１つのＰＥに複数画素を割り当てた際に必要となる、隣接ＰＥ間での転送動作と、自ＰＥ内に保持している画素値を用いた動作という異なる命令が必要となる動作を１命令で一括して記述することができる。これによって、さらにプログラムコード量を削減でき、また、ＰＥ数の異なるＳＩＭＤ並列画像処理システム上での画像処理をプログラムの変更を行わずに実現することが容易となる。
【実施例】
【００５８】
次に、本発明の一実施例による並列画像処理システムの動作について説明する。ここでは、一例として、幅２５６画素×高さ２５６画素の処理対象画像に対して、その幅方向画素数の半分にあたる１２８個のＰＥが１次元配列されたＰＥアレイ１を有する並列画像システムを用いるものとする。【００５９】
図７は本発明の一実施例による並列画像処理システムを動作させるプログラムの一例を示す図である。この例では、各画素について右側に隣接する画素値との差の絶対値を求める処理を示している。本実施例では、各ＰＥは３６本のレジスタを持つものとする。ＰＥ数が処理対象画像の幅方向画素数の半数であるので、各ＰＥには２画素ずつの処理を割り当てることとなる。このため、反復実行指定レジスタ２２５には、プログラムの実行に先立って、ＮR＝２を格納し、レジスタ群１３をＲ（０）〜Ｒ（１７）と、Ｒ（１８）〜Ｒ（３５）との２群に分割して利用する。【００６０】
ローカルメモリ１１にはＭＥＭ１番地から処理対象画像が格納されている。本実施例においては各ＰＥに２画素ずつを割り当てて処理を行うため、それら２画素を高さ方向画素数にあたる２５６のオフセットを持つアドレスにそれぞれ格納する。ＰＥに割り当てられた画像のうち、左側の画素値がアドレスＭＥＭ１番地からアドレス（ＭＥＭ１＋２５５）番地に格納され、右側の画素値はオフセット値２５６を加えたアドレス（ＭＥＭ１＋２５６）番地からアドレス（ＭＥＭ１＋５１１）番地に格納される。このため、処理対象画像高さレジスタ２２６には処理対象画像の高さ方向画素数である２５６を格納しておく。処理結果画像はＭＥＭ２番地以降に格納する。【００６１】
以下に、本発明の並列画像処理システムの動作を図７に示したプログラムを一例として、図３のフローチャートも参照しながら説明する。【００６２】
まず、命令フェッチ・デコード部２１がプログラムメモリ３から１行目のプログラムコード（ＬＤ  ＭＥＭ１，Ｒ（０））を読み出し、反復実行部２２に引き渡す（図３のステップＡ１）。１行目のプログラムコードの動作内容は、ローカルメモリ１１のアドレスＭＥＭ１に格納されている値を読み出し、レジスタＲ（０）に格納するというものである。反復実行部２２は、プログラムコードのオペコード部分がメモリ読み出し命令（ＬＤ）であるため、反復実行対象命令と判断して反復実行カウンタ２２４を０に設定する（ステップＡ５）。【００６３】
次に、プログラムコードをオペランド変換部２２１、メモリアドレス変換部２２２、オペコード変換部２２３に引き渡す。オペランド変換部２２１は、反復実行指定レジスタ２２５および反復実行カウンタ２２４の値ＮRおよびＣRを参照し、オフセット算出テーブル２２１．１からオフセット値として０を得る。これを入力されたレジスタ番号０に加算した結果である０を、変換済みレジスタ番号として命令フェッチ・デコード部２１へ引き渡す（ステップＡ６）。メモリアドレス変換部２２２は、反復実行カウンタ２２４の値ＣRを参照し、これが０であるため変換を行わず、メモリアドレスＭＥＭ１を命令フェッチ・デコード部２１へ引き渡す（ステップＡ７）。オペコード変換部２２３は、入力オペコードがメモリ読み出し命令（ＬＤ）であり、オペコード変換の必要な左右隣接画素値の取得命令ではないため、オペコード変換を行わず、入力オペコードをそのまま命令フェッチ・デコード部２１へ引き渡す（ステップＡ８）。命令フェッチ・デコード部２１は、反復実行部２２から入力されたオペコード、メモリアドレス、オペランドに基づいてＰＥアレイ１を動作させ、ローカルメモリ１１のアドレスＭＥＭ１の内容がレジスタＲ（０）に格納される（ステップＡ９、Ａ１０）。【００６４】
続いて、反復実行部２２は、反復実行カウンタ２２４の値ＣRを１だけ増加させて１に設定する（ステップＡ１１）。その後、反復実行カウンタ２２４の値ＣR＝１と反復実行指定レジスタ２２５の値ＮR＝２とを比較し、これらは同一値ではないため、必要な回数の反復実行を終えていないと判断してオペランド変換部２２１、メモリアドレス変換部２２２、オペコード変換部２２３の実行に戻る（ステップＡ１２）。【００６５】
オペランド変換部２２１は、反復実行指定レジスタ２２５および反復実行カウンタ２２４の値ＮRおよびＣRを参照し、オフセット算出テーブル２２１．１からオフセット値として１８を得る。これを入力されたレジスタ番号０に加算した結果である１８を、変換済みレジスタ番号として命令フェッチ・デコード部２１へ引き渡す（ステップＡ６）。メモリアドレス変換部２２２は、反復実行カウンタ２２４の値ＣRが１であるため、メモリアドレスＭＥＭ１に対してオフセット２５６を加えたアドレス（ＭＥＭ１＋２５６）を命令フェッチ・デコード部２１へ引き渡す（ステップＡ７）。オペコード変換部２２３は、入力オペコードがメモリ読み出し命令（ＬＤ）であり、オペコード変換の必要な左右隣接画素値の取得命令ではないため、オペコード変換を行わず、入力オペコードをそのまま命令フェッチ・デコード部２１へ引き渡す（ステップＡ８）。命令フェッチ・デコード部２１は、反復実行部２２から入力されたオペコード、メモリアドレス、オペランドに基づいてＰＥアレイ１を動作させ、ローカルメモリ１１のアドレス（ＭＥＭ１＋２５６）番地の内容がレジスタＲ（１８）に格納される（ステップＡ９、Ａ１０）。【００６６】
反復実行部２２は、反復実行カウンタ２２４の値ＣRを１だけ増加させて２に設定する（ステップＡ１１）。その後、反復実行カウンタ２２４の値ＣRを反復実行指定レジスタ２２５に指定された値ＮRと比較し、これが同一値であるため、必要な反復実行が終了したと判断して１行目のプログラムコードに対応する処理を終了し、次の命令処理に移る（ステップＡ１２）。【００６７】
次に、命令フェッチ・デコード部２１がプログラムメモリ３から２行目のプログラムコード（ＭＶＬ  Ｒ（０），Ｒ（１））を読み出し、反復実行部２２に引き渡す（ステップＡ１）。２行目のプログラムコードの動作内容は、右側画素に対応するレジスタＲ（０）の値をレジスタＲ（１）に格納するというものである。１個のＰＥに対して１画素を割り当てたシステムであれば右側隣接ＰＥのレジスタＲ（０）に格納された値を自ＰＥへ転送し、レジスタＲ（１）に格納するという動作となるが、本実施例では１個のＰＥに対して２画素を割り当てているため、右側画素は常に右側隣接ＰＥが保持しているのではなく、ＰＥに割り当てられた処理対象画素のうち、左側画素に対する右側画素の値はＰＥ内の別レジスタに格納されていることとなる。このため、右側画素値の取得動作は、処理対象画素に応じて自ＰＥ内でのレジスタ値を読み出す、あるいは右側隣接ＰＥのレジスタＲ（０）を自ＰＥへ転送するという２種類の動作に分かれる。反復実行部２２は、オペコードが右側隣接画素値の転送命令であるため、反復実行対象命令と判断して反復実行カウンタ２２４の値を０に設定した後、オペランド変換部２２１、オペコード変換部２２３を動作させる（ステップＡ２、Ａ５）。【００６８】
オペランド変換部２２１は、プログラムコードに指定された入力元レジスタ、出力先レジスタのそれぞれについてオペランド変換処理を行う（ステップＡ６）。入力されたオペコードが右側隣接画素値の取得命令（ＭＶＬ）であるため、入力元レジスタと出力先レジスタのそれぞれで異なるオペランド操作を行う。入力元レジスタについては、反復実行指定レジスタ２２５および反復実行カウンタ２２４の値ＮRおよびＣRを参照し、オフセット算出テーブル２２１．１を用いてオフセット値として１８を得る。これを入力されたレジスタ番号０に加算した結果である１８を、変換済み入力元レジスタ番号として命令フェッチ・デコード部２１へ引き渡す。出力先レジスタについては、オフセット算出テーブルを参照する際の反復実行カウンタ値ＣRを０に調整してオフセット算出を行って得られるオフセット値である“０”を、入力されたレジスタ番号１に加算した結果である“１”を、変換済み出力先レジスタ番号として命令フェッチ・デコード部２１へ引き渡す。【００６９】
オペコード変換部２２３は、右側隣接画素値の取得命令（ＭＶＬ）はオペコード変換の必要な命令であると判断し、反復実行カウンタ２２４の値ＣRが（反復実行指定レジスタ２２５の値ＮR−１）と等しくないため、同一ＰＥ内でのレジスタ間移動命令に変換し、命令フェッチ・デコード部２１に引き渡す（ステップＡ８）。命令フェッチ・デコード部２１がＰＥアレイ１を動作させ、レジスタＲ（１８）の内容がレジスタＲ（１）に格納される（ステップＡ９、Ａ１０）。【００７０】
反復実行部２２は、反復実行カウンタ２２４の値ＣRを１だけ増加させて１に設定する（ステップＡ１１）。その後、反復実行カウンタ２２４の値ＣR＝１と反復実行指定レジスタ２２５の値ＮR＝２とを比較し、これらは同一値ではないため、必要な反復実行を終えていないと判断してオペランド変換部２２１、オペコード変換部２２３の実行に戻る（ステップＡ１２）。【００７１】
オペランド変換部２２１は、オペコードが右側隣接画素値の転送命令（ＭＶＬ）であり、反復実行カウンタ２２４の値ＣRが（反復実行指定レジスタ２２５の値ＮR−１）に等しいため、右側ＰＥのレジスタＲ（０）の内容を転送する動作となるように変換を行う。このため、入力元レジスタについては、オフセット算出テーブル２２１．１を参照する際の反復実行カウンタ値ＣRを０に調整してオフセット算出を行って得られるオフセット値で
ある０を、入力された入力元レジスタ番号０に加算した結果である０を、変換済み入力元レジスタ番号として命令フェッチ・デコード部２１へ引き渡す。出力先レジスタについては１行目の場合と同様の変換を行い、反復実行指定レジスタ２２５および反復実行カウンタ２２４の値ＮRおよびＣRによりオフセット算出テーブル２２１．１を用いて得たオフセット値“１８”を、入力された出力先レジスタ番号１に加算した結果である“１９”を、変換済み出力先レジスタとして命令フェッチ・デコード部２１へ引き渡す（ステップＡ６）。【００７２】
オペコード変換部２２３は、入力オペコードはオペコード変換の対象となる命令であるが、反復実行カウンタ２２４の値ＣRが（反復実行指定レジスタ２２５の値ＮR−１）に等しいため、変換を行わず、命令フェッチ・デコード部２１へ引き渡す（ステップＡ８）。命令フェッチ・デコード部２１がＰＥアレイ１を動作させ、右側ＰＥのレジスタＲ（０）の内容がレジスタＲ（１９）に格納される（ステップＡ９、Ａ１０）。【００７３】
反復実行部２２は、反復実行カウンタ２２４の値ＣRを１だけ増加させて２に設定する（ステップＡ１１）。この値は反復実行指定レジスタ２２５に指定された値ＮRと同一であるため、必要な反復実行が終了したと判断して、２行目のプログラムコードに対応する処理を終了し、次の命令処理に移る（ステップＡ１２）。【００７４】
命令フェッチ・デコード部２１がプログラムメモリ３から３行目のプログラムコード（ＡＢＳ  Ｒ（０），Ｒ（１），Ｒ（２））を読み出し、反復実行部２２に引き渡す。３行目のプログラムコードの動作内容は、レジスタＲ（０）とレジスタＲ（１）の差の絶対値を算出し、演算結果をレジスタＲ（２）に格納するというものである。反復実行部２２は、入力元指定、出力先指定それぞれのオペランドについて１行目の場合と同様の変換を行って反復動作し、命令フェッチ・デコード部２１がＰＥアレイ１を動作させた結果、レジスタＲ（０）とレジスタＲ（１）の差の絶対値がレジスタＲ（２）に、レジスタＲ（１８）とレジスタＲ（１９）の差の絶対値がレジスタＲ（２０）に格納され、次の命令処理に移る。【００７５】
命令フェッチ・デコード部２１が４行目のプログラムコード（ＳＴ  ＭＥＭ２，Ｒ（２））を読み出し、反復実行部２２に引き渡す。４行目のプログラムコードの動作内容は、レジスタＲ（２）に格納されている値を読み出し、ローカルメモリ１１のアドレスＭＥＭ２に書き込むというものである。反復実行部２２で１行目の場合と同様のメモリアドレス、オペランドの変換が行われ、命令フェッチ・デコード部２１がＰＥアレイ１を動作させ、レジスタＲ（２）の値がローカルメモリ１１のアドレスＭＥＭ２番地に、レジスタＲ（２０）の値がローカルメモリ１１のアドレス（ＭＥＭ２＋２５６）番地に格納される。【００７６】
このように、本実施例では、プログラムメモリ３から読み出されるプログラムコードの１命令に対して、反復実行部２２によって２命令に相当するＰＥアレイ制御が行われるため、プログラムコード量を削減することができる。また、オペコード変換部２２３により反復実行時の一部サイクルで別命令を実行することができるため、同一命令の反復実行では対応できない隣接画素との受け渡し処理においても自動的な反復実行による動作が可能となり、さらにプログラムコード量を削減することができる。【００７７】
なお、本実施例では処理対象画像の幅方向画素数とＰＥ数の比が２：１となる例であったが、この比に限定されるものではなく、３：１、４：１、…、Ｎ：１と、処理対象画像の幅方向画素数がシステムの有するＰＥ数より多い場合に適用が可能である。
【産業上の利用可能性】
【００７８】
本発明によれば、ビデオ画像、センサ画像等を入力とする画像処理装置、画像検査装置、画像認識装置といった用途に適用できる。
【図面の簡単な説明】
【００７９】
【図１】本発明の一実施形態による並列画像処理システムの機能的構成を示すブロック図である。
【図２】本実施形態による並列画像処理システムにおけるオペランド変換部の構成を機能的に示したブロック図である。
【図３】本実施形態による並列画像処理システムの全体的動作を示すフローチャートである。
【図４】本実施形態による並列画像処理システムのオペランド変換動作を示すフローチャートである。
【図５】本実施形態による並列画像処理システムのメモリアドレス変換動作を示すフローチャートである。
【図６】本実施形態による並列画像処理システムのオペコード変換動作を示すフロー    チャートである。
【図７】本発明の一実施例による並列画像処理システムを動作させるプログラムの一例を示す図である。
【符号の説明】
【００８０】
１        ＰＥアレイ
２        コントローラ
３        プログラムメモリ
１０      ＰＥ
１１      ローカルメモリ
１２      演算部
１３      レジスタ
２１      命令フェッチ・デコード部
２２      反復命令実行部
２２１    オペランド変換部
２２２    メモリアドレス変換部
２２３    オペコード変換部
２２４    反復実行カウンタ
２２５    反復実行指定レジスタ
２２６    処理対象画像高さレジスタ
【図１】
2007116560.tif 000003
【図２】
2007116560.tif 000004
【図３】
2007116560.tif 000005
【図４】
2007116560.tif 000006
【図５】
2007116560.tif 000007
【図６】
2007116560.tif 000008
【図７】
2007116560.tif 000009
【国際調査報告】
2007116560.tif 000010
2007116560.tif 000011