[0027]概して、本開示はマルチレイヤビデオコード化のための技法を記載する。本明細書に記載されるように、ビデオデータビットストリームは、コード化ピクチャ及び関連データの表現を形成するビットのシーケンスを備える場合がある。ピクチャは、様々なアクセス単位及びレイヤに属する場合がある。同じアクセス単位に属するピクチャは、同じ出力時間を有することができる。異なるアクセス単位に属するピクチャは、異なる出力時間を有することができる。マルチビューコード化では、異なるレイヤに属するピクチャは、異なるビューに属する場合がある。スケーラブルビデオコード化では、上位レイヤに属するピクチャは、向上した視覚的品質を実現することができる。
[0028]ピクチャのうちの幾つかは、イントラランダムアクセスポイント(IRAP)ピクチャである。ビデオコーダは、復号順序でIRAPピクチャより前に現れるいかなるピクチャも参照することなく、IRAPピクチャを復号することができる。更に、ピクチャは、クロスレイヤランダムアクセススキップ(CL−RAS)ピクチャを含む場合がある。幾つかの例では、CL−RASピクチャは、以下の基準のうちの1つを満たすピクチャである。第1に、ピクチャは、IRAPピクチャではないが、IRAPアクセス単位内にある。第2に、ピクチャはIRAPピクチャではなく、ピクチャは(復号順序で)IRAPアクセス単位に後続するアクセス単位内にあり、ピクチャはレイヤスイッチIRAPアクセス単位に先行するアクセス単位内にあり、ピクチャはレイヤスイッチIRAPアクセス単位内のIRAPピクチャを含んでいるレイヤに等しいレイヤ内にある。場合によっては、CL−RASピクチャは以前(又は現在)のIRAPアクセス単位より前に現れるピクチャに依存するので、CL−RASピクチャは正確に復号され得ない。そのような例では、IRAPアクセス単位は、1つ又は複数のIRAPピクチャを含んでいるアクセス単位であり得るし、アクセス単位のベースレイヤ内のピクチャはIRAPピクチャである。更に、そのような例では、レイヤスイッチIRAPアクセス単位は、IRAPアクセス単位ではないが、少なくとも1つのIRAPピクチャを含んでいるアクセス単位であり得る。CL−RASピクチャは、ビットストリームの切替え、ビットストリーム内のランダムアクセスのせいで、及び/又は他の環境において、発生する場合がある。
[0029]場合によっては、機器(例えば、媒体認識ネットワーク要素(MANE))は、ビットストリームからCL−RASピクチャを削除することができる。ビデオデコーダはCL−RASピクチャを正確に復号することができないはずなので、機器は、ビットストリームからCL−RASピクチャを自由に削除することができる。有利なことには、ビットストリームからCL−RASピクチャを削除すると、ビットストリーム内のデータ量が削減される場合がある。しかしながら、ビットストリームからCL−RASピクチャを削除すると、ビデオデコーダ(例えば、仮想参照デコーダ(HRD))が不適切な時間にビデオデコーダのコード化ピクチャバッファからコード化ピクチャを削除することになる可能性がある。例えば、ビデオデコーダは、特定の割合で、コード化ピクチャバッファからコード化ピクチャを削除する可能性がある。この例では、ビデオデコーダは、コード化ピクチャバッファから削除されたコード化ピクチャを復号することができる。更に、この例では、ビットストリームがIRAPアクセス単位用のCL−RASピクチャを含まない場合、コード化ピクチャバッファは、ビデオデコーダが予想するよりも少ないコード化ピクチャしか含まない可能性がある。その結果、この例では、ビデオデコーダがコード化ピクチャバッファからコード化ピクチャを削除する割合は大きい可能性があり、ビットストリームが不適合である結果が生じる。
[0030]従って、本開示の1つ又は複数の技法によれば、ビデオデコーダは、ある値に基づいて、IRAPアクセス単位の全てのCL−RASピクチャがビットストリーム内に存在するかどうかを決定することができる。幾つかの例では、ビデオデコーダは、ビットストリームの補足拡張情報(SEI)メッセージ内のデータに少なくとも部分的に基づいて、その値を設定することができる。他の例では、復号プロセスの外部の機構がその値を設定する場合がある。更に、幾つかの例では、ビデオデコーダは、IRAPアクセス単位の全てのCL−RASピクチャがビットストリーム内に存在するかどうかに応じて、適宜、HRDパラメータの様々なセットを使用することができる。HRDパラメータは、ビデオデコーダがコード化ピクチャバッファからピクチャをどのように削除するかを制御するパラメータを含む場合がある。このようにして、ビデオコード化規格に適合するビデオデコーダは、IRAPアクセス単位の全てのCL−RASピクチャを含むビットストリームと、IRAPアクセス単位の全てのCL−RASピクチャを含むとは限らないビットストリームとを復号することが可能であり得る。
[0031]図1は、本開示の技法を利用することができる例示的なビデオコード化システム10を示すブロック図である。本明細書で使用する「ビデオコーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコード化」又は「コード化」という用語は、ビデオ符号化又はビデオ復号を総称的に指す場合がある。
[0032]図1に示されたように、ビデオコード化システム10は、発信源機器12と宛先機器14とを含む。発信源機器12は符号化ビデオデータを生成する。従って、発信源機器12は、ビデオ符号化機器又はビデオ符号化装置と呼ばれる場合がある。宛先機器14は、発信源機器12によって生成された符号化ビデオデータを復号することができる。従って、宛先機器14は、ビデオ復号機器又はビデオ復号装置と呼ばれる場合がある。発信源機器12及び宛先機器14は、ビデオコード化機器又はビデオコード化装置の例であり得る。
[0033]発信源機器12及び宛先機器14は、デスクトップコンピュータ、モバイルコンピュータ機器、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲の機器を備える場合がある。
[0034]宛先機器14は、チャネル16を介して発信源機器12から符号化ビデオデータを受信することができる。チャネル16は、発信源機器12から宛先機器14に符号化ビデオデータを移動させることが可能な、1つ又は複数の媒体又は機器を備える場合がある。一例では、チャネル16は、発信源機器12がリアルタイムで符号化ビデオデータを直接宛先機器14に送信することを可能にする、1つ又は複数の通信媒体を備える場合がある。この例では、発信源機器12は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調することができ、変調されたビデオデータを宛先機器14に送信することができる。1つ又は複数の通信媒体は、無線周波(RF)スペクトル又は1つもしくは複数の物理伝送線路などの、ワイヤレス及び/又は有線の通信媒体を含む場合がある。1つ又は複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はグローバルネットワーク(例えば、インターネット)などの、パケットベースネットワークの一部を形成する場合がある。1つ又は複数の通信媒体は、発信源機器12から宛先機器14への通信を容易にする、ルータ、スイッチ、基地局、又は他の機器を含む場合がある。
[0035]別の例では、チャネル16は、発信源機器12によって生成された符号化ビデオデータを記憶する記憶媒体を含む場合がある。この例では、宛先機器14は、例えば、ディスクアクセス又はカードアクセスを介して、記憶媒体にアクセスすることができる。記憶媒体は、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、又は符号化ビデオデータを記憶するための他の適切なデジタル記憶媒体などの、様々なローカルにアクセスされるデータ記憶媒体を含む場合がある。
[0036]さらなる例では、チャネル16は、発信源機器12によって生成された符号化ビデオデータを記憶する、ファイルサーバ又は別の中間記憶装置を含む場合がある。この例では、宛先機器14は、(例えば、ストリーミング又はダウンロードを介して)ファイルサーバ又は他の中間記憶装置に記憶された符号化ビデオデータにアクセスすることができる。ファイルサーバは、符号化ビデオデータを記憶すること、及び符号化ビデオデータを宛先機器14に送信することが可能なタイプのサーバであり得る。例示的なファイルサーバには、(例えば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続記憶(NAS)機器、及びローカルディスクドライブが含まれる。
[0037]宛先機器14は、インターネット接続などの標準的なデータ接続を介して符号化ビデオデータにアクセスすることができる。例示的なタイプのデータ接続には、ファイルサーバに記憶されている符号化ビデオデータにアクセスするのに適切である、ワイヤレスチャネル(例えば、Wi−Fi(登録商標)接続)、有線接続(例えば、DSL、ケーブルモデムなど)、又はその両方の組合せが含まれ得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、又は両方の組合せであり得る。
[0038]本開示の技法は、ワイヤレスの用途又は設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、又は他の用途などの、様々なマルチメディア用途をサポートするビデオコード化に適用される場合がある。幾つかの例では、ビデオコード化システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、及び/又はビデオ電話などの用途をサポートするために、単方向又は双方向のビデオ送信をサポートするように構成される場合がある。
[0039]図1は例にすぎず、本開示の技法は、符号化機器と復号機器との間の任意のデータ通信を必ずしも含むとは限らないビデオコード化設定(例えば、ビデオ符号化又はビデオ復号)に適用される場合がある。他の例では、データがローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われる。ビデオ符号化機器はデータ(例えば、ビデオデータ)を符号化し、メモリに記憶することができ、及び/又は、ビデオ復号機器はメモリからデータ(例えば、ビデオデータ)を取り出し、復号することができる。多くの例では、符号化及び復号は、互いに通信しないが、メモリにデータを符号化するだけの機器、及び/又はメモリからデータを取り出し復号するだけの機器によって実行される。
[0040]図1の例では、発信源機器12は、ビデオ発信源18と、ビデオエンコーダ20と、出力インターフェース22とを含む。幾つかの例では、出力インターフェース22は、変調器/復調器(モデム)及び/又は送信機を含む場合がある。ビデオ発信源18には、例えばビデオカメラなどの撮像装置、以前に撮影されたビデオデータを収容するビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するビデオフィードインターフェース、及び/又はビデオデータを生成するためのコンピュータグラフィックスシステム、又はビデオデータのそのような発信源の組合せが含まれ得る。
[0041]ビデオエンコーダ20は、ビデオ発信源18からのビデオデータを符号化することができる。幾つかの例では、発信源機器12は、出力インターフェース22を介して宛先機器14に符号化ビデオデータを直接送信する。他の例では、符号化ビデオデータは、復号及び/又は再生のための宛先機器14による後のアクセスのために、記憶媒体又はファイルサーバ上に記憶される場合もある。
[0042]図1の例では、宛先機器14は、入力インターフェース28と、ビデオデコーダ30と、表示装置32とを含む。幾つかの例では、入力インターフェース28は、受信機及び/又はモデムを含む。入力インターフェース28は、チャネル16を介して符号化ビデオデータを受信することができる。表示装置32は、宛先機器14と一体化される場合があるか、又はその外部にある場合がある。一般に、表示装置32は復号ビデオデータを表示する。表示装置32は、液晶表示器(LCD)、プラズマ表示器、有機発光ダイオード(OLED)表示器、又は別のタイプの表示装置などの、様々な表示装置を備える場合がある。
[0043]ビデオエンコーダ20及びビデオデコーダ30は、各々、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ハードウェア、又はそれらの任意の組合せなどの、様々な適切な回路のうちのいずれかとして実装される場合がある。本技法がソフトウェアに部分的に実装される場合、機器は、適切な非一時的コンピュータ可読記憶媒体にソフトウェア用の命令を記憶し、本開示の技法を実施するために、1つ又は複数のプロセッサを使用してその命令をハードウェア内で実行することができる。(ハードウェア、ソフトウェア、ハードウェア及びソフトウェアの組合せなどを含む)上記のいずれも、1つ又は複数のプロセッサであると見なされ得る。ビデオエンコーダ20及びビデオデコーダ30の各々は、1つ又は複数のエンコーダ又はデコーダに含まれる場合があり、それらのいずれかが、それぞれの機器内の複合エンコーダ/デコーダ(CODEC)の一部として組み込まれる場合がある。
[0044]本開示は、概して、ビデオデコーダ30などの別の機器にある情報を「信号伝達(signal)」するビデオエンコーダ20に言及する場合がある。「信号伝達(signaling)」という用語は、一般に、圧縮されたビデオデータを復号するために使用されるシンタックス要素及び/又は他のデータの通信を指す場合がある。そのような通信は、リアルタイム又はほぼリアルタイムで発生する可能性がある。代替として、そのような通信は、符号化の時に符号化ビットストリーム内でシンタックス要素をコンピュータ可読記憶媒体に記憶するときに発生する場合があるなど、ある時間期間にわたって発生する可能性があり、これらのシンタックス要素は、次いで、この媒体に記憶された後の任意の時間に復号機器によって取り出され得る。
[0045]幾つかの例では、ビデオエンコーダ20及びビデオデコーダ30は、そのスケーラブルビデオコード化(SVC)拡張と、マルチビュービデオコード化(MVC)拡張と、MVCベースの3DV拡張とを含む、ISO/IEC MPEG−4 Visual及び(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264などのビデオ圧縮規格に従って動作する。場合によっては、MVCベースの3DVに適合する任意のビットストリームは、MVCプロファイル、例えばステレオハイプロファイルに準拠するサブビットストリームを常に含んでいる。更に、H.264/AVCに対する3次元ビデオ(3DV)コード化拡張、即ちAVCベースの3DVを生成する作業が進行中である。他の例では、ビデオエンコーダ20及びビデオデコーダ30は、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262又はISO/IEC MPEG−2 Visual、及びITU−T H.264,ISO/IEC Visualに従って動作することができる。
[0046]他の例では、ビデオエンコーダ20及びビデオデコーダ30は、ITU−Tビデオコード化エキスパートグループ(VCEG)及びISO/IECモーションピクチャエキスパーツグループ(MPEG)のビデオコード化共同研究部会(JCT−VC)によって開発された高効率ビデオコード化(HEVC)規格に従って動作することができる。「HEVCワーキングドラフト10」又は「HEVC WD10」と呼ばれるHEVC規格のドラフトは、Brossらの「Editors’ proposed corrections to HEVC version 1」、ITU−T SG16 WP3及びISO/IEC JTC1/SC29/WG11のビデオコード化共同研究部会(JCT−VC)、第13回会合、仁川、韓国、2013年4月に記載されている。少なくとも2014年5月30日時点で、HEVCワーキングドラフト10は、http://phenix.int−evry.fr/jct/doc_end_user/documents/13_Incheon/wg11/JCTVC−M0432−v3.zipから利用可能であり、その内容全体は、参照により本明細書に組み込まれる。
[0047]更に、HEVC向けのスケーラブルビデオコード化拡張と、マルチビューコード化拡張と、3DV拡張とを製作する作業が進行中である。HEVCの3DV拡張は、HEVCベースの3DV、HEVC−3DV、又は3D−HEVCと呼ばれる場合がある。HEVCに対するマルチビュー拡張、即ちMV−HEVCも、3Dビデオコード化拡張開発共同研究部会(JCT−3V)によって開発中である。以下、MV−HEVC WD4と呼ばれる、MV−HEVCの最近のワーキングドラフト(WD)は、Techらの「MV−HEVC Draft Text 4」、ITU−T SG16 WP3及びISO/IEC JTC1/SC29/WG11のビデオコード化共同研究部会(JCT−VC)、第4回会合、仁川、韓国、2013年4月、文書番号JCT3V−D1004_d0(以下、「JCT3V−D1004_d0」)に記載されている。少なくとも2014年5月30日時点で、JCT3V−D1004_d0は、http://phenix.it−sudparis.eu/jct2/doc_end_user/documents/4_Incheon/wg11/JCT3V−D1004−v1.zipから利用可能であり、その内容全体は、参照により本明細書に組み込まれる。
[0048]SHVCと称するHEVCに対するスケーラブル拡張も、JCT−VCによって開発中である。SHVCの最近のワーキングドラフト(WD)は、以下、SHVC WD2と呼ばれ、Chenらの「SHVC Working Draft 2」、ITU−T SG16 WP3及びISO/IEC JTC1/SC29/WG11のビデオコード化共同研究部会(JCT−VC)、第13回会合、仁川、韓国、2013年4月18〜26日、文書番号JCTVC−M1008_v1(以下、「JCTVC−M1008_v1」)に記載されている。少なくとも2014年5月30日時点で、JCTVC−M1008_v1は、http://phenix.int−evry.fr/jct/doc_end_user/documents/13_Incheon/wg11/JCTVC−M1008−v1.zipから入手可能である。
[0049]HEVC及び他のビデオコード化規格では、ビデオシーケンスは、通常、一連のピクチャを含む。ピクチャは「フレーム」と呼ばれる場合もある。ピクチャは、SL、SCb、及びSCrと表記される3つのサンプルアレイを含む場合がある。SLは、ルーマサンプルの2次元アレイ(即ち、ブロック)である。SCbは、Cbクロミナンスサンプルの2次元アレイである。SCrは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれる場合もある。他の例では、ピクチャは、モノクロームであり得るし、ルーマサンプルのアレイのみを含む場合がある。
[0050]ピクチャの符号化表現を生成するために、ビデオエンコーダ20は、コード化ツリー単位(CTU)のセットを生成することができる。CTUの各々は、ルーマサンプルのコード化ツリーブロックと、クロマサンプルの2つの対応するコード化ツリーブロックと、それらのコード化ツリーブロックのサンプルをコード化するために使用されるシンタックス構造とを備える(例えば、である)場合がある。モノクロームピクチャ又は3つの別個のカラープレーンを有するピクチャでは、CTUは、単一のコード化ツリーブロックと、そのコード化ツリーブロックのサンプルをコード化するために使用されるシンタックス構造とを備える場合がある。コード化ツリーブロックは、サンプルのN×Nブロックであり得る。CTUは、「ツリーブロック」又は「最大コード化単位」(LCU)と呼ばれる場合もある。HEVCのCTUは、H.264/AVCなどの他の規格のマクロブロックに広い意味で類似する場合がある。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つ又は複数のコード化単位(CU)を含む場合がある。スライスは、走査順序(例えば、ラスタ走査順序)で連続的に順序付けられた整数個のCTUを含む場合がある。
[0051]本開示は、サンプルの1つ又は複数のブロックのサンプルをコード化するために使用される1つ又は複数のサンプルブロック及びシンタックス構造を指すために、「ビデオ単位」又は「ビデオブロック」又は「ブロック」という用語を使用する場合がある。例示的なタイプのビデオ単位には、CTU、CU、PU、変換単位(TU)、マクロブロック、マクロブロック区分などが含まれ得る。幾つかのコンテキストでは、CTU、CU、PUなどの説明は、マクロブロック又はマクロブロック区分の説明と交換され得る。
[0052]コード化CTUを生成するために、ビデオエンコーダ20は、コード化ツリーブロックをコード化ブロックに分割するために、CTUのコード化ツリーブロックに対して4分木区分化を再帰的に実行することができ、従って「コード化ツリー単位」という名称がある。コード化ブロックは、サンプルのN×Nブロックであり得る。CUは、ルーマサンプルアレイとCbサンプルアレイとCrサンプルアレイとを有するピクチャのルーマサンプルのコード化ブロックと、そのピクチャのクロマサンプルの2つの対応するコード化ブロックと、それらのコード化ブロックのサンプルをコード化するために使用されるシンタックス構造とを備える(comprise)(例えば、である(be)場合がある。モノクロームピクチャ又は3つの別個のカラープレーンを有するピクチャでは、CUは、単一のコード化ブロックと、そのコード化ブロックのサンプルをコード化するために使用されるシンタックス構造とを備える場合がある。
[0053]ビデオエンコーダ20は、CUのコード化ブロックを1つ又は複数の予測ブロックに区分化することができる。予測ブロックは、同じ予測が適用されるサンプルの矩形(即ち、正方形又は非正方形)ブロックであり得る。CUの予測単位(PU)は、ピクチャのルーマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、予測ブロックサンプルを予測するために使用されるシンタックス構造とを備える(例えば、である)場合がある。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、及びCr予測ブロックのための、予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成することができる。モノクロームピクチャ又は3つの別個のカラープレーンを有するピクチャでは、PUは、単一の予測ブロックと、その予測ブロックサンプルを予測するために使用されるシンタックス構造とを備える場合がある。
[0054]ビデオエンコーダ20は、PU用の予測ブロックを生成するために、イントラ予測又はインター予測を使用することができる。ビデオエンコーダ20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUと関連付けられたピクチャ(即ち、PUの予測ブロックを含んでいるピクチャ)の復号サンプルに基づいて、PUの予測ブロックを生成することができる。
[0055]ビデオエンコーダ20がPUの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、PUと関連付けられたピクチャ以外の1つ又は複数のピクチャの復号サンプルに基づいて、PUの予測ブロックを生成することができる。ビデオエンコーダ20は、PUの予測ブロックを生成するために単予測又は双予測を使用することができる。ビデオエンコーダ20がPU用の予測ブロックを生成するために単予測を使用するとき、PUは単一の動きベクトルを有することができる。ビデオエンコーダ20がPU用の予測ブロックを生成するために双予測を使用するとき、PUは2つの動きベクトルを有することができる。
[0056]単予測又は双予測を実行するために、ビデオエンコーダ20は、現在スライスについて、第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを生成することができる。参照ピクチャリストの各々は、1つ又は複数の参照ピクチャを含む場合がある。単予測を使用するとき、ビデオエンコーダ20は、参照ピクチャ内の参照位置を決定するために、RefPicList0とRefPicList1のいずれか又は両方において参照ピクチャを探索することができる。更に、単予測を使用するとき、ビデオエンコーダ20は、参照位置に対応するサンプルに少なくとも部分的に基づいて、PU用の予測ブロック(即ち、予測サンプルブロック)を生成することができる。その上、単予測を使用するとき、ビデオエンコーダ20は、PUの予測ブロックと参照位置との間の空間変位を示す単一の動きベクトルを生成することができる。PUの予測ブロックと参照位置との間の空間変位を示すために、動きベクトルは、PUの予測ブロックと参照位置との間の水平方向の変位を指定する水平成分を含む場合があり、PUの予測ブロックと参照位置との間の垂直方向の変位を指定する垂直成分を含む場合がある。
[0057]PUを符号化するために双予測を使用するとき、ビデオエンコーダ20は、RefPicList0における参照ピクチャ内の第1の参照位置と、RefPicList1における参照ピクチャ内の第2の参照位置とを決定することができる。次いで、ビデオエンコーダ20は、第1の参照位置及び第2の参照位置に対応するサンプルに少なくとも部分的に基づいて、PU用の予測ブロックを生成することができる。その上、PUを符号化するために双予測を使用するとき、ビデオエンコーダ20は、PUの予測ブロックと第1の参照位置との間の空間変位を示す第1の動きベクトルと、PUの予測ブロックと第2の参照位置との間の空間変位を示す第2の動きベクトルとを生成することができる。
[0058]ビデオエンコーダ20がCUの1つ又は複数のPU用の予測ブロック(例えば、ルーマ、Cb、及びCrの予測ブロック)を生成した後、ビデオエンコーダ20は、CU用の1つ又は複数の残差ブロックを生成することができる。例えば、ビデオエンコーダ20は、CU用のルーマ残差ブロックを生成することができる。CUのルーマ残差ブロック内の各サンプルは、CUの予測ルーマブロックの1つの中のルーマサンプルと、CUの元のルーマコード化ブロック内の対応するサンプルとの間の差分を示す。加えて、ビデオエンコーダ20は、CU用のCb残差ブロックを生成することができる。CUのCb残差ブロック内の各サンプルは、CUの予測Cbブロックの1つの中のCbサンプルと、CUの元のCbコード化ブロック内の対応するサンプルとの間の差分を示すことができる。ビデオエンコーダ20は、CU用のCr残差ブロックを生成することもできる。CUのCr残差ブロック内の各サンプルは、CUの予測Crブロックの1つの中のCrサンプルと、CUの元のCrコード化ブロック内の対応するサンプルとの間の差分を示すことができる。
[0059]更に、ビデオエンコーダ20は、CUの残差ブロック(例えば、ルーマ、Cb、及びCrの残差ブロック)を1つ又は複数の変換ブロック(例えば、ルーマ、Cb、及びCrの変換ブロック)に分解するために、4分木区分化を使用することができる。変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであり得る。CUの変換単位(TU)は、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とを備える(例えば、である)場合がある。従って、CUの各TUは、ルーマ変換ブロックと、Cb変換ブロックと、Cr変換ブロックとを有する(即ち、それらと関連付けられる)場合がある。TUの(即ち、TUと関連付けられた)ルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロームピクチャ又は3つの別個のカラープレーンを有するピクチャでは、TUは、サンプルの単一の変換ブロックと、その変換ブロックサンプルを変換するために使用されるシンタックス構造とを備える場合がある。
[0060]ビデオエンコーダ20は、TU用の係数ブロックを生成するために、TUの変換ブロックに1回又は複数回の変換を適用することができる。係数ブロックは、変換係数の2次元アレイであり得る。変換係数は、スカラー量であり得る。例えば、ビデオエンコーダ20は、TU用のルーマ係数ブロックを生成するために、TUのルーマ変換ブロックに1回又は複数回の変換を適用することができる。ビデオエンコーダ20は、TU用のCb係数ブロックを生成するために、TUのCb変換ブロックに1回又は複数回の変換を適用することができる。ビデオエンコーダ20は、TU用のCr係数ブロックを生成するために、TUのCr変換ブロックに1回又は複数回の変換を適用することができる。
[0061]係数ブロック(例えば、ルーマ係数ブロック、Cb係数ブロック、又はCr係数ブロック)を生成した後、ビデオエンコーダ20は、その係数ブロックを量子化することができる。量子化は、一般に、変換係数を表すために使用されるデータ量をできるだけ削減するために変換係数が量子化され、さらなる圧縮を実現する処理を指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素をエントロピー符号化することができる。例えば、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コード化(CABAC)を実行することができる。ビデオエンコーダ20は、エントロピー符号化シンタックス要素をビットストリーム内で出力することができる。
[0062]ビデオエンコーダ20は、エントロピー符号化シンタックス要素を含むビットストリームを出力することができる。ビットストリームは、コード化ピクチャ及び関連データの表現を形成するビットのシーケンスを含む場合がある。ビットストリームは、ネットワーク抽象化レイヤ(NAL)単位のシーケンスを備える場合がある。NAL単位の各々は、NAL単位ヘッダを含む場合があり、ローバイトシーケンスペイロード(RBSP)をカプセル化することができる。NAL単位ヘッダは、NAL単位タイプコードを示すシンタックス要素を含む場合がある。NAL単位のNAL単位ヘッダによって指定されるNAL単位タイプコードは、NAL単位のタイプを示す。RBSPは、NAL単位内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。場合によっては、RBSPはゼロビットを含む。
[0063]様々なタイプのNAL単位は、様々なタイプのRBSPをカプセル化することができる。例えば、第1のタイプのNAL単位はピクチャパラメータセット(PPS)用のRBSPをカプセル化することができ、第2のタイプのNAL単位はコード化スライス用のRBSPをカプセル化することができ、第3のタイプのNAL単位は補足拡張情報(SEI)用のRBSPをカプセル化することができ、以下同様である。(パラメータセット用及びSEIメッセージ用のRBSPとは対照的に)ビデオコード化データ用のRBSPをカプセル化するNAL単位は、ビデオコード化レイヤ(VCL)NAL単位と呼ばれる場合がある。少なくとも幾つかの例では、SEIは、VCL NAL単位からのコード化ピクチャのサンプルを復号するために必要ではない情報を含んでいる。更に、少なくとも幾つかの例では、SEIのRBSPは、1つ又は複数のSEIメッセージを含んでいる場合がある。SEIメッセージは、SEIを含んでいるメッセージであり得る。
[0064]HEVC及び他のビデオコード化規格は、様々なタイプのパラメータセットを提供する。例えば、ビデオパラメータセット(VPS)は、0個以上のコード化ビデオシーケンス(CVS)全体に適用するシンタックス要素を備えるシンタックス構造である。シーケンスパラメータセット(SPS)は、CVSの全てのスライスに適用される情報を含んでいる場合がある。SPSは、SPSがアクティブであるときアクティブであるVPSを識別するシンタックス要素を含む場合がある。従って、VPSのシンタックス要素は、SPSのシンタックス要素よりも一般的に適用可能であり得る。PPSは、0個以上のコード化ピクチャに適用されるシンタックス要素を備えるシンタックス構造である。PPSは、PPSがアクティブであるときアクティブであるSPSを識別するシンタックス要素を含む場合がある。スライスのスライスヘッダは、スライスがコード化されているときにアクティブであるPPSを示すシンタックス要素を含む場合がある。
[0065]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信することができる。加えて、ビデオデコーダ30は、ビットストリームからシンタックス要素を取得(例えば、復号)するために、ビットストリームを構文解析することができる。ビデオデコーダ30は、ビットストリームから取得(例えば、復号)されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを復元することができる。ビデオデータを復元する処理は、一般に、ビデオエンコーダ20によって実行された処理の逆であり得る。例えば、ビデオデコーダ30は、現在CUのPU用の予測ブロックを決定するために、PUの動きベクトルを使用することができる。加えて、ビデオデコーダ30は、現在CUのTUと関連付けられた変換係数ブロックを逆量子化することができる。ビデオデコーダ30は、現在CUのTUの(即ち、TUと関連付けられた)変換ブロックを復元するために、変換係数ブロックに対して逆変換を実行することができる。ビデオデコーダ30は、現在CUのPU用の予測ブロックのサンプルを、現在CUのTUの変換ブロックの対応するサンプルに加算することによって、現在CUのコード化ブロックを復元することができる。ピクチャのCUごとにコード化ブロックを復元することによって、ビデオデコーダ30はピクチャを復元することができる。
[0066]ビデオコーダ(例えば、ビデオエンコーダ20又はビデオデコーダ30)が現在ピクチャの処理を開始したとき、ビデオコーダは、現在ピクチャ用の5つの参照ピクチャセット(RPS)のサブセットであるRefPicSetStCurrBeforeと、RefPicSetStCurrAfterと、RefPicSetFollと、RefPicSetLtCurrと、RefPicSetLtFollとを決定することができる。現在ピクチャ用のこれら5つのRPSのサブセットの結合は、本明細書では現在ピクチャ用のRPSと呼ばれる場合がある。RefPicSetStCurrBeforeは、出力順序で現在ピクチャの前に現れ、現在ピクチャによる参照に使用される場合がある短期参照ピクチャを含む場合がある。RefPicStCurrAfterは、出力順序で現在ピクチャの後に現れ、現在ピクチャによる参照に使用される場合がある短期参照ピクチャを含む場合がある。RefPicSetStFollは、現在ピクチャによる参照に使用されない短期参照ピクチャを含む場合がある。RefPicSetLtCurrは、現在ピクチャによる参照に使用される場合がある長期参照ピクチャを含む場合がある。RefPicSetLtFollは、現在ピクチャによる参照に使用されない長期参照ピクチャを含む場合がある。
[0067]HEVC及び他のビデオコード化規格は、幾つかの様々なスライスタイプを提供する。これらのスライスタイプは、Iスライスと、Pスライスと、Bスライスとを含む。Iスライスでは、イントラ予測のみが許可される。Pスライスでは、イントラ予測及び単方向インター予測が許可される。Bスライスでは、イントラ予測、単方向インター予測、及び双方向インター予測が許可される。ビデオコーダがピクチャのスライスのコード化を開始したとき、ビデオコーダは、第1の参照ピクチャリスト(即ち、リスト0)を初期化することができる。更に、現在スライスがBスライスである場合、ビデオコーダは、第2の参照ピクチャリスト(即ち、リスト1)を初期化することができる。本開示は、リスト0を「RefPicList0」と呼ぶ場合があり、リスト1を「RefPicList1」と呼ぶ場合がある。
[0068]RefPicList0を生成するために、ビデオコーダ(例えば、ビデオエンコーダ又はビデオデコーダ)は、RefPicList0の初期バージョンを生成することができる。RefPicList0の初期バージョンでは、利用可能な場合、RefPicSetStCurrBefore内の参照ピクチャが最初に列挙され、RefPicSetStCurrAfter内の参照ピクチャがそれに続き、RefPicSetLtCurr内の参照ピクチャがそれに続く。RefPicList0の初期バージョンでは、早い出力順序を有する短期ピクチャ(即ち、RefPicSetStCurrBefore内の参照ピクチャ)が、現在ピクチャまでのピクチャ順序カウント(POC)距離の昇順で最初にRefPicList0に挿入され、次いで、遅い出力順序を有する短期ピクチャ(即ち、RefPicSetStCurrAfter内の参照ピクチャ)が、現在ピクチャまでのPOC距離の昇順でRefPicList0に挿入され、最後に、長期ピクチャ(即ち、RefPicSetLtCurr内の参照ピクチャ)が最後に挿入される。POC距離は、ピクチャ用のPOC値の間の差分である。POCは、同じコード化ビデオシーケンス内の他のピクチャの出力順序の位置に対する出力順序における関連ピクチャの位置を示す、各ピクチャと関連付けられた変数である。
[0069]同様に、RefPicList1を生成するために、ビデオコーダは、RefPicList1の初期バージョンを生成することができる。RefPicList1の初期バージョンでは、RefPicSetStCurrAfter内の参照ピクチャが最初に列挙され、RefPicSetStCurrBefore内の参照ピクチャがそれに続き、RefPicSetLtCurr内の参照ピクチャがそれに続く。RefPicList1の初期バージョンでは、遅い出力順序を有する短期ピクチャ(即ち、RefPicSetStCurrAfter内の参照ピクチャ)が、現在ピクチャまでのPOC距離の昇順で最初にRefPicList1に挿入され、次いで、早い出力順序を有する短期ピクチャ(即ち、RefPicSetStCurrBefore内の参照ピクチャ)が、現在ピクチャまでのPOC距離の昇順でRefPicList1に挿入され、最後に、長期ピクチャ(即ち、RefPicSetLtCurr内の参照ピクチャ)が最後に挿入される。このようにして、参照ピクチャリストの初期化により、3つのRPSのサブセットであるRefPicSetStCurrBefore、RefPicSetStCurrAfter、及びRefPicSetLtCurrに基づいて、デフォルトのリスト0及び(スライスがBスライスである場合)リスト1が作成される。
[0070]ビデオコーダが参照ピクチャリスト(例えば、RefPicList0又はRefPicList1)の初期バージョンを生成した後、ビデオコーダは、参照ピクチャリスト内の参照ピクチャの順序を修正することができる。即ち、ビデオコーダは、参照ピクチャリスト内の参照ピクチャの順序を修正するために、参照ピクチャリスト修正(RPLM)プロセスを実行することができる。
[0071]マルチビューコード化では、異なる視点からの同じシーンの複数のビューが存在する場合がある。「アクセス単位」という用語は、同じ時間インスタンスに対応するピクチャのセットを指すために使用される場合がある。従って、ビデオデータは、時間とともに生じる一連のアクセス単位として概念化され得る。「ビューコンポーネント」は、単一のアクセス単位内のビューのコード化表現であり得る。本開示では、「ビュー」は、同じビュー識別子と関連付けられたビューコンポーネントのシーケンスを指す場合がある。
[0072]マルチビューコード化はビュー間予測をサポートする。ビュー間予測は、HEVCにおいて使用されるインター予測と同様であり、同じシンタックス要素を使用することができる。しかしながら、ビデオコーダが(PUなどの)現在ビデオ単位に対してビュー間予測を実行するとき、ビデオエンコーダ20は、参照ピクチャとして、その現在ビデオ単位と同じアクセス単位内にあるが、異なるビュー内にあるピクチャを使用することができる。対照的に、従来のインター予測は、参照ピクチャとして異なるアクセス単位内のピクチャのみを使用する。
[0073]マルチビューコード化では、ビデオデコーダ(例えば、ビデオデコーダ30)が、あるビュー内のピクチャを、任意の他のビュー内のピクチャを参照せずに復号することができる場合、そのビューは「ベースビュー」と呼ばれる場合がある。非ベースビューのうちの1つの中のピクチャをコード化するとき、あるピクチャが異なるビュー内にあるが、ビデオコーダが現在コード化中のピクチャと同じ時間インスタンス(即ち、アクセス単位)内にある場合、(ビデオエンコーダ20又はビデオデコーダ30などの)ビデオコーダは、参照ピクチャリストにそのピクチャを追加することができる。他のインター予測参照ピクチャと同様に、ビデオコーダは、参照ピクチャリストの任意の位置にビュー間予測参照ピクチャを挿入することができる。
[0074]NAL単位は、ヘッダとペイロードとを含む場合がある。NAL単位のヘッダは、nuh_reserved_zero_6bitsシンタックス要素を含む場合がある。幾つかの例では、NAL単位がマルチビューコード化、3DVコード化、又はスケーラブルビデオコード化におけるベースレイヤに関係する場合、NAL単位のnuh_reserved_zero_6bitsシンタックス要素は0に等しい。ビットストリームのベースレイヤ内のデータは、ビットストリームの任意の他のレイヤ内のデータを参照せずに復号され得る。NAL単位が、マルチビューコード化、3DV、又はスケーラブルビデオコード化におけるベースレイヤに関係しない場合、nuh_reserved_zero_6bitsシンタックス要素は非0値を有することができる。具体的には、NAL単位が、マルチビューコード化、3DV、又はスケーラブルビデオコード化におけるベースレイヤに関係しない場合、NAL単位のnuh_reserved_zero_6bitsシンタックス要素は、NAL単位のレイヤ識別子を規定する。
[0075]更に、レイヤ内の幾つかのピクチャは、同じレイヤ内の他のピクチャを参照せずに復号され得る。従って、レイヤの幾つかのピクチャのデータをカプセル化しているNAL単位は、そのレイヤ内の他のピクチャの復号可能性に影響を及ぼすことなく、ビットストリームから削除され得る。例えば、偶数のピクチャ順序カウント(POC)値を有するピクチャは、奇数のPOC値を有するピクチャを参照せずに復号可能であり得る。そのようなピクチャのデータをカプセル化しているNAL単位を削除すると、ビットストリームのフレームレートが低減され得る。レイヤ内の他のピクチャを参照せずに復号され得るレイヤ内のピクチャのサブセットは、本明細書ではサブレイヤと呼ばれる場合がある。
[0076]NAL単位は、temporal_idシンタックス要素を含む場合がある。NAL単位のtemporal_idシンタックス要素は、NAL単位の時間識別子を規定する。第1のNAL単位の時間識別子が同じレイヤ内の第2のNAL単位の時間識別子よりも小さい場合、第1のNAL単位によってカプセル化されたデータは、第2のNAL単位によってカプセル化されたデータを参照せずに復号され得る。
[0077]ビットストリームの各動作点は、レイヤ識別子のセット(即ち、nuh_layer_id値のセット)及び時間識別子と関連付けられる。レイヤ識別子のセットはOpLayerIdSetと表記され得るし、時間識別子はTemporalIDと表記され得る。NAL単位のレイヤ識別子が動作点のレイヤ識別子のセット内にあり、NAL単位の時間識別子が動作点の時間識別子以下である場合、NAL単位は動作点に属する。動作点は、OpLayerIdSet及び時間識別子と関連付けられるビットストリームのサブセットである。動作点は、動作点と関連付けられる各NAL単位を含む場合がある。動作点は、動作点と関連付けられないVCL NAL単位を含まない。
[0078]少なくとも幾つかのビデオコード化規格は、ビデオバッファリングモデルを規定する。H.264/AVC及びHEVCでは、バッファリングモデルは、「仮想参照デコーダ」又は「HRD」と呼ばれる。HEVCワーキングドラフト10では、HRDは付録Cに記述されている。HRDは、データが復号のためにどのようにバッファリングされるべきかと、復号データが出力のためにどのようにバッファリングされるかとを記述する。例えば、HRDは、コード化ピクチャバッファ(「CPB」)、復号ピクチャバッファ(「DPB」)、及びビデオ復号プロセスの動作を記述する。CPBは、HRDによって指定された復号順序でアクセス単位を含んでいる先入れ先出しバッファである。DPBは、HRDによって指定された参照、出力並べ替え、又は出力遅延のために復号ピクチャを保持するバッファである。CPB及びDPBの挙動は、数学的に規定され得る。HRDは、タイミング、バッファサイズ、及びビットレートに対して直接的に制約を課する場合がある。更に、HRDは、様々なビットストリームの特性及び統計値に対して間接的に制約を課する場合がある。
[0079]H.264/AVC及びHEVCでは、ビットストリームの適合性及びデコーダの適合性がHRD仕様の一部として規定される。言い換えれば、HRDモデルは、ビットストリームが規格に適合するかどうかを決定する検査と、デコーダが規格に適合するかどうかを決定する検査とを規定する。HRDはある種類のデコーダとして命名されたが、ビデオエンコーダは、通常、ビットストリームの適合性を保証するためにHRDを使用するが、ビデオデコーダは、通常、HRDを必要としない。
[0080]H.264/AVC及びHEVCは両方とも、2つのタイプのビットストリーム又はHRDの適合性、即ちタイプIとタイプIIとを規定する。タイプIのビットストリームは、ビットストリーム内の全てのアクセス単位用のVCL NAL単位及びフィラーデータNAL単位のみを含んでいるNAL単位ストリームである。少なくとも幾つかの例では、NAL単位ストリームはNAL単位のシーケンスである。タイプIIのビットストリームは、ビットストリーム内の全てのアクセス単位用のVCL NAL単位及びフィラーデータNAL単位に加えて、以下のフィラーデータNAL単位以外のさらなる非VCL NAL単位、ならびに、NAL単位ストリームからバイトストリームを形成する全てのleading_zero_8bits、zero_byte、start_coded_prefix_one_3bytes、及びtrailing_zero_8bitsのシンタックス要素のうちの少なくとも1つを含んでいるNAL単位ストリームである。
[0081]ビットストリームがビデオコード化規格に適合するかどうかを決定するビットストリーム適合性検査を機器が実行するとき、機器はビットストリームの動作点を選択することができる。次いで、機器は、選択された動作点に適用可能なHRDパラメータのセットを決定することができる。機器は、HRDの挙動を構成するために、選択された動作点に適用可能なHRDパラメータのセットを使用することができる。より詳細には、機器は、仮想ストリームスケジューラ(HSS)、CPB、復号プロセス、DPBなどの、HRDの特定の構成要素の挙動を構成するために、適用可能なHRDパラメータのセットを使用することができる。その後、HSSは、特定のスケジュールに従って、HRDのCPBにビットストリームのコード化ビデオデータを注入することができる。更に、機器は、CPB内のコード化ビデオデータを復号する復号プロセスを起動することができる。復号プロセスは、DPBに復号ピクチャを出力することができる。機器がHRDを通してデータを移動させるとき、機器は、制約の特定のセットが満たされたままであるかどうかを決定することができる。例えば、機器は、HRDが選択された動作点の動作点を復号している間、CPB又はDPBにおいてオーバーフロー又はアンダーフローの状態が発生するかどうかを決定することができる。機器は、このようにして、ビットストリームの各動作点を選択し処理することができる。ビットストリームの動作点が制約を破られるようにさせない場合、機器は、ビットストリームがビデオコード化規格に適合すると決定することができる。
[0082]H.264/AVCとHEVCの両方は、2つのタイプのデコーダ適合性、即ち、出力タイミングデコーダ適合性と出力順序デコーダ適合性とを規定する。特定のプロファイル、ティア、及びレベルに対する適合性を主張するデコーダは、HEVCなどのビデオコード化規格のビットストリーム適合性要件に適合する全てのビットストリームの復号に成功することができる。幾つかの例では、「プロファイル」はビットストリームシンタックスのサブセットを指す場合がある。「ティア」及び「レベル」は、各プロファイル内で規定され得る。ティアのレベルは、ビットストリーム内のシンタックス要素の値に課された制約の規定されたセットであり得る。これらの制約は、値に関する単純な制限であり得る。代替として、これらの制約は、値の演算の組合せ(例えば、ピクチャの幅×ピクチャの高さ×毎秒復号されるピクチャの数)に関する制約の形態をとる場合がある。通常、下位ティアに規定されたレベルは、上位ティアに規定されたレベルよりも制約される。
[0083]検査対象のデコーダ(DUT)がビデオコード化規格に適合するかどうかを決定するために、機器がデコーダ適合性検査を実行するとき、機器は、ビデオコード化規格に適合するビットストリームをHRDとDUTの両方に提供することができる。HRDは、ビットストリーム適合性検査に関して上述された方式でビットストリームを処理することができる。DUTによって出力される復号ピクチャの順序が、HRDによって出力される復号ピクチャの順序と一致する場合、機器は、DUTがビデオコード化規格に適合すると決定することができる。その上、DUTが復号ピクチャを出力するタイミングが、HRDが復号ピクチャを出力するタイミングと一致する場合、機器は、DUTがビデオコード化規格に適合すると決定することができる。
[0084]H.264/AVC及びHEVCのHRDモデルでは、復号又はCPB削除はアクセス単位ベースであり得る。即ち、HRDは、一度に完全なアクセス単位を復号し、CPBから完全なアクセス単位を削除すると見なされる。更に、H.264/AVC及びHEVCのHRDモデルでは、ピクチャの復号は瞬時であると見なされる。ビデオエンコーダ20は、ピクチャタイミングSEIメッセージ内で、アクセス単位の復号を開始する復号時間を信号伝達することができる。実際の用途では、適合するビデオデコーダがアクセス単位の復号を開始するために信号伝達された復号時間に厳密に従う場合、特定の復号ピクチャを出力する最早可能時間は、その特定のピクチャの復号時間プラスその特定のピクチャを復号するために必要な時間に等しい。しかしながら、現状では、ピクチャを復号するために必要な時間はゼロに等しい可能性はない。
[0085]HRDパラメータは、HRDの様々な態様を制御することができる。言い換えれば、HRDはHRDパラメータに依存する場合がある。HRDパラメータには、初期CPB削除遅延、CPBサイズ、ビットレート、初期DPB出力遅延、及びDPBサイズが含まれ得る。ビデオエンコーダ20は、ビデオパラメータセット(VPS)及び/又はシーケンスパラメータセット(SPS)において指定されたhrd_parameters()シンタックス構造内で、これらのHRDパラメータを信号伝達することができる。個々のVPS及び/又はSPSのhrd_parameters()シンタックス構造は、HRDパラメータの様々なセットについて複数のhrd_parameters()シンタックス構造を含む場合がある。幾つかの例では、ビデオエンコーダ20は、バッファリング期間SEIメッセージ又はピクチャタイミングSEIメッセージにおいて、HRDパラメータを信号伝達することができる。
[0086]上記で説明されたように、ビットストリームの動作点は、レイヤ識別子のセット(即ち、nuh_reserved_zero_6bits値のセット)及び時間識別子と関連付けられる。動作点は、動作点と関連付けられる各NAL単位を含む場合がある。動作点は、元のビットストリームとは異なるフレームレート及び/又はビットレートを有する場合がある。これは、動作点が元のビットストリームの幾つかのピクチャ及び/又は幾つかのデータを含まない場合があるからである。従って、ビデオデコーダ30が元のビットストリームを処理するときに特定のレートでCPB及び/又はDPBからデータを削除するべきであった場合、及び、ビデオデコーダ30が動作点を処理するときに同じレートでCPB及び/又はDPBからデータを削除するべきであった場合、ビデオデコーダ30がCPB及び/又はDPBから削除するデータが、多すぎるか、又は少なすぎる可能性がある。それに応じて、ビデオエンコーダ20は、様々な動作点についてHRDパラメータの様々なセットを信号伝達することができる。例えば、ビデオエンコーダ20は、様々な動作点についてのHRDパラメータを含む複数のhrd_parameters()シンタックス構造をVPS内に含めることができる。
[0087](WD10とも呼ばれる)HEVCワーキングドラフト10では、HRDパラメータのセットは、場合によっては、全ての時間サブレイヤに共通の情報のセットを含む。言い換えれば、HRDパラメータのセットは、場合によっては、任意の時間サブレイヤを含む動作点に適用可能な共通シンタックス要素のセットを含む。時間サブレイヤは、TemporalIdの特定の値を有するVCL NAL単位、及び関連する非VCL NAL単位からなる、時間スケーラブルなビットストリームの時間スケーラブルなレイヤであり得る。共通情報のセットに加えて、HRDパラメータのセットは、個々の時間サブレイヤ表現に固有のシンタックス要素のセットを含む場合がある。例えば、hrd_parameters()シンタックス構造は、場合によっては、全てのサブレイヤ表現に共通の情報のセットを含み、常にサブレイヤ固有の情報を含む。共通情報のセットは、HRDパラメータの複数のセットに共通なので、HRDパラメータの複数のセット内で、共通情報のセットを信号伝達する必要はない場合がある。むしろ、HEVCワーキングドラフト10では、HRDパラメータのセットがVPS内のHRDパラメータの第1のセットであるとき、共通情報はHRDパラメータのセット内に存在する場合があるか、又はHRDパラメータのセットが第1の動作点インデックスと関連付けられているとき、共通情報はHRDパラメータのセット内に存在する場合がある。例えば、HEVCワーキングドラフト10(WD10)は、hrd_parameters()シンタックス構造がVPS内の最初のhrd_parameters()シンタックス構造であるとき、又はhrd_parameters()シンタックス構造が第1の動作点インデックスと関連付けられているときのいずれかで、共通情報の存在をサポートする。
[0088]下記の表1は、HEVCにおけるhrd_parameters()シンタックス構造についての例示的シンタックス構造である。
[0089]上記の表1の例、及び本開示の他のシンタックス表では、タイプ記述子ue(v)を有するシンタックス要素は、左ビットが先頭の0次指数ゴロム(Exp−Golomb)コード化を使用して符号化される可変長の符号なし整数であり得る。表1及び以下の表の例では、形式u(n)の記述子を有するシンタックス要素は、長さnの符号なし値であり、ここで、nは非負整数である。
[0090]表1の例示的なシンタックスでは、1に等しいシンタックス要素nal_hrd_parameters_present_flagは、(タイプIIのビットストリーム適合性に関係する)NAL HRDパラメータがhrd_parameters()シンタックス構造内に存在することを指定する。0に等しいnal_hrd_parameters_present_flagは、NAL HRDパラメータがhrd_parameters()シンタックス構造内に存在しないことを指定する。従って、NAL HRDパラメータは、タイプIIのビットストリーム適合性に関係するHRDパラメータである。1に等しいシンタックス要素nal_hrd_parameters_present_flagは、(全てのビットストリーム適合性に関係する)VCL HRDパラメータがhrd_parameters()シンタックス構造内に存在することを指定する。0に等しいvcl_hrd_parameters_present_flagは、VCL HRDパラメータがhrd_parameters()シンタックス構造内に存在しないことを指定する。従って、VCL HRDパラメータは、全てのビットストリーム適合性に関係するHRDパラメータである。
[0091]表1の例示的なシンタックスでは、「if(commonInfPresentFlag){…}」ブロック内のシンタックス要素は、HRDパラメータセットの共通情報である。言い換えれば、HRDパラメータのセットの共通情報は、シンタックス要素timing_info_present_flag、num_units_in_tick、time_scale、nal_hrd_parameters_present_flag、vcl_hrd_parameters_present_flag、sub_pic_cpb_params_present_flag、tick_divisor_minus2、du_cpb_removal_delay_length_minus1、bit_rate_scale、cpb_size_scale、initial_cpb_removal_delay_length_minus1、cpb_removal_delay_length_minus1、及びdpb_output_delay_length_minus1を含む場合がある。
[0092]更に、表1の例では、シンタックス要素fixed_pic_rate_flag[i]、pic_duration_in_tc_minus1[i]、low_delay_hrd_flag[i]、及びcpb_cnt_minus1[i]は、サブレイヤ固有HRDパラメータのセットであり得る。言い換えれば、hrd_parameters()シンタックス構造のこれらのシンタックス要素は、固有のサブレイヤ表現を含む動作点のみに適用可能であり得る。従って、hrd_parameters()シンタックス構造のHRDパラメータは、場合によっては含まれる共通情報に加えて、ビットストリームの特定のサブレイヤ表現に固有のサブレイヤ固有HRDパラメータのセットを含む場合がある。
[0093]fixed_pic_rate_flag[i]シンタックス要素は、HighestTidがiに等しいとき、出力順序で連続する任意の2つのピクチャのHRD出力時間の間の時間距離が特定の形で制約されることを示すことができる。HighestTidは、(例えば、動作点の)最も高い時間サブレイヤを識別する変数であり得る。pic_duration_in_tc_minus1[i]シンタックス要素は、HighestTidがiに等しいとき、コード化ビデオシーケンスにおいて出力順序で連続する任意のピクチャのHRD出力時間の間の時間距離をクロックティックで指定することができる。low_delay_hrd_flag[i]シンタックス要素は、HighestTidがiに等しいとき、HEVCワーキングドラフト10の付録Cで規定されたように、HRD動作モードを指定することができる。cpb_cnt_minus1[i]シンタックス要素は、HighestTidがiに等しいとき、コード化ビデオシーケンスのビットストリーム内の代替的なCPB仕様の数を指定することができ、ここにおいて、1つの代替的なCPB仕様は、CPBパラメータの特定のセットを伴う1つの特定のCPB動作を指す。
[0094]ビデオエンコーダ20は、ピクチャのサンプル値の正確な復号に必要ではないメタデータをビットストリーム内に含めるために、SEIメッセージを使用することができる。しかしながら、ビデオデコーダ30又は他の機器は、SEIメッセージ内に含まれるメタデータを様々な他の目的で使用することができる。例えば、ビデオデコーダ30又は別の機器は、ピクチャ出力タイミング、ピクチャ表示、損失検出、及び誤り秘匿に、SEIメッセージ内のメタデータを使用することができる。
[0095]ビデオエンコーダ20は、アクセス単位内に1つ又は複数のSEI NAL単位を含めることができる。言い換えれば、任意の数のSEI NAL単位がアクセス単位と関連付けられる場合がある。更に、各SEI NAL単位は、1つ又は複数のSEIメッセージを含んでいる場合がある。HEVC規格は、様々なタイプのSEIメッセージについてシンタックスとセマンティクスとを記述する。しかしながら、SEIメッセージが規範となる復号プロセスに影響を及ぼさないので、HEVC規格はSEIメッセージの扱いを記述しない。HEVC規格内にSEIメッセージを有する1つの理由は、補足データがHEVCを使用する様々なシステムにおいて同一に解釈されることを可能にするためである。HEVCを使用する仕様及びシステムは、ビデオエンコーダに、幾つかのSEIメッセージを生成するように要求する場合があるか、又は特定のタイプの受信SEIメッセージの固有の扱いを定義する場合がある。下記の表2は、HEVCにおいて規定されるSEIメッセージを列挙し、それらの目的を簡潔に記述している。
[0096]HEVCでは、各NAL単位は、NAL単位のNAL単位タイプを示すシンタックス要素(例えば、nal_unit_type)を含む。更に、HEVCでは、ビデオデコーダ30は、NAL単位のNAL単位タイプに基づいて、複数のピクチャタイプのうちの1つと関連付けられているNAL単位を識別することができる。これらのピクチャタイプには、瞬時復号リフレッシュ(IDR)ピクチャ、クリーンランダムアクセス(CRA)ピクチャ、時間サブレイヤアクセス(TSA)ピクチャ、リンク切れアクセス(BLA)ピクチャ、及びIDRピクチャ、CRAピクチャ、又はTSAピクチャではないコード化ピクチャが含まれ得る。
[0097]HEVCにおけるIDRピクチャの定義は、H.264/AVCにおけるIDRピクチャの定義と同様であり得る。同様に、HEVCにおけるコード化ピクチャの定義は、H.264/AVCにおけるコード化ピクチャの定義と同様であり得る。例えば、IDRピクチャ及びコード化ピクチャは、H.264/AVC仕様から継承されたピクチャタイプであり得る。IDRピクチャは、全ての参照ピクチャを「参照に使用されない」とマークすることを復号プロセスに行わせることができる。「参照に使用されない」とマークされた参照ピクチャは、参照ピクチャを記憶する復号ピクチャバッファ(DPB)から削除され得るので、IDRピクチャはDPBをクリーンにすることができる。復号順序でIDRピクチャに後続する全てのコード化ピクチャは、復号順序でIDRピクチャに先行する任意のピクチャからのインター予測なしに復号され得る。復号順序で各コード化ビデオシーケンスの最初のピクチャは、IDRピクチャ又はBLAピクチャであるか、若しくはビットストリームの最初のピクチャでもあるCRAピクチャである。アクセス単位のコード化ピクチャがIDRピクチャであるとき、アクセス単位は、IDRアクセス単位と呼ばれる場合がある。幾つかの例では、コード化ビデオシーケンスは、復号順序で、任意の後続IDRアクセス単位までだがそれを含まない全ての後続アクセス単位を含む、1に等しいNoRaslOutputFlagを有する、IRAPアクセス単位ではないゼロ個以上のアクセス単位が後続するIDRアクセス単位からなる、アクセス単位のシーケンスである。
[0098]CRA及びTSAのピクチャタイプは、HEVCにおいて新しく、H.264/AVC仕様において利用可能ではない。CRAピクチャタイプは、ビデオシーケンスの中央において任意のランダムアクセスポイント(RAP)から始まる復号を容易にする。ビデオシーケンスにCRAピクチャを挿入することは、同じビデオシーケンスにIDRピクチャを挿入することよりも効率的であり得る。ランダムアクセスは、ストリームの開始以外のポイントでビットストリームに対して復号プロセスを開始する行為である。HEVCでは、CRAピクチャから始まるビットストリームは適合ビットストリームであり得る。即ち、CRAピクチャで始まるビットストリームの部分は、HEVC仕様に適合することができる。TSAピクチャは、有効な時間サブレイヤ切替えポイントを示すために使用され得る。
[0099]放送及びストリーミングなどのビデオ用途では、ユーザは、様々なチャネルの間を切り替え、ビデオの特定の部分にジャンプする場合がある。理想的には、この方式のチャネル切替え及びジャンピングは、最小量の遅延で実行されるべきである。チャネル切替え及びジャンピングは、ビデオビットストリーム内に一定の間隔でランダムアクセスピクチャを含めることによって可能にされ得る。IDRピクチャは、ランダムアクセスピクチャとしてH.264/AVCとHEVCの両方において使用され得る。言い換えれば、H.264/AVCとHEVCの両方において規定されたIDRピクチャは、ランダムアクセスに使用され得る。しかしながら、IDRピクチャは、コード化ビデオシーケンスを開始し、常にDPBをクリーンにすることができるので、復号順序でIDRピクチャに後続するピクチャは、復号順序でIDRピクチャより前に復号されたピクチャを参照に使用することができない。その結果、ランダムアクセスのためにIDRピクチャに依存するビットストリームは、かなり低いコード化効率(例えば、6%未満のコード化効率)を有する場合がある。コード化効率を改善するために、HEVCにおけるCRAピクチャにより、復号順序でCRAピクチャに後続するが、出力順序でCRAピクチャに先行するピクチャが、CRAピクチャより前に復号されたピクチャを参照に使用することが可能になる場合がある。
[0100]図2は、CRAピクチャとリーディングピクチャとを示す概念図である。即ち、CRAピクチャを中心とする典型的な予測構造が、図2の例において示される。図2の例では、各平行四辺形がピクチャを表す。それぞれの平行四辺形の中の数は、それぞれの平行四辺形によって表されたそれぞれのピクチャの例示的なPOC値を示す。CRAピクチャ(即ち、POC値24を有する図2の例の中のピクチャ)は、復号順序でCRAピクチャに後続するが、出力順序でCRAピクチャに先行する他のピクチャ(即ち、POC値17〜23を有するピクチャ)を含んでいるピクチャグループ(GOP)に属する。これらのピクチャ(即ち、復号順序でCRAピクチャに後続するが、出力順序でCRAピクチャに先行するピクチャ)は、CRAピクチャの「リーディングピクチャ」と呼ばれる場合がある。復号順序で現在CRAピクチャより前に現れるIDRピクチャ又はCRAピクチャから復号が始まる場合、ビデオデコーダ30は、現在CRAピクチャのリーディングピクチャを正確に復号することができる。しかしながら、現在CRAピクチャからのランダムアクセスが発生するとき、ビデオデコーダ30は、現在CRAピクチャのリーディングピクチャを正確に復号することができない場合ある。従って、現在CRAピクチャから復号するランダムアクセスの間、ビデオデコーダ30は、現在CRAピクチャのリーディングピクチャを廃棄する場合がある。
[0101]現在ピクチャを復号するとき、ビデオデコーダ30が参照ピクチャの不正確に復号された部分を使用すると、誤り伝搬が発生する可能性がある。復号がどこで始まるかに応じて利用可能でない場合がある参照ピクチャからの誤り伝搬を防止するために、CRAピクチャに後続するGOP内のいかなるピクチャも、(CRAピクチャのリーディングピクチャを含む)復号順序又は出力順序のいずれかでCRAピクチャに先行する任意のピクチャを、参照として使用しない場合がある。従って、図2の例では、復号順序と出力順序の両方でCRAピクチャに後続する、次のGOP内の全てのピクチャは、復号順序又は出力順序のいずれかでCRAピクチャに先行する任意のピクチャを参照として使用しない。
[0102]回復点SEIメッセージは、HEVCにおけるCRAピクチャと同様の方式でランダムアクセスを提供するために、H.264/AVCにおいて使用され得る。言い換えれば、H.264/AVCは、回復点SEIメッセージを用いて同様のランダムアクセス機能をサポートする。H.264/AVCデコーダの実装形態は、回復ポイントSEIメッセージの機能をサポートする場合も、又はしない場合もある。HEVCにおいて、CRAピクチャで始まるビットストリームは、適合ビットストリームであると考えられる。ビットストリームがCRAピクチャで始まるとき、CRAピクチャのリーディングピクチャは、利用不可能な参照ピクチャを指す場合があり、従って正確に復号され得ない。しかしながら、HEVCは、開始CRAピクチャのリーディングピクチャが出力されないことを規定しており、従って「クリーンランダムアクセス」という名称である。ビットストリーム適合要件を確立するために、HEVCは、非出力のリーディングピクチャの復号に利用不可能な参照ピクチャを生成するように復号処理を規定することができる。しかしながら、適合デコーダの実装形態は、復号処理がビットストリームの開始から実行されるときと比較して、デコーダの実装形態が同一の出力を生成できる限り、その復号処理に従う必要はない。HEVCでは、適合ビットストリームは、IDRピクチャをまったく含まない場合がある。
[0103]参照によりその内容全体が本明細書に組み込まれる、Wangらの「AHG9:On cross−layer alignments in HEVC 3DV and scalable extensions」、ITU−T SG16及びISO/IEC JTC1/SC29/WG11のビデオコード化共同研究部会(JCT−VC)、第13回会合、仁川、韓国、2013年4月、文書番号JCTVC−M0266_v2(以下、「JCTVC−M0266_v2」)は、クロスレイヤランダムアクセススキップ(CL−RAS)ピクチャ向けの復号プロセスの定義のための設計を提供した。少なくとも2014年5月30日時点で、JCTVC−M0266_v2は、http://phenix.int−evry.fr/jct/doc_end_user/documents/13_Incheon/wg11/JCTVC−M0266_v2.zipから入手可能である。
[0104]JCTVC−M0266_v2内の設計は、0に等しいnuh_layer_idをもつIRAPピクチャを有する全てのAUを含むように、IRAPアクセス単位(AU)を定義する。ピクチャのnuh_layer_id値は、ピクチャが属するレイヤを示すことができる。JCTVC−M0266_v2内の設計はまた、そのようなIRAPアクセス単位から始まるビットストリームの復号のプロセスを詳述するために使用される、CL−RASピクチャとリンク切れIDR(BL−IDR)ピクチャとを定義する。関連する定義のうちの幾つかが下記に複写されている。下記の定義のうちの下線部分は、HEVCワーキングドラフト10内の対応する定義とは異なる部分を示す。
アクセス単位:規定された分類規則に従って互いに関連付けられ、復号順序で連続し、同じ出力時間と関連付けられた全てのコード化ピクチャを含んでいる、NAL単位のセット。
注1−コード化ピクチャのVCL NAL単位を含んでいることに加えて、アクセス単位は、非VCL NAL単位を含んでいる場合もある。
コード化ビデオシーケンス(CVS):復号順序で、初期IRAPアクセス単位である任意の後続アクセス単位までだがそれを含まない全ての後続アクセス単位を含む、初期IRAPアクセス単位ではないゼロ個以上のアクセス単位が後続する初期IRAPアクセス単位からなる、アクセス単位のシーケンス。
クロスレイヤランダムアクセススキップ(CL−RAS)ピクチャ:各VCL NAL単位がそれ用にCL_RAS_R又はCL_RAS_Nに等しいnal_unit_typeを有するコード化ピクチャ。
注4−NoClrasOutputFlagが1に等しいとき、CL−RASピクチャがビットストリーム内に存在しないピクチャへの参照を含んでいる場合があるので、CL−RASピクチャは出力されず、正確に復号可能ではない場合がある。CL−RASピクチャは、非CL−RASピクチャの復号プロセスのための参照ピクチャとして使用されない。
初期イントラランダムアクセスポイント(IRAP)アクセス単位:0に等しいnuh_layer_idを有するコード化ピクチャが、その中で1に等しいNoRaslOutputFlagを有するIRAPアクセス単位。
瞬時復号リフレッシュ(IDR)ピクチャ:各VCL NAL単位がそれ用にIDR_W_RADL、IDR_N_LP、BL_IDR_W_RADL、又はBL_IDR_N_LPに等しいnal_unit_typeを有するIRAPピクチャ。
イントラランダムアクセスポイント(IRAP)アクセス単位:その中で0に等しいnuh_layer_idを有するコード化ピクチャがIRAPピクチャであるアクセス単位。
[0105]HEVCワーキングドラフト10では、ランダムアクセススキップリーディング(RASL)ピクチャは、各VCL NAL単位がそれ用にRASL_R又はRASL_Nに等しいnal_unit_typeを有するコード化ピクチャである。全てのRASLピクチャは、関連するBLAピクチャ又はCRAピクチャのリーディングピクチャである。関連するIRAPピクチャが1に等しいNoRaslOutputFlagを有するとき、RASLピクチャがビットストリーム内に存在しないピクチャへの参照を含んでいる場合があるので、RASLピクチャは出力されず、正確に復号可能ではない場合がある。RASLピクチャは、非RASLピクチャの復号プロセスのための参照ピクチャとして使用されない。存在するとき、全てのRASLピクチャは、同じ関連するIRAPピクチャの全ての末尾のピクチャに復号順序で先行する。
[0106]即ち、HEVCワーキングドラフト10では、変数NoRaslOutputFlagはIRAPピクチャごとに定義される。NoRaslOutputFlagが1に等しいとき、IRAPピクチャは、新しいコード化ビデオシーケンスを開始し、関連するRASLピクチャは、存在するとき出力されない。JCTVC−M0266v2では、NoRaslOutputFlagの定義は次のように変更されている。
現在ピクチャがIRAPピクチャであるとき、以下のことが当てはまる:[NoRaslOutputFlagのこの定義はJCT3V−C1004v4.zipと同じであるが、0より大きいnuh_layer_idを有するIRAPピクチャにも適用可能であるように移されていることに留意されたい]。
−特定のnuh_layer_idを有する現在ピクチャがIDRピクチャ、BLAピクチャ、復号順序でビットストリーム内のその特定のnuh_layer_idを有する第1のピクチャ、又は復号順序でシーケンスNAL単位の最後に後続するその特定のnuh_layer_idを有する第1のピクチャである場合、変数NoRaslOutputFlagは1に等しいように設定される。
−そうではなく、本仕様において指定されていない何らかの外部手段が、変数HandleCraAsBlaFlagを現在ピクチャ用のある値に設定するために利用可能である場合、変数HandleCraAsBlaFlagは、外部手段によって与えられた値に等しいように設定され、変数NoRaslOutputFlagは、HandleCraAsBlaFlagに等しいように設定される。
−そうでない場合、変数HandleCraAsBlaFlagは0に等しいように設定され、変数NoRaslOutputFlagは0に等しいように設定される。
[0107]同様に、関連するCL−RASピクチャが存在するとき出力されるかどうかを復号プロセスに示すために、別の変数NoClrasOutputFlagが次のように定義され得る。
現在ピクチャを含んでいるアクセス単位が初期IRAPアクセス単位であるとき、以下のことが当てはまる:
−現在ピクチャが、BLAピクチャ、1に等しいNoRaslOutputFlagを有するCRAピクチャ、又はBL−IDRピクチャである場合、NoClrasOutputFlagは1に等しい。
−そうでない場合、本仕様において指定されていない何らかの外部手段が、変数NoClrasOutputFlagをある値に等しく設定するために利用可能である場合、変数NoClrasOutputFlagは、外部手段によって与えられた値に等しいように設定される。
−そうでない場合、NoClrasOutputFlagは0に等しい。
[0108]初期IRAPアクセス単位(AU)のCL−RASピクチャを復号するとき、及びNoClRasOutputFlagが1に等しいとき、(HEVC WD10における利用不可能な参照ピクチャの生成と同様に)利用不可能な参照ピクチャが生成されるように、復号プロセスが定義され得る。幾つかの例では、ビットストリームは、コード化CL−RASピクチャを含まない。しかしながら、幾つかのHRD動作は、コード化CL−RASピクチャを含むビットストリームに依存する場合がある。例えば、HEVCワーキングドラフト10の付録Cで規定されたHRD動作では、RASLピクチャを含んでいるアクセス単位は、CPBの到達時間及び削除時間の導出において考慮に入れられる必要がある場合がある。従って、ビデオデコーダは、そのような利用不可能な参照ピクチャを生成するプロセスを実行することができる。ビデオコーダは、生成された利用不可能な参照ピクチャ内の各画素の各サンプル値を最大値に設定することができる。例えば、HEVCワーキングドラフト10の8.3.3.2節に記述されたように:
このプロセスが起動されたとき、利用不可能なピクチャが次のように生成される:
−ピクチャ用のサンプルアレイSL内の各要素の値が1<<(BitDepthY−1)に等しいように設定される。
−ピクチャ用のサンプルアレイSCb及びSCr内の各要素の値が1<<(BitDepthC−1)に等しいように設定される。
−予測モードCuPredMode[x][y]が、x=0〜pic_width_in_luma_samples−1、y=0〜pic_height_in_luma_samples−1について、MODE_INTRAに等しいように設定される。
[0109]2013年4月16日に出願された米国仮特許出願第61/812,225号は、その内容全体が参照によって組み込まれ、本開示の1つ又は複数の技法に関する。HEVC拡張に基づく2つ以上のレイヤを有するビットストリームでは、ランダムアクセスポイントは、アクセス単位内の全てのピクチャがIRAPピクチャであるアクセス単位として定義される。これはランダムアクセス能力に対して制限を課し、0に等しいnuh_layer_idを有するピクチャがIRAPピクチャであるアクセス単位において、ランダムアクセス能力を提供することも望ましい場合がある。米国仮特許出願第61/812,225号は、0に等しいnuh_layer_idを有するIRAPピクチャを含んでいるIRAPアクセス単位と関連付けられたCL−RASピクチャの概念を定義した。ランダムアクセス能力をサポートするために、0に等しいnuh_layer_idを有するピクチャがIRAPピクチャであり、AU内の全てのピクチャがIRAPピクチャであるとは限らない場合のそのようなアクセス単位から復号が始まるときのデコーダの挙動を定義することが必要なはずである。米国仮特許出願第61/812,225号及びJCTVC−M0266_v2は、これに関係するプロセスのうちのいくかを提供する。
[0110]しかしながら、それらの提供された米国仮特許出願第61/812,225号及びJCTVC−M0266_v2を含む既存の設計は、1つ又は複数の問題と関連する。例えば、ストリーミングサーバ及び媒体認識ネットワーク要素(MANE)は、CL−RASピクチャが正確に復号可能ではないとき(即ち、初期IRAP AUについてNoClrasOutputFlagが1に等しいとき)、受信機にそのようなCL−RASピクチャを送らないことを決定する場合がある。ビットストリームがそのようなCL−RASピクチャを含んでいるか又は含んでいない両方のケースを適合デコーダが扱うことを可能にするために、両方のケースのビットストリームは、適合ビットストリームとして定義される必要があり、その結果HRDパラメータの2つのセットが必要とされる。そうでない場合、ただ1つのケースが適合ビットストリームとして定義され得るし、その結果、ビットストリームが非適合ビットストリームである他のケースを扱うために、適合デコーダに対する増強が必要とされる。
[0111]米国仮特許出願第61/812,225号及びJCTVC−M0266_v2と関連する欠点の別の例では、初期IRAP AUのCL−RASピクチャを復号するとき、及びNoClRasOutputFlagが1に等しいときの利用不可能な参照ピクチャの生成のために、RPSのサブセットRefPicSetStFoll及びRefPicSetLtFollが生成される必要があるようにするだけでなく、RPSのサブセットRefPicSetStCurrBefore、RefPicSetStCurrAfter、及びRefPicSetLtCurrも生成される必要があるようにする。そのようなプロセスがRefPicSetStCurrBefore、RefPicSetStCurrAfter、及びRefPicSetLtCurrのサブセットについて定義されていない場合、インター予測に使用されるそれらのサブセット内に参照ピクチャが(元の参照ピクチャも生成された参照ピクチャも)存在しないので、CL−RASピクチャの復号プロセスは実行され得ない。
[0112]本開示は、初期IRAP AUと関連付けられたCL−RASピクチャが存在するかどうかを指定するようにNoClrasPicPresentFlagを定義する。従って、機器(例えば、ビデオデコーダ又は他の機器)は、値(例えば、NoClRasPicPresentFlag)に基づいて、IRAPアクセス単位の(即ち、IRAPアクセス単位と関連付けられた)全てのCL−RASピクチャがビデオデータビットストリーム内に存在するかどうかを決定することができる。NoClrasPicPresentFlagは、例えば、外部手段によって、又はSEIメッセージ内で設定され得る変数である。従って、幾つかの例では、機器は、ビデオデータビットストリームのSEIメッセージ内のデータに少なくとも部分的に基づいて、値(例えば、NoClRasPicPresentFlag)を設定することができる。更に、幾つかの例では、値(例えば、NoClRasPicPresentFlag)は、ビデオデータ用の復号プロセスの外部の機構(即ち、外部手段)によって設定される場合がある。本開示の他の場所で記載されるように、機器は、値(例えば、NoClRasPicPresentFlag)に少なくとも部分的に基づいて、CPB動作を実行することができる。
[0113]幾つかの例では、ビデオエンコーダ20は、コード化ピクチャ及び関連データの表現を形成するビットのシーケンスを含むビットストリームを生成することができる。ビットストリームは、イントラランダムアクセスポイント(IRAP)アクセス単位のクロスレイヤランダムアクセススキップ(CL−RAS)ピクチャがビットストリーム内に存在するかどうかを指定する値(例えば、NoClRasPicPresentFlag)を、ビットストリームを受信する機器がそこから導出することができる、シンタックス要素を含む場合がある。ビデオエンコーダ20は、ビットストリームを出力することができる。幾つかの例では、ビデオエンコーダ20(又はMANEなどの別の機器)は、コード化ピクチャ及び関連データの表現を形成するビットのシーケンスを含むビットストリーム内に、IRAPアクセス単位のCL−RASピクチャが存在するかどうかを指定する変数を設定するSEIメッセージを生成することができる。幾つかの例では、機器は、ビットストリーム内にSEIメッセージを含めることができる。
[0114]更に、本開示の幾つかの技法は、0に等しいnuh_layer_idと1に等しいNoRaslOutputFlagとをもつIRAPピクチャを有する初期IRAPアクセス単位と関連付けられたCL−RASピクチャの場合のビットストリームの適合性を定義する。CL−RASピクチャが適合ビットストリーム内に存在しないときの、CPB及びDPBの遅延オフセットに対応するバッファリング期間SEIメッセージ内のシンタックス要素が信号伝達される。更に、本開示の幾つかの技法は、CL−RASピクチャの削除を説明する代替のCPB初期削除の遅延及びオフセットに対応するバッファリング期間SEIメッセージ内のシンタックス要素を定義する。加えて、本開示の幾つかの技法は、CL−RASピクチャが適合ビットストリーム内に存在しないとき、新しく定義されたシンタックス要素を使用して、CPB及びDPBの挙動を定義する。
[0115]加えて、本開示の幾つかの技法は、初期IRAP AU内のCL−RASピクチャを復号するとき、及びNoClRasOutputFlagが1に等しいときの、利用不可能な参照ピクチャのための完全な生成プロセスを定義する。例えば、CL−RASピクチャが出力されないとき(例えば、NoClRasOutputFlagが1に等しいとき)、及び現在ピクチャが初期IRAPアクセス単位内のCL−RASピクチャであるとき、ビデオデコーダ(例えば、ビデオデコーダ30)は、CL−RASピクチャ用の利用不可能な参照ピクチャを生成することができる。幾つかの例では、IRAPアクセス単位は、0に等しいnuh_layer_idを有するピクチャがIRAPピクチャであるアクセス単位である。初期IRAPアクセス単位は、0に等しいnuh_layer_idをもつIRAPピクチャが1に等しいNoRaslOutputFlagを有するIRAPアクセス単位であり得る。
[0116]更に、本開示の幾つかの技法は、IRAPアクセス単位用の代替のビットレート及びCPBサイズのパラメータを信号伝達するために使用される、新しいクロスレイヤHRDパラメータSEIメッセージを定義する。これらのパラメータは、対応するIRAPアクセス単位が、存在しない関連するCL−RASピクチャを有する初期IRAPアクセス単位であるときに使用され得る。
[0117]図3は、本開示の技法を実装することができる例示的なビデオエンコーダ20を示すブロック図である。図3は、説明のために提供されるものであり、本開示で広く例示され記載される技法を限定するものと見なされるべきではない。説明の目的で、本開示は、HEVCコード化のコンテキストにおいてビデオエンコーダ20を記載する。しかしながら、本開示の技法は、他のコード化規格又はコード化方法に適用可能であり得る。
[0118]図3の例では、ビデオエンコーダ20は、予測処理ユニット100と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換処理ユニット110と、復元ユニット112と、フィルタユニット114と、復号ピクチャバッファ116と、エントロピー符号化ユニット118とを含む。予測処理ユニット100は、インター予測処理ユニット120と、イントラ予測処理ユニット126とを含む。インター予測処理ユニット120は、動き推定ユニット122と、動き補償ユニット124とを含む。他の例では、ビデオエンコーダ20は、より多いか、より少ないか、又は異なる機能的な構成要素を含む場合がある。
[0119]ビデオエンコーダ20は、ビデオデータを受信することができる。ビデオエンコーダ20は、ビデオデータのピクチャのスライス内の各CTUを符号化することができる。CTUの各々は、ピクチャの等しいサイズのルーマコード化ツリーブロック(CTB)と、対応するCTBとに関連付けられる場合がある。CTUを符号化することの一部として、予測処理ユニット100は、CTUのCTBを徐々により小さいブロックに分割するために、4分木区分化を実行することができる。より小さいブロックはCUのコード化ブロックであり得る。例えば、予測処理ユニット100は、CTUと関連付けられたCTBを4つの等しいサイズのサブブロックに区分化し、サブブロックの1つ又は複数を4つの等しいサイズのサブサブブロックに区分化することができ、以下同様である。
[0120]ビデオエンコーダ20は、CUの符号化表現(即ち、コード化CU)を生成するために、CTUのCUを符号化することができる。CUを符号化することの一部として、予測処理ユニット100は、CUの1つ又は複数のPUの間でCUと関連付けられたコード化ブロックを区分化することができる。従って、各PUは、ルーマ予測ブロック及び対応するクロマ予測ブロックと関連付けられ得る。ビデオエンコーダ20及びビデオデコーダ30は、様々なサイズを有するPUをサポートすることができる。CUのサイズはCUのルーマコード化ブロックのサイズを指すことができ、PUのサイズはPUのルーマ予測ブロックのサイズを指すことができる。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ20及びビデオデコーダ30は、イントラ予測の場合は2N×2N又はN×NのPUサイズをサポートすることができ、インター予測の場合は2N×2N、2N×N、N×2N、N×N、又は同様の対称のPUサイズをサポートすることができる。ビデオエンコーダ20及びビデオデコーダ30はまた、インター予測の場合、2N×nU、2N×nD、nL×2N、及びnR×2NのPUサイズに対する非対称区分化をサポートすることができる。
[0121]インター予測処理ユニット120は、CUの各PUに対してインター予測を実行することによって、PU用の予測データを生成することができる。PU用の予測データは、PUの予測ブロックと、PUについての動き情報とを含む場合がある。インター予測処理ユニット120は、PUがIスライス内にあるか、Pスライス内にあるか、又はBスライス内にあるかに応じて、CUのPUに対して異なる演算を実行することができる。Iスライスでは、全てのPUがイントラ予測される。従って、PUがIスライス内にある場合、インター予測処理ユニット120はPUに対してインター予測を実行しない。従って、Iモードで符号化されたブロックの場合、予測ブロックは、同じフレーム内の以前に符号化された隣接ブロックからの空間予測を使用して形成される。
[0122]PUがPスライス内にある場合、動き推定ユニット122は、PU用の参照領域について、参照ピクチャのリスト(例えば、「RefPicList0」)内の参照ピクチャを探索することができる。PU用の参照領域は、PUのサンプルブロックに最も密接に対応するサンプルブロックを含んでいる参照ピクチャ内の領域であり得る。動き推定ユニット122は、PU用の参照領域を含んでいる参照ピクチャのRefPicList0内の位置を示す参照インデックスを生成することができる。加えて、動き推定ユニット122は、PUのコード化ブロックと参照領域と関連付けられた参照位置との間の空間変位を示す動きベクトルを生成することができる。例えば、動きベクトルは、現在ピクチャにおける座標から参照ピクチャにおける座標までのオフセットを与える2次元ベクトルであり得る。動き推定ユニット122は、PUの動き情報として、参照インデックスと動きベクトルとを出力することができる。動き補償ユニット124は、PUの動きベクトルによって示された参照位置における実際のサンプル又は補間サンプルに基づいて、PUの予測ブロックを生成することができる。
[0123]PUがBスライス内にある場合、動き推定ユニット122は、PUについての単予測又は双予測を実行することができる。PUについての単予測を実行するために、動き推定ユニット122は、PUの参照領域について、RefPicList0又は第2の参照ピクチャリスト(「RefPicList1」)の参照ピクチャを探索することができる。動き推定ユニット122は、PUの動き情報として、参照領域を含んでいる参照ピクチャのRefPicList0又はRefPicList1内の位置を示す参照インデックスと、PUの予測ブロックと参照領域と関連付けられた参照位置との間の空間変位を示す動きベクトルと、参照ピクチャがRefPicList0内にあるか又はRefPicList1内にあるかを示す1つ又は複数の予測方向インジケータとを出力することができる。動き補償ユニット124は、PUの動きベクトルによって示される参照領域における実際のサンプル又は補間サンプルに少なくとも部分的に基づいて、PUの予測ブロックを生成することができる。
[0124]PUについての双方向インター予測を実行するために、動き推定ユニット122は、PU用の参照領域について、RefPicList0内の参照ピクチャを探索することができ、PU用の別の参照領域について、RefPicList1内の参照ピクチャを探索することもできる。動き推定ユニット122は、参照領域を含んでいる参照ピクチャのRefPicList0及びRefPicList1内の位置を示す参照インデックスを生成することができる。加えて、動き推定ユニット122は、参照領域と関連付けられた参照位置とPUの予測ブロックとの間の空間変位を示す動きベクトルを生成することができる。PUの動き情報は、PUの参照インデックスと動きベクトルとを含む場合がある。動き補償ユニット124は、PUの動きベクトルによって示される参照領域における実際のサンプル又は補間サンプルに少なくとも部分的に基づいて、PUの予測ブロックを生成することができる。
[0125]イントラ予測処理ユニット126は、PUに対してイントラ予測を実行することによって、PU用の予測データを生成することができる。PU用の予測データは、PU用の予測ブロックと、様々なシンタックス要素とを含む場合がある。イントラ予測処理ユニット126は、Iスライス内、Pスライス内、及びBスライス内のPUに対してイントラ予測を実行することができる。
[0126]PUに対してイントラ予測を実行するために、イントラ予測処理ユニット126は、PU用の予測データの複数のセットを生成するために、複数のイントラ予測モードを使用することができる。隣接PUは、PU、CU、及びCTUについて左から右、上から下の符号化順序を仮定すると、PUの上、右上、左上、又は左にあり得る。イントラ予測処理ユニット126は、様々な数のイントラ予測モード、例えば33個の方向性イントラ予測モードを使用することができる。幾つかの例では、イントラ予測モードの数は、PUの予測ブロックのサイズに依存する場合がある。
[0127]予測処理ユニット100は、PUについてインター予測処理ユニット120によって生成された予測データ、又はPUについてイントラ予測処理ユニット126によって生成された予測データの中から、CUのPU用の予測データを選択することができる。幾つかの例では、予測処理ユニット100は、予測データのセットのレート/歪み測定基準に基づいて、CUのPU用の予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれる場合がある。
[0128]残差生成ユニット102は、CUのコード化ブロック(例えば、ルーマコード化ブロック、Cbコード化ブロック、及びCrコード化ブロック)、及びCUのPUの選択された予測ブロック(例えば、ルーマ予測ブロック、Cb予測ブロック、及びCr予測ブロック)に基づいて、CUの残差ブロック(例えば、ルーマ残差ブロック、Cb残差ブロック、及びCr残差ブロック)を生成することができる。例えば、残差生成ユニット102は、残差ブロック内の各サンプルが、CUのコード化ブロック内のサンプルとCUのPUの対応する選択された予測ブロック内の対応するサンプルとの間の差分に等しい値を有するように、CUの残差ブロックを生成することができる。
[0129]変換処理ユニット104は、CUの残差ブロックをCUのTUの(即ち、TUと関連付けられた)変換ブロックに区分化するために、4分木区分化を実行することができる。従って、TUは、ルーマ変換ブロックと、2つの対応するクロマ変換ブロックとを有する(即ち、それらと関連付けられる)場合がある。CUのTUのルーマ変換ブロック及びクロマ変換ブロックのサイズ及び位置は、CUのPUの予測ブロックのサイズ及び位置に基づく場合も、又は基づかない場合もある。「残差4分木」(RQT)として知られる4分木構造は、領域の各々と関連付けられる(例えば、それに対応する)ノードを含む場合がある。CUのTUは、RQTのリーフノードに対応する場合がある。
[0130]変換処理ユニット104は、TUの変換ブロックに1つ又は複数の変換を適用することによって、CUのTUごとに変換係数ブロックを生成することができる。変換処理ユニット104は、TUと関連付けられた変換ブロックに様々な変換を適用することができる。例えば、変換処理ユニット104は、離散コサイン変換(DCT)、方向性変換、又は概念的に同様の変換を変換ブロックに適用することができる。幾つかの例では、変換処理ユニット104は変換ブロックに変換を適用しない。そのような例では、変換ブロックは変換係数ブロックとして扱われる場合がある。
[0131]量子化ユニット106は、係数ブロック内の変換係数を量子化することができる。量子化プロセスは、変換係数の幾つか又は全てと関連付けられたビット深度を低減することができる。例えば、量子化中にnビット変換係数がmビット変換係数に切り捨てられる場合があり、ここで、nはmよりも大きい。量子化ユニット106は、CUと関連付けられた量子化パラメータ(QP)値に基づいて、CUのTUと関連付けられた係数ブロックを量子化することができる。ビデオエンコーダ20は、CUと関連付けられたQP値を調整することによって、CUと関連付けられた係数ブロックに適用される量子化の程度を調整することができる。量子化は情報の損失をもたらす場合があり、従って、量子化変換係数は、元の係数よりも低い精度を有する場合がある。
[0132]逆量子化ユニット108及び逆変換処理ユニット110は、係数ブロックから残差ブロックを復元するために、それぞれ、係数ブロックに逆量子化と逆変換とを適用することができる。復元ユニット112は、TUと関連付けられる復元された変換ブロックを生成するために、復元された残差ブロックを、予測処理ユニット100によって生成された1つ又は複数の予測ブロックからの対応するサンプルに加算することができる。このようにしてCUのTUごとに変換ブロックを復元することによって、ビデオエンコーダ20は、CUのコード化ブロックを復元することができる。
[0133]フィルタユニット114は、CUと関連付けられたコード化ブロック内のブロッキングアーティファクトを低減するために、1つ又は複数のデブロッキング動作を実行することができる。復号ピクチャバッファ116は、フィルタユニット114が、復元されたコード化ブロックに対して1つ又は複数のデブロッキング動作を実行した後、復元されたコード化ブロックを記憶することができる。インター予測処理ユニット120は、他のピクチャのPUに対してインター予測を実行するために、復元されたコード化ブロックを含んでいる参照ピクチャを使用することができる。加えて、イントラ予測処理ユニット126は、CUと同じピクチャ内の他のPUに対してイントラ予測を実行するために、復号ピクチャバッファ116内の復元されたコード化ブロックを使用することができる。
[0134]エントロピー符号化ユニット118は、ビデオエンコーダ20の他の機能的な構成要素からデータを受信することができる。例えば、エントロピー符号化ユニット118は、量子化ユニット106から係数ブロックを受信することができ、予測処理ユニット100からシンタックス要素を受信することができる。エントロピー符号化ユニット118は、エントロピー符号化データを生成するために、データに対して1つ又は複数のエントロピー符号化演算を実行することができる。例えば、エントロピー符号化ユニット118は、コンテキスト適応型可変長コード化(CAVLC)演算、CABAC演算、変数間(V2V)レングスコード化演算、シンタックスベースコンテキスト適応型バイナリ算術コード化(SBAC)演算、確率間隔区分化エントロピー(PIPE)コード化演算、指数ゴロム符号化演算、又は別のタイプのエントロピー符号化演算をデータに対して実行することができる。ビデオエンコーダ20は、エントロピー符号化ユニット118によって生成されたエントロピー符号化データを含むビットストリームを出力することができる。例えば、ビットストリームはCU用のRQTを表すデータを含む場合がある。
[0135]幾つかの例では、図3のビデオエンコーダ20によって生成されたビットストリームは、ビットストリームを受信する機器(例えば、ビデオデコーダ30)が、IRAPアクセス単位のCL−RASピクチャがビットストリーム内に存在するかどうかを指定する値をそこから導出することができる、1つ又は複数のシンタックス要素を含む場合がある。例えば、ビデオエンコーダ20によって生成されたバッファリング期間SEIメッセージは、ビットストリームを受信する機器が、IRAPアクセス単位のCL−RASピクチャがビットストリーム内に存在するかどうかを指定する値をそこから導出することができる、1つ又は複数のシンタックス要素を含む場合がある。
[0136]図4は、本開示の技法を実装するように構成された例示的なビデオデコーダ30を示すブロック図である。図4は、説明のために提供されるものであり、本開示において広く例示され記載される技法を限定するものではない。説明の目的で、本開示は、HEVCコード化のコンテキストにおいてビデオデコーダ30を記載する。しかしながら、本開示の技法は、他のコード化規格又はコード化方法に適用可能であり得る。
[0137]図4の例では、ビデオデコーダ30は、エントロピー復号単位150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、復元ユニット158と、フィルタユニット160と、復号ピクチャバッファ162とを含む。予測処理ユニット152は、動き補償ユニット164と、イントラ予測処理ユニット166とを含む。他の例では、ビデオデコーダ30は、より多いか、より少ないか、又は異なる機能的な構成要素を含む場合がある。
[0138]コード化ピクチャバッファ(CPB)151は、ビットストリームの符号化ビデオデータ(例えば、NAL単位)を受信し、記憶することができる。エントロピー復号単位150は、CPB151からNAL単位を受信することができ、シンタックス要素を取得(例えば、復号)するためにNAL単位を構文解析することができる。エントロピー復号単位150は、NAL単位内のエントロピー符号化シンタックス要素をエントロピー復号することができる。予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット156、復元ユニット158、及びフィルタユニット160は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成することができる。
[0139]ビットストリームのNAL単位は、コード化スライスNAL単位を含む場合がある。ビットストリームを復号することの一部として、エントロピー復号単位150は、コード化スライスNAL単位からシンタックス要素を抽出し、エントロピー復号することができる。コード化スライスの各々は、スライスヘッダと、スライスデータとを含む場合がある。スライスヘッダは、スライスに関係するシンタックス要素を含んでいる場合がある。スライスヘッダ内のシンタックス要素は、スライスを含んでいるピクチャと関連付けられたPPSを識別するシンタックス要素を含む場合がある。
[0140]本開示の1つ又は複数の技法によれば、ビデオデコーダ30の1つ又は複数の構成要素(例えば、エントロピー復号単位150)は、ある値(例えば、NoClRasPicPresentFlag)を決定することができる。更に、本開示の1つ又は複数の技法によれば、ビデオデコーダ30は、その値に基づいて、IRAPアクセス単位の全てのCL−RASピクチャがビデオデータビットストリーム内に存在するかどうかを決定することができる。加えて、機器は、ビデオデータビットストリームを復号することができる。
[0141]ビットストリームからシンタックス要素を取得(例えば、復号)することに加えて、ビデオデコーダ30は、CUに対して復元演算を実行することができる。CUに対して復元演算を実行するために、ビデオデコーダ30は、CUの各TUに対して復元演算を実行することができる。CUのTUごとに復元演算を実行することによって、ビデオデコーダ30は、CUの残差ブロックを復元することができる。
[0142]CUのTUに対して復元演算を実行することの一部として、逆量子化ユニット154は、TUの(例えば、TUと関連付けられた)係数ブロックを逆の量子化(inverse quantize)、即ち逆量子化(de-quantize)することができる。逆量子化ユニット154は、量子化の程度を決定し、同様に、逆量子化ユニット154が適用すべき逆量子化の程度を決定するために、TUのCUと関連付けられたQPの値を使用することができる。即ち、圧縮比、即ち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるQPの値を調整することによって制御され得る。圧縮比は、採用されるエントロピーコード化の方法に依存する場合もある。
[0143]逆量子化ユニット154が係数ブロックを逆量子化した後、逆変換処理ユニット156は、TUと関連付けられた残差ブロックを生成するために、係数ブロックに1つ又は複数の逆変換を適用することができる。例えば、逆変換処理ユニット156は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向性変換、又は別の逆変換を係数ブロックに適用することができる。
[0144]PUがイントラ予測を使用して符号化された場合、イントラ予測処理ユニット166は、PU用の予測ブロックを生成するために、イントラ予測を実行することができる。イントラ予測処理ユニット166は、空間的に隣接するPUの予測ブロックに基づいて、PU用の予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成するために、イントラ予測モードを使用することができる。イントラ予測処理ユニット166は、ビットストリームから復号された1つ又は複数のシンタックス要素に基づいて、PU用のイントラ予測モードを決定することができる。
[0145]予測処理ユニット152は、ビットストリームから抽出されたシンタックス要素に基づいて、第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを構築することができる。更に、PUがインター予測を使用して符号化された場合、エントロピー復号単位150は、PUについての動き情報を抽出することができる。動き補償ユニット164は、PUの動き情報に基づいて、PU用の1つ又は複数の参照領域を決定することができる。動き補償ユニット164は、PU用の1つ又は複数の参照ブロックにおけるサンプルブロックに基づいて、PU用の予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成することができる。
[0146]復元ユニット158は、CUのコード化ブロック(例えば、ルーマコード化ブロック、Cbコード化ブロック、及びCrコード化ブロック)を復元するために、適宜、CUのTUと関連付けられた変換ブロック(例えば、ルーマ変換ブロック、Cb変換ブロック、及びCr変換ブロック)、及び、CUのPUの予測ブロック(例えば、ルーマ予測ブロック、Cb予測ブロック、及びCr予測ブロック)、即ち、イントラ予測データ又はインター予測データのいずれかを使用することができる。例えば、復元ユニット158は、CUのコード化ブロック(例えば、ルーマコード化ブロック、Cbコード化ブロック、及びCrコード化ブロック)を復元するために、変換ブロック(例えば、ルーマ変換ブロック、Cb変換ブロック、及びCr変換ブロック)のサンプルを、予測ブロック(例えば、ルーマ予測ブロック、Cb予測ブロック、及びCr予測ブロック)の対応するサンプルに加算することができる。
[0147]フィルタユニット160は、CUのコード化ブロック(例えば、ルーマコード化ブロック、Cbコード化ブロック、及びCrコード化ブロック)と関連付けられるブロッキングアーティファクトを低減するために、デブロッキング動作を実行することができる。ビデオデコーダ30は、復号ピクチャバッファ162内にCUのコード化ブロック(例えば、ルーマコード化ブロック、Cbコード化ブロック、及びCrコード化ブロック)を記憶することができる。復号ピクチャバッファ162は、次の動き補償、イントラ予測、及び図1の表示装置32などの表示装置上での提示のために、参照ピクチャを提供することができる。例えば、ビデオデコーダ30は、復号ピクチャバッファ162内のブロック(例えば、ルーマブロック、Cbブロック、及びCrブロック)に基づいて、他のCUのPUに対してイントラ予測演算又はインター予測演算を実行することができる。このようにして、ビデオデコーダ30は、係数ブロックの変換係数レベルをビットストリームから抽出し、変換係数レベルを逆量子化し、変換係数レベルに変換を適用して変換ブロックを生成し、変換ブロックに少なくとも部分的に基づいて1つ又は複数のコード化ブロックを生成し、1つ又は複数のコード化ブロックを表示のために出力することができる。
[0148]本開示の技法の例の第1のセットでは、CL−RASピクチャを使用する適合性を定義するために必要な、シンタックス、セマンティクス、及び復号プロセスに対する変更が、JCTVC−M0266v2及び米国仮特許出願第61/812,225号に記述された特定のプロセスに対して定義される。この例では、HRDパラメータ用に導入されたシンタックス要素は、バッファリング期間SEIメッセージ内に含まれる。
[0149]本開示の技法の例の第1のセットでは、関連CL−RASピクチャの以下の定義が提供され得る。
関連CL−RASピクチャ:layerSetLayerIdList内に含まれるレイヤID値nuh_layer_idを有するCVS内のCL−RASピクチャが、初期IRAP AU内の最初のピクチャに後続し、レイヤID値nuh_layer_idを有するIRAPピクチャに復号順序で先行する、初期IRAP AU用のCL−RASピクチャ。
[0150]更に、本開示の技法の例の第1のセットでは、HEVCワーキングドラフト10において記述された一般的な復号プロセスに対して以下の変更が行われ得る。SHVC及びMV−HEVCのワーキングドラフトは、HEVCワーキングドラフト(例えば、HEVCワーキングドラフト10)に対する変更に関して、SHVC及びMV−HEVCの幾つかの部分を定義する。以下のセクション全体を通して、下線でマークされた文節は、SHVC及び/又はMV−HEVCを実装するためにJCTVC−M0266v2によって導入された、HEVCワーキングドラフト10のシンタックス、セマンティクス、及び復号プロセスに対する追加変更である。太線イタリックでマークされた文節は、本開示によって導入された追加変更である。二重角括弧でマークされたイタリックの文節は、SHVC、MV−HEVC、又は他の拡張を実装するために、HEVCワーキングドラフト10から本開示によって削除される(又は、HEVCワーキングドラフト10に対する、SHVC又はMV−HEVCのワーキングドラフトで導入された変更である)。
8.1 一般的な復号プロセス
このプロセスへの入力は、ビットストリームである。このプロセスの出力は、復号ピクチャのリストである。
復号されるNAL単位のnuh_layer_id値のリストをnuh_layer_id値の昇順で指定するレイヤ識別子リストTargetDecLayerIdListは、次のように指定される。
−本仕様において指定されていない何らかの外部手段が、TargetDecLayerIdListを設定するために利用可能である場合、TargetDecLayerIdListは、外部手段によって設定される。
−そうではなく、復号プロセスが、C.1項に指定されたように、ビットストリーム適合性検査で起動される場合、TargetDecLayerIdListは、C.1項に指定されたように設定される。
−そうでない場合、TargetDecLayerIdListは、0に等しいただ1つのnuh_layer_id値を含んでいる。
復号される最も高い時間サブレイヤを識別する変数HighestTidは、次のように指定される。
−本仕様において指定されていない何らかの外部手段が、HighestTidを設定するために利用可能である場合、HighestTidは、外部手段によって設定される。
−そうではなく、復号プロセスが、C.1項に指定されたように、ビットストリーム適合性検査で起動される場合、HighestTidは、C.1項に指定されたように設定される。
−そうでない場合、HighestTidは、sps_max_sub_layers_minus1に等しいように設定される。
10節に指定されたサブビットストリーム抽出プロセスは、ビットストリーム、HighestTid、及びTargetDecLayerIdListが入力として適用され、出力は、BitstreamToDecodeと呼ばれるビットストリームに割り当てられる。
この項の残りに指定された復号プロセスは、現在ピクチャと呼ばれ、BitstreamToDecode内で変数CurrPicによって表記される各コード化ピクチャに適用される。
chroma_format_idcの値に応じて、現在ピクチャのサンプルアレイの数は次のようになる。
−chroma_format_idcが0に等しい場合、現在ピクチャは1つのサンプルアレイSLからなる。
−そうでない(chroma_format_idcが0に等しくない)場合、現在ピクチャは3つのサンプルアレイSL、SCb、SCrからなる。
現在ピクチャの復号プロセスは、シンタックス要素、及び7節からの大文字の変数を入力として取得する。各NAL単位における各シンタックス要素のセマンティクスを解釈するとき、「ビットストリーム」という用語(又はその一部、例えば、ビットストリームのCVS)は、BitstreamToDecode(又はその一部)を指す。
復号プロセスは、全てのデコーダが数値的に同一のクロッピングされた復号ピクチャを生成するように指定される。(指定されるように、正しい出力順序又は出力タイミングで)本明細書に記載されたプロセスによって生成された復号ピクチャに対して同一のクロッピングされた復号ピクチャを生成する任意の復号プロセスは、本仕様の復号プロセス要件に適合する。
現在ピクチャがIRAPピクチャであるとき、以下のことが当てはまる。
−特定のnuh_layer_idを有する現在ピクチャが、IDRピクチャ、BLAピクチャ、復号順序でビットストリーム内でその特定のnuh_layer_idを有する最初のピクチャ、又は復号順序でシーケンスNAL単位の最後に後続するその特定のnuh_layer_idを有する最初のピクチャである場合、変数NoRaslOutputFlagは1に等しいように設定される。
−そうではなく、本仕様において指定されていない何らかの外部手段が、変数HandleCraAsBlaFlagを現在ピクチャ用のある値に設定するために利用可能である場合、変数HandleCraAsBlaFlagは、外部手段によって与えられた値に等しいように設定され、変数NoRaslOutputFlagは、HandleCraAsBlaFlagに等しいように設定される。
−そうでない場合、変数HandleCraAsBlaFlagは0に等しいように設定され、変数NoRaslOutputFlagは0に等しいように設定される。
現在ピクチャを含んでいるアクセス単位が初期IRAPアクセス単位であるとき、以下のことが当てはまる:
−現在ピクチャが、BLAピクチャ、1に等しいNoRaslOutputFlagを有するCRAピクチャ、又はBL−IDRピクチャである場合、NoClrasOutputFlagは1に等しい。
−そうではなく、本仕様において指定されていない何らかの外部手段が、変数NoClrasOutputFlagをある値に等しく設定するために利用可能である場合、変数NoClrasOutputFlagは、外部手段によって与えられた値に等しいように設定される。
−そうでない場合、NoClrasOutputFlagは0に等しい。
現在AUが初期IRAP AUであるとき、NoClrasPicPresentFlagの値は、外部手段によって指定される。0に等しいNoClrasPicPresentFlagは、初期IRAP AUと関連付けられる全てのCL−RASピクチャがビットストリーム内に存在するとは限らないことを指定する。1に等しいNoClrasPicPresentFlagは、初期IRAP AUと関連付けられる全てのCL−RASピクチャがビットストリーム内に存在することを指定する。
代替として、NoClrasPicPresentFlagは、ビットストリームの一部として存在するシンタックス要素によって、例えば新しいNAL単位タイプ値によって、又はVPS内のフラグを介して、SEIメッセージ内、例えばバッファリング期間SEIメッセージ内のフラグを介して、導出され得る。
現在ピクチャが0に等しいnuh_layer_idを有するとき、8.1.1項に指定されたように、0に等しいnuh_layer_idを有するコード化ピクチャについての復号プロセスが起動される。
以下の制約に従うことが、ビットストリーム適合性の要件である。
現在ピクチャが0よりも大きいnuh_layer_idを有するIRAPピクチャである場合、レイヤID値directRefLayerIdを有する現在レイヤの直接参照レイヤごとに、directRefLayerIdに等しいnuh_layer_id値を有し、復号順序で現在ピクチャに先行する少なくとも1つのIRAPピクチャがCVS内に存在する。
[0151]従って、少なくとも幾つかの例では、ビデオデコーダ(又は他の機器)は、ビデオデータビットストリームがビデオコード化仕様に適合するかどうかを決定するために、ビットストリーム適合性検査を実行することができ、現在ピクチャが0より大きいレイヤ識別子を有するIRAPピクチャである場合、現在レイヤの直接参照レイヤごとに、現在レイヤのレイヤ識別子に等しいレイヤ識別子を有し、復号順序で現在ピクチャに先行する少なくとも1つのIRAPピクチャがCVS内に存在することが、ビットストリーム適合性の要件である。加えて、機器(例えば、ビデオエンコーダ20又は他の機器)は、そこからビデオデコーダがNoClRasPicPresentFlagを導出することができるシンタックス要素(例えば、フラグ)を含むVPSを含むビットストリームを生成することができる。
[0152]更に、本開示の技法の例の第1のセットによれば、HEVCワーキングドラフト10において提供されたNAL単位ヘッダのセマンティクスに対して以下の変更が行われ得る。
F.7.4.2.2 NAL単位ヘッダのセマンティクス
7.4.2.2項における仕様は、以下の修正及び追加を適用する。
nal_unit_typeは、表7−1で規定されるようなNAL単位に含まれるRBSPデータ構造のタイプを規定する。
セマンティクスが規定されていない、両端値を含むUNSPEC48〜UNSPEC63の範囲内のnal_unit_typeを有するNAL単位は、本仕様で規定された復号プロセスに影響を及ぼさないものとする。
注1−UNSPEC48〜UNSPEC63の範囲内のNAL単位タイプは、用途によって決定されるように使用され得る。nal_unit_typeのこれらの値についての復号プロセスは、本仕様では規定されない。異なる用途が異なる目的でこれらのNAL単位タイプを使用する可能性があるので、これらのnal_unit_type値を有するNAL単位を生成するエンコーダの設計、及びこれらのnal_unit_type値を有するNAL単位の内容を解釈するデコーダの設計において、特別な注意を払わなければならない。
(付録Cで規定されるような)ビットストリームの復号単位内のデータ量を決定すること以外の目的で、デコーダは、nal_unit_typeの確保された値を使用する全てのNAL単位の内容を無視する(ビットストリームから削除し、廃棄する)ものとする。
注2−この要件により、本仕様に対する互換性のある拡張の将来の定義が可能になる。
注3−CRAピクチャは、ビットストリーム内に存在する関連するRASLピクチャ又はRADLピクチャを有することができる。
注4−BLA_W_LPに等しいnal_unit_typeを有するBLAピクチャは、ビットストリーム内に存在する関連するRASLピクチャ又はRADLピクチャを有することができる。BLA_W_RADLに等しいnal_unit_typeを有するBLAピクチャは、ビットストリーム内に存在する関連するRASLピクチャを有していないが、ビットストリーム内の関連するRADLピクチャを有することができる。BLA_N_LPに等しいnal_unit_typeを有するBLAピクチャは、ビットストリーム内に存在する関連するリーディングピクチャを有していない。
注5−IDR_N_LP又はBL_IDR_N_LPに等しいnal_unit_typeを有するIDRピクチャは、ビットストリーム内に存在する関連するリーディングピクチャを有していない。IDR_W_RADL又はBL_IDR_W_RADLに等しいnal_unit_typeを有するIDRピクチャは、ビットストリーム内に存在する関連するRASLピクチャを有していないが、ビットストリーム内の関連するRADLピクチャを有することができる。
注6−サブレイヤ非参照ピクチャは、同じ値のTemporalIdを有する任意のピクチャのRefPicSetStCurrBefore、RefPicSetStCurrAfter、及びRefPicSetLtCurrのいずれにも含まれず、同じ値のTemporalIdを有する他のピクチャの復号可能性に影響を及ぼすことなしに廃棄され得る。
アクセス単位内の特定の値のnuh_layer_idを有する全てのコード化スライスセグメントNAL単位は、同じ値のnal_unit_typeを有するものとする。ピクチャは、ピクチャのコード化スライスセグメントNAL単位のnal_unit_typeに等しいnal_unit_typeを有するとも呼ばれる。
ピクチャがTRAIL_N、TSA_N、STSA_N、RADL_N、RASL_N、CL_RAS_N、RSV_VCL_N12、又はRSV_VCL_N14に等しいnal_unit_typeを有する場合、ピクチャはサブレイヤ非参照ピクチャである。そうでない場合、ピクチャはサブレイヤ参照ピクチャである。
現在アクセス単位が初期IRAPアクセス単位である場合、以下のことが当てはまる。
−RefLayerId[LayerIdInVps[currLayerId]][j]に等しいnuh_layer_idを有する現在アクセス単位内の各ピクチャがIRAPピクチャである場合、ここで、jは両端値を含む0からNumDirectRefLayers[LayerIdInVps[currLayerId]]−1の範囲であり、currLayerIdは現在ピクチャのnuh_layer_idである、現在ピクチャは、IRAPピクチャ、又はCL_RAS_Rに等しいnal_unit_typeを有するCL−RASピクチャであるものとする。
−そうでない場合、現在ピクチャは、CL_RAS_Rに等しいnal_unit_typeを有するCL−RASピクチャであるものとする。
そうでない場合、以下のことが当てはまる。
−現在ピクチャと同じレイヤ内の復号順序で前のピクチャがCL−RASピクチャである場合、現在ピクチャは、CL−RASピクチャ又はIRAPピクチャのいずれかであるものとする。
−そうでない場合、現在ピクチャは、CL−RASピクチャでないものとする。
各レイヤ内で、復号順序でビットストリーム内の最初のピクチャ以外の各ピクチャは、復号順序で前のIRAPピクチャと関連付けられていると見なされる。
ピクチャがリーディングピクチャであるとき、そのピクチャはRADLピクチャ又はRASLピクチャであるものとする。
ピクチャが末尾のピクチャであるとき、そのピクチャはRADLピクチャ又はRASLピクチャではないものとする。
ピクチャがリーディングピクチャであるとき、そのピクチャは、同じIRAPピクチャと関連付けられた全ての末尾のピクチャに復号順序で先行するものとする。
BLA_W_RADL又はBLA_N_LPに等しいnal_unit_typeを有するBLAピクチャと関連付けられたRASLピクチャは、ビットストリーム内に存在しないものとする。
IDRピクチャと関連付けられたRASLピクチャは、ビットストリーム内に存在しないものとする。
BLA_N_LPに等しいnal_unit_typeを有するBLAピクチャと関連付けられるか、又はIDR_N_LP又はBL_IDR_N_LPに等しいnal_unit_typeを有するIDRピクチャと関連付けられたRADLピクチャは、ビットストリーム内に存在しないものとする。
注7−各パラメータセットがアクティブ化される必要があるときに、そのパラメータセットが(ビットストリーム内で、又は本仕様において指定されていない外部手段によってのいずれかで)利用可能であれば、IRAPアクセス単位の前の全てのアクセス単位を廃棄することによって、IRAPアクセス単位の位置においてランダムアクセスを実行すること(及び、IRAPピクチャと、復号順序で全ての後続の非RASLピクチャとを正確に復号すること)が可能である。
復号順序でIRAPピクチャに先行する、1に等しいPicOutputFlagを有する任意のピクチャは、出力順序でIRAPピクチャに先行するものとし、出力順序でIRAPピクチャと関連付けられた任意のRADLピクチャに先行するものとする。
CRAピクチャ又はBLAピクチャと関連付けられた任意のRASLピクチャは、出力順序でCRAピクチャ又はBLAピクチャと関連付けられた任意のRADLピクチャに先行するものとする。
CRAピクチャと関連付けられた任意のRASLピクチャは、復号順序でCRAピクチャに先行する任意のIRAPピクチャに出力順序で後続するものとする。
sps_temporal_id_nesting_flagが1に等しく、TemporalIdが0よりも大きいとき、nal_unit_typeは、TSA_R、TSA_N、RADL_R、RADL_N、RASL_R、又はRASL_Nに等しいものとする。
nuh_layer_idは、レイヤの識別子を指定する。
nal_unit_typeがCL_RAS_R、CL_RAS_N、BL_IDR_W_RADL、又はBL_IDR_N_LPに等しいとき、nuh_layer_idの値は、0よりも大きいものとする。
[0153]更に、本開示の技法の例の第1のセットでは、HEVCワーキングドラフト10のVPS、SPS、及びPPSのアクティブ化に対して以下の変更が行われ得る。
F.7.4.2.4.2 VPS RBSP、SPS RBSP、及びPPS RBSPの順序及びそれらのアクティブ化
7.4.2.4.2項における仕様は、以下の追加を適用する。
復号プロセスの動作の開始において、各PPS RBSPは、0よりも大きいnuh_layer_idを有する任意のレイヤについてアクティブではないと最初は考えられる。復号プロセスの動作中のいかなるときでも、多くとも1つのPPS RBSPが各非ゼロnuh_layer_id値についてアクティブであると考えられ、特定の非ゼロnuh_layer_id値についていかなる特定のPPS RBSPのアクティブ化も、(もしあれば)その非ゼロnuh_layer_id値について以前アクティブのPPS RBSPの非アクティブ化をもたらす。
(pps_pic_parameter_set_idの特定の値を有する)PPS RBSPがnuh_layer_id値についてアクティブではなく、(pps_pic_parameter_set_idに等しいslice_pic_parameter_set_idの値を使用し、nuh_layer_idのその値を有する)コード化スライスセグメントNAL単位によって参照されるとき、そのPPS RBSPはそのnuh_layer_id値についてアクティブ化される。このPPS RBSPは、同じレイヤ用の別のPPS RBSPのアクティブ化によって非アクティブ化されるまで、そのnuh_layer_id値についてのアクティブレイヤPPS RBSPと呼ばれる。pps_pic_parameter_set_idの特定の値を有するPPS RBSPは、そのアクティブ化の前の復号プロセスに利用可能であり、PPS NAL単位のTemporalId以下のTemporalIdを有する少なくとも1つのアクセス単位内に含まれるか、又は外部手段を介して提供される。nuhLayerIdAに等しいnuh_layer_idについてアクティブ化されたPPS RBSPを含んでいるNAL単位のnuh_layer_id値は、nuhLayerIdA以下である。2つ以上のnuh_layer_id値について、同じPPS RBSPがアクティブレイヤPPSであり得る。
コード化ピクチャ用のアクティブレイヤPPS RBSPについてのpps_pic_parameter_set_idの値を含んでいる任意のPPS NAL単位は、コード化ピクチャの最後のVCL NAL単位に後続し、別のコード化ピクチャの最初のVCL NAL単位に先行しない限り、コード化ピクチャ用のアクティブレイヤPPS RBSPのVCL NAL単位と同じ内容を有する。
復号プロセスの動作の開始において、各SPS RBSPは、0よりも大きいnuh_layer_idを有する任意のレイヤについてアクティブではないと考えられる。復号プロセスの動作中のいかなるときでも、多くとも1つのSPS RBSPが各非ゼロnuh_layer_id値についてアクティブであると考えられ、特定の非ゼロnuh_layer_id値についていかなる特定のSPS RBSPのアクティブ化も、(もしあれば)その非ゼロnuh_layer_id値について以前アクティブのSPS RBSPの非アクティブ化をもたらす。
(sps_seq_parameter_set_idの特定の値を有する)SPS RBSPがnuh_layer_id値についてすでにアクティブではなく、(pps_seq_parameter_set_idがsps_seq_parameter_set_id値に等しい)そのnuh_layer_id値についてのPPS RBSPのアクティブ化によって参照されるとき、そのSPS RBSPはそのnuh_layer_id値についてアクティブ化される。このSPS RBSPは、同じレイヤ用の別のSPS RBSPのアクティブ化によって非アクティブ化されるまで、そのnuh_layer_id値についてのアクティブレイヤSPS RBSPと呼ばれる。sps_seq_parameter_set_idの特定の値を有するSPS RBSPは、そのアクティブ化の前の復号プロセスに利用可能であるものとし、0に等しいTemporalIdを有する少なくとも1つのアクセス単位内に含まれるか、又は外部手段を介して提供される。特定のnuh_layer_id値についてアクティブ化されたSPS RBSPは、初期IRAPアクセス単位、又は両端値を含むnuh_layer_idを有するピクチャを含んでいる最初のアクセス単位のいずれかにおいて、両端間を含まない初期IRAPアクセス単位内のそのnuh_layer_id値を有する次のピクチャ、又はCVSの最後のいずれかまで、どちらが早くても、そのnuh_layer_id値を有するピクチャから始まる、そのnuh_layer_id値を有する、復号順序内のピクチャのシーケンスについてアクティブのままであるものとする。nuhLayerIdAに等しいnuh_layer_idについてアクティブ化されたSPS RBSPを含んでいるnuh_layer_id値NAL単位は、nuhLayerIdA以下である。2つ以上のnuh_layer_id値について、同じSPS RBSPがアクティブレイヤSPSであり得る。
アクティブレイヤSPS RBSPについてのsps_seq_parameter_set_idの値を含んでいる任意のSPS NAL単位は、アクティブレイヤSPSがアクティブであることが必要な最後のコード化ピクチャに後続し、同じ値のseq_parameter_set_idのSPSをアクティブ化する最初のNAL単位に先行しない限り、アクティブレイヤSPS RBSPの内容と同じ内容を有する。
非ゼロnuh_layer_id値を有するVCL NAL単位用の復号プロセスの動作中、その非ゼロnuh_layer_id値についてのアクティブレイヤSPSのパラメータの値及びその非ゼロnuh_layer_id値についてのアクティブレイヤPPS RBSPのパラメータの値は、効力があると考えられる。
[0154]本開示の技法の例の第1のセットでは、0よりも大きいnuh_layer_idを有するコード化ピクチャの復号を開始するためのHEVCワーキングドラフト10の復号プロセスに対して、以下の変更が行われ得る。
F.8.1.1 0よりも大きいnuh_layer_idを有するコード化ピクチャの復号を開始するための復号プロセス
この節で参照される各ピクチャは、完全コード化ピクチャである。
復号プロセスは、現在ピクチャCurrPicについて次のように動作する。
1.NAL単位の復号が4項において規定される。
2.8.3項のプロセスは、スライスセグメントレイヤ及びその上位においてシンタックス要素を使用する以下の復号プロセスを規定する
−ピクチャ順序カウントに関する変数及び関数は、8.3.1項において導出される。これは、ピクチャの最初のスライスセグメントについてのみ起動される必要がある。同じCVS内でnuh_layer_idの特定の値を有する2つのピクチャのPicOrderCnVal値の間の差分がnuh_layer_idの任意の値について同じであるべきことが、ビットストリーム適合性の要件である。
−CurrPicのnuh_layer_idと等しいnuh_layer_idを有するピクチャについて、8.3.2項におけるRPS用の復号プロセスが起動され、ここにおいて、参照ピクチャは「参照に使用されない」又は「長期参照に使用される」ものとしてマークされ得る。これは、ピクチャの最初のスライスセグメントについてのみ起動される必要がある。
−NoClrasOutputFlagが1に等しく、CurrPicを含んでいるアクセス単位が初期IRAPアクセス単位であるとき、5.7節に規定された利用不可能な参照ピクチャを生成するための復号プロセスが起動され、これは、ピクチャの最初のスライスセグメントについてのみ起動される必要がある。
[0155]更に、本開示の技法の例の第1のセットでは、0よりも大きいnuh_layer_idを有するコード化ピクチャの復号を終了するためのHEVCワーキングドラフト10の復号プロセスに対して、以下の変更が行われ得る。
F.8.1.1 0よりも大きいnuh_layer_idを有するコード化ピクチャの復号を終了するための復号プロセス
PicOutputFlagが次のように設定される。
−現在ピクチャがRASLピクチャであり、関連するIRAPピクチャのNoRaslOutputFlagが1に等しい場合、PicOutputFlagは、0に等しいように設定される。
−そうではなく、現在ピクチャがCL−RASピクチャであり、NoClrasOutputFlagが1に等しい場合、PicOutputFlagは、0に等しいように設定される。
−そうでない場合、PicOutputFlagはpic_output_flagに等しいように設定される。
以下のことが当てはまる。
−復号ピクチャが「短期参照に使用される」ものとしてマークされる。
−TemporalIdがHighestTidに等しいとき、F.8.1.2.1項に規定されたレイヤ間予測には必要とされないサブレイヤ非参照ピクチャ用のマーキングプロセスが、nuh_layer_idに等しいlatestDecLayerIdを入力として起動される。
[0156]加えて、本開示の技法の例の第1のセットでは、HEVCワーキングドラフト10における利用不可能な参照ピクチャの生成に対して、以下の変更が行われ得る。
8.3.3.1 利用不可能な参照ピクチャを生成するための一般的な復号プロセス
このプロセスは、現在ピクチャがBLAピクチャであるか、1に等しいNoRaslOutputFlagを有するCRAピクチャであるとき、コード化ピクチャあたり1度起動される。
注−このプロセスは、主に、RASLピクチャについてのシンタックス制約の仕様のためのみに規定される。1に等しいNoRaslOutputFlagを有するIRAPピクチャと関連付けられるRASLピクチャ用の復号プロセスの仕様全体は、そのようなRASLピクチャの許可されたシンタックス内容上の制約を規定する目的のみで、本明細書に含まれる。復号プロセス中、1に等しいNoRaslOutputFlagを有するIRAPピクチャと関連付けられる任意のRASLピクチャは、これらのピクチャが出力用に指定されず、出力用に指定された任意の他のピクチャの復号プロセスに対する影響をもたないので、無視される場合がある。しかしながら、付録Cに規定されたHRD動作では、CPBの到達時間及び削除時間の導出において考慮に入れられる必要があり得る。
このプロセスが起動されたとき、以下のことが当てはまる。
−iが両端間を含む0〜NumPocStFoll−1の範囲内である、「参照ピクチャがない」に等しいRefPicSetStFoll[i]ごとに、8.3.3.2項に規定されたようにピクチャが生成され、以下のことが当てはまる。
−生成されたピクチャ用のPicOrderCntValの値がPocStFoll[i]に等しいように設定される。
−生成されたピクチャ用のPicOutputFlagの値が0に等しいように設定される。
−生成されたピクチャが「短期参照に使用される」ものとしてマークされる。
−生成された参照ピクチャになるようにRefPicSetStFoll[i]が設定される。
−生成されたピクチャ用のnuh_layer_idの値がnuh_layer_idに等しいように設定される。
−iが両端間を含む0〜NumPocLtFoll−1の範囲内である、「参照ピクチャがない」に等しいRefPicSetLtFoll[i]ごとに、8.3.3.2項に規定されたようにピクチャが生成され、以下のことが当てはまる。
−生成されたピクチャ用のPicOrderCntValの値がPocLtFoll[i]に等しいように設定される。
−生成されたピクチャ用のslice_pic_order_cnt_lsbの値が(PocLtFoll[i]&(MaxPicOrderCntLsb−1))に等しいと推論される。
−生成されたピクチャ用のPicOutputFlagの値が0に等しいように設定される。
−生成されたピクチャが「長期参照に使用される」ものとしてマークされる。
−生成された参照ピクチャになるようにRefPicSetLtFoll[i]が設定される。
−生成されたピクチャ用のnuh_layer_idの値がnuh_layer_idに等しいように設定される。
[0157]更に、本開示の技法の例の第1のセットでは、HEVCワーキングドラフト10におけるCL−RASピクチャ用の利用不可能な参照ピクチャの生成が、次のように変更され得る。
このプロセスは、NoClrasOutputFlagが1に等しく、現在ピクチャが初期IRAPアクセス単位内のCL−RASピクチャであるとき、コード化ピクチャあたり1度起動される。
注−このプロセスは、主に、CL−RASピクチャについてのシンタックス制約の仕様のためのみに規定される。NoClrasOutputFlagが1に等しいときのCL−RASピクチャ用の復号プロセスの仕様全体は、そのようなCL−RASピクチャの許可されたシンタックス内容上の制約を規定する目的のみで、本明細書に含まれる。復号プロセス中、NoClrasOutputFlagが1に等しいとき、任意のCL−RASピクチャは、これらのピクチャが出力用に指定されず、出力用に指定された任意の他のピクチャの復号プロセスに対する影響をもたないので、無視される場合がある。しかしながら、付録Cに規定されたHRD動作では、CL−RASピクチャは、CPBの到達時間及び削除時間の導出において考慮に入れられる必要があり得る。
このプロセスが起動されたとき、以下のことが当てはまる。
−iが両端間を含む0〜NumPocStCurrBefore−1の範囲内である、「参照ピクチャがない」に等しいRefPicSetStCurrBefore[i]ごとに、8.3.3.2項に規定されたようにピクチャが生成され、以下のことが当てはまる。
−生成されたピクチャ用のPicOrderCntValの値がPocStCurrBefore[i]に等しいように設定される。
−生成されたピクチャ用のPicOutputFlagの値が0に等しいように設定される。
−生成されたピクチャが「短期参照に使用される」ものとしてマークされる。
−生成された参照ピクチャになるようにRefPicSetStCurrBefore[i]が設定される。
−生成されたピクチャ用のnuh_layer_idの値がnuh_layer_idに等しいように設定される。
−iが両端間を含む0〜NumPocStCurrAfter−1の範囲内である、「参照ピクチャがない」に等しいRefPicSetStCurrAfter[i]ごとに、8.3.3.2項に規定されたようにピクチャが生成され、以下のことが当てはまる。
−生成されたピクチャ用のPicOrderCntValの値がPocStCurrAfter[i]に等しいように設定される。
−生成されたピクチャ用のPicOutputFlagの値が0に等しいように設定される。
−生成されたピクチャが「短期参照に使用される」ものとしてマークされる。
−生成された参照ピクチャになるようにRefPicSetStCurrAfter[i]が設定される。
−生成されたピクチャ用のnuh_layer_idの値がnuh_layer_idに等しいように設定される。
−iが両端間を含む0〜NumPocStFoll−1の範囲内である、「参照ピクチャがない」に等しいRefPicSetStFoll[i]ごとに、8.3.3.2項に規定されたようにピクチャが生成され、以下のことが当てはまる。
−生成されたピクチャ用のPicOrderCntValの値がPocStFoll[i]に等しいように設定される。
−生成されたピクチャ用のPicOutputFlagの値が0に等しいように設定される。
−生成されたピクチャが「短期参照に使用される」ものとしてマークされる。
−生成された参照ピクチャになるようにRefPicSetStFoll[i]が設定される。
−生成されたピクチャ用のnuh_layer_idの値がnuh_layer_idに等しいように設定される。
−iが両端間を含む0〜NumPocLtCurr−1の範囲内である、「参照ピクチャがない」に等しいRefPicSetLtCurr[i]ごとに、8.3.3.2項に規定されたようにピクチャが生成され、以下のことが当てはまる。
−生成されたピクチャ用のPicOrderCntValの値がPocLtCurr[i]に等しいように設定される。
−生成されたピクチャ用のslice_pic_order_cnt_lsbの値が(PocLtCurr[i]&(MaxPicOrderCntLsb−1))に等しいと推論される。
−生成されたピクチャ用のPicOutputFlagの値が0に等しいように設定される。
−生成されたピクチャが「長期参照に使用される」ものとしてマークされる。
−生成された参照ピクチャになるようにRefPicSetLtCurr[i]が設定される。
−生成されたピクチャ用のnuh_layer_idの値がnuh_layer_idに等しいように設定される。
−iが両端間を含む0〜NumPocLtFoll−1の範囲内である、「参照ピクチャがない」に等しいRefPicSetLtFoll[i]ごとに、8.3.3.2項に規定されたようにピクチャが生成され、以下のことが当てはまる。
−生成されたピクチャ用のPicOrderCntValの値がPocLtFoll[i]に等しいように設定される。
−生成されたピクチャ用のslice_pic_order_cnt_lsbの値が(PocLtFoll[i]&(MaxPicOrderCntLsb−1))に等しいと推論される。
−生成されたピクチャ用のPicOutputFlagの値が0に等しいように設定される。
−生成されたピクチャが「長期参照に使用される」ものとしてマークされる。
−生成された参照ピクチャになるようにRefPicSetLtFoll[i]が設定される。
−生成されたピクチャ用のnuh_layer_idの値がnuh_layer_idに等しいように設定される。
[0158]このようにして、幾つかの例では、ビデオデコーダ30は、第1、第2、第3、第4、及び第5の参照ピクチャサブセットについてCL−RASピクチャを復号するとき、利用不可能な参照ピクチャを生成することができる。第1の参照ピクチャサブセット(例えば、RefPicSetStCurrBefore)内の各参照ピクチャは、出力順序で現在ピクチャの前に現れる短期参照ピクチャであり、第2の参照ピクチャサブセット(例えば、RefPicSetStCurrAfter)内の各参照ピクチャは、出力順序で現在ピクチャの後に現れる短期参照ピクチャであり、第3の参照ピクチャサブセット(例えば、RefPicSetStFoll)内の各参照ピクチャは、現在ピクチャのインター予測に使用されない短期参照ピクチャであり、第4の参照ピクチャサブセット(例えば、RefPicSetLtCurr)内の各参照ピクチャは、現在ピクチャのインター予測に使用可能な長期参照ピクチャであり、第5の参照ピクチャサブセット(例えば、RefPicSetLtFoll)内の各参照ピクチャは、現在ピクチャのインター予測に使用されない長期参照ピクチャである。
[0159]更に、幾つかの例では、ビデオデコーダ30は、第1の参照ピクチャサブセット(例えば、RefPicSetStCurrBefore[i])用のアレイ内のそれぞれの位置ごとに、それぞれの位置にある項目が「参照ピクチャがない」に等しい場合、以下のことが当てはまる参照ピクチャを生成することができる:生成された参照ピクチャ用のピクチャ順序カウント(POC)値がPOC値の第1のセット(例えば、PocStCurrBefore)内のそれぞれの位置にあるPOC値に等しい、生成された参照ピクチャ用のピクチャ出力フラグが0に等しいように設定される、生成された参照ピクチャが短期参照に使用されるものとしてマークされる、参照ピクチャサブセット用のアレイ内のそれぞれの位置が生成された参照ピクチャに設定される、及び、生成された参照ピクチャ用のレイヤ識別子が現在ピクチャのレイヤ識別子(例えば、nuh_lyaer_id)に設定される。更に、第2の参照ピクチャサブセット(例えば、RefPicSetStCurrAfter[i])用のアレイ内のそれぞれの位置ごとに、それぞれの位置にある項目が「参照ピクチャがない」に等しい場合、ビデオコーダは、以下のことが当てはまる参照ピクチャを生成することができる:生成された参照ピクチャ用のPOC値がPOC値の第2のセット(例えば、PocStCurrAfter)内のそれぞれの位置にあるPOC値に等しい、生成された参照ピクチャ用のピクチャ出力フラグが0に等しいように設定される、生成された参照ピクチャが短期参照に使用されるものとしてマークされる、第2の参照ピクチャサブセット用のアレイ内のそれぞれの位置が生成された参照ピクチャに設定される、及び、生成された参照ピクチャ用のレイヤ識別子が現在ピクチャのレイヤ識別子に設定される。加えて、第3の参照ピクチャサブセット(例えば、RefPicSetStFoll[i])用のアレイ内のそれぞれの位置ごとに、それぞれの位置にある項目が「参照ピクチャがない」に等しい場合、ビデオデコーダは、以下のことが当てはまる参照ピクチャを生成することができる:生成された参照ピクチャ用のPOC値がPOC値の第3のセット(例えば、PocStFoll)内のそれぞれの位置にあるPOC値に等しい、生成された参照ピクチャ用のピクチャ出力フラグが0に等しいように設定される、生成された参照ピクチャが短期参照に使用されるものとしてマークされる、第3の参照ピクチャサブセット用のアレイ内のそれぞれの位置が生成された参照ピクチャに設定される、及び、生成された参照ピクチャ用のレイヤ識別子が現在ピクチャのレイヤ識別子に設定される。更に、第4の参照ピクチャサブセット(例えば、RefPicSetLtCurr[i])用のアレイ内のそれぞれの位置ごとに、それぞれの位置にある項目が「参照ピクチャがない」に等しい場合、ビデオデコーダは、以下のことが当てはまる参照ピクチャを生成することができる:生成された参照ピクチャ用のPOC値がPOC値の第4のセット(例えば、PocLtCurr)内のそれぞれの位置にあるPOC値に等しい、生成されたピクチャ用のPOC値の最下位ビットを指定するシンタックス要素(例えば、slice_pic_order_cnt_lsb)の値が、POC値の第4のセット内のそれぞれの位置におけるPOC値と、POC値の最下位ビットが有することが可能な最大値(例えば、MaxPicOrderCntLsb)マイナス1を示す変数からもたらされた値とのビット単位の「and」演算の結果に等しいと推論される、生成された参照ピクチャ用のピクチャ出力フラグが0に等しいように設定される、生成された参照ピクチャが長期参照に使用されるものとしてマークされる、第4の参照ピクチャサブセット用のアレイ内のそれぞれの位置が生成された参照ピクチャに設定される、及び、生成された参照ピクチャ用のレイヤ識別子が現在ピクチャのレイヤ識別子に設定される。加えて、第5の参照ピクチャサブセット(例えば、PocSetLtFoll[i])用のアレイ内のそれぞれの位置ごとに、それぞれの位置にある項目が「参照ピクチャがない」に等しい場合、ビデオデコーダは、以下のことが当てはまる参照ピクチャを生成することができる:生成された参照ピクチャ用のPOC値がPOC値の第5のセット(例えば、PocLtFoll)内のそれぞれの位置にあるPOC値に等しい、生成されたピクチャ用のPOC値の最下位ビットを指定するシンタックス要素(例えば、slice_pic_order_cnt_lsb)の値が、POC値の第5のセット内のそれぞれの位置におけるPOC値と、POC値の最下位ビットが有することが可能な最大値(例えば、MaxPicOrderCntLsb)マイナス1を示す変数からもたらされた値とのビット単位の「and」演算の結果に等しいと推論される、生成された参照ピクチャ用のピクチャ出力フラグが0に等しいように設定される、生成された参照ピクチャが長期参照に使用されるものとしてマークされる、第5の参照ピクチャサブセット用のアレイ内のそれぞれの位置が生成された参照ピクチャに設定される、及び、生成された参照ピクチャ用のレイヤ識別子が現在ピクチャのレイヤ識別子に設定される。
[0160]更に、本開示の技法の例の第1のセットでは、HEVCワーキングドラフト10のバッファリング期間SEIメッセージシンタックスに対して、以下の変更が行われ得る。
[0161]代替として、幾つかの例では、irap_cross_layer_cpb_params_present_flagの信号伝達は、sub_pic_hrd_params_present_flagの値が条件とされておらず、バッファリング期間SEIメッセージ内で個別に信号伝達される。
[0162]更に、本開示の技法の例の第1のセットによれば、バッファリング期間SEIメッセージのセマンティクスに対して、以下の変更が行われ得る。
1に等しいirap_cross_layer_cpb_params_present_flagは、initial_alt_cross_layer_cpb_removal_delay[i]シンタックス要素及びinitial_alt_cross_layer_cpb_removal_offset[i]シンタックス要素の存在を指定する。存在しないとき、irap_cross_layer_cpb_params_present_flagの値は、0に等しいと推論される。関連するピクチャがCRAピクチャでもBLAピクチャでもないとき、irap_cross_layer_cpb_params_present_flagの値は0に等しいものとする。
注2−sub_pic_hrd_params_present_flag、irap_cpb_params_present_flag、及びirap_cross_layer_cpb_params_present_flagの値のうちの2つ以上が1に等しいことはあり得ない。
cpb_cross_layer_delay_offsetは、IRAPアクセス単位と関連付けられたCL−RASピクチャユニットが存在しないとき、バッファリング期間SEIメッセージと関連付けられたIRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出において使用されるべきオフセットを指定する。そのシンタックス要素は、au_cpb_removal_delay_length_minus1+1によって与えられるビットの長さを有する。存在しないとき、cpb_cross_layer_delay_offsetの値は、0に等しいと推論される。
dpb_cross_layer_delay_offsetは、IRAPアクセス単位と関連付けられたCL−RASピクチャが存在しないとき、バッファリング期間SEIメッセージと関連付けられたIRAPアクセス単位のDPB出力時間の導出において使用されるべきオフセットを指定する。そのシンタックス要素は、dpb_output_delay_length_minus1+1によって与えられるビットの長さを有する。存在しないとき、dpb_cross_layer_delay_offsetの値は、0に等しいと推論される。
現在ピクチャが復号順序でビットストリーム内の最初のピクチャではないとき、prevNonDiscardablePicを、RASL、RADL、又はサブレイヤ非参照ピクチャではない、0に等しいTemporalIdを有する、復号順序で先行するピクチャとする。
nal_initial_cpb_removal_delay[i]及びnal_initial_alt_cpb_removal_delay[i]は、それぞれ、NAL HRDパラメータが使用されているときのi番目のCPBについての、デフォルト初期CPB削除遅延と代替初期CPB削除遅延とを指定する。それらのシンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビットの長さを有し、90kHzクロックの単位である。それらのシンタックス要素の値は、0に等しくならず、90kHzクロック単位でのCPBサイズに相当する時間である、90000*(CpbSize[i]÷BitRate[i])以下になる。
nal_initial_alt_cross_layer_cpb_removal_delay[i]は、NAL HRDパラメータが使用されているときのi番目のCPBについての代替初期CPB削除遅延を指定する。そのシンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビットの長さを有し、90kHzクロックの単位である。そのシンタックス要素の値は、0に等しくならず、90kHzクロック単位でのCPBサイズに相当する時間である、90000*(CpbSize[i]÷BitRate[i])以下になる。
nal_initial_cpb_removal_offset[i]及びnal_initial_alt_cpb_removal_offset[i]は、それぞれ、NAL HRDパラメータが使用されているときのi番目のCPBについての、デフォルト初期CPB削除オフセットと代替初期CPB削除オフセットとを指定する。それらのシンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビットの長さを有し、90kHzクロックの単位である。
nal_initial_alt_cross_layer_cpb_removal_offset[i]は、NAL HRDパラメータが使用されているときのi番目のCPBについての代替初期CPB削除オフセットを指定する。そのシンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビットの長さを有し、90kHzクロックの単位である。
CVS全体にわたって、nal_initial_cpb_removal_delay[i]及びnal_initial_cpb_removal_offset[i]の和はiの各値について一定になり、nal_initial_alt_cpb_removal_delay[i]及びnal_initial_alt_cpb_removal_offset[i]の和はiの各値について一定になり、nal_initial_alt_cross_layer_cpb_removal_delay[i]及びnal_initial_alt_cross_layer_cpb_removal_offset[i]の和はiの各値について一定になる。
vcl_initial_cpb_removal_delay[i]及びvcl_initial_alt_cpb_removal_delay[i]は、それぞれ、VCL HRDパラメータが使用されているときのi番目のCPBについての、デフォルト初期CPB削除遅延と代替初期CPB削除遅延とを指定する。それらのシンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビットの長さを有し、90kHzクロックの単位である。それらのシンタックス要素の値は、0に等しくならず、90kHzクロック単位でのCPBサイズに相当する時間である、90000*(CpbSize[i]÷BitRate[i])以下になる。
vcl_initial_alt_cross_layer_cpb_removal_delay[i]は、それぞれ、VCL HRDパラメータが使用されているときのi番目のCPBについての代替初期CPB削除遅延を指定する。そのシンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビットの長さを有し、90kHzクロックの単位である。そのシンタックス要素の値は、0に等しくならず、90kHzクロック単位でのCPBサイズに相当する時間である、90000*(CpbSize[i]÷BitRate[i])以下になる。
vcl_initial_cpb_removal_offset[i]及びvcl_initial_alt_cpb_removal_offset[i]は、それぞれ、VCL HRDパラメータが使用されているときのi番目のCPBについての、デフォルト初期CPB削除オフセットと代替初期CPB削除オフセットとを指定する。それらのシンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビットの長さを有し、90kHzクロックの単位である。
vcl_initial_alt_cross_layer_cpb_removal_offset[i]は、それぞれ、VCL HRDパラメータが使用されているときのi番目のCPBについての代替初期CPB削除オフセットを指定する。そのシンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビットの長さを有し、90kHzクロックの単位である。
CVS全体にわたって、vcl_initial_cpb_removal_delay[i]及びvcl_initial_cpb_removal_offset[i]の和はiの各値について一定になり、vcl_initial_alt_cpb_removal_delay[i]及びvcl_initial_alt_cpb_removal_offset[i]の和はiの各値について一定になり、vcl_initial_alt_cross_layer_cpb_removal_delay[i]及びvcl_initial_alt_cross_layer_cpb_removal_offset[i]の和はiの各値について一定になる。
注4−エンコーダは、その関連するRASLピクチャのうちの少なくとも1つが復号順序でその関連するRASLピクチャのうちの1つ又は複数に後続する、CRAピクチャ又はBLAピクチャと関連付けられたバッファリング期間SEIメッセージ内に、1に等しいirap_cpb_params_present_flagを含めないように推奨される。
バッファリング期間SEIメッセージ内のシンタックス要素の残りのセマンティクスは、同じままである。
代替として、シンタックス要素cpb_cross_layer_delay_offset、dpb_cross_layer_delay_offset、nal_initial_alt_cross_layer_cpb_removal_delay[i]、nal_initial_alt_cross_layer_cpb_removal_offset[i]、vcl_initial_alt_cross_layer_cpb_removal_delay[i]、及びvcl_initial_alt_cross_layer_cpb_removal_offset[i]の(ビットの)長さを指定するさらなるシンタックス要素が、hrd_parameters()シンタックス構造内で信号伝達される。
[0163]このようにして、幾つかの例では、ビデオデコーダ30は、コード化ビデオビットストリームのSEIメッセージから、第2の代替CPB削除遅延シンタックス要素(例えば、nal_initial_alt_cross_layer_cpb_removal_delay)及び第3の代替CPB削除オフセットシンタックス要素(例えば、nal_initial_alt_cross_layer_cpb_removal_offset)がSEIメッセージ内に存在するかどうかを指定する、第1のシンタックス要素(例えば、irap_cross_layer_cpb_params_present_flag)を取得することができる。第2の代替CPB削除遅延シンタックス要素は、NAL HRDパラメータが使用されているときのCPBについての代替初期CPB削除遅延を指定することができる。第3の代替CPB削除オフセットシンタックス要素は、NAL HRDパラメータが使用されているときのCPBについての代替初期CPB削除オフセットを指定する。加えて、ビデオデコーダ30は、IRAPアクセス単位と関連付けられたCL−RASピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出において使用されるべきオフセットを指定する、CPBクロスレイヤ遅延オフセットシンタックス要素をSEIメッセージから取得することができる。ビデオデコーダ30はまた、IRAPアクセス単位と関連付けられたCL−RASピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位のDPB出力時間の導出において使用されるべきオフセットを指定する、復号ピクチャバッファ(DPB)クロスレイヤ遅延オフセットシンタックス要素をSEIメッセージから取得することができる。
[0164]同様に、幾つかの例では、機器(例えば、ビデオエンコーダ20)は、第2の代替CPB削除遅延シンタックス要素(例えば、nal_initial_alt_cross_layer_cpb_removal_delay)及び第3の代替CPB削除オフセットシンタックス要素(例えば、nal_initial_alt_cross_layer_cpb_removal_offset)がSEIメッセージ内に存在するかどうかを指定する、第1のシンタックス要素(例えば、irap_cross_layer_cpb_params_present_flag)を含むSEIメッセージを生成する。第2の代替CPB削除遅延シンタックス要素は、NAL HRDパラメータが使用されているときのCPBについての代替初期CPB削除遅延を指定する。第3の代替CPB削除オフセットシンタックス要素は、NAL HRDパラメータが使用されているときのCPBについての代替初期CPB削除オフセットを指定する。SEIメッセージは、IRAPアクセス単位と関連付けられたCL−RASピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出において使用されるべきオフセットを指定する、CPBクロスレイヤ遅延オフセットシンタックス要素を含む。SEIメッセージは、IRAPアクセス単位と関連付けられたCL−RASピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位のDPB出力時間の導出において使用されるべきオフセットを指定する、DPBクロスレイヤ遅延オフセットシンタックス要素を含む。
[0165]更に、幾つかの例では、ビデオデコーダ30は、コード化ビデオビットストリームのSEIメッセージから、第2の代替CPB削除遅延シンタックス要素(例えば、nal_initial_alt_cross_layer_cpb_removal_delay)及び第3の代替CPB削除オフセットシンタックス要素(例えば、nal_initial_alt_cross_layer_cpb_removal_offset)がSEIメッセージ内に存在するかどうかを指定する、第1のシンタックス要素(例えば、irap_cross_layer_cpb_params_present_flag)を取得することができる。第2の代替CPB削除遅延シンタックス要素は、VCL HRDパラメータが使用されているときのCPBについての代替初期CPB削除遅延を指定することができる。第3の代替CPB削除オフセットシンタックス要素は、VCL HRDパラメータが使用されているときのCPBについての代替初期CPB削除オフセットを指定する。加えて、ビデオデコーダ30は、IRAPアクセス単位と関連付けられたCL−RASピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出において使用されるべきオフセットを指定する、CPBクロスレイヤ遅延オフセットシンタックス要素をSEIメッセージから取得することができる。ビデオデコーダ30はまた、IRAPアクセス単位と関連付けられたCL−RASピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位のDPB出力時間の導出において使用されるべきオフセットを指定する、DPBクロスレイヤ遅延オフセットシンタックス要素をSEIメッセージから取得することができる。
[0166]同様に、幾つかの例では、機器(例えば、ビデオエンコーダ20)は、第2の代替CPB削除遅延シンタックス要素(例えば、nal_initial_alt_cross_layer_cpb_removal_delay)及び第3の代替CPB削除オフセットシンタックス要素(例えば、nal_initial_alt_cross_layer_cpb_removal_offset)がSEIメッセージ内に存在するかどうかを指定する、第1のシンタックス要素(例えば、irap_cross_layer_cpb_params_present_flag)を含むSEIメッセージを生成する。第2の代替CPB削除遅延シンタックス要素は、VCL HRDパラメータが使用されているときのCPBについての代替初期CPB削除遅延を指定することができる。第3の代替CPB削除オフセットシンタックス要素は、VCL HRDパラメータが使用されているときのCPBについての代替初期CPB削除オフセットを指定する。SEIメッセージは、IRAPアクセス単位と関連付けられたCL−RASピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出において使用されるべきオフセットを指定する、CPBクロスレイヤ遅延オフセットシンタックス要素を含む。SEIメッセージは、IRAPアクセス単位と関連付けられたCL−RASピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位のDPB出力時間の導出において使用されるべきオフセットを指定する、DPBクロスレイヤ遅延オフセットシンタックス要素を含む。
[0167]更に、本開示の技法の例の第1のセットでは、HEVCワーキングドラフト10の付録Cに対して、以下の変更が行われ得る。
この付録は、仮想参照デコーダ(HRD)と、ビットストリーム及びデコーダの適合性を検査するその使用法とを規定する。
2つのタイプのビットストリーム又はビットストリームサブセットは、この仕様についてのHRD適合性検査の対象となる。タイプIビットストリームと呼ばれる第1のタイプは、ビットストリーム内に、VCL NAL単位、及び全てのアクセス単位用のFD_NUT(フィラーデータNAL単位)に等しいnal_unit_typeを有するNAL単位のみを含んでいるNAL単位ストリームである。タイプIIビットストリームと呼ばれる第2のタイプは、ビットストリーム内のVCL NAL単位及び全てのアクセス単位用のフィラーデータNAL単位に加えて、以下の少なくとも1つを含んでいる。
−フィラーデータNAL単位以外のさらなる非VCL NAL単位
−(付録Bに規定された)NAL単位ストリームからバイトストリームを形成するleading_zero_8bits、zero_byte、start_code_prefix_one_3bytes、及びtrailing_zero_8bitsの全てのシンタックス要素
図C−1は、HRDによって検査されるビットストリーム適合点のタイプを示す。
HRDに必要な非VCL NAL単位のシンタックス要素(又はシンタックス要素のうちの幾つかについてのそれらのデフォルト値)が、節7のセマンティクス項、付録D、及び付録Eに規定されている。
2つのタイプのHRDパラメータセット(NAL HRDパラメータ及びVCL HRDパラメータ)が使用される。HRDパラメータセットは、SPSシンタックス構造又はVPSシンタックス構造の一部であり得るhrd_parameters()シンタックス構造を介して信号伝達される。
検査対象のビットストリームと呼ばれるビットストリームの適合性を検査するために、複数の検査が必要とされる場合がある。検査ごとに、以下のステップが列挙された順序で適用される。
1.TargetOpと表記される検査対象の動作点が選択される。TargetOpのレイヤ識別子リストOpLayerIdListは、TargetOpと関連付けられたビットストリームサブセット内に存在する、nuh_layer_id値の昇順でnuh_layer_id値のリストからなり、このnuh_layer_id値は、検査対象のビットストリーム内に存在するnuh_layer_id値のサブセットである。TargetOpのOpTidは、TargetOpと関連付けられたビットストリームサブセット内に存在する最も高いTemporalIdに等しい。
2.TargetDecLayerIdListはTargetOpのOpLayerIdListに等しいように設定され、HighestTidはTargetOpのOpTidに等しいように設定され、節10に規定されたサブビットストリーム抽出プロセスは、検査対象のビットストリーム、HighestTid、TargetDecLayerIdListを入力として起動され、出力はBitstreamToDecodeに割り当てられる。
3.TargetOpに適用可能なhrd_parameters()シンタックス構造及びsub_layer_hrd_parameters()シンタックス構造が選択される。TargetDecLayerIdSetが、検査対象のビットストリーム内に存在する全てのnuh_layer_id値を含んでいる場合、アクティブSPS内の(又は、本仕様において指定されていない外部手段を介して与えられる)hrd_parameters()シンタックス構造が選択される。そうでない場合、TargetOpに適用されるアクティブVPS内の(又は、本仕様において指定されていない何らかの外部手段を介して与えられる)hrd_parameters()シンタックス構造が選択される。選択されたhrd_parameters()シンタックス構造内で、BitstreamToDecodeがタイプIビットストリームである場合、条件「if(vcl_hrd_parameters_present_flag)」の直後に続くsub_layer_hrd_parameters(HighestTid)シンタックス構造が選択され、変数NalHrdModeFlagは0に等しいように設定され、そうでない(BitstreamToDecodeがタイプIIビットストリームである)場合、条件「if(vcl_hrd_parameters_present_flag)」(この場合、変数NalHrdModeFlagは0に等しいように設定される)又は条件「if(nal_hrd_parameters_present_flag)」(この場合、変数NalHrdModeFlagは1に等しいように設定される)のいずれかの直後に続くsub_layer_hrd_parameters(HighestTid)シンタックス構造が選択される。BitstreamToDecodeがタイプIIビットストリームであり、NalHrdModeFlagが0に等しいとき、フィラーデータNAL単位を除く全ての非VCL NAL単位、及び(付録Bで規定された)NAL単位ストリームからバイトストリームを形成するleading_zero_8bits、zero_byte、start_code_prefix_one_3bytes、及びtrailing_zero_8bitsの全てのシンタックス要素は、存在するとき、BitstreamToDecodeから廃棄され、残りのビットストリームがBitstreamToDecodeに割り当てられる。
4.TargetOpに適用可能な(BitstreamToDecode内に存在するか、又は本仕様において指定されていない外部手段を介して利用可能である)バッファリング期間SEIメッセージと関連付けられたアクセス単位が、HRD初期化点として選択され、アクセス単位0と呼ばれる。
5.アクセス単位0から始まるBitstreamToDecode内のアクセス単位ごとに、アクセス単位と関連付けられ、TargetOpに適用される(BitstreamToDecode内に存在するか、又は本仕様において指定されていない外部手段を介して利用可能である)バッファリング期間SEIメッセージが選択され、アクセス単位と関連付けられ、TargetOpに適用される(BitstreamToDecode内に存在するか、又は本仕様において指定されていない外部手段を介して利用可能である)ピクチャタイミングSEIメッセージが選択され、SubPicHrdFlagが1に等しく、sub_pic_cpb_params_in_pic_timing_sei_flagが0に等しいとき、アクセス単位内の復号単位と関連付けられ、TargetOpに適用される(BitstreamToDecode内に存在するか、又は本仕様において指定されていない外部手段を介して利用可能である)復号単位情報SEIメッセージが選択される。
6.SchedSelIdxの値が選択される。選択されたSchedSelIdxは、両端値を含む0〜cpb_cnt_minus1[HighestTid]の範囲内であるものとし、ここで、cpb_cnt_minus1[HighestTid]は、上記で選択されたsub_layer_hrd_parameters(HighestTid)シンタックス構造内に見い出される。
7.アクセス単位0内のコード化ピクチャがCRA_NUT又はBLA_W_LPに等しいnal_unit_typeを有し、選択されたバッファリング期間SEIメッセージ内のirap_cpb_params_present_flagが1に等しいとき、初期CPB削除遅延及び初期CPB削除遅延オフセットの選択に、以下のいずれかが適用される。
−NalHrdModeFlagが1に等しい場合、選択されたバッファリング期間SEIメッセージ内で、それぞれnal_initial_cpb_removal_delay[SchedSelIdx]及びnal_initial_cpb_removal_offset[SchedSelIdx]によって表される、デフォルト初期CPB削除遅延及びデフォルト初期CPB削除遅延オフセットが選択される。−そうでない場合、選択されたバッファリング期間SEIメッセージ内で、それぞれvcl_initial_cpb_removal_delay[SchedSelIdx]及びvcl_initial_cpb_removal_offset[SchedSelIdx]によって表される、デフォルト初期CPB削除遅延及びデフォルト初期CPB削除遅延オフセットが選択される。変数DefaultInitCpbParamsFlagが1に等しいように設定される。
−NalHrdModeFlagが1に等しい場合、選択されたバッファリング期間SEIメッセージ内で、それぞれnal_initial_alt_cpb_removal_delay[SchedSelIdx]及びnal_initial_alt_cpb_removal_offset[SchedSelIdx]によって表される、代替初期CPB削除遅延及び代替初期CPB削除遅延オフセットが選択される。−そうでない場合、選択されたバッファリング期間SEIメッセージ内で、それぞれvcl_initial_alt_cpb_removal_delay[SchedSelIdx]及びvcl_initial_alt_cpb_removal_offset[SchedSelIdx]によって表される、代替初期CPB削除遅延及び代替初期CPB削除遅延オフセットが選択される。変数DefaultInitCpbParamsFlagが0に等しいように設定され、アクセス単位0と関連付けられたRASLアクセス単位がBitstreamToDecodeから廃棄され、残りのビットストリームがBitstreamToDecodeに割り当てられる。
−NalHrdModeFlagが1に等しい場合、選択されたバッファリング期間SEIメッセージ内で、それぞれnal_initial_alt_cross_layer_cpb_removal_delay[SchedSelIdx]及びnal_initial_alt_cross_layer_cpb_removal_offset[SchedSelIdx]によって表される、代替初期CPB削除遅延及び代替初期CPB削除遅延オフセットが選択される。−そうでない場合、選択されたバッファリング期間SEIメッセージ内で、それぞれvcl_initial_alt_cross_layer_cpb_removal_delay[SchedSelIdx]及びvcl_initial_alt_cross_layer_cpb_removal_offset[SchedSelIdx]によって表される、代替初期CPB削除遅延及び代替初期CPB削除遅延オフセットが選択される。変数DefaultInitCpbParamsFlagが0に等しいように設定され、アクセス単位0と関連付けられたCL−RASピクチャがBitstreamToDecodeから廃棄され、残りのビットストリームがBitstreamToDecodeに割り当てられる。
8.選択されたhrd_parameters()シンタックス構造内のsub_pic_hrd_params_present_flagが1に等しいとき、アクセス単位レベル(その場合、変数SubPicHrdFlagは0に等しいように設定される)又はサブピクチャレベル(その場合、変数SubPicHrdFlagは1に等しいように設定される)のいずれかにおいて動作するように、CPBがスケジュールされる。
検査対象の動作点ごとに、実行されるべきビットストリーム適合性検査の数は、n0*n1*(n2*2+n3)*n4に等しく、ここで、n0、n1、n2、n3、及びn4の値は次のように指定される。
−n0は次のように導出される。
−BitstreamToDecodeがタイプIビットストリームである場合、n0は1に等しい。
−そうでない(BitstreamToDecodeがタイプIIビットストリームである)場合、n0は2に等しい。
−n1はcpb_cnt_minus1[HighestTid]+1に等しい。
−n2は、各々がTargetOpに適用可能なバッファリング期間SEIメッセージと関連付けられ、それらの各々について以下の条件の両方が真である、BitstreamToDecode内のアクセス単位の数である。
−VCL NAL単位についてのnal_unit_typeがCRA_NUT又はBLA_W_LPに等しい。
−TargetOpに適用可能な関連するバッファリング期間SEIメッセージが、1に等しいirap_cpb_params_present_flagを有する。
−n3は、各々がTargetOpに適用可能なバッファリング期間SEIメッセージと関連付けられ、それらの各々について以下の条件の一方又は両方が真である、BitstreamToDecode BitstreamToDecode内のアクセス単位の数である。
−VCL NAL単位についてのnal_unit_typeがCRA_NUTにもBLA_W_LPにも等しくない。
−TargetOpに適用可能な関連するバッファリング期間SEIメッセージが、0に等しいirap_cpb_params_present_flagを有する。
−n4は次のように導出される。
−選択されたhrd_parameters()シンタックス構造内のsub_pic_hrd_params_present_flagが0に等しい場合、n4は1に等しい。
−そうでない場合、n4は2に等しい。
BitstreamToDecodeがタイプIIビットストリームである場合、以下のことが当てはまる。
−条件「if(vcl_hrd_parameters_present_flag)」の直後に続くsub_layer_hrd_parameters(HighestTid)シンタックス構造が選択された場合、検査は図C−1に示されたタイプIの適合点において行われ、VCL NAL単位及びフィラーデータNAL単位のみが、入力ビットレート及びCPBストレージのために考慮される。
−そうでない(条件「if(nal_hrd_parameters_present_flag)」の直後に続くsub_layer_hrd_parameters(HighestTid)シンタックス構造が選択された)場合、検査は図C−1に示されたタイプIIの適合点において行われ、NAL単位ストリーム又はバイトストリームであり得るタイプIIビットストリームの全てのバイトが、入力ビットレート及びCPBストレージのために考慮される。
注1−図C−1に示されたタイプIIの適合点についてSchedSelIdxの値によって確立されたNAL HRDパラメータは、VBRケース(0に等しいcbr_flag[SchedSelIdx])の場合のInitCpbRemovalDelay[SchedSelIdx]、BitRate[SchedSelIdx]、及びCpbSize[SchedSelIdx]の同じ値の場合に、図C−1に示されたタイプIの適合点についてVCL HRDの適合性を確立するためにも十分である。これは、タイプIの適合点へのデータフローがタイプIIの適合点へのデータフローのサブセットであるからであり、VBRケースの場合、CPBが空になり、次のピクチャが到達し始めるようにスケジュールされた時間まで空のままでいるからである。例えば、2〜10節において規定された復号プロセスを使用して付録Aにおいて規定されたプロファイルのうちの1つ又は複数に適合するCVSを復号するとき、A.4.2項の項目fにおけるプロファイル適合性のためのNAL HRDパラメータ用に設定された境界内に入るだけでなく、A.4.2項の項目e)におけるプロファイル適合性のためのNAL HRDパラメータ用に設定された境界内にも入るNAL HRDパラメータがタイプIIの適合点に提供されたとき、タイプIの適合点についてのVCL HRDの適合性がA.4.2項の項目e)の境界内に入ることも保証される。
VCL NAL単位内で参照される全てのVPS、SPS、及びPPS、ならびに対応するバッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、及び復号単位情報SEIメッセージは、(非VCL NAL単位により)ビットストリーム内で、又は本仕様において指定されていない他の手段によるのいずれかで、適時に、HRDに搬送されるものとする。
付録C、D、及びEにおいて、VPS、SPS、PPS、バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、又は復号単位情報SEIメッセージを含んでいる非VCL NAL単位の「存在」についての仕様は、それらのNAL単位(又はそれらのうちの幾つかだけ)が本仕様において指定されていない他の手段によってデコーダ(又はHRD)に搬送されるときも満足される。ビットをカウントする目的で、ビットストリーム内に実際の存在する適切なビットのみがカウントされる。
注2−例として、ビットストリーム内の存在以外の手段によって搬送されたそのような非VCL NAL単位の、ビットストリーム内に存在するNAL単位との同期は、その間で非VCL NAL単位がビットストリーム内に存在していたはずであり、ビットストリーム内でそれを搬送するようにエンコーダに決定させた、ビットストリーム内の2つのポイントを示すことによって実現され得る。
そのような非VCL NAL単位の内容がビットストリーム内の存在以外の何らかの手段によってアプリケーションに搬送されたとき、非VCL NAL単位の内容の表現は、本仕様に規定されたシンタックスと同じシンタックスを使用する必要はない。
注3−HRD情報がビットストリーム内に含まれているとき、ビットストリーム内に含まれている情報のみに基づいて、この項の要件に対するビットストリームの適合性を検証することが可能である。全ての「スタンドアロン」のタイプIビットストリームの場合と同様に、HRD情報がビットストリーム内に含まれていないとき、本仕様において指定されていない何らかの他の手段によってHRDデータが供給されるときのみ、適合性が検証され得る。
HRDは、図C−2に示されたように、コード化ピクチャバッファ(CPB)と、瞬時復号プロセスと、復号ピクチャバッファ(DPB)と、出力クロッピングとを含んでいる。
各ビットストリーム適合性検査について、CPBサイズ(ビットの数)はE.2.3項に規定されたCpbSize[SchedSelIdx]であり、ここで、SchedSelIdx及びHRDパラメータは、この項の上記で規定される。DPBサイズ(ピクチャ記憶バッファの数)は、sps_max_dec_pic_buffering_minus1[HighestTid]+1である。
変数SubPicHrdPreferredFlagは、外部手段によって指定されるか、又は外部手段によって指定されないとき0に等しいように設定されるかのいずれかである。
変数SubPicHrdFlagの値がこの項の上記ステップ8によって設定されなかったとき、それは次のように導出される。
SubPicHrdFlagが0に等しい場合、HRDはアクセス単位レベルで動作し、各復号単位はアクセス単位である。そうでない場合、HRDはサブピクチャレベルで動作し、各復号単位はアクセス単位のサブセットである。
注4−HRDがアクセス単位レベルで動作する場合、毎回、アクセス単位全体である復号単位がCPBから削除される。そうでない(HRDがサブピクチャレベルで動作する)場合、毎回、アクセス単位のサブセットである復号単位がCPBから削除される。どちらの場合も、毎回、復号ピクチャ全体がDPBから出力されるが、ピクチャ出力時間は、異なるように導出されたCPN削除時間及び異なるように信号伝達されたDPB出力遅延に基づいて導出される。
この付録における制約を表現するために次のことが規定される。
−各アクセス単位はアクセス単位nと呼ばれ、ここで、数nは特定のアクセス単位を識別する。アクセス単位0は上記のステップ4に従って選択される。nの値は、復号順序で後続のアクセス単位ごとに1だけ増分される。
−各復号単位は復号単位mと呼ばれ、ここで、数mは特定の復号単位を識別する。アクセス単位0内の復号順序で最初の復号単位は、復号単位0と呼ばれる。mの値は、復号順序で後続の復号単位ごとに1だけ増分される。
注5−復号単位の番号付けは、アクセス単位0内の最初の復号単位を基準とする。
−ピクチャnは、コード化ピクチャ、又はアクセス単位nの復号ピクチャを指す。
HRDは次のように動作する。
−復号単位0においてHRDが初期化され、CPBとDPBの両方が空になるように設定される(DPBフルネスが0に等しいように設定される)。
注6−初期化後、HRDは後続のバッファリング期間SEIメッセージによって再び初期化されない。
−指定された到達スケジュールに従ってCPBに流れる復号単位と関連付けられたデータが、HSSによって配信される。
−各復号単位と関連付けられたデータが、復号単位のCPB削除時間において瞬時復号プロセスによって瞬時に削除され復号される。
−各復号ピクチャがDPB内に配置される。
−復号ピクチャがインター予測参照にもはや必要ではなくなり、出力にもはや必要でなくなったとき、復号ピクチャがDPBから削除される。
各ビットストリーム適合性検査について、CPBの動作がC.2項に規定され、瞬時デコーダ動作が2〜10節に規定され、DPBの動作がC.3項に規定され、出力クロッピングがC.3.3項及びC.5.2.2項に規定される。
列挙された配信スケジュールの数、ならびにそれらの関連するビットレート及びバッファサイズに関するHSS及びHRDの情報が、E.1.2項及びE.2.2項に規定される。HRDは、D.2.2項及びD.3.2項に規定されたバッファリング期間SEIメッセージによって指定されたように初期化される。CPBからの復号単位の削除タイミング及びDPBからの復号ピクチャの出力タイミングは、(D.2.3項及びD.3.3項に規定された)ピクチャタイミングSEIメッセージ内、又は(D.2.21項及びD.3.21項に規定された)復号単位情報SEIメッセージ内の情報を使用して指定される。固有の復号単位に関係する全てのタイミング情報は、復号単位のCPB削除時間よりも前に到達するものとする。
ビットストリーム適合性に対する要件はC.4項に規定され、HRDは、この項の上記で規定されたようにビットストリームの適合性を検査するため、及びC.5項に規定されたようにデコーダの適合性を検査するために使用される。
注7−ビットストリームを生成するために使用される全てのピクチャレート及びクロックがビットストリーム内で信号伝達された値と正確に一致するとの仮定の下で適合性が保証されるが、実際のシステムでは、これらの各々は信号伝達又は指定された値から変化する可能性がある。
この付録の中の全ての演算は、丸め誤差が伝搬し得ないように実数値で実行される。例えば、復号単位の削除の直前又は直後のCPB内のビット数は、必ずしも整数であるとは限らない。
変数ClockTickは、次のように導出され、クロックティックと呼ばれる。
変数ClockSubTickは、次のように導出され、クロックサブティックと呼ばれる。
C.2 コード化ピクチャバッファ(CPB)の動作
C.2.1 概要
この項の仕様は、存在するCPBパラメータの各セットに、及び図C−1に示されたタイプIの適合点とタイプIIの適合点の両方に別個に適用され、CPBパラメータセットはC.1項に規定されたように選択される。
C.2.2 復号単位到達のタイミング
SubPicHrdFlagが0に等しい場合、変数SubPicParamsFlagは0に等しいように設定され、この項の残りに規定されたプロセスインは、アクセス単位nについての初期CPB到達時間と最終CPB到達時間とを導出するために、アクセス単位として考えられている復号単位で起動される。
そうでない(SubPicHrdFlagが1に等しい)場合、この項の残りに規定されたプロセスインは、最初に、アクセス単位nについての初期CPB到達時間と最終CPB到達時間とを導出するために、0に等しいように設定された変数subPicParamsFlag及びアクセス単位として考えられている復号単位で起動され、次いで、アクセス単位n内の復号単位についての初期CPB到達時間と最終CPB到達時間とを導出するために、1に等しいように設定された変数subPicParamsFlag及びアクセス単位のサブセットとして考えられている復号単位で起動される。
変数InitCpbRemovalDelay[SchedSelIdx]及びInitCpbRemovalDelayOffset[SchedSelIdx]は次のように導出される。
−以下の条件のうちの1つ又は複数が真である場合、InitCpbRemovalDelay[SchedSelIdx]及びInitCpbRemovalDelayOffset[SchedSelIdx]は、NalHrdModeFlagが1に等しいとき、それぞれ、バッファリング期間SEIメッセージのシンタックス要素nal_initial_alt_cpb_removal_delay[SchedSelIdx]及びnal_initial_alt_cpb_removal_offset[SchedSelIdx]の値に等しいように設定されるか、又はNalHrdModeFlagが0に等しいとき、それぞれ、vcl_initial_alt_cpb_removal_delay[SchedSelIdx]及びvcl_initial_alt_cpb_removal_offset[SchedSelIdx]の値に等しいように設定され、ここで、バッファリング期間SEIメッセージのシンタックス要素はC.1項に規定されたように選択される。
−アクセス単位0は、そのためにコード化ピクチャがBLA_W_RADL又はBLA_N_LPに等しいnal_unit_typeを有するBLAアクセス単位であり、バッファリング期間SEIメッセージのirap_cpb_params_present_flagの値は1に等しい。
−アクセス単位0は、そのためにコード化ピクチャがBLA_W_LPに等しいnal_unit_typeを有するBLAアクセス単位であるか、又はCRAアクセス単位であり、バッファリング期間SEIメッセージのirap_cpb_params_present_flagの値は1に等しく、以下の条件のうちの1つ又は複数は真である。
−アクセス単位0についてのUseAltCpbParamsFlagが1に等しい。
−DefaultInitCpbParamsFlagが0に等しい。
−subPicParamsFlagの値が1に等しい。
−そうではなく、アクセス単位0が初期IRAPアクセス単位であり、NoClRasPicPresentFlagの値が1に等しく、バッファリング期間SEIメッセージのirap_cross_layer_cpb_params_present_flagが1に等しい場合、InitCpbRemovalDelay[SchedSelIdx]及びInitCpbRemovalDelayOffset[SchedSelIdx]は、NalHrdModeFlagが1に等しいとき、それぞれ、バッファリング期間SEIメッセージのシンタックス要素nal_initial_alt_cross_layer_cpb_removal_delay[SchedSelIdx]及びnal_initial_alt_cross_layer_cpb_removal_offset[SchedSelIdx]の値に等しいように設定されるか、又はNalHrdModeFlagが0に等しいとき、それぞれ、vcl_initial_alt_cross_layer_cpb_removal_delay[SchedSelIdx]及びvcl_initial_alt_cross_layer_cpb_removal_offset[SchedSelIdx]の値に等しいように設定され、ここで、シンタックス要素を含んでいるバッファリング期間SEIメッセージはC.1項に規定されたように選択される。
−そうでない場合、InitCpbRemovalDelay[SchedSelIdx]及びInitCpbRemovalDelayOffset[SchedSelIdx]は、NalHrdModeFlagが1に等しいとき、それぞれ、バッファリング期間SEIメッセージのシンタックス要素nal_initial_cpb_removal_delay[SchedSelIdx]及びnal_initial_cpb_removal_offset[SchedSelIdx]の値に等しいように設定されるか、又はNalHrdModeFlagが0に等しいとき、それぞれ、vcl_initial_cpb_removal_delay[SchedSelIdx]及びvcl_initial_cpb_removal_offset[SchedSelIdx]の値に等しいように設定され、ここで、バッファリング期間SEIメッセージのシンタックス要素はC.1項に規定されたように選択される。
復号単位mの最初のビットがCPBに入り始める時間は、初期到達時間initArrivalTime[m]と呼ばれる。
復号単位mの初期到達時間は次のように導出される。
−復号単位が復号単位0(即ち、m=0)である場合、initArrivalTime[0]=0である。
−そうでない(復号単位が復号単位mであり、m>0である)場合、以下のことが当てはまる。
−cbr_flag[SchedSelIdx]が1に等しい場合、復号単位mについての初期到達時間は、復号単位m−1の(以下で導出される)最終到達時間に等しい、即ち、
−そうでない(cbr_flag[SchedSelIdx]が0に等しい)場合、復号単位mについての初期到達時間は、次のように導出される。
ここで、initArrivalEarliestTime[m]は次のように導出される。
−変数tmpNominalRemovalTimeが次のように導出される。
ここで、AuNominalRemovalTime[m]及びDuNominalRemovalTime[m]は、それぞれ、C.2.3項に規定されたアクセス単位m及び復号単位mの名目CPB削除時間である。
−復号単位mが後続のバッファリング期間の最初の復号単位ではない場合、initArrivalEarliestTime[m]は次のように導出される。
−そうでない(復号単位mが後続のバッファリング期間の最初の復号単位である)場合、initArrivalEarliestTime[m]は次のように導出される。
復号単位mについての最終到達時間は次のように導出される。
ここで、sizeInbits[m]は復号単位mのビットのサイズであり、タイプIの適合点の場合、VCL NAL単位及びフィラーデータNAL単位のビットをカウントし、又はタイプIIの適合点の場合、タイプIIビットストリームの全てのビットをカウントし、ここでタイプI及びタイプIIの適合点は図C−1に示される。
SchedSelIdx、BitRate[SchedSelIdx]、及びCpbSize[SchedSelIdx]の値は、次のように制約される。
−復号単位mを含んでいるアクセス単位と前のアクセス単位のために選択されたhrd_parameters()シンタックス構造の内容が異なる場合、HSSは、復号単位mを含んでいるアクセス単位のために選択されたhrd_parameters()シンタックス構造内で与えられたSchedSelIdxの値の中から、復号単位mを含んでいるアクセス単位のためにBitRate[SchedSelIdx1]又はCpbSize[SchedSelIdx1]をもたらす、SchedSelIdxの値SchedSelIdx1を選択する。BitRate[SchedSelIdx1]又はCpbSize[SchedSelIdx1]の値は、前のアクセス単位のために使用されたSchedSelIdxの値SchedSelIdx0についてのBitRate[SchedSelIdx0]又はCpbSize[SchedSelIdx0]の値とは異なる場合がある。
−そうでない場合、HSSは、SchedSelIdx、BitRate[SchedSelIdx]、及びCpbSize[SchedSelIdx]の前の値で動作し続ける。
HSSが前のアクセス単位のBitRate[SchedSelIdx]又はCpbSize[SchedSelIdx]の値とは異なるBitRate[SchedSelIdx]又はCpbSize[SchedSelIdx]の値を選択するとき、以下のことが当てはまる。
−変数BitRate[SchedSelIdx]が現在アクセス単位の初期CPB到達時間において効力を生じる。
−変数CpbSize[SchedSelIdx]が次のように効力を生じる。
−CpbSize[SchedSelIdx]の新しい値が古いCPBサイズよりも大きい場合、それは現在アクセス単位の初期CPB到達時間において効力を生じる。
−そうでない場合、CpbSize[SchedSelIdx]の新しい値は、現在アクセス単位のCPB削除時間において効力を生じる。
C.2.3 復号単位削除及び復号単位の復号のタイミング
変数InitCpbRemovalDelay[SchedSelIdx]、InitCpbRemovalDelayOffset[SchedSelIdx]、CpbDelayOffset、及びDpbDelayOffsetは次のように導出される。
−以下の条件のうちの1つ又は複数が真である場合、CpbDelayOffsetは、バッファリング期間SEIメッセージのシンタックス要素cpb_delay_offsetの値に等しいように設定され、DpbDelayOffsetは、バッファリング期間SEIメッセージのシンタックス要素dpb_delay_offsetの値に等しいように設定され、InitCpbRemovalDelay[SchedSelIdx]及びInitCpbRemovalDelayOffset[SchedSelIdx]は、NalHrdModeFlagが1に等しいとき、それぞれ、バッファリング期間SEIメッセージのシンタックス要素nal_initial_alt_cpb_removal_delay[SchedSelIdx]及びnal_initial_alt_cpb_removal_offset[SchedSelIdx]の値に等しいように設定されるか、又はNalHrdModeFlagが0に等しいとき、それぞれ、vcl_initial_alt_cpb_removal_delay[SchedSelIdx]及びvcl_initial_alt_cpb_removal_offset[SchedSelIdx]の値に等しいように設定され、ここで、シンタックス要素を含んでいるバッファリング期間SEIメッセージはC.1項に規定されたように選択される。
−アクセス単位0は、そのためにコード化ピクチャがBLA_W_RADL又はBLA_N_LPに等しいnal_unit_typeを有するBLAアクセス単位であり、バッファリング期間SEIメッセージのirap_cpb_params_present_flagの値は1に等しい。
−アクセス単位0は、そのためにコード化ピクチャがBLA_W_LPに等しいnal_unit_typeを有するBLAアクセス単位であるか、又はCRAアクセス単位であり、バッファリング期間SEIメッセージのirap_cpb_params_present_flagの値は1に等しく、以下の条件のうちの1つ又は複数は真である。
−アクセス単位0についてのUseAltCpbParamsFlagが1に等しい。
−DefaultInitCpbParamsFlagが0に等しい。
−そうではなく、アクセス単位0が初期IRAPアクセス単位であり、NoClRasPicPresentFlagの値が1に等しく、バッファリング期間SEIメッセージのirap_cross_layer_cpb_params_present_flagが1に等しい場合、CpbDelayOffsetは、バッファリング期間SEIメッセージのシンタックス要素cpb_cross_layer_delay_offsetの値に等しいように設定され、DpbDelayOffsetは、バッファリング期間SEIメッセージのシンタックス要素dpb_cross_layer_delay_offsetの値に等しいように設定され、InitCpbRemovalDelay[SchedSelIdx]及びInitCpbRemovalDelayOffset[SchedSelIdx]は、NalHrdModeFlagが1に等しいとき、それぞれ、バッファリング期間SEIメッセージのシンタックス要素nal_initial_alt_cross_layer_cpb_removal_delay[SchedSelIdx]及びnal_initial_alt_cross_layer_cpb_removal_offset[SchedSelIdx]の値に等しいように設定されるか、又はNalHrdModeFlagが0に等しいとき、それぞれ、vcl_initial_alt_cross_layer_cpb_removal_delay[SchedSelIdx]及びvcl_initial_alt_cross_layer_cpb_removal_offset[SchedSelIdx]の値に等しいように設定され、ここで、シンタックス要素を含んでいるバッファリング期間SEIメッセージはC.1項に規定されたように選択される。
−そうでない場合、InitCpbRemovalDelay[SchedSelIdx]及びInitCpbRemovalDelayOffset[SchedSelIdx]は、NalHrdModeFlagが1に等しいとき、それぞれ、バッファリング期間SEIメッセージのシンタックス要素nal_initial_cpb_removal_delay[SchedSelIdx]及びnal_initial_cpb_removal_offset[SchedSelIdx]の値に等しいように設定されるか、又はNalHrdModeFlagが0に等しいとき、それぞれ、vcl_initial_cpb_removal_delay[SchedSelIdx]及びvcl_initial_cpb_removal_offset[SchedSelIdx]の値に等しいように設定され、ここで、シンタックス要素を含んでいるバッファリング期間SEIメッセージはC.1項に規定されたように選択され、CpbDelayOffset及びDpbDelayOffsetは両方とも0に等しいように設定される。
CPBからのアクセス単位nの名目削除時間は次のように指定される。
−アクセス単位nが、nが0に等しいアクセス単位(HRDを初期化するアクセス単位)である場合、CPBからのアクセス単位の名目削除時間は、
によって指定される。
−そうでない場合、以下のことが当てはまる。
−アクセス単位nが、HRDを初期化しないバッファリング期間の最初のアクセス単位であるとき、以下のことが当てはまる。
によって指定される。
ここで、AuNominalRemovalTime[firstPicInPrevBuffPeriod]は、前のバッファリング期間の最初のアクセス単位の名目削除時間であり、AuNominalRemovalTime[prevNonDiscardablePic]は、RASL、RADL、又はサブレイヤ非参照ピクチャではない、0に等しいTemporalIdを有する、復号順序で先行するピクチャの名目削除時間であり、AuCpbRemovalDelayValは、C.1項に規定されたように選択され、アクセス単位nと関連付けられた、ピクチャタイミングSEIメッセージ内のau_cpb_removal_delay_minus1に従って導出されたAuCpbRemovalDelayValの値であり、concatenationFlag及びauCpbRemovalDelayDeltaMinus1は、それぞれ、C.1項に規定されたように選択され、アクセス単位nと関連付けられた、バッファリング期間SEIメッセージ内のシンタックス要素concatenation_flag及びau_cpb_removal_delay_delta_minus1の値である。
アクセス単位nの名目CPB削除時間の導出後、及びDPB出力時間の導出前に、CpbDelayOffset及びDpbDelayOffsetの値は次のように更新される。
−以下の条件のうちの1つ又は複数が真である場合、CpbDelayOffsetは、バッファリング期間SEIメッセージのシンタックス要素cpb_delay_offsetの値に等しいように設定され、DpbDelayOffsetは、バッファリング期間SEIメッセージのシンタックス要素dpb_delay_offsetの値に等しいように設定され、ここで、シンタックス要素を含んでいるバッファリング期間SEIメッセージはC.1項に規定されたように選択される。
−アクセス単位nは、そのためにコード化ピクチャがBLA_W_RADL又はBLA_N_LPに等しいnal_unit_typeを有するBLAアクセス単位であり、バッファリング期間SEIメッセージのirap_cpb_params_present_flagの値は1に等しい。
−アクセス単位nは、そのためにコード化ピクチャがBLA_W_LPに等しいnal_unit_typeを有するBLAアクセス単位であるか、又はCRAアクセス単位であり、バッファリング期間SEIメッセージのirap_cpb_params_present_flagの値が1に等しく、アクセス単位nについてのUseAltCpbParamsFlagが1に等しい。
−そうではなく、アクセス単位nが初期IRAPアクセス単位であり、NoClrasPicPresentFlagの値が1に等しく、バッファリング期間SEIメッセージのirap_cross_layer_cpb_params_present_flagが1に等しい場合、CpbDelayOffsetは、バッファリング期間SEIメッセージのシンタックス要素cpb_cross_layer_delay_offsetの値に等しいように設定され、DpbDelayOffsetは、バッファリング期間SEIメッセージのシンタックス要素dpb_cross_layer_delay_offsetの値に等しいように設定され、ここで、シンタックス要素を含んでいるバッファリング期間SEIメッセージはC.1項に規定されたように選択される。
−そうでない場合、CpbDelayOffset及びDpbDelayOffsetは、両方とも0に等しいように設定される。
−アクセス単位nがバッファリング期間の最初のアクセス単位ではないとき、CPBからのアクセス単位nの名目削除時間は、
によって指定される。
ここで、AuNominalRemovalTime[firstPicInCurrBuffPeriod]は、現在のバッファリング期間の最初のアクセス単位の名目削除時間であり、AuCpbRemovalDelayValは、アクセス単位nと関連付けられた、C.1項に規定されたように選択された、ピクチャタイミングSEIメッセージ内のau_cpb_removal_delay_minus1に従って導出されたAuCpbRemovalDelayValの値である。
SubPicHrdFlagが1に等しいとき、以下のことが当てはまる。
−変数duCpbRemovalDelayIncが次のように導出される。
−sub_pic_cpb_params_in_pic_timing_sei_flagが0に等しい場合、duCpbRemovalDelayIncは、復号単位mと関連付けられた、C.1項に規定されたように選択された、復号単位情報SEIメッセージ内のdu_spt_cpb_removal_delay_incrementの値に等しいように設定される。
−そうではなく、du_common_cpb_removal_delay_flagが0に等しい場合、duCpbRemovalDelayIncは、アクセス単位nと関連付けられた、C.1項に規定されたように選択された、ピクチャタイミングSEIメッセージ内の復号単位mのためのdu_cpb_removal_delay_increment_minus1[i]+1の値に等しいように設定され、ここで、iの値は、復号単位mを含んでいるアクセス単位内の最初のnum_nalus_in_du_minus1[0]+1個の連続するNAL単位の場合は0であり、同じアクセス単位内の後続のnum_nalus_in_du_minus1[1]+1個のNAL単位の場合は1であり、同じアクセス単位内の後続のnum_nalus_in_du_minus1[2]+1個のNAL単位の場合は2である、などである。
−そうでない場合、duCpbRemovalDelayIncは、アクセス単位nと関連付けられた、C.1項に規定されたように選択された、ピクチャタイミングSEIメッセージ内のdu_common_cpb_removal_delay_increment_minus1+1の値に等しいように設定される。
−CPBからの復号単位mの名目削除時間は次のように指定され、ここで、AuNominalRemovalTime[n]はアクセス単位nの名目削除時間である。
−復号単位mがアクセス単位n内の最後の復号単位である場合、復号単位mの名目削除時間DuNominalRemovalTime[m]は、AuNominalRemovalTime[n]に等しいように設定される。
−そうでない(復号単位mがアクセス単位n内の最後の復号単位ではない)場合、復号単位mの名目削除時間DuNominalRemovalTime[m]は、次のように導出される。
SubPicHrdFlagが0に等しい場合、CPBからのアクセス単位nの削除時間は次のように指定され、ここで、AuFinalArrivalTime[n]及びAuNominalRemovalTime[n]は、それぞれ、アクセス単位nの最終CPB到達時間及び名目CPB削除時間である。
注1−low_delay_hrd_flag[HighestTid]が1に等しく、AuNominalRemovalTime[n]がAUFinalArrivalTime[n]よりも小さいとき、アクセス単位nのサイズは、それが名目削除時間における削除を妨げるほど大きい。
そうでない(SubPicHrdFlagが1に等しい)場合、CPBからの復号単位mの削除時間は、次のように指定される。
注2−low_delay_hrd_flag[HighestTid]が1に等しく、DuNominalRemovalTime[m]がDuFinalArrivalTime[m]よりも小さいとき、復号単位mのサイズは、それが名目削除時間における削除を妨げるほど大きい。
SubPicHrdFlagが0に等しい場合、アクセス単位nのCPB削除時間において、アクセス単位は瞬時に復号される。
そうでない(SubPicHrdFlagが1に等しい)場合、復号単位mのCPB削除時間において、復号単位は瞬時に復号され、復号単位mがアクセス単位nの最後の復号単位であるとき、以下のことが当てはまる。
−ピクチャnは復号されたと考えられる。
−アクセス単位nの最終CPB到達時間、即ちAuFinalArrivalTime[n]は、アクセス単位n内の最後の復号単位の最終CPB到達時間、即ちDuFinalArrivalTime[m]に等しいように設定される。
−アクセス単位nの名目CPB削除時間、即ちAuNominalRemovalTime[n]は、アクセス単位n内の最後の復号単位の名目CPB削除時間、即ちDuNominalRemovalTime[m]に等しいように設定される。
−アクセス単位nのCPB削除時間、即ちAuCpbRemovalTime[m]は、アクセス単位n内の最後の復号単位の名目CPB削除時間、即ちDuCpbRemovalTime[m]に等しいように設定される。
[0168]上記でC.2.2節に対する変更に関して記載されたように、機器は、ある値(例えば、NoClRasPicPresentFlag)に部分的に基づいて、CPB動作を実行することができる。更に、上記でC.2.2節に対する変更に関して記載されたように、IRAPアクセス単位と関連付けられた全てのCL−RASピクチャがビデオデータビットストリーム内に存在するとは限らず、バッファリング期間SEIメッセージが、第2のシンタックス要素(例えば、nal_initial_alt_cross_layer_cpb_removal_delay)及び第3のシンタックス要素(例えば、nal_initial_alt_cross_layer_cpb_removal_offset)のバッファリング期間SEIメッセージ内の存在を指定する第1のシンタックス要素(例えば、irap_cross_layer_cpb_params_present_flag)を含むとき、機器は、CPB削除遅延を第2のシンタックス要素によって指定された代替削除遅延に設定することができる。加えて、機器は、CPB削除オフセットを第3のシンタックス要素によって指定された代替削除オフセットに設定することができる。
[0169]本開示の技法の例の第2のセットは、本開示の技法の例の第1のセットと同様である。しかしながら、本開示の技法の例の第2のセットでは、代替のシンタックス構造は、CL−RASピクチャの適合性を扱うHRDパラメータに使用される。場合によっては、例の第1及び第2のセットの1つ又は複数の例は、一緒に、又は個別に使用される場合がある。代替CPB削除オフセット及び代替DPB削除オフセットは、バッファリング期間SEIメッセージの代わりに、ピクチャタイミングSEIメッセージ内に導入される。また、初期IRAPアクセス単位の関連するCL−RASピクチャが削除されるとき使用され得るIRAPアクセス単位についてのビットレート及びCPBサイズの代替セットを定義する、さらなるSEIメッセージが規定される。このようにして、幾つかの例では、機器(例えば、ビデオエンコーダ20)は、初期IRAPアクセス単位のCL−RASピクチャが削除されるとき使用可能なIRAPアクセス単位についてのCPBサイズを定義する、SEIメッセージを生成することができる。
[0170]本開示の技法の例の第2のセットでは、HEVCワーキングドラフト10のピクチャタイミングSEIメッセージのシンタックスに対して、以下の変更が行われ得る。
[0171]幾つかの例では、irap_cross_layer_cpb_params_present_flagの信号伝達は、バッファリング期間SEIメッセージ内で個別に信号伝達される。更に、幾つかの例では、CL−RASピクチャを含み、CL−RASピクチャが存在するときと存在しないときの両方の場合に適切に動作するために1に等しいsub_pic_hrd_params_present_flagを有するビットストリーム用のサブピクチャHRD動作の場合、sub_pic_hrd_params_present_flagが1に等しいとき、復号単位(DU)レベルにおいて代替のCPBパラメータ及びDPBパラメータも信号伝達される。DUはアクセス単位のサブセットである(SubPicHrdFlagが0に等しいとき、DUはAU全体である)。
[0172]更に、本開示の技法の例の第2のセットによれば、HEVCワーキングドラフト10のピクチャタイミングSEIメッセージのセマンティクスが、次のように変更され得る。この例では、ピクチャタイミングSEIメッセージ内の残りのシンタックス要素のセマンティクスは、同じままであり得る。
1に等しいirap_cross_layer_cpb_params_present_flagは、initial_alt_cross_layer_cpb_removal_delay[i]シンタックス要素及びinitial_alt_cross_layer_cpb_removal_offset[i]シンタックス要素の存在を指定する。存在しないとき、irap_cross_layer_cpb_params_present_flagの値は、0に等しいと推論される。関連するピクチャがCRAピクチャでもBLAピクチャでもないとき、irap_cross_layer_cpb_params_present_flagの値は0に等しいものとする。
注2−sub_pic_hrd_params_present_flag、irap_cpb_params_present_flag、及びirap_cross_layer_cpb_params_present_flagの値のうちの2つ以上が1に等しいことはあり得ない。
au_cpb_removal_delay_minus1プラス1は、ピクチャタイミングSEIメッセージと関連付けられたアクセス単位の名目CPB削除時間と、バッファリング期間SEIメッセージを含んでいた復号順序で先行するアクセス単位の名目CPB削除時間との間のクロックティックの数を指定する。この値は、HSSのためのCPBへのアクセス単位データのできるだけ早い到達時間を計算するためにも使用される。そのシンタックス要素は、ビットの長さがau_cpb_removal_delay_length_minus1+1によって与えられる固定長コードである。
注6−シンタックス要素au_cpb_removal_delay_minus1の(ビットの)長さを決定するau_cpb_removal_delay_length_minus1の値は、ピクチャタイミングSEIメッセージと関連付けられたコード化ピクチャについてアクティブなVPS又はSPS内でコード化されたau_cpb_removal_delay_length_minus1の値であるが、au_cpb_removal_delay_minus1は、異なるCVSのアクセス単位であり得る、バッファリング期間SEIメッセージを含んでいる先行するアクセス単位の削除時間に対するクロックティックの数を指定する。
au_alt_cpb_removal_delay_minus1プラス1は、ピクチャタイミングSEIメッセージと関連付けられたアクセス単位の名目CPB削除時間と、バッファリング期間SEIメッセージを含んでいた復号順序で先行するアクセス単位の名目CPB削除時間との間の代替の数のクロックティックを指定する。この値は、HSSのためのCPBへのアクセス単位データのできるだけ早い到達時間を計算するためにも使用される。そのシンタックス要素は、ビットの長さがau_cpb_removal_delay_length_minus1+1によって与えられる固定長コードである。
注6−シンタックス要素au_cpb_removal_delay_minus1の(ビットの)長さを決定するau_cpb_removal_delay_length_minus1の値は、ピクチャタイミングSEIメッセージと関連付けられたコード化ピクチャについてアクティブなVPS又はSPS内でコード化されたau_cpb_removal_delay_length_minus1の値であるが、au_cpb_removal_delay_minus1は、異なるCVSのアクセス単位であり得る、バッファリング期間SEIメッセージを含んでいる先行するアクセス単位の削除時間に対するクロックティックの数を指定する。
変数UseAuCpbRemovalDelayMinus1は次のように導出される。
−以下の条件のいずれかが真である場合、UseAuCpbRemovalDelayMinus1は、au_alt_cpb_removal_delay_minus1に等しいように設定される。
−復号順序で先行する初期IRAPアクセス単位は、1に等しいNoClRasPicPresentFlagを有し、irap_cross_layer_cpb_params_present_flagは1に等しい。
−現在AUが、1に等しいNoClRasPicPresentFlagを有する初期IRAP AUである場合、irap_cross_layer_cpb_params_present_flagは1に等しい。
−そうでない場合、UseAuCpbRemovalDelayMinus1は、au_cpb_removal_delay_minus1に等しいように設定される。
現在ピクチャの変数AuCpbRemovalDelayMsbは次のように導出される。
−ピクチャタイミングSEIメッセージが適用される動作点のうちの少なくとも1つに適用可能なバッファリング期間SEIメッセージと現在ピクチャが関連付けられる場合、AuCpbRemovalDelayMsbは0に等しいように設定される。
−そうでない場合、以下のことが当てはまる。
−maxCpbRemovalDelayを2au_cpb_removal_delay_length_minus1+1に等しいようにする。
−prevAuCpbRemovalDelayMinus1及びprevAuCpbRemovalDelayMsbを、それぞれ、0に等しいTemporalIdを有する、RASL、RADL、又はサブレイヤ非参照ピクチャではなく、現在ピクチャと同じバッファリング期間内にある、復号順序で前のピクチャの、UseAuCpbRemovalDelayMinus1[[au_cpb_removal_delay_minus1]]及びAuCpbRemovalDelayMsbに等しいように設定する。
−AuCpbRemovalDelayMsbは次のように導出される。
変数AuCpbRemovalDelayValは次のように導出される。
AuCpbRemovalDelayValの値は、両端値を含む1〜232の範囲内であるものとする。1つのバッファリング期間内で、任意の2つのアクセス単位用のAuCpbRemovalDelayValの値は同じではないものとする。
pic_dpb_outpit_delayは、SubPicHrdFlagが0に等しいとき、ピクチャのDPB出力時間を計算するために使用される。pic_dpb_output_delayは、アクセス単位内の最後の復号単位のCPBからの削除後、復号ピクチャがDPBから出力される前に、何個のクロックティックを待つべきかを指定する。
注7−ピクチャは、「短期参照に使用される」又は「長期参照に使用される」としてまだマークされているとき、その出力時間においてDPBから削除されない。
シンタックス要素pic_dpb_output_delayの長さは、dpb_output_delay_length_minus1+1によってビットで与えられる。sps_max_dec_pic_buffering_minus1[minTid]が0に等しいとき、ここで、minTidはピクチャタイミングSEIメッセージが適用される全ての動作点のOpTid値の最小値である、pic_dpb_output_delayは0に等しいものとする。
pic_alt_dpb_output_delayは、SubPicHrdFlagが0に等しく、復号順序で先行する初期IRAP AUと関連付けられたCL−RASピクチャがビットストリームから削除されるとき、ピクチャのDPB出力時間を計算するために使用される代替値である。pic_alt_dpb_output_delayは、アクセス単位内の最後の復号単位のCPBからの削除後、復号ピクチャがDPBから出力される前に、何個のクロックティックを待つべきかを指定する。
シンタックス要素pic_alt_dpb_output_delayの長さは、dpb_output_delay_length_minus1+1によってビットで与えられる。sps_max_dec_pic_buffering_minus1[minTid]が0に等しいとき、ここで、minTidはピクチャタイミングSEIメッセージが適用される全ての動作点のOpTid値の最小値である、pic_alt_dpb_output_delayは0に等しいものとする。
出力タイミング適合デコーダから出力される任意のピクチャのpic_dpb_output_delay又はpic_alt_dpb_output_delayから導出される出力時間は、復号順序で任意の後続のCVS内の全てのピクチャのpic_dpb_output_delayから導出される出力時間に先行するものとする。
[[このシンタックス要素]]−pic_dpb_output_delay又はpic_alt_dpb_output_delayの値によって確立されるピクチャ出力順序は、PicOrderCntValの値によって確立される順序と同じ順序であるものとする。
1に等しいか、又は1に等しいと推論されるno_output_of_prior_pics_flagを有する、1に等しいNoRaslOutputFlagをもつIDRピクチャに復号順序で先行するので、「バンピング」プロセスによって出力されないピクチャの場合、pic_dpb_output_delay又はpic_alt_dpb_output_delayから導出される出力時間は、同じCVSス内の全てのピクチャに対してPicOrderCntValの増加する値で増加するものとする。
[0173]更に、本開示の技法の例の第2のセットでは、クロスレイヤHRDパラメータSEIメッセージのシンタックスが、次のように定義され得る。
[0174]代替として、幾つかの例では、applicable_poc_cnt[i][j][k]シンタックス要素を含まないクロスレイヤHRD終了SEIメッセージは、シンタックス要素cross_layer_bit_rate_value_minus1[i][j][k]及びcross_layer_cpb_size_value_minus1[i][j][k]が関連するアクセス単位に適用可能であることを表記するために、各アクセス単位とともに送られる場合もある。代替として、幾つかの例では、cross_layer_cpb_size_value_minus1[i][j][k]は、クロスレイヤHRDSEIメッセージ内で信号伝達されない。代替として、幾つかの例では、クロスレイヤのビットレート及びCPBサイズは、VPS内(例えば、拡張部分内)で信号伝達される。代替として、幾つかの例では、さらなるビットレート及びCPBサイズのパラメータがビットストリームの適合に利用可能であり、RASLピクチャ及びRADLピクチャがインターリーブされ、RASLピクチャがビットストリームから削除され、関連するIRAPピクチャがNAL単位タイプBLA_W_RADLを有する場合、クロスレイヤHRDパラメータSEIメッセージは、HEVCバージョン1のビットストリーム(即ち、HEVCワーキングドラフト10に適合するビットストリーム)でも使用され得る。
[0175]本開示の技法の例の第2のセットによれば、クロスレイヤHRDパラメータSEIメッセージは、以下のセマンティクスを有する場合がある。
このSEIメッセージが、及びこのSEIメッセージのみがIRAP AUと関連付けられ得る。
cross_layer_video_parameter_set_idは、SEIメッセージと関連付けられたアクセス単位のVCL NAL単位によって参照されるVPSのvps_video_parameter_set_idの値を示し、それに等しいものとする。cross_layer_video_parameter_set_idの値は、両端値を含む0〜15の範囲内であるものとする。
変数CrossLayerCpbCnt[i][j]は、VPS内で信号伝達されたHRDパラメータのi番目のセットのcpb_cnt_minus1[j]+1に等しいように設定される。
applicable_poc_cnt[i][j][k]は、cross_layer_bit_rate_value_minus1[i][j][k]及びcross_layer_cpb_size_value_minus1[i][j][k]がそれまで適用可能であるアクセス単位を指定する。CVS内で復号順序で現在アクセス単位(即ち、現在SEIメッセージと関連付けられた初期IRAP AU)に後続するアクセス単位が存在し、このアクセス単位が、0に等しいnuh_layer_idを有し、0プラスapplicable_poc_cntの値に等しいnuh_layer_idを有する現在アクセス単位内のピクチャのPicOrderCntValに等しいPicOrderCntValを有する、ピクチャpicAを含んでいる場合、ピクチャpicAはクロスレイヤリフレッシュポイントアクセス単位と呼ばれる。そうでない場合、現在ピクチャのPicOrderCntValプラスrecovery_poc_cntの値よりも大きいPicOrderCntValと、0に等しいnuh_layer_idとを有する、復号順序で最初のアクセス単位は、クロスレイヤリフレッシュポイントアクセス単位と呼ばれる。クロスレイヤリフレッシュポイントアクセス単位は、復号順序で現在アクセス単位に先行しないものである。復号順序でクロスレイヤリフレッシュポイントアクセス単位に先行する全ての復号アクセス単位は、現在初期IRAP AUと関連付けられたNoClRasPicPresentFlagが0に等しいとき、cross_layer_bit_rate_value_minus1[i][j][k]とcross_layer_cpb_size_value_minus1[i][j][k]とを使用するように指定される。applicable_poc_cntの値は、両端値を含む−231〜231−1の範囲内であるものとする。
(bit_rate_scaleとともに)cross_layer_bit_rate_value_minus1[i][j][k]は、CPBがアクセス単位レベルで動作するとき、i番目のCPBについての最大入力ビットレートを指定する。cross_layer_bit_rate_value_minus1[i][j][k]は、両端値を含む0〜232−2の範囲内であるものとする。任意のk>0について、cross_layer_bit_rate_value_minus1[i][j][k]は、cross_layer_bit_rate_value_minus1[i][j][k−1]よりも大きいものとする。
SubPicHrdFlagが0に等しいとき、ビット毎秒単位のビットレートは、
によって与えられる。
SubPicHrdFlagが0に等しく、cross_layer_bit_rate_value_minus1[i]シンタックス要素が存在しないとき、BitRate[i]の値は、VCL HRDパラメータの場合CpbBrVclFactor*MaxBRに等しく、NAL HRDパラメータの場合CpbBrNalFactor*MaxBRに等しいと推論され、ここで、MaxBR、CpbBrVclFactor、及びCpbBrNalFactorは、A.4項に規定される。
cross_layer_cpb_size_value_minus1[i][j][k]は、CPBがアクセス単位レベルで動作するとき、i番目のCPBサイズを指定するために、cross_layer_cpb_size_scaleとともに使用される。cross_layer_cpb_size_value_minus1[i][j][k]は、両端値を含む0〜232−2の範囲内であるものとする。0よりも大きい任意のkについて、cross_layer_cpb_size_value_minus1[i][j][k]は、cross_layer_cpb_size_value_minus1[i][j][k−1]以下のものとする。
SubPicHrdFlagが0に等しいとき、ビット単位のCPBサイズは、
によって与えられる。
SubPicHrdFlagが0に等しく、cross_layer_cpb_size_value_minus1[i]シンタックス要素が存在しないとき、CpbSize[i]の値は、VCL HRDパラメータの場合CpbBrVclFactor*MaxCPBに等しく、NAL HRDパラメータの場合CpbBrNalFactor*MaxCPBに等しいと推論され、ここで、MaxCPB、CpbBrVclFactor、及びCpbBrNalFactorは、A.4項に規定される。
[0176]このようにして、幾つかの例では、ビデオデコーダ30は、コード化ビデオビットストリームのSEIメッセージから、IRAPアクセス単位用の代替のビットレート及びCPBサイズのパラメータを取得することができる。IRAPアクセス単位のうちのそれぞれの1つごとに、ビデオデコーダ30は、それぞれのIRAPアクセス単位が存在しないCL−RASピクチャと関連付けられた初期IRAPアクセス単位であるとき、それぞれのIRAPアクセス単位用の代替のビットレート及びCPBサイズのパラメータを使用することができる。更に、幾つかの例では、機器(例えば、ビデオエンコーダ20)は、クロスレイヤビットレート値及びクロスレイヤCPBサイズ値がそれまで適用可能であるアクセス単位を示すシンタックス要素を含むSEIメッセージを生成することができる。加えて、幾つかの例では、機器(例えば、ビデオエンコーダ20)は、CPBがアクセス単位レベルで動作するとき、CPBの最大入力ビットレートを指定するシンタックス要素を含むSEIメッセージを生成することができる。
[0177]更に、本開示の技法の例の第2のセットでは、HEVCワーキングドラフト10の付録CのC.1節に対して、以下の変更が行われ得る。
C.1 概要
この付録は、仮想参照デコーダ(HRD)と、ビットストリーム及びデコーダの適合性を検査するその使用法とを規定する。
2つのタイプのビットストリーム又はビットストリームサブセットは、この仕様についてのHRD適合性検査の対象となる。タイプIビットストリームと呼ばれる第1のタイプは、ビットストリーム内に、VCL NAL単位、及び全てのアクセス単位用のFD_NUT(フィラーデータNAL単位)に等しいnal_unit_typeを有するNAL単位のみを含んでいるNAL単位ストリームである。タイプIIビットストリームと呼ばれる第2のタイプは、ビットストリーム内のVCL NAL単位及び全てのアクセス単位用のフィラーデータNAL単位に加えて、以下の少なくとも1つを含んでいる。
−フィラーデータNAL単位以外のさらなる非VCL NAL単位
−(付録Bに規定された)NAL単位ストリームからバイトストリームを形成するleading_zero_8bits、zero_byte、start_code_prefix_one_3bytes、及びtrailing_zero_8bitsの全てのシンタックス要素
図C−1は、HRDによって検査されるビットストリーム適合点のタイプを示す。
HRDに必要な非VCL NAL単位のシンタックス要素(又はシンタックス要素のうちの幾つかについてのそれらのデフォルト値)が、節7のセマンティクス項、付録D、及び付録Eに規定されている。
2つのタイプのHRDパラメータセット(NAL HRDパラメータ及びVCL HRDパラメータ)が使用される。HRDパラメータセットは、SPSシンタックス構造又はVPSシンタックス構造の一部であり得るhrd_parameters()シンタックス構造を介して信号伝達される。
検査対象のビットストリームと呼ばれるビットストリームの適合性を検査するために、複数の検査が必要とされる場合がある。検査ごとに、以下のステップが列挙された順序で適用される。
1.TargetOpと表記される検査対象の動作点が選択される。TargetOpのレイヤ識別子リストOpLayerIdListは、TargetOpと関連付けられたビットストリームサブセット内に存在する、nuh_layer_id値の昇順でnuh_layer_id値のリストからなり、このnuh_layer_id値は、検査対象のビットストリーム内に存在するnuh_layer_id値のサブセットである。TargetOpのOpTidは、TargetOpと関連付けられたビットストリームサブセット内に存在する最も高いTemporalIdに等しい。
2.TargetDecLayerIdListはTargetOpのOpLayerIdListに等しいように設定され、HighestTidはTargetOpのOpTidに等しいように設定され、節10に規定されたサブビットストリーム抽出プロセスは、検査対象のビットストリーム、HighestTid、TargetDecLayerIdListを入力として起動され、出力はBitstreamToDecodeに割り当てられる。
3.TargetOpに適用可能なhrd_parameters()シンタックス構造及びsub_layer_hrd_parameters()シンタックス構造が選択される。TargetDecLayerIdListが、検査対象のビットストリーム内に存在する全てのnuh_layer_id値を含んでいる場合、アクティブSPS内の(又は、本仕様において指定されていない外部手段を介して与えられる)hrd_parameters()シンタックス構造が選択される。そうでない場合、TargetOpに適用されるアクティブVPS内の(又は、本仕様において指定されていない何らかの外部手段を介して与えられる)hrd_parameters()シンタックス構造が選択される。選択されたhrd_parameters()シンタックス構造内で、BitstreamToDecodeがタイプIビットストリームである場合、条件「if(vcl_hrd_parameters_present_flag)」の直後に続くsub_layer_hrd_parameters(HighestTid)シンタックス構造が選択され、変数NalHrdModeFlagは0に等しいように設定され、そうでない(BitstreamToDecodeがタイプIIビットストリームである)場合、条件「if(vcl_hrd_parameters_present_flag)」(この場合、変数NalHrdModeFlagは0に等しいように設定される)又は条件「if(nal_hrd_parameters_present_flag)」(この場合、変数NalHrdModeFlagは1に等しいように設定される)のいずれかの直後に続くsub_layer_hrd_parameters(HighestTid)シンタックス構造が選択される。BitstreamToDecodeがタイプIIビットストリームであり、NalHrdModeFlagが0に等しいとき、フィラーデータNAL単位を除く全ての非VCL NAL単位、及び(付録Bで規定された)NAL単位ストリームからバイトストリームを形成するleading_zero_8bits、zero_byte、start_code_prefix_one_3bytes、及びtrailing_zero_8bitsの全てのシンタックス要素は、存在するとき、BitstreamToDecodeから廃棄され、残りのビットストリームがBitstreamToDecodeに割り当てられる。
4.TargetOpに適用可能な(BitstreamToDecode内に存在するか、又は本仕様において指定されていない外部手段を介して利用可能である)バッファリング期間SEIメッセージと関連付けられたアクセス単位が、HRD初期化点として選択され、アクセス単位0と呼ばれる。
5.アクセス単位0から始まるBitstreamToDecode内のアクセス単位ごとに、アクセス単位と関連付けられ、TargetOpに適用される(BitstreamToDecode内に存在するか、又は本仕様において指定されていない外部手段を介して利用可能である)バッファリング期間SEIメッセージが選択され、アクセス単位と関連付けられ、TargetOpに適用される(BitstreamToDecode内に存在するか、又は本仕様において指定されていない外部手段を介して利用可能である)ピクチャタイミングSEIメッセージが選択され、SubPicHrdFlagが1に等しく、sub_pic_cpb_params_in_pic_timing_sei_flagが0に等しいとき、アクセス単位内の復号単位と関連付けられ、TargetOpに適用される(BitstreamToDecode内に存在するか、又は本仕様において指定されていない外部手段を介して利用可能である)復号単位情報SEIメッセージが選択される。
6.SchedSelIdxの値が選択される。選択されたSchedSelIdxは、両端値を含む0〜cpb_cnt_minus1[HighestTid]の範囲内であるものとし、ここで、cpb_cnt_minus1[HighestTid]は、上記で選択されたsub_layer_hrd_parameters(HighestTid)シンタックス構造内に見い出される。
7.アクセス単位0内のコード化ピクチャがCRA_NUT又はBLA_W_LPに等しいnal_unit_typeを有し、選択されたバッファリング期間SEIメッセージ内のirap_cpb_params_present_flagが1に等しいとき、初期CPB削除遅延及び初期CPB削除遅延オフセットの選択に、以下のいずれかが適用される。
−NalHrdModeFlagが1に等しい場合、選択されたバッファリング期間SEIメッセージ内で、それぞれnal_initial_cpb_removal_delay[SchedSelIdx]及びnal_initial_cpb_removal_offset[SchedSelIdx]によって表される、デフォルト初期CPB削除遅延及びデフォルト初期CPB削除遅延オフセットが選択される。−そうでない場合、選択されたバッファリング期間SEIメッセージ内で、それぞれvcl_initial_cpb_removal_delay[SchedSelIdx]及びvcl_initial_cpb_removal_offset[SchedSelIdx]によって表される、デフォルト初期CPB削除遅延及びデフォルト初期CPB削除遅延オフセットが選択される。変数DefaultInitCpbParamsFlagが1に等しいように設定される。
−NalHrdModeFlagが1に等しい場合、選択されたバッファリング期間SEIメッセージ内で、それぞれnal_initial_alt_cpb_removal_delay[SchedSelIdx]及びnal_initial_alt_cpb_removal_offset[SchedSelIdx]によって表される、代替初期CPB削除遅延及び代替初期CPB削除遅延オフセットが選択される。−そうでない場合、選択されたバッファリング期間SEIメッセージ内で、それぞれvcl_initial_alt_cpb_removal_delay[SchedSelIdx]及びvcl_initial_alt_cpb_removal_offset[SchedSelIdx]によって表される、代替初期CPB削除遅延及び代替初期CPB削除遅延オフセットが選択される。変数DefaultInitCpbParamsFlagが0に等しいように設定され、アクセス単位0と関連付けられたRASLアクセス単位がBitstreamToDecodeから廃棄され、残りのビットストリームがBitstreamToDecodeに割り当てられる。
8.NoClRasPicPresentFlagが1に等しく、アクセス単位0がクロスレイヤHRDパラメータSEIメッセージと関連付けられるとき、BitRate[SchedSelIdx]及びCpbSize[SchedSelIdx]は、それぞれ、CrossLayerBitRate[SchedSelIdx]及びCrossLayerCpbSize[SchedSelIdx]に等しいように設定される。
9.選択されたhrd_parameters()シンタックス構造内のsub_pic_hrd_params_present_flagが1に等しいとき、アクセス単位レベル(その場合、変数SubPicHrdFlagは0に等しいように設定される)又はサブピクチャレベル(その場合、変数SubPicHrdFlagは1に等しいように設定される)のいずれかにおいて動作するように、CPBがスケジュールされる。
検査対象の動作点ごとに、実行されるべきビットストリーム適合性検査の数は、n0*n1*(n2*2+n3)*n4に等しく、ここで、n0、n1、n2、n3、及びn4の値は次のように指定される。
−n0は次のように導出される。
−BitstreamToDecodeがタイプIビットストリームである場合、n0は1に等しい。
−そうでない(BitstreamToDecodeがタイプIIビットストリームである)場合、n0は2に等しい。
−n1はcpb_cnt_minus1[HighestTid]+1に等しい。
−n2は、各々がTargetOpに適用可能なバッファリング期間SEIメッセージと関連付けられ、それらの各々について以下の条件の両方が真である、BitstreamToDecode内のアクセス単位の数である。
−VCL NAL単位についてのnal_unit_typeがCRA_NUT又はBLA_W_LPに等しい。
−TargetOpに適用可能な関連するバッファリング期間SEIメッセージが、1に等しいirap_cpb_params_present_flagを有する。
−n3は、各々がTargetOpに適用可能なバッファリング期間SEIメッセージと関連付けられ、それらの各々について以下の条件の一方又は両方が真である、BitstreamToDecode BitstreamToDecode内のアクセス単位の数である。
−VCL NAL単位についてのnal_unit_typeがCRA_NUTにもBLA_W_LPにも等しくない。
−TargetOpに適用可能な関連するバッファリング期間SEIメッセージが、0に等しいirap_cpb_params_present_flagを有する。
−n4は次のように導出される。
−選択されたhrd_parameters()シンタックス構造内のsub_pic_hrd_params_present_flagが0に等しい場合、n4は1に等しい。
−そうでない場合、n4は2に等しい。
BitstreamToDecodeがタイプIIビットストリームである場合、以下のことが当てはまる。
−条件「if(vcl_hrd_parameters_present_flag)」の直後に続くsub_layer_hrd_parameters(HighestTid)シンタックス構造が選択された場合、検査は図C−1に示されたタイプIの適合点において行われ、VCL NAL単位及びフィラーデータNAL単位のみが、入力ビットレート及びCPBストレージのために考慮される。
−そうでない(条件「if(nal_hrd_parameters_present_flag)」の直後に続くsub_layer_hrd_parameters(HighestTid)シンタックス構造が選択された)場合、検査は図C−1に示されたタイプIIの適合点において行われ、NAL単位ストリーム又はバイトストリームであり得るタイプIIビットストリームの全てのバイトが、入力ビットレート及びCPBストレージのために考慮される。
注1−図C−1に示されたタイプIIの適合点についてのSchedSelIdxの値によって確立されたNAL HRDパラメータは、VBRケース(0に等しいcbr_flag[SchedSelIdx])の場合のInitCpbRemovalDelay[SchedSelIdx]、BitRate[SchedSelIdx](又は適用可能なときCrossLayerBitRate[SchedSelIdx])、及びCpbSize[SchedSelIdx](又は適用可能なときCrossLayerCpbSize[SchedSelIdx])の同じ値の場合、図C−1に示されたタイプIの適合点についてVCL HRDの適合性を確立するためにも十分である。これは、タイプIの適合点へのデータフローがタイプIIの適合点へのデータフローのサブセットであるからであり、VBRケースの場合、CPBが空になり、次のピクチャが到達し始めるようにスケジュールされた時間まで空のままでいるからである。例えば、2〜10節において規定された復号プロセスを使用して付録Aにおいて規定されたプロファイルのうちの1つ又は複数に適合するCVSを復号するとき、A.4.2項の項目f)におけるプロファイル適合性のためのNAL HRDパラメータ用に設定された境界内に入るだけでなく、A.4.2項の項目e)におけるプロファイル適合性のためのNAL HRDパラメータ用に設定された境界内にも入るNAL HRDパラメータがタイプIIの適合点に提供されたとき、タイプIの適合点についてのVCL HRDの適合性がA.4.2項の項目e)の境界内に入ることも保証される。
VCL NAL単位内で参照される全てのVPS、SPS、及びPPS、ならびに対応するバッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、及び復号単位情報SEIメッセージは、(非VCL NAL単位により)ビットストリーム内で、又は本仕様において指定されていない他の手段によるのいずれかで、適時に、HRDに搬送されるものとする。
付録C、D、及びEにおいて、VPS、SPS、PPS、バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、又は復号単位情報SEIメッセージを含んでいる非VCL NAL単位の「存在」についての仕様は、それらのNAL単位(又はそれらのうちの幾つかだけ)が本仕様において指定されていない他の手段によってデコーダ(又はHRD)に搬送されるときも満足される。ビットをカウントする目的で、ビットストリーム内に実際の存在する適切なビットのみがカウントされる。
注2−例として、ビットストリーム内の存在以外の手段によって搬送されたそのような非VCL NAL単位の、ビットストリーム内に存在するNAL単位との同期は、その間で非VCL NAL単位がビットストリーム内に存在していたはずであり、ビットストリーム内でそれを搬送するようにエンコーダに決定させた、ビットストリーム内の2つのポイントを示すことによって実現され得る。
そのような非VCL NAL単位の内容がビットストリーム内の存在以外の何らかの手段によってアプリケーションに搬送されたとき、非VCL NAL単位の内容の表現は、本仕様に規定されたシンタックスと同じシンタックスを使用する必要はない。
注3−HRD情報がビットストリーム内に含まれているとき、ビットストリーム内に含まれている情報のみに基づいて、この項の要件に対するビットストリームの適合性を検証することが可能である。全ての「スタンドアロン」のタイプIビットストリームの場合と同様に、HRD情報がビットストリーム内に含まれていないとき、本仕様において指定されていない何らかの他の手段によってHRDデータが供給されるときのみ、適合性が検証され得る。
HRDは、図C−2に示されたように、コード化ピクチャバッファ(CPB)と、瞬時復号プロセスと、復号ピクチャバッファ(DPB)と、出力クロッピングとを含んでいる。
各ビットストリーム適合性検査について、DPBサイズ(ピクチャ記憶バッファの数)は、sps_max_dec_pic_buffering_minus1[HighestTid]+1である。
変数SubPicHrdPreferredFlagは、外部手段によって指定されるか、又は外部手段によって指定されないとき0に等しいように設定されるかのいずれかである。
変数SubPicHrdFlagの値がこの項の上記ステップ8によって設定されなかったとき、それは次のように導出される。
SubPicHrdFlagが0に等しい場合、HRDはアクセス単位レベルで動作し、各復号単位はアクセス単位である。そうでない場合、HRDはサブピクチャレベルで動作し、各復号単位はアクセス単位のサブセットである。
注4−HRDがアクセス単位レベルで動作する場合、毎回、アクセス単位全体である復号単位がCPBから削除される。そうでない(HRDがサブピクチャレベルで動作する)場合、毎回、アクセス単位のサブセットである復号単位がCPBから削除される。どちらの場合も、毎回、復号ピクチャ全体がDPBから出力されるが、ピクチャ出力時間は、異なるように導出されたCPN削除時間及び異なるように信号伝達されたDPB出力遅延に基づいて導出される。
この付録における制約を表現するために次のことが規定される。
−各アクセス単位はアクセス単位nと呼ばれ、ここで、数nは特定のアクセス単位を識別する。アクセス単位0は上記のステップ4に従って選択される。nの値は、復号順序で後続のアクセス単位ごとに1だけ増分される。
−各復号単位は復号単位mと呼ばれ、ここで、数mは特定の復号単位を識別する。アクセス単位0内の復号順序で最初の復号単位は、復号単位0と呼ばれる。mの値は、復号順序で後続の復号単位ごとに1だけ増分される。
注5−復号単位の番号付けは、アクセス単位0内の最初の復号単位を基準とする。
−ピクチャnは、コード化ピクチャ、又はアクセス単位nの復号ピクチャを指す。
HRDは次のように動作する。
−復号単位0においてHRDが初期化され、CPBとDPBの両方が空になるように設定される(DPBフルネスが0に等しいように設定される)。
注6−初期化後、HRDは後続のバッファリング期間SEIメッセージによって再び初期化されない。
−指定された到達スケジュールに従ってCPBに流れる復号単位と関連付けられたデータが、HSSによって配信される。
−各復号単位と関連付けられたデータが、復号単位のCPB削除時間において瞬時復号プロセスによって瞬時に削除され復号される。
−各復号ピクチャがDPB内に配置される。
−復号ピクチャがインター予測参照にもはや必要ではなくなり、出力にもはや必要でなくなったとき、復号ピクチャがDPBから削除される。
各ビットストリーム適合性検査について、CPBの動作がC.2項に規定され、瞬時デコーダ動作が2〜10節に規定され、DPBの動作がC.3項に規定され、出力クロッピングがC.3.3項及びC.5.2.2項に規定される。
列挙された配信スケジュールの数、ならびにそれらの関連するビットレート及びバッファサイズに関するHSS及びHRDの情報が、E.1.2項及びE.2.2項に規定される。HRDは、D.2.2項及びD.3.2項に規定されたバッファリング期間SEIメッセージによって指定されたように初期化される。CPBからの復号単位の削除タイミング及びDPBからの復号ピクチャの出力タイミングは、(D.2.3項及びD.3.3項に規定された)ピクチャタイミングSEIメッセージ内、又は(D.2.21項及びD.3.21項に規定された)復号単位情報SEIメッセージ内の情報を使用して指定される。固有の復号単位に関係する全てのタイミング情報は、復号単位のCPB削除時間よりも前に到達するものとする。
ビットストリーム適合性に対する要件はC.4項に規定され、HRDは、この項の上記で規定されたようにビットストリームの適合性を検査するため、及びC.5項に規定されたようにデコーダの適合性を検査するために使用される。
注7−ビットストリームを生成するために使用される全てのピクチャレート及びクロックがビットストリーム内で信号伝達された値と正確に一致するとの仮定の下で適合性が保証されるが、実際のシステムでは、これらの各々は信号伝達又は指定された値から変化する可能性がある。
この付録の中の全ての演算は、丸め誤差が伝搬し得ないように実数値で実行される。例えば、復号単位の削除の直前又は直後のCPB内のビット数は、必ずしも整数であるとは限らない。
変数ClockTickは、次のように導出され、クロックティックと呼ばれる。
変数ClockSubTickは、次のように導出され、クロックサブティックと呼ばれる。
[0178]更に、本開示の技法の例の第2のセットでは、HEVCワーキングドラフト10の付録CのC.2.2節に対して、以下の変更が行われ得る。
C.2.2 復号単位到達のタイミング
SubPicHrdFlagが0に等しい場合、変数SubPicParamsFlagは0に等しいように設定され、この項の残りに規定されたプロセスインは、アクセス単位nについての初期CPB到達時間と最終CPB到達時間とを導出するために、アクセス単位として考えられている復号単位で起動される。
そうでない(SubPicHrdFlagが1に等しい)場合、この項の残りに規定されたプロセスインは、最初に、アクセス単位nについての初期CPB到達時間と最終CPB到達時間とを導出するために、0に等しいように設定された変数subPicParamsFlag及びアクセス単位として考えられている復号単位で起動され、次いで、アクセス単位n内の復号単位についての初期CPB到達時間と最終CPB到達時間とを導出するために、1に等しいように設定された変数subPicParamsFlag及びアクセス単位のサブセットとして考えられている復号単位で起動される。
変数InitCpbRemovalDelay[SchedSelIdx]及びInitCpbRemovalDelayOffset[SchedSelIdx]は次のように導出される。
−以下の条件のうちの1つ又は複数が真である場合、InitCpbRemovalDelay[SchedSelIdx]及びInitCpbRemovalDelayOffset[SchedSelIdx]は、NalHrdModeFlagが1に等しいとき、それぞれ、バッファリング期間SEIメッセージのシンタックス要素nal_initial_alt_cpb_removal_delay[SchedSelIdx]及びnal_initial_alt_cpb_removal_offset[SchedSelIdx]の値に等しいように設定されるか、又はNalHrdModeFlagが0に等しいとき、それぞれ、vcl_initial_alt_cpb_removal_delay[SchedSelIdx]及びvcl_initial_alt_cpb_removal_offset[SchedSelIdx]の値に等しいように設定され、ここで、バッファリング期間SEIメッセージのシンタックス要素はC.1項に規定されたように選択される。
−アクセス単位0は、そのためにコード化ピクチャがBLA_W_RADL又はBLA_N_LPに等しいnal_unit_typeを有するBLAアクセス単位であり、バッファリング期間SEIメッセージのirap_cpb_params_present_flagの値は1に等しい。
−アクセス単位0は、そのためにコード化ピクチャがBLA_W_LPに等しいnal_unit_typeを有するBLAアクセス単位であるか、又はCRAアクセス単位であり、バッファリング期間SEIメッセージのirap_cpb_params_present_flagの値は1に等しく、以下の条件のうちの1つ又は複数は真である。
−アクセス単位0についてのUseAltCpbParamsFlagが1に等しい。
−DefaultInitCpbParamsFlagが0に等しい。
−subPicParamsFlagの値が1に等しい。
−そうでない場合、InitCpbRemovalDelay[SchedSelIdx]及びInitCpbRemovalDelayOffset[SchedSelIdx]は、NalHrdModeFlagが1に等しいとき、それぞれ、バッファリング期間SEIメッセージのシンタックス要素nal_initial_cpb_removal_delay[SchedSelIdx]及びnal_initial_cpb_removal_offset[SchedSelIdx]の値に等しいように設定されるか、又はNalHrdModeFlagが0に等しいとき、それぞれ、vcl_initial_cpb_removal_delay[SchedSelIdx]及びvcl_initial_cpb_removal_offset[SchedSelIdx]の値に等しいように設定され、ここで、バッファリング期間SEIメッセージのシンタックス要素はC.1項に規定されたように選択される。
復号単位mの最初のビットがCPBに入り始める時間は、初期到達時間initArrivalTime[m]と呼ばれる。
−そうでない(復号単位が復号単位mであり、m>0である)場合、以下のことが当てはまる。
−cbr_flag[SchedSelIdx]が1に等しい場合、復号単位mについての初期到達時間は、復号単位m−1の(以下で導出される)最終到達時間に等しい、即ち、
−そうでない(cbr_flag[SchedSelIdx]が0に等しい)場合、復号単位mについての初期到達時間は、次のように導出される。
ここで、initArrivalEarliestTime[m]は次のように導出される。
−変数tmpNominalRemovalTimeが次のように導出される。
ここで、AuNominalRemovalTime[m]及びDuNominalRemovalTime[m]は、それぞれ、C.2.3項に規定されたアクセス単位m及び復号単位mの名目CPB削除時間である。
−復号単位mが後続のバッファリング期間の最初の復号単位ではない場合、initArrivalEarliestTime[m]は次のように導出される。
−そうでない(復号単位mが後続のバッファリング期間の最初の復号単位である)場合、initArrivalEarliestTime[m]は次のように導出される。
復号単位mについての最終到達時間は次のように導出される。
ここで、sizeInbits[m]は復号単位mのビットのサイズであり、タイプIの適合点の場合、VCL NAL単位及びフィラーデータNAL単位のビットをカウントし、又はタイプIIの適合点の場合、タイプIIビットストリームの全てのビットをカウントし、ここでタイプI及びタイプIIの適合点は図C−1に示される。
SchedSelIdx、BitRate[SchedSelIdx]、及びCpbSize[SchedSelIdx]の値は、次のように制約される。
−復号単位mを含んでいるアクセス単位と前のアクセス単位のために選択されたhrd_parameters()シンタックス構造(又は適用可能なときクロスレイヤHRDパラメータSEIメッセージ)の内容が異なる場合、HSSは、復号単位mを含んでいるアクセス単位のために選択されたhrd_parameters()シンタックス構造(又は適用可能なときクロスレイヤHRDパラメータSEIメッセージ)内で与えられたSchedSelIdxの値の中から、復号単位mを含んでいるアクセス単位のためにBitRate[SchedSelIdx1]又はCpbSize[SchedSelIdx1]をもたらす、SchedSelIdxの値SchedSelIdx1を選択する。BitRate[SchedSelIdx1]又はCpbSize[SchedSelIdx1]の値は、前のアクセス単位のために使用されたSchedSelIdxの値SchedSelIdx0についてのBitRate[SchedSelIdx0]又はCpbSize[SchedSelIdx0]の値とは異なる場合がある。
−そうでない場合、HSSは、SchedSelIdx、BitRate[SchedSelIdx]、及びCpbSize[SchedSelIdx]の前の値で動作し続ける。
HSSが前のアクセス単位のBitRate[SchedSelIdx]又はCpbSize[SchedSelIdx]の値とは異なるBitRate[SchedSelIdx]又はCpbSize[SchedSelIdx]の値を選択するとき、以下のことが当てはまる。
−変数BitRate[SchedSelIdx]が現在アクセス単位の初期CPB到達時間において効力を生じる。
−変数CpbSize[SchedSelIdx]が次のように効力を生じる。
−CpbSize[SchedSelIdx]の新しい値が古いCPBサイズよりも大きい場合、それは現在アクセス単位の初期CPB到達時間において効力を生じる。
−そうでない場合、CpbSize[SchedSelIdx]の新しい値は、現在アクセス単位のCPB削除時間において効力を生じる。
[0179]更に、本開示の技法の例の第2のセットでは、HEVCワーキングドラフト10の付録CのC.3.3節に対して、以下の変更が行われ得る。IRAPアクセス単位の全てのCL−RASピクチャがビデオデータビットストリーム内に存在するかどうかを示す値(例えば、NoClRasPicPresentFlag)に少なくとも部分的に基づいて、ビデオデコーダ30がピクチャ出力プロセスを実行することが、この変更によってもたらされ得る。
C.3.3 ピクチャ出力
この項に規定されたプロセスは、アクセス単位nのCPB削除時間AuCpbRemovalTime[n]において瞬時に起こる。
ピクチャnが1に等しいPicOutputFlagを有するとき、そのDPB出力時間DpbOutputTime[n]は次のように導出され、ここで、アクセス単位nがバッファリング期間の最初のアクセス単位である場合、変数firstPicInBufferingPeriodFlagは1に等しく、そうでない場合、0に等しい。
ここで、[[picDpbOutputDelayは、アクセス単位nと関連付けられたピクチャタイミングSEIメッセージ内のpic_dpb_output_delayの値であり、]]picSptDpbOutputDuDelayは、存在するとき、アクセス単位nと関連付けられた復号単位情報SEIメッセージ内のpic_spt_dpb_output_du_delayの値、もしくはアクセス単位nと関連付けられた復号単位情報SEIメッセージが存在しないとき、アクセス単位nと関連付けられたピクチャタイミングSEIメッセージ内のpic_dpb_output_du_delayの値であるか、又はアクセス単位nと関連付けられた復号単位情報SEIメッセージは、存在するpic_spt_dpb_output_du_delayを有していない。picDpbOutputDelayの値が次のように設定される。
−以下の条件のいずれかが真である場合、picDpbOutputDelayは、アクセス単位nと関連付けられたピクチャタイミングSEIメッセージ内のpic_alt_dpb_output_delayの値として選ばれる。
−復号順序で先行する初期IRAP AUは、1に等しいNoClRasPicPresentFlagを有し、irap_cross_layer_cpb_params_present_flagは1に等しい。
−現在AUは、1に等しいNoClRasPicPresentFlagを有する初期IRAP AUであり、irap_cross_layer_cpb_params_present_flagは1に等しい。
−そうでない場合、picDpbOutputDelayは、アクセス単位nと関連付けられたピクチャタイミングSEIメッセージ内のpic_alt_dpb_output_delayの値である。
注−シンタックス要素pic_spt_dpb_output_du_delayが、アクセス単位nと関連付けられたいかなる復号単位情報SEIメッセージ内にも存在しないとき、その値は、アクセス単位nと関連付けられたピクチャタイミングSEIメッセージ内のpic_dpb_output_du_delayに等しいと推論される。
現在ピクチャの出力は次のように指定される。
−PicOutputFlagが1に等しく、DpbOutputTime[n]がAuCpbRemovalTime[n]に等しい場合、現在ピクチャは出力される。
−そうではなく、PicOutputFlagが0に等しい場合、現在ピクチャは出力されないが、C.3.4項に指定されたようにDPBに記憶される。
−そうでない(PicOutputFlagが1に等しく、DpbOutputTime[n]がAuCpbRemovalTime[n]よりも大きい)場合、(C.3.4項に指定されたように)現在ピクチャは後で出力され、DPBに記憶され、DpbOutputTime[n]に先行する時間において1に等しいno_output_of_prior_pics_flagの復号又は推論によって出力されるべきでないことが示されない限り、時間DpbOutputTime[n]において出力される。
出力時に、ピクチャは、ピクチャ用のアクティブSPSに指定された適合クロッピングウィンドウを使用してクロッピングされる。
ピクチャnが、出力されるピクチャであり、出力されるビットストリームの最後のピクチャではないとき、変数DpbOutputInterval[n]の値は、次のように導出される。
ここで、nextPicInOutputOrderは、出力順序でピクチャnに後続し、1に等しいPicOutputFlagを有するピクチャである。
[0180]図5は、本開示の1つ又は複数の技法による、CL−RASピクチャを示す概念図である。図5の例では、各正方形が異なるピクチャを表す。更に、図5の例では、正方形は列250A〜250D(総称して「列250」)及び行252A〜252D(総称して「行252」)に配列される。列250の各々は、異なるアクセス単位(AU)に対応する。行252の各々は、異なるレイヤに対応する。行252の上位行は、行252の下位行に依存する。図5の例では、クロスハッチされた正方形は、非IRAPで非CL−RASのピクチャに対応する。
[0181]図5の例に示されたように、CL−RASピクチャは、列250Aに対応するアクセス単位などのIRAPアクセス単位(即ち、ベースレイヤにIRAPピクチャを含むアクセス単位)内に存在することができる。更に、図5の例に示されたように、CL−RASピクチャ(例えば、列250B及び行252BにおけるCL−RASピクチャ)は、IRAPアクセス単位に復号順序で後続し、CL−RASピクチャと同じレイヤにIRAPピクチャを含むレイヤスイッチIRAPアクセス単位に復号順序で先行するアクセス単位内に存在することができる。図5の例では、列250AはIRAPアクセス単位に対応し、列250CはレイヤスイッチIRAPアクセス単位に対応する。
[0182]様々な事例では、CL−RASピクチャのコード化表現は、ビットストリーム内に含まれる場合もあり、又は含まれない場合もある。適合デコーダは、CL−RASピクチャを含むビットストリームと、CL−RASピクチャを含まないビットストリームとを復号することが可能であるように要求される場合がある。従って、本開示の1つ又は複数の技法によれば、ビデオデコーダ又は他の機器は、ある値(例えば、NoClRasPicPresentFlag)に基づいて、IRAPアクセス単位の全てのCL−RASピクチャがビデオデータビットストリーム内に存在するかどうかを決定することができる。
[0183]図6Aは、本開示の1つ又は複数の技法による、ビデオエンコーダ20の例示的な動作を示すフローチャートである。図6Aは一例として提示される。本開示の技法によるビデオエンコーダの他の例示的な動作は、より多いか、より少ないか、又は異なるアクションを含む場合がある。
[0184]図6Aの例では、ビデオエンコーダ20は、コード化ピクチャ及び関連データの表現を形成するビットのシーケンスを含むビットストリームを生成することができ、ビットストリームは、ビットストリームを受信する機器が、IRAPアクセス単位のCL−RASピクチャがビットストリーム内に存在するかどうかを指定する値を、そこから導出することができるシンタックス要素を含む(300)。加えて、ビデオエンコーダ20は、ビットストリームを出力することができる(302)。
[0185]図6Bは、本開示の1つ又は複数の技法による、機器の例示的な動作を示すフローチャートである。図6Bは一例として提示される。本開示の技法によるビデオデコーダの他の例示的な動作は、より多いか、より少ないか、又は異なるアクションを含む場合がある。ビデオエンコーダ20、媒体認識ネットワーク要素(MANE)、又は別のタイプの機器などの様々な機器は、図6Bの動作を実行することができる。機器は、元々ビットストリームを生成した機器である場合もあり、又はそうではない場合もある。図6Bの例では、機器は、コード化ピクチャ及び関連データの表現を形成するビットのシーケンスを含むビットストリーム内に、IRAPアクセス単位のCL−RASピクチャが存在するかどうかを指定する変数を設定するSEIメッセージを生成することができる(310)。機器は、ビットストリーム内にSEIメッセージを含めることができる(312)。
[0186]図6Cは、本開示の1つ又は複数の技法による、ビデオデコーダ30の例示的な動作を示すフローチャートである。図6Cは一例として提示される。本開示の技法によるビデオデコーダの他の例示的な動作は、より多いか、より少ないか、又は異なるアクションを含む場合がある。
[0187]図6Cの例では、ビデオデコーダ30は、ある値に基づいて、IRAPアクセス単位の全てのCL−RASピクチャがビデオデータビットストリーム内に存在するかどうかを決定することができる(350)。加えて、ビデオデコーダ30は、ビデオデータビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを復元することができる(352)。
[0188]以下の段落は、本開示の例を提供する。
[0189]例1.ビデオデータを処理する方法であって、ある値に基づいて、イントラランダムアクセスポイント(IRAP)アクセス単位と関連付けられた全てのクロスレイヤランダムアクセススキップ(CL−RAS)ピクチャがビデオデータビットストリーム内に存在するかどうかを決定することを備える、方法。
[0190]例2.ビデオデータビットストリームの補足拡張情報(SEI)メッセージ内のデータに少なくとも部分的に基づいて、その値を設定することを備える、例1の方法。
[0191]例3.ビデオデータ用の復号プロセスの外部の機構によってその値が設定される、例1の方法。
[0192]例4.現在アクセス単位が初期IRAPアクセス単位であるとき、ビデオデータ用の復号プロセスの外部の機構によってその値が設定される、例3の方法。
[0193]例5.ビデオパラメータセット(VPS)内のデータに少なくとも部分的に基づいて、その値を設定することを備える、例1の方法。
[0194]例6.ビデオデータビットストリームがビデオコード化仕様に適合するかどうかを決定するためにビットストリーム適合性検査を実行することを更に備え、現在ピクチャが0よりも大きいレイヤ識別子を有するIRAPピクチャである場合、現在レイヤの直接参照レイヤごとに、現在レイヤのレイヤ識別子に等しいレイヤ識別子を有し、現在ピクチャに先行する復号順序を有する、少なくとも1つのIRAPピクチャがコード化ビデオシーケンス(CVS)内に存在することが、ビットストリーム適合性の要件である、例1の方法。
[0195]例7.特定のレイヤid値についてアクティブ化されたシーケンスパラメータセット(SPS)のローバイトシーケンスペイロード(RBSP)が、初期IRAPアクセス単位、又は両端値を含むnuh_layer_id値を有するピクチャを含んでいる初期IRAPアクセス単位の後の最初のアクセス単位のいずれかにおいて、両端間を含まない初期IRAPアクセス単位内の特定のレイヤid値を有する次のピクチャ、又はCVSの最後のいずれかまで、どちらが早くても、特定のレイヤid値を有するピクチャから始まる、特定のレイヤid値を有する、復号順序内のピクチャのシーケンスについてアクティブのままである、例1の方法。
[0196]例8.IRAPアクセス単位と関連付けられた全てのCL−RASピクチャがビデオデータビットストリーム内に存在するとは限らないことをその値が示し、現在ピクチャが初期IRAPアクセス単位内のCL−RASピクチャであるとき、CL−RASピクチャ用の利用不可能な参照ピクチャを生成することを更に備える、例1の方法。
[0197]例9.コード化ビデオビットストリームのSEIメッセージから、IRAPアクセス単位用の代替のビットレート及びコード化ピクチャバッファ(CPB)サイズのパラメータを取得することと、IRAPアクセス単位のうちのそれぞれ1つごとに、それぞれのIRAPアクセス単位が、存在しないCL−RASピクチャと関連付けられた初期IRAPアクセス単位であるとき、それぞれのIRAPアクセス単位用の代替のビットレート及びCPBサイズのパラメータを使用することとを更に備える、例1の方法。
[0198]例10.コード化ビデオビットストリームのSEIメッセージから、代替CPB削除遅延シンタックス要素及び代替CPB削除オフセットシンタックス要素がSEIメッセージ内に存在するかどうかを指定するシンタックス要素を取得することと、ここにおいて、代替CPB削除遅延シンタックス要素は、ネットワーク抽象化レイヤ(NAL)仮想参照デコーダ(HRD)パラメータが使用されているとき、CPBについての代替初期CPB削除遅延を指定する、ここにおいて、代替CPB削除オフセットシンタックス要素は、NAL HRDパラメータが使用されているとき、CPBについての代替初期CPB削除オフセットを指定する、SEIメッセージから取得することと、ここにおいて、代替CPB削除遅延シンタックス要素は、ビデオコード化レイヤ(VCL)仮想参照デコーダ(HRD)パラメータが使用されているとき、CPBについての代替初期CPB削除遅延の別のセットを指定する、ここにおいて、別の代替CPB削除オフセットシンタックス要素は、VCL HRDパラメータが使用されているとき、CPBについての代替初期CPB削除オフセットを指定する、SEIメッセージから、IRAPアクセス単位と関連付けられたCL−RASピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出に使用されるべきオフセットを指定する、CPBクロスレイヤ遅延オフセットシンタックス要素を取得することと、SEIメッセージから、IRAPアクセス単位と関連付けられたCL−RASピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位の復号ピクチャバッファ(DPB)出力時間の導出に使用されるべきオフセットを指定する、DPBクロスレイヤ遅延オフセットシンタックス要素を取得することとを更に備える、例1の方法。
[0199]例11.コード化ビデオビットストリームのSEIメッセージから、代替CPB削除遅延シンタックス要素及び代替CPB削除オフセットシンタックス要素がSEIメッセージ内に存在するかどうかを指定する、IRAPクロスレイヤパラメータ存在シンタックス要素を取得することを更に備え、ここにおいて、代替CPB削除遅延シンタックス要素が、ネットワーク抽象化レイヤ(NAL)仮想参照デコーダ(HRD)パラメータが使用されているとき、CPBについての代替初期CPB削除遅延を指定する、ここにおいて、代替CPB削除オフセットシンタックス要素が、NAL HRDパラメータが使用されているとき、CPBについての代替初期CPB削除オフセットを指定する、例1の方法。
[0200]例12.コード化ビデオビットストリームのSEIメッセージから、代替CPB削除遅延シンタックス要素及び代替CPB削除オフセットシンタックス要素がSEIメッセージ内に存在するかどうかを指定するシンタックス要素を取得することを更に備え、代替CPB削除遅延シンタックス要素が、ビデオコード化レイヤ(VCL)仮想参照デコーダ(HRD)パラメータが使用されているとき、CPBについての代替初期CPB削除遅延を指定し、代替CPB削除オフセットシンタックス要素が、VCL HRDパラメータが使用されているとき、CPBについての代替初期CPB削除オフセットを指定する、例1の方法。
[0201]例13.CPBクロスレイヤ遅延シンタックス要素及びCPBクロスレイヤ削除オフセットシンタックス要素に部分的に基づいて、ビデオコード化ビットストリームがビデオコード化規格に適合するかどうかを決定するために、ビットストリーム適合性検査を実行することを更に備える、例12の方法。
[0202]例14.SEIメッセージから、IRAPアクセス単位と関連付けられたCL−RASピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出に使用されるべきオフセットを指定する、CPBクロスレイヤ削除遅延シンタックス要素を取得することと、SEIメッセージから、IRAPアクセス単位と関連付けられたCL−RASピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位の復号ピクチャバッファ(DPB)出力時間の導出に使用されるべきオフセットを指定する、DPBクロスレイヤ削除オフセットシンタックス要素を取得することとを更に備える、例1の方法。
[0203]例15.CPBクロスレイヤ遅延シンタックス要素及びCPBクロスレイヤ削除オフセットシンタックス要素に部分的に基づいて、ビデオコード化ビットストリームがビデオコード化規格に適合するかどうかを決定するために、ビットストリーム適合性検査を実行することを更に備える、例14の方法。
[0204]例16.IRAPアクセス単位と関連付けられた全てのCL−RASピクチャがビデオデータビットストリーム内に存在するとは限らないことをその値が示すとき、CPB遅延オフセットをCPBクロスレイヤ削除遅延オフセットシンタックス要素の値に等しいように設定することと、DPB遅延オフセットをDPBクロスレイヤ削除遅延オフセットシンタックス要素の値に等しいように設定することとを更に備える、例14の方法。
[0205]例17.その値に部分的に基づいてCPB動作を実行することを更に備える、例1の方法。
[0206]例18.ビデオコード化ビットストリームのSEIメッセージから、クロスレイヤビットレート値及びクロスレイヤCPBサイズ値がそれまで適用可能であるアクセス単位を示すシンタックス要素を取得することを更に備える、例9の方法。
[0207]例19.ビデオコード化ビットストリームのSEIメッセージから、CPBがアクセス単位レベルで動作するとき、CPBの最大入力ビットレートを指定するシンタックス要素を取得することを更に備える、例1の方法。
[0208]例20.ビデオコード化ビットストリームのSEIメッセージからシンタックス要素を取得することと、CPBがアクセス単位レベルで動作するとき、そのシンタックス要素に少なくとも部分的に基づいて、CPBサイズを決定することとを更に備える、例1の方法。
[0209]例21.その値に少なくとも部分的に基づいて、ピクチャ出力プロセスを実行することを更に備える、例1の方法。
[0210]例22.例1〜例21の方法のいずれかを備える方法。
[0211]例23.例1〜例21のいずれかの方法を実施するように構成する1つ又は複数のプロセッサを備える、機器。
[0212]例24.例1〜例21のいずれかの方法を実施するための手段を備える、機器。
[0213]例25.実行されたとき、例1〜例21のいずれかの方法を実施するように機器を構成する命令を記憶した、コンピュータ可読データ記憶媒体。
[0214]例26.ビデオデータを符号化する方法であって、代替コード化ピクチャバッファ(CPB)削除遅延シンタックス要素及び代替CPB削除オフセットシンタックス要素がSEIメッセージ内に存在するかどうかを指定するシンタックス要素を含む補足拡張情報(SEI)メッセージを生成することを備える、ここにおいて、代替CPB削除遅延シンタックス要素が、ネットワーク抽象化レイヤ(NAL)仮想参照デコーダ(HRD)パラメータが使用されているとき、CPBについての代替初期CPB削除遅延を指定する、ここにおいて、代替CPB削除オフセットシンタックス要素が、NAL HRDパラメータ(及び幾つかの例ではVCL HRDパラメータ)が使用されているとき、CPBについての代替初期CPB削除オフセットを指定する、IRAPアクセス単位と関連付けられたクロスレイヤランダムアクセススキップ(CL−RAS)ピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出に使用されるべきオフセットを指定するCPBクロスレイヤ遅延オフセットシンタックス要素を、SEIメッセージが含む、IRAPアクセス単位と関連付けられたCL−RASピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位の復号ピクチャバッファ(DPB)出力時間の導出に使用されるべきオフセットを指定するDPBクロスレイヤ遅延オフセットシンタックス要素を、SEIメッセージが含む、方法。
[0215]例27.代替CPB削除遅延シンタックス要素及び代替CPB削除オフセットシンタックス要素がSEIメッセージ内に存在するかどうかを指定するIRAPクロスレイヤパラメータ存在シンタックス要素を、SEIメッセージが含む、ここにおいて、代替CPB削除遅延シンタックス要素が、ネットワーク抽象化レイヤ(NAL)仮想参照デコーダ(HRD)パラメータが使用されているとき、CPBについての代替初期CPB削除遅延を指定する、ここにおいて、代替CPB削除オフセットシンタックス要素が、NAL HRDパラメータが使用されているとき、CPBについての代替初期CPB削除オフセットを指定する、例26の方法。
[0216]例28.代替CPB削除遅延シンタックス要素及び代替CPB削除オフセットシンタックス要素がSEIメッセージ内に存在するかどうかを指定するシンタックス要素を、SEIメッセージが含み、代替CPB削除遅延シンタックス要素が、ビデオコード化レイヤ(VCL)HRDパラメータが使用されているとき、CPBについての代替初期CPB削除遅延を指定し、代替CPB削除オフセットシンタックス要素が、VCL HRDパラメータが使用されているとき、CPBについての代替初期CPB削除オフセットを指定する、例26の方法。
[0217]例29.IRAPアクセス単位と関連付けられたCL−RASピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出に使用されるべきオフセットを指定するCPBクロスレイヤ削除遅延シンタックス要素と、IRAPアクセス単位と関連付けられたCL−RASピクチャがビデオデータビットストリーム内に存在しないとき、SEIメッセージと関連付けられたIRAPアクセス単位の復号ピクチャバッファ(DPB)出力時間の導出に使用されるべきオフセットを指定するDPBクロスレイヤ削除オフセットシンタックス要素とを、SEIメッセージが含む、例26の方法。
[0218]例30.ビデオデータを符号化する方法であって、クロスレイヤビットレート値及びクロスレイヤコード化ピクチャバッファCPBサイズ値がそれまで適用可能であるアクセス単位を示すシンタックス要素を含む、補足拡張情報(SEI)メッセージを生成することを備える、方法。
[0219]例31.ビデオデータを符号化する方法であって、CPBがアクセス単位レベルで動作するとき、CPBの最大入力ビットレートを指定するシンタックス要素を含む補足拡張情報(SEI)メッセージを生成することを備える、方法。
[0220]例32.例26〜例31のいずれかの方法を実施するように構成する1つ又は複数のプロセッサを備える、機器。
[0221]例33.例26〜例31のいずれかの方法を実施するための手段を備える、機器。
[0222]例34.実行されたとき、例26〜例31のいずれかの方法を実施するように機器を構成する命令を記憶した、コンピュータ可読データ記憶媒体。
[0223]1つ又は複数の例では、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せに実装される場合がある。ソフトウェアに実装される場合、機能は1つ又は複数の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、又はコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって処理される場合がある。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、又は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含む場合がある。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、又は(2)信号又は搬送波などの通信媒体に対応する場合がある。データ記憶媒体は、本開示に記載された技法の実装用に、命令、コード及び/又はデータ構造を取り出すために、1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含む場合がある。
[0224]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROM又は他の光ディスク記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶機器、フラッシュメモリ、又は、命令又はデータ構造の形態で所望のプログラムコードを記憶するために使用され得るし、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、任意の接続は、コンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモート発信源から送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的媒体を含まないが、代わりに、非一時的な有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)及びディスク(disc)には、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、及びブルーレイディスクが含まれ、通常、ディスク(disk)は磁気的にデータを再生し、ディスク(disc)はレーザーを用いて光学的にデータを再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含められるべきである。
[0225]命令は、1つ又は複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は他の同等の統合された論理回路若しくは個別の論理回路などの、1つ又は複数のプロセッサによって実行され得る。従って、「プロセッサ」という用語は、本明細書において、前述の構造のうちのいずれか、又は本明細書に記載された技法の実装に適した任意の他の構造を指す場合がある。加えて、幾つかの態様では、本明細書に記載された機能は、符号化及び復号のために構成されるか、又は組み合わされたコーデックに組み込まれた、専用ハードウェア内及び/又はソフトウェアモジュール内で提供される場合がある。また、技法は、1つ又は複数の回路又は論理素子内で完全に実施される可能性がある。
[0226]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置において実施され得る。様々な構成要素、モジュール、又はユニットが、開示された技法を実施するように構成された機器の機能的態様を強調するために本開示に記載されているが、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上述されたように、様々なユニットは、コーデックハードウェアユニット内で組み合わされるか、又は、適切なソフトウェア及び/又はファームウェアとともに、上述された1つ又は複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供される場合がある。
[0227]様々な例が記載された。これら及び他の例は、これらの例の様々な組合せとともに、以下の特許請求の範囲の範囲内にある。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1] ビデオデータを復号する方法であって、ある値に基づいて、イントラランダムアクセスポイント(IRAP)アクセス単位の全てのクロスレイヤランダムアクセススキップ(CL−RAS)ピクチャがビデオデータビットストリーム内に存在するかどうかを決定することと、前記ビデオデータビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいて、前記ビデオデータのピクチャを復元することとを備える、方法。
[2] 前記方法が、前記ビデオデータビットストリームの補足拡張情報(SEI)メッセージ内のデータに少なくとも部分的に基づいて、前記値を設定することを備える、[1]に記載の方法。
[3] 前記値が、前記ビデオデータ用の復号プロセスの外部の機構によって設定される、[1]に記載の方法。
[4] 前記値に部分的に基づいて、コード化ピクチャバッファ(CPB)動作を実行することを更に備える、[1]に記載の方法。
[5] 前記CPB動作を実行することが、前記IRAPアクセス単位と関連付けられた全てのCL−RASピクチャが前記ビデオデータビットストリーム内に存在するとは限らないことを前記値が示し、第2のシンタックス要素及び第3のシンタックス要素のバッファリング期間補足拡張情報(SEI)メッセージ内の存在を示す第1のシンタックス要素を前記バッファリング期間SEIメッセージが含むとき、CPB削除遅延を前記第2のシンタックス要素によって指定された代替削除遅延に設定することと、CPB削除オフセットを前記第3のシンタックス要素によって指定された代替削除オフセットに設定することと
を備える、[4]に記載の方法。
[6] 前記CL−RASピクチャが出力されず、現在ピクチャが初期IRAPアクセス単位内のCL−RASピクチャであるとき、前記CL−RASピクチャ用の利用不可能な参照ピクチャを生成することを更に備える、[1]に記載の方法。
[7] 前記利用不可能な参照ピクチャを生成することが、第1、第2、第3、第4、及び第5の参照ピクチャサブセットについてCL−RASピクチャを復号するとき、利用不可能な参照ピクチャを生成することを備え、前記第1の参照ピクチャサブセット内の各参照ピクチャが、出力順序で前記現在ピクチャの前に現れる短期参照ピクチャであり、前記第2の参照ピクチャサブセット内の各参照ピクチャが、出力順序で前記現在ピクチャの後に現れる短期参照ピクチャであり、前記第3の参照ピクチャサブセット内の各参照ピクチャが、前記現在ピクチャのインター予測に使用されない短期参照ピクチャであり、前記第4の参照ピクチャサブセット内の各参照ピクチャが、前記現在ピクチャのインター予測に使用可能な長期参照ピクチャであり、前記第5の参照ピクチャサブセット内の各参照ピクチャが、前記現在ピクチャのインター予測に使用されない長期参照ピクチャである、
[6]に記載の方法。
[8] 前記利用不可能な参照ピクチャを生成することが、前記第1の参照ピクチャサブセット用のアレイ内のそれぞれの位置ごとに、前記それぞれの位置にある項目が「参照ピクチャがない」に等しい場合、前記生成された参照ピクチャについてのピクチャ順序カウント(POC)値が、POC値の第1のセット内の前記それぞれの位置にあるPOC値に等しいこと、前記生成された参照ピクチャ用のピクチャ出力フラグが0に等しいように設定されること、前記生成された参照ピクチャが短期参照に使用されるものとしてマークされること、前記第1の参照ピクチャサブセット用の前記アレイ内の前記それぞれの位置が前記生成された参照ピクチャに設定されること、及び
前記生成された参照ピクチャ用のレイヤ識別子が前記現在ピクチャのレイヤ識別子に設定されることが当てはまる、参照ピクチャを生成することと、前記第2の参照ピクチャサブセット用のアレイ内のそれぞれの位置ごとに、前記それぞれの位置にある項目が「参照ピクチャがない」に等しい場合、前記生成された参照ピクチャについてのPOC値が、POC値の第2のセット内の前記それぞれの位置にあるPOC値に等しいこと、前記生成された参照ピクチャ用のピクチャ出力フラグが0に等しいように設定されること、前記生成された参照ピクチャが短期参照に使用されるものとしてマークされること、前記第2の参照ピクチャサブセット用の前記アレイ内の前記それぞれの位置が前記生成された参照ピクチャに設定されること、及び
前記生成された参照ピクチャ用のレイヤ識別子が前記現在ピクチャの前記レイヤ識別子に設定されることが当てはまる、参照ピクチャを生成することと、前記第3の参照ピクチャサブセット用のアレイ内のそれぞれの位置ごとに、前記それぞれの位置にある項目が「参照ピクチャがない」に等しい場合、前記生成された参照ピクチャについてのPOC値が、POC値の第3のセット内の前記それぞれの位置にあるPOC値に等しいこと、前記生成された参照ピクチャ用のピクチャ出力フラグが0に等しいように設定されること、前記生成された参照ピクチャが短期参照に使用されるものとしてマークされること、前記第3の参照ピクチャサブセット用の前記アレイ内の前記それぞれの位置が前記生成された参照ピクチャに設定されること、及び
前記生成された参照ピクチャ用のレイヤ識別子が前記現在ピクチャの前記レイヤ識別子に設定されることが当てはまる、参照ピクチャを生成することと、前記第4の参照ピクチャサブセット用のアレイ内のそれぞれの位置ごとに、前記それぞれの位置にある項目が「参照ピクチャがない」に等しい場合、前記生成された参照ピクチャについてのPOC値が、POC値の第4のセット内の前記それぞれの位置にあるPOC値に等しいこと、前記生成された参照ピクチャについてのPOC値の最下位ビットを指定するシンタックス要素の値が、POC値の前記第4のセット内の前記それぞれの位置にある前記POC値と、前記POC値の前記最下位ビットがマイナス1を有することが許される最大値を示す変数からもたらされる値とのビット単位の「and」演算の結果に等しいと推論されること、前記生成された参照ピクチャ用のピクチャ出力フラグが0に等しいように設定されること、前記生成された参照ピクチャが長期参照に使用されるものとしてマークされること、前記第4の参照ピクチャサブセット用の前記アレイ内の前記それぞれの位置が前記生成された参照ピクチャに設定されること、及び前記生成された参照ピクチャ用のレイヤ識別子が前記現在ピクチャの前記レイヤ識別子に設定されることが当てはまる、参照ピクチャを生成することと、前記第5の参照ピクチャサブセット用のアレイ内のそれぞれの位置ごとに、前記それぞれの位置にある項目が「参照ピクチャがない」に等しい場合、前記生成された参照ピクチャについてのPOC値が、POC値の第5のセット内の前記それぞれの位置にあるPOC値に等しいこと、前記生成された参照ピクチャについてのPOC値の最下位ビットを指定するシンタックス要素の値が、POC値の前記第5のセット内の前記それぞれの位置にある前記POC値と、前記POC値の前記最下位ビットがマイナス1を有することが許される最大値を示す変数からもたらされる値とのビット単位の「and」演算の結果に等しいと推論されること、前記生成された参照ピクチャ用のピクチャ出力フラグが0に等しいように設定されること、前記生成された参照ピクチャが長期参照に使用されるものとしてマークされること、前記第5の参照ピクチャサブセットのアレイ内の前記それぞれの位置が前記生成された参照ピクチャに設定されること、及び前記生成された参照ピクチャ用のレイヤ識別子が前記現在ピクチャの前記レイヤ識別子に設定されることが当てはまる、参照ピクチャを生成することとを備える、[7]に記載の方法。
[9] 前記ビデオデータビットストリームがビデオコード化仕様に適合するかどうかを決定するためにビットストリーム適合性検査を実行することを更に備え、現在ピクチャが0よりも大きいレイヤ識別子を有するIRAPピクチャである場合、現在レイヤの直接参照レイヤごとに、前記現在レイヤのレイヤ識別子に等しいレイヤ識別子を有し、前記現在ピクチャに先行する復号順序を有する、少なくとも1つのIRAPピクチャがコード化ビデオシーケンス(CVS)内に存在することが、ビットストリーム適合性の要件である、[1]に記載の方法。
[10] 前記コード化ビデオビットストリームのSEIメッセージから、代替CPB削除遅延シンタックス要素及び代替CPB削除オフセットシンタックス要素が前記SEIメッセージ内に存在するかどうかを指定するシンタックス要素を取得することと、ここにおいて、前記代替CPB削除遅延シンタックス要素は、ネットワーク抽象化レイヤ(NAL)仮想参照デコーダ(HRD)パラメータが使用されているとき、CPBについての代替初期CPB削除遅延を指定する、ここにおいて、前記代替CPB削除オフセットシンタックス要素は、前記NAL HRDパラメータが使用されているとき、前記CPBについての代替初期CPB削除オフセットを指定する、前記SEIメッセージから、IRAPアクセス単位と関連付けられたCL−RASピクチャが前記ビデオデータビットストリーム内に存在しないとき、前記SEIメッセージと関連付けられた前記IRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出において使用されるべきオフセットを指定する、CPBクロスレイヤ遅延オフセットシンタックス要素を取得することと、前記SEIメッセージから、IRAPアクセス単位と関連付けられたCL−RASピクチャが前記ビデオデータビットストリーム内に存在しないとき、前記SEIメッセージと関連付けられた前記IRAPアクセス単位の復号ピクチャバッファ(DPB)出力時間の導出において使用されるべきオフセットを指定する、DPBクロスレイヤ遅延オフセットシンタックス要素を取得することとを更に備える、[1]に記載の方法。
[11] 前記コード化ビデオビットストリームのSEIメッセージから、代替CPB削除遅延シンタックス要素及び代替CPB削除オフセットシンタックス要素が前記SEIメッセージ内に存在するかどうかを指定するシンタックス要素を取得することと、ここにおいて、前記代替CPB削除遅延シンタックス要素は、ビデオコード化レイヤ(VCL)仮想参照デコーダ(HRD)パラメータが使用されているとき、CPBについての代替初期CPB削除遅延を指定する、ここにおいて、前記代替CPB削除オフセットシンタックス要素は、前記VCL HRDパラメータが使用されているとき、前記CPBについての代替初期CPB削除オフセットを指定する、前記SEIメッセージから、IRAPアクセス単位と関連付けられたCL−RASピクチャが前記ビデオデータビットストリーム内に存在しないとき、前記SEIメッセージと関連付けられた前記IRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出において使用されるべきオフセットを指定する、CPBクロスレイヤ遅延オフセットシンタックス要素を取得することと、前記SEIメッセージから、IRAPアクセス単位と関連付けられたCL−RASピクチャが前記ビデオデータビットストリーム内に存在しないとき、前記SEIメッセージと関連付けられた前記IRAPアクセス単位の復号ピクチャバッファ(DPB)出力時間の導出において使用されるべきオフセットを指定する、DPBクロスレイヤ遅延オフセットシンタックス要素を取得することとを更に備える、[1]に記載の方法。
[12] 前記値に少なくとも部分的に基づいてピクチャ出力プロセスを実行することを更に備える、[1]に記載の方法。
[13] コード化ピクチャ及び関連データの表現を形成するビットのシーケンスを含むビットストリーム内に、イントラランダムアクセスポイント(IRAP)アクセス単位のクロスレイヤランダムアクセススキップ(CL−RAS)ピクチャが存在するかどうかを指定する変数を設定する補足拡張情報(SEI)メッセージを生成することと、前記ビットストリーム内に前記SEIメッセージを含めることとを備える、ビデオデータを処理する方法。
[14] 前記SEIメッセージが第1のSEIメッセージであり、前記方法が、代替コード化ピクチャバッファ(CPB)削除遅延シンタックス要素及び代替CPB削除オフセットシンタックス要素が前記SEIメッセージ内に存在するかどうかを指定するシンタックス要素を含む第2のSEIメッセージを生成することを更に備える、ここにおいて、前記代替CPB削除遅延シンタックス要素が、ネットワーク抽象化レイヤ(NAL)仮想参照デコーダ(HRD)パラメータが使用されているとき、CPBについての代替初期CPB削除遅延を指定する、ここにおいて、前記代替CPB削除オフセットシンタックス要素が、前記NAL HRDパラメータが使用されているとき、前記CPBについての代替初期CPB削除オフセットを指定する、前記第2のSEIメッセージが、IRAPアクセス単位と関連付けられたCL−RASピクチャが前記ビットストリーム内に存在しないとき、前記第2のSEIメッセージと関連付けられた前記IRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出において使用されるべきオフセットを指定する、CPBクロスレイヤ遅延オフセットシンタックス要素を含む、前記第2のSEIメッセージが、IRAPアクセス単位と関連付けられたCL−RASピクチャが前記ビットストリーム内に存在しないとき、前記第2のSEIメッセージと関連付けられた前記IRAPアクセス単位の復号ピクチャバッファ(DPB)出力時間の導出において使用されるべきオフセットを指定する、DPBクロスレイヤ遅延オフセットシンタックス要素を含む、[13]に記載の方法。
[15] 前記SEIメッセージが第1のSEIメッセージであり、前記方法が、代替コード化ピクチャバッファ(CPB)削除遅延シンタックス要素及び代替CPB削除オフセットシンタックス要素が前記SEIメッセージ内に存在するかどうかを指定するシンタックス要素を含む第2のSEIメッセージを生成することを更に備え、前記代替CPB削除遅延シンタックス要素が、ビデオコード化レイヤ(VCL)仮想参照デコーダ(HRD)パラメータが使用されているとき、CPBについての代替初期CPB削除遅延を指定し、前記代替CPB削除オフセットシンタックス要素が、前記VCL HRDパラメータが使用されているとき、前記CPBについての代替初期CPB削除オフセットを指定し、前記第2のSEIメッセージが、IRAPアクセス単位と関連付けられたCL−RASピクチャが前記ビットストリーム内に存在しないとき、前記第2のSEIメッセージと関連付けられた前記IRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出において使用されるべきオフセットを指定する、CPBクロスレイヤ遅延オフセットシンタックス要素を含み、前記第2のSEIメッセージが、IRAPアクセス単位と関連付けられたCL−RASピクチャが前記ビットストリーム内に存在しないとき、前記第2のSEIメッセージと関連付けられた前記IRAPアクセス単位の復号ピクチャバッファ(DPB)出力時間の導出において使用されるべきオフセットを指定する、DPBクロスレイヤ遅延オフセットシンタックス要素を含む、[13]に記載の方法。
[16] 前記SEIメッセージが第1のSEIメッセージであり、前記方法が、クロスレイヤビットレート値及びクロスレイヤコード化ピクチャバッファ(CPB)サイズ値がそれまで適用可能であるアクセス単位を示すシンタックス要素を含む、第2のSEIメッセージを生成することを更に備える、[13]に記載の方法。
[17] 前記SEIメッセージが第1のSEIメッセージであり、前記方法が、コード化ピクチャバッファ(CPB)がアクセス単位レベルで動作するとき、前記CPBの最大入力ビットレートを示すシンタックス要素を含む、第2のSEIメッセージを生成することを更に備える、[13]に記載の方法。
[18] 前記SEIメッセージが第1のSEIメッセージであり、前記方法が、初期IRAPアクセス単位のCL−RASピクチャが削除されるとき使用可能なIRAPアクセス単位用のコード化ピクチャバッファ(CPB)サイズを定義する、第2のSEIメッセージを生成することを更に備える、[13]に記載の方法。
[19] ビデオデータを記憶するように構成されたデータ記憶媒体と、ある値に基づいて、イントラランダムアクセスポイント(IRAP)アクセス単位の全てのクロスレイヤランダムアクセススキップ(CL−RAS)ピクチャがビデオデータビットストリーム内に存在するかどうかを決定することと、前記ビデオデータビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいて、前記ビデオデータのピクチャを復元することとを行うように構成する1つ又は複数のプロセッサとを備える、機器。
[20] 前記1つ又は複数のプロセッサが、前記ビデオデータビットストリームの補足拡張情報(SEI)メッセージ内のデータに少なくとも部分的に基づいて、前記値を設定するように構成された、[19]に記載の機器。
[21] 前記値が、前記ビデオデータ用の復号プロセスの外部の機構によって設定される、[19]に記載の機器。
[22] 前記1つ又は複数のプロセッサが、前記値に部分的に基づいて、コード化ピクチャバッファ(CPB)動作を実行するように構成された、[19]に記載の機器。
[23] 前記CPB動作を実行することの一部として、前記IRAPアクセス単位と関連付けられた全てのCL−RASピクチャが前記ビデオデータビットストリーム内に存在するとは限らないことを前記値が示し、第2のシンタックス要素及び第3のシンタックス要素のバッファリング期間補足拡張情報(SEI)メッセージ内の存在を示す第1のシンタックス要素を前記バッファリング期間SEIメッセージが含むとき、CPB削除遅延を前記第2のシンタックス要素によって指定された代替削除遅延に設定することと、CPB削除オフセットを前記第3のシンタックス要素によって指定された代替削除オフセットに設定することとを行うように、前記1つ又は複数のプロセッサが構成された、[22]に記載の機器。
[24] 前記CL−RASピクチャが出力されず、現在ピクチャが初期IRAPアクセス単位内のCL−RASピクチャであるとき、前記1つ又は複数のプロセッサが前記CL−RASピクチャ用の利用不可能な参照ピクチャを生成するように、前記1つ又は複数のプロセッサが構成された、[19]に記載の機器。
[25] 前記1つ又は複数のプロセッサが、第1、第2、第3、第4、及び第5の参照ピクチャサブセットについてCL−RASピクチャを復号するとき、利用不可能な参照ピクチャを生成するように構成され、前記第1の参照ピクチャサブセット内の各参照ピクチャが、出力順序で前記現在ピクチャの前に現れる短期参照ピクチャであり、前記第2の参照ピクチャサブセット内の各参照ピクチャが、出力順序で前記現在ピクチャの後に現れる短期参照ピクチャであり、前記第3の参照ピクチャサブセット内の各参照ピクチャが、前記現在ピクチャのインター予測に使用されない短期参照ピクチャであり、前記第4の参照ピクチャサブセット内の各参照ピクチャが、前記現在ピクチャのインター予測に使用され得る長期参照ピクチャであり、前記第5の参照ピクチャサブセット内の各参照ピクチャが、前記現在ピクチャのインター予測に使用されない長期参照ピクチャである、[24]に記載の機器。
[26] 前記第1の参照ピクチャサブセット用のアレイ内のそれぞれの位置ごとに、前記それぞれの位置にある項目が「参照ピクチャがない」に等しい場合、前記生成された参照ピクチャについてのピクチャ順序カウント(POC)値が、POC値の第1のセット内の前記それぞれの位置にあるPOC値に等しいこと、前記生成された参照ピクチャ用のピクチャ出力フラグが0に等しいように設定されること、前記生成された参照ピクチャが短期参照に使用されるものとしてマークされること、前記第1の参照ピクチャサブセット用の前記アレイ内の前記それぞれの位置が前記生成された参照ピクチャに設定されること、及び前記生成された参照ピクチャ用のレイヤ識別子が前記現在ピクチャのレイヤ識別子に設定されることが当てはまる参照ピクチャを、前記1つ又は複数のプロセッサが生成し、前記第2の参照ピクチャサブセット用のアレイ内のそれぞれの位置ごとに、前記それぞれの位置にある項目が「参照ピクチャがない」に等しい場合、前記生成された参照ピクチャについてのPOC値が、POC値の第2のセット内の前記それぞれの位置にあるPOC値に等しいこと、前記生成された参照ピクチャ用のピクチャ出力フラグが0に等しいように設定されること、前記生成された参照ピクチャが短期参照に使用されるものとしてマークされること、前記第2の参照ピクチャサブセット用の前記アレイ内の前記それぞれの位置が前記生成された参照ピクチャに設定されること、及び前記生成された参照ピクチャ用のレイヤ識別子が前記現在ピクチャの前記レイヤ識別子に設定されることが当てはまる参照ピクチャを、前記1つ又は複数のプロセッサが生成し、前記第3の参照ピクチャサブセット用のアレイ内のそれぞれの位置ごとに、前記それぞれの位置にある項目が「参照ピクチャがない」に等しい場合、前記生成された参照ピクチャについてのPOC値が、POC値の第3のセット内の前記それぞれの位置にあるPOC値に等しいこと、前記生成された参照ピクチャ用のピクチャ出力フラグが0に等しいように設定されること、前記生成された参照ピクチャが短期参照に使用されるものとしてマークされること、前記第3の参照ピクチャサブセット用の前記アレイ内の前記それぞれの位置が前記生成された参照ピクチャに設定されること、及び前記生成された参照ピクチャ用のレイヤ識別子が前記現在ピクチャの前記レイヤ識別子に設定されることが当てはまる参照ピクチャを、前記1つ又は複数のプロセッサが生成し、前記第4の参照ピクチャサブセット用のアレイ内のそれぞれの位置ごとに、前記それぞれの位置にある項目が「参照ピクチャがない」に等しい場合、前記生成された参照ピクチャについてのPOC値が、POC値の第4のセット内の前記それぞれの位置にあるPOC値に等しいこと、前記生成された参照ピクチャについてのPOC値の最下位ビットを指定するシンタックス要素の値が、POC値の前記第4のセット内の前記それぞれの位置にある前記POC値と、前記POC値の前記最下位ビットがマイナス1を有することが許される最大値を示す変数からもたらされる値とのビット単位の「and」演算の結果に等しいと推論されること、前記生成された参照ピクチャ用のピクチャ出力フラグが0に等しいように設定されること、前記生成された参照ピクチャが長期参照に使用されるものとしてマークされること、前記第4の参照ピクチャサブセット用の前記アレイ内の前記それぞれの位置が前記生成された参照ピクチャに設定されること、及び前記生成された参照ピクチャ用のレイヤ識別子が前記現在ピクチャの前記レイヤ識別子に設定されることが当てはまる参照ピクチャを、前記1つ又は複数のプロセッサが生成し、前記第5の参照ピクチャサブセット用のアレイ内のそれぞれの位置ごとに、前記それぞれの位置にある項目が「参照ピクチャがない」に等しい場合、前記生成された参照ピクチャについてのPOC値が、POC値の第5のセット内の前記それぞれの位置にあるPOC値に等しいこと、前記生成された参照ピクチャについてのPOC値の最下位ビットを指定するシンタックス要素の値が、POC値の前記第5のセット内の前記それぞれの位置にある前記POC値と、前記POC値の前記最下位ビットがマイナス1を有することが許される最大値を示す変数からもたらされる値とのビット単位の「and」演算の結果に等しいと推論されること、前記生成された参照ピクチャ用のピクチャ出力フラグが0に等しいように設定されること、前記生成された参照ピクチャが長期参照に使用されるものとしてマークされること、前記第5の参照ピクチャサブセット用の前記アレイ内の前記それぞれの位置が前記生成された参照ピクチャに設定されること、及び前記生成された参照ピクチャ用のレイヤ識別子が前記現在ピクチャの前記レイヤ識別子に設定されることが当てはまる参照ピクチャを、前記1つ又は複数のプロセッサが生成するように、前記1つ又は複数のプロセッサが構成された、[25]に記載の機器。
[27] 前記1つ又は複数のプロセッサが、前記ビデオデータビットストリームがビデオコード化仕様に適合するかどうかを決定するためにビットストリーム適合性検査を実行するように構成される、ここにおいて、現在ピクチャが0よりも大きいレイヤ識別子を有するIRAPピクチャである場合、現在レイヤの直接参照レイヤごとに、前記現在レイヤのレイヤ識別子に等しいレイヤ識別子を有し、前記現在ピクチャに先行する復号順序を有する、少なくとも1つのIRAPピクチャがコード化ビデオシーケンス(CVS)内に存在することが、ビットストリーム適合性の要件である、[19]に記載の機器。
[28] 前記コード化ビデオビットストリームのSEIメッセージから、代替CPB削除遅延シンタックス要素及び代替CPB削除オフセットシンタックス要素が前記SEIメッセージ内に存在するかどうかを指定するシンタックス要素を取得することと、ここにおいて、前記代替CPB削除遅延シンタックス要素は、ネットワーク抽象化レイヤ(NAL)仮想参照デコーダ(HRD)パラメータが使用されているとき、CPBについての代替初期CPB削除遅延を指定する、ここにおいて、前記代替CPB削除オフセットシンタックス要素は、前記NAL HRDパラメータが使用されているとき、前記CPBについての代替初期CPB削除オフセットを指定する、前記SEIメッセージから、IRAPアクセス単位と関連付けられたCL−RASピクチャが前記ビデオデータビットストリーム内に存在しないとき、前記SEIメッセージと関連付けられた前記IRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出において使用されるべきオフセットを指定する、CPBクロスレイヤ遅延オフセットシンタックス要素を取得することと、前記SEIメッセージから、IRAPアクセス単位と関連付けられたCL−RASピクチャが前記ビデオデータビットストリーム内に存在しないとき、前記SEIメッセージと関連付けられた前記IRAPアクセス単位の復号ピクチャバッファ(DPB)出力時間の導出において使用されるべきオフセットを指定する、DPBクロスレイヤ遅延オフセットシンタックス要素を取得することとを行うように、前記1つ又は複数のプロセッサが構成された、[19]に記載の機器。
[29] 前記コード化ビデオビットストリームのSEIメッセージから、代替CPB削除遅延シンタックス要素及び代替CPB削除オフセットシンタックス要素が前記SEIメッセージ内に存在するかどうかを指定するシンタックス要素を取得することと、ここにおいて、前記代替CPB削除遅延シンタックス要素は、ビデオコード化レイヤ(VCL)仮想参照デコーダ(HRD)パラメータが使用されているとき、CPBについての代替初期CPB削除遅延を指定する、ここにおいて、前記代替CPB削除オフセットシンタックス要素は、前記VCL HRDパラメータが使用されているとき、前記CPBについての代替初期CPB削除オフセットを指定する、前記SEIメッセージから、IRAPアクセス単位と関連付けられたCL−RASピクチャが前記ビデオデータビットストリーム内に存在しないとき、前記SEIメッセージと関連付けられた前記IRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出において使用されるべきオフセットを指定する、CPBクロスレイヤ遅延オフセットシンタックス要素を取得することと、前記SEIメッセージから、IRAPアクセス単位と関連付けられたCL−RASピクチャが前記ビデオデータビットストリーム内に存在しないとき、前記SEIメッセージと関連付けられた前記IRAPアクセス単位の復号ピクチャバッファ(DPB)出力時間の導出において使用されるべきオフセットを指定する、DPBクロスレイヤ遅延オフセットシンタックス要素を取得することとを行うように、前記1つ又は複数のプロセッサが構成された、[19]に記載の機器。
[30] 前記1つ又は複数のプロセッサが、前記値に少なくとも部分的に基づいてピクチャ出力プロセスを実行するように構成された、[19]に記載の機器。
[31] ビデオデータを記憶するように構成されたデータ記憶媒体と、コード化ピクチャ及び関連データの表現を形成するビットのシーケンスを含むビットストリーム内に、イントラランダムアクセスポイント(IRAP)アクセス単位のクロスレイヤランダムアクセススキップ(CL−RAS)ピクチャが存在するかどうかを指定する変数を設定する補足拡張情報(SEI)メッセージを生成することと、前記ビットストリーム内に前記SEIメッセージを含めることとを行うように構成された1つ又は複数のプロセッサとを備える、機器。
[32] 前記1つ又は複数のプロセッサが、代替コード化ピクチャバッファ(CPB)削除遅延シンタックス要素及び代替CPB削除オフセットシンタックス要素が前記SEIメッセージ内に存在するかどうかを指定するシンタックス要素を含むSEIメッセージを生成するように構成される、ここにおいて、前記代替CPB削除遅延シンタックス要素が、ネットワーク抽象化レイヤ(NAL)仮想参照デコーダ(HRD)パラメータが使用されているとき、CPBについての代替初期CPB削除遅延を指定する、ここにおいて、前記代替CPB削除オフセットシンタックス要素が、前記NAL HRDパラメータが使用されているとき、前記CPBについての代替初期CPB削除オフセットを指定する、前記SEIメッセージが、IRAPアクセス単位と関連付けられたクロスレイヤランダムアクセススキップ(CL−RAS)ピクチャが前記ビデオデータビットストリーム内に存在しないとき、前記SEIメッセージと関連付けられた前記IRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出において使用されるべきオフセットを指定する、CPBクロスレイヤ遅延オフセットシンタックス要素を含み、前記SEIメッセージが、IRAPアクセス単位と関連付けられたCL−RASピクチャが前記ビデオデータビットストリーム内に存在しないとき、前記SEIメッセージと関連付けられた前記IRAPアクセス単位の復号ピクチャバッファ(DPB)出力時間の導出において使用されるべきオフセットを指定する、DPBクロスレイヤ遅延オフセットシンタックス要素を含む、[31]に記載の機器。
[33] 前記SEIメッセージが第1のSEIメッセージであり、前記1つ又は複数のプロセッサが、代替コード化ピクチャバッファ(CPB)削除遅延シンタックス要素及び代替CPB削除オフセットシンタックス要素が前記SEIメッセージ内に存在するかどうかを指定するシンタックス要素を含む第2のSEIメッセージを生成するように構成される、ここにおいて、前記代替CPB削除遅延シンタックス要素が、ビデオコード化レイヤ(VCL)仮想参照デコーダ(HRD)パラメータが使用されているとき、CPBについての代替初期CPB削除遅延を指定する、ここにおいて、前記代替CPB削除オフセットシンタックス要素が、前記VCL HRDパラメータが使用されているとき、前記CPBについての代替初期CPB削除オフセットを指定する、前記第2のSEIメッセージが、IRAPアクセス単位と関連付けられたCL−RASピクチャが前記ビットストリーム内に存在しないとき、前記第2のSEIメッセージと関連付けられた前記IRAPアクセス単位に復号順序で後続するアクセス単位の名目CPB削除時間の導出において使用されるべきオフセットを指定する、CPBクロスレイヤ遅延オフセットシンタックス要素を含み、前記第2のSEIメッセージが、IRAPアクセス単位と関連付けられたCL−RASピクチャが前記ビットストリーム内に存在しないとき、前記第2のSEIメッセージと関連付けられた前記IRAPアクセス単位の復号ピクチャバッファ(DPB)出力時間の導出において使用されるべきオフセットを指定する、DPBクロスレイヤ遅延オフセットシンタックス要素を含む、
[31]に記載の機器。
[34] 前記1つ又は複数のプロセッサが、クロスレイヤビットレート値及びクロスレイヤコード化ピクチャバッファ(CPB)サイズ値がそれまで適用可能であるアクセス単位を示すシンタックス要素を含む、第2のSEIメッセージを生成するように構成された、[31]に記載の機器。
[35] 前記1つ又は複数のプロセッサが、CPBがアクセス単位レベルで動作するとき、前記CPBの最大入力ビットレートを示すシンタックス要素を含む、第2のSEIメッセージを生成するように構成された、[31]に記載の機器。
[36] 前記SEIメッセージが第1のSEIメッセージであり、前記1つ又は複数のプロセッサが、初期IRAPアクセス単位のCL−RASピクチャが削除されるとき使用可能なIRAPアクセス単位用のコード化ピクチャバッファ(CPB)サイズを定義する、第2のSEIメッセージを生成するように構成された、[31]に記載の機器。
[37] ある値に基づいて、イントラランダムアクセスポイント(IRAP)アクセス単位の全てのクロスレイヤランダムアクセススキップ(CL−RAS)ピクチャがビデオデータビットストリーム内に存在するかどうかを決定するための手段と、前記ビデオデータビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいて、前記ビデオデータのピクチャを復元するための手段とを備える、機器。
[38] コード化ピクチャ及び関連データの表現を形成するビットのシーケンスを含むビットストリーム内に、イントラランダムアクセスポイント(IRAP)アクセス単位のクロスレイヤランダムアクセススキップ(CL−RAS)ピクチャが存在するかどうかを指定する変数を設定する補足拡張情報(SEI)メッセージを生成するための手段と、前記ビットストリーム内に前記SEIメッセージを含めるための手段とを備える、機器。
[39] 実行されたとき、ある値に基づいて、イントラランダムアクセスポイント(IRAP)アクセス単位の全てのクロスレイヤランダムアクセススキップ(CL−RAS)ピクチャがビデオデータビットストリーム内に存在するかどうかを決定することと、前記ビデオデータビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいて、前記ビデオデータのピクチャを復元することとを機器に行わせる命令を記憶した、コンピュータ可読データ記憶媒体。
[40] 実行されたとき、コード化ピクチャ及び関連データの表現を形成するビットのシーケンスを含むビットストリーム内に、イントラランダムアクセスポイント(IRAP)アクセス単位のクロスレイヤランダムアクセススキップ(CL−RAS)ピクチャが存在するかどうかを指定する変数を設定する補足拡張情報(SEI)メッセージを生成することと、前記ビットストリーム内に前記SEIメッセージを含めることとを機器に行わせる命令を記憶した、コンピュータ可読データ記憶媒体。