(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-13
(45)【発行日】2024-05-21
(54)【発明の名称】ビデオ符号化における構文要素のシグナリングのための方法および装置
(51)【国際特許分類】
H04N 19/70 20140101AFI20240514BHJP
H04N 19/51 20140101ALI20240514BHJP
【FI】
H04N19/70
H04N19/51
(21)【出願番号】P 2022559754
(86)(22)【出願日】2021-03-23
(86)【国際出願番号】 US2021023727
(87)【国際公開番号】W WO2021202174
(87)【国際公開日】2021-10-07
【審査請求日】2022-09-29
(32)【優先日】2020-03-31
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】521248394
【氏名又は名称】ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO.,LTD.
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118843
【氏名又は名称】赤岡 明
(74)【代理人】
【識別番号】100217940
【氏名又は名称】三並 大悟
(72)【発明者】
【氏名】チェン、イ-ウェン
(72)【発明者】
【氏名】シウ、シャオユー
(72)【発明者】
【氏名】マ、ツン-チョアン
(72)【発明者】
【氏名】チュー、ホン-チェン
(72)【発明者】
【氏名】チェン、ウェイ
(72)【発明者】
【氏名】ワン、シャンリン
(72)【発明者】
【氏名】ユー、ビン
【審査官】鉢呂 健
(56)【参考文献】
【文献】国際公開第2021/201759(WO,A1)
【文献】CHEN, Yi-Wen et al.,AHG9: On syntax signaling conditions in picture header,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 18th Meeting: by teleconference, 15-24 April 2020, [JVET-R0324],JVET-R0324 (version 5),ITU-T,2020年04月16日,<URL:https://jvet-experts.org/doc_end_user/documents/18_Alpbach/wg11/JVET-R0324-v5.zip>: JVET-R0324_r4.docx: pp.1-5
【文献】HSIANG, Shih-Ta et al.,AHG9: Overhead reduction for picture header and slice header,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 18th Meeting: by teleconference, 15-24 April 2020, [JVET-R0052-v1],JVET-R0052 (version 1),ITU-T,2020年04月03日,<URL:https://jvet-experts.org/doc_end_user/documents/18_Alpbach/wg11/JVET-R0052-v1.zip>: JVET-R0052-v1.docx: pp.1-13
【文献】CHUJOH, Takeshi and IKAI, Tomohiro,On mvd_l1_zero_flag and NoBackwadPredFlag,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 18th Meeting: by teleconference, 15-24 April 2020, [JVET-R0137-v4],JVET-R0137 (version 4),ITU-T,2020年04月20日,<URL:https://jvet-experts.org/doc_end_user/documents/18_Alpbach/wg11/JVET-R0137-v4.zip>: JVET-R0137-v4.docx: pp.1-8
【文献】PETTERSSON, Martin et al.,AHG9: On B-slice signaling in the PH and derivation of slice_type,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 18th Meeting: by teleconference, 15-24 April 2020, [JVET-R0250],JVET-R0250 (version 1),ITU-T,2020年04月03日,<URL:https://jvet-experts.org/doc_end_user/documents/18_Alpbach/wg11/JVET-R0250-v1.zip>: JVET-R0250.docx: pp.1-5
【文献】ZHANG, Li et al.,AHG9: On allowed slice types in a picture,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 18th Meeting: by teleconference, 15-24 April 2020, [JVET-R0061-v1],JVET-R0061 (version 1),ITU-T,2020年04月02日,<URL:https://jvet-experts.org/doc_end_user/documents/18_Alpbach/wg11/JVET-R0061-v1.zip>: JVET-R0061-v1.docx: pp.1-8
【文献】BROSS, Benjamin et al.,Versatile Video Coding (Draft 8),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 17th Meeting: Brussels, BE, 7-17 January 2020, [JVET-Q2001-vE],JVET-Q2001 (version 15),ITU-T,2020年03月12日,<URL:https://jvet-experts.org/doc_end_user/documents/17_Brussels/wg11/JVET-Q2001-v15.zip>: JVET-Q2001-vE.docx: pp.47-50
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
ビデオ復号のための方法であって、
デコーダによって、1つまたは複数の参照ピクチャリストの情報がピクチャに関連付けられたピクチャヘッダ(PH)でシグナリングされるか否かを決定すること、および前記1つまたは複数の参照ピクチャリストの前記情報が前記PHでシグナリングされると決定することに応答して前記ピクチャに関連付けられた1つまたは複数のスライスが双予測であるか否かを前記1つまたは複数の参照ピクチャリストの前記情報から決定することと、
前記1つまたは複数の参照ピクチャリストの前記情報が前記PHでシグナリングされることを決定したこと、および前記1つまたは複数のスライスが双予測でないことを前記1つまたは複数の参照ピクチャリストの前記情報から決定したことに応答して、前記デコーダによって、前記PHの1つまたは複数の構文要素を解析しないことであって、前記1つまたは複数の構文要素は、前記1つまたは複数のスライスに適用可能な1つまたは複数のフラグを含むことと、
を含む、方法。
【請求項2】
前記1つまたは複数の参照ピクチャリストの前記情報が前記PHでシグナリングされることを決定したこと、および前記1つまたは複数のスライスが双予測であることを前記1つまたは複数の参照ピクチャリストの前記情報から決定したことに応じて、前記1つまたは複数の構文要素を取得して、対応する動きベクトル差分(MVD)符号化構文構造が解析されないか否か、および前記PHに関連付けられた前記1つまたは複数のスライスについて2つの変数がゼロに設定されるか否かを特定することであって、前記2つの変数はそれぞれ、リストベクトル成分と、前記リストベクトル成分に対応する予測との差を特定することと、
前記1つまたは複数の構文要素が0に等しいと決定したことに応答して、前記1つまたは複数のスライスについて前記MVD符号化構文構造を解析することと、
前記1つまたは複数の構文要素が1に等しいと決定したことに応答して、前記1つまたは複数のスライスを復号するために前記MVD符号化構文構造を解析しないことと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記1つまたは複数の参照ピクチャリストの前記情報が前記PHでシグナリングされることを決定したこと、および前記1つまたは複数のスライスが双予測であることを前記1つまたは複数の参照ピクチャリストの前記情報から決定したことに応じて、前記1つまたは複数の構文要素を取得して、前記PHに関連付けられた前記1つまたは複数のスライスについて双方向オプティカルフロー(BDOF)インター予測ベースのインター双予測が無効化されるか否かを特定することと、
前記1つまたは複数の構文要素が0に等しいと決定したことに応答して、前記1つまたは複数のスライスを復号するために前記BDOFインター予測ベースのインター双予測を有効化することと、
前記1つまたは複数の構文要素が1に等しいと決定したことに応答して、前記1つまたは複数のスライスを復号するために前記BDOFインター予測ベースのインター双予測を無効化することと、
をさらに含む、請求項1に記載の方法。
【請求項4】
前記1つまたは複数の参照ピクチャリストの前記情報が前記PHでシグナリングされることを決定したこと、および前記1つまたは複数のスライスが双予測であることを前記1つまたは複数の参照ピクチャリストの前記情報から決定したことに応じて、前記1つまたは複数の構文要素を取得して、前記PHに関連付けられた前記1つまたは複数のスライスについてデコーダ動きベクトル微調整(DMVR)ベースのインター双予測が無効化されるか否かを特定することと、
前記1つまたは複数の構文要素が0に等しいと決定したことに応答して、前記1つまたは複数のスライスを復号するために前記DMVRベースのインター双予測を有効化することと、
前記1つまたは複数の構文要素が1に等しいと決定したことに応答して、前記1つまたは複数のスライスを復号するために前記DMVRベースのインター双予測を無効化することと、
をさらに含む、請求項1に記載の方法。
【請求項5】
ビデオ復号のための装置であって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されるメモリと、を備え、
前記1つまたは複数のプロセッサは、前記命令の実行時に、請求項1から4のいずれか1つに記載の方法を実行するように構成される、装置。
【請求項6】
1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに請求項1から4のいずれか1つに記載の方法
を実行させるコンピュータ実行可能命令を記憶する、非一時的コンピュータ可読記憶媒体。
【請求項7】
1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに請求項1から4のいずれか1つに記載の方法を行わせる複数の命令を備えるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は2020年3月31日に出願された「Signaling of Syntax Elements in Video Coding」と題された米国仮出願第63/003,226号に対する優先権を主張し、その全体が全ての目的で引用により組み込まれている。
【0002】
本開示はビデオ符号化および圧縮に関し、より詳細には、ビデオ符号化における構文要素のシグナリングのための方法および装置に関するが、これらに限定されない。
【背景技術】
【0003】
ビデオデータを圧縮するために様々なビデオ符号化技術が使用され得る。ビデオ符号化は1つまたは複数のビデオ符号化規格に従って実行される。例えば現在、いくつかのよく知られているビデオ符号化規格は、バーサタイルビデオコーディング(VVC:Versatile Video Coding)、高効率ビデオ符号化(HEVC:High Efficiency Video Coding、別名H.265またはMPEG-Hパート2)、高度ビデオ符号化(AVC:Advanced Video Coding、別名H.264またはMPEG-4パート10)を含み、これらはISO/IEC MPEGおよびITU-T VECGによって共同で開発されている。AOMedia Video 1(AV1)は、アライアンス・フォー・オープン・メディア(AOM:Alliance for Open Media)によって、その先行規格VP9の後継として開発された。デジタルオーディオおよびデジタルビデオ圧縮規格を指すオーディオビデオコーディング(AVS)は、中国のオーディオおよびビデオ符号化規格ワークグループによって開発された他のビデオ圧縮規格シリーズである。既存のビデオ符号化規格のほとんどは、有名なハイブリッドビデオ符号化フレームワークに基づいて、すなわち、ブロックベースの予測方法(例えば、インター予測、イントラ予測)を使用してビデオ画像またはシーケンスに存在する冗長性を削減し、変換符号化を使用して予測誤差のエネルギーをコンパクト化することによって構築されている。ビデオ符号化技術の重要な目標は、ビデオ品質の低下を回避または最小化しながら、より低いビットレートを使用する形式にビデオデータを圧縮することである。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示はビデオ符号化における構文要素のシグナリングに関する技術の例を提供する。
【課題を解決するための手段】
【0005】
本開示の第1の態様によれば、ビデオ符号化のための方法が提供される。この方法は、1つまたは複数の参照ピクチャリストがピクチャに関連付けられたピクチャヘッダ(PH)でシグナリングされるか否か、およびピクチャに関連付けられた1つまたは複数のスライスが双予測(bi-predictive)であることを1つまたは複数の参照ピクチャリストが示すか否かをデコーダが決定することを含む。さらに、この方法は、1つまたは複数の参照ピクチャリストがPHでシグナリングされ、1つまたは複数のスライスが双予測でないことを1つまたは複数の参照ピクチャリストが示すと決定したことに応答して、デコーダが1つまたは複数の制約をPHの1つまたは複数の構文要素に追加することを含む。
【0006】
本開示の第2の態様によれば、ビデオ符号化のための方法が提供される。この方法は、デコーダが、ピクチャのPHに関連付けられた1つまたは複数のスライスのインター予測に1つまたは複数の時間動きベクトル予測子(predictor)が使用されるか否かを特定するために、有効化フラグを使用することを含む。この方法は、デコーダが、スケーリング比計算のためにピクチャのサイズに適用される複数のオフセットに応じて有効化フラグの値を制約することをさらに含む。
【0007】
本開示の第3の態様によれば、ビデオ符号化のための装置が提供される。この装置は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されるメモリと、を含む。1つまたは複数のプロセッサは、命令の実行時に、1つまたは複数の参照ピクチャリストがピクチャに関連付けられたPHでシグナリングされるか否か、およびピクチャに関連付けられた1つまたは複数のスライスが双予測であることを1つまたは複数の参照ピクチャリストが示すか否かを決定することを実行するように構成される。さらに、1つまたは複数のプロセッサは、1つまたは複数の参照ピクチャリストがPHでシグナリングされ、1つまたは複数のスライスが双予測でないことを1つまたは複数の参照ピクチャリストが示すと決定したことに応答して、1つまたは複数の制約をPHの1つまたは複数の構文要素に追加することを実行するように構成される。
【0008】
本開示の第4の態様によれば、ビデオ符号化のための装置が提供される。この装置は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されるメモリと、を含む。1つまたは複数のプロセッサは、命令の実行時に、ピクチャのPHに関連付けられた1つまたは複数のスライスのインター予測に1つまたは複数の時間動きベクトル予測子が使用されるか否かを特定するために、有効化フラグを使用することを実行するように構成される。1つまたは複数のプロセッサは、スケーリング比計算のためにピクチャのサイズに適用される複数のオフセットに応じて有効化フラグの値を制約することを実行するようにさらに構成される。
【0009】
本開示の第5の態様によれば、コンピュータ実行可能命令を記憶する、ビデオ符号化のための非一時的コンピュータ可読記憶媒体が提供される。命令は、1つまたは複数のコンピュータプロセッサによって実行された場合に、1つまたは複数のコンピュータプロセッサに本開示の第1の態様によるビデオ符号化のための方法を実行させる。
【0010】
本開示の第6の態様によれば、コンピュータ実行可能命令を記憶する、ビデオ符号化のための非一時的コンピュータ可読記憶媒体が提供される。命令は、1つまたは複数のコンピュータプロセッサによって実行された場合に、1つまたは複数のコンピュータプロセッサに本開示の第2の態様によるビデオ符号化のための方法を実行させる。
【0011】
添付の図面に示された特定の例を参照して、本開示の例のより具体的な説明が行われる。これらの図面が一部の例のみを示しており、したがって範囲を限定するものとは見なされないことを考慮して、添付の図面を使用してさらに具体的かつ詳細に例が記載および説明される。
【図面の簡単な説明】
【0012】
【
図1】本開示のいくつかの実装による例示的なビデオエンコーダを示すブロック図である。
【
図2】本開示のいくつかの実装による例示的なビデオデコーダを示すブロック図である。
【
図3】本開示のいくつかの実装による、複数の符号化ツリーユニット(CTU:coding tree unit)に分割されたピクチャの一例を示す図である。
【
図4A】本開示のいくつかの実装によるマルチタイプツリー分割モードを示す概略図である。
【
図4B】本開示のいくつかの実装によるマルチタイプツリー分割モードを示す概略図である。
【
図4C】本開示のいくつかの実装によるマルチタイプツリー分割モードを示す概略図である。
【
図4D】本開示のいくつかの実装によるマルチタイプツリー分割モードを示す概略図である。
【
図5】本開示のいくつかの実装によるビデオ符号化のための例示的な装置を示すブロック図である。
【
図6】本開示のいくつかの実装によるビデオ符号化の例示的な処理を示すフローチャートである。
【
図7】本開示のいくつかの実装によるビデオ符号化の例示的な処理を示すフローチャートである。
【発明を実施するための形態】
【0013】
特定の実装への参照がここで詳細に行われ、その例が添付の図面に示されている。以下の詳細な説明では、本明細書に提示される主題の理解を助けるために、多数の非限定的な特定の詳細が示されている。しかしながら、様々な代替例が使用され得ることは当業者には明らかであろう。例えば、本明細書で提示される主題が、デジタルビデオ機能を有する多くのタイプの電子デバイスで実施されることが可能であるということは当業者には明らかであろう。
【0014】
「一実施形態(one embodiment)」、「実施形態(an embodiment)」、「一例(an example)」、「いくつかの実施形態(some embodiments)」、「いくつかの例(some examples)」、または同様の文言への本明細書全体での言及は、記載された特定の特徴、構造、または特性が少なくとも1つ実施形態または例に含まれることを意味する。1つまたはいくつかの実施形態に関連して説明される特徴、構造、要素、または特性は、特に明記されない限り、他の実施形態にも適用可能である。
【0015】
本開示全体を通じて、「第1」、「第2」、「第3」などの用語は全て、特に明記されない限り、空間的または時系列順序を暗示することなく、例えば、デバイス、コンポーネント、組成物、ステップなどの関連する要素を参照するためだけの命名法として使用されている。例えば、「第1のデバイス」および「第2のデバイス」は、別々に形成された2つのデバイス、または同一のデバイスの2つの部分、コンポーネントもしくは動作状態を指し得、任意に命名され得る。
【0016】
「モジュール」、「サブモジュール」、「回路(circuit)」、「サブ回路(sub-circuit)」、「回路(circuitry)」、「サブ回路(sub-circuitry)」、「ユニット」、または「サブユニット」という用語は、1つまたは複数のプロセッサで実行されることが可能なコードまたは命令を記憶するメモリ(共有、専用、またはグループ)を含み得る。モジュールは、記憶されたコードまたは命令を含むまたは含まない1つまたは複数の回路を含み得る。モジュールまたは回路は、直接または間接的に接続された1つまたは複数のコンポーネントを含み得る。これらのコンポーネントは、互いに物理的に取り付けられているか、または隣接して配置されていてもよく、そうでなくてもよい。
【0017】
本明細書で使用する場合、「~場合(if)」または「~とき(when)」という用語は、文脈に応じて「~すると(upon)」または「~に応答して(in response to)」を意味すると理解され得る。これらの用語は、請求項に登場する場合、関連する制限または特徴が条件付きまたは任意選択であることを示さない場合がある。例えば、方法は、i)条件Xが存在するときまたは場合に、機能またはアクションX’が実行されるステップと、ii)条件Yが存在するときまたは場合に、機能またはアクションY’が実行されるステップと、を含み得る。この方法は、機能またはアクションX’を実行する能力と、機能またはアクションY’を実行する能力との両方を有して実施され得る。したがって、機能X’およびY’は、この方法の複数回の実行時に、その時々において、両方とも実行され得る。
【0018】
ユニットまたはモジュールは、純粋にソフトウェアによって、純粋にハードウェアによって、またはハードウェアとソフトウェアとの組み合わせによって実装され得る。純粋なソフトウェア実装では、例えば、ユニットまたはモジュールは、特定の機能を実行するために直接的または間接的に相互にリンクされた機能的に関連するコード・ブロックまたはソフトウェア・コンポーネントを含み得る。
【0019】
図1は、ブロックベースの処理を使用する多くのビデオ符号化規格と併せて使用され得る例示的なブロックベースのハイブリッドビデオエンコーダ100を示すブロック図を示している。エンコーダ100において、ビデオフレームは処理のために複数のビデオブロックに区分される。所与のビデオブロックごとに、インター予測アプローチまたはイントラ予測アプローチのいずれかに基づいて予測が形成される。インター予測では、動き推定および動き補償によって、以前に再構築されたフレームのピクセルに基づいて1つまたは複数の予測子が形成される。イントラ予測では、現在のフレーム内の再構築されたピクセルに基づいて予測子が形成される。モード決定により、現在のブロックを予測するために最良の予測子が選択され得る。
【0020】
現在のビデオブロックとその予測子との間の差を表す予測残差は変換回路102に送られる。次いで、変換係数は、エントロピー低減のために変換回路102から量子化回路104に送られる。次いで、量子化された係数はエントロピー符号化回路106に供給されて、圧縮されたビデオビットストリームを生成する。
図1に示されるように、インター予測回路および/またはイントラ予測回路112からの予測関連情報110、例えば、ビデオブロック区分情報、動きベクトル、参照ピクチャインデックス、およびイントラ予測モードなども、エントロピー符号化回路106を介して供給され、圧縮されたビデオビットストリーム114に保存される。
【0021】
エンコーダ100では、予測の目的でピクセルを再構築するために、デコーダ関連の回路も必要とされる。最初に、逆量子化116および逆変換回路118を介して予測残差が再構築される。この再構築された予測残差はブロック予測子120と組み合わせられて、現在のビデオブロックのフィルタリングされていない再構築されたピクセルを生成する。
【0022】
イントラ予測(「空間予測」とも呼ばれる)は、同じビデオピクチャおよび/またはスライス内の符号化済みの近傍ブロック(これらは参照サンプルと呼ばれる)のサンプルからのピクセルを使用して現在のビデオブロックを予測する。空間予測はビデオ信号に内在する空間的冗長性を低減する。
【0023】
インター予測(「時間予測」とも呼ばれる)は、符号化済みのビデオピクチャからの再構築されたピクセルを使用して現在のビデオブロックを予測する。時間予測はビデオ信号に内在する時間的冗長性を低減する。所与の符号化ユニット(CU:coding unit)または符号化ブロックの時間予測信号は通常、現在のCUとその時間参照との間の動きの量および方向を示す1つまたは複数の動きベクトル(MV:motion vector)によってシグナリングされる。さらに、複数の参照ピクチャがサポートされている場合、1つの参照ピクチャインデックスが追加で送られ、これは時間予測信号が参照ピクチャストア内のどの参照ピクチャのものであるかを識別するために使用される。
【0024】
空間予測および/または時間予測が実行された後、エンコーダ100内のイントラ/インター・モード決定回路121は、例えばレート歪み最適化方法に基づいて、最良の予測モードを選択する。次いで、ブロック予測子120が現在のビデオブロックから減算され、その結果得られた予測残差は変換回路102および量子化回路104を使用して無相関化される。その結果得られた量子化された残差係数は、逆量子化回路116によって逆量子化され、逆変換回路118によって逆変換されて、再構築された残差を形成し、これは次いで予測ブロックに再び加算されて、CUの再構築された信号を形成する。さらに、デブロッキングフィルタ、サンプル適応オフセット(SAO:sample adaptive offset)、および/または適応ループ内フィルタ(ALF:adaptive in-loop filter)などのループ内フィルタリング115が、再構築されたCUに適用され得、その後ピクチャバッファ117の参照ピクチャストアに入れられ、将来のビデオブロックを符号化するために使用される。出力ビデオビットストリーム114を形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数は全てエントロピー符号化ユニット106に送られてさらに圧縮され、パックされてビットストリームを形成する。
【0025】
例えば、AVC、HEVC、ならびにVVCの最新バージョンではデブロッキングフィルタが利用可能である。HEVCでは、符号化効率をさらに向上させるために、SAO(サンプル適応オフセット)と呼ばれる追加のループ内フィルタが定義されている。VVC規格の最新バージョンでは、ALF(適応ループフィルタ:adaptive loop filter)と呼ばれるさらに他のループ内フィルタが積極的に研究されており、最終的な規格に含まれる十分な可能性を有している。
【0026】
これらのループ内フィルタ操作は任意選択である。これらの操作を実行することは、符号化効率および視覚品質を向上させるのに役立つ。それらはまた、計算の複雑さを省くためにエンコーダ100によって行われる決定としてオフにされ得る。
【0027】
イントラ予測は通常、フィルタリングされていない再構築されたピクセルに基づき、インター予測は、これらのフィルタオプションがエンコーダ100によってオンにされている場合、フィルタリングされた再構築されたピクセルに基づくことに留意されたい。
【0028】
図2は、多くのビデオ符号化規格と併せて使用され得る例示的なブロックベースのビデオデコーダ200を示すブロック図である。このデコーダ200は、
図1のエンコーダ100に存在する再構築関連部分と同様である。デコーダ200では、入ってきたビデオビットストリーム201は最初にエントロピー復号202によって復号されて、量子化された係数レベルおよび予測関連情報を導出する。次いで、量子化された係数レベルは逆量子化204および逆変換206によって処理されて、再構築された予測残差を得る。イントラ/インター・モード・セレクタ212に実装されたブロック予測メカニズムは、復号された予測情報に基づいてイントラ予測208または動き補償210のいずれかを実行するように構成される。総和器(summer)214を使用して逆変換206からの再構築された予測残差と、ブロック予測メカニズムによって生成された予測出力との総和をとることによって、フィルタリングされていない再構築されたピクセルのセットが得られる。
【0029】
再構築されたブロックはさらにループ内フィルタ209を経由し得、その後、参照ピクチャストアとして機能するピクチャバッファ213に記憶される。ピクチャバッファ213内の再構築されたビデオは、ディスプレイデバイスを駆動するために送出される共に、将来のビデオブロックを予測するために使用され得る。ループ内フィルタ209がオンにされている状況では、これらの再構築されたピクセルにフィルタリング操作が実行されて、最終的な再構築されたビデオ出力222を導出する。
【0030】
前述のビデオ符号化/復号規格、例えば、VVC、JEM、HEVC、MPEG-4、パート10は、概念的に類似している。例えば、それらは全てブロックベースの処理を使用する。一部の規格におけるブロック区分方式について、以下で詳しく説明される。
【0031】
高効率ビデオ符号化(HEVC)
HEVCは、ハイブリッドブロックベース動き補償変換符号化アーキテクチャに基づいている。圧縮の基本単位はCTUと称される。最大CTUサイズは、4:2:0クロマ・フォーマットの場合、最大で64×64のルマ・ピクセルおよび32×32のクロマ・ピクセルの2つのブロックと定義されている。各CTUは1つのCUを含むか、または事前定義された最小CUサイズに達するまで4つのより小さいCUに再帰的に分割され得る。各CU(リーフCUとも命名されている)は、1つまたは複数の予測ユニット(PU:prediction unit)および変換ユニット(TU:transform unit)のツリーを含む。
【0032】
一般に、モノクロコンテンツを除いて、CTUは1つのルマ符号化ツリーブロック(CTB:coding tree block)および2つの対応するクロマCTBを含み得、CUは1つのルマ符号化ブロック(CB:coding block)および2つの対応するクロマCBを含み得、PUは1つのルマ予測ブロック(PB:prediction block)および2つの対応するクロマPBを含み得、TUは1つのルマ変換ブロック(TB:transform block)および2つの対応するクロマTBを含み得る。しかしながら、例外が発生し得、その理由は、最小TBサイズがルマおよびクロマの両方で4×4であり(すなわち、4:2:0カラーフォーマット用に2×2クロマTBがサポートされていない)、各イントラクロマCBは、対応するイントラルマCB内のイントラルマPBの数によらず、常にただ1つイントラクロマPBを有するためである。
【0033】
イントラCUの場合、ルマCBは1つまたは4つのルマPBによって予測され得、2つのクロマCBのそれぞれは常に1つのクロマPBによって予測され、ここで、各ルマPBは1つのイントラルマ予測モードを有し、2つのクロマPBは1つのイントラクロマ予測モードを共有する。さらに、イントラCUの場合、TBサイズはPBサイズより大きくすることができない。各PBでは、イントラ予測が適用されて、PB内の各TBのサンプルをそのTBの近傍の再構築されたサンプルから予測する。各PBでは、33個の有向のイントラ予測モードに加えて、DCモードおよび平面モードもサポートされており、それぞれ平坦な領域および徐々に変化する領域を予測する。
【0034】
各インターPUについて、インター、スキップ、およびマージを含む3つの予測モードのうちの1つが選択され得る。一般的に言えば、動きベクトル競合(MVC:motion vector competition)方式が導入されて、空間的および時間的動き候補を含む所与の候補セットから動き候補を選択する。動き推定への複数の参照は、2つの可能性のある再構築された参照ピクチャリスト(すなわち、リスト0およびリスト1)において最良の参照を見つけることを可能にする。インター・モード(AMVPモードと称され、AMVPは高度動きベクトル予測(advanced motion vector prediction)を表す)では、インター予測インジケータ(リスト0、リスト1、または双方向予測)、参照インデックス、動き候補インデックス、動きベクトル差分(MVD:motion vector difference)、および予測残差が送信される。スキップモードおよびマージモードに関しては、マージインデックスのみが送信され、現在のPUは、符号化されたマージインデックスによって参照される近傍のPUからインター予測インジケータ、参照インデックス、および動きベクトルを継承する。スキップ符号化されたCUの場合、残差信号も省略される。
【0035】
バーサタイルビデオコーディング(VVC)
2018年4月10~20日に米国サンディエゴで開催された第10回JVET会議において、JVETはバーサタイルビデオコーディング(VVC)の最初のドラフトおよびその参照ソフトウェア実装としてのVVCテストモデル1(VTM1)を定義した。VVCの最初の新しい符号化機能として、ネストされたマルチタイプツリーを有するクワッドツリーを含めることが決められた。マルチタイプツリーは、二分割および三分割の両方を含む符号化ブロック区分構造である。それ以来、符号化および復号両方の処理が実装された参照ソフトウェアVTMが開発され、以降のJVET会議を通じて更新されている。
【0036】
VVCでは、入力ビデオのピクチャはCTUと呼ばれるブロックに区分される。CTUは、ネストされたマルチタイプツリー構造を有するクワッドツリーを使用してCUに分割され、CUは同じ予測モード(例えば、イントラまたはインター)を共有するピクセルの領域を定義する。「ユニット」という用語は、ルマおよびクロマなどの全てのコンポーネントをカバーする画像の領域を定義し得る。「ブロック」という用語は、特定のコンポーネント(例えば、ルマ)をカバーする領域を定義するために使用され得、4:2:0などのクロマ・サンプリング・フォーマットを考えた場合、異なるコンポーネント(例えば、ルマ対クロマ)のブロックは空間位置が異なり得る。
【0037】
ピクチャのCTUへの区分
図3は、本開示のいくつかの実装による、複数のCTU302に分割されたピクチャ300の一例を示している。
【0038】
VCCでは、ピクチャはCTUのシーケンスに分割される。CTUの概念はHEVCと同じである。3つのサンプル配列を有するピクチャの場合、CTUはN×Nのルマサンプルのブロックと、対応する2つのクロマサンプルのブロックとで構成される。
【0039】
CTU内のルマブロックの最大許容サイズは128×128に特定されている(ただし、ルマ変換ブロックの最大サイズは64×64である)。
【0040】
ツリー構造を使用したCTUの区分
HEVCでは、様々な局所特性に適応するために、符号化ツリーと称される四分木(quaternary-tree)構造を使用してCTUがCUに分割される。ピクチャ間(時間)またはピクチャ内(空間)予測のいずれを使用してピクチャエリアを符号化するかの決定は、リーフCUレベルで行われる。各リーフCUは、PU分割タイプに応じて、1つ、2つ、または4つのPUにさらに分割されることが可能である。1つのPU内では、同じ予測処理が適用され、PUごとに関連情報がデコーダに送信される。PU分割タイプに基づいて予測処理を適用することによって残差ブロックを取得した後、リーフCUは、そのCUの符号化ツリーと同様の他の四分木構造に従って、変換ユニット(TU)に区分されることが可能である。HEVC構造の重要な特徴の1つは、CU、PU、およびTUを含む複数の区分の概念を有することである。
【0041】
VVCでは、二分割および三分割セグメンテーション構造を使用したネストされたマルチタイプツリーを有するクワッドツリーが複数の区分単位タイプの概念に置き換わり、すなわち、最大変換長には大きすぎるサイズを有するCUを適宜除いて、CU、PU、およびTUの概念の区別を取り除き、CU区分形状のより高い柔軟性をサポートする。符号化ツリー構造では、CUは正方形または長方形のいずれかの形状を有することができる。CTUはまず、四分木(別名、クワッドツリー)構造によって区分される。次いで、四分木のリーフノードは、マルチタイプツリー構造によってさらに区分されることが可能である。
【0042】
図4A~
図4Dは、本開示のいくつかの実装によるマルチタイプツリー分割モードを示す概略図である。
図4A~
図4Dに示されるように、マルチタイプツリー構造には4つの分割タイプ、すなわち、垂直二分割402(SPLIT_BT_VER)、水平二分割404(SPLIT_BT_HOR)、垂直三分割406(SPLIT_TT_VER)、および水平三分割408(SPLIT_TT_HOR)がある。マルチタイプツリーのリーフノードはCUと呼ばれ、CUが最大変換長に対して大きすぎる場合を除き、このセグメンテーションはさらなる区分なしに予測および変換処理に使用される。これは、ほとんどの場合において、CU、PU、およびTUが、ネストされたマルチタイプツリー符号化ブロック構造を有するクワッドツリーで同じブロックサイズを有することを意味する。サポートされている最大変換長がCUのカラーコンポーネントの幅または高さよりも小さい場合に、例外が発生する。
【0043】
VVCの構文
VVCでは、構文・シグナリングのビットストリームの最初のレイヤはネットワーク抽象化レイヤ(NAL:Network Abstraction Layer)であり、ここでビットストリームがNALユニットのセットに分割される。一部のNALユニットは、シーケンスパラメータセット(SPS)およびピクチャパラメータセット(PPS)などの共通の制御パラメータをデコーダにシグナリングする。その他はビデオデータを含む。ビデオ符号化レイヤ(VCL:Video Coding Layer)NALユニットは、符号化されたビデオのスライスを含む。符号化されたピクチャはアクセスユニットと呼ばれ、1つまたは複数のスライスとして符号化されることが可能である。
【0044】
符号化されたビデオシーケンスは、即時デコーダリフレッシュ(IDR:Instantaneous Decoder Refresh)ピクチャから始まる。以下の全てのビデオピクチャは、スライスとして符号化される。新しいIDRピクチャは、前のビデオセグメントが終了し、新しいものが始まることをシグナリングする。各NALユニットは1バイトのヘッダで始まり、その後に未加工バイトシーケンスペイロード(RBSP:Raw Byte Sequence Payload)が続く。RBSPは符号化されたスライスを含む。スライスは2進化されているので、長さが整数のバイト数になるようにゼロ・ビットでパディングされ得る。スライスはスライスヘッダおよびスライスデータで構成される。スライスデータは一連のCUとして規定される。
【0045】
ピクチャの最初のVCL NALユニットとしてピクチャごとに1回送信されるピクチャヘッダの概念が第16回JVET会議で採用された。以前はスライスヘッダにあったいくつかの構文要素をこのピクチャヘッダにグループ化することも提案された。機能的にピクチャごとに1回だけ送信されればよい構文要素は、所与のピクチャのスライスで複数回送信される代わりに、ピクチャヘッダに移動されることが可能である。
【0046】
VVC仕様では、構文テーブルは、許容される全てのビットストリームの構文のスーパーセットを特定する。構文に対する追加の制約は、他の条項(clause)で直接的または間接的に特定され得る。以下の表1は、VVCにおけるスライスヘッダおよびピクチャヘッダの構文テーブルである。一部の構文のセマンティクスも、構文テーブルの後に示されている。
【表1-1】
【表1-2】
【表1-3】
【表1-4】
【表1-5】
【0047】
選択された構文要素のセマンティック
ph_temporal_mvp_enabled_flagは、PHに関連付けられたスライスのインター予測に時間動きベクトル予測子が使用されることが可能か否かを特定する。ph_temporal_mvp_enabled_flagが0に等しい場合、PHに関連付けられたスライスの構文要素は、スライスの復号時に時間動きベクトル予測子が使用されないように制約されるものとする。そうでない場合(ph_temporal_mvp_enabled_flagが1に等しい場合)、PHに関連付けられたスライスの復号時に時間動きベクトル予測子が使用され得る。ph_temporal_mvp_enabled_flagの値は、存在しない場合には、0に等しいと推測される。現在のピクチャと同じ空間解像度を有する参照ピクチャが復号ピクチャバッファ(DPB:Decoded Picture Buffer)にない場合、ph_temporal_mvp_enabled_flagの値は0に等しいものとする。
【0048】
サブブロックベースのマージMVP候補の最大数MaxNumSubblockMergeCandは、次のように導出される。
if(sps_affine_enabled_flag)
MaxNumSubblockMergeCand=5-five_minus_max_num_subblock_merge_cand
else
MaxNumSubblockMergeCand=sps_sbtmvp_enabled_flag&&ph_temporal_mvp_enabled_flag;
ここで、MaxNumSubblockMergeCandの値は0から5までの範囲内(両端含む)であるものとする。
【0049】
1に等しいslice_collocated_from_l0_flagは、時間動きベクトル予測に使用される並置されたピクチャ(collocated picture)が参照ピクチャリスト0から導出されることを特定する。 0に等しいslice_collocated_from_l0_flagは、時間動きベクトル予測に使用される並置されたピクチャが参照ピクチャリスト1から導出されることを特定する。
【0050】
slice_typeがBまたはPに等しく、ph_temporal_mvp_enabled_flagが1に等しく、slice_collocated_from_l0_flagが存在しない場合、以下が適用される。
- rpl_info_in_ph_flagが1に等しい場合、slice_collocated_from_l0_flagはph_collocated_from_l0_flagに等しいと推測される。
- そうでない場合(rpl_info_in_ph_flagが0に等しく、slice_typeがPに等しい場合)、slice_collocated_from_l0_flagの値は1に等しいと推測される。
【0051】
slice_collocated_ref_idxは、時間動きベクトル予測に使用される並置されたピクチャの参照インデックスを特定する。
【0052】
slice_typeがPに等しい場合、またはslice_typeがBに等しく、slice_collocated_from_l0_flagが1に等しい場合、slice_collocated_ref_idxは参照ピクチャリスト0のエントリを参照し、slice_collocated_ref_idxの値は0からNumRefIdxActive[0]-1までの範囲内(両端含む)であるものとする。
【0053】
slice_typeがBに等しく、slice_collocated_from_l0_flagが0に等しい場合、slice_collocated_ref_idxは参照ピクチャリスト1のエントリを参照し、slice_collocated_ref_idxの値は0からNumRefIdxActive[1]-1までの範囲内(両端含む)であるものとする。
【0054】
slice_collocated_ref_idxが存在しない場合、以下が適用される。
- rpl_info_in_ph_flagが1に等しい場合、slice_collocated_ref_idxの値はph_collocated_ref_idxに等しいと推測される。
- そうでない場合(rpl_info_in_ph_flagが0に等しい場合)、slice_collocated_ref_idxの値は0に等しいと推測される。
【0055】
slice_collocated_ref_idxによって参照されるピクチャが、符号化されたピクチャの全てのスライスで同じでなければならないことは、ビットストリーム準拠の要件である。
【0056】
slice_collocated_ref_idxによって参照される参照ピクチャのpic_width_in_luma_samplesおよびpic_height_in_luma_samplesの値が現在のピクチャのpic_width_in_luma_samplesおよびpic_height_in_luma_samplesの値にそれぞれ等しくなければならないこと、およびRprConstraintsActive[slice_collocated_from_l0_flag?0:1][slice_collocated_ref_idx]が0に等しくなければならないことは、ビットストリーム準拠の要件である。
【0057】
RprConstraintsActive[i][j]の値は、VVC仕様のセクション8.3.2で導出される。RprConstraintsActive[i][j]の値の導出については、以下で説明される。
【0058】
参照ピクチャリスト構築のための復号処理
参照ピクチャリスト構築のための復号処理は、非IDRピクチャの各スライスの復号処理の開始時に呼び出される。
【0059】
参照ピクチャは、参照インデックスによってアドレス特定される。参照インデックスは、参照ピクチャリストへのインデックスである。Iスライスを復号する場合、参照ピクチャリストはスライスデータの復号時に使用されない。Pスライスを復号する場合、参照ピクチャリスト0(すなわち、RefPicList[0])のみがスライスデータの復号時に使用される。Bスライスを復号する場合、参照ピクチャリスト0および参照ピクチャリスト1(すなわち、RefPicList[1])の両方がスライスデータの復号時に使用される。
【0060】
非IDRピクチャの各スライスの復号処理の開始時に、参照ピクチャリストRefPicList[0]およびRefPicList[1]が導出される。参照ピクチャリストは、ビデオ符号化規格で特定されたように参照ピクチャにマークする際に、またはスライスデータを復号する際に使用される。
【0061】
ピクチャの最初のスライスではない非IDRピクチャのIスライスの場合、RefPicList[0]およびRefPicList[1]がビットストリーム準拠チェックの目的で導出され得るが、それらの導出は現在のピクチャまたは復号順で現在のピクチャより後のピクチャの復号には必要ない。ピクチャの最初のスライスではないPスライスの場合、RefPicList[1]がビットストリーム準拠チェックの目的で導出され得るが、その導出は現在のピクチャまたは復号順で現在のピクチャより後のピクチャの復号には必要ない。
【0062】
参照ピクチャリストRefPicList[0]およびRefPicList[1]、参照ピクチャ・スケーリング比RefPicScale[i][j][0]およびRefPicScale[i][j][1]、ならびに参照ピクチャスケーリングフラグRprConstraintsActive[0][j]およびRprConstraintsActive[1][j]は次のように導出される。
【数1】
【0063】
scaling_win_left_offset、scaling_win_right_offset、scaling_win_top_offset、およびscaling_win_bottom_offsetは、スケーリング比計算のためにピクチャサイズに適用されるオフセットを特定する。scaling_win_left_offset、scaling_win_right_offset、scaling_win_top_offset、およびscaling_win_bottom_offsetの値は、存在しない場合には、それぞれpps_conf_win_left_offset、pps_conf_win_right_offset、pps_conf_win_top_offset、およびpps_conf_win_bottom_offsetに等しいと推測される。
【0064】
SubWidthC*(scaling_win_left_offset+scaling_win_right_offset)の値はpic_width_in_luma_samples未満であるものとし、SubHeightC*(scaling_win_top_offset+scaling_win_bottom_offset)の値はpic_height_in_luma_samples未満であるものとする。
【0065】
変数PicOutputWidthLおよびPicOutputHeightLは次のように導出される。
PicOutputWidthL=pic_width_in_luma_samples-SubWidthC*(scaling_win_right_offset+scaling_win_left_offset)
PicOutputHeightL=pic_height_in_luma_samples-SubWidthC*(scaling_win_bottom_offset+scaling_win_top_offset)
【0066】
refPicOutputWidthLおよびrefPicOutputHeightLを、それぞれ、このPPSを参照する現在のピクチャの参照ピクチャのPicOutputWidthLおよびPicOutputHeightLとする。以下の全ての条件が満たされることは、ビットストリーム準拠の要件である。
- PicOutputWidthL*2は、refPicWidthInLumaSamples以上であるものとする。
- PicOutputHeightL*2は、refPicHeightInLumaSamples以上であるものとする。
- PicOutputWidthLは、refPicWidthInLumaSamples*8以下であるものとする。
- PicOutputHeightLは、refPicHeightInLumaSamples*8以下であるものとする。
- PicOutputWidthL*pic_width_max_in_luma_samplesは、refPicOutputWidthL*(pic_width_in_luma_samples-Max(8,MinCbSizeY))以上であるものとする。
- PicOutputHeightL*pic_height_max_in_luma_samplesは、refPicOutputHeightL*(pic_height_in_luma_samples-Max(8,MinCbSizeY))以上であるものとする。
【0067】
現在のVVCでは、mvd_l1_zero_flagは条件付き制約なしにPHでシグナリングされる。しかしながら、フラグmvd_l1_zero_flagによって制御される機能は、スライスが双予測スライス(Bスライス:bi-predictive slice)の場合にのみ適用可能である。したがって、ピクチャヘッダに関連付けられたスライスがBスライスでない場合、フラグのシグナリングは冗長である。
【0068】
他の例では、ph_disable_bdof_flagおよびph_disable_dmvr_flagは、それぞれ、シーケンスパラメータセット(SPS)でシグナリングされる対応する有効化フラグ(sps_bdof_pic_present_flag、sps_dmvr_pic_present_flag)が真の場合にのみ、PHでシグナリングされる。しかしながら、以下の表2に示されるように、フラグph_disable_bdof_flagおよびph_disable_dmvr_flagによって制御される機能は、スライスが双予測スライス(Bスライス)である場合にのみ適用可能である。したがって、ピクチャヘッダに関連付けられたスライスがBスライスでない場合、これら2つのフラグのシグナリングは冗長または無用である。
【表2】
【0069】
第3の課題は、構文ph_temporal_mvp_enabled_flagに関連している。現在のVVCでは、時間動きベクトル予測(TMVP:temporal motion vector prediction)導出のために選択された並置されたピクチャの解像度は現在のピクチャの解像度と同じでなければならないので、以下に説明されるように、ph_temporal_mvp_enabled_flagの値をチェックするビットストリーム準拠制約が存在する。現在のピクチャと同じ空間解像度を有する参照ピクチャがDPB内にない場合、ph_temporal_mvp_enabled_flagの値は0に等しいものとする。
【0070】
しかしながら、現在のVVCでは、並置されたピクチャの解像度がTMVPの有効化に影響するだけでなく、スケーリング比計算のためにピクチャサイズに適用されるオフセットもTMVPの有効化に影響する。しかしながら、現在のVVCでは、オフセットはph_temporal_mvp_enabled_flagのビットストリーム準拠において考慮されていない。
【0071】
さらに、slice_collocated_ref_idxによって参照されるピクチャが、符号化されたピクチャの全てのスライスで同じでなければならないというビットストリーム準拠の要件が存在する。しかしながら、符号化されたピクチャが複数のスライスを有し、これら全てのスライスに共通の参照ピクチャが存在しない場合、このビットストリーム準拠は満たされる機会を有さない。また、そのような場合、ph_temporal_mvp_enabled_flagは0に制約される必要がある。
【0072】
上記の課題に対処するために、いくつかの方法が提案される。提案された方法は、独立してまたは組み合わせて適用されることが可能であるということに留意されたい。
【0073】
フラグmvd_l1_zero_flag、ph_disable_bdof_flagおよびph_disable_dmvr_flagによって制御される機能は、スライスが双予測スライス(Bスライス)である場合にのみ適用可能であるので、本開示の方法によれば、関連付けられたスライスがBスライスである場合にのみこれらのフラグをシグナリングすることが提案される。参照ピクチャリストがPHでシグナリングされる場合(例えば、rpl_info_in_ph_flag=1)、これは符号化されたピクチャの全てのスライスがPHでシグナリングされる同じ参照ピクチャを使用することを意味するということに留意されたい。したがって、参照ピクチャリストがPHでシグナリングされ、現在のピクチャが双予測でないことをシグナリングされた参照ピクチャリストが示す場合、フラグmvd_l1_zero_flag、ph_disable_bdof_flag、およびph_disable_dmvr_flagはシグナリングされる必要はない。
【0074】
いくつかの例では、ピクチャヘッダ内の構文の一部について送られた不適切な値による冗長なシグナリングまたは未定義の復号動作を防止するために、PHで設定される構文にいくつかの条件が追加される。いくつかの例が以下に示されており、ここで、変数num_ref_entries[i][RplsIdx[i]]はリストi内の参照ピクチャの数を表す。
If(rpl_info_in_ph_flag&&num_ref_entries[0][RplsIdx[0]]>1&&num_ref_entries[1][RplsIdx[1]]>1)
mvd_l1_zero_flag;
If(sps_bdof_pic_present_flag&&rpl_info_in_ph_flag&&num_ref_entries[0][RplsIdx[0]]>1&&num_ref_entries[1][RplsIdx[1]]>1)
ph_disable_bdof_flag
【0075】
現在のVVCでは、並置されたピクチャの解像度がTMVPの有効化に影響を与え得るだけでなく、スケーリング比計算のためにピクチャサイズに適用されるオフセットもTMVPの有効化に影響を与え得る。しかしながら、現在のVVCでは、オフセットはph_temporal_mvp_enabled_flagのビットストリーム準拠において考慮されていない。いくつかの例では、以下に説明されるように、ph_temporal_mvp_enabled_flagの値がスケーリング比計算のためにピクチャサイズに適用されるオフセットに依存しなければならないことを要求するビットストリーム準拠制約を現在のVVCに追加することが提案される。空間解像度と、スケーリング比計算のためにピクチャサイズに適用されるオフセットとが現在のピクチャと同じである参照ピクチャがDPB内にない場合、ph_temporal_mvp_enabled_flagの値は0に等しいものとする。
【0076】
上記のビットストリーム準拠制約は、次のように他の方法で記述されることも可能である。関連付けられた変数値RprConstraintsActive[i][j]が0に等しい参照ピクチャがDPB内にない場合、ph_temporal_mvp_enabled_flagの値は0に等しいものとする。
【0077】
現在のVVCでは、slice_collocated_ref_idxによって参照されるピクチャが、符号化されたピクチャの全てのスライスで同じでなければならないというビットストリーム準拠の要件が存在する。しかしながら、符号化されたピクチャが複数のスライスを有し、これら全てのスライスに共通の参照ピクチャが存在しない場合、このビットストリーム準拠は満たされる機会を有さない。
【0078】
いくつかの例では、ph_temporal_mvp_enabled_flagに関するビットストリーム準拠の要件は、現在のピクチャの全てのスライスに共通の参照ピクチャが存在するか否かを考慮するように変更される。
【0079】
ph_temporal_mvp_enabled_flagは、PHに関連付けられたスライスのインター予測に時間動きベクトル予測子が使用されることが可能か否かを特定する。ph_temporal_mvp_enabled_flagが0に等しい場合、PHに関連付けられたスライスの構文要素は、スライスの復号時に時間動きベクトル予測子が使用されないように制約されるものとする。そうでない場合(ph_temporal_mvp_enabled_flagが1に等しい場合)、PHに関連付けられたスライスの復号時に時間動きベクトル予測子が使用され得る。ph_temporal_mvp_enabled_flagの値は、存在しない場合には、0に等しいと推測される。現在のピクチャと同じ空間解像度を有する参照ピクチャがDPB内にない場合、ph_temporal_mvp_enabled_flagの値は0に等しいものとする。PHに関連付けられた全てのスライスに共通の参照ピクチャが存在しない場合、ph_temporal_mvp_enabled_flagの値は0に等しいものとする。
【0080】
いくつかの例では、slice_collocated_ref_idxに関するビットストリーム準拠は、RprConstraintsActive[slice_collocated_from_l0_flag?0:1][slice_collocated_ref_idx]が0に等しくなければならないことがビットストリーム準拠の要件であるように簡略化される。
【0081】
図5は、本開示のいくつかの実装によるビデオ符号化のための例示的な装置を示すブロック図である。装置500は、例えば、携帯電話、タブレットコンピュータ、デジタル放送端末、タブレットデバイス、またはパーソナルデジタルアシスタントなどの端末であり得る。
【0082】
図5に示されるように、装置500は以下のコンポーネント、すなわち、処理コンポーネント502、メモリ504、電源コンポーネント506、マルチメディアコンポーネント508、オーディオコンポーネント510、入力/出力(I/O)インターフェース512、センサコンポーネント514、および通信コンポーネント516のうちの1つまたは複数を含み得る。
【0083】
処理コンポーネント502は通常、例えば、表示、電話、データ通信、カメラ動作、および記録動作に関連する動作など、装置500の全体的な動作を制御する。処理コンポーネント502は、上記の方法のステップの全てまたは一部を完了する命令を実行するための1つまたは複数のプロセッサ520を含み得る。さらに、処理コンポーネント502は、処理コンポーネント502および他のコンポーネントの間のやりとりを容易にするための1つまたは複数のモジュールを含み得る。例えば、処理コンポーネント502は、マルチメディアコンポーネント508および処理コンポーネント502の間のやりとりを容易にするためのマルチメディアモジュールを含み得る。
【0084】
メモリ504は、装置500の動作をサポートするために様々なタイプのデータを記憶するように構成される。そのようなデータの例は、装置500上で動作する任意のアプリケーションまたは方法のための命令、連絡先データ、電話帳データ、メッセージ、写真、ビデオなどを含む。メモリ504は、任意のタイプの揮発性もしくは不揮発性記憶デバイスまたはそれらの組み合わせによって実装され得、メモリ504は、スタティック・ランダム・アクセス・メモリ(SRAM)、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM)、消去可能プログラム可能読み取り専用メモリ(EPROM)、プログラム可能読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスクまたはコンパクトディスクであり得る。
【0085】
電源コンポーネント506は、装置500の様々なコンポーネントに電力を供給する。電源コンポーネント506は、電源管理システムと、1つまたは複数の電源と、装置500のための電力の生成、管理、および配電に関連する他のコンポーネントとを含み得る。
【0086】
マルチメディアコンポーネント508は、装置500とユーザとの間に出力インターフェースを提供する画面を含む。いくつかの例では、画面は、液晶ディスプレイ(LCD)およびタッチパネル(TP)を含み得る。画面がタッチパネルを含む場合、画面は、ユーザからの入力信号を受け取るタッチスクリーンとして実装され得る。タッチパネルは、タッチパネル上のタッチ、スライド、およびジェスチャを感知するための1つまたは複数のタッチセンサを含み得る。タッチセンサは、タッチまたはスライド操作の境界を感知するだけでなく、タッチまたはスライド操作に関連する持続時間および圧力も検出し得る。いくつかの例では、マルチメディアコンポーネント508は、フロントカメラおよび/またはリアカメラを含み得る。装置500が撮影モードまたはビデオモードなどの動作モードにある場合、フロントカメラおよび/またはリアカメラは、外部マルチメディアデータを受け取り得る。
【0087】
オーディオコンポーネント510は、オーディオ信号を出力および/または入力するように構成される。例えば、オーディオコンポーネント510は、マイクロフォン(MIC)を含む。装置500が通話モード、録音モード、および音声認識モードなどの動作モードにある場合、マイクロフォンは外部オーディオ信号を受け取るように構成される。受け取られた音声信号は、さらにメモリ504に記憶されるか、または通信コンポーネント516を介して送信され得る。いくつかの例では、オーディオコンポーネント510は、オーディオ信号を出力するためのスピーカーをさらに含む。
【0088】
I/Oインターフェース512は、処理コンポーネント502と周辺インターフェースモジュールとの間のインターフェースを提供する。上記の周辺インターフェースモジュールは、キーボード、クリック・ホイール、ボタンなどであり得る。これらのボタンは、ホームボタン、音量ボタン、スタートボタン、およびロックボタンを含み得るが、これらに限定されない。
【0089】
センサコンポーネント514は、装置500の異なる態様での状態評価を提供するための1つまたは複数のセンサを含む。例えば、センサコンポーネント514は、装置500のオン/オフ状態およびコンポーネントの相対的な位置を検出し得る。例えば、コンポーネントは、装置500のディスプレイおよびキーパッドである。センサコンポーネント514は、装置500または装置500のコンポーネントの位置変化、装置500へのユーザの接触の有無、装置500の向きまたは加速/減速、および装置500の温度変化も検出し得る。センサコンポーネント514は、物理的な接触なしに近くの物体の存在を検出するように構成される近接センサを含み得る。センサコンポーネント514は、撮像用途で使用されるCMOSまたはCCDイメージ・センサなどの光学センサをさらに含み得る。いくつかの例では、センサコンポーネント514は、加速度センサ、ジャイロスコープセンサ、磁気センサ、圧力センサ、または温度センサをさらに含み得る。
【0090】
通信コンポーネント516は、装置500と他のデバイスとの間の有線または無線通信を容易にするように構成される。装置500は、例えば、WiFi、4G、またはそれらの組み合わせなどの通信規格に基づいて無線ネットワークにアクセスし得る。一例では、通信コンポーネント516は、ブロードキャスト・チャネルを介して外部ブロードキャスト管理システムからブロードキャスト信号またはブロードキャスト関連情報を受信する。一例では、通信コンポーネント516は、短距離通信を促進するための近距離無線通信(NFC:Near Field Communication)モジュールをさらに含み得る。例えば、NFCモジュールは、無線周波数識別(RFID:Radio Frequency Identification)技術、赤外線データ協会(IrDA:infrared data association)技術、ウルトラ・ワイド・バンド(UWB)技術、Bluetooth(BT)技術、および他の技術に基づいて実装され得る。
【0091】
一例では、装置500は、特定用途向け集積回路(ASIC)、デジタル・シグナル・プロセッサ(DSP)、デジタル信号処理デバイス(DSPD:Digital Signal Processing Device)、プログラマブル・ロジック・デバイス(PLD)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または上記の方法を実行するための他の電子素子のうちの1つまたは複数によって実装され得る。
【0092】
非一時的コンピュータ可読記憶媒体は、例えば、ハード・ディスク・ドライブ(HDD)、ソリッド・ステート・ドライブ(SSD)、フラッシュメモリ、ハイブリッド・ドライブまたはソリッド・ステート・ハイブリッド・ドライブ(SSHD)、読み取り専用メモリ(ROM)、コンパクトディスク読み取り専用メモリ(CD-ROM)、磁気テープ、フロッピー・ディスクなどであり得る。
【0093】
図6は、本開示のいくつかの実装によるビデオ符号化の例示的な処理を示すフローチャートである。
【0094】
ステップ602において、プロセッサ520は、1つまたは複数の参照ピクチャリストがピクチャに関連付けられたPHでシグナリングされるか否か、およびピクチャに関連付けられた1つまたは複数のスライスが双予測であることを1つまたは複数の参照ピクチャリストが示すか否かを決定する。
【0095】
ステップ604において、プロセッサ620は、1つまたは複数の参照ピクチャリストがPHでシグナリングされ、1つまたは複数のスライスが双予測でないことを1つまたは複数の参照ピクチャリストが示すと決定したことに応答して、1つまたは複数の制約をPHの1つまたは複数の構文要素に追加する。
【0096】
いくつかの例では、1つまたは複数の制約は、1つまたは複数の構文要素の解析をスキップすることを含む。
【0097】
いくつかの例では、1つまたは複数の構文要素は、1つまたは複数のスライスに適用可能な1つまたは複数のフラグを含む。
【0098】
プロセッサ520はさらに、対応する動きベクトル差分(MVD)符号化構文構造が解析されないか否か、およびPHに関連付けられた1つまたは複数のスライスについて2つの変数がゼロに設定されるか否かを特定するために、上述のmvd_l1_zero_flagなどの有効化フラグを使用し得、ここで、2つの変数はそれぞれ、リストベクトル成分と、リストベクトル成分に対応する予測との差を特定する。
【0099】
いくつかの例では、mvd_l1_zero_flagが1に等しいことは、mvd_coding(x0,y0,1)構文構造が解析されず、compIdx=0または1、およびcpIdx=0、1、または2について、MvdL1[x0][y0][compIdx]およびMvdCpL1[x0][y0][cpIdx][compIdx]が0に等しく設定されることを示す。さらに、mvd_l1_zero_flagが0に等しいことは、mvd_coding(x0,y0,1)構文構造が解析されることを示す。mvd_coding(x0,y0,1)構文構造は、対応するMVD符号化構文構造である。配列インデックスx0、y0は、ピクチャの左上のルマサンプルに対する検討中の符号化ブロックの左上のルマサンプルの位置(x0,y0)を特定する。
【0100】
さらに、Xが0または1である変数MvdLX[x0][y0][compIdx]は、使用されるリストXベクトル成分と、その予測との差を特定する。配列インデックスx0、y0は、ピクチャの左上のルマサンプルに対する検討中の符号化ブロックの左上のルマサンプルの位置(x0,y0)を特定する。水平方向の動きベクトル成分差分にはcompIdx=0が割り当てられ、垂直方向の動きベクトル成分にはcompIdx=1が割り当てられる。
【0101】
さらに、Xが0または1である変数MvdCpLX[x0][y0][cpIdx][compIdx]は、使用されるリストXベクトル成分と、その予測との差を特定する。配列インデックスx0、y0は、ピクチャの左上のルマサンプルに対する検討中の符号化ブロックの左上のルマサンプルの位置(x0,y0)を特定する。配列インデックスcpIdxは、コントロール・ポイントのインデックスを特定する。水平方向の動きベクトル成分差分にはcompIdx=0が割り当てられ、垂直方向の動きベクトル成分にはcompIdx=1が割り当てられる。
【0102】
プロセッサ520はさらに、有効化フラグが0に等しいと決定したことに応答して、1つまたは複数のスライスについてMVD符号化構文構造が解析されるように1つまたは複数の構文要素を制約し得る。
【0103】
プロセッサ520はさらに、有効化フラグが1に等しいと決定したことに応答して、1つまたは複数のスライスを復号する際にMVD構文構造の解析をスキップすることを決定し得る。
【0104】
プロセッサ520はさらに、PHに関連付けられた1つまたは複数のスライスについて双方向オプティカルフロー(BDOF:bi-directional optical flow)インター予測ベースのインター双予測が無効化されるか否かを特定するために、上述のph_disable_bdof_flagなどの無効化フラグを使用し、無効化フラグが0に等しいと決定したことに応答して、1つまたは複数のスライスを復号する際にBDOFインター予測ベースのインター双予測が有効化されるように1つまたは複数の構文要素を制約し、無効化フラグが1に等しいと決定したことに応答して、1つまたは複数のスライスを復号する際にBDOFインター予測ベースのインター双予測を無効化し得る。
【0105】
プロセッサ520はさらに、PHに関連付けられた1つまたは複数のスライスについてデコーダ動きベクトル微調整(DMVR:decoder motion vector refinement)ベースのインター双予測が無効化されるか否かを特定するために、上述のph_disable_dmvr_flagなどの無効化フラグを使用し、無効化フラグが0に等しいと決定したことに応答して、1つまたは複数のスライスを復号する際にDMVRベースのインター双予測が有効化されるように1つまたは複数の構文要素を制約し、無効化フラグが1に等しいと決定したことに応答して、1つまたは複数のスライスを復号する際にDMVRベースのインター双予測を無効化し得る。
【0106】
図7は、本開示のいくつかの実装によるビデオ符号化の例示的な処理を示すフローチャートである。
【0107】
ステップ702において、プロセッサ520は、ピクチャのPHに関連付けられた1つまたは複数のスライスのインター予測に1つまたは複数の時間動きベクトル予測子が使用されるか否かを特定するために、有効化フラグを使用する。
【0108】
ステップ704において、プロセッサ520は、スケーリング比計算のためにピクチャのサイズに適用される複数のオフセットに応じて有効化フラグの値を制約する。
【0109】
プロセッサ520は、ピクチャと同じ空間解像度および同じオフセットを有する参照ピクチャがDPB内にないと決定したことに応答して、有効化フラグを0に設定し得る。さらに、オフセットは、スケーリング比計算のためにピクチャのサイズに適用され得る。
【0110】
プロセッサ520は、1つまたは複数のスライスに共通の参照ピクチャがないと決定したことに応答して、有効化フラグを0に設定し得る。
【0111】
プロセッサ520は、参照ピクチャスケーリングフラグが0に等しい参照ピクチャがDPB内にないと決定したことに応答して、有効化フラグを0に設定し得る。
【0112】
プロセッサ520は、スケーリング比計算のためにピクチャのサイズに適用される複数のオフセットに基づいて参照ピクチャスケーリングフラグを導出し得る。
【0113】
いくつかの例では、ビデオ符号化のための装置が提供される。この装置は、1つまたは複数のプロセッサ520と、1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されるメモリ504と、を含み、プロセッサは、命令の実行時に、
図6に示される方法を実行するように構成される。
【0114】
いくつかの例では、ビデオ符号化のための装置が提供される。この装置は、1つまたは複数のプロセッサ520と、1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されるメモリ504と、を含み、プロセッサは、命令の実行時に、
図7に示される方法を実行するように構成される。
【0115】
いくつかの他の例では、命令が記憶された非一時的コンピュータ可読記憶媒体504が提供される。命令が1つまたは複数のプロセッサ520によって実行された場合、命令はプロセッサに
図6に示される方法を実行させる。
【0116】
いくつかの他の例では、命令が記憶された非一時的コンピュータ可読記憶媒体504が提供される。命令が1つまたは複数のプロセッサ520によって実行された場合、命令はプロセッサに
図7に示される方法を実行させる。
【0117】
本開示の説明は例示の目的で提示されており、網羅的であることも、本開示に限定されることも意図されていない。前述の説明および関連する図面に提示された教示の利益を得る当業者には、多くの修正、変形、および代替の実装が明らかであろう。
【0118】
本開示の原理を説明するために、また、他の当業者が様々な実装について本開示を理解し、基礎となる原理と、企図された特定の用途に適した様々な修正を加えた様々な実装とを最もよく利用できるようにするために、例が選択され、説明されている。したがって、本開示の範囲が開示された実装の特定の例に限定されるべきではなく、修正および他の実装が本開示の範囲内に含まれることが意図されているということを理解されたい。