(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-04-03
(54)【発明の名称】映像ビットストリームにおける一般的な制約フラグの使用
(51)【国際特許分類】
H04N 19/70 20140101AFI20230327BHJP
H04N 19/174 20140101ALI20230327BHJP
【FI】
H04N19/70
H04N19/174
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022548756
(86)(22)【出願日】2021-02-10
(85)【翻訳文提出日】2022-08-29
(86)【国際出願番号】 CN2021076552
(87)【国際公開番号】W WO2021160176
(87)【国際公開日】2021-08-19
(31)【優先権主張番号】PCT/CN2020/075194
(32)【優先日】2020-02-14
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(71)【出願人】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】ドン ジピン
(72)【発明者】
【氏名】ジャン リー
(72)【発明者】
【氏名】ジャン カイ
(72)【発明者】
【氏名】ワン イェクイ
(72)【発明者】
【氏名】ファン クイ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA01
5C159MA04
5C159MA05
5C159MA14
5C159MA21
5C159MC11
5C159ME01
5C159NN11
5C159PP05
5C159PP06
5C159PP07
5C159RB09
5C159RC11
5C159RC12
5C159TA26
5C159TA35
5C159TB04
5C159TB06
5C159TB12
5C159TD02
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
映像符号化または映像復号を含む映像処理の方法、装置、システムについて説明する。この方法の一例は、1つ以上のサブピクチャを含む映像ピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含む。このビットストリームは、一般的な制約情報を含む構文要素の制約フラグに基づいて、1つ以上の構文構造を制約することを規定するフォーマット規則に準拠する。
【選択図】
図7
【特許請求の範囲】
【請求項1】
映像処理方法であって、
1つ以上のサブピクチャを含む映像ピクチャを含む映像と前記映像のビットストリームとの変換を行うこと、を含み、
前記ビットストリームは、フォーマット規則に準拠し、
前記フォーマット規則は、一般的な制約情報を含む構文要素の制約フラグに基づいて、1つ以上の構文構造を制約することを規定する、
方法。
【請求項2】
前記制約フラグは、映像パラメータセットによって規定される1つ以上の出力レイヤセット内の各映像ピクチャが単一のタイルを含むかどうかを示すone_tile_per_pic_constraint_flagを含み、
前記1つ以上の構文構造は、one_tile_per_constraint_flagが1に等しい場合、1に制約されるピクチャ内のタイルの数を示す第1の構文構造NumTilesInPicを含む、
請求項1に記載の方法。
【請求項3】
前記制約フラグは、映像パラメータセットで規定される1つ以上の出力レイヤセットにおける各映像ピクチャが単一のスライスを含むかどうかを示すone_slice_per_pic_constraint_flagを含み、
前記1つ以上の構文構造は、各映像ピクチャにおける矩形スライスの数から1を除いた数を示す第2の構文要素num_slices_in_pic_minus1を含む、
請求項1に記載の方法。
【請求項4】
one_slice_per_pic_constraint_flagが1に等しく、かつ、映像ピクチャにおける矩形スライスの使用を示す別の構文要素rect_slice_flagが1に等しい場合に、前記第2の構文要素num_slices_in_pic_minus1は0に制約される、
請求項3に記載の方法。
【請求項5】
one_slice_per_pic_constraint_flagが1に等しく、かつ、映像ピクチャにおける矩形スライスの使用を示す別の構文要素rect_slice_flagが0に等しい場合に、前記ビットストリームの各スライスヘッダの前記第2の構文要素num_slices_in_pic_minus1は、映像ピクチャのタイルの数から1を除いた数に等しいように制約される、
請求項3に記載の方法。
【請求項6】
前記制約フラグは、映像ピクチャが単一のサブピクチャを含むかどうかを示すone_subpic_per_pic_constraintフラグを含み、
前記1つ以上の構文要素は、one_subpic_per_pic_constraintが1に等しい場合に0に制約される映像ピクチャ内のサブピクチャの数を示す第3の構文要素sps_num_subpics_minus1を含む、
請求項1に記載の方法。
【請求項7】
前記制約フラグは、映像パラメータセットによって規定される1つ以上の出力レイヤセット内のすべてのピクチャのsps_subpic_info_present_flagが0に等しいかどうかを示すフラグを含み、
前記1つ以上の構文構造は、one_subpic_per_pic_constraintが1に等しい場合に0に制約される映像ピクチャ内のサブピクチャの数を示す第3の構文要素sps_num_subpics_minus1を含む、
請求項1に記載の方法。
【請求項8】
0に等しいsps_subpic_info_present_flagは、各映像ピクチャが1つのサブピクチャを含むことを示し、サブピクチャ情報が存在しない、
請求項7に記載の方法。
【請求項9】
前記1つ以上の構文要素は、スライスパラメータセット、映像パラメータセット、ピクチャパラメータセット、ピクチャヘッダまたはスライスヘッダ内にある、
請求項1~8のいずれかに記載の方法。
【請求項10】
前記1つ以上の構文要素は、コーディングツールが有効化されるかどうかを示す構文フラグを含む、
請求項9に記載の方法。
【請求項11】
前記構文フラグは、前記制約フラグが1に等しい場合、前記コーディングツールが無効化されていることを示す0に制約される、
請求項10に記載の方法。
【請求項12】
前記構文フラグは、前記制約フラグに基づいてオーバーライドされる、
請求項10または11に記載の方法。
【請求項13】
前記構文フラグが前記ビットストリームに存在するかどうかは、前記制約フラグに基づく、
請求項9~12のいずれかに記載の方法。
【請求項14】
前記制約フラグが1に等しい場合、前記ビットストリームにおいて前記構文フラグは省略される、
請求項13に記載の方法。
【請求項15】
前記構文フラグは、前記コーディングツールが無効化されることを示す0に等しいと推論される、
請求項14に記載の方法。
【請求項16】
前記制約フラグは、コーディングされたレイヤ映像シーケンス(CLVS)において解像度変更がないことを示し、
前記1つ以上の構文要素は、前記CLVSにおいて解像度変更が許可されるかどうかを示すシーケンスパラメータセットにおける第1の構文要素を含む、
請求項9に記載の方法。
【請求項17】
前記制約フラグが1に等しい場合に、前記ビットストリームにおいて前記第1の構文要素は省略される、
請求項16に記載の方法。
【請求項18】
前記第1の構文要素は、前記CLVSにおいて前記解像度変更が許可されないことを示す0と推論される、
請求項17に記載の方法。
【請求項19】
前記1つ以上の構文要素は、さらに、スケーリングウィンドウオフセットパラメータを示す第2の構文要素を含み、
前記第2の構文要素が前記ビットストリームに存在するかどうかは、少なくとも前記制約フラグまたは前記第1の構文要素に基づく、
請求項16から18のいずれかに記載の方法。
【請求項20】
前記第1の構文要素は、前記CLVSにおいて前記解像度変更が許可されないことを示す0に等しい場合、前記ビットストリームにおいて前記第2の構文要素を省略する、
請求項19に記載の方法。
【請求項21】
前記制約フラグが、前記CLVSにおいて解像度変更がないことを示す1に等しい場合、前記ビットストリームにおいて前記第2の構文要素を省略する、
請求項19に記載の方法。
【請求項22】
前記第2の構文要素は、0と推論される、
請求項20または21に記載の方法。
【請求項23】
前記制約フラグは、映像ピクチャが単一のスライスを含むかどうかを示すone_slice_per_pic_constraintフラグを含み、
前記1つ以上の構文要素は、映像ピクチャが単一のサブピクチャを含むかどうかを示す構文フラグone_subpic_per_pic_constraint_flagを含む、
請求項9に記載の方法。
【請求項24】
前記制約フラグが1に等しい場合、前記構文フラグone_subpic_per_pic_constraint_flagを前記ビットストリームにおいて省略し、
前記構文フラグは、映像ピクチャが1つのサブピクチャを含むことを示す1と推論される、
請求項23に記載の方法。
【請求項25】
前記構文フラグone_subpic_per_pic_constraint_flagは、前記制約フラグが0に等しい場合に、前記ビットストリームに含まれる、
請求項23に記載の方法。
【請求項26】
前記制約フラグは、変換スキップが前記変換のために許可されないかどうかを示すno_transform_skip_constraint_flagを含み、
前記1つ以上の構文要素は、ブロック差動パルス符号変調(BDPCM)コーディングツールが許可されないかどうかを示す構文フラグno_bdpcm_constraint flagを含む、
請求項19に記載の方法。
【請求項27】
前記制約フラグは変換スキップが許可されないことを示す1に等しい場合に、前記構文フラグは、前記BDPCMコーディングツールが許可されないことを示す1に制約される、
請求項26に記載の方法。
【請求項28】
前記制約フラグは変換スキップが許可されないことを示す1に等しい場合に、前記ビットストリームにおいて前記構文フラグを省略する、
請求項26に記載の方法。
【請求項29】
前記構文フラグは、前記BDPCMコーディングツールが許可されないことを示す1と推論される、
請求項28に記載の方法。
【請求項30】
前記ビットストリーム中に前記制約フラグが存在するかどうかは、前記構文構造中の少なくとも1つの他の制約フラグに基づく、
請求項1から29のいずれかに記載の方法。
【請求項31】
前記少なくとも1つの他の制約フラグは、制約グループフラグと定義される、
請求項30に記載の方法。
【請求項32】
前記映像のプロファイルのコーディングツールのタイプに基づいて、複数の制約フラグをグループ分けする、
請求項31に記載の方法。
【請求項33】
1つのグループにおける制約フラグの値が、対応する制約グループフラグに基づいて決定される、
請求項30~32のいずれかに記載の方法。
【請求項34】
制約フラグが前記ビットストリームに存在するかどうかは、対応する制約グループフラグに基づいて決定される、
請求項30~32のいずれかに記載の方法。
【請求項35】
前記ビットストリームにおいて前記制約フラグが省略されている場合に、前記制約フラグは0と推論される、
請求項34に記載の方法。
【請求項36】
前記変換は、前記映像を前記ビットストリームに符号化することを含む、
請求項1~35のいずれかに記載の方法。
【請求項37】
前記変換は、前記ビットストリームから前記映像を復号することを含む、
請求項1~35のいずれかに記載の方法。
【請求項38】
映像のビットストリームを記憶する方法であって、
1つ以上のサブピクチャを含む映像ピクチャを含む前記映像のビットストリームを生成することであって、
前記ビットストリームは、一般的な制約情報を含む構文要素の制約フラグに基づいて、1つ以上の構文要素を制約することを規定するフォーマット規則に準拠する、
生成することと、
前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することと、を含む、
方法。
【請求項39】
請求項1~38の1項以上に記載の方法を実装するように構成される処理装置を備える、映像復号化装置。
【請求項40】
請求項1~38の1項以上に記載の方法を実装するように構成される処理装置を備える、映像符号化装置。
【請求項41】
コンピュータコードが記憶されたコンピュータプログラム製品であって、
前記コードは、処理装置により実行されると、前記処理装置に、請求項1~38のいずれかに記載の方法を実装させる、
コンピュータプログラム製品。
【請求項42】
本明細書に記載の方法、装置、方法に従って生成されたビットストリーム、またはシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
パリ条約に基づく適用可能な特許法および/または規則に基づいて、本願は、2020年2月14日出願の国際特許出願第PCT/CN2020/075194号の優先権および利益を適時に主張することを目的とする。法に基づくすべての目的のために、上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
【0002】
この特許明細書は、画像および映像の符号化および復号化に関する。
【背景技術】
【0003】
デジタル映像は、インターネット及び他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像を受信及び表示することが可能である接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
本明細書は、映像のコーディング表現と映像の画素値との変換を行う映像処理のために、映像エンコーダおよびデコーダによって使用できる技術を開示する。
【0005】
1つの例示的な態様において、映像処理方法が開示される。この方法は、映像スライスを含む映像ピクチャと映像のビットストリーム表現との変換を行うことを含む。このビットストリームは、映像スライスのスライスタイプが、この映像ピクチャのピクチャヘッダからの特定の情報をこの映像スライスのスライスヘッダに継承させる方法を決定することを規定するフォーマット規則に準拠する。
【0006】
別の例示的な態様において、映像処理方法が開示される。この方法は、映像スライスを含む映像ピクチャと映像のビットストリーム表現との変換を行うことを含む。このビットストリームは、映像スライスのスライスタイプが映像スライスヘッダにおける第1の構文要素の値を決定することを規定するフォーマット規則に準拠する。第1の構文要素は、時間的動きベクトル予測に使用される同一位置に配置された(Collocated)ピクチャの参照インデックスを規定する。
【0007】
別の例示的な態様において、映像処理方法が開示される。この方法は、映像スライスを含む映像ピクチャと映像のビットストリーム表現との変換を行うことを含む。このビットストリームは、映像スライスのスライスタイプがタイプPであり、時間的動きベクトル予測が有効化されている場合、同一位置に配置された参照ピクチャリストにおける参照ピクチャのための参照ピクチャリサンプリング(RPR)の使用を無効化することを規定するフォーマット規則に準拠する。参照ピクチャは、時間的動きベクトル予測に使用される映像スライスの同一位置に配置されたピクチャの参照インデックスによって示される。
【0008】
別の例示的な態様において、映像処理方法が開示される。この方法は、映像スライスを含む映像ピクチャと映像のビットストリーム表現との変換を行うことを含む。このビットストリームは、映像スライスヘッダにおける構文要素が、この映像スライスが参照ピクチャリスト0と同一位置に配置されていないことを示す場合、この映像スライスのスライスタイプはタイプPを排除することを規定するフォーマット規則に準拠する。
【0009】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のサブピクチャを含む映像ピクチャを含む映像と、この映像のビットストリームとの変換を行うことを含む。このビットストリームは、映像ピクチャにおけるサブピクチャの数に応答して、コーディングされたレイヤ映像シーケンスにおける1つのサブピクチャの境界をまたいで演算を行うかどうかを示す第1の構文要素を選択的に含めることを規定するフォーマット規則に準拠する。
【0010】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のサブピクチャを含む映像ピクチャを含む映像と、この映像のビットストリームとの変換を行うことを含む。このビットストリームは、ビットストリームにおける映像ピクチャのサブピクチャの数が、ビットストリームにおける制約フラグによって制約されることを規定するフォーマット規則に準拠する。
【0011】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のサブピクチャを含む映像ピクチャを含む映像と、この映像のビットストリームとの変換を行うことを含む。このビットストリームは、1つのサブピクチャにおけるスライスの数によって、スライスの幅を示す構文要素を信号通知する方法が決定されることを規定するフォーマット規則に準拠し、このスライスの幅は複数のタイル列として規定される。
【0012】
別の例示的な態様において、映像処理方法が開示される。この方法は、映像ピクチャにおける1つ以上のサブピクチャの各々が単一のスライスを含むかどうかを、制約フラグに基づいて決定することを規定するフォーマット規則に従って、1つ以上のサブピクチャを含む映像ピクチャを含む映像と、この映像のビットストリームとの変換を行うことを含む。
【0013】
別の例示的な態様において、映像処理方法が開示される。この方法は、映像ピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含む。映像ピクチャのうちの少なくとも1つは、1つ以上のサブピクチャを含む。このビットストリームは、変換のサブピクチャサブビットストリーム抽出処理中に、1つ以上の対象となるサブピクチャの出力サブビットストリームを決定するために、異なる映像ピクチャにわたる各対象となるサブピクチャは、同じサブピクチャインデックスを使用することを規定するフォーマット規則に準拠する。
【0014】
別の例示的な態様において、映像処理方法が開示される。この方法は、映像ピクチャを含む映像のビットストリームから1つ以上の対象となるサブピクチャのサブビットストリームを抽出することによって、出力サブビットストリームを決定することを含む。映像ピクチャのうちの少なくとも1つは、1つ以上のサブピクチャを含み、出力サブビットストリームは、1つ以上の対象となるサブピクチャが出力サブビットストリームにおける単一のサブピクチャとして表現されることを規定するフォーマット規則に準拠する。
【0015】
別の例示的な態様において、映像処理方法が開示される。この方法は、瞬時復号更新(IDR)ピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含む。このビットストリームは、IDRピクチャのスライスヘッダに参照ピクチャリストに関連付けられた1つ以上の構文要素が存在することを規定するフォーマット規則に準拠する。
【0016】
別の例示的な態様において、映像処理方法が開示される。この方法は、輝度映像ブロックおよびクロマ映像ブロックを含む映像と、この映像のビットストリームとの変換を行うことを含む。輝度映像ブロックは輝度分割ツリーに従って分割され、クロマ映像ブロックはクロマ分割ツリーに従って分割される。このビットストリームは、輝度分割ツリーを示す輝度ブロック分割情報と、クロマ分割ツリーを示すクロマブロック分割情報とを含む。このビットストリームは、クロマブロック分割情報と輝度ブロック分割情報とを異なるようにすることを規定する規則に準拠している。
【0017】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のサブピクチャを含む映像ピクチャを含む映像と、この映像のビットストリームとの変換を行うことを含む。このビットストリームは、一般的な制約情報を含む構文要素の制約フラグに基づいて、1つ以上の構文構造を制約することを規定するフォーマット規則に準拠する。
【0018】
別の例示的な態様において、映像処理方法が開示される。この方法は、映像スライスを含む映像ピクチャと映像のビットストリーム表現との変換を行うことを含む。このビットストリームは、映像スライスのスライスタイプが、この映像ピクチャのピクチャヘッダからの特定の情報をこの映像スライスのスライスヘッダに継承させる方法を決定することを規定するフォーマット規則に準拠する。
【0019】
別の例示的な態様において、映像処理方法が開示される。この方法は、映像の映像領域における映像ユニットとこの映像のコーディング表現との変換を行うことを含み、コーディング表現は構文規則に準拠する。この規則は、映像ピクチャレベルの第1のインジケータと映像領域レベルの第2のインジケータとが、変換中に時間的動きベクトル予測コーディングツールを使用することを示すことを規定する。この規則は、コーディング表現において第1の標識および/または第2の標識を省略する条件を規定する。
【0020】
別の例示的な態様において、映像処理方法が開示される。この方法は、映像の映像領域における映像ユニットとこの映像のコーディング表現との変換を行うことを含み、このコーディング表現は、構文規則に準拠し、この構文規則は、映像領域レベルのヘッダの情報を映像ユニットレベルのヘッダの情報として推論することを規定する。
【0021】
別の例示的な態様において、映像処理方法が開示される。この方法は、レイヤ毎の映像シーケンスとして編成された複数のピクチャを含む映像の映像領域における映像ユニットと、この映像のコーディング表現との変換を行うことを含み、コーディング表現における1つ以上のフィールドは、この映像ユニットにおけるサブピクチャの数を示す。
【0022】
別の例示的な態様において、映像処理方法が開示される。この方法は、レイヤ毎の映像シーケンスとして編成された複数のピクチャを含む映像の映像領域における映像ユニットと、この映像のコーディング表現との変換を行うことを含み、このコーディング表現は、映像ユニットにおけるサブピクチャの数を示す第2のフィールドの値が、この変換に対するクロスサブピクチャコーディングツールの適用可能性を示す第2のフィールドを制御するかどうかを規定するフォーマット規則に準拠する。
【0023】
別の例示的な態様において、映像処理方法が開示される。この方法は、レイヤ毎の映像シーケンスとして編成された複数のピクチャを含む映像の映像領域における映像ユニットと、この映像のコーディング表現との変換を行うことを含み、このコーディング表現は、1つの映像ユニット当たりのサブピクチャの数がこのコーディング表現における構文要素の値を制御することを規定するフォーマット規則に準拠する。
【0024】
別の例示的な態様において、映像処理方法が開示される。この方法は、レイヤ毎の映像シーケンスとして編成された複数のピクチャを含む映像の映像領域における映像ユニットと、この映像のコーディング表現との変換を行うことを含み、このコーディング表現は、1つの映像ユニット内に単一の映像スライスが発生するかどうかを示すフィールドの値がこの映像の矩形スライスのコーディング特性を制御することを規定するフォーマット規則に準拠する。
【0025】
別の例示的な態様において、映像処理方法が開示される。この方法は、レイヤ毎の映像シーケンスとして編成された複数のピクチャを含む映像の映像領域における映像ユニットとこの映像のコーディング表現との変換を行うことを含み、このコーディング表現は、このレイヤ毎の映像シーケンスのコーディング表現における異なるピクチャにまたがる抽出されたサブピクチャが同じサブピクチャインデックスを有する構文規則に準拠する。
【0026】
別の例示的な態様において、映像処理方法が開示される。この方法は、レイヤ毎の映像シーケンスとして編成された複数のピクチャを含む映像の映像領域における映像ユニットと、この映像のコーディング表現との変換を行うことを含み、このコーディング表現は、サブピクチャサブビットストリームのために抽出されたサブビットストリームが単一のサブピクチャのフォーマットに準拠するという構文規則に準拠する。
【0027】
別の例示的な態様において、映像処理方法が開示される。この方法は、レイヤ毎の映像シーケンスとして編成された複数のピクチャを含む映像の映像領域における映像ユニットと、この映像のコーディング表現との変換を行うことを含み、このコーディング表現は、このコーディング表現における構文構造における1つ以上の構文要素の発生を制御する1つ以上の制約フラグを含めることを規定するフォーマット規則に準拠する。
【0028】
さらに別の例示的な態様において、映像エンコーダ装置が開示される。この映像エンコーダは、上述した方法を実装するように構成された処理装置を備える。
【0029】
さらに別の例示的な態様において、映像デコーダ装置が開示される。この映像デコーダは、上述した方法を実装するように構成された処理装置を備える。
【0030】
さらに別の例示的な態様では、コードが記憶されたコンピュータ可読媒体が開示される。このコードは、本明細書に記載の方法の1つを処理装置が実行可能なコードの形式で実施する。
【0031】
これらの及び他の特徴は、本文書全体にわたって説明される。
【図面の簡単な説明】
【0032】
【
図1】映像処理システム例を示すブロック図である。
【
図3】映像処理方法の一例を示すフローチャートである。
【
図4】本開示のいくつかの実施形態による映像コーディングシステムを示すブロック図である。
【
図5】本発明のいくつかの実施形態によるエンコーダを示すブロック図である。
【
図6】本発明のいくつかの実施形態によるデコーダを示すブロック図である。
【
図7】本技術に従った映像処理方法を示すフローチャートである。
【
図8】本技術に従った別の映像処理方法を示すフローチャートである。
【
図9】本技術に従った別の映像処理方法を示すフローチャートである。
【
図10】本技術に従った別の映像処理方法を示すフローチャートである。
【
図11】本技術に従った別の映像処理方法を示すフローチャートである。
【
図12】本技術に従った別の映像処理方法を示すフローチャートである。
【
図13】本技術に従った別の映像処理方法を示すフローチャートである。
【
図14】本技術に従った別の映像処理方法を示すフローチャートである。
【
図15】本技術に従った別の映像処理方法を示すフローチャートである。
【
図16】本技術に従った別の映像処理方法を示すフローチャートである。
【
図17】本技術に従った別の映像処理方法を示すフローチャートである。
【
図18】本技術に従った別の映像処理方法を示すフローチャートである。
【
図19】本技術に従ったさらに別の映像処理方法を示すフローチャートである。
【発明を実施するための形態】
【0033】
本明細書では、理解を容易にするために章の見出しを使用しており、その技術および各章に記載された実施形態の適用可能性をその章のみに限定するものではない。さらに、H.266という用語は、ある説明において、理解を容易にするためだけに用いられ、開示される技術の範囲を限定するために用いられたものではない。このように、本明細書で説明される技術は、他の映像コーデックプロトコル及び設計にも適用可能である。さらに、いくつかの技法を、新しいテキストを挿入する(強調表示)ことによって、または現在のテキストを削除する(取り消し線)ことによって、VVC規格の現在のバージョンをどのように修正し得るかの例を使用して説明する。
【0034】
本明細書は、映像コーディング技術に関する。具体的には、これは、映像コーディングにおけるハイレベル構文(HLS)および関連技術に関する。HEVCのような既存の映像コーディング規格に適用してもよいし、規格(Versatile Video Coding)を確定させるために適用してもよい。本発明は、将来の映像コーディング規格または映像コーデックにも適用可能である。
【0035】
映像コーディング規格は、主に周知のITU-TおよびISO/IEC規格の開発によって発展してきた。ITU-TはH.261とH.263を作り、ISO/IECはMPEG-1とMPEG-4Visualを作り、両団体はH.262/MPEG-2VideoとH.264/MPEG-4AVC(Advanced Video Coding)とH.265/HEVC規格を共同で作った。H.262以来、映像コーディング規格は、時間予測と変換コーディングが利用されるハイブリッド映像コーディング構造に基づく。HEVCを超えた将来の映像コーディング技術を探索するため、2015年には、VCEGとMPEGが共同でJVET(Joint Video Exploration Team)を設立した。それ以来、多くの新しい方法がJVETによって採用され、JEM(Joint Exploration Mode)と呼ばれる参照ソフトウェアに組み込まれてきた。JVETは四半期に1回開催され、新しいコーディング規格はHEVCに比べて50%のビットレート低減を目指している。2018年4月のJVET会議において、新しい映像コーディング規格を「汎用映像コーディング(Versatile Video Coding:VVC)」と正式に命名し、その時、第1版のVVCテストモデル(VTM)をリリースした。VVCの標準化に寄与する努力が続けられているので、すべてのJVET会議において、VVC標準に新しいコーディング技術が採用されている。
【0036】
定義例
【0037】
本明細書では以下の定義を使用する。
【0038】
アクセスユニット(AU)異なるレイヤに属し、かつDPBからの出力のために同時に関連付けられたコーディングされたピクチャを含むPUのセット。
【0039】
適応ループフィルタ(ALF)本復号処理の一部として適用され、APSにおいて伝達されるパラメータによって制御されるフィルタリング処理。
【0040】
AC変換係数2つの寸法のうちの少なくとも1つにおける周波数インデックスが非ゼロである任意の変換係数。
【0041】
ALF_APS:ALF処理を制御するAPS。
【0042】
適応パラメータセット(APS):スライスヘッダに見出される構文要素が0以上であることにより決定される、スライスが0以上である場合に適用される構文要素を含む構文構造。
【0043】
(特定のピクチャの)関連付けられたIRAPピクチャ。復号順における前のIRAPピクチャ(存在する場合)は、特定のピクチャと同じ値nuh_layer_idを有する。
【0044】
関連付けられた非VCL NALユニット:VCL NALユニットが非VCL NALユニットの関連付けられたVCL NALユニットである場合の、VCL NALユニットのための非VCL NALユニット(存在する場合)。
【0045】
関連付けられたVCL NALユニット:nal_unit_typeがEOS_NUT,EOB_NUT,SUFFIX_APS_NUT,SUFFIX_SEI_NUT,FD_NUT,RSV_NVCL_27と等しい、またはUNSPEC_30..UNSPEC_31の範囲内にある、非VCL NALユニットに対して復号化順序で先行するVCL NALユニット、そうでない場合、復号順で次のVCL NALユニット。
【0046】
2進法:1ビットの2値列。
【0047】
2値化:1つの構文要素の考えられるすべての値に対する2値列のセット。
【0048】
2値化処理:ある構文要素の取り得るすべての値を2値列の集合に一意に対応付ける処理。
【0049】
2値分割:1つの長方形のM×N個のサンプルブロックを2つのブロックに分割することであって、垂直に分割すると、第1の(M/2)×Nブロックおよび第2の(M/2)×Nのブロックが得られ、水平に分割すると、第1のM×(N/2)のブロックおよび第2のM×(N/2)のブロックが得られる。
【0050】
バイナリ文字列:構文要素の2値化からの構文要素の値の中間2進表現。
【0051】
双方向予測(B)スライス:最大2つの動きベクトルおよび参照インデックスを有するイントラ予測、またはインター予測を使用して復号されて、それぞれのブロックのサンプル値を予測するスライス。
【0052】
ビットストリーム:1つ以上のコーディングされた映像シーケンス(CVS)を形成するAUシーケンスの表現を形成する、NALユニットストリームまたはバイトストリームの形式の1つのビットシーケンス。
【0053】
ブロック:サンプルのM×N(M列×N行)個の配列、または変換係数のM×N個の配列
【0054】
ブロックベクトル:現在のコーディングするブロックの座標から予測ブロックの同じ復号ピクチャの中の予測ブロックの座標までのオフセットを提供する、IBC予測に使用される2次元ベクトル。
【0055】
バイト:ビット値のシーケンスとして書き込みまたは読み取りを行う場合、最も左のビットが最上位ビット、最も右のビットが最下位ビットをそれぞれ表す8ビットのビット列。
【0056】
バイトアライン:ビットストリームにおける位置は、その位置がビットストリームにおける第1のビットの位置から8ビットの整数倍である場合、バイトアラインされ、ビットまたはバイトまたは構文要素は、そのビットストリームで現れる位置がバイトアラインされている場合に、バイトアラインされていると言う。
【0057】
バイトストリーム:開始コードのプレフィクスおよびNALユニットを含むNALユニットストリームのカプセル化。
【0058】
できる(can):許可されているが、必ずしも要求されていない挙動を参照するために使用される用語。
【0059】
クロマ:記号CbおよびCrで表される形容詞は、1つのサンプル配列または単一のサンプルが原色に関する2つの色差信号の1つを表すことを規定する。なお、クロミナンスという用語に関連付けられたことが多い線形光伝達特性を使用することを回避するために、クロミナンスという用語ではなくクロマという用語を使用することに留意されたい。
【0060】
クリーンなランダムアクセス(CRA)PU:コーディングされたピクチャがCRAピクチャであるPU。
【0061】
クリーンなランダムアクセス(CRA)ピクチャ:それぞれのVCL NALユニットのnal_unit_typeがCRA_NUTであるIRAPピクチャ。なお、CRAピクチャは、その復号処理において、自分以外のピクチャをインター予測に参照することなく、ビットストリーム中の復号順で最初のピクチャであってもよいし、ビットストリーム中に遅れて現れてもよいことに留意されたい。CRAピクチャは、RADLまたはRASLピクチャに関連付けられてもよい。1つのCRAピクチャのNoOutputBeforeRecoveryFlagが1に等しい場合は、関連付けられたRASLピクチャは、ビットストリームに存在しないピクチャへの参照を含む可能性があるため、復号可能でない場合があるので、デコーダはRASLピクチャを出力しない。
【0062】
コーディングされたレイヤ映像シーケンス(CLVS):復号順に、CLVSS PU、CLVSS PUでない0以上のPU、CLVSS PUである後続のPUまで(ただし後続のPUは含まない)のすべてのPUから構成される、nuh_layer_idが同じ値のPUのシーケンス。なお、CLVSS PUは、IDR PU、CRA PU、またはGDR PUであってもよいことに留意されたい。NoOutputBeforeRecoveryFlagの値は、各IDR PU、およびHandleCraAsCVSStartFlagが1に等しい各CRA PU、および復号順でビットストリームのレイヤの最初のPUまたはEOS NALユニットに続く復号順のレイヤの最初のPUである各CRAまたはGDR PUについて1となる。
【0063】
コーディングされたレイヤ映像シーケンス開始(CLVSS)PU:コーディングされたピクチャがCLVSSピクチャであるPU。
【0064】
コーディングされたレイヤ映像シーケンス開始(CLVSS)ピクチャ:NoOutputBeforeRecoveryFlagが1に等しいIRAPピクチャであるか、またはNoOutputBeforeRecoveryFlagが1に等しいGDRピクチャであるコーディングされたピクチャ。
【0065】
コーディングピクチャ:1つのAU内に特定の値のnuh_layer_idを有し、且つこのピクチャのすべてのCTUを含むVCL NALユニットを含むピクチャのコーディング表現。
【0066】
コーディングピクチャバッファ(CPB):仮想参照デコーダで規定された復号順のDUを含む先入れ先出しバッファ。
【0067】
コーディング表現1つのデータエレメントは、そのコーディングされた形式で表現される。
【0068】
コーディング映像シーケンス(CVS):復号順に、CVSS AUに続き、CVSS AUである後続のAUまで(ただし後続のAUは含まない)のすべてのAUを含む、CVSS AUでない0以上のAUから構成される、AUのシーケンス。
【0069】
コーディング映像シーケンス開始(CVSS)AU:CVSの各レイヤにPUがあり、各PUのコーディングされたピクチャがCLVSSピクチャであるAU。
【0070】
コーディングブロック:1つのCTBをコーディングブロックに仕切ることが分割であるような、MおよびNのいくつかの値に対するサンプルのM×Nブロック。
【0071】
コーディングツリーブロック(CTB):あるモジュールをCTBに仕切ることが分割であるような、あるNの値に対するサンプルのN×Nブロック。
【0072】
コーディングツリーユニット(CTU):輝度サンプルの1つのCTB、3つのサンプル配列を有する1つのピクチャのクロマサンプルの2つの対応するCTB、または3つの別個の色平面を使用してコーディングされたモノクロピクチャまたはピクチャのサンプルのCTB、およびこれらのサンプルをコーディングするために使用される構文構造。
【0073】
コーディングユニット(CU):輝度サンプルのコーディングブロック、3つのサンプル配列を持つピクチャのクロマサンプルの対応する2つのコーディングブロック、またはモノクロピクチャのサンプルのコーディングブロック、またはサンプルをコーディングするために使用する3つの別個の色平面と構文構造を使用してコーディングされているピクチャのコーディングブロック。
【0074】
成分:4:2:0,4:2:2,4:4:4のカラーフォーマットのピクチャを構成する3つの配列(輝度と2つのクロマ)のうちの1つの配列または単一サンプル、またはモノクロフォーマットのピクチャを構成する配列または単一サンプル。
【0075】
コンテキスト変数:直近に復号された2値を含む式で2値の適応二値算術復号処理で規定される変数。
【0076】
デブロッキングフィルタ:ブロック間の境界での視覚的アーチファクトの出現を最小限に抑えるために、復号処理の一部として適用されるフィルタリング処理。
【0077】
復号ピクチャ:コーディングされたピクチャに復号処理を適用して作成したピクチャ。
【0078】
復号ピクチャバッファ(DPB):仮想参照デコーダで規定された参照、出力の並び替え、出力の遅れを調整するためのバッファ保持復号ピクチャ。
【0079】
デコーダ:復号処理の実施形態。
【0080】
復号順:復号処理が構文要素を処理する順番。
【0081】
復号処理:ビットストリームを読み取り、そこから復号ピクチャを導出する本明細書に記載の処理。
【0082】
復号ユニット(DU):DecodingUnitHrdFlagが0に等しい場合はAU、そうでない場合、AUのサブセットで、AU内の1つ以上のVCL NALユニットと関連付けられた非VCL NALユニットで構成される。
【0083】
エミュレーション防止バイト:ビットストリームの構文要素が、NALユニットにおける連続したバイトアラインされたバイトのシーケンスが開始コードプレフィクスを含むことができないことを保証するように、バイト値の一定のパターンを形成する場合、NALユニット内に存在する0x03に等しいバイト。
【0084】
エンコーダ:符号化処理の実施形態。
【0085】
符号化処理:本明細書に準拠したビットストリームを生成する、本明細書で規定されていない処理。
【0086】
フィラーデータNALユニットnal_unit_typeがFD_NUTであるNALユニット。
【0087】
フラグ:2つの可能値のうち1つをとることができる可変または単一ビットの構文要素:0および1。
【0088】
周波数インデックス:復号処理に変換を与える前に変換係数に関連付けられた1次元または2次元のインデックス。
【0089】
漸次的復号更新(GDR)AU:本PU各々のコーディングされたピクチャがGDRピクチャであるAU。
【0090】
漸次的復号更新(GDR)PU:コーディングされたピクチャがGDRピクチャであるPU。
【0091】
漸次的復号更新(GDR)ピクチャ:NALユニットのnal_unit_typeがGDR_NUTであるピクチャ。
【0092】
仮想参照デコーダ(HRD):符号化処理が生成し得る適合NALユニットストリームまたは適合バイトストリームのばらつきに関する制約を規定する仮想的なデコーダモデル。
【0093】
仮想ストリームスケジューラ(HSS):仮想参照デコーダへのビットストリームの入力タイミングとデータフローに関して、ビットストリームまたはデコーダの適合性をチェックするために使用される仮想配信メカニズム。
【0094】
参考情報:本明細書に提供される本明細書への適合性のための如何なる必須の要件も確立していない、コンテンツを参照するために使用される用語は、本明細書の不可欠な部分とは見なされない。
【0095】
瞬時復号更新(IDR)PU:コーディングされたピクチャがIDRピクチャであるPU。
【0096】
瞬時復号更新(IDR)ピクチャ:それぞれのVCL NALユニットのnal_unit_typeがIDR_W_RADLまたはIDR_N_LPであるIRAPピクチャ。なお、IDRピクチャは、その復号処理において、自分以外のピクチャをインター予測に参照することなく、ビットストリーム中の復号順で最初のピクチャであってもよいし、ビットストリーム中に遅れて現れてもよいことに留意されたい。各IDRピクチャは、復号順にCVSの1つ目のピクチャである。各VCL NALユニットがIDR_W_RADLであるnal_unit_typeを有するIDRピクチャの場合、関連付けられたRADLピクチャを有していてもよい。各VCL NALユニットのnal_unit_typeがIDR_N_LPであるIDRピクチャの場合、関連付けられた先頭ピクチャがない。IDRピクチャは、関連付けられたRASLピクチャを有していない。
【0097】
インターレイヤ(レイヤ間)参照ピクチャ(ILDR):現在のピクチャと同じAUにあり、nuh_layer_idが現在のピクチャのnuh_layer_idより小さいピクチャであって、「長期参照に使用される」と記されている。
【0098】
インターコーディング:インター予測を使用するコーディングブロック、スライス、ピクチャのコーディング
【0099】
インター予測:1つ以上の参照ピクチャのデータエレメント(例えば、サンプル値または動きベクトル)に依存する方法で導出された予測。
【0100】
イントラブロックコピー(IBC)予測:参照ピクチャを参照することなく、同じ復号スライスのデータエレメント(サンプル値やブロックベクトルなど)に依存する方法で導出される予測。
【0101】
イントラコーディング:イントラ予測を使用するコーディングブロック、スライスまたはピクチャのコーディング。
【0102】
イントラ予測:参照ピクチャを参照することなく、同じ復号スライスのデータエレメント(サンプル値など)のみから導出される予測値。
【0103】
イントラランダムアクセスポイント(IRAP)AU:CVSの各レイヤにPUが存在し、各PUのコーディングされたピクチャがIRAPピクチャであるAU。
【0104】
イントラランダムアクセスポイント(IRAP)PU:コーディングされたピクチャがIRAPピクチャであるPU。
【0105】
イントラランダムアクセスポイント(IRAP)ピクチャ:IDR_W_RADLからCRA_NUTの範囲内で、すべてのVCL NALユニットのnal_unit_typeが同じ値であるコーディングされたピクチャ。なお、IRAPピクチャは、その復号処理において、インター予測を行うピクチャ以外のものを参照することなく、CRAピクチャまたはIDRピクチャであってもよいことに留意されたい。ビットストリームにおける復号順の第1のピクチャは、IRAPまたはGDRピクチャでなければならない。必要なパラメータセットは参照されることが必要な場合、利用可能であれば、IRAPピクチャに先行するピクチャの復号順序で復号処理を行わずに、CVSにおける復号順序のIRAPピクチャおよびすべての後続の非RASLピクチャを正しく復号することができる。なお、IRAPピクチャのmixed_nalu_types_in_pic_flagの値は0に等しい。1つのピクチャに対してmixed_nalu_types_in_pic_flagが0に等しく、且つこのピクチャの任意のスライスがIDR_W_RADLからCRA_NUTの範囲内(両端を含む)のnal_unit_typeを有する場合、このピクチャの他のスライスはすべてnal_unit_typeと同じ値を有し、このピクチャは、IRAPピクチャとして知られている。
【0106】
イントラ(i)スライス:イントラ予測のみを使用して復号されるスライス。
【0107】
レイヤ:すべてnuh_layer_idという特定の値を持ち、関連付けられた非VCL NALユニットを持つVCL NALユニットのセット。
【0108】
先頭(leading)ピクチャ:関連付けられたIRAPピクチャと同じレイヤにあり、関連付けられたIRAPピクチャに出力順で先行するピクチャ。
【0109】
リーフ:深さ0のツリーの根ノードであるツリーの終端ノード。
【0110】
レベル:本明細書の構文要素や変数が取り得る値、またはスケーリング前の変換係数の値に関する、定義された制約のセット。なお、同じレベルのセットがすべてのプロファイルに対して定義され、各レベルの定義のほとんどの態様は、異なるプロファイルにわたって共通であることに留意されたい。個々の実装は、規定された制約条件内で、サポートされる各プロファイルごとに異なるレベルをサポートしてもよい。
【0111】
リスト0(リスト1)動きベクトル:参照ピクチャリスト0(リスト1)を参照する参照インデックスに関連付けられた動きベクトル。
【0112】
リスト0(リスト1)の予測:参照ピクチャリスト0(リスト1)を参照する参照インデックスを使用したスライスのコンテンツのインター予測。
【0113】
LMCS APS:LMCS処理を制御するAPS。
【0114】
長期参照ピクチャ(LTRP):現在のピクチャのnuh_layer_idに等しいwith nuh_layer_idを有し、「長期参照に使用される」とマークされたピクチャ。
【0115】
輝度:YまたはLの記号または下付き文字で表され、1つのサンプル配列または単一のサンプルが原色に関連するモノクロ信号を表すことを規定する形容詞。なお、ルミナンスという用語に関連付けられることが多い線形光伝達特性を使用することを回避するために、ルミナンスという用語ではなく輝度という用語を使用することに留意されたい。記号Yの代わりに記号Lを使用することもあり、これは、垂直位置のために使用されるような記号yとの混同を回避するためである。
【0116】
クロマスケーリングを伴う輝度マッピング(LMCS):本復号処理の一部として適用され、輝度サンプルを特定の値にマッピングする処理であって、クロマサンプルの値にスケーリング演算を適用してもよい。
【0117】
してもよい(し得る)(may):許可されているが、必ずしも要求されていない挙動を参照するために使用される用語。なお、記載された挙動の選択可能な性質が強調されることが意図されるいくつかの場所において、「してもよいし、しなくてもよい」というフレーズは、強調するために使用されることに留意されたい。この用語は、本明細書において、その要件がコーディングする規格に採用された例示的な実施形態を強調するためにのみ使用され、開示される技術の範囲を限定するものではない。
【0118】
動きベクトル:復号ピクチャの座標から参照ピクチャの座標へのオフセットを規定するインター予測に使用する2次元ベクトル。
【0119】
マルチタイプツリー:2値分割を使用して親ノードを2つの子ノードに分割するか、3値分割を使用して3つの子ノードに分割することができ、その各々が、子ノードが親ノードになり、別の子ノードを2つまたは3つの子ノードに分割することができる親ノードになり得るツリー。
【0120】
~なければならない(Must):本明細書の他の箇所(参考情報のコンテキストでのみ排他的に使用される)で規定された要件または要件の含意に関する考察を表すために使用される用語。この用語は、本明細書において、その要件がコーディングする規格に採用された例示的な実施形態を強調するためにのみ使用され、開示される技術の範囲を限定するものではない。
【0121】
ネットワーク抽象化レイヤ(NAL)ユニット:後続するデータのタイプを示す指示と、必要に応じてエミュレーション防止バイトを散在させたRBSPの形式のデータを含むバイトと、を含む、構文構造。
【0122】
ネットワーク抽象化レイヤ(NAL)ユニットストリーム:NALユニットのシーケンス。
【0123】
注:参考となる備考のプレフィクスに付けられる用語(参考情報のコンテキストにおいてのみ排他的に使用される)。
【0124】
演算点(OP):OLSインデックスおよびTemporalIdの最高値によって識別される、OLSの時間的サブセット。
【0125】
出力レイヤ:出力される出力レイヤセットのレイヤ。
【0126】
出力レイヤセット(OLS):規定されたレイヤのセットで構成されるレイヤのセットであり、このレイヤのセットにおける1つ以上のレイヤが出力レイヤとして規定される。
【0127】
出力レイヤセット(OLS)レイヤインデックス:OLSにおけるレイヤのリストに対する、OLSにおけるレイヤのインデックス。
【0128】
出力順:復号ピクチャがDPBから出力される順番(DPBから出力される復号ピクチャの場合)。
【0129】
出力時間:出力タイミングDPB動作に従って、HRDが規定したDPB(DPBから出力される復号ピクチャ)から復号ピクチャを出力する時間。
【0130】
パラメータ:シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、または定義された用語の量子化パラメータの第2単語の構文要素。
【0131】
分割:セットの各要素が正確にサブセットの1つになるように、セットをサブセットに仕切ること。
【0132】
ピクチャ:モノクロ形式の輝度サンプルの配列、または輝度サンプルの配列、および4:2:0、4:2:2、4:4:4のカラーフォーマットの2つの対応するクロマサンプルの配列。なお、ピクチャは、フレームであってもよいし、フィールドであってもよいことに留意されたい。しかし、1つのCVSにおいて、すべてのピクチャがフレームであるか、またはすべてのピクチャがフィールドである。
【0133】
ピクチャヘッダ(PH):コーディングされたピクチャのすべてのスライスに適用される構文要素を含む構文構造。
【0134】
ピクチャーレベルスライスインデックス:rect_slice_flagが1に等しい場合、PPSで信号通知される順番で、ピクチャにおけるスライスのリストに対するスライスのインデックスを示す。
【0135】
ピクチャオーダカウント(POC):各ピクチャに関連付けられ、CLVS内の全ピクチャの中から関連付けられたピクチャを一意に識別し、関連付けられたピクチャがDPBから出力される場合、DPBから出力される同じCLVS内の他のピクチャの出力順位置に対する関連ピクチャの出力順位置を示す変数。
【0136】
ピクチャパラメータセット(PPS):それぞれのスライスヘッダに見出される構文要素で決定され、0以上のコーディングされたピクチャ全体に適用される構文要素を含む構文構造。
【0137】
ピクチャユニット(PU):規定された分類規則に従って互いに関連付けられた1つのNALユニットのセットは、復号順に連続しており、正確に1つのコーディングされたピクチャを含む。
【0138】
予測:予測処理の実施形態。
【0139】
予測処理:現在復号されているデータエレメント(例えば、サンプル値または動きベクトル)の推定を提供するための予測子の使用。
【0140】
予測(P)スライス:最大1つの動きベクトルおよび参照インデックスを有するイントラ予測、またはインター予測を使用して復号されて、それぞれのブロックのサンプル値を予測するスライス。
【0141】
予測子:後続のデータエレメントの復号処理に使用される、規定された値または前に復号されたデータエレメント(例えば、サンプル値または動きベクトル)の組み合わせ。
【0142】
プロファイル:本明細書の構文の規定されたサブセット。
【0143】
4分木:親ノードを4つの子ノードに分けることができ、各々が子ノードがさらに4つの子ノードに分割できる親ノードになり得るツリー。
【0144】
量子化パラメータ:復号処理が変換係数レベルのスケーリングに使用する変数。
【0145】
ランダムアクセス:流れの始まり以外の点でビットストリームの復号処理を開始する動作。
【0146】
ランダムアクセス復号可能先頭(RADL)PU:コーディングされたピクチャがRADLピクチャであるPU。
【0147】
ランダムアクセス復号可能先頭(RADL)ピクチャ:それぞれのVCL NALユニットのnal_unit_typeがRADL_NUTであるコーディングされたピクチャ。なお、RADLピクチャはすべて先頭ピクチャであることに留意されたい。RADLピクチャは、同じ関連付けられたIRAPピクチャのトレーリングピクチャの復号処理のための参照ピクチャとして使用されない。field_seq_flagが0に等しい場合(存在する場合)、すべてのRADLピクチャは、同じ関連付けられたIRAPピクチャのすべての非先頭ピクチャに復号順で先行する。
【0148】
ランダムアクセススキップ先頭(RASL)PU:コーディングされたピクチャが、RASLピクチャであるPU。
【0149】
ランダムアクセススキップ先頭(RASL)ピクチャ:それぞれのVCL NALユニットのnal_unit_typeがRASL_NUTであるコーディングされたピクチャ。なお、すべてのRASLピクチャは、関連付けられたCRAピクチャの先頭ピクチャであることに留意されたい。関連付けられたCRAピクチャのNoOutputBeforeRecoveryFlagが1に等しい場合は、RASLピクチャは出力されず、ビットストリームに存在しないピクチャへの参照を含む可能性があるため、RASLピクチャは正しく復号可能ではない場合がある。RASLピクチャは、非RASLピクチャの復号処理のための参照ピクチャとして使用されない。field_seq_flagが0に等しい場合(存在する場合)、すべてのRASLピクチャは、同じ関連付けられたCRAピクチャのすべての非先頭ピクチャに復号順で先行する。
【0150】
ラスタスキャン:1次元パターンの最初のエントリは2次元パターンの左から右へスキャンした最上行からとなり、同様に左から右へスキャンした2番目、3番目などの行が続くようにする、長方形の2次元パターンを1次元パターンへマッピングするもの。
【0151】
生バイトシーケンスペイロード(RBSP):1つのNALユニットにカプセル化された整数個のバイトを含み、空であるか、または構文要素の後にRBSP停止ビットおよび0に等しい0個以上の後続のビットを含むデータビットのストリングの形をとる構文構造。
【0152】
生バイトシーケンスペイロード(RBSP)ストップビット:データビット列の後の生バイトシーケンスペイロード(RBSP)内に存在する、1に等しいビットであって、RBSP内の終端の位置は、RBSPの終端からRBSPストップビット(RBSP内の最後の非ゼロビット)を検索することによって特定することが可能である。
【0153】
参照インデックス:参照ピクチャリストへのインデックス。
【0154】
参照ピクチャ:短期参照ピクチャであるピクチャ、長期参照ピクチャ、または、インターレイヤ参照ピクチャ。なお、参照ピクチャは、後続のピクチャの復号処理において復号順にインター予測に使用してもよいサンプルを含むことに留意されたい。
【0155】
参照ピクチャリスト:PまたはBスライスのインター予測に使用される参照ピクチャのリスト。なお、非IDRピクチャの各スライスごとに、参照ピクチャリスト0および参照ピクチャリスト1という2つの参照ピクチャリストが生成されることに留意されたい。1つのピクチャに関連付けられた2つの参照ピクチャリストにおけるすべてのエントリによって参照される固有のピクチャのセットは、関連付けられたピクチャまたは関連付けられたピクチャに続く任意のピクチャの復号順でインター予測に使用され得るすべての参照ピクチャで構成される。Pスライスの復号処理において、インター予測には参照ピクチャリスト0のみを使用する。Bスライスの復号処理において、インター予測には、ピクチャリスト0および参照ピクチャリスト1の両方を使用する。Iスライスのスライスデータを復号する場合、インター予測には参照ピクチャリストは使用されない。
【0156】
参照ピクチャリスト0:Pのインター予測に使用される参照ピクチャリスト、またはBスライスのインター予測に使用される第1の参照ピクチャリスト。
【0157】
参照ピクチャリスト1:Bスライスのインター予測に使用される第2の参照ピクチャリスト。
【0158】
予約(reserved):特定の構文要素の一部の値は、ITU-T|ISO/IECで将来使用されるものであり、本明細書の本バージョンに準拠したビットストリームには使用されないが、ITU-T|ISO/IECによる本明細書の将来の拡大に準拠したビットストリームに使用してもよいことを規定するために使用できる用語。
【0159】
残差:1つのサンプルまたはデータエレメントの予測とその復号値との復号された差分。
【0160】
スケーリング:変換係数のレベルに係数を乗算し、変換係数を得る処理。
【0161】
スケーリングリスト:周波数インデックスごとにスケーリング処理の倍率を関連付けたリスト。
【0162】
スケーリングリストAPS:スケーリングリストを構築するために使用される構文要素を持つAPS。
【0163】
シーケンスパラメータセット(SPS):各ピクチャヘッダに見出される構文要素が参照するPPSにある構文要素のコンテンツによって決定する、0以上のCLVS全体に適用される構文要素を含む構文構造。
【0164】
ものとする(shall):本明細書に適合させるために必須の要件を表すために使用される用語。なお、構文要素の値または規定された復号処理の演算によって得られた結果に対する必須の制約を表すために使用される場合は、この制約が満たされていることを保証することは、エンコーダの責任であることに留意されたい。復号処理において行われる演算を参照する際に使用されるとき、本明細書に記載の復号処理において出力されたものと同一のトリミングされた復号ピクチャを生成する復号処理は、本明細書の復号処理要件に準拠する。この用語は、本明細書において、その要件がコーディングする規格に採用された例示的な実施形態を強調するためにのみ使用され、開示される技術の範囲を限定するものではない。
【0165】
短期参照画像(STRP):nuh_layer_idが現在のピクチャのnuh_layer_idに等しく、「短期参照に使用される」とマークされたピクチャ。
【0166】
はずである、べきである(should):予想される通常の状況下で従うことが推奨されるが、本明細書への適合性のための必須の要件ではない実装形態の挙動を参照するために使用される用語。この用語は、本明細書において、その要件がコーディングする規格に採用された例示的な実施形態を強調するためにのみ使用され、開示される技術の範囲を限定するものではない。
【0167】
スライス:1つのピクチャのタイル内の整数個の完全なタイルまたは、単一のNALユニットに排他的に含まれる連続した完全なCTU行。
【0168】
スライスヘッダ:スライスで表現されるタイル内のすべてのタイルまたはCTU行を含むデータエレメントを含むコーディングされたスライスの一部。
【0169】
ソース:符号化前の映像素材またはその属性の一部を記述するために使用される用語。
【0170】
開始コードプレフィクス:それぞれのNALユニットのプレフィクスとしてバイトストリームに埋め込まれた、0x000001に等しい3つのバイトの固有のシーケンス。なお、デコーダは、開始コードプレフィクスの位置を使用でき、新しいNALユニットの始まりと前のNALユニットの終わりとを特定することができることに留意されたい。NALユニット内での開始コードプレフィクスのエミュレーションは、エミュレーション防止バイトを含めることによって防止される。
【0171】
ステップワイズ時間サブレイヤアクセス(STSA)PU:コーディングされたピクチャがSTSAピクチャであるPU。
【0172】
ステップワイズ時間サブレイヤアクセス(STSA)ピクチャ:それぞれのVCL NALユニットのnal_unit_typeがSTSA_NUTであるコーディングされたピクチャ。なお、STSAピクチャは、インター予測参照に対してSTSAピクチャと同じTemporalIdを有するピクチャを使用しないことに留意されたい。STSAピクチャと同じTemporalIdを有する復号順序でSTSAピクチャの後続のピクチャは、STSAピクチャと同じTemporalIdを有する復号順序でインター予測参照にはSTSAピクチャの前のピクチャを使用しない。STSAピクチャは、STSAピクチャにおいて、STSAピクチャを含むサブレイヤーに対して、直下のサブレイヤーからのアップスイッチを有効化する。STSAピクチャのTemporalIdは0より大きくなければならない。
【0173】
データビットのストリング(SODB):生バイトシーケンスペイロード停止ビット前の生バイトシーケンスペイロード内に存在する構文要素を表すいくつかのビットのシーケンスで、左端のビットを1つ目の最上位ビットと見なし、右端のビットを最後の最下位ビットと見なす。
【0174】
サブビットストリーム抽出処理:対象のOLSインデックスと対象の最高位のTemporalIdによって決定される対象のセットに属さないビットストリーム中のNALユニットをビットストリームから削除して、対象のセットに属するビットストリーム中のNALユニットで構成されるサブビットストリームを出力することを示す特定の処理。
【0175】
サブレイヤー:TemporalId変数の特定の値を有するVCL NALユニットおよび関連付けられた非VCL NALユニットで構成される、時間的にスケーラブルなビットストリームの時間的にスケーラブルなレイヤ。
【0176】
サブレイヤー表現:特定のサブレイヤーと下位サブレイヤーとのNALユニットで構成される、ビットストリームのサブセット。
【0177】
サブピクチャ:1つのピクチャ内の1つ以上のスライスの矩形領域。
【0178】
サブピクチャーレベルスライスインデックス:rect_slice_flagが1に等しい場合、PPSで信号通知される順番にサブピクチャにおけるスライスのリストへのスライスのインデックスを示す。
【0179】
補足強化情報(SEI)メッセージ:復号ピクチャにおけるサンプルの値を決定するために、復号処理において必要とされない情報を伝達する、規定された意味論を有する構文構造。
【0180】
構文要素:ビットストリームで表現されるデータの要素。
【0181】
構文構造:規定した順でビットストリームに共に存在する0以上の構文要素。
【0182】
一時分割:長方形のM×N個のサンプルブロックを3つのブロックに分割すること。垂直の分割の結果、第1の(M/4)×Nブロック、第2の(M/2)×Nブロック、第3の(M/4)×Nブロックとなり、水平の分割の結果、第1のM×(N/4)ブロック、第2のM×(N/2)ブロック、第3のM×(N/4)ブロックが得られる。
【0183】
層:ビットストリームの構文要素の値に課されるレベル制約の規定されたカテゴリ。レベル制約は階層内にネストされ、ある階層とレベルに適合するデコーダは、同じ階層またはそのレベルの下位階層またはそれ以下のレベルに適合するすべてのビットストリームを復号することができることになる。
【0184】
タイル:ピクチャにおける特定のタイル列および特定のタイル行内のCTUの矩形領域。
【0185】
タイル列:ピクチャの高さに等しい高さと、ピクチャパラメータセット中の構文要素で規定された幅を有するCTUの矩形領域。
【0186】
タイル行:ピクチャパラメータセットの構文要素で規定した高さと、ピクチャの幅と等しい幅を有するCTUの矩形領域。
【0187】
タイルスキャン:ピクチャのタイルがピクチャのタイルのラスタスキャンで連続的に順序付けられ、CTUはタイルのCTUラスタスキャンで連続的に順序付けられるピクチャを分割するCTUの特定の順番。
【0188】
末尾のピクチャ:出力順の関連付けられたIRAPピクチャに続くnon-IRAPピクチャで、STSAピクチャではない。なお、IRAPピクチャに関連付けられたトレーリングピクチャも、IRAPピクチャの復号順に従うことに留意されたい。関連付けられたIRAPピクチャの出力順に続き、関連付けられたIRAPピクチャに復号順で先行するピクチャは、許可されない。
【0189】
変換:変換係数のブロックを空間的ドメイン値のブロックに変換する復号処理の一部。
【0190】
変換ブロック:復号処理内の変換から得られる矩形のM×N個のサンプルブロック。
【0191】
変換係数:周波数ドメインとみなされるスカラー量であり、復号処理における変換において特定の1次元または2次元の周波数インデックスに関連付けられる。
【0192】
変換係数レベル:変換係数値の計算をスケーリングする前の、復号処理における特定の2次元周波数インデックスに関連付けられた値を表す整数の量。
【0193】
変換ユニット(TU):輝度およびクロマに対して単一のコーディングユニットツリーを使用する場合のピクチャの輝度サンプルの変換ブロックおよびクロマサンプルの対応する2つの変換ブロック;または、輝度およびクロマに対して2つの別個のコーディングユニットツリーとを使用する場合の輝度サンプルの変換ブロック、および変換ブロックサンプルを変換するために使用する構文構造。
【0194】
ツリー:ツリーとは、固有の根ノードを有するノードの有限セットである。
【0195】
規定されていない:特定の構文要素のある値を規定するために使用してもよく、本明細書においてその値が特定の意味を有しておらず、将来も、本明細書の将来のバージョンの不可欠な部分として特定の意味を有していない用語。
【0196】
映像コーディングレイヤ(VCL)NALユニット:コーディングされたスライスNALユニットの総称であり、NALユニットのサブセットは、nal_unit_typeの予約済み値を有し、本明細書ではこれはVCL_NALユニットに分類される。
【0197】
ビットストリームおよびピクチャのフォーマット、分割、スキャン処理、および近傍関係の例を以下に説明する。
【0198】
6.3 ピクチャ、サブピクチャ、スライス、タイル、CTUの分割
【0199】
6.3.2 ブロック、4分木およびマルチタイプツリー構造
【0200】
サンプルはCTB単位で処理される。各輝度CTBの幅および高さの両配列サイズは、サンプル単位でCtbSizeYである。各クロマCTBの配列の幅および高さは、それぞれ、サンプル単位でCtbWidthCおよびCtbHeightCである。
各CTBは、イントラまたはインター予測のためのブロックサイズを特定し、且つ変換コーディングのために、パーティション信号通知が割り当てられる。この分割は、再帰的4分木分割である。4分木の根はCTBに関連付けられる。この4分木は、1つのリーフに達するまで分割され、これを4分木リーフと呼ぶ。モジュール幅がCTBサイズの整数でない場合、右側のモジュール境界におけるCTBは不完全である。モジュールの高さがCTBサイズの整数倍でない場合、下部のモジュール境界におけるCTBは不完全である。
コーディングブロックは、2つのツリー、すなわち予測ツリーおよび変換ツリーの根ノードである。予測ツリーは、予測ブロックの位置およびサイズを規定する。変換ツリーは、変換ブロックの位置およびサイズを規定する。輝度およびクロマの分割情報は、予測ツリーと同一であり、変換ツリーと同一であってもなくてもよい。
【0201】
・ブロックおよび関連付けられた構文構造は、以下のように「ユニット」構造にグループ分けされる。
- 1つの変換ブロック(モノクロピクチャまたはseparate_colour_plane_flagが1に等しい)または3つの変換ブロック(4:2:0、4:2:2、または4:4:4のカラーフォーマットのピクチャの輝度およびクロマ成分)および関連付けられた変換構文構造ユニットは、変換ユニットに関連付けられる。
-1つのコーディングブロック(モノクロピクチャまたはseparate_colour_plane_flagが1に等しい)または3つのコーディングブロック(輝度およびクロマ)、関連付けられたコーディングする構文構造および関連付けられた変換ユニットは、コーディングユニットに関連付けられる。
- 1つのCTB(モノクロピクチャまたはseparate_colour_plane_flagが1に等しい)または3つのCTB(輝度およびクロマ)、関連付けられたコーディングツリー構文構造および関連付けられたコーディングユニットは、CTUに関連付けられる。
【0202】
7 構文および意味論
【0203】
7.3 表形式の構文
【0204】
7.3.1.NALユニット構文
【0205】
7.3.1.1.一般NALユニット構文
【0206】
【0207】
7.3.1.2 NALユニットヘッダ構文
【表2】
【0208】
7.3.2 生バイトシーケンスペイロード、後続ビット、およびバイト整列構文
【0209】
7.3.2.1 復号能力情報RBSP構文
【0210】
【0211】
7.3.2.2 映像パラメータセットRBSP構文
【0212】
【0213】
7.3.2.3 シーケンスパラメータセットRBSP構文
【0214】
【表7】
【表8】
【表9】
【表10】
【表11】
【表12】
【表13】
【表14】
【0215】
7.3.2.4 ピクチャパラメータセットRBSP構文
【0216】
【表15】
【表16】
【表17】
【表18】
【表19】
【0217】
7.3.2.5 適応パラメータセットRBSP構文
【0218】
【0219】
7.3.2.6 ピクチャヘッダRBSP構文
【0220】
【0221】
7.3.2.7 ピクチャヘッダ構造構文
【0222】
【表22】
【表23】
【表24】
【表25】
【表26】
【表27】
【0223】
7.3.2.8 補足強化情報RBSP構文
【0224】
【0225】
7.3.2.9 AU区切り文字RBSP構文
【0226】
【0227】
7.3.2.10 シーケンスの末尾のRBSP構文
【0228】
【0229】
7.3.2.11 ビットストリームRBSP構文の末尾
【0230】
【0231】
7.3.2.11 フィラーデータRBSP構文
【0232】
【0233】
7.4 意味論
【0234】
7.4.1 一般
【0235】
この項では、構文構造およびこれらの構造内の構文要素に関連付けられた意味論を規定する。表または表のセットを使用して構文要素の意味論を規定する場合、本明細書で特に明記しない限り、表で規定されていない値はビットストリームに含まれていてはならない。
【0236】
7.4.2 NALユニット構文
【0237】
7.4.2.1 一般NALユニット構文
【0238】
NumBytesInNalUnitはNALユニットのサイズをバイトで規定する。この値はNALユニットの復号に必要である。NumBytesInNalUnitの推論を有効化するために、NALユニットの境界をある形式で区分することが要求される。バイトストリームフォーマットのためのそのような境界画定方法の1つ。本明細書の範囲外において、他の区分方法を規定してもよい。
【0239】
注1-映像コーディングレイヤ(VCL)は、映像データのコンテンツを効率的に表すように規定される。NALは、そのデータをフォーマットするように規定され、様々な通信チャネルまたは記憶媒体での伝送に適切な方法でヘッダ情報を提供する。すべてのデータはNALユニットに含まれ、NALユニットの各々は整数バイトを含む。NALユニットは、パケット指向システムおよびビットストリームシステムの両方で使用される一般的なフォーマットを規定する。パケット指向トランスポートおよびバイトストリームの両方のためのNALユニットのフォーマットは、各NALユニットが、バイトストリームフォーマットで開始コードプレフィクスおよび追加のパディングバイトにより先行し得ることを除いて同一である。
【0240】
RBSP_byte[i]は、RBSPのi番目のバイトである。RBSPは、バイトの順序付けられたシーケンスとして以下のように規定される。
RBSPは、次のようなデータビット列(SODB)を含む。
-SODBが空である(すなわち、長さが0ビットである)場合、RBSPもまた空である。
-そうでない場合、RBSPは、SODBを以下のように含む。
1) RBSPの第1バイトはSODBの第1(最上位、左端)の8ビットを含み、RBSPの次のバイトはSODBの次の8ビット等を含み、SODBの残りが8ビット未満になるまで続く。
2) SODBの後には、rbsp_trailing_bits()構文構造が以下のように存在する。
i) 最後のRBSPバイトの第1(最上位、左端)のビットは、SODBの残りのビット(もしあれば)を含む。
ii) 次のビットは、1に等しい1つのビット(すなわち、rbsp_stop_one_bit)で構成される。
iii) rbsp_stop_one_bitがバイトアラインされたバイトの最後のビットでない場合、1つ以上のゼロ値ビット(すなわち、RBSP_alignment_zero_bitのインスタンス)が存在し、バイトアラインメントされたが行われる。
3) RBSPの末端のRBSP_trailing_bits()の後に、いくつかのRBSPにおいて、0x0000に等しい1つ以上のcabac_zero_word 16ビット構文要素が存在してもよい。
【0241】
これらのRBSPプロパティを有する構文構造は、構文テーブルにおいて、「_rbsp」サフィックスを使用して表される。これらの構造は、RBSP_byte[i]データバイトのコンテンツとしてNALユニット内で実行される。RBSP構文構造のNALユニットへの関連付けは、表5で規定されるとおりである。
【0242】
注2-RBSPの境界が既知である場合、デコーダは、RBSPのバイトのビットを連結し、1に等しい最後の(最下位、右端)ビットであるrbsp_stop_one_bitを廃棄し、それに続く(下位、右端)ビットであって0に等しいビットを廃棄することによって、RBSPからSODBを抽出することができる。復号処理に必要なデータは、RBSPのSODB部に含まれる。
【0243】
emulation_prevention_three_byteは、0x03に等しいバイトである。NALユニットにemulation_prevention_3_byteが存在する場合、復号処理により廃棄される。
NALユニットの最後のバイトは0x00に等しくない。
【0244】
NALユニット内において、バイトアラインされたどの位置においても、以下の3バイトのシーケンスは発生しない。
-0x000000
-0x000001
-0x000002
【0245】
NALユニット内において、0x000003で始まる4バイトのシーケンスであって、バイトアラインされた位置に次のシーケンス以外のシーケンスは発生しない。
-0x00000300
-0x00000301
-0x00000302
-0x00000303
【0246】
7.4.2.2 NALユニットヘッダの意味論
【0247】
forbidden_zero_bitは、0に等しいものとする。
【0248】
nuh_reserved_zero_bitは、0に等しいものとする。nuh_reserved_zero_bitの値1は、将来、ITU-T|ISO/IECにより規定してもよい。デコーダは、nuh_reserved_zero_bitが1に等しいNALユニットを無視する(すなわち、ビットストリームから削除し、廃棄する)。
【0249】
nuh_layer_idは、VCL NALユニットが属するレイヤの識別子、または非VCL NALユニットが適用されるレイヤの識別子を規定する。nuh_layer_idの値は、0から55までの範囲内(両端含む)にあるものとする。nuh_layer_idの他の値は、ITU-T|ISO/IECで将来使用されるよう、予約されている。
nuh_layer_idの値は、1つのコーディングされたピクチャのすべてのVCL NALユニットに対して同じであるものとする。コーディングされたピクチャまたはPUのnuh_layer_idの値は、コーディングされたピクチャまたはPUのVCL NALユニットのnuh_layer_idの値である。
【0250】
AUD、PH、EOS、FD NALユニットのnuh_layer_idの値は、以下のように制約される。
- nal_unit_typeがAUD_NUTに等しい場合、nuh_layer_idはvps_layer_id[0]に等しいものとする。
- あるいは、nal_unit_typeがPH_NUT、EOS_NUT、FD_NUTに等しい場合、nuh_layer_idは関連付けられたVCL NALユニットのnuh_layer_idであるものとする。
【0251】
注1-DCI、VPS、およびEOB NALユニットのnuh_layer_idの値は制約されていない。
【0252】
nal_unit_typeの値は、1つのCVSS AUのすべてのピクチャについて同じものとする。
nal_unit_typeは、表5で規定されているように、NALユニットタイプ、すなわちNALユニットに含まれるRBSPデータ構造のタイプを規定する。
NALユニットのnal_unit_typeがUNSPEC_28..UNSPEC_31の範囲内にあり、意味論が規定されていない場合、このNALユニットは、本明細書で規定される復号処理に影響を及ぼさないものとする。
【0253】
注2-NALユニットタイプは、UNSPEC_28...UNSPEC_31の範囲内にある場合、アプリケーションにより決定されたとおりに使用されてもよい。本明細書では、nal_unit_typeのこれらの値の復号処理は規定されていない。異なるアプリケーションはこれらのNALユニットタイプを異なる目的で使用してもよいので、これらのnal_unit_type値を有するNALユニットを生成するエンコーダの設計、およびこれらのnal_unit_type値を有するNALユニットのコンテンツを解釈するデコーダの設計にあたり、特に注意しなければならない。本明細書は、これらの値の管理を定義していない。これらのnal_unit_type値は、使用の「衝突」(すなわち、同じnal_unit_type値に対するNALユニットのコンテンツの意味の異なる定義)が重要でない、または可能でない、または管理された状況、例えば、制御アプリケーションまたはトランスポート仕様において、またはビットストリームが分散される環境を制御することによって定義または管理されるコンテキストでの使用にのみ適している場合がある。
【0254】
ビットストリームデコーダのDUにおけるデータの数を決定すること以外の目的のために、nal_unit_typeの予約された値を使用するすべてのNALユニットのコンテンツを無視する(ビットストリームから取り除き、廃棄する)ものとする。
【0255】
注3-この要件は、本明細書に適合する拡張モジュールを将来的に定義することを可能にする。
【0256】
【0257】
注4-クリーンランダムアクセス(CRA)ピクチャは、ビットストリームに存在するRASLまたはRADLピクチャに関連付けられてもよい。
【0258】
注5-IDR_N_LPに等しいnal_unit_typeを有する瞬時復号更新(IDR)ピクチャは、ビットストリームに存在する関連付けられた先頭ピクチャを有さない。nal_unit_typeがIDR_W_RADLに等しいIDRピクチャは、ビットストリームに存在するRASLピクチャに関連付けられていないが、ビットストリームに関連付けられたRADLピクチャを有していてもよい。
【0259】
任意の特定のピクチャのVCL NALユニットに対して、以下が適用される。
-mixed_nalu_types_in_pic_flagが0に等しい場合、nal_unit_typeの値は、ピクチャのすべてのコーディングされたスライスNALユニットについて同じとなるものとする。1つのピクチャまたはPUは、このピクチャまたはPUのコーディングされたスライスNALユニットと同じNALユニットタイプを有すると見なされている。
-そうでない場合(mixed_nalu_types_in_pic_flagが1に等しい)、ピクチャの1つ以上のサブピクチャのVCL NALユニットは、すべて、nal_unit_typeの特定の値がSTSA_NUT、RADL_NUT、RASL_NUT、IDR_W_RADL、IDR_N_LP、またはCRA_NUTに等しい一方、ピクチャの他のVCL NALユニットは、すべて、nal_unit_typeの異なる特定の値が、TRAIL_NUT、RADL_NUT、RASL_NUTと等しい。
【0260】
単レイヤビットストリームの場合、以下の制約が適用される。
-各ピクチャは、復号順においてビットストリームの第1のピクチャを除き、復号順において前のIRAPピクチャに関連付けられていると考えられる。
-ピクチャがIRAPピクチャの先頭ピクチャである場合、RADLまたはRASLピクチャとする。
-ピクチャがIRAPピクチャの末端ピクチャである場合、RADLまたはRASLピクチャではないものとする。
-IDRピクチャに関連付けられたRASLピクチャは、ビットストリームに含まれていないものとする。
-nal_unit_typeがIDR_N_LPであるIDRピクチャに関連付けられたRADLピクチャは、ビットストリームに含まれていないものとする。
【0261】
注6-各パラメータセットが参照されるときに(ビットストリームにおいて、または本明細書で規定されていない外部手段によって)利用可能である限り、IRAP PUの前にあるすべてのPUを廃棄することで(且つIRAPピクチャおよび後続のすべての非RASLピクチャを復号順に正しく復号することで)、IRAP PUの位置でランダムアクセスを行うことができる。
【0262】
-IRAPピクチャに復号順で先行するピクチャは、IRAPピクチャに出力順で先行し、IRAPピクチャに関連付けられたRADLピクチャを出力順で先行するものとする。
-CRAピクチャに関連付けられたRASLピクチャは、出力順でCRAピクチャに関連付けられたRADLピクチャに先行するものとする。
-CRAピクチャに関連付けられたRASLピクチャは、復号順でCRAピクチャに先行するIRAPピクチャの出力順に従うものとする。
-field_seq_flagが0に等しく、現在のピクチャがIRAPピクチャに関連付けられた先頭ピクチャに等しい場合、同じIRAPピクチャに関連付けられたすべての非先頭ピクチャに復号順で先行するものとする。そうでない場合、picAおよびpicBを、それぞれ、1つのIRAPピクチャに関連付けられた、復号順序において、最初のおよび最後の先頭ピクチャとすると、復号順において、復号順でpicAに先行する非先頭ピクチャが最大1つ存在し、復号順でpicAおよびpicBの間に非先頭ピクチャはないものとする。
【0263】
nuh_temporal_id_plus1-1は、NALユニットの時間的識別子を規定する。
nuh_temporal_id_plus1の値は0に等しくないものとする。
【0264】
変数TemporalIdは、以下のように導出される。
TemporalId=nuh_temporal_id_plus1-1 (36)
nal_unit_typeがIDR_W_RADL~RSV_IRAP_12の範囲内にある場合、TemporalIdは0に等しいものとする。
nal_unit_typeがSTSA_NUTであり、vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が1に等しい場合は、TemporalIdは0でないものとする。
TemporalIdの値は、1つのAUのすべてのVCL NALユニットに対して同じであるものとする。コーディングされたピクチャ、PU、またはAUのTemporalIdの値は、コーディングされたピクチャ、PU、またはAUのVCL NALユニットのTemporalIdの値である。サブレイヤー表現のTemporalIdの値は、サブレイヤー表現におけるすべてのVCL NALユニットのTemporalIdの最大値である。
【0265】
非VCL NALユニットのTemporalIdの値は、以下のように制約される。
-nal_unit_typeがDCI_NUT、VPS_NUT、VPS_NUT、またはSPS_NUTに等しい場合、TemporalIdは0に等しく、NALユニットを含むAUのTemporalIdは0に等しいものとする。
-そうでない場合、nal_unit_typeがPH_NUTに等しい場合、TemporalIdはNALユニットを含むPUのTemporalIdであるものとする。
-そうでない場合、nal_unit_typeがEOS_NUTまたはEOB_NUTに等しい場合、TemporalIdは0に等しいものとする。
-そうでない場合、nal_unit_typeがAUD_NUT、FD_NUT、PREFIX_SEI_NUT、またはSUFFIX_SEI_NUTに等しい場合、TemporalIdはNALユニットを含むAUのTemporalIdであるものとする。
-そうでない場合、nal_unit_typeがPPS_NUT、PREFIX_APS_NUT、またはSUFFIX_APS_NUTに等しい場合、TemporalIdはNALユニットを含むPUのTemporalId以上であるものとする。
【0266】
注7-NALユニットが非VCL NALユニットに等しい場合、TemporalIdの値は、その非VCL NALユニットが適用されるすべてのAUのTemporalId値の最小値である。nal_unit_typeがPPS_NUT、PREFIX_APS_NUT、またはSUFFIX_APS_NUTに等しい場合、TemporalIdは、AUを含むTemporalId以上であってもよく、すべてのPPSおよびAPSがビットストリームの始まりに含まれてもよく(例えば、それらが帯域外に輸送されている場合、受信機はそれらをビットストリームの先頭に配置する)、第1のコーディングされたピクチャは、0に等しいTemporalIdを有する。
【0267】
7.4.2.3 RBSP内へのSODBのカプセル化(参考情報)
【0268】
この項は、本明細書の不可欠な部分を構成するものではない。
RBSP内でのSODBのカプセル化の形式およびNALユニット内でのRBSPのカプセル化のためのemulation_prevention_three_byteの使用について、以下の目的のために説明する。
-NALユニット内で任意のSODBを表現されるようにしつつ、NALユニット内で開始コードがエミュレートされないようにするため、
-RBSPの末端で始まるRBSP_stop_one_bitのためにRBSPを検索することで、NALユニット内のSODBの末端の特定を有効化するため、
-状況によっては、NALユニットのサイズをSODBのサイズより大きくすることを有効化するため(cabac_zero_word構文要素を1つ以上使用する)。
【0269】
エンコーダは、RBSPから次の手順でNALユニットを生成することができる。
1. RBSPデータに対して、以下の2値パターンのバイトアラインされたビットを検索する。
‘00000000 00000000 000000xx’(ここで、‘xx’は、任意の2ビットパターン:‘00’、‘01’、‘10’、または‘11’を表す)、
ビットパターンをパターンに置き換えるために、0x03であるバイトを挿入する。
‘00000000 00000000 00000011 000000xx’,
最後に、RBSPデータの最後のバイトが0x00に等しい場合(RBSPがcabac_zero_wordで終わる場合にのみ発生し得る)、0x03に等しい最後のバイトがデータの末端に付加される。RBSPにおけるバイトアラインされた3バイトのシーケンス0x000000(4バイトのシーケンス0x00000300に置き換えられる)の最後の0バイトは、上記で規定された2値パターンを有するバイトアラインされたビットの次の発生に対してRBSPデータを検索するときに考慮される。
2. 結果として得られるバイトのシーケンスの前にはNALユニットヘッダがプレフィクスされ、その中でnal_unit_typeはNALユニットにおけるRBSPデータ構造のタイプを示す。
【0270】
以上の処理により、NALユニット全体が構築される。
この処理は、任意のSODBをNALユニットに表すことを可能にし、且つ以下の両方を保証することができる。
-NALユニット内では、バイトアラインされた開始コードプレフィクスはエミュレートされない。
-NALユニット内では、バイトアラインメントに関わらず、開始コードプレフィクスが続く、8つのゼロ値ビットのシーケンスは、エミュレートされない。
【0271】
7.4.2.4 ビットストリームにおけるNALユニットの順番
【0272】
7.4.2.4.1 一般
【0273】
7.4.2.4項の従属節は、ビットストリームにおけるNALユニットの順序に関する制約を規定する。
これらの制約に従うビットストリームにおけるNALユニットの任意の順序は、本明細書ではNALユニットの復号順と呼ばれる。
NALユニット内で、項目7.3及びD.2における構文は、構文要素の復号順を規定する。本明細書に規定されるNALユニットに、ITU-T H.SEI|ISO/IEC23002-7に規定されるVUIパラメータ又はSEIメッセージが含まれている場合、ITU-T H.SEI|ISO/IEC23002-7に規定されるVUIパラメータ又はSEIメッセージの構文は、これらの構文要素の復号順を規定する。デコーダは、NALユニット及びそれらの構文要素をデコード順に受信することができる。
【0274】
7.4.2.4.2 AUの順序及びそれらのCVSへの関連付け
【0275】
ビットストリームは、1つ以上のCVSからなる。
CVSは、1つ以上のAUからなる。PUの順番及びAUとの関連付けは、項目7.4.2.4.3に記載されている。
CVSの最初のAUは、CVSS AUであり、現在の各PUは、CLVSS PUであり、NoOutputBeforeRecoveryFlagが1に等しいIRAP PU、又はNoOutputBeforeRecoveryFlagが1に等しいGDR PUのいずれかである。
各CVSS AUは、CVSに存在する各レイヤに1つのPUを有する。
EOS NALユニットを含むAUの後に次のAUがある場合、ビットストリーム適合性の要件は、存在する場合、CVSS AUとする。
【0276】
7.4.2.4.3 PUの順番及びAUとの関連付け
【0277】
1つのAUは、nuh_layer_idの昇順に1つ以上のPUを含む。NALユニットの順番及びコーディングされたピクチャ、並びにそれらのPUとの関連付けは、7.4.2.4.4項に記載されている。
1つのAUには、最大1つのAUD NALユニットがあってもよい。AUD NALユニットがAUに存在する場合、AUの最初のNALユニットとなり、その結果、AUの最初のPUの最初のNALユニットとなる。
1つのAUには、最大1つのEOB NALユニットが存在してもよい。1つのAUに1つのEOB NALユニットが存在する場合、このユニットはこのAUの最後のNALユニットとなり、その結果、このAUの最後のPUの最後のNALユニットとなる。
1つのVCL NALユニットがPH NALユニットに続く最初のVCL NALユニットであり、以下の条件が1つ以上真である場合、VCL NALユニットはAUの最初のVCL NALユニットとなる(その結果、VCL NALユニットを含むPUは、AUの最初のPUとなる)。
【0278】
-VCL NALユニットのnuh_layer_idの値は、復号順で前のピクチャのnuh_layer_idよりも小さい。
-VCL NALユニットのph_pic_order_cnt_lsbの値は、復号順で前のピクチャのph_pic_order_cnt_lsbの値と異なる。
-VCL NALユニットに対して導出されたPicOrderCntValは、復号順で前のピクチャのPicOrderCntValと異なる。
【0279】
firstVclNalUnitInAuをAUの最初のVCL NALユニットとする。firstVclNalUnitInAuに先行し、firstVclNalUnitInAuに先行する最後のVCL NALユニットに続く、以下のNALユニットのうちいずれか最初のものがある場合、新しいAUの開始を規定する。
【0280】
-AUD NAL ユニット (存在する場合)、
-DCI NAL ユニット (存在する場合)、
-VPS NAL ユニット (存在する場合)、
-SPS NAL ユニット (存在する場合)、
-PPS NAL ユニット(存在する場合)、
-Prefix APS NAL ユニット(存在する場合)、
-PH NAL ユニット (存在する場合)、
-Prefix SEI NAL ユニット(存在する場合)、
-nal_unit_typeがRSV_NVCL_26に等しいNALユニット(存在する場合)、
-nal_unit_typeがUNSPEC28..UNSPEC29(存在する場合)の範囲にあるNALユニット。
【0281】
注:firstVclNalUnitInAuに先行し、firstVclNalUnitInAuに先行する最後のVCL NALユニットに続く最初のNALユニットがあれば、それのみが上に列記したNALユニットのうちの1つになり得る。
【0282】
ビットストリーム適合性の要件がある場合、それは同じレイヤに属し、EOS NALユニットを含むPUの後の規定のレイヤの次のPUが、NoOutputBeforeRecoveryFlagが1に等しいIRAP PU、またはNoOutputBeforeRecoveryFlagが1に等しいGDR PUのいずれかのCLVSS PUであるとする。
【0283】
7.4.2.4.4 NALユニットおよびコーディングされたピクチャの順序、並びに、それらのPUとの関連付け
【0284】
1つのPUは、0または1つのPH NALユニットと、1つ以上のVCL NALユニットを備える1つのコーディングされたピクチャと、ゼロ以上の他の非VCL NALユニットを含む。VCL NALユニットのコーディングされたピクチャへの関連付けは、7.4.2.4.5項に記載されている。
1つのピクチャが2つ以上のVCL NALユニットで構成される場合、1つのPH NALユニットがPUに存在するものとする。
1つのPUに1つのPH NALユニットが存在する場合、1つのピクチャの第1のVCL NALユニットは、このピクチャの復号順でこのPH NALユニットに続く第1のVCL NALユニットである。そうでない場合(PUにPH NALユニットが存在しない)、1つのピクチャの第1のVCL NALユニットは、このピクチャの唯一のVCL NALユニットである。
PU内の前記非VCL NALユニット(前記AUD及びEOB NALユニットを除く)の順番は、以下の制約に従うものとする。
【0285】
-1つのPH NALユニットが1つのPUに存在する場合、そのPUの第1のVCL NALユニットに先行するものとする。
-PU内に、DCI NALユニット、VPS NALユニット、SPS NALユニット、PPS NALユニット、プレフィクスAPS NALユニット、プレフィクスSEI NALユニット、nal_unit_typeがRSV_NVCL_26に等しいNALユニット、又は、NALユニットがUNSPEC_28..UNSPEC_29の範囲にあるNALユニットが存在する場合、それらはPUの最後のVCL NALユニットを追従しないものとする。
-1つのPU内に1つのDCI NALユニット、VPS NALユニット、SPS NALユニット、またはPPS NALユニットが存在する場合、それらはPUのPH NALユニット(存在する場合)に先行し、且つPUの第1のVCL NALユニットに先行するものとする。
-PUにおけるnal_unit_typeがSUFFIX_APS_NUT、SUFFIX_SEI_NUT、FD_NUT、又はRSV_NVCL_27に等しい、又は、UNSPEC_30...UNSPEC_31の範囲内にあるNALユニットは、PUの最初のVCL NALユニットより先行することはないものとする。
-EOS NALユニットが1つのPU内に存在する場合、EOB NALユニット(存在する場合)以外のPU内にあるすべてのNALユニットのうち、最後のNALユニットとする。
【0286】
7.4.2.4.5 VCL NALユニットの順序およびそのコーディングされたピクチャへの関連付け
【0287】
コーディングされたピクチャにおけるVCL NALユニットの順序は、以下のように制約される。
-1つのコーディングされたピクチャの任意の2つのコーディングされたスライスNALユニットA及びBについて、subpicIdxA及びsubpicIdxBをそれらのサブピクチャレベルインデックス値とし、sliceAddrA及びsliceddrBをそれらのslice_address値とする。
-以下の条件のいずれかが真である場合、コーディングされたスライスNALユニットAは、コーディングされたスライスNALユニットBに先行するものとする。
-subpicIdxAは、subpicIdxB未満である。
-subpicIdxAはsubpicIdxBに等しく、sliceAddrAはsliceAddrB未満である。
【0288】
7.4.3. 生バイトシーケンスペイロード、トレーリングビット、およびバイトアラインメントの意味論
【0289】
7.4.3.1 復号能力情報RBSP意味論
【0290】
DCI RBSPは、ビットストリームに存在すること、ビットストリームの少なくとも第1のAUに含まれること、または外部手段によって提供されることのいずれかによって、デコーダに対して利用可能とすることができる。
注1-DCI RBSPに含まれる情報は、復号処理の演算に必要ではない。
存在する場合、ビットストリームにおけるすべてのDCI NALユニットは、同じコンテンツを有するものとする。
【0291】
dci_max_sublayers_minus1+1は、ビットストリームの各CVSにおけるレイヤに存在し得る時間的サブレイヤーの最大数を規定する。dci_max_sublayers_minus1の値は、0から6までの範囲内にあるべきである。
【0292】
本明細書のこのバージョンに準拠するビットストリームにおいて、dci_reserved_zero_bitは0に等しいものとする。dci_reserved_zero_bitの値1は、ITU-T|ISO/IECによる将来の使用のために予約される。
【0293】
dci_num_ptls_minus1+1は、DCI NALユニットにおけるprofile_tier_level()構文構造の数を規定する。
ビットストリームにおけるCVSにおける各OLSは、DCI NALユニットにおけるprofile_tier_level()構文構造のうち少なくとも1つに準拠するものとすることが、ビットストリーム適合性の要件である。
【0294】
注2-DCI NALユニットは、複数のOLSに集合的に適用される、複数のprofile_tier_level()構文構造で搬送される可能性があるPTL情報を含んでいてもよく、各OLSの各々にPTL情報を個別に含む必要がない。
【0295】
0に等しいdci_extension_flagは、DCI RBSP構文構造にdci_extension_data_flag構文要素が含まれていないことを規定する。1に等しいdci_extension_flagは、DCI RBSP構文構造にdci_extension_data_flag構文要素が存在することを規定する。
【0296】
dci_extension_data_flagは任意の値を有することができる。その存在および値は、デコーダのプロファイルへの適合性に影響を及ぼさない。本明細書バージョンに準拠するデコーダは、すべてのdci_extension_data_flag構文要素を無視しなければならない。
【0297】
7.4.3.2 映像パラメータセットRBSP意味論
【0298】
VPS RBSPは、それが参照される前に、復号処理に利用可能であり、Tempor alIdが0に等しい、又は外部手段によって提供される少なくとも1つのAUに含まれる。
CVSにおけるvps_video_parameter_set_idの特定の値を有するすべてのVPS NALユニットは、同じコンテンツを有するものとする。
【0299】
vps_video_parameter_set_idは、他の構文要素が参照するVPSの識別子を提供する。vps_video_parameter_set_idの値は0より大きいものとする。
【0300】
vps_max_layers_minus1+1は、各CVSがVPSを参照するときに最大許容レイヤ数を規定する。
【0301】
vps_max_sublayers_minus1+1は、VPSを参照する各CVSのレイヤに存在し得る時間的サブレイヤーの数の最大数を規定する。vps_max_sublayers_minus1の値は、0から6までの範囲内にあるべきである。
【0302】
1に等しいvps_all_layers_same_num_sublayers_flagは、VPSを参照する各CVSにおけるすべてのレイヤにおいて時間的サブレイヤーの数が同じであることを規定する。0に等しいvps_all_layers_same_num_sublayers_flagは、VPSを参照する各CVSのレイヤが同じ数の時間的サブレイヤーを有していてもいなくてもよいことを規定する。存在しない場合、vps_all_layers_same_num_sublayers_flagの値は1に等しいと推測される。
【0303】
1に等しいvps_all_independent_layers_flagは、CVSにおけるすべてのレイヤがインターレイヤ予測を使用せずに独立してコーディングされることを規定する。0に等しいvps_all_independent_layers_flagは、CVSの1つ以上のレイヤがインターレイヤ予測を使用してもよいことを規定する。存在しない場合、vps_all_independent_layers_flagの値は1に等しいと推測される。
【0304】
vps_layer_id[i]は、i番目のレイヤのnuh_layer_idの値を規定する。mおよびnの任意の2つの非負整数値の場合、mがn未満であるとき、vps_layer_id[m]の値は、vps_layer_id[n]未満であるものとする。
【0305】
1に等しいvps_independent_layer_flag[i]は、インデックスiのレイヤがインターレイヤ予測を使用しないことを規定する。0に等しいvps_independent_layer_flag[i]は、インデックスiのレイヤがインターレイヤ予測を使用でき、かつ、jの構文要素vps_direct_ref_layer_flag[i][j]が0~i-1の範囲内にある場合には(両端を含む)、VPSに存在することを規定する。存在しない場合、vps_independent_layer_flag[i]の値は1に等しいと推測される。
【0306】
0に等しいvps_direct_ref_layer_flag[i][j]は、インデックスjを有するレイヤがインデックスiを有するレイヤの直接参照レイヤでないことを規定する。1に等しいvps_direct_ref_layer_flag[i][j]は、インデックスjを有するレイヤがインデックスiを有するレイヤの直接参照レイヤであることを規定する。iおよびjが0~vps_max_layer_minus1の範囲内にあるとき、vps_direct_ref_layer_flag[i][j]が存在しない場合、それは0に等しいと推論される。vps_independent_layer_flag[i]が0に等しい場合、vps_direct_ref_layer_flag[i][j]の値が1となるように、0~i-1の範囲内にあるjの値が少なくとも1つあるものとする。
変数NumDirectRefLayers[i]、DirectRefLayerIdx[i][d]、NumRefLayers[i]、RefLayerIdx[i][r]、およびLayerUsedAsdRefLayerFlag[j]は次のように導出される:
【0307】
for(i=0;i<=vps_max_layers_minus1;i++){
for(j=0;j<=vps_max_layers_minus1;j++){
dependencyFlag[i][j]=vps_direct_ref_layer_flag[i][j]
for(k=0;k<i;k++)
if(vps_direct_ref_layer_flag[i][k]&&dependencyFlag[k][j])
dependencyFlag[i][j]=1
}
LayerUsedAsRefLayerFlag[i]=0
}
for(i=0;i<=vps_max_layers_minus1;i++){
for(j=0,d=0,r=0;j<=vps_max_layers_minus1;j++){ (37)
if(direct_ref_layer_flag[i][j]){
DirectRefLayerIdx[i][d++]=j
LayerUsedAsRefLayerFlag[j]=1
}
if(dependencyFlag[i][j])
RefLayerIdx[i][r++]=j
}
NumDirectRefLayers[i]=d
NumRefLayers[i]=r
}
【0308】
vps_layer_id[i]であるnuh_layer_idを有するレイヤのレイヤインデックスを規定する変数GeneralLayerIdx[i]は、以下のように導出される。
for(i=0;i<=vps_max_layers_minus1;i++) (38)
GeneralLayerIdx[vps_layer_id[i]]=i
【0309】
iおよびjの、両方とも0~vps_max_layers_minus1の範囲内にある任意の2つの異なる値について、dependencyFlag[i][j]が1に等しい場合、i番目のレイヤに適用されるchroma_format_idcとbit_depth_minus8は、j番目のレイヤに適用されるchroma_format_idcとbit_depth_minus8とそれぞれ等しいとすることが、ビットストリーム適合性の要件である。
【0310】
max_tid_ref_present_flag[i]が1に等しい場合は、構文要素max_tid_il_ref_pics_plus1[i]が存在することを規定する。max_tid_ref_present_flag[i]が0に等しい場合は、構文要素max_tid_il_ref_pics_plus1[i]が存在しないことを規定する。
【0311】
max_tid_il_ref_pics_plus1[i]が0に等しい場合は、i番目のレイヤの非IRAPピクチャでインターレイヤ予測を使用しないことを規定する。max_tid_il_ref_pics_plus1[i]>0は、i番目のレイヤのピクチャを復号するために、max_tid_il_ref_pics_plus1[i]-1より大きいTemporalIdを有するピクチャをILRPとして使用しないことを規定する。存在しない場合、max_tid_il_ref_pics_plus1[i]の値は7に等しいと推測される。
【0312】
each_layer_is_an_ols_flagが1に等しい場合は、各OLSが1つのレイヤのみを含み、VPSを参照するCVSにおける各レイヤ自体が1つのOLSであり、単一の含まれたレイヤが唯一の出力レイヤであることを規定する。OLSであるeach_layer_is_an_ols_flagが0に等しい場合は、2つ以上のレイヤを含んでいてもよい。vps_max_layers_minus1が0に等しい場合、each_layer_is_an_ols_flagの値は1に等しいと推論される。そうでない場合、vps_all_independent_layers_flagが0に等しい場合、each_layer_is_an_ols_flagの値は0に等しいと推論される。
【0313】
0に等しいols_mode_idcは、VPSで規定されたOLSの総数がvps_max_layers_minus1+1に等しいことを規定し、i番目のOLSは、レイヤインデックスが0からiまでのレイヤを含み、各OLSにおいて、OLSにおける最上位レイヤのみを出力する。
1に等しいols_mode_idcは、VPSで規定されたOLSの総数がvps_max_layers_minus1+1に等しいことを規定し、i番目のOLSは、レイヤインデックスが0からiまでのレイヤを含み、各OLSにおいて、OLSにおけるすべてのレイヤを出力する。
ols_mode_idcが2に等しい場合は、VPSによって規定されたOLSの総数が明示的に信号通知されることを規定し、各OLSにおいて、出力レイヤは明示的に信号通知され、他のレイヤがOLSの出力レイヤの直接または間接参照レイヤであるレイヤであることを規定する。
ols_mode_idcの値は、0から2までの範囲内にあるべきである。ols_mode_idcの値3は、ITU-T|ISO/IECが将来使用するために予約されている。
vps_all_independent_layers_flagが1に等しく、each_layer_is_an_ols_flagが0に等しい場合、ols_mode_idcの値は2に等しいと推論される。
【0314】
num_output_layer_sets_minus1+1は、ols_mode_idcが2に等しいときには、VPSで規定されるOLSの総数を規定する。
VPSで規定されたOLSの総数を規定する変数TotalNumOlssは、以下のように導出される。
【0315】
if(vps_max_layers_minus1==0)
TotalNumOlss=1
else if(each_layer_is_an_ols_flag||ols_mode_idc==0||ols_mode_idc==1)
TotalNumOlss=vps_max_layers_minus1+1(39)
else if(ols_mode_idc==2)
TotalNumOlss=num_output_layer_sets_minus1+1
【0316】
1に等しいols_output_layer_flag[i][j]は、ols_mode_idcが2に等しい場合、nuh_layer_idがvps_layer_id[j]に等しいレイヤがi番目のOLSの出力レイヤであることを規定する。0に等しいols_output_layer_flag[i][j]は、ols_mode_idが2に等しい場合、nuh_layer_idがvps_layer_id[j]に等しいレイヤがi番目のOLSの出力レイヤでないことを規定する。
i番目のOLSにおける出力レイヤの数を規定する変数NumOutputLayersInOls[i]、i番目のOLSにおけるj番目のレイヤのサブレイヤーの数を規定する変数NumSubLayersInLayerInOls[i][j]、i番目のOLSにおけるj番目の出力レイヤのnuh_layer_id値を規定する変数OutputLayerIdInOls[i][j]、および少なくとも1つのOLSにおいてk番目のレイヤを出力レイヤとして使用するかどうかを規定する変数LayerUsedAsOutputLayerFlag[k]、を以下のように導出する。
【0317】
NumOutputLayersInOls[0]=1
OutputLayerIdInOls[0][0]=vps_layer_id[0]
NumSubLayersInLayerInOLS[0][0]=vps_max_sub_layers_minus1+1
LayerUsedAsOutputLayerFlag[0]=1
for(i=1,i<=vps_max_layers_minus1;i++) {
if(each_layer_is_an_ols_flag||ols_mode_idc<2)
LayerUsedAsOutputLayerFlag[i]=1
else/*(!each_layer_is_an_ols_flag&&ols_mode_idc==2)*/
LayerUsedAsOutputLayerFlag[i]=0
}
for(i=1;i<TotalNumOlss;i++)
if(each_layer_is_an_ols_flag||ols_mode_idc==0){
NumOutputLayersInOls[i]=1
OutputLayerIdInOls[i][0]=vps_layer_id[i]
for(j=0;j<i&&(ols_mode_idc==0);j++)
NumSubLayersInLayerInOLS[i][j]=max_tid_il_ref_pics_plus1[i]
NumSubLayersInLayerInOLS[i][i]=vps_max_sub_layers_minus1+1
} else if(ols_mode_idc==1){
NumOutputLayersInOls[i]=i+1
for(j=0;j<NumOutputLayersInOls[i];j++){
OutputLayerIdInOls[i][j]=vps_layer_id[j]
NumSubLayersInLayerInOLS[i][j]=vps_max_sub_layers_minus1+1
}
} else if(ols_mode_idc==2) {
for(j=0;j<=vps_max_layers_minus1;j++){
layerIncludedInOlsFlag[i][j]=0
NumSubLayersInLayerInOLS[i][j]=0
}
for(k=0,j=0;k<=vps_max_layers_minus1;k++) (40)
if(ols_output_layer_flag[i][k]){
layerIncludedInOlsFlag[i][k]=1
LayerUsedAsOutputLayerFlag[k]=1
OutputLayerIdx[i][j]=k
OutputLayerIdInOls[i][j++]=vps_layer_id[k]
NumSubLayersInLayerInOLS[i][j]=vps_max_sub_layers_minus1+1
}
NumOutputLayersInOls[i]=j
for(j=0;j<NumOutputLayersInOls[i];j++){
idx=OutputLayerIdx[i][j]
for(k=0;k<NumRefLayers[idx];k++){
layerIncludedInOlsFlag[i][RefLayerIdx[idx][k]]=1
if(NumSubLayersInLayerInOLS[i][RefLayerIdx[idx][k]] <
max_tid_il_ref_pics_plus1[OutputLayerIdInOls[i][j]])
NumSubLayersInLayerInOLS[i][RefLayerIdx[idx][k]]=
max_tid_il_ref_pics_plus1[OutputLayerIdInOls[i][j]]
}
}
}
【0318】
0~vps_max_layer_minus1の範囲内にあるiの各値について、LayerUsedAsRefLayerFlag[i]およびLayerUsedAsOutputLayerFlag[i]の値は、両方とも0に等しくないものとする。言い換えれば、少なくとも1つのOLSの出力レイヤでも、他のレイヤの直接参照レイヤでもないレイヤが存在しないものとする。
各OLSに対して、出力レイヤである少なくとも1つのレイヤが存在するものとする。すなわち、iの値が0~TotalNumOlss-1の範囲内(両端を含む)にある場合、NumOutputLayersInOls[i]の値は1以上であるものとする。
i番目のOLSにおけるレイヤの数を規定する変数NumLayersInOls[i]、およびi番目のOLSにおけるj番目のレイヤのnuh_layer_id値を規定する。
変数LayerIdInOls[i][j]は、以下のように導出する。
【0319】
NumLayersInOls[0]=1
LayerIdInOls[0][0]=vps_layer_id[0]
for(i=1;i<TotalNumOlss;i++){
if(each_layer_is_an_ols_flag){
NumLayersInOls[i]=1
LayerIdInOls[i][0]=vps_layer_id[i] (41)
} else if(ols_mode_idc=0||ols_mode_idc==1){
NumLayersInOls[i]=i+1
for(j=0;j<NumLayersInOls[i];j++)
LayerIdInOls[i][j]=vps_layer_id[j]
} else if(ols_mode_idc==2) {
for(k=0,j=0;k<=vps_max_layers_minus1;k++)
if(layerIncludedInOlsFlag[i][k])
LayerIdInOls[i][j++]=vps_layer_id[k]
NumLayersInOls[i]=j
}
}
【0320】
注1 - 0番目のOLSは、最下位レイヤ(すなわち、nuh_layer_idがvps_layer_id[0]であるレイヤ)のみを含み、0番目のOLSの場合、含まれているレイヤのみが出力される。
【0321】
nuh_layer_idがLayerIdInOls[i][j]であるレイヤのOLSレイヤインデックスを規定する変数OlsLayerIdx[i][j]は、以下のように導出される。
for(i=0;i<TotalNumOlss;i++)
for j=0;j<NumLayersInOls[i];j++) (42)
OlsLayerIdx[i][LayerIdInOls[i][j]]=j
【0322】
各OLSにおける最下位レイヤは独立レイヤであるものとする。すなわち、0~TotalNumOlss-1の範囲内にある各iについて、vps_independent_layer_flag[GeneralLayerIdx[LayerIdInOls[i][0]]]の値は、1に等しいものとする。
各レイヤは、VPSによって規定される少なくとも1つのOLSに含まれるものとする。言い換えれば、0からvps_max_layers_minus1の範囲内にあるkについて、nuh_layer_idの特定の値nuhLayerIdがvps_layer_id[k]の1つと等しい各レイヤについて、少なくとも1対の値、iとjが存在するものとする。ここで、iは0からTotalNumOlss-1の範囲にあり、jはNumLayersInOls[i]-1の範囲にあり、LayerIdInOls[i][j]の値がnuhLayerIdと等しくなる。
【0323】
vps_num_ptls_minus1+1は、VPSにおけるprofile_tier_level()構文構造の数を規定する。vps_num_ptls_minus1の値はTotalNumOlssより小さいものとする。
【0324】
pt_present_flag[i]が1に等しい場合は、VPSのi番目のprofile_tier_level()構文構造にプロファイル、層、一般的な制約情報が含まれていることを規定し、pt_present_flag[i]が0に等しい場合は、VPSのi番目のprofile_tier_level()syntax structureに存在しないことを規定する。pt_present_flag[0]の値は1に等しいと推論される。pt_present_flag[i]が0に等しい場合は、VPS内i番目のprofile_tier_level()構文構造のプロファイル、層、一般的な制約情報は、VPS内(i-1)番目のprofile_tier_level()構文構造のものと同じと推論される。
【0325】
ptl_max_temporal_id[i]は、VPSのi番目のprofile_tier_level()構文構造においてレベル情報が存在する最も高いサブレイヤー表現のTemporalIdを規定する。ptl_max_temporal_id[i]の値は、0~vps_max_sublayers_minus1の範囲内にあるものとする。vps_max_sublayers_minus1=0に等しい場合、ptl_max_temporal_id[i]の値は0に等しいと推論される。vps_max_sublayers_minus1が0より大きく、vps_all_layers_same_num_sublayers_flagが1に等しい場合、ptl_max_temporal_id[i]の値は、vps_max_sublayers_minus1に等しいと推論される。
【0326】
vps_ptl_alignment_zero_bit=0に等しいものとする。
【0327】
ols_ptl_idx[i]は、第i番目のOLSに適用されるprofile_tier_level()構文構造の、VPSにおけるprofile_tier_level()構文構造のリストに対するインデックスを規定する。存在する場合、ols_ptl_idx[i]の値は、0~vps_num_ptls_minus1の範囲内にあるものとする。vps_num_ptls_minus1が0に等しい場合、ols_ptl_idx[i]の値は0に等しいと推論される。
NumLayersInOls[i]=1に等しい場合、i番目のOLSに適用されるprofile_tier_level()構文構造は、i番目のOLSのレイヤが参照するSPSにも存在する。NumLayersInOLS[i]が1に等しい場合は、VPSおよびi番目のOLSのSPSにおいて信号通知されるprofile_tier_level()構文構造は同一であるものとすることが、ビットストリーム適合性の要件である。
【0328】
vps_num_dpb_paramsは、VPSにおけるdpb_parameters()構文構造の数を規定する。vps_num_dpb_paramsの値は、0~16の範囲内である。存在しない場合、vps_num_dpb_paramsの値は0に等しいと推測される。
【0329】
vps_sublayer_dpb_params_present_flagは、VPSのdpb_parameters()構文構造において、max_dec_pic_buffering_minus1[]、max_num_reorder_pics[]、およびmax_latency_increase_plus1[]構文要素の存在を制御するのに使用する。存在しない場合、vps_sub_dpb_params_info_present_flagは0に等しいと推論される。
【0330】
dpb_max_temporal_id[i]は、VPSのi番目のdpb_parameters()構文構造にDPBパラメータが含まれている可能性がある、最も高いサブレイヤー表現のTemporalIdを規定する。dpb_max_temporal_id[i]の値は、0~vps_max_sublayers_minus1の範囲内にあるものとする。vps_max_sublayers_minus1=0に等しい場合、dpb_max_temporal_id[i]の値は0に等しいと推論される。vps_max_sublayers_minus1が0より大きく、vps_all_layers_same_num_sublayers_flag=1に等しい場合、dpb_max_temporal_id[i]の値は、vps_max_sublayers_minus1に等しいと推論される。
【0331】
ols_dpb_pic_width[i]は、i番目のOLSのための各ピクチャ記憶バッファの輝度サンプル(luma sample)の単位での幅を規定する。
【0332】
ols_dpb_pic_height[i]は、i番目のOLSの各ピクチャ記憶バッファの高さを、輝度サンプル単位で規定する。
【0333】
ols_dpb_params_idx[i]は、NumLayersInOls[i]が1より大きい場合、i番目のOLSに適用されるdpb_parameters()構文構造の、VPSにおけるdpb_parameters()構文構造のリストにインデックスを規定する。存在する場合、ols_dpb_params_idx[i]の値は、0~vps_num_dpb_params-1の範囲内にあるものとする。ols_dpb_params_idx[i]が存在しない場合、ols_dpb_params_idx[i]の値は0に等しいと推論される。
NumLayersInOls[i]が1に等しい場合は、i番目のOLSに適用されるdpb_parameters()構文構造は、i番目のOLSにおけるレイヤが参照するSPSに存在する。
【0334】
1に等しいvps_general_hrd_params_present_flagは、構文構造general_hrd_parameters()および他のHRDパラメータがVPS RBSP構文構造に存在することを規定する。0に等しいvps_general_hrd_params_present_flagは、構文構造general_hrd_parameters()および他のHRDパラメータがVPS RBSP構文構造に存在しないことを規定する。存在しない場合、vps_general_hrd_params_present_flagの値は0と推測される。
NumLayersInOls[i]が1に等しい場合は、i番目のOLSに適用されるgeneral_hrd_parameters()構文構造は、i番目のOLSにおけるレイヤが参照するSPSに存在する。
【0335】
1に等しいvps_sublayer_cpb_params_present_flagは、VPSにおけるi番目のols_hrd_parameters()構文構造が、TemporalIdが0~hrd_max_tid[i]の範囲内にあるサブレイヤー表現のためのHRDパラメータを含むことを規定する。0に等しいvps_sublayer_cpb_params_present_flagは、VPSにおけるi番目のols_hrd_parameters()構文構造が、hrd_max_tid[i]に等しいサブレイヤの表現に対するHRDパラメータのみを含むことを規定する。vps_max_sublayers_minus1=0のとき、vps_sublayer_cpb_params_present_flagの値は0に等しいと推論される。
vps_sublayer_cpb_params_present_flagが0に等しい場合、TemporalIdが0からhrd_max_tid[i]-1の範囲内にあるサブレイヤー表現のHRDパラメータは、TemporalIdがhrd_max_tid[i]-1に等しいサブレイヤー表現のHRDパラメータと同じに等しいと推論される。これには、fixed_pic_rate_general_flag[i]構文要素から始まり、sublayer_hrd_parameters(i)構文構造に至るまでのHRDパラメータが、ols_hrd_parameters構文構造における条件“if(general_vcl_hrd_params_present_flag)”のすぐ下に含まれる。
【0336】
num_ols_hrd_params_minus1+1は、vps_general_hrd_params_present_flagが1に等しいとき、general_hrd_parameters()に存在するols_hrd_parameters()構文構造の数を規定する。num_ols_hrd_params_minus1の値は、0からTotalNumOlss-1までの範囲内にあるものとする。
【0337】
hrd_max_tid[i]は、i番目のols_hrd_parameters()構文構造にHRDパラメータが含まれる最も高いサブレイヤー表現のTemporalIdを規定する。hrd_max_tid[i]の値は、0~vps_max_sublayers_minus1の範囲内にあるものとする。vps_max_sublayers_minus1が0に等しい場合、hrd_max_tid[i]の値は0に等しいと推論される。vps_max_sublayers_minus1が0より大きく、vps_all_layers_same_num_sublayers_flag=1に等しい場合、hrd_max_tid[i]の値は、vps_max_sublayers_minus1に等しいと推論される。
【0338】
ols_hrd_idx[i]は、NumLayersInOls[i]が1より大きい場合、i番目のOLSに適用されるols_hrd_parameters()構文構造の、VPSにおけるols_hrd_parameters()構文構造のリストにインデックスを規定する。ols_hrd_idx[[i]の値は、0からnum_ols_hrd_params_minus1までの範囲内にあるものとする。
NumLayersInOls[i]が1に等しい場合は、i番目のOLSに適用されるols_hrd_parameters()構文構造は、i番目のOLSにおけるレイヤが参照するSPSに存在する。
num_ols_hrd_param_minus1+1の値がTotalNumOLSに等しい場合、ols_hrd_idx[i]の値はiに等しいと推論される。そうでない場合、NumLayersInOls[i]が1より大きく、num_ols_hrd_params_minus1が0に等しい場合、ols_hrd_idx[[i]の値は0に等しいと推論される。
【0339】
vps_extension_flagが0に等しい場合、VPS RBSP構文構造にvps_extension_data_flag構文要素が含まれていないことを規定する。vps_extension_flagが1に等しい場合、VPS RBSP構文構造にvps_extension_data_flag構文要素が存在することを規定する。
【0340】
vps_extension_data_flagは任意の値を有することができる。その存在および値は、本明細書バージョンで特定された特徴に対するのデコーダの適合性に影響を与えない。本明細書バージョンに準拠するデコーダは、すべてのvps_extension_data_flag構文要素を無視しなければならない。
【0341】
7.4.3.3 シーケンスパラメータセットRBSP意味論
【0342】
SPS RBSPは、それが参照される前に、復号処理に利用可能であり、TemporalIdが0に等しい、又は外部手段によって提供される少なくとも1つのAUに含まれる。
1つのCVSにおいて特定の値sps_seq_parameter_set_idを有するすべてのSPS NALユニットは、同じコンテンツを有するものとする。
【0343】
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以下であり、nuh_layer_idがspsLayerIdであるレイヤが、vclLayerIdであるnuh_layer_idを有するレイヤを含む少なくとも1つのOLSに含まれていない限り、特定のSPS NALユニットを参照しないものとする。
【0344】
sps_video_parameter_set_id(0より大きい場合)は、SPSが参照するVPSのvps_video_parameter_set_idの値を規定する。
sps_video_parameter_set_idが0に等しい場合は、以下が適用される。
-SPSはVPSを参照しない。
-SPSを参照する各CLVSを復号するとき、VPSは参照されない。
-vps_max_layers_minus1の値は0に等しいと推論される。
-CVSは1つのレイヤのみを含むものとする(すなわち、CVSにおけるすべての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のnuh_layer_idは、nuhLayerIdと等しいものとする。
sps_video_parameter_set_idの値は、1つのCVS内のCLVSによって参照されるすべてのSPSにおいて同じであるものとする。
【0345】
sps_max_sublayers_minus1+1は、各CLVSに存在し得る時間的サブレイヤーの最大数をSPSを参照して規定する。sps_max_sublayers_minus1の値は、0からvps_max_sublayers_minus1までの範囲内にあるものとする。
【0346】
sps_reserved_zero_4bitsは、本明細書のこのバージョンに準拠するビットストリームにおいて0に等しいものとする。sps_reserved_zero_4bitsの他の値は、ITU-T|ISO/IECが将来使用するために予約されている。
【0347】
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]]に等しいものとする。
【0348】
1に等しいgdr_enabled_flagは、SPSを参照しているCLVSにおいてGDRピクチャが存在し得ることを規定する。0に等しいgdr_enabled_flagは、SPSを参照しているCLVSにおいてGDRピクチャが存在しないことを規定する。
【0349】
chroma_format_idcは、6.2項に規定されるように、輝度サンプリングに対するクロマサンプリングを示す。
【0350】
separate_colour_plane_flag=1は、4:4:4のクロマフォーマットの3つの色成分を別々に符号化することを示し、separate_colour_plane_flag=0は、色成分が別々に符号化されないことを示す。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に等しく設定される。
【0351】
1に等しいres_change_in_clvs_allowed_flagは、SPSを参照するCLVS内でピクチャの空間的解像度が変化する可能性があることを規定する。0に等しいres_change_in_clvs_allowed_flagは、SPSを参照するいかなるCLVS内でもピクチャの空間的解像度が変化しない可能性があることを規定する。
【0352】
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]以下であるものとすることが、ビットストリーム適合性の要件である。
【0353】
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]以下であるものとすることが、ビットストリーム適合性の要件である。
【0354】
1に等しいsps_conformance_window_flagは、SPSにおける次の適合性クロッピングウィンドウのオフセットパラメータがSPSで次に続くことを示す。0に等しいsps_conformance_window_flagは、適合性クロッピングウィンドウのオフセットパラメータがSPSに存在しないことを示す。
【0355】
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- 適合性クロッピングウィンドウのオフセットパラメータは、出力側でのみ適用される。アンクロップされたピクチャサイズに対しては、すべての内部復号処理が適用される。
【0356】
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)
【0357】
1に等しいsubpic_info_present_flagは、CLVSのためのサブピクチャ情報が存在し、CLVSの各ピクチャに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に設定することが必要となる場合がある。
【0358】
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に等しいと推測される。
【0359】
1に等しいsps_independent_subpics_flagは、CLVSにおける任意のサブピクチャの境界にわたるイントラ予測、インター予測、およびインループフィルタリング動作を行うことができないことを規定する。0に等しいsps_independent_subpics_flagは、CLVSにおけるサブピクチャの境界にわたるインター予測、およびインループフィルタリング動作が可能であることを規定する。存在しない場合、sps_independent_subpics_flagの値は0と推測される。
【0360】
subpic_ctu_top_left_x[i]は、i番目のサブピクチャの左上のCTUの水平位置を、CtbSizeY単位で規定する。構文要素の長さはCeil(Log2((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。存在しない場合、subpic_ctu_top_left_x[i]の値は0に等しいと推測される。
【0361】
subpic_ctu_top_left_y[i]は、i番目のサブピクチャの左上のCTUの垂直位置を、CtbSizeY単位で規定する。構文要素の長さはCeil(Log2((pic_height_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。存在しない場合、subpic_ctu_top_left_y[i]の値は0に等しいと推測される。
【0362】
subpic_width_minus1[i]+1は、i番目のサブピクチャの幅をCtbSizeY単位で規定する。構文要素の長さは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に等しいと推論される。
【0363】
subpic_height_minus1[i]+1は、i番目のサブピクチャの高さをCtbSizeY単位で規定する。構文要素の長さは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に等しいと推論される。
【0364】
1に等しいsubpic_treated_as_pic_flag[i]は、CLVSにおける各コーディングされたピクチャのi番目のサブピクチャを、インループフィルタリング動作(演算)を除く復号する処理においてピクチャとして扱うことを規定する。0に等しいsubpic_treated_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]、およびloop_filter_across_subpic_enabled_flag[j]の値を有するものとする。
-出力レイヤの各アクセスユニットにおけるすべてのピクチャは、その参照レイヤとともに、0~sps_num_subpics_minus1の範囲内にあるjの値について、同じSubpicIdVal[j]の値を有するものとする。
【0365】
1に等しいloop_filter_across_subpic_enabled_flag[i]は、CLVSにおける各コーディングされたピクチャのi番目のサブピクチャの境界にわたってインループフィルタリング動作を行うことができることを規定する。
【0366】
0に等しいloop_filter_across_subpic_enabled_flag[i]は、CLVSにおける各コーディングされたピクチャのi番目のサブピクチャの境界にわたってインタループフィルタリング動作が行われないことを規定する。存在しない場合、loop_filter_across_subpic_enabled_pic_flag[i]の値は、1-sps_independent_subpics_flagと等しくなると推論される。
サブピクチャの形状は、各サブピクチャとし、復号される時に、その左側境界全体、および最上の境界全体が、ピクチャの境界、又は以前に復号されたサブピクチャの境界で構成されるものとすることが、ビットストリーム適合性の要件である。
【0367】
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以上とする。
【0368】
1に等しいsubpic_id_mapping_explicitly_signalled_flagは、SPSまたはCLVSのコーディングされたピクチャによって参照されるPPSのいずれかにおいて、サブピクチャのIDマッピングが明示的に信号通知されることを規定する。0に等しいsubpic_id_mapping_explicitly_signalled_flagは、CLVSに対して、サブピクチャのIDマッピングが明示的に信号通知されないことを規定する。存在しない場合、subpic_id_mapping_explicitly_signalled_flagの値は0と推測される。
【0369】
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に等しい場合、CLVSのコーディングされたピクチャによって参照されるPPSにおいて、サブピクチャのIDマッピングが信号通知されることを規定する。
【0370】
sps_subpic_id[i]は、i番目のサブピクチャのサブピクチャIDを規定する。sps_subpic_id[i]の構文要素の長さは、sps_subpic_id_len_minus1+1ビットである。
【0371】
bit_depth_minus8は、輝度およびクロマ配列BitDepthのサンプルのビット深度及びクロマ量子化パラメータレンジオフセットQpBdOffsetの値を以下のように規定する。
BitDepth=8+bit_depth_minus8 (45)
QpBdOffset=6*bit_depth_minus8 (46)
bit_depth_minus8は、0から8までの範囲内にある。
【0372】
1に等しいsps_entropy_coding_sync_enabled_flagは、各ピクチャにおける各タイルのCTBの行の第1のCTBをSPSを参照して復号する前に、コンテキスト変数の規定の同期処理を呼び出すことを規定し、SPSを参照して各ピクチャにおける各タイルのCTBの行の第1のCTBを含むCTUを復号した後、コンテキスト変数のための特定の記憶処理を呼び出すことを規定する。0に等しいsps_entropy_coding_sync_enabled_flagは、SPSを参照する各ピクチャの各タイルのCTB列の最初のCTBを含むCTUを復号する前にコンテキスト変数の規定の同期処理を起動する必要がなく、SPSを参照する各ピクチャの各タイルのCTBの行の最初のCTBを含むCTUを復号した後にコンテキスト変数の規定の格納処理を起動する必要がないことを規定する。
【0373】
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は、SPSを参照するピクチャのスライスヘッダにCTU行のエントリポイントオフセットに関する信号通知が存在しないことを規定する。存在しない場合、sps_wpp_entry_point_offsets_present_flagの値は0と推測される。
【0374】
1に等しいsps_weighted_pred_flagは、SPSを参照しているPスライスに対して重み付け予測を適用してもよいことを規定する。0に等しいsps_weighted_pred_flagは、SPSを参照しているPスライスに対して重み付け予測が適用されないことを規定する。
【0375】
1に等しいsps_weighted_bipred_flagは、SPSを参照しているBスライスに対して明示的な重み付け予測を適用してもよいことを規定する。0に等しいsps_weighted_bipred_flagは、SPSを参照しているBスライスに対して明示的な重み付け予測が適用されないことを規定する。
【0376】
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の範囲内にあるものとする。
【0377】
1に等しいsps_poc_msb_flagは、ph_poc_msb_present_flag構文要素がSPSを参照するPHに存在することを規定する。0に等しいsps_poc_msb_flagは、ph_poc_msb_present_flag構文要素がSPSを参照するPHに存在しないことを規定する。
【0378】
poc_msb_len_minus1+1である場合、SPSを参照するPHに含まれているときには、poc_msb_val構文要素の長さをビット単位で規定する。poc_msb_len_minus1の値は、0~32-log2_max_pic_order_cnt_lsb_minus4-5の範囲内にあるものとする。
【0379】
num_extra_ph_bits_bytesは、SPSを参照するコーディングされたピクチャのPH構文構造における余分なビットのバイト数を規定する。本明細書のこのバージョンに準拠するビットストリームにおいて、num_extra_ph_bits_bytesの値は0に等しいものとする。本明細書のこのバージョンにおいて、num_extra_ph_bits_bytesの値は0に等しいことが要求されるが、本明細書のこのバージョンに適合するデコーダは、num_extra_ph_bits_bytesの値が1または2であることを構文に含めることを許可するものとする。
【0380】
num_extra_sh_bits_bytesは、SPSを参照するコーディングされたピクチャのスライスヘッダにおける余分なビットのバイト数を規定する。本明細書のこのバージョンに準拠するビットストリームにおいて、num_extra_sh_bits_bytesの値は0に等しいものとする。本明細書のこのバージョンにおいて、num_extra_sh_bits_bytesの値は0に等しいことが要求されるが、本明細書のこのバージョンに適合するデコーダは、num_extra_sh_bits_bytesの値が1または2であることを構文に含めることを許可するものとする。
【0381】
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と推測される。
【0382】
0に等しいlong_term_ref_pics_flagは、CLVSにおける任意のコーディングされたピクチャのインター予測にLTRPを使用しないことを規定する。1に等しいlong_term_ref_pics_flagは、LTRPがCLVSにおける1つ以上のコーディングされたピクチャのインター予測にLTRPを使用してもよいことを規定する。
【0383】
0に等しいinter_layer_ref_pics_present_flagは、CLVSにおける任意のコーディングされたピクチャのインター予測にILRPを使用しないことを規定する。1に等しいinter_layer_ref_pic_flagは、CLVSにおける1つ以上のコーディングされたピクチャのインター予測にILRPを使用してもよいことを規定する。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に等しいものとする。
【0384】
1に等しいsps_idr_rpl_present_flagは、参照ピクチャリスト構文要素がIDRピクチャのスライスヘッダに存在することを規定する。0に等しいsps_idr_rpl_present_flagは、参照ピクチャリスト構文要素がIDRピクチャのスライスヘッダに存在しないことを規定する。
【0385】
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)の対応する構文要素の値に等しいと推論される。
【0386】
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に等しい)に対して、listIdxの各値(0または1に等しい)に対して、デコーダは、現在のピクチャのスライスヘッダにおいて1つのref_pic_list_struct(listIdx,rplsIdx)構文構造が直接信号通知されてもよいので、num_ref_pic_lists_in_sps[i]+1ref_pic_list_struct(listIdx,rplsIdx)構文構造の総数のためにメモリを予約しなければならない。
【0387】
1に等しいqtbtt_dual_tree_intra_flagは、Iスライスに対して、各CTUを、暗示的な4分木分割を使用して、64×64輝度サンプルを有するコーディングユニットに分割することを規定し、これらのコーディングユニットは、輝度およびクロマの2つの別個のcoding_tree構文構造の根である。0に等しいqtbtt_dual_tree_intra_flagは、Iスライスに別のcoding_tree構文を使用しないことを規定する。qtbtt_dual_tree_intra_flagが存在しない場合、0に等しいと推測される。
【0388】
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以下であるものとする。
各クロマCTBの配列の幅および高さをそれぞれ規定する変数CtbWidthCおよびCtbHeightCは、以下のように導出される。
- 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の場合、1<<log2BlockWidthと1<<log2BlockHeightを入力として、6.5.2項で規定された右上がり対角スキャン順序配列初期化処理を呼び出し、出力は、DiagScanOrder[log2BlockWidth][log2BlockHeight]に割り当てられる。
log2BlockWidthが0から6、log2BlockHeightが0から6の場合、1<<log2BlockWidthと1<<log2BlockHeightを入力として、6.5.3項に規定された水平・垂直スキャン順序配列初期化処理を呼び出し、出力はHorTravScanOrder[log2BlockWidth][log2BlockHeight]とVerTravScanOrder[log2BlockWidth][log2BlockHeight]に割り当てられる。
【0389】
1に等しいpartition_constraints_override_enabled_flagは、SPSを参照して、PHにおけるpartition_constraints_override_flagの存在を規定する。0に等しいpartition_constraints_override_enabled_flagは、SPSを参照するPHにpartition_constraints_override_flagが存在しないことを規定する。
【0390】
sps_log2_diff_min_qt_min_cb_intra_slice_lumaは、CTUの4分木分割に起因する輝度リーフブロックの輝度サンプルの最小サイズの底2対数と、SPSを参照するslice_typeが2(I)であるスライスにおける輝度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の4分木分割に起因する輝度リーフブロックの輝度サンプルにおける最小サイズの底2対数は、以下のように導出される。
MinQtLog2SizeIntraY=sps_log2_diff_min_qt_min_cb_intra_slice_luma+MinCbLog2SizeY (55)
【0391】
sps_max_mtt_hierarchy_depth_intra_slice_lumaは、SPSを参照するslice_typeが2(I)であるスライスにおける4分木のマルチタイプツリー分割に起因するコーディングユニットのデフォルトの最大階層深さを規定する。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)の範囲内にあるものとする。
【0392】
sps_log2_diff_max_bt_min_qt_intra_slice_luma、SPSを参照する2値分割を使用して分割され得る輝度コーディングブロックの輝度サンプルの最大サイズ(幅または高さ)の底2対数と、2(I)であるslice_typeを有するスライスのCTUの4分木分割に起因する輝度リーフブロックの輝度サンプルの最小サイズ(幅または高さ)と、のデフォルトの差を規定する。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になると推論される。
【0393】
sps_log2_diff_max_tt_min_qt_intra_slice_lumaは、SPSを参照する3進法分割を使用して分割され得る輝度コーディングブロックの輝度サンプルの最大サイズ(幅または高さ)の底2対数と、2(I)であるslice_typeを有するスライスのCTUの4分木分割に起因する輝度リーフブロックの輝度サンプルの最小サイズ(幅または高さ)とのデフォルトの差を規定する。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に等しいと推論される。
【0394】
sps_log2_diff_min_qt_min_cb_inter_sliceは、CTUの4分木分割に起因する輝度リーフブロックの輝度サンプルの最小サイズの底2対数と、SPSを参照するslice_typeが0(B)または1(P)に等しいスライスにおける輝度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の4分木分割に起因する輝度リーフブロックの輝度サンプルにおける最小サイズの底2対数は、以下のように導出される。
MinQtLog2SizeInterY=sps_log2_diff_min_qt_min_cb_inter_slice+MinCbLog2SizeY (56)
【0395】
sps_max_mtt_hierarchy_depth_inter_sliceは、SPSを参照するslice_typeが0(B)または1(P)であるスライスにおける4分木のマルチタイプツリー分割に起因するコーディングユニットのデフォルトの最大階層深さを規定する。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)の範囲内にあるものとする。
【0396】
sps_log2_diff_max_min_qt_inter_sliceは、2値分割を使用して分割され得る輝度コーディングブロックの輝度サンプルの最大サイズ(幅または高さ)の底2対数と、SPSを参照する0(B)または1(P)と等しいslice_typeを有するスライスのCTUの4分木分割に起因する輝度リーフブロックの輝度サンプルの最小サイズ(幅または高さ)と、のデフォルトの差を規定する。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になると推論される。
【0397】
sps_log2_diff_max_tt_min_qt_inter_sliceは、3進法分割を使用して分割され得る輝度コーディングブロックの輝度サンプルの最大サイズ(幅または高さ)の底2対数と、SPSを参照する0(B)または1(P)に等しいslice_typeを有するスライスのCTUの4分木分割に起因する輝度リーフブロックの輝度サンプルの最小サイズ(幅または高さ)と、のデフォルトの差を規定する。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になると推論される。
【0398】
sps_log2_diff_min_qt_min_cb_intra_slice_chromaは、DUAL_TREE_CHROMAに等しいtreeTypeを持つクロマCTUの4分木分割によるクロマリーフブロックの輝度サンプルにおける最小サイズの底2対数と、SPSを参照してslice_typeが2(I)のスライスにおける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に等しいと推論される。treeTypeがDUAL_TREE_CHROMAであるCTUを4分木分割した結果得られたクロマリーフブロックの輝度サンプルの最小サイズの底2対数は、以下のように導出される。
MinQtLog2SizeIntraC=sps_log2_diff_min_qt_min_cb_intra_slice_chroma+MinCbLog2SizeY (57)
【0399】
sps_max_mtt_hierarchy_depth_intra_slice_chromaは、SPSを参照するtreeType=DUAL_TREE_CHROMA、slice_type=2(I)のクロマ4分木のマルチタイプツリー分割に起因するクロマコーディングユニットのデフォルトの最大階層深度を規定する。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に等しいと推論される。
【0400】
sps_log2_diff_max_bt_min_qt_intra_slice_chromaは、2値分割を使用して分割され得るクロマコーディングブロックの輝度サンプルの最大サイズ(幅または高さ)の底2対数と、SPSを参照するslice_typeが2(I)であるスライスにおけるDUAL_TREE_CHROMAと等しいtreeTypeを有するクロマCTUの4分木分割に起因するクロマリーフブロックの輝度サンプルの最小サイズ(幅または高さ)と、のデフォルトの差を規定する。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になると推論される。
【0401】
log2_diff_max_tt_min_qt_intra_slice_chromaは、3進法分割を使用して分割され得るクロマコーディングブロックの輝度サンプルの最大サイズ(幅または高さ)の底2対数と、SPSを参照するslice_typeが2(I)であるスライスにおけるDUAL_TREE_CHROMAと等しいtreeTypeを有するクロマCTUの4分木分割に起因するクロマリーフブロックの輝度サンプルの最小サイズ(幅または高さ)と、のデフォルトの差を規定する。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に等しくなると推論される。
【0402】
1に等しいsps_max_luma_transform_size_64_flagは、輝度サンプルの最大変換サイズが64に等しいことを規定する。0に等しいsps_max_luma_transformation_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)
【0403】
0に等しいsps_joint_cbcr_enabled_flagは、クロマ残差の共同コーディングが無効化されることを規定する。1に等しいsps_joint_cbcr_enabled_flagは、クロマ残差の共同コーディングが有効化されることを規定する。存在しない場合、sps_joint_cbcr_enabled_flagの値は0に等しいと推測される。
【0404】
1に等しいsame_qp_table_for_chromaは、1つのクロマQPマッピングテーブルのみが信号通知され、このテーブルが、CbおよびCr残差に適用され、且つsps_joint_cbcr_enabled_flagが1に等しい場合に共同Cb-Cr残差にも適用されることを規定する。0に等しいsame_qp_table_for_chromaは、sps_joint_cbcr_enabled_flagが1に等しい場合、クロマQPマッピングテーブル、CbとCrの2つと、共同Cb-Crに対して追加の1つとがSPSにおいて信号通知されることを規定する。same_qp_table_for_chromaがビットストリームに存在しない場合、same_qp_table_for_chromaの値は1に等しいと推論される。
【0405】
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に等しいと推論される。
【0406】
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に等しいと推論される。
【0407】
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に等しいと推論される。
【0408】
delta_qp_diff_val[i][j]第iクロマQPマッピングテーブルのj番目のピボット点の出力座標を導出するために使用するデルタ値を規定する。
i=0...numQpTables-1のi番目のクロマQPマッピングテーブルChromaQpTable[i]は、以下のように導出される。
【0409】
qpInVal[i][0]=qp_table_start_minus26[i]+26
qpOutVal[i][0]=qpInVal[i][0]
for(j=0;j<=num_points_in_qp_table_minus1[i];j++){
qpInVal[i][j+1]=qpInVal[i][j]+delta_qp_in_val_minus1[i][j]+1
qpOutVal[i][j+1]=qpOutVal[i][j]+(delta_qp_in_val_minus1[i][j]^delta_qp_diff_val[i][j])
}
ChromaQpTable[i][qpInVal[i][0]]=qpOutVal[i][0]
for(k=qpInVal[i][0]-1;k>=-QpBdOffset;k--)
ChromaQpTable[i][k]=Clip3(-QpBdOffset,63,ChromaQpTable[i][k+1]-1) (62)
for(j=0;j<=num_points_in_qp_table_minus1[i];j++){
sh=(delta_qp_in_val_minus1[i][j]+1)>>1
for(k=qpInVal[i][j]+1,m=1;k<=qpInval[i][j+1];k++,m++)
ChromaQpTable[i][k]=ChromaQpTable[i][qpInVal[i][j]]+
((qpOutVal[i][j+1]-qpOutVal[i][j])*m+sh)/(delta_qp_in_val_minus1[i][j]+1)
}
for(k=qpInVal[i][num_points_in_qp_table_minus1[i]+1]+1;k<=63;k++)
ChromaQpTable[i][k]=Clip3(-QpBdOffset,63,ChromaQpTable[i][k-1]+1)
【0410】
same_qp_table_for_chromaが1に等しい場合、ChromaQpTable[1][k]およびChromaQpTable[2][k]は、-QpBdOffsetから63までの範囲内にあるkについて、ChromaQpTable[0][k]に等しく設定される。
qpInVal[i][j]、qpOutVal[i][j]の値は、-QpBdOffset~63の範囲内にあり、iが0~numQpTables-1の範囲内にあり、jが0~num_points_in_qp_table_minus1[i]+1の範囲内にあるものとすることが、ビットストリーム適合性の要件である。
【0411】
1に等しいsps_sao_enabled_flagは、デブロッキングフィルタリング処理後の再構成ピクチャに対してサンプル適応オフセット処理を適用することを規定する。0に等しいsps_sao_enabled_flagは、デブロッキングフィルタリング処理後の再構成ピクチャに対してサンプル適応オフセット処理を適用しないことを規定する。
【0412】
0に等しいsps_alf_enabled_flagは、適応ループフィルタが無効化されることを規定する。1に等しいsps_alf_enabled_flagは、適応ループフィルタが有効化されることを規定する。
【0413】
0に等しいsps_ccalf_enabled_flagは、クロスコンポーネント適応ループフィルタが無効化されることを規定する。1に等しいsps_ccalf_enabled_flagは、クロスコンポーネント適応ループフィルタが有効化されることを規定する。
【0414】
1に等しいsps_transform_skip_enabled_flagは、transform_skip_flagが変換ユニット構文に存在してもよいことを規定する。0に等しいsps_transform_skip_enabled_flagは、transform_skip_flagが変換ユニット構文に存在しないことを規定する。
【0415】
log2_transform_skip_max_size_minus2は、変換スキップに使用する最大ブロックサイズを規定し、0~3の範囲内にあるものとすることを規定する。
変数MaxTsSizeは、1<<(log2_transform_skip_max_size_minus2+2)に等しく設定される。
【0416】
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に等しいと推論される。
【0417】
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に等しいものとする。
【0418】
1に等しいsps_temporal_mvp_enabled_flagは、CLVSにおいて時間的動きベクトル予測子を使用してもよいことを規定する。0に等しいsps_temporal_mvp_enabled_flagは、時間的動きベクトル予測子がCLVSで使用されないことを規定する。
【0419】
1に等しいsps_sbtmvp_enabled_flagは、CLVSにおけるslice_typeがIでないすべてのスライスを有するピクチャの復号にサブブロックに基づく時間的動きベクトル予測子を使用してもよいことを規定する。0に等しいsps_sbtmvp_enabled_flagは、サブブロックに基づく時間的動きベクトル予測子はCLVSでは使用されないことを規定する。sps_sbtmvp_enabled_flagが存在しない場合、0に等しいと推測される。
【0420】
1に等しいsps_amvr_enabled_flagは、動きベクトル符号化に適応型動きベクトル差解像度を使用することを規定する。0に等しいamvr_affine_amvr_enabled_flagは、動きベクトル符号化に適応型きベクトル差分解像度を用いないことを規定する。
【0421】
0に等しいsps_bdof_enabled_flagは、双方向オプティカルフローインター予測が無効化されることを規定する。1に等しいsps_bdof_enabled_flagは、双方向オプティカルフローインター予測が有効化されることを規定する。
【0422】
1に等しいsps_bdof_pic_present_flagは、SPSを参照しているPHにph_disable_bdof_flagが存在することを規定する。0に等しいsps_bdof_pic_present_flagは、SPSを参照しているPHにph_disable_bdof_flagが存在しないことを規定する。sps_bdof_pic_present_flagが存在しない場合、sps_bdof_pic_present_flagの値は0と推測される。
【0423】
1に等しいsps_smvd_enabled_flagは、動きベクトルの復号に対称動きベクトル差を使用してもよいことを規定する。0に等しいsps_smvd_enabled_flagは、対称動きベクトル差が動きベクトルコーディングに使用されないことを規定する。
【0424】
1に等しいsps_dmvr_enabled_flagは、デコーダ動きベクトル微調整に基づくインター双方向予測が有効化されることを規定する。0に等しいsps_dmvr_enabled_flagは、デコーダ動きベクトル微調整に基づくインター双方向予測が無効化されることを規定する。
【0425】
1に等しいsps_dmvr_pic_present_flagは、SPSを参照するPHにおいてph_disable_dmvr_flagが存在することを規定する。0に等しいsps_dmvr_pic_present_flagは、SPSを参照するPHにおいてph_disable_dmvr_flagが存在しないことを規定する。sps_dmvr_pic_present_flagが存在しない場合、sps_dmvr_pic_present_flagの値は0と推測される。
【0426】
1に等しいsps_mmvd_enabled_flagは、動きベクトルの差を伴うマージモードが有効化されることを規定する。0に等しいsps_mmvd_enabled_flagは、動きベクトルの差を伴うマージモードが無効化されることを規定する。
【0427】
1に等しいsps_isp_enabled_flagは、サブパーティションによるイントラ予測を有効化することを規定する。0に等しいsps_isp_enabled_flagは、サブパーティションによるイントラ予測を無効化することを規定する。
【0428】
1に等しいsps_mrl_enabled_flagは、複数の参照線を有するイントラ予測が有効化されることを規定する。0に等しいsps_mrl_enabled_flagは、複数の参照線を有するイントラ予測が無効化されることを規定する。
【0429】
1に等しいsps_mip_enabled_flagとは、行列ベースのイントラ予測が有効化されることを規定する。0に等しいsps_mip_enabled_flagは、行列ベースのイントラ予測が無効化されることを規定する。
【0430】
0に等しいsps_cclm_enabled_flagは、輝度成分から色度成分へのクロスコンポーネント線形モデルイントラ予測が無効化されることを規定する。1に等しいsps_cclm_enabled_flagは、輝度成分から色度成分へのクロスコンポーネント線形モデルイントラ予測が有効化されることを規定する。sps_cclm_enabled_flagが存在しない場合、0に等しいと推測される。
【0431】
1に等しいsps_chroma_horizontal_collocated_flagは、予測処理が、対応する輝度サンプル位置に対して水平方向にシフトされていないクロマサンプル位置に対して設計された方法で動作することを規定する。0に等しいsps_chroma_horizontal_collocated_flagは、予測処理が、対応する輝度サンプル位置に対して輝度サンプル単位で0.5だけ右側にシフトしたクロマサンプル位置に対して設計された方法で動作することを規定する。sps_chroma_horizontal_collocated_flagが存在しない場合、0に等しいと推測される。
【0432】
1に等しいsps_chroma_vertical_collocated_flagは、予測処理が、対応する輝度サンプル位置に対して垂直方向にシフトされていないクロマサンプル位置に対して設計された方法で動作することを規定する。0に等しいsps_chroma_vertical_collocated_flagは、予測処理が、対応する輝度サンプル位置に対して輝度サンプル単位で0.5だけ右側にシフトしたクロマサンプル位置に対して設計された方法で動作することを規定する。sps_chroma_vertical_collocated_flagが存在しない場合、1に等しいと推測される。
【0433】
1に等しいsps_mts_enabled_flagは、シーケンスパラメータセットRBSPの構文にsps_explicit_mts_intra_enabled_flagが存在し、シーケンスパラメータセットRBSPの構文にsps_explicit_mts_inter_enabled_flagが存在することを示す。0に等しいsps_mts_enabled_flagは、シーケンスパラメータセットRBSPの構文にsps_explicit_mts_intra_enabled_flagが存在しないこと、および、シーケンスパラメータセットRBSPの構文にsps_explicit_mts_inter_enabled_flagが存在しないことを示す。
【0434】
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と推測される。
【0435】
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と推測される。
【0436】
six_minus_max_num_merge_candは、SPSでサポートされるマージ動きベクトル予測(MVP)候補の最大数を6から減算することを規定する。MVP候補をマージする最大数MaxNumMergeCandは、以下のように導出される。
MaxNumMergeCand=6-six_minus_max_num_merge_cand (63)
MaxNumMergeCandの値は、1~6の範囲内である。
【0437】
0に等しいsps_sbt_enabled_flagは、相互予測CUのためのサブブロック変換が無効化されることを規定する。1に等しいsps_sbt_enabled_flagは、インター予測CUのためのサブブロック変換が有効化されることを規定する。
【0438】
sps_affine_enabled_flagアフィンモデルに基づく動き補償をインター予測に使用できるかどうかを規定する。sps_affine_enabled_flagが0に等しい場合、構文は、CLVSにおいてアフィンモデルに基づく動き補償が使用されず、inter_affine_flagおよびcu_affine_type_flagがCLVSのコーディングユニット構文に存在しないように制約されるものとする。そうでない場合(sps_affine_enabled_flagが1に等しい)、アフィンモデルに基づく動き補償をCLVSにおいて使用してもよい。
【0439】
five_minus_max_num_subblock_merge_candは、SPSでサポートされるサブブロックベースマージ動きベクトル予測候補の最大数を5から減算することを規定する。
【0440】
sps_affine_type_flag6パラメータアフィンモデルに基づく動き補償をインター予測に使用できるかどうかを規定する。sps_affine_type_flagが0に等しい場合、構文は、CLVSにおいて6パラメータアフィンモデルに基づく動き補償が使用されず、CLVSにおけるコーディングユニット構文においてcu_affine_type_flagが存在しないように制約されるものとする。そうでない場合(sps_affine_type_flagが1に等しい)、6パラメータアフィンモデルに基づく動き補償をCLVSにおいて使用してもよい。存在しない場合、sps_affine_type_flagの値は0に等しいと推測される。
【0441】
1に等しいsps_affine_amvr_enabled_flagは、アフィンインターモードの動きベクトル符号化に適応型動きベクトル差解像度を使用することを規定する。0に等しいsps_amvr_affine_amvr_enabled_flagは、アフィンインターモードの動きベクトル符号化に適応型動きベクトル差解像度を用いないことを規定する。存在しない場合、sps_affine_amvr_enabled_flagの値は0と推測される。
【0442】
sps_affine_prof_enabled_flagオプティカルフローによる予測微調整をアフィン動き補償に使用できるかどうかを規定する。sps_affine_prof_enabled_flagが0に等しい場合、アフィン動き補償は、オプティカルフローによって微調整されないものとする。そうでない場合(sps_affine_prof_enabled_flagが1に等しい)、オプティカルフローを使用してアフィン動き補償を微調整することができる。存在しない場合、sps_affine_prof_enabled_flagの値は0と推測される。
【0443】
1に等しいsps_prof_pic_present_flagは、SPSを参照しているPHにph_disable_prof_flagが存在することを規定する。0に等しいsps_prof_pic_present_flagは、SPSを参照しているPHにph_disable_prof_flagが存在しないことを規定する。sps_prof_pic_present_flagが存在しない場合、sps_prof_pic_present_flagの値は0と推測される。
【0444】
1に等しいsps_palette_enabled_flagは、pred_mode_plt_flagがコーディングユニット構文に含まれていることを規定する。0に等しいsps_palette_enabled_flagは、pred_mode_plt_flagがコーディングユニット構文に含まれていないことを規定する。sps_palette_enabled_flagが存在しない場合、0に等しいと推測される。
【0445】
1に等しいsps_act_enabled_flagは、適応型色変換を使用してもよく、cu_act_enabled_flagがコーディングユニット構文に存在してもよいことを規定する。0に等しいsps_act_enabled_flagは、適応型色変換を使用せず、cu_act_enabled_flagがコーディングユニット構文に存在しないことを規定する。sps_act_enabled_flagが存在しない場合、0に等しいと推測される。
【0446】
min_qp_prime_ts_minus4は、変換スキップモードにおける最小許容量子化パラメータを以下のように規定する。
QpPrimeTsMin=4+min_qp_prime_ts_minus4 (64)
min_qp_prime_ts_minus4の値は、0~48の範囲内である。
【0447】
sps_bcw_enabled_flagは、CUが、重み付き双方向予測をインター予測に使用できるかどうかを規定する。sps_bcw_enabled_flagが0に等しい場合、構文は、CU重みを有する双方向予測がCLVSにおいて使用されず、bcw_idxがCLVSのコーディングユニット構文に存在しないように制約されるものとする。そうでない場合(sps_bcw_enabled_flagが1に等しい)、CU重みを有する双方向予測をCLVSにおいて使用できる。
【0448】
1に等しいsps_ibc_enabled_flagは、IBC予測モードがCLVSにおけるピクチャの復号に使用してもよいことを規定する。0に等しいsps_ibc_enabled_flagは、IBC予測モードがCLVSにおいて使用されないことを規定する。sps_ibc_enabled_flagが存在しない場合、0に等しいと推測される。
【0449】
six_minus_max_num_ibc_merge_candは、SPSでサポートされるIBCマージブロックベクトル予測(BVP)候補の最大数を6から減算することを規定する。
IBCマージBVP候補の最大数MaxNumIbcMergeCandは、以下のように導出される。
if(sps_ibc_enabled_flag)
MaxNumIbcMergeCand=6-six_minus_max_num_ibc_merge_cand (65)
else
MaxNumIbcMergeCand=0
【0450】
sps_ciip_enabled_flagは、ciip_flagがインター符号化ユニットの残差符号化構文に存在する可能性があることを示す。sps_ciip_enabled_flagが0の場合は、ciip_flagはインター符号化ユニットのコーディング構文内に存在しないことを示す。
【0451】
1に等しいsps_fpel_mmvd_enabled_flagは、動きベクトル差を有するマージモードが整数サンプル精度を使用することを規定する。0に等しいsps_fpel_mmvd_enabled_flagは、動きベクトル差を有するマージモードが端数サンプル精度を使用できることを規定する。
【0452】
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に等しいと推測される。
【0453】
max_num_merge_cand_minus_max_num_gpm_candは、SPSでサポートされる幾何学的分割マージモード候補の最大数をMaxNumMergeCandから減算することを規定する。
sps_gpm_enabled_flagが1に等しく、MaxNumMergeCandが3以上に等しい場合、幾何学的分割マージモード候補の最大数MaxNumGeoMergeCandは、以下のように導出される。
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
MaxNumGeoMergeCand=0
MaxNumGeoMergeCandの値は、2~MaxNumMergeCandの範囲内である。
【0454】
1に等しいsps_lmcs_enabled_flagは、CLVSにおいてクロマスケーリングを伴う輝度マッピングを用いることを示す。0に等しいsps_lmcs_enabled_flagは、CLVSにおいてクロマスケーリングを伴う輝度マッピングを用いないことを示す。
【0455】
1に等しいsps_lfnst_enabled_flagは、lfnst_idxがイントラコーディングユニット構文に存在する場合があることを規定する。0に等しいsps_lfnst_enabled_flagは、lfnst_idxがイントラコーディングユニット構文に存在しないことを規定する。
【0456】
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に存在することを規定する。
【0457】
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の範囲内にあるものとする。
【0458】
sps_ladf_lowest_interval_qp_offsetは、8.8.3.6.1項で規定されるように、変数qPを導出するために使用するオフセットを規定する。sps_ladf_lowest_interval_qp_offsetの値は、-63以上+63以下とする。
【0459】
sps_ladf_qp_offset[i]8.8.3.6.1項で規定されるように、変数qPを導出するために使用するオフセット配列を規定する。sps_ladf_qp_offset[i]の値は、-63以上+63以下とする。
【0460】
sps_ladf_delta_threshold_minus1[i]は、SpsLadfIntervalLowerBound[i]の値を計算するために使用するもので、i番目の輝度強度レベル間隔の下限を規定する。sps_ladf_delta_threshold_minus1[i]の値は、0~2BitDepth-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
【0461】
log2_parallel_merge_level_minus2+2は、8.5.2.3項で規定されるような、空間的マージ候補の導出処理、8.5.5.2項で規定するようなサブブロックマージモードにおける動きベクトルおよび参照インデックスの導出処理に使用される変数Log2ParMrgLevelの値を規定し、8.5.2.1項の履歴に基づく動きベクトル予測子リストの更新処理の呼び出しを制御する。log2_parallel_merge_level_minus2の値は、0~CtbLog2SizeY-2を含む範囲内とする。変数Log2ParMrgLevelは、以下のように導出される。
Log2ParMrgLevel=log2_parallel_merge_level_minus2+2 (68)
【0462】
1に等しいsps_scaling_list_enabled_flagは、変換係数のスケーリング処理にスケーリングリストを使用することを規定する。0に等しいsps_scaling_list_enabled_flagは、変換係数のスケーリング処理に対してスケーリングリストを使用しないことを規定する。
【0463】
0に等しいsps_dep_quant_enabled_flagは、SPSを参照するピクチャに対して依存量子化が無効化されることを規定する。1に等しいsps_dep_quant_enabled_flagは、従属量子化がSPSを参照するピクチャに対して有効化されてもよいことを規定する。
【0464】
0に等しいsps_sign_data_hiding_enabled_flagは、SPSを参照するピクチャに対して符号ビットの非表示を無効化することを規定する。1に等しいsps_sign_data_hiding_enabled_flagは、SPSを参照するピクチャに対して符号ビットの非表示を有効化してもよいことを規定する。sps_sign_data_hiding_enabled_flagが存在しない場合、0に等しいと推測される。
【0465】
1に等しいsps_virtual_boundaries_enabled_flagは、CLVSにおけるコーディングされたピクチャにおいて、仮想境界をまたぐインループフィルタリングの無効化を適用してもよいことを規定する。0に等しいsps_virtual_boundaries_enabled_flagは、CLVSにおけるコーディングされたピクチャにおいて、仮想境界を跨ぐインループフィルタリングの無効化を適用しないことを規定する。インループフィルタリング動作は、デブロッキングフィルタ、サンプル適応オフセットフィルタ、および適応ループフィルタ動作を含む。
【0466】
1に等しいsps_virtual_boundaries_present_flagは、SPSで仮想境界の情報を信号通知することを規定する。0に等しいsps_virtual_boundaries_present_flagは、SPSで仮想境界の情報を信号通知しないことを規定する。SPSにおいて信号通知される仮想境界が1つ以上ある場合、SPSを参照するピクチャにおいて、仮想境界を跨ぐインループフィルタリング動作は無効化される。インループフィルタリング動作は、デブロッキングフィルタ、サンプル適応オフセットフィルタ、および適応ループフィルタ動作を含む。
res_change_in_clvs_allowed_flagの値が1に等しい場合、sps_virtual_boundaries_present_flagの値が0に等しいものとすることは、ビットストリーム適合性の要件である。
【0467】
sps_num_ver_virtual_boundaries SPSに存在するsps_virtual_boundaries_pos_x[i]構文要素の数を規定する。sps_num_ver_virtual_boundariesが存在しない場合、0に等しいと推測される。
【0468】
sps_virtual_boundaries_pos_x[i]i番目の垂直仮想境界の位置を、輝度サンプルを8で割った単位で規定する。sps_virtual_boundaries_pos_x[i]の値は、1からCeil(pic_width_in_luma_samples÷8)-1の範囲内にあるものとする。
【0469】
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より大きいものとする。
【0470】
sps_virtual_boundaries_pos_y[i]は、i番目の水平方向の仮想境界の位置を、輝度サンプルを8で割った単位で規定する。sps_virtual_boundaries_pos_y[i]の値は、1からCeil(pic_height_in_luma_samples÷8)-1の範囲内にあるものとする。
【0471】
1に等しいsps_general_hrd_params_present_flagは、構文構造general_hrd_parameters()がSPS RBSP構文構造に存在することを規定する。0に等しいsps_general_hrd_params_present_flagは、構文構造general_hrd_parameters()がSPS RBSP構文構造に存在しないことを規定する。
【0472】
1に等しいsps_sublayer_cpb_params_present_flagは、SPS RBSPにおける構文構造old_hrd_parameters()が、0~sps_max_sublayer_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に等しい場合、TemporalIdが0からsps_max_sublayers_munus1-1の範囲内にあるサブレイヤー表現のHRDパラメータは、TemporalIdがsps_max_sublayers_munus1に等しいサブレイヤー表現のHRDパラメータと同じに等しいと推論される。これには、fixed_pic_rate_general_flag[i]構文要素から始まり、sublayer_hrd_parameters(i)構文構造に至るまでのHRDパラメータが、ols_hrd_parameters構文構造における条件“if(general_vcl_hrd_params_present_flag)”のすぐ下に含まれる。
【0473】
1に等しいfield_seq_flagは、CLVSがfieldを表すピクチャを伝達することを示す。0に等しいfield_seq_flagは、CLVSがフレームを表すピクチャを伝達することを示す。general_frame_only_constraint_flagが1に等しいとき、field_seq_flagの値は0に等しいものとする。
field_seq_flagが1に等しい場合は、CLVSにおけるすべてのコーディングされたピクチャごとに1つのフレームフィールド情報SEIメッセージが存在するものとする。
注5-規定された復号処理は、フィールドまたはフレームを表すピクチャを別に扱うことはない。従って、フィールドを表すピクチャのシーケンスは、個々のフィールドのピクチャ寸法を使用してコーディングされる。例えば、1080iフィールドを表すピクチャは、共通して、1920x540のトリミングされた出力寸法を有することになり、シーケンスピクチャレートは、通常、ソースフレームレート(一般的に、25Hzと30Hzとの間)の代わりに、ソースフィールドのレート(一っパン的に、50Hzと60Hzとの間)を表すことになる。
【0474】
1に等しいvui_parameters_present_flagは、構文構造vui_parameters()がSPS RBSP構文構造に存在することを規定する。0に等しいvui_parameters_present_flagは、構文構造vui_parameters()がSPS RBSP構文構造に存在しないことを規定する。
【0475】
0に等しいsps_extension_flagは、SPS RBSP構文構造にsps_extension_data_flag構文要素が含まれていないことを規定する。1に等しいsps_extension_flagは、SPS RBSP構文構造にsps_extension_data_flag構文要素が存在することを規定する。
【0476】
sps_extension_data_flagは任意の値を有することができる。その存在および値は、本明細書バージョンで特定された特徴に対するのデコーダの適合性に影響を与えない。本明細書バージョンに準拠するデコーダは、すべてのsps_extension_data_flag構文要素を無視しなければならない。
【0477】
7.4.3.4 ピクチャーパラメータセットRBSP意味論
【0478】
PPS RBSPは、それが参照される前に復号化処理で利用できるか、それを参照するPPS NALユニットのTemporalId以下のTemporalIdを持つ少なくとも一つのAU内に含まれるか、外部手段を通じて提供されるものとする。
1つのPU内の特定の値がpps_pic_parameter_set_idであるすべてのPPS NALユニットは、同じコンテンツを有するものとする。
【0479】
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以下であり、nuh_layer_idがppsLayerIdであるレイヤが、vclLayerIdであるnuh_layer_idを有するレイヤを含む少なくとも1つのOLSに含まれていない限り、特定のPPS NALユニットを参照しないものとする。
【0480】
pps_seq_parameter_set_idはSPSのsps_seq_parameter_set_idの値を規定する。pps_seq_parameter_set_idの値は、0~15の範囲内である。pps_seq_parameter_set_idの値は、1つのCLVSにおけるコーディングされたピクチャが参照するすべてのPPSにおいて同じであるものとする。
【0481】
1に等しいmixed_nalu_types_nalu_pic_flagは、PPSを参照する各ピクチャが2つ以上の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に等しいものとする。
nal_unit_typeの値nalUnitTypeAがIDR_W_RADL~CRA_NUTの範囲内にある各スライスで、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におけるすべてのPUについて、これらの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と等しいスライスを有することはできない。
【0482】
pic_width_in_luma_samplesは、PPSを参照して復号された各ピクチャの幅を輝度サンプルの単位で規定する。pic_width_in_luma_samplesは、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と等しいものとする。
【0483】
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)
【0484】
1に等しいpps_conformance_window_flagは、SPSにおける次の適合性クロッピングウィンドウのオフセットパラメータがPPSで次に続くことを示す。0に等しいpps_conformance_window_flagは、適合性クロッピングウィンドウのオフセットパラメータがPPSに存在しないことを示す。
【0485】
pps_conf_win_left_offset、pps_conf_win_right_offset、pps_conf_win_top_offset、およびand pps_conf_win_bottom_offsetは、出力用のピクチャ座標で設定された矩形領域に関し、復号処理から出力されるCLVSのピクチャのサンプルを規定する。pps_conformance_window_flagが0に等しい場合、pps_conf_win_left_offset、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_offset、sps_conf_win_top_offset、およびsps_conf_win_bottom_offsetと等しいことがビットストリーム適合性の要件である。
【0486】
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に等しいものとする。
【0487】
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の値は、それぞれSubWidthC*conf_win_left_offset、SubWidthC*conf_win_right_offset、SubHeightC*conf_win_top_offset、およびSubHeightC*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- (78)
SubWidthC*(scaling_win_right_offset+scaling_win_left_offset)
PicOutputHeightL=pic_height_in_luma_samples- (79)
SubWidthC*(scaling_win_bottom_offset+scaling_win_top_offset)
このPPSを参照する現在のピクチャの参照ピクチャのPicOutputWidthL、refPicOutputHeightLを、それぞれ、PicOutputWidthL、PicOutputHeightLとする。ビットストリーム適合性の要件は、以下のすべての条件を満たすことである。
-PicOutputWidthL*2はrefPicWidthInLumaSamples以上であるものとする。
-PicOutputHeightL*2はrefPicHeightInLumaSamples以上であるものとする。
-PicOutputWidthLがrefPicWidthInLumaSamples*8以下であるものとする。
-PicOutputHeightLがrefPicHeightInLumaSamples*8以下であるものとする。
-PicOutputWidthL*pic_width_max_in_luma_samplesはrefPicOutputWidthL*(pic_width_in_luma_samples-Max(8,MinCbSizeY)以上であるものとする。
-PicOutputHeightL*pic_height_max_in_luma_samplesはrefPicOutputHeightL*(pic_height_in_luma_samples-Max(8,MinCbSizeY))以上であるものとする。
【0488】
1に等しいoutput_flag_present_flagは、PPSを参照するスライスヘッダにpic_output_flag構文要素が存在することを示す。0に等しいoutput_flag_present_flagは、PPSを参照するスライスヘッダにpic_output_flag構文要素が存在しないことを示す。
【0489】
1に等しいsubpic_id_mapping_in_pps_flagは、PPSにおいてサブピクチャのIDマッピングが信号通知されることを規定する。0に等しいsubpic_id_mapping_in_pps_flagは、PPSにおいてサブピクチャのIDマッピングが信号通知されないことを規定する。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に等しいとする。
【0490】
pps_num_subpics_minus1はsps_num_subpics_minus1に等しいものとする。
【0491】
pps_subpic_id_len_minus1はsps_subpic_id_len_minus1に等しいものとする。
【0492】
pps_subpic_id[i]は、i番目のサブピクチャのサブピクチャIDを規定する。pps_subpic_id[i]の構文要素の長さは、pps_subpic_id_len_minus1+1ビットである。
変数SubpicIdVal[i]は、0~sps_num_subpics_minus1の範囲内にあるiの各値について、以下のように導出される。
for(i=0;i<=sps_num_subpics_minus1;i++)
if(subpic_id_mapping_explicitly_signalled_flag)
SubpicIdVal[i]=subpic_id_mapping_in_pps_flag?pps_subpic_id[i]:sps_subpic_id[i] (80)
else
SubpicIdVal[i]=i
ビットストリーム適合性の要件は、以下の制約の双方が適用されることである。
-0~sps_num_subpics_minus1の範囲内にあるiおよびjの任意の2つの異なる値の場合、SubpicIdVal[i]はSubpicIdVal[j]に等しくないものとする。
-現在のピクチャがCLVSの第1のピクチャでない場合、0~sps_num_subpics_minus1の範囲内にあるiの各値について、SubpicIdVal[i]の値が、同じレイヤにおいて復号順に前のピクチャのSubpicIdVal[i]の値に等しくない場合、サブピクチャインデックスiを有する現在のピクチャにおけるサブピクチャのすべてのコーディングされたスライスNALユニットのnal_unit_typeは、IDR_W_RADLからCRA_NUTの範囲内にある特定の値と等しいものとする。
【0493】
1に等しいno_pic_partition_flagは、PPSを参照する各ピクチャに対してピクチャ分割が適用されないことを規定する。0に等しいno_pic_partition_flagは、PPSを参照する各ピクチャを2つ以上のタイルまたはスライスに分割することができることを規定する。
1つのCLVS内のコーディングされたピクチャによって参照されるすべてのPPSについて、no_pic_partition_flagの値が同じであるものとすることが、ビットストリーム適合性の要件である。
sps_num_subpics_minus1+1の値が1よりも大きい場合、no_pic_partition_flagの値が1でないものとすることが、ビットストリーム適合性の要件である。
【0494】
pps_log2_ctu_size_minus5+5は、各CTUの輝度コーディングツリーブロックのブロックサイズを規定する。
pps_log2_ctu_size_minus5はsps_log2_ctu_size_minus5に等しいものとする。
【0495】
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に等しいと推論される。
【0496】
num_exp_tile_rows_minus1+ 1は明示的に提供されるタイルの行の高さの数を規定する。num_exp_tile_rows_minus1の値は、0からPicHeightInCtbsY-1までの範囲内にあるものとする。no_pic_partition_flagが1に等しい場合は、num_tile_rows_minus1の値は0に等しいと推論される。
【0497】
tile_column_width_minus1[i]+1は、i番目のタイル列の幅を、0~num_exp_tile_columns_minus1-1の範囲内にあるi番目のタイル列のCTB単位で規定する。
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に等しいと推論される。
【0498】
tile_row_height_minus1[i]+1は、i番目のタイル列の高さを、0~num_exp_tile_rows_minus1-1の範囲内にあるi番目のタイル行のCTB単位で規定する。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に等しいと推論される。
【0499】
0に等しいrect_slice_flagは、各スライス内のタイルがラスタスキャン順に配列されており、且つスライス情報がPPSで信号通知されないことを規定する。1に等しいrect_slice_flagは、各スライス内のタイルがピクチャの矩形領域を覆い、且つスライス情報がPPSで信号通知されることを規定する。存在しない場合、rect_slice_flagは1に等しいと推測される。subpic_info_present_flagが1に等しいとき、rect_slice_flagの値は1に等しいものとする。
【0500】
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に等しいと推測される。
【0501】
num_slices_in_pic_minus1+1は、PPSを参照する各ピクチャの矩形スライスの数を規定する。num_slices_in_pic_minus1の値は、0~MaxSlicesPerpicture-1の範囲内にあるものとし、ここで、MaxSlicesPerpictureを含むものとする。no_pic_partition_flagが1に等しい場合は、num_slices_in_pic_minus1の値は0に等しいと推論される。
【0502】
0に等しいtile_idx_delta_present_flagは、PPSにtile_idx_delta値が存在しないことを規定し、6.5.1項に定義された処理に従って、PPSを参照するピクチャにおけるすべての矩形スライスをラスタ順に規定する。1に等しいtile_idx_delta_present_flagは、PPSにtile_idx_delta値が存在してもよいことを規定し、PPSを参照するピクチャのすべての矩形スライスが、tile_idx_deltaの値によって示された順で規定される。存在しない場合、tile_idx_delta_present_flagの値は0と推測される。
【0503】
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に等しいと推論される。
-そうでない場合、6.5.1項で規定されるように、slice_width_in_tiles_minus1[i]の値を推論する。
【0504】
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]と等しいと推論される。
【0505】
num_exp_slices_in_tile[i]は、2つ以上の矩形スライスを含む、現在のタイルに明示的に提供されるスライスの高さの数を規定する。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に等しいと導出される。
【0506】
exp_slice_height_in_ctus_minus1[j]+1は、現在のタイルにおけるj番目の矩形スライスの高さをCTU行単位で規定する。exp_slice_height_in_CTUs_minus1[j]の値は、0~RowHeight[tileY]-1の範囲内にあるものとする。ここで、tileYは、現在のタイルのタイル行インデックスである。
num_exp_slices_in_tile[i]が0より大きいとき、変数NumSliceSInTile[i]および0からNumSliceSinTile[i]-1の範囲内にあるkに対するSliceHeightInCtusMinus1[i+k]は、以下のように導出される。
【0507】
remainingHeightInCtbsY=RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]
numExpSliceInTile=num_exp_slices_in_tile[i]
for(j=0;j<numExpSliceInTile-1;j++){
SliceHeightInCtusMinus1[i++]=exp_slice_height_in_ctu_minus1[j]
remainingHeightInCtbsY-=SliceHeightInCtusMinus1[j]
}
uniformSliceHeightMinus1=SliceHeightInCtusMinus1[i-1] (81)
while(remainingHeightInCtbsY>=(uniformSliceHeightMinus1+1)){
SliceHeightInCtusMinus1[i++]=uniformSliceHeightMinus1
remainingHeightInCtbsY-=(uniformSliceHeightMinus1+1)
j++
}
if(remainingHeightInCtbsY>0){
SliceHeightInCtusMinus1[i++]=remainingHeightInCtbsY
j++
}
NumSlicesInTile[i]=j
【0508】
tile_idx_delta[i]i番目の矩形スライスにおける第1のタイルのタイルインデックスと、(i+1)番目の矩形スライスにおける第1のタイルのタイルインデックスと、の差を規定する。tile_idx_delta[i]の値は、-NumTilesInPic+1~NumTilesInPic-1の範囲内にあるものとする。存在しない場合、tile_idx_delta[i]の値は0に等しいと推測される。存在する場合、tile_idx_delta[i]の値は0に等しいと推測される。
【0509】
1に等しいloop_filter_across_tiles_enabled_flagは、PPSを参照しているピクチャにおいて、タイルの境界をまたいでインループフィルタリング動作を行うことができることを規定する。0に等しいloop_filter_across_tiles_enabled_flagは、PPSを参照しているピクチャにおいて、タイルの境界をまたいでインループフィルタリング動作を行わないことを規定する。インループフィルタリング動作は、デブロッキングフィルタ、サンプル適応オフセットフィルタ、および適応ループフィルタ動作を含む。存在しない場合、loop_filter_across_tiles_enabled_flagの値は1に等しいと推測される。
【0510】
1に等しいloop_filter_across_slices_enabled_flagは、PPSを参照しているピクチャにおいて、スライスの境界をまたいでインループフィルタリング動作を行うことができることを規定する。0に等しいloop_filter_across_slice_enabled_flagは、PPSを参照しているピクチャにおいて、スライスの境界をまたいでインループフィルタリング動作を行わないことを規定する。インループフィルタリング動作は、デブロッキングフィルタ、サンプル適応オフセットフィルタ、および適応ループフィルタ動作を含む。存在しない場合、loop_filter_across_slices_enabled_flagの値は0に等しいと推測される。
【0511】
1に等しいcabac_init_present_flagは、PPSを参照するスライスヘッダにcabac_init_flagが存在することを規定する。0に等しいcabac_init_present_flagは、cabac_init_flagがPPSを参照するスライスヘッダにcabac_init_flagが存在しないことを規定する。
【0512】
0に等しいnum_ref_idx_active_minus1[i]は、iが0に等しい場合、PまたはBスライスの変数NumRefIdxActive[0]の推論値をnum_ref_idx_active_override_flag=0で規定し、0に等しいnum_ref_idx_active_override_flagは、iが1に等しい場合、Bスライスの変数NumRefIdxActive[1]の推論値をnum_ref_idx_active_override_flag=0で規定する。num_ref_idx_default_active_minus1[i]の値は、0~14の範囲内にあるものとする。
【0513】
0に等しいrpl1_idx_present_flagは、PPSを参照するピクチャのPH構文構造またはスライスヘッダにref_pic_list_sps_flag[1]およびref_pic_list_idx[1]が存在しないことを規定する。1に等しいrpl1_idx_present_flagは、PPSを参照するピクチャのPH構文構造またはスライスヘッダにref_pic_list_sps_flag[1]およびref_pic_list_idx[1]が存在する場合があることを規定する。
【0514】
init_qp_minus26+26PPSを参照するスライスごとにSliceQpYの初期値を規定する。SliceQpYの最初の値は、ph_qp_deltaの非ゼロ値が復号されるときにはピクチャレベルで、またはslice_qp_deltaの非ゼロ値が復号されるときにはスライスレベルで、修正される。init_qp_minus26の値は、-(26+QpBdOffset)~+37の範囲内にあるものとする。
【0515】
cu_qp_delta_enabled_flagが1に等しいことは、ph_cu_qp_delta_subdiv_intra_sliceおよびph_cu_qp_delta_subdiv_inter_slice構文要素がPPSを参照するPHに存在し、cu_qp_delta_absが変換ユニット構文に存在してもよいことを規定する。cu_qp_delta_flagが0に等しいことは、ph_cu_qp_subdiv_intra_sliceおよびph_cu_qp_subdiv_inter_slice構文要素がPPSを参照するPHに存在せず、cu_qp_delta_absが変換ユニット構文に存在しないことを規定する。
【0516】
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に等しくなる。
【0517】
pps_cb_qp_offset、pps_cr_qp_offsetは、Qp’Cb、Qp’Crの導出に用いられる輝度量子化パラメータ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に等しいと推論される。
【0518】
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に等しいと推測される。
【0519】
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に等しいと推論される。
【0520】
pps_slice_chroma_qp_offsets_present_flagが1に等しい場合は、slice_cb_qp_offsetおよびslice_cr_qp_offset構文要素が関連付けられたスライスヘッダに存在することを規定する。pps_slice_slice_chroma_qp_offsets_present_flagが0に等しい場合は、slice_cb_qp_offsetおよびslice_cr_qp_offset構文要素が関連付けられたスライスヘッダに存在しないことを規定する。存在しない場合、pps_slice_chroma_qp_offsets_present_flagの値は0に等しいと推測される。
【0521】
1に等しいpps_cu_chroma_qp_offset_list_enabled_flagは、PPSを参照するPHにph_cu_chroma_qp_offset_subdiv_intra_sliceおよびph_cu_chroma_qp_offset_subdiv_inter_slice構文要素が存在し、cu_chroma_qp_offset_flagが変換ユニット構文およびパレットコーディングする構文に存在する場合もあることを規定する。0に等しいpps_cu_chroma_qp_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に等しいと推測される。
【0522】
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までの範囲内にあるべきである。
【0523】
cb_qp_offset_list[i]、cr_qp_offset_list[i]、およびjoint_cbcr_qp_offset_list[i]は、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に等しいと推論される。
【0524】
0に等しいpps_weighted_pred_flagは、PPSを参照しているPスライスに対して重み付け予測が適用されないことを規定する。1に等しいpps_weighted_pred_flagは、PPSを参照しているPスライスに対して重み付け予測が適用されることを規定する。sps_weighted_pred_flagが0に等しい場合、pps_weighted_pred_flagの値は0に等しいものとする。
【0525】
0に等しいpps_weighted_bipred_flagは、PPSを参照しているBスライスに対して明示的な重み付け予測が適用されないことを規定する。1に等しいpps_weighted_bipred_flagは、PPSを参照しているBスライスに対して明示的な重み付け予測が適用されることを規定する。sps_weighted_bipred_flagが0に等しい場合、pps_weighted_bipred_flagの値は0に等しいものとする。
【0526】
1に等しいdeblocking_filter_control_present_flagは、PPSにおけるデブロッキングフィルタ制御構文要素の存在を規定する。0に等しいdeblocking_filter_control_present_flagは、PPSにおけるデブロッキングフィルタ制御構文要素の不在を規定する。
【0527】
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に等しいと推測される。
【0528】
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に等しいと推測される。
【0529】
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に等しいと推論される。
【0530】
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_offset_div2およびpps_cb_offset_div2の値はいずれも0に等しいと推論される。
【0531】
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_offset_div2およびpps_cr_offset_div2の値はいずれも0に等しいと推論される。
【0532】
1に等しいrpl_info_in_ph_flagは、参照ピクチャリスト情報がPH構文構造に含まれており、PH構文構造を含まないPPSを参照するスライスヘッダに含まれていないことを規定する。0に等しいrpl_info_in_ph_flagは、参照ピクチャリスト情報がPH構文構造に含まれておらず、PH構文構造を包含しないPPSを参照するスライスヘッダに存在する場合があることを規定する。
【0533】
1に等しいdbf_info_in_ph_flagは、PH構文構造にデブロッキングフィルタ情報が存在し、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを規定する。0に等しいdbf_info_in_ph_flagは、PH構文構造にデブロッキングフィルタ情報が存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在する場合があることを規定する。存在しない場合、dbf_info_in_ph_flagの値は0に等しいと推測される。
【0534】
1に等しいsao_info_in_ph_flagは、PH構文構造にSAOフィルタ情報が存在し、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを規定する。0に等しいsao_info_in_ph_flagは、PH構文構造にSAOフィルタ情報が存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在する場合があることを規定する。
【0535】
1に等しいalf_info_in_ph_flagは、PH構文構造にALF情報が存在し、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを規定する。0に等しいalf_info_in_ph_flagは、PH構文構造にALF情報が存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在する場合があることを規定する。
【0536】
1に等しいwp_info_in_ph_flagは、PH構文構造に重み付け予測情報が存在している場合があり、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを規定する。0に等しいwp_info_in_ph_flagは、PH構文構造に重み付け予測情報が存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在する場合があることを規定する。存在しない場合、wp_info_in_ph_flagの値は0に等しいと推測される。
【0537】
1に等しいqp_delta_info_in_ph_flagは、PH構文構造にQPデルタ情報が存在し、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを規定する。0に等しいqp_delta_info_in_ph_flagは、PH構文構造にQPデルタ情報が存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在する場合があることを規定する。
【0538】
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に等しいものとする。
【0539】
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に等しく設定される。
【0540】
0に等しいpicture_header_extension_present_flagは、PPSを参照するPHsにおいてPH拡張構文要素が存在しないことを規定する。1に等しいpicture_header_extension_present_flagは、PPSを参照するPHにおいてPH拡張構文要素が存在することを規定する。picture_header_extension_present_flagは、本明細書のこのバージョンに準拠するビットストリームにおいて0に等しいものとする。
【0541】
0に等しいslice_header_extension_present_flagは、PPSを参照するコーディングされたピクチャのスライスヘッダにスライスヘッダ拡張構文要素が存在しないことを規定する。1に等しいslice_header_extension_flagは、PPSを参照するコーディングされたピクチャのスライスヘッダにスライスヘッダ拡張構文要素が存在することを規定する。slice_header_extension_present_flagは、本明細書のこのバージョンに準拠するビットストリームにおいて0に等しいものとする。
【0542】
0に等しいpps_extension_flagは、PPS RBSP構文構造にpps_extension_data_flag構文要素が含まれていないことを規定する。1に等しいpps_extension_flagは、PPS RBSP構文構造にpps_extension_data_flag構文要素が存在することを規定する。
【0543】
pps_extension_data_flagは任意の値を有することができる。その存在および値は、本明細書バージョンで特定された特徴に対するのデコーダの適合性に影響を与えない。本明細書バージョンに準拠するデコーダは、すべてのpps_extension_data_flag構文要素を無視しなければならない。
【0544】
7.4.3.5 適応パラメータセット意味論
【0545】
各APS RBSPは、それが参照される前に復号化処理で利用できるか、それを参照する符号化スライスNALユニットのTemporalId以下のTemporalIdを持つ少なくとも一つのAU内に含まれるか、外部手段を通じて提供されるものとする。
adaptation_parameter_set_idの特定の値を有し、かつPU内のaps_params_typeの特定の値を有するすべてのAPS NALユニットは、それらがプレフィクスであるかサフィックスAPS NALユニットであるかどうかに関わらず、同じコンテンツを有するものとする。
【0546】
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以下であり、nuh_layer_idがapsLayerIdであるレイヤが、vclLayerIdであるnuh_layer_idを有するレイヤを含む少なくとも1つのOLSに含まれていない限り、特定のAPS NALユニットを参照しないものとする。
【0547】
aps_params_typeは、表6に示されるように、APSにおいて実行されるAPSパラメータのタイプを規定する。
【0548】
【0549】
aps_params_typeの特定の値を有するすべてのAPS NALユニットは、nuh_layer_idの値に関わらず、adaptation_parameter_set_idのために同じ値空間を共有する。aps_params_typeの値が異なるAPS NALユニットは、adaptation_parameter_set_idに別個の値空間を使用する。
【0550】
注1-APS NALユニット(adaption_parameter_set_idの特定の値とaps_params_typeの特定の値を有する)は、ピクチャ間で共有することができ、ピクチャ内の異なるスライスは、異なるALF APSを参照することができる。
注2-特定のVCL NALユニットに関連付けられたサフィックスAPS NALユニット(このVCL NALユニットは、復号順でサフィックスAPS NALユニットに先行する)は、特定のVCL NALユニットによって使用されるものではなく、サフィックスAPS NALユニットに続くVCL NALユニットによって復号順で使用されるものである。
【0551】
0に等しいaps_extension_flagは、APS RBSP構文構造にaps_extension_data_flag構文要素が含まれていないことを規定する。1に等しいaps_extension_flagは、APS RBSP構文構造にaps_extension_data_flag構文要素が存在することを規定する。
【0552】
aps_extension_data_flagは任意の値を有することができる。その存在および値は、本明細書バージョンで特定された特徴に対するのデコーダの適合性に影響を与えない。本明細書バージョンに準拠するデコーダは、すべてのaps_extension_data_flag構文要素を無視しなければならない。
【0553】
7.4.3.6 ピクチャヘッダRBSP意味論
【0554】
PH RBSPは、PH構文構造、即ち、picture_header_structure()を含む。
【0555】
7.4.3.7 ピクチャヘッダ構造意味論
【0556】
PH構文構造は、PH構文構造に関連付けられたコーディングされたピクチャのすべてのスライスに共通の情報を含む。
【0557】
1に等しいgdr_or_irap_pic_flagは、現在のピクチャがGDRまたはIRAPピクチャであることを規定する。0に等しいgdr_or_irap_pic_flagは、現在のピクチャがGDRまたはIRAPピクチャであってもなくてもよいことを規定する。
【0558】
1に等しいgdr_pic_flagは、PHに関連付けられたピクチャがGDRピクチャであることを規定する。0に等しいgdr_pic_flagは、PHに関連付けられたピクチャがGDRピクチャでないことを規定する。存在しない場合、gdr_pic_flagの値は0に等しいと推測される。gdr_enabled_flagが0に等しい場合、gdr_pic_flagの値は0に等しいものとする。
【0559】
0に等しいph_inter_slice_allowed_flagは、ピクチャのすべてのコーディングされたスライスのslice_typeが2であることを規定する。1に等しいph_inter_slice_allowed_flagは、slice_typeが0または1に等しいピクチャに1つ以上のコーディングされたスライスがあってもなくてもよいことを規定する。
【0560】
0に等しいph_intra_slice_allowed_flagは、ピクチャのすべてのコーディングされたスライスのslice_typeが0または1に等しいことを規定する。1に等しいph_intra_slice_allowed_flagは、ピクチャ内にslice_typeが2に等しい1つ以上のコーディングされたスライスがあってもなくてもよいことを規定する。存在しない場合は、ph_intra_slice_allowed_flagの値が1に等しいと推論される。
注1-PH NALユニットを変更することなく、サブピクチャに基づくビットストリームのマージを実行するように意図されたビットストリームの場合、エンコーダは、ph_inter_slice_allowed_flagおよびph_intra_slice_allowed_flagの両方の値を1に等しく設定することが予想される。
【0561】
1に等しいnon_reference_picture_flagは、PHに関連付けられたピクチャを参照ピクチャとして使用することができないことを規定する。0に等しいnon_reference_picture_flagは、PHに関連付けられたピクチャを参照ピクチャとして使用してもしなくてもよいことを規定する。
【0562】
ph_pic_parameter_set_idは、使用中のPPSのpps_pic_parameter_set_idの値を規定する。ph_pic_parameter_set_idの値は、0~63の範囲内である。
PHのTemporalIdの値が、pps_pic_parameter_set_idがph_pic_parameter_set_idであるPPSのTemporalIdの値以上であるものとすることが、ビットストリーム適合性の要件である。
【0563】
ph_pic_order_cnt_lsbは、現在のピクチャのピクチャオーダカウントmodulo MaxPicOrderCntLsbを規定する。ph_pic_order_cnt_lsb構文要素の長さは、log2_max_pic_order_cnt_lsb_minus4+4ビットである。ph_pic_order_cnt_lsbの値は、0~MaxPicOrderCntLsb-1の範囲内にあるものとする。
【0564】
no_output_of_prior_pics_flagは、ビットストリームの最初のピクチャでないCLVSSピクチャの復号後の、DPBにおける前回復号されたピクチャの出力に影響を及ぼす。
【0565】
recovery_poc_cntは、復号ピクチャの出力順のリカバリポイントを規定する。現在のピクチャがPHに関連付けられたGDRピクチャであり、現在のGDRピクチャのPicOrderCntValにrecovery_poc_cntの値を加えたものであるPicOrderCntValを有するCLVSにおいて、復号順で現在のGDRピクチャに後続するピクチャが存在する場合、このピクチャpicAをリカバリポイントピクチャと呼ぶ。そうでない場合、現在のピクチャのPicOrderCntValにrecovery_poc_cntの値を加えたものよりも大きいPicOrderCntValを有する出力順の第1のピクチャを、リカバリポイントピクチャと呼ぶ。リカバリポイントピクチャは、現在の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ピクチャ(存在する場合)から復号処理を開始することによって生成された対応するピクチャに完全に一致する。
【0566】
ph_extra_bit[i]は1又は0に等しくてもよい。本明細書バージョンに準拠するデコーダは、ph_extra_bit[i]の値を無視しなければならない。その値は、本明細書のバージョンで特定された特徴に対するデコーダの適合性に影響を与えない。
【0567】
1に等しいph_poc_msb_present_flagは、構文要素poc_msb_valがPHに存在することを規定する。0に等しいph_poc_msb_present_flagは、構文要素ph_msb_valがPHに存在しないことを規定する。vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が0に等しく、現在のレイヤの参照レイヤの現在のAUにピクチャがある場合、ph_poc_msb_present_flagの値は0に等しいものとする。
【0568】
poc_msb_valは、現在のピクチャのPOC MSB値を規定する。構文要素poc_msb_valの長さは、poc_msb_len_minus1+1ビットである。
【0569】
1に等しいph_alf_enabled_flagは、PHに関連付けられたすべてのスライスに対して適応ループフィルタを有効化し、スライスにおけるY、Cb、またはCr色成分に適用してもよいことを規定する。0に等しいph_alf_enabled_flagは、PHに関連付けられた1つ以上またはすべてのスライスに対して適応ループフィルタを無効化することができることを規定する。存在しない場合、ph_alf_enabled_flagは0に等しいと推測される。
【0570】
ph_num_alf_aps_ids_lumaは、PHに関連付けられたスライスが参照するALF APSの数を規定する。
【0571】
ph_alf_aps_id_luma[i]は、PHに関連付けられたスライスの輝度成分が参照するi番目のALF APSのadaptation_parameter_set_idを規定する。
aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがph_alf_aps_id_luma[i]に等しいAPS NALユニットのalf_luma_filter_signal_flagの値は、1に等しいものとする。
aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがph_alf_aps_id_luma[i]であるAPS NALユニットのTemporalIdは、PHに関連付けられたピクチャのTemporalId以下であるものとする。
【0572】
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と色成分に適用されることを示す。
ph_alf_chroma_idcが存在しない場合、それは0に等しいと推論される。
【0573】
ph_alf_aps_id_chroma PHに関連付けられたスライスのクロマ成分が参照するALF APSのadaptation_parameter_set_idを規定する。
aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがph_alf_aps_id_chroma[i]に等しいAPS NALユニットのalf_chroma_filter_signal_flagの値は1に等しいものとする。
aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがph_alf_aps_id_chroma[i]であるAPS NALユニットのTemporalIdは、PHに関連付けられたピクチャのTemporalId以下であるものとする。
【0574】
1に等しいph_cc_alf_cb_enabled_flagは、Cb色成分のためのクロスコンポーネントフィルタがPHに関連付けられたすべてのスライスに対して有効化され、スライスにおけるCb色成分に適用してもよいことを規定する。
0に等しいph_cc_alf_cb_enabled_flagは、Cb色成分のためのクロスコンポーネントフィルタがPHに関連付けられた1つ以上またはすべてのスライスに対して無効化されてもよいことを規定する。存在しない場合、ph_cc_alf_cb_enabled_flagは0に等しいと推測される。
【0575】
ph_cc_alf_cb_aps_idは、PHに関連付けられたスライスのCb色成分が参照するALF APSのadaptation_parameter_set_idを規定する。
aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがph_cc_alf_cb_aps_idに等しいAPS NALユニットのalf_cc_cb_filter_signal_flagの値は、1に等しいものとする。
【0576】
1に等しいph_cc_alf_cr_enabled_flagは、Cb色成分のためのクロスコンポーネントフィルタがPHに関連付けられたすべてのスライスに対して有効化され、スライスにおけるCr色成分に適用してもよいことを規定する。
0に等しいph_cc_alf_cr_enabled_flagは、Cr色成分のためのクロスコンポーネントフィルタがPHに関連付けられた1つ以上またはすべてのスライスに対して無効化されてもよいことを規定する。存在しない場合、ph_cc_alf_cr_enabled_flagは0に等しいと推測される。
【0577】
ph_cc_alf_cr_aps_idは、PHに関連付けられたスライスのCr色成分が参照するALF APSのadaptation_parameter_set_idを規定する。
aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがph_cc_alf_cr_aps_idに等しいAPS NALユニットのalf_cc_cr_filter_signal_flagの値は、1に等しいものとする。
【0578】
1に等しいph_lmcs_enabled_flagは、PHに関連付けられたすべてのスライスに対してクロマスケーリングを伴う輝度マッピングが有効化されることを規定する。0に等しいph_lmcs_enabled_flagは、PHに関連付けられた1つ以上またはすべてのスライスに対してクロマスケーリングを伴う輝度マッピングが無効化されることを規定する。存在しない場合、ph_lmcs_enabled_flagの値は0に等しいと推測される。
【0579】
ph_lmcs_aps_idは、PHに関連付けられたスライスが参照するLMCS APSのadaptation_parameter_set_idを規定する。aps_params_typeがLMCS_APSに等しく、adaptation_parameter_set_idがph_lmcs_aps_idであるAPS NALユニットのTemporalIdは、PHに関連付けられたピクチャのTemporalId以下であるものとする。
【0580】
1に等しいph_chroma_residual_scale_flagは、PHに関連付けられたすべてのスライスに対してクロマ残差スケーリングが有効化されることを規定する。0に等しいph_chroma_residual_scale_flagは、PHに関連付けられた1つ以上、またはすべてのスライスに対してクロマ残差スケーリングが無効化されることを規定する。ph_chroma_residual_scale_flagが存在しない場合、これは0に等しいと推論される。
【0581】
1に等しいph_scaling_list_present_flagは、参照スケーリングリストAPSに含まれるスケーリングリストデータに基づいて、PHに関連付けられたスライスに使用されるスケーリングリストデータを導出することを規定する。0に等しいph_scaling_list_present_flagは、PHに関連付けられたスライスに対して使用されるスケーリングリストが16になるように設定されることを規定する。存在しない場合、ph_scaling_list_present_flagの値は0と推測される。
【0582】
ph_scaling_list_aps_idは、スケーリングリストAPSのadaptation_parameter_set_idを規定する。aps_params_typeがSCALING_APSに等しく、adaptation_parameter_set_idがph_scaling_list_aps_idであるAPS NALユニットのTemporalIdは、PHに関連付けられたピクチャのTemporalId以下であるものとする。
【0583】
1に等しいph_virtual_boundaries_present_flagは、PHで仮想境界の情報を信号通知することを規定する。0に等しいph_virtual_boundaries_present_flagは、PHで仮想境界の情報を信号通知しないことを規定する。PHにおいて信号通知される仮想境界が1つ以上ある場合、ピクチャにおいて、仮想境界を跨ぐインループフィルタリング動作は無効化される。インループフィルタリング動作は、デブロッキングフィルタ、サンプル適応オフセットフィルタ、および適応ループフィルタ動作を含む。存在しない場合、ph_virtual_boundaries_present_flagの値は1と推測される。
subpic_info_present_flagが1に等しい場合は、ph_virtual_boundaries_present_flagの値が0に等しいものとすることが、ビットストリーム適合性の要件である。
変数VirtualBoundariesPresentFlagは、以下のように導出される。
【0584】
VirtualBoundariesPresentFlag=0
if(sps_virtual_boundaries_enabled_flag)
VirtualBoundariesPresentFlag=sps_virtual_boundaries_present_flag||
ph_virtual_boundaries_present_flag (83)
【0585】
ph_num_ver_virtual_boundariesは、PHに存在するph_virtual_boundaries_pos_x[i]構文要素の数を規定する。ph_num_ver_virtual_boundariesが存在しない場合、0に等しいと推測される。
変数NumVerVirtualBoundariesは、以下のように導出される。
【0586】
NumVerVirtualBoundaries=0
if(sps_virtual_boundaries_enabled_flag)
NumVerVirtualBoundaries=sps_virtual_boundaries_present_flag?
sps_num_ver_virtual_boundaries:ph_num_ver_virtual_boundaries (84)
【0587】
ph_virtual_boundaries_pos_x[i]i番目の垂直仮想境界の位置を、輝度サンプルを8で割った単位で規定する。ph_virtual_boundaries_pos_x[i]の値は、1からCeil(pic_width_in_luma_samples÷8)-1の範囲内にあるものとする。
iが0からNumVerVirtualBoundaries-1までのリストVirtualBoundariesPosX[i]を、輝度サンプル単位で、垂直仮想境界の位置を規定することにより、以下のように導出する。
for(i=0;i<NumVerVirtualBoundaries;i++)
VirtualBoundariesPosX[i]=(sps_virtual_boundaries_present_flag?
sps_virtual_boundaries_pos_x[i]:ph_virtual_boundaries_pos_x[i])*8 (85)
任意の2つの垂直仮想境界間の距離は、CtbSizeY輝度サンプル以上であるものとする。
【0588】
ph_num_hor_virtual_boundariesは、PHに存在するph_virtual_boundaries_pos_y[i]構文要素の数を規定する。ph_num_hor_virtual_boundariesが存在しない場合、0に等しいと推測される。
パラメータNumHorVirtualBoundariesは、以下のように導出される。
【0589】
NumHorVirtualBoundaries=0
if(sps_virtual_boundaries_enabled_flag)
NumHorVirtualBoundaries=sps_virtual_boundaries_present_flag?
sps_num_hor_virtual_boundaries:ph_num_hor_virtual_boundaries (86)
【0590】
sps_virtual_boundaries_enabled_flagが1に等しく、ph_virtual_boundaries_present_flagが1に等しい場合は、ph_num_ver_virtual_boundariesとph_num_hor_virtual_boundariesの合計は、0より大きいものとする。
【0591】
ph_virtual_boundaries_pos_y[i]は、i番目の水平方向の仮想境界の位置を、輝度サンプルを8で割った単位で規定する。ph_virtual_boundaries_pos_y[i]の値は、1からCeil(pic_height_in_luma_samples÷8)-1の範囲内にあるものとする。
iが0からNumHorVirtualBoundaries-1までのリストVirtualBoundariesPosY[i]を、輝度サンプル単位で、水平仮想境界の位置を規定することにより、以下のように導出する。
【0592】
for(i=0;i<NumHorVirtualBoundaries;i++)
VirtualBoundariesPosY[i]=(sps_virtual_boundaries_present_flag?
sps_virtual_boundaries_pos_y[i]:ph_virtual_boundaries_pos_y[i])*8 (87)
任意の2つの水平仮想境界間の距離は、CtbSizeY輝度サンプル以上であるものとする。
【0593】
pic_output_flagは、復号されたピクチャの出力および削除処理に影響を及ぼす。pic_output_flagが存在しない場合、1に等しいと推測される。
【0594】
1に等しいpartition_constraints_override_flagは、パーティション制約パラメータがPHに存在することを規定する。0に等しいpartition_constraints_override_flagは、パーティション制約パラメータがPHに存在しないことを規定する。存在しない場合、partition_constraints_override_flagの値は0に等しいと推測される。
【0595】
ph_log2_diff_min_qt_min_cb_intra_slice_lumaは、CTUの4分木分割に起因する輝度リーフブロックの輝度サンプルの最小サイズの底2対数と、PHに関連付けられたslice_typeが2(I)であるスライスにおける輝度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_lumaに等しいと推論される。
【0596】
ph_max_mtt_hierarchy_depth_intra_slice_lumaは、PHに関連付けられたslice_typeが2(I)であるスライスにおける4分木のマルチタイプツリー分割に起因するコーディングユニットの最大階層深さを規定する。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と等しくなると推論される。
【0597】
ph_log2_diff_max_bt_min_qt_intra_slice_lumaは、2値分割を使用して分割され得る輝度コーディングブロックの輝度サンプルの最大サイズ(幅または高さ)の底2対数と、PHに関連付けられた2(I)であるslice_typeを有するスライスのCTUの4分木分割に起因する輝度リーフブロックの輝度サンプルの最小サイズ(幅または高さ)と、の差を規定する。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と等しくなると推論される。
【0598】
ph_log2_diff_max_tt_min_qt_intra_slice_lumaは、3進法の分割を使用して分割され得る輝度コーディングブロックの輝度サンプルの最大サイズ(幅または高さ)の底2対数と、PHに関連付けられた2(I)であるslice_typeを有するスライスのCTUの4分木分割に起因する輝度リーフブロックの輝度サンプルの最小サイズ(幅または高さ)と、の差を規定する。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と等しくなると推論される。
【0599】
ph_log2_diff_min_qt_min_cb_intra_slice_chromaは、DUAL_TREE_CHROMAに等しいtreeTypeを持つクロマCTUの4分木分割によるクロマリーフブロックの輝度サンプルにおける最小サイズの底2対数と、PHに関連付けられたslice_typeが2(I)のスライスにおけるDUAL_TREE_CHROMAに等しいtreeTypeを持つクロマCUの輝度サンプルの最小コーディングブロックサイズの底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_chromaに等しいと推論される。
【0600】
ph_max_mtt_hierarchy_depth_intra_slice_chromaは、PHに関連付けられたslice_typeが2(I)のtreeType=DUAL_TREE_CHROMAであるtreeTypeを有するクロマ4分木のマルチタイプツリー分割に起因するクロマコーディングユニットの最大階層深度を規定する。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と等しいと推論される。
【0601】
ph_log2_diff_max_bt_min_qt_intra_slice_chromaは、2値分割を使用して分割され得るクロマコーディングブロックの輝度サンプルの最大サイズ(幅または高さ)の底2対数と、PHに関連付けられたslice_typeが2(I)であるスライスにおけるDUAL_TREE_CHROMAと等しいtreeTypeを有するクロマCTUの4分木分割に起因するクロマリーフブロックの輝度サンプルの最小サイズ(幅または高さ)との差を規定する。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と等しくなると推論される。
【0602】
ph_log2_diff_max_tt_min_qt_intra_slice_chromaは、3進法分割を使用して分割され得るクロマコーディングブロックの輝度サンプルの最大サイズ(幅または高さ)の底2対数と、PHに関連付けられたslice_typeが2(I)であるスライスにおけるDUAL_TREE_CHROMAと等しいtreeTypeを有するクロマCTUの4分木分割に起因するクロマリーフブロックの輝度サンプルの最小サイズ(幅または高さ)との差を規定する。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と等しくなると推論される。
【0603】
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に等しいと推測される。
【0604】
ph_cu_chroma_qp_offset_subdiv_intra_sliceは、cu_chroma_qp_offset_flagを伝達するイントラスライス内のコーディングユニットの最大cbSubdiv値を規定する。ph_cu_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に等しいと推測される。
【0605】
ph_log2_diff_min_qt_min_cb_inter_sliceは、CTUの4分木分割に起因する輝度リーフブロックの輝度サンプルの最小サイズの底2対数と、PHに関連付けられたslice_typeが0(B)または1(P)と等しいスライスにおける輝度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に等しいと推論される。
【0606】
ph_max_mtt_hierarchy_depth_inter_sliceは、PHに関連付けられたslice_typeが0(B)または1(P)のスライスにおいて、4分木リーフのマルチタイプツリー分割によるコーディングユニットの最大階層深さを規定する。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に等しいと推論される。
【0607】
ph_log2_diff_max_bt_min_qt_inter_sliceは、2値分割を使用して分割されることができる輝度コーディングブロックの輝度サンプルの最大サイズ(幅または高さ)の底2対数と、PHに関連付けられた0(B)または1(P)であるスライスにおけるCTUの4分木分割に起因する輝度リーフブロックの輝度サンプルの最小サイズ(幅または高さ)と、の差を規定する。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に等しいと推論される。
【0608】
ph_log2_diff_max_tt_min_qt_inter_sliceは、3進法分割を使用して分割されることができる輝度コーディングブロックの輝度サンプルの最大サイズ(幅または高さ)の底2対数と、PHに関連付けられた0(B)または1(P)であるスライスにおけるCTUの4分木分割に起因する輝度リーフブロックの輝度サンプルの最小サイズ(幅または高さ)と、の差を規定する。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に等しいと推論される。
【0609】
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に等しいと推測される。
【0610】
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に等しいと推測される。
【0611】
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候補の最大数、MaxNumSubblockMergeCandは以下のように導出される。
【0612】
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の範囲内である。
【0613】
1に等しいph_collocated_from_I0_flagは、時間的動きベクトル予測に使用される同一位置に配置されたピクチャが参照ピクチャリスト0から導出されることを規定する。0に等しいph_collocated_from_I0_flagは、時間的動きベクトル予測に使用される同一位置に配置されたピクチャが参照ピクチャリスト1から導出されることを規定する。
【0614】
ph_collocated_ref_idxは、時間的動きベクトル予測に使用される同一位置に配置されたピクチャの参照インデックスを規定する。
ph_collocated_from_l0_flagが1に等しいとき、ph_collocated_ref_idxは参照ピクチャリスト0のエントリを参照し、ph_collocated_ref_idxの値は0からnum_ref_entries[0][PicRplsIdx[0]]-1の範囲内にあるものとする。
ph_collocated_from_l0_flagが0に等しい場合、ph_collocated_ref_idxは参照ピクチャリスト1のエントリを参照し、ph_collocated_ref_idxの値は0からnum_ref_entries[0][PicRplsIdx[1]]-1の範囲内にあるものとする。
存在しない場合、ph_collocated_ref_idxの値は0に等しいと推測される。
【0615】
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)構文構造が構文解析されたことを示す。
【0616】
1に等しいph_fpel_mmvd_enabled_flagは、動きベクトル差を有するマージモードは、PHに関連付けられたスライスの整数サンプル精度を使用することを規定する。0に等しいph_fpel_mmvd_enabled_flagは、動きベクトル差を有するマージモードは、PHに関連付けられたスライスの分数サンプル精度を使用することを規定する。存在しない場合、ph_fpel_mmvd_enabled_flagの値は0であると推測される。
【0617】
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に等しいと推論される。
【0618】
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_enable_flagが0に等しい場合)、ph_disable_dmvr_flagの値は1に等しいと推論される。
【0619】
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に等しいと推論される。
【0620】
ph_qp_deltaは、コーディングユニットレイヤにおけるCuQpDeltaValの値によって修正されるまで、ピクチャにおけるコーディングブロックに使用されるQpYの初期値を規定する。
qp_delta_info_in_ph_flagが1に等しい場合は、ピクチャのすべてのスライスに対するQpY量子化パラメータであるSliceQpYの最初の値は、以下のように導出される。
SliceQpY=26+init_qp_minus26+ph_qp_delta (89)
SliceQpYの値は、-QpBdOffset~63の範囲内である。
【0621】
ph_joint_cbcr_sign_flagは、tu_joint_cbcr_residual_flag[x0][y0]が1に等しい変換ユニットにおいて、両方のクロマ成分の同一位置に配置された残差サンプルは、符号が逆になるかどうかを規定する。1つの変換ユニットに対してtu_joint_cbcr_residual_flag[x0][y0]が1に等しいとき、0に等しいph_joint_cbcr_sign_flagは、Cr(またはCb)成分の各残差サンプルの符号が、同一位置に配置されたCb(またはCr)残差サンプルの符号と同一であることを規定し、1に等しいph_joint_cbcr_sign_flagは、Cr(またはCb)成分の各残差サンプルの符号は、同一位置に配置されたCb(またはCr)の残差サンプルの逆の符号で表されることを規定する。
【0622】
1に等しいph_sao_luma_enabled_flagは、PHに関連付けられたすべてのスライスの中の輝度成分に対してSAOが有効化されることを規定し、0に等しいph_sao_luma_enabled_flagは、輝度成分のSAOがPHに関連付けられた1つ以上またはすべてのスライスに対して無効化される場合もあることを規定する。ph_sao_luma_enabled_flagが存在しない場合、0に等しいと推測される。
【0623】
1に等しいph_sao_chroma_enabled_flagは、PHに関連付けられたすべてのスライスの中のクロマ成分に対してSAOが有効化されることを規定し、0に等しいph_sao_chroma_enabled_flagは、輝度成分のSAOがPHに関連付けられた1つ以上またはすべてのスライスに対して無効化される場合もあることを規定する。ph_sao_chroma_enabled_flagが存在しない場合、0に等しいと推測される。
【0624】
0に等しいph_dep_quant_enabled_flagは、現在のピクチャに対して依存量子化が無効化されることを規定する。1に等しいph_dep_quant_enabled_flagは、現在のピクチャに対して従属量子化が有効化されることを規定する。ph_dep_quant_enabled_flagが存在しない場合、0に等しいと推測される。
【0625】
0に等しいpic_sign_data_hiding_enabled_flagは、現在のピクチャに対し、符号ビットの非表示が無効化されることを規定する。1に等しいpic_sign_data_hiding_enabled_flagは、現在のピクチャに対し、符号ビットの非表示が有効化されることを規定する。pic_sign_data_hiding_enabled_flagが存在しない場合、0に等しいと推測される。
【0626】
1に等しいph_deblocking_filter_override_flagは、PHにデブロッキングパラメータが存在することを規定する。0に等しいph_deblocking_filter_override_flagは、デブロッキングパラメータがPHに存在しないことを規定する。存在しない場合、ph_deblocking_filter_override_flagの値は0に等しいと推測される。
【0627】
1に等しいph_deblocking_filter_disabled_flagは、PHに関連付けられたスライスに対してデブロッキングフィルタの演算を適用しないことを規定する。0に等しいph_deblocking_filter_disabled_flagは、PHに関連付けられたスライスに対してデブロッキングフィルタの演算を適用することを規定する。ph_deblocking_filter_disabled_flagが存在しない場合、pps_deblocking_filter_disabled_flagに等しいと推論される。
【0628】
ph_beta_offset_div2およびph_tc_offset_div2は、PHに関連付けられたスライスの輝度成分に適用されるβおよび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に等しいと推論される。
【0629】
ph_cb_beta_offset_div2およびph_cb_tc_offset_div2は、PHに関連付けられたスライスのCb成分に適用されるβおよび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に等しいと推論される。
【0630】
ph_cr_beta_offset_div2およびph_cr_tc_offset_div2は、PHに関連付けられたスライスのCr コ成分に適用されるβおよび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に等しいと推論される。
【0631】
ph_extension_lengthは、PH拡張データの長さをバイトで規定し、ph_extension_length自体の信号通知に使用されるビットは含まない。ph_extension_lengthの値は、0~256の範囲内である。存在しない場合、ph_extension_lengthの値は0に等しいと推論される。
【0632】
ph_extension_data_byteは任意の値を有することができる。本明細書バージョンに準拠するデコーダは、ph_extension_data_byteの値を無視しなければならない。その値は、本明細書のバージョンで特定された特徴に対するデコーダの適合性に影響を与えない。
【0633】
7.4.8 スライスヘッダ意味論
【0634】
7.4.8.1 一般スライスヘッダ意味論
【0635】
cu_qp_delta_absを含むコーディングユニットの輝度量子化パラメータとその予測との差を規定する変数CuQpDeltaValは、0に設定される。cu_chroma_qp_offset_flagを含むコーディングユニットのQp’cb、Qp’cr、Qp’CbCr量子化パラメータのそれぞれの値を決定するときに使用される値を規定する変数CuQpOffsetcb、CuQpOffsetcr、およびCuQpOffsetCbCrは、すべて0に等しく設定される。
【0636】
1に等しいpicture_header_in_slice_header_flagは、スライスヘッダにPH構文構造が存在することを規定する。0に等しいpicture_header_in_slice_header_flagは、PH構文構造が存在しないことを規定する。
CLVS内のすべてのコーディングされたスライスにおいて、picture_header_in_slice_header_flagの値が同じであるものとすることが、ビットストリーム適合性の要件である。
1つのコーディングされたスライスに対してpicture_header_in_slice_header_flagが1に等しい場合は、PH_NUTであるnal_unit_typeを有するVCL NALユニットがCLVSに存在しないものとすることが、ビットストリーム適合性の要件である。
picture_header_in_slice_header_flagが0に等しい場合、現在のピクチャにおけるすべてのコーディングされたスライスは、picture_header_in_slice_header_flagが0に等しいものとし、現在のPUはPH NALユニットを有するものとする。
【0637】
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ビットである。
【0638】
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が復号された場合、その左側境界全体及び最上の境界全体が1つのピクチャの境界、又は、以前に復号されたCTUの境界を含むものでなければならない。
【0639】
sh_extra_bit[i]は、1または0に等しくてもよい。本明細書バージョンに準拠するデコーダは、sh_extra_bit[i]の値を無視しなければならない。その値は、本明細書のバージョンで特定された特徴に対するデコーダの適合性に影響を与えない。
【0640】
num_tiles_in_slice_minus1+1(存在する場合)は、スライスにおけるタイルの数を規定する。num_tiles_in_slice_minus1の値は、0からNumTilesInPic-1までの範囲内にあるべきである。
現在のスライスにおけるCTUの数を規定する変数NumCtusInCurrSliceと、スライス内のi番目のCTBのピクチャラスタスキャンアドレスを規定しiが0からNumCTUsInCurrSlice-1までの範囲であるリストCtbAddrInCurrSlice[i]とは、以下のように導出される。
【0641】
if(rect_slice_flag){
picLevelSliceIdx=slice_address
for(j=0;j<CurrSubpicIdx;j++)
picLevelSliceIdx+=NumSlicesInSubpic[j]
NumCtusInCurrSlice=NumCtusInSlice[picLevelSliceIdx]
for(i=0;i<NumCtusInCurrSlice;i++)
CtbAddrInCurrSlice[i]=CtbAddrInSlice[picLevelSliceIdx][i] (117)
} else{
NumCtusInCurrSlice=0
for(tileIdx=slice_address;tileIdx<=slice_address+num_tiles_in_slice_minus1;tileIdx++){
tileX=tileIdx%NumTileColumns
tileY=tileIdx/NumTileColumns
for(ctbY=tileRowBd[tileY];ctbY<tileRowBd[tileY+1];ctbY++){
for(ctbX=tileColBd[tileX];ctbX<tileColBd[tileX+1];ctbX++){
CtbAddrInCurrSlice[NumCtusInCurrSlice]=ctbY*PicWidthInCtb+ctbX
NumCtusInCurrSlice++
}
}
}
}
【0642】
変数SubpicLeftBoundaryPos、SubpicTopBoundaryPos、SubpicRightBoundaryPos、およびSubpicBotBoundaryPosは、以下のように導出される。
【0643】
if(subpic_treated_as_pic_flag[CurrSubpicIdx]){
SubpicLeftBoundaryPos=subpic_ctu_top_left_x[CurrSubpicIdx]*CtbSizeY
SubpicRightBoundaryPos=Min(pic_width_max_in_luma_samples-1,
(subpic_ctu_top_left_x[CurrSubpicIdx]+
subpic_width_minus1[CurrSubpicIdx]+1)*CtbSizeY-1)
SubpicTopBoundaryPos=subpic_ctu_top_left_y[CurrSubpicIdx]*CtbSizeY (118)
SubpicBotBoundaryPos=Min(pic_height_max_in_luma_samples-1,
(subpic_ctu_top_left_y[CurrSubpicIdx]+
subpic_height_minus1[CurrSubpicIdx]+1)*CtbSizeY-1)
}
【0644】
slice_typeは、表9に従って、スライスのコーディングするタイプを規定する。
【0645】
【0646】
存在しない場合、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は、次のように導出される。
【0647】
If slice_type equal to 2(I),
MinQtLog2SizeY=MinCbLog2SizeY+ph_log2_diff_min_qt_min_cb_intra_slice_luma (119)
MinQtLog2SizeC=MinCbLog2SizeY+ph_log2_diff_min_qt_min_cb_intra_slice_chroma (120)
MaxBtSizeY=1<<(MinQtLog2SizeY+ph_log2_diff_max_bt_min_qt_intra_slice_luma) (121)
MaxBtSizeC=1<<(MinQtLog2SizeC+ph_log2_diff_max_bt_min_qt_intra_slice_chroma) (122)
MaxTtSizeY=1<<(MinQtLog2SizeY+ph_log2_diff_max_tt_min_qt_intra_slice_luma) (123)
MaxTtSizeC=1<<(MinQtLog2SizeC+ph_log2_diff_max_tt_min_qt_intra_slice_chroma) (124)
MaxMttDepthY=ph_max_mtt_hierarchy_depth_intra_slice_luma (125)
MaxMttDepthC=ph_max_mtt_hierarchy_depth_intra_slice_chroma (126)
CuQpDeltaSubdiv=ph_cu_qp_delta_subdiv_intra_slice (127)
CuChromaQpOffsetSubdiv=ph_cu_chroma_qp_offset_subdiv_intra_slice (128)
Otherwise(slice_type equal to0(B)or1(P)),
MinQtLog2SizeY=MinCbLog2SizeY+ph_log2_diff_min_qt_min_cb_inter_slice (129)
MinQtLog2SizeC=MinCbLog2SizeY+ph_log2_diff_min_qt_min_cb_inter_slice (130)
MaxBtSizeY=1<<(MinQtLog2SizeY+ph_log2_diff_max_bt_min_qt_inter_slice) (131)
MaxBtSizeC=1<<(MinQtLog2SizeC+ph_log2_diff_max_bt_min_qt_inter_slice) (132)
MaxTtSizeY=1<<(MinQtLog2SizeY+ph_log2_diff_max_tt_min_qt_inter_slice) (133)
MaxTtSizeC=1<<(MinQtLog2SizeC+ph_log2_diff_max_tt_min_qt_inter_slice) (134)
MaxMttDepthY=ph_max_mtt_hierarchy_depth_inter_slice (135)
MaxMttDepthC=ph_max_mtt_hierarchy_depth_inter_slice (136)
CuQpDeltaSubdiv=ph_cu_qp_delta_subdiv_inter_slice (137)
CuChromaQpOffsetSubdiv=ph_cu_chroma_qp_offset_subdiv_inter_slice (138)
MinQtSizeY=1<<MinQtLog2SizeY (139)
MinQtSizeC=1<<MinQtLog2SizeC (140)
MinBtSizeY=1<<MinCbLog2SizeY (141)
MinTtSizeY=1<<MinCbLog2SizeY (142)
【0648】
1に等しいslice_alf_enabled_flagは、適応ループフィルタが有効化され、かつ1つのスライスにおけるY、Cb、またはCr色成分に適用され得ることを規定する。0に等しいslice_alf_enabled_flagは、スライス内のすべての色成分が無効化されることを規定する。存在しない場合、slice_alf_enabled_flagの値はph_alf_enabled_flagと推測される。
【0649】
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の値に等しくなると推論される。
【0650】
slice_alf_aps_id_luma[i]は、スライスの輝度成分が参照するi番目のALF APSのadaptation_parameter_set_idを規定する。aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがslice_alf_aps_id_luma[i]である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]の値に等しいと推論される。
aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがslice_alf_aps_id_luma[i]に等しいAPS NALユニットのalf_luma_filter_signal_flagの値は1に等しいものとする。
【0651】
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と色成分に適用されることを示す。slice_alf_chroma_idcが存在しない場合、それはph_alf_chroma_idcに等しいと推論される。
【0652】
slice_alf_aps_id_chromaは、スライスのクロマ成分が参照するALF APSのadaptation_parameter_set_idを規定する。aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがslice_alf_aps_id_chromaである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の値に等しいと推論される。
aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがslice_alf_aps_id_chroma[i]に等しいAPS NALユニットのalf_chroma_filter_signal_flagの値は、1に等しいものとする。
【0653】
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に等しいと推論される。
【0654】
slice_cc_alf_cb_aps_idは、スライスのCb色成分が参照するadaptation_parameter_set_idを規定する。
aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがslice_cc_alf_cb_aps_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の値に等しいと推論される。
aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがslice_cc_alf_cb_aps_idに等しいAPS NALユニットのalf_cc_cb_filter_signal_flagの値は、1に等しいものとする。
【0655】
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に等しいと推論される。
【0656】
slice_cc_alf_cr_aps_idは、スライスのCr色成分が参照するadaptation_parameter_set_idを規定する。aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがslice_cc_alf_cr_aps_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の値に等しいと推論される。
aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがslice_cc_alf_cr_aps_idに等しいAPS NALユニットのalf_cc_cr_filter_signal_flagの値は、1に等しいものとする。
【0657】
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つのピクチャの異なる色平面の復号処理間には依存性がない。
【0658】
1に等しいnum_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の値は0に等しいと推測される。
【0659】
num_ref_idx_active_minus1[i]は、式143に規定するように、変数NumRefIdxActive[i]の導出に使用される。num_ref_idx_active_minus1[i]の値は、0から14までの範囲内にあるべきである。
iが0または1に等しい場合、現在のスライスが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]は、以下のように導出される。
【0660】
for(i=0;i<2;i++){
if(slice_type==B||(slice_type==P&&i==0)){
if(num_ref_idx_active_override_flag)
NumRefIdxActive[i]=num_ref_idx_active_minus1[i]+1 (143)
else{
if(num_ref_entries[i][RplsIdx[i]]>=num_ref_idx_default_active_minus1[i]+1)
NumRefIdxActive[i]=num_ref_idx_default_active_minus1[i]+1
else
NumRefIdxActive[i]=num_ref_entries[i][RplsIdx[i]]
}
}else/*slice_type==I||(slice_type==P&&i==1)*/
NumRefIdxActive[i]=0
}
【0661】
NumRefIdxActive[i]-1の値は、スライスを復号するために使用され得る参照ピクチャリストiの最大参照インデックスを規定する。NumRefIdxActive[i]の値が0に等しい場合、参照ピクチャリストiの参照インデックスを使用せずにスライスを復号することができる。
現在のスライスがPスライスであるとき、NumRefIdxActive[0]の値は0より大きいものとする。
現在のスライスがBスライスである場合、NumRefIdxActive[0]およびNumRefIdxActive[1]の両方が0よりも大きいものとする。
【0662】
cabac_init_flagコンテキスト変数の初期化処理で使用される初期化テーブルを決定する方法を規定する。cabac_init_flagが存在しない場合、0に等しいと推測される。
【0663】
1に等しいslice_collocated_from_I0_flagは、時間的動きベクトル予測に使用される同一位置に配置されたピクチャが参照ピクチャリスト0から導出されることを規定する。0に等しいslice_collocated_from_I0_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に等しいと推論される)。
【0664】
slice_collocated_ref_idx、時間的動きベクトル予測に使用される同一位置に配置されたピクチャの参照インデックスを規定する。
slice_typeがPであるか、またはslice_typeがBに等しく、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? j0:j1][slice_collocated_ref_idx]は0に等しいものとすることが、ビットストリーム適合性の要件である。
【0665】
slice_qp_deltaは、スライスにおけるコーディングブロックに使用されるQpYの最初の値を、コーディングユニットレイヤにおけるCuQpDeltaValの値で修正されるまで規定する。
qp_delta_info_in_ph_flagが0に等しい場合、スライスのQpY量子化パラメータSliceQpYの初期値は、以下のように導出される。
SliceQpY=26+init_qp_minus26+slice_qp_delta (144)
SliceQpYの値は、-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の値以下であるものとする。
-0~NumRefIdxActive[0]-1の範囲内にあるiの各参照ピクチャインデックス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の値以下であるものとする。
-0~NumRefIdxActive[1]-1の範囲内にあるiの各参照ピクチャインデックスRefPicList[1][i]について、参照ピクチャインデックスに適用される輝度重み、Cb重み、およびCr重みは、それぞれ、LumaWeightL1[i]、ChromaWeightL1[0][i]、およびChromaWeightL1[1][i]に適用される。
【0666】
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の範囲内となる。
【0667】
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の範囲内となる。
【0668】
slice_joint_cbcr_qp_offset Qp’CbCrの値を決定するときに、pps_joint_cbcr_qp_offsetの値に加える差分を規定する。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以下とする。
【0669】
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に等しいと推測される。
【0670】
1に等しいslice_sao_luma_flagは、現在のスライスにおける輝度成分に対してSAOが有効化されることを規定する。0に等しいslice_sao_luma_flagは、現在のスライスにおける輝度成分に対してSAOが無効化されることを規定する。slice_sao_luma_flagが存在しない場合、ph_sao_luma_enabled_flagに等しいと推論される。
【0671】
1に等しいslice_sao_chroma_flagは、現在のスライスにおけるクロマ成分に対してSAOが有効化されることを規定する。0に等しいslice_sao_chroma_flagは、現在のスライスにおけるクロマ成分に対してSAOが無効化されることを規定する。slice_sao_chroma_flagが存在しない場合、ph_sao_chroma_enabled_flagに等しいと推論される。
【0672】
1に等しいslice_deblocking_filter_override_flagは、スライスヘッダにデブロッキングパラメータが存在することを規定する。0に等しいslice_deblocking_filter_override_flagは、デブロッキングパラメータがスライスヘッダに存在しないことを規定する。存在しない場合、slice_deblocking_filter_override_flagの値はph_deblocking_filter_override_flagに等しいと推論される。
【0673】
1に等しいslice_deblocking_filter_disabled_flagは、現在のスライスに対してデブロッキングフィルタの演算が適用されないことを規定する。0に等しいslice_deblocking_filter_disabled_flagは、現在のスライスに対してデブロッキングフィルタの演算が適用されることを規定する。slice_deblocking_filter_disabled_flagが存在しない場合、ph_deblocking_filter_disabled_flagに等しいと推論される。
【0674】
slice_beta_offset_div2およびslice_tc_offset_div2は、現在のスライスの輝度成分に適用されるβおよびtCのデブロッキングパラメータオフセット(2で除算)を規定する。slice_cr_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に等しいと推論される。
【0675】
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に等しいと推論される。
【0676】
slice_cb_beta_offset_div2およびslice_cb_tc_offset_div2は、現在のスライスのCr成分に適用されるβおよびtCのデブロッキングパラメータオフセット(2で除算)を規定する。slice_cr_beta_offset_div2およびslice_cr_tc_offset_div2の値は、いずれも-12~12の範囲内にあるものとする。存在しない場合、slice_cr_beta_offset_div2およびslice_cr_tc_offset_div2の値は、それぞれph_cr_beta_offset_div2およびph_cr_tc_offset_div2に等しいと推論される。
【0677】
1に等しいslice_ts_residual_coding_disabled_flagは、residual_coding()構文構造を使用して、現在のスライスのための変換スキップブロックの残差サンプルを構文解析することを規定する。0に等しいslice_ts_residual_coding_disabled_flagは、residual_ts_coding()構文構造を使用して、現在のスライスのための変換スキップブロックの残差サンプルを構文解析することを規定する。slice_ts_residual_coding_disabled_flaggが存在しない場合、これは0に等しいと推論される。
【0678】
1に等しいslice_lmcs_enabled_flagは、現在のスライスに対して、クロマスケーリングを伴う輝度マップピングを有効にすることを規定する。0に等しいslice_lmcs_enabled_flagは、現在のスライスに対して、クロマスケーリングを伴う輝度マッピングが有効でないことを規定する。slice_lmcs_enabled_flagが存在しない場合、0に等しいと推論される。
【0679】
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は、以下のように導出される。
【0680】
NumEntryPoints=0
for(i=1;i<NumCtusInCurrSlice;i++){
ctbAddrX=CtbAddrInCurrSlice[i]%PicWidthInCtbsY
ctbAddrY=CtbAddrInCurrSlice[i]/PicWidthInCtbsY (145)
prevCtbAddrX=CtbAddrInCurrSlice[i-1]%PicWidthInCtbsY
prevCtbAddrY=CtbAddrInCurrSlice[i-1]/PicWidthInCtbsY
if(CtbToTileRowBd[ctbAddrY]!=CtbToTileRowBd[prevCtbAddrY]||
CtbToTileColBd[ctbAddrX]!=CtbToTileColBd[prevCtbAddrX]||
(ctbAddrY!=prevCtbAddrY&&sps_entry_point_offsets_present_flag))
NumEntryPoints++
}
【0681】
offset_len_minus1+1は、entry_point_offset_minus1[i]構文要素の長さをビット単位で規定する。offset_len_minus1の値は、0~31の範囲内にあるものとする。
【0682】
entry_point_offset_minus1[i]+1は、i番目のエントリポイントのオフセットをバイトで規定し、offset_len_minus1プラス1ビットで表現される。スライスヘッダの後に続くスライスデータは、NumEntryPoints+1個のサブセットで構成され、サブセットインデックス値は0からNumEntryPointsまでの範囲内にある。スライスデータの第1バイトをバイト0とする。存在する場合、コーディングされたスライスNALユニットのスライスデータ部分に現れるエミュレーション防止バイトは、サブセット特定のために、スライスデータの一部としてカウントされる。サブセット0は、コーディングされたスライスデータ、サブセットkのバイト0からentry_point_offset_minus1[0]までで構成され、1からNumEntryPoints-1の範囲内にあるkは、コーディングされたスライスデータのバイト、firstByte[k]からlastByte[k]までで構成され、firstByte[k]とlastByte[k]は次のように定義する。
【0683】
【0684】
最後のサブセット(サブセットインデックスが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が0からNumEntryPointsまでの範囲内にある各サブセットは、1つのタイル内のCTU行におけるすべてのCTUのコーディングされたビットから構成されるものとし、サブセットの数(すなわち、NumEntryPoints+1の値)は、スライスにおけるタイル固有のCTU行の総数に等しいものとする。
【0685】
slice_header_extension_lengthは、スライスヘッダの拡張データの長さをバイトで規定する。slice_header_extension_length自体の信号通知に使用されるビットは含まない。slice_header_extension_lengthの値は、0から256までの範囲内にあるべきである。存在しない場合、slice_header_extension_lengthの値は0に等しいと推測される。
【0686】
slice_header_extension_data_byte[i]は、任意の値を有していてもよい。本明細書バージョンに準拠するデコーダは、すべてのslice_header_extension_data_byte[i]構文要素の値を無視しなければならない。その値は、本明細書のバージョンで特定された特徴に対するデコーダの適合性に影響を与えない。
【0687】
開示される技術的解決策によって対処する例示的な技術的問題
【0688】
現在のHLSの設計には、いくつかの潜在的な問題があり、それらについて以下に説明する。
【0689】
(1) SPS、ピクチャヘッダ、およびスライスヘッダにおける時間的予測フラグの制御は、Pスライスおよび/またはBスライスの問題を引き起こす。
a) 時間的予測フラグのピクチャヘッダおよびスライスレベル制御は、Pスライスのために、初期化されていない同一位置に配置されたピクチャおよび/または同一位置に配置された参照インデックスをもたらすことができる。
b) 参照ピクチャリスト1におけるエントリを参照するSlice_collocated_ref_idxは、Pスライスのために使用してもよい。
c) Pスライスの場合、slice_collocated_ref_idxの値は、参照ピクチャリスト0における1つのエントリがoからNumRefIdxActive[0]-1の範囲を超えてもよいことを参照する。
d) ピクチャレベルおよびスライスレベル時間的予測フラグは、同一位置に配置されたピクチャがL0からのものであるかどうかまたはL1からのものであるか、且つどの参照ピクチャが参照しているかどうかに関するものであるが、時間的予測が許可されるか等の高レベル制御が行われておらず、十分に明瞭ではない場合がある。
【0690】
(2) 関連する構文要素の相互作用を考慮してより正確な解釈をするために、サブピクチャ関連構文要素の意味論を修正する必要がある場合がある。
a) sps_independent_subpics_flagは、1つのサブピクチャのみが存在する場合、0に等しくてもよい。
b) サブピクチャ内に1つのスライスしかない場合、slice_width_in_tiles_minus1の値は、推論ではなく計算する必要がある。
c) ピクチャ内に1つのスライスおよび/または1つのタイルしかない場合、single_slice_per_subpic_flagは0に等しくてもよい。
d) no_pic_partition_flagが1に等しい場合など、存在しない場合、single_slice_per_subpic_flagは0に等しいと推論される。sps_num_subpics_minus1+1の値が1よりも大きい場合、no_pic_partition_flagの値が1でないものとすることが、ビットストリーム適合性の要件である。そのため、1つのピクチャには1つのサブピクチャしかない。そして、サブピクチャには1つのスライスしかないので、single_slice_per_subpic_flagは1に等しいべきである。
【0691】
(3) サブピクチャサブビットストリーム抽出処理において、構文要素の一部が正しく設定されていない場合がある。
a) サブビットストリーム抽出処理から抽出されたサブピクチャに対するsps_independent_subpics_flag、subpic_treated_as_pic_flag、loop_filter_across_subpic_enabled_flag、no_pic_partition_flagなどの構文要素は書かれておらず、好ましくない場合もある。
b) サブピクチャサブビットストリーム抽出処理は、サブピクチャIDに依存し、サブピクチャIDはピクチャごとに変更されてもよい。その結果、異なるピクチャから異なるサブピクチャインデックスを抽出することになり、望ましくない場合がある。
c) サブピクチャサブビットストリーム抽出処理における出力バイストリームのsps_num_subpics_minus1、pps_num_subpics_minus1に1を書き込むことにより、2つのサブピクチャを一度に抽出するべきであることを示し、望ましくない場合がある。
【0692】
(4) 参照ピクチャリストにおける構文要素は、何ら使用されずにIDRピクチャに存在してもよい。
【0693】
(5) この分割情報は、予測ツリーの輝度およびクロマについて同一であると言われるが、真ではない。
【0694】
(6) コーディングツールの構文要素は、対応する一般制約フラグによって条件付けられたり制約されたりせず、また、いくつかの一般制約フラグの値は、関連する制約によって条件付けられたりせず、いくつかの競合を引き起こす可能性がある。
a) res_change_in_clvs_allowed_flagは、一般的な制約フラグno_res_change_in_clvs_constraint_flagの値によって制約されない。
b) window_explicit_signalling_flagは、no_res_change_in_clvs_constraint_flagによって制約されない。
c) window_explicit_signalling_flagは、res_change_in_clvs_allowed_flagによって制約されない。
d) sps_num_subpics_minus1の値は、one_subpic_per_pic_constraint_flagによって制約されない。
e) subpic_treated_as_pic_flagは、one_subpic_per_pic_constraint_flagおよび/またはsps_num_subpics_minus1および/またはpps_num_subpics_minus1に制約されない。
f) loop_filter_across_subpic_enabled_flagは、one_subpic_per_pic_constraint_flagおよび/またはsps_num_subpics_minus1および/またはpps_num_subpics_minus1に制約されることはない。
g) one_subpic_per_pic_constraint_flagは、one_slice_per_pic_constraint_flagによって制約されることはない。
h) no_bdpcm_constraint_flagは、no_transform_skip_constraint_flagによって制約されることはない。
i) num_slices_in_pic_minus1は、one_slice_per_pic_constraint_flagによって制約されることはない。
j) num_tiles_in_slice_minus1は、one_slice_per_pic_constraint_flagによって制約されることはない。
【0695】
例示的な技術および実施形態
【0696】
【0697】
時間的予測関連HLS
【0698】
1. TMVPの2つのレベル制御を利用することができ、一方はピクチャレベルにあり、他方はスライス/タイル/サブピクチャ/ブリックレベルにある。
a)一例において、このフラグを参照する少なくとも1つのインターコーディングされたスライスが存在するかどうかを示す第1の構文要素は、TMVPを有効化し、ピクチャレベル(例えば、ph_temporal_mvp_allowed_flagによって表される)で信号通知してもよい。
i. 一例において、それは、ピクチャヘッダまたはPPSにおいて信号通知されてもよい。
ii. 一例において、SPSにおいてTMVPが有効化されること、および/または現在のピクチャが少なくとも1つのインターコーディングされたスライスを含むこと、および/またはRPLが現在のピクチャヘッダに存在すること、等の条件付きで信号通知されてもよい。
b) 一例において、現在のスライスがTMVPを有効化するかどうかを示す第2の構文要素は、第1の構文要素に依存し得るスライスレベル(例えば、sh_temporal_mvp_allowed_flagと表される)で信号通知されてもよい。
i. 一例において、sh_temporal_mvp_allowed_flagは、ph_temporal_mvp_allowed_flagが1に等しい場合にのみ信号通知されてもよい。そうでない場合、0に等しいと推論される。
ii. 一例において、sh_temporal_mvp_allowed_flagは、ph_temporal_mvp_allowed_flagが0に等しい場合にのみ信号通知されてもよい。そうでない場合、1に等しいと推論される。
c)一例において、現在のスライスがTMVPを有効化するかどうかを示す第2の構文要素は、スライスレベルで信号通知されてもよく(例えば、sh_temporal_mvp_allowed_flagで示される)、これは、現在のスライスヘッダにRPLが存在すること、および/またはSPSでTMVPが有効化されていること、および/または現在のスライスがインターコーディングされたスライスであること、に依存し得るものである。
d)一例において、TMVP情報がピクチャヘッダまたはスライスヘッダにおいて信号通知されるかどうかを示すために、第3の構文要素(例えば、tmvp_info_in_ph_flag)が信号通知される。
i. TMVP情報は、TMVPを有効化されるかどうかの情報を含んでもよい。
ii. TMVP情報は、同一位置に配置された参照ピクチャの情報を含んでもよい。
iii. 一例において、tmvp_info_in_ph_flagは、TMVPがシーケンスレベルで有効化されている場合にのみ信号通知される。(例えば、sps_temporal_mvp_enabled_flagは1に等しい)。
e) 一例において、第2の構文要素が存在しない場合、この第2の構文要素はデフォルト値(例えば、第1の構文要素の値)に等しいと推論される。例えば、sh_temporal_mvp_allowed_flagは、存在しない場合、ph_temporal_mvp_allowed_flagに等しいと推論される。
【0699】
2. PHからSHへの同一位置に配置されたピクチャ情報(例えば、同一位置に配置されたピクチャはリスト0からのものであり、同一位置に配置されたピクチャの参照ピクチャインデックス)を継承するかどうかおよび/またはどのように継承するかは、スライスタイプおよび参照ピクチャリスト情報がPH構文構造に存在するかどうか(例えば、rpl_info_in_ph_flag=1)に少なくとも依存する。
a)一例において、slice_typeがPに等しい場合、rpl_info_in_ph_flagが1に等しい(および/またはph_temporal_mvp_enabled_flagが1に等しい)場合、slice_collocated_from_l0_flagは、ph_collocated_from_l0_flagの値に関わらず1に等しく設定される。
i. あるいは、slice_typeがPに等しい場合、slice_collocated_from_l0_flagは、他の条件に関わらず、1に等しいと推論してもよい。
b)別の例では、slice_typeがBに等しく、slice_collocated_from_l0_flagが1に等しい場合は、slice_collocated_ref_idxの値は、参照ピクチャリスト0のエントリを参照するslice_collocated_ref_idxは、0からNumRefIdxActive[0]-1の範囲内にあるものとする。
c)一例において、slice_typeがPに等しい場合、TMVPが有効化されているとき、slice_collocated_from_l0_flagは1に等しいと推論されてもよい。
d)一例において、slice_typeがPに等しく、TMVPが有効化されており、かつslice_collocated_ref_idxが0~NumRefIdxActive[0]-1の範囲内にある場合、以下である。
e)一例において、slice_typeがPに等しく、TMVPが有効化されている場合、Pスライスに対するRprConstraintsActive[0][<slice_collocated_ref_idx]は0に等しいことが要求される場合もある。
f)一例において、以下の例示的な修正を導入することができる。
slice_collocated_ref_idx、時間的動きベクトル予測に使用される同一位置に配置されたピクチャの参照インデックスを規定する。
【0700】
【0701】
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に等しいものとすることが、ビットストリーム適合性の要件である。
g)一例において、ph_collocated_from_l0_flagが0に等しい場合、ピクチャはPスライスを含まないことが要求されてもよい。
i. 一例において、以下の例示的な修正を導入することができる。
slice_typeは、表9に従って、スライスのコーディングするタイプを規定する。
【0702】
【0703】
存在しない場合、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に等しいものとする。
【0704】
【0705】
ii. あるいは、スライスタイプを信号通知するかどうかは、同一位置に配置されたピクチャがリスト0からのものであるかどうかに依存してもよい。
1. 一例において、以下の条件のすべてが真である場合、現在のピクチャヘッダを参照するスライスタイプの信号通知はスキップされてもよい。
-rpl_info_in_ph_flagは1に等しい。
-ph_temporal_mvp_enabled_flagは1に等しい。
-ph_intra_slice_allowed_flagは0に等しい。
-ph_collocated_from_l0_flagは0に等しい。
あるいは、さらに、スライスタイプをBスライスと推論してもよい。
h)一例において、ph_temporal_mvp_enabled_flagの値が1に等しく、rpl_info_in_ph_flagが1に等しい場合は、Pスライスのslice_collocated_from_l0_flagの値は常に1に等しいと推論してもよい。以下の例示的な修正形態を導入することができる。
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に等しいと推論される。]]
【0706】
【0707】
i)一例において、slice_typeがPに等しく、slice_collocated_from_l0_flagが0に等しい場合、slice_collocated_ref_idxは、参照ピクチャリスト1の非アクティブエントリを参照するといえるとともに、参照ピクチャリスト1のその非アクティブエントリによって参照される参照ピクチャは、参照ピクチャリスト0のアクティブなエントリによって参照されてもよいものとすることが要求される。以下の例示的な修正形態を導入することができる。
【0708】
【0709】
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?j0:j1][slice_collocated_ref_idx]は0に等しいものとすることが、ビットストリーム適合性の要件である。
【0710】
j)あるいは、同じピクチャヘッダを参照するBスライスとPスライスとは、異なる同一位置に配置されたピクチャを使用してもよい。
i.一例において、RPLがピクチャヘッダにおいて信号通知されても、同一位置に配置されたピクチャの参照ピクチャインデックスは、スライスヘッダにおいてさらに信号通知されてもよい。
1.一例において、現在のスライスがPスライスに等しい場合、RPLがピクチャヘッダにおいて信号通知され、時間的動きベクトル予測(例えば、ph_temporal_mvp_enabled_flagがtrueである)が有効化され、ph_collocated_from_l0_flagが0に等しい場合、同一位置に配置されたピクチャの参照ピクチャインデックスがさらに信号通知されてもよい。
a)あるいは、参照ピクチャリスト0をさらに指している。
ii.一例において、2つの同一位置に配置された参照ピクチャインデックスを信号通知または導出することができ、1つはBスライス用であり、他方はPスライス用であり、同じピクチャヘッダを参照する。
1. 一例において、2つのインデックスは、ph_collocated_from_l0_flagが0に等しい場合にのみ信号通知されてもよい。
k)一例において、同じピクチャヘッダを参照するBスライスおよびPスライスの両方が存在するかどうかの指示を信号通知することができる。
i. あるいは、同じピクチャヘッダを参照するスライスのタイプの指示をピクチャヘッダに信号通知してもよい。
ii. あるいは、同じピクチャヘッダを参照するBスライス(Pスライスを除く)のみが存在するかどうかの指示を信号通知してもよい。
iii. あるいは、同じピクチャヘッダを参照するPスライス(Bスライスを除く)のみが存在するかどうかの指示を信号通知してもよい。
iv. あるいは、同じピクチャヘッダを参照するBスライスおよびIスライスのみが存在するかどうかの指示を信号通知してもよい。
v. あるいは、同じピクチャヘッダを参照するPスライスおよびIスライスのみが存在するかどうかの指示を信号通知してもよい。
vi. あるいは、同じピクチャヘッダを参照するスライスのタイプの指示は、ピクチャヘッダにおいてRPLが信号通知される場合にのみ、ピクチャヘッダに信号通知されてもよい。
vii. あるいは、RPLは、同じピクチャヘッダを参照するスライスのタイプの指示がピクチャヘッダにおいて信号通知される場合にのみ、ピクチャヘッダにおいて信号通知される。
l)あるいは、slice_typeがPに等しく、slice_collocated_from_l0_flagが0に等しい場合、slice_collocated_ref_idxは使用前に修正されてもよく、0からNumRefIdxActive[0]-1の範囲内にあるインデックスにマッピングされている。
i. 一例において、slice_typeがPであり、slice_collocated_from_l0_flagが0に等しい場合、slice_collocated_ref_idxは参照ピクチャリスト0内のエントリを指し、slice_collocated_ref_idxは(slice_collocated_ref_idx>(NumRefIdxActive[0]-1)?default_col_ref_idx:slice_collocated_ref_idx)に設定され、変数default_col_ref_idxは0からNumRefIdxActive[0]-1の範囲内である。
1.一例において、変数default_col_ref_idxは、0に設定される。
2.一例において、この変数は、信号通知されてもよい。
m)適合ビットストリームにおいて、1つのピクチャヘッダに関連付けられた2つのスライスは、Pスライスであり、他方はBスライスであることは許可されなくてもよい。
n)適合ビットストリームにおいて、RPLが信号通知される1つのピクチャヘッダに関連付けられた2つのスライスは、Pスライスであり、他方はBスライスであることは許可されなくてもよい。
o)適合ビットストリームにおいて、RPLが2つの参照ピクチャリストで信号通知される1つのピクチャヘッダに関連付けられたスライスではなく、このスライスがPスライスであることが許可されなくてもよい。
【0711】
サブピクチャ関連HLS
【0712】
3.CLVSにおける各ピクチャのサブピクチャの数(例えば、sps_num_subpics_minus1および/またはpps_num_subpics_minus1)は、one_subpic_per_pic_constraint_flagのような一般的な制約フラグによって条件づけられてもよい。
a)一例において、one_subpic_per_pic_constraint_flag等の一般的な制約フラグが1に等しい場合は、sps_num_subpics_minus1および/またはpps_num_subpics_minus1の値は、0に等しいことが要求されてもよい。
【0713】
【0714】
4. 「イントラ予測なし、インター予測なし、およびCLVSにおける任意のサブピクチャの境界にわたって行われるインループフィルタリング動作なし」を規定する構文要素(例えば、sps_independent_subpics_flag)が信号通知されるかどうかは、CLVSにおける各ピクチャのサブピクチャの数に依存してもよい(例えば、sps_num_subpics_minus1)。
a)一例において、CLVSにおける各ピクチャ内に1つのサブピクチャしかない場合、構文要素sps_independent_subpics_flagは、信号通知されず、1に等しいと推論されてもよい。
【0715】
【0716】
5.subpic_treated_as_pic_flagの値は、ピクチャ内に1つのサブピクチャしか存在しないかどうかに依存してもよい。
a)一例において、one_subpic_per_pic_constraint_flagが1に等しい場合は、subpic_treated_as_pic_flagの値は、1に等しいことが要求されても、あるいは、1に等しいと推論されてもよい。
b)一例において、sps_num_subpics_minus1が0に等しい場合、subpic_treated_as_pic_flagの値は1に等しいことが要求されても、または1に等しいと推論されてもよい。
c)一例において、pps_num_subpics_minus1が0に等しい場合、subpic_treated_as_pic_flagの値は1に等しいことが要求されてもよい。
【0717】
6.loop_filter_across_subpic_enabled_flagの値は、ピクチャ内に1つのサブピクチャしか存在しないかどうかに依存してもよい。
a)一例において、one_subpic_per_pic_constraint_flagが1に等しい場合は、loop_filter_across_subpic_enabled_flagの値は0に等しいことが要求されても、または、0に等しいと推論されてもよい。
b)一例において、sps_num_subpics_minus1が0に等しい場合、loop_filter_across_subpic_enabled_flagの値は0に等しいことが要求されても、または0に等しいと推論されてもよい。
c)一例において、pps_num_subpics_minus1が0に等しい場合、loop_filter_across_subpic_enabled_flagの値は0に等しいことが要求されてもよい。
【0718】
7.i番目の矩形スライスのタイル列単位の幅(例えば、slice_width_in_tiles_minus1)を規定するかどうかは、single_slice_per_subpic_flagに依存してもよい。
a)一例において、slice_width_in_tiles_minus1が存在しないが、single_slice_per_subpic_flagが1に等しい場合は、slice_width_in_tiles_minus1の値は設定されなくてもよい。
【0719】
【0720】
8.各サブピクチャが唯一の矩形スライス(例えば、single_slice_per_subpic_flag)で構成されるかどうかは、one_slice_per_pic_constraint_flagのような一般的な制約フラグによって条件を付けられてもよい。
a)別の例において、構文要素single_slice_per_subpic_flagが存在しない場合、single_slice_per_subpic_flagの値は1に等しいと推論されてもよい。
b)別の例において、構文要素single_slice_per_subpic_flagが存在しない場合、single_slice_per_subpic_flagの値は、現在のピクチャが分割されているかどうか(例えば、no_pic_partition_flag)に従って推論されてもよい。
c)一例において、以下の例示的な修正を導入することができる。
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に等しいと推論される。]]
【0721】
【0722】
【0723】
【0724】
【0725】
9.一例において、サブピクチャサブビットストリーム抽出中の出力サブビットストリームの導出に関して、CLVSにおける異なるピクチャにまたがる抽出されたサブピクチャは、同じサブピクチャインデックスを有することが要求されてもよい。
a)例えば、抽出されたサブピクチャの対象となるサブピクチャIDは、CLVSにおける異なるピクチャ間で同じサブピクチャインデックスを参照することができることが要求されてもよい。
b)例えば、subpic_id_mapping_explicitly_signalled_flagが1に等しい場合、そして、サブピクチャサブビットストリーム抽出が処理されるとき、サブピクチャIDマッピングがPPSに信号通知されないことが要求されてもよい(例えば、subpic_id_mapping_in_pps_flagが0に等しい)。
i.一例において、subpic_id_mapping_explicitly_signalled_flagが1に等しい場合、そして、サブピクチャサブビットストリーム抽出が処理されるとき、サブピクチャIDマッピングがSPSに信号通知されることが要求されてもよい(例えば、subpic_id_mapping_in_sps_flagが1に等しい)。
c)例えば、サブピクチャサブビットストリーム抽出処理においてどのサブピクチャを抽出するかは、サブピクチャインデックスに依存してもよい。
d)例えば、サブピクチャサブビットストリーム抽出処理においてどの構文要素を書き換えおよび/または削除するかは、サブピクチャインデックスに依存してもよい。
e)一例において、以下の例示的な修正を導入することができる。
【0726】
C.7 サブピクチャサブビットストリーム抽出処理
【0727】
【0728】
この処理の出力は、サブビットストリームoutBitstreamである。
入力ビットストリームに対するビットストリーム適合性の要件は、以下の条件のすべてを満たす任意の出力サブビットストリームが適合ビットストリームであるものとする。
【0729】
【0730】
出力サブビットストリームoutBitstreamは、以下のように導出される。
-添付C.6で規定されたブビットストリーム抽出処理は、inBitstream、targetolsIdx、およびtIdTargetを入力として呼び出され、この処理の出力はoutBitstreamに割り当てられる。
-サブビットストリームoutBitstreamに置換パラメータセットを提供するために、本明細書で規定されていない外部手段が利用可能である場合、すべてのパラメータセットを置換パラメータセットに置き換える。
-そうでない場合、サブピクチャレベル情報SEIメッセージがinBitstreamに存在するときは、以下が適用される。
【0731】
【0732】
【0733】
【0734】
【0735】
-outBitstreamが、outBitstreamに適用可能な、nesting_ols_flagが1でnesting_subpic_flagが1に等しいスケーラブルネストSEIメッセージを含むSEI NALユニットを含むときは、payloadTypeが1に等しい(ピクチャタイミング)適切な非スケーラブルネストSEIメッセージ、または130(復号ユニット情報)をスケーラブルネストSEIメッセージから抽出し、抽出されたSEIメッセージをoutBitstream内に配置する。
【0736】
10.一例において、サブピクチャサブビットストリーム抽出中の出力サブビットストリームの導出に関して、抽出されたサブビットストリームは、出力ビットストリームにおける単一のサブピクチャとして扱われてもよい。
a)一例において、構文要素sps_independent_subpics_flagは、抽出されたサブピクチャを有する出力サブビットストリームを参照する構文構造の場合、1に等しくなるように書き換えられてもよい。
b)一例において、すべての出力レイヤで抽出されたサブピクチャに参照される構文要素subpic_treated_as_pic_flagおよび/またはloop_filter_across_subpic_enabled_flagは、出力サブビットストリームの構文構造から信号通知されなくてもよい(例えば、削除されてもよい)。
i.一例において、subpic_treated_as_pic_flagという構文要素は、抽出されたサブピクチャを有する出力サブビットストリームに参照される構文構造の場合、1に等しいと推論してもよい。
ii.一例において、構文要素loop_filter_across_subpic_enabled_flagは、抽出されたサブピクチャを有する出力サブビットストリームに参照される構文構造の場合、0に等しいと推論してもよい。
c)一例において、全ての参照されたSPS NALユニットにおけるsps_num_subpics_minus1、および抽出されたサブピクチャを有する、全ての参照されたPPS NALユニットにおけるpps_num_subpics_minus1の値は、0に等しくなるように書き換えられてもよい。
d)一例において、構文要素no_pic_partition_flagは、抽出されたサブピクチャを有する出力サブビットストリームと呼ばれる構文構造に対して書き換えられてもよい。
i.例えば、構文要素no_pic_partition_flagを書き換えるかどうかは、抽出されたサブピクチャを含む出力ビットストリームにおけるタイル/スライスの数に依存してもよい。
1.一例において、抽出されたサブピクチャにおいて1つのタイルおよび1つのスライスのみが存在する場合、構文要素no_pic_partition_flagは、抽出されたサブピクチャを有する出力サブビットストリームを参照する構文構造の場合、1に等しくなるように書き換えられてもよい。
2.あるいは、抽出されたサブピクチャにおけるタイルおよび/またはスライスの数が1よりも大きい場合、構文要素no_pic_partition_flagは、抽出されたサブピクチャを有する出力サブビットストリームを参照する構文構造の場合、0に等しくてもよい。
e)一例において、以下の例示的な修正を導入することができる。
【0737】
C.7 サブピクチャサブビットストリーム抽出処理
【0738】
出力サブビットストリームoutBitstreamは、以下のように導出される。
-添付C.6で規定されたブビットストリーム抽出処理は、inBitstream、targetolsIdx、およびtIdTargetを入力として呼び出され、この処理の出力はoutBitstreamに割り当てられる。
-サブビットストリームoutBitstreamに置換パラメータセットを提供するために、本明細書で規定されていない外部手段が利用可能である場合、すべてのパラメータセットを置換パラメータセットに置き換える。
-そうでない場合、サブピクチャレベル情報SEIメッセージがinBitstreamに存在するときは、以下が適用される。
-参照される全てのVPS NALユニットのprofile_tier_level()構文構造リストのols_ptl_idx[targetOlsIdx]-th エントリのgeneral_level_idcの値を、subpicIdTarget[]の全てのエントリと等しいサブピクチャIDのサブピクチャで構成されるサブピクチャのセットについて、D.3.8で導出したSubpicSetLevelIdcと等しくなるように書き換える。
-参照される全てのVPS NALユニットのols_hrd_parameters()構文構造のリスト中のols_hrd_idx[targetOlsIdx]番目のエントリにあるj番目のCPBのcpb_size_value_minus1[tIdTarget][j]とbit_rate_value_minus1[tIdTarget][j]の値を、subpicIdTarget[]のすべてのエントリと等しいサブピクチャIDおよび、0からhrd_cpb_cnt_minus1の範囲内にあるjを有するサブピクチャで構成されるサブピクチャのセットについて、D.3.8で導出したようにSubpicSetCpbSizeVcl[0]、SubpicSetCpbSizeNal[0]、SubpicSetBitrateVcl[0]、SubpicSetBitrateNal[0]に対応するように、書き換える。
iが0~NumLayersInOls[targetolsIdx]-1の範囲内にあるi番目のレイヤに対して、以下が適用される。
-subpicIdはsubpicIdTarget[i]の値に等しく設定される。
-sps_ptl_dpb_hrd_params_present_flagが1に等しいSPS NALユニットのprofile_tier_level()構文構造のgeneral_level_idcの値を、サブピクチャIDがsubpicIdのサブピクチャで構成されるセットについて、D.3.8で導出したSubpicSetLevelIdcと等しくなるように、書き換える。
-参照される全てのSPS NALユニットのols_hrd_parameters()構文構造のリスト中のols_hrd_idx[targetOlsIdx]番目のエントリにあるj番目のCPBのcpb_size_value_minus1[tIdTarget][j]とbit_rate_value_minus1[tIdTarget][j]の値を、subpicIdに等しいサブピクチャIDおよび0からhrd_cpb_cnt_minus1の範囲内にあるjを有するサブピクチャを有するサブピクチャについて、D.3.8で導出したようにSubpicCpbSizeVcl[0][SubpicIdList[subPicId]]、SubpicCpbSizeNal[0][SubpicIdList[subPicId]]、SubpicBitrateVcl[0][SubpicIdList[subPicId]]、およびSubpicBitrateNal[0][SubpicIdList[subPicId]]に対応するように、書き換える。
-参照するすべてのSPS NALユニットのpic_width_max_in_luma_samplesとpic_height_max_in_luma_samplesの値と、参照するすべてのPPS NALユニットのpic_width_in_luma_samplesとpic_width_in_luma_samplesの値を、subpic_width_minus1[SubpicIdList[subPicId]]およびsubpic_height_minus1[SubpicIdList[subPicId]]に等しくなるように、書き換える。
-参照したすべてのSPS NALユニットのsps_num_subpics_minus1および参照したすべてのPPS NALユニットのpps_num_subpics_minus1の値を1に書き換える。
-構文要素subpic_ctu_top_left_x[SubpicIdList[subPicId]]、subpic_ctu_top_left_y[SubpicIdList[subPicId]]がすべての参照するSPS NALユニットに存在するときには、0に書き換える。
【0739】
【0740】
-すべての参照するSPS NALユニットで、かつSubpicIdList[j]がsubPicIdと等しくない各jに対して、subpic_ctu_top_left_x[j]、subpic_ctu_top_left_y[j]、subpic_width_minus1[j]、subpic_height_minus1[j]、subpic_treated_as_pic_flag[j]、loop_filter_across_subpic_enabled_flag[j],およびsps_subpic_id[j]の構文要素を削除する。
-すべての参照したPPSにおいて、タイリングおよびスライス構造に関連する構文要素を書き換え、サブピクチャIDがsubPicIdに等しいサブピクチャに関連付けられていないすべてのタイルの行、タイルの列、およびスライスを削除する。
-nuh_layer_idがiレイヤのnuh_layer_idに等しく、slice_subpic_idがsubPicIdに等しくないすべてのVCL NALユニットをoutBitstreamから削除する。
-sli_cbr_constraint_flagが1であるときは、subpicIdTarget[]内のサブピクチャのVCL NALユニットに関連付けられていないFD_NUTとフィラーペイロードSEIメッセージに等しいnal_unit_typeのNALユニットをすべて削除し、参照されるすべてのVPS NALユニットおよびSPS NALユニットの、ols_hrd_parameters()構文構造のリストのols_hrd_idx[targetOlsIdx]-番目のエントリにあるj番目(jは0からhrd_cpb_cnt_minus1の範囲内)のCBPのcbr_flag[tIdTarget][j]を1に等しく設定する。そうでない場合、(sli_cbr_constraint_flagが0に等しい場合)、nal_unit_typeがFD_NUTに等しいすべてのNALユニットとフィラーペイロードSEIメッセージを削除して、cbr_flag[tIdTarget][j]を0に等しく設定する。
【0741】
NALユニット関連HLS
【0742】
11.参照ピクチャリスト構文要素は、IDRピクチャのスライスヘッダに存在してもよい、すなわち、sps_idr_rpl_present_flagは、ビットストリームマージの場合、1に等しくてもよい。
a)一例において、出力バイストリーム(例えば、mixed_nalu_types_in_pic_flagが1に等しい)がバイストリームマージ中に2つの入力バイストリームからマージされ、入力バイストリームうちの1つのNALユニットタイプがIDRなどのIRAP VCL NALユニットタイプであってもよい場合、IDRバイストリームのRPLは利用可能でなければならない(すなわち、sps_idr_rpl_present_flagは、そのIDR入力バイストリームに対して1に等しい)ことが要求される場合がある。
b)一例において、以下の例示的な修正を導入することができる。
1に等しいsps_idr_rpl_present_flagは、参照ピクチャリスト構文要素がIDRピクチャのスライスヘッダに存在することを規定する。0に等しいsps_idr_rpl_present_flagは、参照ピクチャリスト構文要素がIDRピクチャのスライスヘッダに存在しないことを規定する。
【0743】
【0744】
分割関連
【0745】
12.輝度およびクロマのためのブロック(即ち、CTB、TB、PB、CB等)分割情報は、予測ツリーごとに異なってもよい。
a)一例において、クロマデュアルツリーの場合、ブロック分割構造、および/または輝度およびクロマのための分割構文要素は異なってもよい。
b)一例において、ローカルデュアルツリーの場合、ブロック分割構造、および/または輝度およびクロマのための分割構文要素は異なってもよい。
c)一例において、以下の例示的な修正を導入することができる。
【0746】
【0747】
一般制約フラグ
【0748】
13.パラメータセット(例えば、SPS/VPS/PPS)および/またはピクチャヘッダおよび/またはスライスヘッダにおける構文要素は、一般的な制約フラグによって調整されてもよい。
a)一例において、コーディングツールのための有効化フラグは、対応する一般制約フラグによって条件付けられてもよい。
i.一例において、対応する一般制約フラグが1に等しい場合は、有効化フラグは0に等しいものとする。
ii.一例において、有効化フラグは、対応する一般制約フラグによって上書きされてもよい。例えば、一般制約フラグが1に等しい場合は、対応する有効化フラグを0に設定してもよい。
b)一例において、有効化フラグが信号通知されるかどうかは、対応する一般制約フラグに依存してもよい。
i.一例において、対応する一般制約フラグが1に等しい場合は、有効化フラグが存在しなくてもよい。
ii.一例において、有効化フラグは、存在しない場合、0に等しいと推論されてもよい。
【0749】
14.SPS(例えば、res_change_in_clvs_allowed_flag)を参照してCLVS内でピクチャの空間的解像度が変化するかどうかは、no_res_change_in_clvs_constraint_flagのような一般的な制約フラグによって調整されてもよい。
a)一例において、構文no_res_change_in_clvs_constraint_flagが1に等しい場合は、res_change_in_clvs_allowed_flagは存在しなくてもよい。
b)一例において、res_change_in_clvs_allowed_flagは、構文res_change_in_clvs_allowed_flagが存在しない場合、0に等しいと推論してもよい。
【0750】
15.スケーリングウィンドウオフセットパラメータがPPSに存在するかどうか(例えば、scaling_window_explicit_signalling_flag)は、SPSを参照するCLVS内でピクチャの空間的解像度が変化するかどうか(例えばres_change_in_clvs_allowed_flag)及び/又はno_res_change_in_clvs_constraint_flagなどの一般制約フラグに依存してもよい。
a)一例において、scaling_window_explicit_signalling_flagは、構文scaling_window_explicit_signalling_flagが存在しないときには、0に等しいと推論してもよい。
b)一例において、res_change_in_clvs_allowed_flagが0に等しい場合、scaling_window_explicit_signalling_flagが存在しない場合もある。
c)一例において、no_res_change_in_clvs_constraint_flagが1に等しい場合は、scaling_window_explicit_signalling_flagが存在しない場合もある。
【0751】
16.one_subpic_per_pic_constraint_flagが存在するかどうかは、構文one_slice_per_pic_constraint_flagに依存してもよい。
a)一例において、one_slice_per_pic_constraint_flagが1に等しい場合は、one_subpic_per_pic_constraint_flagは存在しなくてもよく、1に等しいと推論してもよい。
b)一例において、one_slice_per_pic_constraint_flagが0に等しい場合、one_subpic_per_pic_constraint_flagが存在してもよい。
【0752】
17. 一般制約フラグno_bdpcm_constraint_flagは、一般制約フラグno_transform_skip_constraint_flagによって条件付けられてもよい。
a)一例において、一般制約フラグno_bdpcm_constraint_flagは、一般制約フラグno_transform_skip_constraint_flagが1に等しい場合は、1に等しいものとする。
b)一例において、一般制約フラグno_bdpcm_constraint_flagが信号通知されるかどうかは、構文no_transform_skip_constraint_flagに依存してもよい。
i.一例において、no_transform_skip_constraint_flagが1に等しい場合は、一般制約フラグno_bdpcm_constraint_flagは存在しなくてもよい。
ii. 一例において、no_bdpcm_constraint_flagが存在しない場合、構文no_bdpcm_constraint_flagは1に等しいと推論される。
【0753】
18. 1つの一般制約フラグが信号通知されるかどうかは、他の一般制約フラグに依存してもよい。
a)一例において、いくつかの制約グループフラグを定義することができ、他の一般的な制約フラグは、これらの制約グループフラグによって条件付けられてもよい。
i.一例において、制約フラグは、ツールのタイプ(予測、変換、量子化、インター、イントラを含むが、これらに限定されない)またはプロファイルに従ってグループ分けられてもよい。
ii.一例において、1つのグループに属する制約フラグは、対応する制約グループフラグから導出されてもよい。
iii.一例において、1つのグループに属する制約フラグが信号通知されるかどうかは、対応する制約グループフラグに依存してもよい。例えば、制約グループフラグが0に等しい場合、このグループに属する制約フラグを信号通知しなくてもよい。
【0754】
一般制約フラグの意味論
【0755】
【0756】
【0757】
【0758】
図1は、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム100を示すブロック図である。様々な実装形態は、システム100のコンポーネントの一部又は全部を含んでもよい。システム100は、映像コンテンツを受信するための入力102を含んでもよい。映像コンテンツは、未加工又は非圧縮フォーマット、例えば、8又は10ビットのマルチモジュール画素値で受信されてもよく、又は圧縮又は符号化フォーマットで受信されてもよい。入力102は、ネットワークインターフェース、周辺バスインターフェース、又は記憶インターフェースを表してもよい。ネットワークインターフェースの例は、イーサネット(登録商標)、PON(登録商標;Passive Optical Network)等の有線インターフェース、およびWi-Fi(登録商標)またはセルラーインターフェース等の無線インターフェースを含む。
【0759】
システム100は、本明細書に記載される様々なコーディング又は符号化方法を実装することができるコーディングコンポーネント104を含んでもよい。コーディングコンポーネント104は、入力102からコーディングコンポーネント104の出力への映像の平均ビットレートを低減して、映像のコーディング表現を生成してもよい。従って、コーディング技術は、映像圧縮または映像コード変換技術と呼ばれることがある。コーディングコンポーネント104の出力は、コンポーネント106によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力102において受信された、記憶された又は通信された映像のビットストリーム(又はコーディング)表現は、表示インターフェース110に送信される画素値又は表示可能な映像を生成するためのコンポーネント108によって使用されてよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像展開と呼ばれることがある。さらに、特定の映像処理演算を「コーディング」演算又はツールと呼ぶが、コーディングツール又は演算は、エンコーダで使用され、対応する復号化ツール又は演算であり符号化の結果を逆にするものは、デコーダによって行われることが理解されよう。
【0760】
周辺バスインターフェースまたは表示インターフェースの例は、USB(登録商標;Universal Serial Bus)またはHDMI(登録商標;High Definiyion Multimedia Interface)またはディスプレイポート等を含んでもよい。ストレージインターフェースの例は、SATA(Serial Advanced Technology Attachment)、PCI、IDEインターフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、又はデジタルデータ処理及び/又は映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
【0761】
図2は、映像処理装置3600のブロック図である。装置3600は、本明細書に記載の方法の1つ以上を実装するために使用してもよい。装置3600は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機等に実施されてもよい。装置3600は、1つ以上の処理装置3602と、1つ以上のメモリ3604と、映像処理ハードウェア3606と、を含んでもよい。1つまたは複数の処理装置3602は、本明細書に記載される1つ以上の方法を実装するように構成されてもよい。メモリ(複数可)3604は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア3606は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。
【0762】
図4は、本開示の技法を利用し得る例示的な映像コーディングシステム100を示すブロック図である。
【0763】
図4に示すように、映像コーディングシステム100は、送信元装置110と、送信先装置120と、を備えてもよい。送信元装置110は、符号化された映像データを生成するものであり、映像符号化機器とも呼ばれ得る。送信先装置120は、送信元装置110によって生成された符号化映像データを復号化してよく、映像復号化デバイスと呼ばれ得る。
【0764】
送信元装置110は、映像ソース112と、映像エンコーダ114と、入出力(I/O)インターフェース116と、を含んでよい。
【0765】
映像ソース112は、映像キャプチャデバイスなどのソース、映像コンテンツプロバイダからの映像データを受信するためのインターフェース、および/または映像データを生成するためのコンピュータグラフィックスシステム、またはこれらのソースの組み合わせを含んでもよい。映像データは、1または複数のピクチャを含んでもよい。映像エンコーダ114は、映像ソース112からの映像データを符号化し、ビットストリームを生成する。ビットストリームは、映像データのコーディング表現を形成するビットのシーケンスを含んでもよい。ビットストリームは、コーディングされたピクチャおよび関連付けられたデータを含んでもよい。コーディングされたピクチャは、ピクチャのコーディング表現である。関連付けられたデータは、シーケンスパラメータセット、ピクチャパラメータセット、および他の構文構造を含んでもよい。I/Oインターフェース116は、変復調器(モデム)および/または送信機を含んでもよい。符号化された映像データは、ネットワーク130aを介して、I/Oインターフェース116を介して送信先装置120に直接送信されてよい。符号化された映像データは、送信先装置120がアクセスするために、記憶媒体/サーバ130bに記憶してもよい。
【0766】
送信先装置120は、I/Oインターフェース126、映像デコーダ124、および表示装置122を含んでもよい。
【0767】
I/Oインターフェース126は、受信機および/またはモデムを含んでもよい。I/Oインターフェース126は、送信元装置110または記憶媒体/サーバ130bから符号化された映像データを取得してもよい。映像デコーダ124は、符号化された映像データを復号してもよい。表示装置122は、復号化された映像データをユーザに表示してもよい。表示装置122は、送信先装置120と一体化されてもよく、または外部表示装置とインターフェースで接続するように構成される送信先装置120の外部にあってもよい。
【0768】
映像エンコーダ114および映像デコーダ124は、HEVC(High Efficiency Video Coding)規格、VVM(Versatile Video Coding)規格、および他の現在のおよび/またはさらなる規格等の映像圧縮規格に従って動作してもよい。
【0769】
図5は、映像エンコーダ200の一例を示すブロック図であり、この映像エンコーダは、
図4に示されるシステム100における映像エンコーダ114であってもよい。
【0770】
映像エンコーダ200は、本開示の技術のいずれか又は全部を実行するように構成されてもよい。
図5の実施例において、映像エンコーダ200は、複数の機能モジュールを含む。本開示で説明される技法は、映像エンコーダ200の様々なコンポーネント間で共有されてもよい。いくつかの例では、プロセッサ(処理装置)は、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0771】
映像エンコーダ200の機能コンポーネントは、分割ユニット201と、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205及びイントラ予測ユニット206を含んでもよい予測ユニット202と、残差生成ユニット207と、変換ユニット208と、量子化ユニット209と、逆量子化ユニット210と、逆変換ユニット211と、再構成ユニット212と、バッファ213と、エントロピー符号化ユニット214と、を含んでもよい。
【0772】
他の例において、映像エンコーダ200は、より多くの、より少ない、又は異なる機能コンポーネントを含んでもよい。一例において、予測ユニット202は、イントラブロックコピー(IBC)ユニットを含んでもよい。IBCユニットは、少なくとも1つの参照ピクチャが現在の映像ブロックが位置するピクチャであるIBCモードにおいて予測を行うことができる。
【0773】
さらに、動き推定ユニット204および動き補償ユニット205などのいくつかのコンポーネントは、高度に統合されてもよいが、説明のために、
図5の例においては個別に表現されている。
【0774】
分割ユニット201は、1つのピクチャを1または複数の映像ブロックに分割してよい。映像エンコーダ200及び映像デコーダ300は、様々な映像ブロックサイズをサポートしてもよい。
【0775】
モード選択ユニット203は、例えば、エラー結果に基づいて、イントラ又はインターのいずれかのコーディングモードの1つを選択し、得られたイントラ又はインターコーディングブロックを、残差生成ユニット207に供給して残差ブロックデータを生成し、また再構成ユニット212に供給して参照ピクチャとして使用するために符号化ブロックを再構成してもよい。いくつかの例において、モード選択ユニット203は、インター予測信号およびイントラ予測信号に基づいて予測を行うCIIP(Combination of Intra and Inter Prediction)モードを選択してもよい。モード選択ユニット203は、インター予測の場合、ブロックのために動きベクトルの解像度(例えば、サブピクセル又は整数ピクセル精度)を選択してもよい。
【0776】
現在の映像ブロックに対してインター予測を実行するために、動き推定ユニット204は、バッファ213からの1または複数の参照フレームと現在の映像ブロックとを比較することにより、現在の映像ブロックのために動き情報を生成してもよい。動き補償ユニット205は、現在の映像ブロックに関連付けられたピクチャ以外のバッファ213からのピクチャの動き情報及び復号化サンプルに基づいて、現在の映像ブロックのために予測映像ブロックを判定してもよい。
【0777】
動き推定ユニット204及び動き補償ユニット205は、例えば、現在の映像ブロックがIスライスであるか、Pスライスであるか、又はBスライスであるかに基づいて、現在の映像ブロックに対して異なる演算を実行してもよい。
【0778】
いくつかの例において、動き推定ユニット204は、現在の映像ブロックに対して単方向予測を実行し、動き推定ユニット204は、現在の映像ブロックに対する参照映像ブロックのために、リスト0又はリスト1の参照ピクチャを検索してもよい。そして、動き推定ユニット204は、参照映像ブロックと、現在の映像ブロックと参照映像ブロックとの間の空間的変位を示す動きベクトルとを含む、リスト0またはリスト1における参照ピクチャを示す参照インデックスを生成してもよい。動き推定ユニット204は、参照インデックス、予測方向インジケータ、および動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償ユニット205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在のブロックの予測映像ブロックを生成してもよい。
【0779】
他の例において、動き推定ユニット204は、現在の映像ブロックを双方向予測してもよく、動き推定ユニット204は、リスト0における参照ピクチャの中から現在の映像ブロックために参照映像ブロックを検索してもよく、また、リスト1における参照ピクチャの中から現在の映像ブロックのために別の参照映像ブロックを検索してもよい。そして、動き推定ユニット204は、参照映像ブロックを含むリスト0およびリスト1における参照ピクチャを示す参照インデックスと、参照映像ブロックと現在の映像ブロックとの間の空間的変位を示す動きベクトルとを生成してもよい。動き推定ユニット204は、現在の映像ブロックの参照インデックスおよび動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償ユニット205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在の映像ブロックの予測映像ブロックを生成してもよい。
【0780】
いくつかの例において、動き推定ユニット204は、デコーダの復号化処理のために、動き情報のフルセットを出力してもよい。
【0781】
いくつかの例では、動き推定ユニット204は、現在の映像のために動き情報のフルセットを出力しなくてもよい。むしろ、動き推定ユニット204は、別の映像ブロックの動き情報を参照して、現在の映像ブロックの動き情報を信号通知してもよい。例えば、動き推定ユニット204は、現在の映像ブロックの動き情報が近傍の映像ブロックの動き情報に十分に類似していると判定してもよい。
【0782】
一例において、動き推定ユニット204は、現在の映像ブロックに関連付けられた構文構造において、現在の映像ブロックが別の映像ブロックと同じ動き情報を有することを映像デコーダ300に示す値を示してもよい。
【0783】
別の例において、動き推定ユニット204は、現在の映像ブロックに関連付けられた構文構造において、別の映像ブロックと、動きベクトル差(MVD:Motion Vector Difference)と、を識別してもよい。動きベクトル差は、現在の映像ブロックの動きベクトルと、示された映像ブロックの動きベクトルとの差分を示す。映像デコーダ300は、指示された映像ブロックの動きベクトルと、動きベクトル差と、を用いて、現在の映像ブロックの動きベクトルを判定してもよい。
【0784】
上述したように、映像エンコーダ200は、動きベクトルを予測的に信号通知してもよい。映像エンコーダ200によって実装され得る予測信号通知技法の2つの例は、AMVP(Advanced Motion Vector Prediction)およびマージモード信号通知を含む。
【0785】
イントラ予測ユニット206は、現在の映像ブロックに対してイントラ予測を行ってもよい。イントラ予測ユニット206が現在の映像ブロックをイントラ予測する場合、イントラ予測ユニット206は、同じピクチャにおける他の映像ブロックの復号されたサンプルに基づいて、現在の映像ブロックのための予測データを生成してもよい。現在の映像ブロックのための予測データは、予測された映像ブロック及び様々な構文要素を含んでもよい。
【0786】
残差生成ユニット207は、現在の映像ブロックから現在の映像ブロックの予測された映像ブロックを減算することによって(例えば、マイナス符号によって示されている)、現在の映像ブロックのために残差データを生成してもよい。現在の映像ブロックの残差データは、現在の映像ブロックにおけるサンプルの異なるサンプル成分に対応する残差映像ブロックを含んでもよい。
【0787】
他の例において、例えば、スキップモードにおいて、現在の映像ブロックのための残差データがなくてもよく、残差生成ユニット207は、減算演算を実行しなくてもよい。
【0788】
変換処理ユニット208は、現在の映像ブロックに関連付けられた残差映像ブロックに1または複数の変換を適用することによって、現在の映像ブロックのために1または複数の変換係数映像ブロックを生成してもよい。
【0789】
変換処理ユニット208が現在の映像ブロックに関連付けられた変換係数映像ブロックを生成した後、量子化ユニット209は、現在の映像ブロックに関連付けられた1または複数の量子化パラメータ(QP)の値に基づいて、現在の映像ブロックに関連付けられた変換係数映像ブロックを量子化してもよい。
【0790】
逆量子化ユニット210および逆変換ユニット211は、変換係数映像ブロックに逆量子化および逆変換をそれぞれ適用し、変換係数映像ブロックから残差映像ブロックを再構成してもよい。再構成ユニット212は、予測ユニット202が生成した1または複数の予測映像ブロックから対応するサンプルに再構成された残差映像ブロックを加え、バッファ213での記憶のために現在のブロックに関連付けられた再構成された映像ブロックを生成してよい。
【0791】
再構成ユニット212が映像ブロックを再構成した後、映像ブロックにおける映像ブロッキングアーチファクトを縮小するために、ループフィルタリング動作を行ってもよい。
【0792】
エントロピー符号化ユニット214は、映像エンコーダ200の他の機能コンポーネントからデータを受信してもよい。エントロピー符号化ユニット214は、データを受信すると、1または複数のエントロピー符号化演算を行い、エントロピー符号化されたデータを生成し、エントロピー符号化されたデータを含むビットストリームを出力してもよい。
【0793】
図6は、映像デコーダ300の一例を示すブロック図であり、この映像デコーダは、
図4に示すシステム100における映像デコーダ114であってもよい。
【0794】
映像デコーダ300は、本開示の技術のいずれか又は全部を実行するように構成されてもよい。
図6の実施例において、映像デコーダ300は、複数の機能コンポーネントを含む。本開示で説明される技法は、映像デコーダ300の様々なコンポーネント間で共有されてもよい。いくつかの例では、処理装置は、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0795】
図6の実施例において、映像デコーダ300は、エントロピー復号化ユニット301、動き補償ユニット302、イントラ予測ユニット303、逆量子化ユニット304、逆変換ユニット305、および再構成ユニット306、並びにバッファ307を含む。映像デコーダ300は、いくつかの例では、映像エンコーダ200(
図5)に関して説明した符号化パスとほぼ逆の復号化パスを行ってもよい。
【0796】
エントロピー復号化ユニット301は、符号化されたビットストリームを取り出す。符号化されたビットストリームは、エントロピー符号化された映像データ(例えば、映像データの符号化されたブロック)を含んでもよい。エントロピー復号化ユニット301は、エントロピー符号化された映像データを復号化し、エントロピー復号された映像データから、動き補償ユニット302は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、および他の動き情報を含む動き情報を決定してもよい。動き補償ユニット302は、例えば、AMVP及びマージモードを実行することにより、このような情報を判定してもよい。
【0797】
動き補償ユニット302は、動き補償されたブロックを生成してもよく、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセルの精度で使用される補間フィルタのための識別子が、構文要素に含まれてもよい。
【0798】
動き補償ユニット302は、映像ブロックの符号化の間に映像エンコーダ20によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数ピクセルのための補間値を計算してもよい。動き補償ユニット302は、受信した構文情報に基づいて、映像エンコーダ200が使用する補間フィルタを判定し、この補間フィルタを使用して予測ブロックを生成してもよい。
【0799】
動き補償ユニット302は、符号化された映像シーケンスのフレームおよび/またはスライスを符号化するために使用されるブロックのサイズを判定するための構文情報、符号化された映像シーケンスのピクチャの各マクロブロックがどのように分割されるかを記述する分割情報、各分割がどのように符号化されるかを示すモード、各インター符号化されたブロックに対する1または複数の参照フレーム(および参照フレームリスト)、および符号化された映像シーケンスを復号化するための他の情報のいくつかを使用してもよい。
【0800】
イントラ予測ユニット303は、例えば、ビットストリームにおいて受信したイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成してもよい。逆量子化ユニット303は、ビットストリームに提供され、エントロピー復号化ユニット301によって復号された量子化された映像ブロック係数を逆量子化(すなわち、逆量子化)する。逆変換ユニット303は、逆変換を適用する。
【0801】
再構成ユニット306は、残差ブロックと、動き補償ユニット202又はイントラ予測ユニット303によって生成された対応する予測ブロックとを合計し、復号されたブロックを形成してもよい。所望であれば、ブロックアーチファクトを除去するために、復号されたブロックをフィルタリングするためにデブロッキングフィルタを適用してもよい。復号された映像ブロックは、バッファ307に記憶され、バッファ307は、後続の動き補償/イントラ予測のために参照ブロックを提供し、また表示装置に表示するために復号された映像を生成する。
【0802】
次に、いくつかの実施形態において好適な解決策を列挙する。
【0803】
以下の解決策は、前章(例えば、項目1)で論じた技術の例示的な実施形態を示す。
【0804】
1.映像処理方法(例えば
図3で示した方法3000)であって、映像の映像領域における映像ユニットとこの映像のコーディング表現との変換を行う(3002)ことを含み、コーディング表現は、構文規則に準拠する、方法。この規則は、映像ピクチャレベルの第1のインジケータと映像領域レベルの第2のインジケータとが、変換中に時間的動きベクトル予測コーディングツールを使用することを示すことを規定する。この規則は、コーディング表現において第1の標識および/または第2の標識を省略する条件を規定する。
【0805】
2.前記第1のインジケータは、前記映像ピクチャ内のいずれかの映像領域に時間的動きベクトル予測コーディングツールが使用されているかどうかを示す、解決策1に記載の方法。
【0806】
3.前記第2のインジケータは、前記時間的動きベクトル予測コーディングツールを前記映像領域レベルで有効化することを示す、解決策1~2のいずれかに記載の方法。
【0807】
4.第2のインジケータがコーディング表現から省略され、デコーダにおいて、第2の標識が特定の値を有すると推論される、解決策1~3のいずれかに記載の方法。
【0808】
以下の解決策は、前章(例えば、項目2)で論じた技術の例示的な実施形態を示す。
【0809】
5.映像処理方法であって、映像の映像領域における映像ユニットとこの映像のコーディング表現との変換を行うことを含み、このコーディング表現は、構文規則に準拠し、この構文規則は、映像領域レベルのヘッダの情報を映像ユニットレベルのヘッダの情報として推論することを規定する、方法。
【0810】
6.前記映像ユニットは映像スライスであり、前記映像領域は映像ピクチャである、解決策1に記載の情報。
【0811】
以下の解決策は、前章(例えば、項目3)で論じた技術の例示的な実施形態を示す。
【0812】
7.映像処理方法であって、レイヤ毎の映像シーケンスとして編成された複数のピクチャを含む映像の映像領域における映像ユニットと、この映像のコーディング表現との変換を行うことを含み、コーディング表現における1つ以上のフィールドは、この映像ユニットにおけるサブピクチャの数を示す、方法。
【0813】
8.前記映像ユニットは1つの映像ピクチャである、解決策7に記載の方法。
【0814】
9.前記1つ以上のフィールドの第1のフィールドは、映像領域レベルにおけるサブピクチャの数の制約を示し、前記第1のフィールドが前記制約が有効化されることを示す場合、第2のフィールドはゼロ値に制限される、解決策7に記載の方法。
【0815】
以下の解決策は、前章(例えば、項目4)で論じた技術の例示的な実施形態を示す。
【0816】
10.映像処理方法であって、レイヤ毎の映像シーケンスとして編成された複数のピクチャを含む映像の映像領域における映像ユニットと、この映像のコーディング表現との変換を行うことを含み、このコーディング表現は、映像ユニットにおけるサブピクチャの数を示す第2のフィールドの値が、この変換に対するクロスサブピクチャコーディングツールの適用可能性を示す第2のフィールドを制御すること規定するフォーマット規則に準拠する、方法。
【0817】
11.前記映像ユニットは1つの映像ピクチャである、解決策10に記載の方法。
【0818】
12.前記映像領域は1つの映像シーケンスである、解決策10から11のいずれかに記載の方法。
【0819】
13.前記クロスサブピクチャコーディングツールは、イントラコーディングツール、インターコーディングツール、またはインループフィルタリングツールを含む、解決策10~12のいずれかに記載の方法。
【0820】
以下の解決策は、前章(例えば、項目5、6)で論じた技術の例示的な実施形態を示す。
【0821】
14.映像処理方法であって、レイヤ毎の映像シーケンスとして編成された複数のピクチャを含む映像の映像領域における映像ユニットと、この映像のコーディング表現との変換を行うことを含み、このコーディング表現は、1つの映像ユニット当たりのサブピクチャの数がこのコーディング表現における構文要素の値を制御することを規定するフォーマット規則に準拠する、方法。
【0822】
15.前記構文要素の値は、1つのサブピクチャを1つの映像ピクチャとして扱うかどうかを示す、解決策14に記載の方法。
【0823】
16.構文要素の値は、サブピクチャにわたってループフィルタリングが有効化されるかどうかを示す、解決策14に記載の方法。
【0824】
以下の解決策は、前章(例えば、項目7、8)で論じた技術の例示的な実施形態を示す。
【0825】
17.映像処理方法であって、レイヤ毎の映像シーケンスとして編成された複数のピクチャを含む映像の映像領域における映像ユニットと、この映像のコーディング表現との変換を行うことを含み、このコーディング表現は、1つの映像ユニット内に1つの映像スライスが発生するかどうかを示すフィールドの値がこの映像の矩形スライスのコーディング特性を制御することを規定するフォーマット規則に準拠する、方法。
【0826】
18.前記コーディング特性は、1つの矩形スライスの幅が前記映像ユニットにおけるタイル列の単位で規定されるかどうかを含む、解決策17に記載の方法。
【0827】
19.前記コーディング特性は、1つのスライスが前記サブピクチャに含まれるかどうかを含む、解決策17に記載の方法。
【0828】
以下の解決策は、前章(例えば、項目9)で論じた技術の例示的な実施形態を示す。
【0829】
20.映像処理方法であって、レイヤ毎の映像シーケンスとして編成された複数のピクチャを含む映像の映像領域における映像ユニットと、この映像のコーディング表現との変換を行うことを含み、このコーディング表現は、このレイヤ毎の映像シーケンスのコーディング表現における異なるピクチャにまたがる抽出されたサブピクチャが同じサブピクチャインデックスを有する構文規則に準拠する、方法。
【0830】
21.前記フォーマット規則は、サブピクチャインデックスに基づいて前記コーディング表現の復号化中にサブピクチャを抽出することを規定する、解決策10に記載の方法。
【0831】
以下の解決策は、前章(例えば、項目10)で論じた技術の例示的な実施形態を示す。
【0832】
22.映像処理方法であって、レイヤ毎の映像シーケンスとして編成された複数のピクチャを含む映像の映像領域における映像ユニットと、この映像のコーディング表現との変換を行うことを含み、このコーディング表現は、サブピクチャサブビットストリームのために抽出されたサブビットストリームが単一のサブピクチャのフォーマットに準拠するという構文規則に準拠する、方法。
【0833】
以下の解決策は、前章(例えば、項目13)で論じた技術の例示的な実施形態を示す。
【0834】
23.映像処理方法であって、レイヤ毎の映像シーケンスとして編成された複数のピクチャを含む映像の映像領域における映像ユニットと、この映像のコーディング表現との変換を行うことを含み、このコーディング表現は、このコーディング表現における構文構造における1つ以上の構文要素の発生を制御する1つ以上の制約フラグを含めることを規定するフォーマット規則に準拠する、方法。
【0835】
24.前記構文構造は、シーケンスパラメータセット、映像パラメータセット、またはピクチャパラメータセット、またはピクチャヘッダ、またはスライスヘッダである、解決策23に記載の方法。
【0836】
以下の解決策は、前章(例えば、項目14)で論じた技術の例示的な実施形態を示す。
【0837】
25.前記1つ以上の構文要素は、前記コーディング表現内のピクチャ解像度の変化を示す、解決策23~24のいずれかに記載の方法。
【0838】
以下の解決策は、前章(例えば、項目15)で論じた技術の例示的な実施形態を示す。
【0839】
26.前記1つ以上の構文要素は、前記変換のためのスケーリングウィンドウオフセットパラメータを示す、解決策23~24のいずれかに記載の方法。
【0840】
以下の解決策は、前章(例えば、項目16)で論じた技術の例示的な実施形態を示す。
【0841】
27.前記1つ以上の制約フラグは、ピクチャごとに1つのスライス制約が有効化されるかどうかを示すフラグを含む、解決策23~24のいずれかに記載の方法。
【0842】
以下の解決策は、前章(例えば、項目17)で論じた技術の例示的な実施形態を示す。
【0843】
28.前記1つ以上の制約フラグは、変換中に変換をスキップするかどうかを示すフラグを含む、解決策23~24のいずれかに記載の方法。
【0844】
以下の解決策は、前章(例えば、項目18)で論じた技術の例示的な実施形態を示す。
【0845】
29.1つ以上の制約フラグからの第1の制約フラグが、コーディング表現における第2の制約フラグの発生を制御する、解決策23~28のいずれかに記載の方法。
【0846】
30.前記構文規則は、前記1つ以上の制約フラグが、前記映像の変換に使用されるコーディングツールのタイプまたはコーディングするプロファイルに従ってグループ分けされる制約フラグのグループを含むことを規定する、解決策23~29のいずれかに記載の方法。
【0847】
31.映像ユニットが映像ピクチャに対応する、前記解決策のいずれかに記載の方法。
【0848】
32.映像領域が映像シーケンスに対応する、前記解決策のいずれかに記載の方法。
【0849】
33.前記変換は、前記映像を前記コーディング表現に符号化することを含む、解決策1~32のいずれかに記載の方法。
【0850】
34.前記変換は、前記映像の画素値を生成すべく前記コーディング表現を復号化することを含む、解決策1~32のいずれかに記載の方法。
【0851】
35.解決策1~34の1つ以上に記載の方法を実装するように構成された処理装置を備える、映像復号化装置。
【0852】
36.解決策1~34の1つ以上に記載の方法を実装するように構成された処理装置を備える、映像符号化装置。
【0853】
37.コンピュータコードが記憶されたコンピュータプログラム製品であって、前記コードは、処理装置により実行されると、前記処理装置に、解決策1~34のいずれかに記載の方法を実装させるコンピュータプログラム製品。
【0854】
38.本明細書に記載の方法、装置またはシステム。
【0855】
図7は、本技術に従った映像処理の方法700を示すフローチャートである。この方法700は、動作710において、映像スライスを含む映像ピクチャと映像のビットストリーム表現との変換を行うことを含む。このビットストリームは、映像スライスのスライスタイプが、この映像ピクチャのピクチャヘッダからの特定の情報をこの映像スライスのスライスヘッダに継承させる方法を決定することを規定するフォーマット規則に準拠する。
【0856】
いくつかの実施形態において、前記フォーマット規則は、前記ピクチャヘッダに参照ピクチャリスト情報が存在するかどうかに基づいて前記方法をさらに決定することを規定する。いくつかの実施形態において、前記特定の情報は、時間的動きベクトル予測に使用される同一位置に配置されたピクチャが参照リスト0からのものであるかどうか、或いは前記同一位置に配置されたピクチャの参照ピクチャインデックスからのものであるかどうかのうちの少なくとも一方を含む。いくつかの実施形態において、前記フォーマット規則は、前記方法が前記映像スライスに対して時間的動きベクトル予測が有効化されているかどうかにさらに基づいていることを規定する。いくつかの実施形態において、映像ピクチャのピクチャヘッダ内の第1の構文要素は、時間的動きベクトル予測が映像ピクチャに対して有効化されているかどうかを示し、映像スライスのスライスタイプがPであり、第1の構文要素が1に等しい場合、この方法は、映像ピクチャがどの参照ピクチャリストと同一位置に配置されているかどうかを示す映像ピクチャのピクチャヘッダにおける第3の構文要素の値に関わらず、映像スライスがどの参照ピクチャリストと同一位置に配置されているかを示す映像スライスのスライスヘッダにおける第2の構文要素の値が1と推論することを規定する。いくつかの実施形態において、映像スライスのスライスタイプがPである場合、この方法は、映像スライスがどの参照ピクチャリストに同一位置に配置されているかを示す映像スライスのスライスヘッダにおける第2の構文要素の値が、他の条件に関わらず、1に等しいと推論することを規定する。いくつかの実施形態において、映像スライスのスライスタイプがPである場合、この方法は、この映像スライスに対して時間的動きベクトル予測が有効化されることに呼応して、この映像スライスがどの参照ピクチャリストと同一位置に配置されているかを示す、この映像スライスのスライスヘッダにおける第2の構文要素の値が1に等しいと推論することを規定する。
【0857】
いくつかの実施形態において、映像ピクチャのピクチャヘッダ内の第1の構文要素は、時間的動きベクトル予測が映像ピクチャに対して有効化されているかどうかを示し、映像スライスのスライスタイプがBであり、第1の構文要素が1に等しい場合、前記方法は、前記映像スライスのスライスヘッダ中の、前記映像スライスがどの参照ピクチャリストと同一位置に配置されているかどうかを示す第2の構文要素の値が、前記映像ピクチャのピクチャヘッダ中の、前記映像ピクチャがどの参照ピクチャリストと同一位置に配置されているかどうかを示す第4の構文要素と等しいと推論されることを規定する。いくつかの実施形態において、映像ピクチャヘッダにおける構文要素は、時間的動きベクトル予測に使用される映像ピクチャの同一位置に配置されたピクチャの参照インデックスを規定し、フォーマット規則は、構文要素の値が、参照ピクチャリスト0におけるアクティブな参照エントリの数を示す変数よりも小さいことを規定する。
【0858】
いくつかの実施形態において、映像スライスヘッダにおける構文要素は、時間的動きベクトル予測に使用される映像ピクチャの同一位置に配置されたピクチャの参照インデックスを規定し、フォーマット規則は、この構文要素が参照ピクチャリスト1における非アクティブエントリを参照することを規定する。いくつかの実施形態において、前記フォーマット規則は、参照ピクチャリスト1の非アクティブエントリに対応する参照ピクチャが参照ピクチャリスト0のアクティブエントリによっても参照されることをさらに規定する。いくつかの実施形態において、映像スライスヘッダにおける構文要素は、時間的動きベクトル予測に使用される映像ピクチャの同一位置に配置されたピクチャの参照インデックスを規定し、変換に使用される前に、時間的動きベクトル予測を修正する。いくつかの実施形態において、構文要素は、0から参照ピクチャリスト0におけるアクティブな参照エントリの数から1を減算した数までの範囲内にあるインデックスにマッピングされる。いくつかの実施形態において、構文要素は参照ピクチャリスト0における1つのエントリを指し、構文要素の値が参照ピクチャリスト0におけるアクティブな参照エントリの数以上に等しい場合、デフォルトの同一位置に配置された参照インデックスに設定される。デフォルトの同一位置に配置された参照インデックスは、0と、参照ピクチャリスト0におけるアクティブな参照エントリの数から1を減算したものとの間の範囲内にある。いくつかの実施形態において、デフォルトの同一位置に配置された参照インデックスは、0に設定されるか、またはビットストリームにおいて信号通知される。
【0859】
いくつかの実施形態において、前記フォーマット規則は、同じ映像ピクチャヘッダを参照する第1のタイプの第1の映像スライスと第2のタイプの第2の映像スライスとは、互いに異なる同一位置に配置されたピクチャを使用して変換することを示す。いくつかの実施形態において、第1のタイプはBタイプの映像スライスであり、第2のタイプはPタイプの映像スライスである。いくつかの実施形態において、映像ピクチャヘッダに参照ピクチャリストが信号通知され、映像スライスヘッダに同一位置に配置されたピクチャの参照ピクチャインデックスは、映像スライスヘッダに信号通知される。いくつかの実施形態において、フォーマット規則は、(1)スライスのタイプがPである場合、(2)参照ピクチャリストが映像ピクチャヘッダに信号通知される場合、(3)時間的動きベクトル予測が有効化されている場合、および(4)映像ピクチャが参照ピクチャリスト0と同一位置に配置されていないことを示す映像ピクチャヘッダにおける第3の構文要素が0に等しい場合、同一位置に配置されたピクチャの参照ピクチャインデックスが映像スライスヘッダに信号通知されることを規定する。いくつかの実施形態において、参照ピクチャインデックスは参照ピクチャリスト0における参照ピクチャを参照する。
【0860】
いくつかの実施形態において、フォーマット規則は、タイプBの第1の映像スライスについて第1の同一位置に配置された参照ピクチャインデックスが信号化または決定され、タイプPの第2の映像スライスについて第2の同一位置に配置された参照ピクチャインデックスが信号化または決定されることを規定する。いくつかの実施形態において、映像ピクチャヘッダの第3の構文要素が映像画像が参照ピクチャリスト0と同一位置に配置されていないことを示す場合にのみ第1の同一位置に配置された参照ピクチャインデックス及び第2の同一位置に配置された参照ピクチャインデックスが信号通知される。
【0861】
いくつかの実施形態において、前記フォーマット規則は、第1のタイプの第1の映像スライスと第2のタイプの第2の映像スライスとが同じ映像ピクチャヘッダを参照するかどうかをビットストリームにおいて信号通知することを規定する。いくつかの実施形態において、同じ映像ピクチャヘッダを参照する映像スライスのタイプは、映像ピクチャヘッダに信号通知される。いくつかの実施形態において、前記フォーマット規則は、映像ピクチャヘッダに参照ピクチャリストが信号通知される場合にのみ、同じ映像ピクチャヘッダを参照する映像スライスのタイプを映像ピクチャヘッダに信号通知することを規定する。いくつかの実施形態において、前記フォーマット規則は、同じ映像ピクチャヘッダを参照する映像スライスのタイプが前記映像ピクチャヘッダに信号通知される場合にのみ、参照ピクチャリストを前記映像ピクチャヘッダに信号通知することを規定する。いくつかの実施形態において、ビットストリームにおいて、同じ映像ピクチャヘッダを参照する映像スライスのタイプがBタイプのみであるかどうかを信号通知する。いくつかの実施形態において、ビットストリームにおいて、同じ映像ピクチャヘッダを参照する映像スライスのタイプがPタイプのみであるかどうかを信号通知する。いくつかの実施形態において、ビットストリームにおいて、Bタイプの映像スライスのみが存在し、同じ映像ピクチャヘッダを参照するIタイプの映像スライスのみが信号通知される。いくつかの実施形態において、ビットストリームにおいて、Pタイプの映像スライスのみが存在し、同じ映像ピクチャヘッダを参照するIタイプの映像スライスのみが信号通知される。
【0862】
図8は、本技術に従った映像処理の方法800を示すフローチャートである。方法800は、動作810において、映像スライスを含む映像ピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含む。このビットストリームは、映像スライスのスライスタイプが映像スライスヘッダにおける第1の構文要素の値を決定することを規定するフォーマット規則に準拠する。第1の構文要素は、時間的動きベクトル予測に使用される同一位置に配置されたピクチャの参照インデックスを規定する。
【0863】
いくつかの実施形態において、映像スライスのスライスタイプがBであり、映像スライスを示す映像スライスヘッダにおける第2の構文要素の値が参照ピクチャリスト0と同一位置に配置される場合、第1の構文要素は、参照ピクチャリスト0におけるエントリを参照する。いくつかの実施形態において、前記第1の構文要素は0から(アクティブ参照ピクチャのためのインデックスの数-1)までの範囲内にある。
【0864】
いくつかの実施形態において、映像スライスのスライスタイプがPであり、時間的動きベクトル予測が有効化されている場合、第1の構文要素は、0以上(アクティブ参照ピクチャのインデックスの数-1)の範囲内にある。
【0865】
図9は、本技術に従った映像処理の方法900を示すフローチャートである。方法900は、動作910において、映像スライスを含む映像ピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含む。このビットストリームは、映像スライスのスライスタイプがタイプPであり、時間的動きベクトル予測が有効化されている場合、同一位置に配置された参照ピクチャリストにおける参照ピクチャのための参照ピクチャリサンプリング(RPR)の使用を無効化することを規定するフォーマット規則に準拠する。参照ピクチャは、時間的動きベクトル予測に使用される映像スライスの同一位置に配置されたピクチャの参照インデックスによって示される。
【0866】
いくつかの実施形態において、前記同一位置に配置された参照ピクチャリストは、映像スライスヘッダにおける構文要素に基づいて決定され、この構文要素は、この映像スライスが参照ピクチャリスト0と同一位置に配置されているかどうかを示す。いくつかの実施形態において、映像スライスのスライスタイプがPであり、時間的動きベクトル予測が有効化されている場合、構文要素は1に等しいと推論される。いくつかの実施形態において、前記同一位置に配置された参照ピクチャリストは参照ピクチャリスト0である。
【0867】
図10は、本技術に従った映像処理の方法1000を示すフローチャートである。方法1000は、動作1010において、映像スライスを含む映像ピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含む。このビットストリームは、映像スライスヘッダにおける構文要素が、この映像スライスが参照ピクチャリスト0と同一位置に配置されていないことを示す場合、この映像スライスのスライスタイプはタイプPを排除することを規定するフォーマット規則に準拠する。
【0868】
いくつかの実施形態において、フォーマット規則は、さらに、(1)参照ピクチャリストの情報がビットストリームの映像ピクチャヘッダにあり、(2)時間的動きベクトル予測が映像ピクチャに対して有効化され、(3)映像ピクチャのすべてのコーディングされた映像スライスがタイプBまたはタイプPのスライスタイプを持ち、(4)映像ピクチャが参照ピクチャリスト0と同一位置に配置されていない場合、ビットストリームにおいてスライスタイプの信号通知が省かれることをさらに規定する。いくつかの実施形態において、前記映像スライスのスライスタイプはタイプBであると推論される。
【0869】
図11は、本技術に従った映像処理の方法1100を示すフローチャートである。方法1100は、動作1110において、1つ以上のサブピクチャを含む映像ピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含む。このビットストリームは、映像ピクチャにおけるサブピクチャの数に応答して、コーディングされたレイヤ映像シーケンスにおける1つのサブピクチャの境界をまたいで演算を行うかどうかを示す第1の構文要素を選択的に含めることを規定するフォーマット規則に準拠する。
【0870】
いくつかの実施形態において、前記フォーマット規則は、前記第1の構文要素が前記コーディングされたレイヤ映像シーケンスにおける前記サブピクチャのすべての境界をピクチャ境界として扱うことをさらに示すことを規定する。いくつかの実施形態において、前記動作は、イントラ予測、インター予測またはインループフィルタリング動作のうち少なくとも1つを含んでもよい。いくつかの実施形態において、前記フォーマット規則は、映像ピクチャのサブピクチャの数が1に等しいとき、ビットストリームにおいて構文要素を省略することを規定する。いくつかの実施形態において、前記構文要素の値は1に等しいと推論され、前記サブピクチャの境界を越えてインループフィルタリング動作が行われないことを示す。いくつかの実施形態において、第1の構文要素はシーケンスパラメータセットに含まれる。いくつかの実施形態において、前記第1の構文要素はsps_independent_subpics_flagを含む。
【0871】
いくつかの実施形態において、前記フォーマット規則は、前記コーディングされたレイヤ映像シーケンスにおける前記映像ピクチャのサブピクチャの数が、前記映像ピクチャのサブピクチャを前記変換のための1つ以上のピクチャとして扱うかどうかを示す第2の構文要素を示す方法を決定することをさらに規定し、前記変換においてインループフィルタリング動作が適用されない。いくつかの実施形態において、ピクチャのサブピクチャの数が1に等しいとき、第2の構文要素の値は1に等しいと推論され、映像ピクチャのサブピクチャを変換のためのピクチャとして扱うことを示す。いくつかの実施形態において、ピクチャにおけるサブピクチャの数が1に等しいとき、第2の構文要素の値は1に等しいことが必要であり、映像ピクチャのサブピクチャを変換のためのピクチャとして扱うことを示す。
【0872】
いくつかの実施形態において、前記フォーマット規則は、前記コーディングされたレイヤ映像シーケンスにおける前記映像ピクチャのサブピクチャの数により、1つのサブピクチャの境界を越えてインループフィルタリング動作が有効化されているかどうかを示す第3の構文要素を示す方法を決定することをさらに規定する。いくつかの実施形態において、前記第3の構文要素は前記インループフィルタリング動作が前記サブピクチャの境界を越えて適用可能であるかどうかをさらに示す。いくつかの実施形態において、ピクチャにおけるサブピクチャの数が1に等しいとき、第3の構文要素の値は0に等しいと推論され、インループフィルタ動作がサブピクチャの境界を越えて無効化されることを示す。いくつかの実施形態において、前記第3の構文要素が0に等しいと推論されるとき、前記インループフィルタリング動作は前記サブピクチャの境界を越えて適用できないことをさらに示す。いくつかの実施形態において、ピクチャにおけるサブピクチャの数が1に等しいとき、第3の構文要素の値は0に等しいことが要求され、これは前記サブピクチャの境界を越えてループフィルタ動作が無効化されることを示す。いくつかの実施形態において、前記第3の構文要素が0に等しいことが要求されたとき、前記インループフィルタリング動作は前記サブピクチャの境界を越えて適用できないことをさらに示す。
【0873】
いくつかの実施形態において、サブピクチャの数は構文要素sps_num_subpics_nimus1により示される。いくつかの実施形態において、サブピクチャの数は構文要素one_subpic_per_pic_contraint_flagによって示される。
【0874】
図12は、本技術に従った映像処理の方法1200を示すフローチャートである。方法1200は、動作1210において、1つ以上のサブピクチャを含む映像ピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含む。このビットストリームは、ビットストリームにおける映像ピクチャのサブピクチャの数が、ビットストリームにおける制約フラグによって制約されることを規定するフォーマット規則に準拠する。
【0875】
いくつかの実施形態において、前記制約フラグはone_subpic_per_pic_contraint_flagを含む。いくつかの実施形態において、制約フラグの値が1に等しいとき、サブピクチャの数は1に等しいことが要求される。
【0876】
図13は、本技術に従った映像処理の方法1300を示すフローチャートである。方法1300は、動作1310において、1つ以上のサブピクチャを含む映像ピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含む。このビットストリームは、1つのサブピクチャにおけるスライスの数によって、スライスの幅を示す構文要素を信号通知する方法が決定されることを規定するフォーマット規則に準拠し、このスライスの幅は複数のタイル列として規定される。
【0877】
いくつかの実施形態において、ビットストリームにおいて構文要素を省略し、サブピクチャのスライスの数が1に等しい場合は、スライスの幅を推論する。いくつかの実施形態において、前記スライスの幅は1個のタイルの列であると推論される。
【0878】
図14は、本技術に従った映像処理の方法1400を示すフローチャートである。この方法1400は、動作1410において、制約フラグに基づいて、映像ピクチャにおける1つ以上のサブピクチャの各々が単一のスライスを含むかどうかを規定するフォーマット規則に従って、1つ以上のサブピクチャを含む映像ピクチャを含む映像と、この映像のビットストリームとの変換を行うことを含む。
【0879】
いくつかの実施形態において、構文要素は、映像ピクチャにおける1つ以上のサブピクチャの各々が単一のスライスを含むか否かを示し、制約フラグは、映像ピクチャが2つ以上のタイルまたはスライスに分割されているかどうかを示す。いくつかの実施形態において、1つのスライスは1つの矩形スライスのみを示す。いくつかの実施形態において、制約フラグが映像ピクチャを2つ以上のタイルまたはスライスに分割しないことを示す場合、構文要素は1に等しいと推論される。いくつかの実施形態において、前記制約フラグが前記映像ピクチャにピクチャ分割が適用されないことを示す場合、前記構文要素は1に等しいと推論される。いくつかの実施形態において、制約フラグが映像ピクチャにピクチャ分割を適用しないことを示す場合、ビットストリーム中に構文要素が存在せず、構文要素の値が1に等しいと推論される。いくつかの実施形態において、構文要素は制約フラグに等しいと推論される。
【0880】
いくつかの実施形態において、1つの構文要素は、映像ピクチャにおける1つ以上のサブピクチャの各々が単一のスライスを含むかどうかを示し、制約フラグは、映像ピクチャが単一のスライスを含むかどうかを示し、制約フラグが1に等しい場合は、構文要素は1に等しい。いくつかの実施形態において、1つの構文要素は、映像ピクチャにおける1つ以上のサブピクチャの各々が単一のスライスを含むかどうかを示し、制約フラグは、映像ピクチャが単一のスライスを含むかどうかを示し、制約フラグが1に等しく、かつ単一のスライスが長方形に等しい場合に、構文要素は1に等しい。いくつかの実施形態において、構文要素および制約フラグにより制御されるすべての映像ピクチャは同じピクチャパラメータセットを参照する。
【0881】
図15は、本技術に従った映像処理の方法1500を示すフローチャートである。方法1500は、動作1510において、映像ピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含む。映像ピクチャのうちの少なくとも1つは、1つ以上のサブピクチャを含む。このビットストリームは、変換のサブピクチャサブビットストリーム抽出処理中に、1つ以上の対象となるサブピクチャの出力サブビットストリームを決定するために、異なる映像ピクチャにわたる各対象となるサブピクチャは、同じサブピクチャインデックスを使用することを規定するフォーマット規則に準拠する。
【0882】
いくつかの実施形態において、1つ以上の対象となるサブピクチャのための対象となるサブピクチャインデックス値のリストは、サブピクチャサブビットストリーム抽出処理の入力として使用され、対象となるサブピクチャインデックス値のリストは異なる映像ピクチャ間で同じである。いくつかの実施形態において、サブピクチャサブビットストリーム抽出処理において、異なる映像ピクチャにまたがる1つ以上のサブピクチャ識別子が使用され、1つ以上のサブピクチャ識別子は、対象となるサブピクチャインデックスの同じリストに対応する。いくつかの実施形態において、サブピクチャサブビットストリーム抽出処理において出力サブビットストリームを決定するために使用される対象のサブピクチャは、サブピクチャインデックスに基づいて決定される。
【0883】
いくつかの実施形態において、サブピクチャサブビットストリーム抽出処理において出力サブビットストリームを決定するための構文要素を修正する方法は、サブピクチャインデックスに基づいて決定される。いくつかの実施形態において、前記構文要素を修正する方法は、前記構文要素を書き換えおよび/または削除することを含んでもよい。いくつかの実施形態において、ビットストリームにおいてサブピクチャ識別子マッピングが明示的に信号通知されることを構文要素が示す場合、ピクチャパラメータセットにおいてサブピクチャ識別子マッピングを省略する。いくつかの実施形態において、ビットストリームにおいてサブピクチャ識別子マッピングが明示的に信号通知されることを構文要素が示す場合、サブピクチャ識別子マッピングはピクチャパラメータセットにおいて信号通知される。
【0884】
図16は、本技術に従った映像処理の方法1600を示すフローチャートである。この方法1600は、動作1610において、映像ピクチャを含む映像のビットストリームから1つ以上の対象となるサブピクチャのサブビットストリームを抽出することによって、出力サブビットストリームを決定することを含む。映像ピクチャのうちの少なくとも1つは、1つ以上のサブピクチャを含み、出力サブビットストリームは、1つ以上の対象となるサブピクチャが出力サブビットストリームにおける単一のサブピクチャとして表現されることを規定するフォーマット規則に準拠する。
【0885】
いくつかの実施形態において、前記出力サブビットストリームの1つ以上の構文要素は、前記決定のために書き換えられおよび/または削除される。いくつかの実施形態において、すべての出力レイヤにおいて1つ以上の対象となるサブピクチャを参照する1つ以上の構文要素は、1つ以上の対象となるサブピクチャを出力サブビットストリームにおける単一のサブピクチャとして表すことに応答して、出力サブビットストリームにおいて省略される。いくつかの実施形態において、前記1つ以上の構文要素は、前記サブピクチャをピクチャとして扱うかどうかを示す第1の構文要素を含んでもよい。いくつかの実施形態において、前記第1の構文要素は1に等しいと推論され、前記サブピクチャを1つのピクチャとして扱うことを示す。いくつかの実施形態において、前記1つ以上の構文要素は、前記サブピクチャの境界を越えてループフィルタ動作が有効化されるかどうかを示す第2の構文要素を含む。いくつかの実施形態において、前記第2の構文要素は0に等しいと推論され、前記サブピクチャの境界を越えてループフィルタ動作が無効化されることを示す。
【0886】
いくつかの実施形態において、1つのシーケンスパラメータセットのすべての参照構文構造における第3の構文要素および1つのピクチャパラメータセットのすべての参照構文構造における第4の構文要素を0に修正し、第3の構文要素および第4の構文要素は、1つの映像ピクチャにおけるサブピクチャの数マイナス1を示す。いくつかの実施形態において、前記サブピクチャの境界を越えて演算を行うかどうかを示す第5の構文要素を1に等しく修正する。いくつかの実施形態において、映像ピクチャを分割するかどうかを示す第6の構文要素は、サブビットストリームにおいて参照される構文構造に修正される。いくつかの実施形態において、前記第6の構文要素は前記サブピクチャにおけるタイルまたはスライスの数に基づいて条件付きで修正されてもよい。いくつかの実施形態において、前記サブピクチャが1つのタイルまたはスライスを含む場合、前記第6の構文要素は1に等しく修正され、前記映像ピクチャが分割されていないことを示す。いくつかの実施形態において、サブピクチャにおけるタイルまたはスライスの数が1より大きい場合、第6の構文要素は0に等しく修正され、映像ピクチャが分割されることを示す。
【0887】
図17は、本技術に従った映像処理の方法1700を示すフローチャートである。この方法1700は、動作1710において、瞬時復号更新(IDR)ピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含む。このビットストリームは、IDRピクチャのスライスヘッダに参照ピクチャリストに関連付けられた1つ以上の構文要素が存在することを規定するフォーマット規則に準拠する。
【0888】
いくつかの実施形態において、構文フラグは、1つ以上の構文要素がIDRピクチャのスライスヘッダに存在することを示す。いくつかの実施形態において、構文フラグは1に等しく設定される。
【0889】
いくつかの実施形態において、前記変換は前記映像の2つの入力ビットストリームをマージすることにより出力ビットストリームを決定することを含む。2つの入力ビットストリームのうち1つのネットワーク抽象化レイヤ(NAL)ユニットタイプは、イントラランダムアクセスポイント(IRAP)映像コーディングレイヤ(VCL)NALユニットタイプであり、IDRピクチャの参照ピクチャリストは変換に利用可能である。
【0890】
図18は、本技術に従った映像処理の方法1800を示すフローチャートである。この方法1800は、動作1810において、輝度映像ブロックおよびクロマ映像ブロックを含む映像と、この映像のビットストリームとの変換を行うことを含む。輝度映像ブロックは輝度分割ツリーに従って分割され、クロマ映像ブロックはクロマ分割ツリーに従って分割される。このビットストリームは、輝度分割ツリーを示す輝度ブロック分割情報と、クロマ分割ツリーを示すクロマブロック分割情報と、を含む。このビットストリームは、クロマブロック分割情報と輝度ブロック分割情報とを異なるようにすることを規定する規則に準拠する。
【0891】
いくつかの実施形態において、前記輝度映像ブロックまたは前記クロマ映像ブロックは、コーディングツリーブロック、変換ブロック、ピクチャブロックまたはコーディングブロックを含んでもよい。いくつかの実施形態において、クロマ分割ツリーはクロマデュアルツリーを含み、クロマ映像ブロックの少なくとも1つの分割構造または分割構文要素は、輝度映像ブロックの分割構造または分割構文要素とは異なる。いくつかの実施形態において、前記輝度分割ツリーはローカルデュアルツリーを含むことができ、前記クロマ映像ブロックの少なくとも1つの分割構造または分割構文要素は前記輝度映像ブロックの分割構造または分割構文要素とは異なる。
【0892】
図19は、本技術に従った映像処理の方法1900を示すフローチャートである。方法1900は、動作1910において、1つ以上のサブピクチャを含む映像ピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含む。このビットストリームは、一般的な制約情報を含む構文要素の制約フラグに基づいて、1つ以上の構文構造を制約することを規定するフォーマット規則に準拠する。
【0893】
いくつかの実施形態において、制約フラグは、映像パラメータセットによって規定される1つ以上の出力レイヤセット内の各映像ピクチャが単一のタイルを含むかどうかを示すone_tile_per_pic_constraint_flagを有し、1つ以上の構文構造は、one_tile_per_constraint_flagが1に等しい場合に1に制約されるピクチャ内のタイルの数を示す第1の構文構造NumTilesInPicを有する。いくつかの実施形態において、前記制約フラグは、1つの映像パラメータセットで規定される1つ以上の出力レイヤセットにおける各映像ピクチャが1つのスライスを含むかどうかを示すone_slice_per_pic_constraint_flagを含み、1つ以上の構文構造は、各映像ピクチャにおける矩形スライスの数から1を減算したものを示す第2の構文要素num_slices_in_pic_minus1を含む。いくつかの実施形態において、one_slice_per_pic_constraint_flagが1に等しく、かつ映像ピクチャにおける矩形スライスの使用を示す別の構文要素rect_slice_flagが1に等しいとき、第2の構文要素num_slices_in_pic_minus1は0に制約される。いくつかの実施形態において、one_slice_per_pic_constraint_flagが1に等しく、映像ピクチャにおける矩形スライスの使用を示す別の構文要素rect_slice_flagが0に等しい場合に、ビットストリームの各スライスヘッダの第2の構文要素num_slices_in_pic_minus1は、映像ピクチャのタイルの数から1を除いた数に等しいように制約される。
【0894】
いくつかの実施形態において、制約フラグは、映像ピクチャが単一のサブピクチャを含むかどうかを示すone_subpic_per_pic_constraintフラグを有し、1つ以上の構文要素は、one_subpic_per_pic_constraintが1に等しい場合に0に制約される映像ピクチャ内のサブピクチャの数を示す第3の構文要素sps_num_subpics_minus1を有する。いくつかの実施形態において、制約フラグは、映像パラメータセットによって規定される1つ以上の出力レイヤセット内のすべてのピクチャのsps_subpic_info_present_flagが0に等しいかどうかを示すフラグを含み、1つ以上の構文構造は、one_subpic_per_pic_constraintが1に等しい場合に0とするように制約される映像ピクチャ内のサブピクチャの数を示す第3の構文要素sps_num_subpics_minus1をむ。いくつかの実施形態において、sps_subpic_info_present_flagが0に等しい場合、各映像ピクチャは1つのサブピクチャを含み、サブピクチャ情報が存在しないことを示す。
【0895】
いくつかの実施形態において、1つ以上の構文要素は、スライスパラメータセット、映像パラメータセット、ピクチャパラメータセット、ピクチャヘッダまたはスライスヘッダ内にある。いくつかの実施形態において、前記1つ以上の構文要素は、コーディングツールが有効化されるかどうかを示す構文フラグを含む。いくつかの実施形態において、構文フラグは、制約フラグが1に等しい場合は、コーディングツールが無効化されていることを示す0に制約される。いくつかの実施形態において、構文フラグは制約フラグに基づいてオーバーライドされる。
【0896】
いくつかの実施形態において、構文フラグがビットストリームに存在するかどうかは、制約フラグに基づく。いくつかの実施形態において、制約フラグが1に等しいとき、ビットストリームにおいて構文フラグが省略される。いくつかの実施形態において、前記構文フラグは0に等しいと推論され、前記コーディングツールが無効化されることを示す。
【0897】
いくつかの実施形態において、前記制約フラグは、コーディングされたレイヤ映像シーケンス(CLVS)において解像度の変化がないことを意味し、前記1つ以上の構文要素は、CLVSにおいて解像度の変化が許可されるかどうかを示すシーケンスパラメータセットにおける第1の構文要素を含む。いくつかの実施形態において、制約フラグが1に等しいとき、ビットストリームにおいて第1の構文要素を省略する。いくつかの実施形態において、前記第1の構文要素は0に等しいと推論され、前記CLVSにおいて前記解像度変更が許可されないことを示す。
【0898】
いくつかの実施形態において、前記1つ以上の構文要素は、スケーリングウィンドウオフセットパラメータを示す第2の構文要素をさらに含み、前記第2の構文要素が前記ビットストリームに存在するかどうかは、少なくとも前記制約フラグまたは前記第1の構文要素に基づく。いくつかの実施形態において、CLVSにおいて解像度変更が許可されないことを示す、第1の構文要素が0に等しい場合は、ビットストリームにおいて第2の構文要素を省略する。いくつかの実施形態において、CLVSの解像度が変化しないことを示す、制約フラグが1に等しい場合、ビットストリームにおいて第2の構文要素を省略する。いくつかの実施形態において、前記第2の構文要素は0に等しいと推論される。
【0899】
いくつかの実施形態において、制約フラグは、映像ピクチャが単一のスライスを含むかどうかを示すone_slice_per_pic_constraintフラグを有し、1つ以上の構文要素は、映像ピクチャが単一のサブピクチャを含むかどうかを示す構文フラグone_subpic_per_pic_constraint_flagを含む。いくつかの実施形態において、ビットストリームにおいて、制約フラグが1に等しい場合は、構文フラグone_subpic_per_pic_constraint_flagを省略することができ、構文フラグは1に等しいと推論され、1つの映像ピクチャが1つのサブピクチャを含むことを示す。いくつかの実施形態において、構文フラグone_subpic_per_pic_constraint_flagは、制約フラグが0に等しい場合、ビットストリームに含まれる。いくつかの実施形態において、制約フラグは変換スキップが変換に許可されないかどうかを示すno_transform_skip_constraint_flagを含み、前記1つ以上の構文要素は、ブロック差動パルス符号変調(BDPCM)コーディングツールが許可されないかどうかを示す構文フラグno_bdpcm_constraint flagを含む。いくつかの実施形態において、制約フラグが、変換スキップが許可されないことを示す、1に等しい場合は、構文フラグは、BDPCMコーディングツールが許可されないことを示す1に制約される。いくつかの実施形態において、制約フラグが、変換スキップが許可されないことを示す1に等しい場合、ビットストリームにおいて構文フラグを省略する。いくつかの実施形態において、構文フラグは、BDPCMコーディングツールが許可されないことを示す1に等しいと推論される。
【0900】
いくつかの実施形態において、ビットストリーム中に制約フラグが存在するかどうかは、構文構造中の少なくとも1つの他の制約フラグに基づく。いくつかの実施形態において、前記少なくとも1つの他の制約フラグは制約グループフラグと定義される。いくつかの実施形態において、映像のプロファイルのコーディングツールのタイプに基づいて複数の制約フラグをグループ分けすることができる。いくつかの実施形態において、1つのグループにおける制約フラグの値は、対応する制約グループフラグに基づいて決定される。いくつかの実施形態において、ビットストリームに制約フラグが存在するかどうかは、対応する制約グループフラグに基づいて決定される。いくつかの実施形態において、ビットストリームにおいて制約フラグが省略されている場合、制約フラグは0に等しいと推論される。
【0901】
いくつかの実施形態において、前記変換は、前記映像を前記ビットストリームに符号化することを含む。いくつかの実施形態において、前記変換は前記ビットストリームから前記映像を復号することを含む。
【0902】
本明細書では、「映像処理」という用語は、映像符号化、映像復号化、映像圧縮、または映像展開を指すことができる。例えば、映像圧縮アルゴリズムは、映像の画素表現から対応するビットストリーム表現への変換、またはその逆の変換中に適用されてもよい。現在の映像ブロックのビットストリーム(コーディング)表現は、例えば、構文によって規定されるように、ビットストリーム内の同じ場所または異なる場所に拡散されるビットに対応していてもよい。例えば、1つのマクロブロックは、変換およびコーディングされた誤り残差値の観点から、且つビットストリームにおけるヘッダおよび他のフィールドにおけるビットを使用して、コーディングされてもよい。さらに、映像エンコーダは、記述されたフォーマット規則に従って、符号化演算によって生成されたコーディング表現がこのフォーマットに準拠するように符号化演算を行ってもよい。同様に、デコーダは、フォーマット規則の知識(例えば、フォーマット規則に従って規定のフィールドの有無を予想するかどうか)でコーディング表現を構文解析し、復号演算を行って映像画素値を生成してもよい。
【0903】
本明細書に記載された開示された、およびその他の解決策、実施例、実施形態、モジュール、および機能動作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実施してもよい。開示された、およびその他の実施形態は、1または複数のコンピュータプログラム製品、すなわち、データ処理装置によって実装されるため、またはデータ処理装置の動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1または複数のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの1または複数の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサ、若しくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1または複数の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成した信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報を符号化するために生成される。
【0904】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、コンポーネント、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1または複数のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1または複数のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。1つのコンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開することも可能である。
【0905】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブル処理装置によって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0906】
コンピュータプログラムの実行に適した処理装置は、例えば、汎用および専用マイクロ処理装置の両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上の処理装置を含む。一般的に、処理装置は、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するための処理装置と、命令およびデータを記憶するための1または複数のメモリデバイスとである。一般的に、コンピュータは、データを記憶するための1または複数の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュ記憶装置、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスク等の半導体記憶装置を含む。処理装置およびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0907】
本特許明細書は多くの詳細を含むが、これらは、任意の主題の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態のコンテキストで説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテキストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0908】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムの構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0909】
いくつかの実装形態および例のみが記載されており、この特許文献に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。
【手続補正書】
【提出日】2022-08-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
映像データを処理する方法であって、
1つ以上のサブピクチャを含む映像ピクチャを含む映像と前記映像のビットストリームとの間で変換を行うことを含み、
前記ビットストリームは、フォーマット規則に準拠し、
前記フォーマット規則は、一般的な制約情報の1つ以上の制約フラグに基づいて、1つ以上の構文要素が制約されることを規定し、
前記1つ以上の制約フラグは、出力レイヤセットの各映像ピクチャが1つのスライスのみを含むかどうかを示す第1の制約フラグを含み、前記1つ以上の構文要素は、前記出力レイヤセットの各スライスヘッダに存在し1を加えたものがスライス内のタイルの数を示す第1の構文要素を含み、かつ、
前記第1の制約フラグが1に等しく、各映像ピクチャに対して矩形スライスが使用中であるかどうかを示す第2の構文要素が0に等しい場合、前記第1の構文要素は、変数から1を引いた値に等しくなるように制約され、
前記変数は、映像ピクチャ内のタイルの数を示し、
1に等しい前記第1の制約フラグは、各映像ピクチャが1つだけのスライスを含むことを示し、0に等しい前記第2の構文要素は、各映像ピクチャに対して矩形スライスが使用中ではないことを示す、
方法。
【請求項2】
前記1つ以上の構文要素は、さらに、1を加えたものが各映像ピクチャにおける矩形スライスの数を示す第3の構文要素を含み、
前記第3の構文要素は、前記第1の制約フラグが1に等しく前記第2の構文要素が1に等しい場合、0に等しくなるように制約され、
1に等しい前記第2の構文要素は、前記矩形スライスが各映像ピクチャに対して使用中であることを示す、
請求項1に記載の方法。
【請求項3】
前記出力レイヤセット内の各映像ピクチャが1つのタイルのみを含むかどうかを示す第2の制約フラグが1に等しい場合、前記変数は、1に等しくなるように制約され、
1に等しい前記第2の制約フラグは、前記出力レイヤセット内の各映像ピクチャが1つのタイルのみを含むことを示す、
請求項1または2に記載の方法。
【請求項4】
前記1つ以上の制約フラグは、さらに、映像ピクチャが1つのサブピクチャのみを含むかどうかおよびサブピクチャ情報が存在するかどうかを示す第3の制約フラグを含み、
前記1つ以上の構文要素は、さらに、1を加えたものが前記映像ピクチャ内のサブピクチャの数を示す第4の構文要素を含み、
前記第4の構文要素は、前記第3の制約フラグが1に等しい場合に0になるように制約され、1に等しい前記第3の制約フラグは、前記映像ピクチャが1つのサブピクチャのみを含み、前記サブピクチャ情報が存在しないことを示す、
請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記変換は、前記映像を前記ビットストリームに符号化することを含む、
請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記変換は、前記ビットストリームから前記映像を復号することを含む、
請求項1~4のいずれか1項に記載の方法。
【請求項7】
処理装置と、命令を有する非一時的メモリと、を含む映像データを処理する装置であって、
前記命令は、前記処理装置による実行時に、前記処理装置に、
1つ以上のサブピクチャを含む映像ピクチャを含む映像と前記映像のビットストリームとの間で変換を行うこと、を実行させ、
前記ビットストリームは、フォーマット規則に準拠し、
前記フォーマット規則は、一般的な制約情報の1つ以上の制約フラグに基づいて、1つ以上の構文要素が制約されることを規定し、
前記1つ以上の制約フラグは、出力レイヤセットの各映像ピクチャが1つのスライスのみを含むかどうかを示す第1の制約フラグを含み、前記1つ以上の構文要素は、前記出力レイヤセットの各スライスヘッダに存在し1を加えたものがスライス内のタイルの数を示す第1の構文要素を含み、かつ、
前記第1の制約フラグが1に等しく、各映像ピクチャに対して矩形スライスが使用中であるかどうかを示す第2の構文要素が0に等しい場合、前記第1の構文要素は、変数から1を引いた値に等しくなるように制約され、
前記変数は、映像ピクチャ内のタイルの数を示し、
1に等しい前記第1の制約フラグは、各映像ピクチャが1つだけのスライスを含むことを示し、0に等しい前記第2の構文要素は、各映像ピクチャに対して矩形スライスが使用中ではないことを示す、
装置。
【請求項8】
命令を記憶する非一時的なコンピュータ可読記憶媒体であって、
前記命令は、処理装置に、
1つ以上のサブピクチャを含む映像ピクチャを含む映像と前記映像のビットストリームとの間で変換を行うこと、を実行させ、
前記ビットストリームは、フォーマット規則に準拠し、
前記フォーマット規則は、一般的な制約情報の1つ以上の制約フラグに基づいて、1つ以上の構文要素が制約されることを規定し、
前記1つ以上の制約フラグは、出力レイヤセットの各映像ピクチャが1つのスライスのみを含むかどうかを示す第1の制約フラグを含み、前記1つ以上の構文要素は、前記出力レイヤセットの各スライスヘッダに存在し1を加えたものがスライス内のタイルの数を示す第1の構文要素を含み、かつ、
前記第1の制約フラグが1に等しく、各映像ピクチャに対して矩形スライスが使用中であるかどうかを示す第2の構文要素が0に等しい場合、前記第1の構文要素は、変数から1を引いた値に等しくなるように制約され、
前記変数は、映像ピクチャ内のタイルの数を示し、
1に等しい前記第1の制約フラグは、各映像ピクチャが1つだけのスライスを含むことを示し、0に等しい前記第2の構文要素は、各映像ピクチャに対して矩形スライスが使用中ではないことを示す、
非一時的なコンピュータ可読記憶媒体。
【請求項9】
映像処理装置によって実行される方法によって生成される映像のビットストリームを記憶する非一時的なコンピュータ可読記録媒体であって、
前記方法は、
1つ以上のサブピクチャを含む映像ピクチャを含む映像のビットストリームを生成することを含み、
前記ビットストリームは、フォーマット規則に準拠し、
前記フォーマット規則は、一般的な制約情報の1つ以上の制約フラグに基づいて、1つ以上の構文要素が制約されることを規定し、
前記1つ以上の制約フラグは、出力レイヤセットの各映像ピクチャが1つのスライスのみを含むかどうかを示す第1の制約フラグを含み、前記1つ以上の構文要素は、前記出力レイヤセットの各スライスヘッダに存在し1を加えたものがスライス内のタイルの数を示す第1の構文要素を含み、かつ、
前記第1の制約フラグが1に等しく、各映像ピクチャに対して矩形スライスが使用中であるかどうかを示す第2の構文要素が0に等しい場合、前記第1の構文要素は、変数から1を引いた値に等しくなるように制約され、
前記変数は、映像ピクチャ内のタイルの数を示し、
1に等しい前記第1の制約フラグは、各映像ピクチャが1つだけのスライスを含むことを示し、0に等しい前記第2の構文要素は、各映像ピクチャに対して矩形スライスが使用中ではないことを示す、
非一時的なコンピュータ可読記録媒体。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0001
【補正方法】変更
【補正の内容】
【0001】
関連出願の相互参照
本願は、2021年2月10日出願の国際特許出願第PCT/CN2021/076552号に基づくものであり、2020年2月14日出願の国際特許出願第PCT/CN2020/075194号の優先権および利益を主張する。前述のすべての特許出願は、参照することによりその全体が本明細書に組み込まれる。
【国際調査報告】