(57)【特許請求の範囲】
【請求項１】
２次元的に形成される所定の仮想最小２次元メモリ空間を、縦横方向に配列した所定の２次元メモリ空間を想定し、
前記仮想最小２次元メモリ空間の各アドレスを、前記仮想最小２次元メモリ空間との関係で決まるｎ個の物理的なメモリの所定の各アドレスに予め割り当てておき、
前記２次元メモリ空間上において画像上の画素配列と対応した画素データの配列で画像データが格納される状態に、前記ｎ個の物理的なメモリに前記画像データの画素データを記憶し、
前記画像データの各ブロックを対象としたブロックマッチングにおいて前記２次元メモリ空間上のデータを読み出すときには、前記仮想最小２次元メモリ空間上の読み出しアドレスを指定するとともに、その指定された読み出しアドレスを基準に、前記仮想最小２次元メモリ空間上で縦横１アドレスおきを示すパターンを指定すると、その両指定に応じて、前記仮想最小２次元メモリ空間上の縦横１アドレスおきの画素データを、前記ｎ個の各メモリの対応するアドレスからそれぞれ読み出して、読み出した画素データを基にブロックマッチングを行うとともに、前記基準とする読み出しアドレスを縦あるいは横にずらして新たな縦横１アドレスおきの画素データを読み出しつつブロックマッチングを行う処理を繰り返して、前記仮想最小２次元メモリ空間に含まれる全画素データについてブロックマッチングを行っていき、
処理対象とするブロックにおける各画素データの累積残差が、既にブロックマッチングが行われたブロックにおける累積残差の最小値を基に定められる閾値を超えた時点で、ブロックマッチングを行っているブロックの処理を中止するようにしたことを特徴とするメモリの使用方法。
【請求項２】
２次元的に形成される所定の仮想最小２次元メモリ空間を、縦横方向に配列した２次元メモリ空間を想定するとともに、前記仮想最小２次元メモリ空間の各アドレスが一定の規則で予めそれぞれに割り当てられ、前記２次元メモリ空間上において画像上の画素配列と対応した画素データの配列で画像データが格納される状態に、前記画像データの画素データを記憶するｎ個のメモリと、
前記画像データの各ブロックを対象としたブロックマッチングにおけるデータの読み出しの際に、前記仮想最小２次元メモリ空間上のアクセス位置の指定を受け、この指定されたアクセス位置からデータを読み出すパターンを指定する読み出しアクセスモードに応じて前記ｎ個のメモリからの各読み出しデータを並び替え、この並び替えた各読み出しデータを一括に出力する読み出しデータ制御部と、
読み出しアドレスの指定時に、前記指定読み出しアクセスモードと前記指定アクセス位置に応じて、前記指定読み出しアドレスを所定のアドレスに修正して前記ｎ個のメモリに出力する読み出しアドレス制御部と、を有する２次元データ・アクセス・メモリを備え、
前記仮想最小２次元メモリ空間上のアクセス位置と、前記仮想最小２次元メモリ空間上で該アクセス位置から縦横１アドレスおきにデータを読み出すパターンを示す読み出しアクセスモードを指定し、その両指定に応じて前記２次元データ・アクセス・メモリから読み出された画素データを基にブロックマッチングを行うとともに、前記基準とする読み出しアドレスを縦あるいは横にずらして新たな縦横１アドレスおきの画素データを読み出しつつブロックマッチングを行う処理を繰り返して、前記仮想最小２次元メモリ空間に含まれる全画素データについてブロックマッチングを行っていき、処理対象とするブロックにおける各画素データの累積残差が、既にブロックマッチングが行われたブロックにおける累積残差の最小値を基に定められる閾値を超えた時点で、ブロックマッチングを行っているブロックの処理を中止することを特徴とする演算処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、効率的なＳＩＭＤ(Single Instruction stream Multiple Data stream)演算が実現可能となるメモリの使用方法、このメモリの使用方法を装置化した２次元データ・アクセス・メモリを利用してＳＩＭＤ演算を効率的に行うことができる演算処理装置に関するものである。
【０００２】
【従来の技術】
ＳＩＭＤ演算は、複数のプロセッサを持ち、複数個のデータを同一の命令で処理する方式である。このため、一般に、メモリに記憶されている１次元のデータ列から、連続する一部の部分列を取り出して並列演算を行う場合には、非常に効率的である。
【０００３】
しかし、演算対象となるデータがメモリ上に連続して記憶されていなかったり、演算結果をメモリ上の所定位置に分散して配置したい場合には、並列演算対象データを準備するための処理や、並列演算結果をメモリの所定位置に配置するための処理が必要になる。このため、本来の並列処理の良さが阻害されるという不都合がある。
【０００４】
【発明が解決しようとする課題】
ところで、ＳＩＭＤ処理により２次元離散コサイン変換処理を高速化できる技術として特開２０００−６９４７８号公報に記載の発明が知られている。
この発明は、走査順に配置された画像データを変換符号化演算におけるバタフライ演算をＳＩＭＤ処理により実行するのに適した順序に並び換え、この並び換え結果をメモリに記憶しておき、そのメモリに記憶される画像データを２次元離散コサイン変換するものである。
【０００５】
しかし、上記の公報に記載の発明では、画像データを並び換える操作が必要となり、ハードウエアで実現する場合には、その並び換える操作に係る分の回路が必要となって、回路規模が大きくなるというような不都合が考えられる上に、並び替え操作によるメモリアクセスにより消費電力が大きくなるという不都合もある。
【０００６】
そこで、本発明の第１の目的は、上記の点に鑑み、画像データに係るＳＩＭＤ演算の効率化に寄与できるメモリの使用方法を提供することにある。
【０００７】
また、本発明の第２の目的は、２次元メモリ空間上の指定位置から横方向と縦方向に並んだ連続データあるいは不連続データをアクセスできるようにし、効率的なＳＩＭＤ演算が実現可能な２次元データ・アクセス・メモリを利用することにより、画像データに係るＳＩＭＤ演算を効率的に行うことができる演算処理装置を提供することにある。
【０００８】
【課題を解決するための手段】
上記の課題を解決し本発明の第１の目的を達成するために、請求項１および請求項２に記載の発明は、以下のように構成した。
すなわち、請求項１に記載の発明は、２次元的に形成される所定の仮想最小２次元メモリ空間を、縦横方向に配列した所定の２次元メモリ空間を想定し、前記仮想最小２次元メモリ空間の各アドレスを、前記仮想最小２次元メモリ空間との関係で決まるｎ個の物理的なメモリの所定の各アドレスに予め割り当てておき、前記２次元メモリ空間上において画像上の画素配列と対応した画素データの配列で画像データが格納される状態に、前記ｎ個の物理的なメモリに前記画像データの画素データを記憶し、前記画像データの各ブロックを対象としたブロックマッチングにおいて前記２次元メモリ空間上のデータを読み出すときには、前記仮想最小２次元メモリ空間上の読み出しアドレスを指定するとともに、その指定された読み出しアドレスを基準に、前記仮想最小２次元メモリ空間上で縦横１アドレスおきを示すパターンを指定すると、その両指定に応じて、前記仮想最小２次元メモリ空間上の縦横１アドレスおきの画素データを、前記ｎ個の各メモリの対応するアドレスからそれぞれ読み出して、読み出した画素データを基にブロックマッチングを行うとともに、前記基準とする読み出しアドレスを縦あるいは横にずらして新たな縦横１アドレスおきの画素データを読み出しつつブロックマッチングを行う処理を繰り返して、前記仮想最小２次元メモリ空間に含まれる全画素データについてブロックマッチングを行っていき、処理対象とするブロックにおける各画素データの累積残差が、既にブロックマッチングが行われたブロックにおける累積残差の最小値を基に定められる閾値を超えた時点で、ブロックマッチングを行っているブロックの処理を中止するようにしたことを特徴とするものである。
【０００９】
また、請求項２に記載の発明は、２次元的に形成される所定の仮想最小２次元メモリ空間を、縦横方向に配列した２次元メモリ空間を想定するとともに、前記仮想最小２次元メモリ空間の各アドレスが一定の規則で予めそれぞれに割り当てられ、前記２次元メモリ空間上において画像上の画素配列と対応した画素データの配列で画像データが格納される状態に、前記画像データの画素データを記憶するｎ個のメモリと、前記画像データの各ブロックを対象としたブロックマッチングにおけるデータの読み出しの際に、前記仮想最小２次元メモリ空間上のアクセス位置の指定を受け、この指定されたアクセス位置からデータを読み出すパターンを指定する読み出しアクセスモードに応じて前記ｎ個のメモリからの各読み出しデータを並び替え、この並び替えた各読み出しデータを一括に出力する読み出しデータ制御部と、読み出しアドレスの指定時に、前記指定読み出しアクセスモードと前記指定アクセス位置に応じて、前記指定読み出しアドレスを所定のアドレスに修正して前記ｎ個のメモリに出力する読み出しアドレス制御部と、を有する２次元データ・アクセス・メモリを備え、前記仮想最小２次元メモリ空間上のアクセス位置と、前記仮想最小２次元メモリ空間上で該アクセス位置から縦横１アドレスおきにデータを読み出すパターンを示す読み出しアクセスモードを指定し、その両指定に応じて前記２次元データ・アクセス・メモリから読み出された画素データを基にブロックマッチングを行うとともに、前記基準とする読み出しアドレスを縦あるいは横にずらして新たな縦横１アドレスおきの画素データを読み出しつつブロックマッチングを行う処理を繰り返して、前記仮想最小２次元メモリ空間に含まれる全画素データについてブロックマッチングを行っていき、処理対象とするブロックにおける各画素データの累積残差が、既にブロックマッチングが行われたブロックにおける累積残差の最小値を基に定められる閾値を超えた時点で、ブロックマッチングを行っているブロックの処理を中止することを特徴とするものである。
【００１０】
本発明によれば、仮想最小２次元メモリ空間を縦横方向に配列した所定の２次元メモリ空間を想定し、仮想最小２次元メモリ空間の各アドレスを、仮想最小２次元メモリ空間との関係で決まるｎ個の物理的なメモリの所定の各アドレスに予め割り当てておき、その２次元メモリ空間上において画像上の画素配列と対応した画素データの配列で画像データが格納される状態に、前記ｎ個の物理的なメモリに前記画像データの画素データを記憶する。そして、画像データの各ブロックを対象としたブロックマッチングにおいて２次元メモリ空間上のデータを読み出すときには、仮想最小２次元メモリ空間上の読み出しアドレスを指定するとともに、その指定された読み出しアドレスを基準に、仮想最小２次元メモリ空間上で縦横１アドレスおきを示すパターンを指定し、その両指定に応じて、仮想最小２次元メモリ空間上の縦横１アドレスおきの画素データを、ｎ個の各メモリの対応するアドレスからそれぞれ読み出して、読み出した画素データを基にブロックマッチングが行われる。さらに、基準とする読み出しアドレスを縦あるいは横にずらして新たな縦横１アドレスおきの画素データを読み出しつつブロックマッチングを行う処理を繰り返して、仮想最小２次元メモリ空間に含まれる全画素データについてブロックマッチングが行われていく。そして、処理対象とするブロックにおける各画素データの累積残差が、既にブロックマッチングが行われたブロックにおける累積残差の最小値を基に定められる閾値を超えた時点で、ブロックマッチングを行っているブロックの処理が中止される。
したがって、ブロックマッチングにおいて使用される画素データをメモリから読み出す処理を高速化できると共に、ブロックの縦横１画素おきを対象として差分を算出するため、処理対象とするブロックにおける概略的なブロックマッチング状態を早期に把握でき、さらに、そのブロックマッチングにおいて、累積残差が、既にブロックマッチングが行われたブロックにおける累積残差の最小値を基に定められる閾値を超えた時点で、ブロックマッチングの処理を中止するため、不要な演算が行われることを防止し、ブロックマッチング処理を高速化することができる。
すなわち、本発明によれば、画像データに係るＳＩＭＤ演算の効率化に寄与できるメモリの使用方法を提供することができると共に、画像データに係るＳＩＭＤ演算を効率的に行うことができる演算処理装置を提供することができる。
【００２５】
【発明の実施の形態】
（第１の実施の形態）
以下、本発明のメモリの使用方法の実施形態について、図面を参照して説明する。  この実施形態に係るメモリの使用方法では、図１に示すような仮想最小２次元メモリ空間１を定めるので、まず、これについて説明する。
【００２６】
仮想最小２次元メモリ空間１は、例えば図１に示すように、１バイト（８ビット）の記憶が可能な最小単位の仮想の記憶素子２が、縦方向と横方向にそれぞれ４個ずつ合計１６個配置されたものである。従って、この例では４バイトラ４バイト＝１６バイトから構成される。なお、仮想最小２次元メモリ空間１の大きさは、上記の１６バイト以外に、８ラ８＝６４バイトなどが可能である。
【００２７】
このような仮想最小２次元メモリ空間１は、物理的には、図２に示すように４つの物理的なメモリ４Ａ〜４Ｃに予め分割されてマッピングされている。すなわち、１つの仮想最小２次元メモリ空間１は、４つの物理的なメモリ４Ａ〜４Ｃの同一のアドレスから始まる４バイトの連続領域に対応している。具体的には、例えば、図１に示す仮想最小２次元メモリ空間１の各アドレスａn(0)， ｂn(0)，ｃn(0)，ｄn(0)・・・は、図２に示す各メモリ４Ａ〜４Ｄの所定のアドレスａn(0)，ｂn(0)，ｃn(0)，ｄn(0)・・・に予めそれぞれ割り当てられている。
【００２８】
また、この実施形態に係るメモリの使用方法では、図３に示すような２次元メモリ空間３を想定するので、これについて説明する。
２次元メモリ空間３は、仮想最小２次元メモリ空間１を、図３に示すように横方向と縦方向にタイル状に配置したものである。この２次元メモリ空間３において、仮想最小２次元メモリ空間１を横方向に並べる個数は、２のべき乗であれば任意に設定することが可能であり、図３に示す例では１６バイトラｎバイトとしている。
【００２９】
次に、この実施形態に係るメモリの使用方法について、図１〜図４を参照して説明する。
まず、図１に示すような仮想最小２次元メモリ空間１を、図３に示すように縦横方向にタイル状に配列した２次元メモリ空間３を想定する。
一方、仮想最小２次元メモリ空間１の各アドレスを、仮想最小２次元メモリ空間１の大きさとの関係で決まる４個の物理的なメモリ４Ａ〜４Ｄの所定の各アドレスに、予め割り当てて（対応付けて）おく（図１および図２参照）。
【００３０】
次に、仮想最小２次元メモリ空間１上の任意のアドレスからの連続的なデータを読み出す際のメモリ４Ａ〜４Ｄからの読み出し動作について説明する。
この場合には、その任意の読み出しアドレスを指定するとともに、データの読み出し方向を指定する読み出しアクセスモードを指定する。
この読み出しアクセスモードには、行方向アクセスモード、列方向アクセスモード、行方向２段アクセスモードがある。
【００３１】
行方向アクセスモードは、図４のＭ１に示すように、仮想最小２次元メモリ空間１上の任意の読み出しアドレスから行方向（横方向）に、８ビットラ４、１６ビットラ２、または３２ビットラ１のようにデータを読み出すものであり、１６通りのアクセスが考えられる。
列方向アクセスモードは、図４のＭ２に示すように、仮想最小２次元メモリ空間１上の任意の読み出しアドレスから列方向（縦方向）に、８ビットラ４のようにデータを読み出すものであり、１６通りのアクセスが考えられる。
【００３２】
行方向２段アクセスモードは、図４のＭ３に示すように、仮想最小２次元メモリ空間１上の任意のアドレスから行方向２段にわたって、１６ビットラ２のようにデータを読み出すものであり、８通りのアクセスが考えられる。このモードでは、行方向は２バイト単位のみに限定されている。
このようにして、仮想最小２次元メモリ空間１上の任意の読み出しアドレスが指定され、かつ、読み出しアクセスモードが指定されると、その指定読み出しアドレスと指定読み出しアクセスモードに基づいて、メモリ４Ａ〜４Ｄの対応する各アドレスが指定されてデータが読み出されるとともに、その読み出されたデータを同時に出力する。
【００３３】
例えば、いま、図４において、仮想最小２次元メモリ空間１上において、アドレスＣn(0)が指定され、かつ、Ｍ３に示すような行方向２段アクセスモードが指定された場合には、以下のようになる。すなわち、この場合には、メモリ４Ａはアドレスａn(1)、メモリ４Ｂはアドレスｂn(1)、メモリ４Ｃはアドレスｃn(0)、メモリ４Ｄはアドレスｄn(0)がそれぞれ指定されて、その各データを同時に読み出す。
【００３４】
次に、仮想最小２次元メモリ空間１上の任意のアドレスにデータを同時に書き込む際のメモリ４Ａ〜４Ｄの書込み動作について説明する。
この場合には、その任意の書き込みアドレスを指定するとともに、データの書き込み方向を指定する書き込みアクセスモードを指定する。すると、その指定書き込みアドレスと指定書き込みアクセスモードに基づいて、メモリ４Ａ〜４Ｄの対応する各アドレスが指定されてデータが書き込み可能になるとともに、その書き込むべきデータが同時にその各アドレスに書き込まれる。
【００３５】
例えば、いま、図４において、仮想最小２次元メモリ空間１上において、アドレスＣn(0)が指定され、かつ、Ｍ３に示すような行方向２段アクセスモードが指定された場合には、以下のようになる。すなわち、この場合には、メモリ４Ａはアドレスａn(1)、メモリ４Ｂはアドレスｂn(1)、メモリ４Ｃはアドレスｃn(0)、メモリ４Ｄはアドレスｄn(0)がそれぞれ指定されてデータが書き込み可能となり、その各データの書き込みを同時に行う。
【００３６】
以上説明したように、この実施形態に係るメモリの使用方法によれば、２次元メモリ空間３上の任意のアクセス位置とアクセスモードとを指定すると、その指定に応じて、２次元メモリ空間３上の任意のアクセス位置からの横方向または縦方向に連続するデータを、各メモリ４Ａ〜４Ｄに同時に読み書きできる。このため、この実施形態に係るメモリの使用方法は、ＳＩＭＤ演算の効率化に寄与できる。
【００３７】
次に、本発明の２次元データ・アクセス・メモリの実施形態の構成について、図５〜図７を参照して説明する。
この実施形態に係る２次元データ・アクセス・メモリ１０は、上述した実施形態に係るメモリの使用方法を具体化したものであり、図５に示すように、メモリ４Ａ〜４Ｄと、読み出しアドレス制御部１１と、読み出しデータ制御部１２と、書き込みアドレス制御部１３と、書き込みデータ制御部１４とを備えている。  そして、読み出しアドレス制御部１１と読み出しデータ制御部１２とがデータ読み出し系を構成するとともに、書き込みアドレス制御部１３と書き込みデータ制御部１４とがデータ書き込み系を構成し、これら２つの系がメモリ４Ａ〜４Ｄを共有するようになっている。
【００３８】
メモリ４Ａ〜４Ｄは、図１に示す仮想最小２次元メモリ空間１を、図３に示すように縦横方向に配列した２次元メモリ空間３を想定し、仮想最小２次元メモリ空間１の各アドレスが、図２に示すように一定の規則で予め所定のアドレスにそれぞれ割り当てられたものである。
読み出しアドレス制御部１１は、読み出しアドレスの指定の際に、読み出しアクセスモードの指定に応じて、その読み出しアドレスのうちの所定のアドレスを所定値に変換してメモリ４Ａ〜４Ｄに出力するとともに、アクセスする空間が隣接する仮想最小２次元メモリ空間１を跨ぐ場合には（図３、図４参照）、指定読み出しアクセスモードに応じて、その読み出しアドレスのうちの上記以外のアドレスを補正してメモリ４Ａ〜４Ｄに出力するものである。
【００３９】
読み出しデータ制御部１２は、データの読み出しの際に、読み出しアドレスの一部に基づいて仮想最小２次元メモリ空間１上の読み出しアドレスを特定し、この特定された読み出しアドレスおよび指定された読み出しアクセスモードに応じて、メモリ４Ａ〜４Ｄからの各読み出しデータを並び替え、この並び替えた各読み出しデータを同時に出力するものである。
【００４０】
書き込みアドレス制御部１３は、書き込みアドレスの指定の際に、書き込みアクセスモードの指定に応じて、その書き込みアドレスのうちの所定のアドレスを所定値に変換してメモリ４Ａ〜４Ｄに出力するとともに、アクセスする空間が隣接する仮想最小２次元メモリ空間１を跨ぐ場合には、指定書き込みアクセスモードに応じて、その書き込みアドレスのうちの上記以外のアドレスを補正してメモリ４Ａ〜４Ｄに出力するものである。
【００４１】
書き込みデータ制御部１４は、メモリ４Ａ〜４Ｄに対して各データを書き込む際に、書き込みアドレスの一部に基づいて仮想最小２次元メモリ空間１上の書き込みアドレスを特定し、この特定された書き込みアドレスおよび指定された書き込みアクセスモードに応じて、メモリ４Ａ〜４Ｄへの各書き込みデータを並び替え、この並び替えた各書き込みデータをメモリ４Ａ〜４Ｄの各指定アドレスに同時に書き込むように制御するものである。
【００４２】
次に、図５に示す読み出しアドレス制御部１１と読み出しデータ制御部１２の詳細な構成について、図６を参照して説明する。
読み出しアドレス制御部１１は、図６に示すように、アドレスコントローラ２１と、４つのアドレス補正部２２Ａ〜２２Ｄを備えている。
アドレスコントローラ２１は、読み出しアドレスＡ０、Ａ１、Ａ４、Ａ５の指定と読み出しアクセスモードの指定に応じて、メモリ４Ａ〜４Ｄの下位２ビットのアドレスａ０、ａ１に相当する読み出しアドレスＡ４、Ａ５を、所定値に変換するためのアドレス変換信号をアドレス補正部２２Ａ〜２２Ｄに出力するとともに、アクセスする空間が隣接する仮想最小２次元メモリ空間１を跨ぐ場合には、読み出しアクセスモードの指定に応じて、メモリ４Ａ〜４Ｄの上位５ビットのアドレスａ２〜ａ７に相当する読み出しアドレスＡ２、Ａ３、Ａ６〜Ａ９を、所定値に補正するための補正信号をアドレス補正部２２Ａ〜２２Ｄに出力するものである。
【００４３】
ここで、上述の読み出しアドレス「Ａ０、Ａ１」は、仮想最小２次元メモリ空間１の行方向（横方向）のアドレスを指定するものであり、メモリ４Ａ〜４Ｄの下位側のアドレスａ０、ａ１に相当する。また、読み出しアドレス「Ａ４、Ａ５」は、仮想最小２次元メモリ空間１の列方向（縦方向）のアドレスを指定するものである。さらに、読み出しアドレスＡ２、Ａ３、Ａ６〜Ａ９は、２次元メモリ空間３のアドレスを指定するものであり、メモリ４Ａ〜４Ｄのアドレスａ２〜ａ７に相当する。
【００４４】
アドレス補正部２２Ａ〜２２Ｄは、メモリ４Ａ〜４Ｄに対応して設けられ、アドレスコントローラ２１からのアドレス変換信号により読み出しアドレスＡ４、Ａ５を所定値に変換して各メモリ４Ａ〜４Ｄの下位ビットのアドレスａ０、ａ１として出力するとともに、アドレスコントローラ２１からの補正信号により読み出しアドレスＡ２、Ａ３、Ａ６〜Ａ９を所定値だけ補正してメモリ４Ａ〜４Ｄの上位５ビットのアドレスａ２〜ａ７として出力するものである。
【００４５】
読み出しデータ制御部１２は、図６に示すように、データコントローラ２３と、４つのセレクタ２４Ａ〜２４Ｄとを備えている。
データコントローラ２３は、データの読み出しの際に、読み出しアドレスＡ０、Ａ１、Ａ４、Ａ５の指定に応じて仮想最小２次元メモリ空間１上の読み出しアドレスを特定し、この特定された読み出しアドレスからデータを読み出す方向を指定する読み出しアクセスモードに応じて、セレクタ２４Ａ〜２４Ｄがメモリ４Ａ〜４Ｄを選択する際の選択信号をセレクタ２４Ａ〜２４Ｄにそれぞれ出力するものである。
【００４６】
セレクタ２４Ａ〜２４Ｄは、メモリ４Ａ〜４Ｄに対応して設けられ、データコントローラ２３からの上述の選択信号に基づき、各メモリ４Ａ〜４Ｄの出力ライン上の読み出しデータを選択して同時に出力する（取り出す）ものである。
次に、図５に示す書き込みアドレス制御部１３と書き込みデータ制御部１４の詳細な構成について、図７を参照して説明する。
【００４７】
書き込みアドレス制御部１３は、図７に示すように、アドレスコントローラ３１と、４つのアドレス補正部３２Ａ〜３２Ｄを備えている。
アドレスコントローラ３１は、書き込みアドレスＡ０、Ａ１、Ａ４、Ａ５の指定と書き込みアクセスモードの指定に応じて、メモリ４Ａ〜４Ｄの下位２ビットのアドレスａ０、ａ１に相当する書き込みアドレスＡ４、Ａ５を、所定値に変換するためのアドレス変換信号をアドレス補正部３２Ａ〜３２Ｄに出力するとともに、アクセスする空間が隣接する仮想最小２次元メモリ空間１を跨ぐ場合には、書き込みアクセスモードの指定に応じて、メモリ４Ａ〜４Ｄの上位５ビットのアドレスａ２〜ａ７に相当する書き込みアドレスＡ２、Ａ３、Ａ６〜Ａ９を所定値だけ補正するための補正信号をアドレス補正部３２Ａ〜３２Ｄに出力するものである。
【００４８】
ここで、書き込みアクセスモードは、上述の読み出しアクセスモードと基本的に同様であり、３つのアクセスモードからなる。
アドレス補正部３２Ａ〜３２Ｄは、メモリ４Ａ〜４Ｄに対応して設けられ、アドレスコントローラ３１からのアドレス変換信号により書き込みアドレスＡ４、Ａ５を変換して各メモリ４Ａ〜４Ｄの下位２ビットのアドレスａ０、ａ１として出力するとともに、アドレスコントローラ３１からの補正信号により書き込みアドレスＡ２、Ａ３、Ａ６〜Ａ９を補正してメモリ４Ａ〜４Ｄの上位５ビットのアドレスａ２〜ａ７として出力するものである。
【００４９】
書き込みデータ制御部１４は、図７に示すように、データコントローラ３３と、４つのセレクタ３４Ａ〜３４Ｄとを備えている。
データコントローラ３３は、データの書き込みの際に、書き込みアドレスＡ０、Ａ１、Ａ４、Ａ５の指定に応じて仮想最小２次元メモリ空間１上の書き込みアドレスを特定し、この特定された書き込みアドレスからデータを書き込む方向を指定する書き込みアクセスモードに応じて、セレクタ３４Ａ〜３４Ｄがメモリ４Ａ〜４Ｄを選択する際の選択信号をセレクタ３４Ａ〜３４Ｄにそれぞれ出力するものである。
【００５０】
セレクタ３４Ａ〜３４Ｄは、メモリ４Ａ〜４Ｄに対応して設けられ、データコントローラ３３からの上述の選択信号に基づき、外部からの書き込みデータ（例えば３２ビット）を各メモリ４Ａ〜４Ｄの各指定アドレスに対して、例えば８ビット単位で同時に供給するものである。
次に、このような構成からなる実施形態に係る２次元データ・アクセス・メモリの動作について、図８〜図１０を参照して説明する。
【００５１】
まず、データを読み出す場合について説明する。この場合には、アドレスコントローラ２１とアドレス補正部２２Ａ〜２２Ｄとによる読み出しアドレスの制御と、データコントローラ２３とセレクタ２４Ａ〜２４Ｄによる読み出したデータの制御が必要であり、説明の順序はデータコントローラ２３から行う。
図６に示すデータコントローラ２３は、データの読み出しの際に、読み出しアドレスＡ０、Ａ１、Ａ４、Ａ５の指定に応じて仮想最小２次元メモリ空間１上の読み出しアドレスを特定するとともに、読み出しアクセスモードに応じて、セレクタ２４Ａ〜２４Ｄがメモリ４Ａ〜４Ｄを選択する際の選択信号をセレクタ２４Ａ〜２４Ｄにそれぞれ出力する。
【００５２】
例えば図８のＮｏ１に示すように、読み出しアドレス「Ａ０、Ａ１」、「Ａ４、Ａ５」として「００」、「００」が指定され、読み出しアクセスモードとして行方向アクセスモード（００）が指定された場合には、セレクタ２４Ａはメモリ４Ａ、セレクタ２４Ｂはメモリ４Ｂ、セレクタ２４Ｃはメモリ４Ｃ、およびセレクタ２４Ｄはメモリ４Ｄをそれぞれ選択する。
【００５３】
また、例えば、図８のＮｏ１７に示すように、読み出しアドレス「Ａ０、Ａ１」、「Ａ４、Ａ５」として「００」、「００」が指定され、読み出しアクセスモードとして列方向アクセスモード（０１）が指定された場合には、セレクタ２４Ａはメモリ４Ａを、セレクタ２４Ｂはメモリ４Ｃを、セレクタ２４Ｃはメモリ４Ｂを、セレクタ２４Ｄはメモリ４Ｄをそれぞれ選択する。
【００５４】
セレクタ２４Ａ〜２４Ｄは、データコントローラ２３からの選択信号に基づき、データの読み出しの際に、各メモリ４Ａ〜４Ｄの出力ライン上の読み出しデータを同時に出力する。
例えば、上述のように図８のＮｏ１の場合には、データの読み出しの際に、メモリ４Ａ〜４Ｄの出力ライン上の各読み出しデータ（例えば８ビット）は、セレクタ２４Ａによりメモリ４Ａのデータ、セレクタ２４Ｂによりメモリ４Ｂのデータ、セレクタ２４Ｃによりメモリ４Ｃのデータ、およびセレクタ２４Ｄによりメモリ４Ｄデータが、同時に出力される。また、図８のＮｏ１７の場合には、データの読み出しの際に、メモリ４Ａ〜４Ｄの出力ライン上の各読み出しデータは、セレクタ２４Ａによりメモリ４Ａのデータ、セレクタ２４Ｂによりメモリ４Ｃのデータ、セレクタ２４Ｃによりメモリ４Ｂのデータ、およびセレクタ２４Ｄによりメモリ４Ｄデータが、同時に出力される。
【００５５】
一方、アドレスコントローラ２１は、読み出しアドレスＡ０、Ａ１、Ａ４、Ａ５の指定と読み出しアクセスモードの指定に応じて、メモリ４Ａ〜４Ｄの下位２ビットのアドレスａ０、ａ１に相当する読み出しアドレスＡ４、Ａ５を、所定値に変換するためのアドレス変換信号をアドレス補正部２２Ａ〜２２Ｄにそれぞれ出力する。
【００５６】
例えば、図９に示すように、読み出しアクセスモードとして行方向アクセスモードが指定された場合において、読み出しアドレス「Ａ４、Ａ５」が指定されたときには、その指定読み出しアドレス「Ａ４、Ａ５」の変換は行わない。したがって、例えば、読み出しアドレス「Ａ４、Ａ５」が「００」と指定された場合には、その「００」がメモリの４Ａ〜４Ｄの各アドレス「ａ０、ａ１」として出力される。
【００５７】
これに対して、図９に示すように、読み出しアクセスモードが列方向アクセスモードまたは行方向２段アクセスモードが指定された場合において、読み出しアドレス「Ａ４、Ａ５」が指定されたときには、その指定読み出しアドレス「Ａ４、Ａ５」の変換が行われる。例えば、読み出しアクセスモードとして列方向アクセスモードが指定され、読み出しアドレス「Ａ４、Ａ５」が「００」と指定されたときには、メモリ４Ａのアドレス「ａ０、ａ１」については変換されないが、メモリ４Ｂ、４Ｃ、４Ｄの各アドレス「ａ０、ａ１」については、「０１」、「１０」、および「１１」にそれぞれ変換されて出力される。
【００５８】
さらに、アドレスコントローラ２１は、アクセスする空間が隣接する仮想最小２次元メモリ空間１を跨ぐ場合には（図３、図４を参照）、読み出しアクセスモードの指定に応じて、指定する読み出しアドレスＡ２、Ａ３、Ａ６〜Ａ９をメモリ４Ａ〜４Ｄの上位５ビットのアドレスｄ２〜ｄ７に相当するアドレスとしてそのまま出力したり、またはその指定する読み出しアドレスＡ２、Ａ３、Ａ６〜Ａ９を補正し、この補正したアドレスをメモリ４Ａ〜４Ｄの上位５ビットのアドレスｄ２〜ｄ７として出力する補正信号をアドレス補正部２２Ａ〜２２Ｄに出力する。
【００５９】
例えば、図１０のＮｏ２に示すように、読み出しアクセスモードとして行方向アクセスモードが指定され、読み出しアドレスＡ０、Ａ１、Ａ４、Ａ５として「１０００」が指定された場合には、アドレスコントローラ２１は、メモリ２２Ａのアドレスａ２〜ａ７を「＋１」加算するための補正信号を、アドレス補正部２２Ａに出力する。従って、図１０中における「＋１」や「＋４」は、メモリ２２Ａのアドレスａ２〜ａ７が「＋１」や「＋４」加算されることを意味する。
【００６０】
次に、データを書き込む場合について説明する。この場合には、アドレスコントローラ３１とアドレス補正部３２Ａ〜３２Ｄによる書き込みアドレスの制御と、データコントローラ３３とセレクタ３４Ａ〜３４Ｄによる読み出しデータの制御とが必要である。
しかし、アドレスコントローラ３１とアドレス補正部３２Ａ〜３２Ｄによる書き込みアドレスの制御の動作は、上述のアドレスコントローラ２１とアドレス補正部２２Ａ〜２２Ｄによる読み出しアドレスの制御の動作と実質的に同じであるので、その説明は省略する。
【００６１】
データコントローラ３３は、データの書き込みの際に、書き込みアドレスＡ０、Ａ１、Ａ４、Ａ５の指定に応じて仮想最小２次元メモリ空間１上の書き込みアドレスを特定し、この特定された書き込みアドレスからデータを書き込む方向を指定する書き込みアクセスモードに応じて、セレクタ３４Ａ〜３４Ｄがメモリ４Ａ〜４Ｄを選択する際の選択信号をセレクタ３４Ａ〜３４Ｄにそれぞれ出力する。なお、このデータコントローラ３３は、データコントローラ２３の動作と基本的に同一である。
【００６２】
また、セレクタ３４Ａ〜３４Ｄは、データコントローラ３３からの選択信号に基づき、外部からの各書き込みデータを選択して各メモリ４Ａ〜４Ｄの指定アドレスに同時に供給する。
以上説明したように、この実施形態に係る２次元データ・アクセス・メモリによれば、２次元メモリ空間上の指定位置から横方向または縦方向に並んだ連続データを物理的なメモリ４Ａ〜４Ｄから同時に読み出すことができる上に、２次元メモリ空間上の指定位置から横方向または縦方向にデータが連続的に並ぶように各メモリ４Ａ〜４Ｄに同時に書き込むことができるので、効率的なＳＩＭＤ演算が実現可能となる。
【００６３】
次に、本発明の演算処理装置の実施形態の構成について、図１１を参照して説明する。
この実施形態に係る演算処理装置は、図５〜図７に示す２次元データ・アクセス・メモリ１０を応用して、ＳＩＭＤ型プロセッサ４１に２次元ＤＣＴ（２次元離散的コサンイン変換）を行わせるようにしたものである。
【００６４】
このために、この演算処理装置は、図１１に示すように、２次元データ・アクセス・メモリ１０に、ＳＩＭＤ型プロセッサ４１と、外部Ｉ／Ｆ回路４２とが接続されている。
ＳＩＭＤ型プロセッサ４１は、後述のような所定の演算処理に応じて、２次元データ・アクセス・メモリ１０におけるデータの読み込みまたは書き込みの際のアドレスを指定できるとともに、上述のアクセスモードを命令プログラムで設定可能なプロセッサである。また、外部Ｉ／Ｆ回路４１は、外部とのデータの授受を行うようになっている。
【００６５】
次に、このような構成からなる実施形態に係る演算処理装置の動作例について説明する。
まず、外部Ｉ／Ｆ回路４２により、２次元ＤＣＴを行う対象となる８ラ８の画素データを、図１２に示すように、２次元データ・アクセス・メモリ１０に書き込む。
【００６６】
次に、ＳＩＭＤ型プロセッサ４１は、行方向に１次元のＤＣＴを行う。このために、ＳＩＭＤ型プロセッサ４１は、図１２に示すように、偶数行と奇数行の画素データをペアに、列方向に２つの画素データを読み込み、２行分の１次元ＤＣＴをＳＩＭＤ演算により同時に変換してゆく。
そして、図１３に示すように、行方向の１次元ＤＣＴの結果を、２次元データ・アクセス・メモリ１０に書き戻す。
【００６７】
さらに、ＳＩＭＤ型プロセッサ４１は、列方向の１次元ＤＣＴを行う。この場合には、図１３に示すように、偶数列を奇数列とをペアに、行方向に２つの画素データを読み込み、２列分の１次元ＤＣＴをＳＩＭＤ演算により同時に変換していき、その結果を、再び２次元データ・アクセス・メモリ１０に書き戻す。これにより、図１４に示すような最終的な２次元ＤＣＴの結果が２次元データ・アクセス・メモリ１０上に得られる。この結果、再び外部Ｉ／Ｆ回路４２を経由して外部に出力する。
【００６８】
以上説明したように、この実施形態に係る演算処理装置によれば、この実施形態にかかる２次元データ・アクセス・メモリを利用しているので、ＳＩＭＤ演算を効率的に行うことができる。
（第２の実施の形態）
次に、本発明の第２の実施の形態について、図面を参照して説明する。
【００６９】
この実施の形態に係るメモリの使用方法では、第1の実施の形態と同様に、図１に示すような仮想２次元メモリ空間１が定められ、図３に示すような２次元メモリ空間３が想定される。
以下、この実施の形態に係るメモリの使用方法について説明する。
まず、図１に示すような仮想最小２次元メモリ空間１を、図３に示すように縦横方向にタイル状に配列した２次元メモリ空間３を想定する。
【００７０】
一方、仮想最小２次元メモリ空間１の各アドレスを、仮想最小２次元メモリ空間１の大きさとの関係で決まる４個の物理的なメモリ４Ａ〜４Ｄの所定の各アドレスに、予め割り当てて（対応付けて）おく（図１および図２参照）。
次に、仮想最小２次元メモリ空間１上の任意のアドレスから連続的あるいは所定の不連続的なデータを読み出す際のメモリ４Ａ〜４Ｄからの読み出し動作について説明する。
【００７１】
この場合には、その任意の読み出しアドレスを指定するとともに、データの読み出し方向を指定する読み出しアクセスモードを指定する。この読み出しアクセスモードには、第１の実施の形態と同様の、行方向アクセスモード、列方向アクセスモード、行方向２段アクセスモードに加え、千鳥モードがある。
さらに、この実施の形態に係るメモリ使用方法では、動画像の動きベクトル推定におけるメモリ使用方法を示すオプションモードを指定する。
【００７２】
このオプションモードには、サーキュラーモード、パディングモードがある。
以下、各オプションモードおよび千鳥モードについて説明する。
サーキュラーモードは、図１５に示すように、動きベクトルの推定において、２次元メモリ空間３の記憶領域を跨いでデータが参照される場合に、効率的に動きベクトル推定を行うためのモードである。
【００７３】
即ち、動きベクトル推定の際、２次元メモリ空間３には、現フレームと時間的に隣接する参照フレームの一定領域（図１６参照）が記憶される。そして、２次元メモリ空間３に記憶されたデータの中から、現フレームの注目対象ブロックと最小誤差であるブロック（最も近似するブロック）の検索（ブロックマッチング）が行われていく。このとき、サーキュラーモードでは、検索が終了した２次元メモリ空間３の領域に、現在、２次元メモリ空間３に記憶されている参照フレームのデータに連続する行方向データ、即ち、２次元メモリ空間３の記憶領域の右側に隣接するデータを後述するタイミングで上書きする。つまり、２次元メモリ空間３においては、参照済みのデータに対し、参照フレームにおいて２次元メモリ空間３の記憶領域から連続する行方向のデータが循環的に記憶される。
【００７４】
そして、２次元メモリ空間３において、検索対象領域（ブロック）が逐次移動され、２次元メモリ空間３に記憶された領域の境界を跨ぐデータが参照される場合、２次元メモリ空間３の記憶領域の境界（右端）を越えて参照されるデータについては、参照するデータのアドレスを補正することにより、２次元メモリ空間３に上書きされている所定アドレスのデータ（循環的に記憶された所定データ）を参照して動きベクトル推定を行う。したがって、サーキュラーモードの場合、ユーザは、検索対象領域が２次元メモリ空間３の境界を跨ぐか否かを意識する必要がないため、効率的に動きベクトル推定を行うことができる。
【００７５】
ここで、サーキュラーモードで動きベクトル推定を行う処理の方法について説明する。
図１７は、サーキュラーモードで動きベクトル推定を行うための処理を表すフローチャートである。
図１７において、サーキュラーモードが指定されて動きベクトル推定が開始されると、参照フレームにおける検索対象範囲を設定し、仮想最小２次元メモリ空間３のデータを読み出すアドレスを初期化する（ステップＳ１０）。
【００７６】
次に、所定のアドレスから読み出したデータを参照してブロックマッチングを行い（ステップＳ２０）、検索対象範囲の全てについてブロックマッチングを終了したか否かの判定を行う（ステップＳ３０）。
ステップＳ３０において、検索対象範囲の全てについてブロックマッチングを終了していないと判定した場合、仮想最小２次元メモリ空間１内の全てのデータについてブロックマッチングが終了しているか否かの判定を行う（ステップＳ４０）。
【００７７】
ステップＳ４０において、仮想最小２次元メモリ空間１内の全てのデータについてブロックマッチングが終了していないと判定した場合、未処理のデータについてブロックマッチングを行うため、仮想最小２次元メモリ空間１の読み出しアドレスを更新し（ステップＳ５０）、ステップＳ２０に移行する。
一方、ステップＳ４０において、仮想最小２次元メモリ空間１内の全てのデータについてブロックマッチングが終了していると判定した場合、その仮想最小２次元メモリ空間１についてはブロックマッチングが終了している（参照済みである）ことから、新たな参照データ（例えば、参照フレームにおいて隣接する行方向データ）を上書きし（ステップＳ６０）、ステップＳ５０の処理に移行する。
【００７８】
ステップＳ３０において、検索対象範囲の全てについてブロックマッチングを終了したと判定した場合、動きベクトル推定処理を終了する。
次に、パディングモードについて説明する。
パディングモードは、図１８に示すように、動きベクトルの推定において、２次元メモリ空間３の記憶領域の境界が、参照フレームの画像境界（例えば、画像の右端や下端）と一致する状態である場合、適切に動きベクトル推定を行うためのモードである。
【００７９】
即ち、動きベクトル推定の際、２次元メモリ空間３において、検索対象領域（ブロック）が逐次移動される。このとき、２次元メモリ空間３の記憶領域の境界が、参照フレームの境界部分と一致する状態であり（図１８参照）、この記憶領域の境界を跨ぐデータが参照される場合、記憶領域の境界（右端あるいは下端）を越えて参照されるデータは本来存在しないデータである。そこで、パディングモードでは、記憶領域の境界（右端あるいは下端）を越えて参照されるデータについては、２次元メモリ空間３に記憶された境界のデータ（即ち、２次元メモリ空間３の右端や下端に記憶されたデータ）を参照して動きベクトル推定を行う。つまり、記憶領域の境界（右端あるいは下端）を越えて参照されるデータについては、参照フレームの画像境界の外周に、境界のデータを補完し、そのデータを参照する。したがって、パディングモードの場合、２次元メモリ空間３の記憶領域の境界が、参照フレームの画像境界と一致する状態である場合にも、適切に動きベクトル推定を行ことができる。
【００８０】
なお、本実施の形態においては、２次元メモリ空間３の右端あるいは下端の記憶領域の境界を越えてデータが参照される場合を例に挙げて説明したが、同様に、２次元メモリ空間３の上端あるいは左端の記憶領域の境界を越えてデータが参照される場合についても本発明を適用可能である。この場合、図２５に示す補正値を記憶領域の上端あるいは左端の記憶領域の境界を越えてデータが参照される場合に適合する値に変更することによって上述と同様の処理を実現できる。
【００８１】
次に、千鳥モードについて説明する。
千鳥モードは、読み出しアクセスモードの一つとして入力されるモードであり、図１９に示すように、動きベクトルの推定において、ブロックマッチングを高速に行うためのモードである。
即ち、動きベクトル推定の際、２次元メモリ空間３には、現フレームと時間的に隣接する参照フレームの一定領域が記憶される。そして、２次元メモリ空間３における仮想最小２次元メモリ空間１の４×４画素のデータのうち、第１行および第３行それぞれの第１列および第３列のデータの合計４画素を読み込み、これらのデータに対してブロックマッチングを行う。このような処理を２次元メモリ空間３の各仮想最小２次元メモリ空間１について行う。同様に、仮想最小２次元メモリ空間１において、読み出す画素データのアドレスを図２０に示すように変更しつつ、このような処理を繰り返す。すると、全画素を対象としたブロックマッチングを行うことができ、正確に最小誤差であるブロックを検索することができる。
【００８２】
ここで、ブロックマッチングを行う際、注目対象ブロックの各画素データと参照される各画素データとの累積残差が最小となるブロックが最も近似するブロックであると判定される。また、千鳥モードのブロックマッチングを行う際には、図２０に示すように、４回のブロックマッチングを行うことで、全ての画素データを対象とするブロックマッチングを行うことができる。このとき、千鳥モードでは、図２１に示すように、ブロックマッチングの実行回数に応じた累積残差に対する閾値を設定しておき、各ブロックに含まれる各画素データの累積残差が閾値を超えた場合、そのブロックのブロックマッチングを中止し、次の画素データのブロックマッチングへ移行する。したがって、全画素のブロックマッチングを行う必要がないため、２次元メモリ空間３に記憶されたデータに対するブロックマッチングを高速に行うことができる。即ち、動きベクトルの推定を高速に行うことができる。なお、ブロックマッチングを行う画素データの読み込みのパターンは、図１９および図２０に示すものの他、任意のアドレスから開始するパターンによって実行することが可能である。
【００８３】
なお、図２１において、閾値ｄ１，ｄ２，ｄ３が０（原点）とｄ４とを結んだ直線より所定値上回っているのは、千鳥モードのブロックマッチング過程で、例えば、図２０の（ａ）の読み込みを行った時点で、残差が上述の直線の値を超えているために、その後の処理で最小誤差となるブロックを切り捨てる（最小誤差でないとブロックマッチングの対象から外す）という事態を避けるためである。
【００８４】
このようにして、仮想最小２次元メモリ空間１上の任意の読み出しアドレスが指定され、かつ、読み出しアクセスモードおよびオプションモードが指定されると、その指定読み出しアドレスと指定読み出しアクセスモードと指定オプションモードとに基づいて、メモリ４Ａ〜４Ｄの対応する各アドレスが指定されてデータが読み出されるとともに、その読み出されたデータを同時に出力する。
【００８５】
例えば、いま、図１５において、仮想最小２次元メモリ空間１上において、アドレスａ03(2)が指定され、かつ、Ｍ３に示すような行方向アクセスモードおよびサーキュラーモードが指定された場合には、以下のようになる。すなわち、この場合には、メモリ４Ａはアドレスａ03(2)、メモリ４Ｂはアドレスｂ04(2)、メモリ４Ｃはアドレスｃ03(2)、メモリ４Ｄはアドレスｄ03(2)がそれぞれ指定されて、その各データを同時に読み出す。このとき、後述のように、２次元メモリ空間３の同一の行アドレスであって左端のアドレスがメモリ４Ｂのアドレスｂ04(2)と対応付けられており、２次元メモリ空間３の同一行アドレスの左端のアドレスに対してアクセスされることによって、メモリ４Ｂのアドレスｂ04(2)のデータが読み出される。
【００８６】
また、例えば、図１８において、仮想最小２次元メモリ空間１上において、アドレスｄ03(2)が指定され、かつ、Ｍ３に示すような行方向アクセスモードおよびパディングモードが指定された場合には、以下のようになる。すなわち、この場合には、メモリ４Ａおよびメモリ４Ｂからはデータが読み出されず、メモリ４Ｃはアドレスｃ03(2)、メモリ４Ｄはアドレスｄ03(2)がそれぞれ指定されて、その各データを同時に読み出す。このとき、画像境界を超えた部分については、境界のデータ、即ち、メモリ４Ｃのアドレスｃ03(2)のデータが読み出される。
【００８７】
また、例えば、図１９において、仮想最小２次元メモリ空間１上において、アドレスａn(0)が指定され、かつ、千鳥モードが指定された場合には、以下のようになる。すなわち、この場合には、例えば、メモリ４Ａはアドレスａn(0)、メモリ４Ｂはアドレスｂn(2)、メモリ４Ｃはアドレスｃn(0)、メモリ４Ｄはアドレスｄn(2)がそれぞれ指定されて、その各データを同時に読み出す。なお、さらに、図２０に示すようにブロックマッチングが行われる際には、所定のアドレスが指定され、各データを読み出す。
【００８８】
以上説明したように、この実施の形態におけるメモリの使用方法によれば、２次元メモリ空間３上の任意のアクセス位置と読み込みアクセスモードとオプションモードとを指定すると、その指定に応じて、動きベクトルの推定における各処理（サーキュラーモード、パディングモード、千鳥モードに規定される処理）が行われる。このため、この実施の形態に係るメモリの使用方法は、動きベクトルの推定に関するＳＩＭＤ演算の効率化に寄与できる。
【００８９】
次に、本発明の２次元データ・アクセス・メモリの実施形態の構成について、図２２および図２３を参照して説明する。
この実施形態に係る２次元データ・アクセス・メモリ１００は、上述した実施形態に係るメモリの使用方法を具体化したものであり、読み出しアドレス制御部１１１および読み出しデータ制御部１１２にオプションモードを示す信号が入力される点を除いて、その基本的な構成は、第１の実施の形態における２次元データ・アクセス・メモリ１０と同様である（図２２参照）。したがって、異なる部分である読み出しアドレス制御部１１１および読み出しデータ制御部１１２についてのみ説明し、他の部分については２次元データ・アクセス・メモリ１０の対応部分と同一番号を付して、説明を省略する。
【００９０】
読み出しアドレス制御部１１１は、読み出しアドレスの指定の際に、読み出しアクセスモードの指定に応じて、その読み出しアドレスのうちの所定のアドレスを所定値に変換してメモリ４Ａ〜４Ｄに出力するとともに、アクセスする空間が隣接する仮想最小２次元メモリ空間１を跨ぐ場合には（図３、図４参照）、指定読み出しアクセスモードに応じて、その読み出しアドレスのうちの上記以外のアドレスを補正してメモリ４Ａ〜４Ｄに出力するものである。
【００９１】
また、読み出しアドレス制御部１１１は、オプションモードとしてサーキュラーモードが入力された場合、２次元メモリ空間３の記憶領域の境界（右端）を越えてデータが参照されると、そのデータについては、参照するアドレスを循環的に記憶された所定データのアドレスに補正してメモリ４Ａ〜４Ｄに出力するものである。
【００９２】
また、読み出しアドレス制御部１１１は、オプションモードとしてパディングモードが入力された場合、２次元メモリ空間３の記憶領域の境界が、参照フレームの境界部分と一致する状態であるときに、この記憶領域の境界を跨ぐデータが参照されると、そのデータについては、代わりに、記憶領域の境界のデータのアドレスを参照してメモリ４Ａ〜４Ｄに出力するものである。
【００９３】
さらに、読み出しアドレス制御部１１１は、読み出しアクセスモードとして千鳥モードが入力された場合、仮想最小メモリ空間１において参照されるアドレスを所定の参照パターン（図１９参照）のアドレスに補正してメモリ４Ａ〜４Ｄに出力するものである。
読み出しデータ制御部１１２は、データの読み出しの際に、読み出しアドレスの一部に基づいて仮想最小２次元メモリ空間１上の読み出しアドレスを特定し、この特定された読み出しアドレスおよび指定された読み出しアクセスモードおよびオプションモードに応じて、メモリ４Ａ〜４Ｄからの各読み出しデータを並び替え、この並び替えた各読み出しデータを同時に出力するものである。
【００９４】
次に、図２２に示す読み出しアドレス制御部１１１と読み出しデータ制御部１１２の詳細な構成について、図２３を参照して説明する。
読み出しアドレス制御部１１１は、図２３に示すように、アドレスコントローラ１２１と、４つのアドレス補正部２２Ａ〜２２Ｄを備えている。
アドレスコントローラ１２１は、読み出しアドレスＡ０〜Ａ９の一部あるいは全部の指定と読み出しアクセスモードおよびオプションモードの指定に応じて、メモリ４Ａ〜４Ｄの下位２ビットのアドレスａ０、ａ１に相当する読み出しアドレスＡ４、Ａ５を、所定値に変換するためのアドレス変換信号をアドレス補正部２２Ａ〜２２Ｄに出力するとともに、アクセスする空間が隣接する仮想最小２次元メモリ空間１を跨ぐ場合およびオプションモードとしてサーキュラーモードが指定された場合には、読み出しアクセスモードの指定に応じて、メモリ４Ａ〜４Ｄの上位５ビットのアドレスａ２〜ａ７に相当する読み出しアドレスＡ２、Ａ３、Ａ６〜Ａ９を、所定値に補正するための補正信号をアドレス補正部２２Ａ〜２２Ｄに出力するものである。
【００９５】
なお、アドレス補正部２２Ａ〜２２Ｄの構成は、図６に示すアドレス補正部２２Ａ〜２２Ｄと同様であるため、説明を省略する。
読み出しデータ制御部１１２は、図２３に示すように、データコントローラ１２３と、４つのセレクタ２４Ａ〜２４Ｄとを備えている。
データコントローラ２３は、データの読み出しの際に、読み出しアドレスＡ０〜Ａ９の一部あるいは全部の指定に応じて仮想最小２次元メモリ空間１上の読み出しアドレスを特定し、この特定された読み出しアドレスからデータを読み出す方向を指定する読み出しアクセスモードと指定されたオプションモードとに応じて、セレクタ２４Ａ〜２４Ｄがメモリ４Ａ〜４Ｄを選択する際の選択信号をセレクタ２４Ａ〜２４Ｄにそれぞれ出力するものである。
【００９６】
なお、セレクタ２４Ａ〜２４Ｄの構成は、図６に示すセレクタ２４Ａ〜２４Ｄと同様であるため、説明を省略する。
次に、このような構成からなる実施形態に係る２次元データ・アクセス・メモリの動作について、図２４〜図２８を参照して説明する。このとき、アドレスコントローラ１２１とアドレス補正部２２Ａ〜２２Ｄとによる読み出しアドレスの制御と、データコントローラ１２３とセレクタ２４Ａ〜２４Ｄによる読み出したデータの制御が必要であり、各オプションモードが入力された場合および読み出しアクセスモードとして千鳥モードが入力された場合に分けて、アドレス制御および読み出したデータの制御を説明する。
【００９７】
オプションモードとしてサーキュラーモードが入力された場合、図２３に示すデータコントローラ１２３は、読み出しアドレスＡ０、Ａ１、Ａ４、Ａ５の指定に応じて仮想最小２次元メモリ空間１上の読み出しアドレスを特定するとともに、読み出しアクセスモードに応じて、セレクタ２４Ａ〜２４Ｄがメモリ４Ａ〜４Ｄを選択する際の選択信号をセレクタ２４Ａ〜２４Ｄにそれぞれ出力する。
【００９８】
また、図２３に示すアドレスコントローラ１２１は、読み出しアドレスＡ０、Ａ１、Ａ４、Ａ５の指定と読み出しアクセスモードの指定に応じて、メモリ４Ａ〜４Ｄの下位２ビットのアドレスａ０、ａ１に相当する読み出しアドレスＡ４、Ａ５を、所定値に変換するためのアドレス変換信号をアドレス補正部２２Ａ〜２２Ｄにそれぞれ出力する。
【００９９】
ここで、２次元メモリ空間３の記憶領域の境界を跨ぐデータが参照されると、アドレスコントローラ１２１は、そのデータのアドレスを所定データのアドレス（２次元メモリ区間３に循環的に記憶されたデータのアドレス）に補正（変換）するための補正信号をアドレス補正部２２Ａ〜２２Ｄに出力する。
例えば、図２４のＮｏ２に示すように、読み出しアドレス「Ａ０、Ａ１」、「Ａ４、Ａ５」として「１０」、「００」が指定され、読み出しアクセスモードとして行方向アクセスモード（００）が指定された場合には、アドレス補正部２２Ａは“−３”、アドレス補正部２２Ｂは“０”、アドレス補正部２２Ｃは“０”、およびアドレス補正部２２Ｄは“０”をそれぞれ補正値として出力する。
【０１００】
なお、同様に列方向アクセスモードあるいは列方向２段アクセスモードが指定された場合、図１５に示すように２次元メモリ空間３が縦ｎバイトからなるとき、列方向に境界を跨いで参照されたデータのアドレスに対しては、“−（ｎ−４）”が補正値として出力される。図２５は、列方向アクセスモードおよび列方向２段アクセスモードが指定された場合の上位３ビット目以降のアドレス補正値を示す図である。
【０１０１】
ここで、読み出しアドレスＡ０〜Ａ９が符号なし２の補数で表現されている場合には、列方向に２次元メモリ空間３の境界（下端）を跨ぐと読み出しアドレスが“０”に戻ることとなる。したがって、この場合、図２５に示す内容のテーブルを設ける必要がない。ただし、行方向アクセスモードの場合、読み出しアドレスは、２次元メモリ空間３の境界（右端）を跨ぐ場合にも“０”には戻らないため、図２４に示す内容のテーブルを設ける必要がある。
【０１０２】
次に、オプションモードとしてパディングモードが入力された場合、図２３に示すデータコントローラ１２３は、読み出しアドレスＡ０、Ａ１、Ａ４、Ａ５の指定に応じて仮想最小２次元メモリ空間１上の読み出しアドレスを特定するとともに、読み出しアクセスモードに応じて、セレクタ２４Ａ〜２４Ｄがメモリ４Ａ〜４Ｄを選択する際の選択信号をセレクタ２４Ａ〜２４Ｄにそれぞれ出力する。
【０１０３】
例えば、図２６のＮｏ２に示すように、読み出しアドレス「Ａ０、Ａ１」、「Ａ４、Ａ５」として「１０」、「００」が指定され、読み出しアクセスモードとして行方向アクセスモード（００）が指定された場合には、セレクタ２４Ａはメモリ４Ｂ、セレクタ２４Ｂはメモリ４Ｃ、セレクタ２４Ｃはメモリ４Ｄ、およびセレクタ２４Ｄはメモリ４Ｄをそれぞれ選択する。
【０１０４】
また、図２３に示すアドレスコントローラ１２１は、読み出しアドレスＡ０、Ａ１、Ａ４、Ａ５の指定と読み出しアクセスモードの指定に応じて、メモリ４Ａ〜４Ｄの下位２ビットのアドレスａ０、ａ１に相当する読み出しアドレスＡ４、Ａ５を、所定値に変換するためのアドレス変換信号をアドレス補正部２２Ａ〜２２Ｄにそれぞれ出力する。
【０１０５】
次に、読み出しアクセスモードとして千鳥モードが入力された場合、図２３に示すデータコントローラ１２３は、読み出しアドレスＡ０、Ａ１、Ａ４、Ａ５の指定に応じて仮想最小２次元メモリ空間１上の読み出しアドレスを特定するとともに、セレクタ２４Ａ〜２４Ｄがメモリ４Ａ〜４Ｄを選択する際の選択信号をセレクタ２４Ａ〜２４Ｄにそれぞれ出力する。
【０１０６】
例えば、図２７のＮｏ４２に示すように、読み出しアドレス「Ａ０、Ａ１」、「Ａ４、Ａ５」として「１０」、「００」が指定された場合には、セレクタ２４Ａはメモリ４Ｂ、セレクタ２４Ｂはメモリ４Ｄ、セレクタ２４Ｃはメモリ４Ａ、およびセレクタ２４Ｄはメモリ４Ｃをそれぞれ選択する。
また、図２３に示すアドレスコントローラ１２１は、読み出しアドレスＡ０、Ａ１、Ａ４、Ａ５の指定に応じて、メモリ４Ａ〜４Ｄの下位２ビットのアドレスａ０、ａ１に相当する読み出しアドレスＡ４、Ａ５を、所定値に変換するためのアドレス変換信号をアドレス補正部２２Ａ〜２２Ｄにそれぞれ出力する。
【０１０７】
例えば、図２８のＮｏ１８に示すように、読み出しアドレス「Ａ０、Ａ１」、「Ａ４、Ａ５」として「１０」、「００」が指定された場合には、アドレス補正部２２Ａは、メモリ４Ａ〜４Ｄの下位２ビットのアドレスａ０、ａ１のアドレスを、メモリ４Ａは「０１」、メモリ４Ｂは「００」、メモリ４Ｃは「０１」、およびメモリ４Ｄは「００」とするための補正値を出力する。
【０１０８】
以上説明したように、この実施形態に係る２次元データ・アクセス・メモリによれば、千鳥モードにおいては２次元メモリ空間上の指定位置から不連続に並んだデータを物理的なメモリ４Ａ〜４Ｄから同時に読み出し、動きベクトル推定におけるブロックマッチングが行える上に、サーキュラーモードでは２次元メモリ空間の記憶領域の境界を跨ぐデータが参照された場合にも、参照フレームにおける正しいアドレスのデータが参照される。さらに、パディングモードでは、参照フレームの境界を越えてデータが参照される場合にも、境界のデータが補完され、そのデータが参照される。したがって、効率的かつ適切な動きベクトル推定が可能となり、また、その処理における効率的なＳＩＭＤ演算が実現可能となる。
【０１０９】
次に、本発明の演算処理装置の実施形態の構成について説明する。
この実施形態に係る演算処理装置は、図２２および図２３に示す２次元データ・アクセス・メモリ１００を応用して、ＳＩＭＤ型プロセッサ４１に動きベクトル推定処理を行わせるようにしたものでる。
このために、この演算処理装置は、図２９に示すように、２次元データ・アクセス・メモリ１００に、ＳＩＭＤ型プロセッサ１４１と、外部Ｉ／Ｆ回路１４２とが接続されている。
【０１１０】
ＳＩＭＤ型プロセッサ１４１は、後述のような所定の演算処理に応じて、２次元データ・アクセス・メモリ１００におけるデータの読み込みまたは書き込みの際のアドレスを指定できるとともに、上述のアクセスモードおよびオプションモードを命令プログラムで設定可能なプロセッサである。また、外部Ｉ／Ｆ回路１４１は、外部とのデータの授受を行うようになっている。
【０１１１】
次に、このような構成からなる実施形態に係る演算処理装置の動作例について説明する。図３０は、この実施の形態に係る演算処理装置の動きベクトル推定処理の動作を示すフローチャートである。
図３０において、演算処理装置は、現フレーム内の動きベクトル推定を行うブロックを指定し（ステップＳ１０１）、そのブロックの中心を基準として、参照フレームに基づく検索対象範囲を決定する（ステップＳ１０２）。なお、図３１は、現フレームと、参照フレームと、検索対象範囲の関係を示す図であり、併せて、検索対象範囲において２次元データ・アクセス・メモリ１００に記憶される領域を示している。
【０１１２】
そして、演算処理装置は、検索対象範囲の一部（以下、「ローカル領域」と言う。）を２次元データ・アクセス・メモリ１００に読み込み（ステップＳ１０３）、ローカル領域が参照フレームに完全に含まれている（境界を越えていない）か否かの判定を行う（ステップＳ１０４）。
ステップＳ１０４において、ローカル領域が参照フレームに完全には含まれていないと判定した場合、演算処理装置は、ローカル領域が参照フレームの境界を超えている範囲（はみ出している範囲）が３画素以内であるか否かの判定を行い（ステップＳ１０５）、ローカル領域が参照フレームの境界を超えている範囲（はみ出している範囲）が３画素以内であると判定した場合、オプションモードをパディングモードに設定し、はみ出している範囲については境界のデータを参照しながらブロックマッチングを行う（ステップＳ１０６）。そして、演算処理装置の処理は、ステップＳ１０９に移行する。
【０１１３】
ステップＳ１０５において、ローカル領域が参照フレームの境界を超えている範囲（はみ出している範囲）が３画素以内でないと判定した場合、演算処理装置は、パディングモードでは補完できない範囲（４画素以上）を参照するものであることから、オプションモードをデフォルトモード（サーキュラーモードおよびパディングモードを行わない通常処理のモード）に設定し、はみ出している範囲には、境界のデータを別処理で補完してブロックマッチングを行う（ステップＳ１０８）。そして、演算処理装置の処理は、ステップＳ１０９に移行する。
【０１１４】
また、ステップＳ１０４において、ローカル領域が参照フレームに完全に含まれていると判定した場合、演算処理装置は、オプションモードをサーキュラーモードに設定し、２次元データ・アクセス・メモリ１００における参照済みの記憶領域に、参照フレームにおいてローカル領域に隣接するデータを上書きし、ローカル領域の境界を跨いで参照されるデータについては、上書きされた所定データを参照してブロックマッチングを行う（ステップＳ１０８）。そして、演算処理装置の処理は、ステップＳ１０９に移行する。
【０１１５】
ステップＳ１０６〜Ｓ１０８の後、演算処理装置は、検索対象範囲の全部を検索（ブロックマッチング）済みであるか否かの判定を行い（ステップＳ１０９）、検索対象範囲の全部を検索済みでないと判定した場合、続いて検索を行う範囲にローカル領域を更新する（ステップＳ１１０）。そして、演算処理装置の処理は、ステップＳ１０３に移行する。
【０１１６】
ステップＳ１０９において、検索対象範囲の全部を検索済みであると判定した場合、演算処理装置は、ブロックマッチングの結果、参照フレームの最小誤差であったブロックとの位置関係に基づいて、動きベクトルを推定し（ステップＳ１１１）、現フレームの全てのブロックについて動きベクトル推定が終了したか否かの判定を行う（ステップＳ１１２）。
【０１１７】
ステップＳ１１２において、現フレームの全てのブロックについて動きベクトル推定が終了していないと判定した場合、現フレームの動きベクトル推定を行うブロックの位置を更新し（ステップＳ１１３）、ステップＳ１０１に移行する。一方、ステップＳ１１２において、現フレームの全てのブロックについて動きベクトル推定が終了したと判定した場合、動きベクトル推定処理を終了する。
【０１１８】
以上説明したように、この実施形態に係る演算処理装置によれば、この実施形態に係る２次元データ・アクセス・メモリを利用しているので、効率的かつ適切な動きベクトル推定が可能となり、また、その処理における効率的なＳＩＭＤ演算が実現可能となる。
以上のように、本発明の第２の実施形態に係る２次元データ・アクセス・メモリによれば、千鳥モードにおいては２次元メモリ空間上の指定位置から不連続に並んだデータを物理的なメモリ４Ａ〜４Ｄから同時に読み出し、動きベクトル推定におけるブロックマッチングが行える上に、サーキュラーモードでは２次元メモリ空間の記憶領域の境界を跨ぐデータが参照された場合にも、参照フレームにおける正しいアドレスのデータが参照される。さらに、パディングモードでは、参照フレームの境界を越えてデータが参照される場合にも、境界のデータが補完され、そのデータが参照される。したがって、効率的かつ適切な動きベクトル推定が可能となり、また、その処理における効率的なＳＩＭＤ演算が実現可能となる。
【０１１９】
さらに、本発明の第２の実施形態に係る演算処理装置によれば、本発明の第２の実施形態に係る２次元データ・アクセス・メモリを利用しているので、効率的かつ適切な動きベクトル推定が可能となり、また、その処理における効率的なＳＩＭＤ演算が実現可能となる。
なお、第１および第２の実施形態において、アクセスモードあるいはオプションモードを指定するための信号線をアドレス信号（読み出しアドレス信号あるいは書き込みアドレス信号）とは別の信号として入力することとして説明したが、アクセスモードあるいはオプションモードを指定するための信号線をアドレス信号とまとめて入力することとしてもよい。例えば、図３２に示すように、アドレス信号の最上位ビット部分にアクセスモードあるいはオプションモードを割り当てることとしてもよい。図３３は、図３２のように信号を割り当てた場合の読み出しアドレス制御部と読み出しデータ制御部の構成例を示すブロック図である。
【０１２０】
このような構成とした場合、２次元データ・アクセス・メモリを使用して処理を行う場合、ユーザは、アドレスを入力する際に、併せてアクセスモードあるいいはオプションモードを入力するのみでよいため、入力操作がより簡単なものとなる。また、２次元データ・アクセス・メモリの構成がより単純なものとなるため、回路規模を縮小することができ、集積度を向上させること等が可能となる。
【０１２１】
【発明の効果】
以上説明したように、本発明のメモリの使用方法によれば、画像データに係るＳＩＭＤ演算の効率化に寄与できる。
また、本発明の演算処理装置によれば、画像データに係るＳＩＭＤ演算を効率的に行うことができる。
【図面の簡単な説明】
【図１】仮想最小２次元メモリ空間の一例を示す図である。
【図２】仮想最小２次元メモリ空間の物理メモリへのマッピングを示す図である。
【図３】仮想最小２次元メモリ空間に基づいて形成される２次元メモリ空間の一例を示す図である。
【図４】アクセスモードを説明する図である。
【図５】本発明の第１の実施形態に係る２次元データ・アクセス・メモリの実施形態の構成を示すブロック図である。
【図６】図５の読み出しアドレス制御部と読み出しデータ制御部の構成を示すブロック図である。
【図７】図５の書き込みアドレス制御部と書き込みデータ制御部の構成を示すブロック図である。
【図８】読み出しアドレスと読み出しアクセスモードに応じて、各セレクタがどのメモリの出力を選択するかを示す図である。
【図９】読み出しアドレスの変換例を示す図である。
【図１０】読み出しアドレスの補正例を示す図である。
【図１１】本発明の第１の実施形態に係る演算処理装置の実施形態の構成を示すブロック図である。
【図１２】図１１に示す２次元データ・アクセス・メモリの動作例（書き込み例）を示す図である。
【図１３】その２次元データ・アクセス・メモリの他の動作例を示す図である。
【図１４】その２次元データ・アクセス・メモリのさらに他の動作例を示す図である。
【図１５】２次元メモリ空間３の記憶領域を跨いだ場合に、サーキュラーモードにおいて参照されるアドレスを示す図である。
【図１６】サーキュラーモードの場合の動作例を示す図である。
【図１７】サーキュラーモードで動きベクトル推定を行うための処理を表すフローチャートである。
【図１８】パディングモードが行われる場合である、２次元メモリ空間３の記憶領域の境界が、参照フレームの画像境界と一致する状態を示す図である。
【図１９】千鳥モードにおけるデータ読み込みパターンの一例を示す図である。
【図２０】千鳥モードにおけるデータ読み出し順序を示す図である。
【図２１】ブロックマッチングの実行回数と累積残差に対する閾値との関係を示す図である。
【図２２】本発明の第２の実施形態に係る２次元データ・アクセス・メモリの実施形態の構成を示すブロック図である。
【図２３】読み出しアドレス制御部１１１と読み出しデータ制御部１１２の詳細な構成を示す図である。
【図２４】サーキュラーモードにおいて、行方向アクセスモードが指定された場合の上位３ビット目以降のアドレス補正値を示す図である。
【図２５】サーキュラーモードにおいて、列方向アクセスモードおよび列方向２段アクセスモードが指定された場合の上位３ビット目以降のアドレス補正値を示す図である。
【図２６】パディングモードにおいて、各セレクタがどのメモリの出力を選択するかを示す図である。
【図２７】千鳥モードにおいて、各セレクタがどのメモリの出力を選択するかを示す図である。
【図２８】千鳥モードにおけるメモリ４Ａ〜４Ｄの下位２ビットのアドレスａ０、ａ１のアドレスを示す図である。
【図２９】本発明の第２の実施形態に係る演算処理装置の実施形態の構成を示すブロック図である。
【図３０】本発明の第２の実施形態に係る演算処理装置の動きベクトル推定処理の動作を示すフローチャートである。
【図３１】現フレームと、参照フレームと、検索対象範囲の関係および検索対象範囲において２次元データ・アクセス・メモリ１００に記憶される領域を示す図である。
【図３２】アドレス信号の最上位ビット部分にアクセスモードあるいはオプションモードを割り当てた場合のデータ構成例を示す図である。
【図３３】図３２のように信号を割り当てた場合の読み出しアドレス制御部と読み出しデータ制御部の構成例を示すブロック図である。
【符号の説明】
１  仮想最小２次元メモリ空間
２  仮想的な記憶素子
３  ２次元メモリ空間
４Ａ〜４Ｄ  物理的なメモリ
１１  読み出しアドレス制御部
１２  読み出しデータ制御部
１３  書き込みアドレス制御部
１４  書き込みデータ制御部
２１  アドレスコントローラ
２２Ａ〜２２Ｄ  アドレス補正部
２３  データコントローラ
２４Ａ〜２４Ｄ  セレクタ
３１  アドレスコントローラ
３２Ａ〜３２Ｄ  アドレス補正部
３３  データコントローラ
３４Ａ〜３４Ｄ  セレクタ
【図１】
0003931577.tif 000002
【図２】
0003931577.tif 000003
【図３】
0003931577.tif 000004
【図４】
0003931577.tif 000005
【図５】
0003931577.tif 000006
【図６】
0003931577.tif 000007
【図７】
0003931577.tif 000008
【図８】
0003931577.tif 000009
【図９】
0003931577.tif 000010
【図１０】
0003931577.tif 000011
【図１１】
0003931577.tif 000012
【図１２】
0003931577.tif 000013
【図１３】
0003931577.tif 000014
【図１４】
0003931577.tif 000015
【図１５】
0003931577.tif 000016
【図１６】
0003931577.tif 000017
【図１７】
0003931577.tif 000018
【図１８】
0003931577.tif 000019
【図１９】
0003931577.tif 000020
【図２０】
0003931577.tif 000021
【図２１】
0003931577.tif 000022
【図２２】
0003931577.tif 000023
【図２３】
0003931577.tif 000024
【図２４】
0003931577.tif 000025
【図２５】
0003931577.tif 000026
【図２６】
0003931577.tif 000027
【図２７】
0003931577.tif 000028
【図２８】
0003931577.tif 000029
【図２９】
0003931577.tif 000030
【図３０】
0003931577.tif 000031
【図３１】
0003931577.tif 000032
【図３２】
0003931577.tif 000033
【図３３】
0003931577.tif 000034