(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-02-12
(54)【発明の名称】ビデオコーディングのためのブロックレベル参照ピクチャ適応
(51)【国際特許分類】
H04N 19/573 20140101AFI20250204BHJP
【FI】
H04N19/573
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024536276
(86)(22)【出願日】2022-12-21
(85)【翻訳文提出日】2024-06-17
(86)【国際出願番号】 US2022082146
(87)【国際公開番号】W WO2023133047
(87)【国際公開日】2023-07-13
(32)【優先日】2022-01-04
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-03-03
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-03-29
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-05-19
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-12-20
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】ファン、ハン
(72)【発明者】
【氏名】セレジン、バディム
(72)【発明者】
【氏名】カルチェビチ、マルタ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA12
5C159MA21
5C159MC11
5C159ME01
5C159NN10
5C159PP04
5C159RC11
5C159UA02
5C159UA05
(57)【要約】
ビデオデコーダは、スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成し、第1のブロックのための参照ピクチャの第1の順序付けを生成することは、インデックスを参照ピクチャに割り当て含み、適応参照ピクチャ再順序付けプロセスに基づいて、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成し、第1の順序付けは第2の順序付けとは異なり、第2のブロックのための参照ピクチャの第2の順序付けを生成することは、インデックスのうちの少なくともいくつかを第1の順序付けとは異なる参照ピクチャに割り当てることを含み、参照ピクチャの第1の順序付けを使用して第1のブロックを復号し、参照ピクチャの第2の順序付けを使用して第2のブロックを復号する、ように構成され得る。
【特許請求の範囲】
【請求項1】
ビデオデータの復号方法であって、
スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成することであって、前記第1のブロックのための前記参照ピクチャの前記第1の順序付けを生成することは、インデックスを前記参照ピクチャに割り当てることを含む、生成することと、
前記参照ピクチャの前記第1の順序付けを使用して前記第1のブロックを復号することと、
適応参照ピクチャ再順序付けプロセスに基づいて、前記スライスの第2のブロックのための前記参照ピクチャリスト中の前記参照ピクチャの第2の順序付けを生成することであって、前記第1の順序付けは前記第2の順序付けとは異なり、前記第2のブロックのための参照ピクチャの前記第2の順序付けを生成することは、前記インデックスのうちの少なくともいくつかを前記第1の順序付けとは異なる参照ピクチャに割り当てることを含む、生成することと、
前記参照ピクチャの前記第2の順序付けを使用して前記第2のブロックを復号することと、
前記第1のブロック及び前記第2のブロックの復号されたバージョンを含む復号されたビデオデータを出力することと、
を含む、方法。
【請求項2】
前記適応参照ピクチャ再順序付けプロセスは、テンプレートマッチングプロセスを含み、前記方法は、
前記参照ピクチャリスト中の少なくとも第1の参照ピクチャ及び第2の参照ピクチャのためのテンプレートマッチングコストを判定することと、
前記第1の参照ピクチャのためのテンプレートマッチングコストと前記第2の参照ピクチャのためのテンプレートマッチングコストとの比較に基づいて、前記スライスの前記第2のブロックのための前記参照ピクチャリスト中の前記参照ピクチャの前記第2の順序付けを生成することと、
を更に含む、請求項1に記載の方法。
【請求項3】
前記適応参照ピクチャ再順序付けプロセスは、バイラテラルマッチングプロセスを含む、請求項1に記載の方法。
【請求項4】
前記適応参照ピクチャ再順序付けプロセスは、前記参照ピクチャリスト中の第1のピクチャのピクチャ順序カウント(POC)を前記参照ピクチャリスト中の第2のピクチャのPOCと比較することを含む、請求項1に記載の方法。
【請求項5】
前記第1のブロック及び前記第2のブロックは、同じピクチャに属し、空間的に隣接するブロックである、請求項1に記載の方法。
【請求項6】
前記第2のブロックは双予測ブロックを含み、前記参照ピクチャリストは第1の参照ピクチャリストであり、前記方法は、
第2の参照ピクチャリストを維持することと、
前記第1の参照ピクチャリストと前記第2の参照ピクチャリストとを使用して前記第2のブロックを復号することと、
を更に含む、請求項1に記載の方法。
【請求項7】
前記参照ピクチャの前記第1の順序付けを使用して前記第1のブロックを復号することは、
前記参照ピクチャの前記第1の順序付けに基づいて、前記第1のブロックのための第1の参照ピクチャを判定することと、
前記第1の参照ピクチャに基づいて、前記第1のブロックをインター予測することと、を含み、
前記参照ピクチャの前記第2の順序付けを使用して前記第2のブロックを復号することは、
前記参照ピクチャの前記第2の順序付けに基づいて、前記第2のブロックのための第2の参照ピクチャを判定することと、
前記第2の参照ピクチャに基づいて、前記第2のブロックをインター予測することと、を含む、
請求項1に記載の方法。
【請求項8】
前記第2のブロックのための前記参照ピクチャリスト中の前記参照ピクチャの前記第2の順序付けを前記生成することに基づいて、動きベクトル差分のための符号予測を判定すること、
を更に含む、請求項1に記載の方法。
【請求項9】
動きベクトル予測子を識別する第1のシンタックス要素を受信することと、
動きベクトル差分を識別する第2のシンタックス要素を受信することと、
前記参照ピクチャリスト中の参照ピクチャのインデックスを識別する第3のシンタックス要素を受信することと、
前記参照ピクチャの前記インデックス及び前記第2の順序付けに基づいて、前記参照ピクチャリスト中の参照ピクチャを識別することと、
前記動きベクトル予測子と前記動きベクトル差分とに基づいて、前記参照ピクチャ中の予測ブロックを位置特定することと、
前記予測ブロックを使用して前記第2のブロックを復号することと、
を更に含む、請求項1に記載の方法。
【請求項10】
前記第2のブロックが高度動きベクトル予測子モードを使用して符号化されていると判定すること、
を更に含む、請求項1に記載の方法。
【請求項11】
前記復号方法は、ビデオ符号化プロセスの一部として実行される、請求項1に記載の方法。
【請求項12】
ビデオデータを復号するためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
回路機構において実装された1つ又は複数のプロセッサであって、
スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成し、前記第1のブロックのための前記参照ピクチャの前記第1の順序付けを生成することは、インデックスを前記参照ピクチャに割り当てることを含み、
適応参照ピクチャ再順序付けプロセスに基づいて、前記スライスの第2のブロックのための前記参照ピクチャリスト中の前記参照ピクチャの第2の順序付けを生成し、前記第1の順序付けは前記第2の順序付けとは異なり、前記第2のブロックのための参照ピクチャの前記第2の順序付けを生成することは、前記インデックスのうちの少なくともいくつかを前記第1の順序付けとは異なる参照ピクチャに割り当てることを含み、
前記参照ピクチャの前記第1の順序付けを使用して前記第1のブロックを復号し、
前記参照ピクチャの前記第2の順序付けを使用して前記第2のブロックを復号し、
前記第1のブロック及び前記第2のブロックの復号されたバージョンを含む復号されたビデオデータを出力する、ように構成されている、1つ又は複数のプロセッサと、
を備える、デバイス。
【請求項13】
前記適応参照ピクチャ再順序付けプロセスは、テンプレートマッチングプロセスを含み、前記1つ又は複数のプロセッサは、
前記参照ピクチャリスト中の少なくとも第1の参照ピクチャ及び第2の参照ピクチャのためのテンプレートマッチングコストを判定し、
前記第1の参照ピクチャのためのテンプレートマッチングコストと前記第2の参照ピクチャのためのテンプレートマッチングコストとの比較に基づいて、前記スライスの前記第2のブロックのための前記参照ピクチャリスト中の前記参照ピクチャの前記第2の順序付けを生成する、ように更に構成されている、請求項12に記載のデバイス。
【請求項14】
前記適応参照ピクチャ再順序付けプロセスは、バイラテラルマッチングプロセスを含む、請求項12に記載のデバイス。
【請求項15】
前記適応参照ピクチャ再順序付けプロセスは、前記参照ピクチャリスト中の第1のピクチャのピクチャ順序カウント(POC)を前記参照ピクチャリスト中の第2のピクチャのPOCと比較することを含む、請求項12に記載のデバイス。
【請求項16】
前記第1のブロック及び前記第2のブロックは、同じピクチャに属し、空間的に隣接するブロックである、請求項12に記載のデバイス。
【請求項17】
前記第2のブロックは双予測ブロックを含み、前記参照ピクチャリストは第1の参照ピクチャリストであり、前記1つ又は複数のプロセッサは、
第2の参照ピクチャリストを維持し、
前記第1の参照ピクチャリストと前記第2の参照ピクチャリストとを使用して前記第2のブロックを復号する、ように更に構成されている、請求項12に記載のデバイス。
【請求項18】
前記参照ピクチャの前記第1の順序付けを使用して前記第1のブロックを復号するために、前記1つ又は複数のプロセッサは、
前記参照ピクチャの前記第1の順序付けに基づいて、前記第1のブロックのための第1の参照ピクチャを判定し、
前記第1の参照ピクチャに基づいて、前記第1のブロックをインター予測する、ように更に構成されており、
前記参照ピクチャの前記第2の順序付けを使用して前記第2のブロックを復号するために、前記1つ又は複数のプロセッサは、
前記参照ピクチャの前記第2の順序付けに基づいて、前記第2のブロックのための第2の参照ピクチャを判定し、
前記第2の参照ピクチャに基づいて、前記第2のブロックをインター予測する、ように更に構成されている、請求項12に記載のデバイス。
【請求項19】
前記1つ又は複数のプロセッサは、
前記第2のブロックのための前記参照ピクチャリスト中の前記参照ピクチャの前記第2の順序付けを前記生成することに基づいて、動きベクトル差分のための符号予測を判定するように更に構成されている、請求項12に記載のデバイス。
【請求項20】
前記1つ又は複数のプロセッサは、
動きベクトル予測子を識別する第1のシンタックス要素を受信し、
動きベクトル差分を識別する第2のシンタックス要素を受信し、
前記参照ピクチャリスト中の参照ピクチャのインデックスを識別する第3のシンタックス要素を受信し、
前記参照ピクチャの前記インデックス及び前記第2の順序付けに基づいて、前記参照ピクチャリスト中の参照ピクチャを識別し、
前記動きベクトル予測子と前記動きベクトル差分とに基づいて、前記参照ピクチャ中の予測ブロックを位置特定し、
前記予測ブロックを使用して前記第2のブロックを復号する、ように更に構成されている、請求項12に記載のデバイス。
【請求項21】
前記1つ又は複数のプロセッサは、
前記第2のブロックが高度動きベクトル予測子モードを使用して符号化されていると判定するように更に構成されている、請求項12に記載のデバイス。
【請求項22】
前記デバイスは、符号化されたビデオデータを受信するように構成された受信機を更に備えるワイヤレス通信デバイスを備える、請求項12に記載のデバイス。
【請求項23】
前記ワイヤレス通信デバイスが電話ハンドセットを備え、前記受信機が、前記符号化されたビデオデータを含む信号をワイヤレス通信規格に従って復調するように構成されている、請求項22に記載のデバイス。
【請求項24】
復号されたビデオデータを表示するように構成されたディスプレイを更に備える、請求項12に記載のデバイス。
【請求項25】
前記デバイスは、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、又はセットトップボックスのうちの1つ又は複数を備える、請求項12に記載のデバイス。
【請求項26】
前記デバイスは、カメラを備える、請求項12に記載のデバイス。
【請求項27】
命令を記憶するコンピュータ可読記憶媒体であって、前記命令が、1つ又は複数のプロセッサによって実行されたとき、前記1つ又は複数のプロセッサに、
スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成させ、前記第1のブロックのための前記参照ピクチャの前記第1の順序付けを生成することは、インデックスを前記参照ピクチャに割り当てることを含み、
適応参照ピクチャ再順序付けプロセスに基づいて、前記スライスの第2のブロックのための前記参照ピクチャリスト中の前記参照ピクチャの第2の順序付けを生成させ、前記第1の順序付けは前記第2の順序付けとは異なり、前記第2のブロックのための参照ピクチャの前記第2の順序付けを生成することは、前記インデックスのうちの少なくともいくつかを前記第1の順序付けとは異なる参照ピクチャに割り当てることを含み、
前記参照ピクチャの前記第1の順序付けを使用して前記第1のブロックを復号させ、
前記参照ピクチャの前記第2の順序付けを使用して前記第2のブロックを復号させ、
前記第1のブロック及び前記第2のブロックの復号されたバージョンを含む復号されたビデオデータを出力させる、
コンピュータ可読記憶媒体。
【請求項28】
前記適応参照ピクチャ再順序付けプロセスは、テンプレートマッチングプロセスを含み、前記命令が、前記1つ又は複数のプロセッサに更に、
前記参照ピクチャリスト中の少なくとも第1の参照ピクチャ及び第2の参照ピクチャのためのテンプレートマッチングコストを判定させ、
前記第1の参照ピクチャのためのテンプレートマッチングコストと前記第2の参照ピクチャのためのテンプレートマッチングコストとの比較に基づいて、前記スライスの前記第2のブロックのための前記参照ピクチャリスト中の前記参照ピクチャの前記第2の順序付けを生成させる、請求項27に記載のコンピュータ可読記憶媒体。
【請求項29】
前記適応参照ピクチャ再順序付けプロセスは、バイラテラルマッチングプロセスを含む、請求項27に記載のコンピュータ可読記憶媒体。
【請求項30】
前記適応参照ピクチャ再順序付けプロセスは、前記参照ピクチャリスト中の第1のピクチャのピクチャ順序カウント(POC)を前記参照ピクチャリスト中の第2のピクチャのPOCと比較することを含む、請求項27に記載のコンピュータ可読記憶媒体。
【請求項31】
前記第1のブロック及び前記第2のブロックは、同じピクチャに属し、空間的に隣接するブロックである、請求項27に記載のコンピュータ可読記憶媒体。
【請求項32】
前記第2のブロックは双予測ブロックを含み、前記参照ピクチャリストは第1の参照ピクチャリストであり、前記命令が、前記1つ又は複数のプロセッサに更に、
第2の参照ピクチャリストを維持させ、
前記第1の参照ピクチャリストと前記第2の参照ピクチャリストとを使用して前記第2のブロックを復号させる、請求項27に記載のコンピュータ可読記憶媒体。
【請求項33】
前記参照ピクチャの前記第1の順序付けを使用して前記第1のブロックを復号するために、前記命令が、前記1つ又は複数のプロセッサに更に、
前記参照ピクチャの前記第1の順序付けに基づいて、前記第1のブロックのための第1の参照ピクチャを判定させ、
前記第1の参照ピクチャに基づいて、前記第1のブロックをインター予測させ、
前記参照ピクチャの前記第2の順序付けを使用して前記第2のブロックを復号するために、前記命令が、前記1つ又は複数のプロセッサに更に、
前記参照ピクチャの前記第2の順序付けに基づいて、前記第2のブロックのための第2の参照ピクチャを判定させ、
前記第2の参照ピクチャに基づいて、前記第2のブロックをインター予測させる、請求項27に記載のコンピュータ可読記憶媒体。
【請求項34】
前記命令が、前記1つ又は複数のプロセッサに更に、
前記第2のブロックのための前記参照ピクチャリスト中の前記参照ピクチャの前記第2の順序付けを前記生成することに基づいて、動きベクトル差分のための符号予測を判定させる、請求項27に記載のコンピュータ可読記憶媒体。
【請求項35】
前記命令が、前記1つ又は複数のプロセッサに更に、
動きベクトル予測子を識別する第1のシンタックス要素を受信させ、
動きベクトル差分を識別する第2のシンタックス要素を受信させ、
前記参照ピクチャリスト中の参照ピクチャのインデックスを識別する第3のシンタックス要素を受信させ、
前記参照ピクチャの前記インデックス及び前記第2の順序付けに基づいて、前記参照ピクチャリスト中の参照ピクチャを識別させ、
前記動きベクトル予測子と前記動きベクトル差分とに基づいて、前記参照ピクチャ中の予測ブロックを位置特定させ、
前記予測ブロックを使用して前記第2のブロックを復号させる、請求項27に記載のコンピュータ可読記憶媒体。
【請求項36】
前記命令が、前記1つ又は複数のプロセッサに更に、
前記第2のブロックが高度動きベクトル予測子モードを使用して符号化されていると判定させる、請求項27に記載のコンピュータ可読記憶媒体。
【請求項37】
ビデオデータを復号するための装置であって、
スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成するための手段であって、前記第1のブロックのための前記参照ピクチャの前記第1の順序付けを生成することは、インデックスを前記参照ピクチャに割り当てることを含む、生成するための手段と、
前記参照ピクチャの前記第1の順序付けを使用して前記第1のブロックを復号するための手段と、
適応参照ピクチャ再順序付けプロセスに基づいて、前記スライスの第2のブロックのための前記参照ピクチャリスト中の前記参照ピクチャの第2の順序付けを生成するための手段であって、前記第1の順序付けは前記第2の順序付けとは異なり、前記第2のブロックのための参照ピクチャの前記第2の順序付けを生成するための前記手段は、前記インデックスのうちの少なくともいくつかを前記第1の順序付けとは異なる参照ピクチャに割り当てるための手段を含む、生成するための手段と、
前記参照ピクチャの前記第2の順序付けを使用して前記第2のブロックを復号するための手段と、
前記第1のブロック及び前記第2のブロックの復号されたバージョンを含む復号されたビデオデータを出力するための手段と、
を備える、装置。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本出願は、2022年1月4日に出願された米国特許仮出願第63/266,389号、2022年3月3日に出願された米国特許仮出願第63/316,102号、2022年3月29日に出願された米国特許仮出願第63/324,926号、2022年5月19日に出願された米国特許仮出願第63/343,980号、及び2022年12月20日に出願された米国特許出願第18/068,809号に対する優先権を主張する。米国特許出願第18/068,809号は、米国特許仮出願第63/266,389号、米国特許仮出願第63/316,102号、米国特許仮出願第63/324,926号、及び米国特許仮出願第63/343,980号の利益を主張し、各々の全容は参照により本明細書に組み込まれる。
【0002】
[0002] 本開示は、ビデオ符号化及びビデオ復号に関する。
【背景技術】
【0003】
[0003] デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(personal digital assistants、PDAs)、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラー又は衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスの中に組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part10、アドバンストビデオコーディング(Advanced Video Coding、AVC)、ITU-T H.265/高効率ビデオコーディング(High Efficiency Video Coding、HEVC)、ITU-T H.266/バーサタイルビデオコーディング(Versatile Video Coding、VVC)によって定義された規格、及びそのような規格の拡張、並びにAlliance for Open Mediaによって開発されたAOMedia Video 1(AV1)などのプロプライエタリビデオコーデック/フォーマットに記載されているビデオコーディング技法などの、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、及び/又は記憶する場合がある。
【0004】
[0004] ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減又は除去するために、空間(ピクチャ内)予測及び/又は時間(ピクチャ間)予測を含む。ブロックベースのビデオコーディングの場合、ビデオスライス(例えば、ビデオピクチャ又はビデオピクチャの一部分)は、ビデオブロックに分割されてもよく、ビデオブロックは、コーディングツリーユニット(coding tree units、CTUs)、コーディングユニット(coding units、CUs)及び/又はコーディングノードと称されることもある。ピクチャのイントラコーディングされた(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコーディングされた(P又はB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測又は他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと称される場合があり、参照ピクチャは参照フレームと称される場合がある。
【発明の概要】
【0005】
[0005] 本開示の技法は、ビデオコーデックにおけるインター予測を対象とし、より詳細には、インターコーディングされたブロックのための参照ピクチャリストの参照ピクチャのシグナリング及び参照ピクチャリストの管理を対象とする。既存の技法を用いて、ビデオデコーダは、インター予測のための参照ピクチャリストを維持するために、ピクチャレベル又はスライスレベルなどにおいて高レベルシグナリングを使用する。しかしながら、これらの技法は、再順序付けなど、参照ピクチャリストへのブロックレベル適応を含まない。そのようなブロックレベル適応を可能にするために追加のシグナリングを含めることは、増加したシグナリングオーバーヘッドが参照ピクチャリスト適応によって達成されるコーディング利得を上回るので、望ましくないことがある。本開示は、シグナリングオーバーヘッドを増加させることなくブロックレベル参照ピクチャリスト適応を実行するための技法について説明する。具体的には、ビデオデコーダは、シグナリングオーバーヘッドを伴わずに参照ピクチャリスト中の参照ピクチャの新しい順序付けを生成するために、適応参照ピクチャ再順序付けプロセスを実行するように構成され得る。適応参照ピクチャリスト再順序付けプロセスを使用して参照ピクチャリスト中の参照ピクチャを再順序付けることによって、参照ピクチャリスト中のどの参照ピクチャがインター予測のために使用されるべきかをシグナリングするために必要とされるビットは、歪みを増加させることなく低減され得る。
【0006】
[0006] 本開示の一例によれば、ビデオデータの復号方法は、スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成することであって、第1のブロックのための参照ピクチャの第1の順序付けを生成することは、インデックスを参照ピクチャに割り当てることを含む、生成することと、参照ピクチャの第1の順序付けを使用して第1のブロックを復号することと、適応参照ピクチャ再順序付けプロセスに基づいて、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成することであって、第1の順序付けは第2の順序付けとは異なり、第2のブロックのための参照ピクチャの第2の順序付けを生成することは、インデックスのうちの少なくともいくつかを第1の順序付けとは異なる参照ピクチャに割り当てることを含む、生成することと、参照ピクチャの第2の順序付けを使用して第2のブロックを復号することと、第1のブロック及び第2のブロックの復号されたバージョンを含む復号されたビデオデータを出力することと、を含む。
【0007】
[0007] 本開示の一例によれば、ビデオデータを復号するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、回路機構において実装された1つ又は複数のプロセッサであって、スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成し、第1のブロックのための参照ピクチャの第1の順序付けを生成することは、インデックスを参照ピクチャに割り当てることを含み、適応参照ピクチャ再順序付けプロセスに基づいて、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成し、第1の順序付けは第2の順序付けとは異なり、第2のブロックのための参照ピクチャの第2の順序付けを生成することは、インデックスのうちの少なくともいくつかを第1の順序付けとは異なる参照ピクチャに割り当てることを含み、参照ピクチャの第1の順序付けを使用して第1のブロックを復号し、参照ピクチャの第2の順序付けを使用して第2のブロックを復号し、第1のブロック及び第2のブロックの復号されたバージョンを含む復号されたビデオデータを出力する、ように構成されている、1つ又は複数のプロセッサと、を含む。
【0008】
[0008] 本開示の一例によれば、コンピュータ可読記憶媒体は、命令を記憶し、命令が、1つ又は複数のプロセッサによって実行されたとき、1つ又は複数のプロセッサに、スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成させ、第1のブロックのための参照ピクチャの第1の順序付けを生成することは、インデックスを参照ピクチャに割り当てることを含み、適応参照ピクチャ再順序付けプロセスに基づいて、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成させ、第1の順序付けは第2の順序付けとは異なり、第2のブロックのための参照ピクチャの第2の順序付けを生成することは、インデックスのうちの少なくともいくつかを第1の順序付けとは異なる参照ピクチャに割り当てることを含み、参照ピクチャの第1の順序付けを使用して第1のブロックを復号させ、参照ピクチャの第2の順序付けを使用して第2のブロックを復号させ、第1のブロック及び第2のブロックの復号されたバージョンを含む復号されたビデオデータを出力させる。
【0009】
[0009] 本開示の一例によれば、ビデオデータを復号するための装置は、スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成するための手段であって、第1のブロックのための参照ピクチャの第1の順序付けを生成することは、インデックスを参照ピクチャに割り当てることを含む、生成するための手段と、参照ピクチャの第1の順序付けを使用して第1のブロックを復号するための手段と、適応参照ピクチャ再順序付けプロセスに基づいて、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成するための手段であって、第1の順序付けは第2の順序付けとは異なり、第2のブロックのための参照ピクチャの第2の順序付けを生成するための手段は、インデックスのうちの少なくともいくつかを第1の順序付けとは異なる参照ピクチャに割り当てるための手段を含む、生成するための手段と、参照ピクチャの第2の順序付けを使用して第2のブロックを復号するための手段と、第1のブロック及び第2のブロックの復号されたバージョンを含む復号されたビデオデータを出力するための手段と、を含む。
【0010】
[0010] 1つ又は複数の例の詳細が、添付図面及び以下の説明に記載されている。他の特徴、目的、及び利点が、明細書、図面、及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0011】
【
図1】[0011] 本開示の技法を実行し得る例示的なビデオ符号化及び復号システムを例解するブロック図である。
【
図2】[0012] 本明細書で説明される技法と併せて使用され得るテンプレートの一例を示す。
【
図3】[0013] 本開示の技法を実行し得る、例示的なビデオエンコーダを例解するブロック図である。
【
図4】[0014] 本開示の技法を実行し得る、例示的なビデオデコーダを例解するブロック図である。
【
図5】[0015] 本開示の技法による、現在のブロックを符号化するための例示的なプロセスを例解するフローチャートである。
【
図6】[0016] 本開示の技法による、現在のブロックを復号するための例示的なプロセスを例解するフローチャートである。
【
図7】[0017] 本開示の技法による、現在のブロックを復号するための例示的なプロセスを例解するフローチャートである。
【発明を実施するための形態】
【0012】
[0018] ビデオコーディング(例えば、ビデオ符号化及び/又はビデオ復号)は、通常、同じピクチャの中のビデオデータのすでにコーディングされたブロック(例えば、イントラ予測)又は異なるピクチャの中のビデオデータのすでにコーディングされたブロック(例えば、インター予測)のいずれかから、ビデオデータのブロックを予測することを伴う。いくつかの事例では、ビデオエンコーダはまた、予測ブロックを元のブロックと比較することによって残差データを計算する。したがって、残差データは、予測ブロックと元のブロックとの間の差分を表す。残差データをシグナリングするために必要とされるビットの数を低減するために、ビデオエンコーダは、残差データを変換及び量子化し、変換及び量子化された残差データを符号化ビットストリームの中でシグナリングする。変換及び量子化プロセスによって達成される圧縮は不可逆であることがあり、変換及び量子化プロセスが復号されたビデオデータに歪みをもたらし得ることを意味する。
【0013】
[0019] ビデオデコーダは、残差データを復号し予測ブロックに加算して、予測ブロック単独よりも元のビデオブロックとよく一致する再構築されたビデオブロックを生成する。残差データの変換及び量子化によってもたらされる損失により、最初の再構築されたブロックはひずみ又はアーチファクトを有することがある。1つの一般のタイプのアーチファクト又はひずみは、ビデオデータをコーディングするために使用されるブロックの境界が見えるブロッキネスと称される。
【0014】
[0020] 復号されたビデオの品質を更に改善するために、ビデオデコーダは、再構築ビデオブロックに対して1つ又は複数のフィルタ処理演算を実施し得る。これらのフィルタリング動作の例は、デブロッキングフィルタリング、サンプル適応オフセット(sample adaptive offset、SAO)フィルタリング、及び適応ループフィルタリング(adaptive loop filtering、ALF)を含む。これらのフィルタ処理演算のためのパラメータは、ビデオエンコーダによって判定され符号化ビデオビットストリームの中で明示的にシグナリングされ得るか、又はパラメータが符号化ビデオビットストリームの中で明示的にシグナリングされる必要なくビデオデコーダによって暗黙的に判定され得るかのいずれかである。
【0015】
[0021] 本開示の技法は、ビデオコーデックにおけるインター予測を対象とし、より詳細には、インターコーディングされたブロックのための参照ピクチャリストの参照ピクチャのシグナリング及び参照ピクチャリストの管理を対象とする。既存の技法を用いて、ビデオデコーダは、インター予測のための参照ピクチャリストを維持するために、ピクチャレベル又はスライスレベルなどにおいて高レベルシグナリングを使用する。しかしながら、これらの技法は、再順序付けなど、参照ピクチャリストへのブロックレベル適応を含まない。そのようなブロックレベル適応を可能にするために追加のシグナリングを含めることは、増加したシグナリングオーバーヘッドが参照ピクチャリスト適応によって達成されるコーディング利得を上回るので、望ましくないことがある。本開示は、シグナリングオーバーヘッドを増加させることなくブロックレベル参照ピクチャリスト適応を実行するための技法について説明する。具体的には、ビデオデコーダは、シグナリングオーバーヘッドを伴わずに参照ピクチャリスト中の参照ピクチャの新しい順序付けを生成するために、適応参照ピクチャ再順序付けプロセスを実行するように構成され得る。適応参照ピクチャリスト再順序付けプロセスを使用して参照ピクチャリスト中の参照ピクチャを再順序付けることによって、参照ピクチャリスト中のどの参照ピクチャがインター予測のために使用されるべきかをシグナリングするために必要とされるビットは、歪みを増加させることなく低減され得る。
【0016】
[0022] 本開示で使用するビデオコーディングという用語は、概して、ビデオ符号化又はビデオ復号のいずれかを指す。同様に、ビデオコーダという用語は、一般的に、ビデオエンコーダ又はビデオデコーダを指すことがある。更に、ビデオ復号に関して本開示で説明するある特定の技法は、ビデオ符号化に適用されることもあり、その逆も同様である。例えば、しばしば、ビデオエンコーダ及びビデオデコーダは、同じプロセス又は逆のプロセスを実行するように構成される。また、ビデオエンコーダは、通常、ビデオデータをどのように符号化するかを判定するプロセスの一部として、ビデオ復号(再構成とも呼ばれる)を実行する。例えば、本開示で説明するブロックレベル参照ピクチャリスト管理技法は、ビデオエンコーダとビデオデコーダの両方がシグナリングオーバーヘッドをほとんど又はまったく伴わずに同じ参照ピクチャリストを維持するように、ビデオエンコーダとビデオデコーダの両方によって実行され得る。
【0017】
[0023]
図1は、本開示の技法を実行し得る例示的なビデオ符号化及び復号システム100を例解するブロック図である。本開示の技法は、一般に、ビデオデータをコーディングする(符号化及び/又は復号)することを対象とする。一般に、ビデオデータは、ビデオを処理するための任意のデータを含む。したがって、ビデオデータは、未加工の符号化されていないビデオ、符号化されたビデオ、復号された(例えば、再構成された)ビデオ、及びシグナリングデータなどのビデオメタデータを含んでもよい。
【0018】
[0024]
図1に示されるように、この例では、システム100は、デスティネーションデバイス116によって復号され表示されるべき、符号化されたビデオデータを提供するソースデバイス102を含む。具体的には、ソースデバイス102は、コンピュータ可読媒体110を介してデスティネーションデバイス116にビデオデータを提供する。ソースデバイス102及びデスティネーションデバイス116は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、モバイルデバイス、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、表示デバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、ブロードキャスト受信機デバイスなどを含む、広範囲にわたるデバイスのうちのいずれかを備えてもよい。場合によっては、ソースデバイス102及びデスティネーションデバイス116は、ワイヤレス通信に対応し得るので、ワイヤレス通信デバイスと称され得る。
【0019】
[0025]
図1の例では、ソースデバイス102は、ビデオソース104、メモリ106、ビデオエンコーダ200、及び出力インターフェース108を含む。デスティネーションデバイス116は、入力インターフェース122、ビデオデコーダ300、メモリ120、及び表示デバイス118を含む。本開示によれば、ソースデバイス102のビデオエンコーダ200と、デスティネーションデバイス116のビデオデコーダ300とは、本明細書で説明されるようにブロックレベル参照ピクチャリスト適応のための技法を適用するように構成され得る。したがって、ソースデバイス102はビデオ符号化デバイスの例を表し、一方でデスティネーションデバイス116はビデオ復号化デバイスの例を表す。他の例では、ソースデバイス及びデスティネーションデバイスは、他の構成要素又は構成を含み得る。例えば、ソースデバイス102は、外部カメラなどの外部ビデオソースからビデオデータを受信してもよい。同様に、デスティネーションデバイス116は、一体型表示デバイスを含むのではなく、外部表示デバイスとインターフェースしてもよい。
【0020】
[0026]
図1に示すようなシステム100は一例にすぎない。一般に、どんなデジタルビデオ符号化及び/又は復号デバイスも、本明細書で説明されるようにブロックレベル参照ピクチャリスト適応のための技法を実施し得る。ソースデバイス102及びデスティネーションデバイス116は、ソースデバイス102がデスティネーションデバイス116へ送信するためのコーディングされたビデオデータを生成するような、コーディングデバイスの例にすぎない。本開示は、データのコーディング(符号化及び/又は復号)を実行するデバイスとして「コーディング」デバイスに言及する。したがって、ビデオエンコーダ200及びビデオデコーダ300は、コーディングデバイス、具体的には、それぞれ、ビデオエンコーダ及びビデオデコーダの例を表す。いくつかの例では、ソースデバイス102及びデスティネーションデバイス116は、ソースデバイス102及びデスティネーションデバイス116の各々がビデオ符号化及び復号構成要素を含むように、実質的に対称的な方式で動作し得る。したがって、システム100は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、又はビデオ電話のための、ソースデバイス102とデスティネーションデバイス116との間での一方向又は両方向のビデオ送信をサポートし得る。
【0021】
[0027] 一般に、ビデオソース104は、ビデオデータ(例えば、未加工の符号化されていないビデオデータ)のソースを表し、ビデオデータの連続した一連のピクチャ(「フレーム」とも称される)をビデオエンコーダ200に提供し、ビデオエンコーダ200は、ピクチャのためのデータを符号化する。ソースデバイス102のビデオソース104は、ビデオカメラなどの、ビデオキャプチャデバイス、以前にキャプチャされた未加工のビデオを含むビデオアーカイブ、及び/又はビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。更なる代替として、ビデオソース104は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、又はライブビデオ、アーカイブされたビデオ、及びコンピュータ-生成されたビデオの組み合わせを生成し得る。各場合において、ビデオエンコーダ200は、キャプチャされたビデオデータ、事前にキャプチャされたビデオデータ、又はコンピュータ生成されたビデオデータを符号化する。ビデオエンコーダ200は、受信された順序(「表示順序」と称されることがある)からコーディングのためのコーディング順序へと、ピクチャを並べ替え得る。ビデオエンコーダ200は、符号化されたビデオデータを含むビットストリームを生成し得る。ソースデバイス102は次いで、例えばデスティネーションデバイス116の入力インターフェース122によって受信及び/又は取り出すために、出力インターフェース108を介してコンピュータ可読媒体110へと、符号化されたビデオデータを出力し得る。
【0022】
[0028] ソースデバイス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つ又は複数のビデオバッファとして割り振られ得る。
【0023】
[0029] コンピュータ可読媒体110は、ソースデバイス102からデスティネーションデバイス116に符号化されたビデオデータを移すことが可能な任意のタイプの媒体又はデバイスを表し得る。一例では、コンピュータ可読媒体110は、ソースデバイス102が、例えば、無線周波数ネットワーク又はコンピュータベースのネットワークを介して、符号化されたビデオデータをデスティネーションデバイス116にリアルタイムで直接送信することを可能にするための通信媒体を表す。出力インターフェース108は、符号化されたビデオデータを含む送信信号を変調してもよく、入力インターフェース122は、ワイヤレス通信プロトコルなどの通信規格に従って、受信された送信信号を復調してもよい。通信媒体は、無線周波数(radio frequency、RF)スペクトル又は1つ又は複数の物理伝送線路などの、任意のワイヤレス又は有線の通信媒体を備えてもよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成してもよい。通信媒体は、ルータ、スイッチ、基地局、又はソースデバイス102からデスティネーションデバイス116への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【0024】
[0030] いくつかの例では、ソースデバイス102は、出力インターフェース108から記憶デバイス112に符号化されたデータを出力し得る。同様に、デスティネーションデバイス116は、入力インターフェース122を介して、記憶デバイス112からの符号化されたデータにアクセスし得る。記憶デバイス112は、ハードドライブ、Blu-rayディスク、DVD、CD-ROM、フラッシュメモリ、揮発性若しくは不揮発性メモリ、又は符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体などの、様々な分散されたデータ記憶媒体又はローカルでアクセスされるデータ記憶媒体のうちのいずれかを含み得る。
【0025】
[0031] いくつかの例では、ソースデバイス102は、符号化されたビデオデータを、ソースデバイス102によって生成された符号化されたビデオデータを記憶し得るファイルサーバ114又は別の中間記憶デバイスに出力し得る。デスティネーションデバイス116は、ストリーミング又はダウンロードを介して、ファイルサーバ114からの記憶されたビデオデータにアクセスし得る。
【0026】
[0032] ファイルサーバ114は、符号化されたビデオデータを記憶し、その符号化されたビデオデータをデスティネーションデバイス116に送信することが可能な任意のタイプのサーバデバイスであり得る。ファイルサーバ114は、(例えば、ウェブサイトのための)ウェブサーバ、(ファイル転送プロトコル(File Transfer Protocol、FTP)又は片方向伝送路上ファイル配信(File Delivery over Unidirectional Transport、FLUTE)プロトコルなどの)ファイル転送プロトコルサービスを提供するように構成されたサーバ、コンテンツ配信ネットワーク(content delivery network、CDN)デバイス、ハイパーテキスト転送プロトコル(hypertext transfer protocol、HTTP)サーバ、マルチメディアブロードキャストマルチキャストサービス(Multimedia Broadcast Multicast Service、MBMS)若しくは拡張MBMS(Enhanced MBMS、eMBMS)サーバ、及び/又はネットワークアタッチトストレージ(network attached storage、NAS)デバイスを表し得る。ファイルサーバ114は、追加又は代替として、HTTP経由動的適応ストリーミング(Dynamic Adaptive Streaming over HTTP、DASH)、HTTPライブストリーミング(HTTP Live Streaming、HLS)、リアルタイムストリーミングプロトコル(Real Time Streaming Protocol、RTSP)、HTTP動的ストリーミング(HTTP Dynamic Streaming)などの1つ又は複数のHTTPストリーミングプロトコルを実装し得る。
【0027】
[0033] デスティネーションデバイス116は、インターネット接続を含む任意の標準的なデータ接続を通じて、ファイルサーバ114からの符号化されたビデオデータにアクセスし得る。これは、ワイヤレスチャネル(例えば、Wi-Fi接続)、有線接続(例えば、デジタル加入者線(digital subscriber line、DSL)、ケーブルモデムなど)、又はファイルサーバ114に記憶されている符号化されたビデオデータにアクセスするのに好適である、両方の組み合わせを含み得る。入力インターフェース122は、ファイルサーバ114からメディアデータを取り出すか若しくは受信するための上で考察された様々なプロトコル、又はメディアデータを取り出すための他のそのようなプロトコルのうちのいずれか1つ又は複数に従って動作するように構成され得る。
【0028】
[0034] 出力インターフェース108及び入力インターフェース122は、ワイヤレス送信機/受信機、モデム、有線ネットワーク構成要素(例えば、Ethernetカード)、様々なIEEE802.11規格のうちのいずれかに従って動作するワイヤレス通信構成要素、又は他の物理構成要素を表してもよい。出力インターフェース108及び入力インターフェース122がワイヤレス構成要素を備える例では、出力インターフェース108及び入力インターフェース122は、4G、4G-LTE(ロングタームエボリューション(Long-Term Evolution))、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デバイスを含んでもよい。
【0029】
[0035] 本開示の技法は、オーバージエアテレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、HTTP経由動的適応ストリーミング(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、又は他の適用例などの、様々なマルチメディア適用例のうちのいずれかをサポートするビデオコーディングに適用されてもよい。
【0030】
[0036] デスティネーションデバイス116の入力インターフェース122は、コンピュータ可読媒体110(例えば、通信媒体、記憶デバイス112、ファイルサーバ114など)から、符号化されたビデオビットストリームを受信する。符号化されたビデオビットストリームは、ビデオブロック又は他のコーディングされたユニット(例えば、スライス、ピクチャ、ピクチャグループ、シーケンスなど)の特性及び/又は処理を記述する値を有するシンタックス要素などの、ビデオデコーダ300によっても使用される、ビデオエンコーダ200によって定義されるシグナリング情報を含んでもよい。表示デバイス118は、復号されたビデオデータの復号されたピクチャをユーザに表示する。表示デバイス118は、液晶ディスプレイ(liquid crystal display、LCD)、プラズマディスプレイ、有機発光ダイオード(organic light emitting diode、OLED)ディスプレイ、又は別のタイプの表示デバイスなどの、様々な表示デバイスのうちのいずれかを表し得る。
【0031】
[0037]
図1には示されないが、いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は各々、オーディオエンコーダ及び/又はオーディオデコーダと統合されてもよく、共通のデータストリームにおいてオーディオとビデオの両方を含む多重化されたストリームを扱うために、適切なMUX-DEMUXユニット、又は他のハードウェア及び/若しくはソフトウェアを含んでもよい。
【0032】
[0038] ビデオエンコーダ200及びビデオデコーダ300は各々、1つ若しくは複数のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processors、DSPs)、特定用途向け集積回路(application specific integrated circuits、ASICs)、フィールドプログラマブルゲートアレイ(field programmable gate arrays、FPGAs)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせなどの、様々な好適なエンコーダ及び/又はデコーダ回路のうちのいずれかとして実装され得る。技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実行するために1つ又は複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ200及びビデオデコーダ300の各々は、1つ又は複数のエンコーダ又はデコーダに含まれてもよく、それらのいずれもが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック(CODEC))の一部として統合されてもよい。ビデオエンコーダ200及び/又はビデオデコーダ300を含むデバイスは、集積回路、マイクロプロセッサ、及び/又はセルラー電話などのワイヤレス通信デバイスを含み得る。
【0033】
[0039] ビデオエンコーダ200及びビデオデコーダ300は、High Efficiency Video Coding(HEVC)とも称されるITU-T H.265などのビデオコーディング規格、又は、マルチビュー及び/若しくはスケーラブルビデオコーディング拡張などのそれらの拡張規格に従って動作し得る。代替として、ビデオエンコーダ200及びビデオデコーダ300は、Versatile Video Coding(VVC)とも称されるITU-T H.266などの、他のプロプライエタリ規格又は業界規格に従って動作し得る。他の例では、ビデオエンコーダ200及びビデオデコーダ300は、AOMedia Video 1(AV1)、AV1の拡張、及び/又はAV1の後継バージョン(例えば、AV2)などの、プロプライエタリビデオコーデック/フォーマットに従って動作し得る。他の例では、ビデオエンコーダ200及びビデオデコーダ300は、他のプロプライエタリフォーマット又は業界規格に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格又はフォーマットにも限定されない。概して、ビデオエンコーダ200及びビデオデコーダ300は、インター予測のための参照ピクチャリストを使用する任意のビデオコーディング技法と組み合わせて本開示の技法を実行するように構成され得る。
【0034】
[0040] 一般に、ビデオエンコーダ200及びビデオデコーダ300は、ピクチャのブロックベースのコーディングを実行してもよい。「ブロック」という用語は、概して、処理される(例えば、符号化される、復号される、又はそうでなければ符号化及び/若しくは復号プロセスにおいて使用される)べきデータを含む構造を指す。例えば、ブロックは、ルミナンス及び/又はクロミナンスデータのサンプルの2次元行列を含んでもよい。一般に、ビデオエンコーダ200及びビデオデコーダ300は、YUV(例えば、Y、Cb、Cr)フォーマットで表されるビデオデータをコーディングし得る。すなわち、ピクチャのサンプルに対する赤、緑、及び青(green, and blue、RGB)のデータをコーディングするのではなく、ビデオエンコーダ200及びビデオデコーダ300は、ルミナンス成分及びクロミナンス成分をコーディングしてもよく、クロミナンス成分は、赤色と青色の両方のクロミナンス成分を含み得る。いくつかの例では、ビデオエンコーダ200は、受信されたRGBフォーマットされたデータを符号化する前にYUV表現に変換し、ビデオデコーダ300は、YUV表現をRGBフォーマットに変換する。代替として、前処理ユニット及び後処理ユニット(図示せず)が、これらの変換を実行してもよい。
【0035】
[0041] 本開示は、一般に、ピクチャのデータを符号化又は復号するプロセスを含むものとして、ピクチャのコーディング(例えば、符号化及び復号)に言及することがある。同様に、本開示は、ブロックのためのデータを符号化又は復号するプロセス、例えば予測及び/又は残差コーディングを含むものとして、ピクチャのブロックのコーディングに言及することがある。符号化されたビデオビットストリームは、一般に、コーディング決定(例えば、コーディングモード)及びブロックへのピクチャの分割を表すシンタックス要素のための一連の値を含む。したがって、ピクチャ又はブロックをコーディングすることへの言及は、一般に、ピクチャ又はブロックを形成するシンタックス要素のためのコーディング値として理解されるべきである。
【0036】
[0042] HEVCは、コーディングユニット(CUs)、予測ユニット(prediction units、PUs)、及び変換ユニット(transform units、TUs)を含む、様々なブロックを定義する。HEVCによると、(ビデオエンコーダ200などの)ビデオコーダは、四分木構造に従ってコーディングツリーユニット(coding tree unit、CTU)をCUに分割する。すなわち、ビデオコーダは、CTU及びCUを4個の等しい重複しない正方形に分割し、四分木の各ノードは、ゼロ又は4個の子ノードのいずれかを有する。子ノードがないノードは「リーフノード」と称されることがあり、そのようなリーフノードのCUは、1つ又は複数のPU、及び/又は、1つ又は複数のTUを含んでもよい。ビデオコーダは、PU及びTUを更に分割し得る。例えば、HEVCでは、残差四分木(residual quadtree、RQT)はTUの分割を表す。HEVCでは、PUはインター予測データを表し、TUは残差データを表す。イントラ予測されるCUは、イントラモード指示などのイントラ予測情報を含む。
【0037】
[0043] 別の例として、ビデオエンコーダ200及びビデオデコーダ300は、VVCに従って動作するように構成され得る。VVCに従って、(ビデオエンコーダ200などの)ビデオコーダは、ピクチャを複数のコーディングツリーユニット(CTUs)に分割する。ビデオエンコーダ200は、四分木二分木(quadtree-binary tree、QTBT)構造又はマルチタイプツリー(Multi-Type Tree、MTT)構造などの木構造に従って、CTUを分割し得る。QTBT構造は、HEVCのCU、PU、及びTUの間の分離などの、複数の分割タイプの概念を排除する。QTBT構造は、2つのレベル、すなわち、四分木分割に従って分割された第1のレベル、及び二分木分割に従って分割された第2のレベルを含む。QTBT構造のルートノードは、CTUに対応する。二分木のリーフノードは、コーディングユニット(CUs)に対応する。
【0038】
[0044] MTT分割構造では、ブロックは、四分木(quadtree、QT)分割、二分木(binary tree、BT)分割、及び1つ又は複数のタイプの三分木(triple tree、TT)(三元木(ternary tree、TT)とも呼ばれる)分割を使用して分割され得る。三分木分割又は三元木分割は、ブロックが3個のサブブロックに分けられる分割である。いくつかの例では、三分木分割又は三元木分割は、中心を通って元のブロックを分けることなく、ブロックを3個のサブブロックに分ける。MTTにおける分割タイプ(例えば、QT、BT、及びTT)は、対称又は非対称であり得る。
【0039】
[0045] AV1コーデックに従って動作する場合、ビデオエンコーダ200及びビデオデコーダ300は、ブロック中のビデオデータをコーディングするように構成され得る。AV1では、処理され得る最大コーディングブロックは、スーパーブロックと呼ばれる。AV1では、スーパーブロックは、128×128ルーマサンプル又は64×64ルーマサンプルのいずれかであり得る。しかしながら、後継ビデオコーディングフォーマット(例えば、AV2)では、スーパーブロックは、異なる(例えば、より大きい)ルーマサンプルサイズによって定義され得る。いくつかの例では、スーパーブロックは、ブロック四分木のトップレベルである。ビデオエンコーダ200は、スーパーブロックをより小さいコーディングブロックに更に分割し得る。ビデオエンコーダ200は、正方形又は非正方形分割を使用してスーパーブロック及び他のコーディングブロックをより小さいブロックに分割し得る。非正方形ブロックは、N/2×N、N×N/2、N/4×N、及びN×N/4ブロックを含み得る。ビデオエンコーダ200及びビデオデコーダ300は、コーディングブロックの各々に対して別個の予測及び変換プロセスを実行し得る。
【0040】
[0046] AV1はまた、ビデオデータのタイルを定義する。タイルは、他のタイルとは無関係にコーディングされ得るスーパーブロックの矩形アレイである。すなわち、ビデオエンコーダ200及びビデオデコーダ300は、他のタイルからのビデオデータを使用せずにタイル内のコーディングブロックを、それぞれ、符号化及び復号し得る。ただし、ビデオエンコーダ200及びビデオデコーダ300は、タイル境界にわたってフィルタ処理を実行し得る。タイルは、サイズが均一であっても不均一であってもよい。タイルベースのコーディングは、エンコーダ及びデコーダ実装形態のために、並列処理及び/又はマルチスレッディングを可能にし得る。
【0041】
[0047] いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、ルミナンス成分及びクロミナンス成分の各々を表すために単一のQTBT構造又はMTT構造を使用してもよく、他の例では、ビデオエンコーダ200及びビデオデコーダ300は、ルミナンス成分のための1つのQTBT/MTT構造及び両方のクロミナンス成分のための別のQTBT/MTT構造(又はそれぞれのクロミナンス成分のための2つのQTBT/MTT構造)などの、2つ以上のQTBT又はMTT構造を使用してもよい。
【0042】
[0048] ビデオエンコーダ200及びビデオデコーダ300は、四分木分割、QTBT分割、MTT分割、スーパーブロック分割、又は他の分割構造を使用するように構成され得る。
【0043】
[0049] いくつかの例では、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のブロックである。
【0044】
[0050] ブロック(例えば、CTU又はCU)は、ピクチャの中で様々な様法でグループ化され得る。一例として、ブリックは、ピクチャの中の特定のタイル内のCTU行の長方形領域を指すことがある。タイルは、ピクチャの中の特定のタイル列及び特定のタイル行内のCTUの長方形領域であり得る。タイル列は、ピクチャの高さに等しい高さ及び(例えば、ピクチャパラメータセットの中などの)シンタックス要素によって指定される幅を有する、CTUの長方形領域を指す。タイル行は、(例えば、ピクチャパラメータセットの中などの)シンタックス要素によって指定される高さ及びピクチャの幅に等しい幅を有する、CTUの長方形領域を指す。
【0045】
[0051] いくつかの例では、タイルは複数のブリックに分割されてもよく、ブリックの各々はタイル内の1つ又は複数のCTU行を含み得る。複数のブリックに分割されないタイルも、ブリックと称されることがある。しかしながら、タイルの真のサブセットであるブリックは、タイルと称されないことがある。ピクチャの中のブリックは、スライスとしても並べられ得る。スライスは、単一のネットワークアブストラクションレイヤ(network abstraction layer、NAL)ユニットの中に独占的に含まれ得る、ピクチャの整数個のブリックであってもよい。いくつかの例では、スライスは、いくつかの完全なタイル、又は、1つのタイルの一連の連続する完全なブリックのみの、いずれかを含む。
【0046】
[0052] 本開示は、垂直次元及び水平次元において(CU又は他のビデオブロックなどの)ブロックのサンプル次元を指すために、互換的に「N×N」及び「N掛ける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に等しいとは限らない。
【0047】
[0053] ビデオエンコーダ200は、予測及び/又は残差情報、並びに他の情報を表すCUのためのビデオデータを符号化する。予測情報は、CUに対する予測ブロックを形成するためにCUがどのように予測されることになるのかを示す。残差情報は、一般に、符号化する前のCUのサンプルと予測ブロックとの間のサンプルごとの差分を表す。
【0048】
[0054] CUを予測するために、ビデオエンコーダ200は、一般に、インター予測又はイントラ予測を通してCUに対する予測ブロックを形成してもよい。インター予測とは、一般に、以前にコーディングされたピクチャのデータからCUを予測することを指し、イントラ予測とは、一般に、同じピクチャの以前にコーディングされたデータからCUを予測することを指す。インター予測を実行するために、ビデオエンコーダ200は、1つ又は複数の動きベクトルを使用して予測ブロックを生成してもよい。ビデオエンコーダ200は、一般に、例えば、CUと参照ブロックとの間の差分に関してCUに厳密に一致する参照ブロックを識別するために、動き探索を実行し得る。ビデオエンコーダ200は、参照ブロックが現在のCUと厳密に一致するかどうかを判定するために、差分絶対値和(sum of absolute difference、SAD)、差分二乗和(sum of squared differences、SSD)、平均絶対差(mean absolute difference、MAD)、平均二乗差(mean squared differences、MSD)、又は他のそのような差分計算を使用して差分メトリックを計算し得る。いくつかの例では、ビデオエンコーダ200は、単方向予測又は双方向予測を使用して現在のCUを予測し得る。
【0049】
[0055] VVCのいくつかの例はまた、インター予測モードとみなされ得るアフィン動き補償モードを提供する。アフィン動き補償モードでは、ビデオエンコーダ200は、ズームイン若しくはズームアウト、回転、遠近移動、又は他の不規則な動きタイプなどの、非並進運動を表す2つ以上の動きベクトルを判定し得る。
【0050】
[0056] イントラ予測を実行するために、ビデオエンコーダ200は、予測ブロックを生成するためにイントラ予測モードを選択してもよい。VVCのいくつかの例は、様々な方向モードを含む67個のイントラ予測モード、並びに平面モード及びDCモードを提供する。一般に、ビデオエンコーダ200は、現在のブロック(例えば、CUのブロック)に対する隣接サンプルを記述し、そこから現在のブロックのサンプルを予測する、イントラ予測モードを選択する。ビデオエンコーダ200がラスター走査順序(左から右、上から下)でCTU及びCUをコーディングすると仮定すると、そのようなサンプルは一般に、現在のブロックと同じピクチャにおいて、現在のブロックの上、上及び左、又は左にあり得る。
【0051】
[0057] ビデオエンコーダ200は、現在のブロックに対する予測モードを表すデータを符号化する。例えば、インター予測モードの場合、ビデオエンコーダ200は、様々な利用可能なインター予測モードのうちのどれが使用されるのか、並びに対応するモードに対する動き情報を表すデータを符号化してもよい。単方向又は双方向インター予測の場合、例えば、ビデオエンコーダ200は、高度動きベクトル予測(advanced motion vector prediction、AMVP)モード又はマージモードを使用して動きベクトルを符号化してもよい。ビデオエンコーダ200は、アフィン動き補償モードのための動きベクトルを符号化するために類似のモードを使用してもよい。
【0052】
[0058] マージモードでコーディングされたブロックの場合、ビデオエンコーダ200及びビデオデコーダ300は、候補リストを維持するように構成され得、リスト中の各候補は動き情報の全セット(例えば、動きベクトル、動き方向、及び参照ピクチャインデックス)を含む。AMVPモードでコーディングされたブロックの場合、ビデオエンコーダ200及びビデオデコーダ300は、候補リストを同様に維持するように構成され得るが、完全な動き情報の代わりに、リスト中の各候補は動きベクトル予測子(motion vector predictor、MVP)のみを含む。ビデオデコーダ300は、動きベクトル差分(MVD)を別個に受信し、MVPにMVDを加えたブロックを予測するための動きベクトルを判定し得る。
【0053】
[0059] AV1は、ビデオデータのコーディングブロックを符号化及び復号するための2つの一般的な技法を含む。2つの一般的な技法は、イントラ予測(例えば、イントラフレーム予測又は空間予測)及びインター予測(例えば、インターフレーム予測又は時間予測)である。AV1のコンテキストでは、イントラ予測モードを使用するビデオデータの現在のフレームのブロックを予測する場合、ビデオエンコーダ200及びビデオデコーダ300は、ビデオデータの他のフレームからのビデオデータを使用しない。たいていのイントラ予測モードでは、ビデオエンコーダ200は、現在のブロック内のサンプル値と、同じフレーム内の参照サンプルから生成される予測値との間の差分に基づいて、現在のフレームのブロックを符号化する。ビデオエンコーダ200は、イントラ予測モードに基づいて参照サンプルから生成される予測値を判定する。
【0054】
[0060] ブロックのイントラ予測又はインター予測などの予測に続いて、ビデオエンコーダ200はブロックのための残差データを計算してもよい。残差ブロックなどの残差データは、ブロックと、対応する予測モードを使用して形成されたそのブロックに対する予測ブロックとの間の、サンプルごとの差分を表す。ビデオエンコーダ200は、サンプル領域ではなく変換領域において変換データを生成するために、1つ又は複数の変換を残差ブロックに適用してもよい。例えば、ビデオエンコーダ200は、離散コサイン変換(discrete cosine transform、DCT)、整数変換、ウェーブレット変換、又は概念的に類似の変換を残差ビデオデータに適用してもよい。加えて、ビデオエンコーダ200は、モード依存非分離可能二次変換(mode-dependent non-separable secondary transform、MDNSST)、信号依存変換、カルーネンレーベ変換(Karhunen-Loeve transform、KLT)などの二次的な変換を、最初の変換に続いて適用し得る。ビデオエンコーダ200は、1つ又は複数の変換の適用に続いて、変換係数を生成する。
【0055】
[0061] 上述のように、変換係数を生成するための任意の変換に続いて、ビデオエンコーダ200は、変換係数の量子化を実行してもよい。量子化とは、一般に、変換係数を表すために使用されるデータの量をできる限り低減するために変換係数が量子化され、更なる圧縮を行うプロセスを指す。量子化プロセスを実行することによって、ビデオエンコーダ200は、変換係数の一部又は全てに関連付けられたビット深度を低減し得る。例えば、ビデオエンコーダ200は、量子化の間にnビット値をmビット値に丸めてもよく、ここで、nはmよりも大きい。いくつかの例では、量子化を実行するために、ビデオエンコーダ200は、量子化されるべき値のビット単位の右シフトを実行してもよい。
【0056】
[0062] 量子化に続いて、ビデオエンコーダ200は、変換係数を走査してもよく、量子化された変換係数を含む2次元行列から1次元ベクトルを生成する。走査は、より高いエネルギー(したがって、より低い周波数)の変換係数をベクトルの前方に置き、より低いエネルギー(したがって、より高い周波数)の変換係数をベクトルの後方に置くように設計され得る。いくつかの例では、ビデオエンコーダ200は、シリアル化ベクトルを生成し、次いで、ベクトルの量子化された変換係数をエントロピー符号化するために、量子化された変換係数を走査するためのあらかじめ定義された走査順序を使用し得る。他の例では、ビデオエンコーダ200は、適応走査を実行してもよい。1次元ベクトルを形成するために量子化された変換係数を走査した後、ビデオエンコーダ200は、例えば、コンテキスト適応型バイナリ算術コーディング(context-adaptive binary arithmetic coding、CABAC)に従って、1次元ベクトルをエントロピー符号化してもよい。ビデオエンコーダ200はまた、ビデオデータを復号する際にビデオデコーダ300によって使用するための符号化されたビデオデータに関連付けられたメタデータを記述するシンタックス要素に対する値をエントロピー符号化し得る。
【0057】
[0063] CABACを実行するために、ビデオエンコーダ200は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当ててもよい。コンテキストは、例えば、シンボルの隣接値がゼロ値化されているか否かに関係し得る。確率判断は、シンボルに割り当てられたコンテキストに基づき得る。
【0058】
[0064] ビデオエンコーダ200は、ビデオデコーダ300への、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、及びシーケンスベースのシンタックスデータなどのシンタックスデータを、例えば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、又は、シーケンスパラメータセット(sequence parameter set、SPS)、ピクチャパラメータセット(picture parameter set、PPS)、若しくはビデオパラメータセット(video parameter set、VPS)などの他のシンタックスデータにおいて更に生成し得る。ビデオデコーダ300は、そのようなシンタックスデータを同様に復号して、対応するビデオデータをどのように復号すべきかを判定してもよい。
【0059】
[0065] このようにして、ビデオエンコーダ200は、符号化されたビデオデータ、例えば、ブロック(例えば、CU)へのピクチャの分割並びにブロックに対する予測情報及び/又は残差情報を記述するシンタックス要素を含む、ビットストリームを生成し得る。最終的に、ビデオデコーダ300は、ビットストリームを受信してもよく、符号化されたビデオデータを復号してもよい。
【0060】
[0066] 一般に、ビデオデコーダ300は、ビデオエンコーダ200によって実行されるプロセスへの相反プロセスを実行して、ビットストリームの符号化されたビデオデータを復号する。例えば、ビデオデコーダ300は、ビデオエンコーダ200のCABAC符号化プロセスとは相反ではあるが実質的に類似の方式で、CABACを使用してビットストリームのシンタックス要素に対する値を復号してもよい。シンタックス要素は、CTUのCUを定義するために、CTUへのピクチャの分割及びQTBT構造などの対応する分割構造に従った各CTUの分割のための、分割情報を定義し得る。シンタックス要素は、ビデオデータのブロック(例えば、CU)に対する予測情報及び残差情報を更に定義し得る。
【0061】
[0067] 残差情報は、例えば、量子化された変換係数によって表され得る。ビデオデコーダ300は、ブロックの量子化された変換係数を逆量子化し逆変換して、ブロックのための残差ブロックを再生し得る。ビデオデコーダ300は、シグナリングされた予測モード(イントラ予測又はインター予測)及び関連する予測情報(例えば、インター予測のための動き情報)を使用して、ブロックに対する予測ブロックを形成する。ビデオデコーダ300は次いで、予測ブロックと残差ブロックとを(サンプルごとに)組み合わせて、元のブロックを再生し得る。ビデオデコーダ300は、ブロックの境界に沿った視覚アーチファクトを低減するためのデブロッキングプロセスを実行するなどの、追加の処理を実行してもよい。
【0062】
[0068] 本開示は全般に、シンタックス要素などのある特定の情報を「シグナリングすること」に言及することがある。「シグナリングする」という用語は、一般に、シンタックス要素に対する値、及び/又は符号化されたビデオデータを復号するために使用される他のデータの通信を指すことがある。すなわち、ビデオエンコーダ200は、ビットストリームにおいてシンタックス要素に対する値をシグナリングし得る。一般に、シグナリングとは、ビットストリームにおいて値を生成することを指す。上で述べられたように、ソースデバイス102は、実質的にリアルタイムで、又は非リアルタイムでビットストリームをデスティネーションデバイス116に転送してもよく、これは、デスティネーションデバイス116によって後で取り出すためにシンタックス要素を記憶デバイス112に記憶するときなどに起こることがある。
【0063】
[0069] HEVC及びVVCなどのビデオコーデックは、現在のコーディングされたピクチャ以外の参照ピクチャから予測信号を導出するためにインター予測を使用する。参照ピクチャは、1つ又は2つの参照ピクチャリストに編成される。2つのリストは、リスト0及びリスト1として示される。参照ピクチャリストの各々は、1個又は複数の参照ピクチャを含み得る。ビデオエンコーダ200は、リスト0、リスト1、又は両方のリストが現在のコーディングされたブロックのインター予測のために使用されるかどうかを識別するインター予測方向を示すシンタックス要素を符号化する。ビデオエンコーダ200はまた、リスト中の参照ピクチャのうちのどれがインター予測のために使用されるかを識別するために、(使用される参照リストごとの)参照インデックスを示す別のシンタックス要素を符号化する。マージモードでは、ビデオデコーダ300は、選択されたマージ候補から動きベクトル情報とともにインター予測方向及び参照インデックスを導出する。AMVPモードでは、インター予測方向及び参照インデックスを示す追加のシンタックス要素が、インターコーディングされたブロックのためのビットストリームにおいてシグナリングされる。
【0064】
[0070] インター予測方向をシグナリングするとき、ビデオエンコーダ200は、インター予測モード(例えば、予測方向)が双予測モードであるか単予測モードであるかを示すために第1のビンをシグナリングする。モードが単予測である場合、リスト0又はリスト1が使用されるかどうかを示すために、第2のビンがシグナリングされる。モードが双予測である場合、リスト0及びリスト1の両方が使用されるので、追加のビンは必要とされない。対応する参照インデックスは、その後、ビットストリームにおいてシグナリングされる。双予測が使用されるとき、リスト0とリスト1の両方がインター予測のために使用され、両方のリストのための参照インデックスがビットストリームにおいてシグナリングされる必要がある。0~N-1までの範囲の参照インデックスは、短縮単項(truncated unary)コーディングを使用して二値化され、Nはリスト中の参照ピクチャの数である。CABACは、ビンのいくつかをコーディングするために適用され得る。
【0065】
[0071] HEVC及びVVCは両方とも、各スライス/ピクチャが異なる参照ピクチャリストを有することを可能にする高レベルシンタックスの一部としてシグナリングされ得るフレキシブルな参照ピクチャ構造をサポートする。すなわち、ビデオエンコーダ200及びビデオデコーダ300は、同じピクチャ及び同じ順序付けを有する同じ参照ピクチャリストを維持するように構成される。ビデオエンコーダ200及びビデオデコーダ300が同じ参照ピクチャリストを維持することができるように、ビデオエンコーダ200は、ビットストリームにおいて何らかのシグナリングを含み、ビデオデコーダ300は、どのピクチャをどの順序で参照ピクチャリスト中に保持すべきかを判定するためにそのシグナリングを使用する。しかしながら、フレキシビリティは、各ブロックのための参照ピクチャ構造をシグナリングするために被ることになるシグナリングオーバーヘッドの増加により、ブロックレベルでサポートされない。
【0066】
[0072] HEVCでは、新しいSPSを使用する新しいシーケンスがイントラランダムアクセスポイント(intra random access point、IRAP)ピクチャから開始しない限り、ピクチャの空間解像度は変化し得ない。VVCは、常にイントラコーディングされるIRAPピクチャを符号化することなく、ある位置においてシーケンス内のピクチャ解像度の変更を可能にする。この特徴は、参照ピクチャリサンプリング(reference picture resampling、RPR)と称されることがあり、何故なら、参照ピクチャが、復号されている現在のピクチャとは異なる解像度を有する場合、この特徴がインター予測に使用される参照ピクチャのリサンプリングを含むためである。追加の処理ステップを回避するために、VVCにおけるRPRプロセスは、動き補償プロセスに組み込まれて、ブロックレベルで実行される。動き補償段階では、補間プロセスで使用される参照ピクチャ中の参照サンプルを位置特定するために、動き情報とともにスケーリング比が使用される。
【0067】
[0073] 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つのセットを有する。水平及び垂直スケーリング比は、ピクチャ幅及び高さ、並びに参照ピクチャ及び現在のピクチャに対して指定された左、右、上、及び下スケーリングオフセットに基づいて導出される。
【0068】
[0074] この特徴をサポートするために、ピクチャ解像度及び対応する適合窓は、SPSにおいてではなくPPSにおいてシグナリングされる一方で、SPSにおいて、最大ピクチャ解像度がシグナリングされる。
【0069】
[0075] 本開示は、ブロックレベル参照ピクチャ適応のための技法について説明する。ビデオエンコーダ200及びビデオデコーダ300は、例えば、シグナリングオーバーヘッドを伴わずに、ブロックレベルで参照ピクチャを適応的に編成するように構成され得る。すなわち、各ブロックは、参照ピクチャリスト内で参照ピクチャの異なる順序付けを有し得る。概して、参照ピクチャは、より小さいインデックス(より少ない数のビン)が、現在のブロックのために選択される可能性がより高い参照ピクチャ(又は複数の参照ピクチャのセット)に割り当てられるように並べられ(再順序付けされ)、これは、参照ピクチャインデックスをシグナリングするために必要とされるビットの低減をもたらし、したがって、全体的なコーディング性能を改善し得る。
【0070】
[0076] ビデオエンコーダ200及びビデオデコーダ300は、テンプレートマッチングコストに基づいて、特定の参照インデックスについての尤度を判定するように構成され得る。より高い尤度を有する参照ピクチャについては、より小さいインデックスが割り当てられ得る。すなわち、より小さいテンプレートマッチングコストを有する参照ピクチャ仮説の場合、ビデオエンコーダ200及びビデオデコーダ300は、より小さいテンプレートマッチングコストをもたらすより小さいインデックスを、関連付けられた参照ピクチャに割り当てるように構成され得る。ビデオエンコーダ200及びビデオデコーダ300は、テンプレート中の隣接サンプルの再構成信号と、基準仮説(reference hypothesis)及び現在のブロックの対応する動き情報によって生成された予測信号との間の歪みに基づいて、テンプレートマッチングコストを計算するように構成され得る。各基準仮説について、ビデオエンコーダ200及びビデオデコーダ300は、以下を行うように構成され得る。
1)基準仮説及び他の動き情報シンタックス要素(例えば、MVP、MVD、動きベクトル解像度など)が与えられると、対応する動き情報を導出する。
2)ステップ(1)において導出された動き情報に従ってテンプレートに対してインター予測を実行して、テンプレートの予測信号を生成する。
3)テンプレートの再構成信号(前に復号された隣接サンプル)を取得する。
4)再構成信号と予測信号との間の歪みを計算する。
【0071】
[0077] 上記のステップ1に関して、ビデオデコーダ300は、例えば、ブロックレベル参照ピクチャリスト適応を実行する前に、AMVP候補とMVDとを示すシンタックス要素を受信するように構成され得る。したがって、各基準仮説について、ビデオデコーダ300は、ブロックを予測するために使用されるべき実際の動きベクトルを判定し、基準仮説を判定するためにその動きベクトルを使用することができる。異なる参照ピクチャは、異なる動きベクトルスケーリング又は他の参照ピクチャベースの導出プロセスを利用し得るので、各参照仮説について使用される実際の動きベクトルは、MVP及びMVDが同じであっても異なり得る。
【0072】
[0078] 例えば、上記のステップ1~4を使用して、ビデオエンコーダ200及びビデオデコーダ300は、スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成し、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成するように構成され得る。ブロックレベルでそのような適応参照ピクチャ再順序付けプロセスを使用することによって、ビデオエンコーダ200及びビデオデコーダ300は、AMVPモードなど、ある特定のコーディングモードで参照ピクチャインデックスをシグナリングすることに関連するシグナリングオーバーヘッドを低減し得る。
【0073】
[0079] 一例では、ビデオエンコーダ200及び/又はビデオデコーダ300は、各参照リスト内で別個に、参照ピクチャを再順序付けするように構成され得る。参照ピクチャのためのシンタックス設計は、HEVC及びVVCのシンタックス設計と同じであり得るが、同じ参照インデックス値が異なるブロックのための異なる参照ピクチャを示し得るという違いがある。
【0074】
[0080] 一例では、ビデオエンコーダ200及びビデオデコーダ300は、両方の参照リスト内で一緒に、参照ピクチャを再順序付けするように構成され得る。インター予測方向をシグナリングするとき、いくつかの例では、ブロックのための予測モードが双予測であるか非予測であるかを示すために、1つのビンのみがビットストリームにおいてコーディングされ得る。単予測モードの場合、インデックスref_idx_uniは、リスト0とリスト1の両方からの参照ピクチャを含む参照ピクチャのジョイントリストから選択された参照ピクチャを示すためにビットストリームにおいてコーディングされ得る。ジョイントリスト中の参照ピクチャは、テンプレートコストの昇順に従って並べられる。いくつかの例では、リスト0又はリスト1を示すための第2のビンがある必要がないことがあり、代わりに暗黙的にインデックスによって判定され得る。双予測モードの場合、インデックスref_idx_biは、参照ピクチャの選択されたペアを示すためにビットストリームにおいてコーディングされ得る。
【0075】
[0081] いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、単予測モードについては両方の参照リストからの参照ピクチャを一緒に再順序付けるが、双予測モードについては各参照リスト内で別個に再順序付けるように構成され得る。
【0076】
[0082] ビデオエンコーダ200及びビデオデコーダ300は、コスト基準を判定するように構成され得る。本開示の一例によれば、コストは、テンプレートの予測信号と再構成信号との間の歪みである。歪み尺度は、差分絶対値和(SAD)、絶対変換差の和(Sum of the Absolute Transformed Difference、SATD)、二乗誤差の和(Sum of the Square Error、SSE)、又は別のそのようなコスト判定であり得る。
【0077】
[0083] いくつかの例では、コストは、テンプレートの予測信号と再構成信号との間の歪みと、初期リスト中の参照ピクチャ仮説のインデックスによって判定される正則化項との組み合わせであり得る。正則化項は、インデックス×スケールとして導出することができる。スケール値は、所定の定数整数であってもよく、又はブロックサイズに依存する値であってもよい。
【0078】
[0084] 別の例では、コーディングモードが双予測であるとき、ビデオエンコーダ200及びビデオデコーダ300は、予測信号の各々と再構成信号との間の歪みの和としてコストを判定するように構成され得る。正則化項は、上述のように適用されてもよい。
【0079】
[0085] ビデオエンコーダ200及びビデオデコーダ300は、インデックスの二値化を実行するように構成され得る。いくつかの例では、短縮単項コードが、インデックスをコーディングするために使用され得る。いくつかの例では、ゴロムライスコードが使用され得る。ゴロムライスコードは可変長コーディングプロセスであり、短縮単項コーディングされたプレフィックスコードと固定長コーディングされたサフィックスコードとで形成される。プレフィックスコード及びサフィックスコードのそれぞれの長さは、パラメータ、コーディングされた除数Dによって制御され、ここで、Dは、正の2のべき数(例えば、1、2、4、8、...)であり、コーディングされるべきシンボルの総数よりも大きくない。除数Dを有するゴロムライスコードを使用することによってコーディングされるべきN個の異なるシンボルがあるとき、これらN個の異なるシンボルのインデックスはN/D個のグループに分解され、各グループはD個のシンボルを有する。グループインデックス(例えば、0、1、2、3、...、N/D-1)は、前述のプレフィックスコードである短縮単項コードを使用することによってコーディング化される。グループ内のD個のシンボルのインデックス(例えば、0、1、2、3、...、D-1)は、次いで、前述のサフィックスコードである、短縮バイナリコード(Dが2のべき乗でない)又は固定長バイナリコード(Dが2のべき数であるとき)を使用することによってコーディングされる。いくつかの例では、短縮単項コードがref_idx_uniに対して使用され、ゴロムライスコードがref_idx_biに対して使用される。双予測における参照ピクチャの異なるペアの組み合わせの数は大きくなり得、したがって、多数のインデックス値を使用する。しかしながら、短縮単項コードは、比較的大きいインデックス値に対して効率的でないことがある。いくつかの例では、短縮単項コードを使用すべきかゴロム-ライスコードを使用すべきかどうかは、インデックス値の総数に依存する。その数が閾値より大きい場合、ゴロムライスコードが使用される。そうでない場合、短縮単項コードが使用される。
【0080】
[0086]
図2は、テンプレートの例を示す。テンプレートは、概して、
図2中の現在のブロック140など、現在のブロックのすぐ隣のコーディングされたエリアに対応するか、又はそれを位置特定する。テンプレートのサンプルは、現在のブロックが復号される前に復号される。
【0081】
[0087] いくつかの例では、テンプレートは、
図2に例解されているように、現在のブロック140の左の左テンプレート142及び/又は現在のブロック140の上の上テンプレート144を含む。現在のブロック140の幅及び高さがW及びHとして示される場合、左テンプレートのサイズはN×Hであり得、上テンプレートサイズのサイズはW×Nであり得、式中、Nは、1、2、4、又は何らかの他の整数値など、あらかじめ定義された値である。他のテンプレートも使用され得る。例えば、左テンプレートのサイズがN×2Hであり、上テンプレートのサイズが2W×Nであってもよい。
【0082】
[0088] ビデオエンコーダ200及びビデオデコーダ300は、テンプレートのための予測信号生成を実行するように構成され得る。上述したように、動きベクトルは、まず、参照ピクチャ仮説及び他の相対動き情報に従って導出され、次いで、動き補償が実行されてテンプレートのための予測信号が生成される。ビデオエンコーダ200及びビデオデコーダ300は、テンプレートに対応する参照ピクチャ中のサンプルを位置特定するために、判定された動きベクトルを使用するように構成され得る。ビデオエンコーダ200及びビデオデコーダ300は、次いで、現在ピクチャのテンプレートサンプルを参照ピクチャ中の対応するサンプルと比較することによって、テンプレートマッチングコストを判定し得る。
【0083】
[0089] いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、テンプレートの動き補償のために、現在のブロックの動き補償のために使用される補間フィルタを適用するように構成され得る。いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、複雑さを低減するために、簡略化された補間フィルタを適用し得る。例えば、双線形補間フィルタは、典型的なより長いタップ(例えば、6タップ、8タップ、12タップ)フィルタの代わりに使用される。いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、テンプレートの動き補償のために、動きベクトルを最も近い整数に丸めるように構成され得る。
【0084】
[0090] ビデオエンコーダ200及びビデオデコーダ300は、初期リストの生成を実行するように構成され得る。次に、単予測の場合について説明する。いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、リスト0及びリスト1からの参照ピクチャをインターリーブすることによって、参照ピクチャの初期ジョイントリストを生成するように構成され得る。リストi(i=0、1)中のj個の参照ピクチャは、jがリスト0中の参照ピクチャの数よりも小さく、リスト1中の参照ピクチャの数よりも小さいとき、ジョイントリスト中の2×j+i個の参照ピクチャになる。jがリスト0中の参照ピクチャの数以上であるか、又はリスト1中の参照ピクチャの数以上であるとき、ジョイントリスト中のインデックスはN+jであり、式中、Nはリスト0中の参照ピクチャの数とリスト1中の参照ピクチャの数との間の最小値である。
【0085】
[0091] いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、最初に参照ピクチャをリスト0に追加し、次いで参照ピクチャをリスト1に追加することによって、参照ピクチャの初期ジョイントリストを生成するように構成され得る。又は、いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、最初に参照ピクチャをリスト1に追加し、次いで参照ピクチャをリスト0に追加することによって、参照ピクチャの初期ジョイントリストを生成するように構成され得る。いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、参照ピクチャと現在のピクチャとの間の距離の昇順に従ってジョイントリスト中の参照ピクチャを生成するように構成され得る。
【0086】
[0092] 次に、双予測の場合について説明する。一例では、双予測の場合、ビデオエンコーダ200及びビデオデコーダ300は、以下のように参照ピクチャのペアの初期リストを生成するように構成され得る。
リスト0中の参照ピクチャiについてループする
リスト1中の参照ピクチャjについてループする
ペア(i,j)をリストに挿入する。
【0087】
リストは、i+jの昇順に従って再順序付けされ得る。
【0088】
[0093] 別の例では、ビデオエンコーダ200及びビデオデコーダ300は、その後にソートプロセスを適用するように構成され得、ここで、コストが参照ピクチャの各ペアに割り当てられ、リストがコストの昇順に基づいてソートされる。一例では、コストは、abs(pocDist0)+abs(pocDist1)+abs(pocDist0-pocDist1)として計算される。pocDist0は、現在のピクチャと参照ピクチャ0との間のピクチャ順序カウント(picture order count、POC)の差を表す。pocDist1は、参照ピクチャ1と現在ピクチャとの間のPOCの差を表し、abs()は、絶対値を計算する演算子である。別の例では、コストは、abs(pocDist0)+abs(pocDist1)+cとして計算され得、式中、pocDist0及びpocDist1が異なる符号を有する場合、cは0に設定され、そうでない場合、あらかじめ定義された大きい正の値に設定される。このようにして、両方の順方向参照ピクチャ又は両方の逆方向参照を有する参照ピクチャのペアに、より大きいコストが割り当てられる。
【0089】
[0094] ビデオエンコーダ200及びビデオデコーダ300は、重複参照ピクチャを処理するように構成され得る。同じ参照ピクチャが、リスト0とリスト1の両方に挿入され得る。単予測のために参照ピクチャを再順序付けるためのジョイントリストを作成するとき、重複参照ピクチャが存在し得る。いくつかの例では、あらかじめ定義された大きいコストが重複参照ピクチャに割り当てられ得る。例えば、コストは最大値に設定される。いくつかの例では、重複された参照ピクチャに対するテンプレートコストは、あらかじめ定義された値、例えば、2、4、8、16などによってスケーリングされる。同様に、同じプロセスが、双予測モードでの参照ピクチャの重複ペアに適用され得る。
【0090】
[0095] 本明細書で説明する様々な技法は、MVDの符号予測と組み合わせて使用され得る。MVDの符号は、JVET-X0132(第24回会議、テレビ会議、2021年10月6~15日)及びJVET-K0067(第11回会議:Ljubljana、SI、2018年7月10~18日)に記載されているように、テンプレートマッチングコストに基づいて予測され得る。いくつかの例では、参照ピクチャインデックス及びMVDの符号は、インデックスとして一緒にコーディングされ得、インデックス値は、参照ピクチャ仮説とMVDの符号仮説とのある特定の組み合わせを示す。全ての可能な組み合わせは、上で考察されたように、テンプレートマッチングコストに従って順序付けされてもよい。
【0091】
[0096] いくつかの例では、MVDの符号予測と参照ピクチャ適応とは、相互排他的であり得る。2つのツールは、高レベルシンタックスによって制御することができ、2つのツールのうちの1つのみを現在のコーディングされたピクチャ/スライスに適用することができる。
【0092】
[0097] いくつかの例では、MVDの符号予測と参照ピクチャ適応とは、ブロックレベルにおいて相互排他的である。2つのツールは、MVDの大きさによって制御され得る。MVDの大きさがある閾値未満である場合、参照ピクチャ適応が適用される。そうでない場合、MVDの符号予測が適用される。
【0093】
[0098] 別の例では、上で考察されたように、MVDの符号予測と参照ピクチャ適応とが一緒に使用され得る。参照ピクチャ再順序付けを実行するとき、ビデオエンコーダ200及びビデオデコーダ300は、参照ピクチャの再順序付けのために、MVDの全ての可能な仮説の中の最小コストを参照ピクチャの仮説に割り当てるように構成され得る。次いで、再順序付けされた参照ピクチャリスト及び復号されたインデックスが与えられると、ビデオエンコーダ200及びビデオデコーダ300は、選択された参照ピクチャを判定することができ、選択された参照ピクチャは、その後、MVDの符号予測のために使用され得る。参照ピクチャ再順序付けプロセス中に計算されたコストは記憶され得、判定された参照ピクチャに関連付けられたコストは符号予測のために再利用され得る。
【0094】
[0099] 別の例では、上で考察されたように、MVDの符号予測と、提案された参照ピクチャ適応とが一緒に使用され得る。MVDの符号予測を実行するとき、ビデオエンコーダ200及びビデオデコーダ300は、参照ピクチャの全ての可能な仮説の中の最小コストをMVDの符号の仮説に割り当てるように構成され得る。次いで、再順序付けされた符号仮説及び復号された符号インデックスが与えられると、ビデオエンコーダ200及びビデオデコーダ300は、実際のMVDを判定することができ、それは、その後、参照ピクチャ再順序付けのために使用され得る。符号予測プロセス中に計算されたコストは記憶され得、判定されたMVDに関連付けられたコストは、参照ピクチャ再順序付けのために再利用され得る。
【0095】
[0100] 別の例では、上記で提案されたようなMVDの符号予測及び参照ピクチャ適応が一緒に使用され得る。参照ピクチャ再順序付けを実行するとき、ビデオエンコーダ200及びビデオデコーダ300は、参照ピクチャの再順序付けのために、MVDの全ての可能な仮説の中の最小コストを参照ピクチャの仮説に割り当て得る。次いで、再順序付けされた参照ピクチャリスト及び復号されたインデックスが与えられると、ビデオエンコーダ200及びビデオデコーダ300は、選択された参照ピクチャを判定し得る。MVDの符号予測を実行するとき、ビデオエンコーダ200及びビデオデコーダ300は、参照ピクチャの全ての可能な仮説の中の最小コストをMVDの符号の仮説に割り当て得る。次いで、再順序付けされた符号仮説及び復号された符号インデックスが与えられると、ビデオエンコーダ200及びビデオデコーダ300は、実際のMVDを判定し得る。
【0096】
[0101] 上記で説明した技法は、参照ピクチャ適応と他のシンタックス予測との組み合わせに同様に適用され得る。シンタックスは、例えば、IMVインデックス、ローカル照明補償(local illumination compensation、LIC)フラグ、CUレベル重みを有する双予測(CU-level weight、BCW)インデックスなどであり得る。
【0097】
[0102] 次に、MVD符号予測の簡略化のための技法について説明する。上記で説明したように、参照ピクチャ再順序付けとMVD符号予測との組み合わせは、異なる仮説の全ての可能な組み合わせのコストをテストすることを伴い得、それは、複数のMVDがある双予測について、特に、各方向に多くても3つのMVDがあるときのアフィンモードについて、著しい計算複雑さを課し得る。プロセスを簡略化するために以下の技法が適用され得る。
【0098】
[0103] 一例では、ビデオエンコーダ200及びビデオデコーダ300は、双予測モードについてMVD符号予測を無効にするように構成され得る。無効化には、ある特定の条件を設定してもよい。例示的な条件として、モードは、無効化のためのSMVDモードではなく、リスト0及びリスト1中のMVDは対称である。別の例示的な条件として、モードはアフィンモードであるものとする。
【0099】
[0104] 別の例では、ビデオエンコーダ200及びビデオデコーダ300は、双予測の場合、方向のうちの1つについてMVD符号予測を無効にするように構成され得る。例えば、リスト1中のMVDは、双予測の場合に無効にされ得る。無効化には、ある特定の条件を設定してもよい。例えば、リスト0中のMVDが非ゼロである場合、リスト1についてのMVD符号予測は無効化される。両方向(リスト0及びリスト1)におけるMVDの大きさは、事前にコーディングされ得、次いで、MVD符号予測がリストのうちの1つについて無効化されるかどうかを判定することができることに留意されたい。
【0100】
[0105] また別の例では、ビデオエンコーダ200及びビデオデコーダ300は、予測されるMVD符号の数を制限するように構成され得る。その数は、構成可能であり、高レベルシンタックスにおいてシグナリングされてもよい。一例では、MVD符号に対してカウンタを設定することができ、予測されたMVD符号の数があらかじめ定義された数に達すると、残りのMVD符号は定期的にコーディングされ、例えば、予測される代わりに負又は正の符号を示すために1つのビンを使用する。別の例では、MVDは、大きさに基づいて降順にソートされる。次に、ソートされたリスト中のN個までのMVDが予測され、リセットは予測されない。両方の例において、リスト0及びリスト1の両方におけるMVDの大きさは、事前にコーディングされ得ることに留意されたい。
【0101】
[0106] 上記で説明した技法は、MVD符号予測のために独立して適用され得るか、又は参照再順序付け技法(又は他のシンタックス要素予測技法)が適用されるかどうかによって条件付けられ得る。
【0102】
[0107] ビデオエンコーダ200及びビデオデコーダ300は、双予測モードついてバイラテラルマッチングコストを判定するように構成され得る。双予測モードの場合、バイラテラルマッチングコストが使用され得、コストは、リスト0予測子とリスト1予測子との間の歪みである。リスト0予測子は、リスト0中の(参照ピクチャ仮説に従って)導出された動き情報を使用する動き補償によって取得され、リスト1予測子は、リスト1中の(参照ピクチャ仮説に従って)導出された動き情報を使用する動き補償によって取得される。
【0103】
[0108] いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、双予測モードでテンプレートマッチングコストの代わりにバイラテラルマッチングコストを判定し、次いで、参照ピクチャリストを再順序付けするためにバイラテラルマッチングコストを使用するように構成され得る。いくつかの例では、ビデオエンコーダ200及びビデオデコーダ300は、双予測モードでテンプレートマッチングコストとともにバイラテラルマッチングコストを使用するように構成され得る。例えば、ビデオエンコーダ200及びビデオデコーダ300は、バイラテラルマッチングコストとテンプレートマッチングコストとの加重和に基づいて参照ピクチャを再順序付けするように構成され得る。
【0104】
[0109] 次に、参照ピクチャリサンプリングとの相互作用の態様について説明する。RPRが参照ピクチャに適用される場合、通常、デコーダ側の導出プロセスは無効にされる。例えば、ビデオデコーダ300は、RPRが選択された参照ピクチャに適用される場合、テンプレートマッチングモード及び線形照度補償(Linear Illuminance Compensation、LIC)を無効にするように構成され得る。それに応じて、(LICのオン/オフを示す)LICフラグは、ビットストリームにおいてシグナリングされず、偽(オフ)であると推測される。一方、MVPインデックスは、RPRが選択された参照ピクチャに適用される場合、テンプレートマッチングによって暗黙的に導出される代わりに、ビットストリームにおいてシグナリングされ得る。しかしながら、ブロックレベル参照再順序付けプロセスが適用される場合、選択された参照ピクチャは、構文解析段階中に未知であり得る(参照ピクチャの再順序付けは、構成段階中に行われ、構成段階は、通常、シンタックス要素を構文解析するよりもはるかに遅く、したがって、相対的なシンタックス要素の構文解析の背後で行われるため)。したがって、選択された参照ピクチャにRPRが適用されるか否かは、LICフラグ(又は、MVPインデックス)が存在するか否かを判定するときに未知であり得る。そのような問題を解決するために、参照ピクチャ再順序付けとRPRとの間の相互作用に関連する技法が、以下で説明される。
【0105】
[0110] 1つの例示的な技法では、ビデオデコーダ300は、参照ピクチャ再順序付け及びRPRが排他的であるように構成され得る。一例では、SPSレベルRPR有効化フラグが真である場合、SPSレベル参照ピクチャ再順序付け有効化フラグは偽であると推測されるか、又は偽であるように制約される。
【0106】
[0111] 別の例示的な技法では、参照ピクチャ又はペアになった参照ピクチャのうちの1つがスケーリングされる(例えば、RPRが適用される)場合、ビデオデコーダ300は、参照ピクチャ又は参照ピクチャペア再順序付けプロセスにおける対応するコストを最大値に設定するように構成される。このようにして、スケーリングされた参照ピクチャは、常に、再順序付けされたリストの後ろにあり得、例えば、スケーリングされた参照ピクチャは、常に、スケーリングされていない参照ピクチャのインデックスよりも大きいインデックスを有する。スライスレベル又はピクチャレベルにおいて、スケーリングされていない参照ピクチャ(又は参照ピクチャペア)の数は、NumNonScaledとして示されるように、事前計算され得る。再順序付けされたリスト中の選択された参照ピクチャのインデックスを構文解析した後、ビデオデコーダ300は、(再順序付けプロセスを実行することなく)インデックス値をNと比較することによって、選択された参照ピクチャがスケーリングされたピクチャであるかどうかを判定し得る。したがって、インデックスがNumNonScaled以上である場合、選択された参照は、スケーリングされた参照ピクチャであると判定されるか、又はそうでなければスケーリングされていないと判定され得る。
【0107】
[0112]
図3は、本開示の技法を実行し得る、例示的なビデオエンコーダ200を例解するブロック図である。
図3は、説明のために提供され、本開示において広く例示されて説明される技法を限定するものとみなされるべきでない。説明のために、本開示は、VVC(開発中のITU-T H.266)及びHEVC(ITU-T H.265)の技法によるビデオエンコーダ200を説明する。しかしながら、本開示の技法は、他のビデオコーディング規格、並びに、AV1及びAV1の後継のビデオコーディングフォーマットなどのビデオコーディングフォーマットに構成された、ビデオ符号化デバイスによって実施され得る。
【0108】
[0113]
図3の実施例では、ビデオエンコーダ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は、これら及び他の機能を実行するための追加又は代替のプロセッサ又は処理回路を含んでもよい。
【0109】
[0114] ビデオデータメモリ230は、ビデオエンコーダ200の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオエンコーダ200は、ビデオデータメモリ230に記憶されたビデオデータを、例えば、ビデオソース104(
図1)から受信し得る。DPB218は、ビデオエンコーダ200によって後続のビデオデータの予測において使用するための参照ビデオデータを記憶する、参照ピクチャメモリとして機能してもよい。ビデオデータメモリ230及びDPB218は、同期ダイナミックランダムアクセスメモリ(synchronous dynamic random access memory、SDRAM)を含むDRAM、磁気抵抗RAM(magnetoresistive RAM、MRAM)、抵抗RAM(resistive RAM、RRAM)、又は他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ230及びDPB218は、同じメモリデバイス又は別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ230は、例解されるように、ビデオエンコーダ200の他の構成要素とともにオンチップであってもよく、又はそれらの構成要素に対してオフチップであってもよい。
【0110】
[0115] 本開示では、ビデオデータメモリ230への言及は、そのように特に記載されない限り、ビデオエンコーダ200の内部のメモリに、又はそのように特に記載されない限り、ビデオエンコーダ200の外部のメモリに限定されるものとして、解釈されるべきではない。むしろ、ビデオデータメモリ230への言及は、ビデオエンコーダ200が符号化のために受信するビデオデータ(例えば、符号化されるべき現在のブロックに対するビデオデータ)を記憶する参照メモリとして理解されるべきである。
図1のメモリ106はまた、ビデオエンコーダ200の様々なユニットからの出力の一時的な記憶域を提供し得る。
【0111】
[0116]
図3の様々なユニットは、ビデオエンコーダ200によって実行される動作を理解する助けとなるように例解されている。ユニットは、固定機能回路、プログラマブル回路、又はそれらの組み合わせとして実装され得る。固定機能回路は、特定の機能を提供する回路を指し、実行され得る動作があらかじめ決められている。プログラマブル回路は、様々なタスクを実行するようにプログラムされ得る回路を指し、実行され得る動作においてフレキシブルな機能を提供する。例えば、プログラマブル回路は、ソフトウェア又はファームウェアの命令によって定義される方式で、プログラマブル回路を動作させるソフトウェア又はファームウェアを実行し得る。固定機能回路は(例えば、パラメータを受信するため又はパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が実行する動作のタイプは一般に不変である。いくつかの例では、ユニットのうちの1つ又は複数は、異なる回路ブロック(固定機能又はプログラマブル)であってもよく、いくつかの例では、ユニットのうちの1つ又は複数は集積回路であってもよい。
【0112】
[0117] ビデオエンコーダ200は、算術論理ユニット(arithmetic logic units、ALUs)、基本機能ユニット(elementary function units、EFUs)、デジタル回路、アナログ回路、及び/又は、プログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオエンコーダ200の動作がプログラマブル回路によって実行されるソフトウェアを使用して実行される例では、メモリ106(
図1)が、ビデオエンコーダ200が受信及び実行するソフトウェアの命令(例えば、オブジェクトコード)を記憶してもよく、又はビデオエンコーダ200内の別のメモリ(図示せず)が、そのような命令を記憶してもよい。
【0113】
[0118] ビデオデータメモリ230は、受信されたビデオデータを記憶するように構成されている。ビデオエンコーダ200は、ビデオデータメモリ230からビデオデータのピクチャを取り出してもよく、ビデオデータを残差生成ユニット204及びモード選択ユニット202に提供してもよい。ビデオデータメモリ230中のビデオデータは、符号化されるべき未加工のビデオデータであってもよい。
【0114】
[0119] モード選択ユニット202は、動き推定ユニット222、動き補償ユニット224、及びイントラ予測ユニット226を含む。モード選択ユニット202は、他の予測モードに従ってビデオ予測を実行するための追加の機能ユニットを含んでもよい。例として、モード選択ユニット202は、パレットユニット、(動き推定ユニット222及び/又は動き補償ユニット224の一部であり得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(linear model、LM)ユニットなどを含んでもよい。
【0115】
[0120] モード選択ユニット202は一般に、複数の符号化パスを協調させて、符号化パラメータの組み合わせと、そのような組み合わせに対して結果として得られるレート歪み値を試験する。符号化パラメータは、CUへのCTUの分割、CUに対する予測モード、CUの残差データに対する変換タイプ、CUの残差データに対する量子化パラメータなどを含んでもよい。モード選択ユニット202は最終的に、他の試験された組み合わせより良いレート歪み値を有する符号化パラメータの組み合わせを選択し得る。
【0116】
[0121] ビデオエンコーダ200は、ビデオデータメモリ230から取り出されたピクチャを一連のCTUに分割してもよく、1つ又は複数のCTUをスライス内にカプセル化してもよい。モード選択ユニット202は、上述のMTT構造、QTBT構造、スーパーブロック構造、又はクワッドツリー構造などの、ツリー構造に従ってピクチャのCTUを分割し得る。上記で説明したように、ビデオエンコーダ200は、ツリー構造に従ってCTUを分割することから1つ又は複数のCUを形成し得る。そのようなCUは、一般に、「ビデオブロック」又は「ブロック」と称されることもある。
【0117】
[0122] 一般に、モード選択ユニット202はまた、現在のブロック(例えば、現在のCU、又はHEVCでは、PU及びTUの重複部分)に対する予測ブロックを生成するように、その構成要素(例えば、動き推定ユニット222、動き補償ユニット224、及びイントラ予測ユニット226)を制御する。現在のブロックのインター予測の場合、動き推定ユニット222は、1つ又は複数の参照ピクチャ(例えば、DPB218内に記憶されている1つ又は複数の以前にコーディングされたピクチャ)の中の1つ又は複数の厳密に一致する参照ブロックを識別するために、動き探索を実行し得る。具体的には、動き推定ユニット222は、例えば、差分絶対値和(SAD)、差分二乗和(SSD)、平均絶対差(MAD)、平均二乗差(MSD)などに従って、可能性のある参照ブロックが現在のブロックとどれだけ類似しているかを表す値を計算し得る。動き推定ユニット222は一般に、現在のブロックと検討されている参照ブロックとの間のサンプルごとの差分を使用して、これらの計算を実行し得る。動き推定ユニット222は、現在のブロックと最もよく一致する参照ブロックを示す、これらの計算に起因する最低の値を有する参照ブロックを識別し得る。
【0118】
[0123] 動き推定ユニット222は、現在のピクチャの中の現在のブロックの位置に対する参照ピクチャの中の参照ブロックの位置を定義する、1つ又は複数の動きベクトル(motion vectors、MVs)を形成し得る。動き推定ユニット222は、次いで、動きベクトルを動き補償ユニット224に提供し得る。例えば、単方向のインター予測の場合、動き推定ユニット222は単一の動きベクトルを提供してもよく、一方、双方向インター予測の場合、動き推定ユニット222は2つの動きベクトルを提供してもよい。動き補償ユニット224は、次いで、動きベクトルを使用して予測ブロックを生成し得る。例えば、動き補償ユニット224は、動きベクトルを使用して参照ブロックのデータを取り出してもよい。別の例として、動きベクトルが小数サンプル精度を有する場合、動き補償ユニット224は、1つ又は複数の補間フィルタに従って、予測ブロックに対する値を補間し得る。その上、双方向インター予測の場合、動き補償ユニット224は、それぞれの動きベクトルによって識別される2つの参照ブロックに対するデータを取り出し、例えば、サンプルごとの平均又は加重平均を通じて、取り出されたデータを組み合わせ得る。
【0119】
[0124] 動き推定ユニット222及び動き補償ユニット224は、AV1ビデオコーディングフォーマットに従って動作する場合、並進動き補償、アフィン動き補償、重複ブロック動き補償(overlapped block motion compensation、OBMC)、及び/又は合成インター-イントラ予測を使用して、ビデオデータのコーディングブロック(例えば、ルーマコーディングブロックとクロマコーディングブロックの両方)を符号化するように構成され得る。
【0120】
[0125] ブロックをどのように符号化するかを判定することの一部として、次いで符号化されたブロックを後で復号することの一部として、動き推定ユニット222及び動き補償ユニット224は、本開示の様々な技法を実行するように構成され得る。例えば、動き推定ユニット222及び/又は動き補償ユニット224は、適応参照ピクチャ再順序付けプロセスに基づいて、スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成し、次いで、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の異なる順序付けを生成するように構成され得る。動き補償ユニット224は、参照ピクチャの第1の順序付けを使用して第1のブロックを復号し、参照ピクチャの第2の順序付けを使用して第2のブロックを復号するように構成され得る。
【0121】
[0126] 別の例として、イントラ予測又はイントラ予測コーディングの場合、イントラ予測ユニット226は、現在のブロックに隣接サンプルから予測ブロックを生成し得る。例えば、指向性モードの場合、イントラ予測ユニット226は一般に、予測ブロックを作り出すために、隣接サンプルの値を数学的に組み合わせて、現在のブロックにわたって定められた方向においてこれらの計算された値をポピュレートし得る。別の例として、DCモードの場合、イントラ予測ユニット226は、現在のブロックに隣接サンプルの平均を計算し、予測ブロックの各サンプルに対するこの得られた平均を含むように予測ブロックを生成し得る。
【0122】
[0127] イントラ予測ユニット226は、AV1ビデオコーディングフォーマットに従って動作する場合、方向性イントラ予測、非方向性イントラ予測、再帰的フィルタイントラ予測、ルーマからクロマ(chroma-from-luma、CFL)予測、イントラブロックコピー(intra block copy、IBC)、及び/又はカラーパレットモードを使用して、ビデオデータのコーディングブロック(例えば、ルーマコーディングブロックとクロマコーディングブロックとの両方)を符号化するように構成され得る。モード選択ユニット202は、他の予測モードに従ってビデオ予測を実行するための追加の機能ユニットを含んでもよい。
【0123】
[0128] モード選択ユニット202は、予測ブロックを残差生成ユニット204に提供する。残差生成ユニット204は、ビデオデータメモリ230から現在のブロックの未加工の符号化されていないバージョンを受信し、モード選択ユニット202から予測ブロックを受信する。残差生成ユニット204は、現在のブロックと予測ブロックとのサンプルごとの差分を計算する。得られるサンプルごとの差分は、現在のブロックに対する残差ブロックを定義する。いくつかの例では、残差生成ユニット204はまた、残差差分パルスコード変調(residual differential pulse code modulation、RDPCM)を使用して残差ブロックを生成するために、残差ブロックの中のサンプル値の間の差分を判定し得る。いくつかの例では、残差生成ユニット204は、バイナリ減算を実行する1つ又は複数の減算器回路を使用して形成され得る。
【0124】
[0129] モード選択ユニット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サイズのための非対称分割をサポートし得る。
【0125】
[0130] モード選択ユニット202がCUをPUに更に分割しない例では、各CUはルーマコーディングブロック及び対応するクロマコーディングブロックと関連付けられてもよい。上記のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指すことがある。ビデオエンコーダ200及びビデオデコーダ300は、2N×2N、2N×N、又はN×2NのCUサイズをサポートしてもよい。
【0126】
[0131] いくつかの例として、イントラブロックコピーモードコーディング、アフィンモードコーディング、及び線形モデル(LM)モードコーディングなどの他のビデオコーディング技法の場合、モード選択ユニット202は、コーディング技法に関連付けられたそれぞれのユニットを介して、符号化されている現在のブロックに対する予測ブロックを生成する。パレットモードコーディングなどのいくつかの例では、モード選択ユニット202は、予測ブロックを生成しなくてもよく、代わりに、選択されたパレットに基づいてブロックを再構成するための方式を示すシンタックス要素を生成してもよい。そのようなモードでは、モード選択ユニット202は、これらのシンタックス要素が符号化されるようにエントロピー符号化ユニット220に提供し得る。
【0127】
[0132] 上記で説明したように、残差生成ユニット204は、現在のブロック及び対応する予測ブロックに対するビデオデータを受信する。残差生成ユニット204は次いで、現在のブロックのための残差ブロックを生成する。残差ブロックを生成するために、残差生成ユニット204は、予測ブロックと現在のブロックとのサンプルごとの差を計算する。
【0128】
[0133] 変換処理ユニット206は、変換係数のブロック(本明細書で「変換係数ブロック」と称される)を生成するために、1つ又は複数の変換を残差ブロックに適用する。変換処理ユニット206は、変換係数ブロックを形成するために、様々な変換を残差ブロックに適用し得る。例えば、変換処理ユニット206は、離散コサイン変換(DCT)、方向変換、カルーネンレーベ変換(KLT)、又は概念的に類似の変換を残差ブロックに適用し得る。いくつかの例では、変換処理ユニット206は、複数の変換、例えば、1次変換及び回転変換などの2次変換を、残差ブロックに対して実行してもよい。いくつかの例では、変換処理ユニット206は、変換を残差ブロックに適用しない。
【0129】
[0134] 変換処理ユニット206は、AV1に従って動作する場合、(本明細書では「変換係数ブロック」と称される)変換係数のブロックを生成するために、1つ又は複数の変換を残差ブロックに適用し得る。変換処理ユニット206は、変換係数ブロックを形成するために、様々な変換を残差ブロックに適用し得る。例えば、変換処理ユニット206は、離散コサイン変換(DCT)、非対称離散サイン変換(asymmetric discrete sine transform、ADST)、反転ADST(例えば、逆順におけるADST)、又は恒等変換(identity transform、IDTX)、を含み得る水平/垂直変換組み合わせを適用し得る。恒等変換を使用する場合、変換は、垂直方向又は水平方向のうちの1つにおいてスキップされる。いくつかの例では、変換処理はスキップされ得る。
【0130】
[0135] 量子化ユニット208は、変換係数ブロックにおける変換係数を量子化して量子化された変換係数ブロックを生成してもよい。量子化ユニット208は、現在のブロックに関連付けられた量子化パラメータ(quantization parameter、QP)値に従って、変換係数ブロックの変換係数を量子化し得る。ビデオエンコーダ200は(例えば、モード選択ユニット202を介して)、CUに関連付けられたQP値を調整することによって、現在のブロックに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。量子化は情報の損失をもたらすことがあり、したがって、量子化された変換係数は、変換処理ユニット206によって生成される元の変換係数より精度が低いことがある。
【0131】
[0136] 逆量子化ユニット210及び逆変換処理ユニット212は、それぞれ、逆量子化及び逆変換を量子化された変換係数ブロックに適用して、変換係数ブロックから残差ブロックを再構成し得る。再構成ユニット214は、モード選択ユニット202によって生成される再構成された残差ブロック及び予測ブロックに基づいて、(ある程度の歪みを伴う可能性があるが)現在のブロックに対応する再構成されたブロックを生成し得る。例えば、再構成ユニット214は、再構成されたブロックを生成するために、再構成された残差ブロックのサンプルを、モード選択ユニット202によって生成された予測ブロックからの対応するサンプルに加算し得る。
【0132】
[0137] フィルタユニット216は、再構成されたブロックに対して1つ又は複数のフィルタ動作を実行してもよい。例えば、フィルタユニット216は、CUのエッジに沿ったブロッキネスアーチファクトを低減するためにデブロッキング動作を実行し得る。フィルタユニット216の動作は、いくつかの例では、スキップされ得る。
【0133】
[0138] フィルタユニット216は、AV1に従って動作する場合、再構成されたブロックに対して1つ又は複数のフィルタ動作を実施し得る。例えば、フィルタユニット216は、CUのエッジに沿ったブロッキネスアーチファクトを低減するためにデブロッキング動作を実行し得る。他の例では、フィルタユニット216は、制約付き方向性強調フィルタ(constrained directional enhancement filter、CDEF)を適用してもよく、これは、デブロッキングの後に適用されてもよく、推定されたエッジ方向に基づく、分離不可能、非線形、ローパス方向性フィルタの適用を含み得る。フィルタユニット216はまた、ループ復元フィルタを含んでもよく、これは、CDEFの後に適用され、分離可能対称正規化ウィーナーフィルタ又はデュアル自己誘導フィルタを含み得る。
【0134】
[0139] ビデオエンコーダ200は、再構成されたブロックをDPB218に記憶する。例えば、フィルタユニット216の動作が実行されない例では、再構成ユニット214が再構成されたブロックをDPB218に記憶し得る。フィルタユニット216の動作が実行される例では、フィルタユニット216が、フィルタ処理された再構成されたブロックをDPB218に記憶し得る。動き推定ユニット222及び動き補償ユニット224は、後で符号化されるピクチャのブロックをインター予測するために、再構成された(かつ、フィルタ処理された可能性のある)ブロックから形成された参照ピクチャをDPB218から取り出し得る。加えて、イントラ予測ユニット226は、現在のピクチャの中の他のブロックをイントラ予測するために、DPB218内の、現在のピクチャの再構成されたブロックを使用し得る。
【0135】
[0140] 一般に、エントロピー符号化ユニット220は、ビデオエンコーダ200の他の機能構成要素から受信されたシンタックス要素をエントロピー符号化し得る。例えば、エントロピー符号化ユニット220は、量子化ユニット208からの量子化された変換係数ブロックをエントロピー符号化し得る。別の例として、エントロピー符号化ユニット220は、モード選択ユニット202からの予測シンタックス要素(例えば、インター予測のための動き情報又はイントラ予測のためのイントラモード情報)をエントロピー符号化し得る。エントロピー符号化ユニット220は、エントロピー符号化データを生成するために、ビデオデータの別の例であるシンタックス要素に対して1つ又は複数のエントロピー符号化動作を実行し得る。例えば、エントロピー符号化ユニット220は、コンテキスト適応可変長コーディング(context-adaptive variable length coding、CAVLC)動作、CABAC動作、可変長-可変長(variable-to-variable、V2V)コーディング動作、シンタックスベースコンテキスト適応バイナリ算術コーディング(syntax-based context-adaptive binary arithmetic coding、SBAC)動作、確率間隔分割エントロピー(Probability Interval Partitioning Entropy、PIPE)コーディング動作、指数ゴロム符号化動作、又は別のタイプのエントロピー符号化動作を、データに対して実行し得る。いくつかの例では、エントロピー符号化ユニット220は、シンタックス要素がエントロピー符号化されないバイパスモードで動作し得る。
【0136】
[0141] ビデオエンコーダ200は、スライス又はピクチャのブロックを再構成するために必要とされるエントロピー符号化シンタックス要素を含むビットストリームを出力し得る。具体的には、エントロピー符号化ユニット220がビットストリームを出力してもよい。
【0137】
[0142] エントロピー符号化ユニット220は、AV1に従って、シンボル対シンボル適応マルチシンボル算術コーダ(symbol-to-symbol adaptive multi-symbol arithmetic coder)として構成され得る。AV1におけるシンタックス要素はN個の要素のアルファベットを含み、コンテキスト(例えば、確率モデル)はN個の確率のセットを含む。エントロピー符号化ユニット220は、確率をnビット(例えば、15ビット)累積分布関数(cumulative distribution functions、CDFs)として記憶し得る。エントロピー符号化ユニット22は、コンテキストを更新するために、アルファベットサイズに基づく更新ファクタを用いて、再帰的スケーリングを実施し得る。
【0138】
[0143] 上記で説明した動作は、ブロックに関して説明される。そのような説明は、ルーマコーディングブロック及び/又はクロマコーディングブロックのための動作であるものとして理解されるべきである。上記で説明したように、いくつかの例では、ルーマコーディングブロック及びクロマコーディングブロックは、CUのルーマ成分及びクロマ成分である。いくつかの例では、ルーマコーディングブロック及びクロマコーディングブロックは、PUのルーマ成分及びクロマ成分である。
【0139】
[0144] いくつかの例では、ルーマコーディングブロックに関して実行される動作は、クロマコーディングブロックに対して繰り返される必要はない。一例として、ルーマコーディングブロックのための動きベクトル(MV)及び参照ピクチャを識別するための動作が、クロマブロックのためのMV及び参照ピクチャを識別するために繰り返される必要はない。むしろ、ルーマコーディングブロックのためのMVは、クロマブロックのためのMVを判定するためにスケーリングされてもよく、参照ピクチャも同じであってもよい。別の例として、イントラ予測プロセスは、ルーマコーディングブロック及びクロマコーディングブロックについて同じであってもよい。
【0140】
[0145] ビデオエンコーダ200は、ビデオデータを記憶するように構成されたメモリと、回路機構において実装された1つ又は複数の処理ユニットであって、第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成し、第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成するように構成され、第1の順序付けは第2の順序付けとは異なる、処理ユニットと、を含む、ビデオデータを符号化するように構成されたデバイスの一例を表す。
【0141】
[0146]
図4は、本開示の技法を実行し得る、例示的なビデオデコーダ300を例解するブロック図である。
図4は、説明のために提供され、本開示において広く例示されて説明される技法を限定するものではない。説明のために、本開示は、VVC(開発中のITU-T H.266)、及びHEVC(ITU-T H.265)の技法によるビデオデコーダ300について説明する。しかしながら、本開示の技法は、他のビデオコーディング規格に従って構成されたビデオコーディングデバイスによって実行され得る。
【0142】
[0147]
図4の実施例では、ビデオデコーダ300は、コーディング済ピクチャバッファ(coded picture buffer、CPB)メモリ320、エントロピー復号ユニット302、予測処理ユニット304、逆量子化ユニット306、逆変換処理ユニット308、再構成ユニット310、フィルタユニット312、及び復号されたピクチャバッファ(decoded picture buffer、DPB)314を含む。CPBメモリ320、エントロピー復号ユニット302、予測処理ユニット304、逆量子化ユニット306、逆変換処理ユニット308、再構成ユニット310、フィルタユニット312、及びDPB314のいずれか又は全てが、1つ若しくは複数のプロセッサにおいて、又は処理回路において実装され得る。例えば、ビデオデコーダ300のユニットは、ハードウェア回路の一部としての1つ若しくは複数の回路又は論理要素として、あるいはプロセッサ、ASIC、又はFPGAの一部として実装され得る。その上、ビデオデコーダ300は、これらの機能及び他の機能を実行するための追加又は代替のプロセッサ又は処理回路を含んでもよい。
【0143】
[0148] 予測処理ユニット304は、動き補償ユニット316及びイントラ予測ユニット318を含む。予測処理ユニット304は、他の予測モードに従って予測を実行するための追加のユニットを含み得る。例として、予測処理ユニット304は、パレットユニット、(動き補償ユニット316の一部を形成し得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含んでもよい。他の例では、ビデオデコーダ300は、より多い、より少ない、又は異なる機能構成要素を含んでもよい。
【0144】
[0149] AV1に従って動作するとき、動き補償ユニット316は、上述したように、並進動き補償、アフィン動き補償、OBMC、及び/又は合成インター-イントラ予測を使用して、ビデオデータのコーディングブロック(例えば、ルーマコーディングブロックとクロマコーディングブロックの両方)を復号するように構成され得る。イントラ予測ユニット318は、上記で説明したように、方向性イントラ予測、非方向性イントラ予測、再帰的フィルタイントラ予測、CFL、イントラブロックコピー(IBC)、及び/又はカラーパレットモードを使用して、ビデオデータのコーディングブロック(例えば、ルーマコーディングブロックとクロマコーディングブロックの両方)を復号するように構成され得る。
【0145】
[0150] 動き補償ユニット316は、本開示の様々な技法を実行するように構成され得る。例えば、動き補償ユニット316は、適応参照ピクチャ再順序付けプロセスに基づいて、スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成し、次いで、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の異なる順序付けを生成するように構成され得る。動き補償ユニット316は、参照ピクチャの第1の順序付けを使用して第1のブロックを復号し、参照ピクチャの第2の順序付けを使用して第2のブロックを復号するように構成され得る。
【0146】
[0151] CPBメモリ320は、ビデオデコーダ300の構成要素によって復号されるべき符号化されたビデオビットストリームなどのビデオデータを記憶してもよい。CPBメモリ320内に記憶されたビデオデータは、例えば、コンピュータ可読媒体110(
図1)から取得され得る。CPBメモリ320は、符号化されたビデオビットストリームからの符号化されたビデオデータ(例えば、シンタックス要素)を記憶するCPBを含んでもよい。また、CPBメモリ320は、ビデオデコーダ300の様々なユニットからの出力を表す一時的なデータなどの、コーディングされたピクチャのシンタックス要素以外のビデオデータを記憶してもよい。DPB314は、概して、符号化されたビデオビットストリームの後続のデータ又はピクチャを復号するときにビデオデコーダ300が参照ビデオデータとして出力及び/又は使用し得る復号されたピクチャを記憶する。CPBメモリ320及びDPB314は、SDRAM、MRAM、RRAM、又は他のタイプのメモリデバイスなどを含め、DRAMなどの様々なメモリデバイスのうちのいずれかによって形成され得る。CPBメモリ320及びDPB314は、同じメモリデバイス又は別個のメモリデバイスによって提供され得る。様々な例では、CPBメモリ320は、ビデオデコーダ300の他の構成要素とともにオンチップであってもよく、又はそれらの構成要素に対してオフチップであってもよい。
【0147】
[0152] 追加又は代替として、いくつかの例では、ビデオデコーダ300は、メモリ120(
図1)からコーディングされたビデオデータを取り出し得る。すなわち、メモリ120は、CPBメモリ320について上で考察されたようなデータを記憶し得る。同様に、メモリ120は、ビデオデコーダ300の機能の一部又は全てがビデオデコーダ300の処理回路によって実行されるべきソフトウェアにおいて実装される場合、ビデオデコーダ300によって実行されるべき命令を記憶してもよい。
【0148】
[0153]
図4に示される様々なユニットは、ビデオデコーダ300によって実行される動作を理解する助けとなるように例解されている。ユニットは、固定機能回路、プログラマブル回路、又はそれらの組み合わせとして実装され得る。
図3と同様に、固定機能回路は、特定の機能を提供する回路を指し、実行され得る動作があらかじめ設定されている。プログラマブル回路は、様々なタスクを実行するようにプログラムされ得る回路を指し、実行され得る動作においてフレキシブルな機能を提供する。例えば、プログラマブル回路は、ソフトウェア又はファームウェアの命令によって定義される方式で、プログラマブル回路を動作させるソフトウェア又はファームウェアを実行し得る。固定機能回路は(例えば、パラメータを受信するため又はパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が実行する動作のタイプは一般に不変である。いくつかの例では、ユニットのうちの1つ又は複数は、異なる回路ブロック(固定機能又はプログラマブル)であってもよく、いくつかの例では、ユニットのうちの1つ又は複数は集積回路であってもよい。
【0149】
[0154] ビデオデコーダ300は、ALU、EFU、デジタル回路、アナログ回路、及び/又は、プログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオデコーダ300の動作が、プログラマブル回路上で実行するソフトウェアによって実行される例では、オンチップメモリ又はオフチップメモリが、ビデオデコーダ300が受信及び実行するソフトウェアの命令(例えば、オブジェクトコード)を記憶してもよい。
【0150】
[0155] エントロピー復号ユニット302は、シンタックス要素を再生するために、符号化されたビデオデータをCPBから受信しビデオデータをエントロピー復号してもよい。予測処理ユニット304、逆量子化ユニット306、逆変換処理ユニット308、再構成ユニット310、及びフィルタユニット312は、ビットストリームから抽出されたシンタックス要素に基づいて、復号されたビデオデータを生成してもよい。
【0151】
[0156] 一般に、ビデオデコーダ300は、ブロックごとにピクチャを再構成する。ビデオデコーダ300は、各ブロックに対する再構成動作を個別に実行し得る(現在再構成されているブロック、すなわち復号されているブロックは、「現在のブロック」と称され得る)。
【0152】
[0157] エントロピー復号ユニット302は、量子化された変換係数ブロックの量子化された変換係数、並びに量子化パラメータ(QP)及び/又は変換モード指示などの変換情報を規定する、シンタックス要素をエントロピー復号してもよい。逆量子化ユニット306は、量子化の程度、及び同様に逆量子化ユニット306が適用すべき逆量子化の程度を判定するために、量子化変換係数ブロックに関連付けられたQPを使用してもよい。逆量子化ユニット306は、例えば、量子化された変換係数を逆量子化するために、ビット単位の左シフト演算を実行してもよい。それによって、逆量子化ユニット306は、変換係数を含む変換係数ブロックを形成し得る。
【0153】
[0158] 逆量子化ユニット306が変換係数ブロックを形成した後、逆変換処理ユニット308は、現在のブロックに関連付けられた残差ブロックを生成するために、変換係数ブロックに1つ又は複数の逆変換を適用し得る。例えば、逆変換処理ユニット308は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、又は別の逆変換を変換係数ブロックに適用し得る。
【0154】
[0159] 更に、予測処理ユニット304は、エントロピー復号ユニット302によってエントロピー復号された予測情報シンタックス要素に従って予測ブロックを生成する。例えば、現在のブロックがインター予測されることを、予測情報シンタックス要素が示す場合、動き補償ユニット316は、予測ブロックを生成し得る。この場合、予測情報シンタックス要素は、参照ブロックをそこから取り出すべきDPB314内の参照ピクチャ、並びに、現在のピクチャの中の現在のブロックの位置に対する参照ピクチャの中の参照ブロックの位置を識別する動きベクトルを示し得る。動き補償ユニット316は、概して、動き補償ユニット224(
図3)に関して説明した方式と実質的に同様の方式で、インター予測プロセスを実行することができる。
【0155】
[0160] 別の例として、現在のブロックがイントラ予測されることを、予測情報シンタックス要素が示す場合、イントラ予測ユニット318は、予測情報シンタックス要素によって示されるイントラ予測モードに従って、予測ブロックを生成し得る。この場合も、イントラ予測ユニット318は、概して、イントラ予測ユニット226(
図3)に関して説明した方式と実質的に同様の方式で、イントラ予測プロセスを実行することができる。イントラ予測ユニット318は、現在のブロックに隣接サンプルのデータをDPB314から取り出し得る。
【0156】
[0161] 再構成ユニット310は、予測ブロックと残差ブロックとを使用して現在のブロックを再構成し得る。例えば、再構成ユニット310は、現在のブロックを再構成するために、予測ブロックの対応するサンプルに残差ブロックのサンプルを追加し得る。
【0157】
[0162] フィルタユニット312は、再構成されたブロックに対して1つ又は複数のフィルタ動作を実行してもよい。例えば、フィルタユニット312は、再構成されたブロックのエッジに沿ったブロッキネスアーチファクトを低減するために、デブロッキング動作を実行してもよい。フィルタユニット312の動作は必ずしも全ての例において実行される必要はない。
【0158】
[0163] ビデオデコーダ300は、再構成されたブロックをDPB314内に記憶してもよい。例えば、フィルタユニット312の動作が実行されない例では、再構成ユニット310は再構成されたブロックをDPB314に記憶し得る。フィルタユニット312の動作が実行される例では、フィルタユニット312は、フィルタ処理された再構成されたブロックをDPB314に記憶し得る。上で考察されたように、DPB314は、イントラ予測のための現在のピクチャ及び後続の動き補償のための以前に復号されたピクチャのサンプルなどの参照情報を、予測処理ユニット304に提供してもよい。更に、ビデオデコーダ300は、
図1の表示デバイス118などの表示デバイス上に後で表示するための復号されたピクチャ(例えば、復号されたビデオ)を、DPB314から出力し得る。
【0159】
[0164] このようにして、ビデオデコーダ300は、ビデオデータを記憶するように構成されたメモリと、回路機構において実装された1つ又は複数の処理ユニットであって、第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成し、第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成するように構成され、第1の順序付けは第2の順序付けとは異なる、処理ユニットと、を含む、ビデオ復号化デバイスの一例を表す。
【0160】
[0165]
図5は、本開示の技法による、現在のブロックを符号化するための例示的なプロセスを例解するフローチャートである。現在のブロックは、現在のCUを備え得る。ビデオエンコーダ200(
図1及び
図3)に関して説明するが、他のデバイスが
図5のプロセスと類似のプロセスを実行するように構成され得ることを理解されたい。
【0161】
[0166] この例では、ビデオエンコーダ200は最初に、現在のブロックを予測する(350)。例えば、ビデオエンコーダ200は、現在のブロックに対する予測ブロックを形成することができる。次いで、ビデオエンコーダ200は、現在のブロックに対する残差ブロックを算出することができる(352)。残差ブロックを計算するために、ビデオエンコーダ200は、元の符号化されていないブロックと現在のブロックに対する予測ブロックとの間の差分を計算することができる。ビデオエンコーダ200は、次いで、残差ブロックを変換し、残差ブロックの変換係数を量子化することができる(354)。次に、ビデオエンコーダ200は、残差ブロックの量子化された変換係数を走査することができる(356)。走査の間又は走査に続いて、ビデオエンコーダ200は、変換係数をエントロピー符号化することができる(358)。例えば、ビデオエンコーダ200は、CAVLC又はCABACを使用して変換係数を符号化することができる。ビデオエンコーダ200は、次いで、ブロックのエントロピー符号化されたデータを出力することができる(360)。
【0162】
[0167]
図6は、本開示の技法による、ビデオデータの現在のブロックを復号するための例示的なプロセスを例解するフローチャートである。現在のブロックは、現在のCUを備え得る。ビデオデコーダ300(
図1及び
図4)に関して説明するが、他のデバイスが
図6のプロセスと類似のプロセスを実行するように構成され得ることを理解されたい。
【0163】
[0168] ビデオデコーダ300は、エントロピー符号化された予測情報及び現在のブロックに対応する残差ブロックの変換係数のエントロピー符号化されたデータなどの、現在のブロックのためのエントロピー符号化されたデータを受信することができる(370)。ビデオデコーダ300は、現在のブロックに対する予測情報を判定し、残差ブロックの変換係数を再生するために、エントロピー符号化されたデータをエントロピー復号することができる(372)。ビデオデコーダ300は、現在のブロックに対する予測ブロックを計算するために、例えば、現在のブロックに対する予測情報によって示されるようなイントラ予測モード又はインター予測モードを使用して、現在のブロックを予測することができる(374)。ビデオデコーダ300は、次いで、量子化された変換係数のブロックを作成するために、再生された変換係数を逆走査することができる(376)。ビデオデコーダ300は、次いで、残差ブロックを生成するために、変換係数を逆量子化し、変換係数に逆変換を適用することができる(378)。ビデオデコーダ300は、予測ブロック及び残差ブロックを合成することによって、現在のブロックを最終的に復号することができる(380)。
【0164】
[0169]
図7は、本開示の技法による、ビデオデータの現在のブロックを復号するための例示的なプロセスを例解するフローチャートである。ブロックは、CUを備え得る。ビデオデコーダ300(
図1及び
図4)に関して説明するが、他のデバイスが
図7のプロセスと類似のプロセスを実行するように構成され得ることを理解されたい。更に、ビデオエンコーダ200などのビデオエンコーダのビデオ復号ループもまた、
図7のプロセスを実行し得ることを理解されたい。
【0165】
[0170]
図7の例では、ビデオデコーダ300は、スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成する(400)。第1のブロックのための参照ピクチャの第1の順序付けを生成するために、ビデオデコーダ300は、インデックスを参照ピクチャに割り当て得る。
【0166】
[0171] ビデオデコーダ300は、参照ピクチャの第1の順序付けを使用して第1のブロックを復号する(402)。参照ピクチャの第1の順序付けを使用して第1のブロックを復号するために、ビデオデコーダ300は、例えば、参照ピクチャの第1の順序付けに基づいて、第1のブロックのための第1の参照ピクチャを判定し、第1の参照ピクチャ中のブロックから第1のブロックをインター予測し得る。第1のブロックをインター予測するために、ビデオデコーダ300は、例えば、AMVPを使用して動きベクトルを判定し、次いで、第1の参照ピクチャ中の予測ブロックを位置特定するために動きベクトルを使用し得る。
【0167】
[0172] ビデオデコーダ300は、適応参照ピクチャ再順序付けプロセスに基づいて、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成する(404)。第1のブロック及び第2のブロックは、例えば、同じピクチャ又はスライスに属してもよく、空間的に隣接するブロックであってもよい。第1の順序付けは、第2の順序付けとは異なる。第2のブロックのための参照ピクチャの第2の順序付けを生成するために、ビデオデコーダ300は、インデックスのうちの少なくともいくつかを第1の順序付けとは異なる参照ピクチャに割り当てる。いくつかの例では、第1及び第2のブロックの一方又は両方は、双予測ブロックであり得、その場合、ビデオデコーダ300は、ブロックのための2つのリストを維持し、2つの異なる参照ピクチャからの2つの予測ブロックに基づいて、最終予測ブロックを判定する。
【0168】
[0173] 上記で説明したように、いくつかの例では、適応参照ピクチャ再順序付けプロセスは、テンプレートマッチングプロセスを含み得る。いくつかの例では、双予測ブロックの場合、適応参照ピクチャ再順序付けプロセスは、バイラテラルマッチングプロセスを含み得る。いくつかの例では、適応参照ピクチャ再順序付けプロセスは、第1の参照ピクチャリスト中のピクチャのピクチャ順序カウント(POC)を第2の参照ピクチャリスト中のピクチャのPOCと比較することを含み得る。
【0169】
[0174] ビデオデコーダ300は、参照ピクチャの第2の順序付けを使用して第2のブロックを復号する(406)。第1のブロックと同様に、参照ピクチャの第2の順序付けを使用して第2のブロックを復号するために、ビデオデコーダ300は、例えば、参照ピクチャの第2の順序付けに基づいて、第2のブロックのための第2の参照ピクチャを判定し、第2の参照ピクチャ中のブロックから第2のブロックをインター予測し得る。第2のブロックをインター予測するために、ビデオデコーダ300は、例えば、AMVPを使用して動きベクトルを判定し、次いで、第2の参照ピクチャ中の予測ブロックを位置特定するために動きベクトルを使用し得る。
【0170】
[0175] 参照ピクチャの第2の順序付けを使用して第2のブロックを復号するために、ビデオデコーダ300は、例えば、動きベクトル予測子を識別する第1のシンタックス要素と、MVDを識別する第2のシンタックス要素と、参照ピクチャリスト中の参照ピクチャのインデックスを識別する第3のシンタックス要素と、を受信し得る。ビデオデコーダ300は、動きベクトル予測子をMVDに加算することによって動きベクトルを判定する。ビデオデコーダ300は、参照ピクチャのインデックス及び第2の順序付けに基づいて、参照ピクチャリスト中の参照ピクチャを識別し、動きベクトルに基づいて参照ピクチャ中の予測ブロックを位置特定し、予測ブロックを使用して第2のブロックを復号し得る。
【0171】
[0176] ビデオデコーダ300は、第1のブロック及び第2のブロックの復号されたバージョンを含む復号されたビデオデータを出力する(408)。ビデオデコーダ300は、例えば、記憶、送信、又は表示のために、復号されたビデオデータのピクチャを出力し得る。例では、
図7のプロセスがビデオエンコーダによって実行される場合、ビデオエンコーダは、復号されたピクチャがビデオデータの他のピクチャを符号化するために使用され得るように、復号されたピクチャバッファに記憶するために復号されたビデオデータを出力し得る。
【0172】
[0177] 以下の番号付き条項は、本開示で説明するデバイス及び技法の1つ又は複数の態様を例解する。
【0173】
[0178] 条項1A.ビデオデータをコーディングする方法であって、第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成することと、第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成することと、を含み、第1の順序付けは第2の順序付けとは異なる、方法。
【0174】
[0179] 条項2A.第1のブロック及び第2のブロックが同じスライスに属する、条項1Aに記載の方法。
【0175】
[0180] 条項3A.第1のブロック及び第2のブロックは、同じピクチャに属し、空間的に隣接するブロックである、条項1A又は2Aに記載の方法。
【0176】
[0181] 条項4A.第1のブロックのための参照ピクチャの第1の順序付けを生成することは、インデックスを参照ピクチャに割り当てることを含み、第2のブロックのための参照ピクチャの第2の順序付けを生成することは、インデックスのうちの少なくともいくつかを第1の順序付けとは異なる参照ピクチャに割り当てることを含む、条項1A~3Aのいずれかに記載の方法。
【0177】
[0182] 条項5A.第1のブロックのための参照ピクチャの第1の順序付けを生成することは、インデックスを参照ピクチャに割り当てることを含み、第2のブロックのための参照ピクチャの第2の順序付けを生成することは、参照ピクチャがスケーリングされたか否かに基づいて、インデックスのうちの少なくともいくつかを第1の順序付けとは異なる参照ピクチャに割り当てることを含む、条項1A~3Aのいずれかに記載の方法。
【0178】
[0183] 条項6A.第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成することは、参照ピクチャリスト中の参照ピクチャにテンプレートマッチングプロセスを適用することに基づいて、第1の順序付けを生成することを含み、第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成することは、参照ピクチャリスト中の参照ピクチャにテンプレートマッチングプロセスを適用することに基づいて、第2の順序付けを生成することを含む、条項1Aに記載の方法。
【0179】
[0184] 条項7A.第2のブロックは双予測ブロックを含む、条項1A~6Aのいずれか記載の方法。
【0180】
[0185] 条項8A.参照ピクチャリストは第1の参照ピクチャリストであり、方法は、第2の参照ピクチャリストを維持することを更に含む、条項7Aに記載の方法。
【0181】
[0186] 条項9A.第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成することは、第1の参照ピクチャリスト中のピクチャのピクチャ順序カウント(POC)を第2の参照ピクチャリスト中のピクチャのPOCと比較することを含む、条項8Aに記載の方法。
【0182】
[0187] 条項10A.参照ピクチャの第1の順序付けに基づいて、第1のブロックのための第1の参照ピクチャを判定することと、第1の参照ピクチャに基づいて、第1のブロックをインター予測することと、参照ピクチャの第2の順序付けに基づいて、第2のブロックのための第2の参照ピクチャを判定することと、第2の参照ピクチャに基づいて、第2のブロックをインター予測することと、を更に含む、条項1A~9Aのいずれかに記載の方法。
【0183】
[0188] 条項11A.第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成することに基づいて、動きベクトル差分のための符号予測を判定すること、を更に含む、条項10Aに記載の方法。
【0184】
[0189] 条項12A.条件に基づいて符号予測を無効にすること、を更に含む、条項1A~10Aのいずれかに記載の方法。
【0185】
[0190] 条項13A.予測された符号の数が閾値数を超えることに応答して、後続の符号を規則的にコーディングすることを更に含む、条項1A~10Aのいずれかに記載の方法。
【0186】
[0191] 条項14A.ビデオデータをコーディングする方法であって、ビデオデータの複数のブロックについて、参照ピクチャリサンプリングが有効にされると判定することと、その参照ピクチャリサンプリングが有効にされると判定することに応答して、参照ピクチャ再順序付けが無効にされると判定することと、を含む方法。
【0187】
[0192] 条項15A.参照ピクチャリサンプリングが有効にされると判定することは、シンタックス要素を受信することを含み、参照ピクチャ再順序付けが無効にされると判定することは、シンタックス要素の値に基づいて、参照ピクチャ再順序付けが無効にされると推測することを含む、条項14Aに記載の方法。
【0188】
[0193] 条項16A.コーディングすることは符号化することを含む、条項1A~15Aのいずれかに記載の方法。
【0189】
[0194] 条項17A.コーディングすることは復号することを含む、条項1A~15Aのいずれかに記載の方法。
【0190】
[0195] 条項18A.ビデオデータをコーディングするためのデバイスであって、条項1A~17Aのいずれかに記載の方法を実行するための1つ又は複数の手段を備えるデバイス。
【0191】
[0196] 条項19A.1つ又は複数の手段は、回路機構において実装された1つ又は複数のプロセッサを備える、条項18Aに記載のデバイス。
【0192】
[0197] 条項20A.ビデオデータを記憶するためのメモリを更に備える、条項18A及び19Aのいずれかに記載のデバイス。
【0193】
[0198] 条項21A.復号されたビデオデータを表示するように構成されたディスプレイを更に備える、条項18A~20Aのいずれかに記載のデバイス。
【0194】
[0199] 条項22A.デバイスは、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、又はセットトップボックスのうちの1つ又は複数を備える、条項18A~21Aのいずれかに記載のデバイス。
【0195】
[0200] 条項23A.デバイスは、ビデオデコーダを備える、条項18A~22Aのいずれかに記載のデバイス。
【0196】
[0201] 条項24A.デバイスは、ビデオエンコーダを備える、条項18A~23Aのいずれかに記載のデバイス。
【0197】
[0202] 条項25A.命令が記憶されているコンピュータ可読記憶媒体であって、命令が、実行されたとき、1つ又は複数のプロセッサに、条項1A~17Aのうちのいずれかの方法を実行させる、コンピュータ可読記憶媒体。
【0198】
[0203] 条項1B:ビデオデータの復号方法であって、スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成することであって、第1のブロックのための参照ピクチャの第1の順序付けを生成することは、インデックスを参照ピクチャに割り当てることを含む、生成することと、参照ピクチャの第1の順序付けを使用して第1のブロックを復号することと、適応参照ピクチャ再順序付けプロセスに基づいて、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成することであって、第1の順序付けは第2の順序付けとは異なり、第2のブロックのための参照ピクチャの第2の順序付けを生成することは、インデックスのうちの少なくともいくつかを第1の順序付けとは異なる参照ピクチャに割り当てることを含む、生成することと、参照ピクチャの第2の順序付けを使用して第2のブロックを復号することと、第1のブロック及び第2のブロックの復号されたバージョンを含む復号されたビデオデータを出力することと、を含む、方法。
【0199】
[0204] 条項2B:適応参照ピクチャ再順序付けプロセスは、テンプレートマッチングプロセスを含み、方法は、参照ピクチャリスト中の少なくとも第1の参照ピクチャ及び第2の参照ピクチャのためのテンプレートマッチングコストを判定することと、第1の参照ピクチャのためのテンプレートマッチングコストと第2の参照ピクチャのためのテンプレートマッチングコストとの比較に基づいて、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成することと、を更に含む、条項1Bに記載の方法。
【0200】
[0205] 条項3B:適応参照ピクチャ再順序付けプロセスは、バイラテラルマッチングプロセスを含む、条項1B又は2Bに記載の方法。
【0201】
[0206] 条項4B:適応参照ピクチャ再順序付けプロセスは、参照ピクチャリスト中の第1のピクチャのピクチャ順序カウント(POC)を参照ピクチャリスト中の第2のピクチャのPOCと比較することを含む、条項1B~3Bのいずれかに記載の方法。
【0202】
[0207] 条項5B:第1のブロック及び第2のブロックは、同じピクチャに属し、空間的に隣接するブロックである、条項1B~4Bのいずれかに記載の方法。
【0203】
[0208] 条項6B:第2のブロックは双予測ブロックを含み、参照ピクチャリストは第1の参照ピクチャリストであり、第2の参照ピクチャリストを維持することと、第1の参照ピクチャリスト及び第2の参照ピクチャリストを使用して第2のブロックを復号することと、を更に含む、条項1B~5Bのいずれかに記載の方法。
【0204】
[0209] 条項7B:参照ピクチャの第1の順序付けを使用して第1のブロックを復号することは、参照ピクチャの第1の順序付けに基づいて、第1のブロックのための第1の参照ピクチャを判定することと、第1の参照ピクチャに基づいて、第1のブロックをインター予測することと、を含み、参照ピクチャの第2の順序付けを使用して第2のブロックを復号することは、参照ピクチャの第2の順序付けに基づいて、第2のブロックのための第2の参照ピクチャを判定することと、第2の参照ピクチャに基づいて、第2のブロックをインター予測することと、を含む、条項1B~6Bのいずれかに記載の方法。
【0205】
[0210] 条項8B:第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成することに基づいて、動きベクトル差分の符号予測を判定すること、を更に含む、条項1B~7Bのいずれかに記載の方法。
【0206】
[0211] 条項9B:動きベクトル予測子を識別する第1のシンタックス要素を受信することと、動きベクトル差分を識別する第2のシンタックス要素を受信することと、参照ピクチャリスト中の参照ピクチャのインデックスを識別する第3のシンタックス要素を受信することと、参照ピクチャのインデックス及び第2の順序付けに基づいて、参照ピクチャリスト中の参照ピクチャを識別することと、動きベクトル予測子と動きベクトル差分とに基づいて、参照ピクチャ中の予測ブロックを位置特定することと、予測ブロックを使用して第2のブロックを復号することと、を更に含む、条項1B~8Bのいずれかに記載の方法。
【0207】
[0212] 条項10B:第2のブロックが高度動きベクトル予測子モードを使用して符号化されていると判定することを更に含む、条項1B~9Bのいずれかに記載の方法。
【0208】
[0213] 条項11B:復号方法は、ビデオ符号化プロセスの一部として実行される、条項1B~8B又は10Bのいずれかに記載の方法。
【0209】
[0214] 条項12B:ビデオデータを復号するためのデバイスであって、ビデオデータを記憶するように構成されたメモリと、回路機構において実装された1つ又は複数のプロセッサであって、スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成し、第1のブロックのための参照ピクチャの第1の順序付けを生成することは、インデックスを参照ピクチャに割り当てることを含み、適応参照ピクチャ再順序付けプロセスに基づいて、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成し、第1の順序付けは第2の順序付けとは異なり、第2のブロックのための参照ピクチャの第2の順序付けを生成することは、インデックスのうちの少なくともいくつかを第1の順序付けとは異なる参照ピクチャに割り当てることを含み、参照ピクチャの第1の順序付けを使用して第1のブロックを復号し、参照ピクチャの第2の順序付けを使用して第2のブロックを復号し、第1のブロック及び第2のブロックの復号されたバージョンを含む復号されたビデオデータを出力する、ように構成されている、1つ又は複数のプロセッサと、を備える、デバイス。
【0210】
[0215] 条項13B:適応参照ピクチャ再順序付けプロセスは、テンプレートマッチングプロセスを含み、1つ又は複数のプロセッサは、参照ピクチャリスト中の少なくとも第1の参照ピクチャ及び第2の参照ピクチャのためのテンプレートマッチングコストを判定し、第1の参照ピクチャのためのテンプレートマッチングコストと第2の参照ピクチャのためのテンプレートマッチングコストとの比較に基づいて、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成する、ように更に構成されている、条項12Bに記載のデバイス。
【0211】
[0216] 条項14B:適応参照ピクチャ再順序付けプロセスは、バイラテラルマッチングプロセスを含む、条項12B又は13Bに記載のデバイス。
【0212】
[0217] 条項15B:適応参照ピクチャ再順序付けプロセスは、参照ピクチャリスト中の第1のピクチャのピクチャ順序カウント(POC)を参照ピクチャリスト中の第2のピクチャのPOCと比較することを含む、条項12B~14Bのいずれかに記載のデバイス。
【0213】
[0218] 条項16B:第1のブロック及び第2のブロックは、同じピクチャに属し、空間的に隣接するブロックである、条項12B~15Bのいずれかに記載のデバイス。
【0214】
[0219] 条項17B:第2のブロックは双予測ブロックを含み、参照ピクチャリストは第1の参照ピクチャリストであり、1つ又は複数のプロセッサは、第2の参照ピクチャリストを維持し、第1の参照ピクチャリストと第2の参照ピクチャリストとを使用して第2のブロックを復号する、ように更に構成されている、条項12B~16Bのいずれかに記載のデバイス。
【0215】
[0220] 条項18B:参照ピクチャの第1の順序付けを使用して第1のブロックを復号するために、1つ又は複数のプロセッサは、参照ピクチャの第1の順序付けに基づいて、第1のブロックのための第1の参照ピクチャを判定し、第1の参照ピクチャに基づいて、第1のブロックをインター予測する、ように更に構成されており、参照ピクチャの第2の順序付けを使用して第2のブロックを復号するために、1つ又は複数のプロセッサは、参照ピクチャの第2の順序付けに基づいて、第2のブロックのための第2の参照ピクチャを判定し、第2の参照ピクチャに基づいて、第2のブロックをインター予測する、ように更に構成されている、条項12B~17Bのいずれかに記載のデバイス。
【0216】
[0221] 条項19B:1つ又は複数のプロセッサは、第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成することに基づいて、動きベクトル差分のための符号予測を判定する、ように更に構成されている、条項12B~18Bのいずれかに記載のデバイス。
【0217】
[0222] 条項20B:1つ又は複数のプロセッサは、動きベクトル予測子を識別する第1のシンタックス要素を受信し、動きベクトル差分を識別する第2のシンタックス要素を受信し、参照ピクチャリスト中の参照ピクチャのインデックスを識別する第3のシンタックス要素を受信し、参照ピクチャのインデックス及び第2の順序付けに基づいて、参照ピクチャリスト中の参照ピクチャを識別し、動きベクトル予測子と動きベクトル差分とに基づいて、参照ピクチャ中の予測ブロックを位置特定し、予測ブロックを使用して第2のブロックを復号する、ように更に構成されている、条項12B~19Bのいずれかに記載のデバイス。
【0218】
[0223] 条項21B:1つ又は複数のプロセッサは、第2のブロックが高度動きベクトル予測子モードを使用して符号化されていると判定する、ように更に構成されている、条項1B~202Bのいずれかに記載のデバイス。
【0219】
[0224] 条項22B:デバイスは、符号化されたビデオデータを受信するように構成された受信機を更に備えるワイヤレス通信デバイスを備える、条項12B~21Bのいずれかに記載のデバイス。
【0220】
[0225] 条項23B:ワイヤレス通信デバイスは電話ハンドセットを備え、受信機は、符号化されたビデオデータを含む信号をワイヤレス通信規格に従って復調するように構成されている、条項22Bに記載のデバイス。
【0221】
[0226] 条項24B:復号されたビデオデータを表示するように構成されたディスプレイを更に備える、条項12B~23Bのいずれかに記載のデバイス。
【0222】
[0227] 条項25B:デバイスは、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、又はセットトップボックスのうちの1つ又は複数を備える、条項12B~24Bのいずれかに記載のデバイス。
【0223】
[0228] 条項26B:デバイスは、カメラを備える、条項12B~25Bのいずれかに記載のデバイス。
【0224】
[0229] 条項27B:命令を記憶するコンピュータ可読記憶媒体であって、命令が、1つ又は複数のプロセッサによって実行されたとき、1つ又は複数のプロセッサに、スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成させ、第1のブロックのための参照ピクチャの第1の順序付けを生成することは、インデックスを参照ピクチャに割り当てることを含み、適応参照ピクチャ再順序付けプロセスに基づいて、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成させ、第1の順序付けは第2の順序付けとは異なり、第2のブロックのための参照ピクチャの第2の順序付けを生成することは、インデックスのうちの少なくともいくつかを第1の順序付けとは異なる参照ピクチャに割り当てることを含み、参照ピクチャの第1の順序付けを使用して第1のブロックを復号させ、参照ピクチャの第2の順序付けを使用して第2のブロックを復号させ、第1のブロック及び第2のブロックの復号されたバージョンを含む復号されたビデオデータを出力させる、コンピュータ可読記憶媒体。
【0225】
[0230] 条項28B:適応参照ピクチャ再順序付けプロセスは、テンプレートマッチングプロセスを含み、命令が、1つ又は複数のプロセッサに更に、参照ピクチャリスト中の少なくとも第1の参照ピクチャ及び第2の参照ピクチャのためのテンプレートマッチングコストを判定させ、第1の参照ピクチャのためのテンプレートマッチングコストと第2の参照ピクチャのためのテンプレートマッチングコストとの比較に基づいて、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成させる、条項27Bに記載のコンピュータ可読記憶媒体。
【0226】
[0231] 条項29B:適応参照ピクチャ再順序付けプロセスは、バイラテラルマッチングプロセスを含む、条項27B又は28Bに記載のコンピュータ可読記憶媒体。
【0227】
[0232] 条項30B:適応参照ピクチャ再順序付けプロセスは、参照ピクチャリスト中の第1のピクチャのピクチャ順序カウント(POC)を参照ピクチャリスト中の第2のピクチャのPOCと比較することを含む、条項27B~29Bのいずれかに記載のコンピュータ可読記憶媒体。
【0228】
[0233] 条項31B:第1のブロック及び第2のブロックは、同じピクチャに属し、空間的に隣接するブロックである、条項27B~30Bのいずれかに記載のコンピュータ可読記憶媒体。
【0229】
[0234] 条項32B:第2のブロックは双予測ブロックを含み、参照ピクチャリストは第1の参照ピクチャリストであり、命令が、1つ又は複数のプロセッサに更に、第2の参照ピクチャリストを維持させ、第1の参照ピクチャリストと第2の参照ピクチャリストとを使用して第2のブロックを復号させる、条項27B~31Bのいずれかに記載のコンピュータ可読記憶媒体。
【0230】
[0235] 条項33B:参照ピクチャの第1の順序付けを使用して第1のブロックを復号するために、命令が、1つ又は複数のプロセッサに更に、参照ピクチャの第1の順序付けに基づいて、第1のブロックのための第1の参照ピクチャを判定させ、第1の参照ピクチャに基づいて、第1のブロックをインター予測させ、参照ピクチャの第2の順序付けを使用して第2のブロックを復号するために、命令が、1つ又は複数のプロセッサに更に、参照ピクチャの第2の順序付けに基づいて、第2のブロックのための第2の参照ピクチャを判定させ、第2の参照ピクチャに基づいて、第2のブロックをインター予測させる、条項27B~32Bのいずれかに記載のコンピュータ可読記憶媒体。
【0231】
[0236] 条項34B:命令が、1つ又は複数のプロセッサに更に、第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成することに基づいて、動きベクトル差分のための符号予測を判定させる、条項27B~33Bのいずれかに記載のコンピュータ可読記憶媒体。
【0232】
[0237] 条項35B:命令が、1つ又は複数のプロセッサに更に、動きベクトル予測子を識別する第1のシンタックス要素を受信させ、動きベクトル差分を識別する第2のシンタックス要素を受信させ、参照ピクチャリスト中の参照ピクチャのインデックスを識別する第3のシンタックス要素を受信させ、参照ピクチャのインデックス及び第2の順序付けに基づいて、参照ピクチャリスト中の参照ピクチャを識別させ、動きベクトル予測子と動きベクトル差分とに基づいて、参照ピクチャ中の予測ブロックを位置特定させ、予測ブロックを使用して第2のブロックを復号させる、条項27B~34Bのいずれかに記載のコンピュータ可読記憶媒体。
【0233】
[0238] 条項36B:命令が、1つ又は複数のプロセッサに更に、第2のブロックが高度動きベクトル予測子モードを使用して符号化されていると判定させる、条項27B~35Bのいずれかに記載のコンピュータ可読記憶媒体。
【0234】
[0239] 条項37B:ビデオデータを復号するための装置であって、スライスの第1のブロックのための参照ピクチャリスト中の参照ピクチャの第1の順序付けを生成するための手段であって、第1のブロックのための参照ピクチャの第1の順序付けを生成することは、インデックスを参照ピクチャに割り当てることを含む、生成するための手段と、参照ピクチャの第1の順序付けを使用して第1のブロックを復号するための手段と、適応参照ピクチャ再順序付けプロセスに基づいて、スライスの第2のブロックのための参照ピクチャリスト中の参照ピクチャの第2の順序付けを生成するための手段であって、第1の順序付けは第2の順序付けとは異なり、第2のブロックのための参照ピクチャの第2の順序付けを生成するための手段は、インデックスのうちの少なくともいくつかを第1の順序付けとは異なる参照ピクチャに割り当てるための手段を含む、生成するための手段と、参照ピクチャの第2の順序付けを使用して第2のブロックを復号するための手段と、第1のブロック及び第2のブロックの復号されたバージョンを含む復号されたビデオデータを出力するための手段と、を備える、装置。
【0235】
[0240] 例に応じて、本明細書において説明された技法のうちのいずれかのある特定の行為又はイベントが、異なる順序で実行されることが可能であり、追加、統合、又は完全に除外されてもよい(例えば、説明された全ての行為又はイベントが技法の実践に必要であるとは限らない)ことを認識されたい。その上、ある特定の例では、行為又はイベントは、連続的にではなく、例えば、マルチスレッド処理、割込み処理、又は複数のプロセッサを通じて並行して実行されてもよい。
【0236】
[0241] 1つ又は複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせにおいて実装されてもよい。ソフトウェアで実装される場合、機能は、1つ又は複数の命令又はコードとして、コンピュータ可読媒体上に記憶されてもよく、又はコンピュータ可読媒体を介して送信されてもよく、ハードウェアベースの処理ユニットによって実行されてもよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に相当するコンピュータ可読記憶媒体、又は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このように、コンピュータ可読媒体は一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、又は(2)信号又は搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法を実装するための命令、コード、及び/又はデータ構造を取り出すために、1つ又は複数のコンピュータ又は1つ又は複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であってもよい。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0237】
[0242] 限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気ストレージデバイス、フラッシュメモリ、又は、命令若しくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスすることができる任意の他の媒体を備えてもよい。また、任意の接続がコンピュータ可読媒体と適切に呼称される。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義の中に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的な媒体を含まず、代わりに非一時的な有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、及びブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、一方で、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記のものの組み合わせもコンピュータ可読媒体の範囲内に含まれるべきである。
【0238】
[0243] 命令は、1つ又は複数のDSP、汎用マイクロプロセッサ、ASIC、FPGA、又は他の均等な集積論理回路若しくはディスクリート論理回路などの、1つ又は複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」及び「処理回路」という用語は、上記の構造、又は本明細書で説明された技法の実装に好適な任意の他の構造のうちのいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明された機能は、符号化及び復号のために構成された専用のハードウェアモジュール及び/若しくはソフトウェアモジュール内で提供されてもよく、又は複合コーデックの中に組み込まれてもよい。また、技法は、1つ又は複数の回路又は論理要素において完全に実装されてもよい。
【0239】
[0244] 本開示の技法は、ワイヤレスハンドセット、集積回路(integrated circuit、IC)、又はICのセット(例えば、チップセット)を含む、多種多様なデバイス又は装置において実装されてもよい。開示された技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、又はユニットが本開示で説明されるが、それらは必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わせられてもよく、又は好適なソフトウェア及び/若しくはファームウェアと連携して、上記で説明したような1つ又は複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてもよい。
【0240】
[0245] 様々な例が説明されてきた。これら及び他の例は以下の特許請求の範囲の範囲内にある。
【国際調査報告】