詳細な説明
[0035] ここで、その例が添付図面に示される例示的実施形態を詳細に参照する。以下の説明は、添付図面を参照し、添付図面では、他に指示がない限り、異なる図中の同じ数字が同じ又は同様の要素を表す。例示的実施形態についての以下の説明に記載される実装形態は、本開示と合致する全ての実装形態を表すわけではない。むしろ、それらは、添付の特許請求の範囲で列挙する本開示に関係する態様と合致する機器及び方法の例に過ぎない。本開示の特定の態様を以下でより詳細に説明する。参照により援用される用語及び/又は定義と矛盾する場合、本明細書で与えられる用語及び定義が優先する。
[0036] ITU-Tビデオコーディングエキスパートグループ(ITU-T VCEG(ITU-T Video Coding Expert Group))及びISO/IECムービングピクチャエキスパートグループ(ISO/IEC MPEG(ISO/IEC Moving Picture Expert Group))のジョイントビデオエキスパートチーム(JVET(Joint Video Experts Team))は、現在、多用途ビデオコード化(VVC/H.266)規格を開発している。VVC規格は、その前身、高効率ビデオコード化(HEVC/H.265)規格の圧縮効率を2倍にすることを目指している。換言すれば、VVCの目標は、半分の帯域幅を用いてHEVC/H.265と同じ主観的品質を達成することである。
[0037] 半分の帯域幅を用いてHEVC/H.265と同じ主観的品質を達成するために、JVETは、共同探索モデル(JEM(joint exploration model))参照ソフトウェアを用いてHEVCを超える技術を開発している。コード化技術がJEMに組み込まれたため、JEMはHEVCよりも実質的に高いコード化性能を達成した。
[0038] VVC規格は最近開発されたものであり、より優れた圧縮性能をもたらすより多くのコード化技術を含み続けている。VVCは、HEVC、H.264/AVC、MPEG2、H.263などの最新の映像圧縮規格において用いられてきた同じハイブリッド映像コード化システムに基づいている。
[0039] 映像とは、視覚的情報を記憶するために時系列順に配置される静止ピクチャ(又は「フレーム」)の組である。それらのピクチャを時系列順に捕捉し、記憶するために、映像捕捉装置(例えば、カメラ)を使用することができ、かかるピクチャを時系列順に表示するために、映像再生装置(例えば、テレビ、コンピュータ、スマートフォン、タブレットコンピュータ、ビデオプレーヤ又は表示機能を有する任意のエンドユーザ端末)を使用することができる。さらに、一部の応用では、監視、会議又は生放送等のために、映像捕捉装置が捕捉映像を映像再生装置(例えば、モニタを有するコンピュータ)にリアルタイムで伝送することができる。
[0040] かかるアプリケーションが必要とする記憶空間及び伝送帯域幅を減らすために、映像を記憶及び伝送前に圧縮し、表示前に解凍することができる。この圧縮及び解凍は、1つ以上のプロセッサ(例えば、汎用コンピュータの1つ以上のプロセッサ)又は専用ハードウェアによって実行されるソフトウェアによって実装され得る。圧縮のためのモジュールを一般に「符号器」と呼び、解凍のためのモジュールを一般に「復号器」と呼ぶ。符号器及び復号器は、まとめて「コーデック」と呼ぶことができる。符号器及び復号器は、様々な適切なハードウェア、ソフトウェア、又はその組み合わせとして実装することができる。例えば、符号器及び復号器のハードウェア実装は、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、書換可能ゲートアレイ(FPGA)、ディスクリートロジック又はその任意の組み合わせ等の回路を含み得る。符号器及び復号器のソフトウェア実装は、プログラムコード、コンピュータ実行可能命令、ファームウェア、又はコンピュータ可読媒体内に固定される任意の適切なコンピュータによって実装されるアルゴリズム若しくはプロセスを含み得る。映像の圧縮及び解凍は、MPEG-1、MPEG-2、MPEG-4、H.26xシリーズ等の様々なアルゴリズム又は規格によって実装され得る。一部の応用では、コーデックが第1のコード化規格から映像を解凍し、第2のコード化規格を使用して、解凍された映像を再圧縮することができ、その場合、コーデックを「トランスコーダ」と呼ぶことができる。
[0041] 映像符号化プロセスは、ピクチャを再構築するために使用可能な有用な情報を識別し、保つことができ、再構築に重要でない情報を無視することができる。無視された重要でない情報を完全に再構築できない場合、かかる符号化プロセスは、「非可逆」と呼ぶことができる。さもなければ、かかる符号化プロセスは、「可逆」と呼ぶことができる。殆どの符号化プロセスは、非可逆であり、これは、必要な記憶空間及び伝送帯域幅を減らすためのトレードオフである。
[0042] 符号化されているピクチャ(「現ピクチャ」と呼ぶ)の有用な情報は、参照ピクチャ(例えば、過去に符号化され、再構築されたピクチャ)に対する変化を含む。かかる変化は、ピクセルの位置変化、光度変化、又は色変化を含むことができ、そのうちの位置変化が最も重要である。オブジェクトを表すピクセル群の位置変化は、参照ピクチャと現ピクチャとの間のオブジェクトの動きを反映し得る。
[0043] 別のピクチャを参照することなくコード化されるピクチャ(即ちそのようなピクチャが自らの参照ピクチャである)を「Iピクチャ」と呼ぶ。ピクチャ内のいくつかの又は全てのブロック(例えば、映像ピクチャの一部を概して参照するブロック)が、1つの参照ピクチャを用いてイントラ予測又はインター予測を使用して予測される場合(例えば単方向予測)、ピクチャは、「Pピクチャ」と呼ばれる。ピクチャの中の少なくとも1つのブロックが2つの参照ピクチャを用いて予測される場合(例えば双方向予測)、ピクチャは、「Bピクチャ」と呼ばれる。
[0044] 本開示において、タイル/スライス区画に関連するSPS及びPPSシンタックス要素は、不必要な制約を除去し、又は条件付きでシグナリングされるシンタックス要素の値を判定するように修正されることができ、それによって、より高いコード化性能が達成される。これらの修正を採用することによって、映像ストリームのための符号化及び復号プロセスの一貫性及び効率性が、改善され得る。
[0045] 図1は、本開示のいくつかの実施形態による、映像シーケンス100の一例の構造を示す。映像シーケンス100は、生中継映像、又は捕捉され、アーカイブされている映像であり得る。映像シーケンス100は、現実の映像、コンピュータによって生成される映像(例えば、コンピュータゲーム映像)、又はその組み合わせ(例えば、拡張現実効果を有する現実の映像)であり得る。映像シーケンス100は、映像捕捉装置(例えば、カメラ)、過去に捕捉された映像を含む映像アーカイブ(例えば、記憶装置内に記憶される映像ファイル)、又は映像コンテンツプロバイダから映像を受信するための映像フィードインタフェース(例えば、映像ブロードキャストトランシーバ)から入力され得る。
[0046] 図1に示すように、映像シーケンス100は、ピクチャ102、104、106、及び108を含む、タイムラインに沿って時間的に配置される一連のピクチャを含み得る。ピクチャ102~106は、連続的であり、ピクチャ106とピクチャ108との間にさらに多くのピクチャがある。図1では、ピクチャ102は、Iピクチャであり、その参照ピクチャは、ピクチャ102自体である。ピクチャ104は、Pピクチャであり、矢印によって示すように、その参照ピクチャは、ピクチャ102である。ピクチャ106は、Bピクチャであり、矢印によって示すように、その参照ピクチャは、ピクチャ104及び108である。一部の実施形態では、ピクチャ(例えば、ピクチャ104)の参照ピクチャは、そのピクチャの直前又は直後になくてもよい。例えば、ピクチャ104の参照ピクチャは、ピクチャ102に先行するピクチャであり得る。ピクチャ102~106の参照ピクチャは、例に過ぎず、本開示は、参照ピクチャの実施形態を、図1に示す例として限定しないことに留意すべきである。
[0047] 典型的には、映像コーデックは、全ピクチャを一度に符号化又は復号せず、それは、かかるタスクが計算的に複雑であるためである。むしろ、映像コーデックは、ピクチャを基本セグメントに分割し、ピクチャをセグメントごとに符号化又は復号することができる。本開示では、そのような基本セグメントを基本処理単位(「BPU」)と呼ぶ。例えば、図1の構造110は、映像シーケンス100のピクチャ(例えば、ピクチャ102~108のいずれか)の構造の一例を示す。構造110では、ピクチャが4×4の基本処理単位に分けられており、その境界が破線で示されている。一部の実施形態では、基本処理単位は、一部の映像コード化規格(例えば、MPEGファミリ、H.261、H.263又はH.264/AVC)内の「マクロブロック」と呼ぶことができ、他の一部の映像コード化規格(例えば、H.265/HEVC又はH.266/VVC)内の「コード化ツリー単位」(「CTU」)と呼ぶことができる。128×128、64×64、32×32、16×16、4×8、16×32、又はピクセルのあらゆる任意の形状及びサイズ等、基本処理単位は、ピクチャ内で可変サイズを有することができる。基本処理単位のサイズ及び形状は、コード化の効率と基本処理単位内で保とうとする詳細度とのバランスに基づいてピクチャについて選択することができる。
[0048] 基本処理単位は、コンピュータメモリ内(例えば、映像フレームバッファ内)に記憶される様々な種類の映像データ群を含み得る論理単位であり得る。例えば、カラーピクチャの基本処理単位は、無彩色の輝度情報を表すルマ成分(Y)、色情報を表す1つ又は複数のクロマ成分(例えば、Cb及びCr)、並びにルマ成分及びクロマ成分が同じサイズを有し得る基本処理単位の関連シンタックス要素を含むことができる。一部の映像コード化規格(例えば、H.265/HEVC又はH.266/VVC)では、ルマ成分及びクロマ成分が「コード化ツリーブロック」(「CTB」)と呼ばれ得る。基本処理単位に対して行われるいかなる操作も、そのルマ成分及びクロマ成分のそれぞれに対して繰り返し行うことができる。
[0049] 映像のコード化は複数の操作段階を有し、その例を図2A~図2B及び図3A~図3Bに示す。それぞれの段階について、基本処理単位のサイズは、依然として処理するのに大き過ぎる場合があり、したがって本開示で「基本処理副単位」と呼ぶセグメントにさらに分割することができる。一部の実施形態では、基本処理副単位は、一部の映像コード化規格(例えば、MPEGファミリ、H.261、H.263又はH.264/AVC)内の「ブロック」と呼ぶことができるか、又は他の一部の映像コード化規格(例えば、H.265/HEVC又はH.266/VVC)内の「コード化単位」(「CU」)と呼ぶことができる。基本処理副単位は、基本処理単位と同じ又はそれよりも小さいサイズを有し得る。基本処理単位と同様に、基本処理副単位もコンピュータメモリ内(例えば、映像フレームバッファ内)に記憶される様々な種類の映像データ群(例えば、Y、Cb、Cr及び関連シンタックス要素)を含み得る論理単位である。基本処理副単位に対して行われるいかなる操作も、そのルマ成分及びクロマ成分のそれぞれに対して繰り返し行うことができる。処理の必要性に応じて、かかる分割は、更なるレベルに対して行われ得ることに留意すべきである。様々な段階が様々な方式を使用して基本処理単位を分割できることにも留意すべきである。
[0050] 例えば、(その一例を図2Bに示す)モード決定段階において、基本処理単位に対していずれの予測モード(例えば、イントラピクチャ予測又はインターピクチャ予測)を使用するかを符号器が決定することができ、基本処理単位は、かかる決定を下すには大き過ぎる場合がある。符号器は、基本処理単位を複数の基本処理副単位(例えば、H.265/HEVC又はH.266/VVCにあるCU)に分け、個々の基本処理副単位ごとに予測の種類を決定することができる。
[0051] 別の例では、(その一例を図2A-2Bに示す)予測段階において、符号器は、基本処理副単位(例えば、CU)のレベルにおいて予測操作を行うことができる。しかし、一部の事例では、処理するのに基本処理副単位が依然として大き過ぎる場合がある。符号器は、基本処理副単位をより小さいセグメント(例えば、H.265/HEVC又はH.266/VVC内で「予測ブロック」又は「PB」と呼ばれる)にさらに分けることができ、そのレベルにおいて予測操作を行うことができる。
[0052] 別の例では、(その一例を図2A-2Bに示す)変換段階において、符号器は、残差基本処理副単位(例えば、CU)に対する変換操作を行うことができる。しかし、一部の事例では、処理するのに基本処理副単位が依然として大き過ぎる場合がある。符号器は、基本処理副単位をより小さいセグメント(例えば、H.265/HEVC又はH.266/VVC内で「変換ブロック」又は「TB」と呼ばれる)にさらに分けることができ、そのレベルにおいて変換操作を行うことができる。同じ基本処理副単位の分割方式は、予測段階と変換段階とで異なり得ることに留意すべきである。例えば、H.265/HEVC又はH.266/VVCでは、同じCUの予測ブロック及び変換ブロックは、異なるサイズ及び数を有し得る。
[0053] 図1の構造110では、基本処理単位112が3×3の基本処理副単位にさらに分割されており、その境界が点線で示されている。同じピクチャの異なる基本処理単位を異なる方式で基本処理副単位に分割することができる。
[0054] 一部の実装形態では、映像の符号化及び復号に並列処理及び誤り耐性の能力を与えるために、ピクチャを処理のための領域に分割することができ、それにより、ピクチャの領域について、符号化又は復号プロセスがピクチャの他の任意の領域の情報に依存しないようにすることができる。換言すれば、ピクチャの各領域を独立に処理することができる。そうすることで、コーデックは、ピクチャの異なる領域を並列に処理し、したがってコード化の効率を高めることができる。さらに、領域のデータが処理内で破損するか又はネットワーク伝送内で失われる場合、コーデックは、破損するか又は失われたデータに依存することなく、同じピクチャの他の領域を正しく符号化又は復号することができ、したがって誤り耐性の能力を提供する。一部の映像コード化規格では、ピクチャを異なる種類の領域に分割することができる。例えば、H.265/HEVC及びH.266/VVCは、「スライス」及び「タイル」という2種類の領域を提供する。映像シーケンス100の様々なピクチャは、ピクチャを領域に分割するための様々な分割方式を有し得ることにも留意すべきである。
[0055] 例えば、図1では、構造110が3つの領域114、116、及び118に分割されており、その境界が構造110内の実線として示されている。領域114は、4個の基本処理単位を含む。領域116及び118のそれぞれは、6個の基本処理単位を含む。図1の構造110の基本処理単位、基本処理副単位、及び領域は、例に過ぎず、本開示は、その実施形態を限定しないことに留意すべきである。
[0056] 図2Aは、本開示の実施形態と合致する、符号化プロセス200Aの一例の概略図を示す。例えば、符号化プロセス200Aは、符号器によって実行され得る。図2Aに示すように、符号器は、プロセス200Aに従って映像シーケンス202を映像ビットストリーム228に符号化することができる。図1の映像シーケンス100と同様に、映像シーケンス202は、時系列順に配置されるピクチャ(「元のピクチャ」と呼ぶ)の組を含み得る。図1の構造110と同様に、映像シーケンス202のそれぞれの元のピクチャは、符号器によって、基本処理単位、基本処理副単位、又は処理のための領域に分割され得る。一部の実施形態では、符号器は、映像シーケンス202のそれぞれの元のピクチャに関する基本処理単位のレベルにおいてプロセス200Aを実行することができる。例えば、符号器は、プロセス200Aを反復的な方法で実行することができ、その場合、符号器は、プロセス200Aの1回の反復において基本処理単位を符号化することができる。一部の実施形態では、符号器は、映像シーケンス202のそれぞれの元のピクチャの領域(例えば、領域114~118)についてプロセス200Aを並列に実行することができる。
[0057] 図2Aでは、符号器は、映像シーケンス202の元のピクチャの基本処理単位(「元のBPU」と呼ぶ)を予測段階204にフィードして、予測データ206及び予測されたBPU208を生成することができる。符号器は、元のBPUから、予測されたBPU208を減算して、残差BPU210を生成することができる。符号器は、残差BPU210を変換段階212及び量子化段階214にフィードして、量子化された変換係数216を生成することができる。符号器は、予測データ206及び量子化された変換係数216をバイナリコード化段階226にフィードして、映像ビットストリーム228を生成することができる。構成要素202、204、206、208、210、212、214、216、226、及び228は、「順方向経路」と呼ぶことができる。プロセス200A中、符号器は、量子化段階214後、量子化された変換係数216を逆量子化段階218及び逆変換段階220にフィードして、再構築された残差BPU222を生成することができる。符号器は、再構築された残差BPU222を、予測されたBPU208に加えて、プロセス200Aの次の反復の予測段階204に使用される予測基準224を生成することができる。プロセス200Aの構成要素218、220、222、及び224は、「再構築経路」と呼ぶことができる。再構築経路は、符号器及び復号器の両方が予測に同じ参照データを使用することを確実にするために使用され得る。
[0058] 符号器は、プロセス200Aを反復的に実行して、(順方向経路内で)元のピクチャのそれぞれの元のBPUを符号化し、(再構築経路内で)元のピクチャの次の元のBPUを符号化するための予測基準224を生成することができる。元のピクチャの全ての元のBPUを符号化した後、符号器は、映像シーケンス202内の次のピクチャの符号化に進むことができる。
[0059] プロセス200Aを参照すると、符号器は、映像捕捉装置(例えば、カメラ)によって生成される映像シーケンス202を受信することができる。本明細書で使用する「受信(する)」という用語は、受信すること、入力すること、取得すること、取り出すこと、得ること、読み出すこと、アクセスすること、又はデータを入力するための任意の方法の任意のアクションを指すことができる。
[0060] 予測段階204では、現在の反復において、符号器が、元のBPU及び予測基準224を受信し、予測操作を行って予測データ206及び予測されたBPU208を生成することができる。予測基準224は、プロセス200Aの前の反復の再構築経路から生成され得る。予測段階204の目的は、予測データ206を抽出することにより、情報の冗長性を減らすことであり、予測データ206は、予測データ206及び予測基準224から予測されたBPU208として元のBPUを再構築するために使用され得る。
[0061] 理想的には、予測されたBPU208は、元のBPUと同一であり得る。しかし、理想的でない予測及び再構築操作により、予測されたBPU208は、概して、元のBPUと僅かに異なる。そのような差を記録するために、符号器は、予測されたBPU208を生成した後、それを元のBPUから減算して残差BPU210を生成することができる。例えば、符号器は、予測されたBPU208のピクセルの値(例えば、グレースケール値又はRGB値)を元のBPUの対応するピクセルの値から減算することができる。元のBPUと予測されたBPU208との対応するピクセル間のかかる減算の結果、残差BPU210の各ピクセルは、残差値を有し得る。元のBPUと比較して、予測データ206及び残差BPU210は、より少ないビットを有し得るが、品質を著しく損なうことなく元のBPUを再構築するためにそれらを使用することができる。
[0062] 残差BPU210をさらに圧縮するために、変換段階212において、符号器は、残差BPU210を2次元「基底パターン」の組に分解することにより、残差BPU210の空間的冗長性を低減することができ、各基底パターンは、「変換係数」に関連する。基底パターンは、同じサイズ(例えば、残差BPU210のサイズ)を有することができる。それぞれの基底パターンは、残差BPU210の変動周波数(例えば、輝度変動周波数)成分を表すことができる。基底パターンのいずれも、他の任意の基底パターンの任意の組み合わせ(例えば、線形結合)から再現することができない。換言すれば、分解は、残差BPU210の変動を周波数領域内に分解することができる。かかる分解は、関数の離散フーリエ変換に類似し、その場合、基底パターンは、離散フーリエ変換の基底関数(例えば、三角関数)に類似し、変換係数は、基底関数に関連する係数に類似する。
[0063] 様々な変換アルゴリズムが様々な基底パターンを使用することができる。例えば、離散コサイン変換、離散サイン変換等、変換段階212では、様々な変換アルゴリズムを使用することができる。変換段階212における変換は、可逆的である。即ち、符号器は、変換の逆操作(「逆変換」と呼ぶ)によって残差BPU210を復元することができる。例えば、残差BPU210のピクセルを復元するために、逆変換は、基底パターンの対応するピクセルの値を、関連するそれぞれの係数で乗算し、積を加算して加重和をもたらすことであり得る。映像コード化規格では、符号器及び復号器の両方が同じ変換アルゴリズム(従って同じ基底パターン)を使用することができる。したがって、符号器は、変換係数のみを記録することができ、その場合、復号器は、符号器から基底パターンを受信することなく、変換係数から残差BPU210を再構築することができる。残差BPU210と比較して、変換係数の方が少ないビットを有し得るが、それらの変換係数は、品質を著しく損なうことなく残差BPU210を再構築するために使用され得る。したがって、残差BPU210がさらに圧縮される。
[0064] 符号器は、量子化段階214において変換係数をさらに圧縮することができる。変換プロセスでは、様々な基底パターンが様々な変動周波数(例えば、輝度変動周波数)を表すことができる。人間の目は、概して、低周波変動を認識することが得意であるため、符号器は、復号の際の著しい品質劣化を引き起こすことなく高周波変動の情報を無視することができる。例えば、量子化段階214において、符号器は、各変換係数を整数値(「量子化スケール因子」と呼ぶ)で除算し、商をその最近隣数に丸めることにより、量子化された変換係数216を生成することができる。かかる操作後、高周波基底パターンの一部の変換係数をゼロに変換することができ、低周波基底パターンの変換係数をより小さい整数に変換することができる。符号器は、ゼロ値の量子化された変換係数216を無視することができ、それにより変換係数がさらに圧縮される。量子化プロセスも可逆的であり、量子化された変換係数216は、量子化の逆操作(「逆量子化」と呼ぶ)で変換係数に再構築することができる。
[0065] 符号器は、丸め操作内でかかる除算の剰余を無視するため、量子化段階214は、非可逆であり得る。典型的には、量子化段階214は、プロセス200A内で最大の情報損失に寄与し得る。情報損失が大きいほど、量子化された変換係数216が必要とし得るビットが少なくなる。情報損失の様々なレベルを得るために、符号器は、量子化パラメータの様々な値又は量子化プロセスの他の任意のパラメータを使用することができる。
[0066] バイナリコード化段階226において、符号器は、例えば、エントロピーコード化、可変長コード化、算術コード化、ハフマンコード化、コンテキスト適応バイナリ算術コード化、又は他の任意の可逆若しくは非可逆圧縮アルゴリズム等のバイナリコード化技法を使用し、予測データ206及び量子化された変換係数216を符号化することができる。一部の実施形態では、予測データ206及び量子化された変換係数216に加えて、符号器は、例えば、予測段階204で使用される予測モード、予測操作のパラメータ、変換段階212の変換の種類、量子化プロセスのパラメータ(例えば、量子化パラメータ)、符号器制御パラメータ(例えば、ビットレート制御パラメータ)等の他の情報をバイナリコード化段階226において符号化することができる。符号器は、バイナリコード化段階226の出力データを使用して映像ビットストリーム228を生成することができる。一部の実施形態では、映像ビットストリーム228をネットワーク伝送のためにさらにパケット化することができる。
[0067] プロセス200Aの再構築経路を参照すると、逆量子化段階218では、符号器は、量子化された変換係数216に対して逆量子化を行って、再構築された変換係数を生成することができる。逆変換段階220では、符号器は、再構築された変換係数に基づいて、再構築された残差BPU222を生成することができる。符号器は、再構築された残差BPU222を、予測されたBPU208に加えて、プロセス200Aの次の反復内で使用される予測基準224を生成することができる。
[0068] 映像シーケンス202を符号化するためにプロセス200Aの他のバリエーションを使用できることに留意すべきである。一部の実施形態では、符号器がプロセス200Aの段階を異なる順序で実行することができる。一部の実施形態では、プロセス200Aの1つ又は複数の段階を単一の段階に組み合わせることができる。一部の実施形態では、プロセス200Aの単一の段階を複数の段階に分けることができる。例えば、変換段階212と量子化段階214とを単一の段階に組み合わせることができる。一部の実施形態では、プロセス200Aは、追加の段階を含み得る。一部の実施形態では、プロセス200Aは、図2A内の1つ又は複数の段階を省くことができる。
[0069] 図2Bは、本開示の実施形態に合致する、符号化プロセスの別の例200Bの概略図を示す。プロセス200Bは、プロセス200Aから修正され得る。例えば、プロセス200Bは、ハイブリッド映像コード化規格(例えば、H.26xシリーズ)に準拠する符号器によって使用され得る。プロセス200Aと比較して、プロセス200Bの順方向経路は、モード決定段階230をさらに含み、予測段階204を空間的予測段階2042及び時間的予測段階2044に分割する。プロセス200Bの再構築経路は、ループフィルタ段階232及びバッファ234を追加で含む。
[0070] 概して、予測技法は、空間的予測及び時間的予測の2つの種類に分類することができる。空間的予測(例えば、イントラピクチャ予測又は「イントラ予測」)は、現BPUを予測するために、同じピクチャ内の既にコード化された1つ又は複数の隣接BPUのピクセルを使用することができる。即ち、空間的予測における予測基準224は、隣接BPUを含み得る。空間的予測は、ピクチャの固有の空間的冗長性を減らすことができる。時間的予測(例えば、インターピクチャ予測又は「インター予測」)は、現BPUを予測するために、既にコード化された1つ又は複数のピクチャの領域を使用することができる。即ち、時間的予測における予測基準224は、コード化されたピクチャを含み得る。時間的予測は、ピクチャの固有の時間的冗長性を減らすことができる。
[0071] プロセス200Bを参照すると、順方向経路において、符号器は、空間的予測段階2042及び時間的予測段階2044で予測操作を行う。例えば、空間的予測段階2042では、符号器は、イントラ予測を行うことができる。符号化されているピクチャの元のBPUに関して、予測基準224は、同じピクチャ内の(順方向経路内で)符号化され、(再構築経路内で)再構築されている1つ又は複数の隣接BPUを含み得る。符号器は、隣接BPUを外挿することにより、予測されたBPU208を生成することができる。外挿技法は、例えば、線形外挿又は線形補間、多項式外挿又は多項式補間等を含み得る。一部の実施形態では、予測されたBPU208のピクセルごとに、対応するピクセルの値を外挿することによって等、符号器がピクセルレベルで外挿を行うことができる。外挿に使用される隣接BPUは、垂直方向(例えば、元のBPUの上)、水平方向(例えば、元のBPUの左)、対角線方向(例えば、元のBPUの左下、右下、左上又は右上)、又は使用される映像コード化規格内で規定される任意の方向等、様々な方向から元のBPUに対して位置し得る。イントラ予測では、予測データ206は、例えば、使用される隣接BPUの位置(例えば、座標)、使用される隣接BPUのサイズ、外挿のパラメータ、元のBPUに対する使用される隣接BPUの方向等を含み得る。
[0072] 別の例では、時間的予測段階2044では、符号器は、インター予測を行うことができる。現ピクチャの元のBPUに関して、予測基準224は、(順方向経路内で)符号化され、(再構築経路内で)再構築されている1つ又は複数のピクチャ(「参照ピクチャ」と呼ぶ)を含み得る。一部の実施形態では、参照ピクチャがBPUごとに符号化され再構築され得る。例えば、符号器は、再構築された残差BPU222を、予測されたBPU208に加えて、再構築されたBPUを生成することができる。同じピクチャの全ての再構築されたBPUが生成されると、符号器は、参照ピクチャとして再構築されたピクチャを生成することができる。符号器は、参照ピクチャの範囲(「探索窓」と呼ぶ)内の一致領域を探すために「動き推定」の操作を行うことができる。参照ピクチャ内の探索窓の位置は、現ピクチャ内の元のBPUの位置に基づいて決定することができる。例えば、探索窓は、参照ピクチャ内の、現ピクチャ内の元のBPUと同じ座標を有する位置に中心を置くことができ、所定の距離にわたって広げることができる。符号器が探索窓内で元のBPUと同様の領域を(例えば、pel再帰アルゴリズム、ブロックマッチングアルゴリズム等を使用することによって)識別すると、符号器は、その領域を一致領域として決定することができる。一致領域は、元のBPUと異なる(例えば、それよりも小さい、等しい、大きい又は異なる形状の)寸法を有し得る。参照ピクチャ及び現ピクチャは、(例えば、図1に示すように)タイムライン内で時間的に隔てられているため、時間が経つにつれて一致領域が元のBPUの位置に「移動する」と見なすことができる。符号器は、かかる動きの方向及び距離を「動きベクトル」として記録することができる。(例えば、図1のピクチャ106のような)複数の参照ピクチャが使用される場合、符号器は、参照ピクチャごとに一致領域を探し、その関連する動きベクトルを求めることができる。一部の実施形態では、符号器は、個々の一致する参照ピクチャの一致領域のピクセル値に重みを割り当てることができる。
[0073] 動き推定は、例えば、平行移動、回転、拡大縮小等の様々な種類の動きを識別するために使用することができる。インター予測では、予測データ206は、例えば、一致領域の位置(例えば、座標)、一致領域に関連する動きベクトル、参照ピクチャの数、参照ピクチャに関連する重み等を含み得る。
[0074] 予測されたBPU208を生成するために、符号器は、「動き補償」の操作を行うことができる。動き補償は、予測データ206(例えば、動きベクトル)及び予測基準224に基づいて、予測されたBPU208を再構築するために使用することができる。例えば、符号器は、動きベクトルに従って参照ピクチャの一致領域を動かすことができ、その中では、符号器は、現ピクチャの元のBPUを予測することができる。(例えば、図1のピクチャ106のような)複数の参照ピクチャが使用される場合、符号器は、個々の動きベクトルに従って参照ピクチャの一致領域を動かし、一致領域のピクセル値を平均することができる。一部の実施形態では、符号器が、個々の一致する参照ピクチャの一致領域のピクセル値に重みを割り当てた場合、符号器は、動かした一致領域のピクセル値の加重和を加えることができる。
[0075] 一部の実施形態では、インター予測は、単方向又は双方向であり得る。単方向のインター予測は、現ピクチャに対して同じ時間的方向にある1つ又は複数の参照ピクチャを使用することができる。例えば、図1のピクチャ104は、参照ピクチャ(例えば、ピクチャ102)がピクチャ104に先行する単方向のインター予測ピクチャである。双方向のインター予測は、現ピクチャに対して両方の時間的方向にある1つ又は複数の参照ピクチャを使用することができる。例えば、図1のピクチャ106は、参照ピクチャ(例えば、ピクチャ104及び108)がピクチャ104に対して両方の時間的方向にある双方向のインター予測ピクチャである。
[0076] プロセス200Bの順方向経路を引き続き参照すると、空間的予測段階2042及び時間的予測段階2044後、モード決定段階230において、符号器は、プロセス200Bの現在の反復のための予測モード(例えば、イントラ予測又はインター予測の1つ)を選択することができる。例えば、符号器は、レート歪み最適化技法を実行することができ、かかる技法では、符号器は、候補予測モードのビットレート及び候補予測モード下の再構築された参照ピクチャの歪みに応じて、コスト関数の値を最小化するための予測モードを選択することができる。選択される予測モードに応じて、符号器は、対応する予測されたBPU208及び予測データ206を生成することができる。
[0077] プロセス200Bの再構築経路において、順方向経路内でイントラ予測モードが選択されている場合、予測基準224(例えば、現ピクチャ内で符号化され再構築されている現BPU)を生成した後、符号器は、後に使用するために(例えば、現ピクチャの次のBPUを外挿するために)空間的予測段階2042に予測基準224を直接フィードすることができる。符号器は、ループフィルタ段階232に予測基準224をフィードすることができ、ループフィルタ段階232では、符号器は、予測基準224にループフィルタを適用して、予測基準224の符号化中に引き起こされる歪み(例えば、ブロッキングアーティファクト)を減らすか又はなくすことができる。例えば、デブロッキング、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)等、符号器は、ループフィルタ段階232で様々なループフィルタ技法を適用することができる。ループフィルタされた参照ピクチャは、後に使用するために(例えば、映像シーケンス202の将来のピクチャのためのインター予測参照ピクチャとして使用するために)バッファ234(又は「復号されたピクチャバッファ(DPB)」)内に記憶することができる。符号器は、時間的予測段階2044で使用するために1つ又は複数の参照ピクチャをバッファ234内に記憶することができる。一部の実施形態では、符号器は、量子化された変換係数216、予測データ206、及び他の情報と共に、ループフィルタのパラメータ(例えば、ループフィルタの強度)をバイナリコード化段階226で符号化することができる。
[0078] 図3Aは、本開示の実施形態に合致する、復号プロセス300Aの一例の概略図を示す。プロセス300Aは、図2Aの圧縮プロセス200Aに対応する解凍プロセスであり得る。一部の実施形態では、プロセス300Aは、プロセス200Aの再構築経路と同様であり得る。復号器は、プロセス300Aに従って映像ビットストリーム228を映像ストリーム304に復号することができる。映像ストリーム304は、映像シーケンス202と非常に類似し得る。しかし、圧縮及び解凍プロセス(例えば、図2A~図2Bの量子化段階214)における情報損失により、概して、映像ストリーム304は、映像シーケンス202と同一ではない。図2A~図2Bのプロセス200A及び200Bと同様に、復号器は、映像ビットストリーム228内に符号化される各ピクチャについて、基本処理単位(BPU)のレベルにおいてプロセス300Aを実行することができる。例えば、復号器は、プロセス300Aを反復的な方法で実行することができ、その場合、復号器は、プロセス300Aの1回の反復において基本処理単位を復号することができる。一部の実施形態では、復号器は、映像ビットストリーム228内に符号化される各ピクチャの領域(例えば、領域114~118)についてプロセス300Aを並列に実行することができる。
[0079] 図3Aでは、復号器は、符号化されたピクチャの基本処理単位(「符号化されたBPU」と呼ぶ)に関連する映像ビットストリーム228の一部をバイナリ復号段階302にフィードすることができる。バイナリ復号段階302では、復号器は、当該一部を予測データ206及び量子化された変換係数216に復号することができる。復号器は、量子化された変換係数216を逆量子化段階218及び逆変換段階220にフィードして、再構築された残差BPU222を生成することができる。復号器は、予測データ206を予測段階204にフィードして、予測されたBPU208を生成することができる。復号器は、再構築された残差BPU222を、予測されたBPU208に加えて、予測基準224を生成することができる。一部の実施形態では、予測基準224がバッファ(例えば、コンピュータメモリ内の復号されたピクチャバッファ)内に記憶され得る。復号器は、プロセス300Aの次の反復内で予測操作を行うための予測基準224を予測段階204にフィードすることができる。
[0080] 復号器は、プロセス300Aを反復的に実行して、符号化されたピクチャの各符号化されたBPUを復号し、符号化されたピクチャの次の符号化されたBPUを符号化するための予測基準224を生成することができる。符号化されたピクチャの全ての符号化されたBPUを復号した後、復号器は、表示するためにピクチャを映像ストリーム304に出力し、映像ビットストリーム228内の次の符号化されたピクチャの復号に進むことができる。
[0081] バイナリ復号段階302では、復号器は、符号器が使用したバイナリコード化技法(例えば、エントロピーコード化、可変長コード化、算術コード化、ハフマンコード化、コンテキスト適応バイナリ算術コード化、又は他の任意の可逆圧縮アルゴリズム)の逆操作を行うことができる。一部の実施形態では、予測データ206及び量子化された変換係数216に加えて、復号器は、例えば、予測モード、予測操作のパラメータ、変換の種類、量子化プロセスのパラメータ(例えば、量子化パラメータ)、符号器制御パラメータ(例えば、ビットレート制御パラメータ)等の他の情報をバイナリ復号段階302において復号することができる。一部の実施形態では、映像ビットストリーム228がネットワーク上においてパケット単位で伝送される場合、復号器は、映像ビットストリーム228をデパケット化してからそれをバイナリ復号段階302にフィードすることができる。
[0082] 図3Bは、本開示の実施形態に合致する、復号プロセスの別の例300Bの概略図を示す。プロセス300Bは、プロセス300Aから修正され得る。例えば、プロセス300Bは、ハイブリッド映像コード化規格(例えば、H.26xシリーズ)に準拠する復号器によって使用され得る。プロセス300Aと比較して、プロセス300Bは、予測段階204を空間的予測段階2042及び時間的予測段階2044にさらに分け、ループフィルタ段階232及びバッファ234を追加で含む。
[0083] プロセス300Bでは、復号中の符号化されたピクチャ(「現ピクチャ」と呼ぶ)の符号化された基本処理単位(「現BPU」と呼ぶ)に関して、復号器によってバイナリ復号段階302から復号される予測データ206は、現BPUを符号化するためにいずれの予測モードが符号器によって使用されたかに応じて様々な種類のデータを含み得る。例えば、現BPUを符号化するためにイントラ予測が符号器によって使用された場合、予測データ206は、イントラ予測、イントラ予測操作のパラメータ等を示す予測モードインジケータ(例えば、フラグ値)を含み得る。イントラ予測操作のパラメータは、例えば、基準として使用される1つ又は複数の隣接BPUの位置(例えば、座標)、隣接BPUのサイズ、外挿のパラメータ、元のBPUに対する隣接BPUの方向等を含み得る。別の例では、現BPUを符号化するためにインター予測が符号器によって使用された場合、予測データ206は、インター予測、インター予測操作のパラメータ等を示す予測モードインジケータ(例えば、フラグ値)を含み得る。インター予測操作のパラメータは、例えば、現BPUに関連する参照ピクチャの数、参照ピクチャにそれぞれ関連する重み、それぞれの参照ピクチャ内の1つ又は複数の一致領域の位置(例えば、座標)、一致領域にそれぞれ関連する1つ又は複数の動きベクトル等を含み得る。
[0084] 予測モードインジケータに基づき、復号器は、空間的予測段階2042で空間的予測(例えば、イントラ予測)を行うか、又は時間的予測段階2044で時間的予測(例えば、インター予測)を行うかを決めることができる。かかる空間的予測又は時間的予測の実行の詳細は、図2Bに示されており、以下で繰り返さない。かかる空間的予測又は時間的予測を行った後、復号器は、予測されたBPU208を生成することができる。図3Aに記載したように、復号器は、予測されたBPU208と、再構築された残差BPU222とを加えて、予測基準224を生成することができる。
[0085] プロセス300Bでは、復号器は、プロセス300Bの次の反復内で予測操作を行うための予測基準224を空間的予測段階2042又は時間的予測段階2044にフィードすることができる。例えば、現BPUが空間的予測段階2042においてイントラ予測を使用して復号される場合、予測基準224(例えば、復号された現BPU)を生成した後、復号器は、後に使用するために(例えば、現ピクチャの次のBPUを外挿するために)空間的予測段階2042に予測基準224を直接フィードすることができる。現BPUが時間的予測段階2044においてインター予測を使用して復号される場合、予測基準224(例えば、全てのBPUが復号されている参照ピクチャ)を生成した後、復号器は、ループフィルタ段階232に予測基準224をフィードして歪み(例えば、ブロッキングアーティファクト)を減らすか又はなくすことができる。復号器は、図2Bに記載した方法で予測基準224にループフィルタを適用することができる。ループフィルタされた参照ピクチャは、後に使用するために(例えば、映像ビットストリーム228の将来の符号化ピクチャのためのインター予測参照ピクチャとして使用するために)バッファ234(例えば、コンピュータメモリ内の復号されたピクチャバッファ(DPB))内に記憶することができる。復号器は、時間的予測段階2044で使用するために1つ又は複数の参照ピクチャをバッファ234内に記憶することができる。いくつかの実施形態では、予測データは、ループフィルタのパラメータ(例えば、ループフィルタ強度)をさらに含み得る。いくつかの実施形態では、予測データ206の予測モードインジケータが、インター予測が現在のBPUを符号化するために使用されたことを示すとき、予測データは、ループフィルタのパラメータを含む。バッファ234から再構築されたピクチャは、また、エンドユーザが見るTV、PC、スマートフォン、又はタブレットなどのディスプレイに送信され得る。
[0086] 図4は、本開示の実施形態に合致する、映像を符号化又は復号するための機器400の一例のブロック図である。図4に示すように、機器400は、プロセッサ402を含み得る。プロセッサ402が本明細書に記載の命令を実行するとき、機器400は、映像を符号化又は復号するための専用マシンになり得る。プロセッサ402は、情報を操作又は処理することができる任意の種類の回路であり得る。例えば、プロセッサ402は、任意の数の中央処理装置(「CPU」)、グラフィックス処理装置(「GPU」)、ニューラル処理ユニット(「NPU」)、マイクロコントローラユニット(「MCU」)、光プロセッサ、プログラム可能論理コントローラ、マイクロコントローラ、マイクロプロセッサ、デジタル信号プロセッサ、知的財産(IP)コア、プログラム可能論理アレイ(PLA)、プログラム可能アレイ論理(PAL)、汎用アレイ論理(GAL)、複合プログラム可能論理装置(CPLD)、書換可能ゲートアレイ(FPGA)、システムオンチップ(SoC)、特定用途向け集積回路(ASIC)等の任意の組み合わせを含み得る。一部の実施形態では、プロセッサ402は、単一の論理構成要素としてグループ化されるプロセッサの組であり得る。例えば、図4に示すように、プロセッサ402は、プロセッサ402a、プロセッサ402b及びプロセッサ402nを含む複数のプロセッサを含み得る。
[0087] 機器400は、データ(例えば、命令、コンピュータコード、中間データ等の組)を記憶するように構成されるメモリ404も含み得る。例えば、図4に示すように、記憶データは、プログラム命令(例えば、プロセス200A、200B、300A、又は300B内の段階を実装するためのプログラム命令)、及び処理用データ(例えば、映像シーケンス202、映像ビットストリーム228、又は映像ストリーム304)を含み得る。プロセッサ402は、プログラム命令及び処理用データに(例えば、バス410を介して)アクセスし、プログラム命令を実行して処理用データに対する操作又は処理を行うことができる。メモリ404は、高速ランダムアクセス記憶装置又は不揮発性記憶装置を含み得る。一部の実施形態では、メモリ404は、任意の数のランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、光学ディスク、磁気ディスク、ハードドライブ、ソリッドステートドライブ、フラッシュドライブ、セキュリティデジタル(SD)カード、メモリスティック、コンパクトフラッシュ(登録商標)(CF)カード等の任意の組み合わせを含み得る。メモリ404は、単一の論理構成要素としてグループ化される(図4には不図示の)メモリ群でもあり得る。
[0088] 内蔵バス(例えば、CPUメモリバス)、外部バス(例えば、ユニバーサルシリアルバスポート、周辺機器コンポーネント相互接続エクスプレスポート)等のバス410は、機器400内の構成要素間でデータを転送する通信装置であり得る。
[0089] 曖昧さを招くことなく説明を簡単にするために、本開示では、プロセッサ402及び他のデータ処理回路をまとめて「データ処理回路」と呼ぶ。データ処理回路は、完全にハードウェアとして又はソフトウェア、ハードウェア若しくはファームウェアの組み合わせとして実装することができる。加えて、データ処理回路は、単一の独立したモジュールであり得るか、又は機器400の他の任意の構成要素内に完全に若しくは部分的に組み合わされ得る。
[0090] 機器400は、ネットワーク(例えば、インターネット、イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク等)との有線通信又は無線通信を提供するためのネットワークインタフェース406をさらに含み得る。一部の実施形態では、ネットワークインタフェース406は、任意の数のネットワークインタフェースコントローラ(NIC)、無線周波数(RF)モジュール、トランスポンダ、トランシーバ、モデム、ルータ、ゲートウェイ、有線ネットワークアダプタ、無線ネットワークアダプタ、Bluetooth(登録商標)アダプタ、赤外線アダプタ、近距離無線通信(「NFC」)アダプタ、セルラネットワークチップ等の任意の組み合わせを含み得る。
[0091] 一部の実施形態では、1つ又は複数の周辺装置への接続を提供するための周辺装置インタフェース408を任意選択的に機器400がさらに含み得る。図4に示すように、周辺装置は、これのみに限定されないが、カーソル制御装置(例えば、マウス、タッチパッド、又はタッチスクリーン)、キーボード、ディスプレイ(例えば、ブラウン管ディスプレイ、液晶ディスプレイ、又は発光ダイオードディスプレイ)、映像入力装置(例えば、映像アーカイブに結合されるカメラ又は入力インタフェース)等を含み得る。
[0092] 映像コーデック(例えば、プロセス200A、200B、300A、又は300Bを実行するコーデック)は、機器400内の任意のソフトウェア又はハードウェアモジュールの任意の組み合わせとして実装できることに留意すべきである。例えば、プロセス200A、200B、300A、又は300Bの一部の又は全ての段階は、メモリ404内にロード可能なプログラム命令等の機器400の1つ又は複数のソフトウェアモジュールとして実装され得る。別の例では、プロセス200A、200B、300A、又は300Bの一部の又は全ての段階は、専用データ処理回路(例えば、FPGA、ASIC、NPU等)等の機器400の1つ又は複数のハードウェアモジュールとして実装され得る。
[0093] 図5は、本開示のいくつかの実施形態と合致する、符号化器によって符号化されるビットストリーム500の例の概略図である。いくつかの実施形態では、ビットストリーム500の構造は、図2A~2B及び図3A~3Bに示される映像ビットストリーム228に適用され得る。図5において、ビットストリーム500は、映像パラメータセット(VPS)510、シーケンスパラメータセット(SPS)520、ピクチャパラメータセット(PPS)530、ピクチャヘッダ540、スライス550~570を含み、それらは、同期マーカM1~M7によって分離されている。スライス550~570のそれぞれが、対応するヘッダブロック(例えば、ヘッダ552)及びデータブロック(例えば、データ554)を含み、各データブロックが、1つ又は複数のCTU(例えば、データ554内のCTU1~CTUn)を含む。
[0094] いくつかの実施形態によれば、ネットワーク抽象化層(NAL)ユニット又はバイトストリームの形式のビットのシーケンスであるビットストリーム500は、1つ又は複数のコード化映像シーケンス(CVS)を形成する。CVSは、1つ又は複数のコード化層映像シーケンス(CLVS)を含む。いくつかの実施形態では、CLVSは、ピクチャユニット(PU)のシーケンスであり、各PUが1つのコード化ピクチャを含む。特に、PUは、0又は1つのピクチャヘッダNALユニット(例えばピクチャヘッダ540)を含み、ピクチャヘッダNALユニットは、ペイロードとしてピクチャヘッダシンタックス構造、1つ又は複数の映像コード化層(VCL)NALユニットを含む1つのコード化ピクチャ、及び任意選択で、1つ又は複数の他の非VCL NALユニットを含む。VCL NALユニットは、いくつかの実施形態において、コード化スライスNALユニット(例えば、スライス550~570)及びVCL NALユニットとして分類されるNALユニットタイプの予約値を有するNALユニットのサブセットについての総称である。コード化スライスNALユニットは、スライスヘッダ及びスライスデータブロック(例えば、ヘッダ552及びデータ554)を含む。
[0095] 言い換えると、本開示のいくつかの実施形態では、1つの層は、NAL層IDの特定値を有する映像コード化層(VCL)NALユニット及び関連する非VCL NALユニットのセットであってもよい。これらの層について、高圧縮性能を達成するために層間予測が異なる層の間に適用され得る。
[0096] 上記で説明されるように、多用途映像コード化(例えば、VVC/H.266)規格では、ピクチャは、CTUのセットに区画されてもよく、複数のCTUが、タイル、スライス、又はサブピクチャを形成し得る。ピクチャが3つの色成分(例えば、ルマ成分及び2つのクロマ成分)を記憶するための3つのサンプルアレイを含むとき、CTUは、N×N(Nは整数)ブロックのルマサンプルを含んでもよく、ルマサンプルの各ブロックは、クロマサンプルの2つのブロックに関連付けられている。いくつかの実施形態では、出力層セット(OLS)は、全てではないがいくつかの層を復号することをサポートするために指定され得る。OLSは、層のセット内の1つ又は複数の層が出力層であると指定される、層の指定されたセットを含む層のセットである。したがって、OLSは、1つ又は複数の出力層と、層間予測のために出力層を復号する必要がある他の層とを含み得る。
[0097] 例として、図6は、本開示のいくつかの実施形態と合致する、ブロックに区画されたピクチャ600の構造を示す概略図である。図6において、それぞれの正方形は、CTU610を表し、ピクチャ600は、8×6のCTU610に区画される。いくつかの実施形態では、CTU内のルマブロックの最大許容サイズは、128×128であり、ルマ変換ブロックの最大許容サイズは、64×64である。いくつかの実施形態では、CTU内のルマブロックの最小許容サイズは、32×32である。ルマブロックの最大許容サイズ、ルマ変換ブロックの最大許容サイズ、及びルマブロックの最小許容サイズは、様々な映像コード化規格において異なる値及び異なる形状であるように指定されてもよく、本開示は、それらを上述した例に限定しないことに留意されたい。
[0098] 本開示のいくつかの実施形態と合致して、ピクチャは、1つ又は複数のタイル行及び1つ又は複数のタイル列に区画され得る。本開示の「タイル」は、ピクチャの長方形領域をカバーするCTUのシーケンスを指してもよい。本開示の「スライス」は、整数個の完全なタイルを含んでもよく、又はピクチャのタイル内にある、整数個の連続した完全なCTU行を含んでもよい。
[0099] いくつかの実施形態では、ピクチャは、2つのモード、「ラスタスキャンスライスモード」及び「長方形スライスモード」でスライスに区画され得る。ラスタスキャンスライスモードにおいて、ピクチャのスライスは、ピクチャのラスタスキャン順に完全なタイルのシーケンスを含み得る。長方形スライスモードにおいて、ピクチャのスライスは、ピクチャの長方形領域を集合的に形成するいくつかの完全なタイルを含んでもよく、又はピクチャの長方形領域を集合的に形成するタイルのいくつかの連続した完全なCTU行を含んでもよい。長方形スライス内のタイルは、長方形スライスに対応する形成された長方形領域の中でラスタスキャン順にスキャンされてもよい。
[0100] 例として、図7は、本開示のいくつかの実施形態と合致する、ラスタスキャンスライスモードで区画されたピクチャ700の構造を示す概略図である。図7において、それぞれの破線の正方形はCTUを表し、ピクチャ700は、16×14のCTUに区画される。ピクチャ700のCTUは、4つのタイル行及び3つのタイル列を含む12のタイル(例えば、タイル712~716、722~726、732~736、及び742~746)を形成し、その境界は、破線に重なった細い実線で表される。さらに、ピクチャ700は、異なる濃淡で表される3つのラスタスキャンスライスに分割され、その境界は、破線又は細い実線に重なった太い実線で表される。図7に示されるように、第1のスライスは、タイル712及び714を含む。第2のスライスは、タイル716、722~726、及び732~734を含む。第3のスライスは、タイル736及び742~746を含む。ピクチャ700の3つのスライスは、ラスタスキャン順に区画され、3つのスライスのそれぞれが、整数個の完全なタイルを含む。
[0101] 例として、図8は、本開示のいくつかの実施形態と合致する、長方形スライスモードで区画されたピクチャ800の構造を示す概略図である。図8において、それぞれの破線の正方形はCTUを表し、ピクチャ800は、16×14のCTUに区画される。ピクチャ800のCTUは、4つのタイル行及び5つのタイル列を含む12のタイルを形成し、その境界は、破線に重なった細い実線で表される。さらに、ピクチャ800は、異なる濃淡で表される9つの長方形スライスに分割され、その境界は、破線又は細い実線に重なった太い実線で表される。図8に示されるように、ピクチャ800の9個のスライスは、9個の長方形領域を形成する長方形に区画され、9個のスライスのそれぞれが、整数個の完全なタイルを含む。例えば、第1のスライスは、タイル812及び814を含む。第2のスライスは、タイル816及び818を含む。第3のスライスは、タイル819を含む。第4のスライスは、タイル822、824、832、及び834を含む。第5のスライスは、タイル826、828、836、及び838を含む。第6のスライスは、タイル829及び839を含む。第7のスライスは、タイル842及び844を含む。第8のスライスは、タイル846及び848を含む。第9のスライスは、タイル849を含む。
[0102] 例として、図9は、本開示のいくつかの実施形態と合致する、長方形スライスモードで区画されたピクチャ900の構造を示す概略図である。図9において、それぞれの破線の正方形はCTUを表し、ピクチャ900は、16×14のCTUに区画される。ピクチャ900のCTUは、2つのタイル行及び2つのタイル列を含む4つのタイル910、920、930、及び940を形成し、その境界は、破線で表される。例えば、第1のタイル910は、7×10CTUのサイズで左上にあり得る。第2のタイル920は、7×4CTUのサイズで左下にあり得る。第3のタイル930は、9×10CTUのサイズで右上にあり得る。第4のタイル940は、9×4CTUのサイズで、右下にあり得る。さらに、ピクチャ900は、異なる濃淡で表される4つの長方形スライスに分割され、その境界は、破線又は細い実線に重なった太い実線で表される。図9に示されるように、ピクチャ900の4個のスライスは、4個の長方形領域を形成する長方形に区画され、4個のスライスのそれぞれが、整数個の完全なタイル又はピクチャ800のタイル内にある整数の連続した完全なCTU行を含む。例えば、第1のスライス(白色で表される)は、7×14CTUのサイズを有し、2つの完全なタイル910及び920を含み得る。第2のスライス(灰色で表される)は、9×4CTUのサイズを有し、タイル930の1つの部分(例えば、部分932)を含み得る。第3のスライス(白色で表される)は、9×6CTUのサイズを有し、タイル930のもう1つの部分(例えば、部分934)を含み得る。第4のスライス(灰色で表される)は、9×4CTUのサイズを有し、1つの完全なタイル940を含み得る。
[0103] 例として、図10は、本開示のいくつかの実施形態と合致する、長方形スライスモードで区画されたピクチャ1000の構造を示す概略図である。図10において、それぞれの破線の正方形はCTUを表し、ピクチャ1000は、16×16のCTUに区画される。ピクチャ1000のCTUは、4つのタイル行及び5つのタイル列を含む20のタイル1012~1019、1022~1029、1032~1039、及び1042~1049を形成し、その境界は、破線に重なった細い実線で表される。図10に示されるように、左側の12個のタイル(例えば、タイル1012~1016、1022~1026、1032~1036、及び1042~1046)は、それぞれ4×4CTUの1つのスライスをカバーする。右側の8個のタイル(例えば、タイル1018、1019、1028、1029、1038、1039、1048、及び1049)は、2×2CTUの2つの垂直方向に積層されたスライスをそれぞれカバーして、異なる濃淡で表された28個のスライスとなり、その中の各スライスが、サブピクチャである。例えば、タイル1018は、垂直に積層されたスライス1018a及び1018bをカバーし、タイル1028は、垂直に積層されたスライス1028a及び1028bをカバーする、などである。スライス/サブピクチャの境界は、太い破線で表される。
[0104] いくつかの実施形態では、サブピクチャレイアウト又はサブピクチャ区画は、シーケンスパラメータセット(SPS)においてシグナリングされ得る。図11は、本開示のいくつかの実施形態と合致する、サブピクチャレイアウトをシグナリングするためのSPSシンタックス構造1100の一部の例示的なコード化シンタックステーブルを示す。図11に示される疑似コードは、VVC規格の一部であってもよい。
[0105] 図11において、SPSフラグ1110(「sps_subpic_info_present_flag」)は、1に等しいとき、サブピクチャ情報がCLVSについて存在し、CLVSの各ピクチャに1つ又は複数のサブピクチャが存在し得ることを指定し得る。上記開示と合致して、CLVSは、同一層に属するピクチャの群であり、ランダムアクセスポイントで始まり、互いに依存し得るピクチャ及びランダムアクセスポイントピクチャが後に続く。SPSフラグ1110が0に等しいとき、CLVSについてサブピクチャ情報が存在せず、CLVSの各ピクチャにサブピクチャが1つだけ存在する。いくつかの実施形態では、SPSフラグ「sps_res_change_in_clvs_allowed_flag」が1に等しいことは、SPSフラグ1110の値が0に等しいことを指定する。ビットストリームが、サブビットストリーム抽出プロセスの結果であり、サブビットストリーム抽出プロセスへの入力ビットストリームのサブピクチャのサブセットのみを含むとき、シーケンスパラメータセット(「SPS」)の生バイトシーケンスペイロード(「RBSP」)においてSPSフラグ1110の値を1にセットする必要があり得る。
[0106] 図11において、SPSシンタックス要素「sps_num_subpics_minus1」(例えば、図11のシンタックス要素1112)+1は、CLVSにおける各ピクチャ内のサブピクチャの数を指定する。シンタックス要素1112の値(「sps_num_subpics_minus1」)は、0以上、(ceil(sps_pic_width_max_in_luma_samples÷CtbSizeY)×ceil(sps_pic_height_max_in_luma_samples÷CtbSizeY)-1)以下の範囲にある。存在しない場合、シンタックス要素1112(「sps_num_subpics_minus1」)の値は、0に等しいと判定される。
[0107] 図11において、SPSフラグ1120(「sps_independent_subpics_flag」)が、1に等しいとき、CLVS内の全てのサブピクチャ境界がピクチャ境界として扱われ、サブピクチャ境界にわたるループフィルタリングがないことを指定し得る。SPSフラグ1120が0に等しいことによって、そのような制約は課されない。SPSフラグ1120の値は、存在しない場合、1に等しいと判定される。
[0108] 図11において、SPSシンタックス要素「sps_subpic_ctu_top_left_x[i]」(例えば、図11のシンタックス要素1122)は、CtbSizeYのユニットでi番目のサブピクチャの左上のCTUの水平位置を指定する。このシンタックス要素1122の長さは、ceil(log2((sps_pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。SPSシンタックス要素「sps_subpic_ctu_top_left_x[i]」の値は、存在しない場合、0に等しいと判定される。
[0109] 同様に、SPSシンタックス要素「sps_subpic_ctu_top_left_y[i]」(例えば、図11のシンタックス要素1124)は、CtbSizeYのユニットでi番目のサブピクチャの左上のCTUの垂直位置を指定する。このシンタックス要素1124の長さは、ceil(log2((sps_pic_height_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。SPSシンタックス要素「sps_subpic_ctu_top_left_y[i]」の値は、存在しない場合、0に等しいと判定される。
[0110] 図11において、SPSシンタックス要素「sps_subpic_width_minus1[i]」(例えば、図11のシンタックス要素1126)+1は、CtbSizeYのユニットでi番目のサブピクチャの幅を指定する。このシンタックス要素1126の長さは、ceil(log2((sps_pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。存在しない場合、SPSシンタックス要素「sps_subpic_width_minus1[i]」の値は、((ps_pic_width_max_in_luma_samples+CtbSizeY-1)>>(CtbLog2SizeY)-sps_subpic_ctu_top_left_x[i]-1)に等しいと判定される。
[0111] 同様に、SPSシンタックス要素「sps_subpic_height_minus1[i]」(例えば、図11のシンタックス要素1128)+1は、CtbSizeYのユニットでi番目のサブピクチャの高さを指定する。このシンタックス要素1128の長さは、ceil(log2((sps_pic_height_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。存在しない場合、SPSシンタックス要素「sps_subpic_height_minus1[i]」の値は、((ps_pic_height_max_in_luma_samples+CtbSizeY-1)>>(CtbLog2SizeY)-sps_subpic_ctu_top_left_y[i]-1)に等しいと判定される。
[0112] いくつかの実施形態では、ビットストリーム適合性を満たすためには、サブピクチャの形状は、各サブピクチャが復号時に、ピクチャ境界を含むか又は以前復号されたサブピクチャの境界を含む、その左境界全体及び上部境界全体を有するような形状である。
[0113] いくつかの実施形態では、0以上、シンタックス要素1112の値以下の範囲のサブピクチャインデックスiを有する各サブピクチャについて、ビットストリーム適合性を満たすためには、以下の条件が真である。第1に、(sps_subpic_ctu_top_left_x[i]×CtbSizeY)の値が、(sps_pic_width_max_in_luma_samples-sps_conf_win_right_offset×SubWidthC)未満である。第2に、((sps_subpic_ctu_top_left_x[i]+sps_subpic_width_minus1[i]+1)×CtbSizeY)の値が、(sps_conf_win_left_offset×SubWidthC)より大きい。第3に、(sps_subpic_ctu_top_left_y[i]×CtbSizeY)の値が、(sps_pic_height_max_in_luma_samples-sps_conf_win_bottom_offset×SubHeightC)未満である。第4に、((sps_subpic_ctu_top_left_y[i]+sps_subpic_height_minus1[i]+1)×CtbSizeY)の値が、(sps_conf_win_top_offset×SubHeightC)より大きい。
[0114] 図11において、SPSフラグ1130(「sps_subpic_treated_as_pic_flag[i]」)は、1に等しいとき、CLVS内の各コード化ピクチャのi番目のサブピクチャがインループフィルタリング動作を除く復号プロセスにおいてピクチャとして扱われることを指定し得る。0に等しいSPSフラグ1130は、CLVS内の各コード化ピクチャのi番目のサブピクチャがインループフィルタリング動作を除く復号プロセスにおいてピクチャとして扱われないことを指定する。存在しない場合、SPSフラグ1130の値は、1に等しいと判定される。
[0115] SPSシンタックス要素「sps_num_subpics_minus1」(例えば、図11のシンタックス要素1112)の値が0より大きく、及びSPSフラグ1130が1に等しいとき、SPSを参照する現在の層の各CLVSについて、AUのターゲットセット(「targetAuSet」)は、復号順序でCLVSの最初のピクチャを含むAUから始まって、復号順序でCLVSの最後のピクチャを含むAUまでを含む、全てのアクセスユニット(「AU」)を指す。いくつかの実施形態では、ビットストリーム適合性を満たすためには、以下の条件が、現在の層及び現在の層を基準層として使用する層を含む、層のターゲットセット(「targetLayerSet」)に対して真である。第1に、targetAuSet内のAUごとに、targetLayerSet内の層の全ピクチャが、同じ値のpps_pic_width_in_luma_samples及び同じ値のpps_pic_height_in_luma_samplesを有する。第2に、targetLayerSet内の層によって参照される全てのSPSは、同じ値のシンタックス要素1112、並びに0からシンタックス要素1112までを含む範囲のjの各値について、それぞれ同じ値のsps_subpic_ctu_top_left_x[j]、sps_subpic_ctu_top_left_y[j]、sps_subpic_width_minus1[j]、sps_subpic_height_minus1[j]、及びsps_subpic_treated_as_pic_flag[j]を有する。第3に、targetAuSet内の各AUに対して、targetLayerSet内の層の全ピクチャが、0からシンタックス要素1112までを含む範囲のjの各値について、同じ値のSubpicIdVal[j]を有する。
[0116] 図11において、フラグ1140(「sps_loop_filter_across_subpic_enabled_flag[i]」)は、1に等しいとき、サブピクチャ境界にわたるインループフィルタリング動作が有効にされ、CLVSにおける各コード化ピクチャ内のi番目のサブピクチャの境界にわたって実行され得ることを指定する。フラグ1140は、0に等しいとき、サブピクチャ境界にわたるインループフィルタリング動作が無効にされ、CLVSにおける各コード化ピクチャ内のi番目のサブピクチャの境界にわたって実行されないことを指定する。フラグ1140の値は、存在しない場合、0に等しいと判定される。
[0117] SPSシンタックス要素「sps_subpic_id_len_minus1」(例えば、図11のシンタックス要素1142)+1は、SPSシンタックス要素「sps_subpic_id[i]」、存在するときはPPSシンタックス要素「pps_subpic_id[i]」、及び存在するときはシンタックス要素「sh_subpic_id」を表すために使用されるビットの数を指定する。いくつかの実施形態では、SPSシンタックス要素「sps_subpic_id_len_minus1」の値は、0以上、15以下の範囲にある。1<<(sps_subpic_id_len_minus1+1)の値は、sps_num_subpics_minus1+1以上である。
[0118] 図11において、フラグ1150(「sps_subpic_id_mapping_explicitly_signalled_flag」)は、1に等しいとき、CLVSのコード化ピクチャによって参照されるSPS又はPPSのいずれかにおいて、サブピクチャIDマッピングが明示的にシグナリングされることを指定する。フラグ1150は、0に等しいとき、サブピクチャIDマッピングがCLVSについて明示的にシグナリングされないことを指定する。フラグ1150の値は、存在しない場合、0に等しいと判定される。
[0119] 図11において、フラグ1160(「sps_subpic_id_mapping_present_flag」)は、1に等しいとき、フラグ1150が1に等しいときにSPSにおいてサブピクチャIDマッピングがシグナリングされることを指定する。フラグ1160は、0に等しいとき、フラグ1150が1に等しいときにCLVSのコード化ピクチャによって参照されるPPSにおいて、サブピクチャIDマッピングがシグナリングされることを指定する。
[0120] SPSシンタックス要素「sps_subpic_id[i]」(例えば、図11のシンタックス要素1162)は、i番目のサブピクチャのサブピクチャIDを指定する。いくつかの実施形態では、SPSシンタックス要素「sps_subpic_id[i]」の長さは、「sps_subpic_id_len_minus1」+1ビットの値である。
[0121] いくつかの実施形態では、タイル及びスライス区画についてのタイルマッピング情報が、ピクチャパラメータセット(PPS)においてシグナリングされ得る。図12は、本開示のいくつかの実施形態と合致する、タイルマッピング及びタイルマッピング内のスライスをシグナリングするためのPPSシンタックス構造1200の一部の例示的なコード化シンタックステーブルを示す。図12に示される疑似コードは、VVC規格の一部であってもよい。
[0122] 図12において、PPSフラグ1210(「pps_no_pic_partition_flag」)は、PPSフラグ1210が1に等しいときに、PPS(PPSフラグ1210を含む)を参照するいかなるピクチャにもピクチャ区画が適用されないことを指定してもよく、PPSフラグ1210が0に等しいときに、PPSを参照する各ピクチャが1つより多くのタイル又はスライスに区画され得ることを指定し得る。いくつかの実施形態では、PPSフラグ1210の値が、コード化層映像シーケンス(CLVS)の中のコード化ピクチャによって参照される全てのPPSについて同じであることが、ビットストリーム適合性要件である。いくつかの実施形態では、シンタックス要素1112(「sps_num_subpics_minus1」)の値が0より大きいとき、又はシンタックス要素「pps_mixed_nalu_types_in_pic_flag」の値が1に等しいときに、PPSフラグ1210の値が0に等しいこともまた、ビットストリーム適合性要件である。
[0123] 図12において、フラグ1220(「pps_subpic_id_mapping_present_flag」)の値が1に等しいことは、サブピクチャIDマッピングがPPSにおいてシグナリングされることを指定する。フラグ1220が0に等しいことは、サブピクチャIDマッピングがPPSにおいてシグナリングされないことを指定する。いくつかの実施形態では、SPSフラグ「sps_subpic_id_mapping_explicitly_signalled_flag」(例えば、フラグ1150)が0に等しいか、又はSPSフラグ「sps_subpic_id_mapping_present_flag」(例えば、フラグ1160)が1に等しい場合、フラグ1220の値は0に等しい。SPSフラグ1150が1に等しく、及びSPSフラグ1160が0に等しい場合、フラグ1220の値は1に等しい。
[0124] 図12において、シンタックス要素「pps_num_subpics_minus1」(例えば、図12のシンタックス要素1222)の値は、SPSシンタックス要素「sps_num_subpics_minus1」(例えば、図11のシンタックス要素1112)の値に等しい。PPSフラグ1210が1に等しいとき、シンタックス要素1222の値は、0に等しいと判定される。
[0125] 図12において、シンタックス要素「pps_subpic_id_len_minus1」(例えば、図12のシンタックス要素1224)の値は、SPSシンタックス要素「sps_subpic_id_len_minus1」(例えば、図11のシンタックス要素1142)の値に等しい。
[0126] 図12において、シンタックス要素「pps_subpic_id[i]」(例えば、図12のシンタックス要素1226)の値は、i番目のサブピクチャのサブピクチャIDを指定する。いくつかの実施形態では、シンタックス要素1226の長さは、pps_subpic_id_len_minus1+1ビットである。
[0127] 図13は、本開示のいくつかの実施形態にかかる、変数SubpicIdValについての値を導出するための例示的な疑似コードを示す。図13に示されるように、0以上、シンタックス要素1112(「sps_num_subpics_minus1」)以下の範囲のインデックスiの値ごとに、変数SubpicIdValについての値が導出され得る。いくつかの実施形態では、ビットストリーム適合性を満たすために、以下の制約の両方が適用される。第1に、0以上、シンタックス要素1112(「sps_num_subpics_minus1」)以下の範囲のインデックスi及びインデックスjの任意の2つの異なる値に対して、SubpicIdVal[i]は、SubpicIdVal[j]と等しくない。第2に、0以上、シンタックス要素1112(「sps_num_subpics_minus1」)以下の範囲のインデックスiの各値に対して、特定の値layerIdに等しいnuh_layer_idを有する現在のピクチャのSubpicIdVal[i]の値が、layerIdに等しいnuh_layer_idを有する基準ピクチャのSubpicIdVal[i]の値に等しくないとき、現在のピクチャのi番目のサブピクチャ内のコード化スライスの基準ピクチャリスト(「RPL」)のアクティブエントリは、その基準ピクチャを含まない。
[0128] 図12において、シンタックス要素「pps_log2_ctu_size_minus5」(例えば、図12のシンタックス要素1228)+5の値は、各CTUについてのルマコード化ツリーブロックサイズを指定する。いくつかの実施形態では、シンタックス要素1228は、SPSにおいてシグナリングされるシンタックス要素「sps_log2_ctu_size_minus5」に等しい。
[0129] 図12において、シンタックス要素「pps_num_exp_tile_columns_minus1」(例えば、図12のシンタックス要素1232)+1の値は、明示的に与えられるタイル列幅の数を指定する。いくつかの実施形態では、シンタックス要素1232の値は、0以上、(PicWidthInCtbsY-1)以下の範囲にある。PPSフラグ1210が1に等しいとき、シンタックス要素1232の値は、0であると判定される。
[0130] 図12において、シンタックス要素「pps_num_exp_tile_rows_minus1」(例えば、図12のシンタックス要素1234)+1の値は、明示的に与えられるタイル行高さの数を指定する。いくつかの実施形態では、シンタックス要素1234の値は、0以上、(PicHeightInCtbsY-1)以下の範囲にある。PPSフラグ1210が1に等しいとき、シンタックス要素1234の値は、0であると判定される。
[0131] 図12において、シンタックス要素「pps_tile_column_width_minus1[i]」(例えば、図12のシンタックス要素1236)+1の値は、CTBのユニット内のi番目のタイル列の幅を指定し、インデックスiは、0以上、シンタックス要素1232以下の範囲にある。いくつかの実施形態では、シンタックス要素「pps_tile_column_width_minus1[num_exp_tile_columns_minus1]」は、本明細書に指定されるようにシンタックス要素1232より大きなインデックスを有するタイル列の幅を導出するために使用され得る。シンタックス要素1236の値は、0以上、(PicWidthInCtbsY-1)以下の範囲にある。シンタックス要素「pps_tile_column_width_minus1[0]」の値は、PPS内に存在しない場合、「PicWidthInCtbsY-1」に等しいと判定される。
[0132] 図12において、シンタックス要素「pps_tile_row_height_minus1[i]」(例えば、図12のシンタックス要素1238)+1の値は、CTBのユニット内のi番目のタイル行の高さを指定し、インデックスiは、0以上、シンタックス要素1234以下の範囲にある。いくつかの実施形態では、シンタックス要素「pps_tile_row_height_minus1[pps_num_exp_tile_rows_minus1]」は、本明細書に指定されるようにシンタックス要素1234より大きなインデックスを有するタイル行の高さを導出するために使用され得る。1238の値は、0以上、(PicHeightInCtbsY-1)以下の範囲にある。シンタックス要素「pps_tile_row_height_minus1[0]」の値は、PPS内に存在しないとき、「PicHeightInCtbsY-1」に等しいと判定される。
[0133] 図12において、フラグ1230(「pps_loop_filter_across_tiles_enabled_flag」)は、1に等しいとき、タイル境界にわたるインループフィルタリング動作が有効にされ、PPSを参照するピクチャにおいてタイル境界にわたって実行され得ることを指定する。フラグ1230は、0に等しいとき、タイル境界にわたるインループフィルタリング動作が無効にされ、PPSを参照するピクチャにおいてタイル境界にわたって実行されないことを指定する。インループフィルタリング動作は、デブロッキングフィルタ、サンプルアダプティブオフセットフィルタ、及びアダプティブループフィルタ動作を含む。フラグ1230の値は、存在しないとき、1に等しいと判定される。
[0134] 図12において、フラグ1240(「pps_rect_slice_flag」)は、0に等しいとき、各スライス内のタイルがラスタスキャン順であること、及びスライス情報がPPSにおいてシグナリングされないことを指定する。フラグ1240は、1に等しいとき、各スライス内のタイルがピクチャの長方形領域をカバーすること、及びスライス情報がPPSにおいてシグナリングされることを指定する。フラグ1240は、PPS内に存在しないとき、1に等しいと判定され得る。いくつかの実施形態では、SPSフラグ1110(「sps_subpic_info_present_flag」)が1に等しいとき、又はPPSフラグ「pps_mixed_nalu_types_in_pic_flag」が1に等しいとき、フラグ1240の値は1に等しい。
[0135] 図12において、フラグ1250(「pps_single_slice_per_subpic_flag」)は、0に等しいとき、各サブピクチャが1つ又は複数の長方形スライスを含み得ることを指定する。フラグ1250は、1に等しいとき、各サブピクチャが1つの単一長方形スライスを含むことを指定する。フラグ1250は、存在しないとき、1に等しいと判定される。
[0136] 図12において、シンタックス要素「pps_num_slices_in_pic_minus1」(例えば、図12のシンタックス要素1252)+1は、PPSを参照する各ピクチャ内の長方形スライスの数を指定する。いくつかの実施形態では、シンタックス要素1252(「pps_num_slices_in_pic_minus1」)の値は、0以上、(シンタックス要素「MaxSlicesPerPicture」の値-1)以下の範囲にある。シンタックス要素「MaxSlicesPerPicture」は、ピクチャ内のスライスの最大許容数についてのレベル制限を示す。PPSフラグ1210が1に等しいとき、シンタックス要素1252(「pps_num_slices_in_pic_minus1」)の値は、0に等しいと判定される。即ち、PPSを参照するいかなるピクチャにもピクチャ区画が適用されず、それゆえ、ピクチャは単一スライスを含む。
[0137] PPSフラグ1250が1に等しいとき、シンタックス要素1252(「pps_num_slices_in_pic_minus1」)の値が、SPS内のシンタックス要素1112(「sps_num_subpics_minus1」)の値に等しいと判定される。即ち、各サブピクチャは単一の長方形スライスを含み、それゆえ、各ピクチャ内の長方形スライスの数は、各ピクチャ内のサブピクチャの数に等しい。
[0138] 図12において、フラグ1260(「pps_tile_idx_delta_present_flag」)は、0に等しいとき、pps_tile_idx_delta_val[i]のシンタックス要素がPPSに存在しないこと、及びPPSを参照するピクチャがラスタスキャン順で長方形スライス行及び長方形スライス列に区画されることを指定する。フラグ1260は、1に等しいとき、pps_tile_idx_delta_val[i]のシンタックス要素がPPSに存在し得ること、及びPPSを参照するピクチャ内の長方形スライスが、インデックスiの値が増加するときにpps_tile_idx_delta_val[i]のシンタックス要素の値によって示される順に指定されることを指定する。フラグ1260の値は、存在しないとき、0に等しいと判定される。
[0139] 図12において、シンタックス要素「pps_slice_width_in_tiles_minus1[i]」(例えば、図12のシンタックス要素1262)+1は、タイル列のユニットのi番目の長方形スライスの幅を指定する。いくつかの実施形態では、シンタックス要素1262(「pps_slice_width_in_tiles_minus1[i]」)の値は、0以上、(「NumTileColumns-1)以下の範囲にある。シンタックス要素1262(「pps_slice_width_in_tiles_minus1」)の値は、PPSに存在しないとき、0に等しいと判定される。
[0140] 図12において、シンタックス要素「pps_slice_height_in_tiles_minus1[i]」(例えば、図12のシンタックス要素1264)+1は、タイル行のユニットのi番目の長方形スライスの高さを指定する。いくつかの実施形態では、シンタックス要素1264(「pps_slice_height_in_tiles_minus1[i]」)の値は、0以上、(NumTileRow-1)以下の範囲にある。シンタックス要素1264(「pps_slice_height_in_tiles_minus1[i]」)がPPSに存在しないとき、「SliceTopLeftTileIdx[i]/NumTileColumns」の値が「NumTileRows-1」の値に等しい場合は、シンタックス要素1264の値は0に等しいと判定され、そうでない場合は、シンタックス要素1264の値は「pps_slice_height_in_tiles_minus1[i-1]」の値に等しいと判定される。
[0141] 図12において、シンタックス要素「pps_num_exp_slices_in_tile[i]」(例えば、図12のシンタックス要素1266)の値は、現在のタイル(例えば、i番目のスライスを含むタイル)内のスライスに明示的に与えられたスライス高さの数を指定する。いくつかの実施形態では、シンタックス要素1266(「pps_num_exp_slices_in_tile[i]」)の値は、0以上、(RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]-1)以下の範囲にある。シンタックス要素1266の値は、存在しないとき、0に等しいと判定される。シンタックス要素1266が0に等しいとき、変数「NumSlicesInTile[i]」の値は、1に等しいと導出され、i番目のスライスを含むタイルが複数のスライスに分割されないことを示す。シンタックス要素1266が0より大きいとき、i番目のスライスを含むタイルは、複数のスライスに分割され得る。
[0142] 図12において、シンタックス要素「pps_exp_slice_height_in_ctus_minus1[i][j]」(例えば、図12のシンタックス要素1268)の値+1は、CTU行のユニットのi番目のスライスを含むタイル内のj番目の長方形スライスの高さを指定する。シンタックス要素1266(「pps_num_exp_slices_in_tile[i]」)が0より大きい(即ち、タイルが複数のスライスに分割され得る)とき、インデックスjは、0以上、(pps_num_exp_slices_in_tile[i]-1)以下の範囲にある。
[0143] シンタックス要素「pps_exp_slice_height_in_ctus_minus1[i][pps_num_exp_slices_in_tile[i]]」の値もまた、本明細書に指定されるように、(pps_num_exp_slices_in_tile[i]-1)より大きなインデックスを有するi番目のスライスを含むタイル内の長方形スライスの高さを導出するために用いられる。シンタックス要素1268(「pps_exp_slice_height_in_ctus_minus1[i][j]」)の値は、0以上、(RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]-1)以下の範囲にあるものとする。即ち、タイル内の任意の長方形スライスの高さの最大可能値は、現在のタイルの高さであるべきである。
[0144] 図12において、シンタックス要素「pps_tile_idx_delta_val[i]」(例えば、図12のシンタックス要素1272)は、(i+1)番目の長方形スライス内の第1のCTUを含むタイルのタイルインデックスと、i番目の長方形スライス内の第1のCTUを含むタイルのタイルインデックスとの差を指定する。シンタックス要素1272(「pps_tile_idx_delta_val[i]」)の値は、(-NumTilesInPic+1)以上、(NumTilesInPic-1)以下の範囲にあるものとする。シンタックス要素1272の値は、存在しないとき、0に等しいと判定される。シンタックス要素1272の値が存在するときは、0に等しくない。
[0145] いくつかの実施形態では、フラグ1240が1に等しいとき、同じピクチャ及び異なるサブピクチャに属し、ピクチャレベルスライスインデックスidxA及びidxBを有する任意の2つのスライスについて、SubpicIdxForSlice[idxA]がSubpicIdxForSlice[idxB]より小さいときにidxAの値がidxBよりも小さいことが、ビットストリーム適合性要件である。
[0146] 図12において、フラグ1270(「pps_loop_filter_across_slices_enabled_flag」)は、1に等しいとき、スライス境界にわたるインループフィルタリング動作が有効にされ、PPSを参照するピクチャにおいてスライス境界にわたって実行され得ることを指定する。フラグ1270は、0に等しいとき、スライス境界にわたるインループフィルタリング動作が無効にされ、PPSを参照するピクチャにおいてスライス境界にわたって実行されないことを指定する。インループフィルタリング動作は、デブロッキングフィルタ、サンプルアダプティブオフセットフィルタ、及びアダプティブループフィルタ動作を含む。フラグ1270の値は、存在しないとき、0に等しいと判定される。
[0147] タイル列の数を指定する変数NumTileColumns、及びCTBのユニットのi番目のタイル列の幅を指定する、0以上、(NumTileColumns-1)以下の範囲のiについてのリストcolWidth[i]が導出され得る。図14は、本開示のいくつかの実施形態にかかる、変数NumTileColumnsの導出を含む例示的な疑似コードを示す。
[0148] タイル行の数を指定する変数NumTileRows、及びCTBのユニットのj番目のタイル行の高さを指定する、0以上、(NumTileRows-1)以下の範囲のjについてのリストRowHeight[j]が導出され得る。図15は、本開示のいくつかの実施形態にかかる、変数NumTileRowsの導出を含む例示的な疑似コードを示す。変数NumTilesInPicは、NumTileColumns×NumTileRowsに等しくセットされる。
[0149] CTBのユニットのi番目のタイル列境界の位置を指定する、0からNumTileColumnsまでを含む範囲のiについてのリストtileColBd[i]が、導出され得る。図16は、本開示のいくつかの実施形態にかかる、変数tileColBd[i]の導出を含む例示的な疑似コードを示す。図16に示されるように、アレイtileColBd[]のサイズは、タイル列の実際の数よりも1大きい。
[0150] CTBのユニットのj番目のタイル行境界の位置を指定する、0以上、NumTileRows以下の範囲のjについてのリストtileRowBd[j]が、導出され得る。図17は、本開示のいくつかの実施形態にかかる、変数tileRowBd[j]の導出を含む例示的な疑似コードを示す。図17に示されるように、アレイtileRowBd[]のサイズは、タイル行の実際の数よりも1大きい。
[0151] 水平CTBアドレスからCTBのユニット内の左タイル列境界への変換及びタイル列インデックスへの変換をそれぞれ指定する、0以上、PicWidthInCtbsY以下の範囲のctbAddrXについてのリスト、CtbToTileColBd[ctbAddrX]及びctbToTileColIdx[ctbAddrX]が導出され得る。図18は、本開示のいくつかの実施形態にかかる、変数CtbToTileColBd及びctbToTileColIdxの導出を含む例示的な疑似コードを示す。図18に示されるように、アレイCtbToTileColBd[]及びctbToTileColIdx[]のサイズは、CTB内の実際のピクチャ幅よりも1大きい。
[0152] 垂直CTBアドレスからCTBのユニット内の上タイル列境界への変換及びタイル行インデックスへの変換をそれぞれ指定する、0以上、PicHeightInCtbsY以下の範囲のctbAddrYについてのリスト、CtbToTileRowBd[ctbAddrY]及びctbToTileRowIdx[ctbAddrY]が導出され得る。図19は、本開示のいくつかの実施形態にかかる、変数CtbToTileRowBd及びctbToTileRowIdxの導出を含む例示的な疑似コードを示す。図19に示されるように、アレイCtbToTileRowBd[]及びctbToTileRowIdx[]のサイズは、CTB内の実際のピクチャ高よりも1大きい。
[0153] タイル列及び行のi番目のサブピクチャの幅及び高さをそれぞれ指定する、0以上、シンタックス要素1112(「sps_num_subpics_minus1」)以下の範囲のiについてのリストSubpicWidthInTiles[i]及びSubpicHeightInTiles[i]、並びにi番目のサブピクチャの高さが1つのタイル行未満であるかどうかを指定する、0以上、シンタックス要素1112(「sps_num_subpics_minus1」)以下の範囲のiについてのリストsubpicHeightLessThanOneTileFlag[i]が導出され得る。図20は、本開示のいくつかの実施形態にかかる、変数SubpicWidthInTiles及びSubpicHeightInTilesの導出を含む例示的な疑似コードを示す。図20に示されるように、タイルが複数の長方形スライスに区画され、及びタイルの長方形スライスのサブセットのみがi番目のサブピクチャに含まれるとき、タイルは、SubpicHeightInTiles[i]の値で1つのタイルとして数えられる。
[0154] フラグ1240(「pps_rect_slice_flag」)が1に等しいとき、i番目のスライス内のCTUの数を指定する、0以上、シンタックス要素1252(「pps_num_slices_in_pic_minus1」)以下の範囲のiについてのリストNumCtusInSlice[i]、スライス内の第1のCTUを含むタイルのタイルインデックスを指定する、0以上、シンタックス要素1252(「pps_num_slices_in_pic_minus1」)以下の範囲のiについてのリストSliceTopLeftTileIdx[i]、並びにi番目のスライス内のj番目のCTBのピクチャラスタスキャンアドレスを指定する、0以上、シンタックス要素1252(「pps_num_slices_in_pic_minus1」)以下の範囲のi及び0以上、(NumCtusInSlice[i]-1)以下の範囲のjについてのマトリクスCtbAddrInSlice[i][j]、並びにi番目のスライスを含むタイル内のスライスの数を指定する変数NumSlicesInTile[i]が、導出され得る。図21及び図22は、本開示のいくつかの実施形態にかかる、変数NumCtusInSlice、SliceTopLeftTileIdx、CtbAddrInSlice、及びNumSlicesInTileの導出を含む例示的な疑似コードを示す。
[0155] ビットストリーム適合性を満たすためには、0以上、シンタックス要素1252(「pps_num_slices_in_pic_minus1」)以下の範囲のiについてのNumCtusInSlice[i]の値は、0より大きい。加えて、ビットストリーム適合性を満たすためには、0以上、シンタックス要素1252(「pps_num_slices_in_pic_minus1」)以下の範囲のi及び0以上、(NumCtusInSlice[i]-1)以下の範囲のjについてのマトリクスCtbAddrInSlice[i][j]は、0以上、(PicSizeInCtbsY-1)以下の範囲の全てのCTBアドレスのそれぞれを1度だけ含む。
[0156] i番目のサブピクチャ内のスライスの数、ピクチャレベルスライスインデックスjを有するスライスのサブピクチャレベルスライスインデックス、及びピクチャレベルスライスインデックスjを有するスライスのサブピクチャインデックスをそれぞれ指定する、リストNumSlicesInSubpic[i]、SubpicLevelSliceIdx[j]、及びSubpicIdxForSlice[j]が導出され得る。図23は、本開示のいくつかの実施形態にかかる、変数NumSlicesInSubpic、SubpicLevelSliceIdx、及びSubpicIdxForSliceの導出を含む例示的な疑似コードを示す。
[0157] 本開示の実施形態は、現在のCLVS内のピクチャが1つより多くのタイル又はスライスに区画されるかどうかを示すSPS内のフラグをシグナリングすることと、SPSにおいてシグナリングされたフラグと同じ値を有するフラグをPPSにおいてシグナリングすることと、を提供する。図24は、本開示のいくつかの実施形態と合致する、SPSにおいてシグナリングされるSPSシンタックス構造2400の一部の例示的なコード化シンタックステーブルを太字で強調して示す。シンタックス構造2400は、図11のシンタックス1100に基づいて修正される。図24に示されるように、図11に示された以前のシンタックスからの変更は、強調されたパターンで示されている。
[0158] 図11に示されるSPSシンタックスと比較して、いくつかの実施形態では、SPSフラグ2410(「sps_no_pic_partition_flag」)は、図24に示されるSPSシンタックスにおいてSPSフラグ1110の前にシグナリングされる。1に等しいSPSフラグ2410(「sps_no_pic_partition_flag」)は、SPSを参照する各ピクチャにピクチャ区画が適用されないことを指定する。0に等しいSPSフラグ2410は、SPSを参照する各ピクチャが1つより多くのタイル又はスライスに区画され得ることを指定する。
[0159] いくつかの実施形態では、図24に示されたシンタックスに関連する1つ又は複数の追加制約が導入され得る。例えば、追加制約は、PPSにおいてシグナリングされるフラグ1210(「pps_no_pic_partition_flag」)の値が、関連SPSにおけるSPSフラグ2410(「sps_no_pic_partitoin_flag」)の値に等しいことであってもよい。
[0160] 加えて、SPSフラグ2410の値が1に等しいときにシンタックス要素1112(「sps_num_subpics_minus1」)の値が0であることを保証するために、別の制約が追加され得る。サブピクチャはスライスのセットであるため、スライスの区画がない(例えば、SPSシンタックス要素フラグが1である)とき、サブピクチャの区画が存在しなくなる(例えば、SPSシンタックス要素1112が0である)。
[0161] 図25は、本開示のいくつかの実施形態と合致する、SPSにおいてシグナリングされたSPSシンタックス構造2500の一部の別の例示的なコード化シンタックステーブルを太字で強調して示す。シンタックス構造2500は、また、図11のシンタックス構造1100に基づいて修正される。図25に示されるように、図11に示された以前のシンタックスからの変更は、強調されたパターンで示されている。
[0162] 上述の通り、いくつかの実施形態では、SPSフラグ2410(「sps_no_pic_partitoin_flag」)が1に等しいとき、サブピクチャの数は1つだけであってもよい。それに応じて、SPSフラグ1110(「sps_subpic_info_present_flag」)又はSPSシンタックス要素1112(「sps_num_subpics_minus1」)は、SPSフラグ2410(「sps_no_pic_partitoin_flag」)の値に基づいて条件付きでシグナリングされてもよい。例えば、図25に示されるように、SPSフラグ1110(「sps_subpic_info_present_flag」)は、SPSフラグ2410(「sps_no_pic_partitoin_flag」)が0に等しいときにシグナリングされ、SPSフラグ1110(「sps_subpic_info_present_flag」)のシグナリングは、SPSフラグ2410(「sps_no_pic_partitoin_flag」)が1に等しいときにスキップされ得る。SPSフラグ1110のシグナリングがスキップされるとき、SPSフラグ1110(「sps_subpic_info_present_flag」)の値が0であると判定され得る。言い換えると、SPSがピクチャの区画を許可しないとき、サブピクチャ情報は存在しない。
[0163] 図25のシンタックスにおいて、1に等しいSPSフラグ2410(「sps_no_pic_partitoin_flag」)は、SPSを参照する各ピクチャにピクチャ区画が適用されないことを指定する。0に等しいSPSフラグ2410は、SPSを参照する各ピクチャが1つより多くのタイル又はスライスに区画され得ることを指定する。図25にシンタックスにおいて、1に等しいSPSフラグ1110(「sps_subpic_info_present_flag」)は、サブピクチャ情報がCLVSについて存在し、CLVSの各ピクチャに1つ又は複数のサブピクチャが存在し得ることを指定する。0に等しいSPSフラグ1110(「sps_subpic_info_present_flag」)は、CLVSについてサブピクチャ情報が存在せず、CLVSの各ピクチャにサブピクチャが1つだけ存在することを指定する。SPSフラグ1110(「sps_subpic_info_present_flag」)の値は、存在しない場合、0に等しいと判定され得る。
[0164] 図26は、本開示のいくつかの実施形態と合致する、SPSにおいてシグナリングされたSPSシンタックス構造2600の一部の別の例示的なコード化シンタックステーブルを太字で強調して示す。シンタックス構造2600は、また、図11のシンタックス構造1100に基づいて修正される。図26に示されるように、図11に示された以前のシンタックスからの変更は、強調されたパターンで示されている。
[0165] 図26に示されるように、いくつかの実施形態では、SPSフラグ1112(「sps_num_subpics_minus1」)は、フラグ1110が1に等しく及びSPSフラグ2410が0に等しいときにシグナリングされる。別の言い方をすると、SPSフラグ1112(「sps_num_subpics_minus1」)のシグナリングは、SPSフラグ2410(「sps_no_pic_partitoin_flag」)が1に等しいときにスキップされる。上述の通り、SPSフラグ2410の値が1であるとき、SPSフラグ1112(「sps_num_subpics_minus1」)の値は、0であると判定され、それを示している。言い換えると、SPSがピクチャの区画を許可しないとき、サブピクチャの数は1つだけであり得る。
[0166] 図26のシンタックスにおいて、1に等しいSPSフラグ2410(「sps_no_pic_partitoin_flag」)は、SPSを参照する各ピクチャにピクチャ区画が適用されないことを指定する。0に等しいSPSフラグ2410は、SPSを参照する各ピクチャが1つより多くのタイル又はスライスに区画され得ることを指定する。図26のシンタックスにおいて、SPSフラグ1112(「sps_num_subpics_minus1」)+1は、CLVSにおける各ピクチャ内のサブピクチャの数を指定する。SPSフラグ1112(「sps_num_subpics_minus1」)の値は、0以上、(Ceil(sps_pic_width_max_in_luma_samples÷CtbSizeY)×Ceil(sps_pic_height_max_in_luma_samples÷CtbSizeY)-1)以下の範囲にある。SPSフラグ1112(「sps_num_subpics_minus1」)の値は、存在しない場合、0に等しいと判定され得る。
[0167] いくつかの実施形態では、PPSフラグ1210(「pps_no_pic_partition_flag」)の値が、CLVS内のコード化ピクチャによって参照される全てのPPSについて同一であり得るという制約が除去されてもよい。言い換えると、同一CLVS内のピクチャについて、異なるPPSは、異なる値を有するPPSフラグ1210(「pps_no_pic_partition_flag」)を独立してシグナリングし得る。結果として、1つのCLVSの中で、1に等しいPPSフラグ1210(「pps_no_pic_partition_flag」)を有し、複数のスライス又はタイルに区画されないいくつかのピクチャ、及び0に等しいPPSフラグ1210(「pps_no_pic_partition_flag」)を有し、1つより多くのタイル又はスライスに区画されているいくつかの他のピクチャを有することが可能となる。したがって、PPSフラグ1210(「pps_no_pic_partition_flag」)の値がCLVS内のコード化ピクチャによって参照される全てのPPSについて同一であるものとするという制約は、除去され得る。
[0168] 図27A~図27Cは、本開示のいくつかの実施形態と合致する、例示的な映像符号化又は復号方法2700A、2700B、及び2700Cのフローチャートをそれぞれ示す。映像符号化又は復号方法2700A、2700B、及び2700Cのいずれかを適用することによって、1つ又は複数のSPSシンタックス要素又はフラグが、他のSPSシンタックス要素又はフラグの値に基づいて条件付きでシグナリングされてもよく、それによって、出力ビット数が減少し、より高いコード化性能が達成される。SPSにおいてシグナリングされないとき、SPSシンタックス要素又はフラグの値は、それに応じて判定され、又は割り当てられ得る。いくつかの実施形態では、方法2700A~2700Cは、図5に示されるビットストリーム500を生成又は復号するために、符号化器(例えば、図2Aのプロセス200A若しくは図2Bのプロセス200Bを実行する符号化器)又は復号器(例えば、図3Aの復号プロセス300A若しくは図3Bの復号プロセス300Bを実行する復号器)によって実行され得る。例えば、符号化器又は復号器は、映像シーケンスについてのビットストリーム(例えば、図2A若しくは図2Bの映像ビットストリーム228)を生成するために映像シーケンス(例えば、図2A若しくは図2Bの映像シーケンス202)を符号化若しくはトランスコードするための、又はビットストリームの映像ストリーム(例えば、図3A若しくは図3Bの映像ストリーム304)を再構築するためにビットストリーム(例えば、図3A若しくは図3Bの映像ビットストリーム228)を復号するための、装置(例えば、図4の装置400)の1つ又は複数のソフトウェア又はハードウェアコンポーネントとして実施され得る。例えば、1つ又は複数のプロセッサ(例えば、図4のプロセッサ402)は、方法2700A~2700Cを実行し得る。
[0169] 図24に示されるシンタックス構造2400は、方法2700Aに適用され得る。ステップ2710で、装置は、ビットストリームのシーケンスパラメータセット(SPS)において、SPSフラグ2410(「sps_no_pic_partition_flag」)を符号化又は復号するように構成される。SPSフラグ2410は、SPSを参照するコード化層映像シーケンス(CLVS)内の1つ又は複数のピクチャが、タイル又はスライスに区画可能であるかどうかを示す。
[0170] ステップ2720で、装置は、SPSにおいて、SPSフラグ1110(「sps_subpic_info_present_flag」)を符号化又は復号するように構成される。SPSフラグ1110は、サブピクチャ情報がSPSを参照するCLVSについて存在するかどうかを示す。
[0171] ステップ2730で、装置は、SPSフラグ1110が1に等しいかどうかを判定するように構成される。SPSフラグ1110が0であること(ステップ2730-いいえ)に応じて、装置は、ステップ2740を迂回し、SPSシンタックス要素1112(「sps_num_subpics_minus1」)をシグナリングすることなく符号化又は復号プロセスを継続する。
[0172] SPSフラグ1110が1であること(ステップ2730-はい)に応じて、装置は、ステップ2740を実行し、SPSにおいて、SPSシンタックス要素1112(「sps_num_subpics_minus1」)を符号化又は復号するように構成される。SPSシンタックス要素1112(「sps_num_subpics_minus1」)は、SPSを参照するCLVSにおける各ピクチャ内のサブピクチャの数に関連するシーケンスパラメータである。特に、(SPSシンタックス要素1112+1)は、CLVSにおける各ピクチャ内のサブピクチャの数を指定する。この例としてのフローチャートは、1に等しいときにSPSフラグ1110を参照して、ステップ2740が実行される結果となるが、0及び1のインディケーションが設計選択であること、並びにSPSフラグ1110及び他のシンタックス要素に対して結果が逆になり得る(例えば、SPSフラグ1110が0に等しいことからステップ2740が実行される結果となる)ことを理解されたい。
[0173] ステップ2750で、装置は、SPSに続くピクチャパラメータセット(PPS)において、PPSを参照するピクチャが区画可能であるかどうかを示すためのSPSフラグ1110に等しいPPSフラグ1210(「pps_no_pic_partition_flag」)を符号化又は復号するように構成される。
[0174] 図25に示されるシンタックス構造2500は、方法2700Bに適用され得る。方法2700Aと比較すると、方法2700Bでは、ステップ2170の後、装置がステップ2715を実行し、SPSフラグ2410が0に等しい(SPSに関連付けられたピクチャが区画可能であることを示す)かどうかを判定するように構成される。SPSフラグ2410が1であり(ステップ2715-いいえ)、SPSに関連付けられたピクチャが区画されないことを示すことに応じて、装置は、ステップ2720を迂回し、SPSフラグ1110を符号化又は復号することをスキップする。いくつかの実施形態では、SPSフラグ1110の値は、SPSフラグ1110のシグナリングがスキップされるときに、0であると判定され得る。
[0175] 図26に示されるシンタックス構造2600は、方法2700Cに適用され得る。方法2700A及び2700Bと比較して、方法2700Cでは、SPSフラグ1110が1に等しいこと(ステップ2730-はい)に応じて、装置は、ステップ2715を実行し、SPSフラグ2410が0に等しいかどうかを判定するように構成される。SPSフラグ2410が1であり(ステップ2715-いいえ)、SPSに関連付けられたピクチャが区画されないことを示すことに応じて、装置は、ステップ2740を迂回し、SPSを参照するCLVSにおける各ピクチャ内のサブピクチャの数に関連するSPSシンタックス要素1112を符号化又は復号することをスキップする。いくつかの実施形態では、SPSシンタックス要素1112のシグナリングがスキップされるときに、SPSシンタックス要素1112の値は、0であると判定され得る。
[0176] 方法2700B又は2700Cによって、SPSフラグ1110(「sps_subpic_info_present_flag」)又はSPSシンタックス要素1112(「sps_num_subpics_minus1」)は、SPSフラグ2410(「sps_no_pic_partitoin_flag」)の値に基づいて条件付きでシグナリングされてもよい。
[0177] 本開示の実施形態は、フラグ1240(「pps_rect_slice_flag」)をシグナリングする更新された方法を提供する。図28は、本開示のいくつかの実施形態にかかる、長方形スライスモード又はラスタスキャンスライスモードを示す更新されたフラグを含む、PPSシンタックス構造2800の一部の例示的な修正されたコード化シンタックステーブルを示す。図28に示されるように、図12に示された以前のシンタックスからの変更は、強調されたパターンで示されている。
[0178] VVC(例えば、VVCドラフト9)では、フラグ1240(「pps_rect_slice_flag」)は、長方形スライスモードが使用されるか、又はラスタスキャンスライスモードが使用されるかを示すフラグである。図12に示されるように、フラグ1240(「pps_rect_slice_flag」)は、タイルの数が1より大きいときにシグナリングされ得る。ピクチャがタイルを1つだけ含むとき、タイルを1つだけ含むラスタスキャンスライスもまた、長方形スライスモードで示され得る。したがって、タイルの数が1に等しいとき、ラスタスキャンスライスモードを使用する必要はなく、又はフラグ1240(「pps_rect_slice_flag」)をシグナリングする必要はない。したがって、フラグ1240(「pps_rect_slice_flag」)のシグナリングはスキップされ、フラグ1240の値は1であると判定されて、長方形スライスモードが適用されることを示す。
[0179] 場合によっては、タイルの数が所定の値未満であるとき、フラグ1240のシグナリングは、必須ではなく冗長である。ピクチャ内のタイル数が4未満であるとき、ピクチャ内に多くても1つのタイル列又は1つのタイル行が存在し、よって、ラスタスキャンスライスもまた、長方形スライスで示され得る。それゆえ、いくつかの実施形態では、ラスタスキャンスライスのスライス区画は、タイル数が4未満である限り、長方形スライスモードで示される。別の言い方をすると、タイル数が2又は3であるとき、区画は、長方形スライスモードで示され得る。この修正を採用することによって、映像ストリームのための符号化及び復号プロセスの一貫性及び効率性が、改善され得る。
[0180] したがって、図28に示されるように、タイル数が4未満であるとき、フラグ1240(「pps_rect_slice_flag」)のシグナリングはスキップされ、フラグ1240の値は1であると判定される。タイル数が3より大きいとき、フラグ1240(「pps_rect_slice_flag」)はシグナリングされる。図28に示されるシンタックスにおいて、0に等しいフラグ1240(「pps_rect_slice_flag」)は、PPSを参照する各ピクチャに対してラスタスキャンスライスモードが使用中であり(即ち、各スライス内のタイルは、ラスタスキャン順である)、スライス情報はPPSにおいてシグナリングされないことを指定する。1に等しいフラグ1240(「pps_rect_slice_flag」)は、PPSを参照する各ピクチャに対して長方形スライスモードが使用中であり(即ち、各スライス内のタイルはピクチャの長方形領域をカバーする)、スライス情報はPPSにおいてシグナリングされることを指定する。フラグ1240(「pps_rect_slice_flag」)は、存在しないとき、1に等しいと判定される。SPSフラグ1110(「sps_subpic_info_present_flag」)が1に等しいとき、又はPPSフラグ「pps_mixed_nalu_types_in_pic_flag」が1に等しいとき、フラグ1240(「pps_rect_slice_flag」)の値は1に等しい。
[0181] 図29は、本開示のいくつかの実施形態と合致する、例示的な映像符号化又は復号方法2900のフローチャートを示す。方法2700A~2700Cと同様に、方法2900は、符号化器又は復号器によって実行されてもよく、符号化器又は復号器は、映像シーケンスを符号化若しくはトランスコードするため、又はビットストリームを復号して映像ストリームを再構築するための装置(例えば、図4の装置400)の1つ又は複数のソフトウェア又はハードウェアコンポーネントとして実施され得る。例えば、1つ又は複数のプロセッサ(例えば、図4のプロセッサ402)が、方法2900を実行し得る。
[0182] 図28に示されるシンタックス構造2800は、方法2900に適用され得る。ステップ2910で、装置は、SPSに続くPPSにおいて、PPSを参照するピクチャが区画されるかどうかを示すためのPPSフラグ1210(「pps_no_pic_partition_flag」)を符号化又は復号するように構成される。上述の通り、いくつかの実施形態では、同一CLVS内のピクチャについて、異なるPPSは、異なる値を有するPPSフラグ1210を独立してシグナリングし得る。例えば、ステップ2910で、装置は、第1のPPSにおいて第1のPPSを参照する第1のピクチャがタイル又はスライスに区画されるかどうかを示す第1のフラグを符号化又は復号し、第2のPPSにおいて第2のPPSを参照する第2のピクチャが区画されるかどうかを示す第2のフラグを符号化又は復号してもよく、その場合、第1のフラグと第2のフラグとが異なる値を有する。例えば、第1の値を有する第1のフラグが、CLVSの第1のピクチャが区画されないことを示す一方、第1の値とは異なる第2の値を有する第2のフラグは、第2のピクチャが区画可能であることを示してもよい。即ち、CLVSの第2のピクチャは区画されることが可能であるが、第2のピクチャは、また、区画されない場合がある。
[0183] ステップ2920で、装置は、ピクチャのタイル数(例えば、変数NumTilesInPic)が閾値(例えば3)より大きいかどうかを判定するように構成される。いくつかの実施形態では、閾値は、1より大きな整数である。
[0184] ピクチャのタイル数が閾値より大きい(ステップ2920-はい)ことに応じて、装置は、ステップ2930を実行して、ピクチャに適用されているスライスモードを示すフラグ1240(「pps_rect_slice_flag」)を符号化又は復号する。例えば、ラスタスキャンスライスモードがPPSを参照するピクチャに適用されるとき、第1の値(例えば0)を有するフラグ1240(「pps_rect_slice_flag」)が符号化又は復号され、長方形スライスモードがPPSを参照するピクチャに適用されるとき、第1の値とは異なる第2の値(例えば1)を有するフラグ1240(「pps_rect_slice_flag」)が符号化又は復号される。
[0185] ピクチャのタイル数が閾値より大きくない(ステップ2920-いいえ)ことに応じて、ステップ2930はスキップされる。いくつかの実施形態では、フラグ1240(「pps_rect_slice_flag」)のシグナリングがスキップされるとき、フラグ1240の値は第2の値(例えば1)であると判定されて、長方形スライスモードが適用されることを示す。
[0186] ステップ2940で、装置は、長方形スライスモードが適用されるかどうかをフラグ1240の値に従って判定するように構成される。長方形スライスモードがPPSを参照するピクチャに適用されるとき(ステップ2940-はい)、装置は、ステップ2950を実行して、PPS内のスライス情報を符号化又は復号する。ラスタスキャンスライスモードがPPSを参照するピクチャに適用されるとき(ステップ2940-いいえ)、ステップ2950がスキップされる。
[0187] 方法2900によって、同一CLVS内のピクチャに関連付けられた異なるPPSが、異なる値を有するPPSフラグ1210をシグナリングし得るように、制約が除去される。加えて、フラグ1240のシグナリングは、簡略化することができ、タイルの数に従って条件付きで実行されてもよい。さらに、スライス情報も、区画に使用されるスライスモードに従って、PPSにおいて条件付きでシグナリングされ得る。
[0188] VVC(例えば、VVCドラフト9)では、長方形スライスモードの定義に従って、VVCにおいて長方形スライスがサポートされる2つの場合がある。第1の場合、長方形スライスは、ピクチャの長方形領域を集合的に形成する、いくつかの完全なタイルを含む。第2の場合、長方形スライスは、ピクチャの長方形領域を集合的に形成する、1つのタイルのいくつかの連続した完全なCTU行を含む。しかし、pps_slice_flagのセマンティクスは、pps_slice_flagが1に等しいときにのみ第1の場合を指定する。その結果、VVCにおける以前のセマンティクスは、不正確である場合がある。
[0189] 本開示の実施形態は、フラグ1240(「pps_rect_slice_flag」)のための更新されたセマンティクスを提供する。いくつかの実施形態では、長方形スライスが1つ又は複数の完全なタイルを含む(例えば、図9の完全なタイル910及び920を含む第1のスライス)場合、並びにタイルが1つ又は複数のスライスを含む(例えば、図9の第2のスライス及び第3のスライスに対応する部分932及び934を含むタイル930)場合の両方が、1に等しいフラグ1240(「pps_rect_slice_flag」)のセマンティクスにおいて指定される。別の言い方をすると、フラグ1240についてのセマンティクスは、1に等しいフラグ1240(「pps_rect_slice_flag」)が、各スライス内のタイルがピクチャの長方形領域をカバーすること、「即ち、タイル内の各スライスがピクチャの長方形領域をカバーすること」、及びスライス情報がPPSにおいてシグナリングされることを指定することを反映するように修正される。
[0190] 代替として、フラグ1240についてのセマンティクスは、1に等しいフラグ1240(「pps_rect_slice_flag」)が、各スライス内のタイルがピクチャの長方形領域をカバーすること、「即ち、タイル内の各スライスがタイルの1つ又は複数の連続した完全なCTU行をカバーすること」、及びスライス情報がPPSにおいてシグナリングされることを指定することを反映するように修正され得る。
[0191] いくつかの他の実施形態では、フラグ1240(「pps_rect_slice_flag」)のセマンティクスは、ラスタスキャンスライスモード及び長方形スライスモードを直接指してもよい。例えば、フラグ1240についてのセマンティクスはまた、0に等しいフラグ1240(「pps_rect_slice_flag」)が、「PPSを参照する各ピクチャに対してラスタスキャンスライスモードが使用されている」こと、及びスライス情報がPPSにおいてシグナリングされないことを指定し、1に等しいフラグ1240(「pps_rect_slice_flag」)が、「PPSを参照する各ピクチャに対して長方形スライスモードが使用されている」こと、及びスライス情報がPPSにおいてシグナリングされることを指定することを反映するように修正されてもよい。
[0192] VVC(例えば、VVCドラフト9)において、フラグ1250(「pps_single_slice_per_subpic_flag」)は、各サブピクチャが1つ又は複数の長方形スライスを含むかどうかを指定する。その結果、フラグ1250は、長方形スライスモードが適用されるときに関係する。フラグ1250が存在しないとき、フラグ1250の値は1に等しいと判定され得る。しかしながら、図12に示されるように、フラグ1250(「pps_single_slice_per_subpic_flag」)のシグナリングは、2つの異なるシナリオ下でスキップされてもよい。第1のシナリオでは、PPSフラグ1210(「pps_no_pic_partition_flag」)が1に等しく、スライス区画に関連するフラグ及びシンタックス要素がスキップされる。第2のシナリオでは、フラグ1240(「pps_rect_slice_flag」)が0に等しく、ラスタスキャンスライスモードが適用されることを示し、フラグ1250(「pps_single_slice_per_subpic_flag」)は関係しない。したがって、フラグ1250(「pps_single_slice_per_subpic_flag」)の値を第2のシナリオ下で判定することは、賢明ではない。
[0193] したがって、いくつかの実施形態では、存在しないとき、フラグ1250の値は、長方形スライスモードが適用されるときに判定され、ラスタスキャンスライスモードが適用されるときには判定されない。したがって、フラグ1250は、PPSに存在しないときに長方形スライスモード下で適切に判定可能であり、無関係のラスタスキャンスライスモード下では判定されない。それによって、コード化性能及び一貫性が改善され得る。例えば、フラグ1250についてのセマンティクスは、1に等しいフラグ1250(「pps_single_slice_per_subpic_flag」)が、各サブピクチャが長方形スライスを1つだけ含むことを指定することを反映するように修正され得る。0に等しいフラグ1250(「pps_single_slice_per_subpic_flag」)は、各サブピクチャが1つ又は複数の長方形スライスを含み得ることを指定する。PPSフラグ1210(「pps_no_pic_partition_flag」)が1に等しいとき、フラグ1250の値は、1に等しいと判定される。
[0194] VVC(例えば、VVCドラフト9)では、シンタックス要素1262(「pps_slice_width_in_tiles_minus1[i]」)及びシンタックス要素1264(「pps_slice_height_in_tiles_minus1[i]」)が存在しないときに、シンタックス要素1262、1264は0に等しいと判定される。しかしながら、いくつかのセマンティクスでは、インデックスiの範囲は明確に指定されない。さらに、いくつかの実施形態では、シンタックス要素1262及び1264は、i番目のスライスの幅及び高さを示し、それゆえインデックスiの範囲は、0からシンタックス要素1252(例えば、スライス数-1)である。しかしながら、シンタックス要素1252(「pps_num_slices_in_pic_minus1」)に等しいインデックスiについて、シンタックス要素1262(「pps_slice_width_in_tiles_minus1[i]」)及びシンタックス要素1264(「pps_slice_height_in_tiles_minus1[i]」)の値は、0に等しいと判定されない。したがって、シンタックス要素1262及び1264が0に等しいと判定されるインデックスiの範囲を明確に指定することが望ましい。
[0195] 本開示の実施形態は、シンタックス要素1262及び1264についての更新されたセマンティクスを提供する。いくつかの実施形態では、シンタックス要素1262及び1264についてのセマンティクスは、シンタックス要素1262+1がタイル列のユニットでi番目の長方形スライスの幅を指定することを反映するように修正されてもよく、シンタックス要素1262の値は、0以上、(NumTileColumns-1)以下の範囲にあるものとする。シンタックス要素1262の値は、0から(シンタックス要素1252-1)までの範囲内のインデックスiに対して存在しないとき、0に等しいと判定される。
[0196] 同様に、シンタックス要素1264+1は、シンタックス要素1266が0に等しいときにタイル行のユニットでi番目の長方形スライスの高さを指定する。シンタックス要素1264の値は、0以上、(NumTileRows-1)以下の範囲にある。0から(シンタックス要素1252-1)までの範囲内のインデックスiに対して存在しないとき、シンタックス要素1264の値は、SliceTopLeftTileIdx[i]/NumTileColumnsが(NumTileRows-1)に等しいときに、0に等しいと判定される。そうでない場合、インデックスiについてのシンタックス要素1264の値は、インデックス(i-1)についてのシンタックス要素1264(「pps_slice_height_in_tiles_minus1[i-1]」)の値に等しいと判定される。
[0197] 図12に示されるように、いくつかの実施形態では、シンタックス要素1266(「pps_num_exp_slices_in_tile[i]」)は、i番目のスライスを含むタイル内のスライスについて明示的に与えられたスライス高さの数を指定する。シンタックス要素1266(「pps_num_exp_slices_in_tile[i]」)が0に等しい場合、i番目のスライスを含むタイルは、複数のスライスに分割されない。シンタックス要素1266(「pps_num_exp_slices_in_tile[i]」)が0に等しくない(例えば、シンタックス要素1266(「pps_num_exp_slices_in_tile[i]」)が0より大きい)場合、i番目のスライスを含むタイルは、複数のスライスに分割されてもされなくてもよい。さらに、シンタックス要素1266(「pps_num_exp_slices_in_tile[i]」)が0より大きいとき、(シンタックス要素1268(「pps_exp_slice_height_in_ctus_minus1[i][j]」)+1)は、0以上、(シンタックス要素1266(「pps_num_exp_slices_in_tile[i]」)-1)以下の範囲のインデックスjについて、CTU行のユニットでi番目のスライスを含むタイル内のj番目の長方形スライスの高さを指定する。シンタックス要素1268の値(「pps_exp_slice_height_in_ctus_minus1[i][j]」)は、0以上、(RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]-1)以下の範囲にある。
[0198] タイルがスライスを1つだけ含むシナリオでは、2つの異なるシグナリング方法が適用され得る。第1の方法では、シンタックス要素1266(「pps_num_exp_slices_in_tile[i]」)は0に等しく、シンタックス要素1268(「pps_exp_slice_height_in_ctus_minus1[i][j]」)のシグナリングはスキップされる。第2の方法では、シンタックス1266(「pps_num_exp_slices_in_tile[i]」)は1に等しく、pps_exp_slice_height_in_ctus_minus1[i][0]は、(RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]-1)(例えば、タイルの高さ-1)に等しい。両方のシグナリング方法は、タイルがスライスを1つだけ含むことを示している。
[0199] いくつかの実施形態では、上述したシグナリング方法における冗長性は、シンタックス要素及びそれらのセマンティクスを修正することによって除去される。本開示の実施形態は、PPSシンタックスについての更新されたセマンティクスを提供する。図30は、本開示のいくつかの実施形態と合致する、PPSシンタックス構造3000の一部の例示的な修正されたコード化シンタックステーブルを示す。図30に示されるように、図12に示された以前のシンタックスからの変更は、強調されたパターンで示され、提案される削除されたシンタックスが、さらに取り消し線で示されている。
[0200] 図12に示されたSPSシンタックスと比較して、いくつかの実施形態では、図30に示されるように、シンタックス要素1266(「pps_num_exp_slices_in_tile[i]」)は、シンタックス要素3066(「pps_num_exp_slices_in_tile_minus1[i]」)(例えば、pps_num_exp_slices_in_tile[i]-1)と置換される。したがって、第1のシグナリング方法は除去される。タイルが1つのスライスを含むとき、符号化器は、シンタックス要素3066(「pps_num_exp_slices_in_tile_minus1[i]」)を0に等しいようにシグナリングし、次いで、シンタックス要素1268(例えば「pps_exp_slice_height_in_ctus_minus1[i][0]」)を(タイルの高さ-1)に等しいようにシグナリングする。
[0201] 図30のシンタックスでは、(シンタックス要素3066+1)は、i番目のスライスを含むタイル(即ち、SliceTopLeftTileIdx[i]に等しいタイルインデックスを有するタイル)内のスライスについて明示的に与えられたスライス高さの数を指定する。シンタックス要素3066の値は、0以上、(対応するタイルの高さ(RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns])-2)以下の範囲にあるものとする。シンタックス要素3066の値は、存在しないとき、0に等しいと判定される。
[0202] 図30のシンタックスにおいて、(シンタックス要素1268+1)は、0以上、シンタックス要素3066(「pps_num_exp_slices_in_tile_minus1[i]」)以下の範囲のインデックスjについて、CTU行のユニットでi番目のスライスを含むタイル内のj番目の長方形スライスの高さを指定する。シンタックス要素「pps_exp_slice_height_in_ctus_minus1[i][pps_num_exp_slices_in_tile_minus1[i]]」は、また、本明細書に指定されるように、シンタックス要素3066より大きなインデックスを有するi番目のスライスを含むタイル内の長方形スライスの高さを導出するために用いられる。
[0203] 図31A及び図31Bは、本開示のいくつかの実施形態と合致する、図29の方法2900のステップ2950におけるPPS内のスライス情報を符号化又は復号する例示的な詳細動作をそれぞれ示す。図12のシンタックスが適用されるとき、図31Aに示されるように、ステップ2950は、ステップ2952及びステップ2954を含む。ステップ2952で、装置は、i番目のスライスを含むタイル内のスライスについて明示的に与えられたスライス高さの数を指定する、シンタックス要素1266(「pps_num_exp_slices_in_tile[i]」)を符号化又は復号する。ステップ2954で、装置は、シンタックス要素1268(「pps_exp_slice_height_in_ctus_minus1[i][j]」)を符号化又は復号する。シンタックス要素1268+1は、i番目のスライスを含むタイル内のj番目の長方形スライスの高さを指定する。
[0204] 図30の修正されたシンタックスが適用されるとき、図31Bに示されるように、ステップ2950は、ステップ2956及びステップ2954を含む。ステップ2956で、装置は、シンタックス要素3066(「pps_num_exp_slices_in_tile_minus1[i]」)を符号化又は復号する。(シンタックス要素3066+1)は、i番目のスライスを含むタイル内のスライスについて明示的に与えられたスライス高さの数を指定する。
[0205] 図32は、本開示のいくつかの実施形態と合致する、例示的な映像符号化又は復号方法3200のフローチャートを示す。映像符号化又は復号方法3200を適用することによって、1つ又は複数のPPSシンタックス要素又はフラグが、他のシンタックス要素又はフラグの値に基づいて条件付きでシグナリングされてもよく、それによって、出力ビット数が減少し、より高いコード化性能が達成される。PPSにおいてシグナリングされないとき、PPSシンタックス要素又はフラグの値は、その状況に応じて判定され、又は割り当てられ得る。方法2700A~2700C及び2900と同様に、方法3200は、符号化器又は復号器によって実行されてもよく、符号化器又は復号器は、映像シーケンスを符号化若しくはトランスコードするため、又はビットストリームを復号して映像ストリームを再構築するための装置(例えば、図4の装置400)の1つ又は複数のソフトウェア又はハードウェアコンポーネントとして実施され得る。例えば、1つ又は複数のプロセッサ(例えば、図4のプロセッサ402)が、方法3200を実行し得る。
[0206] ステップ3205で、装置は、PPSにおいて、PPSを参照するピクチャが区画されるかどうかを示すためのPPSフラグ1210(「pps_no_pic_partition_flag」)を符号化又は復号するように構成される。上述の通り、いくつかの実施形態では、同一CLVS内のピクチャについて、異なるPPSは、異なる値を有するPPSフラグ1210を独立してシグナリングし得る。例えば、装置は、第1のPPSにおいて第1のPPSを参照する第1のピクチャがタイル又はスライスに区画されるかどうかを示す第1のフラグを符号化又は復号し、第2のPPSにおいて第2のPPSを参照する第2のピクチャが区画されるかどうかを示す第2のフラグを符号化又は復号してもよく、第1のフラグと第2のフラグとが異なる値を有する。
[0207] ステップ3210で、装置は、PPSを参照するピクチャがPPSフラグ1210の値に基づいて区画されていないかどうかを判定する。PPSフラグ1210が1に等しいとき(ステップ3210-はい)、PPSを参照するピクチャは区画されておらず、装置は、ステップ3220及び3230を実行して、フラグ1250を符号化又は復号することをスキップし、各サブピクチャが単一の長方形スライスを含むことを示すフラグ1250の値を判定する。例えば、ステップ3230において、フラグ1250は、1と判定され得る。PPSフラグ1210が0に等しいとき(ステップ3210-いいえ)、装置は、ステップ3225を実行して、フラグ1250を符号化又は復号する。
[0208] ステップ3230又はステップ3225でフラグ1250の値が判定されるか、又は符号化/復号された後、ステップ3240で、0から(ピクチャ内の長方形スライスの数-2)に等しい上限値までの範囲のインデックスiについて、シンタックス要素1262(「pps_slice_width_in_tiles_minus1[i]」)がPPSに見つからないとき、装置はシンタックス要素1262が0であると判定する。シンタックス要素1262は、インデックスiについてのi番目の長方形スライスの幅に関連するピクチャパラメータである。いくつかの実施形態では、シンタックス要素1262の値は、0以上、(対応するタイルの列の数(NumTileColumns)-1)以下の範囲にある。
[0209] ステップ3250で、0から(ピクチャ内の長方形スライスの数-2)に等しい上限値までの範囲のインデックスiについて、シンタックス要素1264(「pps_slice_height_in_tiles_minus1[i]」)がPPSに見つからないとき、装置はシンタックス要素1264の値を判定する。シンタックス要素1264は、インデックスiについてのi番目の長方形スライスの高さに関連するピクチャパラメータである。いくつかの実施形態では、シンタックス要素1264の値は、0以上、(対応するタイルの列の数(例えばNumTileRows)-1)以下の範囲にある。上記実施形態において述べた通り、i番目の長方形スライスのシンタックス要素1264は、存在しないとき、0であるか又は(i-1)番目の長方形スライスのシンタックス要素1264の値に等しいと判定され得る。
[0210] いくつかの他の実施形態では、シンタックス要素1268についてのセマンティクスは、また、シンタックス要素1268の値が0以上、(RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]-2)以下の範囲にあることを反映するように修正され得る。別の言い方をすると、シンタックス要素1268は、(対応するタイルの高さ-2)の上限値を有する、符号化又は復号されるピクチャパラメータである。
[0211] シンタックス要素1268の最大値が(タイルの高さ-2)に減少されると、第2のシグナリング方法が除去される。したがって、対応するタイルが単一のスライスを含むとき、シンタックス要素1266は、0に等しいように符号化又は復号される。対応するタイルが2つ以上のスライスを含むとき、シンタックス要素1266は、1以上であるように符号化又は復号される。
[0212] 上述の通り、いくつかの実施形態では、1つのタイルの中の長方形スライスに対して、シンタックス要素1266は、i番目のスライスを含むタイル内のスライスについて明示的に与えられたスライス高さの数を指定する。シンタックス要素1266が0より大きいとき、(シンタックス要素1268+1)は、0以上、(シンタックス要素1266-1)以下の範囲のインデックスjについて、CTU行のユニットでi番目のスライスを含むタイル内のj番目の長方形スライスの高さを指定する。シンタックス要素1268の値は、0以上、(RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]-1)以下の範囲にある。
[0213] タイル内の個々のスライスごとに、それぞれの明示的にシグナリングされたスライス高さが、0からタイル高さの範囲内にあることに留意されたい。加えて、1つのタイル内の全てのスライスの高さの合計が、タイルの高さに等しいはずであると考えると、明示的にシグナリングされたスライスの高さの合計は、タイルの高さ以下である。スライスの最小高さが1に等しいとき、(それぞれの明示的にシグナリングされたスライス高さ-1)は、(タイル高さ-タイル内のスライスの合計数)以下であるはずである。
[0214] 本開示の実施形態は、シンタックス要素1268についての更新されたセマンティクスを提供する。それに応じて、それぞれの明示的にシグナリングされたスライス高さの範囲は、より正確な値に減少され得る。特に、シンタックス要素1268(「pps_exp_slice_height_in_ctus_minus1[i][j]」)の最大値は、(RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]-現在のタイル内のスライスに明示的に与えられたスライス高さの数)に変更され得る。
[0215] 図12に示される実施形態と組み合わせると、シンタックス要素1268についてのセマンティクスは、シンタックス要素1268の値が、0以上、(RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]-シンタックス要素1266の値)以下の範囲にあることを反映するように修正され得る。別の言い方をすると、シンタックス要素1268の上限値は、(対応するタイルの高さ-対応するタイル内のスライスについて明示的に与えられたスライス高さの数)である。
[0216] シンタックス要素1266をシンタックス要素3066と置換する、図30に示される実施形態と組み合わせると、シンタックス要素1268についてのセマンティクスは、シンタックス要素1268の値が、0以上、(RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]-シンタックス要素3066の値-1)以下の範囲にあることを反映するように修正され得る。
[0217] シンタックス要素1268の最大値を(タイルの高さ-2)に減少させる実施形態と組み合わせると、シンタックス要素1266(「pps_num_exp_slices_in_tile[i]」)と2とのうちの大きい方を選択する関数max(pps_num_exp_slices_in_tile[i],2)が用いられてもよく、シンタックス要素1268についてのセマンティクスは、シンタックス要素1268の値が0以上、(RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns]-max(pps_num_exp_slices_in_tile[i],2))以下の範囲にあることを反映するようにさらに修正されてもよい。別の言い方をすると、シンタックス要素1268の上限値は、(対応するタイルの高さ(例えば、RowHeight[SliceTopLeftTileIdx[i]/NumTileColumns])-2)と、(対応するタイルの高さ-対応するタイルにおいて明示的に与えられたスライス高さの数(pps_num_exp_slices_in_tile[i]))とのうちの小さい方である。
[0218] 図33は、本開示のいくつかの実施形態にかかる、変数NumCtusInSlice、SliceTopLeftTileIdx、CtbAddrInSlice、及びNumSlicesInTileの更新された導出を含む例示的な疑似コードを示す。図33に示されるように、以前のVVCからの変更は、強調されたパターンで示され、提案される削除されたシンタックスが、さらに取り消し線で示されている。
[0219] 図34は、本開示のいくつかの実施形態にかかる、変数NumCtusInSlice及びCtbAddrInSliceの更新された導出を含む例示的な疑似コードを示す。図34に示されるように、以前のVVCからの変更は、斜体で示され、提案される削除されたシンタックスが、さらに取り消し線で示されている。図34に示される疑似コードでは、以前のVVC疑似コードにおけるNumCtusInSlice[i]及びCtbAddrInSlice[i][j]の導出における誤りと1つの冗長な行が、訂正されている。
[0220] 上記を考慮すると、本開示の様々な実施形態において提案されるように、タイル/スライス区画に関連するSPS及びPPSシンタックス要素を修正することによって、符号化/復号方法は、一貫性があり、効率的であり得る。加えて、シンタックス要素がシグナリングされないときにシンタックス要素の値を適切に判定することによって、タイル/スライス区画に関連するいくつかのシンタックス要素のシグナリングは、場合によってはスキップされてもよく、それによって、出力ビット数が減少し、したがってコード化効率が改善される。
[0221] 本開示の様々な実施形態が、現在のVVC規格に関して説明されるが、様々な実施形態が他の映像コード化技術に対して適用可能であると理解されたい。
[0222] 実施形態は、以下の条項を用いてさらに記述することができる。
1.映像を符号化又は復号する方法であって、
コード化層映像シーケンス(CLVS)のピクチャに関連付けられた複数のピクチャパラメータセット(PPS)において、ピクチャが複数のタイル又はスライスに区画可能であるかどうかを示す、対応する第1のPPSフラグを符号化又は復号することを含み、
第1のPPSにおいて、第1の値を有する対応する第1のPPSフラグが、CLVSの第1のピクチャが区画されないことを示し、第2のPPSにおいて、第1の値とは異なる第2の値を有する別の対応する第1のPPSフラグが、CLVSの第2のピクチャが区画可能であることを示す、方法。
2.映像を符号化又は復号する方法であって、
区画されたピクチャのタイルの数が閾値より大きいかどうかを判定することであって、閾値が1より大きいことと、
区画されたピクチャのタイルの数が閾値より大きいことに応じて、区画されたピクチャに適用されているスライスモードに関連付けられた第2のPPSフラグを符号化又は復号することと、
を含む、方法。
3.第2のPPSフラグを符号化又は復号することが、
PPSを参照する区画されたピクチャにラスタスキャンスライスモードが適用されるとき、第3の値を有する第2のPPSフラグを符号化若しくは復号すること、又はPPSを参照する区画されたピクチャに長方形スライスモードが適用されるとき、第3の値とは異なる第4の値を有する第2のPPSフラグを符号化若しくは復号することを含む、条項1又は条項2に記載の方法。
4.
PPSを参照する区画されたピクチャに長方形スライスモードが適用されるとき、PPSにおいてスライス情報を指定する1つ又は複数のシンタックス要素を符号化又は復号することをさらに含む、条項3に記載の方法。
5.映像を符号化又は復号する方法であって、
ピクチャが複数のタイル又はスライスに区画されるかどうかを判定することと、
ピクチャが複数のタイル又はスライスに区画可能であるとの判定に応じて、ピクチャパラメータセット(PPS)において、PPSを参照するピクチャに適用されているスライスモードに関連付けられた第1のフラグを符号化又は復号することと、を含み、
ピクチャを区画するためにラスタスキャンスライスモードが適用されるときに、第1の値を有する第1のフラグを符号化若しくは復号し、又はピクチャを区画するために長方形スライスモードが適用されるときに、第1の値とは異なる第2の値を有する第1のフラグを符号化若しくは復号する、方法。
6.
ラスタスキャンスライスモードにおいて、ピクチャが、複数のラスタスキャンスライスに区画され、ラスタスキャンスライスのいずれかが、ピクチャのタイルラスタスキャンにおける1つ又は複数の完全なタイルのシーケンスを含み、
長方形スライスモードにおいて、ピクチャが、複数の長方形スライスに区画され、長方形スライスのうちの1つが、ピクチャの長方形領域をカバーする1つ若しくは複数のタイルを含み、又は長方形スライスのうちの1つが、タイルのコード化ツリーユニットの1つ若しくは複数の連続した行をカバーする、条項3~5のいずれかに記載の方法。
7.
(対応するタイル内のスライスについて与えられたスライス高さの数-1)を指定する第1のピクチャパラメータを符号化又は復号することをさらに含み、対応するタイルが単一のスライスを含む場合、第1のピクチャパラメータが0に等しい、条項5又は条項6に記載の方法。
8.第1のピクチャパラメータの値は、0以上、(対応するタイルの高さ-2)以下の範囲にある、条項7に記載の方法。
9.
対応するタイル内のスライスについて与えられたスライス高さの数を指定する第3のピクチャパラメータを符号化又は復号することをさらに含み、対応するタイルが単一のスライスを含む場合、第3のピクチャパラメータが0に等しい、条項5~8のいずれかに記載の方法。
10.
(対応するタイル内の対応する長方形スライスの高さ-1)を指定する第2のピクチャパラメータを符号化又は復号することをさらに含む、条項9に記載の方法。
11.第2のピクチャパラメータの上限値が、(対応するタイルの高さ-2)である、条項10に記載の方法。
12.第2のピクチャパラメータの上限値が、(対応するタイルの高さ-第4のピクチャパラメータ)であり、第4のピクチャパラメータが、対応するタイル内のスライスに対して与えられたスライス高さの数を示す、条項10に記載の方法。
13.第2のピクチャパラメータの上限値が、(対応するタイルの高さ-第5のパラメータ-1)であり、
第5のピクチャパラメータが、(対応するタイル内のスライスに対して与えられたスライス高さの数-1)を示す、条項10に記載の方法。
14.第2のピクチャパラメータの上限値が、(対応するタイルの高さ-2)と、(対応するタイルの高さ-対応するタイルにおいて与えられたスライス高さの数)とのうちの小さい方である、条項10に記載の方法。
15.映像を符号化又は復号する方法であって、
コード化層映像シーケンス(CLVS)の少なくとも1つのピクチャに関連付けられたピクチャパラメータセット(PPS)において、関連付けられたピクチャが複数のタイル又はスライスに区画可能であるかどうかを示す第1のPPSフラグを符号化又は復号することであって、第1の値に等しい第1のPPSフラグが、関連付けられたピクチャが区画されないことを示し、第1の値とは異なる第2の値に等しい第1のPPSフラグが、関連付けられたピクチャが区画可能であることを示すことと、
第1のPPSフラグが第1の値に等しいとき、PPSにおいて、関連付けられたピクチャの各サブピクチャが単一の長方形スライスを含むかどうかを示す第2のPPSフラグを符号化又は復号することをスキップすること、及び第3の値に等しい第2のPPSフラグの値を判定することであって、第3の値に等しい第2のPPSフラグが、関連付けられたピクチャの各サブピクチャが単一の長方形スライスを含むことを示すことと、
を含む、方法。
16.映像を符号化又は復号する方法であって、
インデックスiについて、コード化層映像シーケンス(CLVS)の少なくとも1つのピクチャに関連付けられたピクチャパラメータセット(PPS)において、i番目の長方形スライスの幅に関連付けられた第1のピクチャパラメータを符号化又は復号することと、
第1のピクチャパラメータがPPS内に存在しないときに、第1のピクチャパラメータが0であると判定することと、を含み、
インデックスiが、0から(ピクチャ内の長方形スライスの数-2)に等しい上限値までの範囲にある、方法。
17.
インデックスiについて、i番目の長方形スライスの高さに関連付けられた第2のピクチャパラメータを符号化又は復号することと、
第2のピクチャパラメータがインデックスiに対してPPSに存在しないときに、第2のピクチャパラメータが0であるか、又は(i-1)番目の長方形スライスの高さに関連付けられた第3のピクチャパラメータの値に等しいと判定することと、
をさらに含む、条項16に記載の方法。
18.映像を符号化又は復号する方法であって、
ビットストリームのシーケンスパラメータセット(SPS)において、SPSを参照するコード化層映像シーケンス(CLVS)内の1つ又は複数のピクチャが、複数のタイル又はスライスに区画されるかどうかを示す第1のSPSフラグを符号化又は復号することと、
SPSに関連付けられたピクチャパラメータセット(PPS)において、PPSを参照するピクチャが区画されるかどうかを示すための第1のSPSフラグに等しい第1のPPSフラグを符号化又は復号することと、
を含む、方法。
19.
第1のSPSフラグが、1つ又は複数のピクチャが区画されないことを示すことに応じて、SPS内の第2のSPSフラグを符号化又は復号することをスキップすることであって、第2のSPSフラグが、SPSを参照するCLVSについてサブピクチャ情報が存在するかどうかを示すことをさらに含む、条項18に記載の方法。
20.
第1のSPSフラグが、1つ又は複数のピクチャが区画されないことを示すことに応じて、SPSを参照するCLVSにおける各ピクチャ内のサブピクチャの数に関連付けられた第1のSPSシーケンスパラメータを符号化又は復号することをスキップすることをさらに含む、条項18又は条項19に記載の方法。
21.装置であって、
命令を記憶するように構成されるメモリと、
1つ又は複数のプロセッサとを備え、1つ又は複数のプロセッサは、装置に、
コード化層映像シーケンス(CLVS)のピクチャに関連付けられた複数のピクチャパラメータセット(PPS)において、ピクチャが複数のタイル又はスライスに区画可能であるかどうかを示す、対応する第1のPPSフラグを符号化又は復号すること
を行わせるために、命令を実行するように構成され、
第1のPPSにおいて、第1の値を有する対応する第1のPPSフラグが、CLVSの第1のピクチャが区画されないことを示し、第2のPPSにおいて、第1の値とは異なる第2の値を有する別の対応する第1のPPSフラグが、CLVSの第2のピクチャが区画可能であることを示す、装置。
22.装置であって、
命令を記憶するように構成されるメモリと、
1つ又は複数のプロセッサとを備え、1つ又は複数のプロセッサは、装置に、
区画されたピクチャのタイルの数が閾値より大きいかどうかを判定することであって、閾値が1より大きいことと、
区画されたピクチャのタイルの数が閾値より大きいことに応じて、区画されたピクチャに適用されているスライスモードに関連付けられた第2のPPSフラグを符号化又は復号することと
を行わせるために、命令を実行するように構成される、装置。
23.1つ又は複数のプロセッサが、装置に、
PPSを参照する区画されたピクチャにラスタスキャンスライスモードが適用されるとき、第3の値を有する第2のPPSフラグを符号化若しくは復号すること、又はPPSを参照する区画されたピクチャに長方形スライスモードが適用されるとき、第3の値とは異なる第4の値を有する第2のPPSフラグを符号化若しくは復号すること、
によって第2のPPSフラグを符号化又は復号することを行わせるために、命令を実行するように構成される、条項21又は条項22に記載の装置。
24.1つ又は複数のプロセッサが、装置にさらに、
PPSを参照する区画されたピクチャに長方形スライスモードが適用されるとき、PPSにおいてスライス情報を指定する1つ又は複数のシンタックス要素を符号化又は復号すること
を行わせるために、命令を実行するように構成される、条項23に記載の装置。
25.装置であって、
命令を記憶するように構成されるメモリと、
1つ又は複数のプロセッサとを備え、1つ又は複数のプロセッサは、装置に、
ピクチャが複数のタイル又はスライスに区画されるかどうかを判定することと、
ピクチャが複数のタイル又はスライスに区画可能であるとの判定に応じて、ピクチャパラメータセット(PPS)において、PPSを参照するピクチャに適用されているスライスモードに関連付けられた第1のフラグを符号化又は復号することと、
ピクチャを区画するためにラスタスキャンスライスモードが適用されるときに、第1の値を有する第1のフラグを符号化若しくは復号し、又はピクチャを区画するために長方形スライスモードが適用されるときに、第1の値とは異なる第2の値を有する第1のフラグを符号化若しくは復号することと、
を行わせるために、命令を実行するように構成される、装置。
26.ラスタスキャンスライスモードにおいて、ピクチャが、複数のラスタスキャンスライスに区画され、ラスタスキャンスライスのいずれかが、ピクチャのタイルラスタスキャンにおける1つ又は複数の完全なタイルのシーケンスを含み、
長方形スライスモードにおいて、ピクチャが、複数の長方形スライスに区画され、長方形スライスのうちの1つが、ピクチャの長方形領域をカバーする1つ若しくは複数のタイルを含み、又は長方形スライスのうちの1つが、タイルのコード化ツリーユニットの1つ又は複数の連続した行をカバーする、条項25に記載の装置。
27.1つ又は複数のプロセッサが、装置にさらに、
(対応するタイル内のスライスについて与えられたスライス高さの数-1)を指定する第1のピクチャパラメータを符号化又は復号すること
を行わせるために、命令を実行するように構成され、対応するタイルが単一のスライスを含む場合、第1のピクチャパラメータが0に等しい、条項25又は条項26に記載の装置。
28.第1のピクチャパラメータの値は、0以上、(対応するタイルの高さ-2)以下の範囲にある、条項27に記載の装置。
29.1つ又は複数のプロセッサが、装置にさらに、
対応するタイル内のスライスについて与えられたスライス高さの数を指定する第3のピクチャパラメータを符号化又は復号すること、
を行わせるために、命令を実行するように構成され、対応するタイルが単一のスライスを含む場合、第3のピクチャパラメータが0に等しい、条項25~28のいずれかに記載の装置。
30.1つ又は複数のプロセッサが、装置にさらに、
(対応するタイル内の対応する長方形スライスの高さ-1)を指定する第2のピクチャパラメータを符号化又は復号すること
を行わせるために、命令を実行するように構成される、条項29に記載の装置。
31.第2のピクチャパラメータの上限値が、(対応するタイルの高さ-2)である、条項30に記載の装置。
32.第2のピクチャパラメータの上限値が、(対応するタイルの高さ-第4のピクチャパラメータ)であり、第4のピクチャパラメータが、対応するタイル内のスライスに対して与えられたスライス高さの数を示す、条項30に記載の装置。
33.第2のピクチャパラメータの上限値が、(対応するタイルの高さ-第5のパラメータ-1)であり、
第5のピクチャパラメータが、(対応するタイル内のスライスに対して与えられたスライス高さの数-1)を示す、条項30に記載の装置。
34.第2のピクチャパラメータの上限値が、(対応するタイルの高さ-2)と、(対応するタイルの高さ-対応するタイルにおいて与えられたスライス高さの数)とのうちの小さい方である、条項30に記載の装置。
35.装置であって、
命令を記憶するように構成されるメモリと、
1つ又は複数のプロセッサとを備え、1つ又は複数のプロセッサは、装置に、
コード化層映像シーケンス(CLVS)の少なくとも1つのピクチャに関連付けられたピクチャパラメータセット(PPS)において、関連付けられたピクチャが複数のタイル又はスライスに区画可能であるかどうかを示す第1のPPSフラグを符号化又は復号することであって、第1の値に等しい第1のPPSフラグが、関連付けられたピクチャが区画されないことを示し、又は第1の値とは異なる第2の値に等しい第1のPPSフラグが、関連付けられたピクチャが区画可能であることを示すことと、
第1のPPSフラグが第1の値に等しいとき、PPSにおいて、関連付けられたピクチャの各サブピクチャが単一の長方形スライスを含むかどうかを示す第2のPPSフラグを符号化又は復号することをスキップし、第3の値に等しい第2のPPSフラグの値を判定することであって、第3の値に等しい第2のPPSフラグが、関連付けられたピクチャの各サブピクチャが単一の長方形スライスを含むことと、
を行わせるために、命令を実行するように構成される、装置。
36.装置であって、
命令を記憶するように構成されるメモリと、
1つ又は複数のプロセッサとを備え、1つ又は複数のプロセッサは、装置に、
インデックスiについて、コード化層映像シーケンス(CLVS)の少なくとも1つのピクチャに関連付けられたピクチャパラメータセット(PPS)において、i番目の長方形の幅に関連付けられた第1のピクチャパラメータを符号化又は復号することと、
第1のピクチャパラメータがPPS内に存在しないときに、第1のピクチャパラメータが0であると判定することと、
を行わせるために、命令を実行するように構成され、インデックスiが、0から(ピクチャ内の長方形スライスの数-2)に等しい上限値までの範囲にある、装置。
37.1つ又は複数のプロセッサが、装置にさらに、
インデックスiについて、i番目の長方形スライスの高さに関連付けられた第2のピクチャパラメータを符号化又は復号することと、
第2のピクチャパラメータがインデックスiに対してPPSに存在しないときに、第2のピクチャパラメータが0であるか、又は(i-1)番目の長方形スライスの高さに関連付けられた第3のピクチャパラメータの値に等しいと判定することと、
を行わせるために、命令を実行するように構成される、条項36に記載の装置。
38.装置であって、
命令を記憶するように構成されるメモリと、
1つ又は複数のプロセッサとを備え、1つ又は複数のプロセッサは、装置に、
ビットストリームのシーケンスパラメータセット(SPS)において、SPSを参照するコード化層映像シーケンス(CLVS)内の1つ又は複数のピクチャが、複数のタイル又はスライスに区画されるかどうかを示す第1のSPSフラグを符号化又は復号することと、
SPSに関連付けられたピクチャパラメータセット(PPS)において、PPSを参照するピクチャが区画されるかどうかを示すための第1のSPSフラグに等しい第1のPPSフラグを符号化又は復号することと
を行わせるために、命令を実行するように構成される、装置。
39.1つ又は複数のプロセッサが、装置にさらに、
第1のSPSフラグが、1つ又は複数のピクチャが区画されないことを示すことに応じて、SPS内の第2のSPSフラグを符号化又は復号することをスキップすること
を行わせるために、命令を実行するように構成され、第2のSPSフラグが、SPSを参照するCLVSについてサブピクチャ情報が存在するかどうかを示す、条項38に記載の装置。
40.1つ又は複数のプロセッサが、装置にさらに、
第1のSPSフラグが、1つ又は複数のピクチャが区画されないことを示すことに応じて、SPSを参照するCLVSにおける各ピクチャ内のサブピクチャの数に関連付けられた第1のSPSシーケンスパラメータを符号化又は復号することをスキップすること
を行わせるために、命令を実行するように構成される、条項38又は条項39に記載の装置。
41.命令のセットを記憶する非一時的コンピュータ可読記憶媒体であって、命令のセットは、デバイスに動作を実行させるために、デバイスの1つ又は複数のプロセッサによって実行可能であり、動作は、
コード化層映像シーケンス(CLVS)のピクチャに関連付けられた複数のピクチャパラメータセット(PPS)において、ピクチャが複数のタイル又はスライスに区画可能であるかどうかを示す、対応する第1のPPSフラグを符号化又は復号することを含み、
第1のPPSにおいて、第1の値を有する対応する第1のPPSフラグが、CLVSの第1のピクチャが区画されないことを示し、第2のPPSにおいて、第1の値とは異なる第2の値を有する別の対応する第1のPPSフラグが、CLVSの第2のピクチャが区画可能であることを示す、非一時的コンピュータ可読記憶媒体。
42.命令のセットを記憶する非一時的コンピュータ可読記憶媒体であって、命令のセットは、デバイスに動作を実行させるために、デバイスの1つ又は複数のプロセッサによって実行可能であり、動作は、
区画されたピクチャのタイルの数が閾値より大きいかどうかを判定することであって、閾値が1より大きいことと、
区画されたピクチャのタイルの数が閾値より大きいことに応じて、区画されたピクチャに適用されているスライスモードに関連付けられた第2のPPSフラグを符号化又は復号することと、
を含む、非一時的コンピュータ可読記憶媒体。
43.デバイスの1つ又は複数のプロセッサによって実行可能な命令のセットが、
PPSを参照する区画されたピクチャにラスタスキャンスライスモードが適用されるとき、第3の値を有する第2のPPSフラグを符号化若しくは復号すること、又はPPSを参照する区画されたピクチャに長方形スライスモードが適用されるとき、第3の値とは異なる第4の値を有する第2のPPSフラグを符号化若しくは復号すること
によってデバイスに第2のPPSフラグを符号化又は復号することをさらに実行させる、条項41又は条項42に記載の非一時的コンピュータ可読記憶媒体。
44.命令のセットが、
PPSを参照する区画されたピクチャに長方形スライスモードが適用されるとき、PPSにおいてスライス情報を指定する1つ又は複数のシンタックス要素を符号化又は復号すること
を含む動作をデバイスにさらに行わせるために、デバイスの1つ又は複数のプロセッサによって実行可能である、条項43に記載の非一時的コンピュータ可読記憶媒体。
45.命令のセットを記憶する非一時的コンピュータ可読記憶媒体であって、命令のセットは、デバイスに動作を実行させるために、デバイスの1つ又は複数のプロセッサによって実行可能であり、動作は、
ピクチャが複数のタイル又はスライスに区画されるかどうかを判定することと、
ピクチャが複数のタイル又はスライスに区画可能であるとの判定に応じて、ピクチャパラメータセット(PPS)において、PPSを参照するピクチャに適用されているスライスモードに関連付けられた第1のフラグを符号化又は復号することと、を含み、
ピクチャを区画するためにラスタスキャンスライスモードが適用されるときに、第1の値を有する第1のフラグを符号化若しくは復号し、又はピクチャを区画するために長方形スライスモードが適用されるときに、第1の値とは異なる第2の値を有する第1のフラグを符号化若しくは復号する、非一時的コンピュータ可読記憶媒体。
46.
ラスタスキャンスライスモードにおいて、ピクチャが、複数のラスタスキャンスライスに区画され、ラスタスキャンスライスのいずれかが、ピクチャのタイルラスタスキャンにおける1つ又は複数の完全なタイルのシーケンスを含み、
長方形スライスモードにおいて、ピクチャが、複数の長方形スライスに区画され、長方形スライスのうちの1つが、ピクチャの長方形領域をカバーする1つ若しくは複数のタイルを含み、又は長方形スライスのうちの1つが、タイルのコード化ツリーユニットの1つ若しくは複数の連続した行をカバーする、条項45に記載の非一時的コンピュータ可読記憶媒体。
47.デバイスの1つ又は複数のプロセッサによって実行可能な命令のセットが、
(対応するタイル内のスライスについて与えられたスライス高さの数-1)を指定する第1のピクチャパラメータを符号化又は復号することであって、対応するタイルが単一のスライスを含む場合、第1のピクチャパラメータが0に等しいこと
を含む動作をデバイスにさらに実行させる、条項45又は条項46に記載の非一時的コンピュータ可読記憶媒体。
48.第1のピクチャパラメータの値は、0以上、(対応するタイルの高さ-2)以下の範囲にある、条項47に記載の非一時的コンピュータ可読記憶媒体。
49.デバイスの1つ又は複数のプロセッサによって実行可能な命令のセットが、
対応するタイル内のスライスについて与えられたスライス高さの数を指定する第3のピクチャパラメータを符号化又は復号することであって、対応するタイルが単一のスライスを含む場合、第3のピクチャパラメータが0に等しいこと
を含む動作をデバイスにさらに実行させる、条項45~48のいずれかに記載の非一時的コンピュータ可読記憶媒体。
50.デバイスの1つ又は複数のプロセッサによって実行可能な命令のセットが、
(対応するタイル内の対応する長方形スライスの高さ-1)を指定する第2のピクチャパラメータを符号化又は復号すること
を含む動作をデバイスにさらに実行させる、条項49に記載の非一時的コンピュータ可読記憶媒体。
51.第2のピクチャパラメータの上限値が、(対応するタイルの高さ-2)である、条項50に記載の非一時的コンピュータ可読記憶媒体。
52.第2のピクチャパラメータの上限値が、(対応するタイルの高さ-第4のピクチャパラメータ)であり、第4のピクチャパラメータが、対応するタイル内のスライスに対して与えられたスライス高さの数を示す、条項50に記載の非一時的コンピュータ可読記憶媒体。
53.第2のピクチャパラメータの上限値が、(対応するタイルの高さ-第5のパラメータ-1)であり、
第5のピクチャパラメータが、(対応するタイル内のスライスに対して与えられたスライス高さの数-1)を示す、条項50に記載の非一時的コンピュータ可読記憶媒体。
54.第2のピクチャパラメータの上限値が、(対応するタイルの高さ-2)と、(対応するタイルの高さ-対応するタイルにおいて与えられたスライス高さの数)とのうちの小さい方である、条項50に記載の非一時的コンピュータ可読記憶媒体。
55.命令のセットを記憶する非一時的コンピュータ可読記憶媒体であって、命令のセットは、デバイスに動作を実行させるために、デバイスの1つ又は複数のプロセッサによって実行可能であり、動作は、
コード化層映像シーケンス(CLVS)の少なくとも1つのピクチャに関連付けられたピクチャパラメータセット(PPS)において、関連付けられたピクチャが複数のタイル又はスライスに区画可能であるかどうかを示す第1のPPSフラグを符号化又は復号することであって、第1の値に等しい第1のPPSフラグが、関連付けられたピクチャが区画されないことを示し、又は第1の値とは異なる第2の値に等しい第1のPPSフラグが、関連付けられたピクチャが区画可能であることを示すことと、
第1のPPSフラグが第1の値に等しいとき、PPSにおいて、関連付けられたピクチャの各サブピクチャが単一の長方形スライスを含むかどうかを示す第2のPPSフラグを符号化又は復号することをスキップし、第3の値に等しい第2のPPSフラグの値を判定することであって、第3の値に等しい第2のPPSフラグが、関連付けられたピクチャの各サブピクチャが単一の長方形スライスを含むことを示すことと、
を含む、非一時的コンピュータ可読記憶媒体。
56.命令のセットを記憶する非一時的コンピュータ可読記憶媒体であって、命令のセットは、デバイスに動作を実行させるために、デバイスの1つ又は複数のプロセッサによって実行可能であり、動作は、
インデックスiについて、コード化層映像シーケンス(CLVS)の少なくとも1つのピクチャに関連付けられたピクチャパラメータセット(PPS)において、i番目の長方形スライスの幅に関連付けられた第1のピクチャパラメータを符号化又は復号することと、
第1のピクチャパラメータがPPS内に存在しないときに、第1のピクチャパラメータが0であると判定することと、を含み、
インデックスiが、0から(ピクチャ内の長方形スライスの数-2)に等しい上限値までの範囲にある、非一時的コンピュータ可読記憶媒体。
57.デバイスの1つ又は複数のプロセッサによって実行可能な命令のセットが、
インデックスiについて、i番目の長方形スライスの高さに関連付けられた第2のピクチャパラメータを符号化又は復号することと、
第2のピクチャパラメータがインデックスiに対してPPSに存在しないときに、第2のピクチャパラメータが0であるか、又は(i-1)番目の長方形スライスの高さに関連付けられた第3のピクチャパラメータの値に等しいと判定することと、
を含む動作をデバイスにさらに実行させる、条項56に記載の非一時的コンピュータ可読記憶媒体。
58.命令のセットを記憶する非一時的コンピュータ可読記憶媒体であって、命令のセットは、デバイスに動作を実行させるために、デバイスの1つ又は複数のプロセッサによって実行可能であり、動作は、
ビットストリームのシーケンスパラメータセット(SPS)において、SPSを参照するコード化層映像シーケンス(CLVS)内の1つ又は複数のピクチャが、複数のタイル又はスライスに区画されるかどうかを示す第1のSPSフラグを符号化又は復号することと、
SPSに関連付けられたピクチャパラメータセット(PPS)において、PPSを参照するピクチャが区画されるかどうかを示すための第1のSPSフラグに等しい第1のPPSフラグを符号化又は復号することと、
を含む、非一時的コンピュータ可読記憶媒体。
59.デバイスの1つ又は複数のプロセッサによって実行可能な命令のセットが、
第1のSPSフラグが、1つ又は複数のピクチャが区画されないことを示すことに応じて、SPS内の第2のSPSフラグを符号化又は復号することをスキップすることであって、第2のSPSフラグが、SPSを参照するCLVSについてサブピクチャ情報が存在するかどうかを示すこと
を含む動作をデバイスにさらに実行させる、条項58に記載の非一時的コンピュータ可読記憶媒体。
60.デバイスの1つ又は複数のプロセッサによって実行可能な命令のセットが、
第1のSPSフラグが、1つ又は複数のピクチャが区画されないことを示すことに応じて、SPSを参照するCLVSにおける各ピクチャ内のサブピクチャの数に関連付けられた第1のSPSシーケンスパラメータを符号化又は復号することをスキップすること
を含む動作をデバイスにさらに実行させる、条項58又は条項59に記載の非一時的コンピュータ可読記憶媒体。
[0223] 一部の実施形態では、命令を含む非一時的コンピュータ可読記憶媒体も提供され、命令は、上記の方法を実行するための装置(開示する符号器及び復号器等)によって実行され得る。一般的な非一時的媒体は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ若しくは他の任意の磁気データ記憶媒体、CD-ROM、他の任意の光学データ記憶媒体、孔のパターンを有する任意の物理媒体、RAM、PROM及びEPROM、FLASH(登録商標)-EPROM若しくは他の任意のフラッシュメモリ、NVRAM、キャッシュ、レジスタ、他の任意のメモリチップ若しくはカートリッジ及びそれらのもののネットワーク化されたバージョンを含む。装置は、1つ又は複数のプロセッサ(CPU)、入力/出力インタフェース、ネットワークインタフェース及び/又はメモリを含み得る。
[0224] 本明細書の「第1の」及び「第2の」等の関係語は、あるエンティティ又は操作を別のエンティティ又は操作と区別するために使用されるに過ぎず、それらのエンティティ又は操作間のいかなる実際の関係又は順序も必要としないか又は含意しないことに留意すべきである。さらに、「含む」、「有する」、「含有する」及び「包含する」並びに他の同様の形式の用語は、意味の点で均等であることを意図し、これらの用語のいずれか1つの後に続くアイテムがかかるアイテムの網羅的列挙であることを意図していないか、又は列挙するアイテムのみに限定されることを意図していない点で非限定的であることを意図する。
[0225] 本明細書で使用するとき、別段の定めがない限り、「又は」という語は、実行不可能な場合を除いて、あり得る全ての組み合わせを包含する。例えば、あるデータベースがA又はBを含み得ると述べた場合、別段の定めがない限り又は実行不可能でない限り、そのデータベースは、A、B、A及びBを含むことができる。第2の例として、あるデータベースがA、B又はCを含み得ると述べた場合、別段の定めがない限り又は実行不可能でない限り、そのデータベースは、A、B、C、A及びB、A及びC、B及びC、A及びB及びCを含むことができる。
[0226] 上記で説明した実施形態は、ハードウェア若しくはソフトウェア(プログラムコード)又はハードウェアとソフトウェアとの組み合わせによって実装できることが理解されるであろう。ソフトウェアによって実装される場合、ソフトウェアは、上記のコンピュータ可読媒体に記憶することができる。ソフトウェアは、プロセッサによって実行されるとき、開示する方法を実行することができる。本開示で説明した計算ユニット及び他の機能ユニットは、ハードウェア若しくはソフトウェア又はハードウェアとソフトウェアとの組み合わせによって実装することができる。上記のモジュール/ユニットの複数を1つのモジュール/ユニットとして組み合わせることができ、上記のモジュール/ユニットのそれぞれを複数のサブモジュール/サブユニットにさらに分割できることも当業者であれば理解するであろう。
[0227] 上記の本明細書では、実装形態ごとに変わり得る多数の具体的な詳細に関して実施形態を説明してきた。記載した実施形態に対する一定の適応形態及び修正形態がなされ得る。本明細書を検討し、本明細書で開示する本開示を実践することで他の実施形態が当業者に明らかになり得る。本明細書及び例は、専ら例示として検討され、本開示の真の範囲及び趣旨は、添付の特許請求の範囲によって示されることを意図する。図中に示すステップの順序は、例示目的に過ぎず、特定のステップの順序に限定されることを意図しない。そのため、それらのステップは、同じ方法を実装しながら異なる順序で実行できることを当業者であれば理解することができる。
[0228] 図面及び本明細書で例示的実施形態を開示してきた。しかし、それらの実施形態に対する多くの改変形態及び修正形態がなされ得る。したがって、特定の用語を使用したが、それらの用語は、限定目的ではなく、全般的及び説明的な意味で使用されたものに過ぎない。