【文献】
Sachin Deshpande, et.al.,On DPB Operation,JCTVC-N0198,2013年 7月16日
【文献】
志水 信哉,デプスマップを用いた三次元映像符号化の国際標準化動向,情報処理学会 研究報告 オーディオビジュアル複合情報処理(AVM) 2013−AVM−082,2013年 9月 5日
(58)【調査した分野】(Int.Cl.,DB名)
前記マルチレイヤビデオデータは、スケーラブル高効率ビデオコーディング(SHVC)データ、マルチビュー高効率ビデオコーディング(MV−HEVC)データ、または3次元高効率ビデオコーディング(3D−HEVC)データのうちの1つである、請求項16に記載のビデオデバイス。
前記マルチレイヤビデオデータは、スケーラブル高効率ビデオコーディング(SHVC)データ、マルチビュー高効率ビデオコーディング(MV−HEVC)データ、または3次元高効率ビデオコーディング(3D−HEVC)データの1つである、請求項21に記載のビデオデバイス。
前記ワイヤレス通信デバイスは、携帯電話機であり、前記ファイルは、前記受信機によって受信され、セルラ通信規格に従って変調される、請求項25に記載のビデオデバイス。
前記ビットストリームが、前記第1の値に等しいピクチャ出力フラグを有するコーディングされたピクチャと前記第2の値に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むアクセスユニットを含まないという決定に応答して、前記ファイルに前記ビットストリームを記憶するために、単一のトラックを使用するための手段を備える、請求項27に記載のビデオデバイス。
前記マルチレイヤビデオデータは、スケーラブル高効率ビデオコーディング(SHVC)データ、マルチビュー高効率ビデオコーディング(MV−HEVC)データ、または3次元高効率ビデオコーディング(3D−HEVC)データのうちの1つである、請求項27に記載のビデオデバイス。
前記マルチレイヤビデオデータは、スケーラブル高効率ビデオコーディング(SHVC)データ、マルチビュー高効率ビデオコーディング(MV−HEVC)データ、または3次元高効率ビデオコーディング(3D−HEVC)データのうちの1つである、請求項31に記載のビデオデバイス。
前記マルチレイヤビデオデータは、スケーラブル高効率ビデオコーディング(SHVC)データ、マルチビュー高効率ビデオコーディング(MV−HEVC)データ、または3次元高効率ビデオコーディング(3D−HEVC)データのうちの1つである、請求項34に記載の非一時的コンピュータ可読データ記憶媒体。
前記マルチレイヤビデオデータは、スケーラブル高効率ビデオコーディング(SHVC)データ、マルチビュー高効率ビデオコーディング(MV−HEVC)データ、または3次元高効率ビデオコーディング(3D−HEVC)データのうちの1つである、請求項37に記載の非一時的コンピュータ可読データ記憶媒体。
【発明を実施するための形態】
【0017】
[0028]ISOベースのメディアファイルフォーマット(ISOBMFF)は、メディアデータを記憶するためのファイルフォーマットである。ISOBMFFは、特定のビデオコーディング規格に準拠するビデオデータの記憶をサポートするように拡張可能である。たとえば、ISOBMFFは以前、H.264/AVCおよびHigh Efficiency Video Coding(HEVC)ビデオコーディング規格に準拠するビデオデータの記憶をサポートするように、拡張されている。さらに、ISOBMFFは以前、H.264/AVCのマルチビューコーディング(MVC)およびスケーラブルビデオコーディング(SVC)拡張に準拠するビデオデータの記憶をサポートするように拡張されている。MV−HEVC、3D−HEVC、およびSHVCは、マルチレイヤビデオデータをサポートするHEVCビデオコーディング規格の拡張である。H.264/AVCのMVCおよびSVC拡張に準拠するビデオデータの記憶のためにISOBMFFに追加される特徴は、MV−HEVC、3D−HEVC、およびSHVCに準拠するビデオデータの効果的な記憶には十分ではない。言い換えると、MV−HEVC、3D−HEVC、およびSHVCに準拠するビデオデータの記憶のために、H.264/AVCのMVCおよびSVC拡張に準拠するビデオデータの記憶のためのISOBMFFの拡張を使用しようとすると、様々な問題が生じ得る。
【0018】
[0029]たとえば、H.264/AVCのMVCまたはSVC拡張に準拠するビットストリームとは異なり、MV−HEVC、3D−HEVC、またはSHVCに準拠するビットストリームは、イントラランダムアクセスポイント(IRAP)ピクチャと非IRAPピクチャとを含むアクセスユニットを含み得る。IRAPピクチャと非IRAPピクチャとを含むアクセスユニットは、MV−HEVC、3D−HEVC、およびSHVCではランダムアクセスのために使用され得る。しかしながら、ISOBMFFおよびその既存の拡張は、そのようなアクセスユニットを特定する方法を提供しない。このことは、コンピューティングデバイスがランダムアクセスとレイヤ切替えとを実行するための能力を妨げ得る。
【0019】
[0030]したがって、本開示の一例によれば、コンピューティングデバイスは、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成することができる。トラックのためのメディアデータは、サンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータ(たとえば、MV−HEVC、3D−HEVC、またはSHVCビデオデータ)のビデオアクセスユニットであり得る。ファイルを生成することの一部として、コンピューティングデバイスは、ファイルにおいて、少なくとも1つのIRAPピクチャを含むサンプルのすべてを記録する(document)追加のボックスを生成することができる。追加のボックス中の情報に基づいてIRAPピクチャを含むサンプルを決定できることで、ファイルを受信するコンピューティングデバイスは、NALユニットを解析し解釈することなく、ランダムアクセスとレイヤ切替えとを実行することが可能になり得る。このことは、複雑さと処理時間とを低減し得る。
【0020】
[0031]さらに、MV−HEVC、3D−HEVC、およびSHVCビデオデータのようなマルチレイヤビデオデータは、各アクセスユニットについて複数のコーディングされたピクチャを含み得る。しかしながら、ISOBMFFおよびその既存の拡張は、アクセスユニット中に複数の符号化されたピクチャがあるときに、アクセスユニット内の個々のコーディングされたピクチャに関する情報を提供しない。したがって、コンピューティングデバイス(たとえば、ストリーミングサーバ)がファイル中のNALユニットを転送するかどうか決定している例では、コンピューティングデバイスは、NALユニットを転送するかどうかを決定するために、NALユニットに記憶されている情報を解析して解釈する必要があり得る。NALユニットに記憶されている情報を解析して解釈することは、コンピューティングデバイスの複雑さを高めることがあり、ストリーミングの遅延を増やすことがある。
【0021】
[0032]したがって、本開示の一例によれば、コンピューティングデバイスは、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成することができる。トラックのためのメディアデータは、サンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットである。ファイルを生成することの一部として、コンピューティングデバイスは、ファイル中に、サブサンプル情報ボックス中で与えられるサブサンプル情報のタイプを指定するフラグを含むサブサンプル情報ボックスを生成する。そのフラグがある特定の値を有するとき、サブサンプル情報ボックスに対応するサブサンプルは、ちょうど1つのコーディングされたピクチャと、当該コーディングされたピクチャと関連付けられる0個以上の非ビデオコーディングレイヤ(VCL)NALユニットとを含む。このようにして、ファイルを受信するコンピューティングデバイスは、ファイルのサンプル内の個々のコーディングされたピクチャに関する決定を行うために、サブサンプル情報ボックス中で与えられるサブサンプル情報を使用することが可能であり得る。コーディングされたピクチャと関連付けられる非VCL NALユニットは、当該コーディングされたピクチャに適用可能なパラメータセット(たとえば、PPS、SPS、VPS)およびSEIのためのNALユニットを含み得る。
【0022】
[0033]マルチレイヤビデオデータにおいて、アクセスユニットは、出力のためのものと示されている(標識されている(marked))コーディングされたピクチャと、出力のためのものと示されていないコーディングされたピクチャとを含み得る。ビデオデコーダは、出力のためのものと示されていないコーディングされたピクチャを、出力のためのものと示されているピクチャを復号するための参照ピクチャとして使用することができる。ピクチャのスライスのNALユニットのためのNALユニットヘッダは、ピクチャが出力のためのものと示されているかどうかを示す、ピクチャ出力フラグ(たとえば、HEVCにおけるpic_output_flag)を含み得る。ISOBMFFファイルでは、各サンプルは、サンプルがいつ出力されるべきかを示す出力時間(たとえば、合成時間)と関連付けられることが要求される。しかしながら、出力のためのものと示されていないピクチャは、出力時間を有しない。したがって、出力のためのものと示されていないピクチャの存在は、ISOBMFFのこの要求に違反することがあり、または非標準的な回避技法を必要とすることがある。
【0023】
[0034]したがって、本開示の1つまたは複数の技法によれば、コンピューティングデバイスは、メディアコンテンツを含むメディアデータボックスを備えるファイルを生成することができる。メディアコンテンツは、サンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータのアクセスユニットを備える。ファイルを生成することの一部として、コンピューティングデバイスは、マルチレイヤビデオデータのビットストリームの少なくとも1つのアクセスユニットが、第1の値(たとえば、1)に等しいピクチャ出力フラグを有するコーディングされたピクチャと、第2の値(たとえば、0)に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むという決定に応答して、ファイルにビットストリームを記憶するために少なくとも2つのトラックを使用することができる。少なくとも2つのトラックからの各それぞれのトラックに対して、それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のピクチャ出力フラグを有する。第1の値(たとえば、1)に等しいピクチャ出力フラグを有するピクチャは、出力されることが許可され、第2の値(たとえば、0)に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることが許可されるが、出力されることは許可されない。少なくとも2つのトラックの使用は、上で説明された問題を解決することができ、それは、各トラック中の各サンプルが適切な出力時間を割り当てられ得、ビデオデコーダは出力されることが許可されないサンプルを含むトラック中のピクチャを出力し得ないからである。
【0024】
[0035]本開示の技法の説明の大半は、MV−HEVCと、3D−HEVCと、SHVCとを説明するが、本開示の技法は、他のビデオコーディング規格および/またはその拡張に適用可能であり得ることを、読者は理解するだろう。
【0025】
[0036]
図1は、本開示で説明される技法を使用することができる、例示的なビデオ符号化および復号システム10を示すブロック図である。
図1に示されているように、システム10は、宛先デバイス14によって後で復号されるべき符号化されたビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対応し得る。ソースデバイス12および宛先デバイス14は、ビデオデバイスと見なされ得る。
【0026】
[0037]
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムのような、ソース、またはそのようなソースの組合せを含み得る。しかしながら、本開示で説明される技法は、ビデオコーディング全般に適用可能であってよく、ワイヤレスおよび/または有線の適用例に適用され得る。
【0027】
[0038]ビデオエンコーダ20は、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータで生成されたビデオを符号化することができる。ソースデバイス12は、符号化されたビデオデータを、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信することができる。符号化されたビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのために、記憶デバイス33に記憶され得る。
【0028】
[0039]宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を通じて、符号化されたビデオデータを受信する。リンク16を通じて通信され、または記憶デバイス33上に与えられた符号化されたビデオデータは、ビデオデータを復号する際にビデオデコーダ30などのビデオデコーダが使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信される、記憶媒体上に記憶される、またはファイルサーバ上に記憶される、符号化されたビデオデータとともに含まれ得る。
【0029】
[0040]ディスプレイデバイス32は、宛先デバイス14と一体化されてよく、またはその外部にあってよい。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含んでよく、外部のディスプレイデバイスとインターフェースするように構成されてもよい。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを備え得る。
【0030】
[0041]ビデオエンコーダ20およびビデオデコーダ30は各々、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せのような、様々な適切なエンコーダ回路のいずれかとして実装され得る。本技法がソフトウェアで部分的に実装されるとき、デバイスは、ソフトウェアに対する命令を適切な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために、1つまたは複数のプロセッサを使用して命令をハードウェアで実行することができる。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダの中に含まれてよく、そのいずれかが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されてよい。
【0031】
[0042]宛先デバイス14は、リンク16を介して、復号されるべき符号化されたビデオデータを受信することができる。リンク16は、ソースデバイス12から宛先デバイス14に符号化されたビデオデータを移すことが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク16は、ソースデバイス12が、符号化されたビデオデータをリアルタイムで宛先デバイス14に直接送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、高周波(RF)スペクトルまたは1つもしくは複数の物理伝送線路のような、任意のワイヤレスまたは有線の通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【0032】
[0043]代替的に、出力インターフェース22は、記憶デバイス33に符号化されたデータを出力することができる。同様に、入力インターフェース28は、符号化されたデータ記憶デバイス33にアクセスすることができる。記憶デバイス33は、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体のような、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイス33は、ソースデバイス12によって生成された符号化されたビデオを保持し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイス33から記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであってよい。例示的なファイルサーバは、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続記憶(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む、任意の標準的なデータ接続を介して、符号化されたビデオデータにアクセスすることができる。これは、ファイルサーバ上に記憶されている符号化されたビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。記憶デバイス33からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【0033】
[0044]本開示の技法は、必ずしもワイヤレスの適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティングおよび/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0034】
[0045]さらに、
図1の例では、ビデオコーディングシステム10はファイル生成デバイス34を含む。ファイル生成デバイス34は、ソースデバイス12によって生成された符号化されたビデオデータを受信することができる。ファイル生成デバイス34は、符号化されたビデオデータを含むファイルを生成することができる。宛先デバイス14は、ファイル生成デバイス34によって生成されるファイルを受信することができる。様々な例において、ファイル生成デバイス34は、様々なタイプのコンピューティングデバイスを含み得る。たとえば、ファイル生成デバイス34は、メディア認識ネットワーク要素(MANE:Media Aware Network Element)、サーバコンピューティングデバイス、パーソナルコンピューティングデバイス、専用コンピューティングデバイス、商用コンピューティングデバイス、または別のタイプのコンピューティングデバイスを備え得る。いくつかの例では、ファイル生成デバイス34は、コンテンツ配信ネットワークの一部である。ファイル生成デバイス34は、リンク16のようなチャネルを介してソースデバイス12から符号化されたビデオデータを受信することができる。さらに、宛先デバイス14は、リンク16のようなチャネルを介してファイル生成デバイス34からファイルを受信することができる。ファイル生成デバイス34は、ビデオデバイスと見なされ得る。
【0035】
[0046]他の例では、ソースデバイス12または別のコンピューティングデバイスは、符号化されたビデオデータを含むファイルを生成することができる。しかしながら、説明を簡単にするために、本開示は、ファイルを生成するものとしてファイル生成デバイス34を説明する。それでも、そのような説明はコンピューティングデバイス全般に適用可能であることを理解されたい。
【0036】
[0047]ビデオエンコーダ20およびビデオデコーダ30は、High Efficiency Video Coding(HEVC)規格およびその拡張のような、ビデオ圧縮規格に従って動作し得る。HEVC規格は、ISO/IEC 23008−2とも呼ばれ得る。最近、HEVCの設計は、ITU−T Video Coding Experts Group(VCEG)とISO/IEC Motion Picture Experts Group(MPEG)とのJoint Collaboration Team on Video Coding(JCT−VC)によって完成された。以後HEVC WDと呼ばれる、最新のHEVCドラフト仕様は、http://phenix.int−evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC−N1003−v1.zipから入手可能である。HEVCに対するマルチビュー拡張、すなわちMV−HEVCも、JCT−3Vによって開発中である。以後MV−HEVC WD5と呼ばれる、「MV−HEVC Draft Text 5」という表題の、MV−HEVCの最近のワーキングドラフト(WD)は、http://phenix.it−sudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V−E1004−v6.zipから入手可能である。SHVCと称するHEVCに対するスケーラブル拡張も、JCT−VCによって開発中である。以後SHVC WD3と呼ばれる、「High efficiency video coding(HEVC) scalable extension draft 3」という表題の、SHVCの最新のワーキングドラフト(WD)は、http://phenix.it−sudparis.eu/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC−N1008−v3.zipから入手可能である。HEVCの範囲の拡張の最新のワーキングドラフト(WD)は、http://phenix.int−evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC−N1005−v3.zipから入手可能である。「3D−HEVC Draft Text 1」という表題の、HEVCの3D拡張、すなわち3D−HEVCの最新のワーキングドラフト(WD)は、http://phenix.int−evry.fr/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V−E1001−v3.zipから入手可能である。ビデオエンコーダ20およびビデオデコーダ30は、これらの規格の1つまたは複数に従って動作し得る。
【0037】
[0048]代替的に、ビデオエンコーダ20およびビデオデコーダ30は、他のプロプライエタリ規格、もしくは、MPEG−4,Part 10,Advanced Video Coding(AVC)と代替的に呼ばれるITU−T H.264規格のような業界規格、または、そのような規格の拡張に従って動作することができる。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、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を含む。
【0038】
[0049]
図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は各々、オーディオエンコーダおよびデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。MUX−DEMUXユニットは、適用可能な場合、いくつかの例では、ITU H.223マルチプレクサプロトコル、またはユーザデータプロトコル(UDP)のような他のプロトコルに適合し得る。
【0039】
[0050]JCT−VCは、HEVC規格の開発に取り組んでいる。HEVC規格化の取組みは、HEVC Test Model(HM)と呼ばれるビデオコーディングデバイスの進化するモデルに基づく。HMは、たとえばITU−T H.264/AVCに従う既存のデバイスに対する、ビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264/AVCは、9つのイントラ予測符号化モードを提供するが、HMは、33個もの多数のイントラ予測符号化モードを提供することができる。
【0040】
[0051]全般に、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含むツリーブロックまたは最大コーディングユニット(LCU)のシーケンスに分割され得ることを記述する。ツリーブロックは、「コーディングツリーユニット」(CTU)とも呼ばれ得る。ツリーブロックは、H.264/AVC規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序での、いくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、四分木に従ってコーディングユニット(CU)に分割され得る。たとえば、4分木のルートノードとしてのツリーブロックは、4つの子ノードに分割されてよく、各子ノードは、今度は親ノードとなり、別の4つの子ノードに分割されてよい。4分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード、すなわち、コーディングされたビデオブロックを備える。コーディングされたビットストリームと関連付けられるシンタックスデータは、ツリーブロックが分割され得る最大の回数を定義することができ、コーディングノードの最小のサイズを定義することもできる。
【0041】
[0052]CUは、コーディングノードと、コーディングノードと関連付けられる予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が四角形(square)でなければならない。CUのサイズは、8×8ピクセルから、最大で64×64ピクセルまたはそれを越えるツリーブロックのサイズにまでわたり得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。CUと関連付けられるシンタックスデータは、たとえば、CUの1つまたは複数のPUへの区分を記述し得る。区分モードは、CUがスキップモード符号化もしくは直接モード符号化されるのか、イントラ予測モード符号化されるのか、またはインター予測モード符号化されるのかによって異なり得る。PUは、形状が非方形となるように区分され得る。CUと関連付けられるシンタックスデータは、たとえば、4分木に従った1つまたは複数のTUへのCUの区分を記述し得る。TUは、形状が方形または非方形であり得る。
【0042】
[0053]HEVC規格は、異なるCUに対して異なり得る、TUに従った変換を可能にする。TUは通常、区分されたLCUについて定義される所与のCU内のPUのサイズに基づいてサイズ決定されるが、必ずそうなっているとは限らない。TUは通常、PU以下のサイズである。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT)として知られる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは、TUと呼ばれ得る。TUと関連付けられるピクセル差分値は、量子化され得る変換係数を生成するために変換され得る。
【0043】
[0054]一般に、PUは、予測プロセスに関するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。PUの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの分解能(resolution)(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述することができる。
【0044】
[0055]一般に、TUは、変換プロセスおよび量子化プロセスのために使用される。1つまたは複数のPUを有する所与のCUは、1つまたは複数の変換ユニット(TU)も含み得る。予測の後に、ビデオエンコーダ20は、PUに対応する残差値を計算することができる。残差値はピクセル差分値を備え、ピクセル差分値は、エントロピーコーディングのための直列化された変換係数を生成するために、TUを使用して変換係数に変換され、量子化され、走査され得る。本開示は通常、CUのコーディングノード(すなわち、コーディングブロック)を指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合には、本開示はまた、コーディングノードとPUとTUと含む、ツリーブロック、すなわち、LCUまたはCUを指すために、「ビデオブロック」という用語を使用し得る。
【0045】
[0056]ビデオシーケンスは通常、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、一般に、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOPに含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ、ピクチャの1つもしくは複数のヘッダ、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定されたサイズまたは変化するサイズを有してよく、指定されるコーディング規格によってサイズが異なり得る。
【0046】
[0057]例として、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を指す。
【0047】
[0058]本開示では、「N×N」および「N by N」は、垂直方向の寸法および水平方向の寸法に関するビデオブロックのピクセル寸法、たとえば、16×16ピクセルまたは16 by 16ピクセルを指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセル(y=16)、および水平方向に16ピクセル(x=16)を有する。同様に、N×Nブロックは、一般に、垂直方向にNピクセル、および水平方向にNピクセルを有し、ここでNは非負の整数値を表す。ブロック中のピクセルは、行および列に配置され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはN×Mピクセルを備えてよく、この場合に、Mは必ずしもNに等しいとは限らない。
【0048】
[0059]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオエンコーダ20は、CUのTUのための残差データを計算することができる。PUは、(ピクセル領域とも呼ばれる)空間領域におけるピクセルデータを備えてよく、TUは、変換、たとえば、残差ビデオデータに対する離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用の後の、変換領域における係数を備えてよい。残差データは、符号化されていないピクチャのピクセルとPUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、CUのための変換係数を生成するためにTUを変換することができる。
【0049】
[0060]変換係数を生成するためのあらゆる変換の後で、ビデオエンコーダ20は、変換係数の量子化を実行することができる。量子化は一般に、係数を表すために使用されるデータの量をできるだけ低減するために、変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。量子化プロセスは、係数の一部またはすべてと関連付けられるビット深度を低減することができる。たとえば、nビットの値は、量子化の間にmビットの値に切り捨てられてよく、ここで、nはmよりも大きい。
【0050】
[0061]いくつかの例では、ビデオエンコーダ20は、量子化された変換係数を走査して、エントロピー符号化され得る直列化されたベクトルを生成するために、あらかじめ定義された走査順序を使用することができる。他の例では、ビデオエンコーダ20は、適応走査を実行することができる。量子化された変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC:context-adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC:context-adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング、または別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化することができる。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための、符号化されたビデオデータと関連付けられるシンタックス要素をエントロピー符号化することができる。
【0051】
[0062]CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当てることができる。コンテキストは、たとえば、シンボルの隣接値が0ではないかどうかに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルの可変長コードを選択することができる。可変長コーディング(VLC)におけるコードワードは、比較的短いコードが優勢シンボルに対応する一方で、より長いコードが劣勢シンボルに対応するように構成され得る。このように、VLCの使用は、たとえば、送信されるべき各シンボルに対して等長のコードワードを使用するよりもビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【0052】
[0063]ビデオエンコーダ20は、コーディングされたピクチャおよび関連付けられるデータの表現を形成するビットのシーケンスを含むビットストリームを出力することができる。「ビットストリーム」という用語は、ネットワーク抽象化レイヤ(NAL)ユニットストリーム(たとえば、NALユニットのシーケンス)、またはバイトストリーム(たとえば、HEVC規格のAnnex Bによって指定されたスタートコードプレフィックスとNALユニットとを含むNALユニットストリームのカプセル化)のいずれかを指すために使用される総称であり得る。NALユニットは、NALユニット中のデータのタイプの指示と、必要に応じてエミュレーション防止ビットが点在するローバイトシーケンスペイロード(RBSP:raw byte sequence payload)の形態でそのデータを含むバイトとを含む、シンタックス構造である。NALユニットの各々は、NALユニットヘッダを含んでよく、RBSPをカプセル化することができる。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含み得る。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含むシンタックス構造であり得る。いくつかの事例では、RBSPは0ビットを含む。
【0053】
[0064]様々なタイプのNALユニットは、様々なタイプのRBSPをカプセル化することができる。たとえば、第1のタイプのNALユニットはピクチャパラメータセット(PPS)のためのRBSPをカプセル化することができ、第2のタイプのNALユニットはスライスセグメントのためのRBSPをカプセル化することができ、第3のタイプのNALユニットは補助強化情報(SEI:supplemental enhancement information)のためのRBSPをカプセル化することができ、以下同様である。ビデオコーディングデータのためのRBSPをカプセル化するNALユニットは(パラメータセットおよびSEIメッセージのためのRBSPとは対照的に)、ビデオコーディングレイヤ(VCL)NALユニットと呼ばれ得る。パラメータセット(たとえば、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、PPSなど)を含むNALユニットは、パラメータセットNALユニットと呼ばれ得る。
【0054】
[0065]本開示は、セグメントスライスのためのRBSPをカプセル化するNALユニットを、コーディングされたスライスNALユニットと呼び得る。HEVC WDにおいて定められるように、スライスセグメントは、タイル走査において連続的に順序付けられ単一のNALユニットに含まれる整数個のCTUである。対照的に、HEVC WDでは、スライスは、1つの独立したスライスセグメントと、同じアクセスユニット内の(もしあれば)次の独立スライスセグメントに先行する(もしあれば)すべての後続の従属スライスセグメントとに含まれる、整数個のCTUであり得る。独立スライスセグメントは、スライスセグメントヘッダのシンタックス要素の値が先行するスライスセグメントの値から推測されない、スライスセグメントである。従属スライスセグメントは、スライスセグメントヘッダの一部のシンタックス要素の値が復号順序で先行する独立スライスセグメントの値から推測される、スライスセグメントである。コーディングされたスライスNALユニットのRBSPは、スライスセグメントヘッダとスライスデータとを含み得る。スライスセグメントヘッダは、スライスセグメントにおいて表される最初のまたはすべてのCTUに関するデータ要素を含む、コーディングされたスライスセグメントの一部である。スライスヘッダは、現在のスライスセグメントである、または復号順序で現在の従属スライスセグメントに先行する直近の独立スライスセグメントである、独立スライスセグメントのスライスセグメントヘッダである。
【0055】
[0066]VPSは、0個以上のコーディングされたビデオシーケンス(CVS)全体に適用されるシンタックス要素を備えるシンタックス構造である。SPSは、0個以上のCVS全体に適用されるシンタックス要素を含むシンタックス構造である。SPSは、SPSがアクティブであるときにアクティブであるVPSを特定するシンタックス要素を含み得る。したがって、VPSのシンタックス要素は、SPSのシンタックス要素よりも一般的に適用可能であり得る。
【0056】
[0067]パラメータセット(たとえば、VPS、SPS、PPSなど)は、スライスのスライスヘッダから直接または間接的に参照される識別情報を含み得る。参照プロセスは「アクティブ化」として知られる。したがって、ビデオデコーダ30が特定のスライスを復号しているとき、その特定のスライスのスライスヘッダ中のシンタックス要素によって直接または間接的に参照されるパラメータセットは「アクティブ化される」と言われる。パラメータセットタイプに応じて、アクティブ化は、ピクチャごとにまたはシーケンスごとに行われ得る。たとえば、スライスのスライスヘッダは、PPSを特定するシンタックス要素を含み得る。したがって、ビデオコーダがスライスをコーディングするとき、PPSはアクティブ化され得る。さらに、PPSは、SPSを特定するシンタックス要素を含み得る。したがって、SPSを特定するPPSがアクティブ化されるとき、SPSはアクティブ化され得る。SPSは、VPSを特定するシンタックス要素を含み得る。したがって、VPSを特定するSPSがアクティブ化されるとき、VPSはアクティブ化される。
【0057】
[0068]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信することができる。加えて、ビデオデコーダ30は、ビットストリームを解析して、ビットストリームからシンタックス要素を取得することができる。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構築することができる。ビデオデータを再構築するためのプロセスは、全般に、ビデオエンコーダ20によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ30は、現在CUのPUの予測ブロックを決定するために、PUの動きベクトルを使用することができる。加えて、ビデオデコーダ30は、現在のCUのTUの係数ブロックを逆量子化することができる。ビデオデコーダ30は、現在のCUのTUの変換ブロックを再構築するために、係数ブロックに対して逆変換を実行することができる。ビデオデコーダ30は、現在のCUのPUの予測ブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに加算することによって、現在のCUのコーディングブロックを再構築することができる。ピクチャの各CUのコーディングブロックを再構築することによって、ビデオデコーダ30はピクチャを再構築することができる。
【0058】
[0069]HEVC WDでは、CVSは、瞬時復号リフレッシュ(IDR)ピクチャ、またはブロークンリンクアクセス(BLA)ピクチャ、または、IDRまたはBLAピクチャではないすべての後続のピクチャを含むビットストリーム中の最初のピクチャであるクリーンランダムアクセス(CRA)ピクチャから開始し得る。IDRピクチャはIスライス(すなわち、イントラ予測のみが使用されるスライス)のみを含む。IDRピクチャは、復号順序でビットストリームにおいて最初のピクチャであり得るか、またはビットストリームにおいて後のほうに現れ得る。各IDRピクチャは、復号順序においてCVSの最初のピクチャである。HEVC WDでは、IDRピクチャは、イントラランダムアクセスポイント(IRAP)ピクチャであり得、そのための各VCL NALユニットは、IDR_W_RADLまたはIDR_N_LPに等しいnal_unit_typeを有する。
【0059】
[0070]IDRピクチャは、ランダムアクセスのために使用され得る。しかしながら、復号順序でIDRピクチャに後続するピクチャは、参照としてIDRピクチャより前に復号されるピクチャを使用することができない。したがって、ランダムアクセスのためにIDRピクチャに依拠するビットストリームは、追加のタイプのランダムアクセスピクチャを使用するビットストリームよりも著しく低いコーディング効率を有し得る。少なくともいくつかの例では、IDRアクセスユニットは、IDRピクチャを含むアクセスユニットである。
【0060】
[0071]復号順序でCRAピクチャに後続するが出力順序でCRAピクチャに先行するピクチャが、参照のためにCRAピクチャの前に復号されるピクチャを使用することを可能にするために、CRAピクチャの概念がHEVCに導入された。復号順序でCRAピクチャに後続するが出力順序でCRAピクチャに先行するピクチャは、CRAピクチャと関連付けられるリーディング(leading)ピクチャ(またはCRAピクチャのリーディングピクチャ)と呼ばれる。すなわち、コーディング効率を改善するために、復号順序でCRAピクチャに後続するが出力順序でCRAピクチャに先行するピクチャが、参照のためにCRAピクチャの前に復号されるピクチャを使用することを可能にするように、CRAピクチャの概念がHEVCに導入された。CRAアクセスユニットは、コーディングされたピクチャがCRAピクチャであるアクセスユニットである。HEVC WDでは、CRAピクチャは、イントラランダムアクセスピクチャであり得、そのための各VCL NALユニットはCRA_NUTに等しいnal_unit_typeを有する。
【0061】
[0072]CRAピクチャのリーディングピクチャは、復号順序でそのCRAピクチャの前に存在するCRAピクチャまたはIDRピクチャから復号が開始する場合、正しく復号可能である。しかしながら、CRAピクチャのリーディングピクチャは、そのCRAピクチャからのランダムアクセスが行われるとき、復号不可能であり得る。したがって、ビデオデコーダは通常、ランダムアクセス復号の間にCRAピクチャのリーディングピクチャを復号する。復号が始まる場所によっては利用可能でないことがある参照ピクチャからの誤りの伝搬を防止するために、復号順序と出力順序の両方でCRAピクチャに後続するピクチャは、復号順序または出力順序のいずれかでCRAピクチャに先行するいずれのピクチャ(リーディングピクチャを含む)も参照のために使用することができない。
【0062】
[0073]BLAピクチャの概念は、CRAピクチャの導入の後にHEVCに導入され、CRAピクチャの概念に基づく。BLAピクチャは通常、CRAピクチャの位置におけるビットストリームのスプライシング(splicing)から生じ、スプライシングされたビットストリームにおいて、スプライシングポイントのCRAピクチャはBLAピクチャに変更される。したがって、BLAピクチャは元のビットストリームにおけるCRAピクチャであってよく、CRAピクチャは、CRAピクチャの位置におけるビットストリームのスプライシングの後でビットストリームスプライサによってBLAピクチャとなるように変更される。いくつかの例では、RAPピクチャを含むアクセスユニットは、本明細書ではRAPアクセスユニットと呼ばれ得る。BLAアクセスユニットは、BLAピクチャを含むアクセスユニットである。HEVC WDでは、BLAピクチャはイントラランダムアクセスピクチャであり得、そのための各VCL NALユニットは、BLA_W_LP、BLA_W_RADL、またはBLA_N_LPに等しいnal_unit_typeが有する。
【0063】
[0074]一般に、IRAPピクチャは、Iスライスのみを含み、BLAピクチャ、CRAピクチャ、またはIDRピクチャであり得る。たとえば、HEVC WDは、IRAPピクチャが、そのための各VCL NALユニットが、両端値を含めてBLA_W_LPからRSV_IRAP_VCL23の範囲のnal_unit_typeを有する、コーディングされたピクチャであり得ることを示す。さらに、HEVC WDは、復号順序でのビットストリームにおける最初のピクチャがIRAPピクチャでなければならないことを示す。HEVC WDの表7−1は、NALユニットタイプコードとNALユニットタイプクラスとを示す。HEVC WDの表7−1が以下で転載される。
【0066】
[0075]BLAピクチャとCRAピクチャとの1つの違いは以下の通りである。CRAピクチャの場合、関連付けられたリーディングピクチャは、復号順序でそのCRAピクチャの前にあるRAPピクチャから復号が開始する場合、正しく復号可能である。しかしながら、CRAピクチャと関連付けられたリーディングピクチャは、そのCRAピクチャからのランダムアクセスが行われるとき(すなわち、復号がCRAピクチャから開始するとき、または言い換えると、CRAピクチャがビットストリーム中の最初のピクチャであるとき)、正しく復号可能ではないことがある。対照的に、復号順序でBLAピクチャの前にあるRAPピクチャから復号が開始するときでも、BLAピクチャと関連付けられるリーディングピクチャが復号可能であるシナリオは存在し得ない。
【0067】
[0076]特定のCRAピクチャまたは特定のBLAピクチャと関連付けられるリーディングピクチャのいくつかは、その特定のCRAピクチャまたは特定のBLAピクチャがビットストリーム中の最初のピクチャであるときでも、正しく復号可能であり得る。これらのリーディングピクチャは復号可能リーディングピクチャ(DLP:decodable leading picture)またはランダムアクセス復号可能リーディング(RADL:random access decodable leading)ピクチャと呼ばれ得る。HEVC WDでは、RADLピクチャは、そのための各VCL NALユニットが、RADL_RまたはRADL_Nに等しいnal_unit_typeを有する、コーディングされたピクチャであり得る。さらに、HEVC WDは、すべてのRADLピクチャがリーディングピクチャであることと、RADLピクチャが同じ関連付けられるIRAPピクチャのトレイリング(trailing)ピクチャの復号プロセスのための参照ピクチャとして使用されないことと、を示す。すべてのRADLピクチャは、存在すれば、復号順序において、同じ関連付けられるIRAPピクチャのすべてのトレイリングピクチャに先行する。RADLアクセスユニットは、コーディングされたピクチャがRADLピクチャであるアクセスユニットであり得ることを、HEVC WDは示す。トレイリングピクチャは、出力順序において、関連付けられるIRAPピクチャ(すなわち、復号順序において前のIRAPピクチャ)の後に続くピクチャであり得る。
【0068】
[0077]他のリーディングピクチャは復号不可能リーディングピクチャ(NLP:non-decodable leading picture)またはランダムアクセススキップリーディング(RASL:random access skipped leading)ピクチャと呼ばれ得る。HEVC WDでは、RASLピクチャは、そのための各VCL NALユニットがRASL_RまたはRASL_Nに等しいnal_unit_typeを有する、コーディングされたピクチャであり得る。すべてのRASLピクチャは、関連付けられるBLAピクチャまたはCRAピクチャのリーディングピクチャである。
【0069】
[0078]必要なパラメータセットが、アクティブ化されることが必要なときに利用可能であるという条件で、IRAPピクチャおよび復号順序でのすべての後続の非RASLピクチャは、復号順序においてIRAPピクチャに先行するいかなるピクチャの復号プロセスも実行することなく、正確に復号され得る。IRAPピクチャではないIスライスのみを含むピクチャがビットストリーム中にあり得る。
【0070】
[0079]マルチビューコーディングでは、異なる視点からの同じシーンの複数のビューが存在し得る。「アクセスユニット」という用語は、同じ時間インスタンスに対応するピクチャのセットを指すために使用され得る。したがって、ビデオデータは、時間とともに生じる一連のアクセスユニットとして概念化され得る。「ビュー成分」は、単一のアクセスユニット中のビューのコーディングされた表現であり得る。本開示では、「ビュー」は、同じビュー識別子と関連付けられたビュー成分のシーケンスまたはセットを指し得る。ビュー成分は、テクスチャビュー成分と深度ビュー成分とを含み得る。本開示では、「ビュー」は、同じビュー識別子と関連付けられる1つまたは複数のビュー成分のセットまたはシーケンスを指し得る。
【0071】
[0080]テクスチャビュー成分(すなわち、テクスチャピクチャ)は、単一のアクセスユニット中のビューのテクスチャのコーディングされた表現であり得る。テクスチャビューは、ビュー順序インデックスの同一の値と関連付けられるテクスチャビュー成分のシーケンスであり得る。ビューのビュー順序インデックスは、他のビューに対する当該ビューのカメラ位置を示し得る。深度ビュー成分(すなわち、深度ピクチャ)は、単一のアクセスユニット中のビューの深度のコーディングされた表現であり得る。深度ビューは、ビュー順序インデックスの同一の値と関連付けられる1つまたは複数の深度ビュー成分のセットまたはシーケンスであり得る。
【0072】
[0081]MV−HEVC、3D−HEVC、およびSHVCでは、ビデオエンコーダは、一連のNALユニットを備えるビットストリームを生成し得る。当該ビットストリームの異なるNALユニットは、当該ビットストリームの異なるレイヤと関連付けられ得る。レイヤは、同じレイヤ識別子を有するVCL NALユニットおよび関連付けられる非VCL NALユニットのセットとして定義され得る。レイヤは、マルチビュービデオコーディングにおけるビューと等価であり得る。マルチビュービデオコーディングでは、レイヤは、異なる時間インスタンスを伴う同じレイヤのすべてのビュー成分を含み得る。各ビュー成分は、特定の時間インスタンスにおける特定のビューに属するビデオシーンのコーディングされたピクチャであり得る。3Dビデオコーディングのいくつかの例では、レイヤは、特定のビューのすべてのコーディングされた深度ピクチャ、または特定のビューのコーディングされたテクスチャピクチャのいずれかを含み得る。3Dビデオコーディングの他の例では、レイヤは、特定のビューのテクスチャビュー成分と深度ビュー成分の両方を含み得る。同様に、スケーラブルビデオコーディングの状況において、レイヤは通常、他のレイヤの中のコーディングされたピクチャと異なるビデオ特性を有するコーディングされたピクチャに対応する。そのようなビデオ特性は通常、空間解像度と品質レベル(たとえば、信号対雑音比)とを含む。HEVCおよびその拡張では、時間スケーラビリティは、特定の時間レベルを伴うピクチャのグループをサブレイヤとして定義することによって、1つのレイヤ内で達成され得る。
【0073】
[0082]ビットストリームのそれぞれの各レイヤについて、より低いレイヤの中のデータは、任意のより高いレイヤの中のデータを参照せずに復号され得る。スケーラブルビデオコーディングでは、たとえば、ベースレイヤの中のデータは、エンハンスメントレイヤの中のデータを参照せずに復号され得る。一般に、NALユニットは、単一のレイヤのデータをカプセル化するだけであり得る。したがって、ビットストリームの残りの最高次のレイヤのデータをカプセル化するNALユニットは、ビットストリームの残りのレイヤの中のデータの復号可能性に影響を及ぼすことなく、ビットストリームから除去され得る。マルチビューコーディングおよび3D−HEVCでは、より高いレイヤは、さらなるビュー成分を含み得る。SHVCでは、より高次のレイヤは、信号対雑音比(SNR)強化データ、空間的エンハンスメントデータ、および/または時間的エンハンスメントデータを含み得る。MV−HEVC、3D−HEVCおよびSHVCでは、ビデオデコーダが、あるレイヤの中のピクチャをいかなる他のレイヤのデータも参照せずに復号できる場合、そのレイヤは「ベースレイヤ」と呼ばれ得る。ベースレイヤは、HEVCベースの規格(たとえば、HEVC WD)に準拠し得る。
【0074】
[0083]SVCでは、ベースレイヤ以外のレイヤは、「エンハンスメントレイヤ」と呼ばれることがあり、ビットストリームから復号されるビデオデータの視覚的品質を向上させる情報を提供し得る。SVCは、空間分解能、信号対雑音比(すなわち、品質)、または時間レートを向上させることができる。スケーラブルビデオコーディング(たとえば、SHVC)では、「レイヤ表現」は、単一のアクセスユニット中の空間レイヤのコーディングされた表現であり得る。説明を簡単にするために、本開示は、ビュー成分および/またはレイヤ表現を「ビュー成分/レイヤ表現」または単に「ピクチャ」と呼び得る。
【0075】
[0084]レイヤを実装するために、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ユニットは、ビットストリームの異なるレイヤに属する。
【0076】
[0085]いくつかの例では、NALユニットがマルチビューコーディング(たとえば、MV−HEVC)、3DVコーディング(たとえば、3D−HEVC)、またはスケーラブルビデオコーディング(たとえば、SHVC)におけるベースレイヤに関係する場合、NALユニットのnuh_layer_idシンタックス要素は0に等しい。ビットストリームのベースレイヤの中のデータは、ビットストリームのいずれの他のレイヤの中のデータも参照せずに復号され得る。NALユニットが、マルチビューコーディング、3DV、またはスケーラブルビデオコーディングにおけるベースレイヤに関係しない場合、NALユニットのnuh_layer_idシンタックス要素は0ではない値を有し得る。
【0077】
[0086]さらに、1つのレイヤ内のいくつかのビュー成分/レイヤ表現は、同じレイヤ内の他のビュー成分/レイヤ表現を参照せずに復号され得る。したがって、レイヤのいくつかのビュー成分/レイヤ表現のデータをカプセル化したNALユニットは、そのレイヤ中の他のビュー成分/レイヤ表現の復号可能性に影響を及ぼすことなくビットストリームから除去され得る。そのようなビュー成分/レイヤ表現のデータをカプセル化したNALユニットを除去すると、ビットストリームのフレームレートが下がり得る。レイヤ内の他のビュー成分/レイヤ表現を参照せずに復号され得るレイヤ内のビュー成分/レイヤ表現のサブセットは、本明細書では「サブレイヤ」または「時間サブレイヤ」と呼ばれ得る。
【0078】
[0087]NALユニットは、NALユニットの時間識別子(すなわち、TemporalId)を指定するtemporal_idシンタックス要素を含み得る。NALユニットの時間識別子は、そのNALユニットが属するサブレイヤを特定する。したがって、ビットストリームの各サブレイヤは、異なる時間識別子を有し得る。一般に、レイヤの第1のNALユニットの時間識別子が同じレイヤの第2のNALユニットの時間識別子よりも小さい場合、第1のNALユニットによってカプセル化されたデータは、第2のNALユニットによってカプセル化されたデータを参照せずに復号され得る。
【0079】
[0088]ビットストリームは、複数のオペレーションポイントと関連付けられ得る。ビットストリームの各オペレーションポイントは、レイヤ識別子のセット(たとえば、nuh_layer_id値のセット)および時間識別子と関連付けられる。レイヤ識別子のセットはOpLayerIdSetと表記されることがあり、時間識別子はTemporalIDと表記されることがある。NALユニットのレイヤ識別子がオペレーションポイントのレイヤ識別子のセットの中にあり、NALユニットの時間識別子がオペレーションポイントの時間識別子以下である場合、NALユニットはオペレーションポイントと関連付けられる。したがって、オペレーションポイントは、ビットストリーム中のNALユニットのサブセットに対応し得る。
【0080】
[0089]上で紹介されたように、本開示は、ISOベースのメディアファイルフォーマット(ISOBMFF)に基づくファイルにビデオコンテンツを記憶することに関する。具体的には、本開示は、複数のコーディングされたレイヤを含むビデオストリームを記憶するための様々な技法を説明し、各レイヤは、スケーラブルレイヤ、テクスチャビュー、深度ビュー、または他のタイプのレイヤもしくはビューであり得る。本開示の技法は、たとえば、MV−HEVCビデオデータ、SHVCビデオデータ、3D−HEVCビデオデータ、および/または他のタイプのビデオデータの記憶に適用され得る。
【0081】
[0090]ファイルフォーマットおよびファイルフォーマット規格が、ここで簡単に論じられる。ファイルフォーマット規格は、ISOベースのメディアファイルフォーマット(ISOBMFF、ISO/IEC 14496−12、以後「ISO/IEC 14996−12」)と、MPEG−4ファイルフォーマット(ISO/IEC14496−14)、3GPP(登録商標)ファイルフォーマット(3GPP TS26.244)、およびAVCファイルフォーマット(ISO/IEC14496−15、以後「ISO/IEC 14996−15」)を含む、ISOBMFFから派生した他のファイルフォーマット規格とを含む。したがって、ISO/IEC 14996−12は、ISOベースのメディアファイルフォーマットを規定する。他の文書は、特定の用途のためにISOベースのメディアファイルフォーマットを拡張する。たとえば、ISO/IEC 14996−15は、ISOベースのメディアファイルフォーマットにおける、NALユニット構造のビデオの搬送を記述する。H.264/AVCおよびHEVC、さらにはそれらの拡張は、NALユニット構造のビデオの例である。ISO/IEC 14996−15は、H.264/AVC NALユニットの搬送を記述するセクションを含む。加えて、ISO/IEC 14996−15のセクション8は、HEVC NALユニットの搬送を記述する。
【0082】
[0091]ISOBMFFは、AVCファイルフォーマットのような多くのコーデックカプセル化フォーマットのための、さらには、MPEG−4ファイルフォーマット、3GPPファイルフォーマット(3GP)、およびDVBファイルフォーマットのような多くのマルチメディアコンテナフォーマットのための、基礎として使用され得る。オーディオおよびビデオのような連続的なメディアに加えて、画像、さらにはメタデータのような静的なメディアが、ISOBMFFに準拠したファイルに記憶され得る。ISOBMFFに従って構成されたファイルは、ローカルメディアファイルの再生、リモートファイルの漸進的なダウンロード、Dynamic Adaptive Streaming over HTTP(DASH)のためのセグメント、ストリーミングされるべきコンテンツのためのコンテナおよびそのパケット化命令、ならびに、受信されたリアルタイムメディアストリームの記録を含む、多くの目的のために使用され得る。したがって、元々は記憶のために設計されたが、ISOBMFFは、ストリーミング、たとえばプログレッシブダウンロードまたはDASHのために有用であることがわかっている。ストリーミングの目的で、ISOBMFFで定義されたムービーフラグメントが使用され得る。
【0083】
[0092]HEVCファイルフォーマットに準拠するファイルは、ボックスと呼ばれる一連のオブジェクトを備え得る。「ボックス」は、固有のタイプ識別子および長さによって定義されるオブジェクト指向型の構築ブロックであり得る。たとえば、ボックスは、4文字のコーディングされたボックスタイプと、ボックスのバイトカウントと、ペイロードとを含む、ISOBMFFにおける基本的なシンタックス構造であり得る。言い換えると、ボックスは、コーディングされたボックスタイプと、ボックスのバイトカウントと、ペイロードとを備える、シンタックス構造であり得る。いくつかの事例では、HEVCファイルフォーマットに準拠するファイル中のすべてのデータがボックスに含まれることがあり、ボックス中にないファイルの中にはデータがないことがある。したがって、ISOBMFFファイルは、ボックスのシーケンスからなっていてよく、ボックスは他のボックスを含んでよい。たとえば、ボックスのペイロードは、1つまたは複数の追加のボックスを含み得る。本開示の他の箇所で詳細に説明される
図5および
図6は、本開示の1つまたは複数の技法による、ファイル内の例示的なボックスを示す。
【0084】
[0093]ISOBMFFに準拠するファイルは、様々なタイプのボックスを含み得る。たとえば、ISOBMFFに準拠するファイルは、ファイルタイプボックス、メディアデータボックス、ムービーボックス、ムービーフラグメントボックスなどを含み得る。この例では、ファイルタイプボックスは、ファイルタイプと互換性情報とを含む。メディアデータボックスは、サンプル(たとえば、コーディングされたピクチャ)を含み得る。ムービーボックス(「moov」)は、ファイル中に存在する連続的なメディアストリームのメタデータを含む。連続的なメディアストリームの各々は、トラックとしてファイルにおいて表され得る。たとえば、ムービーボックスは、ムービーに関するメタデータ(たとえば、サンプル間の論理関係およびタイミング関係、ならびにまた、サンプルの位置へのポインタ)を含み得る。ムービーボックスは、いくつかのタイプのサブボックスを含み得る。ムービーボックス中のサブボックスは、1つまたは複数のトラックボックスを含み得る。トラックボックスは、ムービーの個々のトラックについての情報を含み得る。トラックボックスは、単一のトラックの全体的な情報を指定するトラックヘッダボックスを含み得る。加えて、トラックボックスは、メディア情報ボックスを含むメディアボックスを含み得る。メディア情報ボックスは、トラック中のメディアサンプルのデータインデックスを含むサンプルテーブルボックスを含み得る。サンプルテーブルボックス中の情報は、時間的にサンプルの位置を特定するために使用されてよく、トラックのサンプルの各々について、サンプルのタイプ、サイズ、コンテナ、およびそのコンテナ中のオフセットを特定するために使用されてよい。したがって、トラックに対するメタデータは、トラックボックス(「trak」)に含まれるが、トラックのメディアコンテンツは、メディアデータボックス(「mdat」)に含まれるか、または別のファイルに直接含まれるかのいずれかである。トラックに対するメディアコンテンツは、オーディオまたはビデオアクセスユニットのようなサンプルのシーケンスを備える(たとえば、それらからなる)。
【0085】
[0094]ISOBMFFは、次のタイプのトラック、すなわち、エレメンタリメディアストリームを含むメディアトラックと、メディア送信命令を含むか受信されたパケットストリームを表すかのいずれかであるヒントトラックと、時間同期されたメタデータを備えるタイムド(timed)メタデータトラックとを規定する。各トラックに対するメタデータは、サンプル記述エントリーのリストを含み、サンプル記述エントリーの各々が、トラック中で使用されるコーディングフォーマットまたはカプセル化フォーマットと、そのフォーマットを処理するために必要な初期化データとを提供する。各サンプルは、トラックのサンプル記述エントリーの1つと関連付けられる。
【0086】
[0095]ISOBMFFは、様々な機構によってサンプル固有のメタデータを規定することを可能にする。Sample Tableボックス(「stbl」)内の特定のボックスが、一般的な需要に応えるために標準化されている。たとえば、Sync Sampleボックス(「stss」)は、サンプルテーブルボックス内のボックスである。Sync Sampleボックスは、トラックのランダムアクセスサンプルを列挙するために使用される。本開示は、Sync Sampleボックスにより列挙されるサンプルを、シンクサンプルと呼び得る。別の例では、サンプルグループ化機構は、ファイル中のサンプルグループ記述エントリーとして指定される同じ特性を共有するサンプルのグループへの、4文字のグループ化タイプに従ったサンプルのマッピングを可能にする。いくつかのグループ化タイプが、ISOBMFFにおいて規定されている。
【0087】
[0096]サンプルテーブルボックスは、1つまたは複数のSampleToGroupボックスと、1つまたは複数のサンプルグループ記述ボックス(すなわち、SampleGroupDescriptionボックス)とを含み得る。SampleToGroupボックスは、サンプルが属するサンプルグループと、そのサンプルグループの関連付けられた記述とを決定するために使用され得る。言い換えると、SampleToGroupボックスは、サンプルが属するグループを示し得る。SampleToGroupボックスは、「sbgp」というボックスタイプを有し得る。SampleToGroupボックスは、グループ化タイプ要素(たとえば、grouping_type)を含み得る。グループ化タイプ要素は、サンプルグループ化のタイプ(すなわち、サンプルグループを形成するために使用される基準)を特定する整数であり得る。さらに、SampleToGroupボックスは、1つまたは複数のエントリーを含み得る。SampleToGroupボックス中の各エントリーは、トラック中の異なる重複しない一連の連続するサンプルと関連付けられ得る。各エントリーは、サンプルカウント要素(たとえば、sample_count)と、グループ記述インデックス要素(たとえば、group_description_index)とを示し得る。エントリーのサンプルカウント要素は、エントリーと関連付けられるいくつかのサンプルを示し得る。言い換えると、エントリーのサンプルカウント要素は、同じサンプルグループ記述子をもつ連続するサンプルの数を与える整数であり得る。グループ記述インデックス要素は、エントリーと関連付けられたサンプルの記述を含むSampleGroupDescriptionボックスを特定することができる。複数のエントリーのグループ記述インデックス要素は、同じSampleGroupDescriptionボックスを特定することができる。
【0088】
[0097]現在のファイルフォーマット設計には、1つまたは複数の問題があり得る。ISOBMFFに基づく特定のビデオコーデックのビデオコンテンツを記憶するために、そのビデオコーデックに対するファイルフォーマット規格が必要となり得る。MV−HEVCおよびSHVCのような複数のレイヤを含むビデオストリームの記憶のために、SVCおよびMVCファイルフォーマットから概念の一部を再使用することが可能である。しかしながら、多くの部分は、SHVCおよびMV−HEVCビデオストリームに対して直接使用され得ない。HEVCファイルフォーマットの直接の適用には、少なくとも次の欠点がある。SHVCおよびMV−HEVCビットストリームは、ベースレイヤ中のIRAPピクチャを含むアクセスユニットで開始し得るが、他のレイヤ中の他の非IRAPピクチャも含むことがあり、またはこの逆であることがある。シンクサンプルは現在、ランダムアクセスのためにそのような点を指し示すことを許容しない。
【0089】
[0098]本開示は、複数のレイヤを含むビデオストリームの効率的で柔軟な記憶を可能にするために、上記の問題に対する可能性のある解決法を説明し、さらに、他の可能性のある改善を提供する。本開示で説明される技法は潜在的に、任意のビデオコーデックによってコーディングされたそのようなビデオコンテンツの記憶のために任意のフォーマットに適用されるが、この説明は、ISO/IEC 14496−15の第8項において規定されるHEVCファイルフォーマットに基づくSHVCおよびMV−HEVCビデオストリームの記憶に特有である。
【0090】
[0099]本開示の技法の詳細な実装形態が、以下で詳細に論じられる。本開示の技法は、以下の例において要約され得る。以下の例は別々に使用され得る。代替的に、以下の例の様々な組合せが一緒に使用され得る。
【0091】
[0100]第1の例において、Compressornameは、VisualSampleEntryボックスにおいて指定される値である。ISO/IEC 14496−12のセクション8.5.2.1において記述されるように、VisualSampleEntryボックスは、使用されるコーディングのタイプおよびそのコーディングのために必要とされる任意の初期化情報についての詳細な情報を記憶する、ビデオトラックのためのあるタイプのサンプルテーブルボックスである。Compressornameは、メディアデータを生成するために使用されるコンプレッサの名前を示す。ビデオデコーダは、ファイル中のビデオデータをどのように復号するか、および/または復号するかどうかを決定するために、Compressornameの値を使用することができる。ISO/IEC 14496−12のセクション8.5.3において定義されるように、Compressornameは、固定された32バイトのフィールドにフォーマットされ、最初のバイトセットは表示されることになるバイトの数に設定され、表示可能なデータのバイトの数がそれに続き、そして全体で32バイト(サイズバイトを含む)にするためのパディングが続く。
【0092】
[0101]第1の例は、Compressornameの2つの新たな値を許容する。Compressornameの第1の新たな値は、SHVCビデオストリームを含むファイルに対しては、「\013SHVC Coding」である。Compressornameの第2の新たな値は、MV−HEVCビデオストリームを含むファイルに対しては、「\016MV−HEVC Coding」である。第1の例は、以下でセクション9.5.3.1.3および10.5.3.2において示されるように実施され得る。
【0093】
[0102]上で簡単に説明されたように、ファイルは、ファイルのトラックのためのメタデータを含む、ムービーボックスを含み得る。ムービーボックスは、ファイルの各トラックのためのトラックボックスを含み得る。さらに、トラックボックスは、トラックのメディアの特性情報を宣言するすべてのオブジェクトを含む、メディア情報ボックスを含み得る。メディア情報ボックスは、サンプルテーブルボックスを含み得る。サンプルテーブルボックスは、サンプル固有のメタデータを指定することができる。たとえば、サンプルテーブルボックスは、複数のサンプル記述ボックスを含み得る。サンプル記述ボックスの各々は、サンプルエントリーのインスタンスであり得る。ISO/IEC 14996−12では、VisualSampleEntryクラスのインスタンスは、サンプルエントリーとして使用され得る。特定のビデオコーディング規格に固有のサンプルエントリーのクラスは、VisualSampleEntryクラスを拡張することができる。たとえば、HEVCに固有のサンプルエントリーのクラスは、VisualSampleEntryクラスを拡張することができる。したがって、本開示は、VisualSampleEntryクラスを拡張する異なるクラスを、異なるサンプルエントリータイプと呼ぶことがある。
【0094】
[0103]第2の例では、2つの新たなサンプルエントリー(すなわち、「サンプル」)タイプ、「hev2」および「hvc2」がHEVCトラックのために定義される。2つの新たなサンプルエントリータイプは、アグリゲータおよびエクストラクタの使用を可能にする。一般に、アグリゲータは、単一の集約されたデータユニットの形態で複数のNALユニットを集約する。たとえば、アグリゲータは、複数のNALユニットを含むことができ、および/または複数のNALユニットを仮想的に連結することができる。一般に、エクストラクタは、他のトラックから得られたデータのタイプを示す。たとえば、複数のトラックにわたるメディアデータ(たとえば、HEVCデータ)の記憶は、メディアデータ中のNALユニットとして埋め込まれるExtractorsと呼ばれる比較的小さいデータユニットを使用して複数のメディアトラックにまたがってデータを参照することによって、データの重複が回避され得るので、小型のファイルをもたらし得る。この第2の例は、以下で、セクション9.5.3.1.1、9.5.3.1.2、9.5.4、9.5.6、10.4.5、10.5.3.1.1.1、および10.5.3.2に示されるように実施され得る。
【0095】
[0104]第3の例では、マルチレイヤビットストリームのためのパラメータセットの記憶に対する特定の要件と関連付けられるサンプルエントリーの定義が、特定のレイヤまたは特定のオペレーションポイントへの便利なランダムアクセスを可能にするために修正される。たとえば、SHVC、MV−HEVC、または3D−HEVCトラックがサンプルエントリーを有し、サンプルが少なくとも1つのIRAPピクチャを含むとき、そのサンプルを復号するために必要とされるすべてのパラメータは、そのサンプルエントリーまたはそのサンプル自体に含まれるべきである。この例では、サンプルがIRAPピクチャを含まないとき、そのサンプルを復号するために必要とされるすべてのパラメータセット(たとえば、VPS、SPS、PPS)は、そのサンプルエントリーに、または、両端を含めて少なくとも1つのIRAPピクチャを含む以前のサンプルからそのサンプル自体までのサンプルのいずれかに、含まれるべきである。第3の例は、以下でセクション9.5.3.1.1において示されるように実施され得る。
【0096】
[0105]第3の例の1つの代替的なバージョンでは、SHVC、MV−HEVC、または3D−HEVCトラックがサンプルエントリーを有し、サンプル中のピクチャがIRAPピクチャであるとき、そのピクチャを復号するために必要とされるすべてのパラメータセットは、そのサンプルエントリーまたはそのサンプル自体に含まれるべきである。さらに、この代替形態では、サンプルがIRAPピクチャを含まないとき、ピクチャを復号するために必要とされるすべてのパラメータセットは、そのサンプルエントリーに、または、両端を含めて同じレイヤ中の少なくともIRAPピクチャを含む以前のサンプルからそのサンプル自体までのサンプルのいずれかに、含まれるべきである。
【0097】
[0106]第4の例では、既存のサンプルエントリータイプについて以下のケースが定義される。この例では、サンプルエントリータイプ「hev1」および「hvc1」に属するサンプルは、HEVC VCL NALユニットを伴うSHVCおよびMV−HEVCトラックのための、HEVC構成と、SHVC構成と、MV−HEVC構成とを含む。さらに、SHVCおよびMV−HEVC構成を含むサンプルエントリータイプ「hev1」および「hvc1」は、HEVC NALユニットを伴わずに、しかし、0よりも大きなnuh_layer_idを有するVCL NALユニットを伴って、SHVCおよびMV−HEVCトラックのために定義され、このときエクストラクタは許可されない。この第4の例は、以下でセクション9.5.3.1.1において示されるように実施され得る。
【0098】
[0107]第5の例では、SHVC、MV−HEVC、または3D−HEVCトラックにおけるシンクサンプルが、すべてIRAPピクチャであるピクチャを含むサンプルとして定義される。この第5の例は、以下でセクション9.5.5および10.4.3において示されるように実施され得る。以下でセクション9.5.5において規定されるように、SHVCサンプルは、アクセスユニット中の各々のコーディングされたピクチャがHEVC WDにおいて定義されるようなIRAPピクチャである場合、シンクサンプルであると見なされる。さらに、以下でセクション10.4.3において規定されるように、MV−HEVCサンプルは、アクセスユニット中の各々のコーディングされたピクチャがHEVC WDにおいて定義されるようなRASLピクチャを伴わないIRAPピクチャである場合、シンクサンプルであると見なされる。
【0099】
[0108]したがって、第5の例では、ファイルを生成することの一部として、ファイル生成デバイス34は、マルチレイヤビデオデータのトラックのシンクサンプルを記録するシンクサンプルテーブルを含む、シンクサンプルボックスを生成することができる。トラックの各シンクサンプルは、トラックのランダムアクセスサンプルである。アクセスユニット中の各々のコーディングされたピクチャがIRAPピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルである。アクセスユニット中の各々のコーディングされたピクチャがRASLピクチャを伴わないIRAPピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである。
【0100】
[0109]第5の例の代替的なバージョンでは、SHVC、MV−HEVC、または3D−HEVCトラックにおけるシンクサンプルが、すべてがRASLピクチャを伴わないIRAPピクチャであるピクチャを含むサンプルとして定義される。シンクサンプルテーブルは、シンクサンプルを記録する。オプションで、シンクサンプルのサンプルグループは、シンクサンプルを記録する。言い換えると、シンクサンプルのサンプルグループは、シンクサンプルを特定する情報を含む。
【0101】
[0110]第6の例では、すべて(RASLピクチャを伴う、または伴わない)IRAPピクチャであるピクチャを含むサンプルを含むように、「ラップ(rap)」サンプルグループが定義される。この第6の例は、以下でセクション9.5.5において示されるように実施され得る。代替的に、第6の例では、「ラップ」サンプルグループは、すべてIRAPピクチャであるピクチャを含むが同期サンプルとして示されるサンプルを含まないように定義される。
【0102】
[0111]第7の例では、少なくとも1つのIRAPピクチャを含むすべてのサンプルと、サンプル中のIRAPピクチャ中のVCL NALユニットのNALユニットタイプと、サンプル中のすべてのコーディングされたピクチャがIRAPピクチャであるかどうかと、そうではない場合、サンプル中のIRAPピクチャの数と、サンプル中のこれらのIRAPピクチャのレイヤID値とを記録する、新たなサンプルグループまたは新たなボックスが定義される。
【0103】
[0112]したがって、この第7の例では、ファイル生成デバイス34は、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成することができる。トラックのためのメディアデータは、サンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータのアクセスユニットであり得る。ファイルを生成することの一部として、ファイル生成デバイス34は、ファイルにおいて、少なくとも1つのIRAPピクチャを含むサンプルのすべてを記録する追加のボックスを生成する。
【0104】
[0113]この第7の例は、以下でセクション9.5.5.1において示されるように一部が実施され得る。以下でセクション9.5.5.1において示されるように、Random Accessible Sample Entryクラスは、VisualSampleEntryクラスを拡張する。Random Accessible Sample Entryクラスのインスタンス(すなわち、Random Accessible Sample Entryボックス)は、少なくとも1つのIRAPピクチャを含むサンプルに対応する。さらに、Random Accessible Sample Entryボックスは、対応するサンプル中のすべてのコーディングされたピクチャがIRAPピクチャであるかどうかを指定する、all_pics_are_IRAP値を含む。
【0105】
[0114]したがって、第7の例では、ファイル生成デバイス34は、値(たとえば、all_pics_are_IRAP)を含むサンプルエントリーを生成することができる。1に等しい値は、サンプル中の各々のコーディングされたピクチャがIRAPピクチャであることを指定する。0に等しい値は、サンプル中のすべてのコーディングされたピクチャがIRAPピクチャであることはないことを指定する。
【0106】
[0115]さらに、第7の例によれば、サンプルのすべてのコーディングされたピクチャがIRAPピクチャであるということではないとき、ファイル生成デバイス34は、サンプルに対応するサンプルエントリーに、サンプルグループの各サンプル中のいくつかのIRAPピクチャを示す値を含め得る。加えて、サンプル中のコーディングされたピクチャがIRAPピクチャであるということではないとき、ファイル生成デバイス34は、サンプルに対応するサンプルエントリーに、サンプル中のIRAPピクチャのレイヤ識別子を示す値を含め得る。
【0107】
[0116]代替的に、第7の例では、新たなサンプルグループまたは新たなボックスが、シンクサンプルまたは「ラップ」サンプルグループのメンバーとして示されるものを除く、そのようなサンプルを記録する。
【0108】
[0117]この第7の例は、マルチレイヤビデオデータがISOBMFFまたはその既存の拡張を使用して記憶されるときに生じ得る、1つまたは複数の問題を解決することができる。たとえば、シングルレイヤビデオコーディングでは、通常はアクセスユニットごとに単一のコーディングピクチャしか存在しない。しかしながら、マルチレイヤビデオコーディングでは、通常はアクセスユニットごとに2つ以上のコーディングされたピクチャが存在する。ISOBMFFおよびその既存の拡張は、1つまたは複数のIRAPピクチャをどのサンプルが含むかを示す方法を提供しない。このことは、コンピューティングデバイスがファイル中のランダムアクセスポイントを位置特定するための、またはレイヤ切替えを実行するための能力を妨げ得る。たとえば、サンプルのいずれが1つまたは複数のIRAPピクチャを含むかを示す情報が存在しないとき、コンピューティングデバイスは、アクセスユニットがランダムアクセスポイントとしておよび/またはレイヤ切替えのために使用され得るかどうかを決定するために、NALユニットを解析して解釈する必要があり得る。NALユニットを解析して解釈することは、コンピューティングデバイスに複雑さを加えることがあり、時間および処理のリソースを消費することがある。さらに、ストリーミングサーバのような、ランダムアクセスおよび/またはレイヤ切替えを実行するいくつかのコンピューティングデバイスは、NALユニットを解析または解釈するように構成されない。
【0109】
[0118]第8の例では、新たなタイプのサブサンプルの導入が含まれ、このとき、各サブサンプルは、1つのコーディングされたピクチャと、関連付けられる非VCL NALユニットとを含む。この第8の例は、以下でセクション9.5.8において示されるように実施され得る。したがって、この第8の例では、ファイル生成デバイス34は、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成することができる。トラックのためのメディアデータは、サンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータのアクセスユニットである。ファイルを生成することの一部として、ファイル生成デバイス34は、ファイルにおいて、サブサンプル情報ボックス中で与えられるサブサンプル情報のタイプを指定するフラグを含むサブサンプル情報ボックスを生成する。そのフラグがある特定の値を有するとき、サブサンプル情報ボックスに対応するサブサンプルは、ちょうど1つのコーディングされたピクチャと、コーディングされたピクチャと関連付けられる0個以上の非VCL NALユニットとを含む。
【0110】
[0119]第8の例は、マルチレイヤビデオデータがISOBMFFまたはその既存の拡張を使用して記憶されるときに生じ得る、1つまたは複数の問題を解決することができる。たとえば、マルチレイヤビデオコーディングでは、サンプルごとに複数のコーディングされたピクチャがあり得る。たとえば、各レイヤのためのサンプル中に1つまたは複数のピクチャがあり得る。しかしながら、H.264/AVCおよびHEVCのためのISOBMFFの拡張では、サブサンプル情報ボックスは、サンプルが複数のピクチャを含むときのサンプル内の個々のピクチャについての情報を提供しない。この第8の例の技法は、1つだけのコーディングされたピクチャと、コーディングされたピクチャと関連付けられる非VCL NALユニットとを含む、サブサンプルについての情報を提供する、新たなタイプのサブサンプル情報ボックスを提供することによって、この問題を解決することができる。コーディングされたピクチャと関連付けられるNALユニット内でのみそのような情報を提供することとは対照的に、ファイル構造において個々のコーディングされたピクチャについての情報を提供することで、コンピューティングデバイスは、NALユニットを解釈する必要なく、コーディングされたピクチャについての情報を決定することが可能になり得る。いくつかの例では、コンピューティングデバイスの複雑さを下げるために、および/またはコンピューティングデバイスのスループットを上げるために、コンピューティングデバイスは、NALユニットを解釈するように構成されない。コンピューティングデバイスがファイルに記憶されているNALユニットをストリーミングしているいくつかの例では、コンピューティングデバイスは、サブサンプルのNALユニットをクライアントデバイスに転送するかどうかを決定するために、サブサンプル情報ボックス中の情報を使用することができる。
【0111】
[0120]第9の例は、マルチレイヤの状況における非出力サンプルの処理に関する。具体的には、第9の例では、アクセスユニットが1に等しいpic_output_flagを有するいくつかのコーディングされたピクチャと0に等しいpic_output_flagを有するいくつかの他のコーディングされたピクチャとを含むとき、各トラック内において、各サンプル中のすべてのコーディングされたピクチャが同じ値のpic_output_flagを有するように、少なくとも2つのトラックがストリームを記憶するために使用されなければならない。この第9の例は、以下でセクション9.5.9において示されるように実施され得る。
【0112】
[0121]したがって、この第9の例では、ファイル生成デバイス34は、メディアコンテンツを含むメディアデータボックスを備えるファイルを生成することができる。メディアコンテンツは、サンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータのアクセスユニットである。マルチレイヤビデオデータのビットストリームの少なくとも1つのアクセスユニットが、1に等しいピクチャ出力フラグ(たとえば、pic_output_flag)を有するコーディングされたピクチャと、0に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むという決定に応答して、ファイル生成デバイス34は、ファイルにビットストリームを記憶するために少なくとも2つのトラックを使用することができる。少なくとも2つのトラックからの各々のそれぞれのトラックに対して、それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のピクチャ出力フラグを有する。
【0113】
[0122]第9の例は、マルチレイヤビデオデータがISOBMFFまたはその既存の拡張を使用して記憶されるときに生じ得る、1つまたは複数の問題を解決することができる。たとえば、0に等しいピクチャ出力フラグと1に等しいピクチャ出力フラグとを有したコーディングされたピクチャを記憶するために単一のトラックが使用されるとすると、様々なファイルフォーマット規則が違反される。たとえば、ファイルフォーマット規則は通常、時刻ごとにトラック中に1つのサンプルしかないことを要求する。0に等しいピクチャ出力フラグと1に等しいピクチャ出力フラグとを有したコーディングされたピクチャを単一のトラックが記憶する場合、時刻ごとにトラック中には複数のサンプルがある。異なる値のピクチャ出力フラグを有するコーディングされたピクチャが、1つのファイルの異なるトラック中にあるようにすることで、この問題を解決することができる。
【0114】
[0123]以下で、本開示のいくつかの技法の例示的な実装形態が説明される。以下で説明される例示的な実装形態は、MPEG output document W13478における14496−15の最新の統合された規格に基づく。以下では、Annex Aに対する変更(下線により示される)および追加されたセクション(SHVCについてはセクション9およびMV−HEVCについてはセクション10)が含まれる。言い換えると、本開示の特定の例は、ISO/IEC 14496−15のAnnex Aを修正することができ、ISO/IEC 14496−15にセクション9および/または10を追加することができる。下線および二重下線により示される文章は、本開示の実施例に特に関連があり得る。本明細書で説明される例では、SHVCという用語が様々な箇所で使用されるが、本開示の設計は実際には、SHVCコーデックをサポートするためだけのものではなく、代わりに、別段明示的に言及されない限り、MV−HEVC、3D−HEVCを含むすべてのマルチレイヤコーデックがサポートされ得る。
9.SHVCエレメンタリストリームおよびサンプルの定義
9.1 序論
この項は、SHVCデータの記憶フォーマットを規定する。この項は、項8におけるHEVCの記憶フォーマットの定義を拡張する。
この項およびAnnex A〜Dにおいて定義されるような、SHVCコンテンツの記憶のためのファイルフォーマットは、ISOベースのメディアファイルフォーマットおよびプレーンHEVCファイルフォーマット(すなわち、項8において規定されるファイルフォーマット)の既存の能力を使用する。加えて、SHVC固有の特徴をサポートするために、とりわけ以下の構造および拡張が使用される。
【0115】
アグリゲータ:NALユニットの不規則なパターンを集約されたデータユニットの規則的なパターンへと変更することによって、NALユニットの効率的なスケーラブルグループ化を可能にするための構造。
【0116】
エクストラクタ:メディアデータを含むトラック以外のトラックからのNALユニットの効率的な抽出を可能にするための構造。
時間的メタデータステートメント:メディアサンプルの時間整列された情報を記憶するための構造。
【0117】
HEVC適合性:HEVCに適合するベースレイヤが任意のプレーンHEVCファイルフォーマットに準拠するリーダーによって使用され得るように、HEVCに適合する方式でSHVCビットストリームを記憶するための準備。
9.2 エレメンタリストリーム構造
SHVCストリームは、SHVCビデオエレメンタリストリームの以下の定義とともに、8.2に従って記憶される。
【0118】
・SHVCビデオエレメンタリストリームは、すべてのビデオコーディングに関連するNALユニット(すなわち、ビデオデータを含む、またはビデオ構造をシグナリングするNALユニット)を含むべきであり、SEIメッセージおよびアクセスユニットデリミタNALユニットのようなビデオコーディングに関連しないNALユニットを含み得る。アグリゲータ(A.2参照)またはエクストラクタ(A.3参照)も存在し得る。アグリゲータおよびエクストラクタは、この国際規格において定義されるように処理されるべきである(たとえば、ファイルにアクセスしている間に出力バッファに直接配置されるべきではない)。明示的に禁止されない他のNALユニットが存在することがあり、それらは、認識されなければ無視されるべきである(たとえば、ファイルにアクセスする間に出力バッファに配置されるべきではない)。
【0119】
SHVCストリームは、関連付けられるパラメータセットストリームを使用して記憶されるべきではない。
【0120】
0に等しいnuh_layer_idを有するVCL NALユニット、0よりも大きなnuh_layer_idを有するVCL NALユニット、およびSHVCビデオエレメンタリストリーム中に存在する非VCL NALユニットがあり得る。加えて、SHVCビデオエレメンタリストリームには、アグリゲータNALユニットおよびエクストラクタNALユニットが存在し得る。
9.3 プレーンHEVCファイルフォーマットの使用
SHVCファイルフォーマットは、項8において定義されるプレーンHEVCファイルフォーマットの拡張である。
9.4 サンプルおよび構成の定義
9.4.1 序論
SHVCサンプル:SHVCサンプルは、ISO/IEC 23008−2のAnnex Hにおいて定義されるようなアクセスユニットでもある。
9.4.2 標準的な順序および制約
9.4.2.1 制約
8.3.2における要件に加えて、以下の制約がSHVCデータに適用される。
【0121】
・VCL NALユニット:1つのアクセスユニットの中のすべてのVCL NALユニットは、アクセスユニットによって表されるピクチャの合成時間と合成時間が同じであるサンプルに含まれるべきである。SHVCサンプルは、少なくとも1つのVCL NALユニットを含むべきである。
【0122】
・アグリゲータ/エクストラクタ:アグリゲータに含まれエクストラクタによって参照されるすべてのNALユニットの順序は、これらのNALユニットがアグリゲータ/エクストラクタを含まないサンプルに存在しているかのように、復号順序とまったく同じである。アグリゲータまたはエクストラクタを処理した後で、すべてのNALユニットが、ISO/IEC 23008−2において規定されるような有効な復号順序でなければならない。
9.4.2.2 デコーダ構成記録
8.3.3.1において定義されるデコーダ構成記録が、SHVCストリームまたはHEVCストリームのいずれかとして解釈され得るストリームのために使用されるとき、HEVCデコーダ構成記録は、HEVCに適合するベースレイヤの性質を反映すべきであり、たとえば、HEVCデコーダ構成記録は、HEVCベースレイヤを復号するために必要とされるパラメータセットのみを含むべきである。
【0123】
SHVCDecoderConfigurationRecordは、HEVCDecoderConfigurationRecordと構造的に同一である。シンタックスは次の通りである。
alligned(8)classSHVCDecoderConfigurationRecord{
//HEVCDecoderConfigurationRecordシンタックス構造と同じフィールド}
SHVCDecoderConfigurationRecordにおけるフィールドのセマンティクスは、HEVCDecoderConfigurationRecordに対して定義されるものと同じである。
9.5 ISOベースのメディアファイルフォーマットからの導出
9.5.1 SHVCトラック構造
スケーラブルビデオストリームが、ファイル中の1つまたは複数のビデオトラックによって表される。各トラックが、スケーラブルストリームの1つまたは複数のオペレーションポイントを表す。当然、望まれる場合、スケーラブルストリームはさらに薄くされ得る。
【0124】
最低のオペレーションポイントを、0に等しいnuh_layer_idのみと0に等しいTemporalIdのみとを有するNALユニットを含むすべてのオペレーションポイントの1つとする。最低のオペレーションポイントを含むトラックが、「スケーラブルベーストラック」として指名されるべきである。同じスケーラブルな符号化された情報の一部であるすべての他のトラックが、タイプ「sbas」(スケーラブルベース)のトラック参照によって、このベーストラックにリンクされるべきである。
【0125】
同じスケーラブルベーストラックを共有するすべてのトラックが、そのスケーラブルベーストラックと同じ時間軸を共有しなければならない。
9.5.2 データ共有および抽出
異なるトラックが論理的にデータを共有し得る。この共有は、以下の2つの形のうちの1つをとり得る。
【0126】
a)サンプルデータがあるトラックから別のトラックにコピーされる(場合によっては小型化され、またはオーディオのような他のデータと再インターリーブされる)。これにより、全体のファイルがより大きくなるが、抽出を簡単にするために、低ビットレートのデータが小型化され、および/または他の材料とインターリーブされ得る。
【0127】
b) ファイルが読み取られる時点でこのコピーをどのように実行するかについての命令があり得る。
【0128】
第2の場合、エクストラクタ(A.3において定義される)が使用される。
9.5.3 SHVCビデオストリームの定義
9.5.3.1 サンプルエントリーの名前およびフォーマット
9.5.3.1.1. 定義
タイプ:「hvc2」、「hev2」、「shc1」、「shv1」、「shcC」
コンテナ:サンプル記述ボックス(「stsd」)
必須性:「hvc1」、「hev1」、「hvc2」、「hev2」、「shc1」、または「shv1」サンプルエントリーが必須である。
【0129】
量:1つまたは複数のサンプルエントリーが存在し得る。
【0130】
サンプルエントリーの名前が「shc1」であるとき、array_completenessのデフォルトの必須の値は、すべてのタイプのパラメータセットのアレイに対しては1であり、すべての他のアレイに対しては0である。サンプルエントリーの名前が「shv1」であるとき、array_completenessのデフォルトの値はすべてのアレイに対して0である。
【0131】
サンプルエントリーの名前が「shv1」であるとき、次のことが当てはまる。
【0132】
・サンプルがISO/IEC 23008−2において定義されるような少なくとも1つのIRAPピクチャを含む場合、そのサンプルを復号するために必要とされるすべてのパラメータセットは、サンプルエントリーに、またはそのサンプル自体に含まれるべきである。
【0133】
・それ以外の場合(サンプルがIRAPピクチャを含まない)、そのサンプルを復号するために必要とされるすべてのパラメータセットが、そのサンプルエントリーに、または、両端を含めて少なくとも1つのIRAPピクチャを含む以前のサンプルからそのサンプル自体までのサンプルのいずれかに、含まれるべきである。
【0134】
代替的に、サンプルエントリーの名前が「shv1」であるとき、次のことが当てはまる。
【0135】
・
サンプル中のコーディングされたピクチャがISO/IEC 23008−2において定義されるようなIRAPピクチャである場合、そのコーディングされたピクチャを復号するために必要とされるすべてのパラメータセットが、サンプルエントリーに、またはそのサンプル自体に含まれるべきである。
【0136】
・
それ以外の場合(サンプル中のコーディングされたピクチャがIRAPピクチャではない)、そのコーディングされたピクチャを復号するために必要とされるすべてのパラメータセットが、そのサンプルエントリーに、または、両端を含めてそのコーディングされたピクチャと同じレイヤ中のIRAPピクチャを含む以前のサンプルからそのサンプル自体までのサンプルのいずれかに、含まれるべきである。
【0137】
SHVCエレメンタリストリームが使用可能なHEVCに適合するベースレイヤを含む場合、HEVC視覚サンプルエントリー(「hvc1」または「hev1」)が使用されるべきである。ここで、エントリーは、最初にHEVC Configuration Boxを含み、場合によっては、以下で定義されるようなSHVC Configuration Boxがそれに続くべきである。HEVC Configuration Boxは、Profile、Tier、Level、および場合によっては、HEVCDecoderConfigurationRecordによって定義されるような、HEVCに適合するベースレイヤに関するパラメータセットも記録する。SHVC Configuration Boxは、Profile、Tier、Level、および場合によっては、SHVCConfigurationBoxに記憶されているHEVCDecoderConfigurationRecordによって定義されるような、SHVCに適合するエンハンスメントレイヤを含む全体のストリームに関するパラメータセットも記録する。
【0138】
SHVCエレメンタリストリームが使用可能なHEVCベースレイヤを含まない場合、SHVC視覚サンプルエントリー(「shc1」または「shv1」)が使用されるべきである。SHVC視覚サンプルエントリーは、以下で定義されるような、SHVC Configuration Boxを含むべきである。これは、この国際規格において定義されるような、SHVCDecoderConfigurationRecordを含む。
【0139】
任意の所与のサンプルエントリーにおけるSHVC構成およびHEVC構成中のlengthSizeMinusOneフィールドは、同じ値を有するべきである。
【0140】
エクストラクタまたはアグリゲータは、「hvc1」、「hev1」、「hvc2」、「hev2」、「shc1」、または「shv1」トラックにおいて、0よりも大きなnuh_layer_idを有するNALユニットのために使用され得る。「hvc2」または「hev2」サンプルエントリーにおける「extra_boxes」は、SHVCConfigurationBoxまたは他の拡張ボックスであり得る。
【0141】
注意 HEVC適合性が示されるとき、ストリーム全体のビットレートに対応するために、HEVCベースレイヤの非現実的なレベルを示すことが必要になることがあり、それは、すべてのNALユニットがHEVCベースレイヤに含まれるものとして見なされ、したがってデコーダに与えられることがあり、デコーダはデコーダが認識しないNALユニットを廃棄すると予想されるからである。このケースは、「hvc1」または「hev1」サンプルエントリーが使用され、HEVC構成とSHVC構成の両方が存在するときに発生する。
【0142】
SHVCConfigurationBoxは、「hvc1」または「hev1」サンプルエントリーに存在し得る。この場合、以下のHEVCSHVCSampleEntryの定義が適用される。
【0143】
次の表は、ビデオトラックに対する、サンプルエントリーのすべての可能性のある使用法と、構成と、SHVCツールとを示す(常に別のトラックにおいて使用される時限メタデータを除く)。
【0147】
9.5.3.1.3 セマンティクス
サンプルエントリーが適用されるストリームが0よりも大きなnuh_layer_idを有するNALユニットを含むとき、ベースクラスVisualSampleEntryの中のCompressornameは、推奨されている、「\013SHVC Coding」という値とともに使用されるコンプレッサの名前を示す(\013は11であり、これは文字列「SHVC Coding」のバイト単位の長さである)。
9.5.4 SHVCの視覚的な幅および高さ
0よりも大きなnuh_layer_idを有するNALユニットを含むストリームのVisualSampleEntryにおいて記録される視覚的な幅および高さは、ストリームがタイプ「hvc1」、「hev1」、「hvc2」、「hev2」のサンプルエントリーによって記述される場合は、HEVCベースレイヤの視覚的な幅および高さであり、それ以外の場合、ストリーム全体を復号することによる最高次のレイヤの復号されたピクチャの視覚的な幅および高さである。
9.5.5 シンクサンプル
SHVCサンプルは、アクセスユニット中の各々のコーディングされたピクチャがISO/IEC 23008−2において定義されるようなIRAPピクチャである場合、シンクサンプルとして見なされる。シンクサンプルはシンクサンプルテーブルによって記録され、シンクサンプルのサンプルグループおよび「ラップ」サンプルグループによって追加で記録され得る。
9.5.5.1 ランダムアクセス可能サンプルのサンプルグループ
9.5.5.1.1 定義
グループタイプ:「ras」
コンテナ:サンプルグループ記述ボックス(「ras」)
必須性:なし
量:0個以上
ランダムアクセス可能サンプルのサンプルグループは、少なくとも1つのIRAPピクチャを含むサンプルを特定する。
9.5.5.1.2 シンタックス
【0149】
9.5.5.1.3 セマンティクス
1に等しいall_pics_are_IRAPは、グループの各サンプル中のすべてのコーディングされたピクチャがIRAPピクチャであることを指定する。値が0に等しいとき、上の制約は適用されることもまたはされないこともある。
【0150】
IRAP_nal_unit_typeは、グループの各サンプル中のIRAPピクチャのNALユニットタイプを指定する。IRAP_nal_unit_typeの値は、両端を含めて16〜23の範囲内でなければならない。
【0151】
num_IRAP_picsは、グループの各サンプル中のIRAPピクチャの数を指定する。
【0152】
IRAP_pic_layer_idは、グループの各サンプル中のi番目のIRAPピクチャのnuh_layer_idの値を指定する。
9.5.6 ランダムアクセス復元ポイントおよびランダムアクセスポイントについてのサンプルグループ
タイプ「hvc1」、「hev1」、「hvc2」、または「hev2」のサンプルエントリーによって記述されるビデオデータに対して、ランダムアクセス復元サンプルグループおよびランダムアクセスポイントサンプルグループは、ビットストリーム全体に対して動作する、HEVCデコーダとSHVCデコーダ(もしあれば)の両方に対して、ランダムアクセス復元ポイントとランダムアクセスポイントとをそれぞれ特定する。
【0153】
タイプ「shc1」または「shv1」のサンプルエントリーによって記述されるビデオデータに対して、ランダムアクセス復元サンプルグループは、SHVCビットストリーム全体の中でランダムアクセス復元を特定し、ランダムアクセスポイントサンプルグループは、SHVCビットストリーム全体の中でランダムアクセスポイントを特定する。
【0154】
SHVCサンプルは、アクセスユニット中の各々のコーディングされたピクチャがISO/IEC 23008−2において定義されるようなIRAPピクチャ(RASLピクチャを伴うまたは伴わない)である場合、ランダムアクセスポイントとして見なされ、ISO/IEC 14496−2におけるリーディングサンプルは、すべてのピクチャがISO/IEC 23008−2において定義されるようなRASLピクチャであるサンプルである。
9.5.7 独立の使い捨てサンプルボックス
HEVCとSHVCの両方に適合するトラックにおいて使用される場合、SHVCデータのどの有効なサブセット(場合によってはHEVCデータのみ)が使用されても記述が真であることに、注意が払われなければならない。情報が変化する場合、「未知」の値(フィールドsample−depends−on、sample−is−depended−on、およびsample−has−redundancyの値0)が必要とされ得る。
9.5.8 SHVCのためのサブサンプルの定義
この項は、8.4.8におけるHEVCのサブサンプルの定義を拡張する。
【0155】
SHVCストリームにおけるサブサンプル情報ボックス(ISO/IEC 14496−12の8.7.7)の使用のために、以下で規定されるように、サブサンプル情報ボックスのフラグの値に基づいて、サブサンプルが定義される。このボックスの存在は任意選択であるが、SHVCデータを含むトラックにおいて存在する場合、ここで定義されるセマンティクスを有するべきである。
【0156】
フラグは、このボックスで与えられるサブサンプル情報のタイプを次のように規定する。
【0157】
0:NALユニットベースのサブサンプル。サブサンプルは、1つまたは複数の連続的なNALユニットを含む。
【0158】
1:復号ユニットベースのサブサンプル。サブサンプルは、ちょうど1つの復号ユニットを含む。
【0159】
2:タイルベースのサブサンプル。サブサンプルは、1つのタイルと、そのタイルを含むVCL NALユニットの関連付けられる非VCL NALユニットとをもしあれば含み、または、1つまたは複数の非VCL NALユニットを含む。
【0160】
3:CTU行ベースのサブサンプル。サブサンプルは、スライス内の1つのCTU行と、そのCTU行を含むVCL NALユニットの関連付けられる非VCL NALユニットとをもしあれば含み、または、1つまたは複数の非VCL NALユニットを含む。このタイプのサブサンプル情報は、entropy_coding_sync_enabled_flagが0に等しいときは使用されるべきではない。
【0161】
4:スライスベースのサブサンプル。サブサンプルは、1つのスライス(各スライスが1つまたは複数のスライスセグメントを含み得る場合、その各々がNALユニットである)と、関連付けられる非VCL NALユニットとをもしあれば含み、または、1つまたは複数の非VCL NALユニットを含む。
【0162】
5:ピクチャベースのサブサンプル。サブサンプルは、1つのコーディングされたピクチャと、関連付けられる非VCL NALユニットとを含む。
【0164】
sabsample_priorityフィールドは、ISO/IEC 14496−12におけるこのフィールドの仕様に従って、ある値に設定されるべきである。
【0165】
廃棄可能フィールドは、このサブサンプルが廃棄される(たとえば、サブサンプルがSEI NALユニットからなる)場合、このサンプルが依然として復号され得る場合にのみ、1に設定されるべきである。
【0166】
NALユニットの最初のバイトがサブサンプルに含まれるとき、先行する長さフィールドも同じサブサンプルに含まれなければならない。
【0168】
0に等しいSubLayerRefNalUnitFlagは、サブサンプル中のすべてのNALユニットが、ISO/IEC 23008−2において規定されるようなサブレイヤ非参照ピクチャのVCL NALユニットであることを示す。値1は、サブサンプル中のすべてのNALユニットが、ISO/IEC 23008−2において規定されるようなサブレイヤ参照ピクチャのVCL NALユニットであることを示す。
【0169】
0に等しいRapNalUnitFlagは、サブサンプル中のNALユニットのいずれもが、ISO/IEC 23008−2において規定されるような、IDR_W_RADL、IDR_N_LP、CRA_NUT、BLA_W_LP、BLA_W_RADL、BLA_N_LP、RSV_IRAP_VCL22、またはRSV_IRAP_VCL23に等しいnal_unit_typeを有しないことを示す。値1は、サブサンプル中のNALユニットのすべてが、ISO/IEC 23008−2において規定されるような、IDR_W_RADL、IDR_N_LP、CRA_NUT、BLA_W_LP、BLA_W_RADL、BLA_N_LP、RSV_IRAP_VCL22、またはRSV_IRAP_VCL23に等しいnal_unit_typeを有することを示す。
【0170】
0に等しいVclNalUnitFlagは、サブサンプル中のすべてのNALユニットが非VCL NALユニットであることを示す。値1は、サブサンプル中のすべてのNALユニットがVCL NALユニットであることを示す。
【0171】
DiscardableFlagは、サブサンプル中のVCL NALユニットのdiscardable_flagの値を示す。サブサンプル中のすべてのVCL NALユニットは、同じdiscardable_flagの値を有するべきである。
【0172】
注意 これは、サブサンプル情報ボックスにおける廃棄可能フィールドと同じ定義ではない。
【0173】
NoInterLayerPredFlagは、サブサンプル中のVCL NALユニットのinter_layer_pred_enabled_flagの値を示す。サブサンプル中のすべてのVCL NALユニットは、同じ値のinter_layer_pred_enabled_flagを有するべきである。
【0174】
LayerIdは、サブサンプル中のNALユニットのnuh_layer_idの値を示す。サブサンプル中のすべてのNALユニットは、同じnuh_layer_idの値を有するべきである。
【0175】
TempIdは、サブサンプル中のNALユニットのTemporalIdの値を示す。サブサンプル中のすべてのNALユニットは、同じTemporalIdの値を有するべきである。
【0176】
vcl_idcは、サブサンプルがビデオコーディングレイヤ(VCL)データを含むか、非VCLデータを含むか、または両方を含むかを、次のように示す。
0:サブサンプルがVCLデータを含み、非VCLデータを含まない
1:サブサンプルがVCLデータを含まず、非VCLデータを含む
2:サブサンプルがVCLデータと非VCLデータの両方を含んでよく、これらは互いに関連付けられ得る。たとえば、サブサンプルは、SEIメッセージと関連付けられるNALユニットのセットが後に続く、復号ユニット情報SEIメッセージを含み得る。
3:予備
log2_min_luma_ctbは、次のように規定される、ctb_xおよびctb_yの単位を示す。
0:8個のルーマサンプル
1:16個のルーマサンプル
2:32個のルーマサンプル
3:64個のルーマサンプル
ctb_xは、フラグが2に等しく、vcl_idcが1または2に等しいときに、サブサンプルと関連付けられるタイルの最も右のルーマサンプルの0ベースの座標を、上で規定されたようなlog2_min_luma_ctbから導出される単位で指定する。
【0177】
ctb_yは、フラグが2に等しく、vcl_idcが1または2に等しいときに、サブサンプルと関連付けられるタイルの0ベースの座標最も下のルーマサンプルを、上で規定されたようなlog2_min_luma_ctbから導出される単位で指定する。
【0178】
VclNalUnitTypeは、サブサンプル中のVCL NALユニットのnal_unit_typeの値を示す。サブサンプル中のすべてのVCL NALユニットは、同じnal_unit_typeの値を有するべきである。
9.5.9 非出力サンプルの処理
8.4.9の仕様が、「HEVC」を「SHVC」に置き換えて適用され、ターゲット出力レイヤの(1つまたは複数の)ピクチャが0に等しいpic_output_flagを有するサンプルとして、非出力サンプルが定義される。アクセスユニットが1に等しいpic_output_flagを有するいくつかのコーディングされたピクチャと0に等しいpic_output_flagを有するいくつかの他のコーディングされたピクチャとを含むとき、各トラック内において、各サンプル中のすべてのコーディングされたピクチャが同じ値のpic_output_flagを有するように、少なくとも2つのトラックがストリームを記憶するために使用されなければならない。
10. 10 MV−HEVCエレメンタリストリームおよびサンプルの定義
10.1 序論
この項は、MV−HEVCデータの記憶フォーマットを規定する。この項は、項8におけるHEVCの記憶フォーマットの定義を拡張する。
【0179】
この項およびAnnex A〜Dにおいて定義されるような、MV−HEVCコンテンツの記憶のためのファイルフォーマットは、ISOベースのメディアファイルフォーマットおよびプレーンHEVCファイルフォーマット(すなわち、項8において規定されるファイルフォーマット)の既存の能力を使用する。加えて、MV−HEVC固有の特徴をサポートするために、とりわけ以下の構造および拡張が使用される。
【0180】
アグリゲータ:NALユニットの不規則なパターンを集約されたデータユニットの規則的なパターンへと変更することによって、NALユニットの効率的なスケーラブルグループ化を可能にするための構造。
【0181】
エクストラクタ:メディアデータを含むトラック以外のトラックからのNALユニットの効率的な抽出を可能にするための構造。
【0182】
HEVC適合性:HEVCに適合するベースレイヤが任意のプレーンHEVCファイルフォーマットに準拠するリーダーによって使用され得るように、HEVCに適合する方式でMV−HEVCビットストリームを記憶するための準備。
【0183】
MV−HEVCのサポートは、いくつかのツールを含み、それらがどのように使用され得るかの様々な「モデル」がある。具体的には、MV−HEVCストリームは、いくつかの方法でトラックに配置されてよく、以下がそれらの方法の一部である。
1.サンプルグループによってラベリングされる1つのトラック中にすべてのビューがある
2.サンプルエントリーにおいてラベリングされる固有のトラックの中に各ビューがある
3.1つのトラックがすべてのビューを含み、1つまたは複数のシングルビューが独立にコーディングされ得るビューを各々含む、ハイブリッド方式
4.予想されるオペレーションポイントが各々、トラックの中にある(たとえば、HEVCベース、ステレオペア、マルチビューシーン)
MV−HEVCファイルフォーマットは、項9におけるSHVCに対するサポートと同様に、トラックへの1つまたは複数のビューの記憶を可能にする。トラックごとの複数のビューの記憶は、たとえば、サブセット作成が意図されていないマルチビュービットストリームをコンテンツ提供者が提供することを望むとき、または、出力ビューの少数の事前に定義されたセット(1個、2個、5個、または9個のビューのような)に対してビットストリームが作成されておりそれに従ってトラックが作成され得るときに、使用され得る。2つ以上のビューがトラックに記憶され、MV−HEVCビットストリームを表すいくつかのトラック(2つ以上)がある場合、サンプルグループ化機構の使用が推奨される。
【0184】
MV−HEVCビットストリームが複数のトラックによって表され、プレーヤが複数のトラック中のデータを含むオペレーションポイントを使用するとき、プレーヤは、MV−HEVCデコーダにMV−HEVCアクセスユニットを渡す前に、MV−HEVCアクセスユニットを再構築しなければならない。MV−HEVCオペレーションポイントは、トラックによって明示的に表されてよく、すなわち、アクセスユニットは、サンプルのすべてのエクストラクタおよびアグリゲータNALユニットを単に解決することによって、再構築される。オペレーションポイントの数が多い場合、各オペレーションポイントのためのトラックを作成することは、空間を多く必要とし非現実的であることがある。そのような場合、MV−HEVCアクセスユニットは、10.5.2において規定されるように再構築される。MV−HEVCデコーダ構成記録は、関連付けられるサンプルが明示的なアクセスユニットの再構築を使用するかまたは暗黙的なアクセスユニットの再構築を使用するかを示すフィールドを含む(explicit_au_trackフィールド参照)。
10.2 MV−HEVCトラック構造
MV−HEVCストリームは、MV−HEVCビデオエレメンタリストリームの以下の定義とともに、8.2に従って記憶される。
【0185】
・MV−HEVCビデオエレメンタリストリームは、すべてのビデオコーディングに関連するNALユニット(すなわち、ビデオデータを含む、またはビデオ構造をシグナリングするNALユニット)を含むべきであり、SEIメッセージおよびアクセスユニットデリミタNALユニットのようなビデオコーディングに関連しないNALユニットを含み得る。アグリゲータ(A.2参照)またはエクストラクタ(A.3参照)も存在し得る。アグリゲータおよびエクストラクタは、この国際規格において定義されるように処理されるべきである(たとえば、ファイルにアクセスしている間に出力バッファに直接配置されるべきではない)。明示的に禁止されない他のNALユニットが存在することがあり、それらは、認識されなければ無視されるべきである(たとえば、ファイルにアクセスする間に出力バッファに配置されるべきではない)。
【0186】
MV−HEVCストリームは、必要とされるとき、関連付けられるパラメータセットストリームを使用して記憶されるべきではない。
【0187】
0に等しいnuh_layer_idを有するVCL NALユニット、0よりも大きなnuh_layer_idを有するVCL NALユニット、およびMV−HEVCビデオエレメンタリストリーム中に存在する他の非VCL NALユニットがあり得る。加えて、MV−HEVCビデオエレメンタリストリームには、アグリゲータNALユニットまたはエクストラクタNALユニットが存在し得る。
10.3 プレーンHEVCファイルフォーマットの使用
MV−HEVCファイルフォーマットは、項8において定義されるプレーンHEVCファイルフォーマットの拡張である。
10.4 サンプルおよび構成の定義
10.4.1 序論
MV−HEVCサンプル:MV−HEVCサンプルは、ISO/IEC 23008−2のAnnex Fにおいて定義されるようなアクセスユニットでもある。
10.4.2 標準的な順序および制約
10.4.2.1 制約
項8.3.2における要件に加えて、以下の制約がMV−HEVCデータに適用される。
【0188】
・VCL NALユニット:1つのアクセスユニットの中のすべてのVCL NALユニットは、アクセスユニットによって表されるピクチャの合成時間と合成時間が同じであるサンプルに含まれるべきである。MV−HEVCサンプルは、少なくとも1つのVCL NALユニットを含むべきである。
【0189】
・アグリゲータ/エクストラクタ:アグリゲータに含まれる、またはエクストラクタによって参照されるすべてのNALユニットの順序は、これらのNALユニットがアグリゲータ/エクストラクタを含まないサンプルに存在しているかのように、復号順序とまったく同じである。アグリゲータまたはエクストラクタを処理した後で、すべてのNALユニットが、ISO/IEC 23008−2において規定されるような有効な復号順序でなければならない。
10.4.2.2 デコーダ構成記録
項8.3.3.1において定義されるデコーダ構成記録が、MV−HEVCストリームまたはHEVCストリームのいずれかとして解釈され得るストリームのために使用されるとき、HEVCデコーダ構成記録は、HEVCに適合するベースビューの性質を反映するべきであり、たとえば、HEVCデコーダ構成記録は、HEVCベースビューを復号するために必要とされるパラメータセットのみを含むべきである。
【0190】
MVHEVCDecoderConfigurationRecordは、HEVCDecoderConfigurationRecordと構造的に同一である。シンタックスは次の通りである。
alligned(8)classMVHEVCDecoderConfigurationRecord{
// HEVCDecoderConfigurationRecordシンタックス構造と同じフィールド}
MVHEVCDecoderConfigurationRecordにおけるフィールドのセマンティクスは、HEVCDecoderConfigurationRecordに対して定義されるものと同じである。
10.4.3 シンクサンプル
MV−HEVCサンプルは、アクセスユニット中の各々のコーディングされたピクチャがISO/IEC 23008−2において定義されるようなRASLピクチャを伴わないIRAPピクチャである場合、シンクサンプルとして見なされる。シンクサンプルはシンクサンプルテーブルによって記録され、SHVCの場合の同様に定義される、シンクサンプルのサンプルグループおよび「ラップ」サンプルグループによって追加で記録され得る。
10.4.4 独立の使い捨てサンプルボックス
HEVCとMV−HEVCの両方に適合するトラックにおいて使用される場合、MV−HEVCデータのどの有効なサブセット(場合によってはHEVCデータのみ)が使用されても記述が真であることに、注意が払われなければならない。情報が変化する場合、「未知」の値(フィールドsample−depends−on、sample−is−depended−on、およびsample−has−redundancyの値0)が必要とされ得る。
10.4.5 ランダムアクセス復元ポイントおよびランダムアクセスポイントについてのサンプルグループ
タイプ「hvc1」、「hev1」、「hvc2」、または「hev2」のサンプルエントリーによって記述されるビデオデータに対して、ランダムアクセス復元サンプルグループおよびランダムアクセスポイントサンプルグループは、ビットストリーム全体に対して動作する、HEVCデコーダとMV−HEVCデコーダ(もしあれば)の両方に対して、ランダムアクセス復元ポイントとランダムアクセスポイントとをそれぞれ特定する。
【0191】
MV−HEVCサンプルエントリータイプによって記述されるビデオデータに対して、ランダムアクセス復元サンプルグループは、MV−HEVCビットストリーム全体の中でランダムアクセス復元を特定し、ランダムアクセスポイントサンプルグループは、MV−HEVCビットストリーム全体の中でランダムアクセスポイントを特定する。
10.5 ISOベースのメディアファイルフォーマットからの導出
10.5.1 MV−HEVCトラック構造
マルチビュービデオストリームが、ファイル中の1つまたは複数のビデオトラックによって表される。各トラックは、ストリームの1つまたは複数のビューを表す。
【0192】
符号化された情報の完全なセットを全体として含む、1つまたは複数のトラックの最小限のセットがある。すべてのこれらのトラックは、すべてのサンプルエントリーにおいて設定された、「complete_representation」というフラグを有するべきである。完全な符号化された情報を形成するトラックのこのグループは、「完全なサブセット」と呼ばれる。
【0193】
最低のオペレーションポイントを、0に等しいnuh_layer_idのみと0に等しいTemporalIdのみとを有するNALユニットを含むすべてのオペレーションポイントの1つとする。最低のオペレーションポイントを含むトラックが、「ベースビュートラック」として指名されるべきである。同じストリームの部分であるすべての他のトラックが、タイプ「sbas」(ベースビュー)のトラック参照によって、このベーストラックにリンクされるべきである。
【0194】
同じベースビュートラックを共有するすべてのトラックが、そのベースビュートラックと同じ時間軸を共有しなければならない。
【0195】
トラックによって表されるビューが、ビュー間予測参照として別のトラックによって表される別のビューを使用する場合、タイプ「scal」のトラック参照が、ビュー間予測のためのソーストラックを参照するトラックに含まれるべきである。
【0196】
MV−HEVCビットストリームのビュー成分を含むトラックに編集が適用される場合、編集リストは、編集の影響を受けるすべてのトラックにわたって一貫していなければならない。
10.5.2 アクセスユニットの再構築
1つまたは複数のMV−HEVCトラックのサンプルからアクセスユニットを再構築するために、ターゲット出力ビューが最初に決定される必要があり得る。
【0197】
決定されたターゲット出力ビューを復号するために必要とされるビューは、ビュー識別子ボックスまたは「scal」トラック参照に含まれる参照ビュー識別子から断定され得る。
【0198】
いくつかのトラックがアクセスユニットのためのデータを含む場合、トラック中のそれぞれのサンプルの整列が、復号時に、すなわち、編集リストを考慮することなく時間対サンプルのテーブルのみを使用して、実行される。
【0199】
アクセスユニットは、ISO/IEC 23008−02に適合した順序でNALユニットを並べることによって、必要とされるトラックの中のそれぞれのサンプルから再構築される。以下の順序は、準拠するアクセスユニットを形成するための手順の概略を提供する。
【0200】
・(関連付けられるパラメータセットトラックからの、および関連付けられるエレメンタリストリームトラックからの)すべてのパラメータセットNALユニット
・(関連付けられるパラメータセットトラックからの、および関連付けられるエレメンタリストリームトラックからの)すべてのSEI NALユニット
・ビュー順序インデックス値の昇順のビュー成分ビュー成分内のNALユニットは、サンプル内での出現の順序になっている。
10.5.3 サンプルエントリー
10.5.3.1 サンプルエントリーのためのボックス
10.5.3.1.1 ビュー識別子ボックス
10.5.3.1.1.1 定義
ボックスタイプ:「vwid」
コンテナ:サンプルエントリー(「hev1」、「hvc1」、「hev2」、「hvc2」、「mhc1」、「mhv1」)またはMultiviewGroupEntry
必須性:あり(サンプルエントリーに対して)
量:ちょうど1つ(サンプルエントリーに対して)
サンプルエントリーに含まれるとき、このボックスは、トラックに含まれるビューを示す。このボックスはまた、各々の列挙されたビューのビュー順序インデックスを示す。加えて、ボックスは、ビュー識別子ボックスがサンプルエントリーに含まれるとき、トラックに含まれるtemporal_idの値の最小値と最大値とを含む。その上、ボックスは、トラックに含まれるビューを復号するために必要とされる参照されるビューを示す。
10.5.3.1.1.2 シンタックス
【0202】
10.5.3.1.1.3 セマンティクス
min_temporal_id、max_temporal_idはそれぞれ、ビュー識別子ボックスがサンプルエントリーに含まれるときにそれぞれトラックまたは階層にマッピングされるNALユニットのNALユニットヘッダ拡張中にそれぞれ存在する、temporal_idシンタックス要素の最小値および最大値をとる。AVCストリームに対して、これは、プレフィックスNALユニットの中にある、またはその中にあるであろう、値をとる。
【0203】
num_viewsは、ビュー識別子ボックスがサンプルエントリー中に存在するとき、トラックに含まれるビューの数を示す。
【0204】
layer_id[i]は、ビュー識別子ボックスがサンプルエントリーに含まれるときにトラックに含まれるレイヤのNALユニットヘッダ中の、nuh_layer_idシンタックス要素の値を示す。
【0205】
view_idは、ISO/IEC 23008−2のAnnex Fにおいて規定されるような、layer_id[i]に等しいnuh_layer_idを有するi番目のレイヤのビュー識別子を示す。
【0206】
base_view_typeは、ビューがベースビューかどうか(仮想的かどうか)を示す。これは次の値をとる。
【0207】
0は、ビューがベースビューでも仮想ベースビューでもないことを示す。
【0208】
1は、MV−HEVCビットストリームの仮想ベースビューをラべリングするために使用されるべきである。
【0209】
2は、予備の値であり使用されるべきではない。
【0210】
3は、view_id[i]を有するビューが仮想ベースビューであることを示す。それぞれの独立にコーディングされた、view_id[i]を有する非ベースビューは、別のトラックに存在する。base_view_typeが3に等しいとき、後続のnum_ref_viewsは0に等しくなければならない。
【0211】
depdent_layer[i][j]は、jに等しいnuh_layer_idを有するj番目のレイヤが、layer_id[i]に等しいnuh_layer_idを有するレイヤの、直接のまたは間接的な参照されるレイヤであり得るかどうかを示す。ビュー識別子ボックスがサンプルエントリーに含まれるとき、同じサンプルエントリー中の参照されるビューを示すことが推奨される。
10.5.3.2 サンプルエントリーの定義
サンプルエントリーのタイプ:「hvc2」、「hev2」、「mhc1」、「mhv1」、「mhcC」
コンテナ:サンプル記述ボックス(「stsd」)
必須性:「hvc1」、「hev1」、「hvc2」、「hev2」、「mhc1」、または「mhv1」ボックスの1つが必須である。
【0212】
量:1つまたは複数のサンプルエントリーが存在し得る。
【0213】
MV−HEVCエレメンタリストリームが、使用可能なHEVCに適合するベースビューを含む場合、HEVC視覚サンプルエントリー(「hvc1」、「hev1」、「hvc2」、「hev2」)が使用されるべきである。ここで、エントリーは、最初にHEVC Configuration Boxを含み、場合によっては、以下で定義されるようなMV−HEVC Configuration Boxがそれに続くべきである。HEVC Configuration Boxは、Profile、Level、および場合によっては、HEVCDecoderConfigurationRecordによって定義されるような、HEVCに適合するベースビューに関するパラメータセットも記録する。MV−HEVC Configuration Boxは、Profile、Level、および、MVHEVCConfigurationBoxに記憶されているMVHEVCDecoderConfigurationRecordによって定義されるような、非ベースビューを含む全体のストリームに関するパラメータセット情報を記録する。
【0214】
すべてのサンプルエントリー「hvc1」、「hev1」、「hvc2」、「hev2」に対して、サンプルエントリー中の幅および高さのフィールドは、HEVCベースレイヤを記述する。MV−HEVCサンプルエントリー(「mhc1」、「mhv1」)では、幅および高さは、ストリーム全体の任意の単一のビューを復号することによって達成される分解能(resolution)を記録する。
【0215】
MV−HEVCエレメンタリストリームが使用可能なHEVCベースビューを含まない場合、MV−HEVC視覚サンプルエントリー(「mhc1」、「mhv1」)が使用されるべきである。MV−HEVC視覚サンプルエントリーは、以下で定義されるような、MV−HEVC Configuration Boxを含むべきである。これは、この国際規格において定義されるような、MVHEVCDecoderConfigurationRecordを含む。
【0216】
任意の所与のサンプルエントリーにおけるMV−HEVC構成およびHEVC構成中のlengthSizeMinusOneフィールドは、同じ値を有するべきである。
【0217】
6.5.3.1.1において記述されるような、サンプルエントリーのタイプ「hvc1」および「hev1」に対する要件が、ここでも適用される。
【0218】
MVHEVCConfigurationBoxは、「hvc1」、「hev1」、「hvc2」、「hev2」サンプルエントリーに存在し得る。これらの場合、以下のHEVCMVHEVCSampleEntryまたはHEVC2MVHEVCSampleEntryの定義がそれぞれ適用される。
【0219】
ベースクラスVisualSampleEntryにおけるCompressornameは、値「\014MV−HEVC Coding」(\016は、文字列「MV−HEVC coding」のバイト単位での長さである、14である)によって、使用されるコンプレッサの名前を示す。
【0220】
ビデオストリームのサンプルデータに存在するNALユニットを復号するために必要とされるパラメータセットは、直接、またはエクストラクタからの参照によって、そのビデオストリームのデコーダ構成または関連付けられるパラメータセットストリーム(使用される場合)に存在すべきである。
【0221】
次の表は、MV−HEVCエレメンタリストリームが1つまたは複数のトラックに記憶されるときのサンプルエントリーのすべての可能性のある使用法と、構成と、MV−HEVCツールとを、ビデオトラックについて示す。
【0223】
以下のサンプルエントリーmvhevc−typeは、{mhv1,mhc1}の1つである。
10.5.3.3 シンタックス
【0225】
10.5.4 MV−HEVCのためのサブサンプルの定義
MV−HEVCのためのサブサンプルの定義は、SHVCのために定義されるものと同様に定義される。
10.5.5 非出力サンプルの処理
MV−HEVCのための非出力サンプルの処理は、SHVCのために定義されるものと同様に定義される。
[0124]Annex Aに対する変更が以下に示される。
Annex A(規範的)
ストリーム内構造
A.1 序論
アグリゲータおよびエクストラクタは、NALユニットの効率的なグループ化または他のトラックからのNALユニットの抽出を可能にする、ファイルフォーマットの内部構造である。
アグリゲータおよびエクストラクタは、NALユニットシンタックスを使用する。これらの構造は、サンプル構造の文脈ではNALユニットとして見なされる。サンプルにアクセスしている間、アグリゲータは(含まれるまたは参照されるNALユニットを残して)除去されなければならず、エクストラクタはエクストラクタが参照するデータによって置き換えられなければならない。アグリゲータおよびエクストラクタは、ファイルフォーマットの外部のストリームに存在してはならない。
【0226】
これらの構造は、ISO/IEC 14496−10またはISO/IEC 23008−2によってアプリケーション/トランスポートレイヤのために確保されている、NALユニットタイプを使用する。
【0227】
注意 以下の記述はISO/IEC 14496−10からのものである。
「注意−NALユニットタイプ0および24…31は、アプリケーションによって決定されるように使用され得る。nal_unit_typeのこれらの値に対する復号プロセスは、この勧告|国際規格では規定されない。」
注意 以下の記述はISO/IEC 23008−2からのものである。
「注意1−UNSPEC48〜UNSPEC63の範囲内のNALユニットタイプは、アプリケーションによって決定されるように使用され得る。nal_unit_typeのこれらの値についての復号プロセスは、本仕様では規定されない。異なるアプリケーションが異なる目的でこれらのNALユニットタイプを使用する可能性があるので、これらのnal_unit_type値を有するNALユニットを生成するエンコーダの設計、およびこれらのnal_unit_type値を有するNALユニットの内容を解釈するデコーダの設計において、特別な注意が払われなければならない。」
A.2 アグリゲータ
A.2.1 定義
この項は、NALU−map−groupエントリーが一貫しており反復的であることを可能にする、アグリゲータについて説明する。(Annex B参照)。
【0228】
アグリゲータは、同じサンプルに属するNALユニットをグループ化するために使用される。
【0229】
ISO/IEC 14496−10ビデオの記憶のために、次の規則が適用される。
【0230】
−アグリゲータは、SVC VCL NALユニットまたはMVC VCL NALユニットと同じNALユニットヘッダを使用するが、異なる値のNALユニットタイプとともに使用する。
【0231】
−アグリゲータのNALユニットシンタックスのsvc_extension_flag(ISO/IEC 14496−10の7.3.1において規定される)が1に等しいとき、SVC VCL NALユニットのNALユニットヘッダがアグリゲータのために使用される。それ以外の場合、MVC VCL NALユニットのNALユニットヘッダがアグリゲータのために使用される。
【0232】
ISO/IEC 23008−2ビデオの記憶のために、アグリゲータは、プレーンHEVC、SHVC、およびMV−HEVCに対して同じシンタックスを有する、ISO/IEC 23008−2において定義されるようなNALユニットヘッダを使用する。
【0233】
アグリゲータは、包含によって、アグリゲータ内の(アグリゲータの長さによって示されるサイズ内の)NALユニットを集約することと、また、参照によって、アグリゲータに続く(アグリゲータ内のadditional_bytesフィールドによって示されるエリア内の)NALユニットを集約することとの両方を行うことができる。ストリームがAVCまたはHEVCファイルリーダーによって走査されるとき、含まれるNALユニットだけがアグリゲータの「中にある」ものとして見なされる。これにより、AVCまたはHEVCファイルリーダーは、不要なNALユニットが包含によって集約されるときに、不要なNALユニットのセット全体を飛ばすことが可能になる。また、これにより、AVCまたはHEVCリーダーは、必要なNALユニットが参照によって集約されるときに、それらを飛ばさずにストリーム中に留まらせることが可能になる。
【0234】
アグリゲータは、ベースレイヤまたはベースビューNALユニットをグループ化するために使用され得る。これらのアグリゲータが「avc1」、「hvc1」、または「hev1」トラックにおいて使用される場合、アグリゲータは、ベースレイヤまたはベースビューNALユニットの包含ではなく参照を使用するべきである(アグリゲータの長さはアグリゲータのヘッダのみを含み、アグリゲータによって参照されるNALユニットはadditional_bytesによって指定される)。
【0235】
アグリゲータが0に等しいdata_lengthを有するエクストラクタ、またはMapサンプルグループのいずれかによって参照されるとき、アグリゲータは、含まれるバイトと参照されるバイトの両方を集約するものとして扱われる。
【0236】
アグリゲータは、エクストラクタを含み、または参照し得る。エクストラクタは、アグリゲータから抽出し得る。アグリゲータは、別のアグリゲータを直接含んではならず、または参照してはならない。しかしながら、アグリゲータは、アグリゲータを参照するエクストラクタを含んでよく、または参照してよい。
【0237】
ストリームを走査するとき、
a) アグリゲータが(たとえば、AVCまたはHEVCリーダーまたはデコーダによって)認識されていない場合、アグリゲータは含まれる内容とともに容易に廃棄される。
b) アグリゲータが必要とされない(すなわち、アグリゲータが所望されないレイヤに属している)とき、アグリゲータおよびその内容は、包含と参照の両方によって、(アグリゲータの長さとadditional_bytesフィールドとを使用して)容易に廃棄される。
c) アグリゲータが必要である場合、アグリゲータのヘッダは容易に廃棄され、アグリゲータの内容は保持される。
【0238】
アグリゲータは、任意の他のNALユニットのようにサンプル内に記憶される。
【0239】
すべてのNALユニットは、アグリゲータ内で復号順序のままである。
A.2.2 シンタックス
【0241】
A.2.3 セマンティクス
変数AggregatorSizeの値は、アグリゲータNALユニットのサイズに等しく、関数sizeof(X)は、フィールドXのサイズをバイト単位で返す。
【0242】
NALUnitHeader():SVCおよびMVC VCL NALユニットの最初4バイト、
またはISO/IEC 23008−2 NALユニットの最初の2バイト
nal_unit_typeは、アグリゲータNALユニットタイプ(
ISO/IEC 14496−10ビデオに対してはタイプ
30およびISO/IEC 23008−2ビデオに対してはタイプ48)に設定されるべきである。
【0243】
SVC NALユニットを含む、または参照するアグリゲータでは、次のことが当てはまるものとする。
【0244】
forbidden_zero_bitおよびreserved_three_2bitsは、ISO/IEC 14496−10において規定されるように設定されるべきである。
【0245】
他のフィールド(nal_ref_idc、idr_flag、priority_id、no_inter_layer_pred_flag、dependency_id、quality_id、temporal_id、use_ref_base_pic_flag、discardable_flag、およびoutput_flag)は、A.4において規定されるように設定されるべきである。
【0246】
MVC NALユニットを含む、または参照するアグリゲータでは、次のことが当てはまるものとする。
forbidden_zero_bitおよびreserved_one_bitは、ISO/IEC 14496−10において規定されるように設定されるべきである。
他のフィールド(nal_ref_idc、non_idr_flag、priority_id、view_id、temporal_id、anchor_pic_flag、およびinter_view_flag)は、A.5において規定されるように設定されるべきである。
ISO/IEC 23008−2 NALユニットを含む、または参照するアグリゲータでは、次のことが当てはまるものとする。
【0247】
forbidden_zero_bitは、ISO/IEC 23008−2において規定されるように設定されるべきである。
【0248】
他のフィールド(nuh_layer_idおよびnuh_temporal_id_plus1)は、A.6において規定されるように設定されるべきである。
【0249】
additional_bytes:このアグリゲータが0に等しいdata_lengthを有するエクストラクタまたはMapサンプルグループによって参照されるときに集約されるものとして見なされるべき、このアグリゲータNALユニットの後に続くバイトの数。
【0250】
NALUnitLength:後続のNALユニットのサイズをバイト単位で指定する。このフィールドのサイズは、lengthSizeMinusOneフィールドによって指定される。
【0251】
NALUnit:NALユニットヘッダを含む、ISO/IEC 14496−10
またはISO/IEC 23008−2において指定されるようなNALユニット。NALユニットのサイズは、NALUnitLengthによって指定される。
A.3 エクストラクタ
A.3.1 定義
この項は、他のトラックからのNALユニットを参照によって抽出するトラックの小型の形成を可能にする、エクストラクタについて説明する。
【0252】
アグリゲータは、エクストラクタを含んでよく、または参照してよい。エクストラクタは、アグリゲータを参照することができる。エクストラクタが、エクストラクタを要求するファイルリーダーによって処理されるとき、エクストラクタは、エクストラクタが参照するバイトによって論理的に置換される。それらのバイトは、エクストラクタを含んではならない。エクストラクタは、別のエクストラクタを直接または間接的に参照してはならない。
【0253】
注意 エクストラクタによって参照されるデータがエクストラクタを含んではならないとしても、参照されるトラックはエクストラクタをみ得る。
【0254】
エクストラクタは、エクストラクタが存在するトラックにリンクされる別のトラックから、タイプ「scal」のトラック参照によってデータを抽出するための命令を含む。
コピーされるバイトは、以下のうちの1つであるものとする。
a) 1つの全体のNALユニット;アグリゲータが参照されるとき、含まれるバイトと参照されるバイトの両方がコピーされることに留意されたい
b) 2つ以上の全体のNALユニット
両方の場合において、抽出されるバイトは、有効長フィールドおよびNALユニットヘッダで開始する。
【0255】
バイトは、示される「scal」トラック参照を通じて参照されるトラック中の単一の特定されるサンプルだけからコピーされる。この整列は、復号の時点に行われ、すなわち時間対サンプルのテーブルのみを使用して行われ、サンプル番号のカウントされたオフセットが後に続く。エクストラクタは、メディアレベルの概念であるので、編集リストが考慮される前に宛先トラックに適用される。(しかしながら、2つのトラック中の編集リストは同一であることが通常は予想される)。
A.3.2 シンタックス
【0257】
A.3.3 セマンティクス
NALUnitHeader():SVCおよびMVC VCL NALユニットの最初4バイト、
またはISO/IEC 23008−2 NALユニットの最初の2バイト
nal_unit_typeは、エクストラクタNALユニットタイプ(
ISO/IEC 14496−10ビデオに対してはタイプ31
およびISO/IEC 23008−2ビデオに対してはタイプ49)に設定されるべきである。
【0258】
SVC NALユニットを参照するエクストラクタでは、次のことが当てはまるものとする。
【0259】
forbidden_zero_bitおよびreserved_three_2bitsは、ISO/IEC 14496−10において規定されるように設定されるべきである。
【0260】
他のフィールド(nal_ref_idc、idr_flag、priority_id、no_inter_layer_pred_flag、dependency_id、quality_id、temporal_id、use_ref_base_pic_flag、discardable_flag、およびoutput_flag)は、A.4において規定されるように設定されるべきである。
【0261】
MVC NALユニットを参照するエクストラクタでは、次のことが当てはまるものとする。
【0262】
forbidden_zero_bitおよびreserved_one_bitは、ISO/IEC 14496−10において規定されるように設定されるべきである。
【0263】
他のフィールド(nal_ref_idc、non_idr_flag、priority_id、view_id、temporal_id、anchor_pic_flag、およびinter_view_flag)は、A.5において規定されるように設定されるべきである。
【0264】
ISO/IEC 23008−2 NALユニットを参照するエクストラクタでは、次のことが当てはまるものとする。
【0265】
forbidden_zero_bitは、ISO/IEC 23008−2において規定されるように設定されるべきである。
【0266】
他のフィールド(nuh_layer_idおよびnuh_temporal_id_plus1)は、A.6において規定されるように設定されるべきである。
【0267】
track_ref_indexは、データの抽出元のトラックを見つけるために使用すべき、タイプ「scal」のトラック参照のインデックスを指定する。データの抽出元のそのトラックの中のサンプルは、メディア復号の流れにおいて、すなわち時間対サンプルのテーブルのみを使用して、時間的に揃えられ、または最も接近して先行し、エクストラクタを含むサンプルに対して、sample_offsetによって指定されるオフセットによって調整される。第1のトラック参照は、インデックス値1を有し、値0は予備である。
【0268】
sample_offsetは、情報のソースとして使用されるべきリンクされたトラック中のサンプルの相対的なインデックスを与える。サンプル0は、エクストラクタを含むサンプルの復号時間と比較して、同一の、または最も近い先行する復号時間を有するサンプルであり、サンプル1はその次のサンプルであり、サンプル−1はその前のサンプルであり、以下同様である。
【0269】
data_offset:コピーすべき参照サンプル内の最初のバイトのオフセット。抽出がそのサンプル中のデータの最初のバイトで開始する場合、オフセットは値0をとる。このオフセットは、NALユニット長フィールドの始まりを参照すべきである。
【0270】
data_length:コピーすべきバイトの数。このフィールドが値0をとる場合、全体の単一の参照されるNALユニットがコピーされる(すなわち、コピーすべき長さは、データオフセットにより参照される長さフィールドから得られ、アグリゲータの場合はadditional_bytesフィールドによって補足される)。
注意 2つのトラックが異なるlengthSizeMinusOne値を使用する場合、抽出されるデータは、宛先トラックの長さフィールドのサイズに適合するための再フォーマットを必要とする。
A.4 SVCのためのNALユニットヘッダの値
エクストラクタとアグリゲータの両方が、NALユニットヘッダSVC拡張を使用する。エクストラクタによって抽出された、またはアグリゲータによって集約されたNALユニットは、アグリゲータNALユニットまたはエクストラクタNALユニットの内容を反復的に調査することによって参照されまたは含められる、すべてのNALユニットである。
【0271】
フィールドnal_ref_idc、idr_flag、priority_id、temporal_id、dependency_id、quality_id、discardable_flag、output_flag、use_ref_base_pic_flag、およびno_inter_layer_pred_flagは、次の値をとるべきである。
【0272】
nal_ref_idcは、すべての抽出されたNALユニットまたは集約されたNALユニット中のフィールドの最高値に設定されるべきである。
【0273】
idr_flagは、すべての抽出されたNALユニットまたは集約されたNALユニット中のフィールドの最高値に設定されるべきである。
【0274】
priority_id、temporal_id、dependency_id、およびquality_idはそれぞれ、すべての抽出されたNALユニットまたは集約されたNALユニット中のフィールドの最低値に設定されるべきである。
【0275】
discardable_flagは、すべての抽出されたNALユニットまたは集約されたNALユニットが1に設定されたdiscardable_flagを有する場合にだけ1に設定されるべきであり、それ以外の場合は0に設定されるべきである。
【0276】
output_flagは、集約されたNALユニットまたは抽出されたNALユニットの少なくとも1つが1に設定されたこのフラグを有する場合に1に設定されるべきであり、それ以外の場合は0に設定されるべきである。
【0277】
use_ref_base_pic_flagは、抽出されたVCL NALユニットまたは集約されたVCL NALユニットの少なくとも1つが1に設定されたuse_ref_base_pic_flagを有する場合にだけ1に設定されるべきであり、それ以外の場合は0に設定されるべきである。
【0278】
no_inter_layer_pred_flagは、すべての抽出されたVCL NALユニットまたは集約されたVCL NALユニットが1に設定されたno_inter_layer_pred_flagを有する場合にだけ1に設定されるべきであり、それ以外の場合は0に設定されるべきである。
抽出されたNALユニットまたは集約されたNALユニットのセットが空である場合、これらのフィールドの各々は、マッピングされた階層の記述と適合する値をとる。
【0279】
注意 アグリゲータは、異なるスケーラビリティ情報を有するNALユニットをグループ化し得る。
【0280】
注意 アグリゲータは、NALユニットヘッダによってシグナリングされ得ないスケーラビリティのレベルに属するNALユニット(たとえば、関心のある領域に属するNALユニット)をグループ化するために使用され得る。そのようなアグリゲータの記述は、階層の記述およびNALユニットマップグループによって行われ得る。この場合、同じスケーラビリティ情報を有する2つ以上のアグリゲータが1つのサンプルにおいて発生し得る。
【0281】
注意 複数のスケーラブルトラックが同じメディアデータを参照する場合、アグリゲータは、同一のスケーラビリティ情報を有するNALユニットのみをグループ化すべきである。これにより、得られるパターンがトラックの各々によってアクセスされ得ることが確実になる。
【0282】
注意 特定のレイヤのNALユニットがアクセスユニット中に存在しない場合、空のアグリゲータ(アグリゲータの長さがヘッダだけを含み、additional_bytesが0である)が存在し得る。
A.5 MVCのためのNALユニットヘッダの値
アグリゲータとエクストラクタの両方が、NALユニットヘッダMVC拡張を使用する。エクストラクタによって抽出された、またはアグリゲータによって集約されたNALユニットは、アグリゲータNALユニットまたはエクストラクタNALユニットの内容を反復的に調査することによって参照されまたは含められる、すべてのNALユニットである。
【0283】
フィールドnal_ref_idc、non_idr_flag、priority_id、view_id、temporal_id、anchor_pic_flag、およびinter_view_flagは、次の値をとるべきである。
【0284】
nal_ref_idcは、すべての集約されたNALユニットまたは抽出されたNALユニット中のフィールドの最高値に設定されるべきである。
【0285】
non_idr_flagは、すべての集約されたNALユニットまたは抽出されたNALユニット中のフィールドの最低値に設定されるべきである。
【0286】
priority_idおよびtemporal_idはそれぞれ、すべての集約されたNALユニットまたは抽出されたNALユニット中のフィールドの最低値に設定されるべきである。
【0287】
view_idは、すべての集約されたVCL NALユニットまたは抽出されたVCL NALユニットの中で最低のビュー順序インデックスを有する、VCL NALユニットのview_id値に設定されるべきである。
【0288】
anchor_pic_flagおよびinter_view_flagはそれぞれ、すべての集約されたVCL NALユニットまたは抽出されたVCL NALユニット中のフィールドの最高値に設定されるべきである。
【0289】
抽出されたNALユニットまたは集約されたNALユニットのセットが空である場合、これらのフィールドの各々は、マッピングされた階層の記述と適合する値をとる。
A.6 ISO/IEC 23008−2のためのNALユニットヘッダの値
アグリゲータとエクストラクタの両方が、ISO/IEC 23008−2において規定されるようにNALユニットヘッダを使用する。エクストラクタによって抽出された、またはアグリゲータによって集約されたNALユニットは、アグリゲータNALユニットまたはエクストラクタNALユニットの内容を反復的に調査することによって参照されまたは含められる、すべてのNALユニットである。
【0290】
フィールドnuh_layer_idおよびnuh_temporal_id_plus1は、次のように設定されるべきである。
【0291】
nuh_layer_idは、すべての集約されたNALユニットまたは抽出されたNALユニット中のフィールドの最低値に設定されるべきである。
【0292】
nuh_temporal_id_plus1は、すべての集約されたNALユニットまたは抽出されたNALユニット中のフィールドの最低値に設定されるべきである。
[0125]1つの代替的な例では、MV−HEVC WD5またはSHVC WD3のAnnex Fにおいて定義されるようなすべてのIRAPアクセスユニットを記録するために、新たな構造、テーブル、またはサンプルグループが定義される。代替的に、MV−HEVC WD5またはSHVC WD3のAnnex Fにおいて定義されるような、しかしすべてのコーディングされたピクチャがIRAPピクチャであるアクセスユニットを除く、すべてのIRAPアクセスユニットを記録するために、新たな構造、テーブル、またはサンプルグループが定義される。別の代替的な例では、シンクサンプルのサンプルグループのエントリーSyncSampleEntryが、このグループに属するサンプル中のすべてのピクチャがIDRピクチャ、CRAピクチャ、またはBLAピクチャであることを指定するaligned_sync_flagを予備ビットの1つに含めるために再定義される。別の代替的な例では、SHVCおよびMV−HEVCファイルフォーマットからのすべての共通の態様を含む、SHVCまたはMV−HEVCのための共通のファイルフォーマットが定義され、その拡張に関する態様だけを含むように、SHVCおよびMV−HEVCファイルフォーマットだけが再定義される。別の代替的な例では、SHVCメタデータサンプルのエントリーSHVCMetadataSampleEntryおよびSHVCMetadataSampleConfigBoxが定義され、メタデータサンプルのステートメントタイプscalabilityInfoSHVCStatementも定義される。
【0293】
[0126]
図2は、本開示で説明される技法を実施し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、シングルビュー、マルチビュー、スケーラブル、3D、および他のタイプのビデオデータを出力するように構成され得る。ビデオエンコーダ20は、ビデオを後処理処理エンティティ27に出力するように構成され得る。後処理処理エンティティ27は、MANEまたはスプライシング/編集デバイスなどの、ビデオエンコーダ20からの符号化されたビデオデータを処理し得るビデオエンティティの例を表すことが意図されている。場合によっては、後処理処理エンティティはネットワークエンティティの例であり得る。いくつかのビデオ符号化システムでは、後処理エンティティ27およびビデオエンコーダ20は別個のデバイスの部分であってもよく、他の事例では、後処理エンティティ27に関して説明される機能は、ビデオエンコーダ20を備える同じデバイスによって実行されてもよい。後処理エンティティ27はビデオデバイスであり得る。いくつかの例では、後処理エンティティ27は
図1のファイル生成デバイス34と同じであり得る。
【0294】
[0127]ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行することができる。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測(Pモード)または双予測(Bモード)のようなインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
【0295】
[0128]
図2の例では、ビデオエンコーダ20は、区分ユニット35と、予測処理ユニット41と、フィルタユニット63と、参照クチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測処理ユニット46とを含む。ビデオブロックの再構築のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含む。フィルタユニット63は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタのような、1つまたは複数のループフィルタを表すことが意図されている。
図2では、フィルタユニット63はループ内フィルタであるものとして示されているが、他の構成では、フィルタユニット63はループ後フィルタとして実装され得る。
【0296】
[0129]ビデオエンコーダ20のビデオデータメモリは、ビデオエンコーダ20のコンポーネントによって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリに記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。参照ピクチャメモリ64は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用するための、参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリおよび参照ピクチャメモリ64は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)のような、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリおよび参照ピクチャメモリ64は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリは、ビデオエンコーダ20の他のコンポーネントとともにオンチップであるか、またはそれらのコンポーネントに対してオフチップであり得る。
【0297】
[0130]
図2に示されているように、ビデオエンコーダ20はビデオデータを受信し、区分ユニット35はデータをビデオブロックに区分する。この区分はまた、たとえば、LCUおよびCUの4分木構造に従って、スライス、タイル、または他のより大きいユニットへの区分、アズウェルズアズビデオブロック区分も含み得る。ビデオエンコーダ20は一般に、符号化されるべきビデオスライス内のビデオブロックを符号化するコンポーネントを示す。スライスは、複数のビデオブロック(場合によってはタイルと呼ばれるビデオブロックのセット)に分割され得る。予測処理ユニット41は、現在のビデオブロックに関して、誤差結果(たとえば、コーディングレートおよびひずみレベル)に基づいて、複数のイントラコーディングモードの1つまたは複数のインターコーディングモードの1つのような、複数の可能なコーディングモードの1つを選択することができる。予測処理ユニット41は、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを、残差ブロックデータを生成するために加算器50に与え、参照ピクチャとして使用するための符号化されたブロックを再構築するために加算器62に与え得る。
【0298】
[0131]予測処理ユニット41内のイントラ予測処理ユニット46は、空間的圧縮を行うために、コーディングされるべき現在のブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する現在のビデオブロックのイントラ予測コーディングを実行することができる。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間的圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対して現在のビデオブロックのインター予測コーディングを実行する。
【0299】
[0132]動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスを、Pスライス、Bスライス、またはGPBスライスとして指定し得る。動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたは現在のピクチャ内のビデオブロックのPUの変位を示し得る。
【0300】
[0133]予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分の尺度によって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUと厳密に一致することが判明しているブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算することができる。たとえば、ビデオエンコーダ20は、参照ピクチャの4分の1ピクセル位置、8分の1ピクセル位置、または他の分数のピクセル位置の値を補間することができる。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対して動き探索を実行し、動きベクトルを分数ピクセル精度で出力することができる。
【0301】
[0134]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス中のビデオブロックのPUの動きベクトルを計算する。参照ピクチャは、その各々が、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
【0302】
[0135]動き補償ユニット44によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実行することを伴い得る。現在のビデオブロックのPUの動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストの1つにおいて指す予測ブロックの位置を特定することができる。ビデオエンコーダ20は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成することができる。ピクセル差分値は、ブロックのための残差データを形成し、ルーマとクロマの両方の差分成分を含み得る。加算器50は、この減算演算を実行する1つまたは複数のコンポーネントを表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用するための、ビデオブロックとビデオスライスとに関連付けられたシンタックス要素を生成することができる。
【0303】
[0136]イントラ予測処理ユニット46は、上で説明されたように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在のブロックをイントラ予測することができる。特に、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用するイントラ予測モードを決定することができる。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パスの間に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。たとえば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードにレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または、誤差)の量、ならびに符号化されたブロックを作成するのに使用されたビットレート(すなわち、ビットの数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックに関する最良のレートひずみ値を示すのかを決定するために、様々な符号化されたブロックのひずみおよびレートから比を算出することができる。
【0304】
[0137]いずれの場合も、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に与えることができる。エントロピー符号化ユニット56は、本開示の技法に従って、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび(コードワードマッピングテーブルとも呼ばれる)複数の修正されたイントラ予測モードインデックステーブルと、様々なブロックに対する符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確(most probable)イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを、送信されるビットストリーム中に含めることができる。
【0305】
[0138]予測処理ユニット41が、インター予測またはイントラ予測のいずれかを介して、現在のビデオブロックの予測ブロックを生成した後に、ビデオエンコーダ20は、現在のビデオブロックから予測ブロックを減算することによって、残差ビデオブロックを形成することができる。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換することができる。
【0306】
[0139]変換処理ユニット52は、結果として得られる変換係数を量子化ユニット54に送ることができる。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部またはすべてと関連付けられるビット深度を減らすことができる。量子化の程度は、量子化パラメータを調整することによって、修正され得る。いくつかの例では、量子化ユニット54は次いで、量子化された変換係数を含む行列の走査を実行することができる。代替的に、エントロピー符号化ユニット56が走査を実行することができる。
【0307】
[0140]量子化に続いて、エントロピー符号化ユニット56は、量子化された変換係数を表すシンタックス要素をエントロピー符号化することができる。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC:context adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:probability interval partitioning entropy)コーディング、または別のエントロピー符号化の方法もしくは技法を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化の後に、符号化されたビットストリームはビデオデコーダ30に送信され、または、ビデオデコーダ30による後の送信または取り出しのためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コーディングされている現在のビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化することができる。
【0308】
[0141]逆量子化ユニット58および逆変換処理ユニット60は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構築する。動き補償ユニット44は、残差ブロックを参照ピクチャリストのうちの1つの中の参照ピクチャの1つの予測ブロックに加算することによって参照ブロックを計算することができる。動き補償ユニット44はまた、再構築された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算し得る。加算器62は、再構築された残差ブロックを動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ64に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
【0309】
[0142]ビデオエンコーダ20は、本開示で説明されるファイルフォーマット技法を使用して記憶され得る、ビデオコーダコンフィギャードジェネレートビデオデータの例を表す。
【0310】
[0143]
図3は、本開示で説明される技法を実施し得る例示的なビデオデコーダ30を示すブロック図である。ビデオデコーダ30は、シングルビュー、マルチビュー、スケーラブル、3D、および他のタイプのビデオデータを復号するように構成され得る。
図3の例では、ビデオデコーダ30は、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換処理ユニット88と、加算器90と、フィルタユニット91と、参照ピクチャメモリ92とを含む。予測処理ユニット81は、動き補償ユニット82とイントラ予測処理ユニット84とを含む。ビデオデコーダ30は、いくつかの例では、
図2においてビデオエンコーダ20に関して説明された符号化パスとは概ね逆の復号パスを実行することができる。
【0311】
[0144]コーディングされたピクチャバッファ(CPB)79は、ビットストリームの符号化されたビデオデータ(たとえば、NALユニット)を受信し、記憶することができる。CPB79に記憶されるビデオデータは、たとえば、リンク16から、たとえば、カメラなどのローカルビデオソースから、ビデオデータの有線もしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって、取得され得る。CPB79は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するビデオデータメモリを形成し得る。CPB79は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。CPB79および参照ピクチャメモリ92は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)などの様々なメモリデバイスのいずれかによって形成され得る。CPB79および参照ピクチャメモリ92は、同じメモリデバイスまたは別々のメモリデバイスによって提供され得る。様々な例では、CPB79は、ビデオデコーダ30の他のコンポーネントとともにオンチップであってよく、またはそれらのコンポーネントに対してオフチップであってもよい。
【0312】
[0145]復号プロセスの間、ビデオデコーダ30は、符号化されたビデオスライスのビデオブロックと、関連付けられたシンタックス要素とを表す、符号化されたビットストリームをビデオエンコーダ20から受信する。ビデオデコーダ30は、ネットワークエンティティ29から符号化されたビデオビットストリームを受信することができる。ネットワークエンティティ29は、たとえば、上で説明された技法の1つまたは複数を実装するように構成されたサーバ、MANE、ビデオエディタ/スプライサ、または他のそのようなデバイスであり得る。ネットワークエンティティ29は、ビデオエンコーダ20のようなビデオエンコーダを含んでもよく、または含まなくてもよい。本開示で説明される技法のいくつかは、ネットワークエンティティ29が符号化されたビデオビットストリームをビデオデコーダ30に送信するのに先立って、ネットワークエンティティ29によって実施され得る。いくつかのビデオ復号システムでは、ネットワークエンティティ29およびビデオデコーダ30は別個のデバイスの一部であり得るが、他の事例では、ネットワークエンティティ29に関して説明される機能は、ビデオデコーダ30を備える同じデバイスによって実行され得る。ネットワークエンティティ29は、ビデオデバイスと見なされ得る。さらに、いくつかの例では、ネットワークエンティティ29は、
図1のファイル生成デバイス34である。
【0313】
[0146]ビデオデコーダ30のエントロピー復号ユニット80は、量子化された係数と、動きベクトルと、他のシンタックス要素とを生成するために、ビットストリームの特定のシンタックス要素をエントロピー復号する。エントロピー復号ユニット80は、動きベクトルと他のシンタックス要素とを予測処理ユニット81に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
【0314】
[0147]ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モード、および現在のフレームまたはピクチャの前に復号されたブロックからのデータに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成することができる。ビデオフレームがインターコーディングされた(すなわち、B、PまたはGPB)スライスとしてコーディングされるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックの予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ92に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構築することができる。
【0315】
[0148]動き補償ユニット82は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックに対する予測情報を決定し、予測情報を使用して、復号されている現在のビデオブロックの予測ブロックを生成する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスの参照ピクチャリストの1つまたは複数のための構成情報と、スライスの各々のインター符号化されたビデオブロックのための動きベクトルと、スライスの各々のインターコーディングされたビデオブロックのためのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【0316】
[0149]動き補償ユニット82はまた、補間フィルタに基づいて補間を実行することができる。動き補償ユニット82は、参照ブロックのサブ整数ピクセルの補間された値を計算するために、ビデオブロックの符号化の間にビデオエンコーダ20によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定することができ、その補間フィルタを使用して予測ブロックを生成することができる。
【0317】
[0150]逆量子化ユニット86は、ビットストリーム中で与えられ、エントロピー復号ユニット80によって復号された量子化された変換係数を逆量子化し(inverse quantize)、すなわち逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ20によって計算される量子化パラメータの使用を含み得る。逆変換処理ユニット88は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換処理を変換係数に適用する。
【0318】
[0151]動き補償ユニット82が、動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックの予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数のコンポーネントを表す。所望される場合、ループフィルタ(コーディングループの中またはコーディングループの後のいずれかの)も、ピクセル移行を平滑化し、または別様にビデオ品質を向上させるために使用され得る。フィルタユニット91は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタのような、1つまたは複数のループフィルタを表すことが意図されている。
図3では、フィルタユニット91はループ内フィルタであるものとして示されているが、他の構成では、フィルタユニット91はループ後フィルタとして実装され得る。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、後続の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ92に記憶される。参照ピクチャメモリ92はまた、
図1のディスプレイデバイス32のようなディスプレイデバイス上での後の表示のために、復号されたビデオを記憶する。
【0319】
[0152]
図3のビデオデコーダ30は、本開示で説明されるファイルフォーマット技法を使用して記憶され得る、ビデオデータを復号するように構成されるビデオデコーダの例を表す。
【0320】
[0153]
図4は、ネットワーク100の一部を形成するデバイスの例示的なセットを示すブロック図である。この例では、ネットワーク100は、ルーティングデバイス104A、104B(ルーティングデバイス104)とトランスコーディングデバイス106とを含む。ルーティングデバイス104およびトランスコーディングデバイス106は、ネットワーク100の一部を形成し得る少数のデバイスを表すことが意図されている。スイッチ、ハブ、ゲートウェイ、ファイアウォール、ブリッジ、および他のそのようなデバイスなどの他のネットワークデバイスも、ネットワーク100内に含まれ得る。その上、サーバデバイス102とクライアントデバイス108との間のネットワーク経路に沿って、追加のネットワークデバイスが提供され得る。いくつかの例では、サーバデバイス102はソースデバイス12(
図1)に対応し得る一方、クライアントデバイス108は宛先デバイス14(
図1)に対応し得る。
【0321】
[0154]一般に、ルーティングデバイス104は、ネットワーク100を通じてネットワークデータを交換するための1つまたは複数のルーティングプロトコルを実装する。いくつかの例では、ルーティングデバイス104は、プロキシまたはキャッシュ動作を実行するように構成され得る。したがって、いくつかの例では、ルーティングデバイス104はプロキシデバイスと呼ばれ得る。一般に、ルーティングデバイス104は、ネットワーク100を通るルートを発見するためにルーティングプロトコルを実行する。そのようなルーティングプロトコルを実行することによって、ルーティングデバイス104Bは、それ自体からルーティングデバイス104Aを介してサーバデバイス102へ至るネットワークルートを発見することができる。
【0322】
[0155]本開示の技法は、ルーティングデバイス104およびトランスコーディングデバイス106のようなネットワークデバイスによって実施され得るが、クライアントデバイス108によっても実施され得る。このように、ルーティングデバイス104、トランスコーディングデバイス106、およびクライアントデバイス108は、本開示の技法を実行するように構成されたデバイスの例を表す。その上、
図1のデバイス、ならびに
図2に示されるエンコーダ20および
図3に示されるデコーダ30も、本開示の技法の1つまたは複数を実行するように構成され得るデバイスの例である。
【0323】
[0156]
図5は、本開示の1つまたは複数の技法による、ファイル300の例示的な構造を示す概念図である。
図5の例では、ファイル300は、ムービーボックス302と、複数のメディアデータボックス304とを含む。
図5の例では同じファイルの中にあるものとして示されるが、他の例では、ムービーボックス302およびメディアデータボックス304は別のファイルの中にあり得る。上で示されたように、「ボックス」は、固有のタイプ識別子および長さによって定義されるオブジェクト指向の構築ブロックであり得る。たとえば、ボックスは、4文字のコーディングされたボックスタイプと、ボックスのバイトカウントと、ペイロードとを含む、ISOBMFFにおける基本的なシンタックス構造であり得る。
【0324】
[0157]ムービーボックス302は、ファイル300のトラックのためのメタデータを含み得る。ファイル300の各トラックは、メディアデータの連続的なストリームを備え得る。メディアデータボックス304の各々は、1つまたは複数のサンプル305を含み得る。サンプル305の各々は、オーディオまたはビデオアクセスユニットを備え得る。本開示の他の箇所で説明されるように、各アクセスユニットは、マルチビューコーディング(たとえば、MV−HEVCおよび3D−HEVC)およびスケーラブルビデオコーディング(たとえば、SHVC)では複数のコーディングされたピクチャを備え得る。たとえば、アクセスユニットは、各レイヤのための1つまたは複数のコーディングされたピクチャを含み得る。
【0325】
[0158]さらに、
図5の例では、ムービーボックス302はトラックボックス306を含む。トラックボックス306は、ファイル300のトラックのためのメタデータを封入し得る。他の例では、ムービーボックス302は、ファイル300の異なるトラックのために複数のトラックボックスを含み得る。トラックボックス306は、メディアボックス307を含む。メディアボックス307は、トラック内のメディアデータについての情報を宣言するすべてのオブジェクトを含み得る。メディアボックス307は、メディア情報ボックス308を含む。メディア情報ボックス308は、トラックのメディアの特性情報を宣言するすべてのオブジェクトを含み得る。メディア情報ボックス308は、サンプルテーブルボックス309を含む。サンプルテーブルボックス309は、サンプル固有のメタデータを指定することができる。
【0326】
[0159]
図5の例では、サンプルテーブルボックス309は、SampleToGroupボックス310とSampleGroupDescriptionボックス312とを含む。他の例では、サンプルテーブルボックス309は、SampleToGroupボックス310およびSampleGroupDescriptionボックス312に加えて他のボックスを含んでよく、および/または複数のSampleToGroupボックスとSampleGroupDescriptionボックスとを含んでよい。SampleToGroupボックス310は、サンプル(たとえば、サンプル305の特定の1つ)をサンプルのグループにマッピングすることができる。SampleGroupDescriptionボックス312は、サンプルのグループ(すなわち、サンプルグループ)の中のサンプルによって共有される性質を指定し得る。さらに、サンプルテーブルボックス309は、複数のサンプルエントリーボックス311を含み得る。サンプルエントリーボックス311の各々は、サンプルのグループ中のサンプルに対応し得る。いくつかの例では、サンプルエントリーボックス311は、上のセクション9.5.5.1.2において定義されたようなベースサンプルグループ記述クラスを拡張する、Random Accessible Sample Entryクラスのインスタンスである。
【0327】
[0160]本開示の1つまたは複数の技法によれば、SampleGroupDescriptionボックス312は、サンプルグループの各サンプルが少なくとも1つのIRAPピクチャを含むことを指定し得る。このようにして、ファイル生成デバイス34は、ファイル300中のトラックのためのメタデータを含むトラックボックス306を備えるファイルを生成することができる。トラックのためのメディアデータは、サンプル305のシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータ(たとえば、SHVC、MV−HEVC、または3D−HEVCビデオデータ)のビデオアクセスユニットであり得る。さらに、ファイル300を生成することの一部として、ファイル生成デバイス34は、ファイル300において、少なくとも1つのIRAPピクチャを含むサンプル305のすべてを記録する追加のボックス(すなわち、サンプルテーブルボックス309)を生成することができる。言い換えると、追加のボックスは、少なくとも1つのIRAPピクチャを含むサンプル305のすべてを特定する。
図5の例では、追加のボックスは、少なくとも1つのIRAPピクチャを含むサンプル305の各々を記録する(たとえば、特定する)サンプルグループを定義する。言い換えると、追加のボックスは、少なくとも1つのIRAPピクチャを含むサンプル305がサンプルグループに属することを指定する。
【0328】
[0161]さらに、本開示の1つまたは複数の技法によれば、サンプルエントリーボックス311の各々は、対応するサンプル中のすべてのコーディングされたピクチャがIRAPピクチャであるかどうかを示す値(たとえば、all_pics_are_IRAP)を含み得る。いくつかの例では、1に等しい値は、すべでのコーディングされたピクチャサンプルがIRAPピクチャであることはないことを指定する。0に等しい値は、サンプルグループの各サンプル中の各々のコーディングされたピクチャがIRAPピクチャであることが要求されないことを指定する。
【0329】
[0162]いくつかの例では、特定のサンプル中のすべてのコーディングされたピクチャがIRAPピクチャであるということではないとき、ファイル生成デバイス34は、特定のサンプル中のいくつかのIRAPピクチャを示す値(たとえば、num_IRAP_pics)を、特定のサンプルのためのサンプルエントリーボックス311の1つに含め得る。加えて、ファイル生成デバイス34は、特定のサンプル中のIRAPピクチャのレイヤ識別子を示す値を、特定のサンプルのためのサンプルエントリーに含め得る。ファイル生成デバイス34はまた、特定のサンプル中のIRAPピクチャ中のVCL NALユニットのNALユニットタイプを示す値を、特定のサンプルのためのサンプルエントリーに含め得る。
【0330】
[0163]さらに、
図5の例では、サンプルテーブルボックス309はサブサンプル情報ボックス314を含む。
図5の例は1つのサブサンプル情報ボックスのみを示すが、サンプルテーブルボックス309は複数のサブサンプル情報ボックスを含み得る。一般に、サブサンプル情報ボックスは、サブサンプル情報を含むように設計される。サブサンプルは、サンプルのうちのある連続的な範囲のバイトである。ISO/IEC 14496−12は、H.264/AVCまたはHEVCのような、所与のコーディングシステムに対してサブサンプルの固有の定義が与えられるべきであることを示す。
【0331】
[0164]ISO/IEC 14496−15のセクション8.4.8は、HEVCのためのサブサンプルの定義を規定する。具体的には、ISO/IEC 14496−15のセクション8.4.8は、HEVCストリームにおけるサブサンプル情報ボックス(ISO/IEC 14496−12の8.7.7)の使用のために、サブサンプル情報ボックスのフラグフィールドの値に基づいてサブサンプルが定義されることを規定する。本開示の1つまたは複数の技法によれば、サブサンプル情報ボックス314の中のフラグフィールドが5に等しい場合、サブサンプル情報ボックス314に対応するサブサンプルは、1つのコーディングされたピクチャと、関連付けられる非VCL NALユニットとを含む。関連付けられる非VCL NALユニットは、コーディングされたピクチャに適用可能なSEIメッセージを含むNALユニットと、コーディングされたピクチャに適用可能なパラメータセット(たとえば、VPS、SPS、PPSなど)を含むNALユニットとを含み得る。
【0332】
[0165]したがって、一例では、ファイル生成デバイス34は、ファイル中のトラックのためのメタデータを含むトラックボックス(たとえば、トラックボックス306)を備えるファイル(たとえば、ファイル300)を生成することができる。この例では、トラックのためのメディアデータは、サンプルのシーケンスを備え、サンプルの各々は、マルチレイヤビデオデータ(たとえば、SHVC、MV−HEVC、または3D−HEVCビデオデータ)のビデオアクセスユニットである。さらに、この例では、ファイル生成デバイス34がファイルを生成することの一部として、ファイル生成デバイス34は、ファイルにおいて、サブサンプル情報ボックス中で与えられるサブサンプル情報のタイプを指定するフラグを含むサブサンプル情報ボックス(たとえば、サブサンプル情報ボックス314)を生成することができる。そのフラグがある特定の値を有するとき、サブサンプル情報ボックスに対応するサブサンプルは、ちょうど1つのコーディングされたピクチャと、コーディングされたピクチャと関連付けられる0個以上の非VCL NALユニットとを含む。
【0333】
[0166]さらに、本開示の1つまたは複数の技法によれば、サブサンプル情報ボックス314のフラグフィールドが0に等しい場合、サブサンプル情報ボックス314はさらに、DiscardableFlag値と、NoInterLayerPredFlag値と、LayerId値と、TempId値とを含む。サブサンプル情報ボックス314のフラグフィールドが5に等しい場合、サブサンプル情報ボックス314は、DiscardableFlag値と、VclNalUnitType値と、LayerId値と、TempId値と、NoInterLayerPredFlag値と、SubLayerRefNalUnitFlag値と、予備の値とを含み得る。
【0334】
[0167]0に等しいSubLayerRefNalUnitFlagは、サブサンプル中のすべてのNALユニットが、ISO/IEC 23008−2(すなわち、HEVC)において規定されるようなサブレイヤ非参照ピクチャのVCL NALユニットであることを示す。1に等しいSubLayerRefNalUnitFlagは、サブサンプル中のすべてのNALユニットが、ISO/IEC 23008−2(すなわち、HEVC)において規定されるようなサブレイヤ参照ピクチャのVCL NALユニットであることを示す。したがって、ファイル生成デバイス34がサブサンプル情報ボックス314を生成し、フラグが特定の値(たとえば、5)を有するとき、ファイル生成デバイス34は、サブサンプル中のすべてのNALユニットがサブレイヤ非参照ピクチャのVCL NALユニットであるかどうかを示す追加のフラグを、サブサンプル情報ボックス314に含める。
【0335】
[0168]DiscardableFlag値は、サブサンプル中のVCL NALユニットのdiscardable_flag値の値を示す。ISO/IEC 14496−15のセクションA.4において規定されるように、discardable_flag値は、すべての抽出されたNALユニットまたは集約されたNALユニットが1に設定されたdiscardable_flagを有する場合にだけ1に設定されるべきであり、それ以外の場合は0に設定されるべきである。NALユニットは、該NALユニットを含むビットストリームが該NALユニットなしで正確に復号され得る場合、1に設定されたdiscardable_flagを有し得る。したがって、NALユニットは、該NALユニットを含むビットストリームが該NALユニットなしで正確に復号され得る場合、「廃棄可能」であり得る。サブサンプル中のすべてのVCL NALユニットは、同じdiscardable_flagの値を有するべきである。したがって、ファイル生成デバイス34がサブサンプル情報ボックス314を生成し、フラグが特定の値(たとえば、5)を有するとき、ファイル生成デバイス34は、サブサンプルのVCL NALユニットのすべてが廃棄可能かどうかを示す追加のフラグ(たとえば、discardable_flag)を、サブサンプル情報ボックス314に含める。
【0336】
[0169]NoInterLayerPredFlag値は、サブサンプル中のVCL NALユニットのinter_layer_pred_enabled_flagの値を示す。inter_layer_pred_enabled_flagは、すべての抽出されたVCL NALユニットまたは集約されたVCL NALユニットが1に設定されたinter_layer_pred_enabled_flagを有する場合にだけ1に設定されるべきであり、それ以外の場合は0に設定されるべきである。サブサンプル中のすべてのVCL NALユニットは、同じ値のinter_layer_pred_enabled_flagを有するべきである。したがって、ファイル生成デバイス34がサブサンプル情報ボックス314を生成し、フラグが特定の値(たとえば、5)を有するとき、ファイル生成デバイス34は、レイヤ間予測がサブサンプルのすべてのVCL NALユニットに対してイネーブルにされるかどうかを示す追加の値(たとえば、inter_layer_pred_enabled_flag)を、サブサンプル情報ボックス314に含める。
【0337】
[0170]LayerIdは、サブサンプル中のNALユニットのnuh_layer_idの値を示す。サブサンプル中のすべてのNALユニットは、同じnuh_layer_idの値を有するべきである。したがって、ファイル生成デバイス34がサブサンプル情報ボックス314を生成し、フラグが特定の値(たとえば、5)を有するとき、ファイル生成デバイス34は、サブサンプルの各NALユニットのレイヤ識別子を示す追加の値(たとえば、LayerId)を、サブサンプル情報ボックス314に含める。
【0338】
[0171]TempIdは、サブサンプル中のNALユニットのTemporalIdの値を示す。サブサンプル中のすべてのNALユニットは、同じTemporalIdの値を有するべきである。したがって、ファイル生成デバイス34がサブサンプル情報ボックス314を生成し、フラグが特定の値(たとえば、5)を有するとき、ファイル生成デバイス34は、サブサンプルの各NALユニットの時間識別子を示す追加の値(たとえば、TempId)を、サブサンプル情報ボックス314に含める。
【0339】
[0172]VclNalUnitTypeは、サブサンプル中のVCL NALユニットのnal_unit_typeシンタックス要素を示す。nal_unit_typeシンタックス要素は、NALユニットのNALユニットヘッダ中のシンタックス要素である。nal_unit_typeシンタックス要素は、NALユニットに含まれるRBSPのタイプを指定する。サブサンプル中のすべてのnal_unit_type VCL NALユニットは、同じnal_unit_typeの値を有するべきである。したがって、ファイル生成デバイス34がサブサンプル情報ボックス314を生成し、フラグが特定の値(たとえば、5)を有するとき、ファイル生成デバイス34は、サブサンプルのVCL NALユニットのNALユニットタイプを示す追加の値(たとえば、VclNalUnitType)を、サブサンプル情報ボックス314に含める。サブサンプルのすべてのVCL NALユニットが、同じNALユニットタイプを有する。
【0340】
[0173]
図6は、本開示の1つまたは複数の技法による、ファイル300の例示的な構造を示す概念図である。ISO/IEC 14496−15のセクション8.4.9において規定されるように、HEVCは、参照のためだけに使用され出力のために使用されないファイルフォーマットサンプルを可能にする。たとえば、HEVCは、ビデオ中の表示されない参照ピクチャを可能にする。
【0341】
[0174]さらに、ISO/IEC 14496−15のセクション8.4.9は、任意のそのような非出力サンプルがトラック中に存在するときに、ファイルが次のように制約されるべきであることを規定する。
1.非出力サンプルは、出力されるサンプルの時間の範囲外の合成時間を与えられるべきである。
2.編集リストは、非出力サンプルの合成時間を除外するために使用されるべきである。
3.トラックがCompositionOffsetBox(「ctts」)を含むとき、
a. CompositionOffsetBoxのバージョン1が使用されるべきであり、
b. sample_offsetの値が非出力サンプルの各々に対して−2
31に等しく設定されるべきであり、
c. CompositionToDecodeBox(「cslg」)がトラックのSampleTableBox(「stbl」)に含まれるべきであり、
d. CompositionToDecodeBoxがトラックに対して存在するとき、ボックス中のleastDecodeToDisplayDeltaフィールドの値が、非出力サンプルに対するsample_offset値を除くCompositionOffsetBox中の最小の合成オフセットに等しくなければならない。
注意:したがって、leastDecodeToDisplayDeltaは、−2
31よりも大きい。
【0342】
[0175]ISO/IEC 14496−12において規定されるように、CompositionOffsetBoxは、復号時間と合成時間との間のオフセットを与える。CompositionOffsetBoxは、sample_offset値のセットを含む。sample_offset値の各々は、合成時間と復号時間との間のオフセットを与える非負の整数である。合成時間は、サンプルが出力されるべき時間を指す。復号時間は、サンプルが復号されるべき時間を指す。
【0343】
[0176]上で示されたように、コーディングされたスライスNALユニットは、スライスセグメントヘッダを含み得る。スライスセグメントヘッダは、コーディングされたスライスセグメントの一部であってよく、スライスセグメント中の最初のまたはすべてのCTUに関するデータ要素を含んでよい。HEVCでは、スライスセグメントヘッダは、pic_output_flagシンタックス要素を含む。一般に、pic_output_flagシンタックス要素は、ピクチャのスライスの最初のスライスセグメントヘッダに含まれる。したがって、本開示は、ピクチャのスライスの最初のスライスセグメントヘッダのpic_output_flagを、ピクチャのpic_output_flagと呼ぶことがある。
【0344】
[0177]HEVC WDのセクション7.4.7.1において規定されるように、pic_output_flagシンタックス要素は、HEVC WDのAnnex Cにおいて規定されるような復号されたピクチャの出力および除去のプロセスに影響を与える。一般に、スライスセグメントのスライスセグメントヘッダのpic_output_flagシンタックス要素が1である場合、スライスセグメントヘッダに対応するスライスを含むピクチャが出力される。そうではなく、スライスセグメントのスライスセグメントヘッダのpic_output_flagシンタックス要素が0である場合、スライスセグメントヘッダに対応するスライスを含むピクチャが参照ピクチャとして使用するために復号され得るが、出力はされない。
【0345】
[0178]本開示の1つまたは複数の技法によれば、ISO/IEC 14496−15のセクション8.4.9におけるHEVCへの言及は、SHVC、MV−HEVC、または3D−HEVCへの対応する言及と置き換えられ得る。さらに、本開示の1つまたは複数の技法によれば、アクセスユニットが1に等しいpic_output_flagを有するいくつかのコーディングされたピクチャと、0に等しいpic_output_flagを有するいくつかの他のコーディングされたピクチャとを含むとき、少なくとも2つのトラックがストリームを記憶するために使用されなければならない。トラックの各々のそれぞれ1つに対して、それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のpic_output_flagを有する。したがって、トラックのうちの最初のものの中のすべてのコーディングされたピクチャは0に等しいpic_output_flagを有し、トラックのうちの2番目のものの中のすべてのコーディングされたピクチャは1に等しいpic_output_flagを有する。
【0346】
[0179]したがって、
図6の例では、ファイル生成デバイス34はファイル400を生成することができる。
図5の例におけるファイル300と同様に、ファイル400は、ムービーボックス402と、1つまたは複数のメディアデータボックス404とを含む。メディアデータボックス404の各々は、ファイル400の異なるトラックに対応し得る。ムービーボックス402は、ファイル400のトラックのためのメタデータを含み得る。ファイル400の各トラックは、メディアデータの連続的なストリームを備え得る。メディアデータボックス404の各々は、1つまたは複数のサンプル405を含み得る。サンプル405の各々は、オーディオまたはビデオアクセスユニットを備え得る。
【0347】
[0180]上で示されたように、いくつかの例では、アクセスユニットが1に等しいpic_output_flagを有するいくつかのコーディングされたピクチャと、0に等しいpic_output_flagを有するいくつかの他のコーディングされたピクチャとを含むとき、少なくとも2つのトラックがストリームを記憶するために使用されなければならない。したがって、
図6の例では、ムービーボックス402は、トラックボックス406とトラックボックス408とを含む。トラックボックス406および408の各々は、ファイル400の異なるトラックのためのメタデータを封入する。たとえば、トラックボックス406は、0に等しいpic_output_flagを有するコーディングされたピクチャを有し1に等しいpic_output_flagを有するピクチャを有しない、トラックのためのメタデータを封入し得る。トラックボックス408は、1に等しいpic_output_flagを有するコーディングされたピクチャを有し0に等しいpic_output_flagを有するピクチャを有しない、トラックのためのメタデータを封入し得る。
【0348】
[0181]したがって、一例では、ファイル生成デバイス34は、メディアコンテンツを封入する(たとえば、備える)メディアデータボックス(たとえば、メディアデータボックス404)を備えるファイル(たとえば、ファイル400)を生成することができる。メディアコンテンツは、サンプルのシーケンスを備える(たとえば、サンプル405)。サンプルの各々は、マルチレイヤビデオデータのアクセスユニットであり得る。この例では、ファイル生成デバイス34がファイルを生成するとき、ビットストリームの少なくとも1つのアクセスユニットが1に等しいピクチャ出力フラグを有するコーディングされたピクチャと0に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むという決定に応答して、ファイル生成デバイス34は、ファイルにビットストリームを記憶するために少なくとも2つのトラックを使用することができる。少なくとも2つのトラックからの各々のそれぞれのトラックに対して、それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のピクチャ出力フラグを有する。1に等しいピクチャ出力フラグを有するピクチャは、出力されることが許可され、0に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることが許可されるが、出力されることは許可されない。
【0349】
[0182]
図7は、本開示の1つまたは複数の技法による、ファイル生成デバイス34の例示的な動作を示すフローチャートである。本開示の他のフローチャートに示される動作とともに、
図7の動作は例である。本開示の技法による他の例示的な動作は、より多数の、より少数の、または異なるアクションを含み得る。
【0350】
[0183]
図7の例では、ファイル生成デバイス34はファイルを生成する(500)。ファイルを生成することの一部として、ファイル生成デバイス34は、ファイル中のトラックのためのメタデータを含むトラックボックスを生成する(502)。このようにして、ファイル生成デバイス34は、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成する。トラックのためのメディアデータは、サンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットである。いくつかの例では、ファイル生成デバイス34は、マルチレイヤビデオデータを符号化する。
【0351】
[0184]さらに、ファイルを生成することの一部として、ファイル生成デバイス34は、少なくとも1つのIRAPピクチャを含むサンプルのすべてを特定する(504)。加えて、ファイル生成デバイス34は、ファイルにおいて、少なくとも1つのIRAPピクチャを含むサンプルのすべてを記録する追加のボックスを生成することができる(506)。いくつかの例では、追加のボックスは、ISOBMFFまたはその既存の拡張において定義されない新たなボックスである。いくつかの例では、追加のボックスは、少なくとも1つのIRAPピクチャを含むサンプルのすべてを記録するサンプルグループを定義する。たとえば、追加のボックスは、SampleToGroupボックスとSampleGroupDescriptionボックスとを含むSample Tableボックスであってよく、またはそれを備えてよい。SampleToGroupボックスは、少なくとも1つのIRAPピクチャを含むサンプルを特定する。SampleGroupDescriptionボックスは、サンプルが少なくとも1つのIRAPピクチャを含むサンプルのグループであることを示す。
【0352】
[0185]さらに、
図7の例では、ファイル生成デバイス34は、少なくとも1つのIRAPピクチャを含むサンプルの特定の1つのためのサンプルエントリーを生成することができる(508)。いくつかの例では、ファイル生成デバイス34は、少なくとも1つのIRAPピクチャを含む、サンプルの各々のそれぞれ1つのためのサンプルエントリーを生成することができる。サンプルエントリーは、上でセクション9.5.5.1.2において定義されたようなRandomAccessibleSampleEntryであり得る。
【0353】
[0186]
図7の例において示されたように、特定のサンプルのためのサンプルエントリーを生成することの一部として、ファイル生成デバイス34は、特定のサンプル中のすべてのコーディングされたピクチャがIRAPピクチャであるかどうかを示す値を、特定のサンプルのためのサンプルエントリーに含めることができる(510)。このようにして、ファイル生成デバイス34は、ファイル中に、サンプルのシーケンス中の1つの特定のサンプル中のすべてのコーディングされたピクチャがIRAPピクチャであるかどうかを示す値を含むサンプルエントリーを生成することができる。さらに、ファイル生成デバイス34は、特定のサンプルのIRAPピクチャ中のVCL NALユニットのNALユニットタイプを示す値を、特定のサンプルのためのサンプルエントリーに含め得る(512)。
【0354】
[0187]加えて、ファイル生成デバイス34は、特定のサンプル中のすべてのコーディングされたピクチャがIRAPピクチャであるかどうかを決定することができる(514)。特定のサンプル中のすべてのコーディングされたピクチャがIRAPピクチャであるということではないとき(514の「NO」)、ファイル生成デバイス34は、特定のサンプル中のいくつかのIRAPピクチャを示す値を、特定のサンプルのためのサンプルエントリーに含め得る(516)。加えて、ファイル生成デバイス34は、特定のサンプル中のIRAPピクチャのレイヤ識別子(たとえば、nuh_layer_id)を示す値を、特定のサンプルのためのサンプルエントリーに含め得る。
【0355】
[0188]上で示されたように、
図7は例として提供される。他の例は、
図7の各アクションを含まない。たとえば、いくつかの例は、ステップ502と、504と、508とを含まない。その上、いくつかの例は、ステップ510〜518のうちの様々なステップを含まない。その上、いくつかの例は、1つまたは複数の追加のアクションを含む。たとえば、いくつかの例は、ファイルを生成することの一部として、マルチレイヤビデオデータのトラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを生成する追加のアクションを含む。トラックの各シンクサンプルは、トラックのランダムアクセスサンプルである。この例では、アクセスユニット中の各々のコーディングされたピクチャがIRAPピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルである。さらに、この例では、アクセスユニット中の各々のコーディングされたピクチャがRASLピクチャをもたないIRAPピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである。
【0356】
[0189]
図8は、本開示の1つまたは複数の技法による、コンピューティングデバイスがランダムアクセスおよび/またはレベル切替えを実行する例示的な動作を示すフローチャートである。
図8の例では、コンピューティングデバイスはファイルを受信する(550)。
図8の例では、コンピューティングデバイスは、中間ネットワークデバイス(たとえば、MANE、ストリーミングサーバ)、復号デバイス(たとえば、宛先デバイス14)、または別のタイプのビデオデバイスであり得る。いくつかの例では、コンピューティングデバイスは、コンテンツ配信ネットワークの一部であり得る。
【0357】
[0190]
図8の例では、コンピューティングデバイスは、ファイルから、ファイル中のトラックのためのメタデータを含むトラックボックスを取得することができる(552)。トラックのためのメディアデータは、サンプルのシーケンスを備える。
図8の例では、サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットである。
【0358】
[0191]さらに、
図8の例では、コンピューティングデバイスは、ファイルから追加のボックスを取得することができる(554)。追加のボックスは、少なくとも1つのIRAPピクチャを含むサンプルのすべてを記録する。したがって、コンピューティングデバイスは、追加のボックス中の情報に基づいて、少なくとも1つのIRAPピクチャを含むすべてのサンプルを決定することができる(556)。
【0359】
[0192]さらに、いくつかの例では、コンピューティングデバイスは、ファイルから、サンプルのシーケンス中の1つの特定のサンプル中のすべてのコーディングされたピクチャがIRAPピクチャであるかどうかを示す値を含むサンプルエントリーを取得することができる。特定のサンプル中のすべてのコーディングされたピクチャがIRAPピクチャであるということではないとき、コンピューティングデバイスは、特定のサンプル中のいくつかのIRAPピクチャを示す値を、サンプルエントリーから取得することができる。加えて、コンピューティングデバイスは、特定のサンプル中のIRAPピクチャのレイヤ識別子を示す値を、サンプルエントリーから取得することができる。さらに、いくつかの例では、コンピューティングデバイスは、特定のサンプルのIRAPピクチャ中のVCL NALユニットのNALユニットタイプを示す値を、サンプルエントリーから取得することができる。加えて、いくつかの例では、コンピューティングデバイスは、ファイルから、ビデオデータのトラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを取得することができる。そのような例では、トラックの各シンクサンプルはトラックのランダムアクセスサンプルであり、アクセスユニット中の各々のコーディングされたピクチャがIRAPピクチャである場合、スケーラブルビデオコーディングサンプルがシンクサンプルであり、アクセスユニット中の各々のコーディングされたピクチャがRASLピクチャをもたないIRAPピクチャである場合、マルチビュービデオコーディングサンプルがシンクサンプルである。
【0360】
[0193]加えて、
図8の例では、コンピューティングデバイスは、少なくとも1つのIRAPピクチャを含むサンプルのNALユニットの転送または復号を、復号順序においてそのサンプルよりも前にあるファイルのNALユニットを転送または復号することなく、開始することができる(558)。このようにして、コンピューティングデバイスは、ランダムアクセスまたはレイヤ切替えを実行することができる。たとえば、コンピューティングデバイスは、少なくとも1つのIRAPピクチャを含む1つまたは複数のサンプルの1つにおいて、マルチレイヤビデオデータの復号を開始することができる。
【0361】
[0194]
図9は、本開示の1つまたは複数の技法による、ファイル生成デバイス34の例示的な動作を示すフローチャートである。
図9の例では、ファイル生成デバイス34は、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成することができる(600)。トラックのためのメディアデータは、サンプルのシーケンスを備える。
図9の例では、サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットである。いくつかの例では、ファイル生成デバイス34は、マルチレイヤビデオデータを符号化する。
【0362】
[0195]ファイルを生成することの一部として、ファイル生成デバイス34は、サブサンプルが、ちょうど1つのコーディングされたピクチャと、コーディングされたピクチャと関連付けられる0個以上の非VCL NALユニットとを含むかどうかを決定することができる(602)。サブサンプルが、ちょうど1つのコーディングされたピクチャと、コーディングされたピクチャと関連付けられる0個以上の非VCL NALユニットとを含むと決定したことに応答して(602の「Yes」)、ファイル生成デバイス34は、ファイル中に、サブサンプルがちょうど1つのコーディングされたピクチャとコーディングされたピクチャと関連付けられる0個以上の非VCL NALユニットとを含むことを示す値(たとえば、5)を有するフラグを含む、サブサンプル情報ボックスを生成することができる(604)。それ以外の場合(602の「No」)、ファイル生成デバイス34は、ファイル中に、別の値(たとえば、0、1、2、3、4)を有するフラグを含むサブサンプル情報ボックスを生成することができる(606)。
【0363】
[0196]このようにして、ファイル生成デバイス34は、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成することができる。トラックのためのメディアデータは、サンプルのシーケンスを備え、サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットである。ファイルを生成することの一部として、ファイル生成デバイス34は、ファイル中に、サブサンプル情報ボックス中で与えられるサブサンプル情報のタイプを指定するフラグを含むサブサンプル情報ボックスを生成する。そのフラグがある特定の値を有するとき、サブサンプル情報ボックスに対応するサブサンプルは、ちょうど1つのコーディングされたピクチャと、コーディングされたピクチャと関連付けられる0個以上の非VCL NALユニットとを含む。
【0364】
[0197]
図10は、本開示の1つまたは複数の技法による、コンピューティングデバイスの例示的な動作を示すフローチャートである。
図10の例では、コンピューティングデバイスはファイルを受信する(650)。
図10の例では、コンピューティングデバイスは、MANEまたはストリーミングサーバのような中間ネットワークデバイスであり得る。いくつかの例では、コンピューティングデバイスは、コンテンツ配信ネットワークの一部であり得る。さらに、
図10の例では、コンピューティングデバイスは、ファイルからトラックボックスを取得することができる(651)。トラックボックスは、ファイル中のトラックのためのメタデータを含む。トラックのためのメディアデータは、サンプルのシーケンスを備える。
図10の例では、サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットである。
【0365】
[0198]さらに、
図10の例では、コンピューティングデバイスは、ファイルからサブサンプル情報ボックスを取得することができる(652)。コンピューティングデバイスは、サブサンプル情報中のこの情報を使用して、サブビットストリームを抽出する(654)。サブビットストリームは、ファイルに記憶されているビットストリームのオペレーションポイントの各NALユニットを備え得る。言い換えると、サブビットストリームのNALユニットは、ファイルに記憶されているNALユニットのサブセットであり得る。コンピューティングデバイスは、ファイルからサブサンプル情報ボックスを取得することができ、サンプルのシーケンスに含まれるNALユニットを解析または解釈することなくサブビットストリームを抽出することができる。サブビットストリームを抽出するときにNALユニットを解析または解釈しないことで、コンピューティングデバイスの複雑さを下げることができ、および/または、サブビットストリームを抽出するプロセスを加速することができる。
【0366】
[0199]さらに、いくつかの例では、コンピューティングデバイスは、フラグが特定の値を有するとき、サブサンプル情報ボックスから、
・ サブサンプルのVCL NALユニットのすべてが廃棄可能であるかどうかを示す追加のフラグ、
・ サブサンプルのVCL NALユニットのNALユニットタイプを示す追加の値、ここでサブサンプルのすべてのVCL NALユニットは同じNALユニットタイプを有する、
・ サブサンプルの各NALユニットのレイヤ識別子を示す追加の値、
・ サブサンプルの各NALユニットの時間識別子を示す追加の値、
・ サブサンプルのすべてのVCL NALユニットに対してレイヤ間予測がイネーブルにされるかどうかを示す追加のフラグ、または、
・ サブサンプル中のすべてのNALユニットがサブレイヤ非参照ピクチャのVCL NALユニットであるかどうかを示す追加のフラグ
の1つまたは複数を取得することができる。
【0367】
[0200]
図10の例では、サブビットストリームを抽出することの一部として、コンピューティングデバイスは、サブサンプル情報ボックスが、ちょうど1つのコーディングされたピクチャと、コーディングされたピクチャと関連付けられる0個以上の非VCL NALユニットとに対応することを示す特定の値(たとえば、5)を、サブサンプル情報ボックスの「フラグ」の値が有するかどうかを決定することができる(656)。サブサンプル情報ボックスの「フラグ」の値が特定の値を有するとき(656の「Yes」)、コンピューティングデバイスは、サブサンプル情報ボックスにおいて指定される情報に基づいて、コーディングされたピクチャがオペレーションポイントを復号するために必要とされるかどうかを決定することができる(658)。たとえば、コンピューティングデバイスは、廃棄可能フラグ、VCL NALユニットタイプインジケータ、レイヤ識別子、時間識別子、レイヤ間予測なしフラグ、および/またはサブレイヤ参照NALユニットフラグに基づいて、コーディングされたピクチャがオペレーションポイントを復号するために必要とされるかどうかを決定することができる。コーディングされたピクチャがオペレーションポイントを復号するために必要とされるとき(658の「Yes」)、コンピューティングデバイスは、サブビットストリーム中にサブサンプルのNALユニットを含み得る(660)。それ以外の場合、
図10の例では、コーディングされたピクチャがオペレーションポイントを復号するために必要とされないとき(658の「NO」)、コンピューティングデバイスは、サブビットストリーム中にサブサンプルのNALユニットを含めない(662)。
【0368】
[0201]さらに、
図10の例では、コンピューティングデバイスは、サブビットストリームを出力することができる(664)。たとえば、コンピューティングデバイスは、サブビットストリームをコンピュータ可読記憶媒体に記憶し、または、サブビットストリームを別のコンピューティングデバイスに送信することができる。
【0369】
[0202]上で示されたように、
図10は例である。他の例は、
図10の特定のアクションを含むことがあり、または省略することがある。たとえば、いくつかの例は、アクション650、651、654、および/または664を省略する。さらに、いくつかの例は、アクション656〜662のアクション1つまたは複数を省略する。
【0370】
[0203]
図11は、本開示の1つまたは複数の技法による、ファイル生成デバイス34の例示的な動作を示すフローチャートである。
図11の例では、ファイル生成デバイス34は、メディアコンテンツを含んでいるメディアデータボックスを備えるファイルを生成することができる(700)。メディアコンテンツは、サンプルのシーケンスを備え、サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットである。様々な例において、マルチレイヤビデオデータは、SHVCデータ、MV−HEVCデータ、または3D−HEVCデータであり得る。いくつかの例では、ファイル生成デバイス34は、マルチレイヤビデオデータを符号化する。
【0371】
[0204]
図11の例では、ファイルを生成することの一部として、ファイル生成デバイス34は、マルチレイヤビデオデータのビットストリームの少なくとも1つのアクセスユニットが、第1の値(たとえば、1)に等しいピクチャ出力フラグを有するコーディングされたピクチャと、第2の値(たとえば、0)に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むかどうかを決定することができる(702)。第1の値(たとえば、1)に等しいピクチャ出力フラグを有するピクチャは、出力されることが許可され、第2の値(たとえば、0)に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることが許可されるが、出力されることは許可されない。他の例では、他のデバイスは、マルチレイヤビデオデータのビットストリームの少なくとも1つのアクセスユニットが、第1の値に等しいピクチャ出力フラグを有するコーディングされたピクチャと、第2の値に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むかどうかの決定を行うことができる。
【0372】
[0205]マルチレイヤビデオデータのビットストリームの少なくとも1つのアクセスユニットが、第1の値に等しいピクチャ出力フラグを有するコーディングされたピクチャと、第2の値に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むという決定に応答して(702の「Yes」)、ファイル生成デバイス34は、ファイルにビットストリームを記憶するために少なくとも第1のトラックと第2のトラックとを使用する(704)。第1のトラックおよび第2のトラックからの各々のそれぞれのトラックに対して、それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のピクチャ出力フラグを有する。
【0373】
[0206]さらに、
図11の例では、ビットストリームのアクセスユニットが、第1の値(たとえば、1)に等しいピクチャ出力フラグを有するコーディングされたピクチャと、第2の値(たとえば、0)に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含まないと決定したことに応答して(702の「NO」)、ファイル生成デバイス34は、ファイルにビットストリームを記憶するために単一のトラックを使用することができる(706)。他の例では、ファイル生成デバイス34は、ビットストリームのアクセスユニットが、第1の値(たとえば、1)に等しいピクチャ出力フラグを有するコーディングされたピクチャと、第2の値(たとえば、0)に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含まないときでも、複数のトラックを伴うファイルを生成することができる。
【0374】
[0207]上で示されたように、
図11は例である。他の例は、より少数のアクションを含み得る。たとえば、いくつかの例は、アクション702と706とを省略する。
【0375】
[0208]
図12は、本開示の1つまたは複数の技法による、宛先デバイス14の例示的な動作を示すフローチャートである。
図12の例では、宛先デバイス14はファイルを受信する(750)。ファイルは、メディアコンテンツを含んでいるメディアデータボックスを備えてよく、メディアコンテンツはサンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータのアクセスユニットであり得る。様々な例において、マルチレイヤビデオデータは、SHVCデータ、MV−HEVCデータ、または3D−HEVCデータであり得る。さらに、
図12の例では、宛先デバイス14は、ファイルから、第1のトラックボックスと第2のトラックボックスとを取得することができる(751)。第1のトラックボックスは、ファイル中の第1のトラックのためのメタデータを含む。第2のトラックボックスは、ファイル中の第2のトラックのためのメタデータを含む。第1のトラックおよび第2のトラックからの各々のそれぞれのトラックに対して、それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のピクチャ出力フラグを有する。第1の値(たとえば、1)に等しいピクチャ出力フラグを有するピクチャは、出力されることが許可され、第2の値(たとえば、0)に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることが許可されるが、出力されることは許可されない。
【0376】
[0209]宛先デバイス14のビデオデコーダ30は、第1の値(たとえば、1)に等しいピクチャ出力フラグを有するピクチャのためのトラック中のピクチャを復号することができ、第2の値(たとえば、0)に等しいピクチャ出力フラグを有するピクチャのためのトラック中のピクチャを復号することができる(752)。いくつかの例では、ビデオデコーダ30は、1に等しいピクチャ出力フラグを有するピクチャを使用して、0に等しいピクチャ出力フラグを有するピクチャを復号してよく、またはこの逆であってよい。宛先デバイス14は、第1の値に等しいピクチャ出力フラグを有するピクチャを出力することができる(754)。宛先デバイス14は、第2の値に等しいピクチャ出力フラグを有するピクチャを出力しない(756)。このようにして、第1のトラックおよび第2のトラックからの各々のそれぞれのトラックに対して、宛先デバイス14は、それぞれのトラックの各サンプル中のコーディングされたピクチャを復号し、第1の値に等しいピクチャ出力フラグを有する復号されたピクチャを出力することができる。
【0377】
[0210]上で示されたように、
図12は例として提供される。他の例は、アクション752〜756のような、
図12の特定のアクションを省略することができる。
【0378】
[0211]1つまたは複数の例において、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は1つもしくは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号もしくは搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実施のための命令、コードおよび/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0379】
[0212]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他の遠隔ソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに、非一時的な有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびブルーレイディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
【0380】
[0213]命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路またはディスクリート論理回路のような、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造のいずれかまたは本明細書で説明された技法の実装に適切な任意の他の構造を指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用のハードウェアモジュールおよび/またはソフトウェアモジュール内で提供され得る。また、本技法は、1つまたは複数の回路または論理素子において完全に実装され得る。
【0381】
[0214]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。様々なコンポーネント、モジュール、またはユニットは、開示されている技術を実行するように構成されたデバイスの機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。そうではなく、上で説明されたように、様々なユニットは、コーデックハードウェアユニット中で組み合わせられるか、または上で説明された1つまたは複数のプロセッサを含む、適切なソフトウェアおよび/またはファームウェアとともに相互動作可能なハードウェアユニットの集合体によって提供され得る。
【0382】
[0215]様々な例が、説明された。これらおよび他の例は、以下の特許請求の範囲に含まれる。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
マルチレイヤビデオデータを処理する方法であって、
メディアコンテンツを含むメディアデータボックスを備えるファイルを生成することを備え、前記メディアコンテンツはサンプルのシーケンスを備え、前記サンプルの各々は前記マルチレイヤビデオデータのアクセスユニットであり、前記ファイルを生成することは、
前記マルチレイヤビデオデータのビットストリームの少なくとも1つのアクセスユニットが、第1の値に等しいピクチャ出力フラグを有するコーディングされたピクチャと第2の値に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むという決定に応答して、前記ファイルに前記ビットストリームを記憶するために、少なくとも第1のトラックと第2のトラックとを使用することを備え、
前記第1のトラックおよび第2のトラックからの各それぞれのトラックに対して、前記それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値の前記ピクチャ出力フラグを有し、
前記第1の値に等しいピクチャ出力フラグを有するピクチャは、出力されることを許可され、前記第2の値に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることを許可されるが出力されることを許可されない、方法。
[C2]
前記ファイルを生成することは、
前記ビットストリームのアクセスユニットが、前記第1の値に等しいピクチャ出力フラグを有するコーディングされたピクチャと前記第2の値に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含まないという決定に応答して、前記ファイルに前記ビットストリームを記憶するために、単一のトラックを使用することを備える、C1に記載の方法。
[C3]
前記マルチレイヤビデオデータはスケーラブル高効率ビデオコーディング(SHVC)データである、C1に記載の方法。
[C4]
前記マルチレイヤビデオデータはマルチビュー高効率ビデオコーディング(MV−HEVC)データである、C1に記載の方法。
[C5]
前記マルチレイヤビデオデータは3次元高効率ビデオコーディング(3D−HEVC)データである、C1に記載の方法。
[C6]
前記第1の値は1に等しく、前記第2の値は0に等しい、C1に記載の方法。
[C7]
前記マルチレイヤビデオデータを符号化することをさらに備える、C1に記載の方法。
[C8]
マルチレイヤビデオデータを処理する方法であって、
ファイルから、第1のトラックボックスと第2のトラックボックスとを取得することを備え、前記第1のトラックボックスは前記ファイル中の第1のトラックのためのメタデータを含み、前記第2のトラックボックスは前記ファイル中の第2のトラックのためのメタデータを含み、
前記第1のトラックおよび前記第2のトラックの各々は、サンプルのシーケンスを備え、前記サンプルの各々は、前記マルチレイヤビデオデータのビデオアクセスユニットであり、
前記第1のトラックおよび前記第2のトラックからの各それぞれのトラックに対して、前記それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のピクチャ出力フラグを有し、
第1の値に等しいピクチャ出力フラグを有するピクチャは、出力されることを許可され、第2の値に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることを許可されるが出力されることを許可されない、方法。
[C9]
前記マルチレイヤビデオデータはスケーラブル高効率ビデオコーディング(SHVC)データである、C8に記載の方法。
[C10]
前記マルチレイヤビデオデータはマルチビュー高効率ビデオコーディング(MV−HEVC)データである、C8に記載の方法。
[C11]
前記マルチレイヤビデオデータは3次元高効率ビデオコーディング(3D−HEVC)データである、C8に記載の方法。
[C12]
前記第1の値は1に等しく、前記第2の値は0に等しい、C8に記載の方法。
[C13]
前記第1のトラックおよび第2のトラックからの各それぞれのトラックに対して、
前記それぞれのトラックの各サンプル中の前記コーディングされたピクチャを復号することと、
前記第1の値に等しいピクチャ出力フラグを有する前記復号されたピクチャを出力することと、
をさらに備える、C8に記載の方法。
[C14]
マルチレイヤビデオデータを記憶するように構成されるデータ記憶媒体と、
1つまたは複数のプロセッサと、を備えるビデオデバイスであって、前記1つまたは複数のプロセッサは、
メディアコンテンツを含むメディアデータボックスを備えるファイルを生成するように構成され、前記メディアコンテンツはサンプルのシーケンスを備え、前記サンプルの各々は前記マルチレイヤビデオデータのアクセスユニットであり、前記ファイルを生成するために、前記1つまたは複数のプロセッサは、
前記マルチレイヤビデオデータのビットストリームの少なくとも1つのアクセスユニットが、第1の値に等しいピクチャ出力フラグを有するコーディングされたピクチャと第2の値に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むという決定に応答して、前記ファイルに前記ビットストリームを記憶するために、少なくとも第1のトラックと第2のトラックとを使用するように構成され、
前記第1のトラックおよび第2のトラックからの各それぞれのトラックに対して、前記それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値の前記ピクチャ出力フラグを有し、
前記第1の値に等しいピクチャ出力フラグを有するピクチャは、出力されることを許可され、前記第2の値に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることを許可されるが出力されることを許可されない、ビデオデバイス。
[C15]
前記ファイルを生成するために、前記1つまたは複数のプロセッサは、
前記ビットストリームのアクセスユニットが、前記第1の値に等しいピクチャ出力フラグを有するコーディングされたピクチャと前記第2の値に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含まないという決定に応答して、前記ファイルに前記ビットストリームを記憶するために単一のトラックを使用するように構成される、C14に記載のビデオデバイス。
[C16]
前記マルチレイヤビデオデータは、スケーラブル高効率ビデオコーディング(SHVC)データ、マルチビュー高効率ビデオコーディング(MV−HEVC)データ、または3次元高効率ビデオコーディング(3D−HEVC)データのうちの1つである、C14に記載のビデオデバイス。
[C17]
前記第1の値は1に等しく、前記第2の値は0に等しい、C14に記載のビデオデバイス。
[C18]
前記1つまたは複数のプロセッサは、前記マルチレイヤビデオデータを符号化するように構成される、C14に記載のビデオデバイス。
[C19]
マルチレイヤビデオデータを記憶するように構成されるデータ記憶媒体と、
1つまたは複数のプロセッサと、を備えるビデオデバイスであって、前記1つまたは複数のプロセッサは、
ファイルから、第1のトラックボックスと第2のトラックボックスとを取得するように構成され、前記第1のトラックボックスは前記ファイル中の第1のトラックのためのメタデータを含み、前記第2のトラックボックスは前記ファイル中の第2のトラックのためのメタデータを含み、
前記第1のトラックおよび前記第2のトラックの各々は、サンプルのシーケンスを備え、前記サンプルの各々は、前記マルチレイヤビデオデータのビデオアクセスユニットであり、
前記第1のトラックおよび前記第2のトラックからの各それぞれのトラックに対して、前記それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のピクチャ出力フラグを有し、
第1の値に等しいピクチャ出力フラグを有するピクチャは、出力されることを許可され、第2の値に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることを許可されるが出力されることを許可されない、ビデオデバイス。
[C20]
前記マルチレイヤビデオデータは、スケーラブル高効率ビデオコーディング(SHVC)データ、マルチビュー高効率ビデオコーディング(MV−HEVC)データ、または3次元高効率ビデオコーディング(3D−HEVC)データの1つである、C19に記載のビデオデバイス。
[C21]
前記第1の値は1に等しく、前記第2の値は0に等しい、C19に記載のビデオデバイス。
[C22]
前記1つまたは複数のプロセッサは、
前記第1のトラックおよび第2のトラックからの各それぞれのトラックに対して、
前記それぞれのトラックの各サンプル中の前記コーディングされたピクチャを復号し、
前記第1の値に等しいピクチャ出力フラグを有する前記復号されたピクチャを出力する
ように構成される、C19に記載のビデオデバイス。
[C23]
メディアコンテンツを含むメディアデータボックスを備えるファイルを生成するための手段を備え、前記メディアコンテンツはサンプルのシーケンスを備え、前記サンプルの各々はマルチレイヤビデオデータのアクセスユニットであり、前記ファイルを生成することは、
前記マルチレイヤビデオデータのビットストリームの少なくとも1つのアクセスユニットが、第1の値に等しいピクチャ出力フラグを有するコーディングされたピクチャと第2の値に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むという決定に応答して、前記ファイルに前記ビットストリームを記憶するために、少なくとも第1のトラックと第2のトラックとを使用することを備え、
前記第1のトラックおよび第2のトラックからの各それぞれのトラックに対して、前記それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値の前記ピクチャ出力フラグを有し、
前記第1の値に等しいピクチャ出力フラグを有するピクチャは、出力されることを許可され、前記第2の値に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることを許可されるが出力されることを許可されない、ビデオデバイス。
[C24]
前記ビットストリームのアクセスユニットが、前記第1の値に等しいピクチャ出力フラグを有するコーディングされたピクチャと前記第2の値に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含まないという決定に応答して、前記ファイルに前記ビットストリームを記憶するために、単一のトラックを使用するための手段を備える、C23に記載のビデオデバイス。
[C25]
前記マルチレイヤビデオデータは、スケーラブル高効率ビデオコーディング(SHVC)データ、マルチビュー高効率ビデオコーディング(MV−HEVC)データ、または3次元高効率ビデオコーディング(3D−HEVC)データのうちの1つである、C23に記載のビデオデバイス。
[C26]
前記第1の値は1に等しく、前記第2の値は0に等しい、C23に記載のビデオデバイス。
[C27]
ファイルから、第1のトラックボックスと第2のトラックボックスとを取得するための手段を備え、前記第1のトラックボックスは前記ファイル中の第1のトラックのためのメタデータを含み、前記第2のトラックボックスは前記ファイル中の第2のトラックのためのメタデータを含み、
前記第1のトラックおよび前記第2のトラックの各々は、サンプルのシーケンスを備え、前記サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットであり、
前記第1のトラックおよび前記第2のトラックからの各それぞれのトラックに対して、前記それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のピクチャ出力フラグを有し、
第1の値に等しいピクチャ出力フラグを有するピクチャは、出力されることを許可され、第2の値に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることを許可されるが出力されることを許可されない、ビデオデバイス。
[C28]
前記マルチレイヤビデオデータは、スケーラブル高効率ビデオコーディング(SHVC)データ、マルチビュー高効率ビデオコーディング(MV−HEVC)データ、または3次元高効率ビデオコーディング(3D−HEVC)データのうちの1つである、C27に記載のビデオデバイス。
[C29]
前記第1の値は1に等しく、前記第2の値は0に等しい、C27に記載のビデオデバイス。
[C30]
実行されると、1つまたは複数のプロセッサに、
メディアコンテンツを含むメディアデータボックスを備えるファイルを生成させる命令を記憶した、コンピュータ可読データ記憶媒体であって、前記メディアコンテンツはサンプルのシーケンスを備え、前記サンプルの各々は前記マルチレイヤビデオデータのアクセスユニットであり、前記ファイルを生成するために、前記命令は、前記1つまたは複数のプロセッサに、
前記マルチレイヤビデオデータのビットストリームの少なくとも1つのアクセスユニットが、第1の値に等しいピクチャ出力フラグを有するコーディングされたピクチャと第2の値に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むという決定に応答して、前記ファイルに前記ビットストリームを記憶するために、少なくとも第1のトラックと第2のトラックとを使用させ、
前記第1のトラックおよび前記第2のトラックからの各それぞれのトラックに対して、前記それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値の前記ピクチャ出力フラグを有し、
前記第1の値に等しいピクチャ出力フラグを有するピクチャは、出力されることを許可され、前記第2の値に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることを許可されるが出力されることを許可されない、コンピュータ可読データ記憶媒体。
[C31]
前記命令は、1つまたは複数のプロセッサに、
前記ビットストリームのアクセスユニットが、前記第1の値に等しいピクチャ出力フラグを有するコーディングされたピクチャと前記第2の値に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含まないという決定に応答して、前記ファイルに前記ビットストリームを記憶するために、単一のトラックを使用させる、C30に記載のコンピュータ可読データ記憶媒体。
[C32]
前記マルチレイヤビデオデータは、スケーラブル高効率ビデオコーディング(SHVC)データ、マルチビュー高効率ビデオコーディング(MV−HEVC)データ、または3次元高効率ビデオコーディング(3D−HEVC)データのうちの1つである、C30に記載のコンピュータ可読データ記憶媒体。
[C33]
前記第1の値は1に等しく、前記第2の値は0に等しい、C30に記載のコンピュータ可読データ記憶媒体。
[C34]
実行されると、1つまたは複数のプロセッサに、
ファイルから、第1のトラックボックスと第2のトラックボックスとを取得させる命令を記憶した、コンピュータ可読データ記憶媒体であって、前記第1のトラックボックスは前記ファイル中の第1のトラックのためのメタデータを含み、前記第2のトラックボックスは前記ファイル中の第2のトラックのためのメタデータを含み、
前記第1のトラックおよび前記第2のトラックの各々は、サンプルのシーケンスを備え、前記サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットであり、
前記第1のトラックおよび前記第2のトラックからの各それぞれのトラックに対して、前記それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のピクチャ出力フラグを有し、
第1の値に等しいピクチャ出力フラグを有するピクチャは、出力されることを許可され、第2の値に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることを許可されるが出力されることを許可されない、コンピュータ可読データ記憶媒体。
[C35]
前記マルチレイヤビデオデータは、スケーラブル高効率ビデオコーディング(SHVC)データ、マルチビュー高効率ビデオコーディング(MV−HEVC)データ、または3次元高効率ビデオコーディング(3D−HEVC)データのうちの1つである、C34に記載のコンピュータ可読データ記憶媒体。
[C36]
前記第1の値は1に等しく、前記第2の値は0に等しい、C34に記載のコンピュータ可読データ記憶媒体。