ビデオデータをコーディングする方法であって、第1の参照ピクチャリストと第2の参照ピクチャリストとを記憶することと、前記第1の参照ピクチャリストと前記第2の参照ピクチャリストとは同一であり、前記第1の参照ピクチャリスト中の参照ピクチャからの第1の動きベクトルと前記第2の参照ピクチャリスト中の参照ピクチャからの第2の動きベクトルとを用いる双方向予測を使用して、一般化P/BGPBフレームに指定されたビデオフレームのビデオブロックをコーディングすることと、前記ビデオブロックのための前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングすることと、を備える方法。前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングすることは、前記第1の動きベクトルと前記第2の動きベクトルとが同じ参照ピクチャをさし示すとき、前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングすることを備える、請求項1に記載の方法。前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングすることは、前記第1の動きベクトルと前記第2の動きベクトルとが実質的に類似する参照ピクチャをさし示すとき、前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングすることを備える、請求項1に記載の方法。前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングすることは、隣接ビデオブロックの動きベクトルから生成された第1の動き予測子に対して前記第1の動きベクトルをコーディングすることと、前記第1の動きベクトルに対して前記第2の動きベクトルをコーディングすることと、を備える、請求項1に記載の方法。隣接ビデオブロックの1つまたは複数の候補動きベクトルから前記第1の動きベクトルのための前記第1の動き予測子を生成することと、前記第1の動きベクトルを含む1つまたは複数の候補動きベクトルから前記第2の動きベクトルのための第2の動き予測子を生成することと、をさらに備える、請求項4に記載の方法。前記第1の動きベクトルと前記第2の動きベクトルとが異なる参照ピクチャをさし示すとき、前記第2の動きベクトルのための第2の動き予測子として前記第1の動きベクトルを使用する前に、前記第1の動きベクトルと前記第2の動きベクトルとの間の時間距離に従って前記第1の動きベクトルをスケーリングすることをさらに備える、請求項4に記載の方法。前記第1の動きベクトルをコーディングすることは、前記第1の動きベクトルと前記第1の動き予測子との間の差を示すように定義された第1のシンタックス要素をコーディングすることと、前記第1の動き予測子が生成された前記参照ピクチャの前記第1の参照ピクチャリストと前記第2の参照ピクチャリストとのうちの1つの中のインデックスを示すように定義された第2のシンタックス要素をコーディングすることと、を備え、前記第2の動きベクトルをコーディングすることは、前記第2の動きベクトルと前記第1の動きベクトルとの間の差をコーディングすることを備える、請求項4に記載の方法。前記隣接ビデオブロックの前記動きベクトルは、前記第1の参照ピクチャリスト中の参照ピクチャをさし示し、前記第1の参照ピクチャリストまたは前記第2の参照ピクチャリストのいずれかの中の前記参照ピクチャから前記第1の動き予測子を生成することをさらに備える、請求項4に記載の方法。前記隣接ビデオブロックの前記動きベクトルが前記第1の参照ピクチャリストから利用可能でないとき、前記第2の参照ピクチャリスト中の前記参照ピクチャから前記第1の動き予測子を生成することをさらに備える、請求項8に記載の方法。前記第1の参照ピクチャリスト中の前記参照ピクチャからの前記動きベクトルを用いる単方向予測モードを使用して前記隣接ビデオブロックをコーディングすることと、前記第1の参照ピクチャリストと前記第2の参照ピクチャリストの両方に前記動きベクトルについてのデータを記憶することと、をさらに備える、請求項8に記載の方法。第1の参照ピクチャリストと第2の参照ピクチャリストとを記憶するメモリと、前記第1の参照ピクチャリストと前記第2の参照ピクチャリストとは同一であり、前記第1の参照ピクチャリスト中の参照ピクチャからの第1の動きベクトルと前記第2の参照ピクチャリスト中の参照ピクチャからの第2の動きベクトルとを用いる双方向予測を使用して、一般化P/BGPBフレームに指定されたビデオフレームのビデオブロックをコーディングし、前記ビデオブロックのための前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングするプロセッサと、を備える、ビデオコーディングデバイス。前記プロセッサは、前記第1の動きベクトルと前記第2の動きベクトルとが同じ参照ピクチャをさし示すとき、前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングする、請求項11に記載のビデオコーディングデバイス。前記プロセッサは、前記第1の動きベクトルと前記第2の動きベクトルとが実質的に類似する参照ピクチャをさし示すとき、前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングする、請求項11に記載のビデオコーディングデバイス。前記プロセッサは、隣接ビデオブロックの動きベクトルから生成された第1の動き予測子に対して前記第1の動きベクトルをコーディングし、前記第1の動きベクトルに対して前記第2の動きベクトルをコーディングする、請求項11に記載のビデオコーディングデバイス。前記プロセッサは、隣接ビデオブロックの1つまたは複数の候補動きベクトルから前記第1の動きベクトルのための前記第1の動き予測子を生成し、前記第1の動きベクトルを含む1つまたは複数の候補動きベクトルから前記第2の動きベクトルのための第2の動き予測子を生成する、請求項14に記載のビデオコーディングデバイス。前記第1の動きベクトルと前記第2の動きベクトルとが異なる参照ピクチャをさし示すとき、前記プロセッサは、前記第2の動きベクトルのための第2の動き予測子として前記第1の動きベクトルを使用する前に、前記第1の動きベクトルと前記第2の動きベクトルとの間の時間距離に従って前記第1の動きベクトルをスケーリングする、請求項14に記載のビデオコーディングデバイス。前記プロセッサは、前記第1の動きベクトルと前記第1の動き予測子との間の差を示すように定義された第1のシンタックス要素として前記第1の動きベクトルをコーディングし、前記第1の動き予測子が生成された前記参照ピクチャの前記第1の参照ピクチャリストと前記第2の参照ピクチャリストとのうちの1つの中のインデックスを示すように定義された第2のシンタックス要素をコーディングし、前記第2の動きベクトルと前記第1の動きベクトルとの間の差として前記第2の動きベクトルをコーディングする、請求項14に記載のビデオコーディングデバイス。前記隣接ビデオブロックの前記動きベクトルは、前記第1の参照ピクチャリスト中の参照ピクチャをさし示し、前記プロセッサは、前記第1の参照ピクチャリストまたは前記第2の参照ピクチャリストのいずれかの中の前記参照ピクチャから前記第1の動き予測子を生成する、請求項14に記載のビデオコーディングデバイス。前記プロセッサは、前記隣接ビデオブロックの前記動きベクトルが前記第1の参照ピクチャリストから利用可能でないとき、前記第2の参照ピクチャリスト中の前記参照ピクチャから前記第1の動き予測子を生成する、請求項18に記載のビデオコーディングデバイス。前記プロセッサは、前記第1の参照ピクチャリスト中の前記参照ピクチャからの前記動きベクトルを用いる単方向予測モードを使用して前記隣接ビデオブロックをコーディングし、前記第1の参照ピクチャリストと前記第2の参照ピクチャリストの両方に前記動きベクトルについてのデータを記憶する、請求項18に記載のビデオコーディングデバイス。第1の参照ピクチャリストと第2の参照ピクチャリストとを記憶する手段と、前記第1の参照ピクチャリストと前記第2の参照ピクチャリストとは同一であり、前記第1の参照ピクチャリスト中の参照ピクチャからの第1の動きベクトルと前記第2の参照ピクチャリスト中の参照ピクチャからの第2の動きベクトルとを用いる双方向予測モードを使用して、一般化P/BGPBフレームに指定されたビデオフレームのビデオブロックをコーディングする手段と、前記ビデオブロックのための前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングする手段と、を備える、ビデオコーディングデバイス。前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングする手段は、前記第1の動きベクトルと前記第2の動きベクトルとが同じ参照ピクチャをさし示すとき、前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングする手段を備える、請求項21に記載のビデオコーディングデバイス。前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングする手段は、前記第1の動きベクトルと前記第2の動きベクトルとが実質的に類似する参照ピクチャをさし示すとき、前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングする手段を備える、請求項21に記載のビデオコーディングデバイス。隣接ビデオブロックの動きベクトルから生成された第1の動き予測子に対して前記第1の動きベクトルをコーディングする手段と、前記第1の動きベクトルに対して前記第2の動きベクトルをコーディングする手段と、をさらに備える、請求項21に記載のビデオコーディングデバイス。隣接ビデオブロックの1つまたは複数の候補動きベクトルから前記第1の動きベクトルのための前記第1の動き予測子を生成する手段と、前記第1の動きベクトルを含む1つまたは複数の候補動きベクトルから前記第2の動きベクトルのための第2の動き予測子を生成する手段と、をさらに備える、請求項24に記載のビデオコーディングデバイス。前記第1の動きベクトルと前記第2の動きベクトルとが異なる参照ピクチャをさし示すとき、前記第2の動きベクトルのための第2の動き予測子として前記第1の動きベクトルを使用する前に、前記第1の動きベクトルと前記第2の動きベクトルとの間の時間距離に従って前記第1の動きベクトルをスケーリングする手段をさらに備える、請求項24に記載のビデオコーディングデバイス。前記第1の動きベクトルと前記第1の動き予測子との間の差を示すように定義された第1のシンタックス要素として前記第1の動きベクトルをコーディングし、前記第1の動き予測子が生成された前記参照ピクチャの前記第1の参照ピクチャリストと前記第2の参照ピクチャリストとのうちの1つの中のインデックスを示すように定義された第2のシンタックス要素をコーディングする手段と、前記第2の動きベクトルと前記第1の動きベクトルとの間の差として前記第2の動きベクトルをコーディングする手段と、をさらに備える、請求項24に記載のビデオコーディングデバイス。前記隣接ビデオブロックの前記動きベクトルは、前記第1の参照ピクチャリスト中の参照ピクチャをさし示し、前記第1の参照ピクチャリストまたは前記第2の参照ピクチャリストのいずれかの中の前記参照ピクチャから前記第1の動き予測子を生成する手段をさらに備える、請求項24に記載のビデオコーディングデバイス。前記隣接ビデオブロックの前記動きベクトルが前記第1の参照ピクチャリストから利用可能でないとき、前記第2の参照ピクチャリスト中の前記参照ピクチャから前記第1の動き予測子を生成する手段をさらに備える、請求項28に記載のビデオコーディングデバイス。前記第1の参照ピクチャリスト中の前記参照ピクチャからの前記動きベクトルを用いる単方向予測モードを使用して前記隣接ビデオブロックをコーディングする手段と、前記第1の参照ピクチャリストと前記第2の参照ピクチャリストの両方に前記動きベクトルについてのデータを記憶する手段と、をさらに備える、請求項28に記載のビデオコーディングデバイス。プロセッサ中で実行されると、前記プロセッサに、第1の参照ピクチャリストと第2の参照ピクチャリストとを記憶させ、前記第1の参照ピクチャリストと前記第2の参照ピクチャリストとは同一であり、前記第1の参照ピクチャリストからの第1の動きベクトルと前記第2の参照ピクチャリストからの第2の動きベクトルとを用いる双方向予測を使用して、一般化P/BGPBフレームに指定されたビデオフレームのビデオブロックをコーディングさせ、前記ビデオブロックのための前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングさせるビデオデータをコーディングするための命令を備える、コンピュータ可読記憶媒体。前記命令は、前記プロセッサに、前記第1の動きベクトルと前記第2の動きベクトルとが同じ参照ピクチャをさし示すとき、前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングさせる、請求項31に記載のコンピュータ可読記憶媒体。前記命令は、前記プロセッサに、前記第1の動きベクトルと前記第2の動きベクトルとが実質的に類似する参照ピクチャをさし示すとき、前記第1の動きベクトルと前記第2の動きベクトルとをジョイントコーディングさせる、請求項31に記載のコンピュータ可読記憶媒体。前記命令は、前記プロセッサに、隣接ビデオブロックの動きベクトルから生成された第1の動き予測子に対して前記第1の動きベクトルをコーディングさせ、前記第1の動きベクトルに対して前記第2の動きベクトルをコーディングさせる、請求項31に記載のコンピュータ可読記憶媒体。前記プロセッサに、隣接ビデオブロックの1つまたは複数の候補動きベクトルから前記第1の動きベクトルのための前記第1の動き予測子を生成させ、前記第1の動きベクトルを含む1つまたは複数の候補動きベクトルから前記第2の動きベクトルのための第2の動き予測子を生成させる、命令をさらに備える、請求項34に記載のコンピュータ可読記憶媒体。前記第1の動きベクトルと前記第2の動きベクトルとが異なる参照ピクチャをさし示すとき、前記プロセッサに、前記第2の動きベクトルのための第2の動き予測子として前記第1の動きベクトルを使用する前に、前記第1の動きベクトルと前記第2の動きベクトルとの間の時間距離に従って前記第1の動きベクトルを前記プロセッサにスケーリングさせる命令をさらに備える、請求項34に記載のコンピュータ可読記憶媒体。前記命令は、前記プロセッサに、前記第1の動きベクトルと前記第1の動き予測子との間の差を示すように定義された第1のシンタックス要素として前記第1の動きベクトルをコーディングさせ、前記第1の動き予測子が生成された前記参照ピクチャの前記第1の参照ピクチャリストと前記第2の参照ピクチャリストとのうちの1つの中のインデックスを示すように定義された第2のシンタックス要素をコーディングさせ、前記第2の動きベクトルと前記第1の動きベクトルとの間の差として前記第2の動きベクトルをコーディングさせる、請求項34に記載のコンピュータ可読記憶媒体。前記隣接ビデオブロックの前記動きベクトルは、前記第1の参照ピクチャリスト中の参照ピクチャをさし示し、前記プロセッサに、前記第1の参照ピクチャリストまたは前記第2の参照ピクチャリストのいずれかの中の前記参照ピクチャから前記第1の動き予測子を生成させる命令をさらに備える、請求項34に記載のコンピュータ可読記憶媒体。前記プロセッサに、前記隣接ビデオブロックの前記動きベクトルが前記第1の参照ピクチャリストから利用可能でないとき、前記第2の参照ピクチャリスト中の前記参照ピクチャから前記第1の動き予測子を生成させる命令をさらに備える、請求項38に記載のコンピュータ可読記憶媒体。前記プロセッサに、前記第1の参照ピクチャリスト中の前記参照ピクチャからの前記動きベクトルを用いる単方向予測モードを使用して前記隣接ビデオブロックをコーディングさせ、前記第1の参照ピクチャリストと前記第2の参照ピクチャリストの両方に前記動きベクトルについてのデータを記憶させる命令をさらに備える、請求項38に記載のコンピュータ可読記憶媒体。0019本開示は、ビデオコーディングにおいて予測情報をコーディングするコストを低減するための技法に関する。インターコード化フレームのビデオブロックは、第1の参照ピクチャリストと第2の参照ピクチャリストとのうちの1つの中の参照ピクチャに関する単一の動きベクトルを用いる単方向予測モード、または第1の参照ピクチャリスト中の参照ピクチャに関する第1の動きベクトルと第2の参照ピクチャリスト中の参照ピクチャに関する第2の動きベクトルとを用いる双方向予測モードのいずれかを使用してコーディングされ得る。いくつかの例では、本開示は、詳細には、一般化P/BGPBフレームが使用可能であり、したがって、第1の参照ピクチャリストと第2の参照ピクチャリストとが同一である場合に関する。概して、参照ピクチャリストは、代替的に参照フレームリストと呼ばれることがある。0020本開示の技法は、ビデオブロックの動き予測方向を示す1つまたは複数のシンタックス要素をシグナリングするためのビットを低減することを含む。参照ピクチャリストのうちの1つが、他の参照ピクチャリストよりも好適であるとき、デフォルトで、単方向予測モードのために好適参照ピクチャリストを使用することがより効率的であり得る。これは、特に、GPBフレームが使用可能であるときに当てはまる。その場合、2つの同一の参照ピクチャリストのいずれも単方向予測モードのために使用され得る。本開示の技法は、2ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードと双方向予測モードとのうちの1つを使用してビデオブロックがコーディングされることを示す1つまたは複数のシンタックス要素をコーディングすることを含む。0021本開示の技法はまた、双方向予測モードを使用して符号化されるビデオブロックについての動きベクトル情報をシグナリングするためのビットを低減することを含む。GPBフレームの1つまたは複数のブロックは、同じ参照ピクチャまたは実質的に類似するsubstantiallysimilar参照ピクチャのいずれかからの2つの動きベクトルを用いる双方向予測モードを使用して符号化され得る。本開示の技法は、GPBフレームのビデオブロックのための第1の動きベクトルと第2の動きベクトルとをジョイントコーディングすることを含み得る。0022図1は、ビデオフレームのビデオブロックについての予測情報を効率的にコーディングするための技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、通信チャネル16を介して符号化ビデオを宛先デバイス14に送信するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、通信チャネル16を介してビデオ情報を通信することができるワイヤレス通信デバイスを備え、その場合、通信チャネル16はワイヤレスである。0023しかし、ビデオブロックについての予測情報を効率的にコーディングすることに関係する本開示の技法は、必ずしもワイヤレスアプリケーションまたは設定に限定されるとは限らない。たとえば、これらの技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタルビデオ、または他のシナリオに適用し得る。したがって、通信チャネル16は、符号化ビデオデータの送信に好適なワイヤレスまたはワイヤード媒体の任意の組合せを備え得、デバイス12、14は、携帯電話、スマートフォン、デジタルメディアプレーヤ、セットトップボックス、テレビジョン、ディスプレイ、デスクトップコンピュータ、ポータブルコンピュータ、タブレットコンピュータ、ゲームコンソール、ポータブルゲームデバイスなどの様々なワイヤードまたはワイヤレス媒体デバイスのいずれかを備え得る。0024図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器モデム22と、送信機24とを含む。宛先デバイス14は、受信機26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。他の例では、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラ、ビデオストレージアーカイブ、コンピュータグラフィックスソースなどの外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。0025図1の図示のシステム10は一例にすぎない。ビデオブロックについての予測情報の効率的なコーディングのための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。本技法はまた、一般にコーデックと呼ばれるビデオエンコーダ/デコーダによって実行され得る。さらに、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14の各々がビデオ符号化構成要素および復号構成要素を含むので、デバイス12、14は、実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオ電話通信のためのビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。0026ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからのビデオフィードvideofeedを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンcameraphoneまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明する技法は、一般にビデオコーディングに適用可能であり、ワイヤレスおよび/またはワイヤードアプリケーションに適用可能であり得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオはビデオエンコーダ20によって符号化され得る。次いで、符号化ビデオ情報は、通信規格に従ってモデム22によって変調され、送信機24を介して宛先デバイス14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。0027本開示によれば、ソースデバイス12のビデオエンコーダ20は、ビデオブロックについての予測情報をコーディングするコストを低減するための技法を適用するように構成され得る。たとえば、単方向予測モードの場合、ビデオエンコーダ20は、2ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードと双方向予測モードとのうちの1つを使用してビデオブロックが符号化されることを示す1つまたは複数のシンタックス要素を符号化し得る。参照ピクチャリストは、2つの異なる参照ピクチャリストのうちの好適参照ピクチャリストであり得、またはGPBフレームが使用可能であるとき、2つの同一のidentical参照ピクチャリストのいずれかであり得る。参照ピクチャリストは、代替的に参照フレームリストと呼ばれることがある。別の例として、双方向予測モードの場合、ビデオエンコーダ20は、2つの同一の参照ピクチャリストからの2つの動きベクトルを用いてGPBフレームの1つまたは複数のビデオブロックを符号化し、ビデオブロックの各々について2つの動きベクトルをジョイント符号化し得る。その2つの動きベクトルは、同じ参照ピクチャまたは実質的に類似する参照ピクチャからのものであり得る。0028宛先デバイス14の受信機26はチャネル16を介して情報を受信し、モデム28は情報を復調する。チャネル16を介して通信される情報は、ビデオエンコーダ20によって定義されるシンタックス情報を含み、それは、ビデオデコーダ30によっても使用され、予測ユニットPU:predictionunit、コーディングユニットCU:codingunitまたはコーディングされたビデオの他のユニット、たとえば、ビデオスライス、ビデオフレーム、およびビデオシーケンスまたはピクチャグループGOP:groupofpicturesの特性および/または処理を記述するシンタックス要素を含む。ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、陰極線管CRT、液晶ディスプレイLCD、プラズマディスプレイ、有機発光ダイオードOLEDディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。0029本開示によれば、宛先デバイス14のビデオデコーダ30は、ビデオブロックについての予測情報をコーディングするコストを低減するための技法を適用するように構成され得る。たとえば、単方向予測モードの場合、ビデオデコーダ30は、2ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードと双方向予測モードとのうちの1つを使用してビデオブロックがコーディングされることを示す1つまたは複数のシンタックス要素を復号し得る。参照ピクチャリストは、2つの異なる参照ピクチャリストのうちの好適参照ピクチャリストであり得、またはGPBフレームが使用可能であるとき、2つの同一の参照ピクチャリストうちののいずれかであり得る。別の例として、双方向予測モードの場合、ビデオデコーダ30は、GPBフレームの1つまたは複数のビデオブロックの各々について2つの動きベクトルをジョイント復号し、2つの同一の参照ピクチャリストからの2つの動きベクトルを用いてビデオブロックの各々を復号し得る。その2つの動きベクトルは、同じ参照ピクチャまたは実質的に類似する参照ピクチャからのものであり得る。0030図1の例では、通信チャネル16は、無線周波数RFスペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレスおよびワイヤード媒体の任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は、一般に、ワイヤードまたはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス12から宛先デバイス14に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル16は、ソースデバイス12から宛先デバイス14への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。0031ビデオエンコーダ20およびビデオデコーダ30は、高効率ビデオコーディングHEVC規格または代替的にMPEG-4、Part10、アドバンストビデオコーディングAVCとも呼ばれるITU-TH.264規格など、ビデオ圧縮規格に従って動作し得る。ただし、本開示の技法は特定のコーディング規格に限定されない。他の例にはMPEG-2およびITU-TH.263がある。図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、MUX-DEMUXユニットはITUH.223マルチプレクサプロトコル、またはユーザデータグラムプロトコルUDPなどの他のプロトコルに準拠し得る。0032HEVCの規格化の成果は、HEVCテストモデルHMと呼ばれるビデオコーディングデバイスのモデルに基づく。HMは、たとえば、ITU-TH.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を想定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは33個ものイントラ予測符号化モードを提供する。0033HMは、ビデオデータのブロックをコーディングユニットCU:codingunitと称する。ビットストリーム内のシンタックスデータは、ピクセルの数に関する最大コーディングユニットLCU:largestcodingunitである最大コーディングユニットを定義し得る。概して、CUは、CUがサイズ差異を有さないことを除いて、H.264規格のマクロブロックと同様の目的を有する。したがって、CUは、複数のサブCUに分割され得る。概して、本開示におけるCUへの言及は、ピクチャの最大コーディングユニットまたはLCUのサブCUを指すことがある。LCUは複数のサブCUに分割され得、各サブCUは、さらに、複数のサブCUに分割され得る。ビットストリームについてのシンタックスデータは、CU深さと呼ばれる、LCUが分割され得る最大回数を定義し得る。したがって、ビットストリームは最小コーディングユニットSCU:smallestcodingunitをも定義し得る。0034さらに分割されないCUは、1つまたは複数の予測ユニットPUを含み得る。概して、PUは、対応するCUの全部または一部分を表し、そのPUについての基準サンプルを検索するためのデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、そのPUのためのイントラ予測モードを記述するデータを含む。別の例として、PUがインターモード符号化されるとき、PUは、そのPUのための動きベクトルを定義するデータを含む。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度たとえば、1/4ピクセル精度または1/8ピクセル精度、動きベクトルが指し示すpoint参照ピクチャ、および/または動きベクトルについての参照ピクチャリストたとえば、リスト0またはリスト1について説明し得る。また、1つまたは複数のPUを定義するCUについてのデータは、たとえば、CUを1つまたは複数のPUへ分割することについて記述し得る。分割モードは、CUが、スキップまたはダイレクトモード符号化されるか、インター予測モード符号化されるか、あるいはインター予測モード符号化されるかによって異なり得る。00351つまたは複数のPUを有するCUはまた、1つまたは複数の変換ユニットTU:transformunitを含み得る。PUを使用した予測に続いて、ビデオエンコーダは、PUに対応するCUの一部分についての残差値を計算し得る。残差値は、エントロピーコーディングのためのシリアル化変換係数serializedtransformcoefficientを生成するために、変換係数に変換され、量子化され、スキャンされ得るピクセル差分値に対応する。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUは、同じCUについての対応するPUよりも大きくても小さくてもよい。いくつかの例では、TUの最大サイズは、対応するCUのサイズである。本開示は、CU、PU、またはTUのいずれかを指すためにビデオブロックという用語を使用する。0036ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサDSP、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGA、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合エンコーダ/デコーダコーデックの一部としてそれぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどに統合され得る。0037ビデオシーケンスは、通常、一連のビデオフレームを含む。ピクチャグループGOPは、概して、一連の1つまたは複数のビデオフレームを備える。GOPは、GOP中に含まれるいくつかのフレームを記述するシンタックスデータを、GOPのヘッダ、GOPの1つまたは複数のフレームのヘッダ、または他の場所中に含み得る。各フレームは、それぞれのフレームについての符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ20は、通常、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに対して作用する。ビデオブロックは、コーディングユニットCUまたはCUのパーティションユニットPUに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。各ビデオフレームは複数のスライスを含み得る。各スライスは、1つまたは複数のPUを含み得る、複数のCUを含み得る。0038一例として、HEVCテストモデルHMは、様々なCUサイズでの予測をサポートする。LCUのサイズは、シンタックス情報によって定義され得る。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×Nのサイズでのイントラ予測をサポートし、2N×2N、2N×N、N×2N、またはN×Nの対称サイズでのインター予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2Nのインター予測のための非対称分割をサポートする。非対称分割では、CUの一方向は分割されないが、他の方向が25と75とに分割される。25の分割に対応するCUの一部分は、nの後ろに付くUp、Down、Left、またはRightという指示によって示される。したがって、たとえば2N×nUは、上部に2N×0.5NPUと下部に2N×1.5NPUとの水平方向に分割される2N×2NCUを指す。0039本開示では、N×NとNbyNとは、垂直ディメンションおよび水平ディメンションに関するビデオブロックたとえば、CU、PU、またはTUのピクセルディメンション、たとえば、16×16ピクセルまたは16by16ピクセルを指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセルを有しy=16、水平方向に16ピクセルを有するx=16。同様に、N×Nブロックは、概して、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、Nは、非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。さらに、ブロックは、必ずしも、水平方向に垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックは、N×Mピクセルを備え得、Mは必ずしもNに等しいとは限らない。0040イントラ予測コーディングまたはインター予測コーディングを行ってCUのためのPUを生成した後、ビデオエンコーダ20は、残差データを計算して、CUのための1つまたは複数の変換ユニットTUを生成し得る。CUの複数のPUは、ピクセル領域とも呼ばれる空間領域においてピクセルデータを備え、一方、CUの複数のTUは、たとえば、残差ビデオデータに対し離散コサイン変換DCT、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後、変換領域において係数を備える。残差データは、非符号化ピクチャunencodedpictureのピクセルとCUのPUの予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUについての残差データを含む1つまたは複数のTUを形成し得る。ビデオエンコーダ20は、次いで、TUを変換し得る。0041変換係数を生成するための変換の後、変換係数の量子化が実行され得る。量子化は、概して、係数を表すために使用されるデータ量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に丸められる。ここで、nはmよりも大きい。0042いくつかの例では、ビデオエンコーダ20は、エントロピー符号化されるシリアル化ベクトルを生成するために、量子化変換係数をスキャン走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20は、適応型走査を実行し得る。量子化変換係数を走査して1次元ベクトルを形成した後、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディングCAVLC:contextadaptivevariablelengthcoding、コンテキスト適応型バイナリ算術コーディングCABAC:contextadaptivebinaryarithmeticcoding、シンタックスベースコンテキスト適応型2値算術コーディングSBAC:syntaxbasedcontextadaptivebinaryarithmeticcoding、または別のエントロピー符号化方法に従って1次元ベクトルをエントロピー符号化し得る。0043CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルを符号化するためにあるコンテキストに適用すべきコンテキストモデルを選択し得る。コンテキストは、たとえば、隣接シンボルが非ゼロであるか否かに関係し得る。ビデオエンコーダ20は、次いで、コンテキストに基づいてシンボルに割り当てられた確率を参照することによって、シンボルを表すための値を割り当て得る。場合によっては、値は、小数ビット、すなわち、1ビット未満であり得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLCにおけるコードワードは、比較的短いコードがより確率の高いシンボルに対応し、より長いコードがより確率の低いシンボルに対応するように構築され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率判断は、シンボルのコンテキストに基づき得る。0044ビデオエンコーダ20はまた、ビデオブロックを符号化するときに生成される動き予測方向と動きベクトル情報とについてのシンタックス要素をエントロピー符号化し得る。本開示の技法によれば、ビデオエンコーダ20は、ビデオブロックについての予測情報をコーディングするコストを低減し得る。たとえば、単方向予測モードの場合、ビデオエンコーダ20は、2ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードと双方向予測モードとのうちの1つを使用してビデオブロックが符号化されることを示す1つまたは複数のシンタックス要素を符号化し得る。参照ピクチャリストは、2つの異なる参照ピクチャリストのうちの好適参照ピクチャリストであり得、またはGPBフレームが使用可能であるとき、2つの同一の参照ピクチャリストのうちのいずれかであり得る。別の例として、双方向予測モードの場合、ビデオエンコーダ20は、2つの同一の参照ピクチャリストからの2つの動きベクトルを用いてGPBフレームの1つまたは複数のビデオブロックを符号化し、ビデオブロックの各々について2つの動きベクトルをジョイント符号化し得る。その2つの動きベクトルは、同じ参照ピクチャまたは実質的に類似する参照ピクチャからのものであり得る。0045ビデオデコーダ30は、ビデオエンコーダ20の動作と本質的に対称的な形で動作し得る。たとえば、ビデオデコーダ30は、符号化されたPUデータとTUデータとを含む符号化されたCUを表す、エントロピー符号化されたデータを受信し得る。この受信データは、ビデオブロックを符号化するときに生成される動き予測方向と動きベクトル情報とについてのシンタックス要素を含み得る。ビデオデコーダ30はまた、ビデオブロックについての予測情報をコーディングするコストを低減し得る。たとえば、単方向予測モードの場合、ビデオデコーダ30は、2ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードと双方向予測モードとのうちの1つを使用してビデオブロックが符号化されることを示す1つまたは複数のシンタックス要素を復号し得る。参照ピクチャリストは、2つの異なる参照ピクチャリストのうちの好適参照ピクチャリストであり得、またはGPBフレームが使用可能であるとき、2つの同一の参照ピクチャリストのうちのいずれかであり得る。別の例として、双方向予測モードの場合、ビデオデコーダ30は、GPBフレームの1つまたは複数のビデオブロックの各々について2つの動きベクトルをジョイント復号し、2つの同一の参照ピクチャリストから計算される2つの動きベクトルを用いてビデオブロックの各々を復号し得る。その2つの動きベクトルは、同じ参照ピクチャまたは実質的に類似する参照ピクチャから計算され得る。0046ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサDSP、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGA、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダコーデックの一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含む装置は、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。0047図2は、一般化P/BGPBフレーム36A~36Bおよび38A~38Bを含む例示的なビデオシーケンス33を示す概念図である。場合によっては、ビデオシーケンス33はピクチャグループGOPと呼ばれることがある。ビデオシーケンス33は、図示のように、表示順でフレーム35A、36A、38A、35B、36B、38B、および35C、ならびに最終フレーム39を含む。フレーム34は、シーケンス33の前に発生するシーケンスの表示順における最終フレームである。図2は、概して、ビデオシーケンスの例示的な予測構造を表し、単に、様々なインターモードフレームタイプを符号化するために使用されるフレーム参照を示すものである。実際のビデオシーケンスは、様々なフレームタイプのより多いまたはより少ないビデオフレームを異なる表示順で含み得る。0048ブロックベースビデオコーディングの場合、シーケンス33中に含まれるビデオフレームの各々はビデオブロックまたはコーディングユニットCUに分割され得る。ビデオフレームの各CUは、1つまたは複数の予測ユニットPUを含み得る。イントラコード化Iフレーム中のビデオブロックまたはPUは、同じフレーム中の隣接ブロックに関する空間的予測を使用して符号化される。インターコード化PまたはBまたはGPBフレーム中のビデオブロックまたはPUは、同じフレーム中の隣接ブロックに関する空間的予測、または他の参照ピクチャに関する時間的予測を使用し得る。0049Bフレーム中の複数のビデオブロックは、2つの異なる参照ピクチャリスト従来は1つの過去のフレームと1つの将来フレームからの2つの動きベクトルを計算する双方向予測を使用して符号化される。場合によっては、Bフレーム中の複数のビデオブロックは、2つの異なる参照ピクチャリストのうちの1つからの単方向予測を使用して符号化され得る。Pフレーム中の複数のビデオブロックは、単一の参照ピクチャリスト従来は過去のフレームからの単一の動きベクトルを計算する単方向予測を使用して符号化される。新たに登場したHEVC規格によれば、GPBフレーム中の複数のビデオブロックは、2つの同一の参照ピクチャリストのうちの1つから単一の動きベクトルを計算する単方向予測、または、2つの同一の参照ピクチャリストから2つの動きベクトルを計算する双方向予測のいずれかを使用して符号化される。この2つ同一の参照ピクチャリストは、過去の参照ピクチャを含み得る。0050場合によっては、GPBフレームが、所与のビデオスライス、ビデオフレーム、またはビデオシーケンスのために全体的に使用可能であるとき、標準Pフレームの代わりにGPBフレームが使用され得る。この場合、すべての標準Pフレームは、GPBフレームとして扱われ、したがって、ビデオエンコーダは、インターモードフレームをBフレームまたはGPBフレームとして符号化することを判断し得る。他の場合には、GPBフレームが部分的に使用可能であるとき、3つすべてのインター予測モードが使用され得る。この場合、ビデオエンコーダは、インターモードフレームをBフレーム、PフレームまたはGPBフレームとして符号化することを判断し得る。0051図2の例では、最終フレーム39は、イントラモードコーディングのためにIフレームに指定される。他の例では、最終フレーム39は、例えば、前のシーケンスの最終フレーム34を参照したPフレームとしてインターモードコーディングを用いてコーディングされ得る。ビデオフレーム35A~35C総称してビデオフレーム35は、過去のフレームと将来のフレームとを参照する双方向予測を使用してBフレームとしてコーディングするように指定される。図示の例では、フレーム34とフレーム36Aとからビデオフレーム35Aへの矢印によって示されるように、フレーム35Aは、最終フレーム34とフレーム36Aとを参照するBフレームとして符号化される。フレーム35Bおよび35Cは同様に符号化される。0052ビデオフレーム36A~36B総称してビデオフレーム36は、過去のフレームを参照する単方向予測を使用して標準PフレームまたはGPBフレームのいずれかにコーディングするように指定され得る。図示の例では、フレーム34からビデオフレーム36Aへの矢印によって示されるように、フレーム36Aは、最終フレーム34を参照してPフレームまたはGPBフレームとして符号化される。フレーム36Bは、同様に符号化される。0053ビデオフレーム38A~38B総称してビデオフレーム38は、同じ過去のフレームを参照する双方向予測を使用してGPBフレームとしてコーディングするように指定され得る。他の例では、GPBフレームは、同じ参照ピクチャリスト中に含まれる実質的に類似する過去のフレームを参照する双方向予測を使用して符号化され得る。図示の例では、フレーム36Aからビデオフレーム38Aへの2つの矢印によって示されように、フレーム38Aは、フレーム36Aへの2つの参照を用いてGPBフレームとして符号化される。フレーム38Bは、同様に符号化される。0054図3は、ビデオフレームのビデオブロックについての予測情報を効率的にコーディングするための技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、複数のCU、または複数のCUの複数のPUを含む、ビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモードIモード登録商標は、いくつかの空間ベースの圧縮モードのいずれかを指すことがある。単方向予測Pモード、双方向予測Bモード、または一般化P/B予測GPBモードなどのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことがある。0055図3に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図3の例では、ビデオエンコーダ20は、モード選択ユニット40と、予測ユニット41と、参照ピクチャメモリ64と、加算器50と、変換ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測ユニット46とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトblockinessartifactsを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ図3に図示せずも含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。0056符号化プロセス中に、ビデオエンコーダ20はコーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のCUまたはビデオブロックに分割され得る。モード選択ユニット40は、誤差結果に基づいて現在のビデオブロックのためのコーディングモード、すなわちイントラまたはインターのうちの1つを選択し、予測ユニット41は、得られたイントラまたはインターコード化ブロックを、残差ブロックデータを生成する加算器50と、参照ピクチャとして使用するための符号化ブロックを再構成する加算器62に供給し得る。0057予測ユニット41内のイントラ予測ユニット46は、コーディングされるべき現在のブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する現在のビデオブロックのイントラ予測コーディングを実行し、空間圧縮を提供する。予測ユニット41内の動き推定ユニット42および動き補償ユニット44は、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対する現在のビデオブロックのインター予測コーディングを実行し、時間圧縮を提供する。この1つまたは複数の参照ピクチャは、第1の参照ピクチャリストリスト066および/または第2の参照ピクチャリストリスト168から選択され、これらの参照ピクチャリストは、参照ピクチャメモリ64に記憶された参照ピクチャについての識別子を含む。0058動き推定ユニット42は、ビデオシーケンスの予め定められたパターンに従ってビデオフレームのためのインター予測モードを判断するように構成される。予め定められたパターンは、シーケンス中のビデオフレームをPフレームおよび/またはBフレームに指定し得る。場合によっては、GPBフレームが使用可能であり、したがって、1つまたは複数のビデオフレームがGPBフレームに指定され得る。他の場合には、GPBフレームが使用可能であるとき、動き推定ユニット42は、当初指定されたPフレームをGPBフレームとして符号化するかどうかを判断し得る。後者の場合は、GPBフレームが全体的に使用可能であるのか部分的に使用可能であるのかに依存し得る。0059動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレーム内のPUまたはビデオブロックの変位を示し得る。予測ブロックは、コーディングされるべきPUを含むCUの一部分と、ピクセル差分に関して、ほぼ一致すると判断されたブロックであり、それは、絶対値差分和SAD:sumofabsolutedifference、2乗差分和SSD:sumofsquaredifference、または他の差分メトリックによって判断され得る。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を計算し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。0060動き推定ユニット42は、インターコード化フレームのPUまたはビデオブロックのための動きベクトルを、当該PUと、リスト066またはリスト168のいずれかの中で識別される1つの参照ピクチャ内の複数のブロックとを比較することによって、計算する。たとえば、インターコード化フレームがPフレームを備えるとき、動き推定ユニット42は、Pフレーム中のビデオブロックのために単方向予測を使用し、リスト066とリスト168とのうちの1つであって、過去のフレームのための識別子を含むリスト従来はリスト066から、単一の動きベクトルを計算し得る。0061インターコード化フレームがBフレームを備えるとき、たとえば、リスト066とリスト168とは、異なる参照ピクチャ、従来は過去のピクチャと将来のピクチャとのための識別子を含む。動き推定ユニット42は、Bフレームのビデオブロックのために双方向予測を使用し、リスト066とリスト168とから2つの動きベクトルを計算し得る。場合によっては、動き推定ユニット42は、Bフレームのビデオブロックのために単方向予測を使用し、参照ピクチャリスト66、68のうちの1つから単一の動きベクトルを計算し得る。0062新たに登場したHEVC規格によれば、インターコード化フレームがGPBフレームを備えるとき、リスト066とリスト168とは、同じ複数の参照ピクチャのための識別子を含む。より詳細には、リスト066とリスト168との各々の中に含まれるピクチャの数は同じであり、リスト066中の各インデックスエントリによって示されるピクチャは、リスト168中の同じインデックスエントリによって示されるピクチャと同一である。リスト066とリスト168との中に含まれる参照ピクチャは、過去のピクチャを備え得る。この場合、動き推定ユニット42は、GPBフレームのビデオブロックのために双方向予測を使用し、リスト066とリスト168とから2つの動きベクトルを計算し得る。動き推定ユニット42はまた、GPBフレームのビデオブロックのために単方向予測を使用し、リスト066とリスト168とのうちの1つから単一の動きベクトルを計算し得る。0063参照ピクチャリストのうちの1つが他の参照ピクチャリストよりも好適であるとき、デフォルトで、単方向予測のために好適参照ピクチャリストを使用することがより効率的であり得る。これは、Bフレームのための単方向予測が、ほとんどの場合、参照ピクチャリストのうちの一方よりも他方に基づいて実行される場合である。たとえば、Pフレームと同様に、Bフレームのための単方向予測は、一般に、リスト066からの過去の参照ピクチャに基づいて実行され得る。その例では、動き補償ユニット44は、リスト066が好適参照ピクチャリストであると判断し得る。GPBフレームが使用可能であり、したがって、リスト066とリスト168とが同一であるとき、動き補償ユニット44は、2つの同じ参照ピクチャリスト間で選択する代わりに、単方向予測のためにリスト066とリスト168とのいずれか一方を交互に使用し得る。0064動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。動き補償ユニット44によって実行される動き補償は、動き推定によって判断された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを含む。ビデオエンコーダ20は、コーディングされている現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。0065動き補償ユニット44は、PUについての動きベクトルによって識別される予測ブロックを取り出すことによって、現在のCUの当該Pについての予測情報を計算し得る。予測情報は、たとえば、動き予測方向と動き予測子motionpredictorとを含む動きベクトル情報と、参照ピクチャリスト情報とを含み得る。動き補償ユニット44はまた、現在のビデオブロックまたはPUについて計算される予測情報を表すように定義されるシンタックス要素を生成し得る。ビデオエンコーダ20は、次いで、予測情報を示すシンタックス要素を符号化し、ビデオデコーダ30にシンタックス要素をシグナリングし得る。0066本開示の技法によれば、ビデオエンコーダ20は、ビデオブロックについての予測情報をコーディングするコストを低減し得る。たとえば、単方向予測モードの場合、ビデオエンコーダ20は、2ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードと双方向予測モードとのうちの1つを使用してビデオブロックがコーディングされることを示す1つまたは複数のシンタックス要素を符号化し得る。参照ピクチャリストは、2つの異なる参照ピクチャリストのうちの好適参照ピクチャリストであり得、またはGPBフレームが使用可能であるとき、2つの同じ参照ピクチャリストのいずれかであり得る。別の例として、双方向予測モードの場合、ビデオエンコーダ20は、2つの同じ参照ピクチャリストからの2つの動きベクトルを用いてGPBフレームの1つまたは複数のビデオブロックを符号化し、ビデオブロックの各々について2つの動きベクトルをジョイント符号化し得る。その2つの動きベクトルは、同じ参照ピクチャまたは実質的に類似する参照ピクチャからのものであり得る。0067最初に、単方向予測の場合にビデオブロックについての予測情報をコーディングするコストを低減するための技法について説明する。動き補償ユニット44は、現在のビデオブロックの動き予測方向についてのシンタックス要素を生成し得る。Bフレーム中のビデオブロックの動き予測方向についての従来のシンタックス要素、inter_pred_idcは、ブロックを符号化するために単方向予測が使用されるのか双方向予測が使用されるのかを示す第1のビットと、単方向予測のために使用される参照ピクチャリストを示す第2のビットとを含む。同一の参照ピクチャリストの場合、参照ピクチャリストのいずれも単方向予測モードのために互換的に使用され得るので、従来のシンタックス要素の第2のビットは冗長であり得る。0068本開示の技法によれば、動き補償ユニット44は、単方向予測モードのために使用される参照ピクチャリストの指示を削除することによって、動き予測方向についてのシングルビットシンタックス要素を生成し得る。ビデオエンコーダ20は、次いで、ビデオブロックレベルまたはPUレベルにおいて、現在のビデオフレームの各ビデオブロックについての動きベクトル情報とともに、動き予測方向についてのシングルビットシンタックスを符号化し、ビデオデコーダ30にシグナリングする。0069現在のビデオフレームがGPBフレームに指定されるとき、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された同一の参照ピクチャのための識別子を含んでいるリスト066とリスト168とを記憶する。リスト066とリスト168とは同じ参照ピクチャを含むので、動き補償ユニット44は、単方向予測モードのために2つの同一の参照ピクチャリストのいずれも互換的に使用し得る。ビデオエンコーダ20は、参照ピクチャリストのうちの1つの中の参照ピクチャに関する単方向予測モードを使用してGPBフレームの1つまたは複数のビデオブロックを符号化する。0070動き補償ユニット44は、単方向予測モードを使用して符号化されるGPBフレームのビデオブロックの動き予測方向を表すためのシングルビットシンタックスを生成し得る。ビデオエンコーダ20はまた、現在のビデオフレームがGPBフレームとして符号化されることを示すために、ビデオデコーダ30にGPBフレームフラグをシグナリングし得る。そのGPBフレームフラグは、シーケンス内の所与のビデオフレームがGPBフレームとして符号化され、したがって、ビデオブロックの動き予測方向がシングルビットシンタックスで符号化されることをビデオデコーダ30に明示的に通知するために使用され得る。この明示的シグナリングによって、ビデオデコーダ30は、動き予測方向を決定するためにシングルビットシンタックスをパースすることが可能になり得る。場合によっては、ビデオエンコーダ20は、GPBフレームフラグを明示的にシグナリングしないが、参照ピクチャリストが同一であるとき、所与のフレームがGPBフレームとして符号化されることを暗黙的にシグナリングし得る。GPBフレームフラグについては、以下でより詳細に説明する。0071一例では、GPBフレームのビデオブロックが単方向予測モードを使用して符号化されるのか双方向予測モードを使用して符号化されるのかを示すように定義されたシングルビットシンタックス要素、たとえば、bi_pred_flagを備えるGPBフレームに対して別個のシンタックスが定義され得る。シングルビットシンタックス要素の導入によって、上記で説明した、従来のシンタックス要素、すなわち、inter_pred_idcとの混同が回避され得る。動き補償ユニット44は、GPBフレームの複数のビデオブロックのそれぞれの動き予測方向を表すためのシングルビットシンタックス要素を生成し得る。ビデオエンコーダ20は、次いで、単方向予測モードと双方向予測モードとのうちの1つを使用してビデオブロックが符号化されることを示すために、GPBフレームのビデオブロックのうちの1つまたは複数についてのシングルビットシンタックス要素を符号化する。同一の参照ピクチャリストのいずれもが単方向予測のために使用され得るので、GPBフレームのビデオブロックを符号化するために参照ピクチャリスト66、68のどちらが使用されるのかを明示的にシグナリングする必要がない。0072別の例では、GPBフレームのビデオブロックが単方向予測モードを使用して符号化されるのか双方向予測モードを使用して符号化されるのかを示すためにシンタックス要素の第1のビットのみが使用されるGPBフレームに対して、従来のシンタックス要素、すなわち、inter_pred_idcのシングルビットモードが定義され得る。動き補償ユニット44は、GPBフレームの複数のビデオブロックのそれぞれの動き予測方向を表すための従来のシンタックス要素の第1のビットのみを生成し得る。ビデオエンコーダ20は、次いで、単方向予測を使用してビデオブロックが符号化されることを示すために、GPBフレームのビデオブロックのうちの1つまたは複数についてのシンタックス要素の第1のビットのみを符号化する。参照ピクチャリストのいずれもが単方向予測のために使用され得るので、動き補償ユニット44は、GPBフレームのビデオブロックについてのシンタックス要素の第2のビットを削除し得る。0073以下に提示する表1は、GPBフレームのビデオブロックのための単方向予測を示すために第1のビットのみが符号化される動き予測方向についての従来のシンタックス要素、すなわち、inter_pred_idcのシングルビットモードを用いた初期結果を与える。表1は、低遅延、高効率構成におけるHMのバージョン0.7内のいくつかのビデオテストシーケンスについて、GPBフレームのビデオブロックの動き予測方向を表すための低減ビットシンタックスによるビット深度bitdepthレート低減率を提示する。低減ビットシンタックス要素による平均ビット深度レート低減は、0.88である。0074場合によっては、ビデオエンコーダ20は、参照ピクチャリストからの単方向予測モードを使用して符号化される任意のタイプのインターコード化フレームのビデオブロックの動き予測方向を示すシンタックス要素を表すための低減ビット値を割り当て得る。上記で説明したように、ビデオフレームがBフレームに指定されるとき、参照ピクチャリストは、ほとんどの場合、単方向予測のための使用される2つの異なる参照ピクチャリストのうちの好適な参照ピクチャリストであり得る。ビデオフレームがGPBフレームに指定されるとき、参照ピクチャリストは、2つの同じ参照ピクチャリストのうちのいずれかであり得る。0075たとえば、動き補償ユニット44は、動き予測方向を示すシンタックス要素に適用される2値化を、シングルビット2値化で好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを表すように適応させ得る。エントロピー符号化ユニット56は、各シンタックス要素を、1ビットまたはバイナリビットのシーケンスに2値化し得る。従来、動き予測方向を示すシンタックス要素では、2値化の0は、双方向予測モードを表し、2値化の10は、リスト0中の参照ピクチャに関する単方向予測モードを表し、2値化の11は、リスト1中の参照ピクチャに関する単方向予測モードを表す。0076しかしながら、動き補償ユニット44は、シングルビット2値化の0が、好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを示すシンタックス要素にリンクされるように、シンタックス要素を異なる2値化に適応的にリンクし得る。動き補償ユニット44は、動き予測方向を示すシンタックス要素の各ステータスがどれくらいの頻度で発生するかに基づいて2値化を適応させ得る。好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードが他の予測モードよりも頻繁に使用されるとき、好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードに、シングルビット2値化の0をリンクすることがより効率的であり得る。たとえば、動き補償ユニット44は、シングルビット2値化の0が、好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを表し、2値化の10が、非好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを表し、2値化の11が、双方向予測モードを表すように2値化を適応させ得る。0077動き補償ユニット44は、現在のフレームの複数のビデオブロックのそれぞれの動き予測方向を表すためのシンタックス要素を生成し得る。ビデオエンコーダ20は、次いで、好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを使用してビデオブロックが符号化されることを示すために、1つまたは複数のビデオブロックについてのシンタックス要素にシングルビット2値化を割り当てる。ビデオエンコーダ20は、ビデオブロックまたはPUレベル、CUレベル、ビデオスライスレベル、ビデオフレームレベル、あるいはビデオシーケンスレベルのうちの1つにおいて、動き予測方向を示すシンタックス要素の適応型2値化をビデオデコーダ30にシグナリングし得る。このシグナリングによって、ビデオデコーダ30は、同様に、動き予測方向を示すシンタックス要素にその2値化を適応させることが可能になり得る。場合によっては、ビデオデコーダ30は、動き予測方向を示すシンタックス要素の各ステータスがどれくらいの頻度で発生するかに基づいてシンタックス要素を単独で適応的に2値化し得る。0078別の例として、動き補償ユニット44は、シンタックス要素が好適参照ピクチャリストを示す確率を、シンタックス要素が非好適参照ピクチャリストを示す確率よりも高くなるようにバイアスする構成データを参照し得る。たとえば、構成データは、動き予測方向についての従来のシンタックス要素、すなわち、inter_pred_idcの第2のビットの確率初期設定probabilityinitializationを好適参照ピクチャリストのほうへバイアスし得る。エントロピー符号化ユニット56は、同じフレーム中の隣接ビデオブロックのシンタックス値から判断される現在のビデオブロックベースコンテキストについて、シンタックス要素の各ビットが1または0である確率を推定する。各コンテキストについて、状態機械statemachineは、過去の値を追跡し、現在のビデオブロックについてのシンタックス要素の確率の最良の推定として現在の状態を与える。たとえば、状態値が、0から128まで変動する場合、状態値0は、ビットが0である確率が0.9999であることを意味し得、状態値128は、ビットが0である確率が0.0001であることを意味し得る。エントロピー符号化ユニット56は、確率判断に基づいて割り当てられた値を使用してシンタックス要素を符号化し得る。確率が高くなればなるほど、シンタックス要素を表すために使用される値がより短くなる。場合によっては、値は、小数ビット、すなわち、1ビット未満であり得る。0079単方向予測モードの場合、単方向予測について、参照ピクチャリストのうちの一方が他方の参照ピクチャリストよりも好適であるとき、構成データは、シンタックス要素が好適参照ピクチャリストを示す確率を高める。たとえば、動き補償ユニット44は、構成データに基づいて従来のシンタックス要素の第2のビットの状態値を0に設定し、したがって、そのビットが0である確率、すなわち、好適参照ピクチャリストを示す確率は0.9999である。0080動き補償ユニット44は、現在のフレームの複数のビデオブロックのそれぞれの動き予測方向を示すシンタックス要素を生成し得る。ビデオエンコーダ20は、単方向予測を使用してビデオブロックが符号化されることを示すために、1つまたは複数のビデオブロックについてのシンタックス要素の第1のビットにシングルビット値を割り当て得る。ビデオエンコーダ20は、次いで、単方向予測モードのために好適参照ピクチャリストが使用されることを示すために、1つまたは複数のビデオブロックについてのシンタックス要素の第2のビットに小数ビット値、すなわち、1ビット未満を割り当て得る。シンタックス要素の第2のビットが好適参照ピクチャリストを示す確率がより高くなると、ビデオエンコーダ20は第2のビットに小数ビット値を割り当てることが可能になる。0081上記で説明した動き予測方向についての修正シンタックスに加えて、本開示の技法はまた、動き予測方向のためにGPBフレームが使用されるとき、および/または低減ビットシンタックスが使用されるときを明示的に示すために、ビデオデコーダ30にフラグをシグナリングすることを含む。たとえば、GPBフレームが現在のビデオフレームに対して使用可能であるかまたは許可された場合、ビデオエンコーダ20は、GPBフレームが使用可能であることを示すために、ビデオデコーダ30にGPB使用可能フラグGPBenableflagをシグナリングし得る。ビデオエンコーダ20は、ビデオフレームレベルまたはビデオシーケンスレベルのいずれかにおいて、シンタックス中でGPB使用可能フラグをシグナリングし得る。GPB使用可能フラグは、GPBフレームが使用不能であること、全体的に使用可能であること、または部分的に使用可能であることを示すように定義され得る。GPBフレームが使用不能であるとき、当初指定されたPフレームは、PUごとに1つの動きベクトルを用いて従来のPフレームとして符号化される。GPBフレームが全体的に使用可能であるとき、当初指定されたPフレームは、PUごとに1つまたは2つの動きベクトルを用いるGPBフレームとして扱われ得る。GPBフレームが部分的に使用可能であるとき、Pフレーム概念、Bフレーム概念、およびGPBフレーム概念は別個の概念として扱われ得る。0082GPBフレームは使用可能であるが、GPBフレームに対して新しいスライスタイプが定義されないことがあり、したがってGPBフレームはBスライスおよび/またはPスライスとして符号化され得る。この場合、ビデオエンコーダ20は、標準Bおよび/またはPフレームとGPBフレームとを区別するために、ビデオデコーダ30に追加の明示的または暗黙的指示を送る必要があり得る。その追加の指示はまた、動き予測方向を表すために低減ビットシンタックスが使用されるときをビデオデコーダ30に通知するために使用され得る。0083たとえば、すべてのGPBフレームは、従来のBフレームの場合には異なる参照ピクチャリストと、GPBフレームの場合には同一の参照ピクチャリストとのいずれかを用いてBスライスとしてコーディングされ得る。GPBフレームが全体的に使用可能であり、しがたって、すべてのインター予測フレームが、同一の参照ピクチャリストを用いてまたは用いずにBスライスとして符号化され得るとき、GPBフレームを符号化するこのモードが好ましいことがある。0084場合によっては、ビデオエンコーダ20は、従来のBフレームとGPBフレームとを区別するために、ビデオフレームがGPBフレームとして符号化されるときを示すためにビデオデコーダ30にGPBフレームフラグ、たとえば、gpb_pred_flagまたはslice_gpb_flagを明示的にシグナリングし得る。ビデオエンコーダ20は、ビデオスライスレベル、ビデオフレームレベル、またはビデオシーケンスレベルのうちの1つにおいて、シンタックス中でGPBフレームフラグをシグナリングし得る。ただし、場合によっては、ビデオエンコーダ20は、GPBフレーム符号化を明示的にシグナリングしないことがある。それらの場合には、ビデオエンコーダ20は、参照ピクチャリストが同一であるとき、所与のフレームがGPBフレームとして符号化されることをビデオデコーダ30に暗黙的に通知し得る。0085BスライスとしてコーディングされたGPBフレームについてのスライスヘッダシンタックスは、動き予測方向についての低減ビットシンタックス要素を定義し得る。一例では、低減ビットシンタックス要素は、Bフレームの動き予測方向についての従来のシンタックス要素、すなわち、inter_pred_idcの1つのモードであり得、そのモードでは、シンタックス要素の第1のビットのみが使用される。別の例では、低減ビットシンタックス要素は、以下でより詳細に説明する、新たに定義されたシングルビットシンタックス要素、たとえば、bi_pred_flagであり得る。0086BスライスとしてコーディングされたGPBフレームの動き予測方向についての低減ビットシンタックス要素の一例を定義するための修正とともに、以下の表2に、ビデオブロックまたはPUレベルにおけるシンタックスからの抜粋を提示する。predition_unitシンタックスは、ビデオフレーム内の、開始ピクセルoriginatingpixelまたはサブピクセル座標x0、y0に位置し、currPredUnitSizeによって与えられるあるサイズを有する、所与のPUに対して定義される。表2のC列は、現在のビデオブロックのどのデータパーティション中にシンタックス要素が含まれるのかを定義する各シンタックス要素のカテゴリーを示す。表2の記述子列は、ビデオデコーダ30におけるシンタックス要素の適切なパーシングを可能にするためにシンタックス要素のために使用されるコーディングのタイプを示す。たとえば、記述子uevは、指数ゴロムコーディングexponentialGolombcodingを示す。表2のシンタックスの抜粋に示すように、現在のビデオブロックまたはPUを含むビデオフレームがBスライスと見なされたが、GPBフレームではなかった場合、動き補償ユニット44は、従来のBフレームのビデオブロックのパーティションiの動き予測方向をシグナリングするために、従来の2ビットシンタックス要素、inter_pred_idc[i]を生成する。しかしながら、ビデオフレームがBスライスと見なされ、GPBフレームであった場合、動き補償ユニット44は、GPBフレームのビデオブロックのパーティションiの動き予測方向をシグナリングするために、従来のシンタックス要素、inter_pred_idc[i]の第1のビットのみを生成する。ビデオフレームがGPBフレームとして符号化されることを示すために、ビデオエンコーダ20がより高いレベルにおいてGPBフレームフラグを明示的にシグナリングするとき、または、参照ピクチャリストが同一であると判断されるとき、予測ユニットシンタックステーブルにおいて使用されるGPBフラグ変数、isGPBSliceFlagは真であると判断され得る。0087別の例では、すべてのGPBフレームは、GPBフレームの場合にはオプションの双方向予測を用いてPスライスとしてコーディングされ得る。このモードのGPBフレーム符号化は、GPBフレームが部分的に使用可能であり、しがたって、インター予測フレームが、双方向予測を用いてまたは用いずにBスライスまたはPスライスとして符号化され得るとき、好ましいことがある。場合によっては、ビデオエンコーダ20は、従来のPフレームとGPBフレームとを区別するために、ビデオフレームがGPBフレームとして符号化されるときを示すためにビデオデコーダ30などのビデオデコーダにGPBフレームフラグ、たとえば、gpb_pred_flagまたはslice_gpb_flagを明示的にシグナリングし得る。ビデオエンコーダ20は、ビデオスライスレベル、ビデオフレームレベル、またはビデオシーケンスレベルのうちの1つにおいて、シンタックス中でGPBフレームフラグをシグナリングし得る。0088PスライスとしてコーディングされたGPBフレームについてのスライスヘッダシンタックスは、動き予測方向についての低減ビットシンタックス要素を定義し得る。一例では、低減ビットシンタックス要素は、新たに定義されたシングルビットシンタックス要素、たとえば、bi_pred_flagであり得る。シングルビットシンタックス要素は、ビデオブロックが単方向予測を使用して符号化されるのか双方向予測を使用して符号化されるのかを示すように定義され得る。シングルビットシンタックス要素は、Bフレームの動き予測方向についての従来の2ビットシンタックス要素との混同を回避するために異なる名前を有し得る。たとえば、シングルビットシンタックス要素は、inter_pred_idcの代わりにbi_pred_flagと命名され得る。別の例では、低減ビットシンタックス要素は、Bフレームの動き予測方向についての従来のシンタックス要素、すなわち、inter_pred_idcの1つのモードであり得、そのモードでは、シンタックス要素の第1のビットのみが使用される。0089PスライスとしてコーディングされたGPBフレームの動き予測方向についての低減ビットシンタックス要素の一例を定義するための修正とともに、ビデオブロックまたはPUレベルにおけるシンタックスからの抜粋を以下の表3に提示する。predition_unitシンタックスは、ビデオフレーム内の、開始ピクセルまたはサブピクセル座標x0、y0に位置し、currPredUnitSizeによって与えられるあるサイズを有する、所与のPUに対して定義される。表3のC列は、現在のビデオブロックのどのデータパーティション中にシンタックス要素が含まれるのかを定義する各シンタックス要素のカテゴリーを示す。表3の記述子列は、ビデオデコーダ30におけるシンタックス要素の適切なパーシングを可能にするためにシンタックス要素のために使用されるコーディングのタイプを示す。たとえば、記述子uevは、指数ゴロムコーディングを示す。表3のシンタックスの抜粋に示すように、現在のビデオブロックまたはPUを含むビデオフレームがBスライスと見なされた場合、動き補償ユニット44は、従来のBフレームのビデオブロックのパーティションiの動き予測方向をシグナリングするために、従来の2ビットシンタックス要素、inter_pred_idc[i]を生成する。しかし、ビデオフレームがPスライスと見なされ、GPBフレームであった場合、動き補償ユニット44は、GPBフレームのビデオブロックのパーティションiの動き予測方向をシグナリングするために、シングルビットシンタックス要素、bi_pred_flag[i]を生成する。ビデオフレームがGPBフレームとして符号化されることを示すために、ビデオエンコーダ20がより高いレベルにおいてGPBフレームフラグを明示的にシグナリングするとき、シンタックスにおいて使用されるGPBフラグ、slice_gpb_flagは真であると判断され得る。0090場合によっては、GPBフレームが使用可能であるとき、GPBフレームに対して新しいスライスタイプが定義され得る。この場合、現在のビデオフレームがGPBフレームとして符号化されることを示すために追加の明示的または暗黙的シグナリングは必要ない。GPBスライスとしてコーディングされたGPBフレームについてのスライスヘッダシンタックスは、動き予測方向についての低減ビットシンタックス要素を定義し得る。一例では、低減ビットシンタックス要素は、上記で説明した、新たに定義されたシングルビットシンタックス要素、たとえば、bi_pred_flagであり得る。別の例では、低減ビットシンタックス要素は、Bフレームの動き予測方向についての従来のシンタックス要素、すなわち、inter_pred_idcの1つのモードであり得、そのモードでは、シンタックス要素の第1のビットのみが使用される。0091GPBスライスとしてコーディングされたGPBフレームの動き予測方向についての低減ビットシンタックス要素の一例を定義するための修正とともに、ビデオブロックまたはPUレベルにおけるシンタックスからの抜粋を以下の表4に提示する。predition_unitシンタックスは、ビデオフレーム内の、開始ピクセルまたはサブピクセル座標x0、y0に位置し、currPredUnitSizeによって与えられるあるサイズを有する、所与のPUに対して定義される。表4のC列は、現在のビデオブロックのどのデータパーティション中にシンタックス要素が含まれるのかを定義する各シンタックス要素のカテゴリーを示す。表4の記述子列は、ビデオデコーダ30におけるシンタックス要素の適切なパーシングを可能にするためにシンタックス要素のために使用されるコーディングのタイプを示す。たとえば、記述子uevは、指数ゴロムコーディングを示す。シンタックスの抜粋に示すように、現在のビデオブロックまたはPUを含むビデオフレームがBスライスと見なされた場合、動き補償ユニット44は、従来のBフレームのビデオブロックのパーティションiの動き予測方向をシグナリングするために、従来の2ビットシンタックス要素、inter_pred_idc[i]を生成する。しかしながら、ビデオフレームがGPBスライスと見なされた場合、動き補償ユニット44は、GPBフレームのビデオブロックのパーティションiの動き予測方向をシグナリングするために、シングルビットシンタックス要素、bi_pred_flag[i]を生成する。0092次に、双方向予測の場合にビデオブロックについての予測情報をコーディングするコストを低減するための技法について説明する。上記で説明したように、動き推定ユニット42は、GPBフレームの現在のビデオブロックのためのリスト066からの第1の動きベクトルとリスト168からの第2の動きベクトルとを計算する双方向予測を使用し得る。動き補償ユニット44は、次いで、現在のビデオブロックのための動きベクトルを示すように定義されるシンタックス要素を生成し得る。動きベクトルについての従来のシンタックス要素は、動きベクトルと動き予測子との間の差を示すように定義された第1のシンタックス要素、すなわち、mvdと、動き予測子が生成される参照ピクチャの参照ピクチャリスト中のインデックスを示すように定義された第2のシンタックス要素、すなわち、ref_idxとを含む。0093現在のビデオフレームがGPBフレームに指定されるとき、ビデオエンコーダ20は、同一の参照ピクチャのための識別子を含んでいるリスト066とリスト168とを記憶する。リスト066とリスト168とは同じ参照ピクチャを含むので、動き推定ユニット42は、同じ2つ参照ピクチャすなわち実質的に類似する2つ参照ピクチャのうちのいずれかから第1の動きベクトルと第2の動きベクトルとを計算し得る。したがって、GPBフレームのビデオブロックのための第1の動きベクトルと第2の動きベクトルとは高度に相関する。高度に相関する動きベクトルの各々についてシンタックス要素を単独で生成するのは冗長であり得、2つの動きベクトルをジョイント符号化することがより効率的である。0094本開示の技法によれば、動き補償ユニット44は、従来第2の動きベクトルを表すために使用されるシンタックス要素を低減するかまたは削除することによって、動きベクトルをシグナリングするために使用されるビットを低減し得る。ビデオエンコーダ20は、次いで、第1の動きベクトルと第2の動きベクトルとをジョイント符号化する。たとえば、ビデオエンコーダ20は、従来、動き予測子に関して第1の動きベクトルを符号化し、次いで、第1の動きベクトルに関して第2の動きベクトルを符号化する。ビデオエンコーダ20は、ビデオブロックまたはPUレベルにおいて、GPBフレームの各ビデオブロックについての他の予測シンタックスとともに、ジョイント符号化された動きベクトルをビデオデコーダ30にシグナリングする。0095動き補償ユニット44は、動き推定ユニット42からGPBフレームの現在のビデオブロックのための第1の動きベクトルと第2の動きベクトルとを受信する。動き補償ユニット44は、次いで、隣接ビデオブロックの動きベクトルから第1の動きベクトルのための第1の動き予測子を生成する。たとえば、現在のビデオブロックのための第1の動きベクトルは、リスト066からの参照ピクチャ中の予測ブロックをさし示す。したがって、第1の動き予測子は、リスト066からの同じ参照ピクチャ中の別のブロックをさし示す、GPBフレーム中の隣接ビデオブロックの動きベクトルから生成され得る。0096動き補償ユニット44は、第1の動き予測子に対する第1の動きベクトルを表すためのシンタックス要素を生成する。たとえば、動き補償ユニット44は、第1の動きベクトルと第1の動き予測子との間の差を示すように定義された第1のシンタックス要素、すなわち、mvdと、第1の動き予測子が生成された参照ピクチャのリスト066中のインデックスを示すように定義された第2のシンタックス要素、すなわち、ref_idxとを生成する。このようにして、ビデオエンコーダ20は、従来、動き補償ユニット44によって生成されたシンタックス要素を用いて、第1の動き予測子に対して第1の動きベクトルを符号化する。0097動き補償ユニット44は、隣接ビデオブロックからの第2の動きベクトルのための第2の動き予測子を生成しないことがあるが、代わりに第2の動き予測子として第1の動きベクトルを使用する。ビデオエンコーダ20は、次いで、第1の動きベクトルに対して、ビデオブロックのための第2の動きベクトルを符号化する。このようにして、第2の動きベクトルは、第1の動きベクトルと第2の動きベクトルとの間の差として符号化され得る。いくつかの例では、動き補償ユニット44は、第2の動きベクトルについてのいかなるシンタックス要素も生成しないことがある。他の例では、動き補償ユニット44は、第2の動きベクトルと第1の動きベクトルとの間の差を示すように定義される第1のシンタックス要素のみを生成し得る。0098場合によっては、動きベクトルが同じ参照ピクチャまたは実質的に類似する参照ピクチャをさし示すポイントするとき、ビデオエンコーダ20は、第1の動きベクトルと第2の動きベクトルとを単にジョイント符号化し得る。第1の動きベクトルと第2の動きベクトルとが同じ参照ピクチャをさし示さないとき、第2の動き予測子として第1の動きベクトルを使用する前に、第1の動きベクトルは、第1の動きベクトルと第2の動きベクトルとの間の時間距離に従ってスケーリングされ得る。0099いくつかの例では、現在のブロックの動きベクトルのための動き予測子は、隣接ブロックの複数の動きベクトルから生成され得る。この場合、動き補償ユニット44は、隣接ビデオブロックの複数の候補動きベクトルから、現在のビデオブロックの第1の動きベクトルのための第1の動き予測子を生成し得る。動き補償ユニット44はまた、第1の動きベクトルを含む複数の候補動きベクトルから、現在のビデオブロックの第2の動きベクトルのための第2の動き予測子を生成し得る。この場合、第2の動きベクトルは、依然として、第1の動きベクトルに対して符号化され得るが、第1の動きベクトルに基づくことに限定するものではない。0100所与の参照ピクチャリストからの動きベクトルのための動き予測子は、一般に、同じ参照ピクチャリスト中の同じフレームから計算される、隣接ビデオブロックの動きベクトルから生成される。しかしながら、現在のフレームがGPBフレームであり、したがって、第1の参照ピクチャリストと第2の参照ピクチャリストとが同一の参照ピクチャのための識別子を含んでいるとき、動き予測子は、隣接ビデオブロックの動きベクトルとは異なるリストから生成され得る。たとえば、隣接ビデオブロックの動きベクトルがリスト066中の参照ピクチャを指す場合、動き補償ユニット44は、リスト066またはリスト168のいずれかの中の参照ピクチャから、現在のビデオブロックの動きベクトルのための第1の動き予測子を生成し得る。0101場合によっては、第1の動き予測子を生成するために使用される隣接ビデオブロックの動きベクトルは、同じ参照ピクチャリスト、たとえばリスト066中で、現在のビデオブロックの第1の動きベクトルとして利用可能でないことがある。本開示の技法によれば、隣接ビデオブロックの動きベクトルがリスト066中で利用可能でないとき、動き補償ユニット44は、リスト168から第1の動き予測子を計算し得る。これは、隣接ビデオブロックの動きベクトルが当初リスト168から計算されて、リスト066に記憶されなかった場合に行われ得る。追加の解決策として、動き推定ユニット42は、各参照ピクチャリストから計算される動きベクトルを両方の参照ピクチャリストに記憶する。たとえば、動き推定ユニット42が、GPBフレーム中の隣接ビデオブロックについて、リスト066から動きベクトルを計算するとき、動き推定ユニット42は、リスト066とリスト168の両方に当該動きベクトルを記憶する。このようにして、動き補償ユニット44は、常に、参照ピクチャリスト66、68のいずれかから、隣接ビデオブロックの動きベクトルのための動き予測子を生成し得る。0102動き補償ユニット44が、動きベクトルに基づいて現在のビデオブロックのための予測ブロックを生成し、現在のビデオブロックについての予測情報を表すためのシンタックス要素を生成した後、ビデオエンコーダ20は、現在のビデオブロックから予測ブロックを減算することによって、残差ビデオブロックを形成する。変換ユニット52は、残差ブロックから1つまたは複数の変換ユニットTU:transformunitを形成し得る。変換ユニット52は、離散コサイン変換DCT:discretecosinetransformまたは概念的に同様の変換などの変換をTUに適用し、残差変換係数を備えるビデオブロックを生成する。変換は、残差ブロックをピクセル領域から周波数領域などの変換領域に変換し得る。0103変換ユニット52は、得られた変換係数を量子化ユニット54へ送る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。0104量子化の後、エントロピー符号化ユニット56は、量子化変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディングCAVLC:contextadaptivevariablelengthcoding、コンテキスト適応型バイナリ算術コーディングCABAC:contextadaptivebinaryarithmeticcoding、または別のエントロピー符号化技法を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化の後、符号化されたビットストリームは、ビデオデコーダ30などのビデオデコーダに送信されるか、あるいは後で送信または検索するためにアーカイブされるアーカイブに保存する。0105エントロピー符号化ユニット56はまた、コーディングされている現在のビデオブロックのための動きベクトルと他の予測シンタックス要素とをエントロピー符号化し得る。たとえば、エントロピー符号化ユニット56は、符号化されたビットストリーム中で送信するために動き補償ユニット44によって生成された適切なシンタックス要素を含むヘッダ情報を構築し得る。PUまたはビデオブロックレベルにおいて、シンタックス要素は、動きベクトルと動き予測方向とを含み得る。より高レベルにおいて、シンタックス要素は、GPBフレームが所与のビデオフレームについて使用可能であるかどうかを示すGPB使用可能フラグと、所与のビデオフレームがGPBフレームとして符号化されるかどうかを示すGPB符号化フラグGPBencodedflagとを含み得る。ビデオデコーダは、予測ブロックを取り出し、ビデオエンコーダ20によって符号化された元のビデオブロックを再構成するために、これらのシンタックス要素を使用し得る。0106シンタックス要素をエントロピー符号化するために、エントロピー符号化ユニット56は、コンテキストモデルに基づいてシンタックス要素を1つまたは複数のバイナリビットに2値化し得る。この例では、エントロピー符号化ユニット56は、好適参照ピクチャ中の参照ピクチャに関する単方向予測モードを示すシンタックス要素にシングルビット2値化をリンクするために動き補償ユニット44によって適応された2値化を適用し得る。さらに、エントロピー符号化ユニット56は、好適参照リストのほうへバイアスされたビットの確率初期設定に基づいて、シンタックス要素のビットを小数ビット値として符号化し得る。0107逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット44は、残差ブロックをリスト066またはリスト168内の複数の参照ピクチャのうちの1つ参照ピクチャの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ64に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレーム中のブロックをインター予測するinterpredictために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。0108図4は、ビデオフレームのビデオブロックについての予測情報を効率的にコーディングするための技法を実装し得るビデオデコーダ30の一例を示すブロック図である。図4の例では、ビデオデコーダ30は、エントロピー復号ユニット80と、予測ユニット81と、逆量子化ユニット86と、逆変換ユニット88と、加算器90と、参照ピクチャメモリ92とを含む。予測ユニット81は、動き補償ユニット82と、イントラ予測ユニット84とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20図3に関して説明した符号化パスとは概して逆の復号パスを実行し得る。0109復号プロセス中に、ビデオデコーダ30は、符号化されたビデオフレームと、ビデオエンコーダ20などのビデオエンコーダからのコーディング情報を表すシンタックス要素とを含む符号化されたビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット80は、量子化係数、動きベクトル、および他の予測シンタックスを生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット80は、予測ユニット81に動きベクトルと他の予測シンタックスとを転送する。ビデオデコーダ30はシンタックス要素を、ビデオブロックまたはPUレベル、ビデオスライスレベル、ビデオフレームレベルおよび/またはビデオシーケンスレベルにおいて受信し得る。0110予測ユニット81のイントラ予測ユニット84は、シグナリングされたイントラ予測モードと現在のフレームの前に復号されたブロックからのデータとに基づいて、現在のビデオフレームのビデオブロックについての予測データを生成し得る。予測ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信した動きベクトルと予測シンタックスとに基づいて予測ブロックを生成する。予測ブロックは、第1の参照ピクチャリストリスト094および/または第2の参照ピクチャリストリスト196のうちの1つまたは複数から生成され得、それらの参照ピクチャリストは、参照ピクチャメモリ92に記憶された参照ピクチャのための識別子を含む。0111動き補償ユニット82はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット82は、ビデオブロックの符号化の間にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット82は、受信したシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。0112動き補償ユニット82は、動きベクトルと予測シンタックスとをパースすることによって現在のビデオブロックについての予測情報を決定し、当該予測情報使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。動き補償ユニット82は、現在のビデオフレームを復号するために、受信したシンタックス要素のいくつかを使用して、現在のフレームを符号化するために使用されるCUのサイズと、フレームの各CUがどのように分割されるのかを記述する分割情報と、各分割がどのように符号化されるのかを示すモードたとえば、イントラ予測またはインター予測と、インター予測スライスタイプたとえば、Bスライス、Pスライス、またはGPBスライスと、フレームのための1つまたは複数の参照ピクチャリストと、フレームの各インター符号化PUまたはCUのための動きベクトルと、フレームの各インター符号化PUまたはCUの動き予測方向と、他の情報とを決定する。0113動き補償ユニット82は、GPBフレームが現在のビデオフレームに対して使用可能であるかまたは許可されるかどうかを判断するために、ビデオフレームレベルまたはビデオシーケンスレベルにおいてシンタックスをパースし得る。たとえば、動き補償ユニット82は、ビデオフレームレベルまたはビデオシーケンスレベルのいずれかにおいてシンタックス中で受信されるGPB使用可能フラグに基づいて、GPBフレームが使用可能であると判断し得る。GPB使用可能フラグは、図3に関して詳細に説明されており、GPBフレームが使用不能であること、全体的に使用可能であること、または部分的に使用可能であることを示すように定義され得る。動き補償ユニット82はまた、現在のビデオフレームについての参照ピクチャリスト情報を決定するために、ビデオスライスレベルまたはビデオフレームレベルにおいてシンタックスをパースし得る。ビデオデコーダ30は、次いで、シンタックスによって示される、参照ピクチャのための識別子を含むリスト094とリスト196とを記憶する。現在のビデオフレームがGPBフレームであるとき、リスト094とリスト196とは、同一の複数の参照ピクチャの識別子を含む。より詳細には、リスト094とリスト196との各々の中に含まれるピクチャの数は同一であり、リスト094中の各インデックスエントリによって示されるピクチャは、リスト196中の同じインデックスエントリによって示されるピクチャと同一である。0114本開示の技法によれば、ビデオデコーダ30は、ビデオブロックについての予測情報をコーディングするコストを低減し得る。たとえば、単方向予測モードの場合、ビデオデコーダ30は、2ビット未満を使用して1つの参照ピクチャリスト中の1つの参照ピクチャに関する単方向予測モードと双方向予測モードとのうちの1つを使用してビデオブロックがコーディングされることを示す、1つまたは複数のシンタックス要素を復号し得る。該参照ピクチャリストは、2つの異なる参照ピクチャリストのうちの好適参照ピクチャリストであり得、またはGPBフレームが使用可能であるとき、2つの同一の参照ピクチャリストのいずれかであり得る。別の例として、双方向予測モードの場合、ビデオデコーダ30は、GPBフレームの1つまたは複数のビデオブロックの各々について2つの動きベクトルをジョイント復号し、2つの同一の参照ピクチャリストから計算される2つの動きベクトルを用いてビデオブロックの各々を復号し得る。その2つの動きベクトルは、同じ参照ピクチャまたは類似の参照ピクチャから計算され得る。0115最初に、単方向予測の場合にビデオブロックについての予測情報をコーディングするコストを低減するための技法について説明する。動き補償ユニット82は、現在のビデオブロックの動き予測方向についての1つまたは複数のシンタックス要素をパースし得る。Bフレーム中のビデオブロックの動き予測方向についての従来のシンタックス要素、inter_pred_idcは、ブロックを符号化するために単方向予測モードが使用されるのか双方向予測モードが使用されるのかを示す第1のビットと、単方向予測のために使用される参照ピクチャリストを示す第2のビットとを含む。同一の参照ピクチャリストの場合、参照ピクチャリストのいずれも単方向予測モードのために互換的に使用され得るので、従来のシンタックス要素の第2のビットは冗長であり得る。0116本開示の技法によれば、動き補償ユニット82は、参照ピクチャリスト中の参照ピクチャに関する単方向予測を使用して現在のビデオブロックが符号化されることを示す動き予測方向を示すシンタックス要素の低減ビットコーディングをパースし得る。現在のフレームがGPBフレームであると判断され、したがって、リスト094とリスト196とが同一であるとき、動き補償ユニット82は、単方向予測モードのために2つの同一の参照ピクチャリストのいずれも互換的に使用し得る。0117動き補償ユニット82は、図3に関して説明した明示的にシグナリングされたGPBフレームフラグに基づいて、現在のビデオフレームがGPBフレームとして符号化されるかどうかを判断し得る。動き補償ユニット82は、ビデオスライスレベル、ビデオフレームレベル、またはビデオシーケンスレベルのいずれかにおいてGPBフレームフラグを受信し得る。そのGPBフレームフラグは、現在のビデオフレームがGPBフレームとして符号化され、よって、ビデオブロックの動き予測方向がシングルビットシンタックスで符号化されることをビデオデコーダ30に明示的に通知するために使用され得る。その明示的シグナリングにより、ビデオデコーダ30は、ビデオシーケンス復号の開始時にかかわらず、動き予測方向を判断するためにシングルビットシンタックス要素を正しくパースすることが可能になり得る。GPBフレームフラグに基づいて、ビデオデコーダ30は、フレームがGPBフレームであるときを常に気づき、動き予測方向についてのシングルビットシンタックスをパースすることを予期する。0118他の場合には、動き補償ユニット82は、リスト094とリスト196とを比較し、リスト094とリスト196とが同一の参照ピクチャを含んでいるとき、現在のフレームがGPBフレームであると判断し得る。しかしながら、その2つの参照ピクチャリストは、復号中に参照ピクチャが追加または更新される前のビデオシーケンスの始めにビデオデコーダ30には同一にしか見えないことになる。したがって、暗黙的シグナリングは、ビデオデコーダ30がビデオシーケンスの始めに復号を開始した場合にのみ、シングルビットシンタックス要素の正しいパーシングが可能になり得る。そうでない場合、ビデオデコーダ30は、フレームがGPBフレームとして符号化されていることに気づかないことになり、動き予測方向についてのシングルビットシンタックスをパースすることを予期しないことになる。0119GPBフレーム符号化の明示的または暗黙的通知は、GPBフレームがBスライスまたはPスライスとして符号化されるときに必要であり得る。他の場合には、動き補償ユニット82は、GPBフレームに対して定義された新しいスライスタイプに基づいて、現在のフレームがGPBフレームであることを判断し得、その新しいスライスタイプによって、GPBフレーム符号化の追加の明示的または暗黙的通知が不要になる。0120一例では、GPBフレームのビデオブロックが単方向予測を使用して符号化されるのか双方向予測を使用して符号化されるのかを示すように定義されたシングルビットシンタックス要素、たとえば、bi_pred_flagを備えるGPBフレームに対して別個のシンタックスが定義され得る。シングルビットシンタックス要素の導入により、上記で説明した、従来のシンタックス要素、すなわち、inter_pred_idcとの混同が回避され得る。動き補償ユニット82は、GPBフレームの現在のビデオブロックが単方向予測を使用してコーディングされることを示すシングルビットシンタックス要素をパースし得る。同一の参照ピクチャリスト94、96のいずれも単方向予測モードのために使用され得るので、動き補償ユニット82は、単方向予測のためにいずれか一方の参照ピクチャリストを使用する。0121別の例では、GPBフレームのビデオブロックが単方向予測モードを使用して符号化されるのか双方向予測モードを使用して符号化されるのかを示すためにシンタックス要素の第1のビットのみが使用されるGPBフレームに対して、従来のシンタックス要素、すなわち、inter_pred_idcのシングルビットモードが定義され得る。動き補償ユニット82は、ビデオブロックが単方向予測を使用して符号化されることを示すシンタックス要素の第1のビットのみについてシンタックス要素をパースし得る。動き補償ユニット82は、単方向予測のためにずれかの一方の参照ピクチャリストを使用する。0122場合によっては、動き補償ユニット82は、参照ピクチャリスト中の参照ピクチャに関する単方向予測を使用して符号化される任意のタイプのインターコード化フレームのビデオブロックの動き予測方向を示すシンタックス要素に割り当てられた低減ビット値を復号し得る。ビデオフレームがBフレームに指定されるとき、参照ピクチャリストは、参照ピクチャリストのうち、単方向予測のための頻繁に使用される好適な参照ピクチャリストであり得る。ビデオフレームがGPBフレームに指定されるとき、参照ピクチャリストは、2つの同一の参照ピクチャリストのいずれかであり得る。0123一例として、動き補償ユニット82は、ビデオエンコーダ20からのシンタックス中で動き予測方向を示すシンタックス要素の適応型2値化を受信し得る。動き補償ユニット82は、ビデオブロックまたはPUレベル、CUレベル、ビデオスライスレベル、ビデオフレームレベル、あるいはビデオシーケンスレベルのうちの1つにおいて適応型2値化を受信し得る。0124受信した適応型2値化に従って、動き補償ユニット82は、動き予測方向を示すシンタックス要素の各ステータスを異なる2値化に適応的にリンクし得、したがって、シングルビット2値化が、好適参照ピクチャリスト中の1つの参照ピクチャに関する単方向予測モードにリンクされる。たとえば、動き補償ユニット82は、シングルビット2値化の0が好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを表し、2値化の10が非好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを表し、2値化の11が双方向予測モードを表すように、2値化を適応させ得る。場合によっては、動き補償ユニット82は、独立して、動き予測方向を示すシンタックス要素の各ステータスがどれくらいの頻度で発生するかに基づいて動き予測方向についてのシンタックス要素を適応的に2値化し得る。適応型2値化に基づいて、動き補償ユニット82は、現在のビデオブロックが好適参照リスト中の参照ピクチャに関する単方向予測モードを使用して符号化されていることを示すように定義されたシンタックス要素のシングルビット2値化を復号し得る。0125別の例として、動き補償ユニット82は、現在のビデオブロックの動き予測方向についての従来のシンタックス要素、すなわち、inter_pred_idcを表すために割り当てられた値を受信し得る。動き補償ユニット82は、単方向予測モードを使用して現在のビデオブロックが符号化されていることを示すように定義されたシンタックス要素の第1のビットに割り当てられたシングルビット値を復号し得る。動き補償ユニット82は、次いで、単方向予測モードのために好適参照ピクチャリストが使用されることを示すように定義されたシンタックス要素の第2のビットに割り当てられた小数ビット値を復号し得る。第2のビットを表すために使用される小数ビット値は、構成データに従って好適参照ピクチャリストのほうへバイアスされた第2のビットの確率初期設定に基づき得る。確率が高いほど、シンタックス要素を表すために使用される値の長さがより短くなる。第2のビットが好適参照ピクチャリストを示す確率が高いと、第2のビットを小数ビット値、すなわち、1ビット未満によって表すことが可能になる。0126次に、双方向予測の場合にビデオブロックについての予測情報をコーディングするコストを低減するための技法について説明する。ビデオデコーダ30は、ビデオエンコーダ20から受信したシンタックスから現在のビデオフレームのための動きベクトルを復号する。動きベクトルについての従来のシンタックス要素は、動きベクトルと動き予測子との間の差を示すように定義された第1のシンタックス要素、すなわち、mvdと、当該動き予測子が生成される参照ピクチャの参照ピクチャリスト中のインデックスを示すように定義された第2のシンタックス要素、すなわち、ref_idxとを含む。現在のビデオフレームがGPBフレームに指定され、したがって、リスト094とリスト196とが同一の参照ピクチャのための識別子を含むとき、第1の動きベクトルと第2の動きベクトルとは、同じ参照ピクチャまたは実質的に類似する参照ピクチャのいずれかを指し示す。したがって、GPBフレームのビデオブロックのための第1の動きベクトルと第2の動きベクトルとは、高度に相関し、ジョイント符号化され得る。0127本開示の技法の一例によれば、ビデオデコーダ30は、シンタックス要素に基づいてGPBフレームの現在のビデオブロックのための第1の動きベクトルと第2の動きベクトルとをジョイント復号する。このようにして、動き補償ユニット82は、従来、動きベクトルを個別に復号するために使用されるシンタックス要素を低減するかまたは削除することによって、動きベクトルをシグナリングするために使用されるビットを低減し得る。0128第1の動きベクトルは、従来、第1の動きベクトルと第1の動き予測子との間の差を示す第1のシンタックス要素、すなわち、mvdと、第1の動き予測子が生成された参照ピクチャのリスト094中のインデックスを示す第2のシンタックス要素、すなわち、ref_idxとに基づいて復号され得る。動き補償ユニット82は、第2のシンタックス要素によって識別されるビデオフレーム中の隣接ビデオブロックの動きベクトルから、現在のビデオブロックの第1の動きベクトルのための第1の動き予測子を生成する。このようにして、ビデオデコーダ30は、第1のシンタックス要素に基づいて、第1の動き予測子に対してビデオブロックのための第1の動きベクトルを復号し得る。0129第2の動きベクトルは、次いで、第1の動きベクトルに対して復号され得る。動き補償ユニット82は、隣接ビデオブロックからの第2の動きベクトルのための第2の動き予測子を生成しないことがあるが、代わりに第2の動き予測子として第1の動きベクトルを使用する。このようにして、ビデオデコーダ30は、第1の動きベクトルと第2の動きベクトルとの間の差に基づいて第2の動きベクトルを復号し得る。いくつかの例では、動き補償ユニット82は、第2の動きベクトルについてのいかなるシンタックス要素も受信しないことがある。他の例では、動き補償ユニット82は、第2の動きベクトルと第1の動きベクトルとの間の差を示すように定義された第1のシンタックス要素のみを受信し得る。0130いくつかの例では、現在のブロックの動きベクトルのための動き予測子は、隣接ブロックの複数の動きベクトルから生成され得る。この場合、動き補償ユニット82は、隣接ビデオブロックの複数の候補動きベクトルから、現在のビデオブロックの第1の動きベクトルのための第1の動き予測子を生成し得る。動き補償ユニット82はまた、第1の動きベクトルを含む複数の候補動きベクトルから、現在のビデオブロックの第2の動きベクトルのための第2の動き予測子を生成し得る。この場合、第2の動きベクトルは、依然として、第1の動きベクトルに対して復号され得るが、第1の動きベクトルに基づくことに限定するものではない。0131現在のフレームがGPBフレームであり、したがって、第1の参照ピクチャリストと第2の参照ピクチャリストとが同一の参照ピクチャのための識別子を含むとき、動き予測子は、隣接ビデオブロックの動きベクトルとは異なるリストから生成され得る。たとえば、隣接ビデオブロックの動きベクトルがリスト094中の参照ピクチャをさし示す場合、動き補償ユニット82は、リスト094またはリスト196のいずれかの中の参照ピクチャから、現在のビデオブロックの動きベクトルのための第1の動き予測子を生成し得る。リスト094とリスト196とは、同じ順序で同一の複数の参照ピクチャを含むので、動き予測子が生成され、動きベクトルについての第2のシンタックス要素によって識別される参照ピクチャのインデックスは、両方の参照ピクチャリスト94、96の中の同じ参照ピクチャを参照する。0132場合によっては、第1の動き予測子を生成するために使用される、隣接ビデオブロックの動きベクトルは、現在のビデオブロックの第1の動きベクトルとして、同じ参照ピクチャリスト、たとえば、リスト094中で利用可能でないことがある。本開示の技法によれば、隣接ビデオブロックの動きベクトルがリスト094中で利用可能でないとき、動き補償ユニット82は、リスト196から第1の動き予測子を計算し得る。これは、隣接ビデオブロックの動きベクトルが当初リスト196から復号され、リスト094に記憶されなかった場合に起こり得る。追加の解決策として、動き補償ユニット82は、各参照ピクチャリストから復号される動きベクトルを両方の参照ピクチャリストに記憶し得る。たとえば、動き補償ユニットが、GPBフレーム中の隣接ビデオブロックについて、リスト094から動きベクトルを復号するとき、動き補償ユニット82は、リスト094とリスト196の両方に当該動きベクトルを記憶し得る。このようにして、動き補償ユニット82は、常に、参照ピクチャリスト94、96のいずれかから、隣接ビデオブロックの動きベクトルのための動き予測子を生成し得る。0133逆量子化ユニット86は、ビットストリームで供給され、エントロピー復号ユニット80によって復号された量子化変換係数を逆量子化inversequantize、すなわち、逆量子化dequantizeする。逆量子化プロセスは、量子化の程度、および同様に、適用されるべき逆量子化の程度を判断するために、各CUまたはビデオブロックについてビデオエンコーダ20によって計算される量子化パラメータQPYの使用を含み得る。逆変換ユニット88は、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域における残差ブロックを生成する。0134動き補償ユニット82が、動きベクトルと予測シンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号されたビデオブロックは、次いで、参照ピクチャメモリ92に記憶され、参照ピクチャメモリ92は、その後の動き補償のために参照ピクチャの参照ブロックを与える。参照ピクチャメモリ92はまた、図1のディスプレイデバイス32などのディスプレイデバイス上での表示のために、復号されたビデオを生成する。0135図5は、単方向予測モードを使用してGPBフレームのビデオブロックがコーディングされることを示すシングルビットシンタックス要素を符号化する例示的な動作を示すフローチャートである。図示の動作について、図3からのビデオエンコーダ20を参照しながら説明する。0136ビデオエンコーダ20は、符号化されるべきビデオフレームのCUまたはビデオブロックを受信する。GPBフレームが現在のビデオフレームに対して使用可能であるかまたは許可された場合、ビデオエンコーダ20は、GPBフレームが使用可能であることを示すために、ビデオデコーダ30などのデコーダにGPB使用可能フラグをシグナリングする98。ビデオエンコーダ20は、ビデオフレームレベルまたはビデオシーケンスレベルのいずれかにおいて、シンタックス中でGPB使用可能フラグをシグナリングし得る。GPB使用可能フラグは、GPBフレームが使用不能であること、全体的に使用可能であること、または部分的に使用可能であることを示すように定義され得る。GPBフレームが全体的に使用可能であるとき、当初指定されたPフレームは、ブロックごとに1つまたは2つの動きベクトルを用いるGPBフレームとして扱われ得る。GPBフレームが部分的に使用可能であるとき、Pフレーム概念concept、Bフレーム概念、およびGPBフレーム概念は別個の概念として扱われ得る。0137ビデオエンコーダ20は、次いで、GPBフレームとして現在のビデオフレームを符号化することを決定する100。場合によっては、ビデオエンコーダ20の動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオフレームのためのインター予測モードを判断するように構成され得る。所定のパターンは、シーケンス中の1つまたは複数のビデオフレームをGPBフレームに指定し得る。他の場合には、動き推定ユニット42は、当初指定されたPフレームをGPBフレームとして符号化すべきかどうかを判断し得る。後者の場合は、GPBフレームが全体的に使用可能であるのか部分的に使用可能であるのかに依存し得る。0138オプションで、ビデオエンコーダ20は、現在のビデオフレームがGPBフレームとして符号化されることを示すために、ビデオデコーダ30にGPBフレームフラグをシグナリングする102。ビデオエンコーダ20は、ビデオスライスレベル、ビデオフレームレベル、またはビデオシーケンスレベルのうちの1つにおいて、シンタックス中でGPBフレームフラグをシグナリングし得る。そのGPBフレームフラグは、シーケンス内の所与のフレームがGPBフレームとして符号化され、したがって、動き予測方向が低減ビットシンタックスで符号化されることをビデオデコーダ30に明示的に通知するために使用され得る。しかし、場合によっては、ビデオエンコーダ20は、GPBフレーム符号化を明示的にシグナリングしないことがある。その場合には、ビデオエンコーダ20は、参照ピクチャリストが同一であるとき、所与のフレームがGPBフレームとして符号化されることをビデオデコーダ30に暗黙的にシグナリングし得る。GPBフレーム符号化の明示的または暗黙的通知は、GPBフレームがBフレームまたはPフレームとして符号化されるときに必要であり得る。他の場合には、GPBフレームに対して新しいフレームまたはスライスタイプが定義され得、それにより、GPBフレーム符号化の追加の明示的または暗黙的通知が不要になる。0139現在のビデオフレームがGPBフレームとして符号化さると判断されるとき、ビデオエンコーダ20は、同一の参照ピクチャのための識別子を含む、GPBフレームのための第1の参照ピクチャリストリスト066と第2の参照ピクチャリストリスト168とをメモリに記憶する104。リスト066とリスト168とは同一の参照ピクチャを含むので、ビデオエンコーダ20の動き補償ユニット44は、単方向予測のために2つの同一の参照ピクチャリストのどちらかを互換的に使用し得る。0140ビデオエンコーダ20は、参照ピクチャリストのいずれかの中の参照ピクチャに関する単方向予測を使用してGPBフレームの1つまたは複数のビデオブロックを符号化する106。本開示の技法によれば、動き補償ユニット44は、次いで、単方向予測を使用して符号化されるビデオブロックの各々の動き予測方向を表すためにシングルビットシンタックスを生成する。場合によっては、ビデオブロックが単方向予測を使用して符号化されるのか双方向予測を使用して符号化されるのかを示すように定義されたシングルビットシンタックス要素を備える、GPBフレームに対する別個のシンタックスが定義される108。シングルビットシンタックス要素の導入により、ブロックを符号化するために単方向予測が使用されるのか双方向予測が使用されるのかを示すように定義された第1のビットと、どの参照ピクチャリストが単方向予測のために使用されるのかを示すように定義された第2のビットとを含む従来のシンタックス要素との混同が回避され得る。0141GPBフレームに対して別個のシンタックス要素が定義されているとき108のYES分岐、動き補償ユニット44は、シングルビットシンタックス要素を生成する。ビデオエンコーダ20は、単方向予測を使用してビデオブロックが符号化されることを示すために、ビデオブロックの各々についてシングルビットシンタックス要素を符号化する110。同一の参照ピクチャリストのいずれもが単方向予測のために使用され得るので、GPBフレームのビデオブロックを符号化するために参照ピクチャリストのどちらが使用されるのかを明示的にシグナリングする必要がない。0142GPBフレームに対して別個のシンタックス要素が定義されていないとき108のNO分岐、動き補償ユニット44は、従来のシンタックス要素の第1のビットのみを生成し得る。ビデオエンコーダ20は、単方向予測を使用してビデオブロックが符号化されることを示すために、ビデオブロックの各々についてシンタックス要素の第1のビットのみを符号化する112。参照ピクチャリストのいずれもが単方向予測のために使用され得るので、動き補償ユニット44は、GPBフレームのビデオブロックについてのシンタックス要素の第2のビットを削除する114。いずれの場合も、ビデオエンコーダ20は、ブロックレベルまたはPUレベルにおいて、GPBフレームの各ビデオブロックについての動きベクトル情報とともに、動き予測方向についてのシングルビットシンタックスをビデオデコーダにシグナリングする。0143図6は、単方向予測モードを使用してGPBフレームのビデオブロックがコーディングされることを示すシングルビットシンタックス要素を復号する例示的な動作を示すフローチャートである。図示の演算について、図4からのビデオデコーダ30を参照しながら説明する。0144ビデオデコーダ30は、ビデオエンコーダ20などの対応するビデオエンコーダから、符号化されたビデオフレームとコーディング情報を表すシンタックス要素とを含むビットストリームを受信する116。ビデオデコーダ30は、ビデオブロックまたはPUレベル、ビデオスライスレベル、ビデオフレームレベルおよび/あるいはビデオシーケンスレベルにおいてシンタックス要素を受信し得る。ビデオデコーダ30のエントロピー復号ユニット80は、量子化係数、動きベクトル、および他の予測シンタックスを生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット80は、予測ユニット81の動き補償ユニット82に動きベクトルと他の予測シンタックスとを転送する。動き補償ユニット82は、次いで、GPBフレームが現在のビデオフレームに対して使用可能であるかまたは許可されると判断する117。動き補償ユニット82は、ビデオフレームレベルまたはビデオシーケンスレベルのいずれかにおいてシンタックスとともに受信されるGPB使用可能フラグに基づいて、GPBフレームが使用可能であると判断し得る。GPB使用可能フラグは、GPBフレームが使用不能であること、全体的に使用可能であること、または部分的に使用可能であることを示すように定義され得る。0145ビデオデコーダ30は、ビデオフレームレベルにおいてシンタックスで示される、同一の参照ピクチャのための識別子を含む第1の参照ピクチャリストリスト094と第2の参照ピクチャリストリスト196とをメモリに記憶する118。動き補償ユニット82は、次いで、現在のビデオフレームがGPBフレームとして符号化されると判断する120。場合によっては、動き補償ユニット82は、ビデオスライスレベル、ビデオフレームレベル、またはビデオシーケンスレベルのいずれかにおいてシンタックス中で受信される、明示的にシグナリングされたGPBフレームフラグに基づいて、所与のフレームがGPBフレームであると判断し得る。他の場合には、第1の参照ピクチャリスト94と第2の参照ピクチャリスト96とが同一の参照ピクチャを含むとき、動き補償ユニット82は、所与のフレームがGPBフレームであると判断し得る。GPBフレーム符号化の明示的または暗黙的通知は、GPBフレームがBフレームまたはPフレームとして符号化されるときに必要であり得る。追加の場合には、動き補償ユニット82は、GPBフレームに対して定義された新しいフレームまたはスライスタイプに基づいて、所与のフレームがGPBフレームであると判断し得、その新しいフレームまたはスライスタイプによって、GPBフレーム符号化の追加の明示的または暗黙的通知が不要になる。0146現在のフレームがGPBフレームであると判断されるとき、動き補償ユニット82は、単方向予測を使用して符号化されるGPBフレーム中の各ビデオブロックの動き予測方向がシングルビットシンタックスによって表され得ることに気づく。リスト094とリスト196とは同一の参照ピクチャを含むので、動き補償ユニット82は、単方向予測のために2つの同一の参照ピクチャリストのいずれをも互換的に使用し得る。0147場合によっては、ビデオブロックが単方向予測を使用して符号化されるのか双方向予測を使用して符号化されるのかを示すように定義されたシングルビットシンタックス要素を備えるGPBフレームに対して別個のシンタックスが定義される124。シングルビットシンタックス要素の導入により、ブロックを符号化するために単方向予測が使用されるのか双方向予測が使用されるのかを示す第1のビットと、どの参照ピクチャリストが単方向予測のために使用されるのかを示す第2のビットとを含む従来のシンタックス要素との混同が回避され得る。0148GPBフレームに対して別個のシンタックス要素が定義されているとき124のYES分岐、動き補償ユニット82は、単方向予測を使用してビデオブロックが符号化されることを示すシングルビットシンタックス要素をパースする126。同一の参照ピクチャリストのいずれもが単方向予測モードのために使用され得るので、動き補償ユニット82は、単方向予測のために参照ピクチャリストのうちの1つを使用する。GPBフレームに対して別個のシンタックス要素が定義されていないとき122のNO分岐、動き補償ユニット82は、単方向予測を使用してビデオブロックが符号化されることを示すシンタックス要素の第1のビットのみについてシンタックス要素をパースする128。動き補償ユニット82は、単方向予測モードのために参照ピクチャリストのいずれかを使用する。いずれの場合も、ビデオデコーダ30は、その後、好適参照ピクチャリストからの単方向予測を使用してGPBフレームの1つまたは複数のビデオブロックを復号する130。0149図7は、2ビット未満を使用して参照ピクチャリストからの単方向予測モードを使用してビデオブロックがコーディングされることを示す1つまたは複数のシンタックス要素を符号化する例示的な動作を示すフローチャートである。図示の動作について、図3からのビデオエンコーダ20を参照しながら説明する。0150ビデオエンコーダ20は、符号化されるべきビデオフレームのCUまたはビデオブロックを受信する。ビデオエンコーダ20は、次いで、現在のビデオフレームの符号化モードを判断する132。場合によっては、ビデオエンコーダ20の動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオフレームのためのインター予測モードを判断するように構成され得る。所定のパターンは、シーケンス中のビデオフレームをPフレームおよび/またはBフレームに指定し得る。場合によっては、GPBフレームが使用可能であり得、したがって、1つまたは複数のビデオフレームがGPBフレームに指定され得るか、または動き推定ユニット42は、当初指定されたPフレームをGPBフレームとして符号化することを判断し得る。0151現在のビデオフレームがGPBフレームとして符号化さると判断されるとき134のYES分岐、ビデオエンコーダ20は、同一の参照ピクチャの識別子を含む、GPBフレームのための第1の参照ピクチャリストリスト066と第2の参照ピクチャリストリスト168とをメモリに記憶する136。リスト066とリスト168とは同一の参照ピクチャを含むので、ビデオエンコーダ20の動き補償ユニット44は、単方向予測モードのために2つの同一の参照ピクチャリストのいずれもが好適参照ピクチャリストとして使用し得る。0152現在のビデオフレームがPフレームまたはBフレームとして符号化さると判断されるとき138のNO分岐、ビデオエンコーダ20は、異なる参照ピクチャの識別子を含む、フレームのための第1の参照ピクチャリストリスト066と第2の参照ピクチャリストリスト168とをメモリに記憶する138。従来、リスト066は、過去の参照ピクチャの識別子を含み、リスト168は、将来の参照ピクチャの識別子を含む。場合によっては、動き補償ユニット44は、2つの参照ピクチャリストのうちのどちらの参照ピクチャリストが単方向予測のための好適参照ピクチャリストを備えるかを判断する139。これは、Bフレームのための単方向予測が、ほとんどが、参照ピクチャリストのうちの一方よりも他方に基づいて実行される場合であり得る。たとえば、Pフレームと同様に、Bフレームのための単方向予測は、一般に、リスト066からの過去の参照ピクチャに基づいて実行され得る。その例では、動き補償ユニット44は、リスト066が好適参照ピクチャリストであると判断し得る。0153ビデオエンコーダ20は、好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを使用して現在のビデオフレームの1つまたは複数のビデオブロックを符号化する140。本開示の技法によれば、動き補償ユニット44は、次いで、ビデオブロックの各々の動き予測方向を示す1つまたは複数のシンタックス要素を生成する。ビデオエンコーダ20は、動き予測方向についてのシンタックス要素を表すための値を割り当てる。ビデオエンコーダ20は、次いで、ブロックレベルまたはPUレベルにおいて、現在のビデオフレームの各ビデオブロックについての動きベクトル情報とともに、動き予測方向についてのシンタックス要素に割り当てられた値をビデオデコーダにシグナリングする。0154場合によっては、エントロピー符号化ユニット56は、各シンタックス要素を1ビットまたはバイナリビットのシーケンスに2値化し得る。動き予測方向についての従来のシンタックス要素は、ブロックを符号化するために単方向予測が使用されるのか双方向予測が使用されるのかを示す第1のビットと、どの参照ピクチャリストが単方向予測のために使用されるのかを示す第2のビットとを含む。従来、2値化の0は双方向予測を表し、2値化の10はリスト0からの単方向予測を表し、2値化の11はリスト1からの単方向予測を表す。0155図示の例では、動き補償ユニット44は、好適参照ピクチャリストに関する単方向予測モードを示すシンタックス要素にシングルビット2値化を適応的にリンクする142。動き補償ユニット44は、動き予測方向を示すシンタックス要素の各ステータスがどのくらいの頻度で発生するかに基づいて2値化を適応させ得る。好適参照ピクチャリストからの単方向予測が他の予測モードよりも頻繁に使用されるとき、好適参照ピクチャリスト中の参照ピクチャからの単方向予測モードにシングルビット2値化0をリンクすることがより効率的であり得る。たとえば、リスト0が好適参照ピクチャリストである場合、動き補償ユニット44は、シングルビット2値化の0が、リスト0中の参照ピクチャに関する単方向予測モードを表し、2値化の10が、リスト1中の参照ピクチャに関する単方向予測モードを表し、2値化の11が、双方向予測モードを表すように、2値化を適応させ得る。0156ビデオエンコーダ20は、次いで、ビデオデコーダ30などの対応するビデオデコーダに、動き予測方向を示すシンタックス要素の適応型2値化をシグナリングする144。動き補償ユニット44は、ビデオブロックまたはPUレベル、CUレベル、ビデオスライスレベル、ビデオフレームレベル、あるいはビデオシーケンスレベルのうちの1つにおいて2値化を適応させ、シグナリングし得る。0157図8は、2ビット未満を使用して参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを使用してビデオブロックがコーディングされることを示す1つまたは複数のシンタックス要素を符号化する別の例示的な動作を示すフローチャートである。図示の動作について、図3からのビデオエンコーダ20を参照しながら説明する。0158ビデオエンコーダ20は、符号化されるべきビデオフレームのCUまたはビデオブロックを受信する。ビデオエンコーダ20は、次いで、現在のビデオフレームの符号化モードを判断する150。場合によっては、ビデオエンコーダ20の動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオフレームのためのインター予測モードを判断するように構成され得る。所定のパターンは、シーケンス中のビデオフレームをPフレームおよび/またはBフレームに指定し得る。場合によっては、GPBフレームが使用可能であり得、したがって、1つまたは複数のビデオフレームがGPBフレームに指定され得るか、または動き推定ユニット42は、当初指定されたPフレームをGPBフレームとして符号化することを判断し得る。0159現在のビデオフレームがGPBフレームとして符号化さると判断されるとき152のYES分岐、ビデオエンコーダ20は、同一の参照ピクチャの識別子を含む、GPBフレームのための第1の参照ピクチャリストリスト066と第2の参照ピクチャリストリスト168とをメモリに記憶する154。リスト066とリスト168とは同一の参照ピクチャを含むので、ビデオエンコーダ20の動き補償ユニット44は、単方向予測モードのために2つの同一の参照ピクチャリストのいずれもを好適参照ピクチャリストとして使用し得る。0160現在のビデオフレームがPフレームまたはBフレームとして符号化さると判断されるとき152のNO分岐、ビデオエンコーダ20は、異なる参照ピクチャの識別子を含む、フレームのための第1の参照ピクチャリストリスト066と第2の参照ピクチャリストリスト168とをメモリに記憶する156。従来、リスト066は、過去の参照ピクチャの識別子を含み、リスト168は、将来の参照ピクチャの識別子を含む。場合によっては、動き補償ユニット44は、2つの参照ピクチャリストのうちのどちらの参照ピクチャリストが単方向予測のための好適参照ピクチャリストを備えるかを判断する157。これは、Bフレームのための単方向予測が、ほとんどが、参照ピクチャリストのうちの一方よりも他方に基づいて実行される場合であり得る。たとえば、Pフレームと同様に、Bフレームのための単方向予測は、一般に、リスト066からの過去の参照ピクチャに基づいて実行され得る。その例では、動き補償ユニット44は、リスト066が好適参照ピクチャリストであると判断し得る。0161ビデオエンコーダ20は、好適参照ピクチャリスト中の参照ピクチャに関する単方向予測モードを使用して現在のビデオフレームの1つまたは複数のビデオブロックを符号化する158。本開示の技法によれば、動き補償ユニット44は、次いで、ビデオブロックの各々の動き予測方向を示す1つまたは複数のシンタックス要素を生成する。ビデオエンコーダ20は、動き予測方向についてのシンタックス要素を表すための値を割り当てる。ビデオエンコーダ20は、次いで、ブロックレベルまたはPUレベルにおいて、現在のビデオフレームの各ビデオブロックについての動きベクトル情報とともに、動き予測方向についてのシンタックス要素に割り当てられた値をビデオデコーダにシグナリングする。0162動き予測方向についての従来のシンタックス要素は、ブロックを符号化するために単方向予測が使用されるのか双方向予測が使用されるのかを示す第1のビットと、どの参照ピクチャリストが単方向予測のために使用されるのかを示す第2のビットとを含む。各ビットについて、エントロピー符号化ユニット56は、コンテキストに基づいて当該ビットが1または0である確率を推定する。確率がより高くなると、シンタックス要素を符号化するために使用される値の長さがより短くなる。場合によっては、値は、小数ビット、すなわち、1ビット未満を備え得る。0163図示の例では、動き補償ユニット44は、シンタックス要素の確率を好適参照ピクチャリストのほうへバイアスする構成データを参照する160。単方向予測モードの場合、参照ピクチャリストのうちの1つが単方向予測のために他の参照ピクチャリストよりも好適であるとき、シンタックス要素が好適参照ピクチャリストを示す確率を高くすることがより効率的であり得る。たとえば、動き補償ユニット44は、シンタックス要素の第2のビットの状態値を0に設定し、したがって、構成データによればそのビットが0である確率、すなわち、リスト0を示す確率は0.9999である。0164ビデオエンコーダ20は、単方向予測モードを使用してビデオブロックが符号化されることを示すために、ビデオブロックの各々の動き予測方向についてのシンタックス要素の第1のビットにシングルビット値を割り当てる162。ビデオエンコーダ20は、次いで、単方向予測モードのために使用される好適参照ピクチャリストを示すために、ビデオブロックの各々の動き予測方向についてのシンタックス要素の第2のビットに小数ビット値を割り当てる164。0165図9は、双方向予測を使用して符号化されたGPBフレームのビデオブロックのための第1の動きベクトルと第2の動きベクトルとをジョイントコーディングする例示的な動作を示すフローチャートである。図示の動作について、図3からのビデオエンコーダ20と図4からのビデオデコーダ30の両方を参照しながら説明する。0166最初に、図3からのビデオエンコーダ20を参照しながら、動きベクトルをジョイント符号化する動作について説明する。ビデオエンコーダ20は、符号化されるべきビデオフレームのCUまたはビデオブロックを受信する。ビデオエンコーダ20は、次いで、現在のビデオフレームがGPBフレームであると判断する170。場合によっては、ビデオエンコーダ20の動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオフレームのためのインター予測モードを判断するように構成され得る。所定のパターンは、シーケンス中の1つまたは複数のビデオフレームをGPBフレームに指定し得る。他の場合には、動き推定ユニット42は、当初指定されたPフレームをGPBフレームとして符号化すべきかどうかを判断し得る。後者の場合は、GPBフレームが全体的に使用可能であるのか部分的に使用可能であるのかに依存し得る。0167現在のビデオフレームがGPBフレームとして符号化さると判断されるとき、ビデオエンコーダ20は、同一の参照ピクチャの識別子を含む、GPBフレームのための第1の参照ピクチャリストリスト066と第2の参照ピクチャリストリスト168とをメモリに記憶する172。双方向予測の場合、ビデオエンコーダ20の動き推定ユニット42は、GPBフレームの1つまたは複数のビデオブロックの各々について、リスト066から第1の動きベクトルを計算し、リスト168から第2の動きベクトルを計算する。ビデオエンコーダ20は、次いで、リスト066からの第1の動きベクトルとリスト168からの第2の動きベクトルとを用いる双方向予測を使用してGPBフレームの1つまたは複数のビデオブロックを符号化する174。0168本開示の技法によれば、動き補償ユニット44は、双方向予測を使用して符号化されるビデオブロックの各々について動きベクトル情報をシグナリングするために使用されるビットを低減し得る。リスト066とリスト168とは同一の参照ピクチャを含むので、第1の動きベクトルと第2の動きベクトルとは、同じ参照ピクチャまたは実質的に類似する参照ピクチャのいずれかから計算される。したがって、GPBフレームのビデオブロックのための第1の動きベクトルと第2の動きベクトルとは高度に相関し、その2つの動きベクトルをジョイント符号化することがより効率的である。0169動き補償ユニット44は、リスト066からの隣接ビデオブロックの動きベクトルから、現在のビデオブロックの第1の動きベクトルのための第1の動き予測子を生成する176。ビデオエンコーダ20は、第1の動き予測子に対してビデオブロックのための第1の動きベクトルを符号化する178。第1の動きベクトルは、従来、第1の動きベクトルと第1の動き予測子との間の差を示すように定義された第1のシンタックス要素と、第1の動き予測子が生成された参照ピクチャのリスト066中のインデックスを示すように定義された第2のシンタックス要素として符号化され得る。0170ビデオエンコーダ20は、次いで、第1の動きベクトルに対して、ビデオブロックのための第2の動きベクトルを符号化する180。動き補償ユニット44は、従来、第2の動きベクトルを表すために使用されるシンタックス要素を低減するかまたは削除し得る。このようにして、第2の動きベクトルは、第1の動きベクトルと第2の動きベクトルとの間の差として符号化され得る。ビデオエンコーダ20は、ブロックレベルまたはPUレベルにおいて、GPBフレームの各ビデオブロックについての他の予測シンタックスとともに、ジョイントコーディングされた動きベクトルをビデオデコーダにシグナリングする。0171次に、動きベクトルをジョイント復号する動作について説明する。ビデオデコーダ30は、ビデオエンコーダ20などの対応するビデオエンコーダから、符号化されたビデオフレームとコーディング情報を表すシンタックス要素とを含むビットストリームを受信する。ビデオデコーダ30は、ビデオブロックまたはPUレベル、ビデオスライスレベル、ビデオフレームレベルおよび/あるいはビデオシーケンスレベルにおいてシンタックス要素を受信し得る。ビデオデコーダ30のエントロピー復号ユニット80は、量子化係数、動きベクトル、および他の予測シンタックスを生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット80は、予測ユニット81の動き補償ユニット82に動きベクトルと他の予測シンタックスとを転送する。0172動き補償ユニット82は、次いで、現在のビデオフレームがGPBフレームであると判断する170。場合によっては、動き補償ユニット82は、ビデオスライスレベル、ビデオフレームレベル、またはビデオシーケンスレベルのいずれかにおいてシンタックス中で受信される、明示的にシグナリングされたGPBフレームフラグに基づいて、所与のフレームがGPBフレームであると判断し得る。他の場合には、ビデオフレームレベルにおいてシンタックス中で受信した第1の参照ピクチャリストと第2の参照ピクチャリストとが同一の参照ピクチャを含むとき、動き補償ユニット82は、所与のフレームがGPBフレームであると判断し得る。さらなる場合には、動き補償ユニット82は、GPBフレームに対して定義された新しいフレームまたはスライスタイプに基づいて、所与のフレームがGPBフレームであると判断し得る。0173ビデオデコーダ30は、ビデオフレームレベルにおいてシンタックスで示される、同一の参照ピクチャの識別子を含む第1の参照ピクチャリストリスト094と第2の参照ピクチャリストリスト196とをメモリに記憶する172。双方向予測の場合、ビデオエンコーダ30は、リスト094からの第1の動きベクトルとリスト196からの第2の動きベクトルとを用いる双方向予測を使用して、GPBフレームの1つまたは複数のビデオブロックを復号する174。0174本開示の技法によれば、ビデオデコーダ30は、ビデオブロックまたはPUレベルにおいて受信されるシンタックス要素に基づいてGPBフレームのビデオブロックを復号するために使用される第1の動きベクトルと第2の動きベクトルとをジョイント復号する。第1の動きベクトルは、従来、第1の動きベクトルと第1の動き予測子との間の差を示す第1のシンタックス要素と、第1の動き予測子が生成された参照ピクチャのリスト094中のインデックスを示す第2のシンタックス要素とに基づいて復号され得る。動き補償ユニット82は、第2のシンタックス要素によって識別される隣接ビデオブロックの動きベクトルから、現在のビデオブロックの第1の動きベクトルのための第1の動き予測子を生成する176。ビデオデコーダ30は、第1のシンタックス要素に基づいて、第1の動き予測子に対してビデオブロックのための第1の動きベクトルを復号する178。0175ビデオデコーダ30は、次いで、第1の動きベクトルに対して、ビデオブロックのための第2の動きベクトルを復号する180。動き補償ユニット82は、従来、第2の動きベクトル復号するために使用されるシンタックス要素を低減するかまたは削除し得る。このようにして、第2の動きベクトルは、第1の動きベクトルと第2の動きベクトルとの間の差に基づいて復号され得る。01761つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従ってある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体など、有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、1非一時的である有形コンピュータ可読記憶媒体、あるいは2信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。0177限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。さらに、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスクdiskおよびディスクdiscは、コンパクトディスクdiscCD、レーザディスクdisc、光ディスクdisc、デジタル多用途ディスクdiscDVD、フロッピー登録商標ディスクdiskおよびブルーレイ登録商標ディスクdiscを含み、ディスクdiskは、通常、データを磁気的に再生し、ディスクdiscは、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。0178命令は、1つまたは複数のデジタル信号プロセッサDSPなどの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路ASIC、フィールドプログラマブル論理アレイFPGA、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用するプロセッサという用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素において完全に実装され得る。0179本開示の技法は、ワイヤレスハンドセット、集積回路IC、またはICのセットたとえば、チップセットを含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示した技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。