[0020]本開示は、MPEG−2システムによる、マルチビューHEVC(MV−HEVC)、スケーラブルHEVC(SHVC)、および3次元HEVC(3D−HEVC)の拡張ビットストリームを含む、HEVCマルチレイヤ拡張ビットストリームの搬送のための技法を記載する。MV−HEVCでは、複数のビューが、たとえば、様々な視点に対してコード化され得る。SHVCでは、複数のレイヤが、たとえば、空間スケーラビリティ、時間スケーラビリティ、または品質スケーラビリティをサポートするためにコード化され得る。3D−HEVCでは、複数のビューが、たとえば、3D表現をサポートするために、テクスチャ成分と深度成分とを用いてコード化され得る。一般に、MV−HEVCにおけるビュー、SHVCにおけるレイヤ、または3D−HEVCにおけるビューは、各々概してレイヤと呼ばれる場合がある。したがって、SHVC、MV−HEVC、および3D−HEVCは、総称して、積層(layered)HEVCまたはマルチレイヤ(multi-layer)HEVCのコーディング技法と呼ばれる場合がある。
[0021]MPEG−2システム仕様は、デジタル送信または記憶に適した単一のデータストリームを形成するために、圧縮マルチメディア(ビデオおよびオーディオ)データストリームが他のデータとともにどのように多重化され得るかを記述している。MPEG−2システム仕様は、プログラムストリームおよびトランスポートストリームの概念を定義する。プログラムストリームは、デジタルストレージサービスからの単一のプログラムの記憶および表示のためにバイアスされ、プログラムストリームは、誤りのない環境での使用を目的とする。対照的に、トランスポートストリームは、潜在的に誤りを起こしやすいチャネルを介するいくつかのプログラムの同時配信を目的とする。プログラムストリームおよびトランスポートストリームは、パケット化エレメンタリストリーム(PES)パケットを含む。プログラムストリームおよびトランスポートストリームのPESパケットは、1つまたは複数のエレメンタリストリームに属する。エレメンタリストリームは、単一のデジタル的にコーディングされた(場合によってはMPEG圧縮された)プログラムの構成要素である。たとえば、プログラムのコーディングされたビデオまたはオーディオの部分は、エレメンタリストリームであり得る。
[0022]ビデオデコーダは、プログラムストリームおよびトランスポートストリームのPESパケットを受信する。ビデオデコーダは、PESパケットから取得されたビデオデータを復号することができる。積層HEVCでは、アクセスユニット(AU)は、同じ時間インスタンスであるが、異なるレイヤに関連付けられたピクチャを含む場合がある。アクセスユニットのピクチャを復号するより前に、ビデオデコーダは、PESパケット内のデータから、アクセスユニットに対応する符号化データを再アセンブルする必要があり得る。言い換えれば、ビデオデコーダは、復号の準備ができている状態にあるアクセスユニットに対応する符号化データを有する必要があり得る。
[0023]Grunebergら、「Text of ISO/IEC13818−1:2013/Final Draft Amendment 3−Transport of HEVC video over MPEG−2 Systems」、ISO/IEC JTC1/SC29/WG11 MPEG105/N13656、2013年7月、ウィーン、オーストリア(本明細書では「n13656」または「FDAM3」)は、MPEG−2システムにおけるHEVCビデオのトランスポートを記述している。さらに、Chenら、「Carriage of HEVC extension streams with MPEG−2 Systems」、MPEG入力文書m31430、第106回MPEG会合、2013年10月、ジュネーブ、スイス、MPEG入力文書m31430(本明細書では「MPEG入力文書m31430」)は、MPEG−2システムによるHEVC拡張ストリームの搬送の基本設計を提案している。HEVC拡張ストリームは、SHVC、MV−HEVC、および3D−HEVCに準拠するHEVCストリームである。FDAM3も、MPEG入力文書m31430も、ビデオデコーダがHEVC拡張ストリームのアクセスユニットをどのように再アセンブルするかを記述していない。たとえば、FDAM3も、MPEG入力文書m31430も、ビデオデコーダがHEVC拡張ストリームのアクセスユニットの再アセンブリに使用することができるバッファモデルを記述していない。
[0024]本開示の1つまたは複数の技法によれば、ビデオデコーダは、バッファモデルにおいて、トランスポートストリームまたはプログラムストリームなどの、データストリームの複数のエレメンタリストリームからアクセスユニットをアセンブルする。エレメンタリストリームがSHVC、MV−HEVC、または3D−HEVCのビットストリームを含むかどうかにかかわらず、同じバッファモデルが使用される。次いで、ビデオデコーダはアクセスユニットを復号することができる。バッファリングモデルを使用することによって、ビデオデコーダは、トランスポートストリームまたはプログラムストリームのPESパケットからデータを、復号の準備ができているアクセスユニットへの再アセンブリのために集めることができる。SHVC、MV−HEVC、および3D−HEVC用の統合バッファモデルを使用すると、SHVCと、MV−HEVCと、3D−HEVCとをサポートするためにビデオデコーダに加わる複雑さを最小化することができる。
[0025]図1は、MPEG−2システムによる、マルチビューHEVC(MV−HEVC)、スケーラブルHEVC(SHVC)、および3次元HEVC(3D−HEVC)の拡張ビットストリームを含む、HEVCマルチレイヤ拡張ビットストリームの搬送のための技法などの、本開示の様々な技法を利用するように構成され得る、例示的なビデオ符号化および復号システム10を示すブロック図である。
[0026]図1に示されたように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを供給するソースデバイス12を含む。詳細には、ソースデバイス12は、コンピュータ可読媒体16を介して宛先デバイス14に符号化ビデオデータを供給する。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備える場合がある。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対応する場合がある。
[0027]宛先デバイス14は、コンピュータ可読媒体16を介して符号化ビデオデータを受信することができる。コンピュータ可読媒体16は、符号化ビデオデータをソースデバイス12から宛先デバイス14に移動することが可能な、任意のタイプの媒体またはデバイスを備える場合がある。一例では、コンピュータ可読媒体16は、ソースデバイス12が符号化ビデオデータを宛先デバイス14にリアルタイムに直接送信することを可能にするために、送信チャネルなどの通信媒体を備える場合がある。
[0028]符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレスまたは有線の通信媒体を備える場合がある。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースのネットワークの一部を形成することができる。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含む場合がある。
[0029]いくつかの例では、符号化データは、出力インターフェース22から、非一時的コンピュータ可読記憶媒体などのコンピュータ可読記憶媒体、すなわちデータストレージデバイスに出力され得る。同様に、符号化データは、ストレージデバイスから入力インターフェースによってアクセスされ得る。ストレージデバイスは、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性のメモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散されたまたはローカルにアクセスされる非一時的データ記憶媒体のいずれかを含む場合がある。さらなる例では、ストレージデバイスは、ソースデバイス12によって生成された符号化ビデオを記憶することができる、ファイルサーバまたは別の中間ストレージデバイスに対応する場合がある。宛先デバイス14は、たとえば、ストリーミングまたはダウンロードを介して、ストレージデバイスからの記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な、任意のタイプのサーバであり得る。例示的なファイルサーバには、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブが含まれる。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を介して、符号化ビデオデータにアクセスすることができる。これは、ファイルサーバ上に記憶された符号化ビデオデータにアクセスすることに適した、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含む場合がある。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
[0030]本開示の技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例などの、様々な有線またはワイヤレスのマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオ放送、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0031]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。他の例では、ソースデバイス12および宛先デバイス14は、他の構成要素または装置を含む。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソースからビデオデータを受信することができる。同様に、宛先デバイス14は、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースする場合がある。
[0032]本開示は、HEVCコーディング拡張、詳細には、MV−HEVC、SHVC、および3D−HEVCのコーディング拡張のコンテキストで、ビデオエンコーダ20とビデオデコーダ30とを記載する。しかしながら、本開示の技法は、他のビデオコーディングの規格または方法に適用可能であり得る。本開示に記載される技法は、ビデオエンコーダ20、ビデオデコーダ30、または、スプライシングエンジン、媒体認識ネットワーク要素、ストリーミングサーバ、ルータ、およびコード化ビデオビットストリームを符号化、復号、アセンブル、構築、抽出、もしくは場合によっては処理する他のデバイスなどの、他のデバイスによって実施される場合がある。
[0033]図1の示されたシステム10は、一例にすぎない。本開示の技法は、デジタルビデオ符号化および/または復号デバイスによって実施される場合がある。一般に、本開示の技法は、ビデオエンコーダ20および/またはビデオデコーダ30によって実施されるが、本技法は、通常「コーデック」と呼ばれるビデオエンコーダ/デコーダによって実施される場合もある。その上、本開示の技法は、ビデオプリプロセッサによって実施される場合もある。ソースデバイス12および宛先デバイス14は、宛先デバイス14に送信するためのコード化ビデオデータをソースデバイス12が生成する、そのようなコーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作することができる。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオ放送、またはビデオ電話のための、ビデオデバイス12、14の間の一方向または双方向のビデオ送信をサポートすることができる。
[0034]ソースデバイス12のビデオソース18は、ビデオカメラ、以前キャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含む場合がある。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオ、アーカイブビデオ、およびコンピュータ生成ビデオの組合せを生成することができる。いくつかの例では、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるスマートフォン、タブレットコンピュータ、またはビデオ電話を形成することができる。しかしながら、上述されたように、本開示に記載される技法は、一般にビデオコーディングに適用可能であり得るし、ワイヤレスおよび/または有線の適用例に適用される場合がある。各場合において、キャプチャされたビデオ、事前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。次いで、符号化されたビデオ情報は、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
[0035]コンピュータ可読媒体16は、ワイヤレスブロードキャストもしくは有線ネットワーク送信などの一時的媒体、またはデータ記憶媒体(すなわち、非一時的記憶媒体)を含む場合がある。いくつかの例では、ネットワークサーバ(図示せず)は、ソースデバイス12から符号化ビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化ビデオデータを宛先デバイス14に供給することができる。同様に、ディスクスタンピング設備などの媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを含むディスクを製造することができる。したがって、様々な例では、コンピュータ可読媒体16は、様々な形態の1つまたは複数のコンピュータ可読媒体を含むと理解され得る。
[0036]本開示は、一般に、ビデオエンコーダ20が、ビデオデコーダ30などの別のデバイスにある情報を「シグナリング」することに言及する場合がある。ビデオエンコーダ20は、いくつかのシンタックス要素をビデオデータの様々な符号化された部分と関連付けることによって、情報をシグナリングできることを理解されたい。すなわち、ビデオエンコーダ20は、ビデオデータの様々な符号化される部分のヘッダまたはペイロードにいくつかのシンタックス要素を格納することによって、データを「シグナリング」することができる。場合によっては、そのようなシンタックス要素は、ビデオデコーダ30によって受信および復号されるより前に、符号化および記憶(たとえば、コンピュータ可読媒体16に記憶)される場合がある。したがって、「シグナリング」という用語は、一般に、そのような通信がリアルタイムもしくはほぼリアルタイムで発生するか、またはある期間にわたって発生するかにかかわらず、圧縮されたビデオデータを復号するためのシンタックスまたは他のデータの通信を指す場合があり、ある期間にわたる通信は、シンタックス要素を符号化の時点で媒体に記憶し、次いで、シンタックス要素がこの媒体に記憶された後の任意の時点で復号デバイスによって取り出され得るときに発生する場合がある。
[0037]宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ブロックおよび他のコード化ユニット、たとえば、GOPの特性および/または処理を記述するシンタックス要素を含む、ビデオエンコーダ20によって定義され、ビデオデコーダ30によっても使用される、シンタックス情報を含む場合がある。ディスプレイデバイス32は、ユーザに復号ビデオデータを表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、投影デバイス、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備える場合がある。
[0038]図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、各々、オーディオエンコーダおよびデコーダと統合される場合があり、共通のデータストリームまたは別々のデータストリーム内のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含む場合がある。適用可能な場合、MUX−DEMUXユニットは、一例として、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠することができる。
[0039]ビデオエンコーダ20およびビデオデコーダ30は、各々、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路またはデコーダ回路のいずれかとして実装される場合がある。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれる場合があり、それらのいずれも、複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合される場合がある。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/または携帯電話などのワイヤレス通信デバイスを備える場合がある。
[0040]例示的なビデオコーディング規格には、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、およびそのスケーラブルビデオコーディング(SVC)拡張とマルチビュービデオコーディング(MVC)拡張とを含む(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264が含まれる。ITU−T H.264|ISO/IEC14496−10は、H.264/AVCビデオコーディング規格を定義する。ITU−T H.264|ISO/IEC14496−10の特定の付属書類(Annex)は、H.264/AVCビデオコーディング規格の拡張を定義する。たとえば、ITU−T H.264|ISO/IEC14496−10の付属書類Bは、H.264/AVC用のバイトストリームフォーマットを定義する。ITU−T H.264|ISO/IEC14496−10の付属書類Gは、H.264/AVCのSVC拡張を定義する。ITU−T H.264|ISO/IEC14496−10の付属書類Hは、H.264/AVCのMVC拡張を定義する。
[0041]最近、新しいビデオコーディング規格、すなわち高効率ビデオコーディング(HEVC)の設計が、ITU−T Video Coding Experts Group(VCEG)およびISO/IEC Motion Picture Experts Group(MPEG)のビデオコーディング共同研究部会(JCT−VC)によって確定された。ビデオエンコーダ20およびビデオデコーダ30は、HEVC規格、および、より詳細には、本開示で参照されるようなHEVC規格のマルチビューHEVC(MV−HEVC)、スケーラブルHEVC(SHVC)、または3D−HEVCの拡張に従って動作することができる。HEVCは、たとえば、ITU−T H.264/AVCなどの他の処理に従ってコーディングを実行するように構成されるデバイスと比較して、ビデオコーディングデバイスのいくつかの追加能力を仮定する。たとえば、H.264は9個のイントラ予測符号化モードを提供するが、HEVCの参照モデルは35個ものイントラ予測符号化モードを提供することができる。
[0042]本明細書では「HEVC WD」または「HEVC」と呼ばれる、HEVCドラフト仕様、Wangら、文書JCTVC−N1003_v1、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT−VC)、第14回会合:ウィーン、オーストリア、2013年7月25日〜8月2日は、http://phenix.int−evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC−N1003−v1.zipから入手可能である。Rec.ITU−T H.265|ISO/IEC23008−2がHEVC規格の最終版である。
[0043]3Dビデオコーディング拡張開発共同研究部会(JCT−3V)は、HEVCに対するマルチビュー拡張、すなわちMV−HEVCを開発している。本明細書では「MV−HEVC WD5」または「MV−HEVC」と呼ばれる、MV−HEVCの最新ワーキングドラフト(WD)、Techら、文書JCT3V−E1004−v6、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11の3Dビデオコーディング拡張開発共同研究部会、第5回会合:ウィーン、オーストリア、2013年7月27日〜8月2日は、http://phenix.it−sudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V−E1004−v6.zipから入手可能である。
[0044]Techら、文書JCT3V−E1001−v3、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11の3Dビデオコーディング拡張開発共同研究部会、第5回会合:ウィーン、オーストリア、2013年7月27日〜8月2日(本明細書では「JCT3V−E1001」または「3D−HEVC」)は、HEVCの3D拡張、すなわち3D−HEVCの最新ワーキングドラフトである。JCT3V−E1001は、http://phenix.int−evry.fr/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V−E1001−v3.zipから入手可能である。
[0045]JCT−VCは、HEVCに対するスケーラブル拡張、すなわちSHVCも開発している。Chenら、文書JCTVC−N1008_v3、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT−VC)、第14回会合:ウィーン、オーストリア、2013年7月25日〜8月2日(本明細書では「SHVC WD3」または単に「SHVC」)は、SHVCの最新ワーキングドラフト(WD)である。SHVC WD3は、http://phenix.it−sudparis.eu/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC−N1008−v3.zipから入手可能である。
[0046]Flynnら、文書JCTVC−N1005_v1、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT−VC)、第13回会合:インチョン、韓国、2013年4月18日〜26日、文書JCTVC−N1005(本明細書ではJCTVC−N1005)は、HEVCの範囲拡張の最新ワーキングドラフトである。JCTVC−N1005は、http://phenix.int−evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC−N1005−v3.zipから入手可能である。
[0047]一般に、HEVCは、ビデオピクチャ(または「フレーム」)が、コーディングツリーユニット(CTU)と呼ばれる一連の最大コーディングユニットに分割され得ることを規定する。CTUは、それぞれ、ルーマサンプルとクロマサンプルとを含むコーディングツリーブロック(CTB)、たとえばルーマCTBおよびクロマCTBと呼ばれる、対応するルーマ成分とクロマ成分とを含む場合がある。ビットストリーム内のシンタックスデータは、CTUについてのサイズを定義することができ、CTUは、ピクセルの数の観点から最大のコーディングユニットである。スライスは、コーディング順にいくつかの連続するCTBを含む。ピクチャは、1つまたは複数のスライスに区分化され得る。各CTBは、4分木区分化構造に従って、1つまたは複数のコーディングユニット(CU)に分割され得る。一般に、4分木データ構造は、CUあたり1つのノードを含み、ルートノードがCTBに対応する。CUが4つのサブCUに分割される場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。CUは、ルーマサンプルアレイと、Cbサンプルアレイと、Crサンプルアレイとを有するピクチャの、ルーマサンプルのコーディングブロックと、クロマサンプルの2つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える場合がある。3つの別々のカラープレーンを有する1つまたは複数のモノクロームピクチャでは、CUは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える場合がある。
[0048]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と呼ばれる場合がある。
[0049]HEVCにおけるCUは、CUがサイズの差異を有していないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、CTBは、(サブCUとも呼ばれる)4つの子ノードに分割され得るし、各子ノードは、今度は親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードと呼ばれる、最後の分割されない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コード化ビットストリームと関連付けられるシンタックスデータは、最大CU深度と呼ばれる、CTBが分割され得る最大回数を定義することができ、コーディングノードの最小サイズも定義することができる。したがって、いくつかの例では、ビットストリームは、最小コーディングユニットを定義することもできる。
[0050]CUは、コーディングノードと、コーディングノードに関連付けられた1つまたは複数の予測ユニット(PU)および1つまたは複数の変換ユニット(TU)とを含む。本開示は、HEVCのコンテキストでは、CU、予測ユニット(PU)、変換ユニット(TU)、もしくはそれらのパーティションのいずれか、または他の規格のコンテキストでは、同様のデータ構造を指すために、「ブロック」という用語を使用する場合がある。CUのサイズはコーディングノードのサイズに対応する。CUのサイズは、8×8ピクセルから最大64×64ピクセル以上のCTBのサイズまで及ぶ場合がある。
[0051]CUに関連付けられたシンタックスデータは、1つまたは複数のPUへのCUの区分化を記述することができる。一般に、PUは、CUのすべてまたは一部に対応する空間領域を表す。区分化モードは、CUがスキップモード符号化もしくは直接モード符号化されるのか、イントラ予測モード符号化されるのか、またはインター予測モード符号化されるのかの間で異なる場合がある。本開示に記載される深度コーディングの場合、PUは、形状が非正方形となるように区分化される場合があるか、または、形状が非方形であるパーティションを含む場合がある。CUのPUは、ルーマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、それらの予測ブロックを予測するために使用されるシンタックス構造とを備える場合がある。3つの別々のカラープレーンを有する1つまたは複数のモノクロームピクチャでは、PUは、単一の予測ブロックと、その予測ブロックを予測するために使用されるシンタックス構造とを備える場合がある。ビデオエンコーダ20は、CUの各PUの予測ブロック(prediction block)(たとえば、ルーマ予測ブロック(prediction block)、Cb予測ブロック(prediction block)、およびCr予測ブロック(prediction block))用の予測ブロック(predictive block)(たとえば、ルーマ予測ブロック(predictive block)、Cb予測ブロック(predictive block)、およびCr予測ブロック(predictive block))を生成することができる。
[0052]PUは、PUのための参照サンプルを取り出すためのデータを含む場合がある。参照サンプルは、参照ブロックからのピクセルであり得る。いくつかの例では、参照サンプルは、たとえば、補間または他の技法によって、参照ブロックから取得されるか、または生成される場合がある。PUはまた、予測に関するデータを含む。たとえば、PUがイントラモード符号化されるとき、PU用のデータは、残差4分木(RQT)に含まれる場合があり、RQTは、PUに対応するTU用のイントラ予測モードを記述するデータを含む場合がある。
[0053]別の例として、PUがインターモード符号化されるとき、PUは、PU用の1つまたは複数の動きベクトルを定義するデータを含む場合がある。PU用の動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトル用の参照ピクチャリスト(たとえば、RefPicList0もしくはRefPicList1)を記述することができる。
[0054]HEVCは、様々なPUサイズにおける予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HEVCは、2N×2NまたはN×NのPUサイズにおけるイントラ予測と、2N×2N、2N×N、N×2N、またはN×Nの対称的なPUサイズにおけるインター予測とをサポートする。2N×2Nのサイズを有するPUは、PUが存在するCUと同じサイズである。HEVCは、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を指す。深度コーディングの場合、JCT3V−E1001は、記載されるような非方形パーティションを含む、深度モデル化モード(DMM)に従うPUの区分化をさらにサポートする。
[0055]本開示では、「N×N(NxN)」および「N×N(N by N)」は、垂直寸法および水平寸法の観点からビデオブロックのピクセル寸法、たとえば、16×16(16x16)ピクセルまたは16×16(16 by 16)ピクセルを指すために互換的に使用される場合がある。一般に、16x16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にNピクセル、水平方向にNピクセルを有し、Nは非負整数値を表す。ブロック内のピクセルは、行および列に配置される場合がある。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはN×Mピクセルを備える場合があり、ここで、Mは必ずしもNに等しいとは限らない。
[0056]CUに関連付けられたシンタックスデータはまた、4分木に従う1つまたは複数のTUへのCUの区分化を記述することができる。TUは、形状が正方形または非正方形(たとえば、長方形)であり得る。CUのTUは、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とを備える場合がある。3つの別々のカラープレーンを有する1つまたは複数のモノクロームピクチャでは、TUは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備える場合がある。HEVC規格は、TUによる変換を可能にする。ビデオエンコーダ20は、変換係数を生成するためにTUに関連付けられたピクセル差分値を変換することができる。
[0057]いくつかの例では、CUのTUのサイズは、CUのPUのサイズに基づくが、いつもこうであるとは限らない。さらに、いくつかの例では、TUは、PUと同じサイズであるか、またはPUよりも小さい。CUに対応する残差サンプル(すなわち、ピクセル差分値)は、「残差4分木」(RQT)として知られる4分木構造を使用して、より小さいユニット(すなわち、変換ブロック)に再分割され得る。言い換えれば、リーフCUは、リーフCUがどのようにTUに区分化されるかを示す4分木を含む場合がある。TU4分木(すなわち、RQT)のルートノードは、一般に、リーフCUに対応する。RQTのリーフノードはTUに対応する。分割されないRQTのTUは、リーフTUと呼ばれる。一般に、本開示は、別段に記載されていない限り、それぞれ、リーフCUおよびリーフTUを指すために、CUおよびTUという用語を使用する。
[0058]TUは、上記で説明されたように、(TU4分木構造とも呼ばれる)RQTを使用して指定される場合がある。たとえば、分割フラグは、リーフCUが4つのTUに分割されるかどうかを示すことができる。次いで、各TUは、さらなるサブTUにさらに分割され得る。TUがこれ以上分割されないとき、TUはリーフTUと呼ばれる場合がある。いくつかの例では、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは、同じイントラ予測モードを共有する。すなわち、一般に、リーフCUのすべてのTUについての予測値を計算するために、同じイントラ予測モードが適用される。イントラコーディングの場合、ビデオエンコーダ20は、イントラ予測モードを使用して、リーフTUごとの残差値を、TUに対応するCUの部分と元のブロックとの間の差分として計算することができる。TUは、必ずしもPUのサイズに限定されるとは限らない。したがって、TUは、PUよりも大きい場合もあり、小さい場合もある。イントラコーディングの場合、PUは、同じCU用の対応するリーフTUとコロケートされる場合がある。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応する場合がある。
[0059]CUのPUを使用する通常のイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオエンコーダ20は、CUのTUについての残差データを計算することができる。PUは、(ピクセル領域とも呼ばれる)空間領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備える場合があり、TUは、通常の残差コーディングの場合、残差ビデオデータに対する変換、たとえば離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用に従って、変換領域内の係数を備える場合がある。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応することができる。ビデオエンコーダ20は、CUについての残差データを含むTUを形成し、次いで、CU用の変換係数を生成するためにTUを変換することができる。
[0060]変換係数を生成する任意の変換に続いて、ビデオエンコーダ20は、変換係数の量子化を実行することができる。量子化は、一般に、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。量子化プロセスは、係数の一部またはすべてに関連付けられたビット深度を低減することができる。たとえば、nビットの値は、量子化の間にmビットの値に切り捨てられる場合があり、ここで、nはmよりも大きい。
[0061]量子化に続いて、ビデオエンコーダ20は、量子化変換係数を走査して、量子化変換係数を含む2次元行列から1次元ベクトルを生成することができる。走査は、より高いエネルギー(したがって、より低い頻度)の係数を配列の前方に配置し、より低いエネルギー(したがって、より高い頻度)の係数を配列の後方に配置するように設計され得る。
[0062]いくつかの例では、ビデオエンコーダ20は、量子化変換係数を走査して、エントロピー符号化され得るシリアル化されたベクトルを生成するために、あらかじめ定義された走査順序を利用することができる。他の例では、ビデオエンコーダ20は適応型走査を実行することができる。量子化変換係数を走査して1次元ベクトルを形成した後、ビデオエンコーダ20は、たとえば、HEVCにおいて使用されるコンテキスト適応型バイナリ算術コーディング(CABAC)に従って、1次元ベクトルをエントロピー符号化することができる。他のエントロピーコーディングプロセスの例には、コンテキスト適応型可変長コーディング(CAVLC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、および確率間隔区分化エントロピー(PIPE)コーディングが含まれる。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための、符号化ビデオデータに関連付けられたシンタックス要素をエントロピー符号化することができる。
[0063]ビデオシーケンスは、通常、一連のピクチャを含む。本明細書に記載されるように、「ピクチャ」および「フレーム」は互換的に使用される場合がある。ピクチャの各スライスは、それぞれのスライスについての符号化モードを記述するスライスシンタックスデータを含む場合がある。ビデオエンコーダ20は、通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用する。ビデオブロックはCU内のコーディングノードに対応する場合がある。ビデオブロックは、固定サイズまたは可変サイズを有する場合があり、指定されたコーディング規格に応じてサイズが異なる場合がある。
[0064]ビデオエンコーダ20および/またはビデオデコーダ30は、深度データのイントラピクチャ予測コーディングと、深度データのインター予測コーディングとを実行することができる。HEVCにおいて、CUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ20およびビデオデコーダ30は、イントラ予測の場合は2N×2NまたはN×Nの様々なPUサイズをサポートすることができ、インター予測の場合は2N×2N、2N×N、N×2N、N×N、または同様のサイズの対称的なPUサイズをサポートすることができる。ビデオエンコーダおよびビデオデコーダはまた、インター予測の場合は2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズに対する非対称区分化をサポートすることができる。
[0065]ビデオエンコーダ20は、コード化ピクチャおよび関連データの表現を形成するビットのシーケンスを含む、ビットストリームを出力することができる。「ビットストリーム」という用語は、ネットワークアブストラクションレイヤ(NAL)ユニットストリーム(たとえば、NALユニットのシーケンス)、またはバイトストリーム(たとえば、HEVC規格の付属書類Bによって指定されたスタートコードプレフィックスとNALユニットとを含むNALユニットストリームのカプセル化)のいずれかを指すために使用される総称であり得る。NALユニットは、NALユニット内のデータのタイプの指示と、必要に応じてエミュレーション防止ビットが散在するローバイトシーケンスペイロード(RBSP)の形態でそのデータを含むバイトとを含む、シンタックス構造である。
[0066]NALユニットの各々は、NALユニットヘッダを含む場合があり、RBSPをカプセル化することができる。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素などの、様々なシンタックス要素を含む場合がある。NALユニットヘッダに含まれるシンタックス要素は、本明細書ではNALユニットヘッダシンタックス要素と呼ばれる場合がある。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含むシンタックス構造であり得る。場合によっては、RBSPは0ビットを含む。
[0067]様々なタイプのNALユニットは、様々なタイプのRBSPをカプセル化することができる。たとえば、第1のタイプのNALユニットはピクチャパラメータセット(PPS)用のRBSPをカプセル化することができ、第2のタイプのNALユニットはスライスセグメント用のRBSPをカプセル化することができ、第3のタイプのNALユニットは補足エンハンスメント情報(SEI)用のRBSPをカプセル化することができ、以下同様である。(パラメータセットおよびSEIメッセージ用のRBSPとは対照的に)ビデオコーディングデータ用のRBSPをカプセル化するNALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと呼ばれる場合がある。パラメータセット(たとえば、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、PPSなど)を含むNALユニットは、パラメータセットNALユニットと呼ばれる場合がある。SEIメッセージを含むNALユニットは、SEI NALユニットと呼ばれる場合がある。補足エンハンスメント情報(SEI)は、VCL NALユニットからのコード化ピクチャのサンプルを復号するために必要ではない情報を含んでいる。
[0068]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信することができる。加えて、ビデオデコーダ30は、ビットストリームからシンタックス要素を取得するために、ビットストリームを構文解析する(parse)ことができる。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを復元することができる。ビデオデータを復元するプロセスは、一般に、ビデオデータを符号化するためにビデオエンコーダ20によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ30は、現在CUのPU用の予測ブロックを決定するために、PUの動きベクトルを使用することができる。加えて、ビデオデコーダ30は、現在CUのTUの係数ブロックを逆量子化することができる。ビデオデコーダ30は、現在CUのTUの変換ブロックを復元するために、係数ブロックに対して逆変換を実行することができる。ビデオデコーダ30は、現在CUのPUの予測ブロックのサンプルを、現在CUのTUの変換ブロックの対応するサンプルに加算することによって、現在CUのコーディングブロックを復元することができる。ピクチャの各CUにコーディングブロックを復元することによって、ビデオデコーダ30はピクチャを復元することができる。
[0069]マルチビューコーディングでは、異なる視点からの同じシーンの複数のビューが存在する場合がある。「アクセスユニット」という用語は、同じ時間インスタンスに対応するピクチャのセットを指すために使用される場合がある。したがって、ビデオデータは、時間とともに発生する一連のアクセスユニットとして概念化される場合がある。「ビュー成分」は、単一のアクセスユニット内のビューのコード化表現であり得る。本開示では、「ビュー」は、同じビュー識別子に関連付けられたビュー成分のシーケンスまたはセットを指す場合がある。ビュー成分は、テクスチャビュー成分と深度ビュー成分とを含む場合がある。
[0070]テクスチャビュー成分(すなわち、テクスチャピクチャ)は、単一のアクセスユニット内のビューのテクスチャのコード化表現であり得る。テクスチャビューは、ビュー順序インデックスの同一の値に関連付けられたテクスチャビュー成分のシーケンスであり得る。ビューのビュー順序インデックスは、他のビューに対するビューのカメラ位置を示すことができる。深度ビュー成分(すなわち、深度ピクチャ)は、単一のアクセスユニット内のビューの深度のコード化表現であり得る。深度ビューは、ビュー順序インデックスの同一の値に関連付けられた1つまたは複数の深度ビュー成分のセットまたはシーケンスであり得る。
[0071]MV−HEVC、3D−HEVC、およびSHVCでは、ビデオエンコーダは、一連のNALユニットを備えるビットストリームを生成することができる。ビットストリームの様々なNALユニットは、ビットストリームの様々なレイヤに関連付けられる場合がある。レイヤは、同じレイヤ識別子を有するVCL NALユニットおよび関連する非VCL NALユニットのセットとして定義され得る。レイヤは、マルチビュービデオコーディングにおけるビューと等価であり得る。マルチビュービデオコーディングでは、レイヤは、様々な時間インスタンスを有する同じレイヤのすべてのビュー成分を含むことができる。各ビュー成分は、特定の時間インスタンスにおいて特定のビューに属するビデオシーンのコード化ピクチャであり得る。3Dビデオコーディングのいくつかの例では、レイヤは、特定のビューのすべてのコード化深度ピクチャ、または特定のビューのコード化テクスチャピクチャのいずれかを含むことができる。3Dビデオコーディングの他の例では、レイヤは、特定のビューのテクスチャビュー成分と深度ビュー成分の両方を含むことができる。同様に、スケーラブルビデオコーディングのコンテキストにおいて、レイヤは、通常、他のレイヤ内のコード化ピクチャと異なるビデオ特性を有するコード化ピクチャに対応する。そのようなビデオ特性は、通常、空間解像度と品質レベル(たとえば、信号対雑音比)とを含む。HEVCおよびその拡張では、時間スケーラビリティは、特定の時間レベルを有するピクチャのグループをサブレイヤとして定義することによって、1つのレイヤ内で実現され得る。
[0072]ビットストリームのそれぞれのレイヤの各々に、下位レイヤ内のデータは、いかなる上位レイヤ内のデータとも無関係に復号され得る。スケーラブルビデオコーディングでは、たとえば、ベースレイヤ内のデータは、エンハンスメントレイヤ内のデータと無関係に復号され得る。一般に、NALユニットは、単一のレイヤのデータをカプセル化することだけができる。したがって、ビットストリームの残りの最上位の残存レイヤのデータをカプセル化するNALユニットは、ビットストリームの残存レイヤ内のデータの復号可能性に影響を及ぼすことなく、ビットストリームから除去され得る。マルチビューコーディングおよび3D−HEVCでは、上位レイヤは、さらなるビュー成分を含み得る。SHVCでは、上位レイヤは、信号対雑音比(SNR)エンハンスメントデータ、空間エンハンスメントデータ、および/または時間エンハンスメントデータを含む場合がある。MV−HEVC、3D−HEVC、およびSHVCでは、ビデオデコーダが、あるレイヤ内のピクチャをいかなる他のレイヤのデータとも無関係に復号することができる場合、そのレイヤは「ベースレイヤ」と呼ばれる場合がある。ベースレイヤは、HEVC基本仕様(たとえば、HEVC WD)に準拠することができる。
[0073]SVCでは、ベースレイヤ以外のレイヤは、「エンハンスメントレイヤ」と呼ばれる場合があり、ビットストリームから復号されるビデオデータの視覚的品質を向上させる情報を提供することができる。SVCは、空間分解能、信号対雑音比(すなわち、品質)、または時間レートを向上させることができる。スケーラブルビデオコーディング(たとえば、SHVC)では、「レイヤ表現」は、単一のアクセスユニット内の空間レイヤのコード化表現であり得る。説明を簡単にするために、本開示は、ビュー成分および/またはレイヤ表現を「ビュー成分/レイヤ表現」または単に「ピクチャ」と呼ぶ場合がある。
[0074]レイヤを実装するために、NALユニットのヘッダは、nuh_reserved_zero_6bitsシンタックス要素を含む場合がある。HEVC WDでは、nuh_reserved_zero_6bitsシンタックス要素は予備(reserved)である。しかしながら、MV−HEVC、3D−HEVC、およびSVCでは、nuh_reserved_zero_6bitsシンタックス要素は、nuh_layer_idシンタックス要素と呼ばれる。nuh_layer_idシンタックス要素は、レイヤの識別子を指定する。様々な値を指定するnuh_layer_idシンタックス要素を有するビットストリームのNALユニットは、ビットストリームの様々なレイヤに属する。
[0075]いくつかの例では、NALユニットが、マルチビューコーディング(たとえば、MV−HEVC)、3DVコーディング(たとえば、3D−HEVC)、またはスケーラブルビデオコーディング(たとえば、SHVC)におけるベースレイヤに関係する場合、NALユニットのnuh_layer_idシンタックス要素は0に等しい。NALユニットが、マルチビューコーディング、3DV、またはスケーラブルビデオコーディングにおけるベースレイヤに関係しない場合、NALユニットのnuh_layer_idシンタックス要素は0でない値を有する場合がある。
[0076]さらに、レイヤ内のいくつかのビュー成分/レイヤ表現は、同じレイヤ内の他のビュー成分/レイヤ表現と無関係に復号され得る。したがって、レイヤのいくつかのビュー成分/レイヤ表現のデータをカプセル化するNALユニットは、そのレイヤ内の他のビュー成分/レイヤ表現の復号可能性に影響を及ぼすことなく、ビットストリームから除去され得る。そのようなビュー成分/レイヤ表現のデータをカプセル化するNALユニットを除去すると、ビットストリームのフレームレートが低減することができる。レイヤ内の他のビュー成分/レイヤ表現と無関係に復号され得るレイヤ内のビュー成分/レイヤ表現のサブセットは、本明細書では「サブレイヤ」または「時間サブレイヤ」と呼ばれる場合がある。
[0077]NALユニットは、NALユニットの時間識別子(すなわち、TemporalId)を指定するtemporal_idシンタックス要素を含む場合がある。NALユニットの時間識別子は、そのNALユニットが属するサブレイヤを識別する。したがって、レイヤの各サブレイヤは、異なる時間識別子を有する場合がある。一般に、レイヤの第1のNALユニットの時間識別子が同じレイヤの第2のNALユニットの時間識別子よりも小さい場合、第1のNALユニットによってカプセル化されたデータは、第2のNALユニットによってカプセル化されたデータと無関係に復号され得る。
[0078]ビットストリームは、複数のオペレーションポイントに関連付けられる場合がある。ビットストリームの各オペレーションポイントは、レイヤ識別子のセット(たとえば、nuh_layer_id値のセット)および時間識別子に関連付けられる。レイヤ識別子のセットは、OpLayerIdSetと表記されることがあり、時間識別子はTemporalIDと表記される場合がある。NALユニットのレイヤ識別子がオペレーションポイントのレイヤ識別子のセットの中にあり、NALユニットの時間識別子がオペレーションポイントの時間識別子以下である場合、NALユニットはオペレーションポイントに関連付けられる。したがって、オペレーションポイントは、ビットストリーム内のNALユニットのサブセット(たとえば、真部分集合)に対応する場合がある。
[0079]MPEG−2システム仕様は、デジタル送信または記憶に適した単一のデータストリームを形成するために、圧縮マルチメディア(ビデオおよびオーディオ)データストリームが他のデータとともにどのように多重化され得るかを記述している。MPEG−2 TSの最新仕様は、ITU−T勧告H.222.0、2012年6月版(本明細書では「MPEG−2 TS」)であり、アドバンストビデオコーディング(AVC)およびAVC拡張のサポートが提供される。最近、HEVCについてのMPEG−2 TSの改正案が開発された。最新文書は、MPEG出力文書N13656、2013年7月の中の「Text of ISO/IEC13818−1:2013/Final Draft Amendment 3−Transport of HEVC video over MPEG−2 Systems」である。
[0080]MPEG−2システム仕様は、エレメンタリストリームの概念を定義する。具体的には、エレメンタリストリームは、単一のデジタル的にコーディングされた(場合によってはMPEG圧縮された)プログラムの構成要素である。たとえば、プログラムのコーディングされたビデオまたはオーディオの部分は、エレメンタリストリームであり得る。エレメンタリストリームは、第一に、プログラムストリームまたはトランスポートストリームに多重化される前に、パケット化エレメンタリストリーム(PES)に変換される。同じプログラム内では、1つのエレメンタリストリームに属するPESパケットを別のものと区別するために、stream_idが使用される。
[0081]加えて、MPEG−2システム仕様は、プログラムストリームおよびトランスポートストリームの概念を定義する。プログラムストリームおよびトランスポートストリームは、異なるアプリケーションをターゲットにする2つの代替的な多重化である。プログラムストリームは、デジタルストレージサービスからの単一のプログラムの記憶および表示のためにバイアスされ、プログラムストリームは、誤りが起こりやすいので、誤りのない環境での使用を目的とする。対照的に、トランスポートストリームは、潜在的に誤りを起こしやすいチャネルを介するいくつかのプログラムの同時配信を目的とする。一般に、トランスポートストリームは、単一のトランスポートストリームが多くの独立したプログラムに適応することができるように、ブロードキャストなどのマルチプログラムアプリケーションのために考案された多重化である。プログラムストリームは、それに属するエレメンタリストリームを備えるにすぎず、通常、可変長のパケットを有するパケットを含んでいる。
[0082]プログラムストリームでは、寄与しているエレメンタリストリームから導出されたPESパケットが「パック」に編成される。パックは、パックヘッダと、オプションのシステムヘッダと、寄与しているエレメンタリストリーム(すなわち、プログラムストリームのエレメンタリストリーム)のいずれかから取られる任意の数のPESパケットとを任意の順序で備える。システムヘッダは、プログラムストリームの最大データレート、プログラムストリームの寄与しているビデオおよびオーディオのエレメンタリストリームの数、およびさらなるタイミング情報などの、プログラムストリームの特性の概要を含んでいる。ビデオデコーダ30などのデコーダは、デコーダがプログラムストリームを復号することが可能であるかどうかを決定するために、システムヘッダに含まれている情報を使用することができる。
[0083]トランスポートストリームは、一連のトランスポートパケットを備える。トランスポートパケットは、PESパケットの1つのタイプである。トランスポートパケットの各々は、188バイト長である。トランスポートストリーム内の短い固定長パケットの使用は、トランスポートストリームがプログラムストリームよりも誤りが起こりにくいことを意味する。さらに、リードソロモン符号化などの標準的な誤り保護プロセスを介してトランスポートパケットを処理すると、各々188バイト長のトランスポートパケットのさらなる誤り保護を与えることができる。トランスポートストリームの誤り耐性の改善は、ブロードキャスト環境において発見されるものなどの、誤りを起こしやすいチャネルを克服するより良い機会をトランスポートストリームが有することを意味する。トランスポートストリームの誤り耐性およびトランスポートストリーム内で多くの同時プログラムを搬送する能力が増大すると仮定すると、トランスポートストリームが明らかに2つの多重化(すなわち、プログラムストリームおよびトランスポートストリーム)のうちの良い方であるように見える。しかしながら、トランスポートストリームは、プログラムストリームよりもさらに高度な多重化であり、その結果、作成および逆多重化を行うことがより困難である。
[0084]トランスポートパケットの最初のバイトは同期バイトであり、0x47である。単一のトランスポートストリームは、各々が多くのパケット化エレメンタリストリームを備える、多くの様々なプログラムを搬送することができる。加えて、トランスポートパケットは、13ビットのパケット識別子(PID)フィールドを含む。PIDフィールドは、あるエレメンタリストリームのデータを含むトランスポートパケットを、他のエレメンタリストリームのデータを搬送するトランスポートパケットと区別するために使用される。各エレメンタリストリームが一意のPID値を与えられることを保証することは、マルチプレクサの責務である。トランスポートパケットの最後のバイトは連続カウントフィールドである。連続カウントフィールドの値は、同じエレメンタリストリームに属する連続するトランスポートパケットの間で増分される。連続カウントフィールドの値を増分すると、デコーダ30などのデコーダが、トランスポートパケットの減少または増加を検出し、そうでない場合トランスポートパケットの減少または増加からもたらされる場合がある誤りを潜在的に隠すことが可能になる。
[0085]トランスポートパケットが属するエレメンタリストリームは、トランスポートパケットのPID値に基づいて決定される場合があるが、デコーダは、どのエレメンタリストリームがどのプログラムに属するかを決定することができる必要があり得る。したがって、プログラム固有情報は、プログラムと構成要素のエレメンタリストリームとの間の関係を明示的に指定する。たとえば、プログラム固有情報は、プログラムとプログラムに属するエレメンタリストリームとの間の関係を指定することができる。トランスポートストリームのプログラム固有情報には、プログラムマップテーブル(PMT)、プログラム関連テーブル(PAT)、限定アクセステーブル、およびネットワーク情報テーブルが含まれ得る。
[0086]トランスポートストリーム内で搬送されるすべてのプログラムは、プログラムマップテーブル(PMT)に関連付けられる。PMTは、2つ以上のプログラムを含むことが許可される。たとえば、トランスポートストリーム内で搬送される複数のプログラムは、同じPMTに関連付けられ得る。プログラムに関連付けられたPMTは、そのプログラムおよびそのプログラムを備えるエレメンタリストリームに関する詳細を与える。たとえば、番号3を有するプログラムは、PID33を有するビデオと、PID57を有する英語のオーディオと、PID60を有する中国語のオーディオとを含んでいる場合がある。言い換えれば、この例では、PMTは、そのトランスポートパケットが33に等しい値を有するPIDフィールドを含むエレメンタリストリームが、3に等しい番号(たとえば、program_number)を有するプログラムのビデオを含んでいることと、そのトランスポートパケットが57に等しい値を有するPIDフィールドを含むエレメンタリストリームが、番号3を有するプログラムの英語のオーディオを含んでいることと、そのトランスポートパケットが60に等しい値を有するPIDフィールドを含むエレメンタリストリームが、番号3を有するプログラムの中国語のオーディオを含んでいることと、を示す場合がある。
[0087]基本PMTは、MPEG−2システム仕様内で指定された多くの記述子のうちのいくつかで装飾される場合がある。言い換えれば、PMTは1つまたは複数の記述子を含む含む場合がある。記述子は、プログラムまたはプログラムの構成要素のエレメンタリストリームに関するさらなる情報を搬送する。記述子は、ビデオ符号化パラメータ、オーディオ符号化パラメータ、言語識別情報、パンアンドスキャン情報、限定アクセス詳細、著作権情報などを含む場合がある。放送事業者または他のユーザは、必要な場合、追加のプライベート記述子を定義することができる。ビデオ関連構成要素のエレメンタリストリームでは、階層記述子も存在する。階層記述子は、階層的にコーディングされたビデオ、オーディオ、およびプライベートストリームの構成要素を含むプログラム要素を識別する情報を提供する。プライベートストリームは、プログラム固有情報のストリームなどのメタデータを含む場合がある。一般に、プログラム要素は、プログラム(すなわち、プログラムの構成要素のエレメンタリストリーム)に含まれるデータまたはエレメンタリストリームのうちの1つである。MPEG−2トランスポートストリームでは、プログラム要素は通常パケット化される。MPEG−2プログラムストリームでは、プログラム要素はパケット化されない。
[0088]プログラムストリームのプログラム固有情報は、プログラムストリームマップ(PSM)を含む場合がある。プログラムストリームのPSMは、プログラムストリーム内のエレメンタリストリームの記述と、エレメンタリストリームの互いとの関係とを提供する。トランスポートストリーム内で搬送されるとき、この構造は修正されてはならない。PSMは、stream_id値が0xBCであるときにPESパケットとして存在する。
[0089]上記で示されたように、トランスポートストリームのプログラム固有情報は、プログラム関連テーブル(PAT)を含む場合がある。トランスポートストリームのPATは、トランスポートストリーム内で利用可能なすべてのプログラムの完全なリストを含んでいる。PATは、常にPID値0を有する。言い換えれば、0に等しいPID値を有するトランスポートパケットは、PATを含んでいる。PATは、それぞれのプログラムに関連付けられたプログラムマップテーブルを含むトランスポートパケットのPID値とともに、トランスポートストリームの各それぞれのプログラムを列記する。たとえば、上述された例示的なPMTでは、PATは、プログラム番号3のエレメンタリストリームを指定するPMTが1001のPIDを有することを指定する情報を含む場合があり、別のPMTが1002の別のPIDを有することを指定する情報を含む場合がある。言い換えれば、この例では、PMTは、そのPIDフィールドが1001に等しい値を有するトランスポートパケットが、プログラム番号3のPMTを含んでいることを指定する場合があり、PMTは、そのPIDフィールドが1002に等しい値を有するトランスポートパケットが、別のプログラムのPMTを含んでいることを指定する場合がある。
[0090]さらに、上記で示されたように、トランスポートストリームのプログラム固有情報は、ネットワーク情報テーブル(NIT)を含む場合がある。トランスポートストリームのPAT内で指定されたプログラム番号0は、特別な意味を有する。具体的には、プログラム番号0はNITを指す。トランスポートストリームのNITはオプションであり、存在するとき、NITは、トランスポートストリームを搬送する物理ネットワークに関する情報を提供する。NITは、チャネル周波数、衛星トランスポンダ詳細、変調特性、サービス発信者、サービス名称、および利用可能な代替ネットワークの詳細などの情報を提供することができる。
[0091]上記で示されたように、トランスポートストリームのプログラム固有情報は、限定アクセステーブル(CAT)を含む場合がある。トランスポートストリーム内の任意のエレメンタリストリームがスクランブルされる場合、CATは存在しなければならない。CATは、使用中のスクランブリングシステムの詳細を提供し、限定アクセス管理(conditional access management)と資格情報(entitle information)とを含むトランスポートパケットのPID値を提供する。MPEG−2は、この情報のフォーマットを指定しない。
[0092]上記で示されたように、PMTは、プログラムまたはプログラムの構成要素のエレメンタリストリームに関する情報を搬送する、1つまたは複数の記述子を含む場合がある。PMT内の1つまたは複数の記述子は、階層記述子を含む場合がある。MPEG−2トランスポートストリーム(TS)では、階層記述子は、様々なエレメンタリストリーム内でサブビットストリームの階層をシグナリングするように設計されている。階層記述子は、階層的にコーディングされたビデオ、オーディオ、およびプライベートストリームの構成要素を含むプログラム要素を識別する情報を提供する。下記の表2−49は、階層記述子のシンタックスを示す。表2−49に続く段落は、階層記述子のフィールドのセマンティクスを記載する。
[0093]temporal_scalability_flag−「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から得られるビットストリームのフレームレートを向上させることを示す、1ビットフラグ。このフラグ用の「1」の値は予約済みである。
[0094]spatial_scalability_flag−「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から得られるビットストリームの空間解像度を向上させることを示す、1ビットフラグ。このフラグ用の「1」の値は予約済みである。
[0095]quality_scalability_flag−「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から得られるビットストリームのSNR品質または忠実度を向上させることを示す、1ビットフラグ。このフラグ用の「1」の値は予約済みである。
[0096]hierarchy_type−関連する階層レイヤとその階層組込み型レイヤとの間の階層関係が(下記に示される)表2−50において定義される。スケーラビリティが2つ以上の次元において適用される場合、このフィールドは、「8」の値(「合成スケーラビリティ」)に設定されることになり、フラグtemporal_scalability_flag、spatial_scalability_flag、およびquality_scalability_flagはそれに応じて設定されることになる。MVCビデオサブビットストリームの場合、このフィールドは、「9」の値(「MVCビデオサブビットストリーム」)に設定されることになり、フラグtemporal_scalability_flag、spatial_scalability_flag、およびquality_scalability_flagは、「1」に設定されることになる。MVCベースビューサブビットストリームの場合、hierarchy_typeフィールドは、「15」の値に設定されることになり、フラグtemporal_scalability_flag、spatial_scalability_flag、およびquality_scalability_flagは、「1」に設定されることになる。
[0097]hierarchy_layer_index−hierarchy_layer_indexは、コーディングレイヤ階層のテーブルにおいて関連するプログラム要素の一意のインデックスを定義する6ビットフィールドである。インデックスは、単一のプログラム定義内で一意でなければならない。Rec.ITU−T H.264|ISO/IEC14496−10の付属書類Gにおいて定義されている1つまたは複数のプロファイルに準拠するAVCビデオストリームのビデオサブビットストリームの場合、これは、同じアクセスユニットのビデオサブビットストリームの関連するSVC依存性表現が、hierarchy_layer_indexの昇順で再アセンブルされる場合にビットストリーム順序が正しくなるように割り当てられる、プログラム要素インデックスである。Rec.ITU−T H.264|ISO/IEC14496−10の付属書類Hにおいて定義されている1つまたは複数のプロファイルに準拠するAVCビデオストリームのMVCビデオサブビットストリームの場合、これは、同じアクセスユニットのMVCビデオサブビットストリームの関連するMVCビュー成分サブセットが、hierarchy_layer_indexの昇順で再アセンブルされる場合にビットストリーム順序が正しくなるように割り当てられる、プログラム要素インデックスである。
[0098]tref_present_flag−「0」に設定されると、TREFフィールドが関連するエレメンタリストリーム内のPESパケットヘッダ内に存在できることを示す、1ビットフラグ。このフラグ用の「1」の値は予約済みである。
[0099]hierarchy_embedded_layer_index−hierarchy_embedded_layer_indexは、このhierarchy_descriptorに関連付けられたエレメンタリストリームの復号の前に、復号順序でアクセスされ存在する必要があるプログラム要素のhierarchy_layer_indexを定義する6ビットフィールドである。hierarchy_type値が15である場合、hierarchy_embedded_layer_indexフィールドは未定義になる。
[0100]hierarchy_channel−hierarchy_channelは、送信チャネルの順序セットにおいて関連するプログラム要素のための所期のチャネル番号を示す6ビットフィールドである。最もロバストな送信チャネルは、全体的な送信階層定義に関して、このフィールドの最低値によって定義される。所与のhierarchy_channelは、いくつかのプログラム要素に同時に割り当てられ得る。
[0101]下記の表2−50は、階層記述子のhierarchy_typeフィールドの値の意味を記載する。
[0102]上記で示されたように、PMTは、プログラムまたはプログラムの構成要素のエレメンタリストリームに関する情報を搬送する、1つまたは複数の記述子を含む場合がある。MPEG−2 TSでは、2つの記述子、SVC拡張記述子およびMVC拡張記述子は、それぞれ、SVCおよびMVCの場合のサブビットリームの特性をシグナリングする。加えて、オペレーションポイントの特性を記述するMVCオペレーションポイント記述子が存在する。3つの記述子のシンタックスおよびセマンティクスが、下記に提供される。
[0103]Rec.ITU−T H.264|ISO/IEC14496−10の付属書類Gにおいて定義されている1つまたは複数のプロファイルに準拠するAVCビデオストリームのビデオサブビットストリームの場合、SVC拡張記述子は、(最大)関連するビデオサブビットストリームを再アセンブルすることから得られるAVCビデオストリームに関する情報を提供し、関連するビデオサブビットストリームのスケーラビリティおよび再アセンブリに関する情報を提供する。Rec.ITU−T H.264|ISO/IEC14496−10の付属書類Gにおいて定義されている1つまたは複数のプロファイルに準拠するAVCビデオストリームのビデオサブビットストリームのいずれかに関連付けられた、1つのSVC拡張記述子が存在する場合がある。表2−96は、SVC拡張記述子のシンタックスを記載する。表2−96に続く段落は、SVC拡張記述子のフィールドのセマンティクスを記載する。
[0104]width−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのピクセル単位での最大画像幅解像度を示す。
[0105]height−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのピクセル単位での最大画像高さ解像度を示す。
[0106]frame_rate−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのフレーム/256秒単位での最大フレームレートを示す。
[0107]average_bitrate−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのキロビット毎秒単位での平均ビットレートを示す。
[0108]maximum_bitrate−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのキロビット毎秒単位での最大ビットレートを示す。
[0109]dependency_id−この3ビットフィールドは、ビデオサブビットストリームに関連付けられたdependency_idの値を示す。
[0110]quality_id_start−この4ビットフィールドは、関連するビデオサブビットストリームに含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のquality_idの最小値を示す。quality_idは、NALユニット用の品質識別子を指定する。
[0111]quality_id_end−この4ビットフィールドは、関連するビデオサブビットストリームに含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のquality_idの最大値を示す。
[0112]temporal_id_start−この3ビットフィールドは、関連するビデオサブビットストリームに含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のtemporal_idの最小値を示す。
[0113]temporal_id_end−この3ビットフィールドは、関連するビデオサブビットストリームに含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のtemporal_idの最大値を示す。
[0114]no_sei_nal_unit_present−この1ビットフラグは、「1」に設定されると、SEI NALユニットが関連するビデオサブビットストリーム内に存在しないことを示す。no_sei_nal_unit_presentフラグが、すべてのSVCビデオサブビットストリームに対して「1」に設定され、SVCのAVCビデオサブビットストリームに対して「1」に設定されていないか、または存在しない場合、任意のSEI NALユニットは、存在する場合、SVCのAVCビデオサブビットストリームに含まれる。すべてのビデオサブビットストリームについてSVC拡張記述子がない場合、SEI NALユニットは、SVCビデオサブビットストリームのいずれかのSVC依存性表現内に存在する場合があり、アクセスユニットの再アセンブリングの前に、Rec.ITU−T H.264|ISO/IEC14496−10において定義されているように、アクセスユニット内でNALユニットの順序に並べ替えることを必要とする場合がある。
[0115]Rec.ITU−T H.264|ISO/IEC14496−10の付属書類Hにおいて定義されている1つまたは複数のプロファイルに準拠するAVCビデオストリームのMVCビデオサブビットストリームの場合、MVC拡張記述子は、(最大)関連するMVCビデオサブビットストリームを再アセンブルすることから得られるAVCビデオストリームに関する情報を提供し、含まれているMVCビデオサブビットストリームに関する情報と関連するMVCビデオサブビットストリームの再アセンブリについての情報とを提供する。Rec.ITU−T H.264|ISO/IEC14496−10の付属書類Hにおいて定義されている1つまたは複数のプロファイルに準拠するAVCビデオストリームの(stream_typeが0x20に等しい)MVCビデオサブビットストリームのいずれかに関連付けられた1つのMVC拡張記述子が存在する場合がある。MVCビデオサブビットストリームがMVCベースビューサブビットストリームであるとき、MVC拡張記述子は、0x1Bに等しいstream_typeについて、関連するPMTまたはPSM内に存在しなければならない。表2−97は、MVC拡張記述子のシンタックスを記載する。表2−97に続く段落は、MVC拡張記述子の特定のフィールドのセマンティクスを記載する。
[0116]average_bitrate−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのキロビット毎秒単位での平均ビットレートを示す。0に設定されると、平均ビットレートは示されない。
[0117]maximum_bitrate−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのキロビット毎秒単位での最大ビットレートを示す。0に設定されると、最大ビットレートは示されない。
[0118]view_order_index_min−この10ビットフィールドは、関連するMVCビデオサブビットストリームに含まれているすべてのNALユニットのビュー順序インデックスの最小値を示す。
[0119]view_order_index_max−この10ビットフィールドは、関連するMVCビデオサブビットストリームに含まれているすべてのNALユニットのビュー順序インデックスの最大値を示す。
[0120]temporal_id_start−この3ビットフィールドは、関連するMVCビデオサブビットストリームに含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のtemporal_idの最小値を示す。
[0121]temporal_id_end−この3ビットフィールドは、関連するMVCビデオサブビットストリームに含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のtemporal_idの最大値を示す。
[0122]no_sei_nal_unit_present−この1ビットフラグは、「1」に設定されると、SEI NALユニットが関連するビデオサブビットストリーム内に存在しないことを示す。no_sei_nal_unit_presentフラグが、すべてのMVCビデオサブビットストリームに対して「1」に設定され、MVCのAVCビデオサブビットストリームに対して「1」に設定されていないか、または存在しない場合、任意のSEI NALユニットは、存在する場合、MVCのAVCビデオサブビットストリームに含まれる。すべてのMVCビデオサブビットストリームについてMVC拡張記述子がない場合、SEI NALユニットは、MVCビデオサブビットストリームのいずれかのMVCビュー成分サブセット内に存在する場合があり、アクセスユニットの再アセンブリングの前に、Rec.ITU−T H.264|ISO/IEC14496−10において定義されているように、アクセスユニット内でNALユニットの順序に並べ替えることを必要とする場合がある。
[0123]no_prefix_nal_unit_present−この1ビットフラグは、「1」に設定されると、プレフィックスNALユニットがMVCのAVCビデオサブビットストリームまたはMVCビデオサブビットストリームのいずれかの中に存在しないことを示す。このビットが「0」に設定されると、プレフィックスNALユニットがMVCのAVCビデオサブビットストリームの中にのみ存在することを示す。
[0124]MVCオペレーションポイント記述子は、1つまたは複数のオペレーションポイントについてのプロファイルとレベルの情報とを示す。
[0125]1つまたは複数のオペレーションポイントの各々は、1つまたは複数のMVCビデオサブビットストリームのセットによって構成される。存在する場合、MVCオペレーションポイント記述子は、program_map_section内のprogram_info_lengthフィールドの直後のデータ要素のグループに含まれることになる。MVCオペレーションポイント記述子がプログラム記述内に存在する場合、同じプログラム内に存在するMVCビデオサブビットストリームごとに少なくとも1つの階層記述子が存在しなければならない。様々なプロファイルを示すために、プロファイル当たり1つのMVCオペレーションポイント記述子が必要とされる。表2−100は、MVCオペレーションポイント記述子のシンタックスを規定する。表2−100に続く段落は、MVCオペレーションポイント記述子のフィールドのセマンティクスを記載する。
[0126]profile_idc−この8ビットフィールドは、Rec.ITU−T H.264|ISO/IEC14496−10において定義されているように、MVCビットストリーム用のこの記述子内で記述されるすべてのオペレーションポイントのプロファイルを示す。
[0127]constraint_set0_flag、constraint_set1_flag、constraint_set2_flag、constraint_set3_flag、constraint_set4_flag、constraint_set5_flag−これらのフィールドは、Rec.ITU−T H.264|ISO/IEC14496−10において定義されている、これらのフィールドについてのセマンティクスに従ってコーディングされることになる。
[0128]AVC_compatible_flags−AVC_compatible_flagsのセマンティクスは、Rec.ITU−T H.264|ISO/IEC14496−10において定義されているように、シーケンスパラメータセット内のconstraint_set2フラグとlevel_idcフィールドとの間の2ビットに対して定義されるフィールドのセマンティクスに正確に等しい。
[0129]level_count−この8ビットフィールドは、オペレーションポイントが記述されるレベルの数を示す。
[0130]level_idc−この8ビットフィールドは、Rec.ITU−T H.264|ISO/IEC14496−10において定義されているように、データ要素の以下のグループによって記述されるオペレーションポイントについてのMVCビットストリームのレベルを示す。
[0131]operation_points_count−この8ビットフィールドは、データ要素の以下のグループに含まれるリストによって記述されるオペレーションポイントの数を示す。
[0132]applicable_temporal_id−この3ビットフィールドは、再アセンブルされたAVCビデオストリーム内のVCL NALユニットのtemporal_idの最高値を示す。
[0133]num_target_output_views−この8ビットフィールドは、関連するオペレーションポイントについての出力の対象とされるビューの数の値を示す。
[0134]ES_count−この8ビットフィールドは、データ要素の以下のグループに含まれるES_reference値の数を示す。データ要素の以下のグループ内で示されるエレメンタリストリームは、MVCビデオビットストリームのオペレーションポイントを一緒に形成する。値0xffは予約済みである。
[0135]ES_reference−この6ビットフィールドは、ビデオサブビットストリームを識別する階層記述子内に存在する階層レイヤインデックス値を示す。単一のオペレーションポイント、たとえば、MVCビデオビットストリーム全体についてのプロファイルおよびレベルは、AVCビデオ記述子を使用してシグナリングされ得る。その上、MVCにより、様々なプロファイルおよび/またはレベルを必要とする可能性がある様々なビューサブセットを復号することが可能になる。MVCオペレーションポイント記述子の仕様は、複数のオペレーションポイントについての様々なプロファイルおよびレベルの指示をサポートする。
[0136]HEVCビデオストリームの場合、HEVCビデオ記述子は、そのHEVCビデオストリームの、プロファイルおよびレベルのパラメータなどのコーディングパラメータを識別するための基本情報を提供する。HEVC時間ビデオサブビットストリームまたはHEVC時間ビデオサブセットの場合、HEVCビデオ記述子は、それが適用されるエレメンタリストリームに含まれている、関連するHEVC最高時間サブレイヤ表現などの情報を提供する。Rec.ITU−T H.265|ISO/IEC23008−2において規定されているように、0に等しいTemporalIdに関連付けられた時間サブレイヤのすべてのVCL NALユニットと関連する非VCL NALユニットとを含み、Rec.ITU−T H.265|ISO/IEC23008−2において規定されているように、1から、アクティブなシーケンスパラメータセットに含まれるsps_max_sub_layers_minus1に等しいか、またはそれより小さい値までの、連続範囲のTemporalIdに関連付けられたすべての時間サブレイヤのすべてのVCL NALユニットと関連する非VCL NALユニットとをさらに含む場合がある、HEVC時間ビデオサブビットストリーム。HEVC時間ビデオサブセットは、1つまたは複数の時間サブレイヤのすべてのVCL NALユニットと関連する非VCL NALユニットとを含んでおり、対応するHEVC時間ビデオサブビットストリーム内に存在しない各時間サブレイヤ、および各時間サブレイヤに関連付けられたTemporalIdは、連続範囲の値を形成する。
[0137]下記の表X−1は、HEVCビデオ記述子のシンタックスを示す。表X−1に続く段落は、HEVCビデオ記述子内のフィールドのセマンティック定義を提供する。
[0138]profile_space、tier_flag、profile_idc、profile_compatibility_indication、progressive_source_flag、interlaced_source_flag、non_packed_constraint_flag、frame_only_constraint_flag、reserved_zero_44bits、level_idc−HEVCビデオ記述子が、HEVCビデオストリームまたはHEVC完全時間表現に適用されるとき、これらのフィールドは、対応するHEVCビデオストリームまたはHEVC完全時間表現について、それぞれ、general_profile_space、general_tier_flag、general_profile_idc、general_profile_compatibility_flag[i]、general_progressive_source_flag、general_interlaced_source_flag、general_non_packed_constraint_flag、general_frame_only_constraint_flag、general_reserved_zero_44bits、general_level_idcについて、Rec.ITU−T H.265|ISO/IEC23008−2において定義されているセマンティクスに従ってコーディングされなければならず、HEVCビデオ記述子が関連付けられるHEVCビデオストリームまたはHEVC完全時間表現全体は、これらのフィールドによってシグナリングされる情報に準拠しなければならない。
[0139]HEVCビデオ記述子が、その対応するHEVC最高時間サブレイヤ表現がHEVC完全時間表現(すなわち、Rec.ITU−T H.265|ISO/IEC23008−2において規定されているように、アクティブなシーケンスパラメータセットに含まれるsps_max_sub_layers_minus1+1に等しいTemporalIdを有する時間サブレイヤまでのすべての時間サブレイヤを含んでいる、Rec.ITU−T H.265|ISO/IEC23008−2において定義されているサブレイヤ表現)ではない、HEVC時間ビデオサブビットストリームまたはHEVC時間ビデオサブセットに適用されるとき、profile_space、tier_flag、profile_idc、profile_compatibility_indication、progressive_source_flag、interlaced_source_flag、non_packed_constraint_flag、frame_only_constraint_flag、reserved_zero_44bits、level_idcは、対応するHEVC最高時間サブレイヤ表現について、それぞれ、sub_layer_profile_space、sub_layer_tier_flag、sub_layer_profile_idc、sub_layer_profile_compatibility_flag[i]、sub_layer_progressive_source_flag、sub_layer_interlaced_source_flag、sub_layer_non_packed_constraint_flag、sub_layer_frame_only_constraint_flag、sub_layer_reserved_zero_44bits、sub_layer_level_idcについて、Rec.ITU−T H.265|ISO/IEC23008−2において定義されているセマンティクスに従ってコーディングされなければならず、HEVCビデオ記述子が関連付けられるHEVC最高時間サブレイヤ表現全体は、これらのフィールドによってシグナリングされる情報に準拠しなければならない。HEVC完全時間表現は、Rec.ITU−T H.265|ISO/IEC23008−2において規定されているように、アクティブなシーケンスパラメータセットに含まれるsps_max_sub_layers_minus1+1に等しいTemporalIdを有する時間サブレイヤまでのすべての時間サブレイヤを含んでいる、Rec.ITU−T H.265|ISO/IEC23008−2において定義されているサブレイヤ表現である。HEVC最高時間サブレイヤ表現は、Rec.ITU−T H.265|ISO/IEC23008−2において定義されているように、関連するHEVC時間ビデオサブビットストリームまたはHEVC時間ビデオサブセット内の、TemporalIdの最高値を有する時間サブレイヤのサブレイヤ表現である。
注X2−HEVCビデオストリーム内の1つまたは複数のシーケンスにおいて、レベルは、HEVCビデオ記述子内でシグナリングされるレベルよりも低くなり得るし、一方、HEVCビデオ記述子内でシグナリングされるプロファイルのサブセットであるプロファイルも生じる場合がある。しかしながら、HEVCビデオストリーム全体において、存在する場合、HEVCビデオ記述子内でシグナリングされるプロファイルに含まれる、ビットストリームシンタックス全体のサブセットのみが使用されることになる。HEVCビデオストリーム内のシーケンスパラメータセットが異なるプロファイルをシグナリングし、追加の制約がシグナリングされない場合、ストリームは、ストリーム全体が、もしあれば、どのプロファイルに準拠するかを決定する審査を必要とする場合がある。HEVCビデオ記述子が、単一のプロファイルに準拠しないHEVCビデオストリームに関連付けられるべきである場合、HEVCビデオストリームは、2つ以上のサブストリームに区分化されるべきであり、その結果、HEVCビデオ記述子は、そのようなサブストリームごとに単一のプロファイルをシグナリングすることができる。
[0140]temporal_layer_subset_flag−この1ビットフラグは、「1」に設定されると、時間レイヤのサブセットを記述するシンタックス要素がこの記述子に含まれることを示す。このフィールドは、HEVC時間ビデオサブセットについて、およびHEVC時間ビデオサブビットストリームについて、1に設定されなければならない。「0」に設定されると、シンタックス要素temporal_id_minおよびtemporal_id_maxは、この記述子に含まれない。
[0141]HEVC_still_present_flag−この1ビットフィールドは、「1」に設定されると、HEVCビデオストリームまたはHEVC最高時間サブレイヤ表現がHEVC静止ピクチャを含む場合があることを示す。「0」に設定されると、関連するHEVCビデオストリームはHEVC静止ピクチャを含んではならない。
注X3−Rec.ITU−T H.265|ISO/IEC23008−2によれば、IDRピクチャが0に等しいTemporalId値に常に関連付けられ、その結果、HEVCビデオ記述子がHEVC時間ビデオサブセットに適用される場合、HEVC静止ピクチャは、関連するHEVC時間ビデオサブビットストリーム内にのみ存在することができる。
[0142]HEVC_24_hour_picture_present_flag−この1ビットフラグは、「1」に設定されると、関連するHEVCビデオストリームまたはHEVC最高時間サブレイヤ表現が、HEVC24時間ピクチャを含む場合があることを示す。HEVC24時間ピクチャの定義については、Information Technology−Generic Coding of Moving Pictures and Associated Audio Information:Systems、Amendment 3、Transport of HEVC video over MPEG−2 systemsの2.1.97を参照。このフラグが「0」に設定される場合、関連するHEVCビデオストリームは、いかなるHEVC24時間ピクチャも含んではならない。
[0143]temporal_id_min−この3ビットフィールドは、Rec.ITU−T H.265|ISO/IEC23008−2において定義されているように、関連するエレメンタリストリーム内のすべてのHEVCアクセスユニットのTemporalIdの最小値を示す。
[0144]temporal_id_max−この3ビットフィールドは、Rec.ITU−T H.265|ISO/IEC23008−2において定義されているように、関連するエレメンタリストリーム内のすべてのHEVCアクセスユニットのTemporalIdの最大値を示す。
[0145]Chenら、「Carriage of HEVC extension streams with MPEG−2 Systems」、MPEG入力文書m31430、第106回MPEG会合、2013年10月、ジュネーブ、スイス、MPEG入力文書m31430(本明細書では「MPEG入力文書m31430」)は、MPEG−2システムによるHEVC拡張ストリームの搬送の基本設計を提案している。具体的には、MPEG入力文書m31430は、オペレーションポイントを形成するためにサブビットストリームが一緒にアセンブルされることを提案している。サブビットストリームのアセンブリングは一般的であり、SHVC、MV−HEVC、またはさらに3D−HEVCなどの、任意のHEVCマルチレイヤ拡張規格に役立つ。
[0146]MPEG入力文書m31430のいくつかの基本設計原理は、以下のように要約される。第1に、Grunebergら、「Text of ISO/IEC13818−1:2013/Final Draft Amendment 3−Transport of HEVC video over MPEG−2 Systems」、ISO/IEC JTC1/SC29/WG11 MPEG105/N13656、2013年7月、ウィーン、オーストリア(本明細書では「n13656」または「FDAM3」)における階層記述子が、時間サブレイヤの階層を形成するために使用される。同様に、複数のレイヤが関連するとき、階層記述子は時間スケーラビリティのためのみに使用される。
[0147]第2の設計原理は、MPEG入力文書m31430において、レイヤ(たとえば、ビュー、ベースレイヤ、エンハンスメントレイヤ)の階層を形成するために、新しい記述子、すなわち階層拡張記述子の導入を備える。詳細には、階層拡張記述子は、階層的にコーディングされたビデオ、オーディオ、およびプライベートストリームの構成要素を含むプログラム要素を識別する情報を提供する。MPEG入力文書m31430は、各エレメンタリストリームが2つ以上のレイヤを含んでいないことを仮定する。したがって、階層拡張記述子は、1つの一意のレイヤに対応するエレメンタリストリームのみに関係する。階層拡張記述子のシンタックスおよびセマンティクスは、文書m31430において提示されているように、下記に転載される。
2.6.98 階層拡張記述子内のフィールドのセマンティック定義
階層拡張記述子が存在するとき、階層拡張記述子は、様々なエレメンタリストリーム内に存在するレイヤの依存性を指定するために使用される。しかしながら、時間サブレイヤの集合は、ISO/IEC13818−1の改定3において規定されているように、階層記述子によって実現される。
extension_dimension_bits−0に等しいnuh_layer_idを有するレイヤのプログラム要素から得られるベースレイヤからの関連するプログラム要素の可能なエンハンスメントを示す16ビットフィールド。
エンハンスメント次元へのビットの割当ては、以下の通りである。
1に等しいi番目のビットは、対応するエンハンスメント次元が存在することを示す。
hierarchy_layer_index−hierarchy_layer_indexは、コーディングレイヤ階層のテーブルにおいて関連するプログラム要素の一意のインデックスを定義する6ビットフィールドである。インデックスは、単一のプログラム定義内で一意でなければならない。Rec.ITU−T H.265|ISO/IEC23008−2の付属書類GまたはHにおいて定義されている1つまたは複数のプロファイルに準拠するHEVCビデオストリームのビデオサブビットストリームの場合、これは、同じアクセスユニットのビデオサブビットストリームの関連する依存レイヤが、hierarchy_layer_indexの昇順で再アセンブルされる場合にビットストリーム順序が正しくなるように割り当てられる、プログラム要素インデックスである。
tref_present_flag−「0」に設定されると、TREFフィールドが関連するエレメンタリストリーム内のPESパケットヘッダ内に存在できることを示す、1ビットフラグ。このフラグ用の「1」の値は予約済みである。
nuh_layer_id−6ビットフィールドは、このhierarchy_extension_descriptor()に関連付けられたエレメンタリストリーム内のNALユニットの最高のnuh_layer_idを指定する。
temporal_id−3ビットフィールドは、このhierarchy_extension_descriptor()に関連付けられたエレメンタリストリーム内のNALユニットの最高のTemporalIdを指定する。
num_embedded_layers−このhierarchy_extension_descriptor()に関連付けられたエレメンタリストリームの復号の前に、復号順序でアクセスされ存在する必要がある直接依存プログラム要素の数を指定する6ビットフィールド。
hierarchy_ext_embedded_layer_index−hierarchy_ext_embedded_layer_indexは、このhierarchy_extension_descriptorに関連付けられたエレメンタリストリームの復号の前に、復号順序でアクセスされ存在する必要があるプログラム要素のhierarchy_layer_indexを定義する6ビットフィールドである。hierarchy_type値が15である場合、このフィールドは未定義になる。
hierarchy_channel−hierarchy_channelは、送信チャネルの順序セットにおいて関連するプログラム要素のための所期のチャネル番号を示す6ビットフィールドである。最もロバストな送信チャネルは、全体的な送信階層定義に関して、このフィールドの最低値によって定義される。
注−所与のhierarchy_channelは、いくつかのプログラム要素に同時に割り当てられ得る。
[0148]第3の設計原理は、階層拡張記述子が、MV−HEVC/SHVCコーディング規格のVPS拡張と同様のスケーラビリティタイプをシグナリングするための一般的な設計を含んでいることである。加えて、複数の依存エレメンタリストリームは、現在のエレメンタリストリームのためにシグナリングされ得る。
[0149]第4の設計原理は、HEVC拡張記述子の提案である。HEVC拡張記述子は、FDAM3におけるように、HEVCビデオ記述子の一部として含まれ得る。HEVC拡張記述子はオペレーションポイントをシグナリングし、オペレーションポイントの各々は、MV−HEVC/SHVCにおける出力レイヤセットに対応する。出力レイヤセットは、出力されるべきビットストリームのレイヤのセットである。ビットストリームは、ビデオデコーダが出力しないが、出力レイヤセットを復号するためにビデオデコーダによって使用される参照レイヤを含む場合もある。オペレーションポイントの構成は、出力レイヤセットに属するレイヤを指定することにより、階層拡張記述子に依存する。プロファイル、ティア、およびレベル、ならびに、ビットレートおよびフレームレートを含む、各オペレーションポイントの特性は、この記述子内でシグナリングされる。
[0150]一般に、「プロファイル」は、ビットストリームシンタックスのサブセットを指す場合がある。「ティア」および「レベル」は、各プロファイル内で指定され得る。ティアのレベルは、ビットストリーム内のシンタックス要素の値に課される制約の指定されたセットであり得る。これらの制約は、値に関する単純な制限であり得る。代替として、制約は、値の演算の組合せ(たとえば、ピクチャの幅×ピクチャの高さ×毎秒復号されるピクチャの数)に関する制約の形態をとる場合がある。通常、下位ティアに指定されたレベルは、上位ティアにしてされたレベルよりも制約される。
[0151]m31430内に記述されたHEVC拡張記述子のシンタックスが、下記に転載される。表Xに続く段落は、HEVC拡張記述子のセマンティクスを提供する。
[0152]num_operation_points−8ビットフィールドは、この記述子内の指定されたオペレーションポイントの数を指定する。
[0153]profile_space−2ビットフィールドは、両端値を含む0から31までの範囲内のiのすべての値について、profile_idcの解釈についてのコンテキストを指定する。profile_spaceは、Rec.ITU−T H.265|ISO/IEC23008−2の付属書類Aまたは小項G.11または小項H.11において規定されている値以外の値を割り当てられてはならない。profile_idcの他の値は、ITU−T|ISO/IECによる将来の使用のために予約済みである。
[0154]tier_flag−1ビットフィールドは、Rec.ITU−T H.265|ISO/IEC23008−2の付属書類Aまたは小項G.11または小項H.11において規定されているlevel_idcの解釈についてのティアコンテキストを指定する。
[0155]profile_idc−profile_spaceが0に等しいとき、Rec.ITU−T H.265|ISO/IEC23008−2の付属書類Aにおいて規定されているように、CVSが準拠するプロファイルを示す、5ビットフィールド。profile_idcは、Rec.ITU−T H.265|ISO/IEC23008−2の付属書類AまたはG.11またはH.11において規定されている値以外の値を割り当てられてはならない。profile_idcの他の値は、ITU−T|ISO/IECによる将来の使用のために予約済みである。
[0156]profile_compatibility_indication、progressive_source_flag、interlaced_source_flag、non_packed_constraint_flag、frame_only_constraint_flag、reserved_zero_44bits、level_idc−HEVC拡張ビデオ記述子がHEVC拡張ビデオストリームに適用されるとき、これらのフィールドは、対応するHEVCビデオストリームまたはHEVC拡張ビデオストリームまたはHEVC完全時間表現について、それぞれ、general_profile_space、general_tier_flag、general_profile_idc、general_profile_compatibility_flag[i]、general_progressive_source_flag、general_interlaced_source_flag、general_non_packed_constraint_flag、general_frame_only_constraint_flag、general_reserved_zero_44bits、general_level_idcについて、Rec.ITU−T H.265|ISO/IEC23008−2において定義されているセマンティクスに従ってコーディングされなければならず、HEVCビデオ記述子が関連付けられるHEVCビデオストリームまたはHEVC完全時間表現全体は、これらのフィールドによってシグナリングされる情報に準拠しなければならない。
[0157]level_idc−8ビットフィールドは、Rec.ITU−T H.265|ISO/IEC23008−2の付属書類A、G.11、またはH.11において規定されているように、CVSが準拠するレベルを示す。level_idcは、Rec.ITU−T H.265|ISO/IEC23008−2の付属書類A、G.11、またはH.11において規定されている値以外のlevel_idcの値を割り当てられてはならない。level_idcの他の値は、ITU−T|ISO/IECによる将来の使用のために予約済みである。
[0158]max_temporal_id−3ビットフィールドは、i番目のオペレーションポイント内のレイヤのNALユニットの最高のTemporalIdを指定する。
[0159]reserved_zero_5bits−値「0」の予約された5ビットフィールド。
[0160]hevc_output_layer_flag−1ビットフィールドは、値「1」が割り当てられると、iに等しいnuh_layer_idを有するレイヤが出力レイヤセットに属し、i番目のオペレーションポイントが復号されるときの出力に必要とされることを示す。値「0」が割り当てられると、iに等しいnuh_layer_idを有するレイヤは出力レイヤセットに属さない。i番目のhevc_output_layer_flagが「1」に等しいとき、i番目のhevc_layer_present_flagの値は「1」に等しくなければならない。
[0161]average_bitrate−16ビットフィールドは、i番目のオペレーションポイントに対応するHEVC拡張ビデオストリームのキロビット毎秒単位での平均ビットレートを示す。
[0162]maximum_bitrate−16ビットフィールドは、i番目のオペレーションポイントに対応するHEVC拡張ビデオストリームのキロビット毎秒単位での最大ビットレートを示す。
[0163]frame_rate−16ビットフィールドは、i番目のオペレーションポイントに対応するHEVC拡張ビデオストリームのフレーム/256秒単位での最大フレームレートを示す。
[0164]MPEG入力文書m31430では、MPEG−2のトランスポートストリームまたはプログラムストリームにおいて定義されている、複数のエレメンタリストリームからのピクチャのバッファ管理は提供されていない。たとえば、MPEG入力文書m31430は、マルチレイヤHEVCのための(たとえば、SHVC、MV−HEVC、または3D−HEVCのための)トランスポートストリームシステムターゲットデコーダ(T−STD)モデルまたはプログラムストリームシステムターゲットデコーダモデルを記述していない。結果として、既存のバッファリングモデルは、マルチレイヤHEVCと互換性がない場合がある。
[0165]本開示は、MPEG入力文書m31430に基づいて、HEVC拡張ビットストリームの搬送のための技法を提供する。本開示の技法は、別々に、または互いに連携して使用される場合がある。
[0166]本開示の第1の技法によれば、(トランスポートストリームシステムターゲットデコーダ(T−STD)モデルとプログラムストリームシステムターゲットデコーダ(P−STD)モデルとを含む)SHVC、MV−HEVC、および3D−HEVCのバッファモデルは、同じレイヤベースモデルにおいて統合される。言い換えれば、1つのT−STDモデルは、SHVC、MV−HEVC、および3D−HEVCに適用することができ、1つのP−STDモデルは、SHVC、MV−HEVC、および3D−HEVCに適用することができる。1つの代替では、そのようなモデルは、H.264用のMVCに対して行われるT−STDモデルおよびP−STDモデルと同様の方法で設計され得る。
[0167]このようにして、ビデオデコーダ30は、バッファモデル(たとえば、P−STDモデルまたはT−STDモデル)において、データストリーム(すなわち、トランスポートストリームまたはプログラムストリーム)の複数のエレメンタリストリームからのアクセスユニットをアセンブルすることができる。ビデオデコーダ30は、エレメンタリストリームがSHVC、MV−HEVC、または3D−HEVCのビットストリームを含むかどうかにかかわらず、同じバッファモデルを使用する。その後、ビデオデコーダ30はアクセスユニットを復号することができる。言い換えれば、ビデオデコーダ30はアクセスユニットのコード化ピクチャを復号することができる。
[0168]上記に示されたように、トランスポートストリームおよびプログラムストリームは、それぞれの一連のPESパケットを備える。トランスポートストリームまたはプログラムストリームの各それぞれのPESパケットは、複数のエレメンタリストリーム内のエレメンタリストリームに関連付けられる。したがって、トランスポートストリームまたはプログラムストリームは、複数のエレメンタリストリームを備えると言われる場合がある。エレメンタリストリームには、ビデオストリーム、オーディオストリーム、およびプライベートストリームが含まれ得る。本開示の1つまたは複数の技法によれば、ビットストリームの各それぞれのレイヤの各それぞれの時間サブレイヤは、異なるエレメンタリストリームに対応する場合がある。これにより、媒体認識ネットワーク要素(MANE)または他のデバイスが、PESパケットのペイロード内のHEVCデータを構文解析または解釈することなく、特定のレイヤおよび特定のサブレイヤに関連付けられたPESパケットを選択的に転送することが可能になる。むしろ、MANEまたは他のデバイスは、PESパケットヘッダ内のデータ、およびトランスポートストリームまたはプログラムストリームのプログラム固有情報内の様々な記述子(たとえば、HEVC階層記述子、HEVC拡張記述子など)の中のデータに基づいて、特定のPESパケットを転送するべきかどうかを決定することができる場合がある。
[0169]ターゲットデコーダ(たとえば、ビデオデコーダ30)は、アクセスユニットのピクチャを復号するより前に、ビットストリームのアクセスユニットを再アセンブルする必要があり得る。言い換えれば、ターゲットデコーダは、アクセスユニットのピクチャを復号するために必要とされるデータが、アクセスユニットに対する復号時に利用可能であることを保証する必要があり得る。トランスポートストリームは、トランスポートパケット内に誤り(たとえば、紛失PESパケット、ジッタ、破損など)が存在する場合がある、潜在的に誤りを起こしやすいチャネル(たとえば、インターネット)上のプログラムの配信を目的とする。したがって、ターゲットデコーダがトランスポートストリームからのビデオを復号しているとき、ターゲットデコーダは、アクセスユニットのピクチャを復号するために必要とされるデータが直ちに利用可能であると見なすことができない。代わりに、ターゲットデコーダは、トランスポートストリームのプログラムごとにバッファリングモデルを実装することができる。トランスポートストリーム用のバッファリングモデルは、プログラムに関連付けられたそれぞれのエレメンタリビデオストリーム(すなわち、ビデオストリームを含むエレメンタリストリーム)ごとに、バッファのそれぞれのセットを含む場合がある。
[0170]本開示の第1の技法の一例によれば、エレメンタリビデオストリームn用のバッファのセットは、エレメンタリビデオストリーム用のトランスポートバッファTBnと、エレメンタリビデオストリーム用の多重化バッファMBnと、エレメンタリビデオストリーム用のHEVCレイヤピクチャサブセットバッファVSBnとを含む場合がある。ターゲットデコーダがトランスポートストリームのPESパケットを受信するとき、ターゲットデコーダは、様々なエレメンタリストリームに属するトランスポートストリームのPESパケットが、様々なトランスポートバッファに記憶されるように、トランスポートストリームを逆多重化する。言い換えれば、プログラムに関連付けられた各それぞれのエレメンタリストリームの場合、ビデオデコーダは、それぞれのエレメンタリストリームに属するトランスポートストリームのそれぞれのPESパケットごとに、それぞれのエレメンタリストリーム用のバッファ(たとえば、トランスポートバッファ)にそれぞれのPESパケットを記憶することができる。したがって、エレメンタリストリームn用のトランスポートバッファTBnは、エレメンタリビデオストリームnに属するトランスポートパケットを受信する。
[0171]ターゲットデコーダは、レートRxnでトランスポートバッファからトランスポートパケットを取り出す。トランスポートバッファTBn内にデータが存在しない場合、レートRxnは0である。そうではなく、トランスポートバッファTBn内にデータが存在する場合、レートRxnはビットレートに等しい。本開示内の他の場所で記載されるように、ターゲットデコーダは、第1の係数(すなわち、CpbBrNalFactor)、第2の係数(すなわち、CpbBrVclFactor)、および第3の係数(すなわち、BitRate[SchedSelIdx])に基づいて、ビットレートを決定することができる。第1、第2、および第3の係数は、Rec.ITU−T H.265|ISO/IEC23008−2において定義されている。
[0172]ターゲットデコーダが、エレメンタリストリームn用のトランスポートバッファTBnからトランスポートパケットを取り出すと、ターゲットデコーダは、そのトランスポートパケットをエレメンタリストリームn用の多重化バッファMBnに追加する。ターゲットデコーダは、1バイトずつ多重化バッファMBnからデータを取り出す。ターゲットデコーダが多重化バッファMBnから1バイトを取り出すと、ターゲットデコーダは、そのバイトがPESパケット(たとえば、トランスポートパケット)のヘッダバイトでない場合、エレメンタリストリームn用のHEVCレイヤピクチャサブセットバッファVSBnにそのバイトを挿入する。
[0173]したがって、プログラムに関連付けられたそれぞれのエレメンタリストリームごとに、ターゲットデコーダは、それぞれのエレメンタリストリーム用のトランスポートバッファからPESパケットを取り出すことができる。さらに、ターゲットデコーダは、それぞれのエレメンタリストリーム用のトランスポートバッファから取り出されたPESパケットを、それぞれのエレメンタリストリーム用の多重化バッファに記憶することができる。ターゲットデコーダは、それぞれのエレメンタリストリーム用の多重化バッファからバイトを取り出すことができる。さらに、ターゲットデコーダは、それぞれのエレメンタリストリーム用の多重化バッファから取り出されたバイトを、それぞれのエレメンタリストリーム用のHEVCレイヤピクチャサブセットバッファに記憶することができる。
[0174]このようにして、HEVCレイヤピクチャサブセットバッファVSBnは、トランスポートパケットのペイロードバイトを受け取る。HEVCレイヤピクチャサブセットバッファVSBnは、HEVCレイヤピクチャサブセット用のアセンブリポイントとして働くことができる。本開示で使用するHEVCレイヤピクチャサブセットは、レイヤ識別子セット(すなわち、レイヤ識別子値のセット)に関連付けられたアクセスユニットのHEVCレイヤピクチャのセットである。HEVCレイヤピクチャは、Rec.ITU−T H.265|ISO/IEC23008−2の付属書類Fにおいて定義されているコード化ピクチャであり、その制約が(下記に転載されている)N13656の節2.17.1において規定されている。
[0175]ターゲットデコーダは、アクセスユニットに対する復号時に、HEVCレイヤピクチャサブセットバッファVSBnからアクセスユニットに対応するデータを取り出す。たとえば、アクセスユニットAH(j)のピクチャを復号するために、ターゲットデコーダは、エレメンタリストリームn用のHEVCレイヤピクチャバッファVSBnから、復号時間tdn(jn)に対応するHEVCレイヤピクチャサブセットVSn(jn)を取り出すことができる。tdn(jn)は、エレメンタリストリームn用のHEVCレイヤピクチャサブセットVSn(jn)の、ターゲットデコーダにおいて秒単位で測定された復号時間を示す。jnは、HEVCレイヤピクチャサブセットVSn(jn)を定義するレイヤ識別子セットへのインデックスである。加えて、ターゲットデコーダは、エレメンタリストリームn+1〜n+m用のHEVCレイヤピクチャバッファVSBn+1〜VSBn+mから、HEVCレイヤピクチャサブセットVSn+1(jn+1)〜VSn+m(jn+m)を取り出し、HEVCレイヤピクチャサブセットVSn+1(jn+1)〜VSn+m(jn+m)用の復号時間(すなわち、tdn+1(jn+1)〜tdn+m(jn+m))はtdn(jn)に等しい。アクセスユニットは、VSBn〜VSBn+mから取り出されたHEVCレイヤサブセットの組合せであり得る。
[0176]このようにして、プログラムに関連付けられたそれぞれのエレメンタリストリームごとに、バッファモデルは、それぞれのエレメンタリストリーム用のバッファ(たとえば、HEVCレイヤピクチャバッファ)を備える。アクセスユニットは、それぞれのエレメンタリストリーム用のそれぞれのHEVCレイヤピクチャサブセットを備える。それぞれのHEVCレイヤピクチャサブセットは、それぞれのレイヤ識別子セットに関連付けられたアクセスユニットのHEVCレイヤピクチャを備える。HEVCレイヤピクチャの各々は、Rec.ITU−T H.265|ISO/IEC23008−2の付属書類Fにおいて定義されているコード化ピクチャである。プログラムに関連付けられたそれぞれのエレメンタリストリームごとに、ターゲットデコーダは、それぞれのエレメンタリストリーム用のバッファから、それぞれのエレメンタリストリーム用のそれぞれのHEVCレイヤピクチャサブセットを取り出すことができる。ターゲットデコーダは、アクセスユニットにそれぞれのHEVCレイヤピクチャサブセットを含めることができる。
[0177]ターゲットデコーダは、プログラムストリーム内のPESパケットがトランスポートストリームに関連する誤り(たとえば、ジッタ、損失など)なしに利用可能であると見なすことができるので、プログラムストリーム用のバッファリングモデル(すなわち、P−STDモデル)は、トランスポートストリーム用のバッファリングモデル(すなわち、T−STDモデル)よりも簡単であり得る。本開示の1つまたは複数の技法によれば、ビットストリームの各それぞれのレイヤの各それぞれの時間サブレイヤは、プログラムストリームの異なるエレメンタリストリームに対応する場合がある。さらに、P−STDモデルは、プログラムストリームのそれぞれのエレメンタリストリームごとに、HEVCレイヤピクチャサブセットバッファを含む場合がある。ターゲットデコーダがプログラムストリームのPESパケットを受信するとき、ターゲットデコーダは、様々なエレメンタリストリームに属するPESパケットが、様々なHEVCレイヤピクチャサブセットバッファに記憶されるように、プログラムストリームを逆多重化する。ターゲットデコーダは、トランスポートストリームに関して上述された方式と同じ方式で、HEVCレイヤピクチャサブセットバッファからアクセスユニットに対応するデータを取り出すことができる。
[0178]いくつかの例では、ターゲットデコーダは、受信されたトランスポートストリームまたはプログラムストリームのコンテンツに応じて、様々なバッファモデルを使用する。たとえば、プログラム内にHEVCレイヤのセットが存在することと、複数のエレメンタリストリーム内に、ITU−T Rec.H.265|ISO/IEC23008−2の付属書類Gまたは付属書類Hにおいて定義されている1つまたは複数のプロファイルに準拠するHEVC拡張ビデオストリームである、少なくとも1つのHEVC積層ビデオサブビットストリームが存在することとを決定することに応答して、ターゲットデコーダは、アクセスユニットをアセンブルする際に使用するために、本開示の第1の技法に関して記載されたバッファモデルを選択することができる。
[0179]本開示の第2の例示的な技法によれば、各HEVC積層ビデオストリームは、T−STDモデルおよび/またはP−STDモデルを有することができる。HEVC積層ビデオサブビットストリームは、1つまたは複数のHEVC積層ビデオサブストリームからアセンブルされる場合があり、HEVC拡張記述子内でオペレーションポイントとして表される。言い換えれば、HEVC積層ビデオストリームは、オペレーションポイントに対応し、HEVC積層ビデオサブビットストリームからアセンブルされる。HEVC積層ビデオサブビットストリームは、同じ値のnuh_layer_id(レイヤ識別子)を有するVCL NALユニットと、それらの関連する非VCL NALユニットとを含む、複数のHEVCビデオレイヤサブビットストリームを含んでいる。たとえば、HEVC積層ビデオサブビットストリームは、Rec.ITU−T H.265|ISO/IEC23008−2の付属書類Fまたは付属書類Gにおいて定義されている1つまたは複数のプロファイルに準拠する、HEVC拡張ビデオストリームのHEVCレイヤセットに属するnuh_layer_idを有するすべてのVCL NALユニット、および関連する非VCL NALユニットであるように定義される場合がある。T−STDおよびP−STDは、上述され、本開示内の他の場所で記載される方式で動作することができる。したがって、いくつかの例では、ビデオデコーダ30は、ビデオデータストリームのそれぞれのHEVC積層ビデオストリームごとにバッファモデルの別々のインスタンスを使用して、アクセスユニットをアセンブルすることができる。そのような例では、各それぞれのHEVC積層ビデオストリームは、複数のHEVCビデオレイヤサブビットストリームを備え、複数のHEVCビデオレイヤサブビットストリームの各それぞれのHEVCビデオレイヤサブビットストリームは、同じレイヤ識別子値を有するVCL NALユニットを備える。
[0180]前に示されたように、階層拡張記述子は、階層的にコーディングされたビデオ、オーディオ、およびプライベートストリームの構成要素を含むプログラム要素を識別する情報を提供する記述子である。言い換えれば、階層拡張記述子は、階層拡張記述子に対応するプログラム要素に関する情報を提供する。階層拡張記述子は、階層拡張記述子に関連付けられたエレメンタリストリームの復号の前に、復号順序でアクセスされ存在する必要がある直接依存プログラム要素ごとに、hierarchy_ext_embedded_layer_indexフィールドを含む場合がある。言い換えれば、階層拡張記述子は、複数のhierarchy_ext_embedded_layer_indexフィールドを含む場合がある。階層拡張記述子の各それぞれのhierarchy_ext_embedded_layer_indexフィールドは、対応するプログラム要素(すなわち、階層拡張記述子に対応するプログラム要素)用のそれぞれの直接依存プログラム要素を識別する。対応するプログラム要素用のそれぞれの直接依存プログラム要素は、ターゲットデコーダが対応するプログラム要素を復号することができる前に、ターゲットデコーダに利用可能になる必要があるプログラム要素である。たとえば、対応するプログラム要素は、非ベースレイヤ用のデータを含む場合があり、それぞれの直接依存プログラム要素は、ベースレイヤ用のデータを含む場合がある。それぞれのプログラム要素はそれぞれのレイヤに対応する場合があるので、階層拡張記述子の各それぞれのhierarchy_ext_embedded_layer_indexは、階層拡張記述子に対応するレイヤを復号するために必要とされるそれぞれの参照レイヤを識別することができる。このようにして、アクセスユニットをアセンブルするとき、ターゲットデコーダは、現在のオペレーションポイントの出力レイヤに対応する記述子内の1つまたは複数のフィールドに基づいて、現在のオペレーションポイントの出力レイヤを復号するために必要とされる参照レイヤを識別することができる。
[0181]本開示の第3の技法によれば、T−STDモデルまたはP−STDモデルにおいて複数のストリームからのアクセスユニット内のHEVCレイヤピクチャをアセンブルするとき、関連する階層拡張記述子内で示されたhierarchy_ext_embedded_layer_indexの値は、現在のオペレーションポイントの出力レイヤを復号するために必要とされる参照レイヤを識別するために使用される。たとえば、j番目のアクセスユニットAH(j)を再アセンブルするとき、ターゲットデコーダは、トランスポートストリームまたはプログラムストリーム内のプログラムのプログラム要素ごとに、HEVCレイヤピクチャサブセットバッファからHEVCレイヤピクチャサブセットを収集することができる。ターゲットデコーダは、以下が適用されるように、HEVCレイヤピクチャサブセットを収集する。
・値yはレイヤ識別子を示す。値yは0以上である。
・HEVCレイヤピクチャサブセットVSy+1(jy+1)は、レイヤy+1用のプログラム要素に対応する。y≧0なので、レイヤ識別子y+1を有するレイヤは非ベースレイヤである。
・tdy+1(jy+1)は、VSy+1(jy+1)用の復号タイムスタンプ(DTS)の値を表記する。
・階層拡張記述子は、レイヤy+1用のプログラム要素(すなわち、対応するプログラム要素)に対応する。
・階層拡張記述子は、0個以上のhierarchy_ext_embedded_layer_indexフィールドを含む。
・それぞれのhierarchy_ext_embedded_layer_indexフィールドごとに、
○それぞれのhierarchy_ext_embedded_layer_indexフィールドは、対応するプログラム要素用のそれぞれの直接依存プログラム要素を識別するそれぞれの値を有する。
○VSy(jy)は、それぞれの直接依存プログラム要素に対応するHEVCレイヤピクチャサブセットである。
○tdy(jy)はVSy(jy)用のDTS値である。
○tdy(jy)はtdy+1(jy+1)に等しい。
[0182]本開示の第4の技法によれば、現在のHEVC MPEG−2システムにおけるようなHEVCタイミングおよびHRD記述子は、オペレーションポイントごとに存在することができる。言い換えれば、それぞれのオペレーションポイントごとに、それぞれのHEVCタイミングおよびHRD記述子が存在することができる。HEVCタイミングおよびHRD記述子は、Rec.ITU−T H.265|ISO/IEC23008−2の付属書類Cにおいて定義されているように、それぞれ、関連するHEVCビデオストリームまたはそのHEVC最高時間サブレイヤ表現用の、タイミングおよびHRDのパラメータを提供する。HEVCタイミングおよびHRD記述子の例示的なシンタックスは、下記の節2.6.95において提供される。
[0183]本開示の第4の技法の一例では、HEVC_extension_descriptorにおいて、各オペレーションポイントのループ内に、HEVCタイミングおよびHRD記述子が存在することができる。上記に示されたように、HEVC拡張記述子は、ループ(すなわち、「for(i=0;i<num_operation_points;i++) {...}」を含み、ここでは、ループの各それぞれの繰返しは、それぞれのオペレーションポイント用の要素のシーケンス(たとえば、profile_space、tier_flag、profile_idcなど)に対応する。この例では、それぞれのオペレーションポイント用の要素は、HEVCタイミングとHRD記述子とをさらに含む。
[0184]本開示の第4の技法の別の例では、HEVCタイミングおよびHRD記述子は、復号されるべきレイヤの同じレイヤ識別子セットを共有するオペレーションポイント用に1度存在するだけである。別の例では、HEVCタイミングおよびHRD記述子は、すべての出力レイヤセットのすべてのオペレーションポイント用に1度存在するだけである。
[0185]本開示の第5の技法は、レイヤピクチャデリミタNALユニットを要する。レイヤピクチャデリミタNALユニットは、HEVC内のNALユニットヘッダと同じシンタックス構造を含む場合があり、以下のシンタックス要素、forbidden_zero_bitと、nal_unit_typeと、nuh_layer_idと、nuh_temporal_id_plus1とを有する場合がある。forbidden_zero_bitシンタックス要素は、常に0に等しい1ビットのシンタックス要素である。nal_unit_typeシンタックス要素は、NALユニットに含まれるRBSPデータ構造のタイプを指定する。nuh_layer_idシンタックス要素は、NALユニットが属するレイヤの識別子を指定する。様々な値を指定するnuh_layer_idシンタックス要素を有するNALユニットは、ビットストリームの様々なレイヤに属する。nuh_temporal_id_plus1シンタックス要素マイナス1は、NALユニット用の時間識別子を指定する。
[0186]本開示の第5の技法のいくつかの例によれば、レイヤピクチャデリミタNALユニットのnal_unit_typeシンタックス要素は、0x30(すなわち、48)に設定される。他の例では、レイヤピクチャデリミタNALユニットのnal_unit_typeシンタックス要素は、両端値を含む0x30〜0x3F(すなわち、両端値を含む48〜63)の範囲内の値を有する。HEVC仕様は、0x30〜0x3Fの範囲内の値を「未指定(unspecified)」としてマークする。
[0187]本開示の第5の技法のいくつかの例によれば、レイヤピクチャデリミタNALユニット内のnuh_layer_idおよびnuh_temporal_id_plus1のシンタックス要素は、レイヤピクチャデリミタNALユニットの直後にくるVCL NALユニットに関連付けられたピクチャのnuh_layer_idおよびnuh_temporal_id_plus1のシンタックス要素に等しくなるように設定される。0x26に等しいstream_typeを有する各エレメンタリストリーム(すなわち、ITU−T Rec.H.264|ISO/IEC23008の付属書類Gおよび付属書類Hにおいて定義されている1つまたは複数のプロファイルに準拠するHEVC拡張ビデオストリームを備えるエレメンタリストリーム)では、ちょうど1つのLPD_nal_unit(すなわち、レイヤプレゼンテーションデリミタNALユニット)は、LPD_nal_unitのそれらに等しいnuh_layer_idおよびnuh_temporal_id_plus1の値を有するすべてのNALユニットに先行することができる。他の例では、レイヤピクチャデリミタNALユニット内のnuh_layer_idおよびnuh_temporal_id_plus1のシンタックス要素の値は、0および0になるように固定される。さらに、いくつかの例では、レイヤピクチャデリミタNALユニット内のnuh_temporal_id_plus1シンタックス要素は、レイヤピクチャデリミタNALユニットがレイヤピクチャデリミタNALユニットであることを示すために、0になるように設定される。いくつかの例では、0x26に等しいstream_typeを有する各エレメンタリストリームでは、ちょうど1つのLPD_nal_unitは、LPD_nal_unitのそれに等しいnuh_layer_idの値を有するすべてのNALユニットに先行することができる。いくつかの例では、0x26に等しいstream_typeを有する各エレメンタリストリームでは、ちょうど1つのLPD_nal_unitは、その最小値がLPD_nal_unitのnuh_layer_idに等しいHEVCレイヤ識別子セットに属する値を有する、すべてのNALユニットに先行することができる。
[0188]この発明を実施するための形態の最後に、一例として、提案されるソリューションのワーキングドラフトテキストが本開示に記載される(「INFORMATION TECHNOLOGY−GENERIC CODING OF MOVING PICTURES AND ASSOCIATED AUDIO INFORMATION:SYSTEMS、AMENDMENT 3、Transport of HEVC video over MPEG−2 systems」と題する)。新しく追加されたテキストはボールドイタリック体で示される。完全に新しい小節は、小節の表題のみがボールドイタリック体で示される場合がある。仕様テキストの実装は、MV−HEVC、SHVC、または3D−HEVCなどのHEVC積層ビデオではなく、HEVCビデオの転送のみを含むMPEG出力文書N13656に基づく。以下のテキストは、図X−1と、図X−2と、図2−15と、図X−4とを参照する。図X−1は、本開示の図2として提示される。図2は、単層HEVC用の例示的なT−STDモデル拡張を示す概念図である。図X−2は、本開示の図3として提示される。図3は、本開示の1つまたは複数の技法による、HEVC時間ビデオサブセットの積層トランスポート用の例示的なT−STDモデル拡張を示す概念図である。図2−15は、本開示の図4として提示される。図4は、本開示の1つまたは複数の技法による、HEVC積層ビデオサブビットストリームを有するRec.ITU−T H.265|ISO/IEC23008−2ビデオ用の例示的なT−STDモデル拡張を示す概念図である。図X−4は、本開示の図5として提示される。したがって、図5は、本開示の1つまたは複数の技法による、HEVC積層ビデオサブビットストリームを有するRec.ITU−T H.265|ISO/IEC23008−2ビデオ用の例示的なP−STDモデル拡張を示す概念図である。
[0189]本開示に記載される技法は、ビデオエンコーダ20、ビデオデコーダ30、または、スプライシングエンジン、媒体認識ネットワーク要素(MANE)、ストリーミングサーバ、ルータ、およびコード化ビデオビットストリームを符号化、復号、アセンブル、構築、抽出、もしくは場合によっては処理する他のデバイスなどの、様々なビデオ処理デバイスのいずれかによって実施され得る。
[0190]図6は、MPEG−2システムによる、マルチビューHEVC(MV−HEVC)、スケーラブルHEVC(SHVC)、および3次元HEVC(3D−HEVC)の拡張ビットストリームを含む、HEVCマルチレイヤ拡張ビットストリームの搬送のための技法などの、本開示の様々な技法を実施するように構成され得る、例示的なビデオエンコーダ20を示すブロック図である。
[0191]本開示は、HEVCコーディング、より詳細には、MV−HEVC、SHVC、および3D−HEVCのコーディング拡張のコンテキストで、ビデオエンコーダ20を記載する。しかしながら、本開示の技法は、他のビデオコーディングの規格または方法に適用可能であり得る。したがって、図6は、説明のために提供されるものであり、本開示で広く例示され記載される技法を限定するものと見なされるべきではない。
[0192]図6の例では、ビデオエンコーダ20は、予測処理ユニット100と、ビデオデータメモリ101と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換処理ユニット110と、復元ユニット112と、フィルタユニット114と、復号ピクチャバッファ116と、エントロピー符号化ユニット118とを含む。予測処理ユニット100は、インター予測処理ユニット120と、イントラ予測処理ユニット126とを含む。インター予測処理ユニット120は、動き推定(ME)ユニット122と、動き補償(MC)ユニット124とを含む。
[0193]予測処理ユニット100の構成要素は、テクスチャ符号化と深度符号化の両方を実行するものとして記載される。いくつかの例では、テクスチャ符号化および深度符号化は、予測処理ユニット100の同じ構成要素、または予測処理ユニット100内の異なる構成要素によって実行される場合がある。たとえば、いくつかの実装形態では、別々のテクスチャエンコーダおよび深度エンコーダが提供される場合がある。また、複数のビューを符号化するために、たとえば、マルチビュープラス深度コーディングのために、複数のテクスチャエンコーダおよび深度エンコーダが提供される場合がある。ビデオエンコーダ20は、図6に示されているよりも、多いか、少ないか、または異なる機能構成要素を含む場合がある。
[0194]いくつかの例では、予測処理ユニット100は、MV−HEVC、SHVC、または3D−HEVCに実質的に従って、たとえば、本開示に記載された修正および/または追加に従って、動作することができる。予測処理ユニット100は、エントロピー符号化ユニット118にシンタックス情報を供給することができる。シンタックス情報は、たとえば、どの予測モードが使用されたかと、そのモードに関係する情報とを示すことができる。
[0195]ビデオエンコーダ20は符号化されるべきビデオデータを受信する。ビデオデータメモリ101は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリ101内に記憶されるビデオデータは、たとえば、ビデオソース18から取得される場合がある。復号ピクチャバッファ116は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用するための、参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ101および復号ピクチャバッファ116は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ101および復号ピクチャバッファ116は、同じメモリデバイスまたは別々のメモリデバイスによって提供される場合がある。様々な例では、ビデオデータメモリ101は、ビデオエンコーダ20の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0196]ビデオエンコーダ20は、ビデオデータのピクチャのスライス内の複数のコーディングツリーユニット(CTU)の各々を符号化することができる。CTUの各々は、ピクチャの等しいサイズのルーマコーディングツリーブロック(CTB)、および対応するクロマCTBに関連付けられ得る。CTUを符号化することの一部として、予測処理ユニット100は、CTUのCTBを徐々により小さいブロックに分割するために、4分木区分化を実行することができる。より小さいブロックは、CUのコーディングブロックであり得る。たとえば、予測処理ユニット100は、CTUに関連付けられたCTBを4つの等しいサイズのサブブロックに区分化することができ、サブブロックのうちの1つまたは複数を4つの等しいサイズのサブサブブロックに区分化することができ、以下同様である。
[0197]ビデオエンコーダ20は、CUの符号化表現(すなわちコード化CU)を生成するために、CTBのCUを符号化することができる。CUを符号化することの一部として、予測処理ユニット100は、CUの1つまたは複数のPUの間でCUに関連付けられたコーディングブロックを区分化することができる。したがって、各PUは、ルーマ予測ブロックおよび対応するクロマ予測ブロックに関連付けられ得る。
[0198]ビデオエンコーダ20およびビデオデコーダ30は、様々なサイズを有するPUをサポートすることができる。上記で示されたように、CUのサイズは、CUのルーマコーディングブロックのサイズを指す場合があり、PUのサイズは、PUのルーマ予測ブロックのサイズを指す場合がある。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ20およびビデオデコーダ30は、イントラ予測の場合は2N×2NまたはN×NのPUサイズをサポートすることができ、インター予測の場合は2N×2N、2N×N、N×2N、N×N、または同様の対称のPUサイズをサポートすることができる。ビデオエンコーダ20およびビデオデコーダ30はまた、インター予測の場合は2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズ向けの非対称区分化をサポートすることができる。本開示の態様によれば、ビデオエンコーダ20およびビデオデコーダ30はまた、深度インターコーディングのためのPUの非方形区分化をサポートする。
[0199]インター予測処理ユニット120は、CUの各PUに対してインター予測を実行することによって、PU用の予測データを生成することができる。PU用の予測データは、PUの予測ブロックとPUについての動き情報とを含む場合がある。インター予測処理ユニット120は、PUがIスライス内にあるか、Pスライス内にあるか、またはBスライス内にあるかに応じて、CUのPUに対して様々な演算を実行することができる。Iスライスでは、すべてのPUはイントラ予測される。したがって、PUがIスライス内にある場合、インター予測処理ユニット120は、PUに対してインター予測を実行しない。したがって、Iモードで符号化されたブロックの場合、予測ブロックは、同じピクチャ内の以前に符号化された隣接ブロックからの空間予測を使用して形成される。
[0200]PUがPスライス内にある場合、動き推定(ME)ユニット122は、PU用の参照領域について参照ピクチャのリスト(たとえば、「RefPicList0」)の中で参照ピクチャを探索することができる。参照ピクチャは、復号ピクチャバッファ116に記憶される場合がある。PU用の参照領域は、PUのサンプルブロックに最も密接に対応するサンプルブロックを含む、参照ピクチャ内の領域であり得る。動き推定(ME)ユニット122は、PU用の参照領域を含む参照ピクチャのRefPicList0内の位置を示す参照インデックスを生成することができる。
[0201]加えて、インターコーディングの場合、動き推定(ME)ユニット122は、PUのコーディングブロックと参照領域に関連付けられた参照位置との間の空間変位を示す動きベクトル(MV)を生成することができる。たとえば、MVは、現在のピクチャ内の座標から参照ピクチャ内の座標までのオフセットを提供する2次元ベクトルであり得る。動き推定(ME)ユニット122は、PUの動き情報として参照インデックスとMVとを出力することができる。動き補償(MC)ユニット124は、PUの動きベクトルによって示された参照位置における実際のサンプルまたは補間されたサンプルに基づいて、PUの予測サンプルブロックを生成することができる。
[0202]PUがBスライス内にある場合、動き推定ユニット122は、PUについての単予測または双予測を実行することができる。PUについての単予測を実行するために、動き推定ユニット122は、PU用の参照領域について、RefPicList0または第2の参照ピクチャリスト(「RefPicList1」)の参照ピクチャを探索することができる。動き推定(ME)ユニット122は、PUの動き情報として、参照領域を含む参照ピクチャのRefPicList0またはRefPicList1内の位置を示す参照インデックスと、PUのサンプルブロックと参照領域に関連付けられた参照位置との間の空間変位を示すMVと、参照ピクチャがRefPicList0内にあるかRefPicList1内にあるかを示す1つまたは複数の予測方向インジケータとを出力することができる。動き補償(MC)ユニット124は、PUの動きベクトルによって示された参照領域における実際のサンプルまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測ブロックを生成することができる。
[0203]PUについての双方向インター予測を実行するために、動き推定ユニット122は、PU用の参照領域について、RefPicList0内の参照ピクチャを探索することができ、PU用の別の参照領域について、RefPicList1内の参照ピクチャを探索することもできる。動き推定(ME)ユニット122は、参照領域を含む参照ピクチャのRefPicList0およびRefPicList1内の位置を示す参照ピクチャインデックスを生成することができる。加えて、動き推定(ME)ユニット122は、参照領域に関連付けられた参照位置とPUのサンプルブロックとの間の空間変位を示すMVを生成することができる。PUの動き情報は、PUの参照インデックスとMVとを含む場合がある。動き補償(MC)ユニット124は、PUの動きベクトルによって示された参照領域における実際のサンプルまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測ブロックを生成することができる。
[0204]イントラ予測処理ユニット126は、PUに対してイントラ予測を実行することによって、PU用の予測データを生成することができる。PU用の予測データは、PU用の予測ブロックと様々なシンタックス要素とを含む場合がある。イントラ予測処理ユニット126は、Iスライス、Pスライス、およびBスライスの中のPUに対してイントラ予測を実行することができる。PUに対してイントラ予測を実行するために、イントラ予測処理ユニット126は、複数のイントラ予測モードを使用してPU用の予測データの複数のセットを生成し、次いで、たとえばレートひずみ最適化技法を使用して、受け入れ可能または最適なコーディング性能を生み出すイントラ予測モードのうちの1つを選択することができる。
[0205]いくつかのイントラ予測モードを使用してPU用の予測データのセットを生成するために、イントラ予測処理ユニット126は、そのイントラ予測モードに関連付けられた方向にあるPUのサンプルブロック全体にわたって、空間的に隣接するPUのサンプルブロックからのサンプルを拡張することができる。隣接するPUは、PU、CU、およびCTUについて左から右、上から下の符号化順序を仮定すると、PUの上、右上、左上、または左にあり得る。イントラ予測処理ユニット126は、様々な数のイントラ予測モード、たとえば33個の方向性イントラ予測モードを使用することができる。いくつかの例では、イントラ予測モードの数は、PUに関連付けられた領域のサイズに依存する場合がある。
[0206]予測処理ユニット100は、PU用にインター予測処理ユニット120によって生成された予測データ、またはPU用にイントラ予測処理ユニット126によって生成された予測データの中から、CUのPU用の予測データを選択することができる。いくつかの例では、予測処理ユニット100は、予測データのセットのレート/ひずみメトリックに基づいて、CUのPU用の予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれる場合がある。
[0207]残差生成ユニット102は、CUのコーディングブロック(たとえば、ルーマコーディングブロック、Cbコーディングブロック、またはCrコーディングブロック)、およびCUのPUの選択されたインター予測ブロックまたはイントラ予測ブロック(たとえば、ルーマ予測ブロック、Cb予測ブロック、またはCr予測ブロック)に基づいて、CUの残差ブロック(たとえば、ルーマ残差ブロック、Cb残差ブロック、またはCr残差ブロック)を生成することができる。たとえば、残差生成ユニット102は、残差ブロック内の各サンプルが、CUのコーディングブロック内のサンプルと、CUのPUの対応する選択された予測サンプルブロック内の対応するサンプルとの間の差分に、すなわち、適用可能な場合ルーマピクセル値またはクロマピクセル値の単位で、等しい値を有するように、CUの残差ブロックを生成することができる。
[0208]変換処理ユニット104は、CUに関連付けられた残差ブロックを、CUのTUに関連付けられた変換ブロックに区分化するために、4分木区分化を実行することができる。したがって、TUは、ルーマ変換ブロックおよび2つのクロマ変換ブロックに関連付けられ得る。CUのTUのルーマ変換ブロックおよびクロマ変換ブロックのサイズおよび位置は、CUのPUの予測ブロックのサイズおよび位置に、基づく場合も基づかない場合もある。「残差4分木」(RQT)として知られる4分木構造は、領域の各々に関連付けられたノードを含む場合がある。CUのTUは、RQTのリーフノードに対応することができる。
[0209]通常の残差コーディングの場合、変換処理ユニット104は、TUの変換ブロックに1つまたは複数の変換を適用することによって、CUのTUごとに変換係数ブロックを生成することができる。変換処理ユニット104は、TUに関連付けられた変換ブロックに様々な変換を適用することができる。たとえば、変換処理ユニット104は、離散コサイン変換(DCT)、方向性変換、または概念的に同様の変換を変換ブロックに適用することができる。いくつかの例では、変換処理ユニット104は、変換ブロックに変換を適用しない。そのような例では、変換ブロックは、変換係数ブロックとして扱われ得る。
[0210]量子化ユニット106は、通常の残差コーディングの場合、係数ブロック内の残差変換係数を量子化することができる。量子化処理は、変換係数の一部またはすべてに関連付けられるビット深度を低減することができる。たとえば、nビットの変換係数が量子化の間にmビットの変換係数に切り捨てられる場合があり、ここで、nはmよりも大きい。量子化ユニット106は、CUに関連付けられた量子化パラメータ(QP)値に基づいて、CUのTUの係数ブロックを量子化することができる。ビデオエンコーダ20は、CUに関連付けられたQP値を調整することによって、CUに関連付けられた係数ブロックに適用される量子化の程度を調整することができる。量子化は、情報の損失をもたらす場合があり、したがって、量子化された変換係数は、元の係数よりも低い精度を有する場合がある。
[0211]逆量子化ユニット108および逆変換処理ユニット110は、係数ブロックから残差ブロックを復元するために、それぞれ、係数ブロックに逆量子化と逆変換とを適用することができる。復元ユニット112は、TUに関連付けられた復元された変換ブロックを生成するために、予測処理ユニット100によって生成された1つまたは複数の予測サンプルブロックからの対応するサンプルに、復元された残差ブロックを加算することができる。このようにしてCUのTUごとに変換ブロックを復元することによって、ビデオエンコーダ20は、CUのコーディングブロックを復元することができる。
[0212]フィルタユニット114は、復元されたCUに関連付けられたコーディングブロック内の、ブロッキングアーティファクトなどのアーティファクトを低減するために、1つまたは複数のフィルタリング演算を実行することができる。フィルタリング演算は、ブロック境界においてブロッキネスを低減するデブロッキング、ピクセル変換を平滑化するループフィルタリング、ピクセル変換を平滑化するサンプル適応オフセットフィルタリング、または場合によっては他のタイプのフィルタリング演算もしくはフィルタリング技法のうちの1つまたは複数を含む場合がある。復号ピクチャバッファ116は、フィルタユニット114が、復元されたコーディングブロックに対して1つまたは複数のデブロッキング演算を実行した後、復元されたコーディングブロックを記憶することができる。インター予測処理ユニット120は、他のピクチャのPUに対してインター予測を実行するために、復元されたコーディングブロックを含む参照ピクチャを使用することができる。加えて、イントラ予測処理ユニット126は、CUと同じピクチャ内の他のPUに対してイントラ予測を実行するために、復号ピクチャバッファ116内の復元されたコーディングブロックを使用することができる。
[0213]エントロピー符号化ユニット118は、ビデオエンコーダ20の様々な機能構成要素からデータを受け取ることができる。たとえば、エントロピー符号化ユニット118は、量子化ユニット106から係数ブロックを受け取ることができ、予測処理ユニット100からシンタックス要素を受け取ることができる。エントロピー符号化ユニット118は、エントロピー符号化データを生成するために、データに対して1つまたは複数のエントロピー符号化演算を実行することができる。たとえば、エントロピー符号化ユニット118は、CABAC演算を実行することができる。他のエントロピーコーディングプロセスの例には、コンテキスト適応型可変長コーディング(CAVLC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、および確率間隔区分化エントロピー(PIPE)コーディングが含まれる。HEVCでは、CABACが使用される。ビデオエンコーダ20は、エントロピー符号化ユニット118によって生成されたエントロピー符号化データを含むビットストリームを出力することができる。たとえば、ビットストリームは、バイナリシンタックス要素またはバイナリ化シンタックス要素のビンを表すビットを含む場合がある。
[0214]図7は、MPEG−2システムによる、マルチビューHEVC(MV−HEVC)、スケーラブルHEVC(SHVC)、および3次元HEVC(3D−HEVC)の拡張ビットストリームを含む、HEVCマルチレイヤ拡張ビットストリームの搬送のための技法などの、本開示の技法を実施するように構成された、例示的なビデオデコーダ30を示すブロック図である。図7は、例示のために提供され、本開示で広く例示され記載される技法を限定するものと見なされるべきではない。本開示は、HEVCコーディング拡張、詳細には、MV−HEVC、SHVC、および3D−HEVCのコーディング拡張のコンテキストで、ビデオデコーダ30を記載する。しかしながら、本開示の技法は、他のビデオコーディングの規格または方法に適用可能であり得る。したがって、図7は、説明のために提供され、本開示で広く例示され記載される技法を限定するものと見なされるべきではない。
[0215]図7の例では、ビデオデコーダ30は、エントロピー復号ユニット150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、復元ユニット158と、フィルタユニット160と、復号ピクチャバッファ162とを含む。予測処理ユニット152は、インター予測用の動き補償(MC)ユニット164と、イントラ予測処理ユニット166とを含む。説明を容易にするために、予測処理ユニット152の構成要素は、テクスチャ復号と深度復号の両方を実行するものとして記載される。いくつかの例では、テクスチャ復号および深度復号は、予測処理ユニット152の同じ構成要素、または予測処理ユニット152内の異なる構成要素によって実行される場合がある。たとえば、いくつかの実装形態では、別々のテクスチャデコーダおよび深度デコーダが提供される場合がある。また、たとえば、マルチビュープラス深度コーディングのための複数のビューを復号するために、複数のテクスチャデコーダおよび深度デコーダが提供される場合がある。いずれの場合も、予測処理ユニット152は、3D−HEVCプロセスなどの3Dコーディングプロセスの一部として、テクスチャデータと深度データとをイントラ復号またはインター復号するように構成される場合がある。
[0216]したがって、予測処理ユニット152は、MV−HEVC、SHVC、または3D−HEVCに実質的に従って動作し、本開示に記載された修正および/または追加に従う場合がある。予測処理ユニット152は、エントロピー復号ユニット150を介して、イントラ復号またはインター復号された深度データについて、符号化ビデオビットストリームから残差データを取得し、イントラ復号またはインター復号された深度データと残差データとを使用して、CUを復元することができる。いくつかの例では、ビデオデコーダ30は、図7に示されているよりも、多いか、少ないか、または異なる機能構成要素を含む場合がある。
[0217]ビデオデコーダ30は、符号化ビデオビットストリームを受信する。コード化ピクチャバッファ(CPB)151は、ビットストリームの符号化ビデオデータ(たとえば、NALユニット)を受信および記憶することができる。CPB151に記憶されたビデオデータは、たとえば、コンピュータ可読媒体16から、たとえば、カメラなどのローカルビデオソースから、ビデオデータの有線もしくはワイヤレスのネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得され得る。CPB151は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するビデオデータメモリを形成することができる。復号ピクチャバッファ162は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。CPB151および復号ピクチャバッファ162は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。CPB151および復号ピクチャバッファ162は、同じメモリデバイスまたは別々のメモリデバイスによって提供される場合がある。様々な例では、CPB151は、ビデオデコーダ30の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0218]エントロピー復号ユニット150は、ビットストリームからエントロピー符号化シンタックス要素を復号するために、ビットストリームを構文解析する。いくつかの例では、エントロピー復号ユニット150は、ビットストリーム内のビットからシンタックス要素用のビンを復号するために、CABACコーダを使用するように構成される場合がある。エントロピー復号ユニット150は、イントラコーディングモードまたはインターコーディングモードを含む様々なコーディングモードについて、様々な他のシンタックス要素を復号するために、CABACコーダを使用することができる。
[0219]予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット156、復元ユニット158、およびフィルタユニット160は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成することができる。ビットストリームは、一連のNALユニットを備える場合がある。ビットストリームのNALユニットは、コード化スライスNALユニットを含む場合がある。ビットストリームを復号することの一部として、エントロピー復号ユニット150は、コード化スライスNALユニットからシンタックス要素を抽出し、エントロピー復号することができる。ビットストリームのいくつかのシンタックス要素は、エントロピー符号化またはエントロピー復号されない。
[0220]コード化スライスの各々は、スライスヘッダとスライスデータとを含む場合がある。スライスヘッダは、スライスに関係するシンタックス要素を含む場合がある。スライスヘッダ内のシンタックス要素は、スライスを含むピクチャに関連付けられたPPSを識別するシンタックス要素を含む場合がある。PPSはSPSを参照することができ、SPSは次にVPSを参照することができる。エントロピー復号ユニット150はまた、SEIメッセージなどのシンタックス情報を含む場合がある他の要素をエントロピー復号することができる。スライスヘッダ、パラメータセット、またはSEIメッセージのいずれかの中の復号されたシンタックス要素は、本明細書に記載された例示的な技法に従ってシグナリングされるものとして、本明細書に記載された情報を含む場合がある。そのようなシンタックス情報は、テクスチャブロックまたは深度ブロックの復号および復元のために、予測処理ユニット152に供給され得る。
[0221]ビデオデコーダ30は、区分化されていないCUおよびPUに対して復元演算を実行することができる。復元演算を実行するために、ビデオデコーダ30は、CUの各TUに対して復元演算を実行することができる。CUのTUごとに復元演算を実行することによって、ビデオデコーダ30は、CUのブロックを復元することができる。CUのTUに対して復元演算を実行することの一部として、逆量子化ユニット154は、TUに関連付けられた係数ブロックを逆量子化(inverse quantize)、すなわち逆量子化(de−quantize)することができる。逆量子化ユニット154は、量子化の程度を決定するために、同様に、逆量子化ユニット154が適用すべき逆量子化の程度を決定するために、TUのCUに関連付けられたQP値を使用することができる。すなわち、圧縮比、すなわち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるQPの値を調整することによって制御され得る。圧縮比はまた、利用されるエントロピーコーディングの方法に依存する場合がある。
[0222]逆量子化ユニット154が係数ブロックを逆量子化した後、逆変換処理ユニット156は、TUに関連付けられた残差ブロックを生成するために、係数ブロックに1つまたは複数の逆変換を適用することができる。たとえば、逆変換処理ユニット156は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向性変換、または別の逆変換を係数ブロックに適用することができる。
[0223]PUがイントラ予測を使用して符号化される場合、イントラ予測処理ユニット166は、PU用の予測ブロックを生成するために、イントラ予測を実行することができる。イントラ予測処理ユニット166は、空間的に隣接するPUの予測ブロックに基づいて、PU用の予測ブロック(たとえば、ルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロック)を生成するために、イントラ予測モードを使用することができる。イントラ予測処理ユニット166は、ビットストリームから復号された1つまたは複数のシンタックス要素に基づいて、PU用のイントラ予測モードを決定することができる。
[0224]PUがインター予測を使用して符号化される場合、MCユニット164は、PU用のインター予測ブロックを生成するために、インター予測を実行することができる。MCユニット164は、他のピクチャまたはビュー内のブロックに基づいて、PU用の予測ブロック(たとえば、ルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロック)を生成するために、インター予測モードを使用することができる。MCユニット164は、ビットストリームから復号された1つまたは複数のシンタックス要素に基づいて、PU用のインター予測モードを決定することができ、動きベクトル、予測方向、および参照ピクチャインデックスなどの動き情報を受信または決定することができる。
[0225]インター予測の場合、MCユニット164は、ビットストリームから抽出されたシンタックス要素に基づいて、第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを構築することができる。PUがインター予測を使用して符号化される場合、エントロピー復号ユニット150は、PUについての動き情報を抽出または決定することができる。MCユニット164は、PUの動き情報に基づいて、PU用の1つまたは複数の参照ブロックを決定することができる。動き補償(MC)ユニット164は、PU用の1つまたは複数の参照ブロックにおけるブロック内のサンプルに基づいて、PU用の予測ブロック(たとえば、ルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロック)を生成することができる。
[0226]復元ユニット158は、CUのコーディングブロック(たとえば、ルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロック)を復元するために、適用可能な場合、CUのTUの変換ブロック(たとえば、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロック)、ならびに、CUのPUの予測ブロック(たとえば、ルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロック)、すなわち、イントラ予測データまたはインター予測データのいずれかを使用することができる。たとえば、復元ユニット158は、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを復元するために、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックの残差サンプルを、予測ルーマブロック、予測Cbブロック、および予測Crブロックの対応するサンプルに加算することができる。
[0227]フィルタユニット160は、CUのコーディングブロック(たとえば、ルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロック)に関連付けられたブロッキングアーティファクトを低減するために、デブロッキング演算を実行することができる。ビデオデコーダ30は、CUのコーディングブロック(たとえば、ルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロック)を復号ピクチャバッファ162に記憶することができる。復号ピクチャバッファ162は、次の動き補償、イントラ予測、および図1のディスプレイデバイス32などのディスプレイデバイス上での提示のために、参照ピクチャを供給することができる。たとえば、ビデオデコーダ30は、復号ピクチャバッファ162内のルーマブロック、Cbブロック、およびCrブロックに基づいて、他のCUのPUに対してイントラ予測演算またはインター予測演算を実行することができる。
[0228]本開示に記載された様々な技法は、それらの両方が一般にビデオコーダと呼ばれ得る、ビデオエンコーダ20(図1および図6)ならびに/またはビデオデコーダ30(図1および図7)によって実施され得る。加えて、ビデオコーディングは、一般に、適用可能な場合、ビデオ符号化および/またはビデオ復号を指す場合がある。
[0229]本開示の技法は、全般にMV−HEVC、SHVC、および3D−HEVCに関して記載されたが、本技法は、必ずしもこのように限定されるとは限らない。上記に記載された技法は、他の現在の規格または将来の規格にも適用可能であり得る。
[0230]図8は、本開示の1つまたは複数の技法による、ビデオデコーダ30の例示的な動作を示すフローチャートである。図8の動作および本開示の他のフローチャートの動作は、例として提供される。本開示の技法による他の動作は、より多数の、より少数の、または異なるアクションを含む場合がある。
[0231]図8の例では、ビデオデコーダ30は、複数のエレメンタリストリームを備えるビデオデータストリームを受信する(200)。さらに、ビデオデコーダ30は、バッファモデルにおいて、ビデオデータストリームの複数のエレメンタリストリームからアクセスユニットをアセンブルする(202)。この例では、ビデオデータストリームは、トランスポートストリームまたはプログラムストリームであり得る。エレメンタリストリームがスケーラブル高効率ビデオコーディング(SHVC)、マルチビューHEVC(MV−HEVC)、または3D−HEVCのビットストリームを含むかどうかにかかわらず、アクセスユニットをアセンブルするために同じバッファモデルが使用される。さらに、図8の例では、ビデオデコーダ30はアクセスユニットを復号することができる(204)。アクセスユニットは、ビデオデータの1つまたは複数のピクチャを備える場合がある。
[0232]図9は、本開示の1つまたは複数の技法による、アクセスユニットをアセンブルおよび復号するビデオデコーダ30の例示的な動作を示すフローチャートである。図9の例では、ビデオデコーダ30は、アクセスユニット用のエレメンタリストリーム(たとえば、プログラム要素)のセットを決定することができる(250)。ビデオデコーダ30は、様々な方法でアクセスユニット用のエレメンタリストリームのセットを決定することができる。
[0233]たとえば、ビデオデコーダ30は、現在のオペレーションポイントを復号している場合がある。この例では、HEVC拡張記述子は、現在のオペレーションポイントについてhevc_output_layer_flag(hevc_output_layer_flags)を規定することができる。hevc_output_layer_flagは、特定のレイヤ(paticular layers)が現在のオペレーションポイントのための出力レイヤセット内にあるかどうかを示す。したがって、この例では、ビデオデコーダ30は、現在のオペレーションポイント用のhevc_output_layer_flag(hevc_output_layer_flags)に基づいて、現在のオペレーションポイント用の出力レイヤセットを決定することができる。この例では、現在のオペレーションポイント用の出力レイヤセット内のそれぞれの出力レイヤの各々に、ビデオデコーダ30は、エレメンタリストリームのセットを決定することができる。説明を容易にするために、本開示は、エレメンタリストリームの決定されたセットを、エレメンタリストリームの出力セットとして言及する。エレメンタリストリームの出力セット内のそれぞれのエレメンタリストリームの各々は、現在のオペレーションポイントのそれぞれの出力レイヤに対応する。
[0234]さらに、この例では、エレメンタリストリームの出力セットのそれぞれのエレメンタリストリームの各々は、hierarchy_ext_embedded_layer_indexフィールドのそれぞれのセット(the respective set of hierarchy_ext_embedded_layer_index field)を含むそれぞれの階層拡張記述子に関連付けられる。hierarchy_ext_embedded_layer_indexフィールドのそれぞれのセットは、それぞれのエレメンタリストリームについて従属エレメンタリストリーム(dependent elementary strams)を識別する。ビデオデコーダ30は、エレメンタリストリームの出力セットと、エレメンタリストリームの出力セットの各エレメンタリストリームのための従属エレメンタリストリームとを、アクセスユニットのためのエレメンタリストリームのセット内に含める。
[0235]さらに、図9の例では、ビデオデコーダ30は、アクセスユニットのためのエレメンタリストリームのセットが任意の未処理のエレメンタリストリームを含むかどうかを決定する(252)。アクセスユニットのためのエレメンタリストリームのセットが1つまたは複数の未処理のエレメンタリストリームを含むと決定することに応答して(252の「Yes」)、ビデオデコーダ30は、未処理のエレメンタリストリームのうちの1つ(すなわち、現在のエレメンタリストリーム)について、HEVCレイヤピクチャサブセットバッファからHEVCレイヤピクチャサブセットを取り出すことができる(254)。HEVCレイヤピクチャサブセットの各ピクチャは、アクセスユニットの復号タイムスタンプに等しい復号タイムスタンプを有する。ビデオデコーダ30は、再アセンブルされたアクセスユニットにHEVCレイヤピクチャサブセットを含めることができる(256)。次いで、現在のエレメンタリストリームが処理されたと見なされる。次いで、ビデオデコーダ30は、アクセスユニット用のエレメンタリストリームのセットが1つまたは複数の未処理のエレメンタリストリームを含むかどうかを再び決定することができる(252)。
[0236]未処理のエレメンタリストリームが残っていない場合、ビデオデコーダ30は、再アセンブルされたアクセスユニットに、アクセスユニットのためのエレメンタリストリームのセットの各エレメンタリストリーム用のHEVCレイヤピクチャサブセットを含めている。したがって、未処理のエレメンタリストリームが残っていないと決定することに応答して(252の「No」)、ビデオデコーダ30は、アクセスユニットのピクチャを復号することができる(258)。
[0237]以下の段落は、本開示の技法の様々な例を記載する。
[0238]例1.ビデオデータを処理する方法であって、MPEG−2システムによるHEVC拡張ストリームの搬送のために、同じレイヤベースモデルにおいて統合される、SHVC、MV−HEVC、および3D−HEVCのバッファモデルを使用することを備える、方法。
[0239]例2.バッファモデルはT−STDモデルとP−STDモデルとを含む、例1の方法。
[0240]例3.バッファモデルはMVCに使用されるT−STDモデルおよびP−STDモデルに類似する、例1の方法。
[0241]例4.ビデオデータを処理する方法であって、MPEG−2システムによるHEVC拡張ストリームの搬送のために、各HEVC積層ビデオストリームにT−STDモデルおよび/またはP−STDモデルを使用することを備え、各HEVC積層ビデオストリームは、HEVC積層ビデオサブビットストリームからアセンブルされるオペレーションポイントに対応する、方法。
[0242]例5.HEVC積層ビデオサブビットストリームは、nuh_layer_id(レイヤ識別子)の同じ値を有するVCL NALユニットと、それらの関連する非VCL NALユニットとを含む複数のHEVCビデオレイヤサブビットストリームを含む、例4の方法。
[0243]例6.ビデオデータを処理する方法であって、MPEG−2システムによるHEVC拡張ストリームの搬送のために、T−STDモデルまたはP−STDモデルにおいて複数のストリームからアクセスユニット内のHEVCレイヤピクチャをアセンブルするときに、現在のオペレーションポイントの出力レイヤを復号するために必要とされる参照レイヤを識別するために、関連する階層拡張記述子内で示されるhierarchy_ext_embedded_layer_index値を使用することを備える、方法。
[0244]例7.ビデオデータを処理する方法であって、MPEG−2システムによるHEVC拡張ストリームの搬送のために、少なくともいくつかのオペレーションポイントについての現在のHEVC MPEG−2システムにおけるような、HEVCタイミングとHRD記述子とを使用することを備える、方法。
[0245]例8.HEVCタイミングおよびHRD記述子が各オペレーションポイントに提示され得る、例7の方法。
[0246]例9.HEVC_extension_descriptor内で、各オペレーションポイントのループにおいて、HEVCタイミングとHRD記述子とを使用することをさらに備える、例7の方法。
[0247]例10.そのようなHEVCタイミングおよびHRD記述子は、復号されるべきレイヤの同じレイヤ識別子セットを共有するオペレーションポイント用に1度存在するのみである、例7〜例9のいずれかの方法。
[0248]例11.そのようなHEVCタイミングおよびHRD記述子が、すべての出力レイヤセットのすべてのオペレーションポイント用に1度存在するのみである、例7〜例9のいずれかの方法。
[0249]例12.ビデオデータを処理する方法であって、MPEG−2シテムによるHEVC拡張ストリームの搬送のために、レイヤピクチャデリミタNALユニットを使用することを備える、方法。
[0250]例13.レイヤピクチャデリミタNALユニットは、HEVC内のNALユニットヘッダと同じシンタックス要素を含み、以下のシンタックス要素:forbidden_zero_bit、nal_unit_type、nuh_layer_id、およびnuh_temporal_id_plus1を有する、例12の方法。
[0251]例14.レイヤピクチャデリミタNALユニットのnal_unit_typeは、0x30(すなわち、48)になるように設定される、例12の方法。
[0252]例15.HEVC仕様において「未指定」とマークされている、両端を含む0x30〜0x3F(すなわち、両端を含む48〜63)の範囲内の異なるNALユニットタイプが、レイヤピクチャデリミタNALユニットに使用される、例12の方法。
[0253]例16.nuh_layer_idおよびnuh_temporal_id_plus1の値は、レイヤピクチャデリミタNALユニットの直後にくるVCL NALユニットについて関連するピクチャのnuh_layer_idおよびnuh_temporal_id_plus1の値に等しいように設定される、例12の方法。
[0254]例17.0x26に等しいstream_typeを有する各エレメンタリストリームにおいて、ちょうど1つのLPD_nal_unitが、LPD_nal_unitのそれらに等しいnuh_layer_idおよびnuh_temporal_id_plus1の値を有するすべてのNALユニットに先行することができる、例16の方法。
[0255]例18.nuh_layer_idおよびnuh_temporal_id_plus1の値が0および0になるように固定される、例16の方法。
[0256]例19.このNALユニットがレイヤピクチャデリミタNALユニットであること示すために、nuh_temporal_id_plus1が0になるように設定される、例16の方法。
[0257]例20.0x26に等しいstream_typeを有する各エレメンタリストリームにおいて、ちょうど1つのLPD_nal_unitが、LPD_nal_unitのそれに等しいnuh_layer_idの値を有するすべてのNALユニットに先行することができる、例16の方法。
[0258]例21.0x26に等しいstream_typeを有する各エレメンタリストリームにおいて、ちょうど1つのLPD_nal_unitが、最小値がLPD_nal_unitのnuh_layer_idに等しい、HEVCレイヤ識別子セットに属する値を有するすべてのNALユニットに先行することができる、例16の方法。
[0259]例22.例1〜例21の方法の任意の組合せを備える、ビデオデータをアセンブルする方法。
[0260]例23.例1〜例21の方法の任意の組合せを備える、方法。
[0261]例24.ビデオデータを処理するためのデバイスであって、ビデオデータを記憶するメモリと、例1〜例23のいずれかの方法を実施するように構成された1つまたは複数のプロセッサとを備える、デバイス。
[0262]例25.デバイスがビデオデコーダである、例24のデバイス。
[0263]例26.デバイスがビデオエンコーダである、例24のデバイス。
[0264]例27.デバイスがビットストリームスプライシングデバイスである、例24のデバイス。
[0265]例28.デバイスが媒体アウェア(aware)ネットワーク要素である、例24のデバイス。
[0266]例29.ビデオデータを処理するためのデバイスであって、例1〜例23のいずれかの方法を実施するための手段を備える、デバイス。
[0267]例30.デバイスがビデオエンコーダまたはビデオデコーダを備える、例29のデバイス。
[0268]例31.ビデオ処理デバイスの1つまたは複数のプロセッサに、例1〜例23のいずれかの方法を実施させる命令を備える、非一時的コンピュータ可読記憶媒体。
[0269]1つまたは複数の例では、本明細書に記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装される場合がある。ソフトウェアに実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行される場合がある。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含む場合がある。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に相当する場合がある。データ記憶媒体は、本開示に記載された技法の実施のための命令、コード、および/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含む場合がある。
[0270]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、任意の接続は、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに、非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびブルーレイディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
[0271]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路もしくはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造または本明細書に記載された技法の実施に適した任意の他の構造のいずれかを指す場合がある。加えて、いくつかの態様では、本明細書に記載された機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用のハードウェアモジュールおよび/またはソフトウェアモジュール内で提供される場合がある。また、本技法は、1つまたは複数の回路または論理素子において完全に実装され得る。
[0272]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実施される場合がある。様々な構成要素、モジュール、またはユニットは、開示された技法を実施するように構成されたデバイスの機能的態様を強調するように本開示において記載されているが、様々なハードウェアユニットによる実現を必ずしも必要としない。むしろ、上記に記載されたように、様々なユニットは、コーデックハードウェアユニット内で組み合わされるか、または適切なソフトウェアおよび/もしくはファームウェアとともに、上記に記載された1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合体によって提供される場合がある。
[0273]様々な例が記載されている。これらおよび他の例は、以下の特許請求の範囲の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを復号する方法であって、
複数のエレメンタリストリームを備えるビデオデータストリームを受信することと、
バッファモデルにおいて、前記ビデオデータストリームの前記複数のエレメンタリストリームからアクセスユニットをアセンブルすることと、ここにおいて、
前記ビデオデータストリームは、トランスポートストリームまたはプログラムストリームであり、
前記エレメンタリストリームが異なる複数のタイプのマルチレイヤコード化ビットストリームのいずれかを含むかどうかにかかわらず、前記アクセスユニットをアセンブルするために同じバッファモデルが使用され、
前記ビデオデータの1つまたは複数のピクチャを備える前記アクセスユニットを復号することと、
を備える方法。
[C2]
前記異なる複数のタイプのマルチレイヤコード化ビットストリームは、スケーラブル高効率ビデオコーディング(SHVC)、マルチビューHEVC(MV−HEVC)、または3D−HEVCのビットストリームを含む、C1に記載の方法。
[C3]
前記ビデオデータストリームのそれぞれのHEVC積層ビデオストリームの各々について、前記バッファモデルの別々のインスタンスを使用して、アクセスユニットをアセンブルすること、
をさらに備え、
それぞれのHEVC積層ビデオストリームの各々は、複数のHEVCビデオレイヤサブビットストリームを備え、
前記複数のHEVCビデオレイヤサブビットストリームのそれぞれのHEVCビデオレイヤサブビットストリームの各々は、同じレイヤ識別子値を有するビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットを備える、
C1に記載の方法。
[C4]
前記ビデオデータストリームはプログラムを含み、
前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、
前記バッファモデルは、前記それぞれのエレメンタリストリームのためのバッファを備え、
前記アクセスユニットは、前記それぞれのエレメンタリストリームのためのそれぞれのHEVCレイヤピクチャサブセットを備え、
前記それぞれのHEVCレイヤピクチャサブセットは、それぞれのレイヤ識別子セットに関連付けられた前記アクセスユニットのHEVCレイヤピクチャを備え、
前記HEVCレイヤピクチャの各々は、Rec.ITU−T H.265|ISO/IEC23008−2の付属書類Fにおいて定義されているコード化ピクチャであり、
前記アクセスユニットをアセンブルすることは、前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、
前記それぞれのエレメンタリストリームのための前記バッファから、前記それぞれのエレメンタリストリームのための前記それぞれのHEVCレイヤピクチャサブセットを取り出すことと、
前記アクセスユニットに前記それぞれのHEVCレイヤピクチャサブセットを含めることと、
を備える、C1に記載の方法。
[C5]
前記アクセスユニットをアセンブルすることは、
現在のオペレーションポイントの出力レイヤに対応する記述子内の1つまたは複数のフィールドに基づいて、前記現在のオペレーションポイントの前記出力レイヤを復号するために必要とされる参照レイヤを識別すること、
を備える、C4に記載の方法。
[C6]
前記ビデオデータストリームはトランスポートストリームであり、
前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、
前記それぞれのエレメンタリストリームのための前記バッファは、前記それぞれのエレメンタリストリームのための第1のバッファであり、
前記バッファモデルは、前記それぞれのエレメンタリストリームのための第2のバッファを備え、
前記方法は、前記それぞれのエレメンタリストリームに属する前記トランスポートストリームのそれぞれのパケット化エレメンタリストリーム(PES)パケットの各々について、前記それぞれのエレメンタリストリームのための前記第2のバッファに前記それぞれのPESパケットを記憶することをさらに備える、
C4に記載の方法。
[C7]
前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、
前記バッファモデルは、前記それぞれのエレメンタリストリームのための第3のバッファを備え、
前記方法は、
前記それぞれのエレメンタリストリームのための前記第2のバッファからPESパケットを取り出すことと、
前記それぞれのエレメンタリストリームのための前記第2のバッファから取り出された前記PESパケットを、前記それぞれのエレメンタリストリームのための前記第3のバッファに記憶することと、
前記それぞれのエレメンタリストリームのための前記第3のバッファからバイトを取り出すことと、
前記それぞれのエレメンタリストリームのための前記第3のバッファから取り出された前記バイトを、前記それぞれのエレメンタリストリームのための前記第1のバッファに記憶することと、
さらに備える、C6に記載の方法。
[C8]
前記ビデオデータストリームはプログラムを含み、
前記方法は、前記プログラム内にHEVCレイヤのセットが存在することと、ITU−T Rec.H.265|ISO/IEC23008−2の付属書類Gまたは付属書類Hにおいて定義されている1つまたは複数のプロファイルに準拠するHEVC拡張ビデオストリームである前記複数のエレメンタリストリーム内に、少なくとも1つのHEVC積層ビデオサブビットストリームが存在することとを決定することに応答して、前記アクセスユニットをアセンブルする際に使用するために、前記バッファモデルを選択することをさらに備える、
C1に記載の方法。
[C9]
ビデオデータを記憶するように構成されたメモリと、
複数のエレメンタリストリームを備えるビデオデータストリームを受信することと、
バッファモデルにおいて、前記ビデオデータストリームの前記複数のエレメンタリストリームからアクセスユニットをアセンブルすることと、ここにおいて、
前記ビデオデータストリームは、トランスポートストリームまたはプログラムストリームであり、
前記エレメンタリストリームが異なる複数のタイプのマルチレイヤコード化ビットストリームのいずれかを含むかどうかにかかわらず、前記アクセスユニットをアセンブルするために同じバッファモデルが使用され、
前記ビデオデータの1つまたは複数のピクチャを備える前記アクセスユニットを復号することと、
を行うように構成された、1つまたは複数のプロセッサと、
を備える、ビデオ復号デバイス。
[C10]
前記異なる複数のタイプのマルチレイヤコード化ビットストリームは、スケーラブル高効率ビデオコーディング(SHVC)、マルチビューHEVC(MV−HEVC)、または3D−HEVCのビットストリームを含む、C9に記載のビデオ復号デバイス。
[C11]
前記1つまたは複数のプロセッサは、前記ビデオデータストリームのそれぞれのHEVC積層ビデオストリームの各々について、前記バッファモデルの別々のインスタンスを使用して、アクセスユニットをアセンブルするように構成され、
それぞれのHEVC積層ビデオストリームの各々は、複数のHEVCビデオレイヤサブビットストリームを備え、
前記複数のHEVCビデオレイヤサブビットストリームのそれぞれのHEVCビデオレイヤサブビットストリームの各々は、同じレイヤ識別子値を有するビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットを備える、
C9に記載のビデオ復号デバイス。
[C12]
前記ビデオデータストリームはプログラムを含み、
前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、
前記バッファモデルは、前記それぞれのエレメンタリストリームのためのバッファを備え、
前記アクセスユニットは、前記それぞれのエレメンタリストリームのためのそれぞれのHEVCレイヤピクチャサブセットを備え、
前記それぞれのHEVCレイヤピクチャサブセットは、それぞれのレイヤ識別子セットに関連付けられた前記アクセスユニットのHEVCレイヤピクチャを備え、
前記HEVCレイヤピクチャの各々は、Rec.ITU−T H.265|ISO/IEC23008−2の付属書類Fにおいて定義されているコード化ピクチャであり、
前記アクセスユニットをアセンブルすることの一部として、前記1つまたは複数のプロセッサは、前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、
前記それぞれのエレメンタリストリームのための前記バッファから、前記それぞれのエレメンタリストリームのための前記それぞれのHEVCレイヤピクチャサブセットを取り出すことと、
前記アクセスユニットに前記それぞれのHEVCレイヤピクチャサブセットを含めることと、
を行う、C9に記載のビデオ復号デバイス。
[C13]
前記アクセスユニットをアセンブルすることの一部として、前記1つまたは複数のプロセッサは、
現在のオペレーションポイントの出力レイヤに対応する記述子内の1つまたは複数のフィールドに基づいて、前記現在のオペレーションポイントの前記出力レイヤを復号するために必要とされる参照レイヤを識別すること、
を行う、C12に記載のビデオ復号デバイス。
[C14]
前記ビデオデータストリームはトランスポートストリームであり、
前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、
前記それぞれのエレメンタリストリームのための前記バッファは、前記それぞれのエレメンタリストリームのための第1のバッファであり、
前記バッファモデルは、前記それぞれのエレメンタリストリームのための第2のバッファを備え、
前記1つまたは複数のプロセッサは、前記それぞれのエレメンタリストリームに属する前記トランスポートストリームのそれぞれのパケット化エレメンタリストリーム(PES)パケットの各々について、前記それぞれのエレメンタリストリームのための前記第2のバッファに前記それぞれのPESパケットを記憶するように構成される、
C12に記載のビデオ復号デバイス。
[C15]
前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、
前記バッファモデルは、前記それぞれのエレメンタリストリームのための第3のバッファを備え、
前記1つまたは複数のプロセッサは、
前記それぞれのエレメンタリストリームのための前記第2のバッファからPESパケットを取り出すことと、
前記それぞれのエレメンタリストリームのための前記第2のバッファから取り出された前記PESパケットを、前記それぞれのエレメンタリストリームのための前記第3のバッファに記憶することと、
前記それぞれのエレメンタリストリームのための前記第3のバッファからバイトを取り出すことと、
前記それぞれのエレメンタリストリームのための前記第3のバッファから取り出された前記バイトを、前記それぞれのエレメンタリストリームのための前記第1のバッファに記憶することと、
を行うように構成される、
C14に記載のビデオ復号デバイス。
[C16]
前記ビデオデータストリームはプログラムを含み、
前記1つまたは複数のプロセッサは、前記プログラム内にHEVCレイヤのセットが存在することと、ITU−T Rec.H.265|ISO/IEC23008−2の付属書類Gまたは付属書類Hにおいて定義されている1つまたは複数のプロファイルに準拠するHEVC拡張ビデオストリームである前記複数のエレメンタリストリーム内に、少なくとも1つのHEVC積層ビデオサブビットストリームが存在することとを決定することに応答して、前記アクセスユニットをアセンブルする際に使用するために、前記バッファモデルを選択するようにさらに構成される、
C9に記載のビデオ復号デバイス。
[C17]
複数のエレメンタリストリームを備えるビデオデータストリームを受信するための手段と、
バッファモデルにおいて、前記ビデオデータストリームの前記複数のエレメンタリストリームからアクセスユニットをアセンブルするための手段と、ここにおいて、
前記ビデオデータストリームは、トランスポートストリームまたはプログラムストリームであり、
前記エレメンタリストリームが異なる複数のタイプのマルチレイヤコード化ビットストリームのいずれかを含むかどうかにかかわらず、前記アクセスユニットをアセンブルするために同じバッファモデルが使用され、
前記ビデオデータの1つまたは複数のピクチャを備える前記アクセスユニットを復号するための手段と、
を備える、ビデオ復号デバイス。
[C18]
前記異なる複数のタイプのマルチレイヤコード化ビットストリームは、スケーラブル高効率ビデオコーディング(SHVC)、マルチビューHEVC(MV−HEVC)、または3D−HEVCのビットストリームを含む、C17に記載のビデオ復号デバイス。
[C19]
前記ビデオデータストリームのそれぞれのHEVC積層ビデオストリームの各々について、前記バッファモデルの別々のインスタンスを使用して、アクセスユニットをアセンブルするための手段をさらに備え、
それぞれのHEVC積層ビデオストリームの各々は、複数のHEVCビデオレイヤサブビットストリームを備え、
前記複数のHEVCビデオレイヤサブビットストリームのそれぞれのHEVCビデオレイヤサブビットストリームの各々は、同じレイヤ識別子値を有するビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットを備える、
C17に記載のビデオ復号デバイス。
[C20]
前記ビデオデータストリームはプログラムを含み、
前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、
前記バッファモデルは、前記それぞれのエレメンタリストリームのためのバッファを備え、
前記アクセスユニットは、前記それぞれのエレメンタリストリームのためのそれぞれのHEVCレイヤピクチャサブセットを備え、
前記それぞれのHEVCレイヤピクチャサブセットは、それぞれのレイヤ識別子セットに関連付けられた前記アクセスユニットのHEVCレイヤピクチャを備え、
前記HEVCレイヤピクチャの各々は、Rec.ITU−T H.265|ISO/IEC23008−2の付属書類Fにおいて定義されているコード化ピクチャであり、
前記アクセスユニットをアセンブルすることは、前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、
前記それぞれのエレメンタリストリームのための前記バッファから、前記それぞれのエレメンタリストリームのための前記それぞれのHEVCレイヤピクチャサブセットを取り出すことと、
前記アクセスユニットに前記それぞれのHEVCレイヤピクチャサブセットを含めることと
を備える、C17に記載のビデオ復号デバイス。
[C21]
前記アクセスユニットをアセンブルすることは、
現在のオペレーションポイントの出力レイヤに対応する記述子内の1つまたは複数のフィールドに基づいて、前記現在のオペレーションポイントの前記出力レイヤを復号するために必要とされる参照レイヤを識別すること、
を備える、C20に記載のビデオ復号デバイス。
[C22]
前記ビデオデータストリームはトランスポートストリームであり、
前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、
前記それぞれのエレメンタリストリームのための前記バッファは、前記それぞれのエレメンタリストリームのための第1のバッファであり、
前記バッファモデルは、前記それぞれのエレメンタリストリームのための第2のバッファを備え、
前記ビデオ復号デバイスは、前記それぞれのエレメンタリストリームに属する前記トランスポートストリームのそれぞれのパケット化エレメンタリストリーム(PES)パケットの各々について、前記それぞれのエレメンタリストリームのための前記第2のバッファに前記それぞれのPESパケットを記憶するための手段をさらに備える、
C20に記載のビデオ復号デバイス。
[C23]
前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、
前記バッファモデルは、前記それぞれのエレメンタリストリームのための第3のバッファを備え、
前記ビデオ復号デバイスは、
前記それぞれのエレメンタリストリームのための前記第2のバッファからPESパケットを取り出すための手段と、
前記それぞれのエレメンタリストリームのための前記第2のバッファから取り出された前記PESパケットを、前記それぞれのエレメンタリストリームのための前記第3のバッファに記憶するための手段と、
前記それぞれのエレメンタリストリームのための前記第3のバッファからバイトを取り出すための手段と、
前記それぞれのエレメンタリストリームのための前記第3のバッファから取り出された前記バイトを、前記それぞれのエレメンタリストリームのための前記第1のバッファに記憶するための手段と、
をさらに備える、C22に記載のビデオ復号デバイス。
[C24]
前記ビデオデータストリームはプログラムを含み、
前記ビデオ復号デバイスは、前記プログラム内にHEVCレイヤのセットが存在することと、ITU−T Rec.H.265|ISO/IEC23008−2の付属書類Gまたは付属書類Hにおいて定義されている1つまたは複数のプロファイルに準拠するHEVC拡張ビデオストリームである前記複数のエレメンタリストリーム内に、少なくとも1つのHEVC積層ビデオサブビットストリームが存在することとを決定することに応答して、前記アクセスユニットをアセンブルする際に使用するために、前記バッファモデルを選択するための手段をさらに備える、
C17に記載のビデオ復号デバイス。
[C25]
実行されると、ビデオ復号デバイスに、
複数のエレメンタリストリームを備えるビデオデータストリームを受信することと、
バッファモデルにおいて、前記ビデオデータストリームの前記複数のエレメンタリストリームからアクセスユニットをアセンブルすることと、ここにおいて、
前記ビデオデータストリームは、トランスポートストリームまたはプログラムストリームであり、
前記エレメンタリストリームが異なる複数のタイプのマルチレイヤコード化ビットストリームのいずれかを含むかどうかにかかわらず、前記アクセスユニットをアセンブルするために同じバッファモデルが使用される、
前記ビデオデータの1つまたは複数のピクチャを備える前記アクセスユニットを復号することと、
を行わせる命令を記憶した、コンピュータ可読データ記憶媒体。
[C26]
前記異なる複数のタイプのマルチレイヤコード化ビットストリームは、スケーラブル高効率ビデオコーディング(SHVC)、マルチビューHEVC(MV−HEVC)、または3D−HEVCのビットストリームを含む、C25に記載のコンピュータ可読データ記憶媒体。
[C27]
前記命令は、前記ビデオ復号デバイスに、
前記ビデオデータストリームのそれぞれのHEVC積層ビデオストリームの各々について、前記バッファモデルの別々のインスタンスを使用して、アクセスユニットをアセンブルすることをさらに行わせ、
それぞれのHEVC積層ビデオストリームの各々は、複数のHEVCビデオレイヤサブビットストリームを備え、
前記複数のHEVCビデオレイヤサブビットストリームのそれぞれのHEVCビデオレイヤサブビットストリームの各々は、同じレイヤ識別子値を有するビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットを備える、
C25に記載のコンピュータ可読データ記憶媒体。
[C28]
前記ビデオデータストリームはプログラムを含み、
前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、
前記バッファモデルは、前記それぞれのエレメンタリストリームのためのバッファを備え、
前記アクセスユニットは、前記それぞれのエレメンタリストリームのためのそれぞれのHEVCレイヤピクチャサブセットを備え、
前記それぞれのHEVCレイヤピクチャサブセットは、それぞれのレイヤ識別子セットに関連付けられた前記アクセスユニットのHEVCレイヤピクチャを備え、
前記HEVCレイヤピクチャの各々は、Rec.ITU−T H.265|ISO/IEC23008−2の付属書類Fにおいて定義されているコード化ピクチャであり、
前記アクセスユニットをアセンブルすることの一部として、前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、前記命令は前記ビデオ復号デバイスに、
前記それぞれのエレメンタリストリームのための前記バッファから、前記それぞれのエレメンタリストリームのための前記それぞれのHEVCレイヤピクチャサブセットを取り出すことと、
前記アクセスユニットに前記それぞれのHEVCレイヤピクチャサブセットを含めることと、
を行わせる、C25に記載のコンピュータ可読データ記憶媒体。
[C29]
前記アクセスユニットをアセンブルすることの一部として、前記命令は前記ビデオ復号デバイスに、
現在のオペレーションポイントの出力レイヤに対応する記述子内の1つまたは複数のフィールドに基づいて、前記現在のオペレーションポイントの前記出力レイヤを復号するために必要とされる参照レイヤを識別すること、
を行わせる、C28に記載のコンピュータ可読データ記憶媒体。
[C30]
前記ビデオデータストリームはトランスポートストリームであり、
前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、
前記それぞれのエレメンタリストリームのための前記バッファは、前記それぞれのエレメンタリストリームのための第1のバッファであり、
前記バッファモデルは、前記それぞれのエレメンタリストリームのための第2のバッファを備え、
前記命令は、前記ビデオ復号デバイスに、前記それぞれのエレメンタリストリームに属する前記トランスポートストリームのそれぞれのパケット化エレメンタリストリーム(PES)パケットの各々について、前記それぞれのエレメンタリストリームのための前記第2のバッファに前記それぞれのPESパケットを記憶することをさらに行わせる、
C28に記載のコンピュータ可読データ記憶媒体。
[C31]
前記プログラムに関連付けられたそれぞれのエレメンタリストリームの各々について、
前記バッファモデルは、前記それぞれのエレメンタリストリームのための第3のバッファを備え、
前記命令は、前記ビデオ復号デバイスに、
前記それぞれのエレメンタリストリームのための前記第2のバッファからPESパケットを取り出すことと、
前記それぞれのエレメンタリストリームのための前記第2のバッファから取り出された前記PESパケットを、前記それぞれのエレメンタリストリームのための前記第3のバッファに記憶することと、
前記それぞれのエレメンタリストリームのための前記第3のバッファからバイトを取り出すことと、
前記それぞれのエレメンタリストリームのための前記第3のバッファから取り出された前記バイトを、前記それぞれのエレメンタリストリームのための前記第1のバッファに記憶することと、
をさらに行わせる、C30に記載のコンピュータ可読データ記憶媒体。
[C32]
前記ビデオデータストリームはプログラムを含み、
前記命令は、前記ビデオ復号デバイスに、前記プログラム内にHEVCレイヤのセットが存在することと、ITU−T Rec.H.265|ISO/IEC23008−2の付属書類Gまたは付属書類Hにおいて定義されている1つまたは複数のプロファイルに準拠するHEVC拡張ビデオストリームである前記複数のエレメンタリストリーム内に、少なくとも1つのHEVC積層ビデオサブビットストリームが存在することとを決定することに応答して、前記アクセスユニットをアセンブルする際に使用するために、前記バッファモデルを選択することをさらに行わせる、
C25に記載のコンピュータ可読データ記憶媒体。