(57)【要約】  プログラマブルデータ処理回路は、ピクセル値又はより一般的にはデータ値を信号におけるポジションの関数として格納するメモリを有する。プログラマブルデータ処理回路は、複数のデータ値がメモリからのパラレル出力のためどのように構成される必要があるか示す選択されたパラメータ値セットの指示を有する命令をサポートする。異なるパラメータ値セットを示す命令が、互いに合成されて実行可能である。プログラマブルデータ処理回路は、パラメータ格納回路から選択されたパラメータ値セットを抽出し、選択されたパラメータ値セットに少なくとも部分的に応じて、メモリ回路のメモリポートとデータポートとの間のスイッチング回路を制御することによってこのタイプの命令に応答する。
2009536392.tif 000002
【特許請求の範囲】
【請求項１】
メモリポートを有するメモリ回路と、
データポートと、
前記メモリポートと前記データポートとの間に接続され、制御信号に応じて前記データポートの各データ値のポジションと前記メモリポートのデータ値のポジションとの間の制御可能な接続を提供する制御可能スイッチング回路と、
各パラメータ値セットが少なくとも１つのパラメータ値を有し、各パラメータ値セットは前記データポートのデータ値のポジションの前記メモリポートのデータ値のポジションへの割当てを少なくとも部分的に決定する複数のパラメータ値セットを格納するパラメータ格納回路と、
前記スイッチング回路と前記パラメータ格納回路とに接続される命令実行制御回路と、
を有するプログラマブルデータ処理回路であって、
前記命令実行制御回路の命令セットは、選択されたパラメータ値セットの指示を有する命令を有し、
前記命令実行制御回路は、前記パラメータ格納回路から前記選択されたパラメータ値セットを抽出することにより前記命令に応答し、前記選択されたパラメータ値セットを用いて決定された割当てに従って前記スイッチング回路を制御するよう構成されるプログラマブルデータ処理回路。
【請求項２】
前記命令はさらに、信号におけるデータ値の信号位置を示す位置オペランドを有し、
前記命令実行制御回路は、前記信号位置と前記選択されたパラメータ値セットとから前記割当てを計算するよう構成される、請求項１記載のプログラマブルデータ処理回路。
【請求項３】
前記命令実行制御回路は、前記メモリ回路にアドレスを供給し、前記信号位置と前記選択されたパラメータ値セットとから前記アドレスを計算するよう構成される、請求項２記載のプログラマブルデータ処理回路。
【請求項４】
前記メモリ回路は、複数の少なくとも部分的に独立にアドレス指定可能なメモリバンクを有し、
各メモリバンクは、前記メモリポートを介し前記データ値の各ポジションの少なくとも１つのデータ値を読み書きするよう構成され、
前記命令実行制御回路は、前記メモリバンクにアドレスを供給し、前記信号位置と前記選択されたパラメータ値セットとから前記アドレスを計算するよう構成される、請求項２記載のプログラマブルデータ処理回路。
【請求項５】
前記パラメータ値セットはそれぞれ、オフセット値を少なくとも規定し、
前記命令実行制御回路は、前記オフセット値を前記位置オペランドのバンクの有効数に対するモジュローから求められた値に加算することにより前記割当てを計算するよう構成される、請求項４記載のプログラマブルデータ処理回路。
【請求項６】
前記パラメータ値セットはそれぞれ、オフセット値を少なくとも規定し、
前記命令実行制御回路は、前記オフセット値と前記位置オペランドから求められた値との和に応じて、前記メモリバンクのアドレスを計算するよう構成される、請求項４記載のプログラマブルデータ処理回路。
【請求項７】
前記パラメータ値セットはそれぞれ、サブサンプリングファクタを少なくとも規定し、
前記命令実行制御回路は、前記サブサンプリングファクタと前記位置オペランドから求められた値との積から、前記割当て及び／又は前記メモリバンクのアドレスを計算するよう構成される、請求項４記載のプログラマブルデータ処理回路。
【請求項８】
前記パラメータ値セットはそれぞれ、前記命令について使用されるメモリバンクの有効数を少なくとも規定し、
前記命令実行制御回路は、前記位置オペランドの前記使用されるメモリバンクの有効数に対するモジュローを用いて求められる値から、前記割当て及び／又は前記メモリバンクのアドレスを計算するよう構成される、請求項４記載のプログラマブルデータ処理回路。
【請求項９】
前記データポートに接続される入出力を有するパラレル計算回路をさらに有する、請求項１記載のプログラマブルデータ処理回路。
【請求項１０】
前記データポートと前記パラレル計算回路との間で機能的に接続されるレジスタファイルをさらに有する、請求項９記載のプログラマブルデータ処理回路。
【請求項１１】
前記命令実行制御回路は、前記命令のオペランドによりアドレス指定されるレジスタから、前記パラメータ値セットの選択の指示を受け取るよう構成される、請求項１記載のプログラマブルデータ処理回路。
【請求項１２】
前記命令実行制御回路は、文字通りのデータから前記パラメータ値セットの選択の指示を受け取るよう構成される、請求項１記載のプログラマブルデータ処理回路。
【請求項１３】
前記命令による前記メモリ回路の各データ値を、互いに異なるパラメータ値セットの選択を示す指示を有する命令を利用して、同時にアドレス指定するプログラムによってプログラムされる、請求項１記載のプログラマブルデータ処理回路。
【請求項１４】
前記メモリ回路は、前記メモリポートに接続されるキャッシュメモリと、バックグラウンドメモリと、前記パラメータ値セットを用いて前記バックグラウンドメモリの各位置について前記キャッシュメモリの各位置を選択するよう構成されるキャッシュ制御回路とを有する、請求項１記載のプログラマブルデータ処理回路。
【請求項１５】
請求項１記載のプログラマブルデータ処理回路のためのプログラムを有するコンピュータプログラムであって、
前記プログラムは、各命令が選択されたパラメータ値セットの各指示を有する命令を有し、
前記命令の少なくとも一部は、互いに合成された互いに異なるパラメータ値セットを選択し、
前記プログラムの一部において、該プログラムの実行中、前記命令の各部分によりアドレス指定されるデータ値が、前記選択されたパラメータ値セットに少なくとも部分的に応じて、各データ値とパラレル出力中のデータポートの各パラレルポートへのマッピングを制御するため、メモリ回路に同時に格納されるコンピュータプログラム。
【請求項１６】
各命令が選択されたパラメータ値セットの各指示を有する命令であって、該命令の少なくとも一部が互いに合成された互いに異なるパラメータ値セットを選択する命令を実行するステップと、
パラメータ格納回路から前記選択されたパラメータ値セットを抽出することによって、前記命令に応答するステップと、
メモリ回路のメモリポートとデータポートとの間のスイッチング回路を、前記データポートの各データ値のポジションと前記メモリポートのデータ値の各ポジションとの間の制御可能な接続を提供するため、前記選択されたパラメータ値セットに少なくとも部分的に応じて制御するステップと、
を有する方法。
【請求項１７】
前記命令の信号位置オペランドと前記選択されたパラメータ値セットとの組み合わせから、前記データポートのデータ値の各ポジションの前記メモリポートのデータ値の各ポジションへの割当てを計算するステップを有する、請求項１６記載の方法。
【請求項１８】
前記メモリ回路に少なくとも１つのアドレスを適用し、前記信号位置と前記選択されたパラメータ値セットとから、前記メモリ回路の少なくとも１つのアドレスを計算するステップを有する、請求項１７記載の方法。
【請求項１９】
前記メモリ回路は、複数の少なくとも部分的に独立にアドレス指定可能なメモリバンクを有し、
各メモリバンクは、前記メモリポートを介し前記データ値の各ポジションの少なくとも１つのデータ値を読み書きするよう構成され、
当該方法は、前記メモリバンクにアドレスを供給し、前記信号位置と前記選択されたパラメータ値セットとから前記アドレスを計算するステップを有する、請求項１７記載の方法。
【請求項２０】
前記パラメータ値セットはそれぞれ、オフセット値を少なくとも規定し、
前記割当ては、前記オフセット値を前記位置オペランドのバンクの有効数に対するモジュローから求められた値に加算することにより計算される、請求項１９記載の方法。
【請求項２１】
前記パラメータ値セットはそれぞれ、オフセット値を少なくとも規定し、
当該方法は、前記オフセット値と前記位置オペランドから求められた値との和に応じて、前記メモリバンクのアドレスを計算するステップを有する、請求項１９記載の方法。
【請求項２２】
前記パラメータ値セットはそれぞれ、サブサンプリングファクタを少なくとも規定し、
当該方法は、前記サブサンプリングファクタと前記位置オペランドから求められた値との積から、前記割当て及び／又は前記メモリバンクのアドレスを計算するステップを有する、請求項１９記載の方法。
【請求項２３】
前記パラメータ値セットはそれぞれ、前記命令について使用されるメモリバンクの有効数を少なくとも規定し、
当該方法は、前記位置オペランドの前記使用されるメモリバンクの有効数に対するモジュローを用いて求められる値から、前記割当て及び／又は前記メモリバンクのアドレスを計算するステップを有する、請求項１９記載の方法。
【請求項２４】
データ値を処理するプロセッサであって、
各命令が選択されたパラメータ値セットの各指示を有する命令であって、該命令の少なくとも一部が互いに合成された互いに異なるパラメータ値セットを選択する命令を実行する手段と、
パラメータ格納回路から前記選択されたパラメータ値セットを抽出することによって、前記命令に応答する手段と、
メモリ回路のメモリポートとデータポートとの間のスイッチング回路を、前記データポートの各データ値のポジションと前記メモリポートのデータ値の各ポジションとの間の制御可能な接続を提供するため、前記選択されたパラメータ値セットに少なくとも部分的に応じて制御する手段と、
を有するプロセッサ。
【請求項２５】
信号におけるポジションの関数としてデータ値を格納する手段と、
複数のデータ値がメモリからのパラレル出力のためどのように構成される必要があるか示す選択されたパラメータ値セットの指示を有する命令であって、異なるパラメータ値セットを示す命令が互いに合成されて実行可能な命令をサポートする手段と、
前記異なるパラメータ値セットを示す命令に、パラメータ格納回路から前記選択されたパラメータ値セットを抽出し、前記選択されたパラメータ値セットに少なくとも部分的に応じて、メモリ回路のメモリポートとデータポートの間のスイッチング回路を制御することによって応答する手段と、
を有するプログラマブルデータ処理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ピクセル位置の関数である２次元画像におけるピクセル値などの位置に依存するデータ値を格納するメモリを備えたプログラマブルデータ処理回路に関する。本発明はまた、位置に依存したデータ値の処理方法と、位置に依存したデータ値を処理するコンピュータプログラムプロダクトに関する。
【背景技術】
【０００２】
画像処理は、一般にメモリに格納されているピクセル値の利用を伴う。異なるピクセル位置のピクセル値が異なるメモリ位置に格納される。ピクセル位置のメモリ位置への各種マッピングが利用可能である。このようなマッピングは、画像処理に対して大きな効果を有している。ＵＳ２００５／００８３３３７は、適切なマッピングによってメモリアクセススピードをどのように向上させることが可能であるか記載している。ＷＯ２００５／１０４０２７は、複数のピクセル位置のピクセル値が画像処理演算用のオペランドとしてパラレルに使用される際にマッピングを補償するメモリアクセス回路について記載する。
【０００３】
ＵＳ２００５／００８３３３７は、メモリに画像データを格納する他の方法を提供する画像処理システムについて記載する。異なる画像処理アルゴリズムが、異なるピクセル位置のシーケンスに従ってピクセル値へのアクセスを要求する。従って、例えば、画像の表示はライン単位による読み込みを要求し、画像伸張は典型的にはブロックベースの読み込みを要求する。異なるメモリ部分に分散されて格納されているピクセル値より、連続的に格納されているピクセル値へのより高速なアクセスを提供するメモリデバイスが使用される。この結果、表示のためのアクセスは、画像ラインに沿ったピクセル値が連続的に格納されている場合に最も迅速に実行可能であるが、ブロックベースのアクセスは、ブロックの連続するラインに沿ったピクセル値が連続的に格納されている場合に最も迅速に実行可能である。
【０００４】
多くのアプリケーションでは、ラインベースアクセスを利用した表示と、ブロックベースアクセスを利用した伸張との双方が利用される。ＵＳ２００５／００８３３３７は、異なるアクセス形式について最適なスピードを実現することができるように、異なる方法によりグループ化されたピクセル値を格納することによってこれをサポートする。このグループ化は、ブロック幅及び高さなどの各パラメータ、アドレスの確率分布並びにメモリバス幅及びメモリバンク数などのメモリデバイスの各性質に依存する。ピクセル値が書き込まれるとき、ピクセル値の複数のコピーが、ピクセル値の読み込み方法に従って異なる方法により書き込み及びグループ化される。
【０００５】
ＵＳ２００５／００８３３３７は、論理アドレス（ピクセル座標など）からデータ値が書き込まれるメモリの物理アドレスへのアドレスマッピングを提供する。異なるグループ化によりピクセル値を格納するのに異なるアドレスマッピングが必要とされる。マッピングを記述するため、ルックアップテーブルメモリが設けられる。アドレス生成手段が、ルックアップテーブルを利用して論理アドレスから物理アドレスを生成する。アドレスマッピングは、所与のプログラムについて最小コスト（アクセススピードに関する）をもたらすマッピングの決定に基づき選択される。ＵＳ２００５／００８３３３７は、複数のピクセル値のパラレル処理に関するものでない。
【０００６】
ＷＯ２００５／１０４０２７は、ワーキングメモリからのピクセル値へのパラレルアクセスを提供する画像処理回路について記載する。ワーキングメモリは、ある領域のピクセル位置のピクセル値を格納する。典型的には、この領域は、そのピクセル値がメインメモリに格納されるより大きな画像の一部である。この場合、ワーキングメモリは、メインメモリからのピクセル値の一部のコピーを格納するキャッシュとして機能する。
【０００７】
ワーキングメモリは、ピクセル値をパラレルに出力可能なメモリバンクを有する。パラレル出力されるピクセルは、任意的にはレジスタファイルのレジスタへの中間的なパラレル格納後、パラレルピクセルプロセッサ（ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）回路など）に供給される。ピクセル値がパラレルに供給されるとき、パラレル出力におけるピクセル値の各位置と、アドレス指定された画像部分（アドレス指定されたブロックなど）に関する対応するピクセル位置の相対位置との間には所定の関係が存在しなければならない。
【０００８】
ＷＯ２００５／１０４０２７では、ピクセル値はラインセグメント形式にラップアラウンドされるワーキングメモリに格納され、画像の水平方向のラインセグメントに沿った連続するピクセル位置のピクセル値は、連続するラストメモリバンクから連続する第１メモリバンクにラップアラウンドされる連続するバンクに格納される。次の水平方向のラインのセグメントのピクセル位置のピクセル値が、前のラインセグメント（任意的には同じメモリバンクに整列された）のピクセル値に続いて同様に格納される。典型的には、格納されるピクセル値のピクセル位置の領域が、画像に沿ってスライドする。この場合、当該領域からスライドされたピクセル位置のメモリ位置が、当該領域にスライドされたピクセル位置について再利用可能である。このため、領域の左上の位置のピクセル値を格納する所定のメモリバンクは存在しないこととなる。
【０００９】
ＷＯ２００５／１０４０２７は、格納されている領域内のピクセル位置のブロックのピクセル値のパラレル出力を可能にする。このパラレル出力は、領域のブロックのアドレスを提供することによって制御される（ブロックの左上隅のｘ−ｙ座標などに関して）。ワーキングメモリは、ブロックのアドレスに対してピクセル位置により規定される出力におけるブロックからのピクセル値を出力することによって応答する。従って例えば、ブロックの左上隅の位置のピクセル値が所定の第１出力において出力されるなどである。
【００１０】
このタイプの処理はメモリアクセスを制御するため多数のパラメータを必要とすることに留意することが重要である。例えば、アドレス指定されたブロックの位置とメモリバンクとの間には所定の関係は存在しない。従って、メモリバンクと出力との接続は、格納されている領域の所定のピクセル位置のピクセル値が格納されているメモリバンクと、アドレス指定されたブロックの座標とに応じて制御される必要がある。パラメータが必要とされる他の具体例として、ピクセル位置後のデータ量が可変とされるケースがあげられる。例えば、一部の画像処理アプリケーションでは、格納されているルミナンス関連値と比較して、格納されているカラー関連値について低減された解像度が利用される。このため、バンクと出力の間の接続は、カラーとルミナンスについて異なるかもしれない。同じことが、異なる量子化精度がカラー及びルミナンスについて使用される場合に成り立つかもしれない。さらに、残りのバンクを利用して他の画像（又は同一画像の他のカラー成分など）の出力を提供するため、メモリバンクのフル数に到達する前にいくつかの画像のピクセル値の格納をラップアラウンドすることが所望されるかもしれない。これはまた、出力とメモリバンクとの間の関係を複雑化するかもしれない。
【００１１】
ＷＯ２００５／１０４０２７のデータ処理回路では、必要なパラメータはメモリアクセス回路に維持される。メモリのあるブロックがアクセスされると、メモリアクセス回路は、当該ブロックのアドレス（それの座標など）を受け取り、当該アドレスをメモリバンクと出力との間の必要な接続を選択するためのパラメータと組み合わせる。一度に１つのパラメータセットしか利用可能でない。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
特に、信号の各位置とメモリ位置との異なる形式のマッピングが同時に利用可能な信号の位置に依存した複数のデータ値のパラレル処理を可能にすることを課題とする。
【００１３】
特に、異なる方法により信号の位置に依存したデータ値を同時に利用するパラレル処理を可能にするさらなる実施例を提供することを課題とする。
【課題を解決するための手段】
【００１４】
本発明は、独立形式の請求項により規定される。従属形式の請求項は、効果的な実施例を規定する。
【００１５】
請求項１記載のプログラマブルデータ処理回路が提供される。この処理回路は、複数のパラメータ値セットを格納する。処理回路の特定の命令は、これらのセットに対する参照を含む。このような命令に応答して、処理回路は、選択されたパラメータ値セットを抽出し、ピクセル値などのデータ値のパラレル出力のため、メモリポート上のデータ値の各ポジションからデータポート上のデータ値の各ポジションへの割当てを制御する。これは、メモリ回路に互いに異なる方法により格納され、互いに合成された互いに異なるタイプのデータに関する異なるデータ値セットに対するデータ値のパラレル処理を実行するための命令を実行することを可能にする。ここで使用される互いに異なるパラメータ値セットの指示を有する複数の指示は、各パラメータ値セットに従って複数のデータセットがメモリに同時に格納され続ける期間中に実行されるとき、合成されて実行されると言われる。
【００１６】
一実施例では、パラメータセットストレージは、パラメータ値セットを格納するのに十分なサイズのメモリ位置（レジスタなど）を有するレジスタファイルなどの専用メモリである。他の実施例では、レジスタファイルのレジスタが十分なサイズを有する場合、他のタイプの情報も格納するレジスタファイルが利用されるかもしれない。
【００１７】
一実施例では、各命令は、画像信号におけるピクセル位置など、信号におけるデータ値の信号位置を示す位置オペランドを有する。本実施例では、データポート上のデータ値の各位置の命令ベースの割当ては、信号位置と選択されたパラメータ値セットとから計算される。また、メモリに供給されるアドレスが、このように計算されてもよい。従って、各命令は、異なる方法により格納され、又は異なるタイプを有する信号位置に依存したデータ値の同様の位置オペランドを利用することが可能である。
【００１８】
一実施例では、メモリ回路は、複数の少なくとも部分的に独立にアドレス指定可能なメモリバンクを有する。本実施例では、メモリバンクは、異なるデータ値の位置に対するデータ値を供給し、異なるデータ値の位置について異なるアドレスの利用を可能にする。メモリバンクのアドレスは、信号位置と選択されたパラメータ値セットから求められる。このため、各命令は、メモリバンク間に異なる方法により分散される信号位置に依存したデータ値について同様の位置オペランドを利用することが可能である。
【００１９】
各種実施例では、パラメータ値は、例えば、メモリバンクにおけるデータセットの格納のスタートのオフセット値、サブサンプリングファクタ及び／又は使用されるメモリバンクの有効数などを表すかもしれない。
【００２０】
パラレル計算回路は、好ましくは、データポートに接続される入出力を有する。データポートとパラレル計算回路との間で機能的に接続されるレジスタファイルは、データポートの複数データ値オペランド及び／又は結果を格納するのに利用されるかもしれない。
【００２１】
このようなデータ処理回路のプログラムは、互いに合成されて異なる方法により格納される異なるデータセットを参照する命令を利用することが可能である。データセットは、複数のメモリバンクなどにおける異なる格納オフセットを有し、異なるサブサンプリングファクタを利用し、及び／又は異なる個数のメモリバンクを利用するかもしれない。一実施例では、このような異なるデータセットを利用するプログラムにおける命令は、異なるパラメータセットへの参照と組み合わされる同一タイプの位置オペランドを利用して、各セットをアドレス指定する。これは、プログラムを簡単化し、その実行を高速化する。
【００２２】
上記及び他の課題及び効果的な特徴は、以下の図面を用いた実施例の説明から明らかとなるであろう。
【発明を実施するための最良の形態】
【００２３】
図１は、算術ユニット１０とメモリアクセスユニット１２とを含む複数の機能ユニット１０，１２、命令発行回路１４及びレジスタファイル１６を有する処理回路を示す。命令発行回路１４は、命令を発行するため機能ユニット１０，１２の各入力に接続された出力を有する。機能ユニット１０，１２は、レジスタファイル１６のリードポートとライトポートに接続される。例えば、２つの機能ユニットしか示されていないが、算術ユニット又はメモリアクセスユニット以外の機能ユニットを含むより多くの機能ユニットが使用されることが理解されるべきである。
【００２４】
図２は、複数のメモリバンク２０、スイッチング回路２２及び制御回路２４を有するメモリアクセスユニットを示す。スイッチング回路２２は、メモリバンク２０からメモリポート２１と、レジスタファイル（図示せず）の入出力２６との間に接続される。制御回路２４は、出力命令発行回路（図示せず）と制御出力に接続される命令入力２８に接続される命令入力を有する。命令入力２８の一部は、レジスタファイル（図示せず）のポート制御入力に接続される。制御回路２４は、スイッチング回路２２及びメモリバンク２０に接続された制御出力を有する。
【００２５】
制御回路２４は、パラメータセット制御回路２４０、アドレス生成回路２４２、スイッチ制御生成回路２４４及びパラメータセットメモリ２４６を有する。パラメータセット制御回路２４０は、命令入力２８とレジスタファイル（図示せず）のリードポートと荷接続された入力と、アドレス生成回路２４２とスイッチ制御生成回路２４４とに接続された出力とを有する。パラメータセット選択制御回路２４０は、パラメータセットのストレージとして機能するパラメータセットメモリ２４６に接続される。アドレス生成回路２４２とスイッチ制御生成回路２４４は、スイッチング回路２２とメモリバンク２０とに接続された出力を有する。
【００２６】
動作について、命令発行ユニット１４は、連続的な命令を機能ユニット１０，１２に供給する。命令の少なくとも一部はそれぞれ、少なくとも１つの機能ユニット１０，１２に対する各自のコマンドを含む、コマンドの少なくとも一部は、処理、エペランドレジスタ及びレジスタファイル１６の結果レジスタを指定する。コマンドの実行中、オペランドデータが指定されたオペランドレジスタから供給され、機能ユニット１０，１２は、オペランドデータを用いて指定された処理を実行し、結果データを結果レジスタに供給する。実施例では、各命令は異なる機能ユニット１０，１２に対するコマンドをパラレルに含むが、あるいは、命令は命令毎に１つのコマンドにより利用されるかもしれない。また、コマンドは、オペランドレジスタアドレス、オペコード及びコマンドの結果レジスタアドレスを連続的に供給するなどによって、パイプライン形式で発行されるかもしれない。
【００２７】
図３は、算術機能ユニットの一例を示す。算術機能ユニットは、オペランド入力３０ａ，３０ｂのペア、コマンド入力３２、複数の算術回路３４及び結果出力３６を有する。オペランド入力３０ａ，３０ｂは、レジスタファイル（図示せず）の各リードポートに接続される。典型的には、各オペランド入力は、オペランドの各ビットを提供する複数のコンダクタを有する。内部的には、算術機能ユニットは、各オペランド入力を複数のセクション（ボックス３１ａ，３１ｂにより示される分割）に分割する。各算術回路３４は、両方のオペランド入力３０ａ，３０ｂの各セクションからオペランドの一部を受け取る。同様に、算術実行ユニットは、内部的に複数のセクションの組み合わせ（ボックス３７により示される組み合わせ）からの結果出力を構成し、各算術回路３４は各セクションにおける結果の一部を供給する。コマンド入力３２は、算術回路３４により実行される処理の選択を制御するため、算術回路３４に接続される。
【００２８】
一例となる動作について、各オペランドは各算術回路３４により処理される複数のピクセル値を有し、結果は各算術回路３４により生成される複数のピクセル値を有する。
【００２９】
この算術機能ユニットは利用可能な機能ユニットの単なる一例に過ぎないことが理解されるべきである。他の例では、算術回路は同一オペランドからのセクション組み合わせからのピクセル値を処理し、及び／又はセクションの組み合わせに対する結果を生成するかもしれない。算術回路の代わりに、又はそれと組み合わせて、論理回路が利用されるかもしれないが、便宜上すべてのタイプの回路が算術回路という用語により想定される。
【００３０】
図１，２を参照して、メモリアクセスユニット１２は、メモリバンク２０とレジスタファイル１６の各レジスタの間のデータ伝送を提供するコマンドを実行する。さらなる実施例では、メモリバンク２０はバックグラウンドメモリ（図示せず）のキャッシュとして機能する。このさらなる実施例では、メモリアクセスユニットはまた、それがメモリバンク２０にないときにはバックグラウンドメモリからデータをフェッチし、及び／又はメモリバンク２０からバックグラウンドメモリにデータを書き込むことを含むキャッシュ管理を実行する。
【００３１】
メモリアクセスユニット１２のコマンドは、算術ユニット１０によるパラレル処理に使用するため、複数のメモリバンク２０からパラレルに結果データを出力するためのコマンドを含む。メモリアクセスユニット１２のコマンドのオペランドは、典型的には、データ値のアドレスを示すのに使用される。リードコマンドのベースでは、結果はメモリバンク２０から読み込まれたデータ値を含む。一実施例では、オペランドはオペランド値を含むレジスタファイル１６のレジスタのアドレスにより示されるが、他の実施例では、１以上のオペランド値が文字通りオペランドに含まれるかもしれない。
【００３２】
メモリアクセスユニット１２のコマンドは、パラメータセットを示すオペランドを有するあるタイプのコマンドを有する。簡単化のため、パラメータセットが文字通り命令入力２８を介し示されるが、あるいはパラメータセットの表示がレジスタファイル１６のリードポートを介しレジスタから与えられる実施例が説明される。
【００３３】
パラメータセットオペランドは、メモリバンク２０からデータがどのように読み込まれるか制御するのに利用される。パラメータセットは、データ値がメモリバンク２０にどのように格納されるか、スイッチング回路２２がメモリバンクと出力２６とをどのように接続する必要があるかを示す。例えば、メモリバンク２０にピクセル値を格納するいくつかの方法が説明される。
【００３４】
第１の具体例では、矩形領域のピクセル位置における各ポジションの関数としてのピクセル値が格納される。当該領域の各ｙ座標について、当該領域は各ｘ座標を有するピクセル位置のラインセグメントを含む。ラインセグメントに沿ったピクセル位置のピクセル値は、すべてのバンクがアクセスされると第１バンクに戻り、前のラインセグメントのエンド後に次のｙ座標のラインセグメントをスタートして、各バンクに連続的に格納される。従って、例えば、第１バンクの第１及び第２メモリ位置は、第１ラインセグメントに沿った第１及び第５ピクセル位置のピクセル値を含み、第２バンクの第１及び第２メモリ位置は、第１ラインセグメントに沿った第２及び第６ピクセル位置のピクセル値を含み、これが第４バンクまで続けられる。第２ラインセグメントに沿った第１及び第５ピクセル位置のピクセル値は、第１バンクの第３及び第４メモリ位置に格納されるなどである。
【００３５】
より一般的には、Ｎ個のバンクが存在する場合、ｉ番目のバンクは、ｙのすべての値についてｘ座標がｉ＝ｘ  ｍｏｄ  Ｎとなるピクセル値を含むかもしれない。当該領域がＭピクセル幅であり、ＭがＮの倍数でない場合、異なるラインセグメントのピクセル値が、第１メモリバンクからスタートして、すなわち、先頭から格納されるかもしれない。この場合において、ピクセル位置のｘ及びｙ座標はｘ及びｙである場合、第ｉバンクは、ｉ＝ｘ＋Ｍ＊ｙ  ｍｏｄ  Ｎとなるピクセル位置のピクセル値を格納する。
【００３６】
他の例では、ピクセル値はあるオフセットを有して格納されてもよく、これは領域の最初のピクセル値が格納されるメモリバンクに影響を与える。この場合、ピクセル位置のｘ及びｙ座標がｘ及びｙである場合には、第ｉバンクは、ｉ＝ｘ０＋ｘ＋Ｍ＊（ｙ＋ｙ０）  ｍｏｄ  Ｎとなるピクセル位置のピクセル値を格納する。ここで、ｘ０及びｙ０はｘ及びｙの各オフセット値である。同一のｘ座標によるピクセルが同一のバンクに格納される実施例では、ｉ＝ｘ０＋ｘ  ｍｏｄ  Ｎである。
【００３７】
さらなる具体例では、各メモリ位置は複数のピクセル値を含む。一例では、第１バンクの第１メモリ位置は、第１ラインセグメントに沿った第１〜第４ピクセル位置のピクセル値を含み、第２バンクの第１メモリ位置は、第１ラインセグメントに沿った第５〜第８ピクセル位置のピクセル値を含むなどである。第１バンクの第２メモリ位置では、第１ラインセグメントに沿った第１７〜第２０ピクセルのピクセル値が格納されるなどである。第１ラインセグメントが２２のピクセル位置を含むと仮定すると、第１バンクの第３メモリ位置は、第２ラインセグメントに沿って第１〜第４ピクセル位置のピクセル値などを含む。
【００３８】
より一般的には、このさらなる具体例において、Ｎ個のバンクがある場合、第ｉバンクはｙのすべての値についてｉ＝ｊ＋Ｐ＊ｘ  ｍｏｄ  Ｎ（ｊ＝０，．．．，Ｐ−１）のｘ座標を有するピクセル値を含むかもしれない（Ｐは、あるメモリ位置におけるピクセル値の個数である）。当該領域がＭピクセル幅であり、ＭがＮの倍数でない場合、異なるラインセグメントのピクセル値が、第１メモリバンクからスタートして、すなわち、先頭から格納されるかもしれない。この場合、あるピクセル位置のｘ及びｙ座標がｘ及びｙである場合には、第ｉバンクは、ｉ＝ｊ＋Ｐ＊ｘ＋Ｐ＊Ｍ＊ｙ  ｍｏｄ  Ｎのピクセル位置のピクセル値を格納する。他の例では、ピクセル稚児のビット数は異なるデータについて異なっているかもしれない。例えば、８ビットピクセル値がルミナンスデータに使用され、ピクセル毎に４ビットがカラー値に使用され、より多くのビットが動きベクトルに使用されるかもしれない。これは、より多くのピクセル値が同じ位置に格納可能である、すなわち、Ｐが異なるタイプのデータについて異なるという効果を有する。この場合もまた、１以上のオフセットｘ０，ｙ０が利用されるかもしれない。
【００３９】
他の例では、サブサンプリングされたピクセル値が利用されてもよく、これは、データ値が選択されたピクセル位置についてのみ格納されることを意味する。これらのピクセル位置は、座標（ｘ，ｙ）＝（ｘ０＋ｉｘ＊Ｓｘ，ｙ０＋ｉｙ＊Ｓｙ）により記述可能である。ここでは、Ｓｘ，Ｓｙは、水平方向と垂直方向のサブサンプルファクタ（Ｓｘ，Ｓｙ＝１／２など）であり、ｉｘ及びｉｙは整数である。サブサンプリングが使用されるとき、好ましくは、未使用位置についてメモリ位置は確保されない。この場合、ｉｘ及びｉｙは、メモリ位置の決定においてｘ及びｙ座標の役割を引き継ぐ。
【００４０】
上記具体例では、このポイントまで、同一の初期的なメモリバンクが常に格納されている領域における最初のピクセル位置のピクセル値を格納していることが仮定された。この場合、（ｊ＋ｊ１）ｍｏｄ  Ｎ番目（ｊ及びｊ１は整数である）のバンクのメモリバンクは、第ｊバンクについて上述された役割を引き継ぐ。この場合、ｊ１のバンクオフセットが存在する。
【００４１】
上記具体例では、このポイントまで、連続するピクセル位置のピクセル値が、連続するピクセル位置の第１部分のすべてのメモリバンクを用いて連続するメモリバンクに格納され、連続するピクセル位置の次の部分のピクセル値がすべてのメモリバンクになるなど仮定されてきた。他の実施例では、メモリバンクの一部のみが選択されたピクセル値セットについて利用されるかもしれない。このため、例えば、ピクセル位置セットの第１カラー値（Ｕ個の値など）が第１及び第２メモリバンクに格納され、第２カラー値（Ｖ個の値など）が第３及び第４メモリバンクに格納されるかもしれない。より一般的には、これは、バンクの総数Ｎより少ないバンクの有効数Ｎ’が、選択されたピクセル値セットのＮの代わりに利用されることを意味する。さらに、最初のバンク番号Ｂは、何れのバンクが使用されるか示すのに利用されるかもしれない。
【００４２】
ピクセル値がまずｘ座標に昇順に、次にｙ座標の昇順に従って格納される具体例が与えられたが、ピクセル値がまずｙ座標又は座標値の昇順若しくは降順に従って格納可能であることが理解されるであろう。ピクセル値セットについて何れの格納形式が利用されるか示すパラメータが利用されるかもしれない。
【００４３】
上記具体例はピクセル値に関して与えられたが、既知の画像処理アルゴリズムのコンプレクシティによって、異なる形式の格納の利用が特に効果的である。しかしながら、この格納形式はまた一般には少なくとも２次元信号（画像信号に限らない）又は１次元信号（オーディオ信号などの時間に依存した信号など）にも適用可能であることに留意すべきである。さらに多次元の信号に利用されるとき（例えば、ピクセル座標と時間との関数としての画像やピクセル座標とスケールとの関数としての座標など）、典型的には、より多くのパラメータが格納を制御するのに利用される。
【００４４】
具体例から実現されるように、各種パラメータが格納位置に影響を与える。パラメータは、格納されている領域のラインセグメントにおけるピクセル位置数Ｍ、オフセットｘ０，ｙ０、サブサンプルファクタＳｘ，Ｓｙ、メモリ位置Ｐ毎のピクセル値の個数、バンクオフセットｊ１、バンクの有効数Ｎ’、最初のバンクＢ、主格納座標の表示（例えば、ｘが主座標である場合には真であり、ｙが主座標である場合には偽であるブール値など）の何れか又は組み合わせを含むかもしれない。これらの代わりに又は追加して、他のパラメータが利用されるかもしれない。
【００４５】
メモリアクセスユニット１２は、異なるデータ値セット（ピクセル値など）の格納を記述スため、このようなパラメータについて複数の値のセットを同時に使用することをサポートする。これらの値のセットはパラメータセットメモリ２４６に格納される。メモリアクセス回路１２は、格納されているセットの１つを選択するための表示を含むあるタイプの命令をサポートする。一実施例では、この表示は文字通りのデータとして命令に含められ、他の実施例では、レジスタファイル１６からのオペランドに提供される。このタイプの命令はさらに、例えば、現在領域に対する座標などに関するピクセル位置の表示を有する位置オペランド（又はより一般的には信号における位置など）を有する。
【００４６】
このタイプの命令を受け付けると、パラメータセット制御回路２４０は、パラメータセットメモリ２４６から選択されたパラメータセット（又は少なくともその一部）を抽出し、位置オペランドと組み合わせて選択されたパラメータを利用して、アドレス生成回路２４２及びスイッチ制御生成回路２４４を制御する。アドレス生成回路２４２は、パラメータセット制御回路２４０からの信号に依存してメモリバンク２０のアドレスを生成する。スイッチ制御生成回路２４４は、パラメータセット制御回路２４０からの信号に依存してスイッチング回路２２のためのスイッチ制御信号を生成する。
【００４７】
このタイプの命令は、リードタイプ又はライトタイプの命令であり得る。リードタイプ命令の制御の下、メモリバンク２０はリード処理を実行する。リードタイプ命令の場合、メモリバンク２０は複数のデータ値（ピクセル値など）をパラレルに出力し、スイッチング回路２２は、レジスタファイル１６のライトポートに少なくともこれら複数のデータ値を有する結果をパラレルに出力する。スイッチング回路２２は、必要に応じてデータ値を出力するメモリバンク２０と、レジスタファイル１６のライトポートに出力される結果のポジションとの間の関係を再構成する。一実施例では、結果におけるデータ値のポジションは、位置オペランドにより示される位置に対する信号ポジション（ピクルセル位置など）にのみ依存することが保証される。
【００４８】
第ｉメモリバンク２０がピクセル座標ｘ，ｙのピクセル位置のピクセル値を格納している例では、ｉ＝（ｘ０＋ｘ＋Ｍ＊（ｙ＋ｙ０））ｍｏｄ  Ｎである場合、スイッチング回路２２は、第ｊバンクからのピクセル値を、レジスタファイル１６のライトポートに供給される結果におけるポジション（ｊ−ｉ０）ｍｏｄ  Ｒ（ここで、Ｒは結果におけるピクセル値のポジションの個数であり、ｉ０は命令の位置オペランドにより示される位置のピクセル値を格納しているメモリバンクの番号である）に供給する。この場合、パラメータセット制御回路２４０は、ｘ０，ｙ０，Ｍのパラメータ値を利用して、スイッチ制御生成回路２４４を制御する。
【００４９】
同様に、パラメータセット制御回路２４０は、アドレス生成回路２４２による異なるメモリバンクのアドレスの選択を制御する。典型的には、アドレスがパラレルに出力される必要があるピクセル位置の系列に沿って変換するかに応じて、２つの異なる隣接するアドレスが使用されるか、又は各メモリバンク２０について同一のアドレスが使用される。上記具体例では、第ｉメモリバンクのアドレスは、例えば、（ｉ−ｉ０）／Ｎであるかもしれず、この場合、パラメータセット制御回路２４０とアドレス生成回路２４２は対応するアドレスを供給する。
【００５０】
使用されるパラメータとメモリバンクのアドレス指定方法に応じて、メモリバンク２０のアドレス指定とスイッチング回路２２による選択とを制御するため、より複雑な計算が利用されてもよいことが理解されるであろう。パラメータセット制御回路２４０、アドレス生成回路２４２及びスイッチ制御生成回路２４４に使用される具体的な回路は、サポートされるパラメータの性質に依存する。
【００５１】
図４は、これらの回路の組み合わせの典型的な実施例を示す。計算部分のみが示され、読み込みと書き込みとを選択するための制御接続などは示されていない。本実施例では、この組み合わせは加算手段４２に接続された出力を有する乗算手段４０を有し（例えば、許容されるウィンドウサイズ、サンプリングファクタなどが２の冪乗であるときのバレルシフト回路の形式など）、加算手段４２はモジュロー回路４３（典型的には、２の冪乗のモジュローを演算する）、さらなる加算手段４４と直列に接続される。さらなる加算手段４４は、変換回路４６，４８に接続される出力を有する。
【００５２】
この典型的な実施例では、乗算手段４０は、例えば、領域幅Ｍ（位置オペランドから求められるｙ座標との乗算）及び／又はサブサンプリングファクタを考慮するのに利用される。加算手段４２は、ｘ及びｙ座標による貢献の加算であり、オフセットの加算を処理する。モジュロー回路４３は、選択されるバンクの有効数Ｎ’を考慮する。さらなる加算手段４４は、バンクオフセットを加算する。本実施例では、さらなる加算手段４４は、結果における第１ポジションに出力される第１ピクセル値を含むバンクのバンク番号を出力する。第１変換回路４６は、これをスイッチング回路（図示せず）のための制御信号に変換する。第２変換回路４８は、最初のバンク番号、関連するピクセル値セットのアドレスオフセット及び計算されたアドレスを用いて、異なるメモリバンクのアドレスを決定する。各種要素は、メモリアクセスユニットに対するコマンドの選択されたパラメータ値セットの指示に応答して、パラメータ値メモリ２４６から取得されるパラメータ値を受け取る。
【００５３】
図４の回路は、スイッチング回路２２のスイッチ制御信号とメモリバンク２０のアドレスとを生成する回路の単なるシンプルな一例であることが強調されるべきである。メモリアクセスユニットによりサポートされるパラメータの特定の組み合わせについて必要に応じて、同様の処理又は簡単化された若しくはより複雑な処理を実行するための多数の代替が存在する。
【００５４】
ライトタイプ命令の場合、データは、レジスタファイル１６のリードポートからメモリバンクのメモリ位置に書き込まれる。この場合、スイッチング回路２２は、リードポートの各部分をメモリバンク２０の制御可能な各メモリバンク２２に接続する。ライトタイプコマンドの制御の下、メモリバンク２０はライト処理を実行する。スイッチング制御信号とアドレスとを生成するための制御回路２４の処理は、リードタイプ命令のケースと同様である。
【００５５】
理解されるように、説明された回路は、リードタイプ命令に応答してメモリバンク２０からの出力を複数のデータ値による結果に変換する機能及び／又はリードタイプ命令に応答してライトタイプ命令のオペランドの各部分をメモリバンク２０に格納する機能を実行する。各ケースでは、回路は、メモリバンクと結果のポジションとの間の調整可能に制御される関係を利用する。この関係は、制御回路２４の複数のパラメータ値セットのうちのあるパラメータ値セットの選択を示すリード又はライトタイプ命令の情報によって制御される。
【００５６】
動作について、回路は、異なるパラメータ値セットを示すリード及び／又はライトタイプ命令の組み合わせを含む命令プログラムを実行する。一実施例では、異なるパラメータ値セットが、メモリバンク系列の１つのオフセットからスタートして格納されている第１ピクセル位置領域のピクセル値と、メモリバンク系列の他のオフセットからスタートして格納されている第２ピクセル位置領域のピクセル値とを提供するよう格納されるかもしれない。このため、これら異なる領域へのアクセスは、異なる領域をロード及びリロードすることなく同時に実行可能である（すなわち、互いに組み合わされた各命令による）。
【００５７】
他の実施例では、異なるパラメータ値セットが、メモリバンクの異なる部分におけるサブサンプリングされた解像度による第２ピクセル値（Ｕ及び／又はＶ）と共に、ある空間解像度により格納される第１ピクセル値（ルミナンス値Ｙなど）。同様に、このタイプのデータは、さらに低い解像度によるピクセル位置の動きベクトルデータと合成されるかもしれない。従って、これら異なるタイプのデータへのアクセスが、異なるデータをロード及びリロードすることなく同時に実行することができる。
【００５８】
さらなる実施例では、このようなデータの異なるセットが、メモリバンク２０の互いに排他的なサブセットに格納されるかもしれない。本実施例では、メモリアクセスユニットは、同一の命令において複数のパラメータセットの指示を受け取り、これら複数のパラメータセットの指示に従って調整されたデータ値をレジスタファイル１６のライトポート又はリードポートに入出力するよう構成される。これは、例えば、１つの指示を処理する回路を複製し、複製された回路の出力からスイッチング制御信号とメモリアドレスの各部分を選択することによって実現することができる。従って、データセットの組み合わせへのアクセスは、同一の命令により実行可能である。
【００５９】
一実施例では、メモリアクセスユニットは、パラメータ値をパラメータ値メモリの選択された位置に書き込むためのさらなる命令タイプをサポートするよう構成される。動作について、メモリバンク２０におけるデータ値の読み書き前に、パラメータ値の各値を設定する命令を含むプログラムが実行される。
【００６０】
メモリバンク２０しか示されていないが、これらのバンクはバックグラウンドメモリのキャッしとして機能するよう利用されることが理解されるべきである。図５は、キャッシュメモリ５０がメモリバンク２０を有するキャッシュコンフィギュレーションを示す。メモリアクセスユニットはまた、キャッシュ制御回路５２と、バックグラウンドメモリ５４とのインタフェース回路５６とを有する。キャッシュ制御自体は既知である。一実施例では、キャッシュ制御回路５２はまた、異なるピクセル位置のデータ値がバックグラウンドメモリ５４に格納される方法に適切となるように、キャッシュメモリのデータの一部とメインメモリ５４の対応するアドレスとに対応するパラメータセットに従ってキャッシュメモリ５０のアドレスを計算することによって、バックグラウンドメモリ５４におけるデータをフェッチ又は格納するためのバックグラウンドメモリアドレスを決定するのに利用される格納されているパラメータ値にアクセス可能である。
【００６１】
本発明の実施例は、以下のように要約することができる。プログラマブルデータ処理回路は、ピクセル値、又はより一般にはデータ値を信号のポジションの関数として格納するメモリを有する。プログラマブルデータ処理回路は、複数のデータ値がメモリからのパラレル出力についてどのように構成される必要があるかを示す選択されたパラメータ値セットの指示を含む命令をサポートする。異なるパラメータ値セットを示す命令が、互いに混合されて実行可能である。プログラマブルデータ処理回路は、パラメータ格納回路２４６から選択されたパラメータ値セットを抽出し、少なくとも部分的に選択されたパラメータ値セットに応じて、メモリ回路２０のメモリポート２１とデータポート２６との間のスイッチング回路２２を制御することによって、このタイプの命令に応答する。
【００６２】
パラメータ値メモリ２４６がパラメータ格納回路の一例として示されたが、何れかの形式の格納が利用されてもよいことが理解されるべきである。図示された具体例では、パラメータ値セットの指示に応答して、パラメータ値メモリからすべてのパラメータ値が提供される。このため、パラメータ値メモリは、パラメータセットのレジスタを有する専用のレジスタファイルとして機能する。このように、大きなパラメータセットのための特殊なレジスタを設けることが可能である。しかしながら、他の実施例では、パラメータ値の一部は、レジスタファイル１６のレジスタがパラメータセットを保持するのに十分である場合、例えば、レジスタから命令のオペランドデータとして部分的に又はすべて供給されるかもしれない。この場合、パラメータ値メモリ２４６はレジスタファイルの一部となる。何れかのタイプのパラメータ格納回路が利用されてもよい。
【００６３】
オペランドと結果（パラメータ値セット以外）が１つのレジスタファイルに読み書きされる実施例が説明されたが、実際には、１つのレジスタファイルは異なるサイズのレジスタを有する複数のレジスタファイルを有することが理解されるべきである。従って例えば、位置オペランド又はパラメータセットの選択指示を有するレジスタは、複数のデータ値を含むレジスタより小さいかもしれない。
【００６４】
さらに、他の実施例では、オペランドと結果は、レジスタファイルの中間的な格納を利用することなく、直接的に及び／又はメモリアクセスユニットから算術回路に提供されてもよい。
【００６５】
データがオペランド／結果とメモリバンク２０との間でどのように再構成されるか制御するパラメータに関する具体例が与えられたが、再構成を制御する他のパラメータ及び方法が利用可能であることが理解されるべきである。
【００６６】
命令の発行、レジスタの読み書き、命令の実行、アドレス選択、スイッチング選択などの命令に対する各種処理が説明されたが、異なる処理がパイプライン式に実行されてもよいことが理解されるべきである。
【００６７】
さらに、算術回路の一例が示されたが、記載された形式のメモリアクセスは、複数のデータ値を含む結果を生成し、及び／又はオペランドを処理する他のタイプの機能要素と共に実行可能であることが理解されるべきである。
【００６８】
このため、上述した実施例は本発明を限定するものでなく例示するものであり、当業者は添付した請求項の範囲から逸脱することなく他の多数の実施例を設計可能であることが留意されるべきである。請求項において、括弧内の参照符号は請求項を限定するものとして解釈されるべきでない。“有する”という用語は、請求項に列記した以外の要素又はステップの存在を排除するものでない。要素に先行する“ある”という単語は、当該要素が複数存在することを排除するものでない。本発明は、複数の要素を有するハードウェアによって、及び／又は適切にプログラムされたプロセッサによって実現可能である。複数の手段を列記した装置クレームでは、これらの手段のいくつかは１つの同一のハードウェアアイテムにより実現可能である。特定の手段が互いに異なる従属クレームに記載されているという事実は、これらの手段の組み合わせが効果的には利用可能でないことを示すものでない。
【図面の簡単な説明】
【００６９】
【図１】図１は、処理回路を示す。
【図２】図２は、メモリアクセスユニットを示す。
【図３】図３は、算術機能要素を示す。
【図４】図４は、メモリアクセス制御回路の一部を示す。
【図５】図５は、キャッシュコンフィギュレーションを示す。
【図１】
2009536392.tif 000003
【図２】
2009536392.tif 000004
【図３】
2009536392.tif 000005
【図４】
2009536392.tif 000006
【図５】
2009536392.tif 000007
【国際調査報告】
2009536392.tif 000008
2009536392.tif 000009
2009536392.tif 000010