(57)【特許請求の範囲】
【請求項１】
マルチメディアピクセルブロック領域データのフレームについてキャッシュメモリを動作させるプロセスであって、
前記キャッシュメモリを複数のキャッシュバンクに分割することと、
パイプラインスロット内でデータ読み出し及び書き込み動作をスケジューリングすることであって、フロントスロット動作とＤＭＡスロット動作とバックスロット動作とをスケジューリングすることを含む、前記スケジューリングすることと、
前記パイプラインスロットのデータ読み出し及び書き込み動作を連続的に前記キャッシュバンクを介して、前記キャッシュバンク上の複数のパスを介して実行することと、
を含み、
前記フロントスロット動作が、メインメモリからフェッチされるべき参照データを決定して前記参照データをフェッチするためにメインメモリフェッチ命令を発生することによりデータを処理することを含み、
前記ＤＭＡスロット動作が、前記メインメモリから前記参照データをフェッチして前記フェッチされた参照データをバンク内のピクセルブロック領域に割り当てることによりデータを処理することを含み、
前記バックスロット動作が、マルチメディアデータに関連するデータのフレームを処理するために予想フレームを構成するために前記参照データを読み出すことによりデータを処理することを含む、プロセス。
【請求項２】
請求項１に記載のプロセスであって、
前記キャッシュメモリを３つのキャッシュバンクの第１のキャッシュメモリと３つのキャッシュバンクの第２のキャッシュメモリとに分割することを更に含む、プロセス。
【請求項３】
請求項１に記載のプロセスであって、
前記実行することが、
第１のキャッシュバンク上でフロントスロット動作を実行することと、
その後、前記第１のキャッシュバンク上でＤＭＡスロット動作を実行する間に第２のキャッシュバンク上でフロントスロット動作を実行することと、
その後、前記第１のキャッシュバンク上でバックスロット動作を実行する一方で、前記第２のキャッシュバンク上でＤＭＡスロット動作を実行する間に第３のキャッシュバンク上でフロントスロット動作を実行することと、
その後、前記第２のキャッシュバンク上で第１のバックスロット動作を実行する間に前記第３のキャッシュバンク上で第１のＤＭＡスロット動作を実行することと、
その後、前記第３のキャッシュバンク上で第１のバックスロット動作を実行することと、
を含む、プロセス。
【請求項４】
請求項１に記載のプロセスであって、
前記実行することが、
第１のキャッシュバンク上で第１のフロントスロット動作を実行することと、
その後、前記第１のキャッシュバンク上で第１のＤＭＡスロット動作を実行する間に第２のキャッシュバンク上で第１のフロントスロット動作を実行することと、
その後、前記第１のキャッシュバンク上で第１のバックスロット動作を実行する一方で、前記第２のキャッシュバンク上で第１のＤＭＡスロット動作を実行する間に第３のキャッシュメモリ上でフロントスロット動作を実行することと、
その後、前記第２のキャッシュバンク上で第１のバックスロット動作を実行する間に前記第３のキャッシュバンク上で第１のＤＭＡスロット動作を実行することと、
その後、前記第３のキャッシュバンク上で第１のバックスロット動作を実行することと、
前記第１のキャッシュバンク上で第２のＤＭＡスロット動作を実行する前に前記第１のキャッシュバンクから全てのデータを削除することと、
を含む、プロセス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願はデータ処理の分野に関する。
【背景技術】
【０００２】
例示のシナリオにおいて、マルチメディアデータ処理に関する技術の急速な進歩が、様々なマルチメディアプロセッサのそれぞれの計算能力への需要を増大させる可能性がある。マルチメディアデータ処理は、圧縮目的でのマルチメディアデータの符号化に関与し得る。マルチメディアデータの圧縮は、記憶の間メモリを節約するため、又は伝送の間利用可能な帯域幅を効率良く利用するために実行され得る。マルチメディアデータは、マルチメディアデータの圧縮を達成するのに十分な符号化メカニズムを用いて符号化され得る。マルチメディアデータは、その後、表示／閲覧のため圧縮解凍（例えば復号）され得る。
【０００３】
さらに、例示のシナリオにおいて、様々なビデオコーディングパラダイムが、基準フレームに基づくマルチメディアデータに対応するフレームの符号化、及びそれによる、記憶容量の最適化、並びにマルチメディアプロセッサの性能強化も含み得る。例示のシナリオにおいて、マルチメディアデータ処理は、動き補償の実行に関与し得、この処理では、基準フレーム（例えば以前に復号され、メモリ内に記憶されたフレーム）に関連付けられた基準ピクセルが、メモリからフェッチされ、予測フレームを形成するために補間される。予測フレームは、現行フレームに対応する残余サンプルを取得するために現行フレームから差し引かれ得る。その後残余サンプルは、現行フレームの符号化のために符号化され得る。例示のシナリオにおいて、動き補償を実施する一方で、基準ピクセルは（フレームの様々な部分を符号化するために）メモリからランダムにフェッチされ、フェッチされた基準ピクセルの中にかなりの程度の重複が存在する可能性がある。例示のシナリオによれば、基準ピクセルをフェッチすることのランダム性の結果として、メモリ帯域幅消費及び電力損失が増加する可能性がある。
【発明の概要】
【０００４】
マルチメディアデータ処理のための方法及びシステムが開示される。一実施形態において、マルチメディアフレームを処理するために、マルチメディアフレームは複数のブロック区画に分割され、各区画は複数のピクセルブロックを含む。一実施形態において、マルチメディアフレームの第１のブロック区画に関連付けられた複数のピクセルブロックについて、第１の基準領域が決定される。一実施形態において、第１の基準領域をメモリからフェッチする前に、第１の基準領域の存在が第１のキャッシュにおいて決定される。第１の基準領域が第１のキャッシュにおいて利用不能であると決定される場合、第１の基準領域の存在が第２のキャッシュにおいてチェックされる。第１の基準領域が第２のキャッシュにおいて利用不能であると決定される場合、第１の基準領域はメモリからフェッチされる。
【０００５】
一実施形態において、この方法は、基準データに対応する複数の基準ピクセルブロックをキャッシュするように、第１のキャッシュにおける１つ又は複数のピクセルブロック領域を定義することを含む。複数の基準ピクセルブロックの中からの基準ピクセルブロックが、所定の基準に基づいて、１つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てられる。マルチメディアデータのマルチメディアフレームに関連付けられる複数のピクセルブロックを処理するために基準データの検索を促進するように、基準ピクセルブロックはピクセルブロック領域に基づいてタグに関連付けられる。
【０００６】
一実施形態において、基準データの検索は、第１の基準領域に関連付けられるタグ情報を、１つ又は複数のピクセルブロック領域に関連付けられるスパン情報と比較することによって、第１の基準領域を含む可能性がある１つ又は複数のピクセルブロック領域の中からピクセルブロック領域を識別することを含む。さらに、識別された１つ又は複数のピクセルブロック領域において、第１の基準領域に関連付けられる１つ又は複数の基準ピクセルブロックの存在が決定される。一実施形態において、１つ又は複数の基準ピクセルブロックの存在を決定することは、スパン情報と、基準データに関連付けられる基準フレーム内の第１の基準領域の場所とに基づいて、識別された１つ又は複数のピクセルブロック領域の各々内の第１の基準領域のあり得るオフセットを決定することを含む。識別された１つ又は複数のピクセルブロック領域において決定されたあり得るオフセットでの第１の基準領域の存在が、決定されたあり得るオフセットでの各基準ピクセルブロックに関連付けられる複数の利用可能性タグをチェックすることによって決定され得る。
【０００７】
一実施形態において、第１の基準領域に関連付けられる１つ又は複数の基準ピクセルブロックの中からの基準ピクセルブロックをメモリからフェッチするための最小細分性は、メモリに関連付けられるプリフェッチバッファにおけるキャッシュの最小細分性とマッチングする。一実施形態において、基準フレーム内の第１の基準領域に関連付けられる１つ又は複数の基準ピクセルブロックに近接し、基準フレーム内に矩形領域を形成する、１つ又は複数の追加の基準ピクセルブロックが、共にフェッチされる。一実施形態において、１つ又は複数の追加の基準ピクセルブロック及び第１の基準領域は、基準フレーム内の複数のブロック区画の中からのブロック区画に対応する。一実施形態において、１つ又は複数の追加の基準ピクセルブロック及び第１の基準領域は、基準フレーム内の近接するブロック区画に対応する。
【０００８】
一実施形態において、マルチメディアデータを処理するように構成されたシステムが開示される。このシステムは、メモリ、キャッシュユニット、及び処理ユニットを含む。メモリは、基準データに対応する１つ又は複数の基準フレームを記憶するように構成される。キャッシュユニットは、メモリに通信可能に関連付けられ、第１のキャッシュ及び第２のキャッシュを含む。処理ユニットは、メモリ及びキャッシュユニットに通信可能に関連付けられ、基準データに対応する複数の基準ピクセルブロックをキャッシュするように、第１のキャッシュにおける１つ又は複数のピクセルブロック領域を定義するように構成される。処理ユニットはさらに、（１）所定の基準に基づいて、複数の基準ピクセルブロックの中からの基準ピクセルブロックを、１つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てるように、及び、（２）マルチメディアフレームに関連付けられる複数のピクセルブロックを処理するために基準データの検索を促進するように、ピクセルブロック領域に基づいて、基準ピクセルブロックをタグに関連付けるように構成される。
【０００９】
一実施形態において、コンピュータ可読媒体が開示され、このコンピュータ可読媒体は、実行されたときにマルチメディアデータ処理のための方法をコンピュータに実行させる、命令セットを記憶する。この方法は、基準データに対応する複数の基準ピクセルブロックをキャッシュするように、第１のキャッシュにおいて１つ又は複数のピクセルブロック領域を定義することを含む。基準データは基準フレームに関連付けられ得る。また、この方法は、複数の基準ピクセルブロックの中からの基準ピクセルブロックを、所定の基準に基づいて、１つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てることを含む。また、この方法は、マルチメディアフレームに関連付けられる複数のピクセルブロックを処理するために基準データの検索を促進するように、ピクセルブロック領域に基づいて基準ピクセルブロックをタグに関連付けることを含む。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に従った、マルチメディアデータを処理するように構成された例示のシステムのブロック図である。
【００１１】
【図２】一実施形態に従った、第１のキャッシュにおいて定義された複数の例示のピクセルブロック領域を示す。
【００１２】
【図３Ａ】一実施形態に従った、図１のシステムを用いることなどによる、複数の基準データフェッチ間での重複の例示的活用を示す。
【図３Ｂ】一実施形態に従った、図１のシステムを用いることなどによる、複数の基準データフェッチ間での重複の例示的活用を示す。
【図３Ｃ】一実施形態に従った、図１のシステムを用いることなどによる、複数の基準データフェッチ間での重複の例示的活用を示す。
【００１３】
【図４Ａ】一実施形態に従った、マルチメディアデータに関連付けられたマルチメディアフレームの処理を示す例示のプロセスフローの簡略化された概要を示す。
【００１４】
【図４Ｂ】一実施形態に従った、マルチメディアフレーム処理の間の、第１のキャッシュに関連付けられた読み取り／書き込み動作の例示のスケジューリングを示す。
【００１５】
【図５】一実施形態に従って、マルチメディアフレームに関連付けられる複数のピクセルブロックを処理するための基準データの検索の例示のプロセスを示す。
【００１６】
【図６Ａ】一実施形態に従った、基準データに関連付けられる基準フレーム内で互いに近接する基準ピクセルブロックの例示のフェッチを示す。
【図６Ｂ】一実施形態に従った、基準データに関連付けられる基準フレーム内で互いに近接する基準ピクセルブロックの例示のフェッチを示す。
【図６Ｃ】一実施形態に従った、基準データに関連付けられる基準フレーム内で互いに近接する基準ピクセルブロックの例示のフェッチを示す。
【００１７】
【図７】一実施形態に従った、マルチメディアデータ処理の例示の方法を示すフローチャートである。
【００１８】
【図８Ａ】一実施形態に従って、マルチメディアフレームの処理を行なうための基準データ検索の例示の方法を示すフローチャートを集合的に示す。
【図８Ｂ】一実施形態に従って、マルチメディアフレームの処理を行なうための基準データ検索の例示の方法を示すフローチャートを集合的に示す。
【発明を実施するための形態】
【００１９】
例示のシナリオにおいて、マルチメディアデータ処理は、マルチメディアデータに対応するフレームに対して動き補償を行なうことに関与し得る。例示のシナリオにおいて、動き補償を行なう一方で、基準ピクセルが（フレームの様々な部分を符号化するために）メモリからランダムにフェッチされ、フェッチされた基準ピクセルの中にかなりの程度の重複が存在する。例示のシナリオによれば、基準ピクセルをフェッチすることのランダム性の結果として、メモリ帯域幅消費及び電力損失が増加する可能性がある。
【００２０】
図１は、一実施形態に従ってマルチメディアデータを処理するように構成された例示のシステム１００のブロック図である。一実施形態において、システム１００は、マルチメディアデータの処理のためのビデオコーデック（例えばビデオエンコーダ／デコーダ）であるように構成される。一実施形態において、システム１００はマルチメディアシステム内に含まれるように構成される。一実施形態において、システム１００は、マルチメディアシステムの外部にあるように構成され、マルチメディアシステムに通信可能に関連付けられる。マルチメディアシステムの例には、（１）例えば、携帯電話、デジタルビデオカメラ、及びデジタルカムコーダなどのマルチメディアデバイス、（２）例えば、パーソナルコンピュータ、ラップトップ、及び携帯情報端末などのデータ処理デバイス、及び、（３）例えば、セットトップボックス、デジタルビデオディスク（ＤＶＤ）プレーヤ、及びビデオネットワークサーバなどの家庭用電子機器が含まれ得るが、これらに限定されない。例示のシナリオによれば、システム１００は、マルチメディアデータの処理を（順次及び／又はその他の方式で）行なうように、命令セットを実行することが可能な任意の機械であり得る。
【００２１】
マルチメディアデータは、システム１００によってメディアキャプチャデバイスから受信され得る。メディアキャプチャデバイスの例は、ビデオカメラ又はカムコーダを含み得る。例えば、メディアキャプチャデバイスは、例えば、スタンドアロンデバイス、又は、スマートフォンなどのモバイルデバイスの一部、或いは、例えば、パーソナルコンピュータ、ラップトップデバイス、又は携帯情報端末（ＰＤＡ）などのデータ処理デバイスであり得る。マルチメディアデータはまた、システム１００によって、スタンドアロンデバイス又はメディアキャプチャデバイスの一部であり得る（例えば、ハードウェア、ソフトウェア、及び／又はファームウェアのいずれかに実装され得る）トランスコーディングシステムから受信され得る。
【００２２】
例示のシナリオによれば、マルチメディアデータは、マルチメディアフレーム（以下、同じ意味で「フレーム」と呼ばれる）のシーケンスを含み得、フレームのシーケンスの中からの各フレームは、マルチメディアデータの複数のブロック（例えばマクロブロック）を含み得る。マルチメディアデータの例は、オーディオデータ、ビデオデータ、オーディオビデオ（Ａ／Ｖ）データ、イメージデータ、テキストデータ、及びそれらの組み合わせを含み得るが、これらに限定されない。マルチメディアデータの処理の例は、符号化／復号化目的で、マルチメディアデータに対応するフレームに対して動き補償を実施することを含み得る。マルチメディアデータのフレームに対して動き補償を実施することは、基準フレーム（例えば、以前に復号されたフレーム）に関してフレームを符号化／復号化することに関与する。一実施形態において、基準フレームに関連付けられる１つ又は複数の基準ピクセルが、フレームを符号化するために予測フレームを構成するように補間され得る。予測フレームは、フレームに対応する残余サンプルを取得するために、フレームから差し引かれ得る。残余サンプルは、その後、フレームを符号化するために符号化され得る。
【００２３】
システム１００は、処理ユニット１０２、メモリ１０４、キャッシュユニット１０６、及びバス１０８を含む。一実施形態において、処理ユニット１０２は、マルチコアプロセッサ、シングルコアプロセッサ、或いは、１つ又は複数のマルチコアプロセッサ及び１つ又は複数のシングルコアプロセッサの組み合わせとして具現化され得る。例えば、処理ユニット１０２は、コプロセッサ、マイクロプロセッサ、コントローラ、デジタル信号プロセッサ（ＤＳＰ）、付属のＤＳＰを備えるか又は備えない処理回路などの、様々な処理デバイス、或いは、例えば、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、マイクロコントローラユニット（ＭＣＵ）、ハードウェアアクセラレータ、専用コンピュータチップどの集積回路を含む様々な他の処理デバイスのうちの１つ又は複数として具現化され得る。一実施形態において、処理ユニット１０２はハードコード化された機能性を実行するように構成され得る。一実施形態において、処理ユニット１０２はソフトウェア命令の執行者として具現化され、命令は、特に、命令が実行されるとき本明細書で説明されるアルゴリズム及び／又は動作を実行するように、処理ユニット１０２を構成することができる。処理ユニット１０２は、とりわけ、クロック、算術論理ユニット（ＡＬＵ）、及び、処理ユニット１０２の動作をサポートするように構成された論理ゲートを含み得る。一実施形態において、メモリ１０４はマルチメディアデータを記憶するように構成される。一実施形態において、メモリ１０４は、マルチメディアデータに関連付けられたマルチメディアフレームを処理するために、基準データを（例えば、複数の基準フレームの形式で）記憶するように構成される。
【００２４】
一実施形態において、マルチメディアデータの復号されたフレームが、基準データに対応する基準フレームとしてメモリ１０４に記憶され得る。メモリ１０４の例は、ランダムアクセスメモリ（ＲＡＭ）、デュアルポートＲＡＭ、同期ダイナミックＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲＳＤＲＡＭ）などを含むが、これらに限定されない。一実施形態において、キャッシュユニット１０６は、メモリ１０４に記憶された頻繁に用いられる基準データをキャッシュするように構成される。メモリ１０４に関連付けられる制限された帯域幅及び高いトラフィック条件の結果として、基準データをキャッシュユニット１０６に記憶することで、システム１００に関連付けられた処理性能を向上させる。キャッシュユニット１０６は、第１のキャッシュ１０６ａ及び第２のキャッシュ１０６ｂを含む。一実施形態において、第１のキャッシュ１０６ａは、基準データをキャッシュするために実装され得る１つ又は複数のキャッシュバンクを含み得る。より具体的に言えば、第１のキャッシュ１０６ａに関連付けられる記憶スペースが（例えば、物理的区画又は仮想区画に）区分されるものとみなされ得、こうした各区画は、キャッシュバンクと呼ばれ得、基準データをキャッシュするために用いられ得る。キャッシュバンクは、本明細書ではさらに図４Ｂを参照して説明する。一実施形態において、第２のキャッシュ１０６ｂは、基準データをキャッシュするために実装され得る１つ又は複数のキャッシュバンクを含み得る。一実施形態において、処理ユニット１０２、メモリ１０４、及びキャッシュユニット１０６は、通信可能に関連付けられ、バス１０８を介して又は通じて互いに結合又は接続されるように構成される。バス１０８の例は、データバス、アドレスバス、制御バスなどを含み得るが、これらに限定されない。
【００２５】
バス１０８は、例えば、シリアルバス、双方向バス、又は単方向バスであり得る。マルチメディアデータ処理の場合、マルチメディアデータに対応する各フレームは、複数のピクセルブロックに分割され得る。例えば、フレームは、例えばマクロブロックと呼ばれ得る、複数の１６×１６ピクセルブロックに分割され得る。こうした各マクロブロックは、例えば、各区画が４つの４×４ピクセルブロックを含み得る４つの区画などの部分にさらに区分され得る。ピクセルブロックのこうした各区画は、本明細書ではブロック区画と呼ばれ得る。上記で説明したように、フレームを処理するために、フレームのブロック区画に関連付けられる複数のピクセルブロックについてなど、フレームの様々な部分について、基準データがフェッチされ得る。一実施形態において、処理ユニット１０２は、マルチメディアデータのフレームのブロック区画に関連付けられる複数のピクセルブロックを処理するために実装されるべき基準データを決定するように構成される。
【００２６】
上記で説明したように、基準データは１つ又は複数の基準フレームの形式でメモリ１０４に記憶される。１つ又は複数の基準フレームの各々は、１つ又は複数の基準ピクセルブロックを含む。「基準ピクセルブロック」という用語は、例えば、マルチメディアデータのフレームに関連付けられる基準フレーム内の「ｍ×ｎ」ブロックのピクセルを指すものと解釈され得、ここで、ｍ及びｎは正の整数であることに留意されたい。マルチメディアデータのフレームの各ブロック区画に関連付けられる複数のピクセルブロックを処理するために実装されるべき基準データを決定することは、処理目的で利用され得る基準フレームにおける基準ピクセルブロックを決定することを含み得る。一実施形態において、メモリ１０４からフェッチされた基準ピクセルブロックは、基準データへの今後のアクセスを容易にするために、キャッシュユニット１０６に記憶される。
【００２７】
一実施形態において、処理ユニット１０２は、以前にメモリ１０４からフェッチされた基準データに対応する複数の基準ピクセルブロックをキャッシュするように、キャッシュユニット１０６に関連付けられる第１のキャッシュ１０６ａにおける１つ又は複数のピクセルブロック領域を定義するように構成される。ピクセルブロック領域は、１つ又は複数の基準ピクセルブロックをキャッシュすることが可能な、第１のキャッシュ１０６ａ内の記憶スペースの割り振りとみなされ得る。１つ又は複数のこうした記憶スペースは、メモリ１０４からフェッチされた複数の基準ピクセルブロックをキャッシュするために、第１のキャッシュ１０６ａ内で定義され得る。一実施形態において、第１のキャッシュ１０６ａの１つ又は複数のキャッシュバンクの中からのキャッシュバンクに、ピクセルブロック領域が関連付けられ得る。一実施形態において、定義されるべきピクセルブロック領域の数は、ビデオ圧縮パラダイムに基づいて決定され得る。ビデオ圧縮パラダイムの例は、ビデオコーディング専門家グループ（ＶＣＥＧ）、Ｈ．１２０、Ｈ．２６１、動画像専門家グループ（ＭＰＥＧ）、ＭＰＥＧ−１  Ｐａｒｔ２、Ｈ．２６２、又はＭＰＥＧ−２  Ｐａｒｔ２、Ｈ．２６３、ＭＰＥＧ−４  Ｐａｒｔ２、Ｈ．２６４、又はＭＰＥＧ−４  ＡＶＣ、ＶＣ−２（ディラック）、高性能ビデオコーディング（ＨＥＶＣ）などを含むが、これらに限定されない。
【００２８】
一実施形態において、各ピクセルブロック領域は、スパン情報、ベースアドレス、キャッシュバンク識別タグ、及び／又は参照インデックスを介して定義される。スパン情報は、各ピクセルブロック領域の長さ方向（例えば高さ）及び幅方向（例えば幅）に沿った寸法を示す。ベースアドレスは、基準フレームによって定義されたスペース内で事前に決定された起点からの各ピクセルブロック領域の左上アドレス（例えば、左上ピクセル位置のピクセル座標）から又はこれに関してオフセットされ、基準フレームによって定義されたスペース内のピクセルブロック領域の局所性を示す。各ピクセルブロック領域のベースアドレスは、ｘ及びｙ座標に関して表される。キャッシュバンク識別タグは、各ピクセルブロック領域が関連付けられるキャッシュバンクを示す。参照インデックスは、各ピクセルブロック領域に関連付けられる基準フレームを示す。例えば、メモリ１０４内の基準データが３２の基準フレームを含み、ピクセルブロック領域が３２の基準フレームのうちの第５の基準フレームに関連付けられる場合、ピクセルブロック領域の参照インデックスは、基準フレーム第５番を示し得、ピクセルブロック領域に含まれる基準ピクセルブロックはここからフェッチされる。
【００２９】
一実施形態において、処理ユニット１０２はまた、基準データに対応する複数の基準ピクセルブロックの中からの基準ピクセルブロックを、１つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てるように構成される。一実施形態において、処理ユニット１０２は、所定の基準に基づいて、基準ピクセルブロックをピクセルブロック領域に割り当てる。一実施形態において、所定の基準は、基準フレームによって定義されたスペース内の基準ピクセルブロックの局所性を含むが、これに限定されない。
【００３０】
一実施形態において、各基準ピクセルブロックは、マルチメディアデータのフレームに関連付けられる複数のピクセルブロックを処理するために基準データの検索を促進するように、ピクセルブロック領域に基づいてタグに関連付けられる。一実施形態において、タグは、ピクセルブロック領域内の基準ピクセルブロックの位置の指示を提供するように構成され得る。一実施形態において、タグは、対応するピクセルブロック領域に関連付けられるベースアドレスからの基準ピクセルブロックのオフセットに基づいて定義され得る。例示の実施形態において、各ピクセルブロック領域の幅及び高さは３２ピクセル×３２ピクセルであり、ピクセルブロック領域の細分性は４×４ピクセルブロックである。したがって、８つの４×４基準ピクセルブロックを、ｘ及びｙ方向の各々に沿って含めることができる。各４×４基準ピクセルブロックは、対応するピクセルブロック領域のベースアドレスからのオフセットに基づいて、タグに関連付けられ得る。ｘ及びｙ方向に沿ったオフセットは各々３ビットを利用するため、各タグのサイズは６ビットである。タグに基づいて１つ又は複数のピクセルブロック領域の各々において４×４ピクセルブロックを検索することができる。
【００３１】
様々な例示のキャッシュ技法において、メモリ内の基準データは、４×４基準ピクセルブロックの形式に編成され、メモリ内の４×４基準ピクセルブロックの各々は、基準フレームによって定義されたスペース内のｘ方向に沿った変位及びｙ方向に沿った変位を示すタグに関連付けられる。基準フレームの最大サイズが、１つ又は複数のマルチメディアコーディングパラダイムに従って８Ｋ×８Ｋピクセルであると考えると、ｘ及びｙ方向に沿った４×４基準ピクセルブロックの数は各々２Ｋとなる。４×４ピクセルブロックはｘ及びｙ座標に基づいてタグ付けされるため、タグのサイズはｘで１１ビット、ｙで１１ビット、合計２２ビットとなる。また、メモリからフェッチされた各４×４ピクセルブロックは、４×４ピクセルブロックが属する基準フレームに関してタグ付けされる。例えばＨ．２６４などの、マルチメディアコーディングパラダイムのいくつかは、メモリ内に最大３２までの基準フレームが可能である。３２の基準フレームに基づいてタグ付けすると、タグに５ビットを追加することになる。したがって、３２の基準フレームが用いられる場合、各基準ピクセルブロックに対するタグのサイズは２７ビットであり得る。一実施形態において、良好なキャッシュを行なうために約２８８のタグが用いられる。各タグのサイズは２７ビットであるため、キャッシュの間２８８の２７ビット比較が必要である。基準データを決定及びフェッチするために２８８の２７ビット比較を行なうことで、大量の電力が損失することになる。第１のキャッシュ１０６ａにおいてピクセルブロック領域を定義すること、及び、対応するピクセルブロック領域のベースアドレスからのオフセットとして基準ピクセルブロックをタグ付けすることにより、タグのサイズは２７ビットから６ビットに減少し、それによって比較コストが低減され、電力消費のかなりの節約につながる。
【００３２】
一実施形態において、メモリ１０４から１つ又は複数の基準ピクセルブロックの各々をフェッチするための最小細分性が、メモリ１０４の最適な性能のためにメモリ１０４に関連付けられるプリフェッチバッファにおいてキャッシュするための最小細分性とマッチングする。例えば、プリフェッチバッファにおけるデータ編成がブロックベースの場合、基準ピクセルブロックのフェッチはブロック単位で整合され、それによって基準データのフェッチが最適化される。同様に、プリフェッチバッファにおけるデータ編成がラインベースである（例えば、基準データフェッチのローが順次フェッチされる）場合、基準ピクセルのフェッチはラインベースの基準データフェッチと整合される。一実施形態において、各ピクセルブロック領域が疎に満たされ、選ばれた少数の基準ピクセルブロックエントリ（要素とも呼ばれる）を含む。一実施形態において、１つ又は複数のピクセルブロック領域の各々が９つの要素を含み、すなわち、各ピクセルブロック領域が９つの基準ピクセルブロックに関連付けられる。一実施形態において、ピクセルブロック領域に関連付けられる各要素には、対応する基準フレーム内のその位置に基づいて、ピクセルブロック領域内の特定の位置が割り当てられる。
【００３３】
一実施形態において、単一の基準フレームに属する基準ピクセルブロックが、１つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てられる。一実施形態において、各ピクセルブロック領域は、第１のキャッシュ１０６ａに関連付けられる１つ又は複数のキャッシュバンクの中からのキャッシュバンク内で定義される。一実施形態において、中で各ピクセルブロック領域が定義されたキャッシュバンクを示すように、各ピクセルブロック領域にキャッシュバンク識別タグが関連付けられる。
【００３４】
一実施形態において、第２のキャッシュ１０６ｂは、マルチメディアデータの１つ又は複数の後続のブロック区画の処理の間基準データを利用可能とするために、マルチメディアデータに関連付けられる複数のブロック区画の中からの第１のブロック区画に関連付けられる基準データをキャッシュするように編成される。一実施形態において、マルチメディアデータのフレーム内のピクセルブロックは、ラスター走査順に処理される。「ラスター走査順」という用語は、例えば、左から右及び上から下への順を指すものと解釈され得ることに留意されたい。したがって、或るローにおけるピクセルブロックが左から右へと処理された後、マルチメディアデータのフレーム内の後続のローにおけるピクセルブロックが処理される。フレームに関連付けられる１つ又は複数の後続ローの処理の間、１つ又は複数の前のローに関連付けられる基準データは、第１のキャッシュ１０６ａから既に削除されている可能性がある。しかしながら、フレームの近接ローにおけるピクセルブロックは、基準データフェッチに共通性を有し得る。本明細書で開示される第２のキャッシュ１０６ｂは、フレームの近接ローに対する基準データフェッチの共通性の活用を可能にする。一実施形態において、第２のキャッシュ１０６ｂは、システム１００の構成に応じて、フレームのブロック区画の幅と同等の幅方向に沿ったスパンと、長さ方向（例えば高さ）に沿った可変寸法とを有するように定義される。
【００３５】
一実施形態において、基準データに関連付けられる基準ピクセルブロックが第２のキャッシュ１０６ｂのスパン内にある場合、メモリ１０４からフェッチされた基準データは第２のキャッシュ１０６ｂにおいてポピュレートされる。一実施形態において、第１のキャッシュ１０６ａにキャッシュされた基準データは、第１のキャッシュ１０６ａにおける基準データの満了時に第２のキャッシュ１０６ｂにおいてポピュレートされる。一実施形態において、キャッシュバンクに記憶された基準データのすべて（又は事前に選択された量）がキャッシュバンクから読み取られると、第１のキャッシュ１０６ａにキャッシュされた基準データは一度に１つのキャッシュバンクを満了にする。フレームの後続ローの処理の間、フェッチされた基準ピクセルブロックをキャッシュするために、第２のキャッシュ１０６ｂ内のスペースの利用可能性が決定される。第２のキャッシュ１０６ｂ内のスペースが利用可能であると決定された場合、フェッチされた基準ピクセルブロックは第２のキャッシュ１０６ｂにおいてポピュレートされる。一実施形態において、第２のキャッシュ１０６ｂ内のスペースが利用不能であると決定された場合、第２のキャッシュ１０６ｂにおける１つ又は複数の以前にキャッシュされた基準ピクセルブロックは削除される。１つ又は複数の以前にキャッシュされた基準ピクセルブロックを削除すると、フェッチされた基準ピクセルブロックをキャッシュするために、第２のキャッシュ１０６ｂの起点が、所定のマージンだけシフトされる。起点は、基準データを第２のキャッシュ１０６ｂの別のロー内に書き込む一方で、第２のキャッシュ１０６ｂのローから基準データを同時に読み取ることを促進するためにシフトされる。一実施形態において、第２のキャッシュ１０６ｂはブロックベースで編成され、第２のキャッシュ１０６ｂにおいてポピュレートされた基準データは、水平及び／又は垂直方向の変位でタグ付けされる。
【００３６】
一実施形態において、第２のキャッシュ１０６ｂはラインベースで編成される。また、一実施形態において、第１のキャッシュ１０６ａに基準データが存在しないと決定された場合、基準データは第２のキャッシュ１０６ｂにおいて検索される。第２のキャッシュ１０６ｂに基準データが存在すると決定された場合、基準データは、後の基準ピクセルフェッチのために第１のキャッシュ１０６ａのピクセルブロック領域のうちの１つに割り当てられる。しかしながら、一実施形態によれば、基準データが、利用不能である、すなわち第２のキャッシュ１０６ｂに存在しない、と決定された場合、基準データはメモリ１０４からフェッチされる。第２のキャッシュ１０６ｂから基準データをフェッチするために用いられる処理サイクルの数（例えば、１０処理サイクル）は、メモリ１０４から基準データをフェッチするために用いられる処理サイクルの数（例えば、１００処理サイクル）よりも少ない。一実施形態において、第２のキャッシュ１０６ｂは、メモリ１０４内の各エントリが第２のキャッシュ１０６ｂにおける１つの特定位置でキャッシュされるように、「一方向連想（associative）／直接マッピング」される。一実施形態において、基準データの複数の輝度（以下「ルマ」と呼ぶ）成分及び複数のクロミナンス（以下「クロマ」と呼ぶ）成分が、第２のキャッシュ１０６ｂ及び／又はメモリ１０４に別々にキャッシュされる。一実施形態において、ルマ成分はメモリ１０４及び／又は第２のキャッシュ１０６ｂにおいて４×４ピクセルブロックとして編成され、クロマ成分は８×２ピクセルブロックとして編成される。
【００３７】
一実施形態において、処理ユニット１０２は、基準フレーム内の第１の基準領域に関連付けられた１つ又は複数の基準ピクセルブロックに近接し、基準フレーム内に矩形領域を形成する、１つ又は複数の追加の基準ピクセルブロックをフェッチするように構成される。一実施形態において、この１つ又は複数の追加の基準ピクセルブロック及び第１の基準領域は、基準フレーム内の複数のブロック区画の中からのブロック区画に対応する。一実施形態において、この１つ又は複数の追加の基準ピクセルブロック及び第１の基準領域は、基準フレーム内の近接するブロック区画に対応する。一実施形態において、処理ユニット１０２は、この１つ又は複数の追加の基準ピクセルブロック及び第１の基準領域に関連付けられた１つ又は複数の基準ピクセルブロックをメモリ１０４からフェッチするために、メモリフェッチコマンドを生成するように構成される。一実施形態において、処理ユニット１０２はさらに、生成されたメモリフェッチコマンドに基づいてメモリから１つ又は複数の追加の基準ピクセルブロックと第１の基準領域に関連付けられた１つ又は複数の基準ピクセルブロックとをフェッチするように構成される。
【００３８】
一実施形態において、システム１００はさらに、入力ユニット（例えば画像処理デバイス）、ビデオ表示ユニット（例えば液晶ディスプレイ（ＬＣＤ）、陰極線管（ＣＲＴ）など）、カーソル制御デバイス（例えばマウス）、ドライブユニット（例えばディスクドライブ）、信号生成ユニット（例えばスピーカ）、及び／又はネットワークインターフェースユニットなどの構成要素を含む。入力ユニットは、マルチメディアデータの処理のためにマルチメディアデータを処理ユニット１０２に転送するように構成される。ドライブユニットは、本明細書で説明される方法論及び／又は機能のうちの１つ又は複数を具現化する１つ又は複数の命令セット（例えばソフトウェア）が記憶される機械可読媒体を含む。一実施形態において、ソフトウェアは、メモリ１０４及び処理ユニット１０２も機械可読媒体を構成するように、システム１００による実行の間、完全又は部分的に、メモリ１０４内及び／又は処理ユニット１０２内にある。ソフトウェアはさらに、ネットワークインターフェースユニットを介してネットワーク上で送信及び／又は受信され得る。
【００３９】
「機械可読媒体」という用語は、１つ又は複数の命令セットを記憶する単一媒体及び／又は複数媒体（例えば、集中型及び／又は分散型データベース、及び／又は関連付けられたキャッシュ及びサーバ）を含むものと解釈され得る。また、「機械可読媒体」という用語は、システム１００による実行のために命令セットを記憶、符号化、及び／又は搬送することが可能であり、様々な実施形態の方法論のうちの任意の１つ又は複数をシステム１００に実行させる、任意の媒体を含むものと解釈され得る。さらに、「機械可読媒体」という用語は、ソリッドステートメモリ、光及び磁気媒体、並びに搬送波信号を含むものと解釈され得るが、これらに限定されるものではない。
【００４０】
図２は、実施形態に従って第１のキャッシュ１０６ａにおいて定義された複数の例示のピクセルブロック領域を示す。図２には、第１のピクセルブロック領域２０２ａ、第２のピクセルブロック領域２０２ｂ、及び第３のピクセルブロック領域２０２ｃの、３つのピクセルブロック領域が示されている。複数のこうしたピクセルブロック領域は、第２のキャッシュ１０６ｂ及びメモリ１０４の一方からフェッチされた基準ピクセルブロックをキャッシュするために、第１のキャッシュ１０６ａにおいて定義され得ることに留意されたい。図１を参照して本明細書で説明されるように、各ピクセルブロック領域は、複数の基準ピクセルブロックをキャッシュすることが可能な第１のキャッシュ１０６ａ内の記憶スペースの割り振りとみなされ得る。一実施形態において、定義されるピクセルブロック領域の数は、ビデオ圧縮パラダイムに基づいて決定される。
【００４１】
また、図１を参照して本明細書で説明するように、各ピクセルブロック領域が、スパン情報、ベースアドレス、及び／又は参照インデックスを介して定義される。一実施形態において、ピクセルブロック領域に対するベースアドレスは、第１のキャッシュ１０６ａによって定義される記憶スペース内の事前に定義された位置（本明細書では「起点」と呼ぶ）からの、ピクセルブロック領域の変位に関して定義され得る。一実施形態において、起点は座標（０，０）に関連付けられ得、起点からのピクセルブロック領域に対応する左最上ピクセルの変位は、ピクセルブロック領域に対応するベースアドレスを定義するためのｘ及びｙ方向の変位を計算するために測定され得る。図２において、第１のピクセルブロック領域２０２ａは、起点（０，０）からのｘ方向に沿ったＢＡ０＿Ｘの変位及びｙ方向に沿ったＢＡ０＿Ｙの変位に関連付けられるように示され、ベースアドレス（ＢＡ０＿Ｘ，ＢＡ０＿Ｙ）によって定義される。第２のピクセルブロック領域２０２ｂは、起点（０，０）からのｘ方向に沿ったＢＡ１＿Ｘの変位及びｙ方向に沿ったＢＡ１＿Ｙの変位に関連付けられるように示され、ベースアドレス（ＢＡ１＿Ｘ，ＢＡ１＿Ｙ）によって定義される。同様に、第３のピクセルブロック領域２０２ｃは、起点（０，０）からのｘ方向に沿ったＢＡ２＿Ｘの変位及びｙ方向に沿ったＢＡ２＿Ｙの変位に関連付けられるように示され、ベースアドレス（ＢＡ２＿Ｘ，ＢＡ２＿Ｙ）によって定義される。
【００４２】
フレームの複数のピクセルブロックを処理するためにフェッチされた基準データに対応する各基準ピクセルブロックは、１つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てられる。一実施形態において、１つ又は複数の基準ピクセルブロックの各々は、４×４のピクセルブロックである。一実施形態において、基準データに対応する各基準ピクセルブロックは、所定の基準に基づいてピクセルブロック領域に割り当てられる。一実施形態において、所定の基準は、基準フレーム（例えば、基準ピクセルブロックのフェッチ元であるメモリ１０４における基準フレーム）によって定義されたスペース内の基準ピクセルブロックの局所性を含むが、これに限定されない。
【００４３】
フレームのピクセルブロックを処理するために、ピクセルブロックに対する基準データが決定され、基準データの存在がピクセルブロック領域において検索される。基準データに関連付けられたタグ情報が、（１）スパン情報、及び／又は（２）ピクセルブロック領域のベースアドレスと比較され、基準データに関連付けられた基準ピクセルブロックを含む可能性のある１つ又は複数のピクセルブロック領域が識別される。例えば、基準データに関連付けられ、第３のピクセルブロック領域２０２ｃに割り当てられる、基準ピクセルブロック２０４について考えてみる。基準ピクセルブロック２０４は、第１のピクセルブロック領域２０２ａ、第２のピクセルブロック領域２０２ｂ、及び第３のピクセルブロック領域２０２ｃの各々に共通の領域に配置される。ピクセルブロック領域において基準ピクセルブロック２０４の検索を行なうと、第１のピクセルブロック領域２０２ａ、第２のピクセルブロック領域２０２ｂ、及び第３のピクセルブロック領域２０２ｃが、基準ピクセルブロック２０４を含む可能性があると決定される。フェッチされるべき基準データに関連付けられたタグ情報が、これら３つのピクセルブロック領域の各々における基準ピクセルブロックのタグと比較され、基準ピクセルブロック２０４がピクセルブロック領域２０２ｃにおいて利用可能であると決定される。
【００４４】
基準ピクセルブロックが、第１のキャッシュ１０６ａにおいて定義されたピクセルブロック領域において利用不能であると決定された場合、基準ピクセルブロックが第２のキャッシュ１０６ｂにおいて利用可能であるかどうかが決定される。基準ピクセルブロックが第２のキャッシュ１０６ｂに存在すると決定された場合、基準ピクセルブロックは第２のキャッシュ１０６ｂからフェッチされ、フレームに対応する複数のピクセルブロックを処理するためにピクセルブロック領域にキャッシュされる。基準ピクセルブロックが第２のキャッシュ１０６ｂにおいて利用不能であると決定された場合、基準ピクセルブロックはメモリ１０４からフェッチされる。一実施形態において、キャッシュ動作は約１００サイクルで完了するように構成されるため、最適性能を達成するために複数のピクセルブロックが同時に処理される。例示の実施形態において、４つの近接するピクセルブロックのセットが同時に処理される。４つのピクセルブロックは、４つのピクセルブロックに対する基準データフェッチ間の重複を活用するために、同時に処理される。これは、図３Ａ〜図３Ｃを参照して本明細書でさらに説明する。
【００４５】
図３Ａ〜図３Ｃは、実施形態に従った、システム１００を用いることなどによる、複数の基準データフェッチ間の重複の例示の活用を示す。図１を参照して本明細書で説明するように、マルチメディアフレームが、例えば１６×１６ピクセルブロックなどの、マクロブロックに分割され、各マクロブロックはさらに細かく区分される。図３Ａはマルチメディアフレームに関連付けられるマクロブロック３０２を示す。マクロブロック３０２は、第１のブロック区画３０４ａ、第２のブロック区画３０４ｂ、第３のブロック区画３０４ｃ、及び第４のブロック区画３０４ｄなどの、４つの近接するブロック区画にさらに区分される。各ブロック区画は、複数のピクセルブロック（図３Ａには図示せず）を含む。一実施形態において、各ブロック区画は４つの４×４ピクセルブロックを含む。図２を参照して本明細書で説明するように、複数のブロック区画の各々に関連付けられるピクセルブロックは、基準ピクセルブロックに対する基準データフェッチ間の重複を活用するために、同時に処理される。したがって、各ブロック区画において複数のピクセルブロックを処理するために、基準領域が決定される。基準領域の決定は、本明細書において図３Ｂを参照して説明する。
【００４６】
各ブロック区画において複数のピクセルブロックを処理するために、フェッチされるべき（基準データにおける）基準領域が決定される。図３Ｂにおいて、基準フレーム３０６における各ブロック区画に対応するピクセルブロックの局所性に基づいて、第１の基準領域３０８ａ、第２の基準領域３０８ｂ、第３の基準領域３０８ｃ、及び第４の基準領域３０８ｄなどの、（図３Ｂに点線四角形で示された）４つの基準領域が、４つの区画における複数のピクセルブロックに対応すると決定される。図１を参照して本明細書で説明するように、メモリ１０４（又はメモリ１０４に関連付けられるプリフェッチバッファ）におけるデータ編成はブロックベースであるように示されるため、基準ピクセルのフェッチの最小細分性はブロックベースである。したがって、第１のブロック区画に関連付けられたピクセルブロックに対する基準データをフェッチするために、９つの基準ピクセルブロックが、第１の基準領域３０８ａに対応するメモリ１０４からフェッチされるべきであると決定される。さらに、それぞれ、第２の基準領域３０８ｂ、第３の基準領域３０８ｃ、及び第４の基準領域３０８ｄに対応するように、９つの基準ピクセルブロック、６つの基準ピクセルブロック、及び９つの基準ピクセルブロックが、メモリ１０４からフェッチされるべきであると決定される。近接する基準領域に対してフェッチされる基準ピクセルブロックが重複する場合、基準領域のうちの１つに対してフェッチされ、ピクセルブロック領域にキャッシュされた基準ピクセルブロックは、後続のフェッチに利用可能とされ得、利用可能な基準ピクセルブロックは、図３Ｃを参照して本明細書で説明するように再使用される。
【００４７】
図３Ｃは、ピクセルブロック３０２の４つの近接するブロック区画に対する複数の基準ピクセルブロックのフェッチを示す。第１のブロック区画３０４ａに関連付けられたピクセルブロックの処理の間、第１のキャッシュ１０６ａにおいて定義されたピクセルブロック領域には基準データが存在しない。したがって、第１のキャッシュ１０６ａのピクセルブロック領域における第１のブロック区画３０４ａに関連付けられたピクセルブロックを処理するために実装されるべき９つの基準ピクセルブロックの存在が決定される。最初に、第１のキャッシュ１０６ａにおいて定義されたピクセルブロック領域には基準データがなく、９つの基準ピクセルブロックは第１のキャッシュ１０６ａにおいて利用不能であると決定され、さらに、９つの基準ピクセルブロックの各々の不在は、第１の基準領域３０８ａにおいて「ＭＩＳＳ」として記録される。所望の基準データが第１のキャッシュ１０６ａにおいて利用不能であると決定されるため、９つの基準ピクセルブロックは、メモリ１０４からフェッチされることになる。４つの処理サイクルのセット（図３Ｃでは円で表される）が、所望の９つの基準ピクセルブロックをフェッチするために実装され得る。一実施形態において、４つのピクセルブロックが各処理サイクルにおいてフェッチされ、したがって、９つの基準ピクセルブロックに加えていくつかの追加のピクセルブロックがフェッチされる。こうしたピクセルブロックは図３Ｃでは「関係なし」（又は「Ｎ／Ｒ」）とマーク付けされる。９つの基準ピクセルブロックは、メモリ１０４からフェッチされ、第１のキャッシュ１０６ａにおける１つ又は複数のピクセルブロック領域にキャッシュされる。
【００４８】
図３Ｂに示されるように、第１の基準領域３０８ａの右端３１０ａと第２の基準領域３０８ｂの左端３１０ｂとは３つの共通の四角形ブロック内にあり、このことが第１の基準領域３０８ａと第２の領域３０８ｂとの間の重複を生成する。第１のブロック区画３０４ａの処理のための基準データのフェッチの結果として、第２のブロック区画３０４ｂに対応するピクセルブロックを処理するために実装されるべき基準ピクセルブロックは、すでにフェッチされ、第１のキャッシュ１０６ａにキャッシュされている。その結果、第２のブロック区画３０４ｂを処理するために実装されるべき９つの基準ピクセルブロックの存在をチェックすると、３つの基準ピクセルブロックが利用可能であると決定され、したがってこれら３つのピクセルブロックの存在が「ＨＩＴ」として記録され、残りの６つの基準ピクセルブロックの不在は「ＭＩＳＳ」として記録される。これら６つの基準ピクセルブロックをフェッチするために、４つの処理サイクルが実装される。実装された基準データのフェッチの間、６つの基準ピクセルブロックに加えていくつかの追加の基準ピクセルブロックがフェッチされ得、こうしたピクセルブロックは「Ｎ／Ｒ」としてマーク付けされる。６つの基準ピクセルブロックは、メモリ１０４からフェッチされ、第１のキャッシュ１０６ａにおける１つ又は複数のピクセルブロック領域にキャッシュされる。
【００４９】
また第１の基準領域３０８ａの下端３１０ｃと第３の基準領域３０８ｃの上端３１０ｄとは２つの共通の四角形ブロック内にあり、第１の基準領域３０８ａと第３の基準領域３０８ｃとの間の重複を生成している。第１のブロック区画３０４ａを処理するための基準データのフェッチの結果として、第３のブロック区画３０４ｃに対応するピクセルブロックを処理するために実装されるべき２つの基準ピクセルブロックは、すでにフェッチされ、第１のキャッシュ１０６ａにキャッシュされている。第３のブロック区画３０４ｃを処理するために実装されるべき６つの基準ピクセルブロックの存在をチェックすると、２つの基準ピクセルブロックが利用可能であると決定され、したがってこれら２つのピクセルブロックの存在が「ＨＩＴ」として記録され、残りの４つの基準ピクセルブロックの不在は「ＭＩＳＳ」として記録される。これら４つの基準ピクセルブロックをフェッチするために、２つの処理サイクルが実装される。実装された基準データのフェッチの間、これら４つの基準ピクセルブロックに加えていくつかの追加の基準ピクセルブロックがフェッチされ得、こうした基準ピクセルブロックは「Ｎ／Ｒ」としてマーク付けされる。４つの基準ピクセルブロックは、メモリ１０４からフェッチされ、第１のキャッシュ１０６ａにおける１つ又は複数のピクセルブロック領域にキャッシュされる。
【００５０】
同様に、第４の区画３０４ｄに対応するピクセルブロックを処理するために、第１のキャッシュ１０６ａのピクセルブロック領域における９つの基準ピクセルブロックの利用可能性がチェックされ、したがって、基準ピクセルブロックはＨＩＴ又はＭＩＳＳに関連付けられる。ＭＩＳＳと記録されたピクセルブロックは、メモリからフェッチされ、第１のキャッシュ１０６ａのピクセルブロック領域にキャッシュされる。フェッチされた基準データは、フレームの複数のブロック区画におけるピクセルブロックを処理するために用いられる。マルチメディアデータの処理に含まれる様々な段を、本明細書において図４Ａを参照して説明する。
【００５１】
図４Ａは、一実施形態に従った、システム１００におけるマルチメディアデータに関連付けられるマルチメディアフレームの処理を示す例示のプロセスフローの簡略化された概要を示す。一実施形態において、マルチメディアフレームの処理は、キャッシュ段４０２、直接メモリアクセス（ＤＭＡ）段４０４、及びフィルタリング段４０６などの、３段で成される。キャッシュ段４０２において、ステップ４０８で、フレームを処理するために実装されるべき基準データが（例えば、図１の処理ユニット１０２によって）決定され、それに続いてステップ４１０で、第１のキャッシュ１０６ａにおいて基準データの存在が（例えば、処理ユニット１０２によって）チェックされる。図４Ａにおいて、フレームがキャッシュ段４０２への入力として示されているが、いくつかの実施形態において、（図３Ａ〜図３Ｃを参照して本明細書で説明するように）フレームはブロックに分割され、さらに各ブロックが区分され、フレームの各ブロック区画内の複数のピクセルブロックについて基準データが決定及びフェッチされる。一実施形態において、フェッチされるべき基準ピクセルブロックのサイズは、フレームの対応するピクセルブロックのサイズよりわずかに大きくなるように決定される。例えば、フレームの４×４ピクセルブロックの場合、９×９基準ピクセルブロック（各側で５つの追加ピクセル、すなわち左に３つ及び右に２つの追加ピクセル）が、動き補正の間の補間のために基準フレームからフェッチされるべきであると決定される。同様に、フレームの８×８ピクセルブロックの場合、１３×１３基準ピクセルブロックが補間のために基準フレームからフェッチされるべきであると決定され得る。
【００５２】
図１及び図２を参照して本明細書で説明するように、処理ユニット１０２は、第１のキャッシュ１０６ａにおいてピクセルブロック領域を定義するように構成され得る。ピクセルブロック領域は、第２のキャッシュ１０６ｂ及びメモリ１０４の一方から以前にフェッチされた基準データに対応する複数の基準ピクセルブロックをキャッシュすることができるように構成される。フレームに対する基準データを決定する際に、基準データを含む可能性のある１つ又は複数のピクセルブロック領域が（例えば、図１の処理ユニット１０２を用いて）識別される。識別されたピクセルブロック領域における基準データに関連付けられる１つ又は複数の基準ピクセルブロックの存在が、（例えば、図１の処理ユニット１０２を用いて）決定される。
【００５３】
ＤＭＡ段４０４において、ステップ４１２で、識別されたピクセルブロック領域における基準データに関連付けられた１つ又は複数の基準ピクセルブロックが利用不能であることが決定されると、第２のキャッシュ１０６ｂ及びメモリ１０４の一方から１つ又は複数の基準ピクセルブロックをフェッチするために、１つ又は複数のメモリフェッチコマンドが（例えば、図１の処理ユニット１０２を用いて）生成される。一実施形態において、ピクセルブロック領域における基準ピクセルブロックの利用不能性が決定されると、第２のキャッシュ１０６ｂにおいて基準ピクセルブロックの利用可能性がチェックされる。基準ピクセルブロックが第２のキャッシュ１０６ｂにおいて利用可能であると決定された場合、基準ピクセルブロックが、フェッチされ、フレームのピクセルブロックの処理のために第１のキャッシュ１０６ａのピクセルブロック領域にキャッシュされる。基準ピクセルブロックが第２のキャッシュ１０６ｂにおいて利用不能であると決定された場合、基準ピクセルブロックはメモリ１０４からフェッチされなければならない。ステップ４１４で、基準データは、生成されたメモリフェッチコマンドに基づいてメモリ１０４から（例えば、図１の処理ユニット１０２を用いて）フェッチされる。ステップ４１６で、メモリ１０４／第２のキャッシュ１０６ｂからフェッチされた１つ又は複数の基準ピクセルブロックの各々が、所定の基準に基づいて、第１のキャッシュ１０６ａにおいて定義された１つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に（例えば、図１の処理ユニット１０２を用いて）割り当てられる。一実施形態において、所定の基準は、基準フレーム内の基準ピクセルブロックの局所性、及び基準フレームによって定義されるスペース内のピクセルブロック領域の局所性を含むが、これらに限定されない。割り当てに続き、フレームの後続のピクセルブロックを処理するために基準データの検索を促進するように、１つ又は複数の基準ピクセルブロックの各々が、ピクセルブロック領域に基づいて（例えば、図１の処理ユニット１０２を用いて）タグに関連付けられる。
【００５４】
フィルタリング段４０６において、ステップ４１８で、フェッチされ、１つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てられた、（フレームのピクセルブロックに対応する）１つ又は複数の基準ピクセルブロックは、（例えば、図１の処理ユニット１０２を用いて）読み取られ、予測されるフレームを取得するために処理を受ける。予測されたフレームはその後、マルチメディアデータのフレームの処理（例えば、動き補償に基づく符号化／復号化）に用いられ得る。
【００５５】
図４Ｂは、一実施形態に従った、マルチメディアフレームの処理の間の第１のキャッシュ１０６ａに関連付けられる読み取り／書き込み動作の例示のスケジューリングを示す。一実施形態において、第１のキャッシュ１０６ａは、読み取り／書き込み動作のスケジューリングのために複数のキャッシュバンクに分割される。一実施形態において、第１のキャッシュ１０６ａは、例えば、キャッシュバンク０、キャッシュバンク１、及びキャッシュバンク２の、３つのキャッシュバンクでパイプライン様式／逐次的様式で動作するように設計される。図４Ｂにおいて、キャッシュバンク０、キャッシュバンク１、及びキャッシュバンク２は、それぞれ、デジット０、１、及び２で表される。パイプライン手法は、所与のキャッシュバンクへの読み取り及び書き込み動作を同時に実施する可能性を排除する。
【００５６】
一実施形態において、パイプラインは、システム１００におけるマルチメディアデータの処理の間関与する様々な段に対応する３つのパイプラインスロットを有する。図４Ｂに示される３つのパイプラインスロットは、フロントスロット４０２、ＤＭＡスロット４０４、及びバックスロット４０６である。一実施形態において、フロントスロット４０２は、図１のメモリ１０４からフェッチされるべき基準データの決定、及び基準データをフェッチするためのメモリフェッチコマンドの生成を含む処理段に対応し、ＤＭＡスロット４０４は、基準データをフェッチすること、及びフェッチされた基準データを第１のキャッシュ１０６ａにおけるピクセルブロック領域に割り当てること（図１の第１のキャッシュ１０６ａでの書き込み動作）を含む処理段に対応し、バックスロット４０６は、マルチメディアデータに関連付けられたフレームの処理のために予測フレームを構成するための（例えば、図１の処理ユニット１０２による）基準データの読み取りを含む処理段に対応する。キャッシュバンク（０、１、及び２）は、パイプラインスロット４０２〜４０６の複数のパス４２０〜４２８（点線の垂直コラムで表される）を介して、逐次的、循環的方式でパイプラインスロット（４０２、４０４、及び４０６）を受ける。
【００５７】
図４Ｂにおいて、パイプラインスロット（４０２〜４０６）の第１のパス４２０で、キャッシュバンク０はフロントスロット４０２を受ける。フェッチされるべき（フレームに関連付けられた複数のピクセルブロックに対応する）基準データが決定される。より具体的に言えば、複数のピクセルブロックを処理するために実装されるべき基準データが識別され、第１のキャッシュ１０６ａにおいて及びそれに続いて第２のキャッシュ１０６ｂにおいて、基準データの存在がチェックされる。第１のキャッシュ１０６ａ及び第２のキャッシュ１０６ｂにおける基準データの利用不能性が決定されると、基準データはメモリ１０４からフェッチされることになる。メモリ１０４からフェッチされるべき基準データに対応する基準ピクセルブロック（例えば、図３ＣでＭＩＳＳと記録された基準ピクセルブロック）は、キャッシュバンク０に割り当てられる。
【００５８】
一実施形態において、フェッチされるべき基準ピクセルブロックを収容するためにキャッシュバンク（例えば、キャッシュバンク０、キャッシュバンク１、又はキャッシュバンク２）内のスペースの利用可能性が、フェッチ動作を行なう前にチェックされる。基準ピクセルブロックを収容するのに十分なスペースがキャッシュバンクにおいて利用可能である場合、基準ピクセルブロックは、キャッシュバンクに割り振られ、既にキャッシュバンク内に存在する基準ピクセルブロックのグループと共に処理される。しかしながら、スペースが不十分であると決定された場合、基準ピクセルブロックは次の後続のパスにおいて新しいキャッシュバンクに割り振られる。一実施形態において、最大可能数の基準ピクセルブロックがキャッシュバンクに収容される。一実施形態において、フレームの４つのマクロブロックに対応する基準ピクセルブロックが、キャッシュバンクに割り振られる。一実施形態において、フレームのマクロブロックに対応するすべての基準ピクセルブロックが、単一のキャッシュバンクに含められ得る。一実施形態において、マクロブロックに対応するすべての基準ピクセルブロックが１つのキャッシュバンクに収容され得ない場合、そのマクロブロックに対応する基準ピクセルブロックは、パイプラインスロット（４０２〜４０６）の次のパスの間、次のキャッシュバンクに含められる。
【００５９】
図４Ｂに示されるように、第１のパス４２０の間、キャッシュバンク０はフロントスロット４０２を受ける。第２のパス４２２の間、キャッシュバンク１はフロントスロット４０２を受け、キャッシュバンク０はＤＭＡスロット４０４を受ける。フロントスロット４０２の間定義されるすべてのピクセルブロック領域は、キャッシュバンクのキャッシュバンクアドレスに関連付けられるか又はタグ付けされる。一実施形態において、フレームの第１のブロック区画のピクセルブロックに対応する基準ピクセルブロックをキャッシュするために定義されるピクセルブロック領域は、キャッシュバンク０に関連付けられる。フレームの後続のブロック区画に対して定義されるすべてのピクセルブロック領域は、キャッシュバンク１に関連付けられ得る。
【００６０】
第３のパス４２４の間、キャッシュバンク２はフロントスロット４０２を受け、キャッシュバンク１はＤＭＡスロット４０４を受け、キャッシュバンク０はバックスロット４０６（フィルタリング段）を受ける。第４のパス４２６でキャッシュバンク２がＤＭＡスロット４０４を受ける前に、キャッシュバンク０に関連付けられたピクセルブロック領域が実装されず、キャッシュバンク１に関連付けられたピクセルブロック領域がキャッシュバンク２を処理するために保持されるため、キャッシュバンク０におけるすべてのピクセルブロック領域は無効化され削除される。例示の実施形態において、キャッシュバンク２は、基準フレーム内のピクセルブロックのローに関連付けられる基準ピクセルブロックに関連付けられたマルチメディアデータを含み得る。キャッシュバンク１は、基準ピクセルブロックのローにおける基準ピクセルブロックの左に１つ又は複数の基準ピクセルブロックが関連付けられたマルチメディアデータを含み得、キャッシュバンク０は、基準フレームにおける基準ピクセルブロックのローの上に位置する最上ローにおける１つ又は複数の基準ピクセルブロックに関連付けられたマルチメディアデータを含み得る。キャッシュバンク１の１つ又は複数の基準ピクセルブロックに関連付けられたマルチメディアデータは、キャッシュバンク２の基準ピクセルブロックを処理する一方で用いられ得るが、キャッシュバンク０の１つ又は複数の基準ピクセルブロックに関連付けられたマルチメディアデータは、キャッシュバンク０の１つ又は複数の基準ピクセルブロックが最上ローに属していることから、キャッシュバンク２の基準ピクセルブロックを処理する一方で用いられ得ない。したがって、マルチメディアデータの処理の間用いられ得る他の追加の基準データを収容するためのスペースを利用可能にするためにキャッシュバンク２を処理する一方で、キャッシュバンク０の１つ又は複数のピクセルブロック領域が無効化及び／又は削除され得る。一実施形態において、第５のパス４２８の間、キャッシュバンク２はバックスロット４０６を受ける。一実施形態において、複数のキャッシュバンクが同時にフロントスロット４０２、ＤＭＡスロット４０４、及び／又はバックスロット４０６を受ける。
【００６１】
図５は、一実施形態に従って、マルチメディアフレームに関連付けられる複数のピクセルブロックを処理するために基準データを検索する例示のプロセスを示す。図３Ａ〜図３Ｃを参照して本明細書で説明するように、マルチメディアフレームのブロック区画に関連付けられるピクセルブロックを処理するために、各ブロック区画について基準領域が決定された後、それらの存在がチェックされる。すなわち、図１の第１のキャッシュ１０６ａにおいて検索される。より具体的に言えば、各基準領域に対応する基準ピクセルブロックの存在が、第１のキャッシュ１０６ａにおける１つ又は複数のピクセルブロック領域においてチェックされる。したがって、基準ピクセルブロックの範囲チェック５０２が行われ、範囲チェック５０２では、基準ピクセルブロックを含む可能性のあるピクセルブロック領域を識別するために、基準ピクセルブロックに関連付けられる参照番号（ｒｅｆ＃）５０４及び位置座標（Ｘ，Ｙ）５０６が、それぞれ、各ピクセルブロック領域に関連付けられるタグ情報における参照インデックス５０８及びスパン情報／ベースアドレス５１０と比較される。図３Ａ〜図３Ｃを参照して本明細書で説明するように、基準領域はメモリ１０４に記憶された基準フレーム内で決定され、したがって、基準領域内の基準ピクセルブロックは、基準フレームに対応する参照番号（ｒｅｆ＃）５０４及び基準フレーム内の局所性に対応する位置座標５０６でタグ付けされる。１つ又は複数のピクセルブロック領域の参照番号（ｒｅｆ＃）５０４と参照インデックス５０８との比較を行なうために、第１の比較ブロック５１２（図５でＣＭＰ１と示される）が用いられる。さらに、位置座標５０６とスパン情報／ベースアドレス５１０との比較を行なうために、第２の比較ブロック５１４（図５でＣＭＰ２と示される）が用いられる。
【００６２】
一実施形態において、スパン情報は、各ピクセルブロック領域の長さ方向に沿った寸法（例えば、ピクセルブロック領域の高さ）及び幅方向に沿った寸法（例えば、ピクセルブロック領域の幅）を示す。比較の間、
Ｘ≧ＢＡ−Ｘ及び＜ＢＡ−（Ｘ＋ピクセルブロック領域の幅）、及び
Ｙ≧ＢＡ−Ｙ及び＜ＢＡ−（Ｙ＋ピクセルブロック領域の高さ）
であるかどうかが決定される。ここで、ＢＡは、１つ又は複数のピクセルブロック領域の各々のベースアドレスである。
【００６３】
２つの比較ブロック５１２及び５１４の出力に基づき、ブロック５１６で、ピクセルブロック領域が基準ピクセルブロックを含む可能性があると決定される。それに続いて、基準ピクセルブロックを含む可能性があると識別されたピクセルブロック領域内での基準ピクセルブロックの存在を決定するために、オフセットチェック５１８が行われる。オフセットチェック５１８で、基準ピクセルブロックの位置座標５０６（Ｘ，Ｙ）に含まれるオフセット情報が、これらのピクセルブロック領域に含まれる要素（以前にピクセルブロック領域にフェッチ及びキャッシュされた基準ピクセルブロック）のオフセットとマッチングすると決定される。図５において、各ピクセルブロック領域が９つの要素を含むように示されているが、ピクセルブロック領域はこれより多いか又は少ない数の要素を含み得ることに留意されたい。基準ピクセルブロックを含む可能性があるピクセルブロック領域の各々内の要素５２２ａ〜５２２ｉのタグ情報を、基準ピクセルブロックのオフセット情報と比較するために、第３の比較器ブロック５２０が用いられる。第３の比較器ブロック５２０（図５でＣＭＰ３と示される）は、比較を並行して行なうために、ピクセルブロック領域における要素の最大数と同等の多数の比較器（図５のＣＭＰ３  ５２０内で各々ＣＭＰと示される）を含むように示されている。決定されたあり得るオフセットに１つ又は複数の要素がある場合、その決定されたあり得るオフセットにおける要素に関連付けられる複数の利用可能性タグがチェックされる。一実施形態において、基準ピクセルブロックは、図１のシステム１００の設計に従って、単一のピクセルブロック領域内に存在することができる。一実施形態において、基準ピクセルブロックが存在する場合、その要素に関連付けられた複数の利用可能性タグのうちの利用可能性タグがＨＩＴ５２４とマーク付けされ、存在しない場合、利用可能性タグはＭＩＳＳとマーク付けされる。利用可能性タグが基準ピクセルブロックの存在を示す場合（例えばＨＩＴ５２４）、その要素のアドレス（例えばＨＩＴアドレス５２６）がアドレスエンコーダ５２８を介して符号化される。
【００６４】
利用可能性タグが基準ブロックの不在を示す場合、第４の比較器ブロック５３０（図５でＣＭＰ４と示される）において、現行キャッシュバンク識別タグ５３２を備える１つ又は複数のピクセルブロック領域を決定するために、（図４Ｂを参照して本明細書で説明するように）現行キャッシュバンク識別タグ５３２（ＢＡＮＫ＃）を、識別されたピクセルブロック領域に関連付けられた複数のキャッシュバンク識別タグ５３４の各々と比較することによって、バンクチェックが行われる。続いて、現行キャッシュバンク識別タグ５３４を備える決定されたピクセルブロック領域が、識別されたピクセルブロック領域において存在しない基準ピクセルブロックを割り振るためのスペースの利用可能性を有するかどうかがチェックされる。決定されたピクセルブロック領域内の決定されたあり得るオフセットでの要素の不在が、スペースの利用可能性を示し得る。決定されたあり得るオフセットでの要素の不在はまた、次のポインタ５３６の有効性によって示される。次のポインタ５３６は、第５の比較器ブロック５３８（図５でＣＭＰ５と示される）で、キャッシュバンクチェックの出力と比較される。キャッシュバンクチェックが出力を生成し、次のポインタ５３８が有効である場合、不在要素のアドレス（例えばＭＩＳＳアドレス５４０）はエンコーダ５４２を用いて決定される。基準ピクセルブロックはメモリ１０４又は第２のキャッシュ１０６ｂから（例えば、図１の処理ユニット１０２を用いて）フェッチされ、識別されたピクセルブロック領域のうちの１つに（例えば、図１の処理ユニット１０２を用いて）割り当てられる。現行キャッシュバンク識別タグ５３２を備える識別されたピクセルブロック領域のいずれも、利用可能なスペースを有さない場合、メモリ１０４又は第２のキャッシュ１０６ｂからフェッチされた基準ピクセルブロックを割り当てるために新しいピクセルブロック領域が作成される。
【００６５】
一実施形態において、メモリからフェッチされるべき基準ピクセルブロックを収容するために、キャッシュバンク内のスペースの利用可能性が決定される。スペースの利用可能性を決定すると、基準ピクセルブロックはキャッシュバンクに割り振られる。一実施形態において、メモリ１０４からのデータフェッチの待ち時間を低減させるために、第１の基準領域に対応する基準ピクセルブロックが、単一のメモリフェッチコマンドを用いてメモリ１０４からフェッチされるように整合される１つ又は複数の追加の基準ピクセルブロックと組み合わせてフェッチされる。一実施形態において、基準ピクセルブロック及び１つ又は複数の追加の基準ピクセルブロックが基準フレーム内で互いに近接するように、基準ピクセルブロックと共にフェッチされるべき１つ又は複数の追加の基準ピクセルブロックが（例えば、図１の処理ユニット１０２を用いて）決定される。また、１つ又は複数の追加の基準ピクセルブロック及び基準ピクセルブロックが共に基準フレーム内に矩形領域（連続的領域）を形成するように、１つ又は複数の追加の基準ピクセルブロックが決定される。一実施形態において、１つ又は複数の追加の基準ピクセルブロック及び基準ピクセルブロックは、フレーム内の複数のブロック区画の中からのブロック区画に対応する。一実施形態において、基準ピクセルブロック及び１つ又は複数の追加の基準ピクセルブロックは、基準フレーム内の近接するブロック区画に属し得、基準フレーム内に矩形領域（連続的領域）を共に形成し得る。１つ又は複数の追加の基準ピクセルブロック及び基準ピクセルブロックは、単一のメモリフェッチコマンドに基づいてメモリ１０４から共にフェッチされ得る。
【００６６】
一実施形態において、ブロック区画の基準ピクセルブロック及び１つ又は複数の追加の基準ピクセルブロックは、フェッチされるように整合される一方で、近接するブロック区画の１つ又は複数の基準ピクセルブロックと共にマージされ得る。基準ピクセルブロック、１つ又は複数の追加の基準ピクセルブロック、及び１つ又は複数の基準ピクセルブロックは、矩形（連続的領域）を形成し得、単一のメモリフェッチコマンドに基づいてメモリ１０４からフェッチされ得る。１つ又は複数の追加の基準ピクセルブロック及び基準ピクセルブロックは、メモリ１０４からフェッチされるように整合される一方で、同じ又は異なるキャッシュバンクに割り振られ得る。一実施形態において、割り振られた基準ピクセルブロック及び１つ又は複数の追加の基準ピクセルブロックをメモリ１０４からフェッチするために、キャッシュバンクに対してメモリフェッチコマンドが（例えば、図１の処理ユニット１０２を用いて）作成され得る。割り振られた基準ピクセルブロック及び１つ又は複数の追加の基準ピクセルブロックは、作成されたメモリフェッチコマンドに基づいて、メモリ１０４から（例えば、図１の処理ユニット１０２を用いて）フェッチされ得る。基準ピクセルブロック及び１つ又は複数の追加の基準ピクセルブロックはメモリから共にフェッチされるため、メモリから基準データをフェッチするために用いられるタグの総数が削減され得、システム性能仕様への適合を促進する。
【００６７】
一実施形態において、第１のキャッシュ１０６ａは、キャッシュユニット１０６及びシステム１００の編成に起因して予測プリフェッチに関与し得ず、第１のキャッシュ１０６ａにおいて利用不能な基準ピクセルブロックの各々は、メモリ１０４から別々にフェッチされることになる。基準ピクセルブロックの各々にタグが割り当てられ得る。いくつかのプラットフォーム（例えば、ＯＭＡＰ（商標））において、許容タグの数が制限され、基準ピクセルブロックの各々にタグが割り当てられるため、システム性能仕様を満たすことが困難になる。加えて、基準データフェッチのサイズが、システム１００における許容最大バーストサイズ内に保たれる。一実施形態において、基準データフェッチのサイズを最大バーストサイズ内に保つために、機能停止論理（break down logic）が実装される。最大バーストサイズは、例えば８データ位相を含む。メモリ１０４からの基準データフェッチは、図６Ａ〜図６Ｃでさらに説明する。
【００６８】
図６Ａ〜図６Ｃは、一実施形態に従った、図１のシステム１００におけるマルチメディアデータに関連付けられた基準フレーム内の互いに近接する基準ピクセルブロックの例示のフェッチを示す。図６Ａは、基準フレームに関連付けられる２つの近接するブロック区画６０２ａ及び６０２ｂを示す。図６Ａに示されるように、２つの近接するブロック区画６０２ａ及び６０２ｂの各々が１６の基準ピクセルブロックを含む。ブロック区画６０２ａ及び６０２ｂに対応する１つ又は複数のピクセルブロックを処理するために基準データの検索を行なうと、基準ピクセルブロックの影付きグループ６０４ａ、６０４ｂ、６０４ｃ、及び６０４ｄは、キャッシュユニット１０６において利用不能な基準ピクセルブロックであり、図１のメモリ１０４からフェッチされべきると決定される。
【００６９】
図６Ａに示されるように、基準ピクセルブロックの影付きグループ６０４ａ、６０４ｂ、及び６０４ｃの各々が４つの基準ピクセルブロックを含み、基準ピクセルブロックの影付きグループ６０４ｄは基準ピクセルブロックのペアを含む。基準ピクセルブロックの各影付きグループ６０４ａ、６０４ｂ、６０４ｃ、及び６０４ｄにおける各基準ピクセルブロックに対して基準ピクセルブロックフェッチコマンドを生成する（結果的に、各々、基準ピクセルブロックの影付きグループ６０４ａ、６０４ｂ、及び６０４ｃを処理するための４つの基準ピクセルブロックフェッチコマンドと、基準ピクセルブロックの影付きグループ６０４ｄを処理するための２つの基準ピクセルブロックフェッチコマンドとを生成する）代わりに、図６Ｂ及び図６Ｃを参照して本明細書で説明するように、基準ピクセルブロックフェッチコマンドが組み合わされ得る。
【００７０】
図６Ｂにおいて、ブロック区画における近接するピクセルブロックに対する基準ピクセルブロックフェッチが組み合わされ、それによって、システム容量が最適化され、性能が向上する。例えば、基準ピクセルブロックの影付きグループ６０４ａ、６０４ｂ、６０４ｃ、及び６０４ｄの各々に対して、１つの基準ピクセルブロックフェッチコマンドが生成され得る。基準ピクセルブロックフェッチコマンドは、図６Ｂに示されるように、基準ピクセルブロックの影付きグループ６０４ａ、６０４ｂ、６０４ｃ、及び６０４ｄにおける個別の基準ピクセルブロックに対する基準ピクセルブロックフェッチコマンドを組み合わせることによって生成される。例えば、基準ピクセルブロックの影付きグループ６０４ａをフェッチするために、基準ピクセルブロックフェッチコマンド６０６ａが用いられ得る。同様に、基準ピクセルブロックの影付きグループ６０４ｂ、６０４ｃ、及び６０４ｄをフェッチするために、基準ピクセルブロックフェッチコマンド６０６ｂ、６０６ｃ、及び６０６ｄが用いられ得る。それによって基準ピクセルブロックフェッチの数が１４から４に削減され、それによってキャッシュ性能が向上する。
【００７１】
図６Ｃにおいて、（ブロック区画６０２ａ及び６０２ｂなどの）近接するブロック区画における近接するピクセルブロックに対する基準ピクセルブロックフェッチが組み合わされる。基準ピクセルブロックフェッチコマンド６０６ａ及び６０６ｄの生成に加えて、（近接するブロック区画６０２ａ及び６０２ｂにおける）近接する基準ピクセルブロックの影付きグループ６０４ｂ及び６０４ｃに対する基準データフェッチが、基準ピクセルブロックの影付きグループ６０４ｂ及び６０４ｃをフェッチするために単一の基準ピクセルブロックフェッチコマンド６０６ｅに組み合わされる。それによって基準ピクセルブロックフェッチの数が１４から３に削減され、それによってキャッシュ性能がさらに向上する。
【００７２】
図７は、一実施形態に従った、マルチメディアデータ処理のための例示の方法７００を示すフローチャートである。一実施形態において、方法７００は、図１のシステム１００などのシステムによって実装され得る。フローチャートの動作、及びフローチャートにおける動作の組み合わせは、ハードウェア、ファームウェア、プロセッサ、回路、及び／又は、１つ又は複数のコンピュータプログラム命令を含むソフトウェアの実行に関連付けられる他のデバイスなどの、様々な手段によって実装され得る。方法７００の動作はシステム１００を用いて説明される。しかしながら、この方法の動作は、任意の他のシステムを用いることによって説明及び／又は実施され得る。方法７００は動作７０２で開始される。動作７０２で、図２を参照して本明細書で説明するピクセルブロック領域などの１つ又は複数のピクセルブロック領域が、基準データに対応する複数の基準ピクセルブロックをキャッシュするために、第１のキャッシュ（例えば、図１の第１のキャッシュ１０６ａ）において定義される。一実施形態において、基準データは、メモリ（例えば、図１のメモリ１０４）及び第２のキャッシュ（例えば、図１の第２のキャッシュ１０６ｂ）の一方から、フェッチされ得る。一実施形態において、基準データは、メモリに記憶された１つ又は複数の基準フレームのうちの基準フレームに対応し得る。
【００７３】
図１を参照して本明細書で説明するように、各ピクセルブロック領域が、１つ又は複数の基準ピクセルブロックをキャッシュすることが可能な、第１のキャッシュ内の記憶スペースの割り振りとみなされ得る。１つ又は複数のこうした記憶スペースは、メモリからフェッチされた複数の基準ピクセルブロックをキャッシュするために、第１のキャッシュ内で（例えば、図１の処理ユニット１０２などの処理ユニットを用いて）定義され得る。一実施形態において、定義されるべきピクセルブロック領域の数は、ビデオ圧縮パラダイムに基づいて決定され得る。ビデオ圧縮パラダイムの例には、ビデオコーディング専門家グループ（ＶＣＥＧ）、Ｈ．１２０、Ｈ．２６１、動画像専門家グループ（ＭＰＥＧ）、ＭＰＥＧ−１  Ｐａｒｔ２、Ｈ．２６２又はＭＰＥＧ−２  Ｐａｒｔ２、Ｈ．２６３、ＭＰＥＧ−４  Ｐａｒｔ２、Ｈ．２６４又はＭＰＥＧ−４  ＡＶＣ、ＶＣ−２（ディラック）、高効率ビデオコーディング（ＨＥＶＣ）などが含まれるが、これらに限定されない。
【００７４】
一実施形態において、各ピクセルブロック領域は、スパン情報、ベースアドレス、キャッシュバンク識別タグ、及び／又は参照インデックスを介して定義される。スパン情報は、各ピクセルブロック領域の長さ方向（例えば高さ）及び幅方向（例えば幅）に沿った寸法を示す。ベースアドレスは、基準フレームによって定義されるスペース内の事前に決定された起点からの各ピクセルブロック領域の左上アドレスのオフセットであり、基準フレームによって定義されるスペース内のピクセルブロック領域の局所性を示す。各ピクセルブロック領域のベースアドレスは、ｘ及びｙ座標に関して表される。キャッシュバンク識別タグは、各ピクセルブロック領域が関連付けられるキャッシュバンクを示す。参照インデックスは、各ピクセルブロック領域に関連付けられる基準フレームを示す。例えば、メモリ１０４における基準データが３２の基準フレームを含み、ピクセルブロック領域が３２の基準フレームのうちの基準フレーム＃５に関連付けられる場合、ピクセルブロック領域の参照インデックスは、ピクセルブロック領域に含まれる基準ピクセルブロックがフェッチされる基準フレームを示し得る。
【００７５】
動作７０４で、複数の基準ピクセルブロックの中からの基準ピクセルブロックが、所定の基準に基づいて、１つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てられる。所定の基準は、基準フレーム内の基準ピクセルブロックの局所性、及び基準フレームによって定義されるスペース内のピクセルブロック領域の局所性を含むが、これらに限定されない。一実施形態において、単一の基準フレームに属する基準ピクセルブロックが、１つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てられる。一実施形態において、ピクセルブロック領域が、疎に満たされ、少数基準ピクセルブロックエントリ（要素とも呼ばれる）を含む。一実施形態において、１つ又は複数のピクセルブロック領域の中からのピクセルブロック領域が９つの要素を含む。一実施形態において、ピクセルブロック領域に関連付けられる１つ又は複数の要素の各要素が、対応する基準フレームによって定義されるスペース内の各要素の局所性に基づいて、ピクセルブロック領域内の特定の位置に割り当てられる。一実施形態において、１つ又は複数のピクセルブロック領域の各々がその中に定義されるキャッシュバンクを示すために、キャッシュバンク識別タグが（前述のように）各ピクセルブロック領域に関連付けられる。動作７０６で、基準ピクセルブロックは、マルチメディアフレームに関連付けられる複数のピクセルブロックを処理するために基準データの検索を促進するように、ピクセルブロック領域に基づいてタグに関連付けられる。マルチメディアフレームの処理のための基準データの検索は、図８Ａ〜図８Ｂで説明する。
【００７６】
図８Ａ及び図８Ｂは、一実施形態に従って、マルチメディアフレームの処理を行なうための基準データ検索の例示の方法８００を示すフローチャートを集合的に示す。一実施形態において、システム８００は、図１のシステム１００などのシステムによって実装され得る。フローチャートの動作、及びフローチャートにおける動作の組み合わせは、ハードウェア、ファームウェア、プロセッサ、回路、及び／又は、１つ又は複数のコンピュータプログラム命令を含むソフトウェアの実行に関連付けられる他のデバイスなどの、様々な手段によって実装され得る。方法８００の動作は、システム１００を用いて説明される。しかしながら、この方法の動作は、任意の他のシステムを用いることによって説明及び／又は実施され得る。方法８００は動作８０２で開始される。動作８０２で、マルチメディアフレームにおける複数のブロック区画の中からのブロック区画における複数のピクセルブロックに対応する第１の基準領域が、マルチメディアフレームの処理のために決定される。例えば、マルチメディアフレームの４×４ピクセルブロックの場合、９×９基準領域（各側で５つの追加ピクセル、すなわち、左に３つ及び右に２つの追加ピクセル）が、動き補正の間の補間のために基準フレームからフェッチされると決定される。同様に、フレームの８×８ピクセルブロックの場合、１３×１３基準領域ブロックが基準フレームからフェッチされるべきであると決定され得る。図３Ａ〜図３Ｃを参照して本明細書で説明するように、第１の基準領域は、メモリ（例えば、図１のメモリ１０４）に記憶された基準フレーム内で決定され、したがって、第１の基準領域内の基準ピクセルブロックは、基準フレームに対応する参照番号、及び基準フレーム内の局所性に対応する位置座標でタグ付けされる。動作８０４で、第１の基準領域に関連付けられたタグ情報を、各ピクセルブロック領域に関連付けられたスパン情報と比較することによって、第１の基準領域を含む可能性がある第１のキャッシュ（例えば、図１の第１のキャッシュ１０６ａ）の１つ又は複数のピクセルブロック領域の中からのピクセルブロック領域が識別される。第１の基準領域に関連付けられたタグ情報は、参照番号（例えば、図５のｒｅｆ＃５０４）及び位置座標（例えば、図５の（Ｘ，Ｙ）５０６）を含む。スパン情報は、各ピクセルブロック領域の長さ方向に沿った寸法（例えば高さ）及び幅方向に沿った寸法（例えば幅）を示す。比較の間、
Ｘ≧ＢＡ−Ｘ及び＜ＢＡ−（Ｘ＋ピクセルブロック領域の幅）、及び
Ｙ≧ＢＡ−Ｙ及び＜ＢＡ−（Ｙ＋ピクセルブロック領域の高さ）
であるかどうかが決定される。ここで、ＢＡは、１つ又は複数のピクセルブロック領域の各々のベースアドレスであり、（Ｘ，Ｙ）は、第１の基準領域に関連付けられた位置座標である。
【００７７】
識別されたピクセルブロック領域内の基準ピクセルブロックの存在を決定するために、識別されたピクセルブロック領域についてオフセットチェックが行われる。オフセットチェックの間、識別されたピクセルブロック領域の各々に関連付けられたスパン情報、及び基準フレーム内の第１の基準領域の位置に基づいて、識別されたピクセルブロック領域の各々内の第１の基準領域の可能なオフセットが決定される。決定されたあり得るオフセットでの各基準ピクセルブロックに関連付けられる複数の利用可能性タグをチェックすることによって、識別されたピクセルブロック領域の各々における決定されたあり得るオフセットでの第１の基準領域の存在が決定される。動作８０６で、決定されたあり得るオフセットでの基準ピクセルブロックに関連付けられる複数の利用可能性タグをチェックすることによって、識別されたピクセルブロック領域の各々における決定されたあり得るオフセットでの第１の基準領域の存在が決定される。一実施形態において、基準ピクセルブロックが存在する場合、基準ピクセルブロックに関連付けられる利用可能性タグがＨＩＴとしてマーク付けされ、基準ピクセルブロックが存在しない場合、利用可能性タグはＭＩＳＳとしてマーク付けされる。一実施形態において、利用可能性タグのマーク付けは、図３Ｃを参照して本明細書で説明するように行われ得る。
【００７８】
動作８０８で、第１の基準領域が第１のキャッシュのピクセルブロック領域に存在すると決定されるかどうかが検証される。第１のキャッシュのピクセルブロック領域に第１の基準領域が存在しない場合、動作８１０で、第２のキャッシュ（例えば、第２のキャッシュ１０６ｂ）における第１の基準領域の存在が決定される。反対に、第１のキャッシュのピクセルブロック領域に第１の基準領域が存在すると決定されると、動作８１２が行われる。動作８１２では、マルチメディアフレームにおけるブロック区画における複数のピクセルブロックが、第１の基準領域に基づいて処理される。マルチメディアフレームの処理の例には、符号化／復号化目的でマルチメディアデータのフレームに対して動き補償を実行することが含まれ得る。動作８１０で第２のキャッシュにおける第１の基準領域の存在が決定されると、続いて動作８１４が行われる。動作８１４では、第１の基準領域が第２のキャッシュ内に存在すると決定されるかどうかが検証される。第１の基準領域が第２のキャッシュ内に存在すると決定された場合、動作８１６が行われる。動作８１６では、第１の基準領域に関連付けられた基準ピクセルブロックが、第２のキャッシュから第１のキャッシュにフェッチされる。
【００７９】
代替として、第１の基準領域が第２のキャッシュに存在しないと決定された場合、動作８１８で、第１の基準領域に関連付けられた基準ピクセルブロックをメモリからフェッチするために、メモリフェッチコマンドが生成される。一実施形態において、メモリフェッチコマンドは、第１のキャッシュに関連付けられる複数のキャッシュバンクのうちのキャッシュバンクに対して（例えば、図１の処理ユニット１０２を用いて）生成される。一実施形態において、１つ又は複数の追加の基準ピクセルブロックと、第１の基準領域に関連付けられた１つ又は複数の基準ピクセルブロックとが、基準フレーム内で互いに近接し、基準フレーム内で矩形領域（連続的領域）を形成するように、第１の基準領域と共にフェッチされるべき１つ又は複数の追加の基準ピクセルブロックが決定される。一実施形態において、図６Ａ〜図６Ｃを参照して本明細書で説明するように第１の基準領域及び１つ又は複数の追加の基準ピクセルブロックをフェッチするために、メモリフェッチコマンドが生成される。一実施形態において、１つ又は複数の追加の基準ピクセルブロック及び第１の基準領域は、基準フレーム内の複数のブロック区画の中からのブロック区画に対応する。一実施形態において、１つ又は複数の追加の基準ピクセルブロック及び第１の基準領域は、基準フレーム内の近接するブロック区画に対応する。１つ又は複数の追加の基準ピクセルブロック及び第１の基準領域は、同じ又は異なるキャッシュバンクに関連付けられ得る。
【００８０】
動作８２０で、生成されたメモリフェッチコマンドに基づいて、第１の基準領域に関連付けられた基準ピクセルブロックがメモリからフェッチされる。一実施形態において、第１の基準領域は、生成されたメモリフェッチコマンドに基づいて、１つ又は複数の追加の基準ピクセルブロックと共にメモリからフェッチされる。メモリから第１の基準領域の各々をフェッチするための最小細分性が、メモリに関連付けられたプリフェッチバッファのサイズとマッチングする。基準ピクセルブロックは、図６Ａ〜図６Ｃを参照して本明細書で説明するようにメモリからフェッチされ得る。基準ピクセルブロックがメモリ又は第１のキャッシュのいずれかからフェッチされると、動作８２２が行われる。
【００８１】
動作８２２では、フェッチされた基準ピクセルブロックが、所定の基準に基づいて、第１のキャッシュにおける１つ又は複数のピクセルブロック領域に割り当てられる。所定の基準は、基準フレームによって定義されたスペース内の基準ピクセルブロックの局所性を含むが、これに限定されない。割り当てられた基準ピクセルブロックに関連付けられるキャッシュバンクが、キャッシュバンクに関連付けられたすべての基準ピクセルブロックがキャッシュバンクから読み取られた時点で満了するように構成される。キャッシュバンクが満了すると、キャッシュバンクに関連付けられた基準ピクセルブロックは、第１のキャッシュから削除され、マルチメディアフレームに関連付けられる後続のピクセルブロックを処理するために第２のキャッシュに関連付けられたキャッシュバンクに割り当てられる。一実施形態において、フェッチされた１つ又は複数の基準ピクセルブロックをキャッシュするために、第２のキャッシュ内のスペースの利用可能性が決定される。スペースの利用可能性を決定すると、フェッチされた基準ピクセルブロックは第２のキャッシュにキャッシュされる。代替として、スペースの利用不能性を決定すると、第２のキャッシュに以前にキャッシュされた１つ又は複数の基準ピクセルブロックが削除され、フェッチされた基準ピクセルブロックをキャッシュするために第２のキャッシュの起点が所定のマージンだけシフトされる。第１のキャッシュに割り当てられた各基準ピクセルブロックが、動作８２４を受ける。動作８２４では、マルチメディアフレームの処理の間第１の基準領域の検索を促進するように、各基準ピクセルブロックがピクセルブロック領域に基づいてタグに関連付けられる。
【００８２】
本明細書で開示された例示の実施形態のうちの１つ又は複数の利点が、以下に記載の特許請求の範囲、その解釈又は適用をいかなる方式でも制限することなく、マルチメディアデータに関連付けられる、メモリ帯域幅消費の低減、及びその結果としてのメモリによる電力損失の低減及び再生時間の増加（例えば、再生時間は３時間増加する可能性がある）を含む。第１のキャッシュにおいてピクセルブロック領域を定義すること、及び、対応するピクセルブロック領域のベースアドレスからのオフセットとして基準ピクセルブロックにタグ付けすることで、タグ付け基準データのサイズが低減し、それによって比較コストが削減され、電力消費のかなりの節約につながる。また、第２のキャッシュから基準データをフェッチするために用いられる処理サイクルの数（例えば１０処理サイクル）は、メモリから基準データをフェッチするために用いられる処理サイクルの数（例えば１００処理サイクル）より少ないため、第２のキャッシュを用いることによって処理サイクルの総数が削減される。また、マルチメディアデータのフレームにおいて近接するピクセルブロックに関連付けられた基準ピクセルブロックをグループ化することによって、バースト当たりのデータ位相の数が、代替のキャッシュパラダイムでは１であるのに対して、約８まで増加される。バースト当たりのデータ位相が増加することは、相互接続及びメモリインターフェース電力の削減につながる。
【００８３】
加えて、基準データフェッチのサイズがメモリのプリフェッチバッファの最大サイズとマッチングするので、プリフェッチバッファと同等のサイズの１ピクセルブロック或いは１つ又は複数のピクセルブロックをフェッチするために等しい量の電力が損失されるため、システム内で電力が効率的に用いられる。本明細書で開示されるシステムは、効率的なメモリフェッチ動作（例えばＤＭＡ）を可能にするために、パイプライン様式で動作するように構成される。図４Ｂの詳細な説明で説明された３つのキャッシュバンクのパイプライン動作は、コヒーレンシを維持するための複雑な論理を排除し、様々な段の並列及び効率的な動作を可能にする。さらに、本技術において、結合性が高くなることでメモリ仕様が低下している。また、本明細書で開示される方法及びシステムは、毎秒１２０フレームに近いフレームレートの達成を可能にする。
【００８４】
本明細書に記載された様々なデバイス、モジュール、分析器、生成器などは、ハードウェア回路（例えば、相補型金属酸化物半導体（ＣＭＯＳ）ベースの論理回路）、ファームウェア、ソフトウェア、並びに／或いは、ハードウェア、ファームウェア、及び／又は（例えば、機械可読媒体において具現化される）ソフトウェアの組み合わせを用いて、可能化及び動作され得る。例えば、様々な電気的構造及び方法は、トランジスタ、論理ゲート、及び電気回路（例えば、特定用途向け集積回路（ＡＳＩＣ）回路、及び／又はデジタル信号プロセッサ（ＤＳＰ）回路）を用いて具現化され得る。
【００８５】
特に、システム１００、処理ユニット１０２、メモリ１０４、及びキャッシュユニット１０６は、ソフトウェアを用いて、及び／又は、トランジスタ、論理ゲート、及び電気回路（例えば、ＡＳＩＣ回路などの集積回路）を用いて可能とされ得る。本開示の様々な実施形態は、コンピュータ読み取り可能媒体上に記憶されるか又はその他の方式で具現化された、１つ又は複数のコンピュータプログラムを含み得、コンピュータプログラムは、プロセッサ又はコンピュータに１つ又は複数の動作を行わせるように構成される。コンピュータプログラム又は同様の言語を記憶する、具現化する、又はコンピュータプログラム又は同様の言語で符号化されるコンピュータ可読媒体が、プロセッサ又はコンピュータに１つ又は複数の動作を行わせるように構成された１つ又は複数のソフトウェアプログラムを記憶する有形データ記憶デバイスとして具現化され得る。こうした動作は、例えば、本明細書で説明されるステップ又は動作のいずれかであり得る。また、有形データ記憶デバイスが、１つ又は複数の揮発性メモリデバイス、１つ又は複数の不揮発性メモリデバイス、及び／又は、１つ又は複数の揮発性メモリデバイス及び不揮発性メモリデバイスの組み合わせとして、具現化され得る。
【００８６】
また、様々な実施形態において離散型又は分離型として説明及び例示された技法、デバイス、サブシステム、及び方法は、本技術の範囲から逸脱することなく、他のシステム、モジュール、技法、又は方法と組み合わされ得るか又は統合され得る。互いに直接的に結合されるか又は通信しているように図示又は説明される他のアイテムが、そのアイテムがもはや互いに直接的に結合されているとはみなされ得ないが、依然として間接的に結合され得、電気的、機械的、又はその他の方式で互いに通信し得るように、何らかのインターフェース又はデバイスを介して結合され得る。当業者によって確認され得る変更、置換、及び改変の他の例が、本明細書で開示される例示の実施形態を検討した時点又はその後に、本技術の趣旨及び範囲から逸脱することなく成され得る。加えて、例示の目的で、詳細な説明はフレームに関連付けられたピクセルブロックに言及しているが、本明細書で開示される方法及びシステムの範囲は、ピクセルブロックに限定されず、ＨＥＶＣパラダイムに従ったコーディングユニットを含むように拡張され得る。
【００８７】
当業者であれば、本発明の特許請求の範囲内で、例示の実施形態に対してさらなる改変が成され得ること、及び多くの他の実施形態が存在することが理解されよう。
【図１】
0006263538.tif 000002
【図２】
0006263538.tif 000003
【図３Ａ−３Ｃ】
0006263538.tif 000004
【図４Ａ】
0006263538.tif 000005
【図４Ｂ】
0006263538.tif 000006
【図５】
0006263538.tif 000007
【図６Ａ】
0006263538.tif 000008
【図６Ｂ】
0006263538.tif 000009
【図６Ｃ】
0006263538.tif 000010
【図７】
0006263538.tif 000011
【図８Ａ】
0006263538.tif 000012
【図８Ｂ】
0006263538.tif 000013