[0001]本開示は、ビデオコーディングおよび圧縮の分野に関し、詳細には、スケーラブルビデオコーディング(SVC:scalable video coding)またはマルチビュービデオコーディング(MVC:multiview video coding、3DV)に関する。
[0002]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4,Part10,アドバンストビデオコーディング(AVC:Advanced Video Coding)、現在開発中の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって定義された規格、およびそのような規格の拡張に記載されているもののような、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
[0003]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間(イントラピクチャ(intra-picture))予測および/または時間(インターピクチャ(inter-picture))予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライス(たとえば、ビデオフレーム、ビデオフレームの一部分など)が、ツリーブロック、コーディングユニット(CU:coding unit)および/またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコーディングされる(intra-coded)(I)スライスの中のビデオブロックは、同じピクチャの中の隣接ブロック中の参照サンプルに対する空間予測(spatial prediction)を使用して符号化される。ピクチャのインターコーディングされる(inter-coded)(PまたはB)スライスの中のビデオブロックは、同じピクチャの中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャにおける参照サンプルに対する時間予測(temporal prediction)を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
[0004]空間予測または時間予測により、コーディングされるべきブロックのための予測ブロックが生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分(pixel differences)を表す。インターコーディングされるブロックは、予測ブロックを形成する参照サンプルのブロックを指し示す動きベクトル、およびコーディングされたブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコーディングされるブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差変換係数(residual transform coefficients)が生じ得、その残差変換係数は、次いで量子化され得る。最初に2次元アレイで構成された量子化変換係数(quantized transform coefficients)は、変換係数の1次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピー符号化が適用され得る。
[0005]ビデオコーディングにおいて、ビデオストリームを処理するためのビデオアプリケーション(たとえば、ビデオ会議のアプリケーション、動画ストリーミングなど)は、帯域幅の状態に応じて、低解像度モード(たとえば、低解像度ピクチャが処理および表示される)と高解像度モード(たとえば、高解像度ピクチャが処理および表示される)との間で切り替え得る。帯域幅が最初に高解像度ストリーミングをサポートできない場合、アプリケーションは、ビデオストリームを低解像度モードで処理し得、帯域幅が改善されたとき、アプリケーションは、より高品質のビデオを表示できるように高解像度モードへ切り替え得る。
[0006]一般に、コーディングされたピクチャは、他のピクチャをコーディングするために使用され得るように、復号ピクチャバッファ(DPB:a decoded picture buffer)の中に記憶され得る。たとえば、ビデオコーダは、後続のピクチャをコーディングするために、DPBの中に記憶されている前にコーディングされたピクチャのピクセル値または他の情報(たとえば、動き情報)を使用し得る。しかしながら、DPBはスペースが限られ、すべてのコーディングされたピクチャが、DPBに記憶され得るとは限らない。したがって、不必要なピクチャをDPBから適時に除去することが、DPBの管理とメモリの使用量とを改善することができる。
[0007]さらに、高効率ビデオコーディング(HEVC:high efficiency vide coding)のスケーラブル拡張(SHVC:scalable extension of high efficiency vide coding)では、ビデオアプリケーションが低解像度モードから高解像度モードへ切り替えるとき、アプリケーションは、DPBに記憶されている低解像度ピクチャを管理することをやめることがある(たとえば、DPBの中に残り得る低解像度ピクチャを一掃し(clear out)得ない)。そのような状況では、低解像度ピクチャが不必要にDPBの中に残り得、DPBの中に高解像度ピクチャ用の少量のスペースしか残らない。別の例では、高解像度ピクチャのいずれかがコーディングされる前に、DPBに記憶されている低解像度ピクチャがクリアされることがあり、高解像度ピクチャのコーディングでの使用のためにそれらを利用できなくさせる。そのような状況では、高解像度ピクチャが、一般にインター予測またはレイヤ間予測(inter-layer prediction)よりもコストがかかるイントラ予測を使用してコーディングされなければならないことになるので、コーディング効率は悪化することがある。
[0008]したがって、DPBに記憶される低解像度ピクチャを、解像度変更があるときに適切に管理することによって、メモリの使用量およびコーディング効率が改善され得る。
[0009]本開示のシステム、方法、およびデバイスは、いくつかの革新的な態様をそれぞれ有し、それらの態様は、どれ1つとして、本明細書に開示される望ましい属性を単独で担うものではない。
[0010]一実施形態では、ビデオ情報をコーディング(たとえば、符号化または復号)するように構成された装置は、メモリユニットと、メモリユニットと通信しているプロセッサとを含む。メモリユニットは、第1のレイヤおよび第2のレイヤに関連付けられた、ビデオ情報を記憶するように構成される。プロセッサは、第1のレイヤの第1のレイヤピクチャを復号し、復号された第1のレイヤピクチャを復号ピクチャバッファに記憶し、対応する第1のレイヤピクチャを有しない第2のレイヤピクチャがコーディングされるべきかどうかを決定し、対応する第1のレイヤピクチャを有しない第2のレイヤピクチャがコーディングされるべきであると決定することに応答して、復号ピクチャバッファの中に記憶されている1つまたは複数の復号された第1のレイヤピクチャが除去されるべきであるという指示を処理するように構成される。プロセッサはビデオ情報を符号化または復号し得る。
[0011]一実施形態では、ビデオ情報をコーディング(たとえば、符号化または復号)する方法は、第1のレイヤおよび第2のレイヤのうちの少なくとも1つに関連付けられたビデオ情報を記憶することと、第1のレイヤは、第1のレイヤピクチャを備え、第2のレイヤは、第2のレイヤピクチャを備える、第1のレイヤの第1のレイヤピクチャのうちの1つまたは複数を復号することと、1つまたは複数の復号された第1のレイヤピクチャを復号ピクチャバッファに記憶することと、対応する第1のレイヤピクチャを有しない第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定することと、対応する第1のレイヤピクチャを有しない第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定することに応答して、復号ピクチャバッファに記憶されている1つまたは複数の復号された第1のレイヤピクチャのうちの少なくとも1つが復号ピクチャバッファから除去されるべきであるという指示を処理することとを備える。
[0012]一実施形態では、非一時的コンピュータ可読媒体は、実行されたとき、装置にプロセスを実行させるコードを備える。このプロセスは、第1のレイヤおよび第2のレイヤのうちの少なくとも1つに関連付けられたビデオ情報を記憶することと、第1のレイヤは、第1のレイヤピクチャを備え、第2のレイヤは、第2のレイヤピクチャを備える、第1のレイヤの第1のレイヤピクチャのうちの1つまたは複数を復号することと、1つまたは複数の復号された第1のレイヤピクチャを復号ピクチャバッファに記憶することと、対応する第1のレイヤピクチャを有しない第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定することと、対応する第1のレイヤピクチャを有しない第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定することに応答して、復号ピクチャバッファに記憶されている1つまたは複数の復号された第1のレイヤピクチャのうちの少なくとも1つが復号ピクチャバッファから除去されるべきであるという指示を処理することとを含む。
[0013]一実施形態では、ビデオ情報をコーディングするように構成されたビデオコーディングデバイスは、第1のレイヤおよび第2のレイヤのうちの少なくとも1つに関連付けられたビデオ情報を記憶するための手段と、第1のレイヤは、第1のレイヤピクチャを備え、第2のレイヤは、第2のレイヤピクチャを備える、第1のレイヤの第1のレイヤピクチャのうちの1つまたは複数を復号するための手段と、1つまたは複数の復号された第1のレイヤピクチャを復号ピクチャバッファに記憶するための手段と、対応する第1のレイヤピクチャを有しない第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定するための手段と、対応する第1のレイヤピクチャを有しない第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定することに応答して、復号ピクチャバッファに記憶されている1つまたは複数の復号された第1のレイヤピクチャのうちの少なくとも1つが復号ピクチャバッファから除去されるべきであるという指示を処理するための手段とを備える。
[0014]本開示で説明する態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
[0015]本開示で説明する態様による技法を実行し得る別の例示的なビデオ符号化および復号システムを示すブロック図。
[0016]本開示で説明する態様による技法を実装し得るビデオエンコーダの一例を示すブロック図。
[0017]本開示で説明する態様による技法を実装し得るビデオエンコーダの一例を示すブロック図。
[0018]本開示で説明する態様による技法を実装し得るビデオデコーダの一例を示すブロック図。
[0019]本開示で説明する態様による技法を実装し得るビデオデコーダの一例を示すブロック図。
[0020]本開示の一実施形態による、下位レイヤおよび上位レイヤの中の様々なピクチャを示す概略図。
[0021]本開示の一実施形態による、下位レイヤおよび上位レイヤの中の様々なピクチャを示す概略図。
[0022]本開示の一実施形態による、下位レイヤおよび上位レイヤの中の様々なピクチャを示す概略図。
[0023]本開示の一実施形態による、ビデオ情報をコーディングする方法を示すフローチャート。
本開示の一実施形態による、ビデオ情報をコーディングする方法を示すフローチャート。
詳細な説明
[0024]本明細書に記載されるいくつかの実施形態は、HEVC(高効率ビデオコーディング)などのアドバンストビデオコーデックのコンテキストにおけるスケーラブルビデオコーディングのためのレイヤ間予測に関する。より詳細には、本開示は、HEVCのスケーラブルビデオコーディング(SHVC)拡張におけるレイヤ間予測の性能の改善のためのシステムおよび方法に関する。
[0025]以下の説明では、いくつかの実施形態に関係するH.264/AVC技法が記載され、HEVC規格および関係する技法も説明される。HEVC規格および/またはH.264規格のコンテキストにおいて、いくつかの実施形態が本明細書に記載されるが、本明細書で開示されるシステムおよび方法が任意の適切なビデオコーディング規格に適用可能であり得ることを、当業者なら諒解されよう。たとえば、本明細書で開示される実施形態は、以下の規格、すなわち、ITU−T H.261、ISO/IEC MPEG−1ビジュアル、ITU−T H.262もしくはISO/IEC MPEG−2ビジュアル、ITU−T H.263、ISO/IEC MPEG−4ビジュアル、およびそれのスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張を含むITU−T H.264(ISO/IEC MPEG−4 AVCとも呼ばれる)のうちの、1つまたは複数に適用可能であり得る。
[0026]HEVCは、概して、多くの点で、前のビデオコーディング規格のフレームワークに従う。HEVCにおける予測のユニットは、いくつかの前のビデオコーディング規格におけるユニット(たとえば、マクロブロック)とは異なる。事実上、マクロブロックの概念は、いくつかの前のビデオコーディング規格において理解されているように、HEVC中に存在しない。マクロブロックは、他の考えられる利益の中でも高いフレキシビリティを与え得る、4分木方式に基づく階層構造と置き換えられる。たとえば、HEVC方式内で、コーディングユニット(CU)、予測ユニット(PU:Prediction Unit)、および変換ユニット(TU:Transform Unit)という3つのタイプのブロックが定義される。CUは領域分割の基本ユニットを指すことがある。CUはマクロブロックの概念に類似すると見なされ得るが、それは、最大サイズを制限せず、コンテンツ適応性を改善するために4つの等しいサイズのCUへの再帰的分割(recursive splitting)を可能にし得る。PUはインター/イントラ予測の基本ユニットと見なされ得、それは、不規則な画像パターンを効果的にコーディングするために、単一のPU中に複数の任意の形状区分を含み得る。TUは変換の基本ユニットと見なされ得る。TUはPUとは無関係に定義され得るが、TUのサイズはTUが属するCUに制限されることがある。3つの異なる概念へのブロック構造のこの分離は、各々がそれの役割に従って最適化されることを可能にし得、それによりコーディング効率が改善され得る。
[0027]単に説明の目的で、本明細書で開示するいくつかの実施形態について、2つのレイヤのみ(たとえば、ベースレイヤなどの下位レイヤ、およびエンハンスメントレイヤなどの上位レイヤ)を含む例を用いて説明する。そのような例が複数のベースレイヤおよび/またはエンハンスメントレイヤを含む構成に適用可能であり得ることを理解されたい。さらに、説明を簡単にするために、以下の開示は、いくつかの実施形態に関して「フレーム」または「ブロック」という用語を含む。しかしながら、これらの用語は、限定的であることを意味しない。たとえば、以下で説明する技法は、ブロック(たとえば、CU、PU、TU、マクロブロックなど)、スライス、フレームなど、任意の適切なビデオユニットとともに使用され得る。
ビデオコーディング規格
[0028]ビデオ画像、TV画像、静止画像、またはビデオレコーダもしくはコンピュータによって生成された画像など、デジタル画像は、水平ラインおよび垂直ラインで構成されたピクセルまたはサンプルからなり得る。単一の画像中のピクセルの数は一般に数万個である。各ピクセルは、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮がなければ、画像エンコーダから画像デコーダに搬送されるべき情報の量は、リアルタイム画像伝送を不可能にさせるほど非常に大きい。送信されるべき情報の量を低減するために、JPEG、MPEGおよびH.263規格など、いくつかの異なる圧縮方法が開発された。
[0029]ビデオコーディング規格は、ITU−T H.261と、ISO/IEC MPEG−1ビジュアルと、ITU−T H.262またはISO/IEC MPEG−2ビジュアルと、ITU−T H.263と、ISO/IEC MPEG−4ビジュアルと、それのスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張を含む(ISO/IEC MPEG−4 AVCとも呼ばれる)ITU−T H.264とを含む。
[0030]さらに、新しいビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)が、ITU−Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG)とのジョイントコラボレーションチームオンビデオコーディング(JCT−VC:Joint Collaboration Team on Video Coding)によって開発されている。HEVCドラフト10についての完全引用は、文書JCTVC−L1003、Brossらの、「High Efficiency Video Coding(HEVC)Text Specification Draft 10」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のジョイントコラボレーティブチームオンビデオコーディング(JCT−VC)、第12回会合:ジュネーブ、スイス、2013年1月14日〜2013年1月23日である。HEVCへのマルチビュー拡張、すなわち、MV−HEVC、およびSHVCと名付けられたHEVCへのスケーラブル拡張も、JCT−3V(ITU−T/ISO/IECジョイントコラボレーティブチームオン3Dビデオコーディング拡張開発)およびJCT−VCによって、それぞれ開発されている。
[0031]新規のシステム、装置、および方法の様々な態様は、これ以降、添付図面を参照しながら、より十分に説明される。しかしながら、本開示は、多くの異なる形態で実施可能であり、本開示の全体を通して示される任意の特定の構造または機能に限定されるものと解釈されるべきでない。むしろ、本開示が、入念で完全であり、本開示の範囲を当業者に十分に伝達するように、これらの態様が提供される。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせて実装されるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。たとえば、本明細書に記載される任意の数の態様を使用して装置が実装されてよく、または方法が実施されてもよい。さらに、本開示の範囲は、本明細書に記載する本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示する任意の態様は、特許請求の範囲の1つまたは複数の要素により実施されてもよいことを理解されたい。
[0032]特定の態様が本明細書で説明されるが、これらの態様の多くの変形および並べ替えは、本開示の範囲内に属する。好ましい態様のいくつかの利益および利点が述べられるが、本開示の範囲は、特定の利点、使用、または目的に限定されることを意図しない。むしろ、本開示の態様は、異なるワイヤレス技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能なものであり、そのうちのいくつかが図面および好ましい態様の以下の説明において例として示される。詳細な説明および図面は、限定的でなく、本開示の単に例示であり、本開示の範囲は、添付の特許請求の範囲およびその均等物によって定義される。
[0033]添付の図面は、例を示す。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。本開示では、序数語(ordinal words )(たとえば、「第1の」、「第2の」、「第3の」など)で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは同様のタイプの、異なる要素を指すために使用されるにすぎない。
ビデオコーディングシステム
[0034]図1Aは、本開示で説明する態様による技法を利用し得る例示的なビデオコーディングシステム10を示すブロック図である。本明細書で使用し説明する「ビデオコーダ」という用語は、総称的にビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。
[0035]図1Aに示すように、ビデオコーディングシステム10は、宛先モジュール14によって後で復号されるべき符号化ビデオデータ(encoded video data)を生成するソースモジュール12を含む。図1Aの例では、ソースモジュール12および宛先モジュール14は別個のデバイス上にある− 詳細には、ソースモジュール12はソースデバイスの部分であり、宛先モジュール14は宛先デバイスの部分である。しかしながら、ソースおよび宛先モジュール12、14が、図1Bの例に示すように、同じデバイス上にあってもよく、または同じデバイスの部分であってもよいことに留意されたい。
[0036]もう一度図1Aを参照すると、ソースモジュール12および宛先モジュール14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースモジュール12および宛先モジュール14はワイヤレス通信のために装備され得る。
[0037]宛先モジュール14は、リンク16を介して、復号されるべき符号化ビデオデータを受信し得る。リンク16は、ソースモジュール12から宛先モジュール14に符号化ビデオデータを動かすことが可能な任意のタイプの媒体またはデバイスを備え得る。図1Aの例では、リンク16は、ソースモジュール12が、符号化ビデオデータをリアルタイムで宛先モジュール14に直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され得、宛先モジュール14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレス通信媒体または有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワークなどのパケットベースのネットワーク、またはインターネットなどのグローバルネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースモジュール12から宛先モジュール14への通信を容易にするために有用であり得る、任意の他の機器を含み得る。
[0038]代替的に、符号化データは出力インターフェース22から、随意の記憶デバイス31に出力され得る。同様に、符号化データは、入力インターフェース28によって記憶デバイス31からアクセスされ得る。記憶デバイス31は、ハードドライブ、フラッシュメモリ、揮発性もしくは不揮発性のメモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散されたまたは局所的にアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイス31は、ソースモジュール12によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間記憶デバイスに相当し得る。宛先モジュール14は、記憶されているビデオデータに、記憶デバイス31からストリーミングまたはダウンロードを介してアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することができ、その符号化ビデオデータを宛先モジュール14に送信することができる、任意のタイプのサーバであり得る。例示的なファイルサーバは、ウェブサーバ(たとえば、ウェブサイトのための)、FTPサーバ、ネットワーク接続記憶(NAS)デバイス、または局所的なディスクドライブを含む。宛先モジュール14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。記憶デバイス31からの符号化ビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、またはその両方の組合せであり得る。
[0039]本開示の技法は、ワイヤレスの用途または設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信(たとえば、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over HTTP)など)、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの用途をサポートするために、単方向または双方向のビデオ送信をサポートするように構成され得る。
[0040]図1Aの例では、ソースモジュール12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は変調器/復調器(モデム)および/または送信機を含み得る。ソースモジュール12において、ビデオソース18は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムのようなソース、またはそのようなソースの組合せを含み得る。一例として、図1Bの例に示すように、ビデオソース18がビデオカメラである場合、ソースモジュール12および宛先モジュール14は、いわゆるカメラ付き電話またはビデオ電話を形成し得る。しかしながら、本開示に記載される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスアプリケーションおよび/または有線アプリケーションに適用され得る。
[0041]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースモジュール12の出力インターフェース22を介して、宛先モジュール14に直接送信され得る。符号化ビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先モジュール14または他のデバイスによる後のアクセスのために、記憶デバイス31に記憶され得る。
[0042]図1Aの例では、宛先モジュール14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先モジュール14の入力インターフェース28は、符号化ビデオデータを、リンク16を介して受信し得る。リンク16を介して通信され、または記憶デバイス31上に提供された符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30などのビデオデコーダによる使用のために、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体に記憶されるか、またはファイルサーバに記憶される符号化ビデオデータに含まれ得る。
[0043]ディスプレイデバイス32は、宛先モジュール14と一体化されるか、またはその外部にあり得る。いくつかの例では、宛先モジュール14は、一体型ディスプレイデバイスを含み得、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先モジュール14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号ビデオデータ(decoded video data)をユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
[0044]関係する態様では、図1Bは、例示的なビデオ符号化および復号システム10’を示し、ここにおいて、ソースおよび宛先モジュール12、14は、デバイスまたはユーザデバイス11上にあり、またはその部分である。デバイス11は、「スマート」フォンなどの電話ハンドセットであり得る。デバイス11は、ソースおよび宛先モジュール12、14と動作可能に通信している、随意のコントローラ/プロセッサモジュール13を含み得る。図1Bのシステム10’は、ビデオエンコーダ20と出力インターフェース22との間にビデオ処理ユニット21をさらに含み得る。いくつかの実装形態では、ビデオ処理ユニット21は、図1Bに示すように、別個のユニットであるが、他の実施態様では、ビデオ処理ユニット21は、ビデオエンコーダ20および/またはプロセッサ/コントローラモジュール13の部分として実装され得る。システム10’は、また、ビデオシーケンスの中で対象のオブジェクト(an object of interest)を追跡することができる、随意のトラッカー29を含み得る。追跡されるべき対象のオブジェクトは、本開示の1つまたは複数の態様に関して説明する技法によって、セグメント化され得る。関係する態様では、追跡することは、ディスプレイデバイス32によって単独で、またはトラッカー29と一緒に実行され得る。図1Bのシステム10’およびそれの構成要素は、図1Aのシステム10およびそれの構成要素と場合によっては類似である。
[0045]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格など、ビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM:a HEVC Test Model)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part10,アドバンストビデオコーディング(AVC)と呼ばれるITU−T H.264規格など、他の独自の規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、MPEG−2およびITU−T H.263を含む。
[0046]図1Aおよび図1Bの例に示されないが、ビデオエンコーダ20およびビデオデコーダ30は各々、オーディオエンコーダおよびオーディオデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0047]ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの様々な適切なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し得、本開示の技法を実行するために、1つまたは複数のプロセッサを使用して、命令をハードウェアで実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
ビデオコーディングプロセス
[0048]上記で簡略に述べられたように、ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは、1つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像(a still image)である。いくつかの事例では、ピクチャは、ビデオ「フレーム」と呼ばれることがある。ビデオエンコーダ20がビデオデータを符号化するとき、ビデオエンコーダ20は、ビットストリームを生成し得る。ビットストリームは、ビデオデータのコーディングされた表現を形成する、ビットのシーケンスを含み得る。ビットストリームは、コーディングされたピクチャと、関連するデータとを含み得る。コーディングされたピクチャは、ピクチャのコーディングされた表現である。
[0049]ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータ中の各ピクチャに対して符号化演算(encoding operations)を実行し得る。ビデオエンコーダ20がピクチャに対して符号化演算を実行するとき、ビデオエンコーダ20は、一連のコーディングされたピクチャと関連するデータとを生成し得る。関連するデータは、ビデオパラメータセット(VPS:video parameter set)と、シーケンスパラメータセットと、ピクチャパラメータセットと、適応パラメータセットと、他のシンタックス構造とを含み得る。シーケンスパラメータセット(SPS:sequence parameter set)は、ピクチャの0個以上のシーケンスに適用可能なパラメータを含み得る。ピクチャパラメータセット(PPS:picture parameter set)は、0個または複数のピクチャに適用可能なパラメータを含み得る。適応パラメータセット(APS:adaptation parameter set)は、0個または複数のピクチャに適用可能なパラメータを含み得る。APS中のパラメータは、PPS中のパラメータよりも変化する可能性が高いパラメータであり得る。
[0050]コーディングされたピクチャを生成するために、ビデオエンコーダ20は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの2次元アレイであり得る。ビデオブロックの各々は、ツリーブロックに関連付けられる。いくつかの事例では、ツリーブロックは、最大コーディングユニット(LCU:largest coding unit)と呼ばれることがある。HEVCのツリーブロックは、H.264/AVCのような従来の規格のマクロブロックに、広い意味で類似し得る。しかしながら、ツリーブロックは、特定のサイズに必ずしも限定されず、1つまたは複数のコーディングユニット(CU)を含み得る。ビデオエンコーダ20は、ツリーブロックのビデオブロックを、CUに関連付けられるビデオブロックに区分するために、4分木区分を使用し得、したがって、「ツリーブロック」という名前である。
[0051]いくつかの例では、ビデオエンコーダ20は、ピクチャを複数のスライスに区分し得る。スライスの各々は、整数個のCUを含み得る。いくつかの事例では、スライスは、整数個のツリーブロックを備える。他の事例では、スライスの境界は、ツリーブロック内にあり得る。
[0052]ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオエンコーダ20がスライスに対して符号化演算を実行するとき、ビデオエンコーダ20は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは、「コーディングされたスライス(coded slice)」と呼ばれることがある。
[0053]コーディングされたスライスを生成するために、ビデオエンコーダ20は、スライス中の各ツリーブロックに対して符号化演算を実行し得る。ビデオエンコーダ20がツリーブロックに対して符号化演算を実行するとき、ビデオエンコーダ20は、コーディングされたツリーブロックを生成し得る。コーディングされたツリーブロックは、ツリーブロックの符号化されたバージョンを表すデータを備え得る。
[0054]ビデオエンコーダ20がコーディングされたスライスを生成するとき、ビデオエンコーダ20は、ラスタ走査順序(a raster scan order)に従って、スライス中のツリーブロックに対して符号化演算を実行(たとえば、符号化)し得る。たとえば、ビデオエンコーダ20は、スライス中のツリーブロックの一番上の行にわたって左から右に進み、次いでツリーブロックの次の下の行にわたって左から右に進み、以下同様に進む順序で、ビデオエンコーダ20がスライス中のツリーブロックの各々を符号化するまで、スライスのツリーブロックを符号化し得る。
[0055]ラスタ走査順序に従ってツリーブロックを符号化した結果として、所与のツリーブロックの上および左のツリーブロックは符号化されていることがあるが、所与のツリーブロックの下および右のツリーブロックはまだ符号化されていない。したがって、ビデオエンコーダ20は、所与のツリーブロックを符号化するとき、所与のツリーブロックの上および左のツリーブロックを符号化することによって生成される情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ20は、所与のツリーブロックを符号化するとき、所与のツリーブロックの下および右のツリーブロックを符号化することによって生成される情報にアクセスできないことがある。
[0056]コーディングされたツリーブロックを生成するために、ビデオエンコーダ20は、ビデオブロックを徐々により小さいビデオブロックに分割するために、ツリーブロックのビデオブロック上で4分木区分を再帰的に実行し得る。より小さいビデオブロックの各々は、異なるCUに関連付けられ得る。たとえば、ビデオエンコーダ20は、ツリーブロックのビデオブロックを4つの等しいサイズのサブブロックに区分し得、サブブロックのうちの1つまたは複数を4つの等しいサイズのサブサブブロック(sub-sub-blocks)に区分し得、以下同様である。区分されたCUは、CUのビデオブロックが他のCUに関連付けられたビデオブロックに区分されているそのCUであり得る。区分されていないCUは、CUのビデオブロックが他のCUに関連付けられたビデオブロックに区分されていないそのCUであり得る。
[0057]ビットストリーム中の1つまたは複数のシンタックス要素は、ビデオエンコーダ20がツリーブロックのビデオブロックを区分し得る最大の回数を示し得る。CUのビデオブロックは形状が正方形であり得る。CUのビデオブロックのサイズ(たとえば、CUのサイズ)は、8×8のピクセルから、最大で64×64以上のピクセルを有するツリーブロックのビデオブロックのサイズ(たとえば、ツリーブロックのサイズ)までわたり得る。
[0058]ビデオエンコーダ20は、z走査順序(a z-scan order)に従って、ツリーブロックの各CUに対して符号化演算を実行(たとえば、符号化)し得る。言い換えれば、ビデオエンコーダ20は、左上のCUと、右上のCUと、左下のCUと、次いで右下のCUとを、その順序で符号化し得る。ビデオエンコーダ20が、区分されているCUに対して符号化演算を実行するとき、ビデオエンコーダ20は、z走査順序に従って、区分されているCUのビデオブロックのサブブロックに関連付けられたCUを符号化し得る。言い換えれば、ビデオエンコーダ20は、左上のサブブロックに関連付けられたCUと、右上のサブブロックに関連付けられたCUと、左下のサブブロックに関連付けられたCUと、次いで右下のサブブロックに関連付けられたCUとを、その順序で符号化し得る。
[0059]z走査順序に従ってツリーブロックのCUを符号化した結果として、所与のCUの上、左上、右上、左、および左下のCUは符号化されていることがある。所与のCUの下または右のCUはまだ符号化されていない。したがって、ビデオエンコーダ20は、所与のCUを符号化するとき、所与のCUに隣接するいくつかのCUを符号化することによって生成される情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ20は、所与のCUを符号化するとき、所与のCUに隣接する他のCUを符号化することによって生成される情報にアクセスできないことがある。
[0060]ビデオエンコーダ20が、区分されていないCUを符号化するとき、ビデオエンコーダ20は、CUに対する1つまたは複数の予測ユニット(PU)を生成し得る。CUのPUの各々は、CUのビデオブロック内の異なるビデオブロックに関連付けられ得る。ビデオエンコーダ20は、CUの各PUに対して予測ビデオブロック(a predicted video block)を生成し得る。PUの予測ビデオブロックは、サンプルのブロックであり得る。ビデオエンコーダ20は、PUのための予測ビデオブロックを生成するために、イントラ予測またはインター予測を使用し得る。
[0061]ビデオエンコーダ20がPUの予測ビデオブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号サンプル(decoded samples)に基づいて、PUの予測ビデオブロックを生成し得る。ビデオエンコーダ20がCUのPUの予測ビデオブロックを生成するためにイントラ予測を使用する場合、CUはイントラ予測されたCUである。ビデオエンコーダ20がPUの予測ビデオブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つまたは複数のピクチャの復号サンプルに基づいて、PUの予測ビデオブロックを生成し得る。ビデオエンコーダ20がCUのPUの予測ビデオブロックを生成するためにインター予測を使用する場合、CUはインター予測されたCUである。
[0062]さらに、ビデオエンコーダ20がPUのための予測ビデオブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、PUのための動き情報を生成し得る。PUのための動き情報は、PUの1つまたは複数の参照ブロックを示し得る。PUの各参照ブロックは、参照ピクチャ内のビデオブロックであり得る。参照ピクチャは、PUに関連付けられたピクチャ以外のピクチャであり得る。いくつかの事例では、PUの参照ブロックは、PUの「参照サンプル(reference sample)」と呼ばれることもある。ビデオエンコーダ20は、PUの参照ブロックに基づいて、PUのための予測ビデオブロックを生成し得る。
[0063]ビデオエンコーダ20がCUの1つまたは複数のPUのための予測ビデオブロックを生成した後、ビデオエンコーダ20は、CUのPUのための予測ビデオブロックに基づいて、CUに対する残差データを生成し得る。CUの残差データは、CUのPUのための予測ビデオブロック中のサンプルと、CUの元のビデオブロック中のサンプルとの差を示し得る。
[0064]さらに、区分されていないCUに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、CUの残差データを、CUの変換ユニット(TU)に関連付けられた残差データの1つまたは複数のブロック(たとえば、残差ビデオブロック)に区分するために、CUの残差データに対して再帰的な4分木区分を実行し得る。CUの各TUは、異なる残差ビデオブロックに関連付けられ得る。
[0065]ビデオコーダ20は、TUに関連付けられた変換係数ブロック(たとえば、変換係数のブロック)を生成するために、TUに関連付けられた残差ビデオブロックに1つまたは複数の変換を適用し得る。概念的に、変換係数ブロックは、変換係数の2次元(2D)行列であり得る。
[0066]変換係数ブロックを生成した後、ビデオエンコーダ20は、変換係数ブロックに対して量子化プロセスを実行し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現する、プロセスを指す。量子化プロセスは、変換係数の一部または全部に関連するビット深度(bit depth)を低減し得る。たとえば、量子化中に、nビット変換係数はmビット変換係数に切り捨てられ得、ここで、nはmよりも大きい。
[0067]ビデオエンコーダ20は、各CUを、量子化パラメータ(QP)値に関連付け得る。CUに関連付けられたQP値は、ビデオエンコーダ20が、CUに関連付けられた変換係数ブロックをどのように量子化するかを決定し得る。ビデオエンコーダ20は、CUに関連付けられたQP値を調整することによって、CUに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。
[0068]ビデオエンコーダ20が変換係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数ブロックの中で変換係数を表すシンタックス要素のセットを生成し得る。ビデオエンコーダ20は、これらのシンタックス要素のうちのいくつかに、コンテキスト適応型バイナリ算術コーディング(CABAC:Context Adaptive Binary Arithmetic Coding)演算などのエントロピー符号化演算を適用し得る。コンテンツ適応型可変長コーディング(CAVLC:content adaptive variable length coding)、確率間隔区分エントロピー(PIPE:probability interval partitioning entropy)コーディング、または他のバイナリ算術コーディングなど、他のエントロピーコーディング技法も使用され得る。
[0069]ビデオエンコーダ20によって生成されるビットストリームは、一連のネットワークアブストラクションレイヤ(NAL:Network Abstraction Layer)ユニットを含み得る。NALユニットの各々は、NALユニット中のデータのタイプの指示と、データを含むバイトとを含む、シンタックス構造であり得る。たとえば、NALユニットは、ビデオパラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、コーディングされたスライス、補足エンハンスメント情報(SEI:supplemental enhancement information)、アクセスユニット区切り文字(an access unit delimiter)、フィラーデータ(filler data)、または別のタイプのデータを表すデータ、を含み得る。NALユニット中のデータは、様々なシンタックス構造を含み得る。
[0070]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。ビットストリームは、ビデオエンコーダ20によって符号化されたビデオデータのコーディングされた表現を含み得る。ビデオデコーダ30がビットストリームを受信するとき、ビデオデコーダ30は、ビットストリームに対して構文解析動作(a parsing operation)を実行し得る。ビデオデコーダ30が構文解析動作を実行するとき、ビデオデコーダ30は、ビットストリームからシンタックス要素を抽出し得る。ビデオデコーダ30は、ビットストリームから抽出されたシンタックス要素に基づいて、ビデオデータのピクチャを再構成し得る。シンタックス要素に基づいてビデオデータを再構成するためのプロセスは、一般に、シンタックス要素を生成するためにビデオエンコーダ20によって実行されるプロセスの逆であり得る。
[0071]ビデオデコーダ30がCUに関連付けられたシンタックス要素を抽出した後、ビデオデコーダ30は、シンタックス要素に基づいて、CUのPUのための予測ビデオブロックを生成し得る。さらに、ビデオデコーダ30は、CUのTUに関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ30は、CUのTUに関連付けられた残差ビデオブロックを再構成するために、変換係数ブロックに対して逆変換を実行し得る。予測ビデオブロックを生成し、残差ビデオブロックを再構成した後、ビデオデコーダ30は、予測ビデオブロックおよび残差ビデオブロックに基づいて、CUのビデオブロックを再構成し得る。このようにして、ビデオデコーダ30は、ビットストリーム中のシンタックス要素に基づいて、CUのビデオブロックを再構成し得る。
ビデオエンコーダ
[0072]図2Aは、本開示で説明する態様による技法を実装し得るビデオエンコーダの一例を示すブロック図である。ビデオエンコーダ20は、HEVCの場合など、ビデオフレームの単一のレイヤを処理するように構成され得る。さらに、ビデオエンコーダ20は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。一例として、予測処理ユニット100は、本開示で説明する技法のいずれかまたはすべてを実行するように構成され得る。別の実施形態では、ビデオエンコーダ20は、本開示で説明する技法のいずれかまたはすべてを実行するように構成された随意のレイヤ間予測ユニット128を含む。他の実施形態では、レイヤ間予測は、予測処理ユニット100(たとえば、インター予測ユニット121および/またはイントラ予測ユニット126)によって実行され得、その場合、レイヤ間予測ユニット128は省略され得る。しかしながら、本開示の態様はそのように限定されない。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ20の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ(図示せず)は、本開示で説明する技法のいずれかまたはすべてを実行するように構成され得る。
[0073]説明の目的で、本開示は、HEVCコーディングのコンテキストにおいてビデオエンコーダ20を説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。図2Aに示す例は、シングルレイヤコーデックのためのものである。しかしながら、図2Bに関してさらに説明するように、ビデオエンコーダ20の一部または全部は、マルチレイヤコーデックの処理のために複製され得る。
[0074]ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために、空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレーム内またはピクチャ内のビデオの時間的冗長性を低減または除去するために時間予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのいずれかを参照し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを参照し得る。
[0075]図2Aの例では、ビデオエンコーダ20は複数の機能構成要素を含む。ビデオエンコーダ20の機能構成要素は、予測処理ユニット100と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換ユニット110と、再構成ユニット112と、フィルタユニット113と、復号ピクチャバッファ114と、エントロピー符号化ユニット116とを含む。予測処理ユニット100は、インター予測ユニット121と、動き推定ユニット122と、動き補償ユニット124と、イントラ予測ユニット126と、レイヤ間予測ユニット128とを含む。他の例では、ビデオエンコーダ20は、より多いか、より少ないか、または異なる機能構成要素を含み得る。さらに、動き推定ユニット122および動き補償ユニット124は、高度に統合され得るが、図2Aの例では、説明の目的で別々に表されている。
[0076]ビデオエンコーダ20は、ビデオデータを受信し得る。ビデオエンコーダ20は、様々なソースからビデオデータを受信し得る。たとえば、ビデオエンコーダ20は、ビデオソース18(たとえば、図1Aまたは図1Bに示す)または別のソースからビデオデータを受信し得る。ビデオデータは、一連のピクチャを表し得る。ビデオデータを符号化するために、ビデオエンコーダ20は、ピクチャの各々に対して符号化演算(an encoding operation)を実行し得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化演算を実行し得る。スライスに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、スライス中のツリーブロックに対して符号化演算を実行し得る。
[0077]ツリーブロックに対して符号化演算を実行することの一部として、予測処理ユニット100は、ビデオブロックを徐々により小さいビデオブロックに分割するために、ツリーブロックのビデオブロックに対して4分木区分(quadtree partitioning)を実行し得る。より小さいビデオブロックの各々は、異なるCUに関連付けられ得る。たとえば、予測処理ユニット100は、ツリーブロックのビデオブロックを4つの等しいサイズのサブブロックに区分し得、サブブロックのうちの1つまたは複数を4つの等しいサイズのサブサブブロックに区分し得、以下同様である。
[0078]CUに関連付けられたビデオブロックのサイズは、8×8サンプルから、最大で64×64サンプル以上のツリーブロックのサイズにまでわたり得る。本開示では、「N×N」および「N by N」は、垂直方向の寸法および水平方向の寸法(dimensions)に関するビデオブロックのサンプルの寸法、たとえば、16×16サンプルまたは16 by 16サンプルを指すために、互換的に使用され得る。一般に、16×16のビデオブロックは、垂直方向に16個のサンプルを有し(y=16)、水平方向に16個のサンプルを有する(x=16)。同様に、N×Nのブロックは、一般に、垂直方向にN個のサンプルを有し、水平方向にN個のサンプルを有し、ここで、Nは非負整数値(a nonnegative integer value)を表す。
[0079]さらに、ツリーブロックに対して符号化演算を実行することの一部として、予測処理ユニット100は、ツリーブロック用の階層的な4分木データ構造(a hierarchical quadtree data structure)を生成し得る。たとえば、ツリーブロックは、4分木データ構造のルートノードに対応し得る。予測処理ユニット100が、ツリーブロックのビデオブロックを4つのサブブロックに区分する場合、ルートノードは、4分木データ構造中に4つの子ノードを有する。子ノードの各々は、サブブロックのうちの1つに関連付けられたCUに対応する。予測処理ユニット100が、サブブロックのうちの1つを4つのサブサブブロックに区分する場合、サブブロックに関連付けられたCUに対応するノードは、サブサブブロックのうちの1つに関連付けられたCUに各々が対応する、4つの子ノードを有し得る。
[0080]4分木データ構造の各ノードは、対応するツリーブロックまたはCUのシンタックスデータ(たとえば、シンタックス要素)を含み得る。たとえば、4分木の中のノードは、そのノードに対応するCUのビデオブロックが4つのサブブロックに区分(partitioned)(たとえば、分割(split))されているかどうかを示すスプリットフラグを含み得る。CUのためのシンタックス要素は、再帰的に定義され得、CUのビデオブロックがサブブロックに分割されているかどうかに依存し得る。ビデオブロックが区分されていないCUは、4分木データ構造におけるリーフノードに対応し得る。コーディングされたツリーブロックは、対応するツリーブロック用の4分木データ構造に基づくデータを含み得る。
[0081]ビデオエンコーダ20は、ツリーブロックの区分されていない各CUに対して符号化演算を実行し得る。ビデオエンコーダ20が、区分されていないCUに対して符号化演算を実行すると、ビデオエンコーダ20は、区分されていないCUの符号化された表現を表すデータを生成する。
[0082]CUに対して符号化演算を実行することの一部として、予測処理ユニット100は、CUの1つまたは複数のPUの中で、CUのビデオブロックを区分し得る。ビデオエンコーダ20およびビデオデコーダ30は、様々なPUサイズをサポートし得る。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ20およびビデオデコーダ30は、2N×2NまたはN×NのPUサイズと、2N×2N、2N×N、N×2N、N×N、2N×nU、nL×2N、nR×2N、または同様の対称PUサイズでのインター予測と、をサポートし得る。ビデオエンコーダ20およびビデオデコーダ30は、2N×nU、2N×nD、nL×2N、およびnR×2NというPUサイズに対する非対称区分もサポートし得る。いくつかの例では、予測処理ユニット100は、CUのビデオブロックの辺に直角に接触しない境界に沿って、CUのPUの間でCUのビデオブロックを区分するように、幾何学的な区分を実行し得る。
[0083]インター予測ユニット121は、CUの各PUに対してインター予測を実行し得る。インター予測は、時間圧縮を実現し得る。PUに対してインター予測を実行するために、動き推定ユニット122は、PUのための動き情報を生成し得る。動き補償ユニット124は、動き情報およびCUに関連付けられたピクチャ以外のピクチャ(たとえば、参照ピクチャ)の復号サンプルに基づいてPUのための、予測ビデオブロックを生成し得る。本開示では、動き補償ユニット124によって生成される予測ビデオブロックは、インター予測ビデオブロック(an inter-predicted video block)と呼ばれることがある。
[0084]スライスは、Iスライス、Pスライス、またはBスライスであり得る。動き推定ユニット122および動き補償ユニット124は、PUがIスライス中にあるのか、Pスライス中にあるのか、それともBスライス中にあるのかに応じて、CUのPUのための異なる演算(different operations)を実行し得る。Iスライス中では、すべてのPUがイントラ予測される。したがって、PUがIスライス中にある場合、動き推定ユニット122および動き補償ユニット124は、PUに対してインター予測を実行しない。
[0085]PUがPスライス中にある場合、PUを含むピクチャは、「リスト0」と呼ばれる参照ピクチャのリストに関連付けられる。リスト0中の参照ピクチャの各々は、他のピクチャのインター予測のために使用され得るサンプルを含む。動き推定ユニット122が、Pスライス中のPUに関して動き推定演算(motion estimation operation)を実行するとき、動き推定ユニット122は、PUのための参照ブロックについて、リスト0中の参照ピクチャを探索し得る。PUの参照ブロックは、PUのビデオブロック中のサンプルに最も密接に対応するサンプルのセット、たとえば、サンプルのブロックであり得る。動き推定ユニット122は、参照ピクチャ中のサンプルのセットがどの程度密接にPUのビデオブロック中のサンプルに対応するかを決定するために、様々なメトリックを使用し得る。たとえば、動き推定ユニット122は、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって、参照ピクチャ中のサンプルのセットがどの程度密接にPUのビデオブロック中のサンプルに対応するかを決定し得る。
[0086]Pスライス中のPUの参照ブロックを識別した後、動き推定ユニット122は、参照ブロックを含んでいる、リスト0中の参照ピクチャを示す参照インデックスと、PUと参照ブロックとの間の空間変位(a spatial displacement)を示す動きベクトルとを生成し得る。様々な例において、動き推定ユニット122は、動きベクトルを異なる精度に生成し得る。たとえば、動き推定ユニット122は、1/4サンプル精度、1/8サンプル精度、または他の分数のサンプル精度(fractional sample precision)で動きベクトルを生成し得る。分数のサンプル精度の場合、参照ブロック値は、参照ピクチャ中の整数位置のサンプル値から補間され得る。動き推定ユニット122は、PUの動き情報として、参照インデックスと動きベクトルとを出力し得る。動き補償ユニット124は、PUの動き情報によって識別された参照ブロックに基づいて、PUの予測ビデオブロックを生成し得る。
[0087]PUがBスライス中にある場合、PUを含むピクチャは、「リスト0」および「リスト1」と呼ばれる参照ピクチャの2つのリストに関連付けられ得る。いくつかの例では、Bスライスを含むピクチャは、リスト0とリスト1の組合せである、リストの組合せに関連付けられ得る。
[0088]さらに、PUがBスライス中にある場合、動き推定ユニット122は、PUのための単方向予測または双方向予測を実行し得る。動き推定ユニット122が、PUのための単方向予測を実行するとき、動き推定ユニット122は、PUのための参照ブロックについて、リスト0またはリスト1の参照ピクチャを探索し得る。動き推定ユニット122は、次いで、参照ブロックを含む、リスト0またはリスト1中の参照ピクチャを示す参照インデックスと、PUと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット122は、PUの動き情報として、参照インデックスと、予測方向インジケータと、動きベクトルとを出力し得る。予測方向インジケータは、参照インデックスが、リスト0中の参照ピクチャを示すのか、それともリスト1中の参照ピクチャを示すのかを示し得る。動き補償ユニット124は、PUの動き情報によって示された参照ブロックに基づいて、PUの予測ビデオブロックを生成し得る。
[0089]動き推定ユニット122が、PUのための双方向予測を実行するとき、動き推定ユニット122は、PUのための参照ブロックについて、リスト0中の参照ピクチャを探索し得、また、PUのための別の参照ブロックについて、リスト1中の参照ピクチャを探索し得る。動き推定ユニット122は、次いで、参照ブロックを含む、リスト0およびリスト1中の参照ピクチャを示す参照インデックスと、参照ブロックとPUとの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット122は、PUの動き情報として、PUの参照インデックスと動きベクトルとを出力し得る。動き補償ユニット124は、PUの動き情報によって示された参照ブロックに基づいて、PUの予測ビデオブロックを生成し得る。
[0090]いくつかの事例では、動き推定ユニット122は、PUのための動き情報のフルセットをエントロピー符号化ユニット116に出力しない。そうではなく、動き推定ユニット122は、別のPUの動き情報を参照して、PUの動き情報をシグナリングし得る。たとえば、動き推定ユニット122は、PUの動き情報が、隣接PUの動き情報と十分に類似していると決定し得る。この例では、動き推定ユニット122は、PUに関連付けられたシンタックス構造において、PUが隣接PUと同じ動き情報を有することをビデオデコーダ30に示す値を示し得る。別の例では、動き推定ユニット122は、PUに関連付けられたシンタックス構造において、隣接PUと動きベクトル差分(MVD:a motion vector difference)とを識別し得る。動きベクトル差分は、PUの動きベクトルと、示される隣接PUの動きベクトルとの差分を示す。ビデオデコーダ30は、PUの動きベクトルを決定するために、示された隣接PUの動きベクトルと、動きベクトル差分とを使用し得る。第2のPUの動き情報をシグナリングするときに第1のPUの動き情報を参照することによって、ビデオエンコーダ20は、より少数のビットを使用して、第2のPUの動き情報をシグナリングすることが可能であり得る。
[0091]図7Aおよび図7Bを参照しながら以下でさらに説明するように、予測処理ユニット100は、図7Aおよび図7Bに示される方法を実行することによって、PU(または他の参照レイヤおよび/またはエンハンスメントレイヤのブロック(enhancement layer blocks)またはビデオユニット)をコーディング(たとえば、符号化または復号)するように構成され得る。たとえば、(たとえば、動き推定ユニット122および/または動き補償ユニット124を介した)インター予測ユニット121、イントラ予測ユニット126、またはレイヤ間予測ユニット128は、一緒にまたは別々に、図7Aおよび図7Bに示される方法を実行するように構成され得る。
[0092]CUに対して符号化演算を実行することの一部として、イントラ予測ユニット126は、CUのPUに対してイントラ予測を実行し得る。イントラ予測は、空間圧縮を実現し得る。イントラ予測ユニット126がPUに対してイントラ予測を実行するとき、イントラ予測ユニット126は、同じピクチャ中の他のPUの復号サンプルに基づいて、PUのための予測データを生成し得る。PUのための予測データは、予測ビデオブロックと様々なシンタックス要素とを含み得る。イントラ予測ユニット126は、Iスライス、Pスライス、およびBスライス中のPUに対してイントラ予測を実行し得る。
[0093]PUに対してイントラ予測を実行するために、イントラ予測ユニット126は、PUのための予測データの複数のセットを生成するための、複数のイントラ予測モードを使用し得る。イントラ予測ユニット126がPUのための予測データのセットを生成するためにイントラ予測モードを使用するとき、イントラ予測ユニット126は、イントラ予測モードと関連する方向および/または勾配(gradient)で、隣接PUのビデオブロックからPUのビデオブロックにわたって、サンプルを延ばし得る。隣接PUは、PU、CU、およびツリーブロックについて左から右、上から下の符号化順序(encoding order)を仮定すると、PUの上、右上、左上、または左にあり得る。イントラ予測ユニット126は、PUのサイズに応じて、様々な数のイントラ予測モード、たとえば、33個の方向性イントラ予測モード(33 directional intra prediction modes)を使用し得る。
[0094]予測処理ユニット100は、動き補償ユニット124によってPUのために生成された予測データ、またはイントラ予測ユニット126によってPUのために生成された予測データの中から、PUのための予測データを選択し得る。いくつかの例では、予測処理ユニット100は、予測データのセットのレート/ひずみメトリック(rate/distortion metrics)に基づいて、PUのための予測データを選択する。
[0095]予測処理ユニット100が、イントラ予測ユニット126によって生成された予測データを選択する場合、予測処理ユニット100は、PUのための予測データを生成するために使用されたイントラ予測モード、たとえば、選択されたイントラ予測モード、をシグナリングし得る。予測処理ユニット100は、選択されたイントラ予測モードを様々な方法でシグナリングし得る。たとえば、選択されたイントラ予測モードが隣接PUのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接PUのイントラ予測モードは現在のPUに対して最確モード(the most probable mode)であり得る。したがって、予測処理ユニット100は、選択されたイントラ予測モードが隣接PUのイントラ予測モードと同じであることを示すためのシンタックス要素を生成し得る。
[0096]上記で説明したように、ビデオエンコーダ20は、レイヤ間予測ユニット128を含み得る。レイヤ間予測ユニット128は、SVCにおいて利用可能である1つまたは複数の異なるレイヤ(たとえば、ベースレイヤまたは参照レイヤ)を使用して、現在のブロック(たとえば、EL中の現在のブロック)を予測するように構成される。そのような予測は、レイヤ間予測と呼ばれることがある。レイヤ間予測ユニット128は、レイヤ間冗長性を低減するための予測方法を利用し、それによって、コーディング効率を改善し、計算リソース要件を低減する。レイヤ間予測のいくつかの例は、レイヤ間イントラ予測と、レイヤ間動き予測と、レイヤ間残差予測とを含む。レイヤ間イントラ予測は、エンハンスメントレイヤ中の現在のブロックを予測するために、ベースレイヤの中でコロケートされているブロック(co-located blocks)の再構成を使用する。レイヤ間動き予測は、エンハンスメントレイヤ中の動作を予測するために、ベースレイヤの動き情報を使用する。レイヤ間残差予測は、エンハンスメントレイヤの残差を予測するために、ベースレイヤの残差を使用する。レイヤ間予測方式の各々について、以下でより詳細に説明する。
[0097]予測処理ユニット100がCUのPUのための予測データを選択した後、残差生成ユニット102は、CUのビデオブロックからCUのPUの予測ビデオブロックを差し引くこと(たとえば、マイナス符号によって示される)によって、CUの残差データを生成し得る。CUの残差データは、CUのビデオブロック中のサンプルの異なるサンプル成分に対応する、2D残差ビデオブロックを含み得る。たとえば、残差データは、CUのPUの予測ビデオブロック中のサンプルのルミナンス成分と、CUの元のビデオブロック中のサンプルのルミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。さらに、CUの残差データは、CUのPUの予測ビデオブロック中のサンプルのクロミナンス成分と、CUの元のビデオブロック中のサンプルのクロミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。
[0098]予測処理ユニット100は、CUの残差ビデオブロックをサブブロックに区分するために、4分木区分を実行し得る。分割されていない各残差ビデオブロックは、CUの異なるTUに関連付けられ得る。CUのTUに関連付けられる残差ビデオブロックのサイズおよび位置は、CUのPUに関連付けられるビデオブロックのサイズおよび位置に基づいてもよく、または基づかなくてもよい。「残差4分木(residual quad tree)」(RQT)として知られる4分木構造は、残差ビデオブロックの各々に関連付けられたノードを含み得る。CUのTUは、RQTのリーフノードに対応し得る。
[0099]変換処理ユニット104は、TUに関連付けられた残差ビデオブロックに1つまたは複数の変換を適用することによって、CUの各TUのための1つまたは複数の変換係数ブロックを生成し得る。変換係数ブロックの各々は、変換係数の2D行列であり得る。変換処理ユニット104は、TUに関連付けられた残差ビデオブロックに様々な変換を適用し得る。たとえば、変換処理ユニット104は、離散コサイン変換(DCT)、方向変換(a directional transform)、または概念的に類似の変換を、TUに関連付けられた残差ビデオブロックに適用し得る。
[00100]変換処理ユニット104が、TUに関連付けられた変換係数ブロックを生成した後、量子化ユニット106は、変換係数ブロック中の変換係数を量子化し得る。量子化ユニット106は、CUに関連付けられたQP値に基づいて、CUのTUに関連付けられた変換係数ブロックを量子化し得る。
[00101]ビデオエンコーダ20は、様々な方法でQP値をCUに関連付け得る。たとえば、ビデオエンコーダ20は、CUに関連付けられたツリーブロックに対して、レートひずみ分析を実行し得る。レートひずみ分析では、ビデオエンコーダ20は、ツリーブロックに対して符号化演算を複数回実行することによって、ツリーブロックの複数のコーディングされた表現を生成し得る。ビデオエンコーダ20が、ツリーブロックの異なる符号化表現を生成するとき、ビデオエンコーダ20は、異なるQP値をCUに関連付け得る。最小のビットレートおよびひずみメトリックを有するツリーブロックのコーディングされた表現で所与のQP値がCUに関連付けられるとき、ビデオエンコーダ20は、所与のQP値がCUに関連付けられることをシグナリングし得る。
[00102]逆量子化ユニット108および逆変換ユニット110は、変換係数ブロックから残差ビデオブロックを再構成するために、それぞれ、逆量子化と逆変換とを変換係数ブロックに適用し得る。再構成ユニット112は、TUに関連付けられた再構成されたビデオブロックを生成するために、再構成された残差ビデオブロックを、予測処理ユニット100によって生成された1つまたは複数の予測ビデオブロックからの対応するサンプルに追加し得る。このようにCUの各TUについてビデオブロックを再構成することによって、ビデオエンコーダ20は、CUのビデオブロックを再構成し得る。
[00103]再構成ユニット112がCUのビデオブロックを再構成した後、フィルタユニット113は、CUに関連付けられたビデオブロックにおけるブロッキングアーティファクトを低減するために、デブロッキング演算を実行し得る。1つまたは複数のデブロッキング演算を実行した後、フィルタユニット113は、CUの再構成されたビデオブロックを復号ピクチャバッファ114に記憶し得る。動き推定ユニット122および動き補償ユニット124は、後続のピクチャのPUに対してインター予測を実行するために、再構成されたビデオブロックを含む参照ピクチャを使用し得る。さらに、イントラ予測ユニット126は、CUと同じピクチャ中の他のPUに対してイントラ予測を実行するために、復号ピクチャバッファ114の中の再構成されたビデオブロックを使用し得る。
[00104]エントロピー符号化ユニット116は、ビデオエンコーダ20の他の機能構成要素からデータを受信し得る。たとえば、エントロピー符号化ユニット116は、量子化ユニット106から変換係数ブロックを受信し得、予測処理ユニット100からシンタックス要素を受信し得る。エントロピー符号化ユニット116がデータを受信するとき、エントロピー符号化ユニット116は、エントロピー符号化データを生成するために、1つまたは複数のエントロピー符号化演算を実行し得る。たとえば、ビデオエンコーダ20は、コンテキスト適応型可変長コーディング(CAVLC)演算、CABAC演算、変数間(V2V:variable-to-variable)レングスコーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)演算、確率間隔区分エントロピー(PIPE)コーディング演算、または別のタイプのエントロピー符号化演算をデータに対して実行し得る。エントロピー符号化ユニット116は、エントロピー符号化データを含むビットストリームを出力し得る。
[00105]データに対してエントロピー符号化演算を実行することの一部として、エントロピー符号化ユニット116は、コンテキストモデルを選択し得る。エントロピー符号化ユニット116がCABAC演算を実行している場合、コンテキストモデルは、特定の値を有する特定のビンの確率の推定値を示し得る。CABACのコンテキストでは、「ビン(bin)」という用語は、シンタックス要素の2値化されたバージョンのビットを指すために使用される。
マルチレイヤビデオエンコーダ
[00106]図2Bは、本開示で説明する態様による技法を実装し得るマルチレイヤビデオエンコーダ21の一例を示すブロック図である。ビデオエンコーダ21は、SHVCおよびマルチビューコーディングの場合など、マルチレイヤビデオフレームを処理するように構成され得る。さらに、ビデオエンコーダ21は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。
[00107]ビデオエンコーダ21はビデオエンコーダ20Aとビデオエンコーダ20Bとを含み、それらの各々はビデオエンコーダ20として構成され得、ビデオエンコーダ20に関して上記で説明した機能を実行し得る。さらに、参照番号の再利用によって示されるように、ビデオエンコーダ20Aおよび20Bは、ビデオエンコーダ20としてのシステムおよびサブシステムのうちの少なくともいくつかを含み得る。ビデオエンコーダ21は、2つのビデオエンコーダ20Aと20Bとを含むように示されるが、ビデオエンコーダ21は、そのように限定されず、任意の数のビデオエンコーダ20のレイヤを含み得る。いくつかの実施形態では、ビデオエンコーダ21は、アクセスユニット中の各ピクチャまたはフレームについてビデオエンコーダ20を含み得る。たとえば、5つのピクチャを含むアクセスユニットは、5つのエンコーダレイヤを含むビデオエンコーダによって処理または符号化され得る。いくつかの実施形態では、ビデオエンコーダ21は、アクセスユニット中のフレームよりも多くのエンコーダレイヤを含み得る。いくつかのそのような場合では、ビデオエンコーダのレイヤのうちのいくつかは、いくつかのアクセスユニットを処理するときに非アクティブであり得る。
[00108]ビデオエンコーダ20Aおよび20Bに加えて、ビデオエンコーダ21は、リサンプリングユニット(an resampling unit)90を含み得る。リサンプリングユニット90は、場合によっては、たとえば、エンハンスメントレイヤを作成するために、受信されたビデオフレームのベースレイヤをアップサンプリングし得る。リサンプリングユニット90は、フレームの受信されたベースレイヤに関連付けられた特定の情報をアップサンプリングし得るが、他の情報をアップサンプリングしないことがある。たとえば、リサンプリングユニット90は、ベースレイヤの空間サイズまたはピクセルの数をアップサンプリングし得るが、スライスの数またはピクチャ順序カウント(picture order count)は一定のままであり得る。場合によっては、リサンプリングユニット90は、受信されたビデオを処理しないことがあり、および/または随意であり得る。たとえば、場合によっては、予測処理ユニット100は、アップサンプリングを実行し得る。いくつかの実施形態では、リサンプリングユニット90は、レイヤをアップサンプリングし、スライス境界ルール(slice boundary rules)および/またはラスタ走査ルールのセットに準拠するために1つまたは複数のスライスを再編成、再定義、変更、または調整するように構成される。アクセスユニット中のベースレイヤまたは下位レイヤをアップサンプリングするものとして主に説明したが、場合によっては、リサンプリングユニット90は、レイヤをダウンサンプリングし得る。たとえば、ビデオのストリーミング中に帯域幅が低減した場合、フレームは、アップサンプリングされるのではなく、ダウンサンプリングされ得る。
[00109]リサンプリングユニット90は、下位レイヤエンコーダ(たとえば、ビデオエンコーダ20A)の復号ピクチャバッファ114からピクチャまたはフレーム(またはピクチャに関連付けられたピクチャ情報)を受信し、ピクチャ(または受信されたピクチャ情報)をアップサンプリングするように構成され得る。このアップサンプリングされたピクチャは、次いで、下位レイヤエンコーダと同じアクセスユニット中のピクチャを符号化するように構成された、上位レイヤエンコーダ(たとえば、ビデオエンコーダ20B)の予測処理ユニット100に供給され得る。場合によっては、上位レイヤエンコーダは、下位レイヤエンコーダから除去された1つのレイヤエンコーダである。他の場合には、図2Bのレイヤ0ビデオエンコーダとレイヤ1エンコーダとの間に、1つまたは複数の上位レイヤエンコーダがあり得る。
[00110]場合によっては、リサンプリングユニット90は、省略またはバイパスされ得る。そのような場合、ビデオエンコーダ20Aの復号ピクチャバッファ114からのピクチャは、直接、または少なくともリサンプリングユニット90に供給されずに、ビデオエンコーダ20Bの予測処理ユニット100に供給され得る。たとえば、ビデオエンコーダ20Bに供給されたビデオデータ、およびビデオエンコーダ20Aの復号ピクチャバッファ114からの参照ピクチャが、同じサイズまたは解像度である場合、参照ピクチャは、いかなるリサンプリングも伴わずにビデオエンコーダ20Bに供給され得る。
[00111]いくつかの実施形態では、ビデオエンコーダ21は、ビデオエンコーダ20Aにビデオデータを供給する前に、ダウンサンプリングユニット94を使用して下位レイヤエンコーダに供給されるべきビデオデータをダウンサンプリングする。代替的に、ダウンサンプリングユニット94は、ビデオデータをアップサンプリングまたはダウンサンプリングすることが可能なリサンプリングユニット90であり得る。また他の実施形態では、ダウンサンプリングユニット94は省略され得る。
[00112]図2Bに示すように、ビデオエンコーダ21は、マルチプレクサ98、またはmuxをさらに含み得る。mux98は、ビデオエンコーダ21からの合成ビットストリーム(a combined bitstream)を出力することができる。合成ビットストリームは、ビデオエンコーダ20Aおよび20Bの各々からビットストリームを取ることと、所与の時間において出力されるビットストリームを交替することとによって、作成され得る。場合によっては、2つの(または、3つ以上のビデオエンコーダレイヤの場合には、より多くの)ビットストリームからのビットが一度に1ビットずつ交替され得るが、多くの場合、ビットストリームは別様に合成される。たとえば、出力ビットストリームは、選択されたビットストリームを一度に1ブロックずつ交替することによって作成され得る。別の例では、出力ビットストリームは、ビデオエンコーダ20Aおよび20Bの各々からの非1:1比のブロックを出力することによって作成され得る。たとえば、ビデオエンコーダ20Aから出力される各ブロックに対して2つのブロックがビデオエンコーダ20Bから出力され得る。いくつかの実施形態では、mux98からの出力ストリームは、プリプログラムされ得る。他の実施形態では、mux98は、ソースモジュール12を含むソースデバイス上のプロセッサからなど、ビデオエンコーダ21の外部のシステムから受信された制御信号に基づいて、ビデオエンコーダ20A、20Bからのビットストリームを合成し得る。制御信号は、ビデオソース18からのビデオの解像度またはビットレートに基づいて、リンク16の帯域幅に基づいて、ユーザに関連するサブスクリプション(たとえば、有料サブスクリプション対無料サブスクリプション(a paid subscription versus a free subscription))に基づいて、またはビデオエンコーダ21からの望まれる解像度出力を決定するための任意の他のファクタに基づいて生成され得る。
ビデオデコーダ
[00113]図3Aは、本開示で説明する態様による技法を実装し得るビデオデコーダの一例を示すブロック図である。ビデオデコーダ30は、HEVCの場合など、ビデオフレームの単一のレイヤを処理するように構成され得る。さらに、ビデオデコーダ30は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。一例として、動き補償ユニット162および/またはイントラ予測ユニット164は、本開示で説明する技法のうちのいずれかまたはすべてを実行するように構成され得る。一実施形態では、ビデオデコーダ30は、本開示で説明する技法のいずれかまたはすべてを実行するように構成されたレイヤ間予測ユニット166を随意に含み得る。他の実施形態では、レイヤ間予測は、予測処理ユニット152(たとえば、動き補償ユニット162および/またはイントラ予測ユニット164)によって実行され得、その場合、レイヤ間予測ユニット166は省略され得る。しかしながら、本開示の態様はそのように限定されない。いくつかの例では、本開示で説明する技法は、ビデオデコーダ30の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ(図示せず)は、本開示で説明する技法のいずれかまたはすべてを実行するように構成され得る。
[00114]説明の目的で、本開示は、HEVCコーディングのコンテキストにおいてビデオデコーダ30を説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。図3Aに示す例は、シングルレイヤコーデックのためのものである。しかしながら、図3Bに関してさらに説明するように、ビデオデコーダ30の一部または全部は、マルチレイヤコーデックの処理のために複製され得る。
[00115]図3Aの例では、ビデオデコーダ30は複数の機能構成要素を含む。ビデオデコーダ30の機能構成要素は、エントロピー復号ユニット150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換ユニット156と、再構成ユニット158と、フィルタユニット159と、復号ピクチャバッファ160とを含む。予測処理ユニット152は、動き補償ユニット162と、イントラ予測ユニット164と、レイヤ間予測ユニット166とを含む。いくつかの例では、ビデオデコーダ30は、図2Aのビデオエンコーダ20に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。他の例では、ビデオデコーダ30は、より多いか、より少ないか、または異なる機能構成要素を含み得る。
[00116]ビデオデコーダ30は、符号化ビデオデータを備えるビットストリームを受信し得る。ビットストリームは、複数のシンタックス要素を含み得る。ビデオデコーダ30がビットストリームを受信したとき、エントロピー復号ユニット150は、ビットストリームに対して構文解析動作を実行し得る。ビットストリームに対して構文解析動作を実行した結果として、エントロピー復号ユニット150は、ビットストリームからシンタックス要素を抽出し得る。構文解析動作を実行することの一部として、エントロピー復号ユニット150は、ビットストリーム中のエントロピー符号化シンタックス要素をエントロピー復号し得る。予測処理ユニット152、逆量子化ユニット154、逆変換ユニット156、再構成ユニット158、およびフィルタユニット159は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成する再構成演算を実行し得る。
[00117]上記で説明したように、ビットストリームは、一連のNALユニットを備え得る。ビットストリームのNALユニットは、ビデオパラメータセットNALユニット、シーケンスパラメータセットNALユニット、ピクチャパラメータセットNALユニット、SEI NALユニットなどを含み得る。ビットストリームに対して構文解析動作を実行することの一部として、エントロピー復号ユニット150は、シーケンスパラメータセットNALユニットからのシーケンスパラメータセット、ピクチャパラメータセットNALユニットからのピクチャパラメータセット、SEI NALユニットからのSEIデータなどを抽出しエントロピー復号する、構文解析動作を実行し得る。
[00118]さらに、ビットストリームのNALユニットは、コーディングされたスライスNALユニットを含み得る。ビットストリームに対して構文解析動作を実行することの一部として、エントロピー復号ユニット150は、コーディングされたスライスNALユニットからコーディングされたスライスを抽出しエントロピー復号する、構文解析動作を実行し得る。コーディングされたスライスの各々は、スライスヘッダと、スライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含み得る。スライスヘッダ中のシンタックス要素は、スライスを含むピクチャに関連付けられたピクチャパラメータセットを識別するシンタックス要素を含み得る。エントロピー復号ユニット150は、スライスヘッダを復元するために、コーディングされたスライスヘッダ中のシンタックス要素に対してCABAC復号演算などのエントロピー復号演算を実行し得る。
[00119]コーディングされたスライスのNALユニットからスライスデータを抽出することの一部として、エントロピー復号ユニット150は、スライスデータ中のコーディングされたCUからシンタックス要素を抽出する構文解析動作を実行し得る。抽出されたシンタックス要素は、変換係数ブロックに関連付けられたシンタックス要素を含み得る。エントロピー復号ユニット150は、次いで、シンタックス要素のうちのいくつかに対してCABAC復号演算を実行し得る。
[00120]エントロピー復号ユニット150が、区分されていないCUに対して構文解析動作を実行した後、ビデオデコーダ30は、区分されていないCUに対して再構成演算を実行し得る。区分されていないCUに対して再構成演算を実行するために、ビデオデコーダ30は、CUの各TUに対して再構成演算を実行し得る。CUの各TUについて再構成演算を実行することによって、ビデオデコーダ30は、CUに関連付けられた残差ビデオブロックを再構成し得る。
[00121]TUに対して再構成演算を実行することの一部として、逆量子化ユニット154は、TUに関連付けられた変換係数ブロックを逆量子化(inverse quantize)、たとえば、逆量子化(de-quantize)し得る。逆量子化ユニット154は、HEVCのために提案された、またはH.264復号規格によって定義された逆量子化処理と同様の方法で、変換係数ブロックを逆量子化し得る。逆量子化ユニット154は、量子化の程度を決定し、同様に、逆量子化ユニット154が適用すべき逆量子化の程度を決定するために、変換係数ブロックのCUのためにビデオエンコーダ20によって計算される量子化パラメータQPを使用し得る。
[00122]逆量子化ユニット154が変換係数ブロックを逆量子化した後、逆変換ユニット156は、変換係数ブロックに関連付けられたTUのための残差ビデオブロックを生成し得る。逆変換ユニット156は、TUのための残差ビデオブロックを生成するために、変換係数ブロックに逆変換を適用し得る。たとえば、逆変換ユニット156は、変換係数ブロックに、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT:Karhunen-Loeve transform)、逆回転変換(an inverse rotational transform)、逆方向変換(an inverse directional transform)、または別の逆変換を適用し得る。いくつかの例では、逆変換ユニット156は、ビデオエンコーダ20からのシグナリングに基づいて、変換係数ブロックに適用すべき逆変換を決定し得る。そのような例では、逆変換ユニット156は、変換係数ブロックに関連付けられたツリーブロックの4分木のルートノードにおいてシグナリングされた変換に基づいて、逆変換を決定し得る。他の例では、逆変換ユニット156は、ブロックサイズ、コーディングモードなど、1つまたは複数のコーディング特性から逆変換を推論し得る。いくつかの例では、逆変換ユニット156はカスケード逆変換を適用し得る。
[00123]いくつかの例では、動き補償ユニット162は、補間フィルタに基づいて補間を実行することによって、PUの予測ビデオブロックを改良し(refine)得る。サブサンプル精度(sub-sample precision)を有する動き補償のために使用されるべき補間フィルタ用の識別子は、シンタックス要素に含まれ得る。動き補償ユニット162は、参照ブロックのサブ整数サンプル(sub-integer samples)についての補間値(interpolated values)を計算するために、PUの予測ビデオブロックの生成中にビデオエンコーダ20によって使用された同じ補間フィルタを使用し得る。動き補償ユニット162は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを決定し得、予測ビデオブロックを生成するためにその補間フィルタを使用し得る。
[00124]図7Aおよび図7Bを参照しながら以下でさらに説明するように、予測処理ユニット152は、図7Aおよび図7Bに示される方法を実行することによって、PU(または他の参照レイヤおよび/またはエンハンスメントレイヤのブロックまたはビデオユニット)をコーディング(たとえば、符号化または復号)し得る。たとえば、動き補償ユニット162、イントラ予測ユニット164、またはレイヤ間予測ユニット166は、一緒にまたは別々に、図7Aおよび図7Bに示される方法を実行するように構成され得る。
[00125]PUが、イントラ予測を使用して符号化される場合、イントラ予測ユニット164は、PUのための予測ビデオブロックを生成するためにイントラ予測を実行し得る。たとえば、イントラ予測ユニット164は、ビットストリーム中のシンタックス要素に基づいて、PUのためのイントラ予測モードを決定し得る。ビットストリームは、PUのイントラ予測モードを決定するためにイントラ予測ユニット164が使用し得るシンタックス要素を含み得る。
[00126]いくつかの事例では、シンタックス要素は、イントラ予測ユニット164が現在のPUのイントラ予測モードを決定するために別のPUのイントラ予測モードを使用するべきであることを、示し得る。たとえば、現在のPUのイントラ予測モードが隣接PUのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接PUのイントラ予測モードは、現在のPUに対して最確モードであり得る。したがって、この例では、ビットストリームは、PUのイントラ予測モードが隣接PUのイントラ予測モードと同じであることを示す、小さいシンタックス要素を含み得る。イントラ予測ユニット164は、次いで、空間的に隣接するPUのビデオブロックに基づいてPUのための予測データ(たとえば、予測サンプル(predicted samples))を生成するために、イントラ予測モードを使用し得る。
[00127]上記で説明したように、ビデオデコーダ30もレイヤ間予測ユニット166を含み得る。レイヤ間予測ユニット166は、SVCにおいて利用可能である1つまたは複数の異なるレイヤ(たとえば、ベースレイヤまたは参照レイヤ)を使用して、現在のブロック(たとえば、EL中の現在のブロック)を予測するように構成される。そのような予測は、レイヤ間予測と呼ばれることがある。レイヤ間予測ユニット166は、レイヤ間冗長性を低減するための予測方法を利用し、それによって、コーディング効率を改善し、計算リソース要件を低減する。レイヤ間予測のいくつかの例は、レイヤ間イントラ予測と、レイヤ間動き予測と、レイヤ間残差予測とを含む。レイヤ間イントラ予測は、エンハンスメントレイヤ中の現在のブロックを予測するために、ベースレイヤの中でコロケートされているブロックの再構成を使用する。レイヤ間動き予測は、エンハンスメントレイヤ中の動作を予測するために、ベースレイヤの動き情報を使用する。レイヤ間残差予測は、エンハンスメントレイヤの残差を予測するために、ベースレイヤの残差を使用する。レイヤ間予測方式の各々について、以下でより詳細に説明する。
[00128]再構成ユニット158は、CUのビデオブロックを再構成するために、CUのTUに関連付けられた残差ビデオブロックおよびCUのPUの予測ビデオブロック、たとえば、適用可能なとき、イントラ予測データまたはインター予測データのいずれか、を使用し得る。したがって、ビデオデコーダ30は、ビットストリーム中のシンタックス要素に基づいて予測ビデオブロックと残差ビデオブロックとを生成し得、予測ビデオブロックと残差ビデオブロックとに基づいてビデオブロックを生成し得る。
[00129]再構成ユニット158がCUのビデオブロックを再構成した後、フィルタユニット159は、CUに関連付けられたブロッキングアーティファクトを低減するためにデブロッキング演算を実行し得る。フィルタユニット159が、CUに関連付けられたブロッキングアーティファクトを低減するためにデブロッキング演算を実行した後、ビデオデコーダ30は、CUのビデオブロックを復号ピクチャバッファ160に記憶し得る。復号ピクチャバッファ160は、次の動き補償、イントラ予測、および図1Aまたは図1Bのディスプレイデバイス32などのディスプレイデバイス上での提示のために、参照ピクチャを提供し得る。たとえば、ビデオデコーダ30は、復号ピクチャバッファ160の中のビデオブロックに基づいて、他のCUのPUに対して、イントラ予測動作またはインター予測動作を実行し得る。
マルチレイヤデコーダ
[00130]図3Bは、本開示で説明する態様による技法を実装し得るマルチレイヤビデオデコーダ31の一例を示すブロック図である。ビデオデコーダ31は、SHVCおよびマルチビューコーディングの場合など、マルチレイヤビデオフレームを処理するように構成され得る。さらに、ビデオデコーダ31は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。
[00131]ビデオデコーダ31は、ビデオデコーダ30Aとビデオデコーダ30Bとを含み、それらの各々はビデオデコーダ30として構成され得、ビデオデコーダ30に関して上記で説明した機能を実行し得る。さらに、参照番号の再利用によって示されるように、ビデオデコーダ30Aおよび30Bは、ビデオデコーダ30としてのシステムおよびサブシステムのうちの少なくともいくつかを含み得る。ビデオデコーダ31は、2つのビデオデコーダ30Aと30Bとを含むように示されるが、ビデオデコーダ31は、そのように限定されず、任意の数のビデオデコーダ30のレイヤを含み得る。いくつかの実施形態では、ビデオデコーダ31は、アクセスユニット中の各ピクチャまたはフレームについてビデオデコーダ30を含み得る。たとえば、5つのピクチャを含むアクセスユニットは、5つのデコーダレイヤを含むビデオデコーダによって処理または復号され得る。いくつかの実施形態では、ビデオデコーダ31は、アクセスユニット中のフレームよりも多くのデコーダレイヤを含み得る。いくつかのそのような場合では、ビデオデコーダのレイヤのうちのいくつかは、いくつかのアクセスユニットを処理するときに非アクティブであり得る。
[00132]ビデオデコーダ30Aおよび30Bに加えて、ビデオデコーダ31は、アップサンプリングユニット92を含み得る。いくつかの実施形態では、アップサンプリングユニット92は、フレームまたはアクセスユニットのための参照ピクチャリストに追加されるべきエンハンストレイヤを作成するために、受信されたビデオフレームのベースレイヤをアップサンプリングし得る。このエンハンストレイヤは、復号ピクチャバッファ160に記憶され得る。いくつかの実施形態では、アップサンプリングユニット92は、図2Aのリサンプリングユニット90に関して説明した実施形態の一部または全部を含むことができる。いくつかの実施形態では、アップサンプリングユニット92は、レイヤをアップサンプリングし、スライス境界ルールおよび/またはラスタ走査ルールのセットに準拠するために1つまたは複数のスライスを再編成、再定義、変更、または調整するように構成される。場合によっては、アップサンプリングユニット92は、受信されたビデオフレームのレイヤをアップサンプリングおよび/またはダウンサンプリングするように構成されたリサンプリングユニットであり得る。
[00133]アップサンプリングユニット92は、下位レイヤデコーダ(たとえば、ビデオデコーダ30A)の復号ピクチャバッファ160からピクチャまたはフレーム(またはピクチャに関連付けられたピクチャ情報)を受信し、ピクチャ(または受信されたピクチャ情報)をアップサンプリングするように構成され得る。このアップサンプリングされたピクチャは、次いで、下位レイヤデコーダと同じアクセスユニット中のピクチャを復号するように構成された、上位レイヤデコーダ(たとえば、ビデオデコーダ30B)の予測処理ユニット152に供給され得る。場合によっては、上位レイヤデコーダは、下位レイヤデコーダから除去された1つのレイヤである。他の場合には、図3Bのレイヤ0デコーダとレイヤ1デコーダとの間に、1つまたは複数の上位レイヤデコーダがあり得る。
[00134]場合によっては、アップサンプリングユニット92は、省略またはバイパスされ得る。そのような場合、ビデオデコーダ30Aの復号ピクチャバッファ160からのピクチャは、直接、または少なくともアップサンプリングユニット92に供給されずに、ビデオデコーダ30Bの予測処理ユニット152に供給され得る。たとえば、ビデオデコーダ30Bに供給されたビデオデータ、およびビデオデコーダ30Aの復号ピクチャバッファ160からの参照ピクチャが、同じサイズまたは解像度である場合、参照ピクチャは、アップサンプリングを伴わずにビデオデコーダ30Bに供給され得る。さらに、いくつかの実施形態では、アップサンプリングユニット92は、ビデオデコーダ30Aの復号ピクチャバッファ160から受信された参照ピクチャを、アップサンプリングまたはダウンサンプリングするように構成されたリサンプリングユニット90であり得る。
[00135]図3Bに示すように、ビデオデコーダ31は、デマルチプレクサ99、またはdemuxをさらに含み得る。demux99は、符号化ビデオビットストリームを複数のビットストリームに分割することができ、demux99によって出力された各ビットストリームは、異なるビデオデコーダ30Aおよび30Bに供給される。複数のビットストリームは、ビットストリームを受信することによって作成され得、ビデオデコーダ30Aおよび30Bの各々は、所与の時間においてビットストリームの一部分を受信する。場合によっては、demux99において受信されるビットストリームからのビットは、ビデオデコーダの各々(たとえば、図3Bの例ではビデオデコーダ30Aおよび30B)の間で、一度に1ビットずつ交替され得るが、多くの場合、ビットストリームは別様に分割される。たとえば、ビットストリームは、一度に1ブロックずつビットストリームを受信するビデオデコーダを交替することによって分割され得る。別の例では、ビットストリームは、非1:1比のブロックによって、ビデオデコーダ30Aおよび30Bの各々に分割され得る。たとえば、ビデオデコーダ30Aに供給される各ブロックに対して2つのブロックがビデオデコーダ30Bに供給され得る。いくつかの実施形態では、demux99によるビットストリームの分割は、プリプログラムされ得る。他の実施形態では、demux99は、宛先モジュール14を含む宛先デバイス上のプロセッサからなど、ビデオデコーダ31の外部のシステムから受信された制御信号に基づいて、ビットストリームを分割し得る。制御信号は、入力インターフェース28からのビデオの解像度またはビットレートに基づいて、リンク16の帯域幅に基づいて、ユーザに関連するサブスクリプション(たとえば、有料サブスクリプション対無料サブスクリプション)に基づいて、またはビデオデコーダ31によって取得可能な解像度を決定するための任意の他のファクタに基づいて生成され得る。
解像度変更
[00136]現在のHEVC拡張のドラフトでは、single_layer_for_non_irap_flagと呼ばれるビデオパラメータシーケンス(VPS:a video parameter sequence)のシンタックス要素は、次のように定義される。「1に等しいsingle_layer_for_non_irap_flagは、アクセスユニットのすべてのVCL NALユニットが同じnuh_layer_id値を有すること、または、2つのnuh_layer_id値がアクセスユニットのVCL NALユニットによって使用され、nuh_layer_id値がより大きいピクチャがIRAPピクチャであることの、いずれかを示す。0に等しいsingle_layer_for_non_irap_flagは、nuh_layer_id値が、この勧告|国際規格の他の部分で規定される制約を越えて制約されることもあり、または制約されないこともあることを示す。」いくつかの実施形態では、本明細書で説明する技法は、single_layer_for_non_irap_flagが1に等しいとき、単に適用され得る。
[00137]一般に、コーディングされたビデオデータは、ネットワークアブストラクションレイヤ(NAL)ユニットに編成され、その各々は、事実上、整数個のバイトを含むパケットである。ビデオコーディングレイヤ(VCL)NALユニットは、コーディングされたビデオデータの中にあるビデオピクチャのサンプル値を含む。アクセスユニット(AU)は、同時に表示されるべきピクチャ(たとえば、同じピクチャ順序カウントを有するピクチャ)に関連付けられたVCL NALユニットのセットである。したがって、たとえば、single_layer_for_non_irap_flagが1に等しい場合、アクセスユニットの中のすべてのピクチャが同じレイヤ(たとえば、現在のレイヤ)に由来すること、またはピクチャが2つの異なるレイヤに属し、上位レイヤの中のピクチャがイントラランダムアクセスポイント(IRAP)ピクチャであることの、いずれかである。アクセスユニットの中に2つのピクチャ、参照レイヤまたは下位レイヤからの一方およびエンハンスメントレイヤからの他方がある場合、上位レイヤからのエンハンスメントレイヤのピクチャはIRAPピクチャであることになる。一例では、エンハンスメントレイヤのピクチャは、その参照レイヤより高解像度のピクチャを有する。したがって、このフラグ(または、他の類似のフラグ)は、あるレイヤから別のレイヤへの切替えをシグナリングまたは識別するために使用され得る。
解像度変更のアプリケーション
[00138]そのような切替えは、解像度変更(たとえば、低解像度から高解像度への、または高解像度から低解像度への)に付随して起こり得る。上記で説明したように、そのような解像度変更のための1つのアプリケーションは、ビデオデータを処理するビデオアプリケーション(たとえば、ビデオ会議のアプリケーション、動画ストリーミングのアプリケーションなどの)に関し得る。ビデオアプリケーションがビデオストリームを処理するとき、ビデオアプリケーションは、帯域幅の状態に応じて、(たとえば、低解像度ピクチャが処理および表示される)低解像度モードと(たとえば、高解像度ピクチャが処理および表示される)高解像度モードの間で切り替え得る。帯域幅が最初に高解像度ストリーミングをサポートできない場合、アプリケーションは、ビデオストリームを低解像度モードで処理し得、帯域幅が改善されたとき、アプリケーションは、より高品質のビデオを表示できるように高解像度モードへ切り替え得る。
[00139]一実施形態では、解像度変更は、ビデオアプリケーションによって起動され得る。代替的に、ユーザは、解像度変更を起動することに決め得る。解像度変更は、帯域幅の状態などの他のファクタに基づいて、自動的に起こり得る。いくつかの実施形態では、解像度変更が要求または起動された時間と、コーダが解像度の異なるピクチャをコーディングすることへ実際に切り替える時間との間に遅延が存在する。一例では、コーダは、解像度変更が発生すること、および/または解像度変更がいつ起こるのかを、あらかじめ知っている。
異なるレイヤへの切替え
[00140]解像度変更は、2つ以上のビデオレイヤが関係することを必ずしも意味するとは限らない。たとえば、HEVCは、単一のレイヤ内の解像度変更を可能にする。しかしながら、そのような場合には、ピクチャの解像度を変更すると、新しいCVSが開始され、コーダ(たとえば、エンコーダまたはデコーダ)は、Iフレームから開始する。したがって、コーダは、コーディング効率を改善するために、前にコーディングされたいかなるピクチャにも依拠することができない。解像度変更があるときに異なるレイヤへ切り替えることによって、コーダは、前に復号された下位レイヤのピクチャへのアクセスを依然として有し得、場合によっては上位レイヤの中のピクチャのうちの少なくとも1つをコーディングするためにレイヤ間予測を使用し得、それによって、コーディング効率を改善する。また、(たとえば、全ベースレイヤと全エンハンスメントレイヤとをコーディングすることによって)表示されるべきでない他のピクチャをコーディングすることをやめることによって、コーディング効率は、また、改善される。下位レイヤから上位レイヤへの切替えは、図4を参照しながらさらに説明される。
[00141]図4は、ベースレイヤのピクチャ402、404、406、および408、ならびにエンハンスメントレイヤのピクチャ412、414、416、および418を示す。この例では、矢印は、この場合には表示順序と同じである復号順序を示す。たとえば、図4に示すピクチャのうちの、ベースレイヤのピクチャ402は表示されるべき最初のピクチャであり、エンハンスメントレイヤのピクチャ418は表示されるべき最後のピクチャである。ベースレイヤのピクチャ408からエンハンスメントレイヤのピクチャ412へ矢印が上方へ指し示す切替え点において、ピクチャが同じアクセスユニットに属し、したがって同じ時間に対応するので、2つのピクチャのうちの一方のみが表示される。たとえば、エンハンスメントレイヤのピクチャ412のみが表示され、ベースレイヤのピクチャ408は表示されない。図4の例では復号順序は表示順序と同じであるが、別の実施形態では、復号順序は表示順序と異なり得る。
[00142]図4に示すように、ベースレイヤのピクチャおよびエンハンスメントレイヤのピクチャは、異なるレイヤに属する。ベースレイヤのピクチャ402〜408は、前にコーディングされた他のベースレイヤのピクチャを使用してコーディングされ得、エンハンスメントレイヤのピクチャ412〜418は、前にコーディングされた他のエンハンスメントレイヤのピクチャを使用してコーディングされ得る。さらに、エンハンスメントレイヤのピクチャ412は、ベースレイヤのピクチャ408を使用して(たとえば、レイヤ間予測を使用して)コーディングされ得る。一実施形態では、エンハンスメントレイヤのピクチャ412〜418は、ベースレイヤのピクチャ402〜408の解像度よりも高い解像度を有する。
復号ピクチャバッファ(DPB)
[00143]一般に、コーディングされたピクチャは、他のピクチャをコーディングするために使用され得るように、復号ピクチャバッファ(DPB)の中に記憶され得る。たとえば、ビデオコーダは、後続のピクチャをコーディングするために、DPBの中の前にコーディングされたピクチャのピクセル値または他の情報(たとえば、動き情報)を使用し得る。しかしながら、DPBはスペースが限られ、すべてのコーディングされたピクチャが、DPBに記憶されDPBの中に無期限に残り続け得るとは限らない。したがって、不必要なピクチャをDPBから適時に除去することが、DPBの管理とメモリの使用量とを改善することができる。
[00144]上記で説明した例では、解像度変更は、アプリケーション(または、アプリケーションのユーザ)が高解像度モード(または、低解像度モード)へ切り替えることに決めるときに起こり得る。アプリケーションが高解像度モードへ切り替えるとき、アプリケーションは、解像度変更の前にコーディングされた下位レイヤのピクチャよりも、解像度が高い上位レイヤ(たとえば、エンハンスメントレイヤ)のピクチャのコーディングを開始する。高解像度へ切り替えると、前の下位レイヤ(たとえば、解像度がより低いピクチャを有する参照レイヤ)の参照ピクチャは、復号ピクチャバッファ(DPB)に依然として記憶され得る。しかしながら、切替えの後にコーディングされるピクチャは上位レイヤ(たとえば、エンハンスメントレイヤ)の中にあるので、そのような参照ピクチャは、もはやビットストリームを復号するために必要であり得ない。一例では、アプリケーションが下位レイヤへ下に切り替え復帰することに決める場合、そのような参照ピクチャのうちの1つまたは複数は、将来の下位レイヤのピクチャをコーディングするために使用され得る。しかしながら、アプリケーションが高解像度モードにとどまり、または下位レイヤ以外のレイヤへ切り替える場合、DPBの中の下位レイヤのそれらの参照ピクチャのいずれかを保持するためのいかなる理由も存在し得ない。したがって、前の下位レイヤの参照ピクチャをDPBから除去するためのメカニズムは、メモリの使用量を改善するために望まれ得る。
[00145]また、いくつかの実装形態では、たとえアプリケーションが低解像度モードへ切り替え復帰することに決めるとしても、アプリケーションが単に下位レイヤの元の低解像度へ切り替え復帰しているとしても、新しいレイヤIDが新しいレイヤに割り当てられ得る。そのような場合には、新しいレイヤに新しいレイヤIDが割り当てられるので、たとえ新しいレイヤのピクチャと解像度が同じである1つまたは複数の参照ピクチャがDPBの中に保持されるとしても、それらの参照ピクチャは、新しいレイヤのピクチャをインター予測するために使用され得ない。したがって、コーディング効率を改善するために、アプリケーションが単に前の解像度へ下に(または、上に)切り替え復帰しているとき、新しいレイヤIDの使用を防止することが望ましくあり得る。
[00146]さらに、いくつかの実装形態では、single_layer_for_non_irap_flagが1に等しいとき、アプリケーションは、解像度、カラーフォーマット、またはビット深度を変更することなく、レイヤ間で切り替えることができるようにされる。しかしながら、そのような場合には、新しいレイヤへ切り替えることなく同じレイヤにとどまることが、より効率的であり得る。
下位レイヤのピクチャを復号ピクチャバッファから除去すること
[00147]解像度の切替えが実行されるとき(たとえば、図4に示すように)、切替え点において、2つまでの異なるレイヤ、すなわち、下位レイヤ(たとえば、nuh_layer_idの小さい方の値と関連する)および上位レイヤ(たとえば、nuh_layer_idの大きい方の値と関連する)からのピクチャが存在する。切替えが1回よりも多く(たとえば、上または下へ)実行される場合、より多くの関係するピクチャ/レイヤが存在し得る。たとえば、アプリケーションは、あるアクセスユニットの中でレイヤ1からレイヤ2に、後で別のアクセスユニットの中でレイヤ2からレイヤ3へ切り替えることができる。一般に、2つのレイヤは、「切替え元のレイヤ(switching-from layer)」および「切替え先のレイヤ(switched-to layer)」と呼ばれることもある。たとえば、上への切替え点では、下位レイヤは切替え元のレイヤと呼ばれてもよく、上位レイヤは切替え先のレイヤと呼ばれてもよい。
[00148]1つの例示的な実施態様では、下位レイヤから上位レイヤへ切り替えるとき、切替え点におけるアクセスユニット(たとえば、切替え点のAU)は、下位レイヤからのピクチャと上位レイヤからのピクチャの両方を含む。その一方で、上位レイヤから下位レイヤへ切り替えるとき、切替え点のAUは、1つのピクチャしか有し得ない。たとえば、切替えは、2つの連続したアクセスユニットにわたって起こり得、連続したアクセスユニットの各々は、1つのピクチャのみを含む。たとえば、アクセスユニットのうちの1つは上位レイヤからのピクチャを含み得、後続のアクセスユニットは下位レイヤからのピクチャを含み得る。そのような構成は、図5を参照しながら以下にさらに説明される。
[00149]本開示では、実施形態は、1つの下位レイヤと1つの上位レイヤとを有する一例を参照しながら、一般的に説明される。しかしながら、本開示の実施形態は、そのような構成に限定されず、またはそのような構成によって限定されず、本明細書で説明する実施形態、方法、および技法は、複数の下位レイヤおよび上位レイヤを有する他の例に拡張され得る。本明細書で示す例は、一般に、1つまたは2つのレイヤを有するAUを有するが、提案される方法は、他の構成へ同様に拡張され得る。
[00150]解像度変更が行われるとき、切替え点の後(たとえば、両方のレイヤからのピクチャを含むAUの中のピクチャをコーディングした後)、切替え元のレイヤの中のピクチャは、しばしば、もはやインター予測のために必要とされない。一実施形態では、DPBの中に記憶されている切替え元のレイヤのすべての参照ピクチャ(たとえば、DPBの中に記憶されている、前に復号された下位レイヤのピクチャ)は、切替え点のAUの中の下位レイヤのピクチャを含めて、「参照として使用されない(unused for reference)」ものとして印をつけられる(marked)。いくつかの実装形態では、「参照として使用されない」ものとして印をつけられた任意の参照ピクチャは、それがすでに出力された(たとえば、表示された)場合、または出力されるべきでない場合、DPBから除去される。この実施形態では、切替え元のレイヤの、出力されるべきでない、またはすでに出力されたすべてのピクチャは、DPBから除去される。切替え点の後に使用されそうでない下位レイヤのピクチャをDPBから除去することによって、DPBの管理とメモリの使用量とが改善され得る。
[00151]ベースレイヤのピクチャ408とエンハンスメントレイヤのピクチャ412とを含むアクセスユニットの中で解像度の切替えが起こる図4の例では、ベースレイヤのピクチャ408(たとえば、切替え点におけるベースレイヤのピクチャ)を復号した後、DPBの中に記憶されている、前に復号されたベースレイヤのピクチャ402、404、および406は、もはやベースレイヤのピクチャをコーディングするために必要でないので(たとえば、解像度の切替えのために)、「参照として使用されない」ものとして印をつけられ得る。さらに、出力されるべきでない、またはすでに出力されたベースレイヤのピクチャは、DPBから除去され得る。エンハンスメントレイヤのピクチャ412(たとえば、切替え点におけるエンハンスメントレイヤのピクチャ)を復号した後、DPBの中に記憶されている復号されたベースレイヤのピクチャ408は、DPBから除去され得る。別の実施形態では、復号されたピクチャのDPBからのいかなる除去も、エンハンスメントレイヤのピクチャ412(たとえば、切替え点のAUの中の上位レイヤのピクチャ)をコーディングした後、実行される。DPBの中のピクチャの除去は、上への切替えのコンテキストにおいて一般に本明細書で説明されるが、類似のDPBの管理技法が、ピクチャの解像度が低減される下への切替えのシナリオに適用され得る。
[00152]一実施形態では、DPBがクリアされるべきかどうかを示すフラグが、シグナリングされ得る。たとえば、フラグが1に設定される場合、DPBは、上位レイヤの中の最初のピクチャ(the first picture)をコーディングした後にクリアされ、フラグが0に設定される場合、DPBはクリアされない。フラグは、スライスヘッダの中でシグナリングされ得る。
将来のコーディングのために下位レイヤのピクチャをDPBの中に保持すること
[00153]一実施形態では、DPBの中のすべてのピクチャに「参照として使用されない」ものとして印をつけること(marking)、および/または、異なるレイヤへ切り替える際にDPBの中のすべてのピクチャを除去することの代わりに、切替え元のレイヤの少なくとも1つのピクチャは、将来のコーディングでの使用のためにDPBの中に保持される。DPBの中に保持されるそのようなピクチャは、「待機ピクチャ(waiting pictures)」と呼ばれることがある。低解像度への下への解像度の切替え復帰が存在する場合、これらのピクチャが、1つまたは複数の低解像度のピクチャ(たとえば、上位レイヤから下位レイヤへ下に切り替え復帰した後にコーディングされるべき最初のピクチャ)をコーディングする(たとえば、インター予測を使用して)ために使用され得るように、これらのピクチャはDPBの中に残るようにされる。
[00154]一実施形態では、解像度変更が起こるたびに、切替え元のレイヤの少なくとも1つのピクチャは、将来のコーディングでの使用のためにDPBの中に保持される。たとえば、DPBの中に保持されるピクチャは、切替え点のAUでのピクチャ(たとえば、図4のベースレイヤのピクチャ408)であり得る。別の例では、DPBの中に保持されるピクチャは、時間ID(a temporal ID)が0のピクチャであり得る。時間IDが0のピクチャは任意の値の時間IDを有する別のピクチャをコーディングするために使用され得るので、時間IDが0のピクチャを保持することは、任意の時間において元のレイヤへ下または上に切り替え復帰するためのフレキシビリティをもたらし得る。一実施形態では、1つのピクチャのみがDPBの中に保持され、すべての他のピクチャは異なるレイヤへ切り替える際に除去される。さらに別の実施形態では、少なくとも1つのピクチャは、時間IDの各値に対してDPBの中に保持される。たとえば、下位レイヤの中のピクチャは、時間IDの値0と、1と、2とを有し得る。そのような場合には、時間IDが0の少なくとも1つの下位レイヤのピクチャ、時間IDが1の少なくとも1つの下位レイヤのピクチャ、および時間IDが2の少なくとも1つの下位レイヤのピクチャが、DPBの中に保持される。一例では、1つのピクチャが各時間IDに対して保持され、すべての他のピクチャは異なるレイヤへ切り替える際にDPBから除去される。
[00155]一実施形態では、DPBの中に保持されるピクチャは、ビットストリームの中で明示的にシグナリングされる。たとえば、シグナリングは、参照ピクチャのセットがシグナリングされる方法と類似であり得る。別の実施形態では、ピクチャがDPBの中に保持されるべきかどうかは、切替え先のレイヤのピクチャ(たとえば、切替え点のAUでの上位レイヤのピクチャ)のスライスヘッダの中に存在し得、切替えがこのアクセスユニットで行われることを示すためのフラグが、シグナリングされ得る。このフラグは、また、1つまたは複数の待機ピクチャがDPBの中に保持されるべきかどうかを示すための情報がビットストリームの中に存在することを示し得る。たとえば、1つのフラグは、10個の最後の下位レイヤのピクチャをDPBの中に保持するかどうかを示し得る。たとえば、直近にコーディングされた下位レイヤのピクチャがDPBの中に保持されるべきかどうかを示すフラグが存在し得る。DPBの中に保持されるピクチャの数は、1、2、3、10または任意の数であり得る。DPBの中に保持されるべき下位レイヤのピクチャの数は、コーダによってシグナリングされ得、または知られ得る。将来同じレイヤへの切替え復帰が存在するかどうかを示すためのフラグが、シグナリングされ得る。
[00156]一実施形態では、切替え点のAUでの下位レイヤのピクチャが、DPBの中に保持されているただ一つのピクチャである場合、下位レイヤのピクチャは、「長期の参照として使用される(used for long-term reference)」または「短期の参照として使用される(used for short-term reference)」もののいずれかとして印をつけられる。一実施形態では、任意の下位レイヤのピクチャがDPBの中に保持されているかどうかは、ビデオパラメータセットの中で示される。上記で説明したように、本開示の1つまたは複数の例示的な実施形態は、下位レイヤ(たとえば、低解像度のレイヤ)から上位レイヤ(たとえば、高解像度のレイヤ)への切替えのコンテキストにおいて説明されるが、方法および技法は、解像度が低減される下への切替えのシナリオに修正および/または拡張され得る。
[00157]いくつかの実装形態では、下位レイヤから上位レイヤへの切替えのコンテキストにおいて説明される同じメカニズムが、上位レイヤから下位レイヤへ切り替えるときに適用され得るが、後で上位レイヤへ切り替え復帰するとき、上位レイヤの中のピクチャが、レイヤ間予測を利用することによって同じAUの中の下位レイヤのピクチャに基づいてコーディングされ得、ずっと早い時間期間からの上位レイヤのピクチャが不必要であり得、または有用であり得ないので、同じメカニズム(たとえば、上位レイヤへ上に切り替え復帰した後、上位レイヤのピクチャの将来のコーディングで使用され得るように、上位レイヤのピクチャをDPBの中に保持すること)を適用することは必要であり得ない。任意のELピクチャをDPBの中に保持することが望ましくあり得ない別の理由は、切替え点のAUでの上位レイヤのピクチャがIRAPピクチャでなければならないという、切替え点のAUにおける制限が存在し得ることである。そのような場合には、切替え点のAUでの上位レイヤのピクチャは、インター予測を使用して他のELピクチャから予測され得ない。提案されるメカニズムの一例を、図5に示す。
[00158]図5は、下位レイヤから上位レイヤへの解像度の切替えと、上位レイヤから下位レイヤへの下への別の解像度の切替え復帰とを伴う一例を示す。図5に示すように、ベースレイヤは、ベースレイヤのピクチャ502、504、506、508、524、526、および528を含み、エンハンスメントレイヤは、エンハンスメントレイヤのピクチャ512、514、516、および518を含む。破線によって示されるベースレイヤのピクチャ522は、実際にシグナリングまたはコーディングされ得ない想像上のピクチャで(an imaginary picture)ある。図5の例では、解像度の下への切替えが起こるとき、エンハンスメントレイヤのピクチャ518がすでにコーディングされており、表示されるために利用可能となっているので、その低解像度のバージョンをコーディングするための理由は、それが表示されないので存在しない。
[00159]解像度が低解像度へ下に切り替え復帰される図5に示すシナリオでは、時間的な参照ピクチャ(たとえば、ベースレイヤのピクチャ508)としての最初の切替えの前に、少なくとも1つのベースレイヤのピクチャをDPBの中に保持することが望ましくあり得る。たとえば、他のベースレイヤのピクチャ(たとえば、502、504、および506)は、上記で説明したように「参照として使用されない」ものとして印をつけられ得る。この場合には、解像度が低解像度へ下に切り替え復帰されるとき、DPBの中に保持されているベースレイヤのピクチャ508は、ベースレイヤのピクチャ508からベースレイヤのピクチャ524への矢印によって示されるように、ベースレイヤのピクチャ524のインター予測のために使用され得る。
[00160]1つの実施形態では、DPBの中に保持されるべきピクチャは、切替え点のAUでのベースレイヤのピクチャでなく、DPBの中のいくつかの他のベースレイヤのピクチャである。たとえば、DPBの中に保持されるべきピクチャは、切替え点のAUでのベースレイヤのピクチャの直前にコーディングされるピクチャである。別の例では、保持されるべきベースレイヤのピクチャは、ベースレイヤからの任意の他のピクチャであり得る。別の実施形態では、複数のピクチャは、解像度の切替え(または、解像度変更を伴わない単なるレイヤの切替え)の際にDPBの中に保持され得る。さらに別の実施形態では、DPBの中に保持されるピクチャは、下位レイヤ(たとえば、図5のベースレイヤのピクチャ524)への切替え復帰の後、最初の下位レイヤのピクチャと同じ時間IDを有する最も近いピクチャである。たとえば、上への切替えおよび後続の下への切替えがあり、下への切替えの後の最初のベースレイヤのピクチャが1の時間IDを有する場合、DPBの中で保持されるべきピクチャは、下への切替えの後の最初のベースレイヤのピクチャに時間的に最も近く、1の時間IDを有するピクチャであり得る。別の実施形態では、DPBの中に保持されるピクチャは、時間IDが0の最も近いピクチャである。別の実施形態では、DPBの中に保持されるピクチャは、下位レイヤへ切り替え復帰した後の最初の下位レイヤのピクチャに時間的に最も近いピクチャである。
ダミーピクチャ
[00161]レイヤの切替え(たとえば、解像度の切替え)の場合には、切替え点のAUに表示順序で直ちに続くアクセスユニットの中に、ダミーピクチャが存在し得る。例示的なダミーピクチャを図6に示す。図6は、ベースレイヤのピクチャ602、604、606、608、624、626、および628、エンハンスメントレイヤのピクチャ612、614、616、および618、ならびに図5を参照しながら説明された想像上のピクチャ522と類似の想像上のピクチャ622を示す。さらに、図6は、ベースレイヤのピクチャ608とエンハンスメントレイヤのピクチャ612とを有する切替え点のAUに直ちに続くアクセスユニットの中に、ダミーピクチャ609を含む。また、ダミーピクチャ619は、エンハンスメントレイヤのピクチャ618を有する切替え点のAUに直ちに続くアクセスユニットの中に存在する。ダミーピクチャ609および619は、参照ピクチャの管理を改善するために使用され得る。たとえば、ダミーピクチャは、より早い参照ピクチャのDPBからの除去を達成するために使用され得る。たとえば、ダミーピクチャ609は、エンハンスメントレイヤのピクチャ612がコーディングされる前に処理され得、ダミーピクチャ609に含まれる情報は、ベースレイヤのピクチャ602、604、606がDPBから除去されるべきであることを示し得る。そのような場合には、エンハンスメントレイヤ612がコーディングを終了した後までDPBの中に残ることになったベースレイヤのピクチャ602、604、および606は、エンハンスメントレイヤ612がコーディングされる前にDPBから除去され得る。
[00162]一実施形態では、ダミーピクチャは、1つまたは複数の参照ピクチャに「参照として使用されない」ものとして印をつけ得、またはどのピクチャが将来の参照のために使用され、したがって、DPBの中に保持されるべきかを示し得る。一実施態様では、もしあれば、DPBの中のどのピクチャが将来の参照のために保持されるべきかという指示は、ダミーピクチャに関連付けられた参照ピクチャセット(RPS:reference picture set)の中に存在する。たとえば、ダミーピクチャのRPSは、DPBの中のピクチャのうちの1つまたは複数が、ダミーピクチャをコーディングするために必要とされることを示し得る。そのような場合には、ダミーピクチャをコーディングするために必要であるものとして示されるそれらのピクチャは、DPBの中に保持されることになる。別の実施態様では、ダミーピクチャに関連付けられた1つまたは複数のシンタックス要素またはフラグは、もしあれば、DPBの中のどのピクチャが将来の参照のために保持されるべきであるかを示し得る。一実施形態では、ダミーピクチャは、DPBが完全にクリアされるべきである(たとえば、複数のピクチャのうちのいずれもDPBの中に保持されるべきでない)ことを示す1つまたは複数のシンタックス要素またはフラグを含み得る。
[00163]ダミーピクチャが、上位レイヤの中のピクチャ(たとえば、ダミーピクチャ609およびエンハンスメントレイヤのピクチャ614の場合には)と同じアクセスユニットの中にある場合、両方のピクチャが非IRAPピクチャであることが許される。一実施形態では、single_layer_for_non_irap_flagが1に等しいときにこのシナリオがカバーされるように、single_layer_for_non_irap_flagのセマンティックが修正され得る。より詳細には、切替え点のAUでの上位レイヤのピクチャがIRAPピクチャでなければならないという制約は、ダミーピクチャの使用に関して除去され得る。代替的に、切替え点のAUでの上位レイヤのピクチャがIRAPピクチャでなければならないという制約は、ダミーピクチャの使用にかかわらず除去され得る。IRAPの制約の除去は、上位レイヤのピクチャのコーディングに、より多くのフレキシビリティをもたらし、レイヤ間予測に加えてインター予測の使用を可能にする。
[00164]一実施形態では、ダミーピクチャは、HEVCワーキングドラフト10で規定されるように、単一のVCL NALユニットからなり得る。ダミーピクチャは、インター予測の残差を0に等しくしてコーディングされ得、スライスヘッダの中に0に等しいpic_output_flag(たとえば、ダミーピクチャが出力されるべきでないことを示す)を有し得る。代替的に、ダミーピクチャは、全スライスヘッダシンタックスを含むだけであってもよい。代替的に、ダミーピクチャは、スライスヘッダの中にシンタックス要素の部分のみを含んでもよい。たとえば、ダミーピクチャは、ピクチャおよび参照ピクチャセット(RPS)のPOC値を識別するシンタックス要素を含み得る。ダミーピクチャの中のRPSは、どのピクチャが「参照として使用されない」ものとして印をつけられるべきか、またどのピクチャがDPBの中に(たとえば、待機ピクチャとして)保持されるべきかを示し得、したがって、上位レイヤへ切り替えた後、将来の参照のために「短期の参照として使用される」または「長期の参照として使用される」ものとして印をつけられる。
元のレイヤへの切替え復帰
[00165]一実施形態では、アプリケーション(または、ユーザ)が元のレイヤへ切り替え復帰するとき(たとえば、図5および図6に示す例)、元のレイヤのレイヤID(たとえば、nuh_layer_idの値)は、新しいレイヤのために使用される。たとえば、アプリケーションが、下位レイヤから上位レイヤへ切り替えて、前の下位レイヤと同じ解像度のピクチャを含む別の下位レイヤへ切り替えることを後で決める場合、前の下位レイヤのレイヤIDは、新しい下位レイヤのために使用される。新しい下位レイヤに前の下位レイヤと同じレイヤIDが割り当てられることを強いることによって、インター予測は、DPBの中に残っている、前の下位レイヤのピクチャを使用して新しい下位レイヤの中のピクチャをコーディングするために使用され得る。
[00166]一実施形態では、single_layer_for_non_irap_flagが1に等しいとき、AUでのすべてのVCL NALユニットのnuh_layer_idの最大値は、空間的な解像度、カラーフォーマット、またはビット深度のうちの少なくとも1つが同様に変更されない限り、コーディングされるビデオシーケンスの中のAUにわたって同じに維持される。そうすることによって、アプリケーションは、レイヤの切替えが、解像度変更、カラーフォーマット変更、またはビット深度変更のうちの少なくとも1つによって、確実に付随して起こるようにすることができる。いくつかの実装形態では、解像度、カラーフォーマット、またはビット深度の変更がない限り、単一レイヤの手法(たとえば、異なるレイヤへ切り替えない)を保持することは、コーディング効率および/または計算量の改善を達成するために望ましくあり得る。
例示的なフローチャート
[00167]図7は、本開示の一実施形態による、ビデオ情報をコーディングするための方法700を示すフローチャートである。図7に示すステップは、エンコーダ(たとえば、図2Aまたは図2Bに示すビデオエンコーダ)、デコーダ(たとえば、図3Aまたは図3Bに示すビデオデコーダ)、または任意の他の構成要素によって実行され得る。便宜上、方法700について、エンコーダ、デコーダ、または別の構成要素であり得る、コーダによって実行されるものとして説明する。
[00168]方法700は、ブロック701において開始する。ブロック705において、コーダは、第1のレイヤに関連付けられたビデオ情報を記憶する。ブロック710において、コーダは、対応する第1のレイヤピクチャを有しない第2のレイヤピクチャをコーディングすることを開始するかどうかを決定する。たとえば、コーダは、ある時点の後(after a certain point in time)、いかなる第1のレイヤピクチャもコーディングすることなく、第2のレイヤピクチャのみがコーディングされるべきであることを決定し得る。一実施形態では、コーダは、第2のレイヤピクチャをコーディングすることを開始するための命令または要求を受信し得る。たとえば、ビデオ会議のコンテキストにおいて、ビデオアプリケーションは、帯域幅の状態に基づいて、高解像度のピクチャがユーザに表示され得るように、高解像度モードへ切り替えることに決め得る。別の例では、ビデオアプリケーションのユーザは、高解像度モードへ切り替えることを選び得る。そのような命令をアプリケーションまたはユーザから受信すると、コーダは、高解像度を有する第2のレイヤピクチャをコーディングすることを開始し得る。そのような命令がない場合、またはコーダがベースレイヤのピクチャをコーディングし続けるべきであるとコーダが別のやり方で決定する場合、コーダは、ブロック715において第1のレイヤピクチャをコーディングする。
[00169]いったんコーダが、対応する第1のレイヤピクチャを有しない第2のレイヤピクチャがコーディングされるべきであると決定すると、コーダは、ブロック720に進み、第2のレイヤに関連付けられたビデオ情報を記憶する。一実施形態では、第2のレイヤに関連付けられたビデオ情報は、ブロック710における決定の前にすでにメモリに記憶されていることがある。そのような場合には、コーダは、単にブロック725に進むことができる。コーダは、ブロック725において第2のレイヤピクチャをコーディングすることを開始する。ブロック730において、コーダは、少なくとも1つの第1のレイヤピクチャが復号ピクチャバッファから除去されるべきであるという指示を処理する。一実施形態では、この処理は、少なくとも1つの第1のレイヤピクチャに、参照として使用されないものとして印をつけることを備える。別の実施形態では、この処理は、少なくとも1つの第1のレイヤピクチャが復号ピクチャバッファから除去されるべきであることを示すフラグをシグナリングすることを備える。さらに別の実施形態では、この処理は、少なくとも1つの第1のレイヤピクチャが復号ピクチャバッファから除去されるべきであるという指示を受信することを備える。
[00170]一実施形態では、コーダは、少なくとも1つの第1のレイヤピクチャをDPBから実際に除去し得る。一実施形態では、上記で説明したように、コーダは、復号ピクチャバッファの中のすべての第1のレイヤピクチャを除去し得る。別の実施形態では、コーダは、復号ピクチャバッファの中の1つまたは複数の第1のレイヤピクチャを将来のコーディングでの使用のために保持することと、第1のレイヤピクチャの残りをDPBから除去することとを決め得る。
[00171]図7Bに示すように、ブロック735において、コーダは、対応する第2のレイヤピクチャを有しない第1のレイヤピクチャをコーディングすることを開始するかどうかを決定する。前に説明したように、アプリケーションまたはユーザは、たとえば、帯域幅の状態に基づいて、低解像度モードへ切り替えるための要求または命令を起動し得る。インターネット接続が遅いとユーザが感じているとき、ユーザは、ピクチャがより滑らかに表示されるように、彼が現在見ているビデオの解像度を低減することを望むことがある。そのような命令がない場合、コーダは、ブロック740において、第2のレイヤピクチャをコーディングし続ける。
[00172]いったんコーダが、対応する第2のレイヤピクチャを有しない第1のレイヤピクチャがコーディングされるべきであると決定すると、コーダは、ブロック745に進み、第1のレイヤに関連付けられたビデオ情報を記憶する。ブロック750において、コーダは、復号ピクチャバッファの中に残っている、前に復号された第1のレイヤピクチャを使用して、第1のレイヤピクチャをコーディングする。たとえば、図5に示すように、第2のレイヤへ切り替える際にDPBの中に保持されたベースレイヤのピクチャ508は、ベースレイヤへ下に切り替え復帰した後、ベースレイヤのピクチャ524をコーディングするために使用され得る。方法700は、ブロック755において終了する。
[00173]上記で説明したように、図2Aのビデオエンコーダ20、図2Bのビデオエンコーダ21、図3Aのビデオデコーダ30、または図3Bのビデオデコーダ31の、1つまたは複数の構成要素(たとえば、レイヤ間予測ユニット128および/またはレイヤ間予測ユニット166)は、第1のレイヤピクチャまたは第2のレイヤピクチャをコーディングするかどうかを決定すること、ピクチャを復号ピクチャバッファから除去すること、および第1のレイヤピクチャおよび第2のレイヤピクチャを様々なコーディング方法を使用してコーディングすることなどの、本開示で説明される技法のいずれかを実施するために使用され得る。
[00174]方法700では、図7に示すブロックのうちの1つまたは複数は削除される(たとえば、実行されない)ことがあり、および/または方法が実行される順序は入れ替えられることがある。たとえば、第2のレイヤおよび第1のレイヤに関連付けられたビデオ情報を記憶することが、第2のレイヤピクチャおよび第1のレイヤピクチャをコーディングすることを開始するかどうかのそれぞれの決定の後に行われるように図7の例で示されるが、記憶することは、そのような決定の前に行われてもよい。別の例では、コーダは、決してブロック745および750に到達しないことがあり、第2のレイヤにとどまり得る。別の例では、DPBは、ブロック730において完全にクリアされ得、ブロック750は、したがって、省略され得る(DPBの中に残っている第1のレイヤピクチャが存在しない)。したがって、本開示の実施形態は、図7に示す例に限定されず、または図7に示す例によって限定されず、他の変形が本開示の趣旨から逸脱することなく実施され得る。
[00175]一実施形態では、図7の第1および第2のレイヤは、それぞれ、参照レイヤおよびエンハンスメントレイヤである。別の実施形態では、第1および第2のレイヤは、それぞれ、エンハンスメントレイヤおよび参照レイヤである。
実装実施形態#1
[00176]一実施形態では、切替え元のレイヤ(たとえば、下位レイヤ)のすべてのピクチャは、「参照として使用されない」ものとして印をつけられ、切替え点のAUにおいてDPBから潜在的に除去される。以下の復号プロセスのセクションでは、仕様に追加されるべき新しい部分がイタリック体で示される。
[00177]いつ切替えが起こるかを検出する方法は、上への切替え(たとえば、下位レイヤから上位レイヤへ切り替えること)および下への切替え(たとえば、上位レイヤから下位レイヤへ切り替えること)に対して異なり得る。上への切替えの場合には、切替えの検出は、2つ以上のピクチャが同じアクセスユニットの中に存在するかどうかを確認することによって実行される。下への切替えの場合には、検出は、現在のアクセスユニット中のピクチャのnuh_layer_idと前のアクセスユニット中のピクチャのnuh_layer_idとを比較することによって実行され、2つのアクセスユニットは復号順序において連続的に配置されている。いくつかの実装形態では、前のアクセスユニットは、現在のアクセスユニットに復号順序で最も近いアクセスユニットであり得るが、同様に時間IDが0である。
実施形態#1のための復号プロセス
[00178]このセクションでは、HEVCのスケーラブル拡張のドラフトテキストの関連する部分を、それに行われ得る例示的な追加と一緒に提示する。本明細書で説明する実施形態に関するそれらの部分は、イタリック体で示される。
[00179]「8.1節における仕様は、以下の追加とともに適用される。
[00180]現在のピクチャが、0よりも大きいnuh_layer_idを有するとき、以下が適用される。
[00181]separate_colour_plane_flagの値に応じて、復号プロセスは次のように構築される。
[00182]separate_colour_plane_flagが0に等しい場合、以下の復号プロセスが1回呼び出され、現在のピクチャが出力される。
[00183]そうでない(separate_colour_plane_flagが1に等しい)場合、以下の復号プロセスが3回呼び出される。復号プロセスへの入力は、同じ値のcolour_plane_idを有するコーディングされたピクチャのすべてのNALユニットである。特定の値のcolour_plane_idを有するNALユニットの復号プロセスは、colour_plane_idがその特定の値である単色カラーフォーマット(monochrome colour format)を有するCVSのみがビットストリーム中に存在するかのように規定される。3つの復号プロセスの各々の出力は、現在のピクチャの3つのサンプルアレイのうちの1つに割り当てられ、0、1および2に等しいcolour_plane_idを有するNALユニットは、それぞれ、SL、SCbおよびSCrに割り当てられる。
[00184]注− separate_colour_plane_flagが1に等しく、chroma_format_idcが3に等しいとき、変数ChromaArrayTypeが0に等しいものとして導出される。復号プロセスでは、(chroma_format_idcが0に等しいとき)この変数の値が評価され、単色ピクチャのものと同じ動作をもたらす。
[00185]復号プロセスは、現在のピクチャCurrPicについて次のように動作する。
[00186]現在のピクチャの復号順序で最初のスライスのスライスセグメントヘッダの復号の場合、F.8.1.1節において規定される0よりも大きいnuh_layer_idを有するコーディングされたピクチャの復号を開始するための復号プロセスが呼び出される。
[00187]ViewScalExtLayerFlagが1に等しい場合、G.8.1節において規定される0よりも大きいnuh_layer_idを有するコーディングされたピクチャのための復号プロセスが呼び出される。
[00188]そうでない場合、DependencyId[nuh_layer_id]が0よりも大きいとき、H.8.1.1節において規定される0よりも大きいnuh_layer_idを有するコーディングされたピクチャのための復号プロセスが呼び出される。
[00189]現在のピクチャのすべてのスライスが復号された後、F.8.1.2節において規定される0よりも大きいnuh_layer_idを有するコーディングされたピクチャの復号を終了するための復号プロセスが呼び出される。」
[00190]以下の言語が仕様に追加され得る。
[00191]「現在のピクチャがIRAPピクチャであり、single_layer_for_non_irap_flagが1に等しく、現在のピクチャよりも低い値のnuh_layer_idを有するピクチャが同じアクセスユニットの中に存在するとき、DPBの中のすべての参照ピクチャは「参照として使用されない」ものとして印をつけられ、前の復号されたピクチャ(現在のピクチャと同じアクセスユニットの中にある)および0に等しいPicOutputFlagを有する他の復号されたピクチャはDPBから除去される。DPBの中に残っているそれらのピクチャの各々は、現在のピクチャを除いて、それが出力された後、直ちにDPBから除去される。」
[00192]代替的に、以下の言語が仕様に追加され得る。
[00193]「single_layer_for_non_irap_flagが1に等しいとき、以下のことが適用される。
[00194]変数switchingFlagは0に設定される。
[00195]現在のピクチャがIRAPピクチャであり、現在のピクチャよりも低い値のnuh_layer_idを有するピクチャが同じアクセスユニットの中に存在するとき、以下のことが適用される。これらの2つのピクチャのnuh_layer_id値は、layerIdAおよびlayerIdBとして表され、layerIdBはlayerIdAよりも大きく、switchingFlagは1に設定され、変数layerIdSwitchはlayerIdAとして設定される。
[00196]現在のアクセスユニット内に1つのピクチャのみが存在し、それのnuh_layer_id値が前のアクセスユニット中のピクチャのnuh_layer_id値よりも小さいとき、switchingFlagは1に設定され、layerIdSwitchは前のアクセスユニット中のピクチャのnuh_layer_id値に等しく設定される。
[00197]switchingFlagが1に等しいとき、DPBの中のlayerIdSwitchに等しいnuh_layer_idを有するすべての参照ピクチャは「参照として使用されない」ものとして印をつけられ、前の復号されたピクチャおよび0に等しいPicOutputFlagを有する他の復号されたピクチャはDPBから除去される。現在のピクチャを除いて、DPBの中に残っているそれらのピクチャの各々は、それが出力された後、直ちにDPBから除去される。」
実装実施形態#2
[00198]例示的な実施態様を以下に示すが、同じ着想の他の実施態様は、同様に可能であり、本開示の範囲内として見なされるべきである。本明細書で説明する実施形態に関するそれらの部分は、イタリック体で示される。以下のビデオパラメータセット(VPS)シンタックスが使用され得る。
[00199]以下のVPSセマンティックスが使用され得る。「1に等しいkeep_base_layer_picture_flagは、ベースレイヤ(nuh_layer_idが最小の参照レイヤ)のピクチャからの少なくとも1つのピクチャが、上位レイヤへ切り替えた後、将来の参照のために「参照として使用される」ものとして印をつけられることを規定する。0に等しいkeep_base_layer_picture_flagは、すべてのベースレイヤのピクチャが、レイヤの切替えの後、「参照として使用されない」ものとして印をつけられることを規定する。存在しないとき、keep_base_layer_picture_flagは0に等しいものと推論される。」
[00200]代替的に、以下のVPSセマンティックスが使用され得る。「1に等しいkeep_base_layer_picture_flagは、下位レイヤのピクチャからの少なくとも1つのピクチャが、上位レイヤへ切り替えた後、将来の参照のために「参照として使用される」ものとして印をつけられることを規定する。0に等しいkeep_base_layer_picture_flagは、すべてのピクチャが、レイヤの切替えの後、「参照として使用されない」ものとして印をつけられることを規定する。存在しないとき、keep_base_layer_picture_flagは0に等しいものと推論される。」
実施形態#2のための復号プロセス
[00201]このセクションでは、HEVCのスケーラブル拡張のドラフトテキストの関連する部分を、それに行われ得る例示的な追加と一緒に提示する。本明細書で説明する実施形態に関するそれらの部分は、イタリック体で示される。
[00202]「8.1節における仕様は、以下の追加とともに適用される。
[00203]現在のピクチャが、0よりも大きいnuh_layer_idを有するとき、以下が適用される。
[00204]separate_colour_plane_flagの値に応じて、復号プロセスは次のように構築される。
[00205]separate_colour_plane_flagが0に等しい場合、以下の復号プロセスが1回呼び出され、現在のピクチャが出力される。
[00206]そうでない(separate_colour_plane_flagが1に等しい)場合、以下の復号プロセスが3回呼び出される。復号プロセスへの入力は、同じ値のcolour_plane_idを有するコーディングされたピクチャのすべてのNALユニットである。特定の値のcolour_plane_idを有するNALユニットの復号プロセスは、colour_plane_idがその特定の値である単色カラーフォーマットを有するCVSのみがビットストリーム中に存在するかのように規定される。3つの復号プロセスの各々の出力は、現在のピクチャの3つのサンプルアレイのうちの1つに割り当てられ、0、1および2に等しいcolour_plane_idを有するNALユニットは、それぞれ、SL、SCb、およびSCrに割り当てられる。
[00207]注− separate_colour_plane_flagが1に等しく、chroma_format_idcが3に等しいとき、変数ChromaArrayTypeが0に等しいものとして導出される。復号プロセスでは、(chroma_format_idcが0に等しいとき)この変数の値が評価され、単色ピクチャのものと同じ動作をもたらす。
[00208]復号プロセスは、現在のピクチャCurrPicについて次のように動作する。
[00209]現在のピクチャの復号順序で最初のスライスのスライスセグメントヘッダの復号の場合、F.8.1.1節において規定される0よりも大きいnuh_layer_idを有するコーディングされたピクチャの復号を開始するための復号プロセスが呼び出される。
[00210]ViewScalExtLayerFlagが1に等しい場合、G.8.1節において規定される0よりも大きいnuh_layer_idを有するコーディングされたピクチャのための復号プロセスが呼び出される。
[00211]そうでない場合、DependencyId[nuh_layer_id]が0よりも大きいとき、H.8.1.1節において規定される0よりも大きいnuh_layer_idを有するコーディングされたピクチャのための復号プロセスが呼び出される。
[00212]現在のピクチャのすべてのスライスが復号された後、F.8.1.2節において規定される0よりも大きいnuh_layer_idを有するコーディングされたピクチャの復号を終了するための復号プロセスが呼び出される。」
[00213]以下の言語が仕様に追加され得る。
[00214]「single_layer_for_non_irap_flagが1に等しいとき、以下のことが適用される。
[00215]変数switchingFlagは0に設定される。
[00216]現在のピクチャがIRAPピクチャであり、現在のピクチャよりも低い値のnuh_layer_idを有するピクチャが同じアクセスユニットの中に存在するとき、以下のことが適用される。これらの2つのピクチャのnuh_layer_id値は、layerIdAおよびlayerIdBとして表され、layerIdBはlayerIdAよりも大きく、switchingFlagは1に設定され、変数layerIdSwitchはlayerIdAとして設定され、変数keepPicFlagはkeep_base_layer_picture_flagに等しく設定される。
[00217]現在のアクセスユニット内に1つのピクチャのみが存在し、それのnuh_layer_id値が前のアクセスユニット中のピクチャのnuh_layer_id値よりも小さいとき、switchingFlagは1に設定され、layerIdSwitchは前のアクセスユニット中のピクチャのnuh_layer_id値に設定され、keepPicFlagは0に等しく設定される。
[00218]switchingFlagが1に等しいとき、以下のことが記載された順序で適用される。
[00219]keepPicFlagが1に等しいとき、現在のピクチャのアクセスユニットと同じアクセスユニットの中のピクチャは、「参照として使用される」ものとして印をつけられる。
[00220]DPBの中のlayerIdSwitchに等しいnuh_layer_idを有するすべての他の参照ピクチャは「参照として使用されない」ものとして印をつけられ、0に等しいPicOutputFlagを有する他の復号されたピクチャはDPBから除去される。現在のピクチャを除いて、DPBの中に残っているそれらのピクチャの各々、およびkeepPicFlagが1に等しいときには現在のピクチャと同じアクセスユニットの中の下位レイヤのピクチャは、それが出力された後、直ちにDPBから除去される。」
他の考慮事項
[00221]本明細書で開示された情報および信号は、多種多様な技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
[00222]本明細書で開示された実施形態に関して記載された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能に関して上記で説明されている。そのような機能性が、ハードウェアまたはソフトウェアのどちらとして実施されるのかは、特定の応用例と、システム全体に課せられる設計制約とに依存する。当業者は、特定の適用例ごとに様々な方法で記載された機能を実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を引き起こすと解釈されるべきではない。
[00223]本明細書に記載された技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかで実装され得る。モジュールまたは構成要素として記載された任意の特徴は、集積論理デバイス内で一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、上記で説明された方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、フラッシュメモリ、磁気または光学データ記憶媒体などの、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波などの、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
[00224]プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価の集積回路もしくはディスクリート論理回路、などの1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示に記載された技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、計算デバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書に記載された技法の実装に適した任意の他の構造もしくは装置のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアモジュールもしくはハードウェアモジュール内に提供され得、または複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
[00225]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。様々な構成要素、モジュール、またはユニットが、開示された技法を実行するように構成されるデバイスの機能的態様を強調するために本開示で説明されているが、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットが、適切なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
[00226]本発明の様々な実施形態について説明した。これらおよび他の実施形態は、以下の特許請求の範囲内に入る。
[00226]本発明の様々な実施形態について説明した。これらおよび他の実施形態は、以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1] ビデオ情報をコーディングするように構成された装置であって、前記装置は、
第1のレイヤおよび第2のレイヤのうちの少なくとも1つに関連付けられたビデオ情報を記憶するように構成されたメモリユニットと、前記第1のレイヤは、第1のレイヤピクチャを備え、前記第2のレイヤは、第2のレイヤピクチャを備える、
前記メモリユニットと通信しているプロセッサとを備え、前記プロセッサは、
前記第1のレイヤの前記第1のレイヤピクチャのうちの1つまたは複数を復号し、
前記1つまたは複数の復号された第1のレイヤピクチャを復号ピクチャバッファに記憶し、
対応する第1のレイヤピクチャを有しない前記第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定し、
対応する第1のレイヤピクチャを有しない前記第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定することに応答して、前記復号ピクチャバッファに記憶されている前記1つまたは複数の復号された第1のレイヤピクチャのうちの少なくとも1つが前記復号ピクチャバッファから除去されるべきであるという指示を処理する
ように構成される、装置。
[C2] 前記プロセッサは、
前記1つまたは複数の復号された第1のレイヤピクチャのうちの、どの1つまたは複数が前記復号ピクチャバッファに保持されるべきであるかを示すフラグまたはシンタックス要素をシグナリングまたは受信することと、
前記復号ピクチャバッファに保持されるべきと示されていない前記1つまたは複数の復号された第1のレイヤピクチャの各々を、前記復号ピクチャバッファから除去することと
によって前記指示を処理するように構成される、C1に記載の装置。
[C3] 前記フラグまたはシンタックス要素は、前記第2のレイヤピクチャのうちの1つのスライスヘッダに含まれる、C2に記載の装置。
[C4] 前記1つまたは複数の復号された第1のレイヤピクチャの各々を除去することは、前記1つまたは複数の復号された第1のレイヤピクチャの前記各々に、参照として使用されないものとして印をつけることを備える、C2に記載の装置。
[C5] 前記プロセッサは、前記1つまたは複数の復号された第1のレイヤピクチャのうちの前記少なくとも1つに、参照として使用されないものとして印をつけること、前記1つまたは複数の復号された第1のレイヤピクチャのうちの前記少なくとも1つが前記復号ピクチャバッファから除去されるべきであることを示すフラグまたはシンタックス要素をシグナリングすること、または前記1つまたは複数の復号された第1のレイヤピクチャのうちの前記少なくとも1つが前記復号ピクチャバッファから除去されるべきであるという指示を受信すること、のうちの1つを実行することによって前記指示を処理するように構成される、C1に記載の装置。
[C6] 前記プロセッサは、前記1つまたは複数の復号された第1のレイヤピクチャのうちの前記少なくとも1つが参照として使用されないことを示すことによって、前記指示を処理するように構成される、C1に記載の装置。
[C7] 前記プロセッサは、前記復号ピクチャバッファの中のすべての復号された第1のレイヤピクチャが前記復号ピクチャバッファから除去されるべきであることを示すことによって、前記指示を処理するように構成される、C1に記載の装置。
[C8] 前記プロセッサは、
1つを除くすべての第1のレイヤピクチャを前記復号ピクチャバッファから除去し、
対応する第2のレイヤピクチャを有しない前記第1のレイヤピクチャがコーディングされるべきであると決定し、
新しい第1のレイヤピクチャを、前記復号ピクチャバッファの中に残っている前記第1のレイヤピクチャを使用してコーディングする
ようにさらに構成される、C1に記載の装置。
[C9] 前記プロセッサは、
前記第1のレイヤピクチャの各時間IDに対して、1つを除くすべての第1のレイヤピクチャを前記復号ピクチャバッファから除去し、
対応する第2のレイヤピクチャを有しない前記第1のレイヤピクチャがコーディングされるべきであると決定し、
新しい第1のレイヤピクチャを、前記新しい第1のレイヤピクチャと同じ時間IDを有する、前記復号ピクチャバッファの中に残っている前記第1のレイヤピクチャを使用してコーディングする
ようにさらに構成される、C1に記載の装置。
[C10] 前記プロセッサは、
前記復号ピクチャバッファに記憶されている前記第1のレイヤピクチャのうちの1つまたは複数が将来のコーディングのために保持されるべきであるかどうかを示すフラグまたはシンタックス要素を処理することと、
前記フラグまたはシンタックス要素によって将来のコーディングのために保持されるべきであると示されていない前記第1のレイヤピクチャの各々を、前記復号ピクチャバッファから除去することと
によって前記指示を処理するように構成される、C1に記載の装置。
[C11] 前記プロセッサは、
対応する第2のレイヤピクチャを有しない新しいレイヤの新しいレイヤピクチャがコーディングされるべきであると決定し、
前記新しいレイヤピクチャをコーディングするようにさらに構成され、
ここにおいて、前記新しいレイヤピクチャは、前記第1のレイヤピクチャと同じ解像度を有し、前記新しいレイヤは、前記第1のレイヤと同じレイヤIDを有する、
C1に記載の装置。
[C12] 前記プロセッサは、
対応する第1のレイヤピクチャを有しない前記第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定することに応答して、表示順序において直近にコーディングされた第1のレイヤピクチャに直ちに続くダミーピクチャを処理し、
前記ダミーピクチャを使用して、前記少なくとも1つの復号された第1のレイヤピクチャが前記ダミーピクチャの前記使用を伴わずに除去されることになった時間期間よりも前に、前記少なくとも1つの復号された第1のレイヤピクチャを除去させる
ようにさらに構成される、C1に記載の装置。
[C13] 前記装置はエンコーダを備え、ここにおいて、前記プロセッサは、ビットストリームの中の前記ビデオ情報を符号化するようにさらに構成される、C1に記載の装置。
[C14] 前記装置はデコーダを備え、ここにおいて、前記プロセッサは、ビットストリームの中の前記ビデオ情報を復号するようにさらに構成される、C1に記載の装置。
[C15] 前記装置は、コンピュータ、ノートブック、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、電話ハンドセット、スマートフォン、スマートパッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車載コンピュータのうちの1つまたは複数からなるグループから選択されたデバイスを備える、C1に記載の装置。
[C16] ビデオ情報をコーディングする方法であって、前記方法は、
第1のレイヤおよび第2のレイヤのうちの少なくとも1つに関連付けられたビデオ情報を記憶することと、前記第1のレイヤは、第1のレイヤピクチャを備え、前記第2のレイヤは、第2のレイヤピクチャを備える、
前記第1のレイヤの前記第1のレイヤピクチャのうちの1つまたは複数を復号することと、
前記1つまたは複数の復号された第1のレイヤピクチャを復号ピクチャバッファに記憶することと、
対応する第1のレイヤピクチャを有しない前記第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定することと、
対応する第1のレイヤピクチャを有しない前記第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定することに応答して、前記復号ピクチャバッファに記憶されている前記1つまたは複数の復号された第1のレイヤピクチャのうちの少なくとも1つが前記復号ピクチャバッファから除去されるべきであるという指示を処理することと
を備える方法。
[C17] 前記指示を処理することは、
前記1つまたは複数の復号された第1のレイヤピクチャのうちの、どの1つまたは複数が前記復号ピクチャバッファに保持されるべきであるかを示すフラグまたはシンタックス要素をシグナリングまたは受信することと、
前記復号ピクチャバッファに保持されるべきと示されていない前記1つまたは複数の復号された第1のレイヤピクチャの各々を、前記復号ピクチャバッファから除去することと
を備える、C16に記載の方法。
[C18] 前記指示を処理することは、前記1つまたは複数の復号された第1のレイヤピクチャのうちの前記少なくとも1つに、参照として使用されないものとして印をつけること、前記1つまたは複数の復号された第1のレイヤピクチャのうちの前記少なくとも1つが前記復号ピクチャバッファから除去されるべきであることを示すフラグまたはシンタックス要素をシグナリングすること、または前記1つまたは複数の復号された第1のレイヤピクチャのうちの前記少なくとも1つが前記復号ピクチャバッファから除去されるべきであるという指示を受信すること、のうちの1つを備える、C16に記載の方法。
[C19] 対応する第1のレイヤピクチャを有しない前記第2のレイヤピクチャのうちの前記少なくとも1つは、単一のピクチャを含むアクセスユニットの部分である、C16に記載の方法。
[C20] 前記第1のレイヤピクチャは第1の解像度を有し、前記第2のレイヤピクチャは前記第1の解像度よりも高い第2の解像度を有する、C16に記載の方法。
[C21] 前記1つまたは複数の復号された第1のレイヤピクチャのうちの前記少なくとも1つは、レイヤ間予測を使用して直近に復号された第1のレイヤピクチャに基づいて第2のレイヤピクチャを復号した後、前記復号ピクチャバッファから除去される、C16に記載の方法。
[C22] 1つを除くすべての第1のレイヤピクチャを前記復号ピクチャバッファから除去することと、
対応する第2のレイヤピクチャを有しない前記第1のレイヤピクチャがコーディングされるべきであると決定することと、
新しい第1のレイヤピクチャを、前記復号ピクチャバッファの中に残っている前記第1のレイヤピクチャを使用してコーディングすることと
をさらに備えるC16に記載の方法。
[C23] 前記第1のレイヤピクチャの各時間IDに対して、1つを除くすべての第1のレイヤピクチャを前記復号ピクチャバッファから除去することと、
対応する第2のレイヤピクチャを有しない前記第1のレイヤピクチャがコーディングされるべきであると決定することと、
新しい第1のレイヤピクチャを、前記新しい第1のレイヤピクチャと同じ時間IDを有する、前記復号ピクチャバッファの中に残っている前記第1のレイヤピクチャを使用してコーディングすることと
をさらに備えるC16に記載の方法。
[C24] 前記指示を処理することは、
前記復号ピクチャバッファに記憶されている前記第1のレイヤピクチャのうちの1つまたは複数が将来のコーディングのために保持されるべきであるかどうかを示すフラグまたはシンタックス要素を処理することと、
前記フラグまたはシンタックス要素によって将来のコーディングのために保持されるべきであると示されていない前記第1のレイヤピクチャの各々を、前記復号ピクチャバッファから除去することと
を備える、C16に記載の方法。
[C25] 対応する第2のレイヤピクチャを有しない新しいレイヤの新しいレイヤピクチャがコーディングされるべきであると決定することと、
前記新しいレイヤピクチャをコーディングすることとをさらに備え、
ここにおいて、前記新しいレイヤピクチャは、前記第1のレイヤピクチャと同じ解像度を有し、前記新しいレイヤは、前記第1のレイヤと同じレイヤIDを有する、
C16に記載の方法。
[C26] 対応する第1のレイヤピクチャを有しない前記第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定することに応答して、表示順序において直近にコーディングされた第1のレイヤピクチャに直ちに続くダミーピクチャを処理することと、
前記ダミーピクチャを使用して、前記少なくとも1つの復号された第1のレイヤピクチャが前記ダミーピクチャの前記使用を伴わずに除去されることになった時間期間よりも前に、前記少なくとも1つの復号された第1のレイヤピクチャを除去させることと
をさらに備えるC16に記載の方法。
[C27] 実行されると、装置に、
第1のレイヤおよび第2のレイヤのうちの少なくとも1つに関連付けられたビデオ情報を記憶することと、前記第1のレイヤは、第1のレイヤピクチャを備え、前記第2のレイヤは、第2のレイヤピクチャを備える、
前記第1のレイヤの前記第1のレイヤピクチャのうちの1つまたは複数を復号することと、
前記1つまたは複数の復号された第1のレイヤピクチャを復号ピクチャバッファに記憶することと、
対応する第1のレイヤピクチャを有しない前記第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定することと、
対応する第1のレイヤピクチャを有しない前記第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定することに応答して、前記復号ピクチャバッファに記憶されている前記1つまたは複数の復号された第1のレイヤピクチャのうちの少なくとも1つが前記復号ピクチャバッファから除去されるべきであるという指示を処理することと
を備えるプロセスを実行させるコードを備える非一時的コンピュータ可読媒体。
[C28] 前記指示を処理することは、前記1つまたは複数の復号された第1のレイヤピクチャのうちの前記少なくとも1つに、参照として使用されないものとして印をつけること、前記1つまたは複数の復号された第1のレイヤピクチャのうちの前記少なくとも1つが前記復号ピクチャバッファから除去されるべきであることを示すフラグまたはシンタックス要素をシグナリングすること、または前記1つまたは複数の復号された第1のレイヤピクチャのうちの前記少なくとも1つが前記復号ピクチャバッファから除去されるべきであるという指示を受信すること、のうちの1つを備える、C27に記載のコンピュータ可読媒体。
[C29] ビデオ情報をコーディングするように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
第1のレイヤおよび第2のレイヤのうちの少なくとも1つに関連付けられたビデオ情報を記憶するための手段と、前記第1のレイヤは、第1のレイヤピクチャを備え、前記第2のレイヤは、第2のレイヤピクチャを備える、
前記第1のレイヤの前記第1のレイヤピクチャのうちの1つまたは複数を復号するための手段と、
前記1つまたは複数の復号された第1のレイヤピクチャを復号ピクチャバッファに記憶するための手段と、
対応する第1のレイヤピクチャを有しない前記第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定するための手段と、
対応する第1のレイヤピクチャを有しない前記第2のレイヤピクチャのうちの少なくとも1つがコーディングされるべきであると決定することに応答して、前記復号ピクチャバッファに記憶されている前記1つまたは複数の復号された第1のレイヤピクチャのうちの少なくとも1つが前記復号ピクチャバッファから除去されるべきであるという指示を処理するための手段と
を備えるビデオコーディングデバイス。
[C30] 前記指示を処理するための前記手段は、
前記1つまたは複数の復号された第1のレイヤピクチャのうちの前記少なくとも1つに、参照として使用されないものとして印をつけるための手段、
前記1つまたは複数の復号された第1のレイヤピクチャのうちの前記少なくとも1つが前記復号ピクチャバッファから除去されるべきであることを示すフラグまたはシンタックス要素をシグナリングするための手段、または、
前記1つまたは複数の復号された第1のレイヤピクチャのうちの前記少なくとも1つが前記復号ピクチャバッファから除去されるべきであるという指示を受信するための手段、
のうちの1つを備える、C29に記載のビデオコーディングデバイス。