(57)【特許請求の範囲】
【請求項１】
ビデオデータをコーディングする方法であって、前記方法はビデオデコーディングデバイスが実行し、
第１の参照ピクチャリストと第２の参照ピクチャリストとを記憶することと、前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとは同一であり、
前記第１の参照ピクチャリスト中の参照ピクチャからの第１の動きベクトルと前記第２の参照ピクチャリスト中の参照ピクチャからの第２の動きベクトルとを用いる双方向予測を使用して、一般化Ｐ／Ｂ（ＧＰＢ）フレームに指定されたビデオフレームのビデオブロックをコーディングすることと、
前記ビデオブロックのための前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングすることと、
を備え、
前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングすることは、隣接ビデオブロックの動きベクトルから生成された第１の動き予測子を使用して前記第１の動きベクトルをコーディングすることと、第２の動き予測子として前記第１の動きベクトルを使用して前記第２の動きベクトルをコーディングすることとを備え、
前記第１の動き予測子を生成するために使用される前記隣接ビデオブロックの前記動きベクトルは、前記第１の参照ピクチャリスト中の参照ピクチャをさし示し、前記第１の動き予測子は、前記第２の参照ピクチャリスト中の前記参照ピクチャから生成される、
方法。
【請求項２】
前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングすることは、前記第１の動きベクトルと前記第２の動きベクトルとが同じ参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングすることを備える、請求項１に記載の方法。
【請求項３】
前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングすることは、前記第１の動きベクトルと前記第２の動きベクトルとが実質的に類似する参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングすることを備える、請求項１に記載の方法。
【請求項４】
隣接ビデオブロックの１つまたは複数の候補動きベクトルから前記第１の動きベクトルのための前記第１の動き予測子を生成することと、
前記第１の動きベクトルを含む１つまたは複数の候補動きベクトルから前記第２の動きベクトルのための前記第２の動き予測子を生成することと、
をさらに備える、請求項１に記載の方法。
【請求項５】
前記第１の動きベクトルと前記第２の動きベクトルとが異なる参照ピクチャをさし示すとき、前記第２の動きベクトルのための前記第２の動き予測子として前記第１の動きベクトルを使用する前に、前記第１の動きベクトルによってさし示された前記参照ピクチャと前記第２の動きベクトルによってさし示された前記参照ピクチャとの間の時間距離に従って前記第１の動きベクトルをスケーリングすることをさらに備える、請求項１に記載の方法。
【請求項６】
前記第１の動きベクトルをコーディングすることは、前記第１の動きベクトルと前記第１の動き予測子との間の差を示すように定義された第１のシンタックス要素をコーディングすることと、前記第１の動き予測子が生成された前記参照ピクチャの前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとのうちの１つの中のインデックスを示すように定義された第２のシンタックス要素をコーディングすることと、を備え、
前記第２の動きベクトルをコーディングすることは、前記第２の動きベクトルと前記第１の動きベクトルとの間の差をコーディングすることを備える、請求項１に記載の方法。
【請求項７】
前記隣接ビデオブロックの前記動きベクトルが前記第１の参照ピクチャリストから利用可能でないとき、前記第２の参照ピクチャリスト中の前記参照ピクチャから前記第１の動き予測子を生成することをさらに備える、請求項１に記載の方法。
【請求項８】
前記第１の参照ピクチャリスト中の前記参照ピクチャからの前記動きベクトルを用いる単方向予測モードを使用して前記隣接ビデオブロックをコーディングすることと、
前記第１の参照ピクチャリストと前記第２の参照ピクチャリストの両方に前記動きベクトルについてのデータを記憶することと、
をさらに備える、請求項１に記載の方法。
【請求項９】
第１の参照ピクチャリストと第２の参照ピクチャリストとを記憶するメモリと、前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとは同一であり、
前記第１の参照ピクチャリスト中の参照ピクチャからの第１の動きベクトルと前記第２の参照ピクチャリスト中の参照ピクチャからの第２の動きベクトルとを用いる双方向予測を使用して、一般化Ｐ／Ｂ（ＧＰＢ）フレームに指定されたビデオフレームのビデオブロックをコーディングし、前記ビデオブロックのための前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングするプロセッサと、
を備え、
前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングすることは、隣接ビデオブロックの動きベクトルから生成された第１の動き予測子を使用して前記第１の動きベクトルをコーディングすることと、第２の動き予測子として前記第１の動きベクトルを使用して前記第２の動きベクトルをコーディングすることとを備え、
前記第１の動き予測子を生成するために使用される前記隣接ビデオブロックの前記動きベクトルは、前記第１の参照ピクチャリスト中の参照ピクチャをさし示し、前記第１の動き予測子は、前記第２の参照ピクチャリスト中の前記参照ピクチャから生成される、ビデオコーディングデバイス。
【請求項１０】
前記プロセッサは、前記第１の動きベクトルと前記第２の動きベクトルとが同じ参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングする、請求項９に記載のビデオコーディングデバイス。
【請求項１１】
前記プロセッサは、前記第１の動きベクトルと前記第２の動きベクトルとが実質的に類似する参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングする、請求項９に記載のビデオコーディングデバイス。
【請求項１２】
前記プロセッサは、
隣接ビデオブロックの１つまたは複数の候補動きベクトルから前記第１の動きベクトルのための前記第１の動き予測子を生成し、
前記第１の動きベクトルを含む１つまたは複数の候補動きベクトルから前記第２の動きベクトルのための前記第２の動き予測子を生成する、
請求項９に記載のビデオコーディングデバイス。
【請求項１３】
前記第１の動きベクトルと前記第２の動きベクトルとが異なる参照ピクチャをさし示すとき、前記プロセッサは、前記第２の動きベクトルのための前記第２の動き予測子として前記第１の動きベクトルを使用する前に、前記第１の動きベクトルによってさし示された前記参照ピクチャと前記第２の動きベクトルによってさし示された前記参照ピクチャとの間の時間距離に従って前記第１の動きベクトルをスケーリングする、請求項９に記載のビデオコーディングデバイス。
【請求項１４】
前記プロセッサは、
前記第１の動きベクトルと前記第１の動き予測子との間の差を示すように定義された第１のシンタックス要素として前記第１の動きベクトルをコーディングし、前記第１の動き予測子が生成された前記参照ピクチャの前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとのうちの１つの中のインデックスを示すように定義された第２のシンタックス要素をコーディングし、
前記第２の動きベクトルと前記第１の動きベクトルとの間の差として前記第２の動きベクトルをコーディングする、
請求項９に記載のビデオコーディングデバイス。
【請求項１５】
前記プロセッサは、前記隣接ビデオブロックの前記動きベクトルが前記第１の参照ピクチャリストから利用可能でないとき、前記第２の参照ピクチャリスト中の前記参照ピクチャから前記第１の動き予測子を生成する、請求項９に記載のビデオコーディングデバイス。
【請求項１６】
前記プロセッサは、
前記第１の参照ピクチャリスト中の前記参照ピクチャからの前記動きベクトルを用いる単方向予測モードを使用して前記隣接ビデオブロックをコーディングし、
前記第１の参照ピクチャリストと前記第２の参照ピクチャリストの両方に前記動きベクトルについてのデータを記憶する、
請求項９に記載のビデオコーディングデバイス。
【請求項１７】
第１の参照ピクチャリストと第２の参照ピクチャリストとを記憶する手段と、前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとは同一であり、
前記第１の参照ピクチャリスト中の参照ピクチャからの第１の動きベクトルと前記第２の参照ピクチャリスト中の参照ピクチャからの第２の動きベクトルとを用いる双方向予測モードを使用して、一般化Ｐ／Ｂ（ＧＰＢ）フレームに指定されたビデオフレームのビデオブロックをコーディングする手段と、
前記ビデオブロックのための前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングする手段と、
を備え、
前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングする手段は、隣接ビデオブロックの動きベクトルから生成された第１の動き予測子を使用して前記第１の動きベクトルをコーディングする手段と、第２の動き予測子として前記第１の動きベクトルを使用して前記第２の動きベクトルをコーディングする手段と、を備え、
前記第１の動き予測子を生成するために使用される前記隣接ビデオブロックの前記動きベクトルは、前記第１の参照ピクチャリスト中の参照ピクチャをさし示し、前記第１の動き予測子は、前記第２の参照ピクチャリスト中の前記参照ピクチャから生成される、ビデオコーディングデバイス。
【請求項１８】
前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングする手段は、前記第１の動きベクトルと前記第２の動きベクトルとが同じ参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングする手段を備える、請求項１７に記載のビデオコーディングデバイス。
【請求項１９】
前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングする手段は、前記第１の動きベクトルと前記第２の動きベクトルとが実質的に類似する参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングする手段を備える、請求項１７に記載のビデオコーディングデバイス。
【請求項２０】
隣接ビデオブロックの１つまたは複数の候補動きベクトルから前記第１の動きベクトルのための前記第１の動き予測子を生成する手段と、
前記第１の動きベクトルを含む１つまたは複数の候補動きベクトルから前記第２の動きベクトルのための前記第２の動き予測子を生成する手段と、
をさらに備える、請求項１７に記載のビデオコーディングデバイス。
【請求項２１】
前記第１の動きベクトルと前記第２の動きベクトルとが異なる参照ピクチャをさし示すとき、前記第２の動きベクトルのための前記第２の動き予測子として前記第１の動きベクトルを使用する前に、前記第１の動きベクトルによってさし示された前記参照ピクチャと前記第２の動きベクトルによってさし示された前記参照ピクチャとの間の時間距離に従って前記第１の動きベクトルをスケーリングする手段をさらに備える、請求項１７に記載のビデオコーディングデバイス。
【請求項２２】
前記第１の動きベクトルと前記第１の動き予測子との間の差を示すように定義された第１のシンタックス要素として前記第１の動きベクトルをコーディングし、前記第１の動き予測子が生成された前記参照ピクチャの前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとのうちの１つの中のインデックスを示すように定義された第２のシンタックス要素をコーディングする手段と、
前記第２の動きベクトルと前記第１の動きベクトルとの間の差として前記第２の動きベクトルをコーディングする手段と、
をさらに備える、請求項１７に記載のビデオコーディングデバイス。
【請求項２３】
前記隣接ビデオブロックの前記動きベクトルが前記第１の参照ピクチャリストから利用可能でないとき、前記第２の参照ピクチャリスト中の前記参照ピクチャから前記第１の動き予測子を生成する手段をさらに備える、請求項１７に記載のビデオコーディングデバイス。
【請求項２４】
前記第１の参照ピクチャリスト中の前記参照ピクチャからの前記動きベクトルを用いる単方向予測モードを使用して前記隣接ビデオブロックをコーディングする手段と、
前記第１の参照ピクチャリストと前記第２の参照ピクチャリストの両方に前記動きベクトルについてのデータを記憶する手段と、
をさらに備える、請求項１７に記載のビデオコーディングデバイス。
【請求項２５】
プロセッサ中で実行されると、前記プロセッサに、
第１の参照ピクチャリストと第２の参照ピクチャリストとを記憶させ、前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとは同一であり、
前記第１の参照ピクチャリストからの第１の動きベクトルと前記第２の参照ピクチャリストからの第２の動きベクトルとを用いる双方向予測を使用して、一般化Ｐ／Ｂ（ＧＰＢ）フレームに指定されたビデオフレームのビデオブロックをコーディングさせ、
前記ビデオブロックのための前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングさせる
ビデオデータをコーディングするための命令を備える、コンピュータ可読記憶媒体であって、
前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングすることは、隣接ビデオブロックの動きベクトルから生成された第１の動き予測子を使用して前記第１の動きベクトルをコーディングすることと、第２の動き予測子として前記第１の動きベクトルを使用して前記第２の動きベクトルをコーディングすることとを備え、
前記第１の動き予測子を生成するために使用される前記隣接ビデオブロックの前記動きベクトルは、前記第１の参照ピクチャリスト中の参照ピクチャをさし示し、前記第１の動き予測子は、前記第２の参照ピクチャリスト中の前記参照ピクチャから生成される、コンピュータ可読記憶媒体。
【請求項２６】
前記命令は、前記プロセッサに、前記第１の動きベクトルと前記第２の動きベクトルとが同じ参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングさせる、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項２７】
前記命令は、前記プロセッサに、前記第１の動きベクトルと前記第２の動きベクトルとが実質的に類似する参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングさせる、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項２８】
前記プロセッサに、
隣接ビデオブロックの１つまたは複数の候補動きベクトルから前記第１の動きベクトルのための前記第１の動き予測子を生成させ、
前記第１の動きベクトルを含む１つまたは複数の候補動きベクトルから前記第２の動きベクトルのための前記第２の動き予測子を生成させる、
命令をさらに備える、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記第１の動きベクトルと前記第２の動きベクトルとが異なる参照ピクチャをさし示すとき、前記プロセッサに、前記第２の動きベクトルのための前記第２の動き予測子として前記第１の動きベクトルを使用する前に、前記第１の動きベクトルによってさし示された前記参照ピクチャと前記第２の動きベクトルによってさし示された前記参照ピクチャとの間の時間距離に従って前記第１の動きベクトルを前記プロセッサにスケーリングさせる命令をさらに備える、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記命令は、前記プロセッサに、
前記第１の動きベクトルと前記第１の動き予測子との間の差を示すように定義された第１のシンタックス要素として前記第１の動きベクトルをコーディングさせ、前記第１の動き予測子が生成された前記参照ピクチャの前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとのうちの１つの中のインデックスを示すように定義された第２のシンタックス要素をコーディングさせ、
前記第２の動きベクトルと前記第１の動きベクトルとの間の差として前記第２の動きベクトルをコーディングさせる、
請求項２５に記載のコンピュータ可読記憶媒体。
【請求項３１】
前記プロセッサに、前記隣接ビデオブロックの前記動きベクトルが前記第１の参照ピクチャリストから利用可能でないとき、前記第２の参照ピクチャリスト中の前記参照ピクチャから前記第１の動き予測子を生成させる命令をさらに備える、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項３２】
前記プロセッサに、
前記第１の参照ピクチャリスト中の前記参照ピクチャからの前記動きベクトルを用いる単方向予測モードを使用して前記隣接ビデオブロックをコーディングさせ、
前記第１の参照ピクチャリストと前記第２の参照ピクチャリストの両方に前記動きベクトルについてのデータを記憶させる
命令をさらに備える、請求項２５に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオコーディングに関し、より詳細には、ビデオインターコーディング技法に関する。
【背景技術】
【０００２】
[0002]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、または新生の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
【０００３】
[0003]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を実行する。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスがビデオブロックまたはコーディングユニット（ＣＵ：coding unit）に区分され得る。イントラコード化（Ｉ）フレームまたはスライス中のビデオブロックは、近隣ブロックに関する空間的予測を使用して符号化される。インターコード化（ＰまたはＢ）フレームまたはスライス中のビデオブロックは、同じフレームまたはスライス中の近隣ブロックに関する空間的予測、あるいは他の参照ピクチャに関する時間的予測を使用し得る。双方向予測（Ｂ）フレーム中のビデオブロックは、従来、過去のピクチャの１つのリストと将来のピクチャの１つのリストとである２つの異なる参照ピクチャリストから２つの動きベクトルを計算するために双方向予測を使用して符号化される。単方向予測（Ｐ）フレーム中のビデオブロックは、従来、過去のピクチャのリストである単一の参照ピクチャリストから単一の動きベクトルを計算するために単方向予測を使用して符号化される。
【発明の概要】
【０００４】
[0004]概して、本開示は、ビデオコーディングにおいて予測情報をコーディングするコストを低減するための技法に関する。インターコード化ビデオフレームのビデオブロックは、第１の参照ピクチャリストと第２の参照ピクチャリストとのうちの１つの中の参照ピクチャからの動きベクトルを用いる単方向予測モード、または第１の参照ピクチャリスト中の参照ピクチャからの第１の動きベクトルと第２の参照ピクチャリスト中の参照ピクチャからの第２の動きベクトルとを用いる双方向予測モードのいずれかを使用してコーディングされ得る。新たに登場したＨＥＶＣ規格では、双方向予測（Ｂ）フレーム概念の特殊な場合であり得る一般化Ｐ／Ｂ（ＧＰＢ）フレームが導入されている。ＧＰＢフレーム中のビデオブロックは、同一の(identical)２つの別個の参照ピクチャリスト中の参照ピクチャから計算された２つまでの動きベクトルを使用して符号化される。したがって、ＧＰＢフレームの１つまたは複数のビデオブロックは、同じ参照ピクチャまたは実質的に類似する（substantially similar）参照ピクチャのいずれかからの２つの動きベクトルを用いる双方向予測モードを使用して符号化され得る。参照ピクチャリストは、代替的に参照フレームリストと呼ばれることがある。
【０００５】
[0005]本開示の技法は、ＧＰＢフレームのビデオブロックのための第１の動きベクトルと第２の動きベクトルとをジョイントコーディングすることを含む。コーディングされたビデオブロックについての動きベクトル情報を示す１つまたは複数のシンタックス要素がビデオデコーダにシグナリングされ得る。本技法は、隣接ブロックの動きベクトルから生成された第１の動き予測子に対して第１の動きベクトルをコーディングすることと、第１の動きベクトルに対して第２の動きベクトルをコーディングすることとを含む。このようにして、第２の動きベクトルは、第１の動きベクトルと第２の動きベクトルとの間の差としてコーディングされ得る。したがって、本技法は、従来、第２の動きベクトルを表すために使用されるシンタックス要素を低減するかまたは削除することによって、動きベクトル情報をシグナリングするために使用されるビットを低減し得る。
【０００６】
[0006]一例では、本開示は、第１の参照ピクチャリストと第２の参照ピクチャリストとを記憶すること、第１の参照ピクチャリストと第２の参照ピクチャリストとは同一であり、第１の参照ピクチャリスト中の参照ピクチャからの第１の動きベクトルと第２の参照ピクチャリスト中の参照ピクチャからの第２の動きベクトルとを用いる双方向予測を使用して、一般化Ｐ／Ｂ（ＧＰＢ）フレームに指定されたビデオフレームのビデオブロックをコーディングすることと、ビデオブロックについて第１の動きベクトルと第２の動きベクトルとをジョイントコーディングすることと、を備えるビデオデータをコーディングする方法を対象とする。
【０００７】
[0007]別の例では、本開示は、第１の参照ピクチャリストと第２の参照ピクチャリストとを記憶するメモリと、第１の参照ピクチャリストと第２の参照ピクチャリストとは同一であり、第１の参照ピクチャリスト中の参照ピクチャからの第１の動きベクトルと第２の参照ピクチャリスト中の参照ピクチャからの第２の動きベクトルとを用いる双方向予測モードを使用して、一般化Ｐ／Ｂ（ＧＰＢ）フレームに指定されたビデオフレームのビデオブロックをコーディングすることと、ビデオブロックについて第１の動きベクトルと第２の動きベクトルとをジョイントコーディングすることとを行うプロセッサとを備えるビデオコーディングデバイスを対象とする。
【０００８】
[0008]さらなる例では、本開示は、第１の参照ピクチャリストと第２の参照ピクチャリストとを記憶する手段と、第１の参照ピクチャリストと第２の参照ピクチャリストとは同一であり、第１の参照ピクチャリスト中の参照ピクチャからの第１の動きベクトルと第２の参照ピクチャリスト中の参照ピクチャからの第２の動きベクトルとを用いる双方向予測モードを使用して、一般化Ｐ／Ｂ（ＧＰＢ）フレームに指定されたビデオフレームのビデオブロックをコーディングする手段と、ビデオブロックについての第１の動きベクトルと第２の動きベクトルとをジョイントコーディングする手段と、を備えるビデオコーディングデバイスを対象とする。
【０００９】
[0009]別の例では、本開示は、プロセッサ中で実行されると、プロセッサに、第１の参照ピクチャリストと第２の参照ピクチャリストとを記憶させ、第１の参照ピクチャリストと第２の参照ピクチャリストとは同一であり、第１の参照ピクチャリストからの第１の動きベクトルと第２の参照ピクチャリストからの第２の動きベクトルとを用いる双方向予測を使用して、一般化Ｐ／Ｂ（ＧＰＢ）フレームに指定されたビデオフレームのビデオブロックをコーディングさせ、ビデオブロックのための第１の動きベクトルと第２の動きベクトルとをジョイントコーディングさせる、ビデオデータをコーディングするための命令を備える、コンピュータ可読記憶媒体を対象とする。
【図面の簡単な説明】
【００１０】
【図１】ビデオフレームのビデオブロックについての予測情報を効率的にコーディングするための技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】ＧＰＢフレームを含む例示的なビデオシーケンスを示す概念図。
【図３】ビデオフレームのビデオブロックについての予測情報を効率的にコーディングするための技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図４】ビデオフレームのビデオブロックについての予測情報を効率的にコーディングするための技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図５】単方向予測モードを使用してＧＰＢフレームのビデオブロックがコーディングされることを示すシングルビットシンタックス要素を符号化する例示的な動作を示すフローチャート。
【図６】単方向予測モードを使用してＧＰＢフレームのビデオブロックがコーディングされることを示すシングルビットシンタックス要素を復号する例示的な動作を示すフローチャート。
【図７】２ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを使用してビデオブロックがコーディングされることを示す１つまたは複数のシンタックス要素を符号化する例示的な動作を示すフローチャート。
【図８】２ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを使用してビデオブロックがコーディングされることを示す１つまたは複数のシンタックス要素を符号化する別の例示的な動作を示すフローチャート。
【図９】双方向予測モードを使用して符号化されたＧＰＢフレームのビデオブロックのための第１の動きベクトルと第２の動きベクトルとをジョイントコーディングする例示的な動作を示すフローチャート。
【発明を実施するための形態】
【００１１】
[0019]本開示は、ビデオコーディングにおいて予測情報をコーディングするコストを低減するための技法に関する。インターコード化フレームのビデオブロックは、第１の参照ピクチャリストと第２の参照ピクチャリストとのうちの１つの中の参照ピクチャに関する単一の動きベクトルを用いる単方向予測モード、または第１の参照ピクチャリスト中の参照ピクチャに関する第１の動きベクトルと第２の参照ピクチャリスト中の参照ピクチャに関する第２の動きベクトルとを用いる双方向予測モードのいずれかを使用してコーディングされ得る。いくつかの例では、本開示は、詳細には、一般化Ｐ／Ｂ（ＧＰＢ）フレームが使用可能であり、したがって、第１の参照ピクチャリストと第２の参照ピクチャリストとが同一である場合に関する。概して、参照ピクチャリストは、代替的に参照フレームリストと呼ばれることがある。
【００１２】
[0020]本開示の技法は、ビデオブロックの動き予測方向を示す１つまたは複数のシンタックス要素をシグナリングするためのビットを低減することを含む。参照ピクチャリストのうちの１つが、他の参照ピクチャリストよりも好適であるとき、デフォルトで、単方向予測モードのために好適参照ピクチャリストを使用することがより効率的であり得る。これは、特に、ＧＰＢフレームが使用可能であるときに当てはまる。その場合、２つの同一の参照ピクチャリストのいずれも単方向予測モードのために使用され得る。本開示の技法は、２ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードと双方向予測モードとのうちの１つを使用してビデオブロックがコーディングされることを示す１つまたは複数のシンタックス要素をコーディングすることを含む。
【００１３】
[0021]本開示の技法はまた、双方向予測モードを使用して符号化されるビデオブロックについての動きベクトル情報をシグナリングするためのビットを低減することを含む。ＧＰＢフレームの１つまたは複数のブロックは、同じ参照ピクチャまたは実質的に類似する（substantially similar）参照ピクチャのいずれかからの２つの動きベクトルを用いる双方向予測モードを使用して符号化され得る。本開示の技法は、ＧＰＢフレームのビデオブロックのための第１の動きベクトルと第２の動きベクトルとをジョイントコーディングすることを含み得る。
【００１４】
[0022]図１は、ビデオフレームのビデオブロックについての予測情報を効率的にコーディングするための技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、通信チャネル１６を介して符号化ビデオを宛先デバイス１４に送信するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、通信チャネル１６を介してビデオ情報を通信することができるワイヤレス通信デバイスを備え、その場合、通信チャネル１６はワイヤレスである。
【００１５】
[0023]しかし、ビデオブロックについての予測情報を効率的にコーディングすることに関係する本開示の技法は、必ずしもワイヤレスアプリケーションまたは設定に限定されるとは限らない。たとえば、これらの技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタルビデオ、または他のシナリオに適用し得る。したがって、通信チャネル１６は、符号化ビデオデータの送信に好適なワイヤレスまたはワイヤード媒体の任意の組合せを備え得、デバイス１２、１４は、携帯電話、スマートフォン、デジタルメディアプレーヤ、セットトップボックス、テレビジョン、ディスプレイ、デスクトップコンピュータ、ポータブルコンピュータ、タブレットコンピュータ、ゲームコンソール、ポータブルゲームデバイスなどの様々なワイヤードまたはワイヤレス媒体デバイスのいずれかを備え得る。
【００１６】
[0024]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器（モデム）２２と、送信機２４とを含む。宛先デバイス１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。他の例では、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。たとえば、ソースデバイス１２は、外部カメラ、ビデオストレージアーカイブ、コンピュータグラフィックスソースなどの外部ビデオソース１８からビデオデータを受信し得る。同様に、宛先デバイス１４は、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００１７】
[0025]図１の図示のシステム１０は一例にすぎない。ビデオブロックについての予測情報の効率的なコーディングのための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行され得る。本技法はまた、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによって実行され得る。さらに、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４の各々がビデオ符号化構成要素および復号構成要素を含むので、デバイス１２、１４は、実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオ電話通信のためのビデオデバイス１２とビデオデバイス１４との間の一方向または双方向のビデオ送信をサポートし得る。
【００１８】
[0026]ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および／またはビデオコンテンツプロバイダからのビデオフィード（video feed）を含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォン（camera phone）またはビデオフォン(video phone)を形成し得る。ただし、上述のように、本開示で説明する技法は、一般にビデオコーディングに適用可能であり、ワイヤレスおよび／またはワイヤードアプリケーションに適用可能であり得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオはビデオエンコーダ２０によって符号化され得る。次いで、符号化ビデオ情報は、通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００１９】
[0027]本開示によれば、ソースデバイス１２のビデオエンコーダ２０は、ビデオブロックについての予測情報をコーディングするコストを低減するための技法を適用するように構成され得る。たとえば、単方向予測モードの場合、ビデオエンコーダ２０は、２ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードと双方向予測モードとのうちの１つを使用してビデオブロックが符号化されることを示す１つまたは複数のシンタックス要素を符号化し得る。参照ピクチャリストは、２つの異なる参照ピクチャリストのうちの好適参照ピクチャリストであり得、またはＧＰＢフレームが使用可能であるとき、２つの同一の（identical）参照ピクチャリストのいずれかであり得る。参照ピクチャリストは、代替的に参照フレームリストと呼ばれることがある。別の例として、双方向予測モードの場合、ビデオエンコーダ２０は、２つの同一の参照ピクチャリストからの２つの動きベクトルを用いてＧＰＢフレームの１つまたは複数のビデオブロックを符号化し、ビデオブロックの各々について２つの動きベクトルをジョイント符号化し得る。その２つの動きベクトルは、同じ参照ピクチャまたは実質的に類似する参照ピクチャからのものであり得る。
【００２０】
[0028]宛先デバイス１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８は情報を復調する。チャネル１６を介して通信される情報は、ビデオエンコーダ２０によって定義されるシンタックス情報を含み、それは、ビデオデコーダ３０によっても使用され、予測ユニット（ＰＵ：prediction unit）、コーディングユニット（ＣＵ：coding unit）またはコーディングされたビデオの他のユニット、たとえば、ビデオスライス、ビデオフレーム、およびビデオシーケンスまたはピクチャグループ（ＧＯＰ：group of pictures）の特性および／または処理を記述するシンタックス要素を含む。ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００２１】
[0029]本開示によれば、宛先デバイス１４のビデオデコーダ３０は、ビデオブロックについての予測情報をコーディングするコストを低減するための技法を適用するように構成され得る。たとえば、単方向予測モードの場合、ビデオデコーダ３０は、２ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードと双方向予測モードとのうちの１つを使用してビデオブロックがコーディングされることを示す１つまたは複数のシンタックス要素を復号し得る。参照ピクチャリストは、２つの異なる参照ピクチャリストのうちの好適参照ピクチャリストであり得、またはＧＰＢフレームが使用可能であるとき、２つの同一の参照ピクチャリストうちののいずれかであり得る。別の例として、双方向予測モードの場合、ビデオデコーダ３０は、ＧＰＢフレームの１つまたは複数のビデオブロックの各々について２つの動きベクトルをジョイント復号し、２つの同一の参照ピクチャリストからの２つの動きベクトルを用いてビデオブロックの各々を復号し得る。その２つの動きベクトルは、同じ参照ピクチャまたは実質的に類似する参照ピクチャからのものであり得る。
【００２２】
[0030]図１の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレスおよびワイヤード媒体の任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、一般に、ワイヤードまたはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００２３】
[0031]ビデオエンコーダ２０およびビデオデコーダ３０は、高効率ビデオコーディング（ＨＥＶＣ）規格または代替的にＭＰＥＧ−４、Ｐａｒｔ１０、アドバンストビデオコーディング（ＡＶＣ）とも呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、ビデオ圧縮規格に従って動作し得る。ただし、本開示の技法は特定のコーディング規格に限定されない。他の例にはＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００２４】
[0032]ＨＥＶＣの規格化の成果は、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスのモデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を想定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３３個ものイントラ予測符号化モードを提供する。
【００２５】
[0033]ＨＭは、ビデオデータのブロックをコーディングユニット（ＣＵ：coding unit）と称する。ビットストリーム内のシンタックスデータは、ピクセルの数に関する最大コーディングユニット（ＬＣＵ：largest coding unit）である最大コーディングユニットを定義し得る。概して、ＣＵは、ＣＵがサイズ差異を有さないことを除いて、Ｈ．２６４規格のマクロブロックと同様の目的を有する。したがって、ＣＵは、複数のサブＣＵに分割され得る。概して、本開示におけるＣＵへの言及は、ピクチャの最大コーディングユニットまたはＬＣＵのサブＣＵを指すことがある。ＬＣＵは複数のサブＣＵに分割され得、各サブＣＵは、さらに、複数のサブＣＵに分割され得る。ビットストリームについてのシンタックスデータは、ＣＵ深さと呼ばれる、ＬＣＵが分割され得る最大回数を定義し得る。したがって、ビットストリームは最小コーディングユニット（ＳＣＵ：smallest coding unit）をも定義し得る。
【００２６】
[0034]さらに分割されないＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部分を表し、そのＰＵについての基準サンプルを検索するためのデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵは、そのＰＵのためのイントラ予測モードを記述するデータを含む。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、そのＰＵのための動きベクトルを定義するデータを含む。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度または１／８ピクセル精度）、動きベクトルが指し示す（point）参照ピクチャ、および／または動きベクトルについての参照ピクチャリスト（たとえば、リスト０またはリスト１）について説明し得る。また、（１つまたは複数の）ＰＵを定義するＣＵについてのデータは、たとえば、ＣＵを１つまたは複数のＰＵへ分割することについて記述し得る。分割モードは、ＣＵが、スキップまたはダイレクトモード符号化されるか、インター予測モード符号化されるか、あるいはインター予測モード符号化されるかによって異なり得る。
【００２７】
[0035]１つまたは複数のＰＵを有するＣＵはまた、１つまたは複数の変換ユニット（ＴＵ：transform unit）を含み得る。ＰＵを使用した予測に続いて、ビデオエンコーダは、ＰＵに対応するＣＵの一部分についての残差値を計算し得る。残差値は、エントロピーコーディングのためのシリアル化変換係数（serialized transform coefficient）を生成するために、変換係数に変換され、量子化され、スキャンされ得るピクセル差分値に対応する。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。したがって、ＴＵは、同じＣＵについての対応するＰＵよりも大きくても小さくてもよい。いくつかの例では、ＴＵの最大サイズは、対応するＣＵのサイズである。本開示は、ＣＵ、ＰＵ、またはＴＵのいずれかを指すために「ビデオブロック」という用語を使用する。
【００２８】
[0036]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合エンコーダ／デコーダ（コーデック）の一部としてそれぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどに統合され得る。
【００２９】
[0037]ビデオシーケンスは、通常、一連のビデオフレームを含む。ピクチャグループ（ＧＯＰ）は、概して、一連の１つまたは複数のビデオフレームを備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのフレームを記述するシンタックスデータを、ＧＯＰのヘッダ、ＧＯＰの１つまたは複数のフレームのヘッダ、または他の場所中に含み得る。各フレームは、それぞれのフレームについての符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ２０は、通常、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに対して作用する。ビデオブロックは、コーディングユニット（ＣＵ）またはＣＵのパーティションユニット（ＰＵ）に対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。各ビデオフレームは複数のスライスを含み得る。各スライスは、１つまたは複数のＰＵを含み得る、複数のＣＵを含み得る。
【００３０】
[0038]一例として、ＨＥＶＣテストモデル（ＨＭ）は、様々なＣＵサイズでの予測をサポートする。ＬＣＵのサイズは、シンタックス情報によって定義され得る。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×Ｎのサイズでのイントラ予測をサポートし、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称サイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２Ｎのインター予測のための非対称分割をサポートする。非対称分割では、ＣＵの一方向は分割されないが、他の方向が２５％と７５％とに分割される。２５％の分割に対応するＣＵの一部分は、「ｎ」の後ろに付く「Up」、「Down」、「Left」、または「Right」という指示によって示される。したがって、たとえば「２Ｎ×ｎＵ」は、上部に２Ｎ×０．５Ｎ  ＰＵと下部に２Ｎ×１．５Ｎ  ＰＵとの水平方向に分割される２Ｎ×２Ｎ  ＣＵを指す。
【００３１】
[0039]本開示では、「Ｎ×Ｎ」と「Ｎ by Ｎ」とは、垂直ディメンションおよび水平ディメンションに関するビデオブロック（たとえば、ＣＵ、ＰＵ、またはＴＵ）のピクセルディメンション、たとえば、１６×１６ピクセルまたは１６ by １６ピクセルを指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、Ｎは、非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。さらに、ブロックは、必ずしも、水平方向に垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックは、Ｎ×Ｍピクセルを備え得、Ｍは必ずしもＮに等しいとは限らない。
【００３２】
[0040]イントラ予測コーディングまたはインター予測コーディングを行ってＣＵのためのＰＵを生成した後、ビデオエンコーダ２０は、残差データを計算して、ＣＵのための１つまたは複数の変換ユニット（ＴＵ）を生成し得る。ＣＵの複数のＰＵは、（ピクセル領域とも呼ばれる）空間領域においてピクセルデータを備え、一方、ＣＵの複数のＴＵは、たとえば、残差ビデオデータに対し離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後、変換領域において係数を備える。残差データは、非符号化ピクチャ（unencoded picture）のピクセルとＣＵのＰＵの予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵについての残差データを含む１つまたは複数のＴＵを形成し得る。ビデオエンコーダ２０は、次いで、ＴＵを変換し得る。
【００３３】
[0041]変換係数を生成するための変換の後、変換係数の量子化が実行され得る。量子化は、概して、係数を表すために使用されるデータ量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にｎビット値がｍビット値に丸められる。ここで、ｎはｍよりも大きい。
【００３４】
[0042]いくつかの例では、ビデオエンコーダ２０は、エントロピー符号化されるシリアル化ベクトルを生成するために、量子化変換係数をスキャン（走査）するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ２０は、適応型走査を実行し得る。量子化変換係数を走査して１次元ベクトルを形成した後、ビデオエンコーダ２０は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型２値算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、または別のエントロピー符号化方法に従って１次元ベクトルをエントロピー符号化し得る。
【００３５】
[0043]ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルを符号化するためにあるコンテキストに適用すべきコンテキストモデルを選択し得る。コンテキストは、たとえば、隣接シンボルが非ゼロであるか否かに関係し得る。ビデオエンコーダ２０は、次いで、コンテキストに基づいてシンボルに割り当てられた確率を参照することによって、シンボルを表すための値を割り当て得る。場合によっては、値は、小数ビット、すなわち、１ビット未満であり得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルのための可変長コードを選択し得る。ＶＬＣにおけるコードワードは、比較的短いコードがより確率の高いシンボルに対応し、より長いコードがより確率の低いシンボルに対応するように構築され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率判断は、シンボルのコンテキストに基づき得る。
【００３６】
[0044]ビデオエンコーダ２０はまた、ビデオブロックを符号化するときに生成される動き予測方向と動きベクトル情報とについてのシンタックス要素をエントロピー符号化し得る。本開示の技法によれば、ビデオエンコーダ２０は、ビデオブロックについての予測情報をコーディングするコストを低減し得る。たとえば、単方向予測モードの場合、ビデオエンコーダ２０は、２ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードと双方向予測モードとのうちの１つを使用してビデオブロックが符号化されることを示す１つまたは複数のシンタックス要素を符号化し得る。参照ピクチャリストは、２つの異なる参照ピクチャリストのうちの好適参照ピクチャリストであり得、またはＧＰＢフレームが使用可能であるとき、２つの同一の参照ピクチャリストのうちのいずれかであり得る。別の例として、双方向予測モードの場合、ビデオエンコーダ２０は、２つの同一の参照ピクチャリストからの２つの動きベクトルを用いてＧＰＢフレームの１つまたは複数のビデオブロックを符号化し、ビデオブロックの各々について２つの動きベクトルをジョイント符号化し得る。その２つの動きベクトルは、同じ参照ピクチャまたは実質的に類似する参照ピクチャからのものであり得る。
【００３７】
[0045]ビデオデコーダ３０は、ビデオエンコーダ２０の動作と本質的に対称的な形で動作し得る。たとえば、ビデオデコーダ３０は、符号化されたＰＵデータとＴＵデータとを含む符号化されたＣＵを表す、エントロピー符号化されたデータを受信し得る。この受信データは、ビデオブロックを符号化するときに生成される動き予測方向と動きベクトル情報とについてのシンタックス要素を含み得る。ビデオデコーダ３０はまた、ビデオブロックについての予測情報をコーディングするコストを低減し得る。たとえば、単方向予測モードの場合、ビデオデコーダ３０は、２ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードと双方向予測モードとのうちの１つを使用してビデオブロックが符号化されることを示す１つまたは複数のシンタックス要素を復号し得る。参照ピクチャリストは、２つの異なる参照ピクチャリストのうちの好適参照ピクチャリストであり得、またはＧＰＢフレームが使用可能であるとき、２つの同一の参照ピクチャリストのうちのいずれかであり得る。別の例として、双方向予測モードの場合、ビデオデコーダ３０は、ＧＰＢフレームの１つまたは複数のビデオブロックの各々について２つの動きベクトルをジョイント復号し、２つの同一の参照ピクチャリストから計算される２つの動きベクトルを用いてビデオブロックの各々を復号し得る。その２つの動きベクトルは、同じ参照ピクチャまたは実質的に類似する参照ピクチャから計算され得る。
【００３８】
[0046]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、適用可能なとき、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０を含む装置は、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【００３９】
[0047]図２は、一般化Ｐ／Ｂ（ＧＰＢ）フレーム３６Ａ〜３６Ｂおよび３８Ａ〜３８Ｂを含む例示的なビデオシーケンス３３を示す概念図である。場合によっては、ビデオシーケンス３３はピクチャグループ（ＧＯＰ）と呼ばれることがある。ビデオシーケンス３３は、図示のように、表示順でフレーム３５Ａ、３６Ａ、３８Ａ、３５Ｂ、３６Ｂ、３８Ｂ、および３５Ｃ、ならびに最終フレーム３９を含む。フレーム３４は、シーケンス３３の前に発生するシーケンスの表示順における最終フレームである。図２は、概して、ビデオシーケンスの例示的な予測構造を表し、単に、様々なインターモードフレームタイプを符号化するために使用されるフレーム参照を示すものである。実際のビデオシーケンスは、様々なフレームタイプのより多いまたはより少ないビデオフレームを異なる表示順で含み得る。
【００４０】
[0048]ブロックベースビデオコーディングの場合、シーケンス３３中に含まれるビデオフレームの各々はビデオブロックまたはコーディングユニット（ＣＵ）に分割され得る。ビデオフレームの各ＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含み得る。イントラコード化（Ｉ）フレーム中のビデオブロックまたはＰＵは、同じフレーム中の隣接ブロックに関する空間的予測を使用して符号化される。インターコード化（ＰまたはＢまたはＧＰＢ）フレーム中のビデオブロックまたはＰＵは、同じフレーム中の隣接ブロックに関する空間的予測、または他の参照ピクチャに関する時間的予測を使用し得る。
【００４１】
[0049]Ｂフレーム中の複数のビデオブロックは、２つの異なる参照ピクチャリスト（従来は１つの過去のフレームと１つの将来フレーム）からの２つの動きベクトルを計算する双方向予測を使用して符号化される。場合によっては、Ｂフレーム中の複数のビデオブロックは、２つの異なる参照ピクチャリストのうちの１つからの単方向予測を使用して符号化され得る。Ｐフレーム中の複数のビデオブロックは、単一の参照ピクチャリスト（従来は過去のフレーム）からの単一の動きベクトルを計算する単方向予測を使用して符号化される。新たに登場したＨＥＶＣ規格によれば、ＧＰＢフレーム中の複数のビデオブロックは、２つの同一の参照ピクチャリストのうちの１つから単一の動きベクトルを計算する単方向予測、または、２つの同一の参照ピクチャリストから２つの動きベクトルを計算する双方向予測のいずれかを使用して符号化される。この２つ同一の参照ピクチャリストは、過去の参照ピクチャを含み得る。
【００４２】
[0050]場合によっては、ＧＰＢフレームが、所与のビデオスライス、ビデオフレーム、またはビデオシーケンスのために全体的に使用可能であるとき、標準Ｐフレームの代わりにＧＰＢフレームが使用され得る。この場合、すべての標準Ｐフレームは、ＧＰＢフレームとして扱われ、したがって、ビデオエンコーダは、インターモードフレームをＢフレームまたはＧＰＢフレームとして符号化することを判断し得る。他の場合には、ＧＰＢフレームが部分的に使用可能であるとき、３つすべてのインター予測モードが使用され得る。この場合、ビデオエンコーダは、インターモードフレームをＢフレーム、ＰフレームまたはＧＰＢフレームとして符号化することを判断し得る。
【００４３】
[0051]図２の例では、最終フレーム３９は、イントラモードコーディングのためにＩフレームに指定される。他の例では、最終フレーム３９は、例えば、前のシーケンスの最終フレーム３４を参照したＰフレームとしてインターモードコーディングを用いてコーディングされ得る。ビデオフレーム３５Ａ〜３５Ｃ（総称して「ビデオフレーム３５」）は、過去のフレームと将来のフレームとを参照する双方向予測を使用してＢフレームとしてコーディングするように指定される。図示の例では、フレーム３４とフレーム３６Ａとからビデオフレーム３５Ａへの矢印によって示されるように、フレーム３５Ａは、最終フレーム３４とフレーム３６Ａとを参照するＢフレームとして符号化される。フレーム３５Ｂおよび３５Ｃは同様に符号化される。
【００４４】
[0052]ビデオフレーム３６Ａ〜３６Ｂ（総称して「ビデオフレーム３６」）は、過去のフレームを参照する単方向予測を使用して標準ＰフレームまたはＧＰＢフレームのいずれかにコーディングするように指定され得る。図示の例では、フレーム３４からビデオフレーム３６Ａへの矢印によって示されるように、フレーム３６Ａは、最終フレーム３４を参照してＰフレームまたはＧＰＢフレームとして符号化される。フレーム３６Ｂは、同様に符号化される。
【００４５】
[0053]ビデオフレーム３８Ａ〜３８Ｂ（総称して「ビデオフレーム３８」）は、同じ過去のフレームを参照する双方向予測を使用してＧＰＢフレームとしてコーディングするように指定され得る。他の例では、ＧＰＢフレームは、同じ参照ピクチャリスト中に含まれる実質的に類似する過去のフレームを参照する双方向予測を使用して符号化され得る。図示の例では、フレーム３６Ａからビデオフレーム３８Ａへの２つの矢印によって示されように、フレーム３８Ａは、フレーム３６Ａへの２つの参照を用いてＧＰＢフレームとして符号化される。フレーム３８Ｂは、同様に符号化される。
【００４６】
[0054]図３は、ビデオフレームのビデオブロックについての予測情報を効率的にコーディングするための技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、複数のＣＵ、または複数のＣＵの複数のＰＵを含む、ビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード（登録商標））は、いくつかの空間ベースの圧縮モードのいずれかを指すことがある。単方向予測（Ｐモード）、双方向予測（Ｂモード）、または一般化Ｐ／Ｂ予測（ＧＰＢモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことがある。
【００４７】
[0055]図３に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図３の例では、ビデオエンコーダ２０は、モード選択ユニット４０と、予測ユニット４１と、参照ピクチャメモリ６４と、加算器５０と、変換ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。予測ユニット４１は、動き推定ユニット４２と、動き補償ユニット４４と、イントラ予測ユニット４６とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクト（blockiness artifacts）を除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図３に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。
【００４８】
[0056]符号化プロセス中に、ビデオエンコーダ２０はコーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のＣＵまたはビデオブロックに分割され得る。モード選択ユニット４０は、誤差結果に基づいて現在のビデオブロックのためのコーディングモード、すなわちイントラまたはインターのうちの１つを選択し、予測ユニット４１は、得られたイントラまたはインターコード化ブロックを、残差ブロックデータを生成する加算器５０と、参照ピクチャとして使用するための符号化ブロックを再構成する加算器６２に供給し得る。
【００４９】
[0057]予測ユニット４１内のイントラ予測ユニット４６は、コーディングされるべき現在のブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する現在のビデオブロックのイントラ予測コーディングを実行し、空間圧縮を提供する。予測ユニット４１内の動き推定ユニット４２および動き補償ユニット４４は、１つまたは複数の参照ピクチャ中の１つまたは複数の予測ブロックに対する現在のビデオブロックのインター予測コーディングを実行し、時間圧縮を提供する。この１つまたは複数の参照ピクチャは、第１の参照ピクチャリスト（リスト０）６６および／または第２の参照ピクチャリスト（リスト１）６８から選択され、これらの参照ピクチャリストは、参照ピクチャメモリ６４に記憶された参照ピクチャについての識別子を含む。
【００５０】
[0058]動き推定ユニット４２は、ビデオシーケンスの予め定められたパターンに従ってビデオフレームのためのインター予測モードを判断するように構成される。予め定められたパターンは、シーケンス中のビデオフレームをＰフレームおよび／またはＢフレームに指定し得る。場合によっては、ＧＰＢフレームが使用可能であり、したがって、１つまたは複数のビデオフレームがＧＰＢフレームに指定され得る。他の場合には、ＧＰＢフレームが使用可能であるとき、動き推定ユニット４２は、当初指定されたＰフレームをＧＰＢフレームとして符号化するかどうかを判断し得る。後者の場合は、ＧＰＢフレームが全体的に使用可能であるのか部分的に使用可能であるのかに依存し得る。
【００５１】
[0059]動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレーム内のＰＵまたはビデオブロックの変位を示し得る。予測ブロックは、コーディングされるべきＰＵを含むＣＵの一部分と、ピクセル差分に関して、ほぼ一致すると判断されたブロックであり、それは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって判断され得る。いくつかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を計算し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【００５２】
[0060]動き推定ユニット４２は、インターコード化フレームのＰＵまたはビデオブロックのための動きベクトルを、当該ＰＵと、リスト０  ６６またはリスト１  ６８のいずれかの中で識別される１つの参照ピクチャ内の複数のブロックとを比較することによって、計算する。たとえば、インターコード化フレームがＰフレームを備えるとき、動き推定ユニット４２は、Ｐフレーム中のビデオブロックのために単方向予測を使用し、リスト０  ６６とリスト１  ６８とのうちの１つであって、過去のフレームのための識別子を含むリスト（従来はリスト０  ６６）から、単一の動きベクトルを計算し得る。
【００５３】
[0061]インターコード化フレームがＢフレームを備えるとき、たとえば、リスト０  ６６とリスト１  ６８とは、異なる参照ピクチャ、従来は過去のピクチャと将来のピクチャとのための識別子を含む。動き推定ユニット４２は、Ｂフレームのビデオブロックのために双方向予測を使用し、リスト０  ６６とリスト１  ６８とから２つの動きベクトルを計算し得る。場合によっては、動き推定ユニット４２は、Ｂフレームのビデオブロックのために単方向予測を使用し、参照ピクチャリスト６６、６８のうちの１つから単一の動きベクトルを計算し得る。
【００５４】
[0062]新たに登場したＨＥＶＣ規格によれば、インターコード化フレームがＧＰＢフレームを備えるとき、リスト０  ６６とリスト１  ６８とは、同じ複数の参照ピクチャのための識別子を含む。より詳細には、リスト０  ６６とリスト１  ６８との各々の中に含まれるピクチャの数は同じであり、リスト０  ６６中の各インデックスエントリによって示されるピクチャは、リスト１  ６８中の同じインデックスエントリによって示されるピクチャと同一である。リスト０  ６６とリスト１  ６８との中に含まれる参照ピクチャは、過去のピクチャを備え得る。この場合、動き推定ユニット４２は、ＧＰＢフレームのビデオブロックのために双方向予測を使用し、リスト０  ６６とリスト１  ６８とから２つの動きベクトルを計算し得る。動き推定ユニット４２はまた、ＧＰＢフレームのビデオブロックのために単方向予測を使用し、リスト０  ６６とリスト１  ６８とのうちの１つから単一の動きベクトルを計算し得る。
【００５５】
[0063]参照ピクチャリストのうちの１つが他の参照ピクチャリストよりも好適であるとき、デフォルトで、単方向予測のために好適参照ピクチャリストを使用することがより効率的であり得る。これは、Ｂフレームのための単方向予測が、ほとんどの場合、参照ピクチャリストのうちの一方よりも他方に基づいて実行される場合である。たとえば、Ｐフレームと同様に、Ｂフレームのための単方向予測は、一般に、リスト０  ６６からの過去の参照ピクチャに基づいて実行され得る。その例では、動き補償ユニット４４は、リスト０  ６６が好適参照ピクチャリストであると判断し得る。ＧＰＢフレームが使用可能であり、したがって、リスト０  ６６とリスト１  ６８とが同一であるとき、動き補償ユニット４４は、２つの同じ参照ピクチャリスト間で選択する代わりに、単方向予測のためにリスト０  ６６とリスト１  ６８とのいずれか一方を交互に使用し得る。
【００５６】
[0064]動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。動き補償ユニット４４によって実行される動き補償は、動き推定によって判断された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを含む。ビデオエンコーダ２０は、コーディングされている現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。
【００５７】
[0065]動き補償ユニット４４は、ＰＵについての動きベクトルによって識別される予測ブロックを取り出すことによって、現在のＣＵの当該Ｐについての予測情報を計算し得る。予測情報は、たとえば、動き予測方向と動き予測子（motion predictor）とを含む動きベクトル情報と、参照ピクチャリスト情報とを含み得る。動き補償ユニット４４はまた、現在のビデオブロックまたはＰＵについて計算される予測情報を表すように定義されるシンタックス要素を生成し得る。ビデオエンコーダ２０は、次いで、予測情報を示すシンタックス要素を符号化し、ビデオデコーダ３０にシンタックス要素をシグナリングし得る。
【００５８】
[0066]本開示の技法によれば、ビデオエンコーダ２０は、ビデオブロックについての予測情報をコーディングするコストを低減し得る。たとえば、単方向予測モードの場合、ビデオエンコーダ２０は、２ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードと双方向予測モードとのうちの１つを使用してビデオブロックがコーディングされることを示す１つまたは複数のシンタックス要素を符号化し得る。参照ピクチャリストは、２つの異なる参照ピクチャリストのうちの好適参照ピクチャリストであり得、またはＧＰＢフレームが使用可能であるとき、２つの同じ参照ピクチャリストのいずれかであり得る。別の例として、双方向予測モードの場合、ビデオエンコーダ２０は、２つの同じ参照ピクチャリストからの２つの動きベクトルを用いてＧＰＢフレームの１つまたは複数のビデオブロックを符号化し、ビデオブロックの各々について２つの動きベクトルをジョイント符号化し得る。その２つの動きベクトルは、同じ参照ピクチャまたは実質的に類似する参照ピクチャからのものであり得る。
【００５９】
[0067]最初に、単方向予測の場合にビデオブロックについての予測情報をコーディングするコストを低減するための技法について説明する。動き補償ユニット４４は、現在のビデオブロックの動き予測方向についてのシンタックス要素を生成し得る。Ｂフレーム中のビデオブロックの動き予測方向についての従来のシンタックス要素、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃは、ブロックを符号化するために単方向予測が使用されるのか双方向予測が使用されるのかを示す第１のビットと、単方向予測のために使用される参照ピクチャリストを示す第２のビットとを含む。同一の参照ピクチャリストの場合、参照ピクチャリストのいずれも単方向予測モードのために互換的に使用され得るので、従来のシンタックス要素の第２のビットは冗長であり得る。
【００６０】
[0068]本開示の技法によれば、動き補償ユニット４４は、単方向予測モードのために使用される参照ピクチャリストの指示を削除することによって、動き予測方向についてのシングルビットシンタックス要素を生成し得る。ビデオエンコーダ２０は、次いで、ビデオブロックレベルまたはＰＵレベルにおいて、現在のビデオフレームの各ビデオブロックについての動きベクトル情報とともに、動き予測方向についてのシングルビットシンタックスを符号化し、ビデオデコーダ３０にシグナリングする。
【００６１】
[0069]現在のビデオフレームがＧＰＢフレームに指定されるとき、ビデオエンコーダ２０は、参照ピクチャメモリ６４に記憶された同一の参照ピクチャのための識別子を含んでいるリスト０  ６６とリスト１  ６８とを記憶する。リスト０  ６６とリスト１  ６８とは同じ参照ピクチャを含むので、動き補償ユニット４４は、単方向予測モードのために２つの同一の参照ピクチャリストのいずれも互換的に使用し得る。ビデオエンコーダ２０は、参照ピクチャリストのうちの１つの中の参照ピクチャに関する単方向予測モードを使用してＧＰＢフレームの１つまたは複数のビデオブロックを符号化する。
【００６２】
[0070]動き補償ユニット４４は、単方向予測モードを使用して符号化されるＧＰＢフレームのビデオブロックの動き予測方向を表すためのシングルビットシンタックスを生成し得る。ビデオエンコーダ２０はまた、現在のビデオフレームがＧＰＢフレームとして符号化されることを示すために、ビデオデコーダ３０にＧＰＢフレームフラグをシグナリングし得る。そのＧＰＢフレームフラグは、シーケンス内の所与のビデオフレームがＧＰＢフレームとして符号化され、したがって、ビデオブロックの動き予測方向がシングルビットシンタックスで符号化されることをビデオデコーダ３０に明示的に通知するために使用され得る。この明示的シグナリングによって、ビデオデコーダ３０は、動き予測方向を決定するためにシングルビットシンタックスをパースすることが可能になり得る。場合によっては、ビデオエンコーダ２０は、ＧＰＢフレームフラグを明示的にシグナリングしないが、参照ピクチャリストが同一であるとき、所与のフレームがＧＰＢフレームとして符号化されることを暗黙的にシグナリングし得る。ＧＰＢフレームフラグについては、以下でより詳細に説明する。
【００６３】
[0071]一例では、ＧＰＢフレームのビデオブロックが単方向予測モードを使用して符号化されるのか双方向予測モードを使用して符号化されるのかを示すように定義されたシングルビットシンタックス要素、たとえば、ｂｉ＿ｐｒｅｄ＿ｆｌａｇを備えるＧＰＢフレームに対して別個のシンタックスが定義され得る。シングルビットシンタックス要素の導入によって、上記で説明した、従来のシンタックス要素、すなわち、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃとの混同が回避され得る。動き補償ユニット４４は、ＧＰＢフレームの複数のビデオブロックのそれぞれの動き予測方向を表すためのシングルビットシンタックス要素を生成し得る。ビデオエンコーダ２０は、次いで、単方向予測モードと双方向予測モードとのうちの１つを使用してビデオブロックが符号化されることを示すために、ＧＰＢフレームのビデオブロックのうちの１つまたは複数についてのシングルビットシンタックス要素を符号化する。同一の参照ピクチャリストのいずれもが単方向予測のために使用され得るので、ＧＰＢフレームのビデオブロックを符号化するために参照ピクチャリスト６６、６８のどちらが使用されるのかを明示的にシグナリングする必要がない。
【００６４】
[0072]別の例では、ＧＰＢフレームのビデオブロックが単方向予測モードを使用して符号化されるのか双方向予測モードを使用して符号化されるのかを示すためにシンタックス要素の第１のビットのみが使用されるＧＰＢフレームに対して、従来のシンタックス要素、すなわち、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃのシングルビットモードが定義され得る。動き補償ユニット４４は、ＧＰＢフレームの複数のビデオブロックのそれぞれの動き予測方向を表すための従来のシンタックス要素の第１のビットのみを生成し得る。ビデオエンコーダ２０は、次いで、単方向予測を使用してビデオブロックが符号化されることを示すために、ＧＰＢフレームのビデオブロックのうちの１つまたは複数についてのシンタックス要素の第１のビットのみを符号化する。参照ピクチャリストのいずれもが単方向予測のために使用され得るので、動き補償ユニット４４は、ＧＰＢフレームのビデオブロックについてのシンタックス要素の第２のビットを削除し得る。
【００６５】
[0073]以下に提示する表１は、ＧＰＢフレームのビデオブロックのための単方向予測を示すために第１のビットのみが符号化される動き予測方向についての従来のシンタックス要素、すなわち、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃのシングルビットモードを用いた初期結果を与える。表１は、低遅延、高効率構成におけるＨＭのバージョン０．７内のいくつかのビデオテストシーケンスについて、ＧＰＢフレームのビデオブロックの動き予測方向を表すための低減ビットシンタックスによるビット深度（bit-depth）レート低減率を提示する。低減ビットシンタックス要素による平均ビット深度レート低減は、０．８８％である。
【表１】
0005551317.tif 000002
【００６６】
[0074]場合によっては、ビデオエンコーダ２０は、参照ピクチャリストからの単方向予測モードを使用して符号化される任意のタイプのインターコード化フレームのビデオブロックの動き予測方向を示すシンタックス要素を表すための低減ビット値を割り当て得る。上記で説明したように、ビデオフレームがＢフレームに指定されるとき、参照ピクチャリストは、ほとんどの場合、単方向予測のための使用される２つの異なる参照ピクチャリストのうちの好適な参照ピクチャリストであり得る。ビデオフレームがＧＰＢフレームに指定されるとき、参照ピクチャリストは、２つの同じ参照ピクチャリストのうちのいずれかであり得る。
【００６７】
[0075]たとえば、動き補償ユニット４４は、動き予測方向を示すシンタックス要素に適用される２値化を、シングルビット２値化で好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを表すように適応させ得る。エントロピー符号化ユニット５６は、各シンタックス要素を、１ビットまたはバイナリビットのシーケンスに２値化し得る。従来、動き予測方向を示すシンタックス要素では、２値化の０は、双方向予測モードを表し、２値化の１０は、リスト０中の参照ピクチャに関する単方向予測モードを表し、２値化の１１は、リスト１中の参照ピクチャに関する単方向予測モードを表す。
【００６８】
[0076]しかしながら、動き補償ユニット４４は、シングルビット２値化の０が、好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを示すシンタックス要素にリンクされるように、シンタックス要素を異なる２値化に適応的にリンクし得る。動き補償ユニット４４は、動き予測方向を示すシンタックス要素の各ステータスがどれくらいの頻度で発生するかに基づいて２値化を適応させ得る。好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードが他の予測モードよりも頻繁に使用されるとき、好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードに、シングルビット２値化の０をリンクすることがより効率的であり得る。たとえば、動き補償ユニット４４は、シングルビット２値化の０が、好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを表し、２値化の１０が、非好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを表し、２値化の１１が、双方向予測モードを表すように２値化を適応させ得る。
【００６９】
[0077]動き補償ユニット４４は、現在のフレームの複数のビデオブロックのそれぞれの動き予測方向を表すためのシンタックス要素を生成し得る。ビデオエンコーダ２０は、次いで、好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを使用してビデオブロックが符号化されることを示すために、１つまたは複数のビデオブロックについてのシンタックス要素にシングルビット２値化を割り当てる。ビデオエンコーダ２０は、ビデオブロックまたはＰＵレベル、ＣＵレベル、ビデオスライスレベル、ビデオフレームレベル、あるいはビデオシーケンスレベルのうちの１つにおいて、動き予測方向を示すシンタックス要素の適応型２値化をビデオデコーダ３０にシグナリングし得る。このシグナリングによって、ビデオデコーダ３０は、同様に、動き予測方向を示すシンタックス要素にその２値化を適応させることが可能になり得る。場合によっては、ビデオデコーダ３０は、動き予測方向を示すシンタックス要素の各ステータスがどれくらいの頻度で発生するかに基づいてシンタックス要素を単独で適応的に２値化し得る。
【００７０】
[0078]別の例として、動き補償ユニット４４は、シンタックス要素が好適参照ピクチャリストを示す確率を、シンタックス要素が非好適参照ピクチャリストを示す確率よりも高くなるようにバイアスする構成データを参照し得る。たとえば、構成データは、動き予測方向についての従来のシンタックス要素、すなわち、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃの第２のビットの確率初期設定（probability initialization）を好適参照ピクチャリストのほうへバイアスし得る。エントロピー符号化ユニット５６は、同じフレーム中の隣接ビデオブロックのシンタックス値から判断される現在のビデオブロックベースコンテキストについて、シンタックス要素の各ビットが１または０である確率を推定する。各コンテキストについて、状態機械（state machine）は、過去の値を追跡し、現在のビデオブロックについてのシンタックス要素の確率の最良の推定として現在の状態を与える。たとえば、状態値が、０から１２８まで変動する場合、状態値０は、ビットが０である確率が０．９９９９であることを意味し得、状態値１２８は、ビットが０である確率が０．０００１であることを意味し得る。エントロピー符号化ユニット５６は、確率判断に基づいて割り当てられた値を使用してシンタックス要素を符号化し得る。確率が高くなればなるほど、シンタックス要素を表すために使用される値がより短くなる。場合によっては、値は、小数ビット、すなわち、１ビット未満であり得る。
【００７１】
[0079]単方向予測モードの場合、単方向予測について、参照ピクチャリストのうちの一方が他方の参照ピクチャリストよりも好適であるとき、構成データは、シンタックス要素が好適参照ピクチャリストを示す確率を高める。たとえば、動き補償ユニット４４は、構成データに基づいて従来のシンタックス要素の第２のビットの状態値を０に設定し、したがって、そのビットが０である確率、すなわち、好適参照ピクチャリストを示す確率は０．９９９９である。
【００７２】
[0080]動き補償ユニット４４は、現在のフレームの複数のビデオブロックのそれぞれの動き予測方向を示すシンタックス要素を生成し得る。ビデオエンコーダ２０は、単方向予測を使用してビデオブロックが符号化されることを示すために、１つまたは複数のビデオブロックについてのシンタックス要素の第１のビットにシングルビット値を割り当て得る。ビデオエンコーダ２０は、次いで、単方向予測モードのために好適参照ピクチャリストが使用されることを示すために、１つまたは複数のビデオブロックについてのシンタックス要素の第２のビットに小数ビット値、すなわち、１ビット未満を割り当て得る。シンタックス要素の第２のビットが好適参照ピクチャリストを示す確率がより高くなると、ビデオエンコーダ２０は第２のビットに小数ビット値を割り当てることが可能になる。
【００７３】
[0081]上記で説明した動き予測方向についての修正シンタックスに加えて、本開示の技法はまた、動き予測方向のためにＧＰＢフレームが使用されるとき、および／または低減ビットシンタックスが使用されるときを明示的に示すために、ビデオデコーダ３０にフラグをシグナリングすることを含む。たとえば、ＧＰＢフレームが現在のビデオフレームに対して使用可能であるかまたは許可された場合、ビデオエンコーダ２０は、ＧＰＢフレームが使用可能であることを示すために、ビデオデコーダ３０にＧＰＢ使用可能フラグ（GPB enable flag）をシグナリングし得る。ビデオエンコーダ２０は、ビデオフレームレベルまたはビデオシーケンスレベルのいずれかにおいて、シンタックス中でＧＰＢ使用可能フラグをシグナリングし得る。ＧＰＢ使用可能フラグは、ＧＰＢフレームが使用不能であること、全体的に使用可能であること、または部分的に使用可能であることを示すように定義され得る。ＧＰＢフレームが使用不能であるとき、当初指定されたＰフレームは、ＰＵごとに１つの動きベクトルを用いて従来のＰフレームとして符号化される。ＧＰＢフレームが全体的に使用可能であるとき、当初指定されたＰフレームは、ＰＵごとに１つまたは２つの動きベクトルを用いるＧＰＢフレームとして扱われ得る。ＧＰＢフレームが部分的に使用可能であるとき、Ｐフレーム概念、Ｂフレーム概念、およびＧＰＢフレーム概念は別個の概念として扱われ得る。
【００７４】
[0082]ＧＰＢフレームは使用可能であるが、ＧＰＢフレームに対して新しいスライスタイプが定義されないことがあり、したがってＧＰＢフレームはＢスライスおよび／またはＰスライスとして符号化され得る。この場合、ビデオエンコーダ２０は、標準Ｂおよび／またはＰフレームとＧＰＢフレームとを区別するために、ビデオデコーダ３０に追加の明示的または暗黙的指示を送る必要があり得る。その追加の指示はまた、動き予測方向を表すために低減ビットシンタックスが使用されるときをビデオデコーダ３０に通知するために使用され得る。
【００７５】
[0083]たとえば、すべてのＧＰＢフレームは、従来のＢフレームの場合には異なる参照ピクチャリストと、ＧＰＢフレームの場合には同一の参照ピクチャリストとのいずれかを用いてＢスライスとしてコーディングされ得る。ＧＰＢフレームが全体的に使用可能であり、しがたって、すべてのインター予測フレームが、同一の参照ピクチャリストを用いてまたは用いずにＢスライスとして符号化され得るとき、ＧＰＢフレームを符号化するこのモードが好ましいことがある。
【００７６】
[0084]場合によっては、ビデオエンコーダ２０は、従来のＢフレームとＧＰＢフレームとを区別するために、ビデオフレームがＧＰＢフレームとして符号化されるときを示すためにビデオデコーダ３０にＧＰＢフレームフラグ、たとえば、ｇｐｂ＿ｐｒｅｄ＿ｆｌａｇまたはｓｌｉｃｅ＿ｇｐｂ＿ｆｌａｇを明示的にシグナリングし得る。ビデオエンコーダ２０は、ビデオスライスレベル、ビデオフレームレベル、またはビデオシーケンスレベルのうちの１つにおいて、シンタックス中でＧＰＢフレームフラグをシグナリングし得る。ただし、場合によっては、ビデオエンコーダ２０は、ＧＰＢフレーム符号化を明示的にシグナリングしないことがある。それらの場合には、ビデオエンコーダ２０は、参照ピクチャリストが同一であるとき、所与のフレームがＧＰＢフレームとして符号化されることをビデオデコーダ３０に暗黙的に通知し得る。
【００７７】
[0085]ＢスライスとしてコーディングされたＧＰＢフレームについてのスライスヘッダシンタックスは、動き予測方向についての低減ビットシンタックス要素を定義し得る。一例では、低減ビットシンタックス要素は、Ｂフレームの動き予測方向についての従来のシンタックス要素、すなわち、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃの１つのモードであり得、そのモードでは、シンタックス要素の第１のビットのみが使用される。別の例では、低減ビットシンタックス要素は、以下でより詳細に説明する、新たに定義されたシングルビットシンタックス要素、たとえば、ｂｉ＿ｐｒｅｄ＿ｆｌａｇであり得る。
【００７８】
[0086]ＢスライスとしてコーディングされたＧＰＢフレームの動き予測方向についての低減ビットシンタックス要素の一例を定義するための修正とともに、以下の表２に、ビデオブロックまたはＰＵレベルにおけるシンタックスからの抜粋を提示する。
【表２】
0005551317.tif 000003
【００７９】
ｐｒｅｄｉｔｉｏｎ＿ｕｎｉｔシンタックスは、ビデオフレーム内の、開始ピクセル（originating pixel）またはサブピクセル座標（ｘ０、ｙ０）に位置し、ｃｕｒｒＰｒｅｄＵｎｉｔＳｉｚｅによって与えられるあるサイズを有する、所与のＰＵに対して定義される。表２のＣ列は、現在のビデオブロックのどのデータパーティション中にシンタックス要素が含まれるのかを定義する各シンタックス要素のカテゴリーを示す。表２の記述子列は、ビデオデコーダ３０におけるシンタックス要素の適切なパーシングを可能にするためにシンタックス要素のために使用されるコーディングのタイプを示す。たとえば、記述子「ｕｅ（ｖ）」は、指数ゴロムコーディング（exponential-Golomb coding）を示す。表２のシンタックスの抜粋に示すように、現在のビデオブロックまたはＰＵを含むビデオフレームがＢスライスと見なされたが、ＧＰＢフレームではなかった場合、動き補償ユニット４４は、従来のＢフレームのビデオブロックのパーティションｉの動き予測方向をシグナリングするために、従来の２ビットシンタックス要素、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃ［ｉ］を生成する。しかしながら、ビデオフレームがＢスライスと見なされ、ＧＰＢフレームであった場合、動き補償ユニット４４は、ＧＰＢフレームのビデオブロックのパーティションｉの動き予測方向をシグナリングするために、従来のシンタックス要素、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃ［ｉ］の第１のビットのみを生成する。ビデオフレームがＧＰＢフレームとして符号化されることを示すために、ビデオエンコーダ２０がより高いレベルにおいてＧＰＢフレームフラグを明示的にシグナリングするとき、または、参照ピクチャリストが同一であると判断されるとき、予測ユニットシンタックステーブルにおいて使用されるＧＰＢフラグ変数、ｉｓＧＰＢＳｌｉｃｅＦｌａｇは真であると判断され得る。
【００８０】
[0087]別の例では、すべてのＧＰＢフレームは、ＧＰＢフレームの場合にはオプションの双方向予測を用いてＰスライスとしてコーディングされ得る。このモードのＧＰＢフレーム符号化は、ＧＰＢフレームが部分的に使用可能であり、しがたって、インター予測フレームが、双方向予測を用いてまたは用いずにＢスライスまたはＰスライスとして符号化され得るとき、好ましいことがある。場合によっては、ビデオエンコーダ２０は、従来のＰフレームとＧＰＢフレームとを区別するために、ビデオフレームがＧＰＢフレームとして符号化されるときを示すためにビデオデコーダ３０などのビデオデコーダにＧＰＢフレームフラグ、たとえば、ｇｐｂ＿ｐｒｅｄ＿ｆｌａｇまたはｓｌｉｃｅ＿ｇｐｂ＿ｆｌａｇを明示的にシグナリングし得る。ビデオエンコーダ２０は、ビデオスライスレベル、ビデオフレームレベル、またはビデオシーケンスレベルのうちの１つにおいて、シンタックス中でＧＰＢフレームフラグをシグナリングし得る。
【００８１】
[0088]ＰスライスとしてコーディングされたＧＰＢフレームについてのスライスヘッダシンタックスは、動き予測方向についての低減ビットシンタックス要素を定義し得る。一例では、低減ビットシンタックス要素は、新たに定義されたシングルビットシンタックス要素、たとえば、ｂｉ＿ｐｒｅｄ＿ｆｌａｇであり得る。シングルビットシンタックス要素は、ビデオブロックが単方向予測を使用して符号化されるのか双方向予測を使用して符号化されるのかを示すように定義され得る。シングルビットシンタックス要素は、Ｂフレームの動き予測方向についての従来の２ビットシンタックス要素との混同を回避するために異なる名前を有し得る。たとえば、シングルビットシンタックス要素は、「ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃ」の代わりに「ｂｉ＿ｐｒｅｄ＿ｆｌａｇ」と命名され得る。別の例では、低減ビットシンタックス要素は、Ｂフレームの動き予測方向についての従来のシンタックス要素、すなわち、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃの１つのモードであり得、そのモードでは、シンタックス要素の第１のビットのみが使用される。
【００８２】
[0089]ＰスライスとしてコーディングされたＧＰＢフレームの動き予測方向についての低減ビットシンタックス要素の一例を定義するための修正とともに、ビデオブロックまたはＰＵレベルにおけるシンタックスからの抜粋を以下の表３に提示する。
【表３】
0005551317.tif 000004
【００８３】
ｐｒｅｄｉｔｉｏｎ＿ｕｎｉｔシンタックスは、ビデオフレーム内の、開始ピクセルまたはサブピクセル座標（ｘ０、ｙ０）に位置し、ｃｕｒｒＰｒｅｄＵｎｉｔＳｉｚｅによって与えられるあるサイズを有する、所与のＰＵに対して定義される。表３のＣ列は、現在のビデオブロックのどのデータパーティション中にシンタックス要素が含まれるのかを定義する各シンタックス要素のカテゴリーを示す。表３の記述子列は、ビデオデコーダ３０におけるシンタックス要素の適切なパーシングを可能にするためにシンタックス要素のために使用されるコーディングのタイプを示す。たとえば、記述子「ｕｅ（ｖ）」は、指数ゴロムコーディングを示す。表３のシンタックスの抜粋に示すように、現在のビデオブロックまたはＰＵを含むビデオフレームがＢスライスと見なされた場合、動き補償ユニット４４は、従来のＢフレームのビデオブロックのパーティションｉの動き予測方向をシグナリングするために、従来の２ビットシンタックス要素、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃ［ｉ］を生成する。しかし、ビデオフレームがＰスライスと見なされ、ＧＰＢフレームであった場合、動き補償ユニット４４は、ＧＰＢフレームのビデオブロックのパーティションｉの動き予測方向をシグナリングするために、シングルビットシンタックス要素、ｂｉ＿ｐｒｅｄ＿ｆｌａｇ［ｉ］を生成する。ビデオフレームがＧＰＢフレームとして符号化されることを示すために、ビデオエンコーダ２０がより高いレベルにおいてＧＰＢフレームフラグを明示的にシグナリングするとき、シンタックスにおいて使用されるＧＰＢフラグ、ｓｌｉｃｅ＿ｇｐｂ＿ｆｌａｇは真であると判断され得る。
【００８４】
[0090]場合によっては、ＧＰＢフレームが使用可能であるとき、ＧＰＢフレームに対して新しいスライスタイプが定義され得る。この場合、現在のビデオフレームがＧＰＢフレームとして符号化されることを示すために追加の明示的または暗黙的シグナリングは必要ない。ＧＰＢスライスとしてコーディングされたＧＰＢフレームについてのスライスヘッダシンタックスは、動き予測方向についての低減ビットシンタックス要素を定義し得る。一例では、低減ビットシンタックス要素は、上記で説明した、新たに定義されたシングルビットシンタックス要素、たとえば、ｂｉ＿ｐｒｅｄ＿ｆｌａｇであり得る。別の例では、低減ビットシンタックス要素は、Ｂフレームの動き予測方向についての従来のシンタックス要素、すなわち、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃの１つのモードであり得、そのモードでは、シンタックス要素の第１のビットのみが使用される。
【００８５】
[0091]ＧＰＢスライスとしてコーディングされたＧＰＢフレームの動き予測方向についての低減ビットシンタックス要素の一例を定義するための修正とともに、ビデオブロックまたはＰＵレベルにおけるシンタックスからの抜粋を以下の表４に提示する。
【表４】
0005551317.tif 000005
【００８６】
ｐｒｅｄｉｔｉｏｎ＿ｕｎｉｔシンタックスは、ビデオフレーム内の、開始ピクセルまたはサブピクセル座標（ｘ０、ｙ０）に位置し、ｃｕｒｒＰｒｅｄＵｎｉｔＳｉｚｅによって与えられるあるサイズを有する、所与のＰＵに対して定義される。表４のＣ列は、現在のビデオブロックのどのデータパーティション中にシンタックス要素が含まれるのかを定義する各シンタックス要素のカテゴリーを示す。表４の記述子列は、ビデオデコーダ３０におけるシンタックス要素の適切なパーシングを可能にするためにシンタックス要素のために使用されるコーディングのタイプを示す。たとえば、記述子「ｕｅ（ｖ）」は、指数ゴロムコーディングを示す。シンタックスの抜粋に示すように、現在のビデオブロックまたはＰＵを含むビデオフレームがＢスライスと見なされた場合、動き補償ユニット４４は、従来のＢフレームのビデオブロックのパーティションｉの動き予測方向をシグナリングするために、従来の２ビットシンタックス要素、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃ［ｉ］を生成する。しかしながら、ビデオフレームがＧＰＢスライスと見なされた場合、動き補償ユニット４４は、ＧＰＢフレームのビデオブロックのパーティションｉの動き予測方向をシグナリングするために、シングルビットシンタックス要素、ｂｉ＿ｐｒｅｄ＿ｆｌａｇ［ｉ］を生成する。
【００８７】
[0092]次に、双方向予測の場合にビデオブロックについての予測情報をコーディングするコストを低減するための技法について説明する。上記で説明したように、動き推定ユニット４２は、ＧＰＢフレームの現在のビデオブロックのためのリスト０  ６６からの第１の動きベクトルとリスト１  ６８からの第２の動きベクトルとを計算する双方向予測を使用し得る。動き補償ユニット４４は、次いで、現在のビデオブロックのための動きベクトルを示すように定義されるシンタックス要素を生成し得る。動きベクトルについての従来のシンタックス要素は、動きベクトルと動き予測子との間の差を示すように定義された第１のシンタックス要素、すなわち、ｍｖｄと、動き予測子が生成される参照ピクチャの参照ピクチャリスト中のインデックスを示すように定義された第２のシンタックス要素、すなわち、ｒｅｆ＿ｉｄｘとを含む。
【００８８】
[0093]現在のビデオフレームがＧＰＢフレームに指定されるとき、ビデオエンコーダ２０は、同一の参照ピクチャのための識別子を含んでいるリスト０  ６６とリスト１  ６８とを記憶する。リスト０  ６６とリスト１  ６８とは同じ参照ピクチャを含むので、動き推定ユニット４２は、同じ２つ参照ピクチャすなわち実質的に類似する２つ参照ピクチャのうちのいずれかから第１の動きベクトルと第２の動きベクトルとを計算し得る。したがって、ＧＰＢフレームのビデオブロックのための第１の動きベクトルと第２の動きベクトルとは高度に相関する。高度に相関する動きベクトルの各々についてシンタックス要素を単独で生成するのは冗長であり得、２つの動きベクトルをジョイント符号化することがより効率的である。
【００８９】
[0094]本開示の技法によれば、動き補償ユニット４４は、従来第２の動きベクトルを表すために使用されるシンタックス要素を低減するかまたは削除することによって、動きベクトルをシグナリングするために使用されるビットを低減し得る。ビデオエンコーダ２０は、次いで、第１の動きベクトルと第２の動きベクトルとをジョイント符号化する。たとえば、ビデオエンコーダ２０は、従来、動き予測子に関して第１の動きベクトルを符号化し、次いで、第１の動きベクトルに関して第２の動きベクトルを符号化する。ビデオエンコーダ２０は、ビデオブロックまたはＰＵレベルにおいて、ＧＰＢフレームの各ビデオブロックについての他の予測シンタックスとともに、ジョイント符号化された動きベクトルをビデオデコーダ３０にシグナリングする。
【００９０】
[0095]動き補償ユニット４４は、動き推定ユニット４２からＧＰＢフレームの現在のビデオブロックのための第１の動きベクトルと第２の動きベクトルとを受信する。動き補償ユニット４４は、次いで、隣接ビデオブロックの動きベクトルから第１の動きベクトルのための第１の動き予測子を生成する。たとえば、現在のビデオブロックのための第１の動きベクトルは、リスト０  ６６からの参照ピクチャ中の予測ブロックをさし示す。したがって、第１の動き予測子は、リスト０  ６６からの同じ参照ピクチャ中の別のブロックをさし示す、ＧＰＢフレーム中の隣接ビデオブロックの動きベクトルから生成され得る。
【００９１】
[0096]動き補償ユニット４４は、第１の動き予測子に対する第１の動きベクトルを表すためのシンタックス要素を生成する。たとえば、動き補償ユニット４４は、第１の動きベクトルと第１の動き予測子との間の差を示すように定義された第１のシンタックス要素、すなわち、ｍｖｄと、第１の動き予測子が生成された参照ピクチャのリスト０  ６６中のインデックスを示すように定義された第２のシンタックス要素、すなわち、ｒｅｆ＿ｉｄｘとを生成する。このようにして、ビデオエンコーダ２０は、従来、動き補償ユニット４４によって生成されたシンタックス要素を用いて、第１の動き予測子に対して第１の動きベクトルを符号化する。
【００９２】
[0097]動き補償ユニット４４は、隣接ビデオブロックからの第２の動きベクトルのための第２の動き予測子を生成しないことがあるが、代わりに第２の動き予測子として第１の動きベクトルを使用する。ビデオエンコーダ２０は、次いで、第１の動きベクトルに対して、ビデオブロックのための第２の動きベクトルを符号化する。このようにして、第２の動きベクトルは、第１の動きベクトルと第２の動きベクトルとの間の差として符号化され得る。いくつかの例では、動き補償ユニット４４は、第２の動きベクトルについてのいかなるシンタックス要素も生成しないことがある。他の例では、動き補償ユニット４４は、第２の動きベクトルと第１の動きベクトルとの間の差を示すように定義される第１のシンタックス要素のみを生成し得る。
【００９３】
[0098]場合によっては、動きベクトルが同じ参照ピクチャまたは実質的に類似する参照ピクチャをさし示す（ポイントする）とき、ビデオエンコーダ２０は、第１の動きベクトルと第２の動きベクトルとを単にジョイント符号化し得る。第１の動きベクトルと第２の動きベクトルとが同じ参照ピクチャをさし示さないとき、第２の動き予測子として第１の動きベクトルを使用する前に、第１の動きベクトルは、第１の動きベクトルと第２の動きベクトルとの間の時間距離に従ってスケーリングされ得る。
【００９４】
[0099]いくつかの例では、現在のブロックの動きベクトルのための動き予測子は、隣接ブロックの複数の動きベクトルから生成され得る。この場合、動き補償ユニット４４は、隣接ビデオブロックの複数の候補動きベクトルから、現在のビデオブロックの第１の動きベクトルのための第１の動き予測子を生成し得る。動き補償ユニット４４はまた、第１の動きベクトルを含む複数の候補動きベクトルから、現在のビデオブロックの第２の動きベクトルのための第２の動き予測子を生成し得る。この場合、第２の動きベクトルは、依然として、第１の動きベクトルに対して符号化され得るが、第１の動きベクトルに基づくことに限定するものではない。
【００９５】
[0100]所与の参照ピクチャリストからの動きベクトルのための動き予測子は、一般に、同じ参照ピクチャリスト中の同じフレームから計算される、隣接ビデオブロックの動きベクトルから生成される。しかしながら、現在のフレームがＧＰＢフレームであり、したがって、第１の参照ピクチャリストと第２の参照ピクチャリストとが同一の参照ピクチャのための識別子を含んでいるとき、動き予測子は、隣接ビデオブロックの動きベクトルとは異なるリストから生成され得る。たとえば、隣接ビデオブロックの動きベクトルがリスト０  ６６中の参照ピクチャを指す場合、動き補償ユニット４４は、リスト０  ６６またはリスト１  ６８のいずれかの中の参照ピクチャから、現在のビデオブロックの動きベクトルのための第１の動き予測子を生成し得る。
【００９６】
[0101]場合によっては、第１の動き予測子を生成するために使用される隣接ビデオブロックの動きベクトルは、同じ参照ピクチャリスト、たとえばリスト０  ６６中で、現在のビデオブロックの第１の動きベクトルとして利用可能でないことがある。本開示の技法によれば、隣接ビデオブロックの動きベクトルがリスト０  ６６中で利用可能でないとき、動き補償ユニット４４は、リスト１  ６８から第１の動き予測子を計算し得る。これは、隣接ビデオブロックの動きベクトルが当初リスト１  ６８から計算されて、リスト０  ６６に記憶されなかった場合に行われ得る。追加の解決策として、動き推定ユニット４２は、各参照ピクチャリストから計算される動きベクトルを両方の参照ピクチャリストに記憶する。たとえば、動き推定ユニット４２が、ＧＰＢフレーム中の隣接ビデオブロックについて、リスト０  ６６から動きベクトルを計算するとき、動き推定ユニット４２は、リスト０  ６６とリスト１  ６８の両方に当該動きベクトルを記憶する。このようにして、動き補償ユニット４４は、常に、参照ピクチャリスト６６、６８のいずれかから、隣接ビデオブロックの動きベクトルのための動き予測子を生成し得る。
【００９７】
[0102]動き補償ユニット４４が、動きベクトルに基づいて現在のビデオブロックのための予測ブロックを生成し、現在のビデオブロックについての予測情報を表すためのシンタックス要素を生成した後、ビデオエンコーダ２０は、現在のビデオブロックから予測ブロックを減算することによって、残差ビデオブロックを形成する。変換ユニット５２は、残差ブロックから１つまたは複数の変換ユニット（ＴＵ：transform unit）を形成し得る。変換ユニット５２は、離散コサイン変換（ＤＣＴ：discrete cosine transform）または概念的に同様の変換などの変換をＴＵに適用し、残差変換係数を備えるビデオブロックを生成する。変換は、残差ブロックをピクセル領域から周波数領域などの変換領域に変換し得る。
【００９８】
[0103]変換ユニット５２は、得られた変換係数を量子化ユニット５４へ送る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット５６が走査を実行し得る。
【００９９】
[0104]量子化の後、エントロピー符号化ユニット５６は、量子化変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context adaptive binary arithmetic coding）、または別のエントロピー符号化技法を実行し得る。エントロピー符号化ユニット５６によるエントロピー符号化の後、符号化されたビットストリームは、ビデオデコーダ３０などのビデオデコーダに送信されるか、あるいは後で送信または検索するためにアーカイブされる（アーカイブに保存する）。
【０１００】
[0105]エントロピー符号化ユニット５６はまた、コーディングされている現在のビデオブロックのための動きベクトルと他の予測シンタックス要素とをエントロピー符号化し得る。たとえば、エントロピー符号化ユニット５６は、符号化されたビットストリーム中で送信するために動き補償ユニット４４によって生成された適切なシンタックス要素を含むヘッダ情報を構築し得る。ＰＵまたはビデオブロックレベルにおいて、シンタックス要素は、動きベクトルと動き予測方向とを含み得る。より高レベルにおいて、シンタックス要素は、ＧＰＢフレームが所与のビデオフレームについて使用可能であるかどうかを示すＧＰＢ使用可能フラグと、所与のビデオフレームがＧＰＢフレームとして符号化されるかどうかを示すＧＰＢ符号化フラグ（GPB encoded flag）とを含み得る。ビデオデコーダは、予測ブロックを取り出し、ビデオエンコーダ２０によって符号化された元のビデオブロックを再構成するために、これらのシンタックス要素を使用し得る。
【０１０１】
[0106]シンタックス要素をエントロピー符号化するために、エントロピー符号化ユニット５６は、コンテキストモデルに基づいてシンタックス要素を１つまたは複数のバイナリビットに２値化し得る。この例では、エントロピー符号化ユニット５６は、好適参照ピクチャ中の参照ピクチャに関する単方向予測モードを示すシンタックス要素にシングルビット２値化をリンクするために動き補償ユニット４４によって適応された２値化を適用し得る。さらに、エントロピー符号化ユニット５６は、好適参照リストのほうへバイアスされたビットの確率初期設定に基づいて、シンタックス要素のビットを小数ビット値として符号化し得る。
【０１０２】
[0107]逆量子化ユニット５８および逆変換ユニット６０は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックをリスト０  ６６またはリスト１  ６８内の複数の参照ピクチャのうちの１つ参照ピクチャの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ６４に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレーム中のブロックをインター予測する（inter-predict）ために、動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【０１０３】
[0108]図４は、ビデオフレームのビデオブロックについての予測情報を効率的にコーディングするための技法を実装し得るビデオデコーダ３０の一例を示すブロック図である。図４の例では、ビデオデコーダ３０は、エントロピー復号ユニット８０と、予測ユニット８１と、逆量子化ユニット８６と、逆変換ユニット８８と、加算器９０と、参照ピクチャメモリ９２とを含む。予測ユニット８１は、動き補償ユニット８２と、イントラ予測ユニット８４とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図３）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
【０１０４】
[0109]復号プロセス中に、ビデオデコーダ３０は、符号化されたビデオフレームと、ビデオエンコーダ２０などのビデオエンコーダからのコーディング情報を表すシンタックス要素とを含む符号化されたビデオビットストリームを受信する。ビデオデコーダ３０のエントロピー復号ユニット８０は、量子化係数、動きベクトル、および他の予測シンタックスを生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット８０は、予測ユニット８１に動きベクトルと他の予測シンタックスとを転送する。ビデオデコーダ３０はシンタックス要素を、ビデオブロックまたはＰＵレベル、ビデオスライスレベル、ビデオフレームレベルおよび／またはビデオシーケンスレベルにおいて受信し得る。
【０１０５】
[0110]予測ユニット８１のイントラ予測ユニット８４は、シグナリングされたイントラ予測モードと現在のフレームの前に復号されたブロックからのデータとに基づいて、現在のビデオフレームのビデオブロックについての予測データを生成し得る。予測ユニット８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信した動きベクトルと予測シンタックスとに基づいて予測ブロックを生成する。予測ブロックは、第１の参照ピクチャリスト（リスト０）９４および／または第２の参照ピクチャリスト（リスト１）９６のうちの１つまたは複数から生成され得、それらの参照ピクチャリストは、参照ピクチャメモリ９２に記憶された参照ピクチャのための識別子を含む。
【０１０６】
[0111]動き補償ユニット８２はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット８２は、ビデオブロックの符号化の間にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット８２は、受信したシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
【０１０７】
[0112]動き補償ユニット８２は、動きベクトルと予測シンタックスとをパースすることによって現在のビデオブロックについての予測情報を決定し、当該予測情報使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。動き補償ユニット８２は、現在のビデオフレームを復号するために、受信したシンタックス要素のいくつかを使用して、現在のフレームを符号化するために使用されるＣＵのサイズと、フレームの各ＣＵがどのように分割されるのかを記述する分割情報と、各分割がどのように符号化されるのかを示すモード（たとえば、イントラ予測またはインター予測）と、インター予測スライスタイプ（たとえば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）と、フレームのための１つまたは複数の参照ピクチャリストと、フレームの各インター符号化ＰＵまたはＣＵのための動きベクトルと、フレームの各インター符号化ＰＵまたはＣＵの動き予測方向と、他の情報とを決定する。
【０１０８】
[0113]動き補償ユニット８２は、ＧＰＢフレームが現在のビデオフレームに対して使用可能であるかまたは許可されるかどうかを判断するために、ビデオフレームレベルまたはビデオシーケンスレベルにおいてシンタックスをパースし得る。たとえば、動き補償ユニット８２は、ビデオフレームレベルまたはビデオシーケンスレベルのいずれかにおいてシンタックス中で受信されるＧＰＢ使用可能フラグに基づいて、ＧＰＢフレームが使用可能であると判断し得る。ＧＰＢ使用可能フラグは、図３に関して詳細に説明されており、ＧＰＢフレームが使用不能であること、全体的に使用可能であること、または部分的に使用可能であることを示すように定義され得る。動き補償ユニット８２はまた、現在のビデオフレームについての参照ピクチャリスト情報を決定するために、ビデオスライスレベルまたはビデオフレームレベルにおいてシンタックスをパースし得る。ビデオデコーダ３０は、次いで、シンタックスによって示される、参照ピクチャのための識別子を含むリスト０  ９４とリスト１  ９６とを記憶する。現在のビデオフレームがＧＰＢフレームであるとき、リスト０  ９４とリスト１  ９６とは、同一の複数の参照ピクチャの識別子を含む。より詳細には、リスト０  ９４とリスト１  ９６との各々の中に含まれるピクチャの数は同一であり、リスト０  ９４中の各インデックスエントリによって示されるピクチャは、リスト１  ９６中の同じインデックスエントリによって示されるピクチャと同一である。
【０１０９】
[0114]本開示の技法によれば、ビデオデコーダ３０は、ビデオブロックについての予測情報をコーディングするコストを低減し得る。たとえば、単方向予測モードの場合、ビデオデコーダ３０は、２ビット未満を使用して１つの参照ピクチャリスト中の１つの参照ピクチャに関する単方向予測モードと双方向予測モードとのうちの１つを使用してビデオブロックがコーディングされることを示す、１つまたは複数のシンタックス要素を復号し得る。該参照ピクチャリストは、２つの異なる参照ピクチャリストのうちの好適参照ピクチャリストであり得、またはＧＰＢフレームが使用可能であるとき、２つの同一の参照ピクチャリストのいずれかであり得る。別の例として、双方向予測モードの場合、ビデオデコーダ３０は、ＧＰＢフレームの１つまたは複数のビデオブロックの各々について２つの動きベクトルをジョイント復号し、２つの同一の参照ピクチャリストから計算される２つの動きベクトルを用いてビデオブロックの各々を復号し得る。その２つの動きベクトルは、同じ参照ピクチャまたは類似の参照ピクチャから計算され得る。
【０１１０】
[0115]最初に、単方向予測の場合にビデオブロックについての予測情報をコーディングするコストを低減するための技法について説明する。動き補償ユニット８２は、現在のビデオブロックの動き予測方向についての１つまたは複数のシンタックス要素をパースし得る。Ｂフレーム中のビデオブロックの動き予測方向についての従来のシンタックス要素、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃは、ブロックを符号化するために単方向予測モードが使用されるのか双方向予測モードが使用されるのかを示す第１のビットと、単方向予測のために使用される参照ピクチャリストを示す第２のビットとを含む。同一の参照ピクチャリストの場合、参照ピクチャリストのいずれも単方向予測モードのために互換的に使用され得るので、従来のシンタックス要素の第２のビットは冗長であり得る。
【０１１１】
[0116]本開示の技法によれば、動き補償ユニット８２は、参照ピクチャリスト中の参照ピクチャに関する単方向予測を使用して現在のビデオブロックが符号化されることを示す動き予測方向を示すシンタックス要素の低減ビットコーディングをパースし得る。現在のフレームがＧＰＢフレームであると判断され、したがって、リスト０  ９４とリスト１  ９６とが同一であるとき、動き補償ユニット８２は、単方向予測モードのために２つの同一の参照ピクチャリストのいずれも互換的に使用し得る。
【０１１２】
[0117]動き補償ユニット８２は、図３に関して説明した明示的にシグナリングされたＧＰＢフレームフラグに基づいて、現在のビデオフレームがＧＰＢフレームとして符号化されるかどうかを判断し得る。動き補償ユニット８２は、ビデオスライスレベル、ビデオフレームレベル、またはビデオシーケンスレベルのいずれかにおいてＧＰＢフレームフラグを受信し得る。そのＧＰＢフレームフラグは、現在のビデオフレームがＧＰＢフレームとして符号化され、よって、ビデオブロックの動き予測方向がシングルビットシンタックスで符号化されることをビデオデコーダ３０に明示的に通知するために使用され得る。その明示的シグナリングにより、ビデオデコーダ３０は、ビデオシーケンス復号の開始時にかかわらず、動き予測方向を判断するためにシングルビットシンタックス要素を正しくパースすることが可能になり得る。ＧＰＢフレームフラグに基づいて、ビデオデコーダ３０は、フレームがＧＰＢフレームであるときを常に気づき、動き予測方向についてのシングルビットシンタックスをパースすることを予期する。
【０１１３】
[0118]他の場合には、動き補償ユニット８２は、リスト０  ９４とリスト１  ９６とを比較し、リスト０  ９４とリスト１  ９６とが同一の参照ピクチャを含んでいるとき、現在のフレームがＧＰＢフレームであると判断し得る。しかしながら、その２つの参照ピクチャリストは、復号中に参照ピクチャが追加または更新される前のビデオシーケンスの始めにビデオデコーダ３０には同一にしか見えないことになる。したがって、暗黙的シグナリングは、ビデオデコーダ３０がビデオシーケンスの始めに復号を開始した場合にのみ、シングルビットシンタックス要素の正しいパーシングが可能になり得る。そうでない場合、ビデオデコーダ３０は、フレームがＧＰＢフレームとして符号化されていることに気づかないことになり、動き予測方向についてのシングルビットシンタックスをパースすることを予期しないことになる。
【０１１４】
[0119]ＧＰＢフレーム符号化の明示的または暗黙的通知は、ＧＰＢフレームがＢスライスまたはＰスライスとして符号化されるときに必要であり得る。他の場合には、動き補償ユニット８２は、ＧＰＢフレームに対して定義された新しいスライスタイプに基づいて、現在のフレームがＧＰＢフレームであることを判断し得、その新しいスライスタイプによって、ＧＰＢフレーム符号化の追加の明示的または暗黙的通知が不要になる。
【０１１５】
[0120]一例では、ＧＰＢフレームのビデオブロックが単方向予測を使用して符号化されるのか双方向予測を使用して符号化されるのかを示すように定義されたシングルビットシンタックス要素、たとえば、ｂｉ＿ｐｒｅｄ＿ｆｌａｇを備えるＧＰＢフレームに対して別個のシンタックスが定義され得る。シングルビットシンタックス要素の導入により、上記で説明した、従来のシンタックス要素、すなわち、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃとの混同が回避され得る。動き補償ユニット８２は、ＧＰＢフレームの現在のビデオブロックが単方向予測を使用してコーディングされることを示すシングルビットシンタックス要素をパースし得る。同一の参照ピクチャリスト９４、９６のいずれも単方向予測モードのために使用され得るので、動き補償ユニット８２は、単方向予測のためにいずれか一方の参照ピクチャリストを使用する。
【０１１６】
[0121]別の例では、ＧＰＢフレームのビデオブロックが単方向予測モードを使用して符号化されるのか双方向予測モードを使用して符号化されるのかを示すためにシンタックス要素の第１のビットのみが使用されるＧＰＢフレームに対して、従来のシンタックス要素、すなわち、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃのシングルビットモードが定義され得る。動き補償ユニット８２は、ビデオブロックが単方向予測を使用して符号化されることを示すシンタックス要素の第１のビットのみについてシンタックス要素をパースし得る。動き補償ユニット８２は、単方向予測のためにずれかの一方の参照ピクチャリストを使用する。
【０１１７】
[0122]場合によっては、動き補償ユニット８２は、参照ピクチャリスト中の参照ピクチャに関する単方向予測を使用して符号化される任意のタイプのインターコード化フレームのビデオブロックの動き予測方向を示すシンタックス要素に割り当てられた低減ビット値を復号し得る。ビデオフレームがＢフレームに指定されるとき、参照ピクチャリストは、参照ピクチャリストのうち、単方向予測のための頻繁に使用される好適な参照ピクチャリストであり得る。ビデオフレームがＧＰＢフレームに指定されるとき、参照ピクチャリストは、２つの同一の参照ピクチャリストのいずれかであり得る。
【０１１８】
[0123]一例として、動き補償ユニット８２は、ビデオエンコーダ２０からのシンタックス中で動き予測方向を示すシンタックス要素の適応型２値化を受信し得る。動き補償ユニット８２は、ビデオブロックまたはＰＵレベル、ＣＵレベル、ビデオスライスレベル、ビデオフレームレベル、あるいはビデオシーケンスレベルのうちの１つにおいて適応型２値化を受信し得る。
【０１１９】
[0124]受信した適応型２値化に従って、動き補償ユニット８２は、動き予測方向を示すシンタックス要素の各ステータスを異なる２値化に適応的にリンクし得、したがって、シングルビット２値化が、好適参照ピクチャリスト中の１つの参照ピクチャに関する単方向予測モードにリンクされる。たとえば、動き補償ユニット８２は、シングルビット２値化の０が好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを表し、２値化の１０が非好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを表し、２値化の１１が双方向予測モードを表すように、２値化を適応させ得る。場合によっては、動き補償ユニット８２は、独立して、動き予測方向を示すシンタックス要素の各ステータスがどれくらいの頻度で発生するかに基づいて動き予測方向についてのシンタックス要素を適応的に２値化し得る。適応型２値化に基づいて、動き補償ユニット８２は、現在のビデオブロックが好適参照リスト中の参照ピクチャに関する単方向予測モードを使用して符号化されていることを示すように定義されたシンタックス要素のシングルビット２値化を復号し得る。
【０１２０】
[0125]別の例として、動き補償ユニット８２は、現在のビデオブロックの動き予測方向についての従来のシンタックス要素、すなわち、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃを表すために割り当てられた値を受信し得る。動き補償ユニット８２は、単方向予測モードを使用して現在のビデオブロックが符号化されていることを示すように定義されたシンタックス要素の第１のビットに割り当てられたシングルビット値を復号し得る。動き補償ユニット８２は、次いで、単方向予測モードのために好適参照ピクチャリストが使用されることを示すように定義されたシンタックス要素の第２のビットに割り当てられた小数ビット値を復号し得る。第２のビットを表すために使用される小数ビット値は、構成データに従って好適参照ピクチャリストのほうへバイアスされた第２のビットの確率初期設定に基づき得る。確率が高いほど、シンタックス要素を表すために使用される値の長さがより短くなる。第２のビットが好適参照ピクチャリストを示す確率が高いと、第２のビットを小数ビット値、すなわち、１ビット未満によって表すことが可能になる。
【０１２１】
[0126]次に、双方向予測の場合にビデオブロックについての予測情報をコーディングするコストを低減するための技法について説明する。ビデオデコーダ３０は、ビデオエンコーダ２０から受信したシンタックスから現在のビデオフレームのための動きベクトルを復号する。動きベクトルについての従来のシンタックス要素は、動きベクトルと動き予測子との間の差を示すように定義された第１のシンタックス要素、すなわち、ｍｖｄと、当該動き予測子が生成される参照ピクチャの参照ピクチャリスト中のインデックスを示すように定義された第２のシンタックス要素、すなわち、ｒｅｆ＿ｉｄｘとを含む。現在のビデオフレームがＧＰＢフレームに指定され、したがって、リスト０  ９４とリスト１  ９６とが同一の参照ピクチャのための識別子を含むとき、第１の動きベクトルと第２の動きベクトルとは、同じ参照ピクチャまたは実質的に類似する参照ピクチャのいずれかを指し示す。したがって、ＧＰＢフレームのビデオブロックのための第１の動きベクトルと第２の動きベクトルとは、高度に相関し、ジョイント符号化され得る。
【０１２２】
[0127]本開示の技法の一例によれば、ビデオデコーダ３０は、シンタックス要素に基づいてＧＰＢフレームの現在のビデオブロックのための第１の動きベクトルと第２の動きベクトルとをジョイント復号する。このようにして、動き補償ユニット８２は、従来、動きベクトルを個別に復号するために使用されるシンタックス要素を低減するかまたは削除することによって、動きベクトルをシグナリングするために使用されるビットを低減し得る。
【０１２３】
[0128]第１の動きベクトルは、従来、第１の動きベクトルと第１の動き予測子との間の差を示す第１のシンタックス要素、すなわち、ｍｖｄと、第１の動き予測子が生成された参照ピクチャのリスト０  ９４中のインデックスを示す第２のシンタックス要素、すなわち、ｒｅｆ＿ｉｄｘとに基づいて復号され得る。動き補償ユニット８２は、第２のシンタックス要素によって識別されるビデオフレーム中の隣接ビデオブロックの動きベクトルから、現在のビデオブロックの第１の動きベクトルのための第１の動き予測子を生成する。このようにして、ビデオデコーダ３０は、第１のシンタックス要素に基づいて、第１の動き予測子に対してビデオブロックのための第１の動きベクトルを復号し得る。
【０１２４】
[0129]第２の動きベクトルは、次いで、第１の動きベクトルに対して復号され得る。動き補償ユニット８２は、隣接ビデオブロックからの第２の動きベクトルのための第２の動き予測子を生成しないことがあるが、代わりに第２の動き予測子として第１の動きベクトルを使用する。このようにして、ビデオデコーダ３０は、第１の動きベクトルと第２の動きベクトルとの間の差に基づいて第２の動きベクトルを復号し得る。いくつかの例では、動き補償ユニット８２は、第２の動きベクトルについてのいかなるシンタックス要素も受信しないことがある。他の例では、動き補償ユニット８２は、第２の動きベクトルと第１の動きベクトルとの間の差を示すように定義された第１のシンタックス要素のみを受信し得る。
【０１２５】
[0130]いくつかの例では、現在のブロックの動きベクトルのための動き予測子は、隣接ブロックの複数の動きベクトルから生成され得る。この場合、動き補償ユニット８２は、隣接ビデオブロックの複数の候補動きベクトルから、現在のビデオブロックの第１の動きベクトルのための第１の動き予測子を生成し得る。動き補償ユニット８２はまた、第１の動きベクトルを含む複数の候補動きベクトルから、現在のビデオブロックの第２の動きベクトルのための第２の動き予測子を生成し得る。この場合、第２の動きベクトルは、依然として、第１の動きベクトルに対して復号され得るが、第１の動きベクトルに基づくことに限定するものではない。
【０１２６】
[0131]現在のフレームがＧＰＢフレームであり、したがって、第１の参照ピクチャリストと第２の参照ピクチャリストとが同一の参照ピクチャのための識別子を含むとき、動き予測子は、隣接ビデオブロックの動きベクトルとは異なるリストから生成され得る。たとえば、隣接ビデオブロックの動きベクトルがリスト０  ９４中の参照ピクチャをさし示す場合、動き補償ユニット８２は、リスト０  ９４またはリスト１  ９６のいずれかの中の参照ピクチャから、現在のビデオブロックの動きベクトルのための第１の動き予測子を生成し得る。リスト０  ９４とリスト１  ９６とは、同じ順序で同一の複数の参照ピクチャを含むので、動き予測子が生成され、動きベクトルについての第２のシンタックス要素によって識別される参照ピクチャのインデックスは、両方の参照ピクチャリスト９４、９６の中の同じ参照ピクチャを参照する。
【０１２７】
[0132]場合によっては、第１の動き予測子を生成するために使用される、隣接ビデオブロックの動きベクトルは、現在のビデオブロックの第１の動きベクトルとして、同じ参照ピクチャリスト、たとえば、リスト０  ９４中で利用可能でないことがある。本開示の技法によれば、隣接ビデオブロックの動きベクトルがリスト０  ９４中で利用可能でないとき、動き補償ユニット８２は、リスト１  ９６から第１の動き予測子を計算し得る。これは、隣接ビデオブロックの動きベクトルが当初リスト１  ９６から復号され、リスト０  ９４に記憶されなかった場合に起こり得る。追加の解決策として、動き補償ユニット８２は、各参照ピクチャリストから復号される動きベクトルを両方の参照ピクチャリストに記憶し得る。たとえば、動き補償ユニットが、ＧＰＢフレーム中の隣接ビデオブロックについて、リスト０  ９４から動きベクトルを復号するとき、動き補償ユニット８２は、リスト０  ９４とリスト１  ９６の両方に当該動きベクトルを記憶し得る。このようにして、動き補償ユニット８２は、常に、参照ピクチャリスト９４、９６のいずれかから、隣接ビデオブロックの動きベクトルのための動き予測子を生成し得る。
【０１２８】
[0133]逆量子化ユニット８６は、ビットストリームで供給され、エントロピー復号ユニット８０によって復号された量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度、および同様に、適用されるべき逆量子化の程度を判断するために、各ＣＵまたはビデオブロックについてビデオエンコーダ２０によって計算される量子化パラメータＱＰYの使用を含み得る。逆変換ユニット８８は、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域における残差ブロックを生成する。
【０１２９】
[0134]動き補償ユニット８２が、動きベクトルと予測シンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換ユニット８８からの残差ブロックを動き補償ユニット８２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器９０は、この加算演算を実行する１つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号されたビデオブロックは、次いで、参照ピクチャメモリ９２に記憶され、参照ピクチャメモリ９２は、その後の動き補償のために参照ピクチャの参照ブロックを与える。参照ピクチャメモリ９２はまた、図１のディスプレイデバイス３２などのディスプレイデバイス上での表示のために、復号されたビデオを生成する。
【０１３０】
[0135]図５は、単方向予測モードを使用してＧＰＢフレームのビデオブロックがコーディングされることを示すシングルビットシンタックス要素を符号化する例示的な動作を示すフローチャートである。図示の動作について、図３からのビデオエンコーダ２０を参照しながら説明する。
【０１３１】
[0136]ビデオエンコーダ２０は、符号化されるべきビデオフレームのＣＵまたはビデオブロックを受信する。ＧＰＢフレームが現在のビデオフレームに対して使用可能であるかまたは許可された場合、ビデオエンコーダ２０は、ＧＰＢフレームが使用可能であることを示すために、ビデオデコーダ３０などのデコーダにＧＰＢ使用可能フラグをシグナリングする（９８）。ビデオエンコーダ２０は、ビデオフレームレベルまたはビデオシーケンスレベルのいずれかにおいて、シンタックス中でＧＰＢ使用可能フラグをシグナリングし得る。ＧＰＢ使用可能フラグは、ＧＰＢフレームが使用不能であること、全体的に使用可能であること、または部分的に使用可能であることを示すように定義され得る。ＧＰＢフレームが全体的に使用可能であるとき、当初指定されたＰフレームは、ブロックごとに１つまたは２つの動きベクトルを用いるＧＰＢフレームとして扱われ得る。ＧＰＢフレームが部分的に使用可能であるとき、Ｐフレーム概念（concept）、Ｂフレーム概念、およびＧＰＢフレーム概念は別個の概念として扱われ得る。
【０１３２】
[0137]ビデオエンコーダ２０は、次いで、ＧＰＢフレームとして現在のビデオフレームを符号化することを決定する（１００）。場合によっては、ビデオエンコーダ２０の動き推定ユニット４２は、ビデオシーケンスの所定のパターンに従ってビデオフレームのためのインター予測モードを判断するように構成され得る。所定のパターンは、シーケンス中の１つまたは複数のビデオフレームをＧＰＢフレームに指定し得る。他の場合には、動き推定ユニット４２は、当初指定されたＰフレームをＧＰＢフレームとして符号化すべきかどうかを判断し得る。後者の場合は、ＧＰＢフレームが全体的に使用可能であるのか部分的に使用可能であるのかに依存し得る。
【０１３３】
[0138]オプションで、ビデオエンコーダ２０は、現在のビデオフレームがＧＰＢフレームとして符号化されることを示すために、ビデオデコーダ３０にＧＰＢフレームフラグをシグナリングする（１０２）。ビデオエンコーダ２０は、ビデオスライスレベル、ビデオフレームレベル、またはビデオシーケンスレベルのうちの１つにおいて、シンタックス中でＧＰＢフレームフラグをシグナリングし得る。そのＧＰＢフレームフラグは、シーケンス内の所与のフレームがＧＰＢフレームとして符号化され、したがって、動き予測方向が低減ビットシンタックスで符号化されることをビデオデコーダ３０に明示的に通知するために使用され得る。しかし、場合によっては、ビデオエンコーダ２０は、ＧＰＢフレーム符号化を明示的にシグナリングしないことがある。その場合には、ビデオエンコーダ２０は、参照ピクチャリストが同一であるとき、所与のフレームがＧＰＢフレームとして符号化されることをビデオデコーダ３０に暗黙的にシグナリングし得る。ＧＰＢフレーム符号化の明示的または暗黙的通知は、ＧＰＢフレームがＢフレームまたはＰフレームとして符号化されるときに必要であり得る。他の場合には、ＧＰＢフレームに対して新しいフレームまたはスライスタイプが定義され得、それにより、ＧＰＢフレーム符号化の追加の明示的または暗黙的通知が不要になる。
【０１３４】
[0139]現在のビデオフレームがＧＰＢフレームとして符号化さると判断されるとき、ビデオエンコーダ２０は、同一の参照ピクチャのための識別子を含む、ＧＰＢフレームのための第１の参照ピクチャリスト（リスト０）６６と第２の参照ピクチャリスト（リスト１）６８とをメモリに記憶する（１０４）。リスト０  ６６とリスト１  ６８とは同一の参照ピクチャを含むので、ビデオエンコーダ２０の動き補償ユニット４４は、単方向予測のために２つの同一の参照ピクチャリストのどちらかを互換的に使用し得る。
【０１３５】
[0140]ビデオエンコーダ２０は、参照ピクチャリストのいずれかの中の参照ピクチャに関する単方向予測を使用してＧＰＢフレームの１つまたは複数のビデオブロックを符号化する（１０６）。本開示の技法によれば、動き補償ユニット４４は、次いで、単方向予測を使用して符号化されるビデオブロックの各々の動き予測方向を表すためにシングルビットシンタックスを生成する。場合によっては、ビデオブロックが単方向予測を使用して符号化されるのか双方向予測を使用して符号化されるのかを示すように定義されたシングルビットシンタックス要素を備える、ＧＰＢフレームに対する別個のシンタックスが定義される（１０８）。シングルビットシンタックス要素の導入により、ブロックを符号化するために単方向予測が使用されるのか双方向予測が使用されるのかを示すように定義された第１のビットと、どの参照ピクチャリストが単方向予測のために使用されるのかを示すように定義された第２のビットとを含む従来のシンタックス要素との混同が回避され得る。
【０１３６】
[0141]ＧＰＢフレームに対して別個のシンタックス要素が定義されているとき（１０８のＹＥＳ分岐）、動き補償ユニット４４は、シングルビットシンタックス要素を生成する。ビデオエンコーダ２０は、単方向予測を使用してビデオブロックが符号化されることを示すために、ビデオブロックの各々についてシングルビットシンタックス要素を符号化する（１１０）。同一の参照ピクチャリストのいずれもが単方向予測のために使用され得るので、ＧＰＢフレームのビデオブロックを符号化するために参照ピクチャリストのどちらが使用されるのかを明示的にシグナリングする必要がない。
【０１３７】
[0142]ＧＰＢフレームに対して別個のシンタックス要素が定義されていないとき（１０８のＮＯ分岐）、動き補償ユニット４４は、従来のシンタックス要素の第１のビットのみを生成し得る。ビデオエンコーダ２０は、単方向予測を使用してビデオブロックが符号化されることを示すために、ビデオブロックの各々についてシンタックス要素の第１のビットのみを符号化する（１１２）。参照ピクチャリストのいずれもが単方向予測のために使用され得るので、動き補償ユニット４４は、ＧＰＢフレームのビデオブロックについてのシンタックス要素の第２のビットを削除する（１１４）。いずれの場合も、ビデオエンコーダ２０は、ブロックレベルまたはＰＵレベルにおいて、ＧＰＢフレームの各ビデオブロックについての動きベクトル情報とともに、動き予測方向についてのシングルビットシンタックスをビデオデコーダにシグナリングする。
【０１３８】
[0143]図６は、単方向予測モードを使用してＧＰＢフレームのビデオブロックがコーディングされることを示すシングルビットシンタックス要素を復号する例示的な動作を示すフローチャートである。図示の演算について、図４からのビデオデコーダ３０を参照しながら説明する。
【０１３９】
[0144]ビデオデコーダ３０は、ビデオエンコーダ２０などの対応するビデオエンコーダから、符号化されたビデオフレームとコーディング情報を表すシンタックス要素とを含むビットストリームを受信する（１１６）。ビデオデコーダ３０は、ビデオブロックまたはＰＵレベル、ビデオスライスレベル、ビデオフレームレベルおよび／あるいはビデオシーケンスレベルにおいてシンタックス要素を受信し得る。ビデオデコーダ３０のエントロピー復号ユニット８０は、量子化係数、動きベクトル、および他の予測シンタックスを生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット８０は、予測ユニット８１の動き補償ユニット８２に動きベクトルと他の予測シンタックスとを転送する。動き補償ユニット８２は、次いで、ＧＰＢフレームが現在のビデオフレームに対して使用可能であるかまたは許可されると判断する（１１７）。動き補償ユニット８２は、ビデオフレームレベルまたはビデオシーケンスレベルのいずれかにおいてシンタックスとともに受信されるＧＰＢ使用可能フラグに基づいて、ＧＰＢフレームが使用可能であると判断し得る。ＧＰＢ使用可能フラグは、ＧＰＢフレームが使用不能であること、全体的に使用可能であること、または部分的に使用可能であることを示すように定義され得る。
【０１４０】
[0145]ビデオデコーダ３０は、ビデオフレームレベルにおいてシンタックスで示される、同一の参照ピクチャのための識別子を含む第１の参照ピクチャリスト（リスト０）９４と第２の参照ピクチャリスト（リスト１）９６とをメモリに記憶する（１１８）。動き補償ユニット８２は、次いで、現在のビデオフレームがＧＰＢフレームとして符号化されると判断する（１２０）。場合によっては、動き補償ユニット８２は、ビデオスライスレベル、ビデオフレームレベル、またはビデオシーケンスレベルのいずれかにおいてシンタックス中で受信される、明示的にシグナリングされたＧＰＢフレームフラグに基づいて、所与のフレームがＧＰＢフレームであると判断し得る。他の場合には、第１の参照ピクチャリスト９４と第２の参照ピクチャリスト９６とが同一の参照ピクチャを含むとき、動き補償ユニット８２は、所与のフレームがＧＰＢフレームであると判断し得る。ＧＰＢフレーム符号化の明示的または暗黙的通知は、ＧＰＢフレームがＢフレームまたはＰフレームとして符号化されるときに必要であり得る。追加の場合には、動き補償ユニット８２は、ＧＰＢフレームに対して定義された新しいフレームまたはスライスタイプに基づいて、所与のフレームがＧＰＢフレームであると判断し得、その新しいフレームまたはスライスタイプによって、ＧＰＢフレーム符号化の追加の明示的または暗黙的通知が不要になる。
【０１４１】
[0146]現在のフレームがＧＰＢフレームであると判断されるとき、動き補償ユニット８２は、単方向予測を使用して符号化されるＧＰＢフレーム中の各ビデオブロックの動き予測方向がシングルビットシンタックスによって表され得ることに気づく。リスト０  ９４とリスト１  ９６とは同一の参照ピクチャを含むので、動き補償ユニット８２は、単方向予測のために２つの同一の参照ピクチャリストのいずれをも互換的に使用し得る。
【０１４２】
[0147]場合によっては、ビデオブロックが単方向予測を使用して符号化されるのか双方向予測を使用して符号化されるのかを示すように定義されたシングルビットシンタックス要素を備えるＧＰＢフレームに対して別個のシンタックスが定義される（１２４）。シングルビットシンタックス要素の導入により、ブロックを符号化するために単方向予測が使用されるのか双方向予測が使用されるのかを示す第１のビットと、どの参照ピクチャリストが単方向予測のために使用されるのかを示す第２のビットとを含む従来のシンタックス要素との混同が回避され得る。
【０１４３】
[0148]ＧＰＢフレームに対して別個のシンタックス要素が定義されているとき（１２４のＹＥＳ分岐）、動き補償ユニット８２は、単方向予測を使用してビデオブロックが符号化されることを示すシングルビットシンタックス要素をパースする（１２６）。同一の参照ピクチャリストのいずれもが単方向予測モードのために使用され得るので、動き補償ユニット８２は、単方向予測のために参照ピクチャリストのうちの１つを使用する。ＧＰＢフレームに対して別個のシンタックス要素が定義されていないとき（１２２のＮＯ分岐）、動き補償ユニット８２は、単方向予測を使用してビデオブロックが符号化されることを示すシンタックス要素の第１のビットのみについてシンタックス要素をパースする（１２８）。動き補償ユニット８２は、単方向予測モードのために参照ピクチャリストのいずれかを使用する。いずれの場合も、ビデオデコーダ３０は、その後、好適参照ピクチャリストからの単方向予測を使用してＧＰＢフレームの１つまたは複数のビデオブロックを復号する（１３０）。
【０１４４】
[0149]図７は、２ビット未満を使用して参照ピクチャリストからの単方向予測モードを使用してビデオブロックがコーディングされることを示す１つまたは複数のシンタックス要素を符号化する例示的な動作を示すフローチャートである。図示の動作について、図３からのビデオエンコーダ２０を参照しながら説明する。
【０１４５】
[0150]ビデオエンコーダ２０は、符号化されるべきビデオフレームのＣＵまたはビデオブロックを受信する。ビデオエンコーダ２０は、次いで、現在のビデオフレームの符号化モードを判断する（１３２）。場合によっては、ビデオエンコーダ２０の動き推定ユニット４２は、ビデオシーケンスの所定のパターンに従ってビデオフレームのためのインター予測モードを判断するように構成され得る。所定のパターンは、シーケンス中のビデオフレームをＰフレームおよび／またはＢフレームに指定し得る。場合によっては、ＧＰＢフレームが使用可能であり得、したがって、１つまたは複数のビデオフレームがＧＰＢフレームに指定され得るか、または動き推定ユニット４２は、当初指定されたＰフレームをＧＰＢフレームとして符号化することを判断し得る。
【０１４６】
[0151]現在のビデオフレームがＧＰＢフレームとして符号化さると判断されるとき（１３４のＹＥＳ分岐）、ビデオエンコーダ２０は、同一の参照ピクチャの識別子を含む、ＧＰＢフレームのための第１の参照ピクチャリスト（リスト０）６６と第２の参照ピクチャリスト（リスト１）６８とをメモリに記憶する（１３６）。リスト０  ６６とリスト１  ６８とは同一の参照ピクチャを含むので、ビデオエンコーダ２０の動き補償ユニット４４は、単方向予測モードのために２つの同一の参照ピクチャリストのいずれもが好適参照ピクチャリストとして使用し得る。
【０１４７】
[0152]現在のビデオフレームがＰフレームまたはＢフレームとして符号化さると判断されるとき（１３８のＮＯ分岐）、ビデオエンコーダ２０は、異なる参照ピクチャの識別子を含む、フレームのための第１の参照ピクチャリスト（リスト０）６６と第２の参照ピクチャリスト（リスト１）６８とをメモリに記憶する（１３８）。従来、リスト０  ６６は、過去の参照ピクチャの識別子を含み、リスト１  ６８は、将来の参照ピクチャの識別子を含む。場合によっては、動き補償ユニット４４は、２つの参照ピクチャリストのうちのどちらの参照ピクチャリストが単方向予測のための好適参照ピクチャリストを備えるかを判断する（１３９）。これは、Ｂフレームのための単方向予測が、ほとんどが、参照ピクチャリストのうちの一方よりも他方に基づいて実行される場合であり得る。たとえば、Ｐフレームと同様に、Ｂフレームのための単方向予測は、一般に、リスト０  ６６からの過去の参照ピクチャに基づいて実行され得る。その例では、動き補償ユニット４４は、リスト０  ６６が好適参照ピクチャリストであると判断し得る。
【０１４８】
[0153]ビデオエンコーダ２０は、好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを使用して現在のビデオフレームの１つまたは複数のビデオブロックを符号化する（１４０）。本開示の技法によれば、動き補償ユニット４４は、次いで、ビデオブロックの各々の動き予測方向を示す１つまたは複数のシンタックス要素を生成する。ビデオエンコーダ２０は、動き予測方向についてのシンタックス要素を表すための値を割り当てる。ビデオエンコーダ２０は、次いで、ブロックレベルまたはＰＵレベルにおいて、現在のビデオフレームの各ビデオブロックについての動きベクトル情報とともに、動き予測方向についてのシンタックス要素に割り当てられた値をビデオデコーダにシグナリングする。
【０１４９】
[0154]場合によっては、エントロピー符号化ユニット５６は、各シンタックス要素を１ビットまたはバイナリビットのシーケンスに２値化し得る。動き予測方向についての従来のシンタックス要素は、ブロックを符号化するために単方向予測が使用されるのか双方向予測が使用されるのかを示す第１のビットと、どの参照ピクチャリストが単方向予測のために使用されるのかを示す第２のビットとを含む。従来、２値化の０は双方向予測を表し、２値化の１０はリスト０からの単方向予測を表し、２値化の１１はリスト１からの単方向予測を表す。
【０１５０】
[0155]図示の例では、動き補償ユニット４４は、好適参照ピクチャリストに関する単方向予測モードを示すシンタックス要素にシングルビット２値化を適応的にリンクする（１４２）。動き補償ユニット４４は、動き予測方向を示すシンタックス要素の各ステータスがどのくらいの頻度で発生するかに基づいて２値化を適応させ得る。好適参照ピクチャリストからの単方向予測が他の予測モードよりも頻繁に使用されるとき、好適参照ピクチャリスト中の参照ピクチャからの単方向予測モードにシングルビット２値化０をリンクすることがより効率的であり得る。たとえば、リスト０が好適参照ピクチャリストである場合、動き補償ユニット４４は、シングルビット２値化の０が、リスト０中の参照ピクチャに関する単方向予測モードを表し、２値化の１０が、リスト１中の参照ピクチャに関する単方向予測モードを表し、２値化の１１が、双方向予測モードを表すように、２値化を適応させ得る。
【０１５１】
[0156]ビデオエンコーダ２０は、次いで、ビデオデコーダ３０などの対応するビデオデコーダに、動き予測方向を示すシンタックス要素の適応型２値化をシグナリングする（１４４）。動き補償ユニット４４は、ビデオブロックまたはＰＵレベル、ＣＵレベル、ビデオスライスレベル、ビデオフレームレベル、あるいはビデオシーケンスレベルのうちの１つにおいて２値化を適応させ、シグナリングし得る。
【０１５２】
[0157]図８は、２ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを使用してビデオブロックがコーディングされることを示す１つまたは複数のシンタックス要素を符号化する別の例示的な動作を示すフローチャートである。図示の動作について、図３からのビデオエンコーダ２０を参照しながら説明する。
【０１５３】
[0158]ビデオエンコーダ２０は、符号化されるべきビデオフレームのＣＵまたはビデオブロックを受信する。ビデオエンコーダ２０は、次いで、現在のビデオフレームの符号化モードを判断する（１５０）。場合によっては、ビデオエンコーダ２０の動き推定ユニット４２は、ビデオシーケンスの所定のパターンに従ってビデオフレームのためのインター予測モードを判断するように構成され得る。所定のパターンは、シーケンス中のビデオフレームをＰフレームおよび／またはＢフレームに指定し得る。場合によっては、ＧＰＢフレームが使用可能であり得、したがって、１つまたは複数のビデオフレームがＧＰＢフレームに指定され得るか、または動き推定ユニット４２は、当初指定されたＰフレームをＧＰＢフレームとして符号化することを判断し得る。
【０１５４】
[0159]現在のビデオフレームがＧＰＢフレームとして符号化さると判断されるとき（１５２のＹＥＳ分岐）、ビデオエンコーダ２０は、同一の参照ピクチャの識別子を含む、ＧＰＢフレームのための第１の参照ピクチャリスト（リスト０）６６と第２の参照ピクチャリスト（リスト１）６８とをメモリに記憶する（１５４）。リスト０  ６６とリスト１  ６８とは同一の参照ピクチャを含むので、ビデオエンコーダ２０の動き補償ユニット４４は、単方向予測モードのために２つの同一の参照ピクチャリストのいずれもを好適参照ピクチャリストとして使用し得る。
【０１５５】
[0160]現在のビデオフレームがＰフレームまたはＢフレームとして符号化さると判断されるとき（１５２のＮＯ分岐）、ビデオエンコーダ２０は、異なる参照ピクチャの識別子を含む、フレームのための第１の参照ピクチャリスト（リスト０）６６と第２の参照ピクチャリスト（リスト１）６８とをメモリに記憶する（１５６）。従来、リスト０  ６６は、過去の参照ピクチャの識別子を含み、リスト１  ６８は、将来の参照ピクチャの識別子を含む。場合によっては、動き補償ユニット４４は、２つの参照ピクチャリストのうちのどちらの参照ピクチャリストが単方向予測のための好適参照ピクチャリストを備えるかを判断する（１５７）。これは、Ｂフレームのための単方向予測が、ほとんどが、参照ピクチャリストのうちの一方よりも他方に基づいて実行される場合であり得る。たとえば、Ｐフレームと同様に、Ｂフレームのための単方向予測は、一般に、リスト０  ６６からの過去の参照ピクチャに基づいて実行され得る。その例では、動き補償ユニット４４は、リスト０  ６６が好適参照ピクチャリストであると判断し得る。
【０１５６】
[0161]ビデオエンコーダ２０は、好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを使用して現在のビデオフレームの１つまたは複数のビデオブロックを符号化する（１５８）。本開示の技法によれば、動き補償ユニット４４は、次いで、ビデオブロックの各々の動き予測方向を示す１つまたは複数のシンタックス要素を生成する。ビデオエンコーダ２０は、動き予測方向についてのシンタックス要素を表すための値を割り当てる。ビデオエンコーダ２０は、次いで、ブロックレベルまたはＰＵレベルにおいて、現在のビデオフレームの各ビデオブロックについての動きベクトル情報とともに、動き予測方向についてのシンタックス要素に割り当てられた値をビデオデコーダにシグナリングする。
【０１５７】
[0162]動き予測方向についての従来のシンタックス要素は、ブロックを符号化するために単方向予測が使用されるのか双方向予測が使用されるのかを示す第１のビットと、どの参照ピクチャリストが単方向予測のために使用されるのかを示す第２のビットとを含む。各ビットについて、エントロピー符号化ユニット５６は、コンテキストに基づいて当該ビットが１または０である確率を推定する。確率がより高くなると、シンタックス要素を符号化するために使用される値の長さがより短くなる。場合によっては、値は、小数ビット、すなわち、１ビット未満を備え得る。
【０１５８】
[0163]図示の例では、動き補償ユニット４４は、シンタックス要素の確率を好適参照ピクチャリストのほうへバイアスする構成データを参照する（１６０）。単方向予測モードの場合、参照ピクチャリストのうちの１つが単方向予測のために他の参照ピクチャリストよりも好適であるとき、シンタックス要素が好適参照ピクチャリストを示す確率を高くすることがより効率的であり得る。たとえば、動き補償ユニット４４は、シンタックス要素の第２のビットの状態値を０に設定し、したがって、構成データによればそのビットが０である確率、すなわち、リスト０を示す確率は０．９９９９である。
【０１５９】
[0164]ビデオエンコーダ２０は、単方向予測モードを使用してビデオブロックが符号化されることを示すために、ビデオブロックの各々の動き予測方向についてのシンタックス要素の第１のビットにシングルビット値を割り当てる（１６２）。ビデオエンコーダ２０は、次いで、単方向予測モードのために使用される好適参照ピクチャリストを示すために、ビデオブロックの各々の動き予測方向についてのシンタックス要素の第２のビットに小数ビット値を割り当てる（１６４）。
【０１６０】
[0165]図９は、双方向予測を使用して符号化されたＧＰＢフレームのビデオブロックのための第１の動きベクトルと第２の動きベクトルとをジョイントコーディングする例示的な動作を示すフローチャートである。図示の動作について、図３からのビデオエンコーダ２０と図４からのビデオデコーダ３０の両方を参照しながら説明する。
【０１６１】
[0166]最初に、図３からのビデオエンコーダ２０を参照しながら、動きベクトルをジョイント符号化する動作について説明する。ビデオエンコーダ２０は、符号化されるべきビデオフレームのＣＵまたはビデオブロックを受信する。ビデオエンコーダ２０は、次いで、現在のビデオフレームがＧＰＢフレームであると判断する（１７０）。場合によっては、ビデオエンコーダ２０の動き推定ユニット４２は、ビデオシーケンスの所定のパターンに従ってビデオフレームのためのインター予測モードを判断するように構成され得る。所定のパターンは、シーケンス中の１つまたは複数のビデオフレームをＧＰＢフレームに指定し得る。他の場合には、動き推定ユニット４２は、当初指定されたＰフレームをＧＰＢフレームとして符号化すべきかどうかを判断し得る。後者の場合は、ＧＰＢフレームが全体的に使用可能であるのか部分的に使用可能であるのかに依存し得る。
【０１６２】
[0167]現在のビデオフレームがＧＰＢフレームとして符号化さると判断されるとき、ビデオエンコーダ２０は、同一の参照ピクチャの識別子を含む、ＧＰＢフレームのための第１の参照ピクチャリスト（リスト０）６６と第２の参照ピクチャリスト（リスト１）６８とをメモリに記憶する（１７２）。双方向予測の場合、ビデオエンコーダ２０の動き推定ユニット４２は、ＧＰＢフレームの１つまたは複数のビデオブロックの各々について、リスト０  ６６から第１の動きベクトルを計算し、リスト１  ６８から第２の動きベクトルを計算する。ビデオエンコーダ２０は、次いで、リスト０  ６６からの第１の動きベクトルとリスト１  ６８からの第２の動きベクトルとを用いる双方向予測を使用してＧＰＢフレームの１つまたは複数のビデオブロックを符号化する（１７４）。
【０１６３】
[0168]本開示の技法によれば、動き補償ユニット４４は、双方向予測を使用して符号化されるビデオブロックの各々について動きベクトル情報をシグナリングするために使用されるビットを低減し得る。リスト０  ６６とリスト１  ６８とは同一の参照ピクチャを含むので、第１の動きベクトルと第２の動きベクトルとは、同じ参照ピクチャまたは実質的に類似する参照ピクチャのいずれかから計算される。したがって、ＧＰＢフレームのビデオブロックのための第１の動きベクトルと第２の動きベクトルとは高度に相関し、その２つの動きベクトルをジョイント符号化することがより効率的である。
【０１６４】
[0169]  動き補償ユニット４４は、リスト０  ６６からの隣接ビデオブロックの動きベクトルから、現在のビデオブロックの第１の動きベクトルのための第１の動き予測子を生成する（１７６）。ビデオエンコーダ２０は、第１の動き予測子に対してビデオブロックのための第１の動きベクトルを符号化する（１７８）。第１の動きベクトルは、従来、第１の動きベクトルと第１の動き予測子との間の差を示すように定義された第１のシンタックス要素と、第１の動き予測子が生成された参照ピクチャのリスト０  ６６中のインデックスを示すように定義された第２のシンタックス要素として符号化され得る。
【０１６５】
[0170]ビデオエンコーダ２０は、次いで、第１の動きベクトルに対して、ビデオブロックのための第２の動きベクトルを符号化する（１８０）。動き補償ユニット４４は、従来、第２の動きベクトルを表すために使用されるシンタックス要素を低減するかまたは削除し得る。このようにして、第２の動きベクトルは、第１の動きベクトルと第２の動きベクトルとの間の差として符号化され得る。ビデオエンコーダ２０は、ブロックレベルまたはＰＵレベルにおいて、ＧＰＢフレームの各ビデオブロックについての他の予測シンタックスとともに、ジョイントコーディングされた動きベクトルをビデオデコーダにシグナリングする。
【０１６６】
[0171]次に、動きベクトルをジョイント復号する動作について説明する。ビデオデコーダ３０は、ビデオエンコーダ２０などの対応するビデオエンコーダから、符号化されたビデオフレームとコーディング情報を表すシンタックス要素とを含むビットストリームを受信する。ビデオデコーダ３０は、ビデオブロックまたはＰＵレベル、ビデオスライスレベル、ビデオフレームレベルおよび／あるいはビデオシーケンスレベルにおいてシンタックス要素を受信し得る。ビデオデコーダ３０のエントロピー復号ユニット８０は、量子化係数、動きベクトル、および他の予測シンタックスを生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット８０は、予測ユニット８１の動き補償ユニット８２に動きベクトルと他の予測シンタックスとを転送する。
【０１６７】
[0172]動き補償ユニット８２は、次いで、現在のビデオフレームがＧＰＢフレームであると判断する（１７０）。場合によっては、動き補償ユニット８２は、ビデオスライスレベル、ビデオフレームレベル、またはビデオシーケンスレベルのいずれかにおいてシンタックス中で受信される、明示的にシグナリングされたＧＰＢフレームフラグに基づいて、所与のフレームがＧＰＢフレームであると判断し得る。他の場合には、ビデオフレームレベルにおいてシンタックス中で受信した第１の参照ピクチャリストと第２の参照ピクチャリストとが同一の参照ピクチャを含むとき、動き補償ユニット８２は、所与のフレームがＧＰＢフレームであると判断し得る。さらなる場合には、動き補償ユニット８２は、ＧＰＢフレームに対して定義された新しいフレームまたはスライスタイプに基づいて、所与のフレームがＧＰＢフレームであると判断し得る。
【０１６８】
[0173]ビデオデコーダ３０は、ビデオフレームレベルにおいてシンタックスで示される、同一の参照ピクチャの識別子を含む第１の参照ピクチャリスト（リスト０）９４と第２の参照ピクチャリスト（リスト１）９６とをメモリに記憶する（１７２）。双方向予測の場合、ビデオエンコーダ３０は、リスト０  ９４からの第１の動きベクトルとリスト１  ９６からの第２の動きベクトルとを用いる双方向予測を使用して、ＧＰＢフレームの１つまたは複数のビデオブロックを復号する（１７４）。
【０１６９】
[0174]本開示の技法によれば、ビデオデコーダ３０は、ビデオブロックまたはＰＵレベルにおいて受信されるシンタックス要素に基づいてＧＰＢフレームのビデオブロックを復号するために使用される第１の動きベクトルと第２の動きベクトルとをジョイント復号する。第１の動きベクトルは、従来、第１の動きベクトルと第１の動き予測子との間の差を示す第１のシンタックス要素と、第１の動き予測子が生成された参照ピクチャのリスト０  ９４中のインデックスを示す第２のシンタックス要素とに基づいて復号され得る。動き補償ユニット８２は、第２のシンタックス要素によって識別される隣接ビデオブロックの動きベクトルから、現在のビデオブロックの第１の動きベクトルのための第１の動き予測子を生成する（１７６）。ビデオデコーダ３０は、第１のシンタックス要素に基づいて、第１の動き予測子に対してビデオブロックのための第１の動きベクトルを復号する（１７８）。
【０１７０】
[0175]ビデオデコーダ３０は、次いで、第１の動きベクトルに対して、ビデオブロックのための第２の動きベクトルを復号する（１８０）。動き補償ユニット８２は、従来、第２の動きベクトル復号するために使用されるシンタックス要素を低減するかまたは削除し得る。このようにして、第２の動きベクトルは、第１の動きベクトルと第２の動きベクトルとの間の差に基づいて復号され得る。
【０１７１】
[0176]１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従ってある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体など、有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１７２】
[0177]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。さらに、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１７３】
[0178]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素において完全に実装され得る。
【０１７４】
[0179]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示した技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］ビデオデータをコーディングする方法であって、
第１の参照ピクチャリストと第２の参照ピクチャリストとを記憶することと、前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとは同一であり、
前記第１の参照ピクチャリスト中の参照ピクチャからの第１の動きベクトルと前記第２の参照ピクチャリスト中の参照ピクチャからの第２の動きベクトルとを用いる双方向予測を使用して、一般化Ｐ／Ｂ（ＧＰＢ）フレームに指定されたビデオフレームのビデオブロックをコーディングすることと、
前記ビデオブロックのための前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングすることと、
を備える方法。
［２］前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングすることは、前記第１の動きベクトルと前記第２の動きベクトルとが同じ参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングすることを備える、［１］に記載の方法。
［３］前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングすることは、前記第１の動きベクトルと前記第２の動きベクトルとが実質的に類似する参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングすることを備える、［１］に記載の方法。
［４］前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングすることは、
隣接ビデオブロックの動きベクトルから生成された第１の動き予測子に対して前記第１の動きベクトルをコーディングすることと、
前記第１の動きベクトルに対して前記第２の動きベクトルをコーディングすることと、
を備える、［１］に記載の方法。
［５］隣接ビデオブロックの１つまたは複数の候補動きベクトルから前記第１の動きベクトルのための前記第１の動き予測子を生成することと、
前記第１の動きベクトルを含む１つまたは複数の候補動きベクトルから前記第２の動きベクトルのための第２の動き予測子を生成することと、
をさらに備える、［４］に記載の方法。
［６］前記第１の動きベクトルと前記第２の動きベクトルとが異なる参照ピクチャをさし示すとき、前記第２の動きベクトルのための第２の動き予測子として前記第１の動きベクトルを使用する前に、前記第１の動きベクトルと前記第２の動きベクトルとの間の時間距離に従って前記第１の動きベクトルをスケーリングすることをさらに備える、［４］に記載の方法。
［７］前記第１の動きベクトルをコーディングすることは、前記第１の動きベクトルと前記第１の動き予測子との間の差を示すように定義された第１のシンタックス要素をコーディングすることと、前記第１の動き予測子が生成された前記参照ピクチャの前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとのうちの１つの中のインデックスを示すように定義された第２のシンタックス要素をコーディングすることと、を備え、
前記第２の動きベクトルをコーディングすることは、前記第２の動きベクトルと前記第１の動きベクトルとの間の差をコーディングすることを備える、［４］に記載の方法。
［８］前記隣接ビデオブロックの前記動きベクトルは、前記第１の参照ピクチャリスト中の参照ピクチャをさし示し、
前記第１の参照ピクチャリストまたは前記第２の参照ピクチャリストのいずれかの中の前記参照ピクチャから前記第１の動き予測子を生成することをさらに備える、［４］に記載の方法。
［９］前記隣接ビデオブロックの前記動きベクトルが前記第１の参照ピクチャリストから利用可能でないとき、前記第２の参照ピクチャリスト中の前記参照ピクチャから前記第１の動き予測子を生成することをさらに備える、［８］に記載の方法。
［１０］前記第１の参照ピクチャリスト中の前記参照ピクチャからの前記動きベクトルを用いる単方向予測モードを使用して前記隣接ビデオブロックをコーディングすることと、
前記第１の参照ピクチャリストと前記第２の参照ピクチャリストの両方に前記動きベクトルについてのデータを記憶することと、
をさらに備える、［８］に記載の方法。
［１１］第１の参照ピクチャリストと第２の参照ピクチャリストとを記憶するメモリと、前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとは同一であり、
前記第１の参照ピクチャリスト中の参照ピクチャからの第１の動きベクトルと前記第２の参照ピクチャリスト中の参照ピクチャからの第２の動きベクトルとを用いる双方向予測を使用して、一般化Ｐ／Ｂ（ＧＰＢ）フレームに指定されたビデオフレームのビデオブロックをコーディングし、前記ビデオブロックのための前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングするプロセッサと、
を備える、ビデオコーディングデバイス。
［１２］前記プロセッサは、前記第１の動きベクトルと前記第２の動きベクトルとが同じ参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングする、［１１］に記載のビデオコーディングデバイス。
［１３］前記プロセッサは、前記第１の動きベクトルと前記第２の動きベクトルとが実質的に類似する参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングする、［１１］に記載のビデオコーディングデバイス。
［１４］前記プロセッサは、
隣接ビデオブロックの動きベクトルから生成された第１の動き予測子に対して前記第１の動きベクトルをコーディングし、
前記第１の動きベクトルに対して前記第２の動きベクトルをコーディングする、［１１］に記載のビデオコーディングデバイス。
［１５］前記プロセッサは、
隣接ビデオブロックの１つまたは複数の候補動きベクトルから前記第１の動きベクトルのための前記第１の動き予測子を生成し、
前記第１の動きベクトルを含む１つまたは複数の候補動きベクトルから前記第２の動きベクトルのための第２の動き予測子を生成する、
［１４］に記載のビデオコーディングデバイス。
［１６］前記第１の動きベクトルと前記第２の動きベクトルとが異なる参照ピクチャをさし示すとき、前記プロセッサは、前記第２の動きベクトルのための第２の動き予測子として前記第１の動きベクトルを使用する前に、前記第１の動きベクトルと前記第２の動きベクトルとの間の時間距離に従って前記第１の動きベクトルをスケーリングする、［１４］に記載のビデオコーディングデバイス。
［１７］前記プロセッサは、
前記第１の動きベクトルと前記第１の動き予測子との間の差を示すように定義された第１のシンタックス要素として前記第１の動きベクトルをコーディングし、前記第１の動き予測子が生成された前記参照ピクチャの前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとのうちの１つの中のインデックスを示すように定義された第２のシンタックス要素をコーディングし、
前記第２の動きベクトルと前記第１の動きベクトルとの間の差として前記第２の動きベクトルをコーディングする、
［１４］に記載のビデオコーディングデバイス。
［１８］前記隣接ビデオブロックの前記動きベクトルは、前記第１の参照ピクチャリスト中の参照ピクチャをさし示し、前記プロセッサは、前記第１の参照ピクチャリストまたは前記第２の参照ピクチャリストのいずれかの中の前記参照ピクチャから前記第１の動き予測子を生成する、［１４］に記載のビデオコーディングデバイス。
［１９］前記プロセッサは、前記隣接ビデオブロックの前記動きベクトルが前記第１の参照ピクチャリストから利用可能でないとき、前記第２の参照ピクチャリスト中の前記参照ピクチャから前記第１の動き予測子を生成する、［１８］に記載のビデオコーディングデバイス。
［２０］前記プロセッサは、
前記第１の参照ピクチャリスト中の前記参照ピクチャからの前記動きベクトルを用いる単方向予測モードを使用して前記隣接ビデオブロックをコーディングし、
前記第１の参照ピクチャリストと前記第２の参照ピクチャリストの両方に前記動きベクトルについてのデータを記憶する、
［１８］に記載のビデオコーディングデバイス。
［２１］第１の参照ピクチャリストと第２の参照ピクチャリストとを記憶する手段と、前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとは同一であり、
前記第１の参照ピクチャリスト中の参照ピクチャからの第１の動きベクトルと前記第２の参照ピクチャリスト中の参照ピクチャからの第２の動きベクトルとを用いる双方向予測モードを使用して、一般化Ｐ／Ｂ（ＧＰＢ）フレームに指定されたビデオフレームのビデオブロックをコーディングする手段と、
前記ビデオブロックのための前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングする手段と、
を備える、ビデオコーディングデバイス。
［２２］前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングする手段は、前記第１の動きベクトルと前記第２の動きベクトルとが同じ参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングする手段を備える、［２１］に記載のビデオコーディングデバイス。
［２３］前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングする手段は、前記第１の動きベクトルと前記第２の動きベクトルとが実質的に類似する参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングする手段を備える、［２１］に記載のビデオコーディングデバイス。
［２４］隣接ビデオブロックの動きベクトルから生成された第１の動き予測子に対して前記第１の動きベクトルをコーディングする手段と、
前記第１の動きベクトルに対して前記第２の動きベクトルをコーディングする手段と、
をさらに備える、［２１］に記載のビデオコーディングデバイス。
［２５］隣接ビデオブロックの１つまたは複数の候補動きベクトルから前記第１の動きベクトルのための前記第１の動き予測子を生成する手段と、
前記第１の動きベクトルを含む１つまたは複数の候補動きベクトルから前記第２の動きベクトルのための第２の動き予測子を生成する手段と、
をさらに備える、［２４］に記載のビデオコーディングデバイス。
［２６］前記第１の動きベクトルと前記第２の動きベクトルとが異なる参照ピクチャをさし示すとき、前記第２の動きベクトルのための第２の動き予測子として前記第１の動きベクトルを使用する前に、前記第１の動きベクトルと前記第２の動きベクトルとの間の時間距離に従って前記第１の動きベクトルをスケーリングする手段をさらに備える、［２４］に記載のビデオコーディングデバイス。
［２７］前記第１の動きベクトルと前記第１の動き予測子との間の差を示すように定義された第１のシンタックス要素として前記第１の動きベクトルをコーディングし、前記第１の動き予測子が生成された前記参照ピクチャの前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとのうちの１つの中のインデックスを示すように定義された第２のシンタックス要素をコーディングする手段と、
前記第２の動きベクトルと前記第１の動きベクトルとの間の差として前記第２の動きベクトルをコーディングする手段と、
をさらに備える、［２４］に記載のビデオコーディングデバイス。
［２８］前記隣接ビデオブロックの前記動きベクトルは、前記第１の参照ピクチャリスト中の参照ピクチャをさし示し、
前記第１の参照ピクチャリストまたは前記第２の参照ピクチャリストのいずれかの中の前記参照ピクチャから前記第１の動き予測子を生成する手段をさらに備える、［２４］に記載のビデオコーディングデバイス。
［２９］前記隣接ビデオブロックの前記動きベクトルが前記第１の参照ピクチャリストから利用可能でないとき、前記第２の参照ピクチャリスト中の前記参照ピクチャから前記第１の動き予測子を生成する手段をさらに備える、［２８］に記載のビデオコーディングデバイス。
［３０］前記第１の参照ピクチャリスト中の前記参照ピクチャからの前記動きベクトルを用いる単方向予測モードを使用して前記隣接ビデオブロックをコーディングする手段と、
前記第１の参照ピクチャリストと前記第２の参照ピクチャリストの両方に前記動きベクトルについてのデータを記憶する手段と、
をさらに備える、［２８］に記載のビデオコーディングデバイス。
［３１］プロセッサ中で実行されると、前記プロセッサに、
第１の参照ピクチャリストと第２の参照ピクチャリストとを記憶させ、前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとは同一であり、
前記第１の参照ピクチャリストからの第１の動きベクトルと前記第２の参照ピクチャリストからの第２の動きベクトルとを用いる双方向予測を使用して、一般化Ｐ／Ｂ（ＧＰＢ）フレームに指定されたビデオフレームのビデオブロックをコーディングさせ、
前記ビデオブロックのための前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングさせる
ビデオデータをコーディングするための命令を備える、コンピュータ可読記憶媒体。
［３２］前記命令は、前記プロセッサに、前記第１の動きベクトルと前記第２の動きベクトルとが同じ参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングさせる、［３１］に記載のコンピュータ可読記憶媒体。
［３３］前記命令は、前記プロセッサに、前記第１の動きベクトルと前記第２の動きベクトルとが実質的に類似する参照ピクチャをさし示すとき、前記第１の動きベクトルと前記第２の動きベクトルとをジョイントコーディングさせる、［３１］に記載のコンピュータ可読記憶媒体。
［３４］前記命令は、前記プロセッサに、
隣接ビデオブロックの動きベクトルから生成された第１の動き予測子に対して前記第１の動きベクトルをコーディングさせ、
前記第１の動きベクトルに対して前記第２の動きベクトルをコーディングさせる、
［３１］に記載のコンピュータ可読記憶媒体。
［３５］前記プロセッサに、
隣接ビデオブロックの１つまたは複数の候補動きベクトルから前記第１の動きベクトルのための前記第１の動き予測子を生成させ、
前記第１の動きベクトルを含む１つまたは複数の候補動きベクトルから前記第２の動きベクトルのための第２の動き予測子を生成させる、
命令をさらに備える、［３４］に記載のコンピュータ可読記憶媒体。
［３６］前記第１の動きベクトルと前記第２の動きベクトルとが異なる参照ピクチャをさし示すとき、前記プロセッサに、前記第２の動きベクトルのための第２の動き予測子として前記第１の動きベクトルを使用する前に、前記第１の動きベクトルと前記第２の動きベクトルとの間の時間距離に従って前記第１の動きベクトルを前記プロセッサにスケーリングさせる命令をさらに備える、［３４］に記載のコンピュータ可読記憶媒体。
［３７］前記命令は、前記プロセッサに、
前記第１の動きベクトルと前記第１の動き予測子との間の差を示すように定義された第１のシンタックス要素として前記第１の動きベクトルをコーディングさせ、前記第１の動き予測子が生成された前記参照ピクチャの前記第１の参照ピクチャリストと前記第２の参照ピクチャリストとのうちの１つの中のインデックスを示すように定義された第２のシンタックス要素をコーディングさせ、
前記第２の動きベクトルと前記第１の動きベクトルとの間の差として前記第２の動きベクトルをコーディングさせる、
［３４］に記載のコンピュータ可読記憶媒体。
［３８］前記隣接ビデオブロックの前記動きベクトルは、前記第１の参照ピクチャリスト中の参照ピクチャをさし示し、
前記プロセッサに、前記第１の参照ピクチャリストまたは前記第２の参照ピクチャリストのいずれかの中の前記参照ピクチャから前記第１の動き予測子を生成させる命令をさらに備える、［３４］に記載のコンピュータ可読記憶媒体。
［３９］前記プロセッサに、前記隣接ビデオブロックの前記動きベクトルが前記第１の参照ピクチャリストから利用可能でないとき、前記第２の参照ピクチャリスト中の前記参照ピクチャから前記第１の動き予測子を生成させる命令をさらに備える、［３８］に記載のコンピュータ可読記憶媒体。
［４０］前記プロセッサに、
前記第１の参照ピクチャリスト中の前記参照ピクチャからの前記動きベクトルを用いる単方向予測モードを使用して前記隣接ビデオブロックをコーディングさせ、
前記第１の参照ピクチャリストと前記第２の参照ピクチャリストの両方に前記動きベクトルについてのデータを記憶させる
命令をさらに備える、［３８］に記載のコンピュータ可読記憶媒体。
【図１】
0005551317.tif 000006
【図２】
0005551317.tif 000007
【図３】
0005551317.tif 000008
【図４】
0005551317.tif 000009
【図５】
0005551317.tif 000010
【図６】
0005551317.tif 000011
【図７】
0005551317.tif 000012
【図８】
0005551317.tif 000013
【図９】
0005551317.tif 000014