(57)【要約】  画像処理回路は画像内の二次元可動ウィンドウにおけるピクセル位置に対するピクセル値を格納するバッファメモリ（１４）を有する。バッファメモリ（１４）は、ウィンドウからのピクセル値を格納する、メモリ回路（３０）の複数の機能行を備える。複数のアクセスポート（１７）を備え、各アクセスポートは、それぞれ１つの行の、それぞれのピクセル値のグループの、アドレス可能なピクセル値へのアクセスを提供する。メモリ回路（３０）及びアクセスポートの間に、又はメモリ回路（３０）装置の一部としてシフト回路（３２）を備える。各シフト回路はそれぞれの行に対して備えられ、それぞれの行からグループへと、ピクセル値の割当てをシフトするように構成される。アドレス指定回路（１５）は、ピクセル位置の二次元ブロックのアドレス、及び前記ブロックの寸法を示すモード信号を受信する入力端を有する。アドレス指定回路（１５）は、シフト回路（３２）を制御し、モード信号によって示される寸法に応じて、それぞれの行に対するそれぞれのシフト量を設定するように構成される。アドレス指定回路は、シフト量をある値に設定し、ここで異なる行に格納されるブロックにおけるピクセル位置の、それぞれのラインに対するピクセル値は、互いに重なり合わないグループに割当てられる。従って、ブロックに対するピクセル値に並列アクセスすることが出来る。
2008541259.tif 000002
【特許請求の範囲】
【請求項１】
画像内の二次元の可動ウィンドウにおけるピクセル位置に対するピクセル値を格納するバッファメモリを備える画像処理回路であって、
前記バッファメモリは：
−前記ウィンドウからのピクセル値を格納する、メモリ回路の複数の機能行と；
−各々が、それぞれ１つの前記行の、それぞれのピクセル値のグループの、アドレス可能なピクセル値へのアクセスを提供する複数のアクセスポートと；
それぞれの行に対して、前記それぞれの行から前記グループへと、ピクセル値の割当てをシフトするように構成されるシフト回路と；
−ピクセル位置の二次元ブロックのアドレス、及び前記ブロックの寸法を示すモード信号を受信する入力端を備えるアドレス指定回路と；
を備え、
前記アドレス指定回路は、前記シフト回路を制御し、前記モード信号によって示される前記寸法に依存して、それぞれの前記行に対するそれぞれの前記シフト量を設定するように構成され、
前記シフト量は、異なる行に格納される前記ブロックにおけるピクセル位置の、それぞれのラインのピクセル値は、互いに重なり合わないグループに割当てられるという条件を満たすことを特徴とする、バッファメモリを備える画像処理回路。
【請求項２】
各行に対する前記シフト回路及び前記ピクセル値メモリ回路は、それぞれのシフトレジスタ回路を形成する、請求項１に記載の画像処理回路。
【請求項３】
前記アドレス指定回路は、アクセス前後それぞれの、前記シフトレジスタ中の前記シフト量によって、後方及び前方へのシフトを生じさせるように構成される、請求項２に記載の画像処理回路。
【請求項４】
前記アドレス指定回路は、前記行に対して最後に使用されたシフト量を表す記憶素子を備え、
前記アドレス指定回路は、連続するアクセスに対する前記シフト量間の差に対応する距離にわたって、前記シフトレジスタを介してピクセル値をシフトする差分シフトを実行するように構成される、
請求項２に記載の画像処理回路。
【請求項５】
前記シフトレジスタ回路は複数のマルチプレクサを備え、
各マルチプレクサはそれぞれ１つの前記メモリ回路に結合された出力端と、
前記それぞれ１つの前記メモリ回路から、前記シフトレジスタ回路に沿ってそれぞれの距離にあるメモリ回路の出力端に結合された入力端とを備え、
前記アドレス指定回路は、前記マルチプレクサ回路に結合され、前記行に対する前記シフト量に依存して、入力選択を制御する、
請求項２に記載の画像処理回路。
【請求項６】
各行に対し、
前記シフト回路は前記メモリ回路及び前記アクセスポートの間に結合され、
前記アクセスポートと前記メモリ回路との間に、複数のシフト接続を提供するように構成される、
請求項２に記載の画像処理回路。
【請求項７】
前記シフトレジスタは循環シフトレジスタであり、
各循環シフトレジスタは、前記それぞれの行から前記グループへ、ピクセル値の割当てを循環的にシフトする、
請求項２に記載の画像処理回路。
【請求項８】
前記アドレス指定回路は、
前記モード信号に依存して、それぞれ１つの前記グループに対するそれぞれの行アドレスを生成し、
前記グループに対する前記アクセスポートを経てアクセスが提供される、前記グループの前記アドレス可能なピクセル値の行を選択するように構成され、
前記アドレスは、前記異なる行は、それぞれ、重なり合わないグループへとアドレスされるという条件を満たす、
請求項１に記載の画像処理回路。
【請求項９】
メインメモリと、
前記メインメモリと前記バッファメモリとの間に結合され、前記メインメモリと前記バッファメモリとの間の前記ウィンドウのピクセル値を転送するように構成されたインタフェース回路と、
を備える、請求項１に記載の画像処理回路。
【請求項１０】
複数の並列ピクセル値処理回路を備え、
各並列ピクセル処理回路は、それぞれ１つのアクセスポートに結合され、または前記アクセスポートのそれぞれのサブセットに結合される、
請求項１に記載の画像処理回路。
【請求項１１】
前記ピクセル値処理回路は、
互いに異なる寸法のブロックに対する前記ウィンドウの、同じピクセル位置に対するピクセル値にアクセスし、
前記アクセスの間に、前記ブロックの前記寸法を示すモード信号を送信するようにプログラムされた、請求項１０に記載の画像処理回路。
【請求項１２】
画像中のピクセル位置に対するピクセル値を処理する方法であって、
前記画像内の二次元ウィンドウにおけるピクセル位置に対するピクセル値を格納するバッファメモリを使用し、
前記バッファメモリは、ピクセル値に並列にアクセスする複数のアクセスポートを備え、
各アクセスポートは、前記バッファメモリのそれぞれの機能行の、それぞれのピクセル値グループの、アドレス可能なピクセル値へのアクセスを提供する方法において、
前記方法は：
−並列にピクセル値がアクセスされるピクセル位置の、ブロックの寸法を示す信号を前記バッファメモリに送信し；
−それぞれの行に対し、前記グループへのそれぞれの行の、ピクセル値の割当てのそれぞれのシフト量を設定し、
前記割当ては、前記示された寸法に依存して設定され、
前記割当ては、前記異なる行に格納された前記ブロックにおける、ピクセル位置のそれぞれの行のピクセル値は、前記シフト量の結果、重なり合わないグループに割当てられるという条件を満たし；
−前記アクセスポートを経て並列に、前記それぞれの行の前記ピクセル値にアクセスする；
ことを特徴とするピクセル値を処理する方法。
【請求項１３】
各前記機能行はそれぞれ、それぞれのピクセル値用のメモリ位置と共に、シフトレジスタを備え、
前記方法は、
前記ピクセル値を、前記シフトレジスタを通じてシフトして、前記シフト量を実現する、
請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理回路及び画像を処理する方法に関する。
【背景技術】
【０００２】
バッファメモリを有する画像処理システムが、大きい画像から得た長方形ウィンドウのピクセル位置に対するピクセル値を格納するのに、高速なアクセスを提供することは既知である。ＤＣＴ（離散コサイン変換）の計算、二次元フィルタリング及び近傍ピクセルブロック間のマッチングの動作ような、よく知られた画像処理タスクは、毎回、異なるウィンドウのピクセル位置に対するピクセル値に適用される、同じ動作を繰返し実行する必要がある。各動作の実行に対し、対応するウィンドウのピクセル値はバッファメモリ内に保持されるため、これらのピクセル値は動作の際に高速にアクセスすることが出来る。
【０００３】
次の動作の実行前に、バッファメモリの内容は更新される。典型的には、動作の１回の実行から次の実行に向けて、水平方向に所定距離にわたって移動するスライディングウィンドウが使用される。この場合には、通常、画像の最も右側の列に対するピクセル値のみが新しく読み込まれ、最も左側の列のピクセル値と置き換わる。
【０００４】
この部分的な置き換えをサポートするため、ある種の循環アドレスをバッファメモリで使用することが望ましい。これは、例えば、ウィンドウ相対Ｘ−Ｙアドレスからメモリアドレスへの、ある種の循環アドレス変換によって実現することができる。従って、水平に移動するウィンドウでは、メモリアドレスは、Ｘの値が連続して減少するＸ―Ｙアドレスと同じように変換される。Ｘの値がウィンドウ外に減少された場合、メモリアドレスに対して新しいピクセル値が読み込まれ、Ｘの値はウィンドウサイズだけ増加される。
【０００５】
部分的な置き換えをサポートするために他の解決策が使用し得ることは勿論である。代替案として、異なるウィンドウに対する動作の各実行の間に、古いピクセル値をシフトされたメモリ位置に移動させることができ、新しいピクセル値を空いたメモリ位置へと読み込むことができる。つまり、画像のそれぞれのラインに対して、シフトレジスタが効率的に使用される。この場合、Ｘ―Ｙアドレスからメモリ位置への固定的な変換を使用して、シフトレジスタにおける位置をアドレス指定することができる。
【０００６】
有利には、画像処理用のバッファメモリは、複数のピクセル値への並列アクセス、例えばウィンドウにおけるピクセル位置の水平ラインのピクセル値への並列アクセスを提供する。従って並列処理回路を使用することが可能であり、各処理回路が、他の処理回路と並列に、それぞれのピクセル位置又はピクセル位置のグループに対する、１つ以上のピクセル値を処理する。
【０００７】
バッファメモリのサイズ及び編成は、典型的には、実行しなくてはならない動作に依存して選択される。動作がＸ−Ｙ方向における１６×１６のピクセル位置に対するピクセル値のブロックを必要とする場合、２５６（１６×１６）のメモリ位置のバッファメモリを典型的には使用し、動作のためのＸ−Ｙアドレスは、ウィンドウに対してＸ及びＹの位置をそれぞれアドレス指定するために、２つの４ビット部分を含むことが望ましい。
【０００８】
しかしながら、全ての処理タスクが、同じサイズのウィンドウのピクセル値を必要とするわけではない。いくつかの動作は８×８のピクセル位置のウィンドウのデータを必要とし、他の動作は１６×１６のピクセル位置、又は９×９、１７×１７のピクセル位置等のウィンドウのデータを必要とする。高速処理のため、バッファメモリは、必要となる最大のウィンドウに対する全ピクセル値を格納するために十分な位置を有することが望ましい。
【０００９】
この場合、小さいウィンドウを必要とする動作が実行される場合には、ピクセル値の一部だけが使用されることになる。バッファメモリが、１つのラインのピクセル位置に対するピクセル値への並列アクセスに対応している場合には、並列アクセス能力の一部が使用されるに過ぎない。可能性がある最大のウィンドウサイズに対応した複数の並列処理回路が提供される場合には、これらの処理回路の一部が使用されるだけである。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
特に、本発明の目的は、少なくとも二次元のウィンドウのピクセル位置に対するピクセル値を格納するバッファメモリにおいて、複数のメモリ位置への並列アクセスを提供する画像処理システムにおける、処理資源の稼働率を高めることである。
【課題を解決するための手段】
【００１１】
本発明は、請求項１に記載の画像処理回路を提供する。本発明はバッファメモリへのアクセス中に、種々の寸法のブロックの使用を提供する。ここで言う“ブロック”とは、ピクセル位置によるウィンドウ内の、ピクセル位置の集合のことである。典型的には、このブロックの位置に対するピクセル値は、並列にアクセスされる。バッファメモリのそれぞれの機能行には、アクセスポートを変更するためにそれぞれのシフト回路を設け、前記アクセスポートを経てそれぞれの行のピクセル値を互いに独立してアクセスできるようにする。異なる行に対するシフト量は、アクセスされるブロックの寸法を示す、モード信号に応じて選択される。回路により用いられるシフト量は、異なる行に格納されるブロックにおける、ピクセル位置のそれぞれのラインのピクセル値は並列にアクセス可能であるという、条件を満たす値を有する。このため、例えば、Ｎ／ｍピクセル幅のラインを備えるブロックが使用され、Ｎのアクセスポートが利用可能な場合、異なる行のピクセル値へのアクセスが、互いにＮ／ｍの整数倍にわたってシフトされた場合には、Ｎ個のピクセルに並列にアクセスすることができる。好適には、機能行は集積回路上のメモリマトリックスにおいて幾何学的な行として実装されるが、本発明は幾何学的な行とするの機能行に限定されるものではない。
【００１２】
好適には、シフティングは、バッファメモリの各機能行を循環シフトレジスタとして実装することによって実現され、ピクセル値は、異なるアクセスポートを経るアクセスを実装するために、シフトレジスタに沿って転送される。単に直列に接続した一連のレジスタが使用できる。あるいは、シフトレジスタのレジスタ間にマルチプレクサを使用して、シフティングを選択可能にしてシフティングを高速化することもできる。他の実施形態では、非循環シフトレジスタが使用できるが、この場合、典型的には、大きめのシフトレジスタが必要となり、これは、“視野の外”にシフトされるピクセル値を維持するために、ウィンドウの行より広くなる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の上記及び他の目的、並びに有利な態様を、実施形態による非限定的な例を用いて説明する。
【００１４】
図１は、メインメモリ１０、メモリインタフェース１２、バッファメモリ１４、アドレス指定回路１５、複数の処理回路１６、及び制御回路１８を備える画像処理回路を示す。バッファメモリ１４はインタフェース１２を介してメインメモリ１０に結合されている。バッファメモリ１４はそれぞれ１つの処理回路１６に結合された並列データアクセスポート１７を有する。制御回路１８は処理回路１６に結合された命令出力端、アドレス回路１５に結合されたアドレス／制御出力端、及びインタフェース１２に結合された制御出力端を有する。アドレス回路１５はバッファメモリ１４に結合された出力端を有する。
【００１５】
３つのアクセスポート１７及び処理回路１６を示しているが、任意の数、例えば８個又は１６個のアクセスポート１７及び処理回路１６を並列に備えることができることを理解されたい。
【００１６】
ある実施形態では、制御回路は、命令プログラムを格納する命令メモリ、これらの命令をアドレス指定するプログラムカウンタを備える。この命令はコマンド部及びアドレス部を備える命令を含む。この実施形態では、制御回路は発行された命令のアドレス部をアドレス指定回路１５に供給し、この命令のコマンド部を処理回路１６に供給するように構成される。さらに、プログラムカウンタはインタフェース回路１２と結合し、命令のサイクル中の所定位置で、メインメモリ１０及びバッファメモリ１４の間での転送をトリガさせる。この実施形態では、処理回路１６はＳＩＭＤ処理回路であり、制御回路１８から同じ命令を受けるように構成される。しかしながら、本発明はこの実施形態に限定されないことに留意されたい。他の形式でのアドレス指定回路１５へのアドレスの提供や、処理回路の制御動作を用いることができる。さらに、各処理回路１６が１つのアクセスポート１７と結合して示されているが、他の実施形態では、各処理回路１６は、複数のアクセスポート、例えばさらに隣のアクセスポートへ、又はさらにその隣の隣のアクセスポート等へとつなぐことが出来ることに留意されたい。アクセスポートが読出しポートの場合には、各処理回路１６において、より複雑な動作を実行することが可能になる。他の実施形態では、処理回路１６の組は、それぞれ、複数のアクセスポート１７に結合された入力端を備えより複雑な動作を実行する、より大きな処理回路と置き換えることが出来る。
【００１７】
動作中、制御回路１８は命令を処理回路１６に供給し、ウィンドウ相対アドレス及びモード信号をアドレス指定回路１５に供給する。典型的には、制御回路１８は、全ての処理回路１６のためのアドレスピクセル値に対応する最大で１つの、ウィンドウ相対アドレスを供給する。アドレス指定回路１５は、各ウィンドウ相対アドレス及びモード信号の組み合わせを、バッファメモリ１４に対する制御信号に変換する。
【００１８】
バッファメモリ１４は、処理回路１６に対する読出し及び書込みの両方、若しくは、読出しのみ又は書込みのみをサポートするように構成することが出来る。読出し又は書込みの両方ができる場合、制御回路はまた、読出し／書込み制御信号を、ウィンドウ相対アドレスと共に、アドレス指定回路１５に送る。説明のため、読出し動作を解説する。読出し動作に対するアドレスに応答して、バッファメモリ１４は、バッファメモリ１４から複数のピクセル位置に対するピクセル値を検索し、これらのピクセル値を並列にポート１７に出力する。
【００１９】
バッファメモリ１４及びアドレス指定回路１５は、メインメモリ１０から読み出されるピクセル値のピクセル位置と、読出しの間並列にこれらのピクセル値が出力される組み合わせとの関係を管理する。
【００２０】
図２Ａ−Ｂは、例えば４つのアクセスポート１７及び処理回路１６が並列にある場合の、ピクセル位置と、第１及び第２の動作モードの期間中にそれぞれ出力されるピクセル値の組み合わせとの関係を示す。第１のモードでは、４つの連続するピクセル位置（４つのＸアドレス）の１つのラインセグメント（１つのＹアドレス）に対するピクセル値が並列に出力される。この第１のモードでは、制御回路１８からのウィンドウ相対アドレスは、例えばこのラインセグメントの最も左側のピクセル位置のウィンドウ相対ＸＹアドレスに対応する。第２のモードでは、各２つのピクセル位置（２つのＸアドレス）の２つの連続するラインセグメント（２つのＹアドレス）に対するピクセル値が並列に出力される。この第２のモードでは、制御回路１８からのウィンドウ相対アドレスは、例えば、上側のラインセグメントの最も左側のピクセル位置のウィンドウ相対ＸＹアドレスに対応する。
【００２１】
第１のモードは、例えば４つのピクセル位置幅のブロックに対するピクセル値を処理するのに使用可能である。このモードでは、命令の実行中、各処理回路１６はブロック中のラインセグメントに沿って、並列に、それぞれのピクセル位置に対するピクセル値にアクセスする。第２のモードは、例えば、２つのピクセル位置幅のブロックのピクセル値を処理するのに使用可能である。このモードでは、命令の実行中、処理回路１６は、各２つの処理回路１６による２つのグループに分割される。処理回路１６の第１のグループは、命令の実行中、制御回路１８がアドレス指定回路に供給するウィンドウ相対アドレスを受けて、第１のラインセグメントのピクセル値にアクセスする。処理回路１６の第２のグループは、同じ命令の実行中、同じウィンドウ相対アドレスの供給を受けて、第２のラインセグメントのピクセル値にアクセスする。従って、全ての処理回路１６は、両ブロック幅に対して利用可能である。ブロックの幅に沿ったピクセル位置の数がアクセスポート１７及び処理回路１６の数より少ない場合には、アクセスポート１７及び処理回路１６の一部を未使用にしておく必要はない。
【００２２】
図３はバッファメモリ１４及びアドレス指定回路１５の実施形態を示す。例として、４×４ピクセル位置のピクセル値に対する記憶スペースを備える小型バッファメモリ１４を示すが、実際は、より大きなバッファメモリが使用できることに留意されたい。この実施形態では、バッファメモリ１４は複数の循環シフトレジスタ回路３０を備える。多重化回路３２が備えられ、各々、それぞれのアクセスポート１７に対応するグループとして編成される。多重化回路３２の各グループは、シフトレジスタ３０のそれぞれ１つの出力端と、それに対応するアクセスポート１７との間に結合される。
【００２３】
アドレス指定回路１５は、Ｘ，Ｙアドレスを受信する入力端Ｘ，Ｙ、及びモード信号を受信する入力端Ｍを有する。アドレス指定回路１５は、それぞれ１つの循環シフトレジスタ３０のシフト制御入力端に結合された、別々の制御出力端を有する。さらに、アドレス指定回路１５は、それぞれのアクセスポート１７に対する多重化回路に結合された、別々の制御出力端を有する。
【００２４】
アドレス指定回路１５は、モード信号入力端Ｍからのモード信号に依存して、シフトレジスタ３０中でシフトを引き起こすように構成されるため、異なるシフトレジスタ中のシフトは互いに異なり得る。このモード信号はピクセル値が必要となるブロックの幅Ｗを示す。連続するシフトレジスタ３０におけるピクセル値は、任意の共通シフト量Ｃに、Ｗの整数の倍数のＭｏｄ  Ｎ（Ｎで除算した剰余）を加算した分シフトされ、ここでＮは各シフトレジスタ３０に格納されるピクセル値の数（バッファメモリに格納されるウィンドウの幅）である。一例では次のようになる。
第ｉ行に対するシフト＝Ｃ＋ｉ＊Ｗ  Ｍｏｄ  Ｎ
【００２５】
全てのシフトレジスタ３０に対して、同じ共通シフト量Ｃは、例えばゼロ（Ｃ＝０）とすることが出来る。従って、例えばＮ＝４である４×４のバッファメモリ、及びブロック幅Ｗ＝２を示すモード信号の場合、連続するシフトレジスタ３０におけるピクセル値は、交互に０及び２位置分シフトされる。
【００２６】
図３Ａは、モード信号“Ｍ”を受信する入力端、及びバッファメモリ１４（図示していない）のそれぞれの行に対するシフト制御信号用の出力端を備えるルックアップテーブル回路３４を備える、アドレス指定回路１５のシフト制御部の実施形態を示す。ルックアップテーブル（ＬＵＴ）回路３４は、例えば前述の関係によって、モード信号Ｍをアドレスとして使用し、制御信号の組をそれぞれのモード信号値に対するアドレスに格納する、メモリとして実装可能である。あるいは、同じ入力−出力関係を生じる論理回路、又は制御信号の計算を実行する算術回路が使用できる。
【００２７】
多重化回路３２を、選択された１つのシフトレジスタ３０の出力端をアクセスポート１７に接続するスイッチとして、実装することが出来る。アドレス指定回路１５は、アドレス信号入力端Ｘ，Ｙからのウィンドウ相対ＸＹアドレス信号を使用し、多重化回路３２に対する制御信号を生成するように構成される。制御信号が生成されるため、選択されたブロックからのピクセルを含む多重化回路の出力端は、アクセスポート１７に結合される。各アクセスポート１７に対して、１つの多重化回路３２が選択される。これを行うことができるのは、バッファメモリの複数行が互いにシフトされているためである。バッファメモリの各関連する行に対し、その行に対するシフトレジスタ３０のＷ個の出力が出力される。
【００２８】
例えば、第ｉ行がｉ＊Ｗ  Ｍｏｄ  Ｎにわたってシフトされる実施形態において、ウィンドウ相対アドレスがＸ，Ｙの場合、アドレス指定回路１５は、列番号Ｘ＋Ｙ＊Ｗ  Ｍｏｄ  Ｎから始まり、必要であれば第ゼロ列を含んで、バッファメモリ１４の第Ｙ行のＷ個の列を選択する。ＷがＮより小さい場合、列番号Ｘ＋（Ｙ＋１）＊Ｗ  Ｍｏｄ  Ｎから、必要であれば第ゼロ列を含み、アドレス指定回路１５も第Ｙ＋１行のＷ個の列を選択する。好適には、アドレス指定回路は、可能であれば、さらにより多くの行を選択する：すなわち、列番号Ｘ＋（Ｙ＊ｊ）＊Ｗ  Ｍｏｄ  Ｎから始まり、必要であればゼロ列を含み、Ｗ個の列を第Ｙ＋ｊ行（ｊ＝０、１、．．．）位置として選択する。この場合、ｊの値はｊｍａｘ＊ＷがＮ以下の場合に、ｊ＝０．．Ｊｍａｘ−１を満たすべきである。
【００２９】
図３Ｂは異なる列に対するアドレスを生成する列アドレス指定部を示す。ルックアップテーブル（ＬＵＴ）回路３６が備わり、連続するアクセスポート１７に対し必要となるアドレスオフセットを出力する。モード信号Ｍ、Ｘアドレス及びＹアドレス（の一部）は、ＬＵＴ回路３６への入力として使用される。ＬＵＴ回路は、モード信号Ｍ及びウィンドウ相対Ｘ，Ｙアドレス値の関数として、それぞれ１つの列に対するオフセット値を生成するように構成される。加算回路３８が備えられ、ＹアドレスをＬＵＴ回路３６の出力に加算する。アドレス指定を実現するために、アドレス指定回路１５の多くの実装が可能であることは明らかである。加算回路３８をＬＵＴ回路３６及び／又はデコーディング回路と統合し、個別の多重化回路３２に対する選択信号を生成することができる。他の実施形態では、各アクセスポート１７に対して計算回路が提供され、アクセスポート１７に結合されるべきバッファメモリの行を計算する。
【００３０】
上述した例の実施形態では、列アドレス指定部は、下記の条件を満たす整数行アドレスＹ＋ｊを効率的に計算する。
Ｐ＝Ｘ＋ｋ＋（Ｙ＋ｊ）＊Ｗ  Ｍｏｄ  Ｎ
ここでＰはポート番号、０とＷ−１との間であるｋはブロック中の行に沿った異なるピクセル値を列挙し、ｊは０とｊｍａｘ−１との間である。
【００３１】
従って、例えば２つのピクセル位置幅のブロックＷ＝２に対する４×４のバッファメモリ１４（Ｎ＝４）で、ウィンドウ相対ＸＹアドレスがＸ＝２、Ｙ＝２である場合、アドレス指定回路１５は第２行の多重化回路３２を制御し、その行のシフトレジスタ３０をゼロ行及び第１のアクセスポートに結合させる（ｊ＝０に対応するｋ＝０及び１に対して、それぞれＰ＝０及び１）。さらに、アドレス指定回路１５は第３行の多重化回路３２を制御し、その行のシフトレジスタ３０を第２及び第３のアクセスポートに結合させる（ｊ＝１に対応するｋ＝０及び１に対して、それぞれＰ＝２及び３）。
【００３２】
この実施形態におけるアドレス指定回路１５は、ブロックの幅Ｗのみに依存して各列のシフト量を制御する。これはアドレス計算を複雑化し得る。さらに、これはブロックの左上のピクセル位置に対するピクセル値へのアクセスを提供するアクセスポートが、ブロックのＸ及びＹアドレスに依存するという効果を有する。このピクセル位置は、Ｘ＋Ｙ＊Ｗ番目のアクセスポート１７への出力である。他の実施形態では、シフト回路（図示していない）はアクセスポート１７及び多重化回路３２の間に結合され、Ｘ＋Ｙ＊Ｗの位置にわたって循環的にピクセル値をシフトすることで、所定のアクセスポート１７は、ブロックの左上隅部に対する所定のピクセル位置に対するピクセル値へのアクセスを提供する。従って、処理回路１６はピクセル値に適合できる。
【００３３】
別の実施形態では、Ｙアドレス及び／又はＸアドレスへのシフトレジスタにおけるシフト量を適合することで、Ｙアドレスへの依存が除去される。例えば、ＬＵＴ回路３４にＹアドレス信号及び／又はＸアドレス信号に対する入力端を備え、これを実現させることもできる。この場合、アドレス指定回路１５はｉ番目のシフトレジスタ３０におけるピクセル値を（ｉ−Ｙ）＊Ｗ−Ｘ  Ｍｏｄ  Ｎにわたってシフトするように構成でき、ここでＸ及びＹは、バッファメモリ１４が共にアドレスされるブロックの、左上ピクセル位置のウィンドウ相対Ｘ、及びＹアドレスである。従って、アクセスポート１７で、アドレスブロック内の所定のピクセル位置に対応するピクセル位置は、所定のアクセスポート１７に対応する。この場合、アクセスポート１７でこれを実現するために他のシフト回路は必要ない。別の実施形態では、アドレス指定回路は、（ｉ−Ｙ）＊Ｗ  Ｍｏｄ  Ｎによって、ｉ番目のシフトレジスタ３０のシフト量を制御できる。この場合、列のアドレスはＹアドレスとＹアドレス独自のオフセット値を加算したものから決定することが出来る。他の実施形態では、また、−Ｘ  Ｍｏｄ  Ｎを加えて、ブロック中のＹ位置のみに対する、アクセスポート１７の依存が実現される。
【００３４】
ある実施形態では、アドレス指定回路１５はデコードされた選択信号を計算し、個々の多重化回路３２に対し異なる選択信号を出力し、アクセスポート１７をＯＮ／ＯＦＦ制御する。あるいは、アドレス指定回路１５はコード化されたアドレス信号をある列の多重化回路３２に共通に供給することができ、この場合、多重化回路３２は同様にデコードを行うように構成されるべきである。
【００３５】
シフティングは各シフトレジスタ３０によって制御でき、データを制御されたシフトサイクル数にわたってシフトさせる。ある実施形態では、アドレス指定回路は、ｉ番目のシフトレジスタに、ｉ＊Ｗ  Ｍｏｄ  Ｎのシフトサイクルの間、データをシフトさせることができる。
【００３６】
図４はバッファメモリ１４の行において使用できる別のシフトレジスタ回路４０を示す。シフトレジスタ回路４０は循環系列のレジスタ４２及びレジスタ間に挿入されたマルチプレクサ４４を備える。各マルチプレクサ４４は、先行するレジスタ４２の出力端、及び列に沿って位置を所定数後方のレジスタ４２の入力端に結合された、第１の入力端を有する。アドレス指定回路１５（図示していない）はマルチプレクサ４４及びレジスタ４２を制御する。シフトステップのマルチプレクサ４４を使用し、１つのシフトサイクル中で、レジスタ４２において１位置だけシフトするか、複数位置シフトするかを選択することが出来る。従って、大量のシフトを実現するために必要なシフトサイクルの数は、選択されたシフトレジスタ４２に対しするマルチプレクサ４４を制御して、循環系列に沿って所定数後方の位置のレジスタからのピクセル値をわたすことによって減少させることが出来る。
【００３７】
レジスタ４２の循環系列に沿ったそれぞれ所定距離でレジスタ４２の出力端に結合された、より多くの選択可能な入力端を備える多重化回路４４を使用することによって、シフトサイクル数の更なる削減が実現されることに留意されたい。最も極端な形式では、各マルチプレクサ４４は、そこからピクセル値がシフトされ得る各レジスタ４２の出力端に結合された選択可能な入力端を有する。この場合、アドレス指定回路１５はバッファメモリの各行のマルチプレクサ４４を制御し、循環列に沿って必要な距離（例えば距離ｉ＊Ｗ、ｉはバッファメモリ１４におけるシフトレジスタ４０の行数）のレジスタ４２からピクセル値を伝える。結果として、各シフトレジスタ４０に沿ってデータをシフトさせるには、１つのシフトサイクルで十分である。他の実施形態では、限られた数のシフト量だけが許容され（例えば異なるブロックサイズによって）、全てのこれらのシフト量に対するマルチプレクサ４４の選択可能な入力が備えられるが、他のシフト量に対する入力端は備えない。
【００３８】
ある実施形態では、制御回路１８は各アクセス動作に対してフレッシュモード制御信号を供給するように構成される。この場合、制御回路によって処理される各アクセス命令は、好適には、アドレス指定回路１５に供給する回路を制御するモード制御信号値に対するフィールドを含むことが望ましい。別の実施形態では、モード制御信号は、例えば新しいモード制御信号値が設定されるまで、複数のアクセス動作に対して設定できる。この場合、連続するアクセス命令に対するモード制御信号の値を設定するのに別々の命令が使用できる。好適には、この別の実施形態では、シフトレジスタ３０（又は４０）のピクセル値は新しいモード制御信号の値を設定する命令に応じてシフトされる。
【００３９】
両実施形態では、同じタスクの間、種々のブロックサイズを収容するためのバッファメモリの再読込なしに、異なるブロックサイズ及び／又は形状を使用する種々の種類の処理を実行することが出来る。
【００４０】
図５は、シフトレジスタ３０又は４０が、アドレス指定回路１５によって制御されるシフト回路５２（例えばバレルシフタ）に結合されたシフトレジスタ５０の組によって置き換えられた実施形態を示す。シフト回路５２の出力端は、多重化回路３２に類似する多重化回路５４（詳細は図示しない）によって、アクセスポート１７に結合される。
【００４１】
動作中、図５のバッファメモリ１４はシフト回路５２の回路交換によって、つまりシフトレジスタチェーンにおける１つのレジスタから他のレジスタへのデータ転送なしに、行依存のシフティングを実行する。これはアクセスを高速化することができるが、シフトレジスタを使う場合に比べ、アクセスがより複雑で、あまり小型でない回路を必要とする。
【００４２】
ある実施形態では、アドレス指定回路１５は、シフトレジスタ３０（又は４０）に各アクセス動作に対してアクセス動作に必要となるシフト量だけピクセル値をシフトさせ、アクセス動作後に同じ量だけ再びピクセル値を戻させる。
【００４３】
図６は、ピクセル値がアクセス動作前だけにシフトされるアドレス指定回路１５のシフト制御部の実施形態を示す。この実施形態では、最後に使用されたモード制御信号を格納するレジスタ６０が備えられ、もしあれば、既存のシフト量（旧モード制御信号値によって示される）と新規のアクセス動作に新たに必要となるシフト量との間の差に対応するシフト制御信号を出力するＬＵＴ回路３４（又は同じ入出力機能を備えるその他の回路）が備えられる。シフト量が制御された後に、格納してあるモード制御信号値が更新される。従って、シフティングの回数を最少化でき、よって電力及び時間を節約できる。シフト量がＸ及び／又はＹアドレスに依存している場合にも、好適には、同様にレジスタ６０に格納され、ＬＵＴ回路３４に供給される。
【００４４】
他の実施形態では、アドレス指定回路１５は、アドレスされていないシフトレジスタにおけるシフトを不可能にするように構成される。この実施形態が差分シフティングを使用する実施形態と組み合わされる場合、好適には、それぞれの列に対する前シフト量を表すためにレジスタが供給され、前シフト量に対するシフト量の変化に応じてシフト量は制御される。
【００４５】
インタフェース回路１２はメインメモリ１０及びバッファメモリ１４間のピクセル値の転送をサポートする。転送の制御には任意の機構が使用できる。ある実施形態では、転送は処理回路１６の動作サイクルにリンクされる。この実施形態では、制御回路は最初にインタフェース回路１２に信号を送信し、これはインタフェース回路１２がメインメモリ１０からバッファメモリ１４にピクセル位置のウィンドウに対するピクセル値を読み出すトリガを与える。次いで、制御回路１８は処理サイクルを開始し、この動作サイクル中のアクセスが完了すると、制御回路１８は信号をインタフェース回路１２に送信し、これはインタフェース回路１２がメインメモリ１０からバッファメモリ１４にピクセル位置ウィンドウに対するピクセル値の追加的な列を読み出すトリガを与える。この場合、バッファメモリ１４のシフト機構を使用して、新規のピクセル値を所定のレジスタに書込み可能することを実現することができる。これは全ての行に対し同じシフト量を必要とするだけで、動作中のシフト量はモードに依存しないことに留意されたい。
【００４６】
ある実施形態ではインタフェース回路１２はメインメモリ１０からバッファメモリ１４だけにピクセル値を転送するように構成できるが、別の実施形態では、インタフェース回路はバッファメモリ１４からメインメモリ１０だけ（処理後に）にピクセル値を転送するように、又は処理前にメインメモリ１０からバッファメモリ１４へと、処理後にバッファメモリ１４からメインメモリ１０へと戻すようにピクセル値を転送するように構成される。
【００４７】
メインメモリ１０及びバッファメモリ１４間の転送は、他の形式が使用できることに留意されたい。（例えばプログラムカウンタ値によってトリガが与えられる）動作サイクルにリンクされた転送の変わりに、明示的な転送命令に応じた転送、又はアドレス指定の結果、外部バッファメモリを使用することが出来る。
【００４８】
本発明は制御回路１８がピクセル値をウィンドウ相対ＸＹアドレスによってアドレスする実施形態について述べてきたが、別の実施形態は絶対（画像相対）ＸＹアドレスを使用することが出来る。この別の実施形態では、ウィンドウのＸＹアドレスがバッファメモリに格納されるなら、絶対アドレスをウィンドウ相対ＸＹアドレスに変換する転送回路を提供することができる。あるいは、バッファメモリの内部アドレス（及び状況に応じてシフト量）を絶対アドレスから直接計算することができる。
【００４９】
本発明は画像ラインとバッファメモリ１４の行との間に１対１の対応がある例として記載している。しかしながら、２以上の多い画像ラインに対するピクセル値を１つの行に格納することができ、又は、１つの画像ラインに対するピクセル値をバッファメモリ１４の複数行に分散して格納することができる。好適には、この場合バッファメモリ１４に格納される画像ラインからのピクセル位置の数は、行のメモリ位置数の整数倍、又は逆に行のメモリ位置数は、バッファメモリに格納される画像ラインからのピクセル位置数の整数倍である。他の実施形態では、回路はこれらの整数倍に限定されない。
【００５０】
図７Ａ−Ｂは、例えばバッファメモリが６つのアクセスポート及び６つのメモリ位置の行を有する、画像ラインの分別記憶（ｆｒａｃｔｉｏｎａｌ  ｓｔｏｒａｇｅ）を示す。この図はバッファメモリ１４におけるメモリ位置の行（シフトレジスタ３０又は４０）及び列（アクセスポート１７）に対応する行及び列のマトリックスを示す。画像におけるピクセル位置のラインセグメントに対するピクセル値はこのメモリ位置に格納される。ラインセグメント上の最も左側のピクセル位置に対するピクセル値を格納するメモリ位置を円で示す。分別記憶の場合、図示するように、これらのメモリ位置は同じ列にない。この図はまた、長方形ブロックのラインセグメントに対するピクセル値の位置を示す。図７Ａは×印、三角形及び正方形を使い、ピクセル位置の４×２ブロックに対するピクセル値の記憶位置を示す。図７Ｂは同様にピクセル位置の３×６ブロックに対するピクセル値の記憶位置を示す。
【００５１】
ここで、選択可能な寸法のブロックにアクセスしなくてはならない場合、モード信号をアドレス指定回路１５に供給し、選択されたブロックの寸法を示す。この実施形態では、アドレス指定回路１５はまた、メモリに格納されるラインセグメントの長さについての情報、又はラインセグメントの開始メモリ位置の間のオフセットについての情報を受信する。さらに、アドレス指定回路には、ブロックのＸ，Ｙアドレスが供給される。アドレス指定回路１５はシフト量とアドレスを制御し、異なるラインセグメントに対するピクセル値の、異なるアクセスポート１７上での出力を可能にする。この目的のため、アドレス指定回路１５は、モード信号及び格納されたラインセグメントの関数として、シフト量及びアドレスを制御する。
【００５２】
この図は、クロス及び三角形それぞれで、アクセスポート１７上で並列にアクセスされるそれぞれの画像ラインからのピクセル位置を示す。図７Ａから明らかなように、ブロックにおける１つのラインからの４つのピクセル値が並列に出力され、次のラインの２つのピクセルがアクセスされる。図７Ｂから明らかなように、ブロックにおける１つのラインからの３つのピクセル値が並列に出力され、次のラインの３つのピクセルがアクセスされる。
【００５３】
このタイプのアクセスに対するシフト量及びアドレスは、格納されたピクセル位置の数がバッファメモリ１４の行ごとのメモリ位置の数に等しい場合よりも、より複雑である。図７Ａの場合、アドレス指定回路１５は、例えば０及び２のシフト量を使用できる。アドレス指定回路１５によって最初の２つのアクセスポートに対して生成される行アドレスは、第２行をアドレスし、第３から第６のアクセスポートに対するアドレスは第１行をアドレスする。図７Ｂの場合、アドレス指定回路１５は、例えば２、１及び１のシフト量を、第１、第２及び第３行に対して使用できる。アドレス指定回路１５によって最初の３つのアクセスポートに対して生成される行アドレスは第１行をアドレスし、次の２つのアクセスポートに対するアドレスは第２行、及び最後のアドレスポートに対するアドレスは第３行をアドレスする。
【００５４】
この場合には、画像ラインがバッファメモリ１４の各行の同じ位置から始まる例に比べ、アドレス指定パターンはあまり規則正しくないことがわかる。しかしながら、任意構成のブロック寸法、ブロックアドレス及びバッファメモリ１４における画像ラインセグメントのラインセグメント長用に、複数ラインからのピクセル値への並列アクセスを可能にするシフト量とアドレスの組み合わせを選択することは順当である。当業者は、必要とされるピクセル位置は、互いに異なるアクセスポートの組にシフトさせなくてはならないという制約に従って、シフト量のこのような組み合わせを選択することが出来る。そして、当業者は、ブロック寸法、ブロックアドレス及びラインセグメント長の構成についての情報に応じて、シフト量とアドレスとの組み合わせを選択する制御信号を出力するＬＵＴ回路又は任意の他の適宜な回路を提供することが出来る。この技術は単なる長方形ブロックだけでなく、任意の形状のブロックをサポートすることが出来ることがわかる。
【００５５】
本発明は特定の実施形態によって述べてきたが、本発明はこれらの実施形態に限定されないことに留意されたい。例えば、４×４のピクセル位置より大きなバッファメモリサイズが使用できることに留意されたい。また、バッファメモリ１４は正方形ウィンドウに対するメモリに限定されない。
【００５６】
さらに、本発明はメモリ位置毎に１つのピクセル値を含むバッファメモリ１４について述べたが、各位置に２以上の多いピクセル値、例えばＸ方向に連続するピクセル位置に対する４つのピクセル値のグループが格納できることに留意されたい。この場合、このグループはアクセスの基本粒度を規定し、アクセスポート１７への転送が各グループ共通に制御され、当該グループのピクセル値が同じアクセスポート１７に一緒にアクセスされるようにするのが好適である。当然、これはアドレス指定及びブロックサイズをアクセス精度の整数倍に限定するが、これはほとんどの用途における画像処理動作に対して容認できる。
【００５７】
さらに、循環シフトレジスタの使用を述べたが、非循環的なシフトレジスタが使用できることに留意されたい（つまり、右側のピクセル値が、右にシフトアウトする際に、ピクセル値を左にシフトしないか、又は逆も同様のレジスタ）。この場合、非線形シフトレジスタは、好適にはウィンドウの行より広く、ピクセルが左又は右にシフトされた場合にウィンドウからピクセル値を受信するために付加的な位置を備えるため、異なるモードで必要とされるようにデータが前後にシフトされる場合でもウィンドウからのピクセル値が失われることはない。循環シフトレジスタが使用できる場合には、より小型のシフトレジスタが使用できることに留意されたい。また、この場合ブロックを分割表現することも可能である。
【００５８】
アドレス指定回路１５は処理回路１６の一部としてか、又は１組の個別の処理回路に代わる大きめな処理回路の一部として実装できる。従って、ブロック選択及びアドレス指定はこのような処理回路における命令によって制御することが出来る。あるいは、アドレス指定回路１５はバッファメモリ１４と統合できる。さらに、制御回路１８の機能の一部は、例えばアドレスの使用及び／又は将来のアドレス指定に関する処理回路１６からの情報に基づいて、新規のデータをメインメモリ１０から取り出さなくてはならないかを検知するために、バッファメモリ１４及び／又はアドレス指定回路１５と一体化できる。
【００５９】
本発明は主にバッファメモリ１４からのピクセル値の読出しを含むアクセス実施形態に対して説明したが、本発明は書込み専用、又は読出しと書込み、又は読み出し専用に適用できる。これは、シフトレジスタ３０、４０又はレジスタ５０において、アクセスポート１７及びレジスタの間で、信号フローがサポートされる方向に影響を与えるに過ぎない。書き込みの場合、多重化回路３２、５４は厳密に言えばデマルチプレクサ回路として機能するが、しかしこれは、これらのデマルチプレクサ回路がスイッチ接続を使用して実装された場合には差異がない。
【図面の簡単な説明】
【００６０】
【図１】画像処理回路を示す図である。
【図２Ａ】ピクセル位置とピクセル値の並列出力との関係を示す図である。
【図２Ｂ】ピクセル位置とピクセル値の並列出力との関係を示す図である。
【図３】バッファメモリを示す図である。
【図３Ａ】シフト制御部を示す図である。
【図３Ｂ】列アドレス指定部を示す図である。
【図４】シフトレジスタを示す図である。
【図５】バッファメモリを示す図である。
【図６】他のシフト制御部を示す図である。
【図７Ａ】画像ラインの分別記憶を示す図である。
【図７Ｂ】画像ラインの分別記憶を示す図である。
【図１】
2008541259.tif 000003
【図２Ａ】
2008541259.tif 000004
【図２Ｂ】
2008541259.tif 000005
【図３】
2008541259.tif 000006
【図３Ａ】
2008541259.tif 000007
【図３Ｂ】
2008541259.tif 000008
【図４】
2008541259.tif 000009
【図５】
2008541259.tif 000010
【図６】
2008541259.tif 000011
【図７Ａ】
2008541259.tif 000012
【図７Ｂ】
2008541259.tif 000013
【国際調査報告】
2008541259.tif 000014
2008541259.tif 000015