(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-07-06
(54)【発明の名称】ビデオデータをコーディングする方法、コンピュータシステム、及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/70 20140101AFI20220629BHJP
【FI】
H04N19/70
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021561945
(86)(22)【出願日】2021-03-16
(85)【翻訳文提出日】2021-10-18
(86)【国際出願番号】 US2021022482
(87)【国際公開番号】W WO2021202095
(87)【国際公開日】2021-10-07
(32)【優先日】2020-03-31
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-11-11
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チョイ,ビョンドゥ
(72)【発明者】
【氏名】ウェンジャー,ステファン
(72)【発明者】
【氏名】リィウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA31
5C159ME11
5C159PP13
5C159PP23
5C159RC11
5C159RC24
5C159RC26
5C159UA02
5C159UA05
(57)【要約】
ビデオデータをコーディングする方法、コンピュータプログラム、及びコンピュータシステムが提供される。1つ以上のサブピクチャを含むビデオデータが受け取られる。1つ以上のサブピクチャの夫々に関連したネットワーク抽象化レイヤ(NAL)ユニットタイプが、1つ以上のサブピクチャにおける混合NALユニットに対応するフラグの確認に基づき識別される。ビデオデータは、識別されたNALユニットタイプに基づきデコードされる。
【特許請求の範囲】
【請求項1】
プロセッサによって実行可能な、ビデオデータをコーディングする方法であって、
1つ以上のサブピクチャを含むビデオデータを受け取るステップと、
前記1つ以上のサブピクチャの夫々に関連したネットワーク抽象化レイヤ(NAL)ユニットタイプを、前記1つ以上のサブピクチャにおける混合NALユニットに対応するフラグの確認に基づいて識別するステップと、
前記ビデオデータを、前記識別されたNALユニットタイプに基づいてデコードするステップと
を有する方法。
【請求項2】
1に等しいHandleCraAsCvsStartFlagフラグは、現在のピクチャが現在のコーディングされたビデオシーケンスの開始点であることを示す、
請求項1に記載の方法。
【請求項3】
混合NALユニットタイプの存在と、クリーンランダムアクセスタイプを有するビデオコーディングレイヤNALユニットとに基づいて、前記HandleCraAsCvsStartFlagフラグ及び前記ビデオデータのNoOutputBeforeRecoveryFlagフラグは両方とも0に等しくセットされる、
請求項2に記載の方法。
【請求項4】
前記HandleCraAsCvsStartFlagフラグが0に等しくセットされることに基づいて、現在のサブピクチャは、コーディングされたビデオシーケンスの開始ピクチャとして扱われない、
請求項3に記載の方法。
【請求項5】
混合NALユニットタイプの存在と、クリーンランダムアクセスタイプを有するビデオコーディングレイヤNALユニットとに基づいて、前記ビデオデータに関連した先頭ピクチャが出力される、
請求項2に記載の方法。
【請求項6】
前記HandleCraAsCvsStartFlagフラグ及び前記ビデオデータのNoOutputBeforeRecoveryFlagフラグは両方とも0に等しくセットされる、
請求項5に記載の方法。
【請求項7】
混合NALユニットタイプの存在に基づいて、pps_subpic_treated_as_pic_flagフラグは1に等しくセットされる、
請求項6に記載の方法。
【請求項8】
ビデオデータをコーディングするコンピュータシステムであって、
コンピュータプログラムコードを記憶するよう構成された1つ以上のコンピュータ可読非一時的記憶媒体と、
前記コンピュータプログラムコードにアクセスするよう構成され、前記コンピュータプログラムコードによって指示されるよう動作する1つ以上のコンピュータプロセッサと
を有し、
前記コンピュータプログラムコードは、前記少なくとも1つ以上のコンピュータプロセッサによって実行される場合に、前記1つ以上のコンピュータプロセッサに、請求項1乃至7のうちいずれか一項に記載の方法を実行させる、
コンピュータシステム。
【請求項9】
ビデオデータをコーディングするコンピュータプログラムであって、
前記コンピュータプログラムは、1つ以上のコンピュータプロセッサによって実行される場合に、前記1つ以上のコンピュータプロセッサに、請求項1乃至7のうちいずれか一項に記載の方法を実行させる、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、米国特許商標庁で、2020年3月31日付けで出願された米国特許仮出願第63/003137号、及び2020年11月11日付けで出願された米国特許出願第17/095289号の優先権を主張するものであり、これらの出願は、その全文を参照により本願に援用される。
【0002】
[技術分野]
本開示は、概して、データ処理の分野に、より具体的には、ビデオエンコーディング及びデコーディングに関係がある。
【背景技術】
【0003】
動き補償付きのインターピクチャ予測を使用したビデオコーディング及びデコーディンは、数十年にわたって知られている。圧縮されていないデジタルビデオはピクチャの連続から成ることができ、各ピクチャは、例えば、1920×1080のルミナンスサンプル及び関連するクロミナンスサンプルの空間寸法を有する。ピクチャの連続は、例えば、毎秒60ピクチャ、つまり60Hzの固定又は可変のピクチャレート(俗にフレームレートとしても知られている。)を有することができる。圧縮されていないビデオは、有意なビットレート要件を有している。例えば、サンプル当たり8ビットでの1080p60 4:2:0ビデオ(60Hzのフレームレートでの1920×1080のルミナンスサンプル解像度)は、1.5Gbit/sに近いバンド幅を必要とする。そのようなビデオの1時間は、600GByte超の記憶空間を必要とする。
【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つ以上のサブピクチャを含むビデオデータを受け取るステップを含んでよい。1つ以上のサブピクチャの夫々に関連したネットワーク抽象化レイヤ(network abstraction layer,NAL)ユニットタイプが、1つ以上のサブピクチャにおける混合NALユニットに対応するフラグの確認に基づいて識別される。ビデオデータは、識別されたNALユニットタイプに基づいてデコードされる。
【0009】
他の態様に従って、ビデオデータをコーディングするコンピュータシステムが提供される。コンピュータシステムは、1つ以上のプロセッサと、1つ以上のコンピュータ読み出し可能なメモリと、1つ以上のコンピュータ読み出し可能な有形記憶デバイスと、1つ以上のメモリの少なくとも1つを介した1つ以上のプロセッサの少なくとも1つによる実行のために1つ以上の記憶デバイスの少なくとも1つに記憶されているプログラム命令とを含んでよく、これによって、コンピュータシステムは方法を実行することができる。方法は、1つ以上のサブピクチャを含むビデオデータを受け取るステップを含んでよい。1つ以上のサブピクチャの夫々に関連したネットワーク抽象化レイヤ(NAL)ユニットタイプが、1つ以上のサブピクチャにおける混合NALユニットに対応するフラグの確認に基づいて識別される。ビデオデータは、識別されたNALユニットタイプに基づいてデコードされる。
【0010】
更なる他の態様に従って、ビデオデータをコーディングするコンピュータ可読媒体が提供される。コンピュータ可読媒体は、1つ以上のコンピュータ可読記憶デバイスと、1つ以上の有形な記憶デバイスの少なくとも1つに記憶されているプログラム命令とを含んでよく、プログラム命令はプロセッサによって実行される。プログラム命令は、1つ以上のサブピクチャを含むビデオデータを受け取るステップを然るべく含んでもよい方法を実行するようプロセッサによって実行される。1つ以上のサブピクチャの夫々に関連したネットワーク抽象化レイヤ(NAL)ユニットタイプが、1つ以上のサブピクチャにおける混合NALユニットに対応するフラグの確認に基づいて識別される。ビデオデータは、識別されたNALユニットタイプに基づいてデコードされる。
【0011】
これら及び他の目的、特徴、及び利点は、添付の図面とともに読まれるべき以下の発明の詳細な説明から明らかになるだろう。図面の様々な特徴は、実寸通りではなく、図は、詳細な説明とともに当業者の理解を促す際に明りょうさを目的とする。
【図面の簡単な説明】
【0012】
【
図1】実施形態に従う通信システムの略ブロック図の概略図である。
【
図2】実施形態に従う通信システムの略ブロック図の概略図である。
【
図3】実施形態に従うデコーダの略ブロック図の概略図である。
【
図4】実施形態に従うエンコーダの略ブロック図の概略図である。
【
図5】指示されるように、先行技術又は実施形態に従ってARCパラメータをシグナリングするためのオプションの概略図である。
【
図6】実施形態に従うシンタックステーブルの例である。
【
図7】実施形態に従うコンピュータシステムの概略図である。
【
図8】適応解像度変更によるスケーラビリティのための予測構造の例である。
【
図9】実施形態に従うシンタックステーブルの例である。
【
図10】アクセスユニットごとのPOCサイクル及びアクセスユニットカウント値のパージング及びデコーディングの略ブロック図の概略図である。
【
図11】多層サブピクチャを含むビデオビットストリーム構造の概略図である。
【
図12】強化された解像度による選択されたサブピクチャの表示の概略図である。
【
図13】多層サブピクチャを含むビデオビットストリームのためのデコーディング及び表示プロセスのブロック図である。
【
図14】サブピクチャの拡張レイヤによる360度ビデオ表示の概略図である。
【
図15】サブピクチャ並びにその対応するレイヤ及びピクチャ予測構造のレイアウト情報の例である。
【
図16】局所領域の空間スケーラビリティモダリティを伴った、サブピクチャ並びにその対応するレイヤ及びピクチャ予測構造のレイアウト情報の例である。
【
図17】サブピクチャレイヤ情報のためのシンタックステーブルの例である。
【
図18】サブピクチャレイアウト情報のためのSEIメッセージのシンタックステーブルの例である。
【
図19】各出力レイヤセットについての出力レイヤ及びプロファイル/ティア/レベル情報を示すシンタックステーブルの例である。
【
図20】各出力レイヤセットについて出力レイヤモードオンを示すシンタックステーブルの例である。
【
図21】各出力レイヤセットについて各レイヤの目下のサブピクチャを示すシンタックステーブルの例である。
【
図22】サブピクチャ識別子を示すシンタックステーブルの例である。
【
図23】サブピクチャパーティショニング情報を示すシンタックステーブルの例である。
【
図24】混合NALユニットタイプ及び関連するサブピクチャパーティショニング情報を示すシンタックステーブルの例である。
【発明を実施するための形態】
【0013】
本明細書では、請求されている構造及び方法の詳細な実施形態が開示されているが、開示されている実施形態は、様々な形態で具現され得る請求されている構造及び方法の例示にすぎないことが理解され得る。これらの構造及び方法は、しかしながら、多種多様な形態で具現されてよく、本明細書で示されている例示的な実施形態に限定されると解釈されるべきではない。むしろ、それらの例示的な実施形態は、本開示が徹底的かつ完全であり、その範囲を当業者に十分に伝えるように、提供される。本明細書で、よく知られている特徴及び技術の詳細は、提示されている実施形態を不必要に不明りょうにしないように、省略されることがある。
【0014】
上述されたように、ビデオエンコーダ及びデコーダは、ほとんどの場合に、コーディングされたビデオシーケンス(CVS)について定義され一定に保たれた所与のピクチャサイズで動作する傾向があった。しかし、ピクチャは1つ以上のサブピクチャにパーティション化され得る。各サブピクチャは、1つ以上のスライスに更にパーティション化され得る。2つ以上の、独立してコーディングされたサブピクチャは、コーディングされたピクチャにマージされ、デコーダによってデコードされ、単一の出力ピクチャとして表示されてもよい。従って、2つ以上の、独立してコーディングされたピクチャがコーディングされたピクチャにマージされる場合に、いくつかのエンコーディング又はデコーディング制約を指定することが有利であり得る。
【0015】
本明細書では、様々な実施形態に従う方法、装置(システム)、及びコンピュータ可読媒体のフローチャート図及び/又はブロック図を参照して、態様が記載される。フローチャート図及び/又はブロック図の各ブロックと、フローチャート図及び/又はブロック図のブロックの組み合わせとは、コンピュータ読み出し可能なプログラム命令によって実装され得ることが理解されるだろう。
【0016】
図1は、本開示の実施形態に従う通信システム(100)の略ブロック図を表す。システム(100)は、ネットワーク(150)を介して相互接続されている少なくとも2つの端末(110、120)を含んでよい。データの一方向伝送については、第1端末(110)は、ネットワーク(150)を介した他の端末(120)への伝送のためにローカル位置でビデオデータをコーディングしてよい。第2端末(120)は、他の端末のエンコードされたビデオデータをネットワーク(150)から受信し、コーディングされたデータをデコードして、回復されたビデオデータを表示してよい。一方向データ伝送は、メディアサービングアプリケーションなどにおいて一般的であり得る。
【0017】
図1は、例えば、ビデオ会議中に、現れ得るコーディングされたビデオの双方向伝送をサポートするよう設けられた端末(130、140)の第2対を表す。データの双方向伝送については、各端末(130、140)は、ネットワーク(150)を介した他の端末への伝送のために、ローカル位置で捕捉されたビデオデータをコーディングしてよい。各端末(130、140)はまた、他の端末によって送信されたコーディングされたビデオデータを受信してもよく、コーディングされたデータをデコードしてもよく、そして、回復されたビデオデータをローカルの表示デバイスで表示してもよい。
【0018】
図1では、端末(110~140)は、サーバ、パーソナルコンピュータ、及びスマートフォンとして表され得るが、本開示の原理は、そのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤー、及び/又は専用のビデオ会議装置で用途を見出す。ネットワーク(150)は、例えば、ワイヤライン及び/又はワイヤレス通信ネットワークを含む、コーディングされたビデオデータを端末(110~140)の間で伝達する任意数のネットワークを表す。通信ネットワーク(150)は、回路交換及び/又はパケット交換チャネルにおいてデータを交換してもよい。代表的なネットワークには、電気通信網、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又はインターネットがある。本議論のために、ネットワーク(150)のアーキテクチャ及びトポロジは、以降で説明されない限りは本開示の動作に無関係であってよい。
【0019】
図2は、開示されている対象の応用例として、ストリーミング環境におけるビデオエンコーダ及びデコーダの配置を表す。開示されている対象は、例えば、ビデオ会議と、デジタルTVと、CD、DVD、メモリスティックなどを含むデジタル媒体上での圧縮されたビデオの記憶と、などを含む他のビデオ対応用途に同様に適用可能であることができる。
【0020】
ストリーミングシステムは、ビデオソース(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との関連で使用されてもよい。
【0021】
図3は、実施形態に従うビデオデコーダ(210)の機能ブロック図を表し得る。
【0022】
受信器(310)は、デコーダ(210)によってデコードされるべき1つ以上のコーディングされたビデオシーケンスを、同じ又は他の実施形態では、一度に1つのコーディングされたビデオシーケンスを、受け取ってよい。各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(312)から受け取られてよく、チャネル(312)は、エンコードされたビデオデータを記憶するストレージデバイスへのハードウェア/ソフトウェアリンクであってよい。受信器(310)は、他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助データストリームとともに、エンコードされたビデオデータを受け取ってもよく、それらは、それらの各々の使用エンティティ(図示せず。)へ転送されてよい。受信器(310)は、コーディングされたビデオシーケンスを他のデータから分離してもよい。ネットワークジッタに対抗するために、バッファメモリ(315)が受信器(310)とエントロピデコーダ/パーサ(320)(以降「パーサ」)との間に結合されてもよい。受信器(310)が十分なバンド幅及び可制御性の記憶/転送デバイスから、又はアイソシンクロナス(isosynchronous)ネットワークからデータを受信しているときに、バッファ(315)は必要とされなくてもよく、あるいは、小さくてよい。インターネットなどのベストエフォートのパケットネットワークでの使用のために、バッファ(315)は必要とされる場合があり、比較的に大きくかつ適応サイズであることができる。
【0023】
ビデオデコーダ(210)は、エントロピコーディングされたビデオシーケンスからシンボル(321)を再構成するためのパーサ(320)を含んでよい。それらのシンボルのカテゴリは、デコーダ(210)の動作を管理するために使用される情報と、潜在的に、
図3で表されるように、デコーダの内部部分ではないがデコーダへ結合され得るディスプレイ(212)などのレンダリングデバイスを制御するための情報とを含む。レンダリングデバイスのための制御情報は、SEI(Supplementary Enhancement Information)メッセージ又はVUI(Video Usability Information)パラメータセットフラグメント(図示せず。)の形をとってよい。パーサ(320)は、受け取られたコーディングされたビデオシーケンスをパース/エントロピデコードしてよい。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存による又はよらない算術コーディング、などを含む、当業者によく知られている原理に従うことができる。パーサ(320)は、コーディングされたビデオシーケンスから、ビデオデコーダにおけるピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータの組を、そのグループに対応する少なくとも1つのパラメータに基づいて抽出してよい。サブグループは、グループ・オブ・ピクチャ(Groups of Pictures,GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(Coding Units,CU)、ブロック、変換ユニット(Transform Units,TU)、予測ユニット(Prediction Units,PU)、などを含むことができる。エントロピデコーダ/パーサはまた、変換係数などのコーディングされたビデオシーケンス情報から、量子化パラメータ値、動きベクトル、なども抽出してよい。
【0024】
パーサ(320)は、シンボル(321)を生成するために、バッファ(315)から受け取られたビデオシーケンスに対してエントロピデコーディング/パージング動作を実行してもよい。
【0025】
シンボル(321)の再構成は、コーディングされたビデオピクチャ又はその部分(例えば、インター及びイントラピクチャ、インター及びイントラブロック)のタイプ及び他の因子に応じて多種多様なユニットを有することができる。どのユニットが含まれるか、及びそれらがどのように含まれるかは、コーディングされたビデオシーケンスからパーサ(320)によってパースされたサブグループ制御情報によって制御され得る。パーサ(320)と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明りょうさのために表されていない。
【0026】
既に述べられた機能ブロックを超えて、デコーダ210は、概念的に、以下で説明される多数の機能ユニットに細分され得る。商業上の制約の下で動作する実際の実施では、それらのユニットの多くが互いに密に相互作用し、少なくとも部分的に互いに組み込まれ得る。しかし、開示されている対象を説明することを目的として、以下での機能ユニットへの概念的細分は適切である。
【0027】
第1ユニットは、スケーラ/逆変換ユニット(351)である。スケーラ/逆変換ユニット(351)は、パーサ(320)からシンボル(321)として、量子化された変換係数とともに、使用するために変換するもの、ブロックサイズ、量子化係数、量子化スケーリングマトリクスなどを含む制御情報を受け取る。スケーラ/逆変換ユニット(351)は、アグリゲータ(355)へ入力することができるサンプル値を含むブロックを出力することができる。
【0028】
いくつかの場合に、スケーラ/逆変換ユニット(351)の出力サンプルは、イントラコーディングされたブロック、すなわち、前に再構成されたピクチャからの予測情報を使用しておらず、現在のピクチャの前に再構成された部分からの予測情報を使用することができるブロック、に関係することができる。そのような予測情報は、イントラピクチャ予測ユニット(352)によって供給され得る。いくつかの場合に、イントラピクチャ予測ユニット(352)は、現在の(部分的に再構成された)ピクチャ(358)からフェッチされた周囲の既に再構成された情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成する。アグリゲータ(355)は、いくつかの場合に、サンプルごとに、イントラ予測ユニット(352)が生成した予測情報を、スケーラ/逆変換ユニット(351)によって供給される出力サンプル情報に加える。
【0029】
他の場合では、スケーラ/逆変換ユニット(351)の出力サンプルは、インターコーディングされた、そして潜在的に動き補償されたブロックに関係することができる。そのような場合に、動き補償予測ユニット(353)は、予測のために使用されるサンプルをフェッチするよう参照ピクチャメモリ(357)にアクセスすることができる。フェッチされたサンプルを、ブロックに関係するシンボル(321)に従って、動き補償した後に、それらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(355)によって、スケーラ/逆変換ユニットの出力(この場合に、残差サンプル又は残差信号と呼ばれる。)に加えられ得る。動き補償予測ユニットが予測サンプルをフェッチする参照ピクチャメモリ内のアドレスは、動きベクトルによって制御され得る。動きベクトルは、例えば、X、Y及び参照ピクチャコンポーネントを有することができるシンボル(321)の形で動き補償予測ユニットが利用することができるものである。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリからフェッチされるサンプル値の補間や、動きベクトル予測メカニズムなどを含むこともできる。
【0030】
アグリゲータ(355)の出力サンプルは、ループフィルタユニット(356)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、インループフィルタ技術を含むことができる。この技術は、コーディングされたビデオビットストリームに含まれており、パーサ(320)からのシンボル(321)としてループフィルタユニット(356)に利用可能にされたパラメータによって制御されるが、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(デコーディング順序において)前の部分のデコーディング中に得られたメタ情報にも応答することができ、更には、前に構成されたループフィルタ処理されたサンプル値に応答することができる。
【0031】
ループフィルタユニット(356)の出力は、レンダーデバイス(212)へ出力され、更には、将来のインターピクチャ予測における使用のために参照ピクチャメモリ(357)に記憶され得るサンプルストリームであることができる。
【0032】
特定のコーディングされたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用され得る。コーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(320)によって)参照ピクチャとして識別されると、現在の参照ピクチャ(358)が参照ピクチャメモリ(357)の部分になることができ、未使用の現在ピクチャメモリは、後続のコーディングされたピクチャの再構成を開始する前に再割り当てされ得る。
【0033】
ビデオデコーダ(210)は、ITU-T Rec. H.265などの規格で文書化されることがある所定のビデオ圧縮技術に従ってデコーディング動作を実行してもよい。コーディングされたビデオシーケンスは、それが、ビデオ圧縮技術文書又は規格で、具体的にはその中のプロファイル文書で定められているビデオ圧縮技術又は規格のシンタックスに従うという意味で、使用中のビデオ圧縮技術又は規格によって規定されたシンタックスに従い得る。また、コーディングされたビデオシーケンスの複雑さは、ビデオ圧縮技術又は規格のレベルによって定義された境界内にあることが、順守のために必要である。いくつかの場合に、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、メガサンプル/秒で測定される。)、最大参照ピクチャサイズ、などを制限する。レベルによって設定された制限は、いくつかの場合に、仮想リファレンスデコーダ(Hypothetical Reference Decoder,HRD)仕様及びコーディングされたビデオシーケンスにおいて通知されるHRDバッファ管理のためのメタデータを通じて更に制限され得る。
【0034】
実施形態において、受信器(310)は、エンコードされたビデオとともに、追加の(冗長な)データを受け取ってもよい。追加のデータは、コーディングされたビデオシーケンスの部分としても含まれてもよい。追加のデータは、ビデオデコーダ(210)によって、データを適切にデコードするために及び/又は原ビデオデータをより正確に再構成するために使用されてもよい。追加のデータは、例えば、時間、空間、又はSNR拡張レイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正符号、などの形をとることができる。
【0035】
図4は、本開示の実施形態に従うビデオエンコーダ(203)の機能ブロック図であってよい。
【0036】
エンコーダ(203)は、エンコーダ(203)によってコーディングされるべきビデオ画像を捕捉し得るビデオソース(201)(エンコーダの部分ではない。)からビデオサンプルを受け取ってよい。
【0037】
ビデオソース(201)は、任意の適切なビットデプス(例えば、8ビット、10ビット、12ビットなど)、任意の色空間(例えば、BT.601 YCrCB、RGBなど)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形で、エンコーダ(203)によってコーディングされるべきソースビデオシーケンスを供給してよい。メディアサービングシステムでは、ビデオソース(201)は、前に準備されたビデオを記憶しているストレージデバイスであってもよい。ビデオ会議システムでは、ビデオソース(201)は、ローカル画像情報をビデオシーケンスとして捕捉するカメラであってもよい。ビデオデータは、順に見られる場合に動きを授ける複数の個別ピクチャとして供給されてもよい。ピクチャ自体は、ピクセルの空間アレイとして編成されてよく、各ピクセルは、使用中のサンプリング構造、色空間、などに依存する1つ以上のサンプルを有することができる。当業者であれば、ピクセルとサンプルとの間の関係を容易に理解することができる。本明細書は、以下、サンプルに焦点を当てる。
【0038】
実施形態に従って、エンコーダ(203)は、実時間において又は用途によって必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャを、コーディングされたビデオシーケンス(443)へとコーディング及び圧縮してよい。適切なコーディング速度を強いることは、コントローラ(450)の一機能である。コントローラはまた、以下で記載されるような他の機能ユニットを制御してもよく、それらのユニットへ機能的に結合されてもよい。結合は明りょうさのために表されていない。コントローラによってセットされるパラメータには、レート制御に関連したパラメータ(ピクチャスキップ、量子化器、レートひずみ最適化技術のラムダ値、など)、ピクチャサイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲、などが含まれ得る。当業者は、コントローラ(450)の他の機能を、それらが特定のシステム設計のために最適化されたビデオエンコーダ(203)に関係し得るということで、容易に識別することができる。
【0039】
いくつかのビデオエンコーダは、当業者が「コーディングループ」として容易に実現するものにおいて動作する。過度に単純化された記載として、コーディングループは、エンコーダ(430)(以降「ソースコーダ」)のエンコーディング部分(コーディングされるべき入力ピクチャと、参照ピクチャとに基づいて、シンボルを生成することに関与する。)と、(シンボルとコーディングされたビデオビットストリームとの間の如何なる圧縮も、開示されている対象において考えられているビデオ圧縮技術で可逆であるときに)(遠隔の)デコーダも生成することになるサンプルデータを生成するようシンボルを再構成する、エンコーダ(203)に埋め込まれた(ローカルの)デコーダ(433)とから成ることができる。その再構成されたサンプルストリームは、参照ピクチャメモリ(434)へ入力される。シンボルストリームのデコーディングは、デコーダの場所(ローカル又は遠隔)に依存しないビットパーフェクト(bit-exact)な結果をもたらすので、参照ピクチャメモリのコンテンツも、ローカルのエンコーダと遠隔のエンコーダとの間でビットパーフェクトである。すなわち、エンコーダの予測部分は、デコーダがデコーディング中に予測を使用するときに“見る”ことになるのとまさに同じサンプル値を参照ピクチャサンプルとして“見る”。参照ピクチャのシンクロニシティ(及び、例えば、チャネルエラーのために、シンクロニシティが維持され得ない場合に、結果として生じるドリフト)のこの基本原理は、当業者によく知られている。
【0040】
“ローカル”のデコーダ(433)の動作は、
図3とともに既に詳細に上述されている、“遠隔”のデコーダ(210)と同じであることができる。簡単に
図3も参照すると、しかしながら、シンボルが利用可能であり、エントロピコーダ(445)及びパーサ(320)によるコーディングされたビデオシーケンスへのシンボルのデコーディングが可逆であることができるので、チャネル(312)、受信器(310)、バッファ(315)、及びパーサ(320)を含むデコーダ(210)のエントロピデコーディング部分は、ローカルのデコーダ(433)において完全には実装されなくてもよい。
【0041】
この時点で行われ得る観察は、デコーダに存在するパージング/エントロピデコーディングを除く如何なるデコーダ技術も必然的に、対応するエンコーダにおいて実質的に同じ機能形態で存在する必要があることである。この理由により、開示されている対象は、デコーダの動作に焦点を当てる。エンコーダ技術の説明は、それらが、包括的に記載されているデコーダ技術の逆であるということで、省略可能である。特定の範囲においてのみ、より詳細な説明が必要とされ、以下で与えられている。
【0042】
その動作の部分として、ソースコーダ(430)は、動き補償された予測コーディングを実行してよい。これは、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の前にコーディングされたフレームを参照して予測的に入力ピクチャをコーディングする。このようにして、コーディングエンジン(432)は、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックと入力ピクチャのピクセルブロックとの間の差をコーディングする。
【0043】
ローカルのビデオデコーダ(433)は、ソースコーダ(430)によって生成されたシンボルに基づいて、参照フレームとして指定され得るフレームのコーディングされたビデオデータをデコードしてよい。コーディングエンジン(432)の動作は、有利なことに、不可逆プロセスであってよい。コーディングされたビデオデータがビデオデコーダ(
図4には図示せず。)でデコードされ得るとき、再構成されたビデオシーケンスは、通常は、いくらかのエラーを伴ったソースビデオシーケンスの複製であり得る。ローカルのビデオデコーダ(433)は、参照フレームに対してビデオデコーダによって実行され得るデコーディングプロセスを再現し、再構成された参照フレームを参照ピクチャキャッシュ(434)に格納されるようにしてよい。このように、エンコーダ(203)は、(伝送エラーなしで)遠端のビデオデコーダによって取得されることになる再構成された参照フレームと共通の内容を有している再構成された参照フレームのコピーをローカルで記憶し得る。
【0044】
予測器(435)は、コーディングエンジン(432)の予測探索を実行してよい。すなわち、新しいピクチャがコーディングされるために、予測器(435)は、その新しいピクチャのための適切な予測基準となり得る参照ピクチャ動きベクトル、ブロック形状、などの特定のメタデータ又は(候補参照ピクセルブロックとしての)サンプルデータを参照ピクチャメモリ(434)から探してよい。予測器(435)は、適切な予測基準を見つけるためにサンプルブロック・バイ・ピクセルブロックベース(sample block-by-pixel block basis)で動作してよい。いくつかの場合に、予測器(435)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(434)に記憶されている複数の参照ピクチャから引き出された予測基準を有してよい。
【0045】
コントローラ(450)は、例えば、ビデオデータをエンコードするために使用されるパラメータ及びサブグループパラメータの設定を含め、ビデオコーダ(430)のコーディング動作を管理してもよい。
【0046】
上記の全ての機能ユニットの出力は、エントロピコーダ(445)においてエントロピコーディングを受けてよい。エントロピコーダは、例えば、ハフマンコーディング、可変長コーディング、算術コーディングなどとして当業者に知られている技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを、コーディングされたビデオシーケンスへと変換する。
【0047】
送信器(440)は、エントロピコーダ(445)によって生成されたコーディングされたビデオシーケンスを、通信チャネル(460)を介した伝送のために準備するようにバッファリングしてよい。通信チャネル(460)は、エンコードされたビデオデータを記憶するストレージデバイスへのハードウェア/ソフトウェアリンクであってよい。送信器(440)は、ビデオコーダ(430)からのコーディングされたビデオデータを、送信されるべき他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリーム(ソースは図示せず)とマージしてもよい。
【0048】
コントローラ(450)は、エンコーダ(203)の動作を管理してもよい。コーディング中、コントローラ(450)は、各々のピクチャに適用され得るコーディング技術に影響を及ぼす可能性がある特定のコーディングされたピクチャタイプを各コーディングされたピクチャに割り当ててよい。例えば、ピクチャはしばしば、次のフレームタイプのうちの1つとして割り当てられてよい。
【0049】
イントラピクチャ(Intra Picture)(Iピクチャ)は、予測のソースとしてシーケンス内の如何なる他のピクチャも使用せずにコーディング及びデコードされ得るピクチャであってよい。いくつかのビデオコーデックは、例えば、独立したデコーダリフレッシュ(Independent Decoder Refresh,IDR)ピクチャを含む種々のタイプのイントラピクチャを許容する。当業者であれば、Iピクチャのそのような変形並びにそれらの各々の応用及び特徴を知っている。
【0050】
予測ピクチャ(Predictive Picture)(Pピクチャ)は、各ブロックのサンプル値を予測するために多くても1つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及びデコードされ得るピクチャであってよい。
【0051】
双方向予測ピクチャ(Bi-directionally Predictive Picture)(Bピクチャ)は、各ブロックのサンプル値を予測するために多くても2つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及びデコードされ得るピクチャであってよい。同様に、多重予測ピクチャ(multiple-predictive picture(s))は、単一のブロックの再構成のために2つよりも多い参照ピクチャ及び関連するメタデータを使用することができる。
【0052】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、夫々、4×4、8×8、4×8、又は16×16のサンプルのブロック)に空間的に細分され、ブロックごとにコーディングされてよい。ブロックは、ブロックの各々のピクチャに適用されているコーディング割り当てによって決定される他の(既にコーディングされた)ブロックを参照して予測的にコーディングされてよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてよく、あるいは、それらは、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、非予測的に、あるいは、1つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、コーディングされてよい。Bピクチャのブロックは、非予測的に、あるいは、1つ又は2つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、コーディングされてよい。
【0053】
ビデオコーダ(203)は、ITU-T Rec. H.265のような所定のビデオコーディング技術又は規格に従ってコーディング動作を実行してもよい。その動作中に、ビデオコーダ(203)は、入力ビデオシーケンスにおける時間及び空間冗長性を利用する予測コーディング動作を含む様々な圧縮動作を実行してもよい。従って、コーディングされたビデオデータは、使用されているビデオコーディング技術又は規格によって定められているシンタックスに従い得る。
【0054】
実施形態において、送信器(440)は、エンコードされたビデオとともに追加のデータを送信してもよい。ビデオコーダ(430)は、コーディングされたビデオシーケンスの部分としてそのようなデータを含めてよい。追加のデータは、時間/空間/SNR拡張レイヤ、冗長ピクチャ及びスライスなどの他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメント、などを有してよい。
【0055】
開示されている態様の特定の態様について更に詳細に記載する前に、本明細書の残りで参照されることになる2、3の項目が紹介される。
【0056】
以降、サブピクチャは、いくつかの場合に、意味的にグループ分けされており、変更された解像度で独立してコーディングされ得るサンプル、ブロック、マクロブロック、コーディングユニット、又は同様のエンティティの長方形配置を指す。1つ以上のサブピクチャは、ピクチャを形成してよい。1つ以上のコーディングされたサブピクチャは、コーディングされたピクチャを形成してよい。1つ以上のサブピクチャは、ピクチャにまとめられてもよく、1つ以上のサブピクチャは、ピクチャから抽出されてもよい。特定の環境で、1つ以上のコーディングされたサブピクチャは、同じレベルにトランスコーディングせずに圧縮領域で、コーディングされたピクチャにまとめられてもよく、同じ又は他の場合には、1つ以上のコーディングされたサブピクチャは、圧縮領域で、コーディングされたサブピクチャから抽出されてもよい。
【0057】
以降、適応解像度変更(Adaptive Resolution Change,ARC)は、コーディングされたビデオシーケンス内のピクチャ又はサブピクチャの解像度の変化を、例えば、参照ピクチャリサンプリングによって、可能にするメカニズムを指す。ARCパラメータは、以降、適応解像度変更を実行するために必要な制御情報を指し、例えば、フィルタパラメータ、スケーリング係数、出力及び/又は参照ピクチャの解像度、様々な制御フラグ、などを含んでもよい。
【0058】
上記の説明は、単一の、意味的に独立したコーディングされたビデオピクチャのコーディング及びデコーディングに焦点を当てられている。独立したARCパラメータによる複数のサブピクチャのコーディング/デコーディングの意味合い及びその暗黙的な更なる複雑性について記載する前に、ARCパラメータのシグナリングについてのオプションが説明されるべきである。
【0059】
図5を参照すると、ARCパラメータのシグナリングについてのいくつかの新規のオプションが示されている。オプションの夫々により述べられているように、それらは、コーディング効率、複雑性、及びアーキテクチャ視点から特定の利点及び特定の欠点を有している。ビデオコーディング規格又は技術は、ARCパラメータのシグナリングのために、これらのオプション、又は先行技術から知られているオプション、のうちの1つ以上を選択してよい。オプションは、相互排他的でなくてよく、考えられる限りは、アプリケーションニーズ、関連する標準技術、又はエンコーダの選択に基づいて交換されてもよい。
【0060】
ARCパラメータの分類には、次が含まれ得る。
【0061】
・X及びY次元で別々であるか又は結合されているアップサンプル及び/又はダウンサンプル係数
【0062】
・所与の数のピクチャについて一定速度のズームイン/アウトを示す時間次元を追加されたアップサンプル及び/又はダウンサンプル係数
【0063】
上記の2つのうちのどちらも、その係数を含む表を指し示し得る1つ以上の、おそらくは短いシンタックス要素のコーディングを伴ってよい。
【0064】
・組み合わせて又は別々に、入力ピクチャ、出力ピクチャ、参照ピクチャ、コーディングされたピクチャのサンプル、ブロック、マクロブロック、CU、又は任意の他の適切な粒度の単位での、X又はY次元における解像度。1つよりも多い解像度がある場合に(例えば、入力ピクチャについて1つと参照ピクチャについて1つ)、特定の場合に、ひと組の値が他の組の値から推測されてもよい。解像度は、例えば、フラグの使用によって、ゲーティング(gated)されてもよい。より詳細な例については、以下を参照されたい。
【0065】
・H.263 Annex Pで使用されるものと同種であって、先と同じく、上述された適切な粒度にある「ワーピング」(Warping)座標。H.263 Annex Pは、そのようなワーピング座標をコーディングするための1つの効率的な方法を定義するが、他の、潜在的により効率的な方法も、考えられる限りは、考案されてよい。例えば、Annex Pのワーピング座標の可変長リバーシブルな「ハフマン」スタイルコーディングは、適切な長さのバイナリコーディングで置換されてもよく、このとき、バイナリコードワードの長さは、例えば、最大ピクチャサイズから導出されて、場合により、最大ピクチャサイズの境界の外での「ワーピング」を可能にするために、特定の係数を乗じられかつ特定の値でオフセットされてもよい。
【0066】
・アップサンプル及び/又はダウンサンプルフィルタパラメータ。最も容易な場合において、アップサンプリング及び/又はダウンサンプリングのための単一のフィルタしか存在しなくてもよい。しかし、特定の場合には、フィルタ設計で更なる柔軟性を可能にすることが有利であることがあり、それは、フィルタパラメータのシグナリングを必要とし得る。そのようなパラメータは、とり得るフィルタ設計のリストにおいてインデックスにより選択されてよく、フィルタは、(例えば、適切なエントロピコーディング技術を用いてフィルタ係数のリストを通じて)完全に指定されてもよく、フィルタは、上記のメカニズムのいずれかなどに従ってシグナリングされるアップサンプル及び/又はダウンサンプル比により暗黙的に選択されてもよい。
【0067】
以降、説明は、コードワードにより示される有限なアップサンプル及び/又はダウンサンプル係数の組(同じ係数がX及びYの両方の次元で使用される。)のコーディングを前提とする。そのコードワードは、有利なことに、例えば、H.264及びH.265などのビデオコーディング規格で特定のシンタックス要素に共通なExt-Golombコードを使用することによって、可変長コーディングされてよい。アップサンプル及び/又はダウンサンプル係数への値の1つの適切なマッピングは、例えば、以下の表に従うことができる。
【表1】
【0068】
多くの類似したマッピングが、ビデオ圧縮技術又は規格で利用可能なアップ及びダウンスケールメカニズムの適用のニーズ及び能力に従って考案され得た。表は、より多くの値に拡張されてもよい。値はまた、Ext-Golombコード以外のエントロピコーディングメカニズムによって、例えば、バイナリコーディングを用いて、表されてもよい。それは、リサンプリング係数が、例えば、MANEによって、ビデオ処理エンジン(第1に、エンコーダ及びデコーダ)自体の外で重要である場合に、特定の利点を有し得る。解像度変更が不要である(推定上)最も一般的な場合については、短い(例えば、上記の表では、単一ビットのみ)Ext-Golombコードが選択可能であることが留意されるべきである。それは、最も一般的な場合のためにバイナリコードを使用することよりもコーディング効率が優れている可能性がある。
【0069】
表中のエントリの数及びそれらのセマンティクスは、完全に又は部分的に設定可能であってよい。例えば、表の基本概要は、シーケンス又はデコーダパラメータセットなどの「ハイ」パラメータセットで運ばれてよい。代替的に、又は追加的に、1つ以上のそのような表は、ビデオコーディング技術又は規格で定義されてもよく、例えば、デコーダ又はシーケンスパラメータセットにより選択されてもよい。
【0070】
以下では、上述されたようにコーディングされているアップサンプル及び/又はダウンサンプル係数(ARC情報)がビデオコーディング技術又は標準シンタックスにどのように含まれ得るかが記載される。同様の考えは、アップサンプル及び/又はダウンサンプルフィルタを制御する1つ又は数個のコードワードに当てはまる。比較的大量のデータがフィルタ又は他のデータ構造のために必要とされ得る場合に関する説明については以下を参照されたい。
【0071】
H.263 Annex Pは、4つのワーピング座標の形でARC情報(502)をピクチャヘッダ(501)内に、具体的には、H.263 PLUSPTYPE(503)ヘッダ拡張に含める。これは、(a)利用可能なピクチャヘッダが有り、かつ、(b)ARC情報の頻繁な変化が期待される、場合に、理にかなった設計選択であることができる。しかし、H.263スタイルシグナリングを使用する場合のオーバーヘッドは極めて高くなる可能性があり、スケーリング係数は、ピクチャヘッダが過渡的な性質を有し得るので、ピクチャ境界に付随しないことがある。
【0072】
上記のJVCET-M135-v1は、シーケンスパラメータセット(507)の中に位置している目標解像度を含む表(506)をインデックス化する、ピクチャパラメータセット(504)に位置しているARC参照情報(505)(インデックス)を含む。シーケンスパラメータセット(507)における表(506)でのとり得る解像度の配置は、著者による口頭の声明によれば、能力交換(capability exchange)中に相互運用ネゴシエーションポイント(interoperability negotiation point)としてSPS(507)を使用することによって正当化され得る。解像度は、適切なピクチャパラメータセット(504)を参照することによってピクチャごとに表(506)の値によってセットされた限界内で変化することができる。
【0073】
依然として
図5を参照すると、次の追加オプションは、ARC情報をビデオビットストリームで運ぶために存在してよい。これらのオプションの夫々は、上記の既存技術に対して特定の利点を有する。オプションは、同時に、同じビデオコーディング技術又は規格において存在してもよい。
【0074】
実施形態において、リサンプリング(ズーム)係数などのARC情報(509)は、スライスヘッダ、GOBヘッダ、タイルヘッダ、又はタイルグループヘッダ(以降、タイルグループヘッダ)(508)に存在してよい。これは、例えば、上述されたような、数ビットの単一の可変長ue(v)又は固定長コードワードのように、ARC情報が小さい場合に、適切であることができる。タイルグループヘッダで直接にARC情報を有することは、ARC情報が、例えば、ピクチャ全体ではなく、そのタイルグループによって表されるサブピクチャに適用可能であり得るという付加的な利点を有している。以下も参照されたい。更には、たとえビデオ圧縮技術又は規格が(例えば、タイルグループに基づいた適応的な解像度変化とは対照的に)ピクチャ全体にのみ適応可能な解像度変化を企図するとしても、ARC情報をタイルグループヘッダに、それをH263スタイルのピクチャヘッダに置くことにより置くことは、誤り耐性の観点から特定の利点を有する。
【0075】
同じ又は他の実施形態において、ARC情報(512)自体が、例えば、ピクチャパラメータセット、ヘッダパラメータセット、タイルパラメータセット、適応パラメータセット、などのような適切なパラメータセット(511)(表されているのは、適応パラメータセット)に存在してもよい。そのパラメータセットの範囲は、有利なことに、ピクチャよりも大きくならず、例えば、タイルグループであることができる。ARC情報の使用は、関連するパラメータセットの活性化を通じて潜在してもよい。例えば、ビデオコーディング技術又は規格がピクチャベースのARCのみを企図する場合に、ピクチャパラメータセット又は同等物が適切であり得る。
【0076】
同じ又は他の実施形態において、ARC参照情報(513)は、タイルグループヘッダ(514)又は類似したデータ構造に存在してもよい。その参照情報(513)は、単一のピクチャを越える範囲でパラメータセット(516)において利用可能なARC情報(515)のサブセット、例えば、シーケンスパラメータセット又はデコーダパラメータセットを参照することができる。
【0077】
JVET-M0135-v1で使用されるタイルグループヘッダ、PPS、SPSからのPPSの追加レベルの間接的な暗黙的活性は、シーケンスパラメータセットと同様に、ピクチャパラメータセットが能力ネゴシエーション又はアナウンスのために使用され得る(RFC3984などの特定の標準規格では使用されている)ということで、不必要であるように見える。しかし、ARC情報が、例えば、タイルグループによっても表されるサブピクチャに適用可能であるべき場合には、適応パラメータセット又はヘッダパラメータセットなどの、タイルグループに限定された活性化範囲を有するパラメータセットは、より良い選択であり得る。また、ARC情報が無視できるサイズよりも大きく、例えば、多数のフィルタ係数などのフィルタ制御情報を含む場合には、パラメータは、そのような設定が同じパラメータセットを参照することによって将来のピクチャ又はサブピクチャによって再利用され得るということで、コーディング効率の観点から、直接にヘッダ(508)を使用することによりも良い選択であり得る。
【0078】
複数のピクチャに及ぶ範囲でシーケンスパラメータセット又は他のより高いパラメータセットを使用する場合に、特定の考慮事項が適用され得る。
【0079】
1.ARC情報テーブル(516)を保持するパラメータセットは、いくつかの場合に、シーケンスパラメータセットであることができるが、他の場合には、有利なことに、デコーダパラメータセットであることができる。デコーダパラメータセットは、複数のCVS(つまり、コーディングされたビデオストリーム)の活性化範囲、すなわち、セッション開始からセッション破棄までの全てのコーディングされたビデオビットを有することができる。そのような範囲は、起こり得るARC因子は、場合によりハードウェアで実装されるデコーダ機構である可能性があり、ハードウェア機構は、如何なるCVS(少なくともいくつかのエンターテイメントシステムでは、1秒以下のグループ・オブ・ピクチャである)によっても変化しない傾向があるため、より適切であり得る。とは言うものの、シーケンスパラメータにテーブルを置くことは、特に以下の2.に関連して、本明細書で記載される配置オプションに明示的に含まれる。
【0080】
2.ARC参照情報(513)は、有利なことに、JVCET-M0135-v1で見られるようにピクチャパラメータセットにではなく、ピクチャ/スライスタイル/GOB/タイルグループヘッダ(以降、タイルグループヘッダ)(514)に直接に置かれてもよい。その理由は次の通りである・エンコーダがピクチャパラメータセット内の単一の値、例えば、ARC参照情報を変更したい場合に、それは、新しいPPSを生成し、その新しいPPSを参照すべきである。ARC参照情報のみが変化し、他の情報、例えば、PPS内の量子化マトリクス情報はそのままである、とする。そのような情報は、かなりのサイズになる可能性があり、新しいPPSを完成させるには再送される必要がある。ARC参照情報は、テーブルへのインデックス(513)などの、変更される唯一の値である単一のコードワードであり得るから、全ての、例えば、量子化マトリクス情報を再送することは、面倒かつ無駄である。これまでのところ、JVET-M0135-v1で提案されているように、PPSを通じた間接参照を回避することは、コーディング効率の観点から、かなり優れている可能性がある。同様に、ARC参照情報をPPSに置くことには、ピクチャパラメータセットの活性化の範囲がピクチャであるということで、ARC参照情報(513)によって参照されるARC情報がサブピクチャにではなく不必要にピクチャ全体に適用される必要があるという更なる欠点がある。
【0081】
同じ又は他の実施形態において、ARCパラメータのシグナリングは、
図6で説明されている詳細な例に従うことができる。
図6は、少なくとも1993年以降にビデオコーディング標準規格で使用された表現でシンタックスダイアグラムを表す。そのようなシンタックスダイアグラムの表記法は、C言語プログラミングに大体従う。太字体の行は、ビットストリームに存在するシンタックス要素を示し、太字体でない行は、しばしば、制御フロー又は変数の設定を示す。
【0082】
ピクチャの(場合により長方形の)部分に適用可能なヘッダの例となるシンタックス構造としてのタイルグループヘッダ(601)は、可変長のExp-Golombコーディングされたシンタックス要素dec_pic_size_idx(602)(太字で表示)を条件付きで含むことができる。タイルグループヘッダにおけるこのシンタックス要素の存在は、適応解像度(603)の使用時にゲーティングされ得る。ここで、フラグの値は太字で表されておらず、これは、フラグが、シンタックスダイアグラムで発生する時点でビットストリームに存在することを意味する。適応解像度がこのピクチャ又はその部分に対して使用中であるか否かは、ビットストリーム内又は外の如何なる高位シンタックス構造でもシグナリングされ得る。示されている例では、適応解像度は、以下で説明されるようにシーケンスパラメータセットでシグナリングされる。
【0083】
依然として
図6を参照すると、シーケンスパラメータセット(610)の抜粋も示されている。示されている最初のシンタックス要素は、adaptive_pic_resolution_change_flag(611)である。真である場合に、そのフラグは、適応解像度の使用を示すことができ、翻って、特定の制御情報を必要とし得る。例において、そのような制御情報は、パラメータセット(612)及びタイルグループヘッダ(600)においてif()文に基づくフラグの値に基づいて条件付きで存在する。
【0084】
適応解像度が使用中である場合に、この例では、サンプル(613)のユニットで出力解像度がコーディングされる。数613は、output_pic_width_in_luma_samples及びoutput_pic_hight_in_luma_samplesの両方を参照する。これらは一緒に、出力ピクチャの解像度を定義することができる。ビデオコーディング技術又は規格の他の場所で、どちらかの値に対する特定の制限が定義され得る。例えば、レベル定義は、それら2つのシンタックス要素の値の積であることができる総出力サンプル数を制限してよい。また、特定のビデオコーディング技術又は規格、あるいは、例えば、システム規格などの外部技術又は規格は、番号付け範囲(例えば、一方又は両方の次元が2の累乗で割り切れるべきである)、又はアスペクト比(例えば、幅及び高さは4:3又は16:9などの関係になければならない)を制限してもよい。そのような制限は、ハードウェア実装を容易にするために、又は他の理由のために、導入されてもよく、当該技術でよく知られている。
【0085】
特定のアプリケーションで、エンコーダは、サイズを出力ピクチャサイズであると暗黙的に想定するのではなく、特定のピクチャサイズを使用するようにデコーダに指示することが賢明であることができる。この例では、シンタックス要素reference_pic_size_present_flag(614)は、参照ピクチャ次元(615)の条件付きの存在をゲーティングする(先と同じく、数は幅及び高さの両方を参照する)。
【0086】
最後に、とり得るデコーディングピクチャ幅及び高さの表が示されている。そのような表は、例えば、表指示(num_dec_pic_size_in_luma_samples_minus1)(616)によって、表現され得る。「minus1」は、そのシンタックス要素の値の解釈(interpretation)を指すことができる。例えば、シンタックス要素のコーディングされた値が0である場合に、1つの表エントリが存在する。コーディングされた値が5である場合に、6つの表エントリが存在する。表の各“行”ごとに、デコードされたピクチャ幅及び高さが、次いで、シンタックス(617)に含まれる。
【0087】
表されている表エントリ(617)は、タイルグループヘッダにおけるシンタックス要素dec_pic_size_idx(602)を用いてインデックスを付され得る。それによって、タイルグループごとに異なったデコーディングサイズ、実際にはズーム係数が可能となる。
【0088】
特定のビデオコーディング技術又は規格、例えば、VP9は、空間スケーラビリティを可能にするために、時間スケーラビリティとともに特定の形態の参照ピクチャリサンプリング(開示されている対象とは全く別なふうにシグナリングされる)を実装することによって空間スケーラビリティをサポートする。特に、特定の参照ピクチャは、空間拡張レイヤのベースを形成するよう、ARCスタイル技術を用いて、より高い解像度へアップサンプリングされてもよい。それらのアップサンプリングされたピクチャは、詳細を追加するために、高い解像度で通常の予測メカニズムを使用して精緻化され得る。
【0089】
開示されている対象は、そのような環境で使用され得る。特定の場合に、同じ又は他の実施形態において、NALユニットヘッダ、例えば、一時ID(Temporal ID)フィールドにおける値は、時間レイヤのみならず空間レイヤも示すために使用され得る。そうすることには、特定のシステム設計にとって特定の利点がある。例えば、NALユニットヘッダの一時ID値に基づいて時間レイヤ選択的転送のために生成及び最適化された既存の選択的転送ユニット(Selected Forwarding Units,SFU)は、スケーラブル環境のために変更無しで使用可能である。それを可能にするために、コーディングされたピクチャと時間レイヤとの間のマッピングがNALユニットヘッダにおいて一時IDフィールドによって示される必要がある。
【0090】
いくつかのビデオコーディング技術で、アクセスユニット(Access Unit,AU)は、所与の時点で捕捉されて各々のピクチャ/スライス/タイル/NALユニットビットストリーム内に構成されたコーディングされたピクチャ、スライス、タイル、NALユニットなどを指すことができる。そのような時点は、合成時間(composition time)であることができる。
【0091】
HEVC、及び特定の他のビデオコーディング技術では、ピクチャ・オーダー・カウント(Picture Order Count,POC)値が、デコーディングピクチャバッファ(Decoded Picture Buffer,DPB)に格納された複数の参照ピクチャの中から選択された参照ピクチャを示すために使用され得る。アクセスユニット(AU)が1つ以上のピクチャ、スライス、又はタイルを含む場合に、同じAUに属する各ピクチャ、スライス、又はタイルは、同じPOC値を運んでよく、POC値から、それらが同じ合成時間のコンテンツから生成されたことが導出され得る。すなわち、2つのピクチャ/スライス/タイルが同じ所与のPOC値を運ぶシナリオにおいて、その2つのピクチャ/スライス/タイルは同じAUに属しかつ同じ合成時間を有していることが決定され得る。対照的に、異なるPOC値を有する2つのピクチャ/タイル/スライスは、それらのピクチャ/スライス/タイルが異なるAUに属しかつ異なる合成時間を有していることを示すことができる。
【0092】
開示されている対象の実施形態において、上記の堅固な関係は、アクセスユニットが異なるPOC値を有するピクチャ、スライス、又はタイルを含むことができる点で緩和され得る。AU内の異なるPOC値を許すことによって、POC値を使用して、同じ提示時間(presentation time)を有する潜在的に独立してデコード可能なピクチャ/スライス/タイルを識別することが可能になる。それは、翻って、以下で更に詳細に記載されるように、参照ピクチャ選択シグナリング(例えば、参照ピクチャセットシグナリング又は参照ピクチャリストシグナリング)の変化無しで、複数のスケーラブルレイヤのサポートを可能にすることができる。
【0093】
しかし、POC値のみから、異なるPOC値を有する他のピクチャ/スライス/タイルに対して、ピクチャ/スライス/タイルが属するAUを識別することができることが、依然として望ましい。これは、以下で記載されるように、達成され得る。
【0094】
同じ又は他の実施形態において、アクセスユニットカウント(Access Unit Count,AUC)は、NALユニットヘッダ、スライスヘッダ、タイルグループヘッダ、SEIメッセージ、パラメータセット又はAUデリミタ(delimiter)などの高位シンタックス構造でシグナリングされてよい。AUCの値は、どのNALユニット、ピクチャ、スライス、又はタイルが所与のAUに属するかを識別するために使用されてよい。AUCの値は、個別の合成時間インスタンスに対応していてよい。AUC値は、POC値の倍数に等しくなる。整数値でPOC値を割ることによって、AUC値は計算され得る。特定の場合に、割り算は、デコーダ実装に一定の負担をかける可能性がある。そのような場合に、AUC値の番号付け空間における小さな制限は、シフト演算による割り算の置換を可能にし得る。例えば、AUC値は、POC値範囲の最上位ビット(MSB)値に等しくなる。
【0095】
同じ実施形態において、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値を割ることによって推測され得る。
【0096】
同じ又は他の実施形態において、poc_cycle_auの値は、コーディングされたビデオシーケンスにおける空間又はSNRレイヤの数を識別する、例えば、ビデオパラメータセット(VPS)に位置している情報から、導出されてもよい。そのような可能な関係は、以下で簡単に説明される。上述された導出はVPSで数ビットを節約し得るので、コーディング効率を改善し得る一方で、ピクチャなどのビットストリームの所与の小さな部分についてpoc_cycle_auを最小化することが可能であるために、poc_cycle_auを、階層的にビデオパラメータセットの下にある適切な高位シンタックス構造で明示的にコーディングすることが有利であり得る。この最適化は、POC値(及び/又はPOCを間接的に参照するシンタックス要素の値)が低位シンタックス構造でコーディングされ得るので、上記の導出プロセスを通じてセーブ可能であるよりも多いビットをセーブし得る。
【0097】
上記の、適応分解能パラメータをシグナリングする技術は、コンピュータ読み出し可能な命令を使用しかつ1つ以上のコンピュータ可読媒体に物理的に記憶されているコンピュータソフトウェアとして実装可能である。例えば、
図7は、開示されている対象の特定の実施形態を実装することに適したコンピュータシステム700を示す。
【0098】
コンピュータソフトウェアは、中央演算処理装置(CPU)、グラフィクス処理ユニット(GPU)などによって直接に又は解釈、ミクロコード実行などを通じて実行され得る命令を含むコードを生成するようにアセンブリ、コンパイル、リンキングなどのメカニズムに従い得る如何なる適切な機械コード又はコンピュータ言語によってもコーディング可能である。
【0099】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネット(Internet of Things)のためのデバイス、などを含む様々なタイプのコンピュータ又はその構成要素で実行可能である。
【0100】
コンピュータシステム700に関して
図7に示される構成要素は、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関して如何なる制限も示唆することを意図しない。構成要素の構成は、コンピュータシステム700の例となる実施形態において説明される構成要素のうちのいずれか1つ又は組み合わせに関して何らかの依存性又は要件も有するものとして解釈されるべきではない。
【0101】
コンピュータシステム700は、特定のヒューマンインターフェース入力デバイスを含んでよい。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーボード、スワイプ、データグローブ動作)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず。)を通じた一人以上のユーザによる入力に反応してよい。ヒューマンインターフェースデバイスはまた、音声(例えば、発話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画カメラから取得された写真画像)、映像(例えば、2次元映像、立体視映像を含む3次元映像)など、人による意識的な入力に必ずしも直接には関係しない特定のメディアを捕捉するためにも使用され得る。
【0102】
入力ヒューマンインターフェースデバイスは、キーボード701、マウス702、トラックパッド703、タッチスクリーン710、データグローブ704、ジョイスティック705、マイク706、スキャナ707、カメラ708のうちの1つ以上(夫々表されているもののうちの1つのみ)を含んでよい。
【0103】
コンピュータシステム700は、特定のヒューマンインターフェース出力デバイスも含んでよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音響、光、及び匂い/味を通じて一人以上のユーザの感覚を刺激し得る。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン710、データグローブ704、又はジョイスティック705による触覚フィードバック、しかし、入力デバイスとして機能しない触覚フィードバックデバイスも存在し得る。)、音声出力デバイス(例えば、スピーカ709、ヘッドホン(図示せず。))、視覚出力デバイス(例えば、夫々タッチスクリーン入力機能の有無によらず、夫々触覚フィードバック機能の有無によらず、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、それらのうちのいくつかは、立体視出力、仮想現実メガネ(図示せず。)、ホログラフィックディスプレイ及びスモークタンク(図示せず。)などの手段により2次元視覚出力又は3次元よりも多い次元の出力を出力可能なスクリーン710)、及びプリンタ(図示せず。)を含んでよい。
【0104】
コンピュータシステム700は、人がアクセス可能なストレージデバイス及びそれらの関連する媒体、例えば、CD/DVD又は同様の媒体721を伴ったCD/DVD ROM/RW720、サムドライブ722、リムーバブルハードディスク又はソリッドステートドライブ723、レガシー磁気媒体、例えば、テープ及びフロッピー(登録商標)ディスク(図示せず。)、専用のROM/ASIC/PLDベースデバイス、例えば、セキュリティドングル(図示せず。)、なども含むことができる。
【0105】
当業者であれば、目下開示されている対象に関連して使用されている「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を含まないことも理解するはずである。
【0106】
コンピュータシステム700はまた、1つ以上の通信ネットワークへのインターフェースも含むことができる。ネットワークは、例えば、ワイヤレス、ワイヤライン、光であることができる。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び工業、実時間、遅延耐性、などであることができる。ネットワークの例には、イーサネット(登録商標)などのローカルエリアネットワーク、ワイヤレスLAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TVを含むTVワイヤライン又はワイヤレス広域デジタルネットワーク、CANバスを含む車両及び工場ネットワーク、などがある。特定のネットワークは、一般に、特定の汎用データポート又はペリフェラルバス(749)(例えば、コンピュータシステム700のUSBポートなど)に取り付けられた外付けネットワークインターフェースアダプタを必要とする。他は、一般に、後述されるようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネットネットワーク、又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)によってコンピュータシステム700のコアに組み込まれる。これらのネットワークのいずれかを使用して、コンピュータシステム700は他のエンティティと通信することができる。そのような通信は、単方向の受信専用(例えば、ブロードキャストTV)又は単方向の送信専用(例えば、特定のCANバスデバイスへのCANバス)であることができ、あるいは、例えば、ローカル若しくは広域デジタルネットワークを使用して他のコンピュータシステムに対して双方向であることができる。特定のプロトコル又はプロトコルスタックが、上述されたようなネットワーク及びネットワークインターフェースの夫々で使用可能である。
【0107】
上記のヒューマンインターフェースデバイス、人がアクセス可能なストレージデバイス、及びネットワークインターフェースは、コンピュータシステム700のコア740へ取り付けられ得る。
【0108】
コア740は、1つ以上の中央演算処理装置(CPU)741、グラフィクス処理ユニット(GPU)742、フィールドプログラマブルゲートアレイ(FPGA)743の形をとる専用のプログラム可能処理ユニット、特定のタスクのためのハードウェアアクセラレータ744、などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)745、ランダムアクセスメモリ(RAM)746、内部のユーザアクセス不能ハードドライブなどの内蔵大容量記憶装置、SSD、など747とともに、システムバス748を通じて接続されてよい。いくつかのコンピュータシステムでは、システムバス748は、追加のCPU、GPUなどによる拡張を可能にするように、1つ以上の物理プラグの形でアクセス可能であることができる。コアのシステムバス748へ直接に又はペリフェラルバス749を通じて、周辺機器が取り付けられ得る。ペリフェラルバスのためのアーキテクチャには、PCI、USBなどがある。
【0109】
CPU741、GPU742、FPGA743、及びアクセラレータ744は、組み合わせて上記のコンピュータコードを構成することができる特定の命令を実行可能である。そのコンピュータコードは、ROM745又はRAM746に記憶され得る。一時データもRAM746に記憶可能であり、一方、永続性データは、例えば、内蔵大容量記憶装置747に記憶可能である。メモリデバイスのいずれかへの高速な格納及び読み出しは、キャッシュメモリの使用により可能にされ得る。キャッシュメモリは、1つ以上のCPU741、GPU742、大容量記憶装置747、ROM745、RAM746などと密接に関連し得る。
【0110】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構成されたものであることができ、あるいは、それらは、コンピュータソフトウェア技術で通常の知識を有する者によく知られており利用可能である種類のものであることができる。
【0111】
例として、限定としてではなく、アーキテクチャ700、具体的にはコア740を有するコンピュータシステムは、1つ以上の有形なコンピュータ可読媒体において具現されているソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ、などを含む。)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、コア内蔵大容量記憶装置747又はROM745などの、非一時的な性質であるコア740の特定の記憶装置に加えて、先に紹介されたユーザアクセス可能な大容量記憶装置に関連した媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア740によって実行可能である。コンピュータ可読媒体には、特定のニーズに応じて、1つ以上のメモリデバイス又はチップが含まれ得る。ソフトウェアは、コア740、及び、具体的には、その中のプロセッサ(CPU、GPU、FPGAなどを含む。)に、RAM746に記憶されているデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することを含め、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。追加的に、又は代替案として、コンピュータシステムは、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに又はそれとともに動作することができる、回路内でハードウェアにより実現されるか又は別なふうに具現されるロジック(例えば、アクセラレータ744)の結果として、機能を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶している回路(例えば、集積回路(IC))、実行のためのロジックを具現する回路、又は両方を包含することができる。本開示は、ハードウェア及びソフトウェアの如何なる適切な組み合わせも包含する。
【0112】
図8は、適応解像度変更との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ずつ増える。
【0113】
上記の実施形態で、インターピクチャ又はインターレイヤ予測構造及び参照ピクチャ指示の全て又はサブセットは、HEVCでの既存の参照ピクチャセット(RPS)シグナリング又は参照ピクチャリスト(RPL)シグナリングを使用することによってサポートされてよい。RPS又はRPLで、選択された参照ピクチャは、POCの値、又は現在のピクチャと選択された参照ピクチャとの間のPOCの差分値をシグナリングすることによって、示され得る。開示されている対象については、RPS又はRPLは、シグナリングの変化無しで、しかし、次の制限を有して、インターピクチャ又はインターレイヤ予測構造を示すために使用され得る。参照ピクチャのtemporal_idの値が現在のピクチャのtemporal_idの値よりも大きい場合に、現在のピクチャは、動き補償又は他の予測のために参照ピクチャを使用しなくもよい。参照ピクチャのlayer_idの値が現在のピクチャのlayer_idの値よりも大きい場合に、現在のピクチャは、動き補償又は他の予測のために参照ピクチャを使用しなくてもよい。
【0114】
同じ又は他の実施形態において、時間動きベクトル予測のためのPOC差分に基づいた動きベクトルスケーリングは、アクセスユニット内の複数のピクチャにわたって無効にされてもよい。従って、各ピクチャがアクセスユニット内で異なるPOC値を有し得るとしても、動きベクトルは、アクセスユニット内の時間動きベクトル予測のためにスケーリング及び使用されない。これは、同じAUで異なるPOCを有する参照ピクチャが同じ時間インスタンスを有する参照ピクチャと見なされるからである。従って、実施形態において、動きベクトルスケーリング関数は、参照ピクチャが現在のピクチャに関連したAUに属する場合に1を返してよい。
【0115】
同じ又は他の実施形態において、時間動きベクトル予測のためのPOC差分に基づいた動きベクトルスケーリングは、参照ピクチャの空間分解能が現在のピクチャの空間分解能とは異なる場合に、任意に、複数のピクチャにわたって任意に無効化されてもよい。動きベクトルスケーリングが許可される場合に、動きベクトルは、現在のピクチャと参照ピクチャとの間のPOC差分及び空間分解能比の両方に基づいてスケーリングされる。
【0116】
同じ又は他の実施形態において、動きベクトルは、特に、poc_cycle_auが非一様値を有する場合に(vps_contant_poc_cycle_per_au==0である場合に)、時間動きベクトル予測のために、POC差分の代わりにAUC差分に基づいて、スケーリングされてもよい。そうでない場合(vps_contant_poc_cycle_per_au==1である場合)には、AUC差分に基づいた動きベクトルスケーリングは、POC差分に基づいた動きベクトルスケーリングと同じであってよい。
【0117】
同じ又は他の実施形態において、動きベクトルがAUC差分に基づいてスケーリングされる場合に、現在のピクチャを含む同じAU内の(同じAUC値を有する)参照動きベクトルは、AUC差分に基づいてスケーリングされず、現在のピクチャと参照ピクチャとの間の空間分解能比に基づいたスケーリングを有して又はスケーリング無しで動きベクトル予測のために使用される。
【0118】
同じ又は他の実施形態において、AUC値は、AUの境界を識別するために使用され、かつ、AU粒度での入力及び出力タイミングを必要とする仮想リファレンスデコーダ(hypothetical reference decoder,HRD)動作のために使用される。ほとんどの場合に、AUの最上位レイヤを有するデコードされたピクチャは、表示のために出力されてよい。AUC値及びlayer_id値は、出力ピクチャを識別するために使用され得る。
【0119】
実施形態において、ピクチャは、1つ以上のサブピクチャから成ってもよい。各サブピクチャは、ピクチャの局所領域又は全体領域をカバーしてよい。サブピクチャによってサポートされる領域は、他のサブピクチャによってサポートされる領域と重なり合っても重なり合わなくてもよい。1つ以上のサブピクチャによって構成されている領域は、ピクチャの全体領域をカバーしてもしなくてもよい。ピクチャがサブピクチャから成る場合に、そのサブピクチャによってサポートされる領域は、ピクチャによってサポートされる領域と同じである。
【0120】
同じ実施形態において、サブピクチャは、コーディングされたピクチャのために使用されているコーディング方法と類似したコーディング方法によってコーディングされてもよい。サブピクチャは、独立してコーディングされてもよく、あるいは、他のサブピクチャ又はコーディングされたピクチャに依存してコーディングされてもよい。サブピクチャは、他のサブピクチャ又はコーディングされたピクチャからの如何なるパージング依存性も有しても有さなくてもよい。
【0121】
同じ実施形態において、コーディングされたサブピクチャは、1つ以上のレイヤに含まれてもよい。レイヤ内のコーディングされたサブピクチャは、異なる空間分解能を有してもよい。元のサブピクチャは、空間的にリサンプリング(アップサンプリング又はダウンサンプリング)され、異なる空間分解能パラメータでコーディングされ、レイヤに対応するビットストリームに含まれてよい。
【0122】
同じ又は他の実施形態において、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よりも小さい場合には、リサンプリングはダウンサンプリングに等しい。
【0123】
同じ又は他の実施形態において、レイヤ内のコーディングされたサブピクチャは、同じサブピクチャ又は異なるサブピクチャにおける他のレイヤ内のコーディングされたサブピクチャのそれとは異なった視覚品質を有してもよい。例えば、レイヤn内のサブピクチャiは、量子化パラメータQi,nでコーディングされ、一方、レイヤm内のサブピクチャjは、量子化パラメータQj,mでコーディングされる。
【0124】
同じ又は他の実施形態において、レイヤ内のコーディングされたサブピクチャは、同じ局所領域の他のレイヤ内のコーディングされたサブピクチャからの如何なるパージング又はデコーディング依存性もなしで、独立してデコード可能であってよい。同じ局所領域の他のサブピクチャレイヤを参照せずに独立してデコード可能であることができるサブピクチャレイヤは、独立サブピクチャレイヤ(independent sub-picture layer)である。独立サブピクチャレイヤ内のコーディングされたサブピクチャは、同じサブピクチャレイヤ内の前にコーディングされたサブピクチャからのデコーディング又はパージング依存性を有しても有さなくてもよいが、コーディングされたサブピクチャは、他のサブピクチャレイヤ内のコーディングされたサブピクチャからの如何なる依存性も有さなくてよい。
【0125】
同じ又は他の実施形態において、レイヤ内のコーディングされたサブピクチャは、同じ局所領域の他のレイヤ内のコーディングされたサブピクチャからの何らかのパージング又はデコーディング依存性を有して、従属的にデコード可能であってもよい。同じ局所領域の他のサブピクチャレイヤを参照して従属的にデコード可能であることができるサブピクチャレイヤは、従属サブピクチャレイヤ(dependent sub-picture layer)である。従属サブピクチャレイヤ内のコーディングされたサブピクチャは、同じサブピクチャに属するコーディングされたサブピクチャ、同じサブピクチャレイヤ内の前にコーディングされたサブピクチャ、又は両方の参照サブピクチャを参照してよい。
【0126】
同じ又は他の実施形態において、コーディングされたサブピクチャは、1つ以上の独立サブピクチャレイヤと、1つ以上の従属サブピクチャレイヤとから成る。しかし、少なくとも1つの独立サブピクチャレイヤが、コーディングされたサブピクチャのために存在してもよい。独立サブピクチャレイヤの、NALユニットヘッダ又は他の高位シンタックス構造に存在し得るレイヤ識別子(layer_id)の値は、0に等しくなる。0に等しいlayer_idを有するサブピクチャレイヤは、基本サブピクチャレイヤであってよい。
【0127】
同じ又は他の実施形態において、ピクチャは、1つ以上の前景サブピクチャと、1つの背景サブピクチャとから成ってもよい。背景サブピクチャによってサポートされる領域は、ピクチャの領域に等しくてよい。前景サブピクチャによってサポートされる領域は、背景サブピクチャによってサポートされる領域と重なり合ってもよい。背景サブピクチャは、基本サブピクチャレイヤであってよく、一方、前景サブピクチャは、非基本(拡張)サブピクチャレイヤであってよい。1つ以上の非基本サブピクチャレイヤは、デコーディングのために同じ基本レイヤを参照してよい。aがbよりも大きいとして、aに等しいlayer_idを有する各非基本サブピクチャレイヤは、bに等しいlayer_idを有する非基本サブピクチャレイヤを参照してもよい。
【0128】
同じ又は他の実施形態において、ピクチャは、背景サブピクチャの有無によらず1つ以上の前景サブピクチャから成ってもよい。各サブピクチャは、それ自身の基本サブピクチャレイヤと、1つ以上の非基本(拡張)レイヤとを有してよい。各基本サブピクチャレイヤは、1つ以上の非基本サブピクチャレイヤによって参照されてよい。aがbよりも大きいとして、aに等しいlayer_idを有する各非基本サブピクチャレイヤは、bに等しいlayer_idを有する非基本サブピクチャレイヤを参照してよい。
【0129】
同じ又は他の実施形態において、ピクチャは、背景サブピクチャの有無によらず1つ以上の前景サブピクチャから成ってもよい。(基本又は非基本)サブピクチャレイヤ内の各コーディングされたサブピクチャは、同じサブピクチャに属する1つ以上の非基本レイヤサブピクチャと、同じサブピクチャに属していない1つ以上の非基本レイヤサブピクチャとによって参照されてよい。
【0130】
同じ又は他の実施形態において、ピクチャは、背景サブピクチャの有無によらず1つ以上の前景サブピクチャから成ってもよい。レイヤa内のサブピクチャは、同じレイヤ内の複数のサブピクチャに更にパーティション化されてよい。レイヤb内の1つ以上のコーディングされたサブピクチャは、レイヤa内のパーティション化されたサブピクチャを参照してよい。
【0131】
同じ又は他の実施形態において、コーディングされたビデオシーケンス(CVS)は、コーディングされたピクチャのグループであってよい。CVSは、1つ以上のコーディングされたサブピクチャシーケンス(CSPS)から成ってもよく、CSPSは、ピクチャの同じ局所領域をカバーするコーディングされたサブピクチャのグループであってよい。CSPSは、コーディングされたビデオシーケンスのそれと同じ又は異なった時間分解能を有してよい。
【0132】
同じ又は他の実施形態において、CSPSは、コーディングされて、1つ以上のレイヤに含まれてもよい。CSPSは、1つ以上のCSPSレイヤから成ってもよい。CSPSに対応する1つ以上のCSPSレイヤをデコードすることは、同じ局所領域に対応するサブピクチャのシーケンスを再構成し得る。
【0133】
同じ又は他の実施形態において、CSPSに対応するCSPSレイヤの数は、他のCSPSに対応するCSPSレイヤの数と同じであっても又は異なってもよい。
【0134】
同じ又は他の実施形態において、CSPSレイヤは、他のCSPSレイヤとは異なった時間分解能(例えば、フレームレート)を有してもよい。元の(圧縮されていない)サブピクチャシーケンスは、時間的にリサンプリング(例えば、アップサンプリング又はダウンサンプリング)され、異なる時間分解能パラメータでコーディングされ、レイヤに対応するビットストリームに含まれてよい。
【0135】
同じ又は他の実施形態において、フレームレートFを有するサブピクチャシーケンスは、コーディングされて、レイヤ0に対応するコーディングされたビットストリームに含まれてもよく、一方、元のサブピクチャシーケンスから時間的にアップサンプリング(又はダウンサンプリング)された、F×St,kを有するサブピクチャシーケンスは、コーディングされて、レイヤkに対応するコーディングされたビットストリームに含まれてもよい。ここで、St,kは、レイヤkのための時間サンプリング比を示す。St,kの値が1よりも大きい場合には、時間リサンプリングプロセスは、フレームレートアップコンバージョンに等しい。一方、St,kが1よりも小さい場合には、時間リサンプリングプロセスは、フレームレートダウンコンバージョンに等しい。
【0136】
同じ又は他の実施形態において、CSPSレイヤaを有するサブピクチャが、動き補償又は何らかのインターレイヤ予測のために、CSPSレイヤbを有するサブピクチャによって参照される場合に、CSPSレイヤaの空間分解能がCSPSレイヤbの空間分解能とは異なるならば、CSPSレイヤaでのデコードされたピクセルは、リサンプリングされて、参照のために使用される。リサンプリングプロセスは、アップサンプリングフィルタリング又はダウンサンプリングフィルタリングを必要とし得る。
【0137】
同じ又は他の実施形態において、
図9は、コーディングされたビデオシーケンスで全てのピクチャ/スライスのために使用される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の値を割ることによって計算される。
図10は、関連するワークフローを表すブロック図を示す。
【0138】
同じ又は他の実施形態において、たとえピクチャ、スライス、又はタイルのPOCの値が異なり得るとしても、同じAUC値を有するAUに対応するピクチャ、スライス、又はタイルは、同じデコーディング又は出力時間インスタンスと関連付けられてよい。従って、同じAU内のピクチャ、スライス、又はタイルの間で如何なる相互的なパージング/デコーディング依存性もなしで、同じAUと関連付けられたピクチャ、スライス、又はタイルの全て又はサブセットは、並行してデコードされてよく、同じ時間インスタンスで出力されてよい。
【0139】
同じ又は他の実施形態において、たとえピクチャ、スライス、又はタイルのPOCの値が異なり得るとしても、同じAUC値を有するAUに対応するピクチャ、スライス、又はタイルは、同じ合成/表示時間インスタンスと関連付けられてよい。合成時間がコンテナフォーマットに含まれる場合に、たとえピクチャが異なるAUに対応するとしても、ピクチャが同じ合成時間を有しているならば、ピクチャは同じ時間インスタンスで表示され得る。
【0140】
同じ又は他の実施形態において、各ピクチャ、スライス、又はタイルは、同じAUにおいて同じ時間識別子(temporal_id)を有してよい。ある時間インスタンスに対応するピクチャ、スライス、又はタイルの全て又はサブセットは、同じ時間サブレイヤと関連付けられてもよい。同じ又は他の実施形態において、各ピクチャ、スライス、又はタイルは、同じAUにおいて同じ又は異なる空間レイヤid(layer_id)を有してもよい。ある時間インスタンスに対応するピクチャ、スライス、又はタイルの全て又はサブセットは、同じ又は異なる空間レイヤと関連付けられてよい。
【0141】
図11は、0に等しいlayer_idを有する背景ビデオCSPSと、複数の前景CSPSレイヤとを含むビデオストリームの例を示す。コーディングされたサブピクチャは1つ以上のCSPSレイヤから成ってもよく、一方、如何なる前景CSPSレイヤにも属さない背景領域は、基本レイヤから成ってもよい。基本レイヤは、背景領域及び前景領域を含んでもよく、一方、拡張CSPSレイヤは前景領域を含んでもよい。拡張CSPSレイヤは、同じ領域で、基本レイヤよりも良い視覚品質を有し得る。拡張CSPSレイヤは、同じ領域に対応する基本レイヤの動きベクトル及び再構成されたピクセルを参照してもよい。
【0142】
同じ又は他の実施形態において、ビデオファイルでは、基本レイヤに対応するビデオビットストリームは、トラックに含まれ、一方、各サブピクチャに対応するCSPSレイヤは、別個のトラックに含まれる。
【0143】
同じ又は他の実施形態において、基本レイヤに対応するビデオビットストリームは、トラックに含まれ、一方、同じlayer_idを有するCSPSレイヤは、別個のトラックに含まれる。この例では、レイヤkに対応するトラックは、レイヤkに対応するCSPSレイヤのみを含む。
【0144】
同じ又は他の実施形態において、各サブピクチャの各CSPSレイヤは、別のトラックに格納される。各トラックは、1つ以上の他のトラックからの如何なるパージング又はデコーディング依存性も有しても有さなくてもよい。
【0145】
同じ又は他の実施形態において、各トラックは、サブピクチャの全て又はサブセットのCSPSレイヤのレイヤiからレイヤjに対応するビットストリームを含んでよい。ここで、0<i=<j=<kであり、kはCSPSの最高レイヤである。
【0146】
同じ又は他の実施形態において、ピクチャは、デプスマップ、アルファマップ、3Dジオメトリデータ、占有マップ、などを含む1つ以上の関連するメディアデータから成る。そのような関連する時間付き(timed)メディアデータは、夫々が1つのサブピクチャに対応している1つ又は複数のデータサブストリームに分けられ得る。
【0147】
同じ又は他の実施形態において、
図12は、多層サブピクチャ方法に基づいたビデオ会議の例を示す。ビデオストリームには、背景ピクチャに対応する1つの基本レイヤビデオビットストリームと、前景サブピクチャに対応する1つ以上の拡張レイヤビデオビットストリームとが含まれる。各拡張レイヤビデオビットストリームは、CSPSレイヤに対応している。ディスプレイでは、基本レイヤに対応するピクチャがデフォルトで表示される。基本レイヤは、一人以上のユーザのピクチャ・イン・ピクチャ(Picture In Picture,PIP)を含む。特定のユーザがクライアントの制御によって選択される場合に、選択されたユーザに対応する拡張CSPSレイヤは、向上した品質又は空間分解能でデコード及び表示される。
図13は、動作の図を示す。
【0148】
同じ又は他の実施形態において、ネットワークミドルボックス(例えば、ルータ)は、そのバンド幅に応じてユーザへ送信すべきレイヤのサブセットを選択してもよい。ピクチャ/サブピクチャ編成は、バンド幅適応のために使用されてもよい。例えば、ユーザがバンド幅を有さない場合に、ルータは、それらの重要性により又は使用されている設定に基づいてレイヤを削除するか又はいくつかのサブピクチャを選択する。これは、バンド幅に適応するよう動的に行われ得る。
【0149】
図14は、360度ビデオの使用ケースを示す。球状の360度ピクチャが平面ピクチャに投影される場合に、投影360度ピクチャは、基本レイヤとして複数のサブピクチャにパーティション化されてよい。特定のサブピクチャの拡張レイヤがコーディングされて、クライアントへ伝送されてよい。デコーダは、全てのサブピクチャを含む基本レイヤと、選択されたサブピクチャの拡張レイヤとの両方をデコードすることが可能であってよい。現在のビューポートが選択されたサブピクチャと同じである場合に、表示されているピクチャは、拡張レイヤを伴ったデコードされたサブピクチャでより高い品質を有し得る。そうでない場合には、基本レイヤを含むデコードされたピクチャが、低い品質で表示され得る。
【0150】
同じ又は他の実施形態において、表示のための如何なるレイアウト情報も、補足情報(例えば、SEIメッセージ又はメタデータ)として、ファイルに存在してもよい。1つ以上のデコードされたサブピクチャは、シグナリングされたレイアウト情報に応じて再配置又は表示されてよい。レイアウト情報は、ストリーミングサーバ又はブロードキャスタによってシグナリングされてもよく、あるいは、ネットワークエンティティ又はクラウドサーバによって再生されてもよく、あるいは、ユーザのカスタマイズされた設定によって決定されてもよい。
【0151】
実施形態において、入力されたピクチャが1つ以上の(長方形の)サブ領域に分けられる場合に、各サブ領域は、独立レイヤとしてコーディングされてもよい。局所領域に対応する各独立レイヤは、一意のlayer_id値を有してよい。各独立レイヤについて、サブピクチャサイズ及び位置情報がシグナリングされてもよい。例えば、ピクチャサイズ(幅、高さ)及び左上隅のオフセット情報(x_offset、y_offset)がシグナリングされ得る。
図15は、分割されたサブピクチャのレイアウト、そのサブピクチャサイズ及び位置情報、並びにその対応するピクチャ予測構造の例を示す。サブピクチャサイズ及びサブピクチャ位置を含むレイアウト情報は、パラメータセット、スライス若しくはタイルグループのヘッダ、又はSEIメッセージなどの高位シンタックス構造でシグナリングされてもよい。
【0152】
同じ実施形態で、独立レイヤに対応する各サブピクチャは、AU内でその一意のPOC値を有してもよい。DPBに格納されているピクチャの中の参照ピクチャがRPS又はRPL構造でシンタックス要素を使用することによって指示される場合に、レイヤに対応する各サブピクチャのPOC値が使用されてもよい。
【0153】
同じ又は他の実施形態において、(インターレイヤ)予測構造を示すために、layer_idは使用されなくてもよく、POC(差分)値が使用され得る。
【0154】
同じ実施形態で、レイヤ(又は局所領域)に対応するNに等しいPOC値を有しているサブピクチャは、動き補償された予測のために、同じレイヤ(又は同じ局所領域)に対応する、K+Nに等しいPOC値を有するサブピクチャの参照ピクチャとして使用されてもされなくてもよい。ほとんどの場合に、数Kの値は、サブ領域の数と同じであってもよい(独立)レイヤの最大数に等しくなる。
【0155】
同じ又は他の実施形態において、
図16は、
図15の拡張された場合を示す。入力されたピクチャが複数(例えば、4つ)のサブ領域に分けられる場合に、各局所領域は、1つ以上のレイヤを有してコーディングされてもよい。その場合に、独立レイヤの数はサブ領域の数に等しくてよく、1つ以上のレイヤは1つのサブ領域に対応してよい。よって、各サブ領域は、1つ以上の独立レイヤ及びゼロ個以上の従属レイヤを有してコーディングされてもよい。
【0156】
同じ実施形態において、
図16で、入力されたピクチャは4つのサブ領域に分けられてもよい。右上サブ領域は、レイヤ1及びレイヤ4である2つのレイヤとしてコーディングされてもよく、一方、右下サブ領域は、レイヤ3及びレイヤ5である2つのレイヤとしてコーディングされてもよい。この場合に、レイヤ4は、動き補償された予測のためにレイヤ1を参照してもよく、一方、レイヤ5は、動き補償のためにレイヤ3を参照してもよい。
【0157】
同じ又は他の実施形態において、レイヤ境界にわたるインループフィルタリング(例えば、デブロッキングフィルタリング、適応インループフィルタリング、リシェーパ(reshaper)、バイラテラルフィルタリング、又は任意のディープラーニングに基づいたフィルタリング)は、(任意に)無効にされてもよい。
【0158】
同じ又は他の実施形態において、レイヤ境界にわたる動き補償された予測又はイントラブロックコピーは、(任意に)無効にされてもよい。
【0159】
同じ又は他の実施形態において、サブピクチャの境界での動き補償された予測又はインループフィルタリングのための境界パディングは、任意に処理されてもよい。境界パディングが処理されるか否かを示すフラグは、パラメータセット(VPS、SPS、PPS、若しくはAPS)、スライス若しくはタイルグループヘッダ、又はSEIメッセージなどの高位シンタックス構造でシグナリングされてもよい。
【0160】
同じ又は他の実施形態において、サブ領域(又はサブピクチャ)のレイアウト情報は、VPS又はSPSでシグナリングされてもよい。
図17は、VPS及び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の値は、夫々、入力されたピクチャの幅及び高さに等しくなる。
【0161】
同じ実施形態において、vps_full_pic_width_in_luma_samples及びvps_full_pic_height_in_luma_samaplesの値は、デコーディングのために使用されなくてもよいが、合成及び表示のために使用され得る。
【0162】
同じ実施形態において、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でシグナリングされてもよい。
【0163】
同じ実施形態において、サブ領域の左上隅の位置情報(pic_offset_x、pic_offset_y)は、デコーディングのために使用されなくてもよいが、合成及び表示のために使用され得る。
【0164】
同じ又は他の実施形態において、入力されたピクチャのサブ領域の全て又はサブセットのレイアウト情報(サイズ及び位置)、及びレイヤ間の依存関係情報が、パラメータセット又はSEIメッセージでシグナリングされてもよい。
図18は、サブ領域のレイアウトの情報、レイヤ間の依存性、及びサブ領域と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番目のサブ領域の幅及び高さを示す。
【0165】
1つの実施形態において、プロファイルティアレベル情報の有無によらず出力されるべき1つ以上のレイヤを示すための出力レイヤセットを定める1つ以上のシンタックス要素は、高位シンタックス構造、例えば、VPS、DPS、SPS、PPS、APS、又はSEIメッセージでシグナリングされてもよい。
図19を参照すると、VPSを参照するコーディングされたビデオシーケンスにおける出力レイヤセット(Output Layer Set,OLS)の数を示すシンタックス要素num_output_layer_setsは、VPSでシグナリングされてもよい。各出力レイヤセットについて、output_layer_flagは、出力レイヤの数と同じ回数だけシグナリングされてよい。
【0166】
同じ実施形態において、1に等しいoutput_layer_flagは、i番目のレイヤが出力されることを指定する。0に等しいoutput_layer_flagは、i番目のレイヤが出力されないことを指定する。
【0167】
同じ又は他の実施形態において、各出力レイヤセットについてプロファイルティアレベル情報を定める1つ以上のシンタックス要素は、高位シンタックス構造、例えば、VPS、DPS、SPS、PPS、APS、又はSEIメッセージでシグナリングされてもよい。依然として
図19を参照すると、VPSを参照するコーディングされたビデオシーケンスにおけるOLSごとのプロファイルティアレベル情報の数を示すシンタックス要素num_profile_tier_levelは、VPSでシグナリングされてもよい。各出力レイヤセットについて、プロファイルティアレベル情報のためのシンタックス要素の組又はプロファイルティアレベル情報内のエントリの中で特定のプロファイルティアレベル情報を示すインデックスは、出力レイヤの数と同じ回数だけシグナリングされてよい。
【0168】
同じ実施形態において、profile_tier_level_idx[i][j]は、i番目のOLSのj番目のレイヤに適用するprofile_tier_level()シンタックス構造の、VPSでのprofile_tier_level()シンタックス構造のリスト内へのインデックスを指定する。
【0169】
同じ又は他の実施形態において、
図20を参照すると、シンタックス要素num_profile_tile_level及び/又はnum_output_layer_setsは、最大レイヤの数が1よりも多い(vps_max_layers_minus1>0)場合にシグナリングされてもよい。
【0170】
同じ又は他の実施形態において、
図20参照すると、i番目の出力レイヤセットについての出力レイヤシグナリングのモードを示すシンタックス要素vps_output_layers_mode[i]が、VPSに存在してもよい。
【0171】
同じ実施形態において、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]を有するレイヤであることを指定する。より多くの値がリザーブされてもよい。
【0172】
同じ実施形態において、output_layer_flag[i][j]は、i番目の出力レイヤセットについてのvps_output_layers_mode[i]の値に応じて、シグナリングされてもされなくてもよい。
【0173】
同じ又は他の実施形態において、
図20を参照すると、フラグvps_ptl_flag[i]が、i番目の出力レイヤセットについて存在してもよい。vps_ptl_flag[i]の値に応じて、i番目の出力レイヤセットのプロファイルティアレベル情報は、シグナリングされてもされなくてもよい。
【0174】
同じ又は他の実施形態において、
図21を参照すると、現在のCVSでのサブピクチャの数max_subpics_minus1は、高位シンタックス構造、例えば、VPS、DPS、SPS、PPS、APS、又はSEIメッセージでシグナリングされてもよい。
【0175】
同じ実施形態において、
図21を参照すると、i番目のサブピクチャのサブピクチャ識別子sub_pic_id[i]は、サブピクチャの数が1よりも多い(max_subpics_minus1>0)場合にシグナリングされてもよい。
【0176】
同じ又は他の実施形態において、各出力レイヤセットの各レイヤに属するサブピクチャ識別子を示す1つ以上のシンタックス要素は、VPSでシグナリングされてもよい。
図22を参照すると、sub_pic_id_layer[i][j][k]は、i番目の出力レイヤセットのj番目のレイヤに存在するk番目のサブピクチャを示す。この情報により、デコーダは、特定の出力レイヤセットの各レイヤについて、どのサブピクチャがデコードされ出力され得るかを認識し得る。
【0177】
実施形態において、ピクチャヘッダ(PH)は、コーディングされたピクチャの全スライスに適用するシンタックス要素を含むシンタックス構造である。ピクチャユニット(PU)はNALユニットの組であり、NALユニットは、特定の分類規則に従って互いに関連付けられ、デコーディング順序において連続しており、かつ、厳密に1つのコーディングされたピクチャを含む。PUは、ピクチャヘッダ(PH)と、コーディングされたピクチャを構成する1つ以上のビデオコーディングレイヤ(VCL)NALユニットとを含んでもよい。
【0178】
実施形態において、SPS(RBSP)は、それが参照される前にデコーディングプロセスに利用可能であるか、0に等しいTemporalIDを有する少なくとも1つのAUに含まれるか、あるいは、外部手段を通じて供給されてもよい。
【0179】
実施形態において、SPS(RBSP)は、それが参照される前にデコーディングプロセスに利用可能であるか、SPSを参照する1つ以上のPPSを含むCVSで0に等しいTemporalIDを有する少なくとも1つのAUに含まれるか、あるいは、外部手段を通じて供給されてもよい。
【0180】
実施形態において、SPS(RBSP)は、それが1つ以上のPPSによって参照される前にデコーディングプロセスに利用可能であるか、SPSを参照する1つ以上のPPSを含むCVSでSPS NALユニットを参照するPPS NALユニットの最小nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、あるいは、外部手段を通じて供給されてもよい。
【0181】
実施形態において、SPS(RBSP)は、それが1つ以上のPPSによって参照される前にデコーディングプロセスに利用可能であるか、0に等しいTemporalID及びSPS NALユニットを参照するPPS NALユニットの最小nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、あるいは、外部手段を通じて供給されてもよい。
【0182】
実施形態において、SPS(RBSP)は、それが1つ以上のPPSによって参照される前にデコーディングプロセスに利用可能であるか、0に等しいTemporalID及びCVSでSPS NALユニットを参照するPPS NALユニットの最小nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、あるいは、外部手段を通じて供給されてもよい。
【0183】
同じ又は他の実施形態で、pps_seq_parameter_set_idは、参照されているSPSについてのsps_seq_parameter_set_idの値を指定する。pps_seq_parameter_set_idの値は、CLVSにおけるコーディングされたピクチャによって参照されている全てのPPSで同じであってよい。
【0184】
同じ又は他の実施形態で、CVSで特定の値のsps_seq_parameter_set_idを有する全てのSPS NALユニットは、同じ内容を有してもよい。
【0185】
同じ又は他の実施形態で、nuh_layer_id値にかかわらず、SPS NALユニットは、sps_seq_parameter_set_idの同じ値空間を共有してもよい。
【0186】
同じ又は他の実施形態で、あるSPS NALユニットのnuh_layer_id値は、そのSPS NALユニットを参照するPPS NALユニットの最小nuh_layer_id値に等しくてもよい。
【0187】
実施形態において、mに等しいnuh_layer_idを有するSPSが、nに等しいnuh_layer_idを有する1つ以上のPPSによって参照される場合に、mに等しいnuh_layer_idを有するレイヤは、nに等しいnuh_layer_idを有するレイヤ又はmに等しいnuh_layer_idを有するレイヤの(直接又は間接)参照レイヤと同じであってもよい。
【0188】
実施形態において、PPS(RBSP)は、それが参照される前にデコーディングプロセスに利用可能であるか、PPS NALユニットのTemporalIDに等しいTemporalIDを有する少なくとも1つのAUに含まれるか、あるいは、外部手段を通じて供給されるべきである。
【0189】
実施形態において、PPS(RBSP)は、それが参照される前にデコーディングプロセスに利用可能であるか、PPSを参照する1つ以上のPH(又はコーディングされたスライスNALユニット)を含むCVSでPPS NALユニットのTemporalIDに等しいTemporalIDを有する少なくとも1つのAUに含まれるか、あるいは、外部手段を通じて供給されてもよい。
【0190】
実施形態において、PPS(RBSP)は、それが1つ以上のPH(又はコーディングされたスライスNALユニット)によって参照される前にデコーディングプロセスに利用可能であるか、PPSを参照する1つ以上のPH(又はコーディングされたスライスNALユニット)を含むCVSでPPS NALユニットを参照するコーディングされたスライスNALユニットの最小nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、あるいは、外部手段を通じて供給されてもよい。
【0191】
実施形態において、PPS(RBSP)は、それが1つ以上のPH(又はコーディングされたスライスNALユニット)によって参照される前にデコーディングプロセスに利用可能であるか、PPSを参照する1つ以上のPH(又はコーディングされたスライスNALユニット)を含むCVSでPPS NALユニットを参照するコーディングされたスライスNALユニットの最小nuh_layer_id値に等しいnuh_layer_id及びPPS NALユニットのTemporalIDに等しいTemporalIDを有する少なくとも1つのPUに含まれるか、あるいは、外部手段を通じて供給されてもよい。
【0192】
同じ又は他の実施形態で、PHにおけるph_pic_parameter_set_idは、使用中の参照されているPPSについてのpps_pic_parameter_set_idの値を指定する。pps_seq_parameter_set_idの値は、CLVSにおけるコーディングされたピクチャによって参照される全てのPPSで同じであってよい。
【0193】
同じ又は他の実施形態で、PU内の特定の値のpps_pic_parameter_set_idを有する全てのPPS NALユニットは、同じ内容を有するべきである。
【0194】
同じ又は他の実施形態で、nuh_layer_id値にかかわらず、PPS NALユニットは、pps_pic_parameter_set_idの同じ値空間を共有してもよい。
【0195】
同じ又は他の実施形態で、あるPPS NALユニットのnuh_layer_idは、そのPPS NALユニットを参照するNALユニットを参照するコーディングされたスライスNALユニットの最小nuh_layer_id値に等しくてもよい。
【0196】
実施形態において、mに等しいnuh_layer_idを有するPPSが、nに等しいnuh_layer_idを有する1つ以上のコーディングされたスライスNALユニットによって参照される場合に、mに等しいnuh_layer_idを有するレイヤは、nに等しいnuh_layer_idを有するレイヤ又はmに等しいnuh_layer_idを有するレイヤの(直接又は間接)参照レイヤと同じであってもよい。
【0197】
実施形態において、PPS(RBSP)は、それが参照される前にデコーディングプロセスに利用可能であるか、PPS NALユニットのTemporalIDに等しいTemporalIDを有する少なくとも1つのAUに含まれるか、あるいは、外部手段を通じて供給されるべきである、
【0198】
実施形態において、PPS(RBSP)は、それが参照される前にデコーディングプロセスに利用可能であるか、PPSを参照する1つ以上のPH(又はコーディングされたスライスNALユニット)を含むCVSでPPS NALユニットのTemporalIDに等しいTemporalIDを有する少なくとも1つのAUに含まれるか、あるいは、外部手段を通じて供給されてもよい。
【0199】
実施形態において、PPS(RBSP)は、それが1つ以上のPH(又はコーディングされたスライスNALユニット)によって参照される前にデコーディングプロセスに利用可能であるか、PPSを参照する1つ以上のPH(又はコーディングされたスライスNALユニット)を含むCVSでPPS NALユニットを参照するコーディングされたスライスNALユニットの最小nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、あるいは、外部手段を通じて供給されてもよい。
【0200】
実施形態において、PPS(RBSP)は、それが1つ以上のPH(又はコーディングされたスライスNALユニット)によって参照される前にデコーディングプロセスに利用可能であるか、PPSを参照する1つ以上のPH(又はコーディングされたスライスNALユニット)を含むCVSでPPS NALユニットを参照するコーディングされたスライスNALユニットの最小nuh_layer_id値に等しいnuh_layer_id及びPPS NALユニットのTemporalIDに等しいTemporalIDを有する少なくとも1つのPUに含まれるか、あるいは、外部手段を通じて供給されてもよい。
【0201】
同じ又は他の実施形態で、PHにおけるph_pic_parameter_set_idは、使用中の参照されているPPSについてのpps_pic_parameter_set_idの値を指定する。pps_seq_parameter_set_idの値は、CLVSにおけるコーディングされたピクチャによって参照される全てのPPSで同じであってよい。
【0202】
同じ又は他の実施形態で、PU内の特定の値のpps_pic_parameter_set_idを有する全てのPPS NALユニットは、同じ内容を有するべきである。
【0203】
同じ又は他の実施形態で、nuh_layer_id値にかかわらず、PPS NALユニットは、pps_pic_parameter_set_idの同じ値空間を共有してもよい。
【0204】
同じ又は他の実施形態で、あるPPS NALユニットのnuh_layer_idは、そのPPS NALユニットを参照するNALユニットを参照するコーディングされたスライスNALユニットの最小nuh_layer_id値に等しくてもよい。
【0205】
実施形態において、mに等しいnuh_layer_idを有するPPSが、nに等しいnuh_layer_idを有する1つ以上のコーディングされたスライスNALユニットによって参照される場合に、mに等しいnuh_layer_idを有するレイヤは、nに等しいnuh_layer_idを有するレイヤ又はmに等しいnuh_layer_idを有するレイヤの(直接又は間接)参照レイヤと同じであってもよい。
【0206】
実施形態において、
図22に示されるよう、ピクチャパラメータセット内のpps_subpic_id[i]は、i番目のサブピクチャのサブピクチャIDを指定する。pps_subpic_id[i]シンタックス要素の長さは、pps_subpic_id_len_minus1+1ビットである。
【0207】
変数SubpicIdVal[i]は、0以上sps_num_subpics_minus1以下の範囲内のiの各値について、次のように導出される:
【数1】
【0208】
同じ又は他の実施形態で、0以上sps_num_subpics_minus1以下の範囲内のi及びjのいずれか2つの異なる値については、SubpicIdVal[i]は、SubpicIdVal[j]に等しくなくてもよい。
【0209】
同じ又は他の実施形態で、現在のピクチャがCLVSの最初のピクチャではない場合に、0以上sps_num_subpics_minus1以下の範囲内のiの各値について、SubpicIdVal[i]の値が同じレイヤ内のデコーディング順序で前のピクチャのSubpicIdVal[i]の値と等しくないならば、サブピクチャインデックスiを有する現在のピクチャ内のサブピクチャの全てのコーディングされたスライスNALユニットについてのnal_unit_typeは、IDR_W_RADL以上CRA_NUT以下の範囲内の特定の値に等しくなる。
【0210】
同じ又は他の実施形態で、現在のピクチャがCLVSの最初のピクチャではない場合に、0以上sps_num_subpics_minus1以下の範囲内のiの各値について、SubpicIdVal[i]の値が同じレイヤ内のデコーディング順序で前のピクチャのSubpicIdVal[i]の値に等しくないならば、sps_independent_subpics_flagは、1に等しくなる。
【0211】
同じ又は他の実施形態で、現在のピクチャがCLVSの最初のピクチャではない場合に、0以上sps_num_subpics_minus1以下の範囲内のiの各値について、SubpicIdVal[i]の値が同じレイヤ内のデコーディング順序で前のピクチャのSubpicIdVal[i]の値に等しくないならば、subpic_treated_as_pic_flag[i]及びloop_flter_across_subpic_enabled_flag[i]は、1に等しくなる。
【0212】
同じ又は他の実施形態で、現在のピクチャがCLVSの最初のピクチャではない場合に、0以上sps_num_subpics_minus1以下の範囲内のiの各値について、SubpicIdVal[i]の値が同じレイヤ内のデコーディング順序で前のピクチャのSubpicIdVal[i]の値に等しくないならば、sps_independent_subpics_flagは、1に等しいはずであり、あるいは、subpic_treated_as_pic_flag[i]及びloop_flter_across_subpic_enabled_flag[i]は、1に等しいはずである。
【0213】
同じ又は他の実施形態で、サブピクチャが他のサブピクチャへの如何なる参照もなしで独立してエンコードされる場合に、ある領域のサブピクチャ識別子の値は、コーディングされたビデオシーケンス内で変更されてもよい。
【0214】
サンプルは、CTBの単位で処理される。幅及び高さの両方でのルーマCTBごとのアレイサイズは、サンプルの単位でのCtbSizeYである。クロマCTBごとのアレイの幅及び高さは、サンプルの単位で、夫々、CtbWidthC及びCtbHeightCである。各CTBは、イントラ又はインター予測のために及び変換コーディングのためにブロックサイズを識別するようパーティションシグナリングを割り当てられる。パーティショニングは、再帰的な四分木パーティショニングである。四分木の根は、CTBを割り当てられる。四分木は、四分木リーフと呼ばれるリーフに達するため分裂される。コンポーネント幅がCTBサイズの整数倍でない場合に、右コンポーネント境界でのCTBは不完全である。コンポーネント高さがCTBサイズの整数倍でない場合に、↓コンポーネント境界でのCTBは不完全である。
【0215】
各サブピクチャの幅及び高さは、CtbSizeYの単位でSPSにおいてシグナリングされてもよい。
図23で、例えば、subpic_width_minus1[i]+1は、CtbSizeYの単位でのi番目のサブピクチャの幅を指定する。シンタックス要素の長さは、Ceil(Log2((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。存在しない場合に、subpic_width_minus1[i]の値は、((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-subpic_ctu_top_left_x[i]-1に等しいと推測される。subpic_height_minus1[i]+1は、CtbSizeYの単位でのi番目のサブピクチャの高さを指定する。シンタックス要素の長さは、Ceil(Log2((pic_hight_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。存在しない場合に、subpic_height_minus1[i]の値は、((pic_height_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-subpic_ctu_top_left_y[i]-1に等しいと推測される。
【0216】
各サブピクチャの幅は、ピクチャ幅がCtbSizeY以上である場合に、CtbSizeY以上であり得る。各サブピクチャの高さは、ピクチャ高さがCtbSizeY以上である場合に、CtbSizeY以上であり得る。
【0217】
ピクチャ幅がCtbSizeY以下であり、ピクチャ高さがCtbSizeY以下である場合には、ピクチャは、1つよりも多いサブピクチャにパーティション化されなくても良い。その場合に、サブピクチャの数は1に等しくなり得る。
【0218】
pic_width_max_in_luma_samplesがCtbSizeY以下であり、pic_height_max_in_luma_samplesがCtbSizeY以下である場合に、subpic_info_present_flagの値は0に等しくなればならない。subpic_info_present_flagが0に等しいとき、明示的なシグナリングはサブピクチャパーティショニング情報について存在せず、ピクチャ内のサブピクチャの数は1に等しい。
【0219】
同じ又は他の実施形態で、sps_subpic_id_len_minus1+1は、シンタックス要素sps_subpic_id[i]、存在する場合にシンタックス要素pps_subpic_id[i]、及び存在する場合にシンタックス要素slice_subpic_idを表すために使用されるビットの数を指定する。sps_subpic_id_len_minus1の値は、0以上15以下の範囲をとり得る。1<<(sps_subpic_id_len_minus1)の値は、sps_num_subpics_minus1+1以上であり得る。
【0220】
同じ又は他の実施形態で、サブピクチャの数が1に等しい場合に、subpic_info_present_flagは1に等しくなり、サブピクチャパーティショニング情報は明示的にシグナリングされなくてもよい。これは、その場合に、サブピクチャ幅及び高さ情報がピクチャ幅及び高さ情報に等しく、サブピクチャの左上位置がピクチャの左上位置に等しいからである。
【0221】
例えば、subpic_ctu_top_left_x[i]は、CtbSizeYの単位でのi番目のサブピクチャの左上CTUの水平位置を指定する。シンタックス要素の長さは、Ceil(Log2((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。存在しない場合に、subpic_ctu_top_left_x[i]の値は、0に等しい推測される。subpic_ctu_top_left_y[i]は、CtbSizeYの単位でのi番目のサブピクチャの高さの左上CTUの垂直位置を指定する。シンタックス要素の長さは、Ceil(Log2((pic_height_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。存在しない場合に、subpic_ctu_top_left_y[i]の値は、0に等しいと推測される。subpic_width_minus1[i]+1は、CtbSizeYの単位でのi番目のサブピクチャの幅を指定する。シンタックス要素の長さは、Ceil(Log2((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。存在しない場合に、subpic_width_minus1[i]の値は、((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-subpic_ctu_top_left_x[i]-1に等しい推測される。subpic_height_minus1[i]+1は、CtbSizeYの単位でのi番目のサブピクチャの高さを指定する。シンタックス要素の長さは、Ceil(Log2((pic_height_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットである。存在しない場合に、subpic_height_minus1[i]の値は、((pic_height_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-subpic_ctu_top_left_y[i]-1に等しい推測される。
【0222】
同じ又は他の実施形態で、サブピクチャの数が1よりも多い場合に、subpic_info_present_flagは1に等しくなり、サブピクチャパーティショニング情報は、
図23に示されるように、パラメータセットにおいて明示的にシグナリングされ得る。
【0223】
例えば、
図23で、sps_num_subpics_minus2+2は、CLVSでの各ピクチャ内のサブピクチャの数を指定する。sps_num_subpics_minus2の値は、0からCeil(pic_width_max_in_luma_samples÷CtbSizeY)×Ceil(pic_height_max_in_luma_samples÷CtbSizeY)-1以下の範囲をとり得る。存在しない場合に、sps_num_subpics_minus2の値は、0に等しいと推測される。
【0224】
同じ実施形態で、タイル列及び行におけるi番目のサブピクチャの幅及び高さを夫々指定する、0以上sps_num_subpics_minus1以下の範囲内のiについてのリストSubpicWidthInTiles[i]及びSubpicHeightInTiles[i]、並びにi番目のサブピクチャの高さが1タイル行に満たないかどうかを指定する、0以上sps_num_subpics_minus1以下の範囲内のiについてのリストsubpicHeightLessThanOneTileFlag[i]は、次のように導出される:
【数2】
【0225】
rect_slice_flagが1に等しい場合に、i番目のスライスにおけるCTUの数を指定する、0以上num_slices_in_pic_minus1以下の範囲内のiについてのリストNumCtusInSlice[i]、そのスライス内の最初のCTUを含むタイルのタイルインデックスを指定する、0以上num_slices_in_pic_minus1以下の範囲内のiについてのリストSliceTopLeftTileIdx[i]、及びi番目のスライス内のj番目のCTBのピクチャラスタスキャンアドレスを指定する、0以上num_slices_in_pic_minus1以下の範囲内のi及び0以上NumCtusInSlice[i]-1以下の範囲内のjについての行列CtbAddrInSlice[i][j]、並びにi番目のスライスを含むタイル内のスライスの数を指定する変数NumSlicesInTile[i]は、次のように導出される:
【数3】
【0226】
2つ以上の独立してコーディングされたサブピクチャは、コーディングされたピクチャにマージされてもよく、それにより、コーディングされたピクチャは、単一のピクチャとしてデコード及び出力され得る。
【0227】
2つ以上の独立してコーディングされたサブピクチャが、コーディングされたピクチャにマージされる場合に、コーディングされたピクチャは、2つ以上の異なるNALユニットタイプを有するVCL NALユニットからなってもよい。
【0228】
図23で、フラグmixed_nalu_types_in_pic_flagは、パラメータセット(例えば、PPS、SPS)においてシグナリングされてもよい。1に等しいmixed_nalu_types_in_pic_flagは、PPSを参照する各ピクチャが1つよりも多いVCL NALユニットを有し、VCL NALユニットが同じ値のnal_unit_typeを有していないことを指定する。0に等しいmixed_nalu_types_in_pic_flagは、PPSを参照する各ピクチャが1つ以上のVCL NALユニットを有し、PPSを参照する各ピクチャのVCL NALユニットが同じ値のnal_unit_typeを有することを指定する。
【0229】
PPS内のmixed_nalu_types_in_pic_flagが1に等しい場合に、mixed_nalu_types_in_pic_flagを有する各ピクチャは、トレーリング(trailing)ピクチャとして扱われる。従って、2つ以上の異なるNALユニットタイプを有するコーディングされたピクチャは、トレーリングピクチャとしてデコードされ得る。ピクチャがデコーディング順序で後続のピクチャによって参照される場合に、そのピクチャはトレーリングピクチャとして扱われてもよい。
【0230】
図23で、1に等しいsps_independent_subpics_flagは、CLVSにおける全てのサブピクチャ境界がピクチャ境界として扱われ、サブピクチャ境界間にループフィルタリングは存在しないことを指定する。0に等しいsps_independent_subpics_flagは、そのような制約を課さない。存在しない場合に、sps_independent_subpics_flagの値は、0に等しいと推測される。
【0231】
図23で、1に等しいsubpic_treated_as_pic_flag[i]は、CLVSにおける各コーディングされたピクチャのi番目のサブピクチャが、インループフィルタリング動作を除くデコーディングプロセスでピクチャとして扱われることを指定する。0に等しいsubpic_treated_as_pic_flag[i]は、CLVSにおける各コーディングされたピクチャのi番目のサブピクチャが、インループフィルタリング動作を除くデコーディングプロセスでピクチャとして扱われないことを指定する。存在しない場合に、subpic_treated_as_pic_flag[i]の値は、sps_independent_subpics_flagに等しいと推測される。subpic_treated_as_pic_flag[i]が1に等しい場合に、次の条件の全てが、出力レイヤとしてi番目のサブピクチャを含むレイヤを含むOLS内の各出力レイヤ及びその参照レイヤについて真であることは、ビットストリーム一致(bitstream conformance)の要件である。
【0232】
・出力レイヤ及びその参照レイヤ内の全てのピクチャは、同じ値のpic_width_max_in_luma_samples及び同じ値のpic_height_max_in_luma_samplesを有するべきである。
【0233】
・出力レイヤ及びその参照レイヤによって参照される全てのSPSは、同じ値のsps_num_subpics_minus1を有するべきであり、かつ、0以上sps_num_subpics_minus1以下の範囲内のjの各値について、夫々、同じ値のsubpic_ctu_top_left_x[i]、subpic_ctu_top_left_y[i]、subpic_width_minus1[j]、subpic_height_minus1[j]、及びloop_flter_across_subpic_enabled_flag[j]を有するべきである。
【0234】
・出力レイヤ及びその参照レイヤ内の各アクセスユニットの全てのピクチャは、0以上sps_num_subpics_minus1以下の範囲内のjの各値について、同じ値のSubpicIdVal[j]を有するべきである。
【0235】
図23で、1に等しいloop_flter_across_subpic_enabled_flag[i]は、インループフィルタリング動作がCLVSにおける各コーディングされたピクチャ内のi番目のサブピクチャの境界にわたって実行されてもよいことを指定する。0に等しいloop_flter_across_subpic_enabled_flag[i]は、インループフィルタリング動作がCLVSにおける各コーディングされたピクチャ内のi番目のサブピクチャの境界にわたって実行されないことを指定する。存在しない場合に、loop_flter_across_subpic_enabled_flag[i]の値は、1-sps_independent_subpics_flagに等しいと推測される。
【0236】
2つ以上のコーディングされたサブピクチャがコーディングされたピクチャにマージされる場合に、これらのコーディングされたサブピクチャは、互いからの如何なるパージング又はデコーディング依存性も有さなくてもよい。
【0237】
実施形態で、PPS内のmixed_nalu_types_in_pic_flagが1に等しい場合、PPSを参照するサブピクチャのsubpic_treated_as_pic_flag[i]の値は、1に等しくなり得る。
【0238】
実施形態で、sps_independent_subpics_flagが0に等しく、1つ以上のsubpic_treated_as_pic_flag[i]の値が1に等しくない場合に、mixed_nalu_types_in_pic_flagは、0に等しくなり得る。
【0239】
実施形態で、mixed_nalu_types_in_pic_flagが1に等しい場合に、sps_independent_subpics_flagの値は、1に等しくなり得る。
【0240】
実施形態で、PPS内のmixed_nalu_types_in_pic_flagが1に等しい場合に、PPSを参照するサブピクチャのsubpic_treated_as_pic_flag[i]の値は、1に等しいと推測される。
【0241】
実施形態で、ピクチャ内の、NALユニットタイプが異なっている2つ以上の隣接するサブピクチャは、1に等しいsubpic_treated_as_pic_flag[i]の値を有するべきである。
【0242】
実施形態において、
図24で、サブピクチャパーティショニング情報は、PPSでシグナリングされてもよい。例えば、1に等しいpps_independent_subpics_flagは、PPSを参照する全ての境界サブピクチャがピクチャ境界として扱われ、サブピクチャ境界間にループフィルタリングは存在しないことを指定する。0に等しいpps_independent_subpics_flagは、そのような制約を課さない。存在しない場合に、pps_independent_subpics_flagの値は、0に等しいと推測される。1に等しいpps_subpic_treated_as_pic_flag[i]は、PPSを参照する各コーディングされたピクチャのi番目のサブピクチャが、インループフィルタリング動作を除くデコーディングプロセスでピクチャとして扱われることを指定する。0に等しいpps_subpic_treated_as_pic_flag[i]は、PPSを参照する各コーディングされたピクチャのi番目のサブピクチャが、インループフィルタリング動作を除くデコーディングプロセスでピクチャとして扱われないことを指定する。存在しない場合に、pps_subpic_treated_as_pic_flag[i]の値は、pps_independent_subpics_flagに等しいと推測される。1に等しいpps_loop_filter_across_subpic_enabled_flag[i]は、インループフィルタリング動作が、PPSを参照する各コーディングされたピクチャのi番目のサブピクチャの境界にわたって実行されてもよいことを指定する。0に等しいpps_loop_filter_across_subpic_enabled_flag[i]は、インループフィルタリング動作が、PPSを参照する各コーディングされたピクチャのi番目のサブピクチャの境界にわたって実行されないことを指定する。存在しない場合に、pps_loop_filter_across_subpic_enabled_flag[i]の値は、1-pps_independent_subpics_flagに等しいと推測される。
【0243】
同じ実施形態で、PPS内のmixed_nalu_types_in_pic_flagが1に等しい場合に、pps_subpic_treated_as_pic_flag[i]の値は1に等しいはずである。
【0244】
同じ又は他の実施形態で、mixed_nalu_types_in_pic_flagが1に等しい場合に、pps_independent_subpics_flagは1に等しいはずである。
【0245】
同じ又は他の実施形態で、mixed_nalu_types_in_pic_flagが1に等しい場合に、pps_subpic_treated_as_pic_flag[i]は1に等しいはずである。
【0246】
実施形態で、mixed_nalu_types_in_pic_flagが1に等しく、ピクチャの少なくともVCL NALユニットがCRA_NUTに等しいnal_unit_typeを有する場合に、CRAサブピクチャ又はピクチャは、CVS開始ピクチャとして扱われなくてもよい。
【0247】
実施形態で、mixed_nalu_types_in_pic_flagが1に等しく、ピクチャの少なくともVCL NALユニットがCRA_NUTに等しいnal_unit_typeを有する場合に、CRAサブピクチャ又はピクチャに関連した先頭ピクチャが出力され得る。
【0248】
同じ実施形態で、mixed_nalu_types_in_pic_flagが1に等しく、ピクチャの少なくともVCL NALユニットがCRA_NUTに等しいnal_unit_typeを有する場合に、そのピクチャのHandleCraAsCvsStartFlag及びNoOutputBeforeRecoveryFlagは両方とも、0に等しくセットされる。
【0249】
本開示は、いくつかの例となる実施形態について記載してきたが、本開示の範囲内にある代替、交換、及び様々な置換均等物が存在する。よって、明らかなように、当業者であれば、たとえ本明細書で明示的に図示又は説明されていないとしても、本開示の原理を具現し、よって、その精神及び範囲の中にある多数のシステム及び方法に想到可能である。
【国際調査報告】