(57)【特許請求の範囲】
【請求項１】
主制御部と、
処理すべきデータが格納されたデータ記憶部と、
前記主制御部からの、少なくともアフィン変換と極座標変換を含む複数の演算の中から実行すべき演算として指定された演算種別とこの演算種別で用いるパラメータを指定しての実行開始命令に応じて、指定された種別の演算を実行後の２次元空間中の出力データの座標位置（ｘ，ｙ）に対応する当該演算に必要な１組の入力データの２次元空間中の各座標位置（ｕ，ｖ）を算定する入力データアドレス算定部と，この入力データアドレス算定部が算定した１組の入力データの各座標位置（ｕ，ｖ）に対応して格納されている前記データ記憶部内のデータを前記１組の入力データとして取り込み、この取り込んだ１組の入力データに対して前記指定された種別の演算に応じた重み係数を乗じた後、各々を加算することで前記指定された種別の演算を行う演算実行部とを有する２次元演算部とを備え、
前記入力データアドレス算定部は、
前記指定される演算の種別毎に設けられる、前記出力データの座標位置（ｘ，ｙ）の入れ換えを行う座標入換部と，この座標入換部によって入れ換えられた出力データの座標位置（ｘ，ｙ）を前記入力データの２次元空間中の対応する座標位置（ｐ，ｑ）に変換する２次元座標変換部とを少なくとも含む固有の構成と、前記指定される演算の種別に拘わらず１つの構成として設けられる、前記２次元座標変換部によって変換された座標位置（ｐ，ｑ）の近隣の画素の座標位置を前記１組の入力データの各座標位置（ｕ，ｖ）として算出する近隣画素アクセス部と，この近隣画素アクセス部によって算出された１組の入力データの各座標位置（ｕ，ｖ）をその座標位置に対応する前記データ記憶部上のアドレスに変換するアドレス変換部とを少なくとも含む共通の構成とからなり、
前記演算実行部は、
前記指定される演算の種別に拘わらず１つの構成として設けられる、前記データ記憶部から取り込まれた前記１組の入力データに対して所定のフォーマット変換を行うフォーマット変換部と，このフォーマット変換部によってフォーマット変換された１組の入力データに対して前記指定された種別の演算に応じた重み係数を乗じる乗算器と，この乗算器によって重み係数が乗じられた１組の入力データの各々を加算する積算器とを少なくとも含む共通の構成からなる
ことを特徴とする演算処理装置。
【請求項２】
主制御部と、
処理すべきデータが格納された第１のデータ記憶部と、
処理すべきデータが格納される第２および第３のデータ記憶部と、
前記主制御部からの制御により、前記第２および第３のデータ記憶部から処理すべきデータを互い違いに読み出し、この読み出したデータに対して主演算を行い、その演算結果のデータを読み出し元のデータ記憶部に書き込む主演算部と、
前記主制御部からの、少なくともアフィン変換と極座標変換を含む複数の演算の中から実行すべき演算として指定された演算種別とこの演算種別で用いるパラメータを指定しての実行開始命令に応じて、指定された種別の演算を実行後の２次元空間中の出力データの座標位置（ｘ，ｙ）に対応する当該演算に必要な１組の入力データの２次元空間中の各座標位置（ｕ，ｖ）を算定する入力データアドレス算定部と，この入力データアドレス算定部が算定した１組の入力データの各座標位置（ｕ，ｖ）に対応して格納されている前記データ記憶部内のデータを前記１組の入力データとして取り込み、この取り込んだ１組の入力データに対して前記指定された種別の演算に応じた重み係数を乗じた後、各々を加算することで前記指定された種別の演算を行う演算実行部とを有する２次元演算部と、
前記主演算部と前記第２のデータ記憶部との間での主演算と並行して、前記第３のデータ記憶部に書き込まれている前記主演算部の演算結果のデータを前記第１のデータ記憶部に書き込み、さらに前記２次元演算部からの演算結果のデータを前記第３のデータ記憶部に書き込む機能と、前記主演算部と前記第３のデータ記憶部との間での主演算と並行して、前記第２のデータ記憶部に書き込まれている前記主演算部の演算結果のデータを前記第１のデータ記憶部に書き込み、さらに前記２次元演算部からの演算結果のデータを前記第２のデータ記憶部に書き込む機能とを有する関数制御部とを備え、
前記入力データアドレス算定部は、
前記指定される演算の種別毎に設けられる、前記出力データの座標位置（ｘ，ｙ）の入れ換えを行う座標入換部と，この座標入換部によって入れ換えられた出力データの座標位置（ｘ，ｙ）を前記入力データの２次元空間中の対応する座標位置（ｐ，ｑ）に変換する２次元座標変換部とを少なくとも含む固有の構成と、前記指定される演算の種別に拘わらず１つの構成として設けられる、前記２次元座標変換部によって変換された座標位置（ｐ，ｑ）の近隣の画素の座標位置を前記１組の入力データの各座標位置（ｕ，ｖ）として算出する近隣画素アクセス部と，この近隣画素アクセス部によって算出された１組の入力データの各座標位置（ｕ，ｖ）をその座標位置に対応する前記データ記憶部上のアドレスに変換するアドレス変換部とを少なくとも含む共通の構成とからなり、
前記演算実行部は、
前記指定される演算の種別に拘わらず１つの構成として設けられる、前記データ記憶部から取り込まれた前記１組の入力データに対して所定のフォーマット変換を行うフォーマット変換部と，このフォーマット変換部によってフォーマット変換された１組の入力データに対して前記指定された種別の演算に応じた重み係数を乗じる乗算器と，この乗算器によって重み係数が乗じられた１組の入力データの各々を加算する積算器とを少なくとも含む共通の構成からなる
ことを特徴とする演算処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、画像処理などに用いて好適な演算処理装置に関するものである。
【０００２】
【従来の技術】
本出願人が開発を進めている画像処理装置では、２次元空間データ（複数の入力データ）から結果として１データ（１画素）を出力する演算処理を行う２次元演算（アフィン変換や極座標変換等）と、ＦＦＴ（高速フーリエ変換），ＤＣＴ（離散コサイン変換）などの画像処理上の中核をなす主演算とを行っている。アフィン変換などの２次元演算では２次元空間データ（複数の入力データ）から結果として１データ（１画素）を出力する演算処理を行う。
【０００３】
なお、アフィン変換とは、画像データ（画素）に対して移動，回転，拡大，縮小等の幾何学的変換を行うことで、例えばパターン照合において、登録パターンと照合パターンとの間に位置ずれや回転ずれやスケールの違い（拡大／縮小）が生じていると照合が困難になるので、位置ずれや回転ずれやスケールの違いを取り除くために、登録パターン、照合パターンの何れか一方に対して画像データを幾何学的に操作する場合に必要となる。
【０００４】
本出願人が先に提案した特開２０００−２２２３８４号公報に示された演算処理装置では、主演算部において、主演算に入る前に、アフィン変換や極座標変換等の２次元演算を主制御部からの指示を逐次受けて行っている（ソフト的に行っている）。しかし、この方法では、主演算部が主制御部からの指示を逐次受けて２次元演算を行うために、時間がかかり、高速化を促進することができない。
【０００５】
そこで、主演算部から２次元演算を切り離し、主演算部の前段に専用の２次元演算部をハード構成として設けることが考えられる。図８はこの画像処理装置の要部を示すブロック図である。同図において、１は処理すべき多数の画像データが格納されたデータ記憶部、２（２−１〜２−Ｎ）はアフィン変換や極座標変換等の２次元演算を行う２次元演算部、３はＦＦＴ，ＤＣＴなどの主演算を行う主演算部、４はスイッチ部である。この例において、主演算部３では、ＦＦＴ処理を行うものとする。また、２次元演算部２−１ではアフィン変換、２次元演算部２−Ｎでは極座標変換の処理を行うものとする。
【０００６】
この画像処理装置において、ＦＦＴ処理の前にアフィン変換を施したい場合、スイッチ４を２次元演算部２−１側とする。これにより、データ記憶部１から画像データが読み出され、２次元演算部２−１でアフィン変換が施され、データ記憶部１に戻される。データ記憶部１に戻された画像データは主演算部３へ送られ、ＦＦＴ処理が施されて、データ記憶部１に戻される。同様にして、ＦＦＴ処理の前に極座標変換を施したい場合、スイッチ４を２次元演算部２−Ｎ側とする。
【０００７】
【発明が解決しようとする課題】
しかしながら、この画像処理装置では、必要な種類だけ２次元演算部２を設けなければならず、回路規模が増大するという問題があった。
【０００８】
本発明はこのような課題を解決するためになされたもので、その目的とするところは、回路規模を小さくすることのできる演算処理装置を提供することにある。
【０００９】
【課題を解決するための手段】
このような目的を達成するために、第１発明（請求項１に係る発明）は、主制御部と、処理すべきデータが格納されたデータ記憶部と、主制御部からの、少なくともアフィン変換と極座標変換を含む複数の演算の中から実行すべき演算として指定された演算種別とこの演算種別で用いるパラメータを指定しての実行開始命令に応じて、指定された種別の演算を実行後の２次元空間中の出力データの座標位置（ｘ，ｙ）に対応する当該演算に必要な１組の入力データの２次元空間中の各座標位置（ｕ，ｖ）を算定する入力データアドレス算定部と，この入力データアドレス算定部が算定した１組の入力データの各座標位置（ｕ，ｖ）に対応して格納されているデータ記憶部内のデータを１組の入力データとして取り込み、この取り込んだ１組の入力データに対して指定された種別の演算に応じた重み係数を乗じた後、各々を加算することで指定された種別の演算を行う演算実行部とを有する２次元演算部とを設けたものであり、入力データアドレス算定部は、指定される演算の種別毎に設けられる、出力データの座標位置（ｘ，ｙ）の入れ換えを行う座標入換部と，この座標入換部によって入れ換えられた出力データの座標位置（ｘ，ｙ）を入力データの２次元空間中の対応する座標位置（ｐ，ｑ）に変換する２次元座標変換部とを少なくとも含む固有の構成と、指定される演算の種別に拘わらず１つの構成として設けられる、２次元座標変換部によって変換された座標位置（ｐ，ｑ）の近隣の画素の座標位置を１組の入力データの各座標位置（ｕ，ｖ）として算出する近隣画素アクセス部と，この近隣画素アクセス部によって算出された１組の入力データの各座標位置（ｕ，ｖ）をその座標位置に対応するデータ記憶部上のアドレスに変換するアドレス変換部とを少なくとも含む共通の構成とからなり、演算実行部は、指定される演算の種別に拘わらず１つの構成として設けられる、データ記憶部から取り込まれた１組の入力データに対して所定のフォーマット変換を行うフォーマット変換部と，このフォーマット変換部によってフォーマット変換された１組の入力データに対して指定された種別の演算に応じた重み係数を乗じる乗算器と，この乗算器によって重み係数が乗じられた１組の入力データの各々を加算する積算器とを少なくとも含む共通の構成からなることを特徴とする。
この発明によれば、主制御部から演算種別とこの演算種別で用いるパラメータを指定して実行開始命令が与えられると、２次元演算部は、指定された種別の演算に必要な１組の入力データの２次元空間中の各座標位置（ｕ，ｖ）を算定し、この算定した各座標位置（ｕ，ｖ）に対応する各アドレスに格納されているデータ記憶部内のデータを１組の入力データとして取り込み、この取り込んだ１組の入力データに対して指定された種別の演算を行う。
【００１０】
例えば、主制御部から演算種別としてアフィン変換とそのアフィン変換で用いるパラメータ（例えば、演算関数のパラメータ、１組の入力データを構成するデータの個数、２次元空間上の入力データの相互の位置関係など）が指定されると、２次元演算部はアフィン変換部として機能し、データ記憶部内から取り込んだ１組の入力データに対してアフィン変換を行う。
主制御部から演算種別として極座標変換とその極座標変換で用いるパラメータ（例えば、演算関数のパラメータ、１組の入力データを構成するデータの個数、２次元空間上の入力データの相互の位置関係など）が指定されると、２次元演算部は極座標変換部として機能し、データ記憶部内から取り込んだ１組の入力データに対して極座標変換を行う。
【００１１】
このように、本発明では、１つの２次元演算部が、主制御部からの演算種別とこの演算種別で用いるパラメータの指定に応じ、アフィン変換部や極座標変換部など色々な２次元演算部として機能する。各種の２次元演算において、必要な１組の入力データのデータ記憶部内の各アドレスを算定する処理、算定した各アドレスに格納されているデータ記憶部内のデータを１組の入力データとして取り込む処理、取り込んだ１組の入力データに対して行う指定された種別の演算のうち乗算や積算などの基本的な演算処理は共通している。すなわち、本発明の２次元演算部は、各種の２次元演算に対して共通な構成と各種２次元演算に固有な構成とを含むものとして構成される。
【００１２】
第２発明（請求項２に係る発明）は、主制御部と、処理すべきデータが格納された第１のデータ記憶部と、処理すべきデータが格納される第２および第３のデータ記憶部と、主制御部からの制御により、第２および第３のデータ記憶部から処理すべきデータを互い違いに読み出し、この読み出したデータに対して主演算を行い、その演算結果のデータを読み出し元のデータ記憶部に書き込む主演算部と、主制御部からの、少なくともアフィン変換と極座標変換を含む複数の演算の中から実行すべき演算として指定された演算種別とこの演算種別で用いるパラメータを指定しての実行開始命令に応じて、指定された種別の演算を実行後の２次元空間中の出力データの座標位置（ｘ，ｙ）に対応する当該演算に必要な１組の入力データの２次元空間中の各座標位置（ｕ，ｖ）を算定する入力データアドレス算定部と，この入力データアドレス算定部が算定した１組の入力データの各座標位置（ｕ，ｖ）に対応して格納されているデータ記憶部内のデータを１組の入力データとして取り込み、この取り込んだ１組の入力データに対して指定された種別の演算に応じた重み係数を乗じた後、各々を加算することで指定された種別の演算を行う演算実行部とを有する２次元演算部と、主演算部と第２のデータ記憶部との間での主演算と並行して、第３のデータ記憶部に書き込まれている主演算部の演算結果のデータを第１のデータ記憶部に書き込み、さらに２次元演算部からの演算結果のデータを第３のデータ記憶部に書き込む機能と、主演算部と第３のデータ記憶部との間での主演算と並行して、第２のデータ記憶部に書き込まれている主演算部の演算結果のデータを第１のデータ記憶部に書き込み、さらに２次元演算部からの演算結果のデータを第２のデータ記憶部に書き込む機能とを有する関数制御部とを設けたものであり、入力データアドレス算定部は、指定される演算の種別毎に設けられる、出力データの座標位置（ｘ，ｙ）の入れ換えを行う座標入換部と，この座標入換部によって入れ換えられた出力データの座標位置（ｘ，ｙ）を入力データの２次元空間中の対応する座標位置（ｐ，ｑ）に変換する２次元座標変換部とを少なくとも含む固有の構成と、指定される演算の種別に拘わらず１つの構成として設けられる、２次元座標変換部によって変換された座標位置（ｐ，ｑ）の近隣の画素の座標位置を１組の入力データの各座標位置（ｕ，ｖ）として算出する近隣画素アクセス部と，この近隣画素アクセス部によって算出された１組の入力データの各座標位置（ｕ，ｖ）をその座標位置に対応するデータ記憶部上のアドレスに変換するアドレス変換部とを少なくとも含む共通の構成とからなり、演算実行部は、指定される演算の種別に拘わらず１つの構成として設けられる、データ記憶部から取り込まれた１組の入力データに対して所定のフォーマット変換を行うフォーマット変換部と，このフォーマット変換部によってフォーマット変換された１組の入力データに対して指定された種別の演算に応じた重み係数を乗じる乗算器と，この乗算器によって重み係数が乗じられた１組の入力データの各々を加算する積算器とを少なくとも含む共通の構成からなることを特徴とする。
【００１３】
この発明において、２次元演算部は、主制御部から演算種別とこの演算種別で用いるパラメータを指定して実行開始命令が与えられると、指定された種別の演算に必要な１組の入力データの２次元空間中の各座標位置（ｕ，ｖ）を算定し、この算定した各座標位置（ｕ，ｖ）に対応する各アドレスに格納されている第１のデータ記憶部内のデータを１組の入力データとして取り込み、この取り込んだ１組の入力データに対して指定された種別の演算を行う。すなわち、第２発明でも第１発明と同様に、１つの２次元演算部が、主制御部からの演算種別とパラメータの指定に応じ、アフィン変換部や極座標変換部など色々な２次元演算部に変わり、各種の２次元演算に対して共通の構成と固有の構成とを含むものとして構成される。
【００１４】
また、この発明では、主演算部と第２のデータ記憶部との間での主演算と並行して、第３のデータ記憶部から第１のデータ記憶部への演算結果のデータ（主演算結果のデータ）の書き込み、第１のデータ記憶部から２次元演算部を介する第３のデータ記憶部への演算結果のデータ（前処理完了データ）の書き込みが行われ、また、主演算部と第３のデータ記憶部との間での主演算と並行して、第２のデータ記憶部から第１のデータ記憶部への演算結果のデータ（主演算結果のデータ）の書き込み、第１のデータ記憶部から２次元演算部を介する第２のデータ記憶部への演算結果のデータ（前処理完了データ）の書き込みが行われ、見かけ上、主演算時間を零とすることが可能となる。
【００１５】
【発明の実施の形態】
以下、本発明を図面に基づいて詳細に説明する。図１はこの発明に係る演算処理装置の一実施の形態の要部を示すブロック図である。同図において、５は主制御部、６はＦＦＴ処理を行う主演算部、７は第１のデータ記憶部（以下、ローカルメモリと呼ぶ）、８は第２のデータ記憶部（以下、第１の内部メモリと呼ぶ）、９は第３のデータ記憶部（以下、第２の内部メモリと呼ぶ）、１０は２次元演算部、１１は１次元演算部、１２は関数制御部である。
【００１６】
ローカルメモリ７には処理すべき多数の画像データが格納されている。ローカルメモリ７としては、データの読み出しと書き込みとの短時間の切り替えに際して比較的待ち時間が生じる安価な大容量のメモリを使用している。第１の内部メモリ８および第２の内部メモリ９としては、データの読み出しと書き込みとの短時間の切り替えに際して殆ど待ち時間の生じない高性能の小容量メモリを使用している。
【００１７】
主演算部６は、大容量のローカルメモリ７に対してではなく、小容量の内部メモリ８と９に対してアクセス可能に設けられている。主演算部６は、主制御部５からの制御により、第１の内部メモリ８および第２の内部メモリ９から処理すべきデータを互い違いに読み出し、この読み出したデータに対して主演算（ＦＦＴ処理）を行い、その演算結果のデータを読み出し元の内部メモリに書き込む。
【００１８】
１次元演算部１１は１個の入力データ（１画素）に対して所定の演算を行う１入力１出力のパイプラインド関数演算部１３−１〜３−Ｎで構成されている。主制御部５とパイプラインド関数演算部１３−１〜１３−Ｎとの間には関数制御部１２が設けられている。主制御部５は、関数制御部１２に対し、一次元演算部１１での演算処理に関し、実行すべきパイプラインド関数演算部（パイプラインド関数演算群）およびその実行順序を指定する。
【００１９】
関数制御部１２は、基本的にはマルチプレクサで構成されており、主制御部５によって選択された１次元演算部１１におけるパイプラインド関数演算群のパイプラインド関数演算部を指定された実行順序に従って縦続接続させ、その処理データの受け渡しを制御する。
【００２０】
また、関数制御部１２は、主演算部６と第１の内部メモリ８との間でのＦＦＴ処理と並行して、第２の内部メモリ９に書き込まれている主演算部６の演算結果のデータに更に１次元演算部１１において演算処理（後処理）が施されたデータのローカルメモリ７への書き込みと、２次元演算部１０からの演算結果のデータ（第１の前処理が施されたデータ）に更に１次元演算部１１において演算処理（第２の前処理）が施されたデータの第２の内部メモリ９への書き込みを行う。
【００２１】
また、関数制御部１２は、主演算部６と第２の内部メモリ９との間でのＦＦＴ処理と並行して、第１の内部メモリ８に書き込まれている主演算部６の演算結果のデータに更に１次元演算部１１において演算処理（後処理）が施されたデータのローカルメモリ７への書き込みと、２次元演算部１０からの演算結果のデータ（第１の前処理が施されたデータ）に更に１次元演算部１１において演算処理（第２の前処理）が施されたデータの第１の内部メモリ８への書き込みを行う。
【００２２】
パイプラインド関数演算部１３（１３−１〜１３−Ｎ）は、現在演算中の入力データの演算処理（例えば、加減算・乗算・シフト・論理演算などの１次元演算）を終了する前に新たな入力データの演算処理を開始することが可能な関数演算部であり、１番目の処理対象データを入力後、その演算処理結果がまだ出力されていなくても（１データの関数演算に必要な時間が経過していなくても）、すぐ次のサイクルに２番目の処理対象データの入力が可能である。また、このパイプラインド関数演算部１３には、ある関数で演算が完了後、次の関数への受け渡しが可能なようにハンドシェーク信号を出力するようなインターフェイスを構成しておく。
【００２３】
２次元演算部１０は、主制御部５からの演算種別とパラメータを指定しての実行開始命令に応じて、指定された種別の演算に必要な１組の入力データのローカルメモリ７内の各アドレスを算定し、この算定した各アドレスに格納されているローカルメモリ７内のデータを関数制御部１２を介して１組の入力データとして取り込み、この取り込んだ１組の入力データに対して指定された種別の演算を行う機能を有している。また、２次元演算部１０は、１組の入力データの演算処理を終了する前に新たな１組の入力データの演算処理を開始することが可能なパイプライン構造とされている。
【００２４】
図２に２次元演算部１０の内部構成の概略を示す。２次元演算部１０は、２次元カウンタ１０Ａと座標入換部１０Ｂと２次元座標変換部１０Ｃと近隣画素アクセス部１０Ｄとアドレス変換部１０Ｅとから構成される入力データアドレス算定部１０−１と、フォーマット変換部１０Ｆと乗算器１０Ｇと積算器１０Ｈとから構成される演算実行部１０−２とを有している。座標入換部１０Ｂと２次元座標変換部１０Ｃとは複数種類の２次元演算毎に設けられており、主制御部５からの指定によりこれらのうちの１つが選択的に動作する。２次元演算部１０における各部の機能については後述する。
【００２５】
この画像処理装置では次のようにしてＦＦＴ処理が行われる。主制御部５は、主演算部６でのＦＦＴ処理の前に、ローカルメモリ７に格納されている処理すべきデータに対して２次元演算部１０および１次元演算部１１を利用して前処理を行わせる。この場合、主制御部５は、先ず２次元演算部１０において第１の前処理（２次元演算）を行わせ、続いて１次元演算部１１において第２の前処理（１次元演算）を行わせる。
【００２６】
〔第１の前処理：２次元演算〕
主制御部５は、２次元演算部１０へ、演算種別とパラメータを指定して実行開始命令を与える。例えば、演算種別としてアフィン変換を指定する場合、パラメータとして、演算関数のパラメータ、１組の入力データを構成するデータの個数（４個）、２次元空間上の入力データの相互の位置関係などを指定する。以下、２次元演算部１０において、２次元演算としてアフィン変換を行う場合を例にとって、第１の前処理について説明する。
【００２７】
画像データは一定の間隔をおいた画素の値（画素データ：濃度、輝度）とその画素の２次元空間での位置のデータ（アドレス）である。アフィン変換によって、変換後の２次元空間の画素のアドレスに移る点が変換前の何れかの画素のアドレスと対応するならば、対応する変換前の画素の値を変換後の画素の値としてそのまま引き継げばよいが、そうでない場合は、変換前の画素と画素との間に位置することになるので、その位置の近隣の４点の画素の値に距離に応じた重み付けを掛け、これらを加算した値を変換後の画素の値とする。この手法を内挿法といい、このような画素の間のアドレスの値を求めることを補完という。このような内挿法は、アフィン変換だけではなく、極座標変換などでも用いられる。
【００２８】
図３に内挿法を用いたアフィン変換の具体例を示す。図３（ａ）は変換する前の入力画像、図３（ｂ）は変換後の出力画像であり、入力画像は（ｕ，ｖ）座標で示され、出力画像は（ｘ，ｙ）座標で示されている。また、この例では、簡単な例として、アフィン変換によって入力画像を平行移動し、出力画像とするものとする。
【００２９】
この例において、出力画像のＡ点の座標位置（０，０）は、入力画像のＡ点の座標位置（ｐ，ｑ）に対応している。入力画像のＡ（ｐ，ｑ）点には該当する画素データがない。そこで、近隣の画素４点（Ａ１，Ａ２，Ａ３，Ａ４）の各画素の値にＡ（ｐ，ｑ）点からの距離に応じた重みをかけた値の和を出力画像のＡ（０，０）点の画素の値として求める。出力画像のＡ（０，０）点の画素の値をＡ、入力画像のＡ１，Ａ２，Ａ３，Ａ４の点の画素の値をＡ１，Ａ２，Ａ３，Ａ４とした場合、下記の（１）式で出力画像のＡ（０，０）点の画素の値Ａを求める。
Ａ＝Ａ１・（１−ｐ）・（１−ｑ）＋Ａ２・ｐ・（１−ｑ）＋Ａ３・（１−ｐ）・ｑ＋Ａ４・ｐ・ｑ  ・・・・（１）
【００３０】
図４に２次元演算部１０における各処理工程のタイミングチャートを示す。図４（ａ）はクロック信号であり、このクロック信号に同期して各工程での処理が進められる。主制御部５から演算種別とパラメータを指定しての実行開始命令が与えられると（図４（ｂ）のｔ１点）、指定された種別の演算の設定を行うために１サイクル待ってから、２次元カウンタ１０Ａの動作が開始される（図４（ｃ）のｔ２点）。これがアフィン変換の実質的なスタートとなる。
【００３１】
２次元カウンタ１０Ａは、４サイクルカウントする毎に、そのカウント値をアップする。また、２次元カウンタ１０Ａの動作が開始してから１サイクル遅れて、座標入換部１０Ｂにおいて座標の入れ換えを行う（図４（ｄ）のｔ３点）。この座標入れ換えには１サイクルを割り当てている。
【００３２】
次に、この座標入換後、２次元座標変換部１０Ｃにおいて２次元座標変換を行う（図４（ｅ）のｔ４点）。なお、座標入換部１０Ｂにおいて座標入換を行わない場合でも、ｔ３点から１サイクル待って２次元座標変換を行う。２次元座標変換部１０Ｃでの２次元座標変換により、第１番目の基準画素の座標である出力画像のＡ点の座標位置（０，０）が入力画像のＡ点の座標位置（ｐ，ｑ）に変換される。
【００３３】
２次元カウンタ１０Ａでのカウント、座標入換部１０Ｂでの座標の入れ換え、２次元座標変換部１０Ｃでの２次元座標変換については、基準画素につき４サイクル分時間を確保する。２次元座標変換は演算に２サイクルかかるので、２サイクル後に、近隣画素アクセス部１０Ｄによる近隣画素のアクセスを行う（図４（ｇ）のｔ６点）。この近隣画素のアクセスは１サイクルにつき１個ずつ行う。これにより、入力画像のＡ点の座標位置（ｐ，ｑ）の近隣の画素Ａ１，Ａ２，Ａ３，Ａ４の座標が１サイクル毎に求められる（図４（ｇ）のｔ６，ｔ７，ｔ８，ｔ９点）。
【００３４】
そして、アドレス変換部１０Ｅにおいて、近隣画素アクセス部１０Ｄからの近隣の画素Ａ１，Ａ２，Ａ３，Ａ４の座標を、その座標に対応するローカルメモリ７上のアドレスＡ１’，Ａ２’，Ａ３’，Ａ４’に変換する（図４（ｈ）のｔ７，ｔ８，ｔ９，ｔ１０点）。すなわち、２次元表現のアドレスを１次元のアドレス空間に変換する。
【００３５】
このようにして、入力画像のＡ点の座標位置（ｐ，ｑ）の近隣の画素Ａ１，Ａ２，Ａ３，Ａ４のローカルメモリ７上のアドレスＡ１’，Ａ２’，Ａ３’，Ａ４’が求められると、２次元演算部１０は関数制御部１２を介してローカルメモリ７にアクセスし、そのアドレスＡ１’，Ａ２’，Ａ３’，Ａ４’に格納されている画素データＡ１ＤＡ，Ａ２ＤＡ，Ａ３ＤＡ，Ａ４ＤＡをアフィン変換に必要な１組の入力データとして取り込む（図４（ｊ）のｔ１０，ｔ１１，ｔ１２，ｔ１３点）。
【００３６】
なお、この例では、アドレスＡ１’，Ａ２’，Ａ３’，Ａ４’を求めた後、３サイクルのリードレイテンシが経過する毎に、画素データＡ１ＤＡ，Ａ２ＤＡ，Ａ３ＤＡ，Ａ４ＤＡを取り込む。このリードレイテンシは、ローカルメモリ７の特性で決められ、２次元演算とは直接関係ない。
【００３７】
ローカルメモリ７から取り込まれた画素データＡ１ＤＡ，Ａ２ＤＡ，Ａ３ＤＡ，Ａ４ＤＡは、フォーマット変換部１０Ｆに与えられ、メモリのビット幅から演算ビット幅に調整するフォーマット変換が行われる。フォーマット変換された画素データＡ１ＤＦ，Ａ２ＤＦ，Ａ３ＤＦ，Ａ４ＤＦは１ビットずつ遅れて得られる（図４（ｋ）のｔ１１，ｔ１２，ｔ１３，ｔ１４点）。
【００３８】
フォーマット変換部１０Ｆはフォーマット変換した画素データＡ１ＤＦ，Ａ２ＤＦ，Ａ３ＤＦ，Ａ４ＤＦを乗算器１０Ｇに送る。乗算器１０Ｇは、画素データＡ１ＤＦ，Ａ２ＤＦ，Ａ３ＤＦ，Ａ４ＤＦに対し、近隣画素アクセス部１０Ｄで求められた入力画像のＡ点の座標位置（ｐ，ｑ）のｐおよびｑを重み係数とし、画素データＡ１ＤＦ，Ａ２ＤＦ，Ａ３ＤＦ，Ａ４ＤＦに対して重み付け処理を施す。
【００３９】
この場合、前記（１）式に従って、画素データＡ１ＤＦに（１−ｐ）・（１−ｑ）を乗じて乗算値Ａ１ＤＭを求め、画素データＡ２ＤＦにｐ・（１−ｑ）を乗じて乗算値Ａ２ＤＭを求め、画素データＡ３ＤＦに（１−ｐ）・ｑを乗じて乗算値Ａ３ＤＭを求め、画素データＡ３ＤＦにｐ・ｑを乗じて乗算値Ａ４ＤＭを求める。乗算には２サイクルかかるので、乗算値Ａ１ＤＭ，Ａ２ＤＭ，Ａ３ＤＭ，Ａ４ＤＭは、フォーマット変換から２サイクル後に得られる（図４（ｌ）のｔ１３，ｔ１４，ｔ１５，ｔ１６点）。
【００４０】
乗算器１０Ｇは乗算値Ａ１ＤＭ，Ａ２ＤＭ，Ａ３ＤＭ，Ａ４ＤＭを積算器１０Ｈに送る。積算器１０Ｈは乗算値Ａ１ＤＭ，Ａ２ＤＭ，Ａ３ＤＭ，Ａ４ＤＭを加算して行き、Ａ１ＳＭ，Ａ２ＳＭ，Ａ３ＳＭ，Ａ４ＳＭとする（図４（ｍ）のｔ１４，ｔ１５，ｔ１６，ｔ１７点）。これにより、１組の入力でデータを構成するデータ数分のサイクル（この例では、４サイクル）後に、最終的なアフィン変換結果としてＡ−ＲＥＳＵＬＴが得られる（図４（ｎ）のｔ１８点）。アフィン変換をスタートしてからここまで１６サイクルかかる。
【００４１】
２次元演算部１０は１組の入力データの演算処理を終了する前に新たな１組の入力データの演算処理を開始することが可能なパイプライン構造とされている。このパイプライン構造により、２次元演算部１０は、アフィン変換結果としてＡ−ＲＥＳＵＬＴが得られた後ではなく、すなわちアフィン変換を開始してから１６サイクル経過した後ではなく、２次元カウンタ１０Ａのカウント値がアップされる毎（４サイクル経過する毎）に、次のアフィン変換を開始する。
【００４２】
これにより、図５（ａ）に示すように、アフィン変換を開始してから１６サイクル経過後に第１番目の基準画素であるＡ点の座標位置（０，０）のＡ−ＲＥＳＵＬＴ（アフィン変換結果(１)）が得られると、４サイクル経過後に第２番目の基準画素であるＢ点の座標位置（１，０）のＢ−ＲＥＳＵＬＴ（アフィン変換結果(２)）が得られるものとなり、以下同様にして、４サイクル経過する毎に次々に基準画素座標におけるアフィン変換結果が得られるようになる。
【００４３】
図５（ｂ）に２次元演算部１０がパイプライン構造とされていない場合のアフィン変換結果が得られる様子を示す。アフィン変換を開始してから１個目のアフィン演算結果が得られるのにかかる時間はパイプライン構造とされている場合といない場合とでの差はない。しかし、２個目以降は、パイプライン構造とされている場合は４サイクル毎に得られるのに対し、パイプライン構造とされていない場合は１６サイクル毎に得られるものとなる。この図からも、パイプライン構造とすることによって、２次元演算部１０での処理スピードが格段に速くなることが分かる。
【００４４】
なお、上述した例では、２次元演算部１０において第１の前処理としてアフィン変換を行わせるものとしたが、２次元演算部１０へ演算種別とパラメータを指定して実行開始命令を与えることにより、極座標変換を行わせたりすることも可能である。このように、本実施の形態では、１つの２次元演算部１０が、主制御部５からの演算種別とパラメータの指定に応じ、アフィン変換部や極座標変換部など色々な２次元演算部に変わる。
【００４５】
各種の２次元演算において、必要な１組の入力データのメモリ内の各アドレスを算定する処理、算定した各アドレスに格納されているメモリ内のデータを１組の入力データとして取り込む処理、取り込んだ１組の入力データに対して行う指定された種別の演算のうち乗算や積算などの演算処理は共通している。すなわち、２次元演算部１０において、近隣画素アクセス部１０Ｄやアドレス変換部１０Ｅ，フォーマット変換部１０Ｆ，乗算器１０Ｇ，積算器１０Ｈは各種の２次元演算において共通している。一方、座標入換部１０Ｂ，２次元座標変換部１０Ｃは、主制御部５から指定される演算種別に応じた固有のものが選択される。このように、２次元演算部１０は、各種の２次元演算に対して共通の構成と固有の構成とを含んだ構成とされており、共通の部分が大きく、必要な種類だけ２次元演算部を設ける構成に対し、回路規模を小さくすることができる。
【００４６】
〔第２の前処理：１次元演算〕
主制御部５は、ＦＦＴ処理に先立って、関数制御部１２に対して、１次元演算部１１におけるパイプラインド関数演算部１３−１〜１３Ｎの中から前処理に際して実行すべきパイプラインド関数演算部を第１のパイプラインド関数演算群として選択のうえ、その実行順序を指定する。また、１次元演算部１１におけるパイプラインド関数演算部１３−１〜１３Ｎの中から後処理に際して実行すべきパイプラインド関数演算部を第２のパイプラインド関数演算群として選択のうえ、その実行順序を指定する。
【００４７】
関数制御部１２は、主制御部５によって指定された実行順序に従って、１次元演算部１１における第１のパイプラインド関数演算群のパイプラインド関数演算部を縦続接続させ、２次元演算部１０からのアフィン変換結果を次々に第１のパイプラインド関数演算群に投入する。この第１のパイプラインド関数演算群に投入されたアフィン変換結果は、縦続接続されたパイプラインド関数演算部により順次演算処理される。例えば、１次元演算として、輝度を上げるための乗算処理、ノイズを除去するための減算処理が行われる。
【００４８】
〔ＦＦＴ処理〕
２次元演算部１０からのアフィン変換結果(１)は、１次元演算部１１を通り、第１番目の前処理完了データとして第１の内部メモリ８に書き込まれる。以下、同様にして、２次元演算部１０で得られたアフィン変換結果(２)〜(８)が１次元演算部１１を次々に通り、第２〜第８番目の前処理完了データとして第１の内部メモリ８に書き込まれて行く（図６（ａ）参照）。
【００４９】
第１の内部メモリ８に前処理完了データが８個たまると、主制御部５からの制御により、主演算部６は第１の内部メモリ８から前処理完了データを次々に読み出し、この読み出した前処理完了データに対してＦＦＴ処理を行い、そのＦＦＴ処理の結果のデータを読み出し元の第１の内部メモリ８に書き込む（図６（ｂ）参照）。
【００５０】
この主演算部６が第１の内部メモリ８との間でＦＦＴ処理を行っている間に、関数制御部１２は、２次元演算部１０からの１次元演算部１１を介する演算処理結果のデータ（第９〜第１６番目の前処理完了データ）を第２の内部メモリ９に書き込んで行く（図６（ｂ）参照）。
【００５１】
第１の内部メモリ８との間でのＦＦＴ処理が終了し、かつ第２の内部メモリ９に前処理完了データが８個たまると、主制御部５からの制御により、主演算部６は第２の内部メモリ９から前処理完了データを次々に読み出し、この読み出した前処理完了データに対してＦＦＴ処理を行い、そのＦＦＴ処理の結果のデータを読み出し元の第２の内部メモリ９に書き込む（図７（ａ）参照）。
【００５２】
〔後処理〕
主演算部６が第２の内部メモリ９との間でＦＦＴ処理を行っている間に、関数制御部１２は、主制御部５によって指定された実行順序に従って、１次元演算部１１における第２のパイプラインド関数演算群のパイプラインド関数演算部を縦続接続させ、第１の内部メモリ８に書き込まれている主演算部８のＦＦＴ処理の結果のデータを次々に第２のパイプラインド関数演算群に投入する。この第２のパイプラインド関数演算群に投入されたＦＦＴ処理の結果のデータは、縦続接続されたパイプラインド関数演算部により順次演算処理され、後処理完了データとしてローカルメモリ７に書き込まれて行く（図７（ａ）参照）。なお、この場合の後処理としては、例えば正規化するための除算処理を行う。
【００５３】
そして、このローカルメモリ７への後処理完了データの書き込みを終えた後、関数制御部１２は、主制御部５によって指定された実行順序に従って、１次元演算部１１における第１のパイプラインド関数演算群のパイプラインド関数演算部を縦続接続させ、２次元演算部１０からのアフィン変換結果を次々に第１のパイプラインド関数演算群に投入する。そして、これにより得られる１次元演算部１１からの演算処理結果のデータ（第１７〜第２４番目の前処理完了データ）を第１の内部メモリ８に書き込んで行く（図７（ａ）参照）。
【００５４】
第２の内部メモリ９との間でのＦＦＴ処理が終了し、かつ第１の内部メモリ８に前処理完了データが８個たまると、主制御部５からの制御により、主演算部６は第１の内部メモリ８から前処理完了データを次々に読み出し、この読み出した前処理完了データに対してＦＦＴ処理を行い、そのＦＦＴ処理の結果を読み出し元の第１の内部メモリ８に書き込む（図７（ｂ）参照）。
【００５５】
主演算部６が第１の内部メモリ８との間でＦＦＴ処理を行っている間に、関数制御部１２は、主制御部５によって指定された実行順序に従って、１次元演算部１１における第２のパイプラインド関数演算群のパイプラインド関数演算部を縦続接続させ、第２の内部メモリ９に書き込まれている主演算部８のＦＦＴ処理の結果のデータを次々に第２のパイプラインド関数演算群に投入する。この第２のパイプラインド関数演算群に投入されたＦＦＴ処理の結果のデータは、縦続接続されたパイプラインド関数演算部により順次演算処理され、後処理完了データとしてローカルメモリ７に書き込まれて行く（図７（ｂ）参照）。
【００５６】
そして、このローカルメモリ７への後処理完了データの書き込みを終えた後、関数制御部１２は、主制御部５によって指定された実行順序に従って、１次元演算部１１における第１のパイプラインド関数演算群のパイプラインド関数演算部を縦続接続させ、２次元演算部１０からのアフィン変換結果を次々に第１のパイプラインド関数演算群に投入する。そして、これにより得られる１次元演算部１１からの演算処理結果のデータ（第２５〜第３２番目の前処理完了データ）を第２の内部メモリ９に書き込んで行く（図７（ｂ）参照）。
【００５７】
以下、同様にして、図７（ａ），（ｂ）の処理を交互に行い、２次元演算部１０および１次元演算部１１を用いての前処理、主演算部６でのＦＦＴ処理、１次元演算部１１を用いての後処理を繰り返すことによって、ローカルメモリ７に格納されている全ての処理すべきデータに対して前処理（２次元演算＋１次元演算）→ＦＦＴ処理→後処理（１次元演算）を施す。
【００５８】
この実施の形態では、図７（ａ）に示されるように、主演算部６と第２の内部メモリ９との間でのＦＦＴ処理と並行して、第１の内部メモリ８に書き込まれている主演算部６のＦＦＴ処理の結果のデータに更に１次元演算部１１において演算処理（後処理）が施されたデータのローカルメモリ７への書き込みと、２次元演算部１０からのアフィン変換結果（第１の前処理が施されたデータ）に更に１次元演算部１１において演算処理が施されたデータ（第２の前処理が施されたデータ）の第１の内部メモリ８への書き込みが行われる。
【００５９】
また、図７（ｂ）に示されるように、主演算部６と第１の内部メモリ８との間でのＦＦＴ処理と並行して、第２の内部メモリ９に書き込まれている主演算部６のＦＦＴ処理の結果のデータに更に１次元演算部１１において演算処理（後処理）が施されたデータのローカルメモリ７への書き込みと、２次元演算部１０からのアフィン変換結果（第１の前処理が施されたデータ）に更に１次元演算部１１において演算処理が施されたデータ（第２の前処理が施されたデータ）の第２の内部メモリ９への書き込みが行われる。
【００６０】
前処理時間（２次元演算，１次元演算、データ転送時間を含む）をＴpre 、後処理時間（１次元演算、データ転送時間を含む）をＴpost、ＦＦＴ処理時間をＴmainとした場合、Ｔmain＝Ｔpre ＋Ｔpostとできるとすると、前処理と後処理を行っている間にＦＦＴ処理が行われていることになり、見かけ上、ＦＦＴ処理時間を零とすることができる。逆に、ＦＦＴ処理を行っている間に前処理と後処理が行われていることになり、見かけ上、前処理と後処理の時間を零とすることができる。これにより、全演算処理に要する時間が短縮されるようになり、処理スピードが格段に速くなる。
【００６１】
なお、必ずしもＴmain＝Ｔpre ＋Ｔpostとしなくてもよく、Ｔmain≧（Ｔpre ＋Ｔpost）であってもよく、またＴmain≦（Ｔpre ＋Ｔpost）であってもよい。要は、ＦＦＴ処理と「前処理と後処理」とが並行して行われていればよく、ＦＦＴ処理と「前処理と後処理」とを並行して行わせるとによって、全演算処理に要する時間を短縮することができるようになる。因に、本願発明と従来技術との各演算処理装置の処理時間を比較するために、Ｔmain（ＦＦＴ処理）＝１．５７３ｍsec 、Ｔpre （アフィン変換のみ）＝３．４３７ｍsec と設定したところ、従来技術では全処理時間が５．０１５ｍsec （＝Ｔmain＋Ｔpre ）であるのに対して、本願発明では全処理時間が３．４３７ｍsec （＝Ｔpre ）となって、見かけ上、ＦＦＴ処理時間が零となった。
【００６２】
なお、この実施の形態では、ローカルメモリ７において、データの読み出しと書き込みとの切り替えが頻繁に繰り返されるように思われるが、「前処理のデータ転送時間＋後処理のデータ転送時間」＜主演算時間とすれば、ローカルメモリ７でのデータの読み出しと書き込みとを短時間で切り替える必要はなく、ローカルメモリ７としてデータの読み出しと書き込みとの短時間の切り替えに際して比較的待ち時間が生じる安価な大容量メモリを使用することができる。
【００６３】
また、この実施の形態では、第１の内部メモリ８（第２の内部メモリ９）は主演算部６でのＦＦＴ処理のためにデータの読み出しと書き込みとを短時間で切り替える場合でも殆ど待ち時間の生じない高性能のメモリを必要とするが、第１の内部メモリ８および第２の内部メモリ９に格納された前処理完了データは主演算部６によってＦＦＴ処理が施された後、ＦＦＴ完了データとして第１の内部メモリ８および第２の内部メモリ９に格納されるものの、すぐに関数制御部１２によって読み出され１次元演算部１１に投入入されるので、第１の内部メモリ８および第２の内部メモリ９のメモリ容量は小容量でよい。
【００６４】
また、この実施の形態では、説明を簡単とするためにパイプラインド関数演算部１３−１〜１３−Ｎは１入力１出力としたが、一部の関数は２入力１出力、３入力１出力などとすることができる（例えば、２画像の差分を算出するような関数）。この場合、第１のパイプラインド関数演算群や第２のパイプラインド関数演算群において、その先頭のパイプラインド関数演算部のみを複数入力１出力とする。複数入力１出力とした場合、他の入力を待つ必要があるので、投入待ち時間Ｘは、入力数をｍとした場合、ＭＡＸ（Ｘｍ）となる。
【００６５】
また、この実施の形態では、１次元演算部１１によって第２の前処理や後処理を行わせるようにしたが、これらの処理は必須ではない。すなわち、基本的には、前処理（２次元演算＋１次元演算）→ＦＦＴ処理→後処理（１次元演算）を施すが、場合によっては、前処理（２次元演算＋１次元演算）→ＦＦＴ処理とする場合もあるし、前処理（２次元演算）→ＦＦＴ処理→後処理とする場合もあるし、前処理（２次元演算）→ＦＦＴ処理とする場合もある。
【００６６】
また、この実施の形態では、２次元演算部１０をパイプライン構造としたが、必ずしもパイプライン構造としなくてもよい。パイプライン構造とすることにより、２次元演算部１０において、１組の入力データの演算処理を終了する前に新たな１組の入力データの演算処理が開始され、２次元演算部１０での処理時間より遙かに小さい投入待ち時間でもって、２次元演算部１０へ次々に新たな１組の入力データを投入することができる。したがって、パイプライン構造としない場合と比べて、処理時間を遙かに速くすることができる。
【００６７】
また、この実施の形態では、画像処理装置への適用例として説明したが、本発明は画像処理に限られるものではなく、各種の演算処理に適用可能である。
【００６８】
【発明の効果】
以上説明したことから明らかなように本発明によれば、１つの２次元演算部が、主制御部からの演算種別とパラメータの指定に応じ、アフィン変換部や極座標変換部など色々な２次元演算部に変わり、２次元演算部を各種の２次元演算に対して共通の構成と固有の構成とを含んだ構成とし、共通の部分を大きくすることができることから、必要な種類だけ２次元演算部を設ける構成に対し、演算処理スピードを落とすことなく、回路規模を小さくすることができるようになる。
【００６９】
また、本発明によれば、主演算部と第２のデータ記憶部との間での主演算と並行して、第３のデータ記憶部から第１のデータ記憶部への演算結果のデータの書き込み、第１のデータ記憶部から２次元演算部を介する第３のデータ記憶部への演算結果のデータの書き込みが行われ、また、主演算部と第３のデータ記憶部との間での主演算と並行して、第２のデータ記憶部から第１のデータ記憶部への演算結果のデータの書き込み、第１のデータ記憶部から２次元演算部を介する第２のデータ記憶部への演算結果のデータの書き込みが行われ、見かけ上、主演算時間を零とすることが可能となり、全演算処理に要する時間を短縮することができるようになる。
【図面の簡単な説明】
【図１】  本発明に係る演算処理装置の一実施の形態の要部を示すブロック図である。
【図２】  この演算処理装置に用いる２次元演算部の内部構成の概略を示すブロック図である。
【図３】  内挿法を用いたアフィン変換の具体例を説明する図である。
【図４】  ２次元演算部における各処理工程のタイミングチャートである。
【図５】  ２次元演算部からのアフィン変換結果の出力タイミングをパイプライン構造とした場合と非パイプライン構造とした場合とで比較する図である。
【図６】  この演算処理装置における処理動作を説明する図である。
【図７】  この演算処理装置における処理動作を図６に続いて説明する図である。
【図８】  従来の演算処理装置の要部を示すブロック図である。
【符号の説明】
５…主制御部、６…主演算部、７…第１のデータ記憶部（ローカルメモリ）、８…第２のデータ記憶部（第１の内部メモリ）、９…第３のデータ記憶部（第２の内部メモリ）、１０…２次元演算部、１０Ａ…２次元カウンタ、１０Ｂ…座標入換部、１０Ｃ…２次元座標変換部、１０Ｄ…近隣画素アクセス部、１０Ｅ…アドレス変換部、１０Ｆ…フォーマット変換部、１０Ｇ…乗算器、１０Ｈ…積算器、１０−１…入力データアドレス算定部、１０−２…演算実行部、１１…１次元演算部、１２…関数制御部、１３（１３−１〜１３−Ｎ）…パイプラインド関数演算部。
【図１】
0004514086.tif 000002
【図２】
0004514086.tif 000003
【図３】
0004514086.tif 000004
【図４】
0004514086.tif 000005
【図５】
0004514086.tif 000006
【図６】
0004514086.tif 000007
【図７】
0004514086.tif 000008
【図８】
0004514086.tif 000009