【文献】
Peter Amon et al.,File Format for Scalable Video Coding[online], インターネット<URL:http://wftp3.itu.int/av-arch/jvt-site/2006_10_Hangzhou/JVT-U139.zip><JVT-U139.doc>,Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 and ITU-T SG16 Q.6) 21st Meeting: Hangzhou, China, 20-27 October, 2006,[online],2006年10月22日,JVT-U139,pp.1-11,NPL 18-005638,URL,http://wftp3.itu.int/av-arch/jvt-site/2006_10_Hangzhou/JVT-U139.zip
(58)【調査した分野】(Int.Cl.,DB名)
前記ビデオ符号化デバイスは、前記出力ファイルのためのトラックコンテンツ情報(tcon)ボックスを生成しないようにさらに構成される、請求項1に記載のデバイス。
前記ビデオ符号化デバイスは、前記1つまたは複数のトラックの各々のためのレイヤ識別子を生成するようにさらに構成され、レイヤ識別子は、トラックに含まれるレイヤを識別する、請求項1に記載のデバイス。
前記ビデオ符号化デバイスは、オペレーティングポイント情報(oinf)ボックスを生成するようにさらに構成され、前記oinfボックスは、前記マルチレイヤビデオデータに含まれる1つまたは複数のオペレーティングポイントのリストを含み、オペレーティングポイントは、1つまたは複数のレイヤに関連付けられ、前記oinfボックスは、前記1つまたは複数のトラックのうちのどれが、前記1つまたは複数のオペレーティングポイントの各々に関連付けられるレイヤを含むかを示す、請求項1に記載のデバイス。
前記出力ファイルは、フォーマットを使用して生成され、前記出力ファイルの前記フォーマットは、国際標準化機構(ISO)ベースメディアファイルフォーマットを含む、請求項10に記載のデバイス。
ビデオデコーダデバイスによって、マルチレイヤビデオデータに関連付けられる出力ファイルのサンプルエントリーの名前を処理することと、前記マルチレイヤビデオデータは複数のレイヤを含み、各レイヤは、少なくとも1つのビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットと任意の関連する非VCL NALユニットとを含む少なくとも1つのピクチャユニットを備え、前記出力ファイルは複数のトラックを備え、
前記出力ファイルの前記サンプルエントリーの名前に基づいて、前記出力ファイルの前記複数のトラックの各トラックが前記マルチレイヤビデオデータのたった1つのレイヤを備えること、および、前記複数のトラックの各々がアグリゲータおよびエクストラクタを含まないこと、を決定することと、前記アグリゲータは、NALユニットの不規則なパターンを、集約されたデータユニットの規則的なパターンへと変更することによって、NALユニットのスケーラブルグループ化を可能にする構造を含み、前記エクストラクタは、メディアデータを含むトラック以外のトラックからのNALユニットの抽出を可能にする構造を含み、前記出力ファイルは、オペレーションポイントに含まれる1つまたは複数のレイヤを識別するトラックレイヤ識別子をさらに備える、
を備える方法。
【発明を実施するための形態】
【0024】
[0032]本開示のいくつかの態様および実施形態が以下で提供される。当業者には明らかなように、これらの態様および実施形態のうちのいくつかは単独で適用される場合があり、それらのうちのいくつかは組み合わせて適用される場合がある。以下の説明では、説明の目的で、本発明の実施形態の完全な理解を与えるために具体的な詳細が記載される。ただし、様々な実施形態は、これらの具体的な詳細なしに実施され得ることが明らかであろう。図および説明は、限定的であることが意図されていない。
【0025】
[0033]以下の説明は、例示的な実施形態のみを与えるものであり、本開示の範囲、適用性、または構成を限定するものではない。そうではなく、例示的な実施形態の以下の説明は、例示的な実施形態を実施することを可能にする説明を当業者に与える。添付の特許請求の範囲に記載されるように、本発明の趣旨および範囲から逸脱することなく、要素の機能および構成において様々な変更が行われ得ることを理解されたい。
【0026】
[0034]以下の説明では、実施形態の完全な理解を与えるために具体的な詳細が与えられる。ただし、実施形態はこれらの具体的な詳細なしに実施され得ることが当業者によって理解されよう。たとえば、不要な詳細で実施形態を不明瞭にしないために、回路、システム、ネットワーク、プロセス、および他の構成要素が構成要素としてブロック図の形式で示されることがある。他の事例では、実施形態を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法が不要な詳細なしに示され得る。
【0027】
[0035]また、個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明されることがあることに留意されたい。フローチャートは動作を逐次プロセスとして説明することがあるが、動作の多くは並列または同時に実行され得る。さらに、動作の順序は並べ替えられ得る。プロセスは、プロセスの動作が完了したときに終了するが、図に含まれていない追加のステップを有し得る。プロセスは、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応する場合、プロセスの終了は呼出し関数またはメイン関数への関数の復帰に対応し得る。
【0028】
[0036]「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブル記憶デバイス、光記憶デバイス、ならびに命令および/またはデータを記憶、含有、または搬送することが可能な様々な他の媒体を含む。コンピュータ可読媒体は、データが記憶され得る、ワイヤレスにまたはワイヤード接続で伝搬する搬送波および/または一時的電子信号を含まない非一時的媒体を含み得る。非一時的媒体の例としては、限定はしないが、磁気ディスクまたはテープ、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリまたはメモリデバイスがあり得る。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表し得るコードおよび/または機械実行可能命令が記憶されていることがある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡すことおよび/または受信することによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を介して渡され、転送され、または送信され得る。
【0029】
[0037]さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスク(たとえば、コンピュータプログラム製品)を実行するためのプログラムコードまたはコードセグメントは、コンピュータ可読媒体または機械可読媒体に記憶され得る。回路(たとえば、集積回路)を備えるプロセッサが、必要なタスクを実行するように構成され得る。
【0030】
[0038]より多くのデバイスおよびシステムが、デジタルビデオデータを消費する能力を消費者に提供する中、効率的なビデオコーディング技法の必要性がより重要になっている。デジタルビデオデータに存在する大量のデータを処理するために必要な記憶および送信の要件を減らすために、ビデオコーディングが必要とされる。高いビデオ品質を維持する一方でより低いビットレートを使用する形式にビデオデータを圧縮するために、様々なビデオコーディング技法が使用され得る。
【0031】
[0039]デジタルビデオデータは、様々な目的で記憶および/または移送され得る。たとえば、ストリーミングメディア提供者は、ムービーのデジタルコピーをデータベースサーバに記憶し、インターネットを介して視聴者にムービーを送信することができる。ビデオデータを記憶および/または移送するために、ビデオデータは1つまたは複数のファイルに配置され得る。ビデオデータをファイルに記憶するために、様々なフォーマットが使用され得る。1つのそのようなフォーマットは、国際標準化機構(ISO)ベースメディアファイルフォーマット(ISOBMFF)である。
【0032】
[0040]ムービーなどの所与のビデオはまた、異なる品質、解像度、フレームレート、および/または深度を含む、様々な異なる方法で符号化され得る。同じビデオはまた、たとえば、30フレーム毎秒(fps)または60fpsなど、異なる時間符号化を有し得る。階層化HEVC(L−HEVC)は、複数の方法でビデオを符号化することを実現する1つのビデオ圧縮規格であり、各符号化(たとえば、品質、解像度、フレームレート、深度など)がレイヤと呼ばれ得る。単一のビデオのための様々なレイヤは、同じファイルまたはファイルグループに記憶され得る。ISOBMFFは、ビデオデータ(および関連するオーディオデータ)がトラック(たとえば、1つまたは複数のビデオトラック、1つまたは複数のオーディオトラックなど)でファイルに記憶され得ることを規定する。ISOBMFFはさらに、1つまたは複数のレイヤが1つのトラックに記憶され得ることを規定する。典型的には、エンコーダデバイスは、所与のビデオのレイヤがファイルにおけるトラックにどのように記憶されるかを決定するように構成され得る。ファイルはさらに、ファイルにおけるトラックからレイヤを取り出す方法をデコーダデバイスが決定できるようにする情報を含み得る。
【0033】
[0041]トラックごとに任意の数のレイヤを許容することは、デコーダにとって過剰な複雑性をもたらし得る。たとえば、3つのレイヤを含むビデオを仮定すると、変形形態の中でも、レイヤごとに1つのトラックを有する3つのトラック、すべてのレイヤを含む1つのトラック、または1つのレイヤを含む1つのトラックおよび2つのレイヤを含む1つのトラックのいずれかを含むビデオ向けのファイルが作成され得る。また、アグリゲータまたはエクストラクタなどのパッキング効率を高めるための構成によりファイルが構築されるとき、単一のビデオが1つのファイルに書き込まれ得る異なる方法の数が劇的に増加し得る。階層化ビデオデータを受信するデコーダデバイスは、複数のレイヤが1つのトラックに記憶されることを許容されるときに生じ得るすべての異なるファイルフォーマットをサポートする必要があり得る。
【0034】
[0042]様々な実装形態では、トラックごとにせいぜい1つのレイヤを有するようにビデオファイルのフォーマットを制限するためのシステムおよび方法が提供される。所与のビデオの各レイヤがせいぜい1つのトラックに記憶されるように、ビデオファイルのフォーマットを制限することによって、デコーダデバイスがサポートする必要があるファイルフォーマットの数がかなり減る。ビデオをファイルに符号化することも、かなり単純化される。
【0035】
[0043]
図1は、符号化デバイス104と復号デバイス112とを含むシステム100の一例を示すブロック図である。符号化デバイス104はソースデバイスの一部であり得、復号デバイス112は受信デバイスの一部であり得る。ソースデバイスおよび/または受信デバイスは、モバイルもしくは固定電話ハンドセット(たとえば、スマートフォン、セルラー電話など)、デスクトップコンピュータ、ラップトップもしくはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、または任意の他の適切な電子デバイスなどの電子デバイスを含み得る。いくつかの例では、ソースデバイスおよび受信デバイスは、ワイヤレス通信のための1つまたは複数のワイヤレストランシーバを含み得る。本明細書で説明されるコーディング技法は、(たとえば、インターネットを介した)ストリーミングビデオ送信、テレビジョン放送もしくは送信、データ記憶媒体上に記憶するためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例を含む、様々なマルチメディア適用例におけるビデオコーディングに適用可能である。いくつかの例では、システム100は、ビデオ会議、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、ゲーム、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートし得る。
【0036】
[0044]符号化デバイス104(またはエンコーダ)は、符号化されたビデオビットストリームを生成するためにビデオコーディング規格またはプロトコルを使用してビデオデータを符号化するために使用され得る。ビデオコーディング規格は、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とを含む。より最近のビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)が、ITU−Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECムービングピクチャエキスパートグループ(MPEG:Moving Picture Experts Group)とのジョイントコラボレーションチームオンビデオコーディング(JCT−VC:Joint Collaboration Team on Video Coding)によって確定された。MV−HEVCと呼ばれるHEVCに対するマルチビュー拡張およびSHVCと呼ばれるHEVCに対するスケーラブル拡張、または任意の他の適切なコーディングプロトコルを含む、HEVCに対する様々な拡張が、マルチレイヤビデオコーディングを扱っており、また、JCT−VCによって開発されている。
【0037】
[0045]本明細書で説明される多くの実施形態は、HEVC規格またはそれの拡張を使用する例を表す。しかしながら、本明細書で説明される技法およびシステムは、AVC、MPEG、それの拡張、あるいはすでに利用可能であるか、またはまだ利用可能ではないか、もしくは開発されていない他の適切なコーディング規格など、他のコーディング規格にも適用可能であり得る。したがって、本明細書で説明される技法およびシステムは、特定のビデオコーディング規格を参照しながら説明され得るが、当業者は、説明がその特定の規格にのみ適用されると解釈されるべきではないことを諒解されよう。
【0038】
[0046]ビデオソース102は、符号化デバイス104にビデオデータを与え得る。ビデオソース102は、ソースデバイスの一部であり得るか、またはソースデバイス以外のデバイスの一部であり得る。ビデオソース102は、ビデオキャプチャデバイス(たとえば、ビデオカメラ、カメラフォン、ビデオフォンなど)、記憶されたビデオを含むビデオアーカイブ、ビデオデータを与えるビデオサーバもしくはコンテンツ提供者、ビデオサーバもしくはコンテンツ提供者からビデオを受信するビデオフィードインターフェース、コンピュータグラフィックスビデオデータを生成するためのコンピュータグラフィックスシステム、そのようなソースの組合せ、または任意の他の適切なビデオソースを含み得る。ビデオソース102の一例としては、インターネットプロトコルカメラ(IPカメラ)があり得る。IPカメラは、監視、ホームセキュリティ、または他の適切な適用例に使用され得るタイプのデジタルビデオカメラである。アナログ閉回路テレビジョン(CCTV)カメラとは異なり、IPカメラは、コンピュータネットワークおよびインターネットを介してデータを送り、受信することができる。
【0039】
[0047]ビデオソース102からのビデオデータは、1つまたは複数の入力ピクチャまたはフレームを含み得る。ピクチャまたはフレームは、ビデオの一部である静止画像である。符号化デバイス104のエンコーダエンジン106(またはエンコーダ)は、符号化されたビデオビットストリームを生成するためにビデオデータを符号化する。いくつかの例では、符号化されたビデオビットストリーム(または「ビデオビットストリーム」もしくは「ビットストリーム」)は、一連の1つまたは複数のコーディングされたビデオシーケンスである。コーディングされたビデオシーケンス(CVS)は、ベースレイヤ中のいくつかの特性を伴うランダムアクセスポイントピクチャを有するアクセスユニット(AU)で始まり、ベースレイヤ中のいくつかの特性を伴うランダムアクセスポイントピクチャを有する次のAUまでの、次のAUを含まない一連のAUを含む。たとえば、CVSを開始するランダムアクセスポイントピクチャのいくつかの特性は、1に等しいRASLフラグ(たとえば、NoRaslOutputFlag)を含み得る。それ以外は、(0に等しいRASLフラグを有する)ランダムアクセスポイントピクチャは、CVSを開始しない。アクセスユニット(AU)は、1つまたは複数のコーディングされたピクチャと、同じ出力時間を共有するコーディングされたピクチャに対応する制御情報とを含む。ピクチャのコーディングされたスライスは、ビットストリームレベルにおいて、ネットワークアブストラクションレイヤ(NAL)ユニットと呼ばれるデータユニットにカプセル化される。たとえば、HEVCビデオビットストリームは、NALユニットを含む1つまたは複数のCVSを含み得る。ビデオコーディングレイヤ(VCL)NALユニットと非VCL NALユニットとを含む、NALユニットの2つのクラスがHEVC規格に存在する。VCL NALユニットは、コーディングされたピクチャデータの1つのスライスまたはスライスセグメント(以下で説明される)を含み、非VCL NALユニットは、1つまたは複数のコーディングされたピクチャに関係する制御情報を含む。
【0040】
[0048]NALユニットは、ビデオにおけるピクチャのコーディングされた表現など、ビデオデータのコーディングされた表現を形成するビットのシーケンス(たとえば、符号化されたビデオビットストリーム、ビットストリームのCVSなど)を含み得る。エンコーダエンジン106は、各ピクチャを複数のスライスに区分することによってピクチャのコーディングされた表現を生成する。スライスは次いで、ルーマサンプルおよびクロマサンプルのコーディングツリーブロック(CTB)に区分され得る。ルーマサンプルのCTBおよびクロマサンプルの1つまたは複数のCTBは、サンプルのためのシンタックスとともに、コーディングツリーユニット(CTU)と呼ばれる。CTUは、HEVC符号化のための基本処理ユニットである。CTUは、様々なサイズの複数のコーディングユニット(CU)に分割され得る。CUは、コーディングブロック(CB)と呼ばれるルーマおよびクロマサンプルアレイを含む。
【0041】
[0049]ルーマおよびクロマCBは、予測ブロック(PB)にさらに分割され得る。PBは、インター予測に同じ動きパラメータを使用するルーマまたはクロマ成分のサンプルのブロックである。ルーマPBおよび1つまたは複数のクロマPBは、関連するシンタックスとともに、予測ユニット(PU)を形成する。動きパラメータのセットは、各PUについて、ビットストリームにおいてシグナリングされ、ルーマPBおよび1つまたは複数のクロマPBのインター予測に使用される。CBはまた、1つまたは複数の変換ブロック(TB)に区分され得る。TBは、予測残差信号をコーディングするために同じ2次元変換が適用される色成分のサンプルの正方形ブロックを表す。変換ユニット(TU)は、ルーマおよびクロマサンプルのTBと、対応するシンタックス要素とを表す。
【0042】
[0050]CUのサイズは、コーディングノードのサイズに対応し、形状が正方形であり得る。たとえば、CUのサイズは、8×8サンプル、16×16サンプル、32×32サンプル、64×64サンプル、または対応するCTUのサイズまでの任意の他の適切なサイズであり得る。「N×N」という句は本明細書において、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法(たとえば、8ピクセル×8ピクセル)を指すために使用され得る。ブロック中のピクセルは行および列に配置され得る。いくつかの実施形態では、ブロックは、水平方向において垂直方向と同じ数のピクセルを有するとは限らない。CUに関連付けられるシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を記述し得る。区分モードは、CUがイントラ予測モード符号化されるか、それともインター予測モード符号化されるかの間で異なる場合がある。PUは、形状が非正方形に区分され得る。CUに関連付けられるシンタックスデータは、たとえば、CTUに従う1つまたは複数のTUへのCUの区分をも記述し得る。TUは、形状が正方形または非正方形であり得る。
【0043】
[0051]HEVC規格によれば、変換は、変換ユニット(TU)を使用して実行され得る。TUは、異なるCUでは異なり得る。TUは、所与のCU内のPUのサイズに基づいてサイズ決定され得る。TUは、PUと同じサイズであるか、またはPUよりも小さい場合がある。いくつかの例では、CUに対応する残差サンプルは、残差4分木(RQT)として知られる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは、TUに対応し得る。TUに関連付けられるピクセル差分値は、変換係数を生成するために変換され得る。次いで変換係数は、エンコーダエンジン106によって量子化され得る。
【0044】
[0052]ビデオデータのピクチャがCUに区分されると、エンコーダエンジン106は、予測モードを使用して各PUを予測する。次いで予測は、(以下で説明される)残差を得るために元のビデオデータから減算される。CUごとに、シンタックスデータを使用してビットストリーム内で予測モードがシグナリングされ得る。予測モードは、イントラ予測(もしくはピクチャ内予測)またはインター予測(もしくはピクチャ間予測)を含み得る。イントラ予測を使用して、各PUは、たとえば、PUに関する平均値を見つけるためのDC予測、PUにプレーナ面(planar surface)を適合させるプレーナ(planar)予測、隣接データから外挿する方向予測、または任意の他の適切なタイプの予測を使用して、同じピクチャ中の隣接画像データから予測される。インター予測を使用して、(出力順序で現在ピクチャの前または後の)1つまたは複数の参照ピクチャにおける画像データから動き補償予測を使用して、各PUが予測される。ピクチャ間予測またはピクチャ内予測を使用してピクチャエリアをコーディングするかどうかの決定は、たとえば、CUレベルにおいて行われ得る。いくつかの例では、ピクチャの1つまたは複数のスライスは、スライスタイプを割り当てられる。スライスタイプは、Iスライス、Pスライス、およびBスライスであり得る。Iスライス(フレーム内、独立して復号可能)は、イントラ予測によってのみコーディングされるピクチャのスライスであり、したがって、Iスライスは、スライスの任意のブロックを予測するためにフレーム内のデータのみを必要とするので、独立して復号可能である。Pスライス(単方向予測されるフレーム)は、イントラ予測および単方向インター予測によりコーディングされ得るピクチャのスライスである。Pスライス内の各ブロックは、イントラ予測またはインター予測のいずれかによりコーディングされる。インター予測が適用されるとき、ブロックは、1つの参照ピクチャによってのみ予測され、したがって、参照サンプルは、1つのフレームの1つの参照領域からのみである。Bスライス(双方向予測フレーム)は、イントラ予測およびインター予測によりコーディングされ得るピクチャのスライスである。Bスライスのブロックは、2つの参照ピクチャから双方向予測され得、各ピクチャが1つの参照領域を導き(contribute)、双方向予測されたブロックの予測信号を生成するために、2つの参照領域のサンプルセットが(たとえば、等しい重みにより)重み付けされる。上記で説明されたように、1つのピクチャのスライスが独立してコーディングされる。場合によっては、1つのピクチャがたった1つのスライスとしてコーディングされ得る。
【0045】
[0053]PUは、予測プロセスに関係するデータを含み得る。たとえば、PUがイントラ予測を使用して符号化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインター予測を使用して符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。PUの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、もしくはリストC)を記述し得る。
【0046】
[0054]次いで、符号化デバイス104は、変換および量子化を実行し得る。たとえば、予測の後に、エンコーダエンジン106は、PUに対応する残差値を計算し得る。残差値は、ピクセル差分値を備え得る。予測が実行された後に残存し得るいずれの残差データも、離散コサイン変換、離散サイン変換、整数変換、ウェーブレット変換、または他の適切な変換関数に基づき得るブロック変換を使用して変換される。場合によっては、1つまたは複数のブロック変換(たとえば、サイズ32×32、16×16、8×8、4×4など)が各CUにおける残差データに適用され得る。いくつかの実施形態では、エンコーダエンジン106によって実施される変換および量子化プロセスにTUが使用され得る。1つまたは複数のPUを有する所与のCUは、1つまたは複数のTUも含み得る。以下でさらに詳細に説明されるように、残差値は、ブロック変換を使用して変換係数に変換され得、次いで、エントロピーコーディングのためのシリアル化変換係数を生成するために、TUを使用して量子化および走査され得る。
【0047】
[0055]いくつかの実施形態では、CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後に、エンコーダエンジン106は、CUのTUのための残差データを計算し得る。PUは、空間領域(またはピクセル領域)においてピクセルデータを備え得る。TUは、ブロック変換の適用の後に変換領域において係数を備え得る。前記のように、残差データは、符号化されていないピクチャのピクセルとPUに対応する予測値との間のピクセル差分値に対応し得る。エンコーダエンジン106は、CUのための残差データを含むTUを形成することができ、次いで、CUのための変換係数を生成するためにTUを変換することができる。
【0048】
[0056]エンコーダエンジン106は、変換係数の量子化を実行し得る。量子化は、係数を表すために使用されるデータの量を減らすために変換係数を量子化することによってさらなる圧縮をもたらす。たとえば、量子化は、係数の一部または全部に関連付けられるビット深度を低減することができる。一例では、nビット値を有する係数は、量子化中にmビット値に切り捨てられ得、nがmよりも大きい。
【0049】
[0057]量子化が実行されると、コーディングされたビデオビットストリームは、量子化変換係数と、予測情報(たとえば、予測モード、動きベクトルなど)と、区分情報と、他のシンタックスデータなどの任意の他の適切なデータとを含む。次いで、コーディングされたビデオビットストリームの異なる要素は、エンコーダエンジン106によってエントロピー符号化され得る。いくつかの例では、エンコーダエンジン106は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。いくつかの例では、エンコーダエンジン106は適応走査を実行し得る。ベクトル(たとえば、1次元ベクトル)を形成するために量子化変換係数を走査した後、エンコーダエンジン106は、ベクトルをエントロピー符号化することができる。たとえば、エンコーダエンジン106は、コンテキスト適応型可変長コーディング、コンテキスト適応型バイナリ算術コーディング、シンタックスベースコンテキスト適応型バイナリ算術コーディング、確率間隔区分エントロピーコーディング、または別の適切なエントロピー符号化技法を使用し得る。
【0050】
[0058]符号化デバイス104の出力部110は、通信リンク120を介して受信デバイスの復号デバイス112に、符号化されたビデオビットストリームデータを構成するNALユニットを送り得る。復号デバイス112の入力部114は、NALユニットを受信し得る。通信リンク120は、ワイヤレスネットワーク、ワイヤードネットワーク、またはワイヤードネットワークとワイヤレスネットワークとの組合せによって提供されるチャネルを含み得る。ワイヤレスネットワークは、任意のワイヤレスインターフェースまたはワイヤレスインターフェースの組合せを含むことができ、任意の適切なワイヤレスネットワーク(たとえば、インターネットまたは他のワイドエリアネットワーク、パケットベースネットワーク、WiFi(登録商標)、無線周波数(RF)、UWB、WiFi−Direct、セルラー、ロングタームエボリューション(LTE(登録商標))、WiMax(登録商標)など)を含み得る。ワイヤードネットワークは、任意のワイヤードインターフェース(たとえば、ファイバー、イーサネット(登録商標)、電力線イーサネット、同軸ケーブルを介したイーサネット、デジタル信号線(DSL)など)を含み得る。ワイヤードおよび/またはワイヤレスネットワークは、基地局、ルータ、アクセスポイント、ブリッジ、ゲートウェイ、スイッチなど、様々な機器を使用して実装され得る。符号化されたビデオビットストリームデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、受信デバイスに送信され得る。
【0051】
[0059]いくつかの例では、符号化デバイス104は、符号化されたビデオビットストリームデータをストレージ108に記憶し得る。出力部110は、符号化されたビデオビットストリームデータをエンコーダエンジン106から、またはストレージ108から取り出し得る。ストレージ108は、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。たとえば、ストレージ108は、ハードドライブ、記憶ディスク、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体を含み得る。
【0052】
[0060]復号デバイス112の入力部114は、符号化されたビデオビットストリームデータを受信し、ビデオビットストリームデータをデコーダエンジン116に、またはデコーダエンジン116によって後で使用されるためにストレージ118に提供し得る。デコーダエンジン116は、(たとえば、エントロピーデコーダを使用して)エントロピー復号し、符号化されたビデオデータを構成する1つまたは複数のコーディングされたビデオシーケンスの要素を抽出することによって、符号化されたビデオビットストリームデータを復号し得る。次いでデコーダエンジン116は、再スケーリングし、符号化されたビデオビットストリームデータに対して逆変換を実行し得る。次いで残差データが、デコーダエンジン116の予測段階に渡される。次いでデコーダエンジン116は、ピクセルのブロック(たとえば、PU)を予測する。いくつかの例では、逆変換の出力(残差データ)に予測が追加される。
【0053】
[0061]復号デバイス112は、復号されたビデオをビデオ宛先デバイス122に出力することができ、ビデオ宛先デバイス122は、復号されたビデオデータをコンテンツの消費者に表示するためのディスプレイまたは他の出力デバイスを含み得る。いくつかの態様では、ビデオ宛先デバイス122は、復号デバイス112を含む受信デバイスの一部であり得る。いくつかの態様では、ビデオ宛先デバイス122は、受信デバイス以外の別個のデバイスの一部であり得る。
【0054】
[0062]補足エンハンスメント情報(SEI)メッセージがビデオビットストリームに含まれ得る。たとえば、SEIメッセージは、復号デバイス112によってビットストリームを復号するために不可欠ではない情報(たとえば、メタデータ)を搬送するために使用され得る。この情報は、復号された出力の表示または処理を改善する際に有用である(たとえば、そのような情報は、コンテンツの視認性を改善するためにデコーダ側エンティティによって使用され得る)。
【0055】
[0063]いくつかの実施形態では、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、それぞれオーディオ符号化デバイスおよびオーディオ復号デバイスと統合され得る。ビデオ符号化デバイス104および/またはビデオ復号デバイス112はまた、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、上記で説明されたコーディング技法を実装するために必要な他のハードウェアまたはソフトウェアを含み得る。ビデオ符号化デバイス104およびビデオ復号デバイス112は、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
【0056】
[0064]HEVC規格に対する拡張は、MV−HEVCと呼ばれるマルチビュービデオコーディング拡張と、SHVCと呼ばれるスケーラブルビデオコーディング拡張とを含む。MV−HEVC拡張およびSHVC拡張は、階層化コーディングの概念を共有し、異なるレイヤが、符号化されたビデオビットストリームに含まれる。コーディングされたビデオシーケンスにおける各レイヤは、一意のレイヤ識別子(ID)によってアドレス指定される。NALユニットのヘッダには、NALユニットが関連付けられるレイヤを識別するためにレイヤIDが存在し得る。MV−HEVCでは、異なるレイヤは、ビデオビットストリームにおける同じシーンの異なるビューを表し得る。SHVCでは、異なる空間解像度(もしくはピクチャ解像度)で、または異なる再構築忠実度(reconstruction resolution)でビデオビットストリームを表す異なるスケーラブルレイヤが提供される。スケーラブルレイヤは、(レイヤID=0の)ベースレイヤと(レイヤID=1、2、...nの)1つまたは複数のエンハンスメントレイヤとを含み得る。ベースレイヤは、HEVCの第1のバージョンのプロファイルに適合することができ、ビットストリームにおいて利用可能な最下位レイヤを表す。エンハンスメントレイヤは、ベースレイヤと比較して上昇した空間解像度、時間解像度もしくはフレームレート、および/または再構築忠実度(もしくは品質)を有する。エンハンスメントレイヤは、階層的に編成されており、下位レイヤに依存すること(または依存しないこと)がある。いくつかの例では、単一の標準コーデックを使用して、異なるレイヤがコーディングされ得る(たとえば、HEVC、SHVC、または他のコーディング規格を使用して、すべてのレイヤが符号化される)。いくつかの例では、マルチスタンダードコーデックを使用して、異なるレイヤがコーディングされ得る。たとえば、ベースレイヤは、AVCを使用してコーディングされ得るが、1つまたは複数のエンハンスメントレイヤは、HEVC規格に対するSHVC拡張および/またはMV−HEVC拡張を使用してコーディングされ得る。一般に、レイヤは、VCL NALユニットのセットと非VCL NALユニットの対応するセットとを含む。NALユニットは、特定のレイヤID値を割り当てられる。レイヤは、レイヤが下位レイヤに依存することがあるという意味で、階層的であり得る。
【0057】
[0065]前に説明されたように、HEVCビットストリームは、VCL NALユニットと非VCL NALユニットとを含む、NALユニットのグループを含む。非VCL NALユニットは、他の情報に加えて、符号化されたビデオビットストリームに関係する高レベル情報を有するパラメータセットを含み得る。たとえば、パラメータセットは、ビデオパラメータセット(VPS)と、シーケンスパラメータセット(SPS)と、ピクチャパラメータセット(PPS)とを含み得る。パラメータセットの目的の例としては、ビットレート効率、エラーレジリエンシー(誤り回復:error resiliency)、およびシステムレイヤインターフェースの提供がある。各スライスは、スライスを復号するために復号デバイス112が使用し得る情報にアクセスするために単一のアクティブなPPS、SPS、およびVPSを参照する。VPS識別子(ID)と、SPS IDと、PPS IDとを含むIDが、パラメータセットごとにコーディングされ得る。SPSは、SPS IDとVPS IDとを含む。PPSは、PPS IDとSPS IDとを含む。各スライスヘッダは、PPS IDを含む。IDを使用して、アクティブなパラメータセットが所与のスライスに関して識別され得る。
【0058】
[0066]VCL NALユニットは、コーディングされたビデオビットストリームを形成するコーディングされたピクチャデータを含む。以下の表Aに示されるように、HEVC規格において様々なタイプのVCL NALユニットが定義される。単一レイヤビットストリームでは、第1のHEVC規格において定義されているように、AUに含まれるVCL NALユニットが同じNALユニットタイプ値を有し、NALユニットタイプ値が、AUのタイプとAU内のコーディングされたピクチャのタイプとを定義する。たとえば、特定のAUのVCL NALユニットは、瞬時復号リフレッシュ(IDR)NALユニット(値19)を含むことができ、これはAUをIDR AUにし、AUのコーディングされたピクチャをIDRピクチャにする。VCL NALユニットの所与のタイプは、VCL NALユニットに含まれる、ピクチャまたはその一部分(たとえば、VCL NALユニットにおけるピクチャのスライスまたはスライスセグメント)に関係する。リーディングピクチャと、トレーリングピクチャと、イントラランダムアクセス(IRAP)ピクチャ(「ランダムアクセスピクチャ」とも呼ばれる)とを含む、3つのクラスのピクチャがHEVC規格において定義されている。マルチレイヤビットストリームでは、AU内のピクチャのVCL NALユニットは、同じNALユニットタイプ値と同じタイプのコーディングされたピクチャとを有する。たとえば、タイプIDRのVCL NALユニットを含むピクチャは、AUにおけるIDRピクチャであると言われる。別の例では、ベースレイヤ(0に等しいレイヤID)においてIRAPピクチャであるピクチャをAUが含むとき、AUは IRAP AUである。
【0059】
[0067]ファイルフォーマット規格は、ISOベースメディアファイルフォーマット(ISO/IEC 14496−12としても知られるISOBMFF)と、MPEG−4ファイルフォーマット(ISO/IEC 14496−14としても知られる)、3GPP(登録商標)ファイルフォーマット(3GPP TS26.244としても知られる)、およびAVCファイルフォーマット(ISO/IEC 14496−15としても知られる)を含む、ISOBMFFから派生した他のファイルフォーマットとを含む。一般に、ISO/IEC 14496−15仕様は、ぼろがNALユニットに基づくコーデックのためのファイルフォーマットとしてブセ使用され得る(たとえば、AVC、SVC、MVC、HEVC、SHVC、およびMV−HEVC)。階層化HEVC(L−HEVC)ファイルフォーマットのための規格は、http://phenix.int−every.frにある、MPEG委員会のウェブサイトから入手可能である。
【0060】
[0068]ISOBMFFは、多くのコーデックカプセル化フォーマット(たとえば、AVCファイルフォーマット)のための、さらには多くのマルチメディアコンテナフォーマット(たとえば、MPEG−4ファイルフォーマット、3GPPファイルフォーマット(3GP)、DVBファイルフォーマット、または他の適切なフォーマット)のための、基礎として使用され得る。
【0061】
[0069]連続的なメディア(たとえば、オーディオおよびビデオ)に加えて、静的なメディア(たとえば、画像)およびメタデータが、ISOBMFFに準拠したファイルに記憶され得る。ISOBMFFに従って構成されたファイルは、ローカルメディアファイルの再生、リモートファイルのプログレッシブダウンロードを含む、多くの目的のために、動的適応ストリーミングオーバーHTTP(DASH:Dynamic Adaptive Streaming over HTTP)のためのセグメントとして、ストリーミングされるべきコンテンツのためのコンテナおよびコンテンツのためのパケット化命令として、ならびに、受信されたリアルタイムメディアストリームの記録および/または他の用途のために、使用され得る。
【0062】
[0070]ボックスは、ISOBMFFにおけるエレメンタリシンタックス構造である。ボックスは、4キャラクタのコーディングされたボックスタイプと、ボックスのバイトカウントと、ペイロードとを含み得る。ISOBMFFファイルは、ボックスのシーケンスを含み、ボックスは他のボックスを含んでよい。たとえば、ムービーボックス(「moov」)が、ファイル中に存在する連続的なメディアストリームのメタデータを含み、各々がトラックとしてファイルに表される。トラックに対するメタデータは、トラックボックス(「trak」)に封入されるが、トラックのメディアコンテンツは、メディアデータボックス(「mdat」)に封入されるか、または別のファイルに直接封入されるかのいずれかである。トラックに対するメディアコンテンツは、オーディオまたはビデオアクセスユニットのようなサンプルのシーケンスを含む。
【0063】
[0071]ISOBMFFは、次のタイプのトラック、すなわち、エレメンタリメディアストリームを含むメディアトラックと、メディア送信命令を含むか受信されたパケットストリームを表すかのいずれかであるヒントトラックと、時間同期されたメタデータを備えるタイムドメタデータトラックとを規定する。
【0064】
[0072]元々は記憶のために設計されたが、ISOBMFFは、ストリーミングのために(たとえば、プログレッシブダウンロードまたはDASHのために)有用であることがわかっている。ストリーミングの目的で、ISOBMFFで定義されたムービーフラグメントが使用され得る。
【0065】
[0073]各トラックに対するメタデータは、サンプル記述エントリーのリストを含むことができ、サンプル記述エントリーの各々が、トラック中で使用されるコーディングフォーマットまたはカプセル化フォーマットと、そのフォーマットを処理するために必要な初期化データとを提供する。各サンプルは、トラックのサンプル記述エントリーの1つに関連付けられる。
【0066】
[0074]ISOBMFFは、様々な機構によってサンプル固有のメタデータを規定することを可能にする。サンプルテーブルボックス(「stbl」)内の特定のボックスが、一般的な需要に応えるために標準化されている。たとえば、シンクサンプルボックス(「stss」)は、トラックのランダムアクセスサンプルを記載するために使用される。サンプルグループ化機構は、ファイル中のサンプルグループ記述エントリーとして規定される同じ特性を共有するサンプルのグループへの、4キャラクタのグループ化タイプに従ったサンプルのマッピングを可能にする。いくつかのグループ化タイプが、ISOBMFFにおいて規定されている。
【0067】
[0075]ISOBMFF仕様は、DASHとともに使用する6つのタイプのストリームアクセスポイント(SAP)を規定している。最初の2つのSAPタイプ(タイプ1および2)は、H.264/AVCおよびHEVCにおける瞬時復号リフレッシュ(IDR:instantaneous decoding refresh)ピクチャに対応する。IDRピクチャは、デコーダにおける復号プロセスを完全にリフレッシュまたは再初期化し、新しいコーディングされたビデオシーケンスを開始するイントラピクチャ(Iピクチャ)である。いくつかの例では、IDRピクチャおよび復号順序でIDRピクチャに続く任意のピクチャは、復号順序でIDRピクチャの前に来るいかなるピクチャにも依存することができない。第3のSAPタイプ(タイプ3)は、HEVCにおけるブロークンリンクアクセス(BLA:broken link access)またはクリーンランダムアクセス(CRA)ピクチャなど、オープンGOP(ピクチャグループ)ランダムアクセスポイントに対応する。CRAピクチャもIピクチャである。CRAピクチャはデコーダをリフレッシュしなくてよく、新しいコーディングされたビデオシーケンス(CVS)を開始しなくてよいので、CRAピクチャのリーディングピクチャが、復号順序でCRAピクチャの前に来るピクチャに依存することが可能になる。ランダムアクセスは、CRAピクチャにおいて、CRAピクチャと、復号順序でCRAピクチャの前に来るいかなるピクチャにも依存しないCRAピクチャに関連付けられるリーディングピクチャと、復号順序と出力順序の両方でCRAに続くすべての関連ピクチャとを復号することによって行われ得る。場合によっては、CRAピクチャは、関連するリーディングピクチャを有しないことがある。マルチレイヤの場合には、ゼロよりも大きいレイヤIDを有するレイヤに属するIDRまたはCRAピクチャが、PピクチャまたはBピクチャであり得るが、これらのピクチャは、IDRまたはCRAピクチャと同じアクセスユニットに属する、IDRまたはCRAピクチャを含むレイヤよりも小さいレイヤIDを有する他のピクチャからのレイヤ間予測のみを使用し得る。第4のSAPタイプ(タイプ4)は、漸進的復号リフレッシュ(GDR)ランダムアクセスポイントに対応する。
【0068】
[0076]ISOベースメディアファイルフォーマットは、メディアの交換、管理、編集、および提示を容易にする、フレキシブルな、拡張可能なフォーマットでの提示のための、タイムド(timed)メディア情報を含むように設計される。ISOベースメディアファイルフォーマット(ISO/IEC 14496−12:2004)は、時間ベースのメディアファイルのための一般的な構造を定義するMPEG−4 Part−12において規定されている。ISOBMFFは、アドバンストビデオコーディング(AVC)ファイルフォーマット(ISO/IEC 14496−15)およびHEVCファイルフォーマットなどのファミリーにおける他のファイルフォーマットのための基礎として使用される。
【0069】
[0077]ISOベースメディアファイルフォーマットは、オーディオビジュアルプレゼンテーションのようなメディアデータのタイムドシーケンスのためのタイミングと、構造と、メディア情報とを含む。ファイル構造はオブジェクト指向である。ファイルは、非常に単純に基本オブジェクトに分解され得、オブジェクトの構造はそれらのタイプから暗示される。
【0070】
[0078]ISOベースメディアファイルフォーマットに準拠するファイルは、「ボックス」と呼ばれる一連のオブジェクトとして形成され得る。場合によっては、すべてのデータがボックスに含まれることがあり、たとえば、特定のファイルフォーマットによって求められる初期シグネチャを含む、他のデータが同じファイルに配置されることはない。「ボックス」は、一意のタイプ識別子と長さとによって定義され得るオブジェクト指向ビルディングブロックである。
【0071】
[0079]ISOベースメディアファイルフォーマットに従った例示的なファイル構造が
図2に示されている。一般に、常にではないが、メディアプレゼンテーションが1つのファイル200中に含まれ、メディアプレゼンテーションは自己完結的である。ムービーコンテナ202(または「ムービーボックス」)は、たとえば、1つまたは複数のビデオトラック210およびオーディオトラック216など、メディアのメタデータを含み得る。ビデオトラック216は、1つまたは複数のメディア情報コンテナ214に記憶され得る、ビデオの様々なレイヤについての情報を含み得る。たとえば、メディア情報コンテナ214は、ビデオに関するビデオサンプルについての情報を提供する単純なテーブルを含み得る。様々な実装形態では、ビデオ222およびオーディオ224チャンクがメディアデータコンテナ204に含まれる。いくつかの実装形態では、ビデオ222およびオーディオ224チャンクが(ファイル200以外の)1つまたは複数の他のファイルに含まれ得る。
【0072】
[0080]様々な実装形態では、プレゼンテーション(たとえば、動きシーケンス)がいくつかのファイルに含まれ得る。すべてのタイミングおよびフレーミング(たとえば、位置およびサイズ)情報はISOベースメディアファイル中にあり、補助ファイルは基本的に任意のフォーマットを使用することができる。
【0073】
[0081]ISOファイルは、論理構造と、時間構造と、物理構造とを有する。異なる構造は、結合されることを必要とされない。ファイルの論理構造はムービーのものであり、このムービーは時間並列トラックのセット(たとえば、トラック210)を含む。ファイルの時間構造は、トラックが時間的にサンプルのシーケンスを含むものであり、それらのシーケンスは、オプションの編集リストによってムービー全体のタイムラインにマッピングされ得る。
【0074】
[0082]ファイルの物理構造は、論理的、時間的、および構造的分解に必要なデータをメディアデータサンプル自体から分離する。この構造情報は、場合によってはムービーフラグメントボックスによって時間的に拡張される、ムービーボックス(たとえば、ムービーコンテナ202)に集中する。ムービーボックスは、サンプルの論理関係およびタイミング関係を記録し、サンプルが位置する場所へのポインタも含む。ポインタは、たとえば、ユニフォームリソースロケータ(URL)によって参照され得る、同じファイルまたは別のファイルを指すことがある。
【0075】
[0083]各メディアストリームは、そのメディアタイプ専用のトラックに含まれる。たとえば、
図2に示される例において、ムービーコンテナ202はビデオトラック210とオーディオトラック216とを含む。ムービーコンテナ202はまた、ヒントトラック218を含むことができ、ヒントトラック218は、ビデオ210トラックおよび/もしくはオーディオ216トラックからの送信命令を含むことができ、またはムービーコンテナ202もしくは他のムービーコンテナにおける他のトラックについての他の情報を表すことができる。各トラックはさらに、サンプルエントリーによってパラメータ化され得る。たとえば、図示の例では、ビデオトラック210はメディア情報コンテナ214を含み、メディア情報コンテナ214はサンプルのテーブルを含む。サンプルエントリーは、正確なメディアタイプ(たとえば、ストリームを復号するために必要とされるデコーダのタイプ)の「名前」と、必要とされるそのデコーダの何らかのパラメータ化とを含んでいる。名前は、4文字コード(たとえば、moov、trak、または他の適切な名前コード)の形態をとり得る。定義されたサンプルエントリーのフォーマットが、MPEG−4メディアに関してだけではなく、このファイルフォーマットファミリを使用する他の組織によって使用されるメディアタイプに関しても存在する。
【0076】
[0084]サンプルエントリーは、メディアデータコンテナ204におけるボックス220におけるビデオデータチャンク(たとえば、ビデオデータチャンク222)へのポインタをさらに含み得る。ボックス220は、(ビデオデータチャンク222などの、ビデオデータチャンクに編成された)インターリーブされた時間順のビデオサンプルと、(たとえば、オーディオデータチャンク224における)オーディオフレームと、(たとえば、ヒント命令チャンク226における)ヒント命令とを含む。
【0077】
[0085]メタデータのサポートは、異なる形態をとることができる。一例では、タイムドメタデータが、メタデータが表しているメディアデータと必要に応じて同期した、適切なトラックに記憶され得る。第2の例では、ムービーに、または個々のトラックに添付された非タイムドメタデータに対する一般的なサポートがある。構造的サポートは、一般的であり、メディアデータの場合のように、そのファイルの他の場所または別のファイルにメタデータリソースを記憶することを可能にする。
【0078】
[0086]以下でさらに説明されるように、ビデオファイルにおける1つのトラックは、複数のレイヤを含むことができる。
図3は、およびレイヤ1 316aと、レイヤ2 316bと、レイヤ3 316cとを含む、複数のレイヤ316a〜316cを有するビデオトラック310を含むファイル300の例を示す。ビデオトラック310はトラックヘッダ312も含むことができ、トラックヘッダ312は、ビデオトラック310のコンテンツについての何らかの情報を含み得る。たとえば、トラックヘッダ312は、トラックコンテンツ情報(「tcon」とも呼ばれる)ボックスを含み得る。tconボックスは、ビデオトラック310におけるレイヤおよびサブレイヤのすべてを記載し得る。
【0079】
[0087]ファイル300はまた、オペレーティングポイント情報340(「oinf」とも呼ばれる)ボックス340を含み得る。oinfボックス340は、オペレーティングポイントを構成するレイヤおよびサブレイヤ、オペレーティングポイント間の依存性(もしあれば)、オペレーティングポイントのプロファイル、レベル、およびティアパラメータ、ならびに他のそのようなオペレーティングポイント関連情報など、オペレーティングポイントについての情報を記録する。場合によっては、オペレーティングポイント(operating point)はオペレーションポイント(operation point)と呼ばれることもある。
【0080】
[0088]複数のレイヤ316a〜316cは、異なる品質、解像度、フレームレート、ビュー、深度、またはビデオに関する他の変形形態に関するデータを含み得る。たとえば、レイヤ1 316aは、720p解像度によるビデオを表し得る一方、レイヤ2 316bは、1080p解像度によるビデオを表し得る。レイヤは時間サブレイヤも含み得る。たとえば、レイヤ1 316aは、30フレーム毎秒(fps)、50fps、および60fpsの各々に対して1つの時間サブレイヤである、3つの時間サブレイヤを有し得る。
【0081】
[0089]L−HEVCは、
図3に示されるように、トラックが2つ以上のレイヤを有し得ることを規定する。代替または追加として、トラックはせいぜい1つのレイヤを含むことができる。
図4は、3つのトラック410a〜410cを含むファイル400の一例を示し、各トラック410a〜410cが1つのレイヤ(レイヤ1 416a、レイヤ2 416b、およびレイヤ3 416c)を含む。ファイル400は、
図2に示される同じ3つのレイヤ216a〜216cを有し得るが、
図4では、3つのレイヤ416a〜416cのすべてが1つのトラックに含まれる代わりに、各レイヤ416a〜416cが別個のトラック410a〜410cに含まれる。各トラック410a〜410cはトラックヘッダ412a〜412cを含むことができ、トラックヘッダ412a〜412cは、トラックのコンテンツについての何らかの情報を含み得る。この例では、各トラック210a〜210cはそれぞれせいぜい1つのレイヤを含むので、トラック210a〜210cのいずれも、トラックのコンテンツを表す「tcon」ボックスを必要としない。
【0082】
[0090]
図4に示されるファイル400はまた、オペレーティングポイント情報(「oinf」)ボックス440を含む。この例では、オペレーティングポイントごとに、oinfボックス440は、オペレーティングポイントに関するレイヤのリストにトラックIDを含め得る。
【0083】
[0091]様々な実装形態では、複数のレイヤを有するいくつかのトラックと、せいぜい1つだけのレイヤを有するいくつかのトラックとをファイルが含むように、
図3および
図4の例が組み合わせられ得る。
【0084】
[0092]
図5は、ファイル500の別の例を示す。ファイル500では、各トラック510a〜510cは1つのレイヤ516a〜516cを含む。この例では、各トラック510a〜510cはトラックヘッダ512a〜512cを含むことができ、トラックヘッダ512a〜512cは、トラックのコンテンツについての何らかの情報を含み得る。ファイル500は、
図5におけるファイル500のトラックヘッダ512a〜512cがレイヤID518a〜518cを含むことを除いて、
図4のファイル400と同様である。レイヤID518a〜518cは、各トラック510a〜510cに記憶されたそれぞれのレイヤ516a〜516cを識別し得る。レイヤID518a〜518cは、各トラック510a〜510cに含まれるレイヤ516a〜516cの識別情報を提供するので、この例では「oinf」ボックスは必要とされない。
【0085】
[0093]L−HEVCファイルフォーマットのための既存の設計は、L−HEVCビットストリームの1つまたは複数のレイヤをトラックが含むことを既存のトラック構造が許容し、エクストラクタおよびアグリゲータの使用がオプションで許容されるので、複雑であるトラック構造を含む。以下で説明される詳細な実施形態で説明されるように、アグリゲータは、NALユニットの不規則なパターンを、集約されたデータユニットの規則的なパターンへと変更することによって、NALユニットの効率的なスケーラブルグループ化を可能にするための構造を含み、エクストラクタは、メディアデータを含むトラック以外のトラックからのNALユニットの効率的な抽出を可能にするための構造を含む。そのような設計により、プレーヤは、トラック構造および動作モードの多くの異なる可能な変形形態に対処することが必要とされる。本開示では、トラック構造とプレーヤの動作モードとを単純化するための技法およびシステムが説明される。本開示で開示される技法および方法の概要が以下で与えられ、いくつかの方法の詳細な実装形態が後のセクションで与えられる。これらの技法および方法のうちのいくつかは単独で適用される場合があり、それらのうちのいくつかは組み合わせて適用される場合がある。
【0086】
[0094]様々な実装形態では、トラック構造を単純化するための技法およびシステムは、トラックに関するレイヤ情報を指定することを含むことができる。たとえば、せいぜい単一のレイヤまたは単一のレイヤのサブセットをそれぞれ含む1つまたは複数のビデオトラックを有する出力ファイルを生成することをエンコーダに求める制約が設けられ得る。1つまたは複数のビデオトラックがアグリゲータまたはエクストラクタの一方または両方を含まないことを求める別の制約が設けられ得る。いくつかの例では、エンコーダは、出力ファイルに識別子を割り当てることができる。たとえば、識別子は、サンプルエントリーの名前であり得る。識別子は、たとえば、出力ファイルが各トラックにせいぜい1つのレイヤまたは単一のレイヤのサブセットを有すること、および出力ファイルがアグリゲータまたはエクストラクタを含まないことをデコーダに示すことができる。サンプルエントリーの名前の他の例が本明細書で提供される。ファイルにおけるビデオトラックがせいぜい1つのレイヤまたは1つのレイヤのサブセットに制限される実装形態では、トラックコンテンツ情報(「tcon」)ボックスは必要とされなくてよく、省略され得る。場合によっては、ビデオトラックを含むファイルが、L−HEVCビットストリームの特定のレイヤに関するデータすべてが1つのトラックで搬送されることを示すインジケータを含み得る。
【0087】
[0095]様々な実装形態では、トラックをレイヤに関連付けるためにLHEVCDecoderConfigurationRecord変数(以下でさらに説明される)においてレイヤ識別子(ID)情報をシグナリングするための技法およびシステムが説明される。たとえば、
図5に示されるように、各トラックは、トラックに含まれるレイヤを表すレイヤIDを含むことができる。ファイルがデコーダ構成記録を含むときに、LHEVCDecoderConfigurationRecord変数が含まれ得る。デコーダ構成記録は、デコーダ構成情報を明示し得る。たとえば、デコーダ構成記録は、ファイルにおける各ビデオサンプルにおいて使用される長さフィールドのサイズを含むことができ、サイズが、サンプルに含まれるNALユニットの長さを示すためであり得る。構成記録はまた、パラメータセットを、いずれかがサンプルエントリーに記憶される場合に含むことができる。場合によっては、様々な実装形態は、オペレーティングポイント情報(oinf)ボックスにおける(以下で説明される)各オペレーティングポイントのレイヤのリストにトラックIDのシグナリングを追加し得る。たとえば、
図3の例示的なファイル300はoinfボックス340を含み、oinfボックス340は、ファイル300における利用可能なオペレーティングポイントのリストを提供し得る。
【0088】
[0096]トラック構造の単純化を使用して、(たとえば、メディアプレーヤの)ファイルパーサが単一のモードで機能し得る。トラック構造を単純化しない場合、ファイルパーサは、その他の方法で異なるトラック構造で考えられ得る異なる動作モードの各々をサポートすることを求められ得る。たとえば、ファイルパーサは最初に、L−HEVCビットストリームの(「sbas」トラック参照によって示される)ベーストラックを見つけることができる。次いでパーサは、「oinf」ボックスをパースすることができ、ファイルにおいて利用可能なオペレーティングポイントについての情報を取得するために。オペレーティングポイント情報が取得されると、パーサは、使用するべきオペレーティングポイントを決定することができ、オペレーティングポイント情報を使用して、選択されたオペレーティングポイントに関連付けられるレイヤをどのトラックが搬送するかを決定することができる。場合によっては、パーサはまた、選択されたオペレーティングポイントにどのトラックが必要とされるかを決定するために、(ベーストラックにあり得る)各「エンハンスメントレイヤ」トラックのサンプルエントリー記述におけるレイヤIDを使用し得る。パーサは、次いでトラックを取得することができ、復号時間に基づいてアクセスユニットを構築することができる。パーサは、これらのアクセスユニットを、復号のためにビデオデコーダに渡すことができる。
【0089】
[0097]オペレーションポイント(operation point)(またはオペレーティングポイント(operating point))は、ビットストリームとともに機能するために(たとえば、サブビットストリーム抽出を実行するために)使用されるパラメータを定義し、ターゲットレイヤのリスト(そのオペレーティングポイントのためのレイヤセット)とターゲット最上位時間レイヤとを含む。複数のオペレーティングポイントが所与のビットストリームに適用可能であり得る。オペレーティングポイントは、レイヤセット中のすべてのレイヤを含み得、またはレイヤセットのサブセットとして形成されるビットストリームであり得る。たとえば、ビットストリームのオペレーティングポイントは、レイヤ識別子のセットおよび時間識別子に関連付けられ得る。オペレーティングポイントに含まれるレイヤを識別するために、レイヤ識別子リストが使用され得る。レイヤ識別子リストは、パラメータセット(たとえば、ビデオパラメータセット(VPS)またはビットストリームに関連付けられる他のパラメータセット)に含まれ得る。レイヤ識別子リストは、(たとえば、シンタックス要素nuh_layer_idによって示される)レイヤ識別子(ID)値のリストを含み得る。場合によっては、レイヤID値は、非負整数を含むことができ、各レイヤは、各レイヤID値が特定のレイヤを識別するように、一意のレイヤID値に関連付けられ得る。時間サブセットを定義するために(たとえば、変数TemporalIdによって識別される)最上位時間IDが使用され得る。いくつかの実施形態では、レイヤ識別子リストおよびターゲット最上位時間IDが、オペレーティングポイントをビットストリームから抽出するための入力として使用され得る。たとえば、ネットワークアブストラクションレイヤ(NAL)ユニットが、オペレーティングポイントに関連付けられるレイヤ識別子のセットに含まれるレイヤ識別子を有し、NALユニットの時間識別子がオペレーティングポイントの時間識別子以下であるとき、NALユニットは、オペレーティングポイントに関連付けられる。ターゲット出力レイヤは、出力されるべきレイヤであり、出力レイヤセットは、ターゲット出力レイヤのセットに関連付けられるレイヤセットである。たとえば、出力レイヤセットは、指定されたレイヤセットのレイヤを含むレイヤのセットであり、ここでレイヤのセット中の1つまたは複数のレイヤが出力レイヤであるように示される。出力オペレーティングポイントが特定の出力レイヤセットに対応する。たとえば、出力オペレーティングポイントは、入力としての入力ビットストリーム、ターゲット最上位時間識別子(TemporalId)、およびターゲットレイヤ識別子リストを用いたサブビットストリーム抽出プロセスの動作によって入力ビットストリームから作り出され、出力レイヤのセットに関連付けられるビットストリームを含み得る。
【0090】
[0098]一例として、ビデオファイルは、ビデオが1080p解像度で再生され得ることをプレーヤに示すオペレーティングポイントを含み得る。したがって、ビデオファイルは、1080pで符号化されたビデオを含むレイヤを含むレイヤセットを含み得る。その場合、1080pのオペレーティングポイントは、ファイルにおけるどのトラックがこのレイヤセットにおけるそのレイヤを含むかを示し得る。別の例として、同じビデオファイルが、60fpsで720p解像度、または30fpsで720pを指定するオペレーティングポイントも含み得る。時間レイヤは、一般にサブレイヤとして扱われるので、ビデオファイルは、ビデオの720pバージョンのためのレイヤを含むレイヤセットを含むことができ、ここでレイヤが、60fpsサブレイヤと30fpsサブレイヤの両方を含む。ファイルはまた、2つのオペレーティングポイント、すなわち、第一に、60fpsサブレイヤで720pを示すオペレーティングポイントと、第二に、30fpsサブレイヤで720pを示すオペレーティングポイントと、を含み得る。
【0091】
[0099]また別の例として、スケーラブルHEVCビットストリームが、1つのレイヤが720pで符号化され、別のレイヤが1080pで符号化される、2つのレイヤを有し得る。1080pビットストリームは、1080pビットストリームを720opビットストリームに依存させて、720pビットストリームに基づいて予測することによって符号化されていることがある。この例では、720pビットストリームおよび1080pビットストリームの各々は、別個のトラックに含まれることになる。さらに、1080pオペレーティングポイントが、1080pビットストリームを含むトラックが必要とされることを示すことになる一方、このトラックがさらに、レイヤが720pレイヤに依存することを示すことになる。したがって、プレーヤは、720pレイヤを含むトラックをフェッチおよび復号することも指示されることになる。
【0092】
[0100]様々な実装形態では、L−HEVCファイルの「oinf」ボックスは、「oinf」ボックスを含んでいるL−HEVCファイルを処理するためのすべての利用可能なオペレーティングポイントを含むことができる。いくつかの実装形態では、L−HEVCトラックにおいてエクストラクタまたはアグリゲータが使用されることはない。たとえば、L−HEVCトラックは、エクストラクタおよび/またはアグリゲータを使用しないことを求められ得る。いくつかの実装形態では、「oinf」ボックスに記述される各オペレーティングポイントは、オペレーティングポイントに関して含まれるすべてのレイヤを明示的に記載する。いくつかの実装形態では、「oinf」ボックスにおけるレイヤ依存性シグナリングは、レイヤごとに依存性シグナリングが、そのレイヤに直接依存するリストレイヤを表すためのものとなるように、変更され得る。いくつかの代替的な場合では、新しいタイプのトラック参照または新しいトラック参照ボックスを含んでいるトラックに依存するトラックを示すために使用され得る、新しいタイプのトラック参照または新しいトラック参照ボックスが定義され得る。
【0093】
[0101]様々な実装形態では、SHVCおよびMV−HEVCのためのサンプルエントリーの名前が、名前に基づいてトラックスケーラビリティタイプを識別することが可能であるように区別され得る。いくつかの実装形態では、L−HEVCファイルを処理するために利用可能なオペレーティングポイントは、暗示的オペレーティングポイントおよび明示的オペレーティングポイントとして見なされ得る。明示的オペレーティングポイントは、「oinf」ボックスに記載されているオペレーティングポイントである。暗示的オペレーティングポイントは、「oinf」ボックスに記載されていないオペレーティングポイントである。エクストラクタおよび/またはアグリゲータが存在する各トラックは、暗示的オペレーティングポイントに関連付けられると見なされる。明示的オペレーティングポイントが使用されるときのトラックのためのサンプルエントリーの名前は、一般に、暗示的オペレーティングポイントが使用されるときのトラックのためのサンプルエントリーの名前とは異なる。トラックの名前に基づいて、トラックが暗示的オペレーティングポイントに関連付けられるかどうかを見分けることが可能である。いくつかの態様では、サンプルエントリーの名前の区分は、次の通りであり得る。(1)hvc1、hve1、shv1、she1、mhv1、mhe1は、明示的オペレーティングポイントの要素であるトラックに使用されるサンプルエントリーの名前の例であり、(2)hvc2、hve2、shv2、she2、mhv2、mhe2は、暗示的オペレーティングポイントの要素であるトラックに使用されるサンプルエントリーの名前の例である。
【0094】
[0102]様々な実装形態では、ビデオファイルが、暗示的オペレーティングポイントおよび明示的オペレーティングポイントが1つのファイルにおいて一緒に使用されないように生成され得る。たとえば、L−HEVCファイルにおけるすべてのオペレーティングポイントは、暗示的オペレーティングポイントまたは明示的オペレーティングポイントのいずれかである。
【0095】
[0103]様々な実装形態では、暗示的オペレーティングポイントを有するトラックの場合、以下の情報のうちの1つまたは複数が、トラックのサンプルエントリーにおいてシグナリングされ得る(すなわち、LHEVCDecoderConfigurationRecord)。(1)オペレーティングポイントに含まれるレイヤに関するプロファイル、ティア、およびレベル情報のリスト、(2)オペレーティングポイントのすべてのレイヤが出力されるべきか、それとも最上位レイヤのみが出力されるべきかを示すフラグ、ならびに(3)ビットレート、フレームレート、最小ピクチャサイズ、最大ピクチャサイズ、クロマフォーマット、ビット深度など、オペレーティングポイントに関連付けられる追加情報。
【0096】
[0104]代替的に、上記の情報は、「oinf」ボックスなどの別のボックスにおけるファイルにおいてシグナリングされ得る。
【0097】
[0105]様々な実装形態では、ファイルが(エクストラクタを使用した)明示的なアクセスユニット再構築を含むか、それとも暗示的再構築を含むかが、ファイルタイプまたは「ブランド(bland)」を使用して指定され得る。暗示的再構築ブランドは、各トラックがせいぜい1つのレイヤを含むようにファイルが生成されていることを示し得る。様々な実装形態では、ブランドがファイルにおいて指定され得る。たとえば、ブランドは、「FileTypeBox」と呼ばれるボックスにおける「compatible_brands」フィールドにおいて示され得る。
【0098】
[0106]一例では、「hvce」と呼ばれるブランドが、FileTypeBoxのcompatible_brandsにおけるブランドのリストに含まれ得る。この例では、「hvc2」、「hev2」、「lhv1」、および「lhe1」の各トラックは、有効なHEVCサブビットストリームを(生来的に、またはエクストラクタを通じて)含むことができ、アグリゲータを含むことができる。「hvce」ブランドのパーサは、エクストラクタとアグリゲータとを処理することができ、暗示的再構築を実行することを求められない。
【0099】
[0107]別の例では、「hvci」と呼ばれるブランドが、FileTypeBoxのcompatible_brandsにおけるブランドのリストに含まれ得る。この例では、エクストラクタまたはアグリゲータは、「hvc2」、「hev2」、「lhv1」、または「lhe1」のどのトラックにも存在しない。「hvci」ブランドのパーサは、「hvc2」、「hev2」、「lhv1」、および「lhe1」トラックの暗示的再構築を実行することができ、エクストラクタとアグリゲータとを処理することを求められない。この例では、タイプ「hvc1」、「hev1」、「hvc2」、「hev2」、「lhv1」、または「lhe1」トラックの各トラックは、せいぜい1つのレイヤを含み得る。
【0100】
[0108]
図6は、上記で説明された様々な実装形態による、ビデオデータを符号化するためのプロセス600の一例を示す。様々な実装形態では、プロセス600は、
図1に示されるビデオ符号化デバイス104など、コンピューティングデバイスまたは装置によって実行され得る。たとえば、コンピューティングデバイスまたは装置は、
図6のプロセス600のステップを実行するように構成された、エンコーダ、またはエンコーダのプロセッサ、マイクロプロセッサ、マイクロコンピュータもしくは他の構成要素を含み得る。いくつかの実装形態では、コンピューティングデバイスまたは装置は、ビデオデータをキャプチャするように構成されたカメラを含み得る。いくつかの実装形態では、ビデオデータをキャプチャするカメラまたは他のキャプチャデバイスは、コンピューティングデバイスとは別個のものであり、その場合、コンピューティングデバイスは、キャプチャされたビデオデータを受信する。コンピューティングデバイスは、ビデオデータを通信するように構成されたネットワークインターフェースをさらに含み得る。ネットワークインターフェースは、インターネットプロトコル(IP)ベースのデータを通信するように構成され得る。
【0101】
[0109]プロセス600は、論理フロー図として示され、その動作は、ハードウェア、コンピュータ命令、またはそれらの組合せにおいて実施され得る動作のシーケンスを表す。コンピュータ命令の文脈では、動作は、1つまたは複数のプロセッサによって実行されたときに、記載された動作を実行する、1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実行するか、または特定のデータ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が説明される順序は、限定的なものと解釈されることが意図されておらず、任意の数の説明される動作が、プロセスを実施するために任意の順序で、および/または並列に組み合わせられてよい。
【0102】
[0110]さらに、プロセス600は、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実行され得、まとめて1つもしくは複数のプロセッサ上で、ハードウェアによって、またはそれらの組合せで実行されるコード(たとえば、実行可能命令、1つもしくは複数のコンピュータプログラム、または1つもしくは複数のアプリケーション)として実施され得る。上述のように、コードは、コンピュータ可読または機械可読記憶媒体に、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で記憶され得る。コンピュータ可読または機械可読記憶媒体は非一時的であり得る。
【0103】
[0111]ステップ602において、プロセス600は、マルチレイヤビデオデータを処理することを含み得る。マルチレイヤビデオデータは複数のレイヤを含むことができ、各レイヤが、少なくとも1つのビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットと任意の関連する非VCL NALユニットとを含む少なくとも1つのピクチャユニットを備える。マルチレイヤビデオデータは、たとえば、720p解像度で符号化されたビデオを含むレイヤと、1080p解像度で符号化されたビデオを含む異なるレイヤとを含み得る。他の例では、マルチプレーヤビデオデータは、異なるフレームレート、深度、または品質で符号化されたビデオを含むレイヤを含み得る。
【0104】
[0112]ステップ604において、プロセス600は、フォーマットを使用してマルチレイヤビデオデータに関連付けられる出力ファイルを生成し得る。出力ファイルは、複数のトラックを含み得る。出力ファイルを生成することは、複数のトラックの各トラックがマルチレイヤビデオデータのせいぜい1つのレイヤを備えるという制約、および複数のトラックの各トラックがアグリゲータまたはエクストラクタの少なくとも一方を含まないという制約に従って出力ファイルを生成することを含み得る。以下でさらに説明されるように、アグリゲータは、NALユニットの不規則なパターンを集約されたデータユニットの規則的なパターンへと変更することによって、NALユニットのスケーラブルグループ化を可能にする構造を含む。同じく以下で説明されるように、エクストラクタは、メディアデータを含むトラック以外のトラックからのNALユニットの抽出を可能にする構造を含む。
【0105】
[0113]いくつかの実装形態では、プロセス600は、サンプルエントリーの名前を出力ファイルに関連付けることをさらに含み得る。サンプルエントリーの名前は、出力ファイルにおける各トラックがせいぜい1つのレイヤを含むことを示し得る。場合によっては、サンプルエントリーの名前はまた、トラックがアグリゲータもエクストラクタも含まないことを示し得る。いくつかの実装形態では、識別子はファイルタイプであり得、ファイルタイプは出力ファイルに含まれ得る。たとえば、ファイルタイプは、「FileTypeBox」と呼ばれるボックスで指定される「compatible_brands」と呼ばれるフィールドにおいて指定され得る。
【0106】
[0114]いくつかの実装形態では、プロセス600は、トラックコンテンツ情報(tcon)ボックスなしでファイルが生成されるという制約を含み得る。tconボックスは、ファイルにおける各トラックがせいぜいオンレイヤを含むときに必要ではないことがある。
【0107】
[0115]いくつかの実装形態では、プロセス600は、出力ファイルのためのオペレーティングポイント情報(oinf)ボックスを生成することをさらに含み得る。oinfボックスは、マルチレイヤビデオデータにおいて利用可能なオペレーティングポイントのリストを含み得る。各オペレーティングポイントは、1つまたは複数のレイヤに関連付けられ得、oinfボックスは、ファイルにおけるどのトラックが各オペレーティングポイントのためのレイヤを含むかを示し得る。
【0108】
[0116]いくつかの実装形態では、マルチレイヤビデオデータは、レイヤのサブセットを含むことができ、レイヤのサブセットが、1つまたは複数の時間サブレイヤを含む。マルチレイヤビデオデータは、ビデオデータが異なるフレーム毎秒で符号化されているときに時間サブレイヤを含み得る。これらの実装形態では、プロセス600は、そのような、各トラックがせいぜい1つのレイヤまたはレイヤの1つのサブセットを含むという制約に従って、出力ファイルを生成することを含み得る。
【0109】
[0117]
図7は、上記で説明された様々な実装形態による、フォーマットされているビデオデータを復号するためのプロセス700の一例を示す。様々な実装形態では、プロセス700は、
図1に示されるデコーダデバイス112など、コンピューティングデバイスまたは装置によって実行され得る。たとえば、コンピューティングデバイスまたは装置は、プロセス700のステップを実行するように構成された、デコーダ、プレーヤ、またはデコーダもしくはプレーヤのプロセッサ、マイクロプロセッサ、マイクロコンピュータもしくは他の構成要素を含み得る。
【0110】
[0118]プロセス700は、論理フロー図として示され、その動作は、ハードウェア、コンピュータ命令、またはそれらの組合せにおいて実施され得る動作のシーケンスを表す。コンピュータ命令の文脈では、動作は、1つまたは複数のプロセッサによって実行されたときに、記載された動作を実行する、1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実行するか、または特定のデータ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が説明される順序は、限定的なものと解釈されることが意図されておらず、任意の数の説明される動作が、プロセスを実施するために任意の順序で、および/または並列に組み合わせられてよい。
【0111】
[0119]さらに、プロセス700は、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実行され得、まとめて1つもしくは複数のプロセッサ上で、ハードウェアによって、またはそれらの組合せで実行されるコード(たとえば、実行可能命令、1つもしくは複数のコンピュータプログラム、または1つもしくは複数のアプリケーション)として実施され得る。上述のように、コードは、コンピュータ可読または機械可読記憶媒体に、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で記憶され得る。コンピュータ可読または機械可読記憶媒体は非一時的であり得る。
【0112】
[0120]ステップ702において、プロセス700は、マルチレイヤビデオデータに関連付けられる出力ファイルのサンプルエントリーの名前を処理し得る。マルチレイヤビデオデータは複数のレイヤを含むことができ、各レイヤが、少なくとも1つのビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットと任意の関連する非VCL NALユニットとを含む少なくとも1つのピクチャユニットを備える。出力ファイルは、複数のトラックを備え得る。
【0113】
[0121]ステップ704において、プロセス700は、出力ファイルのサンプルエントリーの名前に基づいて、出力ファイルの複数のトラックの各トラックが複数のレイヤのうちのせいぜい1つのレイヤを備えると決定し得る。プロセス700はさらに、複数のトラックの各々がアグリゲータまたはエクストラクタの少なくとも一方を含まないと決定し得る。上述のように、アグリゲータは、NALユニットの不規則なパターンを集約されたデータユニットの規則的なパターンへと変更することによって、NALユニットのスケーラブルグループ化を可能にする構造を含み、エクストラクタは、メディアデータを含むトラック以外のトラックからのNALユニットの抽出を可能にする構造を含む。
【0114】
[0122]いくつかの実装形態では、サンプルエントリーの名前は、出力ファイルに含まれるファイルタイプであり得る。たとえば、ファイルタイプは、「FileTypeBox」と呼ばれるボックスで指定される「compatible_brands」と呼ばれるフィールドにおいて指定され得る。
【0115】
[0123]いくつかの実装形態では、出力ファイルは、トラックコンテンツ情報(tcon)ボックスを含まなくてよい。これらの実装形態では、各トラックのコンテンツは、トラック自体において明示され得る。
【0116】
[0124]いくつかの実装形態では、出力ファイルは、各トラックのためのレイヤ識別子を含み得る。レイヤ識別子は、各トラックに含まれるレイヤを識別し得る。たとえば、レイヤ識別子は、720p解像度で符号化されたビデオデータを含むレイヤを特定のトラックが含むことを示し得る。
【0117】
[0125]いくつかの実装形態では、出力ファイルは、オペレーティングポイント情報(oinf)ボックスを含み得る。oinfボックスは、マルチレイヤビデオデータを含んだオペレーティングポイントのリストを含み得る。各オペレーティングポイントは、1つまたは複数のレイヤに関連付けられ得る。oinfボックスは、出力ファイルにおけるトラックのうちのどれが、各オペレーティングポイントに関連付けられるレイヤを含むかを示し得る。
【0118】
[0126]いくつかの実装形態では、マルチレイヤビデオデータは、レイヤのサブセットを含み得る。レイヤのサブセットは、1つまたは複数の時間サブレイヤ(たとえば、30fpsまたは60fpsの符号化)を含み得る。この実装形態では、出力ファイルにおけるトラックは、マルチレイヤビデオデータからのせいぜい1つのレイヤまたはレイヤの1つのサブセットを含み得る。
I.例示的な実施形態
[0127]上記で説明された様々な実装形態の例が、本セクションにおいて与えられる。これらの実装形態の文言では、文言の変更は、http://phenix.int−evry.fr/mpeg/doc_end_user/documents/111_Geneva/wg11/w15182−v2−w15182.zipで入手可能な「Information technology − Coding of audio−visual objects − Part 15:Carriage of network abstraction layer (NAL) unit structured video in the ISO base media file format」、ISO/IEC JTC 1/SC 29、 ISO/IEC FDIS 14496−15:2014(E)における文言に対する修正案を示す。具体的には、追加は下線付きの文言(
追加の例)で示され、削除は取消し線
【0120】
で示される。
A.第1の例示的な実施形態
[0128]本セクションは、上記で説明された実装形態に対応するための詳細な修正について説明する。
【0121】
[0129]9. SHVC/MV−HEVCエレメンタリストリームおよびサンプルの定義。
【0122】
[0130]9.1 序論
[0131]この項は、SHVCまたはMV−HEVCデータの記憶フォーマットを規定する。この項は、項8におけるHEVCの記憶フォーマットの定義を拡張する。HVCとMV−HEVCの両方は、同じ階層化設計を使用する。この項は、同じ階層化設計を使用するすべてのHEVC拡張に、総称名、階層化HEVC(L−HEVC)を使用する。
【0124】
[0142]AVCに適合するベースレイヤが任意のプレーンAVCファイルフォーマットに準拠するリーダーによって使用され得るように、AVCに適合する方式でL−HEVCビットストリームを記憶するための準備。
【0125】
[0143]L−HEVCビットストリームは、レイヤの集合であり、各レイヤが、ビジュアルプレゼンテーションを品質、解像度、フレームレート、ビュー、深度などの点でスケーリングするのを助ける。L−HEVCレイヤは、それらのレイヤ識別子(L−id)によって識別され、レイヤ識別子は、ベースレイヤを含みベースレイヤに関連付けられるレイヤのセットの中で一意でなければならず、ベースレイヤは、「sbas」トラック参照によってリンクされたトラックに含まれる。
【0126】
[0144]関連レイヤの集合が、レイヤセットとして一緒にグループ化される。レイヤは、1つまたは複数のレイヤセットの要素であり得る。レイヤに属するNALユニットは、それらの時間識別子(T−id)に基づいてさらに区分され得る。そのような各区分は、サブレイヤと呼ばれる。
【0127】
[0145]レイヤセットにおけるレイヤの1つ、いくつか、またはすべてが、出力のためにマークされ得る。出力レイヤセットは、出力レイヤが示されたレイヤセットである。出力レイヤセットは、いくつかの規定されたプロファイル、レベル、およびティアの制限に従う。両端を含めて0から選択された最大T−id値までのT−id値の範囲に関連付けられる出力レイヤセットは、オペレーティングポイントと呼ばれる。オペレーティングポイントは、サブビットストリーム抽出プロセスによって取得され得るL−HEVCビットストリームの一部分を表す。あらゆる有効なオペレーティングポイントが、他のオペレーティングポイントとは無関係に復号され得る。
【0129】
[0153]9.2 L−HEVC記憶の概要
【0131】
[0155]9.3 L−HEVCトラック構造
[0156]L−HEVCストリームは、L−HEVCビデオエレメンタリストリームの以下の定義とともに、8.2に従って記憶される。
【0133】
[0158]9.4 プレーンHEVCファイルフォーマットの使用
[0159]L−HEVCファイルフォーマットは、項8において定義されるプレーンHEVCファイルフォーマットの拡張である。L−HEVCのベースレイヤは、HEVC仕様を使用してコーディングされる場合、この規格において規定されるようにHEVCファイルフォーマットに適合するべきである。
【0134】
[0160]9.5 プレーンAVCファイルフォーマットの使用
[0161]L−HEVCファイルフォーマットは、AVCエンコーダを使用してベースレイヤがコーディングされる、ハイブリッドコーデック構成をサポートする。L−HEVCのベースレイヤは、AVC仕様を使用してコーディングされる場合、この規格において規定されるようにAVCファイルフォーマットに適合するべきである。
【0135】
[0162]9.6 サンプルおよび構成の定義
[0163]9.6.1 序論
[0164]L−HEVCサンプルは、ピクチャユニットの集合であり、ピクチャユニットは、L−HEVCアクセスユニットにおけるコーディングされたピクチャのVCL NALユニットおよび関連する非VCL NALユニットを含む。アクセスユニットは、ISO/IEC 23008−2において定義されている。トラックのサンプルは、トラックに含まれるレイヤのみのピクチャユニットを含む。
【0136】
[0165]1.6.2 標準的な順序および制約
[0166]項8.3.2における要件に加えて、以下の制約がL−HEVCデータに適用される。
【0137】
[0167]・VCL NALユニット:1つのアクセスユニット内の、トラックに含まれるレイヤに属するすべてのVCL NALユニットは、アクセスユニットによって表されるピクチャの合成時間と同じ合成時間を有するサンプルに含まれるべきである。エクストラクタの解決の後、L−HEVCサンプルは、少なくとも1つのVCL NALユニットを含むべきである。
【0139】
[0169]・AVCコーディングされたベースレイヤトラックの搬送:AVCコーディングされたベースレイヤは、常にそれ自体のトラックで搬送されるべきであり、この国際規格において規定されるようにAVCサンプルで構成されるべきである。
【0140】
[0170]9.6.3 デコーダ構成記録
[0171]項8.3.3.1において定義されるデコーダ構成記録が、L−HEVCストリームまたはHEVCストリームのいずれかとして解釈され得るストリームのために使用されるとき、HEVCデコーダ構成記録は、HEVCに適合するベースレイヤに適用されるべきであり、HEVCベースレイヤを復号するために必要とされるパラメータセットのみを含むべきである。
【0141】
[0172]LHEVCDecoderConfigurationRecordは、いくつかの追加のフィールドを除いて、HEVCDecoderConfigurationRecordと構造的に同様である。シンタックスは次の通りである。
【0143】
[0173]LHEVCDecoderConfigurationRecordおよびHEVCDecoderConfigurationRecordに共通のフィールドのセマンティクスは、変わっていない。LHEVCDecoderConfigurationRecordの追加のフィールドは、以下のセマンティクスを有する。
【0144】
[0174]complete_representation:このフラグが設定されたとき、それは、符号化された情報の完全なセットの一部を形成するL−HEVCビットストリームの部分をこのトラックが含むことを示す。このフラグが設定されていないトラックは、最初に符号化されたデータを一切失うことなく除去され得る。
【0145】
[0175]注意 トラックは、1より多い出力レイヤセットを表し得る。
【0146】
[0176]注意 トラックに含まれる補助ピクチャレイヤごとに、nalUnit内に、補助ピクチャレイヤの特性を明示する、深度補助ピクチャレイヤに関する深度表現情報SEIメッセージなど、宣言的SEIメッセージを含むSEI NALユニットを含めることが推奨される。
【0147】
[0177]
trackLayerId:このトラックに含まれるVCL NALUのnuh_layer_idの値を指定する。
【0148】
[0178]9.7 ISOベースメディアファイルフォーマットからの導出
[0179]9.7.1 L−HEVCトラック構造
【0150】
[0181]符号化された情報の完全なセットを全体としてみたとき含む、1つまたは複数のトラックの最小限のセットがある。すべてのこれらのトラックは、すべてのそれらのサンプルエントリーにおいて設定された、「complete_representation」というフラグを有するべきである。完全な符号化された情報を形成するトラックのこのグループは、「完全なサブセット」と呼ばれる。完全な符号化された情報は、「完全なサブセット」に含まれるトラックが保持されるときは保持されてよく、すべての他のトラックは、完全なサブセットのサブセット、コピー、または並べ替えを表すべきである。
【0151】
[0182]最低のオペレーティングポイントを、0に等しいnuh_layer_idのみと0に等しいTemporalIdのみとを有するNALユニットを含むすべてのオペレーティングポイントの1つとする。所与のストリームに関して、最低のオペレーティングポイントを含むちょうど1つのトラックが、「スケーラブルベーストラック」として指名されるべきである。
【0152】
[0183]HEVCコーディングされていないベースレイヤを有するL−HEVCビットストリームの場合、ベースレイヤは、最低のオペレーティングポイントであり、常にそれ自体の1つのトラックを割り当てられ、ベーストラックとして指名される。同じストリームの部分であるすべての他のトラックが、タイプ「sbas」のトラック参照によって、それらのベーストラックにリンクされるべきである。
【0153】
[0184]同じスケーラブルベーストラックを共有するすべてのトラックが、そのスケーラブルベーストラックと同じ時間軸を共有しなければならない。
【0154】
[0185]トラックによって表されるレイヤが、レイヤ間予測参照のために別のトラックによって表される別のレイヤを使用する場合、タイプ「scal」のトラック参照が、レイヤ間予測のためのソーストラックを参照するトラックに含まれるべきである。
【0155】
[0186]注意 L−HEVCビットストリームの部分を含むトラックがファイルから除去される場合、除去されるトラックへの「scal」および「sbas」トラック参照を含むトラックも除去されるべきである。
【0156】
[0187]AVCを使用してベースレイヤがコーディングされるとき、ベースレイヤトラックは、別個のパラメータセットトラックを使用せずに項5に従って構築されるべきである。
【0158】
[0194]いくつかのトラックがアクセスユニットのためのデータを含む場合、トラック中のそれぞれのサンプルの整列が、サンプル復号時間に基づいて、すなわち、編集リストを考慮することなく時間対サンプルのテーブルのみを使用して、実行される。
【0159】
[0195]アクセスユニットは、ISO/IEC 23008−2に適合した順序でNALユニットを並べることによって、必要とされるトラックの中のそれぞれのサンプルから再構築される。以下の順序は、サンプルから準拠するアクセスユニットを構築するための手順の説明的概略を提供する。
【0160】
[0196]・存在するとき、ビットストリーム終了NALユニットを除く、0に等しいnuh_layer_idを有するVCL NALユニットを伴う(ISO/IEC 23008−2において規定されるような)ピクチャユニット。
【0161】
[0197]・nuh_layer_id値の昇順による任意のそれぞれのサンプルからの(ISO/IEC 23008−2において規定されるような)ピクチャユニット。
【0162】
[0198]・存在するとき、ビットストリーム終了NALユニット。
【0163】
[0199]9.7.3 L−HEVCビデオストリームの定義
[0200]9.7.3.1 サンプルエントリーの名前およびフォーマット
[0201]9.7.3.1.1 定義
【0165】
[0206]サンプルエントリーの名前が「lhv1」であるとき、array_completenessのデフォルトの必須の値は、すべてのタイプのパラメータセットのアレイに対しては1であり、すべての他のアレイに対しては0である。サンプルエントリーの名前が「lhe1」であるとき、array_completenessのデフォルトの値はすべてのアレイに対して0である。
【0166】
[0207]サンプルエントリーの名前が「lhe1」であるとき、次のことが当てはまる。
【0167】
[0208]・ISO/IEC 23008−2において定義されるような少なくとも1つのIRAPピクチャをサンプルが含む場合、IRAPピクチャと、サンプルにおけるIRAPピクチャを含む各レイヤにおける復号順序による後続ピクチャとを復号するために必要とされる各パラメータセットが、このサンプルに存在するレイヤを搬送するトラックのサンプルエントリーの中またはそのサンプル自体(場合によってはエクストラクタを使用することによる)の中のいずれかに含まれるべきである。
【0168】
[0209]・それ以外の場合(サンプルがIRAPピクチャを含まない)、そのサンプルを復号するために必要とされる各パラメータセットが、このサンプルに存在するレイヤを搬送するトラックのサンプルエントリーの中、または両端を含めて少なくとも1つのIRAPピクチャを含む以前のサンプルからそのサンプル自体(場合によってはエクストラクタを使用することによる)までのサンプルのいずれかの中のいずれかに含まれるべきである。
【0170】
[0211]注意 ファイルを作成するとき、VPSベースにおけるPTL(すなわち、VPSにおける第1のPTL構造)が、HEVCDecoderConfigurationRecordに含まれるべきベースレイヤのPTLよりも「大きい」かもしれないことに注意すべきである。むしろ、VPS拡張における第1のPTL構造におけるPTL情報は、HEVCDecoderConfigurationRecordに含まれるべきものである。
【0171】
[0212]トラックのサンプルがHEVCベースレイヤを含まない場合、サンプルエントリータイプ「lhv1」または「lhe1」が使用されるべきであり、サンプルエントリーは、以下で定義されるようなL−HEVC構成ボックスを含むべきである。これは、この国際規格において定義されるような、LHEVCDecoderConfigurationRecordを含む。
【0172】
[0213]同じベーストラックを共有するL−HEVCトラックおよびHEVCトラックの任意の所与のサンプルエントリーにおけるL−HEVC構成およびHEVC構成でのlengthSizeMinusOneフィールドは、同じ値を有するべきである。
【0174】
[0217]次の表は、サンプルエントリーのすべての可能性のある使用法と、構成と、L−HEVCツールとを、ビデオトラックについて示す。
【0176】
[0218]9.7.3.1.2 シンタックス
【0178】
[0219]9.7.3.1.3 セマンティクス
[0220]サンプルエントリーが適用されるストリームが0よりも大きいnuh_layer_idを有するNALユニットを含むとき、ベースクラスVisualSampleEntryの中のCompressornameは、推奨されている、「\014LHEVC Coding」という値とともに使用されるコンプレッサの名前を示す(\014は12であり、これは文字列「LHEVC Coding」のバイト単位の長さである)。
【0179】
[0221]9.7.4 L−HEVCの視覚的な幅および高さ
【0181】
[0223]9.7.5 シンクサンプル
[0224]L−HEVCサンプルは、アクセスユニット中のベースレイヤピクチャがISO/IEC 23008−2において定義されるようなIRAPピクチャである場合、シンクサンプルとして見なされる。シンクサンプルはシンクサンプルテーブルによって記録され、ストリームアクセスポイント「sap」サンプルグループによって追加で記録され得る。
【0182】
[0225]9.7.6 ストリームアクセスポイントサンプルグループ
[0226]「シンク」ボックスは、L−HEVCメディアストリームにおいて可能なたった1つのタイプのランダムアクセスの指示を与える。可能な他のタイプのランダムアクセスが多くある。ISO/IEC 14496−12のAnnex Iは、異なるタイプのランダムアクセスについての重要な説明をしている。ランダムアクセスが可能であるビットストリームにおけるロケーションは、ストリームアクセスポイント(SAP)と呼ばれる。Annex Iは、異なる特性を有する6つのタイプのSAPを規定している。すべての異なるタイプのSAPの情報を提供するために、ISO/IEC 14496−12において規定されるストリームアクセスサンプルグループ「sap」が使用される。
【0183】
[0227]L−HEVCの文脈で使用されるときの「sap」サンプルグループ化は、layer_id_method_idc値を1に設定するべきである。
【0184】
[0228]フィールドtarget_layersは、長さが28ビットである。フィールドにおける各ビットは、トラックにおいて搬送されるレイヤを表す。このフィールドは、長さがたった28ビットであるので、トラックにおけるSAPポイントの指示は、最大で28個のレイヤに制限される。LSBから始まるこのフィールドの各ビットは、レイヤIDの昇順でトラックコンテンツ情報ボックス(「tcon」)においてシグナリングされるレイヤIDのリストにマッピングされるべきである。
【0185】
[0229]たとえば、トラックが、レイヤID4、10、および29を有するレイヤを搬送する場合、レイヤID4は最下位ビットにマッピングされ、レイヤID10は2番目の下位ビットにマッピングされ、レイヤID29は3番目の下位ビットにマッピングする。ビットにおける1つの値は、サンプルにおいて、マッピングされたレイヤが、何らかのタイプのSAPであるピクチャを有することをシグナリングする。前述の例では、以下の表がレイヤ固有のSAP情報の一例を与える。
【0187】
[0230]タイプは、SampleToGroupボックスにおけるサンプルのgroup_description_indexに従うことによって解決される。
【0188】
[0231]9.7.7 ランダムアクセス復元ポイントおよびランダムアクセスポイントについてのサンプルグループ
【0190】
[0235]9.7.8 独立の使い捨て(disposable)サンプルボックス
[0236]HEVCとL−HEVCの両方に適合するトラックにおいて独立の使い捨てサンプルボックスが使用される場合、L−HEVCデータのどの有効なサブセット(場合によってはHEVCデータのみ)が使用されても、このボックスによって提供される情報が真であることに、注意が払われなければならない。情報が変化する場合、「未知」の値(フィールドsample−depends−on、sample−is−depended−on、およびsample−has−redundancyの値0)が必要とされ得る。
【0191】
[0237]9.7.9 L−HEVCのためのサブサンプルの定義
[0238]この項は、8.4.8におけるHEVCのサブサンプルの定義を拡張する。
【0192】
[0239]L−HEVCストリームにおけるサブサンプル情報ボックス(ISO/IEC 14496−12の項8.7.7)の使用のために、以下で規定されるように、サブサンプル情報ボックスのフラグの値に基づいて、サブサンプルが定義される。このボックスの存在は任意選択であるが、L−HEVCデータを含むトラックにおいて存在する場合、ここで定義されるセマンティクスを有するべきである。
【0194】
[0244]subsample_priorityフィールドおよび廃棄可能フィールドは、8.4.8において規定されるように設定されるべきである。
【0195】
[0245]NALユニットの最初のバイトがサブサンプルに含まれるとき、先行する長さフィールドも同じサブサンプルに含まれなければならない。
【0197】
[0246]SubLayerRefNalUnitFlag、RapNalUnitFlag、VclNalUnitFlag、vcl_idc、log2_min_luma_ctb、ctb_x、およびctb_yのセマンティクスは、8.4.8の場合と同じである。
【0198】
[0247] DiscardableFlagは、サブサンプル中のVCL NALユニットのdiscardable_flagの値を示す。サブサンプル中のすべてのVCL NALユニットは、同じdiscardable_flagの値を有するべきである。
【0199】
[0248]注意 これは、サブサンプル情報ボックスにおける廃棄可能フィールドと同じ定義ではない。
【0200】
[0249] NoInterLayerPredFlagは、サブサンプル中のVCL NALユニットのinter_layer_pred_enabled_flagの値を示す。サブサンプル中のすべてのVCL NALユニットは、同じ値のinter_layer_pred_enabled_flagを有するべきである。
【0202】
[0253]9.7.10 非出力サンプルの処理
[0254]8.4.9において規定されるものは、複数のレイヤが関わるときに常に適用可能であるとは限らない。8.4.9において規定されるものに従うことができない場合、サンプルは廃棄され、以前のサンプルの持続時間が拡張されて、後続サンプルが正しい合成タイミングを有するようになる。
【0203】
[0255]9.7.11 ハイブリッドコーデックスケーラビリティの指示
[0256]マルチレイヤHEVCビットストリームが外部のベースレイヤを使用するとき(すなわち、HEVCビットストリームのアクティブなVPSが、0に等しいvps_base_layer_internal_flagと1に等しいvps_base_layer_available_flagとを有するとき)、「lhvc」に等しいaux_info_typeと0に等しいaux_info_type_parameterとを有するサンプル補助情報が、レイヤ間予測のために参照として外部のベースレイヤを使用し得るトラックに対して提供されるべきである。サンプル補助情報の記憶は、ISO/IEC 14496−12に適合するべきである。
【0204】
[0257]「lhvc」に等しいaux_info_typeを有するサンプル補助情報のシンタックスは、次の通りである。
【0206】
[0258]「lhvc」に等しいaux_info_typeを有するサンプル補助情報のセマンティクスは、以下で規定される。セマンティクスでは、現在サンプルという用語は、このサンプル補助情報が関連付けられ、サンプルの復号のために提供されるべき、サンプルを指す。
【0207】
[0259] 0に等しいbl_pic_used_flagは、復号されたベースレイヤピクチャが現在サンプルの復号に使用されることはないことを規定する。1に等しいbl_pic_used_flagは、復号されたベースレイヤピクチャが現在サンプルの復号に使用され得ることを規定する。
【0208】
[0260] bl_irap_pic_flagは、bl_pic_used_flagが1に等しいときに、関連する復号されたピクチャに関して、その復号されたピクチャが現在サンプルの復号のために復号されたベースレイヤピクチャとして提供されるときの、BlIrapPicFlag変数の値を指定する。
【0209】
[0261] bl_irap_nal_unit_typeは、bl_pic_used_flagが1に等しく、bl_irap_pic_flagが1に等しいときに、関連する復号されたピクチャに関して、その復号されたピクチャが現在サンプルの復号のために復号されたベースレイヤピクチャとして提供されるときの、nal_unit_typeシンタックス要素の値を指定する。
【0210】
[0262] sample_offsetは、bl_pic_used_flagが1に等しいときに、リンクされたトラックにおける関連サンプルの相対インデックスを与える。リンクされたトラックにおける関連サンプルの復号から生じる復号されたピクチャは、現在サンプルの復号のために提供されるべき関連する復号されたピクチャである。0に等しいsample_offsetは、関連サンプルが、現在サンプルの復号時間と比較して同じ復号時間または最も近い先行する復号時間を有することを規定し、1に等しいsample_offsetは、関連サンプルが、0に等しいsample_offsetの場合に導出された関連サンプルに対して次のサンプルであることを規定し、−1に等しいsample_offsetは、関連サンプルが、0に等しいsample_offsetの場合に導出された関連サンプルに対して前のサンプルであることを規定し、以下同様である。
【0211】
[0263]9.8 L−HEVC固有の情報ボックス
[0264]以下のボックスは、L−HEVCエレメンタリストリームの複数のレイヤに関係する情報を明示する。L−HEVCエレメンタリストリームには、出力のために選択され得る複数のレイヤがあり得るので、これらのボックスで搬送される情報は、任意の単一のトラックに固有のものではない。
【0212】
[0265]9.8.1 オペレーティングポイント情報ボックス(「oinf」)
[0266]9.8.1.1 定義
[0267]ボックスタイプ: 「oinf」
[0268]コンテナ: 「oref」タイプ参照トラックのMediaInformationBox(「minf」)
[0269]必須性: L−HEVCビットストリームのたった1つのトラックにおいて必須
[0270]量: 1つ
[0271]オペレーティングポイント情報ボックス(「oinf」)を使用することによって、異なるオペレーティングポイントおよびそれらの構造に関して適用例が知らされる。各オペレーティングポイントは、出力レイヤセット、最大T−ID値、ならびにプロファイル、レベルおよびティアのシグナリングに関係する。これらの情報はすべて、「oinf」ボックスによって捕捉される。これらの情報以外に、このボックスはまた、レイヤ間の依存性情報と、L−HEVCビットストリームにおいてコーディングされるスケーラビリティのタイプと、所与のスケーラビリティタイプの場合の任意の特定のレイヤに関係する次元識別子とを提供する。
【0213】
[0272]共通の「sbas」トラック参照を有するL−HEVCトラックまたはHEVCトラックのセットの場合、このセットの中に、「oinf」ボックスを搬送するたった1つのトラックがあるべきである。共通の「sbas」参照トラックを有するすべてのトラックは、「oinf」ボックスを搬送するトラックへのタイプ「oref」のトラック参照を有するべきである。
【0214】
[0273]このボックスが存在するとき、トラックにはたった1つのVPSがあるべきである。
【0215】
[0274]9.8.1.2 シンタックス
【0218】
[0275]9.8.1.3 セマンティクス
[0276] scalability_mask:このフィールドは、このボックスが関連付けられるベーストラック(すなわち、このトラックまたは「sbas」参照によって指されるトラックのいずれか)に関係するすべてのレイヤによって表されるスケーラビリティタイプを示す。scalability_maskフィールドにおける各ビットは、ISO/IEC 23008−2において定義されるようなVPS拡張シンタックスのscalability_mask_flagにおいてコーディングされるスケーラビリティ次元を示す。ビット位置における1は、スケーラビリティ次元が存在することを示す。
【0219】
[0277] num_profile_tier_level:以下のプロファイル、ティア、およびレベルの組合せならびに関連するフィールドの数を与える。
【0220】
[0278] general_profile_space、general_tier_flag、general_profile_idc、general_profile_compatibility_flags、general_constraint_indicator_flags、およびgeneral_level_idcがISO/IEC 23008−2において定義されている。
【0221】
[0279] num_operating_points:情報が後にくるオペレーティングポイントの数を与える。
【0222】
[0280] output_layer_set_idxは、オペレーティングポイントを定義する出力レイヤセットのインデックスである。output_layer_set_idxとlayer_id値との間のマッピングは、インデックスoutput_layer_set_idxを有する出力レイヤセットに関してVPSによって規定されるものと同じであるべきである。
【0223】
[0281] max_temporal_id:このオペレーティングポイントのNALユニットの最大TemporalIdを与える。
【0224】
[0282] layer_count:このフィールドは、このオペレーティングポイントの、ISO/IEC 23008−2において定義されるような必要なレイヤの数を示す。
【0225】
[0283] ptl_idx:layer_idに等しい識別子を有するレイヤに関する記載されたプロファイル、レベル、およびティアのフラグの1に基づくインデックスをシグナリングする。あるレイヤに関してptl_idxの値がゼロに等しいとき、そのレイヤは、シグナリングされるプロファイル、レベル、およびティアを有しないと仮定されるものとし、そのレイヤは、出力レイヤまたはオペレーティングポイントの任意の出力レイヤの直接もしくは間接参照レイヤであるレイヤではないものとする。
【0226】
[0284] layer_id:オペレーティングポイントのレイヤに関するレイヤID値を提供する。
【0227】
[0285] is_outputlayer:レイヤが出力レイヤであるかどうかを示すフラグ。1は、出力レイヤを示す。
【0228】
[0286] is_alternate_outputlayer:このフラグはセットされたときに、このレイヤがこのオペレーティングポイントに関する代替出力レイヤとして見なされ得ることを示す。このフラグは、オペレーティングポイントにおける1つのレイヤがそれのis_outputlayerフラグセットを有する場合にのみ、1に設定される。
【0229】
[0287] minPicWidthは、オペレーティングポイントのストリームに関するISO/IEC 23008−2におけるpic_width_in_luma_samplesパラメータによって定義されるようなルーマ幅インジケータの最小値を指定する。
【0230】
[0288] minPicHeightは、オペレーティングポイントのストリームに関するISO/IEC 23008−2におけるpic_height_in_luma_samplesパラメータによって定義されるようなルーマ高さインジケータの最小値を指定する。
【0231】
[0289] maxPicWidthは、オペレーティングポイントのストリームに関するISO/IEC 23008−2におけるpic_width_in_luma_samplesパラメータによって定義されるようなルーマ幅インジケータの最大値を指定する。
【0232】
[0290] maxPicHeightは、オペレーティングポイントのストリームに関するISO/IEC 23008−2におけるpic_height_in_luma_samplesパラメータによって定義されるようなルーマ高さインジケータの最大値を指定する。
【0233】
[0291] maxChromaFormatは、オペレーティングポイントのストリームに関するISO/IEC 23008−2におけるchroma_format_idcパラメータによって定義されるようなchroma_formatインジケータの最大値を指定する。
【0234】
[0292] maxBitDepthMinus8は、オペレーティングポイントのストリームに関するISO/IEC 23008−2における、それぞれbit_depth_luma_minus8パラメータおよびbit_depth_chroma_minus8パラメータによって定義されるようなルーマビット深度インジケータおよびクロムビット深度インジケータの最大値を指定する。
【0235】
[0293] 0に等しいframe_rate_info_flagは、オペレーティングポイントに関してフレームレート情報が存在しないことを示す。値1は、オペレーティングポイントに関してフレームレート情報が存在することを示す。
【0236】
[0294] 0に等しいbit_rate_info_flagは、オペレーティングポイントに関してビットレート情報が存在しないことを示す。値1は、オペレーティングポイントに関してビットレート情報が存在することを示す。
【0237】
[0295] avgFrameRateは、オペレーティングポイントに対して、平均のフレームレートをフレーム/(256秒)の単位で与える。値0は、指定されていない平均フレームレートを示す。
【0238】
[0296] 1に等しいconstantFrameRateは、オペレーティングポイントのストリームのフレームレートが一定であることを示す。値2は、オペレーティングポイントのストリーム中の各時間レイヤの表現のフレームレートが一定であることを示す。値0は、オペレーティングポイントのストリームのフレームレートが一定であることも一定ではないこともあることを示す。
【0239】
[0297] maxBitRateは、1秒の任意のウィンドウに対する、オペレーティングポイントのストリームのビット/秒での最大ビットレートを与える。
【0240】
[0298] avgBitRateは、オペレーティングポイントのストリームのビット/秒での平均ビットレートを与える。
【0241】
[0299] max_layer_count:この関連するベーストラックに関係するオペレーティングポイントのすべてにおけるすべての一意のレイヤのカウント。
【0243】
[0304] dimension_identifier:ISO/IEC 23008−2において定義されるようなVPS拡張シンタックスにおいて指定されるようなdimension_idフィールドの値に設定する。
【0245】
B.第2の例示的な実施形態
[0318]本セクションは、上記で説明された様々な実装形態に対応するための修正について説明する。
【0246】
[0319]9. SHVC/MV−HEVCエレメンタリストリームおよびサンプルの定義。
【0247】
[0320]9.1 序論
[0321]この項は、SHVCまたはMV−HEVCデータの記憶フォーマットを規定する。この項は、項8におけるHEVCの記憶フォーマットの定義を拡張する。HVCとMV−HEVCの両方は、同じ階層化設計を使用する。この項は、同じ階層化設計を使用するすべてのHEVC拡張に、総称名、階層化HEVC(L−HEVC)を使用する。
【0248】
[0322]この項およびAnnex A〜Annex Dにおいて定義されるような、L−HEVCコンテンツの記憶のためのファイルフォーマットは、ISOベースメディアファイルフォーマットおよびプレーンHEVCファイルフォーマット(すなわち、項8において規定されるファイルフォーマット)の既存の能力を使用する。加えて、L−HEVC固有の特徴をサポートするために、とりわけ以下の構造または拡張が使用される。
【0249】
[0323]a)アグリゲータ:
[0324]NALユニットの不規則なパターンを集約されたデータユニットの規則的なパターンへと変更することによって、NALユニットの効率的なスケーラブルグループ化を可能にするための構造。
【0250】
[0325]b)注意:AVC/SVC/MVCのためのアグリゲータと比較して、L−HEVCアグリゲータにおけるNALユニットヘッダシンタックス要素のシンタックスおよびセマンティクスは修正されており、アグリゲータの範囲は制限されている。
【0251】
[0326]c)エクストラクタ:
[0327]メディアデータを含むトラック以外のトラックからのNALユニットの効率的な抽出を可能にするための構造。
【0252】
[0328]注意:AVC/SVC/MVCのためのエクストラクタと比較して、L−HEVCエクストラクタのNALユニットヘッダのシンタックスおよびセマンティクスは修正されている。
【0253】
[0329]d)HEVC適合性:
[0330]HEVCに適合するベースレイヤが任意のプレーンHEVCファイルフォーマットに準拠するリーダーによって使用され得るように、HEVCに適合する方式でL−HEVCビットストリームを記憶するための準備。
【0254】
[0331]e)AVC適合性
[0332]AVCに適合するベースレイヤが任意のプレーンAVCファイルフォーマットに準拠するリーダーによって使用され得るように、AVCに適合する方式でL−HEVCビットストリームを記憶するための準備。
【0255】
[0333]L−HEVCビットストリームは、レイヤの集合であり、各レイヤが、ビジュアルプレゼンテーションを品質、解像度、フレームレート、ビュー、深度などの点でスケーリングするのを助ける。L−HEVCレイヤは、それらのレイヤ識別子(L−id)によって識別され、レイヤ識別子は、ベースレイヤを含みベースレイヤに関連付けられるレイヤのセットの中で一意でなければならず、ベースレイヤは、「sbas」トラック参照によってリンクされたトラックに含まれる。
【0256】
[0334]関連レイヤの集合が、レイヤセットとして一緒にグループ化される。レイヤは、1つまたは複数のレイヤセットの要素であり得る。レイヤに属するNALユニットは、それらの時間識別子(T−id)に基づいてさらに区分され得る。そのような各区分は、サブレイヤと呼ばれる。
【0257】
[0335]レイヤセットにおけるレイヤの1つ、いくつか、またはすべてが、出力のためにマークされ得る。出力レイヤセットは、出力レイヤが示されたレイヤセットである。出力レイヤセットは、いくつかの規定されたプロファイル、レベル、およびティアの制限に従う。両端を含めて0から選択された最大T−id値までのT−id値の範囲に関連付けられる出力レイヤセットは、オペレーティングポイントと呼ばれる。オペレーティングポイントは、サブビットストリーム抽出プロセスによって取得され得るL−HEVCビットストリームの一部分を表す。あらゆる有効なオペレーティングポイントが、他のオペレーティングポイントとは無関係に復号され得る。
【0258】
[0336]L−HEVCのサポートは、いくつかのツールを含み、それらがどのように使用され得るかの様々な「モデル」がある。具体的には、L−HEVCストリームは、いくつかの方法でトラックに配置されてよく、以下がそれらの方法の一部である。
【0260】
[0343]9.2 L−HEVC記憶の概要
【0262】
[0345]9.3 L−HEVCトラック構造
[0346]L−HEVCストリームは、L−HEVCビデオエレメンタリストリームの以下の定義とともに、8.2に従って記憶される。
【0264】
[0348]9.4 プレーンHEVCファイルフォーマットの使用
[0349]L−HEVCファイルフォーマットは、項8において定義されるプレーンHEVCファイルフォーマットの拡張である。L−HEVCのベースレイヤは、HEVC仕様を使用してコーディングされる場合、この規格において規定されるようにHEVCファイルフォーマットに適合するべきである。
【0265】
[0350]9.5 プレーンAVCファイルフォーマットの使用
[0351]L−HEVCファイルフォーマットは、AVCエンコーダを使用してベースレイヤがコーディングされる、ハイブリッドコーデック構成をサポートする。L−HEVCのベースレイヤは、AVC仕様を使用してコーディングされる場合、この規格において規定されるようにAVCファイルフォーマットに適合するべきである。
【0266】
[0352]9.6 サンプルおよび構成の定義
[0353]9.6.1 序論
[0354]L−HEVCサンプルは、ピクチャユニットの集合であり、ピクチャユニットは、L−HEVCアクセスユニットにおけるコーディングされたピクチャのVCL NALユニットおよび関連する非VCL NALユニットを含む。アクセスユニットは、ISO/IEC 23008−2において定義されている。トラックのサンプルは、トラックに含まれるレイヤのみのピクチャユニットを含む。
【0267】
[0355]9.6.2 標準的な順序および制約
[0356]項8.3.2における要件に加えて、以下の制約がL−HEVCデータに適用される。
【0268】
[0357]・VCL NALユニット:1つのアクセスユニット内の、トラックに含まれるレイヤに属するすべてのVCL NALユニットは、アクセスユニットによって表されるピクチャの合成時間と同じ合成時間を有するサンプルに含まれるべきである。エクストラクタの解決の後、L−HEVCサンプルは、少なくとも1つのVCL NALユニットを含むべきである。
【0269】
[0358]・アグリゲータ/エクストラクタ:各アグリゲータは、ピクチャユニットに属するNALユニットのみを集約することが許容される。アグリゲータに含まれる、またはエクストラクタによって参照されるすべてのNALユニットの順序は、これらのNALユニットがアグリゲータ/エクストラクタを含まないサンプルに存在しているかのように、復号順序とまったく同じである。アグリゲータまたはエクストラクタを処理した後で、すべてのNALユニットが、ISO/IEC 23008−2において規定されるような有効な復号順序でなければならない。
【0270】
[0359]・AVCコーディングされたベースレイヤトラックの搬送AVCコーディングされたベースレイヤは、常にそれ自体のトラックで搬送されるべきであり、この国際規格において規定されるようにAVCサンプルで構成されるべきである。
【0271】
[0360]9.6.3 デコーダ構成記録
[0361]項8.3.3.1において定義されるデコーダ構成記録が、L−HEVCストリームまたはHEVCストリームのいずれかとして解釈され得るストリームのために使用されるとき、HEVCデコーダ構成記録は、HEVCに適合するベースレイヤに適用されるべきであり、HEVCベースレイヤを復号するために必要とされるパラメータセットのみを含むべきである。
【0272】
[0362]LHEVCDecoderConfigurationRecordは、いくつかの追加のフィールドを除いて、HEVCDecoderConfigurationRecordと構造的に同様である。シンタックスは次の通りである。
【0274】
[0363]LHEVCDecoderConfigurationRecordおよびHEVCDecoderConfigurationRecordに共通のフィールドのセマンティクスは、変わっていない。LHEVCDecoderConfigurationRecordの追加のフィールドは、以下のセマンティクスを有する。
【0275】
[0364] complete_representation:このフラグが設定されたとき、それは、符号化された情報の完全なセットの一部を形成するL−HEVCビットストリームの部分をこのトラックが含むことを示す。このフラグが設定されていないトラックは、最初に符号化されたデータを一切失うことなく除去され得る。
【0276】
[0365]注意 トラックは、2つ以上の出力レイヤセットを表し得る。
【0277】
[0366]注意 トラックに含まれる補助ピクチャレイヤごとに、nalUnit内に、補助ピクチャレイヤの特性を明示する、深度補助ピクチャレイヤに関する深度表現情報SEIメッセージなど、宣言的SEIメッセージを含むSEI NALユニットを含めることが推奨される。
【0278】
[0367]
trackLayerId:このトラックに含まれるVCL NALUのnuh_layer_idの値を指定する。
【0279】
[0368]
ptlIdx:このトラックに含まれるレイヤに関する記載されたプロファイル、レベル、およびティアのフラグの1に基づくインデックスをシグナリングする。ptlIdxの値がゼロに等しいとき、トラックに含まれるレイヤは、シグナリングされるプロファイル、レベル、およびティアを有しないと仮定されるものとし、そのレイヤは、出力レイヤまたはオペレーティングポイントの任意の出力レイヤの直接もしくは間接参照レイヤであるレイヤではないものとする。num_signalled_operating_pointsが0に等しいとき、ptlIdxの値は0に等しくないものとする。
【0281】
[0369]
minPicWidthは、オペレーティングポイントのストリームに関するISO/IEC 23008−2におけるpic_width_in_luma_samplesパラメータによって定義されるようなルーマ幅インジケータの最小値を指定する。
【0282】
[0370]
minPicHeightは、オペレーティングポイントのストリームに関するISO/IEC 23008−2におけるpic_height_in_luma_samplesパラメータによって定義されるようなルーマ高さインジケータの最小値を指定する。
【0283】
[0371]
maxPicWidthは、オペレーティングポイントのストリームに関するISO/IEC 23008−2におけるpic_width_in_luma_samplesパラメータによって定義されるようなルーマ幅インジケータの最大値を指定する。
【0284】
[0372]
maxPicHeightは、オペレーティングポイントのストリームに関するISO/IEC 23008−2におけるpic_height_in_luma_samplesパラメータによって定義されるようなルーマ高さインジケータの最大値を指定する。
【0285】
[0373]
maxChromaFormatは、オペレーティングポイントのストリームに関するISO/IEC 23008−2におけるchroma_format_idcパラメータによって定義されるようなchroma_formatインジケータの最大値を指定する。
【0286】
[0374]
maxBitDepthMinus8は、オペレーティングポイントのストリームに関するISO/IEC 23008−2における、それぞれbit_depth_luma_minus8パラメータおよびbit_depth_chroma_minus8パラメータによって定義されるようなルーマビット深度インジケータおよびクロム
ビット深度インジケータの最大値を指定する。
【0287】
[0375]
0に等しいframe_rate_info_flagは、オペレーティングポイントに関してフレームレート情報が存在しないことを示す。値1は、オペレーティングポイントに関してフレームレート情報が存在することを示す。
【0288】
[0376]
0に等しいbit_rate_info_flagは、オペレーティングポイントに関してビットレート情報が存在しないことを示す。値1は、オペレーティングポイントに関してビットレート情報が存在することを示す。
【0289】
[0377]
avgFrameRateは、オペレーティングポイントに対して、平均のフレームレートをフレーム/(256秒)の単位で与える。値0は、指定されていない平均フレームレートを示す。
【0290】
[0378]
1に等しいconstantFrameRateは、オペレーティングポイントのストリームのフレームレートが一定であることを示す。値2は、オペレーティングポイントのストリーム中の各時間レイヤの表現のフレームレートが一定であることを示す。値0は、オペレーティングポイントのストリームのフレームレートが一定であることも一定ではないこともあることを示す。
【0291】
[0379]
maxBitRateは、1秒の任意のウィンドウに対する、オペレーティングポイントのストリームのビット/秒での最大ビットレートを与える。
【0292】
[0380]
avgBitRateは、オペレーティングポイントのストリームのビット/秒での平均ビットレートを与える。
【0293】
[0381]9.7 ISOベースメディアファイルフォーマットからの導出
[0382]9.7.1 L−HEVCトラック構造
[0383]L−HEVCストリームが、ファイル中の1つまたは複数のビデオトラックによって表される。各トラックが、コーディングされたビットストリームの1つまたは複数のレイヤを表す。
【0294】
[0384]符号化された情報の完全なセットを全体としてみたとき含む、1つまたは複数のトラックの最小限のセットがある。すべてのこれらのトラックは、すべてのそれらのサンプルエントリーにおいて設定された、「complete_representation」というフラグを有するべきである。完全な符号化された情報を形成するトラックのこのグループは、「完全なサブセット」と呼ばれる。完全な符号化された情報は、「完全なサブセット」に含まれるトラックが保持されるときは保持されてよく、すべての他のトラックは、完全なサブセットのサブセット、コピー、または並べ替えを表すべきである。
【0295】
[0385]最低のオペレーティングポイントを、0に等しいnuh_layer_idのみと0に等しいTemporalIdのみとを有するNALユニットを含むすべてのオペレーティングポイントの1つとする。所与のストリームに関して、最低のオペレーティングポイントを含むちょうど1つのトラックが、「スケーラブルベーストラック」として指名されるべきである。
【0296】
[0386]HEVCコーディングされていないベースレイヤを有するL−HEVCビットストリームの場合、ベースレイヤは、最低のオペレーティングポイントであり、常にそれ自体の1つのトラックを割り当てられ、ベーストラックとして指名される。同じストリームの部分であるすべての他のトラックが、タイプ「sbas」のトラック参照によって、それらのベーストラックにリンクされるべきである。
【0297】
[0387]同じスケーラブルベーストラックを共有するすべてのトラックが、そのスケーラブルベーストラックと同じ時間軸を共有しなければならない。
【0298】
[0388]トラックによって表されるレイヤが、レイヤ間予測参照のために別のトラックによって表される別のレイヤを使用する場合、タイプ「scal」のトラック参照が、レイヤ間予測のためのソーストラックを参照するトラックに含まれるべきである。
【0299】
[0389]注意 L−HEVCビットストリームの部分を含むトラックがファイルから除去される場合、除去されるトラックへの「scal」および「sbas」トラック参照を含むトラックも除去されるべきである。
【0300】
[0390]AVCを使用してベースレイヤがコーディングされるとき、ベースレイヤトラックは、別個のパラメータセットトラックを使用せずに項5に従って構築されるべきである。
【0301】
[0391]9.7.2 データ共有およびアクセスユニットの再構築
[0392]異なるトラックが論理的にデータを共有し得る。この共有は、以下の2つの形のうちの1つをとり得る。
【0302】
[0393] a)サンプルデータは、異なるトラックで複製される。
【0303】
[0394] b)ファイルが読み取られる時点でこのコピーをどのように実行するかについての命令があり得る。この場合、エクストラクタ(A.3において定義される)が使用される。
【0304】
[0395]1つまたは複数のL−HEVCトラックのサンプルからアクセスユニットを再構築するために、ターゲット出力レイヤおよびそれらが属するオペレーティングポイントが最初に決定される必要があり得る。
【0305】
[0396]注意 プレーヤは、オペレーティングポイント情報ボックスに含まれるオペレーティングポイントリストから、
またはエクストラクタおよびアグリゲータを解決することによって、決定されたターゲット出力レイヤを復号するために必要とされるレイヤを確定することができる。オペレーティングポイントの関連レイヤを搬送するトラックが、「scal」トラック参照とトラックコンテンツボックスにおける情報とに従うことによって取得され得る。
【0307】
[0398]アクセスユニットは、ISO/IEC 23008−2に適合した順序でNALユニットを並べることによって、必要とされるトラックの中のそれぞれのサンプルから再構築される。以下の順序は、サンプルから準拠するアクセスユニットを構築するための手順の説明的概略を提供する。
【0308】
[0399]・存在するとき、ビットストリーム終了NALユニットを除く、0に等しいnuh_layer_idを有するVCL NALユニットを伴う(ISO/IEC 23008−2において規定されるような)ピクチャユニット。
【0309】
[0400]・nuh_layer_id値の昇順による任意のそれぞれのサンプルからの(ISO/IEC 23008−2において規定されるような)ピクチャユニット。
【0310】
[0401]・存在するとき、ビットストリーム終了NALユニット。
【0311】
[0402]9.7.3 L−HEVCビデオストリームの定義
[0403]9.7.3.1 サンプルエントリーの名前およびフォーマット
[0404]9.7.3.1.1 定義
【0313】
[0410]
サンプルエントリーの名前が「mhv1」、「mhe1」、「shv1」または「she1」であるとき、L−HEVCビットストリームの部分を含む他のトラックのサンプルエントリーの名前は「mhv1」、「mhe1」、「shv1」または「she1」のいずれかとする。
【0314】
[0411]
サンプルエントリーの名前が「mhv2」、「mhe2」、「shv2」または「she2」であるとき、L−HEVCビットストリームの部分を含む他のトラックのサンプルエントリーの名前は「mhv2」、「mhe2」、「shv2」または「she2」のいずれかとする。
【0316】
[0413]・ISO/IEC 23008−2において定義されるような少なくとも1つのIRAPピクチャをサンプルが含む場合、IRAPピクチャと、サンプルにおけるIRAPピクチャを含む各レイヤにおける復号順序による後続ピクチャとを復号するために必要とされる各パラメータセットが、このサンプルに存在するレイヤを搬送するトラックのサンプルエントリーの中またはそのサンプル自体(場合によってはエクストラクタを使用することによる)の中のいずれかに含まれるべきである。
【0317】
[0414]・それ以外の場合(サンプルがIRAPピクチャを含まない)、そのサンプルを復号するために必要とされる各パラメータセットが、このサンプルに存在するレイヤを搬送するトラックのサンプルエントリーの中、または両端を含めて少なくとも1つのIRAPピクチャを含む以前のサンプルからそのサンプル自体(場合によってはエクストラクタを使用することによる)までのサンプルのいずれかの中のいずれかに含まれるべきである。
【0319】
[0418]同じベーストラックを共有するL−HEVCトラックおよびHEVCトラックの所与のサンプルエントリーにおけるL−HEVC構成およびHEVC構成でのlengthSizeMinusOneフィールドは、同じ値を有するべきである。
【0320】
[0419]エクストラクタまたはアグリゲータは、サンプルエントリータイプに関係なく、たとえば、同じエントリータイプが「hvc1」または「hev1」であり、HEVC構成のみが存在するときに、0よりも大きいnuh_layer_idを有するNALユニットに使用され得る。
【0321】
[0420]注意 HEVC適合性が示されるとき、ストリーム全体のビットレートに対応するために、HEVCベースレイヤの十分に高いレベルを示すことが必要になることがあり、それは、すべてのNALユニットがHEVCベースレイヤに含まれるものとして見なされ、したがってデコーダに与えられることがあり、デコーダはデコーダが認識しないNALユニットを廃棄すると予想されるからである。このケースは、「hvc1」、「hev1」、「hvc2」、または「hev2」サンプルエントリーが使用され、HEVC構成とL−HEVC構成の両方が存在するときに発生する。
【0322】
[0421]LHEVCConfigurationBoxは、「hvc1」、「hev1」、「hvc2」、または「hev2」サンプルエントリーに存在し得る。この場合、以下のHEVCLHVCSampleEntryの定義が適用される。
【0323】
[0422]次の表は、サンプルエントリーのすべての可能性のある使用法と、構成と、L−HEVCツールとを、ビデオトラックについて示す。
【0326】
[0423]9.7.3.1.2 シンタックス
【0328】
[0424]9.7.3.1.3 セマンティクス
[0425]サンプルエントリーが適用されるストリームが0よりも大きいnuh_layer_idを有するNALユニットを含むとき、ベースクラスVisualSampleEntryの中のCompressornameは、推奨されている、「\014LHEVC Coding」という値とともに使用されるコンプレッサの名前を示す(\014は12であり、これは文字列「LHEVC Coding」のバイト単位の長さである)。
【0329】
[0426]9.7.4 L−HEVCの視覚的な幅および高さ
【0331】
[0428]9.7.5 シンクサンプル
[0429]L−HEVCサンプルは、アクセスユニット中のベースレイヤピクチャがISO/IEC 23008−2において定義されるようなIRAPピクチャである場合、シンクサンプルとして見なされる。シンクサンプルはシンクサンプルテーブルによって記録され、ストリームアクセスポイント「sap」サンプルグループによって追加で記録され得る。
【0332】
[0430]9.7.6 ストリームアクセスポイントサンプルグループ
[0431]「シンク」ボックスは、L−HEVCメディアストリームにおいて可能なたった1つのタイプのランダムアクセスの指示を与える。可能な他のタイプのランダムアクセスが多くある。ISO/IEC 14496−12のAnnex Iは、異なるタイプのランダムアクセスについての重要な説明をしている。ランダムアクセスが可能であるビットストリームにおけるロケーションは、ストリームアクセスポイント(SAP)と呼ばれる。Annex Iは、異なる特性を有する6つのタイプのSAPを規定している。すべての異なるタイプのSAPの情報を提供するために、ISO/IEC 14496−12において規定されるストリームアクセスサンプルグループ「sap」が使用される。
【0333】
[0432]L−HEVCの文脈で使用されるときの「sap」サンプルグループ化は、layer_id_method_idc値を1に設定するべきである。
【0336】
[0435]タイプは、SampleToGroupボックスにおけるサンプルのgroup_description_indexに従うことによって解決される。
【0337】
[0436]9.7.7 ランダムアクセス復元ポイントおよびランダムアクセスポイントについてのサンプルグループ
[0437]タイプ「hvc1」、「hev1」、「hvc2」、または「hev2」のサンプルエントリーによって記述されるビデオデータに対して、ランダムアクセス復元サンプルグループおよびストリームアクセスポイントサンプルグループは、ビットストリーム全体に対して動作する、HEVCデコーダとL−HEVCデコーダ(もしあれば)の両方に対して、ランダムアクセス復元ポイントとランダムアクセスポイントとをそれぞれ特定する。
【0338】
[0438]L−HEVCサンプルエントリータイプによって記述されるビデオデータに対して、ランダムアクセス復元サンプルグループは、L−HEVCビットストリーム全体の中でランダムアクセス復元ポイントを特定し、ストリームアクセスポイントサンプルグループは、L−HEVCビットストリーム全体の中でランダムアクセスポイントを特定する。
【0340】
[0440]9.7.8 独立の使い捨てサンプルボックス
[0441]HEVCとL−HEVCの両方に適合するトラックにおいて独立の使い捨てサンプルボックスが使用される場合、L−HEVCデータのどの有効なサブセット(場合によってはHEVCデータのみ)が使用されても、このボックスによって提供される情報が真であることに、注意が払われなければならない。情報が変化する場合、「未知」の値(フィールドsample−depends−on、sample−is−depended−on、およびsample−has−redundancyの値0)が必要とされ得る。
【0341】
[0442]9.7.9 L−HEVCのためのサブサンプルの定義
[0443]この項は、8.4.8におけるHEVCのサブサンプルの定義を拡張する。
【0342】
[0444]L−HEVCストリームにおけるサブサンプル情報ボックス(ISO/IEC 14496−12の項8.7.7)の使用のために、以下で規定されるように、サブサンプル情報ボックスのフラグの値に基づいて、サブサンプルが定義される。このボックスの存在は任意選択であるが、L−HEVCデータを含むトラックにおいて存在する場合、ここで定義されるセマンティクスを有するべきである。
【0343】
[0445]フラグは、このボックスで与えられるサブサンプル情報のタイプを次のように規定する。
【0344】
[0446] 0、1、2、および4:
8.4.8の場合と同じ。
【0345】
[0447] 5: ピクチャベースのサブサンプル。サブサンプルは、1つのコーディングされたピクチャと、関連付けられる非VCL NALユニットとを含む。
【0346】
[0448]フラグの他の値は予備である。
【0347】
[0449]subsample_priorityフィールドおよび廃棄可能フィールドは、8.4.8において規定されるように設定されるべきである。
【0348】
[0450]NALユニットの最初のバイトがサブサンプルに含まれるとき、先行する長さフィールドも同じサブサンプルに含まれなければならない。
【0350】
[0451]SubLayerRefNalUnitFlag、RapNalUnitFlag、VclNalUnitFlag、vcl_idc、log2_min_luma_ctb、ctb_x、およびctb_yのセマンティクスは、8.4.8の場合と同じである。
【0351】
[0452] DiscardableFlagは、サブサンプル中のVCL NALユニットのdiscardable_flagの値を示す。サブサンプル中のすべてのVCL NALユニットは、同じdiscardable_flagの値を有するべきである。
【0352】
[0453]注意 これは、サブサンプル情報ボックスにおける廃棄可能フィールドと同じ定義ではない。
【0353】
[0454] NoInterLayerPredFlagは、サブサンプル中のVCL NALユニットのinter_layer_pred_enabled_flagの値を示す。サブサンプル中のすべてのVCL NALユニットは、同じ値のinter_layer_pred_enabled_flagを有するべきである。
【0354】
[0455] LayerIdは、サブサンプル中のNALユニットのnuh_layer_idの値を示す。サブサンプル中のすべてのNALユニットは、同じnuh_layer_idの値を有するべきである。
【0355】
[0456] TempIdは、サブサンプル中のNALユニットのTemporalIdの値を示す。サブサンプル中のすべてのNALユニットは、同じTemporalIdの値を有するべきである。
【0356】
[0457] VclNalUnitTypeは、サブサンプル中のVCL NALユニットのnuh_unit_typeの値を示す。サブサンプル中のすべてのVCL NALユニットは、同じnuh_unit_typeの値を有するべきである。
【0357】
[0458]9.7.10 非出力サンプルの処理
[0459]8.4.9において規定されるものは、複数のレイヤが関わるときに常に適用可能であるとは限らない。8.4.9において規定されるものに従うことができない場合、サンプルは廃棄され、以前のサンプルの持続時間が拡張されて、後続サンプルが正しい合成タイミングを有するようになる。
【0358】
[0460]9.7.11 ハイブリッドコーデックスケーラビリティの指示
[0461]マルチレイヤHEVCビットストリームが外部のベースレイヤを使用するとき(すなわち、HEVCビットストリームのアクティブなVPSが、0に等しいvps_base_layer_internal_flagと1に等しいvps_base_layer_available_flagとを有するとき)、「lhvc」に等しいaux_info_typeと0に等しいaux_info_type_parameterとを有するサンプル補助情報が、レイヤ間予測のために参照として外部のベースレイヤを使用し得るトラックに対して提供されるべきである。サンプル補助情報の記憶は、ISO/IEC 14496−12に適合するべきである。
【0359】
[0462]「lhvc」に等しいaux_info_typeを有するサンプル補助情報のシンタックスは、次の通りである。
【0361】
[0463]「lhvc」に等しいaux_info_typeを有するサンプル補助情報のセマンティクスは、以下で規定される。セマンティクスでは、現在サンプルという用語は、このサンプル補助情報が関連付けられ、サンプルの復号のために提供されるべき、サンプルを指す。
【0362】
[0464] 0に等しいbl_pic_used_flagは、復号されたベースレイヤピクチャが現在サンプルの復号に使用されることはないことを規定する。1に等しいbl_pic_used_flagは、復号されたベースレイヤピクチャが現在サンプルの復号に使用され得ることを規定する。
【0363】
[0465] bl_irap_pic_flagは、bl_pic_used_flagが1に等しいときに、関連する復号されたピクチャに関して、その復号されたピクチャが現在サンプルの復号のために復号されたベースレイヤピクチャとして提供されるときの、BlIrapPicFlag変数の値を指定する。
【0364】
[0466] bl_irap_nal_unit_typeは、bl_pic_used_flagが1に等しく、bl_irap_pic_flagが1に等しいときに、関連する復号されたピクチャに関して、その復号されたピクチャが現在サンプルの復号のために復号されたベースレイヤピクチャとして提供されるときの、nal_unit_typeシンタックス要素の値を指定する。
【0365】
[0467] sample_offsetは、bl_pic_used_flagが1に等しいときに、リンクされたトラックにおける関連サンプルの相対インデックスを与える。リンクされたトラックにおける関連サンプルの復号から生じる復号されたピクチャは、現在サンプルの復号のために提供されるべき関連する復号されたピクチャである。0に等しいsample_offsetは、関連サンプルが、現在サンプルの復号時間と比較して同じ復号時間または最も近い先行する復号時間を有することを規定し、1に等しいsample_offsetは、関連サンプルが、0に等しいsample_offsetの場合に導出された関連サンプルに対して次のサンプルであることを規定し、−1に等しいsample_offsetは、関連サンプルが、0に等しいsample_offsetの場合に導出された関連サンプルに対して前のサンプルであることを規定し、以下同様である。
【0366】
[0468]9.8 L−HEVC固有の情報ボックス
[0469]以下のボックスは、L−HEVCエレメンタリストリームの複数のレイヤに関係する情報を明示する。L−HEVCエレメンタリストリームには、出力のために選択され得る複数のレイヤがあり得るので、これらのボックスで搬送される情報は、任意の単一のトラックに固有のものではない。
【0367】
[0470]9.8.1 オペレーティングポイント情報ボックス(「oinf」)
[0471]9.8.1.1 定義
[0472]ボックスタイプ: 「oinf」
[0473]コンテナ: 「oref」タイプ参照トラックのMediaInformationBox(「minf」)
[0474]必須性: L−HEVCビットストリームのたった1つのトラックにおいて必須
[0475]量: 1つ
[0476]オペレーティングポイント情報ボックス(「oinf」)を使用することによって、異なるオペレーティングポイントおよびそれらの構造に関して適用例が知らされる。各オペレーティングポイントは、出力レイヤセット、最大T−ID値、ならびにプロファイル、レベルおよびティアのシグナリングに関係する。これらの情報はすべて、「oinf」ボックスによって捕捉される。これらの情報以外に、このボックスはまた、レイヤ間の依存性情報と、L−HEVCビットストリームにおいてコーディングされるスケーラビリティのタイプと、所与のスケーラビリティタイプの場合の任意の特定のレイヤに関係する次元識別子とを提供する。
【0368】
[0477]共通の「sbas」トラック参照を有するL−HEVCトラックまたはHEVCトラックのセットの場合、このセットの中に、「oinf」ボックスを搬送するたった1つのトラックがあるべきである。共通の「sbas」参照トラックを有するすべてのトラックは、「oinf」ボックスを搬送するトラックへのタイプ「oref」のトラック参照を有するべきである。
【0369】
[0478]このボックスが存在するとき、トラックにはたった1つのVPSがあるべきである。
【0370】
[0479]9.8.1.2 シンタックス
【0373】
[0480]9.8.1.3 セマンティクス
[0481] scalability_mask:このフィールドは、このボックスが関連付けられるベーストラック(すなわち、このトラックまたは「sbas」参照によって指されるトラックのいずれか)に関係するすべてのレイヤによって表されるスケーラビリティタイプを示す。scalability_maskフィールドにおける各ビットは、ISO/IEC 23008−2において定義されるようなVPS拡張シンタックスのscalability_mask_flagにおいてコーディングされるスケーラビリティ次元を示す。ビット位置における1は、スケーラビリティ次元が存在することを示す。
【0374】
[0482] num_profile_tier_level:以下のプロファイル、ティア、およびレベルの組合せならびに関連するフィールドの数を与える。
【0375】
[0483] general_profile_space、general_tier_flag、general_profile_idc、general_profile_compatibility_flags、general_constraint_indicator_flags、およびgeneral_level_idcがISO/IEC 23008−2において定義されている。
【0376】
[0484] num
signalled_operating_points:情報が後にくるオペレーティングポイントの数を与える。
【0377】
[0485]
num_signalled_operating_pointsが0よりも大きいとき、以下のことが当てはまる。
【0378】
[0486]
L−HEVCビットストリームの部分を含む各トラックのサンプルエントリーの名前は、mhv1、mhe1、shv1またはshe1のいずれかとする。
【0379】
[0487]
それ以外は、num_signalled_operation_pointsが0に等しく、以下のことが当てはまる。
【0380】
[0488]
L−HEVCビットストリームの部分を含む各トラックのサンプルエントリーの名前は、mhv2、mhe2、shv2またはshe2のいずれかとする。
【0381】
[0489]
サンプルエントリーの名前hvc2、hev2、mhv2、mhe2、shv2およびshe2を有する各トラックは、オペレーティングポイントに関連付けられる。
【0382】
[0490]
サンプルエントリーの名前mhv2またはmhe2を有するトラックに関連付けられるオペレーティングポイントの場合、トラックにおけるエクストラクタを解決することによって取得されたビットストリームのすべてのレイヤが出力レイヤである。
【0383】
[0491]
サンプルエントリーの名前shv2またはshe2を有するトラックに関連付けられるオペレーティングポイントの場合、トラックにおけるエクストラクタを解決することによって取得されたビットストリームのすべてのレイヤの中で最上位レイヤIDを有するレイヤのみが出力レイヤである。
【0384】
[0492] output_layer_set_idxは、オペレーティングポイントを定義する出力レイヤセットのインデックスである。output_layer_set_idxとlayer_id値との間のマッピングは、インデックスoutput_layer_set_idxを有する出力レイヤセットに関してVPSによって規定されるものと同じであるべきである。
【0385】
[0493] max_temporal_id:このオペレーティングポイントのNALユニットの最大TemporalIdを与える。
【0386】
[0494] layer_count:このフィールドは、このオペレーティングポイントの、ISO/IEC 23008−2において定義されるような必要なレイヤの数を示す。
【0387】
[0495] ptl_idx:layer_idに等しい識別子を有するレイヤに関する記載されたプロファイル、レベル、およびティアのフラグの1に基づくインデックスをシグナリングする。あるレイヤに関してptl_idxの値がゼロに等しいとき、そのレイヤは、シグナリングされるプロファイル、レベル、およびティアを有しないと仮定されるものとし、そのレイヤは、出力レイヤまたはオペレーティングポイントの任意の出力レイヤの直接もしくは間接参照レイヤであるレイヤではないものとする。
【0388】
[0496] layer_id:オペレーティングポイントのレイヤに関するレイヤID値を提供する。
【0389】
[0497] is_outputlayer:レイヤが出力レイヤであるかどうかを示すフラグ。1は、出力レイヤを示す。
【0390】
[0498] is_alternate_outputlayer:このフラグはセットされたときに、このレイヤがこのオペレーティングポイントに関する代替出力レイヤとして見なされ得ることを示す。このフラグは、オペレーティングポイントにおける1つのレイヤがそれのis_outputlayerフラグセットを有する場合にのみ、1に設定される。
【0394】
[0529]本明細書で説明されたコーディング技法は、例示的なビデオ符号化および復号システム(たとえば、システム100)において実装され得る。システムは、宛先デバイスによって後で復号されるべき符号化されたビデオデータを与えるソースデバイスを含む。特に、ソースデバイスは、コンピュータ可読媒体を介してビデオデータを宛先デバイスに与える。ソースデバイスおよび宛先デバイスは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイスおよび宛先デバイスはワイヤレス通信のために装備され得る。
【0395】
[0530]宛先デバイスは、コンピュータ可読媒体を介して復号されるべき符号化されたビデオデータを受信し得る。コンピュータ可読媒体は、ソースデバイスから宛先デバイスに符号化されたビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体は、ソースデバイスが符号化されたビデオデータを宛先デバイスにリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイスに送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路など、任意のワイヤレス通信媒体またはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイスから宛先デバイスへの通信を容易にするために有用であり得る任意の他の機器を含み得る。
【0396】
[0531]いくつかの例では、符号化されたデータは、出力インターフェースから記憶デバイスに出力され得る。同様に、符号化されたデータは、入力インターフェースによって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、記憶デバイスは、ソースデバイスによって生成された符号化されたビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイスは、ストリーミングまたはダウンロードを介して記憶デバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイスに送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブがある。宛先デバイスは、インターネット接続を含む、任意の標準のデータ接続を介して、符号化されたビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適切であるワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。記憶デバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【0397】
[0532]本開示の技法は、ワイヤレス適用例またはワイヤレス設定に必ずしも限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システムは、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0398】
[0533]一例では、ソースデバイスは、ビデオソースと、ビデオエンコーダと、出力インターフェースとを含む。宛先デバイスは、入力インターフェースと、ビデオデコーダと、ディスプレイデバイスとを含み得る。ソースデバイスのビデオエンコーダは、本明細書で開示される技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。たとえば、ソースデバイスは、外部カメラなどの外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイスは、内蔵ディスプレイデバイスを含むというよりはむしろ、外部ディスプレイデバイスとインターフェースし得る。
【0399】
[0534]上記の例示的なシステム一例にすぎない。ビデオデータを並列に処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。さらに、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイスおよび宛先デバイスは、ソースデバイスが宛先デバイスに送信するためのコーディングされたビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、ソースデバイスおよび宛先デバイスは、デバイスの各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、例示的なシステムは、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ビデオデバイス間の一方向または双方向のビデオ送信をサポートし得る。
【0400】
[0535]ビデオソースは、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツ提供者からビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソースは、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソースがビデオカメラである場合、ソースデバイスおよび宛先デバイスは、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダによって符号化され得る。符号化されたビデオ情報は、次いで、出力インターフェースによってコンピュータ可読媒体上に出力され得る。
【0401】
[0536]述べたように、コンピュータ可読媒体は、ワイヤレスブロードキャストもしくはワイヤードネットワーク送信などの一時媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−rayディスク、もしくは他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、たとえば、ネットワーク送信を介して、ソースデバイスから符号化されたビデオデータを受信し、その符号化されたビデオデータを宛先デバイスに与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイスから符号化されたビデオデータを受信し、その符号化されたビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むものと理解され得る。
【0402】
[0537]宛先デバイスの入力インターフェースはコンピュータ可読媒体から情報を受信する。コンピュータ可読媒体の情報は、ビデオエンコーダによって定義され、ビデオデコーダによっても使用される、ブロックおよび他のコーディングされたユニット、たとえば、ピクチャグループ(GOP)の特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイスは、復号されたビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。本発明の様々な実施形態が説明されてきた。
【0403】
[0538]符号化デバイス804および復号デバイス912の具体的な詳細が、それぞれ
図8および
図9に示されている。
図8は、本開示で説明される技法のうちの1つまたは複数を実装し得る例示的な符号化デバイス804を示すブロック図である。符号化デバイス804は、たとえば、本明細書で説明されるシンタックス構造(たとえば、VPS、SPS、PPS、または他のシンタックス要素のシンタックス構造)を生成し得る。符号化デバイス804は、ビデオスライス内のビデオブロックのイントラ予測コーディングおよびインター予測コーディングを実行し得る。前に説明されたように、イントラコーディングは、所与のビデオフレームまたはピクチャ内の空間冗長性を低減または除去するために、空間予測に少なくとも部分的に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたは周囲のフレーム内の時間冗長性を低減または除去するために、時間予測に少なくとも部分的に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指すことがある。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことがある。
【0404】
[0539]符号化デバイス804は、区分ユニット35と、予測処理ユニット41と、フィルタユニット63と、ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測処理ユニット46とを含む。ビデオブロック再構築のために、符号化デバイス804はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含む。フィルタユニット63は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表すものとする。
図8では、フィルタユニット63はループ内フィルタであるとして示されているが、他の構成では、フィルタユニット63はループ後フィルタとして実装され得る。後処理デバイス57は、符号化デバイス804によって生成された符号化されたビデオデータに対して追加の処理を実行し得る。ある事例では、本開示の技法は、符号化デバイス804によって実装され得る。しかしながら、他の事例では、本開示の技法のうちの1つまたは複数は、後処理デバイス57によって実装され得る。
【0405】
[0540]
図8に示されているように、符号化デバイス804はビデオデータを受信し、区分ユニット35はデータをビデオブロックに区分する。区分はまた、たとえば、LCUおよびCUの4分木構造に従って、スライス、スライスセグメント、タイル、または他のより大きいユニットへの区分、ならびにビデオブロック区分を含み得る。符号化デバイス804は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(および場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、誤差結果(たとえば、コーディングレートおよびひずみレベルなど)に基づいて現在ビデオブロックについて、複数のイントラ予測コーディングモードのうちの1つ、または複数のインター予測コーディングモードのうちの1つなど、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット41は、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを、残差ブロックデータを生成するために加算器50に与え、参照ピクチャとして使用するための符号化されたブロックを再構築するために加算器62に与え得る。
【0406】
[0541]予測処理ユニット41内のイントラ予測処理ユニット46は、空間圧縮を行うために、コーディングされるべき現在ブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して現在ビデオブロックのイントラ予測コーディングを実行し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対して現在ビデオブロックのインター予測コーディングを実行する。
【0407】
[0542]動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスを、Pスライス、Bスライス、またはGPBスライスに指定し得る。動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定は、動き推定ユニット42によって実行され、動きベクトルを生成する処理であり、ビデオブロックの動きを推定する。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックの予測ユニット(PU)の変位を示し得る。
【0408】
[0543]予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分の尺度によって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUに厳密に一致することが判明しているブロックである。いくつかの例では、符号化デバイス804は、ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算することができる。たとえば、符号化デバイス804は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数(fractional)ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【0409】
[0544]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス中のビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、その各々はピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、エントロピー符号化ユニット56と動き補償ユニット44とに計算された動きベクトルを送る。
【0410】
[0545]動き補償ユニット44によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実行することを伴い得る。現在ビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストにおいて指す予測ブロックの位置を特定し得る。符号化デバイス804は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックに対する残差データを形成し、ルーマとクロマの両方の差分成分を含み得る。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際に復号デバイス912が使用するための、ビデオブロックおよびビデオスライスに関連付けられるシンタックス要素を生成し得る。
【0411】
[0546]イントラ予測処理ユニット46は、上記で説明されたように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測処理ユニット46は、現在ブロックを符号化するために使用するイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測ユニット処理46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測処理ユニット46は、様々なテストされるイントラ予測モードのためにレートひずみ分析を使用してレートひずみ値を計算し得、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化されたブロックを生成するために使用されたビットレート(すなわち、いくつかのビット)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化されたブロックのひずみおよびレートから比率を計算し得る。
【0412】
[0547]いずれの場合も、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に与え得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。符号化デバイス804は、最確イントラ予測モードの指示ならびに様々なブロックに関する符号化コンテキストの送信されるビットストリーム構成データ定義の中に、コンテキストの各々に使用するイントラ予測モードインデックステーブルおよび修正イントラ予測モードインデックステーブルを含めることができる。ビットストリーム構成データは、複数のイントラ予測モードインデックステーブルおよび複数の修正イントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)を含み得る。
【0413】
[0548]予測処理ユニット41が、インター予測またはイントラ予測のいずれかを介して、現在ビデオブロックのための予測ブロックを生成した後、符号化デバイス804は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
【0414】
[0549]変換処理ユニット52は、得られた変換係数を量子化ユニット54に送ることができる。量子化ユニット54は、ビットレートをさらに低減するために、変換係数を量子化する。量子化処理は、係数の一部またはすべてに関連付けられるビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
【0415】
[0550]量子化に続いて、エントロピー符号化ユニット56は量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化技法を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化の後に、符号化ビットストリームは復号デバイス912に送信されるか、または復号デバイス912が後で送信するかもしくは取り出すためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コーディングされている現在ビデオスライスのための、動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【0416】
[0551]逆量子化ユニット58および逆変換処理ユニット60は、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構築するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット44は、残差ブロックを参照ピクチャリスト内の参照ピクチャのうちの1つの予測ブロックに加算することによって参照ブロックを計算することができる。動き補償ユニット44はまた、動き推定において使用するサブ整数ピクセル値を計算するために、再構築された残差ブロックに1つまたは複数の補間フィルタを適用し得る。加算器62は、ピクチャメモリ64に記憶するための参照ブロックを生成するために、再構築された残差ブロックを動き補償ユニット44によって生成された動き補償予測ブロックに加算する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
【0417】
[0552]このように、
図8の符号化デバイス804は、符号化されたビデオビットストリームに関するシンタックスを生成するように構成されたビデオエンコーダの一例を表す。符号化デバイス804は、たとえば、上記で説明されたようにVPS、SPS、およびPPSパラメータセットを生成し得る。符号化デバイス804は、
図8および
図9に関して上記で説明されたプロセスを含む、本明細書で説明された技法のいずれかを実行し得る。本開示の技法が、概して符号化デバイス804に関して説明されたが、上述のように、本開示の技法のいくつかは後処理デバイス57によっても実装され得る。
【0418】
[0553]
図9は、例示的な復号デバイス912を示すブロック図である。復号デバイス912は、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換処理ユニット88と、加算器90と、フィルタユニット91と、ピクチャメモリ92とを含む。予測処理ユニット81は、動き補償ユニット82と、イントラ予測処理ユニット84とを含む。復号デバイス912は、いくつかの例では、
図8からの符号化デバイス804に関して説明された符号化パスとは概して逆の復号パスを実行し得る。
【0419】
[0554]復号プロセスの間に、復号デバイス912は、符号化デバイス804によって送られた、符号化されたビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化されたビデオビットストリームを受信する。いくつかの実施形態では、復号デバイス912は、符号化されたビデオビットストリームを符号化デバイス804から受信し得る。いくつかの実施形態では、復号デバイス912は、符号化されたビデオビットストリームを、サーバ、メディアアウェアネットワーク要素(MANE)、ビデオエディタ/スプライサ、または上記で説明された技法のうちの1つもしくは複数を実施するように構成された他のそのようなデバイスなどのネットワークエンティティ79から受信し得る。ネットワークエンティティ79は、符号化デバイス804を含むことも、含まないこともある。本開示で説明される技法のうちのいくつかは、ネットワークエンティティ79が符号化されたビデオビットストリームを復号デバイス912に送信するより前に、ネットワークエンティティ79によって実施され得る。いくつかのビデオ復号システムでは、ネットワークエンティティ79および復号デバイス912は別個のデバイスの部分であり得るが、他の事例では、ネットワークエンティティ79に関して説明される機能は、復号デバイス912を備える同じデバイスによって実行され得る。
【0420】
[0555]復号デバイス912のエントロピー復号ユニット80は、量子化係数と、動きベクトルと、他のシンタックス要素とを生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルと他のシンタックス要素とを予測処理ユニット81に転送する。復号デバイス912は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。エントロピー復号ユニット80は、VPS、SPS、およびPPSなど、または複数のパラメータセット中の固定長シンタックス要素と可変長シンタックス要素の両方を処理し、パースし得る。
【0421】
[0556]ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされたとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの以前復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコーディングされた(すなわち、B、PまたはGPB)スライスとしてコーディングされたとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリスト内の参照ピクチャのうちの1つから生成され得る。復号デバイス912は、ピクチャメモリ92に記憶された参照ピクチャに基づいて、デフォルト構築技術を使用して、参照フレームリスト、リスト0およびリスト1を構築することができる。
【0422】
[0557]動き補償ユニット82は、動きベクトルと他のシンタックス要素とをパースすることによって現在ビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在ビデオブロックのための予測ブロックを生成するために予測情報を使用する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスのための1つまたは複数の参照ピクチャリストのための構築情報と、スライスの各インター符号化されたビデオブロックのための動きベクトルと、スライスの各インターコーディングされたビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、パラメータセットにおける1つまたは複数のシンタックス要素を使用することができる。
【0423】
[0558]動き補償ユニット82はまた、補間フィルタに基づいて、補間を実行し得る。動き補償ユニット82は、参照ブロックのサブ整数ピクセルの補間された値を計算するために、ビデオブロックの符号化の間に符号化デバイス804によって使用されるような補間フィルタを使用し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素から符号化デバイス804によって使用された補間フィルタを決定することができ、予測ブロックを生成するために補間フィルタを使用することができる。
【0424】
[0559]逆量子化ユニット86は、ビットストリーム中で与えられ、エントロピー復号ユニット80によって復号された量子化変換係数を逆量子化、すなわち、量子化解除する。逆量子化プロセスは、量子化の程度と、同じく適用されるべき逆量子化の程度とを決定するために、ビデオスライス中のビデオブロックごとに符号化デバイス804によって計算された量子化パラメータを使用することを含み得る。逆変換処理ユニット88は、ピクセル領域における残差ブロックを生成するために、逆変換(たとえば、逆DCTもしくは他の適切な逆変換)、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【0425】
[0560]動き補償ユニット82が、動きベクトルおよび他のシンタックス要素に基づいて現在ビデオブロックのための予測ブロックを生成した後に、復号デバイス912は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算演算を実行する1つの構成要素または複数の構成要素を表す。所望される場合、(コーディングループ内またはコーディングループ後のいずれかの)ループフィルタも、ピクセル遷移を平滑化するために、またはさもなければビデオ品質を改善するために使用され得る。フィルタユニット91は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表すものとする。
図9では、フィルタユニット91はループ内フィルタであるとして示されているが、他の構成では、フィルタユニット91はループ後フィルタとして実装され得る。次いで、所与のフレームまたはピクチャ中の復号されたビデオブロックは、後続の動き補償に使用される参照ピクチャを記憶する、ピクチャメモリ92に記憶される。ピクチャメモリ92はまた、
図1に示されるビデオ宛先デバイス122のようなディスプレイデバイス上での後の表示のために、復号されたビデオを記憶する。
【0426】
[0561]上記の説明では、適用例の態様が、その特定の実施形態を参照しながら説明されているが、当業者は、本発明がそれに限定されないことを認識されよう。したがって、適用例の例示的な実施形態が、本明細書で詳細に説明されているが、本発明の概念が、他の方法で様々に具現化され利用され得ること、および添付の特許請求の範囲が、先行技術によって限定されている場合を除いて、そのような変形形態を含むと解釈されることが意図されていることを理解されたい。上述の発明の様々な特徴および態様が、個々にまたは一緒に使用され得る。さらに、実施形態は、本明細書のより広範な趣旨および範囲から離れることなく、本明細書で説明されるものにとどまらない、任意の数の環境および適用例において利用され得る。したがって、本明細書および図面は、限定的ではなく例示的なものと解釈されるべきである。例示の目的で、方法が特定の順序で説明された。代替実施形態では、説明された順序とは異なる順序で方法が実行され得ることを諒解されたい。
【0427】
[0562]構成要素が、ある種の動作を実行する「ように構成される」ものとして記述される場合、そのような構成は、たとえば、動作を実行する電子回路もしくは他のハードウェアを設計することによって、動作を実行するプログラマブル電子回路(たとえば、マイクロプロセッサ、もしくは他の適切な電子回路)をプログラムすることによって、またはそれらの任意の組合せによって、達成され得る。
【0428】
[0563]本明細書で開示される実施形態に関して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能に関して上記で説明された。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装決定は、本明細書で説明されるシステムおよび方法の範囲からの逸脱を生じさせるものと解釈されるべきではない。
【0429】
[0564]本明細書で説明された技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなど、様々なデバイスのいずれかにおいて実装され得る。モジュールまたは構成要素として説明されるいかなる機能も、集積論理デバイスに一緒に、またはディスクリートであるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたときに、上記で説明された方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、フラッシュメモリ、磁気または光学データ記憶媒体など、メモリまたはデータ記憶媒体を備え得る。技法は、追加または代替として、伝搬信号または電波など、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【0430】
[0565]プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価の集積回路もしくはディスクリート論理回路など、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明される技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装されることもある。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明された技法の実装に適した他の構造もしくは装置のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のソフトウェアモジュールもしくはハードウェアモジュール内に提供され得、または複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを符号化するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しているビデオ符号化デバイスと、
を備え、前記ビデオ符号化デバイスは、
マルチレイヤビデオデータを処理することと、前記マルチレイヤビデオデータは複数のレイヤを含み、各レイヤは、少なくとも1つのビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットと任意の関連する非VCL NALユニットとを含む少なくとも1つのピクチャユニットを備え、
フォーマットを使用して前記マルチレイヤビデオデータに関連付けられる出力ファイルを生成することと、
ここにおいて、前記出力ファイルは複数のトラックを含み、前記出力ファイルを生成することは、前記複数のトラックの各トラックが前記マルチレイヤビデオデータのたった1つのレイヤを備えるという制約、および前記複数のトラックの各トラックがアグリゲータまたはエクストラクタの少なくとも一方を含まないという制約に従って、前記出力ファイルを生成することを含み、
アグリゲータは、NALユニットの不規則なパターンを、集約されたデータユニットの規則的なパターンへと変更することによって、NALユニットのスケーラブルグループ化を可能にする構造を含み、エクストラクタは、メディアデータを含むトラック以外のトラックからのNALユニットの抽出を可能にする構造を含む、
を行うように構成される、デバイス。
[C2]
前記ビデオ符号化デバイスは、
サンプルエントリーの名前を前記出力ファイルに関連付けるようにさらに構成され、前記サンプルエントリーの名前は、前記出力ファイルの前記複数のトラックの各トラックがたった1つのレイヤを備えることを示し、前記複数のトラックの各トラックが前記アグリゲータまたは前記エクストラクタの少なくとも一方を含まないことを示す、C1に記載のデバイス。
[C3]
識別子はファイルタイプであり、前記ファイルタイプは前記出力ファイルに含まれる、C2に記載のデバイス。
[C4]
前記ビデオ符号化デバイスは、トラックコンテンツ情報(tcon)ボックスを生成しないようにさらに構成される、C1に記載のデバイス。
[C5]
前記ビデオ符号化デバイスは、前記1つまたは複数のトラックの各々のためのレイヤ識別子を生成するようにさらに構成され、レイヤ識別子は、トラックに含まれるレイヤを識別する、C1に記載のデバイス。
[C6]
前記ビデオ符号化デバイスは、オペレーティングポイント情報(oinf)ボックスを生成するようにさらに構成され、前記oinfボックスは、前記マルチレイヤビデオデータに含まれる1つまたは複数のオペレーティングポイントのリストを含み、オペレーティングポイントは、1つまたは複数のレイヤに関連付けられ、前記oinfボックスは、前記1つまたは複数のトラックのうちのどれが、前記1つまたは複数のオペレーティングポイントの各々に関連付けられるレイヤを含むかを示す、C1に記載のデバイス。
[C7]
前記マルチレイヤビデオデータはレイヤのサブセットをさらに含み、レイヤの前記サブセットは1つまたは複数の時間サブレイヤを含み、
ビデオ符号化デバイスは、前記1つまたは複数のトラックからの各トラックが前記マルチレイヤビデオデータからのせいぜい1つのレイヤまたはレイヤの1つのサブセットを含むという制約に従って、前記出力ファイルを生成するようにさらに構成される、C1に記載のデバイス。
[C8]
前記マルチレイヤビデオデータは、階層化高効率ビデオコーディング(L−HEVC)ビデオデータである、C1に記載のデバイス。
[C9]
前記出力ファイルの前記フォーマットは、国際標準化機構(ISO)ベースメディアファイルフォーマットを含む、C1に記載のデバイス。
[C10]
ビデオデータを復号するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しているビデオ復号デバイスと、
を備え、前記ビデオ復号デバイスは、
マルチレイヤビデオデータに関連付けられる出力ファイルのサンプルエントリーの名前を処理することと、前記マルチレイヤビデオデータは複数のレイヤを含み、各レイヤは、少なくとも1つのビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットと任意の関連する非VCL NALユニットとを含む少なくとも1つのピクチャユニットを備え、前記出力ファイルは複数のトラックを備え、
前記出力ファイルのサンプルエントリーの名前に基づいて、前記出力ファイルの前記複数のトラックの各トラックが前記複数のレイヤのうちのたった1つのレイヤを備えること、および、前記複数のトラックの各々がアグリゲータまたはエクストラクタのうちの少なくとも一方を含まないこと、を決定することと、アグリゲータは、NALユニットの不規則なパターンを、集約されたデータユニットの規則的なパターンへと変更することによって、NALユニットのスケーラブルグループ化を可能にする構造を含み、エクストラクタは、メディアデータを含むトラック以外のトラックからのNALユニットの抽出を可能にする構造を含む、
を行うように構成される、デバイス。
[C11]
前記サンプルエントリーの名前はファイルタイプであり、前記ファイルタイプは前記出力ファイルに含まれる、C10に記載のデバイス。
[C12]
前記出力ファイルはトラックコンテンツ情報(tcon)ボックスを含まない、C10に記載のデバイス。
[C13]
前記出力ファイルは、1つまたは複数のトラックの各々のためのレイヤ識別子を含み、レイヤ識別子は、トラックに含まれるレイヤを識別する、C10に記載のデバイス。
[C14]
前記出力ファイルはオペレーティングポイント情報(oinf)ボックスを含み、前記oinfボックスは、前記ビデオデータに含まれる1つまたは複数のオペレーティングポイントのリストを含み、オペレーティングポイントは、1つまたは複数のレイヤに関連付けられ、前記oinfボックスは、前記1つまたは複数のトラックのうちのどれが、前記1つまたは複数のオペレーティングポイントの各々に関連付けられるレイヤを含むかを示す、C10に記載のデバイス。
[C15]
前記マルチレイヤビデオデータは1つまたは複数の時間サブレイヤをさらに含み、前記1つまたは複数のトラックからの各トラックは、前記マルチレイヤビデオデータからのたった1つのレイヤまたは1つの時間サブレイヤを含む、C10に記載のデバイス。
[C16]
前記マルチレイヤビデオデータは、階層化高効率ビデオコーディング(L−HEVC)ビデオデータである、C10に記載のデバイス。
[C17]
前記出力ファイルは、フォーマットを使用して生成され、前記出力ファイルの前記フォーマットは、国際標準化機構(ISO)ベースメディアファイルフォーマットを含む、C10に記載のデバイス。
[C18]
非一時的機械可読記憶媒体に有形に具現化されたコンピュータプログラム製品であって、1つまたは複数のプロセッサによって実行されたときに、前記1つまたは複数のプロセッサに、
マルチレイヤビデオデータに関連付けられる出力ファイルのサンプルエントリーの名前を処理することと、前記マルチレイヤビデオデータは複数のレイヤを含み、各レイヤは、少なくとも1つのビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットと任意の関連する非VCL NALユニットとを含む少なくとも1つのピクチャユニットを備え、前記出力ファイルは複数のトラックを備え、
前記出力ファイルのサンプルエントリーの名前に基づいて、前記出力ファイルの前記複数のトラックの各トラックが前記複数のレイヤのうちのたった1つのレイヤを備えること、および、前記複数のトラックの各々がアグリゲータまたはエクストラクタの少なくとも一方を含まないこと、を決定することと、アグリゲータは、NALユニットの不規則なパターンを、集約されたデータユニットの規則的なパターンへと変更することによって、NALユニットのスケーラブルグループ化を可能にする構造を含み、エクストラクタは、メディアデータを含むトラック以外のトラックからのNALユニットの抽出を可能にする構造を含む、
を行わせる命令を含む、コンピュータプログラム製品。
[C19]
前記サンプルエントリーの名前はファイルタイプであり、前記ファイルタイプは前記出力ファイルに含まれる、C18に記載のコンピュータプログラム製品。
[C20]
前記出力ファイルはトラックコンテンツ情報(tcon)ボックスを含まない、C18に記載のコンピュータプログラム製品。
[C21]
前記出力ファイルは、1つまたは複数のトラックの各々のためのレイヤ識別子を含み、レイヤ識別子は、トラックに含まれるレイヤを識別する、C18に記載のコンピュータプログラム製品。
[C22]
前記出力ファイルはオペレーティングポイント情報(oinf)ボックスを含み、前記oinfボックスは、前記ビデオデータに含まれる1つまたは複数のオペレーティングポイントのリストを含み、オペレーティングポイントは、1つまたは複数のレイヤに関連付けられ、前記oinfボックスは、前記1つまたは複数のトラックのうちのどれが、前記1つまたは複数のオペレーティングポイントの各々に関連付けられるレイヤを含むかを示す、C18に記載のコンピュータプログラム製品。
[C23]
前記マルチレイヤビデオデータは1つまたは複数の時間サブレイヤをさらに含み、前記1つまたは複数のトラックからの各トラックは、前記マルチレイヤビデオデータからのたった1つのレイヤまたは1つの時間サブレイヤを含む、C18に記載のコンピュータプログラム製品。
[C24]
前記出力ファイルは、フォーマットを使用して生成され、前記出力ファイルの前記フォーマットは、国際標準化機構(ISO)ベースメディアファイルフォーマットを含む、C18に記載のコンピュータプログラム製品。
[C25]
ビデオデコーダデバイスによって、マルチレイヤビデオデータに関連付けられる出力ファイルのサンプルエントリーの名前を処理することと、前記マルチレイヤビデオデータは複数のレイヤを含み、各レイヤは、少なくとも1つのビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットと任意の関連する非VCL
NALユニットとを含む少なくとも1つのピクチャユニットを備え、前記出力ファイルは複数のトラックを備え、
前記出力ファイルの前記サンプルエントリーの名前に基づいて、前記出力ファイルの前記複数のトラックの各トラックが前記複数のレイヤのうちのせいぜい1つのレイヤを備えること、および、前記複数のトラックの各々がアグリゲータまたはエクストラクタの少なくとも一方を含まないこと、を決定することと、アグリゲータは、NALユニットの不規則なパターンを、集約されたデータユニットの規則的なパターンへと変更することによって、NALユニットのスケーラブルグループ化を可能にする構造を含み、エクストラクタは、メディアデータを含むトラック以外のトラックからのNALユニットの抽出を可能にする構造を含む、
を備える方法。
[C26]
前記サンプルエントリーの名前はファイルタイプであり、前記ファイルタイプは前記出力ファイルに含まれる、C25に記載の方法。
[C27]
前記出力ファイルはトラックコンテンツ情報(tcon)ボックスを含まない、C25に記載の方法。
[C28]
前記出力ファイルは、1つまたは複数のトラックの各々のためのレイヤ識別子を含み、レイヤ識別子は、トラックに含まれるレイヤを識別する、C25に記載の方法。
[C29]
前記出力ファイルはオペレーティングポイント情報(oinf)ボックスを含み、前記oinfボックスは、前記マルチレイヤビデオデータに含まれる1つまたは複数のオペレーティングポイントのリストを含み、オペレーティングポイントは、1つまたは複数のレイヤに関連付けられ、前記oinfボックスは、前記1つまたは複数のトラックのうちのどれが、前記1つまたは複数のオペレーティングポイントの各々に関連付けられるレイヤを含むかを示す、C25に記載の方法。
[C30]
前記マルチレイヤビデオデータはレイヤのサブセットをさらに含み、レイヤの前記サブセットは1つまたは複数の時間サブレイヤを含み、前記1つまたは複数のトラックからの各トラックは前記マルチレイヤビデオデータからのせいぜい1つのレイヤまたはレイヤの1つのサブセットを含む、C25に記載の方法。