図1は、本開示の実施形態に従う通信システム(100)の略ブロック図を表す。通信システム(100)は、ネットワーク(150)を介して相互接続されている少なくとも2つの端末(110、120)を含んでよい。データの一方向伝送については、第1端末(110)は、ネットワーク(150)を介した他の端末(120)への伝送のためにローカル位置でビデオデータをコーディングしてよい。第2端末(120)は、他の端末のエンコーディングされたビデオデータをネットワーク(150)から受信し、コーディングされたデータをデコードして、回復されたビデオデータを表示してよい。一方向データ伝送は、メディアサービングアプリケーションなどにおいて一般的であり得る。
図1は、例えば、ビデオ会議中に、現れ得るコーディングされたビデオの双方向伝送をサポートするよう設けられた端末(130、140)の第2対を表す。データの双方向伝送については、各端末(130、140)は、ネットワーク(150)を介した他の端末への伝送のために、ローカル位置で捕捉されたビデオデータをコーディングしてよい。各端末(130、140)はまた、他の端末によって送信されたコーディングされたビデオデータを受信してよく、コーディングされたデータをデコードしてよく、そして、回復されたビデオデータをローカルの表示デバイスで表示してよい。
図1では、端末(110~140)は、サーバ、パーソナルコンピュータ、及びスマートフォン、並びに/又は任意の他のタイプの端末として表され得る。例えば、端末(110~140)は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤー、及び/又は専用のビデオ会議装置であってもよい。ネットワーク(150)は、例えば、ワイヤライン及び/又はワイヤレス通信ネットワークを含む、端末(110~140)の間でコーディングされたビデオデータを伝達する任意数のネットワークを表す。通信ネットワーク(150)は、回路交換及び/又はパケット交換チャネルにおいてデータを交換してよい。代表的なネットワークには、電気通信網、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又はインターネットがある。本議論のために、ネットワーク(150)のアーキテクチャ及びトポロジは、以降で説明されない限りは本開示の動作に無関係であってよい。
図2は、開示されている対象の応用例として、ストリーミング環境におけるビデオエンコーダ及びデコーダの配置を表す。開示されている対象は、例えば、ビデオ会議と、デジタルTVと、CD、DVD、メモリスティックなどを含むデジタル媒体上での圧縮されたビデオの記憶と、などを含む他のビデオ対応用途に同様に適用可能であることができる。
図2で表されているように、ストリーミングシステム(200)は、ビデオソース(201)及びエンコーダ(203)を含むことができる捕捉サブシステム(213)を含んでよい。ビデオソース(201)は、例えば、デジタルカメラであってよく、圧縮されていないビデオサンプルストリーム(202)を生成するよう構成されてよい。圧縮されていないビデオサンプルストリーム(202)は、エンコードされたビデオビットストリームと比較して高いデータボリュームを提供してよく、カメラ(201)へ結合されたエンコーダ(203)によって処理され得る。エンコーダ(203)は、以下で更に詳細に記載されるように、開示されている対象の態様を可能にする又は実装するためのハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができる。エンコードされたビデオビットストリーム(204)は、サンプルストリームと比較して低いデータボリュームを含んでよく、将来の使用のためにストリーミングサーバ(205)に記憶され得る。1つ以上のストリーミングクライアント(206)は、エンコードされたビデオビットストリーム(204)のコピーであってよいビデオビットストリーム(209)を読み出すためにストリーミングサーバ(205)にアクセスすることができる。
実施形態において、ストリーミングサーバ(205)はまた、MANE(Media Aware Network Element)として機能してもよい。例えば、ストリーミングサーバ(205)は、潜在的に異なったビットストリームをストリーミングクライアント(206)の1つ以上に合わせるために、エンコードされたビデオビットストリーム(204)をプルーニングするよう構成されてよい。実施形態において、MANEは、ストリーミングシステム(200)でストリーミングサーバ(205)とは別に設けられてもよい。
ストリーミングクライアント(206)は、ビデオデコーダ(210)及びディスプレイ(212)を含むことができる。ビデオデコーダ(210)は、例えば、エンコードされたビデオビットストリームの入来するコピーであるビデオビットストリーム(209)をデコード、ディスプレイ(212)又は他のレンダリングデバイス(図示せず。)でレンダリングされ得る送出ビデオサンプルストリーム(211)を生成することができる。いくつかのストリーミングシステムでは、ビデオビットストリーム(204、209)は、特定のビデオコーディング/圧縮規格に従ってエンコードされ得る。そのような規格の例には、ITU-T推奨H.265があるが、これに限られない。バーサタイル・ビデオ・コーディング(Versatile Video Coding,VVC)として俗に知られているビデオコーディング規格が開発中である。本開示の実施形態は、VVCとの関連で使用されてもよい。
図3は、本開示の実施形態に従って、ディスプレイ(212)に取り付けられているビデオデコーダ(210)の例となる機能ブロック図を表す。
ビデオデコーダ(210)は、チャネル(312)、受信器(310)、バッファメモリ(315)、エントロピデコーダ/パーサ(320)、スケーラ/逆変換ユニット(351)、イントラ予測ユニット(352)、動き補償予測ユニット(353)、アグリゲータ(355)、ループフィルタユニット(356)、参照ピクチャメモリ(357)、及び現在ピクチャメモリ(358)を含んでよい。少なくとも1つの実施形態で、ビデオデコーダ(210)は、集積回路、集積回路の連続、及び/又は他の電子回路を含んでよい。ビデオデコーダ(210)はまた、関連するメモリとともに1つ以上のCPUで実行されるソフトウェアで部分的に又は全体的に具現されてもよい。
この実施形態及び他の実施形態で、受信器(310)は、ビデオデコーダ(210)によってデコードされるべき1つ以上のコーディングされたビデオシーケンスを一度に1つずつ受信してよい。ここで、夫々のコーディングされたビデオシーケンスの復号化(デコード)は、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(312)から受信されてよく、チャネルは、エンコードされたビデオデータを記憶している記憶デバイスへのハードウェア/ソフトウェアリンクであってよい。受信器(310)は、エンコードされたビデオデータを他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリームとともに受信してよく、それらは、それらの各々の使用エンティティ(図示せず。)へ転送されてよい。受信器(310)は、コーディングされたビデオシーケンスを他のデータから分離してよい。ネットワークジッタに対抗するために、バッファメモリ(315)が受信器(310)とエントロピデコーダ/パーサ(320)(以降「パーサ」)との間に結合されてもよい。受信器(310)が十分なバンド幅及び可制御性の記憶/転送デバイスから、又はアイソシンクロナス(isosynchronous)ネットワークからデータを受信しているときに、バッファ(315)は使用されなくてもよく、あるいは、小さくてよい。インターネットなどのベストエフォートのパケットネットワークでの使用のために、バッファ(315)は必要とされる場合があり、比較的に大きくかつ適応サイズであることができる。
ビデオデコーダ(210)は、エントロピコーディングされたビデオシーケンスからシンボル(321)を再構成するためのパーサ(320)を含んでよい。それらのシンボルのカテゴリは、例えば、デコーダ(210)の動作を管理するために使用される情報と、潜在的に、図2で表されるようにデコーダへ結合され得るディスプレイ(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)、などを含むことができる。パーサ(320)はまた、変換係数などのコーディングされたビデオシーケンス情報から、量子化パラメータ値、動きベクトル、なども抽出してよい。
パーサ(320)は、シンボル(321)を生成するために、バッファ(315)から受信されたビデオシーケンスに対してエントロピ復号化/パージング動作を実行してよい。
シンボル(321)の再構成は、コーディングされたビデオピクチャ又はその部分(例えば、インター及びイントラピクチャ、インター及びイントラブロック)のタイプ及び他の因子に応じて多種多様なユニットを有することができる。どのユニットが含まれるか、及びそれらがどのように含まれるかは、コーディングされたビデオシーケンスからパーサ(320)によってパースされたサブグループ制御情報によって制御され得る。パーサ(320)と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明りょうさのために表されていない。
既に述べられた機能ブロックを超えて、デコーダ210は、概念的に、以下で説明される多数の機能ユニットに細分され得る。商業上の制約の下で動作する実際の実施では、それらのユニットの多くが互いに密に相互作用し、少なくとも部分的に互いに組み込まれ得る。しかし、開示されている対象を説明することを目的として、以下での機能ユニットへの概念的細分は適切である。
1つのユニットは、スケーラ/逆変換ユニット(351)である。スケーラ/逆変換ユニット(351)は、パーサ(320)からシンボル(321)として、量子化された変換係数とともに、使用するために変換するもの、ブロックサイズ、量子化係数、量子化スケーリングマトリクスなどを含む制御情報を受信してよい。スケーラ/逆変換ユニット(351)は、アグリゲータ(355)へ入力することができるサンプル値を含むブロックを出力することができる。
いくつかの場合に、スケーラ/逆変換ユニット(351)の出力サンプルは、イントラコーディングされたブロック、すなわち、前に再構成されたピクチャからの予測情報を使用しておらず、現在のピクチャの前に再構成された部分からの予測情報を使用することができるブロック、に関係することができる。そのような予測情報は、イントラピクチャ予測ユニット(352)によって供給され得る。いくつかの場合に、イントラピクチャ予測ユニット(352)は、現在ピクチャメモリ(358)からの現在の(部分的に再構成された)ピクチャからフェッチされた周囲の既に再構成された情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成する。アグリゲータ(355)は、いくつかの場合に、サンプルごとに、イントラ予測ユニット(352)が生成した予測情報を、スケーラ/逆変換ユニット(351)によって供給される出力サンプル情報に加える。
他の場合では、スケーラ/逆変換ユニット(351)の出力サンプルは、インターコーディングされた、そして潜在的に動き補償されたブロックに関係することができる。そのような場合に、動き補償予測ユニット(353)は、予測のために使用されるサンプルをフェッチするよう参照ピクチャメモリ(357)にアクセスすることができる。ブロックに関係するシンボル(321)に従って、フェッチされたサンプルを動き補償した後に、それらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(355)によって、スケーラ/逆変換ユニット(3451)の出力(この場合に、残差サンプル又は残差信号と呼ばれる。)に加えられ得る。動き補償予測ユニット(353)が予測サンプルをフェッチする参照ピクチャメモリ(357)内のアドレスは、動きベクトルによって制御され得る。動きベクトルは、例えば、X、Y及び参照ピクチャコンポーネントを有することができるシンボル(321)の形で動き補償予測ユニット(353)が利用することができるものであってよい。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(357)からフェッチされるサンプル値の補間や、動きベクトル予測メカニズムなどを含むこともできる。
アグリゲータ(355)の出力サンプルは、ループフィルタユニット(356)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、インループフィルタ技術を含むことができる。この技術は、コーディングされたビデオビットストリームに含まれており、パーサ(320)からのシンボル(321)としてループフィルタユニット(356)に利用可能にされたパラメータによって制御されるが、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(復号化順序において)前の部分の復号化中に得られたメタ情報にも応答することができ、更には、前に構成されたループフィルタ処理されたサンプル値に応答することができる。
ループフィルタユニット(356)の出力は、ディスプレイ(212)などのレンダーデバイスへ出力され、更には、将来のインターピクチャ予測における使用のために参照ピクチャメモリ(357)に記憶され得るサンプルストリームであることができる。
特定のコーディングされたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用され得る。コーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(320)によって)参照ピクチャとして識別されると、現在の参照ピクチャが参照ピクチャメモリ(357)の部分になることができ、未使用の現在ピクチャメモリは、後続のコーディングされたピクチャの再構成を開始する前に再割当てされ得る。
ビデオデコーダ(210)は、ITU-T Rec. H.265などの規格で文書化されることがある所定のビデオ圧縮技術に従って復号化動作を実行してよい。コーディングされたビデオシーケンスは、それが、ビデオ圧縮技術文書又は規格で、具体的にはその中のプロファイル文書で、定められているビデオ圧縮技術又は規格のシンタックスに従うという意味で、使用中のビデオ圧縮技術又は規格によって規定されたシンタックスに従い得る。また、いくつかのビデオ圧縮技術又は規格に従うために、コーディングされたビデオシーケンスの複雑さは、ビデオ圧縮技術又は規格のレベルによって定義された境界内にあってよい。いくつかの場合に、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、メガサンプル/秒で測定される。)、最大参照ピクチャサイズ、などを制限する。レベルによって設定された制限は、いくつかの場合に、ハイポセティカル・リファレンス・デコーダ(Hypothetical Reference Decoder,HRD)仕様及びコーディングされたビデオシーケンスにおいて通知されるHRDバッファ管理のためのメタデータを通じて更に制限され得る。
実施形態において、受信器(310)は、エンコードされたビデオとともに、追加の(冗長な)データを受信してもよい。追加のデータは、コーディングされたビデオシーケンスの部分としても含まれてもよい。追加のデータは、ビデオデコーダ(210)によって、データを適切にデコードするために及び/又は原ビデオデータをより正確に再構成するために使用されてよい。追加のデータは、例えば、時間、空間、又は信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正符号、などの形をとることができる。
図4は、本開示の実施形態に従って、ビデオソース(201)に関連したビデオエンコーダ(203)の例となる機能ブロック図を表す。
ビデオエンコーダ(203)は、例えば、ソースコーダ(430)であるエンコーダ、コーディングエンジン(432)、(ローカル)デコーダ(433)、参照ピクチャメモリ(434)、予測器(435)、送信器(440)、エントロピコーダ(445)、コントローラ(450)、及びチャネル(460)を含んでよい。
エンコーダ(203)は、エンコーダ(203)によってコーディングされるべきビデオ画像を捕捉し得るビデオソース(201)(エンコーダの部分ではない。)からビデオサンプルを受け取ってよい。
ビデオソース(201)は、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビットなど)、任意の色空間(例えば、BT.601 YCrCB、RGBなど)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形で、エンコーダ(203)によってコーディングされるべきソースビデオシーケンスを供給してよい。メディアサービングシステムでは、ビデオソース(201)は、前に準備されたビデオを記憶している記憶デバイスであってもよい。ビデオ会議システムでは、ビデオソース(201)は、ローカル画像情報をビデオシーケンスとして捕捉するカメラであってもよい。ビデオデータは、順に見られる場合に動きを授ける複数の個別ピクチャとして供給されてもよい。ピクチャ自体は、ピクセルの空間アレイとして編成されてよく、各ピクセルは、使用中のサンプリング構造、色空間、などに依存する1つ以上のサンプルを有することができる。当業者であれば、ピクセルとサンプルとの間の関係を容易に理解することができる。本明細書は、以下、サンプルに焦点を当てる。
実施形態に従って、エンコーダ(203)は、実時間において又は用途によって必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャを、コーディングされたビデオシーケンス(443)へとコーディング及び圧縮してよい。適切なコーディング速度を強いることは、コントローラ(450)の一機能である。コントローラ(450)はまた、以下で記載されるような他の機能ユニットを制御してもよく、それらのユニットへ機能的に結合されてもよい。結合は明りょうさのために表されていない。コントローラ(450)によってセットされるパラメータには、レート制御に関連したパラメータ(ピクチャスキップ、量子化器、レートひずみ最適化技術のラムダ値、など)、ピクチャサイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲、などが含まれ得る。当業者は、コントローラ(450)の他の機能を、それらが特定のシステム設計のために最適化されたビデオエンコーダ(203)に関係し得るということで、容易に識別することができる。
いくつかのビデオエンコーダは、当業者が「コーディングループ」として容易に実現するものにおいて動作する。過度に単純化された記載として、コーディングループは、ソースコーダ(430)の符号化部分(コーディングされるべき入力ピクチャと、参照ピクチャとに基づいて、シンボルを生成することに関与する。)と、シンボルとコーディングされたビデオビットストリームとの間の圧縮が特定のビデオ圧縮技術で可逆であるときに(遠隔の)デコーダも生成することになるサンプルデータを生成するようシンボルを再構成する、ビデオエンコーダ(203)に埋め込まれた(ローカルの)デコーダ(433)とから成ることができる。その再構成されたサンプルストリームは、参照ピクチャメモリ(434)へ入力されてよい。シンボルストリームの復号化は、デコーダの場所(ローカル又は遠隔)に依存しないビットパーフェクト(bit-exact)な結果をもたらすので、参照ピクチャメモリコンテンツも、ローカルのエンコーダと遠隔のエンコーダとの間でビットパーフェクトである。すなわち、エンコーダの予測部分は、デコーダが復号化中に予測を使用するときに“見る”ことになるのとまさに同じサンプル値を参照ピクチャサンプルとして“見る”。参照ピクチャのシンクロニシティ(及び、例えば、チャネルエラーのために、シンクロニシティが維持され得ない場合に、結果として生じるドリフト)のこの基本原理は、当業者に知られている。
“ローカル”のデコーダ(433)の動作は、図3とともに既に詳細に上述されている、“遠隔”のデコーダ(210)と同じであることができる。しかしながら、シンボルが利用可能であり、エントロピコーダ(445)及びパーサ(320)によるコーディングされたビデオシーケンスへのシンボルの符号化/復号化が可逆であることができるので、チャネル(312)、受信器(310)、バッファ(315)、及びパーサ(320)を含むデコーダ(210)のエントロピ復号化部分は、ローカルのデコーダ(433)において完全には実施されなくてもよい。
この時点で行われ得る観察は、デコーダに存在するパージング/エントロピ復号化を除く如何なるデコーダ技術も、対応するエンコーダにおいて実質的に同じ機能形態で存在する必要があり得ることである。この理由により、開示されている対象は、デコーダの動作に焦点を当てる。エンコーダ技術の説明は、それらが、包括的に記載されているデコーダ技術の逆であってよいということで、省略可能である。特定の範囲においてのみ、より詳細な説明が必要とされ、以下で与えられている。
その動作の部分として、ソースコーダ(430)は、動き補償された予測コーディングを実行してよい。これは、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の前にコーディングされたフレームを参照して予測的に入力ピクチャをコーディングする。このようにして、コーディングエンジン(432)は、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックと入力ピクチャのピクセルブロックとの間の差をコーディングする。
ローカルのビデオデコーダ(433)は、ソースコーダ(430)によって生成されたシンボルに基づいて、参照フレームとして指定され得るフレームのコーディングされたビデオデータをデコードしてよい。コーディングエンジン(432)の動作は、有利なことに、不可逆プロセスであってよい。コーディングされたビデオデータがビデオデコーダ(図4には図示せず。)でデコードされ得るとき、再構成されたビデオシーケンスは、通常は、いくらかのエラーを伴ったソースビデオシーケンスの複製であり得る。ローカルのビデオデコーダ(433)は、参照フレームに対してビデオデコーダによって実行され得る復号化プロセスを再現し、再構成された参照フレームを参照ピクチャメモリ(434)に格納されるようにしてよい。このように、エンコーダ(203)は、(伝送エラーなしで)遠端のビデオデコーダによって取得されることになる再構成された参照フレームと共通の内容を有している再構成された参照ピクチャのコピーをローカルで記憶し得る。
予測器(435)は、コーディングエンジン(432)の予測探索を実行してよい。すなわち、新しいピクチャがコーディングされるために、予測器(435)は、その新しいピクチャのための適切な予測基準となり得る参照ピクチャ動きベクトル、ブロック形状、などの特定のメタデータ又は(候補参照ピクセルブロックとしての)サンプルデータを参照ピクチャメモリ(434)から探してよい。予測器(435)は、適切な予測基準を見つけるためにサンプルブロック・バイ・ピクセルブロックベース(sample block-by-pixel block basis)で動作してよい。いくつかの場合に、予測器(435)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(434)に記憶されている複数の参照ピクチャから引き出された予測基準を有してよい。
コントローラ(450)は、例えば、ビデオデータをエンコードするために使用されるパラメータ及びサブグループパラメータの設定を含め、ビデオコーダ(430)のコーディング動作を管理してもよい。
上記の全ての機能ユニットの出力は、エントロピコーダ(445)においてエントロピコーディングを受けてよい。エントロピコーダ(445)は、ハフマンコーディング、可変長コーディング、算術コーディングなどとして当業者に知られている技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを、コーディングされたビデオシーケンスへと変換する。
送信器(440)は、エントロピコーダ(445)によって生成されたコーディングされたビデオシーケンスを、通信チャネル(460)を介した伝送のために準備するようにバッファリングしてよい。通信チャネル(460)は、エンコードされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってよい。送信器(440)は、ビデオコーダ(430)からのコーディングされたビデオデータを、送信されるべき他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリーム(ソースは図示せず)とマージしてもよい。
コントローラ(450)は、エンコーダ(203)の動作を管理してもよい。コーディング中、コントローラ(450)は、各々のピクチャに適用され得るコーディング技術に影響を及ぼす可能性がある特定のコーディングされたピクチャタイプを各コーディングされたピクチャに割り当ててよい。例えば、ピクチャはしばしば、イントラピクチャ(Iピクチャ)、予測ピクチャ(Pピクチャ)、又は双方向予測ピクチャ(Bピクチャ)として割り当てられてよい。
イントラピクチャ(Intra Picture)(Iピクチャ)は、予測のソースとしてシーケンス内の如何なる他のピクチャも使用せずにコーディング及びデコードされ得るピクチャであってよい。いくつかのビデオコーデックは、例えば、独立したデコーダリフレッシュ(Independent Decoder Refresh,IDR)ピクチャを含む種々のタイプのイントラピクチャを許容する。当業者であれば、Iピクチャのそのような変形並びにそれらの各々の応用及び特徴を知っている。
予測ピクチャ(Predictive Picture)(Pピクチャ)は、各ブロックのサンプル値を予測するために多くても1つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及びデコードされ得るピクチャであってよい。
双方向予測ピクチャ(Bi-directionally Predictive Picture)(Bピクチャ)は、各ブロックのサンプル値を予測するために多くても2つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及び復号化され得るピクチャであってよい。同様に、多重予測ピクチャ(multiple-predictive picture(s))は、単一のブロックの再構成のために2つよりも多い参照ピクチャ及び関連するメタデータを使用することができる。
ソースピクチャは、一般に、複数のサンプルブロック(例えば、夫々、4×4、8×8、4×8、又は16×16のサンプルのブロック)に空間的に細分され、ブロックごとにコーディングされてよい。ブロックは、ブロックの各々のピクチャに適用されているコーディング割り当てによって決定される他の(既にコーディングされた)ブロックを参照して予測的にコーディングされてよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてよく、あるいは、それらは、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、非予測的に、あるいは、1つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、コーディングされてよい。Bピクチャのブロックは、非予測的に、あるいは、1つ又は2つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、コーディングされてよい。
ビデオコーダ(203)は、ITU-T Rec. H.265のような所定のビデオコーディング技術又は規格に従ってコーディング動作を実行してよい。その動作中に、ビデオコーダ(203)は、入力ビデオシーケンスにおける時間及び空間冗長性を利用する予測コーディング動作を含む様々な圧縮動作を実行してよい。従って、コーディングされたビデオデータは、使用されているビデオコーディング技術又は規格によって定められているシンタックスに従い得る。
実施形態において、送信器(440)は、エンコードされたビデオとともに追加のデータを送信してもよい。ソースコーダ(430)は、コーディングされたビデオシーケンスの部分としてそのようなデータを含めてよい。追加のデータは、時間/空間/SNRエンハンスメントレイヤ、冗長ピクチャ及びスライスなどの他の形式の冗長データ、SEIメッセージ又はVUIパラメータセットフラグメント、などを有してよい。
本開示の実施形態の特定の態様について更に詳細に説明する前に、本明細書の残りで言及される2、3の項目が、以下で紹介される。
「サブピクチャ」は、以降、いくつかの場合に、意味的にグループ分けされており、変更された解像度で独立してコーディングされ得るサンプル、ブロック、マクロブロック、コーディングユニット、又は同様のエンティティの長方形配置を指す。1つ以上のサブピクチャは、ピクチャを形成してよい。1つ以上のコーディングされたサブピクチャは、コーディングされたピクチャを形成してよい。1つ以上のサブピクチャは、ピクチャにまとめられてもよく、1つ以上のサブピクチャは、ピクチャから抽出されてもよい。特定の環境で、1つ以上のコーディングされたサブピクチャは、同じレベルにトランスコーディングせずに圧縮領域で、コーディングされたピクチャにまとめられてもよく、同じ又は特定の他の場合には、1つ以上のコーディングされたサブピクチャは、圧縮領域で、コーディングされたサブピクチャから抽出されてもよい。
「適応解像度変更」(Adaptive Resolution Change,ARC)は、以降、コーディングされたビデオシーケンス内のピクチャ又はサブピクチャの解像度の変化を、例えば、参照ピクチャリサンプリングによって、可能にするメカニズムを指す。「ARCパラメータ」は、以降、適応解像度変更を実行するために必要な制御情報を指し、例えば、フィルタパラメータ、スケーリング係数、出力及び/又は参照ピクチャの解像度、様々な制御フラグ、などを含んでよい。
上記の説明は、単一の、意味的に独立したコーディングされたビデオピクチャのコーディング及び復号化に焦点を当てる。独立したARCパラメータによる複数のサブピクチャのコーディング/復号化の意味合い及びその暗黙的な更なる複雑性について記載する前に、ARCパラメータのシグナリングについての実施形態が説明されるべきである。
図6A~6Cを参照すると、ARCパラメータのシグナリングについてのいくつかの新規の例となる実施形態が示されている。実施形態の夫々により述べられているように、それらは、コーディング効率、複雑性、及びアーキテクチャ視点から特定の利点を有している。ビデオコーディング規格又は技術は、これらの実施形態のうちの1つ以上を実装してよく、ARCパラメータのシグナリングについての、対比技術から知られている実施形態も含んでよい。対比技術の実施形態は、図5A~5Bで表されている例を含む。新規の実施形態は、相互排他的でなくてよく、考えられる限りは、対比技術の実施形態も含む規格又は技術に含まれてもよく、それにより、どちらも、アプリケーションニーズ、関連する標準技術、又はエンコーダの選択に基づいて使用され得る。
ARCパラメータの分類には、(1)X及びY次元で別々であるか又は結合されているアップ/ダウンサンプル係数、又は(2)所与の数のピクチャについて一定速度のズームイン/アウトを示す時間次元を追加されたアップ/ダウンサンプル係数、が含まれてよい。上記の2つのうちのどちらも、その係数を含む表を指し示し得る1つ以上のシンタックス要素のコーディング又は復号化を伴ってよい。そのようなシンタックス要素は、実施形態では、長さが短くてもよい。
「解像度」は、組み合わせて又は別々に、入力ピクチャ、出力ピクチャ、参照ピクチャ、コーディングされたピクチャのサンプル、ブロック、マクロブロック、CU、又は任意の他の適切な粒度の単位で、X又はY次元での解像度を指してよい。1つよりも多い解像度がある場合に(例えば、入力ピクチャについて1つと参照ピクチャについて1つ)、特定の場合に、ひと組の値が他の組の値から推測されてもよい。解像度は、例えば、フラグの使用によって、ゲーティング(gated)されてもよい。解像度のより詳細な例は、以下で更に与えられる。
「ワーピング」(Warping)座標は、H.263 Annex Pで使用されるものと同種であって、上述された適切な粒度にあってよい。H.263 Annex Pは、そのようなワーピング座標をコーディングするための1つの効率的な方法を定義するが、他の、潜在的により効率的な方法も、考えられる限りは、使用されてよい。例えば、Annex Pのワーピング座標の可変長リバーシブルな「ハフマン」スタイルコーディングは、適切な長さのバイナリコーディングで置換されてもよく、このとき、バイナリコードワードの長さは、例えば、最大ピクチャサイズから導出されて、場合により、最大ピクチャサイズの境界の外での「ワーピング」を可能にするために、特定の係数を乗じられかつ特定の値でオフセットされてもよい。
アップ又はダウンサンプルフィルタパラメータを参照して、最も簡単な場合に、アップ及び/又はダウンサンプリングのための単一のフィルタしか存在しなくてもよい。しかし、特定の場合に、フィルタ設計における更なる柔軟性を可能にすることが有利であり得る。これは、フィルタパラメータのシグナリングによって実装されてよい。そのようなパラメータは、とり得るフィルタ設計のリストにおいてインデックスにより選択されてよく、フィルタは、(例えば、適切なエントロピコーディング技術を用いてフィルタ係数のリストを通じて)完全に指定されてもよく、かつ/あるいは、フィルタは、上記のメカニズムのいずれかなどに従ってシグナリングされるアップ/ダウンサンプル比により暗黙的に選択されてもよい。
以降、説明は、有限なアップ/ダウンサンプル係数の組(同じ係数がX及びYの両方の次元で使用される。)のコーディングがコードワードにより示される、例となる場合を前提とする。そのコードワードは、有利なことに、例えば、H.264及びH.265などのビデオコーディング規格で特定のシンタックス要素に共通なExt-Golombコードを使用することによって、可変長コーディングされ得る。アップ/ダウンサンプル係数への値の1つの適切なマッピングは、例えば、以下の表1に従うことができる。
多くの類似したマッピングが、ビデオ圧縮技術又は規格で利用可能なアップ及びダウンスケールメカニズムの適用のニーズ及び能力に従って考案され得た。表は、より多くの値に拡張されてもよい。値はまた、Ext-Golombコード以外のエントロピコーディングメカニズムによって(例えば、バイナリコーディングを用いて)表されてもよい。これは、リサンプリング係数が、例えば、MANEによって、ビデオ処理エンジン(エンコーダ及びデコーダなど)自体の外で重要である場合に、特定の利点を有し得る。解像度変更が不要である(おそらく)最も一般的な場合について、短い(例えば、表1の2行目に示されているような、単一ビットのみ)Ext-Golombコードが選択可能であることが留意されるべきであり、これは、その最も一般的な場合のためにバイナリコードを使用することよりもコーディング効率が優れている可能性がある。
表中のエントリの数及びそれらのセマンティクスは、完全に又は部分的に設定可能であってよい。例えば、表の基本概要は、シーケンス又はデコーダパラメータセットなどの「ハイ」パラメータセットで運ばれてよい。代替的に、又は追加的に、1つ以上のそのような表は、ビデオコーディング技術又は規格で定義されてもよく、例えば、デコーダ又はシーケンスパラメータセットにより選択されてもよい。
以下では、上述されたようにコーディングされているアップサンプル/ダウンサンプル係数(ARC情報)がビデオコーディング技術又は標準シンタックスにどのように含まれ得るかの説明が与えられる。同様の考えは、アップ/ダウンサンプルフィルタを制御する1つ又は数個のコードワードに当てはまる。以下ではまた、比較的大量のデータがフィルタ又は他のデータ構造のために必要とされ得る場合に関する説明も与えられる。
図5Aを参照して、H.263 Annex Pは、ピクチャヘッダ(501)内の4つのワーピング座標の形で、具体的に、H.263 PLUSPTYPE(503)ヘッダ拡張において、ARC情報(502)を含める。そのような設計は、(a)利用可能なピクチャヘッダが有り、かつ、(b)ARC情報の頻繁な変化が期待される、場合に適切であり得る。しかし、H.263スタイルシグナリングを使用する場合のオーバーヘッドは極めて高くなる可能性があり、スケーリング係数は、ピクチャヘッダが過渡的な性質を有し得るので、ピクチャ境界に付随しないことがある。
図5Bを参照して、JVCET-M135-v1は、シーケンスパラメータセット(507)の中に位置している目標解像度を含む表(506)を含むピクチャパラメータセット(504)に(インデックス)位置しているARC参照情報(505)を含む。シーケンスパラメータセット(507)における表(506)でのとり得る解像度の配置は、能力交換(capability exchange)中に相互運用ネゴシエーションポイント(interoperability negotiation point)としてSPS(507)を使用することによって正当化されてよい。解像度は、適切なピクチャパラメータセット(504)を参照することによってピクチャごとに表(506)の値によってセットされた限界内で変化し得る。
図6A~6Cを参照して、本開示の次の実施形態は、ARC情報をビデオビットストリームで、例えば、本開示のデコーダへ、運んでよい。これらの実施形態の夫々は、上記の対比技術に対して特定の利点を有する。実施形態は、同時に、同じビデオコーディング技術又は規格において存在してもよい。
実施形態において、図6Aを参照して、リサンプリング(ズーム)係数などのARC情報(509)は、例えば、スライスヘッダ、GOBヘッダ、タイルヘッダ、又はタイルグループヘッダなどのヘッダ(508)に存在してよい。例として、図6Aは、タイルグループヘッダとしてヘッダ(508)を表す。そのような構成は、例えば、表1に示されるような、数ビットの単一の可変長ue(v)又は固定長コードワードのように、ARC情報が小さい場合に、適切であることができる。タイルグループヘッダで直接にARC情報を有することは、ARC情報が、例えば、ピクチャ全体ではなく、タイルグループヘッダに対応するタイルグループによって表されるサブピクチャに適用可能であり得るという付加的な利点を有している。更には、たとえビデオ圧縮技術又は規格が(例えば、タイルグループに基づいた適応的な解像度変化とは対照的に)ピクチャ全体にのみ適応可能な解像度変化を使用するとしても、ARC情報をタイルグループヘッダに(例えば、H263スタイルのピクチャヘッダに)置くことは、誤り耐性の観点から特定の利点を有する。上記の説明は、タイルグループヘッダに存在するARC情報(509)について記載しているが、上記の説明はまた、ARC情報(509)が、例えば、スライスヘッダ、GOBヘッダ、又はタイルヘッダに存在する場合にも、同様に当てはまり得る。
同じ又は他の実施形態において、図6Bを参照して、ARC情報(512)自体が、例えば、ピクチャパラメータセット、ヘッダパラメータセット、タイルパラメータセット、適応パラメータセット、などのような適切なパラメータセット(511)であってもよい。例として、図6Bは、適応パラメータセット(Adaptation Parameter Set,APS)としてパラメータセット(511)を表す。そのパラメータセットの範囲は、有利なことに、ピクチャよりも大きくならない。例えば、パラメータセットの範囲はタイルグループであってもよい。ARC情報(512)の使用は、関連するパラメータセットの活性化を通じて潜在してもよい。例えば、ビデオコーディング技術又は規格がピクチャベースのARCのみを企図する場合に、ピクチャパラメータセット又は同等物は、関連するパラメータセットとして適切であり得る。
同じ又は他の実施形態において、図6Cを参照して、ARC参照情報(513)は、タイルグループヘッダ(514)又は類似したデータ構造に存在してもよい。ARC参照情報(513)は、単一のピクチャを越える範囲でパラメータセット(516)において利用可能なARC情報(515)のサブセットを参照することができる。例えば、パラメータセット(516)は、シーケンスパラメータセット(SPS)又はデコーダパラメータセット(DPS)であってよい。
JVCET-M135-v1で使用されるタイルグループヘッダ、PPS、又はSPSからのPPSの追加レベルの間接的な暗黙の活性化は、ピクチャパラメータセットが、シーケンスパラメータセットと同様に、能力交換又は告示のために使用可能であるから、不要であり得る。しかし、ARC情報が、例えば、タイルグループによっても表されるサブピクチャに適用可能であるべき場合には、タイルグループに制限された活性化範囲を有するパラメータセット(例えば、適応パラメータセット又はヘッダパラメータセット)がより良い選択である場合がある。また、ARC情報が無視してよいサイズよりも大きい、例えば、多数のフィルタ係数などのフィルタ制御情報を含む、場合には、パラメータは、コーディング効率の観点から、直接にヘッダを使用することよりも良い選択である場合がある。これは、そのような設定が、同じパラメータセットを参照することによって将来のピクチャ又はサブピクチャによって再利用可能であり得るからである。
複数のピクチャに及ぶ範囲でシーケンスパラメータセット又は他のより高いパラメータセットを使用する場合に、特定の考えが適用されてよい。
(1)表にARC情報(515)を格納するためのパラメータセット(516)は、いくつかの場合に、シーケンスパラメータセットであることができるが、他の場合には、有利なことに、デコーダパラメータセットであることができる。デコーダパラメータセットは、複数のCVS、つまり、コーディングされたビデオストリームの活性化範囲、すなわち、セッション開始からセッション終了(session teardown)までの全てのコーディングされたビデオビットを有することができる。とり得るARC係数が、場合によりハードウェアで実装されるデコーダ特徴であり、ハードウェア特徴は、如何なるCVS(少なくともいくつかのエンターテイメントシステムでは、長さが1秒以下であるグループ・オブ・ピクチャである)でも変化しない傾向があるので、そのような範囲は、より適切であることができる。それでもなお、いくつかの実施形態は、特に、以下の点(2)に関連して、ここで記載されているように、シーケンスパラメータセットにARC情報の表を含めてよい。
(2)ARC参照情報(513)は、有利なことに、JVCET-M135-v1で見られるようにピクチャパラメータセットにではなくヘッダ(514)(例えば、ピクチャ/スライスタイル/GOB/タイルグループヘッダ;以降、タイルグループヘッダ)に直接に置かれてよい。理由は、次の通りである:エンコーダが、例えば、ARC参照情報などの、ピクチャパラメータセット内の単一の値を変更したい場合に、エンコーダは、新しいPPSを生成し、その新しいPPSを参照しなければならないことがある。ARC参照情報しか変化せず、例えば、PPS内の量子化マトリクス情報などの他の情報はそのままである場合に、そのような情報はかなりのサイズになる可能性があり、新しいPPSを完成させるために再送される必要がある。ARC参照情報は、変化する唯一の値となる、ARC情報内のインデックスなどの、単一のコードワードである場合があるので、例えば、全ての量子化マトリクス情報を再送することは、面倒かつ無駄になる。従って、ヘッダ(例えば、ヘッダ(514))に直接にARC参照情報を置くことは、JVCET-M135-v1で提案されているようなPPSを通じた間接参照が回避可能であるから、コーディング効率の観点から相当に優れている可能性がある。また、ARC参照情報をPPSに置くことは、ピクチャパラメータセット活性化の範囲がピクチャであるということで、ARC参照情報によって参照されるARC情報が必然的にサブピクチャにではなくピクチャ全体に適用される必要があるという追加の利点を有する。
同じ又は他の実施形態において、ARCパラメータのシグナリングは、図7A~7Bで説明される詳細な例に従うことができる。図7A~7Bは、シンタックスダイアグラムを表す。そのようなシンタックスダイアグラムの表記法は、Cスタイルプログラミングにおおよそ従う。太字の行は、ビットストリームに存在するシンタックス要素を示し、太字でない行は、しばしば、制御フロー又は変数の設定を示す。
ピクチャの(場合により長方形の)部分に適用可能なヘッダの例となるシンタックス構造として、タイルグループヘッダ(600)は、可変長のExp-Golombコーディングされたシンタックス要素dec_pic_size_idx(602)(太字で表示)を条件付きで含むことができる。タイルグループヘッダ(600)におけるこのシンタックス要素の存在は、適応解像度(603)の使用によってゲーティングされ得る。ここで、適応解像度フラグの値は太字で表されていない。これは、フラグが、シンタックスダイアグラムで発生する時点でビットストリームに存在することを意味する。適応解像度がこのピクチャ又はその部分に対して使用中であるか否かは、ビットストリーム内又は外の如何なる高レベルシンタックス構造でもシグナリングされ得る。図7A~7Bで表されている例では、適応解像度は、以下で説明されるようにシーケンスパラメータセット(610)でシグナリングされる。
図7Bは、シーケンスパラメータセット(610)の抜粋を表す。示されている最初のシンタックス要素は、adaptive_pic_resolution_change_flag(611)である。真である場合に、そのようなフラグは、適応解像度の使用を示すことができ、翻って、特定の制御情報を必要とし得る。例において、そのような制御情報は、シーケンスパラメータセット(610)及びタイルグループヘッダ(600)においてif()文に基づくフラグの値に基づいて条件付きで存在する。
適応解像度が使用中である場合に、この例では、サンプルのユニットで出力解像度がコーディングされる。この例となる実施形態での出力解像度(613)は、シンタックス要素output_pic_width_in_luma_samples及びoutput_pic_hight_in_luma_samplesの両方を参照する。これらは一緒に、出力ピクチャの解像度を定義することができる。ビデオコーディング技術又は規格の他の場所で、どちらかの値に対する特定の制限が定義され得る。例えば、レベル定義は、上記の2つのシンタックス要素の値の積であることができる総出力サンプル数を制限してよい。また、特定のビデオコーディング技術又は規格、あるいは、例えば、システム規格などの外部技術又は規格は、番号付け範囲(例えば、一方又は両方の次元が2の累乗で割り切れる必要がある)、又はアスペクト比(例えば、幅及び高さは4:3又は16:9などの関係になければならない)を制限してもよい。そのような制限は、ハードウェア実装を容易にするために,又は他の理由のために、導入されてもよい。
特定のアプリケーションで、エンコーダは、サイズを出力ピクチャサイズであると暗黙的に想定するのではなく、特定のピクチャサイズを使用するようにデコーダに指示することが賢明であることができる。この例では、シンタックス要素reference_pic_size_present_flag(614)は、参照ピクチャ次元(615)の条件付きの存在をゲーティングする(先と同じく、数字は、例となる実施形態で、幅及び高さの両方を参照する)。
図7Bは、とり得る復号化ピクチャ幅及び高さの表を表す。そのような表は、例えば、表指示(616)(シンタックス要素num_dec_pic_size_in_luma_samples_minus1)によって、表現され得る。シンタックス要素の「minus1」は、そのシンタックス要素の値の解釈(interpretation)を指すことができる。例えば、シンタックス要素のコーディングされた値が0である場合に、1つの表エントリが存在する。コーディングされた値が5である場合に、6つの表エントリが存在する。表の各“行”ごとに、デコードされたピクチャ幅及び高さが、次いで、表エントリ(617)としてシンタックスに含まれる。
提示されている表エントリ(617)は、タイルグループヘッダ(600)におけるシンタックス要素dec_pic_size_idx(602)を用いてインデックスを付され得る。それによって、タイルグループごとに異なった復号化サイズ、実際にはズーム係数が可能となる。
特定のビデオコーディング技術又は規格、例えば、VP9は、空間スケーラビリティを可能にするために、時間スケーラビリティとともに特定の形態の参照ピクチャリサンプリング(本開示の実施形態とは全く別なふうにシグナリングされてよい)を実装することによって空間スケーラビリティをサポートする。特に、特定の参照ピクチャは、空間エンハンスメントレイヤのベースを形成するよう、ARCスタイル技術を用いて、より高い解像度へアップサンプリングされてもよい。そのようなアップサンプリングされたピクチャは、詳細を追加するために、高い解像度で通常の予測メカニズムを使用して精緻化され得る。
本開示の実施形態は、そのような環境で使用され得る。特定の場合に、同じ又は他の実施形態において、ネットワーク抽象レイヤ(Network Abstraction Layer,NAL)ユニットヘッダ、例えば、一時ID(Temporal ID)フィールドにおける値は、時間レイヤのみならず空間レイヤも示すために使用され得る。そうすることは、特定のシステム設計にとって特定の利点を有する。例えば、NALユニットヘッダの一時ID値に基づいて時間レイヤ選択的転送のために生成及び最適化された既存の選択的転送ユニット(Selected Forwarding Units,SFU)は、スケーラブル環境のために変更無しで使用可能である。それを可能にするために、本開示の実施形態は、NALユニットヘッダにおいて一時IDフィールドによって示される時間レイヤとコーディングされたピクチャとの間のマッピングを含んでよい。
いくつかのビデオコーディング技術で、アクセスユニット(Access Unit,AU)は、所与の時点で捕捉されて各々のピクチャ/スライス/タイル/NALユニット内に構成されたコーディングされたピクチャ、スライス、タイル、NALユニットなどを指すことができる。そのような時点は、合成時間(composition time)であることができる。
HEVC、及び特定の他のビデオコーディング技術では、ピクチャ・オーダー・カウント(Picture Order Count,POC)値が、復号化ピクチャバッファ(Decoded Picture Buffer,DPB)に格納された複数の参照ピクチャの中から選択された参照ピクチャを示すために使用され得る。アクセスユニット(AU)が1つ以上のピクチャ、スライス、又はタイルを有する場合に、同じAUに属する各ピクチャ、スライス、又はタイルは、同じPOC値を運んでよく、POC値から、それらが同じ合成時間のコンテンツから生成されたことが導出され得る。すなわち、2つのピクチャ/スライス/タイルが同じ所与のPOC値を運ぶシナリオにおいて、その2つのピクチャ/スライス/タイルは同じAUに属しかつ同じ合成時間を有していることが決定され得る。対照的に、異なるPOC値を有する2つのピクチャ/タイル/スライスは、それらのピクチャ/スライス/タイルが異なるAUに属しかつ異なる合成時間を有していることを示すことができる。
本開示の実施形態において、上記の堅固な関係は、アクセスユニットが異なるPOC値を有するピクチャ、スライス、又はタイルを有することができる点で緩和され得る。AU内の異なるPOC値を許すことによって、POC値を使用して、同じ提示時間(presentation time)を有する潜在的に独立してデコード可能なピクチャ/スライス/タイルを識別することが可能になる。従って、本開示の実施形態は、以下で更に詳細に記載されるように、参照ピクチャ選択シグナリング(例えば、参照ピクチャセットシグナリング又は参照ピクチャリストシグナリング)の変化無しで複数のスケーラブルレイヤのサポートを可能にすることができる。
実施形態において、POC値のみから、異なるPOC値を有する他のピクチャ/スライス/タイルに対して、ピクチャ/スライス/タイルが属するAUを識別することができることは、依然として望ましい。これは、以下で記載される実施形態で達成され得る。
同じ又は他の実施形態において、アクセスユニットカウント(Access Unit Count,AUC)は、NALユニットヘッダ、スライスヘッダ、タイルグループヘッダ、SEIメッセージ、パラメータセット又はAUデリミタ(delimiter)などの高位シンタックス構造でシグナリングされてよい。AUCの値は、どのNALユニット、ピクチャ、スライス、又はタイルが所与のAUに属するかを識別するために使用されてよい。AUCの値は、個別の合成時間インスタンスに対応していてよい。AUC値は、POC値の倍数に等しくなる。整数値でPOC値を割ることによって、AUC値は計算され得る。特定の場合に、割り算は、デコーダ実装に一定の負担をかける可能性がある。そのような場合に、AUC値の番号付け空間における小さな制限は、本開示の実施形態によって実行されるシフト演算による割り算の置換を可能にし得る。例えば、AUC値は、POC値範囲の最上位ビット(MSB)値に等しくなる。
同じ実施形態において、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値を割ることによって、本開示の実施形態によって推測されてよい。
同じ又は他の実施形態において、poc_cycle_auの値は、コーディングされたビデオシーケンスにおける空間又はSNRレイヤの数を識別する、例えば、ビデオパラメータセット(VPS)に位置している情報から、導出されてもよい。そのような可能な関係は、以下で簡単に説明される。上述された導出はVPSで数ビットを節約し得るので、コーディング効率を改善し得る一方で、ピクチャなどのビットストリームの所与の小さな部分についてpoc_cycle_auを最小化することが可能であるために、階層的にビデオパラメータセットの下にある適切な高位シンタックス構造でpoc_cycle_auを明示的にコーディングすることが有利であり得る。この最適化は、POC値(及び/又はPOCを間接的に参照するシンタックス要素の値)が低位シンタックス構造でコーディングされ得るので、上記の導出プロセスを通じてセーブ可能であるよりも多いビットをセーブし得る。
同じ又は他の実施形態において、図9Aは、コーディングされたビデオシーケンスにおける全てのピクチャ/スライスのために使用されるpoc_cycle_auを示す、VPS(630)又はSPSにおけるvps_poc_cycle_au(632)のシンタックス要素をシグナリングするためのシンタックステーブルの例を表し、図9Bは、スライスヘッダ(640)における現在のスライスのpoc_cycle_auを示すslice_poc_cycle_au(642)のシンタックス要素をシグナリングするためのシンタックステーブルの例を表す。POC値がAUごとに一様に増大する場合に、VPS(630)におけるvps_contant_poc_cycle_per_au(634)は、1に等しくセットされ、vps_poc_cycle_au(632)は、VPS(630)でシグナリングされる。この場合に、slice_poc_cycle_au(642)は、明示的にはシグナリングされず、各AUのAUCの値は、vps_poc_cycle_au(632)でPOCの値を割ることによって計算される。POC値がAUごとに一様に増大しない場合に、VPS(630)におけるvps_contant_poc_cycle_per_au(634)は、0に等しくセットされる。この場合に、vps_access_unit_cntはシグナリングされず、一方、slice_access_unit_cntは各スライス又はピクチャごとにスライスヘッダでシグナリングされる。各スライス又はピクチャは、異なる値のslice_access_unit_cntを有してよい。各AUのAUCの値は、slice_poc_cycle_au(642)でPOCの値を割ることによって計算される。
図10は、実施形態の関連するワークフローを説明するブロック図を表す。例えば、デコーダ(又はエンコーダ)は、VPS/SPSをパースして、AUごとのPOCサイクルが一定であるか否かを識別する(652)。次に、デコーダ(又はエンコーダ)は、AUごとのPOCサイクルがコーディングされたビデオシーケンス内で一定であるかどうかに基づいて、決定を行う。すなわち、AUごとのPOCサイクルが一定である場合に、デコーダ(又はエンコーダ)は、シーケンスレベルのpoc_cycle_au値及びPOC値からアクセスユニットカウントの値を計算する(656)。代替的に、AUごとのPOCサイクルが一定でない場合に、デコーダ(又はエンコーダ)は、ピクチャレベルのpoc_cycle_au値及びPOC値からアクセスユニットカウントの値を計算する(658)。いずれの場合にも、デコーダ(又はエンコーダ)は、次いで、例えば、VPS/SPSをパースして、AUごとのPOCサイクルが一定であるか否かを識別することによって、プロセスを繰り返してよい(662)。
同じ又は他の実施形態において、たとえピクチャ、スライス、又はタイルのPOCの値が異なり得るとしても、同じAUC値を有するAUに対応するピクチャ、スライス、又はタイルは、同じ復号化又は出力時間インスタンスと関連付けられてよい。従って、同じAU内のピクチャ、スライス、又はタイルの間で如何なる相互的なパージング/復号化依存性もなしで、同じAUと関連付けられたピクチャ、スライス、又はタイルの全て又はサブセットは、並行してデコードされてよく、同じ時間インスタンスで出力されてよい。
同じ又は他の実施形態において、たとえピクチャ、スライス、又はタイルのPOCの値が異なり得るとしても、同じAUC値を有するAUに対応するピクチャ、スライス、又はタイルは、同じ合成/表示時間インスタンスと関連付けられてよい。合成時間がコンテナフォーマットに含まれる場合に、たとえピクチャが異なるAUに対応するとしても、ピクチャが同じ合成時間を有しているならば、ピクチャは同じ時間インスタンスで表示され得る。
同じ又は他の実施形態において、各ピクチャ、スライス、又はタイルは、同じAUにおいて同じ時間識別子(例えば、シンタックス要素temporal_id)を有してよい。ある時間インスタンスに対応するピクチャ、スライス、又はタイルの全て又はサブセットは、同じ時間サブレイヤと関連付けられてよい。同じ又は他の実施形態において、各ピクチャ、スライス、又はタイルは、同じAUにおいて同じ又は異なる空間レイヤid(例えば、シンタックス要素layer_id)を有してもよい。ある時間インスタンスに対応するピクチャ、スライス、又はタイルの全て又はサブセットは、同じ又は異なる空間レイヤと関連付けられてよい。
図8は、適応解像度変更とのtemporal_id、layer_id、並びにPOC及びAUC値の組み合わせによるビデオシーケンス構造(680)の例を示す。この例では、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ずつ増える。例として、図8は、最初のAU(AUC=0)内で、POC0、TID0、及びLID0を有するIスライス(681)と、POC1、TID0、及びLID1を有するBスライス(682)とを表す。第2のAU(AUC=1)内で、図8は、POC2、TID1、及びLID0を有するBスライス(683)と、POC3、TID1、及びLID1を有するBスライス(684)とを表す。第3のAU(AUC=3)内で、図8は、POC4、TID0、及びLID0を有するBスライス(685)と、POC5、TID0、及びLID1を有するBスライス(686)とを表す。
上記の実施形態で、インターピクチャ又はインターレイヤ予測構造及び参照ピクチャ指示の全て又はサブセットは、HEVCでの既存の参照ピクチャセット(RPS)シグナリング又は参照ピクチャリスト(RPL)シグナリングによってサポートされてよい。RPS又はRPLで、選択された参照ピクチャは、POCの値、又は現在のピクチャと選択された参照ピクチャとの間のPOCの差分値をシグナリングすることによって、示される。本開示の実施形態において、RPS又はRPLは、シグナリングの変化無しで、しかし、次の制限を有して、インターピクチャ又はインターレイヤ予測構造を示すために使用され得る。参照ピクチャのtemporal_idの値が現在のピクチャのtemporal_idの値よりも大きい場合に、現在のピクチャは、動き補償又は他の予測のために参照ピクチャを使用しなくもよい。参照ピクチャのlayer_idの値が現在のピクチャのlayer_idの値よりも大きい場合に、現在のピクチャは、動き補償又は他の予測のために参照ピクチャを使用しなくてもよい。
同じ及び他の実施形態において、時間動きベクトル予測のためのPOC差分に基づいた動きベクトルスケーリングは、アクセスユニット内の複数のピクチャにわたって無効にされてもよい。従って、各ピクチャがアクセスユニット内で異なるPOC値を有することがあるが、動きベクトルは、アクセスユニット内の時間動きベクトル予測のためにスケーリング及び使用されなくてもよい。これは、同じAUで異なるPOCを有する参照ピクチャが同じ時間インスタンスを有する参照ピクチャと見なされ得るからである。従って、実施形態において、動きベクトルスケーリング関数は、参照ピクチャが現在のピクチャに関連したAUに属する場合に1を返してよい。
同じ及び他の実施形態において、時間動きベクトル予測のためのPOC差分に基づいた動きベクトルスケーリングは、参照ピクチャの空間分解能が現在のピクチャの空間分解能とは異なる場合に、複数のピクチャにわたって任意に無効化されてもよい。動きベクトルスケーリングが許可される場合に、動きベクトルは、現在のピクチャと参照ピクチャとの間のPOC差分及び空間分解能比の両方に基づいてスケーリングされてよい。
同じ又は他の実施形態において、動きベクトルは、特に、poc_cycle_auが非一様値を有する場合に(vps_contant_poc_cycle_per_au==0である場合に)、時間動きベクトル予測のためのPOC差分の代わりにAUC差分に基づいてスケーリングされてもよい。そうでない場合(vps_contant_poc_cycle_per_au==1である場合)には、AUC差分に基づいた動きベクトルスケーリングは、POC差分に基づいた動きベクトルスケーリングと同じであってよい。
同じ又は他の実施形態において、動きベクトルがAUC差分に基づいてスケーリングされる場合に、現在のピクチャを含む同じAU内の(同じAUC値を有する)参照動きベクトルは、AUC差分に基づいてスケーリングされず、現在のピクチャと参照ピクチャとの間の空間分解能比に基づいたスケーリングを有して又はスケーリング無しで動きベクトル予測のために使用される。
同じ及び他の実施形態において、AUC値は、AUの境界を識別するために使用され、かつ、AU粒度での入力及び出力タイミングを必要とする仮想リファレンスデコーダ(Hypothetical Reference Decoder,HRD)動作のために使用される。ほとんどの場合に、AUの最上位レイヤを有するデコードされたピクチャは、表示のために出力されてよい。AUC値及びlayer_id値は、出力ピクチャを識別するために使用され得る。
実施形態において、ピクチャは、1つ以上のサブピクチャを有してもよい。各サブピクチャは、ピクチャの局所領域又は全体領域をカバーしてよい。サブピクチャによってサポートされる領域は、他のサブピクチャによってサポートされる領域と重なり合っても重なり合わなくてもよい。1つ以上のサブピクチャによって構成された領域は、ピクチャの全体領域をカバーしてもしなくてもよい。ピクチャがサブピクチャからなる場合に、そのサブピクチャによってサポートされる領域は、ピクチャによってサポートされる領域と同じであってもよい。
同じ実施形態で、サブピクチャは、コーディングされたピクチャのために使用されているコーディング方法と類似したコーディング方法によってコーディングされてもよい。サブピクチャは、独立してコーディングされてもよく、あるいは、他のサブピクチャ又はコーディングされたピクチャに依存してコーディングされてもよい。サブピクチャは、他のサブピクチャ又はコーディングされたピクチャからの如何なるパージング依存性も有しても有さなくてもよい。
同じ実施形態で、コーディングされたサブピクチャは、1つ以上のレイヤに含まれてよい。レイヤ内のコーディングされたサブピクチャは、異なる空間分解能を有してもよい。元のサブピクチャは、空間的にリサンプリング(アップサンプリング又はダウンサンプリング)され、異なる空間分解能パラメータでコーディングされ、レイヤに対応するビットストリームに含まれてよい。
同じ又は他の実施形態において、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よりも小さい場合には、リサンプリングはダウンサンプリングに等しい。
同じ又は他の実施形態において、レイヤ内のコーディングされたサブピクチャは、同じサブピクチャ又は異なるサブピクチャにおける他のレイヤ内のコーディングされたサブピクチャのそれとは異なった視覚品質を有してもよい。例えば、レイヤn内のサブピクチャiは、量子化品質Qi,nでコーディングされ、一方、レイヤm内のサブピクチャjは、量子化パラメータQj,mでコーディングされる。
同じ又は他の実施形態において、レイヤ内のコーディングされたサブピクチャは、同じ局所領域の他のレイヤ内のコーディングされたサブピクチャからの如何なるパージング又は復号化依存性もなしで、独立してデコード可能であってよい。同じ局所領域の他のサブピクチャレイヤを参照せずに独立にデコード可能であることができるサブピクチャレイヤは、独立サブピクチャレイヤである。独立サブピクチャレイヤ内のコーディングされたサブピクチャは、同じサブピクチャレイヤ内の前にコーディングされたサブピクチャからの復号化又はパージング依存性を有しても有さなくてもよいが、コーディングされたサブピクチャは、他のサブピクチャレイヤ内のコーディングされたサブピクチャからの如何なる依存性も有さなくてよい。
同じ又は他の実施形態において、レイヤ内のコーディングされたサブピクチャは、同じ局所領域の他のレイヤ内のコーディングされたサブピクチャからの何らかのパージング又は復号化依存性を有して、従属的にデコード可能であってもよい。同じ局所領域の他のサブピクチャレイヤを参照して従属的にデコード可能であることができるサブピクチャレイヤは、従属サブピクチャレイヤである。従属サブピクチャレイヤ内のコーディングされたサブピクチャは、同じサブピクチャに属するコーディングされたサブピクチャ、同じサブピクチャレイヤ内の前にコーディングされたサブピクチャ、又は両方の参照サブピクチャを参照してよい。
同じ又は他の実施形態において、コーディングされたサブピクチャは、1つ以上の独立サブピクチャレイヤと、1つ以上の従属サブピクチャレイヤとを有する。しかし、少なくとも1つの独立サブピクチャレイヤが、コーディングされたサブピクチャのために存在してよい。独立サブピクチャレイヤは、0に等しい、NALユニットヘッダ又は他の高位シンタックス構造に存在し得るレイヤ識別子(例えば、シンタックス要素layer_id)の値を有してよい。0に等しいlayer_idを有するサブピクチャレイヤは、基本サブピクチャレイヤであってよい。
同じ又は他の実施形態において、ピクチャは、1つ以上の前景サブピクチャと、1つの背景サブピクチャとを有してよい。背景サブピクチャによってサポートされる領域は、ピクチャの領域に等しくてよい。前景サブピクチャによってサポートされる領域は、背景サブピクチャによってサポートされる領域と重なり合ってもよい。背景サブピクチャは、基本サブピクチャレイヤであってよく、一方、前景サブピクチャは、非基本(拡張)サブピクチャレイヤであってよい。1つ以上の非基本サブピクチャレイヤは、復号化のために同じ基本レイヤを参照してよい。aがbよりも大きいとして、aに等しいlayer_idを有する各非基本サブピクチャレイヤは、bに等しいlayer_idを有する非基本サブピクチャレイヤを参照してもよい。
同じ又は他の実施形態において、ピクチャは、背景サブピクチャの有無によらず1つ以上の前景サブピクチャを有してもよい。各サブピクチャは、それ自身の基本サブピクチャレイヤと、1つ以上の非基本(拡張)レイヤとを有してよい。各基本サブピクチャレイヤは、1つ以上の非基本サブピクチャレイヤによって参照されてよい。aがbよりも大きいとして、aに等しいlayer_idを有する各非基本サブピクチャレイヤは、bに等しいlayer_idを有する非基本サブピクチャレイヤを参照してよい。
同じ又は他の実施形態において、ピクチャは、背景サブピクチャの有無によらず1つ以上の前景サブピクチャを有してもよい。(基本又は非基本)サブピクチャレイヤ内の各コーディングされたサブピクチャは、同じサブピクチャに属する1つ以上の非基本レイヤサブピクチャと、同じサブピクチャに属さない1つ以上の非基本レイヤサブピクチャとによって参照されてよい。
同じ又は他の実施形態において、ピクチャは、背景サブピクチャの有無によらず1つ以上の前景サブピクチャを有してもよい。レイヤa内のサブピクチャは、同じレイヤ内の複数のサブピクチャに更にパーティション化されてよい。レイヤb内の1つ以上のコーディングされたサブピクチャは、レイヤa内のパーティション化されたサブピクチャを参照してよい。
同じ又は他の実施形態において、コーディングされたビデオシーケンス(CVS)は、コーディングされたピクチャのグループであってよい。CVSは、1つ以上のコーディングされたサブピクチャシーケンス(CSPS)から成ってよく、CSPSは、ピクチャの同じ局所領域をカバーするコーディングされたサブピクチャのグループであってよい。CSPSは、コーディングされたビデオシーケンスのそれと同じ又は異なった時間分解能を有してよい。
同じ又は他の実施形態において、CSPSは、コーディングされて、1つ以上のレイヤに含まれてよい。CSPSは、1つ以上のCSPSレイヤを有しても又はそれらから成ってもよい。CSPSに対応する1つ以上のCSPSレイヤをデコードすることは、同じ局所領域に対応するサブピクチャのシーケンスを再構成してよい。
同じ又は他の実施形態において、CSPSに対応するCSPSレイヤの数は、他のCSPSに対応するCSPSレイヤの数と同じであっても又は異なってもよい。
同じ又は他の実施形態において、CSPSレイヤは、他のCSPSレイヤとは異なった時間分解能(例えば、フレームレート)を有してもよい。元の(圧縮されていない)サブピクチャシーケンスは、時間的にリサンプリング(アップサンプリング又はダウンサンプリング)され、異なる時間分解能パラメータでコーディングされ、レイヤに対応するビットストリームに含まれてよい。
同じ又は他の実施形態において、フレームレートFを有するサブピクチャシーケンスは、コーディングされて、レイヤ0に対応するコーディングされたビットストリームに含まれてよく、一方、元のサブピクチャシーケンスから時間的にアップサンプリング(又はダウンサンプリング)された、F×St,kを有するサブピクチャシーケンスは、コーディングされて、レイヤkに対応するコーディングされたビットストリームに含まれてよい。ここで、St,kは、レイヤkのための時間サンプリング比を示す。St,kの値が1よりも大きい場合には、時間リサンプリングプロセスは、フレームレートアップコンバージョンに等しい。一方、St,kが1よりも小さい場合には、時間リサンプリングプロセスは、フレームレートダウンコンバージョンに等しい。
同じ又は他の実施形態において、CSPSレイヤaを有するサブピクチャが、動き補償又は何らかのインターレイヤ予測のために、CSPSレイヤbを有するサブピクチャによって参照される場合に、CSPSレイヤaの空間分解能がCSPSレイヤbの空間分解能とは異なるならば、CSPSレイヤaでのデコードされたピクセルは、リサンプリングされて、参照のために使用される。リサンプリングプロセスは、アップサンプリングフィルタリング又はダウンサンプリングフィルタリングを必要としてよい。
図11は、0に等しいlayer_idを有する背景ビデオCSPSと、複数の前景CSPSレイヤとを含むビデオストリームの例を示す。コーディングされたサブピクチャは、1つ以上のエンハンスメントCSPSレイヤ(704)から成ってよく、一方、如何なる前景CSPSレイヤにも属さない背景領域は、基本レイヤ(702)を有してよい。基本レイヤ(702)は、背景領域及び前景領域を含んでよく、一方、エンハンスメントCSPSレイヤ(704)は、前景領域を含む。エンハンスメントCSPSレイヤ(704)は、同じ領域で、基本レイヤ(702)よりも良い視覚品質を有し得る。エンハンスメントCSPSレイヤ(704)は、同じ領域に対応する基本レイヤ(702)の動きベクトル及び再構成されたピクセルを参照してよい。
同じ又は他の実施形態において、ビデオファイルでは、基本レイヤ(702)に対応するビデオビットストリームは、トラックに含まれ、一方、各サブピクチャに対応するCSPSレイヤ(704)は、別個のトラックに含まれる。
同じ又は他の実施形態において、基本レイヤ(702)に対応するビデオビットストリームは、トラックに含まれ、一方、同じlayer_idを有するCSPSレイヤ(704)は、別個のトラックに含まれる。この例では、レイヤkに対応するトラックは、レイヤkに対応するCSPSレイヤのみを含む。
同じ又は他の実施形態において、各サブピクチャの各CSPSレイヤ(704)は、別のトラックに格納される。各トラックは、1つ以上の他のトラックからの如何なるパージング又は復号化依存性も有しても有さなくてもよい。
同じ又は他の実施形態において、各トラックは、サブピクチャの全て又はサブセットのCSPSレイヤ(704)のレイヤiからレイヤjに対応するビットストリームを含んでよい。ここで、0<i=<j=<kであり、kはCSPSの最高レイヤである。
同じ又は他の実施形態において、ピクチャは、デプスマップ、アルファマップ、3Dジオメトリデータ、占有マップ、などを含む1つ以上の関連するメディアデータを有するか又はそれらから成る。そのような関連する時間付き(timed)メディアデータは、夫々が1つのサブピクチャに対応する1つ又は複数のデータサブストリームに分けられ得る。
同じ又は他の実施形態において、図12は、多層サブピクチャ方法に基づいたビデオ会議の例を示す。ビデオストリームには、背景ピクチャに対応する1つの基本レイヤビデオビットストリームと、前景サブピクチャに対応する1つ以上のエンハンスメントレイヤビデオビットストリームとが含まれる。各エンハンスメントレイヤビデオビットストリームは、CSPSレイヤに対応してよい。ディスプレイでは、基本レイヤ(712)に対応するピクチャがデフォルトで表示される。基本レイヤ(712)は、一人以上のユーザのピクチャ・イン・ピクチャ(Picture In Picture,PIP)を含んでよい。特定のユーザがクライアントの制御によって選択される場合に、選択されたユーザに対応するエンハンスメントCSPSレイヤ(714)は、強化された品質又は空間分解能でデコード及び表示される。
図13は、実施形態の動作のための図を表す。実施形態において、デコーダは、例えば、1つの基本レイヤ及び1つ以上のエンハンスメントCSPSレイヤなどの複数のレイヤを含むビデオビットストリームをデコードしてよい(722)。続いて、デコーダは、背景領域及び1つ以上の前景サブピクチャを識別し(724)、特定のサブピクチャ領域が選択されるかどうかを決定してよい(726)。例えば、ユーザのPIPに対応する、特定のサブピクチャ領域が選択される場合に(YES)、デコーダは、選択されたユーザに対応する強化されたサブピクチャをデコード及び表示してよい(728)。例えば、デコーダは、エンハンスメントCSPSレイヤ(714)に対応する画像をデコード及び表示してもよい。特定のサブピクチャ領域が選択されない場合に(NO)、デコーダは、背景領域をデコード及び表示してよい(730)。例えば、デコーダは、基本レイヤ(712)に対応する画像をデコード及び表示してよい。
同じ又は他の実施形態において、ネットワークミドルボックス(例えば、ルータ)は、そのバンド幅に応じてユーザへ送信するレイヤのサブセットを選択してもよい。ピクチャ/サブピクチャ編成は、バンド幅適応のために使用されてよい。例えば、ユーザがバンド幅を有さない場合に、ルータは、それらの重要性により又は使用されている設定に基づいてレイヤを削除するか又はいくつかのサブピクチャを選択する。実施形態において、そのようなプロセスは、バンド幅に適応するよう動的に行われてよい。
図14は、360度ビデオの使用ケースの例を表す。球状の360度ピクチャ(742)が平面ピクチャに投影される場合に、投影される球状の360度ピクチャ(742)は、基本レイヤ(744)として複数のサブピクチャ(745)にパーティション化されてよい。サブピクチャ(745)のうちの特定の1つのエンハンスメントレイヤ(746)がコーディングされて、クライアントへ送信されてもよい。デコーダは、全てのサブピクチャ(745)を含む基本レイヤ(744)と、サブピクチャ(745)のうちの選択された1つのエンハンスメントレイヤ(746)との両方をデコードしてよい。現在のビューポートがサブピクチャ(745)のうちの選択された1つと同じである場合に、表示されているピクチャは、エンハンスメントレイヤ(746)を伴ったデコードされたサブピクチャ(745)でより高い品質を有し得る。そうでない場合には、基本レイヤ(744)を含むデコードされたピクチャが、より低い品質で表示され得る。
同じ又は他の実施形態において、表示のための如何なるレイアウト情報も、補足情報(例えば、SEIメッセージ又はメタデータ)としてファイルに存在してもよい。1つ以上のデコードされたサブピクチャは、シグナリングされたレイアウト情報に応じて再配置又は表示されてよい。レイアウト情報は、ストリーミングサーバ又はブロードキャスタによってシグナリングされてよく、あるいは、ネットワークエンティティ又はクラウドサーバによって再生されてもよく、あるいは、ユーザのカスタマイズされた設定によって決定されてもよい。
実施形態において、入力されたピクチャが1つ以上の(長方形の)サブ領域に分けられる場合に、各サブ領域は、独立レイヤとしてコーディングされてもよい。局所領域に対応する各独立レイヤは、一意のlayer_id値を有してよい。各独立レイヤについて、サブピクチャサイズ及び位置情報がシグナリングされてよい。例えば、ピクチャサイズ(幅、高さ)及び左上隅のオフセット情報(x_offset、y_offset)がシグナリングされてもよい。図15Aは、分割されたサブピクチャ(752)のレイアウトの例を表し、図15Bは、サブピクチャ(752)のうちの1つの対応するサブピクチャサイズ及び位置情報の例を表し、図16は、対応するピクチャ予測構造を表す。サブピクチャサイズ及びサブピクチャ位置を含むレイアウト情報は、パラメータセット、スライス若しくはタイルグループのヘッダ、又はSEIメッセージなどの高位シンタックス構造でシグナリングされてよい。
同じ実施形態で、独立レイヤに対応する各サブピクチャは、AU内でその一意のPOC値を有してもよい。DPBに格納されているピクチャの中の参照ピクチャがRPS又はRPL構造でシンタックス要素を使用することによって指示される場合に、レイヤに対応する各サブピクチャのPOC値が使用されてもよい。
同じ又は他の実施形態において、(インターレイヤ)予測構造を示すために、layer_idは使用されなくてもよく、POC(差分)値が使用され得る。
同じ実施形態で、レイヤ(又は局所領域)に対応するNに等しいPOC値を有しているサブピクチャは、動き補償された予測のために、同じレイヤ(又は同じ局所領域)に対応する、K+Nに等しいPOC値を有するサブピクチャの参照ピクチャとして使用されてもされなくてもよい。ほとんどの場合に、数Kの値は、サブ領域の数と同じであってもよい(独立)レイヤの最大数に等しくなる。
同じ又は他の実施形態において、図17及び図18は、図15A、15B及び図16の拡張された場合を表す。入力されたピクチャが複数(例えば、4つ)のサブ領域に分けられる場合に、各局所領域は、1つ以上のレイヤを有してコーディングされてよい。その場合に、独立レイヤの数はサブ領域の数に等しくてよく、1つ以上のレイヤは1つのサブ領域に対応してよい。よって、各サブ領域は、1つ以上の独立レイヤ及びゼロ個以上の従属レイヤを有してコーディングされてよい。
同じ実施形態で、図17を参照して、入力されたピクチャは、左上サブ領域(762)、右上サブ領域(763)、左下サブ領域(764)、及び右下サブ領域(765)を含む4つのサブ領域に分けられてよい。右上サブ領域(763)は、レイヤ1及びレイヤ4である2つのレイヤとしてコーディングされてよく、一方、右下サブ領域(765)は、レイヤ3及びレイヤ5である2つのレイヤとしてコーディングされてよい。この場合に、レイヤ4は、動き補償された予測のためにレイヤ1を参照してよく、一方、レイヤ5は、動き補償のためにレイヤ3を参照してよい。
同じ又は他の実施形態において、レイヤ境界にわたるインループフィルタリング(例えば、デブロッキングフィルタリング、適応インループフィルタリング、リシェーパ(reshaper)、バイラテラルフィルタリング、又は任意のディープラーニングに基づいたフィルタリング)は、(任意に)無効にされてもよい。
同じ又は他の実施形態において、レイヤ境界にわたる動き補償された予測又はイントラブロックコピーは、(任意に)無効にされてもよい。
同じ又は他の実施形態において、サブピクチャの境界での動き補償された予測又はインループフィルタリングのための境界パディングが、任意に処理されてもよい。境界パディングが処理されるか否かを示すフラグは、パラメータセット(VPS、SPS、PPS、若しくはAPS)、スライス若しくはタイルグループヘッダ、又はSEIメッセージなどの高位シンタックス構造でシグナリングされてもよい。
同じ又は他の実施形態において、サブ領域(又はサブピクチャ)のレイアウト情報は、VPS又はSPSでシグナリングされてもよい。図19Aは、VPS(770)でのシンタックス要素の例を示し、図19Bは、SPS(780)でのシンタックス要素の例を示す。この例では、vps_sub_picture_dividing_flag(772)がVPS(770)でシグナリングされる。フラグは、入力されたピクチャが複数のサブ領域に分けられるか否かを示してよい。vps_sub_picture_dividing_flag(772)の値が0に等しい場合に、現在のVPSに対応するコーディングされたビデオシーケンス内の入力されたピクチャは、複数のサブ領域に分けられなくてもよい。この場合に、入力されたピクチャのサイズは、SPS(680)でシグナリングされるコーディングされたピクチャのサイズ(pic_width_in_luma_samples(786)、pic_height_in_luma_samples(788))に等しくなる。vps_sub_picture_dividing_flag(772)の値が1に等しい場合に、入力されたピクチャは、複数のサブ領域に分けられ得る。この場合に、シンタックス要素vps_full_pic_width_in_luma_samples(774)及びvps_full_pic_height_in_luma_samaples(776)は、VPS(770)でシグナリングされる。vps_full_pic_width_in_luma_samples(774)及びvps_full_pic_height_in_luma_samaples(776)の値は、夫々、入力されたピクチャの幅及び高さに等しくなる。
同じ実施形態で、vps_full_pic_width_in_luma_samples(774)及びvps_full_pic_height_in_luma_samaples(776)の値は、復号化のために使用されなくてもよいが、合成及び表示のために使用され得る。
同じ実施形態で、vps_sub_picture_dividing_flag(772)の値が1に等しい場合に、シンタックス要素pic_offset_x(782)及びpic_offset_y(784)は、特定のレイヤに対応するSPS(780)でシグナリングされてよい。この場合に、SPS(780)でシグナリングされるコーディングされたピクチャのサイズ(pic_width_in_luma_samples(786)、pic_height_in_luma_samples(788))は、特定のレイヤに対応するサブ領域の幅及び高さに等しくなる。また、サブ領域の左上隅の位置(pic_offset_x(782)、pic_offset_y(784))が、SPS(780)でシグナリングされてもよい。
同じ実施形態で、サブ領域の左上隅の位置情報(pic_offset_x(782)、pic_offset_y(784))は、復号化のために使用されなくてもよいが、合成及び表示のために使用され得る。
同じ又は他の実施形態において、入力されたピクチャのサブ領域の全て又はサブセットのレイアウト情報(サイズ及び位置)、及びレイヤ間の依存関係情報が、パラメータセット又はSEIメッセージでシグナリングされてもよい。図20は、サブ領域のレイアウトの情報、レイヤ間の依存性、及びサブ領域と1つ以上のレイヤとの間の関係を示すシンタックス要素の例を表す。この例では、シンタックス要素num_sub_region(791)は、現在のコーディングされたビデオシーケンス内の(長方形)サブ領域の数を示す。シンタックス要素num_layers(792)は、現在のコーディングされたビデオシーケンス内のレイヤの数を示す。num_layers(792)の値は、num_sub_region(791)の値以上であってよい。いずれかのサブ領域が単一のレイヤとしてコーディングされる場合に、num_layers(792)の値は、num_sub_region(791)の値と等しくなる。1つ以上のサブ領域が複数のレイヤとしてコーディングされる場合に、num_layers(792)の値は、num_sub_region(791)の値よりも大きくなる。シンタックス要素direct_dependency_flag[i][j](793)は、j番目のレイヤからi番目のレイヤへの依存性を示す。シンタックス要素num_layers_for_region[i](794)は、i番目のサブ領域に関連したレイヤの数を示す。シンタックス要素sub_region_layer_id[i][j](795)は、i番目のサブ領域に関連したj番目のレイヤのlayer_idを示す。シンタックス要素sub_region_offset_x[i](796)及びsub_region_offset_y[i](797)は、夫々、i番目のサブ領域の左上隅の水平及び垂直位置を示す。シンタックス要素sub_region_width[i](798)及びsub_region_height[i](799)は、夫々、i番目のサブ領域の幅及び高さを示す。
一実施形態において、プロファイルティアレベル情報の有無によらず出力されるべき1つ以上のレイヤを示すための出力レイヤセットを定める1つ以上のシンタックス要素は、高位シンタックス構造(例えば、VPS、DPS、SPS、PPS、APS、又はSEIメッセージ)でシグナリングされてよい。図21を参照すると、VPSを参照するコーディングされたビデオシーケンスにおける出力レイヤセット(Output Layer Set,OLS)の数を示すシンタックス要素num_output_layer_sets(804)は、VPSでシグナリングされてよい。各出力レイヤセットについて、シンタックス要素output_layer_flag(810)は、出力レイヤの数と同じ回数だけシグナリングされてよい。
同じ実施形態で、1に等しいシンタックス要素output_layer_flag(810)は、i番目のレイヤが出力されることを示す。0に等しいシンタックス要素output_layer_flag(810)は、i番目のレイヤが出力されないことを示す。
同じ又は他の実施形態において、各出力レイヤセットについてプロファイルティアレベル情報を定める1つ以上のシンタックス要素は、高位シンタックス構造(例えば、VPS、DPS、SPS、PPS、APS、又はSEIメッセージ)でシグナリングされてよい。依然として図21を参照すると、VPSを参照するコーディングされたビデオシーケンスにおけるOLSごとのプロファイルティアレベル情報の数を示すシンタックス要素num_profile_tier_level(806)は、VPSでシグナリングされてよい。各出力レイヤセットについて、プロファイルティアレベル情報のためのシンタックス要素の組又はプロファイルティアレベル情報内のエントリの中で特定のプロファイルティアレベル情報を示すインデックスは、出力レイヤの数と同じ回数だけシグナリングされてよい。
同じ実施形態で、シンタックス要素profile_tier_level_idx[i][j](812)は、i番目のOLSのj番目のレイヤに適用するprofile_tier_level()(808)シンタックス構造の、VPSでのprofile_tier_level()(808)シンタックス構造内へのインデックスを指定する。
プロファイル、ティア、及びレベル(並びにそれらの対応する情報)は、ビットストリームに対する制限、よって、ビットストリームをデコードするために必要とされる能力の限界を指定してよい。プロファイル、ティア、及びレベル(並びにそれらの対応する情報)はまた、個別的なデコーダ実装間の相互運用性ポイントを示すためにも使用されてよい。プロファイルは、例えば、標準の、ビットストリームシンタックス全体のサブセットであってよい。各プロファイル(及びその対応する情報)は、プロファイルに従う全てのデコーダによってサポートされ得るアルゴリズム機能及び制限のサブセットを指定してよい。ティア(tiers)及びレベルは、各プロファイルで指定されてよく、ティアのレベルは、ビットストリーム内のシンタックス要素の値に課された特定の制約の組であってよい。ティアの各レベル(及びその対応する情報)は、本開示のシンタックス要素が取る可能性がある値に対する制限及び/又は値の算術組み合わせに対する制限の組を指定してよい。ティア及びレベル定義の同じ組は、全てのプロファイルにより使用されてよいが、個々の実装は、サポートされているプロファイルごとに異なるティアを、そして、1つのティア内では、異なるレベルをサポートしてもよい。いずれかの所与のプロファイルについては、ティアのレベルは、特定のデコーダ処理負荷及びメモリ容量に対応してよい。より低いティアに対して指定されたレベルは、より高いティアに対して指定されたレベルよりも制約されてもよい。
同じ又は他の実施形態において、図22を参照すると、シンタックス要素num_profile_tile_level(806)及び/又はnum_output_layer_sets(804)は、最大レイヤ数が1よりも多い(vps_max_layers_minus1>0)場合にシグナリングされてよい。
同じ又は他の実施形態において、図22を参照すると、i番目の出力レイヤセットについての出力レイヤシグナリングのモードを示すシンタックス要素vps_output_layers_mode[i](822)が、VPSに存在してもよい。
同じ実施形態で、0に等しいシンタックス要素vps_output_layers_mode[i](822)は、最高レイヤのみがi番目の出力レイヤセットにより出力されることを示す。1に等しいシンタックス要素vps_output_layers_mode[i](822)は、全てのレイヤがi番目の出力レイヤセットにより出力されることを示す。2に等しいシンタックス要素vps_output_layers_mode[i](822)は、i番目の出力レイヤセットにより出力されるレイヤが、1に等しいvps_output_layer_flag[i][j]を有するレイヤであることを示す。より多くの値がリザーブされてもよい。
同じ実施形態で、シンタックス要素output_layer_flag[i][j](810)は、i番目の出力レイヤセットについてのシンタックス要素vps_output_layers_mode[i](822)の値に応じて、シグナリングされてもされなくてもよい。
同じ又は他の実施形態において、図22を参照すると、フラグvps_ptl_flag[i](824)が、i番目の出力レイヤセットについて存在してもよい。vps_ptl_flag[i](824)の値に応じて、i番目の出力レイヤセットのプロファイルティアレベル情報は、シグナリングされてもされなくてもよい。
同じ又は他の実施形態において、図23を参照すると、現在のCVSでのサブピクチャの数max_subpics_minus1は、高位シンタックス構造(例えば、VPS、DPS、SPS、PPS、APS、又はSEIメッセージ)でシグナリングされてもよい。
同じ実施形態で、図23を参照すると、i番目のサブピクチャのサブピクチャ識別子sub_pic_id[i](821)は、サブピクチャの数が1よりも多い(max_subpics_minus1>0)場合にシグナリングされてよい。
同じ又は他の実施形態において、各出力レイヤセットの各レイヤに属するサブピクチャ識別子を示す1つ以上のシンタックス要素は、VPSでシグナリングされてもよい。図23を参照すると、識別子sub_pic_id_layer[i][j][k](826)は、i番目の出力レイヤセットのj番目のレイヤに存在するk番目のサブピクチャを示す。識別子sub_pic_id_layer[i][j][k](826)の情報を使用することによって、デコーダは、特定の出力レイヤセットの各レイヤについて、どのサブピクチャがデコードされ出力され得るかを認識し得る。
実施形態において、デコードされるべき対象OLSのOLSインデックスを識別する変数TargetOlsIdx、及びデコードされるべき最高時間サブレイヤを識別する変数Htidは、いくつかの外部手段によってセットされる。ビットストリームBitstreamToDecodeは、対象OLSに含まれているレイヤ以外の如何なるレイヤも含まなくてもよく、Htidよりも大きいTempralIDを有する如何なるNALユニットも含まなくてもよい。
同じ又は他の実施形態において、1に等しいols_output_layer_flag[i][j]は、ols_mode_idc(864)が2に等しい場合に、ps_layer_id[j]に等しいnuh_layer_idを有するレイヤがi番目のOLSの出力レイヤであることを示す。0に等しいols_output_layer_flag[i][j]は、ols_mode_idcが2に等しい場合に、ps_layer_id[j]に等しいnuh_layer_idを有するレイヤがi番目のOLSの出力レイヤでないことを示す。シンタックス要素nuh_layer_idは、非ビデオコーディングレイヤ(VCL)NALユニットが属するレイヤの識別子、又は非VCL NALユニットが適用されるレイヤの識別子を指定してよい。nuh_layer_idの値は、コーディングされたピクチャの全てのVCL NALユニットについて同じであってもよい。コーディングされたピクチャ又はピクチャユニット(PU)のnuh_layer_idの値は、コーディングされたピクチャ又はPUのVCL NALユニットのnuh_layer_idの値であってもよい。シンタックス要素nal_unit_typeの値は、コーディングビデオシーケンス開始(Coded Video Sequence Start)AUの全てのピクチャについて同じであってもよい。
i番目のOLSの中の出力レイヤの数を指定する変数NumOutputLayersInOls[i]、i番目のOLSの中のj番目のレイヤ内のサブレイヤの数を指定する変数NumSubLayersInLayerInOLS[i][j]、i番目のOLSの中のj番目の出力レイヤのnuh_layer_id値を指定する変数OutputLayerIdInOls[i][j]、及びk番目のレイヤが少なくとも1つのOLSで出力レイヤとして使用されるかどうかを指定する変数LayerUsedAsOutputLayerFlag[k]は、次のように導出されてよい:
0以上vps_max_layers_minus1>0以下の範囲内のiの各値について、LayerUsedAsRefLayerFlag[i]及びLayerUsedAsOutputLayerFlag[i]の値は、両方とも0に等しくなくもよい。すなわち、少なくとも1つのOLSの出力レイヤでも、いずれかの他のレイヤの直接参照レイヤでもないレイヤは存在しなくてもよい。
各OLSについて、出力レイヤである少なくとも1つのレイヤが存在してもよい。すなわち、0以上TotalNumOlss-1以下の範囲内のiの各値について、NumOutputLayersInOls[i]の値は1以上であってよい。
i番目のOLS内のレイヤの数を指定する変数NumLayersInOls[i]、及びi番目のOLSの中のj番目のレイヤのnuh_layer_id値を指定する変数LayerIdInOls[i][j]は、次のように導出されてよい:
0番目のOLSは、最下レイヤ(すなわち、vps_layer_id[0]に等しいnuh_layer_idを有するレイヤ)しか含まなくてもよく、0番目のOLSについて、唯一の含まれているレイヤは出力であってよい。
LayerIdInOls[i][j]に等しいnuh_layer_idを有するレイヤのOLSレイヤインデックスを指定する変数OlsLayerIdx[i][j]は、次のように導出される:
各OLSにおける最下レイヤは、独立レイヤであってよい。すなわち、0以上TotalNumOlss-1以下の範囲内の各iについて、vps_independent_layer_flag[GeneralLayerIdx[LayerIdinOls[i][0]]]の値は1に等しくなる。
各レイヤは、VPSによって指定された少なくとも1つのOLSに含まれてよい。すなわち、nuh_layer_idの特定の値、つまり、0以上vps_max_layers_minus1以下の範囲内のkについてのvps_layer_id[k]の1つに等しいnuhLayerId、を有する各レイヤについて、i及びjの値の少なくとも一対が存在してよい。ここで、iは、0以上TotalNumOlss-1以下の範囲内にあり、jは、0以上NumLayersInOls[i]-1以下の範囲内にある。それにより、LayerIdInOls[i][j]の値は、nuhLayerIdに等しい。
0に等しいシンタックス要素ols_mode_idc(864)は、VPSによって指定されたOLSの総数がvps_max_layers_minus1+1に等しく、i番目のOLSが0以上i以下のレイヤインデックスを有するレイヤを含み、各OLSについて、OLS内の最高レイヤのみが出力される、ことを指定してもよい。
1に等しいシンタックス要素ols_mode_idc(864)は、VPSによって指定されたOLSの総数がvps_max_layers_minus1+1に等しく、i番目のOLSが0以上i以下のレイヤインデックスを有するレイヤを含み、各OLSについて、OLS内の全てのレイヤが出力される、ことを指定してもよい。
2に等しいシンタックス要素ols_mode_idc(864)は、VPSによって指定されたOLSの総数が明示的にシグナリングされ、各OLSについて、出力レイヤは明示的にシグナリングされ、他のレイヤは、そのOLSの出力レイヤの直接又は間接参照レイヤであるレイヤである、ことを指定してもよい。
シンタックス要素ols_mode_idc(864)の値は、0以上2以下の範囲内であってよい。シンタックス要素ols_mode_idc(864)の値3は、ITU|ISO/IECによる将来の使用のためにリザーブされてもよい。
同じ又は他の実施形態において、復号化プロセスは、以下で説明されるように実行されてよい。
Bross, et. al,“Versatile Video Coding (Draft 8)”,Joint Video Experts Team document JVET-Q2001-vA,2020年1月7~17日は、その全文を本願に援用され、以降、「文献1」と呼ばれる。
復号化プロセスは、ビットストリームBitstreamToDecode内の各コーディングされたピクチャに適用されてよい。各コーディングされたピクチャは、現在のピクチャと呼ばれ、変数CurrPicによって表記される。ビットストリームBitstreamToDecodeは、復号化プロセスへ入力されてよい。
シンタックス要素chroma_format_idcがエンコーダ又はデコーダによって出力され得る。シンタックス要素chroma_format_idcは、ルーマサンプリングに対してクロマサンプリングを指定してよい。シンタックス要素chroma_format_idcの値に応じて、現在のピクチャのサンプルアレイの数は、次のように(例えば、デコーダによって)決定され得る。
(A)シンタックス要素chroma_format_idcが0に等しい場合には、現在のピクチャは、1つのサンプルアレイSLから成る。
(B)そうでない(chroma_format_idcが0に等しくない)場合には、現在のピクチャは、3つのサンプルアレイSL、SCb、SCrから成る。
現在のピクチャに対する復号化プロセスは、入力として、文献1の第7節からのシンタックス要素及び大文字の変数を取ってよい。各NALユニット内の各シンタックス要素のセマンティクスを解釈する場合に、及び文献1の第8節の残りの部分では、「ビットストリーム」という用語(又はその部分、例えば、ビットストリームのCVS)は、BitstreamToDecode(又はその部分)を指す。
シンタックス要素separate_colour_plane_flagは、ピクチャが別個のカラープレーンを用いてコーディングされるかどうかを示してよい。例えば、シンタックス要素separate_colour_plane_flagが1に等しい場合に、そのシンタックス要素は、ピクチャが3つの別個のカラープレーンを用いてコーディングされることを示してよい。ピクチャが3つの別個のカラープレーンを用いてコーディングされる場合に、スライスは、colour_plane_idの対応する値によって識別されている1つの色成分のコーディングツリーユニット(Coding Tree Units,CTU)しか含まなくてもよく、ピクチャの各色成分アレイは、同じcolor_plane_id値を有するスライスから成ってよい。ピクチャ内の、異なる値のcolor_plane_idを有するコーディングされたスライスは、color_plane_idの各値について、その値のcolor_plane_idを有するコーディングされたスライスNALユニットが、各コーディングされたスライスNALユニットの最初のCTUについて、タイルスキャン順序において、CUTアドレスが増加する順序にあってよい、という制約の下で互いにインターリーブされてよい。シンタックス要素separate_colour_plane_flagが1に等しい場合には、色成分の各CTUが厳密に1つのスライスに含まれ得る(すなわち、ピクチャの各CTUの情報は、厳密に3つのスライスに存在し、それら3つのスライスは、異なる値のcolor_plane_idを有する)。シンタックス要素separate_colour_plane_flagが0に等しい場合には、ピクチャの各CTUが厳密に1つのスライスに含まれ得る。
シンタックス要素separate_colour_plane_flagの値に応じて、復号化プロセスは、次のように構造化されてよい。
(A)separate_colour_plane_flagが0に等しい場合に、復号化プロセスは1回呼び出され、現在のピクチャが出力され得る。
(B)そうでない(separate_colour_plane_flagが1に等しい)場合に、復号化プロセスは3回呼び出され得る。復号化プロセスへの入力は、同じ値のcolor_plane_idを有するコーディングされたピクチャの全てのNALユニットである。特定の値のcolor_plane_idを有するNALユニットの復号化プロセスは、あたかもその特定の値のcolor_plane_idを有するモノクロカラーフォーマットによるCVSしかビットストリームに存在しないかのように、指定されてよい。3回の復号化プロセスの夫々の出力は、現在のピクチャの3つのサンプルアレイのうちの1つへ割り当てられてよく、0、1及び2に等しいcolor_plane_idを有するNALユニットは、夫々、SL、SCb、及びSCrに割り当てられる。
変数ChromaArrayTypeは、シンタックス要素separate_colour_plane_flagが1に等しく、chroma_format_idcが3に等しい場合に、0に等しいと導出され得る。復号化プロセスで、変数ChromaArrayTypeの値は評価されてよく、これは、(chroma_format_idcが0に等しい場合に)モノクロピクチャのそれと同じ動作をもたらし得る。
復号化プロセスは、現在のピクチャCurrPicに対して次のように作動してよい。
(A)NALユニットの復号化は、文献1の第8.2節に従って実行されてよい。例えば、復号化の入力は、現在のピクチャのNALユニット及びそれらの関連する非VCL NALユニットであってよい。復号化の出力は、NALユニット内にカプセル化されたパースされたローバイトシーケンスペイロード(Raw Byte Sequence Payload,RBSP)シンタックス構造であってよい。各NALユニットに対する復号化は、NALユニットからRBSPシンタックス構造を抽出し、次いで、RBSPシンタックス構造をパースしてよい。
(B)スライスヘッダレイヤ及びその上にあるシンタックス要素を使用する復号化プロセスは、例えば、文献1の第8.3節に従って、実行されてよい。
(1)ピクチャ・オーダー・カウントに関する変数及び関数が、文献1の第8.3.1節に従って導出され得る。これは、ピクチャの最初のスライスについてしか呼び出されなくてもよい。
(2)非IDRピクチャの各スライスに対する復号化プロセスの開始時に、参照ピクチャリスト構成のための復号化プロセスが、文献1の第8.3.2節に従って、参照ピクチャリスト0(RefPicList[0])及び参照ピクチャリスト1(RefPicList[1])の導出のために呼び出され得る。
(3)参照ピクチャマーキングのための復号化プロセスが、文献1の第8.3.3節に従って実行されてよく、参照ピクチャは、「参照用に使用されず」又は「長期参照用の使用」とマークされてよい。参照ピクチャマーキングのための復号化プロセスは、ピクチャの最初のスライスについてしか呼び出されてなくもよい。
(4)現在のピクチャが、1に等しいNoOutputBeforeRecoveryFlagを有するCRAピクチャ、又は1に等しいNoOutputBeforeRecoveryFlagを有するGDRピクチャである場合に、文献1の第8.3.4節に従って利用不可能な参照ピクチャを生成するための復号化プロセスが呼び出されてよく、これは、ピクチャの最初のスライスについてしか呼び出されてなくもよい。
(5)PictureOutputFlagは、次のように(例えば、デコーダによって)セットされ得る。
次の条件のうちの1つが真であると決定される場合に、現在のピクチャのPictureOutputFlagは、ピクチャが「出力に不要」とマークされて出力されないように、0に等しくセットされてよい。
(a)現在のピクチャはRASLピクチャで有り、関連するIRAPピクチャのシンタックス要素NoOutputは1に等しい。
(b)シンタックス要素gdr_enabled_flagは1に等しく、現在のピクチャは、1に等しいNoOutputBeforeRecoveryFlagを有するGDRピクチャである。
(c)シンタックス要素gdr_enabled_flagは1に等しく、現在のピクチャは、1に等しいNoOutputBeforeRecoveryFlagを有するGDRピクチャに関連し、現在のピクチャのPicOrderCntValは、関連するGDRピクチャのRpPicOrderCntValよりも小さい。
(d)シンタックス要素sps_video_parameter_set_idは0よりも大きく、ols_mode_idcは0に等しく、現在のAUは、次の条件:PicAが1に等しいPictureOutputFlagを有する;PicAが現在のピクチャよりも大きいnuh_layer_id nuhLidを有する;及び、PicAが出力レイヤに属する、の全てを満足するピクチャpicAを含む(例えば、ols_output_layer_flag[TargetOlsIdx][GeneralLayerIdx[nuh_layer_id]]が1に等しい)。
(e)シンタックス要素sps_video_parameter_set_idは0よりも大きく、ols_mode_idcは2に等しく、シンタックス要素ols_output_layer_flag[TargetOlsIdx][GeneralLayerIdx[nuh_layer_id]]は0に等しい。
そうでない場合には、PictureOutputFlagは、pic_output_flagに等しくセットされる。
復号化プロセスは、文献1の第8.4節、第8.5節、第8.6節、第8.7節、及び第8.8節に従って、全てのシンタックス構造レイヤ内のシンタックス要素を用いて実行されてよい。例えば、イントラ予測モード、インター予測モード、及びIBC予測モードでコーディングされているコーディングユニットに対する復号化プロセスが実行されてよく、スケーリング、変換、及びアレイプロセスが実行されてよく、インループフィルタプロセスが実行されてよい。スライスへのピクチャの分割及びCTUへのスライスの分割が夫々ピクチャのパーティショニングを形成するように、ピクチャのコーディングされたスライスがピクチャのCTUごとにスライスデータを含むべきであることは、ビットストリーム適合(bitstream conformance)の要件であってよい。
現在のピクチャの全てのスライスがデコードされた後、現在のデコードされたピクチャは、「短期参照用の使用」とマークされてよく、RefPicList[0]又はRefPicList[1]内の各ILRPエントリは、「短期参照用の使用」とマークされてよい。
vps_layer_id[i]に等しいnuh_layer_idを有するレイヤのレイヤインデックスを指定する変数GeneralLayerIdx[i]は、次のように導出されてよい:
1つ以上の実施形態に従って、NALユニット及びその中のシンタックス要素(例えば、本開示で説明されるもの)は、コーディングされたビデオストリームからビデオデータをデコードするために、本開示のデコーダによって受け取られてよい。本開示のデコーダは、コーディングされたビデオストリームからビデオデータをデコードしてよい。例えば、図24を参照して、デコーダ(880)は、デコーダ(880)の少なくとも1つのプロセッサにビデオデータをデコードさせるよう構成された復号化コード(885)を有してよい。実施形態に従って、復号化コード(885)は、少なくとも1つのプロセッサに、出力レイヤセットシグナリングのモード(例えば、ols_mode_idc=0又はols_mode_idc=2)を示すシンタックス要素(例えば、ols_mode_idc)に基づいて、コーディングされたビデオストリームの第1ピクチャが出力されるべきかどうか(例えば、PictureOutputFlag=0又は1)を決定させるよう構成された決定コード(887)を有してよい。代替的に、又は追加的に、決定コード(887)は、少なくとも1つのプロセッサに、本開示で説明されている他の条件に基づいて、コーディングされたビデオストリームの第1ピクチャが出力されるべきかどうかを決定させるよう構成されてもよい。
上記の技術は、コンピュータ読み出し可能な命令を使用しかつ1つ以上のコンピュータ可読媒体に物理的に記憶されているコンピュータソフトウェアとして実装可能である。例えば、図25は、開示されている対象の特定の実施形態を実装することに適したコンピュータシステム(900)を示す。
コンピュータソフトウェアは、1つ以上の中央演算処理装置(CPU)、グラフィクス処理ユニット(GPU)などによって直接に又は解釈、マイクロコード実行などを通じて実行され得る命令を含むコードを生成するようにアセンブリ、コンパイル、リンキングなどのメカニズムに従い得る如何なる適切な機械コード又はコンピュータ言語によってもコーディング可能である。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネット(Internet of Things)のためのデバイス、などを含む様々なタイプのコンピュータ又はその構成要素で実行可能である。
コンピュータシステム(900)に関して図25に示される構成要素は、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関して如何なる制限も示唆することを意図しない。構成要素の構成は、コンピュータシステム(900)の例となる実施形態において説明される構成要素のうちのいずれか1つ又は組み合わせに関して何らかの依存又は要件も有するものとして解釈されるべきではない。
コンピュータシステム(900)は、特定のヒューマンインターフェース入力デバイスを含んでよい。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーボード、スワイプ、データグローブ操作)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず。)を通じた一人以上のユーザによる入力に反応してよい。ヒューマンインターフェースデバイスはまた、音声(例えば、発話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画カメラから取得された写真画像)、映像(例えば、二次元映像、立体視映像を含む三次元映像)など、人による意識的な入力に必ずしも直接には関係しない特定のメディアを捕捉するためにも使用され得る。
入力ヒューマンインターフェースデバイスは、キーボード(901)、マウス(902)、トラックパッド(903)、タッチスクリーン(910)、データグローブ、ジョイスティック(905)、マイク(906)、スキャナ(907)、及びカメラ(908)のうちの1つ以上(夫々表されているもののうちの1つのみ)を含んでよい。
コンピュータシステム(900)は、特定のヒューマンインターフェース出力デバイスも含んでよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音響、光、及び匂い/味を通じて一人以上のユーザの感覚を刺激し得る。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(910)、データグローブ、又はジョイスティック(905)による触覚フィードバック、しかし、入力デバイスとして機能しない触覚フィードバックデバイスも存在し得る。)を含んでよい。例えば、そのようなデバイスは、音声出力デバイス(例えば、スピーカ(909)、ヘッドホン(図示せず。))、視覚出力デバイス(例えば、夫々タッチスクリーン入力機能の有無によらず、夫々触覚フィードバック機能の有無によらず、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、それらのうちのいくつかは、立体視出力、仮想現実メガネ(図示せず。)、ホログラフィックディスプレイ及びスモークタンク(図示せず。)などの手段により二次元視覚出力又は三次元よりも多い次元の出力を出力可能なスクリーン(910))、及びプリンタ(図示せず。)であってもよい。
コンピュータシステム(900)は、人がアクセス可能な記憶デバイス及びそれらの関連する媒体、例えば、CD/DVD又は同様の媒体(921)を伴ったCD/DVD ROM/RW(920)、サムドライブ(922)、リムーバブルハードディスク又はソリッドステートドライブ(923)、レガシー磁気媒体、例えば、テープ及びフロッピー(登録商標)ディスク(図示せず。)、専用のROM/ASIC/PLDベースデバイス、例えば、セキュリティドングル(図示せず。)、なども含むことができる。
当業者であれば、目下開示されている対象に関連して使用されている「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を含まないことも理解するはずである。
コンピュータシステム(900)はまた、1つ以上の通信ネットワークへのインターフェースも含むことができる。ネットワークは、例えば、ワイヤレス、ワイヤライン、光であることができる。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び工業、実時間、遅延耐性、などであることができる。ネットワークの例には、イーサネット(登録商標)などのローカルエリアネットワーク、ワイヤレスLAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TVを含むTVワイヤライン又はワイヤレス広域デジタルネットワーク、CANバスを含む車両及び工場ネットワーク、などがある。特定のネットワークは、一般に、特定の汎用デジタルポート又はペリフェラルバス(949)(例えば、コンピュータシステム(900)のUSBポートなど)に取り付けられた外付けネットワークインターフェースアダプタを必要とする。他は、一般に、後述されるようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネットネットワーク、又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)によってコンピュータシステム(900)のコアに組み込まれる。これらのネットワークのいずれかを使用して、コンピュータシステム(900)は他のエンティティと通信することができる。そのような通信は、単方向の受信専用(例えば、ブロードキャストTV)又は単方向の送信専用(例えば、特定のCANバスデバイスへのCANバス)であることができ、あるいは、例えば、ローカル若しくは広域デジタルネットワークを使用して他のコンピュータシステムに対して双方向であることができる。そのような通信は、クラウドコンピューティング環境(955)への通信を含むことができる。特定のプロトコル又はプロトコルスタックが、上述されたようなネットワーク及びネットワークインターフェースの夫々で使用可能である。
上記のヒューマンインターフェースデバイス、人がアクセス可能な記憶デバイス、及びネットワークインターフェース(954)は、コンピュータシステム(900)のコア(940)へ取り付けられ得る。
コア(940)は、1つ以上の中央演算処理装置(CPU)(941)、グラフィクス処理ユニット(GPU)(942)、フィールドプログラマブルゲートアレイ(FPGA)(943)の形をとる専用のプログラム可能処理ユニット、特定のタスクのためのハードウェアアクセラレータ(944)、などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(945)、ランダムアクセスメモリ(RAM)(946)、内部のユーザアクセス不能ハードドライブなどの内蔵大容量記憶装置、SSD、など(947)とともに、システムバス(948)を通じて接続されてよい。いくつかのコンピュータシステムでは、システムバス(948)は、追加のCPU、GPUなどによる拡張を可能にするように、1つ以上の物理プラグの形でアクセス可能であることができる。コアのシステムバス(2248)へ直接に又はペリフェラルバス(949)を通じて、周辺機器が取り付けられ得る。ペリフェラルバスのためのアーキテクチャには、PCI、USBなどがある。グラフィクスアダプタ(950)は、コア(940)に含まれてもよい。
CPU(941)、GPU(942)、FPGA(943)、及びアクセラレータ(944)は、組み合わせて上記のコンピュータコードを構成することができる特定の命令を実行可能である。そのコンピュータコードは、ROM(945)又はRAM(946)に記憶され得る。一時データもRAM(946)に記憶可能であり、一方、永続性データは、例えば、内蔵大容量記憶装置(947)に記憶可能である。メモリデバイスのいずれかへの高速な格納及び読み出しは、キャッシュメモリの使用により可能にされ得る。キャッシュメモリは、1つ以上のCPU(941)、GPU(942)、大容量記憶装置(947)、ROM(945)、RAM(946)などと密接に関連し得る。
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構成されたものであることができ、あるいは、それらは、コンピュータソフトウェア技術で通常の知識を有する者によく知られており利用可能である種類のものであることができる。
例として、限定としてではなく、アーキテクチャ(900)、具体的にはコア(940)を有するコンピュータシステムは、1つ以上の有形なコンピュータ可読媒体において具現されているソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ、などを含む。)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、コア内蔵大容量記憶装置(947)又はROM(945)などの、非一時的な性質であるコア(940)の特定の記憶装置に加えて、先に紹介されたユーザアクセス可能な大容量記憶装置に関連した媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(940)によって実行可能である。コンピュータ可読媒体には、特定のニーズに応じて、1つ以上のメモリデバイス又はチップが含まれ得る。ソフトウェアは、コア(940)、及び、具体的には、その中のプロセッサ(CPU、GPU、FPGAなどを含む。)に、RAM(946)に記憶されているデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することを含め、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。追加的に、又は代替案として、コンピュータシステムは、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに又はそれとともに動作することができる、回路内でハードウェアにより実現されるか又は別なふうに具現されるロジックの結果として、機能を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶している回路(例えば、集積回路(IC))、実行のためのロジックを具現する回路、又は両方を包含することができる。本開示は、ハードウェア及びソフトウェアの如何なる適切な組み合わせも包含する。
本開示は、いくつかの例となる実施形態について記載してきたが、本開示の範囲内にある代替、交換、及び様々な置換均等物が存在する。よって、明らかなように、当業者であれば、たとえ本明細書で明示的に図示又は説明されていないとしても、本開示の原理を具現し、よって、その精神及び範囲の中にある多数のシステム及び方法に想到可能である。