(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-18
(45)【発行日】2023-07-26
(54)【発明の名称】エンコードされたビデオビットストリームをデコードする方法、デバイス、及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/132 20140101AFI20230719BHJP
H04N 19/70 20140101ALI20230719BHJP
H04N 19/33 20140101ALI20230719BHJP
H04N 19/187 20140101ALI20230719BHJP
H04N 19/172 20140101ALI20230719BHJP
【FI】
H04N19/132
H04N19/70
H04N19/33
H04N19/187
H04N19/172
(21)【出願番号】P 2021560266
(86)(22)【出願日】2021-04-12
(86)【国際出願番号】 US2021026800
(87)【国際公開番号】W WO2021236257
(87)【国際公開日】2021-11-25
【審査請求日】2021-10-12
(32)【優先日】2020-05-20
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-06-05
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-06-08
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-06-08
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-03-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チョイ,ビョンドゥ
(72)【発明者】
【氏名】ウェンジャー,ステファン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】大濱 宏之
(56)【参考文献】
【文献】特表2016-506687(JP,A)
【文献】Benjamin Bross Jianle Chen Shan Liu Ye-Kui Wang,Versatile Video Coding (Draft 9) [online], JVET-R JVET-R2001-vA,ITU-T インターネット<URL:https://jvet-experts.org/doc_end_user/documents/18_Alpbach/wg11/JVET-R2001-v10.zip>,2020年05月15日,pp.100-102, 112
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサを用いて、エンコードされたビデオビットストリームをデコードする方法であって、
コーディングされたビデオシーケンス(CVS)に対して参照ピクチャリサンプリングが有効にされることを示す第1フラグを、前記エンコードされたビデオビットストリームから取得するステップと、
ピクチャ解像度が前記CVSにおいて変更されるかどうかを示す第2フラグの値を決定するステップと、
前記ピクチャ解像度が前記CVSにおいて変更されることを示す前記第2フラグの値に基づいて、空間スケーラビリティ及び適応解像度変更(ARC)のために前記参照ピクチャリサンプリングを用いて前記CVSをデコードするステップと、
前記ピクチャ解像度が前記CVSにおいて変更されないことを示す前記第2フラグの値に基づいて、前記空間スケーラビリティのためには前記参照ピクチャリサンプリングを用いて、前記ARCのためには前記参照ピクチャリサンプリングを用いずに前記CVSをデコードするステップと
を有する方法。
【請求項2】
前記CVSは、コーディングされたレイヤワイズビデオシーケンス(CLVS)である、
請求項1に記載の方法。
【請求項3】
前記第2フラグ
が前記エンコードされたビデオビットストリーム
に存在しない場合に、
前記第2フラグ
の値は、前記ピクチャ解像度が前記CVSにおいて変更されないことを示す
値に等しいと推測される、
請求項1又は2に記載の方法。
【請求項4】
前記ピクチャ解像度が前記CVSにおいて変更されないことを示す前記第2フラグの値に基づいて、仮想境界情報がシグナリングされるかどうかを示す第3フラグを取得するステップを更に有する、
請求項1乃至3のうちいずれか一項に記載の方法。
【請求項5】
前記ピクチャ解像度が前記CVSにおいて変更されないことを示す前記第2フラグの値に基づいて、サブピクチャパーティション化情報がシグナリングされるかどうかを示す第4フラグを取得するステップを更に有する、
請求項1乃至4のうちいずれか一項に記載の方法。
【請求項6】
前記ピクチャ解像度が前記CVSにおいて変更されないことを示す前記第2フラグの値に基づいて、スケーリングウィンドウパラメータはシグナリングされ
る、
請求項1乃至5のうちいずれか一項に記載の方法。
【請求項7】
前記第1フラグ及び前記第2フラグは、シーケンスパラメータセット(SPS)でシグナリングされる、
請求項1乃至6のうちいずれか一項に記載の方法。
【請求項8】
前記ピクチャ解像度が前記CVSにおいて変更されることを示す前記第2フラグの値に基づいて、前記SPSを参照するピクチャパラメータセット(PPS)に含まれている第5フラグは、前記ピクチャ解像度が前記CVSにおいて変更されることを示し、
前記ピクチャ解像度が前記CVSにおいてに置いて変更されることを示す前記第5フラグに基づいて、前記PPSに対応するピクチャの幅及び高さのうちの少なくとも一方が明示的にシグナリングされる、
請求項7に記載の方法。
【請求項9】
前記ピクチャ解像度が前記CVSにおいて変更されないことを示す前記第2フラグの値に基づいて、前記SPSを参照するピクチャパラメータセット(PPS)に含まれている第5フラグは、前記ピクチャ解像度が前記CVSにおいて変更されないことを示し、
前記ピクチャ解像度が前記CVSにおいて変更されないことを示す前記第5フラグに基づいて、前記PPSに対応するピクチャの幅及び高さのうちの少なくとも一方は明示的にシグナリングされず、
前記幅及び前記高さのうちの前記少なくとも一方は、前記SPSでシグナリングされた最大幅及び最大高さのうちの少なくとも一方に等しいと推測される、
請求項7に記載の方法。
【請求項10】
エンコードされたビデオビットストリームをデコードするデバイスであって、
プログラムコードを記憶するよう構成される少なくとも1つのメモリと、
前記プログラムコードを読み出し、該プログラムコードによって指示されるように動作するよう構成される少なくとも1つのプロセッサと
を有し、
前記プログラムコードは、前記少なくとも1つのプロセッサによって実行される場合に、前記少なくとも1つのプロセッサに、請求項1乃至9のうちいずれか一項に記載の方法を実行させる、
デバイス。
【請求項11】
コンピュータで実行される場合に、前記コンピュータに、請求項1乃至9のうちいずれか一項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、米国特許商標庁で、2020年5月20日付けで出願された米国特許仮出願第63/027835号、2020年6月5日付けで出願された米国特許仮出願第63/035647号、2020年6月8日付けで出願された米国特許仮出願第63/036174号、2020年6月8日付けで出願された米国特許仮出願第63/036342号、及び2021年3月24日付けで出願された米国特許出願第17/211236号に対して35U.S.C第119条による優先権を主張する。これらの先願の開示は、その全文を参照により本願に援用される。
【0002】
[技術分野]
開示されている対象は、ビデオコーディング及びデコーディングに、より具体的には、複数のレイヤによるコーディングされたビデオストリームでの参照ピクチャリサンプリング及び空間スケーラビリティのシグナリング結合に関係がある。
【背景技術】
【0003】
動き補償付きのインターピクチャ予測を使用したビデオコーディング及びデコーディングが知られている。圧縮されていないデジタルビデオはピクチャの連続から成ることができ、各ピクチャは、例えば、1920×1080のルミナンスサンプル及び関連するクロミナンスサンプルの空間寸法を有する。ピクチャの連続は、例えば、毎秒60ピクチャ、つまり60Hzの固定又は可変のピクチャレート(俗にフレームレートとしても知られている。)を有することができる。圧縮されていないビデオは、有意なビットレート要件を有している。例えば、サンプル当たり8ビットでの1080p60 4:2:0ビデオ(60Hzのフレームレートでの1920×1080のルミナンスサンプル解像度)は、1.5Gビット/sに近いバンド幅を必要とする。そのようなビデオの1時間は、600ギガバイト(GB)超の記憶空間を必要とする。
【0004】
ビデオコーディング及びデコーディングの1つの目的は、圧縮による入力ビデオ信号の冗長性の低減であることができる。圧縮は、いくつかの場合に2桁以上、上記のバンド幅又は記憶空間要件を減らすのを助けることができる。可逆及び不可逆圧縮の両方並びにそれらの組み合わせが用いられ得る。可逆圧縮は、原信号の厳密なコピーが圧縮された原信号から再構成可能である技術を指す。不可逆圧縮を使用する場合に、再構成された信号は、原信号と同じでない場合があるが、原信号と再構成された信号との間のひずみは、再構成された信号を、意図された用途にとって有用なものとするほど十分に小さい。ビデオの場合には、不可逆圧縮が広く用いられている。許容されるひずみの量は用途に依存し、例えば、特定の消費者ストリーミング用途のユーザは、テレビジョン配信用途のユーザよりも高いひずみを許容し得る。達成可能な圧縮比は、より高い許容可能な/受け入れ可能なひずみがより高い圧縮比をもたらし得ることを反映することができる。
【0005】
ビデオエンコーダ及びデコーダは、例えば、動き補償、変換、量子化、及びエントロピコーディングを含む、いくつかの広いカテゴリからの技術を利用することができる。そのような技術のいくつかは以下で紹介される。
【0006】
従前、ビデオエンコーダ及びデコーダは、ほとんどの場合に、コーディングされたビデオシーケンス(Coded Video Sequence,CVS)、グループ・オブ・ピクチャ(Group of Picture,GOP)、又は同様のマルチピクチャタイムフレームについて、定義され一定に保たれた所与のピクチャサイズで動作する傾向があった。例えば、MPEG-2では、システム設計は、シーンの活動などの因子に応じて、しかしIピクチャでのみ、従って、通常はGOPについて、水平解像度(及び、それによって、ピクチャサイズ)を変えることが知られている。CVS内の異なる解像度の使用のための参照ピクチャのリサンプリングは、例えば、ITU-T Rec. H.263 Annex Pから、知られている。しかし、ここでは、ピクチャサイズは変化せず、参照ピクチャのみがリサンプリングされて、結果として、潜在的に、ピクチャキャンバスの部分のみが(ダウンサンプリングの場合に)使用されるか、あるいは、シーンの部分のみが(アップサンプリングの場合に)捕捉されることになる。更に、H.263 Annex Qは、上向き又は下向きに(各次元で)2倍で個々のマクロブロックのリサンプリングを可能にする。この場合もやはり、ピクチャサイズは同じままである。マクロブロックのサイズは、H.263では固定であるから、シグナリングされる必要がない。
【0007】
予測されたピクチャにおけるピクチャサイズの変化は、現代のビデオコーディングでは、より主流になっている。例えば、VP9は、参照ピクチャリサンプリング、及びピクチャ全体の解像度の変化を可能にする、同様に、VVCに向けて行われたある提案(例えば、その全文を本願に援用されるHendry, et. al,“On adaptive resolution change (ARC) for VVC”,Joint Video Team document JVET-M0135-v1,2019年1月9~18日)は、異なる(より高い又はより低い)解像度への参照ピクチャ全体のリサンプリングを可能にする。そのような文献では、異なる候補解像度が、シーケンスパラメータセットでコーディングされて、ピクチャパラメータセットでピクチャごとのシンタックス要素によって参照されることが提案されている。
【発明の概要】
【0008】
実施形態で、少なくとも1つのプロセッサを用いて、エンコードされたビデオビットストリームをデコードする方法であって、
コーディングされたビデオシーケンス(CVS)に対して参照ピクチャリサンプリングが有効にされることを示す第1フラグを、前記エンコードされたビデオビットストリームから取得するステップと、
ピクチャ解像度が前記CVSにおいて変更されるかどうかを示す第2フラグの値を決定するステップと、
前記ピクチャ解像度が前記CVSにおいて変更されることを示す前記第2フラグの値に基づいて、空間スケーラビリティ及び適応解像度変更(Adaptive Resolution Change,ARC)のために前記参照ピクチャリサンプリングを用いて前記CVSをデコードするステップと、
前記ピクチャ解像度が前記CVSにおいて変更されないことを示す前記第2フラグの値に基づいて、前記空間スケーラビリティのためには前記参照ピクチャリサンプリングを用いて、前記ARCのためには前記参照ピクチャリサンプリングを用いずに前記CVSをデコードするステップと
を有する方法が提供される。
【0009】
実施形態で、エンコードされたビデオビットストリームをデコードするデバイスであって、
プログラムコードを記憶するよう構成される少なくとも1つのメモリと、
前記プログラムコードを読み出し、該プログラムコードによって指示されるように動作するよう構成される少なくとも1つのプロセッサと
を有し、
前記プログラムコードは、
前記少なくとも1つのプロセッサに、コーディングされたビデオシーケンス(CVS)に対して参照ピクチャリサンプリングが有効にされることを示す第1フラグを、前記エンコードされたビデオビットストリームから取得させる第1取得コードと、
前記少なくとも1つのプロセッサに、ピクチャ解像度が前記CVSにおいて変更されるかどうかを示す第2フラグの値を決定させる決定コードと、
前記少なくとも1つのプロセッサに、前記ピクチャ解像度が前記CVSにおいて変更されることを示す前記第2フラグの値に基づいて、空間スケーラビリティ及び適応解像度変更(ARC)のために前記参照ピクチャリサンプリングを用いて前記CVSをデコードさせる第1デコーディングコードと、
前記少なくとも1つのプロセッサに、前記ピクチャ解像度が前記CVSにおいて変更されないことを示す前記第2フラグの値に基づいて、前記空間スケーラビリティのためには前記参照ピクチャリサンプリングを用いて、前記ARCのためには前記参照ピクチャリサンプリングを用いずに前記CVSをデコードさせる第2デコーディングコードと
を含む、
デバイスが提供される。
【0010】
実施形態で、命令を記憶している非一時的なコンピュータ可読媒体であって、
前記命令は、
エンコードされたビデオビットストリームをデコードするデバイスの1つ以上のプロセッサによって実行される場合に、該1つ以上のプロセッサに、
コーディングされたビデオシーケンス(CVS)に対して参照ピクチャリサンプリングが有効にされることを示す第1フラグを、前記エンコードされたビデオビットストリームから取得するステップと、
ピクチャ解像度が前記CVSにおいて変更されるかどうかを示す第2フラグの値を決定するステップと、
前記ピクチャ解像度が前記CVSにおいて変更されることを示す前記第2フラグの値に基づいて、空間スケーラビリティ及び適応解像度変更(ARC)のために前記参照ピクチャリサンプリングを用いて前記CVSをデコードするステップと、
前記ピクチャ解像度が前記CVSにおいて変更されないことを示す前記第2フラグの値に基づいて、前記空間スケーラビリティのためには前記参照ピクチャリサンプリングを用いて、前記ARCのためには前記参照ピクチャリサンプリングを用いずに前記CVSをデコードするステップと
を実行させる1つ以上の命令を有する、
非一時的なコンピュータ可読媒体が提供される。
【0011】
開示されている対象の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになる。
【図面の簡単な説明】
【0012】
【
図1】実施形態に従う通信システムの略ブロック図の概略図である。
【
図2】実施形態に従う通信システムの略ブロック図の概略図である。
【
図3】実施形態に従うデコーダの略ブロック図の概略図である。
【
図4】実施形態に従うエンコーダの略ブロック図の概略図である。
【
図5A】実施形態に従う、ARCパラメータのシグナリングのためのオプションの概略図である。
【
図5B】実施形態に従う、ARCパラメータのシグナリングのためのオプションの概略図である。
【
図5C】実施形態に従う、ARCパラメータのシグナリングのためのオプションの概略図である。
【
図5D】実施形態に従う、ARCパラメータのシグナリングのためのオプションの概略図である。
【
図5E】実施形態に従う、ARCパラメータのシグナリングのためのオプションの概略図である。
【
図6A】実施形態に従うシンタックステーブルの例の概略図である。
【
図6B】実施形態に従うシンタックステーブルの例の概略図である。
【
図7】実施形態に従う、適応解像度変更によるスケーラビリティのための予測構造の例である。
【
図8】実施形態に従うシンタックステーブルの例である。
【
図9】実施形態に従う、アクセスユニットごとのPOCサイクル及びアクセスユニットカウント値のパージング及びデコーディングの略ブロック図の概略図である。
【
図10】実施形態に従う、多層サブピクチャを含むビデオビットストリーム構造の概略図である。
【
図11】実施形態に従う、強化された解像度による選択されたサブピクチャの表示の概略図である。
【
図12】実施形態に従う、多層サブピクチャを含むビデオビットストリームのためのデコーディング及び表示プロセスのブロック図である。
【
図13】実施形態に従う、サブピクチャのエンハンスメントレイヤによる360度ビデオ表示の概略図である。
【
図14】実施形態に従う、サブピクチャ並びにその対応するレイヤ及びピクチャ予測構造のレイアウト情報の例である。
【
図15】実施形態に従う、局所領域の空間スケーラビリティモダリティを伴った、サブピクチャ並びにその対応するレイヤ及びピクチャ予測構造のレイアウト情報の例である。
【
図16A】実施形態に従う、サブピクチャレイヤ情報のためのシンタックステーブルの例である。
【
図16B】実施形態に従う、サブピクチャレイヤ情報のためのシンタックステーブルの例である。
【
図17】実施形態に従うサブピクチャレイアウト情報のためのSEIメッセージのシンタックステーブルの例である。
【
図18】実施形態に従う、出力レイヤ及び各出力レイヤセットについてのプロファイル/ティア/レベル情報を示すシンタックステーブルの例である。
【
図19】実施形態に従う、各出力レイヤセットについて出力レイヤモードオンを示すシンタックステーブルの例である。
【
図20】実施形態に従う各出力レイヤセットについて各レイヤの目下のサブピクチャを示すシンタックステーブルの例である。
【
図21】ビデオパラメータセットローバイトシーケンスペイロード(Raw Byte Sequence Payload,RBSP)のシンタックステーブルの例である。
【
図22】出力レイヤセットモードで出力レイヤセットを示すシンタックステーブルの例である。
【
図23】シーケンスパラメータセット(SPS)でコーディングされたビデオシーケンス内の参照ピクチャリサンプリング及び解像度変更を示すシンタックステーブルの例である。
【
図24】PPSでピクチャサイズを示すシンタックステーブルの例である。
【
図25A】実施形態に従う、エンコードされたビデオビットストリームをデコードするプロセスの例のフローチャートである。
【
図25B】実施形態に従う、エンコードされたビデオビットストリームをデコードするプロセスの例のフローチャートである。
【
図25C】実施形態に従う、エンコードされたビデオビットストリームをデコードするプロセスの例のフローチャートである。
【
図26】実施形態に従うコンピュータシステムの概略図である。
【発明を実施するための形態】
【0013】
図1は、本開示の実施形態に従う通信システム(100)の略ブロック図を表す。システム(100)は、ネットワーク(150)を介して相互接続されている少なくとも2つの端末(110、120)を含んでよい。データの一方向伝送については、第1端末(110)は、ネットワーク(150)を介した他の端末(120)への伝送のためにローカル位置でビデオデータをコーディングしてよい。第2端末(120)は、他の端末のエンコーディングされたビデオデータをネットワーク(150)から受信し、コーディングされたデータをデコードして、回復されたビデオデータを表示してよい。一方向データ伝送は、メディアサービングアプリケーションなどにおいて一般的であり得る。
【0014】
図1は、例えば、ビデオ会議中に、現れ得るコーディングされたビデオの双方向伝送をサポートするよう設けられた端末(130、140)の第2対を表す。データの双方向伝送については、各端末(130、140)は、ネットワーク(150)を介した他の端末への伝送のために、ローカル位置で捕捉されたビデオデータをコーディングしてよい。各端末(130、140)はまた、他の端末によって送信されたコーディングされたビデオデータを受信してよく、コーディングされたデータをデコードしてよく、そして、回復されたビデオデータをローカルの表示デバイスで表示してよい。
【0015】
図1では、端末(110~140)は、サーバ、パーソナルコンピュータ、及びスマートフォンとして表され得るが、本開示の原理は、そのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤー、及び/又は専用のビデオ会議装置で用途を見出す。ネットワーク(150)は、例えば、ワイヤライン及び/又はワイヤレス通信ネットワークを含む、コーディングされたビデオデータを端末(110~140)の間で伝達する任意数のネットワークを表す。通信ネットワーク(150)は、回路交換及び/又はパケット交換チャネルにおいてデータを交換してよい。代表的なネットワークには、電気通信網、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又はインターネットがある。本議論のために、ネットワーク(150)のアーキテクチャ及びトポロジは、以降で説明されない限りは本開示の動作に無関係であってよい。
【0016】
図2は、開示されている対象の応用例として、ストリーミング環境におけるビデオエンコーダ及びデコーダの配置を表す。開示されている対象は、例えば、ビデオ会議と、デジタルTVと、CD、DVD、メモリスティックなどを含むデジタル媒体上での圧縮されたビデオの記憶と、などを含む他のビデオ対応用途に同様に適用可能であることができる。
【0017】
ストリーミングシステムは、ビデオソース(201)、例えば、圧縮されていないビデオサンプルを生成する、例えば、デジタルカメラを含むことができる捕捉サブシステム(213)を含んでよい。そのサンプルストリーム(202)は、エンコードされたビデオビットストリームと比較して高いデータボリューム強調するよう太線として表されており、カメラ(201)へ結合されたエンコーダ(203)によって処理され得る。エンコーダ(203)は、以下で更に詳細に記載されるように、開示されている対象の態様を可能にするか又は実装するためのハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができる。エンコードされたビデオビットストリーム(204)は、サンプルストリームと比較して低いデータボリュームを強調するよう細線として表されており、将来の使用のためにストリーミングサーバ(205)に記憶され得る。1つ以上のストリーミングクライアント(206、208)は、エンコードされたビデオビットストリーム(204)のコピーを読み出すためにストリーミングサーバ(205)にアクセスすることができる。クライアント(206)は、ビデオデコーダを含むことができ、ビデオデコーダは、エンコードされたビデオビットストリーム(207)の入来するコピーをデコードし、ディスプレイ(212)又は他のレンダリングデバイス(図示せず。)でレンダリングされ得る送出ビデオサンプルストリーム(211)を生成する。いくつかのストリーミングシステムでは、ビデオビットストリーム(204、207、209)は、特定のビデオコーディング/圧縮規格に従ってエンコードされ得る。そのような規格の例には、ITU-T推奨H.265がある。バーサタイル・ビデオ・コーディング(Versatile Video Coding)又はVVCとして俗に知られているビデオコーディング規格が開発中である。開示されている対象は、VVCとの関連で使用されてもよい。
【0018】
図3は、本開示の実施形態に従うビデオデコーダ(210)の機能ブロック図を表す。
【0019】
受信器(310)は、デコーダ(210)によってデコードされるべき1つ以上のコーディングされたビデオシーケンスを、同じ又は他の実施形態で、一度に1つのコーディングされたビデオシーケンス、を受け取ってよい。各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(312)から受け取られてよく、チャネル(312)は、エンコードされたビデオデータを記憶するストレージデバイスへのハードウェア/ソフトウェアリンクであってよい。受信器(310)は、他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助データストリームとともに、エンコードされたビデオデータを受け取ってもよく、それらは、それらの各々の使用エンティティ(図示せず。)へ転送されてよい。受信器(310)は、コーディングされたビデオシーケンスを他のデータから分離してよい。ネットワークジッタに対抗するために、バッファメモリ(315)が受信器(310)とエントロピデコーダ/パーサ(320)(以降「パーサ」)との間に結合されてもよい。受信器(310)が十分なバンド幅及び可制御性の記憶/転送デバイスから、又はアイソシンクロナス(isosynchronous)ネットワークからデータを受信しているときに、バッファ(315)は必要とされなくてもよく、あるいは、小さくてよい。インターネットなどのベストエフォートのパケットネットワークでの使用のために、バッファ(315)は必要とされる場合があり、比較的に大きくかつ適応サイズであることができる。
【0020】
ビデオデコーダ(210)は、エントロピコーディングされたビデオシーケンスからシンボル(321)を再構成するためのパーサ(320)を含んでよい。それらのシンボルのカテゴリは、デコーダ(210)の動作を管理するために使用される情報と、潜在的に、
図3で表されるように、デコーダの内部部分ではないがデコーダへ結合され得るディスプレイ(212)などのレンダリングデバイスを制御するための情報とを含む。レンダリングデバイスのための制御情報は、SEI(Supplementary Enhancement Information)メッセージ又はVUI(Video Usability Information)パラメータセットフラグメント(図示せず。)の形をとってよい。パーサ(320)は、受け取られたコーディングされたビデオシーケンスをパース/エントロピデコードしてよい。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存による又はよらない算術コーディング、などを含む、当業者によく知られている原理に従うことができる。パーサ(320)は、コーディングされたビデオシーケンスから、ビデオデコーダにおけるピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータの組を、そのグループに対応する少なくとも1つのパラメータに基づいて抽出してよい。サブグループは、グループ・オブ・ピクチャ(Groups of Pictures,GOP)、ピクチャ、サブピクチャ、タイル、スライス、ブリック、マクロブロック、コーディングツリーユニット(Coding Tree Units,CTU)、コーディングユニット(Coding Units,CU)、ブロック、変換ユニット(Transform Units,TU)、予測ユニット(Prediction Units,PU)、などを含むことができる。タイルは、ピクチャにおける特定のタイル列及び行内のCU/CTUの長方形領域を示してよい。ブリックは、特定のタイル内のCU/CTU行の長方形領域を示してよい。スライスは、NALユニットに含まれるピクチャの1つ以上のブリックを示してよい。サブピクチャは、ピクチャにおける1つ以上のスライスの長方形領域を示してよい。エントロピデコーダ/パーサはまた、変換係数などのコーディングされたビデオシーケンス情報から、量子化パラメータ値、動きベクトル、なども抽出してよい。
【0021】
パーサ(320)は、シンボル(321)を生成するために、バッファ(315)から受け取られたビデオシーケンスに対してエントロピデコーディング/パージング動作を実行してよい。
【0022】
シンボル(321)の再構成は、コーディングされたビデオピクチャ又はその部分(例えば、インター及びイントラピクチャ、インター及びイントラブロック)のタイプ及び他の因子に応じて多種多様なユニットを有することができる。どのユニットが含まれるか、及びそれらがどのように含まれるかは、コーディングされたビデオシーケンスからパーサ(320)によってパースされたサブグループ制御情報によって制御され得る。パーサ(320)と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明りょうさのために表されていない。
【0023】
既に述べられた機能ブロックを超えて、デコーダ210は、概念的に、以下で説明される多数の機能ユニットに細分され得る。商業上の制約の下で動作する実際の実施では、それらのユニットの多くが互いに密に相互作用し、少なくとも部分的に互いに組み込まれ得る。しかし、開示されている対象を説明することを目的として、以下での機能ユニットへの概念的細分は適切である。
【0024】
第1ユニットは、スケーラ及び/又は逆変換ユニット(351)である。スケーラ及び/又は逆変換ユニット(351)は、パーサ(320)からシンボル(321)として、量子化された変換係数とともに、使用するために変換するもの、ブロックサイズ、量子化係数、量子化スケーリングマトリクスなどを含む制御情報を受け取る。スケーラ及び/又は逆変換ユニット(351)は、アグリゲータ(355)へ入力することができるサンプル値を含むブロックを出力することができる。
【0025】
いくつかの場合に、スケーラ及び/又は逆変換ユニット(351)の出力サンプルは、イントラコーディングされたブロック、すなわち、前に再構成されたピクチャからの予測情報を使用しておらず、現在のピクチャの前に再構成された部分からの予測情報を使用することができるブロック、に関係することができる。そのような予測情報は、イントラピクチャ予測ユニット(352)によって供給され得る。いくつかの場合に、イントラピクチャ予測ユニット(352)は、現在の(部分的に再構成された)ピクチャ(358)からフェッチされた周囲の既に再構成された情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成する。アグリゲータ(355)は、いくつかの場合に、サンプルごとに、イントラ予測ユニット(352)が生成した予測情報を、スケーラ及び/又は逆変換ユニット(351)によって供給される出力サンプル情報に加える。
【0026】
他の場合では、スケーラ及び/又は逆変換ユニット(351)の出力サンプルは、インターコーディングされた、そして潜在的に動き補償されたブロックに関係することができる。そのような場合に、動き補償予測ユニット(353)は、予測のために使用されるサンプルをフェッチするよう参照ピクチャメモリ(357)にアクセスすることができる。フェッチされたサンプルを、ブロックに関係するシンボル(321)に従って、動き補償した後に、それらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(355)によって、スケーラ及び/又は逆変換ユニットの出力(この場合に、残差サンプル又は残差信号と呼ばれる。)に加えられ得る。動き補償予測ユニットが予測サンプルをフェッチする参照ピクチャメモリ内のアドレスは、動きベクトルによって制御され得る。動きベクトルは、例えば、X、Y及び参照ピクチャコンポーネントを有することができるシンボル(321)の形で動き補償予測ユニットが利用することができるものである。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリからフェッチされるサンプル値の補間や、動きベクトル予測メカニズムなどを含むこともできる。
【0027】
アグリゲータ(355)の出力サンプルは、ループフィルタユニット(356)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、インループフィルタ技術を含むことができる。この技術は、コーディングされたビデオビットストリームに含まれており、パーサ(320)からのシンボル(321)としてループフィルタユニット(356)に利用可能にされたパラメータによって制御されるが、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(デコーディング順序において)前の部分のデコーディング中に得られたメタ情報にも応答することができ、更には、前に構成されたループフィルタ処理されたサンプル値に応答することができる。
【0028】
ループフィルタユニット(356)の出力は、レンダーデバイス(212)へ出力され、更には、将来のインターピクチャ予測における使用のために参照ピクチャメモリに記憶され得るサンプルストリームであることができる。
【0029】
特定のコーディングされたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用され得る。コーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(320)によって)参照ピクチャとして識別されると、現在の参照ピクチャ(358)が参照ピクチャメモリ(357)の部分になることができ、未使用の現在ピクチャメモリは、後続のコーディングされたピクチャの再構成を開始する前に再割り当てされ得る。
【0030】
ビデオデコーダ(210)は、ITU-T Rec. H.265などの規格で文書化されることがある所定のビデオ圧縮技術に従ってデコーディング動作を実行してよい。コーディングされたビデオシーケンスは、それが、ビデオ圧縮技術文書又は規格で、具体的にはその中のプロファイル文書で、定められているビデオ圧縮技術又は規格のシンタックスに従うという意味で、使用中のビデオ圧縮技術又は規格によって規定されたシンタックスに従い得る。また、コーディングされたビデオシーケンスの複雑さは、ビデオ圧縮技術又は規格のレベルによって定義された境界内にあることが、順守のために必要である。いくつかの場合に、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、メガサンプル/秒で測定される。)、最大参照ピクチャサイズ、などを制限する。レベルによって設定された制限は、いくつかの場合に、仮想リファレンスデコーダ(Hypothetical Reference Decoder,HRD)仕様及びコーディングされたビデオシーケンスにおいて通知されるHRDバッファ管理のためのメタデータを通じて更に制限され得る。
【0031】
実施形態において、受信器(310)は、エンコードされたビデオとともに、追加の(冗長な)データを受け取ってもよい。追加のデータは、コーディングされたビデオシーケンスの部分としても含まれてもよい。追加のデータは、ビデオデコーダ(210)によって、データを適切にデコードするために及び/又は原ビデオデータをより正確に再構成するために使用されてよい。追加のデータは、例えば、時間、空間、又はSNRエンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正符号、などの形をとることができる。
【0032】
図4は、本開示の実施形態に従うビデオエンコーダ(203)の機能ブロック図であってよい。
【0033】
エンコーダ(203)は、エンコーダ(203)によってコーディングされるべきビデオ画像を捕捉し得るビデオソース(201)(エンコーダの部分ではない。)からビデオサンプルを受け取ってよい。
【0034】
ビデオソース(201)は、任意の適切なビットデプス(例えば、8ビット、10ビット、12ビットなど)、任意の色空間(例えば、BT.601 YCrCB、RGBなど)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形で、エンコーダ(203)によってコーディングされるべきソースビデオシーケンスを供給してよい。メディアサービングシステムでは、ビデオソース(201)は、前に準備されたビデオを記憶しているストレージデバイスであってもよい。ビデオ会議システムでは、ビデオソース(201)は、ローカル画像情報をビデオシーケンスとして捕捉するカメラであってもよい。ビデオデータは、順に見られる場合に動きを授ける複数の個別ピクチャとして供給されてもよい。ピクチャ自体は、ピクセルの空間アレイとして編成されてよく、各ピクセルは、使用中のサンプリング構造、色空間、などに依存する1つ以上のサンプルを有することができる。当業者であれば、ピクセルとサンプルとの間の関係を容易に理解することができる。本明細書は、以下、サンプルに焦点を当てる。
【0035】
実施形態に従って、エンコーダ(203)は、実時間において又は用途によって必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャを、コーディングされたビデオシーケンス(443)へとコーディング及び圧縮してよい。適切なコーディング速度を強いることは、コントローラ(450)の一機能である。コントローラはまた、以下で記載されるような他の機能ユニットを制御してもよく、それらのユニットへ機能的に結合されてもよい。結合は明りょうさのために表されていない。コントローラによってセットされるパラメータには、レート制御に関連したパラメータ(ピクチャスキップ、量子化器、レートひずみ最適化技術のラムダ値、など)、ピクチャサイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲、などが含まれ得る。当業者は、コントローラ(450)の他の機能を、それらが特定のシステム設計のために最適化されたビデオエンコーダ(203)に関係し得るということで、容易に識別することができる。
【0036】
いくつかのビデオエンコーダは、当業者が「コーディングループ」として容易に実現するものにおいて動作する。過度に単純化された記載として、コーディングループは、エンコーダ(430)(以降「ソースコーダ」)のエンコーディング部分(コーディングされるべき入力ピクチャと、参照ピクチャとに基づいて、シンボルを生成することに関与する。)と、(シンボルとコーディングされたビデオビットストリームとの間の如何なる圧縮も、開示されている対象に置いて考えられているビデオ圧縮技術で可逆であるときに)(遠隔の)デコーダも生成することになるサンプルデータを生成するようシンボルを再構成する、エンコーダ(203)に埋め込まれた(ローカルの)デコーダ(433)とから成ることができる。その再構成されたサンプルストリームは、参照ピクチャメモリ(434)へ入力される。シンボルストリームのデコーディングは、デコーダの場所(ローカル又は遠隔)に依存しないビットパーフェクト(bit-exact)な結果をもたらすので、参照ピクチャメモリのコンテンツも、ローカルのエンコーダと遠隔のエンコーダとの間でビットパーフェクトである。すなわち、エンコーダの予測部分は、デコーダがデコーディング中に予測を使用するときに“見る”ことになるのとまさに同じサンプル値を参照ピクチャサンプルとして“見る”。参照ピクチャのシンクロニシティ(及び、例えば、チャネルエラーのために、シンクロニシティが維持され得ない場合に、結果として生じるドリフト)のこの基本原理は、当業者によく知られている。
【0037】
“ローカル”のデコーダ(433)の動作は、
図3とともに既に詳細に上述されている、“遠隔”のデコーダ(210)と同じであることができる。簡単に
図4も参照すると、しかしながら、シンボルが利用可能であり、エントロピコーダ(445)及びパーサ(320)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングが可逆であることができるので、チャネル(312)、受信器(310)、バッファ(315)、及びパーサ(320)を含むデコーダ(210)のエントロピデコーディング部分は、ローカルのデコーダ(433)において完全には実装されなくてもよい。
【0038】
この時点で行われ得る観察は、デコーダに存在するパージング/エントロピデコーディングを除く如何なるデコーダ技術も必然的に、対応するエンコーダにおいて実質的に同じ機能形態で存在する必要があることである。この理由により、開示されている対象は、デコーダの動作に焦点を当てる。エンコーダ技術の説明は、それらが、包括的に記載されているデコーダ技術の逆であるということで、省略可能である。特定の範囲においてのみ、より詳細な説明が必要とされ、以下で与えられている。
【0039】
その動作の部分として、ソースコーダ(430)は、動き補償された予測コーディングを実行してよい。これは、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の前にコーディングされたフレームを参照して予測的に入力ピクチャをコーディングする。このようにして、コーディングエンジン(432)は、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックと入力ピクチャのピクセルブロックとの間の差をコーディングする。
【0040】
ローカルのビデオデコーダ(433)は、ソースコーダ(430)によって生成されたシンボルに基づいて、参照フレームとして指定され得るフレームのコーディングされたビデオデータをデコードしてよい。コーディングエンジン(432)の動作は、有利なことに、不可逆プロセスであってよい。コーディングされたビデオデータがビデオデコーダ(
図4には図示せず。)でデコードされ得るとき、再構成されたビデオシーケンスは、通常は、いくらかのエラーを伴ったソースビデオシーケンスの複製であり得る。ローカルのビデオデコーダ(433)は、参照フレームに対してビデオデコーダによって実行され得るデコーディングプロセスを再現し、再構成された参照フレームを参照ピクチャキャッシュ(434)に格納されるようにしてよい。このように、エンコーダ(203)は、(伝送エラーなしで)遠端のビデオデコーダによって取得されることになる再構成された参照フレームと共通の内容を有している再構成された参照フレームのコピーをローカルで記憶し得る。
【0041】
予測器(435)は、コーディングエンジン(432)の予測探索を実行してよい。すなわち、新しいピクチャがコーディングされるために、予測器(435)は、その新しいピクチャのための適切な予測基準となり得る参照ピクチャ動きベクトル、ブロック形状、などの特定のメタデータ又は(候補参照ピクセルブロックとしての)サンプルデータを参照ピクチャメモリ(434)から探してよい。予測器(435)は、適切な予測基準を見つけるためにサンプルブロック・バイ・ピクセルブロックベース(sample block-by-pixel block basis)で動作してよい。いくつかの場合に、予測器(435)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(434)に記憶されている複数の参照ピクチャから引き出された予測基準を有してよい。
【0042】
コントローラ(450)は、例えば、ビデオデータをエンコードするために使用されるパラメータ及びサブグループパラメータの設定を含め、ビデオコーダ(430)のコーディング動作を管理してもよい。
【0043】
上記の全ての機能ユニットの出力は、エントロピコーダ(445)においてエントロピコーディングを受けてよい。エントロピコーダは、例えば、ハフマンコーディング、可変長コーディング、算術コーディングなどとして当業者に知られている技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを、コーディングされたビデオシーケンスへと変換する。
【0044】
送信器(440)は、エントロピコーダ(445)によって生成されたコーディングされたビデオシーケンスを、通信チャネル(460)を介した伝送のために準備するようにバッファリングしてよい。通信チャネル(460)は、エンコードされたビデオデータを記憶するストレージデバイスへのハードウェア/ソフトウェアリンクであってよい。送信器(440)は、ビデオコーダ(430)からのコーディングされたビデオデータを、送信されるべき他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリーム(ソースは図示せず)とマージしてもよい。
【0045】
コントローラ(450)は、エンコーダ(203)の動作を管理してもよい。コーディング中、コントローラ(450)は、各々のピクチャに適用され得るコーディング技術に影響を及ぼす可能性がある特定のコーディングされたピクチャタイプを各コーディングされたピクチャに割り当ててよい。例えば、ピクチャはしばしば、次のフレームタイプのうちの1つとして割り当てられてよい。
【0046】
イントラピクチャ(Intra Picture)(Iピクチャ)は、予測のソースとしてシーケンス内の如何なる他のピクチャも使用せずにコーディング及びデコードされ得るピクチャであってよい。いくつかのビデオコーデックは、例えば、独立したデコーダリフレッシュ(Independent Decoder Refresh,IDR)ピクチャを含む種々のタイプのイントラピクチャを許容する。当業者であれば、Iピクチャのそのような変形並びにそれらの各々の応用及び特徴を知っている。
【0047】
予測ピクチャ(Predictive Picture)(Pピクチャ)は、各ブロックのサンプル値を予測するために多くても1つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及びデコードされ得るピクチャであってよい。
【0048】
双方向予測ピクチャ(Bi-directionally Predictive Picture)(Bピクチャ)は、各ブロックのサンプル値を予測するために多くても2つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及びデコードされ得るピクチャであってよい。同様に、多重予測ピクチャ(multiple-predictive picture(s))は、単一のブロックの再構成のために2つよりも多い参照ピクチャ及び関連するメタデータを使用することができる。
【0049】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、夫々、4×4、8×8、4×8、又は16×16のサンプルのブロック)に空間的に細分され、ブロックごとにコーディングされてよい。ブロックは、ブロックの各々のピクチャに適用されているコーディング割り当てによって決定される他の(既にコーディングされた)ブロックを参照して予測的にコーディングされてよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてよく、あるいは、それらは、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、非予測的に、あるいは、1つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、コーディングされてよい。Bピクチャのブロックは、非予測的に、あるいは、1つ又は2つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、コーディングされてよい。
【0050】
ビデオコーダ(203)は、ITU-T Rec. H.265のような所定のビデオコーディング技術又は規格に従ってコーディング動作を実行してよい。その動作中に、ビデオコーダ(203)は、入力ビデオシーケンスにおける時間及び空間冗長性を利用する予測コーディング動作を含む様々な圧縮動作を実行してよい。従って、コーディングされたビデオデータは、使用されているビデオコーディング技術又は規格によって定められているシンタックスに従い得る。
【0051】
実施形態において、送信器(440)は、エンコードされたビデオとともに追加のデータを送信してもよい。ビデオコーダ(430)は、コーディングされたビデオシーケンスの部分としてそのようなデータを含めてよい。追加のデータは、時間/空間/SNRエンハンスメントレイヤ、冗長ピクチャ及びスライスなどの他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメント、などを有してよい。
【0052】
近年、単一のビデオピクチャへの複数の意味的に独立したピクチャ部分の圧縮領域アグリゲーション又は抽出は、注目を集めている。特に、例えば、360度のコーディング又は特定の監視アプリケーションと関連して、複数の意味的に独立したソースピクチャ(例えば、立法投影360度シーンの6立方面、又は他カメラ監視セットアップの場合における個別的なカメラ入力)は、所与の時点での異なるシーンごとのアクティビティに対処するよう別個の適応解像度設定を必要とすることがある。すなわち、エンコーダは、所与の時点で、360度全体又は監視シーンを構成する異なる意味的に独立したピクチャのために異なるリサンプリング係数を使用することを選択してよい。単一のピクチャに結合される場合に、次いで、参照ピクチャリサンプリングが実行されることが必要であり、適応解像度コーディングシグナリングは、コーディングされたピクチャの部分のために利用可能である。
【0053】
以下、本明細書の残りで参照されることになる2、3の項目が紹介される。
【0054】
サブピクチャは、いくつかの場合に、意味的にグループ分けされており、変更された解像度で独立してコーディングされ得るサンプル、ブロック、マクロブロック、コーディングユニット、又は同様のエンティティの長方形配置を指す。1つ以上のサブピクチャは、ピクチャを形成してよい。1つ以上のコーディングされたサブピクチャは、コーディングされたピクチャを形成してよい。1つ以上のサブピクチャは、ピクチャにまとめられてもよく、1つ以上のサブピクチャは、ピクチャから抽出されてもよい。特定の環境で、1つ以上のコーディングされたサブピクチャは、同じレベルにトランスコーディングせずに圧縮領域で、コーディングされたピクチャにまとめられてもよく、同じ又は他の場合には、1つ以上のコーディングされたサブピクチャは、圧縮領域で、コーディングされたサブピクチャから抽出されてもよい。
【0055】
適応解像度変更(Adaptive Resolution Change,ARC)は、コーディングされたビデオシーケンス内のピクチャ又はサブピクチャの解像度の変化を、例えば、参照ピクチャリサンプリングによって、可能にするメカニズムを指し得る。ARCパラメータは、以降、適応解像度変更を実行するために必要な制御情報を指し、例えば、フィルタパラメータ、スケーリング係数、出力及び/又は参照ピクチャの解像度、様々な制御フラグ、などを含んでよい。
【0056】
実施形態において、コーディング及びデコーディングは、単一の、意味的に独立したコーディングされたビデオピクチャに対して実行されてよい。独立したARCパラメータによる複数のサブピクチャのコーディング/デコーディングの意味合い及びその暗黙的な更なる複雑性について記載する前に、ARCパラメータのシグナリングについてのオプションが説明されるべきである。
【0057】
図5A~5Eを参照すると、ARCパラメータのシグナリングについてのいくつかの実施形態が示されている。実施形態の夫々により述べられているように、それらは、コーディング効率、複雑性、及びアーキテクチャ視点から特定の利点及び特定の欠点を有し得る。ビデオコーディング規格又は技術は、ARCパラメータのシグナリングのために、これらの実施形態、又は関連技術から知られているオプション、のうちの1つ以上を選択してよい。実施形態は、相互排他的でなくてよく、考えられる限りは、アプリケーションニーズ、関連する標準技術、又はエンコーダの選択に基づいて交換されてもよい。
【0058】
ARCパラメータの分類には、
X及びY次元で別々であるか又は結合されているアップサンプル及び/又はダウンサンプル係数、
所与の数のピクチャについて一定速度のズームイン/アウトを示す時間次元を追加されたアップサンプル及び/又はダウンサンプル係数
が含まれてよい。
【0059】
上記の2つのうちのどちらも、その係数を含む表を指し示し得る1つ以上の、おそらくは短いシンタックス要素のコーディングを伴ってよい。
【0060】
解像度は、組み合わせて又は別々に、入力ピクチャ、出力ピクチャ、参照ピクチャ、コーディングされたピクチャのサンプル、ブロック、マクロブロック、CU、又は任意の他の適切な粒度の単位で、X又はY次元での解像度を指してよい。1つよりも多い解像度がある場合に(例えば、入力ピクチャについて1つと参照ピクチャについて1つ)、特定の場合に、ひと組の値が他の組の値から推測されてもよい。解像度は、例えば、フラグの使用によって、ゲーティング(gated)されてもよい。より詳細な例については、以下を参照されたい。
【0061】
「ワーピング」(Warping)座標は、H.263 Annex Pで使用されるものと同種であって、先と同じく、上述された適切な粒度にあってよい。H.263 Annex Pは、そのようなワーピング座標をコーディングするための1つの効率的な方法を定義するが、他の、潜在的により効率的な方法も、考えられる限りは、考案されてよい。例えば、Annex Pのワーピング座標の可変長リバーシブルな「ハフマン」スタイルコーディングは、適切な長さのバイナリコーディングで置換されてもよく、このとき、バイナリコードワードの長さは、例えば、最大ピクチャサイズから導出されて、場合により、最大ピクチャサイズの境界の外での「ワーピング」を可能にするために、特定の係数を乗じられかつ特定の値でオフセットされてもよい。
【0062】
アップサンプル及び/又はダウンサンプルフィルタパラメータ。実施形態において、アップサンプリング及び/又はダウンサンプリングのための単一のフィルタしか存在しなくてもよい。しかし、実施形態において、フィルタ設計における更なる柔軟性を可能にすることが望ましいことがあり、それは、フィルタパラメータのシグナリングを必要とし得る。そのようなパラメータは、とり得るフィルタ設計のリストにおいてインデックスにより選択されてよく、フィルタは、(例えば、適切なエントロピコーディング技術を用いてフィルタ係数のリストを通じて)完全に指定されてもよく、フィルタは、上記のメカニズムのいずれかなどに従ってシグナリングされるアップサンプル及び/又はダウンサンプル比により暗黙的に選択されてもよい。
【0063】
以降、説明は、コードワードにより示される有限なアップサンプル及び/又はダウンサンプル係数の組(同じ係数がX及びYの両方の次元で使用される。)のコーディングを前提とする。そのコードワードは、例えば、H.264及びH.265などのビデオコーディング規格で特定のシンタックス要素に共通なExt-Golombコードを使用することによって、可変長コーディングされてよい。アップサンプル及び/又はダウンサンプル係数への値の1つの適切なマッピングは、例えば、以下の表1に従うことができる。
【表1】
【0064】
多くの類似したマッピングが、ビデオ圧縮技術又は規格で利用可能なアップ及びダウンスケールメカニズムの適用のニーズ及び能力に従って考案され得た。表は、より多くの値に拡張されてもよい。値はまた、Ext-Golombコード以外のエントロピコーディングメカニズムによって、例えば、バイナリコーディングを用いて、表されてもよい。それは、リサンプリング係数が、例えば、MANEによって、ビデオ処理エンジン(第1に、エンコーダ及びデコーダ)自体の外で重要である場合に、特定の利点を有し得る。解像度変更が不要である状況については、短い(例えば、上記の表では、単一ビットのみ)Ext-Golombコードが選択可能であることが留意されるべきである。それは、最も一般的な場合のためにバイナリコードを使用することよりもコーディング効率が優れている可能性がある。
【0065】
表中のエントリの数及びそれらのセマンティクスは、完全に又は部分的に設定可能であってよい。例えば、表の基本概要は、シーケンス又はデコーダパラメータセットなどの「ハイ」パラメータセットで運ばれてよい。実施形態において、1つ以上のそのような表は、ビデオコーディング技術又は規格で定義されてもよく、例えば、デコーダ又はシーケンスパラメータセットにより選択されてもよい。
【0066】
以下では、上述されたようにコーディングされているアップサンプル及び/又はダウンサンプル係数(ARC情報)がビデオコーディング技術又は標準シンタックスにどのように含まれ得るかが記載される。同様の考えは、アップサンプル及び/又はダウンサンプルフィルタを制御する1つ又は数個のコードワードに当てはまる。比較的大量のデータがフィルタ又は他のデータ構造のために必要とされ得る場合に関する説明については以下を参照されたい。
【0067】
図5Aに示されるように、H.263 Annex Pは、4つのワーピング座標の形でARC情報(502)をピクチャヘッダ(501)内に、具体的には、H.263 PLUSPTYPE(503)ヘッダ拡張に含める。これは、(a)利用可能なピクチャヘッダが有り、かつ、(b)ARC情報の頻繁な変化が期待される、場合に、理にかなった設計選択であることができる。しかし、H.263スタイルシグナリングを使用する場合のオーバーヘッドは極めて高くなる可能性があり、スケーリング係数は、ピクチャヘッダが過渡的な性質を有し得るので、ピクチャ境界に付随しないことがある。
【0068】
図5Bに示されるように、JVCET-M135-v1は、シーケンスパラメータセット(507)の中に位置している目標解像度を含む表(506)をインデックス化する、ピクチャパラメータセット(504)に位置しているARC参照情報(505)(インデックス)を含む。シーケンスパラメータセット(507)における表(506)でのとり得る解像度の配置は、著者による口頭の声明によれば、能力交換(capability exchange)中に相互運用ネゴシエーションポイント(interoperability negotiation point)としてSPS(507)を使用することによって正当化され得る。解像度は、適切なピクチャパラメータセット(504)を参照することによってピクチャごとに表(506)の値によってセットされた限界内で変化することができる。
【0069】
図5E~5Eを参照すると、次の実施形態は、ARC情報をビデオビットストリームで運ぶために存在してよい。これらのオプションの夫々は、上記の実施形態に対して特定の利点を有する。実施形態は、同時に、同じビデオコーディング技術又は規格において存在してもよい。
【0070】
実施形態、例えば、
図5Cに示される実施形態において、リサンプリング(ズーム)係数などのARC情報(509)は、スライスヘッダ、GOBヘッダ、タイルヘッダ、又はタイルグループヘッダに存在してよい。
図5Cは、タイルグループヘッダ(508)が使用される実施形態を表す。これは、例えば、上述されたような、数ビットの単一の可変長ue(v)又は固定長コードワードのように、ARC情報が小さい場合に、適切であることができる。タイルグループヘッダで直接にARC情報を有することは、ARC情報が、例えば、ピクチャ全体ではなく、そのタイルグループによって表されるサブピクチャに適用可能であり得るという付加的な利点を有している。以下も参照されたい。更には、たとえビデオ圧縮技術又は規格が(例えば、タイルグループに基づいた適応的な解像度変化とは対照的に)ピクチャ全体にのみ適応可能な解像度変化を企図するとしても、ARC情報をタイルグループヘッダに、それをH263スタイルのピクチャヘッダに置くことにより置くことは、誤り耐性の観点から特定の利点を有する。
【0071】
実施形態、例えば、
図5Dに示される実施形態において、ARC情報(512)自体が、例えば、ピクチャパラメータセット、ヘッダパラメータセット、タイルパラメータセット、適応パラメータセット、などのような適切なパラメータセットに存在してもよい。
図5Dは、適応パラメータセット(511)が使用される実施形態を表す。そのパラメータセットの範囲は、有利なことに、ピクチャよりも大きくならず、例えば、タイルグループであることができる。ARC情報の使用は、関連するパラメータセットの活性化を通じて潜在してもよい。例えば、ビデオコーディング技術又は規格がピクチャベースのARCのみを企図する場合に、ピクチャパラメータセット又は同等物が適切であり得る。
【0072】
実施形態、例えば、
図5Eに示される実施形態において、ARC参照情報(513)は、タイルグループヘッダ(514)又は類似したデータ構造に存在してもよい。その参照情報(513)は、単一のピクチャを越える範囲でパラメータセット(516)において利用可能なARC情報(515)のサブセット、例えば、シーケンスパラメータセット又はデコーダパラメータセットを参照することができる。
【0073】
図6Aに示されるように、ピクチャの(場合により長方形の)部分に適用可能なヘッダの例となるシンタックス構造としてのタイルグループヘッダ(601)は、可変長のExp-Golombコーディングされたシンタックス要素dec_pic_size_idx(602)(太字で表示)を条件付きで含むことができる。タイルグループヘッダにおけるこのシンタックス要素の存在は、適応解像度(603)の使用時にゲーティングされ得る。ここで、フラグの値は太字で表されておらず、これは、フラグが、シンタックスダイアグラムで発生する時点でビットストリームに存在することを意味する。適応解像度がこのピクチャ又はその部分に対して使用中であるか否かは、ビットストリーム内又は外の如何なる高位シンタックス構造でもシグナリングされ得る。示されている例では、適応解像度は、以下で説明されるようにシーケンスパラメータセットでシグナリングされる。
【0074】
図6Bを参照すると、シーケンスパラメータセット(610)の抜粋も示されている。示されている最初のシンタックス要素は、adaptive_pic_resolution_change_flag(611)である。真である場合に、そのフラグは、適応解像度の使用を示すことができ、翻って、特定の制御情報を必要とし得る。例において、そのような制御情報は、パラメータセット(612)及びタイルグループヘッダ(600)においてif()文に基づくフラグの値に基づいて条件付きで存在する。
【0075】
適応解像度が使用中である場合に、この例では、サンプル(613)のユニットで出力解像度がコーディングされる。数613は、output_pic_width_in_luma_samples及びoutput_pic_hight_in_luma_samplesの両方を参照する。これらは一緒に、出力ピクチャの解像度を定義することができる。ビデオコーディング技術又は規格の他の場所で、どちらかの値に対する特定の制限が定義され得る。例えば、レベル定義は、それら2つのシンタックス要素の値の積であることができる総出力サンプル数を制限してよい。また、特定のビデオコーディング技術又は規格、あるいは、例えば、システム規格などの外部技術又は規格は、番号付け範囲(例えば、一方又は両方の次元が2の累乗で割り切れるべきである)、又はアスペクト比(例えば、幅及び高さは4:3又は16:9などの関係になければならない)を制限してもよい。そのような制限は、ハードウェア実装を容易にするために、又は他の理由のために、導入されてもよく、当該技術でよく知られている。
【0076】
特定のアプリケーションで、エンコーダは、サイズを出力ピクチャサイズであると暗黙的に想定するのではなく、特定のピクチャサイズを使用するようにデコーダに指示することが賢明であることができる。この例では、シンタックス要素reference_pic_size_present_flag(614)は、参照ピクチャ次元(615)の条件付きの存在をゲーティングする(先と同じく、数は幅及び高さの両方を参照する)。
【0077】
最後に、とり得るデコーディングピクチャ幅及び高さの表が示されている。そのような表は、例えば、表指示(num_dec_pic_size_in_luma_samples_minus1)(616)によって、表現され得る。「minus1」は、そのシンタックス要素の値の解釈(interpretation)を指すことができる。例えば、シンタックス要素のコーディングされた値が0である場合に、1つの表エントリが存在する。コーディングされた値が5である場合に、6つの表エントリが存在する。表の各“行”ごとに、デコードされたピクチャ幅及び高さが、次いで、シンタックス(617)に含まれる。
【0078】
表されている表エントリ(617)は、タイルグループヘッダにおけるシンタックス要素dec_pic_size_idx(602)を用いてインデックスを付され得る。それによって、タイルグループごとに異なったデコーディングサイズ、実際にはズーム係数が可能となる。
【0079】
特定のビデオコーディング技術又は規格、例えば、VP9は、空間スケーラビリティを可能にするために、時間スケーラビリティとともに特定の形態の参照ピクチャリサンプリング(開示されている対象とは全く別なふうにシグナリングされる)を実装することによって空間スケーラビリティをサポートする。特に、特定の参照ピクチャは、空間エンハンスメントレイヤのベースを形成するよう、ARCスタイル技術を用いて、より高い解像度へアップサンプリングされてもよい。それらのアップサンプリングされたピクチャは、詳細を追加するために、高い解像度で通常の予測メカニズムを使用して精緻化され得る。
【0080】
ここで説明されている実施形態は、そのような環境で使用され得る。特定の場合に、同じ又は他の実施形態において、NALユニットヘッダ、例えば、一時ID(Temporal ID)フィールドにおける値は、時間レイヤのみならず空間レイヤも示すために使用され得る。そうすることは、特定のシステム設計にとって特定の利点を有し得る。例えば、NALユニットヘッダの一時ID値に基づいて時間レイヤ選択的転送のために生成及び最適化された既存の選択的転送ユニット(Selected Forwarding Units,SFU)は、スケーラブル環境のために変更無しで使用可能である。それを可能にするために、コーディングされたピクチャと時間レイヤとの間のマッピングがNALユニットヘッダにおいて一時IDフィールドによって示される必要がある。
【0081】
いくつかのビデオコーディング技術で、アクセスユニット(Access Unit,AU)は、所与の時点で捕捉されて各々のピクチャ、スライス、タイル、及び/又はNALユニットビットストリーム内に構成されたコーディングされたピクチャ、スライス、タイル、NALユニットなどを指すことができる。そのような時点は、合成時間(composition time)であることができる。
【0082】
HEVC、及び特定の他のビデオコーディング技術では、ピクチャ・オーダー・カウント(Picture Order Count,POC)値が、デコーディングピクチャバッファ(Decoded Picture Buffer,DPB)に格納された複数の参照ピクチャの中から選択された参照ピクチャを示すために使用され得る。アクセスユニット(AU)が1つ以上のピクチャ、スライス、又はタイルを含む場合に、同じAUに属する各ピクチャ、スライス、又はタイルは、同じPOC値を運んでよく、POC値から、それらが同じ合成時間のコンテンツから生成されたことが導出され得る。すなわち、2つのピクチャ/スライス/タイルが同じ所与のPOC値を運ぶシナリオにおいて、その2つのピクチャ/スライス/タイルは同じAUに属しかつ同じ合成時間を有していることが決定され得る。対照的に、異なるPOC値を有する2つのピクチャ/タイル/スライスは、それらのピクチャ/スライス/タイルが異なるAUに属しかつ異なる合成時間を有していることを示すことができる。
【0083】
実施形態において、この堅固な関係は、アクセスユニットが異なるPOC値を有するピクチャ、スライス、又はタイルを含むことができる点で緩和され得る。AU内の異なるPOC値を許すことによって、POC値を使用して、同じ提示時間(presentation time)を有する潜在的に独立してデコード可能なピクチャ/スライス/タイルを識別することが可能になる。それは、翻って、以下で更に詳細に記載されるように、参照ピクチャ選択シグナリング、例えば、参照ピクチャセットシグナリング又は参照ピクチャリストシグナリング、の変化無しで、複数のスケーラブルレイヤのサポートを可能にすることができる。
【0084】
しかし、POC値のみから、異なるPOC値を有する他のピクチャ/スライス/タイルに対して、ピクチャ/スライス/タイルが属するAUを識別することができることが、依然として望ましい。これは、以下で記載されるように、達成され得る。
【0085】
実施形態において、アクセスユニットカウント(Access Unit Count,AUC)は、NALユニットヘッダ、スライスヘッダ、タイルグループヘッダ、SEIメッセージ、パラメータセット又はAUデリミタ(delimiter)などの高位シンタックス構造でシグナリングされてよい。AUCの値は、どのNALユニット、ピクチャ、スライス、又はタイルが所与のAUに属するかを識別するために使用されてよい。AUCの値は、個別の合成時間インスタンスに対応していてよい。AUC値は、POC値の倍数に等しくなる。整数値でPOC値を割ることによって、AUC値は計算され得る。特定の場合に、割り算は、デコーダ実装に一定の負担をかける可能性がある。そのような場合に、AUC値の番号付け空間における小さな制限は、シフト演算による割り算の置換を可能にし得る。例えば、AUC値は、POC値範囲の最上位ビット(MSB)値に等しくなる。
【0086】
実施形態において、AUごとのPOCサイクル(poc_cycle_au)の値は、NALユニットヘッダ、スライスヘッダ、タイルグループヘッダ、SEIメッセージ、パラメータセット又はAUデリミタなどの高位シンタックス構造でシグナリングされてよい。poc_cycle_auは、多数の異なる連続したPOC値が同じAUとどのように関連付けられ得るかを示してよい。例えば、poc_cycle_auの値が4に等しい場合に、0以上3以下に等しいPOC値を有するピクチャ、スライス、又はタイルは、0に等しいAUC値を有するAUと関連付けられてよく、4以上7以下に等しいPOC値を有するピクチャ、スライス、又はタイルは、1に等しいAUC値を有するAUと関連付けられてよい。従って、AUCの値は、poc_cycle_auでPOC値を割ることによって推測され得る。
【0087】
実施形態において、poc_cycle_auの値は、コーディングされたビデオシーケンスにおける空間又はSNRレイヤの数を識別する、例えば、ビデオパラメータセット(VPS)に位置している情報から、導出されてもよい。そのような可能な関係の例は、以下で簡単に説明される。上述された導出はVPSで数ビットを節約し得るので、コーディング効率を改善し得る一方で、いくつかの実施形態で、poc_cycle_auは、ピクチャなどのビットストリームの所与の小さな部分についてpoc_cycle_auを最小化することが可能であるために、階層的にビデオパラメータセットの下にある適切な高位シンタックス構造で明示的にコーディングされてもよい。この最適化は、POC値、及び/又はPOCを間接的に参照するシンタックス要素の値が、低位シンタックス構造でコーディングされ得るので、上記の導出プロセスを通じてセーブ可能であるよりも多いビットをセーブし得る。
【0088】
実施形態において、
図8は、コーディングされたビデオシーケンスで全てのピクチャ/スライスのために使用されるpoc_cycle_auを示す、VPS(又はSPS)におけるvps_poc_cycle_auのシンタックス要素と、スライスヘッダで現在のスライスのpoc_cycle_auを示すslice_poc_cycle_auのシンタックス要素とをシグナリングするためのシンタックステーブルの例を示す。POC値がAUごとに一様に増大する場合に、VPSにおけるvps_contant_poc_cycle_per_auは、1に等しくセットされてよく、vps_poc_cycle_auは、VPSでシグナリングされてよい。この場合に、slice_poc_cycle_auは、明示的にシグナリングされなくてもよく、各AUのAUCの値は、vps_poc_cycle_auでPOCの値を割ることによって計算され得る。POC値がAUごとに一様に増大しない場合に、VPSにおけるvps_contant_poc_cycle_per_auは、0に等しくセットされてよい。この場合に、vps_access_unit_cntはシグナリングされなくてもよく、一方、slice_access_unit_cntは各スライス又はピクチャごとにスライスヘッダでシグナリングされてよい。各スライス又はピクチャは、異なる値のslice_access_unit_cntを有してよい。各AUのAUCの値は、slice_poc_cycle_auでPOCの値を割ることによって計算され得る。
【0089】
図9は、上記のプロセスの例を説明するブロック図を示す。例えば、動作S910で、VPS(又はSPS)はパースされ得、動作S920で、AUごとのPOCサイクルがコーディングされたビデオシーケンス内で一定であるかどうかが、決定され得る。AUごとのPOCサイクルが一定である場合に(動作S920でYES)、次いで、動作S930で、特定のアクセスユニットについてのアクセスユニットカウントの値が、コーディングされたビデオシーケンスについてシグナリングされたpoc_cycle_auと、特定のアクセスユニットのPOC値とから計算され得る。AUごとのPOCサイクルが一定でない場合に(動作S920でNO)、次いで、動作S940で、特定のアクセスユニットについてのアクセスユニットカウントの値が、特定のレベルでシグナリングされたpoc_cycle_auと、特定のアクセスユニットのPOC値とから計算され得る。動作S950で、新しいVPS(又はSPS)がパースされ得る。
【0090】
実施形態において、たとえピクチャ、スライス、又はタイルのPOCの値が異なり得るとしても、同じAUC値を有するAUに対応するピクチャ、スライス、又はタイルは、同じデコーディング又は出力時間インスタンスと関連付けられてよい。従って、同じAU内のピクチャ、スライス、又はタイルの間で如何なる相互的なパージング/デコーディング依存性もなしで、同じAUと関連付けられたピクチャ、スライス、又はタイルの全て又はサブセットは、並行してデコードされてよく、同じ時間インスタンスで出力されてよい。
【0091】
実施形態において、たとえピクチャ、スライス、又はタイルのPOCの値が異なり得るとしても、同じAUC値を有するAUに対応するピクチャ、スライス、又はタイルは、同じ合成/表示時間インスタンスと関連付けられてよい。合成時間がコンテナフォーマットに含まれる場合に、たとえピクチャが異なるAUに対応するとしても、ピクチャが同じ合成時間を有しているならば、ピクチャは同じ時間インスタンスで表示され得る。
【0092】
実施形態において、各ピクチャ、スライス、又はタイルは、同じAUにおいて同じ時間識別子(temporal_id)を有してよい。ある時間インスタンスに対応するピクチャ、スライス、又はタイルの全て又はサブセットは、同じ時間サブレイヤと関連付けられてよい。実施形態において、各ピクチャ、スライス、又はタイルは、同じAUにおいて同じ又は異なる空間レイヤid(要素layer_id)を有してもよい。ある時間インスタンスに対応するピクチャ、スライス、又はタイルの全て又はサブセットは、同じ又は異なる空間レイヤと関連付けられてよい。
【0093】
図7は、適応解像度変更とのtemporal_id、layer_id、並びにPOC及びAUC値の組み合わせによるビデオシーケンス構造の例を示す。この例では、AUC=0を有する最初のAU内のピクチャ、スライス、又はタイルは、temporal_id=0及びlayer_id=0又は1を有してよく、一方、AUC=1を有する第2のAU内のピクチャ、スライス、又はタイルは、temporal_id=1及びlayer_id=0又は1を夫々有してよい。POCの値は、temporal_id及びlayer_idの値にかかわらずピクチャごとに1ずつ増える。この例では、poc_cycle_auの値は2に等しくなる。実施形態において、poc_cycle_auの値は、(空間スケーラビリティ)レイヤの数に等しくセットされてよい。この例では、従って、POCの値は2ずつ増え、一方、AUCの値は1ずつ増える。
【0094】
上記の実施形態で、インターピクチャ又はインターレイヤ予測構造及び参照ピクチャ指示の全て又はサブセットは、HEVCでの既存の参照ピクチャセット(RPS)シグナリング又は参照ピクチャリスト(RPL)シグナリングを使用することによってサポートされてよい。RPS又はRPLで、選択された参照ピクチャは、POCの値、又は現在のピクチャと選択された参照ピクチャとの間のPOCの差分値をシグナリングすることによって、示され得る。実施形態において、RPS又はRPLは、シグナリングの変化無しで、しかし、次の制限を有して、インターピクチャ又はインターレイヤ予測構造を示すために使用され得る。参照ピクチャのtemporal_idの値が現在のピクチャのtemporal_idの値よりも大きい場合に、現在のピクチャは、動き補償又は他の予測のために参照ピクチャを使用しなくもよい。参照ピクチャのlayer_idの値が現在のピクチャのlayer_idの値よりも大きい場合に、現在のピクチャは、動き補償又は他の予測のために参照ピクチャを使用しなくてもよい。
【0095】
実施形態において、時間動きベクトル予測のためのPOC差分に基づいた動きベクトルスケーリングは、アクセスユニット内の複数のピクチャにわたって無効にされてもよい。従って、各ピクチャがアクセスユニット内で異なるPOC値を有することがあるが、動きベクトルは、アクセスユニット内の時間動きベクトル予測のためにスケーリング及び使用されなくてもよい。これは、同じAUで異なるPOCを有する参照ピクチャが同じ時間インスタンスを有する参照ピクチャと見なされるからである。従って、実施形態において、動きベクトルスケーリング関数は、参照ピクチャが現在のピクチャに関連したAUに属する場合に1を返してよい。
【0096】
実施形態において、時間動きベクトル予測のためのPOC差分に基づいた動きベクトルスケーリングは、参照ピクチャの空間分解能が現在のピクチャの空間分解能とは異なる場合に、複数のピクチャにわたって任意に無効化されてもよい。動きベクトルスケーリングが許可される場合に、動きベクトルは、現在のピクチャと参照ピクチャとの間のPOC差分及び空間分解能比の両方に基づいてスケーリングされる。
【0097】
実施形態において、動きベクトルは、特に、poc_cycle_auが非一様値を有する場合に(vps_contant_poc_cycle_per_au==0である場合に)、時間動きベクトル予測のためのPOC差分の代わりにAUC差分に基づいてスケーリングされてもよい。そうでない場合(vps_contant_poc_cycle_per_au==1である場合)には、AUC差分に基づいた動きベクトルスケーリングは、POC差分に基づいた動きベクトルスケーリングと同じであってよい。
【0098】
実施形態において、動きベクトルがAUC差分に基づいてスケーリングされる場合に、現在のピクチャを含む同じAU内の(同じAUC値を有する)参照動きベクトルは、AUC差分に基づいてスケーリングされず、現在のピクチャと参照ピクチャとの間の空間分解能比に基づいたスケーリングを有して又はスケーリング無しで動きベクトル予測のために使用される。
【0099】
実施形態において、AUC値は、AUの境界を識別するために使用され、かつ、AU粒度での入力及び出力タイミングを必要とする仮想リファレンスデコーダ(HRD)動作のために使用される。実施形態において、AUの最上位レイヤを有するデコードされたピクチャは、表示のために出力されてよい。AUC値及びlayer_id値は、出力ピクチャを識別するために使用され得る。
【0100】
実施形態において、ピクチャは、1つ以上のサブピクチャを含んでもよい。各サブピクチャは、ピクチャの局所領域又は全体領域をカバーしてよい。サブピクチャによってサポートされる領域は、他のサブピクチャによってサポートされる領域と重なり合っても重なり合わなくてもよい。1つ以上のサブピクチャによってカバーされている領域は、ピクチャの全体領域をカバーしてもしなくてもよい。ピクチャがサブピクチャを含む場合に、そのサブピクチャによってサポートされる領域は、ピクチャによってサポートされる領域と同じであってもよい。
【0101】
実施形態において、サブピクチャは、コーディングされたピクチャのために使用されているコーディング方法と類似したコーディング方法によってコーディングされてもよい。サブピクチャは、独立してコーディングされてもよく、あるいは、他のサブピクチャ又はコーディングされたピクチャに依存してコーディングされてもよい。サブピクチャは、他のサブピクチャ又はコーディングされたピクチャからの如何なるパージング依存性も有しても有さなくてもよい。
【0102】
実施形態において、コーディングされたサブピクチャは、1つ以上のレイヤに含まれてもよい。レイヤ内のコーディングされたサブピクチャは、異なる空間分解能を有してもよい。元のサブピクチャは、空間的にリサンプリング(アップサンプリング又はダウンサンプリング)され、異なる空間分解能パラメータでコーディングされ、レイヤに対応するビットストリームに含まれてよい。
【0103】
実施形態において、Wがサブピクチャの幅を示し、Hがサブピクチャの高さを示すとして、(W,H)を有するサブピクチャは、コーディングされて、レイヤ0に対応するコーディングされたビットストリームに含まれてよく、一方、元の空間分解能を有するサブピクチャからアップサンプリング(又はダウンサンプリングされた)、(W×Sw,k,H×Sh,k)を有するサブピクチャは、コーディングされ、レイヤkに対応するコーディングされたビットストリームに含まれてよい。ここで、Sw,k、Sh,kは、夫々、水平方向及び垂直方向でのリサンプリング比を示す。Sw,k、Sh,kの値が1よりも大きい場合に、リサンプリングはアップサンプリングであってよい。一方、Sw,k、Sh,kの値が1よりも小さい場合には、リサンプリングはダウンサンプリングであってよい。
【0104】
実施形態において、レイヤ内のコーディングされたサブピクチャは、同じサブピクチャ又は異なるサブピクチャにおける他のレイヤ内のコーディングされたサブピクチャのそれとは異なった視覚品質を有してもよい。例えば、レイヤn内のサブピクチャiは、量子化パラメータQi,nでコーディングされてよく、一方、レイヤm内のサブピクチャjは、量子化パラメータQj,mでコーディングされてよい。
【0105】
実施形態において、レイヤ内のコーディングされたサブピクチャは、同じ局所領域の他のレイヤ内のコーディングされたサブピクチャからの如何なるパージング又はデコーディング依存性もなしで、独立してデコード可能であってよい。同じ局所領域の他のサブピクチャレイヤを参照せずに独立にデコード可能であることができるサブピクチャレイヤは、独立サブピクチャレイヤであり得る。独立サブピクチャレイヤ内のコーディングされたサブピクチャは、同じサブピクチャレイヤ内の前にコーディングされたサブピクチャからのデコーディング又はパージング依存性を有しても有さなくてもよいが、コーディングされたサブピクチャは、他のサブピクチャレイヤ内のコーディングされたサブピクチャからの如何なる依存性も有さなくてよい。
【0106】
実施形態において、レイヤ内のコーディングされたサブピクチャは、同じ局所領域の他のレイヤ内のコーディングされたサブピクチャからの何らかのパージング又はデコーディング依存性を有して、従属的にデコード可能であってもよい。同じ局所領域の他のサブピクチャレイヤを参照して従属的にデコード可能であることができるサブピクチャレイヤは、従属サブピクチャレイヤであり得る。従属サブピクチャレイヤ内のコーディングされたサブピクチャは、同じサブピクチャに属するコーディングされたサブピクチャ、同じサブピクチャレイヤ内の前にコーディングされたサブピクチャ、又は両方の参照サブピクチャを参照してよい。
【0107】
実施形態において、コーディングされたサブピクチャは、1つ以上の独立サブピクチャレイヤと、1つ以上の従属サブピクチャレイヤとを含んでよい。しかし、少なくとも1つの独立サブピクチャレイヤが、コーディングされたサブピクチャのために存在してよい。独立サブピクチャレイヤの、NALユニットヘッダ又は他の高位シンタックス構造に存在し得るレイヤ識別子(layer_id)の値は、0に等しくなる。0に等しいlayer_idを有するサブピクチャレイヤは、基本サブピクチャレイヤであってよい。
【0108】
実施形態において、ピクチャは、1つ以上の前景サブピクチャと、1つの背景サブピクチャとを含んでよい。背景サブピクチャによってサポートされる領域は、ピクチャの領域に等しくてよい。前景サブピクチャによってサポートされる領域は、背景サブピクチャによってサポートされる領域と重なり合ってもよい。背景サブピクチャは、基本サブピクチャレイヤであってよく、一方、前景サブピクチャは、非基本(拡張)サブピクチャレイヤであってよい。1つ以上の非基本サブピクチャレイヤは、デコーディングのために同じ基本レイヤを参照してよい。aがbよりも大きいとして、aに等しいlayer_idを有する各非基本サブピクチャレイヤは、bに等しいlayer_idを有する非基本サブピクチャレイヤを参照してもよい。
【0109】
実施形態において、ピクチャは、背景サブピクチャの有無によらず1つ以上の前景サブピクチャを含んでもよい。各サブピクチャは、それ自身の基本サブピクチャレイヤと、1つ以上の非基本(拡張)レイヤとを有してよい。各基本サブピクチャレイヤは、1つ以上の非基本サブピクチャレイヤによって参照されてよい。aがbよりも大きいとして、aに等しいlayer_idを有する各非基本サブピクチャレイヤは、bに等しいlayer_idを有する非基本サブピクチャレイヤを参照してよい。
【0110】
実施形態において、ピクチャは、背景サブピクチャの有無によらず1つ以上の前景サブピクチャを含んでもよい。(基本又は非基本)サブピクチャレイヤ内の各コーディングされたサブピクチャは、同じサブピクチャに属する1つ以上の非基本レイヤサブピクチャと、同じサブピクチャに属さない1つ以上の非基本レイヤサブピクチャとによって参照されてよい。
【0111】
実施形態において、ピクチャは、背景サブピクチャの有無によらず1つ以上の前景サブピクチャを含んでもよい。レイヤa内のサブピクチャは、同じレイヤ内の複数のサブピクチャに更にパーティション化されてよい。レイヤb内の1つ以上のコーディングされたサブピクチャは、レイヤa内のパーティション化されたサブピクチャを参照してよい。
【0112】
実施形態において、コーディングされたビデオシーケンス(CVS)は、コーディングされたピクチャのグループであってよい。CVSは、1つ以上のコーディングされたサブピクチャシーケンス(CSPS)を含んでもよく、CSPSは、ピクチャの同じ局所領域をカバーするコーディングされたサブピクチャのグループであってよい。CSPSは、コーディングされたビデオシーケンスのそれと同じ又は異なった時間分解能を有してよい。
【0113】
実施形態において、CSPSは、コーディングされて、1つ以上のレイヤに含まれてよい。CSPSは、1つ以上のCSPSレイヤを含んでもよい。CSPSに対応する1つ以上のCSPSレイヤをデコードすることは、同じ局所領域に対応するサブピクチャのシーケンスを再構成してよい。
【0114】
実施形態において、CSPSに対応するCSPSレイヤの数は、他のCSPSに対応するCSPSレイヤの数と同じであっても又は異なってもよい。
【0115】
実施形態において、CSPSレイヤは、他のCSPSレイヤとは異なった時間分解能(例えば、フレームレート)を有してもよい。元の(圧縮されていない)サブピクチャシーケンスは、時間的にリサンプリング(例えば、アップサンプリング又はダウンサンプリング)され、異なる時間分解能パラメータでコーディングされ、レイヤに対応するビットストリームに含まれてよい。
【0116】
実施形態において、フレームレートFを有するサブピクチャシーケンスは、コーディングされて、レイヤ0に対応するコーディングされたビットストリームに含まれてよく、一方、元のサブピクチャシーケンスから時間的にアップサンプリング(又はダウンサンプリング)された、F×St,kを有するサブピクチャシーケンスは、コーディングされて、レイヤkに対応するコーディングされたビットストリームに含まれてよい。ここで、St,kは、レイヤkのための時間サンプリング比を示す。St,kの値が1よりも大きい場合には、時間リサンプリングプロセスは、フレームレートアップコンバージョンであってよい。一方、St,kが1よりも小さい場合には、時間リサンプリングプロセスは、フレームレートダウンコンバージョンであってよい。
【0117】
実施形態において、CSPSレイヤaを有するサブピクチャが、動き補償又は何らかのインターレイヤ予測のために、CSPSレイヤbを有するサブピクチャによって参照される場合に、CSPSレイヤaの空間分解能がCSPSレイヤbの空間分解能とは異なるならば、CSPSレイヤaでのデコードされたピクセルは、リサンプリングされて、参照のために使用される。リサンプリングプロセスは、アップサンプリングフィルタリング又はダウンサンプリングフィルタリングを使用してもよい。
【0118】
図10は、0に等しいlayer_idを有する背景ビデオCSPSと、複数の前景CSPSレイヤとを含むビデオストリームの例を示す。コーディングされたサブピクチャは1つ以上のCSPSレイヤを含んでもよく、一方、如何なる前景CSPSレイヤにも属さない背景領域は、基本レイヤを含んでよい。基本レイヤは、背景領域及び前景領域を含んでもよく、一方、エンハンスメントCSPSレイヤは前景領域を含んでよい。エンハンスメントCSPSレイヤは、同じ領域で、基本レイヤよりも良い視覚品質を有し得る。エンハンスメントCSPSレイヤは、同じ領域に対応する基本レイヤの動きベクトル及び再構成されたピクセルを参照してよい。
【0119】
実施形態において、ビデオファイルでは、基本レイヤに対応するビデオビットストリームは、トラックに含まれ、一方、各サブピクチャに対応するCSPSレイヤは、別個のトラックに含まれる。
【0120】
実施形態において、基本レイヤに対応するビデオビットストリームは、トラックに含まれ、一方、同じlayer_idを有するCSPSレイヤは、別個のトラックに含まれる。この例では、レイヤkに対応するトラックは、レイヤkに対応するCSPSレイヤのみを含む。
【0121】
実施形態において、各サブピクチャの各CSPSレイヤは、別のトラックに格納される。各トラックは、1つ以上の他のトラックからの如何なるパージング又はデコーディング依存性も有しても有さなくてもよい。
【0122】
実施形態において、各トラックは、サブピクチャの全て又はサブセットのCSPSレイヤのレイヤiからレイヤjに対応するビットストリームを含んでよい。ここで、0<i=<j=<kであり、kはCSPSの最高レイヤである。
【0123】
実施形態において、ピクチャは、デプスマップ、アルファマップ、3Dジオメトリデータ、占有マップ、などを含む1つ以上の関連するメディアデータを含む。そのような関連する時間付き(timed)メディアデータは、夫々が1つのサブピクチャに対応する1つ又は複数のデータサブストリームに分けられ得る。
【0124】
図11は、多層サブピクチャ方法に基づいたビデオ会議の例を示す。ビデオストリームには、背景ピクチャに対応する1つの基本レイヤビデオビットストリームと、前景サブピクチャに対応する1つ以上のエンハンスメントレイヤビデオビットストリームとが含まれる。各エンハンスメントレイヤビデオビットストリームは、CSPSレイヤに対応してよい。ディスプレイでは、基本レイヤに対応するピクチャがデフォルトで表示される。基本レイヤは、一人以上のユーザのピクチャ・イン・ピクチャ(Picture In Picture,PIP)を含む。特定のユーザがクライアントの制御によって選択される場合に、選択されたユーザに対応するエンハンスメントCSPSレイヤは、向上した品質又は空間分解能でデコード及び表示され得る。
【0125】
図12は、上記のプロセスの例を説明するブロック図を示す。例えば、動作S1210で、複数のレイヤを含むビデオビットストリームがデコードされ得る。動作S1220で、背景領域及び1つ以上の前景サブピクチャが識別され得る。動作S1230で、特定のサブピクチャ領域、例えば、前景サブピクチャのうちの1つ、が選択されるかどうかが決定され得る。特定のサブピクチャ領域が選択される場合に(動作S1240でYES)、強化されたサブピクチャがデコード及び表示されてよい。特定のサブピクチャ領域が選択されない場合に(動作S1240でNO)、背景領域がデコード及び表示されてよい。
【0126】
実施形態において、ネットワークミドルボックス(例えば、ルータ)は、そのバンド幅に応じてユーザへ送信すべきレイヤのサブセットを選択してもよい。ピクチャ/サブピクチャ編成は、バンド幅適応のために使用されてよい。例えば、ユーザがバンド幅を有さない場合に、ルータは、それらの重要性により又は使用されている設定に基づいてレイヤを削除するか又はいくつかのサブピクチャを選択する。これは、バンド幅に適応するよう動的に行われ得る。
【0127】
図13は、360度ビデオの使用ケースに関係がある実施形態を示す。球状の360度ピクチャ、例えば、ピクチャ1310が平面ピクチャに投影される場合に、投影360度ピクチャは、基本レイヤとして複数のサブピクチャにパーティション化されてよい。例えば、複数のサブピクチャは、後方サブピクチャ、上サブピクチャ、右サブピクチャ、左サブピクチャ、前方サブピクチャ、及び↓サブピクチャを含んでよい。特定のサブピクチャ、例えば、前方サブピクチャのエンハンスメントレイヤがコーディングされて、クライアントへ伝送されてよい。デコーダは、全てのサブピクチャを含む基本レイヤと、選択されたサブピクチャのエンハンスメントレイヤとの両方をデコードすることが可能であってよい。現在のビューポートが選択されたサブピクチャと同じである場合に、表示されているピクチャは、エンハンスメントレイヤを伴ったデコードされたサブピクチャでより高い品質を有し得る。そうでない場合には、基本レイヤを含むデコードされたピクチャが、より低い品質で表示され得る。
【0128】
実施形態において、表示のための如何なるレイアウト情報も、補足情報(例えば、SEIメッセージ又はメタデータ)として、ファイルに存在してもよい。1つ以上のデコードされたサブピクチャは、シグナリングされたレイアウト情報に応じて再配置又は表示されてよい。レイアウト情報は、ストリーミングサーバ又はブロードキャスタによってシグナリングされてよく、あるいは、ネットワークエンティティ又はクラウドサーバによって再生されてもよく、あるいは、ユーザのカスタマイズされた設定によって決定されてもよい。
【0129】
実施形態において、入力されたピクチャが1つ以上の(長方形の)サブ領域に分けられる場合に、各サブ領域は、独立レイヤとしてコーディングされてもよい。局所領域に対応する各独立レイヤは、一意のlayer_id値を有してよい。各独立レイヤについて、サブピクチャサイズ及び位置情報がシグナリングされてよい。例えば、ピクチャサイズ(幅、高さ)及び左上隅のオフセット情報(x_offset、y_offset)がシグナリングされてもよい。
図14は、分割されたサブピクチャのレイアウト、そのサブピクチャサイズ及び位置情報、並びにその対応するピクチャ予測構造の例を示す。サブピクチャサイズ及びサブピクチャ位置を含むレイアウト情報は、パラメータセット、スライス若しくはタイルグループのヘッダ、又はSEIメッセージなどの高位シンタックス構造でシグナリングされてよい。
【0130】
実施形態で、独立レイヤに対応する各サブピクチャは、AU内でその一意のPOC値を有してもよい。DPBに格納されているピクチャの中の参照ピクチャがRPS又はRPL構造でシンタックス要素を使用することによって指示される場合に、レイヤに対応する各サブピクチャのPOC値が使用されてもよい。
【0131】
実施形態において、(インターレイヤ)予測構造を示すために、layer_idは使用されなくてもよく、POC(差分)値が使用され得る。
【0132】
実施形態で、レイヤ(又は局所領域)に対応するNに等しいPOC値を有しているサブピクチャは、動き補償された予測のために、同じレイヤ(又は同じ局所領域)に対応する、K+Nに等しいPOC値を有するサブピクチャの参照ピクチャとして使用されてもされなくてもよい。ほとんどの場合に、数Kの値は、サブ領域の数と同じであってもよい(独立)レイヤの最大数に等しくなる。
【0133】
実施形態において、
図15は、
図14の拡張された場合を表す。入力されたピクチャが複数(例えば、4つ)のサブ領域に分けられる場合に、各局所領域は、1つ以上のレイヤを有してコーディングされてよい。その場合に、独立レイヤの数はサブ領域の数に等しくてよく、1つ以上のレイヤは1つのサブ領域に対応してよい。よって、各サブ領域は、1つ以上の独立レイヤ及びゼロ個以上の従属レイヤを有してコーディングされてよい。
【0134】
実施形態において、
図15で、入力されたピクチャは4つのサブ領域に分けられてよい。例として、右上サブ領域は、レイヤ1及びレイヤ4である2つのレイヤとしてコーディングされてよく、一方、右下サブ領域は、レイヤ3及びレイヤ5である2つのレイヤとしてコーディングされてよい。この場合に、レイヤ4は、動き補償された予測のためにレイヤ1を参照してよく、一方、レイヤ5は、動き補償のためにレイヤ3を参照してよい。
【0135】
実施形態において、レイヤ境界にわたるインループフィルタリング(例えば、デブロッキングフィルタリング、適応インループフィルタリング、リシェーパ(reshaper)、バイラテラルフィルタリング、又は任意のディープラーニングに基づいたフィルタリング)は、(任意に)無効にされてもよい。
【0136】
実施形態において、レイヤ境界にわたる動き補償された予測又はイントラブロックコピーは、(任意に)無効にされてもよい。
【0137】
実施形態において、サブピクチャの境界での動き補償された予測又はインループフィルタリングのための境界パディングは、任意に処理されてもよい。境界パディングが処理されるか否かを示すフラグは、パラメータセット(VPS、SPS、PPS、若しくはAPS)、スライス若しくはタイルグループヘッダ、又はSEIメッセージなどの高位シンタックス構造でシグナリングされてもよい。
【0138】
実施形態において、サブ領域(又はサブピクチャ)のレイアウト情報は、VPS又はSPSでシグナリングされてもよい。
図16Aは、VPSでのシンタックス要素の例を示し、
図16Bは、SPSでのシンタックス要素の例を示す。この例では、vps_sub_picture_dividing_flagがVPSでシグナリングされる。フラグは、入力されたピクチャが複数のサブ領域に分けられるか否かを示してよい。vps_sub_picture_dividing_flagの値が0に等しい場合に、現在のVPSに対応するコーディングされたビデオシーケンス内の入力されたピクチャは、複数のサブ領域に分けられなくてもよい。この場合に、入力されたピクチャのサイズは、SPSでシグナリングされるコーディングされたピクチャのサイズ(pic_width_in_luma_samples、pic_height_in_luma_samples)に等しくなる。vps_sub_picture_dividing_flagの値が1に等しい場合に、入力されたピクチャは、複数のサブ領域に分けられ得る。この場合に、シンタックス要素vps_full_pic_width_in_luma_samples及びvps_full_pic_height_in_luma_samaplesは、VPSでシグナリングされる。vps_full_pic_width_in_luma_samples及びvps_full_pic_height_in_luma_samaplesの値は、夫々、入力されたピクチャの幅及び高さに等しくなる。
【0139】
実施形態において、vps_full_pic_width_in_luma_samples及びvps_full_pic_height_in_luma_samaplesの値は、デコーディングのために使用されなくてもよいが、合成及び表示のために使用され得る。
【0140】
実施形態において、vps_sub_picture_dividing_flagの値が1に等しい場合に、シンタックス要素pic_offset_x及びpic_offset_yは、特定のレイヤに対応するSPSでシグナリングされてよい。この場合に、SPSでシグナリングされるコーディングされたピクチャのサイズ(pic_width_in_luma_samples、pic_height_in_luma_samples)は、特定のレイヤに対応するサブ領域の幅及び高さに等しくなる。また、サブ領域の左上隅の位置(pic_offset_x、pic_offset_y)が、SPSでシグナリングされてもよい。
【0141】
実施形態において、サブ領域の左上隅の位置情報(pic_offset_x、pic_offset_y)は、デコーディングのために使用されなくてもよいが、合成及び表示のために使用され得る。
【0142】
実施形態において、入力されたピクチャのサブ領域の全て又はサブセットのレイアウト情報(サイズ及び位置)、及びレイヤ間の依存関係情報が、パラメータセット又はSEIメッセージでシグナリングされてもよい。
図17は、サブ領域のレイアウトの情報、レイヤ間の依存性、及びサブ領域と1つ以上のレイヤとの間の関係を示すシンタックス要素の例を表す。この例では、シンタックス要素num_sub_regionは、現在のコーディングされたビデオシーケンス内の(長方形)サブ領域の数を示す。シンタックス要素num_layersは、現在のコーディングされたビデオシーケンス内のレイヤの数を示す。num_layersの値は、num_sub_regionの値以上であってよい。いずれかのサブ領域が単一のレイヤとしてコーディングされる場合に、num_layersの値は、num_sub_regionの値と等しくなる。1つ以上のサブ領域が複数のレイヤとしてコーディングされる場合に、num_layersの値は、num_sub_regionの値よりも大きくなる。シンタックス要素direct_dependency_flag[i][j]は、j番目のレイヤからi番目のレイヤへの依存性を示す。num_layers_for_region[i]は、i番目のサブ領域に関連したレイヤの数を示す。sub_region_layer_id[i][j]は、i番目のサブ領域に関連したj番目のレイヤのlayer_idを示す。sub_region_offset_x[i]及びsub_region_offset_y[i]は、夫々、i番目のサブ領域の左上隅の水平及び垂直位置を示す。sub_region_width[i]及びsub_region_height[i]は、夫々、i番目のサブ領域の幅及び高さを示す。
【0143】
実施形態において、プロファイルティアレベル情報の有無によらず出力されるべき1つ以上のレイヤを示すための出力レイヤセットを定める1つ以上のシンタックス要素は、高位シンタックス構造、例えば、VPS、DPS、SPS、PPS、APS、又はSEIメッセージでシグナリングされてよい。
図18を参照すると、VPSを参照するコーディングされたビデオシーケンスにおける出力レイヤセット(Output Layer Set,OLS)の数を示すシンタックス要素num_output_layer_setsは、VPSでシグナリングされてよい。各出力レイヤセットについて、output_layer_flagは、出力レイヤの数と同じ回数だけシグナリングされてよい。
【0144】
実施形態において、1に等しいoutput_layer_flagは、i番目のレイヤが出力されることを示してよい。0に等しいoutput_layer_flagは、i番目のレイヤが出力されないことを示してよい。
【0145】
実施形態において、各出力レイヤセットについてプロファイルティアレベル情報を定める1つ以上のシンタックス要素は、高位シンタックス構造、例えば、VPS、DPS、SPS、PPS、APS、又はSEIメッセージでシグナリングされてよい。依然として
図18を参照すると、VPSを参照するコーディングされたビデオシーケンスにおけるOLSごとのプロファイルティアレベル情報の数を示すシンタックス要素num_profile_tier_levelは、VPSでシグナリングされてよい。各出力レイヤセットについて、プロファイルティアレベル情報のためのシンタックス要素の組又はプロファイルティアレベル情報内のエントリの中で特定のプロファイルティアレベル情報を示すインデックスは、出力レイヤの数と同じ回数だけシグナリングされてよい。
【0146】
実施形態において、profile_tier_level_idx[i][j]は、i番目のOLSのj番目のレイヤに適用するprofile_tier_level()シンタックス構造の、VPSでのprofile_tier_level()シンタックス構造のリスト内へのインデックスを指定する。
【0147】
実施形態において、
図19を参照すると、シンタックス要素num_profile_tile_level及び/又はnum_output_layer_setsは、最大レイヤの数が1よりも多い(vps_max_layers_minus1>0)場合にシグナリングされてよい。
【0148】
実施形態において、
図19を参照すると、i番目の出力レイヤセットについての出力レイヤシグナリングのモードを示すシンタックス要素vps_output_layers_mode[i]が、VPSに存在してもよい。
【0149】
実施形態において、0に等しいvps_output_layers_mode[i]は、最高レイヤのみがi番目の出力レイヤセットにより出力されることを示してよい。1に等しいvps_output_layers_mode[i]は、全てのレイヤがi番目の出力レイヤセットにより出力されることを示してよい。2に等しいvps_output_layers_mode[i]は、i番目の出力レイヤセットにより出力されるレイヤが、1に等しいvps_output_layer_flag[i][j]を有するレイヤであることを示してよい。より多くの値がリザーブされてもよい。
【0150】
実施形態において、output_layer_flag[i][j]は、i番目の出力レイヤセットについてのvps_output_layers_mode[i]の値に応じて、シグナリングされてもされなくてもよい。
【0151】
実施形態において、
図19を参照すると、フラグvps_ptl_flag[i]が、i番目の出力レイヤセットについて存在してもよい。vps_ptl_flag[i]の値に応じて、i番目の出力レイヤセットのプロファイルティアレベル情報は、シグナリングされてもされなくてもよい。
【0152】
実施形態において、
図20を参照すると、現在のCVSでのサブピクチャの数max_subpics_minus1は、高位シンタックス構造、例えば、VPS、DPS、SPS、PPS、APS、又はSEIメッセージでシグナリングされてもよい。
【0153】
実施形態において、
図20を参照すると、i番目のサブピクチャのサブピクチャ識別子sub_pic_id[i]は、サブピクチャの数が1よりも多い(max_subpics_minus1>0)場合にシグナリングされてよい。
【0154】
実施形態において、各出力レイヤセットの各レイヤに属するサブピクチャ識別子を示す1つ以上のシンタックス要素は、VPSでシグナリングされてもよい。
図20を参照すると、sub_pic_id_layer[i][j][k]は、i番目の出力レイヤセットのj番目のレイヤに存在するk番目のサブピクチャを示す。この情報により、デコーダは、特定の出力レイヤセットの各レイヤについて、どのサブピクチャがデコードされ出力され得るかを認識し得る。
【0155】
実施形態において、ピクチャヘッダ(PH)は、コーディングされたピクチャの全スライスに適用するシンタックス要素を含むシンタックス構造である。ピクチャユニット(PU)はNALユニットの組であり、NALユニットは、特定の分類規則に従って互いに関連付けられ、デコーディング順序において連続しており、かつ、厳密に1つのコーディングされたピクチャを含む。PUは、ピクチャヘッダ(PH)と、コーディングされたピクチャを含む1つ以上のVCL NALユニットとを含んでよい。
【0156】
実施形態において、SPS(RBSP)は、それが参照される前にデコーディングプロセスに利用可能であるか、0に等しいTemporalIDを有する少なくとも1つのAUに含まれるか、あるいは、外部手段を通じて供給されてよい。
【0157】
実施形態において、SPS(RBSP)は、それが参照される前にデコーディングプロセスに利用可能であるか、SPSを参照する1つ以上のPPSを含むCVSで0に等しいTemporalIDを有する少なくとも1つのAUに含まれるか、あるいは、外部手段を通じて供給されてよい。
【0158】
実施形態において、SPS(RBSP)は、それが1つ以上のPPSによって参照される前にデコーディングプロセスに利用可能であるか、SPSを参照する1つ以上のPPSを含むCVSでSPS NALユニットを参照するPPS NALユニットの最小nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、あるいは、外部手段を通じて供給されてよい。
【0159】
実施形態において、SPS(RBSP)は、それが1つ以上のPPSによって参照される前にデコーディングプロセスに利用可能であるか、0に等しいTemporalID及びSPS NALユニットを参照するPPS NALユニットの最小nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、あるいは、外部手段を通じて供給されてよい。
【0160】
実施形態において、SPS(RBSP)は、それが1つ以上のPPSによって参照される前にデコーディングプロセスに利用可能であるか、0に等しいTemporalID及びCVSでSPS NALユニットを参照するPPS NALユニットの最小nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、あるいは、外部手段を通じて供給されてよい。
【0161】
同じ又は他の実施形態で、pps_seq_parameter_set_idは、参照されているSPSについてのsps_seq_parameter_set_idの値を指定してよい。pps_seq_parameter_set_idの値は、コーディングされたレイヤワイズのビデオシーケンス(CLVS)におけるコーディングされたピクチャによって参照される全てのPPSで同じであってよい。
【0162】
同じ又は他の実施形態で、CVSで特定の値のsps_seq_parameter_set_idを有する全てのSPS NALユニットは、同じ内容を有してもよい。
【0163】
同じ又は他の実施形態で、nuh_layer_id値にかかわらず、SPS NALユニットは、sps_seq_parameter_set_idの同じ値空間を共有してもよい。
【0164】
同じ又は他の実施形態で、あるSPS NALユニットのnuh_layer_id値は、そのSPS NALユニットを参照するPPS NALユニットの最小nuh_layer_id値に等しくてもよい。
【0165】
実施形態において、mに等しいnuh_layer_idを有するSPSが、nに等しいnuh_layer_idを有する1つ以上のPPSによって参照される場合に、mに等しいnuh_layer_idを有するレイヤは、nに等しいnuh_layer_idを有するレイヤ又はmに等しいnuh_layer_idを有するレイヤの(直接又は間接)参照レイヤと同じであってもよい。
【0166】
実施形態において、PPS(RBSP)は、それが参照される前にデコーディングプロセスに利用可能であるか、PPS NALユニットのTemporalIDに等しいTemporalIDを有する少なくとも1つのAUに含まれるか、あるいは、外部手段を通じて供給されてよい。
【0167】
実施形態において、PPS(RBSP)は、それが参照される前にデコーディングプロセスに利用可能であるか、PPSを参照する1つ以上のPH(又はコーディングされたスライスNALユニット)を含むCVSでPPS NALユニットのTemporalIDに等しいTemporalIDを有する少なくとも1つのAUに含まれるか、あるいは、外部手段を通じて供給されてよい。
【0168】
実施形態において、PPS(RBSP)は、それが1つ以上のPH(又はコーディングされたスライスNALユニット)によって参照される前にデコーディングプロセスに利用可能であるか、PPSを参照する1つ以上のPH(又はコーディングされたスライスNALユニット)を含むCVSでPPS NALユニットを参照するコーディングされたスライスNALユニットの最小nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、あるいは、外部手段を通じて供給されてよい。
【0169】
実施形態において、PPS(RBSP)は、それが1つ以上のPH(又はコーディングされたスライスNALユニット)によって参照される前にデコーディングプロセスに利用可能であるか、PPSを参照する1つ以上のPH(又はコーディングされたスライスNALユニット)を含むCVSでPPS NALユニットを参照するPPS NALユニットの最小nuh_layer_id値に等しいnuh_layer_id及びPPS NALユニットのTemporalIDに等しいTemporalIDを有する少なくとも1つのPUに含まれるか、あるいは、外部手段を通じて供給されてよい。
【0170】
同じ又は他の実施形態で、PHにおけるph_pic_parameter_set_idは、使用中の参照されているPPSについてのpps_pic_parameter_set_idの値を指定してよい。pps_seq_parameter_set_idの値は、CLVSにおけるコーディングされたピクチャによって参照される全てのPPSで同じであってよい。
【0171】
同じ又は他の実施形態で、PU内の特定の値のpps_pic_parameter_set_idを有する全てのPPS NALユニットは、同じ内容を有してもよい。
【0172】
同じ又は他の実施形態で、nuh_layer_id値にかかわらず、PPS NALユニットは、pps_pic_parameter_set_idの同じ値空間を共有してもよい。
【0173】
同じ又は他の実施形態で、あるPPS NALユニットのnuh_layer_idは、そのPPS NALユニットを参照するNALユニットを参照するコーディングされたスライスNALユニットの最小nuh_layer_id値に等しくてもよい。
【0174】
実施形態において、mに等しいnuh_layer_idを有するPPSが、nに等しいnuh_layer_idを有する1つ以上のコーディングされたスライスNALユニットによって参照される場合に、mに等しいnuh_layer_idを有するレイヤは、nに等しいnuh_layer_idを有するレイヤ又はmに等しいnuh_layer_idを有するレイヤの(直接又は間接)参照レイヤと同じであってもよい。
【0175】
実施形態において、PPS(RBSP)は、それが参照される前にデコーディングプロセスに利用可能であるか、PPSを参照する1つ以上のPH(又はコーディングされたスライスNALユニット)を含むCVSでPPS NALユニットのTemporalIDに等しいTemporalIDを有する少なくとも1つのAUに含まれるか、あるいは、外部手段を通じて供給されてよい。
【0176】
実施形態において、PPS(RBSP)は、それが1つ以上のPH(又はコーディングされたスライスNALユニット)によって参照される前にデコーディングプロセスに利用可能であるか、PPSを参照する1つ以上のPH(又はコーディングされたスライスNALユニット)を含むCVSでPPS NALユニットを参照するコーディングされたスライスNALユニットの最小nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、あるいは、外部手段を通じて供給されてよい。
【0177】
実施形態において、PPS(RBSP)は、それが1つ以上のPH(又はコーディングされたスライスNALユニット)によって参照される前にデコーディングプロセスに利用可能であるか、PPSを参照する1つ以上のPH(又はコーディングされたスライスNALユニット)を含むCVSでPPS NALユニットを参照するPPS NALユニットの最小nuh_layer_id値に等しいnuh_layer_id及びPPS NALユニットのTemporalIDに等しいTemporalIDを有する少なくとも1つのPUに含まれるか、あるいは、外部手段を通じて供給されてよい。
【0178】
同じ又は他の実施形態で、PHにおけるph_pic_parameter_set_idは、使用中の参照されているPPSについてのpps_pic_parameter_set_idの値を指定してよい。pps_seq_parameter_set_idの値は、CLVSにおけるコーディングされたピクチャによって参照される全てのPPSで同じであってよい。
【0179】
同じ又は他の実施形態で、PU内の特定の値のpps_pic_parameter_set_idを有する全てのPPS NALユニットは、同じ内容を有してもよい。
【0180】
同じ又は他の実施形態で、nuh_layer_id値にかかわらず、PPS NALユニットは、pps_pic_parameter_set_idの同じ値空間を共有してもよい。
【0181】
同じ又は他の実施形態で、あるPPS NALユニットのnuh_layer_idは、そのPPS NALユニットを参照するNALユニットを参照するコーディングされたスライスNALユニットの最小nuh_layer_id値に等しくてもよい。
【0182】
実施形態において、mに等しいnuh_layer_idを有するPPSが、nに等しいnuh_layer_idを有する1つ以上のコーディングされたスライスNALユニットによって参照される場合に、mに等しいnuh_layer_idを有するレイヤは、nに等しいnuh_layer_idを有するレイヤ又はmに等しいnuh_layer_idを有するレイヤの(直接又は間接)参照レイヤと同じであってもよい。
【0183】
ピクチャが、異なる解像度を有する1つ以上の例を含むビットストリーム内にエンコードされる場合に、レイヤの各コーディングされたビデオシーケンスは、参照ピクチャが現在のピクチャとは異なる解像度を有し得るときに参照ピクチャリサンプリングを使用してよい。空間スケーラビリティ又は適応ピクチャ解像度変更(ARC)のための参照ピクチャリサンプリングを示すシンタックス要素を指定することが望ましい。
【0184】
図21を参照すると、出力レイヤは、出力される出力レイヤセットのレイヤを示してよい。出力レイヤセット(OLS)は、指定されたレイヤの組を含むレイヤの組を示してよく、指定されたレイヤの組では、レイヤの組の中の1つ以上のレイヤが出力レイヤであるよう指定されている。出力レイヤセット(OLS)レイヤインデックスは、OLS内のレイヤのリストに対する、OLS内のレイヤのインデックスである。
【0185】
サブレイヤは、特定の値のTemporalID変数を有するVCL NALユニット及び関連する非VCL NALユニットを含む時間スケーラブルビットストリームの時間スケーラブルレイヤを示してよい。サブレイヤ表現は、特定のサブレイヤ及びより低いサブレイヤのNALユニットを含むビットストリームのサブセットを示してよい。
【0186】
VPS RBSPは、それが参照される前にデコーディングプロセスに利用可能であるか、0に等しいTemporalIDを有する少なくとも1つのAUに含まれるか、あるいは、外部手段を通じて供給されてよい。CVSにおける特定の値のvps_video_parameter_set_idを有する全てのVPS NALユニットは、同じ内容を有してもよい。
【0187】
図22に示されるように、実施形態において、vps_video_parameter_set_idは、他のシンタックス要素による参照のためにVPSの識別を供給する。vps_video_parameter_set_idの値は、0よりも大きくてよい。
【0188】
実施形態において、vps_max_layers_minus1 plus 1は、VPSを参照する各CVSでのレイヤの最大許容数を指定してよい。
【0189】
vps_max_sublayers_minus1 plus 1は、VPSを参照する各CVSでのレイヤに存在する可能性がある時間サブレイヤの最大数を指定してよい。vps_max_sublayers_minus1 plus 1の値は、0以上6以下の範囲にあってよい。
【0190】
実施形態において、1に等しいvps_all_layers_same_num_sublayers_flagは、時間サブレイヤの数が、VPSを参照する各CVSでの全レイヤについて同じであることを指定してよい。0に等しいvps_all_layers_same_num_sublayers_flagは、VPSを参照する各レイヤでのレイヤが、同数の時間サブレイヤを有しても有さなくてもよいことを指定してよい。存在しない場合には、vps_all_layers_same_num_sublayers_flagの値は、1に等しいと推測されてよい。
【0191】
実施形態において、1に等しいvps_all_independent_layers_flagは、CVS内の全てのレイヤがインターレイヤ予測を使用せずに独立してコーディングされることを特定してよい。
【0192】
実施形態において、0に等しいvps_all_independent_layers_flagは、CVS内のレイヤの1つ以上がインターレイヤ予測を使用し得ることを特定してよい。存在しない場合には、vps_all_independent_layers_flagは、1に等しいと推測されてよい。
【0193】
実施形態において、vps_layer_id[i]は、i番目のレイヤのnuh_layer_id値を指定してよい。m及びnのいずれか2つの非負整数値について、mがnよりも小さいとき、vps_layer_id[m]の値は、vps_layer_id[n]よりも小さくなる。
【0194】
実施形態において、1に等しいvps_independent_layer_flag[i]は、インデックスiを有するレイヤがインターレイヤ予測を使用しないことを特定してよい。0に等しいvps_independent_layer_flag[i]は、インデックスiを有するレイヤがインターレイヤ予測を使用してよく、0以上i-1以下の範囲のjについてのシンタックス要素vps_direct_ref_layer_flag[i][j]がVPSに存在することを特定してよい。存在しない場合には、vps_independent_layer_flag[i]の値は、1に等しいと推測されてよい。
【0195】
実施形態において、0に等しいvps_direct_ref_layer_flag[i][j]は、インデックスjを有するレイヤが、インデックスiを有するレイヤのための直接参照レイヤでないことを特定してよい。1に等しいvps_direct_ref_layer_flag[i][j]は、インデックスjを有するレイヤが、インデックスiを有するレイヤのための直接参照レイヤであることを特定してよい。vps_direct_ref_layer_flag[i][j]が、0以上vps_max_layers_minus1以下の範囲でi及びjについて存在しない場合には、それは0に等しいと推測されてよい。vps_independent_layer_flag[i]が0に等しい場合に、vps_direct_ref_layer_flag[i][j]の値が1に等しいように、0以上i-1以下の範囲で少なくとも1つのjの値が存在してよい。
【0196】
変数NumDirectRefLayers[i]、DirectRefLayerIdx[i][d]、NumRefLayers[i]、RefLayerIdx[i][r]、及びLayerUsedAsRefLayerFlag[j]は、次のように導出されてよい:
【数1】
【0197】
vps_layer_id[i]に等しいnuh_layer_idを有するレイヤのレイヤインデックスを指定する変数GeneralLayerIdx[i]は、次のように、導出されてよい:
【数2】
【0198】
i及びjのいずれか2つの異なる値について、いずれも0以上vps_max_layers_minus1以下の範囲をとり、dependencyFlag[i][j]が1に等しいとき、i番目のレイヤに適用するchroma_fomart_idc及びbit_depth_minus8の値は夫々、j番目のレイヤに適用するchroma_fomart_idc及びbit_depth_minus8の値に等しくなることが、ビットストリームコンフォーマンスの要件であってよい。
【0199】
1に等しいmax_tid_ref_present_flag[i]は、シンタックス要素max_tid_il_ref_pics_plas1[i]が存在することを特定してよい。0に等しいmax_tid_ref_present_flag[i]は、シンタックス要素max_tid_il_ref_pics_plas1[i]が存在しないことを特定してよい。
【0200】
0に等しいmax_tid_il_ref_pics_plus1[i]は、インターレイヤ予測がi番目のレイヤの非IRAPピクチャによって使用されないことを特定してよい。0よりも大きいmax_tid_il_ref_pics_plus1[i]は、i番目のレイヤのピクチャをデコードするために、max_tid_il_ref_pics_plus1[i]-1よりも大きいTemporalIDを有するピクチャがILRPとして使用されないことを特定してよい。存在しない場合には、max_tid_il_ref_pics_plus1[i]の値は、7に等しいと推測されてよい。
【0201】
1に等しいeach_layer_is_an_ols_flagは、各OLSがただ1つのレイヤを含み、VPSを参照するCVS内の各レイヤ自体がOLSであって、含まれている1つのレイヤが唯一の出力レイヤであることを特定してよい。0に等しいeach_layer_is_an_ols_flagは、OLSが1つよりも多いレイヤを含み得ることを特定してよい。vps_max_layers_minus1が0に等しい場合に、each_layer_is_an_ols_flagの値は、1に等しいと推測されてよい。そうでない場合には、vps_all_independent_layers_flagが0に等しいとき、each_layer_is_an_ols_flagの値は、0に等しいと推測されてよい。
【0202】
0に等しいols_mode_idcは、VPSによって指定されているOLSの総数がvps_max_layers_minus1+1に等しく、i番目のOLSが0以上i以下のレイヤインデックスを有するレイヤを含み、OLSごとに、OLS内の最高レイヤのみが出力されることを特定してよい。
【0203】
1に等しいols_mode_idcは、VPSによって指定されているOLSの総数がvps_max_layers_minus1+1に等しく、i番目のOLSが0以上i以下のレイヤインデックスを有するレイヤを含み、OLSごとに、OLS内の全てのレイヤが出力されることを特定してよい。
【0204】
2に等しいols_mode_idcは、VPSによって指定されているOLSの総数が明示的にシグナリングされ、OLSごとに、出力レイヤが明示的にシグナリングされ、他のレイヤが、OLSの出力レイヤの直接又は間接参照レイヤであるレイヤであることを特定してよい。
【0205】
ols_mode_idcの値は、0以上2以下の範囲をとってよい。ols_mode_idcの値3は、ITU-T|ISO/IECによる将来の使用のためにリザーブされる。
【0206】
vps_all_independent_layers_flagが1に等しく、each_layer_is_an_ols_flagが0に等しい場合に、ols_mode_idcの値は、2に等しいと推測されてよい。
【0207】
num_output_layer_sets_minus1 plus 1は、ols_mode_idcが2に等しいときにVPSによって指定されるOLSの総数を特定してよい。
【0208】
VPSによって指定されているOLSを指定する変数TotalNumOlssは、次のように導出されてよい:
【数3】
【0209】
1に等しいols_output_layer_flag[i][j]は、vps_layer_id[j]に等しいnuh_layer_idを有するレイヤが、ols_mode_idcが2に等しいときにi番目のOLSの出力レイヤであることを特定してよい。0に等しいols_output_layer_flag[i][j]は、vps_layer_id[j]に等しいnuh_layer_idを有するレイヤが、ols_mode_idcが2に等しいときにi番目のOLSの出力レイヤではないことを特定してよい。
【0210】
i番目のOLSにおける出力レイヤの数を指定する変数NumOutputLayersInOls[i]、i番目のOLSにおけるj番目のレイヤ内のサブレイヤの数を指定する変数NumSubLayersInLayerInOLS[i][j]、i番目のOLSにおけるj番目の出力レイヤのnuh_layer_id値を指定する変数OutputLayerIdInOls[i][j]、及びk番目のレイヤが少なくとも1つのOLSで出力レイヤとして使用されるかどうかを指定する変数LayerUsedAsOutputLayerFlag[k]は、次のように導出されてよい:
【数4】
【0211】
0以上vps_max_layers_minus1以下の範囲のiの各値について、LayerUsedAsRefLayerFlag[i]及びLayerUsedAsOutputLayerFlag[i]の値は、両方とも0に等しくなくてもよい。すなわち、少なくとも1つのOLSの出力レイヤでも、いずれかの他のレイヤの直接参照レイヤでもないレイヤは存在し得ない。
【0212】
OLSごとに、出力レイヤである少なくとも1つのレイヤが存在し得る。すなわち、0以上TotalNumOlss-1以下の範囲のiの如何なる値についても、NumOutputLayersInOls[i]の値は0以上であってよい。
【0213】
i番目のOLSにおけるレイヤの数を指定する変数NumLayersInOls[i]、及びi番目のOLSにおけるj番のレイヤのnuh_layer_id値を指定する変数LayerIdInOls[i][j]は、次のように導出されてよい:
【数5】
【0214】
LayerIdInOls[i][j]に等しいnuh_layer_idを有するレイヤのOLSレイヤインデックスを指定する変数OlsLayerIdx[i][j]は、次のように導出される。
【0215】
各OLSにおける最下レイヤは、独立レイヤであってよい。すなわち、0以上TotalNumOlss-1以下の範囲内の各iについて、vps_independent_layer_flag[GeneralLayerIdx[LayerIdInOls[i][j]]]の値は1に等しくなる。
【0216】
各レイヤは、VPSによって指定されている少なくとも1つのOLSに含まれてよい。すなわち、0以上vps_max_layers_minus1以下の範囲をとるkについてのvps_layer_id[k]の1つに等しいnuh_layer_idの特定の値nuhLayerIdを有する各レイヤについて、i及びjの少なくとも一対の値が存在してよく、ここで、iは、0以上TotalNumOlss-1以下の範囲をとり、jは、0以上NumLayersInOls[i]-1以下の範囲をとり、それにより、LayerIdInOls[i][j]の値はnuhLayerIdに等しい。
【0217】
実施形態において、デコーディングプロセスは、現在のピクチャCuttPicについて、次のように作動してよい:
- PictureOutputFlagは、次のようにセットされてよい:
- 次の条件の1つが真である場合に、PictureOutputFlagは、0に等しくセットされてよい:
- 現在のピクチャがRASLであり、関連するIRAPピクチャのNoOutputBeforeRecoveryFlagが1に等しい。
- gdr_enabled_flagが1に等しく、現在のピクチャが、1に等しいNoOutputBeforeRecoveryFlagを有するGDRピクチャである。
- gdr_enabled_flagが1に等しく、現在のピクチャが、1に等しいNoOutputBeforeRecoveryFlagを有するGDRピクチャに関連し、現在のピクチャのPicOrderCntValが、関連するGDRピクチャのRpPicOrderCntValよりも小さい。
- sps_video_parameter_set_idが0よりも大きく、ols_mode_idcが0に等しく、現在のAUが、次の条件の全てを満足するピクチャPicAを含む:
- PicAが、1に等しいPictureOutputFlagを有する。
- PicAが、現在のピクチャのそれよりも大きいnuh_layer_id nuhLidを有する。
- PicAが、OLSの出力レイヤに属する(すなわち、OutputLayerIdInOls[TargetOlsIdx][0]がnuhLidに等しい)。
- sps_video_parameter_set_idが0よりも大きく、ols_mode_idcが2に等しく、ols_output_layer_flag[TargetOlsIdx][GeneralLayerIdx[nuh_layer_id]]が0に等しい。
- 真である条件がない場合には、PictureOutputFlagは、pic_output_flagに等しくセットされてよい。
【0218】
現在のピクチャの全スライスがデコードされた後、現在のデコードされたピクチャは、「短期参照用に使用」とマークされ、RefPicList[0]又はRefPicList[1]内の各ILRPエントリは、「短期参照用に使用」とマークされる。
【0219】
実施形態において、各レイヤが出力レイヤセットである場合に、PictureOutputFlagは、ols_mode_idcの値にかかわらず、pic_output_flagに等しくセットされてよい。
【0220】
実施形態において、PictureOutputFlagは、sps_video_parameter_set_idが0よりも大きく、each_layer_is_an_ols_flagが0に等しく、ols_mode_idcが0に等しく、現在のAUが、次の条件:
PicAが、1に等しいPictureOutputFlagを有する、
PicAが、現在のピクチャのそれよりも大きいnuh_layer_id nuhLidを有する、
PicAが、OLSの出力レイヤに属する(すなわち、OutputLayerIdInOls[TargetOlsIdx][0]がnuhLidに等しい)
の全てを満足するピクチャPicAを含む場合に、0に等しくセットされてよい。
【0221】
実施形態において、PictureOutputFlagは、sps_video_parameter_set_idが0よりも大きく、each_layer_is_an_ols_flagが0に等しく、ols_mode_idcが2に等しく、ols_output_layer_flag[TargetOlsIdx][GeneralLayerIdx[nuh_layer_id]]が0に等しい場合に、0に等しくセットされてよい。
【0222】
参照ピクチャリサンプリングは、コーディングされた(階層化された)ビデオシーケンス内の適応解像度変更と、同じ出力レイヤセットに属するレイヤ間の依存関係を有するレイヤにわたる空間スケーラビリティとを有効にしてよい。
【0223】
実施形態において、
図23に示されるように、sps_ref_pic_resampling_enabled_flagは、パラメータセット(例えば、シーケンスパラメータセット)でシグナリングされる、フラグsps_ref_pic_resampling_enabled_flagは、参照ピクチャリサンプリングが、SPSを参照するコーディングされたビデオシーケンス内の適応解像度変更、又はレイヤにわたる空間スケーラビリティのために使用されるか否かを示してよい。1に等しいsps_ref_pic_resampling_enabled_flagは、参照ピクチャリサンプリングが有効にされ、CLVS内のピクチャの1つ以上のスライスが参照ピクチャリストのアクティブエントリ内の異なる空間分解能を有する参照ピクチャを参照することを特定してよい。0に等しいsps_ref_pic_resampling_enabled_flagは、参照ピクチャリサンプリングが無効にされ、CLVS内のピクチャのスライスが参照ピクチャリストのアクティブエントリ内の異なる空間分解能を有する参照ピクチャを参照しないことを特定してよい。
【0224】
実施形態において、sps_ref_pic_resampling_enabled_flagが1に等しい場合に、現在のピクチャについて、異なる空間分解能を有する参照ピクチャは、現在のピクチャを含むレイヤと同じレイヤ又は異なったレイヤのどちらかに属する。
【0225】
他の実施形態では、1に等しいsps_ref_pic_resampling_enabled_flagは、参照ピクチャリサンプリングが有効にされ、CLVS内のピクチャの1つ以上のスライスが参照ピクチャリストのアクティブエントリ内の異なる空間分解能又は異なるスケーリングウィンドウを有する参照ピクチャを参照することを特定してもよい。0に等しいsps_ref_pic_resampling_enabled_flagは、参照ピクチャリサンプリングが無効にされ、CLVS内のピクチャのスライスが参照ピクチャリストのアクティブエントリ内の異なる空間分解能又は異なるスケーリングウィンドウを有する参照ピクチャを参照しないことを特定してもよい。
【0226】
実施形態において、sps_ref_pic_resampling_enabled_flagが1に等しい場合に、現在のピクチャについて、異なる空間分解能又は異なるスケーリングウィンドウを有する参照ピクチャは、現在のピクチャを含むレイヤと同じレイヤ又は異なったレイヤのどちらかに属する。
【0227】
実施形態において、sps_res_change_in_clvs_allowed_flagは、ピクチャ解像度がCLVS又はCVS内で変化するか否かを示してよい。1に等しいsps_res_change_in_clvs_allowed_flagは、ピクチャ空間分解能が、SPSを参照するCLVS内で変化し得ることを特定してよい。0に等しいsps_res_change_in_clvs_allowed_flagは、ピクチャ空間分解能が、SPSを参照する如何なるCLVS内でも変化しないことを特定してよい。存在しない場合には、sps_res_change_in_clvs_allowed_flagの値は、0に等しいと推測されてよい。
【0228】
実施形態において、sps_ref_pic_resampling_enabled_flagが1に等しく、sps_res_change_in_clvs_allowed_flagが0に等しい場合に、参照ピクチャリサンプリングは、空間スケーラビリティのためにのみ使用され、CLVS内の適応解像度変更のためには使用され得ない。
【0229】
実施形態において、sps_ref_pic_resampling_enabled_flagが1に等しく、sps_res_change_in_clvs_allowed_flagが1に等しい場合に、参照ピクチャリサンプリングは、空間スケーラビリティ及びCLVS内の適応解像度変更の両方のために使用されてよい。
【0230】
sps_ref_pic_resampling_enabled_flagが1に等しく、sps_res_change_in_clvs_allowed_flagが0に等しく、sps_video_parameter_set_idが0に等しい場合に、pps_scaling_window_explicit_signalling_flagは1に等しくなる。それは、ピクチャ解像度がCLVS又はCVS内で一定であって、参照ピクチャリサンプリングが使用される場合に、スケーリングウィンドウパラメータが、適合ウィンドウパラメータから値を推測するのではなく、明示的にシグナリングされる必要があることを意味する。
【0231】
実施形態において、sps_virtual_boundaries_present_flagは、
図23に示されるように、SPSでシグナリングされる。フラグsps_virtual_boundaries_present_flagは、仮想境界情報がSPSでシグナリングされるか否かを示してよい。
【0232】
実施形態において、sps_virtual_boundaries_present_flagは、sps_res_change_in_clvs_allowed_flagが0に等しい場合にのみ、条件付きでシグナリングされる。これは、参照ピクチャリサンプリングが使用される場合に、仮想境界情報はSPSでシグナリングされないことがあるからである。
【0233】
実施形態において、1に等しいsps_virtual_boundaries_present_flagは、仮想境界の情報がSPSでシグナリングされることを特定して良い。0に等しいsps_virtual_boundaries_present_flagは、仮想境界の情報がSPSでシグナリングされないことを特定してよい。SPSでシグナリングされる1つ又は1つよりも多い仮想境界が存在する場合に、インループフィルタリング動作は、SPSを参照するピクチャにおいて仮想境界間で無効にされる。インループフィルタリング動作は、デブロッキングフィルタ、サンプル適応オフセットフィルタ、及び適応ループフィルタ動作を含む。存在しない場合には、sps_virtual_boundaries_present_flagの値は、0に等しいと推測されてよい。
【0234】
実施形態において、sps_subpic_info_present_flagは、
図23に示されるように、SPSでシグナリングされる。フラグsps_subpic_info_present_flagは、サブピクチャパーティショニング情報がSPSでシグナリングされるか否かを示してよい。
【0235】
実施形態において、sps_subpic_info_present_flagは、sps_res_change_in_clvs_allowed_flagが0に等しい場合にのみ、条件付きでシグナリングされる。これは、参照ピクチャリサンプリングが使用される場合に、サブピクチャパーティショニング情報がSPSでシグナリングされないことがあるからである。
【0236】
実施形態において、1に等しいsps_subpic_info_present_flagは、サブピクチャ情報がCLVSについて存在し、CLVSの各ピクチャに1つ又は1つよりも多いサブピクチャが存在し得ることを特定してよい。0に等しいsps_subpic_info_present_flagは、サブピクチャ情報がCLVSについて存在せず、CLVSの各ピクチャに1つしかサブピクチャが存在しないことを特定してよい。存在しない場合には、sps_subpic_info_present_flagの値は、0に等しいと推測されてよい。
【0237】
実施形態において、pps_res_change_in_clvs_allowed_flagは、
図24に示されるように、PPSでシグナリングされてよい。PPSにおけるpps_res_change_in_clvs_allowed_flagの値は、PPSが参照するSPSにおけるsps_res_change_in_clvs_allowed_flagの値に等しくてよい。
【0238】
実施形態において、ピクチャ幅及び高さ情報は、pps_res_change_in_clvs_allowed_flagが1に等しい場合にのみ、PPSでシグナリングされてよい。pps_res_change_in_clvs_allowed_flagが0に等しい場合に、ピクチャの幅及び高さの値は、SPSでシグナリングされたピクチャの幅及び高さの最大値に等しいと推測される。
【0239】
実施形態において、pps_pic_width_in_luma_samplesは、ルーマサンプルのユニットでPPSを参照する各デコードされたピクチャの幅を指定してよい。pps_pic_width_in_luma_samplesは、0に等しいはずはなく、Max(8,MinCbSizeY)の整数倍であるべきであり、sps_pic_width_max_in_luma_samples以下であるべきである。存在しない場合には、pps_pic_width_in_luma_samplesの値は、sps_pic_width_max_in_luma_samplesに等しいと推測されてよい。sps_ref_wraparound_enabled_flagが1に等しい場合に、(CtbSizeY/MinCbSizeY+1)の値は、(pps_pic_width_in_luma_samples/MinCbSizeY-1)の値以下であるべきである、pps_pic_height_in_luma_samplesは、ルーマサンプルのユニットでPPSを参照する各デコードされたピクチャの高さを特定してよい。pps_pic_height_in_luma_samplesは、0に等しいはずはなく、Max(8,MinCbSizeY)の整数倍であるべきであり、sps_pic_height_max_in_luma_samples以下であるべきである。存在しない場合には、pps_pic_height_in_luma_samplesの値は、sps_pic_height_max_in_luma_samplesに等しいと推測されてよい。
【0240】
図25A~25Cは、エンコードされたビデオビットストリームをデコードするための例となるプロセス2500A、2500B、及び2500Cを表すフローチャートである。いくつかの実施で、
図25A~25Cの1つ以上のプロセスブロックは、デコーダ210によって実行されてよい。いくつかの実施で、
図25A~25Cの1つ以上のプロセスブロックは、エンコーダ203などの、他のデバイス又はデコーダ210とは別の若しくはデコーダ210を含むデバイスのグループによって実行されてよい。
【0241】
図25Aに示されるように、プロセス2500Aは、参照ピクチャリサンプリングがコーディングされたビデオシーケンス(CVS)に対して有効にされることを示す第1フラグを、エンコードされたビデオビットストリームから取得すること(ブロック2511)を含んでよい。実施形態において、第1フラグは、sps_ref_pic_resampling_enabled_flagに対応してよい。
【0242】
図25Aに更に示されるように、プロセス2500Aは、ピクチャ解像度がCVSで変更されるかどうかを示す第2フラグの値を決定すること(ブロック2512)を含んでもよい。実施形態において、第2フラグは、sps_res_change_in_clvs_allowed_flagに対応してよい。
【0243】
図25Aに更に示されるように、プロセス2500Aは、第2フラグの値が、ピクチャ解像度がCVSで変更されるかどうかを示しているかどうかを決定すること(ブロック2513)を含んでもよい。
【0244】
図25Aに更に示されるように、プロセス2500Aは、ピクチャ解像度がCVSで変更されることを示す第2フラグの値に基づいて(ブロック2513でYES)、空間スケーラビリティ及び適応解像度変更(ARC)のために参照ピクチャリサンプリングを使用してCVSをデコードすること(ブロック2515)を含んでもよい。
【0245】
図25Bに示されるように、プロセス2500Bは、第2フラグの値が、ピクチャ解像度がCVSで変更されるかどうかを示しているかどうかを決定すること(ブロック2523)を含んでもよい。実施形態において、プロセス2500Bのブロック2523は、プロセス2500Aのブロック2513に対応してよい。
【0246】
図25Bに更に示されるように、プロセス2500Bは、ピクチャ解像度がCVSで変更されないことを示す第2フラグの値に基づいて(ブロック2523でNO)、仮想境界情報がシグナリングされるかどうかを示す第3フラグを取得すること(ブロック2525)を含んでもよい。実施形態において、第3フラグは、sps_virtual_boundaries_present_flagに対応してよい。
【0247】
図25Bに更に示されるように、プロセス2500Bは、ピクチャ解像度がCVSで変更されることを示す第2フラグの値に基づいて(ブロック2523でYES)、第3フラグがシグナリングされなくてもよいこと(ブロック2524)を含んでもよい。
【0248】
図25Cに示されるように、プロセス2500Cは、第2フラグの値が、ピクチャ解像度がCVSで変更されるかどうかを示しているかどうかを決定すること(ブロック2533)を含んでもよい。実施形態において、プロセス2500Cのブロック2533は、プロセス2500Aのブロック2513に対応してよい。
【0249】
図25Cに更に示されるように、プロセス2500Cは、ピクチャ解像度がCVSで変更されないことを示す第2フラグの値に基づいて(ブロック2533でNO)、サブピクチャパーティショニング情報がシグナリングされるかどうかを示す第4フラグを取得すること(ブロック2535)を含んでもよい。実施形態において、第4フラグは、sps_subpic_info_present_flagに対応してよい。
【0250】
図25Cに更に示されるように、プロセス2500Cは、ピクチャ解像度がCVSで変更されることを示す第2フラグの値に基づいて(ブロック2533でYES)、第4フラグがシグナリングされなくてもよいこと(ブロック2534)を含んでもよい。
【0251】
実施形態において、プロセス2500A、2500B、及び2500Cの1つ以上のブロックは、如何なる順序でも組み合わされてよい。更に、
図25A~25Cは、プロセス2500A、2500B、及び2500Cのブロックの例を示すが、いくつかの実施で、プロセス2500A、2500B、及び2500Cは、
図25A~25Cに表されているものに比較して、追加のブロック、より少ないブロック、異なったブロック、別なふうに配置されたブロックを含んでもよい。追加的に、又は代替的に、プロセス2500A、2500B、及び2500Cのブロックの2つ以上は、並行して実行されてもよい。
【0252】
更に、提案されている方法は、プロセッシング回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実装されてもよい。一例で、1つ以上のプロセッサは、提案されている方法の1つ以上を実行するよう、非一時的なコンピュータ可読媒体に記憶されているプログラムを実行する。
【0253】
上記の技術は、コンピュータ読み出し可能な命令を使用しかつ1つ以上のコンピュータ可読媒体に物理的に記憶されているコンピュータソフトウェアとして実装可能である。例えば、
図26は、開示されている対象の特定の実施形態を実装することに適したコンピュータシステム2600を示す。
【0254】
コンピュータソフトウェアは、中央演算処理装置(CPU)、グラフィクス処理ユニット(GPU)などによって直接に又は解釈、ミクロコード実行などを通じて実行され得る命令を含むコードを生成するようにアセンブリ、コンパイル、リンキングなどのメカニズムに従い得る如何なる適切な機械コード又はコンピュータ言語によってもコーディング可能である。
【0255】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネット(Internet of Things)のためのデバイス、などを含む様々なタイプのコンピュータ又はその構成要素で実行可能である。
【0256】
コンピュータシステム2600に関して
図26に示される構成要素は、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関して如何なる制限も示唆することを意図しない。構成要素の構成は、コンピュータシステム2600の例となる実施形態において説明される構成要素のうちのいずれか1つ又は組み合わせに関して何らかの依存性又は要件も有するものとして解釈されるべきではない。
【0257】
コンピュータシステム2600は、特定のヒューマンインターフェース入力デバイスを含んでよい。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーボード、スワイプ、データグローブ操作)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず。)を通じた一人以上のユーザによる入力に反応してよい。ヒューマンインターフェースデバイスはまた、音声(例えば、発話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画カメラから取得された写真画像)、映像(例えば、二次元映像、立体視映像を含む三次元映像)など、人による意識的な入力に必ずしも直接には関係しない特定のメディアを捕捉するためにも使用され得る。
【0258】
入力ヒューマンインターフェースデバイスは、キーボード2601、マウス2602、トラックパッド2603、タッチスクリーン2610及び関連するグラフィクスアダプタ、データグローブ、ジョイスティック2605、マイク2606、スキャナ2607、カメラ2608のうちの1つ以上(夫々表されているもののうちの1つのみ)を含んでよい。
【0259】
コンピュータシステム2600は、特定のヒューマンインターフェース出力デバイスも含んでよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音響、光、及び匂い/味を通じて一人以上のユーザの感覚を刺激し得る。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン2610、データグローブ、又はジョイスティック2605による触覚フィードバック、しかし、入力デバイスとして機能しない触覚フィードバックデバイスも存在し得る。)を含んでよい。例えば、そのようなデバイスは、音声出力デバイス(例えば、スピーカ2609、ヘッドホン(図示せず。))、視覚出力デバイス(例えば、夫々タッチスクリーン入力機能の有無によらず、夫々触覚フィードバック機能の有無によらず、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、それらのうちのいくつかは、立体視出力、仮想現実メガネ(図示せず。)、ホログラフィックディスプレイ及びスモークタンク(図示せず。)などの手段により二次元視覚出力又は三次元よりも多い次元の出力を出力可能なスクリーン2610)、及びプリンタ(図示せず。)であってもよい。
【0260】
コンピュータシステム2600は、人がアクセス可能なストレージデバイス及びそれらの関連する媒体、例えば、CD/DVD又は同様の媒体2621を伴ったCD/DVD ROM/RW2620、サムドライブ2622、リムーバブルハードディスク又はソリッドステートドライブ2623、レガシー磁気媒体、例えば、テープ及びフロッピー(登録商標)ディスク(図示せず。)、専用のROM/ASIC/PLDベースデバイス、例えば、セキュリティドングル(図示せず。)、なども含むことができる。
【0261】
当業者であれば、目下開示されている対象に関連して使用されている「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を含まないことも理解するはずである。
【0262】
コンピュータシステム2600はまた、1つ以上の通信ネットワークへのインターフェースも含むことができる。ネットワークは、例えば、ワイヤレス、ワイヤライン、光であることができる。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び工業、実時間、遅延耐性、などであることができる。ネットワークの例には、イーサネット(登録商標)などのローカルエリアネットワーク、ワイヤレスLAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TVを含むTVワイヤライン又はワイヤレス広域デジタルネットワーク、CANバスを含む車両及び工場ネットワーク、などがある。特定のネットワークは、一般に、特定の汎用デジタルポート又はペリフェラルバス2649(例えば、コンピュータシステム2600のUSBポートなど)に取り付けられた外付けネットワークインターフェースアダプタ2654を必要とする。他は、一般に、後述されるようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネットネットワーク、又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)によってコンピュータシステム2600のコアに組み込まれる。例として、ネットワーク2655は、ネットワークインターフェース2654を用いてペリフェラルバス2649へ接続されてよい。これらのネットワークのいずれかを使用して、コンピュータシステム2600は他のエンティティと通信することができる。そのような通信は、単方向の受信専用(例えば、ブロードキャストTV)又は単方向の送信専用(例えば、特定のCANバスデバイスへのCANバス)であることができ、あるいは、例えば、ローカル若しくは広域デジタルネットワークを使用して他のコンピュータシステムに対して双方向であることができる。特定のプロトコル又はプロトコルスタックが、上述されたようなネットワーク及びネットワークインターフェース2654の夫々で使用可能である。
【0263】
上記のヒューマンインターフェースデバイス、人がアクセス可能なストレージデバイス、及びネットワークインターフェースは、コンピュータシステム2600のコア2640へ取り付けられ得る。
【0264】
コア2640は、1つ以上の中央演算処理装置(CPU)2641、グラフィクス処理ユニット(GPU)2642、フィールドプログラマブルゲートアレイ(FPGA)2643の形をとる専用のプログラム可能処理ユニット、特定のタスクのためのハードウェアアクセラレータ2644、などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)2645、ランダムアクセスメモリ(RAM)2646、内部のユーザアクセス不能ハードドライブなどの内蔵大容量記憶装置、SSD、など2647とともに、システムバス2648を通じて接続されてよい。いくつかのコンピュータシステムでは、システムバス2648は、追加のCPU、GPUなどによる拡張を可能にするように、1つ以上の物理プラグの形でアクセス可能であることができる。コアのシステムバス2648へ直接に又はペリフェラルバス2649を通じて、周辺機器が取り付けられ得る。ペリフェラルバスのためのアーキテクチャには、ペリフェラル・コンポーネント・インターコネクト(PCI)、USBなどがある。
【0265】
CPU2641、GPU2642、FPGA2643、及びアクセラレータ2644は、組み合わせて上記のコンピュータコードを構成することができる特定の命令を実行可能である。そのコンピュータコードは、ROM2645又はRAM2646に記憶され得る。一時データもRAM2646に記憶可能であり、一方、永続性データは、例えば、内蔵大容量記憶装置2647に記憶可能である。メモリデバイスのいずれかへの高速な格納及び読み出しは、キャッシュメモリの使用により可能にされ得る。キャッシュメモリは、1つ以上のCPU2641、GPU2642、大容量記憶装置2647、ROM2645、RAM2646などと密接に関連し得る。
【0266】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構成されたものであることができ、あるいは、それらは、コンピュータソフトウェア技術で通常の知識を有する者によく知られており利用可能である種類のものであることができる。
【0267】
例として、限定としてではなく、アーキテクチャ2600、具体的にはコア2640を有するコンピュータシステムは、1つ以上の有形なコンピュータ可読媒体において具現されているソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ、などを含む。)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、コア内蔵大容量記憶装置2647又はROM2645などの、非一時的な性質であるコア2640の特定の記憶装置に加えて、先に紹介されたユーザアクセス可能な大容量記憶装置に関連した媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア2640によって実行可能である。コンピュータ可読媒体には、特定のニーズに応じて、1つ以上のメモリデバイス又はチップが含まれ得る。ソフトウェアは、コア2640、及び、具体的には、その中のプロセッサ(CPU、GPU、FPGAなどを含む。)に、RAM2646に記憶されているデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することを含め、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。追加的に、又は代替案として、コンピュータシステムは、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに又はそれとともに動作することができる、回路内でハードウェアにより実現されるか又は別なふうに具現されるロジック(例えば、アクセラレータ2644)の結果として、機能を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶している回路(例えば、集積回路(IC))、実行のためのロジックを具現する回路、又は両方を包含することができる。本開示は、ハードウェア及びソフトウェアの如何なる適切な組み合わせも包含する。
【0268】
本開示は、いくつかの例となる実施形態について記載してきたが、本開示の範囲内にある代替、交換、及び様々な置換均等物が存在する。よって、明らかなように、当業者であれば、たとえ本明細書で明示的に図示又は説明されていないとしても、本開示の原理を具現し、よって、その精神及び範囲の中にある多数のシステム及び方法に想到可能である。