(57)【要約】【課題】動画像の動き補償のためのキャッシング方法および装置。【解決手段】動き補償回路構成に接続されるキャッシュ・メモリを使用する動き補償のための方法及び装置。動き補償方法は、動きベクトル探索のアルゴリズムにおいてマクロブロックを構成する複数のブロックの間に著しい空間的重なりが一般的に存在するという事実を利用する。従って、ある領域の画素がキャッシュ・メモリ中に記憶されることが出来て、そして、該キャッシュ・メモリは、主メモリにアクセスする必要なしに空間的に隣接するブロックのデータ上で補間技術を実行するために繰り返しアクセスされることが出来る。主メモリへのアクセスは極端に非効率的でありそしてメモリ帯域幅の浪費である。【選択図】      図６
2008512967.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュ・メモリに接続される動き補償回路を使用して画像データを復号するための方法であって、なお該キャッシュ・メモリは動き補償回路に入力されるべき画素データを記憶するものであり、該方法は、
該キャッシュ・メモリ中に、参照ブロックからの様々なオフセットを有する１又は複数ブロックの画素を具備する該画素データを記憶すること、
該キャッシュ・メモリから該画素データを検索すること、
該画素データを該動き補償回路に入力すること、及び
該画素データを１又は複数ブロックの画素の小数オフセットに補間すること
を含む方法。
【請求項２】
ＹＣｂＣｒ画素フォーマットが使用される請求項１の方法。
【請求項３】
該動き補償回路はマルチ・タップ補間フィルタを含む請求項１の方法。
【請求項４】
該マルチ・タップ補間フィルタは３以上のタップを含む請求項３の方法。
【請求項５】
該マルチ・タップ補間フィルタは４タップを含む請求項３の方法。
【請求項６】
該マルチ・タップ補間フィルタは６タップを含む請求項３の方法。
【請求項７】
該マルチ・タップ補間フィルタは水平フィルタリング・ロジック及び垂直フィルタリング・ロジックを含む請求項３の方法。
【請求項８】
該キャッシュ・メモリに接続されるメモリ・バスを更に具備し、該キャッシュ・メモリはそれぞれＬバイトの複数のキャッシュ・ラインを具備し、ここにＬは該メモリ・バス幅の整数倍からなる、請求項１の方法。
【請求項９】
該キャッシュ・メモリは整数個の該１又は複数ブロックの画素を記憶するために構成される請求項１の方法。
【請求項１０】
該１又は複数ブロックは１つの画像マクロブロックを構成する請求項１の方法。
【請求項１１】
該キャッシュ・メモリは複数のキャッシュ・ラインを具備し、それぞれのキャッシュ・ラインは１次元領域の画素データを含む請求項１の方法。
【請求項１２】
該キャッシュ・メモリは複数のキャッシュ・ラインを具備し、それぞれのキャッシュ・ラインは２次元領域の画素データを含む請求項１の方法。
【請求項１３】
該キャッシュ・メモリ及び該動き補償ユニットは１つの移動体装置に組み込まれる請求項１の方法。
【請求項１４】
該移動体装置は携帯端末を含む請求項１３の方法。
【請求項１５】
画像データを復号するための装置であって、
制御インターフェース、
該制御インターフェースに接続されるキャッシュ・メモリ、該キャッシュ・メモリはディスプレイ上の画素領域を含む画素データを保持するために構成される、
該制御インターフェースに接続されるメモリ・バス・インターフェース、
該キャッシュ・メモリに接続される動き補償補間データパス、及び
該動き補償補間データパスに接続される動き補償回路、
を含む画像データを復号するための装置。
【請求項１６】
該キャッシュ・メモリは整数個の画像マクロブロックを保持するために構成される請求項１５の装置。
【請求項１７】
該キャッシュ・メモリはＮ／Ｌ個のキャッシュ・ラインを含む請求項１５の装置、ここにＮは該キャッシュ中のバイト数からなり、そして、Ｌは該メモリ・バス・インターフェース幅の倍数からなる。
【請求項１８】
ＹＣｂＣｒ画素フォーマットが使用される請求項１５の装置。
【請求項１９】
該動き補償回路はマルチ・タップ補間フィルタを含む請求項１５の装置。
【請求項２０】
該マルチ・タップ補間フィルタは３以上のタップを含む請求項１９の装置。
【請求項２１】
該マルチ・タップ補間フィルタは４タップを含む請求項１９の装置。
【請求項２２】
該マルチ・タップ補間フィルタは６タップを含む請求項１９の装置。
【請求項２３】
該マルチ・タップ補間フィルタは水平フィルタリング・ロジック及び垂直フィルタリング・ロジックを含む請求項１９の装置。
【請求項２４】
該制御インターフェースに接続される座標からキャッシュへの変換ロジックを更に含む請求項１５の装置。
【請求項２５】
該メモリ・インターフェースに接続されるキャッシュから物理アドレスへの変換ロジックを更に含む請求項２４の装置。
【請求項２６】
該メモリ・バス・インターフェース及び該動き補償補間データパスに接続されるバッファを更に含む請求項２５の装置。
【請求項２７】
画像データを復号するための装置であって、
制御インターフェース、
該制御インターフェースに接続される座標からキャッシュ・アドレスへの変換回路、
該座標からキャッシュ・アドレスへの変換回路に接続されるキャッシュ・メモリ、該メモリ・キャッシュは画素データのブロックを記憶するために構成される、
該キャッシュ・メモリに接続される動き補償補間データパス、
該動き補償補間データパスに接続され、そして、該キャッシュ・メモリから受信される画素データのブロックを補間するために構成される、動き補償回路、
該キャッシュ・メモリに接続されるキャッシュから物理アドレスへの変換回路、及び
該キャッシュから物理アドレスへの変換回路に接続されるメモリ・バス・インターフェース
を含む画像データを復号するための装置。
【請求項２８】
該キャッシュ・メモリは整数個の画像マクロブロックを記憶するために構成される請求項２７の装置。
【請求項２９】
該キャッシュ・メモリはＮ／Ｌ個のキャッシュ・ラインを具備し、ここにＮは該キャッシュ中のバイト数からなり、そして、Ｌは該メモリ・バス・インターフェース幅の倍数からなる請求項２７の装置。
【請求項３０】
ＹＣｂＣｒ画素フォーマットが使用される、請求項２７の装置。
【請求項３１】
該動き補償回路はマルチ・タップ補間フィルタを含む請求項２７の装置。
【請求項３２】
該マルチ・タップ補間フィルタは３以上のタップを含む請求項３１の装置。
【請求項３３】
該マルチ・タップ補間フィルタは４タップを含む請求項３１の装置。
【請求項３４】
該マルチ・タップ補間フィルタは６タップを含む請求項３１の装置。    
【請求項３５】
該マルチ・タップ補間フィルタは水平フィルタリング・ロジック及び垂直フィルタリング・ロジックを含む請求項３１の装置。
【請求項３６】
該座標からキャッシュへの変換回路におけるそれぞれの座標はフレーム・バッファ・インデックス、動きベクトル、マクロブロック・アドレス及びブロック・サイズを含む請求項２７の装置。
【請求項３７】
該動き補償回路はＨ．２６４標準によって定義されるフォーマットにおける画素領域を補間するために構成される請求項２７の装置。
【請求項３８】
該動き補償回路はＭＰＥＧ標準によって定義されるフォーマットにおける画素領域を補間するために構成される請求項２７の装置。
【請求項３９】
画像データを復号するための移動体装置に組み込まれる装置であって、
画素データ座標を受信するための制御インターフェース手段、
座標データをキャッシュ・アドレスに変換するための座標アドレス変換手段、
キャッシュ・アドレスを物理アドレスに変換するための物理アドレス変換手段、
画素データの領域を記憶するためのキャッシュ・メモリ、
主メモリへの読出し命令を発するためのメモリ・バス・インターフェース、及び
画素データの領域を受信しそして該領域内の画素のブロックを補間するために該キャッシュ・メモリに接続される動き補償手段、
を含む、画像データを復号するための移動体装置に組み込まれる装置。
【請求項４０】
該動き補償手段はＨ．２６４標準に対応する画素のブロックを補間するために更に構成される請求項３９の装置。
【請求項４１】
該動き補償手段はマルチ・タップ補間フィルタを含む請求項３９の装置。
【請求項４２】
該動き補償手段は４タップ補間フィルタを含む請求項４１の装置。
【請求項４３】
該マルチ・タップ補間フィルタは４タップを含む請求項４１の装置。
【請求項４４】
該画素データ座標はそれぞれフレーム・バッファ・インデックス、動きベクトル、マクロブロック・アドレス及びブロック・サイズを含む請求項３９の装置。
【請求項４５】
キャッシュ・メモリに接続される動き補償回路を使用して画像データを復号するための方法を遂行するためのコンピュータ・プログラムにより実行可能な諸命令のプログラムを包含するコンピュータ可読媒体であって、なお該キャッシュ・メモリは動き補償回路に入力されるべき画素データを記憶するものであり、該方法は、
参照ブロックからの様々なオフセットを有する１又は複数ブロックの画素を含む該画素データを、該キャッシュ・メモリ中に記憶すること、
該キャッシュ・メモリから該画素データを検索すること、
該画素データを該動き補償回路に入力すること、及び
該画素データを１又は複数ブロックの画素の小数オフセットに補間することを含む
コンピュータ可読媒体。
【請求項４６】
該諸命令のプログラムはＨ．２６４標準に基づいて画像データを復号するために構成される請求項４５のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の分野は、動画像技術に係わり、そして更に具体的には、動画像の動き補償におけるキャッシング技術の利用に関する。
【背景技術】
【０００２】
携帯電話、携帯情報端末（personal digital assistants）（ＰＤＡｓ）及びその他のハンドヘルド装置中への動画像に関連する機能の組込みは今日の消費者向け電子商品市場における主流となってきた。これ等のハンドヘルド装置へ画像処理回路を付加するためのこの現状の能力は、ＭＰＥＧ−４やＨ．２６４のような先端圧縮技術の利用可能性に、一部、依存する。Ｈ．２６４或いは別の適切な圧縮スキームを使用して、ビデオ・クリップがカメラによって撮影されそして無線によって他の装置へ送信されることが出来る。
【０００３】
動画像は一般に、例えば携帯電話中に埋め込まれるチップセットとディジタル信号プロセッサ、ＰＤＡ，及び、その他のハンドヘルド又はコンパクト装置のような、特に重いアプリケーションの処理装置上で、最も高いメモリ帯域源の１つである。この高いメモリ帯域要求は、一般にメモリ・バス設計において問題を発生し、そして特に、動画像アプリケーションに対するメモリ・フェッチの効率を最適化するプロセッサ−メモリ接続スキームの構成において問題を発生する。
【０００４】
動画像の帯域幅使用の例は通常動き補償のコンテキスト内部で生じる。動き補償は動画像復号の１段階であって、そこでは様々なオフセットを有する画素ブロックがメモリからフェッチされ、そして、マルチ・タップ・フィルタを使用して、小数オフセット（fractional offset）に補間される。
【０００５】
動き補償読出しのためにフェッチされるブロックの大きさは一般に小さく、そして、既存のシステムにおいてプロセッサとメモリの間を接続するために通常使用される“２の冪乗”バス幅に合致させられることが殆ど出来ない幅である。通常の用途におけるこのような２の冪乗バス幅インターフェースは２５幅（３２ビット）及び２６幅（６４ビット）であることができる。上述に鑑みて、データ・ブロックをフェッチするために、短いバースト長のみが一般的に使用されることが出来る、というのは、該ブロックに関連付けられる新たな画素列をフェッチするためにプロセッサは新たな番地の読込みへ転じなければならないからである。これ等の短いバースト長は既存のシンクロナスＤＲＡＭ（Synchronous Dynamic Random Access Memory）（ＳＤＲＡＭ）に対して、他の型のメモリの中でもとりわけ、極端に非効率的であることが知られている。結果として、画素ブロックのメモリ読出しは比較的遅くなり、そして、可能性として受け入れ難い量のメモリ帯域幅が画像レンダリング機能を実行するために消費されることがあり得る。
【０００６】
図１は既存のシステムにおけるメモリからデータ・ブロックを読み出すことに関連付けられる非効率性の説明図を示す。マトリクス１００はそれぞれ１２画素の９行の任意のブロックを図示する。本例の目的のために、画素の所与の行におけるそれぞれの画素はメモリ中で１バイト（８ビット）の水平に隣接する要素として格納される。即ち、メモリ中で連続する１２バイトはスクリーン上のディスプレイのための１２個の水平に隣接する画素に対応する。その上、この説明図は、２５メモリ・バス幅（即ち、４バイト）が問題とするシステムのハードウェア・アーキテクチャにおいて実装されており、そして、ＳＤＲＡＭベースのメモリ・システムが採用されている、と仮定する。
【０００７】
更に、所与の例で今問題とする復号化スキームは、プロセッサが９×９ブロックの画素についての動き補償読出しを実行する、ことを命ずると仮定する。該９×９ブロックは図１において“＊”記号１１２として表される。それぞれの＊記号はこの実施においては８ビットのデータを構成する。“＋”記号１１０の組もこの例においては８ビット画素を構成する。しかしながら、該＋画素は読み出されるべき９×９ブロックの外側にある。９行１０８の＊記号１１２及び＋記号１１０はメモリ中においてまとめて１２×９の長方形領域の画素を表す。
【０００８】
３２ビット・バスを利用すると、実例となる９×９ブロックの画素の動き補償読出しは現実には１２×９の画素ブロックのフェッチを要求する。具体的には、本例におけるメモリ制御器は各３２ビット（４バイト）のフェッチを３回実行する。第１回目のフェッチの間に、第１行における４画素１０２に対応するバイトが読み出される。第２回目のフェッチの間に、第１行における４画素１０４に対応するバイトが読み出される。第３回目のフェッチの間に、第１行における４画素１０６に対応するバイトが読み出される。これ等の読出しが各９行に対して繰り返される。本例におけるこの１２×９の画素ブロックは分離した９回の３単位からなるバーストとして実行される。マクロブロックが１６ブロックに等しい場合、画像のそれぞれのマクロブロックは１４４回の３単位からなるバーストを必要とすることになる。
【０００９】
要するに、本説明図における３２ビット・バス・アーキテクチャは＋記号１１０により表される複数の画素が、例えそれ等が該９×９ブロックの一部ではなくても、読み出されることを要求する。従って、該複数の＋画素１１０は空費されるメモリ帯域幅を表す。多数の奇数サイズ・ブロックの動き補償読出しがフェッチされるに従い、空費される帯域幅は極めて深刻になり、それによって、性能を劣化させそして画像データの極端に非効率的な復号化の一因となる。
【００１０】
多様なプロセッサを基盤とするシステムにおける更に大きなメモリ帯域幅への増大する要求の結果、近年、メモリ・バス幅を拡張する傾向が劇的に高まってきた。不運にも、ＭＰＥＧ、及び、その他の圧縮スキーム、に関連付けられる動き補償のアプリケーションに対しては、上述で指摘された効率の問題はバス幅の高度化と共に悪化させられているとしか言えない。図２の例を考察してみると、そこでは２６＝６４ビット＝８バイトのメモリ・バス幅を採用している。前のように、９×９ブロックの画素（２０８，２１２）が動き補償回路による使用のためにメモリからフェッチされるべきブロックに対応する。本説明図におけるバスは６４ビットのインターフェースを構成するために、メモリの読出しは、該読出しが毎回２度のフェッチ２０２と２０４の９回のバーストとして実行されることを、要求する。最初のフェッチ２０２では、８バイトの画素データ２０２が読み出される。２度目のフェッチでは、追加の８バイトの画素データが読み出される。２度のフェッチの９回バーストが終わると、９×９ブロックの画素（２０２，２０８）をフェッチするために１６×９のブロックの画素が読み出されてしまった。＋記号２１０で表される画素は、フェッチの結果事実上空費される４５％のデータを示す。
【００１１】
２の冪乗ではないマクロブロック或いはサブブロックをフェッチすることにおける問題は、多くのシステムにおいて、外部メモリのアクセスがレジスタのアクセス或いはキャッシュ・メモリからのアクセスよりも遅いという事実によって更に悪くさせられる。ＳＤＲＡＭ及びその他の型のメモリ技術が速度と性能において改善される一方、これ等の改善は、従来、動き補償に対する奇数サイズ・ブロックのメモリ・フェッチに関連付けられる不要データの読み込みとは釣り合っていなかった。
【００１２】
別の問題が外部メモリ読出しに関連付けられる高い電力消費に関わっている。動画像復号化技術の場合、不要データの読出しは単に電力消費の非効率に寄与するだけである。
【００１３】
一般に、マクロブロックが使用されそして更にサブブロックに分割される多くの圧縮スキームにおいて、マクロブロックを構成する補間されるべきサブブロックの集合は、個々の動きベクトルによりオフセットされるけれども、空間的に密集する傾向がある。例えば、Ｈ．２６４標準では、マクロブロックを構成する４×４ブロックの集合は一般的には密集するようである。従って、１２×９画素領域がフェッチされる場合、それぞれのブロックに対する該１２×９画素領域が重なる蓋然性は、例えその重なりの量が先験的には知られないにしても、非常に高い。実際、例としてＨ．２６４標準を使用すると、１つの１６×１６マクロブロックを構成する複数の４×４サブブロック何れにも重なりが一切ないとするためには、該複数の４×４サブブロックは４８×３６画素領域に亘って広げられねばならない。それぞれのマクロブロックの複数の４×４サブブロックが同時にそして一貫してこの様に分布されることができる、ということは統計的にはありそうにもない。動き補間を実行する際、従来のシステムはこの重なりを活用しない。その代わり、本説明にあったように、個々のサブブロックに対して主メモリからの別々のフェッチが行われる。
【００１４】
従って、動画像復号化での動き補償演算における使用のためのデータにアクセスするより速いそしてより効率的な方法を提供する必要性が当業界に存在する。
【発明の開示】
【００１５】
［概要］
本発明の１つの態様では、キャッシュ・メモリ、動き補償回路に入力されるべき画素データを記憶するためのキャッシュ・メモリ、に接続された動き補償回路を使用する画像データを復号するための方法は、参照ブロックから様々なオフセットを有する１又は複数ブロックの画素を含む画素データを該キャッシュ・メモリ中に記憶すること、該画素データを該キャッシュ・メモリから検索すること、該画素データを該動き補償回路に入力すること、及び、該画素データを１又は複数ブロックの画素の小数オフセットに補間すること、を含む。
【００１６】
本発明の別の態様では、画像データを復号するための装置は、制御インターフェース、該制御インターフェースに接続されるキャッシュ・メモリ、該キャッシュ・メモリはディスプレイ上の画素領域を構成する画像データを保持するために構成される、該制御インターフェースに接続されるメモリ・バス・インタフェース、該キャッシュ・メモリに接続される動き補償補間データパス、及び、該動き補償補間データパスに接続される動き補償回路、を含む。
【００１７】
本発明の更に別の態様では、画像データを復号するための装置は、制御インターフェース、該制御インターフェースに接続される座標からキャッシュ・アドレスへの変換回路、該座標からキャッシュ・アドレスへの変換回路に接続されるキャッシュ・メモリ、該メモリ・キャッシュは画素データのブロックを記憶するために構成される、該キャッシュ・メモリに接続される動き補償補間データパス、該動き補償補間データパスに接続されそしてキャッシュ・メモリから受信される画素データのブロックを補間するために構成された動き補償回路、該キャッシュ・メモリに接続されるキャッシュから物理アドレスへの変換回路、及び、該キャッシュから物理アドレスへの変換回路に接続されるメモリ・バス・インターフェース、を含む。
【００１８】
本発明のなお別の態様では、画像データを復号するために移動体装置に組み込まれる装置は、画素データの座標を受信するための制御インターフェース手段、座標データをキャッシュ・アドレスに変換するための座標アドレス変換手段、キャッシュ・アドレスを物理アドレスに変換するための物理アドレス変換手段、画素データの領域を記憶するためのキャッシュ・メモリ、主メモリに読み出し命令を発するためのメモリ・バス・インターフェース、及び、画素データの領域を受信するための該キャッシュ・メモリに接続されそして該領域内部の画素のブロックを補間する動き補償手段、を含む。
【００１９】
本発明の更に別の態様では、キャッシュ・メモリ、該キャッシュ・メモリは動き補償回路に入力されるべき画素データを記憶するためのもの、に接続される動き補償回路を使用して画像データを復号するための方法を遂行するための、コンピュータ・プログラムにより実行可能な命令のプログラムを包含するコンピュータ可読媒体は、参照ブロックからの様々なオフセットを有する１又は複数ブロックの画素を含む画素データを該キャッシュ・メモリ中に記憶すること、該キャッシュ・メモリから該画素データを検索すること、該画素データを動き補償回路に入力すること、及び、該画素データを該１又は複数ブロックの画素の小数オフセットに補間すること、を含む。
【００２０】
本発明の他の実施形態が、本発明の単に数個の実施形態が例証として示されそして説明される、下記の詳細な説明から当業者には容易に明らかになることが理解される。はっきり理解されるように、本発明は他のそして異なる実施形態を可能にし、そして、本発明の数個の詳細な説明は様々な観点において改変が可能であるが、それ等全ては本発明の精神と範囲から逸脱するものではない。従って、図面および詳細な説明は本来説明的なものと見なされるべきであって、限定的なものと取られてはならない。
【００２１】
本発明の諸態様が付図において、限定としてではなく、例として図示される。
【発明を実施するための最良の形態】
【００２２】
［詳細な記載］
付図に関連して下記に記載される詳細な説明は本発明の様々な実施形態の説明として意図され、本発明が実施されることが出来る、ただそれだけに限られた諸実施形態を示すことを意図されていない。この開示において説明されるそれぞれの実施形態は単に本発明の例あるいは解説として提供され、必ずしも他の実施形態より好ましい或いは有利であると解釈されるべきではない。詳細な説明は本発明の完全な理解を提供する目的のために具体的な詳細を含む。しかしながら、本発明はこれ等の具体的な詳細なしに実施されることが可能なことは当業者には明らかである。複数の例において、本発明の概念を曖昧にすることを避けるために、周知の構成や装置がブロック図の形で示される。頭字語およびその他の説明的用語は単に便宜と平明のために使用されるのであって、本発明の範囲を限定することを意図されてない。
【００２３】
Ｈ．２６４はＩＳＯ／ＩＥＣ  ＭＰＥＧ（Moving Picture Experts Group）及びＩＴＵ−Ｔ  ＶＣＥＧのジョイント・ビデオ・チーム（Joint Video Team）（ＪＶＴ）によって開発されたＩＳＯ／ＩＥＣ圧縮標準である。Ｈ．２６４はマルチメディア環境における動画像データの効率的な記憶、伝送および操作のための中核技術を提供する新しい動画像圧縮標準である。Ｈ．２６４は世界中数百の研究者と技術者を巻き込んだ国際的努力の結果である。Ｈ．２６４の主眼は、動画像符号化のための高度な拡張性と柔軟性に富むアルゴリズム及びビットストリーム構成、無線伝送路に関する高度な誤り弾力性および回復、及び高度にネットワークとは独立したアクセシビリティ、を達成する標準を開発することであった。例えば、Ｈ．２６４に基づく符号化を用いると、あるアプリケーションにおいてはデータ速度３２ｋｂｉｔ／ｓ未満で良好な画像品質を達成することが可能である。
【００２４】
ＭＰＥＧ−４及びＨ．２６４は先行技術（ＭＰＥＧ−１及びＭＰＥＧ−２）の成功の上に建っており、そして、とりわけ、ディジタル・テレビ、対話型グラフィックス・アプリケーション、及び対話型マルチメディア、のような技術を実装するための標準化された素子のセットを提供する。その頑強性、高品質、及び低ビット・レートのために、ＭＰＥＧ−４は無線電話機、ＰＤＡ，ディジタル・カメラ、インターネット・ウェブ・ページ、及びその他のアプリケーションに実装されてきた。ＭＰＥＧ−４動画像標準のための広範囲の道具は、自然な動画像、静止画、及び、合成グラフィック・オブジェクトの符号化，復号化、及び、描写を可能にする。疑いもなく、更に大きな柔軟性およびより強固な頑強性を提供する未来の圧縮スキームの実施が差し迫っている。
【００２５】
ＭＰＥＧ−４及びＨ．２６４は動きベクトル探索のアルゴリズムを含む。動きベクトル探索のアルゴリズムは連続する動画像フレーム間の動きを計算するために補間フィルタを使用し、そして、先行して送信されるフレームから計算される動きの情報を使用して現行フレームを構成する情報を予測する。ＭＰＥＧ符号化スキームにおいては、フレームの画素ブロックは先行フレームの領域に相関付けられ、そして、ブロックとその相関付けられた領域の間の差のみ符号化されそして記憶される。ブロックとそれに最も密接に適合する領域との間の変換ベクトルは動きベクトルと呼ばれる。
【００２６】
Ｈ．２６４標準（ＭＰＥＧ−４パート１０“アドバンスト・ビデオ・コーディング”（Advanced Video Coding）標準とも呼ばれる）は複数のサブブロック・サイズ（最小４×４）の範囲に対する対応を含む。これ等のサブブロックは４×４、８×４、４×８、及び８×８を含む分割領域の範囲を含む。一般に、独立した動きベクトルがそれぞれの分割領域或いは副分割領域に対して必要とされる。所与のアプリケーションに対してどの分割領域サイズを利用するかという選択はいろいろあり得る。一般に、画像の一様な領域に対してはより大きな分割領域サイズが適切であり得る、それに対し、詳細な領域に対してはより小さな分割領域サイズがより好適であることがあり得る。
【００２７】
Ｈ．２６４標準（ＭＰＥＧ−４パート１０“アドバンスト・ビデオ・コーディング”）は１６×１６から４×４輝度サンプルに及ぶ、両者の間に多くのオプションがある、動き補償ブロック・サイズに対応する。図３に示されるように、それぞれのマクロブロック（１６×１６サンプル）の輝度コンポーネントは４通りに分割されることが出来る：１６×１６（マクロブロック３００）、１６×８（マクロブロック３０２）、８×１６（マクロブロック３０４）、８×８（マクロブロック３０６）。８×８モードが選択される場合（マクロブロック３０６）、マクロブロック内の分割領域は図４に示されるように更に４通りに分割されることが出来る。ここで、サブブロック或いは副分割領域は８×８サブブロック４００、２つの８×４サブブロック４０２、２つの４×８サブブロック４０４、或いは４つの４×４サブブロック４０６を含むことが出来る。
【００２８】
Ｈ．２６４では、それぞれのマクロブロック或いはサブブロックに対して、独立した動きベクトルが必要とされる。復号装置に伝送される圧縮されたビット・ストリームは、一般に、分割領域の選択ばかりでなくそれぞれのサブブロックに対する符号化された動きベクトルも含む。より大きなサブブロック（例えば、１６×１６、１６×８、８×１６）を選ぶことは、一般に、サブブロックの型と動きベクトルの選択を知らせるためにより小さなビット数を必要とする。しかしながら、この例では動きを補償された残差は非常に精細なフレーム領域にかなりの量のエネルギーを含むことがある。逆に、小さなサブブロック・サイズ（例えば、８×４、４×４等々）を選択することは、一般に、サブブロックの選択と動きベクトルを知らせるためにより大きなビット数を必要とするが、しかし、動き補償の後にはより低エネルギーの残差を提供することが出来る。従って、サブブロック或いは分割領域サイズの選択は圧縮性能に著しい影響を有することができる。上述で注意されたように、より大きなサブブロック・サイズはフレームの一様な領域に対して適切であることが出来る、そして、より小さな分割領域サイズはより精細な領域に対して有利であることが出来る。  
副画素動きベクトル
Ｈ．２６４標準では、フレーム間符号化されたマクロブロックにおけるそれぞれのサブブロックは、一般に、参照画像における同一サイズの対応する領域から予測される。サブブロックと参照サブブロックとの間の分離を定義する動きベクトルは、輝度コンポーネントに対し、１／４画素の分解能を含有する。副画素位置におけるサンプルは参照画像中には存在しないという理由で、該サンプルは隣接画像サンプルからの補間を使用して生成されねばならない。副画素補間の例が図５で示される。図５Ａは参照画像における具体例としての４×４画素サブブロック５００を示す。図５Ａにおける該サブブロック５００は参照画像の隣接領域から予測されるべきである。もし動きベクトルの水平成分および垂直成分が、図５Ｂの説明図において示されるように、整数（１，−１）であるならば、参照ブロック中に適切なサンプル５０２が現実に存在する。しかしながら、もし１つ或いは両方のベクトル成分が小数（非整数）値（０．７５，−０．５）であるならば、サブブロック５０３を形成する予測サンプルは参照フレーム中の隣接画素サンプル間で補間することによって生成される。
【００２９】
副画素動き補償は、増大する複雑性という対価を支払って、整数画素補償より格段に改良された圧縮性能を提供することが出来る。画素精度が精細になるほど画像は良好になる。例えば、１／４画素精度は１／２画素精度より性能が良い。
【００３０】
輝度コンポーネントにおいては、１／２画素位置における副画素サンプルが先ず生成されることが出来る、そして、１つの構成では、６タップ有限インパルス応答フィルタ（6-tap Finite Impulse Response filter）を使用して近隣の整数画素サンプルから補間されることが出来る。この構成では、それぞれの１／２画素サンプルは６個の近隣の整数サンプルの加重和を表す。一旦全ての１／２画素サンプルが利用可能になると、それぞれの１／４画素サンプルが、近隣の１／２画素サンプル或いは整数画素サンプル間の双線形補間を使用して生成されることが出来る。
【００３１】
動きベクトル予測
それぞれの分割に対する動きベクトルを符号化することは、特にもし小さなサブブロック・サイズが選択される場合、著しいビット数を要することがある。近隣の複数のサブブロックに対する動きベクトルは高い相関関係にあり、従って、それぞれの動きベクトルは近隣の、先に符号化されたサブブロックのベクトルから予測されることが出来る。予測ベクトル、ＭＶＰ、は先に計算された動きベクトルに基づいて形成されることが出来る。ＭＶＤ、現行ベクトルと予測ベクトルの間の差、が符号化されそして送信される。予測ベクトルＭＶＰを形成する方法は動き補償サブブロック・サイズ及び近隣のベクトルの利用可能性に依存する。複数の実装における基本的な予測子は現行ブロック若しくは現行サブブロックの真上のマクロブロック・サブブロック、右上対角のマクロブロック・サブブロック及び直ぐ左のマクロブロック・サブブロックの動きベクトルの中央値である。該予測子は、（ａ）もし１６×８若しくは８×１６サブブロックが選択されるならば、及び／又は（ｂ）もし隣接する分割領域のあるものが予測子として利用不可であるならば、変更されることが出来る。もし現行マクロブロックが飛び越される（即ち、送信されない）ならば、予測ベクトルは、該マクロブロックがあたかも１６×１６分割モードで符号化されたかのように、生成されることが出来る。
【００３２】
復号器においては、予測動きベクトルＭＶＰは同様に形成されることが出来て、そして復号されたベクトル差分ＭＶＤに加算されることが出来る。飛び越されたマクロブロックの場合には、復号されるベクトルは存在しない、従って、動き補償されるマクロブロックはＭＶＰの大きさに従って生成されることが出来る。
【００３３】
本発明の１つの態様に従って、動き補償回路は適切なサイズのキャッシュ・メモリに接続されてメモリ性能を劇的に改善する。本明細書中で使用されるような技術は、動き補償帯域幅が７０％までも或いは実装次第でそれ以上にも軽減される、という結果をもたらす。その上、最良の場合のブロック・サイズと最悪の場合のブロック・サイズとの間の帯域幅の相違は８０％或いはそれ以上にも軽減される。１つの実施形態において、全ての非整合の奇数長フェッチはキャッシュ・ライン読み込みに整合される２の冪乗ワードになり、メモリ・アクセス効率を向上させる。
【００３４】
単純な双線形フィルタリングの使用を上回る（Ｈ．２６４におけるように）長い補間フィルタの増大する使用、小ブロック・サイズ（例えば、Ｈ．２６４に対する４×４サブブロック）の存在、及び、動き補償に対するワード志向のメモリ・インターフェースはマクロブロックのレンダリングのために必要とされるサブブロックのフェッチ間に著しい空間的重なりを招来する。本発明の１つの態様では、小さなキャッシュが動き補間ハードウェアに接続される。キャッシュ・ラインは画像の１次元或いは２次元領域を保持するために構成されることが出来る。ほとんどの構成では、キャッシュそれ自体は画素の２次元領域を保持するために構成される。重なり合うブロックの間の空間的局所性は、多くの読出しが遥かに遅い外部メモリからではなく非常に速いキャッシュから来ることが出来るようにする、本発明の原理を使用して活用されることが出来る。
【００３５】
下記に説明されるキャッシュの適切な構成によれば、達成される画素毎のヒット率は非常に高くなることが出来る（複数の場合において、９５％を超える）。ヒット率が高い場合、キャッシュ・フィルに関連付けられるメモリ帯域幅は低い。従って、メモリ帯域幅を削減するという目的が処理される。本発明の原理を使用して実際の高速動画像試験クリップをシミュレートした期間中、帯域幅は７０％まで削減されることが示された。
【００３６】
従って、高いヒット率を達成する適切に構成されたキャッシュに対して、大多数のサブブロックはキャッシュから直接読まれることが出来る。この典型的な場合では、マクロブロック毎ベースのキャッシュ中への平均読込み帯域幅はマクロブロックそれ自体の画素数と同等である。この構成は、マクロブロックがサブブロックに分解される方法に対する、読込み帯域幅の感受性を緩和することが出来る。最悪の場合のモード（例えば、全て４×４サブブロック）と最良の場合のモード（例えば、単一の１６×１６マクロブロック）との間の帯域幅の相違を削減するという既述の利点は実現されることが可能である。シミュレーションは、実際の動画像試験クリップ上で帯域幅の相違の８０％以上の削減が達成されることが可能であることを示した。従って、設計者は問題になる圧縮標準で使用される全てのブロック・サイズに対して作用する１つのメモリ帯域幅制約を特定することが出来る。
【００３７】
下記に更に詳細に説明されるように、キャッシュそれ自体はワード整合性及び２の冪乗のバースト長を持つキャッシュ・ラインを含むことが出来る。該キャッシュ・ラインは、従って、キャッシュが使用されない場合の多くのシステムのために必要とされる非整合の奇数長の短いバーストと対比して、長いバーストの読み込みと整合されることができる。これ等のキャッシュ・フィルはＤＲＡＭの使用を効率的にする。
【００３８】
図６は本発明の一実施形態に従う具体例の処理システム６００のブロック図である。該処理システム６００は動画像再生を実行しそして動き予測補償を利用する事実上任意の型の処理装置を構成することが出来る。このような処理システム６００の１つの実例は、例えば、最新の携帯電話、ＰＤＡ、或いは、他の目的よりもとりわけ、動画アプリケーションを処理するために使用される同種のもの、のような携帯装置におけるチップセット若しくはプリント配線基板であることが出来る。様々な部品の具体的な構成は、本発明の範囲から逸脱することなく、位置と量において変わることが出来る、そして、図６の実装は性格上説明的になるように企図されている。プロセッサ６０２は移動体通信を受信および送信すること、或いは、音声を処理することのような機能を実行するために、様々な命令を変換しそして専用コードを走らせるための、ディジタル・シグナル・プロセッサ（digital signal processor）（ＤＳＰ）を含むことが出来る。他の実施形態において、１より多いＤＳＰが採用されることが出来る、或いは、汎用プロセッサまたは他の型のＣＰＵが使用されても良い。本実施形態においては、プロセッサ６０２はメモリ・バス・インターフェース６０８に接続されて、該プロセッサ６０２が処理システム６００の主メモリＲＡＭ６１０への読出しと書込みを実行することを可能にする。その上、１つの実施形態に従えば、プロセッサ６０２は動き補償回路構成６０４に接続される。該動き補償回路構成６０４は動き予測を実行するための１又は複数のマルチタップ・フィルタを含むことが出来る。更に、本明細書で説明される原理に従って動き補償ユニット６０４への必要な画素データの超高速転送を可能にするために、専用キャッシュ６０６が動き補償ハードウェア６０４に接続される。説明の簡明さと容易さのために、バッファ、ＦＩＦＯ、及び、ある実装においては存在することが出来る汎用目的のキャッシュ、のようなハードウェア・ブロックは本図から省かれていたことに注意。
【００３９】
動画像処理能力および３２ビットのメモリ・インターフェースを持つ移動体ユニットのような処理システムに関わる１つの例において、Ｈ．２６４或いは同様なＭＰＥＧ標準に基づく動き予測が実装される。本例においては、補間されるそれぞれの４×４サブブロックに対して、実際には１２×９画素の画素領域がフェッチされる。しかしながら、該１２×９画素領域は空費される画素を含まない。本発明のこの態様は、マクロブロックを集合的に構成する４×４サブブロックの集合が、該サブブロックの個々の動きベクトルによりオフセットされてはいても、空間的に密集する傾向がある、という事実を活用する。この様なものとして、それぞれのブロックに対する該１２×９画素領域が重なることは非常にあり得る。重なりの実際の量は先験的には判らない。しかしながら、１つの１６×１６マクロブロックを構成する複数の４×４サブブロック何れにも重なりが一切ないとするためには、該複数の４×４サブブロックは４８×３６画素領域に亘って広げられねばならない。それぞれのマクロブロックの複数の４×４サブブロックが同時にそして一貫してこの様な極端な様相で分布されることができる、ということは統計的にはありそうにもない。（これ等の原理は下記に更に詳細に説明される）。更に、動画像符号化器が複数のブロックをこんな風に分布させることは決してありそうにない、その理由は、多くの実施形態において、全ての異なる動きベクトルを符号化するために使用されなければならない数のビットが区別されて符号化されるからである。従って、サブブロックが全て異なる場合、大量のデータが動きベクトルを符号化するのに消費されねばならない。
【００４０】
本発明のこの態様によれば、余分なフェッチングと外部メモリからの不必要な読出しを除去するために、これ等の重なり領域を活用するキャッシングの機構が利用される。Ｈ．２６４標準に関連して提示されるけれども、本発明は動き補償予測を実行する任意の装置に等しく適用可能である。本明細書においてはＨ．２６４標準の説明が使用される、その理由は、Ｈ．２６４は、テレビ放送、次世代ＤＶＤ、移動体アプリケーション、及びその他の実装のために考案されているものであり、本発明の諸概念はそれぞれのアプリケーションに対して適用可能である、からである。
【００４１】
１つの実施形態では、メモリ・キャッシュは動画像動き補償ハードウェア・ブロックに接続され、該ハードウェア・ブロックは副画素補間を実行するために１又は複数のマルチタップ・フィルタを含むことが出来る。本実施形態におけるシステムは、制御インターフェース、座標からキャッシュ・アドレスへの変換器、キャッシュから物理アドレスへの変換器、キャッシュ・メモリ、メモリ・バス・インターフェース、ＦＩＦＯバッファのようなメモリ受信バッファ、及び、動き補償補間データパス、該データパスは動き補償回路に接続する、を含むことが出来る。
【００４２】
図７は本発明の一実施形態に従いキャッシュを動き補償回路構成に接続するための方法を示す流れ図である。該流れ図は動き予測を遂行するためにスクリーン上の画素に関連付けられる座標をフェッチするプロセスを説明する。段階７０２では、制御インターフェースが座標を受信する。該制御インターフェースは、受信するための、一時記憶するための、及び／又はデータをある領域から別の領域へ転送するための、様々な回路構成若しくはハードウェアを含むことが出来る。特に、制御インターフェースは、フレーム・バッファ・インデックス（即ち、フレーム・バッファ・メモリ中の位置に関する座標の所在を既述する情報）、動きベクトルＭＶＰ、マクロブロックのＸおよびＹアドレス、サブブロックのＸおよびＹアドレス、及び、ブロック・サイズ、を受信することが出来る。便宜上、諸パラメータのこの集合は２次元空間における“座標”アドレスと呼ばれる。使用される具体的な圧縮スキーム或いはコーデックに依存して、座標アドレスは変化する或いは異なる又はその他のパラメータを含むことが出来る。
【００４３】
座標からキャッシュ・アドレスへの変換器は次に制御インターフェースの情報を適切なタグ・アドレス及びキャッシュ・ライン番号に変換する（段階７０４）。アドレスをマッピングする多くの方法が、当業者には公知であるとして、この段階で使用されることが出来る。１つの実施形態では、座標アドレスをＸ及びＹ座標に変換するマッピングが使用され、該マッピングは該Ｘ及びＹ座標のサブフィールドを持つフレーム・バッファ・インデックスを連結してタグ・アドレス及びキャッシュ・ライン番号を形成する。
【００４４】
その後続いて、該タグ・アドレスは、段階７０６に示されるように、メモリ・キャッシュに関連付けられる１又は複数のタグＲＡＭへ送られることが出来る。該タグ・アドレスがタグ・メモリの何れかへのヒットを表す場合（判断分岐７０８）、キャッシュ・ラインからのデータがデータＲＡＭから読み出される（段階７２０）。次に、画素データは適切なデータ補間インターフェースを介して、動き補償回路構成に送られることが出来る（段階７２２）。
【００４５】
そうではなくて、該タグ・アドレスがキャッシュ・ミスという結果になる場合（判断分岐７０８）、標準的読出し要請がメモリ・バス・インターフェース上に発せられることが出来る。１つの実施形態において、キャッシュ・ミス標識を表すフラッグがセットされる（段階７１０）。次に、キャッシュから物理アドレスへの変換器はキャッシュ・アドレスを主メモリと関連付けられる物理アドレスに変換する（段階７１２）。次に主メモリからの読出しの要求が、段階７１４で説明されるように、メモリ制御器によって発せられる。適用可能な画素データが検索され、そして、動き補償回路構成に送られる（段階７１６）。更に、キャッシュ・ミスの場合、該キャッシュは、下記に更に説明される方法で、ＲＡＭから検索されるデータによって更新されることが出来る（段階７２３）。
【００４６】
図８は本発明の一実施形態に従いキャッシング装置を使用する具体例としての復号化方法の内部構成要素のブロック図である。図８はダイレクト・マップ・キャッシュの使用を想定するが、他の実施形態では、セット・アソシアティブ・キャッシュを含む、その他のキャッシュ構成を使用することが等しく妥当である。制御インターフェース回路構成８０２はメモリからキャッシュ・アドレスにフェッチされる座標を変換するためにキャッシュ・アドレス変換ロジック８０４に接続されることが出来る。替わって、キャッシュ・アドレス変換ロジック８０４はタグ・アドレスを記憶するためにキャッシュのタグＲＡＭ８０６に接続されることが出来る。タグＲＡＭ８０６はデータＲＡＭ８１２において利用可能なアドレスを表すデータを含有する。本実施形態におけるタグＲＡＭ８０６は通常のＦＩＦＯバッファのような、オプションのバッファ８０８に接続される。バッファ８０８は、１つの構成において、レイテンシを隠蔽するために使用され、その結果、多数のキャッシュ・ミスがシステムＲＡＭにペンディングになることが出来る。データＲＡＭ８１２は画素データを記憶する。物理アドレス変換ロジック８１０は、又、タグ・アドレス及びキャッシュ・ライン番号を主メモリ読出しのために主メモリ中の物理アドレスに変換するために存在する。該物理アドレスはメモリ・バス・インターフェース８１４に転送される。該インターフェース８１４はキャッシュ・ミスが起きた際に主メモリ８１６における読出しを実行する。その上、該キャッシュ・ラインはキャッシュ・ミスの結果として該システムＲＡＭから読み込まれるデータを用いて更新される。一定の実施形態において、新しいエントリーのための部屋を作るために、キャッシュは既存のエントリーを“追い出す”必要がある。追い出すべきエントリーを決めるために使用される特定の発見的手続きは“入れ替えポリシー”と呼ばれる。この段階は図７において段階７２３として包括的に示され、そして、明快のため、図８から省かれている。多様な入れ替えポリシーが可能である。複数の例は先入れ先出し（first-in-first out）（ＦＩＦＯ）、或いは、最も最近使われていない（least-recently used）（ＬＲＵ）を含む。
【００４７】
結局、キャッシュに関係付けられるデータＲＡＭ８１２からのデータ、或いは、システムＲＡＭ８１６からのデータ、何れか一方のデータが動き補償補間データパス８１８を介して動き予測回路構成８２０に送られる。キャッシュ・ミスの場合には少なくとも２つの読込みポリシーが可能である。１つの構成では、ミスされた読込みデータはキャッシュに送信され、そして、要求される画素が直ちに動き補償データパス８１８に転送される。もう１つの構成では、ミスされた読込みデータはキャッシュに送信され、そして、キャッシュのデータＲＡＭ８１２に書き込まれる。次に、該画素データはデータＲＡＭ８１２から読み出され、そして、動き補償データパスに送られる。該動き補償データパスでは無秩序にオフセットされた副画素値が小数値に変換される。
【００４８】
本明細書中で説明されるように、メモリ・キャッシュの動画像動き補償ハードウェア・ブロックへの接続は、サブブロックの変位の適切な補間および動きの適切な表現のために該ハードウェア・ブロックが必要とするサブブロックを、該ハードウェア・ブロックが迅速に検索することを可能にする。１つの実施形態では、ＹＣｂＣｒがＲＧＢ画素の代わりに使用される。更に別の実施形態では、該動き補償ハードウェアは、既存の動画像アプリケーションで使用される従来の双線形フィルタと比べてより多数のタップを有する複数のフィルタを具備する。使用されるタップが多いほど、該検索されたサブブロックの間に著しい重なりが存在する可能性が高くなる。
【００４９】
１つの実施形態において、キャッシュのデータ・メモリは不要なデータのフェッチを避けるために最適化される。具体的には、ある整数の数だけの画像マクロブロックを保持するような大きさにされたキャッシュ・メモリである。該データ・メモリはＮ／Ｌ個のキャッシュ・ラインを含むことが出来る、ここで、Ｎはキャッシュにおけるバイト数を表し、そして、Ｌは単一キャッシュ・ラインのバイト数を表す。説明として、キャッシュは６４×３２の画素のウィンドウを含むことが出来る、ここでＮ＝２Ｋバイト、及び、Ｌ＝３２バイトである。多くの実施形態では、Ｌはメモリ・バス・インターフェースのバースト長の倍数であるように選択される。１つのキャッシュ・ラインは２次元の画素領域を含むことが出来る。データ・メモリはデータ・メモリ・アドレス生成器からアドレスを受信することが出来る。その後続いて、該データ・メモリの出力は補間回路構成に送信されることが出来る。一般的なサイズはアプリケーション次第で変わり得る、しかし、複数の実施形態では３２バイトのキャッシュ・ラインから構成される総数１ＫＢ又は２ＫＢであることが出来る。キャッシュ・ラインは、８×４若しくは３２×１のように、１次元あるいは２次元の領域を保持することが出来る。
【００５０】
補間回路構成は水平および垂直フィルタリング・ロジックを含むことが出来る。上述で注意されたように１つの実施形態では、使用される該フィルタは２を超える数のタップを有する。該補間回路の出力は動き補償された予測子を表す。１つの具体例のフィルタはＨ．２６４標準で現在実施されている６−タップ・フィルタである。２を超える数のフィルタ・タップが使用される（即ち、双線形を超えるフィルタリングが実行される）これ等の構成では、著しい空間的重なりを持つサブブロックの再利用、及び、補間回路に接続される適切な大きさにされたキャッシュ、を考慮すると、本発明は最大のメモリ帯域幅の節約を実証することが出来る。
【００５１】
補間フィルタ長起因のサブブロック間の重なり
本項で我々はＨ．２６４標準に関連して動き補償される補間を明示する。上述で注意されたように、その他の動き補償を基にした標準は等しく好適であり、そして、本発明の原理はこれ等その他の標準にも等しく適用可能である。Ｈ２６４の６タップ・フィルタを使用する４×４ブロックの動き補償補間は９×９ブロックのフェッチを必要とする。１マクロブロックを構成する１６個の９×９ブロックは、それ等の個々の動きベクトルの大きさ及び方向に依存して、重なることが出来る。同じことが他の対象の形状（例えば、８×８、８×４等々）についても真である。最悪の場合、もし４×４／８×４／４×８／８×８のサブブロックの動きベクトルが最良の１６×１６の動きベクトルから＋／−Ｍ画素変位させられるならば、全てのサブブロックによって埋められる領域は高々（１６＋５＋２Ｍ）２画素を覆うことが出来るに過ぎない。
【００５２】
図９は具体例のＨ．２６４標準の指針に従いサブ・ブロック分布の最悪の場合を説明する画素領域を示す。斜線領域における１６個の正方形９０６は変位前のマクロブロックを構成する１６個の４×４ブロックの位置を図示する。１６個の正方形９０２は、重なりが存在しないように動かされた、４×４ブロックを図示し、出来る限り該複数の４×４ブロックを拡散させ、その結果それぞれのブロックに対するメモリ・フェッチにおける重なりがない。残りの周辺領域９０４は、このマクロブロックを復号するための補間フィルタを適切に適用するためにフェッチされなければならない追加の画素に対応する。Ｍ＝４の場合、この総画素領域は２９×２９を示す。
【００５３】
もしそれぞれのサブブロックが独立にフェッチされるならば、その時、マクロブロック毎にフェッチされる総画素数（ここではＰと呼ばれる）は固定され、そして、Ｍとは独立である。具体例の値が次の表にまとめられる。
【表１】
2008512967.tif 000003
【００５４】
従って、Ｍ＝４として先述の例を考えると、もし復号器が４×４のブロックを個々にフェッチするならば、たとえマクロブロックが単に２９×２９＝８４１画素の領域を覆うに過ぎないとしても、合計１２９６画素が読まれねばならない。この結果、該復号器は必要量の約５０％を超える画素数を読まねばならない、このことは貴重なメモリ帯域幅の浪費という結果を招く。
【００５５】
（１６＋５＋２Ｍ）２＜Ｐの条件を解くことは、サブブロックの重なりがどのような条件で起こらなければならないか、そして、そのような重なりが実際にどれだけの量存在するか、を設計者が決めることを可能にする。この２次方程式を解くと、重なりは下記の条件下で起こらなければならないことが示されることが出来る。
【００５６】
Ｍ＜（１／８）（４（Ｐ1/2）−８４）
それ以下では重なりが存在しなければならない最大の動きベクトルの大きさは下記の表にまとめられる。
【表２】
2008512967.tif 000004
【００５７】
例えば、４×４モードでは、該４×４サブブロックの個々の動きベクトルが＋／−Ｍ画素以下の任意の量だけ異なっていても、フェッチは重ならなければならない。もし該重なりが活用されない場合フェッチされる余分な画素の割合は下記の通りである。
【００５８】
１−（（（１６＋５＋２Ｍ）２）／Ｐ）
メモリ・バス幅起因のサブブロック間の重なり
次に、主メモリ・バスが実際上８バイト（３２ビットＤＤＲ）の場合の例が考察される。もし線形フレーム・バッファのフォーマットが使用されるならば、１つの実施形態において、フェッチされる画素の全水平スパンは８画素幅の倍数である。一般に、メモリへの道幅が広いほど、小ブロックの画素をフェッチすることが非効率的になる（即ち、フェッチ毎に浪費される画素数が多くなる）。最悪の場合、もし全てのサブブロックの動きベクトルが最良の１６×１６の動きベクトルから＋／−Ｍ画素変位させられるならば、該サブブロックによって埋められる総領域は（１６＋５＋２Ｍ）×（２８＋２Ｍ）に達する。もしそれぞれのサブブロックがこの筋書きで独立にフェッチされるならば、マクロブロック毎にフェッチされる総画素数（Ｐと呼ばれる）下記に示されるように増大する。
【表３】
2008512967.tif 000005
【００５９】
（１６＋５＋２Ｍ）×（２８＋２Ｍ）＜Ｐの条件を解くことは、サブブロックの重なりがどのような条件で起こらなければならないか、そして、重なりがどれだけの量存在するか、を設計者が決めることを可能にする。重なりは下記の場合常に起こらなければならないことが示されることが出来る。
【００６０】
Ｍ＜（１／８）（（１６Ｐ＋１９６）1/2−９８）
それ以下で重なりが存在しなければならない最大の動きベクトルの大きさは下記の表にまとめられる。
【表４】
2008512967.tif 000006
【００６１】
より広いメモリ・インターフェースの故に、フェッチ間のより多くの重なりが存在する可能性があることが、本実施形態において、注意されるべきである。更に、もし該重なりが活用されない場合、フェッチされる余分な画素の割合は単純に、１−（（１６＋５＋２Ｍ）×（２８＋２Ｍ）／Ｐ）である。
【００６２】
空間的に隣接するマクロブロック間の重なり
上述で注意されたように、具体例のＨ．２６４標準を利用する構成におけるフィルタ補間長さを考慮すると、及び、広いメモリ・バス・インターフェースの説明を考慮すると、それぞれのマクロブロックに対してフェッチされる画素の領域は（１６＋５＋２Ｍ）×（２８＋２Ｍ）である。零から８までのＭの変動は２８×２１から４４×３７まで変動する画素の長方形のウィンドウを示す。
【００６３】
１つの構成によるＶＧＡサイズの画像において、１２００個の１６×１６マクロブロックは６４０×４８０＝３０７，２００画素の領域を覆う。もしそれぞれのマクロブロックが最小サイズのフェッチ２８×２１画素を要求するならば、その時、総数１２００×２８×２１＝７０５，６００画素が画像ごとにフェッチされる。該画像は３０７，２００個の独立な画素を含むに過ぎないから、マクロブロックのフェッチが全て重ならないということは不可能である。実際、フェッチされる画素の半分より少し多くは余分であり、そして、２回フェッチされる（フレーム毎に７０５，６００−３０７，２００＝３９８，４００個の余分な画素のフェッチ）。
【００６４】
重なりの活用
従って、マクロブロック内部のサブブロックのフェッチはサブブロックの動きベクトル間のある最大デルタ値まで重なることが出来る。その上、重なりは、この構成においては、空間的に隣接するマクロブロックのフェッチ間に存在しなければならない。この重なりは、主に、（１）補間フィルタの使用、（２）多くのシステムに特徴的なより広いメモリ・バス幅、そして（３）近隣マクロブロックとの重なり、のためである。
【００６５】
キャッシュは、従って、メモリ中に局所性の存在を引き起こす標準が使用される全ての場合において、たとえ何処に該局所性が存在するかは正確には不明であっても（即ち、動きベクトルが復号されるまでは、フェッチが既に実行されたある先行フェッチと何処で関係するのかを決定することは出来ない）、動き補間ロジックと関連して使用するための有用な機構である。しかしながら、重なり合うサブブロックのために重なりを活用するシステムにとって、適切なキャッシュ・サイズはマクロブロックの期待される空間的広がり−例えば、（１６＋５＋２Ｍ）×（２８＋２Ｍ）輝度画素−に近似的に等しい、ということが合理的に仮定されることが出来る。Ｍを０から最大８まで変えることは、適切なキャッシュ・サイズが５１２バイトから２Ｋバイトまで及ぶことになるということを意味する。
【００６６】
開示された実施形態の先述の説明は当業者の誰もが本発明を作製する或いは利用することを可能にするために提供される。これ等の実施形態に対する様々な変更は当業者には容易に明白であり、そして、本明細書で定義される包括的な原理は本発明の精神と範囲を逸脱せずに他の実施形態に適用されることが出来る。かくして、本発明は、本明細書中で示される諸実施形態に限定されることを意図されるのではなく、本明細書中に開示された原理及び新規性と首尾一貫する最も広い範囲を認容されるべきである。
【図面の簡単な説明】
【００６７】
【図１】図１は動き補償のアルゴリズムの一部としてフェッチされる画素のグループの略図である。
【図２】図２は動き補償のアルゴリズムの一部としてフェッチされる画素のグループの別の略図である。
【図３】図３はＨ．２６４標準において使用される様々なマクロブロック分割領域の説明図である。
【図４】図４はＨ．２６４標準において使用される様々なマクロブロック副分割領域の説明図である。
【図５Ａ】図５ＡはＨ．２６４標準において使用される副画素補間の説明図を表す。
【図５Ｂ】図５ＢはＨ．２６４標準において使用される副画素補間の説明図を表す。
【図５Ｃ】図５ＣはＨ．２６４標準において使用される副画素補間の説明図を表す。
【図６】図６は本発明の一実施形態に従う処理システムのブロック図である。
【図７】図７は本発明の一実施形態に従いキャッシュを動き補償回路構成に接続するための方法を示す流れ図である。
【図８】図８は本発明の一実施形態に従いキャッシング装置を使用する具体例としての復号化方法の内部構成要素のブロック図である。
【図９】図９はＨ．２６４標準の指針に従いサブブロック分布の最悪の場合を説明する画素領域を示す。
【符号の説明】
【００６８】
１００…マトリクス、１０２…１回目のフェッチで読み出される４画素、１０４…２回目のフェッチで読み出される４画素、１０６…３回目のフェッチで読み出される４画素、１０８…１２×９長方形領域の９行、１１０…＋記号の画素、１１２…＊記号の画素、２０２…バス幅８バイトの場合の１回目のフェッチで読み出される画素、２０４…バス幅８バイトの場合の２回目のフェッチで読み出される画素、２０８…９×９ブロックの行、２１０…＋記号の画素、２１２…９×９ブロックの列、３００…１６×１６マクロブロック、３０２…１６×８マクロブロック、３０４…８×１６マクロブロック、３０６…８×８マクロブロック、４００…８×８サブブロック、４０２…８×４サブブロック、４０４…４×８サブブロック、４０６…４×４サブブロック、６００…処理システム、９０２…変位後のマクロブロックを構成する１６個の４×４ブロック、９０４…マクロブロック復号のためにフェッチされなければならない余分な画素に対応する周辺領域、９０６…変位前のマクロブロックを構成する１６個の４×４ブロック。
【図１】
2008512967.tif 000007
【図２】
2008512967.tif 000008
【図３】
2008512967.tif 000009
【図４】
2008512967.tif 000010
【図５Ａ】
2008512967.tif 000011
【図５Ｂ】
2008512967.tif 000012
【図５Ｃ】
2008512967.tif 000013
【図６】
2008512967.tif 000014
【図７】
2008512967.tif 000015
【図８】
2008512967.tif 000016
【図９】
2008512967.tif 000017
【国際調査報告】
2008512967.tif 000018
2008512967.tif 000019
2008512967.tif 000020
2008512967.tif 000021
2008512967.tif 000022
2008512967.tif 000023