(57)【要約】  ビデオデコーダ（５０）においてビデオデータ（ＥＮＣ（ＶＩ））を復号し、画像（ＶＯ）のシーケンスを再生成する方法が説明される。方法は、デコーダ（５０）を、データメモリ（６０）に結合された処理手段（７０）を含むように構成することを含む。さらに、方法は、（ａ）アンカーピクチャデータを含むビデオデータ（ＥＮＣ（ＶＩ））を受信および次いで記憶すること、（ｂ）ビデオデータを処理し、輝度およびクロミナンスブロックデータを生成すること、（ｃ）輝度およびクロミナンスデータを処理し、対応するマクロブロックデータ（１３０）を生成すること、および（ｄ）動き補償を適用し、マクロブロックデータ（１３０）および１つまたは複数のアンカーピクチャから、復号された画像（ＶＯ）のシーケンスを生成すること、を含む。方法は、画像（ＶＯ）のシーケンスを再構築するために使用されたマクロブロック（１３０）から導出された動きベクトルを分析し、マクロブロックが、これに応じてソートされ、１つまたは複数のアンカーピクチャからの１つまたは複数のビデオエリアのより効率的な伝送を、メモリ（６０）と処理手段（７０）の間で提供するように、補償を適用する。
2007524309.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデコーダにおいてビデオデータを復号し、対応する画像のシーケンスを再生成する方法であって、
（ａ）前記デコーダを、関連するメインデータメモリとデータキャッシュメモリとに結合された処理手段を含むように構成するステップと、
（ｂ）圧縮された形態のアンカーピクチャデータを含むビデオデータを、前記デコーダで受信し、前記データを前記メインメモリに記憶するステップと、
（ｃ）前記圧縮されたビデオデータを、前記処理手段において処理し、シーケンス内の画像間の動きの差を記述する動きベクトルを含む対応するマクロブロックデータを生成するステップと、
（ｄ）動き補償を、前記処理手段において適用し、前記マクロブロックデータおよび１つまたは複数のアンカーピクチャから、復号された画像の対応するシーケンスを生成するステップと、を含み、
画像のシーケンスを再構築するために使用されたマクロブロックから導出された動きベクトルを分析し、マクロブロックが、これに応じてソートされ、より効率的なデータ伝送を、前記メインメモリと前記処理手段の間で提供するように、前記動き補償を適用するように構成されている、ことを特長とする方法。
【請求項２】
前記処理手段と前記メモリの間で伝送されるマクロブロックの群が、１つまたは複数の前記画像における空間的に隣接するマクロブロックに対応する、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記画像のシーケンスは、少なくとも１つの初期基準画像を含み、前記初期基準画像から、後続の画像が、前記動きベクトルを使用した動き補償を適用することにより生成される、ことを特徴とする請求項１に記載の方法。
【請求項４】
１つまたは複数の前記画像が、前記メモリ内の１つまたは複数の対応するビデオオブジェクトプレーンに表され、前記１つまたは複数のプレーンは、コード化輪郭情報、動き情報およびテクスチャ情報の少なくとも１つに関するデータを含む、ことを特徴とする請求項３に記載の方法。
【請求項５】
前記ビデオオブジェクトプレーンは、前記処理手段内の前記動き補償によって、前記シーケンス内の１つまたは複数のより早い画像から１つまたは複数の後の画像までマッピングされた、１つまたは複数のビデオオブジェクトを含むように構成されている、ことを特徴とする請求項４に記載の方法。
【請求項６】
前記方法は、ステップ（ａ）において、データキャリアから、好ましくは光学読み取り可能および／または書き込み可能なデータキャリアから、および／またはデータ通信ネットワークから読み取られたビデオデータを受信するように構成されている、ことを特徴とする請求項１乃至請求項５のいずれかに記載の方法。
【請求項７】
前記方法は、１つまたは複数のブロックベースの画像補償スキーム、例えばＭＰＥＧ規格、に準拠するように構成されている、ことを特徴とする請求項１乃至請求項６のいずれかに記載の方法。
【請求項８】
ビデオデータを復号し、対応する画像のシーケンスを再生成するためのビデオデコーダであって、
（ａ）圧縮された形態のアンカーピクチャデータを含むビデオデータを、前記デコーダで取得し、前記データをメインメモリに記憶するための受信手段と、
（ｂ）処理手段であって、
（ｉ）前記圧縮されたビデオデータを処理し、シーケンス内の画像間の動きの差を記述する動きベクトルを含む対応するマクロブロックデータを生成し、
（ｉｉ）前記動きベクトルを使用した動き補償を適用し、前記マクロブロックデータおよび１つまたは複数のアンカーピクチャから、復号された画像の対応するシーケンスを生成する、
処理手段と、を含み、
画像のシーケンスを再構築するために使用されたマクロブロックから導出された動きベクトルを分析し、マクロブロックが、これに応じてソートされ、より効率的なデータ伝送を、前記メインメモリと前記処理手段の間で提供するように、前記動き補償を適用するように動作可能である、
ことを特徴とするビデオデコーダ。
【請求項９】
少なくとも１つの初期基準画像を含む画像のシーケンスを処理するように構成されており、前記初期基準画像から、後続の画像が、前記動きベクトルを使用した動き補償を適用することにより生成される、ことを特徴とする請求項８に記載のデコーダ。
【請求項１０】
１つまたは複数の前記画像が、前記メモリ内の１つまたは複数の対応するビデオオブジェクトプレーンにおいて表され、前記１つまたは複数のプレーンは、コード化輪郭情報、動き情報およびテクスチャ情報の少なくとも１つに関するデータを含む、ことを特徴とする請求項９に記載のデコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ復号の方法に関し、特に、しかし排他的にではなく、本発明は、ＭＰＥＧなどの最新の規格に準じて符号化された画像を復号するためのビデオ復号の方法に関する。さらに、本発明は、この復号の方法を実施するように構成された装置に関する。
【背景技術】
【０００２】
画像処理装置におけるデータメモリの効率的な構成が、知られている。このような装置は、一連の画像を処理するように動作可能であり、各画像はデータで表され、データはしばしば、非常に大きなサイズである。画像のシーケンスは、しばしば、符号化された形態で圧縮され、対応するデータが、データキャリア、例えばＤＶＤなどの光学的に読み取り可能な光学メモリディスクで記憶するために都合が悪い大きさとならないようにする。しかしながら、復号の使用は、符号化データを記憶および処理して、しばしば非常に大きな、例えば画像ごとに数Ｍバイトのデータとなる、対応する復号画像データを生成することを必要とする。このような画像データの一次記憶および処理は、このような装置の動作の重要な観点である。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
公開されている国際ＰＣＴ出願第ＰＣＴ／ＩＢ０２／０００４４号（ＷＯ０２／０５６６００）において、デバイスに１つのリードまたはライトコマンドが出されることに応じて、デバイスのいくつかのデータワードにアクセスするバーストアクセスモードで動作することが可能なメモリデバイスが記載されている。アクセスモードは、メモリデバイス内の非重複データ単位を表すデータのバーストを通信することを含み、デバイスは、そのロジック設計構造を原因として、全体としてのみアクセス可能である。データのリクエストが、しばしばいくつかのバイトのみを含み、リクエストは、デバイスの１データ単位よりも多くオーバーレイできるように構成されているため、デバイスは、大きな伝送オーバーヘッドをこうむる可能性がある。このオーバーヘッドを減少させるために、デバイスの論理メモリアドレスから物理メモリアドレスへの効果的なマッピングが、デバイスで使用される。効果的なマッピングは、デバイスが、ウィンドウとして知られる矩形のセットに分割されるロジックアレイを備えることを必要とし、各ウィンドウは、メモリデバイスの列に記憶される。記憶または受信されるデータブロックへのリクエストを所定の期間中に分析して、最適なウィンドウサイズが計算され、このような分析は、デバイスのメモリアドレス変換ユニットにて行なわれる。変換ユニットは、適切なメモリマッピングを生成するように動作可能である。メモリデバイスは、例えばＭＰＥＧ画像復号でのように、画像処理装置で使用することが可能である。
【０００４】
本発明者は、画像復号装置、例えばビデオ復号装置において、必要とされるメモリバンド幅を減少させることが大いに望ましいことを理解した。このようなバンド幅の減少は、例えば、手持ち式のミニチュア視聴装置や、より従来型のサイズの装置などの携帯型ビデオ表示機器において、電力消失を減少させることが可能である。このようなメモリバンド幅を減少させるために、本発明者は、ビデオ復号の方法を考案した。さらに、この方法に従い機能する装置が、本発明者によって考案された。
【０００５】
本発明の第１の目的は、処理機能に結合された少なくとも１つのメインメモリと、キャッシュメモリとを含み、少なくとも１つのメインメモリに対し、および／または少なくとも１つのメインメモリから、より効率的にデータバンド幅を使用する装置において、ビデオ画像データを復号する方法を提供することである。
【課題を解決するための手段】
【０００６】
本発明の第１の態様によると、ビデオデコーダにおいてビデオデータを復号し、対応する画像のシーケンスを再生成する方法が提供され、方法は、
（ａ）デコーダを、関連するメインデータメモリとデータキャッシュメモリとに結合された処理手段を含むように構成するステップと、
（ｂ）圧縮された形態のアンカーピクチャデータを含むビデオデータを、デコーダで受信し、データをメインメモリに記憶するステップと、
（ｃ）圧縮されたビデオデータを、処理手段において処理し、シーケンス内の画像間の動きの差を記述する動きベクトルを含む対応するマクロブロックデータを生成するステップと、
（ｄ）動き補償を、処理手段において適用し、マクロブロックデータおよび１つまたは複数のアンカーピクチャから、復号された画像の対応するシーケンスを生成するステップと、を含み、
方法は、画像のシーケンスを再構築するために使用されたマクロブロックから導出された動きベクトルを分析し、マクロブロックが、これに応じてソートされ、より効率的なデータ伝送を、メインメモリと処理手段の間で提供するように、動き補償を適用するように構成されている、ことを特長とする。
【０００７】
本発明は、メインメモリのデータバンド幅のより効率的な使用を可能とする点で有利である。
【０００８】
本発明をさらに明らかにするために、いくつかの背景をここで提供する。本発明の概念は、ソーティングプロセスで決定される、可能な限り多くのマクロブロックを、統一されたメモリ内の特定のビデオエリアにマッピングすることである。このエリアは、その後、メモリから検索され、その結果、関連するメモリバンド幅の効率的な使用をもたらす。このような検索データにより再構築することができるマクロブロックは、１つだけとなる、という状況が潜在的に生じ得る。復号可能なマクロブロックの数は、他の要因の中でも特に、検索可能な合計エリアサイズと、それらの予測された符号化ピクチャの特性に依存する。このエリアサイズは、例えばＭＰＥＧデコーダの内蔵メモリのサイズによって決定される。検索可能なエリアサイズは、常に一定ではなく、使用されるソーティングプロセスに依存する。検索されるサイズが、１つのマクロブロックだけである状況では、潜在的に、本発明によって提供される効率の向上はない。
【０００９】
好ましくは、復号方法において、画像のシーケンスは、少なくとも１つの初期基準画像を含み、初期基準画像から、後続の画像が、動きベクトルを使用した動き補償を適用することにより生成される。
【００１０】
好ましくは、復号方法において、処理手段とメモリの間で伝送されるマクロブロックの群が、１つまたは複数の画像における空間的に隣接するマクロブロックに対応する。背景として、図３は、４つの隣接マクロブロックがある状況を示しているが、これは、現実的に当てはまることは多くない。典型的な状況は、元のアンカーピクチャからのバウンドされたエリアを用いて、いくつかのマクロブロックを再構築することが可能なことである。形状は、これにより、矩形、方形または三角形にさえ生成することができる。本発明の先進的な実施は、データ転送レートを最小化するための最適な形状を探す。
【００１１】
好ましくは、復号方法において、１つまたは複数の画像が、メモリ内の１つまたは複数の対応するビデオオブジェクトプレーンに表され、前記１つまたは複数のプレーンは、コード化輪郭情報、動き情報およびテクスチャ情報の少なくとも１つに関するデータを含む。
【００１２】
好ましくは、復号方法において、ビデオオブジェクトプレーンは、前記処理手段内の前記動き補償によって、前記シーケンス内の１つまたは複数のより早い画像から１つまたは複数の後の画像までマッピングされた、１つまたは複数のビデオオブジェクトを含むように構成されている。
【００１３】
好ましくは、復号方法において、ステップ（ａ）は、データキャリア、好ましくは光学読み取り可能および／または書き込み可能なデータキャリア、および／またはデータ通信ネットワークから、ビデオデータを受信するように構成されている。
【００１４】
好ましくは、復号方法は、１つまたは複数のブロックベースの画像補償スキーム、例えばＭＰＥＧ規格、に準拠するように構成されている。
【００１５】
本発明の第２の態様によると、ビデオデータを復号し、対応する画像のシーケンスを再生成するためのビデオデコーダが提供され、デコーダは、
（ａ）圧縮された形態のアンカーピクチャデータを含むビデオデータを、デコーダで取得し、データをメインメモリに記憶するための受信手段と、
（ｂ）処理手段であって、
（ｉ）圧縮されたビデオデータを処理し、シーケンス内の画像間の動きの差を記述する動きベクトルを含む対応するマクロブロックデータを生成し、
（ｉｉ）動きベクトルを使用した動き補償を適用し、マクロブロックデータおよび１つまたは複数のアンカーピクチャから、復号された画像の対応するシーケンスを生成する、
処理手段と、を含み、
デコーダは、画像のシーケンスを再構築するために使用されたマクロブロックから導出された動きベクトルを分析し、マクロブロックが、これに応じてソートされ、より効率的なデータ伝送を、メインメモリと処理手段の間で提供するように、動き補償を適用するように動作可能である、ことを特徴とする。
【００１６】
好ましくは、デコーダは、少なくとも１つの初期基準画像を含む画像のシーケンスを処理するように構成されており、初期基準画像から、後続の画像が、動きベクトルを使用した動き補償を適用することにより生成される。
【００１７】
好ましくは、デコーダは、動作において、マクロブロックの群を、処理手段とメモリの間で転送するように構成されており、この群は、１つまたは複数の画像において空間的に隣接するマクロブロックに対応する。
【００１８】
好ましくは、デコーダにおいて、１つまたは複数の画像が、メモリ内の１つまたは複数の対応するビデオオブジェクトプレーンにおいて表され、前記１つまたは複数のプレーンは、コード化輪郭情報、動き情報およびテクスチャ情報の少なくとも１つに関するデータを含む。より好ましくは、デコーダは、１つまたは複数のビデオオブジェクトを含むように構成されたビデオオブジェクトプレーンを処理するように構成されており、ビデオオブジェクトは、前記動き補償によって、シーケンス内のより早い画像から後の画像にマッピングされる。
【００１９】
好ましくは、デコーダにおいて、受信手段は、データキャリア、例えば読み取り可能および／または書き込み可能な光学データキャリア、およびデータ通信ネットワークの少なくとも１つからビデオデータを読み取るように構成されている。
【００２０】
好ましくは、デコーダは、１つまたは複数のブロックベースの補償スキーム、例えばＭＰＥＧ規格、に準拠するように構成されている。
【００２１】
本発明の機能は、添付の特許請求の範囲に定義されるような本発明の範囲から逸脱することなく、任意の組み合わせによって組み合わせることが可能であることを理解すべきである。
【発明を実施するための最良の形態】
【００２２】
本発明の実施形態を、これより、単なる例として、添付の図面を参考にして説明する。
【００２３】
最新のビデオデコーダ、例えばＭＰＥＧ−４などの最新のＭＰＥＧ規格に準じて符号化された画像を復号するように構成されたビデオデコーダは、符号化画像が受信された順番に基づいて圧縮ビデオデータを復号するように動作可能である。このようなアプローチは、一般的に、メモリ記憶の必要条件を減少させ、かつ使用されるデコーダの比較的簡素な設計を可能にすることが望ましい。その上、最新のビデオデコーダは、しばしば統一されたメモリ、例えば、メモリアービターと共に、スタティックダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）を使用する。従来から、予測画像の再構築は、データのマクロブロックの操作に基づいている。このようなマクロブロックを処理する際、ｎを正の整数とするｎ×ｎピクセルに対応するメモリから画像エリアを検索することが通例である。
【００２４】
本発明者は、このような画像エリアの検索は、メモリ内でのデータの処理に起因して、画像復号の目的で実際に要求されるよりも多くのデータが、メモリから頻繁に読み出されるため、非効率的なプロセスであることを理解した。
【００２５】
本発明は、メモリから検索されるマクロブロックの順番を変え、データ検索の効率を上げることにより、このような非効率性を解決し、これにより、例えばＭＰＥＧ符号化入力データのリアルタイムな画像復号を達成するために必要なメモリバンド幅性能を減少させようと努める。本発明者によって考案された解決策では、予測的にコード化された復号されるべき各画像のマクロブロックを、ソートすることにより、メモリから読み取られるデータブロックが、アンカーピクチャの１つまたは複数のマクロブロックを含むようにし、マクロブロックは、メモリからさらにデータを読むことなく復号することができる。その上、本発明者は、このようなソーティングが、好ましくは動きベクトル分析に基づいて行なわれることを理解した。
【００２６】
本発明をさらに説明するために、これより、ＭＰＥＧ符号化を概略的に説明する。
【００２７】
ＭＰＥＧ、すなわち“Moving Picture Experts Group”は、デジタル圧縮フォーマットの音声−映像情報をコード化するための国際規格に関するものである。ＭＰＥＧファミリの規格は、ＭＰＥＧ−１、ＭＰＥＧ−２およびＭＰＥＧ−４を含み、公式にはそれぞれＩＳＯ／ＩＥＣ−１１１７２、ＩＳＯ／ＩＥＣ−１３８１８およびＩＳＯ／ＩＥＣ−１４４９６として知られている。
【００２８】
ＭＰＥＧ−４規格において、ＭＰＥＧエンコーダは、画像シーケンスを対応するビデオオブジェクトプレーン（ＶＯＰ）にマッピングするように動作可能であり、ＶＯＰは、次いで符号化され、対応する出力ＭＰＥＧ符号化ビデオデータが提供される。各ＶＯＰは、特定の画像シーケンス内容を指定し、例えば輪郭、動きおよびテクスチャ情報をコード化することによって、個別のＶＯＬ層にコード化される。ＭＰＥＧデコーダ内の全てのＶＯＰ層を復号すると、結果として対応する元の画像シーケンスが再構築される。
【００２９】
ＭＰＥＧエンコーダでは、符号化されるべき画像入力データは、例えば、任意の形状のＶＯＰ画像エリアとすることができ、さらに、エリアの形状およびその位置は、画像フレームごとに変わり得る。画像フレームに現れる同じ物理オブジェクトに属する、連続するＶＯＰは、ビデオオブジェクト（ＶＯ：Video Object）と呼ばれる。同じＶＯに属するＶＯＰの形状、動きおよびテクスチャ情報は、個別のＶＯＰに符号化および送信またはコード化される。加えて、ＶＯＬのそれぞれ、および様々なＶＯＬがＭＰＥＧデコーダで合成されて画像フレームの元のシーケンス全体を再構築するやり方、を識別するために必要な関連情報も、ＭＰＥＧエンコーダによって生成される符号化データのビットストリームに含まれる。
【００３０】
ＭＰＥＧ符号化において、各ＶＯＰに対する形状、動きおよびテクスチャに関する情報は、個別のＶＯＬ層にコード化され、その後のＶＯの復号をサポートする。より具体的には、ＭＰＥＧ−４ビデオ符号化においては、ＶＯＬ層のそれぞれにおいて形状、動きおよびテクスチャ情報をコード化するための同一のアルゴリズムが使用される。
【００３１】
ＭＰＥＧ−４規格は、各ＶＯＰ画像シーケンスをコード化するための圧縮アルゴリズムを使用し、圧縮アルゴリズムは、ＭＰＥＧ−１およびＭＰＥＧ−２コード化規格で用いられるブロックベースのＤＰＣＭ／Ｔｒａｎｓｆｏｒｍコード化技術に基づく。ＭＰＥＧ−４規格では、第１のＶＯＰが、イントラフレームＶＯＰコード化モード（Ｉ−ＶＯＰ）で符号化される。各後続フレームは、インターフレームＶＯＰ予測（Ｐ−ＶＯＰ）を用いてコード化され、ここでは、先にコード化された最も近いＶＯＰフレームからのデータのみが、予測のために使用される。加えて、後により詳細に説明するように、双方向予測ＶＯＰ（Ｂ−ＶＯＰ）のコード化もサポートされる。
【００３２】
まず図１を参照すると、１０で概略的に表されるエンコーダ−デコーダシステムが示されている。システム１０は、関連するビデオバッファ（ＭＥＭ）３０に結合されたデータプロセッサ（ＰＲＣ）４０を含むエンコーダ（ＥＮＣ）２０を備える。さらに、システム１０は、関連するメインビデオバッファメモリ６０と第１のキャッシュメモリ８０とに結合されたデータプロセッサ（ＰＲＣ）７０を含むデコーダ（ＤＥＣ）５０も備える。
【００３３】
符号化されるべきビデオ画像ＶＩの入力シーケンスに対応する信号が、プロセッサ４０に結合される。エンコーダ２０によって生成された入力信号ＶＩの符号化バージョンに対応する符号化ビデオデータＥＮＣ（ＶＩ）は、デコーダ５０のプロセッサ７０の入力に結合される。さらに、デコーダ５０のプロセッサ７０は、符号化ビデオデータＥＮＣ（ＶＩ）の復号バージョンが動作において出力される出力ＶＯも備える。
【００３４】
ここで図２を参照すると、ＩピクチャＶＯＰ（Ｉ−ＶＯＰ）で開始し、ＫＯで表されるコード化順番に従うビデオシーケンス内の後続のＰピクチャＶＯＰ（Ｐ−ＶＯＰ）を含む、一連のビデオオブジェクトプレーン（ＶＯＰ）、が示されており、一連のＶＯＰは、概略的に１００で示されており、例とするフレームは、１１０で表されている。一連のＶＯＰ１００は、図１の信号ＶＩに対応している。ＩピクチャおよびＰピクチャの両方が、アンカーピクチャとして機能することができる。先に説明された最新のＭＰＥＧ規格では、各Ｐ−ＶＯＰが、これに最も近い先のＰ−ＶＯＰフレームに基づく動き補償予測を用いて符号化される。各フレーム、例えばフレーム１２０は、マクロブロック、例えば１３０で表されるマクロブロックにサブ分割される。フレーム１２０内の各マクロブロック１３０が符号化されると、輝度および共に配置されるクロミナンス帯域、すなわちＹ１，Ｙ２，Ｙ３，Ｙ４で表される４つの輝度ブロックおよびＵ，Ｖで表される２つのクロミナンスブロックに関する、マクロブロックのデータに関係する情報が、符号化され、各ブロックは、８×８ｐｅｌに対応しており、ここで“ｐｅｌ”は、“ｐｉｘｅｌ  ｅｌｅｍｅｎｔ”の略語である。
【００３５】
エンコーダ２０において、動き評価および補償が、ブロックまたはマクロブロックベースで行なわれ、１つのみの動きベクトルが、符号化されるべき特定のブロックまたはマクロブロックに対してＶＯＰフレームＮとＶＯＰフレームＮ−１の間で評価される。動き補償された予測誤差は、ＶＯＰフレームＮに属するブロックまたはマクロブロック、および先のＶＯＰフレームＮ−１内の動きシフトされた対応部分において、各ｐｅｌを減算することによって計算される。次いで、８×８要素の離散コサイン変換（ＤＣＴ：discrete cosine transform）が、次いで、各ブロックまたはマクロブロックに含まれる８×８ブロックのそれぞれに適用され、これに続いて、ＤＣＴ係数が、後の可変ランレングスコード化およびエントロピーコード化（ＶＬＣ）により量子化される。ビデオバッファ、例えばビデオバッファ３０を使用して、一定の標的ビットレート出力がエンコーダ２０によって生成されることを確実にすることが、通例である。ＤＣＴ係数の量子化ステップサイズは、好ましいビットレートを達成するため、かつバッファオーバーフローおよびアンダーフローを避けるために、ＶＯＰフレームの各マクロブロックに対して調整可能である。
【００３６】
ＭＰＥＧ復号において、デコーダ５０は、例えばエンコーダ２０内で実行されたＭＰＥＧ符号化方法に関する先の段落に述べられたものと逆のプロセスを使用する。従って、デコーダ５０は、ＶＯＰフレームＭのマクロブロックを再生成することが可能である。デコーダ５０は、入力されるＭＰＥＧ符号化ビデオデータを記憶するメインビデオバッファ６０メモリを含み、このデータは、２ステージの構文解析（parsing）プロセス、すなわち符号化ビデオデータＥＮＣ（ＶＩ）から復号されたマクロブロックの間の相関関係を分析して、マクロブロックソーティング方針を決定するための第１の構文解析ステージと、メインメモリ６０から、そのバンド幅を最善に使用するために好適にソートされた順番でマクロブロックを読み出す第２の構文解析ステージと、にかけられる。第１のステージでは、可変長ワードが復号されてピクセル値が生成され、ピクセル値から予測誤差を再構築することができる。デコーダ５０が動作中の場合、デコーダ５０のＶＯＰフレーム記憶部、すなわちビデオバッファ６０、に含まれる先のＶＯＰフレームＭ−１からの動き補償されたピクセルが、予測誤差に加えられて、その後にフレームＭのマクロブロックを再構築する。デコーダ５０のビデオバッファ６０および／またはデコーダ５０のＶＯＰフレーム記憶部へのアクセスが、本発明が特に考慮するものであり、これは後により詳細に説明する。
【００３７】
一般的に、各ＶＯＰ層にコード化される入力画像は、任意の形状であり、画像の形状および位置は、基準ウィンドウに関連して時間と共に変化する。任意の形状のＶＯＰ内の形状、動きおよびテクスチャ情報を、コード化するために、ＭＰＥＧ−４は、“ＶＯＰ画像ウィンドウ”を、“形状適合可能な”マクロブロックグリッドと共に使用する。ブロックマッチング手順が、標準マクロブロックに用いられる。予測コードは、予測に使用されるマクロブロック動きベクトルと共にコード化される。
【００３８】
デコーダ５０での復号の間、アンカーピクチャ、すなわち例えば前述のＩ−ＶＯＰに対応するピクチャ、ＭＰＥＧ復号の間に検索されたピクセルの量が、予想マクロブロックの対応エリアに対応する。検索されたピクセルは、例えばＰ−ＶＯＰに対応する予測ピクチャ内の対応するマクロブロックに関連付けられた、動きベクトルに依存する。従って、検索されたピクセルは、予想ピクチャ内のマクロブロックに関連する動きベクトルに依存する。その結果、ビデオデータの検索、特にマクロブロックエリアに限定される１マクロブロックなどの小さなエリアサイズは、結果として、バッファ６０の非効率的なメモリバンド幅の使用をもたらし、これは、本発明が解決しようと努めるものである。
【００３９】
このような非効率的なメモリ使用を明らかにするために、次に図３を説明する。符号化ビデオ画像ＶＩのシーケンス内の画像ピクチャフレームＮに対応する、２００で表されたアンカーピクチャが示されている。さらに、後続の画像ピクチャフレームＮ＋１に対応する、２１０で表された後続の画像フレームＮ＋１が示されている。ピクチャフレームのそれぞれにおいて、マクロブロックが、ＭＢ１からＭＢ１６までの番号を付して示されている。例として、マクロブロックＭＢ６に補助される予測ピクチャ２１０（Ｎ＋１）内のマクロブロックＭＢ１は、アンカーピクチャ２００（Ｎ）から導出可能である。図３からは、予想ピクチャ２１０の周囲のマクロブロックＭＢ２、ＭＢ５、ＭＢ６が、アンカーピクチャ２００のマクロブロックＭＢ７，ＭＢ１０，ＭＢ１１の補助によって補償されることが理解される。本発明者は、ＭＰＥＧ互換のデコーダにおいて、対応する画像を視聴のために再構築する前に、ピクチャ２１０に関連するマクロブロックを評価することによって、最初に予測動きベクトルを分析するように構成された方法を使用することが有利であることを理解した。このような方法は、ＭＰＥＧビデオデコーダが、ビデオバッファ６０から単一の動作でビデオエリア全体をフェッチすることを可能にし、これは、比較的小さな量のデータに対してロジックメモリで実施されるビデオバッファに繰り返しアクセスする際に、より効率的であり、これによりバッファ６０のバンド幅をより効率的に使用する。さらに、ＳＤＲＡＭからのデータのバースト長が、このようなバースト長の非最適値が、リクエストされていないデータの検索をもたらし、よって非効率的なメモリバンド幅の使用をもたらす、という点での役割も果たす。
【００４０】
デコーダ５０においてデコードされるべき予測コード化されたピクチャのマクロブロックＭＢは、ビデオバッファから読まれたデータブロックが、例えば画像フレーム１００Ｎからの、アンカーピクチャの１つまたは複数のマクロブロックＭＢを含むように、好ましくソートされ、これらの少なくとも２つのマクロブロックは、前述のビデオバッファ６０からさらにデータを読み取ることなく復号することが可能である。その上、データブロック内の１つまたは複数のマクロブロックは、図２に示されるような画像のシーケンスで生じる変化の動きベクトル分析に基づいて、好ましく選択またはソートされる。本発明の実践的な実施形態は、うまく再構築することができるマクロブロックの数に応じて、可変ブロックサイズを、好ましく使用する。最大のブロックサイズに関する上位の数があり、これは、ＭＰＥＧデコーダの内蔵メモリ容量に依存する。
【００４１】
デコーダ５０の実践的な実施形態を、これより図４を参照して説明する。デコーダ５０は、デコーダ制御ユニット（ＤＥＣ−ＣＮＴＬ）３２０を備える。符号化信号ＥＮＣ（ＶＩ）は、ＦＩＦＯとして実施される入力ビデオバッファ（ＶＢ０）３３５に結合される。このようなバッファは、ＦＩＦＯ、およびブロックソーティング目的のランダムアクセスメモリの２重のやり方で機能することができる。バッファＶＢ０  ３３５のデータ出力は、可変長復号機能（ＶＬＤ）３４０を介して、逆量子化機能（ＩＱ）３５０に接続され、そこからさらに、逆離散コサイン変換機能（ＩＤＣＴ：inverse discrete cosine transform function）３６０に接続され、これに加算器（＋）３７０が続き、前述の復号ビデオ出力（ＶＯ）を提供する。可変長復号機能ＶＬＤ３４０、逆量子化機能ＩＱ３５０およびＩＤＣＴ機能３６０は、制御目的で、制御ユニットＤＥＣ−ＣＮＴＬ３２０に結合される。
【００４２】
ＶＬＤ機能３４０は、すなわちＤＥＣ−ＣＮＴＬ３２０に供給されるスライスサイズ、ライン毎ピクセル、ｐｅｌサイズおよび類似の情報を示すバイトベースのヘッダなどのハイレベル層情報を検索する第１のモード、および可変長復号を提供する第２のモード、の２重の動作を有する。
【００４３】
加算器３７０は、動き補償器（Ｍ−ＣＯＭＰ）３８５からデータを受信するようにも構成されており、補償器３８５は、図１のメモリ６０に対応する、出力ＶＯに結合されるメモリ（ＭＥＭ）３９０からデータキャッシュ３８０を介してデータを供給される。補償器Ｍ−ＣＯＭＰ３８５は、図示されるように、制御を目的として制御機能ＤＥＣ−ＣＮＴＬ３２０に結合されている。さらに、補償器３８５は、可変長復号機能ＶＬＤ３４０からデータを受信するようにも構成されており、マクロブロックが正しいシーケンスで加算器３７０に出力されるように構成されている。復号機能ＶＬＤ３４０は、ソーティング機能（ＳＲＴ）４１０に、およびその後に第２のバッファ（ＢＦ２）４２０に、第１のバッファ（ＢＦ１）４００を介してデータを出力するようにも構成されている。第２のバッファＢＦ２  ４２０からの出力データは、検索方針機能（ＲＥＴ−ＳＴＲＡＴ）４３０を通して渡され、検索方針機能４３０は、ルックアップテーブル制御機能（ＬＵＴ−ＣＮＴＬ）４６０に方針データを出力するように動作可能であり、ルックアップテーブル制御機能４６０は、ルックアップテーブルユニット（ＬＵＴ）４７０に結合されている。ＬＵＴ４７０は、動的に更新され、メモリＭＥＭ３９０内の対応するアドレスへのマクロブロックアドレス／（数）のマッピングを提供する。ＬＵＴ制御機能４６０からの出力は、ビデオバッファ制御機能（ＶＢ−ＣＮＴＬ）４５０に結合され、ビデオバッファ制御機能４５０は、一方で、ビデオバッファＶＢ０  ３３５を通るデータフローを制御するように動作可能である。制御機能ＣＮＴＬ３２０は、ソーティング機能４１０に接続され、その動作を管理する。デコーダ５０は、１つまたは複数のコンピューティングデバイスで実行可能なソフトウェアで実施することが可能である。あるいは、これはハードウェア、例えば、特定用途向け集積回路（ＡＳＩＣ：application specific integrated circuit）、で実施することもできる。加えて、デコーダ５０は、ソフトウェア制御下で動作するコンピューティングデバイスと組み合わせた専用ハードウェアの混合で実施することも可能である。
【００４４】
図４に描かれているデコーダ５０の動作を、これより、概略的に簡単に説明する。バッファＶＢ０  ３３５からのビデオデータの検索は、よりメモリ効率の高いシーケンスでマクロブロックを出力するために、２重のやり方、すなわち、マクロブロック分析の第１のモードと、マクロブロックソーティングの第２のモードで実施される。
【００４５】
第１のモードでは、全ての予測動きベクトル（ＰＭＶ：Predicted Motion Vector）をフィルタ除去するために、バッファＶＢ０  ３３５が、ＦＩＦＯ読み取り方針に従って読み取られ、この方針では、マクロブロックの開始位置を決定するために、読み取りアドレスが利用可能である。ビデオローディングの間に、マクロブロック番号、ＰＭＶ、処理されるＰＭＶの数、サブピクセル復号および他の関連パラメータなどの関連情報が、第１のバッファＢＦ１  ４００を介してソーティング機能ＳＲＴ４１０に渡される。ソーティング機能ＳＲＴ４１０にて受信されるデータが、マクロブロック検索方針において使用され、例えば、図１〜図３を参照して先に明らかにしたようなブロック読み出しのやり方で、復号ビデオデータＥＮＣ（ＶＩ）内のアンカーピクチャの特定エリアが検索される際に、いくつのマクロブロックを同時に復号できるかを決定する。ＬＵＴ制御機能ＬＵＴ−ＣＮＴＬ４６０は、動的に更新され、対応するマクロブロック（アドレス）／数の補助により、マクロブロック開始アドレスの決定に使用される。ＰＭＶ抽出を実行する際に、マクロブロック開始アドレスが決定され、ＬＵＴユニット４７０で記憶される。動き補償器Ｍ−ＣＯＭＰ３８０は、方針機能４３０によって提供される情報に基づいて、要求される再構築ビデオ情報を検索するように動作可能である。
【００４６】
デコーダ５０において、ＭＰＥＧ可変長コード化（ＶＬＣ）が適合され、その理由は、このような符号化が、データ圧縮を提供することが可能だからである。動作する際、デコーダ５０は、入力データＥＮＣ（ＶＩ）のハイレベル層から開始し、例えばＭＰＥＧヘッダ情報を抽出し、次いで、マクロブロック層に進む。ＰＭＶは、予測符号化マクロブロックの一部であり、かつ、可変長符号化されている。ＭＰＥＧエンコーダＥＮＣ２０において、動き予測により得られた予測マクロブロックとオリジナルのマクロブロックとの減算後に、通常は、減算の後の差に対応する残留誤差信号がある。この残留誤差信号は、符号化され、符号化データＥＮＣ（ＶＩ）内で伝送される。エンコーダＥＮＣ２０で実施される処理ステップは、８×８ピクセルＤＣＴブロックの群を、周波数領域に変換するためのものである。このような周波数領域への変換後に、変換量子化が、個別の周波数成分を減らすために適用される。その結果が、次いで、ジグザグまたは代替スキャンによって、ランレベルコードワードにコード化変換される。デコーダ５０において、逆の処理が適用され、再度、８×８ピクセルＤＣＴブロックデータが再生成される。ＰＭＶデータによって決定されたアンカーピクチャから検索されたこのデータマクロブロックデータを用いて、対応する１つまたは複数の最終の再構築マクロブロックが生成される。
【００４７】
デコーダ５０において、受信されたＭＰＥＧデータが、図４のリンク５００に示されるようにＤＥＣ−ＣＮＴＬ３２０に記憶された第１の抽出ヘッダデータによって処理される。このような情報を使用して、個別に各マクロブロックが、制御およびソーティングされ、画像スライスは、１つまたは複数のマクロブロックを備える。より低いレベルで個別のマクロブロックを処理する場合は、以下の説明が、デコーダ５０の動作の概略を提供する。表１は、デコーダ５０で実行されるマクロブロック処理コマンドのシーケンスを提供し、シーケンスは、より詳細に連続して説明される。
【表１】
2007524309.tif 000003
【００４８】
ｍａｃｒｏｂｌｏｃｋ＿ｅｓｃａｐｅサブルーチンコールにおいて、ｍａｃｒｏｂｌｏｃｋ＿ｅｓｃａｐｅは、固定ビットストリング‘０００  ０００１  ０００’であり、これは、ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓとｐｒｅｖｉｏｕｓ＿ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓの差が３３より大きい場合に使用される。これは、ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓ＿ｉｎｃｒｅｍｅｎｔの値を、後続のｍａｃｒｏｂｌｏｃｋ＿ｅｓｃａｐｅおよびｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓ＿ｉｎｃｒｅｍｅｎｔコードワードによって復号される値よりも３３大きいものにする。
【００４９】
ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓ＿ｉｎｃｒｅｍｅｎｔサブルーチンコールにおいては、ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓ＿ｉｎｃｒｅｍｅｎｔは、可変長コード化整数であり、これは、ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓとｐｒｅｖｉｏｕｓ＿ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓとの差を示すためにコード化されている。ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓ＿ｉｎｃｒｅｍｅｎｔの最大値は、３３である。３３よりも大きい値は、ｍａｃｒｏｂｌｏｃｋ＿ｅｓｃａｐｅコードワードを用いて符号化可能である。ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓは、画像内の最上のｍａｃｒｏｂｌｏｃｋのｍａｃｒｏｂｏｃｋ＿ａｄｄｒｅｓｓがゼロとなるような、現在のマクロブロックの絶対位置を定義する変数である。さらに、ｐｒｅｖｉｏｕｓ＿ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓは、後により詳細に述べるように、画像スライスの開始時を除いた、最後のスキップされていないマクロブロックの絶対位置を定義する変数である。スライスの開始時に、変数ｐｒｅｖｉｏｕｓ＿ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓは、次のように式１（Ｅｑ．１）でリセットされる。
ｐｒｅｖｉｏｕｓ＿ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓ＝（ｍｂ＿ｒｏｗ＊ｍｂ＿ｗｉｄｔｈ）−１    Ｅｑ．１
【００５０】
さらに、画像内のマクロブロックのマクロブロックユニットにおける水平の空間的位置、すなわちｍｂ＿ｃｏｌｕｍｎは、式２（Ｅｑ．２）より、ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓから計算可能である。
ｍｂ＿ｃｏｌｕｍｎ＝ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓ％ｍｂ＿ｗｉｄｔｈ    Ｅｑ．２
ここで、ｍｂ＿ｗｉｄｔｈは、信号ＥＮＣ（ＶＩ）内で符号化された画像の１列内のマクロブロックの数である。
【００５１】
スライスの開始時を除いて、ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓの値が、ｐｒｅｖｉｏｕｓ＿ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓから２以上修復された場合、いくつかのマクロブロックが、スキップされている。従って、次のことが必要条件となる。
（ａ）ｐｉｃｔｕｒｅ＿ｓｐａｔｉａｌ＿ｓｃａｌａｂｌｅ＿ｅｘｔｅｎｓｉｏｎ（）が、現在のピクチャのｐｉｃｔｕｒｅ＿ｈｅａｄｅｒ（）に続く、またはｓｅｑｕｅｎｃｅ＿ｓｃａｌａｂｌｅ＿ｅｘｔｅｎｓｉｏｎ（）が、処理されているビットストリーム内に存在し、かつｓｃａｌａｂｌｅ＿ｍｏｄｅ＝‘ＳＮＲスケーラビリティ’である、いずれかの場合を除いて、Ｉピクチャ内に、スキップされたマクロブロックがない。
（ｂ）スライスの最初および最後のマクロブロックが、スキップされていない。
（ｃ）Ｂピクチャにおいて、ｍａｃｒｏｂｌｏｃｋ＿ｉｎｔｒａが値‘１’を有するマクロブロックの直後にスキップされたマクロブロックがない。
【００５２】
信号ＥＮＣ（ＶＩ）の復号において、デコーダ５０は、マクロブロックモードの概念も使用し、このようなモードに関して表２に提供されるような命令シーケンスを実行するように動作可能である。
【表２】
2007524309.tif 000004
【００５３】
マクロブロックモードにおいて、サブルーチンコールｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅは、ｐｉｃｔｕｒｅ＿ｃｏｄｉｎｇ＿ｔｙｐｅおよびｓｃａｌａｂｌｅ＿ｍｏｄｅによって選択されたコード化の方法およびマクロブロックの内容を示す、可変長コード化インジケータに関するものである。マクロブロックがソートされた復号には、表２および表３のみが関係する。表２は、信号ＥＮＣ（ＶＩ）内のＰピクチャ内のｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅに対する可変長コードに関係し、一方で表３は、信号ＥＮＣ（ＶＩ）内のＢピクチャ内のｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅに対する可変長コードに関係する。
【表３】
2007524309.tif 000005
ここで、キャプションＣ３．１〜３．９は、以下の通りである。
Ｃ３．１＝ｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅ  ＶＬＣコード  Ｃ３．２＝ｍａｃｒｏｂｌｏｃｋ＿ｑｕａｎｔ
Ｃ３．３＝ｍａｃｒｏｂｌｏｃｋ＿ｍｏｔｉｏｎ＿ｆｏｒｗａｒｄ  Ｃ３．４＝ｍａｃｒｏｂｌｏｃｋ＿ｍｏｔｉｏｎ＿ｂａｃｋｗａｒｄ
Ｃ３．５＝ｍａｃｒｏｂｌｏｃｋ＿ｐａｔｔｅｒｎ  Ｃ３．６＝ｍａｃｒｏｂｌｏｃｋ＿ｉｎｔｒａ
Ｃ３．７＝ｓｐａｔｉａｌ＿ｔｅｍｐｏｒａｌ＿ｗｅｉｇｈｔ＿ｃｏｄｅ＿ｆｌａｇ  Ｃ３．８＝説明（言葉での）
Ｃ３．９＝許可されたｓｐａｔｉａｌ＿ｔｅｍｐｏｒａｌ＿ｗｅｉｇｈｔ＿ｃｌａｓｓｅｓ
【表４】
2007524309.tif 000006
ここで、キャプションＣ４．１〜Ｃ４．９は、以下の意味を有する。
Ｃ４．１＝ｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅ  ＶＬＣコード  Ｃ４．２＝ｍａｃｒｏｂｌｏｃｋ＿ｑｕａｎｔ
Ｃ４．３＝ｍａｃｒｏｂｌｏｃｋ＿ｍｏｔｉｏｎ＿ｆｏｒｗａｒｄ  Ｃ４．４＝ｍａｃｒｏｂｌｏｃｋ＿ｍｏｔｉｏｎ＿ｂａｃｋｗａｒｄ
Ｃ４．５＝ｍａｃｒｏｂｌｏｃｋ＿ｐａｔｔｅｒｎ  Ｃ４．６＝ｍａｃｒｏｂｌｏｃｋ＿ｉｎｔｒａ
Ｃ４．７＝ｓｐａｔｉａｌ＿ｔｅｍｐｏｒａｌ＿ｗｅｉｇｈｔ＿ｃｏｄｅ＿ｆｌａｇ  Ｃ４．８＝説明（言葉での）
Ｃ４．９＝許可されたｓｐａｔｉａｌ＿ｔｅｍｐｏｒａｌ＿ｗｅｉｇｈｔ＿ｃｌａｓｓｅｓ
【００５４】
表３および表４で使用される用語の定義を、これより提供する。Ｍａｃｒｏｂｌｏｃｋ＿ｑｕａｎｔは、ｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅから導出された変数に関するものである。これは、ｓｐａｔｉａｌ＿ｔｅｍｐｏｒａｌ＿ｗｅｉｇｈｔ＿ｃｏｄｅが、デコーダ５０内で処理されているビットストリームに存在するかどうかを示す。Ｍａｃｒｏｂｌｏｃｋ＿ｍｏｔｉｏｎ＿ｆｏｒｗａｒｄは、表３および表４に従ってｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅから導出された変数に関するものであり、この変数は、ビットストリームシンタックスに影響を与えるフラグとして機能し、デコーダ５０での復号に使用される。Ｍａｃｒｏｂｌｏｃｋ＿ｍｏｔｉｏｎ＿ｂａｃｋｗａｒｄは、表３および表４に従ってｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅから得られた変数に関するものであり、フラグとして機能するこの変数は、ビットストリームシンタックスに影響を与え、デコーダ５０での復号に使用される。Ｍａｃｒｏｂｌｏｃｋ＿ｐａｔｔｅｒｎは、表３、表４に従ってｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅから導出されるフラグであり、これは、値１に設定され、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎ（）が、処理されているビットストリームに存在することを示す。Ｍａｃｒｏｂｌｏｃｋ＿ｉｎｔｒａは、表３、表４に従ってｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅから導出されるフラグである。このフラグは、ビットストリームシンタックスに影響を与え、デコーダ５０内の復号プロセスによって使用される。
【００５５】
Ｓｐａｔｉａｌ＿ｔｅｍｐｏｒａｌ＿ｗｅｉｇｈｔ＿ｃｏｄｅ＿ｆｌａｇは、ｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅから導出されるフラグであり、このフラグは、デコーダ５０で処理されているビットストリームに、ｓｐａｔｉａｌ＿ｔｅｍｐｏｒａｌ＿ｗｅｉｇｈｔ＿ｃｏｄｅが存在するかどうかを示すものである。ｓｐａｔｉａｌ＿ｔｅｍｐｏｒａｌ＿ｗｅｉｇｈｔ＿ｃｏｄｅ＿ｆｌａｇは、値‘０’に設定され、ｓｐａｔｉａｌ＿ｔｅｍｐｏｒａｌ＿ｗｅｉｇｈｔ＿ｃｏｄｅがビットストリームに存在しないことを示し、次いで、ｓｐａｔｉａｌ＿ｔｅｍｐｏｒａｌ＿ｗｅｉｇｈｔ＿ｃｌａｓｓが導出されることを可能にする。逆に、ｓｐａｔｉａｌ＿ｔｅｍｐｏｒａｌ＿ｗｅｉｇｈｔ＿ｃｏｄｅ＿ｆｌａｇは、値‘１’に設定され、ｓｐａｔｉａｌ＿ｔｅｍｐｏｒａｌ＿ｗｅｉｇｈｔ＿ｃｏｄｅがビットストリームに存在することを示し、再び、ｓｐａｔｉａｌ＿ｔｅｍｐｏｒａｌ＿ｗｅｉｇｈｔ＿ｃｌａｓｓが導出されることを可能にする。Ｓｐａｔｉａｌ＿ｔｅｍｐｏｒａｌ＿ｗｅｉｇｈｔ＿ｃｏｄｅは、２ビットコードであり、空間的スケーラビリティの場合、どのように空間的および一時的な予測が組み合わされて、所与のマクロブロックの予想を提供するかを示すものである。
【００５６】
Ｆｒａｍｅ＿ｍｏｔｉｏｎ＿ｔｙｐｅは、マクロブロック予測タイプを示す２ビットコードである。従って、ｆｒａｍｅ＿ｐｒｅｄ＿ｆｒａｍｅ＿ｄｃｔが、値‘１’と等しい場合、ｆｒａｍｅ＿ｍｏｔｉｏｎ＿ｔｙｐｅが、ビットストリームから省略される。このような状況では、ｆｒａｍｅ＿ｍｏｔｉｏｎタイプが“フレームベースの予測”を示したかのように、動きベクトルの復号および予測が行なわれる。ｃｏｎｃｅａｌｍｅｎｔ＿ｍｏｔｉｏｎ＿ｖｅｃｔｏｒｓが値‘１’に設定された際に、イントラマクロブロックがフレームピクチャに存在するような状況では、ｆｒａｍｅ＿ｍｏｔｉｏｎ＿ｔｙｐｅは、ビットストリームに存在しない。この場合、ｆｒａｍｅ＿ｍｏｔｉｏｎ＿ｔｙｐｅが“フレームベース”を示したかのように、動きベクトル予測値の動きベクトル復号および更新が行なわれる。表５は、ｆｒａｍｅ＿ｍｏｔｉｏｎ＿ｔｙｐｅの意味をさらに明らかにする。
【表５】
2007524309.tif 000007
【００５７】
Ｆｉｅｌｄ＿ｍｏｔｉｏｎ＿ｔｙｐｅは、マクロブロック予測タイプを示す２ビットコードである。例えばフィールドピクチャにおける、イントラマクロブロックのケースでは、ｃｏｎｃｅａｌｍｅｎｔ＿ｍｏｔｉｏｎ＿ｖｅｃｔｏｒｓが、値‘１’に等しい場合、ｆｉｅｌｄ＿ｍｏｔｉｏｎ＿ｔｙｐｅは、デコーダ５０内で復号されるべきビットストリームに存在しない。このような状況では、ｆｉｅｌｄ＿ｍｏｔｉｏｎ＿ｔｙｐｅが“フィールドベース”を示したかのように、動きベクトル復号および更新が実行される。表６は、ｆｉｅｌｄ＿ｍｏｔｉｏｎ＿ｔｙｐｅの意味を、さらに明らかにする。
【表６】
2007524309.tif 000008
【００５８】
ｄｃｔ＿ｔｙｐｅは、所与のマクロブロックが、フレーム離散コサイン変換（ＤＣＴ）コード化またはフィールドＤＣＴコード化されているかどうかを示すフラグである。このフラグが、値‘１’に設定されると、マクロブロックは、フィールドＤＣＴコード化される。ｄｃｔ＿ｔｙｐｅが、処理されるべきビットストリームに存在しない状況では、デコーダ５０内の復号プロセスの残りで使用されるｄｃｔ＿ｔｙｐｅの値が、表７から導出される。
【表７】
2007524309.tif 000009
【００５９】
従って、デコーダ５０は、それぞれ１つまたは２つの動きベクトルを持つことができ、かつフィールドまたはフレームベースのいずれかで符号化されているマクロブロックを処理するように構成される。その結果、Ｐ型マクロブロックは、以下のスキームに従って符号化可能である。
（ａ）Ｐ型ピクチャが、フレームベースである場合、マクロブロックは、１つの前方ベクトル（forward vector）を持つことができる。
（ｂ）Ｐ型ピクチャが、フィールドベースである場合、マクロブロックは、所与のフィールドの最上部または最下部のいずれかを参照する１つの前方ベクトルを持つことができる。
（ｃ）Ｐ型ピクチャが、フレームベースである場合、マクロブロックは、２つの前方ベクトルを持つことができ、２つのベクトルの１つ目は、所与のフィールドの最上部を参照し、２つのベクトルの２つ目は、所与のフィールドの最下部を参照する。
【００６０】
さらに、Ｂ型マクロブロックは、以下のスキームに従って符号化可能である。
（ａ）Ｂ型ピクチャがフレームベースである場合、マクロブロックは、１つの前方ベクトル、１つの後方ベクトル（backward vector）、後方および前方ベクトル、のうちの１つを、全てフレーム予測において、持つことができる。
（ｂ）Ｂ型ピクチャがフレームベースである場合、マクロブロックは、２つの前方ベクトル、２つの後方ベクトル、４つのベクトル（前方および後方）、のうちの１つを、全て個別の最上および最下フィールドによるフィールド予測において、持つことができる。
（ｃ）Ｂ型ピクチャがフィールドベースである場合、マクロブロックは、１つの前方ベクトル、１つの後方ベクトル、２つのベクトル（前方および後方）、のうちの１つを、全てフィールド予測において、持つことができる。
【００６１】
デコーダ５０で処理されるマクロブロックと関連する動きベクトルに対して、変数ｍｏｔｉｏｎ＿ｖｅｃｔｏｒ＿ｃｏｕｎｔが、ｆｉｅｌｄ＿ｍｏｔｉｏｎ＿ｔｙｐｅまたはｆｒａｍｅ＿ｍｏｔｉｏｎ＿ｔｙｐｅから導出される。さらに、変数ｍｖ＿ｆｏｒｍａｔがｆｉｅｌｄ＿ｍｏｔｉｏｎ＿ｔｙｐｅまたはｆｒａｍｅ＿ｍｏｔｉｏｎ＿ｔｙｐｅから導出され、所与の動きベクトルが、フィールド動きベクトルまたはフレーム動きベクトルであるかを示すために使用される。その上、ｍｖ＿ｆｏｒｍａｔは、動きベクトルのシンタックス、および動きベクトル予測の処理において使用される。ｄｍｖは、ｆｉｅｌｄ＿ｍｏｔｉｏｎ＿ｔｙｐｅまたはｆｒａｍｅ＿ｍｏｔｉｏｎ＿ｔｙｐｅから導出される。さらに、ｍｏｔｉｏｎ＿ｖｅｒｔｉｃａｌ＿ｆｉｅｌｄ＿ｓｅｌｅｃｔ［ｒ］［ｓ］は、どの基準フィールドを用いて予測を形成するかを示すためのフラグである。ｍｏｔｉｏｎ＿ｖｅｒｔｉｃａｌ＿ｆｉｅｌｄ＿ｓｅｌｅｃｔ［ｒ］［ｓ］が、値‘０’を有する場合、最上の基準フィールドが使用される。逆に、ｍｏｔｉｏｎ＿ｖｅｒｔｉｃａｌ＿ｆｉｅｌｄ＿ｓｅｌｅｃｔ［ｒ］［ｓ］が値‘１’を有する場合、最下の基準フィールドが、表９に提供されるように使用される。
【００６２】
表８は、動きベクトルをパラメータｓで処理するためにデコーダ５０内で使用されるアルゴリズムの一覧を提供する。
【表８】
2007524309.tif 000010
【００６３】
同様に、表９は、動きベクトルをパラメータｒ，ｓで処理するためにデコーダ５０内で使用されるアルゴリズムの一覧を提供する。
【表９】
2007524309.tif 000011
【００６４】
表８、表９において、ｍｏｔｉｏｎ＿ｃｏｄｅ［ｒ］［ｓ］［ｔ］は、デコーダ５０での動きベクトル復号で使用される可変長コードである。さらに、ｍｏｔｉｏｎ＿ｒｅｓｉｄｕａｌ［ｒ］［ｓ］［ｔ］は、整数であり、デコーダ５０での動きベクトル復号でも使用される。さらに、ｍｏｔｉｏｎ＿ｒｅｓｉｄｕａｌ［ｒ］［ｓ］［ｔ］向けのビットストリーム内のビットの数、すなわちパラメータｒ＿ｓｉｚｅは、ｆ＿ｃｏｄｅ［ｓ］［ｔ］から、式３（Ｅｑ．３）のように導出される。
ｒ＿ｓｉｚｅ＝ｆ＿ｃｏｄｅ［ｓ］［ｔ］−１    Ｅｑ．３
【００６５】
ｍｏｔｉｏｎ＿ｒｅｓｉｄｕａｌ［０］［ｓ］［ｔ］およびｍｏｔｉｏｎ＿ｒｅｓｉｄｕａｌ［１］［ｓ］［ｔ］の両方のビットの数は、ｆ＿ｃｏｄｅ［ｓ］［ｔ］で示される。加えて、ｄｍｖｅｃｔｏｒ［１］は、デコーダ５０内での動きベクトル復号に使用される可変長コードである。
【００６６】
デコーダ５０の実施形態が図４に示され、式１〜３および表１〜９を用いて明らかにされたが、本発明に係るデコーダ５０を実施する他のアプローチも可能である。従って、上に説明された本発明の実施形態は、本発明の範囲から逸脱することなしに、例えば添付の特許請求の範囲に定義されるように、修正可能であることが理解されるべきである。
【００６７】
“備える”、“含む”、“含有する”、“組み込む”、“持つ”、“である”などの表現は、非排他的に解釈されることを意図しており、すなわちこれらは、提示されている他の特定されない部品またはアイテムを排除しない。
【図面の簡単な説明】
【００６８】
【図１】図１は、エンコーダおよびデコーダを備えるシステムの概略図であり、デコーダは、本発明に従ってビデオ画像を復号するように動作可能である。
【図２】図２は、最新のＭＰＥＧ符号化方法において使用されるビデオオブジェクトプレーンの生成の例図である。
【図３】図３は、本発明の方法に従い、メモリ内の画像を表すマクロブロックを認識する方法の概略図である。
【図４】図４は、図１のデコーダの実践的な実施形態である。
【図１】
2007524309.tif 000012
【図２】
2007524309.tif 000013
【図３】
2007524309.tif 000014
【図４】
2007524309.tif 000015
【国際調査報告】
2007524309.tif 000016
2007524309.tif 000017
2007524309.tif 000018