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

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

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

特許7322290ビデオビットストリームにおけるサブピクチャシグナリングのための構文
<>
  • 特許-ビデオビットストリームにおけるサブピクチャシグナリングのための構文 図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)【登録日】2023-07-28
(45)【発行日】2023-08-07
(54)【発明の名称】ビデオビットストリームにおけるサブピクチャシグナリングのための構文
(51)【国際特許分類】
   H04N 19/70 20140101AFI20230731BHJP
【FI】
H04N19/70
【請求項の数】 17
(21)【出願番号】P 2022520358
(86)(22)【出願日】2020-10-09
(65)【公表番号】
(43)【公表日】2022-12-08
(86)【国際出願番号】 CN2020119932
(87)【国際公開番号】W WO2021063421
(87)【国際公開日】2021-04-08
【審査請求日】2022-04-07
(31)【優先権主張番号】PCT/CN2019/109809
(32)【優先日】2019-10-02
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ザン,カイ
(72)【発明者】
【氏名】デン,ジピン
(72)【発明者】
【氏名】リュウ,ホンビン
(72)【発明者】
【氏名】ザン,リー
(72)【発明者】
【氏名】シュイ,ジィジォン
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2021/049586(WO,A1)
【文献】国際公開第2021/052794(WO,A1)
【文献】国際公開第2020/146582(WO,A1)
【文献】Benjamin Bross, Jianle Chen, and Shan Liu,Versatile Video Coding (Draft 6),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O2001 (version 14),15th Meeting: Gothenburg, SE,2019年07月31日,pp.21-23,34-35,37-40,87-97
【文献】Yong He, and Ahmed Hamza,AHG12: On subpicture grid syntax,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P0129,16th Meeting: Geneva, CH,2019年09月,pp.1-3
【文献】Lulin Chen, et al.,AHG17/AHG12: On signalling of subpicture structure in the SPS,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P0143-v1,16th Meeting: Geneva, CH,2019年09月,pp.1-4
【文献】Kai Zhang, et al.,AHG12: Cleanups on syntax design of sub-pictures,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P0377-v1,16th Meeting: Geneva, CH,2019年09月,pp.1-4
【文献】Li Jingya, Abe Kiyofumi, and Virginie Drugeon,AHG12: Modification for subpicture,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P0171-v2,16th Meeting: Geneva, CH,2019年10月,pp.1-6
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオ処理の方法であって、
ビデオのピクチャと前記ビデオのビットストリームとの間の変換に対して、前記ピクチャを1つ以上のサブピクチャにパーティショニングすることと、
前記パーティショニングに基づいて前記変換を実行することと、を含み、
前記ビットストリームは、前記1つ以上のサブピクチャの数を示す第1の構文要素を含み、
前記第1の構文要素は、ue(v)の記述子を有するスキームを使用してコーディングされ、
前記1つ以上のサブピクチャのうちのサブピクチャは、CtbSizeYの単位で前記サブピクチャの左上のコーディングツリーブロック(CTB)の水平位置を示す第2の構文要素と、CtbSizeYの単位で前記サブピクチャの左上のCTBの垂直位置を示す第3の構文要素と、CtbSizeYの単位で前記サブピクチャの幅を示す第4の構文要素と、CtbSizeYの単位で前記サブピクチャの高さを示す第5の構文要素を含めることによって示され、
CtbSizeYは、コーディングツリーブロックのサイズを示す、方法。
【請求項2】
前記1つ以上のサブピクチャの数は、Nとして示され、前記第1の構文要素の値は、(N-1)で示され、Nは、整数である、請求項1に記載の方法。
【請求項3】
前記ピクチャに対する前記第1の構文要素の許容最大値は、固定値である、請求項1または2に記載の方法。
【請求項4】
前記サブピクチャが前記ピクチャ内の最初のサブピクチャであるときに、前記第2の構文要素および前記第3の構文要素は、前記ビットストリームに含まれず、前記第2の構文要素および前記第3の構文要素の値は、0であると推論される、請求項に記載の方法。
【請求項5】
前記第2の構文要素は、固定長コーディングでコーディングされ、
前記第2の構文要素の長さは、Ceil(Log2(V1))に基づいて導出され、
V1は、前記ピクチャの幅およびCtbSizeYに関する変数に基づいて決定され、
Ceil(x)は、x以上の最小整数を示す、請求項に記載の方法。
【請求項6】
前記第3の構文要素は、固定長コーディングでコーディングされ、
前記第3の構文要素の長さは、Ceil(Log2(V2))に基づいて導出され、
V2は、前記ピクチャの幅およびCtbSizeYに関する変数に基づいて決定され、
Ceil(x)は、x以上の最小整数を示す、請求項に記載の方法。
【請求項7】
前記第4の構文要素は、固定長コーディングでコーディングされ、
前記第4の構文要素の長さは、Ceil(Log2(V1))に基づいて導出され、
V1は、前記ピクチャの幅およびCtbSizeYに関する変数に基づいて決定され、
Ceil(x)は、x以上の最小整数を示す、請求項に記載の方法。
【請求項8】
前記第5の構文要素は、固定長コーディングでコーディングされ、
前記第5の構文要素の長さは、Ceil(Log2(V2))に基づいて導出され、
V2は、前記ピクチャの幅およびCtbSizeYに関する変数に基づいて決定され、
Ceil(x)は、x以上の最小整数を示す、請求項に記載の方法。
【請求項9】
前記第1の構文要素、前記第2の構文要素、前記第3の構文要素、前記第4の構文要素、及び前記第5の構文要素は、前記ビットストリームにおいて第6の構文要素が含まれた後に含まれ、
前記第6の構文要素に5を加えた値は、コーディングツリーユニットサイズに関する、請求項に記載の方法。
【請求項10】
前記サブピクチャがループ内フィルタリング動作を除くプロセスにおけるピクチャとして処理されるかどうかを示すsubpicture-treated-as-pictureフラグは、前記ビットストリームにおいて前記第1の構文要素、前記第2の構文要素、前記第3の構文要素、前記第4の構文要素、及び前記第5の構文要素が含まれた後に含まれる、請求項に記載の方法。
【請求項11】
ループ内フィルタリング動作がサブピクチャの境界にわたって実行され得るかどうかを示すloop-filter-across-subpicture-enabledフラグは、前記ビットストリームにおいて前記第1の構文要素、前記第2の構文要素、前記第3の構文要素、前記第4の構文要素、及び前記第5の構文要素が含まれた後に含まれる、請求項に記載の方法。
【請求項12】
ue(v)の記述子を有するスキームは、0次指数ゴロムコーディングスキームである、請求項1~11のいずれか一項に記載の方法。
【請求項13】
前記変換は、前記ピクチャを前記ビットストリームに符号化することを含む、請求項1~12のいずれか一項に記載の方法。
【請求項14】
前記変換は、前記ビットストリームから前記ピクチャを復号することを含む、請求項1~12のいずれか一項に記載の方法。
【請求項15】
プロセッサと、命令をその上に有する非一時的なメモリとを含む、ビデオデータを処理するための装置であって、前記命令は、前記プロセッサによって実行されると、前記命令は、前記プロセッサに、
ビデオのピクチャと前記ビデオのビットストリームとの間の変換に対して、前記ピクチャを1つ以上のサブピクチャにパーティショニングすることと、
前記パーティショニングに基づいて前記変換を実行することと、を行わせ、
前記ビットストリームは、前記1つ以上のサブピクチャの数を示す第1の構文要素を含み、
前記第1の構文要素は、ue(v)の記述子を有するスキームを使用してコーディングされ、
前記1つ以上のサブピクチャのうちのサブピクチャは、CtbSizeYの単位で前記サブピクチャの左上のコーディングツリーブロック(CTB)の水平位置を示す第2の構文要素と、CtbSizeYの単位で前記サブピクチャの左上のCTBの垂直位置を示す第3の構文要素と、CtbSizeYの単位で前記サブピクチャの幅を示す第4の構文要素と、CtbSizeYの単位で前記サブピクチャの高さを示す第5の構文要素を含めることによって示され、
CtbSizeYは、コーディングツリーブロックのサイズを示す、装置。
【請求項16】
命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記命令は、プロセッサに、
ビデオのピクチャと前記ビデオのビットストリームとの間の変換に対して、前記ピクチャを1つ以上のサブピクチャにパーティショニングすることと、
前記パーティショニングに基づいて前記変換を実行することと、を行わせ、
前記ビットストリームは、前記1つ以上のサブピクチャの数を示す第1の構文要素を含み、
前記第1の構文要素は、ue(v)の記述子を有するスキームを使用してコーディングされ、
前記1つ以上のサブピクチャのうちのサブピクチャは、CtbSizeYの単位で前記サブピクチャの左上のコーディングツリーブロック(CTB)の水平位置を示す第2の構文要素と、CtbSizeYの単位で前記サブピクチャの左上のCTBの垂直位置を示す第3の構文要素と、CtbSizeYの単位で前記サブピクチャの幅を示す第4の構文要素と、CtbSizeYの単位で前記サブピクチャの高さを示す第5の構文要素を含めることによって示され、
CtbSizeYは、コーディングツリーブロックのサイズを示す、コンピュータ可読記憶媒体。
【請求項17】
デオのビットストリームを記憶するための方法であって、前記方法は、
前記ビデオのピクチャ1つ以上のサブピクチャにパーティショニングすることと、
前記パーティショニングに基づいて前記ビットストリームを生成することと、
前記ビットストリームを非一時的なコンピュータ可読記憶媒体に記憶することと、を含み、
前記ビットストリームは、前記1つ以上のサブピクチャの数を示す第1の構文要素を含み、
前記第1の構文要素は、ue(v)の記述子を有するスキームを使用してコーディングされ、
前記1つ以上のサブピクチャのうちのサブピクチャは、CtbSizeYの単位で前記サブピクチャの左上のコーディングツリーブロック(CTB)の水平位置を示す第2の構文要素と、CtbSizeYの単位で前記サブピクチャの左上のCTBの垂直位置を示す第3の構文要素と、CtbSizeYの単位で前記サブピクチャの幅を示す第4の構文要素と、CtbSizeYの単位で前記サブピクチャの高さを示す第5の構文要素を含めることによって示され、
CtbSizeYは、コーディングツリーブロックのサイズを示す、方法
【発明の詳細な説明】
【技術分野】
【0001】
の出願は、2019年10月02日に出願された国際特許出願第PCT/CN2019/109809号の優先権および利益を適時に主張する2020年10月9日に出願された国際特許出願第PCT/CN2020/119932号の国内段階である。前述の出願の開示全体は、この出願の開示の一部として参照により組み込まれる。
【0002】
本文書は、ビデオおよび画像コーディングおよび復号技術に関する。
【背景技術】
【0003】
デジタルビデオは、インターネットおよび他のデジタル通信ネットワークにおける最大の帯域幅使用を占めている。ビデオを受信および表示することが可能な接続ユーザデバイスの数が増加するにつれて、デジタルビデオの利用に対する帯域幅需要は増加し続けることが予想される。
【発明の概要】
【0004】
開示された技術は、サブピクチャベースのコーディングまたは復号が実行されるビデオまたは画像復号器または符号化器の実施形態によって使用されてもよい。
【0005】
1つの例示的な態様において、ビデオ処理の方法が開示される。方法は、1つ以上のピクチャを含むビデオと、ビデオのビットストリーム表現との間の変換を実行することを含む。ビットストリーム表現は、各ピクチャが1つ以上のスライスとしてコーディングされることを指定するフォーマット規則に適合することが必要とされ、フォーマット規則は、ピクチャ内のサンプルが1つ以上のスライスのいずれによってもカバーされないことを禁止する
【0006】
さらに別の態様において、ビデオ処理の方法が開示される。方法は、ビデオのピクチャとビデオのビットストリーム表現との間の変換に対して、ピクチャ内のタイルの数またはブリックの数に関連するルールに従って、ピクチャ内の1つ以上のスライスの情報をシグナリングする方式を決定することを含む。方法はまた、決定に基づいて変換を実行することを含む。
【0007】
さらに別の態様において、ビデオ処理の方法が開示される。方法は、規則に従って、ビデオのピクチャとビデオのビットストリーム表現との間の変換を実行することを含む。ピクチャは、1つ以上のスライスとしてビットストリーム表現においてコーディングされ、この規則は、ピクチャのスライスのアドレスがビットストリーム表現に含まれるかどうか、またはどのように含まれるかを指定する。
【0008】
さらに別の態様において、ビデオ処理の方法が開示される。方法は、ビデオのピクチャとビデオのビットストリーム表現との間の変換に対して、ピクチャ内の複数のブリックにわたってサンプルにアクセスするフィルタ動作を示す構文要素が有効にされるかどうかが、ピクチャ内のタイルの数またはブリックの数に基づいてビットストリーム表現に含まれることを決定することを含む。方法はまた、決定に基づいて変換を実行することを含む。
【0009】
さらに別の態様において、ビデオ処理の方法が開示される。方法は、ビデオのピクチャと前記ビデオのビットストリーム表現との間の変換を実行することを含み、ピクチャが、1つ以上のサブピクチャを含み、1つ以上のサブピクチャの数が、ビットストリーム表現における構文要素によって示される。
【0010】
さらに別の態様において、ビデオ処理の方法が開示される。方法は、1つ以上のサブピクチャを含むビデオのピクチャとビデオのビットストリーム表現との間の変換を実行することを含む。ビットストリーム表現は、サブピクチャに関する情報が、(1)サブピクチャの1つ以上のコーナー位置、または(2)サブピクチャの寸法のうちの少なくとも1つに基づいて、ビットストリーム表現に含まれることを指定するフォーマット規則に適合する。
【0011】
さらに別の態様において、ビデオ処理の方法が開示される。方法は、参照ピクチャ再サンプリングツールが、ビデオのピクチャとビデオのビットストリーム表現との間の変換に対して、ピクチャが1つ以上のサブピクチャに分割されることにより有効にされると決定することを含む。方法はまた、決定に基づいて変換を実行することを含む。
【0012】
さらに別の態様において、ビデオ処理の方法が開示される。方法は、1つ以上のスライスを含む1つ以上のサブピクチャを含むビデオピクチャとビデオのビットストリーム表現との間の変換を実行することを含む。ビットストリーム表現は、サブピクチャおよびスライスに対して、サブピクチャを識別するインデックスがスライスのヘッダに含まれる場合に、スライスに対するアドレスフィールドがサブピクチャ内のスライスのアドレスを示すことを指定するフォーマット規則に適合する。
【0013】
さらに別の態様において、ビデオ処理の方法が開示される。方法は、ビデオの第1のビデオ領域内のビデオブロックに対して、アフィンモードを使用してビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換に対して時間的動きベクトル予測子が決定される位置が、第2のビデオ領域内にあるかどうかを決定することと、その決定に基づいて変換を実行することと、を含む。
【0014】
さらに別の例示的な態様において、ビデオ処理の方法が開示される。方法は、ビデオの第1のビデオ領域内のビデオブロックについて、ビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換に対して参照ピクチャ内の整数サンプルがフェッチされる位置が、第2のビデオ領域内にあるかどうかを決定することであって、参照ピクチャが、変換中に補間プロセスにおいて使用されない、ことと、その決定に基づいて変換を実行することと、を含む。
【0015】
さらに別の例示的な態様において、ビデオ処理の方法が開示される。方法は、ビデオの第1のビデオ領域内のビデオブロックに対して、ビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換に対して、再構成されたルマサンプル値がフェッチされる位置が、第2のビデオ領域内にあるかどうかを決定することと、その決定に基づいて変換を実行することと、を含む。
【0016】
さらに別の例示的な態様において、ビデオ処理の方法が開示される。方法は、ビデオの第1のビデオ領域内のビデオブロックについて、ビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換中に、ビデオブロックに対する分割、深さ導出またはスプリットフラグシグナリングに関するチェックが実行される位置が第2のビデオ領域内にあるかどうかを決定するステップと、決定に基づいて変換を実行するステップとを含む。
【0017】
さらに別の例示的な態様において、ビデオ処理の方法が開示される。方法は、1つ以上のビデオブロックを含む1つ以上のビデオピクチャを含むビデオと、ビデオのコーディングされた表現との間の変換を実行することを含み、コーディングされた表現は、変換がサブピクチャコーディング/復号および動的解像度コーディング/復号ツール、またはビデオユニット内の参照ピクチャ再サンプリングツールを使用しないというコーディング構文要件に準拠する。
【0018】
さらに別の例示的な態様において、ビデオ処理の方法が開示される。方法は、1つ以上のビデオブロックを含む1つ以上のビデオピクチャを含むビデオと、ビデオのコーディングされた表現との間の変換を実行することを含み、コーディングされた表現は、第1の構文要素subpic_grid_idx[i][j]が、第2の構文要素max_subpics_minus1よりも大きくないというコーディング構文要件に準拠する。
【0019】
さらに別の例示的な態様において、上述の方法は、プロセッサを含むビデオ符号化器装置によって実装されてもよい。
【0020】
さらに別の例示的な態様において、上述の方法は、プロセッサを含むビデオ復号器装置によって実装されてもよい。
【0021】
さらに別の例示的な態様において、上述の方法は、プロセッサ実行可能命令の形態で具体化され、コンピュータ可読プログラム媒体に記憶されてもよい。
【0022】
これらおよび他の態様は、本文書においてさらに記載される。
【図面の簡単な説明】
【0023】
図1】時間的動きベクトル予測(TMVP)およびサブブロックTMVPにおける領域制約の一例を示す。
【0024】
図2】階層的動き予測スキームの一例を示す。
【0025】
図3】本文書において記載された技法を実装するためのハードウェアプラットフォームの一例のブロック図である。
【0026】
図4】ビデオ処理のための例示的な方法のフローチャートを示す。
【0027】
図5】12のタイルと3つのラスタ走査スライス(参考)にパーティショニングされる18×12のルマCTUを有するピクチャの一例を示す。
【0028】
図6】24のタイルと9つの矩形スライス(参考)にパーティショニングされる18×12のルマCTUを有するピクチャの一例を示す。
【0029】
図7】4つのタイル、11のブリック、および4つの矩形スライス(参考)にパーティショニングされるピクチャの一例を示す。
【0030】
図8】本明細書に開示される様々な技術を実装することができる例示的なビデオ処理システムを示すブロック図である。
【0031】
図9】例示的なビデオコーディングシステムを示すブロック図である。
【0032】
図10】本開示のいくつかの実施形態による符号化器を示すブロック図である。
【0033】
図11】本開示のいくつかの実施形態による復号器を示すブロック図である。
【0034】
図12】本技術によるビデオ処理のための方法のフローチャート表現である。
【0035】
図13】本技術によるビデオ処理のための別の方法のフローチャート表現である。
【0036】
図14】本技術によるビデオ処理のための別の方法のフローチャート表現である。
【0037】
図15】本技術によるビデオ処理のための別の方法のフローチャート表現である。
【0038】
図16】本技術によるビデオ処理のための別の方法のフローチャート表現である。
【0039】
図17】本技術によるビデオ処理のための別の方法のフローチャート表現である。
【0040】
図18】本技術によるビデオ処理のための別の方法のフローチャート表現である。
【0041】
図19】本技術によるビデオ処理のためのさらに別の方法のフローチャート表現である。
【発明を実施するための形態】
【0042】
本文書は、解凍または復号されたデジタルビデオまたは画像の品質を改善するために、画像またはビデオビットストリームの復号器によって使用され得る様々な技法を提供する。簡潔さのために、本明細書では、用語「ビデオ」は、一連のピクチャ(伝統的にビデオと呼ばれる)と個々の画像の両方を含むように使用される。さらに、ビデオ符号化器はまた、さらなる符号化のために使用される復号されたフレームを再構成するために、符号化のプロセス中にこれらの技法を実装してもよい。
【0043】
セクション見出しは、理解を容易にするために本文書で使用されるが、実施形態および技法を対応するセクションに限定するものではない。したがって、1つのセクションからの実施形態は、他のセクションからの実施形態と組み合わせることができる。
【0044】
1.概要
【0045】
本文書は、ビデオコーディング技術に関係する。具体的には、ビデオコーディングにおいて基本色ベースの表現を用いたパレットコーディングに関する。これは、HEVCのような既存のビデオコーディング規格、または完結される規格(Versatile Video Coding)に適用されてもよい。これは、将来のビデオコーディング規格またはビデオコーデックにも適用可能である。
【0046】
2.最初の議論
【0047】
ビデオコーディング規格は、主に、周知のITU-TおよびISO/IEC規格の開発を通じて発展してきた。ITU-TはH.261とH.263を、ISO/IECはMPEG-1とMPEG-4 Visualを、2つの組織はH.262/MPEG-2 VideoおよびH.264/MPEG-4 AVC(Advanced Video Coding)とH.265/HEVC規格[1,2]を共同で作成した。H.262から、ビデオコーディング規格は、時間的予測に変換コーディングを加えたものが利用されるハイブリッドビデオコーディング構造に基づいている。HEVCを越えた将来のビデオコーディング技術を探求するため、2015年にVCEGとMPEGによって共同でJVET(Joint Video Exploration Team)が設立された。それ以来、JVETによって多くの新しい方法が採用され、JEM(Joint Exploration Model)と名付けられた参照ソフトウェアに入れられた。2018年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)とのJVET(Joint Video Expert Team)が発足され、HEVCに対して50%のビットレート低減を目指すVVC規格に取り組んだ。
【0048】
2.1 VVCにおけるTMVPおよびサブブロックTMVPにおける領域制約
【0049】
図1は、TMVPおよびサブブロックTMVPにおける例示的な領域制約を示す。TMVPおよびサブブロックTMVPにおいては、図1に示すように、並置された(collocated)CTU+4×4ブロックの列からのみ、時間的MVをフェッチすることができることに制約される。
【0050】
2.2 例示的なサブピクチャ
【0051】
いくつかの実施形態において、柔軟なタイリングアプローチに基づくサブピクチャベースのコーディング技法を実装することができる。サブピクチャベースのコーディング技法の概要は、以下を含む。
【0052】
(1) ピクチャは、サブピクチャに分割され得る。
【0053】
(2) サブピクチャの存在の表示は、サブピクチャの他のシーケンスレベルの情報と共に、SPSにおいて示される。
【0054】
(3) サブピクチャが復号プロセス(ループ内フィルタリング動作を除く)においてピクチャとして処理されるどうかは、ビットストリームによって制御され得る。
【0055】
(4) サブピクチャ境界にわたるループ内フィルタリングが無効であるかどうかは、各サブピクチャに対するビットストリームによって制御され得る。DBF、SAO、およびALFプロセスが、サブピクチャ境界にわたるループ内フィルタリング動作を制御するために更新される。
【0056】
(5) 簡単にするために、開始点として、サブピクチャ幅、高さ、水平オフセット、および垂直オフセットが、SPSのルマサンプルにおいて単位でシグナリングされる。サブピクチャ境界は、スライス境界であるように制約される。
【0057】
(6) サブピクチャを復号プロセス(ループ内フィルタリング動作を除く)においてピクチャとして処理することは、coding_tree_unit()構文を若干更新することによって指定され、以下の復号プロセスに更新される。
【0058】
- (高度な)時間的ルマ動きベクトル予測のための導出プロセス
【0059】
- ルマサンプル双線形補間プロセス
【0060】
- ルマサンプル8タップ補間フィルタリングプロセス
【0061】
- クロマサンプル補間プロセス
【0062】
(7) サブピクチャIDはSPSにおいて明示的に指定され、VCL NALユニットを変更する必要なくサブピクチャシーケンスの抽出を可能にするようにタイルグループヘッダに含まれる。
【0063】
(8) 出力サブピクチャセット(OSPS)は、サブピクチャとそのセットのための規範抽出と適合点を明記するために提案されている。
【0064】
2.3 Versatile Video Codingにおける例示的なサブピクチャ
シーケンスパラメータセットRBSP構文
【表1】
1に等しいsubpics_present_flagは、SPS RBSP構文において現在サブピクチャパラメータが存在することを示す。0に等しいsubpics_present_flagは、SPS RBSP構文において現在サブピクチャパラメータが存在しないことを示す。
注2 - ビットストリームがサブビットストリーム抽出プロセスの結果であり、サブビットストリーム抽出プロセスへの入力ビットストリームのサブピクチャのサブセットのみを含むときに、SPSのRBSPにおいて1に等しいsubpics_present_flagの値をセットする必要があるかもしれない。
max_subpics_minus1+1は、CVSにおいて存在し得るサブピクチャの最大数を指定する。
max_subpics_minus1は、0~254の範囲にある。255の値は、ITU-T|ISO/IECによって将来使用するために予約されている。
subpic_grid_col_width_minus1+1は、サブピクチャ識別子グリッドの各要素の幅を4サンプル単位で指定する。構文要素の長さは、Ceil(Log2(pic_width_max_in_luma_samples/4))ビットである。
変数NumSubPicGridColsは、以下のように導出される。
【数1】
subpic_grid_row_height_minus1+1は、サブピクチャ識別子グリッドの各要素の高さを4サンプル単位で指定する。構文要素の長さは、Ceil(Log2(pic_height_max_in_luma_samples/4))ビットである。変数NumSubPicGridRowsは、以下のように導出される。
【数2】
subpic_grid_idx[i][j]は、グリッド位置(i,j)のサブピクチャインデックスを指定する。構文要素の長さは、Ceil(Log2(max_subpics_minus1+1))ビットである。
変数SubPicTop[subpic_grid_idx[i][j]]、SubPicLeft[subpic_grid_idx[i][j]]、SubPicWidth[subpic_grid_idx[i][j]]、SubPicHeight[subpic_grid_idx[i][j]]、およびNumSubPicsは、以下のように導出される。
【数3】
1に等しいsubpic_treated_as_pic_flag[i]は、CVSにおいて各コーディングされたピクチャのi番目のサブピクチャが、ループ内フィルタリング動作を除く復号プロセスにおいてピクチャとして処理されることを指定する。0に等しいsubpic_treated_as_pic_flag[i]は、CVSにおいて各コーディングされたピクチャのi番目のサブピクチャが、ループ内フィルタリング動作を除く復号プロセスにおいてピクチャとして処理されないことを指定する。存在しないときは、subpic_treated_as_pic_flag[i]の値は、0に等しいと推論される。
1に等しいloop_filter_across_subpic_enabled_flag[i]は、CVSにおいて各コーディングされたピクチャにおけるi番目のサブピクチャの境界にわたってループ内フィルタリング動作が実行されてもよいことを指定する。0に等しいloop_filter_across_subpic_enabled_flag[i]は、CVSにおいて各コーディングされたピクチャにおけるi番目のサブピクチャの境界にわたってループ内フィルタリング動作が実行されないことを指定する。存在しないときは、loop_filter_across_subpic_enabled_pic_flag[i]の値は、1に等しいと推論される。
ビットストリーム適合性の必要条件は、以下の制約が適用されることである。
- サブピクチャsubpicAとsubpicBの任意の2つのサブピクチャに対して、subpicAのインデックスがsubpicBのインデックスよりも小さいときに、subPicAの任意のコーディングされたNALユニットは、subPicBのコーディングされた任意のNALユニットを復号順に続くものとする。
- サブピクチャの形状は、各サブピクチャが、復号されるときに、その全体の左境界および全体の上境界を、ピクチャ境界からなるか、以前に復号されたサブピクチャの境界からなるようにするものとする。
ピクチャラスタ走査におけるCTBアドレスからサブピクチャインデックスへの変換を指定する、0~PicSizeInCtbsY-1の範囲(両端含む)のctbAddrRsに対するリストCtbToSubPicIdx[ctbAddrRs]は、以下のように導出される。
【数4】
num_bricks_in_slice_minus1は、存在するときは、スライス内のブリック数から1引いたものを指定する。num_bricks_in_slice_minus1の値は、0~NumBricksInPic-1の範囲(両端含む)にあるものとする。rect_slice_flagが0に等しく、single_brick_per_slice_flagが1に等しいときは、num_bricks_in_slice_minus1の値は0に等しいと推論される。single_brick_per_slice_flagが1に等しいときは、num_bricks_in_slice_minus1の値は0に等しいと推論される。
現在のスライスにおけるブリックの数を指定する変数NumBricksInCurrSliceと、現在のスライスにおけるi番目のブリックのブリックインデックスを指定するSliceBrickIdx[i]は、以下のように導出される。
【数5】
変数SubPicIdx、SubPicLeftBoundaryPos、SubPicTopBoundaryPos、SubPicRightBoundaryPos、およびSubPicBotBoundaryPosは、以下のように導出される。
【数6】
時間的ルマ動きベクトル予測のための導出プロセス
このプロセスへの入力は、以下のようである。
- 現在のピクチャの左上のルマサンプルに対する現在のルマコーディングブロックの左上のサンプルのルマ位置(xCb,yCb)
- ルマサンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth
- ルマサンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight
- 参照インデックスrefIdxLX(Xは、0または1)
このプロセスの出力は、以下のようである。
- 1/16分数サンプル精度における動きベクトル予測mvLXCol
- 可用性フラグavailableFlagLXCol
変数currCbは、ルマ位置(xCb,yCb)での現在のルマコーディングブロックを指定する。
変数mvLXColおよびavailableFlagLXColは、以下のように導出される。
- slice_temporal_mvp_enabled_flag=0または(cbWidth*cbHeight)が32以下である場合は、mvLXColの両方のコンポーネントとも、0に等しくセットされ、availableFlagLXColは、0に等しくセットされる。
- それ以外の場合(slice_temporal_mvp_enabled_flagが1に等しい場合)、以下の順序付けされたステップが適用される。
1.右下の並置された動きベクトルと、右下の境界サンプル位置は、以下のように導出される。
【数7】
- yCb>>CtbLog2SizeYが、yColBr>>CtbLog2SizeYに等しく、yColBrが、botBoundaryPos以下であり、xColBrが、rightBoundaryPos以下である場合、以下が適用される。
- 変数colCbは、ColPicによって指定される並置された画像内の((xColBr>>3)<<3,(yColBr>>3)<<3)で与えられる修正された位置をカバーするルマコーディングブロックを指定する。
- ルマ位置(xColCb,yColCb)は、ColPicによって指定された並置されたピクチャの左上のルマサンプルに対する、colCbによって指定された並置されたルマコーディングブロックの左上のサンプルに等しくセットされる。
- 8.5.2.12項において指定されている並置された動きベクトルに対する導出プロセスは、currCb、colCb、(xColCb,yColCb)、refIdxLX、0に等しくセットされたsbFlagを入力として呼び出され、出力は、mvLXColおよびavailableFlagLXColに割り当てられる。
それ以外の場合、mvLXColの両方のコンポーネントとも、0に等しくセットされ、availableFlagLXColは、0に等しくセットされる。
...
ルマサンプル双線形補間プロセス
このプロセスへの入力は、以下のようである。
- フルサンプルユニットにおけるルマ位置(xInt,yInt
- 分数サンプルユニットにおけるルマ位置(xFrac,yFrac
- ルマ参照サンプルアレイrefPicLX
このプロセスの出力は、予測ルマサンプル値predSampleLXである。
変数shift1、shift2、shift3、shift4、offset1、offset2、およびoffset3は、以下のように導出される。
【数8】
変数picWは、pic_width_in_luma_samplesに等しくセットされ、変数picHは、pic_height_in_luma_samplesに等しくセットされる。
xFracまたはyFracに等しい各1/16分数サンプル位置pに対するルマ補間フィルタ係数fb[p]は、表8-10において指定される。
フルサンプルユニットにおけるルマ位置(xInt,yInt)は、i=0..1に対して、以下のように導出される。
- subpic_treated_as_pic_flag[SubPicIdx]が1に等しい場合、以下が適用される。
【数9】
- それ以外の場合(subpic_treated_as_pic_flag[SubPicIdx]が0に等しい場合)、以下が適用される。
【数10】
...
サブブロックベースの時間的マージ候補のための導出プロセス
このプロセスへの入力は、以下のようである。
- 現在のピクチャの左上のルマサンプルに対する現在のルマコーディングブロックの左上のサンプルのルマ位置(xCb,yCb)
- ルマサンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth
- ルマサンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight
- 近隣のコーディングユニットの可用性フラグavailableFlagA
- 近隣のコーディングユニットの参照インデックスrefIdxLXA(Xは、0または1)
- 近隣のコーディングユニットの予測リスト利用フラグpredFlagLXA(Xは、0または1)
- 近隣のコーディングユニットの1/16分数サンプル精度における動きベクトルmvLXA(Xは、0または1)
このプロセスの出力は、以下のようである。
- 可用性フラグavailableFlagSbCol
- 水平方向numSbXと垂直方向numSbYにおけるルマコーディングサブブロックの数
- 参照インデックスrefIdxL0SbColとrefIdxL1SbCol
- xSbIdx=0..numSbX-1、ySbIdx=0..numSbY-1である1/16分数サンプル精度におけるルマ動きベクトルmvL0SbCol[xSbIdx][ySbIdx]およびmvL1SbCol[xSbIdx][ySbIdx]
- xSbIdx=0..numSbX-1、ySbIdx=0..numSbY-1である予測リスト利用フラグpredFlagL0SbCol[xSbIdx][ySbIdx]およびpredFlagL1SbCol[xSbIdx][ySbIdx]
可用性フラグavailableFlagSbColは、以下のように導出される。
- 次の条件のうちの1つ以上が真である場合、availableFlagSbColは、0に等しくセットされる。
- slice_temporal_mvp_enabled_flagが0に等しい。
- sps_sbtmvp_enabled_flagが0に等しい。
- cbWidthが8よりも小さい。
- cbHeightが8よりも小さい。
- それ以外の場合、以下の順序付されたステップが適用される。
1. 現在のコーディングブロックを含むルマコーディングツリーブロックの左上のサンプルの位置(xCtb,yCtb)と、現在のルマコーディングブロックの右下のサンプルの位置(xCtr,yCtr)は、以下のように導出される。
【数11】
2. ルマ位置(xColCtrCb,yColCtrCb)は、ColPicによって指定された並置されたピクチャの左上のルマサンプルに対する、ColPic内の(xCtr,yCtr)によって与えられる位置をカバーする並置されたルマコーディングブロックの左上のサンプルに等しくセットされる。
3. 8.5.5.4項に指定されているサブブロックベースの時間的マージベースの基本動きデータのための導出プロセスは、位置(xCtb,yCtb)、位置(xColCtrCb,yColCtrCb)、可用性フラグavailableFlagA、予測リスト利用フラグpredFlagLXA、参照インデックスrefIdxLXA、および動きベクトルmvLXA(Xは、0または1)を入力として呼び出され、動きベクトルctrMvLX、並置されたブロックの予測リスト利用フラグctrPredFlagLX(Xは0、1)、および時間的動きベクトルtempMvを出力とする。
4. 変数availableFlagSbColは、以下のように導出される。
- ctrPredFlagL0とctrPredFlagL1の両方が0に等しい場合、availableFlagSbColは、0に等しくセットされる。
- それ以外の場合、availableFlagSbColは、1に等しくセットされる。
availableFlagSbColが1に等しい場合、以下が適用される。
- 変数numSbX、numSbY、sbWidth、sbHeight、およびrefIdxLXSbColは、以下のように導出される。
【数12】
- xSbIdx=0..numSbX-1およびySbIdx=0..numSbY-1に対して、動きベクトルmvLXSbCol[xSbIdx][ySbIdx]および予測リスト利用フラグpredFlagLXSbCol[xSbIdx][ySbIdx]は、以下のように導出される。
- 現在のピクチャの左上のルマサンプルに対する現在のコーディングブロックの左上のサンプルを指定するルマ位置(xCb,yCb)は、以下のように導出される。
【数13】
- ColPic内の並置されたサブブロックの位置(xColSb,yColSb)は、以下のように導出される。
- 以下が適用される。
【数14】
- subpic_treated_as_pic_flag[SubPicIdx]が1に等しい場合、以下が適用される。
【数15】
- それ以外の場合(subpic_treated_as_pic_flag[SubPicIdx]が0に等しい場合)、以下が適用される。
【数16】
...
サブブロックベースの時間的マージベースの動きデータのための導出プロセス
このプロセスへの入力は、以下のようである。
- 現在のコーディングブロックを含むルマコーディングツリーブロックの左上のサンプルの位置(xCtb,yCtb)
- 右下の中央のサンプルをカバーする、並置されたルマコーディングブロックの左上のサンプルの位置(xColCtrCb,yColCtrCb)
- 近隣のコーディングユニットの可用性フラグavailableFlagA
- 近隣のコーディングユニットの参照インデックスrefIdxLXA
- 近隣のコーディングユニットの予測リスト利用フラグpredFlagLXA
- Xが0または1である近隣のコーディングユニットの1/16分数サンプル精度における動きベクトルmvLXA
このプロセスの出力は、以下のようである。
- 動きベクトルctrMvL0およびctrMvL1
- 予測リスト利用フラグctrPredFlagL0およびctrPredFlagL1
- 時間的動きベクトルtempMv
変数tempMvは、以下のようにセットされる。
【数17】
変数currPicは現在のピクチャを指定する。
availableFlagAがTRUEに等しいときに、以下が適用される。
- 以下の条件の全てが真である場合、tempMvは、mvL0Aに等しくセットされる。
- predFlagL0Aが1に等しい。
- DiffPicOrderCnt(ColPic,RefPicList[0][refIdxL0A])が0に等しい。
- それ以外の場合、次の条件の全てが真である場合、tempMvは、mvL1Aに等しくセットされる。
- slice_typeがBに等しい。
- predFlagL1Aが1に等しい。
- DiffPicOrderCnt(ColPic,RefPicList[1][refIdxL1A])が0に等しい。
ColPic内の並置されたブロックの位置(xColCb,yColCb)は、以下のように導出される。
- 以下が適用される。
【数18】
- subpic_treated_as_pic_flag[SubPicIdx]が1に等しい場合、以下が適用される。
【数19】
- それ以外の場合(subpic_treated_as_pic_flag[SubPicIdx]が0に等しい場合)、以下が適用される。
【数20】
...
ルマサンプル双線形フィルタリング処理プロセス
このプロセスへの入力は、以下のようである。
- フルサンプルユニットにおけるルマ位置(xInt,yInt
- 分数サンプルユニットにおけるルマ位置(xFrac,yFrac
- 参照ピクチャの左上のサンプルに対する参照サンプルパディングのための境界ブロックの左上のサンプルを指定する、フルサンプルユニットにおけるルマ位置(xSbInt,ySbInt
- ルマ参照サンプルアレイrefPicLX
- ハーフサンプル補間フィルタ指数hpelIfIdx
- 現在のサブブロックの幅を指定する変数sbWidth
- 現在のサブブロックの高さを指定する変数sbHeight
- 現在のピクチャの左上のサンプルに対する現在のサブブロックの左上のサンプルを指定するルマ位置(xSb,ySb)
このプロセスの出力は、予測ルマサンプル値predSampleLXである。
変数shift1、shift2およびshift3は、以下のように導出される。
- 変数shift1は、Min(4,BitDepthY-8)に等しくセットされ、変数shift2は、6に等しくセットされ、変数shift3は、Max(2,14-BitDepthY)に等しくセットされる。
- 変数picWは、pic_width_in_luma_samplesに等しくセットされ、変数picHは、pic_height_in_luma_samplesに等しくセットされる。
xFracまたはyFracに等しい各1/16分数サンプル位置pに対するルマ補間フィルタ係数f[p]は、以下のように導出される。
- MotionModelIdc[xSb][ySb]が0よりも大きく、sbWidthとsbHeightが両方とも4に等しい場合、ルマ補間フィルタ係数f[p]は、表8-12において指定される。
- それ以外の場合、ルマ補間フィルタ係数f[p]は、hpelIfIdxに応じて表8-11において指定される。フルサンプルユニットにおけるルマ位置(xInt,yInt)は、i=0..7に対して、以下のように導出される。
- subpic_treated_as_pic_flag[SubPicIdx]が1に等しい場合、以下が適用される。
【数21】
- それ以外の場合(subpic_treated_as_pic_flag[SubPicIdx]が0に等しい場合)、以下が適用される。
【数22】
...
クロマサンプル補間プロセス
このプロセスへの入力は、以下のようである。
- フルサンプルユニットにおけるクロマ位置(xInt,yInt
- 1/32分数サンプルユニットにおけるクロマ位置(xFrac,yFrac
- 参照ピクチャの左上のサンプルに対する参照サンプルパディングのための境界ブロックの左上のサンプルを指定する、フルサンプルユニットにおけるクロマ位置(xSbIntC,ySbIntC)
- 現在のサブブロックの幅を指定する変数sbWidth
- 現在のサブブロックの高さを指定する変数sbHeight
- クロマ参照サンプルアレイrefPicLX
このプロセスの出力は、予測クロマサンプル値predSampleLXである。
変数shift1、shift2およびshift3は、以下のように定義される。
- 変数shift1は、Min(4,BitDepth-8)に等しくセットされ、変数shift2は、6に等しくセットされ、変数shift3は、Max(2,14-BitDepth)に等しくセットされる。
- 変数picWは、pic_width_in_luma_samples/SubWidthCに等しくセットされ、変数picHは、pic_height_in_luma_samples/SubHeightCに等しくセットされる。
xFracまたはyFracに等しい各1/32分数サンプル位置pに対するクロマ補間フィルタ係数f[p]は、表8-13において指定される。
変数xOffsetは、(sps_ref_wraparound_offset_minus1+1)*MinCbSizeY)/SubWidthCに等しくセットされる。
フルサンプルユニットにおけるクロマ位置(xInt,yInt)は、i=0..3に対して、以下のように導出される。
- subpic_treated_as_pic_flag[SubPicIdx]が1に等しい場合、以下が適用される。
【数23】
- それ以外の場合(subpic_treated_as_pic_flag[SubPicIdx]が0に等しい場合)、以下が適用される。
【数24】
【0065】
2.4 例示的な符号化器のみのGOPベースの時間的フィルタ
【0066】
いくつかの実施形態において、符号化器のみの時間的フィルタが実装され得る。フィルタリングは、前処理ステップとして符号化器側で行われる。符号化する選択されたピクチャの前後のソースピクチャが読み込まれ、選択されたピクチャに対するブロックベースの動き補償方法がそれらのソースピクチャに適用される。選択されたピクチャ内のサンプルは、動き補正後のサンプル値を使用して時間的にフィルタリング処理される。
【0067】
全体のフィルタ強度は、選択されたピクチャの時間的サブレイヤとQPに応じてセットされる。時間的サブレイヤ0および1でのピクチャのみがフィルタリング処理され、レイヤ0のピクチャはレイヤ1のピクチャよりも強力なフィルタリングによってフィルタリング処理される。サンプル当たりのフィルタ強度は、選択されたピクチャのサンプル値と、動き補正されたピクチャの並置されたサンプルとの間の差に応じて調整され、動き補正されたピクチャと選択されたピクチャとの間のわずかな差が、大きな差よりもより強力にフィルタリング処理されるようにする。
【0068】
GOPベースの時間的フィルタ
【0069】
時間的フィルタは、ピクチャを読み込んだ直後および符号化の前に導入される。以下に、より詳細にステップを記載する。
【0070】
動作1:符号化器によってピクチャを読み込む
【0071】
動作2:ピクチャがコーディング階層において十分に低い場合、符号化の前にフィルタリング処理される。
それ以外の場合、ピクチャはフィルタリング処理されずに符号化される。POC%8==0のRAピクチャは、POC%4==0のLDピクチャと同様にフィルタリング処理される。AI画像はフィルタリング処理されない。
【0072】
全体のフィルタ強度Soは、RAに対して以下の式に従ってセットされる。
【数25】
【0073】
ここで、nは、読み込まれる画像の数である。
【0074】
LDのケースに対して、so(n)=0.95が使用される。
【0075】
動作3:選択されたピクチャ(以下、オリジナルピクチャ呼ばれる)の前および/または後の2つのピクチャが読み込まれる。エッジのケースにおいて、例えば、最初のピクチャであるか、最後のピクチャに近い場合において、利用可能なピクチャのみが読み込まれる。
【0076】
動作4:オリジナルピクチャに対して前および後に読み込まれたピクチャの動きは、8×8ピクチャブロックごとに推定される。
【0077】
階層的動き推定スキームが使用され、レイヤL0、L1およびL2が図2に示されている。サブサンプリングされたピクチャ。例えば図1のL1は、全ての読み込まれたピクチャおよびオリジナルピクチャに対して、各2×2ブロックを平均化することによって生成される。L2は、同じサブサンプリング法を使用して、L1から導出される。
【0078】
図2は、階層的動き推定の異なる層の例を示す。L0は、元の解像度である。L1は、L0のサブサンプリングされたバージョンである。L2は、L1のサブサンプリングされたバージョンである。
【0079】
最初に、L2における16×16ブロックごとに動き推定を行う。二乗差が、選択された動きベクトルごとに計算され、最小差に対応する動きベクトルが選択される。次いで、選択された動きベクトルが、L1において動きを推定するときの初期値として使用される。次いで、L0における動きを推定するために同じことが行われる。最終ステップとして、L0上の補間フィルタを使用することによって、8×8ブロックごとにサブピクセル動きを推定する。
【0080】
VTM6タップ補間フィルタを使用することができる。
【表2】
【0081】
動作5:各ブロックに対して最良にマッチングする動きに従って、オリジナルピクチャの前および後のピクチャに動き補償が適用され、例えば、各ブロックおけるオリジナルピクチャのサンプル座標が参照とされた画像において最良にマッチングする座標を有するようにする。
【0082】
動作6:以下のステップで記載されるルマチャンネルとクロマチャンネルに対して、サンプルを1つずつ処理する。
【0083】
動作7:新しいサンプル値Inは、以下の式を使用して計算される。
【数26】
【0084】
ここで、Ioがオリジナルサンプルのサンプル値である場合、Ir(i)は、動き補償されたピクチャiの対応するサンプルの強度であり、wr(i,a)は、利用可能な動き補償されたピクチャの数がaであるときに、動き補償されたピクチャiの重みである。
【0085】
ルマチャンネルにおいて、重みwr(i,a)は、以下ように定義される。
【数27】
【0086】
ここで、
【数28】
【0087】
iおよびaの他の全てのケースに対して、
【数29】
【0088】
ルマチャンネルに対して、重みwr(i,a)は、以下ように定義される。
【数30】
【0089】
ここで、sc=0.55およびσc=30である。
【0090】
動作8:現在のサンプルにフィルタが適用される。得られたサンプル値は、別々に記憶される。
【0091】
動作9:フィルタリング処理されたピクチャが符号化される。
【0092】
2.5 例示的なピクチャーパーティション(タイル、ブリック、スライス)
【0093】
いくつかの実施態様において、ピクチャは、1つ以上のタイル行及び1つ以上のタイル列に分割される。タイルは、ピクチャの矩形領域をカバーするCTUのシーケンスである。
【0094】
タイルは、1つ以上のブリックに分割され、各々は、タイル内の複数のCTU行から構成される。
【0095】
複数のブリックにパーティショニングされないタイルも、ブリックと呼ばれる。しかし、タイルの真のサブセットであるブリックはタイルとは呼ばれない。
【0096】
スライスは、ピクチャの複数のタイル、またはタイルの複数のブリックを含む。
【0097】
サブピクチャは、ピクチャの矩形領域をまとめてカバーする1つ以上のスライスを含む。
【0098】
スライスの2つのモード、すなわち、ラスタ走査スライスモードと矩形スライスモードがサポートされている。ラスタ走査スライスモードにおいて、スライスは、ピクチャのタイルラスタ走査におけるタイルのシーケンスを含む。矩形スライスモードにおいて、スライスは、ピクチャの矩形領域をまとめて形成するピクチャの複数のブリックを含む。矩形スライス内のブリックは、スライスのブリックラスタ走査の順序である。
【0099】
図5は、ピクチャのラスタ走査スライスパーティショニングの例を示し、ピクチャは、12のタイルと3つのラスタ走査スライスに分割される。
【0100】
図6は、ピクチャの矩形スライスパーティショニングの例を示し、ピクチャは、24のタイル(6つのタイル行および4つのタイル列)と9つの矩形スライスに分割される。
【0101】
図7は、タイル、ブリック、矩形スライスにパーティショニングされたピクチャの例を示し、ピクチャは、4つのタイル(2つのタイル行および2つのタイル列)、11のブリック(左上のタイルは1つのブリックを含み、右上のタイルは5つのブリックを含み、左下のタイルは2つのブリックを含み、右下のタイルは3つのブリックを含む)、ならびに4つの矩形スライスに分割されている。
ピクチャパラメータセットRBSP構文
【表3】
1に等しいsingle_tile_in_pic_flagは、各ピクチャにおいてPPSを参照するタイルが1つだけあることを指定する。0に等しいsingle_tile_in_pic_flagは、各ピクチャにおいてPPSを参照するタイルが複数あることを指定する。
注-タイル内でさらにブリックスプリットがない場合、タイル全体がブリックと呼ばれる。ピクチャがさらなるブリックスプリットがない単一タイルのみを含んでいる場合、それは、単一ブリックと呼ばれる。
ビットストリーム適合性の必要条件は、single_tile_in_pic_flagの値が、CVS内のコーディングされたピクチャによって参照される全てのPPSに対して同じであるものとすることである。
1に等しいuniform_tile_spacing_flagは、タイル列境界、同様にタイル行境界がピクチャ全体に均一に分布し、構文要素tile_cols_width_minus1およびtile_rows_height_minus1を使用してシグナリングされることを指定する。0に等しいuniform_tile_spacing_flagは、タイル列境界、同様にタイル行境界がピクチャ全体に均一に分布しても、しなくてもよく、構文要素num_tile_columns_minus1およびnum_tile_rows_minus1および構文要素対のリストtile_column_width_minus1[i]およびtile_row_height_minus1[i]を使用してシグナリングされることを指定する。存在しないときは、uniform_tile_spacing_flagの値は、1に等しいと推論される。
tile_cols_width_minus1+1は、uniform_tile_spacing_flagが1に等しいときに、ピクチャの最も右のタイル列を除くタイル列の幅をCTB単位で指定する。tile_cols_width_minus1の値は、0~PicWidthInCtbsY-1の範囲(両端含む)にあるものとする。存在しないときは、tile_cols_width_minus1の値は、PicWidthInCtbsY-1に等しいと推論される。
tile_rows_height_minus1+1は、uniform_tile_spacing_flagが1に等しいときに、ピクチャの底部のタイル行を除くタイル行の高さをCTB単位で指定する。tile_rows_height_minus1の値は、0~PicHeightInCtbsY-1の範囲(両端含む)にあるものとする。存在しないときは、tile_rows_height_minus1の値は、PicHeightInCtbsY-1に等しいと推論される。
num_tile_columns_minus1+1は、uniform_tile_spacing_flagが0に等しいときに、ピクチャをパーティショニングするタイル列の数を指定する。num_tile_columns_minus1の値は、0~PicWidthInCtbsY-1の範囲(両端含む)にあるものとする。single_tile_in_pic_flagが1に等しい場合、num_tile_columns_minus1の値は0に等しいと推論される。それ以外の場合、uniform_tile_spacing_flagが1に等しいときに、num_tile_columns_minus1の値は、6.5.1項において指定されるように推論される。
num_tile_rows_minus1+1は、uniform_tile_spacing_flagが0に等しいときに、ピクチャをパーティショニングするタイル行の数を指定する。num_tile_rows_minus1の値は、0~PicHeightInCtbsY-1の範囲(両端含む)にあるものとする。single_tile_in_pic_flagが1に等しい場合、num_tile_rows_minus1の値は0に等しいと推論される。それ以外の場合、uniform_tile_spacing_flagが1に等しいときに、num_tile_rows_minus1の値は、6.5.1項において指定されるように推論される。
変数NumTilesInPicは、(num_tile_columns_minus1+1)*(num_tile_rows_minus1+1)に等しくセットされる。single_tile_in_pic_flagが0に等しいときに、NumTilesInPicは、1よりも大きいものとする。
tile_column_width_minus1[i]+1は、i番目のタイル列の幅をCTB単位で指定する。
tile_row_height_minus1[i]+1は、i番目のタイル行の高さをCTB単位で指定する。
1に等しいbrick_splitting_present_flagは、PPSを参照するピクチャの1つ以上のタイルを2つ以上のブリックに分割し得ることを指定する。0に等しいbrick_splitting_present_flagは、PPSを参照するピクチャのタイルを2つ以上のブリックに分割しないことを指定する。
num_tiles_in_pic_minus1+1は、各ピクチャにおいて、PPSを参照するタイルの数を指定する。num_tiles_in_pic_minus1の値はNumTilesInPic-1に等しいものとする。存在しないときは、num_tiles_in_pic_minus1の値は、NumTilesInPic-1に等しいと推論される。
1に等しいbrick_split_flag[i]は、i番目のタイルが2つ以上のブリックに分割されることを指定する。0に等しいbrick_split_flag[i]は、i番目のタイルが2つ以上のブリックに分割されないことを指定する。存在しないときは、brick_split_flag[i]の値は、0に等しいと推論される。いくつかの実施形態において、SPSに対するPPS構文解析依存性は、構文条件「if(RowHeight[i]>1)」(例えば、uniform_brick_spacing_flag[i]に対して同様に)を追加することによって導入される。
1に等しいuniform_brick_spacing_flag[i]は、水平方向のブリック境界がi番目のタイルにわたって均一に分布し、構文要素brick_height_minus1[i]を使用してシグナリングされることを指定する。0に等しいuniform_brick_spacing_flag[i]は、水平方向のブリック境界がi番目のタイルにわたって均一に分布しても、しなくてもよく、構文要素num_brick_rows_minus2[i]および構文要素のリストbrick_row_height_minus1[i][j]を使用してシグナリングされることを指定する。存在しないときは、uniform_brick_spacing_flag[i]の値は、1に等しいと推論される。
brick_height_minus1[i]+1は、uniform_brick_spacing_flag[i]が1に等しいときに、i番目のタイルの底部のブリックを除くブリック行の高さをCTB単位で指定する。存在するときは、brick_height_minus1の値は、0~RowHeight[i]-2の範囲(両端含む)にあるものとする。存在しないときは、brick_height_minus1[i]の値は、RowHeight[i]-1に等しいと推論される。
num_brick_rows_minus2[i]は、uniform_brick_spacing_flag[i]が0に等しいときに、i番目のタイルをパーティショニングするブリックの数を指定する。存在するときは、num_brick_rows_minus2[i]の値は、0~RowHeight[i]-2の範囲(両端含む)にあるものとする。brick_split_flag[i]が0に等しい場合、num_brick_rows_minus2[i]の値は-1に等しいと推論される。それ以外の場合、uniform_brick_spacing_flag[i]が1に等しいときに、num_brick_rows_minus2[i]の値は、6.5.1項において指定されるように推論される。
brick_row_height_minus1[i][j]+1は、uniform_tile_spacing_flagが0に等しいときに、i番目のタイル内のj番目のブリックの高さをCTB単位で指定する。
以下の変数が導出され、uniform_tile_spacing_flagが1に等しいときに、num_tile_columns_minus1およびnum_tile_rows_minus1の値が推論され、0~NumTilesInPic-1の範囲(両端を含む)の各iに対して、uniform_brick_spacing_flag[i]が1に等しいときに、num_brick_rows_minus2[i]の値が、第6.5.1項に指定されているなCTBラスタおよびブリック走査変換プロセスを呼び出すことによって推論される。
- j番目のタイル行の高さをCTB単位で指定する、0~num_tile_rows_minus1の範囲のリストRowHeight[j]
- ピクチャのCTBラスタ走査におけるCTBアドレスからブリック走査におけるCTBアドレスへの変換を指定する、0~PicSizeInCtbsY-1の範囲(両端含む)のctbAddrRsに対するリストCtbAddrRsToBs[ctbAddrRs]
- ブリック走査におけるCTBアドレスからピクチャのCTBラスタ走査におけるCTBアドレスへの変換を指定する、0~PicSizeInCtbsY-1の範囲(両端含む)のctbAddrBsに対するリストCtbAddrBsToRs[ctbAddrBs]
- ブリック走査におけるCTBブリックIDへの変換を指定する、0~PicSizeInCtbsY-1の範囲(両端含む)のctbAddrBsに対するリストBrickId[ctbAddrBs]
- ブリックインデックスからブリック内のCTUの数への変換を指定する、0~NumBricksInPic-1の範囲(両端を含む)のblickIdxに対するリストNumCtusInBrick[brickIdx]
- ブリックIDからブリック内の最初のCTBのブリック走査におけるCTBアドレスへの変換を指定する、0~NumBricksInPic-1の範囲(両端を含む)のbrickIdxに対するリストFirstCtbAddrBs[brickIdx]
1に等しいsingle_brick_per_slice_flagは、このPPSを参照する各スライスが1つのブリックを含むことを指定する。0に等しいsingle_brick_per_slice_flagは、このPPSを参照する各スライスが複数のブリックを含むことを指定する。存在しないときは、single_brick_per_slice_flagの値は、1に等しいと推論される。
0に等しいrect_slice_flagは、各スライス内のブリックがラスタ走査の順序であり、スライス情報がPPSにおいてシグナリングされないことを指定する。1に等しいrect_slice_flagは、各スライス内のブリックがピクチャの矩形領域をカバーし、スライス情報がPPSにおいてシグナリングされることを指定する。brick_splitting_present_flagが1に等しいときに、rect_slice_flagの値は、1に等しいものとする。
存在しないときは、rect_slice_flagは、1に等しいと推論される。
num_slices_in_pic_minus1+1は、各ピクチャにおいて、PPSを参照するスライスの数を指定する。num_slices_in_pic_minus1の値は、0~NumBricksInPic-1の範囲(両端を含む)にあるものとする。存在せず、single_brick_per_slice_flagが1に等しいときに、num_slices_in_pic_minus1の値は、NumBricksInPic-1に等しいと推論される。
bottom_right_brick_idx_length_minus1+1は、情報要素bottom_right_brick_idx_delta[i]を表すために使用されるビット数を指定する。bottom_right_brick_idx_length_minus1の値は、0~Ceil(Log2(NumBricksInPic))-1の範囲(両端を含む)にあるものとする。iが0より大きいときに、bottom_right_brick_idx_delta[i]は、i番目のスライスの右下のコーナーに位置するブリックのブリックインデックスと(i-1)番目のスライスの右下のコーナーのブリックインデックスとの差を指定する。bottom_right_brick_idx_delta[0]は、0番目のスライスの右下のコーナーのブリックインデックスを指定する。single_brick_per_slice_flagが1に等しいときに、bottom_right_brick_idx_delta[i]の値は、1に等しいと推論される。BottomRightBrickIdx[num_slices_in_pic_minus1]の値は、NumBricksInPic-1に等しいと推論される。bottom_right_brick_idx_delta[i]構文要素の長さは、bottom_right_brick_idx_length_minus1+1ビットである。
1に等しいbrick_idx_delta_sign_flag[i]は、bottom_right_brick_idx_delta[i]の正符号を示す。0に等しいsign_bottom_right_brick_idx_delta[i]は、bottom_right_brick_idx_delta[i]の負符号を示す。ビットストリーム適合性の必要条件は、スライスが、複数のフルタイル、または1つのタイルのフルブリックの連続したシーケンスのみを含むものとすることである。
i番目のスライスの左上のコーナーに位置するブリックのブリックインデックス、i番目のスライスの右下のコーナーに位置するブリックのブリックインデックス、i番目のスライス内のブリックの数、およびブリックのスライスへのマッピングを指定する変数TopLeftBrickIdx[i]、BottomRightBrickIdx[i]、NumBricksInSlice[i]、およびBricksToSliceMap[j]は、以下のように導出される。
【数31】
一般的なスライスヘッダ意味
存在するときに、スライスヘッダ構文要素slice_pic_parameter_set_id、non_reference_picture_flag、colour_plane_id、slice_pic_order_cnt_lsb、recovery_poc_cnt、no_output_of_prior_pics_flag、pic_output_flag、およびslice_temporal_mvp_enabled_flagの各々の値は、コーディングされたピクチャの全てのスライスヘッダにおいて同じであるものとする。
cu_qp_delta_absを含むコーディングユニットに対するルマ量子化パラメータとその予測との差を指定する変数CuQpDeltaValは、0にセットされる。cu_chroma_qp_offset_flagを含むコーディングユニットに対するQp’Cb、Qp’Cr、およびQp’CbCr量子化パラメータのそれぞれの値を決定するときに使用される値を指定する変数CuQpOffsetCb、CuQpOffsetCr、およびCuQpOffsetCbCrは、全て0にセットされる。slice_pic_parameter_set_idは、使用中のPPSに対するpps_pic_parameter_set_idの値を指定する。slice_pic_parameter_set_idの値は、0~63の範囲(両端を含む)にあるものとする。
ビットストリーム適合性の必要条件は、現在のピクチャのTemporalIdの値が、slice_pic_parameter_set_idに等しいpps_pic_parameter_set_idを有するPPSのTemporalIdの値以上であるものとすることである。
slice_addressは、スライスのスライスアドレスを指定する。存在しないときは、slice_addressの値は、0に等しいと推論される。
rect_slice_flagが0に等しい場合、以下が適用される。
- スライスアドレスは、式(7-59)によって指定されるようにブリックIDである。
- slice_addressの長さは、Ceil(Log2(NumBricksInPic))ビットである。
- slice_addressの値は、0~NumBricksInPic-1の範囲(両端を含む)にあるものとする。
それ以外の場合(rect_slice_flagが1に等しい場合)、以下が適用される。
- スライスアドレスは、スライスのスライスIDである。
- slice_addressの長さは、signalled_slice_id_length_minus1+1ビットである。
- signalled_slice_id_flagが0に等しい場合、slice_addressの値は、0~num_slices_in_pic_minus1の範囲(両端を含む)にあるものとする。それ以外の場合、slice_addressの値は、0~2(signalled_slice_id_length_minus1+1)-1の範囲(両端を含む)にあるものとする。
以下の制約が適用されるのはビットストリーム適合性の要件である。
- slice_addressの値は、同じコーディングされたピクチャの任意の他のコーディングされたスライスNALユニットのslice_addressの値に等しくないものとする。
- rect_slice_flagが0に等しいときに、ピクチャのスライスはそれらのslice_address値の昇順にあるものとする。
- ピクチャのスライスの形状は、各ブリックが、復号されるときに、その全体の左境界および全体の上境界を、ピクチャ境界からなるか、以前に復号されたブリックの境界からなるようにするものとする。
num_bricks_in_slice_minus1は、存在するときは、スライス内のブリック数から1引いたもの指定する。num_bricks_in_slice_minus1の値は、0~NumBricksInPic-1の範囲(両端含む)にあるものとする。rect_slice_flagが0に等しく、single_brick_per_slice_flagが1に等しいときは、num_bricks_in_slice_minus1の値は0に等しいと推論される。single_brick_per_slice_flagが1に等しいときは、num_bricks_in_slice_minus1の値は0に等しいと推論される。
現在のスライスにおけるブリックの数を指定する変数NumBricksInCurrSliceと、現在のスライスにおけるi番目のブリックのブリックインデックスを指定するSliceBrickIdx[i]は、以下のように導出される。
【数32】
変数SubPicIdx、SubPicLeftBoundaryPos、SubPicTopBoundaryPos、SubPicRightBoundaryPos、およびSubPicBotBoundaryPosは、以下のように導出される。
【数33】
【0102】
3.開示された実施形態によって解決される技術的課題の例
【0103】
(1) サブピクチャの制約を違反する可能性のある設計がいくつかある。
【0104】
A. アフィン構成された候補におけるTMVPは、現在のサブピクチャの範囲から、並置されたピクチャにおけるMVをフェッチすることがある。
【0105】
B. BDOF(Bi-Directional Optical Flow)とPROF(Prediction Refinement Optical Flow)における勾配を導出するときに、整数参照サンプルの2つの拡張行と2つの拡張列がフェッチされる必要がある。
これらの参照サンプルは、現在のサブピクチャの範囲外となることがある。
【0106】
C. LMCS(luma mapping chroma scaling)におけるクロマ残差スケーリング因子を導出するときに、アクセスされた再構成ルマサンプルは、現在のサブピクチャの範囲外となることがある。
【0107】
D. 近隣のブロックは、ルマイントラ予測モード、イントラ予測のための参照サンプル、CCLMのための参照サンプル、マージ/AMVP/CIIP/IBC/LMCSのための空間的近隣候補のための近隣のブロックの可用性、量子化パラメータ、CABAC初期化プロセス、左上の構文要素を使用したctxInc導出、および構文要素mtt_split_cu_vertical_flagのためのctxIncforを導出するときに、現在のサブピクチャの範囲外となることがある。サブピクチャの表示は、不完全なCTUを有するサブピクチャにつながることがある。CTUパーティションおよびCUスプリットプロセスは、不完全なCTUを考慮する必要があることがある。
【0108】
(2) サブピクチャに関するシグナリングされた構文要素は任意の大きさであることがあり、オーバーフロー問題を引き起こすことがある。
【0109】
(3) サブピクチャの表現は、非矩形サブピクチャにつながることがある。
【0110】
(4) 現在、サブピクチャおよびサブピクチャグリッドは4つのサンプル単位で定義されている。構文要素の長さは、ピクチャの高さを4で割ったものに依存する。しかし、現在のpic_width_in_luma_samplesとpic_height_in_luma_samplesはMax(8,MinCbSizeY)の整数倍数とするものであるため、サブピクチャグリッドは8サンプルの単位で定義する必要があってもよい。
【0111】
(5) SPS構文pic_width_max_in_luma_samplesおよびpic_height_max_in_luma_samplesは、8以上に制限される必要があってもよい。
【0112】
(6) 参照ピクチャの再サンプリング/スケーラビリティとサブピクチャとの間の相互作用は、現在の設計では考慮されていない。
【0113】
(7) 時間的フィルタリングにおいて、異なるサブピクチャにわたるサンプルが必要とされることがある。
【0114】
(8) スライスをシグナリングするときに、情報は場合によってはシグナリングせずに推論され得る。
【0115】
(9) 定義されたスライスの全てが、ピクチャ全体またはサブピクチャをカバーすることができない可能性がある。
【0116】
4.例示的な技法および実施形態
【0117】
以下の詳細なリストは、一般的な概念を説明するための例として考慮されるべきである。これらの項目は、狭義に解釈されるべきではない。さらに、これらの項目は、任意の方式で組み合わせることができる。以下、時間的フィルタは、他のピクチャにおけるサンプルを必要とするフィルタを表すために使用される。Max(x,y)は、xおよびyのうちの大きい方のものを返す。Max(x,y)は、xおよびyのうちの小さい方のものを返す。
1.アフィン動き候補を生成するためにピクチャにおいて時間的MV予測子がフェッチされる位置(位置RBという名前)は、必要なサブピクチャ内になければならず、必要なサブピクチャの左上のコーナー座標が(xTL,yTL)であり、必要なサブピクチャの右下の座標が(xBR,yBR)であると想定している。
a.一例では、必要なサブピクチャは、現在のブロックをカバーするサブピクチャである。
b.一例では、座標(x,y)を有する位置RBが必要なサブピクチャから外れている場合、時間的MV予測子は、利用不可として処理される。
i.一例では、位置RBは、x>xBRである場合、必要なサブピクチャから外れている。
ii.一例では、位置RBは、y>yBRである場合、必要なサブピクチャから外れている。
iii.一例では、位置RBは、x<xTLである場合、必要なサブピクチャから外れている。
iv.一例では、位置RBは、y<yTLである場合、必要なサブピクチャから外れている。
c.一例では、位置RBは、必要なサブピクチャから外れている場合、RBの置換が利用される。
i.代替的には、さらに、置換位置は、必要なサブピクチャ内にあるものとする。
d.一例では、位置RBは、必要なサブピクチャ内にクリップされる。
i.一例では、xは、x=Min(x,xBR)としてクリップされる。
ii.一例では、xは、y=Min(y,yBR)としてクリップされる。
iii.一例では、xは、x=Max(x,xTL)としてクリップされる。
iv.一例では、xは、y=Max(y,yTL)としてクリップされる。
e.一例では、位置RBは、並置されたピクチャ内の現在のブロックの対応するブロック内の右下の位置であってもよい。
f.提案した方法は、現在のピクチャとは異なるピクチャからの動き情報にアクセスすることを必要とする他のコーディングツールにおいて利用されてもよい。
g.一例では、上記の方法が適用されるかどうか(例えば、位置RBは、必要なサブピクチャ(例えば、1.aおよび/または1.bで主張されているようにするために)内になければならないかどうか)は、VPS/DPS/SPS/PPS/APS/スライスヘッダ/タイルグループヘッダにおいてシグナリングされる1つ以上の構文要素に依存してもよい。例えば、構文要素は、subpic_treated_as_pic_flag[SubPicIdx]であってもよく、ここで、SubPicIdxは、現在のブロックをカバーするサブピクチャのサブピクチャインデックスである。
2.補間プロセスにおいて使用されない参照で整数サンプルがフェッチされる位置(位置Sという名前)は、必要なサブピクチャ内になければならず、必要なサブピクチャの左上のコーナー座標が(xTL,yTL)であり、必要なサブピクチャの右下の座標が(xBR,yBR)であると想定している。
a.一例では、必要なサブピクチャは、現在のブロックをカバーするサブピクチャである。
b.一例では、座標(x,y)を有する位置Sが必要なサブピクチャから外れている場合、参照サンプルは、利用不可として処理される。
i.一例では、位置Sは、x>xBRである場合、必要なサブピクチャから外れている。
ii.一例では、位置Sは、y>yBRである場合、必要なサブピクチャから外れている。
iii.一例では、位置Sは、x<xTLである場合、必要なサブピクチャから外れている。
iv.一例では、位置Sは、y<yTLである場合、必要なサブピクチャから外れている。
c.一例では、位置Sは、必要なサブピクチャ内にクリップされる。
i.一例では、xは、x=Min(x,xBR)としてクリップされる。
ii.一例では、xは、y=Min(y,yBR)としてクリップされる。
iii.一例では、xは、x=Max(x,xTL)としてクリップされる。
iv.一例では、xは、y=Max(y,yTL)としてクリップされる。
d.一例では、位置Sは、要求されたサブピクチャ(例えば、2.aおよび/または2.bで主張されているようにするために)内になければならないかどうかは、VPS/DPS/SPS/PPS/APS/スライスヘッダ/タイルグループヘッダにおいてシグナリングされる1つ以上の構文要素に依存してもよい。例えば、構文要素は、subpic_treated_as_pic_flag[SubPicIdx]であってもよく、ここで、SubPicIdxは、現在のブロックをカバーするサブピクチャのサブピクチャインデックスである。
e.一例では、フェッチされた整数サンプルは、BDOFおよび/またはPORFにおける勾配を生成するために使用される。
3.再構成されたルマサンプル値がフェッチされる位置(位置Rという名前)は、必要なサブピクチャ内にあってもよく、必要なサブピクチャの左上のコーナー座標が(xTL,yTL)であり、必要なサブピクチャの右下の座標が(xBR,yBR)であると想定している。
a.一例では、必要なサブピクチャは、現在のブロックをカバーするサブピクチャである。
b.一例では、座標(x,y)を有する位置Rが必要なサブピクチャから外れている場合、参照サンプルは、利用不可として処理される。
i.一例では、位置Rは、x>xBRである場合、必要なサブピクチャから外れている。
ii.一例では、位置Rは、y>yBRである場合、必要なサブピクチャから外れている。
iii.一例では、位置Rは、x<xTLである場合、必要なサブピクチャから外れている。
iv.一例では、位置Rは、y<yTLである場合、必要なサブピクチャから外れている。
c.一例では、位置Rは、必要なサブピクチャ内にクリップされる。
i.一例では、xは、x=Min(x,xBR)としてクリップされる。
ii.一例では、xは、y=Min(y,yBR)としてクリップされる。
iii.一例では、xは、x=Max(x,xTL)としてクリップされる。
iv.一例では、xは、y=Max(y,yTL)としてクリップされる。
d.一例では、位置Rは、要求されたサブピクチャ(例えば、4.aおよび/または4.bで主張されているようにするために)内になければならないかどうかは、VPS/DPS/SPS/PPS/APS/スライスヘッダ/タイルグループヘッダにおいてシグナリングされる1つ以上の構文要素に依存してもよい。例えば、構文要素は、subpic_treated_as_pic_flag[SubPicIdx]であってもよく、ここで、SubPicIdxは、現在のブロックをカバーするサブピクチャのサブピクチャインデックスである。
e.一例では、フェッチされたルマサンプルは、LMCSにおけるクロマコンポーネントのためのスケーリング係数を導出するために使用される。
4.BT/TT/QTスプリット、BT/TT/QT深度導出、および/またはCUスプリットフラグのシグナリングのためのピクチャ境界チェックの位置(位置Nという名前)は、必要なサブピクチャ内になければならず、必要なサブピクチャの左上のコーナー座標が(xTL,yTL)であり、必要なサブピクチャの右下の座標が(xBR,yBR)であると想定している。
a.一例では、必要なサブピクチャは、現在のブロックをカバーするサブピクチャである。
b.一例では、座標(x,y)を有する位置Nが必要なサブピクチャから外れている場合、参照サンプルは、利用不可として処理される。
i.一例では、位置Nは、x>xBRである場合、必要なサブピクチャから外れている。
ii.一例では、位置Nは、y>yBRである場合、必要なサブピクチャから外れている。
iii.一例では、位置Nは、x<xTLである場合、必要なサブピクチャから外れている。
iv.一例では、位置Nは、y<yTLである場合、必要なサブピクチャから外れている。
c.一例では、位置Nは、必要なサブピクチャ内にクリップされる。
i.一例では、xは、x=Min(x,xBR)としてクリップされる。
ii.一例では、xは、y=Min(y,yBR)としてクリップされる。
iii.一例では、xは、x=Max(x,xTL)としてクリップされる。
d.一例では、xは、y=Max(y,yTL)としてクリップされる。一例では、位置Nは、要求されたサブピクチャ(例えば、5.aおよび/または5.bで主張されているようにするために)内になければならないかどうかは、VPS/DPS/SPS/PPS/APS/スライスヘッダ/タイルグループヘッダにおいてシグナリングされる1つ以上の構文要素に依存してもよい。例えば、構文要素は、subpic_treated_as_pic_flag[SubPicIdx]であってもよく、ここで、SubPicIdxは、現在のブロックをカバーするサブピクチャのサブピクチャインデックスである。
5.HMVP(History-based Motion Vector Prediction)テーブルは、1つのピクチャ内の新しいサブピクチャを復号する前にリセットされてもよい。
a.一例では、IBCコーディングのために使用されるHMVPテーブルがリセットされてもよい。
b.一例では、インターコーディングのために使用されるHMVPテーブルは、リセットされてもよい。
c.一例では、イントラコーディングのために使用されるHMVPテーブルは、リセットされてもよい。
6.サブピクチャ構文要素は、N(N=8,32など)個のサンプル単位で定義されてもよい。
a.一例では、N個のサンプル単位のサブピクチャ識別子グリッドの各要素の幅
b.一例では、N個のサンプル単位のサブピクチャ識別子グリッドの各要素の高さ
c.一例では、Nは、CTUの幅および/または高さにセットされる。
7.ピクチャ幅とピクチャ高さの構文要素は、K(K>=8)以上に制限されてもよい。
a.一例では、ピクチャ幅を8以上に制限する必要があってもよい。
b.一例では、ピクチャ高さを8以上に制限する必要があってもよい。
8.適合ビットストリームは、ARC(Adaptive resolution conversion)/DRC(Dynamic resolution conversion)/RPR(Reference picture resampling)が1つのビデオユニット(例えば、シーケンス)に対して有効にされることが禁止されることを満たすものである。
a.一例では、サブピクチャコーディングを有効にするシグナリングは、ARC/DRC/RPRを禁止する条件下であってもよい。
i.一例では、subpics_present_flagが1に等しいように、サブピクチャが有効であるときに、このSPSがアクティブな全てのピクチャに対するpic_width_in_luma_samplesは、max_width_in_luma_samplesに等しい。
b.代替的には、サブピクチャコーディングおよびARC/DRC/RPRは、両方とも、1つのビデオユニット(例えば、シーケンス)に対して有効にしてもよい。
i.一例では、適合ビットストリームは、ARC/DRC/RPRによりダウンサンプリングされたサブピクチャが、依然として幅においてK個のCTUと高さにおいてM個のCTUの形式(KとMが両方とも整数である)にあることを満たすものとする。
ii.一例では、適合ビットストリームは、ピクチャ境界(例えば、右境界および/または下境界)に位置しないサブピクチャに対して、ARC/DRC/RPRによりダウンサンプリングされたサブピクチャが、依然として幅においてK個のCTUと高さにおいてM個のCTUの形式(KとMが両方とも整数である)にあることを満たすものとする。
iii.一例では、CTUサイズは、ピクチャ解像度に基づいて適応的に変更されてもよい。
1)一例では、最大CTUサイズは、SPSにおいてシグナリングされてもよい。解像度の低い各ピクチャに対して、CTUサイズは、それに応じて、低減された解像度に基づいて変更され得る。
2)一例では、CTUサイズは、SPSおよびPPS、および/またはサブピクチャレベルでシグナリングされてもよい。
9.構文要素subpic_grid_col_width_minus1とsubpic_grid_row_height_minus1は制約されてもよい。
a.一例では、subpic_grid_col_width_minus1がT1以下(またはT1よりも小さく)なければならない。
b.一例では、subpic_grid_row_height_minus1がT2以下(またはT2よりも小さく)なければならない。
c.一例では、適合ビットストリームにおいて、subpic_grid_col_width_minus1および/またはsubpic_grid_row_height_minus1は、項目3.aまたは3.bなどの制約に従わなければならない。
d.一例では、3.aにおけるT1および/または3.bにおけるT2は、ビデオコーディング規格のプロファイル/レベル/階層に依存してもよい。
e.一例では、3.aにおけるT1は、ピクチャ幅に依存してもよい。
i.たとえば、T1は、pic_width_max_in_luma_samples/4またはpic_width_max_in_luma_samples/4+Offに等しい。Offは、1、2、-1、-2などであってもよい。
f.一例では、3.bにおけるT2は、ピクチャ幅に依存してもよい。
i.たとえば、T1は、pic_height_max_in_luma_samples/4またはpic_height_max_in_luma_samples/4-1+Offに等しい。Offは、1、2、-1、-2などであってもよい。
10.2つのサブピクチャ間の境界は、2つのCTU間の境界でなければならないことが制約される。
a.言い換えれば、CTUは、複数のサブピクチャでカバーすることはできない。
b.一例では、subpic_grid_col_width_minus1の単位は、VVCのように4ではなく、CTU幅(32、64、128など)であってもよい。サブピクチャのグリッド幅は、(subpic_grid_col_width_minus1+1)*CTU幅とするべきである。
c.一例では、subpic_grid_col_height_minus1の単位は、VVCにおけるように4ではなく、CTU高さ(32、64、128など)であってもよい。サブピクチャのグリッド高さは、(subpic_grid_col_height_minus1+1)*CTU高さとするべきである。
d.一例では、適合ビットストリームにおいて、サブピクチャアプローチが適用される場合、制約が満たされなければならない。
11.サブピクチャの形状は、矩形でなければならないことが制約される。
a.一例では、適合ビットストリームにおいて、サブピクチャアプローチが適用される場合、制約が満たされなければならない。
b.サブピクチャは矩形スライスのみを含んでもよい。例えば、適合ビットストリームにおいて、サブピクチャアプローチが適用される場合、制約が満たされなければならない。
12.2つのサブピクチャはオーバラップすることができないことが制約される。
a.一例では、適合ビットストリームにおいて、サブピクチャアプローチが適用される場合、制約が満たされなければならない。
b.代替的には、2つのサブピクチャが互いにオーバラップしてもよい。
13.ピクチャ内の任意の位置が、1つのサブピクチャのみによってカバーされなければならないことが制約される。
a.一例では、適合ビットストリームにおいて、サブピクチャアプローチが適用される場合、制約が満たされなければならない。
b.代替的には、1つのサンプルがいずれのサブピクチャにも属さなくてもよい。
c.代替的には、1つのアンプルが複数のサブピクチャに属してもよい。
14.同じシーケンスにおいて提示される全ての解像度にマッピングされる、SPSにおいて定義されるサブピクチャは、上述の制約された位置および/またはサイズに従うべきであることが制約されてもよい。
a.一例では、同じシーケンスにおいて提示される解像度にマッピングされたSPSにおいて定義されるサブピクチャの幅と高さは、N個の(8、16、32のような)ルマサンプルの整数倍とするべきである。
b.一例では、サブピクチャは、特定のレイヤに対して定義されてもよく、他のレイヤにマッピングされてもよい。
i.例えば、サブピクチャは、シーケンス内で最も高い解像度を有するレイヤに対して定義されてもよい。
ii.例えば、サブピクチャは、シーケンス内で最も低い解像度を有するレイヤに対して定義されてもよい。
iii.サブピクチャがどのレイヤに対して定義されているかは、SPS/VPS/PPS/PPS/スライスヘッダにおいてシグナリングされてもよい。
c.一例では、サブピクチャおよび異なる解像度の両方が適用されるときに、全ての解像度(例えば、幅または高さ)は、所与の解像度の整数倍であってもよい。
d.一例では、SPSにおいて定義されるサブピクチャの幅および/または高さは、CTUサイズの整数倍(例えば、M)であってもよい。
e.代替的には、シーケンス内のサブピクチャおよび異なる解像度は、同時には許可されなくてもよい。
15.サブピクチャは特定のレイヤにのみ適用されてもよい。
a.一例では、SPSにおいて定義されるサブピクチャは、シーケンス内で最も解像度の高いレイヤにのみ適用されてもよい。
b.一例では、SPSにおいて定義されたサブピクチャは、シーケンス内で最も低い時間的IDを持つレイヤにのみ適用されてもよい。
c.サブピクチャをどのレイヤに適用し得るかは、SPS/VPS/PPSにおける1つ以上の構文要素によって示されてもよい。
d.サブピクチャをどのレイヤに適用することができないかは、SPS/VPS/PPSにおける1つ以上の構文要素によって示されてもよい。
16.一例では、サブピクチャの位置および/または寸法は、subpic_grid_idxを使用せずにシグナリングされてもよい。
a.一例では、サブピクチャの左上の位置がシグナリングされてもよい。
b.一例では、サブピクチャの右下の位置がシグナリングされてもよい。
c.一例では、サブピクチャの幅が、シグナリングされてもよい。
d.一例では、サブピクチャの高さが、シグナリングされてもよい。
17.時間的フィルタに対して、試料の時間的フィルタリングを実行するときに、現在のサンプルが属するのと同じサブピクチャ内のサンプルのみが使用されてもよい。必要なサンプルは、現在のサンプルが属しているものと同じピクチャ、または他のピクチャ内にあってもよい。
18.一例では、パーティショニング方法(QT、水平BT、垂直BT、水平TT、垂直TT、スプリットなしなど)を適用するかどうか、および/またはどのように適用するかは、現在のブロック(またはパーティション)がサブピクチャの1つ以上の境界を越えるかどうかに依存してもよい。
a.一例では、VVCにおけるパーティショニングのためのピクチャ境界処理方法は、ピクチャ境界がサブピクチャ境界に置き換えられるときにも適用され得る。
b.一例では、パーティショニング方法(QT、水平BT、垂直BT、水平TT、垂直TT、スプリットなしなど)を表す構文要素(例えば、フラグ)を解析するかどうかは、現在のブロック(又はパーティション)がサブピクチャの1つ以上の境界を越えるかどうかに依存してもよい。
19.各サブピクチャの独立したコーディングで1つのピクチャを複数のサブピクチャに分割する代わりに、ピクチャを少なくとも2つのサブ領域のセットに分割することが提案されており、第1のセットは複数のサブピクチャを含み、第2のセットは残りの全てのサンプルを含む。
a.一例では、第2のセットにおけるサンプルは、いかなるサブピクチャにもない。
b.代替的には、さらに、第2のセットは、第1のセットの情報に基づいて符号化/復号されてもよい。
c.一例では、デフォルト値は、サンプル/MxKサブ領域が第2のセットに属するかどうかをマークするために利用されてもよい。
i.一例では、デフォルト値は、(max_subpics_minus1+K)に等しくセットされてもよく、ここで、Kは1より大きい整数である。
ii.デフォルト値は、subpic_grid_idx[i][j]に割り当てられ、グリッドが2番目のセットに属することを示す。
20.構文要素subpic_grid_idx[i][j]をmax_subpics_minus1よりも大きくすることができないことが提案される。
a.例えば、適合ビットストリームにおいて、subpic_grid_idx[i][j]をmax_subpics_minus1よりも大きくすることができないことが制約される。
b.例えば、subpic_grid_idx[i][j]をコーディングするコードワードをmax_subpics_minus1よりも大きくすることができない。
21.0~max_subpics_minus1の任意の整数は、少なくとも1つのsubpic_grid_idx[i][j]に等しくなければならないことが提案される。
22.IBC仮想バッファは、1つのピクチャ内の新しいサブピクチャを復号する前にリセットされてもよい。
a.一例では、IBC仮想バッファ内の全てのサンプルは、-1にリセットされてもよい。
23.パレットエントリリストは、1つのピクチャ内の新しいサブピクチャを復号する前にリセットされてもよい。
a.一例では、PredictorPaletteSizeは、1つのピクチャ内の新しいサブピクチャを復号する前に、0に等しくセットされてもよい。
24.スライスの情報(例えば、スライスの数および/またはスライスの範囲)をシグナリングするかどうかは、タイルの数および/またはブリックの数に依存してもよい。
a.一例では、ピクチャ内のブリックの数が1である場合、num_slices_in_pic_minus1はシグナリングされず、0であると推論される。
b.一例では、ピクチャ内のブリックの数が1である場合、スライスの情報(例えば、スライスの数および/またはスライスの範囲)は、シグナリングされなくてもよい。
c.一例では、ピクチャ内のブリックの数が1である場合、スライスの数は1であると推論されてもよい。スライスは、ピクチャ全体をカバーする。一例では、ピクチャ内のブリックの数が1である場合、single_brick_per_slice_flagはシグナリングされず、0であると推論される。
i.代替的には、ピクチャ内のブリックの数が1である場合、single_brick_per_slice_flagはシグナリングされず、0であると推論される。
d.例示的な構文設計は、以下の通りである。
【表4】
25.slice_addressをシグナリングするかどうかは、スライスが矩形であるとシグナリングされるかどうか(例えば、rect_slice_flagが0か1か)から切り離されてもよい。
a.例示的な構文設計は、以下の通りである。
【表5】
26.slice_addressをシグナリングするかどうかは、スライスが矩形であるとシグナリングされるときのスライスの数に依存してもよい。
【表6】
27.num_bricks_in_slice_minus1をシグナリングするかどうかは、slice_addressおよび/またはピクチャ内のブリックの数に依存してもよい。
a.例示的な構文設計は、以下の通りである。
【表7】
28.loop_filter_across_bricks_enabled_flagをシグナリングするかどうかは、タイルの数および/またはピクチャ内のブリックの数に依存してもよい。
a.一例では、ブリックの数が2よりも小さい場合、loop_filter_across_bricks_enabled_flagは、シグナリングされない。
b.例示的な構文設計は、以下の通りである。
【表8】
29.ビットストリーム適合性の必要条件は、ピクチャの全てのスライスがピクチャ全体をカバーしなければならないことである。
a.スライスが矩形であることがシグナリングされるときに(例えば、rect_slice_flagが1に等しいときに)、この必要条件が満たさなければならない。
30.ビットストリーム適合性の必要条件は、サブピクチャの全てのスライスがサブピクチャ全体をカバーしなければならないことである。
a.スライスが矩形であることがシグナリングされるときに(例えば、rect_slice_flagが1に等しいときに)、この必要条件が満たさなければならない。
31.ビットストリーム適合性の必要条件は、スライスが複数のサブピクチャとオーバラップできないことである。
32.ビットストリーム適合性の必要条件は、タイルが複数のサブピクチャとオーバラップできないことである。
33.ビットストリーム適合性の必要条件は、ブリックが複数のサブピクチャとオーバラップできないことである。
以下の議論では、寸法CW×CHを有する基本ユニットブロック(BUB)は、矩形領域である。例えば、BUBはコーディングツリーブロック(CTB)であってもよい。
34.一例では、サブピクチャの数(Nとして示される)が、シグナリングされてもよい。
a.適合性ビットストリームについて、サブピクチャが使用される場合(例えば、subpics_present_flagが1に等しい場合)、ピクチャ中に少なくとも2つのサブピクチャがあることが必要であってもよい。
b.代替的には、Nマイナスd(すなわち、N-d)は、シグナリングされてもよく、ここで、dは、0、1、または2などの整数である。
c.例えば、N-dは、固定長コーディング、例えば、u(x)でコーディングされてもよい。
i.一例では、xは、8などの固定数であってもよい。
ii.一例では、xまたはx-dxは、N-dがシグナリングされる前にシグナリングされてもよく、ここで、dxは、0、1または2などの整数である。シグナリングされたxは、適合ビットストリームの最大値よりも大きくなくてもよい。
iii.一例では、xはオンザフライで導出されてもよい。
1)例えば、xは、ピクチャ内のBUBの総数(Mとして示される)の関数として導出されてもよい。例えば、x=Ceil(log2(M+d0))+d1であり、ここで、d0およびd1は、-2、-1、0、1、2などの2つの整数である。
2)Mは、M=Ceiling(W/CW)×Ceiling(H/CH)として導出されてもよく、ここで、WおよびHは、ピクチャの幅および高さを表し、CWおよびCHは、BUBの幅および高さを表す。
d.例えば、N-dは、unary符号または切り詰められたunary符号でコーディングされてもよい。
e.一例では、N-dの許容最大値は固定数であってもよい。
i.代替的には、N-dの許容最大値は、ピクチャ中のBUBの総数(Mとして示される)の関数として導出されてもよい。例えば、x=Ceil(log2(M+d0))+d1であり、ここで、d0およびd1は、-2、-1、0、1、2などの2つの整数である。
35.一例では、サブピクチャは、その選択された位置(例えば、左上/右上/左下/右下)および/またはその幅および/または高さのうちの1つ以上の表示によってシグナリングされてもよい。
a.一例では、サブピクチャの左上の位置は、寸法CW×CHを有する基本ユニットブロックの粒度でシグナリングされてもよい。
i.例えば、サブピクチャの左上のBUBのBUBに関して列インデックス(Colとして示される)が、シグナリングされてもよい。
1)例えば、Col-dが、シグナリングされてもよく、ここで、dは、0、1、または2などの整数である。
a)代替的には、dは、d1によって加算された、以前にコーディングされたサブピクチャのColに等しくてもよく、ここで、d1は、-1、0または1などの整数である。
b)Col-dの符号がシグナリングされてもよい。
ii.例えば、サブピクチャの左上のBUBのBUBに関する行インデックス(Rowとして示される)が、シグナリングされてもよい。
1)例えば、Row-dが、シグナリングされてもよく、ここで、dは、0、1、または2などの整数である。
a)代替的には、dは、d1によって加算された、以前にコーディングされたサブピクチャのRowに等しくてもよく、ここで、d1は、-1、0または1などの整数である。
b)Row-dの符号がシグナリングされてもよい。
iii.上述の行/列インデックス(Rowとして示される)が、CTB(Codling Tree Block)において表わされてもよく、例えば、ピクチャの左上の位置に対するxまたはy座標は、CTBサイズによって分割され、シグナリングされてもよい。
iv.一例では、サブピクチャの位置をシグナリングするかどうかは、サブピクチャインデックスに依存してもよい。
1)一例では、ピクチャ内の最初のサブピクチャに対して、左上の位置がシグナリングされなくてもよい。
a)代替的には、さらに、左上の位置が、例えば、(0,0)であると推論されてもよい。
2)一例では、ピクチャ内の最後のサブピクチャに対して、左上の位置がシグナリングされなくてもよい。
a)左上の位置は、以前にシグナリングされたサブピクチャの情報に依存して推論されてもよい。
b.一例では、サブピクチャの幅/高さ/選択された位置の表示は、切り詰められたunary/切り詰められたbinary/unary/固定長/K-th EGコーディング(例えば、K=0,1,2,3)でシグナリングされてもよい。
c.一例では、サブピクチャの幅は、寸法CW×CHを有するBUBの粒度でシグナリングされてもよい。
i.例えば、サブピクチャ内のBUBの列の数(Wとして示される)が、シグナリングされてもよい。
ii.例えば、W-dが、シグナリングされてもよく、ここで、dは、0、1または2などの整数である。
1)代替的には、dは、d1によって加算された、以前にコーディングされたサブピクチャのWに等しくてもよく、ここで、d1は、-1、0または1などの整数である。
2)W-dの符号がシグナリングされてもよい。
d.一例では、サブピクチャの高さは、寸法CW×CHを有するBUBの粒度でシグナリングされてもよい。
i.例えば、サブピクチャ内のBUBの行の数(Hとして示される)は、シグナリングされてもよい。
ii.例えば、H-dが、シグナリングされてもよく、ここで、dは、0、1または2などの整数である。
1)代替的には、dは、d1によって加算された、以前にコーディングされたサブピクチャのHに等しくてもよく、ここで、d1は、-1、0または1などの整数である。
2)H-dの符号がシグナリングされてもよい。
e.一例では、Col-dは、固定長コーディング、例えば、u(x)でコーディングされてもよい。
i.一例では、xは、8などの固定数であってもよい。
ii.一例では、xまたはx-dxは、Col-dがシグナリングされる前にシグナリングされてもよく、ここで、dxは、0、1または2などの整数である。シグナリングされたxは、適合ビットストリームの最大値よりも大きくなくてもよい。
iii.一例では、xはオンザフライで導出されてもよい。
1)例えば、xは、ピクチャ内のBUB列の総数(Mとして示される)の関数として導出されてもよい。例えば、x=Ceil(log2(M+d0))+d1であり、ここで、d0およびd1は、-2、-1、0、1、2などの2つの整数である。
2)Mは、M=Ceiling(W/CW)として導出されてもよく、ここで、Wは、ピクチャの幅を表し、CWは、BUBの幅を表す。
f.一例では、Row-dは、固定長コーディング、例えば、u(x)でコーディングされてもよい。
i.一例では、xは、8などの固定数であってもよい。
ii.一例では、xまたはx-dxは、Row-dがシグナリングされる前にシグナリングされてもよく、ここで、dxは、0、1または2などの整数である。シグナリングされたxは、適合ビットストリームの最大値よりも大きくなくてもよい。
iii.一例では、xはオンザフライで導出されてもよい。
1)例えば、xは、ピクチャ内のBUB行の総数(Mとして示される)の関数として導出されてもよい。例えば、x=Ceil(log2(M+d0))+d1であり、ここで、d0およびd1は、-2、-1、0、1、2などの2つの整数である。
2)Mは、M=Ceiling(H/CH)として導出されてもよく、ここで、Hは、ピクチャの高さを表し、CHは、BUBの高さを表す。
g.一例では、W-dは、固定長コーディング、例えば、u(x)でコーディングされてもよい。
i.一例では、xは、8などの固定数であってもよい。
ii.一例では、xまたはx-dxは、W-dがシグナリングされる前にシグナリングされてもよく、ここで、dxは、0、1または2などの整数である。シグナリングされたxは、適合ビットストリームの最大値よりも大きくなくてもよい。
iii.一例では、xはオンザフライで導出されてもよい。
1)例えば、xは、ピクチャ内のBUB列の総数(Mとして示される)の関数として導出されてもよい。例えば、x=Ceil(log2(M+d0))+d1であり、ここで、d0およびd1は、-2、-1、0、1、2などの2つの整数である。
2)Mは、M=Ceiling(W/CW)として導出されてもよく、ここで、Wは、ピクチャの幅を表し、CWは、BUBの幅を表す。
h.一例では、H-dは、固定長コーディング、例えば、u(x)でコーディングされてもよい。
i.一例では、xは、8などの固定数であってもよい。
ii.一例では、xまたはx-dxは、H-dがシグナリングされる前にシグナリングされてもよく、ここで、dxは、0、1または2などの整数である。シグナリングされたxは、適合ビットストリームの最大値よりも大きくなくてもよい。
iii.一例では、xはオンザフライで導出されてもよい。
1)例えば、xは、ピクチャ内のBUB行の総数(Mとして示される)の関数として導出されてもよい。例えば、x=Ceil(log2(M+d0))+d1であり、ここで、d0およびd1は、-2、-1、0、1、2などの2つの整数である。
2)Mは、M=Ceiling(H/CH)として導出されてもよく、ここで、Hは、ピクチャの高さを表し、CHは、BUBの高さを表す。
i.Col-dおよび/またはRow-dは、全てのサブピクチャに対してシグナリングされてもよい。
i.代替的には、Col-dおよび/またはRow-dは、全てのサブピクチャに対してシグナリングされなくてもよい。
1)Col-dおよび/またはRow-dは、サブピクチャの数が2より小さい(1に等しい)場合、シグナリングされなくてもよい。
2)例えば、Col-dおよび/またはRow-dは、最初のサブピクチャ(例えば、サブピクチャインデックス(またはサブピクチャID)が0に等しい)に対してシグナリングされなくてもよい。
a)シグナリングされないときに、それらは、0であると推論されてもよい。
3)例えば、Col-dおよび/またはRow-dは、最後のサブピクチャ(例えば、サブピクチャインデックス(またはサブピクチャID)がNumSubPics-1に等しい)に対してシグナリングされてなくてもよい。
a)シグナリングされないときに、それらは、すでにシグナリングされているサブピクチャの位置や寸法に依存して推論されてもよい。
j.W-dおよび/またはH-dは、全てのサブピクチャに対してシグナリングされてもよい。
i.代替的には、W-dおよび/またはH-dは、全てのサブピクチャに対してシグナリングされなくてもよい。
1)W-dおよび/またはH-dは、サブピクチャの数が2より小さい(1に等しい)場合、シグナリングされなくてもよい。
2)例えば、Wl-dおよび/またはH-dは、最後のサブピクチャ(例えば、サブピクチャインデックス(またはサブピクチャID)がNumSubPics-1に等しい)に対してシグナリングされてなくてもよい。
a)シグナリングされないときに、それらは、すでにシグナリングされているサブピクチャの位置や寸法に依存して推論されてもよい。
k.上記の項目において、BUBは、CTB(Coding Tree Block)であってもよい。
36.一例では、サブピクチャの情報は、CTBサイズの情報(例えば、log2_ctu_size_minus5)が既にシグナリングされた後にシグナリングされるべきである。
37.subpic_treated_as_pic_flag[i]は、各サブピクチャに対してシグナリングされなくてもよい。その代わりに、1つのsubpic_treated_as_pic_flagは、サブピクチャが全てのサブピクチャに対するピクチャとして処理されるかどうかを制御するためにシグナリングされる。
38.loop_filter_across_subpic_enabled_flag[i]は、各サブピクチャに対してシグナリングされなくてもよい。その代わりに、1つのloop_filter_across_subpic_enabled_flagは、ループフィルタが全てのサブピクチャに対してサブピクチャにわたって適用され得るかどうかを制御するためにシグナリングされる。
39.subpic_treated_as_pic_flag[i](subpic_treated_as_pic_flag)および/またはloop_filter_across_subpic_enabled_flag[i](loop_filter_across_subpic_enabled_flag)が、条件付きでシグナリングされてもよい。
a.一例では、subpic_treated_as_pic_flag[i]および/またはloop_filter_across_subpic_enabled_flag[i]は、サブピクチャの数が2より小さい(1に等しい)場合、シグナリングされなくてもよい。
40.RPRは、サブピクチャが使用されるときに、適用されてもよい。
a.一例では、RPRにおけるスケーリング比は、{1:1、1:2および/または2:1}または{1:1、1:2および/または2:1、1:4および/または4:1}、{1:1、1:2および/または2:1、1:4および/または4:1、1:8および/または8:1}などのサブピクチャが使用されるときに、限定的にセットされるように制約されてもよい。
b.一例では、ピクチャAとピクチャBの解像度が異なる場合、ピクチャAのCTBサイズとピクチャBのCTBサイズが異なってもよい。
c.一例では、寸法SAW×SAHのサブピクチャSAがピクチャA内にあり、寸法SBW×SBHのサブピクチャSBがピクチャB内にあり、SAがSBに対応し、ピクチャAとピクチャBの間のスケーリング比が水平方向と垂直方向に沿ってRwとRhであるとすると、
i.SAW/SBWまたはSBW/SAWは、Rwに等しくなければならない。
ii.SAH/SBHまたはSBH/SAHは、Rhに等しくなければならない。
41.サブピクチャが使用されるときに例えば、sub_picts_present_flagが真であるときに)、サブピクチャインデックス(またはサブピクチャID)は、スライスヘッダにおいてシグナリングされてもよく、スライスアドレスは、ピクチャ全体ではなく、サブピクチャにおけるアドレスとして中断される。
【0118】
5. 実施形態
【0119】
以下の実施形態において、新たに追加されたテキストは、太字のイタリック体になっており、削除されたテキストは、[[]]によってマークされる。
【0120】
5.1 実施形態1:アフィン構成されたマージ候補についてのサブピクチャ制約
8.5.5.6 構成されたアフィン制御点動きベクトルマージ候補に対する導出プロセス
このプロセスへの入力は、以下のようである。
- 現在のピクチャの左上のルマサンプルに対する現在のルマコーディングブロックの左上のサンプルを指定するルマ位置(xCb,yCb)
- 現在のルマコーディングブロックの幅および高さを指定する2つの変数cbWidthおよびcbHeight
- 可用性フラグavailableA0、availableA1、availableA2、availableB0、availableB1、availableB2、availableB3
- サンプル位置(xNbA0,yNbA0)、(xNbA1,yNbA1)、(xNbA2,yNbA2)、(xNbB0,yNbB0)、(xNbB1,yNbB1)、(xNbB2,yNbB2)、および(xNbB3,yNbB3)
このプロセスの出力は、以下のようである。
- 構成されたアフィン制御点動きベクトルマージ候補の可用性フラグavailableFlagConstK(K=1..6)
- 参照インデックスrefIdxLXConstK(K=1..6、Xは、0または1)
- 予測リスト利用フラグpredFlagLXConstK(K=1.6、Xは0または1)、
- アフィン動きモデルインデックスModelIdcConstK(K=1..6)
- 双予測重みインデックスbcwIdxConstK(K=1..6)
- 構成されたアフィン制御点動きベクトルcpMvLXConstK[cpIdx](cpIdx=0..2、K=1..6、Xは0または1)
...
4番目の(並置された右下の)制御点動きベクトルcpMvLXCorner[3]、参照インデックスrefIdxLXCorner[3]、予測リスト利用フラグpredFlagLXCorner[3]、および可用性フラグavalableFlagCorner[3](Xは0および1)は、以下のように導出される。
- 時間的マージ候補のための参照インデックスrefIdxLXCorner[3](Xは、0または1)、0に等しくセットされる。
- 変数mvLXColおよびavailableFlagLXCol(Xは、0または1)は、以下のように導出される。
- slice_temporal_mvp_enabled_flagが0に等しい場合、mvLXColの両方のコンポーネントとも、0に等しくセットされ、availableFlagLXColは、0に等しくセットされる。
- それ以外の場合(rect_slice_flagが1に等しい場合)、以下が適用される。
【数34】
- yCb>>CtbLog2SizeYが、yColBr>>CtbLog2SizeYに等しく、
[外1]
- 変数colCbは、ColPicによって指定される並置された画像内の((xColBr>>3)<<3,(yColBr>>3)<<3)で与えられる修正された位置をカバーするルマコーディングブロックを指定する。
- ルマ位置(xColCb,yColCb)は、ColPicによって指定された並置されたピクチャの左上のルマサンプルに対する、colCbによって指定された並置されたルマコーディングブロックの左上のサンプルに等しくセットされる。
- 8.5.2.12項において指定されている並置された動きベクトルに対する導出プロセスは、currCb、colCb、(xColCb,yColCb)、refIdxLXCorner[3]、0に等しくセットされたsbFlagを入力として呼び出され、出力は、mvLXColおよびavailableFlagLXColに割り当てられる。
- それ以外の場合、mvLXColの両方のコンポーネントとも、0に等しくセットされ、availableFlagLXColは、0に等しくセットされる。
...
【0121】
5.2 実施形態2:アフィン構成されたマージ候補についてのサブピクチャ制約
8.5.5.6 構成されたアフィン制御点動きベクトルマージ候補に対する導出プロセス
このプロセスへの入力は、以下のようである。
- 現在のピクチャの左上のルマサンプルに対する現在のルマコーディングブロックの左上のサンプルを指定するルマ位置(xCb,yCb)
- 現在のルマコーディングブロックの幅および高さを指定する2つの変数cbWidthおよびcbHeight
- 可用性フラグavailableA0、availableA1、availableA2、availableB0、availableB1、availableB2、availableB3
- サンプル位置(xNbA0,yNbA0)、(xNbA1,yNbA1)、(xNbA2,yNbA2)、(xNbB0,yNbB0)、(xNbB1,yNbB1)、(xNbB2,yNbB2)、および(xNbB3,yNbB3)
このプロセスの出力は、以下のようである。
- 構成されたアフィン制御点動きベクトルマージ候補の可用性フラグavailableFlagConstK(K=1..6)
- 参照インデックスrefIdxLXConstK(K=1..6、Xは、0または1)
- 予測リスト利用フラグpredFlagLXConstK(K=1.6、Xは0または1)、
- アフィン動きモデルインデックスModelIdcConstK(K=1..6)
- 双予測重みインデックスbcwIdxConstK(K=1..6)
- 構成されたアフィン制御点動きベクトルcpMvLXConstK[cpIdx](cpIdx=0..2、K=1..6、Xは0または1)
...
4番目の(並置された右下の)制御点動きベクトルcpMvLXCorner[3]、参照インデックスrefIdxLXCorner[3]、予測リスト利用フラグpredFlagLXCorner[3]、および可用性フラグavalableFlagCorner[3](Xは0および1)は、以下のように導出される。
- 時間的マージ候補のための参照インデックスrefIdxLXCorner[3](Xは、0または1)、0に等しくセットされる。
- 変数mvLXColおよびavailableFlagLXCol(Xは、0または1)は、以下のように導出される。
-slice_temporal_mvp_enabled_flagが0に等しい場合、mvLXColの両方のコンポーネントとも、0に等しくセットされ、availableFlagLXColは、0に等しくセットされる。
-それ以外の場合(rect_slice_flagが1に等しい場合)、以下が適用される。
【数35】
- yCb>>CtbLog2SizeYがyColBr>>>CtbLog2SizeYに等しい場合、[[yColBrがpic_height_in_luma_samplesよりも小さく、xColBrがpic_width_in_luma_samplesよりも小さい場合、以下が適用される]]、
- 変数colCbは、ColPicによって指定される並置されたピクチャ内の((xColBr>>3)<<3,(yColBr>>3)<<3)で与えられる修正された位置をカバーするルマコーディングブロックを指定する。
- ルマ位置(xColCb,yColCb)は、ColPicによって指定された並置されたピクチャの左上のルマサンプルに対する、colCbによって指定された並置されたルマコーディングブロックの左上のサンプルに等しくセットされる。
- 8.5.2.12項において指定されている並置された動きベクトルに対する導出プロセスは、currCb、colCb、(xColCb,yColCb)、refIdxLXCorner[3]、0に等しくセットされたsbFlagを入力として呼び出され、出力は、mvLXColおよびavailableFlagLXColに割り当てられる。
-それ以外の場合、mvLXColの両方のコンポーネントとも、0に等しくセットされ、availableFlagLXColは、0に等しくセットされる。
...
【0122】
5.3 実施形態3:サブピクチャ制約下での整数サンプルのフェッチ
8.5.6.3.3 ルマ整数サンプルフェッチプロセス
このプロセスへの入力は、以下のようである。
- フルサンプルユニットにおけるルマ位置(xInt,yInt
- ルマ参照サンプルアレイrefPicLXL
このプロセスの出力は、予測ルマサンプル値predSampleLXLである。
変数shiftは、Max(2,14-BitDepthY)に等しくセットされる。
変数picWは、pic_width_in_luma_samplesに等しくセットされ、変数picHは、pic_height_in_luma_samplesに等しくセットされる。
フルサンプルユニットおけるルマ位置(xInt,yInt)は、以下のように導出される。
[外2]
【数36】
[外3]
【数37】
予測ルマサンプル値presampleLXLは、以下のように導出される。
【数38】
【0123】
5.4 実施形態4:LMCSのクロマ残差スケーリングにおける変数invAvgLumaの導出
8.7.5.3 クロマサンプルに対するルマ依存クロマ残差スケーリングプロセスによる画像再構成
このプロセスへの入力は、以下のようである。
- 現在のピクチャの左上のクロマサンプルに対する現在のクロマ変換ブロックの左上のサンプルのクロマ位置(xCurr,yCurr)
- クロマ変換ブロック幅を指定する変数nCurrSw
- クロマ変換ブロック高さを指定する変数nCurrSh
- 現在のクロマ変換ブロックのコーディングされたブロックフラグを指定する変数tuCbfChroma
- 現在のブロックのクロマ予測サンプルを指定する(nCurrSw)x(nCurrSh)アレイpredSamples
- 現在のブロックのクロマ残差サンプルを指定する(nCurrSw)x(nCurrSh)アレイresSamples
このプロセスの出力は、再構成されたクロマピクチャサンプルアレイrecSamples
変数sizeYは、Min(CtbSizeY,64)に等しくセットされる。
再構成されたクロマピクチャサンプルrecSamplesは、i=0..nCurrSw-1,j=0..nCurrSh-1に対して、以下のように導出される。
- ...
- それ以外の場合、以下が適用される。
- ...
- 変数cursPicは、現在のピクチャにおいて再構成されたルマサンプルの配列を指定する。
- 変数varScaleの導出に対して、以下の順序付されたステップが適用される。
1.変数invAvgLumaは、以下のように導出される。
- アレイrecLuma[i](i=0..(2*sizeY-1))と変数cntは、以下のように導出される。
- 変数cntは、0に等しくセットされる。
[外4]
【数39】
- avalLがTRUEに等しいときに、アレイrecLuma[i](i=0..sizeY-1)は、currPic[xCuCb-1][Min(yCuCb+i,[[pic_height_in_luma_samples-1]]
[外5]
)](i=0..sizeY-1)に等しくセットされ、cntは、sizeYに等しくセットされる。
- avalTがTRUEに等しいときに、アレイrecLuma[cnt+i](i=0..sizeY-1)は、currPic[Min(xCuCb+i,[[pic_width_in_luma_samples-1]]
[外6]
)][yCuCb-1](i=0..sizeY-1)に等しくセットされ、cntは、(cnt+sizeY)に等しくセットされる。
- 変数invAvgLumaは、以下のように導出される。
- cntが0よりも大きい場合、以下が適用される。
【数40】
- それ以外の場合(cntが0に等しい)、以下が適用される。
【数41】
【0124】
5.5 実施形態5:サブピクチャ要素を4つのサンプル以外のN個(N=8、32など)の単位で定義する例
7.4.3.3 シーケンスパラメータセットRBSP意味
subpic_grid_col_width_minus1+1は、サブピクチャ識別子グリッドの各要素の幅を
[外7]
サンプル単位で指定する。構文要素の長さは、Ceil(Log2(pic_width_max_in_luma_samples/
[外8]
))ビットである。
変数NumSubPicGridColsは、以下のように導出される。
【数42】
subpic_grid_row_height_minus1+1は、サブピクチャ識別子グリッドの各要素の高さを4サンプル単位で指定する。構文要素の長さは、Ceil(Log2(pic_height_max_in_luma_samples/
[外9]
))ビットである。変数NumSubPicGridRowsは、以下のように導出される。
【数43】
7.4.7.1 一般的なスライスヘッダ意味
変数SubPicIdx、SubPicLeftBoundaryPos、SubPicTopBoundaryPos、SubPicRightBoundaryPos、およびSubPicBotBoundaryPosは、以下のように導出される。
【数44】
【0125】
5.6 実施形態6:ピクチャ幅及びピクチャ高さを8以上に制限する。
7.4.3.3 シーケンスパラメータセットRBSP意味
pic_width_max_in_luma_samplesは、SPSを参照する復号された各ピクチャの最大幅をルマサンプルの単位で指定する。pic_width_max_in_luma_samplesは、0に等しくなく、[[MinCbSizeY]]
[外10]
の整数倍数とする。
pic_height_max_in_luma_samplesは、SPSを参照する復号された各ピクチャの最大高さをルマサンプルの単位で指定する。pic_height_max_in_luma_samplesは、0に等しくなく、[[MinCbSizeY]]
[外11]
の整数倍数とする。
【0126】
5.7 実施携帯7:BT/TT/QTスプリット、BT/TT/QT深度導出、および/またはCUスプリットフラグのシグナリングのサブピクチャ境界チェック
6.4.2 許可されているバイナリスプリットプロセス
変数allowBtSplitは、以下のように導出される。
- ...
- それ以外の場合、次の条件の全てが真である場合、allowBtSplitは、FALSEに等しくセットされる。
- btSplitがSPLIT_BT_VERに等しい
- y0+cbHeightが、[[pic_height_in_luma_samples]]
[外12]
よりも大きい。
- それ以外の場合、次の条件の全てが真である場合、allowBtSplitは、FALSEに等しくセットされる。
- btSplitがSPLIT_BT_VERに等しい。
- cbHeightがMaxTbSizeYよりも大きい。
- x0+cbWidthが、[[pic_width_in_luma_samples]]
[外13]
よりも大きい。
- それ以外の場合、次の条件の全てが真である場合、allowBtSplitは、FALSEに等しくセットされる。
- btSplitがSPLIT_BT_HORに等しい。
- cbWidthがMaxTbSizeYよりも大きい。
- y0+cbHeightが、[[pic_height_in_luma_samples]]
[外14]
よりも大きい。
- それ以外の場合、次の条件の全てが真である場合、allowBtSplitは、FALSEに等しくセットされる。
- x0+cbWidthが、[[pic_width_in_luma_samples]]
[外15]
よりも大きい。
- y0+cbHeightが、[[pic_height_in_luma_samples]]
[外16]
よりも大きい。
- cbWidthがminQtSizeよりも大きい。
- それ以外の場合、次の条件の全てが真である場合、allowBtSplitは、FALSEに等しくセットされる。
- btSplitがSPLIT_BT_HORに等しい。
- x0+cbWidthが、[[pic_width_in_luma_samples]]
[外17]
よりも大きい。
-y0+cbHeightが、[[pic_height_in_luma_samples]]
[外18]
よりも小さい。
6.4.2 許可されているternaryスプリットプロセス
変数allowTtSplitは、以下のように導出される。
- 以下の条件のうちの1つ以上が真である場合、allowTtSplitは、FALSEに等しくセットされる。
- cbSizeが、2*MinTtSizeYよりも小さい。
- cbWidthが、Min(MaxTbSizeY,maxTtSize)よりも大きい。
- cbHeightが、Min(MaxTbSize,maxTtSize)よりも大きい。
- mttDepthが、maxMttDepth以上である。
- x0+cbWidthが、[[pic_width_in_luma_samples]]
[外19]
よりも大きい。
- y0+cbHeightが、[[pic_height_in_luma_samples]]
[外20]
よりも大きい。
- treeTypeが、DUAL_TREE_CHROMAに等しく、(cbWidth/SubWidthC)*(cbHeight/SubHeightC)が、32以下である。
- treeTypeが、DUAL_TREE_CHROMAに等しく、modeTypeが、MODE_TYPE_INTRAに等しい。
- それ以外の場合、allowTtSplitは、TRUEに等しくセットされる。
7.3.8.2 コーディングツリーユニット構文
【表9】
7.3.8.4 コーディングツリー構文
【表10】
【0127】
5.8 実施形態8:サブピクチャの定義例
【表11】
【0128】
5.9 実施形態9:サブピクチャの定義例
【表12】
【0129】
5.10 実施形態10:サブピクチャの定義例
【表13】
【0130】
5.11 実施形態11:サブピクチャの定義例
【表14】
【0131】
図3は、ビデオ処理装置300のブロック図である。装置300は、本明細書に記載される方法のうちの1つ以上を実装するために使用されてもよい。装置300は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機などで具体化されてもよい。装置300は、1つ以上のプロセッサ302、1つ以上のメモリ304、およびビデオ処理ハードウェア306を含んでもよい。プロセッサ302は、本文書に記載される1つ以上の方法を実装するように構成されてもよい。メモリ(複数のメモリ)304は、本明細書に記載される方法および技法を実装するために使用されるデータおよびコードを記憶するために使用されてもよい。ビデオ処理ハードウェア306は、ハードウェア回路において、本文書に記載されるいくつかの技法を実装するために使用されてもよい。
【0132】
図4は、ビデオを処理する方法400のフローチャートである。
方法400は、ビデオの第1のビデオ領域内のビデオブロックに対して、アフィンモードを使用してビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換に対して時間的動きベクトル予測子が決定される位置が、第2のビデオ領域内にあるかどうかを決定すること(402)と、その決定に基づいて変換を実行すること(404)と、を含む。
【0133】
以下の解決策は、いくつかの実施形態において好ましい解決策として実装されてもよい。
【0134】
以下の解決策は、前のセクション(例えば、項目1)に列挙されている項目に記載された追加の技法と共に実装されてもよい。
【0135】
1.ビデオ処理の方法であって、ビデオの第1のビデオ領域内のビデオブロックに対して、アフィンモードを使用してビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換に対して時間的動きベクトル予測子が決定される位置が、第2のビデオ領域内にあるかどうかを決定することと、その決定に基づいて変換を実行することと、を含む、方法。
【0136】
2.ビデオブロックが、第1の領域および第2の領域によってカバーされる、解決策1に記載の方法。
【0137】
3.時間的動きベクトル予測子の位置が第2のビデオ領域外にある場合に、時間的動きベクトル予測子が、利用不可能としてマークされ、変換において使用されない、解決策1~2のいずれか1つに記載の方法。
【0138】
以下の解決策は、前のセクション(例えば、項目2)に列挙されている項目に記載された追加の技法と共に実装されてもよい。
【0139】
4.ビデオ処理の方法であって、ビデオの第1のビデオ領域内のビデオブロックについて、ビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換に対して参照ピクチャ内の整数サンプルがフェッチされる位置が、第2のビデオ領域内にあるかどうかを決定することであって、参照ピクチャが、変換中に補間プロセスにおいて使用されない、ことと、その決定に基づいて変換を実行することと、を含む、方法。
【0140】
5.ビデオブロックが、第1の領域および第2の領域によってカバーされる、解決策4に記載の方法。
【0141】
6.サンプルの位置が第2のビデオ領域外にある場合に、サンプルが、利用不可能としてマークされ、変換において使用されない、解決策4~5のいずれか1つに記載の方法。
【0142】
以下の解決策は、前のセクション(例えば、項目3)に列挙されている項目に記載された追加の技法と共に実装されてもよい。
【0143】
7.ビデオの第1のビデオ領域内のビデオブロックに対して、ビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換に対して、再構成されたルマサンプル値がフェッチされる位置が、第2のビデオ領域内にあるかどうかを決定することと、その決定に基づいて変換を実行することと、を含む、方法。
【0144】
8.ルマサンプルが、第1の領域および第2の領域によってカバーされる、解決策7の方法。
【0145】
9.ルマサンプルの位置が第2のビデオ領域外にある場合に、ルマサンプルが、利用不可能としてマークされ、変換において使用されない、解決策7~8のいずれか1つに記載の方法。
【0146】
以下の解決策は、前のセクション(例えば、項目4)に列挙されている項目に記載された追加の技法と共に実装されてもよい。
【0147】
10.ビデオの第1のビデオ領域内のビデオブロックに対して、ビデオブロックと現在のビデオブロックのビットストリーム表現との間の変換中に、ビデオブロックに対する分割、深さ導出またはスプリットフラグシグナリングに関するチェックが実行される位置が、第2のビデオ領域内にあるかどうかを決定することと、その決定に基づいて変換を実行することと、を含む、方法。
【0148】
11.位置が、第1の領域および第2の領域によってカバーされる、解決策10に記載の方法。
【0149】
12.位置が、第2のビデオ領域外にある場合に、ルマサンプルが、利用不可能としてマークされ、変換において使用されない、解決策10~11のいずれか1つに記載の方法。
【0150】
以下の解決策は、前のセクション(例えば、項目8)にリストされた項目に記載された追加の技法と共に実装され得る。
【0151】
13.ビデオ処理の方法であって、1つ以上のビデオブロックを含む1つ以上のビデオピクチャを含むビデオと、ビデオのコーディングされた表現との間の変換を実行することを含み、コーディングされた表現は、変換がサブピクチャコーディング/復号および動的解像度コーディング/復号ツール、またはビデオユニット内の参照ピクチャ再サンプリングツールを使用しないというコーディング構文要件に準拠する、方法。
【0152】
14.ビデオユニットが、1つ以上のビデオピクチャのシーケンスに対応する、解決策13に記載の方法。
【0153】
15.動的解像度変換コーディング/復号ツールが、適応解像度変換コーディング/復号ツールを含む、解決策13~14のいずれか1つに記載の方法。
【0154】
16.動的解像度変換コーディング/復号ツールが、動的解像度変換コーディング/復号ツールを含む、解決策13~14のいずれか1つに記載の方法。
【0155】
17.コーディングされた表現は、ビデオユニットがコーディング構文要件に準拠することを示す、解決策13~16のいずれか1つに記載の方法。
【0156】
18.コーディングされた表現は、ビデオユニットがサブピクチャコーディングを使用することを示す、解決策17に記載の方法。
【0157】
19.コーディングされた表現は、ビデオユニットが動的解像度変換コーディング/復号ツールまたは参照ピクチャ再サンプリングツールを使用することを示す、解決策17に記載の方法。
【0158】
以下の解決策は、前のセクション(例えば、項目10)に列挙されている項目に記載された追加の技法と共に実装されてもよい。
【0159】
20.第2のビデオ領域が、ビデオサブピクチャを含み、第2のビデオ領域と別のビデオ領域の境界が、2つのコーディングツリーユニットの間の境界でもある、解決策1~19のいずれか1つに記載の方法。
【0160】
21.第2のビデオ領域が、ビデオサブピクチャを含み、第2のビデオ領域と別のビデオ領域の境界が、2つのコーディングツリーユニットの間の境界でもある、解決策1~19のいずれか1つに記載の方法。
【0161】
以下の解決策は、前のセクション(例えば、項目11)にリストされた項目に記載された追加の技法と共に実装され得る。
【0162】
22.第1のビデオ領域および第2のビデオ領域が、矩形形状を含む、解決策1~21のいずれか1つに記載の方法。
【0163】
以下の解決策は、前のセクション(例えば、項目12)にリストされた項目に記載された追加の技法と共に実装され得る。
【0164】
23.第1のビデオ領域および第2のビデオ領域が、オーバラップしない、解決策1~22のいずれか1つに記載の方法。
【0165】
以下の解決策は、前のセクション(例えば、項目13)にリストされた項目に記載された追加の技法と共に実装され得る。
【0166】
24.ビデオピクチャが、ビデオピクチャ内のピクセルが1つのビデオ領域のみによってカバーされるように、ビデオ領域に分割される、解決策1~23のいずれか1つに記載の方法。
【0167】
以下の解決策は、前のセクション(例えば、項目15)にリストされた項目に記載された追加の技法と共に実装され得る。
【0168】
25.ビデオピクチャがビデオシーケンスの特定の層に存在することにより、ビデオピクチャが第1のビデオ領域および第2のビデオ領域にスプリットされる、解決策1~24のいずれか1つに記載の方法。
【0169】
以下の解決策は、前のセクション(例えば、項目10)にリストされた項目に記載された追加の技法と共に実装され得る。
【0170】
26.ビデオ処理の方法であって、1つ以上のビデオブロックを含む1つ以上のビデオピクチャを含むビデオと、ビデオのコーディングされた表現との間の変換を実行することを含み、コーディングされた表現は、第1の構文要素subpic_grid_idx[i][j]が、第2の構文要素max_subpics_minus1よりも大きくないというコーディング構文要件に準拠する、方法。
【0171】
27.第1の構文要素を表すコードワードが、第2の構文要素を表すコードワードよりも大きくない、解決策26に記載の方法。
【0172】
28.第1のビデオ領域が、ビデオサブピクチャを含む、解決策1~27のいずれか1つに記載の方法。
【0173】
29.第2のビデオ領域が、ビデオサブピクチャを含む、解決策1~28のいずれか1つに記載の方法。
【0174】
30.変換が、ビデオをコーディングされた表現に符号化することを含む、解決策1~29のいずれか1つに記載の方法。
【0175】
31.変換が、ビデオの画素値を生成するために、コーディングされた表現を復号することを含む、解決策1~29のいずれか1つに記載の方法。
【0176】
32.解決策1~31のうちの1つ以上に規定された方法を実装するように構成されているプロセッサを含む、ビデオ復号装置。
【0177】
33.解決策1~31のうちの1つ以上に規定された方法を実装するように構成されているプロセッサを含む、ビデオ符号化装置。
【0178】
コンピュータコードを記憶したコンピュータプログラム製品であって、コードは、プロセッサによって実行されるときに、プロセッサに、解決策1~31のいずれか1つに記載の方法を実装させる、コンピュータプログラム製品。
【0179】
本文書に記載された方法、装置またはシステム。
【0180】
図8は、本明細書に開示される様々な技法を実装することができる例示的なビデオ処理システム800を示すブロック図である。様々な実装は、システム800のコンポーネントの一部または全部を含んでもよい。システム800は、ビデオコンテンツを受信するための入力802を含んでもよい。ビデオコンテンツは、生または圧縮されていないフォーマット、例えば、8または10ビットのマルチコンポーネント画素値で受信されてもよいし、圧縮されたか、または符号化されたフォーマットであってもよい。入力802は、ネットワークインターフェース、周辺バスインターフェース、または記憶インターフェースを表してもよい。ネットワークインターフェースの例は、Ethernet(登録商標)、PON(passive optical network)などの有線インターフェース、およびWi-Fi(登録商標)またはセルラーインターフェースなどの無線インターフェースを含む。
【0181】
システム800は、本文書に記載されている様々なコーディングまたは符号化方法を実装し得るコーディングコンポーネント804を含んでもよい。コーディングコンポーネント804は、ビデオのコーディングされた表現を生成するために、入力802からコーディングコンポーネント804の出力へのビデオの平均ビットレートを低減してもよい。従って、コーディング技法は、ビデオ圧縮またはビデオトランスコーディング技法と呼ばれることがある。コーディングコンポーネント804の出力は、コンポーネント806によって表されるように、記憶されるか、または接続された通信を介して送信されてもよい。入力802で受信されたビデオの記憶されたか、または通信されたビットストリーム(またはコーディングされた)表現は、ディスプレイインターフェース810に送信される画素値または表示可能なビデオを生成するために、コンポーネント808によって使用されてもよい。ビットストリーム表現からユーザが見ることができるビデオを生成するプロセスは、ビデオ解凍と呼ばれることがある。さらに、特定のビデオ処理動作は、「コーディング」動作またはツールと称されるが、コーディングツールもしくは動作は、符号化器で使用されるか、またはコーディングの結果を反転する、対応する復号ツールもしくは動作は、復号器によって実行されることが理解されるであろう。
【0182】
周辺バスインターフェースまたはディスプレイインターフェースの例としては、USB(universal serial bus)、HDMI(登録商標)(high definition multimedia interface)またはディスプレイポートなどを含む。記憶インターフェースの例としては、SATA(serial advanced technology attachment)、PCI、IDEインターフェースなどを含む。本明細書に記載されている技法は、携帯電話、ラップトップ、スマートフォン、またはデジタルデータ処理および/またはビデオディスプレイを実行することが可能な他のデバイスなどの様々な電子デバイスに具体化されてもよい。
【0183】
図9は、本開示の技法を利用することができる例示的なビデオコーディングシステム100を示すブロック図である。
【0184】
図9に示すように、ビデオコーディングシステム100は、ソースデバイス110および宛先デバイス120を含んでもよい。ソースデバイス110は、ビデオ符号化デバイスと称され得る符号化されたビデオデータを生成する。宛先デバイス120は、ビデオ復号デバイスと称され得るソースデバイス110によって生成された符号化されたビデオデータを復号してもよい。
【0185】
ソースデバイス110は、ビデオソース112、ビデオ符号化器114、および入力/出力(I/O)インターフェース116を含んでもよい。
【0186】
ビデオソース112は、ビデオ捕捉デバイスなどのソース、ビデオコンテンツプロバイダからビデオデータを受信するためのインターフェース、および/またはビデオデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組み合わせを含んでもよい。ビデオデータは、1つ以上のピクチャを含んでもよい。ビデオ符号化器114は、ビデオソース112からのビデオデータを符号化してビットストリームを生成する。ビットストリームは、ビデオデータのコーディングされた表現を形成するビットのシーケンスを含んでもよい。ビットストリームは、コーディングされたピクチャおよび関連するデータを含んでもよい。コーディングされたピクチャは、ピクチャのコーディングされた表現である。関連するデータは、シーケンスパラメータセット、ピクチャパラメータセット、および他の構文構造を含んでもよい。入出力インターフェース116は、変調器/復調器(モデム)および/または送信機を含んでもよい。符号化されたビデオデータは、ネットワーク130aを通してI/Oインターフェース116を介して宛先デバイス120に直接送信されてもよい。符号化されたビデオデータはまた、宛先デバイス120によるアクセスのために記憶媒体/サーバ130b上に記憶されてもよい。
【0187】
宛先デバイス120は、I/Oインターフェース126、ビデオ復号器124、およびディスプレイデバイス122を含んでもよい。
【0188】
I/Oインターフェース126は、受信機および/またはモデムを含んでもよい。入出力インターフェース126は、ソースデバイス110または記憶媒体/サーバ130bから符号化されたビデオデータを取得してもよい。ビデオ復号器124は、符号化されたビデオデータを復号してもよい。ディスプレイデバイス122は、デコードされたビデオデータをユーザに表示してもよい。ディスプレイデバイス122は、宛先デバイス120と一体化されてもよく、または外部ディスプレイデバイスとインターフェースするように構成されている宛先デバイス120の外部にあってもよい。
【0189】
ビデオ符号化器114およびビデオ復号器124は、HEVC(High Efficiency Video Coding)標準、VVC(Versatile Video Coding)標準、および他の現在および/または更なる標準などのビデオ圧縮標準に従って動作してもよい。
【0190】
図10は、図9に示すシステム100内のビデオ符号化器114であってもよいビデオ符号化器200の一例を示すブロック図である。
【0191】
ビデオ符号化器200は、本開示の技法のいずれかまたは全てを実行するように構成されてもよい。図10の例では、ビデオ符号化器200は、複数の機能コンポーネントを含む。本開示に記載される技法は、ビデオ符号化器200の様々なコンポーネント間で共有され得る。いくつかの例において、プロセッサは、本開示に記載される技法のいずれかまたは全てを実行するように構成されてもよい。
【0192】
ビデオ符号化器200の機能コンポーネントは、パーティションユニット201と、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205、およびイントラ予測ユニット206を含み得る予測ユニット202と、残差生成ユニット207と、変換ユニット208と、量子化ユニット209と、逆量子化ユニット210と、逆変換ユニット211と、再構成ユニット212と、バッファ213と、エントロピー符号化ユニット214と、を含んでもよい。
【0193】
他の例では、ビデオ符号化器200は、より多くの、より少ない、または異なる機能コンポーネントを含んでもよい。一例では、予測ユニット202は、イントラブロックコピー(IBC)ユニットを含んでもよい。IBCユニットは、少なくとも1つの参照ピクチャが現在のビデオブロックが位置するピクチャであるIBCモードで予測を実行してもよい。
【0194】
さらに、動き推定ユニット204や動き補償ユニット205などのいくつかのコンポーネントは、高度に一体化されてもよいが、説明のために図5の例では別々に表されている。
【0195】
パーティションユニット201は、ピクチャを1つ以上のビデオブロックにパーティショニングしてもよい。ビデオ符号化器200およびビデオ復号器300は、様々なビデオブロックサイズをサポートしてもよい。
【0196】
モード選択ユニット203は、例えばエラー結果に基づいて、コーディングモードのうちの1つ、イントラまたはインターのものを選択し、残差ブロックデータを生成するために残差生成ユニット207に、また、参照ピクチャとして使用するために符号化ブロックを再構成するために再構成ユニット212に、結果として生じるイントラまたはインターコーディングされたブロックを提供する。いくつかの例では、モード選択ユニット203は、予測がインター予測信号およびイントラ予測信号に基づく、イントラおよびインター予測の組み合わせ(CIIP)モードを選択してもよい。モード選択ユニット203はまた、インター予測の場合に、ブロックに対する動きベクトルに対する解像度(例えば、サブピクセルまたは整数ピクセル精度)を選択してもよい。
【0197】
現在のビデオブロックでインター予測を実行するために、動き推定ユニット204は、バッファ213からの1つ以上の参照フレームを現在のビデオフレームと比較することによって、現在のビデオブロックのための動き情報を生成してもよい。動き補償ユニット205は、動き情報および現在のビデオブロックに関連するピクチャ以外の、バッファ213からのピクチャの復号されたサンプルに基づいて、現在のビデオブロックための予測されるビデオブロックを決定してもよい。
【0198】
動き推定ユニット204と動き補償ユニット205は、例えば、現在のビデオブロックがIスライス内にあるか、Pスライス内にあるか、Bスライス内にあるかに依存して、現在のビデオブロックに対して異なる動作を実行してもよい。
【0199】
いくつかの例では、動き推定ユニット204は、現在のビデオブロックに対して単一方向の予測を実行してもよく、動き推定ユニット204は、現在のビデオブロックに対する参照ビデオブロックについてリスト0またはリスト1の参照ピクチャを検索することができる。次に、動き推定ユニット204は、参照ビデオブロックと、現在のビデオブロックと参照ビデオブロックとの間の空間的変位を示す動きベクトルとを含むリスト0またはリスト1内の参照ピクチャを示す参照インデックスを生成してもよい。動き推定ユニット204は、現在のビデオブロックの動き情報として、参照インデックス、予測方向インジケータ、および動きベクトルを出力してもよい。動き補償ユニット205は、現在のビデオブロックの動き情報によって示される参照ビデオブロックに基づいて、現在のブロックの予測ビデオブロックを生成してもよい。
【0200】
他の例では、動き推定ユニット204は、現在のビデオブロックに対して双方向予測を実行してもよく、動き推定ユニット204は、リスト0内の参照ピクチャを現在のビデオブロックについての参照ビデオブロックについて検索してもよく、また、リスト1内の参照ピクチャを現在のビデオブロックについての別の参照ビデオブロックについて検索してもよい。次に、動き推定ユニット204は、参照ビデオブロックと、参照ビデオブロックと現在のビデオブロックとの間の空間的変位を示す参照ビデオブロックと動きベクトルを含むリスト0とリスト1内の参照ピクチャを示す参照インデックスを生成してもよい。動き推定ユニット204は、現在のビデオブロックの動き情報として、現在のビデオブロックの参照インデックスおよび動きベクトルを出力してもよい。動き補償ユニット205は、現在のビデオブロックの動き情報によって示される参照ビデオブロックに基づいて、現在のブロックの予測ビデオブロックを生成してもよい。
【0201】
いくつかの例では、動き推定ユニット204は、復号器の復号プロセスのための動き情報の全セットを出力してもよい。
【0202】
いくつかの例では、動き推定ユニット204は、現在のビデオに対する完全なセットの動き情報を出力しなくてもよい。むしろ、動き推定ユニット204は、他のビデオブロックの動き情報を参照して現在のビデオブロックの動き情報をシグナリングしてもよい。例えば、動き推定ユニット204は、現在のビデオブロックの動き情報が近隣のビデオブロックの動き情報と十分に類似していると決定してもよい。
【0203】
一例では、動き推定ユニット204は、現在のビデオブロックに関連する構文構造において、現在のビデオブロックが別のビデオブロックと同じ動き情報を有することをビデオ復号器300に示す値を示してもよい。
【0204】
別の例では、動き推定ユニット204は、現在のビデオブロックに関連する構文構造において、別のビデオブロックおよび動きベクトル差(NVD)を識別してもよい。動きベクトル差は、現在のビデオブロックの動きベクトルと示されたビデオブロックの動きベクトルとの間の差を示す。ビデオ復号器300は、示されたビデオブロックの動きベクトルと動きベクトルの差を使用して、現在のビデオブロックの動きベクトルを決定してもよい。
【0205】
上述のように、ビデオ符号化器200は、動きベクトルを予測的にシグナリングしてもよい。ビデオ符号化器200によって実装され得る予測シグナリング技法の2つの例は、高度な動きベクトル予測(AMVP)およびマージモードシグナリングを含む。
【0206】
イントラ予測ユニット206は、現在のビデオブロックに対してイントラ予測を実行してもよい。イントラ予測ユニット206が現在のビデオブロックに対してイントラ予測を行うときに、イントラ予測ユニット206は、同じピクチャ内の他のビデオブロックの復号されたサンプルに基づいて、現在のビデオブロックに対する予測データを生成してもよい。現在のビデオブロックに対する予測データは、予測ビデオブロックおよび様々な構文要素を含んでもよい。
【0207】
残差生成ユニット207は、現在のビデオブロックから現在のビデオブロックの予測ビデオブロックを減算することによって(例えば、マイナス記号によって示される)、現在のビデオブロックの残差データを生成してもよい。現在のビデオブロックの残差データは、現在のビデオブロック内のサンプルの異なるサンプルコンポーネントに対応する残差ビデオブロックを含んでもよい。
【0208】
他の例では、例えばスキップモードにおいて、現在のビデオブロックについての現在のビデオブロックに対する残差データが存在しないことがあり、残差生成ユニット207は減算動作を実行しなくてもよい。
【0209】
変換処理ユニット208は、現在のビデオブロックに関連する残差ビデオブロックに1つ以上の変換を適用することによって、現在のビデオブロックのための1つ以上の変換係数ビデオブロックを生成してもよい。
【0210】
変換処理ユニット208が現在のビデオブロックに関連する変換係数ビデオブロックを生成した後に、量子化ユニット209は、現在のビデオブロックに関連する1つ以上の量子化パラメータ(QP)値に基づいて、現在のビデオブロックに関連する変換係数ビデオブロックを量子化してもよい。
【0211】
逆量子化ユニット210および逆変換ユニット211は、変換係数ビデオブロックから残差ビデオブロックを再構成するために、それぞれ変換係数ビデオブロックに逆量子化および逆変換を適用してもよい。再構成ユニット212は、予測ユニット202によって生成された1つ以上の予測ビデオブロックからの対応するサンプルに、再構成された残差ビデオブロックを追加して、バッファ213に記憶するために現在のブロックに関連する再構成されたビデオブロックを生成してもよい。
【0212】
再構成ユニット212がビデオブロックを再構成した後に、ループフィルタリング動作を実行して、ビデオブロック内のビデオブロッキングのアーチファクトを低減してもよい。
【0213】
エントロピー符号化ユニット214は、ビデオ符号化器200の他の機能コンポーネントからデータを受信してもよい。エントロピー符号化ユニット214がデータを受信するときに、エントロピー符号化ユニット214は、1つ以上のエントロピー符号化動作を実行して、エントロピー符号化データを生成し、エントロピー符号化データを含むビットストリームを出力する。
【0214】
図11は、図9に示すシステム100内のビデオ復号器14であってもよいビデオ復号器300の一例を示すブロック図である。
【0215】
ビデオ復号器300は、本開示の技法のいずれかまたは全てを実行するように構成されてもよい。図11の例では、ビデオ復号器300は、複数の機能コンポーネントを含む。本開示に記載される技法は、ビデオ復号器300の様々なコンポーネント間で共有され得る。いくつかの例において、プロセッサは、本開示に記載される技法のいずれかまたは全てを実行するように構成されてもよい。
【0216】
図11の例では、ビデオ復号器300は、エントロピー復号ユニット301と、動き補償ユニット302と、イントラ予測ユニット303と、逆量子化ユニット304と、逆変換ユニット305と、再構成ユニット306と、バッファ307を含む。ビデオ復号器300は、いくつかの例では、ビデオ符号化器200(例えば、図10)に関して記載された符号化パスと概ね逆の復号パスを実行してもよい。
【0217】
エントロピー復号ユニット301は、符号化されたビットストリームを検索してもよい。符号化されたビットストリームは、エントロピーコーディングされたビデオデータ(例えば、ビデオデータの符号化されたブロック)を含んでもよい。エントロピー復号ユニット301は、エントロピーコーディングされたビデオデータを復号してもよく、エントロピー復号されたビデオデータから、動き補償ユニット302は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、および他の動き情報を含む動き情報を決定してもよい。動き補償ユニット302は、例えば、AMVPおよびマージモードを実行することによって、そのような情報を決定してもよい。
【0218】
動き補償ユニット302は、動き補償されたブロックを生成することができ、場合により補間フィルタに基づいて補間を実行してもよい。サブピクセル精度で使用される補間フィルタのための識別子は、構文要素に含まれてもよい。
【0219】
動き補償ユニット302は、ビデオブロックの符号化中にビデオ符号化器20によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルに対する補間値を計算してもよい。動き補償ユニット302は、受信された構文情報に従ってビデオ符号化器200によって使用された補間フィルタを決定し、補間フィルタを使用して、予測ブロックを生成する。
【0220】
動き補償ユニット302は、構文情報のうちのいくつかを使用して、符号化されたビデオシーケンスのフレームおよび/またはスライスを符号化するために使用されるブロックのサイズ、符号化されたビデオシーケンスのピクチャの各マクロブロックがどのようにパーティショニングされるかを記載するパーティショニング情報、各パーティショニングがどのように符号化されるかを示すモード、各インター符号化ブロックに対する1つ以上の参照フレーム(および参照フレームリスト)、および符号化されたビデオシーケンスを復号するための他の情報を決定してもよい。
【0221】
イントラ予測ユニット303は、例えばビットストリームで受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成してもよい。逆量子化ユニット303は、ビットストリーム内で提供され、エントロピー復号ユニット301によって復号された量子化されたビデオブロック係数を逆量子化する、すなわち、量子化解除する。逆変換ユニット303は、逆変換を適用する。
【0222】
再構成ユニット306は、残差ブロックを、動き補償ユニット202またはイントラ予測ユニット303によって生成された対応する予測ブロックと合算して、復号されたブロックを形成してもよい。所望であれば、ブロック性アーチファクトを除去するために、復号されたブロックをフィルタリング処理するためにブロック解除フィルタを適用してもよい。次いで、復号されたビデオブロックはバッファ307に記憶され、バッファ307はまた、後続の動き補償/イントラ予測のための参照ブロックを提供し、ディスプレイデバイス上に提示するための復号されたビデオを生成する。
【0223】
図12は、本技術によるビデオ処理のための方法のフローチャート表現である。方法1200は、動作1210で、1つ以上のピクチャを含むビデオと、ビデオのビットストリーム表現との間の変換を実行することを含む。ビットストリーム表現は、各ピクチャが1つ以上のスライスとしてコーディングされることを指定するフォーマット規則に適合することが必要とされる。フォーマット規則は、ピクチャ内のサンプルが1つ以上のスライスのいずれによってもカバーされないことを禁止する。
【0224】
いくつかの実施態様において、ピクチャが、複数のサブピクチャを含み、フォーマット規則は、ピクチャのサブピクチャの複数のスライスが、サブピクチャの全体をカバーすることをさらに指定する。いくつかの実施形態において、ビットストリーム表現は、複数のスライスが矩形形状を有することを示す構文要素を含む。いくつかの実施態様において、スライスは、ピクチャの多くとも1つのサブピクチャとオーバラップする。いくつかの実施態様において、ビデオのタイルは、ピクチャの多くとも1つのサブピクチャとオーバラップする。いくつかの実施態様において、ビデオのブリックは、ピクチャの多くとも1つのサブピクチャとオーバラップする。
【0225】
図13は、本技術によるビデオ処理のための方法のフローチャート表現である。方法1300は、動作1310で、ビデオのピクチャとビデオのビットストリーム表現との間の変換に対して、ピクチャ内のタイルの数またはブリックの数に関連するルールに従って、ピクチャ内の1つ以上のスライスの情報をシグナリングする方式を決定することを含む。方法1300は、動作1320で、決定に基づいて変換を実行することを含む。
【0226】
いくつかの実施態様において、ピクチャの1つ以上のスライスの情報が、少なくとも1つ以上のスライスの数又は1つ以上のスライスの範囲を含む。いくつかの実施態様において、その規則は、ピクチャ内のブリックの数が1である場合に、ピクチャ内の1つ以上のスライスの情報がビットストリーム表現において除外されることを指定する。いくつかの実施態様において、ピクチャ内の1つ以上のスライスの数が、1であるとみなされる。いくつかの実施態様において、スライスが、ピクチャ全体をカバーする。いくつかの実施態様において、スライス当たりのブリックの数は、1であるとみなされる。
【0227】
図14は、本技術によるビデオ処理のための方法のフローチャート表現である。方法1400は、動作1410で、規則に従って、ビデオのピクチャとビデオのビットストリーム表現との間の変換を実行することを含む。ピクチャは、1つ以上のスライスとしてビットストリーム表現においてコーディングされる。この規則は、ピクチャのスライスのアドレスがビットストリーム表現に含まれるかどうか、またはどのように含まれるかを指定する。
【0228】
いくつかの実施形態において、規則は、スライスのアドレスのシグナリングが、スライスが矩形形状を有するかどうかのシグナリングから独立であることを指定する。いくつかの実施形態において、規則は、スライスのアドレスのシグナリングが、矩形形状としてのスライスの場合に、ピクチャ内のスライスの数に依存する。いくつかの実施形態において、スライス内のブリックの数をシグナリングするかどうかが、スライスのアドレスに少なくとも部分的に基づく。いくつかの実施形態において、スライス内のブリックの数をシグナリングするかどうかが、ピクチャ内のブリックの数にさらに基づく。
【0229】
図15は、本技術によるビデオ処理のための方法のフローチャート表現である。方法1500は、動作1510で、ビデオのピクチャとビデオのビットストリーム表現との間の変換に対して、ピクチャ内の複数のブリックにわたってサンプルにアクセスするフィルタ動作を示す構文要素が有効にされるかどうかが、ピクチャ内のタイルの数またはブリックの数に基づいてビットストリーム表現に含まれることを決定することを含む。方法1500は、動作1520で、決定に基づいて変換を実行することを含む。いくつかの実施形態において、単一要素は、ピクチャ内のブリックの数が2より小さい場合に、ビットストリーム表現において除外される。
【0230】
図16は、本技術によるビデオ処理のための方法のフローチャート表現である。方法1600は、動作1610で、ビデオのピクチャとビデオのビットストリーム表現との間の変換を実行することを含む。ピクチャが、1つ以上のサブピクチャを含み、1つ以上のサブピクチャの数が、ビットストリーム表現における構文要素によって示される。
【0231】
いくつかの実施態様において、サブピクチャの数が、Nとして表され、構文要素が、(N-d)の値を含み、Nおよびdが、整数である。いくつかの実施形態において、dが、0、1または2である。いくつかの実施形態において、(N-d)の値が、unaryコーディングスキームまたは切り詰められたunaryコーディングスキームを使用してコーディングされる。いくつかの実施形態において、(N-d)の値が、固定長コーディングスキームを使用して固定長を有するようにコーディングされる。いくつかの実施形態において、固定長が、8ビットである。いくつかの実施形態において、固定長が、x-dxとして表され、xおよびdxが、正の整数である。xが、適合規則に基づいて決定された最大値以下であり、dxが、0、1または2である。いくつかの実施形態において、x-dxが、シグナリングされる。いくつかの実施形態において、固定長が、ピクチャ内の基本ユニットブロックの数に基づいて決定される。いくつかの実施態様において、固定長が、xとして表され、基本ユニットブロックの数が、Mとして表され、x=Ceil(log2(M+d0))+d1であり、d0およびd1が、整数である。
【0232】
いくつかの実施形態において、(N-d)の最大値は、予め決定されている。いくつかの実施形態において、ピクチャ内の基本ユニットブロックの数が、Mとして表され、Mが、整数であり、N-dの最大値が、M-dである。いくつかの実施態様において、ピクチャ内の基本ユニットブロックの数が、Mとして表され、Mが、整数であり、N-dの最大値が、M-dである。いくつかの実施態様において、基本ユニットブロックが、スライスを含む。いくつかの実施態様において、基本ユニットブロックが、コーディングツリーユニットを含む。d0またはd1のうちの少なくとも1つが、-2、-1、0、1または2である。
【0233】
図17は、本技術によるビデオ処理のための方法のフローチャート表現である。方法1700は、動作1710で、1つ以上のサブピクチャを含むビデオのピクチャとビデオのビットストリーム表現との間の変換を実行することを含む。ビットストリーム表現は、サブピクチャに関する情報が、(1)サブピクチャの1つ以上のコーナー位置、または(2)サブピクチャの寸法のうちの少なくとも1つに基づいて、ビットストリーム表現に含まれることを指定するフォーマット規則に適合する。
【0234】
いくつかの実施形態において、フォーマット規則は、サブピクチャに関する情報が、ビットストリーム表現において、コーディングツリーブロックのサイズに関する情報の後に配置されることをさらに指定する。いくつかの実施形態において、サブピクチャの1つ以上のコーナー位置が、サブピクチャにおけるブロックの粒度を使用してビットストリーム表現においてシグナリングされる。いくつかの実施態様において、ブロックは、基本ユニットブロックまたはコーディングツリーブロックを含む。
【0235】
いくつかの実施形態において、ブロックのインデックスが、サブピクチャのコーナー位置を示すために使用される。いくつかの実施形態において、インデックスが、列インデックスまたは行インデックスを含む。いくつかの実施形態において、ブロックのインデックスがIとして表され、(I-d)の値が、ビットストリーム表現においてシグナリングされ、dが、0、1または2である。いくつかの実施形態において、dが、以前にコーディングされたサブピクチャのインデックスおよび別の整数d1に基づいて決定され、d1が、-1、0または1に等しい。いくつかの実施形態において、(I-d)の符号が、ビットストリーム表現においてシグナリングされる。
【0236】
いくつかの実施形態において、サブピクチャの位置がビットストリーム表現においてシグナリングされるかどうかは、サブピクチャのインデックスに基づく。いくつかの実施形態において、サブピクチャの位置がピクチャにおける最初のサブピクチャである場合、サブピクチャの位置が、ビットストリーム表現において省略される。いくつかの実施形態において、サブピクチャの左上の位置が、(0,0)であると決定される。いくつかの実施形態において、サブピクチャの位置がピクチャにおける最後のサブピクチャである場合、サブピクチャの位置が、ビットストリーム表現において省略される。いくつかの実施形態において、サブピクチャの左上の位置が、以前に変換されたサブピクチャに関する情報に基づいて決定される。いくつかの実施態様において、サブピクチャに関する情報が、サブピクチャの左上の位置及び寸法を含む。その情報が、切り詰められたunaryコーディングスキーム、切り詰められたbinaryコーディングスキーム、unaryコーディングスキーム、固定長コーディングスキーム、またはK-th EGコーディングスキームを使用してコーディングされる。
【0237】
いくつかの実施態様において、サブピクチャの1つ以上のコーナー位置が、サブピクチャにおけるブロックの粒度を使用してビットストリーム表現においてシグナリングされる。いくつかの実施形態において、寸法が、サブピクチャの幅または高さを含む。いくつかの実施形態において、寸法が、サブピクチャ内のブロックの列の数または行の数として表される。いくつかの実施形態において、ブロックのインデックスがIとして表され、(I-d)の値が、ビットストリーム表現においてシグナリングされ、dが、0、1または2である。いくつかの実施形態において、dが、以前にコーディングされたサブピクチャのインデックスおよび別の整数d1に基づいて決定され、d1が、-1、0または1に等しい。いくつかの実施形態において、(I-d)の符号が、ビットストリーム表現においてシグナリングされる。
【0238】
いくつかの実施形態において、(N-d)の値が、固定長コーディングスキームを使用して固定長を有するようにコーディングされる。いくつかの実施形態において、固定長が、8ビットである。いくつかの実施形態において、固定長が、x-dxとして表され、xおよびdxが、正の整数である。xが、適合規則に基づいて決定された最大値以下であり、dxが、0、1または2である。いくつかの実施形態において、固定長が、ピクチャ内の基本ユニットブロックの数に基づいて決定される。いくつかの実施態様において、固定長が、xとして表され、基本ユニットブロックの数が、Mとして表され、x=Ceil(log2(M+d0))+d1であり、d0およびd1が、整数である。d0またはd1のうちの少なくとも1つが、-2、-1、0、1または2である。いくつかの実施態様において、(I-d)が、ピクチャの全てのサブピクチャに対してシグナリングされる。いくつかの実施形態において、(I-d)が、ピクチャのサブピクチャのサブセットに対してシグナリングされる。(I-d)の値は、サブピクチャの数が1に等しい場合に、ビットストリーム表現において省略される。(I-d)の値は、サブピクチャがピクチャの最初のサブピクチャである場合に、ビットストリーム表現において省略される。(I-d)の値が、0であると決定される。(I-d)の値は、サブピクチャがピクチャの最後のサブピクチャである場合に、ビットストリーム表現において省略される。(I-d)の値は、以前に変換されたサブピクチャに関する情報に基づいて決定される。
【0239】
いくつかの実施形態において、単一の構文要素が、ビットストリーム表現に条件付きで含まれて、ピクチャの全てのサブピクチャがピクチャとして処理されるかどうかを示すいくつかの実施形態において、単一の構文要素が、ビットストリーム表現に条件付きで含まれて、ループフィルタが、ピクチャのサブピクチャにわたって全てのサブピクチャに対して適用可能かどうかを示す。いくつかの実施形態において、単一要素は、ピクチャのサブピクチャの数が1に等しい場合に、ビットストリーム表現において省略される。
【0240】
図18は、本技術によるビデオ処理のための方法のフローチャート表現である。方法1800は、動作1810で、参照ピクチャ再サンプリングツールが、ビデオのピクチャとビデオのビットストリーム表現との間の変換に対して、ピクチャが1つ以上のサブピクチャに分割されることにより有効にされると決定することを含む。方法1800はまた、動作1820で、決定に基づいて変換を実行することを含む。
【0241】
いくつかの実施形態において、参照ピクチャ再サンプリングコーディングツールにおいて使用されるスケーリング比が、比のセットに基づいて決定される。いくつかの実施形態において、比のセットが、{1:1,1:2}、{1:1,2:1}、{1:1,1:2,1:4}、{1:1,1:2,4:1}、{1:1,2:1,1:4}、{1:1,2:1,4:1}、{1:1,1:2,1:4,1:8}、{1:1,1:2,1:4,8:1}、{1:1,1:2,4:1,1:8}、{1:1,1:2,4:1,8:1}、{1:1,2:1,1:4,1:8}、{1:1,2:1,1:4,8:1}、{1:1,2:1,4:1,1:8}、または{1:1,2:1,4:1,8:1}のうちの少なくとも1つを含む。いくつかの実施態様において、ピクチャの解像度が第2のピクチャの解像度と異なる場合に、ピクチャのコーディングツリーブロックのサイズが、第2のピクチャのコーディングツリーブロックのサイズと異なる。いくつかの実施態様において、ピクチャのサブピクチャが、SAW×SAHの寸法を有し、ビデオの第2のピクチャのサブピクチャが、SBW×SBHの寸法を有する。ピクチャと第2のピクチャとの間のスケーリング比は、水平方向および垂直方向に沿ったRwおよびRhである。SAW/SBWまたはSBW/SAWがRwであり、SAH/SBHまたはSBH/SAHがRhである。
【0242】
図19は、本技術によるビデオ処理のための方法のフローチャート表現である。方法1900は、動作1910で、1つ以上のスライスを含む1つ以上のサブピクチャを含むビデオピクチャとビデオのビットストリーム表現との間の変換を実行することを含む。ビットストリーム表現は、サブピクチャおよびスライスに対して、サブピクチャを識別するインデックスがスライスのヘッダに含まれる場合に、スライスに対するアドレスフィールドがサブピクチャ内のスライスのアドレスを示すことを指定するフォーマット規則に適合する。
【0243】
いくつかの実施形態において、変換は、ビットストリーム表現からビデオを生成する。いくつかの実施形態において、変換は、ビデオからビットストリーム表現を生成する。
【0244】
開示された技術のいくつかの実施形態は、ビデオ処理ツールまたはモードを有効にする判定または決定を行うことを含む。一例では、ビデオ処理ツールまたはモードが有効にされるときに、符号化器は、ビデオのブロックの処理においてツールまたはモードを使用または実装するが、必ずしもツールまたはモードの使用に基づいて結果として生じるビットストリームを修正しないことがある。すなわち、ビデオのブロックからビデオのビットストリーム表現への変換は、判定または決定に基づいて有効にされるときに、ビデオ処理ツールまたはモードを使用する。別の例では、ビデオ処理ツールまたはモードが有効にされるときに、復号器は、ビットストリームがビデオ処理ツールまたはモードに基づいて修正されたことを知って、ビットストリームを処理する。すなわち、ビデオのビットストリーム表現からビデオのブロックへの変換は、判定または決定に基づいて有効にされたビデオ処理ツールまたはモードを使用して実行される。
【0245】
開示された技術のいくつかの実施形態は、ビデオ処理ツールまたはモードを無効にする判定または決定を行うことを含む。一例では、ビデオ処理ツールまたはモードが無効にされるときに、符号化器は、ビデオのブロックをビデオのビットストリーム表現に変換する際に、ツールまたはモードを使用しない。別の例では、ビデオ処理ツールまたはモードが無効にされるときに、復号器は、ビットストリームが、判定または決定に基づいて有効にされたビデオ処理ツールまたはモードを使用して修正されていないことを知って、ビットストリームを処理する。
【0246】
開示された、および他の解決策、例、実施形態、モジュールならびにこの文書に記載された機能動作は、この文書に開示される構造およびそれらの構造的等価物を含む、デジタル電子回路、もしくはコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つ以上の組み合わせにおいて実装することができる。開示された、および他の実施形態は、1つ以上のコンピュータプログラム製品、例えば、データ処理装置による、またはデータ処理装置の動作を制御するための、コンピュータ可読媒体に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。コンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝搬信号に影響を与える組成物、またはそれらのうちの1つ以上の組み合わせとすることができる。用語「データ処理装置」は、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するための全ての装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つ以上の組み合わせを構成するコードを含むことができる。伝搬信号は、人工的に生成された信号、例えば、好適な受信機装置に送信するための情報を符号化するために生成される機械生成電気信号、光信号、または電磁信号である。
【0247】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイル型またはインタープリタ型言語を含む、任意の形式のプログラミング言語で書くことができ、それは、スタンドアロン・プログラムとして、またはコンピューティング環境における使用に好適なモジュール、コンポーネント、サブルーチン、または他のユニットとしてのものを含む、任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応しない。プログラムは、他のプログラムまたはデータを保持するファイルの一部分(例えば、マークアップ言語文書に記憶される1つ以上のスクリプト)、問題のプログラム専用の単一ファイル、または複数の調整されたファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部分を記憶するファイル)に記憶することができる。コンピュータプログラムは、1つのコンピュータまたは1つのサイトに配置されるか、または複数のサイトに分散され、通信ネットワークによって相互接続される複数のコンピュータで実行されるように展開することができる。
【0248】
本文書に記載されるプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによって機能を実行するために、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローはまた、特別目的論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することができ、装置は、これらとして実装することができる。
【0249】
コンピュータプログラムの実行に好適なプロセッサは、例として、汎用および専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般的に、プロセッサは、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信するだろう。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つ以上のメモリデバイスである。一般的に、コンピュータはまた、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気ディスク、光磁気ディスク、または光ディスクからデータを受信したり、これらにデータを転送したり、またはその両方を行うことを含むか、それらを行うように動作可能に結合されるだろう。しかし、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、EPROM、EEPROM、およびフラッシュメモリデバイスである半導体メモリデバイス、例えば、内部ハードディスクまたはリムーバブルディスクである磁気ディスク、光磁気ディスク、ならびにCD ROMディスクおよびDVD-ROMディスクを含む、全ての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、特別目的論理回路によって補足されるか、またはこれに組み込むことができる。
【0250】
この特許文書は多くの詳細が含むが、これらは、いずれかの主題の範囲または請求項に記載され得るものに対する限定ではなく、特定の技法の特定の実施形態に固有であり得る特徴の記載として解釈されるべきである。別々の実施形態のコンテキストでこの特許文書に記載されている特定の特徴はまた、単一の実施形態で組み合わせて実装することができる。逆に、単一の実施形態のコンテキストで記載される様々な特徴はまた、複数の実施形態において別々に、または任意の好適なサブコンビネーションで実装することができる。さらに、特徴は、特定の組み合わせにおいて作用するものとして上述され、最初にそれ自体請求項に記載されてもよいが、請求項に記載された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから削除することができ、請求項に記載された組み合わせは、サブコンビネーションまたはサブコンビネーションの変形を対象としてもよい。
【0251】
同様に、図面には特定の順序で動作が示されているが、これは、所望の結果を達成するために、このような動作を特定の順序でまたは順次に実行すること、または、示された全ての動作を実行することを要求するものとして理解されるべきではない。さらに、この特許文書に記載されている実施形態における様々なシステムコンポーネントの分離は、全ての実施形態においてこのような分離を必要とするものとして理解されるべきではない。
【0252】
少数の実装および例が記載されているに過ぎず、この特許文書に記載され、示されているものに基づいて、他の実装、拡張および変形を行うことができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19