説明

読み出し機能及びフェッチ機能を分けることによるデータ処理装置のメモリユニットの性能向上

本発明は、処理ユニット12及びメモリユニット14を有するデータ処理装置と、データ処理装置のメモリユニット14の動作の制御方法とに関する。メモリユニット14は、主要メモリ16と、処理装置12へ直接的に接続され、処理ユニット12による読出アクセスのために現在処理対象であるスライド検索範囲の全ての画素を保持するよう構成される低レベルキャッシュメモリ20.2と、低レベルキャッシュメモリとフレームメモリとの間に接続される高レベルキャッシュメモリ18と、高レベルキャッシュメモリと低レベルキャッシュメモリとの間に接続され、処理ユニットに従う走査方向及び走査順序に依存して画素ブロックの1つの検索範囲行又は1つの検索範囲列を保持するよう構成される第1のプレフェッチ・バッファ20.1とを有する。読出機能及びフェッチ機能はメモリユニット14で分離される。フェッチ機能はより高いキャッシュレベルに集められ、読出機能はより低いキャッシュレベルに集められる。このようにして、同時の読出及びフェッチは達成され、データ処理装置の性能が向上する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特に映像データ処理用途のための、処理ユニット及びメモリユニットを有するデータ処理装置に関する。本発明は、また、このようなデータ処理装置のメモリユニットの動作を制御する方法に関する。
【背景技術】
【0002】
欧州特許出願EP04101677.5は、全体として、本願に参照することによって援用される。
【0003】
映像データ処理装置は、一方では高速な処理速度を実現するために必要とされるが、他方で、それらは柔軟であるべきである。映像データ処理装置の柔軟性は、スケーリング、フィルタリング、動作検出などのような様々な映像処理アルゴリズムを扱うことが可能なその機能と、様々なビデオ画像フォーマットを処理可能なその能力とによって反映される。
【0004】
映像処理システムのメモリユニットは、一般的にフレームメモリを有する。フレームメモリは、フレームとも呼ばれる映像シーケンスの1又は幾つかのビデオ画像を表示するために必要とされる情報を保持する。動作推定のような多数の映像アプリケーションは、キャッシュメモリにおいて現在処理されるビデオ画像のセグメントをバッファリングすることによる利益を享受する。よく知られるように、キャッシュメモリは、フレームメモリに比較してそのサイズがより小さく、また、処理ユニットへ直接に接続されるので、待ち時間の減少をもたらし、更に、動作に要する電力がより小さい。待ち時間は、処理ユニットからの読み出し要求の後に最初の画像データを取り出すために必要とされるタイムスパンを決定する。
【0005】
既知の映像データ処理装置で、メモリユニットは、多層キャッシュメモリを有する階層メモリアーキテクチャを有する。最下のキャッシングレベルにある、以降単にキャッシュとも呼ばれるキャッシュメモリは処理ユニットに最も近く、一方、最高のキャッシングレベルにあるキャッシュメモリはフレームメモリに最も近い。
【0006】
処理ユニットとフレームメモリとの間に異なるキャッシングレベルを提供することによって、メモリユニットの費用と性能との間のバランスは達成される。費用要因は、映像データ処理装置全体のチップ領域及び電力条件である。
【0007】
キャッシュ内のデータに関する交換方法は、映像処理アルゴリズムの形式及びシステムの所望の予測可能性に依存して、動的又は静的のいずれか一方である。動的交換方法を伴うメモリユニットでは、キャッシュ・ヒット又はキャッシュ・ミスのいずれか一方が生ずる。キャッシュ・ミス状態で、所望のデータは、アクセスされるキャッシュでは見つけられず、より高いキャッシングレベルから又はフレームメモリから複製される必要がある。これに関連する時間ペナルティは、待ち時間及びメモリの帯域幅(bandwidth)に依存する。メモリの帯域幅は、いくつのビットが1つのクロック周期でメモリによって供給され得るかを決定する。
【0008】
対照的に、キャッシュ・ミス状態は、例えば、よく知られる先入れ先出し交換方法などの静的な交換方法を用いる場合には生ずる可能性が低い。静的な交換方法は、予測可能なメモリアクセスパターンを伴う処理アルゴリズムに適する。
【0009】
US6,449,692B1は、3段階キャッシュ構造を有するメモリユニットを備える映像データ処理装置について記載する。キャッシングレベルはL1からL3で表される。キャッシュレベルの番号表示は、処理ユニットが、キャッシュからのデータ読み出し又はキャッシュへのデータ書き込みの最中である場合にキャッシュにアクセスするところの昇順に対応する。これは、メモリユニットへの読み出しアクセスが最初にL1キャッシュへアドレス指定され、キャッシュ・ミスがそのキャッシュに生ずる場合には、L2キャッシュへのアクセスが後に続き、ヒットがキャッシュ又は最終的に主要メモリで成立するまで、以降同様に続くことを意味する。
【0010】
US6,449,692B1の装置におけるメモリユニットのキャッシングレベルL1及びL2は、非画素情報しか保存しない。非画素情報は、処理ユニットへのアクセスを可能にするアドレス変換情報又は命令を含む。対照的に、L3キャッシュメモリは、非画素情報だけでなく画素データも保存する。非画素情報又は画素データのいずれか一方へキャッシングレベルL3の区分を動的に割り当てるキャッシュ制御回路が設けられる。アドレス及びアービトレーション回路は、異なるキャッシュレベルへの処理ユニットのアクセスを制御する。バスインターフェースユニットは、直接的にL3キャッシュレベル及び処理ユニットに主要メモリへのアクセスを提供する。処理ユニットが画素データに関する読み出し要求を発行し、キャッシュ・ヒットが生ずる場合に、L3キャッシュは、L1及びL2キャッシュレベルをバイパスするレジスタを介して処理ユニットへ要求されるデータを供給する。キャッシュ・ミスが生ずる場合には、処理ユニットは直接的に主要メモリをアドレス指定する。
【0011】
US6,449,692B1の映像データ処理装置で、全てのキャッシュレベルは、フェッチ機能のみならず読み出し機能を提供する。各キャッシュレベルは、その各自のサポートされる形式のデータを目的とする。映像データ処理装置の総体的な処理速度は、キャッシュメモリユニットが処理ユニットへの出力(読み出し機能)及び主要メモリ又はより高いレベルのキャッシュからのデータの記憶(フェッチ機能)を並行して、即ち同時に実行することができないという事実によって制限される。
【特許文献1】欧州特許出願EP04101677.5
【特許文献2】米国特許US6,449,692B1
【発明の開示】
【発明が解決しようとする課題】
【0012】
従って、本発明は、同時タスクとして読み出し動作及びフェッチ動作を実行することが可能な、メモリユニットを有する映像データ処理装置及び、データ処理装置のメモリユニットの動作を制御する方法を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明の第1の態様に従って、データ要素の2次元主要配列を処理するデータ処理装置は、
− 前記主要配列を保存する主要メモリを有する主要メモリユニットと、
− 前記主要配列の2次元サブ配列を形成するデータブロックを順次に処理し、前記主要配列の予め設定された数のデータブロック列及びデータブロック行に広がるスライド検索範囲のデータ要素に関する読み出し要求を供給するよう構成される処理ユニットと、
− 前記主要メモリへ接続される高レベルキャッシュメモリを有する高レベルキャッシュユニットであって、
− 前記スライド検索範囲よりも大きい画像のスライド領域を形成するためのデータブロックを前記主要メモリからフェッチし、
− 前記高レベルキャッシュメモリから第1のプレフェッチ・バッファへ前記スライド検索範囲を更新するために必要とされる保存されたスライド領域のデータ要素をプレフェッチして、これらのデータ要素を前記第1のプレフェッチ・バッファの出力で供給するよう構成される高レベルキャッシュユニットと、
− 前記処理ユニットと前記第1のプレフェッチ・バッファとの間に直接的に接続される低レベルキャッシュメモリを有する低レベルキャッシュユニットであって、
− 前記第1のプレフェッチ・バッファの出力で供給される前記データ要素を用いて、前記高レベルキャッシュユニットの前記フェッチ及びプレフェッチ動作と同時に前記低レベルキャッシュメモリにおいて前記スライド検索範囲を保存及び更新し、
− 前記高レベルキャッシュユニットの前記フェッチ及びプレフェッチ動作と同時に前記処理ユニットへ必要とされるデータ要素を選択及び出力するよう構成される低レベルキャッシュユニットと、
を有する。
【0014】
本発明のデータ処理装置の好ましい使用は映像処理との関連であるが、それはこのような用途に制限されない。本発明のデータ処理装置は、いずれかの2次元データ配列、例えば、地震学データ(seismological data)の配列の処理との関連で使用され得る。2次元データ配列は、2次元行列に対応する方法で順序づけられるデータ構造の組である。画像処理との具体的関連では、主要配列とも称される2次元データ配列は画像である。
【0015】
他の一般的用語は、これに関連して以下のように言い換えられるべきである。
【0016】
“データ要素”→“画素”、
“データブロック”→“画素ブロック”、
“データ行”→“画素行”、
“データ列”→“画素列”、
“データブロック列”→“画素ブロック列”、
“データブロック行”→“画素ブロック行”。
【0017】
以下で、本発明に係るデータ処理装置は、ビデオ画像の処理における好ましい使用との関連で記載される。映像処理アプリケーションで、画像は、例えば、映像フレーム又は映像フィールドであっても良い。映像フレームは、通常、画像の全ての画素を含む。映像フィールドは、通常、インタレース式に配置された画素行の組を含む。インタレース走査は、当該技術では広く知られた概念であり、相補的なサブセットの画素行を有する時間的に連続するビデオ画像の供給に関する。
【0018】
画像は、当該データ処理装置の主要メモリに保存される。当該データ処理装置の処理ユニットは、前記画像の2次元サブ配列を形成する画素ブロックを順次に処理するよう構成される。従って、画素ブロックは一時に1つを処理される。画素ブロックは、例えば、8×8、16×16又は32×32の画素から成る。前記処理ユニットは、異なる映像処理コンテキストで異なる画素ブロックサイズを用いるよう構成されても良い。
【0019】
前記処理ユニットは、更に、前記画像の予め設定された数の画素ブロック列及び画素ブロック行に広がるスライド検索範囲の画素に関する読み出し要求を供給するよう構成される。スライド検索範囲の概念は、当該技術でよく知られており、例えば、様々な既知の動作推定アルゴリズムのような検索方法を用いる映像処理アルゴリズムにおいて使用される。検索範囲は、画像のサブ配列を形成する画素ブロックの2次元配列である。スライド移動検索範囲は、検索範囲の一端で画素ブロックを検出して、検索範囲の反対の端で画素ブロックを加えることによって実現される。どの画素ブロックが検出され、どの画素ブロックが加えられるかは、画像の全域における検索範囲のスライド移動の所定方向に依存する。検索範囲の移動は、例えば、水平に左から右への移動であっても良い。検索範囲の移動は、画素ブロックを処理するために処理ユニットによって用いられる処理アルゴリズムの走査方向及び走査順序と結合される。様々な動作方向及び動作順序の例は、図4の記載に関連して以下で説明される。検索範囲のサイズ、即ち、2次元で検索範囲に含まれる画素ブロックの数は、処理ユニットによって使用されるアルゴリズムの形式に依存する。例えば、検索範囲のサイズは、動作推定アルゴリズムにおいて運動ベクトルの長さに依存する。それは、また、映像アプリケーションではフレームサイズに依存する。
【0020】
本発明のデータ処理装置は、高レベルキャッシュメモリを有する高レベルキャッシュユニットと、低レベルキャッシュメモリを有する低レベルキャッシュユニットとを有する。前記低レベルキャッシュメモリは、以降、L0キャッシュ、検索範囲バッファ、又はSAバッファとも呼ばれる。留意すべきは、本発明の好ましい適用分野では、通常、前記処理ユニットと高レベルキャッシュメモリとの間にはレジスタが存在しない。他の適用分野では、表示L0キャッシュはレジスタと呼ぶ。しかし、本願では、L0キャッシュとしての低レベルキャッシュメモリの表示は、このキャッシュメモリがレジスタであることを示唆しない。
【0021】
夫々のメモリに加えて、高レベルキャッシュユニット及び低レベルキャッシュユニットは、通常、関連する制御ユニットを有する。この制御ユニットは、ここではキャッシュ制御装置と呼ばれる。キャッシュ制御装置は、ハードウェア又はソフトウェアのいずれか一方で実施され得る。これに対して、低レベルキャッシュ制御装置はL0キャッシュ制御装置とも呼ばれる。高レベルキャッシュは、以降、L1キャッシュ又は縞地(stripe)バッファとも呼ばれる。これに対して、高レベルキャッシュ制御装置はL1キャッシュ制御装置とも呼ばれる。
【0022】
本発明に係るデータ処理装置は、フェッチが1つのキャッシュレベルに集中し、読み出しが他のキャッシュレベルに集中する場合に、同時の読み出し及びフェッチが達成され得るという一般概念に基づく。
【0023】
特に、本発明は、読み出し動作及びフェッチ動作の間に認められるパラメータの解析に基づく。これらのパラメータは、異なる映像フォーマット規格及び異なる映像処理アルゴリズムで変化するので、柔軟性のために提供することが重要である。本発明に係る映像処理装置は、スケーリング、フィルタリング、動作検出などのような様々なアルゴリズムと、共通中間フォーマット(Common Intermediate Format;CIF)、標準精細度テレビジョン(Standard Definition Television;SDTV)、又は高精細度テレビジョン(High Definition Television;HDTV)のような様々な映像フォーマットとを扱うことができる。
【0024】
本発明に係る映像処理装置は、読み出し及びフェッチに関してメモリユニットの動作に影響を及ぼす以下のパラメータの認識に基づく。
【0025】
[1.ブロックサイズ]
前記メモリユニットのフレームメモリは、様々なブロックサイズ、例えば、8×8又は16×16の画素で編成され得る。ブロック編成は、低レベルキャッシュの交換方法、即ち、いくつ、どの画素が、処理が続く場合に低レベルキャッシュにロードされる必要があるのかを制御する。
【0026】
[2.走査方向及び走査順序]
連続する画素ブロックの処理において、前記処理ユニットは、様々な映像処理アルゴリズムにおいて様々な方向及び順序に従い、従って、様々な可能な順序でメモリユニットに保存される映像フレームの画素にアクセスすることができる。走査方向は、上から下、下から上、左から右、又は右から左のいずれか1つである。走査順序は、画素ブロック行ごと若しくは画素ブロック列ごと又は蛇行式(meandering style)のいずれか1つである。
【0027】
[3.映像フォーマット]
フレームメモリは、様々な色空間又は映像フォーマットで編成され得る。映像フォーマットは、色ごとに8ビット若しくは画素ごとに24ビットを必要とするRGB、又は様々な二段抽出YUVフォーマットのいずれか1つである。これらは、輝度及び色の違いに基づく既知の映像フォーマットである。
【0028】
[4.サブピクセル精度]
よく知られるように、フレーム内の対象間に滑らかな境界を発生させるデータは、画素グリッドよりも細かい精度を必要とする。必要とされるブロックの座標を基に、メモリユニットは、更なる画素とともに適切なブロックを検出して供給するべきである。これは、必要とされるサブピクセル精度を発生させるために、例えばバイリニア補間などの補間の実行を可能にする。
【0029】
[5.窓サイズ]
窓サイズは、前記メモリユニットから読み出される領域のサイズを決定するために前記処理ユニットによって使用されるパラメータである。
【0030】
[6.窓座標]
窓座標は、例えば、現在求められる読み出し窓の左上角を決定するような(X,Y)座標の形式で前記処理ユニットによって与えられる。
【0031】
本発明に係るデータ処理装置は、パラメータ1〜3、即ち、ブロックサイズ、走査方向及び走査順序、並びに映像フォーマットがフェッチ動作に関連するという認識に基づく。本発明の映像処理装置に係る好ましい実施例では、これらのパラメータは、より高いキャッシュレベルで扱われる。従って、フェッチ機能は、高レベルキャッシュ及び高レベルキャッシュ制御装置に集められる。
【0032】
しかし、1つの固定の映像フォーマットしか処理しないよう構成される処理装置も本発明の適用範囲に含まれることが知られる。映像フォーマット(パラメータ3)の柔軟性を可能にする処理装置は、本発明のデータ処理装置に係る好ましい実施例として以下で更に記載される。
【0033】
対照的に、パラメータ4〜6、即ち、サブピクセル精度、窓サイズ及び窓座標が読み出し動作に関連することは、本発明のデータ処理装置の根底にある更なる認識である。本発明のデータ処理装置で、これらのパラメータ4〜6は、より高いキャッシュレベルでは扱われず、より低いキャッシュレベルで扱われる。従って、読み出し機能は、低レベルキャッシュ及び低レベルキャッシュ制御装置に集められる。
【0034】
本発明に従う低レベルキャッシュユニット及び高レベルキャッシュユニットにおいて扱うパラメータの分配は、以下の表で簡単に述べられる。
【表1】

【0035】
先と同じく、映像フォーマットパラメータは、表の完全性のために含まれる。本発明の一実施例で、高レベルキャッシュユニットは、例えば、CIF規格、SDTV規格又はHDTV規格のような、画素データを保存するための1つの一般的な標準映像フォーマットに適合される。
【0036】
記載されるパラメータの分配を達成するよう、本発明に係るデータ処理装置の高レベルキャッシュユニットは、画素ブロックへの画素の分配ではなく、画素行の分配に従って、高レベルキャッシュを編成する。より厳密には、前記高レベルキャッシュユニットは、前記スライド検索範囲よりも大きい画像のスライド領域を形成する画素ブロックを前記主要メモリからフェッチして、前記高レベルキャッシュメモリにおいて画素行又は画素列への分配に従って前記スライド領域を保存するよう構成される。前記スライド領域は、概して、前記スライド検索範囲と同じ移動を行う。望ましくは、前記高レベルキャッシュユニットは、画素行へのフェッチされる画素の分配を使用するよう構成される。代替案として、前記高レベルキャッシュユニットは、画素列へのフェッチされる画素の分配を使用するよう構成される。この代替の実施例は、例えば、垂直ピークにおいて適用される。
【0037】
更に、スライド検索範囲を更新するために、前記高レベルキャッシュユニットは、所定の走査順序及び走査方向に従って前記スライド領域を更新するために必要とされる画素ブロックを前記主要メモリからフェッチして、前記高レベルキャッシュメモリにおいて画素行又は画素列への分配に従って前記画素ブロックを保存するよう構成される。従って、より高いキャッシュレベルで画素行分配を導入することによって、前記低レベルキャッシュユニットに関してブロックサイズ(パラメータ1)の概念は存在しない。
【0038】
更に、前記第1のプレフェッチ・バッファの提供は、走査方向及び走査順序(パラメータ2)が、前記低レベルキャッシュユニットの観点からすれば関連しないことを確実にする。前記低レベルキャッシュユニットは、単に、前記プレフェッチ・バッファで供給されるデータを複製すべきである。前記低レベルキャッシュメモリへこれらのデータを複製することによって、前記低レベルキャッシュによって提供される検査範囲は更新される。前記高レベルキャッシュユニットは、前記高レベルキャッシュメモリから前記第1のプレフェッチ・バッファへ、前記スライド検索範囲を更新するために必要とされる前記保存されるスライド領域の画素をプレフェッチすることによってこの処理を制御し、前記第1のプレフェッチ・バッファの出力で前記画素を供給する。このプレフェッチの実施は、どの画素が前記処理ユニットによって必要とされうるかを予測するために、特定の映像処理アルゴリズムの知識を含む。このようにして、前記高レベルキャッシュユニットは、前記高レベルキャッシュメモリに保存される適切な画素行を然るべく選択し、該選択される画素行を前記第1のプレフェッチ・バッファへ複製する。従って、前記低レベルキャッシュ制御装置は、走査方向及び走査順序のフェッチ関連のパラメータを扱う必要はない。望ましくは、複製は、スライド移動ステップにより前記検索範囲から落ちる前記低レベルキャッシュメモリ内の画素の上書きを含む。
【0039】
本発明に係るデータ処理装置の低レベルキャッシュユニットは、前記第1のプレフェッチ・バッファの出力で供給される前記データ要素を用いて、前記高レベルキャッシュユニットの前記フェッチ及びプレフェッチ動作と同時に前記低レベルキャッシュメモリにおいて前記スライド検索範囲を保存及び更新し、前記高レベルキャッシュユニットの前記フェッチ及びプレフェッチ動作と同時に必要とされるデータ要素を前記低レベルキャッシュメモリから選択して、前記処理ユニットへ出力するよう構成される。以下で更に記載される詳細な実施例で、前記処理ユニットによって必要とされる画素の選択は、前記処理ユニットで実施される特定の処理アルゴリズムによって使用される場合に、パラメータ4〜6、即ち、サブピクセル精度、窓サイズ及び窓座標の認識を暗に示す。
【0040】
従って、本発明に従って、前記主要メモリからのフェッチに関連する全てのパラメータは、前記高レベルキャッシュ制御装置によって扱われ、一方、前記低レベルキャッシュ制御装置は、前記処理ユニットからの読み出し要求への応答及び前記処理ユニットへの画素データの供給に係る機能に制限され得る。本発明に係るデータ処理装置では、より低いキャッシュレベルからより高いキャッシュレベルへ又は前記主要メモリへ送られるフェッチ要求は必要とされない。
【0041】
本発明に係るデータ処理装置におけるフェッチ機能及び読み出し機能の分離達成に起因して、前記高レベルキャッシュユニット及び前記低レベルキャッシュユニットは、並行してフェッチ動作及び読み出し動作を実行することが可能となる。これは、同時通信及び計算とも呼ばれる。これは、総じて、即ち、主要メモリ及び全てのキャッシュレベルを含め、当該データ処理装置のメモリユニットの待ち時間を減少させる。更に、フェッチステップ及び読み出しステップの分離は、全てのキャッシュレベルにおいて機能の好ましくない重複を低減する。これは、それ自体の中核機能のための必要とされるチップ面積及び性能に関して各キャッシュレベルを最適化することを可能にする。更に、保全性及び可能な機能拡張は、より良い効率を伴って処理され得る。
【0042】
以下で、本発明に係るデータ処理装置の好ましい実施形態が記載される。
【0043】
前記低レベルキャッシュにおける選択される映像フォーマット(パラメータ3)の影響は、予め設定された数のビット部分を有し、画像の映像フォーマットによって使用されない全てのビット部分へ所定ビット値を割り当てる固定された画素データフォーマットに従ってその出力部で前記スライド領域のデータ要素を供給する前記高レベルキャッシュ制御装置の適合によって、本発明に係るデータ処理装置の好ましい実施例では取り除かれる。本発明に係るデータ処理装置の本実施形態の高レベルキャッシュユニットによって使用される画素フォーマットは、予め設定された数のビット位置を有する。従って、全ての映像フォーマットの画素は、前記低レベルキャッシュユニットの観点からすれば外観は全く同一である。画素フォーマットにおけるビット位置の数は、全ての既知の映像フォーマットに適合するために十分に大きく選択される。現在処理される映像フォーマットによって使用されない画素フォーマットのビット位置は、例えば「0」といった所定ビット値により前記高レベルキャッシュユニットによって補充される。ビット値「0」の使用は、接続される処理データ経路を簡単に保つ。前記第1のプレフェッチ・バッファにより前記高レベルキャッシュメモリを介して使用されないビット位置へ「0」を書き込むことによって、映像フォーマット制御は前記低レベルキャッシュで必要とされない。前記低レベルキャッシュメモリの出力は正しいフォーマットを有する。
【0044】
本発明の更なる実施形態で、前記低レベルキャッシュユニットは、2つの窓座標及び窓サイズパラメータを前記処理ユニットから受け取った前記読み出し要求から取り出し、該取り出された窓座標及び窓サイズパラメータ(パラメータ5及び6)に依存して前記処理ユニットへ前記低レベルキャッシュメモリに保存される画素を供給するよう構成される。
【0045】
更なる実施形態で、望ましくは、前記低レベルキャッシュ制御装置は、更に、前記処理ユニットがサブピクセル精度で画素データを処理するかどうかを、読み出し要求から取り出された前記窓座標から検出し、前記処理ユニットへサブピクセル精度処理のために必要とされる全ての更なる画素を供給するよう構成される。
【0046】
本発明に係るデータ処理装置の他の好ましい実施形態は、前記高レベルキャッシュメモリと前記主要メモリとの間に接続され、並列な方法で前記高レベルキャッシュメモリへ画素データを供給するよう構成される第2のプレフェッチ・バッファを更に有する。この実施形態で、前記高レベルキャッシュユニットは、所定の走査順序及び走査方向に従って前記スライド領域を更新するために必要とされる前記画像の選択された画素ブロックを前記主要メモリから前記第2のプレフェッチ・バッファへプレフェッチし、前記高レベルキャッシュメモリにおける前記スライド領域を前記第2のプレフェッチ・バッファの出力で供給される画素により更新するよう構成される。
【0047】
前記第2のプレフェッチ・バッファは、然るべく前記高レベルキャッシュの隣に複製されるべき画素を前記第2のプレフェッチ・バッファにロードすることによって、フェッチ動作を更に加速させることができる。データは、前記第2のプレフェッチ・バッファから前記高レベルキャッシュメモリへ並行して供給される。前記第2のプレフェッチ・バッファの動作は、前記高レベルキャッシュ制御装置によって制御され、先と同じく、前記処理ユニットが現在処理される画像の画素を要求するところの順序の認識に基づく。
【0048】
本発明に係るデータ処理装置に設けられる前記主要メモリユニットは、更なる実施形態で、複数の画素ブロック行及び画素ブロック列で配置される画素ブロックへの前記画像の分配に従って読み出し動作及び書き込み動作において前記主要メモリにアクセスするよう構成される。
【0049】
好ましい実施形態で、前記低レベルキャッシュメモリはスクラッチパッドの形をとる。即ち、前記低レベルキャッシュメモリは、この実施形態で、完全な検索範囲を保持するよう構成される。このようにして、完全な検索範囲は、処理が始まる前に、低レベルスクラッチパッドに保存され得る。キャッシュ・ミスは、この実施形態では完全に回避される。望ましくは、低レベルキャッシュユニットは、検索範囲が画像において次の位置へ動く場合に、先入れ先出し交換方法に従って前記低レベルスクラッチパッドに保存される画素を置換するよう構成される。
【0050】
映像用途にとってスクラッチパッドは好ましいが、本発明に係るデータ処理装置の他の用途は、より低いキャッシュレベルで完全な検索範囲の存在を必要としない。このような用途に関して、検索範囲よりも小さく画像の領域を保つよう構成されるキャッシュメモリが使用される。
【0051】
他の実施形態で、前記低レベルキャッシュメモリは、複数のメモリバンクを有する。前記低レベルキャッシュユニットは、画素ブロックの連続する画素行に属する画素を異なるメモリバンクに保存し、並行して前記処理ユニットへ必要とされる画素ブロックの複数の画素行を出力するよう構成される。このようにして、前記処理ユニットと前記低レベルキャッシュとの間の通信の帯域幅は、更に増大しうる。望ましくは、前記低レベルキャッシュユニットは、円循環方式で連続するメモリバンク内のアドレス指定可能な場所へ連続するアドレスを割り当てながら、交互的な方法(interleaved manner)で前記低レベルキャッシュメモリ内の場所をアドレス指定するよう構成される。このようにして、バンク衝突は、並行して幾つかの行を出力する場合に回避される。
【0052】
本発明に係るデータ処理装置の好ましい実施形態で、前記低レベルキャッシュメモリは複数の行ユニットを有し、夫々の行ユニットは各自の第1のメモリバンク数を有し、夫々のメモリバンクは第2の画素数を保存するアドレス指定可能な場所を有する。前記低レベルキャッシュユニットは、画素ブロックの各自の画素行の、又は画素ブロックの各自の交互にされた画素行の組に属する画素行の、画素を保存するよう構成される。前記メモリバンクの各自のアドレス指定可能な場所は、夫々、画素行に沿った前記第2の数の連続する画素から成る各自の画素群を保存するよう構成される。従って、連続する画素群は、該群に属する前記各自の画素行の画素を保存する前記行ユニットの前記メモリバンクに亘って円循環方式で区別される。前記低レベルキャッシュユニットは、前記スライド検索範囲の移動時に前記スライド検索範囲から落ちる陳腐化した画素を前記メモリバンクにおいて、前記陳腐化した画素と同じ画素行からの前記検索範囲における新しい画素によって置換することによって前記スライド検索範囲を更新するよう構成される。前記低レベルキャッシュユニットは、複数の行ユニットから各自の画素行に関して画素を並行して取り出して出力するよう構成される。
【0053】
本発明の更なる実施形態で、各画素ブロック行における所定の走査方向は左から右又は右から左のいずれかであり、あるいは、代替的に、各ブロック列における所定の走査方向は上から下又は下から上のいずれかである。言い換えると、前記走査方向は蛇行していない。よく知られるように、蛇行する走査方向は夫々の行とともに変わる。即ち、例えば、第1の行が左から右へ処理される場合に、次の行は右から左へ処理されうる。この実施形態で、前記高レベルキャッシュユニットは、前記画像の新しい画素ブロック行又は画素ブロック列の始まりで画素ブロックを処理するために、前記低レベルキャッシュメモリにおける完全な交換のための各自のスライド検索範囲の全ての画素を、夫々、前記高レベルキャッシュメモリにおいて選択して、前記第1のプレフェッチ・バッファを介して供給するよう構成される。
【0054】
更なる実施形態で、前記高レベルキャッシュユニットは、新しい画像の始まりで画素ブロックを処理するために、前記低レベルキャッシュメモリにおける完全な交換のための各自のスライド検索範囲の全ての画素を前記主要メモリからフェッチして、前記高レベルキャッシュメモリにおいて選択して、前記第1のプレフェッチ・バッファを介して供給するよう構成される。
【0055】
明細書及び特許請求の範囲で記載される本発明に係るデータ処理装置の実施形態は、特に明記しない限り、互いに組み合わされ得る。
【0056】
本発明の第2の態様に従って、メモリユニットの主要メモリに保存される画像の2次元サブ配列を形成する画素ブロックを順次に処理して、前記画像の予め設定された数の画素ブロック列及び画素ブロック行に広がるスライド検索範囲の画素ブロックに関して前記メモリユニットへ読み出し要求を供給する処理ユニットによりデータ処理装置の前記メモリユニットの動作を制御する方法であって、
− 前記スライド検索範囲よりも大きい前記画像のスライド領域を前記主要メモリから高レベルキャッシュメモリへフェッチして、画素行又は画素列への分配に従って前記スライド領域を前記高レベルキャッシュメモリに保存するステップと、
− 所定の動作順序及び走査方向に従って前記スライド領域を更新するための画素ブロックを前記主要メモリから前記高レベルキャッシュメモリへフェッチして、画素行又は画素列への分配に従って前記高レベルキャッシュメモリに前記画素ブロックを保存するステップと、
− 後のスライド検索範囲の移動において前記検索範囲を更新するために必要とされる前記検索領域の画素を前記高レベルキャッシュメモリから第1のプレフェッチ・バッファへプレフェッチして、前記第1のプレフェッチ・バッファの出力で供給するステップと、
− 前記第1のプレフェッチ・バッファの出力で供給される前記画素を用いて、前記フェッチ及びプレフェッチ動作と同時に前記低レベルキャッシュメモリにおいて前記スライド検索範囲を保存及び更新するステップと、
− 前記フェッチ及びプレフェッチ動作と同時に前記低レベルキャッシュメモリから前記処理ユニットへ必要とされる画素を選択及び出力するステップと、
を有する方法が提供される。
【0057】
本発明に係る方法は、本発明に係るデータ処理装置のメモリサブシステムの制御に関連する。当該方法の利点は、データ処理装置に関して上述された利点に対応する。
【0058】
以下で、本発明に係る方法の好ましい実施形態が説明される。この実施形態は、上述されたように、同時の読み出し及びフェッチを可能にするデータ処理装置の実施形態に関する方法態様を表す。従って、以下の記載は省略されており、更なる説明のために上記項目が更に参照される。
【0059】
本発明の1つの実施形態は、予め設定された数のビット部分を有し、前記画像の映像フォーマットによって使用されない全てのビット部分へ所定ビット値を割り当てる固定データフォーマットに従って、低レベルキャッシュメモリへ前記スライド領域の画素を供給するステップを有する。
【0060】
更なる実施形態で、前記スライド検索範囲の全ての画素は前記低レベルキャッシュメモリで供給され、前記低レベルキャッシュメモリに保存される画素は、先入れ先出し交換方式に従って前記スライド検索範囲を更新するために置換される。
【0061】
更なる実施形態で、前記低レベルキャッシュメモリは複数のメモリバンクを有する。画素ブロックの連続する画素行に属する画素は、異なるメモリバンクに保存され、必要とされる画素ブロックの複数の画素行は、並行して前記低レベルキャッシュメモリから前記処理ユニットへ出力される。
【0062】
他の実施形態で、前記低レベルキャッシュメモリ内の場所は、円循環方式で連続するメモリバンク内のアドレス指定可能な場所へ連続するアドレスを割り当てながら、交互的な方法でアドレス指定される。
【0063】
更なる実施形態は、所定の走査順序及び走査方向に従って前記スライド領域を更新するために必要とされる前記画像の選択された画素ブロックを、前記主要メモリから第2のプレフェッチ・バッファへプレフェッチするステップと、前記高レベルキャッシュメモリにおける前記スライド領域を前記第2のプレフェッチ・バッファの出力で供給される画素により更新するステップとを有する。
【0064】
更なる実施形態は、窓座標及び窓サイズパラメータを前記処理ユニットから受け取った前記読み出し要求から取り出すステップと、該取り出された窓座標及び窓サイズパラメータに依存して前記処理ユニットへ前記低レベルキャッシュユニットに保存される画素を供給するステップとを有する。
【0065】
他の実施形態で、各ブロック行における所定の走査方向は左から右又は右から左であり、あるいは、代替的に、各ブロック列における所定の走査方向は上から下又は下から上である。この実施形態に係る方法は、前記画像の新しい画素ブロック行又は画素ブロック列の始まりで画素ブロックを処理するために、前記低レベルキャッシュメモリにおける完全な交換のための各自のスライド検索範囲の全ての画素を、夫々、前記高レベルキャッシュメモリにおいて選択して、前記第1のプレフェッチ・バッファを介して供給するステップを有する。
【0066】
他の実施形態は、新しい画像の始まりで画素ブロックを処理するために、前記低レベルキャッシュメモリにおける完全な交換のための各自のスライド検索範囲の全ての画素を前記主要メモリからフェッチして、前記高レベルキャッシュメモリにおいて選択して、前記第1のプレフェッチ・バッファを介して供給するステップを有する。
【0067】
本発明の更なる実施形態は、添付の図面を参照して以下で記載される。
【発明を実施するための最良の形態】
【0068】
図1は、本発明のデータ処理装置の第1の実施例を形成する映像処理装置10のブロック図を示す。映像処理装置10は、処理ユニット12と、処理ユニット12へ接続されたメモリユニット14とを有する。映像処理システム10は、スケーリング、フィルタリング、動作検出、動作推定などのような映像処理アルゴリズムを実行することに特化した組み込みシステムを表す。
【0069】
映像処理装置10のメモリユニット14は、フレームメモリ16と、処理ユニット12とフレームメモリ16との間に接続された高レベルスクラッチパッド18及び低レベルスクラッチパッド20とを有する。高レベルスクラッチパッド18は、以降、L1スクラッチパッドとも称される。第1のプレフェッチ・バッファ20.1は、高レベルスクラッチパッド18と低レベルスクラッチパッド20.2との間に設けられる。低レベルスクラッチパッド20は、以降、L0スクラッチパッド及び検索範囲(SA)スクラッチパッドとも称される。
【0070】
処理ユニット12と接続してメモリユニット14を動作させるために必要な全ての制御動作は、1又は幾つかのメモリ制御装置によって制御される。本実施例で、フレームメモリ制御装置22はフレームメモリ16の動作を制御し、高レベルスクラッチパッド制御装置24はL1スクラッチパッド18及びプレフェッチ・バッファ20.1の動作を制御し、低レベルキャッシュ制御装置26は検索範囲スクラッチパッド20.2の動作を制御する。高レベルスクラッチパッド制御装置24及び高レベルスクラッチパッド18は高レベルキャッシュユニットを形成する。低レベルキャッシュ制御装置26及び低レベルスクラッチパッド20.2は低レベルキャッシュユニットを形成する。高レベルスクラッチパッド制御装置24及び低レベルキャッシュ制御装置26は、また、L1スクラッチ制御装置及びL0スクラッチ制御装置と夫々称される。以下の項目は、幾つかの例として、L0スクラッチパッド20.2、L1スクラッチパッド18、及びプレフェッチ・バッファ20.1のサイズ及び帯域幅を決定するための指針を与える。
【0071】
[1.L0スクラッチパッド]
扱われる映像フォーマットの柔軟性を提供しない実施形態で、L0スクラッチパッドの必要とされるメモリサイズは、一般的に、処理される映像フォーマットに依存する。以下の表2は、検索範囲サイズ及びメモリサイズに関して3つの映像フォーマット、即ち、CIF、SDTV、及びHDTVのサイズ要求を簡単に述べる。メモリサイズは、2つの場合、即ち、以下の表で「Y」と呼ばれる8ビットの輝度情報しか搬送しない画素の場合及び、表2でRGBと呼ばれる、全部で24ビットに達する3つの色に関する輝度情報を搬送するカラー画素の場合に関して特定される。
【表2】

【0072】
上の表を読むための指針として、1つの例が表2の一番下の行に関して説明される。HDTVフォーマットにおける検索範囲は、水平方向において17の8×8画素ブロックを有し、垂直方向に置いて9の8×8画素ブロックを有する。全ての画素が24ビットを保持するところのRGB画素フォーマットでは、17×9×8×8×24=235008ビット=229.5kbitがSAバッファのために必要とされる。画素ごとに8ビットの輝度情報しか用いない場合に、78336ビット、即ち、76.5kbitはL0スクラッチパッドの最小サイズである。
【0073】
選択される映像フォーマットの柔軟性を提供する実施形態で、SAスクラッチパッドのサイズは、サポートされる映像フォーマットによって必要とされる最大値である。
【0074】
他の実施形態では、L0キャッシュがL0スクラッチパッドよりむしろ使用される。この実施形態で、L0キャッシュは、全部の調整範囲を保存するために必要とされるよりも小さいメモリ容量を有しても良い。しかし、処理ユニット12によって実行される特定の映像処理アルゴリズムに依存して選択される適切なプレフェッチ方法は、読み出し要求がL0キャッシュへ入力される場合に、キャッシュ・ミス状態を完全に回避することができる。
【0075】
[2.L1スクラッチパッド]
HDTVフォーマットの例に関して、L1スクラッチパッドのメモリサイズは、8×8の画素を含む2000の画素ブロックの全てが保存される必要があるという必要条件によって決定される。24ビットの画素サイズを考えると、L1スクラッチパッドは3Mbitのメモリサイズを有するべきである。
【0076】
一実施形態では、L1キャッシュがL1スクラッチパッドの代わりに使用される。それは、L1キャッシュ18がスライド領域よりも小さい状態にあることを意味する。望ましくは、この実施形態は、L1キャッシュ18.2に加えて第2のプレフェッチ・バッファ18.1を有する図2の実施例に関連して用いられる。高レベルキャッシュ制御装置24′で適切なキャッシュ交換方法を実施することによって、L1キャッシュは、常に、L0スクラッチパッド20.2又はL0キャッシュ20.2で検索範囲を更新するために必要とされる画素を保持することができる。
【0077】
[3.第1のプレフェッチ・バッファ]
L0スクラッチパッド20の第1のプレフェッチ・バッファ20.1のサイズは、HDTV映像フォーマットの例に関して与えられる以下の指針に従って定められる。検索範囲の高さ、又は、言い換えると、1つの検索範囲列のサイズは、8×8画素を夫々有する9の画素ブロックである。従って、定常状態の間、9の画素ブロックの1つのこのような検索範囲列は、検索範囲を更新するために必要とされる。全ての画素は最大24ビットを有するので、プレフェッチ・バッファ20.1は、9×8×8×24=13824ビット=13.5kbitの大きさを有するべきである。
【0078】
[4.帯域幅]
メモリ帯域幅に関して、通常、処理データ経路並列処理は、画素ブロックの画素行のサイズ、例えば、8×8画素ブロックの場合に8の画素に等しい。これは、一時的なアップコンバージョンや非インタレース走査などのための動作推定のようなブロックに基づく処理アプリケーションの場合に保持する。
【0079】
帯域幅は、連続する画素行が異なるメモリバンクにあるようにメモリシステムを編成することによって並行して画素ブロックの複数の画素行を供給することによって、更に増大する。バンクセットの中でバンク行を交互配置することによって、バンク衝突は、並行して幾つかの行を出力する場合に回避される。並行して幾つかの連続する画素行を出力するよう構成されるメモリ構造の例は、欧州特許出願EP04101677.5の請求項19及び請求項20に係る実施例で、及び、出願当初のEP04101677.5の12〜23頁で詳細に記載されるEP04101677.5の図7のメモリ構造で、与えられる。
【0080】
図1の映像処理装置の動作に関する記載に戻ると、代替の実施例は図2を参照して簡単に記載される。図2のブロック図は、本発明の第2の実施例に従う映像処理装置の詳細を示す。図2の映像処理装置10′の構造は、ほとんどの部分で、図1の映像処理装置10の構造に対応する。本記載は相違点に限られ、他に特に与えられない限り、同じ部分に関して図1の参照符号を用いうる。映像処理装置10′の高レベルスクラッチパッド18′は、フレームメモリ16とL1スクラッチパッド18.2との間に接続された第2のプレフェッチ・バッファ18.1を有する。プレフェッチ・バッファ18.1は、L1スクラッチパッド18.2へ並列に幾つかの画素を供給可能な並列出力を有する。第2のプレフェッチ・バッファ18.1の動作は高レベルキャッシュ制御装置24′によって制御される。
【0081】
次に、同時の通信及び計算に関する図1及び図2の映像処理装置の動作は、更に図3〜7を参照して記載される。
【0082】
初期化相の間、L1スクラッチパッドは、ホストシステムを介してフェッチ関連パラメータをロードされる。この情報を基に、スライド領域は、フレームメモリ16からL1スクラッチパッド18へフェッチされる。L1スクラッチパッド制御装置24はフェッチ動作を処理する。スライド検索範囲は、幾つかの画素ブロック行に及び、少なくともスライド検索範囲に含まれる画素ブロック行の数に広がる。これは、処理ユニット12によって実行されるべき映像処理アルゴリズムによって使用される。L1スクラッチパッド18に記憶されるスライド領域は、例えば、映像フレームの全ての画素ブロック列に及び多数の画素ブロック行に広がる縞地を形成する。これは、検索範囲に含まれる画素ブロック行と同一である。特に上から下への処理ユニットの走査方向に適する他の例では、スライド領域は、水平方向に検索範囲と同じ広がりを有するが、垂直方向では、検索範囲よりも多い画素ブロック行に、又はフレームの完全な垂直伸長に広がる。L1スクラッチパッド18は画素行形態でスライド領域を保持し、一方、フレームメモリ16は画素ブロックへの分配に従ってフレームを保持する。L1はダイレクトマッピング方式で編成される。
【0083】
L0スクラッチパッド20.2は、プレフェッチ・バッファ20.1を介して、処理されるべき第1の画素ブロックへ割り当てられる各自の検索範囲の必要とされるデータをロードすることによって、初期化される。L1スクラッチパッド制御装置24は、データが所定順序でプレフェッチ・バッファ20.1を介して供給されるよう制御する。
【0084】
図3は、検索領域に基づく映像処理アルゴリズムを表し、且つ、本発明の映像処理装置の実施例で実施されるスクラッチパッド交換方法を表す図を示す。
【0085】
画素ブロックグリッド30は、完全な映像フレームのサブセットを形成する12×7の画素ブロックの領域を表す。各画素ブロックは8×8画素から成る。これは、画素ブロックグリッド30の左上角にある画素ブロック32の2つの側面に書かれた番号によって示される。画素ブロックグリッド30の中の検索範囲34は、実線によって輪郭を描かれる。検索範囲は9×5=45の画素ブロックから成る。検索範囲の行は9の画素ブロックから成る。検索範囲の列は5の画素ブロックから成る。検索範囲の現在処理される中央の画素ブロックは、大文字Nによって示される。検索範囲の以前の中央画素ブロックは、大文字Oによって示される。
【0086】
現在の中央画素ブロックの処理は、現在の中央画素ブロックの周りの9×5の画素ブロックの夫々の検索範囲の走査を含む。従って、前の中央画素ブロックOの処理が終了する場合に、検索範囲は、処理ユニット12が新しい中央画素ブロックNを処理する前に、L1スクラッチパッド18及びプレフェッチ・バッファ20.1を介して既知の走査順序及び走査方向に従ってL0スクラッチパッド20.2において更新される。
【0087】
図3で示される例で、L0スクラッチパッド20.2における検索範囲は、同時にSAバッファ20.2から前の左端の検索範囲列38を消去しながら、SAバッファ20.2に新しい検索範囲列36をロードすることによって更新される。新しい右端の検索範囲列36は図3で網掛けによって強調され、一方、検索範囲バッファ20.2から消去されるブロックは「X」の印を付される。右への検索範囲の結果として得られるスライド方向は、矢印40によって示される。
【0088】
第1のプレフェッチ・バッファ20.1に関して、第1のプレフェッチ・バッファ20.1に含まれる画素は、新しい検索範囲列36に含まれる画素である。これらの画素は、画素行によって画素行をL0スクラッチパッド20.2へ供給され、同時に、画素行の全ての画素が供給される。先に説明されたように、実際には、より低いキャッシュレベルではブロックサイズの概念は存在しない。
【0089】
図4は、走査順序及び走査方向の組合せの幾つかの例を示し、これらは、映像フレーム又は映像フィールドを処理するための様々なアルゴリズムによって使用され得る。概して、走査方向は、連続する画素行又は画素列の処理順序を示す。走査順序は、処理が行ごとに又は列ごとに実行されるかどうかを示す。映像処理アルゴリズムによって用いられる走査順序及び走査方向の認識は、適切なキャッシュ又はスクラッチパッド交換方法の選択に極めて重要である。必要とされるデータのプレフェッチを含むこのような交換方法の実施は、当該技術ではよく知られる。
【0090】
図4a)は、処理ユニット12が上から下への走査方向及び行ごとの走査順序で検索範囲内の画素ブロックを処理するところの実施形態を示す。この実施形態で、各処理ブロック行における処理は左から右へ実行される。
【0091】
図4b)は、処理ユニット12が下から上へと続く走査方向及び行ごとの走査順序で含まれる画素ブロックの処理を実行するところの代替の実施形態を示す。この実施形態で、各画素ブロック行の画素ブロックは右から左へ走査される。
【0092】
図4c)は、処理が左から右への走査方向及び列ごとの走査順序で実行されるところの第3の代替の実施形態を示す。この実施形態で、各画素ブロック列は下から上へ走査される。
【0093】
図4d)は、処理が上から下への走査方向及び行ごとの走査順序で実行されるところの第4の代替の実施形態を示す。この実施形態は、画素ブロック行における処理が蛇行式で実行されるという事実を除けば、図4a)の実施形態と同じである。一番上の画素ブロック行は左から右へ走査され、一方、下方向で次の画素ブロック行は右から左へ処理され、以下同様に続く。
【0094】
図4e)は、処理ユニット12が下から上への走査方向及び行ごとの走査モードで検索範囲を走査するところの第5の代替の実施形態を示す。図4b)の実施形態とは対照的に、処理は蛇行式で実行される。一番下の画素ブロック行は右から左へ走査され、一方、上方向で次の画素ブロック行は左から右へ走査され、以下同様に続く。
【0095】
図4f)は、処理ユニット12が左から右への走査方向及び列ごとの走査順序で検索範囲を処理するところの第6の代替の実施形態を示す。図4c)の実施形態とは対照的に、列の走査は蛇行式に実行される。一番左端の列は下から上へ走査され、一方、右方向で次の列は上から下へ走査され、以下同様に続く。図4a)〜4c)の非蛇行式の例で、特別の注意は、新しい行又は列への切替えに関する交換方法を設計する際に払われるべきである。この場合に、全ての検索範囲は、概して、処理ユニット12が進み、次の行又は列の最初の画素ブロックを処理する前に、L0スクラッチパッド20.2において置換されるべきであり得る。この状況におけるスクラッチパッド交換は、上述された初期化相に対応する。当然、L1及びL0スクラッチパッドの更新前に現在の映像処理アルゴリズムのフェッチ関連のパラメータをリロードすることは、この状況では不要である。
【0096】
図5は、L0スクラッチパッド20.2での交換方法における走査方向の影響の説明図である。図5は、図3の例の代替案を形成する検索範囲の第2の例を示す。本例で、検索範囲は、12の画素ブロックの検索範囲行と、8の画素ブロックの検索範囲列とから成る。図3の例と同様に、破線のグリッドは画素ブロックを示す。図5の説明図は、4つの可能な実施形態を簡単に述べる。図5に示される第1の実施形態で、走査範囲のスライド方向は、図3に示される方向と同じであり、即ち、左から右へ移動する。結果として、現在処理対象となっている検索範囲の右端の検索範囲列44は、L0スクラッチパッド20.2に補充されるべきであり、高レベルキャッシュ制御装置24によって第1のプレフェッチ・バッファ20.1にロードされる。検索範囲列44の右側隣に位置する矢印は、この実施形態に関して検索範囲のスライド方向を示す。
【0097】
図5で示される第2の実施形態で、走査範囲は右から左へスライドし、新しい左端の検索範囲列46は、プレフェッチ・バッファ20.1及びL1スクラッチパッド18を介してL0スクラッチパッド20.2にロードされるべきである。検索範囲列46の左側隣に位置する矢印は、この実施形態に関して検索範囲のスライド方向を示す。
【0098】
図5で示される第3の実施形態で、検索範囲は上から下へスライドする。従って、新しい下端の検索範囲行48は、処理が続く場合に、L0スクラッチパッド20.2にロードされるべきである。検索範囲行48の下側隣に位置する矢印は、この実施形態に関して検索範囲のスライド方向を示す。
【0099】
最後に、図5で示される第4の実施形態で、検索範囲は下から上への方向でスライドする。従って、新しい上端の検索範囲行50はL0スクラッチパッド20.2にロードされるべきである。検索範囲行50の上側隣に位置する矢印は、この実施形態に関して検索範囲のスライド方向を示す。
【0100】
図6は、窓及び窓座標によるその定義に関する説明図である。図6には検索範囲52が示される。範囲52の中の窓54は、所定の窓サイズ並びに1つのX座標及び1つのY座標によって定められる。検索範囲の左上角は、窓54の左上角の位置を定めるための検索範囲の原点を形成する。窓座標X及びYは、L0スクラッチパッド制御装置26による読み出し要求から得られる。例えば、窓座標X及びYは、4分の1画素解像度で2つの正の整数値によって形成され得る。このように固定小数点数演算は回避される。L0スクラッチパッド制御装置26は、図7を参照して以下で説明されるように、可能なサブピクセル解像度を検出する。
【0101】
図7は、L0スクラッチパッド制御装置26に含まれる制御回路の一部とともに、図1のL0スクラッチパッド20.2の区分の描写を示す。図示されるL0スクラッチパッド区分は12のメモリバンクから成る。その中のメモリバンク56〜66は、個々の参照符号を付される。各メモリバンクは、4画素の幅と、32画素の深さとを有する。窓54′は、メモリバンク56〜64の部分に広がるよう示される。L0スクラッチパッド20.2は、本実施形態ではダイレクトマッピングをなされる。従って、多数のバンクからの寄与は、窓を完全にするために必要とされる。窓54′の座標は、サブピクセル精度であると仮定される。従って、窓は、補間フィルタリングをサポートするよう更なる画素により広げられる。窓サイズが16×16画素であるところの例を考えると、L0スクラッチパッド制御装置26は、サブピクセル精度を検出し、処理ユニット12へ17×17の窓を供給する。
【図面の簡単な説明】
【0102】
【図1】本発明のデータ処理装置の第1の実施例を形成する映像処理装置のブロック図を示す。
【図2】本発明の第2の実施例に従う映像処理装置の詳細を示す。
【図3】検索範囲に基づく映像処理アルゴリズムを表し、且つ、本発明の第3の実施例に従うキャッシュ交換方法を表す図を示す。
【図4】本発明の様々な実施例における走査順序及び走査方向の組合せの幾つかの例を示す。
【図5】本発明の様々な実施例でのキャッシュ交換方法における走査方向の影響の説明図である。
【図6】窓座標の説明図である。
【図7】ダイレクトマッピング・キャッシュを用いる本発明の更なる実施例における窓サイズの説明図である。

【特許請求の範囲】
【請求項1】
データ要素の2次元主要配列を処理するデータ処理装置であって、
− 前記主要配列を保存する主要メモリを有する主要メモリユニットと、
− 前記主要配列の2次元サブ配列を形成するデータブロックを順次に処理し、前記主要配列の予め設定された数のデータブロック列及びデータブロック行に広がるスライド検索範囲のデータ要素に関する読み出し要求を供給するよう構成される処理ユニットと、
− 前記主要メモリへ接続される高レベルキャッシュメモリを有する高レベルキャッシュユニットであって、
− 前記スライド検索範囲よりも大きい画像のスライド領域を形成するためのデータブロックを前記主要メモリからフェッチし、
− 前記高レベルキャッシュメモリから第1のプレフェッチ・バッファへ前記スライド検索範囲を更新するために必要とされる保存されたスライド領域のデータ要素をプレフェッチして、これらのデータ要素を前記第1のプレフェッチ・バッファの出力で供給するよう構成される高レベルキャッシュユニットと、
− 前記処理ユニットと前記第1のプレフェッチ・バッファとの間に直接的に接続される低レベルキャッシュメモリを有する低レベルキャッシュユニットであって、
− 前記第1のプレフェッチ・バッファの出力で供給される前記データ要素を用いて、前記高レベルキャッシュユニットの前記フェッチ及びプレフェッチ動作と同時に前記低レベルキャッシュメモリにおいて前記スライド検索範囲を保存及び更新し、
− 前記高レベルキャッシュユニットの前記フェッチ及びプレフェッチ動作と同時に前記処理ユニットへ必要とされるデータ要素を選択及び出力するよう構成される低レベルキャッシュユニットと、
を有するデータ処理装置。
【請求項2】
前記高レベルキャッシュユニットは、
予め設定された数のビット部分を有し、前記主要配列のフォーマットによって使用されない全てのビット部分へ所定ビット値を割り当てる固定データフォーマットに従って、
その出力部で前記スライド領域のデータ要素を供給するよう構成される、請求項1記載のデータ処理装置。
【請求項3】
前記第1のプレフェッチ・バッファは、並列な方法で前記低レベルキャッシュメモリへデータを供給するよう構成される、請求項1記載のデータ処理装置。
【請求項4】
前記第1のプレフェッチ・バッファは、検索範囲の1つのデータブロック列又は1つのデータブロック行を置換するデータ要素を保存するよう構成される、請求項1記載のデータ処理装置。
【請求項5】
前記低レベルキャッシュユニットは低レベルスクラッチパッドを有する、請求項1記載のデータ処理装置。
【請求項6】
前記低レベルキャッシュユニットは、先入れ先出し交換方式に従って、前記低レベルスクラッチパッドに保存されるデータ要素を置換するよう構成される、請求項5記載のデータ処理装置。
【請求項7】
前記低レベルキャッシュメモリは複数のメモリバンクを有し、
前記低レベルキャッシュメモリは、データブロックの連続するデータ行に属するデータ要素を異なるメモリバンクに保存し、並行して前記処理ユニットへ必要とされるデータブロックの複数のデータ行を出力するよう構成される、請求項1記載のデータ処理装置。
【請求項8】
低レベルキャッシュユニットは、円循環方式で連続するメモリバンク内のアドレス指定可能な場所へ連続するアドレスを割り当てながら、交互的な方法で前記低レベルキャッシュメモリ内の場所をアドレス指定するよう構成される、請求項7記載のデータ処理装置。
【請求項9】
低レベルキャッシュメモリは複数の行ユニットを有し、夫々の行ユニットは各自の第1のメモリバンク数を有し、夫々のメモリバンクは第2のデータ要素数を保存するアドレス指定可能な場所を有し、
前記低レベルキャッシュユニットは、データブロックの各自のデータ行の、又はデータブロックの各自の交互にされたデータ行の組に属するデータ行の、データ要素を保存するよう構成され、前記メモリバンクの各自のアドレス指定可能な場所は、夫々、連続するデータ要素群が、該群に属する前記各自のデータ行のデータ要素を保存する前記行ユニットの前記メモリバンクに亘って円循環方式で区別されるように、データ行に沿った前記第2の数の連続するデータ要素から成る各自のデータ要素群を保存するよう構成され、
前記低レベルキャッシュユニットは、前記スライド検索範囲の移動時に前記スライド検索範囲から落ちる陳腐化したデータ要素を前記メモリバンクにおいて、前記陳腐化したデータ要素と同じデータ行からの前記検索範囲における新しいデータ要素によって置換することによって前記スライド検索範囲を更新するよう構成され、更に、複数の行ユニットから各自のデータ行に関してデータ要素を並行して取り出して出力するよう構成される、請求項1記載のデータ処理装置。
【請求項10】
前記高レベルキャッシュユニットは高レベルスクラッチパッドを有する、請求項1記載のデータ処理装置。
【請求項11】
前記高レベルキャッシュメモリと前記主要メモリとの間に接続され、並列な方法で前記高レベルキャッシュメモリへデータを供給するよう構成される第2のプレフェッチ・バッファを更に有する、請求項1記載のデータ処理装置。
【請求項12】
前記高レベルキャッシュユニットは、所定の走査順序及び走査方向に従って前記スライド領域を更新するために必要とされる前記主要配列の選択されたデータブロックを、前記主要メモリから前記第2のプレフェッチ・バッファへプレフェッチし、前記高レベルキャッシュメモリにおける前記スライド領域を前記第2のプレフェッチ・バッファの出力で供給されるデータ要素により更新するよう構成される、請求項11記載のデータ処理装置。
【請求項13】
前記低レベルキャッシュユニットは、窓座標及び窓サイズパラメータを前記処理ユニットから受け取った前記読み出し要求から取り出し、該取り出された窓座標及び窓サイズパラメータに依存して前記処理ユニットへ前記低レベルキャッシュユニットに保存されるデータ要素を供給するよう構成される、請求項1記載のデータ処理装置。
【請求項14】
当該装置は画像処理装置であって、
前記低レベルキャッシュユニットは、画素データがサブピクセル精度で前記処理ユニットによって処理されるかどうかを、読み出し要求から取り出された前記窓座標から検出し、前記処理ユニットへサブピクセル精度処理のために必要とされる全ての更なる画素を供給するよう構成される、請求項13記載のデータ処理装置。
【請求項15】
各ブロック行における所定の走査方向は左から右又は右から左であり、あるいは、代替的に、各ブロック列における所定の走査方向は上から下又は下から上であり、
前記高レベルキャッシュユニットは、前記主要配列の新しいデータブロック行又はデータブロック列の始まりでデータブロックを処理するために、前記低レベルキャッシュメモリにおける完全な交換のための各自のスライド検索範囲の全てのデータ要素を、夫々、前記高レベルキャッシュメモリにおいて選択して、前記第1のプレフェッチ・バッファを介して供給するよう構成される、請求項1記載のデータ処理装置。
【請求項16】
前記高レベルキャッシュユニットは、新しい主要配列の始まりでデータブロックを処理するために、前記低レベルキャッシュメモリにおける完全な交換のための各自のスライド検索範囲の全てのデータ要素を前記主要メモリからフェッチして、前記高レベルキャッシュメモリにおいて選択して、前記第1のプレフェッチ・バッファを介して供給するよう構成される、請求項1記載のデータ処理装置。
【請求項17】
メモリユニットの主要メモリに保存される主要配列の2次元サブ配列を形成するデータブロックを順次に処理して、前記主要配列の予め設定された数のデータブロック列及びデータブロック行に広がるスライド検索範囲のデータブロックに関して前記メモリユニットへ読み出し要求を供給する処理ユニットによりデータ処理装置の前記メモリユニットの動作を制御する方法であって、
− 前記スライド検索範囲よりも大きい前記主要配列のスライド領域を前記主要メモリから高レベルキャッシュメモリへフェッチして、前記スライド領域を前記高レベルキャッシュメモリに保存するステップと、
− 前記スライド領域を更新するためのデータブロックを前記主要メモリから前記高レベルキャッシュメモリへフェッチして、データ行又はデータ列への分配に従って前記高レベルキャッシュメモリに前記データブロックを保存するステップと、
− 後のスライド検索範囲の移動において前記検索範囲を更新するために必要とされる前記検索領域のデータ要素を前記高レベルキャッシュメモリから第1のプレフェッチ・バッファへプレフェッチして、前記第1のプレフェッチ・バッファの出力で供給するステップと、
− 前記第1のプレフェッチ・バッファの出力で供給される前記データ要素を用いて、前記フェッチ及びプレフェッチ動作と同時に前記低レベルキャッシュメモリにおいて前記スライド検索範囲を保存及び更新するステップと、
− 前記フェッチ及びプレフェッチ動作と同時に前記低レベルキャッシュメモリから前記処理ユニットへ必要とされるデータ要素を選択及び出力するステップと、
を有する方法。
【請求項18】
予め設定された数のビット部分を有し、前記主要配列のフォーマットによって使用されない全てのビット部分へ所定ビット値を割り当てる固定データフォーマットに従って、低レベルキャッシュメモリへ前記スライド領域のデータ要素を供給するステップを有する、請求項17記載の方法。
【請求項19】
データは、並列な方法で前記第1のプレフェッチ・バッファから前記低レベルキャッシュメモリへ供給される、請求項17記載の方法。
【請求項20】
前記スライド検索範囲の全てのデータ要素は前記低レベルキャッシュメモリで供給され、
前記低レベルキャッシュメモリに保存される選択されたデータ要素は、先入れ先出し交換方式に従って新しいデータ要素により前記スライド検索範囲を更新するために置換される、請求項17記載の方法。
【請求項21】
前記低レベルキャッシュメモリは複数のメモリバンクを有し、
データブロックの連続するデータ行に属するデータ要素は、異なるメモリバンクに保存され、
必要とされるデータブロックの複数のデータ行は、並行して前記低レベルキャッシュメモリから前記処理ユニットへ出力される、請求項17記載の方法。
【請求項22】
前記低レベルキャッシュメモリ内の場所は、円循環方式で連続するメモリバンク内のアドレス指定可能な場所へ連続するアドレスを割り当てながら、交互的な方法でアドレス指定される、請求項21記載の方法。
【請求項23】
所定の走査順序及び走査方向に従って前記スライド領域を更新するために必要とされる前記主要配列の選択されたデータブロックを、前記主要メモリから第2のプレフェッチ・バッファへプレフェッチし、前記高レベルキャッシュメモリにおける前記スライド領域を前記第2のプレフェッチ・バッファの出力で供給されるデータ要素により更新するステップを有する、請求項17記載の方法。
【請求項24】
窓座標及び窓サイズパラメータを前記処理ユニットから受け取った前記読み出し要求から取り出し、該取り出された窓座標及び窓サイズパラメータに依存して前記処理ユニットへ前記低レベルキャッシュユニットに保存されるデータ要素を供給するステップを有する、請求項17記載の方法。
【請求項25】
各ブロック行における所定の走査方向は左から右又は右から左であり、あるいは、代替的に、各ブロック列における所定の走査方向は上から下又は下から上である場合に、
前記主要配列の新しいデータブロック行又はデータブロック列の始まりでデータブロックを処理するために、前記低レベルキャッシュメモリにおける完全な交換のための各自のスライド検索範囲の全てのデータ要素を、夫々、前記高レベルキャッシュメモリにおいて選択して、前記第1のプレフェッチ・バッファを介して供給するステップを有する、請求項17記載の方法。
【請求項26】
新しい主要配列の始まりでデータブロックを処理するために、前記低レベルキャッシュメモリにおける完全な交換のための各自のスライド検索範囲の全てのデータ要素を前記主要メモリからフェッチして、前記高レベルキャッシュメモリにおいて選択して、前記第1のプレフェッチ・バッファを介して供給するステップを有する、請求項17記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4a】
image rotate

【図4b】
image rotate

【図4c】
image rotate

【図4d】
image rotate

【図4e】
image rotate

【図4f】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2008−530680(P2008−530680A)
【公表日】平成20年8月7日(2008.8.7)
【国際特許分類】
【出願番号】特願2007−554724(P2007−554724)
【出願日】平成18年2月13日(2006.2.13)
【国際出願番号】PCT/IB2006/050461
【国際公開番号】WO2006/087665
【国際公開日】平成18年8月24日(2006.8.24)
【出願人】(590000248)コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ (12,071)
【Fターム(参考)】