[0001]本出願は、その内容全体が参照により本明細書に組み込まれる、2013年7月12日に出願された米国仮出願第61/845,837号の利益を主張する。
[0024]一般に、本開示は、マルチレイヤHEVC拡張のために、ターゲット出力レイヤセットおよび時間IDによって指定される出力動作点の選択に関する技法を記載する。
[0025]ビットストリームは、複数のコーディングされたビューを有し得る。ビットストリームは、時間スケーラビリティ、すなわち、異なるフレームレートのサポートも有し得る。「動作点」という用語は、復号されるべきビューの特定のセット、ならびに使用されるべき時間的サブセット(たとえば、フレームレート)を指す。いくつかの場合には、異なるレイヤまたはビューは、たとえば、あるレイヤは720p、別のレイヤは1080pなど、異なる画像解像度を有する同じピクチャの複数のバージョンであり得る。一例として、元のビットストリームは、異なる空間解像度の3つのレイヤまたはビューと、異なるフレームレートの2つの時間的スケーラブルレイヤとを含み得る。この例では、元のビットストリームは、いずれかのフレームレートで利用可能な3つの空間解像度の各々を有する6つの動作点を含む。
[0026]異なるビューまたは画像解像度を表すことに加えて、異なるレイヤは、異なる品質表現を表し得る。たとえば、ベースレイヤは、低品質の720pの解像度のビデオとすることができ、拡張レイヤも、720pの解像度の、しかし、より高い品質の同じビデオであり、参照のためにベースレイヤに応じて決まる。
[0027]「出力動作点」という用語は、出力されるべきビューの特定のセット、復号されるべきビューのセット、ならびに使用されるべき時間的サブセットを指す。「レイヤ識別子リスト」は、動作点に含まれるべきレイヤを識別するために使用され得、ここにおいて、各レイヤは、別々の空間的にスケーラブルなレイヤ、ビューなどに対応する。レイヤ識別子リストは、ビデオパラメータセット(VPS)に含まれ得る。レイヤ識別子リストは、nuh_layer_id値のリストを含み得、ここにおいて、nuh_layer_id値は、各nuh_layer_id値が特定の対応するレイヤを識別するように、各レイヤが一意のnuh_layer_id値を有する非負整数とすることができる。最上位temporalIDは、時間的サブセットを定義するために使用され得る。レイヤ識別子リストおよびターゲット最上位temporalIDは、動作小数点をビットストリームから抽出するための入力として使用され得る。
[0028]より具体的には、「動作点」は、時間的におよび/または複数のレイヤもしくは/あるいはビューに関してスケーラブルな元のビットストリームから抽出され得るサブビットストリームである。すなわち、動作点は、入力としての別のビットストリーム、ターゲット最上位temporalID、およびターゲットレイヤ識別子リストを用いたサブビットストリーム抽出プロセスの動作によって別のビットストリームから作り出されたビットストリームである。ビットストリームは、動作点のビューを含む1つまたは複数のビューを含む。ターゲット最上位temporalIDは、時間的サブセットを定義する。ターゲットレイヤリストは、動作点のために復号されるべきレイヤのセットと、出力動作点のために出力されるべきレイヤのセットとのレイヤセットを含む。出力動作点は、特に、出力レイヤのセット、すなわち、出力されるべきレイヤである、出力レイヤセットにおいて識別されるレイヤに関連する。
[0029]「レイヤセット」という用語は、復号されるべきレイヤのセットを指すために使用される。「レイヤセット」は、「レイヤセット」が復号されるべきレイヤに関する情報を含み、時間スケーラビリティに関する情報を含まないことを除いて、「動作点」と類似している。レイヤセットは、動作点がビットストリームから導出され得る同様の方法で、ビットストリームから導出され得るが、最上位temporalIDは適用できない。
[0030]「出力レイヤセット」という用語は、出力されるべきレイヤのセットと、セットにおけるレイヤを識別するレイヤ識別子リストと、対応するレイヤセットの識別(対応するレイヤセットは、復号されるべきレイヤを識別する)とを指す。出力レイヤセットは、(対応するレイヤセットを示すことに加えて)出力レイヤセットが出力のターゲットにされるレイヤを識別することを除いて、レイヤセットと類似している。いくつかの例では、出力レイヤセットは、対応するレイヤセットのインデックスを含むことによって、対応するレイヤセットを識別し、ここにおいて、対応するレイヤセットは、復号されるべきレイヤを識別する。他の例では、出力レイヤセットは、いくつかの他の方法で対応するレイヤセットを識別する。
[0031]たとえば、レイヤ間(またはビュー間)の予測のために使用されるときなど、出力のターゲットにされないレイヤセットにおけるレイヤは、依然として復号され得る。出力のターゲットにされるレイヤは、復号されるべきレイヤのサブセットであり、復号されるべきレイヤの1つ、一部、またはすべては、出力のターゲットにされ得る。「サブセット」という用語が、必ずしも、出力されるべきレイヤが復号されるべきレイヤの厳密なサブセットであることを意味するとは限らないことを理解されたい。すなわち、いくつかの例では、復号されるべきレイヤと出力されるべきレイヤとは同じである。「出力レイヤセット」は、「出力レイヤセット」が出力されるべきレイヤに関する情報を含み、時間スケーラビリティに関する情報を含まないことを除いて、「出力動作点」と類似している。
[0032]サブビットストリームは、レイヤ識別子(出力動作点のためのレイヤを識別する)と、ビットストリームの出力動作点を識別する時間的サブレイヤ識別子(出力動作点のための時間的サブセットを識別する)との値に基づいて、ビットストリームから抽出され得る。出力動作点は、ビットストリーム内のビデオパラメータセット(VPS)においてシグナリングされる。動作点の各々では、動作点シンタックス構造は、所与の動作点のサブビットストリームに属する、ビットストリーム内のネットワークアブストラクションレイヤ(NAL)ユニットを識別するために使用されるレイヤ識別子のセットを指定する。このようにして、所与の出力動作点のサブビットストリームを構成するNALユニットは、NALユニットのレイヤ識別子と、出力動作点に関連する最上位時間IDとに基づいて元のビットストリームから抽出され得る。NALユニットは、コーディングされたビデオデータの構成要素であり、コーディングされたビデオデータは、NALユニットに編成される。
[0033]本開示で説明する技法は、出力レイヤセットのリストにおける特定のターゲット出力レイヤセットのインデックスを導出し、ビデオ復号器にインデックスを送ることを含む。インデックスは、復号プロセス、特に復号プロセスの復号ピクチャバッファ動作の間に使用されるターゲット出力レイヤのセットを定義するために使用され得る。また、いくつかの例では、以下でより詳細に説明するように、インデックスは、仮想参照復号器(HRD:hypothetical reference decoder)動作および他の動作の一部として復号ピクチャバッファ(DPB)動作のための適切なDPBサイズ(またはサブDPBサイズ)の選択のために使用される。
[0034]いくつかの例では、インデックスは、インデックスをビットストリーム自体に含むことによって復号器に送られるのではなく、すなわちビデオ自体がビデオ復号器に送られるビットストリームの外部の何らかの「外部手段」によって送られる。以下でより詳細に説明するように、様々な例では、インデックスは、サーバ/ソースデバイスによって、またはクライアント/宛先デバイス上の1つまたは複数の構成要素によって導出され得、以下でより詳細に説明するように、いくつかの例では、MPEG TSまたはDASH MPD(メディアプレゼンテーション記述)を含めて、異なる例において異なる方法でビデオ復号器に送られ得る。いくつかの例では、インデックスは、ビットストリームが、ビットストリームにおいて与えられる1つの動作点ではなく複数の動作点で動作することができるように、ビットストリームでインデックスを送るのではなく、「外部手段」を介してビデオ復号器に送られる。いくつかの例では、ビデオ復号器がインデックスを受信しない場合、たとえばレイヤ0のみを復号し、出力するなど、デフォルトの想定がなされている。
[0035]本開示で説明する技法は、いくつかの例では、セッション交渉の便宜のためにトランスポートレイヤ仕様でVPSにおいてシグナリングされる出力動作点の情報を複製することをさらに含む。一例では、トランスポートレイヤ仕様は、たとえば、ファイル形式情報におけるビデオ復号器構成、および/またはMPEG−2 TSにおける記述子を含めて、動的適応ストリーミングオーバーHTTP(DASH)におけるMPD(メディアプレゼンテーション記述)などのマニフェストファイルとすることができる。別の例として、マニフェストファイルは、セッション記述プロトコル(SDP)メッセージを備え得る。出力動作点ごとに、ターゲット出力ビュー、追加の従属するビュー、および最も低い適用可能な最上位temporalIDがシグナリングされ得る。
[0036]HEVCスケーラブル/マルチビュー/3D拡張において可能であるインデックスを定義する外部手段に基づいて、異なるプロセスがトランスポートレイヤにおいて使用されてもよく、そのような2つの例示的な異なるプロセスは、1つはストリーミング、および1つはSDPオファー/回答の方法の交渉を含む。
[0037]たとえば、DASHおよびリアルタイムストリーミングプロトコル(RTSP)ストリーミングなど、ストリーミングアプリケーションでは、以下が適用され得る。クライアントデバイスは、メディアプレゼンテーションの記述を受信し、ここにおいて、記述は、出力レイヤセットに関する情報、および、場合によっては、時間的サブセットに基づく出力動作点に関する情報を含む。クライアントデバイスは、記述を構文解析し、出力動作点のうちの1つを選択し、サーバデバイスにその出力動作点を要求することができる。サーバデバイスは、要求された出力動作点情報を最上位temporalIDおよび特定のターゲット出力レイヤセットのインデックスに変換し、この情報を外部手段からの入力としてビデオ復号器に配信することができる。サーバデバイスは、出力動作点に対応する要求されたデータを送ることができる。
[0038]セッション記述プロトコル(SDP)オファー/回答タイプの交渉を使用したアプリケーションでは、以下が適用され得る。送信機デバイスは、受信機Aと受信機Bとを含む複数の受信機に招待を送ることができ、招待は、送信機が提供することができる出力動作点(たとえば、出力ビューに関して)の記述を含む。受信機は、それぞれの出力動作点を選択することができる。たとえば、受信機Aは、出力すべきビューのセットを選択することができ、受信機Bも、出力すべきビューのセットを選択することができる。送信機デバイスは、出力レイヤセットの記述、および場合によっては、時間的サブセットに基づく出力動作点も含めて、受信機によって選択されたすべてのビューを含むビットストリームを符号化することができ、記述を受信機に送る。必要な出力動作点は、メディアプレゼンテーションの記述でシグナリングされる。各受信機は、それが望む出力レイヤセットのインデックスを決定し、最上位temporalIDと、出力レイヤセットのリストにおける出力レイヤセットのインデックスとを受信機の復号器に渡す。この例では、インデックスは、ビデオ復号器における外部手段として使用される。
[0039]ビデオコーディング規格としては、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262またはISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、およびITU−T H.264(ISO/IEC MPEG−4 AVCとしても知られている)がある。ビデオコーディング規格としては、さらに、ITU−T H.264のスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)の拡張がある。
[0040]さらに、ITU−Tビデオコーディングエキスパートグループ(VCEG)とISO/IECモーションピクチャエキスパートグループ(MPEG)とのビデオコーディング共同研究部会(JCT−VC)が完成した、新しいビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)がある。最新のHEVCドラフト仕様は、その全体が参照により組み込まれる、ワーキングドラフト10(本明細書では「HEVC WD10」と呼ぶ)である。http://phenix.it-sudparis.eu/jct/doc_end_user/documents/13_Incheon/wg11/JCTVC-M0432-v3.zipからの、2013年7月12日時点で入手可能な、Brossら、High Efficiency Video Coding(HEVC)Text Specification Draft 10、2013年4月、Incheon。本開示で説明する技法は、HEVC規格に関して説明されるが、本開示の態様は、そのように限定されず、他のビデオコーディング規格および独自のビデオコーディング技法に拡張され得る。
[0041]入手可能であり、HEVCのために開発された拡張がある。たとえば、HEVCのマルチビュー拡張、すなわちMV−HEVCもJCT−3Vによって開発されている。MV−HEVCの最近のワーキングドラフト(WD)は、その全体が参照により組み込まれる、WD4(本明細書では「MV−HEVC WD4」と呼ばれる)である。http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/4_Incheon/wg11/JCT3V-D1004-v4.zipからの、2013年7月12日時点で入手可能な、Techら、MV−HEVC Draft Text 4、2013年4月、Incheon。HEVCのスケーラブル拡張、すなわちSHVCも、JCT−VCによって開発されている。SHVCの最近のワーキングドラフトは、その全体が参照により組み込まれる、SHVCワーキングドラフト2(本明細書では「SHVC WD2」と呼ばれる)である。http://phenix.it-sudparis.eu/jct/doc_end_user/documents/13_Incheon/wg11/JCTVC-M1008-v3.zipからの、2013年7月12日時点で入手可能な、Chenら、SHVCワーキングドラフト2、2013年4月、Incheon。
[0042]図1は、本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されているように、システム10は、宛先デバイス14によって後で復号されるべき符号化されたビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話送受話器、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオストリーミングデバイスなどを含む、様々なデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対応し得る。
[0043]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオ符号化器20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオ復号器30と、ディスプレイデバイス32とを含む。他の例では、ソースデバイス12および宛先デバイス14は、他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部のビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、統合されたディスプレイデバイスを含むのではなく、外部のディスプレイデバイスとインターフェースし得る。
[0044]図1の例示されたシステム10は、一例にすぎない。本開示の技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実施され得る。概して、本技法はビデオ符号化デバイスまたはビデオ復号デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオ符号化器/復号器によっても実行され得る。その上、本開示の技法は、また、ビデオプリプロセッサによって実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が、コーディングされたビデオデータを宛先デバイス14への伝送のためにその中で生成する、そのようなコーディングデバイスの単に例である。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素と復号構成要素とを含むように実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話通信のための、ビデオデバイス12と14との間での一方向または双方向のビデオ伝送をサポートし得る。
[0045]ソースデバイス12のビデオソース18は、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含み得る。さらなる代わりとして、ビデオソース18は、ソースビデオとしてコンピュータグラフィックスベースのデータ、または、ライブビデオ、アーカイブされたビデオ、およびコンピュータ生成のビデオの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成し得る。しかしながら、先に述べたように、本開示に記載される技法は、一般にビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤードの応用例に適用され得る。
[0046]各ケースでは、キャプチャされたビデオ、事前にキャプチャされたビデオ、またはコンピュータで生成されるビデオは、ビデオ符号化器20によって符号化され得る。符号化されたビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信され得る。符号化されたビデオデータは、さらに(または代替として)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのためにストレージデバイス上に記憶され得る。
[0047]リンク16は、ワイヤレスブロードキャストもしくはワイヤードネットワーク送信などの一時的媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−ray(登録商標)ディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバは、ソースデバイス12から符号化されたビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化されたビデオデータを宛先デバイス14に与え得る。同様に、ディスクスタンピング設備などの媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化されたビデオデータを受信し、その符号化されたビデオデータを含むディスクを生成し得る。したがって、様々な例では、リンク16は、様々な形態の1つまたは複数のコンピュータ可読媒体を含むと理解され得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化されたビデオデータを動かすことが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク16は、ソースデバイス12が、符号化されたビデオデータをリアルタイムで宛先デバイス14に直接送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信される場合がある。通信媒体は、高周波(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワークなどのパケットベースのネットワーク、またはインターネットなどのグローバルネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を促進するために有用であり得る任意の他の機器を含み得る。
[0048]宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体であり得るリンク16から情報を受信する。リンク16からの情報は、ビデオ符号化器20によって定義され、またビデオ復号器30によって使用される、ブロックおよび他のコーディングされたユニット、たとえば、GOPの特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス32は、宛先デバイス14と一体化されるか、または宛先デバイス14の外部にあり得る。ディスプレイデバイス32は、復号されたビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのうちの任意のものを備え得る。
[0049]代替的に、符号化されたデータは、出力インターフェース22からストレージデバイス34に出力され得る。同様に、符号化されたデータは、入力インターフェースによってストレージデバイス34からアクセスされ得る。ストレージデバイス34は、ハードドライブ、Blu−rayディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体など、様々な分散したまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス34は、ソースデバイス12によって生成された符号化されたビデオを保持することができるファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイス34から記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバとすることができる。例示的なファイルサーバは、ウェブサーバ(たとえば、ウェブサイトのための)、FTPサーバ、ネットワーク接続記憶(NAS)デバイス、または局所的なディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化されたビデオデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または、ファイルサーバに記憶されている符号化されたビデオデータにアクセスするのに適した、それらの両方の組合せを含み得る。ストレージデバイス34からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
[0050]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティングおよび/またはビデオテレフォニーなどの適用例をサポートするために一方向または双方向のビデオ送信をサポートするように構成され得る。
[0051]ビデオ符号化器20およびビデオ復号器30は、HEVC WD10規格などのビデオコーディング規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。さらに、ビデオ符号化器20およびビデオ復号器30は、MV−HEVC WD4およびSHVC WD2など、HEVC拡張に従って動作し得る。代替的に、ビデオ符号化器20およびビデオ復号器30は、代替的にMPEG−4、Part 10と呼ばれるITU−T H.264規格、アドバンストビデオコーディング(AVC)、またはそのような規格の拡張などの、他の独自の規格または業界規格に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例には、MPEG−2およびITU−T H.263が含まれる。いくつかの態様では、ビデオ符号化器20およびビデオ復号器30は、それぞれ、オーディオの符号化器および復号器とともに統合され得、オーディオとビデオの両方の、共通のデータストリームまたは別個のデータストリームでの符号化を扱うための、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能であれば、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0052]ITU−T H.264/MPEG−4(AVC)規格は、共同ビデオ部会(JVT)として知られる共同パートナーシップの成果としてISO/IECムービングピクチャエキスパートグループ(MPEG)とともにITU−Tビデオコーディングエキスパートグループ(VCEG)によって策定された。いくつかの態様では、本開示で説明する技法は、H.264規格に概して準拠するデバイスに適用され得る。H.264規格は、ITU−T研究グループによる2005年3月付のITU−T勧告H.264「 Advanced Video Coding for generic audiovisual services」に記載されており、本明細書ではH.264規格またはH.264仕様、あるいはH.264/AVC規格または仕様と呼ぶことがある。共同ビデオ部会(JVT)は、H.264/MPEG−4 AVCの拡張に取り組み続けている。
[0053]ビデオ符号化器20およびビデオ復号器30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなどの、様々な適切な符号化器または復号器回路のいずれかとして実装され得る。本技法がソフトウェアに部分的に実装されるとき、デバイスは、ソフトウェアに対する命令を適切な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するための1つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行し得る。ビデオ符号化器20およびビデオ復号器30の各々は、1つまたは複数の符号化器または復号器に含まれてもよく、そのいずれかは、複合符号化器/復号器(コーデック)の一部として、それぞれのデバイスに統合され得る。ビデオ符号化器20および/またはビデオ復号器30を含むデバイスは、集積回路、マイクロプロセッサ、および/または携帯電話などのワイヤレス通信デバイスを備え得る。
[0054]JCT−VCは、HEVC規格を開発し、HEVCの拡張について作業中である。HEVC規格化の取組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の機能を仮定する。たとえば、H.264は、9つのイントラ予測符号化モードを提供するが、HMは、33ものイントラ予測符号化モードを提供し得る。
[0055]概して、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含むツリーブロックまたは最大コーディングユニット(LCU)のシーケンスに分割され得ることを記述する。ビットストリーム内のシンタックスデータは、LCUにとってのサイズを定義し得、LCUは、ピクセルの数の点で最大のコーディングユニットである。スライスは、いくつかの連続したツリーブロックを、コーディングの順序で含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分される場合がある。各ツリーブロックは、4分木に従って、コーディングユニット(CU)に分割され得る。一般に、4分木データ構造は、CUあたり1つのノードを、ツリーブロックに対応するルートノードとともに含む。CUが4つのサブCUに分割される場合、CUに対応するノードは、4つのリーフノードを含み、その各々は、サブCUのうちの1つに対応する。
[0056]4分木データ構造の各ノードは、対応するCUのシンタックスデータを提供し得る。たとえば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのためのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。CUがこれ以上分割されない場合、そのCUはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的な分割が存在しない場合でも、リーフCUの4つのサブCUもリーフCUと呼ばれるようになる。たとえば、16×16サイズのCUがさらに分割されない場合、この16×16CUが決して分割されなくても、4つの8×8サブCUもリーフCUと呼ばれるようになる。
[0057]CUは、CUがサイズの特異性を有しないことを別にすれば、H.264規格のマクロブロックと類似の目的を有する。たとえば、ツリーブロックは、4つの子ノード(サブCUとも呼ばれる)に分割され、各子ノードは、次に親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードと呼ばれる、最終の、分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コーディングされたビットストリームに関連するシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義することができ、コーディングノードの最小サイズを定義することもできる。それに応じて、ビットストリームは最小コーディングユニット(SCU:smallest coding unit)を定義することもできる。本開示は、「ブロック」という用語を、HEVCのコンテキストにおいてCU、PU、またはTUのうちのいずれか、または他の規格のコンテキストにおいて類似のデータ構造(たとえば、H.264/AVCのマクロブロックおよびそのサブブロック)を参照するために使用する。
[0058]CUは、コーディングノードと、コーディングノードに関連付けられた予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状において正方形でなければならない。CUのサイズは、8×8ピクセルから、最大で64×64ピクセルまたはそれを越えるツリーブロックのサイズまで変動し得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含んでいることがある。CUと関連したシンタックスデータは、たとえば、CUの1つまたは複数のPUへの区分を記述し得る。区分モードは、CUがスキップであるか、または、ダイレクトモードで符号化されるか、イントラ予測モードで符号化されるか、もしくはインター予測モードで符号化されるかの間で、異なり得る。PUは、形状が非正方形に区分され得る。CUと関連したシンタックスデータは、また、たとえば、CUの1つまたは複数のTUへの、4分木に従う区分を記述し得る。TUは、形状において正方形または非正方形(たとえば、長方形)であることができる。
[0059]HEVC規格は、異なるCUに対して異なり得る、TUに従う変換を可能にする。TUは、通常、区分されたLCUのために定義された、所与のCU内のPUのサイズに基づいてサイズ決定されるが、これは常にそうであるとは限らない。TUは、一般に、PUと同じサイズであるか、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT)と呼ばれる4分木構造を使用して、より小さいユニットにさらに分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連するピクセル差分値は、変換係数を生成するために変換され、その変換係数は量子化され得る。
[0060]リーフCUは、1つまたは複数の予測ユニット(PU)を含むことができる。概して、PUは、対応するCUのすべてまたは一部分に対応する空間エリアを表し、そのPUの参照サンプルを取り出すためのデータを含み得る。その上、PUは、予測に関係するデータを含む。たとえば、PUがイントラモードで符号化されるとき、PUに関するデータは、残差4分木(RQT)に含まれ、残差4分木は、PUに対応するTUに関するイントラ予測モードを記述するデータを含め得る。別の例として、PUがインターモードで符号化されるとき、PUは、PUのための1つまたは複数の動きベクトルを定義するデータを含み得る。PUのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルに関する解像度(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述し得る。
[0061]1つまたは複数のPUを有するリーフCUは、1つまたは複数の変換ユニット(TU)を含むこともできる。変換ユニットは、上述するように、RQT(TUの4分木構造とも呼ばれる)を使用して規定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを、示し得る。次いで、各変換ユニットは、さらなるサブTUに、さらに分割され得る。TUがこれ以上分割されないとき、そのTUはリーフTUと呼ぶことができる。一般に、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは同じイントラ予測モードを共有する。すなわち、同じイントラ予測モードが、一般に、リーフCUのすべてのTUに対して予測される値を計算するために適用される。イントラコーディングのために、ビデオ符号化器は、イントラ予測モードを使用して、TUに対応するCUの部分と元のブロックとの間の差分として、各リーフTUに対する残差値を計算し得る。TUは、必ずしも、PUのサイズに限定されるとは限らない。したがって、TUはPUよりも大きくても、または小さくなり得る。イントラコーディングのために、PUは、同じCUに対して対応するリーフTUと並べられ得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに該当する場合がある。
[0062]その上、リーフCUのTUは、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造に関連付けることもできる。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。TU4分木のルートノードは一般にリーフCUに対応し、CU4分木のルートノードは一般にツリーブロック(またはLCU)に対応する。分割されないRQTのTUはリーフTUと呼ばれる。一般に、本開示は、別段の注記がない限り、CUおよびTUという用語を、それぞれ、リーフCUおよびリーフTUを指すために使用する。
[0063]ビデオシーケンスは、通常、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、一般に、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOPに含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、1つまたは複数のピクチャのヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含む場合がある。ビデオ符号化器20は、通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用する。ビデオブロックは、CU内のコーディングノードに対応する場合がある。ビデオブロックは、固定サイズまたは可変サイズを有し、指定のコーディング規格に応じてサイズが異なり得る。
[0064]例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nとすれば、HMは、2N×2NまたはN×NのPUサイズでのイントラ予測、および2N×2N、2N×N、N×2N、またはN×Nの対称なPUサイズでのインター予測をサポートする。HMは、また、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための、非対称な区分をサポートする。非対称な区分では、CUの一方向は区分されず、他の方向は25%および75%に区分される。25%の区分に対応するCUの部分は、「n」とそれに続く「Up」、「Down」、「Left」、または「Right」という指示によって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5NのPU、および下部の2N×1.5NのPUによって水平に区分される2N×2NのCUを指す。
[0065]本開示では、「N×N」および「N by N」は、垂直および水平の寸法の観点からビデオブロックのピクセル寸法を指すために、たとえば、16×16ピクセルまたは16by16ピクセルのように、互換的に使用され得る。概して、16×16ブロックは、垂直方向に16ピクセル(y=16)、および水平方向に16ピクセル(x=16)を有する。同様に、N×Nブロックは、概して、垂直方向にNピクセル、および水平方向にNピクセルを有し、ここでNは、非負の整数値を表す。ブロック内のピクセルは、行および列に配列され得る。さらに、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはN×Mピクセルを備えてよく、ここで、Mは必ずしもNに等しいとは限らない。
[0066]CUのPUを使用するイントラ予測またはインター予測のコーディングの後で、ビデオ符号化器20は、CUのTUに対する残差データを計算し得る。PUは、空間領域(ピクセル領域とも呼ばれる)において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え、TUは、変換、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオ符号化器20は、CUに関する残差データを含むTUを形成し、次いで、CUの変換係数を生成するためにTUを変換し得る。
[0067]変換係数を生成するための任意の変換の後で、ビデオ符号化器20は、変換係数の量子化を実行し得る。量子化は、一般に、係数を表すために使用されるデータの量をできるだけ低減するために、変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。量子化プロセスは、係数の一部またはすべてに関連するビット深度を低減し得る。たとえば、nビットの値は、量子化中にmビットの値に端数を丸められてよく、ここで、nはmよりも大きい。
[0068]量子化の後で、ビデオ符号化器は、変換係数をスキャンし得、量子化変換係数を含む2次元の行列から1次元のベクトルを生成する。スキャンは、アレイの前部により高いエネルギー(したがって、より低い周波数)係数を配置し、アレイの後部により低いエネルギー(したがって、より高い周波数)係数を配置するように設計され得る。いくつかの例では、ビデオ符号化器20は、エントロピー符号化され得るシリアル化されたベクトルを生成するために、量子化変換係数をスキャンするための規定のスキャン順序を利用し得る。他の例では、ビデオ符号化器20は、適応スキャンを実行し得る。量子化変換係数をスキャンして1次元のベクトルを形成した後、ビデオ符号化器20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピー符号化の方法に従って、1次元のベクトルをエントロピー符号化し得る。ビデオ符号化器20は、ビデオデータを復号する際にビデオ復号器30が使用するための、符号化されたビデオデータに関連付けられたシンタックス要素をエントロピー符号化することもできる。
[0069]CABACを実行するために、ビデオ符号化器20は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの隣接する値がゼロ以外であるか否かに関係し得る。CAVLCを実行するために、ビデオ符号化器20は、送信されるべきシンボルに対する可変長符号を選択し得る。VLCの中の符号語は、比較的短い符号が優勢シンボルに対応し、より長い符号が劣勢シンボルに対応するように、構成され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長符号語を使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0070]ビデオ符号化器20は、さらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびGOPベースのシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダの中で、ビデオ復号器30へ送り得る。GOPシンタックスデータは、それぞれのGOPの中のいくつかのフレームを記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用された符号化/予測モードを示し得る。
[0071]HEVC WD10は、「プロファイル」および「レベル」の手段によってシンタックスの限られた数のサブセットの規定も可能にする。HEVC WD10は、広範なアプリケーション、ビットレート、解像度、品質、およびサービスを提供するという意味で一般的であるように設計されている。アプリケーションは、とりわけ、デジタルストレージ媒体、テレビ放送、およびリアルタイム通信をカバーすべきである。HEVC WD10を作成する最中に、一般的なアプリケーションからの様々な要件が考慮され、必要なアルゴリズム要素が開発され、これらは単一のシンタックスに組み込まれている。したがって、HEVC WD10は、異なるアプリケーションの中のビデオデータ交換を容易にする。しかしながら、HEVC WD10の全シンタックスを実装する実用性を考慮して、プロファイルおよびレベルは、シンタックスの限られた数のサブセット用の手段を提供する。
[0072]「プロファイル」は、HEVC WD10によって指定されたビットストリームシンタックス全体のサブセットとして定義される。所与のプロファイルのシンタックスによって課される限界内で、ビットストリーム内のシンタックス要素によってとられる値に応じて、符号化器および復号器のパフォーマンスの極めて大きい変動を必要とする可能性が依然としてある。たとえば、復号されるピクチャの指定サイズは、符号化器および復号器のパフォーマンスの極めて大きい変動を必要とし得る。多くの適用例において、現在、特定のプロファイル内でシンタックスのすべての仮定的使用を処理することが可能な復号器を実装することは実用的でもなく、経済的でもない。
[0073]この問題に対処するために、各プロファイル内で「ティア」および「レベル」が指定される。ティアのレベルは、ビットストリーム内のシンタックス要素の値に課された制約条件の指定されたセットである。これらの制約条件は、値に関する単純な制限であり得る。あるいは、それらの制約条件は、値の演算の組合せ(たとえば、ピクチャの幅×ピクチャの高さ×毎秒復号されるピクチャの数)に関する制約の形態をとり得る。下位ティアのために指定されたレベルは、上位ティアのために指定されたレベルよりも制約される。すべてのプロファイルに関してレベルの同じセットが定義され、各レベルの定義のほとんどの態様が、様々なプロファイルにわたって共通である。個々の実装形態は、指定された制約条件内で、各サポートされるプロファイルの異なるレベルをサポートし得る。異なるコンテキストでは、レベルは、スケーリングの前の変換係数の値である。プロファイルおよびレベルは、HEVC WD10の付属書類Aにより詳細に記述されている。
[0074]HEVC WD10は、temporalID変数の特定の値を有するビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットと、関連する非VCL NALユニットとから成る時間的スケーラブルビットストリームの時間的スケーラブルレイヤとしてサブレイヤを定義する。HEVC WD10は、特定のサブレイヤおよび下位のサブレイヤのNALユニットから成るビットストリームのサブセットとしてサブレイヤ表現をさらに定義する。
[0075]HEVC WD10の10.1項は、ビットストリームサブセットと、サブビットストリームを生成するための抽出プロセスとを記述する。一般に、HEVC WD10は、レイヤ識別子およびビットストリームの動作点を識別する時間的サブレイヤ識別子の値に基づいてビットストリームからサブビットストリームを抽出することを記述する。
[0076]動作点は、入力としての別のビットストリーム、ターゲット最上位temporalID、およびターゲットレイヤ識別子リストを用いたサブビットストリーム抽出プロセスの動作によって別のビットストリームから作り出されたビットストリームである。動作点は、OpLayerIdSetとして示されるnuh_layer_id値と、OpTidとして示されるtemporalID値とのセットによって識別され得、入力としてのOpTidおよびOpLayerIdSetを用いてHEVC WD10中に指定されたサブビットストリーム抽出プロセスの出力として導出された関連のビットストリームサブセットは、独立して復号可能である。動作点のターゲット最上位temporalIDが、ターゲットレイヤ識別子リストに関連するレイヤセット中のtemporalIDの最大値に等しい場合、動作点は、レイヤセットと同一である。そうでない場合、動作点は、レイヤセットのサブセットである。
[0077]いくつかの例では、サブビットストリーム抽出プロセスは、ターゲット最上位temporalIDおよびターゲットレイヤ識別子リストlayerIdListTargetによって決定される、ターゲットセットに属さないビットストリーム内のNALユニットが、ターゲットセットに属するビットストリーム内のNALユニットから成る出力サブビットストリームを有するビットストリームから除去される、指定されたプロセスである。いくつかの例では、サブビットストリーム抽出プロセスへの入力は、変数tIdTargetおよびリストtargetDecLayerIdSetであり、サブビットストリーム抽出プロセスの出力は、サブビットストリームである。サブビットストリームは、targetDecLayerIdSet中の値の中にないtIdTargetよりも大きいtemporalIDまたはnuh_layer_idをもつすべてのNALユニットを、ビットストリームから除去することによって導出され得る。
[0078]両端値を含む0〜6の範囲の任意の値に等しいtIdTargetと、値0を含むtargetDecLayerIdSetとを有する、HEVC WD10の10.1項中に指定されるサブビットストリーム抽出プロセスの出力に含まれる任意のサブビットストリームは、HEVC WD10に準拠する。HEVC WD10に準拠するビットストリームは、0に等しいnuh_layer_idと、0に等しいtemporalIDとを有する1つまたは複数のコーディングされたスライスNALユニットを含み得る。
[0079]現在のMV−HEVCおよびSHVC仕様は、復号の間に出力されるべきレイヤを識別することについての問題を有する。第1に、複数の出力レイヤセットがVPSにおいてシグナリングされるが、復号プロセスは、どの出力レイヤセットが選択されるかを知らない。したがって、TargetDecLayerIdListによって与えられる、復号されるべきレイヤの中で、どのレイヤに属するどのピクチャが出力されないものとして常に設定され得る(0に等しいPicOutputFlagを有する)か、およびどのレイヤに属するどのピクチャが出力されるかは、明確ではない。
[0080]第2に、MVCの場合のように、外部手段が出力されるべきターゲットレイヤのセットを指定し得るが、この機構は、出力レイヤセットとターゲット出力レイヤのセットとの一致の複雑さ、およびセッション初期化の成功を一発で達成することができない可能性による不安定性の2つの側面で欠点を有し得る。
[0081]ターゲット出力レイヤのセットが外部手段を介してシグナリングされる場合、クライアント(ビデオ符号化器20でもよい)と復号器(ビデオ復号器30でもよい)との間のインターフェースだけでなく、復号器でももう少しデータを消費し、ターゲット出力レイヤをVPSにおける出力レイヤセットが含む出力レイヤと一致させることが必要とされる。このプロセスは、復号器での不要な複雑さを導き得る。
[0082]復号器は、ターゲット出力レイヤ(外部手段によって導出される)がどんな出力レイヤとも一致しないケースを考慮に入れる必要がある。この場合、復号プロセスは、終了する、またはターゲット出力レイヤに「近い」出力レイヤセットを知的に導出することができる。しかしながら、これは、クライアントが望む動作点ではない可能性があり、したがって、もう一回セッション交渉が必要である。
[0083]以下の技法は、動作点の選択のための上記の欠点に対処するために本開示に含まれる。第1に、特定のターゲット出力レイヤセットのインデックスは、外部手段(たとえば、ソースデバイスまたはメディアアプリケーションまたは宛先デバイス上の他の構成要素)によって導出され得る。インデックスは、復号プロセス、特に復号ピクチャバッファ(DPB)動作の間に使用されるターゲット出力レイヤのセットを定義するために使用され得る。加えて、インデックスは、HRD動作の一部としてDPB動作のための適切なDPBサイズ(またはサブDPBサイズ)の選択のために使用され得る。
[0084]第2に、いくつかの例では、セッション交渉の便宜のために、VPSにおいてシグナリングされる出力動作点の情報は、たとえば動的適応ストリーミングオーバーHTTP(DASH)におけるメディアプレゼンテーション記述(MPD)、ファイル形式における復号器構成、およびMPEG−2トランスポートストリーム(TS)における記述子など、トランスポートレイヤ仕様において複製され得る。より単刀直入には、いくつかの例では、出力動作点ごとに、ターゲット出力ビュー、追加の従属するビュー、および最も低い適用可能な最上位temporalIDがシグナリングされる。
[0085]第3に、いくつかの例では、HEVCスケーラブル/マルチビュー/3D拡張において可能である外部手段に基づいて、そのような2つの例示的な異なるプロセスは、1つはストリーミング、および1つはSDPオファー/回答の方法の交渉を含む。
[0086]たとえば、DASHおよびリアルタイムストリーミングプロトコル(RTSP)ストリーミングなど、ストリーミングアプリケーションでは、以下が適用され得る。
i.クライアントは、メディアプレゼンテーションの記述(たとえば、マニフェストファイル)を取得し、ここにおいて、記述は、出力レイヤセットに関する情報、および、場合によっては、時間的サブセットに基づく出力動作点に関する情報を含む。
ii.クライアントは、記述を構文解析し、出力動作点のうちの1つを選択し、その出力動作点を要求する。
iii.サーバは、要求された出力動作点情報を最上位temporalIDおよび特定の出力レイヤセットのインデックスに変換し、この情報を外部手段からの入力としてビデオ復号器に配信する。
iv.サーバは、出力動作点に対応する要求されたデータを送る。
[0087]マニフェストファイルは、たとえば、メディアプレゼンテーション記述(MPD)またはSDPメッセージを含み得る。
[0088]SDPオファー/回答タイプの交渉を使用したアプリケーションでは、以下が適用され得る。
i.送信機は、受信機Aと受信機Bとを含む複数の受信機に招待を送り、招待は、送信機が提供することができる出力動作点(出力ビューに関して)の記述を含む。
ii.受信機は、それぞれの出力動作点を決定する。たとえば、受信機Aは、出力すべきビューのセットを選択し、受信機Bは、出力すべきビューのセットを選択する。
iii.送信機は、出力レイヤセットの記述、および場合によっては、時間的サブセットに基づく出力動作点も含めて、受信機によって選択されたすべてのビューを含むビットストリームを符号化し、記述を受信機に送る。必要な出力動作点は、メディアプレゼンテーションの記述でシグナリングされる。
iv.各受信機は、それが望む出力レイヤセットのインデックスを見つけ出し、最上位temporalIDと、出力レイヤセットのインデックスとを受信機の復号器に渡す。インデックスは、ビデオ復号器における外部手段として使用される。
[0089]いくつかの例では、ソースデバイス12は、ビデオ符号化器20を含む同じデバイスとすることができる。他の例では、ビデオ符号化器20は、別個のデバイスに含まれ得る。ソースデバイス12は、符号化されたビデオデータがソースデバイス12によって受信される前に、別個のデバイスにおけるビデオ符号化器によって符号化されたビデオデータを記憶し、管理することができる。たとえば、ストリーミングアプリケーションのための上述したサーバ、またはSDPオファー/回答タイプの交渉のための上述した送信機は、必ずしも符号化器を有しているとは限らず、ビデオをそれ自体で符号化していない可能性があるが、いくつかの例では符号化し得る。
[0090]図1には図示されていないが、宛先デバイス14は、メディアアプリケーションをさらに含み得る。メディアアプリケーションを含む宛先デバイス14の実施形態は、図7に示されており、以下でさらに詳細に説明する。サブビットストリーム抽出は、たとえばソースデバイス12において、宛先デバイスのメディアアプリケーションにおいて、宛先デバイスのビデオ復号器30において、アップストリームのメディアアウェアネットワーク要素(MANE:Media Aware Network Element)において、または何らかの他の位置など、異なる実施形態で異なる場所において実行され得る。上記のストリーミングアプリケーションのいくつかの例では、それは、サーバと通信するクライアントのメディアアプリケーションであり、ここにおいて、サーバは、たとえば、ソースデバイス12であり得る。上記で説明したように、ソースデバイス12は、必ずしもビデオ符号化器を含むとは限らず、ビデオは、ソースデバイス12に記憶される前に符号化されている場合がある。また、上記で説明したSDPオファー/回答タイプの交渉のいくつかの例では、送信機は、たとえば、ソースデバイス12でもよく、受信機は、宛先デバイス14の実施形態でもよく、ここにおいて、SDPオファー/回答タイプの交渉は、ソースデバイス12と宛先デバイスの各々のメディアアプリケーションとの間に起こる。
[0091]図2は、本開示で説明する技法を実施し得るビデオ符号化器20の一例を示すブロック図である。ビデオ符号化器20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、空間的予測を利用して、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去する。インターコーディングは、時間的予測を利用して、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのいずれかを指す場合がある。一方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指す場合がある。
[0092]図2に示されたように、ビデオ符号化器20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオ符号化器20は、モード選択ユニット40と、参照フレームメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピーコーディングユニット56とを含む。モード選択ユニット40は、今度は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測処理ユニット46と、パーティションユニット48とを含む。ビデオブロックの再構成のために、ビデオ符号化器20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングするための、デブロッキングフィルタも含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。追加のフィルタ(ループ内またはループ後)もデブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡約のために図示されないが、必要な場合、加算器50の出力を(インループフィルタとして)フィルタリングし得る。
[0093]符号化プロセス中に、ビデオ符号化器20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間的予測をもたらすために、1つまたは複数の参照フレームの中の1つまたは複数のブロックに対して受信されたビデオブロックのインター予測のコーディングを実行する。イントラ予測処理ユニット46は、代替的に、空間的予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コーディングを実施し得る。ビデオ符号化器20は、たとえば、ビデオデータの各ブロックのための適切なコーディングモードを選択するために、複数のコーディングパスを実施し得る。
[0094]その上、区分ユニット48は、以前のコーディングパスにおける以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット48は、最初は、レートひずみ分析(たとえば、レートひずみ最適化)に基づいて、フレームまたはスライスをLCUに区分し、LCUの各々をサブCUに区分し得る。モード選択ユニット40は、LCUのサブCUへの区分を示す4分木データ構造をさらに生成し得る。4分木のリーフノードCUは、1つまたは複数のPUと1つまたは複数のTUとを含む場合がある。
[0095]モード選択ユニット40は、たとえば、エラー結果に基づいて、コーディングモードのうちの1つ、イントラまたはインターを選択し、得られたイントラまたはインターコーディングされたブロックを、残差ブロックデータを生成するために加算器50に提供し、参照フレームとして使用するための符号化されたブロックを再構築するために加算器62に提供し得る。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報など、シンタックス要素をエントロピーコーディングユニット56に与える。
[0096]動き推定ユニット42および動き補償ユニット44は、高度に統合される場合があるが、概念的な目的のために別々に示している。動き推定ユニット42によって実行される動き推定は、動きベクトルを生成する処理であり、動きベクトルは、ビデオブロックに対する動きを推定する。動きベクトルは、たとえば、現在のフレーム内でコーディングされている現在のブロック(または、他のコーディングされたユニット)に対する、参照フレーム内の予測ブロック(または、他のコーディングされたユニット)に対する、現在のビデオフレーム内またはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、ピクセル差分の観点で、コーディングされるべきブロックと密に適合すると見出されたブロックであり、ピクセル差分は、絶対値差分の合計(SAD)、二乗差分の合計(SSD)、または他の差分の測定規準によって決定され得る。いくつかの例では、ビデオ符号化器20は、参照フレームメモリ64に記憶されている参照ピクチャの、サブ整数ピクセル位置に対する値を計算し得る。たとえば、ビデオ符号化器20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数のピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、完全なピクセル位置および分数のピクセル位置に対して動き探索を実行し、分数のピクセル精度で動きベクトルを出力し得る。
[0097]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス中のビデオブロックのPUに関する動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの各々は、参照フレームメモリ64に記憶されている1つまたは複数の参照ピクチャを特定する。動き推定ユニット42は、計算された動きベクトルをエントロピーコーディングユニット56と動き補償ユニット44とに送る。
[0098]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。同様に、動き推定ユニット42および動き補償ユニット44は、いくつかの例では、機能的に統合され得る。現在のビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいて指し示す予測ブロックの位置を特定し得る。加算器50は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算することによって残差ビデオブロックを形成し、以下で説明するようにピクセル差分の値を形成する。一般に、動き推定ユニット42は、ルーマ構成要素に対して動き推定を実行し、動き補償ユニット44は、クロマ構成要素とルーマ構成要素の両方のために、ルーマ構成要素に基づいて計算された動きベクトルを使用する。モード選択ユニット40は、また、ビデオ復号器30によるビデオスライスのビデオブロックの復号での使用のために、ビデオブロックおよびビデオスライスと関連したシンタックス要素を生成する。
[0099]イントラ予測処理ユニット46は、上に記述したように、動き推定ユニット42および動き補償ユニット44によって実施されたインター予測の代替として、現在のブロックをイントラ予測することができる。特に、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。
[0100]たとえば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化されたブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化されたブロックのひずみおよびレートから比を計算し得る。
[0101]ブロックのイントラ予測モードを選択した後に、イントラ予測処理ユニット46は、エントロピーコーディングユニット56にブロックのための選択されたイントラ予測モードを示す情報を与え得る。エントロピーコーディングユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオ符号化器20は、送信されるビットストリーム中に構成データを含む場合があり、構成データは、コンテキストの各々に関して使用する、複数のイントラ予測モードのインデックステーブルおよび複数の修正されたイントラ予測モードのインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックに関する符号化コンテキストの定義と、最も起こりそうなイントラ予測モードの表示と、イントラ予測モードのインデックステーブルと、修正されたイントラ予測モードのインデックステーブルとを含み得る。
[0102]ビデオ符号化器20は、モード選択ユニット40からの予測データを、コーディングされている元のビデオブロックから減算することによって、残差ビデオブロックを形成する。加算器50は、この減算操作を実行する1つの構成要素または複数の構成要素を表現する。変換処理ユニット52は、離散コサイン変換(DCT)または概念的には類似の変換などの変換を残差ブロックに適用し、残差変換係数の値を備えるビデオブロックを生成する。変換処理ユニット52は、概念的にはDCTに類似の他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプ変換も使用され得る。いかなる場合でも、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、ピクセル値領域からの残差情報を、周波数領域などの変換領域に転換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54へ送り得る。
[0103]量子化ユニット54は、ビットレートをさらに低減させるために変換係数を量子化する。量子化プロセスは、係数の一部またはすべてに関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって、修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列のスキャンを実行することができる。代替的に、エントロピーコーディングユニット56がスキャンを実行し得る。
[0104]量子化の後に、エントロピーコーディングユニット56は量子化変換係数をエントロピーコーディングする。たとえば、エントロピーコーディングユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピーコーディングユニット56によるエントロピーコーディングの後に、符号化されたビットストリームは、別のデバイス(たとえば、ビデオ復号器30)に送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
[0105]逆量子化ユニット58および逆変換処理ユニット60は、それぞれ逆量子化および逆変換を適用して、たとえば、参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構築する。動き補償ユニット44は、残差ブロックを参照フレームメモリ64のフレームのうちの1つの予測ブロックに加算することによって、参照ブロックを計算し得る。動き補償ユニット44は、動き推定において使用するためにサブ整数ピクセル値を計算するのに、1つまたは複数の補間フィルタを再構成された残差ブロックに適用することもできる。加算器62は、参照フレームメモリ64での記憶のための再構築されたビデオブロックを生成するために、再構築された残差ブロックを、動き補償ユニット44によって生成される動き補償された予測ブロックに加算する。再構築されたビデオブロックは、動き推定ユニット42および動き補償ユニット44によって、後続のビデオフレームのブロックをインターコーディングするための参照ブロックとして使用され得る。
[0106]図2のビデオ符号化器20は、本明細書で説明する技法のうちの1つまたは複数を実装するように構成されたビデオ符号化器の一例を表す。いくつかの例では、ビデオ符号化器20は、ビットストリームに関連するビデオパラメータセット(VPS)における動作点をシグナリングする。動作点は、時間的におよび/または複数のレイヤもしくはビューに関してスケーラブルな元のビットストリームから抽出され得るサブビットストリームを指す。HEVCでは、動作点は、OPLayerIdSetとして示されるnuh_layer_id値と、OpTidとして示されるtemporalID値とのセットによって識別され得る。一例として、元のビットストリームは、異なる空間解像度の3つのレイヤまたはビューと、異なるフレームレートの2つの時間的スケーラブルレイヤとを含み得る。この例では、元のビットストリームは、いずれかのフレームレートで利用可能な3つの空間解像度の各々を有する6つの動作点を含む。
[0107]いくつかの例では、ビデオ符号化器20はビットストリームを生成する。ビデオ符号化器20によって生成されるビットストリームは、ビットストリームからサブビットストリームとして抽出され得る複数の出力動作点を含み得る。出力動作点は、たとえば、多重レイヤおよび/またはビュー、ならびに複数のフレームレートを含み得る。ビデオ符号化器20は、VPSにおける出力動作点を示す情報を符号化し得る。いくつかの例では、ビデオ符号化器20がビットストリームに関連するVPSにおいてシグナリングする動作点の各々では、動作点シンタックス構造は、所与の動作点のサブビットストリームに属する、ビットストリーム内のネットワークアブストラクションレイヤ(NAL)ユニットを識別するために使用されるレイヤ識別子(ID)のセットを指定する。このように、所与の動作点のサブビットストリームを構成するNALユニットは、NALユニットのレイヤ識別子に基づいて元のビットストリームから抽出され得る。
[0108]いくつかの場合には、以下でより詳細に説明するように、ビデオ符号化器20は、動作点のうちの1つまたは複数に関連する仮想参照復号器(HRD)パラメータをさらに符号化することができる。この場合、ビデオ符号化器20は、VPSにおけるHRDパラメータ情報をシグナリングする。以下でより詳細に説明するように、HRDパラメータを有する1つまたは複数の動作点の各々では、HRDパラメータシンタックス構造は、所与の動作点のサブビットストリームの準拠をチェックするために使用されるHRDを定義するHRDパラメータのセットを指定し得る。
[0109]図3は、本開示の技法による、例示的なマルチビュー復号順序を示す概念図である。マルチビュービデオコーディング(MVC)はH.264/AVCの拡張である。典型的なMVC復号順序(すなわち、ビットストリーム順序)を図3に示す。復号順序の構成は時間優先コーディングと呼ばれる。各アクセスユニットは、1つの出力時間インスタンスのためのすべてのビューのコーディングされたピクチャを含むように定義される。アクセスユニットの復号順序は出力または表示の順序と同じでない場合があることに留意されたい。
[0110]図4は、マルチビュービデオコーディングのためのMVC(MVC)予測構造の一例の図である。MVCは、H.264/AVCの拡張である。図4は、マルチビュービデオコーディングのための(各ビュー内のピクチャ間予測とビュー間予測の両方を含む)典型的なMVC予測構造を示す。MVC予測構造は、各ビュー内のピクチャ間予測とビュー間予測の両方を含む。図4では、予測は矢印によって示され、ここで矢印の終点のオブジェクトは、予測の基準のために矢印の始点のオブジェクトを使用する。図4のMVC予測構造は、時間優先の復号順序構成とともに使用され得る。時間優先の復号順序では、各アクセスユニットは、1つの出力時間インスタンスに対するすべてのビューのコーディングされたピクチャを含むように定義され得る。アクセスユニットの復号順序は、必ずしも出力または表示の順序と同一とは限らない。
[0111]MVCでは、ビュー間予測は視差動き補償によってサポートされ、視差動き補償は、H.264/AVC動き補償のシンタックスを使用するが、異なるビュー中のピクチャが参照ピクチャとして置かれることを可能にする。2つのビューのコーディングも、MVCによってサポートされ得る。MVC符号化器は、3Dビデオ入力として3つ以上のビューをとらえることができ、MVC復号器は、マルチビューの表現を復号することができる。MVC復号器を有するレンダラは、複数のビューを伴う3Dビデオコンテンツを復号することができる。
[0112]同じアクセスユニット中の(すなわち、同じ時間インスタンスを伴う)ピクチャは、MVCにおいてビュー間予測され得る。ベースのないビューの1つの中のピクチャをコーディングするとき、ピクチャが異なるビュー中にあるが同じ時間インスタンスを伴う場合、そのピクチャは参照ピクチャリストに追加され得る。ビュー間予測の参照ピクチャは、任意のインター予測の参照ピクチャとまったく同様に、参照ピクチャリストの任意の位置に置かれ得る。
[0113]図4に示すように、ビュー成分は、参照用に他のビュー中のビュー成分を使用することができる。MVCでは、別のビュー中のビュー成分がインター予測の参照であるかのように、ビュー間予測が実現され得る。可能性のあるビュー間の参照は、シーケンスパラメータセット(SPS)のMVC拡張においてシグナリングされ得る。可能性のあるビュー間の参照は、参照ピクチャリスト構築処理によって修正されてよく、これによって、インター予測またはビュー間予測の参照の順序を柔軟にできる。以下の表1に例示的なSPS MVC拡張を示す。
[0114]SPS MVC拡張では、ビューごとに、参照ピクチャリスト0と参照ピクチャリスト1とを形成するために使用され得るビューの数がシグナリングされる。SPSのMVC拡張でシグナリングされたアンカーピクチャ用の予測関係は、同じビューの(SPSのMVC拡張でシグナリングされた)非アンカーピクチャ用の予測関係とは異なる場合がある。
[0115]MVCにおけるターゲット出力ビューの選択では、ターゲット出力ビューが外部手段によって知られていると仮定される。外部手段によって知られているこれらのターゲット出力ビューは、たとえば、セッション交渉の結果として導出され、あるインターフェースによってクライアントからMVC復号器にトランジットされ得る。
[0116]対照的に、HEVCは、MV−HEVC WD4およびSHVC WD2のためのビデオパラメータセット(VPS)拡張を有する。MV−HEVC WD4およびSHVC WD2のVPS拡張において、(復号されるべきレイヤのうちの)所与のレイヤセットについて、どのレイヤがターゲット出力レイヤ(output_layer_flag[lsIdx][j])であるかを識別することによって、複数の出力レイヤセットがシグナリングされ得る方法で、いくつかの出力レイヤセットがシグナリングされる。MV−HEVC WD4およびSHVC WD2のビデオパラメータセット(VPS)拡張による詳細なシンタックス設計は、表2として以下に示されるVPS拡張シンタックステーブルに示される。インデックス0〜vps_number_layer_sets_minus1を有する出力レイヤセットについて、対応するレイヤセットは、それぞれ、0〜vps_number_layer_sets_minus1にインデックス付けされたものである。MV−HEVC WD4およびSHVC WD2のビデオパラメータセット(VPS)拡張において、これらの出力レイヤセットのターゲット出力レイヤは、default_one_target_output_layer_flagの値に基づいて推定される。MV−HEVC WD4およびSHVC WD2のビデオパラメータセット(VPS)拡張に従って、default_one_target_output_layer_flagが0に等しい場合、これらの出力レイヤセットにおけるすべてのレイヤは、ターゲット出力レイヤであり、default_one_target_output_layer_flagが1に等しい場合、それらの出力レイヤセットにおいて最上位レイヤidを有するレイヤのみがターゲット出力レイヤである。
[0117]ターゲット出力レイヤのためのレイヤ識別子リストは、VPS拡張においてシグナリングされる出力レイヤのインデックス(outPutLayerIdx)によって識別される。
[0118]レイヤ識別子リストは、レイヤセットまたは動作点に関連するnuh_layer_id値のリストであり、サブビットストリーム抽出プロセスへの入力として使用され得る。
[0119]レイヤセットは、入力としての別のビットストリーム、6に等しいターゲット最上位temporalID、およびレイヤセットに関連したレイヤ識別子リストに等しいターゲットレイヤ識別子リストを用いたサブビットストリーム抽出プロセスの動作によって別のビットストリームから作り出されたビットストリーム内に表されるレイヤのセットである。レイヤセットは、復号されるべきレイヤのセットである。
[0120]出力レイヤセットは、出力レイヤのセットに関連するレイヤセットであり、対応するレイヤセットを識別するレイヤセットでもある。レイヤセットは、復号されるべきレイヤのセットを識別し、出力レイヤセットは、出力されるべきレイヤのセットを識別する(ならびに対応するレイヤセットを識別する)。
[0121]出力動作点は、入力としての別のビットストリーム、ターゲット最上位temporalID、およびターゲットレイヤ識別子リストを用いたサブビットストリーム抽出プロセスの動作によって別のビットストリームから作り出され、ターゲット出力レイヤのセットに関連するビットストリームである。このように、各出力動作点は、ターゲット出力レイヤのセットに関連している。
[0122]動作点は、入力としての別のビットストリーム、ターゲット最上位temporalID、およびターゲットレイヤ識別子リストを用いたサブビットストリーム抽出プロセスの動作によって別のビットストリームから作り出され、レイヤセットに関連するビットストリームである。このように、各動作点は、レイヤセットに関連している。出力動作点は出力レイヤセットに関連しており、動作点はレイヤセットに関連している。
[0123]所与のビットストリームについて、出力レイヤセットの多くの置換が可能であり得る。たとえば、サブビットストリームが図4の8つのビューを含むビットストリームから抽出されると仮定する。サブビットストリームは、0、1および2のnuh_layer_id値を有する3つのレイヤ(ビュー)を有し得る。一例では、レイヤのいずれかを単独で出力する、またはレイヤ0とレイヤ1の両方を出力する、またはレイヤ0とレイヤ2とを出力する、またはレイヤ1とレイヤ2の両方を出力する、またはレイヤ0、1および2の3つすべてを出力することが可能であり得る。この場合、レイヤ0を唯一の出力レイヤとして識別するもの、レイヤ1を唯一の出力レイヤとして識別するもの、レイヤ2を唯一の出力レイヤとして識別するもの、レイヤ0とレイヤ1とを出力レイヤとして識別するもの、レイヤ0とレイヤ2とを出力レイヤとして識別するもの、レイヤ1とレイヤ2とを出力レイヤとして識別するもの、レイヤ0とレイヤ1とレイヤ2とを出力レイヤとして識別するものの、最高7つの出力レイヤセットがあり得る。一例では、レイヤ0は、レイヤ1またはレイヤ2のいずれかを復号するために、復号されなければならないビュー間参照レイヤであり得る。一例では、出力レイヤセットがレイヤ2を唯一の出力レイヤとして識別する場合、レイヤ0は、ビュー間参照のために依然として復号されなければならない。この具体的な例では、出力レイヤセットは、レイヤ2を出力レイヤとして識別し、レイヤセットは、レイヤ0とレイヤ2とを識別する。また、出力レイヤセットは、対応するレイヤセットを識別する。レイヤ1はレイヤ0または2のいずれかの参照ビューとして使用されないので、レイヤ2が出力レイヤセットに含まれる場合、レイヤ0とレイヤ2とのみを含む動作点が定義され得ることに留意されたい。
[0124]上記の例では、7つの出力レイヤセットがあったが、他の例では、たとえば、どのレイヤか、およびどれだけのレイヤが同時に出力され得るかに応じて、7つ未満の出力セットがあり得る。
[0125]例示的なビデオパラメータセット(VPS)ローバイトシーケンスペイロード(RBSP)セマンティクスは次の通りである。1に等しいフラグlayer_id_included_flag[i][j]は、jに等しいnuh_layer_idの値がレイヤ識別子リストlayerSetLayerIdList[i]に含まれることを指定する。0に等しいフラグlayer_id_included_flag[i][j]は、jに等しいnuh_layer_idの値がレイヤ識別子リストlayerSetLayerIdList[i]に含まれないことを指定する。
[0126]numLayersInIdList[0]の値は1に等しくなるように設定され、layerSetLayerIdList[0][0]の値は0に等しくなるように設定される。
[0127]両端値を含む1〜vps_num_layer_sets_minus1の範囲内のiの値ごとに、変数numLayersInIdList[i]およびレイヤ識別子リストlayerSetLayerIdList[i]が次のように導出される。
[0128]両端値を含む1〜vps_num_layer_sets_minus1の範囲内のiの値ごとに、numLayersInIdList[i]は、両端値を含む1〜vps_max_layers_minus1+1の範囲内にあるものとする。
[0129]iAがiBに等しくない状態で、両端値を含む0〜vps_num_layer_sets_minus1の範囲内の任意のiAおよびiBについて、numLayersInIdList[iA]がnumLayersInIdList[iB]に等しいとき、layerSetLayerIdList[iA][n]の値は、両端値を含む0〜numLayersInIdList[iA]の範囲内のnの少なくとも1つの値について、layerSetLayerIdList[iB][n]に等しくないものとする。
[0130]レイヤセットは、関連のレイヤ識別子リストによって識別される。両端値を含む0〜vps_num_layer_sets_minus1の範囲内のiについて、VPSによって指定された第iのレイヤセットは、レイヤ識別子リストlayerSetLayerIdList[i]に関連する。
[0131]上記のアルゴリズムは、nuh_layer_idの可能な値ごとに、レイヤがレイヤセットに含まれるかどうかを決定することによって、レイヤセットに含まれるレイヤを識別する。
[0132]レイヤセットは、同じレイヤ識別子リストに関連するすべての動作点から成る。
[0133]図5は、本開示で説明する技法を実装し得るビデオ復号器30の一例を示すブロック図である。図5の例では、ビデオ復号器30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測処理ユニット74と、逆量子化ユニット76と、逆変換処理ユニット78と、参照フレームメモリ82と、加算器80とを含む。ビデオ復号器30は、いくつかの例では、図2に示すように、ビデオ符号化器20に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
[0134]復号プロセス中に、ビデオ復号器30は、符号化されたビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化されたビデオビットストリームを、ビデオ符号化器20から受信する。ビデオ復号器30は、ネットワークエンティティ29から符号化されたビデオビットストリームを受信することができる。ネットワークエンティティ29は、たとえば、サーバ、メディアアウェアネットワーク要素(MANE)、ビデオエディタ/スプライサ、または上で説明された技法の1つもしくは複数を実施するように構成された他のそのようなデバイスであ得る。ネットワークエンティティ29は、本開示の技法を実行するように構成された外部手段を含み得る。上述のように、本開示で説明する技法のいくつかは、ネットワークエンティティ29が符号化されたビデオビットストリームをビデオ復号器30に送信する前にネットワークエンティティ29によって実装され得る。いくつかのビデオ復号システムでは、ネットワークエンティティ29およびビデオ復号器30は別個のデバイスの一部であり得るが、他の事例では、ネットワークエンティティ29に関して説明する機能は、ビデオ復号器30を備える同じデバイスによって実行され得る。
[0135]ビデオ復号器30のエントロピー復号ユニット70は、量子化係数、動きベクトルまたはイントラ予測モードインジケータ、および他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルと他の予測シンタックス要素とを動き補償ユニット72に転送する。ビデオ復号器30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
[0136]ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、イントラ予測処理ユニット74は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコーディングされた(すなわち、B、P、またはGPB)スライスとしてコーディングされているとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロック用の予測ブロックを生成する。予測ブロックは、参照ピクチャリストの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオ復号器30は、参照フレームメモリ82に記憶された参照ピクチャに基づいて、デフォルト構成技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構成し得る。
[0137]動き補償ユニット72は、動きベクトルと他のシンタックス要素とを構文解析することによって現在のビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)と、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数についての構成情報と、スライスの各インター符号化されたビデオブロックのための動きベクトルと、スライスの各インターコーディングされたビデオブロックについてのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
[0138]動き補償ユニット72はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット72は、参照ブロックの整数未満のピクセル用の補間された値を計算するために、ビデオブロックの符号化中にビデオ符号化器20によって使用された補間フィルタを使用することができる。このケースでは、動き補償ユニット72は、受信したシンタックス要素からビデオ符号化器20で使用された補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成し得る。
[0139]逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された、量子化された変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオ符号化器30によって計算される量子化パラメータQPYの使用を含み得る。逆変換処理ユニット78は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
[0140]動き補償ユニット72が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後に、ビデオ復号器30は、逆変換処理ユニット78からの残差ブロックを動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数の構成要素を表す。必要な場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタリングするためにデブロッキングフィルタが適用される場合もある。他のループフィルタ(コーディングループの中、またはコーディングループの後のいずれかにおける)も、ピクセルの遷移を平滑化し、または場合によってはビデオ品質を改善するために使用され得る。所与のフレームまたはピクチャの復号されたビデオブロックは、次いで、参照フレームメモリ82に記憶され、この参照フレームメモリ82は後続の動き補償のために使用される参照ピクチャを記憶する。参照フレームメモリ82は、図1のディスプレイデバイス32などのディスプレイデバイス上で後に提示するために、復号されたビデオも記憶する。
[0141]ビデオ復号器30が使用し得る一般の復号プロセスが以下でさらに詳細に提供される。ビデオ復号器30によって実行され得る1つの例示的なプロセスは、図9に図示されており、以下でさらに詳細に説明する。
[0142]図6は、ネットワーク100の一部を形成するデバイスの例示的なセットを示すブロック図である。この例では、ネットワーク100は、ルーティングデバイス104A、104B(ルーティングデバイス104)とトランスコーディングデバイス106とを含む。ルーティングデバイス104およびトランスコーディングデバイス106は、ネットワーク100の一部を形成し得る少数のデバイスを表すものである。スイッチ、ハブ、ゲートウェイ、ファイアウォール、ブリッジ、および他のそのようなデバイスなどの他のネットワークデバイスも、ネットワーク100内に含まれ得る。その上、サーバデバイス102とクライアントデバイス108との間にネットワーク経路に沿って追加のネットワークデバイスが提供され得る。いくつかの例では、サーバデバイス102はソースデバイス12(図1)に対応し得る一方、クライアントデバイス108は宛先デバイス14(図1)に対応し得る。
[0143]概して、ルーティングデバイス104は、ネットワーク100を介してネットワークデータを交換するための1つまたは複数のルーティングプロトコルを実装する。いくつかの例では、ルーティングデバイス104は、プロキシまたはキャッシュ動作を実行するように構成され得る。したがって、いくつかの例では、ルーティングデバイス104はプロキシデバイスと呼ばれ得る。一般に、ルーティングデバイス104は、ネットワーク100を通るルートを発見するためにルーティングプロトコルを実行する。そのようなルーティングプロトコルを実行することによって、ルーティングデバイス104Bは、それ自体からルーティングデバイス104Aを介してサーバデバイス102へ至るネットワークルートを発見することができる。
[0144]図7は、メディアアプリケーション(124)をさらに含む宛先デバイス/クライアントデバイス14の一例を示すブロック図である。
[0145]宛先デバイス14はまた、制御ユニット120とユーザインターフェース130とを含む。制御ユニット120は、たとえば、1つまたは複数の汎用マイクロプロセッサ、処理コア、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積もしくはディスクリート論理回路など、単独でまたは任意の組合せで、1つまたは複数のハードウェアベースの処理ユニットを表し得る。同様に、(たとえばミドルウェアユニット122およびメディアアプリケーション124など)制御ユニット120内のユニットまたはモジュールを含む、制御ユニット120に起因する機能は、ハードウェア、ソフトウェア、および/またはファームウェアの任意の組合せで、または単独で実装され得る。ソフトウェアまたはファームウェアで実装されるとき、制御ユニット120は、たとえば、命令を記憶するための1つまたは複数のコンピュータ可読媒体、および命令を実行するための1つまたは複数のハードウェアベースのプロセッサなど、必須のハードウェアを含むと推測される。
[0146]ユーザインターフェース130は、たとえばディスプレイ、タッチスクリーン、スピーカー、マイクロフォン、マウスまたはタッチパッドなどのポインティングデバイス、キーボードなど、1つまたは複数のユーザインターフェースを含み得る。ビデオ復号器30のための1つの特定の構成が図7に示されているが、宛先デバイス14は、たとえば制御ユニット120内、制御ユニット120とは別に、および制御ユニット120とユーザインターフェース130との間など、図7に示されるものとは異なる1つまたは複数の位置にビデオ復号器30を含み得る。あるいは、ビデオ復号器30は、ミドルウェアユニット122とメディアアプリケーション124との間に設けられ得る。
[0147]いくつかの例では、制御ユニット120は、ミドルウェアユニット122と、メディアアプリケーション124とを含む。メディアアプリケーション124は、たとえばビデオおよび/または音声データなど、メディアデータを再生するためのアプリケーションに対応し得る。メディアデータを再生するとき、メディアアプリケーション124は、出力のためにユーザインターフェース130に復号されたメディアデータを送ることができる。さらに、メディアアプリケーション124は、メディアデータをミドルウェアユニット122から取り出すことができる。たとえば、メディアアプリケーション124は、たとえば、DASHの技法を使用してミドルウェアユニット122からメディアデータを取り出すために、DASHを実行するように構成され得る。ミドルウェアユニット122は、一般に、ネットワーク104、106を介してサーバデバイス102からメディアデータを取得するための機能がメディアアプリケーション124から抽出され得るように、メディアアプリケーション124とネットワークインターフェース112との間の中間ユニットとして働き得る。すなわち、メディアアプリケーション124は、たとえばネットワークインターフェース112など、ネットワーク104、106に関係するモジュールまたはユニットと対話する必要がない。代わりに、メディアアプリケーション124は、ミドルウェアユニット122と対話し得、ミドルウェアユニット122は、メディアアプリケーション124の代わりにネットワークインターフェース112を介したネットワーク対話を制御する役割を果たし得る。
[0148]いくつかの例では、メディアアプリケーション124は、上記および以下により詳細に説明するように、サブビットストリーム抽出が実行され得る。
[0149]メディアアプリケーション124は、上記および以下により詳細に説明するように、ビデオデータが送られる前に行われるセッション交渉の間、たとえば図1のソースデバイス10など、サーバデバイスと通信し得る。
[0150]図8は、ビデオデータを処理するための例示的なプロセス(890)を示すフローチャートである。開始ブロックの後、プロセスはブロック891に進み、ここにおいて、出力のターゲットにされるレイヤのセットが決定される。次いで、プロセスはブロック892に移動し、ここにおいて、ターゲット出力レイヤセットが出力のターゲットにされる決定されたレイヤのセットを表すように、出力レイヤセットのリストにおけるターゲット出力レイヤセットのインデックスが決定される。次いで、プロセスはブロック893に進み、ここにおいて、インデックスがビデオ復号器に送られる。次いで、プロセスは戻りブロックに進み、ここにおいて、他の処理が再開される。
[0151]プロセス890は、たとえば図1のソースデバイス12など、たとえば、サーバデバイスおよび/またはソースデバイスにより実行され得る。プロセス890は、サーバ/ソースデバイスと、たとえば図7のメディアアプリケーション124などのメディアアプリケーションとの間の通信の一部であり得る、サーバ/ソースデバイスから見た例示的なプロセスを示す。
[0152]いくつかの例では、セッションが開始する前、および任意のビデオデータが送られる前に、たとえば、ソースデバイス(たとえば、図1のソースデバイス12)と宛先デバイス(たとえば、図1の宛先デバイス14または図7の宛先デバイス14)との間でセッション交渉が行われ得る。いくつかの例では、セッション交渉は、ソースデバイスとクライアントデバイスのメディアアプリケーション(たとえば、図7のメディアアプリケーション124)との間で実行され得る。交渉セッションは、たとえば、宛先デバイスがソースデバイスに対する問合せを行うことによって開始し得る。問合せに応答して、ソースデバイスは、たとえば、特定のビデオデータのために提供され得る可能な出力動作点に関係するオプションなど、情報を復号器に送り得る。これは、どのレイヤがサポートされ得るか、ビットストリームがどれだけのレイヤを有するか、どのフレームレートがサポートされているかなどに関する情報などの情報を含み得る。
[0153]それに応答して、宛先デバイスは、たとえば、宛先デバイスのニーズおよび要件に基づいて、出力動作点を選択することができる。たとえば、選択は、復号器によってどの動作点が復号され得るかに基づき、復号され得る動作点のうちのどれが好ましくは出力されるべきかについて制御可能な設定に基づき得る。宛先デバイスは、たとえば、クライアントデバイスの能力を復号し、レンダリングすることを決定する。復号の能力は、どのコーデックが利用可能であるか、ならびに、復号器によってサポートされるコーデックのプロファイルとレベルとを含み得る。レンダリングの能力は、どれだけのビューがディスプレイ、フレームレート、スクリーンサイズ(解像度の)などによって出力され得るかを含み得る。これを決定した後、クライアントは、どの出力動作点がこれらの要件を満たすかを決定する。いくつかの例では、宛先デバイスは、様々な表現のための利用可能な帯域幅およびビットレートを決定し、利用可能な帯域幅を超えない最高のビットレートを有する表現を選択することもできる。たとえば、これらの要因のうちの1つまたは複数に基づいて、宛先デバイスは、出力動作点を選択する。
[0154]いくつかの例では、出力動作点を選択した後、宛先デバイスは、ソースデバイスに選択された出力動作点を伝えることができる。いくつかの例では、ソースデバイス12は、宛先デバイスから出力動作点の選択を受信し、ソースデバイスは、選択された出力動作点、および選択された出力動作点に対応する最上位temporalIDに基づいて、宛先デバイスのビデオ復号器に、出力レイヤセットのリスト、出力レイヤセットのリストにおけるターゲット出力レイヤセットのインデックスを送ることができる。
[0155]代替的に、いくつかの例では、宛先デバイスがソースデバイスに選択された出力動作デバイスを伝える代わりに、およびソースデバイスが、選択に基づいて、ビデオコーダに、出力レイヤセットのリストにおけるターゲット出力レイヤセットのインデックスを含む情報を送る代わりに、選択された動作点に対応するファイルのURL(および、それらのファイル内のバイト範囲)を示すファイル形式レベル(たとえば、DASHのMPD)の情報があり得る。たとえば、クライアントデバイスが出力のためにレイヤ0およびレイヤ2を選択する場合、MPDは、どのファイルがそれらのレイヤのデータに対応するかを識別することができる。利用可能な時間レイヤのサブセットのみが要求される場合、MPDは、それらの時間レイヤに対応するファイルのバイト範囲も記述し得る。
[0156]様々な例で、出力レイヤセットのリストのターゲット出力レイヤセットのインデックスが導出され、異なる方法で復号器に送られ得る。
[0157]いくつかの例では、サーバは、メディアアプリケーションにメディアプレゼンテーションの記述を送り、ここにおいて、記述は、出力レイヤセットおよび/または出力動作点に関する情報を含み、メディアアプリケーションは、記述を構文解析し、次いで、出力動作点および/または出力レイヤセットのうちの1つを選択する。次いで、メディアアプリケーションは、サーバに出力動作点および/または出力レイヤセットの選択を伝える。次いで、サーバは、選択された出力動作点および/または出力レイヤセットを、出力レイヤセットのリストのターゲット出力レイヤセットのインデックスに変換し、次いで、サーバは、インデックスをビデオ復号器に配信する。
[0158]上記の例は、メディアアプリケーションが出力動作点および/または出力レイヤセットのうちの1つを選択することについて述べたが、いくつかの例では、この選択は、宛先デバイス14内の他の構成要素との何らかの他の能力/メッセージ交換によって決定され得る。
[0159]他の例では、サーバは、メディアアプリケーションにメディアプレゼンテーションの記述を送り、ここにおいて、記述は、情報および出力レイヤセットおよび/または出力動作点を含み、メディアアプリケーションは、記述を構文解析し、出力動作点および/または出力レイヤセットのうちの1つを選択する。次いで、メディアアプリケーションは、選択された出力動作点および/または出力レイヤセットを、出力レイヤセットのリストのターゲット出力レイヤセットのインデックスに変換する。次いで、メディアアプリケーションは、ビデオ復号器にインデックスを送る。
[0160]上記で説明したように、いくつかの例では、インデックスは、宛先デバイスからの特定の要求に基づいてサーバデバイス/ソースデバイスによって決定され、他の例では、インデックスは、サーバデバイス/ソースデバイスから宛先デバイスによって受信されるマニフェストファイルに基づいて、クライアントアプリケーションおよび/または宛先デバイスの1つまたは複数の他の構成要素によって決定される。
[0161]出力レイヤセットのリストは、リストである。リストは、同時に出力され得るレイヤのグループの有効な置換ごとの別個の要素を有する、同時に出力され得るレイヤのグループのすべての有効な置換の指示を要素として含む。いくつかの例では、レイヤセットは、nuh_layer_id値によって識別され、ここにおいて、nuh_layer_id値は、各レイヤが一意のnuh_layer_id値を有する非負整数である。たとえば、0、1および2のnuh_layer_id値を有する、3つのレイヤを有するビットストリームがあると仮定する。レイヤのいずれかを単独で出力する、またはレイヤ0とレイヤ1の両方を出力する、またはレイヤ1とレイヤ2の両方を出力することができるとさらに仮定する。このケースでは、出力レイヤセットのリストが、レイヤ0を唯一の出力レイヤとして識別するもの、レイヤ1を唯一の出力レイヤとして識別するもの、レイヤ2を唯一の出力レイヤとして識別するもの、レイヤ0とレイヤ1とを出力レイヤとして識別するもの、およびレイヤ0とレイヤ2とを出力レイヤとして識別するものの、5つの要素を含むことになる。しかしながら、リストの各要素は、対応するレイヤセットに関する情報も含む。
[0162]より具体的には、いくつかの例では、出力レイヤリストにおける各要素は、その出力レイヤセットに対応するレイヤセットのインデックスも含む。前に説明したように、出力レイヤセット自体は、出力されるべきレイヤを識別する。レイヤセットは、復号されるべきレイヤを識別する。出力されるあらゆるレイヤは復号されなければならないが、復号されるが、出力されないレイヤがあり得る。出力レイヤセットは、出力されるべきレイヤを識別し、たとえば、対応するレイヤセットのインデックスを含むなど、何らかの方法で対応するレイヤセットも識別する。対応するレイヤセットは、復号されるべきレイヤを識別する。出力されるべきレイヤは、復号されるべきレイヤのサブセットである。たとえば、いくつかの場合には、拡張レイヤはベースレイヤに依存し得るので、ベースレイヤを復号することなく、拡張レイヤを復号することができない場合がある。
[0163]出力レイヤセットのリストが、レイヤ0を唯一の出力レイヤとして識別するもの、レイヤ1を唯一の出力レイヤとして識別するもの、レイヤ2を唯一の出力レイヤとして識別するもの、レイヤ0とレイヤ1とを出力レイヤとして識別するもの、およびレイヤ0とレイヤ2とを出力レイヤとして識別するものの、5つの要素を含む前の例をとる。レイヤ1またはレイヤ2を復号するために、レイヤ0が復号されなければならないと仮定する。この例では、出力レイヤセットは、レイヤ0を唯一の出力レイヤとして識別し、レイヤ0を復号されるべき唯一のレイヤとして識別する対応するレイヤセットのインデックスを含むもの、レイヤ1を唯一の出力レイヤとして識別し、レイヤ0とレイヤ1とを復号されるべきレイヤとして識別する対応するレイヤセットのインデックスを含むもの、レイヤ2を唯一の出力レイヤとして識別し、レイヤ0とレイヤ2とを復号されるべきレイヤとして識別する対応するレイヤセットのインデックスを含むもの、レイヤ0とレイヤ1を出力レイヤとして識別し、レイヤ0とレイヤ1とを復号されるべきレイヤとして識別する対応するレイヤセットのインデックスを含むもの、およびレイヤ0とレイヤ2を出力レイヤとして識別し、レイヤ0とレイヤ2とを復号されるべきレイヤとして識別する対応するレイヤセットのインデックスを含むものの、5つの要素を含む。
[0164]ソースデバイスは、クライアントデバイスにビットストリームを送り、クライアントデバイスのメディアアプリケーションは、ビットストリーム、出力レイヤセットのリスト、および出力レイヤセットのリストのターゲット出力レイヤセットのインデックスに基づいてサブビットストリームをビットストリームから抽出することができる。サブビットストリーム抽出では、どのレイヤが復号されるべきか、どのレイヤが出力されないかが関連するが、説明したように、出力レイヤセットのリストのインデックスおよび出力レイヤセットのリストも、復号されるべきレイヤを導出するために使用される。復号されるべきレイヤは、サブビットストリーム抽出プロセスに関連する。抽出されたサブビットストリーム、出力レイヤセットのリスト、最上位temporalID、および出力レイヤセットのリストのターゲット出力レイヤセットのインデックスは、抽出されたサブビットストリームを復号するために復号器に送られる。
[0165]これらの例では、復号器は、本質的に以下の情報、抽出されたサブビットストリーム、どのレイヤが復号されるべきか、どのフレームレートが復号されるべきか、およびどのレイヤが出力されるべきかを必要とする。いくつかの例では、それに応じてソースデバイスが復号器にビットストリーム、出力レイヤセットのリスト、最上位TemporalID(どのフレームレートが復号されるべきかを示す)、および出力レイヤセットのインデックス(出力レイヤセットのリストと連携して、どの出力レイヤが出力されるべきかを示し、リストがそのインデックスも含む出力レイヤセットに対応するレイヤセットを介して、どのレイヤが復号されるべきかを示す)を送る。いくつかの例では、出力レイヤのリストは、ビットストリーム自体のVPSに含まれ、一方、出力レイヤセットのインデックスおよび最上位temporalIDは、上記のように、たとえばトランスポートレイヤを介するなど、何らかの他の方法で復号器に送られる。
[0166]いくつかの例では、ソースデバイスは、ビットストリームのVPSにおいて、および/またはトランスポートレイヤもしくは何らかの他の手段を介して、選択された出力動作点のための1つまたは複数のシンタックス要素を送る。1つまたは複数のシンタックス要素は、ターゲット出力ビューの1つまたは複数の識別子、従属するビューの1つまたは複数の識別子、および最も低い適用可能な最上位temporalIDを含み得る。
[0167]図9は、ビデオデータを復号する例示的なプロセス(995)を示すフローチャートである。いくつかの例では、図9のプロセスは、たとえば図5のビデオ復号器30によって実行され得る。開始ブロックの後、プロセスは、ブロック996に進み、ここにおいて、出力レイヤセットのリストにおける少なくとも1つのターゲット出力レイヤセットのインデックスが受信される。次いで、プロセスは、ブロック997に移動し、ここにおいて、少なくとも1つのターゲット出力レイヤセットにおけるターゲット出力レイヤが、インデックスに基づいて決定される。次いで、プロセスは、ブロック998に進み、ここにおいて、少なくともターゲット出力レイヤが復号される。次いで、プロセスは、ブロック999に進み、ここにおいて、出力のターゲットにされないレイヤを出力することなく、復号されたターゲット出力レイヤが出力される。次いで、プロセスは戻りブロックに移動し、ここにおいて、他の処理が再開される。
[0168]上記で説明したように、いくつかの例では、ビデオ復号器は、ソースデバイスおよび/またはメディアアプリケーションから、抽出されたサブビットストリーム、出力レイヤセットのリスト、最上位TemporalID(どのフレームレートが復号されるべきかを示す)、および出力レイヤセットのインデックス(出力レイヤセットのリストと連携して、どの出力レイヤが出力されるべきかを示し、リストがそのインデックスも含む出力レイヤセットに対応するレイヤセットを介して、どのレイヤが復号されるべきかを示す)を受信する。
[0169]出力レイヤセットのリストのターゲット出力セットのインデックスは、ビットストリーム抽出プロセスのための1つまたは複数のレイヤ識別子リストを生成するために使用され得る。出力レイヤセットのリストのターゲット出力レイヤセットのインデックスは、ターゲット出力レイヤセットのための対応するレイヤセットを識別するためにも使用され得、ここにおいて、対応するレイヤセットは、復号されるべきレイヤのセットを識別する。ターゲット出力レイヤセット自体は、復号されたレイヤのうちどれが出力されるべきかを識別するために使用され得る。最上位temporalIDは、復号すべきフレームレートを決定するために使用され得る。復号されるが、出力のターゲットにされるレイヤのセットに含まれない任意のレイヤは、出力されるのではなく、代わりに破棄される。出力されるべきレイヤのセットにおけるレイヤは、出力のターゲットにされないレイヤを出力することなく出力される。
[0170]いくつかの例では、各出力動作点は、OptLayerIdListとして示される、nuh_layer_id値の昇順の、出力されるべきすべてのピクチャのnuh_layer_id値のリストと、出力動作点に含まれるすべてのNALユニットの最上位temporalIDに等しい変数OpTidとによって識別される。いくつかの例では、OpLayerIdListとして示される、リストOptLayerIdListに関連したレイヤ識別子リストは、nuh_layer_id値の昇順の、出力動作点に含まれるすべてのNALユニットのnuh_layer_id値のリストから成る。いくつかの例では、OpLayerIdListおよびOpTidによって識別される出力動作点に関連したビットストリームサブセットは、入力としてのビットストリーム、OpTidに等しいターゲット最上位temporalID、およびOpLayerIdListに等しいターゲットレイヤ識別子リストを用いたサブビットストリーム抽出プロセスの出力である。出力動作点を識別するOpLayerIdListおよびOpTidは、それぞれ、出力動作点に関連するOpLayerIdListおよびOpTidとも呼ばれ得る。
[0171]メディアアプリケーション124およびビデオ復号器30がいくつかの例に従って使用し得る一般の復号プロセスは、次のように提供される。このプロセスへの入力は、ビットストリームである。このプロセスの出力は、復号されたピクチャのリストである。
[0172]いくつかの例では、変数OutputLayerSetIdxは、メディアアプリケーション124によって導出され得る。他の例では、変数OutputLayerSetIdxは、ビデオ復号器30によって導出され得る。VPSによって指定された出力レイヤセットのリストのインデックスを指定する変数OutputLayerSetIdxは、次のように指定される。
− 本明細書において指定されていない何らかの外部手段が、OutputLayerSetIdxを設定するために利用可能である場合、OutputLayerSetIdxは、外部手段によって設定される。
− それ以外の場合、復号プロセスが、C.1項に指定されたように、ビットストリームコンフォーマンステストで呼び出される場合、OutputLayerSetIdxは、C.1項に指定されたように設定される。
− それ以外の場合、OutputLayerSetIdxは0に等しくなるように設定される。
[0173]「C.1項」は、HEVC WD10のC.1項を指し、「C.1項」の内容も後述する。いくつかの例では、復号器は、復号プロセスを実行するだけでなく、ビットストリームが準拠しているかどうかもテストする。C.1項は、ビットストリームが準拠しているかどうかをテストする方法について述べる。C.1項のコンフォーマンステストは、可能な出力レイヤセットのすべてが制約のすべてを満たすかどうかを決定することを含む。C.1項および以下でより詳細に説明するように、C.1項によるコンフォーマンステストのために、各出力レイヤセットは、ビットストリームが復号可能であるかどうかを決定するために、連続的にテストされる。
[0174]いくつかの例では、出力されるべきピクチャの、nuh_layer_id値の昇順の、nuh_layer_id値のリストを指定するレイヤ識別子リストTargetOptLayerIdList、および復号されるべきNALユニットの、nuh_layer_id値の昇順の、nuh_layer_id値のリストを指定するレイヤ識別子リストTargetDecLayerIdListは、次のように指定される。
[0175]いくつかの例では、このアルゴリズムは、出力されるべきnuh_layer_id値を含むレイヤ識別子リスト(このリストはTargetOptLayerIdListという名前である)と、可能なnuh_layer_id値の各々を連続的に通過することによって、復号されるべきnuh_layer_id値を含むレイヤ識別子リスト(このリストはTargetDecLayerIdListという名前である)とを使用することによって、復号されるべきレイヤと、出力されるべきレイヤとを決定するために使用される。このようにして、このアルゴリズムは、出力レイヤセットのリストのターゲット出力レイヤセットへのインデックスを、ビットストリームが使用できる何かに変換する。このアルゴリズムは、いくつかの例では、メディアアプリケーション124によって、他の例では、ビデオ復号器30によって実行され得る。
[0176]いくつかの例では、復号されるべき最も高い時間的サブレイヤを識別する変数HighestTidは、次のように指定される。
− 本明細書において指定されていない何らかの外部手段が、HighestTidを設定するために利用可能である場合、HighestTidは、外部手段によって設定される。
− それ以外の場合、復号プロセスが、C.1項に指定されたように、ビットストリームコンフォーマンステストで呼び出される場合、HighestTidは、C.1項に指定されたように設定される。
− それ以外の場合、HighestTidは、sps_max_sub_layers_minus1に等しくなるように設定される。
[0177]いくつかの例では、サブビットストリーム抽出プロセスは、ビットストリーム、HighestTid、およびTargetDecLayerIdListが入力として適用され、出力は、BitstreamToDecodeと呼ばれるビットストリームに割り当てられる。いくつかの例では、サブビットストリーム抽出プロセスは、ビットストリーム、HighestTidおよびTargetDecLayerIdListを入力として受信し、次いで、復号するためにビデオ復号器30に送られるサブビットストリームBitstreamToDecodeを出力する、図7のメディアアプリケーション124によって実行される。他の例では、ビデオ復号器30自体は、サブビットストリーム抽出を実行する。他の例では、ソースデバイス10は、サブビットストリーム抽出を実行し、宛先デバイス14に抽出されたサブビットストリームを送る。他の例では、何らかの他の構成要素、たとえばアップストリームメディアアウェアネットワーク要素(MANE)は、サブビットストリーム抽出を実行することができる。
[0178]図5のビデオ復号器30は、以下でより詳細に説明するように、復号されたピクチャを出力するために入力された抽出されたサブビットストリームBitstreamToDecodeを復号して、ビデオ復号を実行する。
[0179]いくつかの例では、復号プロセスは、すべての復号器が数値的に同一のクロッピングされた復号されたピクチャを生成するように指定される。これらの例では、(指定されるように、正しい出力順序または出力タイミングを有する)本明細書で説明するプロセスによって生成されるものに対する同一のクロッピングされた復号されたピクチャを生成する任意の復号プロセスは、本開示の復号プロセス要件に準拠する。
[0180]いくつかの例では、フラグPicOutputFlagは、BitStreamToDecodeにおける現在のピクチャ(CurrPic)が出力されるかどうかを示す。例示的なPicOutputFlagは次のように使用され得る。現在のピクチャが出力される場合、PicOutputFlagは1であり、現在のピクチャが出力されない場合、0である。たとえば、ピクチャが出力されないレイヤの一部である場合、PicOutputFlagは0に設定される。復号プロセスの間の現在のピクチャCurrPicでは、PicOutputFlagは、次のように設定される。
− 現在のピクチャがRASLピクチャであり、関連のIRAPピクチャのNoRaslOutputFlagが1に等しい場合、PicOutputFlagは、0に等しくなるように設定される。
− それ以外の場合、nuh_layer_idがTargetOptLayerIdListに存在せず、代替の出力プロセスがこの出力レイヤセットのために有効にされない場合、PicOutputFlagは、0に等しくなるように設定される。
− それ以外の場合、nuh_layer_idがTargetOptLayerIdListに存在せず、代替の出力プロセスがこの出力レイヤセットのために有効にされる場合、nuh_layer_idが外部に設けられている場合、PicOutputFlagは、1に等しくなるように設定され、nuh_layer_idが外部に設けられない場合、0に設定される。
−それ以外の場合、PicOutputFlagはpic_output_flagに等しくなるように設定される。
[0181]仮想参照復号器(HRD)では、2つのタイプのHRDパラメータセット(NAL HRDパラメータおよびVCL HRDパラメータ)が使用され得る。いくつかの例では、HRDパラメータセットは、SPSシンタックス構造またはVPSシンタックス構造の一部であり得るhrd_parameters()シンタックス構造を介してシグナリングされる。
[0182]表3は、例示的なビデオパラメータセットの拡張シンタックスを提供する。この例によるビデオパラメータセットの拡張シンタックスでは、変数numOutputLayerSetsは、本開示の他の場所で使用され得るグローバル変数に変更される。
[0183]前に説明したように、インデックスは、復号プロセスの間に使用されるターゲット出力レイヤのセットを定義するためだけでなく、DPBバッファのサイズを決定するためにも使用され得る。ビデオ復号器は、一度に1つのピクチャを復号すると、それらをDPBに記憶し得る。どのレイヤが復号されているかと、どのレイヤが出力されているかの両方に応じて、DPBの最適サイズは、変わり得る。したがって、DPBサイズは、出力レイヤセットのリストにおけるターゲット出力レイヤセットのインデックスに基づいて、ビデオ復号器によって選択され得る。
[0184]上記で説明したように、いくつかの例では、復号器は、復号プロセスを実行するだけでなく、次のように、ビットストリームが準拠しているかどうかもテストする。コンフォーマンステストは、可能な出力レイヤセットのすべてが制約のすべてを満たすかどうかを決定することを含む。各出力レイヤセットは、ビットストリームが復号可能であるかどうかを決定するために、連続的にテストされる。これらの例によるこのプロセスは、以下でより詳細に説明される。
[0185]ビットストリームの準拠を調べるために、複数のテストが必要とされる場合があり、このビットストリームは、テスト中のビットストリームと呼ばれる。各テストに対して、以下のステップが、列挙される順序で適用される。
1.OutputLayerSetIdxによって識別されるターゲット出力レイヤセットと、ターゲット最上位temporalID値、HighestTidとが選択される。OutputLayerSetIdxの値は、両端値を含む0〜NumOutputLayerSets−1の範囲内とする。HighestTidの値は、両端値を含む0〜vps_max_sub_layers_minus1の範囲内になる。次いで、TargetOptLayerIdListとTargetDecLayerIdListとが、式8−1に指定されるように導出される。テスト中の動作点は、TargetOptLayerIdListに等しいOptLayerIdListと、TargetDecLayerIdListに等しいOpLayerIdListと、HighestTidに等しいOpTidとを有する。
2.サブビットストリーム抽出プロセスが入力としてテスト中のビットストリーム、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がTypeIIビットストリームであり、NalHrdModeFlagが0に等しいとき、フィラーデータNALユニット以外のすべての非VCL NALユニット、ならびにすべてのleading_zero_8bits、zero_byte、start_code_prefix_one_3bytes、およびNALユニットストリームからバイトストリームを形成するtrailing_zero_8bitsシンタックス要素(付属書類Bにおいて指定されるように)は、存在する場合、BitstreamToDecodeから破棄され、残りのビットストリームは、BitstreamToDecodeに割り当てられる。
4.TargetOpに適用可能なバッファリング期間SEIメッセージ(BitstreamToDecode中に存在するか、または本明細書では指定されない外部手段を通して入手可能である)に関連付けられたアクセスユニットが、HRD初期化点として選択され、アクセスユニット0と呼ばれる。
5.アクセスユニット0から始まるBitstreamToDecode中の各アクセスユニットに対して、アクセスユニットに関連付けられるとともにTargetOpに適用されるバッファリング期間SEIメッセージ(BitstreamToDecode中に存在するか、または本明細書では指定されない外部手段を通して入手可能である)が選択され、アクセスユニットに関連付けられるとともにTargetOpに適用されるピクチャタイミングSEIメッセージ(BitstreamToDecode中に存在するか、または本明細書では指定されない外部手段を通して入手可能である)が選択され、SubPicHrdFlagが1に等しく、sub_pic_cpb_params_in_pic_timing_sei_flagが0に等しいとき、アクセスユニット中の復号ユニットに関連付けられるとともにTargetOpに適用される復号ユニット情報SEIメッセージ(BitstreamToDecode中に存在するか、または本明細書では指定されない外部手段を通して入手可能である)が選択される。
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除去遅延および遅延オフセットの選択のために適用される。
− NalHrdModeFlagが1に等しい場合、選択されたバッファリング期間SEIメッセージにおける、それぞれnal_initial_cpb_removal_delay[SchedSelIdx]とnal_initial_cpb_removal_offset[SchedSelIdx]とによって表されるデフォルトの初期CPB除去遅延と遅延オフセットとが選択される。それ以外の場合、選択されたバッファリング期間SEIメッセージにおける、それぞれvcl_initial_cpb_removal_delay[SchedSelIdx]とvcl_initial_cpb_removal_offset[SchedSelIdx]とによって表されるデフォルトの初期CPB除去遅延と遅延オフセットとが選択される。変数DefaultInitCpbParamsFlagは、1に等しくなるように設定される。
− NalHrdModeFlagが1に等しい場合、選択されたバッファリング期間SEIメッセージにおける、それぞれnal_initial_alt_cpb_removal_delay[SchedSelIdx]とnal_initial_alt_cpb_removal_offset[SchedSelIdx]とによって表される代替の初期CPB除去遅延と遅延オフセットとが選択される。それ以外の場合、選択されたバッファリング期間SEIメッセージにおける、それぞれvcl_initial_alt_cpb_removal_delay[SchedSelIdx]とvcl_initial_alt_cpb_removal_offset[SchedSelIdx]とによって表される代替の初期CPB除去遅延と遅延オフセットとが選択される。変数DefaultInitCpbParamsFlagは0に等しくなるように設定され、アクセスユニット0に関連したランダムアクセススキップリーディング(RASL:random access skipped leading)アクセスユニットは、BitstreamToDecodeから破棄され、残りのビットストリームは、BitstreamToDecodeに割り当てられる。
8.選択されたhrd_parameters()シンタックス構造中のsub_pic_hrd_params_present_flagが1に等しいとき、CPBは、アクセスユニットレベル(この場合、変数SubPicHrdFlagは0に等しくセットされる)またはサブピクチャレベル(この場合、変数SubPicHrdFlagは1に等しくセットされる)のいずれかで動作するようにスケジュールされる。
[0186]本開示で説明するように、「ビデオコーダ」は、概して、ビデオ符号化デバイスとビデオ復号デバイスの両方を指すのに使用され得る。加えて、「ビデオコーディング」は、ビデオ符号化またはビデオ復号を指す可能性がある。
[0187]例に応じて、本明細書に記載される技法のうちの任意のもののいくつかの振る舞いまたは事象は、異なるシーケンスで実行され得、全体的に追加、結合、または除外され得ることが、認識されるべきである(たとえば、記載される振る舞いまたは事象のすべてが、この技法の実施のために必要であるとは限らない)。その上、いくつかの例では、振る舞いまたは事象は、たとえば、マルチスレッドの処理、割込み処理、または多数のプロセッサを用いて、連続的ではなく同時に実行され得る。
[0188]1つまたは複数の例では、述べられた機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで、実施され得る。ソフトウェアで実施される場合、諸機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体を介して記憶または伝送され得、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの、有形の媒体に相当するコンピュータ可読記憶媒体、またはコンピュータプログラムの、ある場所から別の場所への、たとえば、通信プロトコルによる転送を促進する任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は概して、(1)非一時的である有形コンピュータ可読記憶媒体または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法の実装のために、命令、コードおよび/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含むことできる。本開示の例としては、実行されると、少なくとも1つのプロセッサに、たとえば本開示で説明するプロセスのうちの1つまたは複数などのプロセスを実行させる命令を記憶した非一時的コンピュータ可読記憶媒体がある。
[0189]例として、それに限定されず、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、フラッシュメモリ、または命令またはデータ構造の形態で所望のプログラムコードを記憶するために使用可能であり、コンピュータによってアクセス可能な他の任意の媒体を備えることができる。さらに、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他の遠隔ソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号または他の一時的媒体を含まないが、その代わりに、非一時的、有形記憶媒体を対象とすることを、理解されたい。本明細書で、ディスク(diskおよびdisc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ディスク(disk)は、通常は、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。上述したものの組合せも、コンピュータ可読媒体の範囲の中に含められるべきである。
[0190]命令は、1つまたは複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の同等の統合された、もしくは個別の論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造または本明細書で説明する技法の実装形態に適した任意の他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
[0191]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。様々な構成要素、モジュール、またはユニットが、開示された技法を実行するように構成されるデバイスの機能的態様を強調するために本開示で説明されているが、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットの中で組み合わされ、または、上記で説明した1つまたは複数のプロセッサを含む、適切なソフトウェアおよび/またはファームウェアと一緒に相互作用するハードウェアユニットの集合によって提供され得る。
[0192]様々な例が、記載された。これらおよび他の例は、以下の特許請求の範囲の範囲内にある。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを復号する方法であって、
ビデオビットストリームにおける出力レイヤセットのリストを受信することと、
前記出力レイヤセットのリストにおける少なくとも1つのターゲット出力レイヤセットのインデックスを受信することと、
前記インデックスに基づいて、前記少なくとも1つのターゲット出力レイヤセットにおけるターゲット出力レイヤを決定することと、
前記ビデオビットストリームから少なくとも前記ターゲット出力レイヤを復号することと、
出力のターゲットにされないレイヤを出力することなく、前記復号されたターゲット出力レイヤを出力することと
を備える、方法。
[C2]
少なくとも部分的に前記インデックスに基づいて復号ピクチャバッファ(DPB)サイズまたはサブDPBサイズを選択することをさらに備える、
C1に記載の方法。
[C3]
前記ターゲット出力レイヤセットは、nuh_layer_id値のセットを含み、少なくとも前記ターゲット出力レイヤを復号することは、前記ターゲット出力レイヤセットにおける前記nuh_layer_id値に対応するピクチャのデータを復号することを含む、
C1に記載の方法。
[C4]
前記レイヤの各々は、ビュー、画像解像度、または品質表現のうちの少なくとも1つに対応する、
C1に記載の方法。
[C5]
少なくとも前記ターゲット出力レイヤを復号することは、前記ターゲット出力レイヤを復号することを含み、前記ターゲット出力レイヤのうちの少なくとも1つは、ターゲット出力レイヤのセットに含まれない参照レイヤに依存するとき、前記参照レイヤを復号することをさらに含む、
C1に記載の方法。
[C6]
前記出力動作点をシグナリングする前記ビデオビットストリームのビデオピクチャシーケンス(VPS)における1つまたは複数のシンタックス要素に基づいて少なくとも前記ターゲット出力レイヤを復号することをさらに備える、
C1に記載の方法。
[C7]
前記1つまたは複数のシンタックス要素は、前記出力レイヤセットのリストを含む、
C6に記載の方法。
[C8]
前記出力レイヤセットのリストは、前記出力レイヤセットのリストにおける各出力レイヤセットにおいて、前記出力レイヤセットに対応するレイヤセットの別のインデックスを含み、少なくとも前記ターゲット出力レイヤを復号することは、前記対応するレイヤセットにおける各レイヤを復号することを含む、
C1に記載の方法。
[C9]
前記対応するレイヤセットは、復号されるべき前記レイヤの各々を識別し、前記ターゲット出力レイヤセットは、出力のターゲットにされる前記レイヤの各々を識別し、出力のターゲットにされるレイヤは、復号されるべき前記レイヤのサブセットである、
C8に記載の方法。
[C10]
前記インデックスを受信することは、トランスポートレイヤにおいて前記インデックスを受信することを含む、
C1に記載の方法。
[C11]
前記出力レイヤセットのリストにおける前記ターゲット出力レイヤセットの前記インデックスは、前記ターゲット出力レイヤセットに関する情報を含むマニフェストファイルに関連した出力動作点のセットから選択される特定の出力動作点に関連する、
C10に記載の方法。
[C12]
前記マニフェストファイルは、メディアプレゼンテーション記述(MPD)を含む、
C11に記載の方法。
[C13]
前記マニフェストファイルが、セッション記述プロトコル(SDP)メッセージを含む、C11に記載の方法。
[C14]
トランスポートストリームは、動的適応ストリーミングオーバーハイパーテキストトランスファープロトコル(HTTP)(DASH)、リアルタイムトランスポートプロトコル(RTP)、またはリアルタイムストリーミングプロトコル(RTSP)のうちの1つを含む、
C11に記載の方法。
[C15]
ビデオデータを復号するためのデバイスであって、
データを記憶するように構成されるメモリと、
前記メモリと通信する1つまたは複数のプロセッサと
を備え、前記プロセッサは、
ビデオビットストリームから前記ビデオビットストリームにおける出力レイヤセットのリストを受信することと、
前記出力レイヤセットのリストにおける少なくとも1つのターゲット出力レイヤセットのインデックスを受信することと、
前記インデックスに基づいて、前記少なくとも1つのターゲット出力レイヤセットにおけるターゲット出力レイヤを決定することと、
少なくとも前記ターゲット出力レイヤを復号することと、
出力のターゲットにされないレイヤを出力することなく、前記復号されたターゲット出力レイヤを出力することと
を行うように構成される、デバイス。
[C16]
前記デバイスは、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイス
のうちの少なくとも1つを備える、C15に記載のデバイス。
[C17]
前記1つまたは複数のプロセッサは、
少なくとも部分的に前記インデックスに基づいて復号ピクチャバッファ(DPB)サイズまたはサブDPBサイズを選択することを行うようにさらに構成される、
C15に記載のデバイス。
[C18]
前記ターゲット出力レイヤセットは、nuh_layer_id値のセットを含み、少なくとも前記ターゲット出力レイヤを復号することは、前記ターゲット出力レイヤセットにおける前記nuh_layer_id値に対応するピクチャのデータを復号することを含む、
C15に記載のデバイス。
[C19]
前記レイヤの各々は、ビュー、または画像解像度のうちの少なくとも1つに対応する、
C15に記載のデバイス。
[C20]
少なくとも前記ターゲット出力レイヤを復号することは、前記ターゲット出力レイヤを復号することを含み、前記ターゲット出力レイヤのうちの少なくとも1つが前記ターゲット出力レイヤのセットに含まれない参照レイヤに依存するとき、前記参照レイヤを復号することをさらに含む、
C15に記載のデバイス。
[C21]
前記1つまたは複数のプロセッサは、
出力動作点をシグナリングする前記ビデオビットストリームのビデオピクチャシーケンス(VPS)における1つまたは複数のシンタックス要素に基づいて前記出力動作点を抽出することをようにさらに構成される、
C15に記載のデバイス。
[C22]
前記1つまたは複数のシンタックス要素は、前記出力レイヤセットのリストを含む、
C21に記載のデバイス。
[C23]
前記出力レイヤセットのリストは、前記出力レイヤセットのリストにおける各出力レイヤセットにおいて、前記出力レイヤセットに対応するレイヤセットの別のインデックスを含み、少なくとも前記ターゲット出力レイヤを復号することは、前記対応するレイヤセットにおける各レイヤを復号することを含む、
C21に記載のデバイス。
[C24]
前記対応するレイヤセットは、復号されるべき前記レイヤの各々を識別し、前記ターゲット出力レイヤセットは、出力のターゲットにされる前記レイヤの各々を識別し、出力のターゲットにされるレイヤは、復号されるべき前記レイヤのサブセットである、
C23に記載のデバイス。
[C25]
実行されると、少なくとも1つのプロセッサに、
ビデオビットストリームにおける出力レイヤセットのリストを受信することと、
前記出力レイヤセットのリストにおける少なくとも1つのターゲット出力レイヤセットのインデックスを受信することと、
前記インデックスに基づいて、前記少なくとも1つのターゲット出力レイヤセットにおけるターゲット出力レイヤを決定することと、
前記ビデオビットストリームから少なくとも前記ターゲット出力レイヤを復号することと、
出力のターゲットにされないレイヤを出力することなく、前記復号されたターゲット出力レイヤを出力することと
を行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
[C26]
ビデオデータを復号するためのデバイスであって、
ビデオビットストリームにおける出力レイヤセットのリストを受信するための手段と、
前記出力レイヤセットのリストにおける少なくとも1つのターゲット出力レイヤセットのインデックスを受信するための手段と、
前記インデックスに基づいて、前記少なくとも1つのターゲット出力レイヤセットにおけるターゲット出力レイヤを決定するための手段と、
前記ビデオビットストリームから少なくとも前記ターゲット出力レイヤを復号するための手段と、
出力のターゲットにされないレイヤを出力することなく、前記復号されたターゲット出力レイヤを出力するための手段と
を備える、デバイス。
[C27]
ビデオデータを処理するための方法であって、
出力のターゲットにされるレイヤのセットを決定することと、
ターゲット出力レイヤセットが出力のターゲットにされる前記決定されたレイヤのセットを識別するように、出力レイヤセットのリストにおける前記ターゲット出力レイヤセットのインデックスを決定することと、
ビデオ復号器に前記インデックスを送ることと
を備える、方法。
[C28]
少なくとも1つの出力動作点は、前記ターゲット出力レイヤセットに関連する、
C27に記載の方法。
[C29]
前記ターゲット出力レイヤセットは、前記ターゲット出力レイヤセットに関連した出力されるべき各ピクチャのnuh_layer_id値のセットによって識別される、
C27に記載の方法。
[C30]
前記インデックスを受信するために使用されるトランスポートレイヤがセッション記述プロトコル(SDP)に準拠するとき、前記インデックスは、受信デバイスによって選択されるビデオデータのビューを含む符号化されたビットストリーム、出力レイヤセットの記述、および時間的サブセットに基づく動作点に基づいて、前記受信デバイスによって決定されている、
C27に記載の方法。
[C31]
動作点情報を伝えることと、
前記動作点情報を伝えた後、出力動作点の選択を受信することと、
少なくとも部分的に、前記出力動作点の前記選択に基づいて、出力のターゲットにされる前記レイヤのセットを決定することと
をさらに備える、C27に記載の方法。
[C32]
ビデオデータを処理するためのデバイスであって、
データを記憶するように構成されるメモリと、
前記メモリと通信する少なくとも1つのプロセッサと
を備え、前記プロセッサは、
出力のリストにおける少なくとも1つのターゲット出力レイヤセットのインデックスを受信することと、
出力のターゲットにされるレイヤのセットを決定することと、
前記ターゲット出力レイヤセットが出力のターゲットにされる前記決定されたレイヤのセットを識別するように、出力レイヤセットのリストにおけるターゲット出力レイヤセットのインデックスを決定することと、
ビデオ復号器に前記インデックスを送ることと
を行うように構成される、デバイス。
[C33]
実行されると、少なくとも1つのプロセッサに、
出力のターゲットにされるレイヤのセットを決定することと、
前記ターゲット出力レイヤセットが出力のターゲットにされる前記決定されたレイヤのセットを識別するように、出力レイヤセットのリストにおけるターゲット出力レイヤセットのインデックスを決定することと、
ビデオ復号器に前記インデックスを送ることと
を行わせる命令を記憶した、非一時的コンピュータ可読記憶媒体。