(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-20
(45)【発行日】2023-12-28
(54)【発明の名称】適応ループフィルタリング
(51)【国際特許分類】
H04N 19/70 20140101AFI20231221BHJP
H04N 19/82 20140101ALI20231221BHJP
【FI】
H04N19/70
H04N19/82
(21)【出願番号】P 2022554450
(86)(22)【出願日】2021-03-11
(86)【国際出願番号】 CN2021080187
(87)【国際公開番号】W WO2021180166
(87)【国際公開日】2021-09-16
【審査請求日】2022-09-15
(31)【優先権主張番号】PCT/CN2020/078770
(32)【優先日】2020-03-11
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】デン,ジピン
(72)【発明者】
【氏名】ワン,イェ-クイ
(72)【発明者】
【氏名】ザン,リー
(72)【発明者】
【氏名】ザン,カイ
【審査官】岩井 健二
(56)【参考文献】
【文献】Fangdong Chen, Liying Xu, and Li Wang,CE5-related: On high level syntax of CC-ALF,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-Q0382-v1,17th Meeting: Brussels, BE,2020年01月,pp.1-5
【文献】Benjamin Bross, Jianle Chen, Shan Liu, and Ye-Kui Wang,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,JVET-Q2001 (version 14),17th Meeting: Brussels, BE,2020年02月27日,pp.56-57,134-137
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオデータを処理する方法であって、
ビデオ領域を含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行するステップを含み、
前記規則は、第1一般制約情報シンタックス要素が1に等しいときに、前記ビデオ領域のクロマ成分に対する適応ループフィルタリング(ALF)動作が無効にされ、前記ビデオ領域に対するクロスコンポーネント適応ループフィルタ(CC-ALF)動作が無効にされ、前記ビデオ領域のルーマ成分に対するALF動作が許可される、ことを定め、
1に等しい前記第1一般制約情報シンタックス要素は、ALFデータを含む1つ以上の適応パラメータセット(APS)ネットワーク抽象化レイヤ(NAL)ユニットの不存在を指定する、
方法。
【請求項2】
前記規則は更に、前記第1一般制約情報シンタックス要素が1に等しいときに、前記ALF動作が有効又は無効にされるかどうかを示す、シーケンスパラメータセット(SPS)、ピクチャヘッダ(PH)、又はスライスヘッダ(SH)に含まれる第2シンタックス要素の値が、1に等しいことを許可される、ことを定め、
1に等しい前記第2シンタックス要素は、前記ALF動作がシーケンスレベル、ピクチャレベル、又はスライスレベルで有効にされることを許可される、ことを指定する、
請求項1に記載の方法。
【請求項3】
前記規則は更に、前記第1一般制約情報シンタックス要素が1に等しいときに、前記CC-ALF動作が有効又は無効にされるかどうかを示す、シーケンスパラメータセット(SPS)に含まれる第3シンタックス要素の値が、0に等しい、ことを定め、
0に等しい前記第3シンタックス要素は、前記CC-ALF動作がシーケンスレベルで無効にされる、ことを指定する、
請求項1又は2に記載の方法。
【請求項4】
前記規則は更に、前記第1一般制約情報シンタックス要素が1に等しいときに、ピクチャヘッダ(PH)に関連したスライスによって参照されるALF APSの数を指定する、当該PHに含まれる第4シンタックス要素の値が、0に等しい、ことを定める、
請求項1乃至3のうちいずれか一項に記載の方法。
【請求項5】
前記規則は更に、前記第1一般制約情報シンタックス要素が1に等しいときに、スライスによって参照されるALF APSの数を指定する、スライスヘッダ(SH)に含まれる第5シンタックス要素の値が、0に等しい、ことを定める、
請求項1乃至4のうちいずれか一項に記載の方法。
【請求項6】
前記規則は更に、前記第1一般制約情報シンタックス要素が1に等しいときに、次のシンタックス要素:
ph_num_alf_aps_ids_luma、
slice_num_alf_aps_ids_luma、及び
sps_ccalf_enabled_flag
の値が0に等しい、ことを定める、
請求項1乃至5のうちいずれか一項に記載の方法。
【請求項7】
前記変換を実行するステップは、前記ビデオを前記ビットストリームに符号化することを含む、
請求項1乃至6のうちいずれかに記載の方法。
【請求項8】
前記変換を実行するステップは、前記ビデオを前記ビットストリームから復号することを含む、
請求項1乃至6のうちいずれかに記載の方法。
【請求項9】
ビデオデータを処理する装置であって、
プロセッサと、命令を有する非一時的なメモリとを有し、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、ビデオ領域を含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行させ、
前記規則は、第1一般制約情報シンタックス要素が1に等しいときに、前記ビデオ領域のクロマ成分に対する適応ループフィルタリング(ALF)動作が無効にされ、前記ビデオ領域に対するクロスコンポーネント適応ループフィルタ(CC-ALF)動作が無効にされ、前記ビデオ領域のルーマ成分に対するALF動作が許可される、ことを定め、
1に等しい前記第1一般制約情報シンタックス要素は、ALFデータを含む1つ以上の適応パラメータセット(APS)ネットワーク抽象化レイヤ(NAL)ユニットの不存在を指定する、
装置。
【請求項10】
命令を記憶している非一時的なコンピュータ可読記憶媒体であって、
前記命令は、プロセッサに、ビデオ領域を含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行させ、
前記規則は、第1一般制約情報シンタックス要素が1に等しいときに、前記ビデオ領域のクロマ成分に対する適応ループフィルタリング(ALF)動作が無効にされ、前記ビデオ領域に対するクロスコンポーネント適応ループフィルタ(CC-ALF)動作が無効にされ、前記ビデオ領域のルーマ成分に対するALF動作が許可される、ことを定め、
1に等しい前記第1一般制約情報シンタックス要素は、ALFデータを含む1つ以上の適応パラメータセット(APS)ネットワーク抽象化レイヤ(NAL)ユニットの不存在を指定する、
非一時的なコンピュータ可読記憶媒体。
【請求項11】
ビデオのビットストリームを記憶する
方法であって、
ビデオ領域を含む前記ビデオの前記ビットストリームを規則に従って生成するステップ
と、
前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶するステップと
を有し、
前記規則は、第1一般制約情報シンタックス要素が1に等しいときに、前記ビデオ領域のクロマ成分に対する適応ループフィルタリング(ALF)動作が無効にされ、前記ビデオ領域に対するクロスコンポーネント適応ループフィルタ(CC-ALF)動作が無効にされ、前記ビデオ領域のルーマ成分に対するALF動作が許可される、ことを定め、
1に等しい前記第1一般制約情報シンタックス要素は、ALFデータを含む1つ以上の適応パラメータセット(APS)ネットワーク抽象化レイヤ(NAL)ユニットの不存在を指定する、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、2020年3月11日付けで出願された国際特許出願第PCT/CN2020/078770号の優先権及び利益を請求して2021年3月11日付けで出願された国際特許出願第PCT/CN2021/080187号に基づくものである。上記の全ての特許出願は、それらの全文を参照により本願に援用される。
【0002】
[技術分野]
本特許明細書は、イメージ及びビデオのコーディング及び復号化に関係がある。
【背景技術】
【0003】
デジタルビデオは、インターネット及び他のデジタル通信網で最大のバンド幅使用を占めている。ビデオを受信及び表示することができるユーザ機器の接続数が増えるにつれて、デジタルビデオ利用のためのバンド幅需要は増え続けることが予想される。
【発明の概要】
【0004】
本特許明細書は、ビデオのコーディングされた表現の復号化にとって有用な制御情報を用いて、コーディングされた表現を処理するために、ビデオエンコーダ及びデコーダによって使用され得る技術を開示する。
【0005】
一例となる態様では、ビデオ処理方法が開示される。方法は、ビデオユニットを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行するステップを含み、前記規則は、前記ビデオのスケーリングリストに関する情報を適応パラメータセット(APS)に含めるかどうか又はどのように含めるかが、前記APSがクロマコンポーネント関連シンタックス要素を含むかどうかを示しかつシーケンスパラメータセット(SPS)内の1つ以上のシンタックス要素から独立している第1シンタックス要素に基づく、ことを定める。
【0006】
他の例となる態様では、ビデオ処理方法が開示される。方法は、ビデオと該ビデオのビットストリームとの間の変換を規則に従って実行するステップを含み、前記規則は、シンタックス要素が適応パラメータセット(APS)に含まれる、ことを定め、前記規則は、前記シンタックス要素が、クロマ残差スケーリングのための1つ以上のシンタックス要素が前記APSに含まれるかどうかを示す、ことを定める。
【0007】
他の例となる態様では、ビデオ処理方法が開示される。方法は、ビデオと該ビデオのビットストリームとの間の変換を規則に従って実行するステップを含み、前記規則は、クロマ残差スケーリングのための1つ以上のシンタックス要素が適応パラメータセット(APS)に含まれるかどうかが、前記APSがクロマコンポーネント関連シンタックス要素を含むかどうかを示す第1シンタックス要素に基づく、ことを定める。
【0008】
他の例となる態様では、ビデオ処理方法が開示される。方法は、ビデオブロックを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行するステップを含み、前記規則は、変換スキップに基づいた残差コーディングがスライスに対して無効にされるかどうかを示す第1シンタックス要素をスライスヘッダ(SH)に含めるかどうかを定め、前記規則は、前記第1シンタックス要素を前記SHに含めるかどうかが、変換スキップ(TS)モードが前記ビデオブロックに対して有効にされるかどうかを示すシーケンスパラメータセット(SPS)内の第2シンタックス要素に選択的に基づく、ことを定める。
【0009】
他の例となる態様では、ビデオ処理方法が開示される。方法は、ルーマブロックを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行するステップを含み、前記規則は、スライスヘッダ(SH)が第1シンタックス要素を含むかどうかが第2シンタックス要素に基づく、ことを定め、前記第1シンタックス要素は、デルタ量子化パラメータ(QP)の使用が前記ルーマブロックの特定のスライスの1つ以上のコーディングユニット(CU)に対して有効にされるかどうかを示す。
【0010】
他の例となる態様では、ビデオ処理方法が開示される。方法は、ビデオピクチャを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行するステップを含み、前記規則は、ビデオピクチャの各サブピクチャが1つの長方形スライスしか含まないことを示す第1シンタックス要素に応答して、ピクチャパラメータセット(PPS)を参照する各ビデオピクチャ内の長方形スライスの数を示す、第2シンタックス要素に1をプラスしたものが、前記ビットストリームのコーディングされたレイヤビデオシーケンス(CLVS)内の各ビデオピクチャ内のサブピクチャの数を示す、第3シンタックス要素に1をプラスしたものに等しい、ことを定める。
【0011】
他の例となる態様では、ビデオ処理方法が開示される。方法は、ビデオピクチャを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行するステップを含み、前記規則は、前記ビデオのビデオピクチャが、同じ高さを有している第1数のタイル行又は列及び異なる高さ又は幅を有している第2数のタイル行又は列を含むタイル行又は列に分けられるかどうかを示す1つ以上のシンタックス要素をピクチャパラメータセット(PPS)が含む、ことを定め、前記第1数のタイル行又は列は、前記第2数のタイル行又は列より前に前記ビデオピクチャに位置付けられる。
【0012】
他の例となる態様では、ビデオ処理方法が開示される。方法は、ビデオ領域を含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行するステップを含み、前記規則は、適応ループフィルタリングデータを含む1つ以上の適応パラメータセット(APS)ネットワーク抽象化レイヤ(NAL)ユニットがないことに応答して、適応ループフィルタリング動作が前記ビデオ領域に対して許可される、ことを定める。
【0013】
他の例となる態様では、ビデオ処理方法が開示される。方法は、ビデオ領域を含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行するステップを含み、前記規則は、適応ループフィルタリングデータを含む1つ以上の適応パラメータセット(APS)ネットワーク抽象化レイヤ(NAL)ユニットがないことに応答して、適応ループフィルタリング動作が前記ビデオ領域に対して許可されない、ことを定める。
【0014】
他の例となる態様では、ビデオ処理方法が開示される。方法は、ビデオピクチャを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行するステップを含み、前記規則は、第2シンタックス要素の第2値が0に等しいことを示す1の値を第1シンタックス要素の第1値が有していることに応答して、適応ループフィルタリング動作又はクロスコンポーネント適応ループフィルタリング動作が許可されない、ことを定め、前記規則は、一般制約情報シンタックス構造が前記第1シンタックス要素を含む、ことを定め、前記規則は、0の値を有しているシーケンスパラメータセット(SPS)内の前記第2シンタックス要素が、前記クロスコンポーネント適応ループフィルタリング動作が前記ビデオの全ビデオピクチャに対して無効にされることを示す、ことを定める。
【0015】
他の例となる態様では、ビデオ処理方法が開示される。方法は、1つ以上のビデオピクチャを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行するステップを含み、前記規則は、適応ループフィルタリングデータを含む適応パラメータセット(APS)の数を示す1つ以上のシンタックス要素、及び/又は適応ループフィルタリング動作若しくはクロスコンポーネント適応ループフィルタリング動作のAPS識別子を示す1つ以上のシンタックス要素を含めるかどうかが、前記適応ループフィルタリングデータを含むAPSネットワーク抽象化レイヤ(NAL)ユニットが前記ビットストリームに存在するかどうかを示す第1シンタックス要素の存在に基づく、ことを定める。
【0016】
他の例となる態様では、ビデオ処理方法が開示される。方法は、ビデオと該ビデオのビットストリームとの間の変換を規則に従って実行するステップを含み、前記規則は、次の:適応ループフィルタリング動作、クロスコンポーネント適応ループフィルタリング動作、クロマスケーリングを伴ったルーママッピング(LMCS)動作、又は1つ以上のユーザ定義のスケーリングリスト、のうちのいずれか1つ以上が無効にされることを示すよう、1つ以上のシンタックス要素がパラメータセット又はヘッダ又はシンタックス構造で示される、ことを定める。
【0017】
他の例となる態様では、ビデオ処理方法が開示される。方法は、ビデオピクチャを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行するステップを含み、前記規則は、ルーマサンプルの単位で表される、ピクチャパラメータセット(PPS)を参照する各ビデオピクチャの幅が、該各ビデオピクチャによって参照される、ルーマサンプルの単位でシーケンスパラメータセット(SPS)において示される最大ピクチャ幅に等しく、かつ、ルーマサンプルの単位で表される、前記PPSを参照する各ビデオピクチャの高さが、ルーマサンプルの単位で前記SPSにおいて示される最大ピクチャ高さに等しいことに応答して、コンフォーマンスウィンドウパラメータのセットがピクチャパラメータセット(PPS)から省略される、ことを定める。
【0018】
他の例となる態様では、ビデオ処理方法が開示される。方法は、ビデオのビデオ領域と前記ビデオのコーディングされた表現との間の変換を実行するステップを含み、前記コーディングされた表現はフォーマット規則に従い、該フォーマット規則は、前記ビデオの色成分のスケーリングリストがシーケンスパラメータセット内のシンタックスフィールド値から独立して適応パラメータセットに含まれるかどうかをフラグが示すことを定める。
【0019】
他の例となる態様では、他のビデオ処理方法が開示される。方法は、ビデオのビデオ領域と該ビデオ領域のコーディングされた表現との間の変換を実行するステップを含み、前記コーディングされた表現はフォーマット規則に従い、該フォーマット規則は、1つ以上の適応パラメータセットが、各適応パラメータセットについてクロマ関連シンタックス要素が前記ビデオに対するクロマ制約により省略されるように、前記コーディングされた表現に含まれる、ことを定める。
【0020】
他の例となる態様では、他のビデオ処理方法が開示される。方法は、1つ以上のビデオユニットを含む1つ以上のビデオ領域を含むビデオと該ビデオのコーディングされた表現との間の変換を実行するステップを含み、前記コーディングされた表現はフォーマット規則に従い、該フォーマット規則は、第1変換コーディングシンタックスフィールドがビデオ領域のビデオユニットのレベルで前記コーディングされた表現に含まれるかどうか及び/又はその値が前記ビデオの領域のレベルでの第2変換コーディングシンタックスフィールドの値に依存するかどうかを定める。
【0021】
他の例となる態様では、他のビデオ処理方法が開示される。方法は、1つ以上のビデオ領域を含み、各ビデオ領域が1つ以上のビデオユニットを含むビデオと、該ビデオのコーディングされた表現との間の変換を実行するステップを含み、前記コーディングされた表現はフォーマット規則に従い、該フォーマット規則は、ビデオユニットレベルでのフラグが、量子化パラメータの差動シグナリングが前記変換のために有効にされるかどうかを制御する、ことを定める。
【0022】
他の例となる態様では、他のビデオ処理方法が開示される。方法は、1つ以上のビデオ領域を含み、各ビデオ領域が1つ以上のビデオユニットを含むビデオと、該ビデオのコーディングされた表現との間の変換を実行するステップを含み、前記コーディングされた表現はフォーマット規則に従い、該フォーマット規則は、サブピクチャの数を示すピクチャレベルでの第1フラグと、サブピクチャ内のスライスの数を示すサブピクチャレベルでの第2フラグとの解釈を定める。
【0023】
他の例となる態様では、他のビデオ処理方法が開示される。方法は、1つ以上のビデオピクチャを含み、各ビデオピクチャが1つ以上のスライス及び/又は1つ以上のタイルを含むビデオと、該ビデオのコーディングされた表現との間の変換を実行するステップを含み、前記コーディングされた表現はフォーマット規則に従い、該フォーマット規則は、ビデオピクチャに関連したピクチャパラメータセット内のフィールドが、当該ビデオピクチャが異なる高さ又は幅の複数のタイル行又は列に分けられるかどうかを示す、ことを定める。
【0024】
他の例となる態様では、他のビデオ処理方法が開示される。方法は、1つ以上のビデオピクチャを含み、各ビデオピクチャが1つ以上のスライス及び/又は1つ以上のタイルを含むビデオと、該ビデオのビットストリームとの間の変換を実行するステップを含み、前記コーディングされた表現はフォーマット規則に従い、該フォーマット規則は、適応パラメータセットが適応ループフィルタリングの指示を除く場合のビデオ領域に対する適応ループフィルタリングの適用可能性が第2規則に基づく、ことを定める。
【0025】
他の例となる態様では、他のビデオ処理方法が開示される。方法は、1つ以上のビデオピクチャを含み、各ビデオピクチャが1つ以上のスライス及び/又は1つ以上のタイルを含むビデオと、該ビデオのビットストリームとの間の変換を実行するステップを含み、前記コーディングされた表現はフォーマット規則に従い、該フォーマット規則は、ピクチャパラメータセット内のコンフォーマンスウィンドウパラメータの明示的シグナリングが、幅及び高さが前記ビデオの最大幅及び最大高さであるピクチャについてはスキップされる、ことを定める。
【0026】
更なる他の例となる態様では、ビデオエンコーダ装置が開示される。ビデオエンコーダは、上記の方法を実装するよう構成されたプロセッサを有する。
【0027】
更なる他の例となる態様では、ビデオデコーダ装置が開示される。ビデオデコーダは、上記の方法を実装するよう構成されたプロセッサを有する。
【0028】
更なる他の例となる態様では、コードが記憶されているコンピュータ可読媒体が開示される。コードは、プロセッサ実行可能コードの形で、本明細書で記載される方法の1つを具現化する。
【0029】
これら及び他の特徴は、本明細書にわたって記載される。
【図面の簡単な説明】
【0030】
【
図1】例となるビデオ処理システムのブロック図である。
【
図3】例となるビデオ処理方法のフローチャートである。
【
図4】本開示のいくつかの実施形態に係るビデオコーディングシステムを表すブロック図である。
【
図5】本開示のいくつかの実施形態に係るエンコーダを表すブロック図である。
【
図6】本開示のいくつかの実施形態に係るデコーダを表すブロック図である。
【
図7】例となるビデオ処理方法のフローチャートである。
【
図8】例となるビデオ処理方法のフローチャートである。
【
図9】例となるビデオ処理方法のフローチャートである。
【
図10】例となるビデオ処理方法のフローチャートである。
【
図11】例となるビデオ処理方法のフローチャートである。
【
図12】例となるビデオ処理方法のフローチャートである。
【
図13】例となるビデオ処理方法のフローチャートである。
【
図14】例となるビデオ処理方法のフローチャートである。
【
図15】例となるビデオ処理方法のフローチャートである。
【
図16】例となるビデオ処理方法のフローチャートである。
【
図17】例となるビデオ処理方法のフローチャートである。
【
図18】例となるビデオ処理方法のフローチャートである。
【
図19】例となるビデオ処理方法のフローチャートである。
【発明を実施するための形態】
【0031】
セクション見出しは、理解を簡単にするために本明細書で使用されているのであって、各セクションで開示されている技術及び実施形態の適用可能性をそのセクションにのみ制限するものではない。更に、H.266という用語は、開示されている技術の範囲を限定するためではなく、理解を容易にするためにのみ、いくつかの記載で使用されている。そのようなものとして、本明細書で記載される技術は、他のビデオコーデックプロトコル及び設計にも適用可能である。
【0032】
[1.導入]
本明細書は、ビデオコーディング技術に関係がある。具体的に、それは、ビデオコーディングにおけるSH、PPS、APS、及びGCIの設計に関する。アイデアは、個別的に又は様々な組み合わせで、マルチレイヤビデオコーディング、例えば、開発中のVVC(Versatile Video Coding)をサポートするあらゆるビデオコーディング標準又は非標準ビデオコーデックに適用されてもよい。
【0033】
[2.頭字語]
APS Adaptation Parameter Set
AU Access Unit
AUD Access Unit Delimiter
AVC Advanced Video Coding
CLVS Coded Layer Video Sequence
CPB Coded Picture Buffer
CRA Clean Random Access
CTU Coding Tree Unit
CVS Coded Video Sequence
DPB Decoded Picture Buffer
DPS Decoding Parameter Set
EOB End Of Bitstream
EOS End Of Sequence
GCI General Constraint Information
GDR Gradual Decoding Refresh
HEVC High Efficiency Video Coding
HRD Hypothetical Reference Decoder
IDR Instantaneous Decoding Refresh
JEM Joint Exploration Model
MCTS Motion-Constrained Tile Sets
NAL Network Abstraction Layer
OLS Output Layer Set
PH Picture Header
PPS Picture Parameter Set
PTL Profile, Tier and Level
PU Picture Unit
RBSP Raw Byte Sequence Payload
SEI Supplemental Enhancement Information
SH Slice Header
SPS Sequence Parameter Set
SVC Scalable Video Coding
VCL Video Coding Layer
VPS Video Parameter Set
VTM VVC Test Model
VUI Video Usability Information
VVC Versatile Video Coding
【0034】
[3.最初の議論]
ビデオコーディング標準規格は、よく知られているITU-T及びISO/IEC標準規格の開発を通じて主に発展してきた。ITU-TはH.261及びH.263を作り出し、ISO/IECはMPEG-1及びMPEG-4 Visualを作り出し、2つの組織は共同でH.262/MPEG-2 Video及びH264/MPEG-4 AVC(Advanced Video Coding)及びH.265/HEVC標準規格を作り出した。H.262以降、ビデオコーディング標準規格は、時間予測に変換コーディングをプラスしたものが利用されるハイブリッド型ビデオコーディング構造に基づいている。HEVCを超える将来のビデオコーディング技術を探求するために、JVET(Joint Video Exploration Team)が2015年にVCEG及びMPEGによって共同で設立された。それ以降、多くの新しい方法がJVETによって採用され、JEM(Joint Exploration Model)と名付けられた参照ソフトウェアに置かれてきた。JVET会議は、四半期ごとに1度同時に開催され、新しいコーディング標準規格では、HEVCと比較してビットレートを50%削減することを目標としている。新しいビデオコーディング標準規格は、2018年4月のJVET会議でVVC(Versatile Video Coding)と公式に命名され、VVCテストモデル(VVC Test Model,VTM)の最初のバージョンがその時にリリースされた。VVC標準化に寄与する継続的な取り組みがあるため、毎回のJVET会議で新しいコーディング手法がVVC標準に採用されている。その後、VVCワーキングドラフト及びテストモデルVTMは、毎回の会議の後で更新されている。VVCプロジェクトは現在、2020年7月の会議で技術的完了(FDIS)を目指している。
【0035】
[3.1.GCIシンタックス及びセマンティクス]
最新のVVC草案テキストでは、GCIのシンタックス及びセマンティクスは次の通りである:
【表1】
general_progressive_source_flag及びgeneral_interlaced_source_flagは、次の通りに解釈される:
- general_progressive_source_flagが1に等しく、general_interlaced_source_flagが0に等しい場合に、OlsInScope内のピクチャのソーススキャンタイプは、プログレッシブのみと解釈されるべきである。
- そうではなく、general_progressive_source_flagが0に等しく、general_interlaced_source_flagが1に等しい場合に、OlsInScope内のピクチャのソーススキャンタイプは、インターレースのみと解釈されるべきである。
- そうではなく、general_progressive_source_flagが0に等しく、general_interlaced_source_flagが0に等しい場合に、OlsInScope内のピクチャのソーススキャンタイプは、未知又は不特定と解釈されるべきである。
- その他の場合(general_progressive_source_flagが1に等しく、general_interlaced_source_flagが1に等しい場合)に、OlsInScope内のピクチャのソーススキャンタイプは、フレーム-フィールド情報SEIメッセージ内のシンタックス要素source_scan_typeを用いてピクチャレベルで示される。ビットストリームコンフォーマンスの要件は、general_progressive_source_flagが1に等しく、general_interlaced_source_flagが1に等しい場合に、フレーム-フィールド情報SEIメッセージが各AUに存在すべきであることである。
注記1-デコーダは、general_progressive_source_flag及びgeneral_interlaced_source_flagの値を無視してもよい。更に、ピクチャの実際のソーススキャンタイプは、この仕様の範囲外であり、エンコーダがgeneral_progressive_source_flag及びgeneral_interlaced_source_flagの値を選択する方法は、不特定である。
1に等しいgeneral_non_packed_constraint_flagは、OlsInScopeのビットストリームに存在する如何なるフレームパッキング配置SEIメッセージもあってはならないことを指定する。0に等しいgeneral_non_packed_constraint_flagは、そのような制約を課さない。
注記2-フレームパッキング配置SEIメッセージの存在又は解釈に関連した復号化プロセス要件が存在しないということで、デコーダはgeneral_non_packed_constraint_flagの値を無視してもよい。
1に等しいgeneral_frame_only_constraint_flagは、OlsInScopeが、フレームを表すピクチャを運ぶことを指定する。0に等しいgeneral_frame_only_constraint_flagは、OlsInScopeが、フレームを表しても表さなくてもよいピクチャを運ぶことを指定する。
注記3-デコーダは、general_frame_only_constraint_flagの値を、それに関連した復号化プロセス要件が存在しないということで、無視してもよい。
1に等しいgeneral_non_projected_constraint_flagは、OlsInScopeのビットストリームに存在する如何なる正距円筒図法投影SEIメッセージ又は一般化されたキューブマップ投影SEIメッセージもあってはならないことを指定する。0に等しいgeneral_non_projected_constraint_flagは、そのような制約を課さない。
注記4-正距円筒図法投影SEIメッセージ又は一般化されたキューブマップ投影SEIメッセージの存在又は解釈に関連した復号化プロセス要件が存在しないということで、デコーダはgeneral_non_projected_constraint_flagの値を無視してもよい。
1に等しいintra_only_constraint_flagは、slice_typeがIに等しくなければならないことを指定する。0に等しいintra_only_constraint_flagは、そのような制約を課さない。
max_bitdepth_constraint_idcは、bit_depth_minus8が0以上max_bitdepth_constraint_idc以下の範囲内になければならいことを指定する。
max_chroma_format_constraint_idcは、chroma_format_idcが0以上max_chroma_format_constraint_idc以下の範囲内になければならいことを指定する。
1に等しいno_res_change_in_clvs_constraint_flagは、res_change_in_clvs_allowed_flagが0に等しくなければならないことを指定する。0に等しいno_res_change_in_clvs_constraint_flagは、そのような制約を課さない。
1に等しいone_tile_per_pic_constraint_flagは、各ピクチャがただ1つのタイルのみを含むべきであることを指定する。0に等しいone_tile_per_pic_constraint_flagは、そのような制約を課さない。
1に等しいone_slice_per_pic_constraint_flagは、各ピクチャがただ1つのスライスのみを含むべきであることを指定する。0に等しいone_slice_per_pic_constraint_flagは、そのような制約を課さない。
1に等しいone_subpic_per_pic_constraint_flagは、各ピクチャがただ1つのサブピクチャのみを含むべきであることを指定する。0に等しいone_subpic_per_pic_constraint_flagは、そのような制約を課さない。one_slice_per_pic_constraint_flagが1に等しい場合に、one_subpic_per_pic_constraint_flagの値は1に等しくなければならない。
1に等しいno_qtbtt_dual_tree_intra_constraint_flagは、qtbtt_dual_tree_intra_flagが0に等しくなければならないことを指定する。0に等しいno_qtbtt_dual_tree_intra_constraint_flagは、そのような制約を課さない。
1に等しいno_partition_constraints_override_constraint_flagは、partition_constraints_override_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_partition_constraints_override_constraint_flagは、そのような制約を課さない。
1に等しいno_sao_constraint_flagは、sps_sao_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_sao_constraint_flagは、そのような制約を課さない。
1に等しいno_alf_constraint_flagは、sps_alf_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_alf_constraint_flagは、そのような制約を課さない。
1に等しいno_ccalf_constraint_flagは、sps_ccalf_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_ccalf_constraint_flagは、そのような制約を課さない。
1に等しいno_joint_cbcr_constraint_flagは、sps_joint_cbcr_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_joint_cbcr_constraint_flagは、そのような制約を課さない。
1に等しいno_ref_wraparound_constraint_flagは、sps_ref_wraparound_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_ref_wraparound_constraint_flagは、そのような制約を課さない。
1に等しいno_temporal_mvp_constraint_flagは、sps_temporal_mvp_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_temporal_mvp_constraint_flagは、そのような制約を課さない。
1に等しいno_sbtmvp_constraint_flagは、sps_sbtmvp_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_sbtmvp_constraint_flagは、そのような制約を課さない。
1に等しいno_amvr_constraint_flagは、sps_amvr_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_amvr_constraint_flagは、そのような制約を課さない。
1に等しいno_bdof_constraint_flagは、sps_bdof_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_bdof_constraint_flagは、そのような制約を課さない。
1に等しいno_dmvr_constraint_flagは、sps_dmvr_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_dmvr_constraint_flagは、そのような制約を課さない。
1に等しいno_cclm_constraint_flagは、sps_cclm_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_cclm_constraint_flagは、そのような制約を課さない。
1に等しいno_mts_constraint_flagは、sps_mts_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_mts_constraint_flagは、そのような制約を課さない。
1に等しいno_sbt_constraint_flagは、sps_sbt_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_sbt_constraint_flagは、そのような制約を課さない。
1に等しいno_affine_motion_constraint_flagは、sps_affine_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_affine_motion_constraint_flagは、そのような制約を課さない。
1に等しいno_bcw_constraint_flagは、sps_bcw_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_bcw_constraint_flagは、そのような制約を課さない。
1に等しいno_ibc_constraint_flagは、sps_ibc_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_ibc_constraint_flagは、そのような制約を課さない。
1に等しいno_ciip_constraint_flagは、sps_ciip_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_cipp_constraint_flagは、そのような制約を課さない。
1に等しいno_fpel_mmvd_constraint_flagは、sps_fpel_mmvd_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_fpel_mmvd_constraint_flagは、そのような制約を課さない。
1に等しいno_gpm_constraint_flagは、sps_gpm_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_gpm_constraint_flagは、そのような制約を課さない。
1に等しいno_ladf_constraint_flagは、sps_ladf_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_ladf_constraint_flagは、そのような制約を課さない。
1に等しいno_transform_skip_constraint_flagは、sps_transfrom_skip_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_transform_skip_constraint_flagは、そのような制約を課さない。
1に等しいno_bdpcm_constraint_flagは、sps_bdpcm_enabled_flagが0に等しくなければならないことを指定する。0に等しいno_bdpcm_constraint_flagは、そのような制約を課さない。
1に等しいno_qp_delta_constraint_flagは、ビットストリームコンフォーマンスの要件が、cu_qp_delta_enabled_flagが0に等しくなければならないことである、ことを指定する。0に等しいno_qp_delta_constraint_flagは、そのような制約を課さない。
1に等しいno_dep_quant_constraint_flagは、ビットストリームコンフォーマンスの要件が、sps_dep_quant_enabled_flagが0に等しくなければならないことである、ことを指定する。0に等しいno_dep_quant_constraint_flagは、そのような制約を課さない。
1に等しいno_sign_data_hiding_constraint_flagは、ビットストリームコンフォーマンスの要件が、sps_sign_data_hiding_enabled_flagが0に等しくなければならないことである、ことを指定する。0に等しいno_sign_data_hiding_constraint_flagは、そのような制約を課さない。
1に等しいno_mixed_nalu_types_in_pic_constraint_flagは、ビットストリームコンフォーマンスの要件が、mixed_nalu_types_in_pic_flagが0に等しくなければならないことである、ことを指定する。0に等しいno_mixed_nalu_types_in_pic_constraint_flagは、そのような制約を課さない。
1に等しいno_trail_constraint_flagは、OlsInScopeに存在するTRAIL_NUTに等しいnuh_unit_typeを有するNALユニットが存在すべきでないことを指定する。0に等しいno_trail_constraint_flagは、そのような制約を課さない。
1に等しいno_stsa_constraint_flagは、OlsInScopeに存在するSTSA_NUTに等しいnuh_unit_typeを有するNALユニットが存在すべきでないことを指定する。0に等しいno_stsa_constraint_flagは、そのような制約を課さない。
1に等しいno_rasl_constraint_flagは、OlsInScopeに存在するRASL_NUTに等しいnuh_unit_typeを有するNALユニットが存在すべきでないことを指定する。0に等しいno_rasl_constraint_flagは、そのような制約を課さない。
1に等しいno_radl_constraint_flagは、OlsInScopeに存在するRADL_NUTに等しいnuh_unit_typeを有するNALユニットが存在すべきでないことを指定する。0に等しいno_radl_constraint_flagは、そのような制約を課さない。
1に等しいno_idr_constraint_flagは、OlsInScopeに存在するIDR_W_RADL又はIDR_N_LPに等しいnuh_unit_typeを有するNALユニットが存在すべきでないことを指定する。0に等しいno_idr_constraint_flagは、そのような制約を課さない。
1に等しいno_cra_constraint_flagは、OlsInScopeに存在するCRA_NUTに等しいnuh_unit_typeを有するNALユニットが存在すべきでないことを指定する。0に等しいno_cra_constraint_flagは、そのような制約を課さない。
1に等しいno_gdr_constraint_flagは、OlsInScopeに存在するGDR_NUTに等しいnuh_unit_typeを有するNALユニットが存在すべきでないことを指定する。0に等しいno_gdr_constraint_flagは、そのような制約を課さない。
1に等しいno_aps_constraint_flagは、OlsInScopeに存在するPREFIX_APS_NUT又はSUFFIX_APS_NUTに等しいnuh_unit_typeを有するNALユニットが存在すべきでないことを指定する。0に等しいno_aps_constraint_flagは、そのような制約を課さない。
gci_alignment_zero_bitsは0に等しくなければならない。
num_reserved_constraint_bytesは、リザーブされている制約バイトの数を指定する。num_reserved_constraint_bytesの値は0でなければならない。num_reserved_constraint_bytesの他の値は、ITU-T|ISO/IECによる将来の使用のためにリザーブされ、この仕様のこのバージョンに従うビットストリームに存在すべきではない。
gci_reserved_constraint_byte[i]は如何なる値も有し得る。その存在及び値は、この仕様のこのバージョンで指定されているプロファイルへのデコーダの準拠に影響を及ぼさない。この仕様のこのバージョンに従うデコーダは、全てのgci_reserved_constraint_byte[i]シンタックス要素の値を無視すべきである。
【0036】
[3.2.SPSシンタックス及びセマンティクス]
最新のVVC草案テキストでは、SPSのシンタックス及びセマンティクスは次の通りである:
【表2】
SPS RBSPは、それが参照される前に復号化プロセスに利用可能であり、0に等しいTemporalIdを有する少なくとも1つのAUに含まれるか、又は外部手段を通じて提供されるものであるとする。
CSV内のsps_seq_parameter_set_idの特定の値を有する全てのSPS NALユニットは、同じコンテンツを有するべきである。
sps_seq_parameter_set_idは、他のシンタックス要素によって参照されるSPSの識別子を与える。
SPS NALユニットは、nuh_layer_idの値にかかわらず、sps_seq_parameter_set_idの同じ値空間を共有する。
spsLayerIdを特定のSPS NALユニットのnuh_layer_idの値であるとし、vclLayerIdを特定のVCL NALユニットのnuh_layer_idの値であるとする。特定のVCL NALユニットは、spsLayerIdがvclLayerId以下である場合を除いて、特定のSPS NALユニットを参照してはならず、spsLayerIdに等しいnuh_layer_idを有するレイヤは、vclLayerIdに等しいnuh_layer_idを有するレイヤを含む少なくとも1つのOLSに含まれる。
sps_video_parameter_set_idは、0よりも大きいとき、SPSによって参照されるVPSのvps_video_parameter_set_idの値を指定する。
sps_video_parameter_set_idが0に等しいとき、次が適用される:
- SPSはVPSを参照しない。
- VPSは、SPSを参照する各CLVSを復号するときに参照される。
- vps_max_layers_minus1の値は、0に等しいと推測される。
- CVSはただ1つのレイヤのみを含むべきである(つまり、CSV内の全てのVCL NALユニットは、nuh_layer_idの同じ値を有すべきである)。
- GeneralLayerIdx[nuh_layer_id]の値は、0に等しいと推測される。
- vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]の値は、1に等しいと推測される。
vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が1に等しいとき、特定のnuh_layer_idの値nuhLayerIdを有するCLVSによって参照されるSPS NALユニットは、nuhLayerIdに等しいnuh_layer_idを有するべきである
sps_video_parameter_set_idの値は、CVS内のCLVSによって参照される全てのSPSで同じであるべきである。
sps_max_sublayers_minus1に1をプラスしたものは、SPSを参照する各CLVSに存在し得る時間サブレイヤの最大数を指定する。sps_max_sublayers_minus1の値は、0以上vps_max_sublayers_minus1以下の範囲内になければならない。
sps_reserved_zero_4bitsは、この仕様のこのバージョンに従うビットストリームにおいて0に等しくなければならない。sps_reserved_zero_4bitsの他の値は、ITU-T|ISO/IECによる将来の使用のためにリザーブされる。
1に等しいsps_ptl_dpb_hrd_params_present_flagは、profile_tier_level( )シンタックス構造及びdpb_parameters( )シンタックス構造がSPSに存在し、general_hrd_parameters( )シンタックス構造及びols_hrd_parameters( )シンタックス構造もSPSに存在し得ることを指定する。0に等しいsps_ptl_dpb_hrd_params_present_flagは、これら4つのシンタックス構造のどれもSPSに存在しないことを指定する。sps_ptl_dpb_hrd_params_present_flagの値はvps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]に等しくなければならない。
1に等しいgdr_enabled_flagは、GDRピクチャがSPSを参照するCLVSに存在し得ることを指定する。0に等しいgdr_enabled_flagは、GDRピクチャがSPSを参照するCLVSに存在しないことを指定する。
chroma_format_idcは、第6.2節で指定されるような、ルーマサンプリングに対するクロマサンプリングを指定する。
1に等しいseparate_colour_plane_flagは、4:4:4クロマフォーマットの3つの色成分が別々にコーディングされることを指定する。0に等しいseparate_colour_plane_flagは、色成分が別々にコーディングされないことを指定する。separate_colour_plane_flagが存在しない場合に、それは0に等しいと推測される。separate_colour_plane_flagが1に等しい場合に、コーディングされたピクチャは3つの色成分から成り、各色成分は、1つの色平面(Y,Cb,又はCr)のコーディングされたサンプルから成り、モノクロコーディングシンタックスを使用する。この場合に、各色平面は特定のcolour_plane_id値と関連付けられる。
注記1-異なるcolour_plane_id値を有している色平面の間には復号化プロセスにおいて依存性はない。例えば、colour_plane_idの1つの値を有するモノクロピクチャの復号化プロセスは、インター予測のために異なるcolour_plane_idの値を有するモノクロピクチャからの如何なるデータも使用しない。
separate_colour_plane_flagの値に応じて、変数ChromaArrayTypeの値は次の通りに割り当てられる:
- separate_colour_plane_flagが0に等しい場合に、ChromaArrayTypeはchroma_format_idcに等しくセットされる。
- その他の場合(separate_colour_plane_flagが1に等しい場合)に、ChromaArrayTypeは0に等しくセットされる。
1に等しいres_change_in_clvs_allowed_flagは、ピクチャ空間分解能がSPSを参照するCLVS内で変化し得ることを指定する。0に等しいres_change_in_clvs_allowed_flagは、ピクチャ空間分解能がSPSを参照する如何なるCLVS内でも変化しないことを指定する。
pic_width_max_in_luma_samplesは、SPSを参照する各復号されたピクチャの、ルーマサンプルの単位で表される最大幅を指定する。pic_width_max_in_luma_samplesは、0に等しくてはならず、Max(8,MinCbSizeY)の整数倍でなければならない。
ビットストリームコンフォーマンスの要件は、SPSを参照する1つ以上のレイヤを含むOLSインデックスiを有するいずれかのOLSについて、pic_width_max_in_luma_samplesの値がols_dpb_pic_width[i]の値以下でなければならないことである。
pic_height_max_in_luma_samplesは、SPSを参照する各復号されたピクチャの、ルーマサンプルの単位で表される最大高さを指定する。pic_height_max_in_luma_samplesは、0に等しくてはならず、Max(8,MinCbSizeY)の整数倍でなければならない。
ビットストリームコンフォーマンスの要件は、SPSを参照する1つ以上のレイヤを含むOLSインデックスiを有するいずれかのOLSについて、pic_height_max_in_luma_samplesの値がols_dpb_pic_height[i]の値以下でなければならないことである。
1に等しいsps_conformance_window_flagは、コンフォーマンスクロッピングウィンドウオフセットパラメータがSPSで次に続くことを示す。0に等しいsps_conformance_window_flagは、コンフォーマンスクロッピングウィンドウオフセットパラメータがSPSで存在しないことを示す。
sps_conf_win_left_offset、sps_conf_win_right_offset、sps_conf_win_top_offset及びsps_conf_win_bottom_offsetは、pic_width_max_in_luma_samplesに等しいpic_width_in_luma_samples及びpic_height_max_in_luma_samplesに等しいpic_height_in_luma_samplesを有するピクチャに適用されるクロッピングウィンドウを指定する。sps_conformance_window_flagが0に等しいとき、sps_conf_win_left_offset、sps_conf_win_right_offset、sps_conf_win_top_offset及びsps_conf_win_bottom_offsetの値は、0に等しいと推測される。
コンフォーマンスクロッピングウィンドウは、SubWidthC*sps_conf_win_left_offset以上pic_width_max_in_luma_samples-(SubWidthC*sps_conf_win_right_offset+1)以下の水平ピクチャ座標及びSubHeightC*sps_conf_win_top_offset以上pic_height_max_in_luma_samples-(SubHeightC*sps_conf_win_bottom_offset+1)以下の垂直ピクチャ座標を有するルーマサンプルを含む。
SubWidthC*(sps_conf_win_left_offset+sps_conf_win_right_offset)の値は、pic_width_max_in_luma_samples未満でなければならず、SubHeightC*(sps_conf_win_top_offset+sps_conf_win_bottom_offset)の値は、pic_height_max_in_luma_samples未満でなければならない。
ChromaArrayTypeが0に等しくないとき、2つのクロマアレイの対応する指定されたサンプルは、ピクチャ座標(x/SubWidthC,y/SubHeightC)を有するサンプルであり、このとき、(x,y)は、指定されたルーマサンプルのピクチャ座標である。
注記2-コンフォーマンスクロッピングウィンドウオフセットパラメータは出力でのみ適用される。全ての内部復号化プロセスは、クロッピングされていないピクチャサイズに適用される。
sps_log2_ctu_size_minus5に5をプラスしたものは、各CTUのルーマコーディングツリーブロックを指定する。sps_log2_ctu_size_minus5の値は、0以上2以下の範囲内になければならない。sps_log2_ctu_size_minus5の値3は、ITU-T|ISO/IECによるリザーブされる。
変数CtbLog2SizeY及びCtbSizeYは、次の通りに導出される:
CtbLog2SizeY=sps_log2_ctu_size_minus5+5 (43)
CtbSizeY=1<<CtbLog2SizeY (44)
1に等しいsubpic_info_present_flagは、サブピクチャ情報がCLVSに対して存在し、CLVSの各ピクチャに1又は1よりも多いサブピクチャが存在し得ることを指定する。0に等しいsubpic_info_present_flagは、サブピクチャ情報がCLVSに対して存在せず、CLVSの各ピクチャに1つのサブピクチャしか存在しないことを指定する。
res_change_in_clvs_allowed_flagが1に等しい場合に、subpic_info_present_flagの値は0に等しくなければならない。
注記3-ビットストリームがサブビットストリーム抽出プロセスの結果であり、サブビットストリーム抽出プロセスに対する入力ビットストリームのサブピクチャのサブセットしか含まないとき、SPSのRBSPでsubpic_info_present_flagの値を1に等しくセットすることが必要とされ得る。
sps_num_subpics_minus1に1をプラスしたものは、CLVSにおける各ピクチャ内のサブピクチャの数を指定する。sps_num_subpics_minus1の値は、0以上Ceil(pic_width_max_in_luma_samples÷CtbSizeY)*Ceil(pic_height_max_in_luma_samples÷CtbSizeY)-1以下の範囲内になければならない。存在しない場合に、sps_num_subpics_minus1の値は、0に等しいと推測される。
1に等しいsps_independent_subpics_flagは、イントラ予測動作も、インター予測動作も、インループフィルタリング動作も、CLVSにおいて如何なるサブピクチャ境界にわたっても実行され得ないことを指定する。0に等しいsps_independent_subpics_flagは、CLVSにおけるサブピクチャ境界にわたるインター予測動作又はインループフィルタリング動作が許可され得ることを指定する。存在しない場合に、sps_independent_subpics_flagの値は、0に等しいと推測される。
subpic_ctu_top_left_x[i]は、CtbSizeYの単位でi番目のサブピクチャの左上CTUの水平位置を指定する。シンタックス要素の長さはCeil(Log2((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。存在しない場合に、subpic_ctu_top_left_x[i]の値は、0に等しいと推測される。
subpic_ctu_top_left_y[i]は、CtbSizeYの単位でi番目のサブピクチャの左上CTUの垂直位置を指定する。シンタックス要素の長さはCeil(Log2((pic_height_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。存在しない場合に、subpic_ctu_top_left_y[i]の値は、0に等しいと推測される。
subpic_width_minus1[i]に1をプラスしたものは、CtbSizeYの単位でi番目のサブピクチャの幅を指定する。シンタックス要素の長さはCeil(Log2((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。存在しない場合に、subpic_width_minus1[i]の値は、((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-subpic_ctu_top_left_x[i]-1に等しいと推測される。
subpic_height_minus1[i]に1をプラスしたものは、CtbSizeYの単位でi番目のサブピクチャの高さを指定する。シンタックス要素の長さはCeil(Log2((pic_height_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。存在しない場合に、subpic_height_minus1[i]の値は、((pic_height_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-subpic_ctu_top_left_y[i]-1に等しいと推測される。
1に等しいsubpic_treated_as_pic_flag[i]は、CLVSにおける各コーディングされたピクチャのi番目のサブピクチャが、インループフィルタリング動作を除いて復号化プロセスでピクチャとして扱われる、ことを指定する。0に等しいsubpic_treated_as_pic_flag[i]は、CLVSにおける各コーディングされたピクチャのi番目のサブピクチャが、インループフィルタリング動作を除いて復号化プロセスでピクチャとして扱われない、ことを指定する。存在しない場合に、subpic_treated_as_pic_flag[i]の値は、sps_independent_subpics_flagに等しいと推測される。
subpic_treated_as_pic_flag[i]が1に等しい場合に、ビットストリームコンフォーマンスの要件は、次の条件の全部が、各出力レイヤと、i番目のサブピクチャを含むレイヤを出力レイヤとして含むOLS内のその参照レイヤについて真である、ことである:
- 出力レイヤ及びその参照レイヤ内の全てのピクチャがpic_width_in_luma_samplesの同じ値及びpic_height_in_luma_samplesの同じ値を有さなければならない。
- 出力レイヤ及びその参照レイヤによって参照される全てのSPSがsps_num_subpics_minus1の同じ値を有さなければならず、かつ、0以上sps_num_subpics_minus1以下の範囲内のjの各値について、夫々、subpic_ctu_top_left_x[j]、subpic_ctu_top_left_y[j]、subpic_width_minus1[j]、subpic_height_minus1[j]及びloop_filter_across_subpic_enabled_flag[j]の同じ値を有さなければならない。
- 出力レイヤ及びその参照レイヤ内の各アクセスユニット内の全てのピクチャが、0以上sps_num_subpics_minus1以下の範囲内のjの各値について、SubpicIdVal[j]の同じ値を有さなければならない。
1に等しいloop_filter_across_subpic_enabled_flag[i]は、インループフィルタリング動作がCLVSにおける各コーディングされたピクチャ内のi番目のサブピクチャの境界にわたって実行され得ることを指定する。0に等しいloop_filter_across_subpic_enabled_flag[i]は、インループフィルタリング動作がCLVSにおける各コーディングされたピクチャ内のi番目のサブピクチャの境界にわたって実行されないことを指定する。存在しない場合に、loop_filter_across_subpic_enabled_pic_flag[i]の値は、1-sps_independent_subpics_flagに等しいと推測される。
ビットストリームコンフォーマンスの要件は、サブピクチャの形状が、各サブピクチャが、復号されるときに、ピクチャ境界から成るか又は前に復号されたサブピクチャの境界から成るその左境界全体及び上境界全体を有すべきであるようなものでなければならないことである。
sps_subpic_id_len_minus1に1をプラスしたものは、シンタックス要素sps_subpic_id[i]、存在する場合にシンタックス要素pps_subpic_id[i]、及び存在する場合にシンタックス要素slice_subpic_idを表すために使用されるビットの数を指定する。sps_subpic_id_len_minus1の値は0以上15以下の範囲内になければならない。1<<(sps_subpic_id_len_minus1+1)の値はsps_num_subpics_minus1+1以上でなければならない。
1に等しいsubpic_id_mapping_explicitly_signalled_flagは、サブピクチャIDマッピングが、CLVSのコーディングされたピクチャによって参照されるPPSで又はSPSで、明示的にシグナリングされることを指定する。0に等しいsubpic_id_mapping_explicitly_signalled_flagは、サブピクチャIDマッピングがCLVSに対して明示的にシグナリングされないことを指定する。存在しない場合に、subpic_id_mapping_explicitly_signalled_flagの値は、0に等しいと推測される。
1に等しいsubpic_id_mapping_in_sps_flagは、subpic_id_mapping_explicitly_signalled_flagが1に等しいときに、サブピクチャIDマッピングがSPSでシグナリングされることを指定する。0に等しいsubpic_id_mapping_in_sps_flagは、subpic_id_mapping_explicitly_signalled_flagが1に等しいときに、サブピクチャIDマッピングがCLVSのコーディングされたピクチャによって参照されるPPSでシグナリングされることを指定する。
sps_subpic_id[i]は、i番目のサブピクチャのサブピクチャIDを指定する。sps_subpic_id[i]シンタックス要素の長さはsps_subpic_id_len_minus1+1ビットである。
bit_depth_minus8は、次の通りに、ルーマアレイ及びクロマアレイのサンプルのビットデプスBitDepthと、ルーマ及びクロマ量子化パラメータ範囲オフセットの値QpBdOffsetとを指定する:
BitDepth=8+bit_depth_minus8 (45)
QpBdOffset=6*bit_depth_minus8 (46)
bit_depth_minus8は、0以上8以下の範囲内になければならない。
1に等しいsps_entropy_coding_sync_enabled_flagは、コンテキスト変数に対する特定の同期化プロセスが、SPSを参照する各ピクチャ内の各タイルのCTBの行の最初のCTBを含むCTUを復号する前に呼び出され、コンテキスト変数に対する特定の記憶プロセスが、SPSを参照する各ピクチャ内の各タイルのCTBの行の第1CTBを含むCTUを復号した後で呼び出される、ことを指定する。0に等しいsps_entropy_coding_sync_enabled_flagは、コンテキスト変数に対する特定の同期化プロセスが、SPSを参照する各ピクチャ内の各タイルのCTBの行の最初のCTBを含むCTUを復号する前に呼び出される必要がなく、コンテキスト変数に対する特定の記憶プロセスが、SPSを参照する各ピクチャ内の各タイルのCTBの行の第1CTBを含むCTUを復号した後で呼び出される必要がない、ことを指定する。
1に等しいsps_wpp_entry_point_offsets_present_flagは、sps_entropy_coding_sync_enabled_flagが1に等しいときに、CTU行のエントリポイントオフセットのシグナリングが、SPSを参照するピクチャのスライスヘッダに存在し得ることを指定する。0に等しいsps_wpp_entry_point_offsets_present_flagは、CTU行のエントリポイントオフセットのシグナリングが、SPSを参照するピクチャのスライスヘッダに存在しないことを指定する。存在しない場合に、sps_wpp_entry_point_offsets_present_flagの値は、0に等しいと推測される。
1に等しいsps_weighted_pred_flagは、重み付き予測がSPSを参照するPスライスに適用され得ることを指定する。0に等しいsps_weighted_pred_flagは、重み付き予測がSPSを参照するPスライスに適用されないことを指定する。
1に等しいsps_weighted_bipred_flagは、明示的な重み付き予測がSPSを参照するBスライスに適用され得ることを指定する。0に等しいsps_weighted_bipred_flagは、明示的な重み付き予測がSPSを参照するBスライスに適用されないことを指定する。
log2_max_pic_order_cnt_lsb_minus4は、次の通りに、ピクチャオーダーカウントのために復号化プロセスで使用される変数MaxPicOrderCntLsbの値を指定する:
MaxPicOrderCntLsb=2(log2_max_pic_order_cnt_lsb_minus4+4) (47)
log2_max_pic_order_cnt_lsb_minus4の値は、0以上12以下の範囲内になければならない。
1に等しいsps_poc_msb_flagは、ph_poc_msb_present_flagシンタックス要素がSPSを参照するPHで存在することを指定する。0に等しいsps_poc_msb_flagは、ph_poc_msb_present_flagシンタックス要素がSPSを参照するPHで存在しないことを指定する。
poc_msb_len_minus1に1をプラスしたものは、poc_msb_valシンタックス要素の、ビットでの長さを、SPSを参照するPHで存在する場合に指定する。poc_msb_len_minus1の値は、0以上32-log2_max_pic_order_cnt_lsb_minus4-5以下の範囲内になければならない。
num_extra_ph_bits_bytesは、SPSを参照するコーディングされたピクチャのためのPHシンタックス構造での余分ビットのバイトの数を指定する。num_extra_ph_bits_bytesの値は、この仕様のこのバージョンに従うビットストリームでは0に等しくなければならない。num_extra_ph_bits_bytesの値はこの仕様のこのバージョンで0に等しいことを求められるが、この仕様のこのバージョンに従うデコーダは、1又は2に等しいnum_extra_ph_bits_bytesの値がシンタックスで現れることを許すべきである。
num_extra_sh_bits_bytesは、SPSを参照するコーディングされたピクチャのためのスライスヘッダでの余分ビットのバイトの数を指定する。num_extra_sh_bits_bytesの値は、この仕様のこのバージョンに従うビットストリームでは0に等しくなければならない。num_extra_sh_bits_bytesの値はこの仕様のこのバージョンで0に等しいことを求められるが、この仕様のこのバージョンに従うデコーダは、1又は2に等しいnum_extra_sh_bits_bytesの値がシンタックスで現れることを許すべきである。
sps_sublayer_dpb_params_flagは、SPS内のdpb_parameters( )シンタックス構造でのmax_dec_pic_buffering_minus1[i]シンタックス要素、max_num_reorder_pics[i]シンタックス要素、及びmax_latency_increase_plus1[i]シンタックス要素の存在を制御するために使用される。存在しない場合に、sps_sub_dpb_params_info_present_flagの値は、0に等しいと推測される。
0に等しいlong_term_ref_pics_flagは、CLVS内の如何なるコーディングされたピクチャのインター予測のためにもLTRPは使用されないことを指定する。1に等しいlong_term_ref_pics_flagは、LTRPがCLVS内の1つ以上のコーディングされたピクチャのインター予測のために使用され得ることを指定する。
0に等しいinter_layer_ref_pics_present_flagは、CLVS内の如何なるコーディングされたピクチャのインター予測のためにもILRPは使用されないことを指定する。1に等しいinter_layer_ref_pic_flagは、ILRPがCLVS内の1つ以上のコーディングされたピクチャのインター予測のために使用され得ることを指定する。sps_video_parameter_set_idが0に等しいとき、inter_layer_ref_pics_present_flagの値は、0に等しいと推測される。vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が1に等しいとき、inter_layer_ref_pics_present_flagの値は0に等しくなければならない。[Ed.(YK):このシンタックス要素についてより良い名称が存在するかどうかを確認されたい。]
1に等しいsps_idr_rpl_present_flagは、参照ピクチャリストシンタックス要素がIDRピクチャのスライスヘッダに存在することを指定する。0に等しいsps_idr_rpl_present_flagは、参照ピクチャリストシンタックス要素がIDRピクチャのスライスヘッダに存在しないことを指定する。
1に等しいrpl1_same_as_rpl0_flagは、シンタックス要素num_ref_pic_lists_in_sps[1]及びシンタックス要素ref_pic_list_struct(1,rplsIdx)が存在せず、次が適用されることを指定する:
- num_ref_pic_lists_in_sps[1]の値は、num_ref_pic_lists_in_sps[0]の値に等しいと推測される。
- ref_pic_list_struct(1,rplsIdx)内のシンタックス要素の夫々の値は、0からnum_ref_pic_lists_in_sps[0]-1までの範囲におよぶrplsIdxについて、ref_pic_list_struct(0,rplsIdx)内の対応するシンタックス要素の値に等しいと推測される。
num_ref_pic_lists_in_sps[i]は、SPSに含まれる、listIdxがiに等しいref_pic_list_struct(listIdx,rplsIdx)シンタックス構造の数を指定する。num_ref_pic_lists_in_sps[i]の値は0以上64以下の範囲内になければならない。
注記4-listIdx(0又は1に等しい)の各値について、現在のピクチャのスライスヘッダで直接にシグナリングされた1つのref_pic_list_struct(listIdx,rplsIdx)シンタックス構造が存在し得るので、デコーダは、総数num_ref_pic_lists_in_sps[i]+1個のref_pic_list_struct(listIdx,rplsIdx)シンタックス構造のためにメモリを割り当てるべきである。
1に等しいqtbtt_dual_tree_intra_flagは、Iスライスについて、各CTUが暗黙的な四分木分割を用いて64×64のルーマサンプルを含むコーディングユニットに分けられ、これらのコーディングユニットがルーマ及びクロマのための2つの別個のcoding_treeシンタックス構造の根であることを指定する。0に等しいqtbtt_dual_tree_intra_flagは、別個のcoding_treeシンタックス構造がIスライスに対して使用されないことを指定する。qtbtt_dual_tree_intra_flagが存在しない場合に、それは0に等しいと推測される。
log2_min_luma_coding_block_size_minus2に2をプラスしたものは、最小ルーマコーディングブロックサイズを指定する。log2_min_luma_coding_block_size_minus2の範囲値は、0以上Min(4,sps_log2_ctu_size_minus5+3)以下の範囲内になければならない。
変数MinCbLog2SizeY、MinCbSizeY、IbcBufWidthY、IbcBufWidthC及びVsizeは、次の通りに導出される:
MinCbLog2SizeY=log2_min_luma_coding_block_size_minus2+2 (48)
MinCbSizeY=1<<MinCbLog2SizeY (49)
IbcBufWidthY=256*128/CtbSizeY (50)
IbcBufWidthC=IbcBufWidthY/SubWidthC (51)
VSize=Min(64,CtbSizeY) (52)
MinCbSizeYの値はVSize以下でなければならない。
変数CtbWidthC及びCtbHeightCは、各クロマCTBのアレイの幅及び高さを夫々指定するものであり、次の通りに導出される:
- chroma_format_idcが0(モノクロ)に等しいか又はseparate_colour_plane_flagが1に等しい場合に、CtbWidthC及びCtbHeightCは両方とも0に等しい。
- その他の場合に、CtbWidthC及びCtbHeightCは次の通りに導出される:
CtbWidthC=CtbSizeY/SubWidthC (53)
CtbHeightC=CtbSizeY/SubHeightC (54)
log2BlockWidthが0以上4以上であり、log2BlockHeightが0以上4以上である場合に、第6.5.2節で指定されるような、右上斜め走査順序アレイ初期化プロセスが、1<<log2BlockWidth及び1<<log2BlockHeightを入力として呼び出され、出力はDiagScanOrder[log2BlockWidth][log2BlockHeight]に割り当てられる。
log2BlockWidthが0以上6以上であり、log2BlockHeightが0以上6以上である場合に、第6.5.3節で指定されるような、水平及び垂直トラバース走査順序アレイ初期化プロセスが、1<<log2BlockWidth及び1<<log2BlockHeightを入力として呼び出され、出力はHorTravScanOrder[log2BlockWidth][log2BlockHeight]及びVerTravScanOrder[log2BlockWidth][log2BlockHeight]に割り当てられる。
1に等しいpartition_constraints_override_enabled_flagは、SPSを参照するPHでのpartition_constraints_override_flagの存在を指定する。0に等しいpartition_constraints_override_enabled_flagは、SPSを参照するPHでのpartition_constraints_override_flagの欠如を指定する。
sps_log2_diff_min_qt_min_cb_intra_slice_lumaは、CTUの四分木分割により生じるルーマリーフブロックのルーマサンプルでの最小サイズの2を底とする対数と、SPSを参照する2(I)に等しいslice_typeを有するスライス内のルーマCUのルーマサンプルでの最小コーディングブロックサイズの2を底とする対数との間のデフォルトの差を指定する。partition_constraints_override_enabled_flagが1に等しいとき、デフォルトの差は、SPSを参照するPHに存在するph_log2_diff_min_qt_min_cb_lumaによってオーバーライドされ得る。sps_log2_diff_min_qt_min_cb_intra_slice_lumaの値は0以上CtbLog2SizeY-MinCbLog2SizeY以下の範囲内になければならない。CTUの四分木分割により生じるルーマリーフブロックのルーマサンプルでの最小サイズの2を底とする対数は、次の通りに導出される:
MinQtLog2SizeIntraY=
sps_log2_diff_min_qt_min_cb_intra_slice_luma+MinCbLog2SizeY (55)
sps_max_mtt_hierarchy_depth_intra_slice_lumaは、SPSを参照する2(I)に等しいslice_typeを有するスライス内の四分木リーフのマルチタイプツリー分割により生じるコーディングユニットのデフォルトの最大ヒエラルキデプスを指定する。partition_constraints_override_enabled_flagが1に等しいとき、デフォルトの最大ヒエラルキデプスは、SPSを参照するPHに存在するph_max_mtt_hierarchy_depth_intra_slice_lumaによってオーバーライドされ得る。sps_max_mtt_hierarchy_depth_intra_slice_lumaの値は0以上2*(CtbLog2SizeY-MinCbLog2SizeY)以下の範囲内になければならない。
sps_log2_diff_max_bt_min_qt_intra_slice_lumaは、二分木分割を用いて分割され得るルーマコーディングブロックのルーマサンプルでの最大サイズ(幅又は高さ)の2を底とする対数と、SPSを参照する2(I)に等しいslice_typeを有するスライス内のCTUの四分木分割により生じるルーマリーフブロックのルーマサンプルでの最小サイズ(幅又は高さ)との間のデフォルトの差を指定する。partition_constraints_override_enabled_flagが1に等しいとき、デフォルトの差は、SPSを参照するPHに存在するph_log2_diff_max_bt_min_qt_lumaによってオーバーライドされ得る。sps_log2_diff_max_bt_min_qt_intra_slice_lumaの値は0以上CtbLog2SizeY-MinQtLog2SizeIntraY以下の範囲内になければならない。sps_log2_diff_max_bt_min_qt_intra_slice_lumaが存在しない場合に、sps_log2_diff_max_bt_min_qt_intra_slice_lumaの値は0に等しいと推測される。
sps_log2_diff_max_tt_min_qt_intra_slice_lumaは、三分木分割を用いて分割され得るルーマコーディングブロックのルーマサンプルでの最大サイズ(幅又は高さ)の2を底とする対数と、SPSを参照する2(I)に等しいslice_typeを有するスライス内のCTUの四分木分割により生じるルーマリーフブロックのルーマサンプルでの最小サイズ(幅又は高さ)との間のデフォルトの差を指定する。partition_constraints_override_enabled_flagが1に等しいとき、デフォルトの差は、SPSを参照するPHに存在するph_log2_diff_max_tt_min_qt_lumaによってオーバーライドされ得る。sps_log2_diff_max_tt_min_qt_intra_slice_lumaの値は0以上CtbLog2SizeY-MinQtLog2SizeIntraY以下の範囲内になければならない。sps_log2_diff_max_tt_min_qt_intra_slice_lumaが存在しない場合に、sps_log2_diff_max_tt_min_qt_intra_slice_lumaの値は0に等しいと推測される。
sps_log2_diff_min_qt_min_cb_inter_sliceは、CTUの四分木分割により生じるルーマリーフブロックのルーマサンプルでの最小サイズの2を底とする対数と、SPSを参照する0(B)又は1(P)に等しいslice_typeを有するスライス内のルーマCUのルーマサンプルでの最小ルーマコーディングブロックサイズの2を底とする対数との間のデフォルトの差を指定する。partition_constraints_override_enabled_flagが1に等しいとき、デフォルトの差は、SPSを参照するPHに存在するph_log2_diff_min_qt_min_cb_lumaによってオーバーライドされ得る。sps_log2_diff_min_qt_min_cb_inter_sliceの値は0以上CtbLog2SizeY-MinCbLog2SizeY以下の範囲内になければならない。CTUの四分木分割により生じるルーマリーフブロックのルーマサンプルでの最小サイズの2を底とする対数は、次の通りに導出される:
MinQtLog2SizeInterY=
sps_log2_diff_min_qt_min_cb_inter_slice+MinCbLog2SizeY (56)
sps_max_mtt_hierarchy_depth_inter_sliceは、SPSを参照する0(B)又は1(P)に等しいslice_typeを有するスライス内の四分木リーフのマルチタイプツリー分割により生じるコーディングユニットのデフォルトの最大ヒエラルキデプスを指定する。partition_constraints_override_enabled_flagが1に等しいとき、デフォルトの最大ヒエラルキデプスは、SPSを参照するPHに存在するph_max_mtt_hierarchy_depth_inter_sliceによってオーバーライドされ得る。sps_max_mtt_hierarchy_depth_inter_sliceの値は0以上2*(CtbLog2SizeY-MinCbLog2SizeY)以下の範囲内になければならない。
sps_log2_diff_max_bt_min_qt_inter_sliceは、二分木分割を用いて分割され得るルーマコーディングブロックのルーマサンプルでの最大サイズ(幅又は高さ)の2を底とする対数と、SPSを参照する0(B)又は1(P)に等しいslice_typeを有するスライス内のCTUの四分木分割により生じるルーマリーフブロックのルーマサンプルでの最小サイズ(幅又は高さ)との間のデフォルトの差を指定する。partition_constraints_override_enabled_flagが1に等しいとき、デフォルトの差は、SPSを参照するPHに存在するph_log2_diff_max_bt_min_qt_lumaによってオーバーライドされ得る。sps_log2_diff_max_bt_min_qt_inter_sliceの値は0以上CtbLog2SizeY-MinQtLog2SizeInterY以下の範囲内になければならない。sps_log2_diff_max_bt_min_qt_inter_sliceが存在しない場合に、sps_log2_diff_max_bt_min_qt_inter_sliceの値は、0に等しいと推測される。
sps_log2_diff_max_tt_min_qt_inter_sliceは、三分木分割を用いて分割され得るルーマコーディングブロックのルーマサンプルでの最大サイズ(幅又は高さ)の2を底とする対数と、SPSを参照する0(B)又は1(P)に等しいslice_typeを有するスライス内のCTUの四分木分割により生じるルーマリーフブロックのルーマサンプルでの最小サイズ(幅又は高さ)との間のデフォルトの差を指定する。partition_constraints_override_enabled_flagが1に等しいとき、デフォルトの差は、SPSを参照するPHに存在するph_log2_diff_max_tt_min_qt_lumaによってオーバーライドされ得る。sps_log2_diff_max_tt_min_qt_inter_sliceの値は0以上CtbLog2SizeY-MinQtLog2SizeInterY以下の範囲内になければならない。sps_log2_diff_max_tt_min_qt_inter_sliceが存在しない場合に、sps_log2_diff_max_tt_min_qt_inter_sliceの値は、0に等しいと推測される。
sps_log2_diff_min_qt_min_cb_intra_slice_chromaは、DUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCTUの四分木分割により生じるクロマリーフブロックのルーマサンプルでの最小サイズの2を底とする対数と、SPSを参照する2(I)に等しいslice_typeを有するスライス内でDUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCUのルーマサンプルでの最小コーディングブロックサイズの2を底とする対数との間のデフォルトの差を指定する。partition_constraints_override_enabled_flagが1に等しいとき、デフォルトの差は、SPSを参照するPHに存在するph_log2_diff_min_qt_min_cb_chromaによってオーバーライドされ得る。sps_log2_diff_min_qt_min_cb_intra_slice_chromaの値は0以上CtbLog2SizeY-MinCbLog2SizeY以下の範囲内になければならない。存在しない場合に、sps_log2_diff_min_qt_min_cb_intra_slice_chromaの値は、0に等しいと推測される。DUAL_TREE_CHROMAに等しいtreeTypeを有するCTUの四分木分割により生じるクロマリーフブロックのルーマサンプルでの最小サイズの2を底とする対数は、次の通りに導出される:
MinQtLog2SizeIntraC=
sps_log2_diff_min_qt_min_cb_intra_slice_chroma+MinCbLog2SizeY (57)
sps_max_mtt_hierarchy_depth_intra_slice_chromaは、SPSを参照する2(I)に等しいslice_typeを有するスライス内でDUAL_TREE_CHROMA等しいtreeTypeを有するクロマ四分木リーフのマルチタイプツリー分割により生じるクロマリーフユニットのデフォルトの最大ヒエラルキデプスを指定する。partition_constraints_override_enabled_flagが1に等しいとき、デフォルトの最大ヒエラルキデプスは、SPSを参照するPHに存在するph_max_mtt_hierarchy_depth_chromaによってオーバーライドされ得る。sps_max_mtt_hierarchy_depth_intra_slice_chromaの値は0以上2*(CtbLog2SizeY-MinCbLog2SizeY)以下の範囲内になければならない。存在しない場合に、sps_max_mtt_hierarchy_depth_intra_slice_chromaの値は、0に等しいと推測される。
sps_log2_diff_max_bt_min_qt_intra_slice_chromaは、二分木分割を用いて分割され得るクロマコーディングブロックのルーマサンプルでの最大サイズ(幅又は高さ)の2を底とする対数と、SPSを参照する2(I)に等しいslice_typeを有するスライス内でDUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCTUの四分木分割により生じるクロマリーフブロックのルーマサンプルでの最小サイズ(幅又は高さ)との間のデフォルトの差を指定する。partition_constraints_override_enabled_flagが1に等しいとき、デフォルトの差は、SPSを参照するPHに存在するph_log2_diff_max_bt_min_qt_chromaによってオーバーライドされ得る。sps_log2_diff_max_bt_min_qt_intra_slice_chromaの値は0以上CtbLog2SizeY-MinQtLog2SizeIntraC以下の範囲内になければならない。sps_log2_diff_max_bt_min_qt_intra_slice_chromaが存在しない場合に、sps_log2_diff_max_bt_min_qt_intra_slice_chromaの値は、0に等しいと推測される。
sps_log2_diff_max_tt_min_qt_intra_slice_chromaは、三分木分割を用いて分割され得るクロマコーディングブロックのルーマサンプルでの最大サイズ(幅又は高さ)の2を底とする対数と、SPSを参照する2(I)に等しいslice_typeを有するスライス内でDUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCTUの四分木分割により生じるクロマリーフブロックのルーマサンプルでの最小サイズ(幅又は高さ)との間のデフォルトの差を指定する。partition_constraints_override_enabled_flagが1に等しいとき、デフォルトの差は、SPSを参照するPHに存在するph_log2_diff_max_tt_min_qt_chromaによってオーバーライドされ得る。sps_log2_diff_max_tt_min_qt_intra_slice_chromaの値は0以上CtbLog2SizeY-MinQtLog2SizeIntraC以下の範囲内になければならない。sps_log2_diff_max_tt_min_qt_intra_slice_chromaが存在しない場合に、sps_log2_diff_max_tt_min_qt_intra_slice_chromaの値は、0に等しいと推測される。
1に等しいsps_max_luma_transform_size_64_flagは、ルーマサンプルで表される最大変換サイズが64に等しいことを指定する。0に等しいsps_max_luma_transform_size_64_flagは、ルーマサンプルで表される最大変換サイズが32に等しいことを指定する。
CtbSizeYが64よりも小さいとき、sps_max_luma_transform_size_64_flagの値は0に等しくなければならない。
変数MinTbLog2SizeY、MaxTbLog2SizeY、MinTbSizeY、及びMaxTbSizeYは、次の通りに導出される:
MinTbLog2SizeY=2 (58)
MaxTbLog2SizeY=sps_max_luma_transform_size_64_flag?6:5 (59)
MinTbSizeY=1<<MinTbLog2SizeY (60)
MaxTbSizeY=1<<MaxTbLog2SizeY (61)
0に等しいsps_joint_cbcr_enabled_flagは、クロマ残差のジョイントコーディングが無効にされることを指定する。1に等しいsps_joint_cbcr_enabled_flagは、クロマ残差のジョイントコーディングが有効にされることを指定する。存在しない場合に、sps_joint_cbcr_enabled_flagの値は、0に等しいと推測される。
1に等しいsame_qp_table_for_chromaは、ただ1つのクロマQPテーブルしかシグナリングされず、このテーブルがCb残差及びCr残差に、更に、sps_joint_cbcr_enabled_flagが1に等しいときにはジョイントCb-Cr残差に適用されることを指定する。0に等しいsame_qp_table_for_chromaは、Cb及びCrための2つのクロマQPマッピングテーブルが、また、sps_joint_cbcr_enabled_flagが1に等しいときにはジョイントCb-Crのためのもう1つのクロマQPマッピングテーブルがSPSでシグナリングされることを指定する。same_qp_table_for_chromaが存在しない場合に、same_qp_table_for_chromaの値は、0に等しいと推測される。
qp_table_start_minus26[i]に26をプラスしたものは、i番目のクロマQPマッピングテーブルを記述するために使用される開始ルーマ及びクロマQPを指定する。qp_table_start_minus26[i]の値は、-26-QpBdOffset以上36以下の範囲内になければならない。qp_table_start_minus26[i]がビットストリームに存在しない場合に、qp_table_start_minus26[i]の値は、0に等しいと推測される。
num_points_in_qp_table_minus1[i]に1をプラスしたものは、i番目のクロマQPマッピングテーブルを記述するために使用されるポイントの数を指定する。num_points_in_qp_table_minus1[i]の値は、0以上63+QpBdOffset以下の範囲内になければならない。num_points_in_qp_table_minus1[0]がビットストリームに存在しない場合に、num_points_in_qp_table_minus1[0]の値は、0に等しいと推測される。
delta_qp_in_val_minus1[i][j]は、i番目のQPクロママッピングのj番目のピボットポイントの入力座標を導出するために使用されるデルタ値を指定する。delta_qp_in_val_minus1[0][j]がビットストリームに存在しない場合に、delta_qp_in_val_minus1[0][j]の値は、0に等しいと推測される。
delta_qp_diff_val[i][j]は、i番目のQPクロママッピングのj番目のピボットポイントの出力座標を導出するために使用されるデルタ値を指定する。
i=0,・・・,numQpTables-1として、i番目のクロマQPマッピングテーブルChromaQpTable[i]は、次の通りに導出される:
【数1】
same_qp_table_for_chromaが1に等しいとき、ChromaQpTable[1][k]及びChromaQpTable[2][k]は、kが-QpBdOffset以上63以下の範囲にあるとして、ChromaQpTable[0][k]に等しくセットされる。
ビットストリームコンフォーマンスの要件は、qpInVal[i][j]及びqpOutVal[i][j]の値が、iが0以上numQpTables-1以下の範囲内にあり、jが0以上num_points_in_qp_table_minus1[i]+1以下の範囲内にあるとして、-QpBdOffset以上63以下の範囲内になければならない。
1に等しいsps_sao_enabled_flagは、サンプル適応オフセットプロセスが、デブロッキングフィルタプロセスの後に、再構成されたピクチャに適用されることを指定する。0に等しいsps_sao_enabled_flagは、サンプル適応オフセットプロセスが、デブロッキングフィルタプロセスの後に、再構成されたピクチャに適用されないことを指定する。
0に等しいsps_alf_enabled_flagは、適応ループフィルタが無効にされることを指定する。1に等しいsps_alf_enabled_flagは、適応ループフィルタが有効にされることを指定する。
0に等しいsps_ccalf_enabled_flagは、クロスコンポーネント適応ループフィルタが無効にされることを指定する。1に等しいsps_ccalf_enabled_flagは、クロスコンポーネント適応ループフィルタが有効にされ得ることを指定する。
1に等しいsps_transform_skip_enabled_flagは、transform_skip_flagが変換ニットシンタックスに存在する可能性があることを指定する。0に等しいsps_transform_skip_enabled_flagは、transform_skip_flagが変換ニットシンタックスに存在しないことを指定する。
log2_transform_skip_max_size_minus2は、変換スキップに使用される最大ブロックサイズを指定し、0以上3以下の範囲内になければならない。
変数MaxTsSizeは、1<<(log2_transform_skip_max_size_minus2+2)に等しくセットされる。
1に等しいsps_bdpcm_enabled_flagは、intra_bdpcm_luma_flag及びintra_bdpcm_chroma_flagがイントラコーディングユニットのコーディングユニットシンタックスに存在する可能性があることを指定する。0に等しいsps_bdpcm_enabled_flagは、intra_bdpcm_luma_flag及びintra_bdpcm_chroma_flagがイントラコーディングユニットのコーディングユニットシンタックスに存在しないことを指定する。存在しない場合に、sps_bdpcm_enabled_flagの値は、0に等しいと推測される。
1に等しいsps_ref_wraparound_enabled_flagは、水平ラップアラウンド動き補償がインター予測で適用されることを指定する。0に等しいsps_ref_wraparound_enabled_flagは、水平ラップアラウンド動き補償がインター予測で適用されないことを指定する。(CtbSizeY/MinCbSizeY+1)の値が(pic_width_in_luma_samples/MinCbSizeY-1)よりも大きい場合に、pic_width_in_luma_samplesが、SPSを参照する任意のPPSでのpic_width_in_luma_samplesの値であるときに、sps_ref_wraparound_enabled_flagの値は0に等しくなければならない。[Ed.(YK):ここでのセマンティクスは依然としてPPSシンタックス要素に依存する。]
1に等しいsps_temporal_mvp_enabled_flagは、時間動きベクトル予測子がCLVSで使用され得ることを指定する。0に等しいsps_temporal_mvp_enabled_flagは、時間動きベクトル予測子がCLVSで使用されないことを指定する。
1に等しいsps_sbtmvp_enabled_flagは、サブブロックベースの時間動きベクトル予測子が、CLVSで全てのスライスがIに等しくないピクチャの復号化において使用され得ることを指定する。0に等しいsps_sbtmvp_enabled_flagは、サブブロックベースの時間動きベクトル予測子がCLVSで使用されないことを指定する。sps_sbtmvp_enabled_flagが存在しない場合に、それは0に等しいと推測される。
1に等しいsps_amvr_enabled_flagは、適応動きベクトル差分分解が動きベクトルコーディングで使用されることを指定する。0に等しいamvr_enabled_flagは、適応動きベクトル差分分解が動きベクトルコーディングで使用されないことを指定する。
0に等しいsps_bdof_enabled_flagは、双方向オプティカルフローインター予測が無効にされることを指定する。1に等しいsps_bdof_enabled_flagは、双方向オプティカルフローインター予測が有効にされることを指定する。
1に等しいsps_bdof_pic_present_flagは、ph_disable_bdof_flagがSPSを参照するPHに存在することを指定する。0に等しいsps_bdof_pic_present_flagは、ph_disable_bdof_flagがSPSを参照するPHに存在しないことを指定する。sps_bdof_pic_present_flagが存在しない場合に、sps_bdof_pic_present_flagの値は0に等しいと推測される。
1に等しいsps_smvd_enabled_flagは、対称動きベクトル差分が動きベクトル復号化で使用され得ることを指定する。0に等しいsps_smvd_enabled_flagは、対称動きベクトル差分が動きベクトル復号化で使用されないことを指定する。
1に等しいsps_dmvr_enabled_flagは、デコーダ動きベクトル精緻化ベースのインター双予測が有効にされることを指定する。0に等しいsps_dmvr_enabled_flagは、デコーダ動きベクトル精緻化ベースのインター双予測が無効にされることを指定する。
1に等しいsps_dmvr_pic_present_flagは、ph_disable_dmvr_flagがSPSを参照するPHに存在することを指定する。0に等しいsps_dmvr_pic_present_flagは、ph_disable_dmvr_flagがSPSを参照するPHに存在しないことを指定する。sps_dmvr_pic_present_flagが存在しない場合に、sps_dmvr_pic_present_flagの値は0に等しいと推測される。
1に等しいsps_mmvd_enabled_flagは、動きベクトル差分によるマージモードが有効にされることを指定する。0に等しいsps_mmvd_enabled_flagは、動きベクトル差分によるマージモードが無効にされることを指定する。
1に等しいsps_isp_enabled_flagは、サブパーティションによるイントラ予測が有効にされることを指定する。0に等しいsps_isp_enabled_flagは、サブパーティションによるイントラ予測が無効にされることを指定する。
1に等しいsps_mrl_enabled_flagは、多重参照ラインによるイントラ予測が有効にされることを指定する。0に等しいsps_mrl_enabled_flagは、多重参照ラインによるイントラ予測が無効にされることを指定する。
1に等しいsps_mip_enabled_flagは、マトリクスベースのイントラ予測が有効にされることを指定する。0に等しいsps_mip_enabled_flagは、マトリクスベースのイントラ予測が無効にされることを指定する。
0に等しいsps_cclm_enabled_flagは、ルーマ成分からクロマ成分へのクロスコンポーネント線形モデルイントラ予測が無効にされることを指定する。1に等しいsps_cclm_enabled_flagは、ルーマ成分からクロマ成分へのクロスコンポーネント線形モデルイントラ予測が有効に無効にされることを指定する。sps_cclm_enabled_flagが存在しない場合に、それは0に等しいと推測される。
1に等しいsps_chroma_horizontal_collocated_flagは、対応するルーマサンプル位置に対して水平方向でシフトされないクロマサンプル位置のために設計された様式で予測プロセスが作動することを指定する。0に等しいsps_chroma_horizontal_collocated_flagは、対応するルーマサンプル位置に対してルーマサンプルの単位で0.5だけ右にシフトされるクロマサンプル位置のために設計された様式で予測プロセスが作動することを指定する。sps_chroma_horizontal_collocated_flagが存在しない場合に、それは1に等しいと推測される。
1に等しいsps_chroma_vertical_collocated_flagは、対応するルーマサンプル位置に対して垂直方向でシフトされないクロマサンプル位置のために設計された様式で予測プロセスが作動することを指定する。0に等しいsps_chroma_vertical_collocated_flagは、対応するルーマサンプル位置に対してルーマサンプルの単位で0.5だけ下方にシフトされるクロマサンプル位置のために設計された様式で予測プロセスが作動することを指定する。sps_chroma_vertical_collocated_flagが存在しない場合に、それは1に等しいと推測される。
1に等しいsps_mts_enabled_flagは、sps_explicit_mts_intra_enabled_flagがシーケンスパラメータセットRBSPシンタックスに存在し、sps_explicit_mts_inter_enabled_flagがシーケンスパラメータセットRBSPシンタックスに存在することを指定する。0に等しいsps_mts_enabled_flagは、sps_explicit_mts_intra_enabled_flagがシーケンスパラメータセットRBSPシンタックスに存在せず、sps_explicit_mts_inter_enabled_flagがシーケンスパラメータセットRBSPシンタックスに存在しないことを指定する。
1に等しいsps_explicit_mts_intra_enabled_flagは、mts_idxがイントラコーディングユニットシンタックスに存在する可能性があることを指定する。0に等しいsps_explicit_mts_intra_enabled_flagは、mts_idxがイントラコーディングユニットシンタックスに存在しないことを指定する。存在しない場合に、sps_explicit_mts_intra_enabled_flagの値は、0に等しいと推測される。
1に等しいsps_explicit_mts_inter_enabled_flagは、mts_idxがインターコーディングユニットシンタックスに存在する可能性があることを指定する。0に等しいsps_explicit_mts_inter_enabled_flagは、mts_idxがインターコーディングユニットシンタックスに存在しないことを指定する。存在しない場合に、sps_explicit_mts_inter_enabled_flagの値は、0に等しいと推測される。
six_minus_max_num_merge_candは、6から減じられた、SPSでサポートされているマージ動きベクトル予測(MVP)候補の最大数を指定する。six_minus_max_num_merge_candの値は0以上5以下の範囲内になければならない。
マージMVP候補の最大数MaxNumMergeCandは、次の通りに導出される:
MaxNumMergeCand=6-six_minus_max_num_merge_cand (63)
0に等しいsps_sbt_enabled_flagは、インター予測されたCUのサブブロック変換が無効にされることを指定する。1に等しいsps_sbt_enabled_flagは、インター予測されたCUのサブブロック変換が有効ににされることを指定する。
sps_affine_enabled_flagは、アフィンモデルベースの動き補償がインター予測のために使用可能であるかどうかを指定する。sps_affine_enabled_flagが0に等しい場合に、シンタックスは、アフィンモデルベースの動き補償がCLVSで使用されないように制約されるべきであり、inter_affine_flag及びcu_affine_type_flagは、CLVSのコーディングユニットシンタックスに存在しない。そうではない(sps_affine_enabled_flagが1に等しい)場合に、アフィンモデルベースの動き補償はCLVSで使用可能である。
five_minus_max_num_subblock_merge_candは、5から減じられた、SPSでサポートされているサブブロックベースのマージ動きベクトル予測候補の最大数を指定する。
sps_affine_type_flagは、6パラメータアフィンモデルベースの動き補償がインター予測のために使用可能であるかどうかを指定する。sps_affine_type_flagが0に等しい場合に、シンタックスは、6パラメータアフィンモデルベースの動き補償がCLVSで使用されないように制約されるべきであり、cu_affine_type_flagは、CLVSのコーディングユニットシンタックスに存在しない。そうではない(sps_affine_type_flagが1に等しい)場合に、6パラメータアフィンモデルベースの動き補償はCLVSで使用可能である。存在しない場合に、sps_affine_type_flagの値は、0に等しいと推測される。
1に等しいsps_affine_amvr_enabled_flagは、適応動きベクトル差分分解がアフィンインターモードの動きベクトルコーディングで使用されることを指定する。0に等しいsps_affine_amvr_enabled_flagは、適応動きベクトル差分分解がアフィンインターモードの動きベクトルコーディングで使用されないことを指定する。存在しない場合に、sps_affine_amvr_enabled_flagの値は、0に等しいと推測される。
sps_affine_prof_enabled_flagは、オプティカルフローによる予測精緻化がアフィン動き補償のために使用可能であるかどうかを指定する。sps_affine_prof_enabled_flagが0に等しい場合に、アフィン動き補償はオプティカルフローにより精緻化されるべきではない。そうではない(sps_affine_prof_enabled_flagが1に等しい)場合に、アフィン動き補償はオプティカルフローにより精緻化され得る。存在しない場合に、sps_affine_prof_enabled_flagの値は、0に等しいと推測される。
1に等しいsps_prof_pic_present_flagは、ph_disable_prof_flagがSPSを参照するPHに存在することを指定する。0に等しいsps_prof_pic_present_flagは、ph_disable_prof_flagがSPSを参照するPHに存在しないことを指定する。sps_prof_pic_present_flagが存在しない場合に、sps_prof_pic_present_flagの値は、0に等しいと推測される。
1に等しいsps_palette_enabled_flagは、pred_mode_plt_flagがコーディングユニットシンタックスに存在する可能性があることを指定する。0に等しいsps_palette_enabled_flagは、pred_mode_plt_flagがコーディングユニットシンタックスに存在しないことを指定する。sps_palette_enabled_flagが存在しない場合に、それは0に等しいと推測される。
1に等しいsps_act_enabled_flagは、適応色変換が使用され得、cu_act_enabled_flagがコーディングユニットシンタックスに存在する可能性があることを指定する。0に等しいsps_act_enabled_flagは、適応色変換が使用されず、cu_act_enabled_flagがコーディングユニットシンタックスに存在しないことを指定する。sps_act_enabled_flaが存在しない場合に、それは0に等しいと推測される。
min_qp_prime_ts_minus4は、次の通りに、変換スキップモードのための最小許容量子化パラメータを指定する:
QpPrimeTsMin=4+min_qp_prime_ts_minus4 (64)
min_qp_prime_ts_minus4の値は、0以上48以下の範囲内になければならない。
sps_bcw_enabled_flagは、CU重みによる双予測がインター予測のために使用可能であるかどうかを指定する。sps_bcw_enabled_flagが0に等しい場合に、シンタックスは、CU重みによる双予測がCLVSで使用されないように制約されるべきであり、bcw_idxは、CLVSのコーディングユニットシンタックスに存在しない。そうではない(sps_bcw_enabled_flagが1に等しい)場合に、CU重みによる双予測はCLVSで使用可能である。
1に等しいsps_ibc_enabled_flagは、IBC予測モードがCLVSでピクチャの復号化において使用され得ることを指定する。0に等しいsps_ibc_enabled_flagは、IBC予測モードがCLVSで使用されないことを指定する。sps_ibc_enabled_flagが存在しない場合に、それは0に等しいと推測される。
six_minus_max_num_ibc_merge_candは、6から減じられた、SPSでサポートされているIBCマージブロックベクトル予測(BVP)候補の最大数を指定する。six_minus_max_num_ibc_merge_candの値は、0以上5以下の範囲内になければならない。
IBCマージBVP候補の最大数MaxNumIbcMergeCandは、次の通りに導出される:
if(sps_ibc_enabled_flag)
MaxNumIbcMergeCand=6-six_minus_max_num_ibc_merge_cand (65)
else
MaxNumIbcMergeCand=0
sps_ciip_enabled_flagは、ciip_flagがインターコーディングユニットのコーディングユニットシンタックスに存在する可能性があることを指定する。0に等しいsps_ciip_enabled_flagは、ciip_flagがインターコーディングユニットのコーディングユニットシンタックスに存在しないことを指定する。
1に等しいsps_fpel_mmvd_enabled_flagは、動きベクトル差分によるマージモードが整数サンプル精度を使用していることを指定する。0に等しいsps_fpel_mmvd_enabled_flagは、動きベクトル差分によるマージモードが分数サンプル精度を使用することができることを指定する。
sps_gpm_enabled_flagは、幾何パーティションベースの動き補償がインター予測のために使用可能であるかどうかを指定する。0に等しいsps_gpm_enabled_flagは、シンタックスが、幾何パーティションベースの動き補償がCLVSで使用されないように制約されるべきであることを指定し、merge_gpm_partition_idx、merge_gpm_idx0、及びmerge_gpm_idx1は、CLVSのコーディングユニットシンタックスに存在しない。1に等しいsps_gpm_enabled_flagは、幾何パーティションベースの動き補償がCLVSで使用可能であることを指定する。存在しない場合に、sps_gpm_enabled_flagの値は0に等しいと推測される。
max_num_merge_cand_minus_max_num_gpm_candは、MaxNumMergeCandから減じられた、SPSでサポートされている幾何パーティショニングマージモード候補の最大数を指定する。
幾何パーティショニングマージモード候補の最大数MaxNumGpmMergeCandは、次の通りに導出される:
if(sps_gpm_enabled_flag&&MaxNumMergeCand>=3)
MaxNumGpmMergeCand=MaxNumMergeCand-
max_num_merge_cand_minus_max_num_gpm_cand (66)
else if(sps_gpm_enabled_flag&&MaxNumMergeCand==2)
MaxNumMergeCand=2
else
MaxNumGpmMergeCand=0
MaxNumGpmMergeCandの値は、2以上MaxNumMergeCand以下の範囲内になければならない。
1に等しいsps_lmcs_enabled_flagは、クロマスケーリングを伴うルーママッピングがCLVSで使用されることを指定する。0に等しいsps_lmcs_enabled_flagは、クロマスケーリングを伴うルーママッピングがCLVSで使用されないことを指定する。
1に等しいsps_lfnst_enabled_flagは、lfnst_idxがイントラコーディングユニットシンタックスに存在する可能性があることを指定する。0に等しいsps_lfnst_enabled_flagは、lfnst_idxがイントラコーディングユニットシンタックスに存在しないことを指定する。
1に等しいsps_ladf_enabled_flagは、sps_num_ladf_intervals_minus2、sps_ladf_lowest_interval_qp_offset、sps_ladf_qp_offset[i]、及びsps_ladf_delta_threshold_minus1[i]がSPSに存在することを指定する。
sps_num_ladf_intervals_minus2に1をプラスしたものは、SPSに存在するsps_ladf_delta_threshold_minus1[i]シンタックス要素及びsps_ladf_qp_offset[i]シンタックス要素の数を指定する。sps_num_ladf_intervals_minus2の値は0以上3以下の範囲内になければならない。
sps_ladf_lowest_interval_qp_offsetは、第8.8.3.6.1で指定されているように変数qPを導出するために使用されるオフセットを指定する。sps_ladf_lowest_interval_qp_offsetの値は、-63以上63以下の範囲内になければならない。
sps_ladf_qp_offset[i]は、第8.8.3.6.1で指定されているように変数qPを導出するために使用されるオフセットアレイを指定する。sps_ladf_qp_offset[i]の値は、-63以上63以下の範囲内になければならない。
sps_ladf_delta_threshold_minus1[i]は、i番目のルーマ強度レベルインターバルの下側境界を指定するSpsLadfIntervalLowerBound[i]の値を計算するために使用される。sps_ladf_delta_threshold_minus1[i]の値は、0以上2
BitDepth-3以下の範囲内になければならない。
SpsLadfIntervalLowerBound[0]の値は、0に等しくセットされる。
0以上sps_num_ladf_intervals_minus2以下の範囲内のiの各値について、変数SpsLadfIntervalLowerBound[i+1]は、次の通りに導出される:
SpsLadfIntervalLowerBound[i+1]=SpsLadfIntervalLowerBound[i] (67)
+sps_ladf_delta_threshold_minus1[i]+1
log2_parallel_merge_level_minus2に2をプラスしたものは、第8.5.2.3節で指定されている空間マージ候補のための導出プロセスで、第8.5.5.2節で指定されているサブブロックマージモードでの動きベクトル及び参照インデックスの導出プロセスで、また、第8.5.2.1節での履歴ベースの動きベクトル予測子リストの更新プロセスの呼び出しを制御するために使用される変数Log2ParMrgLevelの値を指定する。log2_parallel_merge_level_minus2の値は、0以上CtbLog2SizeY-2以下の範囲内になければならない。変数Log2ParMrgLevelは、次の通りに導出される:
Log2ParMrgLevel=log2_parallel_merge_level_minus2+2 (68)
1に等しいsps_scaling_list_enabled_flagは、スケーリングリストが変換係数のスケーリングプロセスのために使用されることを指定する。0に等しいsps_scaling_list_enabled_flagは、スケーリングリストが変換係数のスケーリングプロセスのために使用されないことを指定する。
0に等しいsps_dep_quant_enabled_flagは、依存的量子化がSPSを参照するピクチャに対して無効にされることを指定する。1に等しいsps_dep_quant_enabled_flagは、依存的量子化がSPSを参照するピクチャに対して有効にされ得ることを指定する。
0に等しいsps_sign_data_hiding_enabled_flagは、符号ビット隠しがSPSを参照するピクチャに対して無効にされることを指定する。1に等しいsps_sign_data_hiding_enabled_flagは、符号ビット隠しがSPSを参照するピクチャに対して有効にされ得ることを指定する。sps_sign_data_hiding_enabled_flagが存在しない場合に、それは0に等しいと推測される。
1に等しいsps_virtual_boundaries_enabled_flagは、仮想境界にわたるインループフィルタリングを無効にすることがCLVS内のコーディングされたピクチャにおいて適用され得ることを指定する。0に等しいsps_virtual_boundaries_enabled_flagは、仮想境界にわたるインループフィルタリングを無効にすることがCLVS内のコーディングされたピクチャにおいて適用ないことを指定する。インループフィルタリング動作はデブロッキングフィルタ動作、サンプル適応オフセットフィルタ動作、及び適応ループフィルタ動作を含む。
1に等しいsps_virtual_boundaries_present_flagは、仮想境界の情報がSPSでシグナリングされることを指定する。0に等しいsps_virtual_boundaries_present_flagは、仮想境界の情報がSPSでシグナリングされないことを指定する。SPSでシグナリングされる仮想境界が1つ又は1つよりも多い場合に、インループフィルタリング動作は、SPSを参照するピクチャにおける仮想境界にわたって無効にされるインループフィルタリング動作はデブロッキングフィルタ動作、サンプル適応オフセットフィルタ動作、及び適応ループフィルタ動作を含む。
ビットコンフォーマンスの要件は、res_change_in_clvs_allowed_flagの値が1に等しい場合に、sps_virtual_boundaries_present_flagの値が0に等しくなければならないことである。
sps_num_ver_virtual_boundariesは、SPSに存在するsps_virtual_boundaries_pos_x[i]シンタックス要素の数を指定する。sps_num_ver_virtual_boundariesが存在しない場合に、それは0に等しいと推測される。
sps_virtual_boundaries_pos_x[i]は、8で除された、ルーマサンプルの単位でのi番目の垂直仮想境界の位置を指定する。sps_virtual_boundaries_pos_x[i]の値は1以上Ceil(pic_width_in_luma_samples÷8)-1以下の範囲内になければならない。[Ed.(VD):pic_width_in_luma_samplesはPPSにあり、SPSにはない。]
sps_num_hor_virtual_boundariesは、SPSに存在するsps_virtual_boundaries_pos_y[i]シンタックス要素の数を指定するsps_num_hor_virtual_boundariesが存在しない場合に、それは0に等しいと推測される。
sps_virtual_boundaries_enabled_flagが1に等しく、sps_virtual_boundaries_present_flagが1に等しい場合に、sps_num_ver_virtual_boundariesとsps_num_hor_virtual_boundariesとの和は0よりも大きくなければならない。
sps_virtual_boundaries_pos_y[i]は、8で除された、ルーマサンプルの単位でのi番目の水平仮想境界の位置を指定する。sps_virtual_boundaries_pos_y[i]の値は0以上Ceil(pic_height_in_luma_samples÷8)-1以下の範囲内になければならない。[Ed.(VD):pic_height_in_luma_samplesはPPSにあり、SPSにはない。]
1に等しいsps_general_hrd_params_present_flagは、シンタックス構造general_hrd_parameters( )がSPS RBSPシンタックス構造に存在することを指定する。0に等しいsps_general_hrd_params_present_flagは、シンタックス構造general_hrd_parameters( )がSPS RBSPシンタックス構造に存在しないことを指定する。
1に等しいsps_sublayer_cpb_params_present_flagは、SPS RBSP内のシンタックス構造old_hrd_parameters( )が、0以上sps_max_sublayers_minus1以下の範囲をとるTemporalIdを有するサブレイヤ表現のHRDパラメータを含むことを指定する。0に等しいsps_sublayer_cpb_params_present_flagは、SPS RBSP内のシンタックス構造ols_hrd_parameters( )が、sps_max_sublayers_minus1にのみ等しいTemporalIdを有するサブレイヤ表現のHRDパラメータを含むことを指定する。sps_max_sublayers_minus1が0に等しい場合に、sps_sublayer_cpb_params_present_flagの値は、0に等しいと推測される。
sps_sublayer_cpb_params_present_flagが0に等しい場合に、0以上sps_max_sublayers_minus1-1以下の範囲をとるTemporalIdを有するサブレイヤ表現のHRDパラメータは、sps_max_sublayers_minus1に等しいTemporalIdを有するサブレイヤ表現のそれと同じであると推測される。これらは、ols_hrd_parametersシンタックス構造内の条件「if(general_vcl_hrd_params_present_flag)」の直下でfixed_pic_rate_general_flag[i]シンタックス要素から始まってsublayer_hrd_parameters(i)シンタックス構造までのHRDを含む。
1に等しいfield_seq_flagは、フィールドを表すピクチャをCLVSが運ぶことを示す。0に等しいfield_seq_flagは、フレームを表すピクチャをCLVSが運ぶことを示す。general_frame_only_constraint_flagが1に等しい場合に、field_seq_flagの値は0に等しくなければならない。
field_seq_flagが1に等しい場合に、フレーム-フィールド情報SEIメッセージが、CLVS内のコーディングされたピクチャごとに存在すべきである。
注記5-指定された復号化プロセスは、フィールド又はフレームを異なるように表すピクチャを扱わない。従って、フィールドを表すピクチャのシーケンスは、個々フィールドのピクチャ寸法でコーディングされる。例えば、1080iフィールドを表すピクチャは、1920×540のクロッピングされた出力寸法を一般的に有し、一方、シーケンスピクチャレートは、ソースフレームレート(通常、25から30Hzの間)ではなく、ソースフィールドのレート(通常、50から60Hzの間)を一般的に表す。
1に等しいvui_parameters_present_flagは、シンタックス構造vui_parameters( )がSPS RBSPシンタックス構造に存在することを指定する。0に等しいvui_parameters_present_flagは、シンタックス構造vui_parameters( )がSPS RBSPシンタックス構造に存在しないことを指定する。
0に等しいsps_extension_flagは、sps_extension_data_flagシンタックス要素がSPS RBSPシンタックス構造に存在しないことを指定する。1に等しいsps_extension_flagは、SPS RBSPシンタックス構造にsps_extension_data_flagシンタックス要素が存在することを指定する。
sps_extension_data_flagは如何なる値も有し得る。その存在及び値は、この仕様のこのバージョンで定められているプロファイルに対するデコーダ互換性に影響を及ぼさない。この仕様のこのバージョンに従うデコーダは、全てのsps_extension_data_flagシンタックス要素を無視すべきである。
【0037】
[3.3.PPSシンタックス及びセマンティクス]
最新のVVC草案テキストでは、PPSのシンタックス及びセマンティクスは次の通りである:
【表3】
PPS RBSPは、それが参照される前に復号化プロセスに利用可能であるべきであり、PPS NALユニットのTemporalId以下のTemporalIdを有する少なくとも1つのAUに含められるか、又は外部手段を通じて提供されるものであるとする。
PU内のpps_pic_parameter_set_idの特定の値を有する全てのPPS NALユニットは、同じコンテンツを有するべきである。
pps_pic_parameter_set_idは、他のシンタックス要素によって参照されるPPSの識別子を与える。pps_pic_parameter_set_idの値は0以上63以下の範囲内になければならない。
PPS NALユニットは、nuh_layer_idの値にかかわらず、pps_pic_parameter_set_idの同じ値空間を共有する。
ppsLayerIdを特定のPPS NALユニットのnuh_layer_idの値であるとし、vclLayerIdを特定のVCL NALユニットのnuh_layer_idの値であるとする。特定のVCL NALユニットは、ppsLayerIdがvclLayerId以下である場合を除いて、特定のPPS NALユニットを参照してはならず、ppsLayerIdに等しいnuh_layer_idを有するレイヤは、vclLayerIdに等しいnuh_layer_idを有するレイヤを含む少なくとも1つのOLSに含まれる。
pps_seq_parameter_set_idは、SPSのsps_seq_parameter_set_idの値を指定する。pps_seq_parameter_set_idの値は0以上15以下の範囲内になければならない。pps_seq_parameter_set_idの値は、CLVS内のコーディングされたピクチャによって参照される全てのPPSで同じでなければならない。
1に等しいmixed_nalu_types_in_pic_flagは、PPSを参照する各ピクチャが1よりも多いVCL NALユニットを有し、VCL NALユニットが同じ値のnal_unit_typeを有さず、ピクチャがIRAPピクチャではないことを指定する。0に等しいmixed_nalu_types_in_pic_flagは、PPSを参照する各ピクチャが1つ以上のVCL NALユニットを有し、PPSを参照する各ピクチャのVCL NALユニットが同じ値のnal_unit_typeを有することを指定する。
no_mixed_nalu_types_in_pic_constraint_flagが1に等しいとき、mixed_nalu_types_in_pic_flagの値は0に等しくなければならない。
IDR_W_RADL以上CRA_NUT以下の範囲内のnal_unit_typeの値nalUnitTypeAを有する各スライスについて、他の値のnal_unit_typeを有する1つ以上のスライスも含むピクチャpicA(つまり、ピクチャpicAのmixed_nalu_types_in_pic_flagの値は1に等しい)において、次が適用される:
- スライスは、対応するsubpic_treated_as_pic_flag[i]の値が1に等しいサブピクチャsubpicAに属するべきである。
- スライスは、nal_unit_typeがnalUnitTypeAに等しくないVCL NALユニットを含むpicAのサブピクチャに属してはならない。
- nalUnitTypeAがCRAに等しい場合に、復号化順及び出力順においてCLVS内の現在ピクチャに続く全ての後続PUについて、それらのPU内のsubpicAのスライスのRefPicList[0]もRefPicList[1]も、復号化順でpicAに先行する如何なるピクチャもアクティブエントリに含めるべきではない。
- そうではない(つまり、nalUnitTypeAがIDR_W_RADL又はIDR_N_LPに等しい)場合に、復号化順で現在ピクチャに続くCLVS内の全てのPUSについて、それらのPU内のsubpicAのスライスのRefPicList[0]もRefPicList[1]も、復号化順でpicAに先行する如何なるピクチャもアクティブエントリに含めるべきではない。
注記1-1に等しいmixed_nalu_types_in_pic_flagは、PPSを参照するピクチャが異なるNALユニットタイプを有するスライス、例えば、エンコーダが一致するビットストリーム構造を、更には、元のビットストリームのパラメータのアライメントを確かにする必要があるサブピクチャビットストリームマージ動作から生じるコーディングされたピクチャ、を含むことを示す。そのようなアライメントの一例は次の通りである:sps_idr_rpl_flagの値が0に等しく、mixed_nalu_types_in_pic_flagが1に等しいとき、PPSを参照するピクチャは、nal_unit_typeがIDR_W_RADL又はIDR_N_LPに等しいスライスを有することができない。
pic_width_in_luma_samplesは、ルーマサンプルの単位でPPSを参照する各復号化されたピクチャの幅を指定する。pic_width_in_luma_sampleは0に等しくてはならず、Max(8,MinCbSizeY)の整数倍であるべきであり、pic_width_max_in_luma_samples以下でなければならない。
res_change_in_clvs_allowed_flagが0に等しい場合に、pic_width_in_luma_samplesの値はpic_width_max_in_luma_samplesに等しくなければならない。
pic_height_in_luma_samplesは、ルーマサンプルの単位でPPSを参照する各復号化されたピクチャの高さを指定する。pic_height_in_luma_samplesは0に等しくてはならず、Max(8,MinCbSizeY)の整数倍であるべきであり、pic_height_max_in_luma_samples以下でなければならない。
res_change_in_clvs_allowed_flagが0に等しい場合に、pic_height_in_luma_samplesの値はpic_height_max_in_luma_samplesに等しくなければならない。
変数PicWidthInCtbsY、PicHeightInCtbsY、PicSizeInCtbsY、PicWidthInMinCbsY、PicHeightInMinCbsY、PicSizeInMinCbsY、PicSizeInSamplesY、PicWidthInSamplesC、及びPicHeightInSamplesCは、次の通りに導出される:
PicWidthInCtbsY=Ceil(pic_width_in_luma_samples÷CtbSizeY) (69)
PicHeightInCtbsY=Ceil(pic_height_in_luma_samples÷CtbSizeY) (70)
PicSizeInCtbsY=PicWidthInCtbsY*PicHeightInCtbsY (71)
PicWidthInMinCbsY=pic_width_in_luma_samples/MinCbSizeY (72)
PicHeightInMinCbsY=pic_height_in_luma_samples/MinCbSizeY (73)
PicSizeInMinCbsY=PicWidthInMinCbsY*PicHeightInMinCbsY (74)
PicSizeInSamplesY
=pic_width_in_luma_samples*pic_height_in_luma_samples (75)
PicWidthInSamplesC=pic_width_in_luma_samples/SubWidthC (76)
PicHeightInSamplesC=pic_height_in_luma_samples/SubHeightC (77)
1に等しいpps_conformance_window_flagは、コンフォーマンスクロッピングウィンドウオフセットパラメータがPPSで次に続くことを指定する。0に等しいpps_conformance_window_flagは、コンフォーマンスクロッピングウィンドウオフセットパラメータがPPSに存在しないことを指定する。
pps_conf_win_left_offset、pps_conf_win_right_offset、pps_conf_win_top_offset、及びpps_conf_win_bottom_offsetは、出力のためにピクチャ座標で指定された長方形領域に関して、復号化プロセスから出力されるCLVS内のピクチャのサンプルを指定する。pps_conformance_window_flagが0に等しい場合に、pps_conf_win_left_offse、pps_conf_win_right_offset、pps_conf_win_top_offset、及びpps_conf_win_bottom_offsetの値は、0に等しいと推測される。
コンフォーマンスクロッピングウィンドウは、SubWidthC*pps_conf_win_left_offset以上pic_width_in_luma_samples-(SubWidthC*pps_conf_win_right_offset+1)以下の水平ピクチャ座標及びSubHeightC*pps_conf_win_top_offset以上pic_height_in_luma_samples-(SubHeightC*pps_conf_win_bottom_offset+1)以下の垂直ピクチャ座標とを有するルーマサンプルを含む。
SubWidthC*(pps_conf_win_left_offset+pps_conf_win_right_offset)の値は、pic_width_in_luma_samples未満でなければならず、SubHeightC*(pps_conf_win_top_offset+pps_conf_win_bottom_offset)の値は、pic_height_in_luma_samples未満でなければならない。
ChromaArrayTypeが0に等しくないとき、2つのクロマアレイの対応する指定されたサンプルは、ピクチャ座標(x/SubWidthC,y/SubHeightC)を有するサンプルであり、このとき、(x,y)は、指定されたルーマサンプルのピクチャ座標である。
注記2-コンフォーマンスクロッピングウィンドウオフセットパラメータは出力でのみ適用される。全ての内部復号化プロセスは、クロッピングされていないピクチャサイズに適用される。
ppsA及びppsBを同じSPSを参照する任意の2つのPPSであるとする。ビットストリームコンフォーマンスの要件は、ppsA及びppsBが夫々同じ値のpic_width_in_luma_samples及びpic_height_in_luma_samplesを有する場合に、ppsA及びppsBは夫々同じ値のpps_conf_win_left_offset、pps_conf_win_right_offset、pps_conf_win_top_offset、及びpps_conf_win_bottom_offsetを有するべきであることである。
pic_width_in_luma_samplesがpic_width_max_in_luma_samplesに等しく、pic_height_in_luma_samplesがpic_height_max_in_luma_samplesに等しい場合に、ビットストリームコンフォーマンスの要件は、pps_conf_win_left_offset、pps_conf_win_right_offset、pps_conf_win_top_offset、及びpps_conf_win_bottom_offsetがsps_conf_win_left_offset、sps_conf_win_right_offse、sps_conf_win_top_offset、及びsps_conf_win_bottom_offsetに夫々等しいことである。
1に等しいscaling_window_explicit_signalling_flagは、スケーリングウィンドウオフセットパラメータがPPSに存在することを指定する。0に等しいscaling_window_explicit_signalling_flagは、スケーリングウィンドウオフセットパラメータがPPSに存在しないことを指定する。res_change_in_clvs_allowed_flagが0に等しいとき、scaling_window_explicit_signalling_flagの値は0に等しくなければならない。
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に夫々等しいと推測される。
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未満でなければならない。
変数PicOutputWidthL及びPicOutputHeightLは、次の通りに導出される:
PicOutputWidthL=pic_width_in_luma_samples-
SubWidthC*(scaling_win_right_offset+scaling_win_left_offset) (78)
PicOutputHeightL=pic_height_in_luma_samples-
SubWidthC*(scaling_win_bottom_offset+scaling_win_top_offset) (79)
refPicOutputWidthL及びrefPicOutputHeightLを夫々、このPPSを参照する現在ピクチャの参照ピクチャのPicOutputWidthL及びPicOutputHeightLであるとする。ビットストリームコンフォーマンスの要件は、次の条件の全てが満足されることである:
- PicOutputWidthL*2は、refPicWidthInLumaSamplesよりも大きいか又は等しくなければならない。
- PicOutputHeightL*2は、refPicHeightInLumaSamplesよりも大きいか又は等しくなければならない。
- PicOutputWidthLは、efPicWidthInLumaSamples*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))よりも大きいか又は等しくなければならない。
1に等しいoutput_flag_present_flagは、pic_output_flagシンタックス要素がPPSを参照するスライスヘッダに存在することを示す。0に等しいoutput_flag_present_flagは、pic_output_flagシンタックス要素がPPSを参照するスライスヘッダに存在しないことを示す。
1に等しいsubpic_id_mapping_in_pps_flagは、サブピクチャIDマッピングがPPSでシグナリングされることを指定する。0に等しいsubpic_id_mapping_in_pps_flagは、サブピクチャIDマッピングがPPSでシグナリングされないことを指定する。subpic_id_mapping_explicitly_signalled_flagが0であるか又はsubpic_id_mapping_in_sps_flagが1に等しい場合に、subpic_id_mapping_in_pps_flagの値は0に等しくなければならない。そうではない(subpic_id_mapping_explicitly_signalled_flagが1に等しくかつsubpic_id_mapping_in_sps_flagが0に等しい)場合に、subpic_id_mapping_in_pps_flagの値は1に等しくなければならない。
pps_num_subpics_minus1は、sps_num_subpics_minus1に等しくなければならない。
pps_subpic_id_len_minus1は、sps_subpic_id_len_minus1に等しくなければならない。
pps_subpic_id[i]は、i番目のサブピクチャのサブピクチャIDである。pps_subpic_id[i]シンタックス要素の長さは、pps_subpic_id_len_minus1+1ビットである。
変数SubpicIdVal[i]は、0以上sps_num_subpics_minus1以下の範囲内のiの各値について、次の通りに導出される。
【数2】
ビットストリームコンフォーマンスの要件は、次の制約の両方が適用されることである:
- 0以上sps_num_subpics_minus1以下の範囲内のi及びjの任意の2つの異なる値について、SubpicIdVal[i]はSubpicIdVal[j]に等しくてならない。
- 現在ピクチャがCLVSの最初のピクチャではない場合に、0以上sps_num_subpics_minus1以下の範囲内のiの各値について、SubpicIdVal[i]が同じレイヤ内の復号化順で前のピクチャのSubpicIdVal[i]の値に等しくないならば、サブピクチャインデックスiを有する現在ピクチャ内のサブピクチャの全てのコーディングされたスライスNALユニットのnal_unit_typeは、IDR_W_RADL以上CRA_NUT以下の範囲内の特定の値に等しくなければならない。
1に等しいno_pic_partition_flagは、ピクチャパーティショニングがPPSを参照する各ピクチャに適用されないことを指定する。0に等しいno_pic_partition_flagは、PPSを参照する各ピクチャが1よりも多いタイル又はスライスにパーティション化され得ることを指定する。
ビットストリームコンフォーマンスの要件は、no_pic_partition_flagの値がCLVS内のコーディングされたピクチャによって参照される全てのPPSについて同じでなければならないことである。
ビットストリームコンフォーマンスの要件は、sps_num_subpics_minus1+1の値が1よりも大きいときに、no_pic_partition_flagの値が1に等しくてならないことである。
pps_log2_ctu_size_minus5に5をプラスしたものは、各CTUのルーマコーディングツリーブロックサイズを指定する。pps_log2_ctu_size_minus5はsps_log2_ctu_size_minus5に等しくなければならない。
num_exp_tile_columns_minus1に1をプラスしたものは、明示的に供給されたタイル列幅の数を指定する。num_exp_tile_columns_minus1の値は0以上PicWidthInCtbsY-1以下の範囲内になければならない。no_pic_partition_flagが1に等しいとき、num_exp_tile_columns_minus1の値は、0に等しいと推測される。
num_exp_tile_rows_minus1に1をプラスしたものは、明示的に供給されたタイル行高さの数を指定する。num_exp_tile_rows_minus1の値は0以上PicHeightInCtbsY-1以下の範囲内になければならない。no_pic_partition_flagが1に等しいとき、num_tile_rows_minus1の値は、0に等しいと推測される。
tile_column_width_minus1[i]に1をプラスしたものは、0以上num_exp_tile_columns_minus1-1以下の範囲内のiについて、CTBの単位でi番目のタイル列の幅を指定する。tile_column_width_minus1[num_exp_tile_columns_minus1]は、第6.5.1節で指定されるように、num_exp_tile_columns_minus1以上のインデックスを有するタイル列の幅を導出するために使用される。tile_column_width_minus1[i]の値は、0以上PicWidthInCtbsY-1以下の範囲内になければならない。存在しない場合に、tile_column_width_minus1[0]の値は、PicWidthInCtbsY-1に等しいと推測される。
tile_row_height_minus1[i]に1をプラスしたものは、0以上num_exp_tile_rows_minus1-1以下の範囲内のiについて、CTBの単位でi番目のタイル行の高さを指定する。tile_row_height_minus1[num_exp_tile_rows_minus1]は、第6.5.1節で指定されるように、num_exp_tile_rows_minus1以上のインデックスを有するタイル行の高さを導出するために使用される。tile_row_height_minus1[i]の値は、0以上PicHeightInCtbsY-1以下の範囲内になければならない。存在しない場合に、tile_row_height_minus1[0]の値は、PicHeightInCtbsY-1に等しいと推測される。
0に等しいrect_slice_flagは、各スライス内のタイルがラスタスキャン順序にあり、スライス情報がPPSでシグナリングされないことを指定する。1に等しいrect_slice_flagは、各スライス内のタイルがピクチャの長方形領域をカバーし、スライス情報がPPSでシグナリングされることを指定する。存在しない場合に、rect_slice_flagは、1に等しいと推測される。subpic_info_present_flagが1に等しいとき、rect_slice_flagの値は1に等しくなければならない。
1に等しいsingle_slice_per_subpic_flagは、各サブピクチャがただ1つの長方形スライスからのみ構成されることを指定する。0に等しいsingle_slice_per_subpic_flagは、各サブピクチャが1つ以上の長方形スライスから構成される可能性があることを指定する。single_slice_per_subpic_flagが1に等しいとき、num_slices_in_pic_minus1は、sps_num_subpics_minus1に等しいと推測される。存在しない場合に、single_slice_per_subpic_flagの値は、0に等しいと推測される。
num_slices_in_pic_minus1に1をプラスしたものは、PPSを参照する各ピクチャ内の長方形スライスの数を指定する。num_slices_in_pic_minus1の値は、0以上MaxSlicesPerPicture-1以下の範囲内になければならず、MaxSlicesPerPictureは付録Aで指定されている。no_pic_partition_flagが1に等しいとき、num_slices_in_pic_minus1の値は、0に等しいと推測される。
0に等しいtile_idx_delta_present_flagは、tile_idx_deltaの値がPPSに存在せず、PPSを参照するピクチャ内の全ての長方形スライスが第6.5.1節で定義されているプロセスに従ってラスタ順に指定されることを指定する。1に等しいtile_idx_delta_present_flagは、tile_idx_deltaの値がPPSに存在し、PPSを参照するピクチャ内の全ての長方形スライスがtile_idx_deltaの値によって示される順序で指定されることを指定する。存在しない場合に、tile_idx_delta_present_flagの値は、0に等しいと推測される。
slice_width_in_tiles_minus1[i]に1をプラスしたものは、タイル列の単位でi番目の長方形スライスの幅を指定する。slice_width_in_tiles_minus1[i]の値は、0以上NumTileColumns-1以下の範囲内になければならない。
slice_width_in_tiles_minus1[i]が存在しない場合に、次が適用される:
- NumTileColumnsが1に等しい場合に、slice_width_in_tiles_minus1[i]の値は、0に等しいと推測される。
- そうでない場合に、slice_width_in_tiles_minus1[i]の値は、第6.5.1節で指定されるように推測される。
slice_height_in_tiles_minus1[i]に1をプラスしたものは、タイル行の単位でi番目の長方形スライスの高さを指定する。slice_height_in_tiles_minus1[i]の値は、0以上NumTileRows-1以下の範囲内になければならない。
slice_height_in_tiles_minus1[i]が存在しない場合に、次が適用される:
- NumTileRowsが1に等しいか、又はtile_idx_delta_present_flagが0に等しく、tileIdx%NumTileColumnsが0よりも大きい場合に、slice_height_in_tiles_minus1[i]の値は、0に等しいと推測される。
- そうではない(NumTileRowsが1に等しくなく、かつ、tile_idx_delta_present_flagが1に等しいか、又はtileIdx%NumTileColumnsが0に等しい)場合に、tile_idx_delta_present_flagが1に等しいか、又はtileIdx%NumTileColumnsが0に等しいとき、slice_height_in_tiles_minus1[i]の値は、slice_height_in_tiles_minus1[i-1]に等しいと推測される。
num_exp_slices_in_tile[i]は、1よりも多い長方形スライスを含む現在タイル内の明示的に供給されたスライス高さの数を指定する。num_exp_slices_in_tile[i]の値は、0以上RowHeight[tileY]-1以下の範囲内になければならず、tileYは、i番目のスライスを含むタイル行インデックスである。存在しない場合に、num_exp_slices_in_tile[i]の値は、0に等しいと推測される。num_exp_slices_in_tile[i]が0に等しいとき、変数NumSlicesInTile[i]は、1に等しく導出される。
exp_slice_height_in_ctus_minus1[j]に1をプラスしたものは、CTU行の単位で現在タイル内のj番目の長方形スライスの高さを指定する。exp_slice_height_in_ctus_minus1[j]の値は0以上RowHeight[tileY]-1以下の範囲内になければならず、tileYは、現在タイルのタイル行インデックスである。
num_exp_slices_in_tile[i]が0よりも大きいとき、変数NumSlicesInTile[i]及びSliceHeightInCtusMinus1[i+k]は、0からNumSlicesInTile[i]-1の範囲内のkについて、次の通りに導出される:
【数3】
tile_idx_delta[i]は、i番目の長方形スライス内の最初のタイルのタイルインデックスと、(i+1)番目の長方形スライス内の最初のタイルのタイルインデックスとの間の差を指定する。tile_idx_delta[i]の値は、-NumTilesInPic+1以上NumTilesInPic-1以下の範囲内になければならない。存在しない場合に、tile_idx_delta[i]の値は、0に等しいと推測される。存在する場合に、tile_idx_delta[i]の値は0に等しくてはならない。
1に等しいloop_filter_across_tiles_enabled_flagは、インループフィルタリング動作がPPSを参照するピクチャ内のタイル境界にわたって実行され得ることを指定する。0に等しいloop_filter_across_tiles_enabled_flagは、インループフィルタリング動作がPPSを参照するピクチャ内のタイル境界にわたって実行されないことを指定する。インループフィルタリング動作は、デブロッキングフィルタ動作、サンプル適応オフセットフィルタ動作、及び適応ループフィルタ動作を含む。存在しない場合に、loop_filter_across_tiles_enabled_flagの値は、1に等しいと推測される。
1に等しいloop_filter_across_slices_enabled_flagは、インループフィルタリング動作がPPSを参照するピクチャ内のスライス境界にわたって実行され得ることを指定する。0に等しいloop_filter_across_slice_enabled_flagは、インループフィルタリング動作がPPSを参照するピクチャ内のスライス境界にわたって実行されないことを指定する。インループフィルタリング動作は、デブロッキングフィルタ動作、サンプル適応オフセットフィルタ動作、及び適応ループフィルタ動作を含む。存在しない場合に、loop_filter_across_slices_enabled_flagの値は、0に等しいと推測される。
1に等しいcabac_init_present_flagは、cabac_init_flagがPPSを参照するスライスヘッダに存在することを指定する。0に等しいcabac_init_present_flagは、cabac_init_flagがPPSを参照するスライスヘッダに存在しないことを指定する。
num_ref_idx_default_active_minus1[i]に1をプラスしたものは、iが0に等しいときに、0に等しいnum_ref_idx_active_override_flagを有するP又はBスライスについての変数NumRefIdxActive[0]の推測値を指定する。num_ref_idx_default_active_minus1[i]の値は0以上14以下の範囲内になければならない。
0に等しいrpl1_idx_present_flagは、ref_pic_list_sps_flag[1]及びref_pic_list_idx[1]がPPSを参照するピクチャのスライスヘッダ又はPHシンタックス構造に存在しないことを指定する。1に等しいrpl1_idx_present_flagは、ref_pic_list_sps_flag[1]及びref_pic_list_idx[1]がPPSを参照するピクチャのスライスヘッダ又はPHシンタックス構造に存在する可能性があることを指定する。
init_qp_minus26に26をプラスしたものは、PPSを参照する各スライスについてSliceQp
Yの初期値を指定する。SliceQp
Yの初期値は、ph_qp_deltaの非ゼロ値が復号されるときにはピクチャレベルで、又はslice_qp_deltaの非ゼロ値が復号されるときにはスライスレベルで変更される。init_qp_minus26の値は、-(26+QpBdOffset)以上+37以下の範囲内になければならない。
1に等しいcu_qp_delta_enabled_flagは、ph_cu_qp_delta_subdiv_intra_slice及びph_cu_qp_delta_subdiv_inter_sliceのシンタックス要素がPPSを参照するPHに存在し、cu_qp_delta_absが変換ユニットシンタックスに存在する可能性があることを指定する。0に等しいcu_qp_delta_enabled_flagは、ph_cu_qp_delta_subdiv_intra_slice及びph_cu_qp_delta_subdiv_inter_sliceのシンタックス要素がPPSを参照するPHに存在せず、cu_qp_delta_absが変換ユニットシンタックスに存在しないことを指定する。
1に等しいpps_chroma_tool_offsets_present_flagは、クロマツールオフセット関連シンタックス要素がPPS RBSPシンタックス構造に存在することを指定する。0に等しいpps_chroma_tool_offsets_present_flagは、クロマツールオフセット関連シンタックス要素がPPS RBSPシンタックス構造に存在しないことを指定する。ChromaArrayTypeが0に等しいとき、pps_chroma_tool_offsets_present_flagの値は0に等しくなければならない。
pps_cb_qp_offset及びpps_cr_qp_offsetは、Qp′
Cb及びQp′
Cを夫々導出するために使用されるルーマ量子化パラメータQp′
Yに対するオフセットを指定する。pps_cb_qp_offset及びpps_cr_qp_offsetの値は-12以上+12以下の範囲内になければならない。ChromaArrayTypeが0に等しいとき、pps_cb_qp_offset及びpps_cr_qp_offsetは復号化プロセスで使用されず、デコーダはそれらの値を無視すべきである。存在しない場合に、pps_cb_qp_offset及びpps_cr_qp_offsetの値は、0に等しいと推測される。
1に等しいpps_joint_cbcr_qp_offset_present_flagは、pps_joint_cbcr_qp_offset_value及びjoint_cbcr_qp_offset_list[i]がPPS RBSPシンタックス構造に存在することを指定する。0に等しいpps_joint_cbcr_qp_offset_present_flagは、pps_joint_cbcr_qp_offset_value及びjoint_cbcr_qp_offset_list[i]がPPS RBSPシンタックス構造に存在しないことを指定する。ChromaArrayTypeが0に等しいか、又はsps_joint_cbcr_enabled_flagが0に等しいとき、pps_joint_cbcr_qp_offset_present_flagの値は0に等しくなければならない。存在しない場合に、pps_joint_cbcr_qp_offset_present_flagの値は、0に等しいと推測される。
pps_joint_cbcr_qp_offset_valueは、Qp′
CbCrを導出するために使用されるルーマ量子化パラメータQp′
Yに対するオフセットを指定する。pps_joint_cbcr_qp_offset_valueの値は-12以上+12以下の範囲内になければならない。ChromaArrayTypeが0に等しいか、又はsps_joint_cbcr_enabled_flagが0に等しいとき、pps_joint_cbcr_qp_offset_valueは復号化プロセスで使用されず、デコーダはその値を無視すべきである。pps_joint_cbcr_qp_offset_present_flagが0に等しいとき、pps_joint_cbcr_qp_offset_valueは存在せず、0に等しいと推測される。
1に等しいpps_slice_chroma_qp_offsets_present_flagは、slice_cb_qp_offset及びslice_cr_qp_offsetのシンタックス要素が関連するスライスヘッダに存在することを指定する。0に等しいpps_slice_chroma_qp_offsets_present_flagは、slice_cb_qp_offset及びslice_cr_qp_offsetのシンタックス要素が関連するスライスヘッダに存在しないことを指定する。存在しない場合に、pps_slice_chroma_qp_offsets_present_flagの値は、0に等しいと推測される。
1に等しいpps_cu_chroma_qp_offset_list_enabled_flagは、ph_cu_chroma_qp_offset_subdiv_intra_slice及びph_cu_chroma_qp_offset_subdiv_inter_sliceのシンタックス要素がPPSを参照するPHに存在し、cu_chroma_qp_offset_flagが変換ユニットシンタックス及びパレットコーディングシンタックスに存在する可能性があることを指定する。0に等しいpps_cu_chroma_qp_offset_list_enabled_flagは、ph_cu_chroma_qp_offset_subdiv_intra_slice及びph_cu_chroma_qp_offset_subdiv_inter_sliceのシンタックス要素がPPSを参照するPHに存在せず、cu_chroma_qp_offset_flagが変換ユニットシンタックス及びパレットコーディングシンタックスに存在しないことを指定する。存在しない場合に、pps_cu_chroma_qp_offset_list_enabled_flagの値は、0に等しいと推測される。
chroma_qp_offset_list_len_minus1に1をプラスしたものは、PPS RBSPシンタックス構造に存在するcb_qp_offset_list[i]、cr_qp_offset_list[i]、及びjoint_cbcr_qp_offset_list[i]のシンタックス要素の数を指定する。chroma_qp_offset_list_len_minus1の値は0以上5以下の範囲内になければならない。
cb_qp_offset_list[i]、cr_qp_offset_list[i]、及びjoint_cbcr_qp_offset_list[i]は夫々、Qp′
Cb、Qp′
Cr、及びQp′
CbCrの導出で使用されるオフセットを指定する。cb_qp_offset_list[i]、cr_qp_offset_list[i]、及びjoint_cbcr_qp_offset_list[i]の値は-12以上+12以下の範囲内になければならない。pps_joint_cbcr_qp_offset_present_flagが0に等しいとき、joint_cbcr_qp_offset_list[i]は存在せず、それは0に等しいと推測される。
0に等しいpps_weighted_pred_flagは、重み付き予測がPPSを参照するPスライスに適用されないことを指定する。1に等しいpps_weighted_pred_flagは、重み付き予測がPPSを参照するPスライスに適用されることを指定する。sps_weighted_pred_flagが0に等しいとき、pps_weighted_pred_flagの値は0に等しくなければならない。
0に等しいpps_weighted_bipred_flagは、明示的な重み付き予測がPPSを参照するBスライスに適用されないことを指定する。1に等しいpps_weighted_bipred_flagは、明示的な重み付き予測がPPSを参照するBスライスに適用されることを指定する。sps_weighted_bipred_flagが0に等しいとき、pps_weighted_bipred_flagの値は0に等しくなければならない。
1に等しいdeblocking_filter_control_present_flagは、PPSにおけるデブロッキングフィルタ制御シンタックス要素の存在を指定する。0に等しいtdeblocking_filter_control_present_flagは、PPSにおけるデブロッキングフィルタ制御シンタックス要素の不存在を指定する。
1に等しいdeblocking_filter_override_enabled_flagは、PPSを参照するPHにおけるph_deblocking_filter_override_flag又はPPSを参照するスライスヘッダにおけるslice_deblocking_filter_override_flagの存在を指定する。0に等しいdeblocking_filter_override_enabled_flagは、PPSを参照するPHにおけるph_deblocking_filter_override_flag又はPPSを参照するスライスヘッダにおけるslice_deblocking_filter_override_flagの不存在を指定する。存在しない場合に、deblocking_filter_override_enabled_flagの値は、0に等しいと推測される。
1に等しいpps_deblocking_filter_disabled_flagは、slice_deblocking_filter_disabled_flagが存在しないPPSを参照するスライスに対してデブロッキングフィルタの動作が適用されないことを指定する。0に等しいpps_deblocking_filter_disabled_flagは、slice_deblocking_filter_disabled_flagが存在しないPPSを参照するスライスに対してデブロッキングフィルタの動作が適用されることを指定する。存在しない場合に、pps_deblocking_filter_disabled_flagの値は、0に等しいと推測される。
pps_beta_offset_div2及びpps_tc_offset_div2は、PPSを参照するスライスのスライスヘッダ又はピクチャヘッダに存在するデブロッキングパラメータオフセットによってデフォルトのデブロッキングパラメータオフセットがオーバーライドされる場合を除いて、PPSを参照するスライスのルーマ成分に適用されるβ及びtC(2で除される)のデフォルトのデブロッキングパラメータオフセットを指定する。pps_beta_offset_div2及びpps_tc_offset_div2の値は両方とも-12以上+12以下の範囲内になければならない。存在しない場合に、pps_beta_offset_div2及びpps_tc_offset_div2の値は両方とも、0に等しいと推測される。
pps_cb_beta_offset_div2及びpps_cb_tc_offset_div2は、PPSを参照するスライスのスライスヘッダ又はピクチャヘッダに存在するデブロッキングパラメータオフセットによってデフォルトのデブロッキングパラメータオフセットがオーバーライドされる場合を除いて、PPSを参照するスライスのCbに適用されるβ及びtC(2で除される)のデフォルトのデブロッキングパラメータオフセットを指定する。pps_cb_beta_offset_div2及びpps_cb_tc_offset_div2の値は両方とも-12以上+12以下の範囲内になければならない。存在しない場合に、pps_cb_beta_offset_div2及びpps_cb_tc_offset_div2の値は両方とも、0に等しいと推測される。
pps_cr_beta_offset_div2及びpps_cr_tc_offset_div2は、PPSを参照するスライスのスライスヘッダ又はピクチャヘッダに存在するデブロッキングパラメータオフセットによってデフォルトのデブロッキングパラメータオフセットがオーバーライドされる場合を除いて、PPSを参照するスライスのCrに適用されるβ及びtC(2で除される)のデフォルトのデブロッキングパラメータオフセットを指定する。pps_cr_beta_offset_div2及びpps_cr_tc_offset_div2の値は両方とも-12以上+12以下の範囲内になければならない。存在しない場合に、pps_cr_beta_offset_div2及びpps_cr_tc_offset_div2の値は両方とも、0に等しいと推測される。
1に等しいrpl_info_in_ph_flagは、参照ピクチャリスト情報がPHシンタックス構造に存在し、PHシンタックス構造を含まないPPSを参照するスライスヘッダに存在しないことを指定する。0に等しいrpl_info_in_ph_flagは、参照ピクチャリスト情報がPHシンタックス構造に存在せず、PHシンタックス構造を含まないPPSを参照するスライスヘッダに存在する可能性があることを指定する。
1に等しいdbf_info_in_ph_flagは、デブロッキングフィルタ情報がPHシンタックス構造に存在し、PHシンタックス構造を含まないPPSを参照するスライスヘッダに存在しないことを指定する。0に等しいdbf_info_in_ph_flagは、デブロッキングフィルタ情報がPHシンタックス構造に存在せず、PHシンタックス構造を含まないPPSを参照するスライスヘッダに存在する可能性があることを指定する。存在しない場合に、dbf_info_in_ph_flagの値は、0に等しいと推測される。
1に等しいsao_info_in_ph_flagは、SAOフィルタ情報がPHシンタックス構造に存在し、PHシンタックス構造を含まないPPSを参照するスライスヘッダに存在しないことを指定する。0に等しいsao_info_in_ph_flagは、SAOフィルタ情報がPHシンタックス構造に存在せず、PHシンタックス構造を含まないPPSを参照するスライスヘッダに存在する可能性があることを指定する。
1に等しいalf_info_in_ph_flagは、ALF情報がPHシンタックス構造に存在し、PHシンタックス構造を含まないPPSを参照するスライスヘッダに存在しないことを指定する。0に等しいalf_info_in_ph_flagは、ALF情報がPHシンタックス構造に存在せず、PHシンタックス構造を含まないPPSを参照するスライスヘッダに存在する可能性があることを指定する。
1に等しいwp_info_in_ph_flagは、重み付き予測情報がPHシンタックス構造に存在し、PHシンタックス構造を含まないPPSを参照するスライスヘッダに存在しないことを指定する。0に等しいwp_info_in_ph_flagは、重み付き予測情報がPHシンタックス構造に存在せず、PHシンタックス構造を含まないPPSを参照するスライスヘッダに存在する可能性があることを指定する。存在しない場合に、wp_info_in_ph_flagの値は、0に等しいと推測される。
1に等しいqp_delta_info_in_ph_flagは、QPデルタ情報がPHシンタックス構造に存在し、PHシンタックス構造を含まないPPSを参照するスライスヘッダに存在しないことを指定する。0に等しいqp_delta_info_in_ph_flagは、QPデルタ情報がPHシンタックス構造に存在せず、PHシンタックス構造を含まないPPSを参照するスライスヘッダに存在する可能性があることを指定する。
1に等しいpps_ref_wraparound_enabled_flagは、水平ラップアラウンド動き補償がインター予測に適用されることを指定する。0に等しいpps_ref_wraparound_enabled_flagは、水平ラップアラウンド動き補償が適用されないことを指定する。CtbSizeY/MinCbSizeY+1の値がpic_width_in_luma_samples/MinCbSizeY-1よりも大きいとき、pps_ref_wraparound_enabled_flagの値は0に等しくなければならない。sps_ref_wraparound_enabled_flagが0に等しいとき、pps_ref_wraparound_enabled_flagの値は0に等しくなければならない。
pps_ref_wraparound_offsetに(CtbSizeY/MinCbSizeY)+2をプラスしたものは、MinCbSizeYルーマサンプルの単位で水平ラップアラウンド位置を計算するために使用されるオフセットを指定する。pps_ref_wraparound_offsetの値は0以上(pic_width_in_luma_samples/MinCbSizeY)-(CtbSizeY/MinCbSizeY)-2以下の範囲内になければならない。変数PpsRefWraparoundOffsetは、pps_ref_wraparound_offset+(CtbSizeY/MinCbSizeY)+2に等しくセットされる。
0に等しいpicture_header_extension_present_flagは、PH拡張シンタックス要素がPPSを参照するPHに存在しないことを指定する。1に等しいpicture_header_extension_present_flagは、PH拡張シンタックス要素がPPSを参照するPHに存在することを指定する。picture_header_extension_present_flagは、この仕様のこのバージョンに従うビットストリームで0に等しくなければならない。
0に等しいslice_header_extension_present_flagは、スライスヘッダ拡張シンタックス要素がPPSを参照するコーディングされたピクチャについてスライスヘッダに存在しないことを指定する。1に等しいslice_header_extension_present_flagは、スライスヘッダ拡張シンタックス要素がPPSを参照するコーディングされたピクチャについてスライスヘッダに存在することを指定する。slice_header_extension_present_flagは、この仕様のこのバージョンに従うビットストリームで0に等しくなければならない。
0に等しいpps_extension_flagは、pps_extension_data_flagシンタックス要素がPPS RBSPシンタックス構造に存在しないことを指定する。1に等しいpps_extension_flagは、pps_extension_data_flagシンタックス要素がPPS RBSPシンタックス構造に存在することを指定する。
pps_extension_data_flagは如何なる値も有し得る。その存在及び値は、この仕様のこのバージョンで定められているプロファイルに対するデコーダ互換性に影響を及ぼさない。この仕様のこのバージョンに従うデコーダは、全てのpps_extension_data_flagシンタックス要素を無視すべきである。
【0038】
[3.4.APSシンタックス及びセマンティクス]
最新のVVC草案テキストでは、APSのシンタックス及びセマンティクスは次の通りである:
【表4】
【0039】
APS RBSPは、ALFシンタックス構造、つまり、alf_data( )を含む。
【表5】
【0040】
APS RBSPは、LMCSシンタックス構造、つまり、lmcs_data( )を含む。
【表6】
【0041】
APS RBSPは、スケーリングリストデータシンタックス構造、つまり、scaling_list_data( )を含む。
【表7】
各APS RBSPは、それが参照される前に復号化プロセスに利用可能であり、それを参照するコーディングされたスライスNALユニットのTemporalIdより小さいか又は等しいTemporalIDを有する少なくとも1つのAUに含まれるか、又は外部手段を通じて提供されるものであるとする。
PU内の特定の値のadaptation_parameter_set_id及び特定の値のaps_params_typeを有する全てのAPS NALユニットは、それらがプリフィックス又はサフィックスAPS NALユニットであるかどうかにかかわらず、同じコンテンツを有するべきである。
adaptation_parameter_set_idは、他のシンタックス要素によって参照されるAPSの識別子を与える。
aps_params_typeがALF_APS又はSCALING_APSに等しい場合に、adaptation_parameter_set_idの値は0以上7以下の範囲内になければならない。
aps_params_typeがLMCS_APSに等しい場合に、adaptation_parameter_set_idの値は0以上3以下の範囲内になければならない。
apsLayerIdを特定のAPS NALユニットのnuh_layer_idの値であるとし、vclLayerIdを特定のVCL NALユニットのnuh_layer_idの値であるとする。特定のVCL NALユニットは、apsLayerIdがvclLayerId以下である場合を除いて、特定のAPS NALユニットを参照してはならず、apsLayerIdに等しいnuh_layer_idを有するレイヤは、vclLayerIdに等しいnuh_layer_idを有するレイヤを含む少なくとも1つのOLSに含まれる。
aps_params_typeは、表6で指定されるように、APSで運ばれるAPSパラメータのタイプを指定する。
【表8】
特定の値のaps_params_typeを有する全てのAPS NALユニットは、nuh_layer_idの値にかかわらず、adaptation_parameter_set_idの同じ値空間を共有する。異なる値のaps_params_typeを有するAPS NALユニットは、adaptation_parameter_set_idの別個の値空間を使用する。
注記1-APS NALユニット(特定の値のadaptation_parameter_set_id及び特定の値のaps_params_typeを有する)は、ピクチャにわたって共有され得、ピクチャ内の異なるスライスは、異なるALF APSを参照することができる。
注記2-特定のVCL NALユニット(このVCL NALユニットは復号化順でサフィックスAPS NALユニットに先行する)に関連したサフィックスAPS NALユニットは、特定のVCL NALユニットによって使用されず、復号化順でサフィックスAPS NALユニットに続くVCL NALユニットによって使用される。
0に等しいaps_extension_flagは、aps_extension_data_flagシンタックス要素がAPS RBSPシンタックス構造に存在しないことを指定する。1に等しいaps_extension_flagは、APS RBSPシンタックス構造にaps_extension_data_flagシンタックス要素が存在することを指定する。
aps_extension_data_flagは如何なる値も有し得る。その存在及び値は、この仕様のこのバージョンで指定されているプロファイルへのデコーダの準拠に影響を及ぼさない。この仕様のこのバージョンに従うデコーダは、全てのaps_extension_data_flagシンタックス要素の値を無視すべきである。
1に等しいalf_luma_filter_signal_flagは、ルーマフィルタセットがシグナリングされることを指定する。0に等しいalf_luma_filter_signal_flagは、ルーマフィルタセットがシグナリングされないことを指定する。
1に等しいalf_chroma_filter_signal_flagは、クロマフィルタがシグナリングされることを指定する。0に等しいalf_chroma_filter_signal_flagは、クロマフィルタがシグナリングされないことを指定する。ChromaArrayTypeが0に等しい場合に、alf_chroma_filter_signal_flagは0に等しくなければならない。
alf_luma_filter_signal_flag、alf_chroma_filter_signal_flag、alf_cc_cb_filter_signal_flag、及びalf_cc_cr_filter_signal_flagの値のうちの少なくとも1つは、1に等しくなければならない。
異なる適応ループフィルタの数を指定する変数NumAlfFiltersは、25に等しくセットされる。
0に等しいalf_luma_clip_flagは、線形適応ループフィルタリングがルーマ成分に対して適用されることを指定する。1に等しいalf_luma_clip_flagは、非線形適応ループフィルタリングがルーマ成分に対して適用され得ることを指定する。
alf_luma_num_filters_signalled_minus1に1をプラスしたものは、ルーマ係数がシグナリングされ得る適応ループフィルタクラスの数を指定する。alf_luma_num_filters_signalled_minus1の値は、0以上NumAlfFilters-1以下の範囲内になければならない。
alf_luma_coeff_delta_idx[filtIdx]は、0からNumAlfFilters-1の範囲に及ぶfiltIdxによって示されるフィルタクラスについてのシグナリングされた適応ループフィルタ係数デルタのインデックスを指定する。alf_luma_coeff_delta_idx[filtIdx]が存在しない場合に、それは0に等しいと推測される。alf_luma_coeff_delta_idx[filtIdx]の長さはCeil(Log2(alf_luma_num_filters_signalled_minus1+1))ビットである。alf_luma_coeff_delta_idx[filtIdx]の値は0以上alf_luma_num_filters_signalled_minus1以下の範囲内になければならない。
alf_luma_coeff_abs[sfIdx][j]は、sfIdxによって示されるシグナリングされたルーマフィルタのj番目の係数の絶対値を指定する。alf_luma_coeff_abs[sfIdx][j]が存在しない場合に、それは0に等しいと推測される。alf_luma_coeff_abs[sfIdx][j]の値は0以上128以下の範囲内になければならない。
alf_luma_coeff_sign[sfIdx][j]は、次の通りに、sfIdxによって示されるj番目のルーマ係数の符号を指定する:
- alf_luma_coeff_sign[sfIdx][j]が0に等しい場合に、対応するルーマフィルタ係数は正値を有する。
- そうではない(alf_luma_coeff_sign[sfIdx][j]が1に等しい)場合に、対応するルーマフィルタ係数は負値を有する。
alf_luma_coeff_sign[sfIdx][j]が存在しない場合に、それは0に等しいと推測される。
変数filtCoeff[sfIdx][j]は、sfIdx=0..alf_luma_num_filters_signalled_minus1及びj=0..11として、次の通りに初期化される:
filtCoeff[sfIdx][j]=
alf_luma_coeff_abs[sfIdx][j]*(1-2*alf_luma_coeff_sign[sfIdx][j]) (93)
要素AlfCoeff
L[adaptation_parameter_set_id][filtIdx][j]を含むルーマフィルタ係数AlfCoeff
L[adaptation_parameter_set_id]は、filtIdx=0..NumAlfFilters-1及びj=0..11として、次の通りに導出される:
AlfCoeffL[adaptation_parameter_set_id][filtIdx][j]=
filtCoeff[alf_luma_coeff_delta_idx[filtIdx]][j] (94)
固定フィルタ係数AlfFixFiltCoeff[i][j](i=0..64及びj=0..11)及びクラス対フィルタのマッピングAlfClassToFiltMap[m][n](m=0..15及びn=0..24)は、次の通りに導出される:
【数4】
【数5】
ビットストリームコンフォーマンスの要件は、AlfCoeff
L[adaptation_parameter_set_id][filtIdx][j](filtIdx=0..NumAlfFilters-1及びj=0..11)の値が-2
7以上2
7-1以下の範囲内になければならないことである。
alf_luma_clip_idx[sfIdx][j]は、sfIdxによって示されているシグナリングされたルーマフィルタのj番目の係数を乗じられる前に使用すべきクリッピング値のクリッピングインデックスを指定する。ビットストリームコンフォーマンスの要件は、alf_luma_clip_idx[sfIdx][j]の値が、sfIdx=0..alf_luma_num_filters_signalled_minus1及びj=0..11である場合に、0以上3以下の範囲内になければならないことである。
filtIdx=0..NumAlfFilters-1及びj=0..11である場合に、要素AlfClipL[adaptation_parameter_set_id][filtIdx][j]を有するルーマフィルタクリッピング値AlfClipL[adaptation_parameter_set_id]は、alf_luma_clip_idx[alf_luma_coeff_delta_idx[filtIdx]][j]に等しくセットされたclipIdx及びBitDepthに応じて、表8で指定されるように導出される。
0に等しいalf_chroma_clip_flagは、線形適応ループフィルタリングがクロマ成分に適用されることを指定し、1に等しいalf_chroma_clip_flagは、非線形適応ループフィルタリングがクロマ成分に適用されることを指定する。存在しない場合に、alf_chroma_clip_flagは、0に等しいと推測される。
alf_chroma_num_alt_filters_minus1に1をプラスしたものは、クロマ成分に対する代替のフィルタの数を指定する。alf_chroma_num_alt_filters_minus1の値は0以上7以下の範囲内になければならない。
alf_chroma_coeff_abs[altIdx][j]は、インデックスaltIdxを有する代替のクロマフィルタのためのj番目のクロマフィルタ係数の絶対値を指定する。alf_chroma_coeff_abs[altIdx][j]が存在しない場合に、それは0に等しいと推測される。alf_chroma_coeff_abs[sfIdx][j]の値は0以上128以下の範囲内になければならない。
alf_chroma_coeff_sign[altIdx][j]は、次の通りに、インデックスaltIdxを有する代替のクロマフィルタのためのj番目のクロマフィルタ係数の符号を指定する:
- alf_chroma_coeff_sign[altIdx][j]が0に等しい場合に、対応するクロマフィルタ係数は正値を有する。
- そうではない(alf_chroma_coeff_sign[altIdx][j]が1に等しい)場合に、対応するクロマフィルタ係数は負値を有する。
alf_chroma_coeff_sign[altIdx][j]が存在しない場合に、それは0に等しいと推測される。
altIdx=0..alf_chroma_num_alt_filters_minus1及びj=0..5である場合に、要素AlfCoeffC[adaptation_parameter_set_id][altIdx][j]を有するクロマフィルタ係数は、次の通りに導出される:
AlfCoeffC[adaptation_parameter_set_id][altIdx][j]=
alf_chroma_coeff_abs[altIdx][j]*(1-2*alf_chroma_coeff_sign[altIdx][j]) (97)
ビットストリームコンフォーマンスの要件は、altIdx=0..alf_chroma_num_alt_filters_minus1及びj=0..5の場合に、AlfCoeffC[adaptation_parameter_set_id][altIdx][j]の値が、-2
7以上2
7-1以下の範囲内になければならないことである。
1に等しいalf_cc_cb_filter_signal_flagは、Cb色成分のクロスコンポーネントフィルタがシグナリングされることを指定する。0に等しいalf_cc_cb_filter_signal_flagは、Cb色成分のクロスコンポーネントフィルタがシグナリングされないことを指定する。ChromaArrayTypeが0に等しいとき、alf_cc_cb_filter_signal_flagは0に等しくなければならない。
alf_cc_cb_filters_signalled_minus1に1をプラスしたものは、現在のALF APSでシグナリングされるCb色成分のクロスコンポーネントフィルタの数を指定する。alf_cc_cb_filters_signalled_minus1の値は0以上3以下の範囲内になければならない。
alf_cc_cb_mapped_coeff_abs[k][j]は、Cbクロマ成分のシグナリングされたk番目のクロスコンポーネントフィルタのj番目のマッピングされた係数の絶対値を指定する。alf_cc_cb_mapped_coeff_abs[k][j]が存在しない場合に、それは0に等しいと推測される。
alf_cc_cb_coeff_sign[k][j]は、次の通りに、Cb色成分のシグナリングされたk番目のクロスコンポーネントフィルタのj番目の係数の符号を指定する:
- alf_cc_cb_coeff_sign[k][j]が0に等しい場合に、対応するクロスコンポーネントフィルタ係数は正値を有する。
- そうではない(alf_cc_cb_sign[k][j]が1に等しい)場合に、対応するクロスコンポーネントフィルタ係数は負値を有する。
alf_cc_cb_coeff_sign[k][j]が存在しない場合に、それは0に等しいと推測される。
Cb色成分のシグナリングされたk番目のクロスコンポーネントフィルタ係数CcAlfApsCoeffCb[adaptation_parameter_set_id][k][j]は、j=0..6であるとして、次の通りに導出される:
- alf_cc_cb_mapped_coeff_abs[k][j]が0に等しい場合に、CcAlfApsCoeffCb[adaptation_parameter_set_id][k][j]は0に等しくセットされる。
- そうではない場合に、CcAlfApsCoeffCb[adaptation_parameter_set_id][k][j]は(1-2*alf_cc_cb_coeff_sign[k][j])*2
alf_cc_cb_mapped_coeff_abs[k][j]-1に等しくセットされる。
1に等しいalf_cc_cr_filter_signal_flagは、Cr色成分のクロスコンポーネントフィルタがシグナリングされることを指定する。0に等しいalf_cc_cr_filter_signal_flagは、Cr色成分のクロスコンポーネントフィルタがシグナリングされないことを指定する。ChromaArrayTypeが0に等しいとき、alf_cc_cr_filter_signal_flagは0に等しくなければならない。
alf_cc_cr_filters_signalled_minus1に1をプラスしたものは、現在のALF APSでシグナリングされるCr色成分のクロスコンポーネントフィルタの数を指定する。alf_cc_cr_filters_signalled_minus1の値は0以上3以下の範囲内になければならない。
alf_cc_cr_mapped_coeff_abs[k][j]は、Cr色成分のシグナリングされたk番目のクロスコンポーネントフィルタのj番目のマッピングされた係数の絶対値を指定する。alf_cc_cr_mapped_coeff_abs[k][j]が存在しない場合に、それは0に等しいと推測される。
alf_cc_cr_coeff_sign[k][j]は、次の通りに、Cr色成分のシグナリングされたk番目のクロスコンポーネントフィルタのj番目の係数の符号を指定する:
- alf_cc_cr_coeff_sign[k][j]が0に等しい場合に、対応するクロスコンポーネントフィルタ係数は正値を有する。
- そうではない(alf_cc_cr_sign[k][j]が1に等しい)場合に、対応するクロスコンポーネントフィルタ係数は負値を有する。
alf_cc_cr_coeff_sign[k][j]が存在しない場合に、それは0に等しいと推測される。
Cr色成分のシグナリングされたk番目のクロスコンポーネントフィルタ係数CcAlfApsCoeffCr[adaptation_parameter_set_id][k][j]は、j=0..6であるとして、次の通りに導出される:
- alf_cc_cr_mapped_coeff_abs[k][j]が0に等しい場合に、CcAlfApsCoeffCr[adaptation_parameter_set_id][k][j]に等しくセットされる。
- そうではない場合に、CcAlfApsCoeffCr[adaptation_parameter_set_id][k][j]は(1-2*alf_cc_cr_coeff_sign[k][j])*2
alf_cc_cr_mapped_coeff_abs[k][j]-に等しくセットされる。
alf_chroma_clip_idx[altIdx][j]は、インデックスaltIdxを有する代替のクロマフィルタのj番目の係数を乗じられる前に使用すべきクリッピング値のクリッピングインデックスを指定する。ビットストリームコンフォーマンスの要件は、alf_chroma_clip_idx[altIdx][j]の値が、altIdx=0..alf_chroma_num_alt_filters_minus1及びj=0..5である場合に、0以上3以下の範囲内になければならないことである。
altIdx=0..alf_chroma_num_alt_filters_minus1及びj=0..5である場合に、要素AlfClipC[adaptation_parameter_set_id][altIdx][j]を有するクロマフィルタクリッピング値AlfClipC[adaptation_parameter_set_id][altIdx]は、alf_chroma_clip_idx[altIdx][j]に等しいclipIdx及びBitDepthに応じて、表8で指定されるように導出される。
【表9】
lmcs_min_bin_idxは、クロマスケーリングを伴ったルーママッピングの構成プロセスで使用される最小ビンインデックスを指定する。lmcs_min_bin_idxの値は0以上15以下の範囲内になければならない。
lmcs_delta_max_bin_idxは、15からクロマスケーリングを伴ったルーママッピングの構成プロセスで使用される最大ビンインデックスLmcsMaxBinIdxとの間のデルタ値を指定する。lmcs_delta_max_bin_idxの値は0以上15以下の範囲内になければならない。LmcsMaxBinIdxの値は、15-lmcs_delta_max_bin_idxに等しくセットされる。LmcsMaxBinIdxの値はlmcs_min_bin_idx以上でなければならない。
lmcs_delta_cw_prec_minus1に1をプラスしたものは、シンタックスlmcs_delta_abs_cw[i]の表現のために使用されるビットの数を指定するlmcs_delta_cw_prec_minus1の値は0以上BitDepth-2以下の範囲内になければならない。
lmcs_delta_abs_cw[i]は、i番目のビンの絶対デルタコードワード値を指定する。
lmcs_delta_sign_cw_flag[i]は、次の通りに、変数lmcsDeltaCW[i]の符号を指定する:
- lmcs_delta_sign_cw_flag[i]が0に等しい場合に、lmcsDeltaCW[i]は正値である。
- そうではない(lmcs_delta_sign_cw_flag[i]が0に等しくない)場合に、lmcsDeltaCW[i]は負値である。
lmcs_delta_sign_cw_flag[i]が存在しない場合に、それは0に等しいと推測される。
変数OrgCWは、次の通りに導出される:
OrgCW=(1<<BitDepth)/16 (98)
変数lmcsDeltaCW[i]は、i=lmcs_min_bin_idx..LmcsMaxBinIdxであるとして、次の通りに導出される:
lmcsDeltaCW[i]=(1-*lmcs_delta_sign_cw_flag[i])*lmcs_delta_abs_cw[i] (99)
変数lmcsCW[i]は、次の通りに導出される:
- i=0..lmcs_min_bin_idx-1について、lmcsCW[i]は0に等しくセットされる。
- i=lmcs_min_bin_idx..LmcsMaxBinIdxについて、次が適用される:
lmcsCW[i]=OrgCW+lmcsDeltaCW[i] (100)
lmcsCW[i]の値は、(OrgCW>>3)以上(OrgCW<<3-)以下の範囲内になければならない。
- i=LmcsMaxBinIdx+1..15について、lmcsCW[i]は0に等しくセットされる。
ビットストリームコンフォーマンスの要件は、次の条件が真であることである:
【数6】
変数InputPivot[i]は、i=0..16として、次の通りに導出される:
InputPivot[i]=i*OrgCW (102)
変数LmcsPivot[i](i=0..16)並びに変数ScaleCoeff[i]及びInvScaleCoeff[i](i=0..15)は、次の通りに導出される:
【数7】
ビットストリームコンフォーマンスの要件は、i=lmcs_min_bin_idx..LmcsMaxBinIdxについて、LmcsPivot[i]の値が1<<(BitDepth-5)の倍数でない場合に、(LmcsPivot[i]>>(BitDepth-5))の値が(LmcsPivot[i+1]>>(BitDepth-5))の値に等しくてはならないことである。
lmcs_delta_abs_crsは、変数lmcsDeltaCrsの絶対コードワード値を指定する。lmcs_delta_abs_crsの値は0以上7以下の範囲内になければならない。存在しない場合に、lmcs_delta_abs_crsは0に等しいと推測される。
lmcs_delta_sign_crs_flagは、変数lmcsDeltaCrsの符号を指定する。存在しない場合に、lmcs_delta_sign_crs_flagは0に等しいと推測される。
変数lmcsDeltaCrsは、次の通りに導出される:
lmcsDeltaCrs=(1-2*lmcs_delta_sign_crs_flag)*lmcs_delta_abs_crs (104)
ビットストリームコンフォーマンスの要件は、lmcsCW[i]が0に等しくない場合に、(lmcsCW[i]+lmcsDeltaCrs)が(OrgCW>>3)以上((OrgCW<<3)-1)以下の範囲内になければならないことである。
変数ChromaScaleCoeff[i]は、i=0…15であるとして、次の通りに導出される:
if(lmcsCW[i]==0)
ChromaScaleCoeff[i]=(1<<11)
else
ChromaScaleCoeff[i]=OrgCW*(1<<11)/(lmcsCW[i]+lmcsDeltaCrs)
1に等しいscaling_matrix_for_lfnst_disabled_flagは、スケーリング行列がLFNSTでコーディングされたブロックに適用されないことを指定する。0に等しいscaling_matrix_for_lfnst_disabled_flagは、スケーリング行列がLFNSTでコーディングされたブロックに適用され得ることを指定する。
1に等しいscaling_list_chroma_present_flagは、クロマスケーリングリストがscaling_list_data( )に存在することを指定する。0に等しいscaling_list_chroma_present_flagは、クロマスケーリングリストがscaling_list_data( )に存在しないことを指定する。ビットストリームコンフォーマンスの要件は、scaling_list_chroma_present_flagが、ChromaArrayTypeが0に等しいときには0に等しくなければならず、ChromaArrayTypeが0に等しくないときには1に等しくなければならないことである。
1に等しいscaling_list_copy_mode_flag[id]は、スケーリングリストの値が参照スケーリングリストの値と同じであることを指定する。参照スケーリングリストは、scaling_list_pred_id_delta[id]によって指定される。0に等しいscaling_list_copy_mode_flag[id]は、scaling_list_pred_mode_flagが存在することを指定する。
1に等しいscaling_list_pred_mode_flag[id]は、スケーリングリストの値が参照スケーリングリストから予測可能であることを指定する。参照スケーリングリストは、scaling_list_pred_id_delta[id]によって指定される。0に等しいscaling_list_pred_mode_flag[id]は、スケーリングリストの値が明示的にシグナリングされることを指定する。存在しない場合に、scaling_list_pred_mode_flag[id]の値は0に等しいと推測される。
scaling_list_pred_id_delta[id]は、予測されたスケーリング行列ScalingMatrixPred[id]を導出するために使用される参照スケーリングリストを指定する。存在しない場合に、scaling_list_pred_id_delta[id]の値は0に等しいと推測される。scaling_list_pred_id_delta[id]の値は0からmaxIdDeltaの範囲内になければならず、maxIdDeltaは、次の通りに、idに応じて導出される:
maxIdDelta=(id<2)?id:((id<8)?(id-2):(id-8)) (106)
変数refId及びmatrixSizeは、次の通りに導出される:
refId=id-scaling_list_pred_id_delta[id] (107)
matrixSize=(id<2)?2:((id<8)?4:8) (108)
(matrixSize)×(matrixSize)アレイであるScalingMatrixPred[x][y](x=0..matrixSize-1及びy=0..matrixSize-1)及び変数ScalingMatrixDCPredは、次の通りに導出される:
- scaling_list_copy_mode_flag[id]及びscaling_list_pred_mode_flag[id]が両方とも0に等しい場合に、ScalingMatrixPredの全ての要素は8に等しくセットされ、ScalingMatrixDCPredの値は8に等しくセットされる。
- そうではなく、scaling_list_pred_id_delta[id]が0に等しい場合に、ScalingMatrixPredの全ての要素は16に等しくセットされ、ScalingMatrixDCPredは16に等しくセットされる。
- その他の場合(scaling_list_copy_mode_flag[id]又はscaling_list_pred_mode_flag[id]のどちらかが1に等しく、かつ、scaling_list_pred_id_delta[id]が0よりも大きい場合)に、ScalingMatrixPredはScalingMatrixRec[refId]に等しくセットされ、次がScalingMatrixDCPredに当てはまる:
- refIdが13よりも大きい場合に、ScalingMatrixDCPredはScalingMatrixDCRec[refId-14]に等しくセットされる。
- そうではない(refIdが13以下である)場合に、ScalingMatrixDCPredはScalingMatrixPred[0][0]に等しくセットされる。
scaling_list_dc_coef[id-14]は、次の通りに、idが13よりも大きいときに、変数ScalingMatrixDC[id-14]の値を導出するために使用される:
ScalingMatrixDCRec[id-14]=
(ScalingMatrixDCPred+scaling_list_dc_coef[id-14])&255 (109)
存在しない場合に、scaling_list_dc_coef[id-14]の値は0に等しいと推測される。scaling_list_dc_coef[id-14]の値は-128以上127以下の範囲内になければならない。ScalingMatrixDCRec[id-14]の値は0よりも大きくなければならない。
scaling_list_delta_coef[id][i]は、scaling_list_copy_mode_flag[id]が0に等しい場合に、現在の行列係数ScalingList[id][i]と前の行列係数ScalingList[id][i-1]との間の差を指定するscaling_list_delta_coef[id][i]の値は-128以上127以下の範囲内になければならない。scaling_list_copy_mode_flag[id]が1に等しい場合に、ScalingList[id]の全ての要素は0に等しくセットされる。
(matrixSize)×(matrixSize)アレイであるScalingMatrixRec[id]は、次の通りに導出される:
ScalingMatrixRec[id][x][y]=
(ScalingMatrixPred[x][y]+ScalingList[id][k])&255 (110)
ただし、
k=0..(matrixSize*matrixSize-1)、
x=DiagScanOrder[Log2(matrixSize)][Log2(matrixSize)][k][0]、及び
y=DiagScanOrder[Log2(matrixSize)][Log2(matrixSize)][k][1]である。
ScalingMatrixRec[id][x][y]の値は0よりも大きくなければならない。
【0042】
[3.5.PHシンタックス及びセマンティクス]
最新のVVC草案テキストでは、PHのシンタックス及びセマンティクスは次の通りである:
【表10】
【0043】
PH RBSPは、PHシンタックス構造、つまり、picture_header_structure( )を含む。
【表11】
PHシンタックス構造は、PHシンタックス構造に関連したコーディングされたピクチャの全スライスに共通する情報を含む。
1に等しいgdr_or_irap_pic_flagは、現在のピクチャがGDR又はIRAPピクチャであることを指定する。0に等しいgdr_or_irap_pic_flagは、現在のピクチャがGDR又はIRAPピクチャであってもなくてもよいことを指定する。
1に等しいgdr_pic_flagは、PHに関連したピクチャがGDRピクチャであることを指定する。0に等しいgdr_pic_flagは、PHに関連したピクチャがGDRピクチャでないことを指定する。存在しない場合に、gdr_pic_flagの値は0に等しいと推測される。gdr_enabled_flagが0に等しい場合に、gdr_pic_flagの値は0に等しくなければならない。
0に等しいph_inter_slice_allowed_flagは、ピクチャの全てのコーディングされたスライスが2に等しいslice_typeを有することを指定する。1に等しいph_inter_slice_allowed_flagは、0又は1に等しいslice_typeを有する1つ以上のコーディングされたスライスがピクチャに存在してもしなくてもよいことを指定する。
0に等しいph_intra_slice_allowed_flagは、ピクチャの全てのコーディングされたスライスが0又は1に等しいslice_typeを有することを指定する。1に等しいph_intra_slice_allowed_flagは、2に等しいslice_typeを有する1つ以上のコーディングされたスライスがピクチャに存在してもしなくてもよいことを指定する。存在しない場合に、ph_intra_slice_allowed_flagの値は1に等しいと推測される。
注記1-PH NALユニットを変更する必要なしに、サブピクチャベースのビットストリームのマージを働かせると想定されるビットストリームについて、エンコーダは、ph_inter_slice_allowed_flag及びph_intra_slice_allowed_flagの両方の値を1に等しくセットすると期待される。
1に等しいnon_reference_picture_flagは、PHに関連したピクチャが参照ピクチャとして決して使用されないことを指定する。0に等しいnon_reference_picture_flagは、PHに関連したピクチャが参照ピクチャとして使用されてもされなくてもよいことを指定する。
ph_pic_parameter_set_idは、使用中のPPSのpps_pic_parameter_set_idの値を指定する。ph_pic_parameter_set_idの値は0以上63以下の範囲内になければならない。
ビットストリームコンフォーマンスの要件は、PHのTemporalIdの値が、ph_pic_parameter_set_iに等しいpps_pic_parameter_set_idを有するPPSのTemporalIdの値よりも大きいか又は等しくなければならないことである。
ph_pic_order_cnt_lsbは、現在のピクチャのピクチャオーダーカウントのモジュロMaxPicOrderCntLsbを指定する。ph_pic_order_cnt_lsbシンタックス要素の長さはlog2_max_pic_order_cnt_lsb_minus4+4ビットである。ph_pic_order_cnt_lsbの値は0以上MaxPicOrderCntLsb-1以下の範囲内になければならない。
no_output_of_prior_pics_flagは、付録Cで指定されるように、ビットストリームの最初のピクチャではないCLVSSピクチャの復号化の後で、DPBにおける前に復号されたピクチャの出力に作用する。
recovery_poc_cntは、出力順における復号されたピクチャのリカバリポイントを指定する。現在のピクチャが、PHに関連するGDRピクチャであり、現在のGDRピクチャのPicOrderCntValにrecovery_poc_cntの値をプラスしたものに等しいPicOrderCntValを有する、復号化順で現在のGDRに従うピクチャpicAがCLVSが存在する場合に、ピクチャpicAはリカバリポイントピクチャと呼ばれる。さもなければ、現在のピクチャのPicOrderCntValにrecovery_poc_cntの値をプラスしたものよりも大きいPicOrderCntValを有する出力順での最初のピクチャが、リカバリポイントピクチャと呼ばれる。リカバリポイントピクチャは、復号化順で現在のGDRに先行すべきではない。recovery_poc_cntの値は0以上MaxPicOrderCntLsb-1以下の範囲内になければならない。
現在のピクチャがGDRピクチャである場合に、変数RpPicOrderCntValは、次の通りに導出される:
RpPicOrderCntVal=PicOrderCntVal+recovery_poc_cnt (82)
注記2-gdr_enabled_flagが1に等しく、現在のピクチャのPicOrderCntValが関連するGDRピクチャのRpPicOrderCntVal以上である場合に、出力順での現在及び後続の復号化されたピクチャは、存在する場合に復号化順で関連するGDRピクチャに先行する前のIRAPピクチャから復号化処理を開始することによって生成された対応するピクチャと厳密に一致する。
ph_extra_bit[i]は1又は0に等しくてよい。この仕様のこのバージョンに従うデコーダは、ph_extra_bit[i]の値を無視すべきである。その値は、この仕様のこのバージョンで指定されているプロファイルへのデコーダの準拠に影響を及ぼさない。
1に等しいph_poc_msb_present_flagは、シンタックス要素poc_msb_valがPHに存在することを指定する。0に等しいph_poc_msb_present_flagは、シンタックス要素poc_msb_valがPHに存在しないことを指定する。vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が0に等しく、現在のレイヤの参照レイヤ内の現在のAUにピクチャがある場合に、ph_poc_msb_present_flagの値は0に等しくなければならない。
poc_msb_valは、現在のピクチャのPOC MSB値を指定する。シンタックス要素poc_msb_valの長さはpoc_msb_len_minus1+1ビットである。
1に等しいph_alf_enabled_flagは、適応ループフィルタがPHに関連した全スライスに有効にされ、スライス内のY、Cb、又はCr色成分に適用され得ることを指定する。0に等しいph_alf_enabled_flagは、適応ループフィルタがPHに関連した1つ以上又は全てのスライスに無効にされ得ることを指定する。存在しない場合に、ph_alf_enabled_flagは0に等しいと推測される。
ph_num_alf_aps_ids_lumaは、PHに関連したスライスが参照するALF APSの数を指定する。
ph_alf_aps_id_luma[i]は、PHに関連したスライスのルーマ成分が参照するi番目のALF APSのadaptation_parameter_set_idを指定する。
ALF_APSに等しいaps_params_type及びph_alf_aps_id_luma[i]に等しいadaptation_parameter_set_idを有するAPS NALユニットのalf_luma_filter_signal_flagの値は、1に等しくなければならない。
ALF_APSに等しいaps_params_type及びph_alf_aps_id_luma[i]に等しいadaptation_parameter_set_idを有するAPS NALユニットのTemporalIdは、PHに関連したピクチャのTemporalIdよりも小さいか又は等しくなければならない。
0に等しいph_alf_chroma_idcは、適応ループフィルタがCb及びCr色成分に適用されないことを指定する。1に等しいph_alf_chroma_idcは、適応ループフィルタがCb色成分に適用されることを指定する。2に等しいph_alf_chroma_idcは、適応ループフィルタがCr色成分に適用されることを指定する。3に等しいph_alf_chroma_idcは、適応ループフィルタがCb及びCr色成分に適用されることを指定する。ph_alf_chroma_idcが存在しない場合に、それは0に等しいと推測される。
ph_alf_aps_id_chromaは、PHに関連したスライスのクロマ成分が参照するALF APSのadaptation_parameter_set_idを指定する。
ALF_APSに等しいaps_params_type及びph_alf_aps_id_chromaに等しいadaptation_parameter_set_idを有するAPS NALユニットのalf_chroma_filter_signal_flagの値は、1に等しくなければならない。
ALF_APSに等しいaps_params_type及びph_alf_aps_id_chromaに等しいadaptation_parameter_set_idを有するAPS NALユニットのTemporalIdは、PHに関連したピクチャのTemporalIdよりも小さいか又は等しくなければならない。
1に等しいph_cc_alf_cb_enabled_flagは、Cb色成分のためのクロスコンポーネントフィルタがPHに関連した全スライスに有効され、スライス内のCb色成分に適用され得ることを指定する。0に等しいph_cc_alf_cb_enabled_flaは、Cb色成分のためのクロスコンポーネントフィルタがPHに関連した1つ以上又は全てのスライスに無効にされ得ることを指定する。存在しない場合に、ph_cc_alf_cb_enabled_flagは0に等しいと推測される。
ph_cc_alf_cb_aps_idは、PHに関連したスライスのCb色成分が参照するALF APSのadaptation_parameter_set_idを指定する。
ALF_APSに等しいaps_params_type及びph_cc_alf_cb_aps_idに等しいadaptation_parameter_set_idを有するAPS NALユニットのalf_cc_cb_filter_signal_flagの値は、1に等しくなければならない。
ALF_APSに等しいaps_params_type及びph_cc_alf_cb_aps_idに等しいadaptation_parameter_set_idを有するAPS NALユニットのTemporalIdは、PHに関連したピクチャのTemporalIdよりも小さいか又は等しくなければならない。
1に等しいph_cc_alf_cr_enabled_flagは、Cr色成分のためのクロスコンポーネントフィルタがPHに関連した全スライスに有効され、スライス内のCr色成分に適用され得ることを指定する。0に等しいph_cc_alf_cr_enabled_flagは、Cr色成分のためのクロスコンポーネントフィルタがPHに関連した1つ以上又は全てのスライスに無効にされ得ることを指定する。存在しない場合に、ph_cc_alf_cr_enabled_flagは0に等しいと推測される。
ph_cc_alf_cr_aps_idは、PHに関連したスライスのCr色成分が参照するALF APSのadaptation_parameter_set_idを指定する。
ALF_APSに等しいaps_params_type及びph_cc_alf_cr_aps_idに等しいadaptation_parameter_set_idを有するAPS NALユニットのalf_cc_cr_filter_signal_flagの値は、1に等しくなければならない。
ALF_APSに等しいaps_params_type及びph_cc_alf_cr_aps_idに等しいadaptation_parameter_set_idを有するAPS NALユニットのTemporalIdは、PHに関連したピクチャのTemporalIdよりも小さいか又は等しくなければならない。
1に等しいph_lmcs_enabled_flagは、クロマスケーリングを伴うルーママッピングがPHに関連した全スライスに有効されることを指定する。0に等しいph_lmcs_enabled_flagは、クロマスケーリングを伴うルーママッピングがPHに関連した1つ以上又は全てのスライスに無効にされ得ることを指定する。存在しない場合に、ph_lmcs_enabled_flagは0に等しいと推測される。
ph_lmcs_aps_idは、PHに関連したスライスが参照するLMCS APSのadaptation_parameter_set_idを指定する。LMCS_APSに等しいaps_params_type及びph_lmcs_aps_idに等しいadaptation_parameter_set_idを有するAPS NALユニットのTemporalIdは、PHに関連したピクチャのTemporalIdよりも小さいか又は等しくなければならない。
1に等しいph_chroma_residual_scale_flagは、クロマ残差スケーリングがPHに関連した全スライスに有効にされることを指定する。0に等しいph_chroma_residual_scale_flagは、クロマ残差スケーリングがPHに関連した1つ以上又は全てのスライスに無効にされ得ることを指定する。ph_chroma_residual_scale_flagが存在しない場合に、それは0に等しいと推測される。
1に等しいph_scaling_list_present_flagは、PHに関連したスライスに使用されるスケーリングリストデータが、参照されたスケーリングリストAPSに含まれるスケーリングリストデータに基づき導出されることを指定する。0に等しいph_scaling_list_present_flagは、PHに関連したスライスに使用されるスケーリングリストデータが16に等しくセットされることを指定する。存在しない場合に、ph_scaling_list_present_flagの値は0に等しいと推測される。
ph_scaling_list_aps_idは、スケーリングリストAPSのadaptation_parameter_set_idを指定する。SCALING_APSに等しいaps_params_type及びph_scaling_list_aps_idに等しいadaptation_parameter_set_idを有するAPS NALユニットのTemporalIdは、PHに関連したピクチャのTemporalIdよりも小さいか又は等しくなければならない。
1に等しいph_virtual_boundaries_present_flagは、仮想境界の情報がPHでシグナリングされることを指定する。0に等しいph_virtual_boundaries_present_flagは、仮想境界の情報がPHでシグナリングされないことを指定する。1つ又は1つよりも多い仮想境界がPHでシグナリングされる場合に、インループフィルタリング動作は、ピクチャ内の仮想境界にわたって無効にされる。インループフィルタリング動作は、デブロッキングフィルタ動作、サンプル適応オフセットフィルタ動作、及び適応ループフィルタ動作を含む。存在しない場合に、ph_virtual_boundaries_present_flagの値は0に等しいと推測される。
ビットストリームコンフォーマンスの要件は、subpic_info_present_flagが1に等しい場合に、ph_virtual_boundaries_present_flagの値が0に等しくなければならないことである。
変数VirtualBoundariesPresentFlagは、次の通りに導出される:
【数8】
ph_num_ver_virtual_boundariesは、PHに存在するph_virtual_boundaries_pos_x[i]のシンタックス要素の数を指定する。ph_num_ver_virtual_boundariesが存在しない場合に、それは0に等しいと推測される。
変数NumVerVirtualBoundariesは、次の通りに導出される:
【数9】
ph_virtual_boundaries_pos_x[i]は、8で除されたルーマサンプルの単位でのi番目の垂直仮想境界の位置を指定する。ph_virtual_boundaries_pos_x[i]の値は1以上Ceil(pic_width_in_luma_samples÷8)-1以下の範囲内になければならない。
リストVirtualBoundariesPosX[i]は、0以上NumVerVirtualBoundaries-1以下の範囲をとるiについて、ルーマサンプルの単位で垂直仮想境界の位置を指定し、次の通りに導出される:
【数10】
任意の2つの垂直仮想境界の間の距離は、CtbSizeYルーマサンプル以上でなければならない。
ph_num_hor_virtual_boundariesは、PHに存在するph_virtual_boundaries_pos_y[i]のシンタックス要素の数を指定する。ph_num_hor_virtual_boundariesが存在しない場合に、それは0に等しいと推測される。
パラメータNumHorVirtualBoundariesは、次の通りに導出される:
【数11】
sps_virtual_boundaries_enabled_flagが1に等しく、ph_virtual_boundaries_present_flagが1に等しい場合に、ph_num_ver_virtual_boundariesとph_num_hor_virtual_boundariesとの和は0よりも大きくなければならない。
ph_virtual_boundaries_pos_y[i]は、8で除されたルーマサンプルの単位でのi番目の水平仮想境界の位置を指定する。ph_virtual_boundaries_pos_y[i]の値は1以上Ceil(pic_height_in_luma_samples÷8)-1以下でなければならない。
リストVirtualBoundariesPosY[i]は、0以上NumHorVirtualBoundaries-1以下の範囲をとるiについて、ルーマサンプルの単位で水平仮想境界の位置を指定し、次の通りに導出される:
【数12】
任意の2つの水平仮想境界の間の距離は、CtbSizeYルーマサンプル以上でなければならない。
pic_output_flagは、付録C指定されている復号されたピクチャの出力及び除去プロセスに作用する。pic_output_flagが存在しない場合に、それは1に等しいと推測される。
1に等しいpartition_constraints_override_flagは、パーティション制約パラメータがPHに存在することを指定する。0に等しいpartition_constraints_override_flagは、パーティション制約パラメータがPHに存在しないことを指定する。存在しない場合に、partition_constraints_override_flagの値は0に等しいと推測される。
ph_log2_diff_min_qt_min_cb_intra_slice_lumaは、CTUの四分木分割により得られるルーマリーフブロックのルーマサンプルでの最小サイズの2を底とする対数と、PHに関連した2(I)に等しいslice_typeを有するスライス内のルーマCUのルーマサンプルでの最小コーディングブロックサイズの2を底とする対数との間の差を指定する。ph_log2_diff_min_qt_min_cb_intra_slice_lumaの値は、0以上CtbLog2SizeY-MinCbLog2SizeY以下の範囲内になければならない。存在しない場合に、ph_log2_diff_min_qt_min_cb_lumaの値は、sps_log2_diff_min_qt_min_cb_intra_slice_lumaに等しいと推測される。
ph_max_mtt_hierarchy_depth_intra_slice_lumaは、PHに関連した2(I)に等しいslice_typeを有するスライス内の四分木リーフのマルチタイプツリー分割により得られるコーディングユニットの最大ヒエラルキデプスを指定する。ph_max_mtt_hierarchy_depth_intra_slice_lumaの値は、0以上2*(CtbLog2SizeY-MinCbLog2SizeY)以下の範囲内になければならない。存在しない場合に、ph_max_mtt_hierarchy_depth_intra_slice_lumaの値は、sps_max_mtt_hierarchy_depth_intra_slice_lumaに等しいと推測される。
ph_log2_diff_max_bt_min_qt_intra_slice_lumaは、二分木分割を用いて分割され得るルーマコーディングブロックのルーマサンプルでの最大サイズ(幅又は高さ)の2を底とする対数と、PHに関連した2(I)に等しいslice_typeを有するスライス内のCTUの四分木分割により得られるルーマリーフブロックのルーマサンプルでの最小サイズ(幅又は高さ)との間の差を指定する。ph_log2_diff_max_bt_min_qt_intra_slice_lumaの値は、0以上CtbLog2SizeY-MinQtLog2SizeIntraY以下の範囲内になければならない。存在しない場合に、ph_log2_diff_max_bt_min_qt_intra_slice_lumaの値は、sps_log2_diff_max_bt_min_qt_intra_slice_lumaに等しいと推測される。
ph_log2_diff_max_tt_min_qt_intra_slice_lumaは、三分木分割を用いて分割され得るルーマコーディングブロックのルーマサンプルでの最大サイズ(幅又は高さ)の2を底とする対数と、PHに関連した2(I)に等しいslice_typeを有するスライス内のCTUの四分木分割により得られるルーマリーフブロックのルーマサンプルでの最小サイズ(幅又は高さ)との間の差を指定する。ph_log2_diff_max_tt_min_qt_intra_slice_lumaの値は、0以上CtbLog2SizeY-MinQtLog2SizeIntraY以下の範囲内になければならない。存在しない場合に、ph_log2_diff_max_tt_min_qt_intra_slice_lumaの値は、sps_log2_diff_max_tt_min_qt_intra_slice_lumaに等しいと推測される。
ph_log2_diff_min_qt_min_cb_intra_slice_chromaは、DUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCTUの四分木分割により得られるクロマリーフブロックのルーマサンプルでの最小サイズの2を底とする対数と、PHに関連した2(I)に等しいslice_typeを有するスライス内のDUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCTUのルーマサンプルでの最小コーディングブロックサイズの2を底とする対数との間の差を指定する。ph_log2_diff_min_qt_min_cb_intra_slice_chromaの値は、0以上CtbLog2SizeY-MinCbLog2SizeY以下の範囲内になければならない。存在しない場合に、ph_log2_diff_min_qt_min_cb_intra_slice_chromaの値は、sps_log2_diff_min_qt_min_cb_intra_slice_chromaに等しいと推測される。
ph_max_mtt_hierarchy_depth_intra_slice_chromaは、PHに関連した2(I)に等しいslice_typeを有するスライス内のDUAL_TREE_CHROMAに等しいtreeTypeを有するクロマ四分木リーフのマルチタイプツリー分割により得られるクロマコーディングユニットの最大ヒエラルキデプスを指定する。ph_max_mtt_hierarchy_depth_intra_slice_chromaの値は、0以上2*(CtbLog2SizeY-MinCbLog2SizeY)以下の範囲内になければならない。存在しない場合に、ph_max_mtt_hierarchy_depth_intra_slice_chromaの値は、sps_max_mtt_hierarchy_depth_intra_slice_chromaに等しいと推測される。
ph_log2_diff_max_bt_min_qt_intra_slice_chromaは、二分木分割を用いて分割され得るクロマコーディングブロックのルーマサンプルでの最大サイズ(幅又は高さ)の2を底とする対数と、PHに関連した2(I)に等しいslice_typeを有するスライス内のDUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCTUの四分木分割により得られるクロマリーフブロックのルーマサンプルでの最小サイズ(幅又は高さ)との間の差を指定する。ph_log2_diff_max_bt_min_qt_intra_slice_chromaの値は、0以上CtbLog2SizeY-MinQtLog2SizeIntraC以下の範囲内になければならない。存在しない場合に、ph_log2_diff_max_bt_min_qt_intra_slice_chromaの値は、sps_log2_diff_max_bt_min_qt_intra_slice_chromaに等しいと推測される。
ph_log2_diff_max_tt_min_qt_intra_slice_chromaは、三分木分割を用いて分割され得るクロマコーディングブロックのルーマサンプルでの最大サイズ(幅又は高さ)の2を底とする対数と、PHに関連した2(I)に等しいslice_typeを有するスライス内のDUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCTUの四分木分割により得られるクロマリーフブロックのルーマサンプルでの最小サイズ(幅又は高さ)との間の差を指定する。ph_log2_diff_max_tt_min_qt_intra_slice_chromaの値は、0以上CtbLog2SizeY-MinQtLog2SizeIntraC以下の範囲内になければならない。存在しない場合に、ph_log2_diff_max_tt_min_qt_intra_slice_chromaの値は、sps_log2_diff_max_tt_min_qt_intra_slice_chromaに等しいと推測される。
ph_cu_qp_delta_subdiv_intra_sliceは、cu_qp_delta_abs及びcu_qp_delta_sign_flagを運ぶイントラスライス内のコーディングユニットの最大cbSubdiv値を指定する。ph_cu_qp_delta_subdiv_intra_sliceの値は、0以上2*(CtbLog2SizeY-MinQtLog2SizeIntraY+ph_max_mtt_hierarchy_depth_intra_slice_luma)以下の範囲内になければならない。存在しない場合に、ph_cu_qp_delta_subdiv_intra_sliceの値は0に等しいと推測される。
ph_cu_chroma_qp_offset_subdiv_intra_sliceは、cu_chroma_qp_offset_flagを運ぶイントラスライス内のコーディングユニットの最大cbSubdiv値を指定する。ph_cu_chroma_qp_offset_subdiv_intra_sliceの値は、0以上2*(CtbLog2SizeY-MinQtLog2SizeIntraY+ph_max_mtt_hierarchy_depth_intra_slice_luma)以下の範囲内になければならない。存在しない場合に、ph_cu_chroma_qp_offset_subdiv_intra_sliceの値は0に等しいと推測される。
ph_log2_diff_min_qt_min_cb_inter_sliceは、CTUの四分木分割により得られるルーマリーフブロックのルーマサンプルでの最小サイズの2を底とする対数と、PHに関連した0(B)又は1(P)に等しいslice_typeを有するスライス内のルーマCUのルーマサンプルでの最小ルーマコーディングブロックサイズの2を底とする対数との間の差を指定する。ph_log2_diff_min_qt_min_cb_inter_sliceの値は、0以上CtbLog2SizeY-MinCbLog2SizeY以下の範囲内になければならない。存在しない場合に、ph_log2_diff_min_qt_min_cb_lumaの値は、sps_log2_diff_min_qt_min_cb_inter_sliceに等しいと推測される。
ph_max_mtt_hierarchy_depth_inter_sliceは、PHに関連した0(B)又は1(P)に等しいslice_typeを有するスライス内の四分木リーフのマルチタイプツリー分割により得られるコーディングユニットの最大ヒエラルキデプスを指定する。ph_max_mtt_hierarchy_depth_inter_sliceの値は、0以上2*(CtbLog2SizeY-MinCbLog2SizeY)以下の範囲内になければならない。存在しない場合に、ph_max_mtt_hierarchy_depth_inter_sliceの値は、sps_max_mtt_hierarchy_depth_inter_sliceに等しいと推測される。
ph_log2_diff_max_bt_min_qt_inter_sliceは、二分木分割を用いて分割され得るルーマコーディングブロックのルーマサンプルでの最大サイズ(幅又は高さ)の2を底とする対数と、PHに関連した0(B)又は1(P)に等しいslice_typeを有するスライス内のCTUの四分木分割により得られるルーマリーフブロックのルーマサンプルでの最小サイズ(幅又は高さ)との間の差を指定する。ph_log2_diff_max_bt_min_qt_inter_sliceの値は、0以上CtbLog2SizeY-MinQtLog2SizeInterY以下の範囲内になければならない。存在しない場合に、ph_log2_diff_max_bt_min_qt_inter_sliceの値は、sps_log2_diff_max_bt_min_qt_inter_sliceに等しいと推測される。
ph_log2_diff_max_tt_min_qt_inter_sliceは、三分木分割を用いて分割され得るルーマコーディングブロックのルーマサンプルでの最大サイズ(幅又は高さ)の2を底とする対数と、PHに関連した0(B)又は1(P)に等しいslice_typeを有するスライス内のCTUの四分木分割により得られるルーマリーフブロックのルーマサンプルでの最小サイズ(幅又は高さ)との間の差を指定する。ph_log2_diff_max_tt_min_qt_inter_sliceの値は、0以上CtbLog2SizeY-MinQtLog2SizeInterY以下の範囲内になければならない。存在しない場合に、ph_log2_diff_max_tt_min_qt_inter_sliceの値は、sps_log2_diff_max_tt_min_qt_inter_sliceに等しいと推測される。
ph_cu_qp_delta_subdiv_inter_sliceは、インタースライスでcu_qp_delta_abs及びcu_qp_delta_sign_flagを運ぶコーディングユニットの最大cbSubdiv値を指定する。ph_cu_qp_delta_subdiv_inter_sliceの値は、0以上2*(CtbLog2SizeY-MinQtLog2SizeInterY+ph_max_mtt_hierarchy_depth_inter_slice)以下の範囲内になければならない。存在しない場合に、ph_cu_qp_delta_subdiv_inter_sliceの値は0に等しいと推測される。
ph_cu_chroma_qp_offset_subdiv_inter_sliceは、cu_chroma_qp_offset_flagを運ぶインタースライス内のコーディングユニットの最大cbSubdiv値を指定する。ph_cu_chroma_qp_offset_subdiv_inter_sliceの値は、0以上2*(CtbLog2SizeY-MinQtLog2SizeInterY+ph_max_mtt_hierarchy_depth_inter_slice)以下の範囲内になければならない。存在しない場合に、ph_cu_chroma_qp_offset_subdiv_inter_sliceの値は0に等しいと推測される。
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に等しくなければならない。
サブブロックベースのマージMVP候補の最大数は、次の通りに導出される:
if(sps_affine_enabled_flag)
MaxNumSubblockMergeCand
=5-five_minus_max_num_subblock_merge_cand (88)
else
MaxNumSubblockMergeCand
=sps_sbtmvp_enabled_flag&&ph_temporal_mvp_enable_flag
MaxNumSubblockMergeCandの値は、0以上5以下の範囲内になければならない。
1に等しいph_collocated_from_l0_flagは、時間動きベクトル予測に使用されるコロケートされたピクチャが参照ピクチャリスト0から導出されることを指定する。0に等しいph_collocated_from_l0_flagは、時間動きベクトル予測に使用されるコロケートされたピクチャが参照ピクチャリスト1から導出されることを指定する。
ph_collocated_ref_idxは、時間動きベクトル予測に使用されるコロケートされたピクチャの参照インデックスを指定する。
ph_collocated_from_l0_flagが1に等しい場合に、ph_collocated_ref_idxは、参照ピクチャリスト0のエントリを参照し、ph_collocated_ref_idxの値は0以上num_ref_entries[0][RplsIdx[0]]-1以下の範囲内になければならない。
ph_collocated_from_l0_flagが0に等しい場合に、ph_collocated_ref_idxは、参照ピクチャリスト1のエントリを参照し、ph_collocated_ref_idxの値は0以上num_ref_entries[1][RplsIdx[1]]-1以下の範囲内になければならない。
存在しない場合に、ph_collocated_ref_idxの値は、0に等しいと推測される。
1に等しいmvd_l1_zero_flagは、mvd_coding(x0,y0,1)シンタックス構造がパースされず、MvdL1[x0][y0][compIdx]及びMvdCpL1[x0][y0][cpIdx][compIdx]がcompIdx=0..1及びcpIdx=0..2について0に等しくセットされることを示す。0に等しいmvd_l1_zero_flagは、mvd_coding(x0,y0,1)シンタックス構造がパースされることを示す。
1に等しいph_fpel_mmvd_enabled_flagは、動きベクトル差分によるマージモードがPHに関連したスライスにおいて整数サンプル精度を使用することを指定する。0に等しいph_fpel_mmvd_enabled_flagは、動きベクトル差分によるマージモードPHに関連したスライスにおいて分数サンプル精度を使用することができることを指定する。存在しない場合に、ph_fpel_mmvd_enabled_flagの値は0であると推測される。
1に等しいph_disable_bdof_flagは、双方向オプティカルフローインター予測に基づいたインター双予測がPHに関連したスライスにおいて無効にされることを指定する。0に等しいph_disable_bdof_flagは、双方向オプティカルフローインター予測に基づいたインター双予測がPHに関連したスライスにおいて有効にされてもされなくてもよいことを指定する。
ph_disable_bdof_flagが存在しない場合に、次が適用される:
- sps_bdof_enabled_flagが1に等しい場合に、ph_disable_bdof_flagの値は0に等しいと推測される。
- そうではない(sps_bdof_enabled_flagが0に等しい)場合に、ph_disable_bdof_flagの値は1に等しいと推測される。
1に等しいph_disable_dmvr_flagは、デコーダ動きベクトル精緻化に基づいたインター双予測がPHに関連したスライスにおいて無効にされることを指定する。0に等しいph_disable_dmvr_flagは、デコーダ動きベクトル精緻化に基づいたインター双予測がPHに関連したスライスにおいて有効にされてもされなくてもよいことを指定する。
ph_disable_dmvr_flagが存在しない場合に、次が適用される:
- sps_dmvr_enabled_flagが1に等しい場合に、ph_disable_dmvr_flagの値は0に等しいと推測される。
- そうではない(sps_dmvr_enabled_flagが0に等しい)場合に、ph_disable_dmvr_flagの値は1に等しいと推測される。
1に等しいph_disable_prof_flagは、オプティカルフローによる予測精緻化がPHに関連したスライスにおいて無効にされることを指定する。0に等しいph_disable_prof_flagは、オプティカルフローによる予測精緻化がPHに関連したスライスにおいて有効にされてもされなくてもよいことを指定する。
ph_disable_prof_flagが存在しない場合に、次が適用される:
- sps_affine_prof_enabled_flagが1に等しい場合に、ph_disable_prof_flagの値は0に等しいと推測される。
- そうではない(sps_affine_prof_enabled_flagが0に等しい)場合に、ph_disable_prof_flagの値は1に等しいと推測される。
ph_qp_deltaは、コーディングユニットレイヤにおいてCuQpDeltaValの値によって変更されるまでピクチャ内のコーディングブロックに使用されるQp
Yの初期値を指定する。
qp_delta_info_in_ph_flagが1に等しい場合に、ピクチャの全スライスのためのQp
Y量子化パラメータの初期値SliceQp
Yは、次の通りに導出される:
SliceQp
Y=26+init_qp_minus26+ph_qp_delta (89)
SliceQp
Yの値は、-QpBdOffset以上+63以下の範囲内になければならない。
ph_joint_cbcr_sign_flagは、1に等しいtu_joint_cbcr_residual_flag[x0][y0]を有する変換ユニットで、両方のクロマ成分のコロケートされた残差サンプルが逆の符号を有するかどうかを指定する。変換ユニットの1に等しいtu_joint_cbcr_residual_flag[x0][y0]、及び0に等しいph_joint_cbcr_sign_flagは、Cr(又はCb)成分の各残差サンプルの符号がコロケートされたCb(又はCr)の残差サンプルの符号と同じであることを指定し、1に等しいph_joint_cbcr_sign_flagは、Cr(又はCb)の各残差サンプルの符号がコロケートされたCb(又はCr)の残差サンプルの反対の符号で与えられることを指定する。
1に等しいph_sao_luma_enabled_flagは、SAOがPHに関連した全スライスのルーマ成分に対して有効にされることを指定し、0に等しいph_sao_luma_enabled_flagは、ルーマ成分のためのSAOがPHに関連した1つ以上又は全てのスライスに対して無効にされ得ることを指定する。ph_sao_luma_enabled_flagが存在しない場合に、それは0に等しいと推測される。
1に等しいph_sao_chroma_enabled_flagは、SAOがPHに関連した全スライスのクロマ成分に対して有効にされることを指定し、0に等しいph_sao_chroma_enabled_flagは、クロマ成分のためのSAOがPHに関連した1つ以上又は全てのスライスに対して無効にされ得ることを指定する。ph_sao_chroma_enabled_flagが存在しない場合に、それは0に等しいと推測される。
0に等しいph_dep_quant_enabled_flagは、依存的量子化が現在のピクチャに対して無効にされることを指定する。1に等しいph_dep_quant_enabled_flagは、依存的量子化が現在のピクチャに対して有効にされることを指定する。ph_dep_quant_enabled_flagが存在しない場合に、それは0に等しいと推測される。
0に等しいpic_sign_data_hiding_enabled_flagは、符号ビット隠しが現在のピクチャに対して無効にされることを指定する。1に等しいpic_sign_data_hiding_enabled_flagは、符号ビット隠しが現在のピクチャに対して有効にされることを指定する。pic_sign_data_hiding_enabled_flagが存在しない場合に、それは0に等しいと推測される。
1に等しいph_deblocking_filter_override_flagは、デブロッキングパラメータがPHに存在することを指定する。0に等しいph_deblocking_filter_override_flagは、デブロッキングパラメータがPHに存在しないことを指定する。存在しない場合に、ph_deblocking_filter_override_flagの値は0に等しいと推測される。
1に等しいph_deblocking_filter_disabled_flagは、デブロッキングフィルタの動作がPHに関連したスライスに適用されないことを指定する。0に等しいph_deblocking_filter_disabled_flagは、デブロッキングフィルタの動作がPHに関連したスライスに適用されることを指定する。ph_deblocking_filter_disabled_flagが存在しない場合に、それはps_deblocking_filter_disabled_flagに等しいと推測される。
ph_beta_offset_div2及びph_tc_offset_div2は、PHに関連したスライスのルーマ成分に適用されるPβ及びtC(2で除される)のデブロッキングパラメータオフセットを指定する。ph_beta_offset_div2及びph_tc_offset_div2の値は両方とも-12以上+12以下の範囲内になければならない。存在しない場合に、ph_beta_offset_div2及びph_tc_offset_div2の値は、pps_beta_offset_div2及びpps_tc_offset_div2に夫々等しいと推測される。
ph_cb_beta_offset_div2及びph_cb_tc_offset_div2は、PHに関連したスライスのCb成分に適用されるPβ及びtC(2で除される)のデブロッキングパラメータオフセットを指定する。ph_cb_beta_offset_div2及びph_cb_tc_offset_div2の値は両方とも-12以上+12以下の範囲内になければならない。存在しない場合に、ph_cb_beta_offset_div2及びph_cb_tc_offset_div2の値は、pps_cb_beta_offset_div2及びpps_cb_tc_offset_div2に夫々等しいと推測される。
ph_cr_beta_offset_div2及びph_cr_tc_offset_div2は、PHに関連したスライスのCr成分に適用されるPβ及びtC(2で除される)のデブロッキングパラメータオフセットを指定する。ph_cr_beta_offset_div2及びph_cr_tc_offset_div2の値は両方とも-12以上+12以下の範囲内になければならない。存在しない場合に、ph_cr_beta_offset_div2及びph_cr_tc_offset_div2の値は、pps_cr_beta_offset_div2及びpps_cr_tc_offset_div2に夫々等しいと推測される。
ph_extension_lengthは、ph_extension_lengthそれ自体をシグナリングするために使用されるビットを含まないバイトでのPH拡張データの長さを指定する。ph_extension_lengthの値は0以上256以下の範囲内になければならない。存在しない場合に、ph_extension_lengthの値は0に等しいと推測される。
ph_extension_data_byteは、は如何なる値も有し得る。この仕様のこのバージョンに従うデコーダは、ph_extension_data_byteの値を無視すべきである。その値は、この仕様のこのバージョンで指定されているプロファイルへのデコーダの準拠に影響を及ぼさない。
【0044】
[3.6,SHシンタックス及びセマンティクス]
最新のVVC草案テキストでは、SHのシンタックス及びセマンティクスは次の通りである:
【表12】
cu_qp_delta_absを含むコーディングユニットのルーマ量子化パラメータとその予測との間の差を指定する変数CuQpDeltaValは、0に等しくセットされる。cu_chroma_qp_offset_flagを含むコーディングユニットのQp′
Cb、Qp′
Cr、及びQp′
CbCr量子化パラメータの各々の値を決定するときに使用される値を指定する変数CuQpOffset
Cb、CuQpOffset
Cr、及びCuQpOffset
CbCrは全て、0に等しくセットされる。
1に等しいpicture_header_in_slice_header_flagは、PHシンタックス構造がスライスヘッダに存在することを指定する。0に等しいpicture_header_in_slice_header_flagは、PHシンタックス構造がスライスヘッダに存在しないことを指定する。
ビットストリームコンフォーマンスの要件は、picture_header_in_slice_header_flagの値がCLVS内の全てのコーディングされたスライスで同じでなければならないことである。
picture_header_in_slice_header_flagがコーディングされたスライスについて1に等しい場合に、ビットストリームコンフォーマンスの要件は、PH_NUTに等しいnal_unit_typeを有するVCL NALユニットがCLVSに存在してはならないことである。
picture_header_in_slice_header_flagが0に等しい場合に、現在のピクチャ内の全てのコーディングされたスライスは、0に等しいpicture_header_in_slice_header_flagを有するべきであり、現在のPUはPH NALユニットを有するべきである。
slice_subpic_idは、スライスを含むサブピクチャのサブピクチャIDを指定する。slice_subpic_idが存在する場合に、変数CurrSubpicIdxの値は、SubpicIdVal[CurrSubpicIdx]がslice_subpic_idに等しくなるように導出される。そうでない(slice_subpic_idが存在しない)場合に、CurrSubpicIdxは、0に等しいよう導出される。slice_subpic_idの長さは、sps_subpic_id_len_minus1+1ビットである。
slice_addressは、スライスのスライスアドレスを指定する。存在しない場合に、slice_addressの値は0に等しいと推測される。rect_slice_flagが1に等しく、NumSlicesInSubpic[CurrSubpicIdx]が1に等しい場合に、slice_addressの値は0に等しいと推測される。
rect_slice_flagが0に等しい場合に、次が適用される:
- スライスアドレスは、ラスタスキャンタイルインデックスである。
- slice_addressの長さは、Ceil(Log2(NumTilesInPic))ビットである。
- slice_addressの値は、0以上NumTilesInPic-1以下の範囲内になければならない。
そうでない(rect_slice_flagが1に等しい)場合に、次が適用される:
- スライスアドレスは、スライスのサブピクチャレベルのスライスインデックスである。
- slice_addressの長さは、Ceil(Log2(NumSlicesInSubpic[CurrSubpicIdx]))ビットである。
- slice_addressの値は、0以上NumSlicesInSubpic[CurrSubpicIdx]-1以下の範囲内になければならない。
ビットストリームコンフォーマンスの要件は、次の制約が適用されることである:
- rect_slice_flagが0に等しいか、又はsubpic_info_present_flagが0に等しい場合に、slice_addressの値は、同じコーディングされたピクチャのいずれかの他のコーディングされたスライスNALユニットのslice_addressの値に等しくてはならない。
- 上記以外の場合に、slice_subpic_idとslice_addressとの値の対は、同じコーディングされたピクチャのいずれかの他のコーディングされたスライスNALユニットのslice_subpic_idとslice_addressとの値の対と等しくてはならない。
- ピクチャのスライスの形状は、各CTUが、復号される場合に、ピクチャ境界から成るか又は前に復号されたCTUの境界から成るその左境界全体及び上境界全体を有するようなものであるべきである。
sh_extra_bit[i]は、1又は0に等しくてよい。この仕様のこのバージョンに従うデコーダは、sh_extra_bit[i]の値を無視すべきである。その値は、この仕様のこのバージョンで指定されているプロファイルへのデコーダの準拠に影響を及ぼさない。
num_tiles_in_slice_minus1に1をプラスしたものは、存在する場合に、スライス内のタイルの数を指定する。num_tiles_in_slice_minus1の値は、0以上NumTilesInPic-1以下の範囲内になければならない。
現在のスライス内のCTUの数を指定する変数NumCtusInCurrSliceと、0以上NumCtusInCurrSlice-1以下の範囲内のiについて、スライス内のi番目のCTBのピクチャラスタスキャンアドレスを指定するリストCtbAddrInCurrSlice[i]とは、次の通りに導出される:
【数13】
変数SubpicLeftBoundaryPos、SubpicTopBoundaryPos、SubpicRightBoundaryPos、及びSubpicBotBoundaryPosは、次の通りに導出される:
【数14】
slice_typeは、表9に従ってスライスのコーディングタイプを指定する。
【表13】
存在しない場合に、slice_typeの値は2に等しいと推測される。
ph_intra_slice_allowed_flagが0に等しい場合に、slice_typeの値は0又は1に等しくなければならない。nal_unit_typeがIDR_W_RADL以上CRA_NUT以下の範囲内にあり、vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が1に等しい場合に、slice_typeは2に等しくなければならない。
変数MinQtLog2SizeY、MinQtLog2SizeC、MinQtSizeY、MinQtSizeC、MaxBtSizeY、MaxBtSizeC、MinBtSizeY、MaxTtSizeY、MaxTtSizeC、MinTtSizeY、MaxMttDepthY、及びMaxMttDepthCは、次の通りに導出される:
- slice_typeが2(I)に等しい場合に、次が適用される
【数15】
- そうでない(slice_typeが0(B)又は1(P)に等しい)場合に、次が適用される:
【数16】
- 次が適用される:
【数17】
1に等しいslice_alf_enabled_flagは、適応ループフィルタが有効にされ、スライス内のY、Cb、又はCr色成分に適用され得ることを指定する。0に等しいslice_alf_enabled_flagは、適応ループフィルタがスライス内の全ての色成分に対して無効にされることを指定する。存在しない場合に、slice_alf_enabled_flagの値は、ph_alf_enabled_flagに等しいと推測される。
slice_num_alf_aps_ids_lumaは、スライスが参照するALF APSの数を指定する。slice_alf_enabled_flagが1に等しく、slice_num_alf_aps_ids_lumaが存在しない場合に、slice_num_alf_aps_ids_lumaの値は、ph_num_alf_aps_ids_lumaの値に等しいと推測される。
slice_alf_aps_id_luma[i]は、スライスのルーマ成分が参照するi番目のALF APSのadaptation_parameter_set_idを指定する。ALF_APSに等しいaps_params_type及びslice_alf_aps_id_luma[i]に等しいadaptation_parameter_set_idを有するAPS NALユニットのTemporalIdは、コーディングされたスライスNALユニットのTemporalIdよりも小さいか又は等しくなければならない。slice_alf_enabled_flagが1に等しく、slice_alf_aps_id_luma[i]が存在しない場合に、slice_alf_aps_id_luma[i]の値は、ph_alf_aps_id_luma[i]の値に等しいと推測される。
LF_APSに等しいaps_params_type及びslice_alf_aps_id_luma[i]に等しいadaptation_parameter_set_idを有するAPS NALユニットのalf_luma_filter_signal_flagの値は、1に等しくなければならない。
0に等しいslice_alf_chroma_idcは、適応ループフィルタがCb及びCr色成分に適用されないことを指定する。1に等しいslice_alf_chroma_idcは、適応ループフィルタがCb色成分に適用されることを指定する。2に等しいslice_alf_chroma_idcは、適応ループフィルタがCr色成分に適用されることを指定する。3に等しいslice_alf_chroma_idcは、適応ループフィルタがCb及びCr色成分に適用されることを指定する。slice_alf_chroma_idcが存在しない場合に、それはph_alf_chroma_idcに等しいと推測される。
slice_alf_aps_id_chromaは、スライスのクロマ成分が参照するALF APSのadaptation_parameter_set_idを指定する。ALF_APSに等しいaps_params_type及びslice_alf_aps_id_chromaに等しいadaptation_parameter_set_idを有するAPS NALユニットのTemporalIdは、コーディングされたスライスNALユニットのTemporalIdよりも小さいか又は等しくなければならない。slice_alf_enabled_flagが1に等しく、slice_alf_aps_id_chromaが存在しない場合に、slice_alf_aps_id_chromaの値は、ph_alf_aps_id_chromaの値に等しいと推測される。
ALF_APSに等しいaps_params_type及びslice_alf_aps_id_chromaに等しいadaptation_parameter_set_idを有するAPS NALユニットのalf_chroma_filter_signal_flagの値は、1に等しくなければならない。
0に等しいslice_cc_alf_cb_enabled_flagは、クロスコンポーネントフィルタがCb色成分に適用されないことを指定する。1に等しいslice_cc_alf_cb_enabled_flagは、クロスコンポーネントフィルタが有効にされ、Cb色成分に適用され得ることを指定する。slice_cc_alf_cb_enabled_flagが存在しない場合に、それはph_cc_alf_cb_enabled_flagに等しいと推測される。
slice_cc_alf_cb_aps_idは、スライスのCb色成分が参照するadaptation_parameter_set_idを指定する。ALF_APSに等しいaps_params_type及びslice_cc_alf_cb_aps_idに等しいadaptation_parameter_set_idを有するAPS NALユニットのTemporalIdは、コーディングされたスライスNALユニットのTemporalIdよりも小さいか又は等しくなければならない。slice_cc_alf_cb_enabled_flagが1に等しく、slice_cc_alf_cb_aps_idが存在しない場合に、slice_cc_alf_cb_aps_idの値は、ph_cc_alf_cb_aps_idの値に等しいと推測される。
ALF_APSに等しいaps_params_type及びslice_cc_alf_cb_aps_idに等しいadaptation_parameter_set_idを有するAPS NALユニットのalf_cc_cb_filter_signal_flagの値は、1に等しくなければならない。
0に等しいslice_cc_alf_cr_enabled_flagは、クロスコンポーネントフィルタがCr色成分に適用されないことを指定する。1に等しいslice_cc_alf_cb_enabled_flagは、クロスコンポーネントフィルタが有効にされ、Cr色成分に適用され得ることを指定する。slice_cc_alf_cr_enabled_flagが存在しない場合に、それはph_cc_alf_cr_enabled_flagに等しいと推測される。
slice_cc_alf_cr_aps_idは、スライスのCr色成分が参照するadaptation_parameter_set_idを指定する。ALF_APSに等しいaps_params_type及びslice_cc_alf_cr_aps_idに等しいadaptation_parameter_set_idを有するAPS NALユニットのTemporalIdは、コーディングされたスライスNALユニットのTemporalIdよりも小さいか又は等しくなければならない。slice_cc_alf_cr_enabled_flagが1に等しく、slice_cc_alf_cr_aps_idが存在しない場合に、slice_cc_alf_cr_aps_idの値は、ph_cc_alf_cr_aps_idの値に等しいと推測される。
ALF_APSに等しいaps_params_type及びslice_cc_alf_cr_aps_idに等しいadaptation_parameter_set_idを有するAPS NALユニットのalf_cc_cr_filter_signal_flagの値は、1に等しくなければならない。
colour_plane_idは、separate_colour_plane_flagが1に等しいときに、現在のスライスに関連した色平面を識別する。colour_plane_idの値は0以上2以下の範囲内になければならない。colour_plane_idの値0、1、及び2は夫々、Y、Cb、及びCr平面に対応する。colour_plane_idの値3は、ITU-T|ISO/IECによる将来の使用のためにリザーブされる。
注記1-1つのピクチャの異なる色平面の復号化プロセス間に依存関係はない。
1に等しいnum_ref_idx_active_override_flagは、シンタックス要素num_ref_idx_active_minus1[0]がPスライス及びBスライスについて存在し、シンタックス要素num_ref_idx_active_minus1[1]がBスライスについて存在することを指定する。0に等しいnum_ref_idx_active_override_flagは、シンタックス要素num_ref_idx_active_minus1[0]及びnum_ref_idx_active_minus1[1]が存在しないことを指定する。存在しない場合に、num_ref_idx_active_override_flagの値は1に等しいと推測される。
num_ref_idx_active_minus1[i]は、式143によって指定される変数NumRefIdxActive[i]の導出のために使用される。num_ref_idx_active_minus1[i]の値は0以上14以下の範囲内になければならない。
0又は1に等しいiについて、現在のスライスがBスライスであり、num_ref_idx_active_override_flagが1に等しく、num_ref_idx_active_minus1[i]が存在しない場合に、num_ref_idx_active_minus1[i]は0に等しいと推測される。
現在のスライスがPスライスであり、num_ref_idx_active_override_flagが1に等しく、num_ref_idx_active_minus1[0]が存在しない場合に、num_ref_idx_active_minus1[0]は0に等しいと推測される。
変数NumRefIdxActive[i]は、次の通りに導出される:
【数18】
NumRefIdxActive[i]-1の値は、スライスを復号するために使用され得る参照ピクチャリストiの最大参照インデックスを指定する。NumRefIdxActive[i]の値が0に等しい場合に、参照ピクチャリストiの参照インデックスは、スライスを復号するために使用され得ない。
現在のスライスがPスライスである場合に、NumRefIdxActive[0]の値は0よりも大きくなければならない。
現在のスライスがBスライスである場合に、NumRefIdxActive[0]及びNumRefIdxActive[1]は両方とも0よりも大きくなければならない。
cabac_init_flagは、コンテキスト変数の初期化プロセスで使用される初期化テーブルを決定する方法を指定する。cabac_init_flagが存在しない場合に、それは0に等しいと推測される。
1に等しいslice_collocated_from_l0_flagは、時間動きベクトル予測に使用されるコロケートされたピクチャが参照ピクチャリスト0から導出されることを指定する。0に等しいslice_collocated_from_l0_flagは、時間動きベクトル予測に使用されるコロケートされたピクチャが参照ピクチャリスト1から導出されることを指定する。
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に等しいと推測される。
slice_collocated_ref_idxは、時間動きベクトル予測に使用されるコロケートされたピクチャの参照インデックスを指定する。
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以下の範囲内になければならない。
slice_typeがBに等しくかつslice_collocated_from_l0_flagが0に等しい場合に、slice_collocated_ref_idxは参照ピクチャリスト1を参照し、slice_collocated_ref_idxの値は0以上NumRefIdxActive[1]-1以下の範囲内になければならない。
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に等しいと推測される。
ビットストリームコンフォーマンスの要件は、slice_collocated_ref_idxによって参照されるピクチャがコーディングされたピクチャの全スライスについて同じでなければならないことである。
ビットストリームコンフォーマンスの要件は、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に等しくなければならないことである。
slice_qp_deltaは、コーディングユニットレイヤでCuQpDeltaValの値によって変更されるまでスライス内のコーディングブロックに使用されるQp
Yの初期値を指定する。
qp_delta_info_in_ph_flagが0に等しい場合に、スライスのQp
Y量子化パラメータの初期値SliceQp
Yは、次の通りに導出される:
SliceQp
Y=26+init_qp_minus26+slice_qp_delta (144)
SliceQp
Yの値は、-QpBdOffset以上+63以下の範囲内になければならない。
次の条件:
- wp_info_in_ph_flagの値が1に等しく、pps_weighted_pred_flagが1に等しく、かつ、slice_typeがPに等しい。
- wp_info_in_ph_flagの値が1に等しく、pps_weighted_bipred_flagが1に等しく、かつ、slice_typeがBに等しい。
のどちらか一方が真である場合に、次が適用される:
- NumRefIdxActive[0]の値は、NumWeightsL0の値よりも小さいか又は等しくなければならない。
- iが0以上NumRefIdxActive[0]-1以下の範囲内にある各参照ピクチャインデックスRefPicList[0][i]について、参照ピクチャインデックスに適用されるルーマ重み、Cb重み、及びCr重みは夫々、LumaWeightL0[i]、ChromaWeightL0[0][i]、及びChromaWeightL0[1][i]である。
wp_info_in_ph_flagが1に等しく、pps_weighted_bipred_flagが1に等しく、slice_typeがBに等しい場合に、次が適用される:
- NumRefIdxActive[1]の値は、NumWeightsL1の値よりも小さいか又は等しくなければならない。
- iが0以上NumRefIdxActive[1]-1以下の範囲内にある各参照ピクチャインデックスRefPicList[1][i]について、参照ピクチャインデックスに適用されるルーマ重み、Cb重み、及びCr重みは夫々、LumaWeightL1[i]、ChromaWeightL1[0][i]、及びChromaWeightL1[1][i]である。
slice_cb_qp_offsetは、Qp′
Cb量子化パラメータの値を決定するときにpps_cb_qp_offsetの値に加えられる差を指定する。slice_cb_qp_offsetの値は-12以上+12以下の範囲内になければならない。slice_cb_qp_offsetが存在しない場合に、それは0に等しいと推測される。pps_cb_qp_offset+slice_cb_qp_offsetの値は-12以上+12以下の範囲内になければならない。
slice_cr_qp_offsetは、Qp′
Cr量子化パラメータの値を決定するときにpps_cr_qp_offsetの値に加えられる差を指定する。slice_cr_qp_offsetの値は-12以上+12以下の範囲内になければならない。slice_cr_qp_offsetが存在しない場合に、それは0に等しいと推測される。pps_cr_qp_offset+slice_cr_qp_offsetの値は-12以上+12以下の範囲内になければならない。
slice_joint_cbcr_qp_offsetは、Qp′
CbCrの値を決定するときにpps_joint_cbcr_qp_offset_valueの値に加えられる差を指定する。slice_joint_cbcr_qp_offsetの値は-12以上+12以下の範囲内になければならない。slice_joint_cbcr_qp_offsetが存在しない場合に、それは0に等しいと推測される。pps_joint_cbcr_qp_offset_value+slice_joint_cbcr_qp_offsetの値は-12以上+12以下の範囲内になければならない。
1に等しいcu_chroma_qp_offset_enabled_flagは、cu_chroma_qp_offset_flagが変換ユニット及びパレットコーディングシンタックスに存在する可能性があることを指定する。0に等しいcu_chroma_qp_offset_enabled_flagは、cu_chroma_qp_offset_flagが変換ユニット及びパレットコーディングシンタックスに存在しないことを指定する。存在しない場合に、cu_chroma_qp_offset_enabled_flagの値は0に等しいと推測される。
1に等しいslice_sao_luma_flagは、SAOが現在のスライス内のルーマ成分に対して有効にされることを指定し、0に等しいslice_sao_luma_flagは、SAOが現在のスライス内のルーマ成分に対して無効にされることを指定する。slice_sao_luma_flagが存在しない場合に、それはph_sao_luma_enabled_flagに等しいと推測される。
1に等しいslice_sao_chroma_flagは、SAOが現在のスライス内のクロマ成分に対して有効にされることを指定し、0に等しいslice_sao_chroma_flagは、SAOが現在のスライス内のクロマ成分に対して無効にされることを指定する。slice_sao_chroma_flagが存在しない場合に、それはph_sao_chroma_enabled_flagに等しいと推測される。
1に等しいslice_deblocking_filter_override_flagは、デブロッキングパラメータがスライスヘッダに存在することを指定する。0に等しいslice_deblocking_filter_override_flagは、デブロッキングパラメータがスライスヘッダに存在しないことを指定する。存在しない場合に、slice_deblocking_filter_override_flagの値は、ph_deblocking_filter_override_flagに等しいと推測される。
1に等しいslice_deblocking_filter_disabled_flagは、デブロッキングフィルタの動作が現在のスライスに適用されないことを指定する。0に等しいslice_deblocking_filter_disabled_flagは、デブロッキングフィルタの動作が現在のスライスに適用されることを指定する。slice_deblocking_filter_disabled_flagが存在しない場合に、それはph_deblocking_filter_disabled_flagに等しいと推測される。
slice_beta_offset_div2及びslice_tc_offset_div2は、現在のスライスのルーマ成分に適用されるβ及びtC(2で除される)のデブロッキングパラメータオフセットを指定する。slice_beta_offset_div2及びslice_tc_offset_div2の値は両方とも-12以上+12以下の範囲内になければならない。存在しない場合にslice_beta_offset_div2及びslice_tc_offset_div2の値は夫々、ph_beta_offset_div2及びph_tc_offset_div2に等しいと推測される。
slice_cb_beta_offset_div2及びslice_cb_tc_offset_div2は、現在のスライスのCb成分に適用されるβ及びtC(2で除される)のデブロッキングパラメータオフセットを指定する。slice_cb_beta_offset_div2及びslice_cb_tc_offset_div2の値は両方とも-12以上+12以下の範囲内になければならない。存在しない場合に、slice_cb_beta_offset_div2及びslice_cb_tc_offset_div2の値は夫々、ph_cb_beta_offset_div2及びph_cb_tc_offset_div2に等しいと推測される。
slice_cb_beta_offset_div2及びslice_cb_tc_offset_div2は、現在のスライスのCr成分に適用されるβ及びtC(2で除される)のデブロッキングパラメータオフセットを指定する。slice_cb_beta_offset_div2及びslice_cb_tc_offset_div2の値は両方とも-12以上+12以下の範囲内になければならない。存在しない場合に、slice_cb_beta_offset_div2及びslice_cb_tc_offset_div2の値は夫々、ph_cr_beta_offset_div2及びph_cr_tc_offset_div2に等しいと推測される。
1に等しいslice_ts_residual_coding_disabled_flagは、residual_coding( )シンタックス構造が、現在のスライスについて変換スキップブロックの残差サンプルをパースするために使用されることを指定する。0に等しいslice_ts_residual_coding_disabled_flagは、residual_ts_coding( )シンタックス構造が、現在のスライスについて変換スキップブロックの残差サンプルをパースするために使用されることを指定する。slice_ts_residual_coding_disabled_flagが存在しない場合に、それは0に等しいと推測される。
1に等しいslice_lmcs_enabled_flagは、クロマスケーリングを伴うルーママッピングが現在のスライスに対して有効にされることを指定する。0に等しいslice_lmcs_enabled_flagは、クロマスケーリングを伴うルーママッピングが現在のスライスに対して有効にされないことを指定する。slice_lmcs_enabled_flagが存在しない場合に、それは0に等しいと推測される。
1に等しいslice_scaling_list_present_flagは、現在のスライスに使用されるスケーリングリストが、SCALING_APSに等しいaps_params_type及びph_scaling_list_aps_idに等しいadaptation_parameter_set_idを有する参照されたスケーリングリストAPSに含まれるスケーリングリストデータに基づき、導出されることを指定する。0に等しいslice_scaling_list_present_flagは、現在のスライスに使用されるスケーリングリストが、第7.4.3.21節で定められているように導出されたデフォルトのスケーリングリストデータであることを指定する。存在しない場合に、slice_scaling_list_present_flagの値は0に等しいと推測される。
変数NumEntryPointsは、現在のスライス内のエントリポイントの数を指定し、次の通りに導出される:
【数19】
offset_len_minus1に1をプラスしたものは、entry_point_offset_minus1[i]シンタックス要素のビットでの長さを指定する。offset_len_minus1の値は0以上31以下の範囲内になければならない。
entry_point_offset_minus1[i]に1をプラスしたものは、バイトでi番目のエントリポイントを指定しoffset_len_minus1に1をプラスしたビット数で表現される。スライスヘッダに続くスライスデータは、0以上NumEntryPoints以下の範囲内のサブセットインデックス値を有するNumEntryPoints+1個のサブセットを含む。スライスデータの最初のバイトは、バイト0と見なされる。存在する場合に、コーディングされたスライスNALユニットのスライスデータ部分で現れるエミュレーション抑制バイト(EPB)は、サブセット識別のためにスライスデータの部分としてカウントされる。サブセット0は、コーディングされたスライスデータのバイト0以上entry_point_offset_minus1[0]以下から成り、サブセットkは、kが1以上NumEntryPoints-1以下の範囲内にあるとして、コーディングされたスライスデータのバイトfirstByte[k]以上lastByte[k]以下から成り、firstByte[k]及びlastByte[k]は、次の通りに定義される:
【数20】
最後のサブセット(NumEntryPointsに等しいサブセットインデックスを有する)は、コーディングされたスライスデータの残りのバイトから成る。
sps_entropy_coding_sync_enabled_flagが0に等しく、スライスが1つ以上の完全なタイルを含む場合に、各サブセットは、同じタイル内にあるスライス内の全CTUの全てのコーディングされたビットから成るべきであり、サブセットの数(つまり、NumEntryPoints+1の値)は、スライス内のタイルの数に等しくなければならない。
sps_entropy_coding_sync_enabled_flagが0に等しく、スライスが単一のタイルからのCTU行のサブセットを含む場合に、NumEntryPointsは0でなければならず、サブセットの数は1でなければならない。サブセットは、スライス内の全CTUの全てのコーディングされたビットから成るべきである。
sps_entropy_coding_sync_enabled_flagが1に等しい場合に、各サブセットkは、kが0以上NumEntryPoints以下の範囲内にある場合に、タイル内のCTU行の全CTUの全てのコーディングされたビットから成るべきであり、サブセットの数(つまり、NumEntryPoints+1の値は)、スライス内のタイル固有のCTU行の総数に等しくなければならない。
slice_header_extension_lengthは、slice_header_extension_lengthそれ自体をシグナリングするのに使用されるビットを含まない、バイトでのスライスヘッダ拡張データの長さを指定する。slice_header_extension_lengthの値は、0以上256以下の範囲内になければならない。存在しない場合に、slice_header_extension_lengthの値は0に等しいと推測される。
slice_header_extension_data_byte[i]は如何なる値も有し得る。この仕様のこのバージョンに従うデコーダは、全てのslice_header_extension_data_byte[i]シンタックス要素の値を無視すべきである。その値は、この仕様のこのバージョンで指定されているプロファイルへのデコーダの準拠に影響を及ぼさない。
【0045】
[3.7.変換ユニットシンタックス(スライスデータ)]
最新のVVC草案テキストでは、変換ユニットのシンタックス及びセマンティクスは次の通りである:
【表14】
変換係数レベルは、アレイTransCoeffLevel[x0][y0][cIdx][xC][yC]によって表現される。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対する、考えられている変換ブロックの左上ルーマサンプルの位置(x0,y0)を指定する。アレイインデックスcIdxは、色成分のインジケータを指定し、それはYについては0に、Cbについては1に、Crについては2に等しい。アレイインデックスxC及びyCは、現在の変換ブロック内の変換係数位置(xC,yC)を指定する。TransCoeffLevel[x0][y0][cIdx][xC][yC]の値が第7.3.10.11で指定されていないとき、それは0に等しいと推測される。
1に等しいtu_cbf_cb[x0][y0]は、Cb変換ブロックが、0に等しくない1つ以上の変換係数レベルを含むことを指定する。アレイインデックスx0、y0は、考えられている変換ブロックの左上位置(x0,y0)を指定する。
tu_cbf_cb[x0][y0]が存在しない場合に、その値は0に等しいと推測される。
1に等しいtu_cbf_cr[x0][y0]は、Cr変換ブロックが、0に等しくない1つ以上の変換係数レベルを含むことを指定する。アレイインデックスx0、y0は、考えられている変換ブロックの左上位置(x0,y0)を指定する。
tu_cbf_cr[x0][y0]が存在しない場合に、その値は0に等しいと推測される。
1に等しいtu_cbf_luma[x0][y0]は、ルーマ変換ブロックが、0に等しくない1つ以上の変換係数レベルを含むことを指定する。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対する、考えられている変換ブロックの左上ルーマサンプルの位置(x0,y0)を指定する。
tu_cbf_luma[x0][y0]が存在しない場合に、その値は、次の通りに推測される:
- cu_sbt_flagが1に等しく、次の条件の1つが真である場合に、tu_cbf_luma[x0][y0]は0に等しいと推測される:
- subTuIndexが0に等しく、cu_sbt_pos_flagが1に等しい。
- subTuIndexが1に等しく、cu_sbt_pos_flagが0に等しい。
- そうでなければ、treeTypeがDUAL_TREE_CHROMAに等しい場合に、tu_cbf_luma[x0][y0]は0に等しいと推測される。
- 上記以外の場合に、tu_cbf_luma[x0][y0]は1に等しいと推測される。
tu_joint_cbcr_residual_flag[x0][y0]は、クロマ成分Cb及びCrの両方のサンプルが単一の変換ブロックとしてコーディングされるかどうかを指定する。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対する、考えられている変換ブロックの左上ルーマサンプルの位置(x0,y0)を指定する。
1に等しいtu_joint_cbcr_residual_flag[x0][y0]は、変換ユニットシンタックスが、Cb及びCrの両方の残差サンプルが導出される単一の変換ブロックの変換係数レベルを含むことを指定する。0に等しいtu_joint_cbcr_residual_flag[x0][y0]は、クロマ成分の変換係数レベルがシンタックス要素tu_cbf_cb[x0][y0]及びtu_cbf_cr[x0][y0]によって示されるようにコーディングされることを指定する。
tu_joint_cbcr_residual_flag[x0][y0]が存在しない場合に、それは0に等しいと推測される。
tu_joint_cbcr_residual_flag[x0][y0]、tu_cbf_cb[x0][y0]、及びtu_cbf_cr[x0][y0]に応じて、変数TuCResMode[x0][y0]は、次の通りに導出される:
- tu_joint_cbcr_residual_flag[x0][y0]が0に等しい場合に、変数TuCResMode[x0][y0]は0にセットされる。
- そうでなければ、tu_cbf_cb[x0][y0]が1に等しくかつtu_cbf_cr[x0][y0]が0に等しい場合に、変数TuCResMode[x0][y0]は1に等しくセットされる。
- そうでなければ、tu_cbf_cb[x0][y0]が1に等しい場合に、変数TuCResMode[x0][y0]は2に等しくセットされる。
- 上記以外の場合に、変数TuCResMode[x0][y0]は3に等しくセットされる。
cu_qp_delta_absは、現在のコーディングユニットの量子化パラメータとその予測との間の差CuQpDeltaValの絶対値を指定する。
cu_qp_delta_sign_flagは、次の通りに、CuQpDeltaValの符号を指定する。
- cu_qp_delta_sign_flagが0に等しい場合に、対応するCuQpDeltaValは正値を有する。
- そうではない(cu_qp_delta_sign_flagが1に等しい)場合に、対応するCuQpDeltaValは負値を有する。
cu_qp_delta_sign_flagが存在しない場合に、それは0に等しいと推測される。
cu_qp_delta_absが存在する場合に、変数IsCuQpDeltaCoded及びCuQpDeltaValは、次の通りに導出される:
IsCuQpDeltaCoded=1 (187)
CuQpDeltaVal=cu_qp_delta_abs*(1-2*cu_qp_delta_sign_flag) (188)
CuQpDeltaValの値は、-(32+QpBdOffset/2)以上+(31+QpBdOffset/2)以下の範囲内になければならない。
cu_chroma_qp_offset_flagは、存在しかつ1に等しい場合に、cb_qp_offset_list[ ]のエントリがCuQpOffset
Cbの値を決定するために使用され、cr_qp_offset_list[ ]の対応するエントリがCuQpOffset
Crの値を決定するために使用され、joint_cbcr_qp_offset_list[ ]の対応するエントリがCuQpOffset
CbCrの値を決定するために使用されることを指定する。0に等しいcu_chroma_qp_offset_flagは、これらのリストがCuQpOffset
Cb、CuQpOffset
Cr、及びCuQpOffset
CbCrの値を決定するために使用されないことを指定する。
cu_chroma_qp_offset_idxは、存在する場合に、CuQpOffset
Cb、CuQpOffset
Cr、及びCuQpOffset
CbCrの値を決定するために使用されるcb_qp_offset_list[ ]、cr_qp_offset_list[ ]、及びjoint_cbcr_qp_offset_list[ ]へのインデックスを指定する。存在する場合に、cu_chroma_qp_offset_idxの値は、0以上chroma_qp_offset_list_len_minus1以下の範囲内になければならない。存在しない場合に、cu_chroma_qp_offset_idxの値は0に等しいと推測される。
cu_chroma_qp_offset_flagが存在する場合に、次が適用される:
- 変数IsCuChromaQpOffsetCodedは1に等しくセットされる。
- 変数CuQpOffset
Cb、CuQpOffset
Cr、及びCuQpOffset
CbCrは、次の通りに導出される:
- cu_chroma_qp_offset_flagが1に等しい場合に、次が適用される:
CuQpOffset
Cb=cb_qp_offset_list[cu_chroma_qp_offset_idx] (189)
CuQpOffset
Cr=cr_qp_offset_list[cu_chroma_qp_offset_idx] (190)
CuQpOffset
CbCr=joint_cbcr_qp_offset_list[cu_chroma_qp_offset_idx] (191)
-そうではない(cu_chroma_qp_offset_flagが0に等しい)場合に、CuQpOffset
Cb、CuQpOffset
Cr、及びCuQpOffset
CbCrは全て0に等しくセットされる。
transform_skip_flag[x0][y0][cIdx]は、変換が関連する変換ブロックに適用されるか否かを指定する。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対する、考えられている変換ブロックの左上ルーマサンプルの位置(x0,y0)を指定する。アレイインデックスcIdxは、色成分のインジケータを指定し、それはYについては0に、Cbについては1に、Crについては2に等しい。1に等しいtransform_skip_flag[x0][y0][cIdx]は、変換が関連する変換ブロックに適用されないことを指定する。0に等しいtransform_skip_flag[x0][y0][cIdx]は、変換が関連する変換ブロックに適用されるか否かの決定が他のシンタックス要素に依存することを指定する。
transform_skip_flag[x0][y0][cIdx]が存在しない場合に、それは次の通りに推測される:
- BdpcmFlag[x0][y0][cIdx]が1に等しい場合に、transform_skip_flag[x0][y0][cIdx]は1に等しいと推測される。
- そうではない(BdpcmFlag[x0][y0][cIdx]が0に等しい)場合に、transform_skip_flag[x0][y0][cIdx]は0に等しいと推測される。
【0046】
[4.開示されている実施形態による技術的課題の例]
SH、PPS、APSシンタックス要素(Syntax Element(s),SE)の既存の設計には、次の問題がある:
1)最新のVVC草案テキストでは、APSシンタックス要素scaling_list_chroma_present_flagは、SCALING APSでシグナリングされるスケーリング/量子化行列(Quantization Matrices,QM)の数を制御するためにシグナリングされる。つまり、scaling_list_chroma_present_flagが1に等しい場合には、28個のQMがルーマ及びクロマの両方のためにシグナリングされ、そうでなければ(scaling_list_chroma_present_flagが0に等しい場合)、ルーマのみのために10個のQMがシグナリングされる。現在、scaling_list_chroma_present_flagの値は、ChromaArrayType(SPSシンタックス要素から導出される)に基づき制約される。つまり、scaling_list_chroma_present_flagの値は、ChromaArrayTypeが0に等しくない場合には1に等しいよう求められ、一方、ChromaArrayTypeが0に等しい場合には、scaling_list_chroma_present_flagの値は0に等しいよう求められる。セマンティクスにおけるそのような制約は、SPSに対するAPSの依存性を導入するが、これは、APSが、ChromaArrayTypeの異なる値に関連付けられ得る異なるSPSを参照するピクチャ(又はピクチャのスライス)に適用される場合があるということで、起こるべきではない。
a.更に、現在、ブロックが、ユーザにより定義されたスケーリングリストでコーディングされると、ルーマ及びクロマ(利用可能な場合)は両方とも、ユーザにより定義されたスケーリングリストを適用すべきである。すなわち、ルーマ及びクロマのためのユーザにより定義されたスケーリングリストは、別々にオン/オフされ得ない。そのような設計は効率的/柔軟でない場合がある。
【0047】
2)最新のVVC草案テキストでは、LMVS APSシンタックス構造がシグナリングされる場合に、ChromaArrayTypeが0に等しい(例えば、ビデオコンテンツにクロマ成分がない)かどうかにかかわらず、クロマ残差スケーリングに関するAPSシンタックス要素は常にシグナリングされる。これは、ビデオコンテンツで扱われるクロマがないときに、クロマ関連シンタックス要素の不必要な伝送を引き起こす場合がある。
【0048】
3)最新のVVC草案テキストでは、SHシンタックス要素slice_ts_residual_coding_disabled_flagが、変換スキップに基づいた残差コーディング(Transform Skip based Residual Coding,TSRC)又はレギュラー残差コーディング(Regular Residual Coding,RRC)が変換スキップブロックに使用されるかどうかを指定するために使用される。しかし、現在、SPSレベル変換スキップの無効化にかかわらず、slice_ts_residual_coding_disabled_flagは常にシグナリングされる。sps_transform_skip_enabled_flagやtransform_skip_flagが常に0であり、TSRC及びRRCを切り替える条件(!transform_skip_flag[xC][yC][1]||slice_ts_residual_coding_disabled_flag)が常に新となるならば、そのような場合に、slice_ts_residual_coding_disabled_flagは無意味になる。
a.更に、現在、非TSブロックはRRSを使用することしかできず、TSRCとRRCとの間を切り替えることはできない。これは、非TSブロック圧縮にとって効率できない場合がある。
【0049】
4)最新のVVC草案テキストでは、マルチレベル制御が、ルーマブロックについてcu_qp_deltaを有効にするために、すなわち、最初にPPSオン/オフ制御フラグcu_qp_delta_enabled_flagをシグナリングし、次いでPHで量子化グループ(QG)サイズを指定し、最後に、各QGでcu_qp_delta_absの値をシグナリングするために、使用される。このように設計することによって、ピクチャが複数のスライスから成る場合に、一部のスライスがcu_qp_deltaを使用するが、他のスライスは決してそれを使用しないときに、ブロックレベルcu_qp_delta_absは依然としてQGごとにシグナリングされる必要がある。従って、ブロックレベルのビットの無駄があり、これは回避され得る。
【0050】
5)最新のVVC草案テキストでは、PPSシンタックス要素single_slice_per_subpic_flagが0に等しい場合に、PPSを参照するピクチャの各サブピクチャは、1つ以上の長方形スライスから成り得る。single_slice_per_subpic_flagが1に等しい場合に、そのようなPPSを参照するピクチャについて、以下の場合が起こる可能性がある:
a.冗長な場合:sps_num_subpics_minus1が0よりも大きいが、各サブピクチャに1つしかスライスがない場合。そのような場合に、各ピクチャは複数のサブピクチャ及び複数の長方形スライスを含むが、single_slice_per_subpic_flagは0に等しいので、num_slices_in_pic_minus1はシグナリングされる必要がある。しかし、そのような場合は、single_slice_per_subpic_flagが1に等しい場合と概念上同じであり、このSEをシグナリングする必要性は全くないので、それは冗長にシグナリングされる。
b.冗長な場合:sps_num_subpics_minus1が0に等しく、PPSを参照する各ピクチャに1つしかスライスがない場合。そのような場合に、各ピクチャは、ただ1つのスライスから成る1つのサブピクチャを含むが、single_slice_per_subpic_flagは依然として0に等しいことが許されるので、num_slices_in_pic_minus1はシグナリングされる必要がある。しかし、そのような場合は、single_slice_per_subpic_flagが1に等しい場合と概念上同じであり、このSEをシグナリングする必要性は全くないので、それは冗長にシグナリングされる。
c.更に、上記の冗長な場合の全てが阻止/回避される場合に、結局、ピクチャが複数のサブピクチャを有する(各サブピクチャは単一のスライスを含むか又は複数のスライスを含むかのどちらか)か、あるいは、ピクチャが複数のスライスを有する(各ピクチャは単一のサブピクチャを含むか又は複数のサブピクチャをふくむかのどちらか)の場合のために、0に等しいsingle_slice_per_subpic_flagが常に使用されることになる。また、どちらの場合にも、num_slices_in_pic_minus1の値は常に1よりも大きい。結局、PPSシンタックス要素tile_idx_delta_present_flagを条件付きでシグナリングする必要がないことも分かる。
【0051】
6)最新のVVC草案テキストでは、タイルの幅及び高さなどのタイルレイアウトは、暗黙的な推測に関連した明示的なシグナリングの方法で設計される。ピクチャが、同じ高さのタイルを有する複数のタイルに分割される場合に、現在の設計は、最初のタイル行の高さしかシグナリングしないことを許し、残りのタイル行の高さは推測され得る。さもなければ、ピクチャが、異なる高さのタイルを有する複数のタイル行に分割される場合には、各タイル行の高さを明示的にシグナリングすることになる。さもなければ、ピクチャが、最初のいくつかのタイル行の高さが異なり、続くいくつのタイル行の高さが同じである複数のタイル行に分割される場合には、最初のいくつかのタイル行の高さと、続くいくつかのタイル行のただ1つの高さとを明示的にシグナリングすることになり、それから、同じ高さの残りのタイル行の高さはシグナリング無しで推測される。現在の設計は、明示的なシグナリングと暗黙的な推測とを組み合わせることによって、これら3つの場合に上手く働く。ただし、ピクチャが、最初のいくつかのタイル行が同じ高さであり、続くいくつかのタイル行の高さが異なる複数のタイル行に分割されるもう1つの場合があり得る。そのような場合に、現在の設計は、暗黙的な推測がその場合に適用され得ないので効率でないように見え、依然としてタイル行ごとに高さを明示的にシグナリングする必要がある。同様に、タイル列のシグナリングや、長方形スライスレイアウトシグナリング、つまり、スライスがタイルよりも小さい場合におけるスライス高さのシグナリングについて、同じ状況がある。ここでは改善のために変更が適用され得る。
【0052】
7)現在、GCIシンタックス要素no_aps_constraint_flagは、PREFIX_APS_NUT又はSUFFIX_APS_NUTに等しいnuh_unit_typeを有するNALユニットを無効にするために使用される。ALF APSがないかどうかに関して、草案テキストでは、より多くの制約が対処されると期待される。
【0053】
8)現在、コンフォーマンスウィンドウパラメータは、ピクチャ幅及び高さが、PPSによって参照されているSPSでシグナリングされた最大ピクチャ幅及び高さと同じである場合を含め、常にPPSでシグナリングされる。他方で、最大ピクチャ幅及び高さを有するピクチャのコンフォーマンスウィンドウパラメータもSPSでシグナリングされる。最大ピクチャ幅及び高さを有するピクチャのコンフォーマンスウィンドウパラメータをPPSでシグナリングすることは、冗長である。
【0054】
[5.実施形態及び技術の例の列挙]
上記の課題及び述べられていないその他の課題を解決するために、以下で要約されている方法が開示される。技術的解決法は、概要を説明するための例と見なされるべきであり、狭い意味で解釈されるべきではない。更に、これらの技術的解決法は、個々に適用されても、又はあらゆる方法で組み合わされてもよい。
【0055】
以下の記載では、最新の作業草案JVET-Q2001-vDに基づく潜在的なテキスト変更に関して、削除された部分は二重括弧(例えば、[[ ]])で強調表示され、二重括弧の中に、削除されたテキストが入る。一方、追加された部分は太字斜体である。
【0056】
1.最初の課題を解決するために、SPSシンタックス要素に依存するAPSシンタックス要素の値に関して、次のアプローチの1つ以上が開示される:
1)一例で、VPS ID及び/又はSPS ID及び/又はPPS IDがAPSシンタックス構造、すなわち、adaptation_parameter_set_rbsp( )に加えられてよい。例えば、adaptation_parameter_set_rbsp( )のシンタックス構造は、次の通りに変更されてよい:
【表15】
a.更に、代替的に、クロマスケーリングリストのシグナリングは、ChromaArrayTypeの値に基づき明示的に条件付けられてよい。例えば、scaling_list_data( )のシンタックステーブルは、次の通りに変更されてよい:
【表16】
また、scaling_list_chroma_present_flagのセマンティクスは、次の通りに変更される:
[[1に等しいscaling_list_chroma_present_flagは、クロマスケーリングリストがscaling_list_data( )に存在することを指定する。0に等しいscaling_list_chroma_present_flagは、クロマスケーリングリストがscaling_list_data( )に存在しないことを指定する。ビットストリームコンフォーマンスの要件は、scaling_list_chroma_present_flagが、ChromaArrayTypeが0に等しいときには0に等しくなければならず、ChromaArrayTypeが0に等しくないときには1に等しくなければならないことである。]]
2)一例で、APSに関連したVPS及び/又はSPS及び/又はPPSは暗黙的に導出され得る。
a.例えば、APSがビデオユニット(例えば、ピクチャヘッダ又はスライスヘッダ)によって参照され、ビデオユニットがVPS及び/又はSPS及び/又はPPSに依存する場合に、APSは暗黙的にVPS及び/又はSPS及び/又はPPSと関連付けられる。
3)一例で、ユーザにより定義されたスケーリングリスト(明示的なスケーリングリストとも呼ばれる。)を使用する代わりに、明示的なスケーリングリストがルーマブロックに適用される場合でさえ、フラット量子化(デフォルトのスケーリングリスト)がクロマブロックのために使用されてよい。
a.代替的に、更に、ルーマブロックのための明示的なスケーリングリストがビットストリームでシグナリングされる場合でさえ、クロマブロックのための明示的なスケーリングリストはシグナリングされなくてよい。
4)代替的に、scaling_list_chroma_present_flagの値は、ChromaArrayTypeの値と切り離されてよい。
a.異なる色成分(例えば、ルーマブロック及びクロマブロック)のために明示的なスケーリングリスト又はデフォルトのスケーリングリストを使用すべきかどうかの指示は、別々にシグナリング/制御されてよい。
i.一例で、シンタックス要素(例えば、1つ以上のフラグ)が、ルーマ及び/又はクロマ成分に対してユーザにより定義されたスケーリングリスト(明示的なスケーリングリストとも呼ばれる。)を有効にすべきかどうかを指定するために、SPS/PPS/PH/SHに加えられてよい。
ii.例えば、フラグは、ルーマ変換係数がフラット量子化(デフォルトのスケーリングリスト)とユーザにより定義されたスケーリングリストとの間を切り替えることができるようにするために、SPSで加えられてよい。
iii.例えば、1つ以上のフラグは、クロマ-U及び/又はクロマ-V変換係数フラット量子化(デフォルトのスケーリングリスト)とユーザにより定義されたスケーリングリストとの間を切り替えることができるようにするために、SPSで加えられてよい。
b.例えば、scaling_list_chroma_present_flagは、ChromaArrayTypeが0に等しいときに1に等しくてよい。
i.一例で、4:0:0クロマフォーマットでのコーディングピクチャについて、N(例えば、N=28)組のスケーリング行列がAPSでシグナリングされてよい。
ii.一例で、1に等しいseparate_colour_plane_flagを有する4:4:4クロマフォーマットでのコーディングピクチャについて、M(例えば、M=28)組のスケーリング行列がAPSでシグナリングされてよい。
a)例えば、separate_colour_plane_flagが1に等しく、M(例えば、M=28)組のスケーリング行列がAPSでシグナリングされる場合に、Y(ルーマ)、U(Cb)、及びV(Cr)チャネル変換係数の夫々は、ルーマ-Y-チャネルとして扱われてよく、Y、U、及びV変換係数のためのスケーリング行列識別子変数idは、色成分をY-成分(例えば、0の値)に等しいと見なして導出される。
b)代替的に、separate_colour_plane_flagが1に等しく、M(例えば、M=28)組のスケーリング行列がAPSでシグナリングされる場合に、ルーマ-Y変換係数のためのスケーリング行列識別子変数idは、色成分をY-成分(例えば、0の値)に等しいと見なして導出され、一方、クロマ-Uのためのスケーリング行列識別子変数idは、色成分をU-成分(例えば、1の値)に等しいと見なして導出され、クロマ-Vのためのスケーリング行列識別子変数idは、色成分をV-成分(例えば、2の値)に等しいと見なして導出される。
c.例えば、scaling_list_chroma_present_flagは、ChromaArrayTypeが1に等しいときに0に等しくてよい。
i.一例で、クロマ変換係数がユーザにより定義されたスケーリングリストを使用することを許されるかどうかは、scaling_list_chroma_present_flagの値に依存しても
しなくてもよい。
a)例えば、scaling_list_chroma_present_flagが0に等しい場合に、ユーザにより定義されたスケーリングリストは、sps_scaling_list_enabled_flag、ph_scaling_list_enabled_flag、及びslice_scaling_list_enabled_flagの値にかかわらず、クロマ変換係数のために使用されることを許されない(例えば、クロマのためのユーザにより定義されたスケーリングリストの利用を指定するために使用される追加フラグの値は、0又は1などの特定の数に等しい必要がある。)。
b)例えば、scaling_list_chroma_present_flagが1に等しい場合に、ユーザにより定義されたスケーリングリストは、クロマ変換係数のために使用されることを許され得る。
ii.一例で、0に等しいseparate_colour_plane_flagを有する、4:2:0、及び/又は4:2:2クロマフォーマット、及び/又は4:4:4クロマフォーマットでのコーディングピクチャについて、N(例えば、N=10)組のスケーリング行列がAPSでシグナリングされてよい。
a)例えば、ChromaArrayTypeが0よりも大きく、N(例えば、N=10)組のスケーリング行列がAPSでシグナリングされる場合に、U及び/又はV変換係数のスケーリング行列は、Y変換係数のシグナリングされたN組のスケーリング行列から導出されてよい。
b)代替的に、ChromaArrayTypeが0よりも大きく、N(例えば、N=10)組のスケーリング行列がAPSでシグナリングされる場合に、U及び/又はV変換係数は、ユーザにより定義されたスケーリングリストを使用しなくてよい(代わりに、U及び/又はV変換係数は、デフォルトのスケーリング係数を有するフラット量子化を使用してよい。)。
d.例えば、ChromaArrayTypeに基づいたscaling_list_chroma_present_flagに関するセマンティクス制約は、シンタックス要素scaling_list_chroma_present_flagと関連付けられなくてもよい。例えば、次の通りである:
1に等しいscaling_list_chroma_present_flagは、クロマスケーリングリストがscaling_list_data( )に存在することを指定する。0に等しいscaling_list_chroma_present_flagは、クロマスケーリングリストがscaling_list_data( )に存在しないことを指定する。[[ビットストリームコンフォーマンスの要件は、scaling_list_chroma_present_flagが、ChromaArrayTypeが0に等しいときには0に等しくなければならず、ChromaArrayTypeが0に等しくないときには1に等しくなければならないことである。]]
e.例えば、ChromaArrayTypeに基づいたscaling_list_chroma_present_flagに関するセマンティクス制約は、次の通りに変更されてよい:
1に等しいscaling_list_chroma_present_flagは、クロマスケーリングリストがscaling_list_data( )に存在することを指定する。0に等しいscaling_list_chroma_present_flagは、クロマスケーリングリストがscaling_list_data( )に存在しないことを指定する。ビットストリームコンフォーマンスの要件は、scaling_list_chroma_present_flagが、ChromaArrayTypeが0に等しいときには0に等しくなければなら[[ず、ChromaArrayTypeが0に等しくないときには1に等しくなければなら]]ないことである。
5)代替的に、制約は、PH/SHシンタックス要素によって導出されるChromaArrayTypeに従って、scaling_list_chroma_present_flagの値を特定の値(例えば、0又は1)に制約するために、PH及び/又はSHシンタックス要素と関連付けて加えられてよい。例えば、次の通りである:
一例で、ph_scaling_list_aps_idのセマンティクスは、次の通りに変更される:
【表17】
代替的に、ph_scaling_list_aps_idのセマンティクスは、次の通りに変更される:
【表18】
代替的に、ph_scaling_list_aps_idのセマンティクスは、次の通りに変更される:
【表19】
また、APS SEのセマンティクスは、次の通りに変更される:
1に等しいscaling_list_chroma_present_flagは、クロマスケーリングリストがscaling_list_data( )に存在することを指定する。0に等しいscaling_list_chroma_present_flagは、クロマスケーリングリストがscaling_list_data( )に存在しないことを指定する。[[ビットストリームコンフォーマンスの要件は、scaling_list_chroma_present_flagが、ChromaArrayTypeが0に等しいときには0に等しくなければならず、ChromaArrayTypeが0に等しくないときには1に等しくなければならないことである。]]
【0057】
2.ChromaArrayTypeが0に等しい場合における不必要なクロマ関連APSシンタックス要素シグナリングに関して、第2の課題を解決するために、次のアプローチの1つ以上が開示される:
1)一例で、シンタックス要素(例えば、フラグ)が、クロマ残差スケーリングに関連したAPSシンタックス要素(例えば、lmcs_delta_abs_crs、lmcs_delta_sign_crs_flag、など)の存在を制御するために、APSシンタックス構造lmcs_data( )に加えられてよい。
a.例えば、ChromaArrayTypeが0に等しい場合に、クロマ残差スケーリングに関連したAPSシンタックス要素(例えば、lmcs_delta_abs_crs、lmcs_delta_sign_crs_flag、など)は、シグナリングされることを許されない必要がある。例えば、追加のフラグは、0又は1などの特定の値に等しい必要がある。
b.例えば、ChromaArrayTypeが0に等しくない場合に、クロマ残差スケーリングに関連したAPSシンタックス要素(例えば、lmcs_delta_abs_crs、lmcs_delta_sign_crs_flag、など)は、シグナリングされる必要がある。例えば、追加のフラグは、0又は1などの特定の値に等しい必要がある。
c.例えば、現在のスライスがクロマ残差スケーリングを使用することを許されるかどうかは、追加のフラグに依存してもしなくてもよい。例えば、クロマ残差スケーリングに関連したAPSシンタックス要素がシグナリングされないことを追加のフラグが示す場合に、クロマ残差スケーリングは、sps_lmcs_enabled_flag、ph_lmcs_enabled_flag、ph_chroma_residual_scale_flag、及びsh_lmcs_enabled_flagの値にかかわらず決して使用されない。
2)ビットストリーム制約が、ChromaArrayTypeの値に関してlmcs_delta_abs_crsの値を制約するためにPS/SH/APSシンタックス要素のセマンティクスの下で加えられてよい。例えば、次の通りである:
【表20】
代替的に、ph_lmcs_aps_idのセマンティクスは、次の通りに変更される:
【表21】
代替的に、ph_lmcs_aps_idのセマンティクスは、次の通りに変更される:
【表22】
【0058】
3.上記の例で、「ChromaArrayType」という用語は、「色フォーマットが4:0:0に等しいことを確認すること」によって置換されてもよい。
【0059】
4.第3の課題を解決するために、RRC及びTSRCの利用に関して、次のアプローチの1つ以上が開示される:
1)TSRC有効化/無効化フラグ(例えば、slice_ts_residual_coding_disabled_flag)のシグナリングは、変換スキップが有効にされるかどうか(例えば、SPSにおけるsps_transform_skip_enabled_flag)に関して条件付けられてよい。
a.一例で、次が適用されてよい:
【表23】
b.代替的に、更に、slice_ts_residual_coding_disabled_flagが存在しない場合には、それは1に等しいと推測される。
2)代替的に、TSRC有効化フラグ(例えば、slice_ts_residual_coding_disabled_flag)の値は、SPSにおけるsps_transform_skip_enabled_flagによって制約されてもよく、例えば、slice_ts_residual_coding_disabled_flagのセマンティクスは、次の通りに変更されてよい:
【表24】
3)代替的に、TSRC有効化フラグ(例えば、slice_ts_residual_coding_disabled_flag)のシグナリングが如何なる他のシンタックス要素に関しても条件付けられない場合には、それは常に存在してよい。例えば、slice_ts_residual_coding_disabled_flagのセマンティクスは、次の通りに変更されてよい:
1に等しいslice_ts_residual_coding_disabled_flagは、residual_coding( )シンタックス構造が、現在のスライスについて変換スキップブロックの残差サンプルをパースするために使用されることを指定する。0に等しいslice_ts_residual_coding_disabled_flagは、residual_ts_coding( )シンタックス構造が、現在のスライスについて変換スキップブロックの残差サンプルをパースするために使用されることを指定する。[[slice_ts_residual_coding_disabled_flagが存在しない場合に、それは0に等しいと推測される。]]
4)追加的に、更に、TSRCは、非変換スキップ(非TS)コーディングされたブロックに適用されてよい。
a.一例で、1つ以上のシンタックスフラグが、非TSブロックに対してTSRC又はRRCを有効にすべきかどうかを指定するために加えられてよい。
i.一例で、1つ以上のブロックレベル(CTU/CU/TU)シンタックスフラグが、現在のビデオユニットがTSRC又はRRCを使用しているかどうかを指定するために加えられてよい。
ii.更に、代替的に、1つ以上のハイレベル(SPS/PPS/PH/SH)シンタックスフラグが、TSRCがビデオユニットに対して許可されるかどうかを指定するために加えられてよい。
b.一例で、非TSコーディングされたブロックに対してTSRCを使用すべきかどうか、又は非TSコーディングされたブロックに対してTSRCを許可すべきかどうかは、ブロックのQP値などのコーディングされた情報に依存してよい。
i.一例で、QPがX(例えば、X=4)以上である非TSブロックについて、残差コーディングのためにTSRC又はRRCのどちらかを使用することが許可されてよい。
【0060】
5.第4の課題を解決するために、ルーマブロックについてのcu_qp_deltaのオン/オフ制御に関して、次のアプローチの1つ以上が開示される:
a.SHレベルのシンタックス要素(例えば、slice_cu_qp_delta_enabled_flagによって表されるフラグ)が、特定のスライスについてのcu_qp_deltaの有効化及び/又は無効化を制御するために加えられてよい。
i.一例で、提案されるslice_cu_qp_delta_enabled_flagの存在は、PPSにおけるcu_qp_delta_enabled_flagに関して条件付けられる。例えば、PPSにおけるcu_qp_delta_enabled_flagが1に等しい場合にのみ、提案されるslice_cu_qp_delta_enabled_flagはシグナリングされ、さもなければ(PPSにおけるcu_qp_delta_enabled_flagが0に等しい場合)、提案されるslice_cu_qp_delta_enabled_flagはシグナリングされず、0に等しいと推測される。
a)代替的に、提案されるslice_cu_qp_delta_enabled_flagの値は、PPSにおけるcu_qp_delta_enabled_flagの値に関して制約される。つまり、PPSにおけるcu_qp_delta_enabled_flagが0に等しい場合に、提案されるslice_cu_qp_delta_enabled_flagの値は0に等しくなければならない。
ii.一例で、PPSにおけるcu_qp_delta_enabled_flagは、SHにおけるSHレベルcu_qp_delta有効化フラグの存在を、及び/又は変換ユニットシンタックス及びパレットコーディングシンタックスにおけるcu_qp_delta_abs及び/又はcu_qp_delta_sign_flagの存在を制御するために使用されてよい。
iii.一例で、シンタックス構造は、次の通りに変更されてよい:
PPSシンタックス構造は、次の通りに変更される:
【表25】
また、PHシンタックス構造は、次の通りに変更される:
【表26】
また、SHシンタックス構造は、次の通りに変更される:
【表27】
b.更に、シンタックス構造palette_coding( )及び/又はシンタックス構造transform_unit( )におけるcu_qp_delta_absの存在は、提案されるslice_cu_qp_delta_enabled_flagに関して条件付けられる。例えば、提案されるslice_cu_qp_delta_enabled_flagの値が1である場合にのみ、cu_qp_delta_absはシグナリングされ、さもなければ(提案されるslice_cu_qp_delta_enabled_flagの値が0である場合)、cu_qp_delta_absの値はシグナリングされず、0に等しいと推測される。代替的に、クロマcu_qp_offsetは、スライスレベルのオン/オフフラグによって制御されなくてもよい。例えば、クロマcu_qp_offsetが現在のスライスに適用されるかどうかは、PH/PPS/SPSレベルフラグに依存してもしなくてもよい。
c.代替的に、PHレベルのシンタックス要素(ph_cu_qp_delta_enabled_flagによって表されるフラグ)が、特定のスライスについてのcu_qp_deltaの有効化及び/又は無効化を制御するために加えられてよい。
【0061】
6.PPS SEであるsingle_slice_per_subpic_flag、num_slices_in_pic_minus1、tile_idx_delta_present_flagの設計に関して、第5の課題を解決するために、次のアプローチの1つ以上が開示される:
a.一例で、制約が、PH/SH/PPSシンタックス要素のセマンティクスに加えられてよい。例えば、次の通りである:
【表28】
b.一例で、single_slice_per_subpic_flagのセマンティクスは、次の通りに変更されてよい:
【表29】
c.一例で、制約が、single_slice_per_subpic_flagのセマンティクスに加えられてもよい。例えば、次の通りである:
【表30】
d.更に、代替的に、制約が、single_slice_per_subpic_flagのセマンティクスに加えられてもよい。例えば、次の通りである:
【表31】
e.一例で、single_slice_per_subpic_flagは、各サブピクチャがただ1つの長方形スライスから成る場合に、1に等しくなければならない、ことが制約される。
f.更に、代替的に、PPSシンタックス要素tile_idx_delta_present_flagの存在は、num_slices_in_pic_minus1に基づき条件付けられなくてもよい。例えば、次の通りである:
【表32】
g.一例で、um_slices_in_pic_minus1は、single_slice_per_subpic_flagが1に等しい場合に、sps_num_subpics_minus1に等しくなければならない、ことが制約される。
h.更に、代替的に、PPSシンタックス要素num_slices_in_pic_minus1は、num_slices_in_pic_minus2であるよう変更されてよい。
i.更に、num_slices_in_pic_minus2に基づきtile_idx_delta_present_flagの存在を条件付ける。例えば、次の通りである:
【表33】
また、更に、VVC草案テキスト中の全ての他の箇所での「num_slices_in_pic_minus1」は、「NumSlicesInPic-1」で置換される。
【0062】
7.第6の課題を解決するために、スライス及びタイルレイアウトのシグナリングに関して、次のアプローチの1つ以上が開示される:
a.最初のいくつかのタイル行/列が同じ高さを/幅を有し、続くいくつかのタイル行/列が異なる高さ/幅を有する複数のタイル行/列にピクチャが分割されるかどうかを指定するために、シンタックス要素(例えば、1つ以上のフラグ)がPPSで加えられてよい。
i.例えば、提案されるシンタックスフラグは、no_pic_partition_flag又は明示的なタイル行/列の数(例えば、num_exp_tile_columns_minus1及び/又はnum_exp_tile_rows_minus1)に依存する。例えば、次の通りである:
【表34】
ii.更に、提案されるシンタックスフラグが1に等しい場合に、タイル列幅及び/又はタイル行高さは、提案されるシンタックスフラグの値に従って導出される。例えば、次の通りである:
タイル列の数を指定する変数NumTileColumnsと、CTBの単位でi番目のタイル列の幅を指定する、0以上NumTileColumns-1以下の範囲内のiについてのリストcolWidth[i]とは、次の通りに導出される:
【数21】
タイル行の数を指定する変数NumTileRowsと、CTBの単位でj番目のタイル行の高さを指定する、0以上NumTileRows-1以下の範囲内のjについてのリストRowHeight[j]とは、次の通りに導出される:
【数22】
b.更に、同様に、タイルが複数のスライスによって分けられる場合に(この場合に、スライスサイズはタイルサイズよりも小さい。)、最初のいくつかのスライス行が同じ高さを有し、続くいくつかのスライス行が異なる高さを有する複数のスライスにタイルが分割されるかどうかを指定するために、シンタックス要素(例えば、1つ以上のフラグ)がPPSで加えられてよい。
i.更に、提案されるシンタックスフラグが1に等しい場合に、スライス高さ(例えば、SliceHeightInCtusMinus1)は、提案されるシンタックスフラグの値に従って導出される。
【0063】
8.第7の課題を解決するために、非ALF APSの場合に関して、次のアプローチの1つ以上が開示される:
a.一例で、ALF APSがない(例えば、no_aps_constraint_flagが1に等しいか、又は必要なAPS IDを有するAPSが利用可能でない)場合に、ALFは許可され得ない(この場合に、sps_alf_enabled_flag及びsps_ccalf_enabled_flagは0に等しい必要がある。)。
b.一例で、ALF APSがない(例えば、no_aps_constraint_flagが1に等しいか、又は必要なAPS IDを有するAPSが利用可能でない)場合に、ALFは依然として許可されてもよい(この場合に、sps_alf_enabled_flagは0又は1に等しいことを許される。)。
i.例えば、ALF APSがない(例えば、no_aps_constraint_flagが1に等しい)場合に、ph_alf_enabled_flag及び/又はslice_alf_enabled_flagは0又は1に等しいことを許される。
ii.例えば、ALF APSがない(例えば、no_aps_constraint_flagが1に等しい)場合に、クロマALF及びCC-ALFは許されないが、固定フィルタによるルーマALFは使用されてよい。
iii.例えば、ALF APSがない(例えば、no_aps_constraint_flagが1に等しい)場合に、ph_num_alf_aps_ids_luma、ph_alf_chroma_idc、slice_num_alf_aps_ids_luma、slice_alf_chroma_idc、sps_ccalf_enabled_flagの値は0に等しい必要がある。
c.一例で、GCIシンタックス要素no_alf_constraint_flagが1に等しい場合に、ALF及び/又はCCALFは許されなくてもよい(この場合に、sps_alf_enabled_flag及び/又はsps_ccalf_enabled_flagは0に等しい必要がある。)。
d.代替的に、更に、使用されるALF APS(例えば、ph_num_alf_aps_ids_luma)及び/又はALF/CC-ALF APSインデックス(例えば、ph_alf_aps_id_luma、ph_alf_aps_id_chroma、ph_cc_alf_cb_aps_id、ph_cc_alf_cr_aps_id)の数をシグナリングすべきかどうかは、ALF APSが許可されるかどうか(例えば、no_aps_constraint_flag)に依存してよい。
i.一例で、その情報は、ALF APSが適用されない場合にはシグナリングされなくてよい。
e.一例で、新しいシンタックス要素は、ALF、及び/又はCCALF、及び/又はLMCS、及び/又はユーザにより定義されたスケーリングリストを無効にするようSPS/PPS/PH/SH/GCIでシグナリングされてよい。
【0064】
9.第8の課題を解決するために、コンフォーマンスウィンドウパラメータのシグナリングに関して:
a.一例で、PPSでのコンフォーマンスウィンドウパラメータ(すなわち、pps_conformance_window_flag、pps_conf_win_left_offset、pps_conf_win_right_offset、pps_conf_win_top_offset、及びpps_conf_win_bottom_offset)のシグナリングは、pic_width_in_luma_samplesがpic_width_max_in_luma_samplesに等しくかつpic_height_in_luma_samplesがpic_height_max_in_luma_samplesに等しい場合に、スキップされてよい。
i.一例で、フラグがPPSシンタックスに加えられてよく、このフラグの値がX(0又は1)に等しいことは、pic_width_in_luma_samplesがpic_width_max_in_luma_samplesに等しくかつpic_height_in_luma_samplesがpic_height_max_in_luma_samplesに等しいことを指定し、フラグが1-Xに等しいことは、pic_width_in_luma_samplesがpic_width_max_in_luma_samplesよりも小さいか、又はpic_height_in_luma_samplesがpic_height_max_in_luma_samplesよりも小さいことを指定する。しかし、pic_width_in_luma_samplesがpic_width_max_in_luma_samplesに等しくかつpic_height_in_luma_samplesがpic_height_max_in_luma_samplesに等しい場合にさえ、pic_width_in_luma_samples及びpic_height_in_luma_samplesは、SPSに対するPPSのパージング依存性を回避するために、依然としてPPSでシグナリングされる必要があるてんに留意されたい。
更に、上記のフラグがXに等しい場合に、PPSでのコンフォーマンスウィンドウパラメータ(つまり、pps_conformance_window_flag、pps_conf_win_left_offset、pps_conf_win_right_offset、pps_conf_win_top_offset、及びpps_conf_win_bottom_offset)のシグナリングはスキップされ、更には、パラメータの値は、SPSでのパラメータ(つまり、sps_conformance_window_flag、sps_conf_win_left_offset、sps_conf_win_right_offset、sps_conf_win_top_offset、及びsps_conf_win_bottom_offset)の値に等しいと推測される。
【0065】
図1は、本明細書で開示されている様々な技術が実装され得る例示的なビデオ処理システム1900を示すブロック図である。様々な実施は、システム1900のコンポーネントのいくつか又は全てを含み得る。システム1900は、ビデオコンテンツを受ける入力部1902を含み得る。ビデオコンテンツは、生の又は圧縮されていないフォーマット、例えば、8又は10ビットのマルチコンポーネントピクセル値で受け取られてよく、あるいは、圧縮又は符号化されたフォーマットにあってもよい。入力部1902は、ネットワークインターフェース、ペリフェラルバスインターバス、又はストレージインターフェースに相当し得る。ネットワークインターフェースの例には、Ethernet(登録商標)、受動光ネットワーク(Passive Optical Network,PON)などのような有線インターフェース、及びWi-Fi又はセルラーネットワークなどの無線インターフェースが含まれる。
【0066】
システム1900は、本明細書で記載されている様々なコーディング又は符号化方法を実装し得るコーディングコンポーネント1904を含んでもよい。コーディングコンポーネント1904は、ビデオのコーディングされた表現を生成するよう、入力部1902からコーディングコンポーネント1904の出力部へのビデオの平均ビットレートを低減し得る。コーディング技術は、従って、ビデオ圧縮又はビデオトランスコーディング技術と時々呼ばれる。コーディングコンポーネント1904の出力は、コンポーネント1906によって表されるように、保存されても、あるいは、接続された通信を介して伝送されてもよい。入力部1902で受け取られたビデオの保存又は通信されたビットストリーム(又はコーディングされた)表現は、ピクセル値又は表示インターフェース1910へ送られる表示可能なビデオを生成するコンポーネント1908によって使用されてもよい。ユーザが見ることができるビデオをビットストリーム表現から生成するプロセスは、ビデオ圧縮解除と時々呼ばれる。更に、特定のビデオ処理動作が「コーディング」動作又はツールと呼ばれる一方で、そのようなコーディングツール又は動作はエンコーダで使用され、コーディングの結果を入れ替える対応する復号化ツール又は動作は、デコーダによって実行されることになることが理解されるだろう。
【0067】
ペリフェラルバスインターフェース又は表示インターフェースの例には、ユニバーサルシリアルバス(USB)又は高精細マルチメディアインターフェース(HDMI(登録商標))又はDisplayport(登録商標)などが含まれ得る。ストレージインターフェースの例には、SATA(Serial Advanced Technology Attachment)、PCI(Peripheral Component Interconnect)、IDE(Integrated Drive Electronics)インターフェース、などがある。本明細書で説明されている技術は、携帯電話機、ラップトップ、スマートフォン、あるいは、デジタルデータ処理及び/又はビデオ表示を実行する能力がある他のデバイスなどの、様々な電子デバイスで具現化されてもよい。
【0068】
図2は、ビデオ処理装置3600のブロック図である。装置3600は、本明細書で記載されている方法の1つ以上を実装するために使用され得る。装置3600は、スマートフォン、タブレット、コンピュータ、インターネット・オブ・シングス(IoT)レシーバ、などで具現化されてもよい。装置3600は、1つ以上のプロセッサ3602、1つ以上のメモリ3604、及びビデオ処理ハードウェア3606を含み得る。プロセッサ3602は、本明細書で記載される1つ以上の方法を実装するよう構成され得る。メモリ(複数のメモリ)3604は、本明細書で記載される方法及び技術を実装するために使用されるデータ及びコードを記憶するために使用され得る。ビデオ処理ハードウェア3606は、ハードウェア回路において、本明細書で記載されるいくつかの技術を実装するために使用され得る。
【0069】
図4は、本開示の技術を利用し得る、例となるビデオコーディングシステム100を表すブロック図である。
【0070】
図4に示されるように、ビデオコーディングシステム100は、送信元デバイス110及び送信先デバイス120を含んでよい。送信元デバイス110は、符号化されたビデオデータを生成し、ビデオ符号化と呼ばれ得る。送信先デバイス120は、送信元デバイス110によって生成された符号化されたビデオデータを復号することができ、ビデオ復号化デバイスと呼ばれ得る。
【0071】
送信元デバイス110は、ビデオソース112、ビデオエンコーダ114、及び入力/出力(I/O)インターフェース116を含んでよい。
【0072】
ビデオソース112は、ビデオ捕捉デバイスなどのソース、ビデオコンテンツプロバイダからビデオデータを受け取るインターフェース、及び/又はビデオデータを生成するコンピュータグラフィクスシステム、あるいは、そのようなソースの組み合わせを含んでよい。ビデオデータは1つ以上のピクチャを有してもよい。ビデオエンコーダ114は、ビットストリームを生成するようビデオソース112からのビデオデータを符号化する。ビットストリームは、ビデオデータのコーディングされた表現を形成するビットの連続を含んでよい。ビットストリームは、コーディングされたピクチャ及び関連するデータを含んでもよい。コーディングされたピクチャは、ピクチャのコーディングされた表現である。関連するデータは、シーケンスパラメータセット、ピクチャパラメータセット、及び他のシンタックス構造を含んでもよい。I/Oインターフェース116は、変調器/復調器(モデム)及び/又は送信器を含んでよい。符号化されたビデオデータは、I/Oインターフェース116を介して送信先デバイス120に対してネットワーク130aを通じて直接に伝送されてよい。符号化されたビデオデータはまた、送信先デバイス120によるアクセスのために記憶媒体/サーバ130bに記憶されてもよい。
【0073】
送信先デバイス120は、I/Oインターフェース126、ビデオデコーダ124、及び表示デバイス122を含んでよい。
【0074】
I/Oインターフェース126は、受信器及び/又はモデムを含んでよい。I/Oインターフェース126は、送信元デバイス110又は記憶媒体/サーバ130bから符号化されたビデオデータを取得してよい。ビデオデコーダ124は、符号化されたビデオデータを復号してよい。表示デバイス122は、復号されたビデオデータをユーザに表示してよい。表示デバイス122は、送信先デバイス120と一体化されてもよく、あるいは、外付け表示デバイスとインターフェース接続するよう構成されて送信先デバイス120の外にあってもよい。
【0075】
ビデオエンコーダ114及びビデオデコーダ124は、HEVC(High Efficiency Video Coding)標準規格、VVC(Versatile Video Coding)標準規格、並びに他の現在の及び/又は更なる標準規格などのビデオ圧縮規格に従って作動してもよい。
【0076】
図5は、ビデオエンコーダ200の例を表すブロック図であり、
図4に表されているシステム100のビデオエンコーダ114であってよい。
【0077】
ビデオエンコーダ200は、本開示の技術のいずれか又は全てを実行するよう構成されてよい。
図5の例では、ビデオエンコーダ200は、複数の機能コンポーネントを含む。本開示で記載される技術は、ビデオエンコーダ200の様々なコンポーネントの間で共有されてもよい。いくつかの例では、プロセッサが、本開示で記載される技術のいずれか又は全てを実行するよう構成されてもよい。
【0078】
ビデオエンコーダ200の機能コンポーネントは、パーティションユニット201と、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205及びイントラ予測ユニット206を含み得る予測ユニット202と、残差生成ユニット207と、変換ユニット208と、量子化ユニット209と、逆量子化ユニット210と、逆変換ユニット211と、再構成ユニット212と、バッファ213と、エントロピ符号化ユニット214とを含んでよい。
【0079】
他の例では、ビデオエンコーダ200は、より多い、より少ない、又は異なる機能コンポーネントを含んでもよい。例において、予測ユニット202は、イントラブロックコピー(Intra Block Copy,IBC)ユニットを含んでもよい。IBCユニットは、少なくとも1つの参照ピクチャが、現在のビデオブロックが位置しているピクチャであるところの、IBCモードで、予測を実行してよい。
【0080】
更に、動き推定ユニット204及び動き補償ユニット205などのいくつかのコンポーネントは、高度に集積されてもよいが、説明のために
図5の例では別々に表されている。
【0081】
パーティションユニット201は、ピクチャを1つ以上のビデオブロックにパーティション化し得る。ビデオエンコーダ200及びビデオデコーダ300は、様々なビデオブロックサイズをサポートしてよい。
【0082】
モード選択ユニット203は、例えば、エラー結果に基づいて、イントラ又はインターのコーディングモードの1つを選択し、結果として得られたイントラ又はインターコーディングされたブロックを、残差ブロックデータを生成する残差生成ユニット207へ、及び参照ピクチャとしての使用のために、符号化されたブロックを再構成する再構成ユニット212へ供給してよい。いくつかの例において、モード選択ユニット203は、予測がインター予測信号及びイントラ予測信号に基づくイントラ-インター複合予測(Combination of Intra and Inter Prediction,CIIP)モードを選択してもよい。モード選択ユニット203はまた、インター予測の場合に、ブロックの動きベクトルのための分解能(例えば、サブピクセル又は整数ピクセル精度)を選択してもよい。
【0083】
現在のビデオブロックに対してインター予測を実行するために、動き推定ユニット204は、バッファ213からの1つ以上の参照フレームを現在のビデオブロックと比較することによって、現在のビデオブロックの動き情報を生成し得る。動き補償ユニット205は、動き情報と、現在のビデオブロックに関連したピクチャ以外のバッファ213からのピクチャの復号されたサンプルとに基づいて、現在のビデオブロックの予測されたビデオブロックを決定し得る。
【0084】
動き推定ユニット204及び動き補償ユニット205は、例えば、現在のビデオブロックがIスライス、Pスライス、又はBスライスであるかどうかに応じて、現在のビデオブロックのために異なる動作を実行してもよい。
【0085】
いくつかの例において、動き推定ユニット204は、現在のビデオブロックのために一方向予測を実行してもよく、動き推定ユニット204は、現在のビデオブロックのための参照ビデオブロックをリスト0又はリスト1の参照ピクチャから探してもよい。動き推定ユニット204は、次いで、参照ビデオブロックを含むリスト0又はリスト1内の参照ピクチャを示す参照インデックスと、現在のビデオブロックと参照ビデオブロックとの間の空間変位を示す動きベクトルとを生成してよい。動き推定ユニット204は、現在のビデオブロックの動き情報として参照インデックス、予測方向インジケータ、及び動きベクトルを出力してもよい。動き補償ユニット205は、現在のビデオブロックの動き情報によって示されている参照ビデオブロックに基づいて、現在のブロックの予測されたビデオブロックを生成してもよい。
【0086】
他の例では、動き推定ユニット204は、現在のビデオブロックのために双方向予測を実行してもよく、動き推定ユニット204は、現在のビデオブロックのための参照ビデオブロックをリスト0内の参照ピクチャから探してもよく、また、現在のビデオブロックのためのもう1つの参照ビデオブロックをリスト1内の参照ピクチャから探してもよい。動き推定ユニット204は、次いで、参照ビデオブロックを含むリスト0及びリスト1内の参照ピクチャを示す参照インデックスと、それらの参照ビデオブロックと現在のビデオブロックとの間の空間変位を示す動きベクトルとを生成してもよい。動き推定ユニット204は、現在のビデオブロックの動き情報として、現在のビデオブロックの参照インデックス及び動きベクトルを出力してもよい。動き補償ユニット205は、現在のビデオブロックの動き情報によって示されている参照ビデオブロックに基づいて、現在のビデオブロックの予測されたビデオブロックを生成してもよい。
【0087】
いくつかの例において、動き推定ユニット204は、デコーダの復号化処理のために動き情報のフルセットを出力してもよい。
【0088】
いくつかの例において、動き推定ユニット204は、現在のビデオの動き情報のフルセットを出力しなくてもよい。むしろ、動き推定ユニット204は、他のビデオブロックの動き情報を参照して現在のビデオブロックの動き情報をシグナリングしてもよい。例えば、動き推定ユニット204は、現在のビデオブロックの動き情報が隣接ビデオブロックの動き情報と十分に類似していることを決定してもよい。
【0089】
一例において、動き推定ユニット204は、現在のビデオブロックに関連したシンタックス構造において、現在のビデオブロックが他のビデオブロックと同じ動き情報を有していることをビデオデコーダ300に示す値を示してもよい。
【0090】
他の例では、動き推定ユニット204は、現在のビデオブロックに関連したシンタックス構造において、他のビデオブロック及び動きベクトル差分(Motion Vector Difference,MVD)を特定してもよい。動きベクトル差分は、現在のビデオブロックの動きベクトルと、指示されたビデオブロックの動きベクトルとの間の差を示す。ビデオデコーダ300は、現在のビデオブロックの動きベクトルを決定するために、指示されたビデオブロックの動きベクトル及び動きベクトル差分を使用し得る。
【0091】
上述されたように、ビデオエンコーダ200は、動きベクトルを予測的にシグナリングしてもよい。ビデオエンコーダ200によって実装され得る予測シグナリング技術の2つの例には、アドバンスド動きベクトル予測(Advanced Motion Vector Prediction,AMVP)及びマージモードシグナリングがある。
【0092】
イントラ予測ユニット206は、現在のビデオブロックに対してイントラ予測を実行してよい。イントラ予測ユニット206が現在のビデオブロックに対してイントラ予測を実行する場合に、イントラ予測ユニット206は、同じピクチャ内の他のビデオブロックの復号されたサンプルに基づいて、現在のビデオブロックの予測データを生成し得る。現在のビデオブロックの予測データは、予測されたビデオブロック及び様々なシンタックス要素を含み得る。
【0093】
残差生成ユニット207は、現在のビデオブロックから現在のビデオブロックの予測されたビデオブロックを減じること(例えば、マイナス符号によって示される)によって、現在のビデオブロックの残差データを生成してよい。現在のビデオブロックの残差データは、現在のビデオブロック内のサンプルの異なるサンプルコンポーネントに対応する残差ビデオブロックを含み得る。
【0094】
他の例では、例えば、スキップモードで、現在のビデオブロックの残差データは存在しない場合があり、残差生成ユニット207は、減算演算を実行しなくてもよい。
【0095】
変換処理ユニット208は、現在のビデオブロックに関連した残差ビデオブロックに1つ以上の変換を適用することによって、現在のビデオブロックの1つ以上の変換係数ビデオブロックを生成してよい。
【0096】
変換処理ユニット208が現在のビデオブロックに関連した変換係数ビデオブロックを生成した後、量子化ユニット209は、現在のビデオブロックに関連した1つ以上の量子化パラメータ(QP)値に基づいて、現在のビデオブロックに関連した変換係数ビデオブロックを量子化してよい。
【0097】
逆量子化ユニット210及び逆変換ユニット211は、変換係数ビデオブロックに各々逆量子化及び逆変換を適用して、変換係数ビデオブロックから残差ビデオブロックを再構成してよい。再構成ユニット212は、再構成された残差ビデオブロックを、予測ユニット202によって生成された1つ以上の予測されたビデオブロックからの対応するサンプルに加えて、バッファ213での記憶のために、現在のブロックに関連した再構成されたビデオブロックを生成してよい。
【0098】
再構成ユニット212がビデオブロックを再構成した後、ループフィルタリング動作が、ビデオブロックにおいてビデオブロッキングアーチファクトを低減するよう実行されてもよい。
【0099】
エントロピ符号化ユニット214は、ビデオエンコーダ200の他の機能コンポーネントからデータを受け取ってもよい。エントロピ符号化ユニット214がデータを受け取るとき、エントロピ符号化ユニット214は、エントロピ符号化されたデータを生成するよう1つ以上のエントロピ符号化動作を実行し、そのエントロピ符号化されたデータを含むビットストリームを出力し得る。
【0100】
開示されている技術のいくつかの実施形態は、ビデオ処理ツール又はモードを有効にする決定又は判断を行うことを含む。例において、ビデオ処理ツール又はモードが有効にされる場合に、エンコーダは、ビデオのブロックの処理においてそのツール又はモードを使用又は実装する。すなわち、ビデオのブロックからビデオのビットストリーム(又はビットストリーム表現)への変換は、決定又は判断に基づいてビデオ処理ツール又はモードが有効にされる場合に、そのツール又はモードを使用する。他の例では、ビデオ処理ツール又はモードが有効にされる場合に、デコーダは、ビデオ処理ツール又はモードに基づきビットストリームが変更されていることを知った上で、ビットストリームを処理する。すなわち、ビデオのビットストリームからビデオのブロックへの変換は、決定又は判断に基づき有効にされたビデオ処理ツール又はモードを用いて実行される。
【0101】
図6は、ビデオデコーダ300の例を表すブロック図であり、
図4で表されているシステム100のビデオデコーダ114であってよい。
【0102】
ビデオデコーダ300は、本開示の技術のいずれか又は全てを実行するよう構成されてよい。
図6の例では、ビデオデコーダ300は、複数の機能コンポーネントを含む。本開示で記載される技術は、ビデオデコーダ300の様々なコンポーネントの間で共有されてもよい。いくつかの例では、プロセッサが、本開示で記載される技術のいずれか又は全てを実行するよう構成されてもよい。
【0103】
図6の例では、ビデオデコーダ300は、エントロピ復号化ユニット301と、動き補償ユニット302と、イントラ予測ユニット303と、逆量子化ユニット304と、逆変換ユニット305と、再構成ユニット306と、バッファ307とを含む。ビデオデコーダ300は、いくつかの例において、ビデオエンコーダ200(
図5)に関して記載された符号化パスとは概して逆の復号化パスを実行してもよい。
【0104】
エントロピ復号化ユニット301は、符号化されたビットストリームを取り出し得る。符号化されたビットストリームは、エントロピコーディングされたビデオデータ(例えば、ビデオデータの符号化されたブロック)を含んでもよい。エントロピ復号化ユニット301は、エントロピコーディングされたビデオデータを復号してよく、エントロピ復号されたビデオデータから、動き補償ユニット302は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、及び他の動き情報を含む動き情報を決定し得る。動き補償ユニット302は、例えば、AMVP及びマージモードを実行することによって、そのような情報を決定してよい。
【0105】
動き補償ユニット302は、場合により、補間フィルタに基づいた補間を実行して、動き補償されたブロックを生成してよい。サブピクセル精度で使用される補間フィルタのための識別子が、シンタックス要素に含まれてもよい。
【0106】
動き補償ユニット302は、参照ブロックのサブ整数ピクセルについて補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ200によって使用された補間フィルタを使用し得る。動き補償ユニット302は、受け取られたシンタックス情報に従って、ビデオエンコーダ200によって使用された補間フィルタを決定し、その補間フィルタを使用して、予測ブロックを生成し得る。
【0107】
動き補償ユニット302は、符号化されたビデオシーケンスのフレーム及び/又はスライスを符号化するために使用されるブロックのサイズと、符号化されたビデオシーケンスのピクチャの各マクロブロックがどのようにパーティション化されるかを記述するパーティション情報と、各パーティションがどのように符号化されるかを示すモードと、各インター符号化されたブロックについての1つ以上の参照フレーム(及び参照フレームリスト)と、符号化されたビデオシーケンスを復号するための他の情報とを決定するために、シンタックス情報のいくつかを使用してもよい。
【0108】
イントラ予測ユニット303は、空間的に隣接するブロックから予測ブロックを形成するよう、例えば、ビットストリームで受け取られたイントラ予測モードを使用してもよい。逆量子化ユニット304は、ビットストリームで供給されてエントロピ復号化ユニット301によって復号された量子化されたビデオブロック係数を逆量子化、すなわち、量子化解除する。逆変換ユニット305は逆変換を適用する。
【0109】
再構成ユニット306は、動き補償ユニット302又はイントラ予測ユニット303によって生成された対応する予測ブロックを残差ブロックに加算して、復号されたブロックを形成し得る。望まれる場合には、デブロッキングフィルタも、ブロッキネスアーチファクトを取り除くために、復号されたブロックにフィルタをかけるよう適用されてもよい。復号されたビデオブロックは、次いで、バッファ307に格納され、バッファ307は、その後の動き補償/イントラ予測のために参照ブロックを供給し、更には、復号されたビデオを表示デバイスでの提示のために生成する。
【0110】
いくつかの実施形態によって好ましい解決法のリストが、次に提供される。
【0111】
以下の解決法は、前のセクション(例えば、項目1)で説明された技術の実施例を示す。
【0112】
解決法1.
ビデオ処理方法(例えば、
図1に表される。)であって、
ビデオのビデオ領域と前記ビデオのコーディングされた表現との間の変換を実行するステップ(302)を有し、
前記コーディングされた表現はフォーマット規則に従い、
前記フォーマット規則は、前記ビデオの色成分のスケーリングリストがシーケンスパラメータセット内のシンタックスフィールド値から独立して適応パラメータセットに含まれるかどうかをフラグが示すことを定める、
方法。
【0113】
解決法2.
前記フォーマット規則は、シーケンスパラメータセットを識別するために前記適応パラメータセットにフィールドが含まれることを定める、
解決法1の方法。
【0114】
解決法3.
前記フォーマット規則は、前記適応パラメータセットと前記コーディングされた表現での前記スケーリングリストの包含を制御するピクチャパラメータセット又はシーケンスパラメータセットのビデオパラメータセットとの間の暗黙的な関係を定める、
解決法1の方法。
【0115】
解決法4.
前記フォーマット規則は、前記変換中に使用されるユーザにより定義された又は明示的なスケーリングリストの包含のためのフォーマットを定める、
解決法1乃至3のいずれかの方法。
【0116】
解決法5.
前記フォーマット規則は、前記コーディングされた表現での前記フラグの包含が、クロマ成分のアレイタイプを示すシンタックス要素の包含から独立している、ことを定める、
解決法1~4のいずれかの方法。
【0117】
解決法6.
前記フラグは、前記スケーリングリストが含まれることを示し、前記クロマ成分の前記アレイタイプを示す前記シンタックス要素は、ゼロにセットされる、
解決法5の方法。
【0118】
解決法7.
前記フラグは、前記スケーリングリストが含まれないことを示し、前記クロマ成分の前記アレイタイプを示す前記シンタックス要素は、1にセットされる、
解決法5の方法。
【0119】
解決法8.
前記フォーマット規則は、前記フラグがピクチャヘッダ又はスライスヘッダに依存するよう制約規則によって制約される、ことを定める、
解決法1の方法。
【0120】
以下の解決法は、前のセクション(例えば、項目2)で説明された技術の実施例を示す。
【0121】
解決法9.
ビデオ処理の方法であって、
ビデオのビデオ領域と該ビデオ領域のコーディングされた表現との間の変換を実行するステップを含み、
前記コーディングされた表現はフォーマット規則に従い、
前記フォーマット規則は、1つ以上の適応パラメータセットが、各適応パラメータセットについてクロマ関連シンタックス要素が前記ビデオに対するクロマ制約により省略されるように、前記コーディングされた表現に含まれる、ことを定める、
方法。
【0122】
解決法10.
各適応パラメータセットについて、シンタックス要素は、クロマ関連シンタックス要素が当該適応パラメータセットに含まれるかどうかをシグナリングする、
解決法9の方法。
【0123】
解決法11.
前記フォーマット規則は、ピクチャヘッダ又はスライスヘッダ又は適応パラメータセット内のクロマ関連フィールドが、前記クロマ制約が前記ビデオの前記コーディングされた表現でのクロマの存在を示す場合かつその場合に限り、条件付きで含まれる、ことを定める、
解決法9の方法。
【0124】
解決法12.
前記クロマ制約は、クロマアレイタイプが0に等しいことである、
解決法9~11のいずれかの方法。
【0125】
解決法13.
前記クロマ制約は、前記ビデオのフォーマットが4:0:0であることである、
解決法9~11のいずれかの方法。
【0126】
以下の解決法は、前のセクション(例えば、項目4)で説明された技術の実施例を示す。
【0127】
解決法14.
ビデオ処理の方法であって、
1つ以上のビデオユニットを含む1つ以上のビデオ領域を含むビデオと該ビデオのコーディングされた表現との間の変換を実行するステップを含み、
前記コーディングされた表現はフォーマット規則に従い、
前記フォーマット規則は、第1変換コーディングシンタックスフィールドがビデオ領域のビデオユニットのレベルで前記コーディングされた表現に含まれるかどうか及び/又はその値が前記ビデオの領域のレベルでの第2変換コーディングシンタックスフィールドの値に依存するかどうかを定める、
方法。
【0128】
解決法15.
前記第1変換コーディングシンタックスフィールドは、slice_ts_residual_coding_disabled_flagであり、前記第2変換コーディングシンタックスフィールドは、sps_transform_skip_enabled_flagである、
解決法14の方法。
【0129】
以下の解決法は、前のセクション(例えば、項目5)で説明された技術の実施例を示す。
【0130】
解決法16.
ビデオ処理方法であって、
1つ以上のビデオ領域を含み、各ビデオ領域が1つ以上のビデオユニットを含むビデオと、該ビデオのコーディングされた表現との間の変換を実行するステップを含み、
前記コーディングされた表現はフォーマット規則に従い、
前記フォーマット規則は、ビデオユニットレベルでのフラグが、量子化パラメータの差動シグナリングが前記変換のために有効にされるかどうかを制御する、ことを定める、
方法。
【0131】
解決法17.
前記ビデオユニットレベルでの前記フラグは、コーディングユニット又は変換ユニットレベルでの第2フラグが差動量子化パラメータシグナリングの使用をシグナリングするために含まれるかどうかを制御する、
解決法16の方法。
【0132】
以下の解決法は、前のセクション(例えば、項目6)で説明された技術の実施例を示す。
【0133】
解決法18.
ビデオ処理方法であって、
1つ以上のビデオ領域を含み、各ビデオ領域が1つ以上のビデオユニットを含むビデオと、該ビデオのコーディングされた表現との間の変換を実行するステップを含み、
前記コーディングされた表現はフォーマット規則に従い、
前記フォーマット規則は、サブピクチャの数を示すピクチャレベルでの第1フラグと、サブピクチャ内のスライスの数を示すサブピクチャレベルでの第2フラグとの解釈を定める、
方法。
【0134】
解決法19.
前記フォーマット規則は、前記第1フラグが1にセットされ、前記第2フラグが1にセットされる場合に、前記ピクチャ内の少なくとも1つのサブピクチャが1よりも多いスライスを含む、ことを定める、
解決法18の方法。
【0135】
解決法20.
前記フォーマット規則は、前記第1フラグが0であることにより前記第2フラグが1にセットされるべきであり、各ピクチャには単一のスライスが存在する、ことを定める、
解決法18の方法。
【0136】
以下の解決法は、前のセクション(例えば、項目7)で説明された技術の実施例を示す。
【0137】
解決法21.
ビデオ処理の方法であって、
1つ以上のビデオピクチャを含み、各ビデオピクチャが1つ以上のスライス及び/又は1つ以上のタイルを含むビデオと、該ビデオのコーディングされた表現との間の変換を実行するステップを含み、
前記コーディングされた表現はフォーマット規則に従い、
前記フォーマット規則は、ビデオピクチャに関連したピクチャパラメータセット内のフィールドが、当該ビデオピクチャが異なる高さ又は幅の複数のタイル行又は列に分けられるかどうかを示す、ことを定める、
方法。
【0138】
解決法22.
前記コーディングされた表現内の第2フィールドは、前記ビデオピクチャのタイルが異なる高さを有する複数のスライス行に分けられるかどうかを示す、
解決法21の方法。
【0139】
解決法23.
前記第2フィールドは、前記複数のスライス行のスライス高さを示す、
解決法22の方法。
【0140】
以下の解決法は、前のセクション(例えば、項目8)で説明された技術の実施例を示す。
【0141】
解決法24.
ビデオ処理の方法であって、
1つ以上のビデオピクチャを含み、各ビデオピクチャが1つ以上のスライス及び/又は1つ以上のタイルを含むビデオと、該ビデオのビットストリームとの間の変換を実行するステップを含み、
前記コーディングされた表現はフォーマット規則に従い、
前記フォーマット規則は、適応パラメータセットが適応ループフィルタリングの指示を除く場合のビデオ領域に対する適応ループフィルタリングの適用可能性が第2規則に基づく、ことを定める、
方法。
【0142】
解決法25.
前記第2規則は、適応ループフィルタリングが前記ビデオ領域に対して無効にされることを定める、
解決法24の方法。
【0143】
解決法26.
前記第2規則は、適応ループフィルタリングが、シーケンスパラメータセットレベルでのフラグの値に基づき条件付きで許可される、ことを定める、
解決法24の方法。
【0144】
以下の解決法は、前のセクション(例えば、項目9)で説明された技術の実施例を示す。
【0145】
解決法27.
ビデオ処理の方法であって、
1つ以上のビデオピクチャを含み、各ビデオピクチャが1つ以上のスライス及び/又は1つ以上のタイルを含むビデオと、該ビデオのビットストリームとの間の変換を実行するステップを含み、
前記コーディングされた表現はフォーマット規則に従い、
前記フォーマット規則は、ピクチャパラメータセット内のコンフォーマンスウィンドウパラメータの明示的シグナリングが、幅及び高さが前記ビデオの最大幅及び最大高さであるピクチャについてはスキップされる、ことを定める、
方法。
【0146】
解決法28.
前記フォーマット規則は更に、前記明示的なシグナリングがスキップされる場合に、前記幅及び前記高さが前記最大幅及び前記最大高さに等しいかどうかを示すフラグを含めることを定める、
解決法27の方法。
【0147】
解決法29.
前記ビデオ領域はビデオピクチャを含む、
解決法1~28のいずれかの方法。
【0148】
解決法30.
前記ビデオユニットはビデオスライス又はビデオコーディングユニットを含む、
解決法1~29のいずれかの方法。
【0149】
解決法31.
前記変換は、前記ビデオを前記コーディングされた表現に符号化することを含む、
解決法1~30のいずれかの方法。
【0150】
解決法32.
前記変換は、前記コーディングされた表現を復号して、前記ビデオのピクセル値を生成することを含む、
解決法1~30のいずれかの方法。
【0151】
解決法33.
解決法1~32の1つ以上に記載される方法を実装するよう構成されたプロセッサを有するビデオ復号化装置。
【0152】
解決法34.
解決法1~32の1つ以上に記載される方法を実装するよう構成されたプロセッサを有するビデオ符号化装置。
【0153】
解決法35.
コンピュータコードが記憶されているコンピュータプログラム製品であって、
前記コードは、プロセッサによって実行されるときに、前記プロセッサに、解決法1~32のいずれかに記載される方法を実装させる、
コンピュータプログラム製品。
【0154】
解決法36.
本明細書で記載される方法、装置、又はシステム。
【0155】
図7は、ビデオ処理の例となる方法700のフローチャートである。動作702は、ビデオユニットを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行することを含み、規則は、ビデオのスケーリングリストに関する情報を適応パラメータセット(APS)に含めるかどうか又はどのように含めるかが、APSがクロマコンポーネント関連シンタックス要素を含むかどうかを示しかつシーケンスパラメータセット(SPS)内の1つ以上のシンタックス要素から独立している第1シンタックス要素に基づく、ことを定める。
【0156】
方法700のいくつかの実施形態で、スケーリングリストに関する情報は、色成分のスケーリングリストがAPSに含まれるかどうかを含む。方法700のいくつかの実施形態で、規則は、1つ以上のフィールドが、ビデオパラメータセット(VPS)、SPS、及びピクチャパラメータセット(PPS)のいずれか1つ以上を識別するために、APSに含まれる、ことを定める。方法700のいくつかの実施形態で、規則は、APSが、APSに関連したSPSを示すフィールドを含む、ことを定め、そのフィールドの値は0以上15以下の範囲内にあり、フィールドの値は、コーディングされたレイヤビデオシーケンス(Coded Layer Video Sequence,CLVS)内の1つ以上のビデオピクチャによって参照される全APSで同じである。方法700のいくつかの実施形態で、規則は、第2シンタックス要素がAPSに含まれるかどうかが、APSがクロマ成分関連シンタックス要素を含むかどうかを示す第1シンタックス要素の値に基づく、ことを定め、第2シンタックス要素は、スケーリングリストの値が参照スケーリングリストの値と同じであるかどうかを指定する。方法700のいくつかの実施形態で、規則は、APSとビデオパラメータセット(VPS)、SPS、及びピクチャパラメータセット(PPS)のいずれか1つ以上との間の暗黙的な関係が導出される、ことを定める。
【0157】
方法700のいくつかの実施形態で、規則は、APSがビデオユニットのヘッダによって参照される場合、及びビデオユニットがVPS、SPS、及びPPSのいずれか1つ以上に依存する場合に、APSがVSP,SPS、及びPPSのいずれか1つ以上と暗黙的に関連付けられる、ことを定める。方法700のいくつかの実施形態で、ビデオユニットのヘッダは、ピクチャヘッダ又はスライスヘッダを含む。方法700のいくつかの実施形態で、規則は、スケーリングリストに含まれるフラット量子化が、ユーザにより定義されたスケーリングリストがビデオのルーマビデオブロックに適用されるかどうかから独立して、ビデオのクロマビデオブロックに適用される、ことを定める。方法700のいくつかの実施形態で、規則は、ビデオのクロマビデオブロックのための明示的なスケーリングリストを除くビットストリームが、ビデオのルーマビデオブロックのための明示的なスケーリングリストを含むビットストリームに依存しない、ことを定める。方法700のいくつかの実施形態で、規則は、SPS内の1つ以上のシンタックス要素が、明示的なスケーリングリストが特定のビデオユニットのために使用されるかどうかを示すフラグを含む、ことを定める。方法700のいくつかの実施形態で、特定のビデオユニットは、低周波数の分離不可能な変換でコーディングされたビデオブロックを含む。
【0158】
方法700のいくつかの実施形態で、規則は、第1シンタックス要素がAPSに含まれるかどうかが、スケーリングリストがAPSに存在するかどうかを示すフラグの値に依存しない、ことを定める。方法700のいくつかの実施形態で、規則は、ビデオの異なる色成分について明示的なスケーリングリスト又はデフォルトのスケーリングリストを使用すべきかどうかが、APSで別々に指示又は制御される、ことを定める。方法700のいくつかの実施形態で、規則は、少なくとも1つのシンタックス要素が、ビデオのルーマ成分及び/又はビデオのクロマ成分のための明示的なスケーリングリストを有効にすべきかどうかを指定するためにSPS/PPS/PH/SH又はピクチャパラメータセット(PPS)又はピクチャヘッダ(PH)又はスライスヘッダ(SH)に加えられる、ことを定める。方法700のいくつかの実施形態で、規則は、SPS内の1つ以上のシンタックス要素が、フラット量子化又は明示的なスケーリングリストのどちらか一方がビデオのルーマ変換係数のために使用されるかどうかを示すフラグを含む、ことを定める。方法700のいくつかの実施形態で、規則は、SPSに加えられた1つ以上のシンタックス要素が、フラット量子化又は明示的なスケーリングリストのどちらか一方がクロマ-U及び/又はクロマ-V変換係数に使用されるかどうかを示す、ことを定める。方法700のいくつかの実施形態で、規則は、スケーリングリストがAPSに存在するかどうかを示すフラグの値が1に等しいときに第1シンタックス要素が0に等しい、ことを定める。方法700のいくつかの実施形態で、規則は、ビデオのビデオピクチャが4:0:0クロマフォーマットにあるときに、N組のスケーリング行列がAPSで示される、ことを更に定める。
【0159】
方法700のいくつかの実施形態で、規則は更に、ビデオのビデオピクチャが4:4:4クロマフォーマットにある場合、及び4:4:4クロマフォーマットの3つの色成分が別々にコーディングされることを別個の色平面フラグが示す場合に、M組のスケーリング行列がAPSで示される、ことを定める。方法700のいくつかの実施形態で、規則は、4:4:4クロマフォーマットの3つの色成分が別々にコーディングされることを別個の色平面フラグが示し、M組のスケーリング行列がAPSで示される場合に、(1)ルーマ、クロマ-U及びクロマ-V変換係数の夫々がルーマ-Yチャネルとして扱われ、(2)ルーマ、クロマ-U及びクロマ-V変換係数が同じスケーリング行列識別子を有する、ことを定める。方法700のいくつかの実施形態で、規則は、4:4:4クロマフォーマットの3つの色成分が別々にコーディングされることを別個の色平面フラグが示し、M組のスケーリング行列がAPSで示される場合に、(1)ルーマ変換係数のための第1スケーリング行列識別子がルーマ成分について導出され、(2)クロマ-U変換係数のための第2スケーリング行列識別子がクロマU成分について導出され、(3)クロマ-V変換係数のための第3スケーリング行列識別子がクロマV成分について導出される、ことを定める。方法700のいくつかの実施形態で、規則は、スケーリング行列がAPSに存在するかどうかを示すフラグの値が0に等しいときに第1シンタックス要素が1に等しい、ことを定める。方法700のいくつかの実施形態で、規則は更に、クロマ変換係数が明示的なスケーリングリストを使用することを許可されるかどうかがフラグの値に基づく、ことを定める。
【0160】
方法700のいくつかの実施形態で、規則は、フラグの値が0に等しい場合に、スケーリングリストがSPS、ピクチャヘッダ(PH)、及びスライスヘッダ(SH)について有効にされるかどうかを示すシンタックス要素の値にかかわらず、明示的なスケーリングリストがクロマ変換係数に使用されることを許可されない、ことを定める。方法700のいくつかの実施形態で、規則は、フラグの値が1に等しい場合に、明示的なスケーリングリストがクロマ変換係数に使用されることを許可される、ことを定める。方法700のいくつかの実施形態で、規則は更に、ビデオのビデオピクチャが4:2:0クロマフォーマット、4:2:2クロマフォーマット、及び/又は4:4:4クロマフォーマットを有する場合、及び別個の色平面フラグの値が0である場合に、N組のスケーリング行列がAPSで示される、ことを定める。
【0161】
方法700のいくつかの実施形態で、規則は更に、第1シンタックス要素が0よりも大きい場合、及びN組のスケーリング行列がAPSで示される場合に、クロマ-U及び/又はクロマ-V変換係数のスケーリング行列が、ルーマ変換係数についてAPSで示されているN組のスケーリング行列から導出される、ことを定める。方法700のいくつかの実施形態で、規則は更に、第1シンタックス要素が0よりも大きい場合、及びN組のスケーリング行列がAPSで示される場合に、クロマ-U及び/又はクロマ-V変換係数が明示的なスケーリングリストを使用することを許可されず、クロマ-U及び/又はクロマ-V変換係数がデフォルトのスケーリング係数を有するフラット量子化を使用することを許可される、ことを定める。方法700のいくつかの実施形態で、規則は、第1シンタックス要素の第1値が、スケーリングリストがAPSに存在するかどうかを示すフラグの値に依存しない、ことを定める。方法700のいくつかの実施形態で、規則は、第1シンタックス要素の第1値が、スケーリングリストがAPSに存在するかどうかを示すフラグの値が1に等しいときに0であるよう求められない、ことを定める。
【0162】
方法700のいくつかの実施形態で、規則は、スケーリングリストがAPSに存在するかどうかを示すフラグの値が第1シンタックス要素の第1値に基づく、ことを定め、規則は更に、第1シンタックス要素の第1値が、ピクチャヘッダ(PH)及び/又はスライスヘッダ(SH)内の1つ以上のシンタックス要素によって導出された1つ以上の値から導出される、ことを定める。方法700のいくつかの実施形態で、スケーリングリストがAPSに存在するかどうかを示すフラグの値は、第1シンタックス要素の第1値が0であるときに0であり、スケーリングリストがAPSに存在するかどうかを示すフラグの値は、第1シンタックス要素の第1値が1であるときに1である。方法700のいくつかの実施形態で、スケーリングリストがAPSに存在するかどうかを示すフラグの値は、第1シンタックス要素の第1値が0であるときに0であるよう求められない。方法700のいくつかの実施形態で、スケーリングリストがAPSに存在するかどうかを示すフラグの値は、第1シンタックス要素の第1値が0であるときに1であるよう求められない。方法700のいくつかの実施形態で、色成分はクロマ成分である。方法700のいくつかの実施形態で、第1シンタックス要素は、ルーマサンプリングに対するクロマサンプリングを示し、クロマ成分のアレイタイプと呼ばれる。方法700のいくつかの実施形態で、第1シンタックス要素が0に等しいことは、ビデオの色フォーマットが4:0:0であることを指定する。
【0163】
図8は、ビデオ処理の例となる方法800のフローチャートである。動作802は、ビデオと該ビデオのビットストリームとの間の変換を規則に従って実行することを含み、規則は、シンタックス要素が適応パラメータセット(APS)に含まれる、ことを定め、規則は、シンタックス要素が、クロマ残差スケーリングのための1つ以上のシンタックス要素がAPSに含まれるかどうかを示す、ことを定める。
【0164】
方法800のいくつかの実施形態で、規則は、APSがクロマ成分関連シンタックス要素を除外することをシンタックス要素が示す場合に、クロマ残差スケーリングのための1つ以上のシンタックス要素がAPSに含まれない、ことを定め、規則は、APS内のシンタックス要素が、クロマ残差スケーリングのための1つ以上のシンタックス要素がAPSに含まれないことを示す、ことを定める。方法800のいくつかの実施形態で、規則は、APSがクロマ成分関連シンタックス要素を含むことをシンタックス要素が示す場合に、クロマ残差スケーリングのための1つ以上のシンタックス要素がAPSに含まれる、ことを定め、規則は、APS内のシンタックス要素が、クロマ残差スケーリングのための1つ以上のシンタックス要素がAPSに含まれることを示す、ことを定める。方法800のいくつかの実施形態で、規則は、ビデオの現在のスライスがクロマ残差スケーリングを使用することを許可されているかどうかが、シンタックス要素に依存し、1つ以上のシンタックス要素に依存しない、ことを定める。方法800のいくつかの実施形態で、APS内のクロマ残差スケーリングのためのシンタックス要素は、クロマスケーリングを伴うルーママッピング(LMCS)に関する変数の絶対コードワード値を示す。方法800のいくつかの実施形態で、APS内のクロマ残差スケーリングのためのシンタックス要素は、クロマスケーリングを伴うルーママッピング(LMCS)に関する変数の符号を示す。
【0165】
図9は、ビデオ処理の例となる方法900のフローチャートである。動作902は、ビデオと該ビデオのビットストリームとの間の変換を規則に従って実行することを含み、規則は、クロマ残差スケーリングのための1つ以上のシンタックス要素が適応パラメータセット(APS)に含まれるかどうかが、APSがクロマコンポーネント関連シンタックス要素を含むかどうかを示す第1シンタックス要素に基づく、ことを定める。
【0166】
方法900のいくつかの実施形態で、規則は、1つ以上のシンタックス要素からの第2シンタックス要素の第2値が、第1シンタックス要素の第1値が0に等しいときに0に等しい、ことを定め、第2シンタックス要素は、APSネットワーク抽象化レイヤ(NAL)ユニットに関連し、APS NALユニットのAPSパラメータのタイプは、クロマスケーリングを伴うルーママッピング(LMCS)APSであり、APS NALユニットのAPSの第1識別子は、現在のピクチャ内のスライスによって参照されるピクチャヘッダ(PH)内の第2識別子に等しい。方法900のいくつかの実施形態で、規則は、1つ以上のシンタックス要素からの第2シンタックス要素の第2値が、第1シンタックス要素の第1値が1に等しいときに0よりも大きい、ことを定め、第2シンタックス要素は、APSネットワーク抽象化レイヤ(NAL)ユニットに関連し、APS NALユニットのAPSパラメータのタイプは、クロマスケーリングを伴うルーママッピング(LMCS)APSであり、APS NALユニットのAPSの第1識別子は、現在のピクチャ内のスライスによって参照されるピクチャヘッダ(PH)内の第2識別子に等しい。方法900のいくつかの実施形態で、APS内のクロマ残差スケーリングのための第1シンタックス要素は、クロマスケーリングに伴うルーママッピング(LMCS)に関する変数の絶対コードワード値を示す。方法700~900のいくつかの実施形態で、規則は、ビデオの色フォーマットが4:0:0であることを第1シンタックス要素又はシンタックス要素が示す、ことを定める。
【0167】
図10は、ビデオ処理の例となる方法1000のフローチャートである。動作1002は、ビデオブロックを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行することを含み、規則は、変換スキップに基づいた残差コーディングがスライスに対して無効にされるかどうかを示す第1シンタックス要素をスライスヘッダ(SH)に含めるかどうかを定め、規則は、第1シンタックス要素をSHに含めるかどうかが、変換スキップ(TS)モードがビデオブロックに対して有効にされるかどうかを示すシーケンスパラメータセット(SPS)内の第2シンタックス要素に選択的に基づく、ことを定める。
【0168】
方法1000のいくつかの実施形態で、規則は、TSモードが有効にされることを第2シンタックス要素が示すことに応答して、第1シンタックス要素がSHに選択的に含まれる、ことを定める。方法1000のいくつかの実施形態で、SPS内の第2シンタックス要素は、変換スキップがビデオブロックに適用されるかどうかを示すフラグが、変換ユニットシンタックスに存在するかどうかを示す。方法1000のいくつかの実施形態で、規則は、変換ユニットシンタックスにフラグが存在することを第2シンタックス要素が示すことに応答して、第1シンタックス要素がSHに選択的に含まれる、ことを定める。方法1000のいくつかの実施形態で、規則は、第1シンタックス要素の第1値が第2シンタックス要素の第2値に基づく、ことを定める。方法1000のいくつかの実施形態で、規則は、第2シンタックス要素の第2値が0であるときに第1シンタックス要素の第1値が0である、ことを定める。方法1000のいくつかの実施形態で、規則は、第1シンタックス要素が如何なる他のシンタックス要素にも基づかないことに応答して、第1シンタックス要素がSHに含まれない、ことを更に定める。
【0169】
方法1000のいくつかの実施形態で、規則は、へんかんすきっぷもー度が有効にされないビデオブロックに対して変換スキップに基づいた残差コーディング又はレギュラー残差コーディングのどちらか一方が有効にされるかどうかを示すよう1つ以上のシンタックス要素が含まれる、ことを定める。方法1000のいくつかの実施形態で、規則は、ビデオブロックが属するビデオセグメントレベルで1つ以上のシンタックス要素が示される、ことを定める。方法1000のいくつかの実施形態で、ビデオセグメントレベルはコーディングツリーユニット(CTU)、コーディングユニット(CU)、又は変換ユニット(TU)を含む。方法1000のいくつかの実施形態で、規則は、変換スキップに基づいた残差コーディングがビデオブロックに対して無効にされるかどうかを示すよう1つ以上のシンタックス要素がSPS、ピクチャパラメータセット(PPS)、ピクチャヘッダ(PH)又はSHで示される、ことを定める。方法1000のいくつかの実施形態で、規則は、変換スキップに基づいた残差コーディングがビデオブロックに対して有効にされるかどうかが、TSモードがビデオブロックに対して有効にされない場合に、ビデオブロックに関連したコーディングされた情報に基づき、ことを定める。方法1000のいくつかの実施形態で、コーディングされた情報はビデオブロックの量子化パラメータ(QP)値を含む。方法1000のいくつかの実施形態で、規則は、QP値が数XAWH以下である場合に、変換スキップに基づいた残差コーディング又はレギュラー残差コーディング(RRC)モードのどちらか一方がビデオブロックに対して有効にされる、ことを定める。方法1000のいくつかの実施形態で、Xは4に等しい。
【0170】
図11は、ビデオ処理の例となる方法1100のフローチャートである。動作1102は、ルーマブロックを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行することを有し、規則は、スライスヘッダ(SH)が第1シンタックス要素を含むかどうかが第2シンタックス要素に基づく、ことを定め、第1シンタックス要素は、デルタ量子化パラメータ(QP)の使用がルーマブロックの特定のスライスの1つ以上のコーディングユニット(CU)に対して有効にされるかどうかを示す。
【0171】
方法1100のいくつかの実施形態で、規則は、第1シンタックス要素がSHに含まれるかどうかが、デルタQPの使用がビデオの1つ以上のビデオピクチャに対して有効にされるかどうかを示すピクチャパラメータセット(PPS)に含まれている第2シンタックス要素に基づく、ことを定める。方法1100のいくつかの実施形態で、規則は、第2シンタックス要素の第2値が0であるときに、第1シンタックス要素がSHに含まれず、0の第1値を有していると推測される、ことを定め、規則は、第2シンタックス要素の第2値が1であるときに、第1シンタックス要素がSHに含まれる、ことを定める。方法1100のいくつかの実施形態で、規則は、第1シンタックス要素の第1値が第2シンタックス要素の第2値に基づく、ことを定める。方法1100のいくつかの実施形態で、規則は、ピクチャパラメータセット(PPS)に含まれている第2シンタックス要素が、デルタQPの使用がビデオの1つ以上のビデオピクチャに対して有効にされるかどうかを示す、ことを定め、規則は、第2シンタックス要素が、第1シンタックス要素がSHに含まれるかどうか、及び/又は(2)変換ユニットシンタックス及びパレットコーディングシンタックスが、現在CUのQP値とCUの予測値との間の差の絶対値を示す第3シンタックス要素、及び/又は現在CUのQP値とCUの予測値との間の差の符号を示す第4シンタックス要素を含むかどうかを制御する、ことを定める。方法1100のいくつかの実施形態で、規則は、ピクチャパラメータセット(PPS)が、ue(v)でコーディングされたPPSの識別子と、PPSを参照する各スライスについてルーマQPを示すse(v)でコーディングされた初期値と、(1)ph_cu_qp_delta_subdiv_intra_sliceシンタックス要素及びph_cu_qp_delta_subdiv_inter_sliceシンタックス要素がPPSを参照する1つ以上のピクチャヘッダ(PH)に存在するかどうかと、(2)現在CUのQP値とCUの予測値との間の差の絶対値を示す第3シンタックス要素が変換ユニットシンタックス及びパレットコーディングシンタックスに存在するかどうかとを示すu(1)でコーディングされた前記第2シンタックス要素と、クロマツールオフセットに関連したシンタックス要素がPPSに含まれるかどうかを示すu(1)でコーディングされた第4シンタックス要素とを含む、ことを定める。
【0172】
方法1100のいくつかの実施形態で、規則は、第2シンタックス要素の値が1であるときに、ph_cu_qp_delta_subdiv_intra_sliceシンタックス要素及びph_cu_qp_delta_subdiv_inter_sliceシンタックス要素がPPSを参照する1つ以上のPHに存在し、第3シンタックス要素が変換ユニットシンタックス及びパレットコーディングシンタックスに存在することを定め、規則は、第2シンタックス要素の値が0であるときに、ph_cu_qp_delta_subdiv_intra_sliceシンタックス要素及びph_cu_qp_delta_subdiv_inter_sliceシンタックス要素がPPSを参照する1つ以上のPHに存在せず、第3シンタックス要素が変換ユニットシンタックス及びパレットコーディングシンタックスに存在しない、ことを定める。方法1100のいくつかの実施形態で、1つ以上のPHからのPHは、次の構造:
【表35】
を含む。
【0173】
方法1100のいくつかの実施形態で、規則は、PPS内の第2シンタックス要素が、(1)ph_cu_qp_delta_subdiv_intra_sliceシンタックス要素及びph_cu_qp_delta_subdiv_inter_sliceシンタックス要素がPPSを参照する1つ以上のPHに存在することと、(2)第3シンタックス要素が変換ユニットシンタックス及びパレットコーディングシンタックスに存在することと、を示すときに、第3シンタックス要素が変換ユニットシンタックス及びパレットコーディングシンタックスに存在するかどうかを示す第5シンタックス要素をSHが含む、ことを定める。方法1100のいくつかの実施形態で、規則は、第5シンタックス要素の値が1であるときに、第3シンタックス要素が変換ユニットシンタックス及びパレットコーディングシンタックスに存在する、ことを定め、規則は、第5シンタックス要素の値が0であるときに、第3シンタックス要素が変換ユニットシンタックス及びパレットコーディングシンタックスに存在しない、ことを定める。方法1100のいくつかの実施形態で、規則は、第1シンタックス要素が、現在CUのQP値とCUの予測値との間の差の絶対値を示す第3シンタックス要素が変換ユニットシンタックス及びパレットコーディングシンタックスに存在するかどうかを制御する、ことを定める。方法1100のいくつかの実施形態で、規則は、第1シンタックス要素の第1値が1であるときに、第3シンタックス要素が変換ユニットシンタックス及びパレットコーディングシンタックスに含まれる、ことを定め、規則は、第1シンタックス要素の第1値が0であるときに、第3シンタックス要素が変換ユニットシンタックス及びパレットコーディングシンタックスに含まれない、ことを定める。
【0174】
方法1100のいくつかの実施形態で、規則は、ビデオのクロマブロックのためのcu_qp_offsetシンタックス要素がSHの第1シンタックス要素によって制御されない、ことを定め、規則は、クロマブロックのためのcu_qp_offsetシンタックス要素がピクチャヘッダ(PH)、ピクチャパラメータセット(PPS)、又はシーケンスパラメータセット(SPS)で示されたフラグに基づく、ことを定める。方法1100のいくつかの実施形態で、規則は、ピクチャヘッダ(PH)が、デルタQPの使用がルーマブロックの特定のスライスの1つ以上のCUに対して有効にされるかどうかを制御するフラグを含む、ことを更に定める。
【0175】
図12は、ビデオ処理の例となる方法1200のフローチャートである。動作1202は、ビデオピクチャを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行することを有し、規則は、ビデオピクチャの各サブピクチャが1つの長方形スライスしか含まないことを示す第1シンタックス要素に応答して、ピクチャパラメータセット(PPS)を参照する各ビデオピクチャ内の長方形スライスの数を示す、第2シンタックス要素に1をプラスしたものが、ビットストリームのコーディングされたレイヤビデオシーケンス(CLVS)内の各ビデオピクチャ内のサブピクチャの数を示す、第3シンタックス要素に1をプラスしたものに等しい、ことを定める。
【0176】
方法1200のいくつかの実施形態で、規則は、ビデオの第1ビデオピクチャ及び第2ビデオピクチャが、(1)第3シンタックス要素の値が0に等しく、(2)第4シンタックス要素が、長方形スライスモードがPPSを参照する各ビデオピクチャについて使用中であることと、スライスレイアウトがPPSに含まれることとを示し、(3)第1ビデオピクチャが1つのスライスしか含まず、(4)第2ビデオピクチャが複数のスライスを含む場合に、異なるピクチャパラメータセット(PPS)を参照する、ことを定める。方法1200のいくつかの実施形態で、規則は、ビデオピクチャのサブピクチャの夫々が1つ以上の長方形スライスを含み、第3シンタックス要素の値が0よりも大きいときに、ビデオピクチャの複数のサブピクチャの夫々がただ1つの長方形スライスのみを含むわけではない、ことを定め、規則は、第3シンタックス要素の値が0に等しいときに、各ビデオピクチャが複数のスライスを含む、ことを定める。方法1200のいくつかの実施形態で、規則は、第3シンタックス要素の第2値が0に等しいとき、かつ、PPSを参照する各ビデオピクチャが1つのスライスしか含まないときに、第1シンタックス要素の第1値が1に等しい、ことを定める。方法1200のいくつかの実施形態で、規則は、第3シンタックス要素の第2値が0よりも大きいとき、かつ、PPSを参照する各ビデオピクチャが1つのスライスしか含まないときに、第1シンタックス要素の第1値が1に等しい、ことを定める。
【0177】
方法1200のいくつかの実施形態で、規則は、ビデオピクチャの各サブピクチャが1つの長方形スライスしか含まないときに、第1シンタックス要素の第1値が1に等しい、ことを定める。方法1200のいくつかの実施形態で、規則は、PPS内のtile_idx_delta_present_flagシンタックス要素の存在が第2シンタックス要素に基づかない、ことを定める。方法1200のいくつかの実施形態で、規則は、PPS内のtile_idx_delta_present_flagシンタックス要素の存在が第4シンタックス要素に基づくことを定め、第4シンタックス要素に2をプラスしたものは、PPSを参照する各ビデオピクチャ内の長方形スライスの数を示す。方法1200のいくつかの実施形態で、規則は、ビデオピクチャ内のスライスの数が第4シンタックス要素に2をプラスしたものに等しい、ことを定める。方法1200のいくつかの実施形態で、規則は、ピクチャパーティショニングがPPSを参照する各ビデオピクチャに適用されないことをフラグが示すときに、ビデオピクチャ内のスライスの数が1に等しい、ことを定める。方法1200のいくつかの実施形態で、規則は、第1シンタックス要素が1の値を有しているときに、ビデオピクチャ内のスライスの数が第2シンタックス要素から1をマイナスしたものに等しい、ことを定める。
【0178】
図13は、ビデオ処理の例となる方法1300のフローチャートである。動作1302は、ビデオピクチャを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行することを有し、規則は、ビデオのビデオピクチャが、同じ高さを有している第1数のタイル行又は列及び異なる高さ又は幅を有している第2数のタイル行又は列を含むタイル行又は列に分けられるかどうかを示す1つ以上のシンタックス要素をピクチャパラメータセット(PPS)が含む、ことを定め、第1数のタイル行又は列は、第2数のタイル行又は列より前にビデオピクチャに位置付けられる。
【0179】
方法1300のいくつかの実施形態で、規則は、(1)PPS内のフラグが、ピクチャパーティショニングがPPSを参照する各ビデオピクチャに適用されないことを示し、(2)PPS内の第1シンタックス要素が、明示的に与えられたタイル列幅の数から1をマイナスしたものが1よりも大きいことを示す場合に、ビデオピクチャが、同じ幅の第1数のタイル列及び異なる幅を有している第2数のタイル列を含む2つよりも多いタイル列に分けられるかどうかを示す第2シンタックス要素をPPSが含む、ことを定め、第1数のタイル列は、第2数のタイル列より前にビデオピクチャに位置付けられる。方法1300のいくつかの実施形態で、規則は、(1)PPS内のフラグが、ピクチャパーティショニングがPPSを参照する各ビデオピクチャに適用されないことを示し、(2)PPS内の第3シンタックス要素が、明示的に与えられたタイル行高さの数から1をマイナスしたものが1よりも大きいことを示す場合に、ビデオピクチャが、同じ高さの第1数のタイル行及び異なる高さを有している第2数のタイル行を含む2つよりも多いタイル行に分けられるかどうかを示す第4シンタックス要素を前記PPSが含む、ことを定め、第1数のタイル行は、第2数のタイル行より前に前記ビデオピクチャに位置付けられる。方法1300のいくつかの実施形態で、規則は、タイル列幅及び/又はタイル行高さが、夫々、第2シンタックス要素及び第4シンタックス要素に基づき導出される、ことを定める。
【0180】
方法1300のいくつかの実施形態で、規則は、ビデオピクチャのタイルが複数のスライスで分けられる場合に、PPS内の1つ以上のシンタックス要素が、タイルが複数のスライス行に分けられるかどうかを示す第1シンタックス要素を含む、ことを定め、第1数のスライス行は同じ高さを有し、第2数のスライス行は異なる高さを有し、第1数のスライス行は、第2数のスライス行より前に前記タイルに位置付けられる。方法1300のいくつかの実施形態で、規則は、複数のスライスのスライス高さがPPS内の第2シンタックス要素の値に基づき導出される、ことを定め、第2シンタックス要素は、ビデオピクチャが、同じ高さの第1数のタイル行及び異なる高さを有している第2数のタイル行を含む2つよりも多いタイル行に分けられるかどうかを示し、第1数のタイル行は、第2数のタイル行より前に前記ビデオピクチャに位置付けられる。
【0181】
図14は、ビデオ処理の例となる方法1400のフローチャートである。動作1402は、ビデオ領域を含むビデオとビデオのビットストリームとの間の変換を規則に従って実行することを含み、規則は、適応ループフィルタリングデータを含む1つ以上の適応パラメータセット(APS)ネットワーク抽象化レイヤ(NAL)ユニットがないことに応答して、適応ループフィルタリング動作がビデオ領域に対して許可される、ことを定める。
【0182】
方法1400のいくつかの実施形態で、規則は更に、1に等しい一般制約シンタックス要素が、適応ループフィルタリングデータを含む1つ以上のAPS NALユニットの不存在を指定する、ことを定める。方法1400のいくつかの実施形態で、規則は更に、シーケンスパラメータセット(SPS)が、適応ループフィルタリング動作がコーディングされたレイヤビデオシーケンス(CLVS)に対して有効にされることを示す第2シンタックス要素を含む、ことを定める。方法1400のいくつかの実施形態で、規則は更に、シーケンスパラメータセット(SPS)が、適応ループフィルタリング動作がコーディングされたレイヤビデオシーケンス(CLVS)に対して無効にされることを示す第2シンタックス要素を含む、ことを定める。方法1400のいくつかの実施形態で、規則は更に、ピクチャヘッダ(PH)内の第2シンタックス要素が、ビデオ領域が属する現在のビデオピクチャに対して適応ループフィルタリング動作が有効にされることを示す、ことを定め、及び/又は規則は更に、スライスヘッダ(SH)内の第3シンタックス要素が、ビデオ領域が属する現在のスライスのルーマ及びクロマ色成分に対して適応ループフィルタリング動作が有効にされることを示す、ことを定める。
【0183】
方法1400のいくつかの実施形態で、規則は更に、ピクチャヘッダ(PH)内の第2シンタックス要素が、ビデオ領域が属する現在のビデオピクチャに対して適応ループフィルタリング動作が無効にされることを示す、ことを定め、及び/又は規則は更に、スライスヘッダ(SH)内の第3シンタックス要素が、ビデオ領域が属する現在のスライスのルーマ及びクロマ色成分に対して適応ループフィルタリング動作が無効にされることを示す、ことを定める。方法1400のいくつかの実施形態で、規則は更に、適応ループフィルタリング動作がビデオ領域のクロマ色成分に対して無効にされることと、クロスコンポーネント適応ループフィルタリング動作がビデオ領域に対して無効にされることとを定める。方法1400のいくつかの実施形態で、規則は更に、適応ループフィルタリング動作がビデオ領域のルーマ成分に使用される、ことを定める。方法1400のいくつかの実施形態で、規則は更に、次のシンタックス要素の値が0に等しい、ことを定める:ph_num_alf_aps_ids_luma、ph_alf_chroma_idc、slice_num_alf_aps_ids_luma、slice_alf_chroma_idc、及びsps_ccalf_enabled_flag。
【0184】
図15は、ビデオ処理の例となる方法1500のフローチャートである。動作1502は、ビデオ領域を含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行することを含み、規則は、適応ループフィルタリングデータを含む1つ以上の適応パラメータセット(APS)ネットワーク抽象化レイヤ(NAL)ユニットがないことに応答して、適応ループフィルタリング動作がビデオ領域に対して許可されない、ことを定める。
【0185】
方法1500のいくつかの実施形態で、規則は更に、シーケンスパラメータセット(SPS)が第2シンタックス要素及び第3シンタックス要素を含む、ことを定め、第2シンタックス要素は、コーディングされたレイヤビデオシーケンス(CLVS)に対して適応ループフィルタリング動作が無効にされることを示し、第3シンタックス要素は、コーディングされたレイヤビデオシーケンス(CLVS)に対してクロスコンポーネント適応ループフィルタリング動作が無効にされることを示す。
【0186】
図16は、ビデオ処理の例となる方法1600のフローチャートである。動作1602は、ビデオピクチャを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行することを含み、規則は、第2シンタックス要素の第2値が0に等しいことを示す1の値を第1シンタックス要素の第1値が有していることに応答して、適応ループフィルタリング動作又はクロスコンポーネント適応ループフィルタリング動作が許可されない、ことを定め、規則は、一般制約情報シンタックス構造が第1シンタックス要素を含む、ことを定め、規則は、0の値を有しているシーケンスパラメータセット(SPS)内の第2シンタックス要素が、クロスコンポーネント適応ループフィルタリング動作がビデオの全ビデオピクチャに対して無効にされることを示す、ことを定める。
【0187】
方法1600のいくつかの実施形態で、規則は、SPS内の第3シンタックス要素の第3値が、ALFがコーディングされたレイヤビデオシーケンス(CLVS)に対して無効にされることを示す0である、ことを定める。
【0188】
図17は、ビデオ処理の例となる方法1700のフローチャートである。動作1702は、1つ以上のビデオピクチャを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行することを含み、規則は、適応ループフィルタリングデータを含む適応パラメータセット(APS)の数を示す1つ以上のシンタックス要素、及び/又は適応ループフィルタリング動作若しくはクロスコンポーネント適応ループフィルタリング動作のAPS識別子を示す1つ以上のシンタックス要素を含めるかどうかが、適応ループフィルタリングデータを含むAPSネットワーク抽象化レイヤ(NAL)ユニットがビットストリームに存在するかどうかを示す第1シンタックス要素の存在に基づく、ことを定める。
【0189】
方法1700のいくつかの実施形態で、規則は、ビットストリームにおける適応ループフィルタリングデータを含むAPS NALユニットの不存在を第1シンタックス要素が示すことに応答して、1つ以上のシンタックス要素が含まれない、ことを定める。方法1700のいくつかの実施形態で、第1シンタックス要素は、(1)NALユニットがビデオ領域の予測ユニット(PU)の最初のビデオコーディングレイヤ(VCL)に先行すること、又は(2)NALユニットがビデオ領域のPUの最後のVCLに続くこと、を示すNALユニットヘッダ(NUH)の一種を有するネットワーク抽象化レイヤ(NAL)ユニットがないことを示す。
【0190】
方法1700のいくつかの実施形態で、1つ以上のシンタックス要素は、適応ループフィルタリングデータを含み、現在のビデオピクチャ内のビデオスライスによって参照されるAPSの数を示す第2シンタックス要素を含み、第2シンタックス要素はピクチャヘッダ(PH)に含まれる。方法1700のいくつかの実施形態で、1つ以上のシンタックス要素は、適応ループフィルタリングデータを含む第1APSの第1APS識別子であり、現在のビデオピクチャ内のスライスのルーマ成分によって参照される第1APS識別子を示す第3シンタックス要素、又は適応ループフィルタリングデータを含む第2APSの第2APS識別子であり、現在のビデオピクチャ内のスライスのクロマ色成分によって参照される第2APS識別子を示す第4シンタックス要素、又は適応ループフィルタリングデータを含む第3APSの第3APS識別子であり、現在のビデオピクチャ内のスライスのCbクロマ色成分によって参照される第3APS識別子を示す第5シンタックス要素、又は適応ループフィルタリングデータを含む第4APSの第4APS識別子であり、現在のビデオピクチャ内のスライスのCrクロマ色成分によって参照される第4APS識別子を示す第6シンタックス要素を含み、第3シンタックス要素、第4シンタックス要素、第5シンタックス要素、又は第6シンタックス要素はピクチャヘッダ(PH)に含まれる。
【0191】
図18は、ビデオ処理の例となる方法1800のフローチャートである。動作1802は、ビデオと該ビデオのビットストリームとの間の変換を規則に従って実行することを含み、規則は、次の:適応ループフィルタリング動作、クロスコンポーネント適応ループフィルタリング動作、クロマスケーリングを伴ったルーママッピング(LMCS)動作、又は1つ以上のユーザ定義のスケーリングリスト、のうちのいずれか1つ以上が無効にされることを示すよう、1つ以上のシンタックス要素がパラメータセット又はヘッダ又はシンタックス構造で示される、ことを定める。
【0192】
方法1800のいくつかの実施形態で、パラメータセットはシーケンスパラメータセット(SPS)又はピクチャパラメータセット(PPS)を含む。方法1800のいくつかの実施形態で、ヘッダはピクチャヘッダ(PH)又はスライスヘッダ(SH)を含む。方法1800のいくつかの実施形態で、シンタックス構造は、一般制約情報シンタックス構造を含む。
【0193】
図19は、ビデオ処理の例となる方法1900のフローチャートである。動作1902は、ビデオピクチャを含むビデオと該ビデオのビットストリームとの間の変換を規則に従って実行することを含み、規則は、ルーマサンプルの単位で表される、ピクチャパラメータセット(PPS)を参照する各ビデオピクチャの幅が、各ビデオピクチャによって参照される、ルーマサンプルの単位でシーケンスパラメータセット(SPS)において示される最大ピクチャ幅に等しく、かつ、ルーマサンプルの単位で表される、PPSを参照する各ビデオピクチャの高さが、ルーマサンプルの単位でSPSにおいて示される最大ピクチャ高さに等しいことに応答して、コンフォーマンスウィンドウパラメータのセットがピクチャパラメータセット(PPS)から省略される、ことを定める。
【0194】
方法1900のいくつかの実施形態で、規則は、特定の値を有するシンタックス要素が、(1)各ビデオピクチャの幅が最大ピクチャ幅に等しく、(2)各ビデオピクチャの高さが最大ピクチャ高さに等しい、ことを示す。方法1900のいくつかの実施形態で、規則は、各ビデオピクチャの幅を示すPPSシンタックス要素の第1値が、最大ピクチャ幅を示すSPSシンタックス要素の第2値に等しいことと、(2)各ビデオピクチャの高さを示すSPSシンタックス要素の第3値が、最大ピクチャ高さを示すSPSシンタックス要素の第4値に等しいこととに応答して、シンタックス要素が0に等しいことを定める。方法1900のいくつかの実施形態で、シンタックス要素は、コンフォーマンスクロッピングウィンドウオフセットパラメータがPPSに存在するかどうかを指定する。方法1900のいくつかの実施形態で、規則は、各ビデオピクチャの幅及び各ビデオピクチャの高さを示すシンタックス要素をPPSが含むことを指定する。
【0195】
方法1900のいくつかの実施形態で、規則は、1の値から特定の値をマイナスした数を有するシンタックス要素が、(1)各ビデオピクチャの幅が最大ピクチャ幅よりも小さく、(2)各ビデオピクチャの高さが最大ピクチャ高さよりも小さいことを示す、ことを定める。方法1900のいくつかの実施形態で、規則は、シンタックス要素が特定の値を有することに応答して、コンフォーマンスウィンドウパラメータのセットがPPSに含まれない、ことを定める。方法1900のいくつかの実施形態で、コンフォーマンスウィンドウパラメータのセットは、コンフォーマンスクロッピングウィンドウオフセットパラメータがPPSにおいて次に続くかどうかを示す第1シンタックス要素と、ピクチャ座標で指定される長方形領域に関して、コーディングされたレイヤビデオシーケンス(CLVS)内のビデオピクチャのサンプルを示す4つの追加シンタックス要素とを含む。方法1900のいくつかの実施形態で、コンフォーマンスウィンドウパラメータのセットの値は、SPSに含まれるコンフォーマンスウィンドウパラメータの第2セットに等しいと推測される。方法1900のいくつかの実施形態で、コンフォーマンスウィンドウパラメータの第2セットは、SPSにおいて次に続くかどうかを示す第6シンタックス要素と、(1)最大ピクチャ幅に等しい幅、及び(2)最大ピクチャ高さに等しい高さを有する1つ以上のビデオピクチャに適用されるクロッピングウィンドウの座標を指定する4つの追加シンタックスとを含む。
【0196】
本明細書中、「ビデオ処理」(video processing)という用語は、ビデオ符号化(video encoding)、ビデオ復号化(video decoding)、ビデオ圧縮(video compression)又はビデオ圧縮解除(video decompression)を指し得る。例えば、ビデオ圧縮アルゴリズムは、ビデオのピクセル表現から、対応するビットストリーム表現への変換中に、又はその逆も同様に、適用されてもよい。現在のビデオブロックのビットストリーム表現は、例えば、シンタックスによって定義されるような、ビットストリーム内でコロケートされているか又は異なった場所に広がっているかのどちらかであるビットに対応してもよい。例えば、マクロブロックは、変換及びコーディングされた誤差残余値に関して、更には、ビットストリーム内のヘッダ及び他のフィールドにおけるビットを用いて、符号化されてよい。更に、変換中に、デコーダは、上記の解決法で記載されるように、決定に基づき、いくつかのフィールドが存在又は不存在であり得ると知った上で、ビットストリームをパースし得る。同様に、エンコーダは、特定のシンタックスフィールドが含まれるべきか又は含まれないべきかを決定し、それに応じて、コーディングされた表現にシンタックス要素を含めること又はコーディングされた表現からシンタックス要素を除くことによって、コーディングされた表現を生成し得る。
【0197】
本明細書中で記載されている開示された及び他の解決法、例、実施形態、モジュール及び機能動作は、デジタル電子回路で、あるいは、本明細書で開示されている構造及びそれらの構造的な同等物を含むコンピュータソフトウェア、ファームウェア、又はハードウェアで、あるいは、それらのうちの1つ以上の組み合わせで実装可能である。開示された及び他の実施形態は、1つ以上のコンピュータプログラム製品、つまり、データ処理装置によって実行されるか又はその動作を制御するためにコンピュータ可読媒体で符号化されたコンピュータプログラム命令の1つ以上のモジュール、として実装可能である。コンピュータ可読媒体は、マシン可読記憶デバイス、マシン可読記憶基板、メモリデバイス、マシン可読な伝播信号に影響を与える物質の組成、又はそれらの1つ以上の組み合わせであることができる。「データ処理装置」という用語は、例として、プログラム可能なプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含む、データを処理するための全ての装置、デバイス、及びマシンを包含する。装置は、ハードウェアに加えて、問題となっているコンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらの1つ以上の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成された信号、例えば、マシンにより生成された電気的、光学的、又は電磁気信号であり、適切なレシーバ装置への伝送のために情報を符号化するよう生成される。
【0198】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる。)は、コンパイル済み又は解釈済みの言語を含む如何なる形式のプログラミング言語でも記述可能であり、それは、スタンドアロンプログラムとして又はコンピューティング環境における使用に適したモジュール、コンポーネント、サブルーチン、若しくは他のユニットとしてを含め、如何なる形式でもデプロイ可能である。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するわけではない。プログラムは、問題となっているプログラムに専用の単一のファイルで、又は複数の協調したファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの部分を保存するファイル)で、他のプログラム又はデータ(例えば、マークアップ言語文書で保存された1つ以上のスクリプト)を保持するファイルの部分において保存可能である。コンピュータプログラムは、1つのコンピュータで、あるいは、1つの場所に位置しているか、又は複数の場所にわたって分布しており、通信ネットワークによって相互接続されている複数のコンピュータで実行されるようデプロイ可能である。
【0199】
本明細書で説明されているプロセス及びロジックフローは、入力データに作用して出力を生成することによって機能を実行するよう1つ以上のコンピュータプログラムを実行する1つ以上のプログラム可能なプロセッサによって実行可能である。プロセス及びロジックフローはまた、専用のロジック回路、例えば、FPGA(Field Programmable Gate Array)又はASIC(Application Specific Integrated Circuit)によっても実行可能であり、装置は、そのようなものとして実装可能である。
【0200】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用のマイクロプロセッサ及び専用のマイクロプロセッサの両方、並びにあらゆる種類のデジタルコンピュータのいずれか1つ以上のプロセッサを含む。一般に、プロセッサは、リード・オンリー・メモリ若しくはランダム・アクセス・メモリ又はその両方から命令及びデータを読み出すことになる。コンピュータの必須の要素は、命令を実行するプロセッサと、命令及びデータを保存する1つ以上のメモリデバイスとである。一般に、コンピュータはまた、データを保存する1つ以上の大容量記憶デバイス、例えば、磁気、光学磁気ディスク、又は光ディスクを含むか、あるいは、そのような1つ以上の大容量記憶デバイスからのデータの受信若しくはそれへのデータの転送又はその両方のために動作可能に結合されることになる。しかし、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令及びデータを保存するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、例えば、消去可能なプログラム可能リード・オンリー・メモリ(EPROM)、電気的消去可能なプログラム可能リード・オンリー・メモリ(EEPROM)、及びフラッシュメモリデバイス;磁気ディスク、例えば、内蔵ハードディスク又はリムーバブルディスク;光学磁気ディスク;並びにコンパクトディスク型リード・オンリー・メモリ(CD ROM)及びデジタルバーサタイルディスク型リード・オンリー・メモリ(DVD-ROM)ディスクを含む全ての形式の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用のロジック回路によって強化されるか、あるいは、それに組み込まれ得る。
【0201】
本明細書は、多数の詳細を含むが、それらは、あらゆる対象の又は請求される可能性があるものの範囲に対する限定としてではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別々の実施形態に関連して本明細書で説明されている特定の特徴は、単一の実施形態で組み合わせても実装可能である。逆に、単一の実施形態に関連して説明されている様々な特徴はまた、複数の実施形態で別々に、又は何らかの適切なサブコンビネーションで実装可能である。更に、特徴は、特定の組み合わせで動作するものとして先に説明され、更には、そのようなものとして最初に請求されることがあるが、請求されている組み合わせからの1つ以上の特徴は、いくつかの場合に、その組み合わせから削除可能であり、請求されている組み合わせは、サブコンビネーション又はサブコンビネーションの変形に向けられてもよい。
【0202】
同様に、動作は、特定の順序で図面において表されているが、これは、所望の結果を達成するために、そのような動作が示されているその特定の順序で又は順次的な順序で実行されること、あるいは、表されている全ての動作が実行されることを求めている、と理解されるべきではない。更に、本明細書で説明されている実施形態における様々なシステムコンポーネントの分離は、全ての実施形態でそのような分離を求めている、と理解されるべきではない。
【0203】
ほんのわずかの実施及び例が説明されており、他の実施、強化及び変形は、本特許文献で記載及び例示されているものに基づいて行われ得る。