(57)【特許請求の範囲】
【請求項１】
マルチレイヤビデオデータを処理する方法であって、
ファイル中のトラックのためのメタデータを含むトラックボックスを備える前記ファイルを生成することを備え、
前記トラックのためのメディアデータは、サンプルのシーケンスを備え、前記サンプルの各々は、前記マルチレイヤビデオデータの複数のビデオアクセスユニットのうちの１つのビデオアクセスユニットであり、
前記ファイルを生成することは、前記ファイル中に、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録するサンプルグループを定義することを備え、
前記サンプルグループは、
サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値と、
前記特定のサンプル中のＩＲＡＰピクチャの数を示す値と、
前記特定のサンプル中の前記ＩＲＡＰピクチャのレイヤ識別子を示す値と、
を含むサンプルグループエントリーを含むように定義され、前記特定のサンプルは、ベースレイヤ中にＩＲＡＰピクチャを含み、また他のレイヤ中に１つまたは複数の非ＩＲＡＰピクチャを含む、方法。
【請求項２】
前記ファイルを生成することは、
前記サンプルグループエントリー中に、前記特定のサンプルの前記ＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を含めることを備える、請求項１に記載の方法。
【請求項３】
前記ファイルを生成することは、前記ファイル中に、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを生成することを備え、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各コーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、請求項１に記載の方法。
【請求項４】
前記マルチレイヤビデオデータを符号化することをさらに備える、請求項１に記載の方法。
【請求項５】
マルチレイヤビデオデータを処理する方法であって、
ファイルから、前記ファイル中のトラックのためのメタデータを含むトラックボックスを取得することと、ここにおいて、前記トラックのためのメディアデータはサンプルのシーケンスを備え、前記サンプルの各々は前記マルチレイヤビデオデータの複数のビデオアクセスユニットのうちの１つのビデオアクセスユニットであり、
前記ファイルから、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録するサンプルグループの定義を取得することと、ここにおいて、
前記サンプルグループは、
サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値と、
前記特定のサンプル中のＩＲＡＰピクチャの数を示す値と、
前記特定のサンプル中の前記ＩＲＡＰピクチャのレイヤ識別子を示す値と、
を含むサンプルグループエントリーを含むように定義され、前記特定のサンプルは、ベースレイヤ中にＩＲＡＰピクチャを含み、また他のレイヤ中に１つまたは複数の非ＩＲＡＰピクチャを含み、
前記サンプルグループに基づいて、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルの１つまたは複数を決定することと、
を備える方法。
【請求項６】
前記サンプルグループエントリーから、前記特定のサンプルの前記ＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を取得することをさらに備える、請求項５に記載の方法。
【請求項７】
前記ファイルから、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを取得することをさらに備え、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各コーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、請求項５に記載の方法。
【請求項８】
少なくとも１つのＩＲＡＰピクチャを含む前記１つまたは複数のサンプルの１つにおいて、前記マルチレイヤビデオデータの復号を開始することをさらに備える、請求項５に記載の方法。
【請求項９】
マルチレイヤビデオデータを記憶するように構成されるデータ記憶媒体と、
１つまたは複数のプロセッサと、
を備えるビデオデバイスであって、前記１つまたは複数のプロセッサは、
ファイル中のトラックのためのメタデータを含むトラックボックスを備える前記ファイルを生成するように構成され、
前記トラックのためのメディアデータは、サンプルのシーケンスを備え、前記サンプルの各々は、前記マルチレイヤビデオデータの複数のビデオアクセスユニットのうちの１つのビデオアクセスユニットであり、
前記ファイルを生成することは、前記ファイル中に、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録するサンプルグループを定義することを備え、
前記サンプルグループは、
サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値と、
前記特定のサンプル中のＩＲＡＰピクチャの数を示す値と、
前記特定のサンプル中の前記ＩＲＡＰピクチャのレイヤ識別子を示す値と、
を含むサンプルグループエントリーを含むように定義され、前記特定のサンプルは、ベースレイヤ中にＩＲＡＰピクチャを含み、また他のレイヤ中に１つまたは複数の非ＩＲＡＰピクチャを含む、ビデオデバイス。
【請求項１０】
前記１つまたは複数のプロセッサは、
前記サンプルグループエントリー中に、前記特定のサンプルの前記ＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を含めるように構成される、請求項９に記載のビデオデバイス。
【請求項１１】
前記１つまたは複数のプロセッサは、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを前記ファイル中に生成するように構成され、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各コーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、請求項９に記載のビデオデバイス。
【請求項１２】
前記１つまたは複数のプロセッサは、前記マルチレイヤビデオデータを符号化するように構成される、請求項９に記載のビデオデバイス。
【請求項１３】
マルチレイヤビデオデータを記憶するように構成されるデータ記憶媒体と、
１つまたは複数のプロセッサと、
を備えるビデオデバイスであって、前記１つまたは複数のプロセッサは、
ファイルから、前記ファイル中のトラックのためのメタデータを含むトラックボックスを取得し、ここにおいて、前記トラックのためのメディアデータはサンプルのシーケンスを備え、前記サンプルの各々は前記マルチレイヤビデオデータの１つのビデオアクセスユニットであり、
前記ファイルから、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録するサンプルグループの定義を取得し、ここにおいて、
前記サンプルグループは、
サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値と、
前記特定のサンプル中のＩＲＡＰピクチャの数を示す値と、
前記特定のサンプル中の前記ＩＲＡＰピクチャのレイヤ識別子を示す値と、
を含むサンプルグループエントリーを含むように定義され、前記特定のサンプルは、ベースレイヤ中にＩＲＡＰピクチャを含み、また他のレイヤ中に１つまたは複数の非ＩＲＡＰピクチャを含み、
前記サンプルグループに基づいて、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルの１つまたは複数を決定する
ように構成される、ビデオデバイス。
【請求項１４】
前記１つまたは複数のプロセッサは、
前記サンプルグループエントリーから、前記特定のサンプルの前記ＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を取得するように構成される、請求項１３に記載のビデオデバイス。
【請求項１５】
前記１つまたは複数のプロセッサは、
前記ファイルから、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを取得するように構成され、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各コーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、請求項１３に記載のビデオデバイス。
【請求項１６】
前記１つまたは複数のプロセッサは、少なくとも１つのＩＲＡＰピクチャを含む前記１つまたは複数のサンプルの１つにおいて、前記マルチレイヤビデオデータの復号を開始するように構成される、請求項１３に記載のビデオデバイス。
【請求項１７】
符号化されたマルチレイヤビデオデータを記憶するための手段と、
ファイル中のトラックのためのメタデータを含むトラックボックスを備える前記ファイルを生成するための手段と、
を備え、前記トラックのためのメディアデータは、サンプルのシーケンスを備え、前記サンプルの各々は、前記マルチレイヤビデオデータの複数のビデオアクセスユニットのうちの１つのビデオアクセスユニットであり、
前記ファイルを生成することは、前記ファイル中に、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録するサンプルグループを定義することを備え、
前記サンプルグループは、
サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値と、
前記特定のサンプル中のＩＲＡＰピクチャの数を示す値と、
前記特定のサンプル中の前記ＩＲＡＰピクチャのレイヤ識別子を示す値と、
を含むサンプルグループエントリーを含むように定義され、前記特定のサンプルは、ベースレイヤ中にＩＲＡＰピクチャを含み、また他のレイヤ中に１つまたは複数の非ＩＲＡＰピクチャを含む、ビデオデバイス。
【請求項１８】
前記サンプルグループエントリー中に、前記特定のサンプルの前記ＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を含めるための手段をさらに備える、請求項１７に記載のビデオデバイス。
【請求項１９】
前記ファイルを生成するための前記手段は、前記ファイル中に、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを生成するための手段を備え、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各コーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、請求項１７に記載のビデオデバイス。
【請求項２０】
前記マルチレイヤビデオデータを符号化するための手段をさらに備える、請求項１７に記載のビデオデバイス。
【請求項２１】
ファイルから、前記ファイル中のトラックのためのメタデータを含むトラックボックスを取得するための手段と、ここにおいて、前記トラックのためのメディアデータはサンプルのシーケンスを備え、前記サンプルの各々はマルチレイヤビデオデータの複数のビデオアクセスユニットのうちの１つのビデオアクセスユニットであり、
前記ファイルから、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録するサンプルグループの定義を取得するための手段と、ここにおいて、
前記サンプルグループは、
サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値と、
前記特定のサンプル中のＩＲＡＰピクチャの数を示す値と、
前記特定のサンプル中の前記ＩＲＡＰピクチャのレイヤ識別子を示す値と、
を含むサンプルグループエントリーを含むように定義され、前記特定のサンプルは、ベースレイヤ中にＩＲＡＰピクチャを含み、また他のレイヤ中に１つまたは複数の非ＩＲＡＰピクチャを含み、
前記サンプルグループに基づいて、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルの１つまたは複数を決定するための手段と、
を備える、ビデオデバイス。
【請求項２２】
前記サンプルグループエントリーから、前記特定のサンプルの前記ＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を取得するための手段をさらに備える、請求項２１に記載のビデオデバイス。
【請求項２３】
前記ファイルから、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを取得するための手段をさらに備え、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各コーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、請求項２１に記載のビデオデバイス。
【請求項２４】
少なくとも１つのＩＲＡＰピクチャを含む前記１つまたは複数のサンプルの１つにおいて、前記マルチレイヤビデオデータの復号を開始するための手段をさらに備える、請求項２１に記載のビデオデバイス。
【請求項２５】
実行されると、１つまたは複数のプロセッサに、
ファイル中のトラックのためのメタデータを含むトラックボックスを備える前記ファイルを生成させる命令を記憶した、非一時的コンピュータ可読データ記憶媒体であって、
前記トラックのためのメディアデータは、サンプルのシーケンスを備え、前記サンプルの各々は、マルチレイヤビデオデータの複数のビデオアクセスユニットのうちの１つのビデオアクセスユニットであり、
前記ファイルを生成するために、前記１つまたは複数のプロセッサは、前記ファイル中に、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録するサンプルグループを定義し、
前記サンプルグループは、
サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値と、
前記特定のサンプル中のＩＲＡＰピクチャの数を示す値と、
前記特定のサンプル中の前記ＩＲＡＰピクチャのレイヤ識別子を示す値と、
を含むサンプルグループエントリーを含むように定義され、前記特定のサンプルは、ベースレイヤ中にＩＲＡＰピクチャを含み、また他のレイヤ中に１つまたは複数の非ＩＲＡＰピクチャを含む、非一時的コンピュータ可読データ記憶媒体。
【請求項２６】
前記命令は、前記１つまたは複数のプロセッサに、
前記サンプルグループエントリー中に、前記特定のサンプルの前記ＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を含めさせる、請求項２５に記載の非一時的コンピュータ可読データ記憶媒体。
【請求項２７】
前記命令がさらに、前記１つまたは複数のプロセッサに、
前記ファイル中に、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを生成させ、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各コーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、請求項２５に記載の非一時的コンピュータ可読データ記憶媒体。
【請求項２８】
実行されると、１つまたは複数のプロセッサに、
ファイルから、前記ファイル中のトラックのためのメタデータを含むトラックボックスを取得させ、ここにおいて、前記トラックのためのメディアデータはサンプルのシーケンスを備え、前記サンプルの各々はマルチレイヤビデオデータの複数のビデオアクセスユニットのうちの１つのビデオアクセスユニットであり、
前記ファイルから、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録するサンプルグループの定義を取得させ、ここにおいて、
前記サンプルグループは、
サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値と、
前記特定のサンプル中のＩＲＡＰピクチャの数を示す値と、
前記特定のサンプル中の前記ＩＲＡＰピクチャのレイヤ識別子を示す値と、
を含むサンプルグループエントリーを含むように定義され、前記特定のサンプルは、ベースレイヤ中にＩＲＡＰピクチャを含み、また他のレイヤ中に１つまたは複数の非ＩＲＡＰピクチャを含み、
前記サンプルグループに基づいて、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルの１つまたは複数を決定させる、
命令を記憶した、非一時的コンピュータ可読データ記憶媒体。
【請求項２９】
前記命令は、前記１つまたは複数のプロセッサに、
前記サンプルグループエントリーから、前記特定のサンプルの前記ＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を取得させる、請求項２８に記載の非一時的コンピュータ可読データ記憶媒体。
【請求項３０】
前記命令は、前記１つまたは複数のプロセッサに、
前記ファイルから、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを取得させ、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各コーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、請求項２８に記載の非一時的コンピュータ可読データ記憶媒体。
【請求項３１】
前記デバイスは、
集積回路、
マイクロプロセッサ、または、
ワイヤレスハンドセット
のうちの少なくとも１つを備える、請求項９に記載のビデオデバイス。
【請求項３２】
前記デバイスは、
集積回路、
マイクロプロセッサ、または、
ワイヤレスハンドセット
のうちの少なくとも１つを備える、請求項１３に記載のビデオデバイス。
【請求項３３】
復号されたビデオデータを表示するように構成されたディスプレイをさらに備える、請求項１３に記載のビデオデバイス。
【請求項３４】
前記マルチレイヤビデオデータをキャプチャするように構成された１つまたは複数のカメラをさらに備える、請求項９に記載のビデオデバイス。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれる、２０１３年１０月２３日に出願された米国仮特許出願第６１／８９４，８８６号の利益を主張する。
【技術分野】
【０００２】
本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップコンピュータまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲーム機、携帯電話機または衛星無線電話機、いわゆる「スマートフォン」、ビデオ会議デバイス、ビデオストリーミングデバイスなどを含む広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ  １０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）、現在開発中のＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格によって定義された規格、およびそのような規格の拡張に記載されているもののような、ビデオ圧縮技法を実装する。これらのビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信し、受信し、符号化し、復号し、および／または記憶することができる。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）が、ツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコーディングされた（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコーディングされた（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用することができる。ピクチャは、フレームと呼ばれることがあり、参照ピクチャは、参照フレームと呼ばれることがある。
【０００５】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングされるブロックは、予測ブロックを形成する参照サンプルのブロックを指す（point to）動きベクトルと、コーディングされるブロックと予測ブロックとの差分を示す残差データとに従って符号化される。イントラコーディングされるブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され得、残差変換係数をもたらし、その残差変換係数は、次いで量子化され得る。最初は２次元アレイで構成される、量子化された変換係数は、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するためにエントロピーコーディングが適用され得る。
【発明の概要】
【０００６】
[0006]全般に、本開示は、国際標準化機構（ＩＳＯ）ベースのメディアファイルフォーマット（ＩＳＯＢＭＦＦ：ISO base media file format）に基づくファイルにビデオコンテンツを記憶することに関する。本開示のいくつかの例は、複数のコーディングされたレイヤを含むビデオストリームを記憶するための方法に関し、ここで各レイヤは、スケーラブルレイヤ、テクスチャビュー、深度ビューなどであり、その方法は、Ｍｕｌｔｉ−Ｖｉｅｗ  Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＭＶ−ＨＥＶＣ）、Ｓｃａｌａｂｌｅ  ＨＥＶＣ（ＳＨＶＣ）、３次元ＨＥＶＣ（３Ｄ−ＨＥＶＣ）、および他のタイプのビデオデータの記憶に適用され得る。
【０００７】
[0007]一態様では、本開示は、マルチレイヤビデオデータを処理する方法を説明し、方法は、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成することを備え、ここにおいて、トラックのためのメディアデータはサンプルのシーケンスを備え、サンプルの各々はマルチレイヤビデオデータのビデオアクセスユニットであり、ファイルを生成することは、ファイルにおいて、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ：Intra Random Access Point）ピクチャを含むサンプルのすべてを記録する追加のボックスを生成することを備える。
【０００８】
[0008]別の態様では、本開示は、マルチレイヤビデオデータを処理する方法を説明し、方法は、ファイル中のトラックのためのメタデータを含むトラックボックスをファイルから取得すること、ここにおいて、トラックのためのメディアデータはサンプルのシーケンスを備え、サンプルの各々はマルチレイヤビデオデータのビデオアクセスユニットであり、と、少なくとも１つのＩＲＡＰピクチャを含むサンプルのすべてを記録する追加のボックスをファイルから取得することと、追加のボックス中の情報に基づいて、少なくとも１つのＩＲＡＰピクチャを含むサンプルの１つまたは複数を決定することと、を備える。
【０００９】
[0009]別の態様では、本開示は、マルチレイヤビデオデータを記憶するように構成されるデータ記憶媒体と、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成するように構成される１つまたは複数のプロセッサとを備える、ビデオデバイスを説明し、トラックのためのメディアデータはサンプルのシーケンスを備え、サンプルの各々はマルチレイヤビデオデータのビデオアクセスユニットであり、ファイルを生成することは、ファイルにおいて、少なくとも１つのＩＲＡＰピクチャを含むサンプルのすべてを記録する追加のボックスを生成することを備える。
【００１０】
[0010]別の態様では、本開示は、マルチレイヤビデオデータを記憶するように構成されるデータ記憶媒体と、1つまたは複数のプロセッサとを備え、該1つまたは複数のプロセッサは、ファイル中のトラックのためのメタデータを含むトラックボックスをファイルから取得し、ここにおいて、トラックのためのメディアデータはサンプルのシーケンスを備え、サンプルの各々はマルチレイヤビデオデータのビデオアクセスユニットであり、少なくとも１つのＩＲＡＰピクチャを含むサンプルのすべてを記録する追加のボックスをファイルから取得し、追加のボックス中の情報に基づいて、少なくとも１つのＩＲＡＰピクチャを含むサンプルの１つまたは複数を決定するように構成される、ビデオデバイスを説明する。
【００１１】
[0011]別の態様では、本開示は、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成するための手段を備えるビデオデバイスを説明し、トラックのためのメディアデータはサンプルのシーケンスを備え、サンプルの各々はマルチレイヤビデオデータのビデオアクセスユニットであり、ファイルを生成することは、ファイルにおいて、少なくとも１つのＩＲＡＰピクチャを含むサンプルのすべてを記録する追加のボックスを生成することを備える。
【００１２】
[0012]別の態様では、本開示は、ファイル中のトラックのためのメタデータを含むトラックボックスをファイルから取得するための手段、ここにおいて、トラックのためのメディアデータはサンプルのシーケンスを備え、サンプルの各々はマルチレイヤビデオデータのビデオアクセスユニットであり、と、少なくとも１つのＩＲＡＰピクチャを含むサンプルのすべてを記録する追加のボックスをファイルから取得するための手段と、追加のボックス中の情報に基づいて、少なくとも１つのＩＲＡＰピクチャを含むサンプルの１つまたは複数を決定するための手段と、を備える、ビデオデバイスを説明する。
【００１３】
[0013]別の態様では、本開示は、実行されると、１つまたは複数のプロセッサに、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成させる命令を記憶した、コンピュータ可読データ記憶媒体を説明し、トラックのためのメディアデータはサンプルのシーケンスを備え、サンプルの各々はマルチレイヤビデオデータのビデオアクセスユニットであり、ファイルを生成するために、１つまたは複数のプロセッサは、ファイル中に、少なくとも１つのＩＲＡＰピクチャを含むサンプルのすべてを記録する追加のボックスを生成する。
【００１４】
[0014]別の態様では、本開示は、実行されると、１つまたは複数のプロセッサに、ファイル中のトラックのためのメタデータを含むトラックボックスをファイルから取得させ、ここにおいて、トラックのためのメディアデータはサンプルのシーケンスを備え、サンプルの各々はマルチレイヤビデオデータのビデオアクセスユニットであり、少なくとも１つのＩＲＡＰピクチャを含むサンプルのすべてを記録する追加のボックスをファイルから取得させ、追加のボックス中の情報に基づいて、少なくとも１つのＩＲＡＰピクチャを含むサンプルの１つまたは複数を決定させる命令を記憶した、コンピュータ可読データ記憶媒体を説明する。
【００１５】
[0015]本開示の１つまたは複数の例の詳細は、添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１６】
【図１】本開示で説明される技法を使用することができる、例示的なビデオ符号化および復号システムを示すブロック図。
【図２】本開示で説明される技法を実施し得る例示的なビデオエンコーダを示すブロック図。
【図３】本開示で説明される技法を実施し得る例示的なビデオデコーダを示すブロック図。
【図４】ネットワークの一部を形成するデバイスの例示的なセットを示すブロック図。
【図５】本開示の１つまたは複数の技法による、ファイルの例示的な構造を示す概念図。
【図６】本開示の１つまたは複数の技法による、ファイルの例示的な構造を示す概念図。
【図７】本開示の１つまたは複数の技法による、ファイル生成デバイスの例示的な動作を示すフローチャート。
【図８】本開示の１つまたは複数の技法による、コンピューティングデバイスがランダムアクセスおよび／またはレベル切替えを実行する例示的な動作を示すフローチャート。
【図９】本開示の１つまたは複数の技法による、ファイル生成デバイスの例示的な動作を示すフローチャート。
【図１０】本開示の１つまたは複数の技法による、コンピューティングデバイスの例示的な動作を示すフローチャート。
【図１１】本開示の１つまたは複数の技法による、ファイル生成デバイスの例示的な動作を示すフローチャート。
【図１２】本開示の１つまたは複数の技法による、宛先デバイスの例示的な動作を示すフローチャート。
【発明を実施するための形態】
【００１７】
[0028]ＩＳＯベースのメディアファイルフォーマット（ＩＳＯＢＭＦＦ）は、メディアデータを記憶するためのファイルフォーマットである。ＩＳＯＢＭＦＦは、特定のビデオコーディング規格に準拠するビデオデータの記憶をサポートするように拡張可能である。たとえば、ＩＳＯＢＭＦＦは以前、Ｈ．２６４／ＡＶＣおよびＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）ビデオコーディング規格に準拠するビデオデータの記憶をサポートするように、拡張されている。さらに、ＩＳＯＢＭＦＦは以前、Ｈ．２６４／ＡＶＣのマルチビューコーディング（ＭＶＣ）およびスケーラブルビデオコーディング（ＳＶＣ）拡張に準拠するビデオデータの記憶をサポートするように拡張されている。ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣ、およびＳＨＶＣは、マルチレイヤビデオデータをサポートするＨＥＶＣビデオコーディング規格の拡張である。Ｈ．２６４／ＡＶＣのＭＶＣおよびＳＶＣ拡張に準拠するビデオデータの記憶のためにＩＳＯＢＭＦＦに追加される特徴は、ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣ、およびＳＨＶＣに準拠するビデオデータの効果的な記憶には十分ではない。言い換えると、ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣ、およびＳＨＶＣに準拠するビデオデータの記憶のために、Ｈ．２６４／ＡＶＣのＭＶＣおよびＳＶＣ拡張に準拠するビデオデータの記憶のためのＩＳＯＢＭＦＦの拡張を使用しようとすると、様々な問題が生じ得る。
【００１８】
[0029]たとえば、Ｈ．２６４／ＡＶＣのＭＶＣまたはＳＶＣ拡張に準拠するビットストリームとは異なり、ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣ、またはＳＨＶＣに準拠するビットストリームは、イントラランダムアクセスポイント（ＩＲＡＰ）ピクチャと非ＩＲＡＰピクチャとを含むアクセスユニットを含み得る。ＩＲＡＰピクチャと非ＩＲＡＰピクチャとを含むアクセスユニットは、ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣ、およびＳＨＶＣではランダムアクセスのために使用され得る。しかしながら、ＩＳＯＢＭＦＦおよびその既存の拡張は、そのようなアクセスユニットを特定する方法を提供しない。このことは、コンピューティングデバイスがランダムアクセスとレイヤ切替えとを実行するための能力を妨げ得る。
【００１９】
[0030]したがって、本開示の一例によれば、コンピューティングデバイスは、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成することができる。トラックのためのメディアデータは、サンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータ（たとえば、ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣ、またはＳＨＶＣビデオデータ）のビデオアクセスユニットであり得る。ファイルを生成することの一部として、コンピューティングデバイスは、ファイルにおいて、少なくとも１つのＩＲＡＰピクチャを含むサンプルのすべてを記録する（document）追加のボックスを生成することができる。追加のボックス中の情報に基づいてＩＲＡＰピクチャを含むサンプルを決定できることで、ファイルを受信するコンピューティングデバイスは、ＮＡＬユニットを解析し解釈することなく、ランダムアクセスとレイヤ切替えとを実行することが可能になり得る。このことは、複雑さと処理時間とを低減し得る。
【００２０】
[0031]さらに、ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣ、およびＳＨＶＣビデオデータのようなマルチレイヤビデオデータは、各アクセスユニットについて複数のコーディングされたピクチャを含み得る。しかしながら、ＩＳＯＢＭＦＦおよびその既存の拡張は、アクセスユニット中に複数の符号化されたピクチャがあるときに、アクセスユニット内の個々のコーディングされたピクチャに関する情報を提供しない。したがって、コンピューティングデバイス（たとえば、ストリーミングサーバ）がファイル中のＮＡＬユニットを転送するかどうか決定している例では、コンピューティングデバイスは、ＮＡＬユニットを転送するかどうかを決定するために、ＮＡＬユニットに記憶されている情報を解析して解釈する必要があり得る。ＮＡＬユニットに記憶されている情報を解析して解釈することは、コンピューティングデバイスの複雑さを高めることがあり、ストリーミングの遅延を増やすことがある。
【００２１】
[0032]したがって、本開示の一例によれば、コンピューティングデバイスは、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成することができる。トラックのためのメディアデータは、サンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットである。ファイルを生成することの一部として、コンピューティングデバイスは、ファイル中に、サブサンプル情報ボックス中で与えられるサブサンプル情報のタイプを指定するフラグを含むサブサンプル情報ボックスを生成する。そのフラグがある特定の値を有するとき、サブサンプル情報ボックスに対応するサブサンプルは、ちょうど１つのコーディングされたピクチャと、当該コーディングされたピクチャと関連付けられる０個以上の非ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットとを含む。このようにして、ファイルを受信するコンピューティングデバイスは、ファイルのサンプル内の個々のコーディングされたピクチャに関する決定を行うために、サブサンプル情報ボックス中で与えられるサブサンプル情報を使用することが可能であり得る。コーディングされたピクチャと関連付けられる非ＶＣＬ  ＮＡＬユニットは、当該コーディングされたピクチャに適用可能なパラメータセット（たとえば、ＰＰＳ、ＳＰＳ、ＶＰＳ）およびＳＥＩのためのＮＡＬユニットを含み得る。
【００２２】
[0033]マルチレイヤビデオデータにおいて、アクセスユニットは、出力のためのものと示されている（標識されている（marked））コーディングされたピクチャと、出力のためのものと示されていないコーディングされたピクチャとを含み得る。ビデオデコーダは、出力のためのものと示されていないコーディングされたピクチャを、出力のためのものと示されているピクチャを復号するための参照ピクチャとして使用することができる。ピクチャのスライスのＮＡＬユニットのためのＮＡＬユニットヘッダは、ピクチャが出力のためのものと示されているかどうかを示す、ピクチャ出力フラグ（たとえば、ＨＥＶＣにおけるｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇ）を含み得る。ＩＳＯＢＭＦＦファイルでは、各サンプルは、サンプルがいつ出力されるべきかを示す出力時間（たとえば、合成時間）と関連付けられることが要求される。しかしながら、出力のためのものと示されていないピクチャは、出力時間を有しない。したがって、出力のためのものと示されていないピクチャの存在は、ＩＳＯＢＭＦＦのこの要求に違反することがあり、または非標準的な回避技法を必要とすることがある。
【００２３】
[0034]したがって、本開示の１つまたは複数の技法によれば、コンピューティングデバイスは、メディアコンテンツを含むメディアデータボックスを備えるファイルを生成することができる。メディアコンテンツは、サンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータのアクセスユニットを備える。ファイルを生成することの一部として、コンピューティングデバイスは、マルチレイヤビデオデータのビットストリームの少なくとも１つのアクセスユニットが、第１の値（たとえば、１）に等しいピクチャ出力フラグを有するコーディングされたピクチャと、第２の値（たとえば、０）に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むという決定に応答して、ファイルにビットストリームを記憶するために少なくとも２つのトラックを使用することができる。少なくとも２つのトラックからの各それぞれのトラックに対して、それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のピクチャ出力フラグを有する。第１の値（たとえば、１）に等しいピクチャ出力フラグを有するピクチャは、出力されることが許可され、第２の値（たとえば、０）に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることが許可されるが、出力されることは許可されない。少なくとも２つのトラックの使用は、上で説明された問題を解決することができ、それは、各トラック中の各サンプルが適切な出力時間を割り当てられ得、ビデオデコーダは出力されることが許可されないサンプルを含むトラック中のピクチャを出力し得ないからである。
【００２４】
[0035]本開示の技法の説明の大半は、ＭＶ−ＨＥＶＣと、３Ｄ−ＨＥＶＣと、ＳＨＶＣとを説明するが、本開示の技法は、他のビデオコーディング規格および／またはその拡張に適用可能であり得ることを、読者は理解するだろう。
【００２５】
[0036]図１は、本開示で説明される技法を使用することができる、例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示されているように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化されたビデオデータを生成するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信に対応し得る。ソースデバイス１２および宛先デバイス１４は、ビデオデバイスと見なされ得る。
【００２６】
[0037]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムのような、ソース、またはそのようなソースの組合せを含み得る。しかしながら、本開示で説明される技法は、ビデオコーディング全般に適用可能であってよく、ワイヤレスおよび／または有線の適用例に適用され得る。
【００２７】
[0038]ビデオエンコーダ２０は、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータで生成されたビデオを符号化することができる。ソースデバイス１２は、符号化されたビデオデータを、ソースデバイス１２の出力インターフェース２２を介して宛先デバイス１４に直接送信することができる。符号化されたビデオデータは、さらに（または代替的に）、復号および／または再生のための宛先デバイス１４または他のデバイスによる後のアクセスのために、記憶デバイス３３に記憶され得る。
【００２８】
[0039]宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。場合によっては、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を通じて、符号化されたビデオデータを受信する。リンク１６を通じて通信され、または記憶デバイス３３上に与えられた符号化されたビデオデータは、ビデオデータを復号する際にビデオデコーダ３０などのビデオデコーダが使用するための、ビデオエンコーダ２０によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信される、記憶媒体上に記憶される、またはファイルサーバ上に記憶される、符号化されたビデオデータとともに含まれ得る。
【００２９】
[0040]ディスプレイデバイス３２は、宛先デバイス１４と一体化されてよく、またはその外部にあってよい。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含んでよく、外部のディスプレイデバイスとインターフェースするように構成されてもよい。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。一般に、ディスプレイデバイス３２は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを備え得る。
【００３０】
[0041]ビデオエンコーダ２０およびビデオデコーダ３０は各々、１つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せのような、様々な適切なエンコーダ回路のいずれかとして実装され得る。本技法がソフトウェアで部分的に実装されるとき、デバイスは、ソフトウェアに対する命令を適切な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために、１つまたは複数のプロセッサを使用して命令をハードウェアで実行することができる。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダの中に含まれてよく、そのいずれかが、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合されてよい。
【００３１】
[0042]宛先デバイス１４は、リンク１６を介して、復号されるべき符号化されたビデオデータを受信することができる。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化されたビデオデータを移すことが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク１６は、ソースデバイス１２が、符号化されたビデオデータをリアルタイムで宛先デバイス１４に直接送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、高周波（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送線路のような、任意のワイヤレスまたは有線の通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【００３２】
[0043]代替的に、出力インターフェース２２は、記憶デバイス３３に符号化されたデータを出力することができる。同様に、入力インターフェース２８は、符号化されたデータ記憶デバイス３３にアクセスすることができる。記憶デバイス３３は、ハードドライブ、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体のような、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイス３３は、ソースデバイス１２によって生成された符号化されたビデオを保持し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、記憶デバイス３３から記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス１４に送信することが可能な任意のタイプのサーバであってよい。例示的なファイルサーバは、（たとえば、ウェブサイト用の）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続記憶（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む、任意の標準的なデータ接続を介して、符号化されたビデオデータにアクセスすることができる。これは、ファイルサーバ上に記憶されている符号化されたビデオデータにアクセスするのに適した、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、有線接続（たとえば、ＤＳＬ、ケーブルモデムなど）、またはその両方の組合せを含み得る。記憶デバイス３３からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００３３】
[0044]本開示の技法は、必ずしもワイヤレスの適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティングおよび／またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００３４】
[0045]さらに、図１の例では、ビデオコーディングシステム１０はファイル生成デバイス３４を含む。ファイル生成デバイス３４は、ソースデバイス１２によって生成された符号化されたビデオデータを受信することができる。ファイル生成デバイス３４は、符号化されたビデオデータを含むファイルを生成することができる。宛先デバイス１４は、ファイル生成デバイス３４によって生成されるファイルを受信することができる。様々な例において、ファイル生成デバイス３４は、様々なタイプのコンピューティングデバイスを含み得る。たとえば、ファイル生成デバイス３４は、メディア認識ネットワーク要素（ＭＡＮＥ：Media Aware Network Element）、サーバコンピューティングデバイス、パーソナルコンピューティングデバイス、専用コンピューティングデバイス、商用コンピューティングデバイス、または別のタイプのコンピューティングデバイスを備え得る。いくつかの例では、ファイル生成デバイス３４は、コンテンツ配信ネットワークの一部である。ファイル生成デバイス３４は、リンク１６のようなチャネルを介してソースデバイス１２から符号化されたビデオデータを受信することができる。さらに、宛先デバイス１４は、リンク１６のようなチャネルを介してファイル生成デバイス３４からファイルを受信することができる。ファイル生成デバイス３４は、ビデオデバイスと見なされ得る。
【００３５】
[0046]他の例では、ソースデバイス１２または別のコンピューティングデバイスは、符号化されたビデオデータを含むファイルを生成することができる。しかしながら、説明を簡単にするために、本開示は、ファイルを生成するものとしてファイル生成デバイス３４を説明する。それでも、そのような説明はコンピューティングデバイス全般に適用可能であることを理解されたい。
【００３６】
[0047]ビデオエンコーダ２０およびビデオデコーダ３０は、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格およびその拡張のような、ビデオ圧縮規格に従って動作し得る。ＨＥＶＣ規格は、ＩＳＯ／ＩＥＣ  ２３００８−２とも呼ばれ得る。最近、ＨＥＶＣの設計は、ＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）とＩＳＯ／ＩＥＣ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とのＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって完成された。以後ＨＥＶＣ  ＷＤと呼ばれる、最新のＨＥＶＣドラフト仕様は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１４＿Ｖｉｅｎｎａ／ｗｇ１１／ＪＣＴＶＣ−Ｎ１００３−ｖ１．ｚｉｐから入手可能である。ＨＥＶＣに対するマルチビュー拡張、すなわちＭＶ−ＨＥＶＣも、ＪＣＴ−３Ｖによって開発中である。以後ＭＶ−ＨＥＶＣ  ＷＤ５と呼ばれる、「ＭＶ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｘｔ  ５」という表題の、ＭＶ−ＨＥＶＣの最近のワーキングドラフト（ＷＤ）は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／５＿Ｖｉｅｎｎａ／ｗｇ１１／ＪＣＴ３Ｖ−Ｅ１００４−ｖ６．ｚｉｐから入手可能である。ＳＨＶＣと称するＨＥＶＣに対するスケーラブル拡張も、ＪＣＴ−ＶＣによって開発中である。以後ＳＨＶＣ  ＷＤ３と呼ばれる、「Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）  ｓｃａｌａｂｌｅ  ｅｘｔｅｎｓｉｏｎ  ｄｒａｆｔ  ３」という表題の、ＳＨＶＣの最新のワーキングドラフト（ＷＤ）は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１４＿Ｖｉｅｎｎａ／ｗｇ１１／ＪＣＴＶＣ−Ｎ１００８−ｖ３．ｚｉｐから入手可能である。ＨＥＶＣの範囲の拡張の最新のワーキングドラフト（ＷＤ）は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１４＿Ｖｉｅｎｎａ／ｗｇ１１／ＪＣＴＶＣ−Ｎ１００５−ｖ３．ｚｉｐから入手可能である。「３Ｄ−ＨＥＶＣ  Ｄｒａｆｔ  Ｔｅｘｔ  １」という表題の、ＨＥＶＣの３Ｄ拡張、すなわち３Ｄ−ＨＥＶＣの最新のワーキングドラフト（ＷＤ）は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／５＿Ｖｉｅｎｎａ／ｗｇ１１／ＪＣＴ３Ｖ−Ｅ１００１−ｖ３．ｚｉｐから入手可能である。ビデオエンコーダ２０およびビデオデコーダ３０は、これらの規格の１つまたは複数に従って動作し得る。
【００３７】
[0048]代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、他のプロプライエタリ規格、もしくは、ＭＰＥＧ−４，Ｐａｒｔ  １０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と代替的に呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格のような業界規格、または、そのような規格の拡張に従って動作することができる。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、および、スケーラブルビデオコーディング（ＳＶＣ）拡張とマルチビュービデオコーディング（ＭＶＣ）拡張とを含む（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４を含む。
【００３８】
[0049]図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は各々、オーディオエンコーダおよびデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。ＭＵＸ−ＤＥＭＵＸユニットは、適用可能な場合、いくつかの例では、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータプロトコル（ＵＤＰ）のような他のプロトコルに適合し得る。
【００３９】
[0050]ＪＣＴ−ＶＣは、ＨＥＶＣ規格の開発に取り組んでいる。ＨＥＶＣ規格化の取組みは、ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ（ＨＭ）と呼ばれるビデオコーディングデバイスの進化するモデルに基づく。ＨＭは、たとえばＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対する、ビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、Ｈ．２６４／ＡＶＣは、９つのイントラ予測符号化モードを提供するが、ＨＭは、３３個もの多数のイントラ予測符号化モードを提供することができる。
【００４０】
[0051]全般に、ＨＭの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含むツリーブロックまたは最大コーディングユニット（ＬＣＵ）のシーケンスに分割され得ることを記述する。ツリーブロックは、「コーディングツリーユニット」（ＣＴＵ）とも呼ばれ得る。ツリーブロックは、Ｈ．２６４／ＡＶＣ規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序での、いくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、四分木に従ってコーディングユニット（ＣＵ）に分割され得る。たとえば、４分木のルートノードとしてのツリーブロックは、４つの子ノードに分割されてよく、各子ノードは、今度は親ノードとなり、別の４つの子ノードに分割されてよい。４分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード、すなわち、コーディングされたビデオブロックを備える。コーディングされたビットストリームと関連付けられるシンタックスデータは、ツリーブロックが分割され得る最大の回数を定義することができ、コーディングノードの最小のサイズを定義することもできる。
【００４１】
[0052]ＣＵは、コーディングノードと、コーディングノードと関連付けられる予測ユニット（ＰＵ）および変換ユニット（ＴＵ）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状が四角形（square）でなければならない。ＣＵのサイズは、８×８ピクセルから、最大で６４×６４ピクセルまたはそれを越えるツリーブロックのサイズにまでわたり得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。ＣＵと関連付けられるシンタックスデータは、たとえば、ＣＵの１つまたは複数のＰＵへの区分を記述し得る。区分モードは、ＣＵがスキップモード符号化もしくは直接モード符号化されるのか、イントラ予測モード符号化されるのか、またはインター予測モード符号化されるのかによって異なり得る。ＰＵは、形状が非方形となるように区分され得る。ＣＵと関連付けられるシンタックスデータは、たとえば、４分木に従った１つまたは複数のＴＵへのＣＵの区分を記述し得る。ＴＵは、形状が方形または非方形であり得る。
【００４２】
[0053]ＨＥＶＣ規格は、異なるＣＵに対して異なり得る、ＴＵに従った変換を可能にする。ＴＵは通常、区分されたＬＣＵについて定義される所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、必ずそうなっているとは限らない。ＴＵは通常、ＰＵ以下のサイズである。いくつかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ）として知られる４分木構造を使用して、より小さいユニットに再分割され得る。ＲＱＴのリーフノードは、ＴＵと呼ばれ得る。ＴＵと関連付けられるピクセル差分値は、量子化され得る変換係数を生成するために変換され得る。
【００４３】
[0054]一般に、ＰＵは、予測プロセスに関するデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの動きベクトルを定義するデータを含み得る。ＰＵの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの分解能（resolution）（たとえば、１／４ピクセル精度または１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルの参照ピクチャリスト（たとえば、リスト０、リスト１、またはリストＣ）を記述することができる。
【００４４】
[0055]一般に、ＴＵは、変換プロセスおよび量子化プロセスのために使用される。１つまたは複数のＰＵを有する所与のＣＵは、１つまたは複数の変換ユニット（ＴＵ）も含み得る。予測の後に、ビデオエンコーダ２０は、ＰＵに対応する残差値を計算することができる。残差値はピクセル差分値を備え、ピクセル差分値は、エントロピーコーディングのための直列化された変換係数を生成するために、ＴＵを使用して変換係数に変換され、量子化され、走査され得る。本開示は通常、ＣＵのコーディングノード（すなわち、コーディングブロック）を指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合には、本開示はまた、コーディングノードとＰＵとＴＵと含む、ツリーブロック、すなわち、ＬＣＵまたはＣＵを指すために、「ビデオブロック」という用語を使用し得る。
【００４５】
[0056]ビデオシーケンスは通常、一連のビデオフレームまたはピクチャを含む。ピクチャグループ（ＧＯＰ）は、一般に、ビデオピクチャのうちの一連の１つまたは複数を備える。ＧＯＰは、ＧＯＰに含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ、ピクチャの１つもしくは複数のヘッダ、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、ＣＵ内のコーディングノードに対応し得る。ビデオブロックは、固定されたサイズまたは変化するサイズを有してよく、指定されるコーディング規格によってサイズが異なり得る。
【００４６】
[0057]例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでのイントラ予測と、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称的なＰＵサイズでのインター予測とをサポートする。ＨＭは、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をもサポートする。非対称区分では、ＣＵの一方の方向は、区分されず、他方の方向は、２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とそれに続く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」の表示とによって示される。したがって、たとえば、「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵおよび下部の２Ｎ×１．５Ｎ  ＰＵへと水平に区分される２Ｎ×２Ｎ  ＣＵを指す。
【００４７】
[0058]本開示では、「Ｎ×Ｎ」および「Ｎ  ｂｙ  Ｎ」は、垂直方向の寸法および水平方向の寸法に関するビデオブロックのピクセル寸法、たとえば、１６×１６ピクセルまたは１６  ｂｙ  １６ピクセルを指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６ピクセル（ｙ＝１６）、および水平方向に１６ピクセル（ｘ＝１６）を有する。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセル、および水平方向にＮピクセルを有し、ここでＮは非負の整数値を表す。ブロック中のピクセルは、行および列に配置され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはＮ×Ｍピクセルを備えてよく、この場合に、Ｍは必ずしもＮに等しいとは限らない。
【００４８】
[0059]ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオエンコーダ２０は、ＣＵのＴＵのための残差データを計算することができる。ＰＵは、（ピクセル領域とも呼ばれる）空間領域におけるピクセルデータを備えてよく、ＴＵは、変換、たとえば、残差ビデオデータに対する離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の適用の後の、変換領域における係数を備えてよい。残差データは、符号化されていないピクチャのピクセルとＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＣＵのための変換係数を生成するためにＴＵを変換することができる。
【００４９】
[0060]変換係数を生成するためのあらゆる変換の後で、ビデオエンコーダ２０は、変換係数の量子化を実行することができる。量子化は一般に、係数を表すために使用されるデータの量をできるだけ低減するために、変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。量子化プロセスは、係数の一部またはすべてと関連付けられるビット深度を低減することができる。たとえば、ｎビットの値は、量子化の間にｍビットの値に切り捨てられてよく、ここで、ｎはｍよりも大きい。
【００５０】
[0061]いくつかの例では、ビデオエンコーダ２０は、量子化された変換係数を走査して、エントロピー符号化され得る直列化されたベクトルを生成するために、あらかじめ定義された走査順序を使用することができる。他の例では、ビデオエンコーダ２０は、適応走査を実行することができる。量子化された変換係数を走査して１次元ベクトルを形成した後に、ビデオエンコーダ２０は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング、または別のエントロピー符号化方法に従って、１次元ベクトルをエントロピー符号化することができる。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用するための、符号化されたビデオデータと関連付けられるシンタックス要素をエントロピー符号化することができる。
【００５１】
[0062]ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当てることができる。コンテキストは、たとえば、シンボルの隣接値が０ではないかどうかに関係し得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルの可変長コードを選択することができる。可変長コーディング（ＶＬＣ）におけるコードワードは、比較的短いコードが優勢シンボルに対応する一方で、より長いコードが劣勢シンボルに対応するように構成され得る。このように、ＶＬＣの使用は、たとえば、送信されるべき各シンボルに対して等長のコードワードを使用するよりもビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【００５２】
[0063]ビデオエンコーダ２０は、コーディングされたピクチャおよび関連付けられるデータの表現を形成するビットのシーケンスを含むビットストリームを出力することができる。「ビットストリーム」という用語は、ネットワーク抽象化レイヤ（ＮＡＬ）ユニットストリーム（たとえば、ＮＡＬユニットのシーケンス）、またはバイトストリーム（たとえば、ＨＥＶＣ規格のＡｎｎｅｘ  Ｂによって指定されたスタートコードプレフィックスとＮＡＬユニットとを含むＮＡＬユニットストリームのカプセル化）のいずれかを指すために使用される総称であり得る。ＮＡＬユニットは、ＮＡＬユニット中のデータのタイプの指示と、必要に応じてエミュレーション防止ビットが点在するローバイトシーケンスペイロード（ＲＢＳＰ：raw byte sequence payload）の形態でそのデータを含むバイトとを含む、シンタックス構造である。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含んでよく、ＲＢＳＰをカプセル化することができる。ＮＡＬユニットヘッダは、ＮＡＬユニットタイプコードを示すシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって指定されるＮＡＬユニットタイプコードは、ＮＡＬユニットのタイプを示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化された整数個のバイトを含むシンタックス構造であり得る。いくつかの事例では、ＲＢＳＰは０ビットを含む。
【００５３】
[0064]様々なタイプのＮＡＬユニットは、様々なタイプのＲＢＳＰをカプセル化することができる。たとえば、第１のタイプのＮＡＬユニットはピクチャパラメータセット（ＰＰＳ）のためのＲＢＳＰをカプセル化することができ、第２のタイプのＮＡＬユニットはスライスセグメントのためのＲＢＳＰをカプセル化することができ、第３のタイプのＮＡＬユニットは補助強化情報（ＳＥＩ：supplemental enhancement information）のためのＲＢＳＰをカプセル化することができ、以下同様である。ビデオコーディングデータのためのＲＢＳＰをカプセル化するＮＡＬユニットは（パラメータセットおよびＳＥＩメッセージのためのＲＢＳＰとは対照的に）、ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと呼ばれ得る。パラメータセット（たとえば、ビデオパラメータセット（ＶＰＳ）、シーケンスパラメータセット（ＳＰＳ）、ＰＰＳなど）を含むＮＡＬユニットは、パラメータセットＮＡＬユニットと呼ばれ得る。
【００５４】
[0065]本開示は、セグメントスライスのためのＲＢＳＰをカプセル化するＮＡＬユニットを、コーディングされたスライスＮＡＬユニットと呼び得る。ＨＥＶＣ  ＷＤにおいて定められるように、スライスセグメントは、タイル走査において連続的に順序付けられ単一のＮＡＬユニットに含まれる整数個のＣＴＵである。対照的に、ＨＥＶＣ  ＷＤでは、スライスは、１つの独立したスライスセグメントと、同じアクセスユニット内の（もしあれば）次の独立スライスセグメントに先行する（もしあれば）すべての後続の従属スライスセグメントとに含まれる、整数個のＣＴＵであり得る。独立スライスセグメントは、スライスセグメントヘッダのシンタックス要素の値が先行するスライスセグメントの値から推測されない、スライスセグメントである。従属スライスセグメントは、スライスセグメントヘッダの一部のシンタックス要素の値が復号順序で先行する独立スライスセグメントの値から推測される、スライスセグメントである。コーディングされたスライスＮＡＬユニットのＲＢＳＰは、スライスセグメントヘッダとスライスデータとを含み得る。スライスセグメントヘッダは、スライスセグメントにおいて表される最初のまたはすべてのＣＴＵに関するデータ要素を含む、コーディングされたスライスセグメントの一部である。スライスヘッダは、現在のスライスセグメントである、または復号順序で現在の従属スライスセグメントに先行する直近の独立スライスセグメントである、独立スライスセグメントのスライスセグメントヘッダである。
【００５５】
[0066]ＶＰＳは、０個以上のコーディングされたビデオシーケンス（ＣＶＳ）全体に適用されるシンタックス要素を備えるシンタックス構造である。ＳＰＳは、０個以上のＣＶＳ全体に適用されるシンタックス要素を含むシンタックス構造である。ＳＰＳは、ＳＰＳがアクティブであるときにアクティブであるＶＰＳを特定するシンタックス要素を含み得る。したがって、ＶＰＳのシンタックス要素は、ＳＰＳのシンタックス要素よりも一般的に適用可能であり得る。
【００５６】
[0067]パラメータセット（たとえば、ＶＰＳ、ＳＰＳ、ＰＰＳなど）は、スライスのスライスヘッダから直接または間接的に参照される識別情報を含み得る。参照プロセスは「アクティブ化」として知られる。したがって、ビデオデコーダ３０が特定のスライスを復号しているとき、その特定のスライスのスライスヘッダ中のシンタックス要素によって直接または間接的に参照されるパラメータセットは「アクティブ化される」と言われる。パラメータセットタイプに応じて、アクティブ化は、ピクチャごとにまたはシーケンスごとに行われ得る。たとえば、スライスのスライスヘッダは、ＰＰＳを特定するシンタックス要素を含み得る。したがって、ビデオコーダがスライスをコーディングするとき、ＰＰＳはアクティブ化され得る。さらに、ＰＰＳは、ＳＰＳを特定するシンタックス要素を含み得る。したがって、ＳＰＳを特定するＰＰＳがアクティブ化されるとき、ＳＰＳはアクティブ化され得る。ＳＰＳは、ＶＰＳを特定するシンタックス要素を含み得る。したがって、ＶＰＳを特定するＳＰＳがアクティブ化されるとき、ＶＰＳはアクティブ化される。
【００５７】
[0068]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信することができる。加えて、ビデオデコーダ３０は、ビットストリームを解析して、ビットストリームからシンタックス要素を取得することができる。ビデオデコーダ３０は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構築することができる。ビデオデータを再構築するためのプロセスは、全般に、ビデオエンコーダ２０によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ３０は、現在ＣＵのＰＵの予測ブロックを決定するために、ＰＵの動きベクトルを使用することができる。加えて、ビデオデコーダ３０は、現在のＣＵのＴＵの係数ブロックを逆量子化することができる。ビデオデコーダ３０は、現在のＣＵのＴＵの変換ブロックを再構築するために、係数ブロックに対して逆変換を実行することができる。ビデオデコーダ３０は、現在のＣＵのＰＵの予測ブロックのサンプルを現在のＣＵのＴＵの変換ブロックの対応するサンプルに加算することによって、現在のＣＵのコーディングブロックを再構築することができる。ピクチャの各ＣＵのコーディングブロックを再構築することによって、ビデオデコーダ３０はピクチャを再構築することができる。
【００５８】
[0069]ＨＥＶＣ  ＷＤでは、ＣＶＳは、瞬時復号リフレッシュ（ＩＤＲ）ピクチャ、またはブロークンリンクアクセス（ＢＬＡ）ピクチャ、または、ＩＤＲまたはＢＬＡピクチャではないすべての後続のピクチャを含むビットストリーム中の最初のピクチャであるクリーンランダムアクセス（ＣＲＡ）ピクチャから開始し得る。ＩＤＲピクチャはＩスライス（すなわち、イントラ予測のみが使用されるスライス）のみを含む。ＩＤＲピクチャは、復号順序でビットストリームにおいて最初のピクチャであり得るか、またはビットストリームにおいて後のほうに現れ得る。各ＩＤＲピクチャは、復号順序においてＣＶＳの最初のピクチャである。ＨＥＶＣ  ＷＤでは、ＩＤＲピクチャは、イントラランダムアクセスポイント（ＩＲＡＰ）ピクチャであり得、そのための各ＶＣＬ  ＮＡＬユニットは、ＩＤＲ＿Ｗ＿ＲＡＤＬまたはＩＤＲ＿Ｎ＿ＬＰに等しいｎａｌ＿ｕｎｉｔ＿ｔｙｐｅを有する。
【００５９】
[0070]ＩＤＲピクチャは、ランダムアクセスのために使用され得る。しかしながら、復号順序でＩＤＲピクチャに後続するピクチャは、参照としてＩＤＲピクチャより前に復号されるピクチャを使用することができない。したがって、ランダムアクセスのためにＩＤＲピクチャに依拠するビットストリームは、追加のタイプのランダムアクセスピクチャを使用するビットストリームよりも著しく低いコーディング効率を有し得る。少なくともいくつかの例では、ＩＤＲアクセスユニットは、ＩＤＲピクチャを含むアクセスユニットである。
【００６０】
[0071]復号順序でＣＲＡピクチャに後続するが出力順序でＣＲＡピクチャに先行するピクチャが、参照のためにＣＲＡピクチャの前に復号されるピクチャを使用することを可能にするために、ＣＲＡピクチャの概念がＨＥＶＣに導入された。復号順序でＣＲＡピクチャに後続するが出力順序でＣＲＡピクチャに先行するピクチャは、ＣＲＡピクチャと関連付けられるリーディング（leading）ピクチャ（またはＣＲＡピクチャのリーディングピクチャ）と呼ばれる。すなわち、コーディング効率を改善するために、復号順序でＣＲＡピクチャに後続するが出力順序でＣＲＡピクチャに先行するピクチャが、参照のためにＣＲＡピクチャの前に復号されるピクチャを使用することを可能にするように、ＣＲＡピクチャの概念がＨＥＶＣに導入された。ＣＲＡアクセスユニットは、コーディングされたピクチャがＣＲＡピクチャであるアクセスユニットである。ＨＥＶＣ  ＷＤでは、ＣＲＡピクチャは、イントラランダムアクセスピクチャであり得、そのための各ＶＣＬ  ＮＡＬユニットはＣＲＡ＿ＮＵＴに等しいｎａｌ＿ｕｎｉｔ＿ｔｙｐｅを有する。
【００６１】
[0072]ＣＲＡピクチャのリーディングピクチャは、復号順序でそのＣＲＡピクチャの前に存在するＣＲＡピクチャまたはＩＤＲピクチャから復号が開始する場合、正しく復号可能である。しかしながら、ＣＲＡピクチャのリーディングピクチャは、そのＣＲＡピクチャからのランダムアクセスが行われるとき、復号不可能であり得る。したがって、ビデオデコーダは通常、ランダムアクセス復号の間にＣＲＡピクチャのリーディングピクチャを復号する。復号が始まる場所によっては利用可能でないことがある参照ピクチャからの誤りの伝搬を防止するために、復号順序と出力順序の両方でＣＲＡピクチャに後続するピクチャは、復号順序または出力順序のいずれかでＣＲＡピクチャに先行するいずれのピクチャ（リーディングピクチャを含む）も参照のために使用することができない。
【００６２】
[0073]ＢＬＡピクチャの概念は、ＣＲＡピクチャの導入の後にＨＥＶＣに導入され、ＣＲＡピクチャの概念に基づく。ＢＬＡピクチャは通常、ＣＲＡピクチャの位置におけるビットストリームのスプライシング（splicing）から生じ、スプライシングされたビットストリームにおいて、スプライシングポイントのＣＲＡピクチャはＢＬＡピクチャに変更される。したがって、ＢＬＡピクチャは元のビットストリームにおけるＣＲＡピクチャであってよく、ＣＲＡピクチャは、ＣＲＡピクチャの位置におけるビットストリームのスプライシングの後でビットストリームスプライサによってＢＬＡピクチャとなるように変更される。いくつかの例では、ＲＡＰピクチャを含むアクセスユニットは、本明細書ではＲＡＰアクセスユニットと呼ばれ得る。ＢＬＡアクセスユニットは、ＢＬＡピクチャを含むアクセスユニットである。ＨＥＶＣ  ＷＤでは、ＢＬＡピクチャはイントラランダムアクセスピクチャであり得、そのための各ＶＣＬ  ＮＡＬユニットは、ＢＬＡ＿Ｗ＿ＬＰ、ＢＬＡ＿Ｗ＿ＲＡＤＬ、またはＢＬＡ＿Ｎ＿ＬＰに等しいｎａｌ＿ｕｎｉｔ＿ｔｙｐｅが有する。
【００６３】
[0074]一般に、ＩＲＡＰピクチャは、Ｉスライスのみを含み、ＢＬＡピクチャ、ＣＲＡピクチャ、またはＩＤＲピクチャであり得る。たとえば、ＨＥＶＣ  ＷＤは、ＩＲＡＰピクチャが、そのための各ＶＣＬ  ＮＡＬユニットが、両端値を含めてＢＬＡ＿Ｗ＿ＬＰからＲＳＶ＿ＩＲＡＰ＿ＶＣＬ２３の範囲のｎａｌ＿ｕｎｉｔ＿ｔｙｐｅを有する、コーディングされたピクチャであり得ることを示す。さらに、ＨＥＶＣ  ＷＤは、復号順序でのビットストリームにおける最初のピクチャがＩＲＡＰピクチャでなければならないことを示す。ＨＥＶＣ  ＷＤの表７−１は、ＮＡＬユニットタイプコードとＮＡＬユニットタイプクラスとを示す。ＨＥＶＣ  ＷＤの表７−１が以下で転載される。
【００６４】
【表１−１】
0006434008.tif 000002
【００６５】
【表１−２】
0006434008.tif 000003
【００６６】
[0075]ＢＬＡピクチャとＣＲＡピクチャとの１つの違いは以下の通りである。ＣＲＡピクチャの場合、関連付けられたリーディングピクチャは、復号順序でそのＣＲＡピクチャの前にあるＲＡＰピクチャから復号が開始する場合、正しく復号可能である。しかしながら、ＣＲＡピクチャと関連付けられたリーディングピクチャは、そのＣＲＡピクチャからのランダムアクセスが行われるとき（すなわち、復号がＣＲＡピクチャから開始するとき、または言い換えると、ＣＲＡピクチャがビットストリーム中の最初のピクチャであるとき）、正しく復号可能ではないことがある。対照的に、復号順序でＢＬＡピクチャの前にあるＲＡＰピクチャから復号が開始するときでも、ＢＬＡピクチャと関連付けられるリーディングピクチャが復号可能であるシナリオは存在し得ない。
【００６７】
[0076]特定のＣＲＡピクチャまたは特定のＢＬＡピクチャと関連付けられるリーディングピクチャのいくつかは、その特定のＣＲＡピクチャまたは特定のＢＬＡピクチャがビットストリーム中の最初のピクチャであるときでも、正しく復号可能であり得る。これらのリーディングピクチャは復号可能リーディングピクチャ（ＤＬＰ：decodable leading picture）またはランダムアクセス復号可能リーディング（ＲＡＤＬ：random access decodable leading）ピクチャと呼ばれ得る。ＨＥＶＣ  ＷＤでは、ＲＡＤＬピクチャは、そのための各ＶＣＬ  ＮＡＬユニットが、ＲＡＤＬ＿ＲまたはＲＡＤＬ＿Ｎに等しいｎａｌ＿ｕｎｉｔ＿ｔｙｐｅを有する、コーディングされたピクチャであり得る。さらに、ＨＥＶＣ  ＷＤは、すべてのＲＡＤＬピクチャがリーディングピクチャであることと、ＲＡＤＬピクチャが同じ関連付けられるＩＲＡＰピクチャのトレイリング（trailing）ピクチャの復号プロセスのための参照ピクチャとして使用されないことと、を示す。すべてのＲＡＤＬピクチャは、存在すれば、復号順序において、同じ関連付けられるＩＲＡＰピクチャのすべてのトレイリングピクチャに先行する。ＲＡＤＬアクセスユニットは、コーディングされたピクチャがＲＡＤＬピクチャであるアクセスユニットであり得ることを、ＨＥＶＣ  ＷＤは示す。トレイリングピクチャは、出力順序において、関連付けられるＩＲＡＰピクチャ（すなわち、復号順序において前のＩＲＡＰピクチャ）の後に続くピクチャであり得る。
【００６８】
[0077]他のリーディングピクチャは復号不可能リーディングピクチャ（ＮＬＰ：non-decodable leading picture）またはランダムアクセススキップリーディング（ＲＡＳＬ：random access skipped leading）ピクチャと呼ばれ得る。ＨＥＶＣ  ＷＤでは、ＲＡＳＬピクチャは、そのための各ＶＣＬ  ＮＡＬユニットがＲＡＳＬ＿ＲまたはＲＡＳＬ＿Ｎに等しいｎａｌ＿ｕｎｉｔ＿ｔｙｐｅを有する、コーディングされたピクチャであり得る。すべてのＲＡＳＬピクチャは、関連付けられるＢＬＡピクチャまたはＣＲＡピクチャのリーディングピクチャである。
【００６９】
[0078]必要なパラメータセットが、アクティブ化されることが必要なときに利用可能であるという条件で、ＩＲＡＰピクチャおよび復号順序でのすべての後続の非ＲＡＳＬピクチャは、復号順序においてＩＲＡＰピクチャに先行するいかなるピクチャの復号プロセスも実行することなく、正確に復号され得る。ＩＲＡＰピクチャではないＩスライスのみを含むピクチャがビットストリーム中にあり得る。
【００７０】
[0079]マルチビューコーディングでは、異なる視点からの同じシーンの複数のビューが存在し得る。「アクセスユニット」という用語は、同じ時間インスタンスに対応するピクチャのセットを指すために使用され得る。したがって、ビデオデータは、時間とともに生じる一連のアクセスユニットとして概念化され得る。「ビュー成分」は、単一のアクセスユニット中のビューのコーディングされた表現であり得る。本開示では、「ビュー」は、同じビュー識別子と関連付けられたビュー成分のシーケンスまたはセットを指し得る。ビュー成分は、テクスチャビュー成分と深度ビュー成分とを含み得る。本開示では、「ビュー」は、同じビュー識別子と関連付けられる１つまたは複数のビュー成分のセットまたはシーケンスを指し得る。
【００７１】
[0080]テクスチャビュー成分（すなわち、テクスチャピクチャ）は、単一のアクセスユニット中のビューのテクスチャのコーディングされた表現であり得る。テクスチャビューは、ビュー順序インデックスの同一の値と関連付けられるテクスチャビュー成分のシーケンスであり得る。ビューのビュー順序インデックスは、他のビューに対する当該ビューのカメラ位置を示し得る。深度ビュー成分（すなわち、深度ピクチャ）は、単一のアクセスユニット中のビューの深度のコーディングされた表現であり得る。深度ビューは、ビュー順序インデックスの同一の値と関連付けられる１つまたは複数の深度ビュー成分のセットまたはシーケンスであり得る。
【００７２】
[0081]ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣ、およびＳＨＶＣでは、ビデオエンコーダは、一連のＮＡＬユニットを備えるビットストリームを生成し得る。当該ビットストリームの異なるＮＡＬユニットは、当該ビットストリームの異なるレイヤと関連付けられ得る。レイヤは、同じレイヤ識別子を有するＶＣＬ  ＮＡＬユニットおよび関連付けられる非ＶＣＬ  ＮＡＬユニットのセットとして定義され得る。レイヤは、マルチビュービデオコーディングにおけるビューと等価であり得る。マルチビュービデオコーディングでは、レイヤは、異なる時間インスタンスを伴う同じレイヤのすべてのビュー成分を含み得る。各ビュー成分は、特定の時間インスタンスにおける特定のビューに属するビデオシーンのコーディングされたピクチャであり得る。３Ｄビデオコーディングのいくつかの例では、レイヤは、特定のビューのすべてのコーディングされた深度ピクチャ、または特定のビューのコーディングされたテクスチャピクチャのいずれかを含み得る。３Ｄビデオコーディングの他の例では、レイヤは、特定のビューのテクスチャビュー成分と深度ビュー成分の両方を含み得る。同様に、スケーラブルビデオコーディングの状況において、レイヤは通常、他のレイヤの中のコーディングされたピクチャと異なるビデオ特性を有するコーディングされたピクチャに対応する。そのようなビデオ特性は通常、空間解像度と品質レベル（たとえば、信号対雑音比）とを含む。ＨＥＶＣおよびその拡張では、時間スケーラビリティは、特定の時間レベルを伴うピクチャのグループをサブレイヤとして定義することによって、１つのレイヤ内で達成され得る。
【００７３】
[0082]ビットストリームのそれぞれの各レイヤについて、より低いレイヤの中のデータは、任意のより高いレイヤの中のデータを参照せずに復号され得る。スケーラブルビデオコーディングでは、たとえば、ベースレイヤの中のデータは、エンハンスメントレイヤの中のデータを参照せずに復号され得る。一般に、ＮＡＬユニットは、単一のレイヤのデータをカプセル化するだけであり得る。したがって、ビットストリームの残りの最高次のレイヤのデータをカプセル化するＮＡＬユニットは、ビットストリームの残りのレイヤの中のデータの復号可能性に影響を及ぼすことなく、ビットストリームから除去され得る。マルチビューコーディングおよび３Ｄ−ＨＥＶＣでは、より高いレイヤは、さらなるビュー成分を含み得る。ＳＨＶＣでは、より高次のレイヤは、信号対雑音比（ＳＮＲ）強化データ、空間的エンハンスメントデータ、および／または時間的エンハンスメントデータを含み得る。ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣおよびＳＨＶＣでは、ビデオデコーダが、あるレイヤの中のピクチャをいかなる他のレイヤのデータも参照せずに復号できる場合、そのレイヤは「ベースレイヤ」と呼ばれ得る。ベースレイヤは、ＨＥＶＣベースの規格（たとえば、ＨＥＶＣ  ＷＤ）に準拠し得る。
【００７４】
[0083]ＳＶＣでは、ベースレイヤ以外のレイヤは、「エンハンスメントレイヤ」と呼ばれることがあり、ビットストリームから復号されるビデオデータの視覚的品質を向上させる情報を提供し得る。ＳＶＣは、空間分解能、信号対雑音比（すなわち、品質）、または時間レートを向上させることができる。スケーラブルビデオコーディング（たとえば、ＳＨＶＣ）では、「レイヤ表現」は、単一のアクセスユニット中の空間レイヤのコーディングされた表現であり得る。説明を簡単にするために、本開示は、ビュー成分および／またはレイヤ表現を「ビュー成分／レイヤ表現」または単に「ピクチャ」と呼び得る。
【００７５】
[0084]レイヤを実装するために、ＮＡＬユニットのヘッダは、ｎｕｈ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿６ｂｉｔｓシンタックス要素を含み得る。ＨＥＶＣ  ＷＤでは、ｎｕｈ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿６ｂｉｔｓシンタックス要素は予備（reserved）である。しかしながら、ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣ、およびＳＶＣでは、ｎｕｈ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿６ｂｉｔｓシンタックス要素は、ｎｕｈ＿ｌａｙｅｒ＿ｉｄシンタックス要素と呼ばれる。ｎｕｈ＿ｌａｙｅｒ＿ｉｄシンタックス要素は、レイヤの識別子を指定する。異なる値を指定するｎｕｈ＿ｌａｙｅｒ＿ｉｄシンタックス要素を有するビットストリームのＮＡＬユニットは、ビットストリームの異なるレイヤに属する。
【００７６】
[0085]いくつかの例では、ＮＡＬユニットがマルチビューコーディング（たとえば、ＭＶ−ＨＥＶＣ）、３ＤＶコーディング（たとえば、３Ｄ−ＨＥＶＣ）、またはスケーラブルビデオコーディング（たとえば、ＳＨＶＣ）におけるベースレイヤに関係する場合、ＮＡＬユニットのｎｕｈ＿ｌａｙｅｒ＿ｉｄシンタックス要素は０に等しい。ビットストリームのベースレイヤの中のデータは、ビットストリームのいずれの他のレイヤの中のデータも参照せずに復号され得る。ＮＡＬユニットが、マルチビューコーディング、３ＤＶ、またはスケーラブルビデオコーディングにおけるベースレイヤに関係しない場合、ＮＡＬユニットのｎｕｈ＿ｌａｙｅｒ＿ｉｄシンタックス要素は０ではない値を有し得る。
【００７７】
[0086]さらに、１つのレイヤ内のいくつかのビュー成分／レイヤ表現は、同じレイヤ内の他のビュー成分／レイヤ表現を参照せずに復号され得る。したがって、レイヤのいくつかのビュー成分／レイヤ表現のデータをカプセル化したＮＡＬユニットは、そのレイヤ中の他のビュー成分／レイヤ表現の復号可能性に影響を及ぼすことなくビットストリームから除去され得る。そのようなビュー成分／レイヤ表現のデータをカプセル化したＮＡＬユニットを除去すると、ビットストリームのフレームレートが下がり得る。レイヤ内の他のビュー成分／レイヤ表現を参照せずに復号され得るレイヤ内のビュー成分／レイヤ表現のサブセットは、本明細書では「サブレイヤ」または「時間サブレイヤ」と呼ばれ得る。
【００７８】
[0087]ＮＡＬユニットは、ＮＡＬユニットの時間識別子（すなわち、ＴｅｍｐｏｒａｌＩｄ）を指定するｔｅｍｐｏｒａｌ＿ｉｄシンタックス要素を含み得る。ＮＡＬユニットの時間識別子は、そのＮＡＬユニットが属するサブレイヤを特定する。したがって、ビットストリームの各サブレイヤは、異なる時間識別子を有し得る。一般に、レイヤの第１のＮＡＬユニットの時間識別子が同じレイヤの第２のＮＡＬユニットの時間識別子よりも小さい場合、第１のＮＡＬユニットによってカプセル化されたデータは、第２のＮＡＬユニットによってカプセル化されたデータを参照せずに復号され得る。
【００７９】
[0088]ビットストリームは、複数のオペレーションポイントと関連付けられ得る。ビットストリームの各オペレーションポイントは、レイヤ識別子のセット（たとえば、ｎｕｈ＿ｌａｙｅｒ＿ｉｄ値のセット）および時間識別子と関連付けられる。レイヤ識別子のセットはＯｐＬａｙｅｒＩｄＳｅｔと表記されることがあり、時間識別子はＴｅｍｐｏｒａｌＩＤと表記されることがある。ＮＡＬユニットのレイヤ識別子がオペレーションポイントのレイヤ識別子のセットの中にあり、ＮＡＬユニットの時間識別子がオペレーションポイントの時間識別子以下である場合、ＮＡＬユニットはオペレーションポイントと関連付けられる。したがって、オペレーションポイントは、ビットストリーム中のＮＡＬユニットのサブセットに対応し得る。
【００８０】
[0089]上で紹介されたように、本開示は、ＩＳＯベースのメディアファイルフォーマット（ＩＳＯＢＭＦＦ）に基づくファイルにビデオコンテンツを記憶することに関する。具体的には、本開示は、複数のコーディングされたレイヤを含むビデオストリームを記憶するための様々な技法を説明し、各レイヤは、スケーラブルレイヤ、テクスチャビュー、深度ビュー、または他のタイプのレイヤもしくはビューであり得る。本開示の技法は、たとえば、ＭＶ−ＨＥＶＣビデオデータ、ＳＨＶＣビデオデータ、３Ｄ−ＨＥＶＣビデオデータ、および／または他のタイプのビデオデータの記憶に適用され得る。
【００８１】
[0090]ファイルフォーマットおよびファイルフォーマット規格が、ここで簡単に論じられる。ファイルフォーマット規格は、ＩＳＯベースのメディアファイルフォーマット（ＩＳＯＢＭＦＦ、ＩＳＯ／ＩＥＣ  １４４９６−１２、以後「ＩＳＯ／ＩＥＣ  １４９９６−１２」）と、ＭＰＥＧ−４ファイルフォーマット（ＩＳＯ／ＩＥＣ１４４９６−１４）、３ＧＰＰ（登録商標）ファイルフォーマット（３ＧＰＰ  ＴＳ２６．２４４）、およびＡＶＣファイルフォーマット（ＩＳＯ／ＩＥＣ１４４９６−１５、以後「ＩＳＯ／ＩＥＣ  １４９９６−１５」）を含む、ＩＳＯＢＭＦＦから派生した他のファイルフォーマット規格とを含む。したがって、ＩＳＯ／ＩＥＣ  １４９９６−１２は、ＩＳＯベースのメディアファイルフォーマットを規定する。他の文書は、特定の用途のためにＩＳＯベースのメディアファイルフォーマットを拡張する。たとえば、ＩＳＯ／ＩＥＣ  １４９９６−１５は、ＩＳＯベースのメディアファイルフォーマットにおける、ＮＡＬユニット構造のビデオの搬送を記述する。Ｈ．２６４／ＡＶＣおよびＨＥＶＣ、さらにはそれらの拡張は、ＮＡＬユニット構造のビデオの例である。ＩＳＯ／ＩＥＣ  １４９９６−１５は、Ｈ．２６４／ＡＶＣ  ＮＡＬユニットの搬送を記述するセクションを含む。加えて、ＩＳＯ／ＩＥＣ  １４９９６−１５のセクション８は、ＨＥＶＣ  ＮＡＬユニットの搬送を記述する。
【００８２】
[0091]ＩＳＯＢＭＦＦは、ＡＶＣファイルフォーマットのような多くのコーデックカプセル化フォーマットのための、さらには、ＭＰＥＧ−４ファイルフォーマット、３ＧＰＰファイルフォーマット（３ＧＰ）、およびＤＶＢファイルフォーマットのような多くのマルチメディアコンテナフォーマットのための、基礎として使用され得る。オーディオおよびビデオのような連続的なメディアに加えて、画像、さらにはメタデータのような静的なメディアが、ＩＳＯＢＭＦＦに準拠したファイルに記憶され得る。ＩＳＯＢＭＦＦに従って構成されたファイルは、ローカルメディアファイルの再生、リモートファイルの漸進的なダウンロード、Ｄｙｎａｍｉｃ  Ａｄａｐｔｉｖｅ  Ｓｔｒｅａｍｉｎｇ  ｏｖｅｒ  ＨＴＴＰ（ＤＡＳＨ）のためのセグメント、ストリーミングされるべきコンテンツのためのコンテナおよびそのパケット化命令、ならびに、受信されたリアルタイムメディアストリームの記録を含む、多くの目的のために使用され得る。したがって、元々は記憶のために設計されたが、ＩＳＯＢＭＦＦは、ストリーミング、たとえばプログレッシブダウンロードまたはＤＡＳＨのために有用であることがわかっている。ストリーミングの目的で、ＩＳＯＢＭＦＦで定義されたムービーフラグメントが使用され得る。
【００８３】
[0092]ＨＥＶＣファイルフォーマットに準拠するファイルは、ボックスと呼ばれる一連のオブジェクトを備え得る。「ボックス」は、固有のタイプ識別子および長さによって定義されるオブジェクト指向型の構築ブロックであり得る。たとえば、ボックスは、４文字のコーディングされたボックスタイプと、ボックスのバイトカウントと、ペイロードとを含む、ＩＳＯＢＭＦＦにおける基本的なシンタックス構造であり得る。言い換えると、ボックスは、コーディングされたボックスタイプと、ボックスのバイトカウントと、ペイロードとを備える、シンタックス構造であり得る。いくつかの事例では、ＨＥＶＣファイルフォーマットに準拠するファイル中のすべてのデータがボックスに含まれることがあり、ボックス中にないファイルの中にはデータがないことがある。したがって、ＩＳＯＢＭＦＦファイルは、ボックスのシーケンスからなっていてよく、ボックスは他のボックスを含んでよい。たとえば、ボックスのペイロードは、１つまたは複数の追加のボックスを含み得る。本開示の他の箇所で詳細に説明される図５および図６は、本開示の１つまたは複数の技法による、ファイル内の例示的なボックスを示す。
【００８４】
[0093]ＩＳＯＢＭＦＦに準拠するファイルは、様々なタイプのボックスを含み得る。たとえば、ＩＳＯＢＭＦＦに準拠するファイルは、ファイルタイプボックス、メディアデータボックス、ムービーボックス、ムービーフラグメントボックスなどを含み得る。この例では、ファイルタイプボックスは、ファイルタイプと互換性情報とを含む。メディアデータボックスは、サンプル（たとえば、コーディングされたピクチャ）を含み得る。ムービーボックス（「ｍｏｏｖ」）は、ファイル中に存在する連続的なメディアストリームのメタデータを含む。連続的なメディアストリームの各々は、トラックとしてファイルにおいて表され得る。たとえば、ムービーボックスは、ムービーに関するメタデータ（たとえば、サンプル間の論理関係およびタイミング関係、ならびにまた、サンプルの位置へのポインタ）を含み得る。ムービーボックスは、いくつかのタイプのサブボックスを含み得る。ムービーボックス中のサブボックスは、１つまたは複数のトラックボックスを含み得る。トラックボックスは、ムービーの個々のトラックについての情報を含み得る。トラックボックスは、単一のトラックの全体的な情報を指定するトラックヘッダボックスを含み得る。加えて、トラックボックスは、メディア情報ボックスを含むメディアボックスを含み得る。メディア情報ボックスは、トラック中のメディアサンプルのデータインデックスを含むサンプルテーブルボックスを含み得る。サンプルテーブルボックス中の情報は、時間的にサンプルの位置を特定するために使用されてよく、トラックのサンプルの各々について、サンプルのタイプ、サイズ、コンテナ、およびそのコンテナ中のオフセットを特定するために使用されてよい。したがって、トラックに対するメタデータは、トラックボックス（「ｔｒａｋ」）に含まれるが、トラックのメディアコンテンツは、メディアデータボックス（「ｍｄａｔ」）に含まれるか、または別のファイルに直接含まれるかのいずれかである。トラックに対するメディアコンテンツは、オーディオまたはビデオアクセスユニットのようなサンプルのシーケンスを備える（たとえば、それらからなる）。
【００８５】
[0094]ＩＳＯＢＭＦＦは、次のタイプのトラック、すなわち、エレメンタリメディアストリームを含むメディアトラックと、メディア送信命令を含むか受信されたパケットストリームを表すかのいずれかであるヒントトラックと、時間同期されたメタデータを備えるタイムド（timed）メタデータトラックとを規定する。各トラックに対するメタデータは、サンプル記述エントリーのリストを含み、サンプル記述エントリーの各々が、トラック中で使用されるコーディングフォーマットまたはカプセル化フォーマットと、そのフォーマットを処理するために必要な初期化データとを提供する。各サンプルは、トラックのサンプル記述エントリーの１つと関連付けられる。
【００８６】
[0095]ＩＳＯＢＭＦＦは、様々な機構によってサンプル固有のメタデータを規定することを可能にする。Ｓａｍｐｌｅ  Ｔａｂｌｅボックス（「ｓｔｂｌ」）内の特定のボックスが、一般的な需要に応えるために標準化されている。たとえば、Ｓｙｎｃ  Ｓａｍｐｌｅボックス（「ｓｔｓｓ」）は、サンプルテーブルボックス内のボックスである。Ｓｙｎｃ  Ｓａｍｐｌｅボックスは、トラックのランダムアクセスサンプルを列挙するために使用される。本開示は、Ｓｙｎｃ  Ｓａｍｐｌｅボックスにより列挙されるサンプルを、シンクサンプルと呼び得る。別の例では、サンプルグループ化機構は、ファイル中のサンプルグループ記述エントリーとして指定される同じ特性を共有するサンプルのグループへの、４文字のグループ化タイプに従ったサンプルのマッピングを可能にする。いくつかのグループ化タイプが、ＩＳＯＢＭＦＦにおいて規定されている。
【００８７】
[0096]サンプルテーブルボックスは、１つまたは複数のＳａｍｐｌｅＴｏＧｒｏｕｐボックスと、１つまたは複数のサンプルグループ記述ボックス（すなわち、ＳａｍｐｌｅＧｒｏｕｐＤｅｓｃｒｉｐｔｉｏｎボックス）とを含み得る。ＳａｍｐｌｅＴｏＧｒｏｕｐボックスは、サンプルが属するサンプルグループと、そのサンプルグループの関連付けられた記述とを決定するために使用され得る。言い換えると、ＳａｍｐｌｅＴｏＧｒｏｕｐボックスは、サンプルが属するグループを示し得る。ＳａｍｐｌｅＴｏＧｒｏｕｐボックスは、「ｓｂｇｐ」というボックスタイプを有し得る。ＳａｍｐｌｅＴｏＧｒｏｕｐボックスは、グループ化タイプ要素（たとえば、ｇｒｏｕｐｉｎｇ＿ｔｙｐｅ）を含み得る。グループ化タイプ要素は、サンプルグループ化のタイプ（すなわち、サンプルグループを形成するために使用される基準）を特定する整数であり得る。さらに、ＳａｍｐｌｅＴｏＧｒｏｕｐボックスは、１つまたは複数のエントリーを含み得る。ＳａｍｐｌｅＴｏＧｒｏｕｐボックス中の各エントリーは、トラック中の異なる重複しない一連の連続するサンプルと関連付けられ得る。各エントリーは、サンプルカウント要素（たとえば、ｓａｍｐｌｅ＿ｃｏｕｎｔ）と、グループ記述インデックス要素（たとえば、ｇｒｏｕｐ＿ｄｅｓｃｒｉｐｔｉｏｎ＿ｉｎｄｅｘ）とを示し得る。エントリーのサンプルカウント要素は、エントリーと関連付けられるいくつかのサンプルを示し得る。言い換えると、エントリーのサンプルカウント要素は、同じサンプルグループ記述子をもつ連続するサンプルの数を与える整数であり得る。グループ記述インデックス要素は、エントリーと関連付けられたサンプルの記述を含むＳａｍｐｌｅＧｒｏｕｐＤｅｓｃｒｉｐｔｉｏｎボックスを特定することができる。複数のエントリーのグループ記述インデックス要素は、同じＳａｍｐｌｅＧｒｏｕｐＤｅｓｃｒｉｐｔｉｏｎボックスを特定することができる。
【００８８】
[0097]現在のファイルフォーマット設計には、１つまたは複数の問題があり得る。ＩＳＯＢＭＦＦに基づく特定のビデオコーデックのビデオコンテンツを記憶するために、そのビデオコーデックに対するファイルフォーマット規格が必要となり得る。ＭＶ−ＨＥＶＣおよびＳＨＶＣのような複数のレイヤを含むビデオストリームの記憶のために、ＳＶＣおよびＭＶＣファイルフォーマットから概念の一部を再使用することが可能である。しかしながら、多くの部分は、ＳＨＶＣおよびＭＶ−ＨＥＶＣビデオストリームに対して直接使用され得ない。ＨＥＶＣファイルフォーマットの直接の適用には、少なくとも次の欠点がある。ＳＨＶＣおよびＭＶ−ＨＥＶＣビットストリームは、ベースレイヤ中のＩＲＡＰピクチャを含むアクセスユニットで開始し得るが、他のレイヤ中の他の非ＩＲＡＰピクチャも含むことがあり、またはこの逆であることがある。シンクサンプルは現在、ランダムアクセスのためにそのような点を指し示すことを許容しない。
【００８９】
[0098]本開示は、複数のレイヤを含むビデオストリームの効率的で柔軟な記憶を可能にするために、上記の問題に対する可能性のある解決法を説明し、さらに、他の可能性のある改善を提供する。本開示で説明される技法は潜在的に、任意のビデオコーデックによってコーディングされたそのようなビデオコンテンツの記憶のために任意のフォーマットに適用されるが、この説明は、ＩＳＯ／ＩＥＣ  １４４９６−１５の第８項において規定されるＨＥＶＣファイルフォーマットに基づくＳＨＶＣおよびＭＶ−ＨＥＶＣビデオストリームの記憶に特有である。
【００９０】
[0099]本開示の技法の詳細な実装形態が、以下で詳細に論じられる。本開示の技法は、以下の例において要約され得る。以下の例は別々に使用され得る。代替的に、以下の例の様々な組合せが一緒に使用され得る。
【００９１】
[0100]第１の例において、Ｃｏｍｐｒｅｓｓｏｒｎａｍｅは、ＶｉｓｕａｌＳａｍｐｌｅＥｎｔｒｙボックスにおいて指定される値である。ＩＳＯ／ＩＥＣ  １４４９６−１２のセクション８．５．２．１において記述されるように、ＶｉｓｕａｌＳａｍｐｌｅＥｎｔｒｙボックスは、使用されるコーディングのタイプおよびそのコーディングのために必要とされる任意の初期化情報についての詳細な情報を記憶する、ビデオトラックのためのあるタイプのサンプルテーブルボックスである。Ｃｏｍｐｒｅｓｓｏｒｎａｍｅは、メディアデータを生成するために使用されるコンプレッサの名前を示す。ビデオデコーダは、ファイル中のビデオデータをどのように復号するか、および／または復号するかどうかを決定するために、Ｃｏｍｐｒｅｓｓｏｒｎａｍｅの値を使用することができる。ＩＳＯ／ＩＥＣ  １４４９６−１２のセクション８．５．３において定義されるように、Ｃｏｍｐｒｅｓｓｏｒｎａｍｅは、固定された３２バイトのフィールドにフォーマットされ、最初のバイトセットは表示されることになるバイトの数に設定され、表示可能なデータのバイトの数がそれに続き、そして全体で３２バイト（サイズバイトを含む）にするためのパディングが続く。
【００９２】
[0101]第１の例は、Ｃｏｍｐｒｅｓｓｏｒｎａｍｅの２つの新たな値を許容する。Ｃｏｍｐｒｅｓｓｏｒｎａｍｅの第１の新たな値は、ＳＨＶＣビデオストリームを含むファイルに対しては、「＼０１３ＳＨＶＣ  Ｃｏｄｉｎｇ」である。Ｃｏｍｐｒｅｓｓｏｒｎａｍｅの第２の新たな値は、ＭＶ−ＨＥＶＣビデオストリームを含むファイルに対しては、「＼０１６ＭＶ−ＨＥＶＣ  Ｃｏｄｉｎｇ」である。第１の例は、以下でセクション９．５．３．１．３および１０．５．３．２において示されるように実施され得る。
【００９３】
[0102]上で簡単に説明されたように、ファイルは、ファイルのトラックのためのメタデータを含む、ムービーボックスを含み得る。ムービーボックスは、ファイルの各トラックのためのトラックボックスを含み得る。さらに、トラックボックスは、トラックのメディアの特性情報を宣言するすべてのオブジェクトを含む、メディア情報ボックスを含み得る。メディア情報ボックスは、サンプルテーブルボックスを含み得る。サンプルテーブルボックスは、サンプル固有のメタデータを指定することができる。たとえば、サンプルテーブルボックスは、複数のサンプル記述ボックスを含み得る。サンプル記述ボックスの各々は、サンプルエントリーのインスタンスであり得る。ＩＳＯ／ＩＥＣ  １４９９６−１２では、ＶｉｓｕａｌＳａｍｐｌｅＥｎｔｒｙクラスのインスタンスは、サンプルエントリーとして使用され得る。特定のビデオコーディング規格に固有のサンプルエントリーのクラスは、ＶｉｓｕａｌＳａｍｐｌｅＥｎｔｒｙクラスを拡張することができる。たとえば、ＨＥＶＣに固有のサンプルエントリーのクラスは、ＶｉｓｕａｌＳａｍｐｌｅＥｎｔｒｙクラスを拡張することができる。したがって、本開示は、ＶｉｓｕａｌＳａｍｐｌｅＥｎｔｒｙクラスを拡張する異なるクラスを、異なるサンプルエントリータイプと呼ぶことがある。
【００９４】
[0103]第２の例では、２つの新たなサンプルエントリー（すなわち、「サンプル」）タイプ、「ｈｅｖ２」および「ｈｖｃ２」がＨＥＶＣトラックのために定義される。２つの新たなサンプルエントリータイプは、アグリゲータおよびエクストラクタの使用を可能にする。一般に、アグリゲータは、単一の集約されたデータユニットの形態で複数のＮＡＬユニットを集約する。たとえば、アグリゲータは、複数のＮＡＬユニットを含むことができ、および／または複数のＮＡＬユニットを仮想的に連結することができる。一般に、エクストラクタは、他のトラックから得られたデータのタイプを示す。たとえば、複数のトラックにわたるメディアデータ（たとえば、ＨＥＶＣデータ）の記憶は、メディアデータ中のＮＡＬユニットとして埋め込まれるＥｘｔｒａｃｔｏｒｓと呼ばれる比較的小さいデータユニットを使用して複数のメディアトラックにまたがってデータを参照することによって、データの重複が回避され得るので、小型のファイルをもたらし得る。この第２の例は、以下で、セクション９．５．３．１．１、９．５．３．１．２、９．５．４、９．５．６、１０．４．５、１０．５．３．１．１．１、および１０．５．３．２に示されるように実施され得る。
【００９５】
[0104]第３の例では、マルチレイヤビットストリームのためのパラメータセットの記憶に対する特定の要件と関連付けられるサンプルエントリーの定義が、特定のレイヤまたは特定のオペレーションポイントへの便利なランダムアクセスを可能にするために修正される。たとえば、ＳＨＶＣ、ＭＶ−ＨＥＶＣ、または３Ｄ−ＨＥＶＣトラックがサンプルエントリーを有し、サンプルが少なくとも１つのＩＲＡＰピクチャを含むとき、そのサンプルを復号するために必要とされるすべてのパラメータは、そのサンプルエントリーまたはそのサンプル自体に含まれるべきである。この例では、サンプルがＩＲＡＰピクチャを含まないとき、そのサンプルを復号するために必要とされるすべてのパラメータセット（たとえば、ＶＰＳ、ＳＰＳ、ＰＰＳ）は、そのサンプルエントリーに、または、両端を含めて少なくとも１つのＩＲＡＰピクチャを含む以前のサンプルからそのサンプル自体までのサンプルのいずれかに、含まれるべきである。第３の例は、以下でセクション９．５．３．１．１において示されるように実施され得る。
【００９６】
[0105]第３の例の１つの代替的なバージョンでは、ＳＨＶＣ、ＭＶ−ＨＥＶＣ、または３Ｄ−ＨＥＶＣトラックがサンプルエントリーを有し、サンプル中のピクチャがＩＲＡＰピクチャであるとき、そのピクチャを復号するために必要とされるすべてのパラメータセットは、そのサンプルエントリーまたはそのサンプル自体に含まれるべきである。さらに、この代替形態では、サンプルがＩＲＡＰピクチャを含まないとき、ピクチャを復号するために必要とされるすべてのパラメータセットは、そのサンプルエントリーに、または、両端を含めて同じレイヤ中の少なくともＩＲＡＰピクチャを含む以前のサンプルからそのサンプル自体までのサンプルのいずれかに、含まれるべきである。
【００９７】
[0106]第４の例では、既存のサンプルエントリータイプについて以下のケースが定義される。この例では、サンプルエントリータイプ「ｈｅｖ１」および「ｈｖｃ１」に属するサンプルは、ＨＥＶＣ  ＶＣＬ  ＮＡＬユニットを伴うＳＨＶＣおよびＭＶ−ＨＥＶＣトラックのための、ＨＥＶＣ構成と、ＳＨＶＣ構成と、ＭＶ−ＨＥＶＣ構成とを含む。さらに、ＳＨＶＣおよびＭＶ−ＨＥＶＣ構成を含むサンプルエントリータイプ「ｈｅｖ１」および「ｈｖｃ１」は、ＨＥＶＣ  ＮＡＬユニットを伴わずに、しかし、０よりも大きなｎｕｈ＿ｌａｙｅｒ＿ｉｄを有するＶＣＬ  ＮＡＬユニットを伴って、ＳＨＶＣおよびＭＶ−ＨＥＶＣトラックのために定義され、このときエクストラクタは許可されない。この第４の例は、以下でセクション９．５．３．１．１において示されるように実施され得る。
【００９８】
[0107]第５の例では、ＳＨＶＣ、ＭＶ−ＨＥＶＣ、または３Ｄ−ＨＥＶＣトラックにおけるシンクサンプルが、すべてＩＲＡＰピクチャであるピクチャを含むサンプルとして定義される。この第５の例は、以下でセクション９．５．５および１０．４．３において示されるように実施され得る。以下でセクション９．５．５において規定されるように、ＳＨＶＣサンプルは、アクセスユニット中の各々のコーディングされたピクチャがＨＥＶＣ  ＷＤにおいて定義されるようなＩＲＡＰピクチャである場合、シンクサンプルであると見なされる。さらに、以下でセクション１０．４．３において規定されるように、ＭＶ−ＨＥＶＣサンプルは、アクセスユニット中の各々のコーディングされたピクチャがＨＥＶＣ  ＷＤにおいて定義されるようなＲＡＳＬピクチャを伴わないＩＲＡＰピクチャである場合、シンクサンプルであると見なされる。
【００９９】
[0108]したがって、第５の例では、ファイルを生成することの一部として、ファイル生成デバイス３４は、マルチレイヤビデオデータのトラックのシンクサンプルを記録するシンクサンプルテーブルを含む、シンクサンプルボックスを生成することができる。トラックの各シンクサンプルは、トラックのランダムアクセスサンプルである。アクセスユニット中の各々のコーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルである。アクセスユニット中の各々のコーディングされたピクチャがＲＡＳＬピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである。
【０１００】
[0109]第５の例の代替的なバージョンでは、ＳＨＶＣ、ＭＶ−ＨＥＶＣ、または３Ｄ−ＨＥＶＣトラックにおけるシンクサンプルが、すべてがＲＡＳＬピクチャを伴わないＩＲＡＰピクチャであるピクチャを含むサンプルとして定義される。シンクサンプルテーブルは、シンクサンプルを記録する。オプションで、シンクサンプルのサンプルグループは、シンクサンプルを記録する。言い換えると、シンクサンプルのサンプルグループは、シンクサンプルを特定する情報を含む。
【０１０１】
[0110]第６の例では、すべて（ＲＡＳＬピクチャを伴う、または伴わない）ＩＲＡＰピクチャであるピクチャを含むサンプルを含むように、「ラップ（ｒａｐ）」サンプルグループが定義される。この第６の例は、以下でセクション９．５．５において示されるように実施され得る。代替的に、第６の例では、「ラップ」サンプルグループは、すべてＩＲＡＰピクチャであるピクチャを含むが同期サンプルとして示されるサンプルを含まないように定義される。
【０１０２】
[0111]第７の例では、少なくとも１つのＩＲＡＰピクチャを含むすべてのサンプルと、サンプル中のＩＲＡＰピクチャ中のＶＣＬ  ＮＡＬユニットのＮＡＬユニットタイプと、サンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかと、そうではない場合、サンプル中のＩＲＡＰピクチャの数と、サンプル中のこれらのＩＲＡＰピクチャのレイヤＩＤ値とを記録する、新たなサンプルグループまたは新たなボックスが定義される。
【０１０３】
[0112]したがって、この第７の例では、ファイル生成デバイス３４は、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成することができる。トラックのためのメディアデータは、サンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータのアクセスユニットであり得る。ファイルを生成することの一部として、ファイル生成デバイス３４は、ファイルにおいて、少なくとも１つのＩＲＡＰピクチャを含むサンプルのすべてを記録する追加のボックスを生成する。
【０１０４】
[0113]この第７の例は、以下でセクション９．５．５．１において示されるように一部が実施され得る。以下でセクション９．５．５．１において示されるように、Ｒａｎｄｏｍ  Ａｃｃｅｓｓｉｂｌｅ  Ｓａｍｐｌｅ  Ｅｎｔｒｙクラスは、ＶｉｓｕａｌＳａｍｐｌｅＥｎｔｒｙクラスを拡張する。Ｒａｎｄｏｍ  Ａｃｃｅｓｓｉｂｌｅ  Ｓａｍｐｌｅ  Ｅｎｔｒｙクラスのインスタンス（すなわち、Ｒａｎｄｏｍ  Ａｃｃｅｓｓｉｂｌｅ  Ｓａｍｐｌｅ  Ｅｎｔｒｙボックス）は、少なくとも１つのＩＲＡＰピクチャを含むサンプルに対応する。さらに、Ｒａｎｄｏｍ  Ａｃｃｅｓｓｉｂｌｅ  Ｓａｍｐｌｅ  Ｅｎｔｒｙボックスは、対応するサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを指定する、ａｌｌ＿ｐｉｃｓ＿ａｒｅ＿ＩＲＡＰ値を含む。
【０１０５】
[0114]したがって、第７の例では、ファイル生成デバイス３４は、値（たとえば、ａｌｌ＿ｐｉｃｓ＿ａｒｅ＿ＩＲＡＰ）を含むサンプルエントリーを生成することができる。１に等しい値は、サンプル中の各々のコーディングされたピクチャがＩＲＡＰピクチャであることを指定する。０に等しい値は、サンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであることはないことを指定する。
【０１０６】
[0115]さらに、第７の例によれば、サンプルのすべてのコーディングされたピクチャがＩＲＡＰピクチャであるということではないとき、ファイル生成デバイス３４は、サンプルに対応するサンプルエントリーに、サンプルグループの各サンプル中のいくつかのＩＲＡＰピクチャを示す値を含め得る。加えて、サンプル中のコーディングされたピクチャがＩＲＡＰピクチャであるということではないとき、ファイル生成デバイス３４は、サンプルに対応するサンプルエントリーに、サンプル中のＩＲＡＰピクチャのレイヤ識別子を示す値を含め得る。
【０１０７】
[0116]代替的に、第７の例では、新たなサンプルグループまたは新たなボックスが、シンクサンプルまたは「ラップ」サンプルグループのメンバーとして示されるものを除く、そのようなサンプルを記録する。
【０１０８】
[0117]この第７の例は、マルチレイヤビデオデータがＩＳＯＢＭＦＦまたはその既存の拡張を使用して記憶されるときに生じ得る、１つまたは複数の問題を解決することができる。たとえば、シングルレイヤビデオコーディングでは、通常はアクセスユニットごとに単一のコーディングピクチャしか存在しない。しかしながら、マルチレイヤビデオコーディングでは、通常はアクセスユニットごとに２つ以上のコーディングされたピクチャが存在する。ＩＳＯＢＭＦＦおよびその既存の拡張は、１つまたは複数のＩＲＡＰピクチャをどのサンプルが含むかを示す方法を提供しない。このことは、コンピューティングデバイスがファイル中のランダムアクセスポイントを位置特定するための、またはレイヤ切替えを実行するための能力を妨げ得る。たとえば、サンプルのいずれが１つまたは複数のＩＲＡＰピクチャを含むかを示す情報が存在しないとき、コンピューティングデバイスは、アクセスユニットがランダムアクセスポイントとしておよび／またはレイヤ切替えのために使用され得るかどうかを決定するために、ＮＡＬユニットを解析して解釈する必要があり得る。ＮＡＬユニットを解析して解釈することは、コンピューティングデバイスに複雑さを加えることがあり、時間および処理のリソースを消費することがある。さらに、ストリーミングサーバのような、ランダムアクセスおよび／またはレイヤ切替えを実行するいくつかのコンピューティングデバイスは、ＮＡＬユニットを解析または解釈するように構成されない。
【０１０９】
[0118]第８の例では、新たなタイプのサブサンプルの導入が含まれ、このとき、各サブサンプルは、１つのコーディングされたピクチャと、関連付けられる非ＶＣＬ  ＮＡＬユニットとを含む。この第８の例は、以下でセクション９．５．８において示されるように実施され得る。したがって、この第８の例では、ファイル生成デバイス３４は、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成することができる。トラックのためのメディアデータは、サンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータのアクセスユニットである。ファイルを生成することの一部として、ファイル生成デバイス３４は、ファイルにおいて、サブサンプル情報ボックス中で与えられるサブサンプル情報のタイプを指定するフラグを含むサブサンプル情報ボックスを生成する。そのフラグがある特定の値を有するとき、サブサンプル情報ボックスに対応するサブサンプルは、ちょうど１つのコーディングされたピクチャと、コーディングされたピクチャと関連付けられる０個以上の非ＶＣＬ  ＮＡＬユニットとを含む。
【０１１０】
[0119]第８の例は、マルチレイヤビデオデータがＩＳＯＢＭＦＦまたはその既存の拡張を使用して記憶されるときに生じ得る、１つまたは複数の問題を解決することができる。たとえば、マルチレイヤビデオコーディングでは、サンプルごとに複数のコーディングされたピクチャがあり得る。たとえば、各レイヤのためのサンプル中に１つまたは複数のピクチャがあり得る。しかしながら、Ｈ．２６４／ＡＶＣおよびＨＥＶＣのためのＩＳＯＢＭＦＦの拡張では、サブサンプル情報ボックスは、サンプルが複数のピクチャを含むときのサンプル内の個々のピクチャについての情報を提供しない。この第８の例の技法は、１つだけのコーディングされたピクチャと、コーディングされたピクチャと関連付けられる非ＶＣＬ  ＮＡＬユニットとを含む、サブサンプルについての情報を提供する、新たなタイプのサブサンプル情報ボックスを提供することによって、この問題を解決することができる。コーディングされたピクチャと関連付けられるＮＡＬユニット内でのみそのような情報を提供することとは対照的に、ファイル構造において個々のコーディングされたピクチャについての情報を提供することで、コンピューティングデバイスは、ＮＡＬユニットを解釈する必要なく、コーディングされたピクチャについての情報を決定することが可能になり得る。いくつかの例では、コンピューティングデバイスの複雑さを下げるために、および／またはコンピューティングデバイスのスループットを上げるために、コンピューティングデバイスは、ＮＡＬユニットを解釈するように構成されない。コンピューティングデバイスがファイルに記憶されているＮＡＬユニットをストリーミングしているいくつかの例では、コンピューティングデバイスは、サブサンプルのＮＡＬユニットをクライアントデバイスに転送するかどうかを決定するために、サブサンプル情報ボックス中の情報を使用することができる。
【０１１１】
[0120]第９の例は、マルチレイヤの状況における非出力サンプルの処理に関する。具体的には、第９の例では、アクセスユニットが１に等しいｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有するいくつかのコーディングされたピクチャと０に等しいｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有するいくつかの他のコーディングされたピクチャとを含むとき、各トラック内において、各サンプル中のすべてのコーディングされたピクチャが同じ値のｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有するように、少なくとも２つのトラックがストリームを記憶するために使用されなければならない。この第９の例は、以下でセクション９．５．９において示されるように実施され得る。
【０１１２】
[0121]したがって、この第９の例では、ファイル生成デバイス３４は、メディアコンテンツを含むメディアデータボックスを備えるファイルを生成することができる。メディアコンテンツは、サンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータのアクセスユニットである。マルチレイヤビデオデータのビットストリームの少なくとも１つのアクセスユニットが、１に等しいピクチャ出力フラグ（たとえば、ｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇ）を有するコーディングされたピクチャと、０に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むという決定に応答して、ファイル生成デバイス３４は、ファイルにビットストリームを記憶するために少なくとも２つのトラックを使用することができる。少なくとも２つのトラックからの各々のそれぞれのトラックに対して、それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のピクチャ出力フラグを有する。
【０１１３】
[0122]第９の例は、マルチレイヤビデオデータがＩＳＯＢＭＦＦまたはその既存の拡張を使用して記憶されるときに生じ得る、１つまたは複数の問題を解決することができる。たとえば、０に等しいピクチャ出力フラグと１に等しいピクチャ出力フラグとを有したコーディングされたピクチャを記憶するために単一のトラックが使用されるとすると、様々なファイルフォーマット規則が違反される。たとえば、ファイルフォーマット規則は通常、時刻ごとにトラック中に１つのサンプルしかないことを要求する。０に等しいピクチャ出力フラグと１に等しいピクチャ出力フラグとを有したコーディングされたピクチャを単一のトラックが記憶する場合、時刻ごとにトラック中には複数のサンプルがある。異なる値のピクチャ出力フラグを有するコーディングされたピクチャが、１つのファイルの異なるトラック中にあるようにすることで、この問題を解決することができる。
【０１１４】
[0123]以下で、本開示のいくつかの技法の例示的な実装形態が説明される。以下で説明される例示的な実装形態は、ＭＰＥＧ  ｏｕｔｐｕｔ  ｄｏｃｕｍｅｎｔ  Ｗ１３４７８における１４４９６−１５の最新の統合された規格に基づく。以下では、Ａｎｎｅｘ  Ａに対する変更（下線により示される）および追加されたセクション（ＳＨＶＣについてはセクション９およびＭＶ−ＨＥＶＣについてはセクション１０）が含まれる。言い換えると、本開示の特定の例は、ＩＳＯ／ＩＥＣ  １４４９６−１５のＡｎｎｅｘ  Ａを修正することができ、ＩＳＯ／ＩＥＣ  １４４９６−１５にセクション９および／または１０を追加することができる。下線および二重下線により示される文章は、本開示の実施例に特に関連があり得る。本明細書で説明される例では、ＳＨＶＣという用語が様々な箇所で使用されるが、本開示の設計は実際には、ＳＨＶＣコーデックをサポートするためだけのものではなく、代わりに、別段明示的に言及されない限り、ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣを含むすべてのマルチレイヤコーデックがサポートされ得る。
９．ＳＨＶＣエレメンタリストリームおよびサンプルの定義
９．１  序論
この項は、ＳＨＶＣデータの記憶フォーマットを規定する。この項は、項８におけるＨＥＶＣの記憶フォーマットの定義を拡張する。
この項およびＡｎｎｅｘ  Ａ〜Ｄにおいて定義されるような、ＳＨＶＣコンテンツの記憶のためのファイルフォーマットは、ＩＳＯベースのメディアファイルフォーマットおよびプレーンＨＥＶＣファイルフォーマット（すなわち、項８において規定されるファイルフォーマット）の既存の能力を使用する。加えて、ＳＨＶＣ固有の特徴をサポートするために、とりわけ以下の構造および拡張が使用される。
【０１１５】
アグリゲータ：ＮＡＬユニットの不規則なパターンを集約されたデータユニットの規則的なパターンへと変更することによって、ＮＡＬユニットの効率的なスケーラブルグループ化を可能にするための構造。
【０１１６】
エクストラクタ：メディアデータを含むトラック以外のトラックからのＮＡＬユニットの効率的な抽出を可能にするための構造。
時間的メタデータステートメント：メディアサンプルの時間整列された情報を記憶するための構造。
【０１１７】
ＨＥＶＣ適合性：ＨＥＶＣに適合するベースレイヤが任意のプレーンＨＥＶＣファイルフォーマットに準拠するリーダーによって使用され得るように、ＨＥＶＣに適合する方式でＳＨＶＣビットストリームを記憶するための準備。
９．２  エレメンタリストリーム構造
ＳＨＶＣストリームは、ＳＨＶＣビデオエレメンタリストリームの以下の定義とともに、８．２に従って記憶される。
【０１１８】
・ＳＨＶＣビデオエレメンタリストリームは、すべてのビデオコーディングに関連するＮＡＬユニット（すなわち、ビデオデータを含む、またはビデオ構造をシグナリングするＮＡＬユニット）を含むべきであり、ＳＥＩメッセージおよびアクセスユニットデリミタＮＡＬユニットのようなビデオコーディングに関連しないＮＡＬユニットを含み得る。アグリゲータ（Ａ．２参照）またはエクストラクタ（Ａ．３参照）も存在し得る。アグリゲータおよびエクストラクタは、この国際規格において定義されるように処理されるべきである（たとえば、ファイルにアクセスしている間に出力バッファに直接配置されるべきではない）。明示的に禁止されない他のＮＡＬユニットが存在することがあり、それらは、認識されなければ無視されるべきである（たとえば、ファイルにアクセスする間に出力バッファに配置されるべきではない）。
【０１１９】
ＳＨＶＣストリームは、関連付けられるパラメータセットストリームを使用して記憶されるべきではない。
【０１２０】
０に等しいｎｕｈ＿ｌａｙｅｒ＿ｉｄを有するＶＣＬ  ＮＡＬユニット、０よりも大きなｎｕｈ＿ｌａｙｅｒ＿ｉｄを有するＶＣＬ  ＮＡＬユニット、およびＳＨＶＣビデオエレメンタリストリーム中に存在する非ＶＣＬ  ＮＡＬユニットがあり得る。加えて、ＳＨＶＣビデオエレメンタリストリームには、アグリゲータＮＡＬユニットおよびエクストラクタＮＡＬユニットが存在し得る。
９．３  プレーンＨＥＶＣファイルフォーマットの使用
ＳＨＶＣファイルフォーマットは、項８において定義されるプレーンＨＥＶＣファイルフォーマットの拡張である。
９．４  サンプルおよび構成の定義
９．４．１  序論
ＳＨＶＣサンプル：ＳＨＶＣサンプルは、ＩＳＯ／ＩＥＣ  ２３００８−２のＡｎｎｅｘ  Ｈにおいて定義されるようなアクセスユニットでもある。
９．４．２  標準的な順序および制約
９．４．２．１  制約
８．３．２における要件に加えて、以下の制約がＳＨＶＣデータに適用される。
【０１２１】
・ＶＣＬ  ＮＡＬユニット：１つのアクセスユニットの中のすべてのＶＣＬ  ＮＡＬユニットは、アクセスユニットによって表されるピクチャの合成時間と合成時間が同じであるサンプルに含まれるべきである。ＳＨＶＣサンプルは、少なくとも１つのＶＣＬ  ＮＡＬユニットを含むべきである。
【０１２２】
・アグリゲータ／エクストラクタ：アグリゲータに含まれエクストラクタによって参照されるすべてのＮＡＬユニットの順序は、これらのＮＡＬユニットがアグリゲータ／エクストラクタを含まないサンプルに存在しているかのように、復号順序とまったく同じである。アグリゲータまたはエクストラクタを処理した後で、すべてのＮＡＬユニットが、ＩＳＯ／ＩＥＣ  ２３００８−２において規定されるような有効な復号順序でなければならない。
９．４．２．２  デコーダ構成記録
８．３．３．１において定義されるデコーダ構成記録が、ＳＨＶＣストリームまたはＨＥＶＣストリームのいずれかとして解釈され得るストリームのために使用されるとき、ＨＥＶＣデコーダ構成記録は、ＨＥＶＣに適合するベースレイヤの性質を反映すべきであり、たとえば、ＨＥＶＣデコーダ構成記録は、ＨＥＶＣベースレイヤを復号するために必要とされるパラメータセットのみを含むべきである。
【０１２３】
ＳＨＶＣＤｅｃｏｄｅｒＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｃｏｒｄは、ＨＥＶＣＤｅｃｏｄｅｒＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｃｏｒｄと構造的に同一である。シンタックスは次の通りである。
alligned(8)classSHVCDecoderConfigurationRecord{
//HEVCDecoderConfigurationRecord シンタックス構造と同じフィールド}
ＳＨＶＣＤｅｃｏｄｅｒＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｃｏｒｄにおけるフィールドのセマンティクスは、ＨＥＶＣＤｅｃｏｄｅｒＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｃｏｒｄに対して定義されるものと同じである。
９．５  ＩＳＯベースのメディアファイルフォーマットからの導出
９．５．１  ＳＨＶＣトラック構造
スケーラブルビデオストリームが、ファイル中の１つまたは複数のビデオトラックによって表される。各トラックが、スケーラブルストリームの１つまたは複数のオペレーションポイントを表す。当然、望まれる場合、スケーラブルストリームはさらに薄くされ得る。
【０１２４】
最低のオペレーションポイントを、０に等しいｎｕｈ＿ｌａｙｅｒ＿ｉｄのみと０に等しいＴｅｍｐｏｒａｌＩｄのみとを有するＮＡＬユニットを含むすべてのオペレーションポイントの１つとする。最低のオペレーションポイントを含むトラックが、「スケーラブルベーストラック」として指名されるべきである。同じスケーラブルな符号化された情報の一部であるすべての他のトラックが、タイプ「ｓｂａｓ」（スケーラブルベース）のトラック参照によって、このベーストラックにリンクされるべきである。
【０１２５】
同じスケーラブルベーストラックを共有するすべてのトラックが、そのスケーラブルベーストラックと同じ時間軸を共有しなければならない。
９．５．２  データ共有および抽出
異なるトラックが論理的にデータを共有し得る。この共有は、以下の２つの形のうちの１つをとり得る。
【０１２６】
ａ）サンプルデータがあるトラックから別のトラックにコピーされる（場合によっては小型化され、またはオーディオのような他のデータと再インターリーブされる）。これにより、全体のファイルがより大きくなるが、抽出を簡単にするために、低ビットレートのデータが小型化され、および／または他の材料とインターリーブされ得る。
【０１２７】
ｂ）  ファイルが読み取られる時点でこのコピーをどのように実行するかについての命令があり得る。
【０１２８】
第２の場合、エクストラクタ（Ａ．３において定義される）が使用される。
９．５．３  ＳＨＶＣビデオストリームの定義
９．５．３．１  サンプルエントリーの名前およびフォーマット
９．５．３．１．１．  定義
タイプ：「ｈｖｃ２」、「ｈｅｖ２」、「ｓｈｃ１」、「ｓｈｖ１」、「ｓｈｃＣ」
コンテナ：サンプル記述ボックス（「ｓｔｓｄ」）
必須性：「ｈｖｃ１」、「ｈｅｖ１」、「ｈｖｃ２」、「ｈｅｖ２」、「ｓｈｃ１」、または「ｓｈｖ１」サンプルエントリーが必須である。
【０１２９】
量：１つまたは複数のサンプルエントリーが存在し得る。
【０１３０】
サンプルエントリーの名前が「ｓｈｃ１」であるとき、ａｒｒａｙ＿ｃｏｍｐｌｅｔｅｎｅｓｓのデフォルトの必須の値は、すべてのタイプのパラメータセットのアレイに対しては１であり、すべての他のアレイに対しては０である。サンプルエントリーの名前が「ｓｈｖ１」であるとき、ａｒｒａｙ＿ｃｏｍｐｌｅｔｅｎｅｓｓのデフォルトの値はすべてのアレイに対して０である。
【０１３１】
サンプルエントリーの名前が「ｓｈｖ１」であるとき、次のことが当てはまる。
【０１３２】
・サンプルがＩＳＯ／ＩＥＣ  ２３００８−２において定義されるような少なくとも１つのＩＲＡＰピクチャを含む場合、そのサンプルを復号するために必要とされるすべてのパラメータセットは、サンプルエントリーに、またはそのサンプル自体に含まれるべきである。
【０１３３】
・それ以外の場合（サンプルがＩＲＡＰピクチャを含まない）、そのサンプルを復号するために必要とされるすべてのパラメータセットが、そのサンプルエントリーに、または、両端を含めて少なくとも１つのＩＲＡＰピクチャを含む以前のサンプルからそのサンプル自体までのサンプルのいずれかに、含まれるべきである。
【０１３４】
代替的に、サンプルエントリーの名前が「ｓｈｖ１」であるとき、次のことが当てはまる。
【０１３５】
・サンプル中のコーディングされたピクチャがＩＳＯ／ＩＥＣ  ２３００８−２において定義されるようなＩＲＡＰピクチャである場合、そのコーディングされたピクチャを復号するために必要とされるすべてのパラメータセットが、サンプルエントリーに、またはそのサンプル自体に含まれるべきである。
【０１３６】
・それ以外の場合（サンプル中のコーディングされたピクチャがＩＲＡＰピクチャではない）、そのコーディングされたピクチャを復号するために必要とされるすべてのパラメータセットが、そのサンプルエントリーに、または、両端を含めてそのコーディングされたピクチャと同じレイヤ中のＩＲＡＰピクチャを含む以前のサンプルからそのサンプル自体までのサンプルのいずれかに、含まれるべきである。
【０１３７】
ＳＨＶＣエレメンタリストリームが使用可能なＨＥＶＣに適合するベースレイヤを含む場合、ＨＥＶＣ視覚サンプルエントリー（「ｈｖｃ１」または「ｈｅｖ１」）が使用されるべきである。ここで、エントリーは、最初にＨＥＶＣ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｂｏｘを含み、場合によっては、以下で定義されるようなＳＨＶＣ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｂｏｘがそれに続くべきである。ＨＥＶＣ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｂｏｘは、Ｐｒｏｆｉｌｅ、Ｔｉｅｒ、Ｌｅｖｅｌ、および場合によっては、ＨＥＶＣＤｅｃｏｄｅｒＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｃｏｒｄによって定義されるような、ＨＥＶＣに適合するベースレイヤに関するパラメータセットも記録する。ＳＨＶＣ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｂｏｘは、Ｐｒｏｆｉｌｅ、Ｔｉｅｒ、Ｌｅｖｅｌ、および場合によっては、ＳＨＶＣＣｏｎｆｉｇｕｒａｔｉｏｎＢｏｘに記憶されているＨＥＶＣＤｅｃｏｄｅｒＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｃｏｒｄによって定義されるような、ＳＨＶＣに適合するエンハンスメントレイヤを含む全体のストリームに関するパラメータセットも記録する。
【０１３８】
ＳＨＶＣエレメンタリストリームが使用可能なＨＥＶＣベースレイヤを含まない場合、ＳＨＶＣ視覚サンプルエントリー（「ｓｈｃ１」または「ｓｈｖ１」）が使用されるべきである。ＳＨＶＣ視覚サンプルエントリーは、以下で定義されるような、ＳＨＶＣ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｂｏｘを含むべきである。これは、この国際規格において定義されるような、ＳＨＶＣＤｅｃｏｄｅｒＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｃｏｒｄを含む。
【０１３９】
任意の所与のサンプルエントリーにおけるＳＨＶＣ構成およびＨＥＶＣ構成中のｌｅｎｇｔｈＳｉｚｅＭｉｎｕｓＯｎｅフィールドは、同じ値を有するべきである。
【０１４０】
エクストラクタまたはアグリゲータは、「ｈｖｃ１」、「ｈｅｖ１」、「ｈｖｃ２」、「ｈｅｖ２」、「ｓｈｃ１」、または「ｓｈｖ１」トラックにおいて、０よりも大きなｎｕｈ＿ｌａｙｅｒ＿ｉｄを有するＮＡＬユニットのために使用され得る。「ｈｖｃ２」または「ｈｅｖ２」サンプルエントリーにおける「ｅｘｔｒａ＿ｂｏｘｅｓ」は、ＳＨＶＣＣｏｎｆｉｇｕｒａｔｉｏｎＢｏｘまたは他の拡張ボックスであり得る。
【０１４１】
注意  ＨＥＶＣ適合性が示されるとき、ストリーム全体のビットレートに対応するために、ＨＥＶＣベースレイヤの非現実的なレベルを示すことが必要になることがあり、それは、すべてのＮＡＬユニットがＨＥＶＣベースレイヤに含まれるものとして見なされ、したがってデコーダに与えられることがあり、デコーダはデコーダが認識しないＮＡＬユニットを廃棄すると予想されるからである。このケースは、「ｈｖｃ１」または「ｈｅｖ１」サンプルエントリーが使用され、ＨＥＶＣ構成とＳＨＶＣ構成の両方が存在するときに発生する。
【０１４２】
ＳＨＶＣＣｏｎｆｉｇｕｒａｔｉｏｎＢｏｘは、「ｈｖｃ１」または「ｈｅｖ１」サンプルエントリーに存在し得る。この場合、以下のＨＥＶＣＳＨＶＣＳａｍｐｌｅＥｎｔｒｙの定義が適用される。
【０１４３】
次の表は、ビデオトラックに対する、サンプルエントリーのすべての可能性のある使用法と、構成と、ＳＨＶＣツールとを示す（常に別のトラックにおいて使用される時限メタデータを除く）。
【０１４４】
【表２】
0006434008.tif 000004
【０１４５】
９．５．３．１．２  シンタックス
【０１４６】
【数１】
0006434008.tif 000005
【０１４７】
９．５．３．１．３  セマンティクス
サンプルエントリーが適用されるストリームが０よりも大きなｎｕｈ＿ｌａｙｅｒ＿ｉｄを有するＮＡＬユニットを含むとき、ベースクラスＶｉｓｕａｌＳａｍｐｌｅＥｎｔｒｙの中のＣｏｍｐｒｅｓｓｏｒｎａｍｅは、推奨されている、「＼０１３ＳＨＶＣ  Ｃｏｄｉｎｇ」という値とともに使用されるコンプレッサの名前を示す（＼０１３は１１であり、これは文字列「ＳＨＶＣ  Ｃｏｄｉｎｇ」のバイト単位の長さである）。
９．５．４  ＳＨＶＣの視覚的な幅および高さ
０よりも大きなｎｕｈ＿ｌａｙｅｒ＿ｉｄを有するＮＡＬユニットを含むストリームのＶｉｓｕａｌＳａｍｐｌｅＥｎｔｒｙにおいて記録される視覚的な幅および高さは、ストリームがタイプ「ｈｖｃ１」、「ｈｅｖ１」、「ｈｖｃ２」、「ｈｅｖ２」のサンプルエントリーによって記述される場合は、ＨＥＶＣベースレイヤの視覚的な幅および高さであり、それ以外の場合、ストリーム全体を復号することによる最高次のレイヤの復号されたピクチャの視覚的な幅および高さである。
９．５．５  シンクサンプル
ＳＨＶＣサンプルは、アクセスユニット中の各々のコーディングされたピクチャがＩＳＯ／ＩＥＣ  ２３００８−２において定義されるようなＩＲＡＰピクチャである場合、シンクサンプルとして見なされる。シンクサンプルはシンクサンプルテーブルによって記録され、シンクサンプルのサンプルグループおよび「ラップ」サンプルグループによって追加で記録され得る。
９．５．５．１  ランダムアクセス可能サンプルのサンプルグループ
９．５．５．１．１  定義
グループタイプ：「ｒａｓ」
コンテナ：サンプルグループ記述ボックス（「ｒａｓ」）
必須性：なし
量：０個以上
ランダムアクセス可能サンプルのサンプルグループは、少なくとも１つのＩＲＡＰピクチャを含むサンプルを特定する。
９．５．５．１．２  シンタックス
【０１４８】
【数２】
0006434008.tif 000006
【０１４９】
９．５．５．１．３  セマンティクス
１に等しいａｌｌ＿ｐｉｃｓ＿ａｒｅ＿ＩＲＡＰは、グループの各サンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであることを指定する。値が０に等しいとき、上の制約は適用されることもまたはされないこともある。
【０１５０】
ＩＲＡＰ＿ｎａｌ＿ｕｎｉｔ＿ｔｙｐｅは、グループの各サンプル中のＩＲＡＰピクチャのＮＡＬユニットタイプを指定する。ＩＲＡＰ＿ｎａｌ＿ｕｎｉｔ＿ｔｙｐｅの値は、両端を含めて１６〜２３の範囲内でなければならない。
【０１５１】
ｎｕｍ＿ＩＲＡＰ＿ｐｉｃｓは、グループの各サンプル中のＩＲＡＰピクチャの数を指定する。
【０１５２】
ＩＲＡＰ＿ｐｉｃ＿ｌａｙｅｒ＿ｉｄは、グループの各サンプル中のｉ番目のＩＲＡＰピクチャのｎｕｈ＿ｌａｙｅｒ＿ｉｄの値を指定する。
９．５．６  ランダムアクセス復元ポイントおよびランダムアクセスポイントについてのサンプルグループ
タイプ「ｈｖｃ１」、「ｈｅｖ１」、「ｈｖｃ２」、または「ｈｅｖ２」のサンプルエントリーによって記述されるビデオデータに対して、ランダムアクセス復元サンプルグループおよびランダムアクセスポイントサンプルグループは、ビットストリーム全体に対して動作する、ＨＥＶＣデコーダとＳＨＶＣデコーダ（もしあれば）の両方に対して、ランダムアクセス復元ポイントとランダムアクセスポイントとをそれぞれ特定する。
【０１５３】
タイプ「ｓｈｃ１」または「ｓｈｖ１」のサンプルエントリーによって記述されるビデオデータに対して、ランダムアクセス復元サンプルグループは、ＳＨＶＣビットストリーム全体の中でランダムアクセス復元を特定し、ランダムアクセスポイントサンプルグループは、ＳＨＶＣビットストリーム全体の中でランダムアクセスポイントを特定する。
【０１５４】
ＳＨＶＣサンプルは、アクセスユニット中の各々のコーディングされたピクチャがＩＳＯ／ＩＥＣ  ２３００８−２において定義されるようなＩＲＡＰピクチャ（ＲＡＳＬピクチャを伴うまたは伴わない）である場合、ランダムアクセスポイントとして見なされ、ＩＳＯ／ＩＥＣ  １４４９６−２におけるリーディングサンプルは、すべてのピクチャがＩＳＯ／ＩＥＣ  ２３００８−２において定義されるようなＲＡＳＬピクチャであるサンプルである。
９．５．７  独立の使い捨てサンプルボックス
ＨＥＶＣとＳＨＶＣの両方に適合するトラックにおいて使用される場合、ＳＨＶＣデータのどの有効なサブセット（場合によってはＨＥＶＣデータのみ）が使用されても記述が真であることに、注意が払われなければならない。情報が変化する場合、「未知」の値（フィールドｓａｍｐｌｅ−ｄｅｐｅｎｄｓ−ｏｎ、ｓａｍｐｌｅ−ｉｓ−ｄｅｐｅｎｄｅｄ−ｏｎ、およびｓａｍｐｌｅ−ｈａｓ−ｒｅｄｕｎｄａｎｃｙの値０）が必要とされ得る。
９．５．８  ＳＨＶＣのためのサブサンプルの定義
この項は、８．４．８におけるＨＥＶＣのサブサンプルの定義を拡張する。
【０１５５】
ＳＨＶＣストリームにおけるサブサンプル情報ボックス（ＩＳＯ／ＩＥＣ  １４４９６−１２の８．７．７）の使用のために、以下で規定されるように、サブサンプル情報ボックスのフラグの値に基づいて、サブサンプルが定義される。このボックスの存在は任意選択であるが、ＳＨＶＣデータを含むトラックにおいて存在する場合、ここで定義されるセマンティクスを有するべきである。
【０１５６】
フラグは、このボックスで与えられるサブサンプル情報のタイプを次のように規定する。
【０１５７】
０：ＮＡＬユニットベースのサブサンプル。サブサンプルは、１つまたは複数の連続的なＮＡＬユニットを含む。
【０１５８】
１：復号ユニットベースのサブサンプル。サブサンプルは、ちょうど１つの復号ユニットを含む。
【０１５９】
２：タイルベースのサブサンプル。サブサンプルは、１つのタイルと、そのタイルを含むＶＣＬ  ＮＡＬユニットの関連付けられる非ＶＣＬ  ＮＡＬユニットとをもしあれば含み、または、１つまたは複数の非ＶＣＬ  ＮＡＬユニットを含む。
【０１６０】
３：ＣＴＵ行ベースのサブサンプル。サブサンプルは、スライス内の１つのＣＴＵ行と、そのＣＴＵ行を含むＶＣＬ  ＮＡＬユニットの関連付けられる非ＶＣＬ  ＮＡＬユニットとをもしあれば含み、または、１つまたは複数の非ＶＣＬ  ＮＡＬユニットを含む。このタイプのサブサンプル情報は、ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しいときは使用されるべきではない。
【０１６１】
４：スライスベースのサブサンプル。サブサンプルは、１つのスライス（各スライスが１つまたは複数のスライスセグメントを含み得る場合、その各々がＮＡＬユニットである）と、関連付けられる非ＶＣＬ  ＮＡＬユニットとをもしあれば含み、または、１つまたは複数の非ＶＣＬ  ＮＡＬユニットを含む。
【０１６２】
５：ピクチャベースのサブサンプル。サブサンプルは、１つのコーディングされたピクチャと、関連付けられる非ＶＣＬ  ＮＡＬユニットとを含む。
【０１６３】
フラグの他の値は予備である。
【０１６４】
ｓａｂｓａｍｐｌｅ＿ｐｒｉｏｒｉｔｙフィールドは、ＩＳＯ／ＩＥＣ  １４４９６−１２におけるこのフィールドの仕様に従って、ある値に設定されるべきである。
【０１６５】
廃棄可能フィールドは、このサブサンプルが廃棄される（たとえば、サブサンプルがＳＥＩ  ＮＡＬユニットからなる）場合、このサンプルが依然として復号され得る場合にのみ、１に設定されるべきである。
【０１６６】
ＮＡＬユニットの最初のバイトがサブサンプルに含まれるとき、先行する長さフィールドも同じサブサンプルに含まれなければならない。
【０１６７】
【数３】
0006434008.tif 000007
【０１６８】
０に等しいＳｕｂＬａｙｅｒＲｅｆＮａｌＵｎｉｔＦｌａｇは、サブサンプル中のすべてのＮＡＬユニットが、ＩＳＯ／ＩＥＣ  ２３００８−２において規定されるようなサブレイヤ非参照ピクチャのＶＣＬ  ＮＡＬユニットであることを示す。値１は、サブサンプル中のすべてのＮＡＬユニットが、ＩＳＯ／ＩＥＣ  ２３００８−２において規定されるようなサブレイヤ参照ピクチャのＶＣＬ  ＮＡＬユニットであることを示す。
【０１６９】
０に等しいＲａｐＮａｌＵｎｉｔＦｌａｇは、サブサンプル中のＮＡＬユニットのいずれもが、ＩＳＯ／ＩＥＣ  ２３００８−２において規定されるような、ＩＤＲ＿Ｗ＿ＲＡＤＬ、ＩＤＲ＿Ｎ＿ＬＰ、ＣＲＡ＿ＮＵＴ、ＢＬＡ＿Ｗ＿ＬＰ、ＢＬＡ＿Ｗ＿ＲＡＤＬ、ＢＬＡ＿Ｎ＿ＬＰ、ＲＳＶ＿ＩＲＡＰ＿ＶＣＬ２２、またはＲＳＶ＿ＩＲＡＰ＿ＶＣＬ２３に等しいｎａｌ＿ｕｎｉｔ＿ｔｙｐｅを有しないことを示す。値１は、サブサンプル中のＮＡＬユニットのすべてが、ＩＳＯ／ＩＥＣ  ２３００８−２において規定されるような、ＩＤＲ＿Ｗ＿ＲＡＤＬ、ＩＤＲ＿Ｎ＿ＬＰ、ＣＲＡ＿ＮＵＴ、ＢＬＡ＿Ｗ＿ＬＰ、ＢＬＡ＿Ｗ＿ＲＡＤＬ、ＢＬＡ＿Ｎ＿ＬＰ、ＲＳＶ＿ＩＲＡＰ＿ＶＣＬ２２、またはＲＳＶ＿ＩＲＡＰ＿ＶＣＬ２３に等しいｎａｌ＿ｕｎｉｔ＿ｔｙｐｅを有することを示す。
【０１７０】
０に等しいＶｃｌＮａｌＵｎｉｔＦｌａｇは、サブサンプル中のすべてのＮＡＬユニットが非ＶＣＬ  ＮＡＬユニットであることを示す。値１は、サブサンプル中のすべてのＮＡＬユニットがＶＣＬ  ＮＡＬユニットであることを示す。
【０１７１】
ＤｉｓｃａｒｄａｂｌｅＦｌａｇは、サブサンプル中のＶＣＬ  ＮＡＬユニットのｄｉｓｃａｒｄａｂｌｅ＿ｆｌａｇの値を示す。サブサンプル中のすべてのＶＣＬ  ＮＡＬユニットは、同じｄｉｓｃａｒｄａｂｌｅ＿ｆｌａｇの値を有するべきである。
【０１７２】
注意  これは、サブサンプル情報ボックスにおける廃棄可能フィールドと同じ定義ではない。
【０１７３】
ＮｏＩｎｔｅｒＬａｙｅｒＰｒｅｄＦｌａｇは、サブサンプル中のＶＣＬ  ＮＡＬユニットのｉｎｔｅｒ＿ｌａｙｅｒ＿ｐｒｅｄ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値を示す。サブサンプル中のすべてのＶＣＬ  ＮＡＬユニットは、同じ値のｉｎｔｅｒ＿ｌａｙｅｒ＿ｐｒｅｄ＿ｅｎａｂｌｅｄ＿ｆｌａｇを有するべきである。
【０１７４】
ＬａｙｅｒＩｄは、サブサンプル中のＮＡＬユニットのｎｕｈ＿ｌａｙｅｒ＿ｉｄの値を示す。サブサンプル中のすべてのＮＡＬユニットは、同じｎｕｈ＿ｌａｙｅｒ＿ｉｄの値を有するべきである。
【０１７５】
ＴｅｍｐＩｄは、サブサンプル中のＮＡＬユニットのＴｅｍｐｏｒａｌＩｄの値を示す。サブサンプル中のすべてのＮＡＬユニットは、同じＴｅｍｐｏｒａｌＩｄの値を有するべきである。
【０１７６】
ｖｃｌ＿ｉｄｃは、サブサンプルがビデオコーディングレイヤ（ＶＣＬ）データを含むか、非ＶＣＬデータを含むか、または両方を含むかを、次のように示す。
０：サブサンプルがＶＣＬデータを含み、非ＶＣＬデータを含まない
１：サブサンプルがＶＣＬデータを含まず、非ＶＣＬデータを含む
２：サブサンプルがＶＣＬデータと非ＶＣＬデータの両方を含んでよく、これらは互いに関連付けられ得る。たとえば、サブサンプルは、ＳＥＩメッセージと関連付けられるＮＡＬユニットのセットが後に続く、復号ユニット情報ＳＥＩメッセージを含み得る。
３：予備
ｌｏｇ２＿ｍｉｎ＿ｌｕｍａ＿ｃｔｂは、次のように規定される、ｃｔｂ＿ｘおよびｃｔｂ＿ｙの単位を示す。
０：８個のルーマサンプル
１：１６個のルーマサンプル
２：３２個のルーマサンプル
３：６４個のルーマサンプル
ｃｔｂ＿ｘは、フラグが２に等しく、ｖｃｌ＿ｉｄｃが１または２に等しいときに、サブサンプルと関連付けられるタイルの最も右のルーマサンプルの０ベースの座標を、上で規定されたようなｌｏｇ２＿ｍｉｎ＿ｌｕｍａ＿ｃｔｂから導出される単位で指定する。
【０１７７】
ｃｔｂ＿ｙは、フラグが２に等しく、ｖｃｌ＿ｉｄｃが１または２に等しいときに、サブサンプルと関連付けられるタイルの０ベースの座標最も下のルーマサンプルを、上で規定されたようなｌｏｇ２＿ｍｉｎ＿ｌｕｍａ＿ｃｔｂから導出される単位で指定する。
【０１７８】
ＶｃｌＮａｌＵｎｉｔＴｙｐｅは、サブサンプル中のＶＣＬ  ＮＡＬユニットのｎａｌ＿ｕｎｉｔ＿ｔｙｐｅの値を示す。サブサンプル中のすべてのＶＣＬ  ＮＡＬユニットは、同じｎａｌ＿ｕｎｉｔ＿ｔｙｐｅの値を有するべきである。
９．５．９  非出力サンプルの処理
８．４．９の仕様が、「ＨＥＶＣ」を「ＳＨＶＣ」に置き換えて適用され、ターゲット出力レイヤの（１つまたは複数の）ピクチャが０に等しいｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有するサンプルとして、非出力サンプルが定義される。アクセスユニットが１に等しいｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有するいくつかのコーディングされたピクチャと０に等しいｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有するいくつかの他のコーディングされたピクチャとを含むとき、各トラック内において、各サンプル中のすべてのコーディングされたピクチャが同じ値のｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有するように、少なくとも２つのトラックがストリームを記憶するために使用されなければならない。
１０．  １０  ＭＶ−ＨＥＶＣエレメンタリストリームおよびサンプルの定義
１０．１  序論
この項は、ＭＶ−ＨＥＶＣデータの記憶フォーマットを規定する。この項は、項８におけるＨＥＶＣの記憶フォーマットの定義を拡張する。
【０１７９】
この項およびＡｎｎｅｘ  Ａ〜Ｄにおいて定義されるような、ＭＶ−ＨＥＶＣコンテンツの記憶のためのファイルフォーマットは、ＩＳＯベースのメディアファイルフォーマットおよびプレーンＨＥＶＣファイルフォーマット（すなわち、項８において規定されるファイルフォーマット）の既存の能力を使用する。加えて、ＭＶ−ＨＥＶＣ固有の特徴をサポートするために、とりわけ以下の構造および拡張が使用される。
【０１８０】
アグリゲータ：ＮＡＬユニットの不規則なパターンを集約されたデータユニットの規則的なパターンへと変更することによって、ＮＡＬユニットの効率的なスケーラブルグループ化を可能にするための構造。
【０１８１】
エクストラクタ：メディアデータを含むトラック以外のトラックからのＮＡＬユニットの効率的な抽出を可能にするための構造。
【０１８２】
ＨＥＶＣ適合性：ＨＥＶＣに適合するベースレイヤが任意のプレーンＨＥＶＣファイルフォーマットに準拠するリーダーによって使用され得るように、ＨＥＶＣに適合する方式でＭＶ−ＨＥＶＣビットストリームを記憶するための準備。
【０１８３】
ＭＶ−ＨＥＶＣのサポートは、いくつかのツールを含み、それらがどのように使用され得るかの様々な「モデル」がある。具体的には、ＭＶ−ＨＥＶＣストリームは、いくつかの方法でトラックに配置されてよく、以下がそれらの方法の一部である。
１．サンプルグループによってラベリングされる１つのトラック中にすべてのビューがある
２．サンプルエントリーにおいてラベリングされる固有のトラックの中に各ビューがある
３．１つのトラックがすべてのビューを含み、１つまたは複数のシングルビューが独立にコーディングされ得るビューを各々含む、ハイブリッド方式
４．予想されるオペレーションポイントが各々、トラックの中にある（たとえば、ＨＥＶＣベース、ステレオペア、マルチビューシーン）
ＭＶ−ＨＥＶＣファイルフォーマットは、項９におけるＳＨＶＣに対するサポートと同様に、トラックへの１つまたは複数のビューの記憶を可能にする。トラックごとの複数のビューの記憶は、たとえば、サブセット作成が意図されていないマルチビュービットストリームをコンテンツ提供者が提供することを望むとき、または、出力ビューの少数の事前に定義されたセット（１個、２個、５個、または９個のビューのような）に対してビットストリームが作成されておりそれに従ってトラックが作成され得るときに、使用され得る。２つ以上のビューがトラックに記憶され、ＭＶ−ＨＥＶＣビットストリームを表すいくつかのトラック（２つ以上）がある場合、サンプルグループ化機構の使用が推奨される。
【０１８４】
ＭＶ−ＨＥＶＣビットストリームが複数のトラックによって表され、プレーヤが複数のトラック中のデータを含むオペレーションポイントを使用するとき、プレーヤは、ＭＶ−ＨＥＶＣデコーダにＭＶ−ＨＥＶＣアクセスユニットを渡す前に、ＭＶ−ＨＥＶＣアクセスユニットを再構築しなければならない。ＭＶ−ＨＥＶＣオペレーションポイントは、トラックによって明示的に表されてよく、すなわち、アクセスユニットは、サンプルのすべてのエクストラクタおよびアグリゲータＮＡＬユニットを単に解決することによって、再構築される。オペレーションポイントの数が多い場合、各オペレーションポイントのためのトラックを作成することは、空間を多く必要とし非現実的であることがある。そのような場合、ＭＶ−ＨＥＶＣアクセスユニットは、１０．５．２において規定されるように再構築される。ＭＶ−ＨＥＶＣデコーダ構成記録は、関連付けられるサンプルが明示的なアクセスユニットの再構築を使用するかまたは暗黙的なアクセスユニットの再構築を使用するかを示すフィールドを含む（ｅｘｐｌｉｃｉｔ＿ａｕ＿ｔｒａｃｋフィールド参照）。
１０．２  ＭＶ−ＨＥＶＣトラック構造
ＭＶ−ＨＥＶＣストリームは、ＭＶ−ＨＥＶＣビデオエレメンタリストリームの以下の定義とともに、８．２に従って記憶される。
【０１８５】
・ＭＶ−ＨＥＶＣビデオエレメンタリストリームは、すべてのビデオコーディングに関連するＮＡＬユニット（すなわち、ビデオデータを含む、またはビデオ構造をシグナリングするＮＡＬユニット）を含むべきであり、ＳＥＩメッセージおよびアクセスユニットデリミタＮＡＬユニットのようなビデオコーディングに関連しないＮＡＬユニットを含み得る。アグリゲータ（Ａ．２参照）またはエクストラクタ（Ａ．３参照）も存在し得る。アグリゲータおよびエクストラクタは、この国際規格において定義されるように処理されるべきである（たとえば、ファイルにアクセスしている間に出力バッファに直接配置されるべきではない）。明示的に禁止されない他のＮＡＬユニットが存在することがあり、それらは、認識されなければ無視されるべきである（たとえば、ファイルにアクセスする間に出力バッファに配置されるべきではない）。
【０１８６】
ＭＶ−ＨＥＶＣストリームは、必要とされるとき、関連付けられるパラメータセットストリームを使用して記憶されるべきではない。
【０１８７】
０に等しいｎｕｈ＿ｌａｙｅｒ＿ｉｄを有するＶＣＬ  ＮＡＬユニット、０よりも大きなｎｕｈ＿ｌａｙｅｒ＿ｉｄを有するＶＣＬ  ＮＡＬユニット、およびＭＶ−ＨＥＶＣビデオエレメンタリストリーム中に存在する他の非ＶＣＬ  ＮＡＬユニットがあり得る。加えて、ＭＶ−ＨＥＶＣビデオエレメンタリストリームには、アグリゲータＮＡＬユニットまたはエクストラクタＮＡＬユニットが存在し得る。
１０．３  プレーンＨＥＶＣファイルフォーマットの使用
ＭＶ−ＨＥＶＣファイルフォーマットは、項８において定義されるプレーンＨＥＶＣファイルフォーマットの拡張である。
１０．４  サンプルおよび構成の定義
１０．４．１  序論
ＭＶ−ＨＥＶＣサンプル：ＭＶ−ＨＥＶＣサンプルは、ＩＳＯ／ＩＥＣ  ２３００８−２のＡｎｎｅｘ  Ｆにおいて定義されるようなアクセスユニットでもある。
１０．４．２  標準的な順序および制約
１０．４．２．１  制約
項８．３．２における要件に加えて、以下の制約がＭＶ−ＨＥＶＣデータに適用される。
【０１８８】
・ＶＣＬ  ＮＡＬユニット：１つのアクセスユニットの中のすべてのＶＣＬ  ＮＡＬユニットは、アクセスユニットによって表されるピクチャの合成時間と合成時間が同じであるサンプルに含まれるべきである。ＭＶ−ＨＥＶＣサンプルは、少なくとも１つのＶＣＬ  ＮＡＬユニットを含むべきである。
【０１８９】
・アグリゲータ／エクストラクタ：アグリゲータに含まれる、またはエクストラクタによって参照されるすべてのＮＡＬユニットの順序は、これらのＮＡＬユニットがアグリゲータ／エクストラクタを含まないサンプルに存在しているかのように、復号順序とまったく同じである。アグリゲータまたはエクストラクタを処理した後で、すべてのＮＡＬユニットが、ＩＳＯ／ＩＥＣ  ２３００８−２において規定されるような有効な復号順序でなければならない。
１０．４．２．２  デコーダ構成記録
項８．３．３．１において定義されるデコーダ構成記録が、ＭＶ−ＨＥＶＣストリームまたはＨＥＶＣストリームのいずれかとして解釈され得るストリームのために使用されるとき、ＨＥＶＣデコーダ構成記録は、ＨＥＶＣに適合するベースビューの性質を反映するべきであり、たとえば、ＨＥＶＣデコーダ構成記録は、ＨＥＶＣベースビューを復号するために必要とされるパラメータセットのみを含むべきである。
【０１９０】
ＭＶＨＥＶＣＤｅｃｏｄｅｒＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｃｏｒｄは、ＨＥＶＣＤｅｃｏｄｅｒＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｃｏｒｄと構造的に同一である。シンタックスは次の通りである。
alligned(8)classMVHEVCDecoderConfigurationRecord{
// HEVCDecoderConfigurationRecordシンタックス構造と同じフィールド}
ＭＶＨＥＶＣＤｅｃｏｄｅｒＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｃｏｒｄにおけるフィールドのセマンティクスは、ＨＥＶＣＤｅｃｏｄｅｒＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｃｏｒｄに対して定義されるものと同じである。
１０．４．３  シンクサンプル
ＭＶ−ＨＥＶＣサンプルは、アクセスユニット中の各々のコーディングされたピクチャがＩＳＯ／ＩＥＣ  ２３００８−２において定義されるようなＲＡＳＬピクチャを伴わないＩＲＡＰピクチャである場合、シンクサンプルとして見なされる。シンクサンプルはシンクサンプルテーブルによって記録され、ＳＨＶＣの場合の同様に定義される、シンクサンプルのサンプルグループおよび「ラップ」サンプルグループによって追加で記録され得る。
１０．４．４  独立の使い捨てサンプルボックス
ＨＥＶＣとＭＶ−ＨＥＶＣの両方に適合するトラックにおいて使用される場合、ＭＶ−ＨＥＶＣデータのどの有効なサブセット（場合によってはＨＥＶＣデータのみ）が使用されても記述が真であることに、注意が払われなければならない。情報が変化する場合、「未知」の値（フィールドｓａｍｐｌｅ−ｄｅｐｅｎｄｓ−ｏｎ、ｓａｍｐｌｅ−ｉｓ−ｄｅｐｅｎｄｅｄ−ｏｎ、およびｓａｍｐｌｅ−ｈａｓ−ｒｅｄｕｎｄａｎｃｙの値０）が必要とされ得る。
１０．４．５  ランダムアクセス復元ポイントおよびランダムアクセスポイントについてのサンプルグループ
タイプ「ｈｖｃ１」、「ｈｅｖ１」、「ｈｖｃ２」、または「ｈｅｖ２」のサンプルエントリーによって記述されるビデオデータに対して、ランダムアクセス復元サンプルグループおよびランダムアクセスポイントサンプルグループは、ビットストリーム全体に対して動作する、ＨＥＶＣデコーダとＭＶ−ＨＥＶＣデコーダ（もしあれば）の両方に対して、ランダムアクセス復元ポイントとランダムアクセスポイントとをそれぞれ特定する。
【０１９１】
ＭＶ−ＨＥＶＣサンプルエントリータイプによって記述されるビデオデータに対して、ランダムアクセス復元サンプルグループは、ＭＶ−ＨＥＶＣビットストリーム全体の中でランダムアクセス復元を特定し、ランダムアクセスポイントサンプルグループは、ＭＶ−ＨＥＶＣビットストリーム全体の中でランダムアクセスポイントを特定する。
１０．５  ＩＳＯベースのメディアファイルフォーマットからの導出
１０．５．１  ＭＶ−ＨＥＶＣトラック構造
マルチビュービデオストリームが、ファイル中の１つまたは複数のビデオトラックによって表される。各トラックは、ストリームの１つまたは複数のビューを表す。
【０１９２】
符号化された情報の完全なセットを全体として含む、１つまたは複数のトラックの最小限のセットがある。すべてのこれらのトラックは、すべてのサンプルエントリーにおいて設定された、「ｃｏｍｐｌｅｔｅ＿ｒｅｐｒｅｓｅｎｔａｔｉｏｎ」というフラグを有するべきである。完全な符号化された情報を形成するトラックのこのグループは、「完全なサブセット」と呼ばれる。
【０１９３】
最低のオペレーションポイントを、０に等しいｎｕｈ＿ｌａｙｅｒ＿ｉｄのみと０に等しいＴｅｍｐｏｒａｌＩｄのみとを有するＮＡＬユニットを含むすべてのオペレーションポイントの１つとする。最低のオペレーションポイントを含むトラックが、「ベースビュートラック」として指名されるべきである。同じストリームの部分であるすべての他のトラックが、タイプ「ｓｂａｓ」（ベースビュー）のトラック参照によって、このベーストラックにリンクされるべきである。
【０１９４】
同じベースビュートラックを共有するすべてのトラックが、そのベースビュートラックと同じ時間軸を共有しなければならない。
【０１９５】
トラックによって表されるビューが、ビュー間予測参照として別のトラックによって表される別のビューを使用する場合、タイプ「ｓｃａｌ」のトラック参照が、ビュー間予測のためのソーストラックを参照するトラックに含まれるべきである。
【０１９６】
ＭＶ−ＨＥＶＣビットストリームのビュー成分を含むトラックに編集が適用される場合、編集リストは、編集の影響を受けるすべてのトラックにわたって一貫していなければならない。
１０．５．２  アクセスユニットの再構築
１つまたは複数のＭＶ−ＨＥＶＣトラックのサンプルからアクセスユニットを再構築するために、ターゲット出力ビューが最初に決定される必要があり得る。
【０１９７】
決定されたターゲット出力ビューを復号するために必要とされるビューは、ビュー識別子ボックスまたは「ｓｃａｌ」トラック参照に含まれる参照ビュー識別子から断定され得る。
【０１９８】
いくつかのトラックがアクセスユニットのためのデータを含む場合、トラック中のそれぞれのサンプルの整列が、復号時に、すなわち、編集リストを考慮することなく時間対サンプルのテーブルのみを使用して、実行される。
【０１９９】
アクセスユニットは、ＩＳＯ／ＩＥＣ  ２３００８−０２に適合した順序でＮＡＬユニットを並べることによって、必要とされるトラックの中のそれぞれのサンプルから再構築される。以下の順序は、準拠するアクセスユニットを形成するための手順の概略を提供する。
【０２００】
・（関連付けられるパラメータセットトラックからの、および関連付けられるエレメンタリストリームトラックからの）すべてのパラメータセットＮＡＬユニット
・（関連付けられるパラメータセットトラックからの、および関連付けられるエレメンタリストリームトラックからの）すべてのＳＥＩ  ＮＡＬユニット
・ビュー順序インデックス値の昇順のビュー成分ビュー成分内のＮＡＬユニットは、サンプル内での出現の順序になっている。
１０．５．３  サンプルエントリー
１０．５．３．１  サンプルエントリーのためのボックス
１０．５．３．１．１  ビュー識別子ボックス
１０．５．３．１．１．１  定義
ボックスタイプ：「ｖｗｉｄ」
コンテナ：サンプルエントリー（「ｈｅｖ１」、「ｈｖｃ１」、「ｈｅｖ２」、「ｈｖｃ２」、「ｍｈｃ１」、「ｍｈｖ１」）またはＭｕｌｔｉｖｉｅｗＧｒｏｕｐＥｎｔｒｙ
必須性：あり（サンプルエントリーに対して）
量：ちょうど１つ（サンプルエントリーに対して）
サンプルエントリーに含まれるとき、このボックスは、トラックに含まれるビューを示す。このボックスはまた、各々の列挙されたビューのビュー順序インデックスを示す。加えて、ボックスは、ビュー識別子ボックスがサンプルエントリーに含まれるとき、トラックに含まれるｔｅｍｐｏｒａｌ＿ｉｄの値の最小値と最大値とを含む。その上、ボックスは、トラックに含まれるビューを復号するために必要とされる参照されるビューを示す。
１０．５．３．１．１．２  シンタックス
【０２０１】
【数４】
0006434008.tif 000008
【０２０２】
１０．５．３．１．１．３  セマンティクス
ｍｉｎ＿ｔｅｍｐｏｒａｌ＿ｉｄ、ｍａｘ＿ｔｅｍｐｏｒａｌ＿ｉｄはそれぞれ、ビュー識別子ボックスがサンプルエントリーに含まれるときにそれぞれトラックまたは階層にマッピングされるＮＡＬユニットのＮＡＬユニットヘッダ拡張中にそれぞれ存在する、ｔｅｍｐｏｒａｌ＿ｉｄシンタックス要素の最小値および最大値をとる。ＡＶＣストリームに対して、これは、プレフィックスＮＡＬユニットの中にある、またはその中にあるであろう、値をとる。
【０２０３】
ｎｕｍ＿ｖｉｅｗｓは、ビュー識別子ボックスがサンプルエントリー中に存在するとき、トラックに含まれるビューの数を示す。
【０２０４】
ｌａｙｅｒ＿ｉｄ［ｉ］は、ビュー識別子ボックスがサンプルエントリーに含まれるときにトラックに含まれるレイヤのＮＡＬユニットヘッダ中の、ｎｕｈ＿ｌａｙｅｒ＿ｉｄシンタックス要素の値を示す。
【０２０５】
ｖｉｅｗ＿ｉｄは、ＩＳＯ／ＩＥＣ  ２３００８−２のＡｎｎｅｘ  Ｆにおいて規定されるような、ｌａｙｅｒ＿ｉｄ［ｉ］に等しいｎｕｈ＿ｌａｙｅｒ＿ｉｄを有するｉ番目のレイヤのビュー識別子を示す。
【０２０６】
ｂａｓｅ＿ｖｉｅｗ＿ｔｙｐｅは、ビューがベースビューかどうか（仮想的かどうか）を示す。これは次の値をとる。
【０２０７】
０は、ビューがベースビューでも仮想ベースビューでもないことを示す。
【０２０８】
１は、ＭＶ−ＨＥＶＣビットストリームの仮想ベースビューをラべリングするために使用されるべきである。
【０２０９】
２は、予備の値であり使用されるべきではない。
【０２１０】
３は、ｖｉｅｗ＿ｉｄ［ｉ］を有するビューが仮想ベースビューであることを示す。それぞれの独立にコーディングされた、ｖｉｅｗ＿ｉｄ［ｉ］を有する非ベースビューは、別のトラックに存在する。ｂａｓｅ＿ｖｉｅｗ＿ｔｙｐｅが３に等しいとき、後続のｎｕｍ＿ｒｅｆ＿ｖｉｅｗｓは０に等しくなければならない。
【０２１１】
ｄｅｐｄｅｎｔ＿ｌａｙｅｒ［ｉ］［ｊ］は、ｊに等しいｎｕｈ＿ｌａｙｅｒ＿ｉｄを有するｊ番目のレイヤが、ｌａｙｅｒ＿ｉｄ［ｉ］に等しいｎｕｈ＿ｌａｙｅｒ＿ｉｄを有するレイヤの、直接のまたは間接的な参照されるレイヤであり得るかどうかを示す。ビュー識別子ボックスがサンプルエントリーに含まれるとき、同じサンプルエントリー中の参照されるビューを示すことが推奨される。
１０．５．３．２  サンプルエントリーの定義
サンプルエントリーのタイプ：「ｈｖｃ２」、「ｈｅｖ２」、「ｍｈｃ１」、「ｍｈｖ１」、「ｍｈｃＣ」
コンテナ：サンプル記述ボックス（「ｓｔｓｄ」）
必須性：「ｈｖｃ１」、「ｈｅｖ１」、「ｈｖｃ２」、「ｈｅｖ２」、「ｍｈｃ１」、または「ｍｈｖ１」ボックスの１つが必須である。
【０２１２】
量：１つまたは複数のサンプルエントリーが存在し得る。
【０２１３】
ＭＶ−ＨＥＶＣエレメンタリストリームが、使用可能なＨＥＶＣに適合するベースビューを含む場合、ＨＥＶＣ視覚サンプルエントリー（「ｈｖｃ１」、「ｈｅｖ１」、「ｈｖｃ２」、「ｈｅｖ２」）が使用されるべきである。ここで、エントリーは、最初にＨＥＶＣ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｂｏｘを含み、場合によっては、以下で定義されるようなＭＶ−ＨＥＶＣ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｂｏｘがそれに続くべきである。ＨＥＶＣ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｂｏｘは、Ｐｒｏｆｉｌｅ、Ｌｅｖｅｌ、および場合によっては、ＨＥＶＣＤｅｃｏｄｅｒＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｃｏｒｄによって定義されるような、ＨＥＶＣに適合するベースビューに関するパラメータセットも記録する。ＭＶ−ＨＥＶＣ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｂｏｘは、Ｐｒｏｆｉｌｅ、Ｌｅｖｅｌ、および、ＭＶＨＥＶＣＣｏｎｆｉｇｕｒａｔｉｏｎＢｏｘに記憶されているＭＶＨＥＶＣＤｅｃｏｄｅｒＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｃｏｒｄによって定義されるような、非ベースビューを含む全体のストリームに関するパラメータセット情報を記録する。
【０２１４】
すべてのサンプルエントリー「ｈｖｃ１」、「ｈｅｖ１」、「ｈｖｃ２」、「ｈｅｖ２」に対して、サンプルエントリー中の幅および高さのフィールドは、ＨＥＶＣベースレイヤを記述する。ＭＶ−ＨＥＶＣサンプルエントリー（「ｍｈｃ１」、「ｍｈｖ１」）では、幅および高さは、ストリーム全体の任意の単一のビューを復号することによって達成される分解能（resolution）を記録する。
【０２１５】
ＭＶ−ＨＥＶＣエレメンタリストリームが使用可能なＨＥＶＣベースビューを含まない場合、ＭＶ−ＨＥＶＣ視覚サンプルエントリー（「ｍｈｃ１」、「ｍｈｖ１」）が使用されるべきである。ＭＶ−ＨＥＶＣ視覚サンプルエントリーは、以下で定義されるような、ＭＶ−ＨＥＶＣ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｂｏｘを含むべきである。これは、この国際規格において定義されるような、ＭＶＨＥＶＣＤｅｃｏｄｅｒＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｃｏｒｄを含む。
【０２１６】
任意の所与のサンプルエントリーにおけるＭＶ−ＨＥＶＣ構成およびＨＥＶＣ構成中のｌｅｎｇｔｈＳｉｚｅＭｉｎｕｓＯｎｅフィールドは、同じ値を有するべきである。
【０２１７】
６．５．３．１．１において記述されるような、サンプルエントリーのタイプ「ｈｖｃ１」および「ｈｅｖ１」に対する要件が、ここでも適用される。
【０２１８】
ＭＶＨＥＶＣＣｏｎｆｉｇｕｒａｔｉｏｎＢｏｘは、「ｈｖｃ１」、「ｈｅｖ１」、「ｈｖｃ２」、「ｈｅｖ２」サンプルエントリーに存在し得る。これらの場合、以下のＨＥＶＣＭＶＨＥＶＣＳａｍｐｌｅＥｎｔｒｙまたはＨＥＶＣ２ＭＶＨＥＶＣＳａｍｐｌｅＥｎｔｒｙの定義がそれぞれ適用される。
【０２１９】
ベースクラスＶｉｓｕａｌＳａｍｐｌｅＥｎｔｒｙにおけるＣｏｍｐｒｅｓｓｏｒｎａｍｅは、値「＼０１４ＭＶ−ＨＥＶＣ  Ｃｏｄｉｎｇ」（＼０１６は、文字列「ＭＶ−ＨＥＶＣ  ｃｏｄｉｎｇ」のバイト単位での長さである、１４である）によって、使用されるコンプレッサの名前を示す。
【０２２０】
ビデオストリームのサンプルデータに存在するＮＡＬユニットを復号するために必要とされるパラメータセットは、直接、またはエクストラクタからの参照によって、そのビデオストリームのデコーダ構成または関連付けられるパラメータセットストリーム（使用される場合）に存在すべきである。
【０２２１】
次の表は、ＭＶ−ＨＥＶＣエレメンタリストリームが１つまたは複数のトラックに記憶されるときのサンプルエントリーのすべての可能性のある使用法と、構成と、ＭＶ−ＨＥＶＣツールとを、ビデオトラックについて示す。
【０２２２】
【表３】
0006434008.tif 000009
【０２２３】
以下のサンプルエントリーｍｖｈｅｖｃ−ｔｙｐｅは、｛ｍｈｖ１，ｍｈｃ１｝の１つである。
１０．５．３．３  シンタックス
【０２２４】
【数５】
0006434008.tif 000010
【０２２５】
１０．５．４  ＭＶ−ＨＥＶＣのためのサブサンプルの定義
ＭＶ−ＨＥＶＣのためのサブサンプルの定義は、ＳＨＶＣのために定義されるものと同様に定義される。
１０．５．５  非出力サンプルの処理
ＭＶ−ＨＥＶＣのための非出力サンプルの処理は、ＳＨＶＣのために定義されるものと同様に定義される。
[0124]Ａｎｎｅｘ  Ａに対する変更が以下に示される。
Ａｎｎｅｘ  Ａ（規範的）
ストリーム内構造
Ａ．１  序論
アグリゲータおよびエクストラクタは、ＮＡＬユニットの効率的なグループ化または他のトラックからのＮＡＬユニットの抽出を可能にする、ファイルフォーマットの内部構造である。
アグリゲータおよびエクストラクタは、ＮＡＬユニットシンタックスを使用する。これらの構造は、サンプル構造の文脈ではＮＡＬユニットとして見なされる。サンプルにアクセスしている間、アグリゲータは（含まれるまたは参照されるＮＡＬユニットを残して）除去されなければならず、エクストラクタはエクストラクタが参照するデータによって置き換えられなければならない。アグリゲータおよびエクストラクタは、ファイルフォーマットの外部のストリームに存在してはならない。
【０２２６】
これらの構造は、ＩＳＯ／ＩＥＣ  １４４９６−１０またはＩＳＯ／ＩＥＣ  ２３００８−２によってアプリケーション／トランスポートレイヤのために確保されている、ＮＡＬユニットタイプを使用する。
【０２２７】
注意  以下の記述はＩＳＯ／ＩＥＣ  １４４９６−１０からのものである。
「注意−ＮＡＬユニットタイプ０および２４…３１は、アプリケーションによって決定されるように使用され得る。ｎａｌ＿ｕｎｉｔ＿ｔｙｐｅのこれらの値に対する復号プロセスは、この勧告｜国際規格では規定されない。」
注意  以下の記述はＩＳＯ／ＩＥＣ  ２３００８−２からのものである。
「注意１−ＵＮＳＰＥＣ４８〜ＵＮＳＰＥＣ６３の範囲内のＮＡＬユニットタイプは、アプリケーションによって決定されるように使用され得る。ｎａｌ＿ｕｎｉｔ＿ｔｙｐｅのこれらの値についての復号プロセスは、本仕様では規定されない。異なるアプリケーションが異なる目的でこれらのＮＡＬユニットタイプを使用する可能性があるので、これらのｎａｌ＿ｕｎｉｔ＿ｔｙｐｅ値を有するＮＡＬユニットを生成するエンコーダの設計、およびこれらのｎａｌ＿ｕｎｉｔ＿ｔｙｐｅ値を有するＮＡＬユニットの内容を解釈するデコーダの設計において、特別な注意が払われなければならない。」
Ａ．２  アグリゲータ
Ａ．２．１  定義
この項は、ＮＡＬＵ−ｍａｐ−ｇｒｏｕｐエントリーが一貫しており反復的であることを可能にする、アグリゲータについて説明する。（Ａｎｎｅｘ  Ｂ参照）。
【０２２８】
アグリゲータは、同じサンプルに属するＮＡＬユニットをグループ化するために使用される。
【０２２９】
ＩＳＯ／ＩＥＣ  １４４９６−１０ビデオの記憶のために、次の規則が適用される。
【０２３０】
−アグリゲータは、ＳＶＣ  ＶＣＬ  ＮＡＬユニットまたはＭＶＣ  ＶＣＬ  ＮＡＬユニットと同じＮＡＬユニットヘッダを使用するが、異なる値のＮＡＬユニットタイプとともに使用する。
【０２３１】
−アグリゲータのＮＡＬユニットシンタックスのｓｖｃ＿ｅｘｔｅｎｓｉｏｎ＿ｆｌａｇ（ＩＳＯ／ＩＥＣ  １４４９６−１０の７．３．１において規定される）が１に等しいとき、ＳＶＣ  ＶＣＬ  ＮＡＬユニットのＮＡＬユニットヘッダがアグリゲータのために使用される。それ以外の場合、ＭＶＣ  ＶＣＬ  ＮＡＬユニットのＮＡＬユニットヘッダがアグリゲータのために使用される。
【０２３２】
ＩＳＯ／ＩＥＣ  ２３００８−２ビデオの記憶のために、アグリゲータは、プレーンＨＥＶＣ、ＳＨＶＣ、およびＭＶ−ＨＥＶＣに対して同じシンタックスを有する、ＩＳＯ／ＩＥＣ  ２３００８−２において定義されるようなＮＡＬユニットヘッダを使用する。
【０２３３】
アグリゲータは、包含によって、アグリゲータ内の（アグリゲータの長さによって示されるサイズ内の）ＮＡＬユニットを集約することと、また、参照によって、アグリゲータに続く（アグリゲータ内のａｄｄｉｔｉｏｎａｌ＿ｂｙｔｅｓフィールドによって示されるエリア内の）ＮＡＬユニットを集約することとの両方を行うことができる。ストリームがＡＶＣまたはＨＥＶＣファイルリーダーによって走査されるとき、含まれるＮＡＬユニットだけがアグリゲータの「中にある」ものとして見なされる。これにより、ＡＶＣまたはＨＥＶＣファイルリーダーは、不要なＮＡＬユニットが包含によって集約されるときに、不要なＮＡＬユニットのセット全体を飛ばすことが可能になる。また、これにより、ＡＶＣまたはＨＥＶＣリーダーは、必要なＮＡＬユニットが参照によって集約されるときに、それらを飛ばさずにストリーム中に留まらせることが可能になる。
【０２３４】
アグリゲータは、ベースレイヤまたはベースビューＮＡＬユニットをグループ化するために使用され得る。これらのアグリゲータが「ａｖｃ１」、「ｈｖｃ１」、または「ｈｅｖ１」トラックにおいて使用される場合、アグリゲータは、ベースレイヤまたはベースビューＮＡＬユニットの包含ではなく参照を使用するべきである（アグリゲータの長さはアグリゲータのヘッダのみを含み、アグリゲータによって参照されるＮＡＬユニットはａｄｄｉｔｉｏｎａｌ＿ｂｙｔｅｓによって指定される）。
【０２３５】
アグリゲータが０に等しいｄａｔａ＿ｌｅｎｇｔｈを有するエクストラクタ、またはＭａｐサンプルグループのいずれかによって参照されるとき、アグリゲータは、含まれるバイトと参照されるバイトの両方を集約するものとして扱われる。
【０２３６】
アグリゲータは、エクストラクタを含み、または参照し得る。エクストラクタは、アグリゲータから抽出し得る。アグリゲータは、別のアグリゲータを直接含んではならず、または参照してはならない。しかしながら、アグリゲータは、アグリゲータを参照するエクストラクタを含んでよく、または参照してよい。
【０２３７】
ストリームを走査するとき、
ａ）  アグリゲータが（たとえば、ＡＶＣまたはＨＥＶＣリーダーまたはデコーダによって）認識されていない場合、アグリゲータは含まれる内容とともに容易に廃棄される。
ｂ）  アグリゲータが必要とされない（すなわち、アグリゲータが所望されないレイヤに属している）とき、アグリゲータおよびその内容は、包含と参照の両方によって、（アグリゲータの長さとａｄｄｉｔｉｏｎａｌ＿ｂｙｔｅｓフィールドとを使用して）容易に廃棄される。
ｃ）  アグリゲータが必要である場合、アグリゲータのヘッダは容易に廃棄され、アグリゲータの内容は保持される。
【０２３８】
アグリゲータは、任意の他のＮＡＬユニットのようにサンプル内に記憶される。
【０２３９】
すべてのＮＡＬユニットは、アグリゲータ内で復号順序のままである。
Ａ．２．２  シンタックス
【０２４０】
【数６】
0006434008.tif 000011
【０２４１】
Ａ．２．３  セマンティクス
変数ＡｇｇｒｅｇａｔｏｒＳｉｚｅの値は、アグリゲータＮＡＬユニットのサイズに等しく、関数ｓｉｚｅｏｆ（Ｘ）は、フィールドＸのサイズをバイト単位で返す。
【０２４２】
ＮＡＬＵｎｉｔＨｅａｄｅｒ（）：ＳＶＣおよびＭＶＣ  ＶＣＬ  ＮＡＬユニットの最初４バイト、またはＩＳＯ／ＩＥＣ  ２３００８−２  ＮＡＬユニットの最初の２バイト
ｎａｌ＿ｕｎｉｔ＿ｔｙｐｅは、アグリゲータＮＡＬユニットタイプ（ＩＳＯ／ＩＥＣ  １４４９６−１０ビデオに対してはタイプ３０およびＩＳＯ／ＩＥＣ  ２３００８−２ビデオに対してはタイプ４８）に設定されるべきである。
【０２４３】
ＳＶＣ  ＮＡＬユニットを含む、または参照するアグリゲータでは、次のことが当てはまるものとする。
【０２４４】
ｆｏｒｂｉｄｄｅｎ＿ｚｅｒｏ＿ｂｉｔおよびｒｅｓｅｒｖｅｄ＿ｔｈｒｅｅ＿２ｂｉｔｓは、ＩＳＯ／ＩＥＣ  １４４９６−１０において規定されるように設定されるべきである。
【０２４５】
他のフィールド（ｎａｌ＿ｒｅｆ＿ｉｄｃ、ｉｄｒ＿ｆｌａｇ、ｐｒｉｏｒｉｔｙ＿ｉｄ、ｎｏ＿ｉｎｔｅｒ＿ｌａｙｅｒ＿ｐｒｅｄ＿ｆｌａｇ、ｄｅｐｅｎｄｅｎｃｙ＿ｉｄ、ｑｕａｌｉｔｙ＿ｉｄ、ｔｅｍｐｏｒａｌ＿ｉｄ、ｕｓｅ＿ｒｅｆ＿ｂａｓｅ＿ｐｉｃ＿ｆｌａｇ、ｄｉｓｃａｒｄａｂｌｅ＿ｆｌａｇ、およびｏｕｔｐｕｔ＿ｆｌａｇ）は、Ａ．４において規定されるように設定されるべきである。
【０２４６】
ＭＶＣ  ＮＡＬユニットを含む、または参照するアグリゲータでは、次のことが当てはまるものとする。
ｆｏｒｂｉｄｄｅｎ＿ｚｅｒｏ＿ｂｉｔおよびｒｅｓｅｒｖｅｄ＿ｏｎｅ＿ｂｉｔは、ＩＳＯ／ＩＥＣ  １４４９６−１０において規定されるように設定されるべきである。
他のフィールド（ｎａｌ＿ｒｅｆ＿ｉｄｃ、ｎｏｎ＿ｉｄｒ＿ｆｌａｇ、ｐｒｉｏｒｉｔｙ＿ｉｄ、ｖｉｅｗ＿ｉｄ、ｔｅｍｐｏｒａｌ＿ｉｄ、ａｎｃｈｏｒ＿ｐｉｃ＿ｆｌａｇ、およびｉｎｔｅｒ＿ｖｉｅｗ＿ｆｌａｇ）は、Ａ．５において規定されるように設定されるべきである。
ＩＳＯ／ＩＥＣ  ２３００８−２  ＮＡＬユニットを含む、または参照するアグリゲータでは、次のことが当てはまるものとする。
【０２４７】
ｆｏｒｂｉｄｄｅｎ＿ｚｅｒｏ＿ｂｉｔは、ＩＳＯ／ＩＥＣ  ２３００８−２において規定されるように設定されるべきである。
【０２４８】
他のフィールド（ｎｕｈ＿ｌａｙｅｒ＿ｉｄおよびｎｕｈ＿ｔｅｍｐｏｒａｌ＿ｉｄ＿ｐｌｕｓ１）は、Ａ．６において規定されるように設定されるべきである。
【０２４９】
ａｄｄｉｔｉｏｎａｌ＿ｂｙｔｅｓ：このアグリゲータが０に等しいｄａｔａ＿ｌｅｎｇｔｈを有するエクストラクタまたはＭａｐサンプルグループによって参照されるときに集約されるものとして見なされるべき、このアグリゲータＮＡＬユニットの後に続くバイトの数。
【０２５０】
ＮＡＬＵｎｉｔＬｅｎｇｔｈ：後続のＮＡＬユニットのサイズをバイト単位で指定する。このフィールドのサイズは、ｌｅｎｇｔｈＳｉｚｅＭｉｎｕｓＯｎｅフィールドによって指定される。
【０２５１】
ＮＡＬＵｎｉｔ：ＮＡＬユニットヘッダを含む、ＩＳＯ／ＩＥＣ  １４４９６−１０またはＩＳＯ／ＩＥＣ  ２３００８−２において指定されるようなＮＡＬユニット。ＮＡＬユニットのサイズは、ＮＡＬＵｎｉｔＬｅｎｇｔｈによって指定される。
Ａ．３  エクストラクタ
Ａ．３．１  定義
この項は、他のトラックからのＮＡＬユニットを参照によって抽出するトラックの小型の形成を可能にする、エクストラクタについて説明する。
【０２５２】
アグリゲータは、エクストラクタを含んでよく、または参照してよい。エクストラクタは、アグリゲータを参照することができる。エクストラクタが、エクストラクタを要求するファイルリーダーによって処理されるとき、エクストラクタは、エクストラクタが参照するバイトによって論理的に置換される。それらのバイトは、エクストラクタを含んではならない。エクストラクタは、別のエクストラクタを直接または間接的に参照してはならない。
【０２５３】
注意  エクストラクタによって参照されるデータがエクストラクタを含んではならないとしても、参照されるトラックはエクストラクタをみ得る。
【０２５４】
エクストラクタは、エクストラクタが存在するトラックにリンクされる別のトラックから、タイプ「ｓｃａｌ」のトラック参照によってデータを抽出するための命令を含む。
コピーされるバイトは、以下のうちの１つであるものとする。
ａ）  １つの全体のＮＡＬユニット；アグリゲータが参照されるとき、含まれるバイトと参照されるバイトの両方がコピーされることに留意されたい
ｂ）  ２つ以上の全体のＮＡＬユニット
両方の場合において、抽出されるバイトは、有効長フィールドおよびＮＡＬユニットヘッダで開始する。
【０２５５】
バイトは、示される「ｓｃａｌ」トラック参照を通じて参照されるトラック中の単一の特定されるサンプルだけからコピーされる。この整列は、復号の時点に行われ、すなわち時間対サンプルのテーブルのみを使用して行われ、サンプル番号のカウントされたオフセットが後に続く。エクストラクタは、メディアレベルの概念であるので、編集リストが考慮される前に宛先トラックに適用される。（しかしながら、２つのトラック中の編集リストは同一であることが通常は予想される）。
Ａ．３．２  シンタックス
【０２５６】
【数７】
0006434008.tif 000012
【０２５７】
Ａ．３．３  セマンティクス
ＮＡＬＵｎｉｔＨｅａｄｅｒ（）：ＳＶＣおよびＭＶＣ  ＶＣＬ  ＮＡＬユニットの最初４バイト、またはＩＳＯ／ＩＥＣ  ２３００８−２  ＮＡＬユニットの最初の２バイト
ｎａｌ＿ｕｎｉｔ＿ｔｙｐｅは、エクストラクタＮＡＬユニットタイプ（ＩＳＯ／ＩＥＣ  １４４９６−１０ビデオに対してはタイプ３１およびＩＳＯ／ＩＥＣ  ２３００８−２ビデオに対してはタイプ４９）に設定されるべきである。
【０２５８】
ＳＶＣ  ＮＡＬユニットを参照するエクストラクタでは、次のことが当てはまるものとする。
【０２５９】
ｆｏｒｂｉｄｄｅｎ＿ｚｅｒｏ＿ｂｉｔおよびｒｅｓｅｒｖｅｄ＿ｔｈｒｅｅ＿２ｂｉｔｓは、ＩＳＯ／ＩＥＣ  １４４９６−１０において規定されるように設定されるべきである。
【０２６０】
他のフィールド（ｎａｌ＿ｒｅｆ＿ｉｄｃ、ｉｄｒ＿ｆｌａｇ、ｐｒｉｏｒｉｔｙ＿ｉｄ、ｎｏ＿ｉｎｔｅｒ＿ｌａｙｅｒ＿ｐｒｅｄ＿ｆｌａｇ、ｄｅｐｅｎｄｅｎｃｙ＿ｉｄ、ｑｕａｌｉｔｙ＿ｉｄ、ｔｅｍｐｏｒａｌ＿ｉｄ、ｕｓｅ＿ｒｅｆ＿ｂａｓｅ＿ｐｉｃ＿ｆｌａｇ、ｄｉｓｃａｒｄａｂｌｅ＿ｆｌａｇ、およびｏｕｔｐｕｔ＿ｆｌａｇ）は、Ａ．４において規定されるように設定されるべきである。
【０２６１】
ＭＶＣ  ＮＡＬユニットを参照するエクストラクタでは、次のことが当てはまるものとする。
【０２６２】
ｆｏｒｂｉｄｄｅｎ＿ｚｅｒｏ＿ｂｉｔおよびｒｅｓｅｒｖｅｄ＿ｏｎｅ＿ｂｉｔは、ＩＳＯ／ＩＥＣ  １４４９６−１０において規定されるように設定されるべきである。
【０２６３】
他のフィールド（ｎａｌ＿ｒｅｆ＿ｉｄｃ、ｎｏｎ＿ｉｄｒ＿ｆｌａｇ、ｐｒｉｏｒｉｔｙ＿ｉｄ、ｖｉｅｗ＿ｉｄ、ｔｅｍｐｏｒａｌ＿ｉｄ、ａｎｃｈｏｒ＿ｐｉｃ＿ｆｌａｇ、およびｉｎｔｅｒ＿ｖｉｅｗ＿ｆｌａｇ）は、Ａ．５において規定されるように設定されるべきである。
【０２６４】
ＩＳＯ／ＩＥＣ  ２３００８−２  ＮＡＬユニットを参照するエクストラクタでは、次のことが当てはまるものとする。
【０２６５】
ｆｏｒｂｉｄｄｅｎ＿ｚｅｒｏ＿ｂｉｔは、ＩＳＯ／ＩＥＣ  ２３００８−２において規定されるように設定されるべきである。
【０２６６】
他のフィールド（ｎｕｈ＿ｌａｙｅｒ＿ｉｄおよびｎｕｈ＿ｔｅｍｐｏｒａｌ＿ｉｄ＿ｐｌｕｓ１）は、Ａ．６において規定されるように設定されるべきである。
【０２６７】
ｔｒａｃｋ＿ｒｅｆ＿ｉｎｄｅｘは、データの抽出元のトラックを見つけるために使用すべき、タイプ「ｓｃａｌ」のトラック参照のインデックスを指定する。データの抽出元のそのトラックの中のサンプルは、メディア復号の流れにおいて、すなわち時間対サンプルのテーブルのみを使用して、時間的に揃えられ、または最も接近して先行し、エクストラクタを含むサンプルに対して、ｓａｍｐｌｅ＿ｏｆｆｓｅｔによって指定されるオフセットによって調整される。第１のトラック参照は、インデックス値１を有し、値０は予備である。
【０２６８】
ｓａｍｐｌｅ＿ｏｆｆｓｅｔは、情報のソースとして使用されるべきリンクされたトラック中のサンプルの相対的なインデックスを与える。サンプル０は、エクストラクタを含むサンプルの復号時間と比較して、同一の、または最も近い先行する復号時間を有するサンプルであり、サンプル１はその次のサンプルであり、サンプル−１はその前のサンプルであり、以下同様である。
【０２６９】
ｄａｔａ＿ｏｆｆｓｅｔ：コピーすべき参照サンプル内の最初のバイトのオフセット。抽出がそのサンプル中のデータの最初のバイトで開始する場合、オフセットは値０をとる。このオフセットは、ＮＡＬユニット長フィールドの始まりを参照すべきである。
【０２７０】
ｄａｔａ＿ｌｅｎｇｔｈ：コピーすべきバイトの数。このフィールドが値０をとる場合、全体の単一の参照されるＮＡＬユニットがコピーされる（すなわち、コピーすべき長さは、データオフセットにより参照される長さフィールドから得られ、アグリゲータの場合はａｄｄｉｔｉｏｎａｌ＿ｂｙｔｅｓフィールドによって補足される）。
注意  ２つのトラックが異なるｌｅｎｇｔｈＳｉｚｅＭｉｎｕｓＯｎｅ値を使用する場合、抽出されるデータは、宛先トラックの長さフィールドのサイズに適合するための再フォーマットを必要とする。
Ａ．４  ＳＶＣのためのＮＡＬユニットヘッダの値
エクストラクタとアグリゲータの両方が、ＮＡＬユニットヘッダＳＶＣ拡張を使用する。エクストラクタによって抽出された、またはアグリゲータによって集約されたＮＡＬユニットは、アグリゲータＮＡＬユニットまたはエクストラクタＮＡＬユニットの内容を反復的に調査することによって参照されまたは含められる、すべてのＮＡＬユニットである。
【０２７１】
フィールドｎａｌ＿ｒｅｆ＿ｉｄｃ、ｉｄｒ＿ｆｌａｇ、ｐｒｉｏｒｉｔｙ＿ｉｄ、ｔｅｍｐｏｒａｌ＿ｉｄ、ｄｅｐｅｎｄｅｎｃｙ＿ｉｄ、ｑｕａｌｉｔｙ＿ｉｄ、ｄｉｓｃａｒｄａｂｌｅ＿ｆｌａｇ、ｏｕｔｐｕｔ＿ｆｌａｇ、ｕｓｅ＿ｒｅｆ＿ｂａｓｅ＿ｐｉｃ＿ｆｌａｇ、およびｎｏ＿ｉｎｔｅｒ＿ｌａｙｅｒ＿ｐｒｅｄ＿ｆｌａｇは、次の値をとるべきである。
【０２７２】
ｎａｌ＿ｒｅｆ＿ｉｄｃは、すべての抽出されたＮＡＬユニットまたは集約されたＮＡＬユニット中のフィールドの最高値に設定されるべきである。
【０２７３】
ｉｄｒ＿ｆｌａｇは、すべての抽出されたＮＡＬユニットまたは集約されたＮＡＬユニット中のフィールドの最高値に設定されるべきである。
【０２７４】
ｐｒｉｏｒｉｔｙ＿ｉｄ、ｔｅｍｐｏｒａｌ＿ｉｄ、ｄｅｐｅｎｄｅｎｃｙ＿ｉｄ、およびｑｕａｌｉｔｙ＿ｉｄはそれぞれ、すべての抽出されたＮＡＬユニットまたは集約されたＮＡＬユニット中のフィールドの最低値に設定されるべきである。
【０２７５】
ｄｉｓｃａｒｄａｂｌｅ＿ｆｌａｇは、すべての抽出されたＮＡＬユニットまたは集約されたＮＡＬユニットが１に設定されたｄｉｓｃａｒｄａｂｌｅ＿ｆｌａｇを有する場合にだけ１に設定されるべきであり、それ以外の場合は０に設定されるべきである。
【０２７６】
ｏｕｔｐｕｔ＿ｆｌａｇは、集約されたＮＡＬユニットまたは抽出されたＮＡＬユニットの少なくとも１つが１に設定されたこのフラグを有する場合に１に設定されるべきであり、それ以外の場合は０に設定されるべきである。
【０２７７】
ｕｓｅ＿ｒｅｆ＿ｂａｓｅ＿ｐｉｃ＿ｆｌａｇは、抽出されたＶＣＬ  ＮＡＬユニットまたは集約されたＶＣＬ  ＮＡＬユニットの少なくとも１つが１に設定されたｕｓｅ＿ｒｅｆ＿ｂａｓｅ＿ｐｉｃ＿ｆｌａｇを有する場合にだけ１に設定されるべきであり、それ以外の場合は０に設定されるべきである。
【０２７８】
ｎｏ＿ｉｎｔｅｒ＿ｌａｙｅｒ＿ｐｒｅｄ＿ｆｌａｇは、すべての抽出されたＶＣＬ  ＮＡＬユニットまたは集約されたＶＣＬ  ＮＡＬユニットが１に設定されたｎｏ＿ｉｎｔｅｒ＿ｌａｙｅｒ＿ｐｒｅｄ＿ｆｌａｇを有する場合にだけ１に設定されるべきであり、それ以外の場合は０に設定されるべきである。
抽出されたＮＡＬユニットまたは集約されたＮＡＬユニットのセットが空である場合、これらのフィールドの各々は、マッピングされた階層の記述と適合する値をとる。
【０２７９】
注意  アグリゲータは、異なるスケーラビリティ情報を有するＮＡＬユニットをグループ化し得る。
【０２８０】
注意  アグリゲータは、ＮＡＬユニットヘッダによってシグナリングされ得ないスケーラビリティのレベルに属するＮＡＬユニット（たとえば、関心のある領域に属するＮＡＬユニット）をグループ化するために使用され得る。そのようなアグリゲータの記述は、階層の記述およびＮＡＬユニットマップグループによって行われ得る。この場合、同じスケーラビリティ情報を有する２つ以上のアグリゲータが１つのサンプルにおいて発生し得る。
【０２８１】
注意  複数のスケーラブルトラックが同じメディアデータを参照する場合、アグリゲータは、同一のスケーラビリティ情報を有するＮＡＬユニットのみをグループ化すべきである。これにより、得られるパターンがトラックの各々によってアクセスされ得ることが確実になる。
【０２８２】
注意  特定のレイヤのＮＡＬユニットがアクセスユニット中に存在しない場合、空のアグリゲータ（アグリゲータの長さがヘッダだけを含み、ａｄｄｉｔｉｏｎａｌ＿ｂｙｔｅｓが０である）が存在し得る。
Ａ．５  ＭＶＣのためのＮＡＬユニットヘッダの値
アグリゲータとエクストラクタの両方が、ＮＡＬユニットヘッダＭＶＣ拡張を使用する。エクストラクタによって抽出された、またはアグリゲータによって集約されたＮＡＬユニットは、アグリゲータＮＡＬユニットまたはエクストラクタＮＡＬユニットの内容を反復的に調査することによって参照されまたは含められる、すべてのＮＡＬユニットである。
【０２８３】
フィールドｎａｌ＿ｒｅｆ＿ｉｄｃ、ｎｏｎ＿ｉｄｒ＿ｆｌａｇ、ｐｒｉｏｒｉｔｙ＿ｉｄ、ｖｉｅｗ＿ｉｄ、ｔｅｍｐｏｒａｌ＿ｉｄ、ａｎｃｈｏｒ＿ｐｉｃ＿ｆｌａｇ、およびｉｎｔｅｒ＿ｖｉｅｗ＿ｆｌａｇは、次の値をとるべきである。
【０２８４】
ｎａｌ＿ｒｅｆ＿ｉｄｃは、すべての集約されたＮＡＬユニットまたは抽出されたＮＡＬユニット中のフィールドの最高値に設定されるべきである。
【０２８５】
ｎｏｎ＿ｉｄｒ＿ｆｌａｇは、すべての集約されたＮＡＬユニットまたは抽出されたＮＡＬユニット中のフィールドの最低値に設定されるべきである。
【０２８６】
ｐｒｉｏｒｉｔｙ＿ｉｄおよびｔｅｍｐｏｒａｌ＿ｉｄはそれぞれ、すべての集約されたＮＡＬユニットまたは抽出されたＮＡＬユニット中のフィールドの最低値に設定されるべきである。
【０２８７】
ｖｉｅｗ＿ｉｄは、すべての集約されたＶＣＬ  ＮＡＬユニットまたは抽出されたＶＣＬ  ＮＡＬユニットの中で最低のビュー順序インデックスを有する、ＶＣＬ  ＮＡＬユニットのｖｉｅｗ＿ｉｄ値に設定されるべきである。
【０２８８】
ａｎｃｈｏｒ＿ｐｉｃ＿ｆｌａｇおよびｉｎｔｅｒ＿ｖｉｅｗ＿ｆｌａｇはそれぞれ、すべての集約されたＶＣＬ  ＮＡＬユニットまたは抽出されたＶＣＬ  ＮＡＬユニット中のフィールドの最高値に設定されるべきである。
【０２８９】
抽出されたＮＡＬユニットまたは集約されたＮＡＬユニットのセットが空である場合、これらのフィールドの各々は、マッピングされた階層の記述と適合する値をとる。
Ａ．６  ＩＳＯ／ＩＥＣ  ２３００８−２のためのＮＡＬユニットヘッダの値
アグリゲータとエクストラクタの両方が、ＩＳＯ／ＩＥＣ  ２３００８−２において規定されるようにＮＡＬユニットヘッダを使用する。エクストラクタによって抽出された、またはアグリゲータによって集約されたＮＡＬユニットは、アグリゲータＮＡＬユニットまたはエクストラクタＮＡＬユニットの内容を反復的に調査することによって参照されまたは含められる、すべてのＮＡＬユニットである。
【０２９０】
フィールドｎｕｈ＿ｌａｙｅｒ＿ｉｄおよびｎｕｈ＿ｔｅｍｐｏｒａｌ＿ｉｄ＿ｐｌｕｓ１は、次のように設定されるべきである。
【０２９１】
ｎｕｈ＿ｌａｙｅｒ＿ｉｄは、すべての集約されたＮＡＬユニットまたは抽出されたＮＡＬユニット中のフィールドの最低値に設定されるべきである。
【０２９２】
ｎｕｈ＿ｔｅｍｐｏｒａｌ＿ｉｄ＿ｐｌｕｓ１は、すべての集約されたＮＡＬユニットまたは抽出されたＮＡＬユニット中のフィールドの最低値に設定されるべきである。
[0125]１つの代替的な例では、ＭＶ−ＨＥＶＣ  ＷＤ５またはＳＨＶＣ  ＷＤ３のＡｎｎｅｘ  Ｆにおいて定義されるようなすべてのＩＲＡＰアクセスユニットを記録するために、新たな構造、テーブル、またはサンプルグループが定義される。代替的に、ＭＶ−ＨＥＶＣ  ＷＤ５またはＳＨＶＣ  ＷＤ３のＡｎｎｅｘ  Ｆにおいて定義されるような、しかしすべてのコーディングされたピクチャがＩＲＡＰピクチャであるアクセスユニットを除く、すべてのＩＲＡＰアクセスユニットを記録するために、新たな構造、テーブル、またはサンプルグループが定義される。別の代替的な例では、シンクサンプルのサンプルグループのエントリーＳｙｎｃＳａｍｐｌｅＥｎｔｒｙが、このグループに属するサンプル中のすべてのピクチャがＩＤＲピクチャ、ＣＲＡピクチャ、またはＢＬＡピクチャであることを指定するａｌｉｇｎｅｄ＿ｓｙｎｃ＿ｆｌａｇを予備ビットの１つに含めるために再定義される。別の代替的な例では、ＳＨＶＣおよびＭＶ−ＨＥＶＣファイルフォーマットからのすべての共通の態様を含む、ＳＨＶＣまたはＭＶ−ＨＥＶＣのための共通のファイルフォーマットが定義され、その拡張に関する態様だけを含むように、ＳＨＶＣおよびＭＶ−ＨＥＶＣファイルフォーマットだけが再定義される。別の代替的な例では、ＳＨＶＣメタデータサンプルのエントリーＳＨＶＣＭｅｔａｄａｔａＳａｍｐｌｅＥｎｔｒｙおよびＳＨＶＣＭｅｔａｄａｔａＳａｍｐｌｅＣｏｎｆｉｇＢｏｘが定義され、メタデータサンプルのステートメントタイプｓｃａｌａｂｉｌｉｔｙＩｎｆｏＳＨＶＣＳｔａｔｅｍｅｎｔも定義される。
【０２９３】
[0126]図２は、本開示で説明される技法を実施し得る例示的なビデオエンコーダ２０を示すブロック図である。ビデオエンコーダ２０は、シングルビュー、マルチビュー、スケーラブル、３Ｄ、および他のタイプのビデオデータを出力するように構成され得る。ビデオエンコーダ２０は、ビデオを後処理処理エンティティ２７に出力するように構成され得る。後処理処理エンティティ２７は、ＭＡＮＥまたはスプライシング／編集デバイスなどの、ビデオエンコーダ２０からの符号化されたビデオデータを処理し得るビデオエンティティの例を表すことが意図されている。場合によっては、後処理処理エンティティはネットワークエンティティの例であり得る。いくつかのビデオ符号化システムでは、後処理エンティティ２７およびビデオエンコーダ２０は別個のデバイスの部分であってもよく、他の事例では、後処理エンティティ２７に関して説明される機能は、ビデオエンコーダ２０を備える同じデバイスによって実行されてもよい。後処理エンティティ２７はビデオデバイスであり得る。いくつかの例では、後処理エンティティ２７は図１のファイル生成デバイス３４と同じであり得る。
【０２９４】
[0127]ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行することができる。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測（Ｐモード）または双予測（Ｂモード）のようなインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
【０２９５】
[0128]図２の例では、ビデオエンコーダ２０は、区分ユニット３５と、予測処理ユニット４１と、フィルタユニット６３と、参照クチャメモリ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。予測処理ユニット４１は、動き推定ユニット４２と、動き補償ユニット４４と、イントラ予測処理ユニット４６とを含む。ビデオブロックの再構築のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換処理ユニット６０と、加算器６２とを含む。フィルタユニット６３は、デブロッキングフィルタ、適応ループフィルタ（ＡＬＦ）、およびサンプル適応オフセット（ＳＡＯ）フィルタのような、１つまたは複数のループフィルタを表すことが意図されている。図２では、フィルタユニット６３はループ内フィルタであるものとして示されているが、他の構成では、フィルタユニット６３はループ後フィルタとして実装され得る。
【０２９６】
[0129]ビデオエンコーダ２０のビデオデータメモリは、ビデオエンコーダ２０のコンポーネントによって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリに記憶されるビデオデータは、たとえば、ビデオソース１８から取得され得る。参照ピクチャメモリ６４は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ２０によってビデオデータを符号化する際に使用するための、参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリおよび参照ピクチャメモリ６４は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）のような、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリおよび参照ピクチャメモリ６４は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリは、ビデオエンコーダ２０の他のコンポーネントとともにオンチップであるか、またはそれらのコンポーネントに対してオフチップであり得る。
【０２９７】
[0130]図２に示されているように、ビデオエンコーダ２０はビデオデータを受信し、区分ユニット３５はデータをビデオブロックに区分する。この区分はまた、たとえば、ＬＣＵおよびＣＵの４分木構造に従って、スライス、タイル、または他のより大きいユニットへの区分、アズウェルズアズビデオブロック区分も含み得る。ビデオエンコーダ２０は一般に、符号化されるべきビデオスライス内のビデオブロックを符号化するコンポーネントを示す。スライスは、複数のビデオブロック（場合によってはタイルと呼ばれるビデオブロックのセット）に分割され得る。予測処理ユニット４１は、現在のビデオブロックに関して、誤差結果（たとえば、コーディングレートおよびひずみレベル）に基づいて、複数のイントラコーディングモードの１つまたは複数のインターコーディングモードの１つのような、複数の可能なコーディングモードの１つを選択することができる。予測処理ユニット４１は、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを、残差ブロックデータを生成するために加算器５０に与え、参照ピクチャとして使用するための符号化されたブロックを再構築するために加算器６２に与え得る。
【０２９８】
[0131]予測処理ユニット４１内のイントラ予測処理ユニット４６は、空間的圧縮を行うために、コーディングされるべき現在のブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する現在のビデオブロックのイントラ予測コーディングを実行することができる。予測処理ユニット４１内の動き推定ユニット４２および動き補償ユニット４４は、時間的圧縮を行うために、１つまたは複数の参照ピクチャ中の１つまたは複数の予測ブロックに対して現在のビデオブロックのインター予測コーディングを実行する。
【０２９９】
[0132]動き推定ユニット４２は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスを、Ｐスライス、Ｂスライス、またはＧＰＢスライスとして指定し得る。動き推定ユニット４２および動き補償ユニット４４は、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたは現在のピクチャ内のビデオブロックのＰＵの変位を示し得る。
【０３００】
[0133]予測ブロックは、絶対差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、または他の差分の尺度によって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのＰＵと厳密に一致することが判明しているブロックである。いくつかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算することができる。たとえば、ビデオエンコーダ２０は、参照ピクチャの４分の１ピクセル位置、８分の１ピクセル位置、または他の分数のピクセル位置の値を補間することができる。したがって、動き推定ユニット４２は、フルピクセル位置および分数ピクセル位置に対して動き探索を実行し、動きベクトルを分数ピクセル精度で出力することができる。
【０３０１】
[0134]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス中のビデオブロックのＰＵの動きベクトルを計算する。参照ピクチャは、その各々が、参照ピクチャメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得る。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【０３０２】
[0135]動き補償ユニット４４によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実行することを伴い得る。現在のビデオブロックのＰＵの動きベクトルを受信すると、動き補償ユニット４４は、動きベクトルが参照ピクチャリストの１つにおいて指す予測ブロックの位置を特定することができる。ビデオエンコーダ２０は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成することができる。ピクセル差分値は、ブロックのための残差データを形成し、ルーマとクロマの両方の差分成分を含み得る。加算器５０は、この減算演算を実行する１つまたは複数のコンポーネントを表す。動き補償ユニット４４はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０によって使用するための、ビデオブロックとビデオスライスとに関連付けられたシンタックス要素を生成することができる。
【０３０３】
[0136]イントラ予測処理ユニット４６は、上で説明されたように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在のブロックをイントラ予測することができる。特に、イントラ予測処理ユニット４６は、現在のブロックを符号化するために使用するイントラ予測モードを決定することができる。いくつかの例では、イントラ予測処理ユニット４６は、たとえば、別個の符号化パスの間に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測処理ユニット４６（または、いくつかの例では、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。たとえば、イントラ予測処理ユニット４６は、様々なテストされたイントラ予測モードにレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または、誤差）の量、ならびに符号化されたブロックを作成するのに使用されたビットレート（すなわち、ビットの数）を決定する。イントラ予測処理ユニット４６は、どのイントラ予測モードがブロックに関する最良のレートひずみ値を示すのかを決定するために、様々な符号化されたブロックのひずみおよびレートから比を算出することができる。
【０３０４】
[0137]いずれの場合も、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット４６は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット５６に与えることができる。エントロピー符号化ユニット５６は、本開示の技法に従って、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ２０は、複数のイントラ予測モードインデックステーブルおよび（コードワードマッピングテーブルとも呼ばれる）複数の修正されたイントラ予測モードインデックステーブルと、様々なブロックに対する符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確（most probable）イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを、送信されるビットストリーム中に含めることができる。
【０３０５】
[0138]予測処理ユニット４１が、インター予測またはイントラ予測のいずれかを介して、現在のビデオブロックの予測ブロックを生成した後に、ビデオエンコーダ２０は、現在のビデオブロックから予測ブロックを減算することによって、残差ビデオブロックを形成することができる。残差ブロック中の残差ビデオデータは、１つまたは複数のＴＵ中に含まれ、変換処理ユニット５２に適用され得る。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット５２は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換することができる。
【０３０６】
[0139]変換処理ユニット５２は、結果として得られる変換係数を量子化ユニット５４に送ることができる。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部またはすべてと関連付けられるビット深度を減らすことができる。量子化の程度は、量子化パラメータを調整することによって、修正され得る。いくつかの例では、量子化ユニット５４は次いで、量子化された変換係数を含む行列の走査を実行することができる。代替的に、エントロピー符号化ユニット５６が走査を実行することができる。
【０３０７】
[0140]量子化に続いて、エントロピー符号化ユニット５６は、量子化された変換係数を表すシンタックス要素をエントロピー符号化することができる。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ：probability interval partitioning entropy）コーディング、または別のエントロピー符号化の方法もしくは技法を実行し得る。エントロピー符号化ユニット５６によるエントロピー符号化の後に、符号化されたビットストリームはビデオデコーダ３０に送信され、または、ビデオデコーダ３０による後の送信または取り出しのためにアーカイブされ得る。エントロピー符号化ユニット５６はまた、コーディングされている現在のビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化することができる。
【０３０８】
[0141]逆量子化ユニット５８および逆変換処理ユニット６０は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構築する。動き補償ユニット４４は、残差ブロックを参照ピクチャリストのうちの１つの中の参照ピクチャの１つの予測ブロックに加算することによって参照ブロックを計算することができる。動き補償ユニット４４はまた、再構築された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算し得る。加算器６２は、再構築された残差ブロックを動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ６４に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【０３０９】
[0142]ビデオエンコーダ２０は、本開示で説明されるファイルフォーマット技法を使用して記憶され得る、ビデオコーダコンフィギャードジェネレートビデオデータの例を表す。
【０３１０】
[0143]図３は、本開示で説明される技法を実施し得る例示的なビデオデコーダ３０を示すブロック図である。ビデオデコーダ３０は、シングルビュー、マルチビュー、スケーラブル、３Ｄ、および他のタイプのビデオデータを復号するように構成され得る。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット８０と、予測処理ユニット８１と、逆量子化ユニット８６と、逆変換処理ユニット８８と、加算器９０と、フィルタユニット９１と、参照ピクチャメモリ９２とを含む。予測処理ユニット８１は、動き補償ユニット８２とイントラ予測処理ユニット８４とを含む。ビデオデコーダ３０は、いくつかの例では、図２においてビデオエンコーダ２０に関して説明された符号化パスとは概ね逆の復号パスを実行することができる。
【０３１１】
[0144]コーディングされたピクチャバッファ（ＣＰＢ）７９は、ビットストリームの符号化されたビデオデータ（たとえば、ＮＡＬユニット）を受信し、記憶することができる。ＣＰＢ７９に記憶されるビデオデータは、たとえば、リンク１６から、たとえば、カメラなどのローカルビデオソースから、ビデオデータの有線もしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって、取得され得る。ＣＰＢ７９は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するビデオデータメモリを形成し得る。ＣＰＢ７９は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ３０によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ＣＰＢ７９および参照ピクチャメモリ９２は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）などの様々なメモリデバイスのいずれかによって形成され得る。ＣＰＢ７９および参照ピクチャメモリ９２は、同じメモリデバイスまたは別々のメモリデバイスによって提供され得る。様々な例では、ＣＰＢ７９は、ビデオデコーダ３０の他のコンポーネントとともにオンチップであってよく、またはそれらのコンポーネントに対してオフチップであってもよい。
【０３１２】
[0145]復号プロセスの間、ビデオデコーダ３０は、符号化されたビデオスライスのビデオブロックと、関連付けられたシンタックス要素とを表す、符号化されたビットストリームをビデオエンコーダ２０から受信する。ビデオデコーダ３０は、ネットワークエンティティ２９から符号化されたビデオビットストリームを受信することができる。ネットワークエンティティ２９は、たとえば、上で説明された技法の１つまたは複数を実装するように構成されたサーバ、ＭＡＮＥ、ビデオエディタ／スプライサ、または他のそのようなデバイスであり得る。ネットワークエンティティ２９は、ビデオエンコーダ２０のようなビデオエンコーダを含んでもよく、または含まなくてもよい。本開示で説明される技法のいくつかは、ネットワークエンティティ２９が符号化されたビデオビットストリームをビデオデコーダ３０に送信するのに先立って、ネットワークエンティティ２９によって実施され得る。いくつかのビデオ復号システムでは、ネットワークエンティティ２９およびビデオデコーダ３０は別個のデバイスの一部であり得るが、他の事例では、ネットワークエンティティ２９に関して説明される機能は、ビデオデコーダ３０を備える同じデバイスによって実行され得る。ネットワークエンティティ２９は、ビデオデバイスと見なされ得る。さらに、いくつかの例では、ネットワークエンティティ２９は、図１のファイル生成デバイス３４である。
【０３１３】
[0146]ビデオデコーダ３０のエントロピー復号ユニット８０は、量子化された係数と、動きベクトルと、他のシンタックス要素とを生成するために、ビットストリームの特定のシンタックス要素をエントロピー復号する。エントロピー復号ユニット８０は、動きベクトルと他のシンタックス要素とを予測処理ユニット８１に転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【０３１４】
[0147]ビデオスライスがイントラコーディングされた（Ｉ）スライスとしてコーディングされるとき、予測処理ユニット８１のイントラ予測処理ユニット８４は、シグナリングされたイントラ予測モード、および現在のフレームまたはピクチャの前に復号されたブロックからのデータに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成することができる。ビデオフレームがインターコーディングされた（すなわち、Ｂ、ＰまたはＧＰＢ）スライスとしてコーディングされるとき、予測処理ユニット８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックの予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つの中の参照ピクチャの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ９２に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト０とリスト１とを構築することができる。
【０３１５】
[0148]動き補償ユニット８２は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックに対する予測情報を決定し、予測情報を使用して、復号されている現在のビデオブロックの予測ブロックを生成する。たとえば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラ予測またはインター予測）と、インター予測スライスタイプ（たとえば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）と、スライスの参照ピクチャリストの１つまたは複数のための構成情報と、スライスの各々のインター符号化されたビデオブロックのための動きベクトルと、スライスの各々のインターコーディングされたビデオブロックのためのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【０３１６】
[0149]動き補償ユニット８２はまた、補間フィルタに基づいて補間を実行することができる。動き補償ユニット８２は、参照ブロックのサブ整数ピクセルの補間された値を計算するために、ビデオブロックの符号化の間にビデオエンコーダ２０によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット８２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定することができ、その補間フィルタを使用して予測ブロックを生成することができる。
【０３１７】
[0150]逆量子化ユニット８６は、ビットストリーム中で与えられ、エントロピー復号ユニット８０によって復号された量子化された変換係数を逆量子化し（inverse quantize）、すなわち逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ２０によって計算される量子化パラメータの使用を含み得る。逆変換処理ユニット８８は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換処理を変換係数に適用する。
【０３１８】
[0151]動き補償ユニット８２が、動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックの予測ブロックを生成した後、ビデオデコーダ３０は、逆変換処理ユニット８８からの残差ブロックを動き補償ユニット８２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器９０は、この加算演算を実行する１つまたは複数のコンポーネントを表す。所望される場合、ループフィルタ（コーディングループの中またはコーディングループの後のいずれかの）も、ピクセル移行を平滑化し、または別様にビデオ品質を向上させるために使用され得る。フィルタユニット９１は、デブロッキングフィルタ、適応ループフィルタ（ＡＬＦ）、およびサンプル適応オフセット（ＳＡＯ）フィルタのような、１つまたは複数のループフィルタを表すことが意図されている。図３では、フィルタユニット９１はループ内フィルタであるものとして示されているが、他の構成では、フィルタユニット９１はループ後フィルタとして実装され得る。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、後続の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ９２に記憶される。参照ピクチャメモリ９２はまた、図１のディスプレイデバイス３２のようなディスプレイデバイス上での後の表示のために、復号されたビデオを記憶する。
【０３１９】
[0152]図３のビデオデコーダ３０は、本開示で説明されるファイルフォーマット技法を使用して記憶され得る、ビデオデータを復号するように構成されるビデオデコーダの例を表す。
【０３２０】
[0153]図４は、ネットワーク１００の一部を形成するデバイスの例示的なセットを示すブロック図である。この例では、ネットワーク１００は、ルーティングデバイス１０４Ａ、１０４Ｂ（ルーティングデバイス１０４）とトランスコーディングデバイス１０６とを含む。ルーティングデバイス１０４およびトランスコーディングデバイス１０６は、ネットワーク１００の一部を形成し得る少数のデバイスを表すことが意図されている。スイッチ、ハブ、ゲートウェイ、ファイアウォール、ブリッジ、および他のそのようなデバイスなどの他のネットワークデバイスも、ネットワーク１００内に含まれ得る。その上、サーバデバイス１０２とクライアントデバイス１０８との間のネットワーク経路に沿って、追加のネットワークデバイスが提供され得る。いくつかの例では、サーバデバイス１０２はソースデバイス１２（図１）に対応し得る一方、クライアントデバイス１０８は宛先デバイス１４（図１）に対応し得る。
【０３２１】
[0154]一般に、ルーティングデバイス１０４は、ネットワーク１００を通じてネットワークデータを交換するための１つまたは複数のルーティングプロトコルを実装する。いくつかの例では、ルーティングデバイス１０４は、プロキシまたはキャッシュ動作を実行するように構成され得る。したがって、いくつかの例では、ルーティングデバイス１０４はプロキシデバイスと呼ばれ得る。一般に、ルーティングデバイス１０４は、ネットワーク１００を通るルートを発見するためにルーティングプロトコルを実行する。そのようなルーティングプロトコルを実行することによって、ルーティングデバイス１０４Ｂは、それ自体からルーティングデバイス１０４Ａを介してサーバデバイス１０２へ至るネットワークルートを発見することができる。
【０３２２】
[0155]本開示の技法は、ルーティングデバイス１０４およびトランスコーディングデバイス１０６のようなネットワークデバイスによって実施され得るが、クライアントデバイス１０８によっても実施され得る。このように、ルーティングデバイス１０４、トランスコーディングデバイス１０６、およびクライアントデバイス１０８は、本開示の技法を実行するように構成されたデバイスの例を表す。その上、図１のデバイス、ならびに図２に示されるエンコーダ２０および図３に示されるデコーダ３０も、本開示の技法の１つまたは複数を実行するように構成され得るデバイスの例である。
【０３２３】
[0156]図５は、本開示の１つまたは複数の技法による、ファイル３００の例示的な構造を示す概念図である。図５の例では、ファイル３００は、ムービーボックス３０２と、複数のメディアデータボックス３０４とを含む。図５の例では同じファイルの中にあるものとして示されるが、他の例では、ムービーボックス３０２およびメディアデータボックス３０４は別のファイルの中にあり得る。上で示されたように、「ボックス」は、固有のタイプ識別子および長さによって定義されるオブジェクト指向の構築ブロックであり得る。たとえば、ボックスは、４文字のコーディングされたボックスタイプと、ボックスのバイトカウントと、ペイロードとを含む、ＩＳＯＢＭＦＦにおける基本的なシンタックス構造であり得る。
【０３２４】
[0157]ムービーボックス３０２は、ファイル３００のトラックのためのメタデータを含み得る。ファイル３００の各トラックは、メディアデータの連続的なストリームを備え得る。メディアデータボックス３０４の各々は、１つまたは複数のサンプル３０５を含み得る。サンプル３０５の各々は、オーディオまたはビデオアクセスユニットを備え得る。本開示の他の箇所で説明されるように、各アクセスユニットは、マルチビューコーディング（たとえば、ＭＶ−ＨＥＶＣおよび３Ｄ−ＨＥＶＣ）およびスケーラブルビデオコーディング（たとえば、ＳＨＶＣ）では複数のコーディングされたピクチャを備え得る。たとえば、アクセスユニットは、各レイヤのための１つまたは複数のコーディングされたピクチャを含み得る。
【０３２５】
[0158]さらに、図５の例では、ムービーボックス３０２はトラックボックス３０６を含む。トラックボックス３０６は、ファイル３００のトラックのためのメタデータを封入し得る。他の例では、ムービーボックス３０２は、ファイル３００の異なるトラックのために複数のトラックボックスを含み得る。トラックボックス３０６は、メディアボックス３０７を含む。メディアボックス３０７は、トラック内のメディアデータについての情報を宣言するすべてのオブジェクトを含み得る。メディアボックス３０７は、メディア情報ボックス３０８を含む。メディア情報ボックス３０８は、トラックのメディアの特性情報を宣言するすべてのオブジェクトを含み得る。メディア情報ボックス３０８は、サンプルテーブルボックス３０９を含む。サンプルテーブルボックス３０９は、サンプル固有のメタデータを指定することができる。
【０３２６】
[0159]図５の例では、サンプルテーブルボックス３０９は、ＳａｍｐｌｅＴｏＧｒｏｕｐボックス３１０とＳａｍｐｌｅＧｒｏｕｐＤｅｓｃｒｉｐｔｉｏｎボックス３１２とを含む。他の例では、サンプルテーブルボックス３０９は、ＳａｍｐｌｅＴｏＧｒｏｕｐボックス３１０およびＳａｍｐｌｅＧｒｏｕｐＤｅｓｃｒｉｐｔｉｏｎボックス３１２に加えて他のボックスを含んでよく、および／または複数のＳａｍｐｌｅＴｏＧｒｏｕｐボックスとＳａｍｐｌｅＧｒｏｕｐＤｅｓｃｒｉｐｔｉｏｎボックスとを含んでよい。ＳａｍｐｌｅＴｏＧｒｏｕｐボックス３１０は、サンプル（たとえば、サンプル３０５の特定の１つ）をサンプルのグループにマッピングすることができる。ＳａｍｐｌｅＧｒｏｕｐＤｅｓｃｒｉｐｔｉｏｎボックス３１２は、サンプルのグループ（すなわち、サンプルグループ）の中のサンプルによって共有される性質を指定し得る。さらに、サンプルテーブルボックス３０９は、複数のサンプルエントリーボックス３１１を含み得る。サンプルエントリーボックス３１１の各々は、サンプルのグループ中のサンプルに対応し得る。いくつかの例では、サンプルエントリーボックス３１１は、上のセクション９．５．５．１．２において定義されたようなベースサンプルグループ記述クラスを拡張する、Ｒａｎｄｏｍ  Ａｃｃｅｓｓｉｂｌｅ  Ｓａｍｐｌｅ  Ｅｎｔｒｙクラスのインスタンスである。
【０３２７】
[0160]本開示の１つまたは複数の技法によれば、ＳａｍｐｌｅＧｒｏｕｐＤｅｓｃｒｉｐｔｉｏｎボックス３１２は、サンプルグループの各サンプルが少なくとも１つのＩＲＡＰピクチャを含むことを指定し得る。このようにして、ファイル生成デバイス３４は、ファイル３００中のトラックのためのメタデータを含むトラックボックス３０６を備えるファイルを生成することができる。トラックのためのメディアデータは、サンプル３０５のシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータ（たとえば、ＳＨＶＣ、ＭＶ−ＨＥＶＣ、または３Ｄ−ＨＥＶＣビデオデータ）のビデオアクセスユニットであり得る。さらに、ファイル３００を生成することの一部として、ファイル生成デバイス３４は、ファイル３００において、少なくとも１つのＩＲＡＰピクチャを含むサンプル３０５のすべてを記録する追加のボックス（すなわち、サンプルテーブルボックス３０９）を生成することができる。言い換えると、追加のボックスは、少なくとも１つのＩＲＡＰピクチャを含むサンプル３０５のすべてを特定する。図５の例では、追加のボックスは、少なくとも１つのＩＲＡＰピクチャを含むサンプル３０５の各々を記録する（たとえば、特定する）サンプルグループを定義する。言い換えると、追加のボックスは、少なくとも１つのＩＲＡＰピクチャを含むサンプル３０５がサンプルグループに属することを指定する。
【０３２８】
[0161]さらに、本開示の１つまたは複数の技法によれば、サンプルエントリーボックス３１１の各々は、対応するサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値（たとえば、ａｌｌ＿ｐｉｃｓ＿ａｒｅ＿ＩＲＡＰ）を含み得る。いくつかの例では、１に等しい値は、すべでのコーディングされたピクチャサンプルがＩＲＡＰピクチャであることはないことを指定する。０に等しい値は、サンプルグループの各サンプル中の各々のコーディングされたピクチャがＩＲＡＰピクチャであることが要求されないことを指定する。
【０３２９】
[0162]いくつかの例では、特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるということではないとき、ファイル生成デバイス３４は、特定のサンプル中のいくつかのＩＲＡＰピクチャを示す値（たとえば、ｎｕｍ＿ＩＲＡＰ＿ｐｉｃｓ）を、特定のサンプルのためのサンプルエントリーボックス３１１の１つに含め得る。加えて、ファイル生成デバイス３４は、特定のサンプル中のＩＲＡＰピクチャのレイヤ識別子を示す値を、特定のサンプルのためのサンプルエントリーに含め得る。ファイル生成デバイス３４はまた、特定のサンプル中のＩＲＡＰピクチャ中のＶＣＬ  ＮＡＬユニットのＮＡＬユニットタイプを示す値を、特定のサンプルのためのサンプルエントリーに含め得る。
【０３３０】
[0163]さらに、図５の例では、サンプルテーブルボックス３０９はサブサンプル情報ボックス３１４を含む。図５の例は１つのサブサンプル情報ボックスのみを示すが、サンプルテーブルボックス３０９は複数のサブサンプル情報ボックスを含み得る。一般に、サブサンプル情報ボックスは、サブサンプル情報を含むように設計される。サブサンプルは、サンプルのうちのある連続的な範囲のバイトである。ＩＳＯ／ＩＥＣ  １４４９６−１２は、Ｈ．２６４／ＡＶＣまたはＨＥＶＣのような、所与のコーディングシステムに対してサブサンプルの固有の定義が与えられるべきであることを示す。
【０３３１】
[0164]ＩＳＯ／ＩＥＣ  １４４９６−１５のセクション８．４．８は、ＨＥＶＣのためのサブサンプルの定義を規定する。具体的には、ＩＳＯ／ＩＥＣ  １４４９６−１５のセクション８．４．８は、ＨＥＶＣストリームにおけるサブサンプル情報ボックス（ＩＳＯ／ＩＥＣ  １４４９６−１２の８．７．７）の使用のために、サブサンプル情報ボックスのフラグフィールドの値に基づいてサブサンプルが定義されることを規定する。本開示の１つまたは複数の技法によれば、サブサンプル情報ボックス３１４の中のフラグフィールドが５に等しい場合、サブサンプル情報ボックス３１４に対応するサブサンプルは、１つのコーディングされたピクチャと、関連付けられる非ＶＣＬ  ＮＡＬユニットとを含む。関連付けられる非ＶＣＬ  ＮＡＬユニットは、コーディングされたピクチャに適用可能なＳＥＩメッセージを含むＮＡＬユニットと、コーディングされたピクチャに適用可能なパラメータセット（たとえば、ＶＰＳ、ＳＰＳ、ＰＰＳなど）を含むＮＡＬユニットとを含み得る。
【０３３２】
[0165]したがって、一例では、ファイル生成デバイス３４は、ファイル中のトラックのためのメタデータを含むトラックボックス（たとえば、トラックボックス３０６）を備えるファイル（たとえば、ファイル３００）を生成することができる。この例では、トラックのためのメディアデータは、サンプルのシーケンスを備え、サンプルの各々は、マルチレイヤビデオデータ（たとえば、ＳＨＶＣ、ＭＶ−ＨＥＶＣ、または３Ｄ−ＨＥＶＣビデオデータ）のビデオアクセスユニットである。さらに、この例では、ファイル生成デバイス３４がファイルを生成することの一部として、ファイル生成デバイス３４は、ファイルにおいて、サブサンプル情報ボックス中で与えられるサブサンプル情報のタイプを指定するフラグを含むサブサンプル情報ボックス（たとえば、サブサンプル情報ボックス３１４）を生成することができる。そのフラグがある特定の値を有するとき、サブサンプル情報ボックスに対応するサブサンプルは、ちょうど１つのコーディングされたピクチャと、コーディングされたピクチャと関連付けられる０個以上の非ＶＣＬ  ＮＡＬユニットとを含む。
【０３３３】
[0166]さらに、本開示の１つまたは複数の技法によれば、サブサンプル情報ボックス３１４のフラグフィールドが０に等しい場合、サブサンプル情報ボックス３１４はさらに、ＤｉｓｃａｒｄａｂｌｅＦｌａｇ値と、ＮｏＩｎｔｅｒＬａｙｅｒＰｒｅｄＦｌａｇ値と、ＬａｙｅｒＩｄ値と、ＴｅｍｐＩｄ値とを含む。サブサンプル情報ボックス３１４のフラグフィールドが５に等しい場合、サブサンプル情報ボックス３１４は、ＤｉｓｃａｒｄａｂｌｅＦｌａｇ値と、ＶｃｌＮａｌＵｎｉｔＴｙｐｅ値と、ＬａｙｅｒＩｄ値と、ＴｅｍｐＩｄ値と、ＮｏＩｎｔｅｒＬａｙｅｒＰｒｅｄＦｌａｇ値と、ＳｕｂＬａｙｅｒＲｅｆＮａｌＵｎｉｔＦｌａｇ値と、予備の値とを含み得る。
【０３３４】
[0167]０に等しいＳｕｂＬａｙｅｒＲｅｆＮａｌＵｎｉｔＦｌａｇは、サブサンプル中のすべてのＮＡＬユニットが、ＩＳＯ／ＩＥＣ  ２３００８−２（すなわち、ＨＥＶＣ）において規定されるようなサブレイヤ非参照ピクチャのＶＣＬ  ＮＡＬユニットであることを示す。１に等しいＳｕｂＬａｙｅｒＲｅｆＮａｌＵｎｉｔＦｌａｇは、サブサンプル中のすべてのＮＡＬユニットが、ＩＳＯ／ＩＥＣ  ２３００８−２（すなわち、ＨＥＶＣ）において規定されるようなサブレイヤ参照ピクチャのＶＣＬ  ＮＡＬユニットであることを示す。したがって、ファイル生成デバイス３４がサブサンプル情報ボックス３１４を生成し、フラグが特定の値（たとえば、５）を有するとき、ファイル生成デバイス３４は、サブサンプル中のすべてのＮＡＬユニットがサブレイヤ非参照ピクチャのＶＣＬ  ＮＡＬユニットであるかどうかを示す追加のフラグを、サブサンプル情報ボックス３１４に含める。
【０３３５】
[0168]ＤｉｓｃａｒｄａｂｌｅＦｌａｇ値は、サブサンプル中のＶＣＬ  ＮＡＬユニットのｄｉｓｃａｒｄａｂｌｅ＿ｆｌａｇ値の値を示す。ＩＳＯ／ＩＥＣ  １４４９６−１５のセクションＡ．４において規定されるように、ｄｉｓｃａｒｄａｂｌｅ＿ｆｌａｇ値は、すべての抽出されたＮＡＬユニットまたは集約されたＮＡＬユニットが１に設定されたｄｉｓｃａｒｄａｂｌｅ＿ｆｌａｇを有する場合にだけ１に設定されるべきであり、それ以外の場合は０に設定されるべきである。ＮＡＬユニットは、該ＮＡＬユニットを含むビットストリームが該ＮＡＬユニットなしで正確に復号され得る場合、１に設定されたｄｉｓｃａｒｄａｂｌｅ＿ｆｌａｇを有し得る。したがって、ＮＡＬユニットは、該ＮＡＬユニットを含むビットストリームが該ＮＡＬユニットなしで正確に復号され得る場合、「廃棄可能」であり得る。サブサンプル中のすべてのＶＣＬ  ＮＡＬユニットは、同じｄｉｓｃａｒｄａｂｌｅ＿ｆｌａｇの値を有するべきである。したがって、ファイル生成デバイス３４がサブサンプル情報ボックス３１４を生成し、フラグが特定の値（たとえば、５）を有するとき、ファイル生成デバイス３４は、サブサンプルのＶＣＬ  ＮＡＬユニットのすべてが廃棄可能かどうかを示す追加のフラグ（たとえば、ｄｉｓｃａｒｄａｂｌｅ＿ｆｌａｇ）を、サブサンプル情報ボックス３１４に含める。
【０３３６】
[0169]ＮｏＩｎｔｅｒＬａｙｅｒＰｒｅｄＦｌａｇ値は、サブサンプル中のＶＣＬ  ＮＡＬユニットのｉｎｔｅｒ＿ｌａｙｅｒ＿ｐｒｅｄ＿ｅｎａｂｌｅｄ＿ｆｌａｇの値を示す。ｉｎｔｅｒ＿ｌａｙｅｒ＿ｐｒｅｄ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、すべての抽出されたＶＣＬ  ＮＡＬユニットまたは集約されたＶＣＬ  ＮＡＬユニットが１に設定されたｉｎｔｅｒ＿ｌａｙｅｒ＿ｐｒｅｄ＿ｅｎａｂｌｅｄ＿ｆｌａｇを有する場合にだけ１に設定されるべきであり、それ以外の場合は０に設定されるべきである。サブサンプル中のすべてのＶＣＬ  ＮＡＬユニットは、同じ値のｉｎｔｅｒ＿ｌａｙｅｒ＿ｐｒｅｄ＿ｅｎａｂｌｅｄ＿ｆｌａｇを有するべきである。したがって、ファイル生成デバイス３４がサブサンプル情報ボックス３１４を生成し、フラグが特定の値（たとえば、５）を有するとき、ファイル生成デバイス３４は、レイヤ間予測がサブサンプルのすべてのＶＣＬ  ＮＡＬユニットに対してイネーブルにされるかどうかを示す追加の値（たとえば、ｉｎｔｅｒ＿ｌａｙｅｒ＿ｐｒｅｄ＿ｅｎａｂｌｅｄ＿ｆｌａｇ）を、サブサンプル情報ボックス３１４に含める。
【０３３７】
[0170]ＬａｙｅｒＩｄは、サブサンプル中のＮＡＬユニットのｎｕｈ＿ｌａｙｅｒ＿ｉｄの値を示す。サブサンプル中のすべてのＮＡＬユニットは、同じｎｕｈ＿ｌａｙｅｒ＿ｉｄの値を有するべきである。したがって、ファイル生成デバイス３４がサブサンプル情報ボックス３１４を生成し、フラグが特定の値（たとえば、５）を有するとき、ファイル生成デバイス３４は、サブサンプルの各ＮＡＬユニットのレイヤ識別子を示す追加の値（たとえば、ＬａｙｅｒＩｄ）を、サブサンプル情報ボックス３１４に含める。
【０３３８】
[0171]ＴｅｍｐＩｄは、サブサンプル中のＮＡＬユニットのＴｅｍｐｏｒａｌＩｄの値を示す。サブサンプル中のすべてのＮＡＬユニットは、同じＴｅｍｐｏｒａｌＩｄの値を有するべきである。したがって、ファイル生成デバイス３４がサブサンプル情報ボックス３１４を生成し、フラグが特定の値（たとえば、５）を有するとき、ファイル生成デバイス３４は、サブサンプルの各ＮＡＬユニットの時間識別子を示す追加の値（たとえば、ＴｅｍｐＩｄ）を、サブサンプル情報ボックス３１４に含める。
【０３３９】
[0172]ＶｃｌＮａｌＵｎｉｔＴｙｐｅは、サブサンプル中のＶＣＬ  ＮＡＬユニットのｎａｌ＿ｕｎｉｔ＿ｔｙｐｅシンタックス要素を示す。ｎａｌ＿ｕｎｉｔ＿ｔｙｐｅシンタックス要素は、ＮＡＬユニットのＮＡＬユニットヘッダ中のシンタックス要素である。ｎａｌ＿ｕｎｉｔ＿ｔｙｐｅシンタックス要素は、ＮＡＬユニットに含まれるＲＢＳＰのタイプを指定する。サブサンプル中のすべてのｎａｌ＿ｕｎｉｔ＿ｔｙｐｅ  ＶＣＬ  ＮＡＬユニットは、同じｎａｌ＿ｕｎｉｔ＿ｔｙｐｅの値を有するべきである。したがって、ファイル生成デバイス３４がサブサンプル情報ボックス３１４を生成し、フラグが特定の値（たとえば、５）を有するとき、ファイル生成デバイス３４は、サブサンプルのＶＣＬ  ＮＡＬユニットのＮＡＬユニットタイプを示す追加の値（たとえば、ＶｃｌＮａｌＵｎｉｔＴｙｐｅ）を、サブサンプル情報ボックス３１４に含める。サブサンプルのすべてのＶＣＬ  ＮＡＬユニットが、同じＮＡＬユニットタイプを有する。
【０３４０】
[0173]図６は、本開示の１つまたは複数の技法による、ファイル３００の例示的な構造を示す概念図である。ＩＳＯ／ＩＥＣ  １４４９６−１５のセクション８．４．９において規定されるように、ＨＥＶＣは、参照のためだけに使用され出力のために使用されないファイルフォーマットサンプルを可能にする。たとえば、ＨＥＶＣは、ビデオ中の表示されない参照ピクチャを可能にする。
【０３４１】
[0174]さらに、ＩＳＯ／ＩＥＣ  １４４９６−１５のセクション８．４．９は、任意のそのような非出力サンプルがトラック中に存在するときに、ファイルが次のように制約されるべきであることを規定する。
１．非出力サンプルは、出力されるサンプルの時間の範囲外の合成時間を与えられるべきである。
２．編集リストは、非出力サンプルの合成時間を除外するために使用されるべきである。
３．トラックがＣｏｍｐｏｓｉｔｉｏｎＯｆｆｓｅｔＢｏｘ（「ｃｔｔｓ」）を含むとき、
ａ．  ＣｏｍｐｏｓｉｔｉｏｎＯｆｆｓｅｔＢｏｘのバージョン１が使用されるべきであり、
ｂ．  ｓａｍｐｌｅ＿ｏｆｆｓｅｔの値が非出力サンプルの各々に対して−２31に等しく設定されるべきであり、
ｃ．  ＣｏｍｐｏｓｉｔｉｏｎＴｏＤｅｃｏｄｅＢｏｘ（「ｃｓｌｇ」）がトラックのＳａｍｐｌｅＴａｂｌｅＢｏｘ（「ｓｔｂｌ」）に含まれるべきであり、
ｄ．  ＣｏｍｐｏｓｉｔｉｏｎＴｏＤｅｃｏｄｅＢｏｘがトラックに対して存在するとき、ボックス中のｌｅａｓｔＤｅｃｏｄｅＴｏＤｉｓｐｌａｙＤｅｌｔａフィールドの値が、非出力サンプルに対するｓａｍｐｌｅ＿ｏｆｆｓｅｔ値を除くＣｏｍｐｏｓｉｔｉｏｎＯｆｆｓｅｔＢｏｘ中の最小の合成オフセットに等しくなければならない。
注意：したがって、ｌｅａｓｔＤｅｃｏｄｅＴｏＤｉｓｐｌａｙＤｅｌｔａは、−２31よりも大きい。
【０３４２】
[0175]ＩＳＯ／ＩＥＣ  １４４９６−１２において規定されるように、ＣｏｍｐｏｓｉｔｉｏｎＯｆｆｓｅｔＢｏｘは、復号時間と合成時間との間のオフセットを与える。ＣｏｍｐｏｓｉｔｉｏｎＯｆｆｓｅｔＢｏｘは、ｓａｍｐｌｅ＿ｏｆｆｓｅｔ値のセットを含む。ｓａｍｐｌｅ＿ｏｆｆｓｅｔ値の各々は、合成時間と復号時間との間のオフセットを与える非負の整数である。合成時間は、サンプルが出力されるべき時間を指す。復号時間は、サンプルが復号されるべき時間を指す。
【０３４３】
[0176]上で示されたように、コーディングされたスライスＮＡＬユニットは、スライスセグメントヘッダを含み得る。スライスセグメントヘッダは、コーディングされたスライスセグメントの一部であってよく、スライスセグメント中の最初のまたはすべてのＣＴＵに関するデータ要素を含んでよい。ＨＥＶＣでは、スライスセグメントヘッダは、ｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇシンタックス要素を含む。一般に、ｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇシンタックス要素は、ピクチャのスライスの最初のスライスセグメントヘッダに含まれる。したがって、本開示は、ピクチャのスライスの最初のスライスセグメントヘッダのｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを、ピクチャのｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇと呼ぶことがある。
【０３４４】
[0177]ＨＥＶＣ  ＷＤのセクション７．４．７．１において規定されるように、ｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇシンタックス要素は、ＨＥＶＣ  ＷＤのＡｎｎｅｘ  Ｃにおいて規定されるような復号されたピクチャの出力および除去のプロセスに影響を与える。一般に、スライスセグメントのスライスセグメントヘッダのｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇシンタックス要素が１である場合、スライスセグメントヘッダに対応するスライスを含むピクチャが出力される。そうではなく、スライスセグメントのスライスセグメントヘッダのｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇシンタックス要素が０である場合、スライスセグメントヘッダに対応するスライスを含むピクチャが参照ピクチャとして使用するために復号され得るが、出力はされない。
【０３４５】
[0178]本開示の１つまたは複数の技法によれば、ＩＳＯ／ＩＥＣ  １４４９６−１５のセクション８．４．９におけるＨＥＶＣへの言及は、ＳＨＶＣ、ＭＶ−ＨＥＶＣ、または３Ｄ−ＨＥＶＣへの対応する言及と置き換えられ得る。さらに、本開示の１つまたは複数の技法によれば、アクセスユニットが１に等しいｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有するいくつかのコーディングされたピクチャと、０に等しいｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有するいくつかの他のコーディングされたピクチャとを含むとき、少なくとも２つのトラックがストリームを記憶するために使用されなければならない。トラックの各々のそれぞれ１つに対して、それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有する。したがって、トラックのうちの最初のものの中のすべてのコーディングされたピクチャは０に等しいｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有し、トラックのうちの２番目のものの中のすべてのコーディングされたピクチャは１に等しいｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有する。
【０３４６】
[0179]したがって、図６の例では、ファイル生成デバイス３４はファイル４００を生成することができる。図５の例におけるファイル３００と同様に、ファイル４００は、ムービーボックス４０２と、１つまたは複数のメディアデータボックス４０４とを含む。メディアデータボックス４０４の各々は、ファイル４００の異なるトラックに対応し得る。ムービーボックス４０２は、ファイル４００のトラックのためのメタデータを含み得る。ファイル４００の各トラックは、メディアデータの連続的なストリームを備え得る。メディアデータボックス４０４の各々は、１つまたは複数のサンプル４０５を含み得る。サンプル４０５の各々は、オーディオまたはビデオアクセスユニットを備え得る。
【０３４７】
[0180]上で示されたように、いくつかの例では、アクセスユニットが１に等しいｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有するいくつかのコーディングされたピクチャと、０に等しいｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有するいくつかの他のコーディングされたピクチャとを含むとき、少なくとも２つのトラックがストリームを記憶するために使用されなければならない。したがって、図６の例では、ムービーボックス４０２は、トラックボックス４０６とトラックボックス４０８とを含む。トラックボックス４０６および４０８の各々は、ファイル４００の異なるトラックのためのメタデータを封入する。たとえば、トラックボックス４０６は、０に等しいｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有するコーディングされたピクチャを有し１に等しいｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有するピクチャを有しない、トラックのためのメタデータを封入し得る。トラックボックス４０８は、１に等しいｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有するコーディングされたピクチャを有し０に等しいｐｉｃ＿ｏｕｔｐｕｔ＿ｆｌａｇを有するピクチャを有しない、トラックのためのメタデータを封入し得る。
【０３４８】
[0181]したがって、一例では、ファイル生成デバイス３４は、メディアコンテンツを封入する（たとえば、備える）メディアデータボックス（たとえば、メディアデータボックス４０４）を備えるファイル（たとえば、ファイル４００）を生成することができる。メディアコンテンツは、サンプルのシーケンスを備える（たとえば、サンプル４０５）。サンプルの各々は、マルチレイヤビデオデータのアクセスユニットであり得る。この例では、ファイル生成デバイス３４がファイルを生成するとき、ビットストリームの少なくとも１つのアクセスユニットが１に等しいピクチャ出力フラグを有するコーディングされたピクチャと０に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むという決定に応答して、ファイル生成デバイス３４は、ファイルにビットストリームを記憶するために少なくとも２つのトラックを使用することができる。少なくとも２つのトラックからの各々のそれぞれのトラックに対して、それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のピクチャ出力フラグを有する。１に等しいピクチャ出力フラグを有するピクチャは、出力されることが許可され、０に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることが許可されるが、出力されることは許可されない。
【０３４９】
[0182]図７は、本開示の１つまたは複数の技法による、ファイル生成デバイス３４の例示的な動作を示すフローチャートである。本開示の他のフローチャートに示される動作とともに、図７の動作は例である。本開示の技法による他の例示的な動作は、より多数の、より少数の、または異なるアクションを含み得る。
【０３５０】
[0183]図７の例では、ファイル生成デバイス３４はファイルを生成する（５００）。ファイルを生成することの一部として、ファイル生成デバイス３４は、ファイル中のトラックのためのメタデータを含むトラックボックスを生成する（５０２）。このようにして、ファイル生成デバイス３４は、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成する。トラックのためのメディアデータは、サンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットである。いくつかの例では、ファイル生成デバイス３４は、マルチレイヤビデオデータを符号化する。
【０３５１】
[0184]さらに、ファイルを生成することの一部として、ファイル生成デバイス３４は、少なくとも１つのＩＲＡＰピクチャを含むサンプルのすべてを特定する（５０４）。加えて、ファイル生成デバイス３４は、ファイルにおいて、少なくとも１つのＩＲＡＰピクチャを含むサンプルのすべてを記録する追加のボックスを生成することができる（５０６）。いくつかの例では、追加のボックスは、ＩＳＯＢＭＦＦまたはその既存の拡張において定義されない新たなボックスである。いくつかの例では、追加のボックスは、少なくとも１つのＩＲＡＰピクチャを含むサンプルのすべてを記録するサンプルグループを定義する。たとえば、追加のボックスは、ＳａｍｐｌｅＴｏＧｒｏｕｐボックスとＳａｍｐｌｅＧｒｏｕｐＤｅｓｃｒｉｐｔｉｏｎボックスとを含むＳａｍｐｌｅ  Ｔａｂｌｅボックスであってよく、またはそれを備えてよい。ＳａｍｐｌｅＴｏＧｒｏｕｐボックスは、少なくとも１つのＩＲＡＰピクチャを含むサンプルを特定する。ＳａｍｐｌｅＧｒｏｕｐＤｅｓｃｒｉｐｔｉｏｎボックスは、サンプルが少なくとも１つのＩＲＡＰピクチャを含むサンプルのグループであることを示す。
【０３５２】
[0185]さらに、図７の例では、ファイル生成デバイス３４は、少なくとも１つのＩＲＡＰピクチャを含むサンプルの特定の１つのためのサンプルエントリーを生成することができる（５０８）。いくつかの例では、ファイル生成デバイス３４は、少なくとも１つのＩＲＡＰピクチャを含む、サンプルの各々のそれぞれ１つのためのサンプルエントリーを生成することができる。サンプルエントリーは、上でセクション９．５．５．１．２において定義されたようなＲａｎｄｏｍＡｃｃｅｓｓｉｂｌｅＳａｍｐｌｅＥｎｔｒｙであり得る。
【０３５３】
[0186]図７の例において示されたように、特定のサンプルのためのサンプルエントリーを生成することの一部として、ファイル生成デバイス３４は、特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値を、特定のサンプルのためのサンプルエントリーに含めることができる（５１０）。このようにして、ファイル生成デバイス３４は、ファイル中に、サンプルのシーケンス中の１つの特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値を含むサンプルエントリーを生成することができる。さらに、ファイル生成デバイス３４は、特定のサンプルのＩＲＡＰピクチャ中のＶＣＬ  ＮＡＬユニットのＮＡＬユニットタイプを示す値を、特定のサンプルのためのサンプルエントリーに含め得る（５１２）。
【０３５４】
[0187]加えて、ファイル生成デバイス３４は、特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを決定することができる（５１４）。特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるということではないとき（５１４の「ＮＯ」）、ファイル生成デバイス３４は、特定のサンプル中のいくつかのＩＲＡＰピクチャを示す値を、特定のサンプルのためのサンプルエントリーに含め得る（５１６）。加えて、ファイル生成デバイス３４は、特定のサンプル中のＩＲＡＰピクチャのレイヤ識別子（たとえば、ｎｕｈ＿ｌａｙｅｒ＿ｉｄ）を示す値を、特定のサンプルのためのサンプルエントリーに含め得る。
【０３５５】
[0188]上で示されたように、図７は例として提供される。他の例は、図７の各アクションを含まない。たとえば、いくつかの例は、ステップ５０２と、５０４と、５０８とを含まない。その上、いくつかの例は、ステップ５１０〜５１８のうちの様々なステップを含まない。その上、いくつかの例は、１つまたは複数の追加のアクションを含む。たとえば、いくつかの例は、ファイルを生成することの一部として、マルチレイヤビデオデータのトラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを生成する追加のアクションを含む。トラックの各シンクサンプルは、トラックのランダムアクセスサンプルである。この例では、アクセスユニット中の各々のコーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルである。さらに、この例では、アクセスユニット中の各々のコーディングされたピクチャがＲＡＳＬピクチャをもたないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである。
【０３５６】
[0189]図８は、本開示の１つまたは複数の技法による、コンピューティングデバイスがランダムアクセスおよび／またはレベル切替えを実行する例示的な動作を示すフローチャートである。図８の例では、コンピューティングデバイスはファイルを受信する（５５０）。図８の例では、コンピューティングデバイスは、中間ネットワークデバイス（たとえば、ＭＡＮＥ、ストリーミングサーバ）、復号デバイス（たとえば、宛先デバイス１４）、または別のタイプのビデオデバイスであり得る。いくつかの例では、コンピューティングデバイスは、コンテンツ配信ネットワークの一部であり得る。
【０３５７】
[0190]図８の例では、コンピューティングデバイスは、ファイルから、ファイル中のトラックのためのメタデータを含むトラックボックスを取得することができる（５５２）。トラックのためのメディアデータは、サンプルのシーケンスを備える。図８の例では、サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットである。
【０３５８】
[0191]さらに、図８の例では、コンピューティングデバイスは、ファイルから追加のボックスを取得することができる（５５４）。追加のボックスは、少なくとも１つのＩＲＡＰピクチャを含むサンプルのすべてを記録する。したがって、コンピューティングデバイスは、追加のボックス中の情報に基づいて、少なくとも１つのＩＲＡＰピクチャを含むすべてのサンプルを決定することができる（５５６）。
【０３５９】
[0192]さらに、いくつかの例では、コンピューティングデバイスは、ファイルから、サンプルのシーケンス中の１つの特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値を含むサンプルエントリーを取得することができる。特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるということではないとき、コンピューティングデバイスは、特定のサンプル中のいくつかのＩＲＡＰピクチャを示す値を、サンプルエントリーから取得することができる。加えて、コンピューティングデバイスは、特定のサンプル中のＩＲＡＰピクチャのレイヤ識別子を示す値を、サンプルエントリーから取得することができる。さらに、いくつかの例では、コンピューティングデバイスは、特定のサンプルのＩＲＡＰピクチャ中のＶＣＬ  ＮＡＬユニットのＮＡＬユニットタイプを示す値を、サンプルエントリーから取得することができる。加えて、いくつかの例では、コンピューティングデバイスは、ファイルから、ビデオデータのトラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを取得することができる。そのような例では、トラックの各シンクサンプルはトラックのランダムアクセスサンプルであり、アクセスユニット中の各々のコーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルがシンクサンプルであり、アクセスユニット中の各々のコーディングされたピクチャがＲＡＳＬピクチャをもたないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルがシンクサンプルである。
【０３６０】
[0193]加えて、図８の例では、コンピューティングデバイスは、少なくとも１つのＩＲＡＰピクチャを含むサンプルのＮＡＬユニットの転送または復号を、復号順序においてそのサンプルよりも前にあるファイルのＮＡＬユニットを転送または復号することなく、開始することができる（５５８）。このようにして、コンピューティングデバイスは、ランダムアクセスまたはレイヤ切替えを実行することができる。たとえば、コンピューティングデバイスは、少なくとも１つのＩＲＡＰピクチャを含む１つまたは複数のサンプルの１つにおいて、マルチレイヤビデオデータの復号を開始することができる。
【０３６１】
[0194]図９は、本開示の１つまたは複数の技法による、ファイル生成デバイス３４の例示的な動作を示すフローチャートである。図９の例では、ファイル生成デバイス３４は、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成することができる（６００）。トラックのためのメディアデータは、サンプルのシーケンスを備える。図９の例では、サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットである。いくつかの例では、ファイル生成デバイス３４は、マルチレイヤビデオデータを符号化する。
【０３６２】
[0195]ファイルを生成することの一部として、ファイル生成デバイス３４は、サブサンプルが、ちょうど１つのコーディングされたピクチャと、コーディングされたピクチャと関連付けられる０個以上の非ＶＣＬ  ＮＡＬユニットとを含むかどうかを決定することができる（６０２）。サブサンプルが、ちょうど１つのコーディングされたピクチャと、コーディングされたピクチャと関連付けられる０個以上の非ＶＣＬ  ＮＡＬユニットとを含むと決定したことに応答して（６０２の「Ｙｅｓ」）、ファイル生成デバイス３４は、ファイル中に、サブサンプルがちょうど１つのコーディングされたピクチャとコーディングされたピクチャと関連付けられる０個以上の非ＶＣＬ  ＮＡＬユニットとを含むことを示す値（たとえば、５）を有するフラグを含む、サブサンプル情報ボックスを生成することができる（６０４）。それ以外の場合（６０２の「Ｎｏ」）、ファイル生成デバイス３４は、ファイル中に、別の値（たとえば、０、１、２、３、４）を有するフラグを含むサブサンプル情報ボックスを生成することができる（６０６）。
【０３６３】
[0196]このようにして、ファイル生成デバイス３４は、ファイル中のトラックのためのメタデータを含むトラックボックスを備えるファイルを生成することができる。トラックのためのメディアデータは、サンプルのシーケンスを備え、サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットである。ファイルを生成することの一部として、ファイル生成デバイス３４は、ファイル中に、サブサンプル情報ボックス中で与えられるサブサンプル情報のタイプを指定するフラグを含むサブサンプル情報ボックスを生成する。そのフラグがある特定の値を有するとき、サブサンプル情報ボックスに対応するサブサンプルは、ちょうど１つのコーディングされたピクチャと、コーディングされたピクチャと関連付けられる０個以上の非ＶＣＬ  ＮＡＬユニットとを含む。
【０３６４】
[0197]図１０は、本開示の１つまたは複数の技法による、コンピューティングデバイスの例示的な動作を示すフローチャートである。図１０の例では、コンピューティングデバイスはファイルを受信する（６５０）。図１０の例では、コンピューティングデバイスは、ＭＡＮＥまたはストリーミングサーバのような中間ネットワークデバイスであり得る。いくつかの例では、コンピューティングデバイスは、コンテンツ配信ネットワークの一部であり得る。さらに、図１０の例では、コンピューティングデバイスは、ファイルからトラックボックスを取得することができる（６５１）。トラックボックスは、ファイル中のトラックのためのメタデータを含む。トラックのためのメディアデータは、サンプルのシーケンスを備える。図１０の例では、サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットである。
【０３６５】
[0198]さらに、図１０の例では、コンピューティングデバイスは、ファイルからサブサンプル情報ボックスを取得することができる（６５２）。コンピューティングデバイスは、サブサンプル情報中のこの情報を使用して、サブビットストリームを抽出する（６５４）。サブビットストリームは、ファイルに記憶されているビットストリームのオペレーションポイントの各ＮＡＬユニットを備え得る。言い換えると、サブビットストリームのＮＡＬユニットは、ファイルに記憶されているＮＡＬユニットのサブセットであり得る。コンピューティングデバイスは、ファイルからサブサンプル情報ボックスを取得することができ、サンプルのシーケンスに含まれるＮＡＬユニットを解析または解釈することなくサブビットストリームを抽出することができる。サブビットストリームを抽出するときにＮＡＬユニットを解析または解釈しないことで、コンピューティングデバイスの複雑さを下げることができ、および／または、サブビットストリームを抽出するプロセスを加速することができる。
【０３６６】
[0199]さらに、いくつかの例では、コンピューティングデバイスは、フラグが特定の値を有するとき、サブサンプル情報ボックスから、
・  サブサンプルのＶＣＬ  ＮＡＬユニットのすべてが廃棄可能であるかどうかを示す追加のフラグ、
・  サブサンプルのＶＣＬ  ＮＡＬユニットのＮＡＬユニットタイプを示す追加の値、ここでサブサンプルのすべてのＶＣＬ  ＮＡＬユニットは同じＮＡＬユニットタイプを有する、
・  サブサンプルの各ＮＡＬユニットのレイヤ識別子を示す追加の値、
・  サブサンプルの各ＮＡＬユニットの時間識別子を示す追加の値、
・  サブサンプルのすべてのＶＣＬ  ＮＡＬユニットに対してレイヤ間予測がイネーブルにされるかどうかを示す追加のフラグ、または、
・  サブサンプル中のすべてのＮＡＬユニットがサブレイヤ非参照ピクチャのＶＣＬ  ＮＡＬユニットであるかどうかを示す追加のフラグ
の１つまたは複数を取得することができる。
【０３６７】
[0200]図１０の例では、サブビットストリームを抽出することの一部として、コンピューティングデバイスは、サブサンプル情報ボックスが、ちょうど１つのコーディングされたピクチャと、コーディングされたピクチャと関連付けられる０個以上の非ＶＣＬ  ＮＡＬユニットとに対応することを示す特定の値（たとえば、５）を、サブサンプル情報ボックスの「フラグ」の値が有するかどうかを決定することができる（６５６）。サブサンプル情報ボックスの「フラグ」の値が特定の値を有するとき（６５６の「Ｙｅｓ」）、コンピューティングデバイスは、サブサンプル情報ボックスにおいて指定される情報に基づいて、コーディングされたピクチャがオペレーションポイントを復号するために必要とされるかどうかを決定することができる（６５８）。たとえば、コンピューティングデバイスは、廃棄可能フラグ、ＶＣＬ  ＮＡＬユニットタイプインジケータ、レイヤ識別子、時間識別子、レイヤ間予測なしフラグ、および／またはサブレイヤ参照ＮＡＬユニットフラグに基づいて、コーディングされたピクチャがオペレーションポイントを復号するために必要とされるかどうかを決定することができる。コーディングされたピクチャがオペレーションポイントを復号するために必要とされるとき（６５８の「Ｙｅｓ」）、コンピューティングデバイスは、サブビットストリーム中にサブサンプルのＮＡＬユニットを含み得る（６６０）。それ以外の場合、図１０の例では、コーディングされたピクチャがオペレーションポイントを復号するために必要とされないとき（６５８の「ＮＯ」）、コンピューティングデバイスは、サブビットストリーム中にサブサンプルのＮＡＬユニットを含めない（６６２）。
【０３６８】
[0201]さらに、図１０の例では、コンピューティングデバイスは、サブビットストリームを出力することができる（６６４）。たとえば、コンピューティングデバイスは、サブビットストリームをコンピュータ可読記憶媒体に記憶し、または、サブビットストリームを別のコンピューティングデバイスに送信することができる。
【０３６９】
[0202]上で示されたように、図１０は例である。他の例は、図１０の特定のアクションを含むことがあり、または省略することがある。たとえば、いくつかの例は、アクション６５０、６５１、６５４、および／または６６４を省略する。さらに、いくつかの例は、アクション６５６〜６６２のアクション１つまたは複数を省略する。
【０３７０】
[0203]図１１は、本開示の１つまたは複数の技法による、ファイル生成デバイス３４の例示的な動作を示すフローチャートである。図１１の例では、ファイル生成デバイス３４は、メディアコンテンツを含んでいるメディアデータボックスを備えるファイルを生成することができる（７００）。メディアコンテンツは、サンプルのシーケンスを備え、サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットである。様々な例において、マルチレイヤビデオデータは、ＳＨＶＣデータ、ＭＶ−ＨＥＶＣデータ、または３Ｄ−ＨＥＶＣデータであり得る。いくつかの例では、ファイル生成デバイス３４は、マルチレイヤビデオデータを符号化する。
【０３７１】
[0204]図１１の例では、ファイルを生成することの一部として、ファイル生成デバイス３４は、マルチレイヤビデオデータのビットストリームの少なくとも１つのアクセスユニットが、第１の値（たとえば、１）に等しいピクチャ出力フラグを有するコーディングされたピクチャと、第２の値（たとえば、０）に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むかどうかを決定することができる（７０２）。第１の値（たとえば、１）に等しいピクチャ出力フラグを有するピクチャは、出力されることが許可され、第２の値（たとえば、０）に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることが許可されるが、出力されることは許可されない。他の例では、他のデバイスは、マルチレイヤビデオデータのビットストリームの少なくとも１つのアクセスユニットが、第１の値に等しいピクチャ出力フラグを有するコーディングされたピクチャと、第２の値に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むかどうかの決定を行うことができる。
【０３７２】
[0205]マルチレイヤビデオデータのビットストリームの少なくとも１つのアクセスユニットが、第１の値に等しいピクチャ出力フラグを有するコーディングされたピクチャと、第２の値に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含むという決定に応答して（７０２の「Ｙｅｓ」）、ファイル生成デバイス３４は、ファイルにビットストリームを記憶するために少なくとも第１のトラックと第２のトラックとを使用する（７０４）。第１のトラックおよび第２のトラックからの各々のそれぞれのトラックに対して、それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のピクチャ出力フラグを有する。
【０３７３】
[0206]さらに、図１１の例では、ビットストリームのアクセスユニットが、第１の値（たとえば、１）に等しいピクチャ出力フラグを有するコーディングされたピクチャと、第２の値（たとえば、０）に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含まないと決定したことに応答して（７０２の「ＮＯ」）、ファイル生成デバイス３４は、ファイルにビットストリームを記憶するために単一のトラックを使用することができる（７０６）。他の例では、ファイル生成デバイス３４は、ビットストリームのアクセスユニットが、第１の値（たとえば、１）に等しいピクチャ出力フラグを有するコーディングされたピクチャと、第２の値（たとえば、０）に等しいピクチャ出力フラグを有するコーディングされたピクチャとを含まないときでも、複数のトラックを伴うファイルを生成することができる。
【０３７４】
[0207]上で示されたように、図１１は例である。他の例は、より少数のアクションを含み得る。たとえば、いくつかの例は、アクション７０２と７０６とを省略する。
【０３７５】
[0208]図１２は、本開示の１つまたは複数の技法による、宛先デバイス１４の例示的な動作を示すフローチャートである。図１２の例では、宛先デバイス１４はファイルを受信する（７５０）。ファイルは、メディアコンテンツを含んでいるメディアデータボックスを備えてよく、メディアコンテンツはサンプルのシーケンスを備える。サンプルの各々は、マルチレイヤビデオデータのアクセスユニットであり得る。様々な例において、マルチレイヤビデオデータは、ＳＨＶＣデータ、ＭＶ−ＨＥＶＣデータ、または３Ｄ−ＨＥＶＣデータであり得る。さらに、図１２の例では、宛先デバイス１４は、ファイルから、第１のトラックボックスと第２のトラックボックスとを取得することができる（７５１）。第１のトラックボックスは、ファイル中の第１のトラックのためのメタデータを含む。第２のトラックボックスは、ファイル中の第２のトラックのためのメタデータを含む。第１のトラックおよび第２のトラックからの各々のそれぞれのトラックに対して、それぞれのトラックの各サンプル中のすべてのコーディングされたピクチャは、同じ値のピクチャ出力フラグを有する。第１の値（たとえば、１）に等しいピクチャ出力フラグを有するピクチャは、出力されることが許可され、第２の値（たとえば、０）に等しいピクチャ出力フラグを有するピクチャは、参照ピクチャとして使用されることが許可されるが、出力されることは許可されない。
【０３７６】
[0209]宛先デバイス１４のビデオデコーダ３０は、第１の値（たとえば、１）に等しいピクチャ出力フラグを有するピクチャのためのトラック中のピクチャを復号することができ、第２の値（たとえば、０）に等しいピクチャ出力フラグを有するピクチャのためのトラック中のピクチャを復号することができる（７５２）。いくつかの例では、ビデオデコーダ３０は、１に等しいピクチャ出力フラグを有するピクチャを使用して、０に等しいピクチャ出力フラグを有するピクチャを復号してよく、またはこの逆であってよい。宛先デバイス１４は、第１の値に等しいピクチャ出力フラグを有するピクチャを出力することができる（７５４）。宛先デバイス１４は、第２の値に等しいピクチャ出力フラグを有するピクチャを出力しない（７５６）。このようにして、第１のトラックおよび第２のトラックからの各々のそれぞれのトラックに対して、宛先デバイス１４は、それぞれのトラックの各サンプル中のコーディングされたピクチャを復号し、第１の値に等しいピクチャ出力フラグを有する復号されたピクチャを出力することができる。
【０３７７】
[0210]上で示されたように、図１２は例として提供される。他の例は、アクション７５２〜７５６のような、図１２の特定のアクションを省略することができる。
【０３７８】
[0211]１つまたは複数の例において、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は１つもしくは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、（１）非一時的である有形のコンピュータ可読記憶媒体、または（２）信号もしくは搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実施のための命令、コードおよび／またはデータ構造を取り出すために、１つもしくは複数のコンピュータまたは１つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０３７９】
[0212]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他の遠隔ソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに、非一時的な有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびブルーレイディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
【０３８０】
[0213]命令は、１つもしくは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価な集積回路またはディスクリート論理回路のような、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造のいずれかまたは本明細書で説明された技法の実装に適切な任意の他の構造を指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用のハードウェアモジュールおよび／またはソフトウェアモジュール内で提供され得る。また、本技法は、１つまたは複数の回路または論理素子において完全に実装され得る。
【０３８１】
[0214]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。様々なコンポーネント、モジュール、またはユニットは、開示されている技術を実行するように構成されたデバイスの機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。そうではなく、上で説明されたように、様々なユニットは、コーデックハードウェアユニット中で組み合わせられるか、または上で説明された１つまたは複数のプロセッサを含む、適切なソフトウェアおよび／またはファームウェアとともに相互動作可能なハードウェアユニットの集合体によって提供され得る。
【０３８２】
[0215]様々な例が、説明された。これらおよび他の例は、以下の特許請求の範囲に含まれる。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］マルチレイヤビデオデータを処理する方法であって、
ファイル中のトラックのためのメタデータを含むトラックボックスを備える前記ファイルを生成することを備え、
前記トラックのためのメディアデータは、サンプルのシーケンスを備え、前記サンプルの各々は、前記マルチレイヤビデオデータのビデオアクセスユニットであり、
前記ファイルを生成することは、
前記ファイル中に、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録する追加のボックスを生成することを備える、方法。
［Ｃ２］前記追加のボックスは、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルのすべてを記録するサンプルグループを定義する、Ｃ１に記載の方法。
［Ｃ３］前記ファイルを生成することは、さらに、
前記ファイル中に、サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値を含むサンプルエントリーを生成することを備える、Ｃ１に記載の方法。
［Ｃ４］前記サンプルエントリーを生成することは、
前記特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるということではないときに、
前記サンプルエントリー中に、前記特定のサンプル中のＩＲＡＰピクチャの数を示す値を含めることと、
前記サンプルエントリー中に、前記特定のサンプル中の前記ＩＲＡＰピクチャのレイヤ識別子を示す値を含めることと、
を備える、Ｃ３に記載の方法。
［Ｃ５］前記サンプルエントリーを生成することは、
前記サンプルエントリー中に、前記特定のサンプルのＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を含めることを備える、Ｃ３に記載の方法。
［Ｃ６］前記ファイルを生成することは、前記ファイル中に、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを生成することを備え、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各コーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、Ｃ１に記載の方法。
［Ｃ７］前記マルチレイヤビデオデータを符号化することをさらに備える、Ｃ１に記載の方法。
［Ｃ８］マルチレイヤビデオデータを処理する方法であって、
ファイルから、前記ファイル中のトラックのためのメタデータを含むトラックボックスを取得することと、ここにおいて、前記トラックのためのメディアデータはサンプルのシーケンスを備え、前記サンプルの各々は前記マルチレイヤビデオデータのビデオアクセスユニットであり、
前記ファイルから、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録する追加のボックスを取得することと、
前記追加のボックス中の情報に基づいて、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルの１つまたは複数を決定することと、
を備える方法。
［Ｃ９］前記追加のボックスは、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルのすべてを記録するサンプルグループを定義する、Ｃ８に記載の方法。
［Ｃ１０］前記ファイルから、サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値を含むサンプルエントリーを取得することをさらに備える、Ｃ８に記載の方法。
［Ｃ１１］前記特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるということではないときに、
前記サンプルエントリーから、前記特定のサンプル中のＩＲＡＰピクチャの数を示す値を取得することと、
前記サンプルエントリーから、前記特定のサンプル中のＩＲＡＰピクチャのレイヤ識別子を示す値を取得することと、
を備える、Ｃ１０に記載の方法。
［Ｃ１２］前記サンプルエントリーから、前記特定のサンプルのＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を取得することを備える、Ｃ１０に記載の方法。
［Ｃ１３］前記ファイルから、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを取得することをさらに備え、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各コーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、Ｃ８に記載の方法。
［Ｃ１４］少なくとも１つのＩＲＡＰピクチャを含む前記１つまたは複数のサンプルの１つにおいて、前記マルチレイヤビデオデータの復号を開始することをさらに備える、Ｃ８に記載の方法。
［Ｃ１５］マルチレイヤビデオデータを記憶するように構成されるデータ記憶媒体と、
１つまたは複数のプロセッサと、を備えるビデオデバイスであって、前記１つまたは複数のプロセッサは、
ファイル中のトラックのためのメタデータを含むトラックボックスを備える前記ファイルを生成するように構成され、
前記トラックのためのメディアデータは、サンプルのシーケンスを備え、前記サンプルの各々は、前記マルチレイヤビデオデータのビデオアクセスユニットであり、
前記ファイルを生成することは、前記ファイル中に、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録する追加のボックスを生成することを備える、ビデオデバイス。
［Ｃ１６］前記追加のボックスは、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルのすべてを記録するサンプルグループを定義する、Ｃ１５に記載のビデオデバイス。
［Ｃ１７］前記１つまたは複数のプロセッサは、
前記ファイル中に、サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値を含むサンプルエントリーを生成するように構成される、Ｃ１５に記載のビデオデバイス。
［Ｃ１８］前記１つまたは複数のプロセッサは、
前記特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるということではないときに、
前記サンプルエントリー中に、前記特定のサンプル中のＩＲＡＰピクチャの数を示す値を含め、
前記サンプルエントリー中に、前記特定のサンプル中の前記ＩＲＡＰピクチャのレイヤ識別子を示す値を含める
ように構成される、Ｃ１７に記載のビデオデバイス。
［Ｃ１９］前記１つまたは複数のプロセッサは、
前記サンプルエントリー中に、前記特定のサンプルのＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を含めるように構成される、Ｃ１７に記載のビデオデバイス。
［Ｃ２０］前記１つまたは複数のプロセッサは、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを前記ファイル中に生成するように構成され、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各々のコーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、Ｃ１５に記載のビデオデバイス。
［Ｃ２１］前記１つまたは複数のプロセッサは、前記マルチレイヤビデオデータを符号化するように構成される、Ｃ１５に記載のビデオデバイス。
［Ｃ２２］マルチレイヤビデオデータを記憶するように構成されるデータ記憶媒体と、
１つまたは複数のプロセッサと、を備えるビデオデバイスであって、前記１つまたは複数のプロセッサは、
ファイルから、前記ファイル中のトラックのためのメタデータを含むトラックボックスを取得し、ここにおいて、前記トラックのためのメディアデータはサンプルのシーケンスを備え、前記サンプルの各々は前記マルチレイヤビデオデータのビデオアクセスユニットであり、
前記ファイルから、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録する追加のボックスを取得し、
前記追加のボックス中の情報に基づいて、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルの１つまたは複数を決定する
ように構成される、ビデオデバイス。
［Ｃ２３］前記追加のボックスは、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルのすべてを記録するサンプルグループを定義する、Ｃ２２に記載のビデオデバイス。
［Ｃ２４］前記１つまたは複数のプロセッサは、
前記ファイルから、サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値を含むサンプルエントリーを取得するように構成される、Ｃ２２に記載のビデオデバイス。
［Ｃ２５］前記１つまたは複数のプロセッサは、
前記特定のサンプル中のコーディングされたピクチャがＩＲＡＰピクチャであるということではないときに、
前記サンプルエントリーから、前記特定のサンプル中のＩＲＡＰピクチャの数を示す値を取得し、
前記サンプルエントリーから、前記特定のサンプル中のＩＲＡＰピクチャのレイヤ識別子を示す値を取得する
ように構成される、Ｃ２４に記載のビデオデバイス。
［Ｃ２６］前記１つまたは複数のプロセッサは、
前記サンプルエントリーから、前記特定のサンプルのＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を取得するように構成される、Ｃ２４に記載のビデオデバイス。
［Ｃ２７］前記１つまたは複数のプロセッサは、
前記ファイルから、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを取得するように構成され、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各コーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、Ｃ２２に記載のビデオデバイス。
［Ｃ２８］前記１つまたは複数のプロセッサは、少なくとも１つのＩＲＡＰピクチャを含む前記１つまたは複数のサンプルの１つにおいて、前記マルチレイヤビデオデータの復号を開始するように構成される、Ｃ２２に記載のビデオデバイス。
［Ｃ２９］ファイル中のトラックのためのメタデータを含むトラックボックスを備える前記ファイルを生成するための手段を備え、
前記トラックのためのメディアデータは、サンプルのシーケンスを備え、前記サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットであり、
前記ファイルを生成することは、前記ファイル中に、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録する追加のボックスを生成することを備える、ビデオデバイス。
［Ｃ３０］前記追加のボックスは、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルのすべてを記録するサンプルグループを定義する、Ｃ２９に記載のビデオデバイス。
［Ｃ３１］前記ファイル中に、サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値を含むサンプルエントリーを生成するための手段を備える、Ｃ２９に記載のビデオデバイス。
［Ｃ３２］前記特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるということではないとき、前記サンプルエントリーに、前記特定のサンプル中のＩＲＡＰピクチャの数を示す値を含めるための手段と、
前記特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるということではないとき、前記サンプルエントリーに、前記特定のサンプル中の前記ＩＲＡＰピクチャのレイヤ識別子を示す値を含めるための手段と、
を備える、Ｃ３１に記載のビデオデバイス。
［Ｃ３３］前記サンプルエントリー中に、前記特定のサンプルのＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を含めるための手段を備える、Ｃ３１に記載のビデオデバイス。
［Ｃ３４］前記ファイルを生成することは、前記ファイル中に、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを生成することを備え、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各コーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、Ｃ２９に記載のビデオデバイス。
［Ｃ３５］前記マルチレイヤビデオデータを符号化するための手段をさらに備える、Ｃ２９に記載のビデオデバイス。
［Ｃ３６］ファイルから、前記ファイル中のトラックのためのメタデータを含むトラックボックスを取得するための手段と、ここにおいて、前記トラックのためのメディアデータはサンプルのシーケンスを備え、前記サンプルの各々はマルチレイヤビデオデータのビデオアクセスユニットであり、
前記ファイルから、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録する追加のボックスを取得するための手段と、
前記追加のボックス中の情報に基づいて、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルの１つまたは複数を決定するための手段と、
を備える、ビデオデバイス。
［Ｃ３７］前記追加のボックスは、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルのすべてを記録するサンプルグループを定義する、Ｃ３６に記載のビデオデバイス。
［Ｃ３８］前記ファイルから、サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値を含むサンプルエントリーを取得するための手段を備える、Ｃ３６に記載のビデオデバイス。
［Ｃ３９］前記特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるということではないとき、前記サンプルエントリーから、前記特定のサンプル中のＩＲＡＰピクチャの数を示す値を取得するための手段と、
前記特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるということではないとき、前記サンプルエントリーから、前記特定のサンプル中の前記ＩＲＡＰピクチャのレイヤ識別子を示す値を取得するための手段と、
を備える、Ｃ３８に記載のビデオデバイス。
［Ｃ４０］前記サンプルエントリーから、前記特定のサンプルのＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を取得するための手段を備える、Ｃ３８に記載のビデオデバイス。
［Ｃ４１］前記ファイルから、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを取得するための手段をさらに備え、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャはＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各コーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、Ｃ３６に記載のビデオデバイス。
［Ｃ４２］少なくとも１つのＩＲＡＰピクチャを含む前記１つまたは複数のサンプルの１つにおいて、前記マルチレイヤビデオデータの復号を開始するための手段をさらに備える、Ｃ３６に記載のビデオデバイス。
［Ｃ４３］実行されると、１つまたは複数のプロセッサに、
ファイル中のトラックのためのメタデータを含むトラックボックスを備える前記ファイルを生成させる命令を記憶した、コンピュータ可読データ記憶媒体であって、
前記トラックのためのメディアデータは、サンプルのシーケンスを備え、前記サンプルの各々は、マルチレイヤビデオデータのビデオアクセスユニットであり、
前記ファイルを生成するために、前記１つまたは複数のプロセッサは、前記ファイル中に、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録する追加のボックスを生成する、コンピュータ可読データ記憶媒体。
［Ｃ４４］前記追加のボックスは、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルのすべてを記録するサンプルグループを定義する、Ｃ４３に記載のコンピュータ可読データ記憶媒体。
［Ｃ４５］前記命令は、前記１つまたは複数のプロセッサに、
前記ファイルにおいて、サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値を含むサンプルエントリーを生成させる、Ｃ４３に記載のコンピュータ可読データ記憶媒体。
［Ｃ４６］前記特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるということではないとき、前記命令は、前記１つまたは複数のプロセッサに、
前記サンプルエントリー中に、前記特定のサンプル中のＩＲＡＰピクチャの数を示す値を含めることと、
前記サンプルエントリー中に、前記特定のサンプル中のＩＲＡＰピクチャのレイヤ識別子を示す値を含めることと、
を行わせる、Ｃ４５に記載のコンピュータ可読データ記憶媒体。
［Ｃ４７］前記命令は、前記１つまたは複数のプロセッサに、
前記サンプルエントリー中に、前記特定のサンプルのＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を含めさせる、Ｃ４５に記載のコンピュータ可読データ記憶媒体。
［Ｃ４８］前記命令がさらに、前記１つまたは複数のプロセッサに、
前記ファイル中に、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを生成させ、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各コーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、
Ｃ４３に記載のコンピュータ可読データ記憶媒体。
［Ｃ４９］実行されると、１つまたは複数のプロセッサに、
ファイルから、前記ファイル中のトラックのためのメタデータを含むトラックボックスを取得させ、ここにおいて、前記トラックのためのメディアデータはサンプルのシーケンスを備え、前記サンプルの各々はマルチレイヤビデオデータのビデオアクセスユニットであり、
前記ファイルから、少なくとも１つのイントラランダムアクセスポイント（ＩＲＡＰ）ピクチャを含む前記サンプルのすべてを記録する追加のボックスを取得させ、
前記追加のボックス中の情報に基づいて、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルの１つまたは複数を決定させる、
命令を記憶した、コンピュータ可読データ記憶媒体。
［Ｃ５０］前記追加のボックスは、少なくとも１つのＩＲＡＰピクチャを含む前記サンプルのすべてを記録するサンプルグループを定義する、Ｃ４９に記載のコンピュータ可読データ記憶媒体。
［Ｃ５１］前記命令は、前記１つまたは複数のプロセッサに、
前記ファイルから、サンプルの前記シーケンス中の特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるかどうかを示す値を含むサンプルエントリーを取得させる、Ｃ４９に記載のコンピュータ可読データ記憶媒体。
［Ｃ５２］前記特定のサンプル中のすべてのコーディングされたピクチャがＩＲＡＰピクチャであるということではないとき、前記命令が、前記１つまたは複数のプロセッサに、
前記サンプルエントリーから、前記特定のサンプル中のＩＲＡＰピクチャの数を示す値を取得させ、
前記サンプルエントリーから、前記特定のサンプル中のＩＲＡＰピクチャのレイヤ識別子を示す値を取得させる、
Ｃ５１に記載のコンピュータ可読データ記憶媒体。
［Ｃ５３］前記命令は、前記１つまたは複数のプロセッサに、
前記サンプルエントリーから、前記特定のサンプルのＩＲＡＰピクチャ中のビデオコーディングレイヤ（ＶＣＬ）ネットワーク抽象化レイヤ（ＮＡＬ）ユニットのＮＡＬユニットタイプを示す値を取得させる、Ｃ５１に記載のコンピュータ可読データ記憶媒体。
［Ｃ５４］前記命令は、前記１つまたは複数のプロセッサに、
前記ファイルから、前記トラックのシンクサンプルを記録するシンクサンプルテーブルを含むシンクサンプルボックスを取得させ、
前記トラックの各シンクサンプルは、前記トラックのランダムアクセスサンプルであり、
アクセスユニット中の各コーディングされたピクチャがＩＲＡＰピクチャである場合、スケーラブルビデオコーディングサンプルはシンクサンプルであり、
前記アクセスユニット中の各コーディングされたピクチャがランダムアクセススキップリーディング（ＲＡＳＬ）ピクチャを伴わないＩＲＡＰピクチャである場合、マルチビュービデオコーディングサンプルはシンクサンプルである、Ｃ４９に記載のコンピュータ可読データ記憶媒体。
【図１】
0006434008.tif 000013
【図２】
0006434008.tif 000014
【図３】
0006434008.tif 000015
【図４】
0006434008.tif 000016
【図５】
0006434008.tif 000017
【図６】
0006434008.tif 000018
【図７】
0006434008.tif 000019
【図８】
0006434008.tif 000020
【図９】
0006434008.tif 000021
【図１０】
0006434008.tif 000022
【図１１】
0006434008.tif 000023
【図１２】
0006434008.tif 000024