(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-19
(54)【発明の名称】ビデオコーディングのための複数仮説予測のために動き情報を適応的にコーディングすること
(51)【国際特許分類】
H04N 19/105 20140101AFI20240312BHJP
H04N 19/159 20140101ALI20240312BHJP
【FI】
H04N19/105
H04N19/159
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023558204
(86)(22)【出願日】2022-03-23
(85)【翻訳文提出日】2023-09-21
(86)【国際出願番号】 US2022071289
(87)【国際公開番号】W WO2022213026
(87)【国際公開日】2022-10-06
(32)【優先日】2021-03-29
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-03-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】ファン、ハン
(72)【発明者】
【氏名】セレジン、バディム
(72)【発明者】
【氏名】カルチェビチ、マルタ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159TA25
5C159TB08
5C159TC27
(57)【要約】
ビデオデータを復号するための例示的なデバイスが、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、追加の予測仮説を表す第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングすることと、ここにおいて、動き情報をコーディングするために、1つまたは複数のプロセッサは、単予測動き情報のそれぞれのセットを表すマージ候補を含むマージ候補リストを形成するように構成される、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックおよび第2の予測ブロックから複数仮説予測ブロックを形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを行うように構成された1つまたは複数のプロセッサを含む。
【特許請求の範囲】
【請求項1】
ビデオデータを復号する方法であって、前記方法は、
ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、
第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、前記第2の予測ブロックは、前記現在ブロックについての追加の予測仮説を表し、ここにおいて、前記マージモードシンタックス要素は、マージモードを使用して前記第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、
前記マージモードシンタックス要素に従って前記第2の予測ブロックについての動き情報をコーディングすることと、前記第2の予測ブロックについての前記動き情報をコーディングすることは、前記マージモードシンタックス要素が、マージモードを使用して前記第2の予測ブロックについての前記動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成することを含み、前記マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、
前記動き情報を使用してビデオデータの前記現在ブロックについての前記第2の予測ブロックを生成することと、
前記第1の予測ブロックと前記第2の予測ブロックとの組合せとして、前記現在ブロックについての複数仮説予測ブロックを形成することと、
前記複数仮説予測ブロックを使用して前記現在ブロックを復号することと
を備える、方法。
【請求項2】
前記マージモードシンタックス要素が、マージモードが使用されることを示すとき、前記第2の予測ブロックについての前記動き情報をコーディングすることは、前記第2の予測ブロックについての前記動き情報をそれから継承すべきマージ候補を示すマージインデックスをコーディングすることを備える、請求項1に記載の方法。
【請求項3】
前記マージモードシンタックス要素が、マージモードが使用されないことを示すとき、前記第2の予測ブロックについての前記動き情報をコーディングすることは、前記第2の予測ブロックについての、参照ピクチャリスト識別子と、参照ピクチャインデックスと、動きベクトル予測子インデックスと、動きベクトル差分とをコーディングすることを備える、請求項1に記載の方法。
【請求項4】
マージ候補リストを形成することは、
第1の動き情報および第2の動き情報を使用して前記第2の予測ブロックに対する隣接ブロックが双予測されると決定することと、
前記隣接ブロックから少なくとも1つの単予測マージ候補を形成することと、前記少なくとも1つの単予測マージ候補を形成することは、前記少なくとも1つの単予測マージ候補について前記第1の動き情報または前記第2の動き情報のうちの1つのみを選択することを含む、
を備える、請求項1に記載の方法。
【請求項5】
前記マージ候補リストを形成することは、
前記第1の動き情報を使用して第1の単予測マージ候補を形成することと、
前記第2の動き情報を使用して第2の単予測マージ候補を形成することと
を備える、請求項4に記載の方法。
【請求項6】
前記第2の予測ブロックは、複数の追加の予測仮説のうちの1つの追加の予測仮説を備え、前記方法は、同じ前記マージ候補リストを使用して前記追加の予測仮説の各々についての動き情報をコーディングすることをさらに備える、請求項1に記載の方法。
【請求項7】
前記マージ候補リストを形成することは、幾何学的区分モード(GPM)のマージ候補リスト構築プロセスに従って前記マージ候補リストを形成することを備える、請求項1に記載の方法。
【請求項8】
前記第2の予測ブロックは、複数の追加の予測仮説のうちの1つの追加の予測仮説を備え、ここにおいて、前記第2の予測ブロックについての前記動き情報をコーディングすることは、
2つ以上のマージ候補を含むマージ候補リストを形成することと、
前記第2の予測ブロックについての前記動き情報について前記マージ候補リストから前記マージ候補のうちの1つを選択することと、
前記マージ候補のうちの前記1つを使用して前記第2の予測ブロックについての前記動き情報をコーディングすることと
を備え、
前記方法は、
縮小されたマージ候補リストを形成するために、前記マージ候補リストから前記マージ候補のうちの前記1つを削除することと、
前記縮小されたマージ候補リストにおける残りのマージ候補のうちの1つを使用して第3の予測候補についての動き情報をコーディングすることと
をさらに備える、請求項1に記載の方法。
【請求項9】
前記第2の予測ブロックに対する第1のマージ候補インデックスをコーディングすることと、前記マージ候補リストは、N個のマージ候補を有し、Nは、1よりも大きい正の整数であり、前記第1のマージ候補インデックスは、Nの最大の可能な切り捨てられたバイナリ値を有する、
前記第3の予測候補に対する第2のマージ候補インデックスをコーディングすることと、前記縮小されたマージ候補リストは、N-1個のマージ候補を有し、前記第2のマージ候補インデックスは、N-1の最大の可能な切り捨てられたバイナリ値を有する、
をさらに備える、請求項8に記載の方法。
【請求項10】
前記マージモードシンタックス要素は、前記第1の予測ブロックの前記ベースインター予測モードについてのマージモードシンタックス要素を備える、請求項1に記載の方法。
【請求項11】
前記マージモードシンタックス要素は、第2のマージモードシンタックス要素を備え、前記方法は、前記第1の予測ブロックの前記ベースインター予測モードについての第1のマージモードシンタックス要素をコーディングすることをさらに備え、前記第2のマージモードシンタックス要素は、前記第1のマージモードシンタックス要素とは異なる、請求項1に記載の方法。
【請求項12】
前記第1のマージモードシンタックス要素をコーディングすることは、第1のコンテキスト適応型バイナリ算術コーディング(CABAC)コンテキストを使用して前記第1のマージモードシンタックス要素をコーディングすることを備え、前記第2のマージモードシンタックス要素をコーディングすることは、前記第1のCABACコンテキストを使用して前記第1のマージモードシンタックス要素をコーディングしたことに応答して、前記第1のCABACコンテキストを使用して前記第2のマージモードシンタックス要素をコーディングすることを備える、請求項11に記載の方法。
【請求項13】
前記第1のCABACコンテキストは、マージモードのために使用されるCABACコンテキストである、請求項12に記載の方法。
【請求項14】
前記第1のCABACコンテキストは、マージモードのために使用される第2のCABACコンテキストとは異なる、請求項12に記載の方法。
【請求項15】
前記第1のマージモードシンタックス要素をコーディングすることは、第1のコンテキスト適応型バイナリ算術コーディング(CABAC)コンテキストを使用して前記第1のマージモードシンタックス要素をコーディングすることを備え、前記第2のマージモードシンタックス要素をコーディングすることは、第2のCABACコンテキストを使用して前記第2のマージモードシンタックス要素をコーディングすることを備える、請求項11に記載の方法。
【請求項16】
前記第2のCABACコンテキストは、前記第1のCABACコンテキストとは異なる、請求項15に記載の方法。
【請求項17】
高度動きベクトル予測(AMVP)モードを使用して第3の予測ブロックの動き情報をコーディングすることと、前記第3の予測ブロックの前記動き情報をコーディングすることは、1/2ルーマサンプル解像度を有する動きベクトル差分(MVD)値をコーディングすることを含み、前記第3の予測ブロックは、前記現在ブロックに対する隣接ブロックのベースインター予測ブロックである、
前記第2の予測ブロックの動き情報候補として前記第3の予測ブロックを識別する候補インデックスをコーディングすることと
をさらに備え、
前記第2の予測ブロックを生成することは、6タップ補間フィルタを使用して前記第2の予測ブロックの参照ブロックの半ピクセルサンプルを補間することを備える、請求項1に記載の方法。
【請求項18】
前記第1の予測ブロックに局所照明補償(LIC)が適用されたかどうかに応じて、前記第2の予測ブロックにLICを適用すべきかどうかを決定することをさらに備える、請求項1に記載の方法。
【請求項19】
前記ベースインター予測モードは、単方向インター予測または双方向インター予測のうちの一方を備える、請求項18に記載の方法。
【請求項20】
前記第1の予測ブロックにLICを適用することをさらに備え、ここにおいて、前記第2の予測ブロックにLICを適用すべきかどうかを決定することは、前記第1の予測ブロックにLICを適用したことに応答して、前記第2の予測ブロックにLICを適用すべきと決定することを備える、請求項18に記載の方法。
【請求項21】
前記第1の予測ブロックにLICを適用することと、
高度動きベクトル予測(AMVP)モードを使用して前記第2の予測ブロックについての動き情報をコーディングすることと
をさらに備え、
ここにおいて、前記第2の予測ブロックにLICを適用すべきかどうかを決定することは、前記第1の予測ブロックにLICを適用し、AMVPを使用して前記第2の予測ブロックについての前記動き情報をコーディングすることに応答して、前記第2の予測ブロックにLICを適用すべきと決定することを備える、請求項18に記載の方法。
【請求項22】
前記第1の予測ブロックにLICを適用することと、
マージモードを使用して前記第2の予測ブロックについての動き情報をコーディングすることと
をさらに備え、
ここにおいて、前記第2の予測ブロックにLICを適用すべきかどうかを決定することは、
前記第2の予測ブロックのマージ候補についてのLICフラグをコーディングすることと、
前記第2の予測ブロックの前記マージ候補についての前記LICフラグの値に従って、前記第2の予測ブロックにLICを適用すべきかどうかを決定することと
を備える、請求項18に記載の方法。
【請求項23】
前記現在ブロックを復号することより前に、前記現在ブロックを符号化することをさらに備える、請求項1に記載の方法。
【請求項24】
ビデオデータを復号するためのデバイスであって、前記デバイスが、
ビデオデータを記憶するように構成されたメモリと、
回路中に実装された1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサは、
ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、
第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、前記第2の予測ブロックは、前記現在ブロックについての追加の予測仮説を表し、ここにおいて、前記マージモードシンタックス要素は、マージモードを使用して前記第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、
前記マージモードシンタックス要素に従って前記第2の予測ブロックについての動き情報をコーディングすることと、ここにおいて、前記動き情報をコーディングするために、前記1つまたは複数のプロセッサは、前記マージモードシンタックス要素が、マージモードを使用して前記第2の予測ブロックについての前記動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成するように構成され、前記マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、
前記動き情報を使用してビデオデータの前記現在ブロックについての前記第2の予測ブロックを生成することと、
前記第1の予測ブロックと前記第2の予測ブロックとの組合せとして、前記現在ブロックについての複数仮説予測ブロックを形成することと、
前記複数仮説予測ブロックを使用して前記現在ブロックを復号することと
を行うように構成された、デバイス。
【請求項25】
前記マージ候補リストを形成するために、前記1つまたは複数のプロセッサが、
第1の動き情報および第2の動き情報を使用して前記第2の予測ブロックに対する隣接ブロックが双予測されると決定することと、
前記隣接ブロックから少なくとも1つの単予測マージ候補を形成することと、ここにおいて、前記1つまたは複数のプロセッサは、前記少なくとも1つの単予測マージ候補について前記第1の動き情報または前記第2の動き情報のうちの1つのみを選択するように構成される、
を行うように構成された、請求項24に記載のデバイス。
【請求項26】
前記マージ候補リストを形成するために、前記1つまたは複数のプロセッサが、
前記第1の動き情報を使用して第1の単予測マージ候補を形成することと、
前記第2の動き情報を使用して第2の単予測マージ候補を形成することと
を行うように構成された、請求項25に記載のデバイス。
【請求項27】
前記1つまたは複数のプロセッサが、
高度動きベクトル予測(AMVP)モードを使用して第3の予測ブロックの動き情報をコーディングすることと、ここにおいて、前記第3の予測ブロックの前記動き情報をコーディングするために、前記1つまたは複数のプロセッサが、1/2ルーマサンプル解像度を有する動きベクトル差分(MVD)値をコーディングするように構成され、前記第3の予測ブロックは、前記現在ブロックに対する隣接ブロックのベースインター予測ブロックである、
前記第2の予測ブロックの動き情報候補として前記第3の予測ブロックを識別する候補インデックスをコーディングすることと
を行うようにさらに構成され、
ここにおいて、前記第2の予測ブロックを生成するために、前記1つまたは複数のプロセッサが、6タップ補間フィルタを使用して前記第2の予測ブロックの参照ブロックの半ピクセルサンプルを補間するように構成された、請求項24に記載のデバイス。
【請求項28】
前記1つまたは複数のプロセッサが、前記第1の予測ブロックに局所照明補償(LIC)が適用されたかどうかに応じて、前記第2の予測ブロックにLICを適用すべきかどうかを決定するようにさらに構成された、請求項24に記載のデバイス。
【請求項29】
前記1つまたは複数のプロセッサが、前記現在ブロックを復号することより前に、前記現在ブロックを符号化するようにさらに構成された、請求項24に記載のデバイス。
【請求項30】
前記復号されたビデオデータを表示するように構成されたディスプレイをさらに備える、請求項24に記載のデバイス。
【請求項31】
前記デバイスが、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、請求項24に記載のデバイス。
【請求項32】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたとき、プロセッサに、
ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、
第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、前記第2の予測ブロックは、前記現在ブロックについての追加の予測仮説を表し、ここにおいて、前記マージモードシンタックス要素は、マージモードを使用して前記第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、
前記マージモードシンタックス要素に従って前記第2の予測ブロックについての動き情報をコーディングすることと、前記第2の予測ブロックについての前記動き情報をコーディングすることは、前記マージモードシンタックス要素が、マージモードを使用して前記第2の予測ブロックについての前記動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成することを含み、前記マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、
前記動き情報を使用してビデオデータの前記現在ブロックについての前記第2の予測ブロックを生成することと、
前記第1の予測ブロックと前記第2の予測ブロックとの組合せとして、前記現在ブロックについての複数仮説予測ブロックを形成することと、
前記複数仮説予測ブロックを使用して前記現在ブロックを復号することと
を行わせる、コンピュータ可読記憶媒体。
【請求項33】
前記プロセッサに、前記マージ候補リストを形成することを行わせる前記命令は、前記プロセッサに、
第1の動き情報および第2の動き情報を使用して前記第2の予測ブロックに対する隣接ブロックが双予測されると決定することと、
前記隣接ブロックから少なくとも1つの単予測マージ候補を形成することと、前記少なくとも1つの単予測マージ候補を形成することは、前記プロセッサに、前記少なくとも1つの単予測マージ候補について前記第1の動き情報または前記第2の動き情報のうちの1つのみを選択することを行わせる命令を含む、
を行わせる命令を備える、請求項32に記載のコンピュータ可読記憶媒体。
【請求項34】
前記プロセッサに、前記マージ候補リストを形成することを行わせる前記命令は、前記プロセッサに、
前記第1の動き情報を使用して第1の単予測マージ候補を形成することと、
前記第2の動き情報を使用して第2の単予測マージ候補を形成することと
を行わせる命令を備える、請求項33に記載のコンピュータ可読記憶媒体。
【請求項35】
前記プロセッサに、
高度動きベクトル予測(AMVP)モードを使用して第3の予測ブロックの動き情報をコーディングすることと、ここにおいて、前記プロセッサに、前記第3の予測ブロックの前記動き情報をコーディングすることを行わせる命令は、前記プロセッサに、1/2ルーマサンプル解像度を有する動きベクトル差分(MVD)値をコーディングすることを行わせる命令を備え、前記第3の予測ブロックは、前記現在ブロックに対する隣接ブロックのベースインター予測ブロックである、
前記第2の予測ブロックの動き情報候補として前記第3の予測ブロックを識別する候補インデックスをコーディングすることと
を行わせる命令をさらに備え、
ここにおいて、前記プロセッサに、前記第2の予測ブロックを生成することを行わせる命令は、前記プロセッサに、6タップ補間フィルタを使用して前記第2の予測ブロックの参照ブロックの半ピクセルサンプルを補間することを行わせる命令を備える、請求項32に記載のコンピュータ可読記憶媒体。
【請求項36】
前記プロセッサに、前記第1の予測ブロックに局所照明補償(LIC)が適用されたかどうかに応じて、前記第2の予測ブロックにLICを適用すべきかどうかを決定することを行わせる命令をさらに備える、請求項32に記載のコンピュータ可読記憶媒体。
【請求項37】
前記プロセッサに、前記現在ブロックを復号することより前に、前記現在ブロックを符号化することを行わせる命令をさらに備える、請求項32に記載のコンピュータ可読記憶媒体。
【請求項38】
ビデオデータを復号するためのデバイスであって、前記デバイスは、
ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成するための手段と、
第2の予測ブロックについてのマージモードシンタックス要素をコーディングするための手段と、前記第2の予測ブロックは、前記現在ブロックについての追加の予測仮説を表し、ここにおいて、前記マージモードシンタックス要素は、マージモードを使用して前記第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、
前記マージモードシンタックス要素に従って前記第2の予測ブロックについての動き情報をコーディングするための手段と、前記第2の予測ブロックについての前記動き情報をコーディングするための前記手段は、前記マージモードシンタックス要素が、マージモードを使用して前記第2の予測ブロックについての前記動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成するための手段を含み、前記マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、
前記動き情報を使用してビデオデータの前記現在ブロックについての前記第2の予測ブロックを生成するための手段と、
前記第1の予測ブロックと前記第2の予測ブロックとの組合せとして、前記現在ブロックについての複数仮説予測ブロックを形成するための手段と、
前記複数仮説予測ブロックを使用して前記現在ブロックを復号するための手段と
を備える、デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本出願は、その各々の内容全体が参照により本明細書に組み込まれる、2022年3月22日に出願された米国特許出願第17/655,919号、および2021年3月29日に出願された米国仮出願第63/167,480号の優先権を主張する。2022年3月22日に出願された米国特許出願第17/655,919号は、2021年3月29日に出願された米国仮出願第63/167,480号の利益を主張する。
【0002】
[0002] 本開示は、ビデオ符号化(video encoding)とビデオ復号(video decoding)とを含む、ビデオコーディング(video coding)に関する。
【背景技術】
【0003】
[0003] デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4,Part10,アドバンストビデオコーディング(AVC)、ITU-T H.265/高効率ビデオコーディング(HEVC)、ITU-T H.266/汎用ビデオコーディング(VVC:Versatile Video Coding)によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法など、ならびにAlliance for Open Mediaによって開発されたAOMedia Video 1(AV1)のような独自のビデオコーデック/フォーマットを実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
【0004】
[0004] ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を含む。ブロックベースビデオコーディングでは、ビデオスライス(たとえば、ビデオピクチャまたはビデオピクチャの一部分)が、コーディングツリーユニット(CTU)、コーディングユニット(CU)および/またはコーディングノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコーディングされた(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック(neighboring block)中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコーディングされた(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【発明の概要】
【0005】
[0005] 概して、本開示は、ビデオコーディング中の複数仮説インター予測(multiple hypothesis inter-prediction)のための技法について説明する。ビデオコーディングは、概して、一連のピクチャをそれぞれのブロックに区分し、次いで、ブロックの各々をコーディング(符号化または復号)する。ブロックをコーディングすることは、概して、ブロックを予測し、ブロックの残差、すなわち、予測されたブロックと実際のブロックとの間の差分のセットをコーディングすることを含む。予測は、イントラピクチャ(すなわち、ブロックを含むピクチャのデータを使用して現在ブロック(current block)を予測すること)、またはインターピクチャ(すなわち、1つもしくは複数の以前にコーディングされたピクチャのデータを使用して現在ブロックを予測すること)であり得る。複数仮説インター予測は、現在のブロックを予測するために、1つまたは複数の以前にコーディングされたピクチャにおける複数の参照ブロック(reference block)を使用することを指す。たとえば、ビデオコーダは、2つ以上の予測ブロックを生成し、次いで、平均化または重み付けされた予測などを使用して予測ブロックの値を組み合わせ得る。
【0006】
[0006] インター予測は、マージモード(merge mode)や高度動きベクトル予測(AMVP:advanced motion vector prediction)モードなど、様々なコーディングモードを使用してシグナリングされ得る。概して、マージモードでは、シグナリングされた隣接ブロックの動き情報(motion information)が現在ブロックの動き情報として使用されるのに対し、AMVPモードでは、シグナリングされた隣接ブロックの動き情報が、現在ブロックの動きベクトルを予測するために使用され、他の動き情報(たとえば、動きベクトル差分値、および参照ピクチャ識別情報)が現在ブロックの動き情報を形成するためにコーディングされる。本開示は、特に、マージモードを使用する複数仮説インター予測情報のシグナリングに関係する技法の様々な例について説明する。
【0007】
[0007] 一例では、ビデオデータ(video data)を復号する方法は、ベースインター予測モード(base inter-prediction mode)を使用してビデオデータの現在ブロックについての第1の予測ブロック(first prediction block)を生成することと、第2の予測ブロック(second prediction block)についてのマージモードシンタックス要素(merge mode syntax element)をコーディングすることと、第2の予測ブロックは、現在ブロックについての追加の予測仮説(additional prediction hypothesis)を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングすることと、第2の予測ブロックについての動き情報をコーディングすることは、マージモードシンタックス要素が、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補(merge candidate)を含むマージ候補リスト(merge candidate list)を形成することを含み、マージ候補の各々は、単予測動き情報(uni-prediction motion information)のそれぞれのセットを表す、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロック(multi-hypothesis prediction block)を形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを含む。
【0008】
[0008] 別の例では、ビデオデータを復号するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、回路中に実装された1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサは、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、第2の予測ブロックは、現在ブロックについての追加の予測仮説を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングすることと、ここにおいて、動き情報をコーディングするために、1つまたは複数のプロセッサは、マージモードシンタックス要素が、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成するように構成され、マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを行うように構成される。
【0009】
[0009] 別の例では、コンピュータ可読記憶媒体(computer-readable storage medium)は、実行されたとき、プロセッサに、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、第2の予測ブロックは、現在ブロックについての追加の予測仮説を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングすることと、第2の予測ブロックについての動き情報をコーディングすることは、マージモードシンタックス要素が、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成することを含み、マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを行わせる命令(instruction)を記憶している。
【0010】
[0010] 別の例では、ビデオデータを復号するためのデバイスは、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成するための手段と、第2の予測ブロックについてのマージモードシンタックス要素をコーディングするための手段と、第2の予測ブロックは、現在ブロックについての追加の予測仮説を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングするための手段と、第2の予測ブロックについての動き情報をコーディングするための手段は、マージモードシンタックス要素が、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成するための手段を含み、マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成するための手段と、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成するための手段と、複数仮説予測ブロックを使用して現在ブロックを復号するための手段とを含む。
【0011】
[0011] 1つまたは複数の例の詳細が添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0012】
【
図1】[0012] 本開示の技法を実施し得る例示的なビデオ符号化および復号システムを示すブロック図。
【
図2】[0013] 幾何学的区分モード(GPM:geometric partitioning mode)の単予測動きベクトル選択(uni-prediction motion vector selection)のための例示的なスキームを表す表を示す概念図。
【
図3】[0014] 本開示の技法を実施し得る例示的なビデオエンコーダを示すブロック図。
【
図4】[0015] 本開示の技法を実施し得る例示的なビデオデコーダを示すブロック図。
【
図5】[0016] 本開示の技法による、現在ブロックを符号化するための例示的な方法を示すフローチャート。
【
図6】[0017] 本開示の技法による、現在ブロックを復号するための例示的な方法を示すフローチャート。
【
図7】[0018] 本開示の技法による、ビデオデータを復号する例示的な方法を示すフローチャート。
【発明を実施するための形態】
【0013】
[0019] ビデオコーディングは、概して、一連のピクチャをそれぞれのブロックに区分し、次いで、ブロックの各々をコーディング(符号化または復号)する。ブロックをコーディングすることは、概して、ブロックを予測し、ブロックの残差、すなわち、予測されたブロックと実際のブロックとの間の差分のセットをコーディングすることを含む。予測は、イントラピクチャ(すなわち、ブロックを含むピクチャのデータを使用して現在ブロックを予測すること)、またはインターピクチャ(すなわち、1つもしくは複数の以前にコーディングされたピクチャのデータを使用して現在ブロックを予測すること)であり得る。複数仮説インター予測は、現在ブロックを予測するために、1つまたは複数の以前にコーディングされたピクチャにおける複数の参照ブロックを使用することを指す。たとえば、ビデオコーダは、2つ以上の予測ブロックを生成し、次いで、平均化または重み付けされた予測などを使用して予測ブロックの値を組み合わせ得る。
【0014】
[0020] インター予測は、マージモードや高度動きベクトル予測(AMVP)モードなど、様々なコーディングモードを使用してシグナリングされ得る。概して、マージモードでは、シグナリングされた隣接ブロックの動き情報が現在ブロックの動き情報として使用されるのに対し、AMVPモードでは、シグナリングされた隣接ブロックの動き情報が、現在ブロックの動きベクトルを予測するために使用され、他の動き情報(たとえば、動きベクトル差分値、および参照ピクチャ識別情報)が現在ブロックの動き情報を形成するためにコーディングされる。
【0015】
[0021] 本開示は、複数仮説インター予測にマージモードシグナリングを適用するために使用され得る様々な例示的な技法について説明する。複数仮説インター予測のための参照ピクチャインデックス(reference picture list)、動きベクトル予測子インデックス(motion vector predictor index)、および/または動きベクトル差分(motion vector difference)のうちの1つまたは複数を常にシグナリングするのではなく、本開示の技法は、追加の仮説(additional hypothesis)についての動き情報がマージモードまたはAMVPモードを使用してコーディングされるかを示すマージフラグ(merge flag)をコーディングすることを含み得る。特に、各動きベクトルについての動き情報をシグナリングする結果として、過剰なデータをシグナリングすることがあり、それが、ビデオビットストリームのオーバヘッドシグナリングを過度に増加させ、過剰な符号化、復号、および他の処理動作を必要とする可能性がある。複数仮説インター予測のための動き情報をコーディングするためにマージモードを使用することによって、ビデオ品質を低下させることなく、シグナリングオーバヘッド、ならびに符号化、復号、および他の処理動作が低減され得る。
【0016】
[0022] いくつかの例では、ビデオコーダ(エンコーダまたはデコーダ)は、マージモードを使用して追加の仮説についての動き情報がコーディングされるとき、マージ候補リストにおけるすべてのマージ候補が単予測動き情報候補であるように、追加の仮説についてのマージ候補リストを構築し得る。たとえば、マージ候補として使用される隣接ブロックが、第1の動き情報および第2の動き情報を含む双予測(bi-prediction)を使用してコーディングされる場合、ビデオコーダは、第1の動き情報または第2の動き情報のうちの1つのみを使用して、隣接ブロックからマージ候補を構築し得る。いくつかの例では、ビデオコーダは、双予測を使用して符号化される隣接ブロックからの2つのマージ候補、すなわち、第1の動き情報を使用する第1のマージ候補と、第2の動き情報を使用する第2のマージ候補とを構築し得る。
【0017】
[0023] いくつかの例では、ビデオコーダは、LICがベース仮説(base hypothesis)に適用される場合、追加の仮説(additional hypothesis)に局所照明補償(LIC:local illumination compensation)を適用し得る。ビデオコーダは、上記で説明された技法に加えてまたは代えて、この方法でLICを実施し得る。
【0018】
[0024] いくつかの例では、ビデオコーダは、ルミナンスデータのハーフサンプル(半ピクセルまたは半画素)位置の値を計算するときに適用する補間フィルタ(interpolation filter)を決定し得る。たとえば、追加の仮説についての動き情報がマージモードを使用してコーディングされる場合、補間フィルタは、ベースモードの代わりにマージ候補の補間フィルタに従って決定され得る。別の例として、追加の仮説についての動き情報がAMVPを使用してコーディングされる場合、補間フィルタはベースモードに従って決定され得る。ビデオコーダは、上記で説明された技法に加えてまたは代えて、これらの方法のいずれかで補間フィルタ継承(interpolation filter inheritance)を実施し得る。
【0019】
[0025]
図1は、本開示の技法を実施し得る例示的なビデオ符号化および復号システム100を示すブロック図である。本開示の技法は、概して、ビデオデータをコーディング(符号化および/または復号)することを対象とする。概して、ビデオデータは、ビデオを処理するための任意のデータを含む。したがって、ビデオデータは、生のコーディングされていないビデオ、符号化されたビデオ、復号された(たとえば、再構築された)ビデオ、およびシグナリングデータなどのビデオメタデータを含み得る。
【0020】
[0026]
図1に示されているように、システム100は、この例では、宛先デバイス116によって復号および表示されるべき、符号化されたビデオデータを提供するソースデバイス102を含む。特に、ソースデバイス102は、コンピュータ可読媒体110を介して宛先デバイス116にビデオデータを提供する。ソースデバイス102および宛先デバイス116は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、モバイルデバイス、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、ブロードキャスト受信機デバイスなどを含む、広範囲のデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイス102および宛先デバイス116は、ワイヤレス通信のために装備され得、したがって、ワイヤレス通信デバイスと呼ばれることがある。
【0021】
[0027]
図1の例では、ソースデバイス102は、ビデオソース104と、メモリ106と、ビデオエンコーダ200と、出力インターフェース108とを含む。宛先デバイス116は、入力インターフェース122と、ビデオデコーダ300と、メモリ120と、ディスプレイデバイス118とを含む。本開示によれば、ソースデバイス102のビデオエンコーダ200と、宛先デバイス116のビデオデコーダ300とは、複数仮説インター予測のために動き情報をコーディングするための技法を適用するように構成され得る。したがって、ソースデバイス102はビデオ符号化デバイスの一例を表し、宛先デバイス116はビデオ復号デバイスの一例を表す。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または構成を含み得る。たとえば、ソースデバイス102は、外部カメラなど、外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス116は、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【0022】
[0028]
図1に示されているシステム100は一例にすぎない。概して、いかなるデジタルビデオ符号化および/または復号デバイスも、複数仮説インター予測のために動き情報をコーディングするための技法を実施し得る。ソースデバイス102および宛先デバイス116は、ソースデバイス102が宛先デバイス116への送信のためのコーディングされたビデオデータを生成するような、コーディングデバイスの例にすぎない。本開示は、データのコーディング(符号化および/または復号)を実施するデバイスとして「コーディング」デバイスに言及する。したがって、ビデオエンコーダ200およびビデオデコーダ300は、コーディングデバイス、特に、それぞれビデオエンコーダおよびビデオデコーダの例を表す。いくつかの例では、ソースデバイス102および宛先デバイス116は、ソースデバイス102および宛先デバイス116の各々がビデオ符号化構成要素およびビデオ復号構成要素を含むように、実質的に対称的に動作し得る。したがって、システム100は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのために、ソースデバイス102と宛先デバイス116との間の一方向または二方向ビデオ送信をサポートし得る。
【0023】
[0029] 概して、ビデオソース104は、ビデオデータ(すなわち、生のコーディングされていないビデオデータ)のソースを表し、ビデオデータの連続した一連のピクチャ(「フレーム」とも呼ばれる)をビデオエンコーダ200に提供し、ビデオエンコーダ200はピクチャについてのデータを符号化する。ソースデバイス102のビデオソース104は、ビデオカメラなどのビデオキャプチャデバイス、前にキャプチャされた生のビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース104は、ソースビデオとしてのコンピュータグラフィックスベースデータ、またはライブビデオとアーカイブされたビデオとコンピュータ生成されたビデオとの組合せを生成し得る。各場合において、ビデオエンコーダ200は、キャプチャされたビデオデータ、プリキャプチャされたビデオデータ、またはコンピュータ生成されたビデオデータを符号化する。ビデオエンコーダ200は、ピクチャを、(「表示順序」と呼ばれることがある)受信順序から、コーディングのためのコーディング順序に並べ替え得る。ビデオエンコーダ200は、符号化されたビデオデータを含むビットストリームを生成し得る。ソースデバイス102は、次いで、たとえば、宛先デバイス116の入力インターフェース122による受信および/または取出しのために、出力インターフェース108を介して、符号化されたビデオデータをコンピュータ可読媒体110上に出力し得る。
【0024】
[0030] ソースデバイス102のメモリ106と、宛先デバイス116のメモリ120とは、汎用メモリを表す。いくつかの例では、メモリ106、120は、生のビデオデータ、たとえば、ビデオソース104からの生のビデオと、ビデオデコーダ300からの生の復号されたビデオデータとを記憶し得る。追加または代替として、メモリ106、120は、たとえば、それぞれ、ビデオエンコーダ200とビデオデコーダ300とによって実行可能なソフトウェア命令を記憶し得る。メモリ106およびメモリ120は、この例ではビデオエンコーダ200およびビデオデコーダ300とは別個に示されているが、ビデオエンコーダ200およびビデオデコーダ300は、機能的に同様のまたは等価な目的で内部メモリをも含み得ることを理解されたい。さらに、メモリ106、120は、符号化されたビデオデータ、たとえば、ビデオエンコーダ200からの出力と、ビデオデコーダ300への入力とを記憶し得る。いくつかの例では、メモリ106、120の部分は、たとえば、生の復号および/または符号化されたビデオデータを記憶するために、1つまたは複数のビデオバッファとして割り振られ得る。
【0025】
[0031] コンピュータ可読媒体110は、ソースデバイス102から宛先デバイス116に符号化されたビデオデータをトランスポートすることが可能な任意のタイプの媒体またはデバイスを表し得る。一例では、コンピュータ可読媒体110は、ソースデバイス102が、たとえば、無線周波数ネットワークまたはコンピュータベースネットワークを介して、符号化されたビデオデータを宛先デバイス116にリアルタイムで直接送信することを可能にするための通信媒体を表す。ワイヤレス通信プロトコルなどの通信規格に従って、出力インターフェース108は、符号化されたビデオデータを含む送信信号を変調し得、入力インターフェース122は、受信された送信信号を復調し得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス102から宛先デバイス116への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【0026】
[0032] いくつかの例では、ソースデバイス102は、出力インターフェース108からストレージデバイス112に符号化されたデータを出力し得る。同様に、宛先デバイス116は、入力インターフェース122を介してストレージデバイス112から符号化されたデータにアクセスし得る。ストレージデバイス112は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。
【0027】
[0033] いくつかの例では、ソースデバイス102は、ソースデバイス102によって生成された符号化されたビデオデータを記憶し得るファイルサーバ114または別の中間ストレージデバイスに符号化されたビデオデータを出力し得る。宛先デバイス116は、ストリーミングまたはダウンロードを介してファイルサーバ114からの記憶されたビデオデータにアクセスし得る。
【0028】
[0034] ファイルサーバ114は、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス116に送信することが可能な任意のタイプのサーバデバイスであり得る。ファイルサーバ114は、(たとえば、ウェブサイトのための)ウェブサーバ、(ファイル転送プロトコル(FTP)または単方向トランスポート上ファイル配信(FLUTE:File Delivery over Unidirectional Transport)プロトコルなどの)ファイル転送プロトコルサービスを提供するように構成されたサーバ、コンテンツ配信ネットワーク(CDN)デバイス、ハイパーテキスト転送プロトコル(HTTP)サーバ、マルチメディアブロードキャストマルチキャストサービス(MBMS)または拡張MBMS(eMBMS)サーバ、および/あるいはネットワーク接続ストレージ(NAS)デバイスを表し得る。ファイルサーバ114は、追加または代替として、動的適応ストリーミングオーバーHTTP(DASH)、HTTPライブストリーミング(HLS)、リアルタイムストリーミングプロトコル(RTSP)、HTTP動的ストリーミングなど、1つまたは複数のHTTPストリーミングプロトコルを実装し得る。
【0029】
[0035] 宛先デバイス116は、インターネット接続を含む任意の標準的なデータ接続を通してファイルサーバ114からの符号化されたビデオデータにアクセスし得る。これは、ファイルサーバ114に記憶された符号化されたビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi-Fi(登録商標)接続)、ワイヤード接続(たとえば、デジタル加入者回線(DSL)、ケーブルモデムなど)、またはその両方の組合せを含み得る。入力インターフェース122は、ファイルサーバ114からメディアデータを取り出すまたは受信するための上記で説明された様々なプロトコル、あるいはメディアデータを取り出すための他のそのようなプロトコルのうちのいずれか1つまたは複数に従って動作するように構成され得る。
【0030】
[0036] 出力インターフェース108および入力インターフェース122は、ワイヤレス送信機/受信機、モデム、ワイヤードネットワーキング構成要素(たとえば、イーサネット(登録商標)カード)、様々なIEEE802.11規格のいずれかに従って動作するワイヤレス通信構成要素、または他の物理的構成要素を表し得る。出力インターフェース108および入力インターフェース122がワイヤレス構成要素を備える例では、出力インターフェース108および入力インターフェース122は、4G、4G-LTE(登録商標)(ロングタームエボリューション)、LTEアドバンスト、5Gなど、セルラー通信規格に従って、符号化されたビデオデータなどのデータを転送するように構成され得る。出力インターフェース108がワイヤレス送信機を備えるいくつかの例では、出力インターフェース108および入力インターフェース122は、IEEE802.11仕様、IEEE802.15仕様(たとえば、ZigBee(登録商標))、Bluetooth(登録商標)規格など、他のワイヤレス規格に従って、符号化されたビデオデータなどのデータを転送するように構成され得る。いくつかの例では、ソースデバイス102および/または宛先デバイス116は、それぞれのシステムオンチップ(SoC)デバイスを含み得る。たとえば、ソースデバイス102は、ビデオエンコーダ200および/または出力インターフェース108に帰属する機能を実施するためのSoCデバイスを含み得、宛先デバイス116は、ビデオデコーダ300および/または入力インターフェース122に帰属する機能を実施するためのSoCデバイスを含み得る。
【0031】
[0037] 本開示の技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。
【0032】
[0038] 宛先デバイス116の入力インターフェース122は、コンピュータ可読媒体110(たとえば、通信媒体、ストレージデバイス112、ファイルサーバ114など)から符号化されたビデオビットストリームを受信する。符号化されたビデオビットストリームは、ビデオブロックまたは他のコーディングされたユニット(たとえば、スライス、ピクチャ、ピクチャグループ、シーケンスなど)の特性および/または処理を記述する値を有するシンタックス要素など、ビデオデコーダ300によっても使用される、ビデオエンコーダ200によって定義されるシグナリング情報を含み得る。ディスプレイデバイス118は、復号されたビデオデータの復号されたピクチャをユーザに表示する。ディスプレイデバイス118は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを表し得る。
【0033】
[0039]
図1には示されていないが、いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は各々、オーディオエンコーダおよび/またはオーディオデコーダと統合され得、共通のデータストリーム中にオーディオとビデオの両方を含む多重化ストリームをハンドリングするために、適切なMUX-DEMUXユニット、あるいは他のハードウェアおよび/またはソフトウェアを含み得る。
【0034】
[0040] ビデオエンコーダ200およびビデオデコーダ300は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダおよび/またはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実施するために1つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ200とビデオデコーダ300との各々は、1つまたは複数のエンコーダまたはデコーダに含まれ得、それらのいずれかが、それぞれのデバイス中の複合エンコーダ/デコーダ(CODEC)の一部として統合され得る。ビデオエンコーダ200および/またはビデオデコーダ300を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラー電話機などのワイヤレス通信デバイスを備え得る。
【0035】
[0041] ビデオエンコーダ200およびビデオデコーダ300は、高効率ビデオコーディング(HEVC)とも呼ばれるITU-T H.265、あるいはマルチビューおよび/またはスケーラブルビデオコーディング拡張などのそれらの拡張など、ビデオコーディング規格に従って動作し得る。代替的に、ビデオエンコーダ200およびビデオデコーダ300は、汎用ビデオコーディング(VVC)とも呼ばれるITU-T H.266など、他のプロプライエタリ規格または業界規格に従って動作し得る。他の例では、ビデオエンコーダ200およびビデオデコーダ300は、AOMedia Video 1(AV1)、AV1の拡張、および/またはAV1の後継バージョン(たとえば、AV2)など、独自のビデオコーデック/フォーマットに従って動作し得る。他の例では、ビデオエンコーダ200およびビデオデコーダ300は、他の独自フォーマットまたは業界規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格またはフォーマットにも限定されない。概して、ビデオエンコーダ200およびビデオデコーダ300は、複数仮説インター予測のための動き情報をコーディングする任意のビデオコーディング技法とともに本開示の技法を実施するように構成され得る。
【0036】
[0042] 概して、ビデオエンコーダ200およびビデオデコーダ300は、ピクチャのブロックベースコーディングを実施し得る。「ブロック」という用語は、概して、処理されるべき(たとえば、符号化されるべき、復号されるべき、あるいは、符号化および/または復号プロセスにおいて他の方法で使用されるべき)データを含む構造を指す。たとえば、ブロックは、ルミナンスおよび/またはクロミナンスデータのサンプルの2次元行列を含み得る。概して、ビデオエンコーダ200およびビデオデコーダ300は、YUV(たとえば、Y、Cb、Cr)フォーマットで表されるビデオデータをコーディングし得る。すなわち、ピクチャのサンプルのために赤色、緑色、および青色(RGB)データをコーディングするのではなく、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分とクロミナンス成分とをコーディングし得、ここで、クロミナンス成分は、赤色相と青色相の両方のクロミナンス成分を含み得る。いくつかの例では、ビデオエンコーダ200は、符号化より前に、受信されたRGBフォーマットのデータをYUV表現にコンバートし、ビデオデコーダ300は、YUV表現をRGBフォーマットにコンバートする。代替的に、前処理および後処理ユニット(図示せず)が、これらのコンバージョンを実施し得る。
【0037】
[0043] 本開示は、概して、ピクチャのデータを符号化または復号するプロセスを含むように、ピクチャのコーディング(たとえば、符号化および復号)に言及することがある。同様に、本開示は、ブロックについてのデータを符号化または復号するプロセス、たとえば、予測および/または残差コーディングを含むように、ピクチャのブロックのコーディングに言及することがある。符号化されたビデオビットストリームは、概して、コーディング決定(たとえば、コーディングモード)とブロックへのピクチャの区分とを表すシンタックス要素についての一連の値を含む。したがって、ピクチャまたはブロックをコーディングすることへの言及は、概して、ピクチャまたはブロックを形成するシンタックス要素についての値をコーディングすることとして理解されるべきである。
【0038】
[0044] HEVCは、コーディングユニット(CU)、予測ユニット(PU)、および変換ユニット(TU)を含む、様々なブロックを定義する。HEVCに従って、(ビデオエンコーダ200などの)ビデオコーダは、クワッドツリー構造に従ってコーディングツリーユニット(CTU)をCUに区分する。すなわち、ビデオコーダは、CTUとCUとを4つの等しい重複しない正方形に区分し、クワッドツリーの各ノードは、0個または4つのいずれかの子ノードを有する。子ノードなしのノードは、「リーフノード」と呼ばれることがあり、そのようなリーフノードのCUは、1つまたは複数のPUおよび/または1つまたは複数のTUを含み得る。ビデオコーダは、PUとTUとをさらに区分し得る。たとえば、HEVCでは、残差クワッドツリー(RQT)は、TUの区分を表す。HEVCでは、PUはインター予測データを表し、TUは残差データを表す。イントラ予測されるCUは、イントラモード指示などのイントラ予測情報を含む。
【0039】
[0045] 別の例として、ビデオエンコーダ200およびビデオデコーダ300は、VVCに従って動作するように構成され得る。VVCに従って、(ビデオエンコーダ200などの)ビデオコーダは、ピクチャを複数のコーディングツリーユニット(CTU)に区分する。ビデオエンコーダ200は、クワッドツリーバイナリツリー(QTBT)構造またはマルチタイプツリー(MTT)構造など、ツリー構造に従ってCTUを区分し得る。QTBT構造は、HEVCのCUとPUとTUとの間の分離など、複数の区分タイプの概念を除去する。QTBT構造は、2つのレベル、すなわち、クワッドツリー区分に従って区分される第1のレベルと、バイナリツリー区分に従って区分される第2のレベルとを含む。QTBT構造のルートノードは、CTUに対応する。バイナリツリーのリーフノードは、コーディングユニット(CU)に対応する。
【0040】
[0046] MTT区分構造では、ブロックは、クワッドツリー(QT)区分と、バイナリツリー(BT)区分と、1つまたは複数のタイプのトリプルツリー(TT)(ターナリツリー(TT)とも呼ばれる)区分とを使用して区分され得る。トリプルまたはターナリツリー区分は、ブロックが3つのサブブロックにスプリットされる区分である。いくつかの例では、トリプルまたはターナリツリー区分は、中心を通して元のブロックを分割することなしにブロックを3つのサブブロックに分割する。MTTにおける区分タイプ(たとえば、QT、BT、およびTT)は、対称または非対称であり得る。
【0041】
[0047] AV1コーデックに従って動作しているとき、ビデオエンコーダ200およびビデオデコーダ300は、ビデオデータをブロックでコーディングするように構成され得る。AV1では、処理され得る最大コーディングブロックがスーパーブロックと呼ばれる。AV1では、スーパーブロックは、128×128ルーマサンプルまたは64×64ルーマサンプルのいずれかであり得る。しかしながら、後継のビデオ符号化フォーマット(たとえば、AV2)では、スーパーブロックは、異なる(たとえば、より大きい)ルーマサンプルサイズによって定義され得る。いくつかの例では、スーパーブロックは、ブロックのクワッドツリーの最上位レベルである。ビデオエンコーダ200はさらに、スーパーブロックをより小さいコーディングブロックに区分し得る。ビデオエンコーダ200は、正方形区分または非正方形区分を使用して、スーパーブロックおよび他のコーディングブロックをより小さいブロックに区分し得る。非正方形ブロックは、N/2×N、N×N/2、N/4×N、およびN×N/4ブロックを含み得る。ビデオエンコーダ200およびビデオデコーダ300は、符号化ブロックの各々に対して別々の予測プロセスおよび変換プロセスを行い得る。
【0042】
[0048] AV1はまた、ビデオデータのタイルを定義する。タイルは、他のタイルとは独立にコーディングされ得るスーパーブロックの矩形の配列である。すなわち、ビデオエンコーダ200およびビデオデコーダ300はそれぞれ、他のタイルからのビデオデータを使用することなくタイル内のコーディングブロックを符号化および復号し得る。しかしながら、ビデオエンコーダ200およびビデオデコーダ300は、タイル境界を越えてフィルタリングを実施し得る。タイルは、サイズが均一であっても不均一であってもよい。タイルベースのコーディングは、エンコーダおよびデコーダ実装のための並列処理および/またはマルチスレッド化を可能にし得る。
【0043】
[0049] いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分とクロミナンス成分との各々を表すために単一のQTBTまたはMTT構造を使用し得、他の例では、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分のための1つのQTBT/MTT構造、および両方のクロミナンス成分のための別のQTBT/MTT構造(またはそれぞれのクロミナンス成分のための2つのQTBT/MTT構造)など、2つまたはそれ以上のQTBTまたはMTT構造を使用し得る。
【0044】
[0050] ビデオエンコーダ200およびビデオデコーダ300は、クワッドツリー区分、QTBT区分、MTT区分、スーパーブロック区分、または他の区分構造を使用するように構成され得る。
【0045】
[0051] いくつかの例では、CTUは、ルーマサンプルのコーディングツリーブロック(CTB)、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するCTB、あるいはモノクロームピクチャ、またはサンプルをコーディングするために使用される3つの別個の色平面とシンタックス構造とを使用してコーディングされるピクチャのサンプルのCTBを含む。CTBは、CTBへの成分の分割が区分になるような何らかの値のNについて、サンプルのN×Nブロックであり得る。成分は、4:2:0、4:2:2、または4:4:4色フォーマットにおけるピクチャについての3つのアレイ(ルーマおよび2つのクロマ)のうちの1つからのアレイまたは単一のサンプル、あるいはモノクロームフォーマットにおけるピクチャについてのアレイまたはアレイの単一のサンプルである。いくつかの例では、コーディングブロックは、コーディングブロックへのCTBの分割が区分になるような何らかの値のMとNとについて、サンプルのM×Nブロックである。
【0046】
[0052] ブロック(たとえば、CTUまたはCU)は、ピクチャ中で様々な方法でグループ化され得る。一例として、ブリックは、ピクチャ中の特定のタイル内のCTU行の矩形領域を指し得る。タイルは、ピクチャ中の特定のタイル列および特定のタイル行内のCTUの矩形領域であり得る。タイル列は、ピクチャの高さに等しい高さと、(たとえば、ピクチャパラメータセット中などの)シンタックス要素によって指定された幅とを有するCTUの矩形領域を指す。タイル行は、(たとえば、ピクチャパラメータセット中などの)シンタックス要素によって指定された高さと、ピクチャの幅に等しい幅とを有するCTUの矩形領域を指す。
【0047】
[0053] いくつかの例では、タイルは複数のブリックに区分され得、それらの各々は、タイル内に1つまたは複数のCTU行を含み得る。複数のブリックに区分されないタイルもブリックと呼ばれることがある。しかしながら、タイルの真のサブセットであるブリックは、タイルと呼ばれないことがある。ピクチャ中のブリックはまた、スライス中に配置され得る。スライスは、もっぱら単一のネットワークアブストラクションレイヤ(NAL)ユニット中に含まれていることがあるピクチャの整数個のブリックであり得る。いくつかの例では、スライスは、いくつかの完全なタイル、または1つのタイルの完全なブリックの連続シーケンスのみのいずれかを含む。
【0048】
[0054] 本開示は、垂直寸法と水平寸法とに関して(CUまたは他のビデオブロックなどの)ブロックのサンプル寸法を指すために、「N×N(NxN)」および「N×N(N by N)」、たとえば、16×16サンプル(16x16 samples)または16×16サンプル(16 by 16 samples)を互換的に使用し得る。概して、16×16のCUは、垂直方向に16個のサンプルを有し(y=16)、水平方向に16個のサンプルを有する(x=16)。同様に、N×NのCUは、概して、垂直方向にN個のサンプルを有し、水平方向にN個のサンプルを有し、ここで、Nは非負整数値を表す。CU中のサンプルは、行と列とに配置され得る。その上、CUは、必ずしも、水平方向において垂直方向と同じ数のサンプルを有する必要があるとは限らない。たとえば、CUはN×Mサンプルを備え得、ここで、Mは必ずしもNに等しいとは限らない。
【0049】
[0055] ビデオエンコーダ200は、予測および/または残差情報、ならびに他の情報を表すCUについてのビデオデータを符号化する。予測情報は、CUについて予測ブロックを形成するためにCUがどのように予測されるべきかを示す。残差情報は、概して、符号化より前のCUのサンプルと予測ブロックとの間のサンプルごとの差分を表す。
【0050】
[0056] CUを予測するために、ビデオエンコーダ200は、概して、インター予測またはイントラ予測を通してCUについて予測ブロックを形成し得る。インター予測は、概して、前にコーディングされたピクチャのデータからCUを予測することを指すが、イントラ予測は、概して、同じピクチャの前にコーディングされたデータからCUを予測することを指す。インター予測を実施するために、ビデオエンコーダ200は、1つまたは複数の動きベクトルを使用して予測ブロックを生成し得る。ビデオエンコーダ200は、概して、たとえば、CUと参照ブロックとの間の差分に関して、CUに厳密に一致する参照ブロックを識別するために動き探索を実施し得る。ビデオエンコーダ200は、参照ブロックが現在CUに厳密に一致するかどうかを決定するために、絶対差分和(SAD)、2乗差分和(SSD)、平均絶対差(MAD)、平均2乗差(MSD)、または他のそのような差分計算を使用して差分メトリックを計算し得る。いくつかの例では、ビデオエンコーダ200は、単方向予測(uni-directional prediction)または双方向予測(bi-directional prediction)を使用して現在CUを予測し得る。
【0051】
[0057] HEVCでは、一例として、2つの異なる参照ピクチャから取得された2つの予測信号を平均化すること、および/または2つの異なる動きベクトルを使用することによって、双方向予測(双予測とも呼ばれる)信号が生成される。VVCでは、別の例として、双予測モードが、2つの予測信号の重み付き平均化を可能にするために、単純な平均化を越えて拡張される。以下の式は、双予測を使用する予測ブロックの生成の一例を表す:
【0052】
【0053】
[0058] 上記の式(1)において、Pbi-predは、双予測を使用して形成された予測ブロックを表し、P0は、第1の動き情報セットと第1の参照ピクチャとから形成された第1の予測ブロックを表し、P1は、第2の動き情報セットと第2の参照ピクチャとから形成された第2の予測ブロックを表し、wは、重み値を表し、「>>」は、ビット単位の右シフト演算子を表す。VVCでは、5つの重み値wが、重み付き平均化双予測において可能にされ、w∈{-2,3,4,5,10}である。各双予測CUについて、重みwは、2つの方法、1)非マージCUについて、重みインデックスが、動きベクトル差分の後にシグナリングされる、2)マージCUについて、重みインデックスが、マージ候補インデックスに基づいて隣接ブロックからを推論される、のうちの1つで決定される。VVCでは、CUレベル重み付けを用いた双予測(BCW)は、256個またはそれ以上のルーマサンプルをもつCUのみに適用される(すなわち、CU幅×CU高さは256よりも大きいかまたはそれに等しい)。低遅延ピクチャの場合、すべての5つの重みが使用される。非低遅延ピクチャの場合、3つの重み(w∈{3,4,5})のみが使用される。
【0054】
[0059] HEVCでは、ビデオコーダは、use_integer_mv_flag(すなわち、整数レベル精度とサブ整数レベル精度とのどちらが使用されるかを表すシンタックス要素)がスライスヘッダにおいて0(サブ整数精度を示す)に等しいとき、CUの動きベクトルと予測動きベクトルとの差分を表す動きベクトル差分(MVD:motion vector difference)を、1/4ルーマサンプルの単位でコーディングし得る。VVCは、CUレベル適応動きベクトル解像度(AMVR:adaptive motion vector resolution)方式を導入した。AMVRでは、異なる精度でCUのMVDがコーディングされることを可能にする。VVCにおける現在のCUについてのモード(たとえば、AMVPモードまたはアフィンAMVPモード)に応じて、現在のCUのMVDが、次のように適応的に選択され得る。
【0055】
・通常AMVPモード:1/4-ルーマサンプル、1/2ルーマサンプル、整数ルーマサンプル、または4ルーマサンプル。
【0056】
・アフィンAMVPモード:1/4ルーマサンプル、整数ルーマサンプル、または1/16ルーマサンプル。
【0057】
[0060] ビデオコーダは、現在のCUがVVCあたり少なくとも1つの非ゼロMVD成分を有する場合、条件付きでCUレベルのMVD解像度をコーディングし得る。すべてのMVD成分(すなわち、参照リストL0および参照リストL1の水平MVDと垂直MVDの両方)がゼロである場合、ビデオコーダは、精度(解像度)を表すために追加のデータをコーディングすることなく1/4ルーマサンプンプルMVD解像度が使用されると推論し得る。
【0058】
[0061] VVCにおいて少なくとも1つの非ゼロMVD成分を有するCUについて、1/4ルーマサンプンプルMVD精度がCUに使用されるかどうかを示すために第1のフラグがシグナリングされる。第1のフラグが0である場合、さらなるシグナリングが必要とされず、1/4ルーマサンプルMVD精度が現在のCUのために使用される。他の場合、ビデオコーダは、通常AMVP CUのために1/2ルーマサンプルMVD精度が使用されるのか他のMVD精度(整数または4ルーマサンプル)が使用されるのかを示す第2のフラグをコーディングする。1/2ルーマサンプルの場合、VVCにおいて、デフォルト8タップ補間フィルタの代わりに6タップ補間フィルタ(six-tap interpolation filter)が1/2ルーマサンプル位置に使用される。他の場合、VVCにおいて、通常AMVP CUのために整数ルーマサンプルMVD精度が使用されるのか4ルーマサンプルMVD精度が使用されるのかを示すために第3のフラグがシグナリングされる。アフィンAMVP CUの場合、整数ルーマサンプルMVD精度が使用されるのか1/16ルーマサンプルMVD精度が使用されるのかを示すために第2のフラグが使用される。再構築されたMVが、意図された精度(1/4ルーマサンプル、1/2ルーマサンプル、整数ルーマサンプル、または4ルーマサンプル)を有することを保証するために、ビデオコーダは、CUについての動きベクトル予測子を、MVDとともに予測子を加算する前のMVDのものと同じ精度に丸め得る。ビデオコーダは、動きベクトル予測子を0のほうへ丸め得る(すなわち、負の動きベクトル予測子が正の無限大のほうへ丸められ、正の動きベクトル予測子が負の無限大のほうへ丸められる)。
【0059】
[0062]
図2は、幾何学的区分モード(GPM:geometric partitioning mode)の単予測動きベクトル選択のための例示的なスキームを表す表を示す概念図である。VVCは、インター予測のためのGPMを含む。VVCでは、幾何学的区分モードは、一種のマージモードとしてCUレベルフラグを使用してシグナリングされ、他のマージモードは、通常のマージモード、MVDを有するマージ(MMVD:merge with MVD)モード、クロスコンポーネントイントラ予測(CIIP:cross-component intra prediction)モード、およびサブブロックマージモードを含む。合計で64個のパーティションが、幾何学的区分モードによって、8×64と64×8を除くm,n∈{3…6}でw×h=2
m×2
nの各可能なCUサイズについてサポートされる。
【0060】
[0063] このモードが使用されると、VVCにおいて、CUは幾何学的に配置された直線によって2つの部分に分割される。CU内の幾何学的パーティションの各部分は、それ自体の動きを使用してインター予測され、単一予測のみが各パーティションについて可能にされ、すなわち、各部分は1つの動きベクトルと1つの参照インデックスとを有する。単予測動きの制約は、従来の双予測と同じように、各CUについて2つの動き補償予測のみ必要とされることを保証するように適用される。各パーティションについての単予測動きは、次に説明されるプロセスを使用して導き出される。
【0061】
単予測候補リストは、VVCにおける拡張マージ予測プロセスに従って構築されたマージ候補リストから直接導き出される。幾何学的単予測候補リストにおける単予測動きのインデックスとしてnを示す。n番目の拡張マージ候補のLX動きベクトル(ここで、Xはnのパリティに等しい)は、幾何学的区分モードのn番目の単一予測動きベクトルとして使用される。これらの動きベクトルは、
図2において「x」で示される。n番目の拡張マージ候補の対応するLX動きベクトルが存在しない場合、同じ候補のL(1-X)動きベクトルが、幾何学的区分モードの単一予測動きベクトルとして代わりに使用される。
【0062】
[0064] 幾何学的パーティションモードが現在のCUに使用される場合、VVCにおいて、ビデオコーダは、幾何学的パーティションのパーティションモードを示す幾何学的パーティションインデックス(角度およびオフセット)、ならびに2つのマージインデックス(merge index)(各パーティションについて1つ)をさらにコーディングし得る。VVCに従って、最大GPM候補サイズの数は、シーケンスパラメータセット(SPS)において明示的にコーディングされ、GPMマージインデックスのシンタックス2値化を指定する。幾何学的パーティションの部分の各々を予測した後、ビデオコーダは、適応的重みを有するブレンド処理を使用して、幾何学的パーティションのエッジに沿ってサンプル値を調整し得る。
【0063】
[0065] ほぼすべての過去および現在のビデオコーディング規格において、ビデオコーダは、単一予測仮説であるビデオデータのブロックを時間的に予測するために、単方向または双方向のいずれかを利用し得る。複数仮説予測(MHP:Multiple hypothesis prediction)は、Winkenら、「Multi-hypothesis Inter-prediction」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJVETの第10回会合、2018年4月10~20日、ドキュメント番号JVET-J0041;Winkenら、「CE10: Multi-Hypothesis Inter Prediction (Tests 1.5 - 1.8)」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJVETの第11回会合、2018年7月10~18日、ドキュメントJVET-K0269;Winkenら、「CE10: Multi-Hypothesis Inter Prediction (Tests 1.2.a - 1.2.c)」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJVETの第12回会合、2018年10月3~12日、ドキュメントJVET-L0148(v3);およびWinkenら、「CE10: Multi-hypothesis inter prediction (Test 10.1.2)」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJVETの第13回会合、2019年1月9~18日、ドキュメント番号JVET-M0425において説明されている。VVCにおいてMHPでは、インター予測方法は、3つ以上の動き補償予測信号の重み付き重ね合わせを可能にする。サンプル単位重み付き重ね合わせによって、得られる全体的予測信号が取得される。単/双予測信号puni/biおよび第1の追加のインター予測信号/仮説h3を用いて、VVCにおいて、得られる予測信号p3が次のように取得される。
【0064】
【0065】
[0066] 式(2)において、p3は、得られた予測信号を表し、puni/biは、第1の予測仮説からの第1の予測ブロックを表し、h3は、第2の予測仮説からの第2の予測ブロックを表し、αは、重み値を表す。VVCでは、重み付けファクタαは、次のマッピングに従って、シンタックス要素add_hyp_weight_idxによって指定される。
【0066】
【0067】
[0067] 上記と同様に、2つ以上の追加の予測信号が使用され得る。VVCにおいて、得られた全体的予測信号は、次のように、各追加の予測信号を用いて反復的に累積され得る。
【0068】
【0069】
[0068] 得られた全体的予測信号は、最後のpn(すなわち、最大インデックスnを有するpn)として取得される。
【0070】
[0069] MERGE(マージ)モードを使用する(ただし、スキップモードを使用しない)インター予測ブロックについて、追加のインター予測信号が指定され得る。追加の予測信号について、VVCにおいて、2つのAMVP候補リストのうちの1つが使用される。
【0071】
・追加の予測信号の参照ピクチャのピクチャ順序カウント(POC)が、使用されるlist1参照ピクチャのPOCに等しい場合、list1 AMVP候補リストを使用される。
【0072】
・他の場合、list0 AMVP候補リストが使用される。
【0073】
[0070] Changら、「Compression efficiency methods beyond VVC」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29のJVETの第21回会合、2021年1月6~15日、ドキュメント番号JVET-U0100では、局所照明補償(LIC)について説明している。LICは、現在ブロックとその予測ブロックとの間の局所的照明変動を、現在ブロックテンプレートと参照ブロックテンプレートとの間の関数としてモデル化するインター予測技法である。関数のパラメータは、スケールαおよびオフセットβによって表されることができ、これは、線形方程式、すなわち、α*p[x]+βを形成して、照明変化を補償し、ここで、p[x]は、参照ピクチャ上の位置xにおいてMVによって指し示される参照サンプルである。αおよびβは現在ブロックテンプレートおよび参照ブロックテンプレートに基づいて導出され得るので、LICの使用を示すためにAMVPモードにおいてLICフラグがシグナリングされる以外は、それらにシグナリングオーバヘッドが必要とされない。
【0074】
[0071] 単予測インターCUのための局所照明補償は、Sereginら、「CE4-3.1a and CE4-3.1b: Unidirectional local illumination compensation with affine prediction」、2019年7月3~12日、ドキュメント番号JVET-O0066にも説明されており、以下の修正を伴う。
【0075】
・イントラ隣接サンプルがLICパラメータに使用され得る。
【0076】
・LICが、ルーマサンプルが32未満のブロックでは無効にされる。
【0077】
・非サブブロックモードとアフィンモードの両方において、LICパラメータ導出は、最初の左上の16x16ユニットに対応する部分テンプレートブロックサンプルの代わりに、現在のCUに対応するテンプレートブロックサンプルに基づいて実施される。
【0078】
・参照ブロックテンプレートのサンプルは、ブロックMVとともにMCを使用することによって、それを整数画素精度に丸めずに生成される。
【0079】
[0072] 再び
図1を参照すると、本開示の様々な技法に従って、ビデオエンコーダ200およびビデオデコーダ300が、複数仮説インター予測のためにマージモードを実施するように構成され得る。たとえば、追加の仮説に対するマージモードでは、追加の仮説について(AMVPモードのように)参照ピクチャインデックスと、動きベクトル予測子インデックスと、動きベクトル差分とを常にコーディングするのではなく、ビデオエンコーダ200およびビデオデコーダ300は、追加の仮説についての動き情報がMERGEモードまたはAMVPモードを使用してコーディングされるかを示すために、マージフラグをコーディングし得る。マージフラグが真である場合、ビデオエンコーダ200およびビデオデコーダ300は、追加の仮説のマージ候補を示すためにマージインデックスをコーディングし得る。マージフラグが偽である場合、ビデオエンコーダ200およびビデオデコーダ300は、追加の仮説についての参照ピクチャインデックスと、動きベクトル予測子インデックスと、動きベクトル差分とをコードし得る。
【0080】
[0073] いくつかの例では、1つまたは複数の追加の仮説について、ビデオエンコーダ200およびビデオデコーダ300は、各マージ候補が単予測動きを表すように、追加の仮説についてのマージモードのマージ候補を構築し得る。いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、たとえばVVCの場合のように、幾何学的区分モードと同様に単予測候補リストを使用し得る。したがって、追加の仮説についてのマージモードは、幾何学的区分モードにおけるのと同じマージ候補リストを共有し得る。
【0081】
[0074] 言い換えれば、マージ候補リストを構築するために、隣接ブロックが双予測を使用して予測されたとき、ビデオエンコーダ200およびビデオデコーダ300は、隣接ブロックから1つまたは2つのマージ候補を構築し得る。隣接ブロックが双予測を使用して予測されたとき、隣接ブロックは、第1の動きベクトルについての第1の動き情報と、第2の動きベクトルについての第2の動き情報との両方を含む。ビデオエンコーダ200およびビデオデコーダ300は、第1の動き情報および/または第2の動き情報のいずれかまたは両方からマージ候補を構築し得る。したがって、ビデオエンコーダ200およびビデオデコーダ300は、第1の動き情報または第2の動き情報のうちの1つを使用することを含む、隣接ブロックから単予測マージ候補(uni-prediction merge candidate)を形成することが可能である。加えて、ビデオエンコーダ200およびビデオデコーダ300は、第2の動き情報を使用して、隣接ブロックから第2の単一予測マージ候補を形成し得る。
【0082】
[0075] いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、ベースモードのマージフラグとして追加の仮説のマージフラグをコーディングし得る(ここで、「ベースモード」は、追加の仮説がその上に適用されるモード、たとえば、単方向予測または双方向予測を指す)。いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、このマージフラグをコーディングするために同じCABACコンテキスト(context)を使用し得る。他の例では、ビデオエンコーダ200およびビデオデコーダは、ベースモードでシグナリングされたマージフラグに使用されたCABACコンテキストとは異なる新しいCABACコンテキストを使用して、追加の仮説についてのマージフラグをコーディングし得る。
【0083】
[0076] いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、MERGEモードのマージインデックスをシグナリングするために使用されるのと同じCABACコンテキストを使用して、追加の仮説についてのマージインデックスをコーディングし得る。他の例では、ビデオエンコーダ200およびビデオデコーダ300は、MERGEモードでマージインデックスをコーディングするために使用されるCABACコンテキストとは異なるCABACコンテキストを使用して、追加の仮説についてのマージインデックスをコーディングし得る。
【0084】
[0077] 本開示の技法に従って、追加の仮説についての動き情報をコーディングするためにマージモードが使用されることを可能にすることによって、ビットストリームでコーディングされる動き情報が削減され得る。すなわち、追加の仮説についての動き情報として、候補インデックス、動きベクトル差分、参照ピクチャリストインジケータ、および参照インデックスの各々をコーディングするのではなく、ビデオエンコーダ200およびビデオデコーダ300は、追加の仮説についての動き情報をコーディングするためにマージモードが使用されるかどうかを示すマージインデックスをコーディングし、使用される場合、単にマージモードについて候補インデックスをコーディングし得る。このようにして、より正確な予測ブロックが現在ブロックに対して形成され得、予測ブロックを形成するために使用されるコーディングデータに関連付けられたビットレートが低減され得る。
【0085】
[0078] いくつかの例では、マージモードが複数の追加の仮説に使用される場合、ビデオエンコーダ200およびビデオデコーダ300は、現在の追加の仮説のマージ候補リストから、以前の追加の仮説で使用されたマージ候補を削除し得る。したがって、現在の追加の仮説におけるマージ候補の数が減少され得る。したがって、ビットを節約するように、マージインデックスのシグナリングが対応して修正され得る。たとえば、順序で1番目の追加仮説でマージ候補iが使用され、候補の総数がNである場合、ビデオエンコーダ200およびビデオデコーダ300は、順序で2番目の追加仮説のマージ候補リストからマージ候補iを除去し得る。第2の追加の仮説のマージ候補の総数はN-1となる。したがって、第2の追加の仮説におけるマージインデックスは、切り捨てられた2値化コード、たとえば、最大符号語長がNではなくN-1である切り捨てられた単項コードを用いてコーディングされ得る。
【0086】
[0079] いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、局所照明補償(LIC)がベースモードに適用される場合、マージモードおよび/またはAMVPモードにおいて、追加の仮説にLICを適用し得る。他の例では、ビデオエンコーダ200およびビデオデコーダ300は、追加の仮説がAMVPモードを使用し、LICがベースモードに適用された場合、LICが追加の仮説に適用されると推論し得る。追加の仮説がマージモードを使用し、LICがベースモードに適用された場合、ビデオエンコーダ200およびビデオデコーダ300は、LICが追加の仮説に適用されるべきかどうかを表すマージ候補のLICフラグをコーディングし得る。
【0087】
[0080] VVCでは、1/2ルーマサンプルMVD解像度の場合、デフォルト8タップ補間フィルタの代わりに6タップ補間フィルタが1/2ルーマサンプル位置に使用される。マージ候補は、そのようなフィルタ切り替えを継承し得る。本開示の技法によれば、追加の仮説についての動き情報がマージモードを使用してコーディングされる場合、1/2ルーマサンプル位置または他のサンプル位置を補間する(interpolate)ための代替のスイッチングフィルタを適用すべきかどうかは、ベースモードのそれの代わりに追加の仮説のマージ候補に依存し得る。代替的に、追加の仮説がAMVPモードである場合、1/2ルーマサンプル位置または他の位置を補間するための代替のスイッチングフィルタを適用すべきかどうかは、ベースモードにおいて補間フィルタ切り替えが実施されるかどうかに依存し得る。
【0088】
[0081] VVCのいくつかの例はまた、インター予測モードと見なされ得るアフィン動き補償モードを提供する。アフィン動き補償モードでは、ビデオエンコーダ200は、ズームインまたはアウト、回転、パースペクティブの動き、あるいは他の変則の動きタイプなど、非並進の動きを表す2つまたはそれ以上の動きベクトルを決定し得る。
【0089】
[0082] イントラ予測を実施するために、ビデオエンコーダ200は、予測ブロックを生成するようにイントラ予測モードを選択し得る。VVCのいくつかの例は、様々な方向性モード、ならびに平面モードおよびDCモードを含む、67個のイントラ予測モードを提供する。概して、ビデオエンコーダ200は、現在ブロック(たとえば、CUのブロック)のサンプルをそれから予測すべき、現在ブロックに対する隣接サンプルを記述するイントラ予測モードを選択する。そのようなサンプルは、ビデオエンコーダ200がラスタ走査順序で(左から右に、上から下に)CTUとCUとをコーディングすると仮定すると、概して、現在ブロックと同じピクチャ中の現在ブロックの上、左上、または左にあり得る。
【0090】
[0083] ビデオエンコーダ200は、現在ブロックについて予測モードを表すデータを符号化する。たとえば、インター予測モードでは、ビデオエンコーダ200は、様々な利用可能なインター予測モードのうちのどれが使用されるか、ならびに対応するモードのための動き情報を表すデータを符号化し得る。たとえば、単方向または双方向インター予測()では、ビデオエンコーダ200は、高度動きベクトル予測(AMVP)またはマージモードを使用して動きベクトルを符号化し得る。ビデオエンコーダ200は、アフィン動き補償モードのための動きベクトルを符号化するために、同様のモードを使用し得る。
【0091】
[0084] AV1は、ビデオデータのコーディングブロックを符号化および復号するための2つの一般的な技法を含む。この2つの一般的な技法は、イントラ予測(たとえば、フレーム内予測または空間予測)、およびインター予測(たとえば、フレーム間予測または時間予測)である。AV1のコンテキストでは、イントラ予測モードを使用してビデオデータの現在のフレームのブロックを予測するとき、ビデオエンコーダ200およびビデオデコーダ300は、ビデオデータの他のフレームからのビデオデータを使用しない。ほとんどのイントラ予測モードでは、ビデオエンコーダ200は、現在ブロック内のサンプル値と、同じフレーム内の参照サンプルから生成された予測値との差分に基づいて、現在のフレームのブロックを符号化する。ビデオエンコーダ200は、イントラ予測モードに基づいて参照サンプルから生成された予測値を決定する。
【0092】
[0085] ブロックのイントラ予測またはインター予測などの予測に続いて、ビデオエンコーダ200は、ブロックについて残差データを計算し得る。残差ブロックなどの残差データは、ブロックと、対応する予測モードを使用して形成された、ブロックについての予測ブロックとの間の、サンプルごとの差分を表す。ビデオエンコーダ200は、サンプルドメインではなく変換ドメイン中に変換データを作り出すために、残差ブロックに1つまたは複数の変換を適用し得る。たとえば、ビデオエンコーダ200は、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換を残差ビデオデータに適用し得る。さらに、ビデオエンコーダ200は、第1の変換に続いて、モード依存非分離可能2次変換(MDNSST:mode-dependent non-separable secondary transform)、信号依存変換、カルーネンレーベ変換(KLT)などの2次変換を適用し得る。ビデオエンコーダ200は、1つまたは複数の変換の適用に続いて変換係数を作り出す。
【0093】
[0086] 上述のように、変換係数を作り出すための任意の変換に続いて、ビデオエンコーダ200は変換係数の量子化を実施し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスを実施することによって、ビデオエンコーダ200は、変換係数の一部または全部に関連付けられたビット深度を低減し得る。たとえば、ビデオエンコーダ200は、量子化中にnビット値をmビット値に切り捨て得、ここで、nはmよりも大きい。いくつかの例では、量子化を実施するために、ビデオエンコーダ200は、量子化されるべき値のビット単位の右シフトを実施し得る。
【0094】
[0087] 量子化に続いて、ビデオエンコーダ200は、変換係数を走査して、量子化された変換係数を含む2次元行列から1次元ベクトルを作り出し得る。走査は、より高いエネルギー(したがって、より低い頻度)の変換係数をベクトルの前方に配置し、より低いエネルギー(したがって、より高い頻度)の変換係数をベクトルの後方に配置するように設計され得る。いくつかの例では、ビデオエンコーダ200は、シリアル化されたベクトルを作り出すために、量子化された変換係数を走査するために、あらかじめ定義された走査順序を利用し、次いで、ベクトルの量子化された変換係数をエントロピー符号化し得る。他の例では、ビデオエンコーダ200は適応型走査を実施し得る。量子化された変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ200は、たとえば、コンテキスト適応型バイナリ算術コーディング(CABAC:context adaptive binary arithmetic coding)に従って、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ200はまた、ビデオデータを復号する際のビデオデコーダ300による使用のために、符号化されたビデオデータに関連付けられたメタデータを記述するシンタックス要素についての値をエントロピー符号化し得る。
【0095】
[0088] CABACを実施するために、ビデオエンコーダ200は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの隣接値が0値であるか否かに関係し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【0096】
[0089] ビデオエンコーダ200は、さらに、ブロックベースシンタックスデータ、ピクチャベースシンタックスデータ、およびシーケンスベースシンタックスデータなどのシンタックスデータを、たとえば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、あるいはシーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、またはビデオパラメータセット(VPS)などの他のシンタックスデータ中で、ビデオデコーダ300に対して生成し得る。ビデオデコーダ300は、対応するビデオデータをどのように復号すべきかを決定するために、そのようなシンタックスデータを同様に復号し得る。
【0097】
[0090] このようにして、ビデオエンコーダ200は、符号化されたビデオデータ、たとえば、ブロック(たとえば、CU)へのピクチャの区分ならびにブロックについての予測および/または残差情報を記述するシンタックス要素を含むビットストリームを生成し得る。最終的に、ビデオデコーダ300は、ビットストリームを受信し、符号化されたビデオデータを復号し得る。
【0098】
[0091] 概して、ビデオデコーダ300は、ビットストリームの符号化されたビデオデータを復号するために、ビデオエンコーダ200によって実施されたものの逆プロセスを実施する。たとえば、ビデオデコーダ300は、ビデオエンコーダ200のCABAC符号化プロセスと逆ではあるが、それと実質的に同様の様式でCABACを使用してビットストリームのシンタックス要素についての値を復号し得る。シンタックス要素は、CTUのCUを定義するために、ピクチャをCTUに区分するための区分情報と、QTBT構造などの対応する区分構造に従う、各CTUの区分とを定義し得る。シンタックス要素は、ビデオデータのブロック(たとえば、CU)についての予測および残差情報をさらに定義し得る。
【0099】
[0092] 残差情報は、たとえば、量子化された変換係数によって表され得る。ビデオデコーダ300は、ブロックのための残差ブロックを再生するために、ブロックの量子化された変換係数を逆量子化し、逆変換し得る。ビデオデコーダ300は、ブロックのための予測ブロックを形成するために、シグナリングされた予測モード(イントラまたはインター予測)と、関連する予測情報(たとえば、インター予測のための動き情報)とを使用する。ビデオデコーダ300は、次いで、元のブロックを再生するために(サンプルごとに)予測ブロックと残差ブロックとを組み合わせ得る。ビデオデコーダ300は、ブロックの境界に沿って視覚的アーティファクトを低減するためにデブロッキングプロセスを実施することなど、追加の処理を実施し得る。
【0100】
[0093] 本開示は、概して、シンタックス要素などのある情報を「シグナリング」することに言及し得る。「シグナリング」という用語は、概して、符号化されたビデオデータを復号するために使用されるシンタックス要素および/または他のデータについての値の通信を指し得る。すなわち、ビデオエンコーダ200は、ビットストリーム中でシンタックス要素についての値をシグナリングし得る。概して、シグナリングは、ビットストリーム中で値を生成することを指す。上述のように、ソースデバイス102は、実質的にリアルタイムでビットストリームを宛先デバイス116にトランスポートするか、または、宛先デバイス116による後の取出しのためにシンタックス要素をストレージデバイス112に記憶するときに行われ得るように、非リアルタイムでビットストリームを宛先デバイス116にトランスポートし得る。
【0101】
[0094] このように、ビデオエンコーダ200およびビデオデコーダ300は、ビデオデータを復号(および/または符号化)するためのデバイスの例を表し、デバイスの例は、ビデオデータを記憶するように構成されたメモリと、回路中に実装された1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサは、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、第2の予測ブロックは、現在ブロックについての追加の予測仮説を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングすることと、ここにおいて、動き情報をコーディングするために、1つまたは複数のプロセッサは、マージモードシンタックス要素が、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成するように構成され、マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを行うように構成される。
【0102】
[0095]
図3は、本開示の技法を実施し得る例示的なビデオエンコーダ200を示すブロック図である。
図3は、説明の目的で提供されており、本開示において広く例示され、説明される技法を限定するものと見なされるべきではない。説明の目的で、本開示は、VVC(ITU-T H.266、開発中)およびHEVC(ITU-T H.265)の技法によるビデオエンコーダ200について説明する。しかしながら、本開示の技法は、AV1およびAV1ビデオコーディングフォーマットの後継など、他のビデオコーディング規格およびビデオコーディングフォーマットに合わせて構成されたビデオ符号化デバイスによって実施され得る。
【0103】
[0096]
図3の例では、ビデオエンコーダ200は、ビデオデータメモリ230と、モード選択ユニット202と、残差生成ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、フィルタユニット216と、復号ピクチャバッファ(DPB)218と、エントロピー符号化ユニット220とを含む。ビデオデータメモリ230と、モード選択ユニット202と、残差生成ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、フィルタユニット216と、DPB218と、エントロピー符号化ユニット220とのいずれかまたはすべては、1つまたは複数のプロセッサまたは処理回路において実装され得る。たとえば、ビデオエンコーダ200のユニットは、1つまたは複数の回路または論理要素として、ハードウェア回路の一部として、あるいはプロセッサ、ASIC、またはFPGAの一部として実装され得る。その上、ビデオエンコーダ200は、これらおよび他の機能を実施するための追加または代替のプロセッサまたは処理回路を含み得る。
【0104】
[0097] ビデオデータメモリ230は、ビデオエンコーダ200の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオエンコーダ200は、たとえば、ビデオソース104(
図1)から、ビデオデータメモリ230に記憶されるビデオデータを受信し得る。DPB218は、ビデオエンコーダ200による後続のビデオデータの予測において使用するための参照ビデオデータを記憶する参照ピクチャメモリとして働き得る。ビデオデータメモリ230およびDPB218は、同期ダイナミックランダムアクセスメモリ(DRAM)(SDRAM)を含むDRAM、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ230およびDPB218は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ230は、図示のように、ビデオエンコーダ200の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【0105】
[0098] 本開示では、ビデオデータメモリ230への言及は、特にそのように説明されない限り、ビデオエンコーダ200の内部のメモリに限定されるものとして解釈されるべきではなく、または特にそのように説明されない限り、ビデオエンコーダ200の外部のメモリに限定されるものとして解釈されるべきではない。そうではなく、ビデオデータメモリ230への言及は、ビデオエンコーダ200が符号化のために受信するビデオデータ(たとえば、符号化されるべきである現在ブロックについてのビデオデータ)を記憶する参照メモリとして理解されるべきである。
図1のメモリ106はまた、ビデオエンコーダ200の様々なユニットからの出力の一時的なストレージを提供し得る。
【0106】
[0099]
図3の様々なユニットは、ビデオエンコーダ200によって実施される動作を理解するのを支援するために示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装され得る。固定機能回路は、特定の機能を提供する回路を指し、実施され得る動作に関してあらかじめ設定される。プログラマブル回路は、様々なタスクを実施するように、および実施され得る動作においてフレキシブルな機能を提供するようにプログラムされ得る回路を指す。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義される様式でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、(たとえば、パラメータを受信するかまたはパラメータを出力するために)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは、概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は、別個の回路ブロック(固定機能またはプログラマブル)であり得、いくつかの例では、ユニットのうちの1つまたは複数は集積回路であり得る。
【0107】
[0100] ビデオエンコーダ200は、算術論理ユニット(ALU)、基本機能ユニット(EFU)、デジタル回路、アナログ回路、および/またはプログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオエンコーダ200の動作が、プログラマブル回路によって実行されるソフトウェアを使用して実施される例では、メモリ106(
図1)は、ビデオエンコーダ200が受信し、実行するソフトウェアの命令(たとえば、オブジェクトコード)を記憶し得るか、またはビデオエンコーダ200内の別のメモリ(図示せず)が、そのような命令を記憶し得る。
【0108】
[0101] ビデオデータメモリ230は、受信されたビデオデータを記憶するように構成される。ビデオエンコーダ200は、ビデオデータメモリ230からビデオデータのピクチャを取り出し、残差生成ユニット204とモード選択ユニット202とにビデオデータを提供し得る。ビデオデータメモリ230中のビデオデータは、符号化されるべきである生のビデオデータであり得る。
【0109】
[0102] モード選択ユニット202は、動き推定ユニット222と、動き補償ユニット224と、イントラ予測ユニット226とを含む。モード選択ユニット202は、他の予測モードに従ってビデオ予測を実施するための追加の機能ユニットを含み得る。例として、モード選択ユニット202は、パレットユニット、(動き推定ユニット222および/または動き補償ユニット224の一部であり得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含み得る。
【0110】
[0103] モード選択ユニット202は、概して、符号化パラメータの組合せと、そのような組合せについての得られたレートひずみ値とをテストするために、複数の符号化パスを協調させる。符号化パラメータは、CUへのCTUの区分、CUのための予測モード、CUの残差データのための変換タイプ、CUの残差データのための量子化パラメータなどを含み得る。モード選択ユニット202は、他のテストされた組合せよりも良好であるレートひずみ値を有する符号化パラメータの組合せを最終的に選択し得る。
【0111】
[0104] ビデオエンコーダ200は、ビデオデータメモリ230から取り出されたピクチャを一連のCTUに区分し、スライス内の1つまたは複数のCTUをカプセル化し得る。モード選択ユニット202は、上記で説明されたMTT構造、QTBT構造、スーパーブロック構造またはクワッドツリー構造など、ツリー構造に従ってピクチャのCTUを区分し得る。上記で説明されたように、ビデオエンコーダ200は、ツリー構造に従ってCTUを区分することから1つまたは複数のCUを形成し得る。そのようなCUは、概して「ビデオブロック」または「ブロック」と呼ばれることもある。
【0112】
[0105] 概して、モード選択ユニット202はまた、現在ブロック(たとえば、現在CU、またはHEVCでは、PUとTUとの重複する部分)についての予測ブロックを生成するように、それの構成要素(たとえば、動き推定ユニット222、動き補償ユニット224、およびイントラ予測ユニット226)を制御する。現在ブロックのインター予測のために、動き推定ユニット222は、1つまたは複数の参照ピクチャ(たとえば、DPB218に記憶された1つまたは複数の前にコーディングされたピクチャ)中で1つまたは複数の厳密に一致する参照ブロックを識別するために動き探索を実施し得る。特に、動き推定ユニット222は、たとえば、絶対差分和(SAD)、2乗差分和(SSD)、平均絶対差(MAD)、平均2乗差(MSD)などに従って、現在ブロックに対して潜在的参照ブロックがどのくらい類似しているかを表す値を計算し得る。動き推定ユニット222は、概して、現在ブロックと考慮されている参照ブロックとの間のサンプルごとの差分を使用してこれらの計算を実施し得る。動き推定ユニット222は、現在ブロックに最も厳密に一致する参照ブロックを示す、これらの計算から得られた最も低い値を有する参照ブロックを識別し得る。
【0113】
[0106] 動き推定ユニット222は、現在ピクチャ中の現在ブロックの位置に対して参照ピクチャ中の参照ブロックの位置を定義する1つまたは複数の動きベクトル(MV)を形成し得る。動き推定ユニット222は、次いで、動きベクトルを動き補償ユニット224に提供し得る。たとえば、単方向インター予測(uni-directional inter-prediction)では、動き推定ユニット222は、単一の動きベクトルを提供し得るが、双方向インター予測(bi-directional inter-prediction)では、動き推定ユニット222は、2つの動きベクトルを提供し得る。動き補償ユニット224は、次いで、動きベクトルを使用して予測ブロックを生成し得る。たとえば、動き補償ユニット224は、動きベクトルを使用して参照ブロックのデータを取り出し得る。別の例として、動きベクトルが分数サンプル精度を有する場合、動き補償ユニット224は、1つまたは複数の補間フィルタに従って予測ブロックについての値を補間し得る。その上、双方向インター予測では、動き補償ユニット224は、それぞれの動きベクトルによって識別された2つの参照ブロックについてのデータを取り出し、たとえば、サンプルごとの平均化または重み付き平均化を通して、取り出されたデータを組み合わせ得る。
【0114】
[0107] 複数仮説インター予測を実施しているとき、動き推定ユニット222および動き補償ユニット224は、DPB218のデータを使用して、現在ブロックについての追加の仮説として1つまたは複数の追加の予測ブロックを生成し得る。さらに、ビデオエンコーダ200は、1つまたは複数の追加の予測仮説について動き情報を符号化するために、本開示の様々な技法のいずれかを適用するように構成され得る。
【0115】
[0108] たとえば、動き補償ユニット224は、ベースモード仮説と追加の仮説の両方を生成し得る。動き補償ユニット224は、単方向インター予測または双方向インター予測を使用してベースモード仮説を生成し得る。動き補償ユニット224はまた、単方向インター予測または双方向インター予測を使用して追加の仮説を生成し得る。いくつかの例では、追加の仮説は単方向予測のみに制限され得る。本開示の技法によれば、モード選択ユニット202は、追加の仮説についての動き情報をマージモードまたはAMVPモードを使用して符号化すべきかを決定し得る。マージモードを使用して追加の仮説についての動き情報を符号化すべきと決定したことに応答して、モード選択ユニット202は、追加の仮説についての動き情報がマージモードを使用して符号化されることを示すマージモードシンタックス要素に対する値を割り当て、マージモードを使用して動き情報を符号化し得る。
【0116】
[0109] 特に、マージモードを使用して追加の仮説についての動き情報を符号化するために、モード選択ユニット202はマージ候補リストを構築し得る。すなわち、モード選択ユニット202は、符号化されている現在ブロックに隣接するブロックから動き情報を決定し、特定の隣接ブロックについての動き情報をマージ候補リストに追加し得る。モード選択ユニット202は、単方向予測候補(uni-directional prediction candidate)(「単予測候補(uni-prediction candidate)」とも呼ばれる)のみにマージ候補を制限するように構成され得る。隣接ブロックが双予測を使用して予測された場合、モード選択ユニット202は、
図2に関して上記で説明されたように、隣接ブロックから1つまたは2つのマージ候補を生成し得る。たとえば、モード選択ユニット202は、隣接ブロックについての動き情報の第1のセット(たとえば、L0動き情報)から第1のマージ候補を構築し、いくつかの例では、隣接ブロックの動き情報の第2のセット(たとえば、L1動き情報)から第2のマージ候補を構築し得る。
【0117】
[0110] モード選択ユニット202はまた、追加の仮説についての動き情報を符号化するためにどのマージ候補が使用されるべきかを示す値を有するマージインデックスを形成し得る。特に、モード選択ユニット202は、マージ候補リスト内のマージ候補のいずれかが、追加の仮説について動き推定ユニット222によって形成された動き情報と一致する動き情報を有するかどうかを決定し得る。モード選択ユニット202は、追加の仮説についての動き情報を符号化するために使用されるべきマージ候補として、一致する動き情報を有するマージ候補リスト内のマージ候補のうちの1つを選択し得る。
【0118】
[0111] 動き補償ユニット224はさらに、たとえば、サンプル単位の各サンプルの平均または重み付けされた組合せとして、追加の仮説とベース仮説を組み合わせ得る。追加の仮説とベース仮説を組み合わせた後、動き補償ユニット224は、得られた予測ブロックを残差生成ユニット204および再構築ユニット214に提供し得る。
【0119】
[0112] 加えてまたは代替として、モード選択ユニット202は、局所照明補償(LIC)がベース仮説に適用されたかどうかに応じて、LICを追加の仮説に適用すべきかどうかを決定し得る。たとえば、モード選択ユニット202は、ベース仮説にLICが適用された場合には追加の仮説にLICが適用されるべきであり、そうでない場合にはLICを適用すべきでないと決定し得る。別の例として、LICがベース仮説に適用され、追加の仮説についての動き情報がAMVPを使用して符号化された場合、モード選択ユニット202は、追加の仮説に対してLICを実施すべきと決定し得る。代替的に、LICがベース仮説に適用され、追加の仮説についての動き情報がマージモードを使用して符号化された場合、モード選択ユニット202は、追加の仮説に対してLICを実施すべきかどうかを決定し、追加の仮説に対してLICを実施すべきかどうかを示すLICシンタックス要素(たとえば、LICフラグ)を符号化し得る。
【0120】
[0113] 加えてまたは代替として、モード選択ユニット202は、1/2サンプル位置に対する値を補間するために様々な補間フィルタのうちの使用すべきフィルタを決定し得る。特に、前のブロックのベース仮説についての動きベクトルが1/2サンプル精度を有し、AMVPを使用して符号化され、前のブロックが追加の仮説の動き情報を符号化するための候補として選択された場合、モード選択ユニット202は、1/2サンプル位置の値を補間するために6タップ補間フィルタを使用すべきと決定し得る。
【0121】
[0114] AV1ビデオコーディングフォーマットに従って動作するとき、動き推定ユニット222および動き補償ユニット224は、並進動き補償、アフィン動き補償、オーバーラップブロック動き補償(OBMC:overlapped block motion compensation)、および/または複合インター-イントラ予測を使用して、ビデオデータのコーディングブロック(たとえば、ルーマコーディングブロックとクロマコーディングブロックの両方)を符号化するように構成され得る。
【0122】
[0115] 別の例として、イントラ予測、またはイントラ予測コーディングのために、イントラ予測ユニット226は、現在ブロックに隣接しているサンプルから予測ブロックを生成し得る。たとえば、方向性モードでは、イントラ予測ユニット226は、概して、予測ブロックを作り出すために、隣接サンプルの値を数学的に組み合わせ、現在ブロックにわたって定義された方向にこれらの計算された値をポピュレートし得る。別の例として、DCモードでは、イントラ予測ユニット226は、現在ブロックに対する隣接サンプルの平均を計算し、予測ブロックの各サンプルについてこの得られた平均を含むように予測ブロックを生成し得る。
【0123】
[0116] AV1ビデオコーディングフォーマットに従って動作しているとき、イントラ予測ユニット226は、方向性イントラ予測、非方向性イントラ予測、再帰フィルタイントラ予測、クロマフロムルーマ(CFL:chroma-from-luma)予測、イントラブロックコピー(IBC)、および/またはカラーパレットモードを使用して、ビデオデータのコーディングブロック(たとえば、ルーマコーディングブロックとクロマコーディングブロックの両方)を符号化するように構成され得る。モード選択ユニット202は、他の予測モードに従ってビデオ予測を実施するための追加機能ユニットを含み得る。
【0124】
[0117] モード選択ユニット202は、予測ブロックを残差生成ユニット204に提供する。残差生成ユニット204は、ビデオデータメモリ230から現在ブロックの生のコーディングされていないバージョンを受信し、モード選択ユニット202から予測ブロックを受信する。残差生成ユニット204は、現在ブロックと予測ブロックとの間のサンプルごとの差分を計算する。得られたサンプルごとの差分は、現在ブロックについての残差ブロックを定義する。いくつかの例では、残差生成ユニット204はまた、残差差分パルスコード変調(RDPCM)を使用して残差ブロックを生成するために、残差ブロック中のサンプル値間の差分を決定し得る。いくつかの例では、残差生成ユニット204は、バイナリ減算を実施する1つまたは複数の減算器回路を使用して形成され得る。
【0125】
[0118] モード選択ユニット202がCUをPUに区分する例では、各PUは、ルーマ予測ユニットと、対応するクロマ予測ユニットとに関連付けられ得る。ビデオエンコーダ200およびビデオデコーダ300は、様々なサイズを有するPUをサポートし得る。上記で示されたように、CUのサイズは、CUのルーマコーディングブロックのサイズを指し得、PUのサイズは、PUのルーマ予測ユニットのサイズを指し得る。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ200は、イントラ予測のための2N×2NまたはN×NのPUサイズと、インター予測のための2N×2N、2N×N、N×2N、N×N、または同様のものの対称PUサイズとをサポートし得る。ビデオエンコーダ200およびビデオデコーダ300はまた、インター予測のための2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズについて非対称区分をサポートし得る。
【0126】
[0119] モード選択ユニット202がCUをPUにさらに区分しない例では、各CUは、ルーマコーディングブロックと、対応するクロマコーディングブロックとに関連付けられ得る。上記のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指し得る。ビデオエンコーダ200およびビデオデコーダ300は、2N×2N、2N×N、またはN×2NのCUサイズをサポートし得る。
【0127】
[0120] いくつかの例として、イントラブロックコピーモードコーディング、アフィンモードコーディング、および線形モデル(LM)モードコーディングなどの他のビデオコーディング技法では、モード選択ユニット202は、コーディング技法に関連付けられたそれぞれのユニットを介して、符号化されている現在ブロックについての予測ブロックを生成する。パレットモードコーディングなど、いくつかの例では、モード選択ユニット202は、予測ブロックを生成しないことがあり、代わりに、選択されたパレットに基づいてブロックを再構築すべき様式を示すシンタックス要素を生成する。そのようなモードでは、モード選択ユニット202は、符号化されるべきこれらのシンタックス要素をエントロピー符号化ユニット220に提供し得る。
【0128】
[0121] 上記で説明されたように、残差生成ユニット204は、現在ブロックについてのビデオデータと、対応する予測ブロックとを受信する。残差生成ユニット204は、次いで、現在ブロックについての残差ブロックを生成する。残差ブロックを生成するために、残差生成ユニット204は、予測ブロックと現在ブロックとの間のサンプルごとの差分を計算する。
【0129】
[0122] 変換処理ユニット206は、(本明細書では「変換係数ブロック」と呼ばれる)変換係数のブロックを生成するために、残差ブロックに1つまたは複数の変換を適用する。変換処理ユニット206は、変換係数ブロックを形成するために、残差ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット206は、離散コサイン変換(DCT)、方向性変換、カルーネンレーベ変換(KLT)、または概念的に同様の変換を残差ブロックに適用し得る。いくつかの例では、変換処理ユニット206は、残差ブロックに複数の変換、たとえば、回転変換などの1次変換および2次変換を実施し得る。いくつかの例では、変換処理ユニット206は、残差ブロックに変換を適用しない。
【0130】
[0123] AV1に従って動作しているとき、変換処理ユニット206は、変換係数のブロック(本明細書では「変換係数ブロック」と呼ばれる)を生成するために、1つまたは複数の変換を残差ブロックに適用し得る。変換処理ユニット206は様々な変換を残差ブロックに適用して変換係数ブロックを形成し得る。たとえば、変換処理ユニット206は、離散コサイン変換(DCT)、非対称離散サイン変換(ADST)、反転ADST(たとえば、逆順のADST)、および恒等変換(IDTX)を含み得る、水平/垂直変換組合せを適用し得る。恒等変換を使用しているとき、この変換は、垂直方向または水平方向のいずれかでスキップされる。いくつかの例では、変換処理がスキップされ得る。
【0131】
[0124] 量子化ユニット208は、量子化された変換係数ブロックを作り出すために、変換係数ブロック中の変換係数を量子化し得る。量子化ユニット208は、現在ブロックに関連付けられた量子化パラメータ(QP)値に従って変換係数ブロックの変換係数を量子化し得る。ビデオエンコーダ200は(たとえば、モード選択ユニット202を介して)、CUに関連付けられたQP値を調整することによって、現在ブロックに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。量子化は、情報の損失をもたらし得、したがって、量子化された変換係数は、変換処理ユニット206によって作り出された元の変換係数よりも低い精度を有し得る。
【0132】
[0125] 逆量子化ユニット210および逆変換処理ユニット212は、変換係数ブロックから残差ブロックを再構築するために、それぞれ、量子化された変換係数ブロックに逆量子化および逆変換を適用し得る。再構築ユニット214は、再構築された残差ブロックと、モード選択ユニット202によって生成された予測ブロックとに基づいて、(潜在的にある程度のひずみを伴うが)現在ブロックに対応する再構築されたブロックを作り出し得る。たとえば、再構築ユニット214は、再構築されたブロックを作り出すために、モード選択ユニット202によって生成された予測ブロックからの対応するサンプルに、再構築された残差ブロックのサンプルを加算し得る。
【0133】
[0126] フィルタユニット216は、再構築されたブロックに対して1つまたは複数のフィルタ動作を実施し得る。たとえば、フィルタユニット216は、CUのエッジに沿ってブロッキネスアーティファクト(blockiness artifact)を低減するためのデブロッキング動作を実施し得る。フィルタユニット216の動作は、いくつかの例では、スキップされ得る。
【0134】
[0127] AV1に従って動作しているとき、フィルタユニット216は、再構築されたブロックに対して1つまたは複数のフィルタ動作を実施し得る。たとえば、フィルタユニット216は、CUのエッジに沿ったブロッキネスアーティファクトを低減するために、デブロッキング動作を実施し得る。他の例では、フィルタユニット216は、デブロッキングの後に適用され得る制約付き方向強調フィルタ(CDEF)を適用してよく、推定されたエッジ方向に基づく分離不可能な非線形の低域通過方向フィルタの適用を含み得る。フィルタユニット216はまた、CDEFの後に適用されるループ復元フィルタを含んでよく、分離可能な対称正規化ウィーナーフィルタまたはデュアルセルフガイドフィルタを含み得る。
【0135】
[0128] ビデオエンコーダ200は、再構築されたブロックをDPB218に記憶する。たとえば、フィルタユニット216の動作が実施されない例では、再構築ユニット214は、再構築されたブロックをDPB218に記憶し得る。フィルタユニット216の動作が実施される例では、フィルタユニット216は、フィルタ処理された再構築されたブロックをDPB218に記憶し得る。動き推定ユニット222および動き補償ユニット224は、後で符号化されるピクチャのブロックをインター予測するために、再構築(および潜在的にフィルタ処理)されたブロックから形成された参照ピクチャをDPB218から取り出し得る。さらに、イントラ予測ユニット226は、現在ピクチャ中の他のブロックをイントラ予測するために、現在ピクチャのDPB218中の再構築されたブロックを使用し得る。
【0136】
[0129] 概して、エントロピー符号化ユニット220は、ビデオエンコーダ200の他の機能構成要素から受信されたシンタックス要素をエントロピー符号化し得る。たとえば、エントロピー符号化ユニット220は、量子化ユニット208からの量子化された変換係数ブロックをエントロピー符号化し得る。別の例として、エントロピー符号化ユニット220は、モード選択ユニット202からの予測シンタックス要素(たとえば、インター予測のための動き情報またはイントラ予測のためのイントラモード情報)をエントロピー符号化し得る。エントロピー符号化ユニット220は、エントロピー符号化されたデータを生成するために、ビデオデータの別の例であるシンタックス要素に対して1つまたは複数のエントロピー符号化動作を実施し得る。たとえば、エントロピー符号化ユニット220は、コンテキスト適応型可変長コーディング(CAVLC)動作、CABAC動作、可変対可変(V2V)長コーディング動作、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)動作、確率間隔区分エントロピー(PIPE)コーディング動作、指数ゴロム符号化動作、または別のタイプのエントロピー符号化動作をデータに対して実施し得る。いくつかの例では、エントロピー符号化ユニット220は、シンタックス要素がエントロピー符号化されないバイパスモードで動作し得る。
【0137】
[0130] ビデオエンコーダ200は、スライスまたはピクチャのブロックを再構築するために必要とされるエントロピー符号化されたシンタックス要素を含むビットストリームを出力し得る。特に、エントロピー符号化ユニット220がビットストリームを出力し得る。
【0138】
[0131] AV1に従って、エントロピー符号化ユニット220は、シンボル間適応型マルチシンボルコーダとして構成され得る。AV1におけるシンタックス要素はN個の要素のアルファベットを含み、コンテキスト(たとえば、確率モデル)はN個の確率のセットを含む。エントロピー符号化ユニット220は、nビット(たとえば、15ビット)累積分布関数(CDF)として確率を記憶し得る。エントロピー符号化ユニット220は、コンテキストを更新するために、アルファベットサイズに基づく更新係数を用いて再帰的スケーリングを実施し得る。
【0139】
[0132] 上記で説明された動作は、ブロックに関して説明されている。そのような説明は、ルーマコーディングブロックおよび/またはクロマコーディングブロックのための動作であるものとして理解されるべきである。上記で説明されたように、いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、CUのルーマ成分およびクロマ成分である。いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、PUのルーマ成分およびクロマ成分である。
【0140】
[0133] いくつかの例では、ルーマコーディングブロックに関して実施される動作は、クロマコーディングブロックのために繰り返される必要はない。一例として、ルーマコーディングブロックのための動きベクトル(MV)と参照ピクチャとを識別するための動作は、クロマブロックのためのMVと参照ピクチャとを識別するために繰り返される必要はない。むしろ、ルーマコーディングブロックのためのMVは、クロマブロックのためのMVを決定するためにスケーリングされ得、参照ピクチャは同じであり得る。別の例として、イントラ予測プロセスは、ルーマコーディングブロックおよびクロマコーディングブロックについて同じであり得る。
【0141】
[0134]
図4は、本開示の技法を実施し得る例示的なビデオデコーダ300を示すブロック図である。
図4は、説明の目的で提供されており、本開示において広く例示され、説明される技法を限定するものではない。説明の目的で、本開示は、VVC(ITU-T H.266、開発中)およびHEVC(ITU-T H.265)の技法に従って、ビデオデコーダ300について説明する。しかしながら、本開示の技法は、他のビデオコーディング規格に構成されたビデオコーディングデバイスによって実施され得る。
【0142】
[0135]
図4の例では、ビデオデコーダ300は、コード化ピクチャバッファ(CPB)メモリ320と、エントロピー復号ユニット302と、予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312と、復号ピクチャバッファ(DPB)314とを含む。CPBメモリ320と、エントロピー復号ユニット302と、予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312と、DPB314とのいずれかまたはすべては、1つまたは複数のプロセッサにおいてまたは処理回路において実装され得る。たとえば、ビデオデコーダ300のユニットは、1つまたは複数の回路または論理要素として、ハードウェア回路の一部として、あるいはプロセッサ、ASIC、またはFPGAの一部として実装され得る。その上、ビデオデコーダ300は、これらおよび他の機能を実施するための追加または代替のプロセッサまたは処理回路を含み得る。
【0143】
[0136] 予測処理ユニット304は、動き補償ユニット316と、イントラ予測ユニット318とを含む。予測処理ユニット304は、他の予測モードに従って予測を実施するための追加のユニットを含み得る。例として、予測処理ユニット304は、パレットユニット、(動き補償ユニット316の一部を形成し得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含み得る。他の例では、ビデオデコーダ300は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【0144】
[0137] AV1に従って動作するとき、補償ユニット316は、上記に説明されたように、並進動き補償、アフィン動き補償、OBMC、および/または複合インター-イントラ予測を使用して、ビデオデータのコーディングブロック(たとえば、ルーマコーディングブロックとクロマコーディングブロックの両方)を復号するように構成され得る。イントラ予測ユニット318は、上記で説明されたように、方向性イントラ予測、非方向性イントラ予測、再帰フィルタイントラ予測、CFL、イントラブロックコピー(IBC)、および/またはカラーパレットモードを使用して、ビデオデータのコーディングブロック(たとえば、ルーマコーディングブロックとクロマコーディングブロックの両方)を復号するように構成され得る。
【0145】
[0138] CPBメモリ320は、ビデオデコーダ300の構成要素によって復号されるべき、符号化されたビデオビットストリームなどのビデオデータを記憶し得る。CPBメモリ320に記憶されるビデオデータは、たとえば、コンピュータ可読媒体110(
図1)から取得され得る。CPBメモリ320は、符号化されたビデオビットストリームからの符号化されたビデオデータ(たとえば、シンタックス要素)を記憶するCPBを含み得る。また、CPBメモリ320は、ビデオデコーダ300の様々なユニットからの出力を表す一時データなど、コーディングされたピクチャのシンタックス要素以外のビデオデータを記憶し得る。DPB314は、概して、符号化されたビデオビットストリームの後続のデータまたはピクチャを復号するときにビデオデコーダ300が参照ビデオデータとして出力および/または使用し得る復号されたピクチャを記憶する。CPBメモリ320およびDPB314は、同期ダイナミックランダムアクセスメモリ(DRAM)(SDRAM)を含むDRAM、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM)、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。CPBメモリ320およびDPB314は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、CPBメモリ320は、ビデオデコーダ300の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【0146】
[0139] 追加または代替として、いくつかの例では、ビデオデコーダ300は、メモリ120(
図1)からコーディングされたビデオデータを取り出し得る。すなわち、メモリ120は、CPBメモリ320とともに上記で説明されたようにデータを記憶し得る。同様に、メモリ120は、ビデオデコーダ300の機能の一部または全部が、ビデオデコーダ300の処理回路によって実行されるべきソフトウェアにおいて実装されたとき、ビデオデコーダ300によって実行されるべき命令を記憶し得る。
【0147】
[0140]
図4に示されている様々なユニットは、ビデオデコーダ300によって実施される動作を理解するのを支援するために示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装され得る。
図3と同様に、固定機能回路は、特定の機能を提供する回路を指し、実施され得る動作に関してあらかじめ設定される。プログラマブル回路は、様々なタスクを実施するように、および実施され得る動作においてフレキシブルな機能を提供するようにプログラムされ得る回路を指す。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義される様式でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、(たとえば、パラメータを受信するかまたはパラメータを出力するために)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは、概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は、別個の回路ブロック(固定機能またはプログラマブル)であり得、いくつかの例では、ユニットのうちの1つまたは複数は、集積回路であり得る。
【0148】
[0141] ビデオデコーダ300は、ALU、EFU、デジタル回路、アナログ回路、および/またはプログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオデコーダ300の動作が、プログラマブル回路上で実行するソフトウェアによって実施される例では、オンチップまたはオフチップメモリは、ビデオデコーダ300が受信し、実行するソフトウェアの命令(たとえば、オブジェクトコード)を記憶し得る。
【0149】
[0142] エントロピー復号ユニット302は、CPBから符号化されたビデオデータを受信し、シンタックス要素を再生するためにビデオデータをエントロピー復号し得る。予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312とは、ビットストリームから抽出されたシンタックス要素に基づいて、復号されたビデオデータを生成し得る。
【0150】
[0143] 概して、ビデオデコーダ300は、ブロックごとにピクチャを再構築する。ビデオデコーダ300は、各ブロックに対して個々に再構築動作を実施し得る(ここで、現在再構築されている、すなわち、復号されているブロックは、「現在ブロック」と呼ばれることがある)。
【0151】
[0144] エントロピー復号ユニット302は、量子化された変換係数ブロックの量子化された変換係数を定義するシンタックス要素、ならびに量子化パラメータ(QP)および/または(1つまたは複数の)変換モード指示などの変換情報をエントロピー復号し得る。逆量子化ユニット306は、量子化の程度と、同様に、逆量子化ユニット306が適用すべき逆量子化の程度とを決定するために、量子化された変換係数ブロックに関連付けられたQPを使用し得る。逆量子化ユニット306は、量子化された変換係数を逆量子化するために、たとえば、ビット単位の左シフト動作を実施し得る。逆量子化ユニット306は、それにより、変換係数を含む変換係数ブロックを形成し得る。
【0152】
[0145] 逆量子化ユニット306が変換係数ブロックを形成した後に、逆変換処理ユニット308は、現在ブロックに関連付けられた残差ブロックを生成するために、変換係数ブロックに1つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット308は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、または別の逆変換を変換係数ブロックに適用し得る。
【0153】
[0146] さらに、予測処理ユニット304は、エントロピー復号ユニット302によってエントロピー復号された予測情報シンタックス要素に従って予測ブロックを生成する。たとえば、現在ブロックがインター予測されることを予測情報シンタックス要素が示す場合、動き補償ユニット316は予測ブロックを生成し得る。この場合、予測情報シンタックス要素は、参照ブロックをそれから取り出すべきDPB314中の参照ピクチャ、ならびに現在ピクチャ中の現在ブロックのロケーションに対する参照ピクチャ中の参照ブロックのロケーションを識別する動きベクトルを示し得る。動き補償ユニット316は、概して、動き補償ユニット224(
図3)に関して説明されたものと実質的に同様である様式で、インター予測プロセスを実施し得る。
【0154】
[0147] 複数仮説インター予測を実施しているとき、動き補償ユニット316は、DPB314のデータを使用して、現在ブロックについての追加の仮説として1つまたは複数の追加の予測ブロックを生成し得る。さらに、ビデオデコーダ300は、1つまたは複数の追加の予測仮説について動き情報を復号するために、本開示の様々な技法のいずれかを適用するように構成され得る。
【0155】
[0148] たとえば、動き補償ユニット316は、ベースモード仮説と追加の仮説の両方を生成し得る。動き補償ユニット316は、単方向インター予測または双方向インター予測を使用してベースモード仮説を生成し得る。動き補償ユニット316はまた、単方向インター予測または双方向インター予測を使用して追加の仮説を生成し得る。いくつかの例では、追加の仮説は単方向予測のみに制限され得る。本開示の技法によれば、予測処理ユニット304は、追加の仮説についての動き情報をマージモードまたはAMVPモードを使用して復号すべきかを決定し得る。特に、予測処理ユニット304は、追加の仮説についての動き情報がマージモードまたはAMVPモードを使用して復号されるべきかを示すマージモードシンタックス要素の値を受信し、示されたモードを使用して動き情報を復号し得る。
【0156】
[0149] マージモードを使用して追加の仮説についての動き情報を復号するために、予測処理ユニット304はマージ候補リストを構築し得る。すなわち、予測処理ユニット304は、符号化されている現在ブロックに隣接するブロックから動き情報を決定し、特定の隣接ブロックについての動き情報をマージ候補リストに追加し得る。予測処理ユニット304は、単方向予測候補(「単予測候補」とも呼ばれる)のみにマージ候補を制限するように構成され得る。隣接ブロックが双予測を使用して予測された場合、予測処理ユニット304は、
図2に関して上記で説明されたように、隣接ブロックから1つまたは2つのマージ候補を生成し得る。たとえば、予測処理ユニット304は、隣接ブロックについての動き情報の第1のセット(たとえば、L0動き情報)から第1のマージ候補を構築し、いくつかの例では、隣接ブロックについての動き情報の第2のセット(たとえば、L1動き情報)から第2のマージ候補を構築し得る。
【0157】
[0150] 予測処理ユニット304はまた、追加の仮説についての動き情報を復号するためにどのマージ候補が使用されるべきかを示す値を有するマージインデックスを受信し得る。予測処理ユニット304は、追加の仮説についての動き情報を復号するために使用されるべきマージ候補として、マージインデックスに対応するマージ候補リスト内のマージ候補のうちの1つを決定し得る。
【0158】
[0151] 動き補償ユニット316はさらに、たとえば、サンプル単位の各サンプルの平均または重み付けされた組合せとして、追加の仮説とベース仮説を組み合わせ得る。追加の仮説とベース仮説を組み合わせた後、動き補償ユニット316は、得られた予測ブロックを再構築ユニット310に提供し得る。
【0159】
[0152] 加えてまたは代替として、予測処理ユニット304は、局所照明補償(LIC)がベース仮説に適用されたかどうかに応じて、LICを追加の仮説に適用すべきかどうかを決定し得る。たとえば、予測処理ユニット304は、ベース仮説にLICが適用された場合には追加の仮説にLICが適用されるべきであり、そうでない場合にはLICを適用すべきでないと決定し得る。別の例として、LICがベース仮説に適用され、追加の仮説についての動き情報がAMVPを使用して復号された場合、予測処理ユニット304は、追加の仮説に対してLICを実施すべきと決定し得る。代替的に、LICがベース仮説に適用され、追加の仮説についての動き情報がマージモードを使用して復号された場合、予測処理ユニット304は、追加の仮説に対してLICを実施すべきかどうかを示すLICシンタックス要素(たとえば、LICフラグ)を復号し得る。
【0160】
[0153] 加えてまたは代替として、予測処理ユニット304は、1/2サンプル位置に対する値を補間するために様々な補間フィルタのうちの使用すべきフィルタを決定し得る。特に、前のブロックのベース仮説についての動きベクトルが1/2サンプル精度を有し、AMVPを使用して復号され、前のブロックが追加の仮説の動き情報を復号するための候補として選択された場合、予測処理ユニット304は、1/2サンプル位置の値を補間するために6タップ補間フィルタを使用すべきと決定し得る。
【0161】
[0154] 別の例として、予測情報シンタックス要素が、現在ブロックがイントラ予測されることを示す場合、イントラ予測ユニット318は、予測情報シンタックス要素によって示されるイントラ予測モードに従って予測ブロックを生成し得る。この場合も、イントラ予測ユニット318は、概して、イントラ予測ユニット226(
図3)に関して説明されたものと実質的に同様である様式で、イントラ予測プロセスを実施し得る。イントラ予測ユニット318は、DPB314から、現在ブロックに対する隣接サンプルのデータを取り出し得る。
【0162】
[0155] 再構築ユニット310は、予測ブロックと残差ブロックとを使用して現在ブロックを再構築し得る。たとえば、再構築ユニット310は、現在ブロックを再構築するために、予測ブロックの対応するサンプルに残差ブロックのサンプルを加算し得る。
【0163】
[0156] フィルタユニット312は、再構築されたブロックに対して1つまたは複数のフィルタ動作を実施し得る。たとえば、フィルタユニット312は、再構築されたブロックのエッジに沿ってブロッキネスアーティファクトを低減するためのデブロッキング動作を実施し得る。フィルタユニット312の動作は、必ずしもすべての例において実施されるとは限らない。
【0164】
[0157] ビデオデコーダ300は、再構築されたブロックをDPB314に記憶し得る。たとえば、フィルタユニット312の動作が実施されない例では、再構築ユニット310は、再構築されたブロックをDPB314に記憶し得る。フィルタユニット312の動作が実施される例では、フィルタユニット312は、フィルタ処理された再構築されたブロックをDPB314に記憶し得る。上記で説明されたように、DPB314は、イントラ予測のための現在ピクチャのサンプル、および後続の動き補償のための前に復号されたピクチャなど、参照情報を、予測処理ユニット304に提供し得る。その上、ビデオデコーダ300は、DPB314からの復号されたピクチャ(たとえば、復号されたビデオ)を、
図1のディスプレイデバイス118などのディスプレイデバイス上での後続の提示のために、出力し得る。
【0165】
[0158]
図5は、本開示の技法による、現在ブロックを符号化するための例示的な方法を示すフローチャートである。現在ブロックは現在CUを備え得る。ビデオエンコーダ200(
図1および
図3)に関して説明されるが、他のデバイスが
図5の方法と同様の方法を実施するように構成され得ることを理解されたい。
【0166】
[0159] この例では、ビデオエンコーダ200は、最初に、現在ブロックを予測する(350)。たとえば、ビデオエンコーダ200は、現在ブロックについての予測ブロックを形成し得る。特に、ビデオエンコーダ200は、複数仮説インター予測を使用して予測ブロックを形成し得る。ビデオエンコーダ200は、次いで、現在ブロックのための残差ブロックを計算し得る(352)。残差ブロックを計算するために、ビデオエンコーダ200は、元の符号化されていないブロックと、現在ブロックのための予測ブロックとの間の差分を計算し得る。ビデオエンコーダ200は、次いで、残差ブロックを変換し、残差ブロックの変換係数を量子化し得る(354)。次に、ビデオエンコーダ200は、残差ブロックの量子化された変換係数を走査し得る(356)。走査中に、または走査に続いて、ビデオエンコーダ200は、係数と予測情報とをエントロピー符号化し得る(358)。たとえば、ビデオエンコーダ200は、CAVLCまたはCABACを使用してデータを符号化し得る。その上、ビデオエンコーダ200は、本開示の様々な技法のいずれかに従って、マージモードを使用して、1つまたは複数の追加の仮説についての動き情報を符号化し得る。ビデオエンコーダ200は、次いで、ブロックのエントロピー符号化されたデータを出力し得る(360)。
【0167】
[0160] ビデオエンコーダ200はまた、(たとえば、インター予測モードまたはイントラ予測モードにおいて)後でコーディングされるデータのための参照データとして現在ブロックの復号されたバージョンを使用するために、現在ブロックを符号化することの後に現在ブロックを復号し得る。したがって、ビデオエンコーダ200は、残差ブロックを再生するために係数を逆量子化し、逆変換し得る(362)。ビデオエンコーダ200は、復号されたブロックを形成するために、残差ブロックを予測ブロックと組み合わせ得る(364)。いくつかの例では、ビデオエンコーダ200は、本開示の様々な技法のいずれかに従って、局所照明補償(LIC)を実施し得る。次いで、ビデオエンコーダ200は、復号されたブロックをDPB218に記憶し得る(366)。
【0168】
[0161]
図6は、本開示の技法による、ビデオデータの現在ブロックを復号するための例示的な方法を示すフローチャートである。現在ブロックは現在CUを備え得る。ビデオデコーダ300(
図1および
図4)に関して説明されるが、他のデバイスが
図6の方法と同様の方法を実施するように構成され得ることを理解されたい。
【0169】
[0162] ビデオデコーダ300は、エントロピー符号化された予測情報、および現在ブロックに対応する残差ブロックの変換係数についてのエントロピー符号化されたデータなど、現在ブロックについてのエントロピー符号化されたデータを受信し得る(370)。ビデオデコーダ300は、現在ブロックのための予測情報を決定するために、および残差ブロックの変換係数を再生するために、エントロピー符号化されたデータをエントロピー復号し得る(372)。たとえば、ビデオデコーダ300は、本開示の様々な技法のいずれかを使用して、マージモードにおいて1つまたは複数の追加の予測仮説についての動き情報をエントロピー復号し得る。ビデオデコーダ300は、現在ブロックのための予測ブロックを計算するために、たとえば、現在ブロックのための予測情報によって示される複数仮説インター予測モードを使用して、現在ブロックを予測し得る(374)。ビデオデコーダ300は、次いで、量子化された変換係数のブロックを作成するために、再生された変換係数を逆走査し得る(376)。ビデオデコーダ300は、次いで、残差ブロックを作り出すために、変換係数を逆量子化し、変換係数に逆変換を適用し得る(378)。ビデオデコーダ300は、予測ブロックと残差ブロックとを組み合わせることによって、最終的に現在ブロックを復号し得る(380)。いくつかの例では、ビデオデコーダ300は、本開示の様々な技法のいずれかに従って、復号されたブロックに対して局所照明補償(LIC)をさらに実施し得る。
【0170】
[0163]
図7は、本開示の技法による、ビデオデータを復号する例示的な方法を示すフローチャートである。
図7の方法は、
図1および
図3のビデオエンコーダ200などのビデオエンコーダによって実施され得る。ビデオ符号化プロセスの一部として実施される場合、
図7の方法は、
図5のステップ350およびステップ362~364に対応し得る。代替的に、
図7の方法は、
図1および
図4のビデオデコーダ300などのビデオデコーダによって実施され得る。ビデオ復号プロセスの一部として実施される場合、
図7の方法は、
図6のステップ374および380に対応し得る。
図7の方法は、ビデオデータを復号する方法として説明されているが、ビデオエンコーダは、上記で説明されたように、後続の予測データとして使用するためにビデオデータの符号化と復号の両方を行う。したがって、
図7の方法は、ビデオエンコーダとビデオデコーダの両方によって実施され得る。例示のため、
図7の方法はビデオデコーダ300に関して説明されているが、いくつかの態様はビデオエンコーダ200に関しても説明される。
【0171】
[0164] 最初に、ビデオデコーダ300は、ビデオデータの現在ブロックについてのベース仮説予測ブロックを形成し得る(400)。たとえば、ビデオデコーダ300は、ベース仮説予測ブロックを形成するために、単方向予測(単一セットの動き情報を使用する)または双方向予測(2セットの動き情報を使用する)を実施し得る。
【0172】
[0165] ビデオデコーダ300はまた、現在ブロックに対する追加の仮説ブロックのためのマージモードシンタックス要素をコーディング(すなわち、復号)し得る(402)。マージモードシンタックス要素の値は、追加の仮説ブロックについての動き情報がマージモードまたはAMVPモードを使用してコーディングされるかを示し得る。ビデオエンコーダ200によって実施される場合、ビデオエンコーダ200はマージモードシンタックス要素の値を符号化し得る。
【0173】
[0166] マージモードシンタックス要素が、追加の仮説ブロックについての動き情報がマージモードを使用して予測されることを示すとき、ビデオデコーダ300は、マージ候補リストを形成し得る(404)。マージ候補リストは、現在ブロックに隣接するブロックの動き情報を表すマージ候補に対応し得る。ビデオデコーダ300は、マージ候補リストのマージ候補の各々が単方向動き情報のみを含むことを確実にし得る。隣接ブロックのうちの1つについての動き情報が双予測コーディングされる場合、ビデオデコーダ300は、隣接ブロックのうちの1つから、1つまたは2つのマージ候補、たとえば、2セットの動き情報のうちの一方を含む単一のマージ候補、または2セットの動き情報のうちの一方(たとえば、L0動き情報)を含む第1のマージ候補および2セットの動き情報のうちの他方(たとえば、L1動き情報)を含む第2のマージ候補を形成し得る。このようにして、マージ候補リストにおける各マージ候補は、単方向予測に制限され得る。
【0174】
[0167] 次いで、ビデオデコーダ300は、追加の仮説ブロックについての動き情報をコーディングし得る(406)。たとえば、追加の仮説ブロックについての動き情報がマージモードでコーディングされると仮定して、ビデオデコーダ300は、マージ候補リストにおけるマージ候補のうちの1つを識別するマージインデックスを復号し得る。次いで、ビデオデコーダ300は、追加の仮説ブロックを形成するために動き情報としてマージ候補のうちの識別された1つの動き情報を使用し得る。他方で、追加の仮説ブロックについての動き情報がAMVPモードでコーディングされる場合、ビデオデコーダ300は、AMVP候補インデックス、参照ピクチャリスト識別子(reference picture list identifier)、参照ピクチャインデックス、および動きベクトル差分情報を復号し得る。代替的に、この方法がビデオエンコーダ200によって実施される場合、ビデオエンコーダ200は、マージインデックスまたはAMVP候補インデックス、参照ピクチャリスト識別子、参照ピクチャインデックス、および動きベクトル差分情報を符号化し得る。
【0175】
[0168] 次いで、ビデオデコーダ300は、動き情報を使用して追加の仮説ブロックを生成し得る(408)。ビデオデコーダ300はさらに、ベース仮説予測ブロックおよび追加の仮説ブロックから複数仮説予測ブロックを形成し得る(410)。たとえば、ビデオデコーダ300は、ベース仮説予測ブロックと追加の仮説ブロックの同位置のサンプルを平均化し、またはベース仮説予測ブロックと追加の仮説ブロックの同位置のサンプルの重み付けされた組合せを実施し得る。いくつかの例では、ビデオデコーダ300は、複数仮説予測ブロックを形成する前に、ベース仮説ブロックおよび/または追加の仮説ブロックのいずれかまたは両方に対して局所照明補償(LIC)を実施してもよい。
【0176】
[0169] 最終的に、ビデオデコーダ300は、複数仮説予測ブロックを使用して現在ブロックを復号(すなわち、再生)し得る(412)。たとえば、ビデオデコーダ300は、現在ブロックについての量子化された変換係数を復号し、残差サンプルを形成するために量子化された変換係数を逆量子化し変換し、残差ブロックを再生するために残差サンプルを逆走査する。次いで、ビデオデコーダ300は、サンプルごとに複数仮説予測ブロックを残差ブロックと組み合わせて、現在ブロックを再構築(復号)し得る。
【0177】
[0170] このように、
図7の方法は、ビデオデータを復号(および/または符号化)する方法の例を表しており、この方法は、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、第2の予測ブロックは、現在ブロックについての追加の予測仮説を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングすることと、第2の予測ブロックについての動き情報をコーディングすることは、マージモードシンタックス要素が、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成することを含み、マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを含む。
【0178】
[0171] 本開示の技法の様々な例は、以下の条項において要約される。
【0179】
[0172] 条項1:復号ビデオデータを復号する方法であって、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、追加の予測仮説としてビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックに局所照明補償(LIC)が適用されたかどうかに応じて、第2の予測ブロックにLICを適用すべきかどうかを決定することと、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを備える、方法。
【0180】
[0173] 条項2:ベースインター予測モードは、単方向インター予測または双方向インター予測のうちの一方を備える、条項1に記載の方法。
【0181】
[0174] 条項3:第1の予測ブロックにLICを適用することをさらに備え、ここにおいて、第2の予測ブロックにLICを適用すべきかどうかを決定することは、第1の予測ブロックにLICを適用したことに応答して、第2の予測ブロックにLICを適用すべきと決定することを備える、条項1および2のいずれかに記載の方法。
【0182】
[0175] 条項4:第1の予測ブロックにLICを適用することと、高度動きベクトル予測(AMVP)モードを使用して第2の予測ブロックについての動き情報をコーディングすることとをさらに備え、ここにおいて、第2の予測ブロックにLICを適用すべきかどうかを決定することは、第1の予測ブロックにLICを適用し、AMVPモードを使用して第2の予測ブロックについての動き情報をコーディングすることに応答して、第2の予測ブロックにLICを適用すべきと決定することを備える、条項1および2のいずれかに記載の方法。
【0183】
[0176] 条項5:第1の予測ブロックにLICを適用することと、マージモードを使用して第2の予測ブロックについての動き情報をコーディングすることとをさらに備え、ここにおいて、第2の予測ブロックにLICを適用すべきかどうかを決定することは、第2の予測ブロックのマージ候補についてのLICフラグをコーディングすることと、第2の予測ブロックのマージ候補についてのLICフラグの値に従って、第2の予測ブロックにLICを適用すべきかどうかを決定することとを備える、条項1および2のいずれかに記載の方法。
【0184】
[0177] 条項6:ビデオデータを復号する方法であって、方法は、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、第2の予測ブロックは、現在ブロックについての追加の予測仮説を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングすることと、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを備える、方法。
【0185】
[0178] 条項7:ビデオデータをコーディングする方法であって、条項1から5のいずれかに記載の方法と条項6に記載の方法との組合せを備える方法。
【0186】
[0179] 条項8:マージモードシンタックス要素が、マージモードが使用されることを示すとき、第2の予測ブロックについての動き情報をコーディングすることは、第2の予測ブロックについての動き情報をそれから継承すべきマージ候補を示すマージインデックスをコーディングすることを備える、条項6および7のいずれかに記載の方法。
【0187】
[0180] 条項9:マージモードシンタックス要素が、マージモードが使用されないことを示すとき、第2の予測ブロックについての動き情報をコーディングすることは、第2の予測ブロックについての参照ピクチャインデックスと、動きベクトル予測子インデックスと、動きベクトル差分とをコーディングすることを備える、条項6および7のいずれかに記載の方法。
【0188】
[0181] 条項10:第2の予測ブロックについての動き情報をコーディングすることは、1つまたは複数のマージ候補を含むマージ候補リストを形成することを備え、マージ候補の各々は、単方向予測動き情報のそれぞれのセットを表す、条項6から9のいずれかに記載の方法。
【0189】
[0182] 条項11:第2の予測ブロックは、複数の追加の動き仮説のうちの1つの追加の動き仮説を備え、同じマージ候補リストを使用して追加の動き仮説の各々についての動き情報をコーディングすることをさらに備える、条項10に記載の方法。
【0190】
[0183] 条項12:マージ候補リストを形成することは、幾何学的区分モード(GPM)のマージ候補リスト構築プロセス(merge candidate list construction process)に従ってマージ候補リストを形成することを備える、条項10および11のいずれかに記載の方法。
【0191】
[0184] 条項13:第2の予測ブロックは、複数の追加の動き仮説のうちの1つの追加の動き仮説を備え、ここにおいて、第2の予測ブロックについての動き情報をコーディングすることは、2つ以上のマージ候補を含むマージ候補リストを形成することと、第2の予測ブロックについての動き情報についてマージ候補リストからマージ候補のうちの1つを選択することと、マージ候補のうちの1つを使用して第2の予測ブロックについての動き情報をコーディングすることとを備え、方法は、縮小されたマージ候補リスト(reduced merge candidate list)を形成するために、マージ候補リストからマージ候補のうちの1つを削除することと、縮小されたマージ候補リストにおける残りのマージ候補のうちの1つを使用して第3の予測候補(third prediction candidate)についての動き情報をコーディングすることとをさらに備える、条項6から9のいずれかに記載の方法。
【0192】
[0185] 条項14:第2の予測ブロックに対する第1のマージ候補インデックス(first merge candidate index)をコーディングすることと、マージ候補リストは、N個のマージ候補を有し、Nは、1よりも大きい正の整数(positive integer)であり、第1のマージ候補インデックスは、Nの最大の可能な切り捨てられたバイナリ値(maximum possible truncated binary value)を有する、第3の予測ブロック(third prediction candidate)に対する第2のマージ候補インデックス(second merge candidate index)をコーディングすることと、縮小されたマージ候補リストは、N-1個のマージ候補を有し、第2のマージ候補インデックスは、N-1の最大の可能な切り捨てられたバイナリ値を有する、をさらに備える、条項13に記載の方法。
【0193】
[0186] 条項15:マージモードシンタックス要素は、第1の予測ブロックのベースインター予測モードについてのマージモードシンタックス要素を備える、条項6から14のいずれかに記載の方法。
【0194】
[0187] 条項16:マージモードシンタックス要素は、第2のマージモードシンタックス要素を備え、方法は、第1の予測ブロックのベースインター予測モードについての第1のマージモードシンタックス要素をコーディングすることをさらに備え、第2のマージモードシンタックス要素は、第1のマージモードシンタックス要素とは異なる、条項6から14のいずれかに記載の方法。
【0195】
[0188] 条項17:第1のマージモードシンタックス要素をコーディングすることは、第1のコンテキスト適応型バイナリ算術コーディング(CABAC)コンテキストを使用して第1のマージモードシンタックス要素をコーディングすることを備え、第2のマージモードシンタックス要素をコーディングすることは、第1のCABACコンテキストを使用して第1のマージモードシンタックス要素をコーディングしたことに応答して、第1のCABACコンテキストを使用して第2のマージモードシンタックス要素をコーディングすることを備える、条項16に記載の方法。
【0196】
[0189] 条項18:第1のCABACコンテキストは、マージモードのために使用されるCABACコンテキストである、条項17に記載の方法。
【0197】
[0190] 条項19:第1のCABACコンテキストは、マージモードのために使用される第2のCABACコンテキストとは異なる、条項17に記載の方法。
【0198】
[0191] 条項20:第1のマージモードシンタックス要素をコーディングすることは、第1のコンテキスト適応型バイナリ算術コーディング(CABAC)コンテキストを使用して第1のマージモードシンタックス要素をコーディングすることを備え、ここにおいて、第2のマージモードシンタックス要素をコーディングすることは、第2のCABACコンテキストを使用して第2のマージモードシンタックス要素をコーディングすることを備える、条項16に記載の方法。
【0199】
[0192] 条項21:第2のCABACコンテキストは、第1のCABACコンテキストとは異なる、条項20に記載の方法。
【0200】
[0193] 条項22:方法は、高度動きベクトル予測(AMVP)モードを使用して第3の予測ブロックの動き情報をコーディングすることと、第3の予測ブロックの動き情報をコーディングすることは、1/2ルーマサンプル解像度(half-luma-sample resolution)を有する動きベクトル差分(MVD)値をコーディングすることを含み、第3の予測ブロックは、現在ブロックに対する隣接ブロックのベースインター予測ブロック(base inter-prediction block)である、第2の予測ブロックの動き情報候補(motion information candidate)として第3の予測ブロックを識別する候補インデックス(candidate index)をコーディングすることとをさらに備え、ここにおいて、第2の予測ブロックを生成することは、6タップ補間フィルタを使用して第2の予測ブロックの参照ブロックの半ピクセルサンプル(half-pixel sample)を補間することを備える、条項6から21のいずれかに記載の方法。
【0201】
[0194] 条項23:ビデオデータを復号する方法であって、方法は、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、追加の予測仮説としてビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックに局所照明補償(LIC)が適用されたかどうかに応じて、第2の予測ブロックにLICを適用すべきかどうかを決定することと、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを備える、方法。
【0202】
[0195] 条項24:ベースインター予測モードは、単方向インター予測または双方向インター予測のうちの一方を備える、条項23に記載の方法。
【0203】
[0196] 条項25:第1の予測ブロックにLICを適用することをさらに備え、ここにおいて、第2の予測ブロックにLICを適用すべきかどうかを決定することは、第1の予測ブロックにLICを適用したことに応答して、第2の予測ブロックにLICを適用すべきと決定することを備える、条項23に記載の方法。
【0204】
[0197] 条項26:第1の予測ブロックにLICを適用することと、高度動きベクトル予測(AMVP)モードを使用して第2の予測ブロックについての動き情報をコーディングすることとをさらに備え、ここにおいて、第2の予測ブロックにLICを適用すべきかどうかを決定することは、第1の予測ブロックにLICを適用し、AMVPを使用して第2の予測ブロックについての動き情報をコーディングすることに応答して、第2の予測ブロックにLICを適用すべきと決定することを備える、条項23に記載の方法。
【0205】
[0198] 条項27:第1の予測ブロックにLICを適用することと、マージモードを使用して第2の予測ブロックについての動き情報をコーディングすることとをさらに備え、ここにおいて、第2の予測ブロックにLICを適用すべきかどうかを決定することは、第2の予測ブロックのマージ候補についてのLICフラグをコーディングすることと、第2の予測ブロックのマージ候補についてのLICフラグの値に従って、第2の予測ブロックにLICを適用すべきかどうかを決定することとを備える、条項23に記載の方法。
【0206】
[0199] 条項28:ビデオデータを復号する方法であって、方法は、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、第2の予測ブロックは、現在ブロックについての追加の予測仮説を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングすることと、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを備える、方法。
【0207】
[0200] 条項29:マージモードシンタックス要素が、マージモードが使用されることを示すとき、第2の予測ブロックについての動き情報をコーディングすることは、第2の予測ブロックについての動き情報をそれから継承すべきマージ候補を示すマージインデックスをコーディングすることを備える、条項28に記載の方法。
【0208】
[0201] 条項30:マージモードシンタックス要素が、マージモードが使用されないことを示すとき、第2の予測ブロックについての動き情報をコーディングすることは、第2の予測ブロックについての、参照ピクチャインデックスと、動きベクトル予測子インデックスと、動きベクトル差分とをコーディングすることを備える、条項28に記載の方法。
【0209】
[0202] 条項31:第2の予測ブロックについての動き情報をコーディングすることは、1つまたは複数のマージ候補を含むマージ候補リストを形成することを備え、マージ候補の各々は、単方向予測動き情報のそれぞれのセットを表す、条項28に記載の方法。
【0210】
[0203] 条項32:第2の予測ブロックは、複数の追加の動き仮説のうちの1つの追加の予測仮説を備え、方法は、同じマージ候補リストを使用して追加の動き仮説の各々についての動き情報をコーディングすることをさらに備える、条項31に記載の方法。
【0211】
[0204] 条項33:マージ候補リストを形成することは、幾何学的区分モード(GPM)のマージ候補リスト構築プロセスに従ってマージ候補リストを形成することを備える、条項31に記載の方法。
【0212】
[0205] 条項34:第2の予測ブロックは、複数の追加の動き仮説のうちの1つの追加の予測仮説を備え、ここにおいて、第2の予測ブロックについての動き情報をコーディングすることは、2つ以上のマージ候補を含むマージ候補リストを形成することと、第2の予測ブロックについての動き情報についてマージ候補リストからマージ候補のうちの1つを選択することと、マージ候補のうちの1つを使用して第2の予測ブロックについての動き情報をコーディングすることとを備え、方法は、縮小されたマージ候補リストを形成するために、マージ候補リストからマージ候補のうちの1つを削除することと、縮小されたマージ候補リストにおける残りのマージ候補のうちの1つを使用して第3の予測ブロックについての動き情報をコーディングすることとを備える、条項28に記載の方法。
【0213】
[0206] 条項35:第2の予測ブロックに対する第1のマージ候補インデックスをコーディングすることと、マージ候補リストは、N個のマージ候補を有し、Nは、1よりも大きい正の整数であり、第1のマージ候補インデックスは、Nの最大の可能な切り捨てられたバイナリ値を有する、第3の予測ブロックに対する第2のマージ候補インデックスをコーディングすることと、縮小されたマージ候補リストは、N-1個のマージ候補を有し、第2のマージ候補インデックスは、N-1の最大の可能な切り捨てられたバイナリ値を有する、条項34に記載の方法。
【0214】
[0207] 条項36:マージモードシンタックス要素は、第1の予測ブロックのベースインター予測モードについてのマージモードシンタックス要素を備える、条項28に記載の方法。
【0215】
[0208] 条項37:マージモードシンタックス要素は、第2のマージモードシンタックス要素を備え、方法は、第1の予測ブロックのベースインター予測モードについての第1のマージモードシンタックス要素をコーディングすることをさらに備え、第2のマージモードシンタックス要素は、第1のマージモードシンタックス要素とは異なる、条項28に記載の方法。
【0216】
[0209] 条項38:第1のマージモードシンタックス要素をコーディングすることは、第1のコンテキスト適応型バイナリ算術コーディング(CABAC)コンテキストを使用して第1のマージモードシンタックス要素をコーディングすることを備え、ここにおいて、第2のマージモードシンタックス要素をコーディングすることは、第1のCABACコンテキストを使用して第1のマージモードシンタックス要素をコーディングしたことに応答して、第1のCABACコンテキストを使用して第2のマージモードシンタックス要素をコーディングすることを備える、条項37に記載の方法。
【0217】
[0210] 条項39:第1のCABACコンテキストは、マージモードのために使用されるCABACコンテキストである、条項38に記載の方法。
【0218】
[0211] 条項40:第1のCABACコンテキストは、マージモードのために使用される第2のCABACコンテキストとは異なる、条項38に記載の方法。
【0219】
[0212] 条項41:第1のマージモードシンタックス要素をコーディングすることは、第1のコンテキスト適応型バイナリ算術コーディング(CABAC)コンテキストを使用して第1のマージモードシンタックス要素をコーディングすることを備え、ここにおいて、第2のマージモードシンタックス要素をコーディングすることは、第2のCABACコンテキストを使用して第2のマージモードシンタックス要素をコーディングすることを備える、条項37に記載の方法。
【0220】
[0213] 条項42:第2のCABACコンテキストは、第1のCABACコンテキストとは異なる、条項41に記載の方法。
【0221】
[0214] 条項43:方法は、高度動きベクトル予測(AMVP)モードを使用して第3の予測ブロックの動き情報をコーディングすることと、第3の予測ブロックの動き情報をコーディングすることは、1/2ルーマサンプル解像度を有する動きベクトル差分(MVD)値をコーディングすることを含み、第3の予測ブロックは、現在ブロックに対する隣接ブロックのベースインター予測ブロックである、第2の予測ブロックの動き情報候補として第3の予測ブロックを識別する候補インデックスをコーディングすることと、をさらに備え、ここにおいて、第2の予測ブロックを生成することは、6タップ補間フィルタを使用して第2の予測ブロックの参照ブロックの半ピクセルサンプルを補間することを備える、条項28に記載の方法。
【0222】
[0215] 条項44:現在ブロックを復号することより前に、現在ブロックを符号化することをさらに備える、条項1から43のいずれかに記載の方法。
【0223】
[0216] 条項45:ビデオデータを復号するためのデバイスであって、デバイスが、条項1から44のいずれかに記載の方法を実施するための1つまたは複数の手段を備える、デバイス。
【0224】
[0217] 条項46:1つまたは複数の手段が、回路中に実装された1つまたは複数のプロセッサを備える、条項45に記載のデバイス。
【0225】
[0218] 条項47:復号されたビデオデータを表示するように構成されたディスプレイをさらに備える、条項45および46のいずれかに記載のデバイス。
【0226】
[0219] 条項48:デバイスが、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、条項45から47のいずれかに記載のデバイス。
【0227】
[0220] 条項49:ビデオデータを記憶するように構成されたメモリをさらに備える、条項45から48に記載のデバイス。
【0228】
[0221] 条項50:命令を記憶したコンピュータ可読記憶媒体であって、命令が、実行されたとき、ビデオデータを復号するためのデバイスのプロセッサに、条項1から44のいずれかに記載の方法を実施させる、コンピュータ可読記憶媒体。
【0229】
[0222] 条項51:ビデオデータを復号するためのデバイスであって、デバイスは、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成するための手段と、追加の予測仮説としてビデオデータの現在ブロックについての第2の予測ブロックを生成するための手段と、第1の予測ブロックに局所照明補償(LIC)が適用されたかどうかに応じて、第2の予測ブロックにLICを適用すべきかどうかを決定するための手段と、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成するための手段と、複数仮説予測ブロックを使用して現在ブロックを復号するための手段とを備える、デバイス。
【0230】
[0223] 条項52:ビデオデータを復号するためのデバイスであって、デバイスは、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成するための手段と、第2の予測ブロックについてのマージモードシンタックス要素をコーディングするための手段と、第2の予測ブロックは、現在ブロックについての追加の予測仮説を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングするための手段と、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成するための手段と、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成するための手段と、複数仮説予測ブロックを使用して現在ブロックを復号するための手段とを備える、デバイス。
【0231】
[0224] 条項53:ビデオデータを復号する方法であって、方法は、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、第2の予測ブロックは、現在ブロックについての追加の予測仮説を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングすることと、第2の予測ブロックについての動き情報をコーディングすることは、マージモードシンタックス要素が、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成することを含み、マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを含む、方法。
【0232】
[0225] 条項54:マージモードシンタックス要素が、マージモードが使用されることを示すとき、第2の予測ブロックについての動き情報をコーディングすることは、第2の予測ブロックについての動き情報をそれから継承すべきマージ候補を示すマージインデックスをコーディングすることを備える、条項53に記載の方法。
【0233】
[0226] 条項55:マージモードシンタックス要素が、マージモードが使用されないことを示すとき、第2の予測ブロックについての動き情報をコーディングすることは、第2の予測ブロックについての、参照ピクチャインデックスと、動きベクトル予測子インデックスと、動きベクトル差分とをコーディングすることを備える、条項53に記載の方法。
【0234】
[0227] 条項56:マージ候補リストを形成することは、第1の動き情報および第2の動き情報を使用して第2の予測ブロックに対する隣接ブロックが双予測されると決定することと、隣接ブロックから少なくとも1つの単予測マージ候補を形成することと、少なくとも1つの単予測マージ候補を形成することは、少なくとも1つの単予測マージ候補について第1の動き情報または第2の動き情報のうちの1つのみを選択することを含む、を備える、条項53に記載の方法。
【0235】
[0228] 条項57:マージ候補リストを形成することは、第1の動き情報を使用して第1の単予測マージ候補を形成することと、第2の動き情報を使用して第2の単予測マージ候補を形成することとを備える、条項56に記載の方法。
【0236】
[0229] 条項58:第2の予測ブロックは、複数の追加の動き仮説のうちの1つの追加の予測仮説を備え、方法は、同じマージ候補リストを使用して追加の動き仮説の各々についての動き情報をコーディングすることをさらに備える、条項53に記載の方法。
【0237】
[0230] 条項59:マージ候補リストを形成することは、幾何学的区分モード(GPM)のマージ候補リスト構築プロセスに従ってマージ候補リストを形成することを備える、条項53に記載の方法。
【0238】
[0231] 条項60:第2の予測ブロックは、複数の追加の動き仮説のうちの1つの追加の予測仮説を備え、ここにおいて、第2の予測ブロックについての動き情報をコーディングすることは、2つ以上のマージ候補を含むマージ候補リストを形成することと、第2の予測ブロックについての動き情報についてマージ候補リストからマージ候補のうちの1つを選択することと、マージ候補のうちの1つを使用して第2の予測ブロックについての動き情報をコーディングすることとを備え、方法は、縮小されたマージ候補リストを形成するために、マージ候補リストからマージ候補のうちの1つを削除することと、縮小されたマージ候補リストにおける残りのマージ候補のうちの1つを使用して第3の予測候補についての動き情報をコーディングすることとをさらに備える、条項53に記載の方法。
【0239】
[0232] 条項61:第2の予測ブロックに対する第1のマージ候補インデックスをコーディングすることと、マージ候補リストは、N個のマージ候補を有し、Nは、1よりも大きい正の整数であり、第1のマージ候補インデックスは、Nの最大の可能な切り捨てられたバイナリ値を有する、第3の予測ブロックに対する第2のマージ候補インデックスをコーディングすることと、縮小されたマージ候補リストは、N-1個のマージ候補を有し、第2のマージ候補インデックスは、N-1の最大の可能な切り捨てられたバイナリ値を有する、をさらに備える、条項60に記載の方法。
【0240】
[0233] 条項62:マージモードシンタックス要素は、第1の予測ブロックのベースインター予測モードについてのマージモードシンタックス要素を備える、条項53に記載の方法。
【0241】
[0234] 条項63:マージモードシンタックス要素は、第2のマージモードシンタックス要素を備え、方法は、第1の予測ブロックのベースインター予測モードについての第1のマージモードシンタックス要素をコーディングすることをさらに備え、第2のマージモードシンタックス要素は、第1のマージモードシンタックス要素とは異なる、条項53に記載の方法。
【0242】
[0235] 条項64:第1のマージモードシンタックス要素をコーディングすることは、第1のコンテキスト適応型バイナリ算術コーディング(CABAC)コンテキストを使用して第1のマージモードシンタックス要素をコーディングすることを備え、ここにおいて、第2のマージモードシンタックス要素をコーディングすることは、第1のCABACコンテキストを使用して第1のマージモードシンタックス要素をコーディングしたことに応答して、第1のCABACコンテキストを使用して第2のマージモードシンタックス要素をコーディングすることを備える、条項63に記載の方法。
【0243】
[0236] 条項65:第1のCABACコンテキストは、マージモードのために使用されるCABACコンテキストである、条項64に記載の方法。
【0244】
[0237] 条項66:第1のCABACコンテキストは、マージモードのために使用される第2のCABACコンテキストとは異なる、条項64に記載の方法。
【0245】
[0238] 条項67:第1のマージモードシンタックス要素をコーディングすることは、第1のコンテキスト適応型バイナリ算術コーディング(CABAC)コンテキストを使用して第1のマージモードシンタックス要素をコーディングすることを備え、ここにおいて、第2のマージモードシンタックス要素をコーディングすることは、第2のCABACコンテキストを使用して第2のマージモードシンタックス要素をコーディングすることを備える、条項63に記載の方法。
【0246】
[0239] 条項68:第2のCABACコンテキストは、第1のCABACコンテキストとは異なる、条項67に記載の方法。
【0247】
[0240] 条項69:高度動きベクトル予測(AMVP)モードを使用して第3の予測ブロックの動き情報をコーディングすることと、第3の予測ブロックの動き情報をコーディングすることは、1/2ルーマサンプル解像度を有する動きベクトル差分(MVD)値をコーディングすることを含み、第3の予測ブロックは、現在ブロックに対する隣接ブロックのベースインター予測ブロックである、第2の予測ブロックの動き情報候補として第3の予測ブロックを識別する候補インデックスをコーディングすることとをさらに備え、ここにおいて、第2の予測ブロックを生成することは、6タップ補間フィルタを使用して第2の予測ブロックの参照ブロックの半ピクセルサンプルを補間することを備える、条項53に記載の方法。
【0248】
[0241] 条項70:第1の予測ブロックに局所照明補償(LIC)が適用されたかどうかに応じて、第2の予測ブロックにLICを適用すべきかどうかを決定することをさらに備える、条項53に記載の方法。
【0249】
[0242] 条項71:ベースインター予測モードは、単方向インター予測または双方向インター予測のうちの一方を備える、条項70に記載の方法。
【0250】
[0243] 条項72:第1の予測ブロックにLICを適用することをさらに備え、ここにおいて、第2の予測ブロックにLICを適用すべきかどうかを決定することは、第1の予測ブロックにLICを適用したことに応答して、第2の予測ブロックにLICを適用すべきと決定することを備える、条項70に記載の方法。
【0251】
[0244] 条項73:第1の予測ブロックにLICを適用することと、高度動きベクトル予測(AMVP)モードを使用して第2の予測ブロックについての動き情報をコーディングすることとをさらに備え、ここにおいて、第2の予測ブロックにLICを適用すべきかどうかを決定することは、第1の予測ブロックにLICを適用し、AMVPを使用して第2の予測ブロックについての動き情報をコーディングすることに応答して、第2の予測ブロックにLICを適用すべきと決定することを備える、条項70に記載の方法。
【0252】
[0245] 条項74:第1の予測ブロックにLICを適用することと、マージモードを使用して第2の予測ブロックについての動き情報をコーディングすることとをさらに備え、ここにおいて、第2の予測ブロックにLICを適用すべきかどうかを決定することは、第2の予測ブロックのマージ候補についてのLICフラグをコーディングすることと、第2の予測ブロックのマージ候補についてのLICフラグの値に従って、第2の予測ブロックにLICを適用すべきかどうかを決定することとを備える、条項70に記載の方法。
【0253】
[0246] 条項75:現在ブロックを復号することより前に、現在ブロックを符号化することをさらに備える、条項53に記載の方法。
【0254】
[0247] 条項76:ビデオデータを復号するためのデバイスであって、デバイスは、ビデオデータを記憶するように構成されたメモリと、回路中に実装された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサは、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、第2の予測ブロックは、現在ブロックについての追加の予測仮説を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングすることと、ここにおいて、動き情報をコーディングするために、1つまたは複数のプロセッサは、マージモードシンタックス要素が、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成するように構成され、マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを行うように構成された、デバイス。
【0255】
[0248] 条項77:マージ候補リストを形成するために、1つまたは複数のプロセッサが、第1の動き情報および第2の動き情報を使用して第2の予測ブロックに対する隣接ブロックが双予測されると決定することと、隣接ブロックから少なくとも1つの単予測マージ候補を形成することと、ここにおいて、1つまたは複数のプロセッサは、少なくとも1つの単予測マージ候補について第1の動き情報または第2の動き情報のうちの1つのみを選択するように構成される、を行うように構成された、条項76に記載のデバイス。
【0256】
[0249] 条項78:マージ候補リストを形成するために、1つまたは複数のプロセッサが、第1の動き情報を使用して第1の単予測マージ候補を形成することと、第2の動き情報を使用して第2の単予測マージ候補を形成することとを行うように構成された、条項77に記載のデバイス。
【0257】
[0250] 条項79:1つまたは複数のプロセッサが、高度動きベクトル予測(AMVP)モードを使用して第3の予測ブロックの動き情報をコーディングすることと、ここにおいて、第3の予測ブロックの動き情報をコーディングするために、1つまたは複数のプロセッサが、1/2ルーマサンプル解像度を有する動きベクトル差分(MVD)値をコーディングするように構成され、第3の予測ブロックは、現在ブロックに対する隣接ブロックのベースインター予測ブロックである、第2の予測ブロックの動き情報候補として第3の予測ブロックを識別する候補インデックスをコーディングすることとを行うようにさらに構成され、ここにおいて、第2の予測ブロックを生成するために、1つまたは複数のプロセッサが、6タップ補間フィルタを使用して第2の予測ブロックの参照ブロックの半ピクセルサンプルを補間するように構成された、条項76に記載のデバイス。
【0258】
[0251] 条項80:1つまたは複数のプロセッサが、第1の予測ブロックに局所照明補償(LIC)が適用されたかどうかに応じて、第2の予測ブロックにLICを適用すべきかどうかを決定するようにさらに構成された、条項76に記載のデバイス。
【0259】
[0252] 条項81:1つまたは複数のプロセッサが、現在ブロックを復号することより前に、現在ブロックを符号化するようにさらに構成された、条項76に記載のデバイス。
【0260】
[0253] 条項82:復号されたビデオデータを表示するように構成されたディスプレイをさらに備える、条項76に記載のデバイス。
【0261】
[0254] 条項83:デバイスが、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、条項76に記載のデバイス。
【0262】
[0255] 条項84:命令を記憶したコンピュータ可読記憶媒体であって、命令は、実行されたとき、プロセッサに、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、第2の予測ブロックは、現在ブロックについての追加の予測仮説を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングすることと、第2の予測ブロックについての動き情報をコーディングすることは、マージモードシンタックス要素が、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成することを含み、マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを行わせる、コンピュータ可読記憶媒体。
【0263】
[0256] 条項85:プロセッサに、マージ候補リストを形成することを行わせる命令は、プロセッサに、第1の動き情報および第2の動き情報を使用して第2の予測ブロックに対する隣接ブロックが双予測されると決定することと、隣接ブロックから少なくとも1つの単予測マージ候補を形成することと、少なくとも1つの単予測マージ候補を形成することは、プロセッサに、少なくとも1つの単予測マージ候補について第1の動き情報または第2の動き情報のうちの1つのみを選択することを行わせる命令を含む、を行わせる命令を備える、条項84に記載のコンピュータ可読記憶媒体。
【0264】
[0257] 条項86:プロセッサに、マージ候補リストを形成することを行わせる命令は、プロセッサに、第1の動き情報を使用して第1の単予測マージ候補を形成することと、第2の動き情報を使用して第2の単予測マージ候補を形成することとを行わせる命令を備える、条項85に記載のコンピュータ可読記憶媒体。
【0265】
[0258] 条項87:プロセッサに、高度動きベクトル予測(AMVP)モードを使用して第3の予測ブロックの動き情報をコーディングすることと、ここにおいて、プロセッサに、第3の予測ブロックの動き情報をコーディングすることを行わせる命令は、プロセッサに、1/2ルーマサンプル解像度を有する動きベクトル差分(MVD)値をコーディングすることを行わせる命令を備え、第3の予測ブロックは、現在ブロックに対する隣接ブロックのベースインター予測ブロックである、第2の予測ブロックの動き情報候補として第3の予測ブロックを識別する候補インデックスをコーディングすることとを行わせる命令をさらに備え、ここにおいて、プロセッサに、第2の予測ブロックを生成することを行わせる命令は、プロセッサに、6タップ補間フィルタを使用して第2の予測ブロックの参照ブロックの半ピクセルサンプルを補間することを行わせる命令を備える、条項84に記載のコンピュータ可読記憶媒体。
【0266】
[0259] 条項88:プロセッサに、第1の予測ブロックに局所照明補償(LIC)が適用されたかどうかに応じて、第2の予測ブロックにLICを適用すべきかどうかを決定することを行わせる命令をさらに備える、条項84に記載のコンピュータ可読記憶媒体。
【0267】
[0260] 条項89:プロセッサに、現在ブロックを復号することより前に、現在ブロックを符号化することを行わせる命令をさらに備える、条項84に記載のコンピュータ可読記憶媒体。
【0268】
[0261] 条項90:ビデオデータを復号するためのデバイスであって、デバイスは、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成するための手段と、第2の予測ブロックについてのマージモードシンタックス要素をコーディングするための手段と、第2の予測ブロックは、現在ブロックについての追加の予測仮説を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングするための手段と、第2の予測ブロックについての動き情報をコーディングするための手段は、マージモードシンタックス要素が、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成するための手段を含み、マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成するための手段と、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成するための手段と、複数仮説予測ブロックを使用して現在ブロックを復号するための手段とを備える、デバイス。
【0269】
[0262] 条項91:ビデオデータを復号する方法であって、方法は、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、第2の予測ブロックは、現在ブロックについての追加の予測仮説を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングすることと、第2の予測ブロックについての動き情報をコーディングすることは、マージモードシンタックス要素が、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成することを含み、マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを備える、方法。
【0270】
[0263] 条項92:マージモードシンタックス要素が、マージモードが使用されることを示すとき、第2の予測ブロックについての動き情報をコーディングすることは、第2の予測ブロックについての動き情報をそれから継承すべきマージ候補を示すマージインデックスをコーディングすることを備える、条項91に記載の方法。
【0271】
[0264] 条項93:マージモードシンタックス要素が、マージモードが使用されないことを示すとき、第2の予測ブロックについての動き情報をコーディングすることは、第2の予測ブロックについての、参照ピクチャインデックスと、動きベクトル予測子インデックスと、動きベクトル差分とをコーディングすることを備える、条項91および92のいずれかに記載の方法。
【0272】
[0265] 条項94:マージ候補リストを形成することは、第1の動き情報および第2の動き情報を使用して第2の予測ブロックに対する隣接ブロックが双予測されると決定することと、隣接ブロックから少なくとも1つの単予測マージ候補を形成することと、少なくとも1つの単予測マージ候補を形成することは、少なくとも1つの単予測マージ候補について第1の動き情報または第2の動き情報のうちの1つのみを選択することを含む、を備える、条項91から93のいずれかに記載の方法。
【0273】
[0266] 条項95:マージ候補リストを形成することは、第1の動き情報を使用して第1の単予測マージ候補を形成することと、第2の動き情報を使用して第2の単予測マージ候補を形成することを備える、条項94に記載の方法。
【0274】
[0267] 条項96:第2の予測ブロックは、複数の追加の動き仮説のうちの1つの追加の予測仮説を備え、方法は、同じマージ候補リストを使用して追加の動き仮説の各々についての動き情報をコーディングすることをさらに備える、条項91から95のいずれかに記載の方法。
【0275】
[0268] 条項97:マージ候補リストを形成することは、幾何学的区分モード(GPM)のマージ候補リスト構築プロセスに従ってマージ候補リストを形成することを備える、条項91から96のいずれかに記載の方法。
【0276】
[0269] 条項98:第2の予測ブロックは、複数の追加の動き仮説のうちの1つの追加の予測仮説を備え、ここにおいて、第2の予測ブロックについての動き情報をコーディングすることは、2つ以上のマージ候補を含むマージ候補リストを形成することと、第2の予測ブロックについての動き情報についてマージ候補リストからマージ候補のうちの1つを選択することと、マージ候補のうちの1つを使用して第2の予測ブロックについての動き情報をコーディングすることとを備え、方法は、縮小されたマージ候補リストを形成するために、マージ候補リストからマージ候補のうちの1つを削除することと、縮小されたマージ候補リストにおける残りのマージ候補のうちの1つを使用して第3の予測候補についての動き情報をコーディングすることとをさらに備える、条項91から97のいずれかに記載の方法。
【0277】
[0270] 条項99:第2の予測ブロックに対する第1のマージ候補インデックスをコーディングすることと、マージ候補リストは、N個のマージ候補を有し、Nは、1よりも大きい正の整数であり、第1のマージ候補インデックスは、Nの最大の可能な切り捨てられたバイナリ値を有する、第3の予測ブロックに対する第2のマージ候補インデックスをコーディングすることと、縮小されたマージ候補リストは、N-1個のマージ候補を有し、第2のマージ候補インデックスは、N-1の最大の可能な切り捨てられたバイナリ値を有する、をさらに備える、条項98に記載の方法。
【0278】
[0271] 条項100:マージモードシンタックス要素は、第1の予測ブロックのベースインター予測モードについてのマージモードシンタックス要素を備える、条項91から99のいずれかに記載の方法。
【0279】
[0272] 条項101:マージモードシンタックス要素は、第2のマージモードシンタックス要素を備え、方法は、第1の予測ブロックのベースインター予測モードについての第1のマージモードシンタックス要素をコーディングすることをさらに備え、第2のマージモードシンタックス要素は、第1のマージモードシンタックス要素とは異なる、条項91から100のいずれかに記載の方法。
【0280】
[0273] 条項102:第1のマージモードシンタックス要素をコーディングすることは、第1のコンテキスト適応型バイナリ算術コーディング(CABAC)コンテキストを使用して第1のマージモードシンタックス要素をコーディングすることを備え、ここにおいて、第2のマージモードシンタックス要素をコーディングすることは、第1のCABACコンテキストを使用して第1のマージモードシンタックス要素をコーディングしたことに応答して、第1のCABACコンテキストを使用して第2のマージモードシンタックス要素をコーディングすることを備える、条項101に記載の方法。
【0281】
[0274] 条項103:第1のCABACコンテキストは、マージモードのために使用されるCABACコンテキストである、条項102に記載の方法。
【0282】
[0275] 条項104:第1のCABACコンテキストは、マージモードのために使用される第2のCABACコンテキストとは異なる、条項102に記載の方法。
【0283】
[0276] 条項105:第1のマージモードシンタックス要素をコーディングすることは、第1のコンテキスト適応型バイナリ算術コーディング(CABAC)コンテキストを使用して第1のマージモードシンタックス要素をコーディングすることを備え、第2のマージモードシンタックス要素をコーディングすることは、第2のCABACコンテキストを使用して第2のマージモードシンタックス要素をコーディングすることを備える、条項101に記載の方法。
【0284】
[0277] 条項106:第2のCABACコンテキストは、第1のCABACコンテキストとは異なる、条項105に記載の方法。
【0285】
[0278] 条項107:高度動きベクトル予測(AMVP)モードを使用して第3の予測ブロックの動き情報をコーディングすることと、第3の予測ブロックの動き情報をコーディングすることは、1/2ルーマサンプル解像度を有する動きベクトル差分(MVD)値をコーディングすることを含み、第3の予測ブロックは、現在ブロックに対する隣接ブロックのベースインター予測ブロックである、第2の予測ブロックの動き情報候補として第3の予測ブロックを識別する候補インデックスをコーディングすることと、をさらに備え、ここにおいて、第2の予測ブロックを生成することは、6タップ補間フィルタを使用して第2の予測ブロックの参照ブロックの半ピクセルサンプルを補間することを備える、条項91から106のいずれかに記載の方法。
【0286】
[0279] 条項108:第1の予測ブロックに局所照明補償(LIC)が適用されたかどうかに応じて、第2の予測ブロックにLICを適用すべきかどうかを決定することをさらに備える、条項91から107のいずれかに記載の方法。
【0287】
[0280] 条項109:ベースインター予測モードは、単方向インター予測または双方向インター予測のうちの一方を備える、条項108に記載の方法。
【0288】
[0281] 条項110:第1の予測ブロックにLICを適用することをさらに備え、ここにおいて、第2の予測ブロックにLICを適用すべきかどうかを決定することは、第1の予測ブロックにLICを適用したことに応答して、第2の予測ブロックにLICを適用すべきと決定することを備える、条項108および109のいずれかに記載の方法。
【0289】
[0282] 条項111:第1の予測ブロックにLICを適用することと、高度動きベクトル予測(AMVP)モードを使用して第2の予測ブロックについての動き情報をコーディングすることとをさらに備え、ここにおいて、第2の予測ブロックにLICを適用すべきかどうかを決定することは、第1の予測ブロックにLICを適用し、AMVPを使用して第2の予測ブロックについての動き情報をコーディングすることに応答して、第2の予測ブロックにLICを適用すべきと決定することを備える、条項108から110のいずれかに記載の方法。
【0290】
[0283] 条項112:第1の予測ブロックにLICを適用することと、マージモードを使用して第2の予測ブロックについての動き情報をコーディングすることとをさらに備え、ここにおいて、第2の予測ブロックにLICを適用すべきかどうかを決定することは、第2の予測ブロックのマージ候補についてのLICフラグをコーディングすることと、第2の予測ブロックのマージ候補についてのLICフラグの値に従って、第2の予測ブロックにLICを適用すべきかどうかを決定することとを備える、条項108から111のいずれかに記載の方法。
【0291】
[0284] 条項113:現在ブロックを復号することより前に、現在ブロックを符号化することをさらに備える、条項91から112のいずれかに記載の方法。
【0292】
[0285] 条項114:ビデオデータを復号するためのデバイスであって、デバイスは、ビデオデータを記憶するように構成されたメモリと、回路中に実装された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサは、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、第2の予測ブロックは、現在ブロックについての追加の予測仮説を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングすることと、ここにおいて、動き情報をコーディングするために、1つまたは複数のプロセッサは、マージモードシンタックス要素が、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成するように構成され、マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを行うように構成された、デバイス。
【0293】
[0286] 条項115:マージ候補リストを形成するために、1つまたは複数のプロセッサが、第1の動き情報および第2の動き情報を使用して第2の予測ブロックに対する隣接ブロックが双予測されると決定することと、隣接ブロックから少なくとも1つの単予測マージ候補を形成することと、ここにおいて、1つまたは複数のプロセッサは、少なくとも1つの単予測マージ候補について第1の動き情報または第2の動き情報のうちの1つのみを選択するように構成される、を行うように構成された、条項114に記載のデバイス。
【0294】
[0287] 条項116:マージ候補リストを形成するために、1つまたは複数のプロセッサが、第1の動き情報を使用して第1の単予測マージ候補を形成することと、第2の動き情報を使用して第2の単予測マージ候補を形成することとを行うように構成された、条項115に記載のデバイス。
【0295】
[0288] 条項117:1つまたは複数のプロセッサが、高度動きベクトル予測(AMVP)モードを使用して第3の予測ブロックの動き情報をコーディングすることと、ここにおいて、第3の予測ブロックの動き情報をコーディングするために、1つまたは複数のプロセッサが、1/2ルーマサンプル解像度を有する動きベクトル差分(MVD)値をコーディングするように構成され、第3の予測ブロックは、現在ブロックに対する隣接ブロックのベースインター予測ブロックである、第2の予測ブロックの動き情報候補として第3の予測ブロックを識別する候補インデックスをコーディングすることと、ここにおいて、第2の予測ブロックを生成するために、1つまたは複数のプロセッサが、6タップ補間フィルタを使用して第2の予測ブロックの参照ブロックの半ピクセルサンプルを補間するように構成される、を行うように構成された、条項114から116のいずれかに記載のデバイス。
【0296】
[0289] 条項118:1つまたは複数のプロセッサが、第1の予測ブロックに局所照明補償(LIC)が適用されたかどうかに応じて、第2の予測ブロックにLICを適用すべきかどうかを決定するようにさらに構成された、条項114から117のいずれかに記載のデバイス。
【0297】
[0290] 条項119:1つまたは複数のプロセッサが現在ブロックを復号することより前に、現在ブロックを符号化するようにさらに構成された、条項114から118のいずれかに記載のデバイス。
【0298】
[0291] 条項120:復号されたビデオデータを表示するように構成されたディスプレイをさらに備える、条項114から119のいずれかに記載のデバイス。
【0299】
[0292] 条項121:デバイスが、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、条項114から120のいずれかに記載のデバイス。
【0300】
[0293] 条項122:命令を記憶したコンピュータ可読記憶媒体であって、命令は、実行されたとき、プロセッサに、ベースインター予測モードを使用してビデオデータの現在ブロックについての第1の予測ブロックを生成することと、第2の予測ブロックについてのマージモードシンタックス要素をコーディングすることと、第2の予測ブロックは、現在ブロックについての追加の予測仮説を表し、ここにおいて、マージモードシンタックス要素は、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされるかどうかを示す、マージモードシンタックス要素に従って第2の予測ブロックについての動き情報をコーディングすることと、第2の予測ブロックについての動き情報をコーディングすることは、マージモードシンタックス要素が、マージモードを使用して第2の予測ブロックについての動き情報がコーディングされることを示すとき、1つまたは複数のマージ候補を含むマージ候補リストを形成することを含み、マージ候補の各々は、単予測動き情報のそれぞれのセットを表す、動き情報を使用してビデオデータの現在ブロックについての第2の予測ブロックを生成することと、第1の予測ブロックと第2の予測ブロックとの組合せとして、現在ブロックについての複数仮説予測ブロックを形成することと、複数仮説予測ブロックを使用して現在ブロックを復号することとを行わせる、コンピュータ可読記憶媒体。
【0301】
[0294] 条項123:プロセッサに、マージ候補リストを形成することを行わせる命令は、プロセッサに、第1の動き情報および第2の動き情報を使用して第2の予測ブロックに対する隣接ブロックが双予測されると決定することと、隣接ブロックから少なくとも1つの単予測マージ候補を形成することと、少なくとも1つの単予測マージ候補を形成することは、プロセッサに、少なくとも1つの単予測マージ候補について第1の動き情報または第2の動き情報のうちの1つのみを選択することを行わせる命令を含む、を行わせる命令を備える、条項122に記載のコンピュータ可読記憶媒体。
【0302】
[0295] 条項124:プロセッサに、マージ候補リストを形成することを行わせる命令は、プロセッサに、第1の動き情報を使用して第1の単予測マージ候補を形成することと、第2の動き情報を使用して第2の単予測マージ候補を形成することとを行わせる命令を備える、条項123に記載のコンピュータ可読記憶媒体。
【0303】
[0296] 条項125:プロセッサに、高度動きベクトル予測(AMVP)モードを使用して第3の予測ブロックの動き情報をコーディングすることと、ここにおいて、プロセッサに、第3の予測ブロックの動き情報をコーディングすることを行わせる命令は、プロセッサに、1/2ルーマサンプル解像度を有する動きベクトル差分(MVD)値をコーディングすることを行わせる命令を備え、第3の予測ブロックは、現在ブロックに対する隣接ブロックのベースインター予測ブロックである、第2の予測ブロックの動き情報候補として第3の予測ブロックを識別する候補インデックスをコーディングすることとを行わせる命令をさらに備え、ここにおいて、プロセッサに、第2の予測ブロックを生成することを行わせる命令は、プロセッサに、6タップ補間フィルタを使用して第2の予測ブロックの参照ブロックの半ピクセルサンプルを補間することを行わせる命令を備える、条項122から124に記載のコンピュータ可読記憶媒体。
【0304】
[0297] 条項126:プロセッサに、第1の予測ブロックに局所照明補償(LIC)が適用されたかどうかに応じて、第2の予測ブロックにLICを適用すべきかどうかを決定することを行わせる命令をさらに備える、条項122から125に記載のコンピュータ可読記憶媒体。
【0305】
[0298] 条項127:プロセッサに、現在ブロックを復号することより前に、現在ブロックを符号化することを行わせる命令をさらに備える、条項122から126に記載のコンピュータ可読記憶媒体。
【0306】
[0299] 例に応じて、本明細書で説明された技法のうちのいずれかのいくつかの行為またはイベントは、異なるシーケンスで実施され得、追加、マージ、または完全に除外され得る(たとえば、すべての説明された行為またはイベントが、技法の実践のために必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実施され得る。
【0307】
[0300] 1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベース処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0308】
[0301] 限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu-rayディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0309】
[0302] 命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは他の等価な集積またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」および「処理回路」という用語は、上記の構造、または本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に提供されるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
【0310】
[0303] 本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって提供され得る。
【0311】
[0304] 様々な例が説明された。これらおよび他の例は以下の特許請求の範囲内に入る。
【国際調査報告】