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

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

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

特許7495509映像コーディングにおけるスライス及びタイル分割
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-27
(45)【発行日】2024-06-04
(54)【発明の名称】映像コーディングにおけるスライス及びタイル分割
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240528BHJP
【FI】
H04N19/70
【請求項の数】 10
(21)【出願番号】P 2022549960
(86)(22)【出願日】2021-02-22
(65)【公表番号】
(43)【公表日】2023-04-06
(86)【国際出願番号】 CN2021077215
(87)【国際公開番号】W WO2021164782
(87)【国際公開日】2021-08-26
【審査請求日】2022-08-29
(31)【優先権主張番号】PCT/CN2020/076158
(32)【優先日】2020-02-21
(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)【発明者】
【氏名】ファン クイ
(72)【発明者】
【氏名】シュー ジジョン
(72)【発明者】
【氏名】リウ ホンビン
【審査官】岩井 健二
(56)【参考文献】
【文献】Bae-Keun Lee, and Dongsan Jun,AHG12: Singalling of rectangular slices,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-Q0228,17th Meeting: Brussels, BE,2020年01月,pp.1-5
【文献】Seethal Paluri, Hendry, and Seung Hwan Kim,[AHG12]: Misc improvements to tile and rectangular slice signalling,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-Q0244-v2,17th Meeting: Brussels, BE,2020年01月,pp.1-7
【文献】Benjamin Bross, Jianle Chen, Shan Liu, and Ye-Kui Wang,Versatile Video Coding (Draft 8),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-Q2001 (version 13),17th Meeting: Brussels, BE,2020年02月09日,pp.21-23,28-31,43-45,110-117
【文献】Kai Zhang, et al.,AHG12: A direct signalling method of rectangular slice partitioning,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-R0241,18th Meeting: by teleconference,2020年04月,pp.1-6
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
映像ピクチャを含む映像と前記映像のビットストリームとの間の変換のために、スキャン処理を前記映像ピクチャに適用することを決定することと、前記映像ピクチャは1つ以上のタイル、1つ以上のスライス、および複数のコーディングツリーユニットに分割され、
前記スキャン処理において、第1のスライスに対応する第1の構文要素の値に基づいて、コーディングツリーユニット(CTU)の単位で前記第1のスライスを含む映像タイル内の第1のスライスの高さを前記ビットストリームに導出するか又は含めるかを決定することと、
前記決定に基づいて前記変換を実行することと、を含む映像ピクチャを処理する方法であって、
前記第1の構文要素は、条件のセットが満たされることに呼応して前記ビットストリーム内のピクチャパラメータセットに含まれ、
前記条件のセットは、前記第1のスライスが矩形モードであること、タイル列の単位での前記第1のスライスの幅と1との差を規定する構文要素の値が0に等しいこと、および、タイル行の単位での前記第1のスライスの高さと1との差を規定する構文要素の値が0に等しいことを含み、
コーディングツリーユニットの単位での前記第1のスライスを含む前記映像タイル内の前記第1のスライスの前記高さを、前記第1の構文要素の前記値が第1の値であることに呼応して、前記映像に対して導出前記第1の値は0に等しい、映像データを処理する方法。
【請求項2】
前記第1の構文要素が前記ビットストリーム内に存在しない場合、前記第1の構文要素は前記第1の値を有すると推測される、請求項1に記載の方法。
【請求項3】
前記第1の構文要素の前記値が、前記第1の値である場合、コーディングツリーユニットの単位での前記第1のスライスを含む前記映像タイル内の前記第1のスライスの前記高さは、RowHeight[TileIdx/NumTileColumns]に等しく、
ここで、RowHeight[j]は、コーディングツリーブロックの単位での第j番目のタイル行の高さを規定し、
TileIdxは、前記第1のスライス内の第1のCTUを含むタイルのタイルインデックスを規定し、
NumTileColumnsは、タイル列の数を規定する、請求項1または2に記載の方法。
【請求項4】
前記第1の構文要素がNの値を有し、Nが前記第1の値と異なる場合、CTU行の単位での前記第1のスライスを含む前記映像タイル内のスライスの高さの値を規定するN個の第2の構文要素が、前記ビットストリーム内の前記ピクチャパラメータセットに含まれる、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記映像ピクチャ内の矩形スライスの数を示す構文要素が0に等しい場合、または、構文要素に1を加えたものがタイル列の単位での前記第1のスライスの幅が0に等しいことを規定し、かつ構文要素に1を加えたものがタイル行の単位での前記第1のスライスの高さが0に等しいことを規定する場合、前記スキャン処理を前記映像ピクチャに適用する、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記変換は、前記映像を前記ビットストリームに符号化することを含む、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記変換は、前記映像を前記ビットストリームから復号することを含む、請求項1~5のいずれか1項に記載の方法。
【請求項8】
プロセッサと命令を記憶する非一時的な記憶装置とを備えた、映像データを処理するための装置であって、前記プロセッサによる実行時に、前記命令は前記プロセッサに対して、
映像ピクチャを含む映像と前記映像のビットストリームとの間の変換のために、スキャン処理を前記映像ピクチャに適用することを決定することと、前記映像ピクチャは1つ以上のタイル、1つ以上のスライス、および複数のコーディングツリーユニットに分割され、
前記スキャン処理において、第1のスライスに対応する第1の構文要素の値に基づいて、コーディングツリーユニット(CTU)の単位で前記第1のスライスを含む映像タイル内の第1のスライスの高さを前記ビットストリームに導出するか又は含めるかを決定することと、
前記決定に基づいて前記変換を行うことと、を行わせ、
前記第1の構文要素は、条件のセットが満たされることに呼応して前記ビットストリーム内のピクチャパラメータセットに含まれ、
前記条件のセットは、前記第1のスライスが矩形モードであること、タイル列の単位での前記第1のスライスの幅と1との差を規定する構文要素の値が0に等しいこと、および、タイル行の単位での前記第1のスライスの高さと1との差を規定する構文要素の値が0に等しいことを含み、
コーディングツリーユニットの単位での前記第1のスライスを含む前記映像タイル内の前記第1のスライスの前記高さを、前記第1の構文要素の前記値が第1の値であることに呼応して、前記映像に対して導出前記第1の値は0に等しい、映像データを処理するための装置。
【請求項9】
命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記命令は、プロセッサに対して、
映像ピクチャを含む映像と前記映像のビットストリームとの間の変換のために、スキャン処理を前記映像ピクチャに適用することを決定することと、前記映像ピクチャは1つ以上のタイル、1つ以上のスライス、および複数のコーディングツリーユニットに分割され、
前記スキャン処理において、第1のスライスに対応する第1の構文要素の値に基づいて、コーディングツリーユニット(CTU)の単位で前記第1のスライスを含む映像タイル内の第1のスライスの高さを前記ビットストリームに導出するか又は含めるかを決定することと、
前記決定に基づいて前記変換を行うことと、を行わせ、
前記第1の構文要素は、条件のセットが満たされることに呼応して前記ビットストリーム内のピクチャパラメータセットに含まれ、
前記条件のセットは、前記第1のスライスが矩形モードであること、タイル列の単位での前記第1のスライスの幅と1との差を規定する構文要素の値が0に等しいこと、および、タイル行の単位での前記第1のスライスの高さと1との差を規定する構文要素の値が0に等しいことを含み、
コーディングツリーユニットの単位での前記第1のスライスを含む前記映像タイル内の前記第1のスライスの前記高さを、前記第1の構文要素の前記値が第1の値であることに呼応して、前記映像に対して導出前記第1の値は0に等しい、非一時的なコンピュータ可読記憶媒体。
【請求項10】
映像のビットストリームを記憶する方法であって、
映像ピクチャを含む映像と前記映像のビットストリームとの間の変換のために、スキャン処理を前記映像ピクチャに適用することを決定することと、前記映像ピクチャは1つ以上のタイル、1つ以上のスライス、および複数のコーディングツリーユニットに分割され、
前記スキャン処理において、第1のスライスに対応する第1の構文要素の値に基づいて、コーディングツリーユニット(CTU)の単位で前記第1のスライスを含む映像タイル内の第1のスライスの高さを前記ビットストリームに導出するか又は含めるかを決定することと、
前記決定に基づいて前記ビットストリームを生成することと、
非一時的なコンピュータ可読記録媒体に前記ビットストリームを記憶することと、を含み、
前記第1の構文要素は、条件のセットが満たされることに呼応して前記ビットストリーム内のピクチャパラメータセットに含まれ、
前記条件のセットは、前記第1のスライスが矩形モードであること、タイル列の単位での前記第1のスライスの幅と1との差を規定する構文要素の値が0に等しいこと、および、タイル行の単位での前記第1のスライスの高さと1との差を規定する構文要素の値が0に等しいことを含み、
コーディングツリーユニットの単位での前記第1のスライスを含む前記映像タイル内の前記第1のスライスの前記高さを、前記第1の構文要素の前記値が第1の値であることに呼応して、前記映像に対して導出前記第1の値は0に等しい、方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2020年2月21日出願の国際特許出願第PCT/CN2020/076158号の優先権と利益を主張する、2021年2月22日出願の国際特許出願第PCT/CN2021/077215号に基づく。前述のすべての特許出願は、その全体が参照により本明細書に組み込まれる。
【0002】
この特許明細書は、画像および映像の符号化および復号に関する。
【背景技術】
【0003】
デジタル映像は、インターネット及び他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像を受信及び表示することが可能である接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
本願は、コーディングされた表現の復号に有用な制御情報を用いて、映像のコーディングされた表現を処理するための、映像エンコーダ及びデコーダに用いることができる技術を開示する。
【0005】
1つの例示的な態様において、映像処理方法が開示される。この方法は、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のスライスを備え、この規則は、少なくとも1つの条件が満たされたことに応答して、2つの矩形スライスのタイルインデックスの差を示す構文要素がビットストリームに存在することを規定する。2つの矩形スライスの第1矩形スライスを、i番目の矩形スライスとして表し、ここで、iは整数である。
【0006】
別の例示的な態様において、映像処理方法が開示される。この方法は、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のサブピクチャを備え、各サブピクチャは、1つ以上の矩形スライスを備える。この規則は、各サブピクチャにおける矩形スライスごとにサブピクチャレベルでのスライスインデックスを導出し、各スライスにおけるコーディングツリーユニットの数を判定することを規定する。
【0007】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のサブピクチャを備える映像の映像ピクチャとこの映像のビットストリームとの変換のために、サブピクチャにおけるスライスのサブピクチャレベルスライスインデックスとこのスライスのピクチャレベルスライスインデックスとのマッピング関係を決定することを含む。この方法は、決定に基づいて変換を行うことをも含む。
【0008】
別の例示的な態様において、映像処理方法が開示される。この方法は、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のサブピクチャを備え、この規則は、映像の1つのタイルがこの映像ピクチャの1つのサブピクチャ内に完全に位置することを規定する。
【0009】
別の例示的な態様において、映像処理方法が開示される。この方法は、映像の映像ピクチャとこの映像のビットストリームとの変換を行うことを含み、この映像ピクチャは、1つ以上のサブピクチャを備える。このビットストリームは、ピクチャに関連する構文構造にピクチャを分割する情報が含まれることを規定するフォーマット規則に準拠する。
【0010】
別の例示的な態様において、映像処理方法が開示される。この方法は、非矩形形状を有する1つ以上のスライスを備える映像の映像ピクチャとこの映像のビットストリームとの変換のために、この映像ピクチャのスライス分割情報を決定することを含む。この方法は、決定に基づいて変換を行うことをも含む。
【0011】
別の例示的な態様において、映像処理方法が開示される。この方法は、規則に従って、1つ以上のスライスを備える映像の映像ピクチャとこの映像のビットストリームとを変換することを含む。この規則は、映像ピクチャにおけるスライス数が、映像ピクチャに矩形分割を適用するか又は非矩形分割を適用するかに基づいて決定される最小スライス数以上であることを規定する。
【0012】
別の例示的な態様において、映像処理方法が開示される。この方法は、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のスライスを備える。映像ピクチャのスライス分割情報が映像ユニットの構文構造に含まれている場合、スライスが、左上の位置とスライスの寸法とで表される。
【0013】
別の例示的な態様において、映像処理方法が開示される。この方法は、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のサブピクチャを備え、各サブピクチャは、1つ以上のスライスを備える。この規則は、各サブピクチャにおける1つ以上のスライスの分割情報がビットストリームに存在する方法を規定する。
【0014】
別の例示的な態様において、映像処理方法が開示される。この方法は、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上の矩形スライスを備え、各スライスは、1つ以上のタイルを備える。この規則は、i番目の矩形スライスにおける第1タイルの第1タイルインデックスと、(i+1)番目の矩形スライスにおける第1タイルの第2タイルインデックスとの差をビットストリームにおいて信号通知しないことを規定する。
【0015】
別の例示的な態様において、映像処理方法が開示される。この方法は、映像の映像ピクチャと映像のビットストリームとの変換のために、映像ピクチャにおけるタイルの列数及びタイルの行数を導出するための情報が、映像ピクチャの寸法とコーディングツリーブロックの寸法との間の関係に基づいて、ビットストリームに条件付きで含まれることを判定することを含む。この方法は、決定に基づいて変換を行うことをも含む。
【0016】
別の例示的な態様において、映像処理方法が開示される。この方法は、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のサブピクチャを備える。このビットストリームは、フォーマット規則に準拠し、ビットストリーム中に、1つのスライスを含むサブピクチャのサブピクチャ識別子を規定する変数が存在する場合、この構文要素に対応する第2変数がこの変数に等しいという条件を満たす構文要素が1つしか存在しないことを規定する。
【0017】
別の例示的な態様において、映像処理方法が開示される。この方法は、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のサブピクチャを備える。ビットストリームにおいて非矩形分割が適用されるか、又はサブピクチャ情報が省略される場合、1つのスライスにおける2つのタイルは異なるアドレスを有する。
【0018】
別の例示的な態様において、映像処理方法が開示される。この方法は、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のタイルを備える。この規則は、1つ以上のタイルが均一な間隔及び不均一な間隔の両方で編成される場合、1つの構文要素を使用してタイルレイアウトのタイプを示すことを規定する。
【0019】
別の例示的な態様において、映像処理方法が開示される。この方法は、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この規則は、変換においてマージ推定領域(Merge Estimation Region、MER)のサイズを処理するかどうか、又はどのように処理するかを、最小許容コーディングブロックサイズに依存することを規定する。
【0020】
別の例示的な態様において、映像処理方法が開示される。この方法は、規則に従って、少なくとも1つの映像タイルを備える映像とこの映像のビットストリームとを変換することを含む。この規則は、コーディングツリーユニットの単位で映像タイルにおけるスライスの高さを、そのスライスを含む映像タイルのスライスについて明確に提供されるスライス高さの数を示すビットストリーム中の第1構文要素の値に基づいて導出することを規定する。
【0021】
別の例示的な態様において、映像処理方法が開示される。この方法は、規則に従って、1つ以上のスライスを含む映像タイルを備える映像ピクチャを備える映像と、この映像のビットストリームとを変換することを含む。この規則は、ピクチャにおける第1スライスを含むタイルにおける第2スライスがコーディングツリーユニット単位で表される高さを有することを規定する。第1スライスは、第1スライスインデックスを有し、第2スライスは、第1スライスインデックスと、映像タイルにおいて明確に提供されるスライス高さの数に基づいて判定される第2スライスインデックスを有する。第1スライスインデックス及び第2スライスインデックスに基づいて、第2スライスの高さを決定する。
【0022】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のタイルを含む映像ピクチャを備える映像と、この映像のビットストリームとを変換することを含む。この映像ピクチャは、ピクチャパラメータセットを指し、このピクチャパラメータセットは、このピクチャパラメータセットがN個のタイル列の列幅のリストを含むことを規定するフォーマット規則に準拠し、ここで、Nは整数である。映像ピクチャには、(N-1)番目のタイル列が存在し、(N-1)番目のタイル列の幅は、明確に含まれるタイル列の幅に1つのコーディングツリーブロックを加えたリストにおける(N-1)番目のエントリに等しい。
【0023】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上のタイルを含む映像ピクチャを備える映像と、この映像のビットストリームとを変換することを含む。この映像ピクチャは、ピクチャパラメータセットを指し、このピクチャパラメータセットは、このピクチャパラメータセットがN個のタイル行の行高さのリストを含むことを規定するフォーマット規則に準拠し、ここで、Nは整数である。映像ピクチャには、(N-1)番目のタイル行が存在し、この(N-1)番目のタイル行の高さは、明確に含まれるタイル行の高さに1つのコーディングツリーブロックを加えたリストにおける(N-1)番目のエントリに等しい。
【0024】
別の例示的な態様において、映像処理方法が開示される。この方法は、1つ以上の映像ピクチャを含む映像と映像のコーディングされた表現との変換を行うことを含み、各映像ピクチャは、1つ以上のスライスを含む1つ以上のサブピクチャを含み、コーディングされた表現はフォーマット規則に準拠し、フォーマット規則は、映像ピクチャのために矩形スライスモードが有効化されている場合、映像ピクチャにおける各サブピクチャの各スライスのピクチャレベルスライスインデックスが、コーディングされた表現における明確な信号通知なしに導出されることを規定し、且つ各スライスにおけるコーディングツリーユニットの数がピクチャレベルスライスインデックスから導出可能であることを規定する。
【0025】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、1つ以上の映像ピクチャを含む映像と映像のコーディングされた表現との変換を行うことを含み、各映像ピクチャは、1つ以上のスライスを含む1つ以上のサブピクチャを含み、コーディングされた表現はフォーマット規則に準拠し、フォーマット規則は、コーディングされた表現におけるサブピクチャレベルスライスインデックスを信号通知せずに、コーディングされた表現における情報に基づいてサブピクチャレベルスライスインデックスを導出可能であることを規定する。
【0026】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、1つ以上の映像ピクチャを含む映像であって、各映像ピクチャが1つ以上のサブピクチャ及び/又は1つ以上のタイルを含む映像と、フォーマット規則に準拠したコーディングされた表現との間で、制約規則に準拠した変換を行うことを含む。
【0027】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、1つ以上の映像ピクチャを含む映像間で変換を行うことを含み、各映像ピクチャは、1つ以上のタイル及び/又は1つ以上のスライスを含み、コーディングされた表現は、フォーマット規則に準拠し、フォーマット規則は、映像ピクチャレベルのフィールドが、映像ピクチャにおけるスライス及び/又はタイルの分割に関する情報を搬送することを規定する。
【0028】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、1つ以上のピクチャを含む映像とこの映像のコーディングされた表現とを変換することを含み、この変換は、1つの映像ピクチャを分割する最小スライス数が、この映像ピクチャを分割するために矩形分割を使用するかどうかの関数であるという分割規則に従う。
【0029】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、映像の映像領域の映像スライスと映像のコーディングされた表現との変換を行うことを含み、コーディングされた表現はフォーマット規則に準拠し、フォーマット規則は、コーディングされた表現が映像スライスの左上位置に基づいて映像スライスを信号通知することを規定し、フォーマット規則は、コーディングされた表現が映像ユニットレベルで信号通知される分割情報における映像スライスの高さ及び/又は幅を信号通知することを規定する。
【0030】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、映像ピクチャを含む映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、フォーマット規則に準拠し、このフォーマット規則は、矩形スライスにおける第1タイルのタイルインデックスと、次の矩形スライスにおける第1タイルのタイルインデックスとの間の異なる信号通知を省略することを規定する。
【0031】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、フォーマット規則に準拠し、このフォーマット規則は、映像ピクチャの幅とコーディングツリーユニットのサイズとの関係によって、この映像ピクチャにおけるタイルの列又は行の数を導出するために使用される情報の信号通知を制御することを規定する。
【0032】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、1つ以上の映像ピクチャを含む映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、フォーマット規則に準拠し、このフォーマット規則は、均一な間隔のタイル及び不均一な間隔のタイルを含む映像ピクチャのためのコーディングされた表現にタイルレイアウト情報が含まれることを規定する。
【0033】
さらに別の例示的な態様において、映像エンコーダ装置が開示される。この映像エンコーダは、上述した方法を実装するように構成されたプロセッサを備える。
【0034】
さらに別の例示的な態様において、映像デコーダ装置が開示される。この映像デコーダは、上述した方法を実装するように構成されたプロセッサを備える。
【0035】
さらに別の例示的な態様では、コードが記憶されたコンピュータ可読媒体が開示される。このコードは、本明細書に記載の方法の1つをプロセッサが実行可能なコードの形式で実施する。
【0036】
これらの及び他の特徴は、本文書全体にわたって説明される。
【図面の簡単な説明】
【0037】
図1】ピクチャのラスタスキャンスライス区分の例を示し、ピクチャは、12個のタイルと3個のラスタスキャンスライスとに分割される。
図2】ピクチャを矩形スライス区分の例を示し、ピクチャは、24個のタイル(6個のタイル列および4個のタイル行)と9個の矩形スライスとに分割される。
図3】タイルおよび矩形のスライスに分割されたピクチャの例を示し、このピクチャは、4つのタイル(2つのタイル列および2つのタイル行)と4つの矩形スライスとに分割される。
図4】15個のタイル、24個のスライス、及び24個のサブピクチャに分割されたピクチャを示す。
図5】ピクチャにおける4:2:2の輝度及びクロマサンプルの名目上の垂直及び水平の位置を示す。
図6】ピクチャ分割の例を示す。青い線はタイルの境界を表し、緑い線はスライスの境界を表し、赤い破線はサブピクチャの境界を表す。図には、4つのスライスのピクチャレベルインデックス、復号順序インデックス、サブピクチャレベルインデックス、及びサブピクチャ及びタイルのインデックスが示されている。
図7】映像処理システムの例を示すブロック図である。
図8】映像処理装置のブロック図である。
図9】映像処理方法の一例を示すフローチャートである。
図10】本開示のいくつかの実施形態による映像コーディングシステムを示すブロック図である。
図11】本発明のいくつかの実施形態によるエンコーダを示すブロック図である。
図12】本発明のいくつかの実施形態によるデコーダを示すブロック図である。
図13】本技術にしたがった映像処理方法を示すフローチャートである。
図14】本技術にしたがった別の映像処理方法を示すフローチャートである。
図15】本技術にしたがった別の映像処理方法を示すフローチャートである。
図16】本技術にしたがった別の映像処理方法を示すフローチャートである。
図17】本技術にしたがった別の映像処理方法を示すフローチャートである。
図18】本技術にしたがった別の映像処理方法を示すフローチャートである。
図19】本技術にしたがった別の映像処理方法を示すフローチャートである。
図20】本技術にしたがった別の映像処理方法を示すフローチャートである。
図21】本技術にしたがった別の映像処理方法を示すフローチャートである。
図22】本技術にしたがった別の映像処理方法を示すフローチャートである。
図23】本技術にしたがった別の映像処理方法を示すフローチャートである。
図24】本技術にしたがった別の映像処理方法を示すフローチャートである。
図25】本技術にしたがった別の映像処理方法を示すフローチャートである。
図26】本技術にしたがった別の映像処理方法を示すフローチャートである。
図27】本技術にしたがった別の映像処理方法を示すフローチャートである。
図28】本技術にしたがった別の映像処理方法を示すフローチャートである。
図29】本技術にしたがった別の映像処理方法を示すフローチャートである。
図30】本技術にしたがった別の映像処理方法を示すフローチャートである。
図31】本技術にしたがった別の映像処理方法を示すフローチャートである。
【発明を実施するための形態】
【0038】
本明細書では、理解を容易にするために章の見出しを使用しており、その技術および各章に記載された実施形態の適用可能性をその章のみに限定するものではない。さらに、H.266という用語は、ある説明において、理解を容易にするためだけに用いられ、開示される技術の範囲を限定するために用いられたものではない。このように、本明細書で説明される技術は、他の映像コーデックプロトコル及び設計にも適用可能である。
【0039】
1. 概要
本明細書は、映像コーディング技術に関する。具体的には、サブピクチャ、タイル、及びスライスの信号通知に関する。この考えは、個々に又は様々な組み合わせで、マルチレイヤ映像コーディング、例えば、現在開発されているVersatile Video Coding(VVC)をサポートする任意の映像コーディング標準又は非標準映像コーデックに適用されてもよい。
【0040】
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) ピクチャパラメータセット
PTL (Profile,Tier and Level) プロファイル、ティアおよびレベル
PU (Picture Unit) ピクチャユニット
RBSP (Raw Byte Sequence Payload) 生バイトシーケンスペイロード
SEI (Supplemental Enhancement Information) 補足強化情報
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) 汎用映像コーディング
【0041】
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会議において、新しい映像コーディング規格を汎用映像コーディング(Versatile Video Coding:VVC)と正式に命名し、その時、第1版のVVCテストモデル(VTM)をリリースした。VVCの標準化に寄与する努力が続けられているので、すべてのJVET会議において、VVC標準に新しいコーディング技術が採用されている。毎回の会議の後、VVC作業草案およびテストモデルVTMを更新する。VVCプロジェクトは、現在、2020年7月の会合における技術完成(FDIS)を目指している。
【0042】
3.1. HEVCにおけるピクチャ分割スキーム
HEVCには、正規のスライス、依存性のあるスライス、タイル、WPP(Wavefront Parallel Processing)という4つの異なる画像分割スキームがあり、これらを適用することで、最大転送ユニット(MTU)サイズのマッチング、並列処理、エンドツーエンドの遅延の低減が可能になる。
【0043】
正規のスライスは、H.264/AVCと同様である。各正規のスライスは、それ自体のNALユニットにカプセル化され、スライス境界にわたるインピクチャ予測(イントラサンプル予測、動き情報予測、コーディングモード予測)およびエントロピーコーディング依存性は無効化される。このように、1つの正規のスライスは、同じピクチャ内の他の正規のスライスとは独立して再構成することができる(しかし、ループフィルタリング動作のために依然として相互依存性が残っている場合がある)。
【0044】
正規のスライスは、並列化に使用できる唯一のツールであり、H.264/AVCでもほぼ同じ形式で使用できる。正規のスライスに基づく並列化は、プロセッサ間通信またはコア間通信をあまり必要としない(予測コーディングされたピクチャを復号するときの動き補償のためにプロセッサ間またはコア間データ共有を除いて、通常、ピクチャ内予測のため、プロセッサ間またはコア間データ共有よりもはるかに重い)。しかしながら、同じ理由で、正規のスライスを使用すると、スライスヘッダのビットコストおよびスライス境界にわたる予測が欠如していることに起因して、コーディングのオーバーヘッドが大きくなる可能性がある。さらに、レギュラースライスは(後述の他のツールとは対照的に)、レギュラースライスのピクチャ内独立性および各レギュラースライスがそれ自体のNALユニットにカプセル化されることに起因して、MTUサイズ要件に適応するようにビットストリームを分割するための鍵となるメカニズムとしても機能する。多くの場合、並列化の目標およびMTUサイズマッチングの目標は、画像におけるスライスレイアウトに矛盾する要求を課す。このような状況を実現したことにより、以下のような並列化ツールが開発された。
【0045】
従属スライスは、ショートスライスヘッダを有し、ピクチャ内予測を一切中断することなく、ツリーブロック境界でビットストリームを区分することを可能にする。基本的に、従属スライスは、正規のスライスを複数のNALユニットに断片化し、正規のスライス全体の符号化が完了する前に正規のスライスの一部を送出することを可能にすることによって、エンドツーエンド遅延を低減する。
【0046】
WPPにおいて、ピクチャは、単一行のコーディングツリーブロック(CTB)に分割される。エントロピー復号および予測は、他の分割におけるCTBからのデータを使用することを許可される。CTB行の並列復号によって並列処理が可能であり、1つのCTB行の復号の開始が2つのCTBだけ遅延され、それによって、対象のCTBが復号される前に、対象のCTBの右上のCTBに関するデータが確実に利用可能になる。この互い違いのスタート(グラフで表される場合、波面のように見える)を使用することで、ピクチャがCTB行を含む数までの処理装置/コアを用いて並列化することが可能である。1つのピクチャ内の近傍のツリーブロック行間のピクチャ内予測が許可されるので、ピクチャ内予測を可能にするために必要な処理装置間/コア間通信は十分となり得る。WPP分割は、適用されない場合と比較して、追加のNALユニットの生成をもたらさず、従って、WPPは、MTUサイズマッチングのためのツールではない。しかし、MTUサイズのマッチングが必要な場合、一定のコーディングオーバーヘッドを伴って、WPPで正規のスライスを使用することができる。
【0047】
タイルは、ピクチャをタイルの列および行に分割する水平および垂直境界を規定する。タイルの列は、絵の上から下へと延びている。同様に、タイル行は、ピクチャの左から右に延びる。ピクチャにおけるタイルの数は、単にタイル列の数にタイル行の数を乗算することで得ることができる。
【0048】
CTBのスキャン順序は、1つのタイル内でローカルになるように(1つのタイルのCTBラスタスキャンの順に)変更され、その後、1つのピクチャのタイルラスタスキャンの順に従って、次のタイルの左上のCTBを復号する。正規のスライスと同様に、タイルは、ピクチャ内予測依存性およびエントロピー復号依存性を損なう。しかしながら、これらは、個々のNALユニット(この点でWPPと同じ)に含まれる必要がなく、従って、タイルは、MTUサイズマッチングに使用できない。各タイルは、1つのプロセッサ/コアによって処理されてもよく、処理ユニット間のピクチャ内予測に必要なプロセッサ/コア間通信では、近傍タイルの復号は、1つのスライスが2つ以上のタイルにまたがっている場合、共有スライスヘッダの伝達と、再構築されたサンプルおよびメタデータのループフィルタリングに関連する共有とに限定される。1つのスライスに2つ以上のタイルまたはWPPセグメントが含まれる場合、該スライスにおける最初の1つ以外の各タイルまたはWPPセグメントのエントリポイントバイトオフセットが、スライスヘッダにおいて信号通知される。
【0049】
説明を簡単にするために、HEVCにおいては、4つの異なるピクチャ分割方式の適用に関する制限が規定されている。所与のコーディングされた映像シーケンスは、HEVCに規定されたプロファイルのほとんどについて、タイルおよび波面の両方を含むことができない。各スライスおよびタイルについて、以下の条件のいずれかまたは両方を満たさなければならない。1)1つのスライスにおけるすべてのコーディングツリーブロックは、同じタイルに属し、2)1つのタイルにおけるすべてのコーディングツリーブロックは、同じスライスに属する。最後に、1つの波面セグメントはちょうど1つのCTB行を含み、WPPが使用されている時に、1つのスライスが1つのCTB行内で始まる場合、同じCTB行で終わらなければならない。
【0050】
最近のHEVCの修正は、JCT-VCの出力文書であるJCTVC-AC1005、J.ボイス、A.ラマスブラモニアン、R.スクピン、G.J.スリ版、A.トゥラピス、Y.-K.ワング(editors),“HEVC追加の捕捉強化情報”(Draft4),“Oct.24,2017,下記で入手可能:http://phenix.int-evry.fr/jct/doc_end_user/documents/29_Macau/wg11/JCTVC-AC1005-v2.zipこの補正を含め、HEVCは、3つのMCTS関連SEIメッセージ、即ち、時間MCTS SEI(補足強化情報)メッセージ、MCTS抽出情報セットSEIメッセージ、およびMCTS抽出情報ネストSEIメッセージを特定する。
【0051】
時間MCTS SEIメッセージは、ビットストリーム中にMCTSが存在することを示し、MCTSに信号を送信する。各MCTSにおいて、動きベクトルは、MCTS内部のフルサンプル位置と、補間のためにMCTS内部のフルサンプル位置のみを必要とするフラクショナルサンプル位置とを指すように制限され、且つ、MCTS外部のブロックから導出された時間動きベクトル予測のための動きベクトル候補の使用は許可されない。このように、各MCTSは、MCTSに含まれていないタイルが存在せず、独立して復号されてもよい。
【0052】
MCTS抽出情報セットSEIメッセージは、MCTSサブビットストリーム抽出(SEIメッセージの意味の一部として規定される)において使用され得る補足情報を提供し、MCTSセットのための適合ビットストリームを生成する。この情報は、抽出情報セットの数を含み、各抽出情報セットは、MCTSセットの数を定義し、MCTSサブビットストリーム抽出処理において使用される代替VPS、SPS、およびPPSのRBSPバイトを含む。MCTSサブビットストリーム抽出プロセスによってサブビットストリームを抽出する場合、パラメータセット(VPS,SPS,PPS)を書き換えるかまたは置き換える必要があるが、その理由は、スライスアドレスに関連する構文要素の1つまたは全て(first_slice_segment_in_pic_flagおよびslice_segment_addressを含む)が異なる値となる必要があるためである。
【0053】
3.2. VVCにおけるピクチャの分割
VVCにおいて、1つのピクチャは、1つ以上のタイル行および1つ以上のタイル列に分割される。1つのタイルは、1つの画像の1つの矩形領域を覆う1つのCTUのシーケンスである。1つのタイルにおけるCTUは、そのタイル内でラスタスキャン順にスキャンされる。
【0054】
1つのスライスは、1つのピクチャのタイル内において、整数個の完全なタイルまたは整数個の連続した完全なCTU行を含む。
【0055】
2つのモードのスライス、即ちラスタスキャンスライスモードおよび矩形スライスモードに対応している。ラスタスキャンスライスモードにおいて、1つのスライスは、1つのピクチャのタイルラスタスキャンにおける1つの完全なタイルのシーケンスを含む。矩形スライスモードにおいて、1つのスライスは、ピクチャの矩形領域を集合的に形成する完全なタイルの数、またはピクチャの矩形領域を集合的に形成する1つのタイルの連続した完全なCTU行の数のいずれかを含む。矩形スライス内のタイルを、そのスライスに対応する矩形領域内で、タイルラスタスキャンの順にスキャンする。
【0056】
1つのサブピクチャは、1つのピクチャの矩形領域を集合的に覆う1つ以上のスライスを含む。
【0057】
図1は、ピクチャのラスタスキャンスライス区分の例を示し、ピクチャは、12個のタイルと3個のラスタスキャンスライスとに分割される。
【0058】
図2は、ピクチャを矩形スライス区分の例を示し、ピクチャは、24個のタイル(6個のタイル列および4個のタイル行)と9個の矩形スライスとに分割される。
【0059】
図3は、タイルおよび矩形のスライスに分割されたピクチャの例を示し、このピクチャは、4つのタイル(2つのタイル列および2つのタイル行)と4つの矩形スライスとに分割される。
【0060】
図4は、1つのピクチャをサブピクチャで分割する例を示し、1つのピクチャは、18個のタイルに分割され、左側の12個が、4×4のCTUの1つのスライスをそれぞれ含み、右側の6個のタイルが、2×2のCTUの垂直方向に積み重ねられたスライスをそれぞれ含み、全体で24個のスライス及び24個の異なる寸法のサブピクチャとなる(各スライスは、1つのサブピクチャ)。
【0061】
3.3 VVCにおけるSPS/PPS/Picture header/Slice headerの信号通知
7.3.2.3 シーケンスパラメータセットRBSP構文
【0062】
【表1】
【表2】
【表3】
【表4】
【表5】
【表6】
【0063】
7.3.2.4 ピクチャパラメータセットRBSP構文
【0064】
【表7】
【表8】
【表9】
【表10】
【0065】
7.3.2.7 ピクチャヘッダ構造構文
【0066】
【表11】
【表12】
【表13】
【表14】
【0067】
7.3.7.1 一般スライスセグメントヘッダ構文
【表15】
【表16】

【表17】
【0068】
3.4 タイル、スライス、サブピクチャの仕様例
3 定義
ピクチャレベルスライスインデックス:rect_slice_flagが1に等しい場合、PPSで信号通知される順番で、ピクチャにおけるスライスのリストに対するスライスのインデックスを示す。
サブピクチャレベルスライスインデックス:rect_slice_flagが1に等しい場合、PPSで信号通知される順番にサブピクチャにおけるスライスのリストへのスライスのインデックスを示す。
6.5.1 CTBラスタスキャン、タイルスキャン、及びサブピクチャスキャン処理
タイル列の数を規定する変数NumTileColumns、及びCTB単位でi番目のタイル列の幅を規定するiのための0からNumTileColumn-1の範囲(両端含む)のリストcolWidth[i]は、以下のように導出される。
remainingWidthInCtbsY=PicWidthInCtbsY
for(i=0;i<num_exp_tile_columns_minus1;i++){
colWidth[i]=tile_column_width_minus1[i]+1
remainingWidthInCtbsY-=colWidth[i]

uniformTileColWidth=tile_column_width_minus1[num_exp_tile_columns_minus1]+1 (23)
while(remainingWidthInCtbsY>=uniformTileColWidth){
colWidth[i++]=uniformTileColWidth
remainingWidthInCtbsY-=uniformTileColWidth

if(remainingWidthInCtbsY>0)
colWidth[i++]=remainingWidthInCtbsY
NumTileColumns=i
タイル行の数を規定する変数NumTileRows、及びCTB単位でj番目のタイル行の高さを規定する0からNumTileRows-1までの範囲(両端含む)のjのリストRowHeight[j]は、以下のように導出される。
remainingHeightInCtbsY=PicHeightInCtbsY
for(j=0;j<num_exp_tile_rows_minus1;j++){
RowHeight[j]=tile_row_height_minus1[j]+1
remainingHeightInCtbsY-=RowHeight[j]

uniformTileRowHeight=tile_row_height_minus1[num_exp_tile_rows_minus1]+1 (24)
while(remainingHeightInCtbsY>=uniformTileRowHeight){
RowHeight[j++]=uniformTileRowHeight
remainingHeightInCtbsY-=uniformTileRowHeight

if(remainingHeightInCtbsY>0)
RowHeight[j++]=remainingHeightInCtbsY
NumTileRows=j
変数NumTileInPicは、NumTileColumns*NumTileRowsに等しく設定される。
iが0からNumTileColumnsまでの範囲(両端含む)にあり、CTBの単位でi番目のタイル列境界の位置を規定する場合、リストtileColBd[i]は、以下のように導出される。
for(tileColBd[0]=0,i=0;i<NumTileColumns;i++)
tileColBd[i+1]=tileColBd[i]+colWidth[i] (25)
注1-配列tileColBd[]のサイズは、CtbToleBd[]の導出における実際のタイル列の数よりも1大きい。
j番目のタイル行境界の位置をCTB単位で規定する、jが0からNumTileRowsまでの範囲(両端含む)にあるリストtileRowBd[j]は、以下のように導出される。
for(tileRowBd[0]=0,j=0;j<NumTileRows;j++)
tileRowBd[j+1]=tileRowBd[j]+RowHeight[j] (26)
注2-上記導出における配列tileRowBd[]のサイズは、CtbToleRowBd[ ]の導出における実際のタイル行の数よりも1大きい。
CTB単位で水平CTBアドレスから左側タイル列境界への変換を規定する、0からPicWidthInCtbsYまでの範囲(両端含む)のctbAddrXのリストCtbToTileColBd[ctbAddrX]は、以下のように導出される。
tileX=0
for(ctbAddrX=0;ctbAddrX<=PicWidthInCtbsY;ctbAddrX++){
if(ctbAddrX==tileColBd[tileX+1])(27)
tileX++
CtbToTileColBd[ctbAddrX]=tileColBd[tileX]

注3-上記導出における配列CtbToTileColBd[]のサイズは、derivation slice_data()信号通知におけるCTBにおける実際のピクチャ幅の数よりも1大きい。
ctbAddrYが0からPicHeightInCtbsYまでの範囲(両端含む)にあり、CTB単位で垂直CTBアドレスから上部タイル列境界への変換を規定するためのリストCtbToTileRowBd[ctbAddrY]は、以下のように導出される。
tileY=0
for(ctbAddrY=0;ctbAddrY<=PicHeightInCtbsY;ctbAddrY++){
if(ctbAddrY==tileRowBd[tileY+1])(28)
tileY++
CtbToTileRowBd[ctbAddrY]=tileRowBd[tileY]

注4-上記導出における配列CtbToleRowBd[]のサイズは、slice_data()信号通知におけるCTBにおける実際のピクチャの高さの数よりも1大きい。
矩形スライスの場合、iが0からnum_slices_in_pic_minus1の範囲(両端含む)のリストNumCtusInSlice[i]は、i番目のスライスにおけるCTUの数を規定し、iが0からnum_slices_in_pic_minus1の範囲(両端含む)のリストSliceTopLeftTileIdx[i]は、スライスの左上のタイルのインデックスを規定し、jは0からNumCtusInSlice[i]-1の範囲(両端含む)で、i番目のスライス内のj番目のCTBのピクチャラスタスキャンアドレスを規定し、以下のように導出される。
if(single_slice_per_subpic_flag){
for(i=0;i<=sps_num_subpics_minus1;i++)
NumCtusInSlice[i]=0
for(i=0;i<PicSizeInCtbsY;i++){
sliceIdx=subpic_info_present_flag?CtbToSubpicIdx[i]:0
CtbAddrInSlice[sliceIdx][NumCtusInSlice[sliceIdx]]=i
NumCtusInSlice[sliceIdx]++

}else{
tileIdx=0
for(i=0;i<=num_slices_in_pic_minus1;i++)
NumCtusInSlice[i]=0
for(i=0;i<=num_slices_in_pic_minus1;i++){
SliceTopLeftTileIdx[i]=tileIdx
tileX=tileIdx%NumTileColumns
tileY=tileIdx/NumTileColumns
if(i==num_slices_in_pic_minus1){
slice_width_in_tiles_minus1[i]=NumTileColumns-1-tileX
slice_height_in_tiles_minus1[i]=NumTileRows-1-tileY
NumSlicesInTile[i]=1

if(slice_width_in_tiles_minus1[i]==0&&slice_height_in_tiles_minus1[i]==0){(29)
ctbY=tileRowBd[tileY]
for(j=0;j<NumSlicesInTile[i]-1;j++){
AddCtbsToSlice(i,tileColBd[tileX],tileColBd[tileX+1],ctbY,ctbY+SliceHeightInCtusMinus1[i]+1)
ctbY+=SliceHeightInCtusMinus1[i]+1
i++

AddCtbsToSlice(i,tileColBd[tileX],tileColBd[tileX+1],ctbY,tileRowBd[tileY+1])
}else
for(j=0;j<=slice_height_in_tiles_minus1[i];j++)
for(k=0;k<=slice_width_in_tiles_minus1[i];k++)
AddCtbsToSlice(i,tileColBd[tileX+k],tileColBd[tileX+k+1],tileRowBd[tileY+j],tileRowBd[tileY+j+1])
if(tile_idx_delta_present_flag)
tileIdx+=tile_idx_delta[i]
else{
tileIdx+=slice_width_in_tiles_minus1[i]+1
if(tileIdx%NumTileColumns==0)
tileIdx+=slice_height_in_tiles_minus1[i]*NumTileColumns



関数AddCtbsToSlice(sliceIdx,startX,stopX,startY,stopY)を以下のように規定する。
for(ctbY=startY;ctbY<stopY;ctbY++)
for(ctbX=startX;ctbX<stopX;ctbX++){
CtbAddrInSlice[sliceIdx][NumCtusInSlice[sliceIdx]]=ctbY*PicWidthInCtbsY+ctbX (30)
NumCtusInSlice[sliceIdx]++

iが0からnum_slices_in_pic_minus1までの範囲(両端含む)にある場合、NumCtusInSlice[i]の値は、0よりも大きいことが、ビットストリーム準拠の要件である。また、iが0からnum_slices_in_pic_minus1の範囲(両端含む)であり、jが0からNumCtusInSlice[i]-1の範囲(両端含む)である行列CtbAddrInSlice[i][j]は、0からPicSizeInCtbsY-1の範囲(両端含む)のすべてのCTBアドレスを1度に限り、含むべきであることが、ビットストリーム準拠の要件である。
ピクチャラスタスキャンにおけるCTBアドレスからサブピクチャインデックスへの変換を規定する、0からPicSizeInCtbsY_1までの範囲(両端含む)のctbAddrRのリストCtbToSubpicIdx[ctbAddrRs]は、以下のように導出される。
for(ctbAddrRs=0;ctbAddrRs<PicSizeInCtbsY;ctbAddrRs++){
posX=ctbAddrRs%PicWidthInCtbsY
posY=ctbAddrRs/PicWidthInCtbsY
CtbToSubpicIdx[ctbAddrRs]=-1
for(i=0;CtbToSubpicIdx[ctbAddrRs]<0&&i<=sps_num_subpics_minus1;i++){ (31)
if((posX>=subpic_ctu_top_left_x[i])&&
(posX<subpic_ctu_top_left_x[i]+subpic_width_minus1[i]+1)&&
(posY>=subpic_ctu_top_left_y[i])&&
(posY<subpic_ctu_top_left_y[i]+subpic_height_minus1[i]+1))
CtbToSubpicIdx[ctbAddrRs]=i


i番目のサブピクチャの矩形スライスの数を規定するリストNumSlicesInSubpic[i]は以下のように導出される。
for(j=0;j<=sps_num_subpics_minus1;j++)
NumSlicesInSubpic[j]=0
for(i=0;i<=num_slices_in_pic_minus1;i++){
posX=CtbAddrInSlice[i][0]%PicWidthInCtbsY
posY=CtbAddrInSlice[i][0]/PicWidthInCtbsY
for(j=0;j<=sps_num_subpics_minus1;j++){
if((posX>=subpic_ctu_top_left_x[j])&&(32)
(posX<subpic_ctu_top_left_x[j]+subpic_width_minus1[j]+1)&&
(posY>=subpic_ctu_top_left_y[j])&&
(posY<subpic_ctu_top_left_y[j]+subpic_height_minus1[j]+1)){
NumSlicesInSubpic[j]++


【0069】
7.3.4.3 ピクチャパラメータセットRBSP意味論
subpic_id_mapping_in_pps_flagが1に等しい場合、サブピクチャIDマッピングがPPSで信号通知されることを規定する。
subpic_id_mapping_in_pps_flagが0に等しい場合、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の範囲(両端含む)の特定の値に等しいものとする。
no_pic_partition_flagが1に等しい場合、PPSを参照する各ピクチャに対してピクチャ分割が適用されないことを規定する。
no_pic_partition_flagが0に等しい場合、PPSを参照する各ピクチャを複数のタイル又はスライスに分割してよいことを規定する。
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に等しいと推測される。
rect_slice_flagが0に等しい場合、各スライス内のタイルがラスタスキャン順に配列されており、且つスライス情報がPPSで信号通知されないことを規定する。rect_slice_flagが1に等しい場合、各スライス内のタイルがピクチャの矩形領域を覆い、且つスライス情報がPPSで信号通知されることを規定する。存在しない場合、rect_slice_flagは1に等しいと推測される。subpic_info_present_flagが1に等しい場合、rect_slice_flagの値は1である。
single_slice_per_subpic_flagが1に等しい場合、各サブピクチャは1つの矩形スライスのみで構成される。single_slice_per_subpic_flagが0に等しい場合、各サブピクチャは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に等しいと推定される。
tile_idx_delta_present_flagが0に等しい場合、PPSにtile_idx_delta値が存在しないことを規定し、6.5.1項に定義された処理に従って、PPSを参照するピクチャにおけるすべての矩形スライスをラスタ順に規定する。tile_idx_delta_present_flagが1に等しい場合、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]の値は、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]-1の範囲のkに対する変数NumSlicesInTile[i]と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番目の矩形スライスの最初のタイルのタイルインデックスと、(i+1)番目の矩形スライスの最初のタイルのタイルインデックスの差を規定する。tile_idx_delta[i]の値は、-NumTilesInPic+1からNumTilesInPic-1までの範囲内にあるべきである。存在しない場合、tile_idx_delta[i]iの値は0に等しいと推測される。存在する場合、tile_idx_delta[i]の値は0に等しいと推測される。
【0070】
7.4.2.4.5 VCL NALユニットの順序およびそのコーディングされたピクチャへの関連付け
コーディングされたピクチャにおけるVCL NALユニットの順序は、以下のように制約される。
- 1つのコーディングされたピクチャの任意の2つのコーディングされたスライスNALユニットA及びBについて、subpicIdxA及びsubpicIdxBをそれらのサブピクチャレベルインデックス値とし、sliceAddrA及びsliceddrBをそれらのslice_address値とする。
- 以下の条件のいずれかが真である場合、コーディングされたスライスNALユニットAは、コーディングされたスライスNALユニットBに先行するものとする。
- subpicIdxAは、subpicIdxB未満である。
- subpicIdxAはsubpicIdxBに等しく、sliceAddrAはsliceAddrB未満である。
【0071】
7.4.8.1 一般スライスヘッダ意味論
Cu_qp_delta_absを含むコーディングユニットの輝度量子化パラメータとその予測値の差を規定する変数CuQpDeltaValは、0に等しく設定される。cu_chroma_qp_offset_flagを含むコーディングユニットの量子化パラメータQp’Cb,Qp’Cr,Qp’CbCrのそれぞれの値を判定する際に用いる値を規定する変数CuQpOffsetCb,CuQpOffsetCrは、すべて0に等しく設定される。
picture_header_in_slice_header_flagが1に等しい場合、スライスヘッダにPH構文構造が存在する。picture_header_in_slice_header_flagが0に等しい場合、スライスヘッダにPH構文構造が存在しない。
CLVS内のすべてのコーディングされたスライスにおいてpicture_header_in_slice_header_flagの値が同じであることは、ビットストリームコンフォーマンスの要件である。
コーディングされたスライスでpicture_header_in_slice_header_flagが1に等しい場合、CLVS内にnal_unit_typeがPH_NUTであるVCL NALユニットが存在しないことが適合性の要件となる。
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と、0からNumCtusInCurrSlice-1の範囲(両端含む)のiについて、スライス内のi番目のCTBのピクチャラスタスキャンアドレスを規定するリスト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)
【0072】
3.5 色空間及びクロマサブサンプリング
色空間は、カラーモデル(又はカラーシステム)としても知られ、色の範囲を数字のタプル(tuple)として簡単に記述する抽象的な数学モデルであり、典型的には3又は4つの値又は色成分(例えばRGB)である。基本的には、色空間は座標系とサブ空間とを精緻化したものである。
【0073】
映像圧縮の場合、最も頻繁に使用される色空間は、YCbCr及びRGBである。
【0074】
YCbCr、Y’CbCr、またはY Pb/Cb Pr/Crは、YCBCRまたはY’CBCRとも呼ばれ、映像およびデジタル写真システムのカラー画像パイプラインの一部として使用される色空間のファミリーである。Y’は輝度成分であり、CB及びCRは青色差及び赤色差クロマ成分である。Y’(素数を有する)はYとは区別され、Yは輝度であり、ガンマ補正されたRGB原色に基づいて光強度が非線形に符号化されることを意味する。
【0075】
クロマサブサンプリングは、人間の視覚システムが、輝度よりも色差の方が知覚が低いことを利用して、輝度情報よりもクロマ情報の方が解像度が低くなるように実装してピクチャを符号化する方法である。
【0076】
3.5.1. 4:4:4
3つのY’CbCr成分の各々は、同じサンプルレートを有し、従って、クロマサブサンプリングは存在しない。この方式は、ハイエンドフィルムスキャナ及びシネマティックポストプロダクションに用いられることがある。
【0077】
3.5.2. 4:2:2
2つのクロマ成分は、輝度のサンプルレートの半分でサンプリングされ、水平クロマ解像度は半分にされ、垂直クロマ解像度は変化しない。これにより、視覚的にほとんどまたは全く差がなく、非圧縮の映像信号の帯域幅を1/3に低減することができる。4:2:2カラーフォーマットの名目上の垂直および水平の位置の例が、例えば、VVC作業草案の図5に示されている。
【0078】
3.5.3. 4:2:0
4:2:0では、水平サンプリングは4:1:1に比べて2倍になるが、このスキームではCb及びCrチャネルを各1行おきのラインでのみサンプリングするので、垂直解像度は半分になる。従って、データレートは同じである。Cb及びCrはそれぞれ水平及び垂直方向の両方に2倍ずつサブサンプリングされる。異なる水平及び垂直位置を有する4:2:0スキームの3つの変形がある。
● MPEG-2において、CbおよびCrは水平方向に共座している。CbおよびCrは垂直方向の画素間に位置する(格子間に位置する)。
● JPEG/JFIFにおいて、H.261、およびMPEG-1、Cb、およびCrは、交互の輝度サンプルの中間の格子間に位置する。
● 4:2:変数DVにおいて、CbおよびCrは、水平方向に共座している。垂直方向には、それらは交互に共座している。
表3-1.chroma_format_idcおよびseparate_colour_plane_flagから導出したSubWidthCおよびSubHeightCの値
【0079】
【表18】
【0080】
4. 開示される実施形態が解決しようとする技術的課題の例
VVCにおけるSPS/PPS/ピクチャヘッダ/スライスヘッダの信号化に関する既存の設計には以下のような問題がある。
1) rect_slice_flagが1に等しい場合、現在のVVCのテキストによれば、以下のようになる。
a.slice_addressは、スライスのサブピクチャレベルのスライスインデックスを表す。
b. サブピクチャレベルのスライスインデックスとは、サブピクチャのスライスをPPSで信号化した順番に並べたリストに対するスライスのインデックスと定義される。
c. ピクチャレベルのスライスインデックスとは、ピクチャ内のスライスをPPSで信号化された順に並べたリストに対するスライスのインデックスと定義される。
d. 異なる2つのサブピクチャに属する2つのスライスについては、サブピクチャインデックスの小さい方が復号順が早くなり、同じサブピクチャに属する2つのスライスについては、サブピクチャレベルのスライスインデックスが小さい方が復号順が早くなる。
e. そして、現在のスライスのCTU数を規定する変数NumCtusInCurrSliceの今回のVVCテキストの式117による導出は、ピクチャレベルのスライスインデックス値の増加順序がスライスの復号順序と同じであることを仮定している。
しかし、1枚のタイルを分割した結果、いくつかのスライスが生じた場合、上記のような点に抵触する可能性がある。図6に示す例では、ピクチャが垂直方向のタイル境界によって2つのタイルに分割され、2つのタイルのそれぞれがピクチャ全体にわたって同じ水平方向の境界によって2つのスライスに分割される場合、上側の2つのスライスが第1サブピクチャに含まれ、下側の2つのスライスが第2サブピクチャに含まれる。この場合、現在のVVCテキストによれば、スライスラスタスキャン順の4つのスライスのピクチャレベルのスライスインデックス値は0、2、1、3となり、スライスラスタスキャン順の4つのスライスの復号順序インデックス値は0、1、2、3ということになる。その結果、NumCtusInCurrSliceの導出が正しくなくなり、スライスデータの解析に問題が生じ、復号化されたサンプル値が正しくなくなり、デコーダがクラッシュする可能性が高くなる。
2)スライス信号方式には2種類ある。矩形モードでは、すべてのスライス分割情報がPPSで信号化される。非矩形モードでは、スライスヘッダでスライス分割情報の一部が通知されるため、このモードではピクチャのすべてのスライスを解析する前にピクチャの完全なスライス分割を知ることができない。
3)矩形モードではtile_idx_deltaを設定することにより、スライスを任意に信号化することができる。邪悪なビットストリームは、このメカニズムでデコーダをクラッシュさせる場合がある。
4)本発明の実施例において、iがnum_slices_in_pic_minus1に等しい場合、初期化されていないtile_idx_delta[i]
【0081】
図6は、ピクチャ分割の例を示す。実線602はタイルの境界を、破線604はスライスの境界を、破線606はサブピクチャの境界を表す。図には、4つのスライスのピクチャレベルインデックス、復号順序インデックス、サブピクチャレベルインデックス、及びサブピクチャ及びタイルのインデックスが示されている。
【0082】
5. 例示的な実施形態及び技術
上述した課題等を解決するために、以下に示す方法が開示されている。本発明は、一般的な概念を説明するための例と見なされるべきであり、狭い意味で解釈されるべきではない。さらに、本発明は、個々に適用されてもよいし、任意に組み合わせて適用されてもよい。
1. 矩形スライスモードのスライス(rect_slice_flagが1に等しい場合)については、各サブピクチャの各スライスに対するピクチャレベルのスライスインデックスを導出し、その導出した値を用いて各スライスにおけるCTU数を導出する。
2. サブピクチャレベルのスライスインデックスは、以下の方法で定義/導出することができる。
a. 一例では、サブピクチャレベルのスライスインデックスは、“rect_slice_flagが1に等しいとき、そのデコード順でサブピクチャ内のスライスのリストへのスライスのインデックス”と定義される。
b. あるいは、サブピクチャレベルのスライスインデックスは、“rect_slice_flagが1に等しいときのサブピクチャのスライスリストに対するスライスのインデックスで、式32(実施の形態1と同様)で導かれる変数SubpicLevelSliceIdx[i]で規定され、iはそのスライスのピクチャレベルスライスインデックス”として定義される。
c. 一例として、ピクチャレベルのスライスインデックスが特定の値である各スライスのサブピクチャインデックスを導出する。
d. 一例として、ピクチャレベルのスライスインデックスが特定の値である各スライスのサブピクチャレベルのスライスインデックスを導出する。
e. 一例では、rect_slice_flagが1に等しいとき、スライスアドレスのセマンティクスは、“スライスアドレスは、式32で導出される変数SubpicLevelSliceIdx[i]で規定されるスライスのサブピクチャレベルスライスインデックス(例えば、実施形態1のように)、iはそのスライスのピクチャレベルスライスインデックス”と規定される。
3. スライスのサブピクチャレベルのスライスインデックスは、そのスライスを含む最初のサブピクチャ内のスライスに割り当てられる。各スライスのサブピクチャレベルのスライスインデックスは、ピクチャレベルのスライスインデックスをインデックスとする配列(例えば、実施の形態1におけるSubpicLevelSliceIdx[i])に格納されてもよい。
a. 一例として、サブピクチャレベルのスライスインデックスは、非負の整数である。
b. 一例として、スライスのサブピクチャレベルのスライスインデックスの値は、0以上である。
c. ある例では、スライスのサブピクチャレベルのスライスインデックスの値はNより小さく、Nはサブピクチャのスライス数である。
d. 一例として、第1スライス(スライスA)の第1サブピクチャレベルのスライスインデックス(subIdxAと表記)は、第1スライスと第2スライス(スライスB)が同じサブピクチャ内にありながら異なる場合、第2スライス(スライスB)の第2サブピクチャレベルのスライスインデックス(subIdxBと表記)と異なる必要がある。
e. 一例では、第1サブピクチャにおける第1スライス(スライスA)の第1サブピクチャレベルのスライスインデックス(subIdxAと表記)が、同じ第1サブピクチャにおける第2スライス(スライスB)の第2サブピクチャレベルのスライスインデックス(subIdxBと表記)より小さい場合、IdxAはIdxBより小さく、idxAとidxBとは全画面に占めるスライスインデックスを表す(a。ここで、idxAはスライスAの、idxBはスライスBの、それぞれピクチャレベルのスライスインデックス(sliceIdxなど)である。
f. 一例として、第1サブピクチャ内の第1スライス(スライスA)の第1サブピクチャレベルのスライスインデックス(subIdxAと表記)が、同じ第1サブピクチャ内の第2スライス(スライスB)の第2サブピクチャレベルのスライスインデックス(subIdxBと表記)より小さい場合、復号順ではスライスAがスライスBより先行する。
g. 一例として、サブピクチャにおけるサブピクチャレベルのスライスインデックスは、ピクチャレベルのスライスインデックス(例えば、sliceIdx)に基づいて導出される。
4. サブピクチャ内のサブピクチャレベルのスライスインデックスとピクチャレベルのスライスインデックスのマッピング関数/テーブルを導出することを提案する。
a. 一例として、二次元配列PicLevelSliceIdx[subPicIdx][SubPicLevelSliceIdx]が、サブピクチャ内のサブピクチャレベルスライスインデックスをピクチャレベルスライスインデックスにマッピングするように導出される。ここで、PicLevelSliceIdxはスライスのピクチャレベルスライスインデックス、subPicIdxはサブピクチャのインデックス、SubPicLevelSliceIdxはサブピクチャのスライスのサブピクチャレベルスライスインデックスを示す。
i. 一例では、配列NumSlicesInSubpic[subPicIdx]がPicLevelSliceIdxの導出に用いられ、NumSlicesInSubpic[subPicIdx]は、subPicIdxに等しいインデックスのサブピクチャにおけるスライス数であることを示す。
1) 一例として、NumSlicesInSubpic[subPicIdx]とPicLevelSliceIdx[subPicIdx][SubPicLevelSliceIdx]は、ピクチャレベルスライスのインデックス順にすべてのスライスをスキャンして一度の処理で導出される。
a. NumSlicesInSubpic[subPicIdx]は、処理前のすべての有効なsubPicIdxに対して0に等しく設定される。
b. ピクチャレベルインデックスがSであるスライスをチェックするとき、それがサブピクチャインデックスがPであるサブピクチャ内にあれば、PicLevelSliceIdx[P][NumSlicesInSubpic[P]]をSとし、次にNumSlicesInSubpic[P]をNumSlicesInSubpic[P]+1とする。
ii. 一例では、SliceIdxInPic[subPicIdx][SubPicLevelSliceIdx]を使用して、ピクチャレベルのスライスインデックス(例えばpicLevelSliceIdx)を導出し、これを使用して、スライスヘッダの解析時にスライス内のCTBの数及び/又はアドレスを導出する。
5. コンフォーマンスビットストリームでは、1つのタイルが2つ以上のサブピクチャに含まれないことが要求される。
6. スライスAはタイルAの中にあるがタイルAより小さく、スライスBはタイルBの中にあるがタイルBより小さく、タイルAとタイルBが異なる場合、一つのサブピクチャはスライスAとスライスBで示される二つのスライスを含むことができないことがコンフォーマンスビットストリームで要求される。
7. ピクチャのタイル及び/又はスライス分割情報を、関連するピクチャヘッダにおいて信号通知することを提案する。
a. 一例では、ピクチャのタイル及び/又はスライス分割情報がPPSで信号通知されるか、関連するピクチャヘッダで信号通知されるかは、関連するPPSで信号通知される。
b. 一例では、ピクチャのタイル及び/又はスライス分割情報が、関連するピクチャヘッダにあるかどうかが信号通知される。
i. 一例として、ピクチャのタイル及び/又はスライス分割情報が、関連するPPSと関連するピクチャヘッダの両方で信号通知されている場合、ピクチャヘッダで信号通知されたピクチャのタイル及び/又はスライス分割情報が使用されることになる。
ii. 一例として、ピクチャのタイル及び/又はスライス分割情報が、関連するPPSと関連するピクチャヘッダの両方で信号通知される場合、PPSで信号通知されたピクチャのタイル及び/又はスライス分割情報が使用される。
c. 一例として、ピクチャよりも高いレベル(SPSなど)の映像ユニットにおいて、ピクチャのタイル及び/又はスライス分割情報が、関連するPPSにおいて信号通知されているか、又は関連するピクチャヘッダにおいて信号通知されているかを示すために信号通知される。
8. 非矩形モードで関連ピクチャをスライス分割する場合、スライスレベルより上位の映像ユニット(例えば、PPS及び/又はピクチャヘッダ内)でスライス分割情報を信号通知することを提案する。
a. 一例として、関連するピクチャが非矩形モードでスライス分割されている場合、スライス数を示す情報(例えばnum_slices_in_pic_minus1)が上位の映像ユニットで信号通知されてもよい。
b. 一例として、関連するピクチャが非矩形モードを有するスライスで分割されるとき、上位映像ユニットにおけるスライスの最初のブロックユニットのインデックス(又はアドレス、又は位置、又は座標)を示すための情報である。例えば、ブロック単位は、CTUまたはタイルであってもよい。
c. 一例として、関連するピクチャが非矩形モードでスライス分割されている場合に、上位の映像ユニットにおけるスライスのブロックユニットの数を示すための情報を提供する。例えば、ブロック単位は、CTUまたはタイルであってもよい。
d. 一例では、関連するピクチャが非矩形モードを有するスライスで分割されるとき、スライス分割情報(例えば、num_tiles_in_slice_minus1)は、スライスヘッダで信号通知されない。
e. 一例として、関連するピクチャが非矩形モードでスライスに分割されている場合、スライスインデックスはスライスヘッダで信号通知される。
i. 一例として、slice_addressは、関連するピクチャが非矩形モードでスライスに分割される場合、ピクチャレベルのスライスインデックスとして解釈される。
f. 一例では、関連するピクチャが非矩形モードを有するスライスで分割されるとき、ピクチャ内の各スライスの分割情報(第1ブロックユニットのインデックス及び/又はブロックユニットの数など)は、上位の映像ユニットで順番に信号通知されてもよい。
i. 一例として、関連するピクチャが非矩形モードでスライスに分割されている場合、上位映像ユニットの各スライスに対してスライスのインデックスが信号通知されてもよい。
ii. 一例として、各スライスのパーティショニング情報は、スライスインデックスの昇順で信号通知される。
1) 一例として、各スライスの分割情報は、スライス0、スライス1、...、スライスK-1、スライスK、スライスK+1、...スライスS-2、スライスS-1の順で信号通知し、Kはスライスインデックス、Sはピクチャのスライス枚数を表す。
iii. 一例として、各スライスのパーティショニング情報は、スライスインデックスの降順で信号通知される。
1) 一例として、各スライスの分割情報は、スライスS-2、スライスS-1、...、スライスK+1、スライスK、スライスK-1、...、スライス1、スライス0の順で信号通知し、Kはスライスインデックス、Sはピクチャのスライス数を表す。
iv. 一例として、関連するピクチャが非矩形モードでスライスに分割されている場合、スライスに対する第1ブロックユニットのインデックスは、上位の映像ユニットで信号通知されないことがある。
1) 例えば、スライス0(スライスインデックスが0であるスライス)の最初のブロックユニットのインデックスは0であると推論される。
2) 例えば、スライスK(スライスインデックスがKに等しいスライス、K>0)の最初のブロックユニットのインデックスは、
【数1】

と推論され、Niはスライスiのブロックユニットの数を表す。
v. 一例として、関連するピクチャが非矩形モードでスライスに分割されている場合、スライスに対する第1ブロックユニットのインデックスは、上位の映像ユニットで信号通知されないことがある。
1) 例えば、スライス0(スライスインデックスが0であるスライス)の最初のブロックユニットのインデックスは0であると推論される。
2) 例えば、スライスK(スライスインデックスがKに等しいスライス、K>0)の最初のブロックユニットのインデックスは、
【数2】

と推論され、Niはスライスiのブロックユニットの数を表す。
vi. 一例として、関連するピクチャが非矩形モードでスライスに分割されている場合、スライスに対するブロックユニットの数は、上位の映像ユニットで信号通知されないことがある。
1) ピクチャ中にスライスが1つしかなく、ピクチャ中にブロックユニットがM個あるとき、スライス0のブロックユニットの数はM個である。
2) 例えば、スライスK(スライスインデックスが0に等しいスライス)のブロックユニットの数はTK+1-Tと推論され、TはK<S-1(Sはピクチャのスライス数でS>1)のときのスライスKの最初のブロックユニットのインデックスを表す。
3) 例えば、スライスS-1のブロックユニットの数は、
【数3】
と推論され、このとき、Sはピクチャのスライス数、S>1、Mはピクチャのブロックユニットの数である。
vii. 一例として、関連するピクチャが非矩形モードのスライスで分割されている場合、1つ以上のスライスの分割情報は、上位の映像ユニットで信号通知されない場合がある。
1) 一例として、上位の映像ユニットで信号化しない1つ以上のスライスの分割情報を、信号化される他のスライスの分割情報から推論することができる。
2) 一例として、最後のCスライスの分割情報は信号通知されないことがある。例えば、Cが1に等しい。
3) 例えば、スライスS-1のブロックユニットの数は信号通知されず、Sはピクチャのスライス数で、S>1である。
a. 例えば、スライスS-1のブロックユニットの数は、
【数4】

と推論され、ピクチャ中にM個のブロックユニットがある。
9. 矩形分割を行うか、非矩形分割を行うかによって、ピクチャの最小スライス数が異なる可能性があることを提案する。
a. 一例として、非矩形分割モードが適用された場合、ピクチャは少なくとも2つのスライスに分割され、矩形分割モードが適用された場合、ピクチャは少なくとも1つのスライスに分割される。
i. 例えば、num_slices_in_pic_minus2プラス2は、非矩形分割モードを適用した場合に、ピクチャのスライス数を規定する信号となる場合がある。
b. 一例として、非矩形分割モードが適用された場合、ピクチャは少なくとも1つのスライスに分割され、矩形分割モードが適用された場合、ピクチャは少なくとも1つのスライスに分割される。
i. 例えば、矩形分割モードを適用した場合、ピクチャのスライス数を規定するnum_slices_in_pic_minus2プラス2が信号通知されることがある。
c. 一例として、ピクチャがサブピクチャに分割されていない場合に矩形分割を適用するか、1つのサブピクチャにのみ分割されている場合に非矩形分割を適用するかによって、ピクチャ内の最小スライス数は異なる場合がある。
10. PPSやピクチャヘッダなどの映像単位で分割情報を信号通知する場合、左上の位置とスライスの幅/高さでスライスを表現することを提案する。
a. 一例として、スライスの左上のブロックユニット(CTUやタイルなど)のインデックス/位置/座標、及び映像単位(CTUやタイルなど)で測定した幅、及び映像ユニット(CTUやタイルなど)で測定した高さが信号通知される。
b. 一例として、左上の位置と各スライスの幅/高さの情報を順番に信号通知する。
i. 例えば、左上の位置や各スライスの幅/高さの情報は、0、1、2、...、S-1(Sはピクチャのスライス数)のようにスライスインデックスの昇順で信号通知される。
11. サブピクチャ内のスライスの分割情報(位置/幅/高さなど)をSPS/PPS/ピクチャヘッダなどの映像ユニットで信号通知することを提案する。
a. 一例として、各サブピクチャのスライス分割情報を順番に信号通知する。
i. 例えば、各サブピクチャのスライス分割情報は、サブピクチャのインデックスの昇順で信号通知される。
b. 一例として、サブピクチャ内の各スライスの分割情報(位置/幅/高さなど)が順番に信号通知される。
i. 一例として、サブピクチャ内の各スライスの分割情報(位置/幅/高さなど)は、サブピクチャレベルのスライスインデックスで昇順に信号通知される。
12. i番目の矩形スライスの最初のタイルのタイルインデックスと(i+1)番目の矩形スライスの最初のタイルのタイルインデックスとの差(tile_idx_delta[i]とする)を信号通知せず、導出することを提案する。
a. 一例として、0番目の矩形スライスからi番目の矩形スライスまでの矩形スライスに基づいて、(i+1)番目の矩形スライスにおける最初のタイルのタイルインデックスを導出する。
b. 一例として、(i+1)番目の矩形スライスにおける最初のタイルのタイルインデックスは、0th番目の矩形スライスからi番目の矩形スライスまで、矩形スライス内にないタイルの最小インデックスであると導出される。
13. タイルの列数/行数(例えばNumTileColumns又はNumTileRows)を導出するための情報の信号通知は、ピクチャの幅とCTUのサイズとの関係を条件とすることを提案する。
a. 例えば、ピクチャの幅がCTUのサイズ又は幅より小さいか等しい場合、num_exp_tile_columns_minus1及び/又はtile_column_width_minus1が信号通知されない場合がある。
b. 例えば、ピクチャの高さがCTUのサイズ又は高さより小さいか又は等しい場合、num_exp_tile_rows_minus1及び/又はtile_row_height_minus1が信号通知されないことがある。
14. slice_subpic_idが存在する場合、SubpicIdVal[CurrSubpicIdx]がslice_subpic_idと等しいことを満たすCurrSubpicIdxは1つだけでなければならない。
15. rect_slice_flagが0、又はsubpic_info_present_flagが0の場合、slice_address+iの値は、iが0からnum_tiles_in_slice_minus1の範囲(両端含む)において、slice_address+jの値に一致しないものとし、ここでjは、同じコーディングされたピクチャの他のコーディングされたスライスNALユニットの0からnum_tiles_in_slice_minus1の範囲(両端含む)で、iはその範囲にある。
16. ピクチャ内に均一間隔のタイルと非均一間隔のタイルが存在する場合、PPS(又はSPS)において、タイルレイアウトのタイプを規定する構文要素を信号通知することができる。
a. 一例として、PPSで信号通知される構文フラグがあり、タイルレイアウトが非均一間隔の後に均一間隔が続くか、均一間隔の後に非均一間隔が続くかを指定することができる。
b. 例えば、不均一な間隔のタイルがあるときはいつでも、明確に提供されるタイル列/行の数(例えば、num_exp_tile_columns_minus1、num_exp_tile_rows_minus1)は不均一タイルの総数と同程度であり得る。
c. 例えば、均一な間隔のタイルがあるときはいつでも、明確に提供されるタイル列/行の数(例えば、num_exp_tile_columns_minus1、num_exp_tile_rows_minus1)は均一タイルの総数よりも少ないか、等しくなり得る。
d. タイルのレイアウトが、均一な間隔の後に不均一な間隔が続くような場合(つまり、均一な間隔のタイルで始まり、複数の不均一な間隔のタイルで終わるような絵の場合)、
i. 一例では、ピクチャの後者に位置する非均一間隔タイルのタイル列の幅は、まず逆順に割り当てられ(すなわち、タイルインデックスの順序がNumTileColumns、NumTileColumns-1、NumTileColumns-2、...に等しい)、次にピクチャの前者に位置する均一間隔タイルのタイル列の幅は逆順に暗に導き出されてもよい(すなわち、タイルインデックスの順序がNumTileColumns-T,NumTileColumns-T-1,...,2,1,0に等しく、ここでTは不均一なタイル列の数を示す)。
ii. タイル列の高さは、前述したタイル列の幅と同様にして求めることができる。
17. 二つの矩形スライス(一方がi番目のスライス)の代表的なタイルインデックスの差を規定する構文要素(例えばtile_idx_delta[i])は、条件が真である場合にのみ使用することが可能である。
a. 一例として、条件は(i!=num_slices_in_pic_minus1)であり、num_slices_in_pic_minus1プラス1がピクチャ中のスライス数を表している。
b. 一例として、条件は(i!=num_slices_in_pic_minus1)であり、num_slices_in_pic_minus1プラス1がピクチャ中のスライス数を表している。
18. マージ推定領域(MER)サイズ(例えばlog2_parallel_merge_level_minus2で信号通知される)を信号通知するか、及び/又は解釈するか、又は制限するかは、最小許容コーディングブロックサイズ(例えばlog2_min_luma_coding_block_size_minus2及び/又はMinCbSizeYとして信号通知/表示される)によっても決まりうる。
a. 一例として、MERのサイズは、最小許容コーディングブロックサイズより小さくできないことが要求される。
i. 例えば、log2_parallel_merge_level_minus2はlog2_min_luma_coding_block_size_minus2と同等かそれ以上であることが必要である。
ii. 例えば、log2_parallel_merge_level_minus2はlog2_min_luma_coding_block_size_minus2からCtbLog2SizeY-2の範囲であることが必要である。
b. 一例として、Log2(MERサイズ)とLog2(MinCbSizeY)の差を信号通知とし、これをlog2_parallel_merge_level_minus_log2_mincbと表現する。
i. 例えば、log2_parallel_merge_level_minus_log2_mincbは単項のコード(ue)でコーディングされる。
ii. 例えば、log2_parallel_merge_level_minus_log2_mincbは、0からCtbLog2SizeY-log2_min_luma_coding_block_size_minus2-2の範囲であることが必要である。
iii. 例えば、Log2ParMrgLevel=log2_parallel_merge_level_minus_log2_mincb+log2_min_luma_coding_block_size_minus2+2、ここでLog2ParMrgLevelはMERサイズの制御に使用される。
19. num_exp_slices_in_tile[i]が0に等しい場合、i番目のスライスのCTU行のユニットでのスライス高、例えば、sliceHeightInCtus[i]と表記することが提案される。
a. 一例では、sliceHeightInCtus[i]は、num_exp_slices_in_tile[i]が0に等しいとき、RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]に等しいように導出される。
20. ピクチャのi番目のスライスを含むタイルの(num_exp_slices_in_tile[i]-1)番目のスライスは常に存在し、高さは常にexp_slice_height_in_ctus_minus1[i][num_exp_slices_in_tile[i]-1]+1CTU行とすることが提案される。
a. あるいは、ピクチャのi番目のスライスを含むタイルの(num_exp_slices_in_tile[i]-1)番目のスライスは存在してもしなくてもよく、高さはexp_slice_height_in_ctus_minus1[i][num_exp_slices_in_tile[i]-1]+1CTU行以下である。
21. 矩形スライスの情報導出の際、num_slices_in_pic_minus1より小さいピクチャレベルのスライスインデックスを持つスライスに対してのみ変数tileIdxを更新する、すなわちPPSを参照する各ピクチャの最後のスライスに対しては更新しないことが提案される。
22. PPSを参照するピクチャでは、num_exp_tile_columns_minus1番目のタイル列が常に存在し、幅は常にtile_column_width_minus1[num_exp_tile_columns_minus1]+1CTBsであることが提案される。
23. PPSを参照するピクチャでは、num_exp_tile_rows_minus1番目のタイル行が常に存在し、高さは常にtile_column_height_minus1[num_exp_tile_rows_minus1]+1CTBsであること提案される。
24. 最大ピクチャ幅と最大ピクチャ高さがともにCtbSizeYよりも大きくない場合、sps_num_subpics_minus1の構文要素の信号通知をスキップすることが提案される。
a. あるいは、追加的に、上記条件が成立する場合、sps_num_subpics_minus1の値は0に等しいと推論される。
25. ピクチャ幅がCtbSizeYよりも大きくない場合、構文要素num_exp_tile_columns_minus1の信号通知はスキップされてもよいことが提案される。
b. あるいは、追加的に、num_exp_tile_columns_minus1の値は、上記条件が真のとき、0に等しいと推論される。
26. ピクチャの高さがCtbSizeYよりも大きくない場合、構文要素num_exp_tile_rows_minus1の信号通知はスキップされてもよいことが提案される。
c. あるいは、追加的に、num_exp_tile_row_minus1の値は、上記条件が真のとき、0に等しいと推論される。
27. num_exp_tile_columns_minus1がPicWidthInCtbsY-1に等しい場合、0からnum_exp_tile_columns_minus1の範囲(両端含む)のiに対する構文要素tile_column_width_minus1[i]の信号通知はスキップされてもよいことが提案される。
d. あるいは、追加的に、tile_column_width_minus1[i]の値は0に等しいと推論される。
28. num_exp_tile_rows_minus1がPicHeightInCtbsY-1に等しい場合、0からnum_exp_tile_rows_minus1の範囲(両端含む)のiに対する構文要素tile_row_height_minus1[i]の信号通知はスキップされてもよいことが提案される。
e. あるいは、追加的に、tile_row_height_minus1[i]の値は0に等しいと推論される。
29. タイルを分割する一様なスライスの高さは、そのタイルのスライスの高さを示すexp_slice_height_in_ctus_minus1[]の最後のエントリで示されることが提案される。ユニフォームスライスとは、明確に信号通知されるスライスより下のスライスを指す。例:uniformSliceHeight=exp_slice_height_in_ctus_minus1[i][num_exp_slices_in_tile[i]-1]+1
30. 「num_exp_tile_columns_minus1」番目のタイル列の幅のリセットを禁止すること、すなわち、ビットストリームから解析された値(例えば、tile_column_width_minus1[num_exp_tile_columns_minus1]で示される)を他の情報を参照せずに直接使用して幅を導出してもよいことが提案される。
a. 一例として、「num_exp_tile_columns_minus1」番目のタイルカラムの幅は、tile_column_width_minus1[num_exp_tile_columns_minus1]プラス1に直接設定される。あるいは、さらに、tile_column_width_minus1[num_exp_tile_columns_minus1]を使用して、num_exp_tile_columns_minus1より大きいインデックスのタイル列の幅を、例えば、6.5.1項で規定されるように導出する。
b. 同様に、「num_exp_tile_columns_minus1」番目のタイル行の高さについては、リセットが禁止されている、つまり、ビットストリームからの解析値(例えば、tile_row_height_minus1[num_exp_tile_columns_minus1]で示される)が他の情報を参照せずに直接高さを導くために使用されてもよい。
i. 一例として、「num_exp_tile_columns_minus1」番目のタイル行の高さは、tile_row_height_minus1[num_exp_tile_columns_minus1]プラス1に直接設定される。あるいは、さらに、tile_row_height_minus1[num_exp_tile_columns_minus1]を用いて、num_exp_tile_columns_minus1より大きいインデックスを持つタイル行の高さを導き出す、例えば、6.5.1項で規定されるように、タイル行を導出する。
31. タイル内の(num_exp_slices_in_tile[i]-1)番目のスライスの高さのリセットを禁止し、すなわち、ビットストリームからの解析値(例えば、exp_slice_height_inctus_minus1[i][num_exp_slices_in_tile[i]-1]で示される)を直接用いて他の情報を参照せずに高さを導出してもよいと提案される。
a. 一例では、タイル内の(num_exp_slices_in_tile[i]-1)番目のスライスの高さは、exp_slice_height_in_ctus_minus1[i][num_exp_slices_in_tile[i]-1]プラス1に直接設定される。あるいは、さらに、num_exp_slices_in_tile[i]-1より大きいインデックスを有するスライスの高さを導出するために、exp_slice_height_in_ctus_minus1[i][num_exp_slices_in_tile[i]-1]が使用されてもよい。
【0083】
6. 実施形態
以下の実施例において、追加された部分には太字、下線、イタリック体の文字を付している。削除された部分は[]内にマークされる。
【0084】
6.1. 実施例1:サブピクチャレベルのスライスインデックスの変更例
3 定義
【0085】
【化1】
【0086】
6.5.1 CTBラスタスキャン、タイルスキャン、及びサブピクチャスキャン処理
【0087】
【化2】
【0088】
for(j=0;j<=sps_num_subpics_minus1;j++)
NumSlicesInSubpic[j]=0
for(i=0;i<=num_slices_in_pic_minus1;i++){
posX=CtbAddrInSlice[i][0]%PicWidthInCtbsY
posY=CtbAddrInSlice[i][0]/PicWidthInCtbsY
for(j=0;j<=sps_num_subpics_minus1;j++){
if((posX>=subpic_ctu_top_left_x[j])&& (32)
(posX<subpic_ctu_top_left_x[j]+subpic_width_minus1[j]+1)&&
(posY>=subpic_ctu_top_left_y[j])&&
(posY<subpic_ctu_top_left_y[j]+subpic_height_minus1[j]+1)){
【化3】

NumSlicesInSubpic[j]++



【0089】
7.4.8.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に等しい場合)、以下が適用される。
【化4】

- 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の境界を含むものでなければならない。
...
num_tiles_in_slice_minus1プラス1は、存在する場合、スライス内のタイル数を規定する。num_tiles_in_slice_minus1の値は、0からNumTilesInPic-1までの範囲内にあるべきである。
現在のスライス内のCTUの数を規定する変数NumCtusInCurrSliceと、0からNumCtusInCurrSlice-1の範囲(両端含む)のiについて、スライス内のi番目のCTBのピクチャラスタスキャンアドレスを規定するリストCtbAddrInCurrSlice[i]は、次のように導出される。
if(rect_slice_flag){
【化5】

[[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++




【0090】
6.2. 実施例2:非矩形モードのためのPPSにおける信号通知スライス
7.3.2.4 ピクチャパラメータセットRBSP構文
【0091】
【表19】
【表20】
【0092】
7.3.7.1 一般スライスセグメントヘッダ構文
【0093】
【表21】
【0094】
7.4.3.4 ピクチャパラメータセットRBSP意味論
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に等しいと推定される。
【化6】

【0095】
7.4.8.1 一般スライスヘッダ意味論

slice_addressは、スライスのスライスアドレスを規定する。存在しない場合、slice_addressの値は0に等しいと推測される。rect_slice_flagが1でNumSlicesInSubpic[CurrSubpicIdx]が1のとき、slice_addressの値は0と推測される.rect_slice_flagが0であり、NumSlicesInPicが1である場合、slice_addressの値は0であると推測される
rect_slice_flagが0に等しい場合、以下が適用される。
【化7】

そうでない場合(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の値に等しくてはならない。
【化8】

- ピクチャのスライスの形状は、各CTUが復号された場合、その左側境界全体及び最上の境界全体が1つのピクチャの境界、又は、以前に復号されたCTUの境界を含むものでなければならない。

現在のスライス内のCTUの数を規定する変数NumCtusInCurrSliceと、0からNumCtusInCurrSlice-1の範囲(両端含む)のiについて、スライス内のi番目のCTBのピクチャラスタスキャンアドレスを規定するリスト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
【化9】

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++



【0096】
6.3. 実施例3:ピクチャの寸法に調整された信号タイル
7.3.2.4 ピクチャパラメータセットRBSP構文
【0097】
【表22】
【表23】
【0098】
6.4. 実施形態#4:tile_column_width_minus1及びtile_row_height_minus1における意味論の例1
7.4.3.4 ピクチャパラメータセットRBSP意味論

【化10】

【化11】

【0099】
6.5. 実施形態#5:tile_column_width_minus1及びtile_row_height_minus1における意味論の例2
7.4.3.4 ピクチャパラメータセットRBSP意味論

【化12】

【0100】
6.6. 実施形態#6:スライスにおけるCTUの導出例
6.5 走査プロセス
6.5.1 CTBラスタスキャン、タイルスキャン、及びサブピクチャスキャン処理

矩形スライスの場合、iが0からnum_slices_in_pic_minus1の範囲(両端含む)のリストNumCtusInSlice[i]は、i番目のスライスにおけるCTUの数を規定し、iが0からnum_slices_in_pic_minus1の範囲(両端含む)のリストSliceTopLeftTileIdx[i]は、スライスの左上のタイルのインデックスを規定し、jは0からNumCtusInSlice[i]-1の範囲(両端含む)で、i番目のスライス内のj番目のCTBのピクチャラスタスキャンアドレスを規定し、以下のように導出される。
if(single_slice_per_subpic_flag){
for(i=0;i<=sps_num_subpics_minus1;i++)
NumCtusInSlice[i]=0
for(i=0;i<PicSizeInCtbsY;i++){
sliceIdx=subpic_info_present_flag?CtbToSubpicIdx[i]:0
CtbAddrInSlice[sliceIdx][NumCtusInSlice[sliceIdx]]=i
NumCtusInSlice[sliceIdx]++

}else{
tileIdx=0
for(i=0;i<=num_slices_in_pic_minus1;i++)
NumCtusInSlice[i]=0
for(i=0;i<=num_slices_in_pic_minus1;i++){
SliceTopLeftTileIdx[i]=tileIdx
tileX=tileIdx%NumTileColumns
tileY=tileIdx/NumTileColumns
if(i==num_slices_in_pic_minus1){
slice_width_in_tiles_minus1[i]=NumTileColumns-1-tileX
slice_height_in_tiles_minus1[i]=NumTileRows-1-tileY

if(slice_width_in_tiles_minus1[i]==0&&slice_height_in_tiles_minus1[i]==0){ (29)
ctbY=tileRowBd[tileY]
for(j=0;j<NumSlicesInTile[i]-1;j++){
AddCtbsToSlice(i,tileColBd[tileX],tileColBd[tileX+1],
ctbY,ctbY+SliceHeightInCtusMinus1[i]+1)
ctbY+=SliceHeightInCtusMinus1[i]+1
i++

AddCtbsToSlice(i,tileColBd[tileX],tileColBd[tileX+1],ctbY,tileRowBd[tileY+1])
}else
for(j=0;j<=slice_height_in_tiles_minus1[i];j++)
for(k=0;k<=slice_width_in_tiles_minus1[i];k++)
AddCtbsToSlice(i,tileColBd[tileX+k],tileColBd[tileX+k+1],
tileRowBd[tileY+j],tileRowBd[tileY+j+1])
【化13】


【0101】
6.7. 実施形態#7:MERサイズの信号通知について
7.3.2.3 シーケンスパラメータセットRBSP構文
【0102】
【表24】
【0103】
7.4.3.3 シーケンスパラメータセットRBSP意味論
log2_parallel_merge_level_minu_log2_mincb_coding_block_size_minus2+2は、変数Log2ParMrgLevelの値を規定し、これは8.5.2.3に規定される空間マージ候補の派生処理と、8.5.5.2に規定されるサブブロックマージモードにおける動きベクトル及び参照インデックスの派生処理とにおいて、8.5.2.1項の履歴に基づく動きベクトル予測子リストの更新処理の呼び出しを制御するために使用する。log2_parallel_merge_level_minus_log2_mincbの値は、0からCtbLog2SizeY-log2_min_luma_coding_block_size_minus2-2を含む範囲内とする。変数Log2ParMrgLevelは、以下のように導出される。
Log2ParMrgLevel=log2_parallel_merge_level_minus2+log2_min_luma_coding_block_size_minus2+2 (68)
【0104】
6.8. 実施形態#8矩形スライスの信号通知について
6.5.1 CTBラスタスキャン、タイルスキャン、及びサブピクチャスキャン処理
...
ピクチャラスタスキャンにおけるCTBアドレスからサブピクチャインデックスへの変換を規定する、0からPicSizeInCtbsY_1までの範囲(両端含む)のctbAddrRのためのリストctbToSubpicIdx[ctbAddrRs]は、以下のように導出される。
for(ctbAddrRs=0;ctbAddrRs<PicSizeInCtbsY;ctbAddrRs++){
posX=ctbAddrRs%PicWidthInCtbsY
posY=ctbAddrRs/PicWidthInCtbsY
ctbToSubpicIdx[ctbAddrRs]=-1
for(i=0;ctbToSubpicIdx[ctbAddrRs]<0&&i<=sps_num_subpics_minus1;i++){ (29)
if((posX>=subpic_ctu_top_left_x[i])&&
(posX<subpic_ctu_top_left_x[i]+subpic_width_minus1[i]+1)&&
(posY>=subpic_ctu_top_left_y[i])&&
(posY<subpic_ctu_top_left_y[i]+subpic_height_minus1[i]+1))
ctbToSubpicIdx[ctbAddrRs]=i


【化14】

if(single_slice_per_subpic_flag) {
for(i=0;i<=sps_num_subpics_minus1;i++)
NumCtusInSlice[i]=0
for(i=0;i<PicSizeInCtbsY;i++){
sliceIdx=ctbToSubpicIdx[i]
CtbAddrInSlice[sliceIdx][NumCtusInSlice[sliceIdx]]=i
NumCtusInSlice[sliceIdx]++

}else{
tileIdx=0
for(i=0;i<=num_slices_in_pic_minus1;i++)
NumCtusInSlice[i]=0
for(i=0;i<=num_slices_in_pic_minus1;i++){
SliceTopLeftTileIdx[i]=tileIdx
tileX=tileIdx%NumTileColumns
tileY=tileIdx/NumTileColumns
【化15】

if(sliceWidthInTiles[i]==1&&sliceHeightInTiles[i]==1){ (30)
if(num_exp_slices_in_tile[i]==0){
NumSlicesInTile[i]=1
【化16】

NumSlicesInTile[i]=j

ctbY=tileRowBd[tileY]
for(j=0;j<NumSlicesInTile[i]-1;j++){
AddCtbsToSlice(i,tileColBd[tileX],tileColBd[tileX+1],
ctbY,ctbY+sliceHeightInCtus[i])
ctbY+=sliceHeightInCtus[i]
i++

AddCtbsToSlice(i,tileColBd[tileX],tileColBd[tileX+1],ctbY,tileRowBd[tileY+1])
}else
for(j=0;j<sliceHeightInTiles[i];j++)
for(k=0;k<sliceWidthInTiles[i];k++)
AddCtbsToSlice(i,tileColBd[tileX+k],tileColBd[tileX+k+1],
tileRowBd[tileY+j],tileRowBd[tileY+j+1])
【化17】



iが0からnum_slices_in_pic_minus1までの範囲(両端含む)にある場合、NumCtusInSlice[i]の値は、0よりも大きいことが、ビットストリーム準拠の要件である。また、iが0からnum_slices_in_pic_minus1の範囲(両端含む)であり、jが0からNumCtusInSlice[i]-1の範囲(両端含む)である行列CtbAddrInSlice[i][j]には、0からPicSizeInCtbsY-1の範囲(両端含む)のすべてのCTBアドレスをそれぞれ一度のみ含まれることが、ビットストリーム準拠の要件である。
...
7.3.2.4 ピクチャパラメータセットRBSP構文
【0105】
【表25】
【0106】
7.4.3.4 ピクチャパラメータセット意味論
...
tile_idx_delta_present_flagが0に等しい場合、tile_idx_delta[i]構文要素がPPSに含まれていないことを規定し、PPSを参照するすべてのピクチャは、スライスラスタ順に矩形スライス行と矩形スライス列に分割される。tile_idx_delta_present_flagが1に等しい場合、PPSにtile_idx_delta[i]構文要素が存在してもよく、PPSを参照するピクチャのすべての矩形スライスは、iの値の増加によりtile_idx_delta[i]が示す順序で規定されることを規定する。存在しない場合、tile_idx_delta_present_flagの値は0と推測される。
slice_width_in_tiles_minus1[i]プラス1は、i番目の矩形スライスの幅をタイルの列の単位で規定する。slice_width_in_tiles_minus1[i]の値は、0からNumTileColumns-1までの範囲内にあるべきである。
iがnum_slices_in_pic_minus1未満であり、かつNumTileColumnsが1に等しい場合、slice_width_in_tiles_minus1[i]の値は0に等しいと推測される。
slice_height_in_tiles_minus1[i]プラス1は、num_exp_slices_in_tile[i]が0に等しい場合、i番目の矩形スライスの高さをタイル行の単位で規定する。slice_height_in_tiles_minus1[i]の値は、0からNumTileRows-1までの範囲内にあるべきである。
iがnum_slices_in_pic_minus1未満であり、かつslice_height_in_tiles_minus1[i]が存在しない場合、NumTileRows==1?0:slice_height_in_tiles_minus1[i-1]と等しいと推測される。
num_exp_slices_in_tile[i]は、i番目のスライスを含むタイルにおけるスライスのために明確に提供されるスライスの高さの数を規定する(すなわち、タイルインデックスがSliceTopLeftTileIdx[i]に等しいタイル)。num_exp_slices_in_tile[i]の値は、0からRowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]-1の範囲(両端含む)とする。存在しない場合、num_exp_slices_in_tile[i]の値は0に等しいと推測される。
【化18】

【化19】

...
【0107】
6.9. 実施形態#9:矩形スライスの信号通知について
6.5.1 CTBラスタスキャン、タイルスキャン、及びサブピクチャスキャン処理
...
rect_slice_flagが1に等しい場合、i番目のスライスにおけるCTUの数を規定するリストNumCtusInSlice[i](iは0からnum_slices_in_pic_minus1の範囲で両端含む)、スライスにおける最初のCTUを含むタイルのタイルインデックスを規定するリストSliceTopLeftTileIdx[i](iは0からnum_slices_in_pic_minus1の範囲で両端含む)、i番目のスライス内のj番目のCTBのピクチャラスタスキャンアドレスを規定する行列CtbAddrInSlice[i][j](iは0からnum_slices_in_pic_minus1の範囲で両端含み、jは0からNumCtusInSlice[i]-1の範囲で両端含む)、i番目のスライスを含むタイル(すなわち、タイルインデックスがSliceTopLeftTileIdx[i]に等しいタイル)内のスライス数を規定する変数NumSlicesInTile[i]は、以下のように導出される。
if(single_slice_per_subpic_flag){
for(i=0;i<=sps_num_subpics_minus1;i++)
NumCtusInSlice[i]=0
for(i=0;i<PicSizeInCtbsY;i++){
sliceIdx=ctbToSubpicIdx[i]
CtbAddrInSlice[sliceIdx][NumCtusInSlice[sliceIdx]]=i
NumCtusInSlice[sliceIdx]++

}else{
tileIdx=0
for(i=0;i<=num_slices_in_pic_minus1;i++)
NumCtusInSlice[i]=0
for(i=0;i<=num_slices_in_pic_minus1;i++){
SliceTopLeftTileIdx[i]=tileIdx
tileX=tileIdx%NumTileColumns
tileY=tileIdx/NumTileColumns
if(i<num_slices_in_pic_minus1){
sliceWidthInTiles[i]=slice_width_in_tiles_minus1[i]+1
sliceHeightInTiles[i]=slice_height_in_tiles_minus1[i]+1
}else{
sliceWidthInTiles[i]=NumTileColumns-tileX
sliceHeightInTiles[i]=NumTileRows-tileY
NumSlicesInTile[i]=1

if(sliceWidthInTiles[i]==1&&sliceHeightInTiles[i]==1){ (30)
if( num_exp_slices_in_tile[i]==0){
NumSlicesInTile[i]=1
sliceHeightInCtus[i]=RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]

else{
remainingHeightInCtbsY=RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]
[[for(j=0;j<num_exp_slices_in_tile[i];j++){}]
【化20】

sliceHeightInCtus[i+j]=exp_slice_height_in_ctus_minus1[i][j]+1
remainingHeightInCtbsY-=sliceHeightInCtus[i+j]

[[uniformSliceHeight=sliceHeightInCtus[i+j-1]]]
【化21】

while(remainingHeightInCtbsY>=uniformSliceHeight){
sliceHeightInCtus[i+j]=uniformSliceHeight
remainingHeightInCtbsY-=uniformSliceHeight
j++

if(remainingHeightInCtbsY>0){
sliceHeightInCtus[i+j]=remainingHeightInCtbsY
j++

NumSlicesInTile[i]=j

ctbY=tileRowBd[tileY]
for(j=0;j<NumSlicesInTile[i]-1;j++){
AddCtbsToSlice(i,tileColBd[tileX],tileColBd[tileX+1],
ctbY,ctbY+sliceHeightInCtus[i])
ctbY+=sliceHeightInCtus[i]
i++

AddCtbsToSlice(i,tileColBd[tileX],tileColBd[tileX+1],ctbY,tileRowBd[tileY+1])
}else
for(j=0;j<sliceHeightInTiles[i];j++)
for(k=0;k<sliceWidthInTiles[i];k++)
AddCtbsToSlice(i,tileColBd[tileX+k],tileColBd[tileX+k+1],
tileRowBd[tileY+j],tileRowBd[tileY+j+1])
if(i<num_slices_in_pic_minus1){
if(tile_idx_delta_present_flag)
tileIdx+=tile_idx_delta[i]
else{
tileIdx+=sliceWdithInTiles[i]
if(tileIdx%NumTileColumns==0)
tileIdx+=(sliceHeightInTiles[i]-1)*NumTileColumns




...
【化22】
【0108】
6.10. 実施形態#10:サブピクチャおよびタイルの信号通知について
6.5.1 CTBラスタスキャン、タイルスキャン、及びサブピクチャスキャン処理
タイル列の数を規定する変数NumTileColumns、及びCTBの単位でi番目のタイル列の幅を規定するリストcolWidth[i](iは0からNumTileColumns-1の範囲で両端含む)は、以下のように導出される。
remainingWidthInCtbsY=PicWidthInCtbsY
【化23】

colWidth[i]=tile_column_width_minus1[i]+1
remainingWidthInCtbsY-=colWidth[i]

uniformTileColWidth=tile_column_width_minus1[num_exp_tile_columns_minus1]+1 (23)
while(remainingWidthInCtbsY>=uniformTileColWidth){
colWidth[i++]=uniformTileColWidth
remainingWidthInCtbsY-=uniformTileColWidth

if(remainingWidthInCtbsY>0)
colWidth[i++]=remainingWidthInCtbsY
NumTileColumns=i
タイル行の数を規定する変数NumTileRows、及びCTB単位でj番目のタイル行の高さを規定する0からNumTileRows_1までの範囲(両端含む)のjのリストRowHeight[j]は、以下のように導出される。
remainingHeightInCtbsY=PicHeightInCtbsY
【化24】

RowHeight[j]=tile_row_height_minus1[j]+1
remainingHeightInCtbsY-=RowHeight[j]

uniformTileRowHeight=tile_row_height_minus1[num_exp_tile_rows_minus1]+1 (24)
while(remainingHeightInCtbsY>=uniformTileRowHeight){
RowHeight[j++]=uniformTileRowHeight
remainingHeightInCtbsY-=uniformTileRowHeight

if(remainingHeightInCtbsY>0)
RowHeight[j++]=remainingHeightInCtbsY
NumTileRows=j
7.3.2.3 シーケンスパラメータセットRBSP構文
【0109】
【表26】
【0110】
7.3.2.4 ピクチャパラメータセットRBSP構文
【0111】
【表27】
【0112】
7.4.3.4 ピクチャパラメータセット意味論
...
【化25】

...
【0113】
図7は、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム1900を示すブロック図である。様々な実装形態は、システム1900のコンポーネントの一部又は全部を含んでもよい。システム1900は、映像コンテンツを受信するための入力ユニット1902を含んでもよい。映像コンテンツは、未加工又は非圧縮フォーマット、例えば、8又は10ビットのマルチコンポーネント画素値で受信されてもよく、又は圧縮又は符号化フォーマットで受信されてもよい。入力ユニット1902は、ネットワークインターフェース、周辺バスインターフェース、又は記憶インターフェースを表してもよい。ネットワークインターフェースの例は、イーサネット(登録商標)、PON(登録商標;Passive Optical Network)等の有線インターフェース、およびWi-Fi(登録商標)またはセルラーインターフェース等の無線インターフェースを含む。
【0114】
システム1900は、本明細書に記載される様々なコーディング又は符号化方法を実装することができるコーディングコンポーネント1904を含んでもよい。コーディングコンポーネント1904は、入力ユニット1902からの映像の平均ビットレートをコーディングコンポーネント1904の出力に低減し、映像のコーディング表現を生成してもよい。従って、このコーディング技術は、映像圧縮または映像トランスコーディング技術と呼ばれることがある。コーディングコンポーネント1904の出力は、コンポーネント1906によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力ユニット1902において受信された、記憶された又は通信された映像のビットストリーム(又はコーディング)表現は、コンポーネント1908によって使用されて、表示インターフェース1910に送信される画素値又は表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像伸張(映像展開)と呼ばれることがある。さらに、特定の映像処理操作を「コーディング」操作又はツールと呼ぶが、コーディングツール又は操作は、エンコーダ及びそれに対応する、コーディングの結果を逆にする復号ツール又は操作が、デコーダによって行われることが理解されよう。
【0115】
周辺バスインターフェースまたは表示インターフェースの例は、USB(登録商標;Universal Serial Bus)またはHDMI(登録商標;High Definiyion Multimedia Interface)またはディスプレイポート等を含んでもよい。ストレージインターフェースの例は、SATA(Serial Advanced Technology Attachment)、PCI、IDEインターフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、又はデジタルデータ処理及び/又は映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
【0116】
図8は、映像処理装置3600のブロック図である。装置3600は、本明細書に記載の方法の1つ以上を実装するために使用してもよい。装置3600は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機等に実施されてもよい。装置3600は、1つ以上のプロセッサ3602と、1つ以上のメモリ3604と、映像処理ハードウェア3606と、を含んでもよい。1つまたは複数のプロセッサ3602は、本明細書に記載される1つ以上の方法を実装するように構成されてもよい。メモリ(複数可)3604は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア3606は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。
【0117】
図10は、本開示の技法を利用し得る例示的な映像コーディングシステム100を示すブロック図である。
【0118】
図10に示すように、映像コーディングシステム100は、送信元デバイス110と、送信先デバイス120と、を備えてもよい。送信元デバイス110は、符号化された映像データを生成するものであり、映像符号化デバイスとも呼ばれ得る。送信先デバイス120は、送信元デバイス110によって生成された符号化された映像データを復号してよく、映像復号デバイスと呼ばれ得る。
【0119】
送信元デバイス110は、映像ソース112と、映像エンコーダ114と、入出力(I/O)インターフェース116と、を含んでよい。
【0120】
映像ソース112は、映像キャプチャデバイスなどのソース、映像コンテンツプロバイダからの映像データを受信するためのインターフェース、および/または映像データを生成するためのコンピュータグラフィックスシステム、またはこれらのソースの組み合わせを含んでもよい。映像データは、1または複数のピクチャを含んでもよい。映像エンコーダ114は、映像ソース112からの映像データを符号化し、ビットストリームを生成する。ビットストリームは、映像データのコーディングされた表現を形成するビットのシーケンスを含んでもよい。ビットストリームは、コーディングされたピクチャおよび関連付けられたデータを含んでもよい。コーディングされたピクチャは、ピクチャのコーディングされた表現である。関連付けられたデータは、シーケンスパラメータセット、ピクチャパラメータセット、および他の構文構造を含んでもよい。I/Oインターフェース116は、変復調器(モデム)および/または送信機を含んでもよい。符号化された映像データは、ネットワーク130aを介して、I/Oインターフェース116を介して送信先デバイス120に直接送信されてよい。符号化された映像データは、送信先デバイス120がアクセスするために、記憶媒体/サーバ130bに記憶してもよい。
【0121】
送信先デバイス120は、I/Oインターフェース126、映像デコーダ124、および表示装置122を含んでもよい。
【0122】
I/Oインターフェース126は、受信機および/またはモデムを含んでもよい。I/Oインターフェース126は、送信元デバイス110または記憶媒体/サーバ130bから符号化された映像データを取得してもよい。映像デコーダ124は、符号化された映像データを復号してもよい。表示装置122は、復号された映像データをユーザに表示してもよい。表示装置122は、送信先デバイス120と一体化されてもよく、または外部の表示装置とインターフェースで接続するように構成される送信先デバイス120の外部にあってもよい。
【0123】
映像エンコーダ114および映像デコーダ124は、HEVC(High Efficiency Video Coding)規格、VVM(Versatile Video Coding)規格、および他の現在のおよび/またはさらなる規格等の映像圧縮規格に従って動作してもよい。
【0124】
図11は、映像エンコーダ200の一例を示すブロック図であり、この映像エンコーダ200は、図10に示されるシステム100における映像エンコーダ114であってもよい。
【0125】
映像エンコーダ200は、本開示の技術のいずれか又は全部を実行するように構成されてもよい。図11の例において、映像エンコーダ200は、複数の機能コンポーネントを備える。本開示で説明される技法は、映像エンコーダ200の様々なコンポーネント間で共有されてもよい。いくつかの例では、プロセッサは、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0126】
映像エンコーダ200の機能コンポーネントは、分割ユニット201と、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205及びイントラ予測ユニット206を含んでもよい予測ユニット202と、残差生成ユニット207と、変換ユニット208と、量子化ユニット209と、逆量子化ユニット210と、逆変換ユニット211と、再構成ユニット212と、バッファ213と、エントロピー符号化ユニット214と、を含んでもよい。
【0127】
他の例において、映像エンコーダ200は、より多くの、より少ない、又は異なる機能コンポーネントを含んでもよい。一例において、予測ユニット202は、イントラブロックコピー(IBC)ユニットを含んでもよい。IBCユニットは、少なくとも1つの参照ピクチャが現在の映像ブロックが位置するピクチャであるIBCモードにおいて予測を行ってよい。
【0128】
さらに、動き推定ユニット204及び動き補償ユニット205などのいくつかのコンポーネントは、高度に統合されてもよいが、説明のために、図11の例においては別々に表されている。
【0129】
分割ユニット201は、1つのピクチャを1または複数の映像ブロックに分割してよい。映像エンコーダ200及び映像デコーダ300は、様々な映像ブロックサイズをサポートしてもよい。
【0130】
モード選択ユニット203は、例えば、エラー結果に基づいて、イントラ又はインターのいずれかのコーディングモードの1つを選択し、得られたイントラ又はインターコーディングブロックを、残差生成ユニット207に供給して残差ブロックデータを生成し、また再構成ユニット212に供給して参照ピクチャとして使用するために符号化ブロックを再構成してもよい。いくつかの例において、モード選択ユニット203は、インター予測信号およびイントラ予測信号に基づいて予測を行うCIIP(Combination of Intra and Inter Prediction)モードを選択してもよい。モード選択ユニット203は、インター予測の場合、ブロックのために動きベクトルの解像度(例えば、サブピクセル又は整数ピクセル精度)を選択してもよい。
【0131】
現在の映像ブロックに対してインター予測を実行するために、動き推定ユニット204は、バッファ213からの1または複数の参照フレームと現在の映像ブロックとを比較することにより、現在の映像ブロックのために動き情報を生成してもよい。動き補償ユニット205は、現在の映像ブロックに関連付けられたピクチャ以外のバッファ213からのピクチャの動き情報及び復号サンプルに基づいて、現在の映像ブロックのために予測映像ブロックを判定してもよい。
【0132】
動き推定ユニット204及び動き補償ユニット205は、例えば、現在の映像ブロックがIスライスであるか、Pスライスであるか、又はBスライスであるかに基づいて、現在の映像ブロックに対して異なる演算を実行してもよい。
【0133】
いくつかの例において、動き推定ユニット204は、現在の映像ブロックに対して単方向予測を実行し、動き推定ユニット204は、現在の映像ブロックに対する参照映像ブロックのために、リスト0又はリスト1の参照ピクチャを検索してもよい。そして、動き推定ユニット204は、参照映像ブロックと、現在の映像ブロックと参照映像ブロックとの間の空間的変位を示す動きベクトルとを含む、リスト0またはリスト1における参照ピクチャを示す参照インデックスを生成してもよい。動き推定ユニット204は、参照インデックス、予測方向インジケータ、および動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償ユニット205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在のブロックの予測映像ブロックを生成してもよい。
【0134】
他の例において、動き推定ユニット204は、現在の映像ブロックを双方向予測してもよく、動き推定ユニット204は、リスト0における参照ピクチャの中から現在の映像ブロックために参照映像ブロックを検索してもよく、また、リスト1における参照ピクチャの中から現在の映像ブロックのために別の参照映像ブロックを検索してもよい。そして、動き推定ユニット204は、参照映像ブロックを含むリスト0およびリスト1における参照ピクチャを示す参照インデックスと、参照映像ブロックと現在の映像ブロックとの間の空間的変位を示す動きベクトルとを生成してもよい。動き推定ユニット204は、現在の映像ブロックの参照インデックスおよび動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償ユニット205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在の映像ブロックの予測映像ブロックを生成してもよい。
【0135】
いくつかの例において、動き推定ユニット204は、デコーダの復号処理のために、動き情報のフルセットを出力してもよい。
【0136】
いくつかの例では、動き推定ユニット204は、現在の映像のために動き情報のフルセットを出力しなくてもよい。むしろ、動き推定ユニット204は、別の映像ブロックの動き情報を参照して、現在の映像ブロックの動き情報を信号通知してもよい。例えば、動き推定ユニット204は、現在の映像ブロックの動き情報が近傍の映像ブロックの動き情報に十分に類似していると判定してもよい。
【0137】
一例において、動き推定ユニット204は、現在の映像ブロックに関連付けられた構文構造において、現在の映像ブロックが別の映像ブロックと同じ動き情報を有することを映像デコーダ300に示す値を示してもよい。
【0138】
別の例において、動き推定ユニット204は、現在の映像ブロックに関連付けられた構文構造において、別の映像ブロックと、MVD(Motion Vector Difference)と、を識別してもよい。動きベクトル差分は、現在の映像ブロックの動きベクトルと、示された映像ブロックの動きベクトルとの差分を示す。映像デコーダ300は、指示された映像ブロックの動きベクトルと、動きベクトル差分とを用いて、現在の映像ブロックの動きベクトルを判定してもよい。
【0139】
上述したように、映像エンコーダ200は、動きベクトルを予測的に信号通知してもよい。映像エンコーダ200によって実装され得る予測信号通知技法の2つの例は、AMVP(Advanced Motion Vector Prediction)およびマージモード信号通知を含む。
【0140】
イントラ予測ユニット206は、現在の映像ブロックに対してイントラ予測を行ってもよい。イントラ予測ユニット206が現在の映像ブロックをイントラ予測する場合、イントラ予測ユニット206は、同じピクチャにおける他の映像ブロックの復号されたサンプルに基づいて、現在の映像ブロックのための予測データを生成してもよい。現在の映像ブロックのための予測データは、予測された映像ブロック及び様々な構文要素を含んでもよい。
【0141】
残差生成ユニット207は、現在の映像ブロックから現在の映像ブロックの予測された映像ブロックを減算することによって(例えば、マイナス符号によって示されている)、現在の映像ブロックのために残差データを生成してもよい。現在の映像ブロックの残差データは、現在の映像ブロックにおけるサンプルの異なるサンプル成分に対応する残差映像ブロックを含んでもよい。
【0142】
他の例において、例えば、スキップモードにおいて、現在の映像ブロックのための残差データがなくてもよく、残差生成ユニット207は、減算演算を実行しなくてもよい。
【0143】
変換処理ユニット208は、現在の映像ブロックに関連付けられた残差映像ブロックに1または複数の変換を適用することによって、現在の映像ブロックのために1または複数の変換係数映像ブロックを生成してもよい。
【0144】
変換処理ユニット208が現在の映像ブロックに関連付けられた変換係数映像ブロックを生成した後、量子化ユニット209は、現在の映像ブロックに関連付けられた1または複数の量子化パラメータ(QP)の値に基づいて、現在の映像ブロックに関連付けられた変換係数映像ブロックを量子化してもよい。
【0145】
逆量子化ユニット210および逆変換ユニット211は、変換係数映像ブロックに逆量子化および逆変換をそれぞれ適用し、変換係数映像ブロックから残差映像ブロックを再構成してもよい。再構成ユニット212は、予測ユニット202が生成した1または複数の予測映像ブロックから対応するサンプルに再構成された残差映像ブロックを加え、バッファ213での記憶のために現在のブロックに関連付けられた再構成された映像ブロックを生成してよい。
【0146】
再構成ユニット212が映像ブロックを再構成した後、映像ブロックにおける映像ブロッキングアーチファクトを縮小するために、ループフィルタリング演算を行ってもよい。
【0147】
エントロピー符号化ユニット214は、映像エンコーダ200の他の機能コンポーネントからデータを受信してもよい。エントロピー符号化ユニット214は、データを受信すると、1または複数のエントロピー符号化演算を行い、エントロピー符号化されたデータを生成し、エントロピー符号化されたデータを含むビットストリームを出力してもよい。
【0148】
図12は、映像デコーダ300の一例を示すブロック図であり、この映像デコーダ300は、図10に示されるシステム100における映像デコーダ114であってもよい。
【0149】
映像デコーダ300は、本開示の技術のいずれか又は全部を実行するように構成されてもよい。図12の実施例において、映像デコーダ300は、複数の機能コンポーネントを含む。本開示で説明される技法は、映像デコーダ300の様々なコンポーネント間で共有されてもよい。いくつかの例では、プロセッサは、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0150】
図12の例において、映像デコーダ300は、エントロピー復号ユニット301、動き補償ユニット302、イントラ予測ユニット303、逆量子化ユニット304、逆変換ユニット305、及び再構成ユニット306、並びにバッファ307を備える。映像デコーダ300は、いくつかの例では、映像エンコーダ200(図11)に関して説明した符号化パスとほぼ逆の復号パスを行ってもよい。
【0151】
エントロピー復号ユニット301は、符号化されたビットストリームを取り出す。符号化されたビットストリームは、エントロピー符号化された映像データ(例えば、映像データの符号化されたブロック)を含んでもよい。エントロピー復号ユニット301は、エントロピー符号化された映像データを復号し、エントロピー復号された映像データから、動き補償ユニット302は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、および他の動き情報を含む動き情報を決定してもよい。動き補償ユニット302は、例えば、AMVP及びマージモードを実行することにより、このような情報を判定してもよい。
【0152】
動き補償ユニット302は、動き補償されたブロックを生成してもよく、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセルの精度で使用される補間フィルタのための識別子が、構文要素に含まれてもよい。
【0153】
動き補償ユニット302は、映像ブロックの符号化中に映像エンコーダ200によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数画素のための補間値を計算してもよい。動き補償ユニット302は、受信した構文情報に基づいて、映像エンコーダ200が使用する補間フィルタを判定し、この補間フィルタを使用して予測ブロックを生成してもよい。
【0154】
動き補償ユニット302は、符号化された映像シーケンスのフレームおよび/またはスライスを符号化するために使用されるブロックのサイズを判定するための構文情報、符号化された映像シーケンスのピクチャの各マクロブロックがどのように分割されるかを記述する分割情報、各分割がどのように符号化されるかを示すモード、各インター符号化ブロックに対する1または複数の参照フレーム(および参照フレームリスト)、および符号化された映像シーケンスを復号するための他の情報のいくつかを用いてよい。
【0155】
イントラ予測ユニット303は、例えば、ビットストリームにおいて受信したイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成してもよい。逆量子化ユニット303は、ビットストリームに提供され、エントロピー復号ユニット301によって復号された量子化映像ブロック係数を逆量子化(すなわち、非量子化)する。逆変換ユニット303は、逆変換を適用する。
【0156】
再構成ユニット306は、残差ブロックと、動き補償ユニット202又はイントラ予測ユニット303によって生成された対応する予測ブロックとを合計し、復号されたブロックを形成してもよい。所望であれば、ブロックアーチファクトを除去するために、復号されたブロックをフィルタリングするためにデブロッキングフィルタを適用してもよい。復号された映像ブロックは、バッファ307に記憶され、バッファ307は、後続の動き補償/イントラ予測のために参照ブロックを提供し、また表示装置に表示するために復号された映像を生成する。
【0157】
次に、いくつかの実施形態において好適な解決策を列挙する。
【0158】
以下の解決策は、前章(例えば、項目1)で論じた技術の例示的な実施形態を示す。
【0159】
1.映像処理方法(例えば、図9に記載される方法900)は、1つ以上の映像ピクチャを含む映像と映像のコーディングされた表現との間の変換を行うこと(902)を含み、各映像ピクチャは1つ以上のスライスを含むサブピクチャを含み、コーディングされた表現はフォーマット規則に準拠し、フォーマット規則は、映像ピクチャに対して矩形スライスモードが有効化されている場合、映像ピクチャにおける各サブピクチャの各スライスに対するピクチャレベルスライスインデックスを、コーディングされた表現における明確な信号通知なしに導出することを規定し、且つ、フォーマット規則は、各スライスにおけるコーディングツリーユニットの数がピクチャレベルスライスインデックスから導出可能であることを規定する。
【0160】
以下の解決策は、前章(例えば、項目2)で論じた技術の例示的な実施形態を示す。
【0161】
2.映像処理方法は、1つ以上の映像ピクチャを含む映像と映像のコーディングされた表現との間の変換を行うことを含み、各映像ピクチャは1つ以上のスライスを含む1つ以上のサブピクチャを含み、コーディングされた表現はフォーマット規則に準拠し、フォーマット規則は、コーディングされた表現におけるサブピクチャレベルスライスインデックスを信号通知せずに、コーディングされた表現における情報に基づいてサブピクチャレベルスライスインデックスを導出可能であることを規定する。
【0162】
3.前記フォーマット規則は、矩形のスライス構造を使用することによって、サブピクチャレベルスライスインデックスが、1つのサブピクチャにおけるスライスのリストにおける当該スライスへのインデックスに対応することを規定する、解決策2に記載の方法。
【0163】
4.前記フォーマット規則は、前記サブピクチャレベルスライスインデックスがピクチャレベルスライスインデックスの特定の値から導出されることを規定する、解決策2に記載の方法。
【0164】
以下の解決策は、前章(例えば、項目5,6)で論じた技術の例示的な実施形態を示す。
【0165】
5.映像処理方法は、1つ以上の映像ピクチャを含む映像と映像のコーディングされた表現との間の変換を行うことを含み、各映像ピクチャは1つ以上のサブピクチャ及び/又は1つ以上のタイルを含み、コーディングされた表現はフォーマット規則に準拠し、変換は制約規則に準拠することを含む。
【0166】
6.前記制約規則は、1つのタイルが複数のサブピクチャに含まれていてはならないことを規定する、解決策5に記載の方法。
【0167】
7.前記制約規則は、1つのサブピクチャが、2つのスライスが属する対応するタイルよりも小さい2つのスライスを含むことができないことを規定する、解決策5に記載の方法。
【0168】
以下の解決策は、前章(例えば、項目7、8)で論じた技術の例示的な実施形態を示す。
【0169】
8.映像処理方法は、1つ以上の映像ピクチャを含む映像と映像のコーディングされた表現との間の変換を行うことを含み、各映像ピクチャは1つ以上のタイル及び/又は1つ以上のスライスを含み、コーディングされた表現はフォーマット規則に準拠し、フォーマット規則は、映像ピクチャレベルの1つのフィールドが映像ピクチャにおけるスライス及び/又はタイルの分割に関する情報を搬送することを規定する。
【0170】
9.前記フィールドは、映像ピクチャヘッダを含む、解決策8に記載の方法。
【0171】
10.前記フィールドはピクチャパラメータセットを備える、解決策8に記載の方法。
【0172】
11.前記フォーマット規則は、映像ピクチャレベルの前記フィールドにスライス分割情報を含めることによって、前記スライスレベルのスライス分割情報を省略することを規定する、解決策8から10のいずれかに記載の方法。
【0173】
以下の解決策は、前章(例えば、項目9)で論じた技術の例示的な実施形態を示す。
【0174】
12.映像処理方法は、1つ以上のピクチャを含む映像とこの映像のコーディングされた表現との間の変換を行うことを含み、この変換は、1つの映像ピクチャを分割する最小スライス数が、この映像ピクチャを分割するために矩形分割を使用するかどうかの関数である分割規則に従う。
【0175】
13.前記分割規則は、非矩形分割のために少なくとも2つのスライスを使用し、矩形分割のために少なくとも1つのスライスを使用することを規定する、解決策12に記載の方法。
【0176】
14.前記分割規則は、前記映像ピクチャを分割するために使用されるサブピクチャの数及び/又は数の関数でもある、解決策12に記載の方法。
【0177】
以下の解決策は、前章(例えば、項目10、11)で論じた技術の例示的な実施形態を示す。
【0178】
15.映像処理方法は、映像の映像領域の映像スライスと前記映像のコーディングされた表現との間の変換を行うことを含み、前記コーディングされた表現はフォーマット規則に準拠し、前記フォーマット規則は、前記コーディングされた表現が前記映像スライスの左上位置に基づいて前記映像スライスを信号通知することを規定し、前記フォーマット規則は、前記コーディングされた表現が映像ユニットレベルで信号通知される分割情報における前記映像スライスの高さ及び/又は幅を信号通知することを規定する。
【0179】
16.前記フォーマット規則は、前記映像スライスが前記フォーマット規則によって規定されるスライスの順に信号通知されることを規定する、解決策15に記載の方法。
【0180】
17.前記映像領域は1つのサブピクチャに対応し、前記映像ユニットレベルは1つの映像ピクチャに対応する、解決策15に記載の方法。
【0181】
以下の解決策は、前章(例えば、項目12)で論じた技術の例示的な実施形態を示す。
【0182】
18.映像処理方法は、映像ピクチャを含む映像とこの映像のコーディングされた表現との間の変換を行うことを含み、このコーディングされた表現はフォーマット規則に準拠し、このフォーマット規則は、矩形スライスにおける第1タイルのタイルインデックスと次の矩形スライスにおける第1タイルのタイルインデックスとの間の差を信号通知することを省略することを規定する。
【0183】
19.前記差は、前記映像ピクチャにおける第0のスライスと前記矩形スライスとから導出可能である、解決策18に記載の方法。
【0184】
以下の解決策は、前章(例えば、項目13)で論じた技術の例示的な実施形態を示す。
【0185】
20.映像処理方法は、映像とこの映像のコーディングされた表現との間の変換を行うことを含み、このコーディングされた表現はフォーマット規則に準拠し、このフォーマット規則は、映像ピクチャの幅とコーディングツリーユニットのサイズとの間の関係が、この映像ピクチャにおけるタイルの列又は行の数を導出するために使用される情報の信号通知を制御することを規定する。
【0186】
21.前記フォーマット規則は、前記映像ピクチャの幅が前記コーディングツリーユニットの幅以下である場合、タイルの行数又はタイルの列数を信号通知することを排除することを規定する、解決策20に記載の方法。
【0187】
以下の解決策は、前章(例えば、項目16)で論じた技術の例示的な実施形態を示す。
【0188】
22.映像処理方法は、1つ以上の映像ピクチャを含む映像とこの映像のコーディングされた表現との間の変換を行うことを含み、このコーディングされた表現はフォーマット規則に準拠し、このフォーマット規則は、均一な間隔のタイル及び不均一な間隔のタイルを備えるピクチャのためのこのコーディングされた表現にタイルレイアウト情報が含まれることを規定する。
【0189】
23.前記タイルレイアウト情報は、ピクチャパラメータセットに含まれる構文フラグに含まれる、解決策22に記載の方法。
【0190】
24.明確に信号通知されるタイルの行又は列の数が、不均一な間隔のタイルの数と同程度である、解決策22から23のいずれか1つに記載の方法。
【0191】
25.明確に信号通知されるタイルの行又は列の数が、均一な間隔のタイルの数と同程度である、解決策22から23のいずれか1つに記載の方法。
【0192】
26.前記映像領域は、映像コーディングユニットを含む、上記解決策のいずれか1つに記載の方法。
【0193】
27.前記映像領域は映像ピクチャを含む、上記解決策のいずれか1つに記載の方法。
【0194】
28.前記変換は、前記映像を前記コーディングされた表現に符号化することを含む、解決策1から27のいずれかに記載の方法。
【0195】
29.前記変換は、前記映像の画素値を生成すべく前記コーディングされた表現を復号することを含む、解決策1から27のいずれかに記載の方法。
【0196】
30.解決策1から29の1つ以上に記載の方法を実装するように構成されたプロセッサを備える、映像復号装置。
【0197】
31.解決策1から29の1つ以上に記載の方法を実装するように構成されたプロセッサを備える、映像符号化装置。
【0198】
32.コンピュータコードが記憶されたコンピュータプログラム製品であって、前記コードは、プロセッサにより実行されると、前記プロセッサに、解決策1から29のいずれかに記載の方法を実装させるコンピュータプログラム製品。
【0199】
33.本明細書に記載の方法、装置またはシステム。
【0200】
図13は、本技術にしたがった映像処理方法を示すフローチャートである。この方法1300は、動作1310において、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のスライスを備える。この規則は、条件が満たされたことに応答して、2つの矩形スライスのタイルインデックス間の差を示す構文要素を信号通知することを規定し、ここで、スライスインデックスの1つをiとして表す(iは整数である)。
【0201】
幾つかの実施形態において、2つの長方形スライスの第2長方形スライスは、(i+1)番目の長方形スライスとして表され、構文要素は、(i+1)番目の長方形スライスにおける第1コーディングツリーユニットを含む第1タイルの第1タイルインデックスと、i番目の長方形スライスにおける第1コーディングツリーユニットを含む第2タイルの第2タイルインデックスとの間の差を示す。幾つかの実施形態において、前記少なくとも1つの条件が満たされる工程は、iが(前記映像ピクチャにおける矩形スライスの数-1)よりも小さいことを特徴とする。幾つかの実施形態において、前記少なくとも1つの条件が満たされる工程は、iが(前記映像ピクチャにおける矩形スライスの数-1)に等しくないことを含む。
【0202】
図14は、本技術にしたがった映像処理方法を示すフローチャートである。この方法1400は、動作1410において、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のサブピクチャを備え、各サブピクチャは、1つ以上の矩形スライスを備える。この規則は、各サブピクチャにおける矩形スライスごとにサブピクチャレベルでのスライスインデックスを導出し、各スライスにおけるコーディングツリーユニットの数を判定することを規定する。
【0203】
幾つかの実施形態において、サブピクチャレベルのスライスインデックスは、サブピクチャにおけるスライスのリストにおける対応するスライスの復号順に基づいて判定される。幾つかの実施形態において、第1スライスのためのサブピクチャレベルの第1スライスインデックスが、第2スライスのためのサブピクチャレベルの第2スライスインデックスよりも小さい場合、第1スライスは、復号順に従って、第2スライスの前方で処理される。幾つかの実施形態において、サブピクチャレベルのスライスインデックスは変数SubpicLevelSliceIdxを用いて表される。幾つかの実施形態において、スライスアドレスは、サブピクチャレベルのスライスインデックスに基づいて判定される。幾つかの実施形態において、1つのスライスのサブピクチャレベルにおけるスライスインデックスは、該スライスを含む第1サブピクチャに基づいて判定される。幾つかの実施形態において、サブピクチャレベルのスライスインデックスは負でない整数である。幾つかの実施形態において、サブピクチャレベルのスライスインデックスは、0以上N未満であり、Nはサブピクチャにおけるスライス数である。
【0204】
幾つかの実施形態において、第1スライスと第2スライスとが異なる場合、第1スライスのためのサブピクチャレベルの第1スライスインデックスは、第2スライスのためのサブピクチャレベルの第2スライスインデックスとは異なり、第1スライスと第2スライスとは同じサブピクチャにある。幾つかの実施形態において、第1スライスのためのサブピクチャレベルの第1スライスインデックスは、第2スライスのためのサブピクチャレベルの第2スライスインデックスよりも小さい場合、第1スライスのためのピクチャレベルの第1スライスインデックスは、第2スライスのためのピクチャレベルの第2スライスインデックスよりも小さい。幾つかの実施形態において、1つのスライスのサブピクチャレベルにおけるスライスインデックスは、このスライスのピクチャレベルにおけるスライスインデックスに基づいて判定される。
【0205】
図15は、本技術にしたがった映像処理方法を示すフローチャートである。方法1500は、工程1510において、1つ以上のサブピクチャを含む映像の映像ピクチャと映像のビットストリームとの間の変換のために、1つのサブピクチャにおける1つのスライスのサブピクチャレベルスライスインデックスとこのスライスのピクチャレベルスライスインデックスとの間のマッピング関係を決定することを含む。方法1500は、また、工程1520において、その判定に基づいて変換を行うことを含む。
【0206】
幾つかの実施形態において、前記マッピング関係は、前記サブピクチャのピクチャレベルスライスインデックス及びサブピクチャインデックスを利用して索引付けられる二次元配列として表される。幾つかの実施形態において、前記ピクチャレベルのスライスインデックスは、1つ以上のサブピクチャの各々におけるスライス数を示す配列に基づき判定される。幾つかの実施形態において、1つ以上のサブピクチャの各々における2次元配列及びスライス数を示す配列は、すべてのスライスをピクチャレベルスライスインデックスの順に走査する処理に基づいて判定される。幾つかの実施形態において、前記スライスのピクチャレベルスライスインデックスは、前記マッピング関係を使用して判定され、前記スライスにおけるコーディングツリーブロック及び/又はアドレスの数は、前記スライスのピクチャレベルスライスインデックスに基づいて判定される。
【0207】
図16は、本技術にしたがった映像処理方法を示すフローチャートである。この方法1600は、工程1610において、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のサブピクチャを備える。この規則は、映像のタイルが映像ピクチャの単一のサブピクチャ内に完全に位置することを規定する。
【0208】
幾つかの実施形態において、第1スライスは第1タイルに位置し、第1スライスは第1タイルより小さい。第2スライスは、第2タイルに位置し、第2スライスは、第2タイルよりも小さい。第1タイルは第2タイルと異なり、第1スライス及び第2スライスは1つのサブピクチャの異なるスライスに位置する。
【0209】
図17は、本技術にしたがった映像処理方法を示すフローチャートである。この方法1700は、工程1710において、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のサブピクチャを備える。このビットストリームは、ピクチャに関連する構文構造にピクチャを分割する情報が含まれることを規定するフォーマット規則に準拠する。
【0210】
幾つかの実施形態において、前記構文構造はピクチャヘッダ又はピクチャパラメータセットを備える。幾つかの実施形態において、映像ユニットが、ピクチャを分割する情報がこの構文構造に含まれているかどうかを示すフラグを含む。幾つかの実施形態において、前記映像ユニットは、ピクチャヘッダ、ピクチャパラメータセット又はシーケンスパラメータセットを備える。幾つかの実施形態において、ピクチャを分割する情報がピクチャヘッダ及びピクチャパラメータセットの両方に含まれる場合、ピクチャヘッダに含まれる情報が変換に用いられる。
【0211】
図18は、本技術にしたがった映像処理方法を示すフローチャートである。方法1800は、工程1810において、非矩形形状を有する1つ以上のスライスを備える映像の映像ピクチャとこの映像のビットストリームとの間の変換を行うために、この映像ピクチャのスライス分割情報を決定することを含む。方法1800は、また、工程1820において、その判定に基づいて変換を行うことを含む。
【0212】
幾つかの実施形態において、前記スライス分割情報は前記映像の映像ユニットに記憶され、前記映像ユニットはピクチャパラメータセット又はピクチャヘッダを備える。幾つかの実施形態において、前記ビットストリームは、前記映像ピクチャのスライス分割情報が前記スライスを含む映像ユニットに関連する構文構造に含まれることを規定するフォーマット規則に準拠する。幾つかの実施形態において、映像ピクチャのスライス分割情報は、ピクチャにおけるスライス数を示す値を含む。幾つかの実施形態において、前記映像ピクチャの前記スライス分割情報は、1つのスライス内の1つのブロックユニットのインデックスを示す値を含む。幾つかの実施形態において、1つのスライス内の1つのブロックユニットのインデックスを示す値は、映像ピクチャのスライス分割情報から省略される。幾つかの実施形態において、前記映像ピクチャの前記スライス分割情報は、スライス内のブロックユニットの数を示す値を含む。幾つかの実施形態において、スライス内のブロックユニットの数を示す値は、映像ピクチャのスライス分割情報から省略される。幾つかの実施形態において、前記ブロックユニットはコーディングツリーユニット又はタイルである。幾つかの実施形態において、映像ピクチャのスライス分割情報は、スライスヘッダから省略される。幾つかの実施形態において、スライスのスライスインデックスはスライスヘッダに含まれ、スライスのピクチャレベルスライスインデックスはスライスのアドレスに基づいて判定される。
【0213】
幾つかの実施形態において、1つ以上のスライスの各々のスライス分割情報は、映像ユニットに関連する構文構造の順に編成される。幾つかの実施形態において、1つ以上のスライスの各々のスライス分割情報は構文構造に昇順に含まれる。幾つかの実施形態において、1つ以上のスライスの各々のスライス分割情報は構文構造に降順に含まれる。
【0214】
幾つかの実施形態において、1つ以上のスライスの少なくとも1つのスライスのスライス分割情報はビットストリームにおいて省略される。幾つかの実施形態において、1つ以上のスライスの少なくとも1つのスライスのスライス分割情報は、前記ビットストリームに含まれた他のスライスのスライス分割情報から推論される。幾つかの実施形態において、スライスS-1のためのブロックユニットの数は、ビットストリームに含まれず、ここで、Sは、映像ピクチャにおけるスライス数を表し、Sは1よりも大きい。
【0215】
図19は、本技術にしたがった映像処理方法を示すフローチャートである。方法1900は、工程1910において、1つ以上のスライスを含む映像の映像ピクチャと該映像のビットストリームとの間の変換を規則に従って行うことを含む。この規則は、映像ピクチャにおけるスライス数が、映像ピクチャに矩形分割を適用するか又は非矩形分割を適用するかに基づいて決定される最小スライス数以上であることを規定する。
【0216】
幾つかの実施形態において、非矩形分割が適用される場合、最小スライス数は2であり、矩形分割が適用される場合、最小スライス数は1である。幾つかの実施形態において、非矩形分割が適用される場合、最小スライス数は1であり、矩形分割が適用される場合、最小スライス数は1である。幾つかの実施形態において、前記最小スライス数は前記映像ピクチャにおけるサブピクチャの数に基づき更に判定される。
【0217】
図20は、本技術にしたがった映像処理方法を示すフローチャートである。この方法2000は、工程2010において、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のスライスを備える。映像ピクチャのスライス分割情報が映像ユニットの構文構造に含まれている場合、スライスが、左上の位置とスライスの寸法とで表される。
【0218】
幾つかの実施形態において、スライスの左上の位置及び寸法は、スライス内にあるブロックユニットの左上の位置、ブロックユニットの寸法、及びブロックユニットの寸法を用いて測定されたスライスの寸法を用いて示される。幾つかの実施形態において、各スライスの左上の位置及び各スライスの寸法は、順に構文構造に含まれる。
【0219】
図21は、本技術にしたがった映像処理方法を示すフローチャートである。この方法2100は、工程2110において、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のサブピクチャを備え、各サブピクチャは、1つ以上のスライスを備える。この規則は、各サブピクチャにおける1つ以上のスライスの分割情報がビットストリームに存在する方法を規定する。
【0220】
幾つかの実施形態において、前記映像ユニットは、シーケンスパラメータセット、ピクチャパラメータセット又はピクチャヘッダを含む。幾つかの実施形態において、前記1つ以上のサブピクチャの分割情報は、サブピクチャインデックスに基づいて昇順に配列される。幾つかの実施形態において、各サブピクチャにおける1つ以上のスライスの分割情報は、サブピクチャレベルスライスインデックスに基づいて昇順に配列される。
【0221】
図22は、本技術にしたがった映像処理方法を示すフローチャートである。この方法2200は、工程2210において、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上の矩形スライスを備え、各スライスは、1つ以上のタイルを備える。この規則は、ith矩形スライスにおける第1タイルの第1タイルインデックスと、(i+1)th矩形スライスにおける第1タイルの第2タイルインデックスとの間の差を信号通知することを省略することを規定する。
【0222】
幾つかの実施形態において、(i+1)th矩形スライスにおける第1タイルの第2タイルインデックスは、0thからithにインデックス付けされた矩形スライスに基づいて導出される。幾つかの実施形態において、(i+1)th長方形スライスにおける第1タイルの第2タイルインデックスは、0thからithにインデックス付けされた長方形スライスによって規定されるレンジ外の最小タイルインデックスとすることができる。
【0223】
図23は、本技術にしたがった映像処理方法を示すフローチャートである。方法2300は、工程2310において、映像の映像ピクチャと映像のビットストリームとの変換を行うために、映像ピクチャにおけるタイルの列数及びタイルの行数を導出するための情報が、映像ピクチャの寸法とコーディングツリーブロックの寸法との関係に応じてビットストリームに条件付きで含まれることを判定することを含む。方法2300は、また、工程2320において、その判定に基づいて変換を行うことを含む。
【0224】
幾つかの実施形態において、映像ピクチャの幅がコーディングツリーブロックの幅以下である場合、前記情報は省略される。幾つかの実施形態において、映像ピクチャの高さがコーディングツリーブロックの高さ以下である場合、前記情報は省略される。
【0225】
図24は、本技術にしたがった映像処理方法を示すフローチャートである。この方法2400は、工程2410において、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のサブピクチャを備える。このビットストリームは、フォーマット規則に準拠し、ビットストリーム中に、1つのスライスを含むサブピクチャのサブピクチャ識別子を規定する変数が存在する場合、この構文要素に対応する第2変数がこの変数に等しいという条件を満たす構文要素が1つしか存在しないことを規定する。
【0226】
幾つかの実施形態において、変数はslice_subpic_idであり、第2変数はSubpicIdValである。この構文要素に対応する構文要素は、SubpicIdVal[CurrSubpicIdx]で表される。
【0227】
図25は、本技術にしたがった映像処理方法を示すフローチャートである。この方法2500は、工程2510において、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のサブピクチャを備える。ビットストリームにおいて非矩形分割が適用されるか、又はサブピクチャ情報が省略される場合、1つのスライスにおける2つのタイルは異なるアドレスを有する。
【0228】
幾つかの実施形態において、1つ目の構文フラグrect_slice_flagは非矩形分割が適用されるかを示し、2つ目の構文フラグsubpic_info_present_infoは前記サブピクチャ情報が前記ビットストリームに存在するかを示す。
【0229】
図26は、本技術にしたがった映像処理方法を示すフローチャートである。この方法2600は、工程2610において、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この映像ピクチャは、1つ以上のタイルを備える。この規則は、1つ以上のタイルが均一な間隔及び不均一な間隔の両方で編成される場合、1つの構文要素を使用してタイルレイアウトのタイプを示すことを規定する。
【0230】
幾つかの実施形態において、構文要素は、タイルレイアウトにおいて、均一な間隔が不均一な間隔に続くか、または不均一な間隔が均一な感覚に続くかを示すピクチャパラメータセットに含まれる。幾つかの実施形態において、タイルレイアウトは、不均一な間隔のタイルを含み、明確に示されるタイルの列又は行の数は、不均一な間隔のタイルの総数以上である。幾つかの実施形態において、タイルレイアウトは、均一な間隔のタイルを含み、明確に示されるタイルの列又は行の数は、均一な間隔のタイルの総数以上である。幾つかの実施形態において、タイルレイアウトにおいて、均一な間隔が不均一な間隔に続き、まず第1逆順に基づいて不均一な間隔のタイルの寸法が判定され、次に第2逆順に基づいて均一な間隔のタイルの寸法が判定される。幾つかの実施形態において、この寸法は、タイルの列の幅又はタイルの行の高さを含む。
【0231】
図27は、本技術にしたがった映像処理方法を示すフローチャートである。この方法2700は、工程2710において、規則に従って、映像の映像ピクチャと映像のビットストリームとの間での変換を行うことを含む。この規則は、変換においてマージ推定領域(Merge Estimation Region、MER)のサイズを処理するかどうか、又はどのように処理するかを、最小許容コーディングブロックサイズに依存することを規定する。
【0232】
幾つかの実施形態において、前記MERサイズは最小許容コーディングブロックサイズ以上であることができる。幾つかの実施形態において、MERサイズはMER_sizeで表され、最小許容コーディングブロックサイズはMinCbSizeYで表され、Log2(MER_size)とLog2(MinCbSizeY)との差はビットストリームに含まれる。
【0233】
図28は、本技術にしたがった映像処理方法を示すフローチャートである。方法2800は、工程2810において、規則に従って、少なくとも1つの映像タイルを備える映像とこの映像のビットストリームとの変換を行うことを含む。この規則は、コーディングツリーユニットの単位で映像タイルにおけるスライスの高さを、そのスライスを含む映像タイルのスライスについて明確に提供されるスライス高さの数を示すビットストリーム中の第1構文要素の値に基づいて導出することを規定する。
【0234】
幾つかの実施形態において、コーディングツリーユニット単位での映像タイルにおけるスライスの高さは、第1構文要素の値が0に等しい場合、映像の情報から導出される。幾つかの実施形態において、コーディングツリーユニット単位での映像タイルにおけるスライスの高さは、sliceHeightInCtus[i]で表される。sliceHeightInCtus[i]は、行の高さRowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]の値に等しく、ここで、SliceTopLeftTileIdxは、スライスにおける第1コーディングツリーユニットを含むタイルのタイルインデックスを規定し、NumTileColumnsは、タイル列の数を規定し、行高さRowHeight[j]の値は、コーディングツリーブロックの単位でj番目の行の高さを規定する。
【0235】
幾つかの実施形態において、コーディングツリーユニット単位での映像タイルにおけるスライスの高さは、映像タイルにおけるスライスの高さがビットストリームに存在しない場合、映像の情報から得られる。幾つかの実施形態において、コーディングツリーユニット単位での映像タイルにおけるスライスの高さは、映像タイルにおけるスライスの高さを示す、ビットストリームに存在する第2構文要素に基づいて導出される。幾つかの実施形態において、第1構文要素が0に等しい場合、このスライスを含む映像タイルは複数のスライスに分割されない。
【0236】
図29は、本技術にしたがった映像処理方法を示すフローチャートである。方法2900は、工程2910において、1つ以上のスライスを含む映像タイルを備える映像ピクチャを備える映像と、規則に従って該映像のビットストリームとの間の変換を行うことを含む。この規則は、ピクチャにおける第1スライスを含むタイルにおける第2スライスがコーディングツリーユニット単位で表される高さを有することを規定する。第1スライスは、第1スライスインデックスを有し、第2スライスは、第1スライスインデックスと、映像タイルにおいて明確に提供されるスライス高さの数に基づいて判定される第2スライスインデックスを有する。第1スライスインデックス及び第2スライスインデックスに基づいて、第2スライスの高さを決定する。
【0237】
幾つかの実施形態において、第1スライスインデックスをiとし、第2スライスインデックスを(num_exp_slices_in_tile[i]-1)とし、ここで、num_exp_slices_in_tileは、映像タイルにおいて明確に提供されるスライスの高さの数を規定する。第2スライスの高さは、exp_slice_height_in_ctus_minus1[i][num_exp_slices_in_tile[i]-1]+1に基づいて判定され、ここで、exp_slice_height_in_ctus_minus1は、映像タイルにおけるコーディングツリーユニット単位でスライスの高さを規定する。幾つかの実施形態において、映像タイルを分割する均一なスライスの高さは、exp_slice_height_in_ctus_minus1の最後のエントリにより示される。幾つかの実施形態において、第2スライスは常にピクチャに存在する。幾つかの実施形態において、第2スライスの高さは変換のためにリセットされることが許可されない。幾つかの実施形態において、(num_exp_slices_in_tile[i]-1)より大きいインデックスを有する第3スライスの高さが、exp_slice_height_in_ctus_minus1[i][num_exp_slices_in_tile[i]-1]に基づいて判定される。幾つかの実施形態において、第2スライスは映像タイルに存在しない。幾つかの実施形態において、第2スライスの高さはexp_slice_height_in_ctus_minus1[i][num_exp_slices_in_tile[i]-1+1以下である。
【0238】
図30は、本技術にしたがった映像処理方法を示すフローチャートである。方法3000は、工程3010において、1つ以上のタイルを含む映像ピクチャを備える映像と、この映像のビットストリームとの間の変換を行うことを含む。映像ピクチャとは、ピクチャパラメータセットを指す。このピクチャパラメータセットは、このピクチャパラメータセットがN個のタイル列の列幅のリストを含むことを規定するフォーマット規則に準拠し、ここで、Nは整数である。映像ピクチャには、(N-1)番目のタイル列が存在し、(N-1)番目のタイル列の幅は、明確に含まれるタイル列の幅に1つのコーディングツリーブロックを加えたリストにおける(N-1)番目のエントリに等しい。
【0239】
幾つかの実施形態において、N-1はnum_exp_tile_columns_minus1で表される。幾つかの実施形態において、コーディングツリーブロックの単位におけるタイル列の幅は、tile_column_width_minus1[num_exp_tile_columns_minus1]+1に基づいて判定され、tile_column_width_minus1はコーディングツリーブロックの単位におけるタイル列の幅を規定する。幾つかの実施形態において、コーディングツリーブロックの単位におけるタイル列の幅はリセットすることが許可されておらず、tile_column_width_minus1[num_exp_tile_columns_minus1]のみに基づいて判定される。幾つかの実施形態において、コーディングツリーブロックの単位におけるタイル列の幅は、tile_column_width_minus1[num_exp_tile_columns_minus1]+1に等しい。幾つかの実施形態において、num_exp_tile_columns_minus1より大きいインデックスを有する第2タイル列の幅は、tile_column_width_minus1[num_exp_tile_columns_minus1]に基づいて判定される。
【0240】
図31は、本技術にしたがった映像処理方法を示すフローチャートである。方法3100は、工程3110において、1つ以上のタイルを含む映像ピクチャを備える映像と、この映像のビットストリームとの間の変換を行うことを含む。映像ピクチャとは、ピクチャパラメータセットを指す。このピクチャパラメータセットは、このピクチャパラメータセットがN個のタイル行の行高さのリストを含むことを規定するフォーマット規則に準拠し、ここで、Nは整数である。映像ピクチャには、(N-1)番目のタイル行が存在し、この(N-1)番目のタイル行の高さは、明確に含まれるタイル行の高さに1つのコーディングツリーブロックを加えたリストにおける(N-1)番目のエントリに等しい。
【0241】
幾つかの実施形態において、N-1はnum_exp_tile_rows_minus1で表される。幾つかの実施形態において、コーディングツリーブロック単位でのタイル行の高さは、tile_row_height_minus1[num_exp_tile_row_minus1]+1に基づき判定され、ここで、tile_row_height_minus1は、コーディングツリーブロックの単位でタイル行の高さを規定する。幾つかの実施形態において、コーディングツリーブロックの単位におけるタイル行の高さはリセットすることが許可されておらず、tile_row_height_minus1[num_exp_tile_row_minus1]のみに基づき判定される。幾つかの実施形態において、コーディングツリーブロックの単位におけるタイル行の高さは、tile_row_height_minus1[num_exp_tile_row_minus1]+1に等しい。幾つかの実施形態において、num_exp_tile_rows_minus1より大きいインデックスを有する第2タイル行の高さは、tile_row_height_minus1[num_exp_tile_rows_minus1]に基づいて判定される。
【0242】
幾つかの実施形態において、前記変換は、前記映像を前記ビットストリームに符号化することを含む。幾つかの実施形態において、前記変換は、前記映像を前記ビットストリームから復号することを含む。
【0243】
本明細書に記載の解決策において、エンコーダは、フォーマット規則に従ってコーディングされた表現を生成することで、フォーマット規則に準拠することができる。本明細書に記載の解決策において、デコーダは、フォーマット規則を使用して、フォーマット規則に従って、構文要素の有無の知識でコーディングされた表現内の構文要素を解析し、復号された映像を生成してよい。
【0244】
本明細書では、「映像処理」という用語は、映像符号化、映像復号、映像圧縮、または映像展開を指してよい。例えば、映像圧縮アルゴリズムは、映像の画素表現から対応するビットストリーム表現への変換、またはその逆の変換中に適用されてもよい。現在の映像ブロックのビットストリーム表現は、例えば、構文によって規定されるように、ビットストリーム内の同じ場所または異なる場所に拡散されるビットに対応していてもよい。例えば、1つのマクロブロックは、変換およびコーディングされた誤り残差値の観点から、且つビットストリームにおけるヘッダおよび他のフィールドにおけるビットを使用して符号化されてもよい。さらに、変換中、デコーダは、上記解決策で説明されているように、判定に基づいて、いくつかのフィールドが存在しても存在しなくてもよいという知識を持って、ビットストリームを構文解析してもよい。同様に、エンコーダは、特定の構文フィールドが含まれるべきであるか、または含まれないべきであるかを判定し、構文フィールドをコーディングされた表現に含めるか、またはコーディングされた表現から除外することによって、それに応じてコーディングされた表現を生成してもよい。
【0245】
本明細書に記載された開示された、およびその他の解決策、実施例、実施形態、モジュール、および機能動作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実施してもよい。開示された、およびその他の実施形態は、1または複数のコンピュータプログラム製品、すなわち、データ処理装置によって実装されるため、またはデータ処理装置の動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1または複数のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの1または複数の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサ、若しくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1または複数の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成した信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報を符号化するために生成される。
【0246】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、コンポーネント、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1または複数のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1または複数のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。コンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開することも可能である。
【0247】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0248】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用および専用マイクロプロセッサの両方、並びに任意の種類のデジタルコンピュータの任意の1または複数のプロセッサを含む。一般的に、プロセッサは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1または複数のメモリデバイスとである。一般的に、コンピュータは、データを記憶するための1または複数の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュ記憶装置、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスク等の半導体記憶装置を含む。プロセッサおよびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0249】
本特許明細書は多くの詳細を含むが、これらは、任意の主題の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態のコンテキストで説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテキストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1または複数の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0250】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムの構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0251】
いくつかの実装形態および例のみが記載されており、この特許文献に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31