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

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

▶ ベイジン バイトダンス ネットワーク テクノロジー カンパニー リミテッドの特許一覧 ▶ バイトダンス インコーポレイテッドの特許一覧

特許7575475アフィンマージおよびアフィン動きベクトル予測モードの予測微調整
<>
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図1
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図2
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図3
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図4
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図5
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図6
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図7
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図8
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図9
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図10
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図11
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図12
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図13
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図14
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図15
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図16
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図17
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図18
  • 特許-アフィンマージおよびアフィン動きベクトル予測モードの予測微調整 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】アフィンマージおよびアフィン動きベクトル予測モードの予測微調整
(51)【国際特許分類】
   H04N 19/119 20140101AFI20241022BHJP
   H04N 19/159 20140101ALI20241022BHJP
   H04N 19/176 20140101ALI20241022BHJP
   H04N 19/52 20140101ALI20241022BHJP
【FI】
H04N19/119
H04N19/159
H04N19/176
H04N19/52
【請求項の数】 12
(21)【出願番号】P 2022557167
(86)(22)【出願日】2021-03-23
(65)【公表番号】
(43)【公表日】2023-05-01
(86)【国際出願番号】 CN2021082243
(87)【国際公開番号】W WO2021190465
(87)【国際公開日】2021-09-30
【審査請求日】2022-10-07
(31)【優先権主張番号】PCT/CN2020/080602
(32)【優先日】2020-03-23
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】ドン ジピン
(72)【発明者】
【氏名】ジャン リー
(72)【発明者】
【氏名】ワン イェクイ
(72)【発明者】
【氏名】ジャン カイ
(72)【発明者】
【氏名】シュー ジジョン
【審査官】久保 光宏
(56)【参考文献】
【文献】Jianle Chen, et al.,"Algorithm description for Versatile Video Coding and Test Model 8 (VTM 8)",Document: JVET-Q2002-v2, [online],JVET-Q2002 (version 2),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2020年03月03日,Pages 1,7,8,39-50,[令和6年3月27日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=9676> and <URL: https://jvet-experts.org/doc_end_user/documents/17_Brussels/wg11/JVET-Q2002-v2.zip>.,(See document file "JVET-Q2002-v2.docx" in the zip file "JVET-Q2002-v2.zip".)
【文献】Benjamin Bross, et al.,"Versatile Video Coding (Draft 8)",Document: JVET-Q2001-vE, [online],JVET-Q2001 (version 15),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2020年03月12日,Pages 39-44,70-75,108,160,161,270-288,[令和5年8月24日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=9675> and <URL: https://jvet-experts.org/doc_end_user/documents/17_Brussels/wg11/JVET-Q2001-v15.zip>.,(See document file "JVET-Q2001-vE.docx" in the zip file "JVET-Q2001-v15.zip".)
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
映像の現在の映像ブロックと前記映像のビットストリームとの変換について、規則に従って、前記現在の映像ブロックに対応する予測ブロックのサイズを決定することと、
前記決定することに基づいて、前記変換を行うことと、
を含む映像データ処理方法であって、
アフィンマージモードが前記現在の映像ブロックに対して有効化され、
前記規則は、前記予測ブロックの第1のサイズを、オプティカルフロー技術を使用する予測微調整が前記現在の映像ブロックに対して有効化されているかどうかに呼応して決定することを規定し、前記現在の映像ブロックは、第2のサイズを有し、
前記予測ブロックの前記第1のサイズの第1の幅および第1の高さが、それぞれ(M+M0)および(N+N0)によって示され、前記現在の映像ブロックの前記第2のサイズの第2の幅および第2の高さが、それぞれMおよびNによって示され、M、M0、NおよびN0は、0以上の整数であり、
オプティカルフロー技術を使用する前記予測微調整を利用するかどうかを示す予測微調整有用性フラグが、M0およびN0の値を制御し、
M0およびN0の前記値は、アフィンフラグから独立して決定される、
映像データ処理方法。
【請求項2】
オプティカルフロー技術を使用する前記予測微調整は前記現在の映像ブロックに対して有効化されている場合には、M0およびN0のうちの少なくとも1つが0に等しくない、
請求項に記載の映像データ処理方法。
【請求項3】
M0およびN0は両方とも2に等しい、
請求項に記載の映像データ処理方法。
【請求項4】
前記アフィンフラグは、アフィン動きベクトル予測モードを適用するかどうかを示すために使用されるinter_affine_flagである、
請求項に記載の映像データ処理方法。
【請求項5】
前記アフィン動きベクトル予測モードが適用される映像ブロックについて、前記映像ブロックの予測ブロックのサイズが、前記第1のサイズに等しい、
請求項に記載の映像データ処理方法。
【請求項6】
前記予測ブロックの予測サンプルが、predSamplesLX[xL][yL]として存在し、xLは、0~M+1であり、yLは、0~N+1であり、
前記予測サンプルpredSamplesLX[xL][yL]は、xLが0に等しい、xLがM+1に等しい、yLが0に等しい、およびyLがN+1に等しい、という条件のうちの1つ以上が真であるために、輝度整数サンプルフェッチ処理を呼び出すことによって導出され、
前記予測サンプルpredSamplesLX[xL][yL]は、すべての条件が偽であるために、輝度サンプル8タップ補間フィルタリング処理を呼び出すことによって導出される、
請求項に記載の映像データ処理方法。
【請求項7】
前記アフィンマージモードは、空間的近傍コーディングユニットの動き情報に基づいて構築されるサブブロックマージ候補リストからアフィンマージ候補を選択すべく、インデックスを使用することにより制御点動きベクトルを生成すること、を含む、
請求項1から請求項のいずれか1項に記載の映像データ処理方法。
【請求項8】
前記変換を行うことは、前記映像を前記ビットストリームに符号化することを含む、
請求項1から請求項のいずれか1項に記載の映像データ処理方法。
【請求項9】
前記変換を行うことは、前記ビットストリームから前記映像を復号することを含む、
請求項1から請求項のいずれか1項に記載の映像データ処理方法。
【請求項10】
プロセッサと命令を備える非一時的メモリとを含む映像データ処理装置であって、
前記命令は前記プロセッサによって実行されると、前記プロセッサに、
映像の現在の映像ブロックと前記映像のビットストリームとの変換について、規則に従って、前記現在の映像ブロックに対応する予測ブロックのサイズを決定することと、
前記決定することに基づいて変換を行うことと、を行わせ、
アフィンマージモードが前記現在の映像ブロックに対して有効化され、前記規則は、前記予測ブロックの第1のサイズを、オプティカルフロー技術を使用する予測微調整が前記現在の映像ブロックに対して有効化されているかどうかに呼応して決定することを規定し、前記現在の映像ブロックは、第2のサイズを有し、
前記予測ブロックの前記第1のサイズの第1の幅および第1の高さが、それぞれ(M+M0)および(N+N0)によって示され、前記現在の映像ブロックの前記第2のサイズの第2の幅および第2の高さが、それぞれMおよびNによって示され、M、M0、NおよびN0は、0以上の整数であり、
オプティカルフロー技術を使用する前記予測微調整を利用するかどうかを示す予測微調整有用性フラグが、M0およびN0の値を制御し、
M0およびN0の前記値は、アフィンフラグから独立して決定される、
映像データ処理装置。
【請求項11】
命令を記憶する非一時的なコンピュータ可読記憶媒体であって、
前記命令は、プロセッサに、
映像の現在の映像ブロックと前記映像のビットストリームとの変換について、規則に従って、前記現在の映像ブロックに対応する予測ブロックのサイズを決定することと、
前記決定することに基づいて前記変換を行うことと、を行わせ、
アフィンマージモードが前記現在の映像ブロックに対して有効化され、前記規則は、前記予測ブロックの第1のサイズを、オプティカルフロー技術を使用する予測微調整が前記現在の映像ブロックに対して有効化されているかどうかに呼応して決定することを規定し、前記現在の映像ブロックは、第2のサイズを有し、
前記予測ブロックの前記第1のサイズの第1の幅および第1の高さが、それぞれ(M+M0)および(N+N0)によって示され、前記現在の映像ブロックの前記第2のサイズの第2の幅および第2の高さが、それぞれMおよびNによって示され、M、M0、NおよびN0は、0以上の整数であり、
オプティカルフロー技術を使用する前記予測微調整を利用するかどうかを示す予測微調整有用性フラグが、M0およびN0の値を制御し、
M0およびN0の前記値は、アフィンフラグから独立して決定される、
非一時的なコンピュータ可読記憶媒体。
【請求項12】
映像のビットストリームを記憶する方法であって、前記方法は、
前記映像の現在の映像ブロックに対して、規則に従って、前記現在の映像ブロックに対応する予測ブロックのサイズを決定することと、
前記決定することに基づいて前記ビットストリームを生成することと、
非一時的なコンピュータ可読記録媒体に前記ビットストリームを記憶することと、を含み、
アフィンマージモードが前記現在の映像ブロックに対して有効化され、前記規則は、前記予測ブロックの第1のサイズを、オプティカルフロー技術を使用する予測微調整が前記現在の映像ブロックに対して有効化されているかどうかに呼応して決定することを規定し、前記現在の映像ブロックは、第2のサイズを有し、
前記予測ブロックの前記第1のサイズの第1の幅および第1の高さが、それぞれ(M+M0)および(N+N0)によって示され、前記現在の映像ブロックの前記第2のサイズの第2の幅および第2の高さが、それぞれMおよびNによって示され、M、M0、NおよびN0は、0以上の整数であり、
オプティカルフロー技術を使用する前記予測微調整を利用するかどうかを示す予測微調整有用性フラグが、M0およびN0の値を制御し、
M0およびN0の前記値は、アフィンフラグから独立して決定される、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2020年3月23日出願の国際特許出願第PCT/CN2020/080602号の優先権と利益を主張する、2021年3月23日出願の国際特許出願第PCT/CN2021/082243号に基づく。前述の特許出願はすべて、参照によりその全体が本明細書に組み込まれる。
【0002】
この特許明細書は、画像および映像のコーディングおよび復号に関する。
【背景技術】
【0003】
デジタル映像は、インターネットおよび他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像を受信および表示することが可能である接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
本願は、コーディングされた表現の復号に有用な制御情報を使用して、映像のコーディングされた表現を処理するために、映像エンコーダおよびデコーダにより使用され得る技術を開示する。
【0005】
1つの例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のスライスを備えるピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、この変換は、ピクチャパラメータセットを参照する1つ以上のスライスにデブロッキングフィルタを適用するかどうかが、ピクチャパラメータセットに含まれる第1の構文要素に少なくとも基づくことを規定する規則に準拠し、第1の構文要素は、このピクチャに対してデブロッキングフィルタが無効化されているかどうかを示す。
【0006】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のスライスを備えるピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、この変換は、ピクチャパラメータセットを参照する1つ以上のスライスにデブロッキングフィルタを適用するかどうかが、ピクチャパラメータセットに含まれる、デブロッキングフィルタを無効化するかどうかを示す構文要素のみに基づくことを規定する規則に準拠する。
【0007】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、このビットストリームは、規則に準拠しており、この規則は、スライスレベルでの第1の構文要素の第1の値またはピクチャレベルでの第2の構文要素の第2の値に基づいて、スライスまたはピクチャに対するデブロッキング動作をオーバーライドするかどうかを決定することを規定し、規則は、スライスヘッダにおける第1の構文要素が存在しないことに呼応して、第1の構文要素の第1の値は、ピクチャレベルでの第2の構文要素の第2の値に依存せずに決定されることを規定する。
【0008】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、このビットストリームは、規則に準拠しており、この規則は、スライスレベルでの第1の構文要素の第1の値またはピクチャレベルでの第2の構文要素の第2の値に基づいて、デブロッキングパラメータをスライスヘッダまたはピクチャヘッダに含むかどうかを規定し、規則は、スライスヘッダに第1の構文要素が存在しないことに呼応して、第1の構文要素の第1の値は、ピクチャレベルでの第2の構文要素の第2の値に依存せずに決定されることを規定する。
【0009】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、このビットストリームは、第1の構文要素および第2の構文要素をそれぞれピクチャヘッダおよびスライスヘッダに含めるかどうか、または推測されるかどうかが、ピクチャパラメータセットの第3の構文要素の値に基づくことを規定するフォーマット規則に準拠しており、第1の構文要素は、映像のピクチャレベルでデブロッキングフィルタが無効化されているかどうかを示し、第2の構文要素は、映像のスライスレベルでデブロッキングフィルタが無効化されているかどうかを示し、第3の構文要素は、デブロッキングフィルタがピクチャパラメータセットを参照する1つ以上のピクチャに対して有効化されるかどうかを示す。
【0010】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、この変換は、デブロッキングフィルタをスライスに適用するかどうかが、スライスヘッダおよび/またはピクチャヘッダおよび/またはスライスが参照するピクチャパラメータセットに含まれる構文要素に基づくことを規定する規則に準拠しており、前記構文要素は、前記デブロッキングフィルタがピクチャパラメータセットレベルおよび/またはスライスレベルおよび/またはピクチャレベルで有効化されるかどうかを示す。
【0011】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、この変換は、デブロッキングフィルタをスライスに適用するかどうかが、このスライスが参照するシーケンスパラメータセットに含まれる構文要素に基づくことを規定する規則に準拠しており、構文要素は、デブロッキングフィルタが有効化されたかどうかを示す第1の構文要素、および/またはデブロッキングフィルタのパラメータの第1のセットを示す構文要素のセットを含む。
【0012】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、この変換は、デブロッキングフィルタをスライスに適用するかどうかは、映像ユニットレベルに含まれる非バイナリ構文要素に基づくことを規定する規則に準拠しており、この非バイナリ構文要素は、デブロッキングフィルタを1つ以上のスライスに適用するかどうか、および/またはどのようにデブロッキングフィルタを1つ以上のスライスに適用するかを示す。
【0013】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のスライスを備える1つ以上のピクチャを含む映像と、この映像のビットストリームとの変換を行うことを含み、この変換は、以下を規定する規則に準拠する。(1)デブロッキングフィルタは、映像のピクチャレベルまたは映像のスライスレベルで有効化されることと、(2)ベータおよびtCの0値デブロッキングパラメータオフセットをデブロッキングフィルタのパラメータに使用すること。
【0014】
別の例示的な態様において、映像処理方法が開示される。この方法は、映像の映像ブロックと映像のビットストリームとの変換のために、規則に従って、この映像ブロックに対応する予測ブロックのサイズを決定することと、この決定に基づいて、変換を行うことと、を含み、この規則は、予測ブロックの第1のサイズは、オプティカルフロー技術を使用した予測微調整を映像ブロックをコードディングするために使用するかどうかに呼応して決定することを規定し、この映像ブロックは、第2のサイズを有し、アフィンマージモードまたはアフィン高度動きベクトル予測モードを使用してコーディングされる。
【0015】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、規則は、第1の構文要素がピクチャレベルまたはスライスレベルよりも高い映像レベルで示されることを規定し、この第1の構文要素がピクチャレベルまたはスライスレベルが量子化パラメータデルタを含むかどうかを示すことを規定する。
【0016】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、第1の規則は、第1の映像レベルの第1のフラグが1つ以上の彩度量子化パラメータオフセットを第1の映像レベルに含めるかどうかを示すことを規定し、この第1の映像レベルは、スライスレベルより高く、第2の規則は、第2の映像レベルの第2のフラグが1つ以上の彩度量子化パラメータオフセットをピクチャヘッダまたはスライスヘッダに含めるかどうかを示すことを規定し、この第2の映像レベルは、ピクチャレベルより高い。
【0017】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、このビットストリームは、コーディングブロック細分割値を示す第1の構文要素を含み、このコーディングブロック細分割値は、規則に従った範囲を有する。
【0018】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上の映像スライスを備える1つ以上の映像ピクチャを含む映像の変換を行うことを含み、この変換は、映像ピクチャパラメータセットを参照する1つ以上の映像スライスへのデブロッキングフィルタの適用可能性に関する決定は、対応する映像ピクチャのピクチャヘッダに含まれるデブロッキング構文フィールドに基づいて行われることを規定する第1の規則に準拠している。
【0019】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、1つ以上の映像スライスを備える1つ以上の映像ピクチャを含む映像の変換を行うことを含み、この変換は、映像スライスのスライスヘッダレベルおよび/またはピクチャヘッダレベルおよび/またはピクチャパラメータセットレベルに含まれるフィールドに基づく映像スライスへのデブロッキングフィルタの適用可能性に対する制約を規定する規則に準拠する。
【0020】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、第1の規則に基づくアフィン高度動きベクトル予測子コーディングまたは第2の規則に基づくアフィンマージモードを含むオプティカルフロー(PROF)コーディングに従って予測微調整の適用可能性について決定することと、この決定に従って、映像の映像ブロックと、前記この映像のコーディングされた表現との変換を行うことと、を含む。
【0021】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のコーディングされた表現との変換を行うことを含み、ピクチャレベル、またはスライスレベルの第1の構文要素および/または、量子化パラメータデルタまたはオフセット信号通知を示す別のレベルの第2の構文要素は、規則に従って、コーディングされた表現に条件付きで含まれる。
【0022】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、1つ以上のスライスを含む1つ以上のピクチャを含む映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、規則に従った範囲のコーディングブロック細分割値(cbSubDiv)を示す構文要素を含む。
【0023】
さらに別の例示的な態様において、映像エンコーダ装置が開示される。この映像エンコーダは、上述した方法を実装するように構成されたプロセッサを備える。
【0024】
さらに別の例示的な態様において、映像デコーダ装置が開示される。この映像デコーダは、上述した方法を実装するように構成されたプロセッサを備える。
【0025】
さらに別の例示的な態様では、コードが記憶されたコンピュータ可読媒体が開示される。このコードは、本明細書に記載の方法の1つをプロセッサが実行可能なコードの形式で実施する。
【0026】
これらのおよび他の特徴は、本文書全体にわたって説明される。
【図面の簡単な説明】
【0027】
図1】映像処理システム例を示すブロック図である。
図2】映像処理装置のブロック図である。
図3】映像処理方法の一例を示すフローチャートである。
図4】本開示のいくつかの実施形態による映像コーディングシステムを示すブロック図である。
図5】本発明のいくつかの実施形態によるエンコーダを示すブロック図である。
図6】本発明のいくつかの実施形態によるデコーダを示すブロック図である。
図7】映像処理の方法の例を示すフローチャートである。
図8】映像処理の方法の例を示すフローチャートである。
図9】映像処理の方法の例を示すフローチャートである。
図10】映像処理の方法の例を示すフローチャートである。
図11】映像処理の方法の例を示すフローチャートである。
図12】映像処理の方法の例を示すフローチャートである。
図13】映像処理の方法の例を示すフローチャートである。
図14】映像処理の方法の例を示すフローチャートである。
図15】映像処理の方法の例を示すフローチャートである。
図16】映像処理の方法の例を示すフローチャートである。
図17】映像処理の方法の例を示すフローチャートである。
図18】映像処理の方法の例を示すフローチャートである。
図19】映像処理の方法の例を示すフローチャートである。
【発明を実施するための形態】
【0028】
本明細書では、理解を容易にするために章の見出しを使用しており、その技術および各章に記載された実施形態の適用可能性をその章のみに限定するものではない。さらに、H.266という用語は、ある説明において、理解を容易にするためだけに用いられ、開示される技術の範囲を限定するために用いられたものではない。このように、本明細書で説明される技術は、他の映像コーデックプロトコルおよび設計にも適用可能である。
【0029】
1.導入
本明細書は、映像コーディング技術に関する。具体的には、デブロッキング信号通知、QPデルタ/オフセット信号通知、量子化グループを規定するcbSubdiv値、および映像コーディングにおけるPROF処理のサポートに関する。この考えは、個々に又は様々な組み合わせで、マルチレイヤ映像コーディング、例えば、現在開発されているVVC(Versatile Video Coding)をサポートする任意の映像コーディング標準又は非標準映像コーデックに適用されてもよい。
2.略語
APS Adaptation Parameter Set(適応パラメータセット)
AU Access Unit(アクセスユニット)
AUD Access Unit Delimiter(アクセスユニットデリミター)
AVC Advanced Video Coding(高度映像コーディング)
CLVS Coded Layer Video Sequence(コーディングレイヤ映像シーケンス)
CPB Coded Picture Buffer(コーディングピクチャバッファ)
CRA Clean Random Access(クリーンランダムアクセス)
CTU Coding Tree Unit(コーディングツリーユニット)
CVS Coded Video Sequence(コーディング映像シーケンス)
DPB Decoded Picture Buffer(復号ピクチャバッファ)
DPS Decoding Parameter Set(復号パラメータセット)
EOB End Of Bitstream(ビットストリーム終端)
EOS End Of Sequence(シーケンス終端)
GDR Gradual Decoding Refresh(漸次的復号リフレッシュ)
HEVC High Efficiency Video Coding(高効率映像コーディング)
HRD Hypothetical Reference Decoder(仮想参照デコーダ)
IDR Instantaneous Decoding Refresh(瞬時復号リフレッシュ)
JEM Joint Exploration Model(共同探索モデル)
MCTS Motion-Constrained Tile Sets(動作制約タイルセット)
NAL Network Abstraction Layer(ネットワーク抽象化レイヤ)
OLS Output Layer Set(出力レイヤセット)
PH Picture Header(ピクチャヘッダ)
PPS Picture Parameter Set(ピクチャパラメータセット)
PROF Prediction Refinement with Optical Flow(オプティカルフローによる予測微調整)
PTL Profile,Tier and Level(プロファイル、ティアおよびレベル)
PU Picture Unit(ピクチャユニット)
RBSP Raw Byte Sequence Payload(生バイトシーケンスペイロード)
SEI Supplemental Enhancement Information(補足強化情報)
SH Slice Header(スライスヘッダ)
SPS Sequence Parameter Set(シーケンスパラメータセット)
SVC Scalable Video Coding(スケーラブル映像コーディング)
VCL Video Coding Layer(映像コーディングレイヤ)
VPS Video Parameter Set(映像パラメータセット)
VTM VVC Test Model(VVC試験モデル)
VUI Video Usability Information(映像ユーザビリティ情報)
VVC Versatile Video Coding(汎用映像コーディング)
【0030】
3.初期の協議
映像コーディング規格は、主に周知のITU-TおよびISO/IEC規格の開発によって発展してきた。ITU-TはH.261とH.263を作り、ISO/IECはMPEG-1とMPEG-4 Visualを作り、両団体はH.262/MPEG-2 VideoとH.264/MPEG-4 AVC(Advanced Video Coding)とH.265/HEVC規格を共同で作った。H.262以来、映像コーディング規格は、時間予測と変換コーディングが利用されるハイブリッド映像コーディング構造に基づく。HEVCを超えた将来の映像コーディング技術を探索するため、2015年には、VCEGとMPEGが共同でJVET(Joint Video Exploration Team)を設立した。それ以来、多くの新しい方法がJVETによって採用され、JEM(Joint Exploration Model)と呼ばれる参照ソフトウェアに組み込まれてきた。JVETは四半期に1回開催され、新しいコーディング規格はHEVCに比べて50%のビットレート低減を目指している。2018年4月のJVET会議において、新しい映像コーディング規格を「VVC(Versatile Video Coding)」と正式に命名し、その時、第1版のVVCテストモデル(VTM)をリリースした。VVCの標準化に寄与する努力が続けられているので、すべてのJVET会議において、VVC標準に新しいコーディング技術が採用されている。毎回の会議の後、VVC作業草案およびテストモデルVTMを更新する。VVCプロジェクトは、現在、2020年7月の会合における技術完成(FDIS)を目指している。
【0031】
3.1.PPS構文および意味論
最近のVVC草案テキストにおいて、PPS構文および意味論は、以下の通りである。
【表1】

【表2】

【表3】

【表4】

【表5】

【表6】

PPS RBSPは、それが参照される前に復号処理で利用できるか、それを参照するPPS NALユニットのTemporalId以下のTemporalIdを持つ少なくとも一つのAU内に含まれるか、外部手段を通じて提供されるものとする。
1つのPU内の特定の値がpps_pic_parameter_set_idであるすべてのPPS NALユニットは、同じコンテンツを有するものとする。
pps_pic_parameter_set_idは、他の構文要素が参照するPPSを示す。pps_pic_parameter_set_idの値は、0~63の範囲内である。
PPS NALユニットは、nuh_layer_id値に関わらず、pps_pic_parameter_set_idの同じ値空間を共有する。
ppsLayerIdを特定のPPS NALユニットのnuh_layer_idの値とし、vclLayerIdを特定のVCL NALユニットのnuh_layer_idの値とする。特定のVCL NALユニットは、ppsLayerIdがvclLayerId以下であり、nuh_layer_idがppsLayerIdであるレイヤが、vclLayerIdであるnuh_layer_idを有するレイヤを含む少なくとも1つのOLSに含まれていない限り、特定のPPS NALユニットを参照しないものとする。
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において同じであるものとする。
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と等しいスライスを有することはできない。
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と等しいものとする。
pic_height_in_luma_samplesは、PPSを参照して復号された各ピクチャの高さを輝度サンプルの単位で規定する。pic_height_in_luma_samplesは、0に等しくないものとし、Max(8,MinCbSizeY)の整数倍であるものとし、pic_height_max_in_luma_samples以下であるものとする。
res_change_in_clvs_allowed_flagが0に等しい場合、pic_height_in_luma_samplesの値は、pic_height_max_in_luma_samplesに等しいものとする。
変数PicWidthInCtbsY,PicHeightInCtbsY,PicSizeInCtbsY,PicWidthInMinCbsY,PicHeightInMinCbsY,PicSizeInMinCbsY,PicSizeInSamplesY,PicWidthInSamplesCおよびPicHeightInSamplesCは、以下のように導出される。
PicWidthInCtbsY=Ceil(pic_width_in_luma_samples÷CtbSizeY) (69)
PicHeightInCtbsY=Ceil(pic_height_in_luma_samples÷CtbSizeY) (70)
PicSizeInCtbsY=PicWidthInCtbsY*PicHeightInCtbsY (71)
PicWidthInMinCbsY=pic_width_in_luma_samples/MinCbSizeY (72)
PicHeightInMinCbsY=pic_height_in_luma_samples/MinCbSizeY (73)
PicSizeInMinCbsY=PicWidthInMinCbsY*PicHeightInMinCbsY (74)
PicSizeInSamplesY=pic_width_in_luma_samples*pic_height_in_luma_samples (75)
PicWidthInSamplesC=pic_width_in_luma_samples/SubWidthC (76)
PicHeightInSamplesC=pic_height_in_luma_samples/SubHeightC (77)
1に等しいpps_conformance_window_flagは、SPSにおける次の適合性クロッピングウィンドウのオフセットパラメータがPPSで次に続くことを示す。0に等しいpps_conformance_window_flagは、適合性クロッピングウィンドウのオフセットパラメータがPPSに存在しないことを示す。
pps_conf_win_left_offset、pps_conf_win_right_offset、pps_conf_win_top_offset、およびpps_conf_win_bottom_offsetは、出力用のピクチャ座標で設定された矩形領域に関し、復号処理から出力されるCLVSのピクチャのサンプルを規定する。pps_conformance_window_flagが0に等しい場合、pps_conf_win_left_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と等しいことがビットストリーム適合性の要件である。
1に等しいscaling_window_explicit_signalling_flagは、スケーリングウィンドウオフセットパラメータがPPSに存在することを規定する。0に等しいscaling_window_explicit_signalling_flagは、スケーリングウィンドウオフセットパラメータがPPSに存在しないことを規定する。res_change_in_clvs_allowed_flagが0に等しい場合、scaling_window_explicit_signalling_flagの値は0に等しいものとする。
scaling_win_left_offset、scaling_win_right_offset、scaling_win_top_offset、およびscaling_win_bottom_offsetは、スケーリング比の計算のためのピクチャサイズに適用されるオフセットを規定する。存在しない場合、scaling_win_left_offset、scaling_win_right_offset、scaling_win_top_offset、scaling_win_bottom_offsetの値は、それぞれpps_conf_win_left_offset、pps_conf_win_right_offset,、pps_conf_win_top_offsetおよびpps_conf_win_bottom_offsetと等しいと推論される。
SubWidthC*(scaling_win_left_offset+scaling_win_right_offset)の値は、pic_width_in_luma_samplesより小さいものとし、SubHeightC*(scaling_win_top_offset+scaling_win_bottom_offset)の値は、pic_height_in_luma_samplesより小さいものとする。
PicOutputWidthLおよびPicOutputHeightLの変数は以下のように導出される。
PicOutputWidthL=pic_width_in_luma_samples- (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))以上であるものとする。
1に等しいoutput_flag_present_flagは、PPSを参照するスライスヘッダにpic_output_flag構文要素が存在することを示す。0に等しいoutput_flag_present_flagは、PPSを参照するスライスヘッダにpic_output_flag構文要素が存在しないことを示す。
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に等しいものとする。
pps_num_subpics_minus1はsps_num_subpics_minus1と等しいものとする。
pps_subpic_id_len_minus1はsps_subpic_id_len_minus1に等しいものとする。
pps_subpic_id[i]は、i番目のサブピクチャのサブピクチャIDを規定する。pps_subpic_id[i]の構文要素の長さは、pps_subpic_id_len_minus1+1ビットである。
変数SubpicIdVal[i]は、0~sps_num_subpics_minus1の範囲内にあるiの各値について、以下のように導出される。
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の範囲(両端含む)の特定の値に等しくなければならない。
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でないものとすることが、ビットストリーム適合性の要件である。
pps_log2_ctu_size_minus5+5は、各CTUの輝度コーディングツリーブロックのブロックサイズを規定する。pps_log2_ctu_size_minus5はsps_log2_ctu_size_minus5に等しいものとする。
num_exp_tile_columns_minus1+1は明示的に提供されるタイルの列の幅の数を規定する。num_exp_tile_columns_minus1の値は、0からPicWidthInCtbsY-1までの範囲内にあるものとするno_pic_partition_flagが1に等しい場合は、num_exp_tile_columns_minus1の値は0に等しいと推論される。
num_exp_tile_rows_minus1+1は明示的に提供されるタイルの行の高さの数を規定する。num_exp_tile_rows_minus1の値は、0からPicHeightInCtbsY-1までの範囲内にあるものとする。no_pic_partition_flagが1に等しい場合は、num_tile_rows_minus1の値は0に等しいと推論される。
tile_column_width_minus1[i]+1は、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に等しいと推論される。
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に等しいと推論される。
0に等しいrect_slice_flagは、各スライス内のタイルがラスタスキャン順に配列されており、且つスライス情報がPPSで信号通知されないことを規定する。1に等しいrect_slice_flagは、各スライス内のタイルがピクチャの矩形領域を覆い、且つスライス情報がPPSで信号通知されることを規定する。存在しない場合、rect_slice_flagは1に等しいと推測される。subpic_info_present_flagが1に等しいとき、rect_slice_flagの値は1に等しいものとする。
1に等しいsingle_slice_per_subpic_flagは、各サブピクチャが1つの唯一の矩形スライスで構成されることを規定する。0に等しいsingle_slice_per_subpic_flagは、各サブピクチャが1つ以上の矩形スライスで構成され得ることを規定する。single_slice_per_subpic_flagが1に等しい場合は、num_slices_in_pic_minus1はsps_num_subpics_minus1に等しいと推論される。存在しない場合、single_slice_per_subpic_flagの値は0に等しいと推測される。
num_slices_in_pic_minus1+1は、PPSを参照する各ピクチャの矩形スライスの数を規定する。num_slices_in_pic_minus1の値は、0からMaxSlicesPerPicture-1の範囲(両端含む)とし、MaxSlicesPerPictureは附属書Aで規定されるものとする。no_pic_partition_flagが1の場合、num_slices_in_pic_minus1の値は0に等しいと推定される。
0に等しいidx_delta_present_flagは、PPSにtile_idx_delta値が存在せず、PPSを参照するピクチャの全ての矩形スライスを6.5.1項の処理に従ってラスタオーダで規定することを規定する。1に等しいtile_idx_delta_present_flagは、PPSにtile_idx_delta値が存在し、PPSを参照するピクチャのすべての矩形スライスがtile_idx_delta値で示される順序で規定されることが規定される。存在しない場合、tile_idx_delta_present_flagの値は0と推測される。
slice_width_in_tiles_minus1[i]+1は、i番目の矩形スライスの幅をタイルの列単位で規定する。slice_width_in_tiles_minus1[i]の値は、0からNumTileColumns-1までの範囲内にあるものとする。
slice_width_in_tiles_minus1[i]が存在しない場合、以下が適用される。
- NumTileColumnsが1に等しい場合は、slice_width_in_tiles_minus1[i]の値は0に等しいと推論される。
- そうでない場合、6.5.1項で規定されるように、slice_width_in_tiles_minus1[i]の値を推論する。
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]iの値は、slice_height_in_tiles_minus1[i-1]と等しいと推論される。
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に等しいと導出される。
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]は、以下のように導出される。
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
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に等しいと推測される。
1に等しいloop_filter_across_tiles_enabled_flagは、PPSを参照しているピクチャにおいて、タイルの境界をまたいでインループフィルタリング動作を行うことができることを規定する。0に等しいloop_filter_across_tiles_enabled_flagは、PPSを参照しているピクチャにおいて、タイルの境界をまたいでインループフィルタリング動作を行わないことを規定する。インループフィルタリング動作は、デブロッキングフィルタ、サンプル適応オフセットフィルタ、および適応ループフィルタ動作を含む。存在しない場合、loop_filter_across_tiles_enabled_flagの値は1に等しいと推測される。
1に等しいloop_filter_across_slices_enabled_flagは、PPSを参照しているピクチャにおいて、スライスの境界をまたいでインループフィルタリング動作を行うことができることを規定する。0に等しいloop_filter_across_slice_enabled_flagは、PPSを参照しているピクチャにおいて、スライスの境界をまたいでインループフィルタリング動作を行わないことを規定する。インループフィルタリング動作は、デブロッキングフィルタ、サンプル適応オフセットフィルタ、および適応ループフィルタ動作を含む。存在しない場合、loop_filter_across_slices_enabled_flagの値は0に等しいと推測される。
1に等しいcabac_init_present_flagは、PPSを参照するスライスヘッダにcabac_init_flagが存在することを規定する。0に等しいcabac_init_present_flagは、cabac_init_flagがPPSを参照するスライスヘッダにcabac_init_flagが存在しないことを規定する。
0に等しいnum_ref_idx_active_minus1[i]plus1は、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の範囲内にあるものとする。
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]が存在する場合があることを規定する。
init_qp_minus26+26PPSを参照するスライスごとにSliceQpの初期値を規定する。SliceQpの最初の値は、ph_qp_deltaの非ゼロ値が復号されるときにはピクチャレベルで、またはslice_qp_deltaの非ゼロ値が復号されるときにはスライスレベルで、修正される。init_qp_minus26の値は、-(26+QpBdOffset)~+37の範囲内にあるものとする。
1に等しいcu_qp_delta_enabled_flagは、ph_cu_qp_delta_subdiv_intra_sliceおよびph_cu_qp_delta_subdiv_inter_slice構文要素がPPSを参照するPHに存在し、cu_qp_delta_absが変換ユニット構文に存在してもよいことを規定する。cu_qp_delta_flagが0に等しいことは、ph_cu_qp_subdiv_intra_sliceおよびph_cu_qp_subdiv_inter_slice構文要素がPPSを参照するPHに存在せず、cu_qp_delta_absが変換ユニット構文に存在しないことを規定する。
1に等しいpps_chroma_tool_offsets_present_flagは、クロマツールオフセット関連の構文要素がPPS RBSP構文構造に存在することを規定する。0に等しいpps_chroma_tool_offsets_present_flagは、クロマツールオフセット関連構文要素がPPS RBSP構文構造に存在することを規定する。ChromaArrayTypeが0に等しい場合、ph_qp_deltas_present_flagの値は0に等しくなる。
pps_cb_qp_offset、pps_cr_qp_offsetは、Qp’Cb、Qp’Crの導出に用いられる輝度量子化パラメータQp’へのオフセットをそれぞれ規定する。pps_cb_qp_offsetおよびpps_cr_qp_offsetの値は、-12~+12の範囲内となる。ChromaArrayTypeが0に等しい場合、pps_cb_qp_offsetとpps_cr_qp_offsetは復号処理には使用されず、デコーダはその数値を無視するものとする。存在しない場合、pps_cb_qp_offsetおよびpps_cr_qp_offsetの値は0に等しいと推論される。
1に等しいpps_joint_cbcr_qp_offset_present_flagは、pps_joint_cbcr_qp_offset_valueおよびjoint_cbcr_qp_offset_list[i]がPPS RBSP構文構造に含まれていることを規定する。0に等しいpps_joint_cbcr_qp_offset_present_flagは、pps_joint_cbcr_qp_offset_valueおよびjoint_cbcr_qp_offset_list[i]がPPS RBSP構文構造に含まれていないことを規定する。ChromaArrayTypeが0またはsps_joint_cbcr_enabled_flagが0に等しい場合、pps_joint_cbcr_qp_offset_present_flagの値は0に等しいものとする。存在しない場合、pps_joint_cbcr_qp_offset_present_flagの値は0に等しいと推測される。
pps_joint_cbcr_qp_offset_valueは、Qp’CbCrを導出するために用いられる輝度量子化パラメータQp’へのオフセットを示す。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に等しいと推論される。
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に等しいと推測される。
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に等しいと推測される。
chroma_qp_offset_list_len_minus1+1は、PPS RBSP構文構造に含まれるcb_qp_offset_list[i]、cr_qp_offset_list[i]およびjoint_cbcr_qp_offset_list[i]の構文要素の数を規定する。chroma_qp_offset_list_len_minus1の値は、0から5までの範囲内とする。
cb_qp_offset_list[i]、cr_qp_offset_list[i]、およびjoint_cbcr_qp_offset_list[i]は、cb_qp_offset_list[i],cr_qp_offset_list[i],joint_cbcr_qp_offset_list[i]はそれぞれQp’Cb、Qp’Cr、Qp’CbCrの導出で使用するオフセットを規定する。cb_qp_offset_list[i]、cr_qp_offset_list[i]、joint_cbcr_qp_offset_list[i]の値は、-12~+12の範囲内にあるものとする。pps_joint_cbcr_qp_offset_present_flagが0に等しい場合、joint_cbcr_qp_offset_list[i]は存在せず、0に等しいと推論される。
0に等しいpps_weighted_pred_flagは、PPSを参照しているP個のスライスに対して重み付け予測が適用されないことを規定する。1に等しいsps_weighted_pred_flagは、PPSを参照しているP個のスライスに対して重み付け予測が適用されることを規定する。sps_weighted_pred_flagが0に等しい場合、pps_weighted_pred_flagの値は0に等しいものとする。
0に等しいpps_weighted_bipred_flagは、PPSを参照しているB個のスライスに対して明示的な重み付け予測が適用されないことを規定する。1に等しいsps_weighted_bipred_flagは、PPSを参照しているB個のスライスに対して明示的な重み付け予測が適用されることを規定する。sps_weighted_bipred_flagが0に等しい場合、pps_weighted_bipred_flagの値は0に等しいものとする。
1に等しいdeblocking_filter_control_present_flagは、PPSにおけるデブロッキングフィルタ制御構文要素の存在を規定する。0に等しいdeblocking_filter_control_present_flagは、PPSにおけるデブロッキングフィルタ制御構文要素の不在を規定する。
1に等しいdeblocking_filter_override_enabled_flagは、PPSを参照するPHにおけるph_deblocking_filter_override_flagの存在を規定し、PPSを参照するスライスヘッダにおけるslice_deblocking_filter_override_flagの存在を規定する。0に等しいdeblocking_filter_override_enabled_flagは、PPSを参照するPHにおけるph_deblocking_filter_override_flagの不在を規定し、PPSを参照するスライスヘッダにおけるslice_deblocking_filter_override_flagの不在を規定する。存在しない場合、deblocking_filter_override_enabled_flagの値は0に等しいと推測される。
1に等しいpps_deblocking_filter_disabled_flagは、デブロッキングフィルタの演算は、slice_deblocking_filter_disabled_flagが存在しないPPSを参照するスライスに対して適用されないことを規定する。0に等しいpps_deblocking_filter_disabled_flagは、デブロッキングフィルタの演算は、slice_deblocking_filter_disabled_flagが存在しないPPSを参照するスライスに対して適用されることを規定する。存在しない場合、pps_deblocking_filter_disabled_flagの値は0に等しいと推測される。
pps_beta_offset_div2およびpps_tc_offset_div2は、デフォルトのデブロッキングパラメータオフセットが、PPSを参照するスライスのピクチャヘッダまたはスライスヘッダに存在するデブロッキングパラメータオフセットによって上書きされない限り、PPSを参照するスライスの輝度成分に適用されるβおよびtCのデフォルトのデブロッキングパラメータオフセット(2で割られた)を規定する。pps_beta_offset_div2およびpps_tc_offset_div2の値は、いずれも-12~12の範囲内にあるものとする。存在しない場合、pps_beta_offset_div2およびpps_tc_offset_div2の値はいずれも0に等しいと推論される。
pps_cb_beta_offset_div2およびpps_cb_tc_offset_div2は、デフォルトのデブロッキングパラメータオフセットが、PPSを参照するスライスのピクチャヘッダまたはスライスヘッダに存在するデブロッキングパラメータオフセットによって上書きされない限り、PPSを参照するスライスのCb成分に適用されるβおよびtCのデフォルトのデブロッキングパラメータオフセット(2で割られた)を規定する。pps_cb_beta_offset_div2およびpps_cb_tc_offset_div2の値は、共に-12~+12の範囲内となる。存在しない場合、pps_cb_offset_div2およびpps_cb_offset_div2の値はいずれも0に等しいと推論される。
pps_cr_beta_offset_div2およびpps_cr_tc_offset_div2は、デフォルトのデブロッキングパラメータオフセットが、PPSを参照するスライスのピクチャヘッダまたはスライスヘッダに存在するデブロッキングパラメータオフセットによって上書きされない限り、PPSを参照するスライスのCr成分に適用されるβおよびtCのデフォルトのデブロッキングパラメータオフセット(2で割られた)を規定する。pps_cr_beta_offset_div2およびpps_cr_tc_offset_div2の値は、共に-12~+12の範囲内となる。存在しない場合、pps_cr_offset_div2およびpps_cr_offset_div2の値はいずれも0に等しいと推論される。
1に等しいrpl_info_in_ph_flagは、参照ピクチャリスト情報がPH構文構造に含まれており、PH構文構造を含まないPPSを参照するスライスヘッダに含まれていないことを規定する。0に等しいrpl_info_in_ph_flagは、参照ピクチャリスト情報がPH構文構造に含まれておらず、PH構文構造を包含しないPPSを参照するスライスヘッダに存在する場合があることを規定する。
1に等しいdbf_info_in_ph_flagは、PH構文構造にデブロッキングフィルタ情報が存在し、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを規定する。0に等しいdbf_info_in_ph_flagは、PH構文構造にデブロッキングフィルタ情報が存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在する場合があることを規定する。存在しない場合、dbf_info_in_ph_flagの値は0に等しいと推測される。
1に等しいsao_info_in_ph_flagは、PH構文構造にSAOフィルタ情報が存在し、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを規定する。0に等しいsao_info_in_ph_flagは、PH構文構造にSAOフィルタ情報が存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在する場合があることを規定する。
1に等しいalf_info_in_ph_flagは、PH構文構造にALF情報が存在し、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを規定する。0に等しいalf_info_in_ph_flagは、PH構文構造にALF情報が存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在する場合があることを規定する。
1に等しいwp_info_in_ph_flagは、PH構文構造に重み付け予測情報が存在している場合があり、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを規定する。0に等しいwp_info_in_ph_flagは、PH構文構造に重み付け予測情報が存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在する場合があることを規定する。存在しない場合、wp_info_in_ph_flagの値は0に等しいと推測される。
1に等しいqp_delta_info_in_ph_flagは、PH構文構造にQPデルタ情報が存在し、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを規定する。0に等しいqp_delta_info_in_ph_flagは、PH構文構造にQPデルタ情報が存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在する場合があることを規定する。
1に等しいpps_ref_wraparound_enabled_flagは、インター予測において水平ラップアラウンド動き補償を適用することを規定する。0に等しいpps_ref_wraparound_enabled_flagは、水平ラップアラウンド動き補償を適用することを規定する。CtbSizeY/MinCbSizeY+1の値がpic_width_in_luma_samples/MinCbSizeY-1より大きい場合pps_ref_wraparound_enabled_flagの値は0に等しいものとする。sps_ref_wraparound_enabled_flagが0に等しい場合、pps_ref_wraparound_enabled_flagの値は0に等しいものとする。
pps_ref_wraparound_offset+(CtbSizeY/MinCbSizeY)+2は、水平ラップアラウンド位置を計算するために使用されるオフセットを、MinCbSizeY輝度サンプルの単位で規定する。pps_ref_wraparound_offsetの値は、0~(pic_width_in_luma_samples/MinCbSizeY)-(CtbSizeY/MinCbSizeY)-2の範囲内にあるものとする。
変数PpsRefWraparoundOffsetは、pps_ref_wraparound_offset+(CtbSizeY/MinCbSizeY)+2に等しく設定される。
0に等しいpicture_header_extension_present_flagは、PPSを参照するPHにおいてPH拡張構文要素が存在しないことを規定する。1に等しいpicture_header_extension_present_flagは、PPSを参照するPHにおいてPH拡張構文要素が存在することを規定する。picture_header_extension_present_flagは、本明細書のこのバージョンに準拠するビットストリームにおいて0に等しいものとする。
0に等しいslice_header_extension_present_flagは、PPSを参照するコーディングされたピクチャのスライスヘッダにスライスヘッダ拡張構文要素が存在しないことを規定する。1に等しいslice_header_extension_flagは、PPSを参照するコーディングされたピクチャのスライスヘッダにスライスヘッダ拡張構文要素が存在することを規定する。slice_header_extension_present_flagは、本明細書のこのバージョンに準拠するビットストリームにおいて0に等しいものとする。
0に等しいpps_extension_flagは、PPS RBSP構文構造にpps_extension_data_flag構文要素が含まれていないことを規定する。1に等しいpps_extension_flagは、PPS RBSP構文構造にpps_extension_data_flag構文要素が存在することを規定する。
pps_extension_data_flagは任意の値を有することができる。その存在および値は、本明細書バージョンで特定された特徴に対するのデコーダの適合性に影響を与えない。本明細書バージョンに準拠するデコーダは、すべてのpps_extension_data_flag構文要素を無視しなければならない。
【0032】
3.2. PH構文および意味論
最近のVVC草案テキストにおいて、PH構文および意味論は、以下の通りである。
【表7】
【0033】
PH RBSPは、PH構文構造、即ち、picture_header_structure()を含む。
【表8】

【表9】

【表10】

【表11】

【表12】

【表13】

【表14】

PH構文構造は、PH構文構造に関連付けられたコーディングされたピクチャのすべてのスライスに共通の情報を含む。
1に等しいgdr_or_irap_pic_flagは、現在のピクチャがGDRまたはIRAPピクチャであることを規定する。0に等しいgdr_or_irap_pic_flagは、現在のピクチャがGDRまたはIRAPピクチャであってもなくてもよいことを規定する。
1に等しいgdr_pic_flagは、PHに関連付けられたピクチャがGDRピクチャであることを規定する。0に等しいgdr_pic_flagは、PHに関連付けられたピクチャがGDRピクチャでないことを規定する。存在しない場合、gdr_pic_flagの値は0に等しいと推測される。gdr_enabled_flagが0に等しい場合、gdr_pic_flagの値は0に等しいものとする。
0に等しいph_inter_slice_allowed_flagは、ピクチャのすべてのコーディングされたスライスのslice_typeが2であることを規定する。1に等しいph_inter_slice_allowed_flagは、slice_typeが0または1に等しいピクチャに1つ以上のコーディングされたスライスがあってもなくてもよいことを規定する。
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に等しく設定することが予想される。
1に等しいnon_reference_picture_flagは、PHに関連付けられたピクチャを参照ピクチャとして使用することができないことを規定する。0に等しいnon_reference_picture_flagは、PHに関連付けられたピクチャを参照ピクチャとして使用してもしなくてもよいことを規定する。
ph_pic_parameter_set_idは、使用中のPPSのpps_pic_parameter_set_idの値を規定する。ph_pic_parameter_set_idの値は、0~63の範囲内である。
PHのTemporalIdの値が、pps_pic_parameter_set_idがph_pic_parameter_set_idであるPPSのTemporalIdの値以上であるものとすることが、ビットストリーム適合性の要件である。
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の範囲内にあるものとする。
附属書Cに規定されるように、no_output_of_prior_pics_flagは、ビットストリームの最初のピクチャでないCLVSSピクチャの復号後の、DPBにおける前回復号されたピクチャの出力に影響を及ぼす。
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ピクチャ(存在する場合)から復号処理を開始することによって生成された対応するピクチャに完全に一致する。
ph_extra_bit[i]は1または0に等しくてもよい。本明細書のバージョンに準拠するデコーダは、ph_extra_bit[i]の値を無視しなければならない。その値は、本明細書のバージョンで特定された特徴に対するデコーダの適合性に影響を与えない。
1に等しいph_poc_msb_present_flagは、構文要素poc_msb_valがPHに存在することを規定する。0に等しいph_poc_msb_present_flagは、構文要素ph_msb_valがPHに存在しないことを規定する。vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が0に等しく、現在のレイヤの参照レイヤの現在のAUにピクチャがある場合、ph_poc_msb_present_flagの値は0に等しいものとする。
poc_msb_valは、現在のピクチャのPOC MSB値を規定する。構文要素poc_msb_valの長さは、poc_msb_len_minus1+1ビットである。
1に等しいph_alf_enabled_flagは、PHに関連付けられたすべてのスライスに対して適応ループフィルタを有効化し、スライスにおけるY、Cb、またはCr色成分に適用してもよいことを規定する。0に等しいph_alf_enabled_flagは、PHに関連付けられた1つ以上またはすべてのスライスに対して適応ループフィルタを無効化することができることを規定する。存在しない場合、ph_alf_enabled_flagは0に等しいと推測される。
ph_num_alf_aps_ids_lumaは、PHに関連付けられたスライスが参照するALF APSの数を規定する。
ph_alf_aps_id_luma[i]は、PHに関連付けられたスライスの輝度成分が参照するi番目のALF APSのadaptation_parameter_set_idを規定する。
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以下であるものとする。
0に等しいph_alf_chroma_idcは、適応ループフィルタがCbおよびCr色成分に適用されないことを示す。ph__alf_chroma_idc=1は、適応ループフィルタがCb色成分に適用されることを示す。ph_alf_chroma_idc=2は、適応ループフィルタがCr色成分に適用されることを示す。ph_alf_chroma_idc=3は、適応ループフィルタがCbと色成分に適用されることを示す。ph_alf_chroma_idcが存在しない場合、それは0に等しいと推論される。
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以下であるものとする。
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に等しいと推測される。
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に等しいものとする。
aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがph_cc_alf_cb_aps_idであるAPS NALユニットのTemporalIdは、PHに関連付けられたピクチャのTemporalId以下であるものとする。
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に等しいと推測される。
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に等しいものとする。
aps_params_typeがALF_APSに等しく、adaptation_parameter_set_idがph_cc_alf_cr_aps_idであるAPS NALユニットのTemporalIdは、PHに関連付けられたピクチャのTemporalId以下であるものとする。
1に等しいph_lmcs_enabled_flagは、PHに関連付けられたすべてのスライスに対してクロマスケーリングを伴う輝度マッピングが有効化されることを規定する。0に等しいph_lmcs_enabled_flagは、PHに関連付けられた1つ以上またはすべてのスライスに対してクロマスケーリングを伴う輝度マッピングが無効化されることを規定する。存在しない場合、ph_lmcs_enabled_flagの値は0に等しいと推測される。
ph_lmcs_aps_idは、PHに関連付けられたスライスが参照するLMCS APSのadaptation_parameter_set_idを規定する。aps_params_typeがLMCS_APSに等しく、adaptation_parameter_set_idがph_lmcs_aps_idであるAPS NALユニットのTemporalIdは、PHに関連付けられたピクチャのTemporalId以下であるものとする。
1に等しいph_chroma_residual_scale_flagは、PHに関連付けられたすべてのスライスに対してクロマ残差スケーリングが有効化されることを規定する。0に等しいph_chroma_residual_scale_flagは、PHに関連付けられた1つ以上、またはすべてのスライスに対してクロマ残差スケーリングが無効化されることを規定する。ph_chroma_residual_scale_flagが存在しない場合、これは0に等しいと推論される。
1に等しいph_scaling_list_present_flagは、参照スケーリングリストAPSに含まれるスケーリングリストデータに基づいて、PHに関連付けられたスライスに使用されるスケーリングリストデータを導出することを規定する。0に等しいph_scaling_list_present_flagは、PHに関連付けられたスライスに対して使用されるスケーリングリストが16になるように設定されることを規定する。存在しない場合、ph_scaling_list_present_flagの値は0と推測される。
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以下であるものとする。
1に等しいph_virtual_boundaries_present_flagは、PHで仮想境界の情報を信号通知することを規定する。0に等しいph_virtual_boundaries_present_flagは、PHで仮想境界の情報を信号通知しないことを規定する。PHにおいて信号通知される仮想境界が1つ以上ある場合、ピクチャにおいて、仮想境界を跨ぐインループフィルタリング動作は無効化される。インループフィルタリング動作は、デブロッキングフィルタ、サンプル適応オフセットフィルタ、および適応ループフィルタ動作を含む。存在しない場合、ph_virtual_boundaries_present_flagの値は0と推測される。
subpic_info_present_flagが1に等しい場合は、ph_virtual_boundaries_present_flagの値が0に等しいものとすることが、ビットストリーム適合性の要件である。
変数VirtualBoundariesPresentFlagは、以下のように導出される。
VirtualBoundariesPresentFlag=0
if(sps_virtual_boundaries_enabled_flag)
VirtualBoundariesPresentFlag=sps_virtual_boundaries_present_flag||
ph_virtual_boundaries_present_flag (83)
ph_num_ver_virtual_boundariesは、PHに存在するph_virtual_boundaries_pos_x[i]構文要素の数を規定する。ph_num_ver_virtual_boundariesが存在しない場合、0に等しいと推測される。
変数NumVerVirtualBoundariesは、以下のように導出される。
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)
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輝度サンプル以上であるものとする。
ph_num_hor_virtual_boundariesは、PHに存在するph_virtual_boundaries_pos_y[i]構文要素の数を規定する。ph_num_hor_virtual_boundariesが存在しない場合、0に等しいと推測される。
パラメータNumHorVirtualBoundariesは、以下のように導出される。
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)
sps_virtual_boundaries_enabled_flagが1に等しく、ph_virtual_boundaries_present_flagが1に等しい場合は、ph_num_ver_virtual_boundariesとph_num_hor_virtual_boundariesの合計は、0より大きいものとする。
ph_virtual_boundaries_pos_y[i]は、i番目の水平方向の仮想境界の位置を、輝度サンプルを8で割った単位で規定する。ph_virtual_boundaries_pos_y[i]の値は、1からCeil(pic_height_in_luma_samples÷8)-1の範囲内にあるものとする。
iが0からNumHorVirtualBoundaries-1までのリストVirtualBoundariesPosY[i]を、輝度サンプル単位で、水平仮想境界の位置を規定することにより、以下のように導出する。
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輝度サンプル以上であるものとする。
pic_output_flagは、附属書Cに規定されるように、復号されたピクチャの出力および削除処理に影響を及ぼす。pic_output_flagが存在しない場合、1に等しいと推測される。
1に等しいpartition_constraints_override_flagは、パーティション制約パラメータがPHに存在することを規定する。0に等しいpartition_constraints_override_flagは、パーティション制約パラメータがPHに存在しないことを規定する。存在しない場合、partition_constraints_override_flagの値は0に等しいと推測される。
ph_log2_diff_min_qt_min_cb_intra_slice_lumaは、CTUの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に等しいと推論される。
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と等しくなると推論される。
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と等しくなると推論される。
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と等しくなると推論される。
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に等しいと推論される。
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と等しいと推論される。
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と等しくなると推論される。
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と等しくなると推論される。
ph_cu_qp_delta_subdiv_intra_sliceは、cu_qp_delta_absおよびcu_qp_delta_sign_flagを伝達するイントラスライス内のコーディングユニットの最大のcbSubdiv値を規定する。ph_cu_qp_delta_subdiv_intra_sliceの値は、0~2*(CtbLog2SizeY-MinQtLog2SizeIntraY+ph_max_mtt_hierarchy_depth_intra_slice_luma)の範囲内にあるものとする。
存在しない場合、ph_cu_qp_delta_subdiv_intra_sliceの値は0に等しいと推測される。
ph_cu_chroma_qp_offset_subdiv_intra_sliceは、cu_chroma_qp_offset_flagを伝達するイントラスライス内のコーディングユニットの最大cbSubdiv値を規定する。ph_cu_qp_offset_subdiv_intra_sliceの値は、0~2*(CtbLog2SizeY-MinQtLog2SizeIntraY+ph_max_mtt_hierarchy_depth_intra_slice_luma)の範囲内にあるものとする。
存在しない場合、ph_cu_chroma_qp_offset_subdiv_intra_sliceの値は0に等しいと推測される。
ph_log2_diff_min_qt_min_cb_inter_sliceは、CTUの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に等しいと推論される。
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に等しいと推論される。
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に等しいと推論される。
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に等しいと推論される。
ph_cu_qp_delta_subdiv_inter_sliceは、cu_qp_delta_absおよびcu_qp_delta_sign_flagを伝達するインタースライス内のコーディングユニットの最大のcbSubdiv値を規定する。ph_cu_qp_delta_subdiv_inter_sliceの値は、0~2*(CtbLog2SizeY-MinQtLog2SizeInterY+ph_max_mtt_hierarchy_depth_inter_slice)の範囲内にあるものとする。
存在しない場合、ph_cu_qp_delta_subdiv_inter_sliceの値は0に等しいと推測される。
ph_cu_chroma_qp_offset_subdiv_inter_sliceは、cu_chroma_qp_offset_flagを伝達するインタースライス内のコーディングユニットの最大cbSubdiv値を規定する。ph_cu_chroma_qp_offset_subdiv_inter_sliceの値は、0~2*(CtbLog2SizeY-MinQtLog2SizeInterY+ph_max_mtt_hierarchy_depth_inter_slice)の範囲内にあるものとする。
存在しない場合、ph_cu_chroma_qp_offset_subdiv_inter_sliceの値は0に等しいと推測される。
ph_temporal_mvp_enabled_flagは、PHに関連付けられたスライスのインター予測に時間的動きベクトル予測子を使用できるかどうかを規定する。ph_temporal_mvp_enabled_flagが0に等しい場合、PHに関連付けられたスライスの構文要素は、時間的動きベクトル予測子がスライスの復号に使用されないように制約されるものとする。そうでない場合(ph_temporal_mvp_enabled_flagが1に等しい場合)、PHに関連付けられたスライスの復号に時間的動きベクトル予測子を使用してもよい。存在しない場合、ph_temporal_mvp_enabled_flagの値は0に等しいと推測される。DPBにおける参照ピクチャの空間的解像度が現在のピクチャと同じでない場合、ph_temporal_mvp_enabled_flagの値は0に等しいものとする。
サブブロックベースのマージMVP候補の最大数、MaxNumSubblockMergeCandは以下のように導出される。
if(sps_affine_enabled_flag)
MaxNumSubblockMergeCand=5-five_minus_max_num_subblock_merge_cand (88)
else
MaxNumSubblockMergeCand=sps_sbtmvp_enabled_flag&&ph_temporal_mvp_enable_flag
MaxNumSubblockMergeCandの値は、0~5の範囲内である。
1に等しいph_collocated_from_l0_flagは、時間的動きベクトル予測に使用される同一位置に配置されたピクチャが参照ピクチャリスト0から導出されることを規定する。0に等しいph_collocated_from_l0_flagは、時間的動きベクトル予測に使用される同一位置に配置されたピクチャが参照ピクチャリスト1から導出されることを規定する。
ph_collocated_ref_idxは、時間的動きベクトル予測に使用される同一位置に配置されたピクチャの参照インデックスを規定する。
ph_collocated_from_l0_flagが1に等しい場合、ph_collocated_ref_idxは参照ピクチャリスト0のエントリを参照し、ph_collocated_ref_idxの値は0からnum_ref_entries[0][RplsIdx[0]]-1の範囲内にあるものとする。
ph_collocated_from_l0_flagが0に等しい場合、ph_collocated_ref_idxは参照ピクチャリスト1のエントリを参照し、ph_collocated_ref_idxの値は0からnum_ref_entries[1][RplsIdx[1]]-1の範囲内にあるものとする。
存在しない場合、ph_collocated_ref_idxの値は0に等しいと推測される。
1に等しいmvd_l1_zero_flagは、mvd_coding(x0,y0,1)構文構造が構文解析されず、MvdL1[x0][y0][compIdx]およびMvdCpL1[x0][y0][cpIdx][compIdx]がcompIdx=0..1およびcpIdx=0..2の場合、0に設定されることを示す。0に等しいmvd_l1_zero_flagは、mvd_coding(x0,y0,1)構文構造が構文解析されたことを示す。
1に等しいph_fpel_mmvd_enabled_flagは、動きベクトル差を有するマージモードは、PHに関連付けられたスライスの整数サンプル精度を使用することを規定する。0に等しいph_fpel_mmvd_enabled_flagは、動きベクトル差を有するマージモードは、PHに関連付けられたスライスの分数サンプル精度を使用することを規定する。存在しない場合、ph_fpel_mmvd_enabled_flagの値は0であると推測される。
1に等しいph_disable_bdof_flagは、PHに関連付けられたスライスにおいて、双方向オプティカルフローインター予測に基づくインター双方向予測が無効化されることを規定する。0に等しいph_disable_bdof_flagは、PHに関連付けられたスライスにおいて、双方向オプティカルフローインター予測に基づくインター双方向予測が有効化されてもされなくてもよいことを規定する。
ph_disable_bdof_flagが存在しない場合、以下が適用される。
- sps_bdof_enabled_flagが1に等しい場合は、ph_disable_bdof_flagの値は0に等しいと推論される。
- そうでない場合(sps_bdof_enabled_flagが0に等しい場合)、ph_disable_bdof_flagの値は1に等しいと推論される。
1に等しいph_disable_dmvr_flagは、PHに関連付けられたスライスにおいて、デコーダ動きベクトル微調整に基づくインター双方向予測が無効化されることを規定する。0に等しいph_disable_dmvr_flagは、PHに関連付けられたスライスにおいて、デコーダ動きベクトル微調整に基づく相互雄双方向予測が有効化してもしなくてもよいことを規定する。
ph_disable_dmvr_flagが存在しない場合、以下が適用される。
- sps_dmvr_enabled_flagが1に等しい場合は、ph_disable_dmvr_flagの値は0に等しいと推論される。
- そうでない場合(sps_dmvr_enable_flagが0に等しい場合)、ph_disable_dmvr_flagの値は1に等しいと推論される。
1に等しいph_disable_prof_flagは、PHに関連付けられたスライスにおいて、オプティカルフローによる予測微調整が無効化されることを規定する。0に等しいph_disable_prof_flagは、PHに関連付けられたスライスにおいて、オプティカルフローによる予測微調整が有効化されてもされなくてもよいことを規定する。
ph_disable_prof_flagが存在しない場合、以下が適用される。
- sps_affine_prof_enabled_flagが1に等しい場合は、ph_disable_prof_flagの値は0に等しいと推論される。
- そうでない場合(sps_affine_prof_enabled_flagが0に等しい場合)、ph_disable_prof_flagの値は1に等しいと推論される。
ph_qp_deltaは、コーディングユニットレイヤにおけるCuQpDeltaValの値によって修正されるまで、ピクチャにおけるコーディングブロックに使用されるQpの初期値を規定する。
qp_delta_info_in_ph_flagが1に等しい場合は、ピクチャのすべてのスライスに対するQp量子化パラメータであるSliceQpの最初の値は、以下のように導出される。
SliceQp=26+init_qp_minus26+ph_qp_delta (89)
SliceQpの値は、-QpBdOffset~63の範囲内である。
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)の残差サンプルの逆の符号で表されることを規定する。
1に等しいph_sao_luma_enabled_flagは、PHに関連付けられたすべてのスライスの中の輝度成分に対してSAOが有効化されることを規定し、0に等しいph_sao_luma_enabled_flagは、輝度成分のSAOがPHに関連付けられた1つ以上またはすべてのスライスに対して無効化される場合もあることを規定する。ph_sao_luma_enabled_flagが存在しない場合、0に等しいと推測される。
1に等しいph_sao_chroma_enabled_flagは、PHに関連付けられたすべてのスライスの中のクロマ成分に対してSAOが有効化されることを規定し、0に等しいph_sao_chroma_enabled_flagは、輝度成分のSAOがPHに関連付けられた1つ以上またはすべてのスライスに対して無効化される場合もあることを規定する。ph_sao_chroma_enabled_flagが存在しない場合、0に等しいと推測される。
0に等しいph_dep_quant_enabled_flagは、現在のピクチャに対して依存量子化が無効化されることを規定する。1に等しいph_dep_quant_enabled_flagは、現在のピクチャに対して従属量子化が有効化されることを規定する。ph_dep_quant_enabled_flagが存在しない場合、0に等しいと推測される。
0に等しいpic_sign_data_hiding_enabled_flagは、現在のピクチャに対し、符号ビットの非表示が無効化されることを規定する。1に等しいpic_sign_data_hiding_enabled_flagは、現在のピクチャに対し、符号ビットの非表示が有効化されることを規定する。pic_sign_data_hiding_enabled_flagが存在しない場合、0に等しいと推測される。
1に等しいph_deblocking_filter_override_flagは、PHにデブロッキングパラメータが存在することを規定する。0に等しいph_deblocking_filter_override_flagは、デブロッキングパラメータがPHに存在しないことを規定する。存在しない場合、ph_deblocking_filter_override_flagの値は0に等しいと推測される。
1に等しいph_deblocking_filter_disabled_flagは、PHに関連付けられたスライスに対してデブロッキングフィルタの演算を適用しないことを規定する。0に等しいph_deblocking_filter_disabled_flagは、PHに関連付けられたスライスに対してデブロッキングフィルタの演算を適用することを規定する。ph_deblocking_filter_disabled_flagが存在しない場合、pps_deblocking_filter_disabled_flagに等しいと推論される。
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に等しいと推論される。
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に等しいと推論される。
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に等しいと推論される。
ph_extension_lengthは、PH拡張データの長さをバイトで規定し、ph_extension_length自体の信号通知に使用されるビットは含まない。ph_extension_lengthの値は、0~256の範囲内である。存在しない場合、ph_extension_lengthの値は0に等しいと推論される。
ph_extension_data_byteは任意の値を有することができる。本明細書のバージョンに準拠するデコーダは、ph_extension_data_byteの値を無視しなければならない。その値は、本明細書のバージョンで特定された特徴に対するデコーダの適合性に影響を与えない。
【0034】
3.3 SH構文および意味論
最近のVVC草案テキストにおいて、SH構文および意味論は、以下の通りである。
【表15】

【表16】

【表17】

【表18】

【表19】

cu_qp_delta_absを含むコーディングユニットの輝度量子化パラメータとその予測との差を規定する変数CuQpDeltaValは、0に設定される。cu_chroma_qp_offset_flagを含むコーディングユニットの量子化パラメータQp’Cb,Qp’CrおよびQp’CbCrのそれぞれの値を判定する際に用いる値を規定する変数CuQpOffsetCb,CuQpOffsetCrおよびCuQpOffsetCbCrは、すべて0に等しく設定される。
1に等しいpicture_header_in_slice_header_flagは、スライスヘッダにPH構文構造が存在する。picture_header_in_slice_header_flagが0の場合、スライスヘッダに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ユニットを有するものとする。
slice_subpic_idは、スライスを含むサブピクチャのサブピクチャIDを規定する。slice_subpic_idが存在する場合、変数CurrSubpicIdxの値は、SubpicIdVal[CurrSubpicIdx]がslice_subpic_idに等しくなるように導出される。そうでない場合(slice_subpic_idが存在しない)、CurrSubpicIdxは0に等しくなるように導出される。slice_subpic_idの長さは、sps_subpic_id_len_minus1+1ビットである。
slice_addressは、スライスのスライスアドレスを規定する。存在しない場合、slice_addressの値は0に等しいと推測される。rect_slice_flagが1に等しく、NumSlicesInSubpic[CurrSubpicIdx]が1に等しい場合は、slice_addressの値は0に等しいと推論される。
rect_slice_flagが0に等しい場合、以下が適用される。
- スライスアドレスは、ラスタスキャンタイルインデックスである。
- slice_addressの長さは、Ceil(Log2(NumTilesInPic))ビットである。
- slice_addressの値は、0からNumTilesInPic-1までの範囲内にあるべきである。
そうでない場合(rect_slice_flagが1に等しい場合)、以下が適用される。
- スライスアドレスは、スライスのサブピクチャレベルスライスインデックスである。
- slice_addressの長さは、Ceil(Log2(NumSlicesInSubpic[CurrSubpicIdx]))ビットである。
- slice_addressの値は、0~NumSlicesInSubpic[CurrSubpicIdx]-1までの範囲内とする。
ビットストリーム適合性の要件は、以下の制約が適用されることである。
- rect_slice_flagが0に等しい、またはsubpic_info_present_flagが0に等しい場合、slice_addressの値は、同じコーディングされたピクチャにおいて任意の他のコーディングされたスライスNALユニットのslice_addressの値に等しくてはならない。
- そうでない場合、slice_subpic_idおよびslice_address値の組は、同じコーディングされたピクチャにおいて任意の他のコーディングされたスライスNALユニットのslice_subpic_idおよびslice_address値の組に等しくてはならない。
- ピクチャのスライスの形状は、各CTUが復号された場合、その左側境界全体および最上の境界全体が1つのピクチャの境界、または、以前に復号されたCTUの境界を含むものでなければならない。
sh_extra_bit[i]は、1または0に等しくてもよい。本明細書のバージョンに準拠するデコーダは、sh_extra_bit[i]の値を無視しなければならない。その値は、本明細書のバージョンで特定された特徴に対するデコーダの適合性に影響を与えない。
num_tiles_in_slice_minus1+1(存在する場合)は、スライスにおけるタイルの数を規定する。num_tiles_in_slice_minus1の値は、0からNumTilesInPic-1までの範囲内にあるべきである。
現在のスライスにおけるCTUの数を規定する変数NumCtusInCurrSliceと、スライス内のi番目のCTBのピクチャラスタスキャンアドレスを規定しiが0からNumCTUsInCurrSlice-1までの範囲であるリストCtbAddrInCurrSlice[i]とは、以下のように導出される。
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++




変数SubpicLeftBoundaryPos、SubpicTopBoundaryPos、SubpicRightBoundaryPos、およびSubpicBotBoundaryPosは、以下のように導出される。
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)

slice_typeは表9に従って、スライスのコーディングするタイプを規定する。
slice_typeへの名前の関連付け
【表20】

存在しない場合、slice_typeの値は2に等しいと推測される。
ph_intra_slice_allowed_flagが0に等しい場合、slice_typeの値は0または1に等しいものとする。nal_unit_typeがIDR_W_RADL~CRA_NUTの範囲内にあり、かつvps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が1に等しい場合は、slice_typeは2に等しいものとする。
変数MinQtLog2SizeY、MinQtLog2SizeC、MinQtSizeY、MinQtSizeC、MaxBtSizeY、MaxBtSizeC、MinBtSizeY、MaxTtSizeY、MaxTtSizeC、MinTtSizeY、MaxMttDepthYおよびMaxMttDepthCは、次のように導出される。
- slice_typeが2(I)に等しい場合、以下が適用される。
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 to 0 (B) or 1(P)),the following applies:
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)
- The following applies:
MinQtSizeY=1<<MinQtLog2SizeY (139)
MinQtSizeC=1<<MinQtLog2SizeC (140)
MinBtSizeY=1<<MinCbLog2SizeY (141)
MinTtSizeY=1<<MinCbLog2SizeY (142)
1に等しいslice_alf_enabled_flagは、適応ループフィルタが有効化され、かつ1つのスライスにおけるY、Cb、またはCr色成分に適用され得ることを規定する。0に等しいslice_alf_enabled_flagは、スライス内のすべての色成分が無効化されることを規定する。存在しない場合、slice_alf_enabled_flagの値はph_alf_enabled_flagと推測される。
slice_num_alf_aps_ids_lumaは、スライスが参照するALF APSの数を規定する。slice_alf_enabled_flagが1に等しく、かつ、slice_num_alf_aps_ids_lumaが存在しない場合、slice_num_alf_aps_ids_lumaの値は、ph_num_alf_aps_ids_lumaの値に等しくなると推論される。
slice_alf_aps_id_luma[i]は、スライスの輝度成分が参照するi番目のALF APSのadaptation_parameter_set_idを規定する。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に等しいものとする。
0に等しいslice_alf_chroma_idcは、適応ループフィルタがCbおよびCr色成分に適用されないことを示す。slice_alf_chroma_idc=1は、適応ループフィルタがCb色成分に適用されることを示す。slice_alf_chroma_idc=2は、適応ループフィルタがCr色成分に適用されることを示す。slice_alf_chroma_idc=3は、適応ループフィルタがCb色成分とCr色成分に適用されることを示す。slice_alf_chroma_idcが存在しない場合、それはph_alf_chroma_idcに等しいと推論される。
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に等しいものとする。
0に等しいslice_cc_alf_cb_enabled_flagは、クロスコンポーネントフィルタがCb色成分に適用されていないことを規定する。1に等しいslice_cc_alf_cb_enabled_flagは、クロスコンポーネントフィルタが有効であり、Cb色成分に適用されてもされなくてもよいことを規定する。slice_cc_alf_cb_enabled_flagが存在しない場合、ph_cc_alf_cb_enabled_flagに等しいと推論される。
slice_cc_alf_cb_aps_idは、スライスのCb色成分が参照するadaptation_parameter_set_idを規定する。
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に等しいものとする。
0に等しいslice_cc_alf_cr_enabled_flagは、クロスコンポーネントフィルタがCr色成分に適用されていないことを規定する。1に等しいslice_cc_alf_cb_enabled_flagは、クロスコンポーネント適応ループフィルタが有効であり、Cr色成分に適用されてもされなくてもよいことを規定する。slice_cc_alf_cr_enabled_flagが存在しない場合、ph_cc_alf_cr_enabled_flagに等しいと推論される。
slice_cc_alf_cr_aps_idは、スライスのCr色成分が参照するadaptation_parameter_set_idを規定する。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に等しいものとする。
colour_plane_idは、separate_colour_plane_flagが1に等しい場合は、現在のスライスに関連付けられた色平面を識別する。colour_plane_idの値は、0~2の範囲内にあるものとし、colour_plane_idの値0、1、2は、それぞれY、Cb、Cr平面に対応する。colour_plane_idの値3は、ITU-T|ISO/IECで将来使用されるように予約されている。
注1-1つのピクチャの異なる色平面の復号処理間には依存性がない。
1に等しいnum_idx_active_override_flagは、構文要素num_ref_idx_active_minus1[0]がPスライスおよびBスライスに存在し、構文要素num_ref_idx_active_minus1[1]がBスライスに存在することを規定する。0に等しいnum_ref_idx_active_override_flagは、構文要素num_ref_idx_active_minus1[0]およびnum_ref_idx_active_minus1[1]が存在しないことを規定する。存在しない場合、num_ref_idx_active_override_flagの値は1に等しいと推測される。
num_ref_idx_active_minus1[i]は、式143に規定するように、変数NumRefIdxActive[i]の導出に使用される。num_ref_idx_active_minus1[i]の値は、0から14までの範囲内にあるべきである。
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]は、以下のように導出される。
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

NumRefIdxActive[i]-1の値は、スライスを復号するために使用され得る参照ピクチャリストiの最大参照インデックスを規定する。NumRefIdxActive[i]の値が0に等しい場合、参照ピクチャリストiの参照インデックスを使用せずにスライスを復号することができる。
現在のスライスがPスライスであるとき、NumRefIdxActive[0]の値は0より大きいものとする。
現在のスライスがBスライスである場合、NumRefIdxActive[0]およびNumRefIdxActive[1]の両方が0よりも大きいものとする。
cabac_init_flagは、コンテキスト変数の初期化処理で使用される初期化テーブルを決定する方法を規定する。cabac_init_flagが存在しない場合、0に等しいと推測される。
1に等しいslice_collocated_from_l0_flagは、時間的動きベクトル予測に使用される同一位置に配置されたピクチャが参照ピクチャリスト0から導出されることを規定する。0に等しいslice_collocated_from_l0_flagは、時間的動きベクトル予測に使用される同一位置に配置されたピクチャが参照ピクチャリスト1から導出されることを規定する。
slice_typeがBまたはPであり、ph_temporal_mvp_enabled_flagが1に等しく、slice_collocated_from_l0_flagが存在しない場合、以下が適用される。
- rpl_info_in_ph_flagが1に等しい場合は、slice_collocated_from_l0_flagはph_collocated_from_l0_flagに等しいと推論される。
- そうでない場合(rpl_info_in_ph_flagが0に等しく、slice_typeがPに等しい場合)、slice_collocated_from_l0_flagの値は1に等しいと推論される。
slice_collocated_ref_idxは、時間的動きベクトル予測に使用される同一位置に配置されたピクチャの参照インデックスを規定する。
slice_typeがPであるか、またはslice_typeがBに等しく、slice_collocated_from_l0_flagが1に等しい場合は、slice_collocated_ref_idxは、参照ピクチャリスト0のエントリを参照し、slice_collocated_ref_idxの数値は、0からNumRefIdxActive[0]-1の範囲内にあるものとする。
slice_typeがBに等しく、slice_collocated_from_l0_flagが0に等しい場合、slice_collocated_ref_idxの値は、参照ピクチャリスト1のエントリを参照し、slice_collocated_ref_idxは、0からNumRefIdxActive[1]-1の範囲内にあるものとする。
slice_collocated_ref_idxが存在しない場合、以下が適用される。
- rpl_info_in_ph_flagが1に等しい場合は、slice_collocated_ref_idxの値はph_collocated_ref_idxに等しいと推論される。
- そうでない場合(rpl_info_in_ph_flagが0に等しい)、slice_collocated_ref_idxの値は0に等しいと推論される。
slice_collocated_ref_idxが参照するピクチャは、コーディングされたピクチャのすべてのスライスで同じであるものとすることが、ビットストリーム適合性の要件である。
slice_collocated_ref_idxで参照される参照ピクチャのpic_width_in_luma_samplesとpic_height_in_luma_samplesの値が、それぞれ現在のピクチャのpic_width_in_luma_samplesとpic_height_in_luma_samplesと同じであるものとし、RprConstraintsActive[slice_collocated_from_l0_flag?0:1][slice_collocated_ref_idx]は0に等しいものとすることが、ビットストリーム適合性の要件である。
slice_qp_deltaは、スライスにおけるコーディングブロックに使用されるQpの最初の値を、コーディングユニットレイヤにおけるCuQpDeltaValの値で修正されるまで規定する。
qp_delta_info_in_ph_flagが0に等しい場合、スライスのQp量子化パラメータSliceQpの初期値は、以下のように導出される。
SliceQp=26+init_qp_minus26+slice_qp_delta (144)
SliceQpの値は、-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]に適用される。
slice_cb_qp_offsetは、Qp’cb量子化パラメータの値を決定するときに、pps_cb_qp_offsetの値に加える差分を規定する。slice_cb_qp_offsetの値は、-12以上+12以下とする。slice_cb_qp_offsetが存在しない場合、これは0に等しいと推測される。pps_cb_qp_offset+slice_cb_qp_offsetの値は、-12~+12の範囲内となる。
slice_cr_qp_offsetは、Qp’cr量子化パラメータの値を決定するときに、pps_cr_qp_offsetの値に加える差分を規定する。slice_cr_qp_offsetの値は、-12以上+12以下とする。slice_cr_qp_offsetが存在しない場合、これは0に等しいと推測される。pps_cr_qp_offset+slice_cr_qp_offsetの値は、-12~+12の範囲内となる。
slice_joint_cbcr_qp_offsetは、Qp’CbCrの値を決定するときに、pps_joint_cbcr_qp_offsetの値に加える差分を規定する。slice_joint_cbcr_qp_offsetの値は、-12以上+12以下とする。slice_joint_cbcr_qp_offsetが存在しない場合、これは0に等しいと推測される。pps_joint_cbcr_qp_offset_value+slice_joint_cbcr_qp_offsetの値は、-12以上+12以下とする。
1に等しいcu_chroma_qp_offset_enabled_flagは、cu_chroma_qp_offset_flagが変換ユニットおよびパレットコーディング構文に存在し得ることを規定する。0に等しいcu_chroma_qp_offset_enabled_flagは、cu_chroma_qp_offset_flagが変換ユニットまたはパレットコーディング構文に存在しないことを規定する。存在しない場合、cu_chroma_qp_offset_enabled_flagの値は0に等しいと推測される。
1に等しいslice_sao_luma_flagは、現在のスライスにおける輝度成分に対してSAOが有効化されることを規定する。0に等しいslice_sao_luma_flagは、現在のスライスにおける輝度成分に対してSAOが無効化されることを規定する。slice_sao_luma_flagが存在しない場合、ph_sao_luma_enabled_flagに等しいと推論される。
1に等しいslice_sao_chroma_flagは、現在のスライスにおけるクロマ成分に対してSAOが有効化されることを規定する。0に等しいslice_sao_chroma_flagは、現在のスライスにおけるクロマ成分に対してSAOが無効化されることを規定する。slice_sao_chroma_flagが存在しない場合、ph_sao_chroma_enabled_flagに等しいと推論される。
1に等しいslice_deblocking_filter_override_flagは、スライスヘッダにデブロッキングパラメータが存在することを規定する。0に等しいslice_deblocking_filter_override_flagは、デブロッキングパラメータがスライスヘッダに存在しないことを規定する。存在しない場合、slice_deblocking_filter_override_flagの値はph_deblocking_filter_override_flagに等しいと推論される。
1に等しいslice_deblocking_filter_disabled_flagは、現在のスライスに対してデブロッキングフィルタの演算が適用されないことを規定する。0に等しいslice_deblocking_filter_disabled_flagは、現在のスライスに対してデブロッキングフィルタの演算が適用されることを規定する。slice_deblocking_filter_disabled_flagが存在しない場合、ph_deblocking_filter_disabled_flagに等しいと推論される。
slice_beta_offset_div2およびslice_tc_offset_div2は、現在のスライスの輝度成分に適用されるβおよびtCのデブロッキングパラメータオフセット(2で割られた)を規定する。slice_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に等しいと推論される。
slice_cb_beta_offset_div2およびslice_cb_tc_offset_div2は、現在のスライスのCb成分に適用されるβおよびtCのデブロッキングパラメータオフセット(2で割られた)を規定する。slice_cb_beta_offset_div2およびslice_cb_tc_offset_div2の値は、いずれも-12~12の範囲内にあるものとする。存在しない場合、slice_cb_beta_offset_div2およびslice_cb_tc_offset_div2の値は、それぞれph_cb_beta_offset_div2およびph_cb_tc_offset_div2に等しいと推論される。
slice_cb_beta_offset_div2およびslice_cb_tc_offset_div2は、現在のスライスのCr成分に適用されるβおよびtCのデブロッキングパラメータオフセット(2で割られた)を規定する。slice_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に等しいと推論される。
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に等しいと推論される。
1に等しいslice_lmcs_enabled_flagは、現在のスライスに対して、クロマスケーリングを伴う輝度マップピンを有効にすることを規定する。0に等しいslice_lmcs_enabled_flagは、現在のスライスに対して、クロマスケーリングを伴う輝度マッピングが有効でないことを規定する。slice_lmcs_enabled_flagが存在しない場合、0に等しいと推論される。
1に等しいslice_scaling_list_present_flagは、SCALING_APSに等しいaps_params_typeとph_scaling_list_aps_idに等しいadaptation_parameter_set_idを有する参照スケーリングリストAPSに含まれるスケーリングリストデータに基づいて、現在のスライスに使用されるスケーリングリストデータを導出することを規定する。0に等しいslice_scaling_list_present_flagは、現在のピクチャに対して使用したスケーリングリストデータが、7.4.3.21項に規定された、導出されたデフォルトのスケーリングリストデータであることを規定する。存在しない場合、slice_scaling_list_present_flagの値は0と推測される。
現在のスライスにおけるエントリ点の数を規定する変数NumEntryPointsは、以下のように導出される。
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_wpp_entry_point_offsets_present_flag))
NumEntryPoints++

offset_len_minus1+1は、entry_point_offset_minus1[i]構文要素の長さをビット単位で規定する。offset_len_minus1の値は、0~31の範囲内にあるものとする。
entry_point_offset_minus1[i]+1は、i番目のエントリポイントのオフセットをバイトで規定し、offset_len_minus1プラス1ビットで表現される。スライスヘッダの後に続くスライスデータは、NumEntryPoints+1個のサブセットで構成され、サブセットインデックス値は0からNumEntryPointsまでの範囲内にある。スライスデータの第1バイトをバイト0とする。存在する場合、コーディングされたスライスNALユニットのスライスデータ部分に現れるエミュレーション防止バイトは、サブセット特定のために、スライスデータの一部としてカウントされる。サブセット0は、コーディングされたスライスデータの0からentry_point_offset_minus1[0]まで(両端を含む)のバイトで構成され、サブセットk(1からNumEntryPoints-1の範囲(両端を含む))は、コーディングされたスライスデータのfirstByte[k]からlastByte[k]まで(両端を含む)のバイトで構成され、firstByte[k]およびlastByte[k]は以下で定義される。
【数1】

最後のサブセット(サブセットインデックスが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行の総数に等しいものとする。
slice_header_extension_lengthは、スライスヘッダの拡張データの長さをバイトで規定する。slice_header_extension_length自体の信号通知に使用されるビットは含まない。slice_header_extension_lengthの値は、0から256までの範囲内にあるべきである。存在しない場合、slice_header_extension_lengthの値は0に等しいと推測される。
slice_header_extension_data_byte[i]は、任意の値を有していてもよい。本明細書のバージョンに準拠するデコーダは、すべてのslice_header_extension_data_byte[i]構文要素の値を無視しなければならない。その値は、本明細書のバージョンで特定された特徴に対するデコーダの適合性に影響を与えない。
【0035】
3.4 インターブロックの復号処理-端数サンプル補間処理
最近のVVC草案テキストにおいて、端数サンプル補間処理の復号処理は、以下の通りである。
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の符号化サブブロックの左上のサンプルを規定する輝度位置(xSb,ySb)、
- 現在の符号化サブブロックの幅を規定する変数sbWidth、
- 現在の符号化サブブロックの高さを規定する変数sbHeight、
- 動きベクトルオフセットmvOffset
- 微調整動きベクトルrefMvLX
- 選択した参照ピクチャサンプル配列refPicLX。
- 1/2サンプル補間フィルタインデックスhpelIfIdx、
- デコーダ側動きベクトル微調整フラグdmvrFlag。
- 双方向オプティカルフローフラグbdofFlag。
- 選択された参照ピクチャがスケーリングを必要とするかどうかを示す変数refPicIsScaled。
- 現在のブロックの色成分インデックスを規定する変数cIdx。
- 水平および垂直の2つのスケーリング比のリスト、scalingRatio。
この処理の出力は以下の通りである。
- 予測サンプル値の(sbWidth+brdExtSize)x(sbHeight+brdExtSize)配列predSamplesLX。
予測ブロックの境界拡張サイズbrdExtSizeは、以下のように導出される。
brdExtSize=(bdofFlag||(inter_affine_flag[xSb][ySb]&&!ph_disable_prof_flag))?2:0 (934)
変数refWraparoundEnabledFlagは(pps_ref_wraparound_enabled_flag&&!refPicIsScaled)に等しく設定される。
変数fRefLeftOffsetは((SubWidthC*scaling_win_left_offset)<<10)に等しく設定され、scaling_win_left_offsetは参照ピクチャに対するscaling_win_left_offsetである。
変数fRefTopOffsetは((SubWidthC*scaling_win_top_offset)<<10)に等しく設定され、scaling_win_top_offsetは参照ピクチャに対するscaling_win_top_offsetとなる。
予測サンプル値の(sbWidth+brdExtSize)x(sbHeight+brdExtSize)配列predSamplesLXは、以下のように導出される。
- 動きベクトルmvLXは、(refMvLX-mvOffset)に等しく設定される。
- cIdxが0に等しい場合、以下が適用される。
- (xInt,yInt)をフルサンプルユニットで与えられた輝度位置とし、(xFrac,yFrac)を1/16サンプルユニットで求めたオフセットとする。これらの変数は、本項でのみ、参照サンプル配列refPicLX内の端数サンプル位置を規定するために使用される。
- 参照サンプルパディング用バウンディングブロック(xSbInt,ySbInt)の左上座標は、(xSb+(mvLX[0]>4)、ySb+(mvLX[1]>>4)に等しく設定される。
- 予測輝度サンプルアレイpredSamplesLX内の各輝度サンプル位置(x=0..sbWidth-1+brdExtSize,y=0..sbHeight-1+brdExtSize)について、対応する予測輝度サンプル値predSamplesLX[x][y]は以下のように導出される。
- (refxSb,refySb)および(refx,refy)を、1/16サンプル単位で与えられる動きベクトル(refMvLX[0],refMvLX[1])が指す輝度位置とする。変数refxSb、refx、refySb、およびrefyは、以下のように導出される。
refxSb=(((xSb-(SubWidthC*scaling_win_left_offset))<<4)+
refMvLX[0])*scalingRatio[0] (935)
refx=((Sign(refxSb)*((Abs(refxSb)+128)>>8)+
*((scalingRatio[0]+8)>>4))+fRefLeftOffset+32)>>6 (936)
refySb=(((ySb-(SubWidthC*scaling_win_top_offset))<<4)+
refMvLX[1])*scalingRatio[1] (937)
refy=((Sign(refySb)*((Abs(refySb)+128)>>8)+yL*
((scalingRatio[1]+8)>>4))+fRefTopOffset+32)>>6 (938)
- 変数xInt、yInt、xFracおよびyFracは、以下のように導出される。
xInt=refx>>4 (939)
yInt=refy>>4 (940)
xFrac=refx&15 (941)
yFrac=refy&15 (942)
- 予測輝度サンプル値predSamplesLX[x][y]は、以下のように導出される。
【化1】

- xが0に等しい
- xがsbWidth+1に等しい
-yが0に等しい
-yがsbHeight+1に等しい
- あるいは、(xIntL-(brdExtSize>0?1:0)、yIntL-(brdExtSize>0?1:0))、(xFracL,yFracL)、(xSbInt,ySbInt)、refPicLX、hpelIfIdx、sbWidth、sbHeight、dmvrFlag、refWraparoundEnabledFlag、scalingRatio[0]、scalingRatio[1]、および(xSb,ySb)を入力として、8.5.6.3.2項で規定された輝度サンプル8タップ補間フィルタリング処理を呼び出すことによって、予測輝度サンプル値predSamplesLX[xL][yL]を導出させる。
-そうでない場合(cIdxは0に等しくない)、以下が適用される。
- (xIntC,yIntC)をフルサンプルユニットで与えられた彩度位置とし、(xFracC,yFracC)を1/32サンプルユニットで求めたオフセットとする。これらの変数は、本項でのみ、参照サンプル配列refPicLX内の一般的な端数サンプル位置を規定するために使用される。
- 参照サンプルパディング用バウンディングブロック(xSbIntC,ySbIntC)の左上座標は、((xSb/SubWidthC)+(mvLX[0]>>5)、(ySb/SubHeightC)+(mvLX[1]>>5))に等しく設定される。
- 予測彩度サンプルアレイpredSamplesLX内の各彩度サンプル位置(xC=0..sbWidth-1,yC=0..sbHeight-1)について、対応する予測輝度サンプル値predSamplesLX[xC][yC]は以下のように導出される。
- (refxSb、refySb)および(refx,refy)を、1/32サンプル単位で求めた動きベクトル(refMvLX[0],refMvLX[1])が指す彩度位置とする。変数refxSb、refySb、refxおよびrefyは、以下のように導出される。
addX=sps_chroma_horizontal_collocated_flag?0:8*(scalingRatio[0]-(1<<14)) (943)
addY=sps_chroma_vertical_collocated_flag?0:8*(scalingRatio[1]-(1<<14)) (944)
refxSb=(((xSb-(SubWidthC*scaling_win_left_offset))/SubWidthC<<5)+
refMvLX[0])*scalingRatio[0]+addX (945)
refx=((Sign(refxSb)*((Abs(refxSb)+256)>>9)
+xC*((scalingRatio[0]+8)>>4))+fRefLeftOffset/SubWidthC+16)>>5 (946)
refySb=(((ySb-(SubWidthC*scaling_win_top_offset))/SubHeightC<<5)+
refMvLX[1])*scalingRatio[1]+addY (947)
refy=((Sign(refySb)*((Abs(refySb)+256)>>9)
+yC*((scalingRatio[1]+8)>>4))+fRefTopOffset/SubHeightC+16)>>5 (948)
- 変数xInt、yInt、xFrac、およびyFracは、以下のように導出される。
xInt=refx>>5 (949)
yInt=refy>>5 (950)
xFrac=refx&31 (951)
yFrac=refy&31 (952)
- 予測サンプル値predSamplesLX[xC][yC]は、(xIntC,yIntC)、(xFracC,yFracC)、(xSbIntC,ySbIntC)、sbWidth、sbHeight、refPicLX、dmvrFlag、refWraparoundEnabledFlag、scalingRatio[0]、and scalingRatio[1]を入力として8.5.6.3.4項で規定する処理を呼び出すことによって導出される。
注-8.4.5.2.13項で規定されている処理とは異なり、この処理ではsps_chroma_vertical_collocated_flagおよびsps_chroma_horizontal_collocated_flagの両方を使用する。
【0036】
4.技術的解決策および実施例によって解決される技術的課題
デブロッキング、スケーリング、およびPROFのための既存の設計は、以下の問題を有する。
1)現在、PPS、PH、SH構文要素におけるデブロッキング(DB)制御の設計ロジックには、いくつかの問題がある。
a.第1に、PPSを参照するスライスにデブロッキングフィルタを適用するかどうかを規定するために使用するPPS構文要素pps_deblocking_filter_disabled_flagの現在の意味論に従って、SH構文要素slice_deblocking_filter_disabled_flagをチェックする。ただし、slice_deblocking_filter_disabled_flagの他に、PH構文要素ph_deblocking_filter_disabled_flagもpps_deblocking_filter_disabled_flagとともにチェックするべきである。そのため、pps_deblocking_filter_disabled_flagの現在の意味論は正しくない。
b.第2に、現在の草案テキストに従って、SH構文要素slice_deblocking_filter_override_flagが存在しない場合、それはph_deblocking_filter_override_flagに等しいと推測される。しかし、PPSにおける非明示的または明示的な信号通知の他に、デブロッキングパラメータは、dbf_info_in_ph_flagに従ってPHまたはSHのいずれか一方でのみ信号通知することができ、両方が信号通知されることはない。そのため、dbf_info_in_ph_flagが真である場合、PHにおけるオーバーライドデブロッキングフィルタパラメータを信号通知することを許可することが意図される。この場合、PHオーバーライドフラグが真であり、SHオーバーライドフラグが信号通知されないが、PHオーバーライドフラグに等しいと推測される場合、SHにおいて、追加のデブロッキングフィルタパラメータが依然として信号通知されるが、これは、意図と矛盾する。
c.第3に、現在の草案テキストに従って、PPS構文要素deblocking_filter_override_enabled_flagが1に等しく、一方、pps_deblocking_filter_disabled_flagが1に等しければ、ph_deblocking_filter_disabled_flagまたはslice_deblocking_filter_disabled_flagはやはり1に等しいと明示的に信号通知してもよい。しかしながら、このような場合は、PPSにおいてデブロッキングが無効化され、それがオーバーライドされることになることを意味するが、オーバーライド処理は、何も変更せず(例えば、PH/SHにおいてデブロッキングは無効化されたままである)、信号通知のためにビットを浪費する。
d.第4に、デブロッキングのための現在の設計ロジックは、PPSにおいてデブロッキングが無効化されても、PH/SHにおいてデブロッキングを有効化することができる可能性を許容する。このような設計ロジックは、ALF、SAO、LMCS、TMVP、WP等のような他のほとんどのコーディングツールの設計ロジックとは全く異なる。
e.PPS DB無効化フラグ(すなわち、pps_deblocking_filter_disabled_flag)は、deblocking_filter_control_present_flagが1に等しい時にのみ信号通知され、フラグが存在しない場合は、0に等しいと推論される。すなわち、その意図は、デフォルトでDBを有効化することである。2つの構文要素(すなわち、PPS DB無効化フラグおよびdeblocking_filter_control_present_flag)は、若干冗長性がある。よりよい設計が必要である。
2)最近のVVC草案テキストによれば、PROFのために生成される予測ブロックのサイズは、それがアフィンAMVPモードであるかまたはアフィンMERGEモードであるかに依存する。アフィンコードディングされたブロックのサブブロックの幅および高さをsbWidthand sbHeightとすると、現在のテキストにおいて、条件「inter_affine_flag[xSb][ySb]&&!ph_disable_prof_flag」に従って、PROFをアフィンAMVPブロックに適用する場合、PROFに(sbWidth+2)x(sbHeight+2)などの拡張サンプルを含む予測ブロックを使用するが、PROFをアフィンMERGEブロックに適用する場合、sbWidthx sbHeightの予測ブロックをPROFに使用する。このような設計は、アフィンAMVPを有するPROFとアフィンMERGEを有するPROFとの間で異なる処理機構を引き起こす。
a.また、PROFのサブブロック内で内部予測サンプルを生成するために8タップ補間フィルタが用いられ、PROFのサブブロック外で拡張予測サンプルを生成するために8タップフィルタ以外の整数サンプルを使用する。しかし、現在のテキストによれば、アフィンMERGEを有するPROFのための拡張サンプルは存在しないため、アフィンAMVPを有するPROFとアフィンMERGEを有するPROFとの間に不一致を引き起こす。
3)現在、ピクチャレベルまたはスライスレベルの輝度qpデルタは、常にPHまたはSHのいずれかで信号伝達され、両方とも信号伝達されない。一方、スライスレベルの彩度qpオフセットは、選択可能にSHで信号通知され、ピクチャレベルの彩度qpオフセットのためのPH信号通知はない。このような設計は、一貫性/効率/柔軟性に欠ける場合がある。
4)最近のVVC草案テキストにおいて、デルタQP信号通知に関連するPH構文要素に許容される値の範囲の定義(例えば、ph_cu_qp_delta_subdiv_intra_slice、ph_cu_qp_delta_subdiv_inter_slice、ph_cu_chroma_qp_offset_subdiv_intra_slice、およびph_cu_chroma_qp_offset_subdiv_inter_slice)は正確ではない。
【0037】
5.解決策および実施形態の例示一覧
上述した問題点および上記以外の問題点を解決するために、以下のような方法が開示されている。これらの項目は、一般的な概念を説明するための例であり、狭義に解釈されるべきではない。さらに、これらの項目は、個々に適用されてもよく、または任意の方法で組み合わされてもよい。
【0038】
以下の説明において、DBFパラメータは、DBFオン/オフ制御パラメータおよびDBFフィルタパラメータ(例えば、pps_beta_offset_div2などのベータ/Tcオフセットの指示)を含んでいてもよい。
【0039】
以下の説明において、SHは1つのPHに関連付けられてもよく、すなわち、SHは1つのスライスに関連付けられ、このスライスはこのPHに関連付けられたピクチャ内にある。SHは1つのPPSに関連付けられてもよく、すなわち、SHは1つのスライスに関連付けられ、このスライスはこのPPSに関連付けられたピクチャ内にある。PHは、PPSに関連付けられてもよく、すなわち、PHは、PPSに関連付けられたピクチャに関連付けられる。
【0040】
以下の説明において、SPSはPPSに関連付けられてもよく、すなわち、PPSはSPSを指してもよい。
1.第1の問題を解決するための、PPS、PHおよびSHにおけるデブロッキング制御の設計に関して、例えば、第1の実施形態のセットのように、以下のアプローチを開示する。
a.一例において、PPSを参照するスライスに対してデブロッキングフィルタ(deblocking filter)の操作が適用されるかどうかは、関連付けられたPHのデブロッキングオン/オフフラグ(例えば、ph_deblocking_filter_disabled_flag)に依存してもよい。
i.例えば、PPSを参照するスライスにデブロッキングフィルタの動作を適用するかどうかは、PPSにおいてデブロッキングが無効化されている(例えば、pps_deblocking_filter_disabled_flagが1に等しい)かどうか、およびデブロッキングがピクチャレベルで無効化されている(例えば、ph_deblocking_filter_disabled_flagが1に等しい)かどうか、および、デブロッキングがスライスレベルで無効化されているかどうか(例えば、slice_deblocking_filter_disabled_flagが1に等しいかどうか)に依存してもよい。
ii.代替的に、PPSを参照するスライスにデブロッキングフィルタの動作を適用するかどうかは、PPSにおいてデブロッキングが無効化されている(例えば、pps_deblocking_filter_disabled_flagが1に等しい)かどうか、およびデブロッキングオーバーライドがピクチャレベルおよびスライスレベルで無効化されているかどうか、(例えば、slice_deblocking_filter_disabled_flagが0に等しいかどうか)に依存してもよい。
iii.代替的に、PPSを参照するスライスにデブロッキングフィルタの操作を適用するかどうかは、PPSにおいてデブロッキングが無効化されている(例えば、pps_deblocking_filter_disabled_flagが1に等しい)かどうかのみに依存してもよい。
b.さらに、slice_deblocking_filter_override_flagが存在しない場合、slice_deblocking_filter_override_flagの値は、ph_deblocking_filter_override_flagに依存しなくてもよい(0などの一定の値であると推測できる)。
c.さらに、代替的に、PH構文要素ph_deblocking_filter_disabled_flagおよび/またはSH構文要素slice_deblocking_filter_disabled_flagが明示的に信号通知されるか、暗黙的に推測されるかどうかはpps_deblocking_filter_disabled_flagのようなPPSデブロッキングオンオフフラグの値に依存してもよい。
d.第1のレベル(例えば、PPS)でDBFを無効化する場合、より低いレベル(例えば、PH/SH)でDBFを有効化にすることは許可しないことが求められる。
i.例えば、PH/SHにおけるピクチャ/スライスレベルのDBFオン/オフ制御パラメータの存在は、PH/SHにおいて信号通知されるDBFオーバーライドフラグの値以外に、PPSにおいて信号通知されるDBFオン/オフフラグの値(例えば、pps_deblocking_filter_disabled_flag)に直接依存してもよい。
1)例えば、PPS DBF on/off制御パラメータが、PPSを参照するスライスに対してデブロッキングを無効化することを規定した(pps_deblocking_filter_disabled_flagが1に等しい)場合、PH/SH DBFオン/オフ制御パラメータは信号通知されなくてもよい。
ii.さらに、PPS/PH/SHにおけるDBFオン/オフ制御パラメータの存在は、PPS、PH、およびSHにおけるDBFオン/オフ制御パラメータおよびDBFフィルタパラメータの両方の存在を規定するDBFグローバル制御フラグ(例えば、PPSにおけるdeblocking_filter_control_present_flag)に基づいて直接調整されてもよい。
1)例えば、DBFグローバル制御フラグが、DBFオン/オフ構築パラメータもDBFフィルタパラメータも信号通知されないことを規定した場合(deblocking_filter_control_present_flagが0に等しい)、PPS/PH/SH DBFオン/オフ制御パラメータは信号通知されなくてもよい。
iii.さらに、PPSデブロッキングオン/オフフラグが存在しない場合、それは0または1等の一定の値に等しいと推測できる。
iv.さらに、PHデブロッキングオン/オフフラグが存在しない場合、PPSデブロッキングオン/オフフラグの値と等しいと推測できる。
v.さらに、PHデブロッキングオン/オフフラグが存在しない場合、PPS/PHデブロッキングオン/オフフラグの値と等しいと推測できる。
e.DBFが第1のレベル(例えば、PH)で有効化される場合、DBFはより低いレベル(例えば、SH)で無効化できることが求められる。
i.例えば、1つのピクチャにおける複数のスライスに対して、一部のスライスはデブロッキングフィルタを使用しており、一部のスライスはデブロッキングフィルタを使用しないことが認められている。
ii.例えば、SHにおけるDBFオン/オフ制御フラグの信号通知は、PH DBFオン/オフ制御フラグがいつであるかに依存してもよい。
1)例えば、現在のピクチャのためにDBFが有効化されるとき、現在のスライスがデブロッキングフィルタを使用しているかどうかを特定するように、スライスレベルのDBFオン/オフ制御フラグをさらに信号通知してもよい。
f.DBFオン/オフ制御パラメータおよび/またはDBFフィルタパラメータがPHまたはSHに存在するかどうかを規定するPPS構文要素「dbf_info_in_ph_flag」の信号通知は、deblocking_filter_override_enabled_flagのような他の構文要素に依存しなくてもよい。
i.さらに、代替的に、PH/SHにおけるピクチャ/スライスレベルのDBFオン/オフフラグの信号通知は、PH/SH DBFオーバーライドフラグ以外のdbf_info_in_ph_flagおよび/またはpps_deblocking_filter_enabled_flagに基づいて直接条件付けされてもよい。
g.PPS/PH/SHにおけるDBFオーバーライドフラグは、DBFオン/オフ制御パラメータ以外のDBFフィルタパラメータをオーバーライドするためにのみ使用されることが求められる。
i.例えば、DBFオン/オフ制御フラグを最初に信号通知し、次に、同じレベルのDBFオン/オフ制御フラグ(例えば、PPS/PH/SH)に基づいて条件付きでDBFオーバーライドフラグを信号通知する。
1)例えば、ピクチャ/スライスレベルのDBFオン/オフ制御パラメータを、PH/SH DBFオーバーライドフラグが真に等しいかどうかに関わらず、PH/SHにおいて信号通知してもよい。
2)例えば、ピクチャ/スライスレベルのDBFオン/オフ制御パラメータを、PPS DBFオーバーライドフラグが真に等しいかどうかに関わらず、PH/SHで信号通知してもよい。
3)例えば、DBFオーバーライドフラグは、同じレベルのDBFオン/オフ制御フラグ(例えば、PPS/PH/SH)に基づいて条件付きで信号通知される。
a.例えば、PPSデブロッキングオーバーライド許可フラグ(例えば、deblocking_filter_override_enabled_flag)の信号通知は、PPSにおいてデブロッキングが有効化されているかどうか(例えば、PPSにおけるpps_deblocking_filter_disabled_flagが0に等しい)に依存してもよい。
i.例えば、PPSにおいてデブロッキングが無効化されている場合、PPS構文要素deblocking_filter_override_enabled_flagは信号通知されない。
b.例えば、PHデブロッキングオーバーライドフラグ(例えば、ph_deblocking_filter_override_flag)の信号通知は、PHにおいてデブロッキングが有効である(例えば、ph_deblocking_filter_disabled_flagが0に等しい)かどうかに依存してもよい。
i.例えば、PHにおいてデブロッキングが無効化されている場合、PH構文要素ph_deblocking_filter_override_flagは信号通知されない。
c.例えば、SHデブロッキングオーバーライドフラグ(例えば、slice_deblocking_filter_override_flag)の信号通知は、SHにおいてデブロッキングが有効である(例えば、slice_deblocking_filter_disabled_flagが0に等しい)かどうかに依存してもよい。
i.例えば、SHにおいてデブロッキングが無効化されている場合、SH構文要素slice_deblocking_filter_override_flagは信号通知されない。
d.さらに、PPS/PH/SHデブロッキングオーバーライドフラグが存在しない場合、一定の値(例えば0)に等しいと推測できる。
4)例えば、DBFフィルタパラメータの信号通知は、DBFオン/オフ制御フラグ以外のDBFオーバーライドフラグを直接条件としてもよい。
a.例えば、PHにおけるDBFフィルタパラメータ(例えば、ph_beta_offset_div2、ph_tc_offset_div2、ph_cb_beta_offset_div2、ph_cb_tc_offset_div2、ph_cr_beta_offset_div2、ph_cr_tc_offset_div2)の存在は、PH内のDBFオン/オフフラグ(例えば、ph_deblocking_filter_disabled_flag)以外のPHにおけるDBFオーバーライドフラグ(例えば、ph_deblocking_filter_override_flag)に基づいて直接条件化されてもよい。
b.例えば、SHにおけるDBFフィルタパラメータ(例えば、slice_beta_offset_div2、slice_tc_offset_div2、slice_cb_beta_offset_div2、slice_cb_tc_offset_div2、slice_cr_beta_offset_div2、slice_cr_tc_offset_div2)の存在は、SH内のDBFオン/オフフラグ(例えば、slice_deblocking_filter_disabled_flag)以外のSHにおけるDBFオーバーライドフラグ(例えば、slice_deblocking_filter_override_flag)に基づいて直接条件化されてもよい。
h.PPS/PH/SHにおけるDBFのオン/オフ制御は、DBFの「無効化」フラグ以外のDBFの「有効化」フラグに依存してもよいことが求められる。
i.例えば、DBF有効化フラグ(例えば、pps_deblocking_filter_enabled_flagと呼ばれる)を、PPSを参照するスライスに対してデブロッキングが有効化されるかどうかを特定するように、PPSにおいて信号通知してもよい。
ii.例えば、PPS DBF有効化フラグを、DBFグローバル制御フラグ(例えば、PPSにおけるdeblocking_filter_control_present_flag)等の他の構文要素に依存せずに信号通知してもよい。
iii.例えば、DBFがより高いレベル(例えば、PPSまたはPH)で無効化された場合、より低いレベル(例えば、PHおよび/またはSH)のDBF有効化フラグの信号通知は存在せず、より高いレベル(例えば、PPS/PH)のオン/オフ制御フラグの値に等しいと推測される。
iv.例えば、DBFグローバル制御フラグ(例えば、PPSにおけるdeblocking_filter_control_present_flag)は、PPS/PH/SHにおけるDBFオーバーライドフラグおよびPPS/PH/SHにおけるDBFフィルタパラメータの存在を制御するためにのみ用いることができる。
1)例えば、DBFグローバル制御フラグ(例えば、PPSにおけるdeblocking_filter_control_present_flag)は、PPS/PH/SHにおけるDBFオン/オフ制御パラメータの存在を制御するために用いられることはない。
2)例えば、PPSにおいてDBFが有効化されている(例えば、pps_deblocking_filter_enabled_flagが1に等しい)場合にのみ、DBFグローバル制御フラグが信号通知される。
a.例えば、PPSにおいてDBFが無効化されている(例えば、pps_deblocking_filter_enabled_flagが0に等しい)場合、DBFグローバル制御フラグは信号通知されない。
b.さらに、PPSにおいてデブロッキングが無効化されている場合、deblocking_filter_control_present_flagは0に等しいと推測される。
3)例えば、PPSにおけるDBFオーバーライド有効化/無効化フラグの信号通知(例えば、PPSにおけるdeblocking_filter_override_enabled_falg)は、PPSにおけるDBFオン/オフフラグ以外のDBFグローバル制御フラグに基づいて直接調整されてもよい。
4)例えば、ベータ値およびtc値等のPPS DBFパラメータの信号通知は、PPSにおけるDBFオン/オフフラグ以外のDBFグローバル制御フラグに基づいて直接条件付けられてもよい。
i.DBFオン/オフ制御パラメータまたはDBFフィルタパラメータのいずれかをオーバーライドにすることを許可するか、両方を許可しないことが求められる。
i.一例において、オーバーライドメカニズムは、PPS/PH/SHにおいて許可されてもよい。
ii.一例において、異なるレベル(例えば、PPS/PH/SH)でDBFオン/オフ制御パラメータのみをオーバーライドできる場合、以下がさらに適用されてもよい。
1)DBFフィルタパラメータを、第1のレベル(例えば、PPS)でのみ信号通知してもよく、DBFがより小さな映像ユニットによって有効になる場合、すべての小さな映像ユニット(例えば、ピクチャ/スライス)は、第1のレベルに関連付けられたパラメータに従属している。
iii.一例において、異なるレベル(例えば、PPS/PH/SH)でDBFフィルタパラメータのみをオーバーライドすることができる場合、以下がさらに適用されてもよい。
1)DBFオン/オフ制御パラメータを、第1のレベル(例えば、PPS)でのみ信号通知してもよく、DBFがより小さな映像ユニットによって有効になる場合、すべての小さな映像ユニット(例えば、ピクチャ/スライス)は、第1のレベルに関連付けられたパラメータに従属している。
j.DBFがより高いレベル(例えば、PPS)で無効化されている場合、より小さな映像ユニット(例えば、PH/SH)におけるDBFのオン/オフ制御パラメータをオーバーライディングを無効化することが求められる。
i.さらに、代替的に、より小さい映像ユニットレベル(例えば、PH/SH)でのDBFオン/オフ制御パラメータの信号通知は、より高いレベル(例えば、PPS)のDBFオン/オフ制御パラメータがオンであるという条件チェック下にあってもよい。
1)さらに、代替的に、小さい方の映像ユニットレベルに存在しない場合、DBFは無効化されているか、または有効であるか、または高い方の映像ユニットレベルのオン/オフ状態に等しいと推測される。
k.PPSでは、「deblocking_filter_control_present_flag」を削除し、「deblocking_filter_control_present_flag」による制御の代わりにDBFの有効化/無効化を示す第1の構文要素を直接信号通知することができる。
i.代替的に、DBFを有効化することに対応する第1の構文要素に従って、DBFフィルタパラメータのオーバーライドを許可するかどうかを示す第2の構文要素をさらに信号通知してもよい。
1)さらに、代替的に、オーバーライドを許可することを示す第2の構文要素に従って、DBFフィルタパラメータを信号通知してもよい。
l.PPSでは、「deblocking_filter_control_present_flag」を削除し、「deblocking_filter_control_present_flag」による制御の代わりに、DBF パラメータのオーバーライドが許可されているかどうかを示す第1の構文要素を直接信号通知してもよい。
i.さらに、代替的に、DBFを有効化/無効化することを示す第2の構文要素を、オーバーライドを許可することをに対応する第1の構文要素に従ってさらに信号通知してもよい。
1)さらに、代替的に、DBFを有効にすることを示す第2の構文要素に従って、DBFフィルタパラメータを信号通知してもよい。
m.PPSの代わりに、DBFオン/オフ制御フラグおよび/またはDBFパラメータがPHまたはSHで信号通知されるかどうかを示す構文要素(例えば、dbf_info_in_ph_flag)をPHで信号通知してもよい。
n.一例において、DBFオン/オフ制御フラグおよび/またはDBFパラメータを、PHおよびSHの両方において信号通知してもよい。
i.例えば、SHにおいて信号通知されるDBFオン/オフ制御フラグおよび/またはDBFパラメータは、PHにおいて信号通知されるパラメータをオーバーライドしてもよい。
o.SPSにおいて、DBFオン/オフ制御フラグおよび/またはDBFパラメータを信号通知してもよいことが求められる。
i.SPSにおいて信号通知されるDBFオン/オフ制御フラグを、PPS、PHまたはSH等の低レベル映像ユニットにおいて信号通知されるDBFオン/オフ制御フラグによってオーバーライドしてもよい。
ii.SPSにおいて信号通知されるDBFパラメータを、PPS、PHまたはSH等の低レベル映像ユニットにおいて信号通知されるDBFパラメータによってオーバーライドしてもよい。
p.例えば、本書の6.1.4項の実施形態のような実施形態の第1のセットにおけるように、非バイナリ値を有する構文(例えば、フラグ以外の指標)を、デブロッキングモードを規定するように、映像ユニットレベル(例えば、PPS/SPS)で信号通知してもよい。一例において、PPSにおいて、Nビットモード指標に信号通知し、デブロッキングフィルタモードを規定してもよい。
i.例えば、N=2である。
ii.例えば、2ビットモードの指標(例えば、deblocking_filter_mode_idcと呼ばれる)がPPSに追加され、その意味論は以下のとおりである。
deblocking_filter_mode_idcが0に等しい場合は、PPSを参照するすべてのスライスにデブロッキングフィルタを適用しないことを規定する。deblocking_filter_mode_idcが1に等しい場合は、PPSを参照するすべてのスライスにデブロッキングフィルタを適用することを規定し、βのための0値デブロッキングパラメータオフセットおよびtCを使用する。deblocking_filter_mode_idcが2に等しい場合は、PPSを参照するすべてのスライスにデブロッキングフィルタを適用することを規定し、βのためのデブロッキングパラメータオフセットおよびtCはPPSに明示的に信号通知される。deblocking_filter_mode_idcが3に等しい場合は、デブロッキングフィルタをPPSを参照するスライスに適用するかどうかは、PHまたはスライスのスライスヘッダに存在するパラメータによって制御されることを規定する。
iii.さらに、PPSにおけるDBFフィルタパラメータの信号通知は、モード指標の値に依存する。
a.例えば、モード指標が特定の条件(例えば、一定の値Xよりも大きい、例えば、X=1)を満たす場合、DBFフィルタパラメータは、PPSにおいて信号通知される。そうでない場合、PPS DBFフィルタパラメータは0であると推論される。
iv.さらに、DBFオン/オフ制御パラメータおよび/またはDBFフィルタパラメータがPHまたはSHに存在するかどうかを規定するPPS構文要素「dbf_info_in_ph_flag」の信号通知は、モード指標の値に依存してもよい。
a.例えば、モード指標が特定の条件を満たす(例えば、一定の値Yに等しい、例えば、Y=3)場合、PPS構文要素「dbf_info_in_ph_flag」が信号通知される。
i.さらに、PPS構文要素「dbf_info_in_ph_flag」が信号通知されていない場合、ある値(例えば、0または1)に等しいと推論される。
v.さらに、PHまたはSHにおけるDBFオン/オフ制御パラメータおよび/またはDBFフィルタパラメータの信号通知は、モード指標の値に依存してもよい。
a.例えば、モード指標が特定の条件(例えば、一定の値Yに等しい、例えば、Y=3)を満たす場合、PHにおいて、ピクチャレベルDBFオン/オフ制御フラグを信号通知してもよい。
b.例えば、モード指標が特定の条件を満たす(例えば、一定の値Yに等しい、例えば、Y=3)場合、SHにおいて、スライスレベルDBFオン/オフ制御フラグを信号通知してもよい。
q.DBFは、ピコ/スライスレベルで有効化にされ、DBFパラメータに対して0値のベータ/tcオフセットを使用することができる。
i.一例において、1つ以上の構文要素(例えば、explicit_default_deblocking_params_flagと呼ばれる)は、PPSにおいて信号通知してもよく、デフォルトのDBFパラメータが0値のベータ/tcオフセットを有するか、または明示的に信号通知されたベータ/tcオフセットを有するかどうかを規定することができ、後者の場合にのみ、ベータ/tcオフセットを明示的に信号通知する。PPSによって決定されたDBFパラメータおよびデフォルトのDBFパラメータは、ピクチャまたはスライスレベルで無効化されてもされなくてもよい。
ii.一例において、1つ以上の構文要素(例えば、explicit_default_deblocking_params_flagと呼ばれる)は、映像ユニットレベル(例えば、SPS/PPS/PH/SH)において信号通知して、0値のベータ/tcオフセットまたは明示的に信号通知されたベータ/tcオフセットを使用するかどうかを規定してもよく、後者の場合にのみ、ベータ/tcオフセットを明示的に信号通知してもよい。
2.第2の問題を解決するための、アフィンAMVPを有するPROFおよびアフィンMERGEを有するPROFの処理機構に関して、例えば、第2の実施形態のように、以下のアプローチの1つ以上を開示する。
a.アフィンMERGEコーディングされたブロックの場合、PROFを依然として適用することができ、M*N個のサブブロック(またはブロック)に対応する予測ブロックサイズは、M*Nよりも大きくてもよく、すなわち、(M+M0)*(N+N0)で表され、ここで、M0およびN0は、両方とも0に等しくない。
i.一例において、M0およびN0は、2に設定される。
b.PROF予測ブロック(サブブロック)を生成するために拡張サンプルを使用するかどうか、および/またはPROF予測ブロック(サブブロック)のためにいくつの拡張サンプルを生成するかは、例えば、cbProfFlagLXおよびXが0または1である、予測微調整ユーティリティフラグに依存してもよい。
i.アフィンAMVPを有するPROFサブブロックであっても、アフィンMERGEを有するPROFサブブロックであっても、一定の値の予測ブロック境界拡張サイズ(例えば、拡大幅および/または拡大高さおよび/または拡張サンプルの数)を使用してもよい。
a)例えば、PROFを適用するM×Nサブブロックの場合、サブブロックの幅をMとし、サブブロックの高さをNとすると、幅がX(例えば、X=2)個の拡張サンプルの幅およびY(例えば、Y=2)個の拡張サンプルの高さを使用して、PROFサブブロックがアフィンAMVPを有するPROFサブブロックであっても、またはアフィンMERGEを有するPROFサブブロックであっても、PROFサブブロックの(M+X)x(N+Y)予測サンプルを構築してよい。
ii.アフィンAMVPを有するPROFサブブロックであっても、アフィンMERGEを有するPROFサブブロックであっても、整数サンプルを使用して、PROF予測のための拡張サンプルを生成してよい。
3.第3の問題を解決するためのPHおよびSH qp デルタ/オフセット信号通知に関して、以下のアプローチの1つ以上が開示される。
a.一例において、第1の構文要素は、PH/SH(例えば、SPS/PPS)と比較してより高いレベルで信号通知され、輝度/彩度デルタQP信号通知が有効化されるかどうかを示してもよい。
i.一例において、PHおよび/またはSHにおける輝度qpデルタの存在は、例えば第3の実施形態のように、SPS/PPS輝度qpデルタ存在フラグ(例えば、pps_pic_slice_luma_qp_delta_present_flag)に依存してもよい。
a)例えば、SPS/PPS輝度qpデルタ存在フラグが、PH輝度qpデルタまたはSH輝度qpデルタのいずれも信号通知しないことを規定する場合、輝度qpデルタは、PHにおいて信号通知されず、SHにおいて信号通知されないことが必要である。
a.代替的に、SPS/PPS 輝度qpデルタ存在フラグが、PH/SH輝度qpデルタが存在しないことを規定する場合、輝度qpデルタは、PH/SHにおいて信号通知されないことが必要である。
b.さらに、PH輝度qpデルタが存在しない場合、ある値(例えば、0)であると推測できる。
c.さらに、SH輝度qpデルタが存在しない場合、ある値(例えば、0またはPH輝度qpデルタに等しい)であると推測できる。
b)さらに、輝度qpデルタがPHで信号通知されるかSHで信号通知されるかを規定するPPSスイッチフラグ(例えば、qp_delta_info_in_ph_flag)が存在するかどうかは、上記SPS/PPS 輝度qpデルタ存在フラグに依存してもよい。
a.例えば、SPS/PPS輝度qpデルタ存在フラグが、PH輝度qpデルタまたはSH輝度qpデルタのいずれも信号通知しないことを規定する場合、PPS切替フラグは、PHにおいて信号通知されず、SHにおいて信号通知されないことが必要である。
i.さらに、PPS切替フラグが存在しない場合、一定の値(例えば、0)に等しいと推測できる。
b.一例において、彩度(例えば、Cb、Cr、ジョイントCbCr)qpオフセットは、SHと比較してより高いレベルで信号通知されてもよい(例えば、PHにおいて、例えば、第3の実施形態のように)。
i.例えば、PHまたはSHにおいて彩度qpオフセットを信号通知するかどうかは、PPSスイッチフラグ(例えば、qp_offset_info_in_ph_flag)に依存してもよい。
a)例えば、PPSスイッチフラグが、彩度qpオフセットがPHで信号通知されることを規定する場合、彩度qpオフセットはSHで信号通知されない。
a.代替的に、PPSスイッチフラグが、彩度qpオフセットがPHで信号通知されていないことを規定した場合、SHにおいて、彩度qpオフセットを信号通知してもよい。
b.さらに、PH彩度qpオフセットが存在しない場合、ある値(例えば、0)であると推測できる。
c.さらに、SH彩度qpオフセットが存在しない場合、それはある値(例えば、0またはPH彩度qpオフセットに等しい)であると推測できる。
b)一例において、このフラグは、輝度デルタqpがPHまたはSHで信号通知されるかどうかを制御するためのフラグと同じである。
ii.さらに、代替的に、PHおよび/またはSHにおける彩度qpオフセットの存在は、SPS/PPS彩度qpオフセット存在フラグ(例えば、pps_pic_slice_chroma_qp_offset_present_flag)に依存してもよい。
a)例えば、SPS/PPS彩度qpオフセット存在フラグが、PHまたはSH彩度qpオフセットのいずれも信号通知しないことを規定する場合、彩度qpオフセットは、PHにおいて信号通知されず、SHにおいて信号通知されないことが必要である。
b)さらに、彩度qpオフセットがPHで信号通知されるかSHで信号通知されるかを規定するPPSスイッチフラグ(例えば、qp_offset_info_in_ph_flag)が存在するかどうかは、上記SPS/PPS彩度qpオフセット存在フラグに依存してもよい。
a.SPS/PPS彩度qpオフセット存在フラグが、PHまたはSH彩度qpオフセットのいずれも信号通知しないことを規定する場合、PPSスイッチフラグは、信号通知されないことが必要である。
i.さらに、PPS切替フラグが存在しない場合、一定の値(例えば、0)に等しいと推測できる。
iii.qp_deltaおよび彩度qpオフセットの信号通知は、常に同じヘッダに含まれてもよい。
a)例えば、qp_deltaがPHにおいて信号通知される場合、彩度qpオフセットはSHにおいて信号通知されるべきではない。
b)例えば、qp_deltaがSHにおいて信号通知される場合、彩度qpオフセットはPHにおいて信号通知されるべきではない。
4.第2の課題を解決するためのPH構文要素ph_cu_qp_delta_subdiv_intra_slice、ph_cu_qp_delta_subdiv_inter_slice、ph_cu_chroma_qp_offset_subdiv_intra_slice、ph_cu_chroma_qp_offset_subdiv_inter_sliceの範囲に関して、例えば第4の実施形態と同様に1または複数の以下のアプローチを開示している。
a.cu_qp_delta_absおよびcu_qp_delta_sign_flagを伝えるイントラスライスにおけるコーディングユニットの最大cbSubdiv値の範囲(例えば、ph_cu_qp_delta_subdiv_intra_slice)は、ph_max_mtt_hierarchy_depth_intra_slice_lumaに依存しなくてもよく、例えば、0から2*(CtbLog2SizeY-MinQtLog2SizeIntraY)+2*(CtbLog2SizeY-MinCbLog2SizeY)の範囲内にあってもよい。
i.代替的に、0~2*(CtbLog2SizeY-MinQtLog2SizeIntraY)+2*min(ph_max_mtt_hierarchy_depth_intra_slice_luma、CtbLog2SizeY-MinCbLog2SizeY)までの範囲内にあってもよい。
b.cu_chroma_qp_offset_flagを伝えるイントラスライスにおけるコーディングユニットの最大cbSubdiv値の範囲(例えば、ph_cu_chroma_qp_offset_subdiv_intra_slice)は、ph_max_mtt_hierarchy_depth_intra_slice_lumaに依存しなくてもよく、例えば、0から2*(CtbLog2SizeY-MinQtLog2SizeIntraY)+2*(CtbLog2SizeY-MinCbLog2SizeY)の範囲内にあってもよい。
i.代替的に、0~2*(CtbLog2SizeY-MinQtLog2SizeIntraY)+2*min(ph_max_mtt_hierarchy_depth_intra_slice_luma、CtbLog2SizeY-MinCbLog2SizeY)までの範囲内にあってもよい。
c.cu_qp_delta_absおよびcu_qp_delta_sign_flagを伝えるインタースライスにおけるコーディングユニットの最大cbSubdiv値の範囲(例えば、ph_cu_qp_delta_subdiv_inter_slice)は、ph_max_mtt_hierarchy_depth_inter_sliceに依存しなくてもよく、例えば、0から2*(CtbLog2SizeY-MinQtLog2SizeInterY)+2*(CtbLog2SizeY-MinCbLog2SizeY)の範囲内にあってもよい。
i.代替的に、0~2*(CtbLog2SizeY-MinQtLog2SizeIntraY)+2*min(ph_max_mtt_hierarchy_depth_inter_slice,CtbLog2SizeY-MinCbLog2SizeY)の範囲内にあってもよい。
d.cu_chroma_qp_offset_flagを伝えるインタースライスにおけるコーディングユニットの最大cbSubdiv値の範囲(例えば、ph_cu_chroma_qp_offset_subdiv_inter_slice)は、ph_max_mtt_hierarchy_depth_inter_sliceに依存しなくてもよく、例えば、0から2*(CtbLog2SizeY-MinQtLog2SizeInterY)+2*(CtbLog2SizeY-MinCbLog2SizeY)の範囲内にあってもよい。
i.代替的に、0~2*(CtbLog2SizeY-MinQtLog2SizeIntraY)+2*min(ph_max_mtt_hierarchy_depth_inter_slice,CtbLog2SizeY-MinCbLog2SizeY)の範囲内にあってもよい。
6.実施形態
以下は、上記第5章に要約されたいくつかの発明の態様のためのいくつかの例示的な実施形態であり、VVC仕様に適用できる。変更したテキストは、JVET-Q2001-vDの最新のVVCテキストに基づく。追加または修正された最も関連性の高い部分は太字の斜体で強調され、削除された部分の一部は開閉二重括弧(例:[[]])で強調され、二重括弧の間に削除されたテキストを示す。
6.1. 第1の実施例
これは、上記第5章にまとめた項目1(1.a~1.o)の実施形態の集まりである。
6.1.1. 項目1.aの実施例
一例において、pps_deblocking_filter_disabled_flagの意味論は、以下のように変更される。
【化2】

6.1.2. 項目1.bの実施例
一例において、slice_deblocking_filter_override_flagの意味論は、以下のように変更される。
1に等しいslice_deblocking_filter_override_flagは、スライスヘッダにデブロッキングパラメータが存在することを規定する。0に等しいslice_deblocking_filter_override_flagは、デブロッキングパラメータがスライスヘッダに存在しないことを規定する。存在しない場合、slice_deblocking_filter_override_flagの値は[[ph_deblocking_filter_override_flag]]0に等しいと推論される。
6.1.3. 項目1.cの実施例
一例において、構文構造picture_header_structure()は、以下のように変更される。
【表21】

1に等しいph_deblocking_filter_disabled_flagは、PHに関連付けられたスライスに対してデブロッキングフィルタの演算を適用しないことを規定する。0に等しいph_deblocking_filter_disabled_flagは、PHに
【化3】

そして、構文構造slice_header()は以下のように変更される。
【表22】

1に等しいslice_deblocking_filter_override_flagは、スライスヘッダにデブロッキングパラメータが存在することを規定する。0に等しいslice_deblocking_filter_override_flagは、デブロッキングパラメータがスライスヘッダに存在しないことを規定する。存在しない場合、slice_deblocking_filter_override_flagの値は[[ph_deblocking_filter_override_flag]]0に等しいと推論される。
1に等しいslice_deblocking_filter_disabled_flagは、現在のスライスに対してデブロッキングフィルタの演算が適用されないことを規定する。0に等しいslice_deblocking_filter_disabled_flagは、現在
【化4】

6.1.4. 項目1.pの実施例
一例において、構文構造pic_parameter_set_rbsp()は、以下のように変更される。
【表23】

...
【化5】

[[1に等しいdeblocking_filter_control_present_flagは、PPSにおけるデブロッキングフィルタ制御構文要素の存在を規定する。0に等しいdeblocking_filter_control_present_flagは、PPSにおけるデブロッキングフィルタ制御構文要素の不在を規定する。]]
[[1に等しいdeblocking_filter_override_enabled_flagは、PPSを参照するPHにおけるph_deblocking_filter_override_flagの存在を規定し、PPSを参照するスライスヘッダにおけるslice_deblocking_filter_override_flagの存在を規定する。0に等しいdeblocking_filter_override_enabled_flagは、PPSを参照するPHにおけるph_deblocking_filter_override_flagの不在を規定し、PPSを参照するスライスヘッダにおけるslice_deblocking_filter_override_flagの不在を規定する。存在しない場合、deblocking_filter_override_enabled_flagの値は0に等しいと推測される。]]
[[1に等しいpps_deblocking_filter_disabled_flagは、デブロッキングフィルタの演算は、slice_deblocking_filter_disabled_flagが存在しないPPSを参照するスライスに対して適用されないことを規定する。0に等しいpps_deblocking_filter_disabled_flagは、デブロッキングフィルタの演算は、slice_deblocking_filter_disabled_flagが存在しないPPSを参照するスライスに対して適用されることを規定する。存在しない場合、pps_deblocking_filter_disabled_flagの値は0に等しいと推測される。]]
1に等しいdbf_info_in_ph_flagは、PH構文構造にデブロッキングフィルタ情報が存在し、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを規定する。0に等しいdbf_info_in_ph_flagは、PH構文構造にデブロッキングフィルタ情報が存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在する場合があることを規定する。[[存在しない場合、dbf_info_in_ph_flagの値は0に等しいと推測される。]]
...
そして、構文構造picture_header_structure()は、以下のように変更される。
【表24】

...
【化6】

[[1に等しいph_deblocking_filter_disabled_flagは、PHに関連付けられたスライスに対してデブロッキングフィルタの演算を適用しないことを規定する。0に等しいph_deblocking_filter_disabled_flagは、PHに関連付けられたスライスに対してデブロッキングフィルタの演算を適用することを規定する。ph_deblocking_filter_disabled_flagが存在しない場合、pps_deblocking_filter_disabled_flagに等しいと推論される。]]
...
そして、構文構造slice_header()は以下のように変更される。
【表25】

...
【化7】

[[1に等しいslice_deblocking_filter_disabled_flagは、現在のスライスに対してデブロッキングフィルタの演算が適用されないことを規定する。0に等しいslice_deblocking_filter_disabled_flagは、現在のスライスに対してデブロッキングフィルタの演算が適用されることを規定する。slice_deblocking_filter_disabled_flagが存在しない場合、ph_deblocking_filter_disabled_flagに等しいと推論される。]]
...
そして、デブロッキングフィルタ処理の復号処理は、以下のように変更される。
8.8.3 非ブロック化フィルタ処理
8.8.3.1 一般
非ブロック化フィルタ処理は、以下のタイプのエッジを除き、ピクチャのすべてのコーディングサブブロックのエッジおよび変換ブロックのエッジに適用される。
- ピクチャの境界にあるエッジ、
- サブピクチャインデックスsubpicIdxおよびloop_filter_across_subpic_enabled_flag[subpicIdx]を有するサブピクチャの境界に一致するエッジは、0に等しい。
- VirtualBoundariesPresentFlagが1である場合、ピクチャの仮想境界に合致するエッジ
- loop_filter_across_tiles_enabled_flagが0である場合、タイルの境界に合致するエッジ
- loop_filter_across_slices_enabled_flagが0である場合、スライスの境界に合致するエッジ
- slice_deblocking_filter_used[[disabled]]_flagが[[1]]0である場合、スライスの上または左の境界に一致するエッジ
- slice_deblocking_filter_used[[disabled]]_flagが[[1]]0であるスライス内のエッジ
- 輝度成分の4×4個のサンプルグリッド境界に対応しないエッジ
- 彩度成分の8×8個のサンプルグリッド境界に対応しないエッジ
- 輝度成分内のエッジで、エッジの両側がintra_bdpcm_luma_flagが1に等しい場合、
- 彩度成分内のエッジで、エッジの両側がintra_bdpcm_chroma_flagが1に等しい場合、
- 関連付けられた変換ユニットのエッジでない彩度ブロックのエッジ
エッジのタイプは、垂直または水平であり、表42で規定されるように、変数edgeTypeによって表現される。
-edgeTypeとの関連付けの名前
【表26】

【化8】

- 変数treeTypeはDUAL_TREE_LUMAに等しく設定される。
- 8.8.3.2項で規定されるように、変数treeType、デブロッキング前の再構成ピクチャ、すなわちEDGE_VERに等しく設定された配列recPictureおよび変数edgeTypeを入力として、一方向のデブロッキングフィルタ処理を行い、デブロッキング後の修正された再構成ピクチャ、すなわちち配列recPictureを出力として、垂直エッジをフィルタリングする。
- 8.8.3.2項で規定されるように、変数treeType、デブロッキング後の修正された再構成ピクチャ、すなわちEDGE_HORに等しく設定された配列recPictureおよび可変edgeTypeを入力として、一方向のデブロッキングフィルタ処理を行い、デブロッキング後の修正された再構成ピクチャ、すなわち配列recPictureを出力として、水平エッジをフィルタリングする。
- ChromaArrayTypeが0に等しくない場合、以下が適用される。
- 変数treeTypeをDUAL_TREE_CHROMAと等しく設定する。
- 8.8.3.2項で規定されるように、変数treeType、デブロッキング前の再構成ピクチャ、すなわち配列recPicturecb、recPicturecr、およびEDGE_VERに等しく設定された可変edgeTypeを入力として、一方向のデブロッキングフィルタ処理を呼び出すことで、垂直エッジをフィルタリングし、デブロッキング後の修正された再構成ピクチャ、すなわち配列recPicturecb、recPicturecrを出力として再構成する。
- 8.8.3.2項で規定されるように、変数treeType、デブロッキング前の修正された再構成ピクチャ、すなわち配列recPicturecb、recPicturecr、およびEDGE_HORに等しく設定した変数edgeTypeを入力として、一方向のデブロッキングフィルタ処理を呼び出すことで、水平エッジをフィルタリングし、デブロッキング後の修正された再構成ピクチャ、すなわち配列recPicturecb、recPicturecrを出力として再構成する。
6.1.5. 項目1.d、1.g、1.j、および1.f項の実施例
一例において、構文構造pic_parameter_set_rbsp()は、以下のように変更される。
【表27】

1に等しいdeblocking_filter_override_enabled_flagは、PPSを参照するPHにおけるph_deblocking_filter_override_flagの存在を規定、または、PPSを参照するスライスヘッダにおけるslice_deblocking_filter_override_flagの存在を規定する。0に等しいdeblocking_filter_override_enabled_flagは、PPSを参照するPHにおけるph_deblocking_filter_override_flagの不在を規定し、[[または、]]およびPPSを参照するスライスヘッダにおけるslice_deblocking_filter_override_flagの不在を規定する。存在しない場合、deblocking_filter_override_enabled_flagの値は0に等しいと推測される。
1に等しいpps_deblocking_filter_disabled_flagは、デブロッキングフィルタの演算は、[[slice_deblocking_filter_disabled_flagが存在しない]]PPSを参照するスライスに対して適用されないことを規定する。0に等しいpps_deblocking_filter_disabled_flagは、デブロッキングフィルタの演算は、[[slice_deblocking_filter_disabled_flagが存在しない]]PPSを参照するスライスに対して適用されることを規定する。存在しない場合、pps_deblocking_filter_disabled_flagの値は0に等しいと推測される。
そして、構文構造picture_header_structure()は、以下のように変更される。
【表28】

そして、構文構造slice_header()は、以下のように変更される。
【表29】

【化9】

6.1.6. 項目1.d、1.g、1.j、1.eおよび1.nの別の実施例
一例において、構文構造pic_parameter_set_rbsp()は、以下のように変更される。
【表30】

1に等しいdeblocking_filter_override_enabled_flagは、PPSを参照するPHにおけるph_deblocking_filter_override_flagの存在を規定、または、PPSを参照するスライスヘッダにおけるslice_deblocking_filter_override_flagの存在を規定する。0に等しいdeblocking_filter_override_enabled_flagは、PPSを参照するPHにおけるph_deblocking_filter_override_flagの不在を規定し、[[または、]]およびPPSを参照するスライスヘッダにおけるslice_deblocking_filter_override_flagの不在を規定する。存在しない場合、deblocking_filter_override_enabled_flagの値は0に等しいと推測される。
1に等しいpps_deblocking_filter_disabled_flagは、デブロッキングフィルタの演算は、[[slice_deblocking_filter_disabled_flagが存在しない]]PPSを参照するスライスに対して適用されないことを規定する。0に等しいpps_deblocking_filter_disabled_flagは、デブロッキングフィルタの演算は、[[slice_deblocking_filter_disabled_flagが存在しない]]PPSを参照するスライスに対して適用されることを規定する。存在しない場合、pps_deblocking_filter_disabled_flagの値は0に等しいと推測される。
そして、構文構造picture_header_structure()は、以下のように変更される。
【表31】

そして、構文構造slice_header()は、以下のように変更される。
【表32】

【化10】

6.1.7. 項目1.d、1.g、1.j、1.f、1.hおよび1.kの別の実施例
一例において、構文構造pic_parameter_set_rbsp()は、以下のように変更される。
【表33】

【化11】

[[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に等しいと推測される。]]
そして、構文構造picture_header_structure()は、以下のように変更される。
【表34】

【化12】

そして、構文構造slice_header()は、以下のように変更される。
【表35】

【化13】

【化14】

【化15】

6.2. 第2の実施例
これは、上記第5節に要約された項目2、2.a、および2.bの実施例である。
8.5.6.3 端数サンプル補間処理
8.5.6.3.1 一般
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の符号化サブブロックの左上のサンプルを規定する輝度位置(xSb,ySb)、
- 現在の符号化サブブロックの幅を規定する変数sbWidth、
- 現在の符号化サブブロックの高さを規定する変数sbHeight、
- 動きベクトルオフセットmvOffset、
- 微調整動きベクトルrefMvLX、
- 選択した参照ピクチャサンプル配列refPicLX、
- 1/2サンプル補間フィルタインデックスhpelIfIdx、
【化16】

- デコーダ側動きベクトル微調整フラグdmvrFlag、
- 双方向オプティカルフローフラグbdofFlag、
- 選択された参照ピクチャがスケーリングを必要とするかどうかを示す変数refPicIsScaled、
- 現在のブロックの色成分インデックスを規定する変数cIdx、
- 水平および垂直の2つのスケーリング比のリスト、scalingRatio。
この処理の出力は以下の通りである。
- 予測サンプル値の(sbWidth+brdExtSize)x(sbHeight+brdExtSize)配列predSamplesLX。
予測ブロックの境界拡張サイズbrdExtSizeは、以下のように導出される。
【化17】

変数refWraparoundEnabledFlagは(pps_ref_wraparound_enabled_flag&&!refPicIsScaled)に等しく設定される。
変数fRefLeftOffsetは((SubWidthC*scaling_win_left_offset)<<10)に等しく設定され、scaling_win_left_offsetは参照ピクチャに対するscaling_win_left_offsetである。
変数fRefTopOffsetは((SubWidthC*scaling_win_top_offset)<<10)に等しく設定され、scaling_win_top_offsetは参照ピクチャに対するscaling_win_top_offsetとなる。
予測サンプル値の(sbWidth+brdExtSize)x(sbHeight+brdExtSize)配列predSamplesLXは、以下のように導出される。
- 動きベクトルmvLXは、(refMvLX-mvOffset)に等しく設定される。
- cIdxが0に等しい場合、以下が適用される。
- (xInt,yInt)をフルサンプルユニットで与えられた輝度位置とし、(xFrac,yFrac)を1/16サンプルユニットで求めたオフセットとする。これらの変数は、本項でのみ、参照サンプル配列refPicLX内の端数サンプル位置を規定するために使用される。
- 参照サンプルパディング用バウンディングブロック(xSbInt,ySbInt)の左上座標は、(xSb+(mvLX[0]>4)、ySb+(mvLX[1]>>4)に等しく設定される。
- 予測輝度サンプルアレイpredSamplesLX内の各輝度サンプル位置(x=0..sbWidth-1+brdExtSize,y=0..sbHeight-1+brdExtSize)について、対応する予測輝度サンプル値predSamplesLX[x][y]は以下のように導出される。
- (refxSb,refySb)および(refx,refy)を、1/16サンプル単位で与えられる動きベクトル(refMvLX[0],refMvLX[1])が指す輝度位置とする。変数refxSb、refx、refySb、およびrefyは、以下のように導出される。
refxSb=(((xSb-(SubWidthC*scaling_win_left_offset))<<4)+
refMvLX[0])*scalingRatio[0] (935)
refx=((Sign(refxSb)*((Abs(refxSb)+128)>>8)+
*((scalingRatio[0]+8)>>4))+fRefLeftOffset+32)>>6 (936)
refySb=(((ySb-(SubWidthC*scaling_win_top_offset))<<4)+
refMvLX[1])*scalingRatio[1] (937)
refy=((Sign(refySb)*((Abs(refySb)+128)>>8)+yL*
((scalingRatio[1]+8)>>4))+fRefTopOffset+32)>>6 (938)
- 変数xIntL、yIntL、xFracLおよびyFracLは、以下のように導出される。
xInt=refx>>4 (939)
yInt=refy>>4 (940)
xFrac=refx&15 (941)
yFrac=refy&15 (942)
- 予測輝度サンプル値predSamplesLX[x][y]は、以下のように導出される。
【化18】

- xが0に等しい
- xがsbWidth+1に等しい
- yが0に等しい
-yがsbHeight+1に等しい
- あるいは、(xIntL-(brdExtSize>0?1:0)、yIntL-(brdExtSize>0?1:0))、(xFracL,yFracL)、(xSbInt,ySbInt)、refPicLX、hpelIfIdx、sbWidth、sbHeight、dmvrFlag、refWraparoundEnabledFlag、scalingRatio[0]、scalingRatio[1]、および(xSb,ySb)を入力として、8.5.6.3.2項で規定された輝度サンプル8タップ補間フィルタリング処理を呼び出すことによって、予測輝度サンプル値predSamplesLX[xL][yL]を導出させる。
- そうでない場合(cIdxは0に等しくない)、以下が適用される。

6.3. 第3の実施例
これは、上記第5節に要約された項目3、3.a、3.b、および3.c.の実施例である。
6.3.1. 項目3.aの実施例
一例において、構文構造pic_parameter_set_rbsp()は、以下のように変更される。
【表36】

【化19】

そして、構文構造picture_header_structure()は、以下のように変更される。
【表37】

そして、構文構造slice_header ()は、以下のように変更される。
【表38】

6.3.2. 項目3.bの実施例
一例において、構文構造pic_parameter_set_rbsp()は、以下のように変更される。
【表39】

【化20】

そして、構文構造picture_header_structure()は、以下のように変更される。
【表40】

【化21】

そして、構文構造slice_header ()は、以下のように変更される。
【表41】

【化22】

6.3.3. 項目3.cの実施例
太字のイタリック体の本文に記載されている変更は、JVET-Q2001-vEに基づいている。
【表42】

【表43】

【化23】

【化24】

6.4. 第4の実施例
これは、上記第5節に要約された項目4、4.a、4.b、4.cおよび4.dの実施例である。
ph_cu_qp_delta_subdiv_intra_sliceは、cu_qp_delta_absおよびcu_qp_delta_sign_flagを伝達するイントラスライス内のコーディングユニットの最大のcbSubdiv値を規定する。
【化25】

【化26】

存在しない場合、ph_cu_chroma_qp_offset_subdiv_inter_sliceの値は0に等しいと推測される。
【0041】
図1は、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム1900を示すブロック図である。様々な実装形態は、システム1900のモジュールの一部又は全部を含んでもよい。システム1900は、映像コンテンツを受信するための入力ユニット1902を含んでもよい。映像コンテンツは、未加工または非圧縮フォーマット、例えば、8または10ビットのマルチコンポーネント画素値で受信されてもよく、または圧縮又は符号化フォーマットで受信されてもよい。入力ユニット1902は、ネットワークインターフェース、周辺バスインターフェース、または記憶インターフェースを表してもよい。ネットワークインターフェースの例は、イーサネット(登録商標)、PON(登録商標;Passive Optical Network)等の有線インターフェース、およびWi-Fi(登録商標)またはセルラーインターフェース等の無線インターフェースを含む。
【0042】
システム1900は、本明細書に記載される様々なコーディングまたは符号化方法を実装することができるコーディングコンポーネント1904を含んでもよい。コーディングコンポーネント1904は、入力1902からの映像の平均ビットレートをコーディングコンポーネント1904の出力に低減し、映像のコーディングされた表現を生成してもよい。従って、このコーディング技術は、映像圧縮または映像トランスコーディング技術と呼ばれることがある。コーディングコンポーネント1904の出力は、コンポーネント1906によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力1902において受信された、記憶されたまたは通信された映像のビットストリーム(またはコーディングされた)表現は、コンポーネント1908によって使用されて、表示インターフェース1910に送信される画素値または表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像展開と呼ばれることがある。さらに、特定の映像処理演算を「コーディング」演算またはツールと呼ぶが、コーディングツールまたは演算は、エンコーダおよびそれに対応する、コーディングの結果を逆にする復号ツールまたは演算が、デコーダによって行われることが理解されよう。
【0043】
周辺バスインターフェースまたは表示インターフェースの例は、USB(登録商標;Universal Serial Bus)またはHDMI(登録商標;High Definition Multimedia Interface)またはディスプレイポート等を含んでもよい。ストレージインターフェースの例は、SATA(Serial Advanced Technology Attachment)、PCI、IDEインターフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、またはデジタルデータ処理および/または映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
【0044】
図2は、映像処理装置3600のブロック図である。装置3600は、本明細書に記載の方法の1つ以上を実装するために使用してもよい。装置3600は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機等に実施されてもよい。装置3600は、1つ以上のプロセッサ3602と、1つ以上のメモリ3604と、映像処理ハードウェア3606と、を含んでもよい。1つまたは複数のプロセッサ3602は、本明細書に記載される1つ以上の方法を実装するように構成されてもよい。メモリ(複数可)3604は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア3606は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。
【0045】
図4は、本開示の技法を利用し得る例示的な映像コーディングシステム100を示すブロック図である。
【0046】
図4に示すように、映像コーディングシステム100は、送信元デバイス110と、送信先デバイス120と、を備えてもよい。送信元デバイス110は、映像符号化機器とも称され得る符号化映像データを生成する。送信先装置120は、送信元装置110によって生成された符号化映像データを復号してよく、映像復号機器とも呼ばれ得る。
【0047】
送信元装置110は、映像ソース112と、映像エンコーダ114と、入出力(I/O)インターフェース116と、を含んでよい。
【0048】
映像ソース112は、映像キャプチャデバイスなどのソース、映像コンテンツプロバイダからの映像データを受信するためのインターフェース、および/または映像データを生成するためのコンピュータグラフィックスシステム、またはこれらのソースの組み合わせを含んでもよい。映像データは、1または複数のピクチャを含んでもよい。映像エンコーダ114は、映像ソース112からの映像データを符号化し、ビットストリームを生成する。ビットストリームは、映像データのコーディングされた表現を形成するビットのシーケンスを含んでもよい。ビットストリームは、コーディングされたピクチャおよび関連付けられたデータを含んでもよい。コーディングされたピクチャは、ピクチャのコーディングされた表現である。関連付けられたデータは、シーケンスパラメータセット、ピクチャパラメータセット、および他の構文構造を含んでもよい。I/Oインターフェース116は、変復調器(モデム)および/または送信機を含んでもよい。符号化された映像データは、ネットワーク130aを介して、I/Oインターフェース116を介して送信先デバイス120に直接送信されてよい。符号化された映像データは、送信先装置120がアクセスするために、記録媒体/サーバ130bに記憶してもよい。
【0049】
送信先装置120は、I/Oインターフェース126、映像デコーダ124、および表示装置122を含んでもよい。
【0050】
I/Oインターフェース126は、受信機および/またはモデムを含んでもよい。I/Oインターフェース126は、送信元デバイス110または記憶媒体/サーバ130bから符号化された映像データを取得してもよい。映像デコーダ124は、符号化された映像データを復号してもよい。表示装置122は、復号された映像データをユーザに表示してもよい。表示装置122は、送信先装置120と一体化されてもよく、または外部表示装置とインターフェースするように構成される送信先装置120の外部にあってもよい。
【0051】
映像エンコーダ114および映像デコーダ124は、高効率映像コーディング(HEVC)規約、汎用映像コーディング(VVC)規約、および他の現在および/または更なる規約等の映像圧縮規格に従って動作してもよい。
【0052】
図5は、映像エンコーダ200の一例を示すブロック図であり、この映像エンコーダ200は、図4に示されるシステム100における映像エンコーダ114であってもよい。
【0053】
映像エンコーダ200は、本開示の技術のいずれかまたは全部を実行するように構成されてもよい。図5の実施例において、映像エンコーダ200は、複数の機能性モジュールを含む。本開示で説明される技法は、映像エンコーダ200の様々なモジュール間で共有されてもよい。いくつかの例では、プロセッサは、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0054】
映像エンコーダ200の機能コンポーネントは、分割部201、予測部202を含んでもよく、予測部202は、モード選択部203、動き推定部204、動き補償部205、およびイントラ予測部206、残差生成部207、変換部208、量子化部209、逆量子化部210、逆変換部211、再構成部212、バッファ213、およびエントロピー符号化部214を含んでもよい。
【0055】
他の例において、映像エンコーダ200は、より多くの、より少ない、または異なる機能コンポーネントを含んでもよい。一例において、予測ユニット202は、イントラブロックコピー(IBC)ユニットを含んでもよい。IBC部は、少なくとも1つの参照ピクチャが現在の映像ブロックが位置するピクチャであるIBCモードにおいて予測を行うことができる。
【0056】
さらに、動き推定ユニット204および動き補償ユニット205などのいくつかのモジュールは、高度に統合されてもよいが、説明のために、図5の例においては別個に表現されている。
【0057】
分割部201は、1つのピクチャを1または複数の映像ブロックに分割してもよい。映像エンコーダ200および映像デコーダ300は、様々な映像ブロックサイズをサポートしてもよい。
【0058】
モード選択部203は、例えば、誤りの結果に基づいて、イントラまたはインターのコーディングモードのうちの1つを選択し、得られたイントラまたはインターコーディングされたブロックを残差生成部207に供給し、残差ブロックデータを生成して再構成部212に供給し、符号化されたブロックを参照ピクチャとして使用するために再構成してもよい。いくつかの例において、モード選択ユニット203は、インター予測信号およびイントラ予測信号に基づいて予測を行うCIIP(Combination of Intra and Inter Prediction)モードを選択してもよい。また、モード選択部203は、インター予測の場合、ブロックの動きベクトルの解像度(例えば、サブピクセルまたは整数画素精度)を選択してもよい。
【0059】
現在の映像ブロックに対してインター予測を行うために、動き推定部204は、バッファ213からの1または複数の参照フレームと現在の映像ブロックとを比較することで、現在の映像ブロックのための動き情報を生成してもよい。動き補償部205は、現在の映像ブロックに関連付けられたピクチャ以外のバッファ213からのピクチャの動き情報および復号されたサンプルに基づいて、現在の映像ブロックのための予測映像ブロックを判定してもよい。
【0060】
動き推定部204および動き補償部205は、現在の映像ブロックがIスライスであるか、Pスライスであるか、またはBスライスであるかによって、例えば、現在の映像ブロックに対して異なる動作を行ってもよい。
【0061】
いくつかの例において、動き推定部204は、現在の映像ブロックに対して単一方向予測を行い、動き推定部204は、現在の映像ブロックに対して、参照映像ブロック用のリスト0またはリスト1の参照ピクチャを検索してもよい。動き推定ユニット204は、参照映像ブロックと、現在の映像ブロックと参照映像ブロックとの間の空間的変位を示す動きベクトルとを含む、リスト0またはリスト1における参照ピクチャを示す参照インデックスを生成してもよい。動き推定ユニット204は、参照インデックス、予測方向インジケータ、および動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償部205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在のブロックの予測映像ブロックを生成してもよい。
【0062】
他の例において、動き推定部204は、現在の映像ブロックを双方向予測してもよく、動き推定部204は、リスト0における参照ピクチャの中から現在の映像ブロックを求めるための参照映像ブロックを検索してもよく、また、リスト1における参照ピクチャの中から現在の映像ブロックを求めるための別の参照映像ブロックを検索してもよい。動き推定ユニット204は、参照映像ブロックを含むリスト0およびリスト1における参照ピクチャを示す参照インデックスと、参照映像ブロックと現在の映像ブロックとの間の空間的変位を示す動きベクトルとを生成してもよい。動き推定ユニット204は、現在の映像ブロックの参照インデックスおよび動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償部205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在の映像ブロックの予測映像ブロックを生成してもよい。
【0063】
いくつかの例において、動き推定部204は、デコーダの復号処理のために、動き情報のフルセットを出力してもよい。
【0064】
いくつかの例では、動き推定部204は、現在の映像のための動き情報のフルセットを出力しなくてもよい。むしろ、動き推定ユニット204は、別の映像ブロックの動き情報を参照して、現在の映像ブロックの動き情報を信号通知してもよい。例えば、動き推定部204は、現在の映像ブロックの動き情報が近傍の映像ブロックの動き情報に十分に類似していることを判定してもよい。
【0065】
一例において、動き推定部204は、現在の映像ブロックに関連付けられた構文構造において、現在の映像ブロックが別の映像ブロックと同じ動き情報を有することを映像デコーダ300に示す値を示してもよい。
【0066】
別の例において、動き推定部204は、現在の映像ブロックに関連付けられた構文構造において、別の映像ブロックと、動きベクトル差分(MVD;Motion Vector Difference)とを識別してもよい。動きベクトル差分は、現在の映像ブロックの動きベクトルと、示された映像ブロックの動きベクトルとの差分を示す。映像デコーダ300は、示された映像ブロックの動きベクトルおよび動きベクトル差分を使用して、現在の映像ブロックの動きベクトルを決定してもよい。
【0067】
上述したように、映像エンコーダ200は、動きベクトルを予測的に信号通知してもよい。映像エンコーダ200によって実装され得る予測信号通知技法の2つの例は、AMVP(Advanced Motion Vector Prediction)およびマージモード信号通知を含む。
【0068】
イントラ予測部206は、現在の映像ブロックに対してイントラ予測を行ってもよい。イントラ予測ユニット206が現在の映像ブロックをイントラ予測する場合、イントラ予測ユニット206は、同じピクチャにおける他の映像ブロックの復号されたサンプルに基づいて、現在の映像ブロックのための予測データを生成してもよい。現在の映像ブロックのための予測データは、予測された映像ブロックおよび様々な構文要素を含んでもよい。
【0069】
残差生成部207は、現在の映像ブロックから現在の映像ブロックの予測された映像ブロックを減算することによって(例えば、マイナス符号によって示されている)、現在の映像ブロックのための残差データを生成してもよい。現在の映像ブロックの残差データは、現在の映像ブロックにおけるサンプルの異なるサンプル成分に対応する残差映像ブロックを含んでもよい。
【0070】
他の例において、例えば、スキップモードにおいて、現在の映像ブロックのための残差データがなくてもよく、残差生成部207は、減算演算を行わなくてもよい。
【0071】
変換処理部208は、現在の映像ブロックに関連付けられた残差映像ブロックに1または複数の変換を適用することによって、現在の映像ブロックのための1または複数の変換係数映像ブロックを生成してもよい。
【0072】
変換処理部208が現在の映像ブロックに関連付けられた変換係数映像ブロックを生成した後、量子化部209は、現在の映像ブロックに関連付けられた1または複数の量子化パラメータ(QP:Quantization Parameter)値に基づいて、現在の映像ブロックに関連付けられた変換係数映像ブロックを量子化してもよい。
【0073】
逆量子化部210および逆変換部211は、変換係数映像ブロックに逆量子化および逆変換をそれぞれ適用し、変換係数映像ブロックから残差映像ブロックを再構成してもよい。再構成部212は、予測部202にて生成された1または複数の予測映像ブロックからの対応するサンプルに再構成された残差映像ブロックを加え、現在のブロックに関連付けられた再構成映像ブロックを生成し、バッファ213に記憶してもよい。
【0074】
再構成部212が映像ブロックを再構成した後、映像ブロックにおける映像ブロッキングアーチファクトを縮小するために、ループフィルタリング動作が行われてもよい。
【0075】
エントロピー符号化部214は、映像エンコーダ200の他の機能コンポーネントからデータを受信してもよい。エントロピー符号化部214がデータを受信すると、エントロピー符号化部214は、1または複数のエントロピー符号化動作を行い、エントロピー符号化されたデータを生成し、エントロピー符号化されたデータを含むビットストリームを出力してもよい。
【0076】
開示される技術のいくつかの実施形態は、映像処理ツールまたはモードを有効化するように決定または判定することを含む。一例において、映像処理ツールまたはモードが有効化される場合、エンコーダは、1つの映像ブロックを処理する際にツールまたはモードを使用するまたは実装するが、ツールまたはモードの使用に基づいて、結果として得られるビットストリームを必ずしも修正しなくてもよい。すなわち、映像のブロックから映像のビットストリーム(またはビットストリーム表現)への変換は、決定または判定に基づいて映像処理ツールまたはモードが有効化される場合に、映像処理ツールまたはモードを使用する。別の例において、映像処理ツールまたはモードが有効化される場合、デコーダは、ビットストリームが映像処理ツールまたはモードに基づいて修正されたことを知って、ビットストリームを処理する。すなわち、決定または判定に基づいて有効化された映像処理ツールまたはモードを使用して、映像のビットストリームから映像のブロックへの変換を行う。
【0077】
図6は、映像デコーダ300の一例を示すブロック図であり、この映像デコーダ300は、図4に示すシステム100における映像デコーダ114であってもよい。
【0078】
映像デコーダ300は、本開示の技術のいずれかまたは全部を実行するように構成されてもよい。図6の実施例において、映像デコーダ300は、複数の機能性モジュールを含む。本開示で説明される技法は、映像デコーダ300の様々なモジュール間で共有されてもよい。いくつかの例では、プロセッサは、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0079】
図6の実施例において、映像デコーダ300は、エントロピー復号ユニット301、動き補償ユニット302、イントラ予測ユニット303、逆量子化ユニット304、逆変換ユニット305、および再構成ユニット306、並びにバッファ307を含む。映像デコーダ300は、いくつかの例では、映像エンコーダ200(図5)に関して説明した符号化パスとほぼ逆の復号パスを行ってもよい。
【0080】
エントロピー復号部301は、符号化されたビットストリームを取り出す。符号化されたビットストリームは、エントロピーコーディングされた映像データ(例えば、映像データの符号化されたブロック)を含んでもよい。エントロピー復号ユニット301は、エントロピーコーディングされた映像データを復号し、エントロピー復号された映像データから、動き補償ユニット302は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、および他の動き情報を含む動き情報を決定してもよい。動き補償部302は、例えば、AMVPおよびマージモードを実行することで、このような情報を判定してもよい。
【0081】
動き補償部302は、動き補償されたブロックを生成してもよく、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセルの精度で使用される補間フィルタのための識別子が、構文要素に含まれてもよい。
【0082】
動き補償ユニット302は、映像ブロックの符号化中に映像エンコーダ200によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数画素のための補間値を計算してもよい。動き補償部302は、受信した構文情報に基づいて、映像エンコーダ200が使用する補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成してもよい。
【0083】
動き補償ユニット302は、符号化された映像シーケンスのフレームおよび/またはスライスを符号化するために使用されるブロックのサイズを判定するための構文情報、符号化された映像シーケンスのピクチャの各マクロブロックがどのように分割されるかを記述する分割情報、各分割がどのように符号化されるかを示すモード、各インター符号化されたブロックに対する1または複数の参照フレーム(および参照フレームリスト)、および符号化された映像シーケンスを復号するための他の情報のいくつかを使用してもよい。
【0084】
イントラ予測部303は、例えば、ビットストリームにおいて受信したイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成してもよい。逆量子化ユニット303は、ビットストリームに提供され、エントロピー復号ユニット301によって復号された量子化された映像ブロック係数を逆量子化(すなわち、逆量子化)する。逆変換部303は、逆変換を適用する。
【0085】
再構成部306は、残差ブロックと、動き補償部202またはイントラ予測部303によって生成された対応する予測ブロックとを合計し、復号されたブロックを形成してもよい。所望であれば、ブロックアーチファクトを除去するために、復号されたブロックをフィルタリングするためにデブロッキングフィルタを適用してもよい。復号された映像ブロックは、バッファ307に記憶され、バッファ307は、後続の動き補償/イントラ予測のために参照ブロックを提供し、また表示装置に表示するために復号された映像を生成する。
【0086】
以下の章では、例示的なPROF技術、例示的なアフィンマージ技術、および例示的なアフィンAMVP技術について説明する。
【0087】
PROF:予測微調整オプティカルフロー(PROF)は、サブブロックに基づくアフィン動き補償予測を微調整するために使用される。サブブロックに基づくアフィン動き補償を行った後、オプティカルフロー方程式で導出された差を加算することで、輝度予測サンプルを微調整する。このように、例えば、PROF技術は、映像ブロックのサブブロックに基づくアフィン動き補償予測を微調整することを含み、続いて、オプティカルフロー方程式で導出される差を加算することにより映像ブロックの輝度予測サンプルを微調整する。
【0088】
アフィンマージ:このモードでは、空間的近傍のCUの動き情報に基づいて、現在のCUのCPMV(制御点動きベクトル)を生成する。空間的近傍のCUの動き情報から、いくつかのCPMVP(制御点動きベクトル予測子)候補を構築する。インデックスは、現在のCUに使用されるべきものを示すように信号通知される。このように、例えば、アフィンマージモードにおいて、現在のコーディングユニットの空間的近傍のコーディングユニットの動き情報と、現在のコーディングユニットに使用されるべきサブブロックマージ候補リストからのアフィンマージ候補がビットストリームに含まれていることを示すインデックスとに基づいて、映像ブロックの現在のコーディングユニットの制御点動きベクトルを生成する。
【0089】
アフィン AMVP:アフィンAMVPモードが使用されるかどうかを示すために、CUレベルのアフィンフラグがビットストリームにおいて信号通知され、次いで、4パラメータアフィンであるか6パラメータアフィンであるかどうかを示すために、別のフラグが信号通知される。このモードにおいて、現在のCUのCPMVとその予測子CPMVPとの差がビットストリームにおいて信号通知される。このように、例えば、アフィンAMVPモードは、ビットストリームに以下を含めることを含む。(1)アフィン高度動きベクトル予測モードが使用されるかどうかを示す、映像ブロックのコーディングユニットレベルのアフィンフラグ、(2)4パラメータアフィンまたは6パラメータアフィンが使用されるかどうかを示す第2のフラグ、(3)コーディングユニットレベルの制御点動きベクトル予測子インデックス、および(4)映像ブロックの現在のコーディングユニットの制御点動きベクトルと制御点動きベクトルに対応する予測子制御点動きベクトルとの差
【0090】
次に、いくつかの実施形態において好適な解決策を列挙する。
【0091】
以下の解決策は、前章(例えば、項目1.1~1.c.)で論じた技術の例示的な実施形態を示す。
【0092】
1.1つ以上の映像スライスを備える1つ以上の映像ピクチャを含む映像の変換を行うこと(3002)を含み、この変換は、映像ピクチャパラメータセットを参照する1つ以上の映像スライスへのデブロッキングフィルタの適用可能性に関する決定は、対応する映像ピクチャのピクチャヘッダに含まれるデブロッキング構文フィールドに基づいて行われることを規定する第1の規則に準拠している、映像処理方法(例えば、図4に示す方法3000)。
【0093】
2.この決定は、映像ピクチャパラメータセットおよびピクチャヘッダにおいて適用可能性が無効化されているかどうかに基づいており、かつデブロッキングフィルタの無効化のスライスレベル指示にさらに基づいている、解決策1に記載の方法。
【0094】
3.変換は、コーディングされた表現のより高いレベルで信号通知されるか、またはより細かいレベルで導出されるフラグに基づいて、コーディングされた表現のより高いレベルのデブロッキングフィルタの信号通知された適用可能性のオーバーライドを許可する第2の規則にさらに準拠する、解決策1~2のいずれかに記載の方法。
【0095】
4.フラグが信号通知されるか、またはフラグが導出されるかは、コーディングされた表現に含まれる別のフィールドに依存する、解決策1に記載の方法。
【0096】
以下の解決策は、前章(例えば、項目1.d~1.q.)で論じた技術の例示的な実施形態を示す。
【0097】
5.1つ以上の映像スライスを備える1つ以上の映像ピクチャを含む映像の変換を行うことを含み、この変換は、映像スライスのスライスヘッダレベルおよび/またはピクチャヘッダレベルおよび/またはピクチャパラメータセットレベルに含まれるフィールドに基づく映像スライスへのデブロッキングフィルタの適用可能性に対する制約を規定する規則に準拠する、映像処理方法。
【0098】
6.規則は、ピクチャパラメータセットレベルの信号に従ってデブロッキングフィルタを無効化する場合、スライスヘッダレベルの信号またはピクチャヘッダレベルの信号によってデブロッキングフィルタを有効化することができないという制約を規定する、解決策5に記載の方法。
【0099】
7.規則は、ピクチャパラメータセットレベルの信号に従ってデブロッキングフィルタを有効化にする場合には、スライスヘッダレベルまたはピクチャヘッダレベルの信号が、映像スライスのためのデブロッキングフィルタを無効化することを許可する制約を規定する、解決策5に記載の方法。
【0100】
8.規則は、デブロッキングフィルタの有効化を制御するピクチャパラメータセットレベルにおける第1のフィールドの値が、デブロッキングフィルタがオーバーライドされているかどうかを示す第2のフィールドの値に依存しないことを規定する、解決策5に記載の方法。
【0101】
9.規則は、デブロッキングフィルタのオン/オフ制御パラメータおよび/またはデブロッキングフィルタパラメータが1つのピクチャヘッダまたは1つのシーケンスヘッダに存在するかどうかを規定する構文要素「dbf_info_in_ph_flag」の信号通知が、ピクチャパラメータセットはdeblocking_filter_override_enabled_flagを含む他の構文要素に依存しないことを含むことを規定する、解決策5に記載の方法。
【0102】
10.規則は、ピクチャパラメータセットレベルまたはピクチャレベルまたはスライスレベルにおけるオーバーライドフラグが、デブロッキングオン/オフ制御パラメータのオーバーライドを制御しないことを規定する、解決策5に記載の方法。
【0103】
11.規則は、ピクチャパラメータセットレベルまたはピクチャレベルまたはスライスレベルにおけるオーバーライドフラグが、デブロッキングフィルタのオン/オフ制御パラメータまたはフィルタパラメータをオーバーライドするためのものであり、双方をオーバーライドするためのものではないことを規定する、解決策5に記載の方法。
【0104】
12.規則は、ピクチャパラメータセットレベルにおいてデブロッキングフィルタが無効化されている場合であっても、ピクチャレベルまたはスライスレベルにおいてデブロッキングフィルタを有効化することを許可することを規定する、解決策5に記載の方法。
【0105】
13.規則は、デブロッキングフィルタのオン/オフを制御するフィールドと、デブロッキングフィルタのパラメータを示すフィールドとが、ピクチャレベルおよびスライスレベルの両方に含まれることを規定する、解決策5に記載の方法。
【0106】
14.規則は、デブロッキングフィルタのオン/オフを制御するフィールドとデブロッキングフィルタのパラメータを示すフィールドとをシーケンスパラメータセットに含めることを規定する、解決策5に記載の方法。
【0107】
15.映像スライスへのデブロッキングフィルタの適用可能性は、映像ユニットレベルで信号通知される構文フィールドにおいて信号通知され、この構文フィールドは2値フラグではなく、映像ユニットレベルはピクチャパラメータセットまたはシーケンスパラメータセットを含む、解決策5に記載の方法。
【0108】
16.構文フィールドは、Nビットを含み、Nは1より大きい整数である、解決策15に記載の方法。
【0109】
17.N=2であり、構文フィールドが、(a)ピクチャパラメータセット(PPS)を参照するすべてのスライスにデブロッキングフィルタを適用しない、(b)PPSに信号通知される第1のオフセットパラメータを使用して、PPSを参照するすべてのスライスにデブロッキングフィルタを適用する、(c)PPSに信号通知される第2のオフセットパラメータを使用して、PPSを参照するすべてのスライスにデブロッキングフィルタを適用する、または(d)PPS以外で信号通知されたパラメータによってデブロッキングフィルタをPPSを参照するスライスに適用する、のうちの1つ以上を含む4つのオプションを示す、解決策16に記載の方法。
【0110】
18.規則は、デブロッキングフィルタパラメータのゼロ値を使用して映像スライスのためにデブロッキングフィルタを有効化にすることを規定する、解決策5に記載の方法。
【0111】
以下の解決策は、前章(例えば、項目2)で論じた技術の例示的な実施形態を示す。
【0112】
19.第1の規則に基づくアフィン高度動きベクトル予測子コーディングで、または、第2の規則に基づくアフィンマージモードで、オプティカルフロー(PROF)コーディングに従って予測微調整の適用可能性について判定することと、この判定に従って、映像の映像ブロックと、この映像のコーディングされた表現との変換を行うことと、を含む、映像処理方法。
【0113】
20.第2の規則は、M*Nの部分に対応する予測ブロックがM*Nよりも大きく、MおよびNが正の整数であるように、映像ブロックにPROFコーディングを適用することを規定する、解決策1に記載の方法。
【0114】
21.PROFコーディングによって生成された予測ブロックによって生成された拡張サンプルの数を示すために、コーディングされた表現におけるフラグが含まれる、解決策19~20のいずれかに記載の方法。
【0115】
22.拡張サンプルの数は、第1の規則と第2の規則とで同一である、解決策21に記載の方法。
【0116】
以下の解決策は、前章(例えば、項目3)で論じた技術の例示的な実施形態を示す。
【0117】
23.1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のコーディングされた表現との変換を行うことを含み、ピクチャレベル、またはスライスレベルの第1の構文要素および/または、量子化パラメータデルタまたはオフセット信号通知を示す別のレベルの第2の構文要素は、規則に従って、コーディングされた表現に条件付きで含まれる、映像処理方法。
【0118】
24.規則は、別のレベルがシーケンスパラメータセットレベルまたはピクチャパラメータセットレベルであることを規定し、第2の構文要素は、彩度または輝度デルタQP信号通知が有効化されているかどうかを示す、解決策23に記載の方法。
【0119】
25.規則は、別のレベルがシーケンスパラメータセットレベルまたはピクチャパラメータセットレベルであることを規定し、第2の構文要素は、彩度QPオフセット信号通知が有効化されているかどうかを示す、解決策23に記載の方法。
【0120】
以下の解決策は、前章(例えば、項目4)で論じた技術の例示的な実施形態を示す。
【0121】
26.1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のコーディングされた表現との変換を行うことを含み、コーディングされた表現は、規則に従った範囲のコーディングブロック細分割値(cbSubDiv)を示す構文要素を含む、映像処理方法。
【0122】
27.規則は、範囲がコーディングされた表現に含まれる構文フィールドph_max_mtt_hierarchy_depth_intra_slice_lumaに依存しないことを規定する、解決策26に記載の方法。
【0123】
28.規則は、その範囲が0~2*(CtbLog2SizeY-MinQtLog2SizeIntraY)+2*(CtbLog2SizeY-MinCbLog2SizeY)であることを規定する、解決策26~27のいずれかに記載の方法。
【0124】
29.規則は、範囲がph_max_mtt_hierarchy_depth_intra_slice_lumaフィールドに依存しないことを規定する、解決策26に記載の方法。
【0125】
30.規則は、範囲がph_max_mtt_hierarchy_depth_inter_sliceフィールドに依存しないことを規定する、解決策26に記載の方法。
【0126】
31.変換は、映像をコーディングされた表現に符号化することを含む、解決策1~30のいずれかに記載の方法。
【0127】
32.変換は、映像の画素値を生成するためにコーディングされた表現を復号することを含む、解決策1~30のいずれかに記載の方法。
【0128】
33.解決策1~32の1つ以上に記載の方法を実装するように構成されたプロセッサを備える、映像復号装置。
【0129】
34.解決策1~32の1つ以上に記載の方法を実装するように構成されたプロセッサを備える、映像符号化装置。
【0130】
35.コンピュータコードが記憶されたコンピュータプログラム製品であって、コードは、プロセッサにより実行されると、プロセッサに、解決策1~32のいずれかに記載の方法を実装させるコンピュータプログラム製品。
【0131】
36.本明細書に記載の方法、装置またはシステム。
【0132】
図7は、映像処理の方法例700のフローチャートである。動作702は、1つ以上のスライスを備えるピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、この変換は、ピクチャパラメータセットを参照する1つ以上のスライスにデブロッキングフィルタを適用するかどうかが、ピクチャパラメータセットに含まれる第1の構文要素に少なくとも基づくことを規定する規則に準拠し、第1の構文要素は、このピクチャに対してデブロッキングフィルタが無効化されているかどうかを示す。
【0133】
方法700のいくつかの実施形態において、この規則は、ピクチャパラメータセットを参照しつつ、1つ以上のスライスにデブロッキングフィルタを適用するかどうかが、以下のうち少なくとも1つにさらに基づくことを指定する。(1)ピクチャヘッダの第2の構文要素によってデブロッキングフィルタがピクチャに対して無効化されるかどうか、(2)デブロッキングフィルタがスライスレベルの第3の構文要素によって無効化されていると示されているかどうか、または(3)ピクチャパラメータセットの第4の構文要素が、デブロッキングフィルタの適用可能性のオーバーライドがピクチャレベルおよびスライスレベルで無効化されているかどうかを示すかどうか、のうちの少なくとも1つにさらに基づくことを規定する。方法700のいくつかの実施形態において、この規則は、ピクチャパラメータセットを参照しつつ、1つ以上のスライスにデブロッキングフィルタを適用するかどうかが、以下に基づくことを指定する。(1)ピクチャヘッダの第2の構文要素によってデブロッキングフィルタがピクチャに対して無効化されるかどうか、および(2)デブロッキングフィルタがスライスレベルの第3の構文要素によって無効化されていると示されているかどうか、にさらに基づくことを規定する。方法700のいくつかの実施形態において、第1の構文要素、第2の構文要素、および第3の構文要素の値が1であることは、デブロッキングフィルタが無効化されていることを示す。
【0134】
方法700のいくつかの実施形態において、この規則は、ピクチャパラメータセットを参照しつつ、1つ以上のスライスにデブロッキングフィルタを適用するかどうかは、ピクチャパラメータセットの第4の構文要素が、デブロッキングフィルタの適用可能性のオーバーライドがピクチャレベルおよびスライスレベルで無効化されているかどうかを示すかどうかのうち、少なくとも1つにさらに基づいていることを規定する。方法700のいくつかの実施形態において、第1の構文要素の第1の値が1に等しいことは、ピクチャパラメータセットを参照するピクチャのためにデブロッキングフィルタが無効化されていることを示し、第4の構文要素の第2の値が0に等しいことは、デブロッキングフィルタの適用可能性のオーバーライドがピクチャレベルおよびスライスレベルで無効化されていることを示す。方法700のいくつかの実施形態において、第1の構文要素の値が1であり、第4の構文要素の値が0であることは、デブロッキングフィルタが無効化されていることを示す。
【0135】
図8は、映像処理の方法例800のフローチャートである。動作802は、1つ以上のスライスを備えるピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、この変換は、ピクチャパラメータセットを参照する1つ以上のスライスにデブロッキングフィルタを適用するかどうかが、ピクチャパラメータセットに含まれる、デブロッキングフィルタが無効化されているかどうかを示す構文要素のみに基づくことを規定する規則に準拠する。
【0136】
方法800のいくつかの実施形態において、構文要素の値が1であることは、ピクチャに対してデブロッキングフィルタが無効化されていることを示す。
【0137】
図9は、映像処理の方法例900のフローチャートである。動作902は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、ビットストリームが、規則に準拠しており、この規則は、1つのスライスレベルでの第1の構文要素の第1の値またはピクチャレベルでの第2の構文要素の第2の値に基づいて、スライスまたはピクチャに対するデブロッキング動作をオーバーライドするかどうかを決定することを規定し、この規則は、1つのスライスヘッダにおける第1の構文要素が存在しないことに呼応して、第1の構文要素の第1の値は、ピクチャレベルでの第2の構文要素の第2の値に依存せずに決定されることを規定する。
【0138】
方法900のいくつかの実施形態において、第1の構文要素の第1の値は、デブロッキング動作がスライスレベルでオーバーライドされていないことを示す0であると判定される。方法800のいくつかの実施形態において、第2の構文要素の第2の値は、デブロッキング動作がピクチャレベルでオーバーライドされていないことを示す0であると判定される。
【0139】
図10は、映像処理の方法例1000のフローチャートである。動作1002は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、このビットストリームは、規則に準拠しており、この規則は、スライスレベルでの第1の構文要素の第1の値またはピクチャレベルでの第2の構文要素の第2の値に基づいて、デブロッキングパラメータをスライスヘッダまたはピクチャヘッダに含むかどうかを規定し、規則は、スライスヘッダに第1の構文要素が存在しないことに呼応して、第1の構文要素の第1の値は、ピクチャレベルでの第2の構文要素の第2の値に依存せずに決定されることを規定する。
【0140】
方法1000のいくつかの実施形態において、第1の構文要素の第1の値は、デブロッキングパラメータがスライスレベルに含まれていないことを示す0であると判定される。方法1000のいくつかの実施形態において、第2の構文要素の第2の値は、デブロッキングパラメータがピクチャレベルに含まれていないことを示す0であると判定される。
【0141】
図11は、映像処理の方法例1100のフローチャートである。動作1102は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、このビットストリームは、第1の構文要素および第2の構文要素をそれぞれピクチャヘッダとスライスヘッダに含めるかどうか、あるいは推測されるかどうかが、ピクチャパラメータセットの第3の構文要素の値に基づくことを規定するフォーマット規則に準拠しており、第1の構文要素は、映像のピクチャレベルでデブロッキングフィルタが無効化されているかどうかを示し、第2の構文要素は、映像のスライスレベルでデブロッキングフィルタが無効化されているかどうかを示し、第3の構文要素は、デブロッキングフィルタが前記ピクチャパラメータセットを参照する1つ以上のピクチャに対して有効化されるかどうかを示す。
【0142】
図12は、映像処理の方法例1200のフローチャートである。動作1202は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、この変換は、デブロッキングフィルタをスライスに適用するかどうかが、スライスヘッダおよび/またはピクチャヘッダおよび/またはスライスが参照するピクチャパラメータセットに含まれる構文要素基づくことを規定する規則に準拠しており、構文要素は、デブロッキングフィルタがピクチャパラメータセットレベルおよび/またはスライスレベルおよび/またはピクチャレベルで有効化されるかどうかを示す。
【0143】
方法1200のいくつかの実施形態において、この規則は、ピクチャパラメータセットにおける第1の構文要素に従ってデブロッキングフィルタが無効化されている場合、スライスヘッダにおける第2の構文要素またはピクチャヘッダにおける第3の構文要素によってデブロッキングフィルタを有効化することは許可されないことを規定する。方法1200のいくつかの実施形態において、この規則は、スライスヘッダにおける第2の構文要素および/またはピクチャヘッダにおける第3の構文要素の存在が、第1の構文要素の第1の値に基づいており、デブロッキングフィルタの適用可能性のオーバーライドをピクチャレベルまたはスライスレベルで有効化するかどうかを示すフラグの第2の値に依存しないことをさらに規定する。方法1200のいくつかの実施形態において、この規則は、第1の構文要素がピクチャパラメータセットを参照するスライスに対してデブロッキングフィルタを無効化することを示すことに呼応して、第2の構文要素および/または第3の構文要素をそれぞれスライスヘッダおよび/またはピクチャヘッダから除外することを規定する。方法1200のいくつかの実施形態において、この規則は、ピクチャパラメータセットにおけるフラグが以下を示すことを規定する。(1)第1の構文要素がピクチャパラメータセットに示されているかどうか、第2の構文要素がスライスヘッダに示されているか、および/または第3の構文要素がピクチャに示されているかどうか、および(2)デブロッキングフィルタのためのパラメータがピクチャパラメータセット、ピクチャヘッダ、およびスライスヘッダに示されているかどうか。方法1200のいくつかの実施形態において、このフラグは、以下を示す。(1)第1の構文要素をピクチャパラメータセットから除外し、第2の構文要素をスライスヘッダから除外し、および/または第3の構文要素をピクチャから除外することと、(2)デブロッキングフィルタのパラメータをピクチャパラメータセット、ピクチャヘッダ、およびスライスヘッダから除外すること。
【0144】
方法1200のいくつかの実施形態において、この規則は、ピクチャパラメータセットに存在しない第1の構文要素に従ってデブロッキングフィルタを無効化する場合、スライスヘッダにおける第2の構文要素またはピクチャヘッダにおける第3の構文要素によってデブロッキングフィルタを有効化することは許可されず、第1の構文要素は一定の値に等しいと推測されることを規定する。方法1200のいくつかの実施形態において、この規則は、ピクチャパラメータセットにおける第1の構文要素に従ってデブロッキングフィルタを無効化する場合、スライスヘッダにおける第2の構文要素またはピクチャヘッダに存在しない第3の構文要素によってデブロッキングフィルタを有効化することは許可されず、第3の構文要素は第1の構文要素として同じ値を有すると推測されることを規定する。方法1200のいくつかの実施形態において、この規則は、ピクチャパラメータセットにおける第1の構文要素に従ってデブロッキングフィルタを無効化する場合、スライスヘッダに存在しない第2の構文要素またはピクチャヘッダにおける第3の構文要素によってデブロッキングフィルタを有効化することは許可されず、第2の構文要素は第1の構文要素または第3の構文要素として同じ値を有すると推測されることを規定する。方法1200のいくつかの実施形態において、この規則は、映像の第1の映像ユニットレベルにおいてデブロッキングフィルタを有効化する場合、映像の第2の映像ユニットレベルにおいてデブロッキングフィルタを無効化することを許可し、第2の映像ユニットレベルが第1の映像ユニットレベルよりも低いことを規定する。
【0145】
方法1200のいくつかの実施形態において、第1の映像ユニットレベルはピクチャヘッダを含み、第2の映像ユニットレベルはスライスヘッダを含む。方法1200のいくつかの実施形態において、1つ以上のピクチャは、1つ以上のスライスの第1のセットおよび1つ以上のスライスの第2のセットを含む複数のスライスを含み、規則は、1つ以上のスライスの第1のセットに対してデブロッキングフィルタを有効化することを規定し、規則は、1つ以上のスライスの第2のセットに対してデブロッキングフィルタを無効化することを規定する。方法1200のいくつかの実施形態において、スライスヘッダに含まれる第1の構文要素は、第2の映像ユニットレベルに対してデブロッキングフィルタが有効化されているかどうかを示し、ピクチャヘッダにおける第2の構文要素は、第1の映像ユニットレベルに対してデブロッキングフィルタが有効化されているかどうかを示し、規則は、第1の構文要素が第2の構文要素に基づくことを規定する。方法1200のいくつかの実施形態において、この規則は、第1の構文要素が、現在のピクチャに対してデブロッキングフィルタが有効であることを示す場合、第2の構文要素が、この現在のピクチャの現在のスライスに対してデブロッキングフィルタが有効化されているかどうかを示すことを規定する。方法1200のいくつかの実施形態において、この規則は、ピクチャパラメータセットが、デブロッキングフィルタの構文要素および/またはパラメータをスライスヘッダまたはピクチャヘッダに含むかどうかが他の構文要素に依存しないことを示す第1のフラグを含むかどうかを、他の構文要素に依存しないかどうかをさらに規定する。方法1200のいくつかの実施形態において、1つ以上の他の構文要素は、ピクチャレベルおよびスライスレベルにおいてデブロッキングフィルタの適用可能性のオーバーライドが有効化されているかどうかを示す第2のフラグを含む。
【0146】
方法1200のいくつかの実施形態において、この規則は、第2の構文要素がスライスヘッダに含まれるか、または第3の構文要素がピクチャヘッダに含まれるかが、ピクチャパラメータセットにおける第1のフラグおよび/または第1の構文要素に基づくと共に、第2のフラグに依存せず、第1の構文要素は、ピクチャパラメータセットを参照するスライスに対して有効化されているかどうかを示し、第2の構文要素は、デブロッキングフィルタがスライスレベルに対して有効化されているかどうかを示し、第3の構文要素は、デブロッキングフィルタがピクチャレベルに対して有効化されているかどうかを示すことを規定する。方法1200のいくつかの実施形態において、ピクチャパラメータセットにおける第1のフラグ、またはスライスヘッダにおける第2のフラグ、またはピクチャヘッダにおける第3のフラグが、デブロッキングフィルタの適用可能性のオーバーライドがピクチャパラメータセットレベル、またはピクチャレベル、またはスライスレベルでそれぞれ有効化されているかどうかを示し、規則は、以下を規定する。(1)デブロッキングフィルタがピクチャパラメータセットレベルで有効化されるかどうかを示すピクチャパラメータセットにおける第1の構文要素、または(2)デブロッキングフィルタがスライスレベルで有効化されるかどうかを示すスライスヘッダにおける第2の構文要素、または(3)デブロッキングフィルタがピクチャレベルで有効化されるかどうかを示すピクチャヘッダにおける第3の構文要素を除いて、第1のフラグまたは第2のフラグまたは第3のフラグが、デブロッキングフィルタのパラメータをオーバーライドするように構成されているだけであること。方法1200のいくつかの実施形態において、第1の構文要素は、規則に従って第1のフラグの前にあるピクチャパラメータセットに選択的に含まれる、規則に従って第2のフラグの前にあるスライスヘッダに選択的に含まれる、または規則に従って第3の構文要素が第3のフラグの前にあるピクチャヘッダに選択的に含まれ、規則は、第1のフラグ、第2のフラグ、または第3のフラグがピクチャパラメータセット、スライスヘッダ、またはピクチャヘッダにそれぞれ含まれるかは、それぞれ第1の構文要素、第2の構文要素、または第3の構文要素それぞれに基づくことを規定する。
【0147】
方法1200のいくつかの実施形態において、構文要素は、第1の構文要素を含み、この規則は、ピクチャパラメータセットが、このピクチャパラメータセットを参照する1つ以上のスライスに対してデブロッキングフィルタを有効化するかどうかを示す第1の構文要素を含むことをさらに規定する。方法1200のいくつかの実施形態において、この規則は、ピクチャパラメータセットが、このピクチャパラメータセットを参照する1つ以上のスライスに対してデブロッキングフィルタを有効化するかどうかを示す第1の構文要素を含むかどうかを、このピクチャパラメータセットにおける他の構文要素に依存しないことをさらに規定する。方法1200のいくつかの実施形態において、この規則は、映像の第1の映像ユニットレベルにおいてデブロッキングフィルタが無効化される場合、この映像の第2の映像ユニットレベルにおける1つ以上の構文要素が存在せず、このデブロッキングフィルタが無効化されており、第1の映像ユニットレベルが第2の映像ユニットレベルよりも高いことを示す、第1の映像ユニットレベルにおける第1の構文要素の値に等しいと推測されることをさらに規定する。方法1200のいくつかの実施形態において、この規則は、デブロッキングフィルタのためのグローバル制御が存在するかどうかを示すピクチャパラメータセットにおける構文要素をさらに規定し、この構文要素は、以下でのみ構成される。(1)ピクチャパラメータセットレベルまたはピクチャレベルまたはスライスレベルにおいてデブロッキングフィルタの適用可能性のオーバーライドが有効化されているかどうかを示す、ピクチャパラメータセットまたはピクチャヘッダまたはスライスヘッダにおける1つ以上のフラグ、および(2)ピクチャパラメータセット、ピクチャヘッダまたはスライスヘッダにおけるデブロッキングフィルタのパラメータの存在を制御する。
【0148】
方法1200のいくつかの実施形態において、この規則は、フラグが、デブロッキングフィルタの適用可能性またはデブロッキングフィルタのパラメータの第1のセットのいずれかに対してオーバーライドが有効化されているかどうかを示すことをさらに規定する。方法1200のいくつかの実施形態において、フラグは、ピクチャパラメータセットまたはピクチャヘッダまたはスライスヘッダに含まれる。方法1200のいくつかの実施形態において、この規則は、フラグがデブロッキングフィルタの適用可能性のためにオーバーライドが有効化されているかどうかを示す場合、(1)デブロッキングフィルタのパラメータの第1のセットは、映像の第1の映像ユニットレベルのみに含まれ、(2)デブロッキングフィルタを第2の映像ユニットレベルに対して有効化することに呼応して、第1の映像ユニットレベルのデブロッキングフィルタのパラメータの第1のセットから、第2の映像ユニットレベルに対してデブロッキングフィルタのパラメータの第2のセットを推測し、第1の映像ユニットレベルは第2の映像ユニットレベルよりも高いことをさらに規定する。方法1200のいくつかの実施形態において、この規則は、このフラグが、この映像の第1の映像ユニットレベルに含まれるこのデブロッキングフィルタのパラメータの第1のセットに対してこのオーバーライドが有効化されているかどうかを示す場合、以下をさらに規定する。(1)デブロッキングフィルタの適用可能性は、第1の映像ユニットレベルにおいてのみ含まれ、(2)デブロッキングフィルタを第2の映像ユニットレベルに対して有効化することに呼応して、第1の映像ユニットレベルのデブロッキングフィルタのパラメータの第1のセットから、第2の映像ユニットレベルに対してデブロッキングフィルタのパラメータの第2のセットを推測し、第1の映像ユニットレベルは第2の映像ユニットレベルよりも高い。
【0149】
方法1200のいくつかの実施形態において、第1の映像ユニットレベルはピクチャパラメータセットを含み、第2の映像ユニットレベルはピクチャヘッダまたはスライスヘッダを含む。方法1200のいくつかの実施形態において、構文要素は、映像の第1の映像ユニットレベルの第1の構文要素と、映像の第2の映像ユニットレベルの第2の構文要素を含み、第1の構文要素および第2の構文要素は、デブロッキングフィルタが第1の映像ユニットレベルおよび第2の映像ユニットレベルでそれぞれ有効化されるかどうかを示し、第1の映像ユニットレベルが第2の映像ユニットレベルよりも高く、この規則は、第1の映像ユニットレベルにおいてデブロッキングフィルタを無効化することを示す第1の構文要素に呼応して、第2の構文要素のオーバーライドが許可されないことをさらに規定する。方法1200のいくつかの実施形態において、第1の映像ユニットレベルはピクチャパラメータセットを含み、第2の映像ユニットレベルはピクチャヘッダまたはスライスヘッダを含む。方法1200のいくつかの実施形態において、この規則は、第2の構文を第2の映像ユニットレベルに含めるかどうかは、第1の構文要素が、第1の映像ユニットレベルにおいてデブロッキングフィルタの制御を許可することを示すかどうかに基づくことを規定する。
【0150】
方法1200のいくつかの実施形態において、構文要素は、映像の第1の映像ユニットレベルの第1の構文要素と、映像の第2の映像ユニットレベルの第2の構文要素を含み、第1の構文要素および第2の構文要素は、デブロッキングフィルタが第1の映像ユニットレベルおよび第2の映像ユニットレベルでそれぞれ有効化されるかどうかを示し、規則は、デブロッキングフィルタが、第2の構文要素が前記第2の映像ユニットレベルに存在しないことに呼応して、第2の映像ユニットレベルに対して特定の状態を有すると推測されることを規定する。方法1200のいくつかの実施形態において、この特定の状態は、第1の構文要素が示すデブロッキングフィルタの状態を無効化する、または有効化する、または同じにすることを含む。方法1200のいくつかの実施形態において、この規則は、ピクチャパラメータセットが、デブロッキングフィルタのためのグローバル制御が存在するかどうかを示す構文要素を除外することを規定し、この規則は、このピクチャパラメータセットが、このデブロッキングフィルタが有効化されているかどうかを示す第1の構文要素を含み、この第1の構文要素がこの構文要素に依存しないことを規定する。方法1200のいくつかの実施形態において、第2の構文要素は、デブロッキングフィルタの適用可能性のオーバーライドが許可されるかどうかを示し、規則は、このピクチャパラメータセットに、この第2の構文要素を含めるかどうかは、デブロッキングフィルタが有効化されていることを示す第1の構文要素に基づくことを規定する。方法1200のいくつかの実施形態において、規則は、デブロッキングフィルタに対するパラメータをピクチャパラメータセットに含めるかどうかが、デブロッキングフィルタの適用可能性のオーバーライドの無効化が許可されていることを示す第2の構文要素に基づくことを規定する。
【0151】
方法1200のいくつかの実施形態において、この規則は、ピクチャパラメータセットが、デブロッキングフィルタのためのグローバル制御が存在するかどうかを示す構文要素を除外することを規定し、この規則は、このピクチャパラメータセットが、このデブロッキングフィルタの適用可能性のオーバーライドが許可されているかどうかを示す第1の構文要素を含み、この第1の構文要素がこの構文要素に依存しないことを規定する。方法1200のいくつかの実施形態において、第2の構文要素は、デブロッキングフィルタが有効化されているかどうかを示し、規則は、このピクチャパラメータセットに、この第2の構文要素を含めるかどうかは、デブロッキングフィルタの適用可能性のオーバーライドが許可されていることを示す第1の構文要素に基づくことを規定する。方法1200のいくつかの実施形態において、規則は、デブロッキングフィルタに対するパラメータをピクチャパラメータセットに含めるかどうかが、デブロッキングフィルタが有効化されていることを示す第2の構文要素に基づくことを規定する。方法1200のいくつかの実施形態において、この規則は、ピクチャヘッダが、このピクチャヘッダまたはスライスヘッダがデブロッキングフィルタが有効化されているかどうかおよび/またはこのデブロッキングフィルタのパラメータを示す1つ以上の構文要素を含むかどうかを示す構文要素を含むことを規定する。
【0152】
方法1200のいくつかの実施形態において、この規則は、構文要素をピクチャパラメータセットから除外することを規定する。方法1200のいくつかの実施形態において、この規則は、ピクチャヘッダおよびスライスヘッダの各々が、デブロッキングフィルタが有効化されているかどうかおよび/またはデブロッキングフィルタのパラメータを示す1つ以上の構文要素を含むことを規定する。
【0153】
図13は、映像処理の方法例1300のフローチャートである。動作1302は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、この変換は、デブロッキングフィルタをスライスに適用するかどうかが、スライスが参照するシーケンスパラメータセットに含まれる構文要素に基づくことを規定する規則に準拠しており、構文要素は、デブロッキングフィルタが有効化されたかを示す第1の構文要素、および/またはデブロッキングフィルタのパラメータの第1のセットを示す構文要素のセットを含む。
【0154】
方法1300のいくつかの実施形態において、この規則は、映像の第1の映像ユニットレベルのシーケンスパラメータセットにおける第1の構文要素が、映像の第2の映像ユニットレベルにおいてデブロッキングフィルタが有効であり、第1の映像ユニットレベルが第2の映像ユニットレベルよりも高いかどうかを示す第2の構文要素によってオーバーライドされることをさらに規定する。
【0155】
方法1300のいくつかの実施形態において、この規則は、映像の第1の映像ユニットレベルのシーケンスパラメータセットに示されるデブロッキングフィルタのパラメータの第1のセットが、映像の第2の映像ユニットレベルに示されるデブロッキングフィルタのパラメータの第2のセットによってオーバーライドされ、第1の映像ユニットレベルが第2の映像ユニットレベルよりも高いことをさらに規定する。方法1300のいくつかの実施形態において、第2の映像ユニットレベルは、ピクチャパラメータセット、ピクチャヘッダ、またはスライスヘッダを含む。
【0156】
図14は、映像処理の方法例1400のフローチャートである。動作1402は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、前記変換は、デブロッキングフィルタをスライスに適用するかどうかは、映像ユニットレベルに含まれる非バイナリ構文要素に基づくことを規定する規則に準拠しており、非バイナリ構文要素は、デブロッキングフィルタを1つ以上のスライスに適用するかどうか、および/またはどのようにしてデブロッキングフィルタを1つ以上のスライスに適用するかを示す。
【0157】
方法1400のいくつかの実施形態において、映像ユニットレベルは、ピクチャパラメータセットまたはシーケンスパラメータセットを含む。方法1400のいくつかの実施形態において、この規則は、非バイナリ構文要素がデブロッキングモードを示すことを規定し、この非バイナリ構文要素はNビットを含む。方法1400のいくつかの実施形態において、N=2である。方法1400のいくつかの実施形態において、この規則は、非バイナリ構文要素の第1の値が、デブロッキングフィルタがピクチャパラメータセットを参照するすべてのスライスに適用されないことを規定し、この規則は、この非バイナリ構文要素の第2の値が、ベータおよびtCに対して0値のデブロッキングパラメータオフセットを使用してこのピクチャパラメータセットを参照するすべてのスライスにデブロッキングフィルタが適用されることを規定し、この規則は、この非バイナリ構文要素の第3の値が、ピクチャパラメータセットに明示的に含まれるベータおよびtCに対してデブロッキングパラメータオフセットを使用してこのピクチャパラメータセットを参照するすべてのスライスにデブロッキングフィルタが適用されることを規定し、この規則は、非バイナリ構文要素の第1の値が、デブロッキングフィルタがピクチャパラメータセットを参照するスライスに適用されるかどうかが、スライスのピクチャヘッダまたはスライスヘッダに存在するパラメータによって制御されることを規定する。方法1400のいくつかの実施形態において、この規則は、デブロッキングフィルタのパラメータがピクチャパラメータセットに含まれているかどうかが、非バイナリ構文要素の値に基づくことを規定する。
【0158】
方法1400のいくつかの実施形態において、この規則は、値が特定条件を満たすことに呼応して、デブロッキングフィルタのパラメータがピクチャパラメータセットに含まれ、値がこの特定の条件を満たさないことに呼応して、デブロッキングフィルタのパラメータが0であると推測することを規定する。方法1400のいくつかの実施形態において、この特定の条件は、この値が整数よりも大きいかどうかを含む。方法1400のいくつかの実施形態において、この規則は、非バイナリ構文要素の値が、構文要素がピクチャパラメータセットに含まれるかどうかを制御することを規定し、この構文要素は、ピクチャヘッダまたはスライスヘッダがデブロッキングフィルタを有効化するかどうかおよび/またはデブロッキングフィルタのパラメータを示す構文要素を含むかどうかを規定する。方法1400のいくつかの実施形態において、この規則は、非バイナリ構文要素の値が特定の条件を満たすことに呼応して、この構文要素をこのピクチャパラメータセットに含めることを規定する。方法1400のいくつかの実施形態において、この特定の条件は、この値が整数に等しいかどうかを含む。方法1400のいくつかの実施形態において、この規則は、構文要素をピクチャパラメータセットから除外することに呼応して、構文要素は一定の値を有すると推測することを規定する。方法1400のいくつかの実施形態において、この規則は、非バイナリ構文要素の値が、構文要素をピクチャヘッダまたはスライスヘッダに含めるかどうかを制御し、この構文要素が、デブロッキングフィルタを有効化するかどうか、および/またはデブロッキングフィルタのパラメータを示すことを規定する。
【0159】
方法1400のいくつかの実施形態において、この規則は、非バイナリ構文要素の値が特定の条件を満たすことに呼応して、映像のピクチャレベルでデブロッキングフィルタを有効化するかどうかを示す構文要素をピクチャヘッダに示すことを規定する。方法1400のいくつかの実施形態において、この規則は、非バイナリ構文要素の値が特定の条件を満たすことに呼応して、映像のスライスレベルでデブロッキングフィルタを有効化するかどうかを示す構文要素をスライスヘッダに示すことを規定する。方法1400のいくつかの実施形態において、この特定の条件は、この値が整数に等しいかどうかを含む。
【0160】
図15は、映像処理の方法例1500のフローチャートである。動作1502は、1つ以上のスライスを含む1つ以上のピクチャを含む映像と、この映像のビットストリームとの変換を行うことを含む、前記変換は、以下を規定する。(1)デブロッキングフィルタは、映像のピクチャレベルまたは映像のスライスレベルで有効化されることと、(2)ベータおよびtCの0値デブロッキングパラメータオフセットをデブロッキングフィルタのパラメータに使用すること。
【0161】
方法1500のいくつかの実施形態において、この規則は、ピクチャパラメータセットが、デブロッキングフィルタのデフォルトパラメータが、ベータおよびtCの0値デブロッキングパラメータオフセットまたはユーザ定義のベータおよびtCオフセットのいずれに関連付けられているかを示す1つ以上の構文要素を含むことを規定する。方法1500のいくつかの実施形態において、ピクチャパラメータセットは、1つ以上の構文要素がデブロッキングフィルタに対するデフォルトパラメータがユーザ定義のベータおよびtCオフセットに関連付けられていることを示す1つ以上の構文要素に呼応して、ユーザ定義のベータおよびtCオフセットを含む。方法1500のいくつかの実施形態において、デブロッキングフィルタのパラメータおよびデブロッキングフィルタのデフォルトパラメータは、映像のピクチャレベルまたは映像のスライスレベルで選択的にオーバーライドされる。方法1500のいくつかの実施形態において、この規則は、映像の映像ユニットレベルが、ベータおよびtCのための0値デブロッキングパラメータオフセットが使用されるか、またはユーザ定義のベータおよびtCオフセットが使用されるかを示す1つ以上の構文要素を含むことを規定する。方法1500のいくつかの実施形態において、映像ユニットのレベルは、1つ以上の構文要素がユーザ定義のベータおよびtCオフセットを使用することを示すことに呼応して、ユーザ定義のベータおよびtCオフセットを含む。方法1500のいくつかの実施形態において、映像ユニットレベルは、シーケンスパラメータセット、ピクチャパラメータセット、ピクチャヘッダ、またはスライスヘッダを含む。
【0162】
図16は、映像処理の方法例1600のフローチャートである。動作1602は、映像の映像ブロックと映像のビットストリームとの変換のために、規則に従って、この映像ブロックに対応する予測ブロックのサイズを決定することを含む。動作1604は、この決定に基づいて、変換を行うことを含み、規則は、予測ブロックの第1のサイズは、オプティカルフロー技術を使用した予測微調整を映像ブロックをコーディングするために使用するかどうかに呼応して決定することを規定し、映像ブロックは、第2のサイズを有し、アフィンマージモードまたはアフィン高度動きベクトル予測モードを使用してコーディングされる。
【0163】
方法1600のいくつかの実施形態において、予測ブロックの第1のサイズの第1の幅および第1の高さは、(M+M0)および(N+N0)によってそれぞれ示され、映像ブロックの第2のサイズの第2の幅および第2の高さは、MおよびNによってそれぞれ示され、M0は0以上であり、N0は0以上である。方法1600のいくつかの実施形態において、M0およびN0は両方とも0に等しくない。方法1600のいくつかの実施形態において、M0およびN0は2に等しい。方法1600のいくつかの実施形態において、オプティカルフロー技術を使用した予測微調整が利用されるかどうかを示すフラグは、予測ブロックの第1のサイズに拡張サンプルを含むかどうか、および/または予測ブロックの第1のサイズに拡張サンプルをいくつ含むかを制御する。方法1600のいくつかの実施形態において、予測ブロックの第1のサイズは、拡張サンプルの数に基づいており、拡張サンプルの数は、第1の映像ブロックがアフィンマージモードを使用してコーディングされたものであるか、またはアフィン高度動きベクトル予測モードからコーディングされたものであるかに依存しない。方法1600のいくつかの実施形態において、予測ブロックの第1のサイズの第1の幅および第1の高さは、(M+X)および(N+Y)でそれぞれ示され、映像ブロックの第2のサイズの第2の幅および第2の高さは、MおよびNでそれぞれ示され、Xは、ある幅に対する拡張サンプルの数である。Yは、ある高さに対する拡張サンプルの数である。方法1600のいくつかの実施形態において、XおよびYは0に等しい。方法1600のいくつかの実施形態において、XおよびYは2に等しい。
【0164】
方法1600のいくつかの実施形態において、フラグの値が、オプティカルフロー技術を使用した予測微調整を利用することを示すことに呼応して、XおよびYは2に等しくなる。方法1600のいくつかの実施形態において、フラグの値は1に等しい。方法1600のいくつかの実施形態において、予測ブロックの第1のサイズは、オプティカルフロー技術を使用した予測微調整が利用されるかどうかを示すフラグの値に基づく境界拡張サイズに基づいており、この境界拡張サイズは、映像ブロックの第2のサイズを増加させて予測ブロックの第1のサイズを得るための拡張サンプルの数を示す。方法1600のいくつかの実施形態において、拡張サンプルの数は0である。方法1600のいくつかの実施形態において、拡張サンプルの数は2である。方法1600のいくつかの実施形態において、オプティカルフロー技術を使用する予測微調整は、映像ブロックのサブブロックに基づくアフィン動き補償予測を微調整することを含み、続いて、オプティカルフロー方程式によって導出された差を加算することによって、映像ブロックの輝度予測サンプルを微調整する。方法1600のいくつかの実施形態において、アフィンマージモードは、現在のコーディングユニットの空間的近傍のコーディングユニットの動き情報と、現在のコーディングユニットに使用されるべきサブブロックマージ候補リストからのアフィンマージ候補を示すインデックスをビットストリームに含むこととに基づいて、映像ブロックの現在のコーディングユニットの制御点動きベクトルを生成することを含む。方法1600のいくつかの実施形態において、アフィン高度動きベクトル予測モードは、ビットストリームに以下を含むことを含む。(1)アフィン高度動きベクトル予測モードが使用されるかどうかを示す、映像ブロックのコーディングユニットレベルのアフィンフラグ、(2)4パラメータアフィンまたは6パラメータアフィンが使用されるかどうかを示す第2のフラグ、(3)コーディングユニットレベルの制御点動きベクトル予測子インデックス、および(4)映像ブロックの現在のコーディングユニットの制御点動きベクトルと制御点動きベクトルに対応する予測子制御点動きベクトルとの差。
【0165】
図17は、映像処理の方法例1700のフローチャートである。動作1702は、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、規則は、第1の構文要素がピクチャレベルまたはスライスレベルよりも高い映像レベルで示されることを規定し、前記第1の構文要素が前記ピクチャレベルまたは前記スライスレベルが量子化パラメータデルタを含むかどうかを示すことを規定する。
【0166】
方法1700のいくつかの実施形態において、映像レベルは、シーケンスパラメータセットレベルまたはピクチャパラメータセットレベルであり、第1の構文要素は、ピクチャレベルまたはスライスレベルが輝度量子化パラメータデルタまたは彩度量子化パラメータデルタを含むことを有効化するかどうかを示す。方法1700のいくつかの実施形態において、この規則は、輝度量子化パラメータデルタがピクチャヘッダおよび/またはスライスヘッダに含まれているかどうかが、この輝度量子化パラメータデルタが存在するかどうかを示す第1の構文要素に基づくことを規定する。方法1700のいくつかの実施形態において、この規則は、第1の構文要素が、輝度量子化パラメータデルタがピクチャレベルまたはスライスレベルに存在しないことを示すことに呼応して、輝度量子化パラメータデルタをピクチャヘッダおよびスライスヘッダに含めることを許可しないことを規定する。方法1700のいくつかの実施形態において、この規則は、第1の構文要素が、輝度量子化パラメータデルタがピクチャレベルまたはスライスレベルにないことを示すことに呼応して、輝度量子化パラメータデルタをピクチャヘッダまたはスライスヘッダに含めることが許可されないことを規定する。方法1700のいくつかの実施形態において、この規則は、輝度量子化パラメータデルタがピクチャヘッダに存在しないと、輝度量子化パラメータデルタが一定の値を有すると推測されることを規定する。方法1700のいくつかの実施形態において、この規則は、輝度量子化パラメータデルタがスライスヘッダに存在しないことに呼応して、輝度量子化パラメータデルタを一定の値であると推測することを規定する。方法1700のいくつかの実施形態において、この規則は、第1の構文要素が、輝度量子化パラメータデルタがピクチャヘッダに含まれるかまたはスライスヘッダに含まれるかを規定するフラグをピクチャパラメータセットに含めるかどうかを制御することを規定する。方法1700のいくつかの実施形態において、この規則は、第1の構文要素が、輝度量子化パラメータデルタがピクチャレベルまたはスライスレベルに存在しないことを示すことに呼応して、このフラグをピクチャパラメータセットから除外することを規定する。方法1700のいくつかの実施形態において、この規則は、フラグがピクチャパラメータセットに存在しないことに呼応して、このフラグが一定の値を有すると推測することを規定する。
【0167】
図18は、映像処理の方法例1800のフローチャートである。動作1802は、1つ以上のスライスを含む1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、第1の規則は、第1の映像レベルの第1のフラグが1つ以上の彩度量子化パラメータオフセットを第1の映像レベルに含めるかどうかを示すことを規定し、この第1の映像レベルは、スライスレベルより高く、第2の規則は、第2の映像レベルの第2のフラグが1つ以上の彩度量子化パラメータオフセットをピクチャヘッダまたはスライスヘッダに含めるかどうかを示すことを規定し、第2の映像レベルは、ピクチャレベルより高い。
【0168】
方法1800のいくつかの実施形態において、第2の規則は、ピクチャパラメータセットにおける第2のフラグが、1つ以上の彩度量子化パラメータオフセットがピクチャヘッダに含まれているかまたはスライスヘッダに含まれているかを示すことを規定する。方法1800のいくつかの実施形態において、第2の規則は、第2のフラグが、1つ以上の彩度量子化パラメータオフセットがピクチャヘッダに含まれていることを示すことに呼応して、1つ以上の彩度量子化パラメータオフセットをスライスヘッダから除外することを規定する。方法1800のいくつかの実施形態において、第2の規則は、第2のフラグが、1つ以上の彩度量子化パラメータオフセットがピクチャヘッダから除外されることを示すことに呼応して、1つ以上の彩度量子化パラメータオフセットがスライスヘッダに選択的に含まれることを規定する。方法1800のいくつかの実施形態において、ピクチャヘッダのための1つ以上の彩度量子化パラメータオフセットは、1つ以上の彩度量子化パラメータオフセットをピクチャヘッダから除外することに呼応して、一定の値であると推測される。方法1800のいくつかの実施形態において、スライスヘッダのための1つ以上の彩度量子化パラメータオフセットは、1つ以上の彩度量子化パラメータオフセットをスライスヘッダから除外することに呼応して、一定の値であると推測される。方法1800のいくつかの実施形態において、第2の規則は、第2のフラグが、ピクチャヘッダに輝度量子化パラメータデルタが含まれているかまたはスライスヘッダに含まれているかをさらに示すことを規定する。
【0169】
方法1800のいくつかの実施形態において、第2の規則は、シーケンスパラメータセットおよび/またはピクチャパラメータセットにおける第2のフラグが、1つ以上の彩度量子化パラメータオフセットがピクチャヘッダに含まれているかおよび/またはスライスヘッダに含まれているかを示すことを規定する。方法1800のいくつかの実施形態において、第2の規則は、第2のフラグが、1つ以上の彩度量子化パラメータオフセットがピクチャレベルおよびスライスレベルに存在しないことを示すことに呼応して、1つ以上の彩度量子化パラメータオフセットをピクチャヘッダおよびスライスヘッダに含めることを許可しないことを規定する。方法1800のいくつかの実施形態において、第2の規則は、第2のフラグが、ピクチャパラメータセットに別のフラグを含むかどうかを制御することを規定し、その別のフラグは、1つ以上の彩度量子化パラメータオフセットをピクチャレベルまたはスライスレベルに含むかどうかを示す。方法1800のいくつかの実施形態において、第2の規則は、第2のフラグが1つ以上の彩度量子化パラメータオフセットをピクチャヘッダまたはスライスヘッダから除外することを示すことに呼応して、ピクチャパラメータセットが別のフラグを除外することを規定する。方法1800のいくつかの実施形態において、第2の規則は、別のフラグがピクチャパラメータセットに存在しないことに呼応して、別のフラグが一定の値を有すると推測することを規定する。方法1800のいくつかの実施形態において、第2の規則は、量子化パラメータデルタと彩度量子化パラメータオフセットとが同じヘッダに含まれることを規定する。方法1800のいくつかの実施形態において、第2の規則は、量子化パラメータデルタをピクチャヘッダに含むことに呼応して、1つ以上の彩度量子化パラメータオフセットをスライスヘッダに含めることを許可しないことを規定する。方法1800のいくつかの実施形態において、第2の規則は、量子化パラメータデルタをスライスヘッダに含むことに呼応して、1つ以上の彩度量子化パラメータオフセットをピクチャヘッダに含めることを許可しないことを規定する。
【0170】
図19は、映像処理の方法例1900Aのフローチャートである。動作1902Aは、1つ以上のスライスを備える1つ以上のピクチャを含む映像とこの映像のビットストリームとの変換を行うことを含み、ビットストリームは、コーディングブロック細分割値を示す第1の構文要素を含み、コーディングブロック細分割値は、規則に従った範囲を有する。
【0171】
方法1900Aのいくつかの実施形態において、この規則は、cu_qp_delta_absおよびcu_qp_delta_sign_flagを伝達するイントラスライスにおけるコーディングユニットのコーディングブロック細分割値の範囲が、4分木リーフをスライスにマルチタイプツリー分割することに起因するコーディングユニットの最大階層深さを規定するビットストリームにおける第2の構文要素に依存しないことを規定する。方法1900Aのいくつかの実施形態において、この規則は、この範囲が0~2*(CtbLog2SizeY-MinQtLog2SizeIntraY)+2*(CtbLog2SizeY-MinCbLog2SizeY)であることを規定する。方法1900Aのいくつかの実施形態において、この規則は、その範囲が0~2*(CtbLog2SizeY-MinQtLog2SizeIntraY)+2*min(ph_max_mtt_hierarchy_depth_intra_slice_luma,CtbLog2SizeY-MinCbLog2SizeY)であり、ph_max_mtt_hierarchy_depth_intra_slice_lumaは、第2の構文要素であることを規定する。
【0172】
方法1900Aのいくつかの実施形態において、この規則は、cu_chroma_qp_offset_flagを伝達するイントラスライスにおけるコーディングユニットのコーディングブロック細分割値の範囲が、4分木リーフをスライスにマルチタイプツリー分割することに起因するコーディングユニットの最大階層深さを規定するビットストリームにおける第2の構文要素に依存しないことを規定する。方法1900Aのいくつかの実施形態において、この規則は、この範囲が0~2*(CtbLog2SizeY-MinQtLog2SizeIntraY)+2*(CtbLog2SizeY-MinCbLog2SizeY)であることを規定する。方法1900Aのいくつかの実施形態において、この規則は、範囲が0~2*(CtbLog2SizeY-MinQtLog2SizeIntraY)+2*min(ph_max_mtt_hierarchy_depth_intra_slice_luma,CtbLog2SizeY-MinCbLog2SizeY)であり、ph_max_mtt_hierarchy_depth_intra_slice_lumaは、第2の構文要素であることを規定する。方法1900Aのいくつかの実施形態において、この規則は、cu_qp_delta_absおよびcu_qp_delta_sign_flagをイントラスライスにおいて伝達するコーディングユニットのコーディングブロック細分割値の範囲が、4分木リーフをスライスにマルチタイプツリー分割することに起因するコーディングユニットの最大階層深さを規定するビットストリームにおける第2の構文要素に依存しないことを規定する。方法1900Aのいくつかの実施形態において、この規則は、この範囲が0~2*(CtbLog2SizeY-MinQtLog2SizeInterY)+2*(CtbLog2SizeY-MinCbLog2SizeY)であることを規定する。方法1900Aのいくつかの実施形態において、この規則は、その範囲が0~2*(CtbLog2SizeY-MinQtLog2SizeIntraY)+2*min(ph_max_mtt_hierarchy_depth_inter_slice,CtbLog2SizeY-MinCbLog2SizeY)であり、ph_max_mtt_hierarchy_depth_inter_sliceは第2の構文要素であることを規定する。
【0173】
方法1900Aのいくつかの実施形態において、この規則は、cu_chroma_qp_offset_flagをインタースライスにおいて伝達するコーディングユニットのコーディングブロック細分割値の範囲は、4分木リーフをスライスにマルチタイプツリー分割することに起因するコーディングユニットの最大階層深さを規定するビットストリームにおける第2の構文要素に依存しないことを規定する。方法1900Aのいくつかの実施形態において、この規則は、この範囲が0~2*(CtbLog2SizeY-MinQtLog2SizeInterY)+2*(CtbLog2SizeY-MinCbLog2SizeY)であることを規定する。方法1900Aのいくつかの実施形態において、この規則は、その範囲が0~2*(CtbLog2SizeY-MinQtLog2SizeIntraY)+2*min(ph_max_mtt_hierarchy_depth_inter_slice,CtbLog2SizeY-MinCbLog2SizeY)であり、ph_max_mtt_hierarchy_depth_inter_sliceは第2の構文要素であることを規定する。
【0174】
方法700~1900Aのいくつかの実施形態において、変換を実行することは、映像をビットストリームに符号化することを含む。方法700~1900Aのいくつかの実施形態において、変換を実行することは、映像からビットストリームを生成することを含み、方法は、ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することをさらに含む。方法700~1900Aのいくつかの実施形態において、変換を実行することは、ビットストリームから映像を復号することを含む。いくつかの実施形態において、映像復号装置は、方法700~1900Aの動作を実装するように構成された処理装置を含む。いくつかの実施形態において、映像符号化装置は、方法700~1900Aの動作を実装するように構成された処理装置を含む。いくつかの実施形態において、コンピュータ命令が記憶されたコンピュータプログラム製品は、処理装置により実行されることにより、処理装置に方法700~1900Aの動作を実装させる。いくつかの実施形態において、方法700~1900Aの動作に従って生成されたビットストリームを記憶する非一時的なコンピュータ可読記憶媒体。いくつかの実施形態において、処理装置に方法700~1900Aの動作を実装させる命令を記憶する非一時的なコンピュータ可読記憶媒体。いくつかの実施形態において、方法(s)700~1900Aの動作に従って映像のビットストリームを生成し、このビットストリームをコンピュータ可読プログラム媒体に記憶するステップを含む、ビットストリーム生成方法。いくつかの実施形態において、本願明細書に開示される方法またはシステムに従って、方法、装置、生成されたビットストリームを提供する。
【0175】
本明細書では、「映像処理」という用語は、映像符号化、映像復号、映像圧縮、または映像展開を指してよい。例えば、映像圧縮アルゴリズムは、映像の画素表現から対応するビットストリーム表現への変換、またはその逆の変換中に適用されてもよい。現在の映像ブロックのビットストリーム表現は、例えば、構文によって規定されるように、ビットストリーム内の同じ場所または異なる場所に拡散されるビットに対応していてもよい。例えば、1つのマクロブロックは、変換およびコーディングされた誤り残差値の観点から、且つビットストリームにおけるヘッダおよび他のフィールドにおけるビットを使用して符号化されてもよい。さらに、変換中、デコーダは、上記解決策で説明されているように、判定に基づいて、いくつかのフィールドが存在しても存在しなくてもよいという知識を持って、ビットストリームを構文解析してもよい。同様に、エンコーダは、特定の構文フィールドが含まれるべきであるか、または含まれないべきであるかを判定し、構文フィールドをコーディングされた表現に含めるか、またはコーディングされた表現から除外することによって、それに応じてコーディングされた表現を生成してもよい。
【0176】
本明細書に記載された開示された、およびその他の解決策、実施例、実施形態、モジュール、および機能動作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実施してもよい。開示された、およびその他の実施形態は、1または複数のコンピュータプログラム製品、すなわち、データ処理装置によって実装されるため、またはデータ処理装置の動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1または複数のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの1または複数の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサ、もしくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1または複数の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成した信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報を符号化するために生成される。
【0177】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、コンポーネント、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1または複数のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1または複数のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。コンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開することも可能である。
【0178】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1または複数のコンピュータプログラムを実行する1または複数のプログラマブルプロセッサによって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(Field Programmable Gate Array)またはASIC(Application Specific Integrated Circuit)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0179】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用および専用マイクロプロセッサの両方、並びに任意の種類のデジタルコンピュータの任意の1または複数のプロセッサを含む。一般的に、プロセッサは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1または複数のメモリデバイスとである。一般的に、コンピュータは、データを記憶するための1または複数の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュ記憶装置、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスク等の半導体記憶装置を含む。プロセッサおよびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0180】
本特許明細書は多くの詳細を含むが、これらは、任意の主題の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態のコンテキストで説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテキストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1または複数の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0181】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムの構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0182】
いくつかの実装形態および例のみが記載されており、この特許文献に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19