IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クゥアルコム・インコーポレイテッドの特許一覧

特表2025-504291ビデオコーディングにおける幾何学的区分モード
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-02-12
(54)【発明の名称】ビデオコーディングにおける幾何学的区分モード
(51)【国際特許分類】
   H04N 19/119 20140101AFI20250204BHJP
   H04N 19/109 20140101ALI20250204BHJP
   H04N 19/14 20140101ALI20250204BHJP
   H04N 19/176 20140101ALI20250204BHJP
   H04N 19/46 20140101ALI20250204BHJP
   H04N 19/91 20140101ALI20250204BHJP
【FI】
H04N19/119
H04N19/109
H04N19/14
H04N19/176
H04N19/46
H04N19/91
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024535478
(86)(22)【出願日】2022-12-21
(85)【翻訳文提出日】2024-06-13
(86)【国際出願番号】 US2022053607
(87)【国際公開番号】W WO2023132941
(87)【国際公開日】2023-07-13
(31)【優先権主張番号】63/266,386
(32)【優先日】2022-01-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】18/068,767
(32)【優先日】2022-12-20
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Blu-ray
2.イーサネット
(71)【出願人】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】チェン、チュン-チ
(72)【発明者】
【氏名】ファン、ハン
(72)【発明者】
【氏名】セレジン、バディム
(72)【発明者】
【氏名】カルチェビチ、マルタ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC04
5C159LC09
5C159MA05
5C159ME11
5C159NN01
5C159NN21
5C159RC12
5C159TA12
5C159TA26
5C159TB08
5C159TC10
5C159TC12
5C159TC42
5C159UA02
5C159UA05
(57)【要約】
ビデオデータを符号化又は復号する方法は、区分するためのエッジを各々が定義する複数の分割モードを含む幾何学的区分モードが、ビデオデータの現在のブロックに対して有効になっていると決定することと、複数の分割モードのうちの少なくとも2つの中の各分割モードについて、それぞれの分割モードに関連付けられたそれぞれのコストを決定することと、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築することであって、より低いインデックス値は、より高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられる、ことと、マッピングリスト中の複数の分割モードの中から分割モードを決定することと、分割モードに基づいて、ビデオデータの現在のブロックを再構築することと、を含む。

【特許請求の範囲】
【請求項1】
ビデオデータを符号化又は復号する方法であって、
区分するためのエッジを各々が定義する複数の分割モードを含む幾何学的区分モードが、前記ビデオデータの現在のブロックに対して有効になっていると決定することと、
前記複数の分割モードのうちの少なくとも2つの中の各分割モードについて、それぞれの分割モードに関連付けられたそれぞれのコストを決定することと、
前記それぞれの分割モードに関連付けられた前記それぞれのコストに基づいて、前記それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築することであって、前記マッピングリスト中のより低いインデックス値が、前記マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられる、ことと、
前記マッピングリスト中の前記複数の分割モードの中から分割モードを決定することと、
前記分割モードに基づいて、前記ビデオデータの現在のブロックを再構築することと、
を含む方法。
【請求項2】
前記それぞれの分割モードに関連付けられた、前記それぞれのコストを決定することが、
前記それぞれの分割モードに基づいて、それぞれの参照テンプレートを決定することと、
前記現在のブロックのための現在のテンプレートであって、前記現在のブロックの外部のサンプルを含む、現在のテンプレートを決定することと、
前記それぞれの参照テンプレート及び前記現在のテンプレートに基づいて、前記それぞれの分割モードに関連付けられた前記それぞれのコストを決定することと、
を含む、請求項1に記載の方法。
【請求項3】
前記それぞれの参照テンプレートを決定することが、
前記現在のブロックの第1の区分の第1の動きベクトルによって識別された第1の参照ブロックに基づいて、第1の参照テンプレートを決定することと、
前記現在のブロックの第2の区分の第2の動きベクトルによって識別された第2の参照ブロックに基づいて、第2の参照テンプレートを決定することと、
前記それぞれの参照テンプレートを生成するために、前記それぞれの分割モードに基づいて、前記第1の参照テンプレートからのサンプルと、前記第2の参照テンプレートからのサンプルとを組み合わせることと、
を含む、請求項2に記載の方法。
【請求項4】
前記第1の参照テンプレートが、前記第1の参照ブロックの上のサンプルの第1の部分と、前記第1の参照ブロックの左のサンプルの第2の部分とを含み、前記第2の参照テンプレートが、前記第2の参照ブロックの上のサンプルの第1の部分と、前記第2の参照ブロックの左のサンプルの第2の部分とを含む、請求項3に記載の方法。
【請求項5】
前記それぞれの参照テンプレートを生成するために、前記それぞれの分割モードに基づいて、前記第1の参照テンプレートからのサンプルと、前記第2の参照テンプレートからのサンプルとを組み合わせることが、
前記それぞれの分割モードを、前記第1の参照ブロックに適用することと、
前記第1の参照テンプレート中のサンプルの第1のセット及び前記第1の参照テンプレート中のサンプルの第2のセットを生成するために、前記適用されたそれぞれの分割モードを、前記第1の参照テンプレートのサンプルに拡張することと、
前記適用されたそれぞれの分割モードの、前記第1の参照テンプレートの前記サンプルへの前記拡張に基づいて、前記第1の参照テンプレート中の前記サンプルの第1のセットにアクセスすることと、
前記それぞれの分割モードを、前記第2の参照ブロックに適用することと、
前記第2の参照テンプレート中のサンプルの第3のセット及び前記第2の参照テンプレート中のサンプルの第4のセットを生成するために、前記適用されたそれぞれの分割モードを、前記第2の参照テンプレートのサンプルに拡張することと、
前記適用されたそれぞれの分割モードの、前記第2の参照テンプレートの前記サンプルへの前記拡張に基づいて、前記第2の参照テンプレート中の前記サンプルの第3のセットにアクセスすることと、
前記それぞれの参照テンプレートを生成するために、前記サンプルの第1のセットと、前記サンプルの第3のセットとを組み合わせることと、
を含む、請求項3に記載の方法。
【請求項6】
前記それぞれの参照テンプレートを生成するために、前記サンプルの第1のセットと、前記サンプルの第3のセットとを組み合わせることが、
前記サンプルの第1のセット中の1つ又は複数のサンプルを、前記サンプルの第4のセット中の1つ又は複数のサンプルとブレンディングすることと、
前記サンプルの第3のセット中の1つ又は複数のサンプルと、前記サンプルの第2のセット中の1つ又は複数のサンプルとをブレンディングすることと、
前記ブレンディングに基づいて、前記サンプルの第1のセットと、前記サンプルの第3のセットとを組み合わせることと、
を含む、請求項5に記載の方法。
【請求項7】
前記分割モードを示すインデックス値を受信することと、
前記マッピングリストへの前記インデックス値に基づいて、前記分割モードを決定することと、
を更に含む、請求項1に記載の方法。
【請求項8】
前記インデックス値を受信することが、
前記インデックス値を示す情報を、固定長バイナリ復号すること、
前記インデックス値を示す情報を、切捨てバイナリ復号すること、
前記インデックス値を示す情報を、ゴロム-ライス復号すること、又は、
前記インデックス値を示す情報の1つ又は複数のビンを、コンテキストベース適応コーディング(CABAC)復号すること、
のうちの少なくとも1つを含む、請求項7に記載の方法。
【請求項9】
前記マッピングリストを構築することが、前記それぞれのコストに基いて、前記インデックス値の昇順で前記複数の分割モードのうちの1つ又は複数の分割モードを順序付けることを含む、請求項1に記載の方法。
【請求項10】
前記マッピングリストを構築することが、最も低いコストを有する前記複数の分割モードのうちのN個の分割モードを含めることを含む、請求項1に記載の方法。
【請求項11】
前記現在のブロックが、第1のピクチャのものであり、かつ前記現在のブロックが、第1のブロックであり、前記方法が、
幾何学的区分モードが前記ビデオデータの第2のピクチャの第2のブロックに対して有効になっていると決定することと、
前記第2のブロックのための少なくとも1つの参照ピクチャのサイズが、前記第2のピクチャのサイズと異なると決定することと、
前記少なくとも1つの参照ピクチャの前記サイズが前記第2のピクチャの前記サイズとは異なるという前記決定に基づいて、分割モード並べ替えプロセスをバイパスすることと、
を更に含む、請求項1に記載の方法。
【請求項12】
前記分割モードを示すインデックス値をシグナリングすることを更に含む、請求項1に記載の方法。
【請求項13】
ビデオデータを符号化又は復号するためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
前記メモリに結合された処理回路と、
を備え、前記処理回路が、
区分するためのエッジを各々が定義する複数の分割モードを含む幾何学的区分モードが、前記ビデオデータの現在のブロックに対して有効になっていると決定し、
前記複数の分割モードのうちの少なくとも2つの中の各分割モードについて、それぞれの分割モードに関連付けられたそれぞれのコストを決定し、
前記それぞれの分割モードに関連付けられた前記それぞれのコストに基づいて、前記それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築し、前記マッピングリスト中のより低いインデックス値が、前記マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられ、
前記マッピングリスト中の前記複数の分割モードの中から分割モードを決定し、
前記分割モードに基づいて、前記ビデオデータの現在のブロックを再構築する、
ように構成されている、
デバイス。
【請求項14】
前記それぞれの分割モードに関連付けられた前記それぞれのコストを決定するために、前記処理回路が、
前記それぞれの分割モードに基づいて、それぞれの参照テンプレートを決定し、
前記現在のブロックのための現在のテンプレートであって、前記現在のブロックの外部のサンプルを含む、現在のテンプレートを決定し、
前記それぞれの参照テンプレート及び前記現在のテンプレートに基づいて、前記それぞれの分割モードに関連付けられた前記それぞれのコストを決定する、
ように構成されている、請求項13に記載のデバイス。
【請求項15】
前記それぞれの参照テンプレートを決定するために、前記処理回路が、
前記現在のブロックの第1の区分の第1の動きベクトルによって識別された第1の参照ブロックに基づいて、第1の参照テンプレートを決定し、
前記現在のブロックの第2の区分の第2の動きベクトルによって識別された第2の参照ブロックに基づいて、第2の参照テンプレートを決定し、
前記それぞれの参照テンプレートを生成するために、前記それぞれの分割モードに基づいて、前記第1の参照テンプレートからのサンプルと、前記第2の参照テンプレートからのサンプルとを組み合わせる、
ように構成されている、請求項14に記載のデバイス。
【請求項16】
前記第1の参照テンプレートが、前記第1の参照ブロックの上のサンプルの第1の部分と、前記第1の参照ブロックの左のサンプルの第2の部分とを含み、前記第2の参照テンプレートが、前記第2の参照ブロックの上のサンプルの第1の部分と、前記第2の参照ブロックの左のサンプルの第2の部分とを含む、請求項15に記載のデバイス。
【請求項17】
前記それぞれの参照テンプレートを生成するため、前記それぞれの分割モードに基づいて、前記第1の参照テンプレートからのサンプルと、前記第2の参照テンプレートからのサンプルとを組み合わせるために、前記処理回路が、
前記それぞれの分割モードを、前記第1の参照ブロックに適用し、
前記第1の参照テンプレート中のサンプルの第1のセット及び前記第1の参照テンプレート中のサンプルの第2のセットを生成するために、前記適用されたそれぞれの分割モードを、前記第1の参照テンプレートのサンプルに拡張し、
前記適用されたそれぞれの分割モードの、前記第1の参照テンプレートの前記サンプルへの前記拡張に基づいて、前記第1の参照テンプレート中の前記サンプルの第1のセットにアクセスし、
前記それぞれの分割モードを、前記第2の参照ブロックに適用し、
前記第2の参照テンプレート中のサンプルの第3のセット及び前記第2の参照テンプレート中のサンプルの第4のセットを生成するために、前記適用されたそれぞれの分割モードを、前記第2の参照テンプレートのサンプルに拡張し、
前記適用されたそれぞれの分割モードの、前記第2の参照テンプレートの前記サンプルへの前記拡張に基づいて、前記第2の参照テンプレート中の前記サンプルの第3のセットにアクセスし、
前記それぞれの参照テンプレートを生成するために、前記サンプルの第1のセットと、前記サンプルの第3のセットとを組み合わせる、
ように構成されている、請求項15に記載のデバイス。
【請求項18】
前記それぞれの参照テンプレートを生成するため、前記サンプルの第1のセットと、前記サンプルの第3のセットとを組み合わせるために、前記処理回路が、
前記サンプルの第1のセット中の1つ又は複数のサンプルを、前記サンプルの第4のセット中の1つ又は複数のサンプルとブレンディングし、
前記サンプルの第3のセット中の1つ又は複数のサンプルと、前記サンプルの第2のセット中の1つ又は複数のサンプルとをブレンディングし、
前記ブレンディングに基づいて、前記サンプルの第1のセットと、前記サンプルの第3のセットとを組み合わせる、
ように構成されている、請求項17に記載のデバイス。
【請求項19】
前記処理回路が、
前記分割モードを示すインデックス値を受信し、
前記マッピングリストへの前記インデックス値に基づいて、前記分割モードを決定する、
ように構成されている、請求項13に記載のデバイス。
【請求項20】
前記インデックス値を受信するために、前記処理回路が、
前記インデックス値を示す情報を、固定長バイナリ復号すること、
前記インデックス値を示す情報を、切捨てバイナリ復号すること、
前記インデックス値を示す情報を、ゴロム-ライス復号すること、又は、
前記インデックス値を示す情報の1つ又は複数のビンを、コンテキストベース適応コーディング(CABAC)復号すること、
のうちの少なくとも1つを行うように構成されている、請求項19に記載のデバイス。
【請求項21】
前記マッピングリストを構築するために、前記処理回路が、前記それぞれのコストに基いて、前記インデックス値の昇順で前記複数の分割モードのうちの1つ又は複数の分割モードを順序付けるように構成されている、請求項13に記載のデバイス。
【請求項22】
前記マッピングリストを構築するために、前記処理回路が、最も低いコストを有する前記複数の分割モードのうちのN個の分割モードを含むように構成されている、請求項13に記載のデバイス。
【請求項23】
前記現在のブロックが、第1のピクチャのものであり、かつ前記現在のブロックが、第1のブロックであり、前記処理回路が、
幾何学的区分モードが前記ビデオデータの第2のピクチャの第2のブロックに対して有効になっていると決定し、
前記第2のブロックのための少なくとも1つの参照ピクチャのサイズが、前記第2のピクチャのサイズと異なると決定し、
前記少なくとも1つの参照ピクチャの前記サイズが前記第2のピクチャの前記サイズとは異なるという前記決定に基づいて、分割モード並べ替えプロセスをバイパスする、
ように構成されている、請求項13に記載のデバイス。
【請求項24】
前記処理回路が、前記分割モードを示すインデックス値をシグナリングするように構成されている、請求項13に記載のデバイス。
【請求項25】
命令を記憶するコンピュータ可読記憶媒体であって、前記命令が、実行されたときに、ビデオデータを符号化又は復号するための1つ又は複数のプロセッサに、
区分するためのエッジを各々が定義する複数の分割モードを含む幾何学的区分モードが、前記ビデオデータの現在のブロックに対して有効になっていると決定させ、
前記複数の分割モードのうちの少なくとも2つの中の各分割モードについて、それぞれの分割モードに関連付けられたそれぞれのコストを決定させ、
前記それぞれの分割モードに関連付けられた前記それぞれのコストに基づいて、前記それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築させ、前記マッピングリスト中のより低いインデックス値が、前記マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられ、
前記マッピングリスト中の前記複数の分割モードの中から分割モードを決定させ、
前記分割モードに基づいて前記ビデオデータの現在のブロックを再構築させる、
コンピュータ可読記憶媒体。
【請求項26】
前記1つ又は複数のプロセッサに、前記それぞれの分割モードに関連付けられた前記それぞれのコストを決定させる前記命令が、前記1つ又は複数のプロセッサに、
前記それぞれの分割モードに基づいて、それぞれの参照テンプレートを決定させ、
前記現在のブロックのための現在のテンプレートであって、前記現在のブロックの外部のサンプルを含む、現在のテンプレートを決定させ、
前記それぞれの参照テンプレート及び前記現在のテンプレートに基づいて、前記それぞれの分割モードに関連付けられた前記それぞれのコストを決定させる、
命令を含む、請求項25に記載のコンピュータ可読記憶媒体。
【請求項27】
前記1つ又は複数のプロセッサに前記それぞれの参照テンプレートを決定させる前記命令が、前記1つ又は複数のプロセッサに、
前記現在のブロックの第1の区分の第1の動きベクトルによって識別された第1の参照ブロックに基づいて、第1の参照テンプレートを決定させ、
前記現在のブロックの第2の区分の第2の動きベクトルによって識別された第2の参照ブロックに基づいて、第2の参照テンプレートを決定させ、
前記それぞれの参照テンプレートを生成するために、前記それぞれの分割モードに基づいて、前記第1の参照テンプレートからのサンプルと、前記第2の参照テンプレートからのサンプルとを組み合わせさせる、命令を含む、請求項26に記載のコンピュータ可読記憶媒体。
【請求項28】
前記第1の参照テンプレートが、前記第1の参照ブロックの上のサンプルの第1の部分と、前記第1の参照ブロックの左のサンプルの第2の部分とを含み、前記第2の参照テンプレートが、前記第2の参照ブロックの上のサンプルの第1の部分と、前記第2の参照ブロックの左のサンプルの第2の部分とを含む、請求項27に記載のコンピュータ可読記憶媒体。
【請求項29】
前記1つ又は複数のプロセッサに、前記それぞれの参照テンプレートを生成するために、前記それぞれの分割モードに基づいて、前記第1の参照テンプレートからのサンプルと、前記第2の参照テンプレートからのサンプルとを組み合わせさせる前記命令が、前記1つ又は複数のプロセッサに、
前記それぞれの分割モードを、前記第1の参照ブロックに適用させ、
前記第1の参照テンプレート中のサンプルの第1のセット及び前記第1の参照テンプレート中のサンプルの第2のセットを生成するために、前記適用されたそれぞれの分割モードを、前記第1の参照テンプレートのサンプルに拡張させ、
前記適用されたそれぞれの分割モードの、前記第1の参照テンプレートの前記サンプルへの前記拡張に基づいて、前記第1の参照テンプレート中の前記サンプルの第1のセットにアクセスさせ、
前記それぞれの分割モードを、前記第2の参照ブロックに適用させ、
前記第2の参照テンプレート中のサンプルの第3のセット及び前記第2の参照テンプレート中のサンプルの第4のセットを生成するために、前記適用されたそれぞれの分割モードを、前記第2の参照テンプレートのサンプルに拡張させ、
前記適用されたそれぞれの分割モードの、前記第2の参照テンプレートの前記サンプルへの前記拡張に基づいて、前記第2の参照テンプレート中の前記サンプルの第3のセットにアクセスさせ、
前記それぞれの参照テンプレートを生成するために、前記サンプルの第1のセットと、前記サンプルの第3のセットとを組み合わせさせる、命令を含む、請求項27に記載のコンピュータ可読記憶媒体。
【請求項30】
前記1つ又は複数のプロセッサに、前記それぞれの参照テンプレートを生成するために、前記サンプルの第1のセットと、前記サンプルの第3のセットとを組み合わせさせる前記命令が、前記1つ又は複数のプロセッサに、
前記サンプルの第1のセット中の1つ又は複数のサンプルを、前記サンプルの第4のセット中の1つ又は複数のサンプルとブレンディングさせ、
前記サンプルの第3のセット中の1つ又は複数のサンプルと、前記サンプルの第2のセット中の1つ又は複数のサンプルとをブレンディングさせ、
前記ブレンディングに基づいて、前記サンプルの第1のセットと、前記サンプルの第3のセットとを組み合わせさせる、命令を含む、請求項29に記載のコンピュータ可読記憶媒体。
【請求項31】
前記命令が、前記1つ又は複数のプロセッサに、
前記分割モードを示すインデックス値を受信させ、
前記マッピングリストへの前記インデックス値に基づいて、前記分割モードを決定させる、
命令を更に含む、請求項25に記載のコンピュータ可読記憶媒体。
【請求項32】
前記1つ又は複数のプロセッサに前記インデックス値を受信させる前記命令が、前記1つ又は複数のプロセッサに、
前記インデックス値を示す情報を、固定長バイナリ復号させること、
前記インデックス値を示す情報を、切捨てバイナリ復号させること、
前記インデックス値を示す情報を、ゴロム-ライス復号させること、又は、
前記インデックス値を示す情報の1つ又は複数のビンを、コンテキストベース適応コーディング(CABAC)復号させること、
のうちの少なくとも1つを行わせる命令を含む、請求項25に記載のコンピュータ可読記憶媒体。
【請求項33】
前記1つ又は複数のプロセッサに前記マッピングリストを構築させる前記命令が、前記1つ又は複数のプロセッサに、前記それぞれのコストに基いて、前記インデックス値の昇順で前記複数の分割モードのうちの1つ又は複数の分割モードを順序付けさせる命令を含む、請求項25に記載のコンピュータ可読記憶媒体。
【請求項34】
前記1つ又は複数のプロセッサに前記マッピングリストを構築させる前記命令が、前記1つ又は複数のプロセッサに、最も低いコストを有する前記複数の分割モードのうちのN個の分割モードを含ませる命令を含む、請求項25に記載のコンピュータ可読記憶媒体。
【請求項35】
前記現在のブロックが、第1のピクチャのものであり、かつ前記現在のブロックが、第1のブロックであり、前記命令が、前記1つ又は複数のプロセッサに、
幾何学的区分モードが前記ビデオデータの第2のピクチャの第2のブロックに対して有効になっていると決定させ、
前記第2のブロックのための少なくとも1つの参照ピクチャのサイズが、前記第2のピクチャのサイズと異なると決定させ、
前記少なくとも1つの参照ピクチャの前記サイズが前記第2のピクチャの前記サイズとは異なるという前記決定に基づいて、分割モード並べ替えプロセスをバイパスさせる、
命令を含む、請求項25に記載のコンピュータ可読記憶媒体。
【請求項36】
前記命令が、前記1つ又は複数のプロセッサに、前記分割モードを示すインデックス値をシグナリングさせる命令を更に含む、請求項25に記載のコンピュータ可読記憶媒体。
【請求項37】
ビデオデータを符号化又は復号するためのデバイスであって、
区分するためのエッジを各々が定義する複数の分割モードを含む幾何学的区分モードが、前記ビデオデータの現在のブロックに対して有効になっていると決定するための手段と、
前記複数の分割モードのうちの少なくとも2つの中の各分割モードについて、それぞれの分割モードに関連付けられたそれぞれのコストを決定するための手段と、
前記それぞれの分割モードに関連付けられた前記それぞれのコストに基づいて、前記それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築するための手段であって、前記マッピングリスト中のより低いインデックス値が、前記マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられる、手段と、
前記マッピングリスト中の前記複数の分割モードの中から分割モードを決定するための手段と、
前記分割モードに基づいて、前記ビデオデータの現在のブロックを再構築するための手段と、
を備えるデバイス。
【請求項38】
前記それぞれの分割モードに関連付けられた、前記それぞれのコストを決定するための前記手段が、
前記それぞれの分割モードに基づいて、それぞれの参照テンプレートを決定するための手段と、
前記現在のブロックのための現在のテンプレートであって、前記現在のブロックの外部のサンプルを含む、現在のテンプレートを決定するための手段と、
前記それぞれの参照テンプレート及び前記現在のテンプレートに基づいて、前記それぞれの分割モードに関連付けられた前記それぞれのコストを決定するための手段と、
を備える、請求項37に記載のデバイス。
【請求項39】
前記それぞれの参照テンプレートを決定するための前記手段が、
前記現在のブロックの第1の区分の第1の動きベクトルによって識別された第1の参照ブロックに基づいて、第1の参照テンプレートを決定するための手段と、
前記現在のブロックの第2の区分の第2の動きベクトルによって識別された第2の参照ブロックに基づいて、第2の参照テンプレートを決定するための手段と、
前記それぞれの参照テンプレートを生成するために、前記それぞれの分割モードに基づいて、前記第1の参照テンプレートからのサンプルと、前記第2の参照テンプレートからのサンプルとを組み合わせるための手段と、
を備える、請求項38に記載のデバイス。
【請求項40】
前記第1の参照テンプレートが、前記第1の参照ブロックの上のサンプルの第1の部分と、前記第1の参照ブロックの左のサンプルの第2の部分とを含み、前記第2の参照テンプレートが、前記第2の参照ブロックの上のサンプルの第1の部分と、前記第2の参照ブロックの左のサンプルの第2の部分とを含む、請求項39に記載のデバイス。
【請求項41】
前記それぞれの参照テンプレートを生成するために、前記それぞれの分割モードに基づいて、前記第1の参照テンプレートからのサンプルと、前記第2の参照テンプレートからのサンプルとを組み合わせるための前記手段が、
前記それぞれの分割モードを、前記第1の参照ブロックに適用するための手段と、
前記第1の参照テンプレート中のサンプルの第1のセット及び前記第1の参照テンプレート中のサンプルの第2のセットを生成するために、前記適用されたそれぞれの分割モードを、前記第1の参照テンプレートのサンプルに拡張するための手段と、
前記適用されたそれぞれの分割モードの、前記第1の参照テンプレートの前記サンプルへの前記拡張に基づいて、前記第1の参照テンプレート中の前記サンプルの第1のセットにアクセスするための手段と、
前記それぞれの分割モードを、前記第2の参照ブロックに適用するための手段と、
前記第2の参照テンプレート中のサンプルの第3のセット及び前記第2の参照テンプレート中のサンプルの第4のセットを生成するために、前記適用されたそれぞれの分割モードを、前記第2の参照テンプレートのサンプルに拡張させるための手段と、
前記適用されたそれぞれの分割モードの、前記第2の参照テンプレートの前記サンプルへの前記拡張に基づいて、前記第2の参照テンプレート中の前記サンプルの第3のセットにアクセスするための手段と、
前記それぞれの参照テンプレートを生成するために、前記サンプルの第1のセットと、前記サンプルの第3のセットとを組み合わせるための手段と、
を備える、請求項39に記載のデバイス。
【請求項42】
前記それぞれの参照テンプレートを生成するために、前記サンプルの第1のセットと、前記サンプルの第3のセットとを組み合わせるための前記手段が、
前記サンプルの第1のセット中の1つ又は複数のサンプルを、前記サンプルの第4のセット中の1つ又は複数のサンプルとブレンディングするための手段と、
前記サンプルの第3のセット中の1つ又は複数のサンプルと、前記サンプルの第2のセット中の1つ又は複数のサンプルとをブレンディングするための手段と、
前記ブレンディングに基づいて、前記サンプルの第1のセットと、前記サンプルの第3のセットとを組み合わせるための手段と、
を備える、請求項41に記載のデバイス。
【請求項43】
前記分割モードを示すインデックス値を受信するための手段と、
前記マッピングリストへの前記インデックス値に基づいて、前記分割モードを決定するための手段と、
を更に備える、請求項37に記載のデバイス。
【請求項44】
前記インデックス値を受信するための前記手段が、
前記インデックス値を示す情報を、固定長バイナリ復号するための手段、
前記インデックス値を示す情報を、切捨てバイナリ復号するための手段、
前記インデックス値を示す情報を、ゴロム-ライス復号するための手段、又は、
前記インデックス値を示す情報の1つ又は複数のビンを、コンテキストベース適応コーディング(CABAC)復号するための手段、
のうちの少なくとも1つを備える、請求項43に記載のデバイス。
【請求項45】
前記マッピングリストを構築するための前記手段が、前記それぞれのコストに基いて、前記インデックス値の昇順で、前記複数の分割モードのうちの1つ又は複数の分割モードを順序付けるための手段を備える、請求項37に記載のデバイス。
【請求項46】
前記マッピングリストを構築するための前記手段が、最も低いコストを有する前記複数の分割モードのうちのN個の分割モードを含めるための手段を備える、請求項37に記載のデバイス。
【請求項47】
前記現在のブロックが、第1のピクチャのものであり、かつ前記現在のブロックが、第1のブロックであり、前記デバイスが、
幾何学的区分モードが前記ビデオデータの第2のピクチャの第2のブロックに対して有効になっていると決定するための手段と、
前記第2のブロックのための少なくとも1つの参照ピクチャのサイズが、前記第2のピクチャのサイズとは異なると決定するための手段と、
前記少なくとも1つの参照ピクチャの前記サイズが前記第2のピクチャの前記サイズとは異なるという前記決定に基づいて、分割モード並べ替えプロセスをバイパスするための手段と、
を備える、請求項37に記載のデバイス。
【請求項48】
前記分割モードを示すインデックス値をシグナリングするための手段を更に備える、請求項37に記載のデバイス。

【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本出願は、2022年12月20日に出願された米国特許出願第18/068,767号、及び2022年1月04日に出願された米国特許仮出願第63/266,386号の優先権を主張し、両出願の内容全体が参照により本明細書に組み込まれる。2022年12月20日に出願された米国特許出願第18/068,767号は、2022年01月4日に出願された米国仮特許出願第63/266,386号の利益を主張する。
【0002】
[0002] 本開示は、ビデオ符号化及びビデオ復号に関する。
【背景技術】
【0003】
[0003] デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDAs)、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラー又は衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスの中に組み込まれ得る。デジタルビデオデバイスは、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)によって定義された規格、及びそのような規格の拡張、並びにAlliance for Open Mediaによって開発されたAOMedia Video1(AV1)などのプロプライエタリビデオコーデック/フォーマットに記載されているビデオコーディング技法など、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、及び/又は記憶する場合がある。
【0004】
[0004] ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減又は除去するために、空間(ピクチャ内)予測及び/又は時間(ピクチャ間)予測を含む。ブロックベースのビデオコーディングの場合、ビデオスライス(例えば、ビデオピクチャ又はビデオピクチャの一部分)は、ビデオブロックに区分されてもよく、ビデオブロックは、コーディングツリーユニット(CTUs)、コーディングユニット(CUs)及び/又はコーディングノードと呼ばれることもある。ピクチャのイントラコーディングされた(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコーディングされた(P又はB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測又は他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれる場合があり、参照ピクチャは参照フレームと呼ばれる場合がある。
【発明の概要】
【0005】
[0005] 概して、本開示は、幾何学的区分モード(例えば、幾何学的区分モード(GEO)、GEO+MMVD(マージ動きベクトル差分)モード、GEO+TM(テンプレートマッチング)モード)のパラメータを識別するために使用されるシンタックス(例えば、分割モード、候補インデックス、MVD(動きベクトル差分)オフセット)をシグナリング及びパーシングするための技法について説明する。幾何学的区分モードは、幾何学的区分モード(GPM)、GPM+MMVD、又はGPM+TMと呼ばれることもある。本開示の例示的な技法は、幾何学的区分モードのパラメータをシグナリングするために使用されるシンタックスを最適化し得る。そのような技法は、HEVC(高効率ビデオコーディング)、VVC(多用途ビデオコーディング)、またはエッセンシャルビデオコーディング(EVC)などの既存のビデオコーデックのうちの任意のものに適用され得るか、または将来のビデオコーディング規格(例えば、強化圧縮モデル(ECM))における効率的なコーディングツールであり得る。
【0006】
[0006] GPMは、現在のブロックを2つ以上の区分に分けるエッジを各々が定義する複数の分割モードを含む。ビデオエンコーダは、分割モードを示す情報をシグナリングし、ビデオデコーダは、分割モードを示す情報を受信し、ビデオエンコーダとビデオデコーダの両方が、同じ方法で現在のブロックを区分する。本開示は、現在のブロックが特定の分割モードのエッジに従って符号化又は復号される可能性を利用する形で、現在のブロックを符号化又は復号するためにどの分割モードが使用されるかを決定するための例示的な方法について説明する。
【0007】
[0007] 分割モードが使用される可能性は変動してもよく、また(例えば、レート歪み又はシグナリングされる必要があるビット数などの観点から)コストに基づいてもよい。すなわち、より低いコストを有する分割モードは、より高いコストを有する分割モードと比較して使用される可能性がより高い。1つ又は複数の例では、ビデオエンコーダ及びビデオデコーダは、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値を有するマッピングリストを構築し得る。ビデオエンコーダは、マッピングリスト中に記憶された値を識別するインデックス値をマッピングリストにシグナリングし得るが、その識別された値に基づいて、ビデオデコーダは、複数の分割モードのうちの1つの分割モードを決定し得る。
【0008】
[0008] 1つ又は複数の例では、より小さい値のインデックスをシグナリングすることは、より大きい値のインデックスをシグナリングすることよりも少ないビットを必要とし得る。使用される可能性がより高い分割モードがより小さい値のインデックスに関連付けられるようにマッピングリストを構築することによって、マッピングリストが使用される分割モードの可能性を考慮せずに構成された場合と比較して、ビデオエンコーダがインデックス値のより小さい値をマッピングリストにシグナリングする可能性がより高くなる。このようにして、例示的な技法は、ビデオコーディングの技術において帯域幅利用を改善する(例えば、低減された帯域幅利用を促進する)実用的なアプリケーションを提供し得る。
【0009】
[0009] 一例では、本開示は、ビデオデータを符号化又は復号する方法について説明し、方法は、区分するためのエッジを各々が定義する複数の分割モードを含む幾何学的区分モードが、ビデオデータの現在のブロックに対して有効になっていると決定することと、複数の分割モードのうちの少なくとも2つの中の各分割モードについて、それぞれの分割モードに関連付けられたそれぞれのコストを決定することと、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築することであって、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられる、ことと、マッピングリスト中の複数の分割モードの中から分割モードを決定することと、分割モードに基づいて、ビデオデータの現在のブロックを再構築することと、を含む。
【0010】
[0010] 一例では、本開示は、ビデオデータを符号化又は復号するためのデバイスについて説明し、デバイスは、ビデオデータを記憶するように構成されたメモリと、メモリに結合された処理回路と、を備え、処理回路が、区分するためのエッジを各々が定義する複数の分割モードを含む幾何学的区分モードが、ビデオデータの現在のブロックに対して有効になっていると決定し、複数の分割モードのうちの少なくとも2つの中の各分割モードについて、それぞれの分割モードに関連付けられたそれぞれのコストを決定し、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築し、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられ、マッピングリスト中の複数の分割モードの中で分割モードを決定し、分割モードに基づいて、ビデオデータの現在のブロックを再構築する、ように構成されている。
【0011】
[0011] 一例では、本開示は、命令を記憶したコンピュータ可読記憶媒体を説明しており、それらの命令は、実行されたときに、ビデオデータを符号化又は復号するための1つ又は複数のプロセッサに、区分するためのエッジを各々が定義する複数の分割モードを含む幾何学的区分モードが、ビデオデータの現在のブロックに対して有効になっていると決定させ、複数の分割モードのうちの少なくとも2つの中の各分割モードについて、それぞれの分割モードに関連付けられたそれぞれのコストを決定させ、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築させ、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられ、マッピングリスト中の複数の分割モードの中で分割モードを決定させ、分割モードに基づいてビデオデータの現在のブロックを再構築させる。
【0012】
[0012] 一例では、本開示は、ビデオデータを符号化又は復号するための装置について説明し、装置は、区分するためのエッジを各々が定義する複数の分割モードを含む幾何学的区分モードが、ビデオデータの現在のブロックに対して有効になっていると決定するための手段と、複数の分割モードのうちの少なくとも2つの中の各分割モードについて、それぞれの分割モードに関連付けられたそれぞれのコストを決定するための手段と、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築するための手段であって、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられる、手段と、マッピングリスト中の複数の分割モードの中から分割モードを決定するための手段と、分割モードに基づいて、ビデオデータの現在のブロックを再構築するための手段と、を含む。
【0013】
[0013] 1つ又は複数の例の詳細が、添付図面及び以下の説明に記載されている。他の特徴、目的、及び利点は、説明、図面、及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0014】
図1】[0014] 本開示の技法を実施し得る例示的なビデオ符号化及び復号システムを示すブロック図である。
図2】[0015] 本開示の技術を実行することができる例示的なビデオエンコーダを示すブロック図である。
図3】[0016] 本開示の技術を実行することができる例示的なビデオデコーダを示すブロック図である。
図4A】[0017] それぞれ、マージモード及び高度動きベクトル予測(AMVP)モードのための、空間隣接動きベクトル(MV)候補を示す概念図である。
図4B】それぞれ、マージモード及び高度動きベクトル予測(AMVP)モードのための、空間隣接動きベクトル(MV)候補を示す概念図である。
図5A】[0018] 時間動きベクトル候補(TMVP)スケーリング及び動きベクトルスケーリングをそれぞれ示す概念図である。
図5B】時間動きベクトル候補(TMVP)スケーリング及び動きベクトルスケーリングをそれぞれ示す概念図である。
図6】[0019] 幾何学的区分モード(GEO)のための区分の例を示す概念図である。
図7】[0020] テンプレートの一例と、参照ピクチャ内のテンプレートの参照サンプルとを示す概念図である。
図8】[0021] 現在のブロックのサブブロックの動き情報を利用したサブブロックの動きとともに、ブロックに対するテンプレートの一例及びテンプレートの参照サンプルを示す概念図である。
図9】[0022] 初期MVの周りの探索エリアでのテンプレートマッチングを示す概念図である。
図10A】[0023] は、分割モードのコストを決定するための参照テンプレートを生成する例を示す概念図である。
図10B】は、分割モードのコストを決定するための参照テンプレートを生成する例を示す概念図である。
図10C】は、分割モードのコストを決定するための参照テンプレートを生成する例を示す概念図である。
図10D】は、分割モードのコストを決定するための参照テンプレートを生成する例を示す概念図である。
図11】[0024] 分割モードのためのマッピングリストを構築する例を示すフローチャートである。
図12】[0025] 本開示で説明される例示的な技法による複号の例示的な方法を示すフローチャートである。
図13】[0026] 本開示で説明される例示的な技法による符号化の例示的な方法を示すフローチャートである。
図14】[0027] 参照ピクチャの再サンプリングでビデオデータを復号する例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【0015】
[0028] 幾何学的区分モード(GEO)又は(GPM)では、現在のブロックは、1つ又は複数の幾何学的に位置する直線エッジ(複数可)によって少なくとも2つの部分に分割される。本開示では、頭字語GEO及びGPMは、相互に交換可能である。
【0016】
[0029] 直線エッジは、現在のブロックの2つの異なるエッジ(例えば、異なる角度の上エッジから下エッジへの線、異なる角度の右エッジから上エッジへの線、異なる角度の右エッジから下エッジへの線、異なる角度の右エッジから左エッジへの線、異なる角度の左エッジから上エッジへの線、及び異なる角度の左エッジから下エッジへの線)と交差し得る。これらの例示的なエッジ(例えば、線)の各々は、GEOの分割モードと見なされ得る。ビデオエンコーダは、分割モードを示す情報をビデオデコーダにシグナリングすることができる。
【0017】
[0030] いくつかの技法では、各分割モードが等確率であると見なされる、GEO分割モードの固定長符号化構造が利用される。しかしながら、そのような技法は、現在のブロックのエッジのエッジ方向(例えば、分割モード)を予測するために隣接ピクセル(例えば、参照ピクチャの因果的隣接ピクセル)からの情報を利用しないことがあるので、そのような技法は、コードワード長に関して準最適であり得る。したがって、そのような技法では、GEO分割モードからのシンタックス設計は、必要よりも長いコードワードをシグナリングすることになる場合があり得るので、非効率的な帯域幅利用になり得る。
【0018】
[0031] 本開示は、効率的な帯域幅利用を促進し得るGEO分割モードについての情報をシグナリング及び解析するための例示的な技法について説明する。例示的な技法は、GEO分割モードのための、グループ化及び/又はコスト(例えば、テンプレートマッチング(TM)コスト)ベースのシンタックス並べ替えを使用して、GEO分割モードのためのシンタックス並べ替えのうちの1つ又は複数を利用し得る。本開示はまた、コスト計算、参照ブロックテンプレートをブレンディングするためのGEO重みの使用、GEO+TMモードの適用、参照ピクチャの再サンプリングとTMコストベースのGEO分割モード並べ替えとの間の相互作用、及び様々な拡張に関係する技法について説明する。
【0019】
[0032] いくつかの既存の技法では、ビデオエンコーダは、1つの値(例えば、0~63の間の値)をシグナリングするが、ここで、各値は、特定の分割モードに関連付けられている。ビデオデコーダは、次いで、シグナリングされた値に関連付けられた分割モードによって定義されたエッジに基づいて、現在のブロックを区分し得る。
【0020】
[0033] 本開示は、使用される可能性がより高い分割モードが、使用される可能性がより低い分割モードよりも低いマッピングリストへのインデックス値を有するように配置されるよう、分割モードを並べ替えるマッピングリストを構築するための例示的な方法を説明する。例えば、分割モード15(例えば、15に関連付けられた値を有する分割モード)が分割モード5よりも、分割モードである可能性が高いと仮定する。この例では、ビデオエンコーダ及びビデオデコーダは、分割モード15が分割モード5(例えば、マッピングリスト中のインデックス4)よりも低いインデックス値(例えば、マッピングリスト中のインデックス0)に関連付けられるように、マッピングリストを構築し得る。
【0021】
[0034] ある分割モードが別の分割モードよりも使用される可能性が高いと決定するために、ビデオエンコーダ及びビデオデコーダは、分割モードに関連付けられたそれぞれのコストを決定することができる。例えば、複数の分割モードのうちの少なくとも2つ(例えば、複数の分割モードのサブセット又はすべて)の中の各分割モードについて、ビデオエンコーダ及びビデオデコーダは、それぞれの分割モードに関連付けられたそれぞれのコストを決定し得る。ビデオエンコーダ及びビデオデコーダは、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モード(例えば、上記の例からの分割モード5及び分割モード15)を示す値を有するマッピングリストを構築することができる(例えば、より低いコストの分割モードが最初に識別され、マッピングリストにおいてより低いインデックス値を有し、より高いコストの分割モードが後で識別され、マッピングリストにおいてより高いインデックス値を有する)。すなわち、ビデオエンコーダ及びビデオデコーダは、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築することができ、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられる。
【0022】
[0035] 分割モードのコストを決定する1つの例示的な方法は、それぞれの分割モードに基づいてそれぞれのテンプレートを決定することである。1つ又は複数の例では、各それぞれの分割モードのそれぞれのコストを決定するためのそれぞれのテンプレートは、それぞれの参照ブロックに隣接するサンプルに基づいて形成され得るが、ここで参照ブロックは、現在のブロックの区分の動きベクトルによって識別される。例えば、それぞれの分割モードは、それぞれの参照ブロックに隣接するサンプルからどのサンプルを使用してそれぞれのテンプレートを形成するかを定義することができる。
【0023】
[0036] ビデオエンコーダ及びビデオデコーダは、それぞれの分割モードのそれぞれのコストを決定するために、それぞれの分割モードのためのそれぞれのテンプレートを、現在のブロックのための現在のテンプレートと比較し得る。例えば、ビデオエンコーダ及びビデオデコーダは、第1の分割モードのための第1の参照テンプレートを生成し、第1の分割モードの第1のコストを決定するために、第1の参照テンプレートを現在のテンプレートと比較し得る。ビデオエンコーダ及びビデオデコーダは、第2の分割モードのための第2の参照テンプレートを生成し、第2の分割モードの第2のコストを決定するために、第2の参照テンプレートを現在のテンプレートと比較し得る。
【0024】
[0037] ビデオエンコーダ及びビデオデコーダは、第1のコスト及び第2のコストに基づいて、第1の分割モードを識別する値と第2の分割モードを識別する値とを、マッピングリストに配置し得る。例えば、第1のコストが第2のコストよりも小さい場合、ビデオエンコーダ及びビデオデコーダは、第2の分割モードよりも低いインデックス値で、第1の分割モードをマッピングリストに含め得る。第1のコストが第2のコストよりも大きい場合、ビデオエンコーダ及びビデオデコーダは、第2の分割モードよりも高いインデックス値で、第1の分割モードをマッピングリストに含め得る。
【0025】
[0038] ビデオエンコーダ及びビデオデコーダは、マッピングリストを構築するために、複数の分割モードのすべて又はサブセットに対してそのような動作を繰り返し得る。いくつかの例では、マッピングリストは、32個の最も可能性の高い分割モードを識別し得る。
【0026】
[0039] このようにして、ビデオエンコーダ及びビデオデコーダは両方とも、同じマッピングリストを構築し得る。ビデオエンコーダは、現在のブロックのための分割モードを決定するためにビデオデコーダが使用するインデックス値を、マッピングリストにシグナリングし得る。ビデオデコーダは、次いで、分割モードによって定義されたエッジに基づいて現在のブロックを区分し、分割モード(例えば、決定された分割モード)に基づいて現在のブロックを再構築し得る。
【0027】
[0040] 図1は、本開示の技法を実施し得る例示的なビデオ符号化及び復号システム100を示すブロック図である。本開示の技法は、一般に、ビデオデータをコーディングする(符号化及び/又は復号)することを対象とする。一般に、ビデオデータは、ビデオを処理するための任意のデータを含む。したがって、ビデオデータは、未加工の符号化されていないビデオ、符号化されたビデオ、復号された(例えば、再構築された)ビデオ、及びシグナリングデータなどのビデオメタデータを含んでよい。
【0028】
[0041] 図1に示されるように、この例では、システム100は、デスティネーションデバイス116によって復号され表示されるべき、符号化されたビデオデータを提供するソースデバイス102を含む。具体的には、ソースデバイス102は、コンピュータ可読媒体110を介してデスティネーションデバイス116にビデオデータを提供する。ソースデバイス102及びデスティネーションデバイス116は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、モバイルデバイス、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、表示デバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、放送受信機デバイスなどを含む、広範囲にわたるデバイスのいずれを備えてもよい。場合によっては、ソースデバイス102及びデスティネーションデバイス116は、ワイヤレス通信に対応し得るので、ワイヤレス通信デバイスと呼ばれ得る。
【0029】
[0042] 図1の例では、ソースデバイス102は、ビデオソース104、メモリ106、ビデオエンコーダ200、及び出力インターフェース108を含む。デスティネーションデバイス116は、入力インターフェース122、ビデオデコーダ300、メモリ120、及び表示デバイス118を含む。本開示によれば、ソースデバイス102のビデオエンコーダ200及びデスティネーションデバイス116のビデオデコーダ300は、幾何学的区分モード(例えば、幾何学的区分モード(GEO)、GEO+MMVD(マージ動きベクトル差分)モード、GEO+TM(テンプレートマッチング)モード)のパラメータを識別するために使用されるシンタックス(例えば、分割モード、候補インデックス、MVD(動きベクトル差分)オフセット)をシグナリング及び構文解析するための技法など、GPMとも呼ばれる幾何学的区分モード(GEO)におけるシンタックス順序付けのための技法をビデオコーディングにおいて適用するように構成され得る。したがって、ソースデバイス102はビデオ符号化デバイスの例を表し、一方でデスティネーションデバイス116はビデオ復号デバイスの例を表す。他の例では、ソースデバイス及びデスティネーションデバイスは、他のコンポーネント又は構成を含み得る。例えば、ソースデバイス102は、外部カメラなどの外部ビデオソースからビデオデータを受信してもよい。同様に、デスティネーションデバイス116は、一体型表示デバイスを含むのではなく、外部表示デバイスとインターフェース接続してもよい。
【0030】
[0043] 図1に示すようなシステム100は一例にすぎない。概して、任意のデジタルビデオ符号化及び/又は復号デバイスは、幾何学的区分モードのパラメータを識別するために使用されるシンタックスをシグナリング及び構文解析するための技法のための技法を実行し得る。ソースデバイス102及びデスティネーションデバイス116は、ソースデバイス102がデスティネーションデバイス116への送信のためにコーディングされたビデオデータを生成するような、コーディングデバイスの例にすぎない。本開示は、データのコーディング(符号化及び/又は復号)を実施するデバイスを「コーディング」デバイスと呼ぶ。したがって、ビデオエンコーダ200及びビデオデコーダ300は、コーディングデバイス、具体的には、それぞれ、ビデオエンコーダ及びビデオデコーダの例を表す。いくつかの例では、ソースデバイス102及びデスティネーションデバイス116は、ソースデバイス102及びデスティネーションデバイス116の各々がビデオ符号化及び復号コンポーネントを含むように、実質的に対称的に動作し得る。したがって、システム100は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、又はビデオ電話のための、ソースデバイス102とデスティネーションデバイス116との間での一方向又は双方向のビデオ送信をサポートし得る。
【0031】
[0044] 一般に、ビデオソース104は、ビデオデータ(すなわち、未加工の符号化されていないビデオデータ)のソースを表し、ビデオデータの連続した一連のピクチャ(「フレーム」とも呼ばれる)をビデオエンコーダ200に提供し、ビデオエンコーダ200は、ピクチャのためのデータを符号化する。ソースデバイス102のビデオソース104は、ビデオカメラなどの、ビデオキャプチャデバイス、以前にキャプチャされた生のビデオを含むビデオアーカイブ、及び/又はビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。更なる代替として、ビデオソース104は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、又はライブビデオ、アーカイブされたビデオ、及びコンピュータ生成されたビデオの組み合わせを生成し得る。各場合において、ビデオエンコーダ200は、キャプチャされたビデオデータ、事前にキャプチャされたビデオデータ、又はコンピュータ生成されたビデオデータを符号化する。ビデオエンコーダ200は、受信された順序(「表示順序」と呼ばれることがある)からコーディングのためのコーディング順序へと、ピクチャを再配置し得る。ビデオエンコーダ200は、符号化されたビデオデータを含むビットストリームを生成し得る。ソースデバイス102は次いで、例えばデスティネーションデバイス116の入力インターフェース122によって、受信及び/又は取り出しのために、出力インターフェース108を介してコンピュータ可読媒体110へと、符号化されたビデオデータを出力し得る。
【0032】
[0045] ソースデバイス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つ又は複数のビデオバッファとして割り振られ得る。
【0033】
[0046] コンピュータ可読媒体110は、ソースデバイス102からデスティネーションデバイス116に符号化されたビデオデータを移すことが可能な任意のタイプの媒体又はデバイスを表し得る。一例では、コンピュータ可読媒体110は、例えば、無線周波数ネットワーク又はコンピュータベースのネットワークを介して、ソースデバイス102がリアルタイムでデスティネーションデバイス116に符号化されたビデオデータを直接送信することを可能にするための通信媒体を表す。出力インターフェース108は、符号化されたビデオデータを含む送信信号を変調してもよく、入力インターフェース122は、ワイヤレス通信プロトコルなどの通信規格に従って、受信された送信信号を復調してもよい。通信媒体は、無線周波数(radio frequency、RF)スペクトル又は1つ若しくは複数の物理伝送路などの、任意のワイヤレス又はワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、又はソースデバイス102からデスティネーションデバイス116への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【0034】
[0047] いくつかの例では、ソースデバイス102は、出力インターフェース108から記憶デバイス112に、符号化されたデータを出力し得る。同様に、デスティネーションデバイス116は、入力インターフェース122を介して、記憶デバイス112から符号化されたデータにアクセスし得る。記憶デバイス112は、ハードドライブ、Blu-rayディスク、DVD、CD-ROM、フラッシュメモリ、揮発性若しくは不揮発性メモリ、又は符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散された又はローカルでアクセスされるデータ記憶媒体のうちのいずれかを含み得る。
【0035】
[0048] いくつかの例では、ソースデバイス102は、符号化ビデオデータを、ソースデバイス102によって生成された符号化ビデオデータを記憶し得るファイルサーバ114又は別の中間記憶デバイスに出力し得る。デスティネーションデバイス116は、ストリーミング又はダウンロードを介して、ファイルサーバ114からの記憶されたビデオデータにアクセスし得る。
【0036】
[0049] ファイルサーバ114は、符号化されたビデオデータを記憶し、その符号化されたビデオデータをデスティネーションデバイス116に送信することが可能な任意のタイプのサーバデバイスであり得る。ファイルサーバ114は、(例えば、ウェブサイトのための)ウェブサーバ、(ファイル転送プロトコル(FTP)又はFile Delivery over Unidirectional Transport(FLUTE)プロトコルなどの)ファイル転送プロトコルサービスを提供するように構成されたサーバ、コンテンツ配信ネットワーク(CDN)デバイス、ハイパーテキスト転送プロトコル(HTTP)サーバ、Multimedia Broadcast Multicast Service(MBMS)若しくはEnhanced MBMS(eMBMS)サーバ、及び/又はネットワークアタッチトストレージ(NAS)デバイスを表し得る。ファイルサーバ114は、追加又は代替として、Dynamic Adaptive Streaming over HTTP(DASH)、HTTP Live Streaming(HLS)、Real Time Streaming Protocol(RTSP)、HTTP Dynamic Streamingなどの1つ又は複数のHTTPストリーミングプロトコルを実装し得る。
【0037】
[0050] デスティネーションデバイス116は、インターネット接続を含む任意の標準的なデータ接続を通じて、ファイルサーバ114からの符号化されたビデオデータにアクセスし得る。これは、ワイヤレスチャネル(例えば、Wi-Fi接続)、有線接続(例えば、デジタル加入者線(DSL)、ケーブルモデムなど)、又はファイルサーバ114に記憶されている符号化されたビデオデータにアクセスするのに適した、両方の組み合わせを含み得る。入力インターフェース122は、ファイルサーバ114からメディアデータを取り出すか若しくは受信するための上で論じられた様々なプロトコル又はメディアデータを取り出すための他のそのようなプロトコルのうちのいずれか1つ又は複数に従って動作するように構成され得る。
【0038】
[0051] 出力インターフェース108及び入力インターフェース122は、ワイヤレス送信機/受信機、モデム、ワイヤードネットワーキング構成要素(例えば、イーサネットカード)、様々なIEEE802.11規格のうちのいずれかに従って動作するワイヤレス通信構成要素、又は他の物理構成要素を表し得る。出力インターフェース108及び入力インターフェース122がワイヤレス構成要素を備える例では、出力インターフェース108及び入力インターフェース122は、4G、4G-LTE(ロングタームエボリューション)、LTEアドバンスト、5Gなどのセルラー通信規格に従って、符号化済みビデオデータなどのデータを転送するように構成され得る。出力インターフェース108がワイヤレス送信機を備えるいくつかの例では、出力インターフェース108及び入力インターフェース122は、IEEE802.11仕様、IEEE802.15仕様(例えば、ZigBee(商標))、Bluetooth(商標)規格などの他のワイヤレス規格に従って、符号化ビデオデータなどのデータを転送するように構成され得る。いくつかの例では、ソースデバイス102及び/又はデスティネーションデバイス116は、それぞれのシステムオンチップ(system-on-a-chip、SoC)デバイスを含み得る。例えば、ソースデバイス102は、ビデオエンコーダ200及び/又は出力インターフェース108に起因する機能を実行するためのSoCデバイスを含んでもよく、デスティネーションデバイス116は、ビデオデコーダ300及び/又は入力インターフェース122に起因する機能を実行するためのSoCデバイスを含んでもよい。
【0039】
[0052] 本開示の技法は、オーバージエアテレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上で符号化されているデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、又は他の適用例などの、様々なマルチメディア適用例のうちのいずれかをサポートするビデオコーディングに適用されてよい。
【0040】
[0053] デスティネーションデバイス116の入力インターフェース122は、コンピュータ可読媒体110(例えば、通信媒体、記憶デバイス112、ファイルサーバ114など)から、符号化されたビデオビットストリームを受信する。符号化されたビデオビットストリームは、ビデオブロック又は他のコード化ユニット(例えば、スライス、ピクチャ、ピクチャグループ、シーケンスなど)の特性及び/又は処理を記述する値を有するシンタックス要素などの、ビデオデコーダ300によっても使用されるビデオエンコーダ200によって規定されるシグナリング情報を含んでよい。表示デバイス118は、復号されたビデオデータの復号されたピクチャをユーザに表示する。表示デバイス118は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は別のタイプの表示デバイスなどの、様々な表示デバイスのいずれかを表し得る。
【0041】
[0054] 図1には示されないが、いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は各々、オーディオエンコーダ及び/又はオーディオデコーダと統合されてもよく、共通のデータストリームの中のオーディオとビデオの両方を含む多重化されたストリームを扱うために、適切なMUX-DEMUXユニット、又は他のハードウェア及び/若しくはソフトウェアを含んでもよい。
【0042】
[0055] ビデオエンコーダ200及びビデオデコーダ300は各々、1つ若しくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSPs)、特定用途向け集積回路(ASICs)、フィールドプログラマブルゲートアレイ(FPGAs)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせなどの、様々な適切なエンコーダ及び/又はデコーダ回路のいずれかとして実装され得る。技法が部分的にソフトウェアで実装されているとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、本開示の技法を実行するために1つ又は複数のプロセッサを使用してハードウェアでその命令を実施し得る。ビデオエンコーダ200及びビデオデコーダ300の各々は、1つ又は複数のエンコーダ又はデコーダに含まれてもよく、それらのいずれもが、それぞれのデバイスの中で複合エンコーダ/デコーダ(コーデック)の一部として統合されてもよい。ビデオエンコーダ200及び/又はビデオデコーダ300を含むデバイスは、集積回路、マイクロプロセッサ、及び/又はセルラー電話などのワイヤレス通信デバイスを備えてもよい。
【0043】
[0056] ビデオエンコーダ200及びビデオデコーダ300は、High Efficiency Video Coding(HEVC)とも呼ばれるITU-T H.265などのビデオコーディング規格、又は、マルチビュー及び/若しくはスケーラブルビデオコーディング拡張などのそれらの拡張に従って動作し得る。代替として、ビデオエンコーダ200及びビデオデコーダ300は、Versatile Video Coding(VVC)とも呼ばれるITU-T H.266などの、他のプロプライエタリ規格又は業界規格に従って動作し得る。他の例では、ビデオエンコーダ200及びビデオデコーダ300は、AOMedia Video1(AV1)、AV1の拡張、及び/又はAV1の後継バージョン(例えば、AV2)など、プロプライエタリビデオコーデック/フォーマットに従って動作し得る。他の例では、ビデオエンコーダ200及びビデオデコーダ300は、他のプロプライエタリフォーマット又は業界規格に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格又はフォーマットにも限定されない。一般に、ビデオエンコーダ200及びビデオデコーダ300は、幾何学的予測モード(GEO)を使用する任意のビデオコーディング技法とともに本開示の技術を実行するように構成することができる。
【0044】
[0057] GEO(すなわち、GPM)では、上記で説明したように、現在のブロックは、幾何学的に配置された直線エッジ(例えば、直線)によって2つの部分に分割される。直線エッジは、現在のブロックの2つの異なるエッジ(例えば、異なる角度の上エッジから下エッジへの線、異なる角度の右エッジから上エッジへの線、異なる角度の右エッジから下エッジへの線、異なる角度の右エッジから左エッジへの線、異なる角度の左エッジから上エッジへの線、及び異なる角度の左エッジから下エッジへの線)と交差し得る。これらの例示的な線の各々は、GEOの分割モードと見なされ得る。ビデオエンコーダは、分割モードを示す情報をビデオデコーダにシグナリングし得る。
【0045】
[0058] 本開示は、GEOに関係するシグナリング情報に関連付けられたオーバーヘッドを低減するための例示的な方法について説明する。例えば、以下でより詳細に説明するように、分割モードのうちのどれを使用すべきかを識別するために使用されるインデックス値(例えば、現在のブロックを分割する線の角度及びオフセット)は、グループ化され、再配置され得る。例えば、ビデオエンコーダ200及びビデオデコーダ300は、(例えば、マッピングテーブル中で同じインデックス値を有するように)2つ以上のGEO分割モードが一緒にグループ化されたマッピングテーブル(例えば、マッピングリスト)にメモリからアクセスし得る。一例として、2つ以上のGEOモードは、同じオフセットインデックス及び互いにほぼ垂直である角度を有する2つ以上のGEO分割モードに基づいて、一緒にグループ化され得る。GEO分割モードの数はMに等しく、2つ以上のGEO分割モードのうちの各グループ内の分割モードの数はKに等しく、KはM未満である。したがって、M/K個のグループがあり得る。M/K個のグループは、それぞれのインデックス値によって識別可能であり得る。このようにして、より少ないインデックス値がある(例えば、M/K個のインデックスがM個のインデックスよりも少ない)ので、シグナリングオーバーヘッドが低減され得る。
【0046】
[0059] ビデオエンコーダ200又はビデオデコーダ300がインデックス値によってグループ(例えば、K個の分割モードを有するグループのうちの1つ)を識別すると、ビデオエンコーダ200又はビデオデコーダ300は、グループ中のK個の分割モードから分割モードを決定し得る。例えば、K個の分割モードのうちの各々は、それぞれのサブモードインデックス値によって識別可能であり得る。
【0047】
[0060] いくつかの例では、ビデオエンコーダ200及びビデオデコーダは、より低いコストを有する分割モードがより低いサブモードインデックス値に関連付けられるように、コスト値(例えば、テンプレートマッチング(TM)コスト)に基づいて、グループ中のK個の分割モードを並べ替え得る。より低いコストを有する分割モードは、より高い選択可能性を有し得る。したがって、より高いコストを有する分割モードのためのサブモードインデックス値よりも小さい、より低いコストを有する分割モードのためのサブモードインデックス値は、ビデオエンコーダ200がより低いインデックス値をシグナリングする可能性をより高くすることができる。一般に、より低いインデックス値をシグナリングすることは、より大きいインデックス値よりも少ないオーバーヘッドを必要とし得る。したがって、1つ又は複数の例で、本開示は、シグナリングされるデータの量を低減し、効率的な帯域幅を促進するための例示的な方法について説明する。
【0048】
[0061] 上記の例では、ビデオエンコーダ200及びビデオデコーダ300は、一緒にグループ化された分割モードを有するマッピングテーブル(例えば、マッピングリスト)にアクセスし得る。しかしながら、例示的な技法はそのように限定されない。いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、分割モード(例えば、M個の分割モード)に関連付けられたコスト(例えば、TMコスト)を、場合によっては、ただし必ずしもそうではないが、グループ化の前及びグループ化なしに決定することができる。ビデオエンコーダ200及びビデオデコーダ300は、コストに基づいてマッピングテーブル(例えば、マッピングリスト)を構築し得る。例えば、ビデオエンコーダ200及びビデオデコーダ300は、最も低いコストを有する分割モードから始まる昇順で分割モードを順序付け得る(例えば、最低コストを有する分割モードのためのインデックス値は、より高いコストを有する分割モードのためのインデックス値よりも低い)。
【0049】
[0062] ビデオエンコーダ200及びビデオデコーダ300は、構築されたマッピングテーブル(例えば、マッピングリスト)から、分割モードを決定し得る。いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300が、次いで、(例えば、同じオフセットインデックスと、互いにほぼ垂直である角度とを有するGEO分割モードに基づいて)分割モードをグループ化することが可能であり得る。すなわち、ビデオエンコーダ200及びビデオデコーダ300は、最初にコスト(例えば、TMコストであるが、他のコスト値も可能である)を決定し、マッピングテーブル(例えば、マッピングリスト)を構築し、次いでグループ化を実行し得る。しかしながら、以下で更に説明するように、最初に分割モードをグループ化し、次いでコストを決定することが可能であり得る。また、いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、コストを決定し、分割モードのいかなるグループ化もなしにマッピングリストを構築し得る。
【0050】
[0063] 一般に、ビデオエンコーダ200及びビデオデコーダ300は、ピクチャのブロックベースのコーディングを実施してもよい。「ブロック」という用語は、一般に、処理される(例えば、符号化及び/又は復号プロセスにおいて符号化、復号、又は他の方法で使用される)べきデータを含む構造を指す。例えば、ブロックは、ルミナンス及び/又はクロミナンスデータのサンプルの2次元行列を含んでよい。一般に、ビデオエンコーダ200及びビデオデコーダ300は、YUV(例えば、Y、Cb、Cr)フォーマットで表されるビデオデータをコーディングし得る。すなわち、ピクチャのサンプルに対する赤、緑、及び青(RGB)のデータをコーディングするのではなく、ビデオエンコーダ200及びビデオデコーダ300は、輝度成分及び色度成分をコーディングしてよく、色度成分は、赤色と青色の両方の色度成分を含み得る。いくつかの例では、ビデオエンコーダ200は、符号化する前に、受信されたRGBフォーマットされたデータをYUV表現に変換し、ビデオデコーダ300は、YUV表現をRGBフォーマットに変換する。代替として、前処理ユニット及び後処理ユニット(図示せず)が、これらの変換を実行してもよい。
【0051】
[0064] 本開示は、一般に、ピクチャのデータを符号化又は復号するプロセスを含むものとして、ピクチャのコーディング(例えば、符号化及び復号)に言及することがある。同様に、本開示は、ブロックのためのデータを符号化又は復号するプロセス、例えば予測及び/又は残差コーディングを含むものとして、ピクチャのブロックのコーディングに言及することがある。符号化されたビデオビットストリームは、一般に、コーディング決定(例えば、コーディングモード)及びブロックへのピクチャの区分を表すシンタックス要素のための一連の値を含む。したがって、ピクチャ又はブロックをコーディングすることへの言及は、一般に、ピクチャ又はブロックを形成するシンタックス要素のためのコーディング値として理解されるべきである。
【0052】
[0065] HEVCは、コーディングユニット(CUs)、予測ユニット(PUs)、及び変換ユニット(TUs)を含む、様々なブロックを規定する。HEVCによると、(ビデオエンコーダ200などの)ビデオコーダは、4分木構造に従って、コーディングツリーユニット(CTU)をCUに区分する。すなわち、ビデオコーダは、CTU及びCUを4個の等しい重複しない正方形に区分し、4分木の各ノードは、0個又は4個のいずれかの子ノードを有する。子ノードがないノードは「リーフノード」と呼ばれることがあり、そのようなリーフノードのCUは、1つ若しくは複数のPU及び/又は1つ若しくは複数のTUを含んでよい。ビデオコーダはPU及びTUを更に区分し得る。例えば、HEVCでは、残差4分木(RQT)はTUの区分を表す。HEVCでは、PUはインター予測データを表し、TUは残差データを表す。イントラ予測されるCUは、イントラモード表示などのイントラ予測情報を含む。
【0053】
[0066] 別の例として、ビデオエンコーダ200及びビデオデコーダ300は、VVCに従って動作するように構成され得る。VVCに従って、(ビデオエンコーダ200などの)ビデオコーダは、ピクチャを複数のコーディングツリーユニット(CTUs)に区分する。ビデオエンコーダ200は、四分木二分木(QTBT)構造又はマルチタイプツリー(MTT)構造などの木構造に従って、CTUを区分し得る。QTBT構造は、HEVCのCU、PU、及びTUの間の分離などの、複数の区分タイプの概念を排除する。QTBT構造は、2つのレベル、すなわち、4分木区分に従って区分された第1のレベル、及び2分木区分に従って区分された第2のレベルを含む。QTBT構造のルートノードは、CTUに対応する。二分木のリーフノードは、コーディングユニット(CUs)に対応する。
【0054】
[0067] MTT区分構造では、ブロックは、4分木(QT)区分、2分木(BT)区分、及び1つ又は複数のタイプの3分木(TT:triple tree)(3元木(TT:ternary tree)とも呼ばれる)区分を使用して区分され得る。3分木区分又は3元木区分は、ブロックが3個のサブブロックに分割される区分である。いくつかの例では、3分木区分又は3元木区分は、中心を通って元のブロックを区分することなく、ブロックを3個のサブブロックに区分する。MTTにおける区分タイプ(例えば、QT、BT、及びTT)は対称又は非対称であり得る。
【0055】
[0068] AV1コーデックに従って動作するとき、ビデオエンコーダ200及びビデオデコーダ300は、ブロック中のビデオデータをコーディングするように構成され得る。AV1では、処理され得る最大コーディングブロックは、スーパーブロックと呼ばれる。AV1では、スーパーブロックは、128×128ルーマサンプル又は64×64ルーマサンプルのいずれかであり得る。しかしながら、後継ビデオコーディングフォーマット(例えば、AV2)では、スーパーブロックは、異なる(例えば、より大きい)ルーマサンプルサイズによって定義され得る。いくつかの例では、スーパーブロックは、ブロック4分木のトップレベルである。ビデオエンコーダ200は、更に、スーパーブロックをより小さいコーディングブロックに区分し得る。ビデオエンコーダ200は、正方形又は非正方形区分を使用してスーパーブロック及び他のコーディングブロックをより小さいブロックに区分し得る。非矩形ブロックは、N/2×N、N×N/2、N/4×N、及びN×N/4ブロックを含み得る。ビデオエンコーダ200及びビデオデコーダ300は、コーディングブロックの各々に対して別個の予測プロセス及び変換プロセスを実施し得る。
【0056】
[0069] AV1はまた、ビデオデータのタイルを定義する。タイルは、他のタイルとは無関係にコーディングされ得るスーパーブロックの矩形アレイである。すなわち、ビデオエンコーダ200及びビデオデコーダ300は、他のタイルからのビデオデータを使用せずにタイル内のコーディングブロックを、それぞれ、符号化及び復号し得る。ただし、ビデオエンコーダ200及びビデオデコーダ300は、タイル境界にわたってフィルタ処理を実施し得る。タイルは、サイズの点で均一であっても不均一であってもよい。タイルベースのコーディングは、エンコーダ及びデコーダ実装形態のために、並列処理及び/又はマルチスレッディングを可能にし得る。
【0057】
[0070] いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、輝度成分及び色度成分の各々を表すために単一のQTBT構造又はMTT構造を使用してもよく、他の例では、ビデオエンコーダ200及びビデオデコーダ300は、輝度成分のための1つのQTBT/MTT構造及び両方の色度成分のための別のQTBT/MTT構造(又はそれぞれの色度成分のための2つのQTBT/MTT構造)などの、2つ以上のQTBT又はMTT構造を使用してもよい。
【0058】
[0071] ビデオエンコーダ200及びビデオデコーダ300は、4分木区分、QTBT区分、MTT区分、スーパーブロック区分、又は他の区分構造を使用するように構成され得る。
【0059】
[0072] いくつかの例では、CTUは、ルーマサンプルのコーディングツリーブロック(CTB)、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するCTB、又はモノクロームピクチャ若しくはサンプルをコーディングするために使用される3つの別個の色平面及びシンタックス構造を使用してコーディングされたピクチャのサンプルのCTBを含む。CTBは、CTBへの成分の区分が区分であるような、いくつかの値のNに対するサンプルのN×Nブロックであってよい。成分は、1つのアレイ又は4:2:0、4:2:2、若しくは4:4:4カラーフォーマットでピクチャを構成する3つのアレイ(ルーマ及び2つのクロマ)のうちの1つからの単一のサンプル、あるいはアレイ又はモノクロームフォーマットでピクチャを構成するアレイの単一のサンプルである。いくつかの例では、コーディングブロックは、コーディングブロックへのCTBの分配が区分であるような、いくつかの値のM及びNに対するサンプルのM×Nブロックである。
【0060】
[0073] ブロック(例えば、CTUs又はCUs)は、ピクチャの中で様々な方法でグループ化され得る。一例として、ブリックは、ピクチャの中の特定のタイル内のCTU行の長方形領域を指すことがある。タイルは、ピクチャの中の特定のタイル列及び特定のタイル行内のCTUの長方形領域であり得る。タイル列は、ピクチャの高さに等しい高さ及び(例えば、ピクチャパラメータセットの中などの)シンタックス要素によって指定される幅を有する、CTUの長方形領域を指す。タイル行は、(例えば、ピクチャパラメータセットの中などの)シンタックス要素によって指定される高さ及びピクチャの幅に等しい幅を有する、CTUの長方形領域を指す。
【0061】
[0074] いくつかの例では、タイルは複数のブリックに区分されてよく、ブリックの各々はタイル内の1つ又は複数のCTU行を含み得る。複数のブリックに区分されないタイルも、ブリックと呼ばれることがある。しかしながら、タイルの真のサブセットであるブリックは、タイルと呼ばれないことがある。ピクチャの中のブリックは、スライスとしても並べられ得る。スライスは、単一のネットワークアブストラクションレイヤ(NAL)ユニットの中に独占的に含まれ得る、ピクチャの整数個のブリックであってよい。いくつかの例では、スライスは、いくつかの完全なタイル、又は、1つのタイルの一連の連続する完全なブリックのみの、いずれかを含む。
【0062】
[0075] 本開示は、垂直次元及び水平次元に換算して(CU又は他のビデオブロックなどの)ブロックのサンプル次元を指すために、互換的に「N×N」及び「NバイN(N by N)」、例えば、16×16サンプル又は16バイ16サンプルを使用してよい。一般に、16×16のCUは、垂直方向に16個のサンプル(y=16)及び水平方向に16個のサンプル(x=16)を有する。同様に、N×N CUは、一般に、垂直方向にN個のサンプル及び水平方向にN個のサンプルを有し、ここで、Nは非負の整数値を表す。CUの中のサンプルは、行及び列をなして並べられてよい。その上、CUは、必ずしも水平方向において垂直方向におけるのと同じ数のサンプルを有する必要があるとは限らない。例えば、CUはN×Mサンプルを備えてよく、ここで、Mは必ずしもNに等しいとは限らない。
【0063】
[0076] ビデオエンコーダ200は、予測及び/又は残差情報、並びに他の情報を表すCUのためのビデオデータを符号化する。予測情報は、CUのための予測ブロックを形成するためにCUがどのように予測されることになるのかを示す。残差情報は、概して、符号化する前のCUのサンプルと予測ブロックのサンプルとの間のサンプルごとの差分を表す。
【0064】
[0077] CUを予測するために、ビデオエンコーダ200は、概して、インター予測又はイントラ予測を通じて、CUのための予測ブロックを形成してよい。インター予測とは、概して、以前にコーディングされたピクチャのデータからCUを予測することを指し、イントラ予測とは、概して、同じピクチャの以前にコーディングされたデータからCUを予測することを指す。インター予測を実施するために、ビデオエンコーダ200は、1つ又は複数の動きベクトルを使用して予測ブロックを生成してもよい。ビデオエンコーダ200は、一般に、例えば、CUと参照ブロックとの間の差分に関してCUに密に整合する参照ブロックを識別するために、動き探索を実行し得る。ビデオエンコーダ200は、絶対差分和(SAD)、二乗差分和(SSD)、平均絶対差(MAD)、平均二乗差(MSD)、又は他のそのような差分計算を使用して差分メトリックを計算し、参照ブロックが現在のCUとよく一致するかどうかを決定し得る。いくつかの例では、ビデオエンコーダ200は、単方向予測又は双方向予測を使用して現在CUを予測し得る。
【0065】
[0078] VVCのいくつかの例はまた、インター予測モードと見なされ得るアフィン動き補償モードを提供する。アフィン動き補償モードでは、ビデオエンコーダ200は、ズームイン若しくはズームアウト、回転、観点移動、又は他の不規則な動きタイプなどの、非並進運動を表す2つ以上の動きベクトルを決定し得る。
【0066】
[0079] イントラ予測を実行するために、ビデオエンコーダ200は、イントラ予測モードを選択して予測ブロックを生成してよい。VVCのいくつかの例は、様々な方向モードを含む67個のイントラ予測モード、並びに平面モード及びDCモードを提供する。一般に、ビデオエンコーダ200は、現在のブロック(例えば、CUのブロック)のサンプルをそれから予測すべき、その現在のブロックに対する隣接サンプルを記述する、イントラ予測モードを選択する。そのようなサンプルは一般に、ビデオエンコーダ200がラスター走査順序で(左から右、上から下)CTU及びCUをコーディングすると仮定して、現在のブロックと同じピクチャにおいて、現在のブロックの上、上及び左、又は左にあり得る。
【0067】
[0080] ビデオエンコーダ200は、現在のブロックのための予測モードを表すデータを符号化する。例えば、インター予測モードの場合、ビデオエンコーダ200は、様々な利用可能なインター予測モードのうちのどれが使用されるのか、並びに対応するモードに対する動き情報を表すデータを符号化してよい。単方向又は双方向インター予測の場合、例えば、ビデオエンコーダ200は、高度動きベクトル予測(AMVP)モード又はマージモードを使用して動きベクトルを符号化してよい。ビデオエンコーダ200は、アフィン動き補償モードのための動きベクトルを符号化するために類似のモードを使用してよい。
【0068】
[0081] AV1は、ビデオデータのコーディングブロックを符号化及び復号するための2つの一般的な技法を含む。2つの一般的な技法は、イントラ予測(例えば、イントラフレーム予測又は空間予測)及びインター予測(例えば、インターフレーム予測又は時間予測)である。AV1のコンテキストでは、イントラ予測モードを使用するビデオデータの現在フレームのブロックを予測するとき、ビデオエンコーダ200及びビデオデコーダ300は、ビデオデータの他のフレームからのビデオデータを使用しない。たいていのイントラ予測モードでは、ビデオエンコーダ200は、現在のブロック内のサンプル値と、同じフレーム内の参照サンプルから生成される予測される値との間の差分に基づいて、現在フレームのブロックを符号化する。ビデオエンコーダ200は、イントラ予測モードに基づいて参照サンプルから生成される予測される値を決定する。
【0069】
[0082] ブロックのイントラ予測又はインター予測などの予測に続いて、ビデオエンコーダ200はブロックのための残差データを計算してよい。残差ブロックなどの残差データは、ブロックと、対応する予測モードを使用して形成されたそのブロックのための予測ブロックとの間の、サンプルごとの差分を表す。ビデオエンコーダ200は、サンプル領域ではなく変換領域において変換データを生成するために、1つ又は複数の変換を残差ブロックに適用してよい。例えば、ビデオエンコーダ200は、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、又は概念的に類似の変換を残差ビデオデータに適用してよい。加えて、ビデオエンコーダ200は、モード依存非分離可能二次変換(MDNSST:mode-dependent non-separable secondary transform)、信号依存変換、カルーネンレーベ変換(KLT)などの二次的な変換を、最初の変換に続いて適用し得る。ビデオエンコーダ200は、1つ又は複数の変換の適用に続いて、変換係数を生成する。
【0070】
[0083] 上述のように、変換係数を生成するための任意の変換に続いて、ビデオエンコーダ200は、変換係数の量子化を実行してよい。量子化とは、一般に、変換係数を表すために使用されるデータの量をできる限り低減するために変換係数が量子化され、更なる圧縮を行うプロセスを指す。量子化プロセスを実行することによって、ビデオエンコーダ200は、変換係数の一部又は全てに関連するビット深度を低減し得る。例えば、ビデオエンコーダ200は、量子化の間にnビット値をmビット値に切り捨てることがあり、ここで、nはmよりも大きい。いくつかの例では、量子化を実施するために、ビデオエンコーダ200は、量子化されるべき値のビットごとの右シフトを実施し得る。
【0071】
[0084] 量子化に続いて、ビデオエンコーダ200は、変換係数を走査してよく、量子化変換係数を含む2次元行列から1次元ベクトルを生成する。走査は、より高いエネルギー(したがって、より低い周波数)の変換係数をベクトルの前方に置き、より低いエネルギー(したがって、より高い周波数)の変換係数をベクトルの後方に置くように設計され得る。いくつかの例では、ビデオエンコーダ200は、シリアル化ベクトルを生成し、次いで、ベクトルの量子化された変換係数をエントロピー符号化するために、量子化された変換係数を走査するためのあらかじめ定義された走査順序を使用し得る。他の例では、ビデオエンコーダ200は適応走査を実行してよい。量子化変換係数を走査して1次元ベクトルを形成した後、ビデオエンコーダ200は、例えば、コンテキスト適応型バイナリ算術コーディング(CABAC)に従って、1次元ベクトルをエントロピー符号化してよい。ビデオエンコーダ200はまた、ビデオデータを復号する際にビデオデコーダ300によって使用するための符号化されたビデオデータに関連するメタデータを記述するシンタックス要素に対する値をエントロピー符号化し得る。
【0072】
[0085] CABACを実行するために、ビデオエンコーダ200は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当ててよい。コンテキストは、例えば、シンボルの隣接値が0値化されているか否かに関係し得る。確率判断は、シンボルに割り当てられたコンテキストに基づき得る。
【0073】
[0086] ビデオエンコーダ200は更に、ビデオデコーダ300への、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、及びシーケンスベースのシンタックスデータなどのシンタックスデータを、例えば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、又は、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、若しくはビデオパラメータセット(VPS)などの他のシンタックスデータにおいて生成し得る。ビデオデコーダ300は、そのようなシンタックスデータを同様に復号して、対応するビデオデータをどのように復号すべきかを決定してよい。
【0074】
[0087] このようにして、ビデオエンコーダ200は、符号化ビデオデータ、例えば、ブロック(例えば、CUs)へのピクチャの区分並びにブロックのための予測情報及び/又は残差情報を記述するシンタックス要素を含む、ビットストリームを生成し得る。最終的に、ビデオデコーダ300は、ビットストリームを受信してよく、符号化ビデオデータを復号してよい。
【0075】
[0088] 概して、ビデオデコーダ300は、ビデオエンコーダ200によって実行されるプロセスへの相反プロセスを実行して、ビットストリームの符号化ビデオデータを復号する。例えば、ビデオデコーダ300は、ビデオエンコーダ200のCABAC符号化プロセスとは相反ではあるが実質的に類似の方法で、CABACを使用してビットストリームのシンタックス要素に対する値を復号してよい。シンタックス要素は、CTUへのピクチャの区分及びQTBT構造などの対応する区分構造による各CTUの区分のための、区分情報を規定して、CTUのCUを規定し得る。シンタックス要素は、ビデオデータのブロック(例えば、CUs)に対する予測情報及び残差情報を更に規定し得る。
【0076】
[0089] 残差情報は、例えば、量子化変換係数によって表され得る。ビデオデコーダ300は、ブロックの量子化された変換係数を逆量子化し逆変換して、ブロックのための残差ブロックを再生し得る。ビデオデコーダ300は、シグナリングされた予測モード(イントラ予測又はインター予測)及び関連する予測情報(例えば、インター予測のための動き情報)を使用して、ブロックのための予測ブロックを形成する。ビデオデコーダ300は次いで、予測ブロックと残差ブロックとを(サンプルごとに)組み合わせて、元のブロックを再生し得る。ビデオデコーダ300は、ブロックの境界に沿った視覚アーティファクトを低減するためのデブロッキングプロセスを実行するなどの、追加の処理を実行してよい。
【0077】
[0090] 本開示は、概して、シンタックス要素などの何らかの情報を「シグナリング」することに言及することがある。「シグナリング」という用語は、一般に、シンタックス要素に対する値、及び/又は符号化されたビデオデータを復号するために使用される他のデータの通信を指すことがある。すなわち、ビデオエンコーダ200は、ビットストリームの中でシンタックス要素に対する値をシグナリングし得る。一般に、シグナリングとは、ビットストリーム内に値を生成することを指す。上述したように、ソースデバイス102は、デスティネーションデバイス116により後で取り出すためにシンタックス要素を記憶デバイス112に記憶するときなどに起こるように、実質的にリアルタイムで、又は非リアルタイムで、ビットストリームをデスティネーションデバイス116にトランスポートし得る。
【0078】
[0091] 本開示の技法によれば、ビデオデコーダ300は、2つ以上の幾何学的区分モード(GEO)分割モードがマッピングテーブル中で同じインデックス値を有するように一緒にグループ化されるマッピングテーブル(例えば、マッピングリスト)に、メモリからアクセスするように構成され得るが、GEO分割モードの数はMに等しく、2つ以上のGEO分割モードの各グループ中の分割モードの数はKに等しく、KはMよりも小さい。いくつかの例では、Mは非ゼロである。Kは非ゼロであってもよいが、Kがゼロであることも可能である。ビデオデコーダ300は、マッピングテーブルから複数の分割モードのうちの1つの分割モードを決定し、分割モード(例えば、決定された分割モード)に基づいてビデオデータの現在のブロックを再構築するように構成され得る。
【0079】
[0092] 一例では、ビデオエンコーダ200は、2つ以上の幾何学的区分モード(GEO)分割モードがマッピングテーブル中で同じインデックス値を有するように一緒にグループ化されるマッピングテーブル(例えば、マッピングリスト)にメモリからアクセスするように構成され得るが、GEO分割モードの数はMに等しく、2つ以上のGEO分割モードの各グループ中の分割モードの数はKに等しく、KはMよりも小さい。ビデオエンコーダ200は、マッピングテーブルから分割モードを決定し、ビデオデータの現在のブロックを復号するための分割モードを示すインデックス値をマッピングテーブル中にシグナリングするように構成され得る。
【0080】
[0093] 一例では、ビデオデコーダ300は、幾何学的区分モード(GEO)の1つ又は複数の分割モードに関連するそれぞれのコスト(例えば、TMコスト)を決定し、GEOの1つ又は複数の分割モードについてのそれぞれのコストに基づいて、それぞれの分割モードを示す値を有するマッピングテーブル(例えば、マッピングリスト)を構築し、マッピングテーブル(例えば、マッピングリスト)に基づいて、複数の分割モードのうちの1つの分割モードを決定し、分割モード(例えば、決定された分割モード)に基づいて、ビデオデータの現在のブロックを再構築するように構成され得る。
【0081】
[0094] 一例では、ビデオエンコーダ200は、幾何学的区分モード(GEO)の1つ又は複数の分割モードに関連付けられたそれぞれのコストを決定し、GEOの1つ又は複数の分割モードについてのそれぞれのコストに基づいて、それぞれの分割モードを示す値を有するマッピングテーブル(例えば、マッピングリスト)を構築し、マッピングテーブルに基づいて、複数の分割モードのうちの1つの分割モードを決定し、ビデオデータの現在のブロックを復号するための分割モードを示すインデックス(例えば、インデックス値)を、マッピングテーブルにシグナリングするように構成され得る。
【0082】
[0095] 以下は、ビデオコーディング規格及び異なる予測モードに関連するいくつかの背景を提供する。ビデオコーディング規格は、そのスケーラブルビデオコーディング(SVC)拡張及びマルチビュービデオコーディング(MVC)拡張を含む、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262又はISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、及びITU-T H.264(ISO/IEC MPEG-4 AVCとも呼ばれる)を含む。
【0083】
[0096] 加えて、High Efficiency Video Coding(HEVC)又はITU-T H.265が、その範囲拡張、マルチビュー拡張(MV-HEVC)、及びスケーラブル拡張(SHVC)を含めて、Joint Collaboration Team on Video Coding(JCT-VC)、並びに、ITU-T Video Coding Experts Group(VCEG)及びISO/IEC Motion Picture Experts Group(MPEG)のJoint Collaboration Team on 3D Video Coding Extension Development(JCT-3V)によって開発された。
【0084】
[0097] 以下でHEVC WDと呼ばれる最新のHEVCドラフト仕様は、http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zipから入手可能である。
【0085】
[0098] ITU-T VCEG(Q6/16)及びISO/IEC MPEG(JTC 1/SC 29/WG 11)は、この分野におけるそれらの専門家によって提案された圧縮技術設計を評価するために、JVET(Joint Video Exploration Team)として知られる共同コラボレーションの取り組みにおいて協働している。参照ソフトウェアの最新バージョン、すなわち、VVCテストモデル10(VTM10)は、https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTMからダウンロードされ得る。汎用ビデオコーディング(VVC)草案規格は、ブロスらによるJVET-T2001「Versatile Video Coding Editorial Refinations on Draft 10」ITU-T SG 16 WP3のJVET、及びテレビ会議による、ISO/IEC JTC 1/SC 29の第20回会合(2020年10月7~16日)を参照することができる。汎用ビデオコーディング及びテストモデル10(VTM10.0)のアルゴリズム記述はJVET-T2002と呼ばれることがある。
【0086】
[0099] HEVCでは、スライスの中の最大のコーディングユニットは、コーディングツリーブロック(CTB)又はコーディングツリーユニット(CTU)と呼ばれる。CTBは4分木を含み、4分木のノードがコーディングユニットである。
【0087】
[0100] (技術的には8×8のCTBサイズがサポートされ得るが)CTBのサイズは、HEVCメインプロファイルでは16×16~64×64にわたり得る。コーディングユニット(CU)は、CTBの同じサイズから8×8と同程度に小さい場合がある。各コーディングユニットは、1つのモード、すなわち、インターモード又はイントラモードを用いてコーディングされる。CUは、インターコーディングされるとき、2個もしくは4個の予測ユニット(PUs)に更に区分されてよく、又はそれ以上の区分が適用されないとき、ただ1つのPUになってもよい。1つのCUの中に2つのPUが存在するとき、それらのPUは、CUの半分のサイズの長方形であってもよく、又はCUの1/4もしくは3/4のサイズを有する2つの長方形であってよい。
【0088】
[0101] CUがインターコーディングされるとき、各PUは動き情報の1つのセットを有し、これは固有のインター予測モードを用いて導出される。HEVC規格では、予測単位(PU)に対して、それぞれ、マージモード(スキップはマージの特別な場合であると見なされる)及び高度動きベクトル予測(AMVP)モードと名付けられた、2つのインター予測モードがある。
【0089】
[0102] AMVPモード又はマージモードのいずれでも、動きベクトル(MV)候補リストが複数の動きベクトル予測子のために維持される。現在PUの動きベクトル(複数可)及びマージモードにおける参照インデックスは、MV候補リストから1つの候補を取ることによって生成される。
【0090】
[0103] MV候補リストは、マージモードのための最高で5つの候補とAMVPモードのための2つだけの候補とを含んでいる。マージ候補は、動き情報のセット、例えば、参照ピクチャリスト(リスト0及びリスト1)と参照インデックスの両方に対応する動きベクトルを含んでよい。マージインデックスによってマージ候補が識別される場合、現在のブロックの予測のために使用される参照ピクチャ及び関連する動きベクトルが決定される。一方、AMVPモードの下では、リスト0又はリスト1のいずれかからの可能な予測方向ごとに、AMVP候補が動きベクトルしか含まないので、MV候補リストへのMV予測子(MVP:MV predictor)インデックスと一緒に参照インデックスが明示的にシグナリングされる必要がある。AMVPモードでは、予測された動きベクトルが更に改善され得る。
【0091】
[0104] 両方のモードに対する候補は、同じ空間隣接ブロック及び時間隣接ブロックから同様に導出される。
【0092】
[0105] 空間MV候補は、特定のPU(PU)に対して、図4A及び図4Bに示す隣接ブロックから導出されるが、ブロックから候補を生成する方法はマージモード及びAMVPモードにとって異なる。例えば、図4Aは、PU0 400A及びPU1 400B、並びにPU0 400Aのための隣接ブロックを示す。図4Bは、PU0 400C及びPU1 400D、並びにPU0 400Cのための隣接ブロックを示す。
【0093】
[0106] マージモードでは、最大4個の空間MV候補が、番号を用いて図4Aに示す順序とともに導出されることが可能であり、その順序は、以下の通り、すなわち、図4Aに示すように、左(0,A1)、上(1,B1)、右上(2,B0)、左下(3,A0)、及び左上(4,B2)である。
【0094】
[0107] 図4Bは、AMVPモードに対する順序を示す。図4Bに示されるように、AMVPモードでは、隣接ブロックは2つのグループ、すなわちブロック0及び1からなる左のグループと、ブロック2、3及び4からなる上のグループとに分割される。各グループに対して、シグナリングされる参照インデックスによって示されるものと同じ参照ピクチャを参照する隣接ブロックの中の可能な候補が、グループの最終候補を形成するために選ばれるべき最高の優先度を有する。すべての隣接ブロックが、同じ参照ピクチャを指し示す動きベクトルを含まないことがあり得る。したがって、そのような候補が見つけられ得ない場合、第1の利用可能な候補は、最終候補を形成するためにスケーリングされることになる。したがって、時間距離差分が補償され得る。
【0095】
[0108] 時間動きベクトル予測子(TMVP)候補は、有効にされ利用可能である場合、空間動きベクトル候補の後にMV候補リストの中に追加される。TMVP候補のための動きベクトル導出のプロセスは、マージモードとAMVPモードの両方にとって同じであるが、マージモードにおけるTMVP候補に対するターゲット参照インデックスは、常に0に設定される。
【0096】
[0109] TMVP候補導出のための1次ブロック位置は、空間隣接候補を生成するために使用される、上のブロック及び左のブロックへのバイアスを補償するための、ブロック「T」(すなわちブロック500)として図5Aに示すように、コロケートPUの外側の右下ブロックである。しかしながら、そのブロックが現在のCTB行の外側に位置するか、又は動き情報が利用可能でない(例えば、×印でブロック502に示されるように)場合、ブロックは、ブロック504として示すPUの中心ブロックと置換される。
【0097】
[0110] TMVP候補のための動きベクトルは、スライスレベルで示される、同一位置ピクチャの同一位置PUから導出される。コロケートPUのための動きベクトルは、コロケートMVと呼ばれる。AVCにおける時間ダイレクトモードと同様に、TMVP候補動きベクトルを導出するために、コロケートMVは、図5Bに示すように、時間距離差分を補償するためにスケーリングされる必要があり得る。
【0098】
[0111] 以下、HEVCにおける動き予測のいくつかの他の態様を説明する。マージモード及びAMVPモードのいくつかの態様は、次のように言及に値する。
【0099】
[0112] 動きベクトルスケーリング:動きベクトルの値がプレゼンテーション時間におけるピクチャの距離に比例することが想定される。動きベクトルは、2つのピクチャ、すなわち、参照ピクチャと、動きベクトルを含むピクチャ(すなわち、格納ピクチャ)とを関連付ける。他の動きベクトルを予測するためにある動きベクトルが使用されるとき、格納ピクチャと参照ピクチャの距離は、ピクチャ順序カウント(POC)値に基づいて計算される。
【0100】
[0113] 予測されるべき動きベクトルに対して、その関連する格納ピクチャと参照ピクチャの両方が異なる場合がある。したがって、(POCに基づく)新しい距離が計算され、動きベクトルは、これらの2つのPOC距離に基づいてスケーリングされる。空間隣接候補について、2つの動きベクトルのための格納ピクチャは同じであるが、参照ピクチャは異なる。HEVCでは、動きベクトルのスケーリングは、空間隣接候補及び時間隣接候補のためのTMVPとAMVPの両方に適用される。
【0101】
[0114] 人工動きベクトル候補生成:動きベクトル候補リストが完全でない場合、人工動きベクトル候補が生成され、すべての候補をリストが有するまでリストの末尾に挿入される。マージモードでは、2つのタイプの人工的MV候補が存在し、すなわち、Bスライスのためにのみ導出される組み合わされた候補(combined candidate)と、第1のタイプが十分な人工的候補を提供しない場合にAMVPのためにのみ使用されるゼロ候補とである。
【0102】
[0115] 候補リストの中にすでにあり、必要な動き情報を有する候補の各ペアに対して、リスト0の中のピクチャを参照する第1の候補の動きベクトル、及びリスト1の中のピクチャを参照する第2の候補の動きベクトルの合成によって、双方向合成動きベクトル候補が導出される。
【0103】
[0116] 候補挿入のためのプルーニング(pruning)プロセス:異なるブロックからの候補がたまたま同じである場合があり、そのことはマージ/AMVP候補リストの効率を下げる。この問題を解決するためにプルーニングプロセスが適用される。プルーニングプロセッシングは、同一の候補を挿入するのをある程度避けるために、ある候補を現在の候補リストの中の他の候補と比較することを含む。複雑度を低減するために、可能な各候補をすべての他の既存の候補と比較するのではなく、限定された回数だけのプルーニングプロセスが適用される。
【0104】
[0117] 以下、参照ピクチャ再サンプリングについて説明する。HEVCでは、新しいSPSを使用する新しいシーケンスがIRAPピクチャとともに開始しない限り、ピクチャの空間解像度は変更することができない。VVCは、常にイントラコーディングされるIRAPピクチャを符号化することなく、シーケンス内のある位置で、ピクチャ解像度変更を可能にする。この機能は、参照ピクチャが復号されている現在のピクチャとは異なる解像度を有するとき、インター予測のために使用される参照ピクチャの再サンプリングを必要とするので、参照ピクチャ再サンプリング(RPR)と呼ばれることがある。追加の処理ステップを回避するために、VVCにおけるRPRプロセスは、動き補償プロセスに組み込まれ、ブロックレベルで実行されるように設計される。動き補償段階では、スケーリング比を動き情報と共に使用して、補間プロセスで使用される参照ピクチャ内の参照サンプルの位置を特定する。
【0105】
[0118] VVCでは、スケーリング比は、1/2(参照ピクチャから現在のピクチャへの2倍ダウンサンプリング)以上、8(8倍アップサンプリング)以下に制限される。異なる周波数カットオフを有する再サンプリングフィルタの3つのセットが、参照ピクチャと現在のピクチャとの間の様々なスケーリング比を扱うために指定される。3組の再サンプリングフィルタは、1/2~1/1.75、1/1.75~1/1.25、及び1/1.25~8の範囲のスケーリング比に対してそれぞれ適用される。再サンプリングフィルタの各セットは、動き補償補間フィルタの場合と同じである、ルーマのための16個の位相及びクロマのための32個の位相を有する。通常の動き補償(MC)補間のフィルタセットは、1/1.25~8の範囲のスケーリング比の場合に使用され得る。通常のMC補間プロセスは、1/1.25~8までの範囲のスケーリング比を有する再サンプリングプロセスの特別な場合と見なされ得る。従来の並進ブロック動きに加えて、アフィンモードは、RPRにおける異なるスケーリング比をカバーするためにルーマ成分に使用される、6タップ補間フィルタの3つのセットを有する。水平及び垂直スケーリング比は、ピクチャ幅及び高さ、並びに参照ピクチャ及び現在のピクチャに対して指定された左、右、上、及び下スケーリングオフセットに基づいて導出される。
【0106】
[0119] この機能をサポートするために、ピクチャ解像度及び対応する適合ウィンドウは、SPS(シーケンスパラメータセット)ではなくPPS(ピクチャパラメータセット)でシグナリングされ、SPSでは最大ピクチャ解像度がシグナリングされる。
【0107】
[0120] 以下では、GPMとも呼ばれる幾何学的区分モード(GEO)について説明する。VVCでは、幾何学的区分モードがインター予測のためにサポートされる。このモードが使用されるとき、CUは、図6に示される幾何学的に配置された直線(例えば、直線エッジ)によって2つの部分に分割される。
【0108】
[0121] 例えば、図6は、分割モード600A~600Nを示す。分割モード600A~600Nの各々は、現在のブロックを区分するエッジ(例えば、直線)を定義する。例えば、図6は、分割モード600Aに対して直線602Aとも呼ばれるエッジ602Aと、分割モード600Nに対して直線602Nとも呼ばれるエッジ602Nとを示す。分割モード600Aのエッジ602Aは、現在のブロックを2つの区分に区分するための1つの例示的な方法であり、同様に、分割モード600Bのエッジ602Nは、現在のブロックを2つの区分に区分するための別の例示的な方法である。
【0109】
[0122] 図6の例では、エッジ602Aに平行な2本の線と、エッジ602Nに平行な2本の線と、他のエッジとがある。1つ又は複数の例では、それぞれのエッジに平行な2本の線は、予測ブロックを形成するために参照ブロックからのサンプルが一緒にブレンディングされる(例えば、平均重み付けされる)エリアを形成する。例えば、区分ごとに、参照ブロックを識別する動きベクトルがあり得る。2つの区分がある場合、2つの参照ブロックがあり得る。予測ブロックを生成するために、ビデオエンコーダ200及びビデオデコーダ300は、2つの参照ブロックからのサンプルを利用し得る。1つのエッジに平行である2つの線内の位置に対応する予測ブロックのサンプルを生成するために、ビデオエンコーダ200及びビデオデコーダ300は、2つの参照ブロックからのサンプルをブレンディングし得る。1つのエッジに平行な2本の線の外側の位置に対応する予測ブロックのサンプルについて、ビデオエンコーダ200及びビデオデコーダ300は、予測ブロックを形成するために、2つの参照ブロックのうちの1つのサンプルを利用し得る。
【0110】
[0123] 1つ又は複数の例では、ビデオエンコーダ200は、2つの区分のうちの各々のための動きベクトル(例えば、第1の区分のための第1の動きベクトル及び第2の区分のための第2の動きベクトル)を決定し得る。ビデオエンコーダ200は、ビデオデコーダ300が受信する動きベクトルを示す情報をシグナリングすることができる。ビデオエンコーダ200及びビデオデコーダ300は、第1の動きベクトルに基づいて第1の参照ブロックを決定し、第2の動きベクトルに基づいて第2の参照ブロックを決定する。また、現在のブロックのための予測ブロックを生成するために、第1の参照ブロックからのサンプル及び第2の参照ブロックからのサンプルを組み合わせ得る。
【0111】
[0124] 第1の参照ブロックからのサンプル及び第2の参照ブロックからのサンプルを組み合わせるために、ビデオエンコーダ200及びビデオデコーダ300は、重み付けブレンディングを実行し得る。例えば、分割モード600Aが使用されていると仮定する。エッジ602Aから比較的遠いサンプルの場合、ビデオエンコーダ200及びビデオデコーダ300は、予測ブロック中の対応する予測サンプルを生成するために、ブレンディングすることなしに、第1の参照ブロック又は第2の参照ブロックのうちの1つからの対応するサンプルを使用し得る。エッジ602Aに比較的近いサンプルの場合、ビデオエンコーダ200及びビデオデコーダ300は、予測ブロック中の対応する予測サンプルを生成するために、第1の参照ブロック及び第2の参照ブロックからのサンプルを加重平均し得る。エッジ602Aに「比較的近い」領域は、エッジ602Aに平行な2本の線の間の領域によって画定され得る。ビデオエンコーダ200及びビデオデコーダ300は、他の分割モード例のための予測ブロックを生成するために、同様の動作を実行し得る。
【0112】
[0125] 分割する線(例えば、分割するエッジ)の位置は、特定の区分の角度及びオフセットパラメータから数学的に導出される。VVCでは、64個の分割モードがあり、第1に角度(小さい方から大きい方へ)、第2にオフセット(小さい方から大きい方へ)の順に編成することができ、角度-オフセットの各設定には、各ビンがバイパスコーディングされた固定長符号を使用して2値化された値(すなわち、0~63)が割り当てられる。固定長コードは、各ツリーリーフノードに6つのビンを有するフルツリー構造である。以下の表は、分割モード値が角度-オフセットにどのようにマッピングされるかを示し、ここで、N番目の角度モード(すなわち、N=0、・・・、7又は16、・・・、23)は、(N+8)番目の角度モードのエッジに対して垂直なエッジを物理的に有する。CU内の幾何学的区分の各部分は、それ自体の動きを使用してインター予測される。区分ごとに単予測のみが許可される、すなわち、各部分は、1つの動きベクトル及び1つの参照インデックスを有する。
【0113】
[0126] 以下の表1において、横軸は角度である。縦軸はオフセットである。
【0114】
【表1】
【0115】
[0127] 例えば、ビデオエンコーダ200及びビデオデコーダ300は、表1を記憶し得る。ビデオエンコーダ200は、値(例えば、13)をシグナリングし得る。この例では、ビデオデコーダ300は、13の値を受信し、表1に基づいて、13の分割モード値が、4の角度及び3のオフセットにマッピングすることを決定し得る。別の例として、38の分割モード値は、表1によって示されるように、18の角度及び1のオフセットにマッピングされる。表1の「x」は、そのようなエッジがサポートされていないことを意味する。
【0116】
[0128] GEOモードのための単予測候補リストは、レギュラーマージ候補リストから直接導出される。幾何学的単予測候補リスト中の単予測動きのインデックスとして、nを示す。n番目のマージ候補のLX動きベクトルは、Xがnのパリティ(偶数又は奇数)に等しく、幾何学的区分モードのためのn番目の単予測動きベクトルとして使用される。これらの動きベクトルは、以下の表において「x」でマークされている。n番目の拡張マージ候補の対応するLX動きベクトルが存在しない場合、同じ候補のL(1-X)動きベクトルが、代わりに、幾何学的区分モードのための単予測動きベクトルとして使用される。
【0117】
【表2】
【0118】
[0129] VVC仕様(JVET-T2001)に規定されているように、GEO重みの導出プロセスは、サブクローズ8.5.7.2(幾何学的区分モードのための重み付きサンプル予測プロセス)に規定されている。
このプロセスへの入力は、以下の通りである。
- 現在のコーディングブロックの幅と高さとを指定する2つの変数nCbW及びnCbH、
- 2つの(nCbW)×(nCbH)アレイである、predSamplesLA及びpredSamplesLB、
- 幾何学的区分の角度インデックスを指定する変数angleIdxと、
- 幾何学的区分の距離インデックスを指定する変数distanceIdxと、
- 色成分インデックスを指定する変数cIdx。
このプロセスの出力は、予測サンプル値の(nCbW)×(nCbH)アレイのpbSamplesである。
変数nW、nH、shift1、offset1、displacementX、displacementY、partFlip、及びshiftHorは、次のように導出される。
nW=(cIdx==0)?nCbW:nCbWSubWidthC (990)
nH=(cIdx==0)?nCbH:nCbHSubHeightC (991)
shift1=Max(5,17-BitDepth) (992)
offset1=1<<(shift1-1) (993)
displacementX=angleIdx (994)
displacementY=(angleIdx+8)% 32 (995)
partFlip=(angleIdx>=13 && angleIdx<=27)?0:1 (996)
shiftHor=(angleIdx % 16==8||(angleIdx % 16!=0 && nH>=nW))?0:1 (997)
変数offsetX及びoffsetYは、次のように導出される。
- shiftHorが0に等しい場合、以下が適用される。
offsetX=(-nW)>>1 (998)
offsetY=((-nH)>>1)+
(angleIdx<16?(distanceIdxnH)>>3:-((distanceIdxnH)>>3)) (999)
- 他の場合(shiftHorが1に等しい場合)、以下が適用される。
offsetX=((-nW)>>1)+
(angleIdx<16?(distanceIdxnW)>>3:-((distanceIdxnW)>>3)) (1000)
offsetY=(-nH)>>1 (1001)
x=0..nCbW-1及びy=0..nCbH-1である予測サンプルpbSamples[x][y]は、次のように導出される。
- 変数xL及びyLは、次のように導出される。
xL=(cIdx==0)?x:xSubWidthC (1002)
yL=(cIdx==0)?y:ySubHeightC (1003)
- 予測サンプルの重みを指定する変数wValueは、表37に指定されたアレイdisLutに基づいて、以下のように導出される。
weightIdx=(((xL+offsetX)<<1)+1)disLut[displacementX]+
(((yL+offsetY)<<1)+1)disLut[displacementY] (1004)
weightIdxL=partFlip?32+weightIdx:32-weightIdx (1005)
wValue=Clip3(0,8,(weightIdxL+4)>>3) (1006)
- 予測サンプル値は次のように導出される。
pbSamples[x][y]=Clip3(0,(1<<BitDepth)-1,(predSamplesLA[x][y]wValue+ (1007)
predSamplesLB[x][y](8-wValue)+offset1)>>shift1)
【0119】
【表3】
【0120】
[0130] 以下、マージ候補の適応並べ替え(ARMC)について説明する。ECMでは、マージ候補はTMを用いて適応的に並べ替えられる。並べ替え方法は、レギュラーマージ候補リスト、TMマージ候補リスト、及びアフィンマージ候補リスト(SbTMVP候補を除いたサブブロックマージ候補リスト)に適用される。TMマージモードの場合、マージ候補は、TM改良プロセスの前に並べ替えられる。
【0121】
[0131] マージ候補リストが構築された後、マージ候補は、いくつかのサブグループに分割される。サブグループサイズは、レギュラーマージモード及びTMマージモードに対して5に設定される。サブグループサイズは、アフィンマージモードに対して3に設定される。各サブグループ内のマージ候補は、TMに基づくコスト値に従って昇順に並べ替えられる。簡略化のために、最初ではなく最後のサブグループ内のマージ候補は並べ替えられない。
【0122】
[0132] マージ候補のTMコストは、現在のブロックのテンプレートのサンプルとそれらの対応する参照サンプルとの間の、差分絶対値和(SAD)によって測定される。テンプレートは、現在のブロックに隣接する再構築されたサンプルのセットを備える。テンプレートの参照サンプルは、マージ候補の動き情報によって配置される。
【0123】
[0133] マージ候補が双方向予測を利用するとき、マージ候補のテンプレートの参照サンプルも、図7に示されるように、双方向予測によって生成される。例えば、図7は、現在のブロック702と、現在のブロック702の上及び左のサンプルを含むテンプレート703とを有する現在のピクチャを示す。第1の動きベクトルは、参照ブロック704の上及び左のサンプルを含む第1の参照テンプレート708を定義する参照ブロック704を指す。第2の動きベクトルは、参照ブロック706の上及び左のサンプルを含む第2の参照テンプレート710を定義する参照ブロック706を指す。
【0124】
[0134] Wsub×Hsubに等しいサブブロックサイズを有するサブブロックベースのマージ候補の場合、上のテンプレートは、Wsub×1のサイズを有するいくつかのサブテンプレートを備え、左のテンプレートは、1×Hsubのサイズを有するいくつかのサブテンプレートを備える。図8に示されるように、現在のブロックの第1行及び第1列におけるサブブロックの動き情報は、各サブテンプレートの参照サンプルを導出するために使用される。
【0125】
[0135] 例えば、図8では、コロケートブロックは、図7の参照ブロック704又は706であり得る。図7の参照テンプレート708又は710は、図8に示されるように、参照ブロック704又は706の上及び左のサンプルを含み得る。
【0126】
[0136] 以下、テンプレートマッチング予測を説明する。テンプレートマッチング(TM)は、現在ピクチャ内のテンプレート(すなわち、現在のCUの上及び/又は左の隣接ブロック)と参照ピクチャ内のブロック(すなわち、テンプレートと同じサイズ)との間の最も近いマッチングを見つけることによって現在のCUの動き情報を改良するためのデコーダ側MV導出方法である。
【0127】
[0137] 図9に示されているように、より良いMVは、[-8,+8]ペル探索範囲内の現在のCU900の初期動きの周りで探索されるべきである。初期マッチング誤差に基づいて選択されたAMVP候補を用いて、そのMVPがテンプレートマッチングによって改良される。シグナリングされたマージインデックスによって示されるマージ候補を用いて、L0及びL1に対応するそのマージされたMVが独立にテンプレートマッチングによって改良され、そして、より正確ではない候補が更に、より良い候補をpriorとして用いて再び改良される。
【0128】
[0138] コスト関数:動きベクトルが小数サンプル位置を指し示すとき、動き補償補間が必要とされる。複雑度を低減するために、両方のテンプレートマッチングのために通常の8タップDCT-IF補間の代わりに双線形補間が使用されて、参照ピクチャ上のテンプレートを生成する。テンプレートマッチングのマッチングコストCは次のように計算される。
C=SAD+w(|MVx-MVx|+|MVy-MVy|)
【0129】
[0139] ここで、wは、0、1、2、3又は4などの整数に設定することができる重み係数であり、MV及び複数のMVは、それぞれ、現在試験されているMV及び初期MV(例えば、AMVPモードにおけるMVP候補、又はマージモードにおけるマージされた動き)を示す。テンプレートマッチングのマッチングコストとして、SADが使用される。
【0130】
[0140] TMが使用されるとき、ルーマサンプルだけを使用することによって動きが改良される。導出される動きは、MCインター予測に対するルーマとクロマの両方のために使用され得る。MVが決められた後、ルーマのための8タップ補間フィルタ及びクロマのための4タップ補間フィルタを使用して、最後のMCが実行される。
【0131】
[0141] 探索方法:MV改良は、テンプレートマッチングコストの基準及び階層構造を用いたパターンベースのMV探索である。MV改良に対して、ダイヤモンド探索及び交差探索という、2つの探索パターンがサポートされる。階層構造は、粗いMVD精度(例えば、1/4ペル)において開始し、細かい精度(例えば、1/8ペル)において終了する、MVを改良するための反復プロセスを指定する。MVは、ダイヤモンドパターンを用いて4分の1ルーマサンプルMVD精度で直接探索され、続いて交差パターンを用いて4分の1ルーマサンプルMVD精度で探索され、そして、続いて交差パターンを用いた8分の1ルーマサンプルMVD改良が行われる。MV改良の探索範囲は、初期MVの周りの(-8,+8)ルーマサンプルに等しく設定される。現在のブロックが双予測のものであるとき、両方のMVが独立して改善され、次いで、それらのうちの(マッチングコストに関して)最良のものが、BCW重み値を用いて他のMVを更に改善するための優先として設定される。
【0132】
[0142] 特に、JVET-J0021:Chen et al.「Description of SDR,HDR and 360 video coding technology proposed by Qualcomm and Techincolor-low and high complexity versions,」JVET of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th meeting:San Diego,US 10-20 Apr.2018 and JVET-U0100:Chang et al「Compression efficiency methods beyond VVC,」JVET of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29,21st meeting,by teleconference,6-15 Jan.2021で提案されたテンプレートマッチングは、AMVPモード及びマージモードに適用される。
【0133】
[0143] 一例として、現在のテンプレート902は、現在のCU900の上のサンプルの第1の部分902Aと、現在のCU900の左のサンプルの第2の部分902Bとを含む。参照テンプレート904は、サンプルの第1の部分904A及び第2の部分904Bを含む。例えば、現在のCU900の初期MVは、参照ブロックを指すものと見なされ得る。第1の部分904Aは、参照ブロックの上のサンプルであり得る。第2の部分904Bは、参照ブロックの左のサンプルであり得る。
【0134】
[0144] ビデオエンコーダ200及びビデオデコーダ300は、初期MVについての第1のコストとして、現在のテンプレート902と参照テンプレート904とを比較する(例えば、SADを決定する)ことができる。ビデオエンコーダ200及びビデオデコーダ300は、現在のCU900のための異なるMVに対してそのような動作を繰り返し、それぞれのMVに対するそれぞれのコストを決定することができる。いくつかの例では、最低コストをもたらすMVは、現在CU900のためのMVと見なされ得る。
【0135】
[0145] レギュラーマージ候補リストは、以下の候補の順序で構築される。
a.空間的隣接CUからの空間MVP:最初の4つの利用可能な候補が、上隣接CU(A)、左隣接CU(L)、右上隣接CU(AR)、左下隣接CU(LB)、左上隣接CU(LA)の順序の中から選択される。
b.コロケートされたCUからの時間MVP:1つの候補のみが追加される。
c.履歴ベースのMVP:以前にコーディングされたブロックの動き情報がテーブルに記憶され、現在のCUのMVPとして使用される。
d.ペアワイズ平均MVP:ペアワイズ平均候補は、既存のレギュラーマージ候補リスト中の候補の事前定義されたペアを平均化することによって生成される。
e.ゼロMV。
【0136】
[0146] マージモードにTMが適用されるとき、テンプレートマッチングに基づいてレギュラーマージ候補のMVPを改良することによって、別個のTMマージ候補リストが構築される。
【0137】
[0147] 以下に、ゴロム-ライスコーディングについて説明する。ゴロム-ライスコードは可変長コーディング方法であり、短縮単項コーディングされたプレフィックスコード及び固定長コーディングされたサフィックスコードで形成される。プレフィックスコード及びサフィックスコードのそれぞれの長さは、パラメータ、コーディングされた除数Dによって制御され、ここで、Dは、正の2のべき乗数(例えば、1、2、4、8、・・・)でありコーディングされるべきシンボルの総数よりも大きくない。
【0138】
[0148] 除数Dを有するゴロム-ライスコードを使用することによってコーディングされるべきN個の異なるシンボルがあるとき、これらのN個の異なるシンボルのインデックスはN/D個のグループに分解され、各グループはD個のシンボルを有する。グループインデックス(例えば、0、1、2、3、・・・、N/D-1)は、前述のプレフィックスコードである短縮単項コードを使用することによってコーディングされる。グループ内のD個のシンボルのインデックス(例えば、0、1、2、3、・・・、D-1)は、次いで、前述のサフィックスコードである、短縮バイナリコード(Dが2の累乗でない数であるとき)又は固定長バイナリコード(Dが2の累乗数であるとき)を使用することによってコーディングされる。
【0139】
[0149] GEO(すなわち、GPM)に関連する技法にはいくつかの問題があり得る。例えば、各分割モードを等確率として扱うGEO分割モードの固定長コーディング構造は、そうでない場合であっても、コードワードに関して最適でない場合がある。これは、そのような技法が、現在のブロックのエッジ方向(例えば、分割モード)を予測するために、因果的隣接ピクセル(例えば、隣接参照ピクチャ中のピクセル)から推論され得る情報を考慮しないためであり得る。したがって、GEO分割モードのための現在のシンタックス設計は、最適でないことがある。本開示は、効率的な帯域幅利用を促進し、シグナリングのオーバーヘッド及び複雑さを低減し得るGEO分割モードのためのシンタックス設計を改善するための、例示的な技法について説明する。
【0140】
[0150] 以下では、説明を簡単にするために、別段の定めがない限り、言及されたコスト(例えば、TMコスト)は、ARMC TMコスト(MV改良前のMVに関連付けられたN線テンプレート設計による)又はテンプレートマッチングコスト(MV改良後のMVに関連付けられたN線テンプレート設計による)を指すことができ、ここで、Nは1、2、3、又はそれ以上であり得る。
【0141】
[0151] 以下、グループ化を使用するGEO分割モードのためのシンタックス並べ替えについて説明する。例えば、GEO分割モードのためのグループ化方法が最初に説明される。一例では、2つのGEO分割モードは、それらが同じオフセットインデックスを有し、それらの角度が互いにほぼ垂直である場合、一緒にグループ化することができる。例えば、ペアにされるモードは、n≦35の場合にはn番目の分割モードとn+18番目の分割モード、n>35の場合にはn番目の分割モードとn+14番目の分割モードである。以下の表は、表1を上から再現したものである。いくつかの例では、表1は、角度-オフセットが分割モードインデックスにどのようにマッピングされるかを示す。
【0142】
【表4】
【0143】
[0152] 上記のマッピングテーブルは、新しい分割モードインデックスと元の分割モードインデックスとの間の順方向マッピング及び逆方向マッピングのために以下のように構成することができる。図から分かるように、合計32個の新しい分割モードインデックスがある。例えば、(角度インデックス0、オフセットインデックス1)は、サンプル分割モードインデックスを、(角度インデックス8、オフセットインデックス1)として共有する。すなわち、以下では、0の値は、分割モード0又は分割モード18にマッピングされ、表1では、分割モード0は、角度0、オフセット1にマッピングされ、分割モード18は角度8、オフセット1にマッピングされる。
【0144】
【表5】
【0145】
[0153] 別の例では、上記の例の簡略化されたマッピング関数として、n番目の分割モードは、n∈{0、2、4、・・・、M-2}について(n+1)番目のモードとグループ化され、ここで、Mは、元のGEO分割モードの総数(例えば、VVCでは64)である。n番目及び(n+1)番目の分割モードに割り当てられる新しい分割モードインデックスは、n/2である。合計で、32個の新しい分割モードインデックスがある。
【0146】
[0154] 別の例では、上記の簡略化されたマッピング関数として、n番目の分割モードは、n∈{0、1、2、3、・・・、{M/2}-1}について(n+M/2)番目のモードとグループ化され、ここで、Mは元のGEO分割モードの総数(例えば、VVCでは64)である。n番目及び(n+M/2)番目の分割モードに割り当てられた新しい分割モードインデックスはnである。合計で、32個の新しい分割モードインデックスがある。
【0147】
[0155] 別の例では、4つのGEO分割モードを一緒にグループ化して、新しい分割モードインデックスの数を32から16に更に低減することができる。以下の表は、新しい分割モードインデックスと元の分割モードインデックスとの間の順方向マッピング及び逆方向マッピングを示す。合計で、16個の新しい分割モードインデックスがある。
【0148】
【表6】
【0149】
[0156] 別の例では、上記の例の簡略化されたマッピング関数として、n番目、(n+1)番目、(n+2)番目、及び(n+3)番目の分割モードが、n∈{0、4、8、・・・、M-4}について一緒にグループ化され、ここで、Mは、元のGEO分割モードの総数(例えば、VVCでは64)である。n番目、(n+1)番目、(n+2)番目及び(n+3)番目の分割モードに割り当てられた新しい分割モードインデックスはn/4である。合計で、16個の新しい分割モードインデックスがある。
【0150】
[0157] 別の例では、上記の例の簡略化されたマッピング関数として、n番目、(n+M/4)番目、(n+2M/4)番目、及び(n+3M/4)番目の分割モードが、n∈{0、1、2、3、・・・、(M/4)-1}について一緒にグループ化され、ここで、Mは、元のGEO分割モードの総数(例えば、VVCでは64)である。n番目、(n+M/4)番目、(n+2M/4)番目及び(n+3M/4)番目の分割モードに割り当てられた新しい分割モードインデックスはnである。合計で、16個の新しい分割モードインデックスがある。
【0151】
[0158] 別の例では、マッピング関数のための一般化された簡略化として、すべてのK個の分割モードが一緒にグループ化され得るが、ここで、Kは正の2のべき乗数(例えば、2、4、8、16、・・・)である。具体的には、n番目、(n+1)番目、・・・、及び(n+K-1)番目の分割モードは、n∈{0、K、2K、3K、・・・、M-K}について一緒にグループ化され、ここで、Mは、元のGEO分割モードの総数(例えば、VVCでは64)である。n番目、(n+1)番目、・・・、及び(n+K-1)番目の分割モードに割り当てられた新しい分割モードインデックスは、n/Kである。合計で、M/K個の新しい分割モードインデックスが存在する。一般に、KはMより大きくないことに留意されたい。
【0152】
[0159] 別の例では、マッピング関数のための別の一般化された簡略化として、n番目、(n+M/K)番目、(n+2M/K)番目、(n+3M/K)番目、・・・、及び(n+(K-1)M/K)番目の分割モードが、n∈{0、1、2、3、・・・、(M/K)-1}について一緒にグループ化され、ここで、Mは元のGEO分割モードの総数(例えば、VVCでは64)であり、Kは正の2のべき乗数(例えば、2、4、8、16、・・・)である。n番目、(n+M/K)番目、(n+2M/K)番目、(n+3M/K)番目、・・・、(n+(K-1)M/K)番目の分割モードに割り当てられた新しい分割モードインデックスはnである。合計で、M/K個の新しい分割モードインデックスが存在する。一般に、KはMより大きくないことに留意されたい。
【0153】
[0160] 以下、グループ化インデックス署名方法及び分割モード導出について説明する。GEO分割モードのためのグループ化方法を用いて上述したようなグループ化プロセスが行われた後、一緒にグループ化されるK個の分割モードが存在し(ここで、各グループは、GEO分割モードのためのグループ化方法において上述したように新しい分割モードインデックスを割り当てられる)、このように形成されたM/K個のグループが存在し、ここで、Mは元のGEO分割モードの総数(例えば、VVCにおける64)であり、Kは正の2のべき乗数(例えば、2、4、8、16、・・・)であり、K≦Mである。例えば、各グループはK個の分割モードを含み、合計M個の分割モードが存在する。
【0154】
[0161] 以下の例は、M/Kの値を示すための様々な方法を説明し、また、K個のモードのうちのどの分割モードがコーディングブロックの分割モードとして選択されるかを説明する。混乱を避けるために、本開示は、以後、新しい分割モードインデックスをグループインデックスと呼ぶ。
【0155】
[0162] 一例では、グループインデックス(例えば、0、1、・・・、M/K-1)は、固定長バイナリコーディングされ、したがって、各グループインデックスは、log2(M/K)ビットである同じ数のコードワード長を有する。例えば、M=64、K=4の場合、全部で16個のグループが存在するので、各グループに4ビット長のコードワードが割り当てられる。
【0156】
[0163] 別の例では、グループインデックス(例えば、0、1、・・・、M/K-1)は、(上記のゴロム-ライスに関して説明した)除数Dを有するゴロム-ライスコードを使用することによってコーディングされ得るが、ここで、Dは1、2、4、・・・、M/Kであり得る。
【0157】
[0164] 別の例では、グループ内のK個の分割モードは、それらの元の分割モードインデックスに基づいて昇順又は降順で順序付けられることができ、したがってサブモードインデックスが割り当てられる。次いで、サブモードインデックスは、固定長バイナリコードを使用することによってビットストリーム中で示される。
【0158】
[0165] 別の例では、固定長コードの代わりに、サブモードインデックスのコードワードは、除数D(上記のゴロム-ライスに関して説明した)を持つゴロム-ライスコードを使用することによって置き換えられ得るが、ここで、Dは、1、2、4、・・・、M/Kであり得る。
【0159】
[0166] 別の例では、ビットストリーム中のビットをシグナリングする代わりに、サブモードインデックスの選択は、TMコストに基づいて導出され得る。TMコストは、各サブモードについて計算することができる。最低のTMコストを生成することができるグループ内のサブモードが選択される。例えば、GEO分割モードのためのグループ化方法の場合、ビデオエンコーダ200又はビデオデコーダ300が、それぞれのTMコストを比較し、それに応じて最低TMコストを達成するものを選択することによって選択され得るGEO分割モード0及び18を含むグループ0を選択し得る例があり得る。
【0160】
[0167] 更に別の例では、グループインデックスはまた、シグナリングされる前に並べ替えられ、構文解析された後にカバーバックされ得る。ビデオエンコーダ200において、グループ化が行われた後、グループ中の各サブモードは、それ自体のTMコストを導出することができ、グループインデックスは、各グループ中の最良のTMコストに基づいて並べ替えられる。次いで、並べ替えられたグループインデックスは、前述の固定長バイナリコード又はゴロム-ライスコードを使用することによってシグナリングされ得る。ビデオデコーダ300において、並べ替えられたグループインデックスが構文解析された後、グループインデックス並べ替えのためのマッピングテーブル(例えば、マッピングリスト)は、エンコーダが行うのと同じ方法で構築され得る。並べ替えられたグループインデックスは、並べ替えられたグループインデックスを実際のグループインデックスにマッピングするために、このマッピングテーブルに依存する。
【0161】
[0168] 更に別の例では、グループインデックス、並べ替えられたグループインデックス、及び/又はサブモードインデックスに適用され得るプレフィックスコードは、コンテキストコーディングされ得る。
【0162】
[0169] 以下、GEO分割モードのためのコスト(例えば、TMコスト)シンタックス並べ替えについて説明する。いくつかの例では、幾何学的区分モード(例えば、GEO、MMVD-GEO、TM-GEO)のM個の分割モードインデックスは、シグナリングの前にそれらのそれぞれのコストに基づいて並べ替えられ得るが、ここで、Mは正の数(例えば、VVCでは64)である。
【0163】
[0170] 一例では、M個の分割モードインデックスのそれぞれのコストが最初に計算される。すなわち、ビデオエンコーダ200及びビデオデコーダ300は、それぞれの分割モードに関連付けられたそれぞれのコストを決定し得る。
【0164】
[0171] TMコストに応じて、M個の分割モードは昇順でソートされ、したがって、マッピングテーブル(例えば、マッピングリスト)は、分割モードインデックスを並べ替えインデックスにマッピングし、逆も同様にマッピングするように構築される。並べ替えインデックスは、マッピングテーブルへのインデックスであり、分割モードインデックスは、分割モードを示す値である。例えば、分割モードインデックスは、分割モードのエッジに対する角度及びオフセットを示す上記の表1内へのインデックスである。次いで、並べ替えインデックスは、固定長バイナリコードを使用することによって、又は(上記のゴロム-ライスに関して説明された)除数Dを有するゴロム-ライスコードを使用することによってビットストリーム中で示され、ここで、Dは1、2、4、・・・、Mであり得る。いくつかの例では、除数Dは4に等しい。
【0165】
[0172] 別の言い方をすれば、複数の分割モードのうちの少なくとも2つ(例えば、複数の分割モードのサブセット又はすべて)の中の各分割モードについて、ビデオエンコーダ200及びビデオデコーダ300は、それぞれの分割モードに関連付けられたそれぞれのコスト(例えば、TMコスト)を決定し、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、分割モードを示す値(例えば、分割モードインデックス)を有するマッピングリストを構築することができる。この例では、マッピングリストを構築するために、ビデオエンコーダ200及びビデオデコーダ300は、最低コストを有する分割モードを示す値から開始して、最高コストを有する分割モードを示す値まで、分割モードを示す値を昇順で順序付け得る。そのような例では、より低いコストを有する分割モードは、マッピングリスト中のより低いインデックス(すなわち、上記で言及した並べ替えインデックス)に関連付けられ得るが、より高いコストを有する分割モードは、マッピングリスト中のより高いインデックスに関連付けられ得る。例えば、ビデオエンコーダ200及びビデオデコーダ300は、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築することができ、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられる。
【0166】
[0173] 1つ又は複数の例では、ビデオデコーダ300は、マッピングリストへのインデックス値を決定し得る(例えば、ビデオエンコーダ200は、マッピングリストへのインデックス値を示す情報をシグナリングし得る)。分割モードの値の順序は、それぞれのコストに基づいて並べ替えられるので、マッピングリストへのインデックス値は、並べ替えインデックス値と見なされ得る。マッピングリストへのインデックス値から、ビデオデコーダ300は、分割モードを示す値を決定し得る。分割モードを示す値は、分割モードインデックスと見なされ得る。例えば、ビデオデコーダ300は、上記の表1へのインデックスとして、分割モードを示す値(例えば、分割モードインデックス)を使用し得る。表1から、ビデオデコーダ300は、分割モードによって定義されたエッジの角度及びオフセットを決定し、それに応じて現在のブロックを区分し得る。
【0167】
[0174] 上記で説明したように、ビデオエンコーダ200はインデックスの値をマッピングリストに符号化し得るが、ビデオデコーダ300はインデックスの値を復号し得る。例えば、マッピングリストへのインデックス値を決定するために、ビデオデコーダ300は、インデックス値を示す情報を固定長バイナリ復号すること、インデックス値を示す情報を切捨てバイナリ復号すること、インデックス値を示す情報をゴロム-ライス復号すること、又はインデックス値を示す情報の1つ又は複数のビンをコンテキストベース適応コーディング(CABAC)復号すること、のうちの少なくとも1つを行い得る。
【0168】
[0175] 例えば、いくつかの例では、ビデオデコーダ300は、インデックス値を示す情報のすべてのビンを、CABAC復号し得る。いくつかの例では、ビデオデコーダ300は、インデックス値を示す情報のビンのうちのいくつかをCABAC復号し得るが、他のビンはバイパス復号され得る。いくつかのビンがCABAC復号され、他のビンがバイパス復号されるいくつかの例では、先頭のビンはCABAC復号され得るが、後のビンはバイパス復号され得る。
【0169】
[0176] 別の例では、M個の分割モードインデックスのそれぞれのコストが最初に計算される。コストに応じて、M個の分割モードは昇順でソートされ、最良のN個の分割モードのみが保持され、他の分割モードはすべて除去されるが、ここでN≦Mである。したがって、マッピングテーブル(例えば、マッピングリスト)が、これらの最良のN個の分割モードインデックスをそれぞれの並べ替えインデックスにマッピングするように構築され、逆も同様である。次いで、並べ替えインデックス値は、固定長バイナリコード(Nが2のべき乗であるとき)、短縮バイナリコード(Nが2のべき乗でないとき)のいずれかを使用することによって、又は除数D(ゴロム-ライスに関して説明したように)を有するゴロム-ライスコードを使用することによって、ビットストリーム中で示されるが、ここで、Dは1、2、4、・・・、Mであり得る。
【0170】
[0177] したがって、いくつかの例では、複数の分割モードのうちの少なくとも2つの中の各分割モードについて、ビデオエンコーダ200及びビデオデコーダ300は、それぞれの分割モードに関連付けられたそれぞれのコストを決定し、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、分割モードを示す値を有するマッピングリストを構築し得る。しかしながら、ビデオエンコーダ200及びビデオデコーダ300は、マッピングリストのサイズを最良のN個の分割モードに制限し得る。最良のN個の分割モードは、最も低いコストを有するN個の分割モードであり得る。いくつかの例では、最良のN個の分割モードは、32個の分割モードであり得る。
【0171】
[0178] 例えば、マッピングリストは、インデックス値(例えば、0から始まる昇順のインデックス値)を含み得る。インデックス値の各々は、マッピングリスト中のエントリを表し、マッピングリスト中の各エントリは、分割モードを示す値を記憶し得る。例えば、マッピングリスト中のインデックス値0は、マッピングリスト中の第1のエントリを指し得るが、第1のエントリは、第1の分割モードを示す第1の値を記憶し得る。マッピングリスト中のインデックス値1は、マッピングリスト中の第2のエントリを指すことがあり、第2のエントリは、第2の分割モードを示す第2の値を記憶することがあり、以下同様である。したがって、マッピングリストは、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含む。
【0172】
[0179] 1つ又は複数の例では、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられる。例えば、上記で説明したように、第1の分割モードを示す第1の値は、インデックス値0によって識別されるマッピングリスト中のエントリに記憶され得るが、第2の分割モードを示す第2の値は、インデックス値1によって識別されるマッピングリスト中のエントリに記憶され得る。この例では、第1の分割モードの第1のコストは、第2の分割モードの第2のコストよりも小さい。
【0173】
[0180] 更に別の例では、並べ替えインデックスに適用され得るゴロム-ライスコードのプレフィックスは、コンテキストコーディングされ得る。更に別の例では、最良N個の分割モードの構成は、CUサイズ依存であり得る。特に、より大きなブロックのNの値は、一般的に、より小さなブロックのNの値以上である。代替的に、別の例では、より大きいブロックのNの値は、より小さいブロックのNの値以下であり得る。
【0174】
[0181] 更に別の例では、前述の例は、グループ中の(グループ化を使用するGEO分割モードのためのシンタックス並べ替えに関して上記で説明した)サブモードインデックスに直接適用され得る。したがって、Mの定義は、グループ中のGEO分割モードの数(例えば、グループ化を使用するGEO分割のためのシンタックス並べ替えに関して上記で説明したK値)を使用することによって置き換えられる。
【0175】
[0182] 図10A図10Dは、分割モードのコストを決定するための参照テンプレートを生成する例を示す概念図である。例えば、上記で説明したように、複数の分割モードのうちの少なくとも2つ(例えば、分割モードのサブセット又はすべて)の中の各分割モードについて、ビデオエンコーダ200及びビデオデコーダ300は、それぞれの分割モードに関連付けられたそれぞれのコストを決定し、次いで、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値を有するマッピングリストを構築し得る。例えば、ビデオエンコーダ200及びビデオデコーダ300は、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築することができ、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられる。例えば、インデックス値0は、最も小さいコストを有する分割モードを示す値に関連付けられてもよく、インデックス値1は、2番目に小さいコストを有する分割モードを示す値に関連付けられてもよく、以下同様である。
【0176】
[0183] 以下では、分割モードに関連するコストを決定するための例示的な方法について説明する。ビデオエンコーダ200及びビデオデコーダ300は、それぞれの分割モードに関連付けられたそれぞれのコストを決定するために、複数の分割モードのサブセット又は場合によってはすべてについて、これらの例示的な動作を繰り返し得る。
【0177】
[0184] 図10Aは、現在のブロック1000を示す。ビデオエンコーダ200は、幾何学的区分モードが現在のブロック1000のために有効になっていると決定し、そのような情報をビデオデコーダ300にシグナリングし得る。ビデオデコーダ300は、幾何学的区分モードが現在のブロック1000のために有効になっていることを示す情報を受信し、したがって、幾何学的区分モードが現在のブロック1000のために有効になっていることを決定し得る。上記で説明し、図6に示すように、幾何学的区分モードは、各々が区分するためのエッジを定義する複数の分割モードを含む。
【0178】
[0185] 例えば、それぞれの分割モードに関連付けられたそれぞれのコストを決定するために、ビデオエンコーダ200及びビデオデコーダ300は、複数の分割モードのうちの1つから開始し得る。図10Aに示されているように、ビデオエンコーダ200及びビデオデコーダ300は、分割モードのコストを決定するための現在の分割モードを、エッジ1008を定義する分割モードに設定することができる。すなわち、エッジ1008は、分割モードを示す特定の値に対応し得る。一例として、エッジ1008は、表1中の分割モードインデックス(例えば、分割モードを示す値)に対応する角度及びオフセットを定義し得る。例えば、エッジ1008は分割モードAに対応し得るが、ここで、Aの値は、エッジ1008のための角度及びオフセットを定義する、表1中の値のうちの1つである。
【0179】
[0186] エッジ1008を定義する分割モード(例えば、分割モードA)は、必ずしも現在のブロック1000のための実際の分割モードである必要はないことを理解されたい。エッジ1008を定義する分割モードが、現在のブロック1000の実際の分割モードになることが可能である。むしろ、図10A図10Dでは、エッジ1008を定義する分割モードは、その分割モードに関連するコストを決定するために使用されるテスト分割モードである。
【0180】
[0187] ビデオエンコーダ200及びビデオデコーダ300は、現在のブロック1000のための現在のテンプレート1004を決定し得る。例えば、現在のテンプレート1004は、現在のブロック1000の上にあるサンプルと、現在のブロック1000の左にあるサンプルとを含み得る。図10Aに示すように、現在のテンプレート1004は、上部分1006A及び左部分1006Bを含むことができる。部分1006A及び1006Bは、共に現在のテンプレート1004を形成する。
【0181】
[0188] 1つ又は複数の例によれば、ビデオエンコーダ200及びビデオデコーダ300は、エッジ1008を定義するそれぞれの分割モードに基づいて、それぞれの参照テンプレートを決定することができる。ビデオエンコーダ200及びビデオデコーダ300は、それぞれの参照テンプレート及び現在のテンプレート1004に基づいて、エッジ1008を定義するそれぞれの分割モードに関連するそれぞれのコストを決定することができる。それぞれの参照テンプレートの一例は、図10Dの参照テンプレート1018であり、以下、それぞれの参照テンプレート1018を生成する例示的な方法を説明する。
【0182】
[0189] 図10Aでは、エッジ1008は、現在のブロック1000を第1の区分1002Aと第2の区分1002Bとに区分する。図10Bに示すように、第1の区分1002Aは第1の動きベクトル1012Aに関連付けられ、第2の区分1002Bは第2の動きベクトル1012Bに関連付けられる。
【0183】
[0190] ビデオデコーダ300の観点から、複数の分割モードのうちの分割モードの各々について、それぞれの分割モードのそれぞれのコストを決定するとき、ビデオデコーダ300は、使用すべき分割モードをまだ決定していないことがある。しかしながら、ビデオエンコーダ200は、区分のための動きベクトルを示す情報をすでにシグナリングしていることがある。言い換えれば、ビデオデコーダ300は、幾何学的区分モードが現在のブロック1000のために有効になっていて、したがって、現在のブロック1000が2つの区分に区分されるべきであり、各区分が動きベクトルを有するべきであると決定し得る。ビデオデコーダ300は、現在のブロック1000を区分する方法を決定していないことがあるが、ビデオデコーダ300は、ビットストリーム中でビデオエンコーダ200によってシグナリングされた情報に基づいて、2つの区分の各々について動きベクトルが何であるかをすでに決定していることがある。
【0184】
[0191] 図10Bに示されるように、第1の動きベクトル1012Aは第1の参照ブロック1010Aを識別し、第2の動きベクトル1012Bは第2の参照ブロック1010Bを識別する。図10Bの例では、第1の参照テンプレート1014Aは、第1の参照ブロック1010Aの上のサンプルの第1の部分と、第1の参照ブロック1010Aの左のサンプルの第2の部分とを含む。第2の参照テンプレート1014Bは、第2の参照ブロック1010Bの上のサンプルの第1の部分と、第2の参照ブロック1010Bの左のサンプルの第2の部分とを含む。したがって、ビデオエンコーダ200及びビデオデコーダ300は、現在のブロック1000の第1の区分1002Aの第1の動きベクトル1012Aによって識別された第1の参照ブロック1010Aに基づいて、第1の参照テンプレート1014Aを決定し得る。同様に、ビデオエンコーダ200及びビデオデコーダ300は、現在のブロック1000の第2の区分1002Bの第2の動きベクトル1012Bによって識別された第2の参照ブロック1010Bに基づいて、第2の参照テンプレート1014Bを決定し得る。
【0185】
[0192] 1つ又は複数の例では、ビデオエンコーダ200及びビデオデコーダ300は、それぞれの参照テンプレートを生成するために、それぞれの分割モードに基づいて、第1の参照テンプレート1014A及び第2の参照テンプレート1014Bからのサンプルを組み合わせることができる。例えば、エッジ1008を定義する分割モードに関して、図10Cに示されているように、ビデオエンコーダ200及びビデオデコーダ300は、エッジ1008を定義する分割モードを、第1の参照ブロック1010Aに適用し得る。すなわち、ビデオエンコーダ200及びビデオデコーダ300は、エッジ1008に基づいて、第1の参照ブロック1010Aを区分し得る。
【0186】
[0193] ビデオエンコーダ200及びビデオデコーダ300は、エッジ1008を定義する適用された分割モードを、第1の参照テンプレート1014Aのサンプルに拡張し得る。例えば、図10Cに線1016Aで示すように、ビデオエンコーダ200及びビデオデコーダ300は、エッジ1008を第1の参照テンプレート1014Aの上の部分に拡張することができる。1つ又は複数の例では、適用されたそれぞれの分割モードを第1の参照テンプレート1014Aのサンプルに拡張することによって、ビデオエンコーダ200及びビデオデコーダ300は、第1の参照テンプレート1014A中のサンプルの第1のセット1018Aと、第1の参照テンプレート1014A中のサンプルの第2のセット1018Bとを生成し得る。
【0187】
[0194] ビデオエンコーダ200及びビデオデコーダ300は、第1の参照テンプレート1014Aのサンプルへの適用された分割モードの拡張に基づいて、第1の参照テンプレート1014A中のサンプルの第1のセットにアクセスし得る。例えば、線1016Aは、第1の参照テンプレート1014Aを、第1の部分及び第2の部分に区分する。図示されるように、サンプルの第1のセット1018Aは、線1016Aの右側である第1の参照テンプレート1014Aの第1の部分にあり、サンプルの第2のセット1018Bは、線1016Aの左側である第1の参照テンプレート1014Aの第2の部分にある。
【0188】
[0195] 図10Cの例では、第1の参照テンプレート1014A中のサンプルの第1のセット1018Aは、ビデオエンコーダ200及びビデオデコーダ300がアクセスするサンプルであり得る。例えば、サンプルの第1のセット1018Aを含む第1の部分は、第1の参照テンプレート1014Aのサンプルに適用された分割モードの拡張に基づく。ビデオエンコーダ200及びビデオデコーダ300は、エッジ1008を定義する分割モードのコストを決定するために使用される参照テンプレートを生成するために、サンプルの第1のセット1018Aにアクセスし得る。
【0189】
[0196] 1つ又は複数の例では、ビデオエンコーダ200及びビデオデコーダ300は、第1の参照ブロック1010Aが、第1の区分1002Aの動きベクトル1012Aからのものであるので、サンプルの第1のセット1018Aにアクセスし得る。第1の区分1002Aは、現在のブロック1000の右側にある。したがって、ビデオエンコーダ200及びビデオデコーダ300は、(例えば、サンプルの第1のセット1018Aを含む)第1の部分が線1016Aの右にあるので、第1の部分中のサンプルにアクセスし得る。すなわち、第1の部分は、線1016Aに対して、第1の区分1002Aがエッジ1008に対してあるのと同じ方向にある。
【0190】
[0197] 同じく図10Cに示されているように、ビデオエンコーダ200及びビデオデコーダ300は、エッジ1008を定義する分割モードを第2の参照ブロック1010Bに適用することができる。すなわち、ビデオエンコーダ200及びビデオデコーダ300は、エッジ1008に基づいて第2の参照ブロック1010Bを区分し得る。
【0191】
[0198] ビデオエンコーダ200及びビデオデコーダ300は、エッジ1008を定義する適用された分割モードを、第2の参照テンプレート1014Bのサンプルに拡張し得る。例えば、図10Cに線1016Bで示すように、ビデオエンコーダ200及びビデオデコーダ300は、エッジ1008を第2の参照テンプレート1014Bの上の部分に拡張することができる。1つ又は複数の例では、適用されたそれぞれの分割モードを第2の参照テンプレート1014Bのサンプルに拡張することによって、ビデオエンコーダ200及びビデオデコーダ300は、第2の参照テンプレート1014B中のサンプルの第3のセット1020Bと、第2の参照テンプレート1014B中のサンプルの第4のセット1020Aとを生成し得る。
【0192】
[0199] ビデオエンコーダ200及びビデオデコーダ300は、第2の参照テンプレート1014Bのサンプルへの適用された分割モードの拡張に基づいて、第2の参照テンプレート1014B中のサンプルの第3のセット1020Bにアクセスし得る。例えば、線1016Bは、第2の参照テンプレート1014Bを、サンプルの第4のセット1020Aを含む第1の部分と、サンプルの第3のセット1020Bを含む第2の部分とに区分する。図示のように、第1の部分は、線1016Bの右側にある第2の参照テンプレート1014Bの部分を含み、第2の部分は、線1016Bの左側にある第2の参照テンプレート1014Bの部分を含む。
【0193】
[0200] 図10Cの例では、第2の部分は、ビデオエンコーダ200及びビデオデコーダ300がアクセスする、第2の参照テンプレート1014B中のサンプルの第3のセット1020Bを含む。例えば、サンプルの第3のセット1020Bは、第2の参照テンプレート1014Bのサンプルに適用された分割モードの拡張に基づく。ビデオエンコーダ200及びビデオデコーダ300は、エッジ1008を定義する分割モードのコストを決定するために使用される参照テンプレートを生成するために、サンプルの第3のセット1020Bにアクセスし得る。
【0194】
[0201] 1つ又は複数の例では、ビデオエンコーダ200及びビデオデコーダ300は、第2の参照ブロック1010Bが、第2の区分1002Bの動きベクトル1012Bからのものであるので、サンプルの第3のセット1020Bを含む部分中のサンプルにアクセスし得る。第2の区分1002Bは、現在のブロック1000の左側にある。したがって、ビデオエンコーダ200及びビデオデコーダ300は、サンプルの第3のセット1020Bを含む部分が線1016Bの左にあるので、サンプルの第3のセット1020Bにアクセスし得る。すなわち、サンプルの第3のセット1020Bを含む部分は、線1016Bに対して、第2の区分1002Bがエッジ1008に対してあるのと同じ方向にある。
【0195】
[0202] 図10Dに示すように、ビデオエンコーダ200及びビデオデコーダ300は、エッジ1008を定義する分割モードのコストを決定するために使用される参照テンプレート1022を生成するために、サンプルの第1のセット1018Aとサンプルの第3のセット1020Bとを組み合わせることができる。例えば、図10Dに示すように、サンプルの第1のセット1018A及びサンプルの第3のセット1020Bは、一緒に参照テンプレート1022を形成することができる。
【0196】
[0203] 例えば、単に理解を容易にするために、図10Dは、線1016A及び線1016Bに対応する線1016Cを示す。参照テンプレート1022において、線1016Cの右側のサンプルは、サンプルの第1のセット1018Aからの1つ又は複数のサンプルである。参照テンプレート1022において、線1016Cの左側のサンプルは、サンプルの第3のセット1020Bからの1つ又は複数のサンプルである。
【0197】
[0204] 図10Dの例では、ビデオエンコーダ200及びビデオデコーダ300は、場合によってはさらなるフィルタリング又は重み付けなしに、サンプルの第1のセット1018A中のサンプル及びサンプルの第2のセット1020B中のサンプルのサンプル値を利用することによって、参照テンプレート1022を生成し得る。しかしながら、例示的な技法はそのように限定されない。線1016Cの近くのサンプルなど、いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、サンプルの第1のセット1018A中の1つ又は複数のサンプルを、サンプルの第4のセット1020A中の1つ又は複数のサンプルとブレンディングし得る。線1016Cに近いサンプルの場合、ビデオエンコーダ200及びビデオデコーダ300は、サンプルの第3のセット1020B中の1つ又は複数のサンプルを、サンプルの第2のセット1018B中の1つ又は複数のサンプルとブレンディングし得る。ビデオエンコーダ200及びビデオデコーダ300は、参照テンプレート1022を生成するために、重み付けに基づいて、サンプルの第1のセット1018Aとサンプルの第3のセットとを組み合わせ得る。
【0198】
[0205] 参照テンプレート1022を用いて、ビデオエンコーダ200及びビデオデコーダ300は、エッジ1008を定義した分割モードに関連付けられたコストを決定し得る。例えば、ビデオエンコーダ200及びビデオデコーダ300は、図10Aに示されているように、参照テンプレート1022と、現在のブロック1000の上及び左のサンプルを含む現在のテンプレート1004とを比較する(例えば、絶対差分和(SAD)を決定する又は何らかの他の計算をする)ことができる。ビデオエンコーダ200及びビデオデコーダ300は、比較(例えば、SAD値)に基づいて、エッジ1008を定義する分割モードのコストを決定し得る。
【0199】
[0206] したがって、図10A図10Dは、第1の分割モード(例えば、エッジ1008を定義する分割モード)に関連するコストを決定するためにビデオエンコーダ200及びビデオデコーダ300が実行し得る例示的な動作を示す。ビデオエンコーダ200及びビデオデコーダ300は、分割モードの各々についてのそれぞれのコストを決定するために、複数の分割モードのすべて又はサブセットについて、そのような動作を繰り返し得る。一例として、図10A図10Dの例示的な動作を実行した結果、ビデオエンコーダ200及びビデオデコーダ300は、分割モードAのコストXを決定することができ、ここで、Aは分割モードを示す値であり、分割モードBのコストYを決定することができ、ここで、Bは分割モードを示す値であり、以下同様である。
【0200】
[0207] ビデオエンコーダ200及びビデオデコーダ300は、それぞれのコストに基づいて、マッピングリストを構築することができる。例えば、コストYがコストX未満であると仮定する。この例では、ビデオエンコーダ200及びビデオデコーダ300は、分割モードA(例えば、分割モードAを示す値)の前に分割モードB(例えば、分割モードBを示す値)を含み得る。この例では、A及びBについての(例えば、分割モードA及び分割モードBについての)値は、分割モードインデックスの例であり得る。例えば、Aの値は、表1の値の1つであってもよく、Bの値は、表1の値の別の1つであってもよい。マッピングリストからの値に基づいて、ビデオデコーダ300は、複数の分割モードのうちの1つの分割モードを決定し得る。
【0201】
[0208] 例えば、分割モードBがマッピングリスト中のインデックス2(例えば、第3のエントリ)に位置すると仮定する。この例では、ビデオデコーダ300が2のインデックスを受信した場合、ビデオデコーダ300は、分割モードが分割モードBであると決定し得る。ビデオデコーダ300は、次いで、表1への分割モードインデックスとして「B」の値を使用し、分割モードBによって定義されるエッジについての角度及びオフセットを決定し得る。ビデオデコーダ300は、次いで、分割モードBによって定義されたエッジに基づいて、(例えば、現在のブロック1000のような)現在のブロックを区分し、区分1002A、1002Bに基づいて、現在のブロック1000を再構築し得る。
【0202】
[0209] 図11は、分割モードのためのマッピングリストを構築する例を示すフローチャートである。図11の例では、ビデオエンコーダ200又はビデオデコーダ300は、現在の分割モードに対するコストを決定し得る(1100)。例えば、ビデオエンコーダ200及びビデオデコーダ300は、現在の分割モードに対するコストを決定するために、図10A図10Dに関して上記で説明した例示的な動作を実行し得る。例えば、ビデオエンコーダ200及びビデオデコーダ300は、現在の分割モードに基づいて(例えば、現在の分割モードのエッジ1008のようなエッジに基づいて)、参照テンプレート1022のような参照テンプレートを決定し得る。ビデオエンコーダ200及びビデオデコーダ300は、現在のテンプレート(例えば、現在のテンプレート1004)を決定し、参照テンプレート及び現在のテンプレートに基づいて、現在の分割モードに関連付けられたコストを決定し得る。
【0203】
[0210] ビデオエンコーダ200及びビデオデコーダ300は、より多くの分割モードがあるかどうかを決定し得る(1102)。例えば、64個の分割モードがあり得るが、ビデオエンコーダ200及びビデオデコーダ300は、ビデオエンコーダ200及びビデオデコーダ300が64個の分割モードの各々についてコストを決定したかどうかを決定し得る。いくつかの例では、64個すべての分割モードではなく、分割モードのサブセットが考慮され得る。
【0204】
[0211] コストがまだ決定されていないさらなる分割モードがある場合(1102で「はい」)、ビデオエンコーダ200及びビデオデコーダ300は、次の分割モードを現在の分割モードとして設定することができる(1104)。ビデオエンコーダ200及びビデオデコーダ300は、現在の分割モードのコストを決定し(1100)、分割モードがそれ以上なくなるまでそのような動作を繰り返すことができる。
【0205】
[0212] このようにして、複数の分割モードのうちの少なくとも2つの中の各分割モードについて、ビデオエンコーダ200及びビデオデコーダ300は、それぞれの分割モードに関連付けられたそれぞれのコストを決定し得る。例えば、1100及び1104の動作を通る各サイクルは、複数の分割モードのうちのそれぞれの分割モードに関連するそれぞれのコストの決定に対応する。一例として、1100及び1104の動作を通る第1のパス中に、ビデオエンコーダ200及びビデオデコーダ300は、第1の分割モードに基づいて(例えば、参照テンプレート1022のような)第1の参照テンプレートを決定し、第1の参照テンプレートと現在のテンプレート1004とに基づいて、第1のコストを決定し得る。1100及び1104の動作を通る第2のパス中に、ビデオエンコーダ200及びビデオデコーダ300は、第2の分割モードに基づいて(例えば、参照テンプレート1022のような)第2の参照テンプレートを決定し、第2の参照テンプレート及び現在のテンプレート1004に基づいて第2のコストを決定することができ、以下同様である。
【0206】
[0213] コストがまだ決定されていない分割モードがそれ以上ない場合(1102で「いいえ」)、ビデオエンコーダ200及びビデオデコーダ300は、マッピングリストを構築することができる(1106)。図11の例では、マッピングリストの構築は、それぞれのコストの決定後に行われるものとして示されている。しかしながら、例示的な技法はそのように限定されず、ビデオエンコーダ200及びビデオデコーダ300は、コストを決定することの一部として(例えば、新しい決定された各コストに基づいてリストを連続的に並べ替えることによって)マッピングリストを構築し得る。
【0207】
[0214] マッピングリストを構築するために、ビデオエンコーダ200及びビデオデコーダ300は、それぞれのコストに基づいて、分割モードのうちの1つ又は複数を、昇順で順序付けし得る。例えば、ビデオエンコーダ200及びビデオデコーダ300は、マッピングリスト中の第1のエントリ(例えば、インデックス値0)が、最も低いコストを有する分割モードを示す値を含み、マッピングリスト中の第2のエントリ(例えば、インデックス値1)が、2番目に低いコストを有する分割モードを示す値を含む、などのように、マッピングリストを形成し得る。このようにして、ビデオエンコーダ200及びビデオデコーダ300は、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築することができ、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられる。
【0208】
[0215] いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、N個の値があるまで、それぞれのコストを示す値を加算し続けることができる。言い換えれば、マッピングリストを構築するために、ビデオエンコーダ200及びビデオデコーダ300は、最も低いコストを有するN個の分割モードを含み得る。一例として、Nは32に等しい。
【0209】
[0216] 上記で説明したように、ビデオエンコーダ200及びビデオデコーダ300は、それぞれの参照テンプレート(例えば、参照テンプレート1022など)及び現在のテンプレート1004に基づいて、コストを決定し得る。以下、コスト計算の例を説明する。簡単にするために、以下は、同様の動作が、それぞれの分割モードのためのそれぞれの参照テンプレートに対して実行され得るという理解とともに、参照テンプレート1022に関して説明される。
【0210】
[0217] 一例では、図10Dに関して説明したように、参照テンプレート1022は、第1の参照テンプレート1014Aのサンプルの第1のセット1018Aからのサンプルと、第2の参照テンプレート1014Bのサンプルの第3のセット1020Bからのサンプルとを含み得る。次に、コストが、現在のテンプレート1004とそれぞれの参照ブロックテンプレートとの間の差に基づいて導出される。
【0211】
[0218] しかしながら、やはり上記で説明したように、一例では、参照ブロックテンプレートは、最初にGEO重みを使用して、ブレンディングされる。すなわち、線1016に近接するサンプルの第1のセット1018A及びサンプルの第3のセット1020Bからのサンプルは、幾何学的区分モードのために定義された重みを使用してブレンディングされている。次いで、コストが、現在のテンプレート1004とそれぞれのブレンディングされた参照ブロックテンプレートとの間の差に基づいて、導出される。
【0212】
[0219] コスト(例えば、差分メトリック)は、SAD、SATD、SSE、平均除去SAD、平均除去SATD、又は平均除去SSEであり得る。これについて次のように公式化され得る。
Σ(i,j)∈T|C(i,j)-Clip((w(i,j)(vx+i,vy+j)+w(i,j)(vx+i,vy+j)+o)>>s)|,
【0213】
[0220] 上記において、T={(0,-t),(ブロック幅-1,-t),(-t,0),・・・,(-t,ブロック高さ-1)|∀t=1,・・・,最大テンプレートサイズ}であり、C(i,j)は、現在のブロックの左上サンプルに対して(i,j)に位置するサンプルの再構築された強度値を示し、P(vx+i,vy+j)は、動きベクトル(vx,vy)によって指し示される参照ブロックの左上サンプルに対して(i,j)に位置するサンプルの強度値を示し、P及びPは、predSamplesLA及びpredSamplesLBと同じVVC仕様JVET-T2001内のサブクローズ8.5.7.1を使用して、異なるアレイサイズ(すなわち、前述のT)で、生成され、w(i,j)は、サンプルP(vx+i,vy+j)及びw(i,j)=8-w(i,j)に対応し、適用されるGEO重みの値(参照ブロックテンプレートをブレンディングするためのGEO重みの使用に関して上述したような値)であり、tは、1からテンプレートの最大サイズにより決定されるある正の数の範囲であり、s及びoは、VVC仕様JVET-T2001におけるそれぞれの式(992),(993)と同じである、それぞれshift1及びoffset1として定義され、Clipは、入力値を0以上2^BitDepth-1以下の範囲内にクリップする関数である。
【0214】
[0221] 一例では、差分ブロックテンプレートが最初に生成される。差分ブロックテンプレート(すなわち、一方は上テンプレート用、他方は左テンプレート用)は、現在のブロックテンプレートと参照ブロックテンプレートとの間のデルタ差分である。GEOは2つの区分を有するので、差分ブロックテンプレートの2つのセットが存在する(例えば、一方のセットは一方の区分用であり、他方のセットは他方の区分用である)。
【0215】
[0222] 別の言い方をすれば、いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、現在のテンプレート1004と第1の参照テンプレート1014Aとの間の差分を決定し、現在のテンプレート1004と第2の参照テンプレート1014Bとの間の差分を決定し得る。ビデオエンコーダ200とビデオデコーダ300とは、次に、ブレンディングを実施し得る。
【0216】
[0223] 次に、ブレンディングプロセスを適用して、2セットの差分ブロックテンプレートをブレンディングし、次に、TMコストは、ブレンディングされた差分ブロックテンプレート上のすべての値の合計である。これについて次のように公式化され得る。
Σ(i,j)∈T (i,j)|C(i,j)-Clip((P(vx+i,vy+j)+o)>>s)|+w(i,j)|C(i,j)-Clip((P(vx+i,vy+j)+o)>>s)|,
【0217】
[0224] 上記において、P及びPは、それらが2つの単予測テンプレートであるかのように生成され、したがって、それらのビット深度は、現在のテンプレートCのビット深度と同一であり、それらのo及びsは、s=Max(2,14-bitDepth)及びo=1<<(s-1)として指定される。
【0218】
[0225] 別の例では、簡略化の目的で、参照ブロックテンプレートは、事前定義されたビット深度(例えば、8ビット、10ビット、12ビット、14ビット、又はより高いビット深度)に向かって補間され、現在のブロックテンプレートも、事前定義されたビット深度に一致するようにシフトされる。次いで、TMコストが、予め定義されたビット深度で計算される。これを達成するために、s及びoについて前述の例で使用されるビット深度のそれぞれの設定は、事前定義されたビット深度に等しく設定されなければならず、C(i,j)は、元のビット深度及び事前定義されたビット深度のどちらがより大きいかに応じて、左又は右にシフトされ得る。例えば、C(i,j)は、事前定義された双深度が元の双深度より2だけ大きい場合、2ビットだけ左にシフトされる。
【0219】
[0226] 簡略化のために、TMコストは、完全なサンプルではなく、テンプレート上のサンプルの一部のみを考慮する。
a.一例では、上テンプレートに位置するサンプルは考慮されない。
b.別の例では、左テンプレートに位置するサンプルは考慮されない。
c.別の例では、左テンプレート及び上テンプレートの両方に奇数(又は偶数)行インデックスを有する各サンプルは、TMコスト計算において考慮されない。代替的に、更に別の例では、サブサンプリング規則が左テンプレートに適用される。代替的に、更に別の例では、サブサンプリング規則が上テンプレートに適用される。
d.別の例では、左テンプレート及び上テンプレートの両方に奇数(又は偶数)の列インデックスを有する各サンプルは、TMコスト計算において考慮されない。代替的に、更に別の例では、サブサンプリング規則が左テンプレートに適用される。代替的に、更に別の例では、サブサンプリング規則が上テンプレートに適用される。
【0220】
[0227] 以下、参照ブロックテンプレートをブレンディングするためのGEO重みの使用を説明する。本開示は、参照ブロックテンプレートのブレンディングプロセスにおいて使用される重み値を導出するための、様々な方法を説明する。
【0221】
[0228] 一例では、現在のブロックの外側のサンプル位置に関連付けられた重み値も、VVC GEOが導出された重み値に使用するのと同じ式を使用することによって計算される。すなわち、第1の参照テンプレート1014Aのサンプルの第1のセット1018Aの1つ又は複数のサンプルと、線1016Cの近くの、第2の参照テンプレート1014Bのサンプルの第3のセット1020Bの1つ又は複数のサンプルとのブレンディングを実行するとき、ビデオエンコーダ200及びビデオデコーダ300は、重み付けのためにVVCのサンプル方程式を使用し得る。
【0222】
[0229] 具体的には、この修正は、VVC仕様JVET-T2001における式(1002)~(1007)のための別の構成を追加することを必要とする。以下の<ADD>...</ADD>内の太字のイタリック体の部分は、この例と、式(1002)~(1007)との間の差を示す。
<ADD>The prediction samples of top reference template block pbSamples[x][y]with x=0..nCbW-1 and y=-1 and the prediction samples of left reference template block pbSamples[x][y]with x=-1 and y=0..nCbH-1 are derived as follows:</ADD>
- 変数xL及びyLは、次のように導出される。
xL=(cIdx==0)?x:xSubWidthC
yL=(cIdx==0)?y:ySubHeightC
- 予測サンプルの重みを指定する変数wValueは、JVET-T2001の表37に指定されたアレイdisLutに基づいて、以下のように導出される。
weightIdx=(((xL+offsetX)<<1)+1)disLut[displacementX]+
(((yL+offsetY)<<1)+1)disLut[displacementY]
weightIdxL=partFlip?32+weightIdx:32-weightIdx
wValue=Clip3(0,8,(weightIdxL+4)>>3)
- 予測サンプル値は次のように導出される。
pbSamples[x][y]=Clip3(0,(1<<BitDepth)-1,(predSamplesLA[x][y]wValue+
predSamplesLB[x][y](8-wValue)+offset1)>>shift1)
【0223】
【表7】
【0224】
[0230] 一例では、簡略化のために、現在のブロック内の境界サンプルに関連付けられた重み値が再使用される。したがって、基準ブロックテンプレートをブレンディングするための重み値を導出するための余分な複雑さはない。例えば、テンプレートサイズが1線である場合、ブロックの第1の行に適用される重み値は、上参照ブロックテンプレートに直接適用され、ブロックの第1の左列に適用される重み値は、左参照ブロックテンプレートに直接適用される。別の例では、テンプレートサイズが1線より大きいとき、上参照テンプレートブロックの各線は、現在のブロック内の第1の上行の重み値と同じ重み値を共有する。同様に、左参照テンプレートブロックの各線は、現在のブロック内の第1の左列の重み値と同じ重み値を共有する。以下の<ADD>...</ADD>部分内の太字のイタリック体の部分は、この例と式(1002)~(1007)との間の差を示す。
<ADD.The prediction samples of top reference template block pbSamples[x][y]with x=0..nCbW-1 and y=-1 and the prediction samples of left reference template block pbSamples[x][y]with x=-1 and y=0..nCbH-1 are derived as follows:</ADD>
- 変数xL及びyLは、次のように導出される。
<ADD>xD=(is top reference block?x:0)
yD=(is top reference block?0:y)</ADD>
xL=(cIdx==0)?<ADD>xD:xD</ADD>SubWidthC
yL=(cIdx==0)?<ADD>yD:yD</ADD>SubHeightC
- 予測サンプルの重みを指定する変数wValueは、JVET-T2001の表37に指定されたアレイdisLutに基づいて、以下のように導出される。
weightIdx=(((xL+offsetX)<<1)+1)disLut[displacementX]+
(((yL+offsetY)<<1)+1)disLut[displacementY]
weightIdxL=partFlip?32+weightIdx:32-weightIdx
wValue=Clip3(0,8,(weightIdxL+4)>>3)
- 予測サンプル値は次のように導出される。
pbSamples[x][y]=Clip3(0,(1<<BitDepth)-1,(predSamplesLA[x][y]wValue+
predSamplesLB[x][y](8-wValue)+offset1)>>shift1)
【0225】
[0231] 別の例では、簡略化のために、使用される重み値は0及び8のみであり、これは、GEO分割エッジに沿ってサンプルにブレンディングが適用されないことを意味する。例えば、重み付けが適用されないとき、参照テンプレート1022は、第1の参照テンプレート1014Aのサンプルの第1のセット1018Aのサンプルと、第2の参照テンプレート1014Bのサンプルの第3のセット1020Bのサンプルとを、サンプルを互いにブレンディングすることなく含む。参照テンプレート1022上の各サンプルは、単に、第1のGEO区分又は他のGEO区分のいずれかの参照テンプレートから(例えば、第1の参照テンプレート1014A又は第2の参照テンプレート1014Bのいずれかから)選択され、したがって、ブレンディングプロセスにおいて使用される乗算を、完全に回避することができる。具体的には、この修正は、VVC仕様JVET-T2001における式(1002)~(1007)のための別の構成を追加することを必要とする。以下の<ADD>...</ADD>部分内の太字のイタリック体の部分は、この例と式(1002)~(1007)との間の差を示す。
<ADD>The prediction samples of top reference template block pbSamples[x][y]with x=0..nCbW-1 and y=-1 and the prediction samples of left reference template block pbSamples[x][y]with x=-1 and y=0..nCbH-1 are derived as follows:</ADD>
- 変数xL及びyLは、次のように導出される。
xL=(cIdx==0)?x:xSubWidthC
yL=(cIdx==0)?y:ySubHeightC
- 予測サンプルの重みを指定する変数wValueは、表37に指定されたアレイdisLutに基づいて、以下のように導出される。
weightIdx=(((xL+offsetX)<<1)+1)disLut[displacementX]+
(((yL+offsetY)<<1)+1)disLut[displacementY]
<ADD>wValue=partFlip?(weightIdx>0?8:0):(weightIdx>0?0:8)</ADD>
- 予測サンプル値は次のように導出される。
pbSamples[x][y]=Clip3(0,(1<<BitDepth)-1,(predSamplesLA[x][y]wValue+
predSamplesLB[x][y](8-wValue)+offset1)>>shift1)
【0226】
[0232] 別の例は、上記の例の組み合わせである。
<ADD>The prediction samples of top reference template block pbSamples[x][y]with x=0..nCbW-1 and y=-1 and the prediction samples of left reference template block pbSamples[x][y]with x=-1 and y=0..nCbH-1 are derived as follows:</ADD>
- 変数xL及びyLは、次のように導出される。
<ADD>xD=(is top reference block?x:0)
yD=(is top reference block?0:y)</ADD>
xL=(cIdx==0)?<ADD>xD:xD</ADD>SubWidthC
yL=(cIdx==0)?<ADD>yD:yD</ADD>SubHeightC
- 予測サンプルの重みを指定する変数wValueは、表37に指定されたアレイdisLutに基づいて、以下のように導出される。
weightIdx=(((xL+offsetX)<<1)+1)disLut[displacementX]+
(((yL+offsetY)<<1)+1)disLut[displacementY]
<ADD>wValue=partFlip?(weightIdx>0?8:0):(weightIdx>0?0:8)</ADD>
- 予測サンプル値は次のように導出される。
pbSamples[x][y]=Clip3(0,(1<<BitDepth)-1,(predSamplesLA[x][y]wValue+
predSamplesLB[x][y](8-wValue)+offset1)>>shift1)
【0227】
[0233] 別の例では、上記技術の簡略化方法として、式「wValue=Clip3(0,8,(weightIdxL+4)>>3)」が処理された後に、wValueの値が更に更新され得る。具体的には、更新動作は、「wValue=wValue<4?0:8」又は「wValue=wValue≦4?0:8」。
【0228】
[0234] 以下、GEO+TMモードへの適用について説明する。一例では、GEO分割モードのためのグループ化及びTMコストベースのシンタックス並べ替えを使用するGEO分割モードのためのシンタックス並べ替えにおいて説明される分割モードコーディング方法は、2つのGEO区分の使用される動き情報が改良されていないGEO+TMに適用され得る。改良されていない動き情報は、TMコスト計算のための参照ブロックテンプレートを生成するために使用される。
【0229】
[0235] 一例では、GEO分割モードのためのグループ化及びTMコストベースのシンタックス並べ替えを使用するGEO分割モードのためのシンタックス並べ替えにおいて説明される分割モードコーディング方法は、2つのGEO区分の使用される動き情報が改良されているGEO+TMに適用され得る。改良された動き情報は、TMコスト計算のための参照ブロックテンプレートを生成するために使用される。
【0230】
[0236] 以下、参照ピクチャ再サンプリング(RPR)とTMコストベースのGEO分割モード並べ替えとの間の相互作用について説明する。例示的な技法のうちのいくつかは、2021年12月16日に出願された米国仮出願第63/265,555号に関連し得るが、その内容は、参照により本明細書に組み込まれる。以下に列挙される例は、現在のピクチャ及び参照ピクチャ(複数可)のそれぞれのピクチャサイズに基づいて、テンプレートマッチング(TM)が適用され得るか否かを決定するための、TM予測に対するRPR制限を開示する。
【0231】
[0237] 一例では、GEO分割モードは、参照ピクチャサイズが現在のものと異なるとき、もはやTMコストに基づいて並べ替えられない。むしろ、デフォルトの順序(例えば、より小さい分割モードインデックスから大きい分割モードインデックスへ)が、GEOモード、GEO+MMVDモード、及びGEO+TMモードのすべての候補に割り当てられる。
【0232】
[0238] 別の例では、GEO分割モードは、参照ピクチャがWPとともに適用されるとき、もはやTMコストに基づいて並べ替えられない。むしろ、デフォルトの順序(例えば、より小さい分割モードインデックスから大きい分割モードインデックスへ)が、GEOモード、GEO+MMVDモード、及びGEO+TMモードのすべての候補に割り当てられる。
【0233】
[0239] 次に、拡張について説明する。GEO分割モードのためのTMコストベースのシンタックス並べ替えに関して上記で説明した同様の概念は、GEOモード、GEO+MMVDモード、GEO+TMモードの候補インデックスのコーディングパフォーマンスを改善するために利用され得る。並べ替えの概念は、以下の例において、GEO分割モードの代わりにGEO候補に適用される。
【0234】
[0240] GEOモード、GEO+MMVDモード、及びGEO+TMモードの場合、それらはすべて、両方のGEO区分のためのマージ候補の使用を示すために、マージインデックスのペアをシグナリングすることを必要とする。この例では、マージインデックスの各ペアについて、GEOは、TMコストを計算するために、両方の区分についての参照ブロックテンプレートを生成する。TMコストが計算される方法(TMコスト計算に関して上述したような方法)と、テンプレートブロックの重み使用(基準ブロックテンプレートをブレンディングするためのGEO重みの使用に関して上述したような使用)とは、この例と組み合わせることができる。次いで、TMコストを使用してすべてのペアを昇順にソートし、それに応じて並べ替えインデックスを割り当てることができる。次いで、GEO分割モードのためのTMコストベースのシンタックス並べ替えと同様に、この並べ替えインデックスは、固定長バイナリコード又は(ゴロム-ライスに関して上記で説明した)除数Dを有するゴロム-ライスコードを使用することによってコーディングされ得るが、ここで、Dは1、2、4、・・・、Mであり得る。いくつかの例では、Dは4に等しい。
【0235】
[0241] 別の例では、上記の例の拡張として、他のものよりも低いTMコストを達成する最良のN個の候補のみが識別され(他のものは除去される)、固定長バイナリコード(Nが2のべき乗である場合)、短縮バイナリコード(Nが2の非べき乗である場合)、又は(ゴロム-ライスに関して上で説明した)除数Dを有するゴロム-ライスコードを使用することによってシグナリングされるが、ここで、Dは1、2、4、・・・、Mであり得る。
【0236】
[0242] GEO+MMVDの場合、選択されたマージ候補のいずれか一方又は両方に追加され得るオフセット(MVDオフセットと呼ぶ)の複数の選択肢がある。ECMでは、GEO区分の各々について73個の選択肢(ゼロ個のMVDオフセットを含む)がある。したがって、合計で5329(=73×73)個のシグナリングされるべきモードがある。この例では、5329個のモードのそれぞれのTMコストが計算され、それらのうちの最良のN個がシグナリングのために識別される。シグナリング方法は、固定長バイナリコード(Nが2のべき乗である場合)、短縮バイナリコード(Nが2のべき乗でない場合)、又は(ゴロム-ライスに関して上に説明した)除数Dを有するゴロム-ライスコードであり得るが、ここで、Dは、1、2、4、・・・、Mであり得る。
【0237】
[0243] 前の例に加えて別の例では、ゼロMVDオフセットが、ソーティングから除外され、したがって、72×72モードのみが、ソーティングプロセスに関与するものとして存在する。GEO候補のすべての可能な組み合わせをソートする代わりに、以下の例は、GEO区分の候補を独立にソートすることを含む。
【0238】
[0244] GEOモード、GEO+MMVDモード、及びGEO+TMモードの場合、それらはすべて、両方のGEO区分のためのマージ候補の使用を示すために、マージインデックスのペアをシグナリングすることを必要とする。GEO区分ごとにN個の候補があると仮定すると、それぞれのTMコストは、これらのN個の候補について計算される。次に、それらのうちの最良のN個がシグナリングのために識別される。シグナリング方法は、固定長バイナリコード(Nが2のべき乗である場合)、短縮バイナリコード(Nが2のべき乗でない場合)、又は(ゴロム-ライスに関して上に説明した)除数Dを有するゴロム-ライスコードであり得るが、ここで、Dは、1、2、4、・・・、Mであり得る。TMコストを計算するために、以下の2つの異なる方法がある。
a.TMコストは、GEO区分の参照ブロックテンプレートと現在のブロックテンプレートとの間の絶対差の和である。TMコスト計算のために上で開示されたTMコストのサブサンプリングは、一緒に組み合わせることができる。これについて次のように公式化され得る。
Σ(i,j)∈T|C(i,j)-Clip((P(vx+i,vy+j)+o)>>s)|,
ここで、T={(0,-t),(ブロック幅-1,-t),(-t,0),・・・,(-t,ブロック高さ-1)|∀t=1,・・・,最大テンプレートサイズ}であり、C(i,j)は、現在のブロックの左上のサンプルに対して(i,j)に位置するサンプルの再構築された強度値を示し、P(vx+i,vy+j)は、動きベクトル(vx,vy)によって指し示される参照ブロックの左上のサンプルに対して(i,j)に位置するサンプルの強度値を示し、Pは、それが単予測テンプレートであるかのように生成され、したがって、そのビット深度は、現在のテンプレートCのビット深度と同一であり(したがって、s=Max(2,14-bitDepth)及びo=1<<(s-1))、tは、1からテンプレートCの最大サイズによって決定されるある正の数までの範囲である。
b.TMコストは、GEO区分の参照ブロックテンプレートと現在のブロックテンプレートとの間の重み付けされた絶対差の和である。これについて次のように公式化され得る。
Σ(i,j)∈T w(i,j)|C(i,j)-Clip((P(vx+i,vy+j)+o)>>s)|,
ここで、w(i,j)は、現在のブロックテンプレート上の(i,j)に位置するサンプルに対応するGEO重みの値である。
【0239】
[0245] 上述したように、GEO+MMVDの場合、選択されたマージ候補の一方又は両方に追加することができるオフセット(MVDオフセットと呼ぶ)の複数の選択肢がある。GEO区分ごとにN個のMVDオフセット(ゼロMVDオフセットを含むか又は除外するに関わらず)があると仮定すると、それぞれのTMコストが、これらのN個の候補について計算される。次に、それらのうちの最良のN個がシグナリングのために識別される。シグナリング方法は、固定長バイナリコード(Nが2のべき乗である場合)、短縮バイナリコード(Nが2のべき乗でない場合)、又は(ゴロム-ライスに関して上に説明した)除数Dを有するゴロム-ライスコードであり得るが、ここで、Dは、1、2、4、・・・、Mであり得る。TMコストを計算するために、先の例で説明されたものと同一の、2つの異なる方法がある。
【0240】
[0246] 図2は、本開示の技術を実行することができる例示的なビデオエンコーダ200を示すブロック図である。図2は、説明のために提供され、本開示において広く例示され説明されるような技術の限定と見なされるべきでない。説明のために、本開示は、VVC(開発中のITU-T H.266)及びHEVC(ITU-T H.265)の技法によるビデオエンコーダ200を説明する。しかしながら、本開示の技法は、他のビデオコーディング規格、並びに、AV1及びAV1ビデオコーディングフォーマットの後継などのビデオコーディングフォーマットに構成された、ビデオ符号化デバイスによって実施され得る。
【0241】
[0247] 図2の実施例では、ビデオエンコーダ200は、ビデオデータメモリ230、モード選択ユニット202、残差生成ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、フィルタユニット216、復号ピクチャバッファ(decoded picture buffer、DPB)218、及びエントロピー符号化ユニット220を含む。ビデオデータメモリ230、モード選択ユニット202、残差生成ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、フィルタユニット216、DPB218、及びエントロピー符号化ユニット220のいずれか又は全てが、1つ若しくは複数のプロセッサにおいて又は処理回路において実装され得る。例えば、ビデオエンコーダ200のユニットは、ハードウェア回路の一部としての1つ又は複数の回路若しくは論理要素として、又はプロセッサ、ASIC、若しくはFPGAの一部として実装され得る。その上、ビデオエンコーダ200は、これら及び他の機能を実行するための追加又は代替のプロセッサ又は処理回路構成を含んでよい。
【0242】
[0248] ビデオデータメモリ230は、ビデオエンコーダ200のコンポーネントによって符号化されるべきビデオデータを記憶し得る。ビデオエンコーダ200は、ビデオデータメモリ230に記憶されたビデオデータを、例えば、ビデオソース104(図1)から受信し得る。DPB218は、ビデオエンコーダ200による後続のビデオデータの予測における使用のために参照ビデオデータを記憶する、参照ピクチャメモリとして作用してよい。ビデオデータメモリ230及びDPB218は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、又は他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ230及びDPB218は、同じメモリデバイス又は別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ230は、示されるように、ビデオエンコーダ200の他のコンポーネントとともにオンチップであってもよく、又はそれらのコンポーネントに対してオフチップであってもよい。
【0243】
[0249] 本開示では、ビデオデータメモリ230への言及は、そのように特に記載されない限り、ビデオエンコーダ200の内部のメモリに、又はそのように特に記載されない限り、ビデオエンコーダ200の外部のメモリに限定されるものとして、解釈されるべきではない。むしろ、ビデオデータメモリ230への言及は、ビデオエンコーダ200が符号化のために受信するビデオデータ(例えば、符号化されるべき現在のブロックに対するビデオデータ)を記憶する参照メモリとして理解されるべきである。図1のメモリ106はまた、ビデオエンコーダ200の様々なユニットからの出力の一時的な記憶域を提供し得る。
【0244】
[0250] 図2の様々なユニットは、ビデオエンコーダ200によって実行される動作を理解する助けとなるために示される。ユニットは、固定機能回路、プログラマブル回路、又はこれらの組み合わせとして実装され得る。固定機能回路は、特定の機能性を提供する回路を指し、実施できる動作があらかじめ決められている。プログラマブル回路は、様々なタスクを実施するようにプログラムされ得る回路を指し、実施できる動作においてフレキシブルな機能性を提供する。例えば、プログラマブル回路は、ソフトウェア又はファームウェアの命令によって定義される方式で、プログラマブル回路を動作させるソフトウェア又はファームウェアを実行し得る。固定機能回路は(例えば、パラメータを受信するか又はパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは一般に不変である。いくつかの例では、ユニットのうちの1つ又は複数は、別個の回路ブロック(固定機能又はプログラマブル)であってもよく、いくつかの例では、ユニットのうちの1つ又は複数は集積回路であってもよい。
【0245】
[0251] ビデオエンコーダ200は、算術論理ユニット(ALUs)、基本機能ユニット(EFUs)、デジタル回路、アナログ回路、及び/又は、プログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオエンコーダ200の動作がプログラマブル回路によって実行されるソフトウェアを使用して実施される例では、メモリ106(図1)が、ビデオエンコーダ200が受信及び実行するソフトウェアの命令(例えばオブジェクトコード)を記憶してよく、又はビデオエンコーダ200内の別のメモリ(図示せず)が、そのような命令を記憶してよい。
【0246】
[0252] ビデオデータメモリ230は、受信されたビデオデータを記憶するように構成されている。ビデオエンコーダ200は、ビデオデータメモリ230からビデオデータのピクチャを取り出してよく、ビデオデータを残差生成ユニット204及びモード選択ユニット202に提供してよい。ビデオデータメモリ230中のビデオデータは、符号化されるべき未加工のビデオデータであってもよい。
【0247】
[0253] モード選択ユニット202は、動き推定ユニット222、動き補償ユニット224、及びイントラ予測ユニット226を含む。モード選択ユニット202は、他の予測モードに従ってビデオ予測を実行するための追加の機能ユニットを含んでよい。例として、モード選択ユニット202は、パレットユニット、(動き推定ユニット222及び/又は動き補償ユニット224の一部であり得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含んでよい。
【0248】
[0254] モード選択ユニット202は一般に、複数の符号化パスを協調させて、符号化パラメータの組み合わせと、そのような組み合わせに対して得られるレート歪み値を試験する。符号化パラメータは、CUへのCTUの区分、CUのための予測モード、CUの残差データのための変換タイプ、CUの残差データのための量子化パラメータなどを含んでよい。モード選択ユニット202は最終的に、他の試験された組み合わせより良いレート歪み値を有する符号化パラメータの組み合わせを選択し得る。
【0249】
[0255] ビデオエンコーダ200は、ビデオデータメモリ230から取り出されたピクチャを一連のCTUに区分してよく、1つ又は複数のCTUをスライス内にカプセル化してよい。モード選択ユニット202は、MTT構造、QTBT構造、スーパーブロック構造、又は上記で説明されたクワッドツリー構造など、ツリー構造に従ってピクチャのCTUを区分し得る。上記で説明したように、ビデオエンコーダ200は、ツリー構造に従ってCTUを区分することから1つ又は複数のCUを形成し得る。そのようなCUは、一般に、「ビデオブロック」又は「ブロック」と呼ばれることもある。
【0250】
[0256] 一般に、モード選択ユニット202はまた、現在のブロック(例えば、現在のCU、又はHEVCでは、PU及びTUの重複部分)に対する予測ブロックを生成するように、そのコンポーネント(例えば、動き推定ユニット222、動き補償ユニット224、及びイントラ予測ユニット226)を制御する。現在のブロックのインター予測の場合、動き推定ユニット222は、1つ又は複数の参照ピクチャ(例えば、DPB218に記憶されている1つ又は複数の以前にコーディングされたピクチャ)の中の1つ又は複数のよく一致する参照ブロックを特定するために、動き探索を実行し得る。具体的には、動き推定ユニット222は、例えば、絶対差分和(SAD)、二乗差分和(SSD)、平均絶対差(MAD)、平均二乗差(MSD)などに従って、潜在的な参照ブロックが現在のブロックとどれだけ類似しているかを表す値を計算し得る。動き推定ユニット222は一般に、現在のブロックと検討されている参照ブロックとの間のサンプルごとの差を使用して、これらの計算を実行し得る。動き推定ユニット222は、現在のブロックと最もよく一致する参照ブロックを示す、これらの計算に起因する最低の値を有する参照ブロックを特定し得る。
【0251】
[0257] 動き推定ユニット222は、現在ピクチャの中の現在のブロックの位置に対する相対的な参照ピクチャの中の参照ブロックの位置を定義する、1つ又は複数の動きベクトル(MVs)を形成し得る。動き推定ユニット222は、次いで、動きベクトルを動き補償ユニット224に提供し得る。例えば、単方向のインター予測の場合、動き推定ユニット222は単一の動きベクトルを提供してもよく、一方、双方向インター予測の場合、動き推定ユニット222は2つの動きベクトルを提供してもよい。動き補償ユニット224は、次いで、動きベクトルを使用して予測ブロックを生成し得る。例えば、動き補償ユニット224は、動きベクトルを使用して参照ブロックのデータを取り出してよい。別の例として、動きベクトルが小数サンプル精度を有する場合、動き補償ユニット224は、1つ又は複数の補間フィルタに従って、予測ブロックに対する値を補間し得る。その上、双方向インター予測の場合、動き補償ユニット224は、それぞれの動きベクトルによって特定される2つの参照ブロックに対するデータを取り出し、例えば、サンプルごとの平均又は加重平均を通じて、取り出されたデータを組み合わせ得る。
【0252】
[0258] AV1ビデオコーディングフォーマットに従って動作するとき、動き推定ユニット222及び動き補償ユニット224は、並進動き補償、アフィン動き補償、重複ブロック動き補償(OBMC)、及び/又は合成インター-イントラ予測を使用して、ビデオデータのコーディングブロック(例えば、ルーマコーディングブロックとクロマコーディングブロックの両方)を符号化するように構成され得る。
【0253】
[0259] 別の例として、イントラ予測又はイントラ予測コーディングの場合、イントラ予測ユニット226は、現在のブロックに隣接するサンプルから予測ブロックを生成し得る。例えば、指向性モードの場合、イントラ予測ユニット226は一般に、隣接するサンプルの値を数学的に組み合わせて、現在のブロックにわたって定められた方向においてこれらの計算された値をポピュレートして、予測ブロックを生み出し得る。別の例として、DCモードの場合、イントラ予測ユニット226は、現在のブロックに隣接するサンプルの平均を計算し、予測ブロックの各サンプルに対するこの得られた平均を含むように予測ブロックを生成し得る。
【0254】
[0260] AV1ビデオコーディングフォーマットに従って動作するとき、イントラ予測ユニット226は、方向性イントラ予測、非方向性イントラ予測、再帰的フィルタイントラ予測、ルーマからクロマ(CFL:chroma-from-luma)予測、イントラブロックコピー(IBC)、及び/又はカラーパレットモードを使用して、ビデオデータのコーディングブロック(例えば、ルーマコーディングブロックとクロマコーディングブロックの両方)を符号化するように構成され得る。モード選択ユニット202は、他の予測モードに従ってビデオ予測を実行するための追加の機能ユニットを含んでよい。
【0255】
[0261] モード選択ユニット202は、予測ブロックを残差生成ユニット204に提供する。残差生成ユニット204は、ビデオデータメモリ230から現在のブロックの未加工の符号化されていないバージョンを受信し、モード選択ユニット202から予測ブロックを受信する。残差生成ユニット204は、現在のブロックと予測ブロックとのサンプルごとの差を計算する。得られるサンプルごとの差は、現在のブロックに対する残差ブロックを定義する。いくつかの例では、残差生成ユニット204はまた、残差差分パルスコード変調(RDPCM:residual differential pulse code modulation)を使用して残差ブロックを生成するために、残差ブロックの中のサンプル値の間の差分を決定し得る。いくつかの例では、残差生成ユニット204は、バイナリ減算を実施する1つ又は複数の減算器回路を使用して形成され得る。
【0256】
[0262] モード選択ユニット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サイズのための非対称区分をサポートし得る。
【0257】
[0263] モード選択ユニット202がCUをPUに更に区分しない例では、各CUはルーマコーディングブロック及び対応するクロマコーディングブロックと関連付けられてもよい。上のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指すことがある。ビデオエンコーダ200及びビデオデコーダ300は、2N×2N、2N×N、又はN×2NというCUサイズをサポートしてよい。
【0258】
[0264] いくつかの例として、イントラブロックコピーモードコーディング、アフィンモードコーディング、及び線形モデル(LM)モードコーディングなどの他のビデオコーディング技法の場合、モード選択ユニット202は、コーディング技法に関連するそれぞれのユニットを介して、符号化されている現在のブロックのための予測ブロックを生成する。パレットモードコーディングなどのいくつかの例では、モード選択ユニット202は、予測ブロックを生成しなくてよく、代わりに、選択されたパレットに基づいてブロックを再構築するための方式を示すシンタックス要素を生成してよい。そのようなモードでは、モード選択ユニット202は、符号化されるようにこれらのシンタックス要素をエントロピー符号化ユニット220に提供し得る。
【0259】
[0265] 上で説明されたように、残差生成ユニット204は、現在のブロック及び対応する予測ブロックに対するビデオデータを受信する。残差生成ユニット204は次いで、現在のブロックのための残差ブロックを生成する。残差ブロックを生成するために、残差生成ユニット204は、予測ブロックと現在のブロックとのサンプルごとの差を計算する。
【0260】
[0266] 変換処理ユニット206は、変換係数のブロック(本明細書で「変換係数ブロック」と呼ばれる)を生成するために、1つ又は複数の変換を残差ブロックに適用する。変換処理ユニット206は、変換係数ブロックを形成するために、様々な変換を残差ブロックに適用し得る。例えば、変換処理ユニット206は、離散コサイン変換(DCT)、方向変換、カルーネンレーベ変換(KLT)、又は概念的に類似の変換を残差ブロックに適用し得る。いくつかの例では、変換処理ユニット206は、複数の変換、例えば、回転変換などの1次変換及び2次変換を、残差ブロックに対して実行してよい。いくつかの例では、変換処理ユニット206は、変換を残差ブロックに適用しない。
【0261】
[0267] AV1に従って動作するとき、変換処理ユニット206は、(本明細書では「変換係数ブロック」と呼ばれる)変換係数のブロックを生成するために、残差ブロックに1つ又は複数の変換を適用し得る。変換処理ユニット206は、変換係数ブロックを形成するために、様々な変換を残差ブロックに適用し得る。例えば、変換処理ユニット206は、離散コサイン変換(DCT)と、非対称離散サイン変換(ADST)と、反転ADST(例えば、逆順におけるADST)と、恒等変換(IDTX)とを含み得る水平/垂直変換組み合わせを適用し得る。恒等変換を使用するとき、変換は、垂直方向又は水平方向のうちの1つにおいてスキップされる。いくつかの例では、変換処理はスキップされ得る。
【0262】
[0268] 量子化ユニット208は、変換係数ブロックの中で変換係数を量子化して量子化変換係数ブロックを生成してよい。量子化ユニット208は、現在のブロックに関連する量子化パラメータ(QP)値に従って、変換係数ブロックの変換係数を量子化し得る。ビデオエンコーダ200は(例えば、モード選択ユニット202を介して)、CUに関連するQP値を調整することによって、現在のブロックに関連する変換係数ブロックに適用される量子化の程度を調整し得る。量子化は情報の損失をもたらすことがあり、したがって、量子化された変換係数は、変換処理ユニット206によって生成される元の変換係数より精度が低いことがある。
【0263】
[0269] 逆量子化ユニット210及び逆変換処理ユニット212は、それぞれ、逆量子化及び逆変換を量子化変換係数ブロックに適用して、変換係数ブロックから残差ブロックを再構築し得る。再構築ユニット214は、モード選択ユニット202によって生成される再構築された残差ブロック及び予測ブロックに基づいて、(ある程度の歪みを伴う可能性があるが)現在のブロックに対応する再構築ブロックを生成し得る。例えば、再構築ユニット214は、再構築された残差ブロックのサンプルを、モード選択ユニット202によって生成された予測ブロックからの対応するサンプルに加算して、再構築ブロックを生成し得る。
【0264】
[0270] フィルタユニット216は、再構築ブロックに対して1つ又は複数のフィルタ動作を実行してもよい。例えば、フィルタユニット216は、CUのエッジに沿ったブロッキネスアーティファクトを低減するためにデブロッキング動作を実行し得る。フィルタユニット216の動作は、いくつかの例では、スキップされ得る。
【0265】
[0271] AV1に従って動作するとき、フィルタユニット216は、再構築ブロックに対して1つ又は複数のフィルタ動作を実施し得る。例えば、フィルタユニット216は、CUのエッジに沿ったブロッキネスアーティファクトを低減するためにデブロッキング動作を実行し得る。他の例では、フィルタユニット216は、制約付き方向性強調フィルタ(CDEF:constrained directional enhancement filter)を適用し得るが、これは、デブロッキングの後に適用され得るが、推定されたエッジ方向に基づく、非分離可能、非線形、ローパス方向性フィルタの適用を含み得る。フィルタユニット216は、ループ復元フィルタをも含み得るが、これは、CDEFの後に適用され、分離可能対称正規化ウィーナーフィルタ又はデュアル自己誘導フィルタを含み得る。
【0266】
[0272] ビデオエンコーダ200は、再構築ブロックをDPB218に記憶する。例えば、フィルタユニット216の動作が実行されない例では、再構築ユニット214が再構築ブロックをDPB218に記憶し得る。フィルタユニット216の動作が実行される例では、フィルタユニット216が、フィルタ処理済みの再構築ブロックをDPB218に記憶し得る。動き推定ユニット222及び動き補償ユニット224は、後で符号化されるピクチャのブロックをインター予測するために、再構築された(かつ、潜在的にフィルタ処理済みの)ブロックから形成された参照ピクチャをDPB218から取り出し得る。加えて、イントラ予測ユニット226は、現在ピクチャの中の他のブロックをイントラ予測するために、現在ピクチャのDPB218の中の再構築ブロックを使用し得る。
【0267】
[0273] 一般に、エントロピー符号化ユニット220は、ビデオエンコーダ200の他の機能コンポーネントから受信されたシンタックス要素をエントロピー符号化し得る。例えば、エントロピー符号化ユニット220は、量子化ユニット208からの量子化変換係数ブロックをエントロピー符号化し得る。別の例として、エントロピー符号化ユニット220は、モード選択ユニット202からの予測シンタックス要素(例えば、インター予測のための動き情報又はイントラ予測のためのイントラモード情報)をエントロピー符号化し得る。エントロピー符号化ユニット220は、ビデオデータの別の例であるシンタックス要素に対して1つ又は複数のエントロピー符号化動作を実行して、エントロピー符号化データを生成し得る。例えば、エントロピー符号化ユニット220は、コンテキスト適応可変長コーディング(CAVLC)動作、CABAC動作、可変長-可変長(V2V)コーディング動作、シンタックスベースコンテキスト適応バイナリ算術コーディング(SBAC)動作、確率間隔区分エントロピー(PIPE)コーディング動作、指数ゴロム符号化動作、又は別のタイプのエントロピー符号化動作を、データに対して実行し得る。いくつかの例では、エントロピー符号化ユニット220は、シンタックス要素がエントロピー符号化されないバイパスモードで動作し得る。
【0268】
[0274] ビデオエンコーダ200は、スライス又はピクチャのブロックを再構築するために必要とされるエントロピー符号化シンタックス要素を含むビットストリームを出力し得る。詳細には、エントロピー符号化ユニット220がビットストリームを出力してよい。
【0269】
[0275] AV1に従って、エントロピー符号化ユニット220は、シンボル対シンボル適応マルチシンボル算術コーダ(symbol-to-symbol adaptive multi-symbol arithmetic coder)として構成され得る。AV1におけるシンタックス要素はN個の要素のアルファベットを含み、コンテキスト(例えば、確率モデル)はN個の確率のセットを含む。エントロピー符号化ユニット220は、確率をnビット(例えば、15ビット)累積分布関数(CDFs)として記憶し得る。エントロピー符号化ユニット22は、コンテキストを更新するために、アルファベットサイズに基づく更新ファクタを用いて、再帰的スケーリングを実施し得る。
【0270】
[0276] 上記で説明した動作はブロックに関して説明される。そのような説明は、ルーマコーディングブロック及び/又はクロマコーディングブロックのための動作であるものとして理解されるべきである。上で説明されたように、いくつかの例では、ルーマコーディングブロック及びクロマコーディングブロックは、CUのルーマ成分及びクロマ成分である。いくつかの例では、ルーマコーディングブロック及びクロマコーディングブロックは、PUのルーマ成分及びクロマ成分である。
【0271】
[0277] いくつかの例では、ルーマコーディングブロックに関して実行される動作は、クロマコーディングブロックに対して繰り返される必要はない。一例として、ルーマコーディングブロックのための動きベクトル(MV)及び参照ピクチャを特定するための動作が、クロマブロックのためのMV及び参照ピクチャを特定するために繰り返される必要はない。むしろ、ルーマコーディングブロックのためのMVは、クロマブロックのためのMVを決定するためにスケーリングされてもよく、参照ピクチャは同じであってもよい。別の例として、イントラ予測プロセスは、ルーマコーディングブロック及びクロマコーディングブロックについて同じであってもよい。
【0272】
[0278] ビデオエンコーダ200は、ビデオデータを記憶するように構成されたメモリと、回路に実装され、2つ以上の幾何学的区分モード(GEO)分割モードがマッピングテーブルにおいて同じインデックス値を有するように一緒にグループ化されるマッピングテーブルにメモリからアクセスするように構成された1つ又は複数の処理ユニットとを含む、ビデオデータを符号化するように構成されたデバイスの一例を表し、GEO分割モードの数はMに等しく、2つ以上のGEO分割モードの各グループ中の分割モードの数はKに等しく、KはMよりも小さい。ビデオエンコーダ200は、マッピングテーブルから、複数の分割モードのうちの1つの分割モードを決定し、ビデオデータの現在のブロックを復号するための分割モードを示すインデックスをマッピングテーブル中にシグナリングするように構成され得る。
【0273】
[0279] いくつかの例では、ビデオエンコーダ200は、GEOのM個の分割モードがある幾何学的区分モード(GEO)の1つ又は複数の分割モードに関連付けられたコストを決定し、GEOの1つ又は複数の分割モードについてのそれぞれのコストに基づいて、それぞれの分割モードを示すインデックス値を有するマッピングテーブル(例えば、マッピングリスト)を構築し、マッピングテーブルに基づいて複数の分割モードのうちの1つの分割モードを決定し、ビデオデータの現在のブロックを復号するための分割モードを示すインデックスをマッピングテーブルにシグナリングするように構成され得る。
【0274】
[0280] 図3は、本開示の技術を実行することができる例示的なビデオデコーダ300を示すブロック図である。図3は、説明のために提供され、本開示において広く例示され説明されるような技術を限定するものではない。説明のために、本開示は、VVC(開発中のITU-T H.266)、及びHEVC(ITU-T H.265)の技法によるビデオデコーダ300について説明する。しかしながら、本開示の技法は、他のビデオコーディング規格に従って構成されたビデオコーディングデバイスによって実行され得る。
【0275】
[0281] 図3の実施例では、ビデオデコーダ300は、コード化ピクチャバッファ(coded picture buffer、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は、これら及び他の機能を実行するための追加又は代替のプロセッサ又は処理回路構成を含んでよい。
【0276】
[0282] 予測処理ユニット304は、動き補償ユニット316及びイントラ予測ユニット318を含む。予測処理ユニット304は、他の予測モードに従って予測を実施するための追加のユニットを含み得る。例として、予測処理ユニット304は、パレットユニット、(動き補償ユニット316の一部を形成し得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含んでよい。他の例では、ビデオデコーダ300は、もっと多数の、もっと少数の、又は異なる機能構成要素を含んでよい。
【0277】
[0283] AV1に従って動作するとき、補償ユニット316は、上記で説明されたように、並進動き補償、アフィン動き補償、OBMC、及び/又は合成インター-イントラ予測を使用して、ビデオデータのコーディングブロック(例えば、ルーマコーディングブロックとクロマコーディングブロックの両方)を復号するように構成され得る。イントラ予測ユニット318は、上記で説明されたように、方向性イントラ予測、非方向性イントラ予測、再帰的フィルタイントラ予測、CFL、イントラブロックコピー(IBC)、及び/又はカラーパレットモードを使用して、ビデオデータのコーディングブロック(例えば、ルーマコーディングブロックとクロマコーディングブロックの両方)を復号するように構成され得る。
【0278】
[0284] CPBメモリ320は、ビデオデコーダ300の構成要素によって復号されるべき符号化されたビデオビットストリームなどのビデオデータを記憶してよい。CPBメモリ320の中に記憶されたビデオデータは、例えば、コンピュータ可読媒体110(図1)から取得され得る。CPBメモリ320は、符号化されたビデオビットストリームからの符号化ビデオデータ(例えば、シンタックス要素)を記憶するCPBを含んでよい。また、CPBメモリ320は、ビデオデコーダ300の様々なユニットからの出力を表す一時的なデータなどの、コード化ピクチャのシンタックス要素以外のビデオデータを記憶してよい。DPB314は、一般に、符号化されたビデオビットストリームの後続のデータ又はピクチャを復号するときにビデオデコーダ300が参照ビデオデータとして出力及び/又は使用し得る復号済みピクチャを記憶する。CPBメモリ320及びDPB314は、SDRAMを含むDRAM、MRAM、RRAM、又は他のタイプのメモリデバイスなどの、様々なメモリデバイスのうちのいずれかによって形成され得る。CPBメモリ320及びDPB314は、同じメモリデバイス又は別個のメモリデバイスによって提供され得る。様々な例では、CPBメモリ320は、ビデオデコーダ300の他のコンポーネントとともにオンチップであってよく、又はそれらのコンポーネントに対してオフチップであってよい。
【0279】
[0285] 追加又は代替として、いくつかの例では、ビデオデコーダ300は、メモリ120(図1)からコード化ビデオデータを取り出し得る。すなわち、メモリ120は、CPBメモリ320について上で論じられたようなデータを記憶し得る。同様に、メモリ120は、ビデオデコーダ300の機能の一部又は全てがビデオデコーダ300の処理回路によって実行されるべきソフトウェアにおいて実装されるとき、ビデオデコーダ300によって実行されるべき命令を記憶してもよい。
【0280】
[0286] 図3に示す様々なユニットは、ビデオデコーダ300によって実行される動作を理解する助けとなるために示される。ユニットは、固定機能回路、プログラマブル回路、又はこれらの組み合わせとして実装され得る。図2と同様に、固定機能回路は、特定の機能を提供する回路を指し、実行することができる動作があらかじめ設定されている。プログラマブル回路は、様々なタスクを実施するようにプログラムされ得る回路を指し、実施できる動作においてフレキシブルな機能性を提供する。例えば、プログラマブル回路は、ソフトウェア又はファームウェアの命令によって定義される方式で、プログラマブル回路を動作させるソフトウェア又はファームウェアを実行し得る。固定機能回路は(例えば、パラメータを受信するか又はパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは一般に不変である。いくつかの例では、ユニットのうちの1つ又は複数は、別個の回路ブロック(固定機能又はプログラマブル)であってもよく、いくつかの例では、ユニットのうちの1つ又は複数は集積回路であってもよい。
【0281】
[0287] ビデオデコーダ300は、ALU、EFU、デジタル回路、アナログ回路、及び/又は、プログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオデコーダ300の動作が、プログラマブル回路上で実行するソフトウェアによって実行される例では、オンチップメモリ又はオフチップメモリが、ビデオデコーダ300が受信及び実行するソフトウェアの命令(例えば、オブジェクトコード)を記憶してよい。
【0282】
[0288] エントロピー復号ユニット302は、CPBから符号化ビデオデータを受信しビデオデータをエントロピー復号して、シンタックス要素を再生してよい。予測処理ユニット304、逆量子化ユニット306、逆変換処理ユニット308、再構築ユニット310、及びフィルタユニット312は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成してよい。
【0283】
[0289] 一般に、ビデオデコーダ300は、ブロックごとにピクチャを再構築する。ビデオデコーダ300は、各ブロックに対する再構築動作を個別に実行し得る(ここで、現在再構築されている、すなわち復号されているブロックは、「現在のブロック」と呼ばれ得る)。
【0284】
[0290] エントロピー復号ユニット302は、量子化変換係数ブロックの量子化変換係数、並びに量子化パラメータ(QP)及び/又は変換モード表示(複数可)などの変換情報を規定する、シンタックス要素をエントロピー復号してよい。逆量子化ユニット306は、量子化変換係数ブロックに関連するQPを使用して、量子化の程度、及び同様に逆量子化ユニット306が適用すべき逆量子化の程度を決定してよい。逆量子化ユニット306は、例えば、量子化変換係数を逆量子化するために、ビット単位の左シフト演算を実行してよい。それによって、逆量子化ユニット306は、変換係数を含む変換係数ブロックを形成し得る。
【0285】
[0291] 逆量子化ユニット306が変換係数ブロックを形成した後、逆変換処理ユニット308は、現在のブロックに関連する残差ブロックを生成するために、変換係数ブロックに1つ又は複数の逆変換を適用し得る。例えば、逆変換処理ユニット308は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、又は別の逆変換を変換係数ブロックに適用し得る。
【0286】
[0292] 更に、予測処理ユニット304は、エントロピー復号ユニット302によってエントロピー復号された予測情報シンタックス要素に従って予測ブロックを生成する。例えば、現在のブロックがインター予測されることを、予測情報シンタックス要素が示す場合、動き補償ユニット316は、予測ブロックを生成し得る。この場合、予測情報シンタックス要素は、参照ブロックをそこから取り出すべきDPB314の中の参照ピクチャ、並びに、現在ピクチャの中の現在のブロックの位置に対する相対的な参照ピクチャの中の参照ブロックの位置を特定する動きベクトルを示し得る。動き補償ユニット316は、概して、動き補償ユニット224(図2)に関して説明した方式と実質的に類似の方式で、インター予測プロセスを実行することができる。
【0287】
[0293] 別の例として、現在のブロックがイントラ予測されることを、予測情報シンタックス要素が示す場合、イントラ予測ユニット318は、予測情報シンタックス要素によって示されるイントラ予測モードに従って、予測ブロックを生成し得る。この場合も、イントラ予測ユニット318は、概して、イントラ予測ユニット226(図2)に関して説明した方式と実質的に類似の方式で、イントラ予測プロセスを実行してよい。イントラ予測ユニット318は、DPB314から現在のブロックに隣接するサンプルのデータを取り出し得る。
【0288】
[0294] 再構築ユニット310は、予測ブロックと残差ブロックとを使用して現在のブロックを再構築し得る。例えば、再構築ユニット310は、予測ブロックの対応するサンプルに残差ブロックのサンプルを追加して、現在のブロックを再構築し得る。
【0289】
[0295] フィルタユニット312は、再構築ブロックに対して1つ又は複数のフィルタ動作を実行してもよい。例えば、フィルタユニット312は、再構築ブロックのエッジに沿ったブロッキネスアーティファクトを低減するために、デブロッキング動作を実行してよい。全ての例において、フィルタユニット312の動作が必ずしも実行されるとは限らない。
【0290】
[0296] ビデオデコーダ300は、再構築ブロックをDPB314の中に記憶してよい。例えば、フィルタユニット312の動作が必要とされない例では、再構築ユニット310は再構築ブロックをDPB314に記憶し得る。フィルタユニット312の動作が実行される例では、フィルタユニット312は、フィルタリングされた再構築ブロックをDPB314に記憶し得る。上記で説明したように、DPB314は、イントラ予測のための現在ピクチャ及び後続の動き補償のための以前に復号されたピクチャのサンプルなどの参照情報を、予測処理ユニット304に提供してよい。更に、ビデオデコーダ300は、図1の表示デバイス118などの表示デバイス上に後で提示するための、DPB314からの復号されたピクチャ(例えば、復号されたビデオ)を出力し得る。
【0291】
[0297] このようにして、ビデオデコーダ300は、ビデオデータを記憶するように構成されたメモリと、回路に実装され、2つ以上の幾何学的区分モード(GEO)分割モードがマッピングテーブル中で同じインデックス値を有するように一緒にグループ化されるマッピングテーブルにメモリからアクセスするように構成された1つ又は複数の処理ユニットとを含むビデオ復号デバイスの一例を表し、GEO分割モードの数はMに等しく、2つ以上のGEO分割モードの各グループ中の分割モードの数はKに等しく、KはMよりも小さい。ビデオデコーダ300は、マッピングテーブルから複数の分割モードのうちの分割モードを決定し、分割モード(例えば、決定された分割モード)に基づいて、ビデオデータの現在のブロックを再構築するように構成され得る。
【0292】
[0298] いくつかの例では、ビデオデコーダ300は、GEOのM個の分割モードがある幾何学的区分モード(GEO)の1つ又は複数の分割モードに関連付けられたコストを決定し、GEOの1つ又は複数の分割モードについてのそれぞれのTMコストに基づいてそれぞれの分割モードを示すインデックス値を有するマッピングテーブル(例えば、マッピングリスト)を構築し、マッピングテーブルに基づいて複数の分割モードのうちの1つの分割モードを決定し、分割モード(例えば、決定された分割モード)に基づいてビデオデータの現在のブロックを再構築するように構成され得る。
【0293】
[0299] 図12は、本開示で説明される例示的な技法による複号の例示的な方法を示すフローチャートである。例示的な技法はメモリに関して説明され、その例は、メモリ120、CPBメモリ320、DPB 314、又はビデオデコーダ300によってアクセス可能な他のメモリを含む。例示的な技法はまた、処理回路に関して説明され、その例は、ビデオデコーダ300、又は予測処理ユニット304、動き補償ユニット316、もしくはビデオデコーダ300の何らかの他のユニットなど、ビデオデコーダ300のユニットを含む。
【0294】
[0300] また、説明を容易にするために、図6図10A図10D、及び図11を参照する。例えば、メモリは、現在のブロック1000のビデオデータを記憶するように構成され得る。メモリに結合された処理回路は、図12の例示的な技法を実行するように構成され得る。
【0295】
[0301] 一例として、処理回路は、その幾何学的区分モードがビデオデータの現在のブロック1000に対して有効になっていると決定することができる(1200)。例えば、処理回路は、コーディングモードを定義し、コーディングモードが幾何学的区分モードであるという情報を含む、ビデオエンコーダ200によって符号化されたビットストリームからの1つ又は複数のシンタックス要素を受信し得る。処理回路は、受信された1つ又は複数のシンタックス要素に基づいて、現在のブロック1000に対して区分モードが有効になっていると決定し得る。幾何学的区分モードの例は、GEOモード、GEO+MMVDモード、及びGEO+TMモードを含む。GEOという用語は、GPM(幾何学的区分モード)と互換的に使用される。
【0296】
[0302] 幾何学的区分モードは、各々が区分するためのエッジを定義する複数の分割モードを含む。例えば、図6は、ブロックを2つの区分に区分するために使用されるそれぞれのエッジを各々が定義する異なる分割モードの例を示す。
【0297】
[0303] 複数の分割モードのうちの少なくとも2つ(例えば、分割モードのサブセット又は全て)の中の各分割モードについて、処理回路は、それぞれの分割モードに関連付けられたそれぞれのコストを決定するように構成され得る(1202)。例えば、処理回路は、図11の現在の(例えば、それぞれの)分割モードに対するコストを決定する動作(1100)と、図11の現在の分割モードに次の分割モードを設定する動作(1104)とを、図11の評価すべき分割モードがなくなるまで(1102の「いいえ」)、繰り返し実行してもよい。評価される分割モードの数は、すべての利用可能な分割モード、又は利用可能な分割モードのサブセットであってもよい。
【0298】
[0304] 一例として、それぞれの分割モードに関連付けられたそれぞれのコストを決定するために、処理回路は、複数の分割モードのうちのそれぞれの分割モードに基づいて、それぞれの参照テンプレートを決定し、図10Aに示されているように、現在のブロック1000のための現在のテンプレート1004を決定するように構成され得る。説明したように、現在のテンプレート1004は、図10Aに示されているように、上部分1006Aからのサンプル及び左部分1006Bからのサンプルなど、現在のブロック1000の外部のサンプルを含む。処理回路は、それぞれの参照テンプレート及び現在のテンプレート1004に基づいて、それぞれの分割モードに関連付けられたそれぞれのコストを決定してもよい。
【0299】
[0305] 上述したように、処理回路は、それぞれの参照テンプレートを決定するように構成されてもよい。それぞれの参照テンプレートの一例は、図10Dの参照テンプレート1022である。いくつかの例では、それぞれの参照テンプレートを決定するために、処理回路は、現在のブロック1000の図10A及び図10Bの第1の区分1002Aの図10Bの第1の動きベクトル1012Aによって識別される、図10B及び図10Cの第1の参照ブロック1010Aに基づいて、第1の参照テンプレート1014Aを決定するように構成され得る。処理回路は、現在のブロック1000の図10A及び図10Bの第2の区分1002Bの図10Bの第2の動きベクトル1012Bによって識別される、図10B及び図10Cの第2の参照ブロック1010Bに基づいて、第2の参照テンプレート1014Bを決定するように構成され得る。
【0300】
[0306] 第1の参照テンプレート1014Aは、第1の参照ブロック1010Aの上のサンプルの第1の部分と、第1の参照ブロック1010Aの左のサンプルの第2の部分とを含む。第2の参照テンプレート1014Bは、第2の参照ブロック1010Bの上のサンプルの第1の部分と、第2の参照ブロック1010Bの左のサンプルの第2の部分とを含む。
【0301】
[0307] 処理回路は、それぞれの分割モードに基づいて、参照テンプレート(例えば参照テンプレート1022)を生成するために、それぞれの分割モードに基づいて、第1の参照テンプレート1014Aからのサンプルと第2の参照テンプレート1014Bからのサンプルとを組み合わせるように構成されてもよい。すなわち、それぞれの分割モードの各々は、第1の参照テンプレート1014A及び第2の参照テンプレート1014Bからのどのサンプルが使用されるかを定義することができ、次いで、処理回路は、場合によってはブレンディングを用いてサンプルを組み合わせることができるが、ブレンディングを用いなくてもよい。
【0302】
[0308] 一例として、それぞれの参照テンプレートを生成するためにそれぞれの分割モードに基づいて第1の参照テンプレート1014Aからのサンプルと第2の参照テンプレート1014Bからのサンプルとを組み合わせるために、処理回路は、それぞれの分割モードを第1の参照ブロック1010Aに適用するように構成され得る。例えば、図10Cに示すように、処理回路は、複数の分割モードのうち、エッジ1008を定義する分割モードを、第1の参照ブロック1010Aに適用してもよい。
【0303】
[0309] 処理回路は、適用されたそれぞれの分割モードを第1の参照テンプレート1014Aのサンプルに拡張することができる。例えば、図10Cに示すように、処理回路は、エッジ1008を拡張して、第1の参照テンプレート1014Aのサンプル内に拡張する線1016Aを形成し、第1の参照テンプレート1014Aを、第1のサンプルセット1018Aを含む第1の部分と、第2のサンプルセット1018Bを含む第2の部分とに区分する。
【0304】
[0310] 処理回路は、適用されたそれぞれの分割モードの第1の参照テンプレート1014Aのサンプルへの拡張に基づいて、第1の参照テンプレート1014A内のサンプルの第1のセット1018Aにアクセスし得る。例えば、図10Cに示すように、処理回路は、サンプルの第1のセット1018A中の1つ又は複数のサンプルにアクセスし得る。第1の参照ブロック1010Aは、第1の区分1002Aに基づき、第1の区分1002Aは、サンプルの第1のセット1018Aを含む部分が線1016Aに対して位置するのと同じ方向に、エッジ1008に対して位置する。したがって、第1の参照テンプレート1014A内のサンプルの第1のセット1018Aは、第1の部分の、すべてを含む1つ又は複数のサンプルであり得る。
【0305】
[0311] 図10Cに示すように、処理回路は、第2の参照ブロック1010Bに対しても、同様にそれぞれの分割モードを適用してもよい。例えば、処理回路は、エッジ1008を定義する分割モードの1つである分割モードを、第2の参照ブロック1010Bに適用してもよい。
【0306】
[0312] 処理回路は、適用されたそれぞれの分割モードを、第2の参照テンプレート1014Bのサンプルに拡張してもよい。例えば、図10Cに示されるように、処理回路は、エッジ1008を拡張して、第2の参照テンプレート1014Bのサンプル内に拡張する線1016Bを形成し、第2の参照テンプレート1014Bを、第4のサンプルセット1020Aを含む第1の部分と、第3のサンプルセット1020Bを含む第2の部分とに区分する。
【0307】
[0313] 処理回路は、第2の参照テンプレート1014Bのサンプルに適用されたそれぞれの分割モードの拡張に基づいて、第2の参照テンプレート1014B内のサンプルのそれぞれの第3のセット1020Bにアクセスしてもよい。例えば、図10Cに示すように、処理回路は、サンプルの第3のセット1020B中の、1つ又は複数のサンプルにアクセスし得る。第2の参照ブロック1010Bは、第2の区分1002Bに基づき、第2の区分1002Bは、サンプル1020Bの3分の1を含む部分が線1016Bに対して配置されるのと同じ方向に、エッジ1008に対して配置される。したがって、第2の参照テンプレート1014B中のサンプルの第3のセット1020Bは、サンプルの第3のセット1020Bの、すべてを含む1つ又は複数のサンプルであり得る。
【0308】
[0314] 処理回路は、それぞれの第1のセット1018Aとサンプルのそれぞれの第3のセット1020Bとを組み合わせて、それぞれの参照テンプレート1022を生成してもよい。例えば、図10Dに示されるように、処理回路は、参照テンプレート1022を生成するために、線1016A、線1016Bに対応する線1016Cに沿って、サンプルの第1のセット1018Aのサンプルとサンプルの第3のセット1020Bのサンプルとを組み合わせ得る。いくつかの例では、処理回路は、サンプルのそれぞれの第1のセット1018A及びサンプルの第4のセット1020A内の1つ又は複数のサンプルをブレンディングし、サンプルのそれぞれの第2のセット1020B及びサンプルの第2のセット1018B内の1つ又は複数のサンプルをブレンディングし、ブレンディングに基づいて、サンプルのそれぞれの第1のセット1018A及びサンプルのそれぞれの第3のセット1020Bを組み合わせることができる。しかしながら、そのようなブレンディングは、全ての実施例において必要というわけではない。
【0309】
[0315] 再び図12を参照すると、処理回路は、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築してもよく、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられる(1204)。例えば、図11に関して上記で説明されるように、それぞれのコストを決定した後、又はそれぞれのコストを決定するのとともに、処理回路は、マッピングリストを構築してもよい。一例として、処理回路は、それぞれのコストに基づいて、分割モードのうちの1つ又は複数を、昇順で順序付けてもよい。いくつかの例では、処理回路は、マッピングリスト中に最も低いコストを有するN個(例えば、32個)の分割モードを含み得る。
【0310】
[0316] また、上記で説明したように、マッピングリストは、インデックス値(例えば、0から始まる昇順のインデックス値)を含み得る。インデックス値の各々は、マッピングリスト中のエントリを表し、マッピングリスト中の各エントリは、分割モードを示す値を記憶し得る。例えば、マッピングリスト中のインデックス値0は、マッピングリスト中の第1のエントリを指し得るが、第1のエントリは、第1の分割モードを示す第1の値を記憶し得る。マッピングリスト中のインデックス値1は、マッピングリスト中の第2のエントリを指すことがあり、第2のエントリは、第2の分割モードを示す第2の値を記憶することがあり、以下同様である。したがって、マッピングリストは、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含む。
【0311】
[0317] 1つ又は複数の例では、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられる。例えば、上記で説明したように、第1の分割モードを示す第1の値は、インデックス値0によって識別されるマッピングリスト中のエントリに記憶され得るが、第2の分割モードを示す第2の値は、インデックス値1によって識別されるマッピングリスト中のエントリに記憶され得る。この例では、第1の分割モードの第1のコストは、第2の分割モードの第2のコストよりも小さい。
【0312】
[0318] マッピングリストは、分割モードを示す値を含む。分割モードを示す値は、表1へのインデックスとして形成される値などの分割インデックス値であり得る。例えば、マッピングリスト中の第1のエントリ(例えば、インデックス0)が値10を含み、マッピングリスト中の第2のエントリ(例えば、インデックス1)が値5を含むと仮定する。この例では、マッピングリストの第1のエントリに記憶された値10は、表1に従って、角度4、オフセット0を有するエッジを指す。マッピングリストの第2のエントリに格納された5という値は、表1に従って、角度2、オフセット3を有するエッジを指す。
【0313】
[0319] 処理回路は、マッピングリスト中で(例えば、それに基づいて)複数の分割モードのうちの分割モードを決定してもよい(1206)。一例として、処理回路は、(例えば、ビデオエンコーダ200によってシグナリングされた情報に基づいて)マッピングリストへのインデックス値を受信し得る。いくつかの例では、処理回路は、インデックス値を示す情報を固定長バイナリ復号するか、インデックス値を示す情報を切捨てバイナリ復号するか、インデックス値を示す情報をゴロム-ライス復号するか、又はインデックス値を示す情報の1つ又は複数のビンをコンテキストベース適応コーディング(CABAC)復号し得る。
【0314】
[0320] 例えば、いくつかの例では、処理回路は、インデックスを示す情報のすべてのビンを、CABAC復号し得る。いくつかの例では、処理回路は、インデックスを示す情報のビンのうちのいくつかをCABAC復号し得るが、他のビンはバイパス復号され得る。いくつかの例では、先行ビンはCABAC復号され得るが、後のビンはバイパス復号され得る。
【0315】
[0321] 処理回路は、マッピングリストへのインデックス値に基づいて、分割モードを判定してもよい。例えば、上記の例を続けて、マッピングリストへのインデックスがインデックス0であると仮定する。この例では、処理回路は、分割モード値が分割モード10であることを決定し得る。処理回路は、分割モード10を表1へのインデックスとして使用し、表1に従って、現在のブロック1000を区分するためのエッジが角度4、オフセット0であると決定し得る。
【0316】
[0322] 処理回路は、分割モード(例えば、決定された分割モード)に基づいて、ビデオデータの現在のブロック1000を再構築することができる(1208)。例えば、処理回路は、決定分割モードによって定義されたエッジに従って、現在のブロック1000を区分し得る。例えば、処理回路は、現在のブロック1000を第1の区分1002Aと第2の区分1002Bとに区分し得る。
【0317】
[0323] 処理回路は、決定された分割モードによって定義される現在のブロック1000の第1の区分1002Aのための予測値の、第1のセットを決定してもよい。例えば、予測値の第1のセットは、第1の区分1002Aと同じ方向の、エッジ1008に対する第1の参照ブロック1010A中の値であり得る。
【0318】
[0324] 処理回路は、決定された分割モードによって定義される現在のブロック1000の第2の区分1002Bのための予測値の、第2のセットを決定し得る。例えば、予測値の第2のセットは、第2の区分1002Bと同じ方向の、エッジ1008に対する第2の参照ブロック1010B中の値であり得る。
【0319】
[0325] 処理回路はまた、現在のブロック1000の残差値を決定し得る。例えば、処理回路は、残差値を示す情報を受信することができ、残差値は、予測ブロックと現在のブロック1000との間の差分を示す。
【0320】
[0326] 処理回路は、予測値の第1のセット、予測値の第2のセット、及び残差値に基づいて、現在のブロック1000を再構築することができる。例えば、処理回路は、予測値の第1のセットからの1つ又は複数の予測値と予測値の第2のセットからの1つ又は複数の予測値とを、場合によってはブレンディングすることを含めて、予測値の第1のセット及び予測値の第2のセットに基づいて予測ブロックを生成することができる。処理回路は、現在のブロックを再構築するために、予測ブロック及び残差値を加算し得る。
【0321】
[0327] 図13は、本開示で説明される例示的な技法による符号化の例示的な方法を示すフローチャートである。例示的な技法はメモリに関して説明され、その例は、メモリ106、ビデオデータメモリ230、復号ピクチャバッファ218、又はビデオエンコーダ200によってアクセス可能な他のメモリを含む。例示的な技法はまた、処理回路に関して説明され、その例は、ビデオエンコーダ200、又はモード選択ユニット202、動き推定ユニット222、動き補償ユニット224、もしくはビデオエンコーダ200の何らかの他のユニットなど、ビデオエンコーダ200のユニットを含む。
【0322】
[0328] 処理回路は、幾何学的区分モードが現在のブロック1000に対して有効になっていると決定するように構成され得る(1300)。例えば、処理回路は、異なるコーディングモードを使用して現在のブロック1000を符号化することを試み、幾何学的区分モードが効率的なコーディングを提供するコーディングモードであると決定し得る。幾何学的区分モードの例は、GEOモード、GEO+MMVDモード、及びGEO+TMモードを含む。GEOという用語は、GPM(幾何学的区分モード)と互換的に使用される。
【0323】
[0329] 複数の分割モードのうちの少なくとも2つ(例えば、分割モードのサブセット又は全て)の中の各分割モードについて、処理回路は、それぞれの分割モードに関連付けられたそれぞれのコストを決定し(1302)、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、分割モードを示す値を有するマッピングリストを構築してもよい(1304)。例えば、処理回路は、図12において上記で説明されたものと同様の、ただしビデオエンコーダ200の観点からの動作を実行し得る。例えば、処理回路は、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築し、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられる。このようにして、ビデオエンコーダ200によって構築されたマッピングリストと、ビデオデコーダ300によって構築されたマッピングリストとは同じである。
【0324】
[0330] 処理回路は、複数の分割モードのうち、マッピングリストに含まれる分割モードを決定してもよい(1306)。例えば、処理回路は、所望のコーディング効率を提供する特定の分割モードを決定し、マッピングリストにおける特定の分割モードの位置を決定してもよい。マッピングリスト中の特定の分割モードの位置に基づいて、処理回路は、マッピングリストのためのインデックスを判定してもよい。
【0325】
[0331] 処理回路は、インデックスを分割モード(例えば、決定された分割モード)のためのマッピングリストにシグナリングしてもよい(1308)。例えば、処理回路は、インデックスを示す情報を固定長バイナリ符号化するか、インデックスを示す情報を切捨てバイナリ符号化するか、インデックスを示す情報をゴロム-ライス符号化するか、又はインデックスを示す情報の1つ又は複数のビンをコンテキストベース適応コーディング(CABAC)符号化することができる。
【0326】
[0332] 処理回路はまた、分割モードに基づいて生成された予測ブロックと現在のブロック1000との間の残差値を示す情報を、シグナリングすることもできる。マッピングリストへのインデックスに基づいて、ビデオデコーダ300は、予測ブロックを生成し、現在のブロック1000を再構築するために予測ブロックを残差値に追加し得る。
【0327】
[0333] 図12及び図13の例は、ビデオデータを符号化又は復号する方法と見なされ得る。例えば、ビデオエンコーダ200及びビデオデコーダ300は、幾何学的区分モードがビデオデータの現在のブロックに対して有効になっていると決定し得る(図13の1300、図12の1200)。分割モードのうちの少なくとも1つの中の各分割モードについて、ビデオエンコーダ200及びビデオデコーダ300は、それぞれの分割モードに関連付けられたそれぞれのコストを決定し得る(図13の1302、図12の1202)。ビデオエンコーダ200及びビデオデコーダ300は、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、分割モードを示す値を有するマッピングリストを構築することができる(図13の1304、図12の1204)。ビデオエンコーダ200及びビデオデコーダ300は、マッピングリストに含まれる分割モードを決定し得る(図13の1306、及び図12の1206)。
【0328】
[0334] 1つ又は複数の例では、ビデオエンコーダ200及びビデオデコーダ300は両方とも、分割モードに基づいて現在のブロックを再構築するように構成され得る。例えば、ビデオデコーダ300は、表示のために現在のブロックを再構築し得る。ビデオエンコーダ200はまた、逆量子化ユニット210、逆変換処理ユニット212、及び再構築ユニット214のフィードバックループの一部として現在のブロックを再構築し得る。このようにして、図12及び図13は、ビデオデータを符号化又は復号する方法を示す。ビデオエンコーダ200はまた、分割モードを示すインデックス(例えば、マッピングリストへのインデックス)をシグナリングするように構成され得る。
【0329】
[0335] 図14は、参照ピクチャの再サンプリングでビデオデータを復号する例示的な方法を示すフローチャートである。図14の例では、ビデオデコーダ300の処理回路は、幾何学的区分モードがピクチャのブロックに対して有効になっていると決定することができる(1400)。幾何学的区分モードの例は、GEOモード、GEO+MMVDモード、及びGEO+TMモードを含む。GEOという用語は、GPM(幾何学的区分モード)と互換的に使用される。
【0330】
[0336] 処理回路は、ブロックに対する参照ピクチャ(複数可)のサイズ(複数可)を決定してもよい(1402)。例えば、幾何学的区分モードでは、2つの区分があり得るが、2つの区分の各々について、参照ピクチャ中の参照ブロックを指す動きベクトルがあり得る。したがって、2つの参照ピクチャ、すなわち、2つの区分のうちの第1の区分のための第1の参照ピクチャと、2つの区分のうちの第2の区分のための第2の参照ピクチャとがあり得る。
【0331】
[0337] 第1の参照ピクチャ及び第2の参照ピクチャに関連付けられたサイズがあり得る。一例として、サイズは、参照ピクチャ中のサンプルの数を指すことがある。参照ピクチャ中のサンプルの数は、ルーマ値もクロマ値も有さないサンプル(例えば、ブランクサンプル又はブラックサンプル)を含み得る。例えば、参照ピクチャ(複数可)のサイズは、参照ピクチャ再サンプリング(RPR)に基づき得る。第1の参照ピクチャ及び第2の参照ピクチャは、復号されているブロックを含むピクチャよりも大きい、小さい、又は同じサイズであり得る。
【0332】
[0338] 処理回路は、ピクチャのサイズが参照ピクチャ(複数可)のサイズと同一であるかどうかを判定してもよい(1404)。ピクチャのサイズが参照ピクチャ(複数可)のサイズと同じである場合(1404の「はい」)、処理回路は、分割モード並べ替え処理を実行してもよい(1406)。分割モード並べ替えプロセスの例は、図11及び図12で説明されるマッピングリストを構築するための例示的な技法など、本開示で説明されるように、ビデオデコーダ300がそれぞれの分割モードのそれぞれのコストに基づいてマッピングリストを構築する、本開示で説明される例示的な技法を含む。
【0333】
[0339] ピクチャのサイズが少なくとも1つの参照ピクチャのサイズと同じでない場合(1404で「いいえ」)、処理回路は、分割モード並べ替えプロセスをバイパスすることができる(1408)。例えば、それぞれの分割モードのそれぞれのコストに基づいてマッピングリストを構築するのではなく、処理回路は、分割モードのデフォルトの順序付けを利用してもよい。すなわち、分割モードのためのインデックスの並べ替えはなくてもよく、マッピングリストはデフォルトの順序付けであってもよい。デフォルトの順序付けは、GEOモード、GEO+MMVDモード、及びGEO+TMモードのすべての候補についてのデフォルト順序(例えば、より小さい分割モードインデックスから大きい分割モードインデックスへ)であり得る。
【0334】
[0340] このようにして、(例えば、参照ピクチャ再サンプリング(RPR:reference picture resampling)などにおいて)参照ピクチャが現在のピクチャと同じサイズを有するか、又は異なるサイズを有するかに基づいて、分割モードの並べ替えのための制限があり得る。例えば、図14の例によれば、処理回路は、幾何学的区分モードが第1のピクチャの第1のブロックに対して有効になっていると決定し、参照ピクチャ(複数可)のサイズが第1のピクチャのサイズと同じであると決定し得る。この例では、処理回路は、(例えば、図11及び図12の例におけるような、並びに本開示全体にわたる)分割モード並べ替えプロセスを実行し得る。
【0335】
[0341] 図14の例によれば、処理回路は、幾何学的区分モードが第2のピクチャの第2のブロックに対して有効になっていると決定し、少なくとも1つの参照ピクチャのサイズが第2のピクチャのサイズと異なると決定することができる(例えば、RPRにおいて)。この例では、処理回路は、少なくとも1つの参照ピクチャのサイズが第2のピクチャのサイズと異なるという決定に基づいて、分割モード並べ替えプロセスをバイパスすることができる。
【0336】
[0342] 本開示は、一緒に又は別々に実施され得るいくつかの例示的な技法について説明する。
【0337】
[0343] 条項1.ビデオデータを復号する方法であって、メモリからマッピングテーブルにアクセスすることであって、2つ以上の幾何学的区分モード(GEO)分割モードが、マッピングテーブル中で同じインデックス値を有するように一緒にグループ化され、GEO分割モードの数がMに等しく、2つ以上のGEO分割モードの各グループ中の分割モードの数がKに等しく、KがMよりも小さい、ことと、マッピングテーブルから分割モードを決定することと、決定された分割モードに基づいてビデオデータの現在のブロックを再構築することと、を含む方法。
【0338】
[0344] 条項2.2つ以上のGEOモードは、同じオフセット指数及び互いにほぼ垂直な角度を有する2つ以上のGEO分割モードに基づいて、一緒にグループ化される、条項1に記載の方法。
【0339】
[0345] 条項3.分割モードを決定することは、0からM/(K-1)の範囲内のグループインデックス値を固定長復号することと、グループインデックス値に基づいて、分割モードを決定することと、を含む、条項1に記載の方法。
【0340】
[0346] 条項4.分割モードを決定することは、除数Dを用いてグループインデックス値をゴロム-ライス復号することを含み、グループインデックス値は、0からM/(K-1)の範囲内にあり、Dが、1からM/Kの範囲内にある、条項1に記載の方法。
【0341】
[0347] 条項5.2つ以上のGEO分割モードのグループは、K個の分割モードを含み、グループ内のK個の分割モードの各々は、それぞれのサブモードインデックス値を割り当てられる、条項1~4のいずれかに記載の方法。
【0342】
[0348] 条項6.分割モードを決定することは、グループ内のK個の分割モードのうちの1つを識別するために、固定長バイナリコーディング又はゴロム-ライスコーディングを使用して符号化されるサブモードインデックスを構文解析することと、K個の分割モードのうちの識別された1つに基づいて、分割モードを決定することと、含む、条項5に記載の方法。
【0343】
[0349] 条項7.分割モードを決定することは、グループ内のK個の分割モードのうちの1つを識別するために、テンプレートマッチング(TM)コストに基づいて、グループ内のK個の分割モードのうちの1つの分割モードのサブモードインデックス値を決定することと、K個の分割モードのうちの識別された1つに基づいて、分割モードを決定することと、を含む、条項5に記載の方法。
【0344】
[0350] 条項8.グループ内のK個の分割モードのそれぞれに関連付けられたテンプレートマッチング(TM)コストに基づいて、グループ内のK個の分割モードを順序付けることを更に含む、条項5に記載の方法。
【0345】
[0351] 条項9.決定された分割モードに基づいて、現在のブロックを再構築することは、決定された分割モードによって定義される現在のブロックの第1の区分のための予測値の第1のセットを決定することと、決定された分割モードによって定義される、現在のブロックの第2の区分のための予測値の第2のセットを決定することと、現在のブロックのための残差値を決定することと、予測値の第1のセット、予測値の第2のセット、及び残差値に基づいて、現在のブロックを再構築することと、を含む、条項1~8のいずれかに記載の方法。
【0346】
[0352] 条項10.ビデオデータを符号化する方法であって、メモリからマッピングテーブルにアクセスすることであって、2つ以上の幾何学的区分モード(GEO)分割モードが、マッピングテーブル中で同じインデックス値を有するように一緒にグループ化され、GEO分割モードの数がMに等しく、2つ以上のGEO分割モードの各グループ中の分割モードの数がKに等しく、KがMより小さい、ことと、マッピングテーブルから分割モードを決定することと、ビデオデータの現在のブロックを復号するための分割モードを示すインデックスを、マッピングテーブルにシグナリングすることと、を含む方法。
【0347】
[0353] 条項11.2つ以上のGEOモードは、同じオフセット指数及び互いにほぼ垂直な角度を有する2つ以上のGEO分割モードに基づいてグループ化される、条項10に記載の方法。
【0348】
[0354] 条項12.インデックスをシグナリングすることは、0からM/(K-1)の範囲内で、グループを示すグループインデックス値を固定長符号化することを含む、条項10に記載の方法。
【0349】
[0355] 条項13.インデックスをシグナリングすることは、グループを示すグループインデックス値を除数Dでゴロム-ライス符号化することを含み、グループインデックス値は、0からM/(K-1)の範囲内にあり、Dは1からM/Kの範囲内にある、条項10に記載の方法。
【0350】
[0356] 条項14.2つ以上のGEO分割モードのグループは、K個の分割モードを含み、グループ内のK個の分割モードの各々は、それぞれのサブモードインデックス値を割り当てられる、条項10~13のいずれかに記載の方法。
【0351】
[0357] 条項15.グループ中のK個の分割モードのうちの1つを識別するために、固定長バイナリコーディング又はゴロム-ライスコーディングを使用して符号化されるサブモードインデックスをシグナリングすることを更に備える、条項14に記載の方法。
【0352】
[0358] 条項16.グループ内のK個の分割モードのうちの1つを識別するために、テンプレートマッチング(TM)コストに基づいて、グループ内のK個の分割モードのうちの1つの分割モードのサブモードインデックス値を決定することを更に含む、条項14に記載の方法。
【0353】
[0359] 条項17.グループ内のK個の分割モードのそれぞれに関連付けられたテンプレートマッチング(TM)コストに基づいて、グループ内のK個の分割モードを順序付けることを更に含む、条項14に記載の方法。
【0354】
[0360] 条項18.ビデオデータを復号するためのデバイスであって、メモリと、メモリに結合され、条項1~9のいずれかに記載の方法を実行するように構成された処理回路と、を備える、デバイス。
【0355】
[0361] 条項19.復号されたビデオデータを表示するように構成されたディスプレイを更に備える、条項18に記載のデバイス。
【0356】
[0362] 条項20.デバイスが、カメラ、コンピュータ、モバイルデバイス、ブロードキャストレシーバデバイス、又はセットトップボックスのうちの1つ又は複数を備える、条項18及び19のいずれかに記載のデバイス。
【0357】
[0363] 条項21.実行されると、1つ又は複数のプロセッサに条項1~9のいずれかの方法を実行させる命令を記憶したコンピュータ可読記憶媒体。
【0358】
[0364] 条項22.ビデオデータを復号するためのデバイスであって、条項1~9のいずれかに記載の方法を実行するための手段を備えるデバイス。
【0359】
[0365] 条項23.ビデオデータを符号化するためのデバイスであって、メモリと、条項10~17のいずれかに記載の方法を実行するように構成された処理回路と、を備える、デバイス。
【0360】
[0366] 条項24.ビデオデータをキャプチャするように構成されたカメラを更に備える、条項23に記載のデバイス。
【0361】
[0367] 条項25.実行されると、1つ又は複数のプロセッサに条項10~17のいずれかに記載の方法を実行させる命令を記憶したコンピュータ可読記憶媒体。
【0362】
[0368] 条項26.ビデオデータを符号化するためのデバイスであって、条項10~17のいずれかに記載の方法を実行するための手段を備えるデバイス。
【0363】
[0369] 条項27.ビデオデータを復号する方法であって、幾何学的区分モード(GEO)の1つ又は複数の分割モードに関連付けられたコストを決定することであって、GEOのM個の分割モードがあることと、GEOの1つ又は複数の分割モードについてのそれぞれのコストに基づいて、分割モードを示すインデックス値を有するマッピングテーブルを構築することと、マッピングテーブルに基づいて分割モードを決定することと、決定された分割モードに基づいてビデオデータの現在のブロックを再構築することと、を含む方法。
【0364】
[0370] 条項28.コストは、テンプレートマッチング(TM)コストである、条項27に記載の方法。
【0365】
[0371] 条項29.マッピングテーブルを構築することは、1つ又は複数の分割モードを、それぞれのコストに基づいて昇順で順序付けることを含む、条項27及び28のいずれかに記載の方法。
【0366】
[0372] 条項30.マッピングテーブルを構築することは、最も低いコストを有するN個の分割モードを含めることを含む、条項27及び28のいずれかに記載の方法。
【0367】
[0373] 条項31.Nの値が、現在のブロックのサイズに基づく、条項30に記載の方法。
【0368】
[0374] 条項32.決定された分割モードに基づいて現在のブロックを再構築することは、決定された分割モードによって定義される現在のブロックの第1の区分のための予測値の、第1のセットを決定することと、決定された分割モードによって定義される現在のブロックの第2の区分のための予測値の、第2のセットを決定することと、現在のブロックの残差値を決定することと、予測値の第1のセット、予測値の第2のセット、及び残差値に基づいて、現在のブロックを再構築することと、を含む、条項27~31のいずれかに記載の方法。
【0369】
[0375] 条項33.ビデオデータを符号化する方法であって、幾何学的区分モード(GEO)の1つ又は複数の分割モードに関連付けられたコストを決定することであって、GEOのM個の分割モードがあることと、GEOの1つ又は複数の分割モードについてのそれぞれのコストに基づいて、分割モードを示すインデックス値を有するマッピングテーブルを構築することと、マッピングテーブルに基づいて、分割モードを決定することと、ビデオデータの現在のブロックを復号するための分割モードを示すインデックスを、マッピングテーブルにシグナリングすることと、を含む方法。
【0370】
[0376] 条項34.コストは、テンプレートマッチング(TM)コストである、条項33に記載の方法。
【0371】
[0377] 条項35.マッピングテーブルを構築することは、1つ又は複数の分割モードを、それぞれのコストに基づいて昇順で順序付けることを含む、条項33及び34のいずれかに記載の方法。
【0372】
[0378] 条項36.マッピングテーブルを構築することは、最も低いコストを有するN個の分割モードを含めることを含む、条項33及び34のいずれかに記載の方法。
【0373】
[0379] 条項37.Nの値が、現在のブロックのサイズに基づく、条項36に記載の方法。
【0374】
[0380] 条項38.ビデオデータを復号するためのデバイスであって、メモリと、メモリに結合され、条項27~32のいずれかに記載の方法を実行するように構成された処理回路と、を備える、デバイス。
【0375】
[0381] 条項39.復号されたビデオデータを表示するように構成されたディスプレイを更に備える、条項38に記載のデバイス。
【0376】
[0382] 条項40.デバイスが、カメラ、コンピュータ、モバイルデバイス、ブロードキャストレシーバデバイス、又はセットトップボックスのうちの1つ又は複数を備える、条項38及び39のいずれかに記載のデバイス。
【0377】
[0383] 条項41.実行されると、1つ又は複数のプロセッサに条項27~32のいずれかに記載の方法を実行させる命令を記憶したコンピュータ可読記憶媒体。
【0378】
[0384] 条項42.ビデオデータを復号するためのデバイスであって、条項27~32のいずれかに記載の方法を実行するための手段を備えるデバイス。
【0379】
[0385] 条項43.ビデオデータを符号化するためのデバイスであって、メモリと、条項33~37のいずれかに記載の方法を実行するように構成された処理回路と、を備える、デバイス。
【0380】
[0386] 条項44.ビデオデータをキャプチャするように構成されたカメラを更に備える、条項43に記載のデバイス。
【0381】
[0387] 条項45.実行されると、1つ又は複数のプロセッサに条項33~37のいずれかに記載の方法を実行させる命令を記憶したコンピュータ可読記憶媒体。
【0382】
[0388] 条項46.ビデオデータを符号化するためのデバイスであって、条項33~37のいずれかに記載の方法を実行するための手段を備えるデバイス。
【0383】
[0389] 条項1A.ビデオデータを符号化又は復号する方法であって、区分するためのエッジを各々が定義する複数の分割モードを含む幾何学的区分モードが、ビデオデータの現在のブロックに対して有効になっていると決定することと、複数の分割モードのうちの少なくとも2つの中の各分割モードについて、それぞれの分割モードに関連付けられたそれぞれのコストを決定することと、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築することであって、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられる、ことと、マッピングリスト中の複数の分割モードの中から分割モードを決定することと、分割モードに基づいて、ビデオデータの現在のブロックを再構築することと、を含む方法。
【0384】
[0390] 条項2A.それぞれの分割モードに関連付けられた、それぞれのコストを決定することが、それぞれの分割モードに基づいて、それぞれの参照テンプレートを決定することと、現在のブロックのための現在のテンプレートであって、現在のブロックの外部のサンプルを含む、現在のテンプレートを決定することと、それぞれの参照テンプレートと現在のテンプレートとに基づいて、それぞれの分割モードに関連付けられたそれぞれのコストを決定することと、を含む、条項1Aに記載の方法。
【0385】
[0391] 条項3A.それぞれの参照テンプレートを決定することが、現在のブロックの第1の区分の第1の動きベクトルによって識別された第1の参照ブロックに基づいて、第1の参照テンプレートを決定することと、現在のブロックの第2の区分の第2の動きベクトルによって識別された第2の参照ブロックに基づいて、第2の参照テンプレートを決定することと、それぞれの参照テンプレートを生成するために、それぞれの分割モードに基づいて、第1の参照テンプレートからのサンプルと、第2の参照テンプレートからのサンプルとを組み合わせることと、を含む、条項2Aに記載の方法。
【0386】
[0392] 条項4A.第1の参照テンプレートが、第1の参照ブロックの上のサンプルの第1の部分と、第1の参照ブロックの左のサンプルの第2の部分とを含み、第2の参照テンプレートが、第2の参照ブロックの上のサンプルの第1の部分と、第2の参照ブロックの左のサンプルの第2の部分とを含む、条項3Aに記載の方法。
【0387】
[0393] 条項5A.それぞれの参照テンプレートを生成するために、それぞれの分割モードに基づいて、第1の参照テンプレートからのサンプルと、第2の参照テンプレートからのサンプルとを組み合わせることが、それぞれの分割モードを第1の参照ブロックに適用することと、第1の参照テンプレート中のサンプルの第1のセット及び第1の参照テンプレート中のサンプルの第2のセットを生成するために、適用されたそれぞれの分割モードを、第1の参照テンプレートのサンプルに拡張することと、適用されたそれぞれの分割モードの、第1の参照テンプレートのサンプルへの拡張に基づいて、第1の参照テンプレート中のサンプルの第1のセットにアクセスすることと、それぞれの分割モードを、第2の参照ブロックに適用することと、第2の参照テンプレート中のサンプルの第3のセット及び第2の参照テンプレート中のサンプルの第4のセットを生成するために、適用されたそれぞれの分割モードを、第2の参照テンプレートのサンプルに拡張することと、適用されたそれぞれの分割モードの、第2の参照テンプレートのサンプルへの拡張に基づいて、第2の参照テンプレート中のサンプルの第3のセットにアクセスすることと、それぞれの参照テンプレートを生成するために、サンプルの第1のセットと、サンプルの第3のセットとを組み合わせることと、を含む、条項3A及び4Aのいずれかに記載の方法。
【0388】
[0394] 条項6A.それぞれの参照テンプレートを生成するために、サンプルの第1のセットと、サンプルの第3のセットとを組み合わせることが、サンプルの第1のセット中の1つ又は複数のサンプルを、サンプルの第4のセット中の1つ又は複数のサンプルとブレンディングすることと、サンプルの第3のセット中の1つ又は複数のサンプルと、サンプルの第2のセット中の1つ又は複数のサンプルとをブレンディングすることと、ブレンディングに基づいて、サンプルの第1のセットと、サンプルの第3のセットとを組み合わせることと、を含む、条項5Aに記載の方法。
【0389】
[0395] 条項7A.分割モードを示すインデックス値を受信することと、マッピングリストへのインデックス値に基づいて、分割モードを決定することと、を更に含む、条項1A~6Aのいずれかに記載の方法。
【0390】
[0396] 条項8A.インデックス値を受信することが、インデックス値を示す情報を固定長バイナリ復号することと、インデックスを示す情報を、切捨てバイナリ復号することと、インデックス値を示す情報を、ゴロム-ライス復号することと、インデックス値を示す情報の1つ又は複数のビンを、コンテキストベース適応コーディング(CABAC)復号することであって、1つ又は複数のビンのうちのいくつかがCABAC復号され、他がバイパス復号される例、及びすべてのビンがCABAC復号される例を含む、ことと、のうちの少なくとも1つを含む、条項7Aに記載の方法。
【0391】
[0397] 条項9A.マッピングリストを構築することが、それぞれのコストに基いて、インデックス値の昇順で複数の分割モードのうちの1つ又は複数の分割モードを順序付けることを含む、条項1A~8Aのいずれかに記載の方法。
【0392】
[0398] 条項10A.マッピングリストを構築することが、最も低いコストを有する複数の分割モードのうちのN個の分割モードを含めることを含む、条項1A~9Aのいずれかに記載の方法。
【0393】
[0399] 条項11A.現在のブロックが、第1のピクチャのものであり、現在のブロックが、第1のブロックであり、方法が、幾何学的区分モードがビデオデータの第2のピクチャの第2のブロックに対して有効になっていると決定することと、第2のブロックのための少なくとも1つの参照ピクチャのサイズが第2のピクチャのサイズとは異なると決定することと、少なくとも1つの参照ピクチャのサイズが第2のピクチャのサイズとは異なるという決定に基づいて、分割モード並べ替えプロセスをバイパスすることと、を更に含む、条項1A~10Aのいずれかに記載の方法。
【0394】
[0400] 条項12A.分割モードを示すインデックス値をシグナリングすることを更に含む、条項1A~11Aのいずれかに記載の方法。
【0395】
[0401] 条項13A.ビデオデータを符号化又は復号するためのデバイスであって、デバイスが、ビデオデータを記憶するように構成されたメモリと、メモリに結合された処理回路と、を備え、処理回路が、区分するためのエッジを各々が定義する複数の分割モードを含む幾何学的区分モードが、ビデオデータの現在のブロックに対して有効になっていると決定し、複数の分割モードのうちの少なくとも2つの中の各分割モードについて、それぞれの分割モードに関連付けられたそれぞれのコストを決定し、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築し、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられ、マッピングリスト中の複数の分割モードの中で分割モードを決定し、分割モードに基づいてビデオデータの現在のブロックを再構築する、ように構成されている、デバイス。
【0396】
[0402] 条項14A.それぞれの分割モードに関連付けられたそれぞれのコストを決定するために、処理回路が、それぞれの分割モードに基づいて、それぞれの参照テンプレートを決定し、現在のブロックのための現在のテンプレートであって、現在のブロックの外部のサンプルを含む、現在のテンプレートを決定し、それぞれの参照テンプレート及び現在のテンプレートに基づいて、それぞれの分割モードに関連付けられたそれぞれのコストを決定する、ように構成されている、条項13Aに記載のデバイス。
【0397】
[0403] 条項15A.それぞれの参照テンプレートを決定するために、処理回路が、現在のブロックの第1の区分の第1の動きベクトルによって識別された第1の参照ブロックに基づいて、第1の参照テンプレートを決定し、現在のブロックの第2の区分の第2の動きベクトルによって識別された第2の参照ブロックに基づいて、第2の参照テンプレートを決定し、それぞれの参照テンプレートを生成するために、それぞれの分割モードに基づいて、第1の参照テンプレートからのサンプルと、第2の参照テンプレートからのサンプルとを組み合わせるように構成されている、条項14Aに記載のデバイス。
【0398】
[0404] 条項16A.第1の参照テンプレートが、第1の参照ブロックの上のサンプルの第1の部分と、第1の参照ブロックの左のサンプルの第2の部分とを含み、第2の参照テンプレートが、第2の参照ブロックの上のサンプルの第1の部分と、第2の参照ブロックの左のサンプルの第2の部分とを含む、条項15Aに記載のデバイス。
【0399】
[0405] 条項17A.それぞれの参照テンプレートを生成するために、それぞれの分割モードに基づいて、第1の参照テンプレートからのサンプルと、第2の参照テンプレートからのサンプルとを組み合わせるために、処理回路が、それぞれの分割モードを、第1の参照ブロックに適用し、第1の参照テンプレート中のサンプルの第1のセット及び第1の参照テンプレート中のサンプルの第2のセットを生成するために、適用されたそれぞれの分割モードを第1の参照テンプレートのサンプルに拡張し、適用されたそれぞれの分割モードの、第1の参照テンプレートのサンプルへの拡張に基づいて、第1の参照テンプレート中のサンプルの第1のセットにアクセスし、それぞれの分割モードを、第2の参照ブロックに適用し、第2の参照テンプレート中のサンプルの第3のセット及び第2の参照テンプレート中のサンプルの第4のセットを生成するために、適用されたそれぞれの分割モードを第2の参照テンプレートのサンプルに拡張し、適用されたそれぞれの分割モードの、第2の参照テンプレートのサンプルへの拡張に基づいて、第2の参照テンプレート中のサンプルの第3のセットにアクセスし、それぞれの参照テンプレートを生成するために、サンプルの第1のセットと、サンプルの第3のセットとを組み合わせるように構成されている、条項15A及び16Aのいずれかに記載のデバイス。
【0400】
[0406] 条項18A.それぞれの参照テンプレートを生成するため、サンプルの第1のセットと、サンプルの第3のセットとを組み合わせるために、処理回路が、サンプルの第1のセット中の1つ又は複数のサンプルを、サンプルの第4のセット中の1つ又は複数のサンプルとブレンディングし、サンプルの第3のセット中の1つ又は複数のサンプルと、サンプルの第2のセット中の1つ又は複数のサンプルとをブレンディングし、ブレンディングに基づいて、サンプルの第1のセットと、サンプルの第3のセットとを組み合わせる、ように構成されている、条項17Aに記載のデバイス。
【0401】
[0407] 条項19A.処理回路は、分割モードを示すインデックス値を受信し、マッピングリストへのインデックス値に基づいて、分割モードを決定する、ように構成されている、条項13A~18Aのいずれかに記載のデバイス。
【0402】
[0408] 条項20A.インデックス値を受信するために、処理回路が、インデックス値を示す情報を、固定長バイナリ復号すること、インデックス値を示す情報を、切捨てバイナリ復号すること、インデックス値を示す情報を、ゴロム-ライス復号すること、又は、インデックス値を示す情報の1つ又は複数のビンを、コンテキストベース適応コーディング(CABAC)復号すること、のうちの少なくとも1つを行うように構成されている、条項19Aに記載のデバイス。
【0403】
[0409] 条項21A.マッピングリストを構築するために、処理回路が、それぞれのコストに基づいて、インデックス値の昇順で複数の分割モードのうちの1つ又は複数の分割モードを順序付けるように構成されている、条項13A~20Aのいずれかに記載のデバイス。
【0404】
[0410] 条項22A.マッピングリストを構築するために、処理回路が、最も低いコストを有する複数の分割モードのうちのN個の分割モードを含むように構成されている、条項13A~21Aのいずれかに記載のデバイス。
【0405】
[0411] 条項23A.現在のブロックが、第1のピクチャのものであり、かつ現在のブロックが、第1のブロックであり、処理回路が、幾何学的区分モードがビデオデータの第2のピクチャの第2のブロックに対して有効になっていると決定し、第2のブロックのための少なくとも1つの参照ピクチャのサイズが、第2のピクチャのサイズとは異なると決定し、少なくとも1つの参照ピクチャのサイズが第2のピクチャのサイズとは異なるという決定に基づいて、分割モード並べ替えプロセスをバイパスするように構成されている、条項13A~22Aのいずれかに記載のデバイス。
【0406】
[0412] 条項24A.処理回路が、分割モードを示すインデックス値をシグナリングするように構成されている、条項13A~23Aのいずれかに記載のデバイス。
【0407】
[0413] 条項25A.命令を記憶するコンピュータ可読記憶媒体であって、命令が、実行されたときに、ビデオデータを符号化又は復号するための1つ又は複数のプロセッサに、区分するためのエッジを各々が定義する複数の分割モードを含む幾何学的区分モードが、ビデオデータの現在のブロックに対して有効になっていると決定させ、複数の分割モードのうちの少なくとも2つの中の各分割モードについて、それぞれの分割モードに関連付けられたそれぞれのコストを決定させ、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築させ、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けされ、マッピングリスト中の複数の分割モードの中で分割モードを決定させ、分割モードに基づいてビデオデータの現在のブロックを再構築させる、コンピュータ可読記憶媒体。
【0408】
[0414] 条項26A.1つ又は複数のプロセッサに、それぞれの分割モードに関連付けられたそれぞれのコストを決定させる命令が、1つ又は複数のプロセッサに、それぞれの分割モードに基づいて、それぞれの参照テンプレートを決定させ、現在のブロックのための現在のテンプレートであって、現在のブロックの外部のサンプルを含む、現在のテンプレートを決定させ、それぞれの参照テンプレート及び現在のテンプレートに基づいて、それぞれの分割モードに関連付けられたそれぞれのコストを決定させる、命令を含む、条項25Aに記載のコンピュータ可読記憶媒体。
【0409】
[0415] 条項27A.1つ又は複数のプロセッサにそれぞれの参照テンプレートを決定させる命令が、1つ又は複数のプロセッサに、現在のブロックの第1の区分の第1の動きベクトルによって識別された第1の参照ブロックに基づいて、第1の参照テンプレートを決定させ、現在のブロックの第2の区分の第2の動きベクトルによって識別された第2の参照ブロックに基づいて、第2の参照テンプレートを決定させ、それぞれの参照テンプレートを生成するために、それぞれの分割モードに基づいて、第1の参照テンプレートからのサンプルと、第2の参照テンプレートからのサンプルとを組み合わせさせる、命令を含む、条項26Aに記載のコンピュータ可読記憶媒体。
【0410】
[0416] 条項28A.第1の参照テンプレートが、第1の参照ブロックの上のサンプルの第1の部分と、第1の参照ブロックの左のサンプルの第2の部分とを含み、第2の参照テンプレートが、第2の参照ブロックの上のサンプルの第1の部分と、第2の参照ブロックの左のサンプルの第2の部分とを含む、条項27Aに記載のコンピュータ可読記憶媒体。
【0411】
[0417] 条項29.1つ又は複数のプロセッサに、それぞれの参照テンプレートを生成するために、それぞれの分割モードに基づいて、第1の参照テンプレートからのサンプルと、第2の参照テンプレートからのサンプルとを組み合わせさせる命令が、1つ又は複数のプロセッサに、それぞれの分割モードを、第1の参照ブロックに適用させ、第1の参照テンプレート中のサンプルの第1のセット及び第1の参照テンプレート中のサンプルの第2のセットを生成するために、適用されたそれぞれの分割モードを第1の参照テンプレートのサンプルに拡張させ、適用されたそれぞれの分割モードの、第1の参照テンプレートのサンプルへの拡張に基づいて、第1の参照テンプレート中のサンプルの第1のセットにアクセスさせ、それぞれの分割モードを、第2の参照ブロックに適用させ、第2の参照テンプレート中のサンプルの第3のセット及び第2の参照テンプレート中のサンプルの第4のセットを生成するために、適用されたそれぞれの分割モードを第2の参照テンプレートのサンプルに拡張させ、適用されたそれぞれの分割モードの、第2の参照テンプレートのサンプルへの拡張に基づいて、第2の参照テンプレート中のサンプルの第3のセットにアクセスさせ、それぞれの参照テンプレートを生成するために、サンプルの第1のセットと、サンプルの第3のセットとを組み合わせさせる、命令を含む、条項27A及び28Aのいずれかに記載のコンピュータ可読記憶媒体。
【0412】
[0418] 条項30A.1つ又は複数のプロセッサに、それぞれの参照テンプレートを生成するために、サンプルの第1のセットと、サンプルの第3のセットとを組み合わせさせる命令が、1つ又は複数のプロセッサに、サンプルの第1のセット中の1つ又は複数のサンプルを、サンプルの第4のセット中の1つ又は複数のサンプルとブレンディングさせ、サンプルの第3のセット中の1つ又は複数のサンプルとサンプルの第2のセット中の1つ又は複数のサンプルとをブレンディングさせ、ブレンディングに基づいて、サンプルの第1のセットと、サンプルの第3のセットとを組み合わせさせる、命令を含む、条項29Aに記載のコンピュータ可読記憶媒体。
【0413】
[0419] 条項31A.命令が、1つ又は複数のプロセッサに、分割モードを示すインデックス値を受信させ、マッピングリストへのインデックス値に基づいて、分割モードを決定させる命令を更に含む、条項25A~30Aのいずれかに記載のコンピュータ可読記憶媒体。
【0414】
[0420] 条項32A.1つ又は複数のプロセッサにインデックス値を受信させる命令が、1つ又は複数のプロセッサに、インデックス値を示す情報を、固定長バイナリ復号させること、インデックス値を示す情報を、切捨てバイナリ復号させること、インデックス値を示す情報を、ゴロム-ライス復号させること、又は、インデックス値を示す情報の1つ又は複数のビンを、コンテキストベース適応コーディング(CABAC)復号させること、のうちの少なくとも1つを行わせる命令を含む、条項25A~31Aのいずれかに記載のコンピュータ可読記憶媒体。
【0415】
[0421] 条項33A.1つ又は複数のプロセッサにマッピングリストを構築させる命令が、1つ又は複数のプロセッサに、それぞれのコストに基づいて、インデックス値の昇順で複数の分割モードのうちの1つ又は複数の分割モードを順序付けさせる命令を含む、条項25A~32Aのいずれか1つに記載のコンピュータ可読記憶媒体。
【0416】
[0422] 条項34A.1つ又は複数のプロセッサにマッピングリストを構築させる命令が、1つ又は複数のプロセッサに、最も低いコストを有する複数の分割モードのうちのN個の分割モードを含ませる命令を含む、条項25A~33Aのいずれかに記載のコンピュータ可読記憶媒体。
【0417】
[0423] 条項35A.現在のブロックが第1のピクチャのものであり、かつ現在のブロックが、第1のブロックであり、命令が、1つ又は複数のプロセッサに、幾何学的区分モードがビデオデータの第2のピクチャの第2のブロックに対して有効になっていると決定させ、第2のブロックのための少なくとも1つの参照ピクチャのサイズが、第2のピクチャのサイズとは異なると決定させ、少なくとも1つの参照ピクチャのサイズが第2のピクチャのサイズとは異なるという決定に基づいて、分割モード並べ替えプロセスをバイパスさせる、命令を更に含む、条項25A~34Aのいずれかに記載のコンピュータ可読記憶媒体。
【0418】
[0424] 条項36A.命令が、1つ又は複数のプロセッサに、分割モードを示すインデックス値をシグナリングさせる命令を更に含む、条項25A~35Aのいずれかに記載のコンピュータ可読記憶媒体。
【0419】
[0425] 条項37A.ビデオデータを符号化又は復号するためのデバイスであって、区分するためのエッジを各々が定義する複数の分割モードを含む幾何学的区分モードが、ビデオデータの現在のブロックに対して有効になっていると決定するための手段と、複数の分割モードのうちの少なくとも2つの中の各分割モードについて、それぞれの分割モードに関連付けられたそれぞれのコストを決定するための手段と、それぞれの分割モードに関連付けられたそれぞれのコストに基づいて、それぞれの分割モードを示す値にそれぞれ関連付けられたインデックス値を含むマッピングリストを構築するための手段であって、マッピングリスト中のより低いインデックス値は、マッピングリスト中のより高いインデックス値を有する第2の分割モードよりも低いコストを有する第1の分割モードに関連付けられる、手段と、マッピングリスト中の複数の分割モードの中から分割モードを決定するための手段と、分割モードに基づいて、ビデオデータの現在のブロックを再構築するための手段と、を備えるデバイス。
【0420】
[0426] 条項38A.それぞれの分割モードに関連付けられた、それぞれのコストを決定するための手段が、それぞれの分割モードに基づいて、それぞれの参照テンプレートを決定するための手段と、現在のブロックのための現在のテンプレートであって、現在のブロックの外部のサンプルを含む、現在のテンプレートを決定するための手段と、それぞれの参照テンプレート及び現在のテンプレートに基づいて、それぞれの分割モードに関連付けられたそれぞれのコストを決定するための手段と、を備える、条項37Aに記載のデバイス。
【0421】
[0427] 条項39A.それぞれの参照テンプレートを決定するための手段が、現在のブロックの第1の区分の第1の動きベクトルによって識別された第1の参照ブロックに基づいて、第1の参照テンプレートを決定するための手段と、現在のブロックの第2の区分の第2の動きベクトルによって識別された第2の参照ブロックに基づいて、第2の参照テンプレートを決定するための手段と、それぞれの参照テンプレートを生成するために、それぞれの分割モードに基づいて、第1の参照テンプレートからのサンプルと、第2の参照テンプレートからのサンプルとを組み合わせるための手段と、を備える、条項38Aに記載のデバイス。
【0422】
[0428] 条項40A.第1の参照テンプレートが、第1の参照ブロックの上のサンプルの第1の部分と、第1の参照ブロックの左のサンプルの第2の部分とを含み、第2の参照テンプレートが、第2の参照ブロックの上のサンプルの第1の部分と、第2の参照ブロックの左のサンプルの第2の部分とを含む、条項39Aに記載のデバイス。
【0423】
[0429] 条項41A.それぞれの参照テンプレートを生成するために、それぞれの分割モードに基づいて、第1の参照テンプレートからのサンプルと、第2の参照テンプレートからのサンプルとを組み合わせるための手段が、それぞれの分割モードを第1の参照ブロックに適用するための手段と、第1の参照テンプレート中のサンプルの第1のセット及び第1の参照テンプレート中のサンプルの第2のセットを生成するために、適用されたそれぞれの分割モードを、第1の参照テンプレートのサンプルに拡張するための手段と、適用されたそれぞれの分割モードの、第1の参照テンプレートのサンプルへの拡張に基づいて、第1の参照テンプレート中のサンプルの第1のセットにアクセスするための手段と、それぞれの分割モードを、第2の参照ブロックに適用するための手段と、第2の参照テンプレート中のサンプルの第3のセット及び第2の参照テンプレート中のサンプルの第4のセットを生成するために、適用されたそれぞれの分割モードを、第2の参照テンプレートのサンプルに拡張するための手段と、適用されたそれぞれの分割モードの、第2の参照テンプレートのサンプルへの拡張に基づいて、第2の参照テンプレート中のサンプルの第3のセットにアクセスするための手段と、それぞれの参照テンプレートを生成するために、サンプルの第1のセットと、サンプルの第3のセットとを組み合わせるための手段と、を備える、条項39A及び40Aのいずれかに記載のデバイス。
【0424】
[0430] 条項42A.それぞれの参照テンプレートを生成するために、サンプルの第1のセットと、サンプルの第3のセットとを組み合わせるための手段が、サンプルの第1のセット中の1つ又は複数のサンプルを、サンプルの第4のセット中の1つ又は複数のサンプルとブレンディングするための手段と、サンプルの第3のセット中の1つ又は複数のサンプルと、サンプルの第2のセット中の1つ又は複数のサンプルとをブレンディングするための手段と、ブレンディングに基づいて、サンプルの第1のセットと、サンプルの第3のセットとを組み合わせるための手段と、を備える、条項41Aに記載のデバイス。
【0425】
[0431] 条項43A.分割モードを示すインデックス値を受信するための手段と、マッピングリストへのインデックス値に基づいて、分割モードを決定するための手段と、を更に備える、条項37A~42Aのいずれかに記載のデバイス。
【0426】
[0432] 条項44A.インデックス値を受信するための手段が、インデックス値を示す情報を固定長バイナリ復号するための手段、インデックス値を示す情報を、切捨てバイナリ復号するための手段、インデックス値を示す情報を、ゴロム-ライス復号するための手段、又はインデックス値を示す情報の1つ又は複数のビンを、コンテキストベース適応コーディング(CABAC)復号するための手段、のうちの少なくとも1つを備える、条項43Aに記載のデバイス。
【0427】
[0433] 条項45A.マッピングリストを構築するための手段が、それぞれのコストに基いて、インデックス値の昇順で複数の分割モードのうちの1つ又は複数の分割モードを順序付けるための手段を備える、条項37A~44Aのいずれかに記載のデバイス。
【0428】
[0434] 条項46A.マッピングリストを構築するための手段が、最も低いコストを有する複数の分割モードのうちのN個の分割モードを含めるための手段を備える、条項37A~45Aのいずれかに記載のデバイス。
【0429】
[0435] 条項47A.現在のブロックが、第1のピクチャのものであり、かつ現在のブロックが、第1のブロックであり、デバイスが、幾何学的区分モードがビデオデータの第2のピクチャの第2のブロックに対して有効になっていると決定するための手段と、第2のブロックのための少なくとも1つの参照ピクチャのサイズが第2のピクチャのサイズとは異なると決定するための手段と、少なくとも1つの参照ピクチャのサイズが第2のピクチャのサイズとは異なるという決定に基づいて、分割モード並べ替えプロセスをバイパスするための手段と、を更に備える、条項37A~46Aのいずれかに記載のデバイス。
【0430】
[0436] 条項48A.分割モードを示すインデックス値をシグナリングするための手段を更に備える、条項37A~47Aのいずれかに記載のデバイス。
【0431】
[0437] 例によって、本明細書において説明されている技法のうちのいずれかの行為又はイベントは、異なる順序で実施されることが可能であり、追加され、統合され、又は完全に除外されてもよい(例えば、説明されているすべての行為又はイベントが技法の実践にとって必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為又はイベントは、逐次的にではなく、例えば、マルチスレッド処理、割込み処理、又は複数のプロセッサを通じて、並行して実施されてもよい。
【0432】
[0438] 1つ又は複数の例では、記載の機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実装されてよい。ソフトウェアで実装されている場合、機能は、1つ又は複数の命令又はコードとして、コンピュータ可読媒体上に記憶されてもよく、又はコンピュータ可読媒体を介して送信されてもよく、ハードウェアベースの処理ユニットによって実行されてもよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に相当するコンピュータ可読記憶媒体、又は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このように、コンピュータ可読媒体は一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、又は(2)信号若しくは搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示に記載の技法の実装のための命令、コード、及び/又はデータ構造を取り出すために、1つ若しくは複数のコンピュータ又は1つ若しくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体とすることができる。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0433】
[0439] 限定ではなく例として、このようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気ストレージデバイス、フラッシュメモリ、又は、命令若しくはデータ構造の形態で所望のプログラムコードを記憶するために使用でき、コンピュータによってアクセス可能な任意の他の媒体を含むことができる。また、任意の接続がコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義の中に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的な媒体を含まず、代わりに非一時的で有形な記憶媒体を指すことを理解されたい。本明細書で使用されるディスク(disk)及びディスク(disc)は、コンパクトディスク(compact disc、CD)、レーザーディスク、光ディスク、デジタル多用途ディスク(digital versatile disc、DVD)、フロッピーディスク、及びブルーレイディスクを含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記のものの組み合わせもまた、コンピュータ可読媒体の範囲内に含まれるものとする。
【0434】
[0440] 命令は、1つ又は複数のDSP、汎用マイクロプロセッサ、ASIC、FPGA、又は他の均等な集積論理回路構成若しくは個別論理回路構成などの、1つ又は複数のプロセッサによって実行され得る。これに応じて、本明細書で使用される「プロセッサ」及び「処理回路構成」という用語は、上記の構造のいずれか、又は本明細書で説明される技法の実装に好適な任意の他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明されている機能性は、符号化及び復号のために構成された専用のハードウェアモジュール及び/若しくはソフトウェアモジュール内で提供されてもよく、又は複合コーデックの中に組み込まれてもよい。また、技法は、1つ若しくは複数の回路又は論理要素において完全に実装されてもよい。
【0435】
[0441] 本開示の技法は、ワイヤレスハンドセット、集積回路(integrated circuit、IC)、又はICのセット(例えば、チップセット)を含む、多種多様なデバイス又は装置において実装されてもよい。開示されている技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、又はユニットについて本開示で説明しているが、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明したように、様々なユニットは、コーデックハードウェアユニットの中で組み合わせられてよく、又は、好適なソフトウェア及び/若しくはファームウェアと併せて、上で説明したような1つ又は複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【0436】
[0442] 様々な例が説明されてきた。これら及び他の例は以下の特許請求の範囲内に含まれる。

図1
図2
図3
図4A
図4B
図5A
図5B
図6
図7
図8
図9
図10A
図10B
図10C
図10D
図11
図12
図13
図14
【国際調査報告】