(57)【要約】      （修正有）【課題】ビデオコーディングプロセスにおけるインター予測モードの決定方法を提供する。【解決手段】インター予測モードの決定方法は、ＰＵを特徴づけるサイズに基づいて、ＰＵ（予測ユニット）が単方向インター予測に制限されると判断する。さらにビットストリームから、ＰＵのためのインター予測モードインジケータをパースし、ＰＵが単方向インター予測に制限される場合、インター予測モードインジケータは、ＰＵがリスト０に基づいて単方向インター予測されるのか、リスト１に基づいて単方向インター予測されるのかのいずれかであることを示す。ＰＵが単方向インター予測に制限されない場合、インター予測モードインジケータは、リスト０に基づいて単方向インター予測されるのか、リスト１に基づいて予測された単方向インター予測されるのか、または双方向予測されるのかのいずれかであることを示すことができる。【選択図】図４
2018142972.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータをコーディングするための方法であって、前記方法は、
Ｂスライス中の予測ユニット（ＰＵ）が単方向インター予測に制限されるかどうかを判断することと、
前記ＰＵのためのマージ候補リストを生成することと、
前記マージ候補リスト中の選択されたマージ候補を判断することと、
前記ＰＵが単方向インター予測に制限される場合、前記選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、前記ＰＵのための予測ビデオブロックを生成することと、
前記ＰＵが単方向インター予測に制限されない場合、前記選択されたマージ候補によって指定された前記動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、前記ＰＵのための前記予測ビデオブロックを生成することと
を備える、方法。
【請求項２】
前記ＰＵが単方向予測に制限されるかどうかを判断することは、
前記ＰＵを特徴づけるサイズがしきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することと、
前記ＰＵを特徴づける前記サイズが前記しきい値を下回らない場合、前記ＰＵが単方向インター予測に制限されないと判断することと
を備える、請求項１に記載の方法。
【請求項３】
前記ＰＵを特徴づける前記サイズが前記しきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することは、前記ＰＵに関連付けられたビデオブロックの高さまたは幅が前記しきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することを備える、請求項２に記載の方法。
【請求項４】
前記ＰＵを特徴づける前記サイズが前記しきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することは、前記ＰＵに関連付けられたビデオブロックの第１の寸法がしきい値よりも小さく、前記ＰＵに関連付けられた前記ビデオブロックの第２の寸法が前記しきい値以下である場合、前記ＰＵが単方向インター予測に制限されると判断することを備える、請求項２に記載の方法。
【請求項５】
前記ＰＵを特徴づける前記サイズが前記しきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することは、前記ＰＵに関連付けられたビデオブロックの第１の寸法が第１のしきい値よりも小さく、前記ＰＵに関連付けられた前記ビデオブロックの第２の寸法が第２のしきい値よりも小さい場合、前記ＰＵが単方向インター予測に制限されると判断することを備える、請求項２に記載の方法。
【請求項６】
前記第１のしきい値が前記第２のしきい値と同じである、請求項５に記載の方法。
【請求項７】
前記ＰＵが単方向予測に制限されるかどうかを判断することは、
前記ＰＵに関連付けられたコーディングユニット（ＣＵ）を特徴づけるサイズが特定のサイズ以下であり、前記ＰＵを特徴づける前記サイズが前記しきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することであって、前記ＣＵを特徴づける前記サイズが、前記ＣＵに関連付けられたビデオブロックの高さまたは幅である、判断することと、
前記ＣＵを特徴づける前記サイズが前記特定のサイズに等しくなく、前記ＰＵを特徴づける前記サイズが前記しきい値を下回らない場合、前記ＰＵが単方向インター予測に制限されないと判断することと
を備える、請求項２に記載の方法。
【請求項８】
前記特定のサイズが８に等しく、前記しきい値が８に等しい、請求項７に記載の方法。
【請求項９】
前記マージ候補リストを生成した後、前記マージ候補リスト中の双方向マージ候補を単方向マージ候補に変換することと、
前記双方向マージ候補の代わりに前記単方向マージ候補を前記マージ候補リストに含めることと
をさらに備える、請求項１に記載の方法。
【請求項１０】
前記双方向マージ候補を前記単方向マージ候補に変換することは、前記単方向マージ候補が特定の参照ピクチャリスト中の参照ピクチャに関連付けられるように、前記双方向マージ候補を前記単方向マージ候補に変換することを備え、双方向マージ候補が単方向マージ候補に変換されるときはいつでも、前記単方向マージ候補が、前記特定の参照ピクチャリスト中の参照ピクチャに関連付けられる、請求項９に記載の方法。
【請求項１１】
前記マージ候補リストを生成することは、前記ＰＵが単方向インター予測に制限される場合、前記マージ候補リストが単方向マージ候補のみを含むように、前記マージ候補リストを生成することを備える、請求項１に記載の方法。
【請求項１２】
前記マージ候補リストが単方向マージ候補のみを含むように、前記マージ候補リストを生成することが、
双方向マージ候補を１つまたは複数の単方向マージ候補に変換することと、
前記単方向マージ候補のいずれかまたは両方を前記マージ候補リストに含めることと
を備える、請求項１１に記載の方法。
【請求項１３】
前記双方向マージ候補を前記１つまたは複数の単方向マージ候補に変換する前に、重複マージ候補をプルーニングすることをさらに備える、請求項１２に記載の方法。
【請求項１４】
前記双方向マージ候補を前記単方向マージ候補に変換した後に、重複マージ候補をプルーニングすることをさらに備える、請求項１２に記載の方法。
【請求項１５】
前記双方向マージ候補を１つまたは複数の単方向マージ候補に変換することは、前記双方向マージ候補を単一の単方向マージ候補に変換することを備え、前記単一の単方向マージ候補がリスト０中の参照ピクチャまたはリスト１中の参照ピクチャを示す、請求項１２に記載の方法。
【請求項１６】
前記マージ候補リストが単方向マージ候補のみを含むように、前記マージ候補リストを生成することが、
アーティフィシャル単方向マージ候補を生成することと、
前記アーティフィシャル単方向マージ候補を前記マージ候補リストに含めることと
を備える、請求項１１に記載の方法。
【請求項１７】
前記マージ候補リストが第１の単方向マージ候補と第２の単方向マージ候補とを含み、前記第１の単方向マージ候補が第１の動きベクトルを指定し、前記第２の単方向マージ候補が第２の動きベクトルを指定し、
前記アーティフィシャル単方向マージ候補を生成することは、前記第１の単方向マージ候補によって指定された参照ピクチャと前記第２の単方向マージ候補によって指定された参照ピクチャとの間の時間差に基づいて、前記第１の動きベクトルをスケーリングすることを備える、
請求項１６に記載の方法。
【請求項１８】
前記アーティフィシャル単方向マージ候補を生成することは、前記アーティフィシャル単方向マージ候補が前記双方向マージ候補によって指定された動きベクトルを指定するように、前記アーティフィシャル単方向マージ候補を生成することを備える、請求項１６に記載の方法。
【請求項１９】
前記選択されたマージ候補が双方向マージ候補である、請求項１に記載の方法。
【請求項２０】
前記選択されたマージ候補を判断することが、
前記選択されたマージ候補の前記マージ候補リスト中の位置を示すシンタックス要素を、ビットストリームからパースすることと、
前記選択されたマージ候補の前記マージ候補リスト中の前記位置にある前記選択されたマージ候補を判断することと
を備える、請求項１に記載の方法。
【請求項２１】
前記方法が、前記選択されたマージ候補の前記マージ候補リスト中の位置を示す符号化シンタックス要素を含むビットストリームを生成することを備える、請求項１に記載の方法。
【請求項２２】
前記方法がモバイルコンピューティングデバイス上で実行される、請求項１に記載の方法。
【請求項２３】
Ｂスライス中の予測ユニット（ＰＵ）が単方向インター予測に制限されるかどうかを判断することと、
前記ＰＵのためのマージ候補リストを生成することと、
前記マージ候補リスト中の選択されたマージ候補を判断することと、
前記ＰＵが単方向インター予測に制限される場合、前記選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、前記ＰＵのための予測ビデオブロックを生成することと、
前記ＰＵが単方向インター予測に制限されない場合、前記選択されたマージ候補によって指定された前記動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、前記ＰＵのための前記予測ビデオブロックを生成することと
を行うように構成された１つまたは複数のプロセッサを備えるビデオコーディングデバイス。
【請求項２４】
前記１つまたは複数のプロセッサは、
前記ＰＵを特徴づけるサイズがしきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することと、
前記ＰＵを特徴づける前記サイズが前記しきい値を下回らない場合、前記ＰＵが単方向インター予測に制限されないと判断することと
を行うように構成された、請求項２３に記載のビデオコーディングデバイス。
【請求項２５】
前記１つまたは複数のプロセッサは、前記ＰＵに関連付けられたビデオブロックの高さまたは幅が前記しきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断するように構成された、請求項２４に記載のビデオコーディングデバイス。
【請求項２６】
前記１つまたは複数のプロセッサは、前記ＰＵに関連付けられたビデオブロックの第１の寸法がしきい値よりも小さく、前記ＰＵに関連付けられた前記ビデオブロックの第２の寸法が前記しきい値以下である場合、前記ＰＵが単方向インター予測に制限されると判断するように構成された、請求項２４に記載のビデオコーディングデバイス。
【請求項２７】
前記１つまたは複数のプロセッサは、前記ＰＵに関連付けられたビデオブロックの第１の寸法が第１のしきい値よりも小さく、前記ＰＵに関連付けられた前記ビデオブロックの第２の寸法が第２のしきい値よりも小さい場合、前記ＰＵが単方向インター予測に制限されると判断するように構成された、請求項２４に記載のビデオコーディングデバイス。
【請求項２８】
前記第１のしきい値が前記第２のしきい値と同じである、請求項２７に記載のビデオコーディングデバイス。
【請求項２９】
前記１つまたは複数のプロセッサは、
前記ＰＵに関連付けられたコーディングユニット（ＣＵ）を特徴づけるサイズが特定のサイズ以下であり、前記ＰＵを特徴づける前記サイズが前記しきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することと、
前記ＣＵを特徴づける前記サイズが前記特定のサイズに等しくなく、前記ＰＵを特徴づける前記サイズが前記しきい値を下回らない場合、前記ＰＵが単方向インター予測に制限されないと判断することと
を行うように構成された、請求項２４に記載のビデオコーディングデバイス。
【請求項３０】
前記特定のサイズが８に等しく、前記しきい値が８に等しい、請求項２９に記載のビデオコーディングデバイス。
【請求項３１】
前記１つまたは複数のプロセッサが、
前記マージ候補リストを生成した後、前記マージ候補リスト中の双方向マージ候補を単方向マージ候補に変換することと、
前記双方向マージ候補の代わりに前記単方向マージ候補を前記マージ候補リストに含めることと
を行うようにさらに構成された、請求項２３に記載のビデオコーディングデバイス。
【請求項３２】
前記１つまたは複数のプロセッサは、前記単方向マージ候補が特定の参照ピクチャリスト中の参照ピクチャに関連付けられるように、前記双方向マージ候補を前記単方向マージ候補に変換するように構成され、前記１つまたは複数のプロセッサが双方向マージ候補を単方向マージ候補に変換するときはいつでも、前記単方向マージ候補が前記特定の参照ピクチャリスト中の参照ピクチャに関連付けられる、請求項３１に記載のビデオコーディングデバイス。
【請求項３３】
前記１つまたは複数のプロセッサは、前記ＰＵが単方向インター予測に制限される場合、前記マージ候補リストが単方向マージ候補のみを含むように、前記マージ候補リストを生成するように構成された、請求項２３に記載のビデオコーディングデバイス。
【請求項３４】
前記マージ候補リストが単方向マージ候補のみを含むように、前記マージ候補リストを生成するために、前記１つまたは複数のプロセッサは、
双方向マージ候補を１つまたは複数の単方向マージ候補に変換することと、
前記単方向マージ候補のいずれかまたは両方を前記マージ候補リストに含めることと
を行うように構成された、請求項３３に記載のビデオコーディングデバイス。
【請求項３５】
前記１つまたは複数のプロセッサが、前記双方向マージ候補を前記１つまたは複数の単方向マージ候補に変換する前に、重複マージ候補をプルーニングするように構成された、請求項３４に記載のビデオコーディングデバイス。
【請求項３６】
前記１つまたは複数のプロセッサが、前記双方向マージ候補を前記１つまたは複数の単方向マージ候補に変換した後に、重複マージ候補をプルーニングするように構成された、請求項３４に記載のビデオコーディングデバイス。
【請求項３７】
前記１つまたは複数のプロセッサが、前記双方向マージ候補を単一の単方向マージ候補に変換するように構成され、前記単一の単方向マージ候補がリスト０中の参照ピクチャまたはリスト１中の参照ピクチャに関連付けられた、請求項３４に記載のビデオコーディングデバイス。
【請求項３８】
前記マージ候補リストが単方向マージ候補のみを含むように、前記マージ候補リストを生成するために、前記１つまたは複数のプロセッサは、
アーティフィシャル単方向マージ候補を生成することと、
前記アーティフィシャル単方向マージ候補を前記マージ候補リストに含めることと
を行うように構成された、請求項３３に記載のビデオコーディングデバイス。
【請求項３９】
前記マージ候補リストが第１の単方向マージ候補と第２の単方向マージ候補とを含み、前記第１の単方向マージ候補が第１の動きベクトルを指定し、前記第２の単方向マージ候補が第２の動きベクトルを指定し、
前記アーティフィシャル単方向マージ候補を生成するために、前記１つまたは複数のプロセッサが、前記第１の単方向マージ候補によって指定された参照ピクチャと前記第２の単方向マージ候補によって指定された参照ピクチャとの間の時間差に基づいて、前記第１の動きベクトルをスケーリングするように構成された、
請求項３８に記載のビデオコーディングデバイス。
【請求項４０】
前記１つまたは複数のプロセッサは、前記アーティフィシャル単方向マージ候補が双方向マージ候補によって指定された動きベクトルを指定するように、前記アーティフィシャル単方向マージ候補を生成するように構成された、請求項３８に記載のビデオコーディングデバイス。
【請求項４１】
前記選択されたマージ候補が双方向マージ候補である、請求項２３に記載のビデオコーディングデバイス。
【請求項４２】
前記ビデオコーディングデバイスがビデオデータを復号し、前記１つまたは複数のプロセッサが、前記選択されたマージ候補の前記マージ候補リスト中の位置を示すシンタックス要素に基づいて、前記選択されたマージ候補を判断するように構成された、請求項２３に記載のビデオコーディングデバイス。
【請求項４３】
前記ビデオコーディングデバイスがビデオデータを符号化し、前記１つまたは複数のプロセッサが、前記選択されたマージ候補の前記マージ候補リスト中の位置を示すシンタックス要素を出力するように構成された、請求項２３に記載のビデオコーディングデバイス。
【請求項４４】
前記ビデオコーディングデバイスがモバイルコンピューティングデバイスである、請求項２３に記載のビデオコーディングデバイス。
【請求項４５】
Ｂスライス中の予測ユニット（ＰＵ）が単方向インター予測に制限されるかどうかを判断するための手段と、
前記ＰＵのためのマージ候補リストを生成するための手段と、
前記マージ候補リスト中の選択されたマージ候補を判断するための手段と、
前記ＰＵが単方向インター予測に制限される場合、前記選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、前記ＰＵのための予測ビデオブロックを生成するための手段と、
前記ＰＵが単方向インター予測に制限されない場合、前記選択されたマージ候補によって指定された前記動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、前記ＰＵのための前記予測ビデオブロックを生成ための手段と
を備える、ビデオコーディングデバイス。
【請求項４６】
前記ＰＵが単方向予測に制限されるかどうかを判断するための前記手段は、
前記ＰＵを特徴づけるサイズがしきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断するための手段と、
前記ＰＵを特徴づける前記サイズが前記しきい値を下回らない場合、前記ＰＵが単方向インター予測に制限されないと判断するための手段と
を備える、請求項４５に記載のビデオコーディングデバイス。
【請求項４７】
前記選択されたマージ候補が双方向マージ候補である、請求項４５に記載のビデオコーディングデバイス。
【請求項４８】
実行されると、１つまたは複数のプロセッサを、
Ｂスライス中の予測ユニット（ＰＵ）が単方向インター予測に制限されるかどうかを判断することと、
前記ＰＵのためのマージ候補リストを生成することと、
前記マージ候補リスト中の選択されたマージ候補を判断することと、
前記ＰＵが単方向インター予測に制限される場合、前記選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、前記ＰＵのための予測ビデオブロックを生成することと、
前記ＰＵが単方向インター予測に制限されない場合、前記選択されたマージ候補によって指定された前記動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、前記ＰＵのための前記予測ビデオブロックを生成することと
を行うように構成する命令を記憶する１つまたは複数のコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
【請求項４９】
前記命令は、前記１つまたは複数のプロセッサを、
前記ＰＵが単方向予測に制限されるかどうかを判断することと、
前記ＰＵを特徴づけるサイズがしきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することと、
前記ＰＵを特徴づける前記サイズが前記しきい値を下回らない場合、前記ＰＵが単方向インター予測に制限されないと判断することと
を行うように構成する、請求項４８に記載のコンピュータプログラム製品。
【請求項５０】
前記選択されたマージ候補が双方向マージ候補である、請求項４８に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、各々の内容全体が参照により本明細書に組み込まれる、２０１２年２月８日に出願された米国仮特許出願第６１／５９６，５９７号、および２０１２年４月１１日に出願された米国仮特許出願第６１／６２２，９６８号の利益を主張する。
【０００２】
[0002]本開示は、ビデオコーディングに関し、詳細には、ビデオコーディングにおけるインター予測に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部）はビデオブロックに区分され得、これらのビデオブロックは、ツリーブロック、コーディングユニット（ＣＵ：coding unit）および／またはコーディングノードと呼ばれることがある。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック内の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックに対する予測ビデオブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ビデオブロックとの間のピクセル差を表す。インターコード化ブロックは、予測ビデオブロックを形成する参照サンプルのブロックを指す動きベクトル（motion vector）、およびコード化ブロックと予測ビデオブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。量子化変換係数は、最初は２次元アレイで構成され、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピーコーディングが適用され得る。
【発明の概要】
【０００６】
[0006]概して、本開示では、ビデオコーディングプロセスにおけるインター予測のための技法について説明する。ビデオコーダは、Ｂスライス中の予測ユニット（ＰＵ：prediction unit）が単方向インター予測に制限されるかどうかを判断する。さらに、ビデオコーダは、ＰＵのためのマージ候補リスト（merge candidate list）を生成し、マージ候補リスト中の選択されたマージ候補を判断する。ＰＵが単方向インター予測に制限される場合、ビデオコーダは、選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成する。ＰＵが単方向インター予測に制限されない場合、ビデオコーダは、選択されたマージ候補によって指定された動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成する。
【０００７】
[0007]一態様では、本開示では、ビデオデータをコーディングするための方法について説明する。本方法は、Ｂスライス中のＰＵが単方向インター予測に制限されるかどうかを判断することを備える。本方法はまた、ＰＵのためのマージ候補リストを生成することを備える。さらに、本方法は、マージ候補リスト中の選択されたマージ候補を判断することを備える。さらに、本方法は、ＰＵが単方向インター予測に制限される場合、選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成することを備える。本方法はまた、ＰＵが単方向インター予測に制限されない場合、選択されたマージ候補によって指定された動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成することを備える。
【０００８】
[0008]別の態様では、本開示では、Ｂスライス中のＰＵが単方向インター予測に制限されるかどうかを判断するように構成された１つまたは複数のプロセッサを備えるビデオコーディングデバイスについて説明する。１つまたは複数のプロセッサはまた、ＰＵのためのマージ候補リストを生成し、マージ候補リスト中の選択されたマージ候補を判断するように構成される。１つまたは複数のプロセッサは、ＰＵが単方向インター予測に制限される場合、１つまたは複数のプロセッサが、選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成するように構成される。さらに、１つまたは複数のプロセッサは、ＰＵが単方向インター予測に制限されない場合、１つまたは複数のプロセッサが、選択されたマージ候補によって指定された動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成するように構成される。
【０００９】
[0009]別の態様では、本開示では、Ｂスライス中のＰＵが単方向インター予測に制限されるかどうかを判断するための手段を備えるビデオコーディングデバイスについて説明する。本ビデオコーディングデバイスはまた、ＰＵのためのマージ候補リストを生成するための手段を備える。さらに、本ビデオコーディングデバイスは、マージ候補リスト中の選択されたマージ候補を判断するための手段を備える。本ビデオコーディングデバイスはまた、ＰＵが単方向インター予測に制限される場合、選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成するための手段を備える。本ビデオコーディングデバイスはまた、ＰＵが単方向インター予測に制限されない場合、選択されたマージ候補によって指定された動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成するための手段を備える。
【００１０】
[0010]別の態様では、本開示では、実行されると、１つまたは複数のプロセッサを、Ｂスライス中のＰＵが単方向インター予測に制限されるかどうかを判断するように構成する命令を記憶する１つまたは複数のコンピュータ可読記憶媒体を備えるコンピュータプログラム製品について説明する。命令はまた、１つまたは複数のプロセッサを、ＰＵのためのマージ候補リストを生成し、マージ候補リスト中の選択されたマージ候補を判断するように構成する。ＰＵが単方向インター予測に制限される場合、命令は、１つまたは複数のプロセッサを、選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成するように構成する。ＰＵが単方向インター予測に制限されない場合、命令は、１つまたは複数のプロセッサを、選択されたマージ候補によって指定された動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成するように構成する。
【００１１】
[0011]１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１２】
【図１】[0012]本開示で説明する技法を利用し得る例示的なビデオコーディングシステムを示すブロック図。
【図２】[0013]本開示で説明する技法を実装するように構成された例示的なビデオエンコーダを示すブロック図。
【図３】[0014]本開示で説明する技法を実装するように構成された例示的なビデオデコーダを示すブロック図。
【図４】[0015]例示的な動き補償演算を示すフローチャート。
【図５】[0016]別の例示的な動き補償演算を示すフローチャート。
【図６】[0017]マージ候補リストを生成するための例示的な演算を示すフローチャート。
【図７】[0018]アーティフィシャルマージ候補（artificial merge candidate）を生成するための例示的なプロセスを示すフローチャート。
【図８】[0019]高度動きベクトル予測（advanced motion vector prediction）モードを使用して予測ユニットの動き情報を判断するための例示的な演算を示すフローチャート。
【発明を実施するための形態】
【００１３】
[0020]以下で説明するように、ピクチャは、１つまたは複数のスライスに分割され得る。スライスの各々は、整数個のコーディングユニット（ＣＵ）を含み得る。各ＣＵは、１つまたは複数の予測ユニット（ＰＵ）を有し得る。スライスは、Ｉスライス、Ｐスライス、またはＢスライスであり得る。Ｉスライス中では、すべてのＰＵがイントラ予測される。ビデオエンコーダは、Ｐスライス中のＰＵに対してイントラ予測または単方向インター予測を実行し得る。ビデオエンコーダがＰスライス中のＰＵに対して単方向インター予測を実行するとき、ビデオエンコーダは、参照ピクチャの第１のリスト（「リスト０」）に記載されている参照ピクチャ中の参照サンプルを識別または合成し得る。参照ブロックは、参照ピクチャ内の参照サンプルのブロックであり得る。参照サンプルは、参照ブロック中の実際のピクセル、または、たとえば、実際のピクセルを使用した補間によって、合成されたピクセルに対応し得る。ビデオエンコーダは、次いで、ＰＵのための参照ブロックに基づいてＰＵのための予測ビデオブロックを生成し得る。
【００１４】
[0021]ビデオエンコーダは、Ｂスライス中のＰＵに対して、リスト０単方向インター予測、リスト１単方向インター予測、または双方向インター予測を実行し得る。ビデオエンコーダがＰＵに対してリスト０単方向インター予測を実行するとき、ビデオエンコーダは、リスト０に記載されている参照ピクチャ中の参照ブロックを識別するか、またはリスト０に記載されている参照ピクチャ中の参照サンプルに基づいて参照ブロックを合成し得る。ビデオエンコーダは、次いで、参照ブロックに基づいてＰＵのための予測ビデオブロックを生成し得る。ビデオエンコーダがＰＵに対してリスト１単方向インター予測を実行するとき、ビデオエンコーダは、第２の参照ピクチャリスト（「リスト１」）に記載されている参照ピクチャ中の参照ブロックを識別するか、リスト１に記載されている参照ピクチャ中の参照サンプルに基づいて参照ブロックを合成し得る。ビデオエンコーダは、次いで、参照ブロックに基づいてＰＵのための予測ビデオブロックを生成し得る。ビデオエンコーダがＰＵに対して双方向インター予測を実行するとき、ビデオエンコーダは、リスト０に記載されている参照ピクチャ中の参照ブロックを識別するか、またはリスト０に記載されている参照ピクチャ中の参照サンプルに基づいて参照ブロックを合成し得る。さらに、ビデオエンコーダがＰＵに対して双方向インター予測を実行するとき、ビデオエンコーダは、リスト１に記載されている参照ピクチャ中の参照ブロックを識別するか、またはリスト１に記載されている参照ピクチャ中の参照サンプルに基づいて参照ブロックを合成し得る。ビデオエンコーダは、次いで、２つの参照ブロックに基づいてＰＵのための予測ビデオブロックを生成し得る。
【００１５】
[0022]ビデオエンコーダは、ビデオエンコーダがＰＵのための予測ビデオブロックを生成するために使用した１つまたは複数の参照ブロックを識別することまたは合成することをビデオデコーダが行うことを可能にするために、ＰＵの動き情報をシグナリングし得る。ＰＵの動き情報は、１つまたは複数の動きベクトルと、参照ピクチャインデックスと、インター予測がリスト０および／またはリスト１に基づくかどうかを示すフラグとを含み得る。いくつかの事例では、ビデオエンコーダは、マージモードを使用してＰＵの動き情報をシグナリングし得る。ビデオエンコーダがマージモードを使用してＰＵの動き情報をシグナリングするとき、ビデオエンコーダは、ＰＵのためのマージ候補リストを生成し得る。マージ候補リストは複数のマージ候補を含み得、マージ候補の各々は動き情報のセットを指定する。
【００１６】
[0023]マージ候補が、リスト０またはリスト１のいずれかに記載されている参照ピクチャ中の単一のロケーションを識別する動き情報を指定する場合、マージ候補は単方向マージ候補であり得る。参照ブロック中のサンプルが、動き情報によって識別された参照ピクチャ中の動き情報によって識別されたロケーションにあるサンプルに基づいて判断される場合、参照ブロックは、動き情報のセットに関連付けられ得る。たとえば、参照ブロック中のサンプルが、動き情報によって識別された参照ピクチャ中の動き情報によって識別されたロケーションにあるビデオブロック中のサンプルと同じ場合、参照ブロックは、動き情報のセットに関連付けられ得る。また、参照ブロック中のサンプルが、動き情報によって識別された参照フレーム中の動き情報によって識別されたロケーションにあるサンプルから合成される（たとえば、補間される）場合、参照ブロックは、動き情報のセットに関連付けられ得る。
【００１７】
[0024]マージ候補が、リスト０に記載されている参照ピクチャ中のロケーションと、リスト１に記載されている参照ピクチャ中のロケーションとを識別する動き情報を指定する場合、マージ候補は双方向マージ候補であり得る。ビデオエンコーダは、異なるピクチャ中の現在ＰＵおよび／またはコロケート（co-located）ＰＵに空間的に隣接するＰＵの動き情報に基づいて、マージ候補によって指定された動き情報を生成し得る。現在ＰＵのためのマージリストを生成した後に、ビデオエンコーダは、マージ候補リスト中のマージ候補のうちの１つを選択し、選択されたマージ候補のマージ候補リスト内の位置をシグナリングし得る。ビデオデコーダは、選択されたマージ候補によって指定された動き情報に基づいて現在ＰＵの動き情報を判断し得る。
【００１８】
[0025]演算および必要とされるメモリ帯域幅に関して、２つの参照ブロックに基づいてＰＵのための予測ビデオブロックを生成することは、単一の参照ブロックに基づいてＰＵのための予測ビデオブロックを生成することよりも複雑であり得る。Ｂスライス中の双方向インター予測ＰＵの数が増加するにつれて、２つの参照ブロックに基づいて予測ビデオブロックを生成することに関連する複雑さは増加し得る。小さい双方向インター予測ＰＵの数が増加するとき、これは特に当てはまり得る。したがって、Ｂスライス中のいくつかのＰＵを単方向インター予測に制限することは、有利であり得る。
【００１９】
[0026]ビデオエンコーダは、ＰＵのためのマージ候補リストから単方向マージ候補のみを選択することによって、Ｂスライス中のＰＵを単方向インター予測に制限し得る。ただし、場合によっては、マージ候補リストは、単方向マージ候補を含まないことがある。そのような場合、ビデオエンコーダは、マージモードを使用してＰＵの動き情報をシグナリングすることができないことがある。これは、コーディング性能を低下させ得る。さらに、マージ候補リストが少なくとも１つの単方向マージ候補を含む場合でも、単方向マージ候補によって指定された動き情報に関連付けられた参照ブロックが、ＰＵに関連付けられたビデオブロックと十分に類似していない場合、コーディング効率は低下し得る。
【００２０】
[0027]本開示の技法によれば、ビデオコーダ（たとえば、ビデオエンコーダまたはビデオデコーダ）が、Ｂスライス中のＰＵが単方向インター予測に制限されるかどうかを判断し得る。たとえば、ビデオコーダは、ＰＵを特徴づけるサイズが特定のしきい値よりも小さい場合、そのＰＵが単方向インター予測に制限されると判断し得る。ＰＵを特徴づけるサイズは、ＰＵに関連付けられたビデオブロックの高さ、幅、対角線の長さなど、ＰＵに関連付けられたビデオブロックのサイズの特性であり得る。さらに、ビデオコーダは、ＰＵのためのマージ候補リストを生成し、マージ候補リスト中の選択されたマージ候補を判断し得る。ＰＵが単方向インター予測に制限される場合、ビデオコーダは、選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。ＰＵが単方向インター予測に制限されない場合、ビデオコーダは、選択されたマージ候補によって指定された動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。このようにしていくつかのＰＵを単方向インター予測に制限することによって、ビデオコーダは、複数の参照ブロックに基づいて予測ビデオブロックを生成することに関連する複雑さを低減し得る。これは、ビデオコーダがビデオデータをコーディングすることが可能である速度を増加させ、データ帯域幅要件を低減し得る。
【００２１】
[0028]説明を簡単にするために、本開示は、ロケーションまたはビデオブロックを、ＣＵまたはＰＵと様々な空間関係を有していると説明することがある。そのような説明は、ロケーションまたはビデオブロックが、ＣＵまたはＰＵに関連付けられたビデオブロックと様々な空間関係を有していることを意味すると解釈され得る。さらに、本開示では、ビデオコーダが現在コーディングしているＰＵを現在ＰＵと呼ぶことがある。本開示では、ビデオコーダが現在コーディングしているＣＵを現在ＣＵと呼ぶことがある。本開示では、ビデオコーダが現在コーディングしているピクチャを現在ピクチャと呼ぶことがある。
【００２２】
[0029]添付の図面は例を示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。本開示では、序数ワード（たとえば、「第１の」、「第２の」、「第３の」など）で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは同様のタイプの異なる要素を指すために使用されるにすぎない。
【００２３】
[0030]図１は、本開示の技法を利用し得る例示的なビデオコーディングシステム１０を示すブロック図である。本明細書で使用する「ビデオコーダ」という用語は、総称的にビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、総称的にビデオ符号化またはビデオ復号を指すことがある。
【００２４】
[0031]図１に示されるように、ビデオコーディングシステム１０は、ソースデバイス１２と宛先デバイス１４とを含む。ソースデバイス１２は、符号化ビデオデータを生成する。したがって、ソースデバイス１２は、ビデオ符号化デバイスまたはビデオ符号化装置と呼ばれることがある。宛先デバイス１４は、ソースデバイス１２によって生成された符号化ビデオデータを復号し得る。したがって、宛先デバイス１４は、ビデオ復号デバイスまたはビデオ復号装置と呼ばれることがある。ソースデバイス１２および宛先デバイス１４は、ビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。
【００２５】
[0032]ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、モバイルコンピューティングデバイス、ノートブック（たとえば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲のデバイスを備え得る。いくつかの例では、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００２６】
[0033]宛先デバイス１４は、チャネル１６を介してソースデバイス１２から符号化ビデオデータを受信し得る。チャネル１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能なタイプの媒体またはデバイスを備え得る。一例では、チャネル１６は、ソースデバイス１２が符号化ビデオデータを宛先デバイス１４にリアルタイムで直接送信することを可能にする通信媒体を備え得る。この例では、ソースデバイス１２は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調し得、変調されたビデオデータを宛先デバイス１４に送信し得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、ワイヤレス通信媒体またはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を支援するルータ、スイッチ、基地局、または他の機器を含み得る。
【００２７】
[0034]別の例では、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオデータを記憶する記憶媒体に対応し得る。この例では、宛先デバイス１４は、ディスクアクセスまたはカードアクセスを介して記憶媒体にアクセスし得る。記憶媒体は、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオデータを記憶するための他の適切なデジタル記憶媒体など、種々のローカルにアクセスされるデータ記憶媒体を含み得る。さらなる例では、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオを記憶する、ファイルサーバまたは別の中間記憶デバイスを含み得る。この例では、宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ファイルサーバまたは他の中間記憶デバイスに記憶された、符号化ビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイス１４に送信することとが可能なタイプのサーバであり得る。例示的なファイルサーバには、（たとえば、ウェブサイト用の）ウェブサーバ、ファイル転送プロトコル（ＦＴＰ）サーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、およびローカルディスクドライブが含まれる。宛先デバイス１４は、インターネット接続を含む標準のデータ接続を介して、符号化ビデオデータにアクセスし得る。データ接続の例示的なタイプとしては、ファイルサーバに記憶された符号化データにアクセスするのに好適な、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せがあり得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
【００２８】
[0035]本開示の技法は、ワイヤレスの用途または設定には限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話などの用途をサポートするために、単方向または双方向のビデオ送信をサポートするように構成され得る。
【００２９】
[0036]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および／または、ビデオデータを生成するためのコンピュータグラフィックスシステムのようなソース、あるいはそのようなソースの組合せを含み得る。
【００３０】
[0037]ビデオエンコーダ２０は、キャプチャされたビデオデータ、以前にキャプチャされたビデオデータ、またはコンピュータ生成されたビデオデータを符号化し得る。符号化ビデオデータは、ソースデバイス１２の出力インターフェース２２を介して宛先デバイス１４に直接送信され得る。符号化ビデオデータはまた、復号および／または再生のための宛先デバイス１４による後のアクセスのために記憶媒体またはファイルサーバ上に記憶され得る。
【００３１】
[0038]図１の例では、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。場合によっては、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、チャネル１６を介して符号化ビデオデータを受信する。符号化ビデオデータは、ビデオデータを表す、ビデオエンコーダ２０によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバ上に記憶される、符号化ビデオデータとともに含まれ得る。
【００３２】
[0039]ディスプレイデバイス３２は、宛先デバイス１４と一体化され得るかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み得、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。一般に、ディスプレイデバイス３２は、復号ビデオデータをユーザに表示する。ディスプレイデバイス３２は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００３３】
[0040]ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格など、ビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。「ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ７」または「ＷＤ７」と呼ばれる今度のＨＥＶＣ規格の最近のドラフトは、文書ＪＣＴＶＣ−Ｊ１００３＿ｄ５４、Ｂｒｏｓｓら、「Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）  ｔｅｘｔ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｄｒａｆｔ  ７」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）、第９回会合：スイス、ジュネーブ、２０１２年５月に記載されており、これは２０１２年７月１９日の時点で、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／９＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴＶＣ−Ｉ１００３−ｖ６．ｚｉｐからダウンロード可能であり、その全内容が参照により本明細書に組み込まれる。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ  １０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格またはコーディング技法にも限定されない。ビデオ圧縮の規格および技法の他の例としては、ＭＰＥＧ−２、ＩＴＵ−Ｔ  Ｈ．２６３、ならびにＶＰ８および関連するフォーマットなどのプロプライエタリまたはオープンソースの圧縮フォーマットがある。
【００３４】
[0041]図１の例には示されていないが、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３５】
[0042]この場合も、図１は例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間のデータ通信を必ずしも含むとは限らないビデオコーディング設定（たとえば、ビデオ符号化またはビデオ復号）に適用され得る。他の例では、データがローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われ得る。符号化デバイスがデータを符号化し、メモリに記憶し得、および／または復号デバイスがメモリからデータを取り出し、復号し得る。多くの例では、符号化および復号は、互いに通信しないが、メモリにデータを符号化し、および／またはメモリからデータを取り出して復号するだけであるデバイスによって実行される。
【００３６】
[0043]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ハードウェアなど、様々な好適な回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読記憶媒体にソフトウェアの命令を記憶し得、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。（ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組合せなどを含む）上記のいずれも、１つまたは複数のプロセッサであると見なされ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００３７】
[0044]本開示では、概して、ビデオエンコーダ２０が、ある情報をビデオデコーダ３０などの別のデバイスに「シグナリング」することに言及することがある。ただし、ビデオエンコーダ２０は、いくつかのシンタックス要素をビデオデータの様々な符号化部分に関連付けることによって情報をシグナリングし得ることを理解されたい。すなわち、ビデオエンコーダ２０は、いくつかのシンタックス要素をビデオデータの様々な符号化部分のヘッダに記憶することによってデータを「シグナリング」し得る。場合によっては、そのようなシンタックス要素は、ビデオデコーダ３０によって受信され、復号されるより前に、符号化され、（たとえば、ストレージシステムに）記憶され得る。したがって、「シグナリング」という用語は、概して、圧縮されたビデオデータを復号するために使用されるシンタックスまたは他のデータの通信を指し得る。そのような通信は、リアルタイムまたはほぼリアルタイムに行われ得る。代替として、そのような通信は、符号化時に符号化ビットストリーム中でシンタックス要素を媒体に記憶するときに行われることがあるなど、ある時間帯にわたって行われ得、次いで、これらの要素は、この媒体に記憶された後の任意の時間に、復号デバイスによって取り出され得る。
【００３８】
[0045]上記で手短に述べられたように、ビデオエンコーダ２０は、ビデオデータを符号化する。ビデオデータは、１つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像であり得る。いくつかの事例では、ピクチャはビデオ「フレーム」と呼ばれることがある。ビデオエンコーダ２０がビデオデータを符号化するとき、ビデオエンコーダ２０はビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームは、コード化ピクチャと関連データとを含み得る。コード化ピクチャとは、ピクチャのコード化表現である。
【００３９】
[0046]ビットストリームを生成するために、ビデオエンコーダ２０は、ビデオデータ中の各ピクチャに対して符号化演算を実行し得る。ビデオエンコーダ２０がピクチャに対して符号化演算を実行するとき、ビデオエンコーダ２０は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、シーケンスパラメータセット、ピクチャパラメータセット、適応パラメータセット、および他のシンタックス構造を含み得る。シーケンスパラメータセット（ＳＰＳ）は、ピクチャの０個以上のシーケンスに適用可能なパラメータを含み得る。ピクチャパラメータセット（ＰＰＳ）は、０個以上のピクチャに適用可能なパラメータを含み得る。適応パラメータセット（ＡＰＳ）は、０個以上のピクチャに適用可能なパラメータを含み得る。ＡＰＳ中のパラメータは、ＰＰＳ中のパラメータよりも変化する可能性が高いパラメータであり得る。
【００４０】
[0047]コード化ピクチャを生成するために、ビデオエンコーダ２０は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの２次元アレイであり得る。ビデオブロックの各々はツリーブロックに関連付けられる。いくつかの事例では、ツリーブロックは、最大コーディングユニット（ＬＣＵ：largest coding unit）またはコーディングツリーブロックと呼ばれることがある。ＨＥＶＣのツリーブロックは、Ｈ．２６４／ＡＶＣなど、以前の規格のマクロブロックに広い意味で類似し得る。しかしながら、ツリーブロックは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。ビデオエンコーダ２０は、４分木区分（quadtree partitioning）を使用して、ツリーブロックのビデオブロックを、ＣＵに関連付けられたビデオブロックに区分し得、したがって「ツリーブロック」という名前がある。
【００４１】
[0048]いくつかの例では、ビデオエンコーダ２０は、ピクチャを複数のスライスに区分し得る。スライスの各々は整数個のＣＵを含み得る。いくつかの事例では、スライスは、整数個のツリーブロックを備える。他の事例では、スライスの境界はツリーブロック内にあり得る。
【００４２】
[0049]ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオエンコーダ２０がスライスに対して符号化演算を実行するとき、ビデオエンコーダ２０は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス」と呼ばれることがある。
【００４３】
[0050]コード化スライスを生成するために、ビデオエンコーダ２０は、スライス中の各ツリーブロックに対して符号化演算を実行し得る。ビデオエンコーダ２０がツリーブロックに対して符号化演算を実行するとき、ビデオエンコーダ２０は、コード化ツリーブロックを生成し得る。コード化ツリーブロックは、ツリーブロックの符号化表現を備え得る。
【００４４】
[0051]ビデオエンコーダ２０がコード化スライスを生成するとき、ビデオエンコーダ２０は、ラスタ走査順序に従ってスライス中の（この場合最大コーディングユニットを表す）ツリーブロックに対して符号化演算を実行し得る（すなわち、そのツリーブロックを符号化し得る）。言い換えれば、ビデオエンコーダ２０は、スライス中のツリーブロックの一番上の行にわたって左から右に進み、次いでツリーブロックの次の下の行にわたって左から右に進み、以下同様に進む、順序で、ビデオエンコーダ２０がスライス中のツリーブロックの各々を符号化するまで、スライスのツリーブロックを符号化し得る。
【００４５】
[0052]ラスタ走査順序に従ってツリーブロックを符号化した結果として、所与のツリーブロックの上および左のツリーブロックは符号化されていることがあるが、所与のツリーブロックの下および右のツリーブロックはまだ符号化されていない。したがって、ビデオエンコーダ２０は、所与のツリーブロックを符号化するとき、所与のツリーブロックの上および左のツリーブロックを符号化することによって生成された情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ２０は、所与のツリーブロックを符号化するとき、所与のツリーブロックの下および右のツリーブロックを符号化することによって生成された情報にアクセスすることができないことがある。
【００４６】
[0053]コード化ツリーブロックを生成するために、ビデオエンコーダ２０は、ツリーブロックのビデオブロックに対して４分木区分を再帰的に実行して、ビデオブロックを徐々により小さいビデオブロックに分割し得る。より小さいビデオブロックの各々は異なるＣＵに関連付けられ得る。たとえば、ビデオエンコーダ２０は、ツリーブロックのビデオブロックを４つの等しいサイズのサブブロックに区分し、サブブロックのうちの１つまたは複数を、４つの等しいサイズのサブサブブロックに区分し得、以下同様である。区分されたＣＵは、それのビデオブロックが、他のＣＵに関連付けられたビデオブロックに区分された、ＣＵであり得る。区分されていないＣＵは、それのビデオブロックが、他のＣＵに関連付けられたビデオブロックに区分されていない、ＣＵであり得る。
【００４７】
[0054]ビットストリーム中の１つまたは複数のシンタックス要素は、ビデオエンコーダ２０がツリーブロックのビデオブロックを区分し得る最大の回数を示し得る。ＣＵのビデオブロックは形状が正方形であり得る。ＣＵのビデオブロックのサイズ（すなわち、ＣＵのサイズ）は、８×８ピクセルから、最大で６４×６４ピクセル以上をもつツリーブロックのビデオブロックのサイズ（すなわち、ツリーブロックのサイズ）までわたり得る。
【００４８】
[0055]ビデオエンコーダ２０は、ｚ走査順序に従って、ツリーブロックの各ＣＵに対して符号化演算を実行し得る（すなわち、各ＣＵを符号化し得る）。言い換えれば、ビデオエンコーダ２０は、左上のＣＵと、右上のＣＵと、左下のＣＵと、次いで右下のＣＵとを、その順序で符号化し得る。ビデオエンコーダ２０が区分されたＣＵに対して符号化演算を実行するとき、ビデオエンコーダ２０は、ｚ走査順序に従って、区分されたＣＵのビデオブロックのサブブロックに関連付けられたＣＵを符号化し得る。言い換えれば、ビデオエンコーダ２０は、左上のサブブロックに関連付けられたＣＵと、右上のサブブロックに関連付けられたＣＵと、左下のサブブロックに関連付けられたＣＵと、次いで右下のサブブロックに関連付けられたＣＵとを、その順序で符号化し得る。
【００４９】
[0056]ｚ走査順序に従ってツリーブロックのＣＵを符号化した結果として、所与のＣＵの上、左上、右上、左、および左下のＣＵは符号化されていることがある。所与のＣＵの下または右のＣＵはまだ符号化されていない。したがって、ビデオエンコーダ２０は、所与のＣＵを符号化するとき、所与のＣＵに隣接するいくつかのＣＵを符号化することによって生成された情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ２０は、所与のＣＵを符号化するとき、所与のＣＵに隣接する他のＣＵを符号化することによって生成された情報にアクセスすることができない可能性がある。
【００５０】
[0057]ビデオエンコーダ２０が区分されていないＣＵを符号化するとき、ビデオエンコーダ２０は、ＣＵのために１つまたは複数の予測ユニット（ＰＵ）を生成し得る。ＣＵのＰＵの各々は、ＣＵのビデオブロック内の異なるビデオブロックに関連付けられ得る。ビデオエンコーダ２０は、ＣＵの各ＰＵのための予測ビデオブロックを生成し得る。ＰＵの予測ビデオブロックはサンプルのブロックであり得る。ビデオエンコーダ２０は、イントラ予測またはインター予測を使用して、ＰＵのための予測ビデオブロックを生成し得る。
【００５１】
[0058]ビデオエンコーダ２０がイントラ予測を使用してＰＵの予測ビデオブロックを生成するとき、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャの復号サンプルに基づいて、ＰＵの予測ビデオブロックを生成し得る。ビデオエンコーダ２０がイントラ予測を使用してＣＵのＰＵの予測ビデオブロックを生成する場合、ＣＵはイントラ予測されたＣＵである。
【００５２】
[0059]ビデオエンコーダ２０がインター予測を使用してＰＵの予測ビデオブロックを生成するとき、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャ以外の１つまたは複数のピクチャの復号サンプルに基づいて、ＰＵの予測ビデオブロックを生成し得る。ビデオエンコーダ２０がインター予測を使用してＣＵのＰＵの予測ビデオブロックを生成する場合、ＣＵはインター予測されたＣＵである。
【００５３】
[0060]さらに、ビデオエンコーダ２０がインター予測を使用してＰＵの予測ビデオブロックを生成するとき、ビデオエンコーダ２０は、ＰＵの動き情報を生成し得る。ＰＵの動き情報は、ＰＵの１つまたは複数の参照ブロックを示し得る。ＰＵの各参照ブロックは参照ピクチャ内のビデオブロックであり得る。参照ピクチャはＰＵに関連付けられたピクチャ以外のピクチャであり得る。いくつかの事例では、ＰＵの参照ブロックはＰＵの「参照サンプル」と呼ばれることもある。ビデオエンコーダ２０は、ＰＵの参照ブロックに基づいてＰＵの予測ビデオブロックを生成し得る。
【００５４】
[0061]上記で説明したように、スライスは、Ｉスライス、Ｐスライス、またはＢスライスであり得る。Ｉスライス中では、すべてのＰＵがイントラ予測される。ＰスライスおよびＢスライス中では、ＰＵはイントラ予測またはインター予測される。ビデオエンコーダ２０が、Ｐスライス中のＰＵに対してインター予測を実行するとき、ビデオエンコーダ２０は、単一の参照ピクチャ中のロケーションを識別する動き情報を生成し得る。言い換えれば、ＰＵは単方向にインター予測され得る。動き情報は、参照ピクチャインデックスと動きベクトルとを含み得る。参照ピクチャインデックスは、参照ピクチャの第１の参照ピクチャリスト（「リスト０」）中の位置を示し得る。動きベクトルは、ＰＵに関連付けられたビデオブロックと、参照ピクチャ内の参照ブロックとの間の空間変位を示し得る。ビデオエンコーダ２０またはビデオデコーダ３０など、ビデオコーダは、その後、ＰＵの動き情報に関連付けられた単一の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。たとえば、ビデオコーダは、予測ビデオブロックが参照ブロックに一致するように、ＰＵのための予測ビデオブロックを生成し得る。
【００５５】
[0062]Ｂスライス中のＰＵは、リスト０に基づいて単方向にインター予測され、第２の参照ピクチャリスト（「リスト１」）に基づいて単方向にインター予測され、または双方向にインター予測され得る。Ｂスライス中のＰＵがリスト０に基づいて単方向にインター予測される場合、ＰＵの動き情報は、リスト０参照ピクチャインデックスと、リスト０動きベクトルとを含み得る。リスト０参照ピクチャインデックスは、参照ピクチャのリスト０中の位置を示すことによって、参照ピクチャを識別し得る。リスト０動きベクトルは、ＰＵに関連付けられたビデオブロックと、参照ピクチャ内の参照ブロックとの間の空間変位を示し得る。ビデオエンコーダ２０は、リスト０動きベクトルに関連付けられた参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。言い換えれば、ビデオエンコーダ２０は、リスト０動きベクトルによって識別された参照サンプルのブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得、またはリスト０動きベクトルによって識別された参照サンプルのブロックから合成された（たとえば、補間された）参照サンプルのブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。
【００５６】
[0063]Ｂスライス中のＰＵが、リスト１基づいて単方向にインター予測された場合、ＰＵの動き情報は、リスト１参照ピクチャインデックスと、リスト１動きベクトルとを含み得る。リスト１参照ピクチャインデックスは、参照ピクチャのリスト１中の位置を示すことによって、参照ピクチャを識別し得る。リスト１動きベクトルは、ＰＵと参照ピクチャ内の参照ブロックとの間の空間変位を示し得る。ビデオエンコーダ２０は、リスト１動きベクトルに関連付けられた参照サンプルのブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。たとえば、ビデオエンコーダ２０は、リスト１動きベクトルによって識別された参照サンプルのブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得、またはリスト１動きベクトルによって識別された参照サンプルのブロックから合成された（たとえば、補間された）参照サンプルのブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。
【００５７】
[0064]Ｂスライス中のＰＵが双方向にインター予測される場合、ＰＵの動き情報は、リスト０参照ピクチャインデックスと、リスト０動きベクトルと、リスト１参照ピクチャインデックスと、リスト１動きベクトルとを含み得る。いくつかの事例では、リスト０参照ピクチャインデックスとリスト１参照ピクチャインデックスとは、同じピクチャを識別し得る。ビデオエンコーダ２０は、リスト０動きベクトルおよびリスト１動きベクトルに関連付けられた参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。いくつかの例では、ビデオエンコーダ２０は、リスト０動きベクトルに関連付けられた参照ブロック中のサンプルと、リスト１動きベクトルに関連付けられた参照ブロック中のサンプルとから、予測ビデオブロックを補間することによって、ＰＵのための予測ビデオブロックを生成し得る。
【００５８】
[0065]ビデオエンコーダ２０がＣＵの１つまたは複数のＰＵのための予測ビデオブロックを生成した後、ビデオエンコーダ２０は、ＣＵのＰＵのための予測ビデオブロックに基づいて、ＣＵの残差データを生成し得る。ＣＵの残差データは、ＣＵのＰＵのための予測ビデオブロック中のサンプルと、ＣＵの元のビデオブロック中のサンプルとの間の差分を示し得る。
【００５９】
[0066]さらに、区分されていないＣＵに対して符号化演算を実行することの一部として、ビデオエンコーダ２０は、ＣＵの残差データに対して再帰的な４分木区分を実行して、ＣＵの残差データを、ＣＵの変換ユニット（ＴＵ：transform unit）に関連付けられた残差データの１つまたは複数のブロック（すなわち、残差ビデオブロック）に区分し得る。ＣＵの各ＴＵは、異なる残差ビデオブロックに関連付けられ得る。
【００６０】
[0067]ビデオコーダ２０は、ＴＵに関連付けられた残差ビデオブロックに１つまたは複数の変換を適用して、ＴＵに関連付けられた変換係数ブロック（すなわち、変換係数のブロック）を生成し得る。概念的に、変換係数ブロックは変換係数の２次元（２Ｄ）行列であり得る。
【００６１】
[0068]変換係数ブロックを生成した後、ビデオエンコーダ２０は、変換係数ブロックに対して量子化プロセスを実行し得る。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現する処理を指す。量子化プロセスは、変換係数の一部または全部に関連付けられたビット深度を低減し得る。たとえば、量子化中にｎビットの変換係数がｍビットの変換係数に切り捨てられることがあり、ここで、ｎはｍよりも大きい。
【００６２】
[0069]ビデオエンコーダ２０は、各ＣＵを量子化パラメータ（ＱＰ：quantization parameter）値に関連付け得る。ＣＵに関連付けられたＱＰ値は、ビデオエンコーダ２０が、ＣＵに関連付けられた変換係数ブロックをどのように量子化するかを決定し得る。ビデオエンコーダ２０は、ＣＵに関連付けられたＱＰ値を調整することによって、ＣＵに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。
【００６３】
[0070]ビデオエンコーダ２０が変換係数ブロックを量子化した後、ビデオエンコーダ２０は、量子化された変換係数ブロック中で変換係数を表すシンタックス要素のセットを生成し得る。ビデオエンコーダ２０は、これらのシンタックス要素のうちのいくつかに、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：Context Adaptive Binary Arithmetic Coding）演算などのエントロピー符号化演算を適用し得る。
【００６４】
[0071]ビデオエンコーダ２０によって生成されるビットストリームは、一連のネットワークアブストラクションレイヤ（ＮＡＬ：Network Abstraction Layer）ユニットを含み得る。ＮＡＬユニットの各々は、ＮＡＬユニット中のデータのタイプの指示と、データを含んでいるバイトとを含んでいるシンタックス構造であり得る。たとえば、ＮＡＬユニットは、シーケンスパラメータセット、ピクチャパラメータセット、コード化スライス、補足エンハンスメント情報（ＳＥＩ：supplemental enhancement information）、アクセスユニット区切り文字、フィラーデータ、または別のタイプのデータを表すデータを含み得る。ＮＡＬユニット中のデータは様々なシンタックス構造を含み得る。
【００６５】
[0072]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信し得る。ビットストリームは、ビデオエンコーダ２０によって符号化されたビデオデータのコード化表現を含み得る。ビデオデコーダ３０がビットストリームを受信するとき、ビデオデコーダ３０は、ビットストリームに対してパース演算を実行し得る。ビデオデコーダ３０がパース演算を実行するとき、ビデオデコーダ３０は、ビットストリームからシンタックス要素を抽出し得る。ビデオデコーダ３０は、ビットストリームから抽出されたシンタックス要素に基づいて、ビデオデータのピクチャを再構成し得る。シンタックス要素に基づいてビデオデータを再構成するためのプロセスは、一般に、シンタックス要素を生成するためにビデオエンコーダ２０によって実行されるプロセスの逆であり得る。
【００６６】
[0073]ビデオデコーダ３０がＣＵに関連付けられたシンタックス要素を抽出した後、ビデオデコーダ３０は、シンタックス要素に基づいて、ＣＵのＰＵのための予測ビデオブロックを生成し得る。加えて、ビデオデコーダ３０は、ＣＵのＴＵに関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ３０は、変換係数ブロックに対して逆変換を実行して、ＣＵのＴＵに関連付けられた残差ビデオブロックを再構成し得る。予測ビデオブロックを生成し、残差ビデオブロックを再構成した後、ビデオデコーダ３０は、予測ビデオブロックおよび残差ビデオブロックに基づいて、ＣＵのビデオブロックを再構成し得る。このようにして、ビデオデコーダ３０は、ビットストリーム中のシンタックス要素に基づいて、ＣＵのビデオブロックを再構成し得る。
【００６７】
[0074]上記で説明したように、ビデオエンコーダ２０は、インター予測を使用して、ＣＵのＰＵのための動き情報に関連付けられた予測ビデオブロックを生成し得る。多くの事例では、所与のＰＵの動き情報は、１つまたは複数の近くのＰＵ（すなわち、空間的または時間的に所与のＰＵのビデオブロックの近くにあるビデオブロックをもつＰＵ）の動き情報と同じまたは同様である可能性がある。近くのＰＵがしばしば同様の動き情報を有するので、ビデオエンコーダ２０は、１つまたは複数の近くのＰＵの動き情報を参照して所与のＰＵの動き情報を符号化し得る。１つまたは複数の近くのＰＵの動き情報を参照して所与のＰＵの動き情報を符号化することは、所与のＰＵの動き情報を示すためにビットストリーム中で必要とされるビット数を低減し得る。
【００６８】
[0075]ビデオエンコーダ２０は、様々な方法で、１つまたは複数の近くのＰＵの動き情報を参照して所与のＰＵの動き情報を符号化し得る。たとえば、ビデオエンコーダ２０は、マージモードまたは高度動きベクトル予測（ＡＭＶＰ）モードを使用して所与のＰＵの動き情報を符号化し得る。マージモードを使用してＰＵの動き情報を符号化するために、ビデオエンコーダ２０は、ＰＵのためのマージ候補リストを生成し得る。マージ候補リストは１つまたは複数のマージ候補を含み得る。マージ候補の各々は動き情報のセットを指定する。ビデオエンコーダ２０は、空間マージ候補と呼ばれることがある、同じピクチャ中のＰＵと空間的に隣接するＰＵによって指定された動き情報に基づいて、または時間マージ候補と呼ばれることがある、別のピクチャ中のコロケートＰＵに基づいて、マージ候補のうちの１つまたは複数を生成し得る。マージ候補によって指定された動き情報が２つの参照ブロックに関連付けられた場合、そのマージ候補を、本明細書では双方向マージ候補、または双方向であるマージ候補と呼ぶことがある。そうではなく、マージ候補によって指定された動き情報が単一の参照ブロックのみに関連付けられた場合、そのマージ候補を、本明細書では単方向マージ候補、または単方向であるマージ候補と呼ぶことがある。ビデオエンコーダ２０は、マージ候補リストからマージ候補のうちの１つを選択し、ＰＵのための候補インデックス値をシグナリングし得る。候補インデックス値は、選択されたマージ候補のマージ候補リスト中の位置を示し得る。
【００６９】
[0076]ビデオエンコーダ２０がマージモードを使用してＰＵの動き情報を符号化するとき、ビデオデコーダ３０は、ビデオエンコーダ２０がＰＵのために生成したマージ候補リストと同じＰＵのためのマージ候補リストを生成し得る。ビデオデコーダ３０は、次いで、ＰＵのための候補インデックス値に基づいて、マージ候補リスト中のマージ候補のうちのいずれの１つがビデオエンコーダ２０によって選択されたか判断し得る。ビデオデコーダ３０は、次いで、選択されたマージ候補によって指定された動き情報をＰＵの動き情報に採用し得る。選択された候補によって指定された動き情報は、１つまたは複数の動きベクトルと、１つまたは複数の参照ピクチャインデックスとを含み得る。
【００７０】
[0077]ビデオエンコーダ２０がＡＭＶＰを使用してＰＵの動き情報をシグナリングするとき、ビデオエンコーダ２０は、ＰＵがリスト０に基づいて単方向にインター予測される場合、またはＰＵがリスト０およびリスト１中の参照ピクチャに基づいて双方向にインター予測される場合、ＰＵのためのリスト０ＭＶ予測子候補（predictor candidate）リストを生成し得る。リスト０ＭＶ予測子候補リストは、１つまたは複数のＭＶ予測子候補を含み得る。ＭＶ予測子候補の各々は動き情報のセットを指定する。ビデオエンコーダ２０は、リスト０ＭＶ予測子候補リストからリスト０ＭＶ予測子候補を選択し得る。ビデオエンコーダ２０は、選択されたリスト０ＭＶ予測子候補のリスト０ＭＶ予測子候補リスト中の位置を示すリスト０ＭＶ予測子フラグをシグナリングし得る。リスト０ＭＶ予測子フラグは、「ｍｖｐ＿ｌ０＿ｆｌａｇ」として示され得る。
【００７１】
[0078]さらに、デオエンコーダ２０がＡＭＶＰを使用してＰＵの動き情報をシグナリングするとき、ビデオエンコーダ２０は、ＰＵがリスト１に基づいて単方向にインター予測される場合、またはＰＵが双方向にインター予測される場合、ＰＵのためのリスト１ＭＶ予測子候補リストを生成し得る。リスト１ＭＶ予測子候補リストは、１つまたは複数のＭＶ予測子候補を含み得る。ＭＶ予測子候補の各々は動き情報のセットを指定する。ビデオエンコーダ２０は、次いで、リスト１ＭＶ予測子候補リストからリスト１ＭＶ予測子候補を選択し得る。ビデオエンコーダ２０は、選択されたリスト１ＭＶ予測子候補のリスト１ＭＶ予測子候補リスト中の位置を示すリスト１ＭＶ予測子フラグをシグナリングし得る。リスト１ＭＶ予測子フラグは、「ｍｖｐ＿ｌ１＿ｆｌａｇ」として示され得る。
【００７２】
[0079]さらに、デオエンコーダ２０がＡＭＶＰを使用してＰＵの動き情報を符号化するとき、ビデオエンコーダ２０は、ＰＵがリスト０に基づいて単方向にインター予測される場合、またはＰＵが双方向にインター予測される場合、ＰＵのためのリスト０動きベクトル差分（ＭＶＤ：motion vector difference）を計算し得る。リスト０ＭＶＤは、ＰＵのリスト０動きベクトルと、選択されたリスト０ＭＶ予測子候補によって指定されたリスト０動きベクトルとの間の差分を示す。さらに、ビデオエンコーダ２０は、ＰＵがリスト１に基づいて単方向予測される場合、またはＰＵが双方向にインター予測される場合、ＰＵのためのリスト１ＭＶＤを出力し得る。リスト１ＭＶＤは、ＰＵのリスト１動きベクトルと、選択されたリスト１ＭＶ予測子候補によって指定されたリスト１動きベクトルとの間の差分を示す。ビデオエンコーダ２０は、リスト０ＭＶＤおよび／またはリスト１ＭＶＤをシグナリングし得る。
【００７３】
[0080]ビデオエンコーダ２０がＡＭＶＰモードを使用してＰＵの動き情報をシグナリングするとき、ビデオデコーダ３０は、ビデオエンコーダ２０によって生成された同じリスト０ＭＶ予測子候補リストおよび／またはリスト１ＭＶ予測子候補リストを独立して生成し得る。他の例では、ビデオエンコーダ２０は、リスト０ＭＶ予測子候補リストとリスト１ＭＶ予測子候補リストとを指定するシンタックス要素を符号化し得る。ＰＵがリスト０に基づいて単方向にインター予測される場合、またはＰＵが双方向にインター予測される場合、ビデオデコーダ３０は、リスト０ＭＶ予測子候補リストから選択されたリスト０ＭＶ予測子候補を判断し得る。ビデオデコーダ３０は、次いで、選択されたリスト０ＭＶ予測子候補とＰＵのためのリスト０ＭＶＤとに基づいて、ＰＵのリスト０動きベクトルを判断し得る。たとえば、ビデオデコーダ３０は、選択されたリスト０ＭＶ予測子候補によって指定されたリスト０動きベクトルとリスト０ＭＶＤとを加算することによって、ＰＵのリスト０動きベクトルを判断し得る。ＰＵがリスト１に基づいて単方向にインター予測される場合、またはＰＵが双方向にインター予測される場合、ビデオデコーダ３０は、リスト１ＭＶ予測子候補リストから選択されたリスト１ＭＶ予測子候補を判断し得る。ビデオデコーダ３０は、次いで、選択されたリスト１ＭＶ候補によって指定されたリスト１動きベクトルとリスト１ＭＶＤとに基づいて、ＰＵのリスト１動きベクトルを判断し得る。たとえば、ビデオデコーダ３０は、選択されたリスト１ＭＶ候補によって指定されたリスト１動きベクトルとリスト１ＭＶＤとを加算することによって、ＰＵのリスト１動きベクトルを判断し得る。
【００７４】
[0081]上記で手短に説明したように、ビデオエンコーダ２０が、Ｂスライス中のＰＵに対してインター予測を実行するとき、ビデオエンコーダ２０は、ＰＵのための１つまたは２つの参照ブロックに関連付けられた動き情報を生成し得る。ビデオエンコーダ２０またはビデオデコーダ３０など、ビデオコーダは、次いで、ＰＵの動き情報に関連付けられた参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。２つの参照ブロックに基づいて予測ビデオブロックを生成するために、ビデオコーダは、メモリから参照ブロックの両方を取り出し得る。メモリ帯域幅（すなわち、データがメモリから転送され得るレート）は制限され得るので、メモリから２つの参照ブロックを取り出すのには、メモリから単一の参照ブロックを取り出すよりも時間がかかることがある。したがって、Ｂスライスが多くの小さい双方向インター予測ＰＵを含む場合、ＰＵの各々のための２つの参照ブロックを取り出すために必要とされる追加の時間は、ビデオコーダがＢスライス中のＰＵのための予測ビデオブロックを生成することが可能である速度を低下させ得る。
【００７５】
[0082]本開示の技法の様々な例によれば、ビデオエンコーダ２０またはビデオデコーダ３０など、ビデオコーダは、Ｂスライス中のＰＵが単方向インター予測に制限されるかどうかを判断し得る。いくつかの例では、ビデオコーダは、ＰＵを特徴づけるサイズまたはパラメータに基づいて、ＰＵが単方向インター予測に制限されると判断し得る。さらに、ビデオコーダは、ＰＵのためのマージ候補リストを生成し、マージ候補リスト中の選択されたマージ候補を判断し得る。ＰＵが単方向インター予測に制限される場合、ビデオコーダは、選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。一方、ＰＵが単方向インター予測に制限されない場合、ビデオコーダは、選択されたマージ候補によって指定された動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。ビデオコーダは、単一の参照ブロックに基づいて予測ビデオブロックを生成するとき、２つの参照ブロックに基づいて予測ビデオブロックを生成するときよりも少ないデータをメモリから転送するので、Ｂスライス中のいくつかのＰＵをビデオエンコーダおよびデコーダによる単方向インター予測に制限することは、ビデオエンコーダおよびデコーダがＢスライス中のＰＵのための予測ビデオブロックを生成することが可能である速度を増加させ得る。
【００７６】
[0083]ビデオコーダ、すなわち、ビデオエンコーダまたはビデオデコーダは、様々な基準に基づいて、Ｂスライス中のＰＵが単方向インター予測に制限されると判断し得る。たとえば、ビデオコーダは、Ｂスライス中のＰＵを特徴づけるサイズが特定のしきい値を下回る場合、ＰＵが単方向インター予測に制限されると判断し得る。この例では、ビデオコーダは、ＰＵを特徴づけるサイズがしきい値を下回らない場合、ＰＵが単方向インター予測に制限されないと判断し得る。たとえば、この例では、ビデオコーダは、ＰＵに関連付けられたビデオブロックの高さまたは幅がしきい値を下回る場合、ＰＵが単方向インター予測に制限されると判断し得る。たとえば、ビデオコーダは、ＰＵに関連付けられたビデオブロックの高さおよび／または幅がＮ（たとえば、Ｎ＝８）ピクセルよりも小さい場合、ＰＵが単方向インター予測に制限されると判断し得る。
【００７７】
[0084]別の例では、ビデオコーダは、ＰＵに関連付けられたビデオブロックの第１の寸法がしきい値よりも小さく、ＰＵに関連付けられたビデオブロックの第２の寸法がしきい値以下である場合、Ｂスライス中のＰＵが単方向インター予測に制限されると判断し得る。ビデオブロックの寸法は、ビデオブロックの幅または高さであり得る。たとえば、しきい値が８に等しい場合、ビデオコーダは、ビデオブロックの幅が４に等しいが、ビデオブロックの高さが１６に等しい場合、ＰＵが単方向インター予測に制限されないと判断し得る。しかしながら、しきい値が８に等しい場合、ビデオコーダは、ビデオブロックの幅が４に等しく、ビデオブロックの高さが８に等しい場合、ＰＵが単方向インター予測に制限されると判断し得る。
【００７８】
[0085]別の例では、ビデオコーダは、ＰＵに関連付けられたビデオブロックの第１の寸法が第１のしきい値よりも小さく、ＰＵに関連付けられたビデオブロックの第２の寸法が第２のしきい値よりも小さい場合、Ｂスライス中のＰＵが単方向インター予測に制限されると判断し得る。たとえば、ビデオコーダは、ビデオブロックの幅が８よりも小さく、ビデオブロックの高さが１６よりも小さい場合、ＰＵが単方向インター予測に制限されると判断し得る。いくつかの事例では、第１のしきい値は第２のしきい値と同じであり得る。
【００７９】
[0086]別の例では、ビデオコーダは、ＰＵ（たとえば、現在ＣＵ）に関連付けられたＣＵを特徴づけるサイズが特定のサイズに等しく、ＰＵを特徴づけるサイズがしきい値を下回る場合、ＰＵが単方向インター予測に制限されると判断し得る。この例では、ビデオコーダは、ＣＵを特徴づけるサイズが特定のサイズに等しくないか、またはＰＵを特徴づけるサイズがしきい値を下回らない場合、ＰＵが単方向インター予測に制限されないと判断し得る。この例では、特定のサイズはＮ（たとえば、Ｎ＝８）ピクセルに等しくなり得、しきい値はまた、Ｎ（たとえば、Ｎ＝８）ピクセルに等しくなり得る。この例では、８×８サイズをもつＣＵの場合、８×８よりも小さいサイズを有するＣＵのどのＰＵも、双方向インター予測を禁止され得る。
【００８０】
[0087]別の例では、ビデオコーダは、Ｂスライス中のＰＵが単方向インター予測に制限されるべきであることをパラメータが示す場合、Ｂスライス中のＰＵが単方向インター予測に制限されると判断し得る。
【００８１】
[0088]ビデオコーダは、様々な方法で、Ｂスライス中のＰＵを単方向インター予測に制限し得る。たとえば、ビデオコーダは、ＰＵの動き情報に関連付けられた参照ブロックのうちの１つを無視し、ＰＵの動き情報に関連付けられた参照ブロックのうちの他の１つに基づいてＰＵの予測ビデオブロックを生成し得る。たとえば、ビデオコーダはマージ候補リストを生成し得、選択されたマージ候補が双方向マージ候補である場合、ビデオコーダは、選択されたマージ候補のリスト０参照ピクチャインデックスに関連付けられた参照ブロックと、選択されたマージ候補のリスト０動きベクトルとに基づいて、ＰＵのための予測ビデオブロックを生成し得る。同様の例では、ビデオコーダは、選択されたマージ候補のリスト１参照ピクチャインデックスに関連付けられた参照ブロックと、選択されたマージ候補のリスト１動きベクトルとに基づいて、ＰＵのための予測ビデオブロックを生成し得る。
【００８２】
[0089]ビデオコーダがどのようにＢスライス中のＰＵを単方向インター予測に制限し得るかについての別の例では、ビデオコーダは、双方向マージ候補をＰＵのためのマージ候補リストに含めることなしに単方向マージ候補をＰＵのためのマージ候補リストに含め得る。ビデオコーダは、この例では、双方向マージ候補を単方向マージ候補に変換しない。この例では、ビデオコーダは、利用可能な単方向マージ候補の数がマージ候補リストを満たすには不十分である場合、アーティフィシャル単方向マージ候補をマージ候補リストに含め得る。アーティフィシャルマージ候補は、１つまたは複数のＰＵの動き情報に基づいて生成されるが、１つまたは複数のＰＵの動き情報を指定しない、マージ候補であり得る。
【００８３】
[0090]ビデオコーダがどのようにＢスライス中のＰＵを単方向インター予測に制限し得るかについての別の例では、ビデオコーダは、双方向マージ候補を１つまたは複数の単方向マージ候補に変換し、１つまたは複数の単方向マージ候補をマージ候補リストに含め得る。いくつかのそのような例では、ビデオコーダは、双方向マージ候補を、リスト０中の参照ピクチャまたはリスト１中の参照ピクチャに関連付けられた単一の単方向マージ候補に変換し得る。いくつかのそのような事例では、ビデオコーダが双方向マージ候補を単方向マージ候補に変換するときはいつでも、単方向マージ候補は特定の参照リスト中の参照ピクチャに関連付けられる。たとえば、ビデオコーダは、双方向マージ候補をリスト０中の参照ピクチャに関連付けられた単一の単方向マージ候補のみに変換し得る。代替として、ビデオコーダは、双方向マージ候補をリスト１中の参照ピクチャに関連付けられた単一の単方向マージ候補のみに変換し得る。他のそのような例では、ビデオコーダは、双方向マージ候補を、一方がリスト０中の参照ピクチャに関連付けられ、他方がリスト１中の参照ピクチャに関連付けられた２つの単方向マージ候補に変換し得る。したがって、いくつかの例では、マージ候補リストを生成した後、ビデオコーダは、マージ候補リスト中の双方向マージ候補を単方向マージ候補に変換し、双方向マージ候補の代わりに単方向マージ候補をマージ候補リストに含め得る。
【００８４】
[0091] いくつかの例では、ビデオコーダは、双方向マージ候補を単方向マージ候補に変換する前に、マージ候補リストから重複マージ候補を除去し得る。他の例では、ビデオコーダは、双方向マージ候補を単方向マージ候補に変換した後に、マージ候補リストから重複マージ候補を除去し得る。
【００８５】
[0092]ビデオエンコーダ２０がＡＭＶＰを使用してＢスライス中のＰＵの動き情報を符号化するとき、ビデオエンコーダ２０は、ＰＵのためのインター予測モードインジケータを生成し、エントロピー符号化し、出力し得る。インター予測モードインジケータは、「ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃ」として示され得る。インター予測モードインジケータは、ＰＵがリスト０に基づいて単方向にインター予測されるか、リスト１に基づいて単方向にインター予測されるか、双方向にインター予測されるかを示し得る。ビデオデコーダ３０は、ＰＵに対してインター予測を実行するときにインター予測モードインジケータを使用し得る。インター予測モードインジケータは３つの可能な値を有するので、インター予測モードインジケータは従来では２ビットを使用して表され得る。
【００８６】
[0093]しかしながら、Ｂスライス中のＰＵが単方向インター予測に制限される場合、インター予測モードインジケータは、リスト０に基づく単方向インター予測とリスト１に基づく単方向インター予測という２つの可能な値を有し得る。したがって、本開示の技法によれば、Ｂスライス中のＰＵが単方向インター予測に制限される場合、インター予測モードインジケータは単一のビットを使用して表され得る。そうではなく、ＰＵが単方向インター予測に制限されない場合、インター予測モードインジケータは２ビットを使用して表され得る。ＰＵが単方向インター予測に制限されるときに、単一のビットを使用してインター予測モードインジケータを表すことは、コーディング効率を高め得る。
【００８７】
[0094]さらに、ＰＵが単方向インター予測に制限される場合、ＰＵが単方向インター予測に制限されない場合とは異なるコンテキストが、Ｂスライス中のＰＵのインター予測モードインジケータをエントロピーコーディングするために使用され得る。これは、コーディング効率をさらに高め得る。
【００８８】
[0095]図２は、本開示の技法を実装するように構成された例示的なビデオエンコーダ２０を示すブロック図である。図２は、説明を目的に与えられており、本開示において広く例示され説明される技法を限定するものと見なされるべきではない。説明のために、本開示では、ＨＥＶＣコーディングのコンテキストにおいてビデオエンコーダ２０について説明する。しかしながら、本開示の技法は、他のコーディング規格または方法にも適用可能であり得る。
【００８９】
[0096]図２の例では、ビデオエンコーダ２０は、複数の機能構成要素を含む。ビデオエンコーダ２０の機能構成要素は、予測モジュール１００と、残差生成モジュール１０２と、変換モジュール１０４と、量子化モジュール１０６と、逆量子化モジュール１０８と、逆変換モジュール１１０と、再構成モジュール１１２と、フィルタモジュール１１３と、復号ピクチャバッファ１１４と、エントロピー符号化モジュール１１６とを含む。予測モジュール１００は、インター予測モジュール１２１と、動き推定モジュール１２２と、動き補償モジュール１２４と、イントラ予測モジュール１２６とを含む。他の例では、ビデオエンコーダ２０は、より多数の、より少数の、または異なる機能構成要素を含み得る。さらに、動き推定モジュール１２２と動き補償モジュール１２４は、高度に統合され得るが、図２の例では、説明の目的で別々に表されている。
【００９０】
[0097]ビデオエンコーダ２０はビデオデータを受信し得る。ビデオエンコーダ２０は、様々なソースからビデオデータを受信し得る。たとえば、ビデオエンコーダ２０は、ビデオソース１８（図１）または別のソースからビデオデータを受信し得る。ビデオデータは、一連のピクチャを表し得る。ビデオデータを符号化するために、ビデオエンコーダ２０は、ピクチャの各々に対して符号化演算を実行し得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化演算を実行し得る。スライスに対して符号化演算を実行することの一部として、ビデオエンコーダ２０は、スライス中のツリーブロックに対して符号化演算を実行し得る。
【００９１】
[0098]ツリーブロックに対して符号化演算を実行することの一部として、予測モジュール１００は、ツリーブロックのビデオブロックに対して４分木区分を実行して、ビデオブロックを徐々により小さいビデオブロックに分割し得る。より小さいビデオブロックの各々は異なるＣＵに関連付けられ得る。たとえば、予測モジュール１００は、ツリーブロックのビデオブロックを４つの等しいサイズのサブブロックに区分し、サブブロックの１つまたは複数を、４つの等しいサイズのサブサブブロックに区分し得、以下同様である。
【００９２】
[0099]ＣＵに関連付けられるビデオブロックのサイズは、８×８サンプルから、最大で６４×６４サンプル以上のツリーブロックのサイズにまで、わたり得る。本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法に関するビデオブロックのサンプル寸法、たとえば、１６×１６（16x16）サンプルまたは１６×１６（16 by 16）サンプルを指すために交換可能に使用され得る。一般に、１６×１６のビデオブロックは、垂直方向に１６個のサンプルを有し（ｙ＝１６）、水平方向に１６個のサンプルを有する（ｘ＝１６）。同様に、Ｎ×Ｎのブロックは、一般に、垂直方向にＮ個のサンプルを有し、水平方向にＮ個のサンプルを有し、ここで、Ｎは非負整数値を表す。
【００９３】
[0100]さらに、ツリーブロックに対して符号化演算を実行することの一部として、予測モジュール１００は、ツリーブロック用の階層的な４分木データ構造を生成し得る。たとえば、ツリーブロックは、４分木データ構造のルートノードに対応し得る。予測モジュール１００が、ツリーブロックのビデオブロックを４つのサブブロックに区分する場合、ルートノードは、４分木データ構造中に４つの子ノードを有する。子ノードの各々は、サブブロックのうちの１つに関連付けられたＣＵに対応する。予測モジュール１００が、サブブロックのうちの１つを４つのサブサブブロックに区分する場合、サブブロックに関連付けられたＣＵに対応するノードは、サブサブブロックのうちの１つに関連付けられたＣＵに各々が対応する、４つの子ノードを有し得る。
【００９４】
[0101]４分木データ構造の各ノードは、対応するツリーブロックまたはＣＵのシンタックスデータ（たとえば、シンタックス要素）を含み得る。たとえば、４分木の中のノードは、そのノードに対応するＣＵのビデオブロックが４つのサブブロックに区分される（すなわち、分割される）かどうかを示す分割フラグを含み得る。ＣＵのためのシンタックス要素は、再帰的に定義され得、ＣＵのビデオブロックがサブブロックに分割されるかどうかに依存し得る。それのビデオブロックが区分されていないＣＵは、４分木データ構造におけるリーフノードに対応し得る。コード化ツリーブロックは、対応するツリーブロック用の４分木データ構造に基づくデータを含み得る。
【００９５】
[0102]ビデオエンコーダ２０は、ツリーブロックの区分されていない各ＣＵに対して符号化演算を実行し得る。ビデオエンコーダ２０が区分されていないＣＵに対して符号化演算を実行するとき、ビデオエンコーダ２０は、区分されていないＣＵの符号化表現を生成し得る。
【００９６】
[0103]ＣＵに対して符号化演算を実行することの一部として、予測モジュール１００は、ＣＵの１つまたは複数のＰＵの中で、ＣＵのビデオブロックを区分し得る。ビデオエンコーダ２０およびビデオデコーダ３０は、様々なＰＵサイズをサポートし得る。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ビデオエンコーダ２０およびビデオデコーダ３０は、イントラ予測用の２Ｎ×２ＮまたはＮ×ＮのＰＵサイズと、インター予測用の２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、または同様の対称ＰＵサイズとをサポートし得る。ビデオエンコーダ２０およびビデオデコーダ３０は、インター予測用の２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズに対する非対称区分もサポートし得る。いくつかの例では、予測モジュール１００は、ＣＵのビデオブロックの辺に直角に接触しない境界に沿って、ＣＵのＰＵの間でＣＵのビデオブロックを区分するように、幾何学的な区分を実行し得る。
【００９７】
[0104]インター予測モジュール１２１はＣＵの各ＰＵに対してインター予測を実行し得る。インター予測は時間圧縮を実現し得る。インター予測モジュール１２１がＰＵに対してインター予測を実行するとき、インター予測モジュール１２１は、ＰＵのための予測データを生成し得る。ＰＵのための予測データは、ＰＵに対応する予測ビデオブロックとＰＵのための動き情報とを含み得る。動き推定モジュール１２２は、ＰＵのための動き情報を生成し得る。場合によっては、動き推定モジュール１２２は、マージモードまたはＡＭＶＰモードを使用して、ＰＵの動き情報をシグナリングし得る。動き補償モジュール１２４は、現在ピクチャとは異なる１つまたは複数のピクチャ（すなわち、参照ピクチャ）のサンプルに基づいて、ＰＵの予測ビデオブロックを生成し得る。
【００９８】
[0105]スライスは、Ｉスライス、Ｐスライス、またはＢスライスであり得る。動き推定モジュール１２２および動き補償モジュール１２４は、ＰＵがＩスライス中にあるか、Ｐスライス中にあるか、Ｂスライス中にあるかに応じて、ＣＵのＰＵに対して異なる演算を実行し得る。Ｉスライス中では、すべてのＰＵがイントラ予測される。したがって、ＰＵがＩスライス中にある場合、動き推定モジュール１２２および動き補償モジュール１２４は、ＰＵに対してインター予測を実行しない。
【００９９】
[0106]ＰＵがＰスライス中にある場合、ＰＵを含んでいるピクチャは、「リスト０」と呼ばれる参照ピクチャのリストに関連付けられる。いくつかの例では、リスト０中に記載された各参照ピクチャは、表示順序において現在ピクチャの前に生じる。リスト０中の参照ピクチャの各々は、他のピクチャのインター予測に使用され得るサンプルを含んでいる。動き推定モジュール１２２が、Ｐスライス中のＰＵに関して動き推定演算を実行するとき、動き推定モジュール１２２は、ＰＵのための参照ブロックについて、リスト０中の参照ピクチャを探索し得る。ＰＵの参照ブロックは、ＰＵのビデオブロック中のサンプルに最も密接に対応するサンプルのセット、たとえば、サンプルのブロックであり得る。動き推定モジュール１２２は、様々なメトリクスを使用して、参照ピクチャ中のサンプルのセットがどの程度密接にＰＵのビデオブロック中のサンプルに対応するかを判断し得る。たとえば、動き推定モジュール１２２は、絶対値差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、または他の差分による評価基準によって、参照ピクチャ中のサンプルのセットがどの程度密接にＰＵのビデオブロック中のサンプルに対応するかを判断し得る。
【０１００】
[0107]Ｐスライス中のＰＵの参照ブロックを識別または合成した後、動き推定モジュール１２２は、参照ブロックを含んでいる、リスト０中の参照ピクチャを示す参照ピクチャインデックスと、ＰＵと参照ブロックの間の空間変位を示す動きベクトルとを生成し得る。動き推定モジュール１２２は、動きベクトルを様々な精度に生成し得る。たとえば、動き推定モジュール１２２は、１／４サンプル精度、１／８サンプル精度、または他の分数のサンプル精度で動きベクトルを生成し得る。分数のサンプル精度の場合、参照ブロック値は、参照ピクチャ中の整数位置のサンプル値から補間され得る。動き推定モジュール１２２は、ＰＵの動き情報として、参照ピクチャインデックスと動きベクトルとを出力し得る。動き補償モジュール１２４は、ＰＵの動き情報に関連付けられた参照ブロックに基づいて、ＰＵの予測ビデオブロックを生成し得る。
【０１０１】
[0108]ＰＵがＢスライス中にある場合、ＰＵを含むピクチャは、「リスト０」および「リスト１」と呼ばれる参照ピクチャの２つのリストと関連付けられ得る。いくつかの例では、Ｂスライスを含むピクチャは、リスト０とリスト１の組合せである、リストの組合せと関連付けられ得る。いくつかの例では、リスト１中に記載された各参照ピクチャは、表示順序において現在ピクチャの後に生じる。
【０１０２】
[0109]さらに、ＰＵがＢスライス中にある場合、動き推定モジュール１２２は、ＰＵについての単方向インター予測または双方向インター予測を実行し得る。動き推定モジュール１２２が、ＰＵについての単方向インター予測を実行するとき、動き推定モジュール１２２は、ＰＵのための参照ブロックについて、リスト０またはリスト１の参照ピクチャを探索し得る。動き推定モジュール１２２は、次いで、参照ブロックを含んでいる、リスト０またはリスト１中の参照ピクチャを示す参照ピクチャインデックスと、ＰＵと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。
【０１０３】
[0110]動き推定モジュール１２２が、ＰＵについての双方向予測を実行するとき、動き推定モジュール１２２は、ＰＵのための参照ブロックについて、リスト０中の参照ピクチャを探索し得、また、ＰＵのための別の参照ブロックについて、リスト１中の参照ピクチャを探索し得る。動き推定モジュール１２２は、次いで、参照ブロックを含んでいる、リスト０およびリスト１中の参照ピクチャを示す参照ピクチャインデックスと、参照ブロックとＰＵの間の空間変位を示す動きベクトルとを生成し得る。ＰＵの動き情報は、ＰＵの参照ピクチャインデックスと動きベクトルとを含み得る。動き補償モジュール１２４は、ＰＵの動き情報によって示された参照ブロックに基づいて、ＰＵの予測ビデオブロックを生成し得る。
【０１０４】
[0111]動き補償モジュール１２４は、ＰＵの動き情報に関連付けられた１つまたは複数の参照ブロックに基づいて、ＰＵの予測ビデオブロックを生成し得る。本開示の技法によれば、動き補償モジュール１２４は、ＰＵが単方向インター予測に制限されるかどうかを判断し得る。さらに、動き補償モジュール１２４は、ＰＵのためのマージ候補リストを生成し、マージ候補リスト中の選択されたマージ候補を判断し得る。ＰＵが単方向インター予測に制限される場合、動き補償モジュール１２４は、選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。ＰＵが単方向インター予測に制限されない場合、動き補償モジュール１２４は、選択されたマージ候補によって指定された動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。
【０１０５】
[0112]ＣＵに対して符号化演算を実行することの一部として、イントラ予測モジュール１２６は、ＣＵのＰＵに対してイントラ予測を実行し得る。イントラ予測は空間的な圧縮を実現し得る。イントラ予測モジュール１２６がＰＵに対してイントラ予測を実行するとき、イントラ予測モジュール１２６は、同じピクチャ中の他のＰＵの復号サンプルに基づいて、ＰＵのための予測データを生成し得る。ＰＵのための予測データは、予測ビデオブロックと様々なシンタックス要素とを含み得る。イントラ予測モジュール１２６は、Ｉスライス、Ｐスライス、およびＢスライスの中のＰＵに対してイントラ予測を実行し得る。
【０１０６】
[0113]ＰＵに対してイントラ予測を実行するために、イントラ予測モジュール１２６は、複数のイントラ予測モードを使用して、ＰＵのための予測データの複数のセットを生成し得る。イントラ予測モジュール１２６が、イントラ予測モードを使用してＰＵのための予測データのセットを生成するとき、イントラ予測モジュール１２６は、イントラ予測モードに関連付けられた方向および／または勾配で、隣接ＰＵのビデオブロックからＰＵのビデオブロックにわたって、サンプルを延ばし得る。隣接ＰＵは、ＰＵ、ＣＵ、およびツリーブロックについて左から右、上から下の符号化順序を仮定すると、ＰＵの上、右上、左上、または左にあり得る。イントラ予測モジュール１２６は、様々な数のイントラ予測モード、たとえば、３３個の方向性イントラ予測モードを使用し得る。いくつかの例では、イントラ予測モードの数はＰＵのサイズに依存し得る。
【０１０７】
[0114]予測モジュール１００は、ＰＵについて動き補償モジュール１２４によって生成された予測データ、またはＰＵについてイントラ予測モジュール１２６によって生成された予測データの中から、ＰＵのための予測データを選択し得る。いくつかの例では、予測モジュール１００は、予測データのセットのレート／ひずみメトリックに基づいて、ＰＵのための予測データを選択する。
【０１０８】
[0115]予測モジュール１００が、イントラ予測モジュール１２６によって生成された予測データを選択する場合、予測モジュール１００は、ＰＵの予測データを生成するために使用されたイントラ予測モード、すなわち、選択されたイントラ予測モードをシグナリングし得る。予測モジュール１００は、選択されたイントラ予測モードを様々な方法でシグナリングし得る。たとえば、選択されたイントラ予測モードは、隣接ＰＵのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接ＰＵのイントラ予測モードは、現在ＰＵに対して最確モードであり得る。したがって、予測モジュール１００は、選択されたイントラ予測モードが隣接ＰＵのイントラ予測モードと同じであることを示すために、シンタックス要素を生成し得る。
【０１０９】
[0116]予測モジュール１００がＣＵのＰＵのための予測データを選択した後、残差生成モジュール１０２は、ＣＵのビデオブロックからＣＵのＰＵの予測ビデオブロックを差し引くことによって、ＣＵの残差データを生成し得る。ＣＵの残差データは、ＣＵのビデオブロック中のサンプルの異なるサンプル成分に対応する、２Ｄ残差ビデオブロックを含み得る。たとえば、残差データは、ＣＵのＰＵの予測ビデオブロック中のサンプルのルミナンス成分と、ＣＵの元のビデオブロック中のサンプルのルミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。加えて、ＣＵの残差データは、ＣＵのＰＵの予測ビデオブロック中のサンプルのクロミナンス成分と、ＣＵの元のビデオブロック中のサンプルのクロミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。
【０１１０】
[0117]予測モジュール１００は、４分木区分を実行して、ＣＵの残差ビデオブロックをサブブロックに区分し得る。各分割されていない残差ビデオブロックは、ＣＵの異なるＴＵに関連付けられ得る。ＣＵのＴＵに関連付けられた残差ビデオブロックのサイズおよび位置は、ＣＵのＰＵに関連付けられたビデオブロックのサイズおよび位置に基づくことも基づかないこともある。「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造は、残差ビデオブロックの各々に関連付けられたノードを含み得る。ＣＵのＴＵは、ＲＱＴのリーフノードに対応し得る。
【０１１１】
[0118]変換モジュール１０４は、ＴＵに関連付けられた残差ビデオブロックに１つまたは複数の変換を適用することによって、ＣＵの各ＴＵのための１つまたは複数の変換係数ブロックを生成し得る。変換係数ブロックの各々は、変換係数の２Ｄ行列であり得る。変換モジュール１０４は、ＴＵに関連付けられた残差ビデオブロックに様々な変換を適用し得る。たとえば、変換モジュール１０４は、離散コサイン変換（ＤＣＴ）、方向性変換、または概念的に同様の変換を、ＴＵに関連付けられた残差ビデオブロックに適用し得る。
【０１１２】
[0119]変換モジュール１０４が、ＴＵに関連付けられた変換係数ブロックを生成した後、量子化モジュール１０６は、変換係数ブロック中の変換係数を量子化し得る。量子化モジュール１０６は、ＣＵに関連付けられたＱＰ値に基づいて、ＣＵのＴＵに関連付けられた変換係数ブロックを量子化し得る。
【０１１３】
[0120]ビデオエンコーダ２０は、様々な方法でＱＰ値をＣＵに関連付け得る。たとえば、ビデオエンコーダ２０は、ＣＵに関連付けられたツリーブロックに対して、レートひずみ分析を実行し得る。レートひずみ分析では、ビデオエンコーダ２０は、ツリーブロックに対して符号化演算を複数回実行することによって、ツリーブロックの複数のコード化表現を生成し得る。ビデオエンコーダ２０がツリーブロックの異なる符号化表現を生成するとき、ビデオエンコーダ２０は、異なるＱＰ値をＣＵに関連付け得る。ビデオエンコーダ２０は、最小のビットレートおよびひずみメトリックを有するツリーブロックのコード化表現で所与のＱＰ値がＣＵに関連付けられるとき、所与のＱＰ値がＣＵに関連付けられることをシグナリングし得る。
【０１１４】
[0121]逆量子化モジュール１０８および逆変換モジュール１１０は、それぞれ、変換係数ブロックに逆量子化と逆変換とを適用して、変換係数ブロックから残差ビデオブロックを再構成し得る。再構成モジュール１１２は、再構成された残差ビデオブロックを、予測モジュール１００によって生成された１つまたは複数の予測ビデオブロックからの対応するサンプルに追加して、ＴＵに関連付けられた再構成されたビデオブロックを生成し得る。このようにＣＵの各ＴＵのためのビデオブロックを再構成することによって、ビデオエンコーダ２０は、ＣＵのビデオブロックを再構成し得る。
【０１１５】
[0122]加算器として表された再構成モジュール１１２がＣＵのビデオブロックを再構成した後、フィルタモジュール１１３は、デブロッキング演算を実行して、ＣＵに関連付けられたビデオブロックにおけるブロッキングアーティファクトを低減し得る。１つまたは複数のデブロッキング演算を実行した後、フィルタモジュール１１３は、復号ピクチャバッファ１１４にＣＵの再構成されたビデオブロックを記憶し得る。動き推定モジュール１２２および動き補償モジュール１２４は、再構成されたビデオブロックを含んでいる参照ピクチャを使用して、後続ピクチャのＰＵに対してインター予測を実行し得る。加えて、イントラ予測モジュール１２６は、復号ピクチャバッファ１１４中の再構成されたビデオブロックを使用して、ＣＵと同じピクチャの中の他のＰＵに対してイントラ予測を実行し得る。
【０１１６】
[0123]エントロピー符号化モジュール１１６は、ビデオエンコーダ２０の他の機能構成要素からデータを受信し得る。たとえば、エントロピー符号化モジュール１１６は、量子化モジュール１０６から変換係数ブロックを受信し得、予測モジュール１００からシンタックス要素を受信し得る。エントロピー符号化モジュール１１６がデータを受信するとき、エントロピー符号化モジュール１１６は、１つまたは複数のエントロピー符号化演算を実行して、エントロピー符号化されたデータを生成し得る。たとえば、ビデオエンコーダ２０は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context adaptive variable length coding）演算、ＣＡＢＡＣ演算、変数−変数（Ｖ２Ｖ：variable-to-variable）レングスコーディング演算、シンタックスベースのコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）演算、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング演算、または別のタイプのエントロピー符号化演算をデータに対して実行し得る。エントロピー符号化モジュール１１６は、エントロピー符号化されたデータを含むビットストリームを出力し得る。
【０１１７】
[0124]データに対してエントロピー符号化演算を実行することの一部として、エントロピー符号化モジュール１１６は、コンテキストモデルを選択し得る。エントロピー符号化モジュール１１６がＣＡＢＡＣ演算を実行している場合、コンテキストモデルは、特定の値を有する特定のビンの確率の推定値を示し得る。ＣＡＢＡＣのコンテキストでは、「ビン」という用語は、シンタックス要素の２値化されたバージョンのビットを指すために使用される。
【０１１８】
[0125]図３は、本開示の技法を実装するように構成された例示的なビデオデコーダ３０を示すブロック図である。図３は、説明のために与えられており、本開示おいて広く例示され説明される技法に対する限定ではない。説明のために、本開示では、ＨＥＶＣコーディングの状況において、ビデオデコーダ３０について説明する。しかしながら、本開示の技法は、他のコーディング規格または方法にも適用可能であり得る。
【０１１９】
[0126]図３の例では、ビデオデコーダ３０は、複数の機能構成要素を含む。ビデオデコーダ３０の機能構成要素は、エントロピー復号モジュール１５０と、予測モジュール１５２と、逆量子化モジュール１５４と、逆変換モジュール１５６と、再構成モジュール１５８と、フィルタモジュール１５９と、復号ピクチャバッファ１６０とを含む。予測モジュール１５２は、動き補償モジュール１６２とイントラ予測モジュール１６４とを含む。いくつかの例では、ビデオデコーダ３０は、図２のビデオエンコーダ２０に関して説明された符号化経路とは全般に逆の復号経路を実行し得る。他の例では、ビデオデコーダ３０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【０１２０】
[0127]ビデオデコーダ３０は、符号化ビデオデータを備えるビットストリームを受信し得る。ビットストリームは、複数のシンタックス要素を含み得る。ビデオデコーダ３０がビットストリームを受信したとき、エントロピー復号モジュール１５０は、ビットストリームに対してパース演算を実行し得る。ビットストリームに対してパース演算を実行した結果として、エントロピー復号モジュール１５０は、ビットストリームからシンタックス要素を抽出し得る。パース演算を実行することの一部として、エントロピー復号モジュール１５０は、ビットストリーム中のエントロピー符号化されたシンタックス要素をエントロピー復号し得る。予測モジュール１５２、逆量子化モジュール１５４、逆変換モジュール１５６、再構成モジュール１５８、およびフィルタモジュール１５９は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成する再構成演算を実行し得る。
【０１２１】
[0128]上記で説明したように、ビットストリームは、一連のＮＡＬモジュールを備え得る。ビットストリームのＮＡＬモジュールは、シーケンスパラメータセットＮＡＬモジュール、ピクチャパラメータセットＮＡＬモジュール、ＳＥＩ  ＮＡＬモジュールなどを含み得る。ビットストリームに対してパース演算を実行することの一部として、エントロピー復号モジュール１５０は、シーケンスパラメータセットＮＡＬモジュールからのシーケンスパラメータセット、ピクチャパラメータセットＮＡＬモジュールからのピクチャパラメータセット、ＳＥＩ  ＮＡＬモジュールからのＳＥＩデータなどを抽出しエントロピー復号する、パース演算を実行し得る。
【０１２２】
[0129]加えて、ビットストリームのＮＡＬモジュールは、コード化スライスＮＡＬモジュールを含み得る。ビットストリームに対してパース演算を実行することの一部として、エントロピー復号モジュール１５０は、コード化スライスＮＡＬモジュールからコード化スライスを抽出しエントロピー復号する、パース演算を実行し得る。コード化スライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含み得る。スライスヘッダ中のシンタックス要素は、スライスを含んでいるピクチャに関連付けられたピクチャパラメータセットを識別するシンタックス要素を含み得る。エントロピー復号モジュール１５０は、コード化されたスライスヘッダ中のシンタックス要素に対して、ＣＡＢＡＣ復号演算などのエントロピー復号演算を実行して、スライスヘッダを再構成し得る。
【０１２３】
[0130]コード化スライスのＮＡＬモジュールからスライスデータを抽出することの一部として、エントロピー復号モジュール１５０は、スライスデータ中のコード化ＣＵからシンタックス要素を抽出するパース演算を実行し得る。抽出されたシンタックス要素は、変換係数ブロックに関連付けられたシンタックス要素を含み得る。エントロピー復号モジュール１５０は、次いで、シンタックス要素のうちのいくつかに対してＣＡＢＡＣ復号演算を実行し得る。
【０１２４】
[0131]エントロピー復号モジュール１５０が区分されていないＣＵに対してパース演算を実行した後、ビデオデコーダ３０は、区分されていないＣＵに対して再構成演算を実行し得る。区分されていないＣＵに対して再構成演算を実行するために、ビデオデコーダ３０は、ＣＵの各ＴＵに対して再構成演算を実行し得る。ＣＵの各ＴＵについて再構成演算を実行することによって、ビデオデコーダ３０は、ＣＵに関連付けられた残差ビデオブロックを再構成し得る。
【０１２５】
[0132]ＴＵに対して再構成演算を実行することの一部として、逆量子化モジュール１５４は、ＴＵに関連付けられた変換係数ブロックを逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）し得る。逆量子化モジュール１５４は、ＨＥＶＣ用に提案された、またはＨ．２６４復号規格によって定義された逆量子化プロセスと同様の方式で、変換係数ブロックを逆量子化し得る。逆量子化モジュール１５４は、量子化の程度を判断し、同様に、逆量子化モジュール１５４が適用するべき逆量子化の程度を判断するために、変換係数ブロックのＣＵのためにビデオエンコーダ２０によって計算される量子化パラメータＱＰを使用し得る。
【０１２６】
[0133]逆量子化モジュール１５４が変換係数ブロックを逆量子化した後、逆変換モジュール１５６は、変換係数ブロックに関連付けられたＴＵのための残差ビデオブロックを生成し得る。逆変換モジュール１５６は、ＴＵのための残差ビデオブロックを生成するために、逆変換を変換係数ブロックに適用し得る。たとえば、逆変換モジュール１５６は、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ）、逆回転変換、逆方向性変換、または別の逆変換を変換係数ブロックに適用し得る。
【０１２７】
[0134]いくつかの例では、逆変換モジュール１５６は、ビデオエンコーダ２０からのシグナリングに基づいて、変換係数ブロックに適用すべき逆変換を判断し得る。そのような例では、逆変換モジュール１５６は、変換係数ブロックに関連付けられたツリーブロックの４分木のルートノードにおいてシグナリングされた変換に基づいて、逆変換を判断し得る。他の例では、逆変換モジュール１５６は、ブロックサイズ、コーディングモードなど、１つまたは複数のコーディング特性から逆変換を推論し得る。いくつかの例では、逆変換モジュール１５６はカスケード逆変換を適用し得る。
【０１２８】
[0135]ＰＵがスキップモードで符号化されるか、またはＰＵの動き情報がマージモードを使用して符号化される場合、動き補償モジュール１６２は、ＰＵのためのマージ候補リストを生成し得る。動き補償モジュール１６２は、次いで、マージ候補リスト中の選択されたマージ候補を識別し得る。マージ候補リスト中の選択されたマージ候補を識別した後、動き補償モジュール１６２は、選択されたマージ候補によって示された動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。
【０１２９】
[0136]本開示の技法によれば、動き補償モジュール１６２は、ＰＵが単方向インター予測に制限されるかどうかを判断し得る。さらに、動き補償モジュール１６２は、ＰＵのためのマージ候補リストを生成し、マージ候補リスト中の選択されたマージ候補を判断し得る。ＰＵが単方向インター予測に制限される場合、動き補償モジュール１６２は、選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。そうではなく、ＰＵが単方向インター予測に制限されない場合、動き補償モジュール１６２は、選択されたマージ候補によって指定された動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、ＰＵのための予測ビデオブロックを生成し得る。
【０１３０】
[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]現在ＰＵが単方向インター予測に制限されると判断したことに応答して（３５４の「はい」）、ビデオコーダはアーティフィシャル単方向マージ候補を生成する（３５６）。アーティフィシャル単方向マージ候補を生成した後、ビデオコーダは、アーティフィシャル単方向マージ候補をマージ候補リストに含める（３５８）。アーティフィシャル単方向マージ候補をマージ候補リストに含めた後、ビデオコーダは、別のアーティフィシャルマージ候補を生成すべきかどうかを判断し（３５２）、そうである場合、別のアーティフィシャルマージ候補を生成する。
【０１７１】
[0178]ビデオコーダは、様々な方法でアーティフィシャル単方向マージ候補を生成し得る。たとえば、ビデオコーダは、すでに候補リストにある単方向マージ候補のペアを最初に取ることによって、アーティフィシャル単方向マージ候補を生成し得る。第１の単方向マージ候補と第２の単方向マージ候補は、それぞれ動きベクトルＭＶ１と動きベクトルＭＶ２とを指定し得る。この例では、ビデオコーダは、次いで、第１の単方向マージ候補によって指定された参照フレームと第２の単方向マージ候補によって指定された参照フレームとの間の時間差に従ってＭＶ２をスケーリングし得る。この例では、ビデオコーダは、ＭＶ２のスケーリングされたバージョンを指定するアーティフィシャル単方向マージ候補を生成し得る。たとえば、この例では、第１の単方向マージ候補に関連付けられた参照ピクチャが、現在ピクチャの１ピクチャ後に生じ得、第２の単方向マージ候補に関連付けられた参照ピクチャが、現在ピクチャの４ピクチャ後に生じ得る。この例では、ビデオコーダは、ＭＶ２の水平成分とＭＶ２の垂直成分の両方を４で除算し、ＭＶ１に対応する参照ピクチャインデックスをもつこのスケーリングされたＭＶ２をアーティフィシャル候補として使用し得る。同様のスケーリングが、ＭＶ２に基づいてＭＶ１について実行され得る。
【０１７２】
[0179]別の例では、ビデオコーダは、双方向マージ候補によって指定された動きベクトルのうちの１つを指定するアーティフィシャル単方向マージ候補を生成し得る。たとえば、双方向マージ候補は、リスト０動きベクトルとリスト１動きベクトルとを指定し得る。この例では、ビデオコーダは、リスト０動きベクトルを指定するがリスト１動きベクトルを指定しないアーティフィシャル単方向マージ候補を生成し得る。この例では、ビデオコーダは、リスト１動きベクトルを指定するがリスト０動きベクトルを指定しない別のアーティフィシャル単方向マージ候補を生成し得る。このようにして、ビデオコーダは、双方向マージ候補を２つの単方向マージ候補、リスト０動きベクトルからの１つとリスト１動きベクトルからの別の１つとに分割することによって、双方向空間または時間マージ候補から単方向アーティフィシャルマージ候補を生成し得る。ビデオエンコーダは、単方向マージ候補のいずれかまたは両方をマージ候補リストに含め得る。言い換えれば、ビデオコーダは、アーティフィシャル単方向マージ候補が双方向マージ候補によって指定された動きベクトルを指定するように、アーティフィシャル単方向マージ候補を生成し得る。
【０１７３】
[0180]ビデオコーダが、双方向マージ候補によって指定された動きベクトルに基づいてアーティフィシャル単方向マージ候補を生成する例では、ビデオコーダは、様々な順序に従ってアーティフィシャル単方向マージ候補をマージ候補リストに追加し得る。たとえば、ビデオコーダは、第１の双方向マージ候補のリスト０動きベクトルに基づくアーティフィシャル単方向マージ候補を追加し、次いで、第１の双方向マージ候補のリスト１動きベクトルに基づくアーティフィシャル単方向マージ候補を追加し、次いで、第２の双方向マージ候補のリスト０動きベクトルに基づくアーティフィシャル単方向マージ候補を追加し、次いで、第２の双方向マージ候補のリスト１動きベクトルに基づくアーティフィシャル単方向マージ候補を追加し得るなどである。
【０１７４】
[0181]現在ＰＵが単方向インター予測に制限されない場合（３５４の「いいえ」）、ビデオコーダは、アーティフィシャル双方向マージ候補を生成する（３６０）。上述のように、ビデオコーダは、ＰＵを特徴づけるサイズなど、様々なファクタ、パラメータなどに基づいて、現在ＰＵが単方向インター予測に制限されるかどうかを判断し得る。ビデオコーダは、様々な方法でアーティフィシャル双方向マージ候補を生成し得る。たとえば、ビデオコーダは、マージ候補リスト中の２つのマージ候補の組合せを選択し得る。この例では、ビデオコーダは、選択されたマージ候補のうちの第１のマージ候補がリスト０中の参照ピクチャを指定するかどうか、選択されたマージ候補のうちの第２のマージ候補がリスト１中の参照ピクチャを指定するかどうか、および指定された参照ピクチャが異なるピクチャ順序カウント（picture order count）を有するかどうかを判断し得る。これらの条件の各々が真である場合、ビデオコーダは、組合せ中の第１のマージ候補のリスト０動きベクトルと組合せ中の第２のマージ候補のリスト１動きベクトルとを指定するアーティフィシャル双方向マージ候補を生成し得る。マージ候補リストが単方向マージ候補と双方向マージ候補とを含み得る、図４の例など、いくつかの例では、プロセス３５０は行為３５４、３５６、および３５８を含まない。むしろ、ビデオコーダは、Ｂスライス中のＰＵのためのマージ候補リスト中のアーティフィシャル双方向マージ候補を生成し得る。
【０１７５】
[0182]アーティフィシャル双方向マージ候補を生成した後、ビデオコーダは、アーティフィシャル双方向マージ候補を現在ＰＵのためのマージ候補リストに含める（３６２）。ビデオコーダは、次いで、別のアーティフィシャルマージ候補を生成すべきかどうかを判断する（３５２）などである。
【０１７６】
[0183]図８は、ＡＭＶＰモードを使用してＰＵの動き情報を判断するための例示的な演算４００を示すフローチャートである。ビデオエンコーダ２０またはビデオデコーダ３０など、ビデオコーダは、演算４００を実行し、ＡＭＶＰモードを使用してＰＵの動き情報を判断し得る。
【０１７７】
[0184]ビデオコーダが演算４００を開始した後、ビデオコーダは、現在ＰＵのためのインター予測がリスト０に基づくかどうかを判断する（４０２）。現在ＰＵのためのインター予測がリスト０に基づく場合（４０２の「はい」）、ビデオコーダは、現在ＰＵのためのリスト０ＭＶ予測子候補リストを生成する（４０４）。リスト０ＭＶ予測子候補リストは、２つのリスト０ＭＶ予測子候補を含み得る。リスト０ＭＶ予測子候補の各々は、リスト０動きベクトルを指定し得る。
【０１７８】
[0185]リスト０ＭＶ予測子候補リストを生成した後、ビデオコーダは、リスト０ＭＶ予測子候補リスト中の選択されたリスト０ＭＶ予測子候補を判断する（４０６）。ビデオコーダは、リスト０ＭＶ予測子フラグ（「ｍｖｐ＿ｌ０＿ｆｌａｇ」）に基づいて、選択されたリスト０ＭＶ予測子候補を判断し得る。ビデオコーダは、次いで、現在ＰＵのためのリスト０ＭＶＤと、選択されたリスト０ＭＶ予測子候補によって指定されたリスト０動きベクトルとに基づいて、現在ＰＵのためのリスト０動きベクトルを判断する（４０８）。
【０１７９】
[0186]さらに、現在ＰＵのためのインター予測がリスト０に基づかないと判断した後（４０２の「いいえ」）または現在ＰＵのためのリスト０動きベクトルを判断した後（４０８）、ビデオコーダは、現在ＰＵのためのインター予測がリスト１に基づくかどうか、またはＰＵが双方向インター予測されるかどうかを判断する（４１０）。現在ＰＵのためのインター予測がリスト１に基づかず、現在ＰＵが双方向インター予測されない場合（４１０の「いいえ」）、ビデオコーダは、ＡＭＶＰモードを使用して現在ＰＵの動き情報を判断するのを終える。現在ＰＵのためのインター予測がリスト１に基づくか、または現在ＰＵが双方向にインター予測されると判断したことに応答して（４１０の「はい」）、ビデオコーダは、現在ＰＵのためのリスト１ＭＶ予測子候補リストを生成する（４１２）。リスト１ＭＶ予測子候補リストは、２つのリスト１ＭＶ予測子候補を含み得る。リスト０ＭＶ予測子候補の各々は、リスト１動きベクトルを指定し得る。
【０１８０】
[0187]リスト１ＭＶ予測子候補リストを生成した後、ビデオコーダは、リスト１ＭＶ予測子候補リスト中の選択されたリスト１ＭＶ予測子候補を判断する（４１４）。ビデオコーダは、リスト１ＭＶ予測子フラグ（「ｍｖｐ＿ｌ１＿ｆｌａｇ」）に基づいて、選択されたリスト１ＭＶ予測子候補を判断し得る。ビデオコーダは、次いで、現在ＰＵのためのリスト１ＭＶＤと、選択されたリスト１ＭＶ予測子候補によって指定されたリスト１動きベクトルとに基づいて、現在ＰＵのためのリスト１動きベクトルを判断する（４１６）。
【０１８１】
[0188]いくつかの例では、ビデオコーダは、双方向ＭＶ予測子候補をリスト０ＭＶ予測子候補リストとリスト１ＭＶ予測子候補リストとに追加し得ない。言い換えれば、ＭＶ予測子候補がリスト０動きベクトルとリスト１動きベクトルとを指定する場合、ビデオコーダは、ＭＶ予測子候補をリスト０ＭＶ予測子候補リストとリスト１ＭＶ予測子候補リストとから除外し得る。むしろ、ビデオコーダは、単方向ＭＶ予測子候補のみをリスト０ＭＶ予測子候補リストとリスト１ＭＶ予測子候補リストとに追加し得る。ビデオコーダは、各可能なおよび利用可能なＭＶ予測子候補が単方向であるかどうかを確認し、単方向ＭＶ予測子候補のみをＭＶ予測子候補リストに含めることによって、これを達成し得る。
【０１８２】
[0189]１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１８３】
[0190]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１８４】
[0191]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１８５】
[0192]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。開示された技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットについて本開示において説明したが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアまたはソフトウェアのユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々な構成要素、モジュール、およびユニットは、適切なソフトウェアおよび／またはファームウェアとともに、上述のように１つまたは複数のプロセッサを含む、コーデックハードウェアユニットにおいて組み合わされるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０１８６】
[0193]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
【図１】
2018142972.tif 000003
【図２】
2018142972.tif 000004
【図３】
2018142972.tif 000005
【図４】
2018142972.tif 000006
【図５】
2018142972.tif 000007
【図６】
2018142972.tif 000008
【図７】
2018142972.tif 000009
【図８】
2018142972.tif 000010
【手続補正書】
【提出日】平成30年5月16日(2018.5.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号するための方法であって、前記方法は、
Ｂスライス中のコーディングユニット（ＣＵ）が１つまたは複数の予測ユニット（ＰＵ）中に分割されると判断することと、
前記ＣＵの前記ＰＵのうちの少なくとも１つについて、
前記ＰＵを特徴づけるサイズに基づいて、前記ＰＵが単方向インター予測に制限されると判断することと、
ビットストリームから、前記ＰＵのためのインター予測モードインジケータをパースすること、前記ＰＵが単方向インター予測に制限される場合、前記インター予測モードインジケータは、前記ＰＵがリスト０に基づいて単方向インター予測されるのか、リスト１に基づいて単方向インター予測されるのかのいずれかであることを示すことができ、前記ＰＵが単方向インター予測に制限されない場合、前記インター予測モードインジケータは、リスト０に基づいて単方向インター予測されるのか、リスト１に基づいて予測された単方向インター予測されるのか、または双方向予測されるのかのいずれかであることを示すことができる、と
を備える、方法。
【請求項２】
前記ＰＵが単方向インター予測に制限される場合、前記インター予測モードインジケータは、単一ビットのみを使用して表され、前記ＰＵが単方向インター予測に制限されない場合、前記インター予測モードインジケータは、２ビットを使用して表される
請求項１に記載の方法。
【請求項３】
前記ＰＵが単方向インター予測に制限されると判断することは、前記ＰＵに関連付けられたビデオブロックの高さまたは幅がしきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することを備える、
請求項１に記載の方法。
【請求項４】
前記しきい値は、８である、
請求項３に記載の方法。
【請求項５】
前記ＰＵが単方向インター予測に制限されると判断することは、前記ＰＵに関連付けられたビデオブロックの第１の寸法がしきい値よりも小さく、前記ＰＵに関連付けられた前記ビデオブロックの第２の寸法が前記しきい値以下である場合、前記ＰＵが単方向インター予測に制限されると判断することを備える、
請求項１に記載の方法。
【請求項６】
前記ＰＵが単方向インター予測に制限されるかどうかに応じて異なるコンテキストを使用して前記インター予測モードインジケータをエントロピー復号することをさらに備える、
請求項１に記載の方法。
【請求項７】
ビデオデータを符号化するための方法であって、前記方法は、
１つまたは複数の予測ユニット（ＰＵ）中に、Ｂスライスにおけるコーディングユニット（ＣＵ）を分割することと、
前記ＣＵの前記ＰＵのうちの少なくとも１つについて、
前記ＰＵを特徴づけるサイズに基づいて、前記ＰＵが単方向インター予測に制限されると判断することと、
ビットストリームにおいて、前記ＰＵのためのインター予測モードインジケータをシグナリングすること、ここにおいて、前記ＰＵが単方向インター予測に制限される場合、前記インター予測モードインジケータは、前記ＰＵがリスト０に基づいて単方向インター予測されるのか、リスト１に基づいて単方向インター予測されるのかのいずれかであることを示すことができ、前記ＰＵが単方向インター予測に制限されない場合、前記インター予測モードインジケータは、リスト０に基づいて単方向インター予測されるのか、リスト１に基づいて予測された単方向インター予測されるのか、または双方向予測されるのかのいずれかであることを示すことができる、と
を備える、方法。
【請求項８】
前記ＰＵが単方向インター予測に制限される場合、前記インター予測モードインジケータは、単一ビットのみを使用して表され、前記ＰＵが単方向インター予測に制限されない場合、前記インター予測モードインジケータは、２ビットを使用して表される、
請求項７に記載の方法。
【請求項９】
前記ＰＵが単方向インター予測に制限されると判断することは、前記ＰＵに関連付けられたビデオブロックの高さまたは幅がしきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することを備える、
請求項７に記載の方法。
【請求項１０】
前記しきい値は、８である、
請求項９に記載の方法。
【請求項１１】
前記ＰＵが単方向インター予測に制限されると判断することは、前記ＰＵに関連付けられたビデオブロックの第１の寸法がしきい値よりも小さく、前記ＰＵに関連付けられた前記ビデオブロックの第２の寸法が前記しきい値以下である場合、前記ＰＵが単方向インター予測に制限されると判断することを備える、
請求項７に記載の方法。
【請求項１２】
前記ＰＵの予測ビデオブロックに少なくとも部分的に基づいて符号化ビデオデータを出力することをさらに備える、
請求項７に記載の方法。
【請求項１３】
前記ＰＵが単方向インター予測に制限かどうかに応じて異なるコンテキストを使用して前記インター予測モードインジケータをエントロピー符号化することをさらに備える、
請求項７に記載の方法。
【請求項１４】
ビデオデータを復号するように構成されたデバイスであって、前記デバイスは、
前記ビデオデータを記憶するように構成された記憶媒体と、
１つまたは複数のプロセッサと
を備え、前記１つまたは複数のプロセッサは、
Ｂスライス中のコーディングユニット（ＣＵ）が１つまたは複数の予測ユニット（ＰＵ）中に分割されると判断することと、
前記ＣＵの前記ＰＵのうちの少なくとも１つについて、
前記ＰＵを特徴づけるサイズに基づいて、前記ＰＵが単方向インター予測に制限されると判断することと、
ビットストリームから、前記ＰＵのためのインター予測モードインジケータをパースすること、前記ＰＵが単方向インター予測に制限される場合、前記インター予測モードインジケータは、前記ＰＵがリスト０に基づいて単方向インター予測されるのか、リスト１に基づいて単方向インター予測されるのかのいずれかであることを示すことができ、前記ＰＵが単方向インター予測に制限されない場合、前記インター予測モードインジケータは、リスト０に基づいて単方向インター予測されるのか、リスト１に基づいて予測された単方向インター予測されるのか、または双方向予測されるのかのいずれかであることを示すことができる、と
を行うように構成される、デバイス。
【請求項１５】
前記ＰＵが単方向インター予測に制限される場合、前記インター予測モードインジケータは、単一ビットのみを使用して表され、前記ＰＵが単方向インター予測に制限されない場合、前記インター予測モードインジケータは、２ビットを使用して表される
請求項１４に記載のデバイス。
【請求項１６】
前記１つまたは複数のプロセッサは、前記ＰＵに関連付けられたビデオブロックの高さまたは幅がしきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することを行うように構成される、
請求項１４に記載のデバイス。
【請求項１７】
前記しきい値は、８である、
請求項１６に記載のデバイス。
【請求項１８】
前記１つまたは複数のプロセッサは、前記ＰＵに関連付けられたビデオブロックの第１の寸法がしきい値よりも小さく、前記ＰＵに関連付けられた前記ビデオブロックの第２の寸法が前記しきい値以下である場合、前記ＰＵが単方向インター予測に制限されると判断することを行うように構成される、
請求項１４に記載のデバイス。
【請求項１９】
前記１つまたは複数のプロセッサは、前記ＰＵが単方向インター予測に制限かどうかに応じて異なるコンテキストを使用して前記インター予測モードインジケータをエントロピー復号することを行うようにさらに構成される、
請求項１４に記載のデバイス。
【請求項２０】
ビデオデータを符号化するように構成されたデバイスであって、前記デバイスは、
前記ビデオデータを記憶するように構成された記憶媒体と、
１つまたは複数のプロセッサと
を備え、前記１つまたは複数のプロセッサは、
１つまたは複数の予測ユニット（ＰＵ）中に、Ｂスライスにおけるコーディングユニット（ＣＵ）を分割することと、
前記ＣＵの前記ＰＵのうちの少なくとも１つについて、
前記ＰＵを特徴づけるサイズに基づいて、前記ＰＵが単方向インター予測に制限されると判断することと、
ビットストリームにおいて、前記ＰＵのためのインター予測モードインジケータをシグナリングすること、ここにおいて、前記ＰＵが単方向インター予測に制限される場合、前記インター予測モードインジケータは、前記ＰＵがリスト０に基づいて単方向インター予測されるのか、リスト１に基づいて単方向インター予測されるのかのいずれかであることを示すことができ、前記ＰＵが単方向インター予測に制限されない場合、前記インター予測モードインジケータは、リスト０に基づいて単方向インター予測されるのか、リスト１に基づいて予測された単方向インター予測されるのか、または双方向予測されるのかのいずれかであることを示すことができる、と
を行うように構成される、デバイス。
【請求項２１】
前記ＰＵが単方向インター予測に制限される場合、前記インター予測モードインジケータは、単一ビットのみを使用して表され、前記ＰＵが単方向インター予測に制限されない場合、前記インター予測モードインジケータは、２ビットを使用して表される、
請求項２０に記載のデバイス。
【請求項２２】
前記１つまたは複数のプロセッサは、前記ＰＵに関連付けられたビデオブロックの高さまたは幅がしきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することを行うように構成される、
請求項２０に記載のデバイス。
【請求項２３】
前記しきい値は、８である、
請求項２２に記載のデバイス。
【請求項２４】
前記１つまたは複数のプロセッサは、前記ＰＵに関連付けられたビデオブロックの第１の寸法がしきい値よりも小さく、前記ＰＵに関連付けられた前記ビデオブロックの第２の寸法が前記しきい値以下である場合、前記ＰＵが単方向インター予測に制限されると判断することを行うように構成される、
請求項２０に記載のデバイス。
【請求項２５】
前記１つまたは複数のプロセッサは、前記ＰＵが単方向インター予測に制限かどうかに応じて異なるコンテキストを使用して前記インター予測モードインジケータをエントロピー符号化することを行うようにさらに構成される、
請求項２０に記載のデバイス。
【請求項２６】
ビデオデータを復号するように構成されたデバイスであって、前記デバイスは、
Ｂスライス中のコーディングユニット（ＣＵ）が１つまたは複数の予測ユニット（ＰＵ）中に分割されると判断するための手段と、
前記ＣＵの前記ＰＵのうちの少なくとも１つについて、
前記ＰＵを特徴づけるサイズに基づいて、前記ＰＵが単方向インター予測に制限されると判断するするための手段と、
ビットストリームから、前記ＰＵのためのインター予測モードインジケータをパースするするための手段と、前記ＰＵが単方向インター予測に制限される場合、前記インター予測モードインジケータは、前記ＰＵがリスト０に基づいて単方向インター予測されるのか、リスト１に基づいて単方向インター予測されるのかのいずれかであることを示すことができ、前記ＰＵが単方向インター予測に制限されない場合、前記インター予測モードインジケータは、リスト０に基づいて単方向インター予測されるのか、リスト１に基づいて予測された単方向インター予測されるのか、または双方向予測されるのかのいずれかであることを示すことができる、と
を備える、デバイス。
【請求項２７】
ビデオデータを符号化するように構成されたデバイスであって、前記デバイスは、
１つまたは複数の予測ユニット（ＰＵ）中に、Ｂスライスにおけるコーディングユニット（ＣＵ）を分割するための手段と、
前記ＣＵの前記ＰＵのうちの少なくとも１つについて、
前記ＰＵを特徴づけるサイズに基づいて、前記ＰＵが単方向インター予測に制限されると判断するための手段と、
ビットストリームにおいて、前記ＰＵのためのインター予測モードインジケータをシグナリングするための手段、ここにおいて、前記ＰＵが単方向インター予測に制限される場合、前記インター予測モードインジケータは、前記ＰＵがリスト０に基づいて単方向インター予測されるのか、リスト１に基づいて単方向インター予測されるのかのいずれかであることを示すことができ、前記ＰＵが単方向インター予測に制限されない場合、前記インター予測モードインジケータは、リスト０に基づいて単方向インター予測されるのか、リスト１に基づいて予測された単方向インター予測されるのか、または双方向予測されるのかのいずれかであることを示すことができる、と
を備える、デバイス。
【請求項２８】
実行されると、１つまたは複数のプロセッサを、
Ｂスライス中のコーディングユニット（ＣＵ）が１つまたは複数の予測ユニット（ＰＵ）中に分割されると判断することと、
前記ＣＵの前記ＰＵのうちの少なくとも１つについて、
前記ＰＵを特徴づけるサイズに基づいて、前記ＰＵが単方向インター予測に制限されると判断するすることと、
ビットストリームから、前記ＰＵのためのインター予測モードインジケータをパースするすることと、前記ＰＵが単方向インター予測に制限される場合、前記インター予測モードインジケータは、前記ＰＵがリスト０に基づいて単方向インター予測されるのか、リスト１に基づいて単方向インター予測されるのかのいずれかであることを示すことができ、前記ＰＵが単方向インター予測に制限されない場合、前記インター予測モードインジケータは、リスト０に基づいて単方向インター予測されるのか、リスト１に基づいて予測された単方向インター予測されるのか、または双方向予測されるのかのいずれかであることを示すことができる、と
を行うように構成する命令を有する非一時的コンピュータ可読記憶媒体。
【請求項２９】
実行されると、１つまたは複数のプロセッサを、
１つまたは複数の予測ユニット（ＰＵ）中に、Ｂスライスにおけるコーディングユニット（ＣＵ）を分割することと、
前記ＣＵの前記ＰＵのうちの少なくとも１つについて、
前記ＰＵを特徴づけるサイズに基づいて、前記ＰＵが単方向インター予測に制限されると判断することと、
ビットストリームにおいて、前記ＰＵのためのインター予測モードインジケータをシグナリングすること、ここにおいて、前記ＰＵが単方向インター予測に制限される場合、前記インター予測モードインジケータは、前記ＰＵがリスト０に基づいて単方向インター予測されるのか、リスト１に基づいて単方向インター予測されるのかのいずれかであることを示すことができ、前記ＰＵが単方向インター予測に制限されない場合、前記インター予測モードインジケータは、リスト０に基づいて単方向インター予測されるのか、リスト１に基づいて予測された単方向インター予測されるのか、または双方向予測されるのかのいずれかであることを示すことができる、と
を行うように構成する命令を有する非一時的コンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１８６
【補正方法】変更
【補正の内容】
【０１８６】
[0193]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータをコーディングするための方法であって、前記方法は、
Ｂスライス中の予測ユニット（ＰＵ）が単方向インター予測に制限されるかどうかを判断することと、
前記ＰＵのためのマージ候補リストを生成することと、
前記マージ候補リスト中の選択されたマージ候補を判断することと、
前記ＰＵが単方向インター予測に制限される場合、前記選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、前記ＰＵのための予測ビデオブロックを生成することと、
前記ＰＵが単方向インター予測に制限されない場合、前記選択されたマージ候補によって指定された前記動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、前記ＰＵのための前記予測ビデオブロックを生成することと
を備える、方法。
［Ｃ２］
前記ＰＵが単方向予測に制限されるかどうかを判断することは、
前記ＰＵを特徴づけるサイズがしきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することと、
前記ＰＵを特徴づける前記サイズが前記しきい値を下回らない場合、前記ＰＵが単方向インター予測に制限されないと判断することと
を備える、［Ｃ１］に記載の方法。
［Ｃ３］
前記ＰＵを特徴づける前記サイズが前記しきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することは、前記ＰＵに関連付けられたビデオブロックの高さまたは幅が前記しきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することを備える、［Ｃ２］に記載の方法。
［Ｃ４］
前記ＰＵを特徴づける前記サイズが前記しきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することは、前記ＰＵに関連付けられたビデオブロックの第１の寸法がしきい値よりも小さく、前記ＰＵに関連付けられた前記ビデオブロックの第２の寸法が前記しきい値以下である場合、前記ＰＵが単方向インター予測に制限されると判断することを備える、［Ｃ２］に記載の方法。
［Ｃ５］
前記ＰＵを特徴づける前記サイズが前記しきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することは、前記ＰＵに関連付けられたビデオブロックの第１の寸法が第１のしきい値よりも小さく、前記ＰＵに関連付けられた前記ビデオブロックの第２の寸法が第２のしきい値よりも小さい場合、前記ＰＵが単方向インター予測に制限されると判断することを備える、［Ｃ２］に記載の方法。
［Ｃ６］
前記第１のしきい値が前記第２のしきい値と同じである、［Ｃ５］に記載の方法。
［Ｃ７］
前記ＰＵが単方向予測に制限されるかどうかを判断することは、
前記ＰＵに関連付けられたコーディングユニット（ＣＵ）を特徴づけるサイズが特定のサイズ以下であり、前記ＰＵを特徴づける前記サイズが前記しきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することであって、前記ＣＵを特徴づける前記サイズが、前記ＣＵに関連付けられたビデオブロックの高さまたは幅である、判断することと、
前記ＣＵを特徴づける前記サイズが前記特定のサイズに等しくなく、前記ＰＵを特徴づける前記サイズが前記しきい値を下回らない場合、前記ＰＵが単方向インター予測に制限されないと判断することと
を備える、［Ｃ２］に記載の方法。
［Ｃ８］
前記特定のサイズが８に等しく、前記しきい値が８に等しい、［Ｃ７］に記載の方法。
［Ｃ９］
前記マージ候補リストを生成した後、前記マージ候補リスト中の双方向マージ候補を単方向マージ候補に変換することと、
前記双方向マージ候補の代わりに前記単方向マージ候補を前記マージ候補リストに含めることと
をさらに備える、［Ｃ１］に記載の方法。
［Ｃ１０］
前記双方向マージ候補を前記単方向マージ候補に変換することは、前記単方向マージ候補が特定の参照ピクチャリスト中の参照ピクチャに関連付けられるように、前記双方向マージ候補を前記単方向マージ候補に変換することを備え、双方向マージ候補が単方向マージ候補に変換されるときはいつでも、前記単方向マージ候補が、前記特定の参照ピクチャリスト中の参照ピクチャに関連付けられる、［Ｃ９］に記載の方法。
［Ｃ１１］
前記マージ候補リストを生成することは、前記ＰＵが単方向インター予測に制限される場合、前記マージ候補リストが単方向マージ候補のみを含むように、前記マージ候補リストを生成することを備える、［Ｃ１］に記載の方法。
［Ｃ１２］
前記マージ候補リストが単方向マージ候補のみを含むように、前記マージ候補リストを生成することが、
双方向マージ候補を１つまたは複数の単方向マージ候補に変換することと、
前記単方向マージ候補のいずれかまたは両方を前記マージ候補リストに含めることと
を備える、［Ｃ１１］に記載の方法。
［Ｃ１３］
前記双方向マージ候補を前記１つまたは複数の単方向マージ候補に変換する前に、重複マージ候補をプルーニングすることをさらに備える、［Ｃ１２］に記載の方法。
［Ｃ１４］
前記双方向マージ候補を前記単方向マージ候補に変換した後に、重複マージ候補をプルーニングすることをさらに備える、［Ｃ１２］に記載の方法。
［Ｃ１５］
前記双方向マージ候補を１つまたは複数の単方向マージ候補に変換することは、前記双方向マージ候補を単一の単方向マージ候補に変換することを備え、前記単一の単方向マージ候補がリスト０中の参照ピクチャまたはリスト１中の参照ピクチャを示す、［Ｃ１２］に記載の方法。
［Ｃ１６］
前記マージ候補リストが単方向マージ候補のみを含むように、前記マージ候補リストを生成することが、
アーティフィシャル単方向マージ候補を生成することと、
前記アーティフィシャル単方向マージ候補を前記マージ候補リストに含めることと
を備える、［Ｃ１１］に記載の方法。
［Ｃ１７］
前記マージ候補リストが第１の単方向マージ候補と第２の単方向マージ候補とを含み、前記第１の単方向マージ候補が第１の動きベクトルを指定し、前記第２の単方向マージ候補が第２の動きベクトルを指定し、
前記アーティフィシャル単方向マージ候補を生成することは、前記第１の単方向マージ候補によって指定された参照ピクチャと前記第２の単方向マージ候補によって指定された参照ピクチャとの間の時間差に基づいて、前記第１の動きベクトルをスケーリングすることを備える、
［Ｃ１６］に記載の方法。
［Ｃ１８］
前記アーティフィシャル単方向マージ候補を生成することは、前記アーティフィシャル単方向マージ候補が前記双方向マージ候補によって指定された動きベクトルを指定するように、前記アーティフィシャル単方向マージ候補を生成することを備える、［Ｃ１６］に記載の方法。
［Ｃ１９］
前記選択されたマージ候補が双方向マージ候補である、［Ｃ１］に記載の方法。
［Ｃ２０］
前記選択されたマージ候補を判断することが、
前記選択されたマージ候補の前記マージ候補リスト中の位置を示すシンタックス要素を、ビットストリームからパースすることと、
前記選択されたマージ候補の前記マージ候補リスト中の前記位置にある前記選択されたマージ候補を判断することと
を備える、［Ｃ１］に記載の方法。
［Ｃ２１］
前記方法が、前記選択されたマージ候補の前記マージ候補リスト中の位置を示す符号化シンタックス要素を含むビットストリームを生成することを備える、［Ｃ１］に記載の方法。
［Ｃ２２］
前記方法がモバイルコンピューティングデバイス上で実行される、［Ｃ１］に記載の方法。
［Ｃ２３］
Ｂスライス中の予測ユニット（ＰＵ）が単方向インター予測に制限されるかどうかを判断することと、
前記ＰＵのためのマージ候補リストを生成することと、
前記マージ候補リスト中の選択されたマージ候補を判断することと、
前記ＰＵが単方向インター予測に制限される場合、前記選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、前記ＰＵのための予測ビデオブロックを生成することと、
前記ＰＵが単方向インター予測に制限されない場合、前記選択されたマージ候補によって指定された前記動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、前記ＰＵのための前記予測ビデオブロックを生成することと
を行うように構成された１つまたは複数のプロセッサを備えるビデオコーディングデバイス。
［Ｃ２４］
前記１つまたは複数のプロセッサは、
前記ＰＵを特徴づけるサイズがしきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することと、
前記ＰＵを特徴づける前記サイズが前記しきい値を下回らない場合、前記ＰＵが単方向インター予測に制限されないと判断することと
を行うように構成された、［Ｃ２３］に記載のビデオコーディングデバイス。
［Ｃ２５］
前記１つまたは複数のプロセッサは、前記ＰＵに関連付けられたビデオブロックの高さまたは幅が前記しきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断するように構成された、［Ｃ２４］に記載のビデオコーディングデバイス。
［Ｃ２６］
前記１つまたは複数のプロセッサは、前記ＰＵに関連付けられたビデオブロックの第１の寸法がしきい値よりも小さく、前記ＰＵに関連付けられた前記ビデオブロックの第２の寸法が前記しきい値以下である場合、前記ＰＵが単方向インター予測に制限されると判断するように構成された、［Ｃ２４］に記載のビデオコーディングデバイス。
［Ｃ２７］
前記１つまたは複数のプロセッサは、前記ＰＵに関連付けられたビデオブロックの第１の寸法が第１のしきい値よりも小さく、前記ＰＵに関連付けられた前記ビデオブロックの第２の寸法が第２のしきい値よりも小さい場合、前記ＰＵが単方向インター予測に制限されると判断するように構成された、［Ｃ２４］に記載のビデオコーディングデバイス。
［Ｃ２８］
前記第１のしきい値が前記第２のしきい値と同じである、［Ｃ２７］に記載のビデオコーディングデバイス。
［Ｃ２９］
前記１つまたは複数のプロセッサは、
前記ＰＵに関連付けられたコーディングユニット（ＣＵ）を特徴づけるサイズが特定のサイズ以下であり、前記ＰＵを特徴づける前記サイズが前記しきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することと、
前記ＣＵを特徴づける前記サイズが前記特定のサイズに等しくなく、前記ＰＵを特徴づける前記サイズが前記しきい値を下回らない場合、前記ＰＵが単方向インター予測に制限されないと判断することと
を行うように構成された、［Ｃ２４］に記載のビデオコーディングデバイス。
［Ｃ３０］
前記特定のサイズが８に等しく、前記しきい値が８に等しい、［Ｃ２９］に記載のビデオコーディングデバイス。
［Ｃ３１］
前記１つまたは複数のプロセッサが、
前記マージ候補リストを生成した後、前記マージ候補リスト中の双方向マージ候補を単方向マージ候補に変換することと、
前記双方向マージ候補の代わりに前記単方向マージ候補を前記マージ候補リストに含めることと
を行うようにさらに構成された、［Ｃ２３］に記載のビデオコーディングデバイス。
［Ｃ３２］
前記１つまたは複数のプロセッサは、前記単方向マージ候補が特定の参照ピクチャリスト中の参照ピクチャに関連付けられるように、前記双方向マージ候補を前記単方向マージ候補に変換するように構成され、前記１つまたは複数のプロセッサが双方向マージ候補を単方向マージ候補に変換するときはいつでも、前記単方向マージ候補が前記特定の参照ピクチャリスト中の参照ピクチャに関連付けられる、［Ｃ３１］に記載のビデオコーディングデバイス。
［Ｃ３３］
前記１つまたは複数のプロセッサは、前記ＰＵが単方向インター予測に制限される場合、前記マージ候補リストが単方向マージ候補のみを含むように、前記マージ候補リストを生成するように構成された、［Ｃ２３］に記載のビデオコーディングデバイス。
［Ｃ３４］
前記マージ候補リストが単方向マージ候補のみを含むように、前記マージ候補リストを生成するために、前記１つまたは複数のプロセッサは、
双方向マージ候補を１つまたは複数の単方向マージ候補に変換することと、
前記単方向マージ候補のいずれかまたは両方を前記マージ候補リストに含めることと
を行うように構成された、［Ｃ３３］に記載のビデオコーディングデバイス。
［Ｃ３５］
前記１つまたは複数のプロセッサが、前記双方向マージ候補を前記１つまたは複数の単方向マージ候補に変換する前に、重複マージ候補をプルーニングするように構成された、［Ｃ３４］に記載のビデオコーディングデバイス。
［Ｃ３６］
前記１つまたは複数のプロセッサが、前記双方向マージ候補を前記１つまたは複数の単方向マージ候補に変換した後に、重複マージ候補をプルーニングするように構成された、［Ｃ３４］に記載のビデオコーディングデバイス。
［Ｃ３７］
前記１つまたは複数のプロセッサが、前記双方向マージ候補を単一の単方向マージ候補に変換するように構成され、前記単一の単方向マージ候補がリスト０中の参照ピクチャまたはリスト１中の参照ピクチャに関連付けられた、［Ｃ３４］に記載のビデオコーディングデバイス。
［Ｃ３８］
前記マージ候補リストが単方向マージ候補のみを含むように、前記マージ候補リストを生成するために、前記１つまたは複数のプロセッサは、
アーティフィシャル単方向マージ候補を生成することと、
前記アーティフィシャル単方向マージ候補を前記マージ候補リストに含めることと
を行うように構成された、［Ｃ３３］に記載のビデオコーディングデバイス。
［Ｃ３９］
前記マージ候補リストが第１の単方向マージ候補と第２の単方向マージ候補とを含み、前記第１の単方向マージ候補が第１の動きベクトルを指定し、前記第２の単方向マージ候補が第２の動きベクトルを指定し、
前記アーティフィシャル単方向マージ候補を生成するために、前記１つまたは複数のプロセッサが、前記第１の単方向マージ候補によって指定された参照ピクチャと前記第２の単方向マージ候補によって指定された参照ピクチャとの間の時間差に基づいて、前記第１の動きベクトルをスケーリングするように構成された、
［Ｃ３８］に記載のビデオコーディングデバイス。
［Ｃ４０］
前記１つまたは複数のプロセッサは、前記アーティフィシャル単方向マージ候補が双方向マージ候補によって指定された動きベクトルを指定するように、前記アーティフィシャル単方向マージ候補を生成するように構成された、［Ｃ３８］に記載のビデオコーディングデバイス。
［Ｃ４１］
前記選択されたマージ候補が双方向マージ候補である、［Ｃ２３］に記載のビデオコーディングデバイス。
［Ｃ４２］
前記ビデオコーディングデバイスがビデオデータを復号し、前記１つまたは複数のプロセッサが、前記選択されたマージ候補の前記マージ候補リスト中の位置を示すシンタックス要素に基づいて、前記選択されたマージ候補を判断するように構成された、［Ｃ２３］に記載のビデオコーディングデバイス。
［Ｃ４３］
前記ビデオコーディングデバイスがビデオデータを符号化し、前記１つまたは複数のプロセッサが、前記選択されたマージ候補の前記マージ候補リスト中の位置を示すシンタックス要素を出力するように構成された、［Ｃ２３］に記載のビデオコーディングデバイス。
［Ｃ４４］
前記ビデオコーディングデバイスがモバイルコンピューティングデバイスである、［Ｃ２３］に記載のビデオコーディングデバイス。
［Ｃ４５］
Ｂスライス中の予測ユニット（ＰＵ）が単方向インター予測に制限されるかどうかを判断するための手段と、
前記ＰＵのためのマージ候補リストを生成するための手段と、
前記マージ候補リスト中の選択されたマージ候補を判断するための手段と、
前記ＰＵが単方向インター予測に制限される場合、前記選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、前記ＰＵのための予測ビデオブロックを生成するための手段と、
前記ＰＵが単方向インター予測に制限されない場合、前記選択されたマージ候補によって指定された前記動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、前記ＰＵのための前記予測ビデオブロックを生成ための手段と
を備える、ビデオコーディングデバイス。
［Ｃ４６］
前記ＰＵが単方向予測に制限されるかどうかを判断するための前記手段は、
前記ＰＵを特徴づけるサイズがしきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断するための手段と、
前記ＰＵを特徴づける前記サイズが前記しきい値を下回らない場合、前記ＰＵが単方向インター予測に制限されないと判断するための手段と
を備える、［Ｃ４５］に記載のビデオコーディングデバイス。
［Ｃ４７］
前記選択されたマージ候補が双方向マージ候補である、［Ｃ４５］に記載のビデオコーディングデバイス。
［Ｃ４８］
実行されると、１つまたは複数のプロセッサを、
Ｂスライス中の予測ユニット（ＰＵ）が単方向インター予測に制限されるかどうかを判断することと、
前記ＰＵのためのマージ候補リストを生成することと、
前記マージ候補リスト中の選択されたマージ候補を判断することと、
前記ＰＵが単方向インター予測に制限される場合、前記選択されたマージ候補によって指定された動き情報に関連付けられた、１つ以下の参照ブロックに基づいて、前記ＰＵのための予測ビデオブロックを生成することと、
前記ＰＵが単方向インター予測に制限されない場合、前記選択されたマージ候補によって指定された前記動き情報に関連付けられた、１つまたは複数の参照ブロックに基づいて、前記ＰＵのための前記予測ビデオブロックを生成することと
を行うように構成する命令を記憶する１つまたは複数のコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
［Ｃ４９］
前記命令は、前記１つまたは複数のプロセッサを、
前記ＰＵが単方向予測に制限されるかどうかを判断することと、
前記ＰＵを特徴づけるサイズがしきい値を下回る場合、前記ＰＵが単方向インター予測に制限されると判断することと、
前記ＰＵを特徴づける前記サイズが前記しきい値を下回らない場合、前記ＰＵが単方向インター予測に制限されないと判断することと
を行うように構成する、［Ｃ４８］に記載のコンピュータプログラム製品。
［Ｃ５０］
前記選択されたマージ候補が双方向マージ候補である、［Ｃ４８］に記載のコンピュータプログラム製品。
【外国語明細書】
2018142972000001.pdf