(57)【特許請求の範囲】
【請求項１】
ビデオデータを符号化するための方法であって、前記方法が、
ソースビデオデバイスによって、符号化されたビデオデータに基づいて、複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含む第１のトラックを構築することであって、前記ビデオサンプルがアクセスユニット中に含まれる、第１のトラックを構築することと、
前記ソースビデオデバイスによって、複数のエクストラクタを含む第２のトラックを構築することであって、前記複数のエクストラクタは、前記第１のトラックの複数のＮＡＬユニットを識別するエクストラクタを含み、前記識別された複数のＮＡＬユニットは、前記第１のトラックの前記ビデオサンプル中の前記ＮＡＬユニットのうちの第１の識別されたＮＡＬユニットと、前記アクセスユニットの第２の識別されたＮＡＬユニットを含み、ここにおいて、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続であり、前記エクストラクタは、第１のＮＡＬユニットと第２のＮＡＬユニットを識別する、第２のトラックを構築することと、
前記第１のトラックと前記第２のトラックとを、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイル中に含めることと、
前記ビデオファイルを出力することと
を備える、方法。
【請求項２】
前記ビデオファイルが前記ＩＳＯベースメディアファイルフォーマットに準拠する、請求項１に記載の方法。
【請求項３】
前記ビデオファイルが、スケーラブルビデオコーディング（ＳＶＣ）ファイルフォーマットと、アドバンストビデオコーディング（ＡＶＣ）ファイルフォーマットと、第３世代パートナーシッププロジェクト（３ＧＰＰ）ファイルフォーマットと、マルチビュービデオコーディング（ＭＶＣ）ファイルフォーマットとのうちの少なくとも１つに準拠する、請求項１に記載の方法。
【請求項４】
前記第２のトラックを構築することが、前記符号化されたデータに基づいて、前記第１のトラックの前記複数のＮＡＬユニット中に含まれていない１つまたは複数の追加のＮＡＬユニットを前記第２のトラック中に含めることをさらに備える、請求項１に記載の方法。
【請求項５】
前記第１のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第１のエクストラクタと、前記第２のトラックの前記１つまたは複数のＮＡＬユニットのうちの少なくとも１つを識別する第２のエクストラクタとを含む第３のトラックを構築することをさらに備える、請求項４に記載の方法。
【請求項６】
前記第３のトラックを構築することが、前記第１のトラックおよび前記第２のトラック中に含まれていない１つまたは複数のＮＡＬユニットを前記第３のトラック中に含めることをさらに備える、請求項５に記載の方法。
【請求項７】
前記第２のトラックを構築することが、前記第１のトラックの前記ビデオサンプルの前記複数のＮＡＬユニットの各々を識別するように前記エクストラクタを構築することを備え、前記エクストラクタが、宛先デバイスに、前記ビデオサンプルの前記複数のＮＡＬユニットの各々を全体として抽出させる、請求項１に記載の方法。
【請求項８】
前記第２のトラックを構築することが、前記ビデオファイルの前記第１のトラック中の前記ビデオサンプルの前記複数のＮＡＬユニットのうちの前記１つまたは複数のバイト範囲を指定することによって、前記ビデオサンプルの前記複数のＮＡＬユニットのうちの前記１つまたは複数を識別するように前記エクストラクタを構築することを備える、請求項１に記載の方法。
【請求項９】
前記第１のトラック中の前記ビデオサンプルの前記複数のＮＡＬユニットが、コモンピクチャのスライスと、非ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと、補足拡張情報（ＳＥＩ）メッセージＮＡＬユニットと、前記アクセスユニットのビデオレイヤと、前記アクセスユニットの異なるビュー構成要素と、複数のＮＡＬユニットからアグリゲートされたＮＡＬユニットとのうちの少なくとも１つを備える、請求項１に記載の方法。
【請求項１０】
前記複数のＮＡＬユニットが第１の複数のＮＡＬユニットを備え、前記方法が、前記符号化されたビデオデータに基づいて第２の複数のＮＡＬユニットを含む第３のトラックを構築することをさらに備え、前記第２の複数のＮＡＬユニットが前記アクセスユニットの一部を形成し、前記第２の複数のＮＡＬユニットが、前記エクストラクタによって識別された前記第２の識別されたＮＡＬユニットを備える、請求項１に記載の方法。
【請求項１１】
前記ビデオサンプルが第１のビデオサンプルを備え、前記複数のＮＡＬユニットが第１の複数のＮＡＬユニットを備え、前記第１のトラックが、第２の複数のＮＡＬユニットを備える第２のサンプルをさらに備え、前記アクセスユニットが前記第２のサンプルを備え、前記第２の複数のＮＡＬユニットが、前記エクストラクタによって識別された前記第２のＮＡＬユニットを備える、請求項１に記載の方法。
【請求項１２】
前記第２のＮＡＬユニットが、前記ビデオサンプル中の前記第１の識別されたＮＡＬユニットから少なくとも１バイトのデータだけ分離された、前記第１のトラックの前記ビデオサンプルの前記複数のＮＡＬユニットのうちの第２のＮＡＬユニットを備える、請求項１に記載の方法。
【請求項１３】
各トラックの特性に基づいて、宛先デバイスによって復号するために前記第１のトラックまたは前記第２のトラックのいずれかが選択可能であるように、前記第１のトラックと前記第２のトラックとがスイッチグループを形成する、請求項１に記載の方法。
【請求項１４】
前記第２トラックを構築することが、
前記第２のトラックのフレームレートをシグナリングすることと、
前記第２のトラックのための前記第１のトラックの前記ビデオサンプルの時間識別子をシグナリングすることとを備え、
前記第２のトラックが２つ以上のビューを備えるとき、前記第２のトラックを構築することが、
前記第２のトラックを復号した後に表示されるべきビューの数を表す値をシグナリングすることと、
前記第２のトラックのための表示されるべきビューのための１つまたは複数のビュー識別子値をシグナリングすることと、
前記第２のトラックのための復号されるべきビューの数を表す値をシグナリングすることと
をさらに備える、請求項１３に記載の方法。
【請求項１５】
ビデオデータを符号化するための装置であって、前記装置が、
ビデオデータを符号化するように構成されたエンコーダと、
前記符号化されたビデオデータに基づいて、複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含む第１のトラックを構築することであって、前記ビデオサンプルがアクセスユニット中に含まれる、第１のトラックを構築することと、複数のエクストラクタを含む第２のトラックを構築することであって、前記複数のエクストラクタは、前記第１のトラックの複数のＮＡＬユニットを識別するエクストラクタを含み、前記識別された複数のＮＡＬユニットは、前記第１のトラックの前記ビデオサンプル中の前記ＮＡＬユニットのうちの第１の識別されたＮＡＬユニットと、前記アクセスユニットの第２の識別されたＮＡＬユニットを含み、ここにおいて、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続であり、前記エクストラクタは、第１のＮＡＬユニットと第２のＮＡＬユニットを識別する、第２のトラックを構築するように構成されたマルチプレクサと、
前記ビデオファイルを出力するように構成された出力インターフェースと
を備え、前記マルチプレクサは、前記第１のトラックと前記第２のトラックとを、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイル中に含めることを行うようにさらに構成される、装置。
【請求項１６】
前記ビデオファイルが、ＩＳＯベースメディアファイルフォーマットと、スケーラブルビデオコーディング（ＳＶＣ）ファイルフォーマットと、アドバンストビデオコーディング（ＡＶＣ）ファイルフォーマットと、第３世代パートナーシッププロジェクト（３ＧＰＰ）ファイルフォーマットと、マルチビュービデオコーディング（ＭＶＣ）ファイルフォーマットとのうちの少なくとも１つに準拠する、請求項１５に記載の装置。
【請求項１７】
前記マルチプレクサが、前記符号化されたビデオデータに基づいて、前記第１のトラック中に含まれていない１つまたは複数のＮＡＬユニットを前記第２のトラック中に含めるように構成された、請求項１５に記載の装置。
【請求項１８】
前記マルチプレクサが、前記第１のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第１のエクストラクタと、前記第２のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第２のエクストラクタとを含む第３のトラックを構築するように構成された、請求項１７に記載の装置。
【請求項１９】
前記エクストラクタが第１のエクストラクタを備え、前記マルチプレクサが、前記符号化されたビデオデータに基づいて、複数のＮＡＬユニットを含む第３のエクストラクタトラックを構築するように構成され、前記マルチプレクサが、前記第３のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第２のエクストラクタを含むように前記第２のトラックを構築するように構成された、請求項１５に記載の装置。
【請求項２０】
前記装置が、
集積回路と、
マイクロプロセッサと、
前記ビデオエンコーダと前記マルチプレクサとを含むワイヤレス通信デバイスとのうちの少なくとも１つを備える、請求項１６に記載の装置。
【請求項２１】
ビデオデータを符号化するための装置であって、前記装置が、
符号化されたビデオデータに基づいて、複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含む第１のトラックを構築するための手段であって、前記ビデオサンプルがアクセスユニット中に含まれる、第１のトラックを構築するための手段と、
複数のエクストラクタを含む第２のトラックを構築するための手段であって、前記複数のエクストラクタは、前記第１のトラックの複数のＮＡＬユニットを識別するエクストラクタを含み、前記識別された複数のＮＡＬユニットは、前記第１のトラックの前記ビデオサンプル中の前記ＮＡＬユニットのうちの第１の識別されたＮＡＬユニットと、前記アクセスユニットの第２の識別されたＮＡＬユニットを含み、ここにおいて、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続であり、前記エクストラクタは、第１のＮＡＬユニットと第２のＮＡＬユニットを識別する、第２のトラックを構築するための手段と、
前記第１のトラックと前記第２のトラックとを、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイル中に含めるための手段と、
前記ビデオファイルを出力するための手段と
を備える、装置。
【請求項２２】
前記ビデオファイルが、ＩＳＯベースメディアファイルフォーマットと、スケーラブルビデオコーディング（ＳＶＣ）ファイルフォーマットと、アドバンストビデオコーディング（ＡＶＣ）ファイルフォーマットと、第３世代パートナーシッププロジェクト（３ＧＰＰ）ファイルフォーマットと、マルチビュービデオコーディング（ＭＶＣ）ファイルフォーマットとのうちの少なくとも１つに準拠する、請求項２１に記載の装置。
【請求項２３】
前記符号化されたデータに基づいて、前記第１のトラック中に含まれていない１つまたは複数のＮＡＬユニットを前記第２のトラック中に含めるための手段をさらに備える、請求項２１に記載の装置。
【請求項２４】
前記第１のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第１のエクストラクタと、前記第２のトラックの前記１つまたは複数のＮＡＬユニットのうちの少なくとも１つを識別する第２のエクストラクタとを含む第３のトラックを構築するための手段をさらに備える、請求項２３に記載の装置。
【請求項２５】
前記エクストラクタが第１のエクストラクタを備え、前記装置が、前記符号化されたビデオデータに基づいて、複数のＮＡＬユニットを含む第３のエクストラクタトラックを構築するための手段をさらに備え、前記第２のトラックを構築するための前記手段が、前記第３のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第２のエクストラクタを含むように前記第２のトラックを構築するための手段を備える、請求項２１に記載の装置。
【請求項２６】
実行されると、
符号化されたビデオデータに基づいて、複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含む第１のトラックを構築することであって、前記ビデオサンプルがアクセスユニット中に含まれる、第１のトラックを構築することと、
複数のエクストラクタを含む第２のトラックを構築することであって、前記複数のエクストラクタは、前記第１のトラックの複数のＮＡＬユニットを識別するエクストラクタを含み、前記識別された複数のＮＡＬユニットは、前記第１のトラックの前記ビデオサンプル中の前記ＮＡＬユニットのうちの第１の識別されたＮＡＬユニットと、前記アクセスユニットの第２の識別されたＮＡＬユニットを含み、ここにおいて、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続であり、前記エクストラクタは、第１のＮＡＬユニットと第２のＮＡＬユニットを識別する、第２のトラックを構築することと、
前記第１のトラックと前記第２のトラックとを、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイル中に含めることと、
前記ビデオファイルを出力することと
をプロセッサに行わせる命令を備える、コンピュータ可読記憶媒体。
【請求項２７】
前記ビデオファイルが、ＩＳＯベースメディアファイルフォーマットと、スケーラブルビデオコーディング（ＳＶＣ）ファイルフォーマットと、アドバンストビデオコーディング（ＡＶＣ）ファイルフォーマットと、第３世代パートナーシッププロジェクト（３ＧＰＰ）ファイルフォーマットと、マルチビュービデオコーディング（ＭＶＣ）ファイルフォーマットとのうちの少なくとも１つに準拠する、請求項２６に記載のコンピュータ可読記憶媒体。
【請求項２８】
前記符号化されたデータに基づいて、前記第１のトラック中に含まれていない１つまたは複数のＮＡＬユニットを前記第２のトラック中に含めることを前記プロセッサに行わせる命令をさらに備える、請求項２６に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記第１のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第１のエクストラクタと、前記第２のトラックの前記１つまたは複数のＮＡＬユニットのうちの少なくとも１つを識別する第２のエクストラクタとを含む第３のトラックを構築することを前記プロセッサに行わせる命令をさらに備える、請求項２８に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記エクストラクタが第１のエクストラクタを備え、前記コンピュータ可読記憶媒体が、前記符号化されたビデオデータに基づいて、複数のＮＡＬユニットを含む第３のエクストラクタトラックを構築することを前記プロセッサに行わせる命令をさらに備え、前記第２のトラックを構築することを前記プロセッサに行わせる前記命令が、前記第３のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第２のエクストラクタを含むように前記第２のトラックを構築することを前記プロセッサに行わせる命令を備える、請求項２６に記載のコンピュータ可読記憶媒体。
【請求項３１】
ビデオデータを復号するための方法であって、前記方法が、
宛先デバイスのデマルチプレクサによって、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイルを受信することであって、前記ビデオファイルが第１のトラックと第２のトラックとを備え、前記第１のトラックが、符号化されたビデオデータに対応する複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含み、前記ビデオサンプルがアクセスユニット中に含まれ、前記第２のトラックが、複数のエクストラクタを含み、前記複数のエクストラクタは、前記第１のトラックの複数のＮＡＬユニットを識別するエクストラクタを含み、前記識別された複数のＮＡＬユニットは、前記第１のトラックの前記ＮＡＬユニットのうちの第１の識別されたＮＡＬユニットと、前記アクセスユニットの第２の識別されたＮＡＬユニットを含み、ここにおいて、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続であり、前記エクストラクタは、第１のＮＡＬユニットと第２のＮＡＬユニットを識別する、受信することと、
復号されるべき前記第２のトラックを選択することと、
前記第２のトラックの前記エクストラクタによって識別された前記第１のＮＡＬユニットおよび前記第２のＮＡＬユニットの符号化されたビデオデータを前記宛先デバイスのビデオデコーダに送ることと
を備える、方法。
【請求項３２】
前記第２のトラックの前記エクストラクタによって識別されない前記第１のトラックの前記複数のＮＡＬユニットの各々を廃棄することをさらに備える、請求項３１に記載の方法。
【請求項３３】
前記第２のトラックが、前記第１のトラック中に含まれていない１つまたは複数のＮＡＬユニットをさらに備え、前記方法が、前記第２のトラックの前記１つまたは複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送ることをさらに備える、請求項３１に記載の方法。
【請求項３４】
前記ビデオファイルが、符号化されたビデオデータに対応する複数のＮＡＬユニットを含む第３のトラックをさらに備え、前記方法が、前記第３のトラックの前記複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送ることをさらに備える、請求項３１に記載の方法。
【請求項３５】
ビデオデータを復号するための装置であって、前記装置が、
ビデオデータを復号するように構成されたビデオデコーダと、
国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイルを受信することであって、前記ビデオファイルが第１のトラックと第２のトラックとを備え、前記第１のトラックが、符号化されたビデオデータに対応する複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含み、前記ビデオサンプルがアクセスユニット中に含まれ、前記第２のトラックが、複数のエクストラクタを含み、前記複数のエクストラクタは、前記第１のトラックの複数のＮＡＬユニットを識別するエクストラクタを含み、前記識別された複数のＮＡＬユニットは、前記第１のトラックの前記ＮＡＬユニットのうちの第１の識別されたＮＡＬユニットと、前記アクセスユニットの第２の識別されたＮＡＬユニットを含み、ここにおいて、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続であり、前記エクストラクタは、第１のＮＡＬユニットと第２のＮＡＬユニットを識別する、受信するように構成されたデマルチプレクサとを備え、前記デマルチプレクサは、復号されるべき前記第２のトラックを選択することと、前記第２のトラックの前記エクストラクタによって識別された前記第１のＮＡＬユニットおよび前記第２のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送ることとを行うようにさらに構成される、装置。
【請求項３６】
前記デマルチプレクサが、前記第２のトラックの前記エクストラクタによって識別されない前記第１のトラックの前記複数のＮＡＬユニットの各々を廃棄するように構成された、請求項３５に記載の装置。
【請求項３７】
前記第２のトラックが、前記第１のトラック中に含まれていない１つまたは複数のＮＡＬユニットをさらに備え、前記デマルチプレクサが、前記第２のトラックの前記１つまたは複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送るように構成された、請求項３５に記載の装置。
【請求項３８】
前記ビデオファイルが、符号化されたビデオデータに対応する複数のＮＡＬユニットを含む第３のトラックをさらに備え、前記デマルチプレクサが、前記第３のトラックの前記複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送るように構成された、請求項３５に記載の装置。
【請求項３９】
ビデオデータを復号するための装置であって、前記装置が、
国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイルを受信するための手段であって、前記ビデオファイルが第１のトラックと第２のトラックとを備え、前記第１のトラックが、符号化されたビデオデータに対応する複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含み、前記ビデオサンプルがアクセスユニット中に含まれ、前記第２のトラックが、複数のエクストラクタを含み、前記複数のエクストラクタは、前記第１のトラックの複数のＮＡＬユニットを識別するエクストラクタを含み、前記識別された複数のＮＡＬユニットは、前記第１のトラックの前記ＮＡＬユニットのうちの第１の識別されたＮＡＬユニットと、前記アクセスユニットの第２の識別されたＮＡＬユニットを含み、ここにおいて、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続であり、前記エクストラクタは、第１のＮＡＬユニットと第２のＮＡＬユニットを識別する、受信するための手段と、
復号されるべき前記第２のトラックを選択するための手段と、
前記第２のトラックの前記エクストラクタによって識別された前記第１のＮＡＬユニットおよび前記第２のＮＡＬユニットの符号化されたビデオデータを前記装置のビデオデコーダに送るための手段と
を備える、装置。
【請求項４０】
前記第２のトラックの前記エクストラクタによって識別されない前記第１のトラックの前記複数のＮＡＬユニットの各々を廃棄するための手段をさらに備える、請求項３９に記載の装置。
【請求項４１】
前記第２のトラックが、前記第１のトラック中に含まれていない１つまたは複数のＮＡＬユニットをさらに備え、前記装置が、前記第２のトラックの前記１つまたは複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送るための手段をさらに備える、請求項３９に記載の装置。
【請求項４２】
前記ビデオファイルが、符号化されたビデオデータに対応する複数のＮＡＬユニットを含む第３のトラックをさらに備え、前記装置が、前記第３のトラックの前記複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送るための手段をさらに備える、請求項３９に記載の装置。
【請求項４３】
実行されると、
国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイルを受信したとき、復号されるべき前記第２のトラックを選択することであって、前記ビデオファイルが第１のトラックと第２のトラックとを備え、前記第１のトラックが、符号化されたビデオデータに対応する複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含み、前記ビデオサンプルがアクセスユニット中に含まれ、前記第２のトラックが、複数のエクストラクタを含み、前記複数のエクストラクタは、前記第１のトラックの複数のＮＡＬユニットを識別するエクストラクタを含み、前記識別された複数のＮＡＬユニットは、前記第１のトラックの前記ＮＡＬユニットのうちの第１の識別されたＮＡＬユニットと、前記アクセスユニットの第２の識別されたＮＡＬユニットを含み、ここにおいて、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続であり、前記エクストラクタは、第１のＮＡＬユニットと第２のＮＡＬユニットを識別する、前記第２のトラックを選択することと、
前記第２のトラックの前記エクストラクタによって識別された前記第１のＮＡＬユニットおよび前記第２のＮＡＬユニットの符号化されたビデオデータをビデオデコーダに送ることと
をプロセッサに行わせる命令を備えるコンピュータ可読記憶媒体。
【請求項４４】
前記第２のトラックの前記エクストラクタによって識別されない前記第１のトラックの前記複数のＮＡＬユニットの各々を廃棄することをさらに備える、請求項４３に記載のコンピュータ可読記憶媒体。
【請求項４５】
前記第２のトラックが、前記第１のトラック中に含まれていない１つまたは複数のＮＡＬユニットをさらに備え、前記方法が、前記第２のトラックの前記１つまたは複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送ることをさらに備える、請求項４３に記載のコンピュータ可読記憶媒体。
【請求項４６】
前記ビデオファイルが、符号化されたビデオデータに対応する複数のＮＡＬユニットを含む第３のトラックをさらに備え、前記方法が、前記第３のトラックの前記複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送ることをさらに備える、請求項４３に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、それぞれの内容全体が参照により本明細書に組み込まれる、２００９年９月１６日に出願された米国仮出願第６１／２４３，０３０号、２００９年９月２２日に出願された米国仮出願第６１／２４４，８２７号、２０１０年１月１１日に出願された米国仮出願第６１／２９３，９６１号、および２０１０年１月１５日に出願された米国仮出願第６１／２９５，２６１号の利益を主張する。
【０００２】
本開示は、符号化ビデオデータのトランスポートに関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３またはＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、およびそのような規格の拡張によって定義された規格に記載されているビデオ圧縮技法などのビデオ圧縮技法を実装して、デジタルビデオ情報をより効率的に送信および受信する。
【０００４】
ビデオ圧縮技法では、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を実行する。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスがマクロブロックに区分され得る。各マクロブロックはさらに区分され得る。イントラコード化（Ｉ）フレームまたはスライス中のマクロブロックは、近傍マクロブロックに関する空間的予測を使用して符号化される。インターコード化（ＰまたはＢ）フレームまたはスライス中のマクロブロックは、同じフレームまたはスライス中の近傍マクロブロックに関する空間的予測、あるいは他の参照フレームに関する時間的予測を使用し得る。
【０００５】
ビデオデータが符号化された後、ビデオデータは送信または記憶のためにマルチプレクサによってパケット化され得る。ＭＰＥＧ−２は、多くのビデオ符号化規格のためのトランスポートレベルを定義する「システム」セクションを含む。ＭＰＥＧ−２トランスポートレベルシステムは、ＭＰＥＧ−２ビデオエンコーダ、または異なるビデオ符号化規格に準拠する他のビデオエンコーダによって使用され得る。たとえば、ＭＰＥＧ−４は、ＭＰＥＧ−２の符号化および復号方法とは異なる符号化および復号方法を規定しているが、ＭＰＥＧ−４規格の技法を実装するビデオエンコーダは、依然としてＭＰＥＧ−２トランスポートレベル方法を利用し得る。概して、「ＭＰＥＧ−２システム」への言及は、ＭＰＥＧ−２によって規定されているビデオデータのトランスポートレベルを指す。本開示では、ＭＰＥＧ−２によって規定されているトランスポートレベルは、「ＭＰＥＧ−２トランスポートストリーム」または単に「トランスポートストリーム」とも呼ばれる。同様に、ＭＰＥＧ−２システムのトランスポートレベルはプログラムストリームをも含む。トランスポートストリームおよびプログラムストリームは、概して、同様のデータを配信するための異なるフォーマットを含み、トランスポートストリームは、オーディオデータとビデオデータの両方を含む１つまたは複数の「プログラム」を備え、プログラムストリームは、オーディオデータとビデオデータの両方を含む１つのプログラムを含む。
【０００６】
Ｈ．２６４／ＡＶＣに基づく新しいビデオコーディング規格を開発するための取り組みが行われている。１つのそのような規格は、Ｈ．２６４／ＡＶＣのスケーラブル拡張であるスケーラブルビデオコーディング（ＳＶＣ）規格である。別の規格は、Ｈ．２６４／ＡＶＣのマルチビュー拡張になるマルチビュービデオコーディング（ＭＶＣ）である。ＭＰＥＧ−２システム仕様には、デジタル送信または記憶に好適な単一のデータストリームを形成するために、圧縮マルチメディア（ビデオおよびオーディオ）データストリームが他のデータとともにどのように多重化され得るかが記載されている。ＭＰＥＧ−２システムの最新仕様は、「Information Technology - Generic Coding of Moving Pictures and Associated Audio: Systems, Recommendation H.222.0; International Organisation for Standardisation, ISO/IEC JTC1/SC29/WG11; Coding of Moving Pictures and Associated Audio」、２００６年５月、において規定されている。ＭＰＥＧは、最近、ＭＰＥＧ−２システム上でのＭＶＣのトランスポート規格を設計しており、この仕様の最新バージョンは、「Study of ISO/IEC 13818-1:2007/FPDAM4 Transport of MVC」、ＭＰＥＧ  ｄｏｃ．  Ｎ１０５７２、ＭＰＥＧ  ｏｆ  ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１、米国ハワイ州マウイ、２００９年４月である。
【０００７】
ＭＶＣの最新の共同ドラフトは、http://wftp3.itu.int/av-arch/jvt-site/2008_07_Hannover/JVT-AB204.zipにおいて入手可能な、ＪＶＴ−ＡＢ２０４、「Joint Draft 8.0 on Multiview Video Coding」、第２８回ＪＶＴ会議、ドイツ、ハノーバー、２００８年７月に記載されている。ＡＶＣ規格に組み込まれた以後のバージョンは、http://wftp3.itu.int/av-arch/jvt-site/2009_01_Geneva/JVT-AD007.zipにおいて入手可能な、ＪＶＴ−ＡＤ００７、「Editors' draft revision to ITU-T Rec. H.264 | ISO/IEC 14496-10 Advanced Video Coding - in preparation for ITU-T SG 16 AAP Consent (in integrated form)」、第３０回ＪＶＴ会議、スイス、ジュネーブ、２００９年２月に記載されている。
【発明の概要】
【０００８】
概して、本開示は、メディアエクストラクタトラックを形成するために、マルチトラックビデオデータフォーマットにおいてメディアエクストラクタを使用するための技法について説明する。本開示は、１つまたは複数の潜在的に非連続のネットワークアクセスレイヤ（ＮＡＬ）ユニットを参照することが可能であるエクストラクタを利用するために、国際標準化機構（ＩＳＯ）ベースメディアフォーマットを変更する。そのようなエクストラクタは、ＩＳＯベースメディアフォーマットファイルの任意のトラック中に存在し得る。本開示はまた、フレームレート値をトラック選択ボックスの属性として含めるための、第３世代パートナーシッププロジェクト（３ＧＰＰ）ファイルフォーマットの変更について説明する。本開示は、ＩＳＯベースメディアフォーマットへのマルチビュービデオコーディング（ＭＶＣ）拡張に関して、ＭＶＣ動作点の効率的な抽出をサポートするエクストラクタの使用についてさらに説明する。
【０００９】
一例では、ビデオデータを符号化するための方法が、ソースビデオデバイスによって、符号化されたビデオデータに基づいて、複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含む第１のトラックを構築することであって、ビデオサンプルがアクセスユニット中に含まれる、第１のトラックを構築することと、ソースビデオデバイスによって、第１のトラックのビデオサンプル中の複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含む第２のトラックを構築することであって、複数のＮＡＬユニットのうちの少なくとも１つが第１の識別されたＮＡＬユニットを備え、エクストラクタがアクセスユニットの第２のＮＡＬユニットを識別し、第１の識別されたＮＡＬユニットと第２の識別されたＮＡＬユニットとが非連続である、第２のトラックを構築することと、第１のトラックと第２のトラックとを、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイル中に含めることと、ビデオファイルを出力することとを含む。
【００１０】
別の例では、ビデオデータを符号化するための装置が、ビデオデータを符号化するように構成されたエンコーダと、符号化されたビデオデータに基づいて、複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含む第１のトラックを構築することであって、ビデオサンプルがアクセスユニット中に含まれる、第１のトラックを構築することと、第１のトラックのビデオサンプル中の複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含む第２のトラックを構築することであって、複数のＮＡＬユニットのうちの少なくとも１つが第１の識別されたＮＡＬユニットを備え、エクストラクタがアクセスユニットの第２のＮＡＬユニットを識別し、第１の識別されたＮＡＬユニットと第２の識別されたＮＡＬユニットとが非連続である、第２のトラックを構築することと、第１のトラックと第２のトラックとを、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイル中に含めることとを行うように構成されたマルチプレクサと、ビデオファイルを出力するように構成された出力インターフェースとを含む。
【００１１】
別の例では、ビデオデータを符号化するための装置が、符号化されたビデオデータに基づいて、複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含む第１のトラックを構築するための手段であって、ビデオサンプルがアクセスユニット中に含まれる、第１のトラックを構築するための手段と、第１のトラックのビデオサンプル中の複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含む第２のトラックを構築するための手段であって、複数のＮＡＬユニットのうちの少なくとも１つが第１の識別されたＮＡＬユニットを備え、エクストラクタがアクセスユニットの第２のＮＡＬユニットを識別し、第１の識別されたＮＡＬユニットと第２の識別されたＮＡＬユニットとが非連続である、第２のトラックを構築するための手段と、第１のトラックと第２のトラックとを、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイル中に含めるための手段と、ビデオファイルを出力するための手段とを含む。
【００１２】
別の例では、コンピュータ可読記憶媒体が、実行されると、符号化されたビデオデータに基づいて、複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含む第１のトラックを構築することであって、ビデオサンプルがアクセスユニット中に含まれる、第１のトラックを構築することと、第１のトラックのビデオサンプル中の複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含む第２のトラックを構築することであって、複数のＮＡＬユニットのうちの少なくとも１つが第１の識別されたＮＡＬユニットを備え、エクストラクタがアクセスユニットの第２のＮＡＬユニットを識別し、第１の識別されたＮＡＬユニットと第２の識別されたＮＡＬユニットとが非連続である、第２のトラックを構築することと、第１のトラックと第２のトラックとを、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイル中に含めることと、ビデオファイルを出力することとをソースデバイスのプロセッサに行わせる命令を備える。
【００１３】
別の例では、ビデオデータを復号するための方法が、宛先デバイスのデマルチプレクサによって、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイルを受信することであって、ビデオファイルが第１のトラックと第２のトラックとを備え、第１のトラックが、符号化されたビデオデータに対応する複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含み、ビデオサンプルがアクセスユニット中に含まれ、第２のトラックが、第１のトラックの複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含み、複数のＮＡＬユニットのうちの少なくとも１つが第１の識別されたＮＡＬユニットを備え、エクストラクタがアクセスユニットの第２のＮＡＬユニットを識別し、第１の識別されたＮＡＬユニットと第２の識別されたＮＡＬユニットとが非連続である、受信することと、復号されるべき第２のトラックを選択することと、第２のトラックのエクストラクタによって識別された第１のＮＡＬユニットおよび第２のＮＡＬユニットの符号化されたビデオデータを宛先デバイスのビデオデコーダに送ることとを含む。
【００１４】
別の例では、ビデオデータを復号するための装置が、ビデオデータを復号するように構成されたビデオデコーダと、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイルを受信することであって、ビデオファイルが第１のトラックと第２のトラックとを備え、第１のトラックが、符号化されたビデオデータに対応する複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含み、ビデオサンプルがアクセスユニット中に含まれ、第２のトラックが、第１のトラックの複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含み、複数のＮＡＬユニットのうちの少なくとも１つが第１の識別されたＮＡＬユニットを備え、エクストラクタがアクセスユニットの第２のＮＡＬユニットを識別し、第１の識別されたＮＡＬユニットと第２の識別されたＮＡＬユニットとが非連続である、受信することと、復号されるべき第２のトラックを選択することと、第２のトラックのエクストラクタによって識別された第１のＮＡＬユニットおよび第２のＮＡＬユニットの符号化されたビデオデータをビデオデコーダに送ることとを行うように構成されたデマルチプレクサとを含む。
【００１５】
別の例では、ビデオデータを復号するための装置が、宛先デバイスのデマルチプレクサによって、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイルを受信するための手段であって、ビデオファイルが第１のトラックと第２のトラックとを備え、第１のトラックが、符号化されたビデオデータに対応する複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含み、ビデオサンプルがアクセスユニット中に含まれ、第２のトラックが、第１のトラックの複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含み、複数のＮＡＬユニットのうちの少なくとも１つが第１の識別されたＮＡＬユニットを備え、エクストラクタがアクセスユニットの第２のＮＡＬユニットを識別し、第１の識別されたＮＡＬユニットと第２の識別されたＮＡＬユニットとが非連続である、受信するための手段と、復号されるべき第２のトラックを選択するための手段と、第２のトラックのエクストラクタによって識別された第１のＮＡＬユニットおよび第２のＮＡＬユニットの符号化されたビデオデータを宛先デバイスのビデオデコーダに送るための手段とを含む。
【００１６】
別の例では、コンピュータ可読記憶媒体が、実行されると、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイルを受信したとき、復号されるべき第２のトラックを選択することであって、ビデオファイルが第１のトラックと第２のトラックとを備え、第１のトラックが、符号化されたビデオデータに対応する複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含み、ビデオサンプルがアクセスユニット中に含まれ、第２のトラックが、第１のトラックの複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含み、複数のＮＡＬユニットのうちの少なくとも１つが第１の識別されたＮＡＬユニットを備え、エクストラクタがアクセスユニットの第２のＮＡＬユニットを識別し、第１の識別されたＮＡＬユニットと第２の識別されたＮＡＬユニットとが非連続である、第２のトラックを選択することと、第２のトラックのエクストラクタによって識別された第１のＮＡＬユニットおよび第２のＮＡＬユニットの符号化されたビデオデータをビデオデコーダに送ることとを宛先デバイスのプロセッサに行わせる命令で符号化される。
【００１７】
１つまたは複数の例の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１８】
【図１】オーディオ／ビデオ（Ａ／Ｖ）ソースデバイスがオーディオおよびビデオデータをＡ／Ｖ宛先デバイスにトランスポートする例示的なシステムを示すブロック図。
【図２】マルチプレクサの構成要素の例示的な構成を示すブロック図。
【図３】ビデオサンプルのセットを有する第１のトラックと、第１のトラックのビデオサンプルのサブセットを参照するエクストラクタを有する第２のトラックとを含む例示的なファイルを示すブロック図。
【図４】２つの別個のエクストラクタトラックを含む別の例示的なファイルを示すブロック図。
【図５】サブセットトラックと２つのメディアエクストラクタトラックとを含む別の例示的なファイルを示すブロック図。
【図６Ａ】様々なメディアエクストラクタトラックのためのメディアエクストラクタの例を含むファイルのメディアデータボックスの例を示すブロック図。
【図６Ｂ】様々なメディアエクストラクタトラックのためのメディアエクストラクタの例を含むファイルのメディアデータボックスの例を示すブロック図。
【図６Ｃ】様々なメディアエクストラクタトラックのためのメディアエクストラクタの例を含むファイルのメディアデータボックスの例を示すブロック図。
【図７】例示的なＭＶＣ予測パターンを示す概念図。
【図８】メディアエクストラクタのためのデータ構造、および本開示の技法に従って使用され得る他のサポートするデータ構造の様々な例を示すブロック図。
【図９】メディアエクストラクタのためのデータ構造、および本開示の技法に従って使用され得る他のサポートするデータ構造の様々な例を示すブロック図。
【図１０】メディアエクストラクタのためのデータ構造、および本開示の技法に従って使用され得る他のサポートするデータ構造の様々な例を示すブロック図。
【図１１】メディアエクストラクタのためのデータ構造、および本開示の技法に従って使用され得る他のサポートするデータ構造の様々な例を示すブロック図。
【図１２】メディアエクストラクタのためのデータ構造、および本開示の技法に従って使用され得る他のサポートするデータ構造の様々な例を示すブロック図。
【図１３】メディアエクストラクタのためのデータ構造、および本開示の技法に従って使用され得る他のサポートするデータ構造の様々な例を示すブロック図。
【図１４】メディアエクストラクタのためのデータ構造、および本開示の技法に従って使用され得る他のサポートするデータ構造の様々な例を示すブロック図。
【図１５】メディアエクストラクタのためのデータ構造、および本開示の技法に従って使用され得る他のサポートするデータ構造の様々な例を示すブロック図。
【図１６】メディアエクストラクタのためのデータ構造、および本開示の技法に従って使用され得る他のサポートするデータ構造の様々な例を示すブロック図。
【図１７】メディアエクストラクタのためのデータ構造、および本開示の技法に従って使用され得る他のサポートするデータ構造の様々な例を示すブロック図。
【図１８】メディアエクストラクタのためのデータ構造、および本開示の技法に従って使用され得る他のサポートするデータ構造の様々な例を示すブロック図。
【図１９】メディアエクストラクタのためのデータ構造、および本開示の技法に従って使用され得る他のサポートするデータ構造の様々な例を示すブロック図。
【図２０】メディアエクストラクタのためのデータ構造、および本開示の技法に従って使用され得る他のサポートするデータ構造の様々な例を示すブロック図。
【図２１】メディアエクストラクタのためのデータ構造、および本開示の技法に従って使用され得る他のサポートするデータ構造の様々な例を示すブロック図。
【図２２】トラック選択ボックスの追加の属性をシグナリングする例示的な変更された第３世代パートナーシッププロジェクト（３ＧＰＰ）トラック選択ボックスを示すブロック図。
【図２３】本開示の技法による、メディアエクストラクタを使用するための例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１９】
本開示の技法は、一般に、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットと、ＩＳＯベースメディアファイルフォーマットの拡張とを向上させることを対象とする。ＩＳＯベースメディアファイルフォーマットの拡張は、たとえば、アドバンストビデオコーディング（ＡＶＣ）、スケーラブルビデオコーディング（ＳＶＣ：scalable video coding）、マルチビュービデオコーディング（ＭＶＣ：multiview video coding）、および第３世代パートナーシッププロジェクト（３ＧＰＰ：Third Generation Partnership Project）ファイルフォーマットを含む。概して、本開示の技法は、ＩＳＯベースメディアファイルフォーマットおよび／またはＩＳＯベースメディアファイルフォーマットの拡張でメディアエクストラクタトラックを生成するために使用され得る。以下でより詳細に説明するように、そのようなメディアエクストラクタトラックは、いくつかの例では、ハイパーテキストトランスポートプロトコル（ＨＴＴＰ）ビデオストリーミングにおける適応をサポートするために使用され得る。いくつかの例では、メディアエクストラクタは、新しいメディアエクストラクタトラックを形成するための別のトラックのサンプル全体を抽出するために、ＩＳＯベースメディアファイルフォーマットおよび／またはＩＳＯベースメディアファイルフォーマットの拡張（たとえば、ＡＶＣ、ＳＶＣ、ＭＶＣ、および３ＧＰＰ）の一部を形成する。
【００２０】
これらの技法は、ＭＰＥＧ−２（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）システム、すなわち、トランスポートレベル細部に関してＭＰＥＧ−２に準拠するシステムによって使用され得る。ＭＰＥＧ−４は、たとえば、ビデオ符号化のための規格を与えるが、概して、ＭＰＥＧ−４規格に準拠するビデオエンコーダはＭＰＥＧ−２トランスポートレベルシステムを利用すると仮定する。したがって、本開示の技法は、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、あるいはＭＰＥＧ−２トランスポートストリームおよび／またはプログラムストリームを利用する任意の他のビデオ符号化規格に準拠するビデオエンコーダに適用可能である。
【００２１】
ＩＳＯベースメディアファイルフォーマットは、１つまたは複数のトラックを含むファイルを規定している。ＩＳＯベースメディアファイルフォーマット規格は、関連するサンプルの時限シーケンスとしてトラックを定義している。ＩＳＯベースメディアファイルフォーマット規格は、単一のタイムスタンプに関連するデータとしてサンプルを定義し、ビデオの個々のフレーム、復号順序での一連のビデオフレーム、または復号順序でのオーディオの圧縮セクションとしてサンプルの例を与えている。ヒントトラックと呼ばれる特殊なトラックは、メディアデータを含んでいないが、代わりに１つまたは複数のトラックをストリーミングチャネルにパッケージングするための命令を含んでいる。ＩＳＯベースメディアファイルフォーマット規格は、ヒントトラックにおいて、サンプルが１つまたは複数のストリーミングパケットの形成を定義することに言及している。
【００２２】
本開示の技法は、メディアエクストラクタトラックの生成を可能にする。メディアエクストラクタトラックは、概して１つまたは複数のエクストラクタを含み得る。メディアエクストラクタトラック中のエクストラクタは、別のトラックのサンプルを識別し、抽出するために使用される。このようにして、メディアエクストラクタトラック中のメディアエクストラクタは、デリファレンスされたときに、別のトラックからサンプルを検索するポインタと考えられ得る。ＳＶＣのエクストラクタとは異なり、たとえば、本開示のエクストラクタは、別のトラックの１つまたは複数の潜在的な非連続ネットワークアクセスレイヤ（ＮＡＬ）ユニットを参照することができる。本開示の技法によれば、代替グループを形成するために、メディアエクストラクタトラック、１つまたは複数のメディアエクストラクタを含んでいるトラック、およびメディアエクストラクタを含まない他のトラックが互いにグループ化され得る。
【００２３】
本開示では、同じトラック中で連続して発生する２つ以上のＮＡＬユニットを説明するために、ＮＡＬユニットに関して「連続する」という用語を使用する。すなわち、２つのＮＡＬユニットが連続するとき、そのＮＡＬユニットのうちの１つにおけるデータの最後のバイトは、同じトラック中の別のＮＡＬユニットのデータの第１のバイトの直前にくる。同じアクセスユニット中の２つのＮＡＬユニットは、概して、２つのＮＡＬユニットが同じトラック内で、あるデータ量だけ分離されている場合、または一方のＮＡＬユニットが１つのトラック中に発生し、他方のＮＡＬユニットが異なるトラック中に発生する場合のいずれかにおいて、「非連続である」と考えられる。本開示の技法は、アクセスユニットの２つ以上の非連続ＮＡＬユニットを識別し得るエクストラクタを提供する。
【００２４】
その上、本開示のエクストラクタは、ＳＶＣに限定されないが、概してＩＳＯベースメディアファイルフォーマット、または、たとえば、ＡＶＣ、ＳＶＣ、またはＭＶＣなどのＩＳＯベースメディアファイルフォーマットの他の拡張中に含まれ得る。本開示のエクストラクタはまた、第３世代パートナーシッププロジェクト（３ＧＰＰ）ファイルフォーマット中に含まれ得る。本開示は、さらに、トラック選択ボックスの属性としてフレームレートを明示的にシグナリングするために、３ＧＰＰファイルフォーマットを変更することを可能にする。
【００２５】
メディアエクストラクタトラックは、たとえば、動作点の抽出をサポートするためにＭＶＣファイルフォーマット中で使用され得る。サーバデバイスは、ＭＰＥＧ−２トランスポートレイヤビットストリーム中に様々な動作点を与え得、その各々はマルチビュービデオコーディングビデオデータの特定のビューのそれぞれのサブセットに対応する。すなわち、動作点は、概して、ビットストリームのビューのサブセットに対応する。いくつかの例では、動作点の各ビューは、同じフレームレートのビデオデータを含む。本開示の技法によれば、動作点は、他のトラックのビデオデータと、他のトラック中に含まれない潜在的に追加のサンプルとを参照する１つまたは複数のエクストラクタを含むメディアエクストラクタトラックを使用して表され得る。
【００２６】
このようにして、各動作点は、共通のフレームレートをもつビューのサブセットを出力するために、動作点を復号するために要求される必要なＮＡＬユニットのみを含み得る。エクストラクタトラックとＭＶＣビデオの全表現との組合せは、ＭＶＣ表現のプレイリストを形成し得る。本開示のメディアエクストラクタトラックの使用は、たとえば、様々なビットレートが時間スケーラビリティから生じる動作点について、動作点選択およびスイッチングをサポートし得る。
【００２７】
また、本開示のメディアエクストラクタトラックは、代替グループまたはスイッチグループを形成するために使用され得る。すなわち、ＩＳＯベースメディアファイルフォーマットでは、代替グループを形成するために、トラックが互いにグループ化され得る。ＩＳＯベースメディアファイルフォーマットの例では、代替グループのトラックは、概して、いつでも代替グループのトラックのうちの１つしか再生またはストリーミングされないように、互いの存立可能な代替を形成する。代替グループのトラックは、たとえば、ビットレート、コーデック、言語、パケットサイズ、または他の特性などの属性を介して、代替グループの他のトラックとは区別可能であるべきである。本開示の技法は、代替グループを形成するために、メディアエクストラクタトラック、メディアエクストラクタを含んでいるトラック、および／または他の通常のビデオトラックをグループ化することを可能にする。ＭＶＣに準拠する例では、各トラックはそれぞれの動作点に対応し得る。すなわち、ＭＶＣにおける各動作点は、トラックのうちの特定の１つ、たとえば、メディアエクストラクタトラック、またはメディアエクストラクタを含まないトラックのいずれかによって表され得る。同じ代替グループ中の１つのトラックは、一般に、利用可能な帯域幅に適応するために、プログレッシブダウンロードのために選択される。
【００２８】
同様に、メディアエクストラクタトラックおよび他のトラックは、３ＧＰＰファイルフォーマットでのスイッチグループを形成するために互いにグループ化され得、ＨＴＴＰストリーミングアプリケーションにおいて帯域幅とデコーダ能力とを適応するためのトラック選択のために使用され得る。３ＧＰＰファイルフォーマットは、トラックのスイッチグループの定義を与える。スイッチグループ中のトラックは同じ代替グループに属する。すなわち、３ＧＰＰファイルフォーマットによれば、同じスイッチグループ中のトラックは、セッション中に切り替えるために利用可能であるが、異なるスイッチグループ中のトラックは、切り替えるために利用可能ではない。
【００２９】
図１は、オーディオ／ビデオ（Ａ／Ｖ）ソースデバイス２０がオーディオおよびビデオデータをＡ／Ｖ宛先デバイス４０にトランスポートする例示的なシステム１０を示すブロック図である。Ａ／Ｖソースデバイス２０は「ソースビデオデバイス」と呼ばれることもある。図１のシステム１０は、ビデオ通信会議システム、サーバ／クライアントシステム、放送事業者／受信機システム、またはＡ／Ｖソースデバイス２０などのソースデバイスからＡ／Ｖ宛先デバイス４０などの宛先デバイスにビデオデータが送られる任意の他のシステムに対応し得る。Ａ／Ｖ宛先デバイス４０は、「宛先ビデオデバイス」または「クライアントデバイス」と呼ばれることもある。いくつかの例では、Ａ／Ｖソースデバイス２０およびＡ／Ｖ宛先デバイス４０は双方向情報交換を実行し得る。すなわち、Ａ／Ｖソースデバイス２０およびＡ／Ｖ宛先デバイス４０は、オーディオおよびビデオデータの符号化と復号（および、送信と受信）の両方が可能であり得る。いくつかの例では、オーディオエンコーダ２６は、ボコーダとも呼ばれるボイスエンコーダを備え得る。
【００３０】
Ａ／Ｖソースデバイス２０は、図１の例では、オーディオソース２２とビデオソース２４とを備える。オーディオソース２２は、たとえば、オーディオエンコーダ２６によって符号化されるべき、キャプチャされたオーディオデータを表す電気信号を生成するマイクロフォンを備え得る。代替的に、オーディオソース２２は、前に記録されたオーディオデータを記憶する記憶媒体、コンピュータシンセサイザなどのオーディオデータジェネレータ、またはオーディオデータの任意の他のソースを備え得る。ビデオソース２４は、ビデオエンコーダ２８によって符号化されるべきビデオデータを生成するビデオカメラ、前に記録されたビデオデータで符号化された記憶媒体、ビデオデータ生成ユニット、またはビデオデータの任意の他のソースを備え得る。
【００３１】
未加工オーディオおよびビデオデータは、アナログまたはデジタルデータを備え得る。アナログデータは、オーディオエンコーダ２６および／またはビデオエンコーダ２８によって符号化される前にデジタル化され得る。オーディオソース２２は、通話参加者が話している間、通話参加者からオーディオデータを取得し得、同時に、ビデオソース２４は、通話参加者のビデオデータを取得し得る。他の例では、オーディオソース２２は、記憶されたオーディオデータを備えるコンピュータ可読記憶媒体を備え得、ビデオソース２４は、記憶されたビデオデータを備えるコンピュータ可読記憶媒体を備え得る。このようにして、本開示で説明する技法は、ライブ、ストリーミング、リアルタイムオーディオおよびビデオデータ、またはアーカイブされた、あらかじめ記録されたオーディオおよびビデオデータに適用され得る。
【００３２】
ビデオフレームに対応するオーディオフレームは、概して、ビデオフレーム内に含まれている、ビデオソース２４によってキャプチャされたビデオデータと同時にオーディオソース２２によってキャプチャされたオーディオデータを含んでいるオーディオフレームである。たとえば、通話参加者が概して話すことによってオーディオデータを生成する間、オーディオソース２２はオーディオデータをキャプチャし、同時に、すなわちオーディオソース２２がオーディオデータをキャプチャしている間、ビデオソース２４は通話参加者のビデオデータをキャプチャする。したがって、オーディオフレームは、１つまたは複数の特定のビデオフレームに時間的に対応し得る。したがって、ビデオフレームに対応するオーディオフレームは、概して、オーディオデータとビデオデータとが同時にキャプチャされる状況、およびオーディオフレームとビデオフレームとが、それぞれ、同時にキャプチャされたオーディオデータとビデオデータとを備える状況に対応する。
【００３３】
いくつかの例では、オーディオエンコーダ２６は、符号化オーディオフレームのオーディオデータが記録された時間を表す、各符号化オーディオフレームにおけるタイムスタンプを符号化し得、同様に、ビデオエンコーダ２８は、符号化ビデオフレームのビデオデータが記録された時間を表す、各符号化ビデオフレームにおけるタイムスタンプを符号化し得る。そのような例では、ビデオフレームに対応するオーディオフレームは、タイムスタンプを備えるオーディオフレームと同じタイムスタンプを備えるビデオフレームとを備え得る。Ａ／Ｖソースデバイス２０は、オーディオエンコーダ２６および／またはビデオエンコーダ２８がそこからタイムスタンプを生成し得るか、あるいはオーディオソース２２およびビデオソース２４がオーディオおよびビデオデータをそれぞれタイムスタンプに関連付けるために使用し得る、内部クロックを含み得る。
【００３４】
いくつかの例では、オーディオソース２２は、オーディオデータが記録された時間に対応するデータをオーディオエンコーダ２６に送り得、ビデオソース２４は、ビデオデータが記録された時間に対応するデータをビデオエンコーダ２８に送り得る。いくつかの例では、オーディオエンコーダ２６は、必ずしもオーディオデータが記録された絶対時刻を示すことなしに、符号化されたオーディオデータの相対的時間順序を示すために、符号化されたオーディオデータ中のシーケンス識別子を符号化し得、同様に、ビデオエンコーダ２８も、符号化されたビデオデータの相対的時間順序を示すためにシーケンス識別子を使用し得る。同様に、いくつかの例では、シーケンス識別子は、タイムスタンプにマッピングされるか、または場合によってはタイムスタンプと相関し得る。
【００３５】
本開示の技法は、概して、符号化マルチメディア（たとえば、オーディオおよびビデオ）データのトランスポートと、トランスポートされたマルチメディアデータの受信ならびに後続の解釈および復号とを対象とする。本開示の技法は、たとえば、スケーラブルビデオコーディング（ＳＶＣ）、アドバンストビデオコーディング（ＡＶＣ）、ＯＳＩベースレイヤ、あるいはマルチビュービデオコーディング（ＭＶＣ）データ、または複数のビューを備える他のビデオデータなど、様々な規格および拡張のビデオデータのトランスポートに適用され得る。図１の例に示すように、ビデオソース２４はシーンの複数のビューをビデオエンコーダ２８に与え得る。ビデオデータの複数のビューは、立体視または自動立体視３次元ディスプレイなど、３次元ディスプレイによって使用されるべき３次元ビデオデータを生成するために有用であり得る。
【００３６】
Ａ／Ｖソースデバイス２０は、Ａ／Ｖ宛先デバイス４０に「サービス」を提供し得る。サービスは、概して、ＭＶＣデータの利用可能なビューのサブセットに対応する。たとえば、マルチビュービデオデータは、０から７まで順序付けられた８つのビューについて利用可能であり得る。１つのサービスは２つビューを有するステレオビデオに対応し得るが、別のサービスは４つのビューに対応し得、さらに別のサービスは８つのビューすべてに対応し得る。概して、サービスは、利用可能なビューの任意の組合せ（すなわち、任意のサブセット）に対応する。サービスはまた、利用可能なビューならびにオーディオデータの組合せに対応し得る。
【００３７】
Ａ／Ｖソースデバイス２０は、本開示の技法に従って、ビューのサブセットに対応するサービスを提供することができる。概して、ビューは、「ｖｉｅｗ＿ｉｄ」とも呼ばれるビュー識別子によって表される。ビュー識別子は、概して、ビューを識別するために使用され得るシンタックス要素を備える。ビューが符号化されるとき、ＭＶＣエンコーダはビューのｖｉｅｗ＿ｉｄを与える。ｖｉｅｗ＿ｉｄは、ＭＶＣデコーダによってビュー間予測（inter-view prediction）のために使用されるか、または他のユニットによって他の目的、たとえばレンダリングのために使用され得る。
【００３８】
ビュー間予測は、フレームのＭＶＣビデオデータを、共通の時間ロケーションにおける１つまたは複数のフレームを参照して、異なるビューの符号化フレームとして符号化するための技法である。以下でさらに詳細に説明する図７は、ビュー間予測のための例示的なコーディング方式を与えている。概して、ＭＶＣビデオデータの符号化フレームは、空間的に、時間的に、および／または共通の時間ロケーションにおける他のビューのフレームを参照して、予測符号化され得る。したがって、他のビューがそこから予測される参照ビューは、概して、参照ビューを復号するときに、復号された参照ビューが参照のために使用され得るように、参照ビューが参照として働くビューの前に復号される。復号順序は必ずしもｖｉｅｗ＿ｉｄの順序に対応しない。したがって、ビューの復号順序はビュー順序インデックスを使用して記述される。ビュー順序インデックスは、アクセスユニット中の対応するビュー構成要素の復号順序を示すインデックスである。
【００３９】
各個のデータストリームは（オーディオかビデオかにかかわらず）エレメンタリーストリームと呼ばれる。エレメンタリーストリームは、デジタル的にコード化された（場合によっては圧縮された）プログラムの単一の構成要素である。たとえば、プログラムのコード化ビデオまたはオーディオ部分はエレメンタリーストリームであり得る。エレメンタリーストリームは、プログラムストリームまたはトランスポートストリームに多重化される前に、パケット化エレメンタリーストリーム（ＰＥＳ）に変換され得る。同じプログラム内では、１つのエレメンタリーストリームに属するＰＥＳパケットを他のものから区別するためにストリームＩＤが使用される。エレメンタリーストリームの基本データ単位はパケット化エレメンタリーストリーム（ＰＥＳ）パケットである。したがって、ＭＶＣビデオデータの各ビューはそれぞれのエレメンタリーストリームに対応する。同様に、オーディオデータは１つまたは複数のそれぞれのエレメンタリーストリームに対応する。
【００４０】
ＭＶＣコード化ビデオシーケンスは、各々がエレメンタリーストリームであるいくつかのサブビットストリームに分離され得る。各サブビットストリームは、ＭＶＣ  ｖｉｅｗ＿ｉｄサブセットを使用して識別され得る。各ＭＶＣ  ｖｉｅｗ＿ｉｄサブセットの概念に基づいて、ＭＶＣビデオサブビットストリームが定義される。ＭＶＣビデオサブビットストリームは、ＭＶＣ  ｖｉｅｗ＿ｉｄサブセットに記載されているビューのＮＡＬユニットを含んでいる。プログラムストリームは、概して、エレメンタリーストリームのものであるＮＡＬユニットのみを含んでいる。それはまた、２つのエレメンタリーストリームが同じビューを含んでいることができないように設計されている。
【００４１】
図１の例では、マルチプレクサ３０は、ビデオエンコーダ２８からビデオデータを備えるエレメンタリーストリームを受信し、オーディオエンコーダ２６からオーディオデータを備えるエレメンタリーストリームを受信する。いくつかの例では、ビデオエンコーダ２８およびオーディオエンコーダ２６はそれぞれ、符号化データからＰＥＳパケットを形成するためのパケッタイザを含み得る。他の例では、ビデオエンコーダ２８およびオーディオエンコーダ２６はそれぞれ、符号化データからＰＥＳパケットを形成するためのパケッタイザとインターフェースし得る。さらに他の例では、マルチプレクサ３０は、符号化オーディオデータと符号化ビデオデータとからＰＥＳパケットを形成するためのパケッタイザを含み得る。
【００４２】
本開示で使用する「プログラム」は、オーディオデータとビデオデータの組合せ、たとえばＡ／Ｖソースデバイス２０のサービスによって配信されたオーディオエレメンタリーストリームと利用可能なビューのサブセットとを備え得る。各ＰＥＳパケットは、ＰＥＳパケットが属するエレメンタリーストリームを識別するｓｔｒｅａｍ＿ｉｄを含む。マルチプレクサ３０は、エレメンタリーストリームを構成プログラムストリームまたはトランスポートストリームにアセンブルし得る。プログラムストリームとトランスポートストリームとは、異なるアプリケーションをターゲットにする２つの代替多重である。
【００４３】
概して、プログラムストリームは１つのプログラムのデータを含み、トランスポートストリームは１つまたは複数のプログラムのデータを含み得る。マルチプレクサ３０は、提供されているサービス、ストリームが渡される媒体、送られるべきプログラムの数、または他の考慮事項に基づいて、プログラムストリームまたはトランスポートストリームのいずれかあるいは両方を符号化し得る。たとえば、記憶媒体中のビデオデータが符号化されるべきであるときは、マルチプレクサ３０はプログラムストリームを形成する可能性がより高くなり得、ビデオデータがネットワークを介してストリーミングされるか、ブロードキャストされるか、またはビデオテレフォニーの一部として送られるべきであるときは、マルチプレクサ３０はトランスポートストリームを使用する可能性がより高くなり得る。
【００４４】
マルチプレクサ３０は、デジタルストレージサービスからの単一のプログラムの記憶および表示のためにプログラムストリームを使用することのほうを優先してバイアスされ得る。プログラムストリームはむしろ誤りが起こりやすいので、プログラムストリームは、誤りのない環境、または誤りがより起こりにくい環境での使用を対象とする。プログラムストリームは、それに属するエレメンタリーストリームを備えるにすぎず、通常、可変長さのパケットを含んでいる。プログラムストリームでは、寄与しているエレメンタリーストリームから導出されたＰＥＳパケットが「パック」に編成される。パックは、パックヘッダと、随意のシステムヘッダと、寄与しているエレメンタリーストリームのいずれかから取られる任意の数のＰＥＳパケットとを任意の順序で備える。システムヘッダは、プログラムストリームの最大データレート、寄与しているビデオおよびオーディオエレメンタリーストリームの数、さらなるタイミング情報、または他の情報など、プログラムストリームの特性の概要を含んでいる。デコーダは、デコーダがプログラムストリームを復号することが可能か否かを判断するために、システムヘッダ中に含まれている情報を使用し得る。
【００４５】
マルチプレクサ３０は、潜在的に誤りを起こしやすいチャネルを介した複数のプログラムの同時配信のためにトランスポートストリームを使用し得る。トランスポートストリームは、単一のトランスポートストリームが多くの独立したプログラムに適応することができるように、ブロードキャストなどのマルチプログラムアプリケーションのために考案された多重である。トランスポートストリームはトランスポートパケットの連続を備え、トランスポートパケットの各々は長さ１８８バイトである。短い、固定長パケットの使用は、トランスポートストリームがプログラムストリームよりも誤りが起こりにくいことを意味する。さらに、各長さ１８８バイトのトランスポートパケットは、リードソロモン符号化などの標準誤り防止プロセスを通してパケットを処理することによって追加の誤り保護を与えられ得る。トランスポートストリームの誤り耐性の改善は、たとえば、ブロードキャスト環境において発見されるべき、誤りを起こしやすいチャネルを克服する可能性がより高いことを意味する。
【００４６】
トランスポートストリームは、その誤り耐性の向上と多くの同時プログラムを搬送する能力との２つの多重のうちのより良好な多重であるように見えることがある。ただし、トランスポートストリームは、プログラムストリームよりもさらに高度な多重であり、したがって、作成および多重分離することがより困難である。トランスポートパケットの最初のバイトは、０ｘ４７の値（１６進値４７、２進値「０１０００１１１」、１０進値７１）を有する同期バイトである。単一のトランスポートストリームは多くの異なるプログラムを搬送し得、各プログラムは多くのパケット化エレメンタリーストリームを備える。マルチプレクサ３０は、１つのエレメンタリーストリームのデータを含んでいるトランスポートパケットを、他のエレメンタリーストリームのデータを搬送しているものと区別するために１３ビットパケット識別子（ＰＩＤ）フィールドを使用し得る。各エレメンタリーストリームが一意のＰＩＤ値を与えられることを保証することは、マルチプレクサの責任である。トランスポートパケットの最後のバイトは連続性カウントフィールドである。マルチプレクサ３０は、同じエレメンタリーストリームに属する連続するトランスポートパケット間で連続性カウントフィールドの値を増分する。これは、Ａ／Ｖ宛先デバイス４０など、宛先デバイスのデコーダまたは他のユニットがトランスポートパケットの損失または利得を検出し、他の場合はそのようなイベントから生じ得る誤りを願わくは隠匿することを可能にする。
【００４７】
マルチプレクサ３０は、オーディオエンコーダ２６とビデオエンコーダ２８とからプログラムのエレメンタリーストリームのＰＥＳパケットを受信し、ＰＥＳパケットから対応するネットワークアブストラクションレイヤ（ＮＡＬ）ユニットを形成する。Ｈ．２６４／ＡＶＣ（アドバンストビデオコーディング）の例では、コード化ビデオセグメントは、ビデオテレフォニー、ストレージ、ブロードキャスト、またはストリーミングなどのアプリケーションに対処する「ネットワークフレンドリーな」ビデオ表現を与えるＮＡＬユニットに編成される。ＮＡＬユニットは、Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｌａｙｅｒ（ＶＣＬ）ＮＡＬユニットと非ＶＣＬ  ＮＡＬユニットとにカテゴリー分類され得る。ＶＣＬユニットは、コア圧縮エンジンを含んでおり、ブロック、マクロブロック、および／またはスライスレベルを備え得る。他のＮＡＬユニットは非ＶＣＬ  ＮＡＬユニットである。
【００４８】
マルチプレクサ３０は、ＮＡＬが属するプログラムを識別するヘッダ、ならびにペイロード、たとえば、オーディオデータ、ビデオデータ、あるいはＮＡＬユニットが対応するトランスポートまたはプログラムストリームを記述するデータを備えるＮＡＬユニットを形成し得る。たとえば、Ｈ．２６４／ＡＶＣでは、ＮＡＬユニットは１バイトのヘッダと変動するサイズのペイロードとを含み得る。一例では、ＮＡＬユニットヘッダは、ｐｒｉｏｒｉｔｙ＿ｉｄ要素と、ｔｅｍｐｏｒａｌ＿ｉｄ要素と、ａｎｃｈｏｒ＿ｐｉｃ＿ｆｌａｇ要素と、ｖｉｅｗ＿ｉｄ要素と、ｎｏｎ＿ｉｄｒ＿ｆｌａｇ要素と、ｉｎｔｅｒ＿ｖｉｅｗ＿ｆｌａｇ要素とを備える。従来のＭＶＣでは、４バイトＭＶＣ  ＮＡＬユニットヘッダとＮＡＬユニットペイロードとを含む、プレフィックスＮＡＬユニットとＭＶＣコード化スライスＮＡＬユニットとを除いて、Ｈ．２６４によって定義されたＮＡＬユニットが保持される。
【００４９】
ＮＡＬヘッダのｐｒｉｏｒｉｔｙ＿ｉｄ要素は、単純なワンパス（one-path）ビットストリーム適合プロセスのために使用され得る。ｔｅｍｐｏｒａｌ＿ｉｄ要素は、異なる時間レベルが異なるフレームレートに対応する場合、対応するＮＡＬユニットの時間レベルを指定するために使用され得る。
【００５０】
ａｎｃｈｏｒ＿ｐｉｃ＿ｆｌａｇ要素は、ピクチャがアンカーピクチャであるか非アンカーピクチャであるかを示し得る。アンカーピクチャと出力順序（すなわち、表示順序）でそれに続くすべてのピクチャとは、復号順序（すなわち、ビットストリーム順序）で前のピクチャを復号することなしに正しく復号され得、したがってランダムアクセスポイントとして使用され得る。アンカーピクチャと非アンカーピクチャとは異なる依存性を有することができ、その両方はシーケンスパラメータセット中でシグナリングされる。他のフラグについては、本章の以下のセクションで説明され、使用される。そのようなアンカーピクチャはまた、開いたＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅｓ）アクセスポイントと呼ばれることもあり、ｎｏｎ＿ｉｄｒ＿ｆｌａｇ要素が０に等しいとき、閉じたＧＯＰアクセスポイントもサポートされる。ｎｏｎ＿ｉｄｒ＿ｆｌａｇ要素は、ピクチャが瞬間デコーダリフレッシュ（ＩＤＲ）であるかビューＩＤＲ（Ｖ−ＩＤＲ）ピクチャであるかを示す。概して、ＩＤＲピクチャと出力順序またはビットストリーム順序でそれに続くすべてのピクチャとは、復号順序または表示順序で前のピクチャを復号することなしに正しく復号され得る。
【００５１】
ｖｉｅｗ＿ｉｄ要素は、ＭＶＣデコーダ内でデータ対話性のために、たとえば、ビュー間予測のために、およびデコーダ外で、たとえば、レンダリングのために使用され得る、ビューを識別するために使用され得るシンタックス情報を備える。ｉｎｔｅｒ＿ｖｉｅｗ＿ｆｌａｇ要素は、対応するＮＡＬユニットが他のビューによってビュー間予測のために使用されるかどうかを指定し得る。ＡＶＣに準拠し得る、ベースビューの４バイトＮＡＬユニットヘッダ情報を搬送するために、ＭＶＣにおいてプレフィックスＮＡＬユニットが定義される。ＭＶＣのコンテキストにおいて、ベースビューアクセスユニットは、ビューの現在の時間インスタンスのＶＣＬ  ＮＡＬユニット、ならびにＮＡＬユニットヘッドのみを含んでいるプレフィックスＮＡＬユニットを含む。Ｈ．２６４／ＡＶＣデコーダはプレフィックスＮＡＬユニットを無視し得る。
【００５２】
そのペイロード中にビデオデータを含むＮＡＬユニットは、様々なグラニュラリティレベルのビデオデータを備え得る。たとえば、ＮＡＬユニットは、ビデオデータのブロック、マクロブロック、複数のマクロブロック、ビデオデータのスライス、またはビデオデータのフレーム全体を備え得る。
【００５３】
概して、アクセスユニットは、ビデオデータのフレームを表すための１つまたは複数のＮＡＬユニット、ならびにそのフレームに対応するオーディオデータが利用可能なとき、そのようなオーディオデータを備え得る。アクセスユニットは、概して、１つの出力時間インスタンスにわたるすべてのＮＡＬユニット、たとえば１つの時間インスタンスにわたるすべてのオーディオおよびビデオデータを含む。Ｈ．２６４／ＡＶＣに対応する例では、アクセスユニットは、１次コード化ピクチャとして提示され得る、１つの時間インスタンス中のコード化ピクチャを備え得る。したがって、アクセスユニットは、共通の時間インスタンスのすべてのビデオフレーム、たとえば、時間Ｘに対応するすべてのビュー構成要素を備え得る。
【００５４】
本開示はまた、特定のビューの符号化ピクチャを「ビュー構成要素」と呼ぶ。すなわち、ビュー構成要素は、特定の時間における特定のビューの符号化ピクチャ（またはフレーム）を備える。したがって、アクセスユニットは、いくつかの例では、共通の時間インスタンスのすべてのビュー構成要素を備え得る。アクセスユニットの復号順序は、必ずしも出力または表示順序と同じである必要はない。連続するアクセスユニットのセットは、ピクチャグループ（ＧＯＰ）またはＮＡＬユニットビットストリームまたはサブビットストリームの他の単独で復号可能な単位に対応し得る符号化ビデオシーケンスを形成し得る。
【００５５】
多くのビデオコーディング規格の場合と同様に、Ｈ．２６４／ＡＶＣは、誤りのないビットストリームのシンタックスと、セマンティクスと、復号プロセスとを定義し、そのいずれかは特定のプロファイルまたはレベルに準拠する。Ｈ．２６４／ＡＶＣはエンコーダを指定しないが、エンコーダは、生成されたビットストリームがデコーダの規格に準拠することを保証することを課される。ビデオコーディング規格のコンテキストにおいて、「プロファイル」は、アルゴリズム、機能、またはそれらに適用するツールおよび制約のサブセットに対応する。たとえば、Ｈ．２６４規格によって定義される「プロファイル」は、Ｈ．２６４規格によって指定されたビットストリームシンタックス全体のサブセットである。「レベル」は、たとえば、ピクチャの解像度、ビットレート、およびマクロブロック（ＭＢ）処理レートに関係するデコーダメモリおよび計算など、デコーダリソース消費の制限に対応する。
【００５６】
Ｈ．２６４規格は、たとえば、与えられたプロファイルのシンタックスによって課される限界内で、復号されたピクチャの指定されたサイズなど、ビットストリーム中のシンタックス要素がとる値に応じて、エンコーダおよびデコーダのパフォーマンスの大きい変動を必要とする可能性が依然としてあることを認識している。Ｈ．２６４規格は、多くのアプリケーションにおいて、特定のプロファイル内でシンタックスのすべての仮定的使用を処理することが可能なデコーダを実装することが実際的でもなく、経済的でもないことをさらに認識している。したがって、Ｈ．２６４規格は、ビットストリーム中のシンタックス要素の値に課せられた制約の指定されたセットとして「レベル」を定義している。これらの制約は、値に関する単純な限界であり得る。代替的に、これらの制約は、値の演算の組合せ（たとえば、ピクチャの幅×ピクチャ高さ×毎秒復号されるピクチャの数）に関する制約の形態をとり得る。Ｈ．２６４規格は、個別の実装形態が、サポートされるプロファイルごとに異なるレベルをサポートし得ることをさらに規定している。
【００５７】
プロファイルに準拠するデコーダは、通常、プロファイル中で定義されたすべての機能をサポートする。たとえば、コーディング機能として、Ｂピクチャコーディングは、Ｈ．２６４／ＡＶＣのベースラインプロファイルではサポートされず、Ｈ．２６４／ＡＶＣの他のプロファイルではサポートされる。レベルに準拠するデコーダは、レベルにおいて定義された制限を超えてリソースを必要としない任意のビットストリームを復号することが可能である必要がある。プロファイルおよびレベルの定義は、説明可能性のために役立ち得る。たとえば、ビデオ送信中に、プロファイル定義とレベル定義のペアが全送信セッションについてネゴシエートされ、同意され得る。より詳細には、Ｈ．２６４／ＡＶＣでは、レベルは、たとえば、処理する必要があるマクロブロックの数に関する制限と、復号されたピクチャバッファ（ＤＰＢ）サイズと、コード化ピクチャバッファ（ＣＰＢ）サイズと、垂直動きベクトル範囲と、２つの連続するＭＢごとの動きベクトルの最大数と、Ｂブロックが８×８ピクセル未満のサブマクロブロックパーティションを有することができるかどうかとを定義し得る。このようにして、デコーダは、デコーダがビットストリームを適切に復号することが可能であるかどうかを判断し得る。
【００５８】
パラメータセットは、概して、シーケンスパラメータセット（ＳＰＳ）中のシーケンスレイヤヘッダ情報とピクチャパラメータセット（ＰＰＳ）中のまれに変化するピクチャレイヤヘッダ情報とを含んでいる。パラメータセットがある場合、このまれに変化する情報をシーケンスごとまたはピクチャごとに繰り返す必要はなく、したがってコーディング効率が改善され得る。さらに、パラメータセットの使用はヘッダ情報の帯域外送信を可能にし得、誤り耐性を達成するために冗長送信の必要を回避する。帯域外送信では、他のＮＡＬユニットとは異なるチャネル上でパラメータセットＮＡＬユニットが送信される。
【００５９】
本開示の技法は、メディアエクストラクタトラック中にエクストラクタを含むことに関与する。本開示のエクストラクタは、共通のファイル中の別のトラックの２つ以上のＮＡＬユニットを参照し得る。すなわち、ファイルは、複数のＮＡＬユニットを有する第１のトラックと、第１のトラックの複数のＮＡＬユニットの２つ以上を識別するエクストラクタを含む第２のトラックとを含み得る。概して、エクストラクタにデマルチプレクサ３８が遭遇したとき、デマルチプレクサ３８が第１のトラックからエクストラクタによって識別されたＮＡＬユニットを検索し、それらのＮＡＬユニットをビデオデコーダ４８に送り得るように、エクストラクタはポインタとして働き得る。エクストラクタを含むトラックは、メディアエクストラクタトラックと呼ばれることがある。本開示のエクストラクタは、様々なファイルフォーマット、たとえば、ＩＳＯベースメディアファイルフォーマット、スケーラブルビデオコーディング（ＳＶＣ）ファイルフォーマット、アドバンストビデオコーディング（ＡＶＣ）ファイルフォーマット、第３世代パートナーシッププロジェクト（３ＧＰＰ）ファイルフォーマット、および／またはマルチビュービデオコーディング（ＭＶＣ）ファイルフォーマットに準拠するファイル中に含まれ得る。
【００６０】
概して、ビデオファイルの様々なトラックはスイッチトラックとして使用され得る。すなわち、マルチプレクサ３０は、様々なフレームレート、ディスプレイ能力、および／または復号能力をサポートするために様々なトラックを含み得る。たとえば、ビデオファイルがＭＶＣファイルフォーマットに準拠するとき、各トラックは異なるＭＶＣ動作点を表し得る。したがって、デマルチプレクサ３８は、ＮＡＬユニットを検索すべきトラックのうちの１つを選択し、選択されたトラックのエクストラクタによって識別されるＮＡＬユニット以外の他のトラックのデータを廃棄するように構成され得る。すなわち、選択されたトラックが、別のトラックのＮＡＬユニットを参照するエクストラクタを含むとき、デマルチプレクサ３８は他のトラックの参照されないＮＡＬユニットを廃棄する一方、参照されたＮＡＬユニットを抽出し得る。デマルチプレクサ３８は、抽出されたＮＡＬユニットをビデオデコーダ４８に送り得る。
【００６１】
メディアエクストラクタトラック中のエクストラクタを使用することによって、本開示の技法は、ビデオファイルの様々なトラック間の時間スケーラビリティを達成するために使用され得る。ＭＰＥＧ−１およびＭＰＥＧ−２では、たとえば、Ｂ符号化ピクチャは、自然時間スケーラビリティを与える。ＭＰＥＧ−１またはＭＰＥＧ−２に準拠するビデオファイルの第１のトラックは、Ｉ符号化ピクチャとＰ符号化ピクチャとＢ符号化ピクチャとの完全セットを含み得る。ビデオファイルの第２のトラックは、第１のトラックのＩ符号化ピクチャおよびＰ符号化ピクチャのみを参照する１つまたは複数のエクストラクタを含み得、Ｂ符号化ピクチャへの参照を省略する。Ｂ符号化ピクチャを欠落させることによって、ビデオファイルは、ハーフ解像度ビデオ表現を確認することを達成し得る。また、ＭＰＥＧ−１およびＭＰＥＧ−２は、２つの時間レイヤをコーディングするベースレイヤおよびエンハンスメントレイヤ概念を与え、エンハンスメントレイヤピクチャは、各予測方向について、ベースレイヤまたはエンハンスメントレイヤのいずれかからピクチャを参照として選定することができる。
【００６２】
別の例として、Ｈ．２６４／ＡＶＣは、時間スケーラビリティをサポートするために階層Ｂ符号化ピクチャを使用する。Ｈ．２６４／ＡＶＣにおけるビデオシーケンスの第１のピクチャは、瞬間デコーダリフレッシュ（ＩＤＲ：Instantaneous Decoder Refresh）ピクチャと呼ばれることがあり、キーピクチャとしても知られている。キーピクチャは、一般に規則的な間隔または不規則な間隔でコーディングされ、動き補償予測のための参照として前のキーピクチャを使用してイントラコード化またはインターコード化のいずれかでコード化される。ピクチャグループ（ＧＯＰ）は、概して、キーピクチャと、そのキーピクチャと前のキーピクチャとの間に時間的に位置するすべてのピクチャとを含む。ＧＯＰは２つの部分に分割され得、一方はキーピクチャであり、他方は非キーピクチャを含む。非キーピクチャは、過去および将来からより低い時間レベルの最も近いピクチャである２つの参照ピクチャによって階層的に予測される。ピクチャの階層位置を示すために、時間識別子値が各ピクチャに割り当てられ得る。したがって、Ｎまでの時間識別子値をもつピクチャは、Ｎ−１までの時間識別子値をもつピクチャによって形成されたビデオセグメントのフレームレートの２倍のフレームレートをもつビデオセグメントを形成し得る。したがって、本開示の技法はまた、Ｎまでの時間識別子値をもつすべてのＮＡＬユニットを含む第１のトラックと、Ｎ−１までの時間識別子値をもつ第１のトラックのＮＡＬユニットを参照する１つまたは複数のエクストラクタを含む第２のトラックとを有することによって、Ｈ．２６４／ＡＶＣにおける時間スケーラビリティを達成するために使用され得る。
【００６３】
上記のように、本開示の技法は、ＩＳＯベースメディアファイルフォーマット、スケーラブルビデオコーディング（ＳＶＣ）ファイルフォーマット、アドバンストビデオコーディング（ＡＶＣ）ファイルフォーマット、第３世代パートナーシッププロジェクト（３ＧＰＰ）ファイルフォーマット、および／またはマルチビュービデオコーディング（ＭＶＣ）ファイルフォーマットのいずれかに準拠するビデオファイルに適用され得る。ＩＳＯベースメディアファイルフォーマットは、メディアの交換、管理、編集、および提示を可能にする、フレキシブルな、拡張可能なフォーマットでの提示のための時限メディア情報を含んでいるように設計されている。ＩＳＯベースメディアファイルフォーマット（ＩＳＯ／ＩＥＣ  １４４９６−１２：２００４）は、時間ベースメディアファイルのための一般的な構造を定義するＭＰＥＧ−４  Ｐａｒｔ−１２において規定されている。それは、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣビデオ圧縮のサポートのために定義されたＡＶＣファイルフォーマット（ＩＳＯ／ＩＥＣ  １４４９６−１５）、３ＧＰＰファイルフォーマット、ＳＶＣファイルフォーマット、およびＭＶＣファイルフォーマットなど、ファミリー中の他のファイルフォーマットのための基礎として使用されている。３ＧＰＰファイルフォーマットおよびＭＶＣファイルフォーマットは、ＡＶＣファイルフォーマットの拡張である。ＩＳＯベースメディアファイルフォーマットは、オーディオビジュアルプレゼンテーションなど、メディアデータの時限シーケンスのためのタイミング、構造、およびメディア情報を含んでいる。ファイル構造はオブジェクト指向である。ファイルは、極めて簡単に基本オブジェクトに分解され得、オブジェクトの構造はそれらのタイプから暗示される。
【００６４】
ＩＳＯベースメディアファイルフォーマットに準拠するファイルは、「ボックス」と呼ばれる一連のオブジェクトとして形成される。ＩＳＯベースメディアファイルフォーマットでのデータは、ボックス中に含まれており、ファイル内に他のデータはない。これは、特定のファイルフォーマットによって必要とされる初期シグナチャを含む。「ボックス」は、一意のタイプ識別子および長さによって定義されたオブジェクト指向ビルディングブロックである。一般に、プレゼンテーションは１つのファイル中に含まれており、メディアプレゼンテーションは自蔵式である。ムービーコンテナ（ムービーボックス）は、メディアのメタデータを含んでおり、ビデオおよびオーディオフレームは、メディアデータコンテナ中に含まれており、他のファイル中にあり得る。
【００６５】
プレゼンテーション（モーションシーケンス）は、いくつかのファイル中に含まれ得る。すべてのタイミングおよびフレーミング（位置およびサイズ）情報は、概してＩＳＯベースメディアファイル中にあり、補助ファイルは、本質的に任意のフォーマットを使用し得る。このプレゼンテーションは、プレゼンテーションを含んでいるシステムにとって「ローカル」であり得るか、またはネットワークまたは他のストリーム配信機構を介することがある。
【００６６】
ファイルは、論理構造と、時間構造と、物理構造とを有し得、これらの構造は結合される必要はない。ファイルの論理構造は、順に時間並列トラックのセットを含んでいるムービーであり得る。ファイルの時間構造は、トラックがサンプルのシーケンスを時間的に含んでいるということであり得、それらのシーケンスは、随意の編集リストによって全体的なムービーのタイムラインにマッピングされる。ファイルの物理構造は、論理、時間、および構造分解のために必要なデータをメディアデータサンプル自体から分離し得る。この構造情報はムービーボックスに集中され、場合によっては、ムービーフラグメントボックスによって時間的に拡張され得る。ムービーボックスは、サンプルの論理およびタイミング関係を記録し得、また、それらが位置するところへのポインタを含み得る。それらのポインタは、たとえば、ＵＲＬによって参照される同じファイルまたは別のファイルへのポインタであり得る。
【００６７】
各メディアストリームは、そのメディアタイプ（オーディオ、ビデオなど）のための特殊なトラック中に含まれ得、さらに、サンプルエントリによってパラメータ化され得る。サンプルエントリは、正確なメディアタイプ（ストリームを復号するのに必要なデコーダのタイプ）の「名前」と、必要とされるそのデコーダの任意のパラメータ表示を含み得る。また、その名前は、４文字コード、たとえば、「ｍｏｏｖ」または「ｔｒａｋ」の形態をとり得る。ＭＰＥＧ−４メディアについてだけでなく、このファイルフォーマットファミリーを使用する他の組織によって使用されるメディアタイプについても定義されたサンプルエントリフォーマットがある。
【００６８】
メタデータのサポートは、概して２つの形態をとる。第１に、時限メタデータは適切なトラックに記憶され、必要に応じて、その時限メタデータが記述しているメディアデータと同期され得る。第２に、ムービーまたは個々のトラックにアタッチされた非時限メタデータのための一般的なサポートがあり得る。構造サポートは、一般的であり、メディアデータの場合のように、そのファイルまたは別のファイル中の他の場所へのメタデータリソースのストレージを可能にする。さらに、これらのリソースは命名され、保護され得る。
【００６９】
ＩＳＯベースメディアファイルフォーマットでは、サンプルグルーピングは、１つのサンプルグループのメンバーになるように、トラック中のサンプルの各々を割り当てることである。サンプルグループ中のサンプルは、連続である必要はない。たとえば、ＡＶＣファイルフォーマットでＨ．２６４／ＡＶＣを提示するときに、１つの時間レベルでのビデオサンプルは、１つのサンプルグループにサンプリングされ得る。サンプルグループは、２つのデータ構造、ＳａｍｐｌｅＴｏＧｒｏｕｐボックス（ｓｂｄｐ）とＳａｍｐｌｅＧｒｏｕｐＤｅｓｃｒｉｐｔｉｏｎボックスとによって表され得る。ＳａｍｐｌｅＴｏＧｒｏｕｐボックスは、サンプルグループへのサンプルの割当てを表す。対応するグループのプロパティを記述するために、サンプルグループエントリごとにＳａｍｐｌｅＧｒｏｕｐＤｅｓｃｒｉｐｔｉｏｎボックスの１つのインスタンスがあり得る。
【００７０】
随意のメタデータトラックは、それの値がグループの他のメンバーとは異なり得る、それが有する「興味深い特性」（たとえば、それのビットレート、スクリーンサイズ、または言語）と各トラックをタグ付けするために使用され得る。トラック内のいくつかのサンプルは、特殊な特性を有し得るか、または個々に識別され得る。特性の一例は、同期ポイント（しばしばビデオＩフレーム）である。これらのポイントは、各トラック中の特殊なテーブルによって識別され得る。より一般的には、トラックサンプル間の依存性の性質も、メタデータを使用して記録され得る。メタデータは、ちょうどビデオトラックのように一連のファイルフォーマットサンプルとして構造化され得る。そのようなトラックは、メタデータトラックと呼ばれることがある。各メタデータサンプルは、メタデータステートメントとして構造化され得る。対応するファイルフォーマットサンプルまたはそれの構成サンプルに関して尋ねられ得る様々な質問に対応する、様々な種類のステートメントがある。
【００７１】
メディアがストリーミングプロトコルを介して配信されるとき、メディアはそれがファイル中で表される形から変換されることを必要とし得る。これの一例は、メディアがリアルタイムプロトコル（ＲＴＰ）を介して送信される場合である。ファイルでは、たとえば、ビデオの各フレームが、ファイルフォーマットサンプルとして連続して記憶される。ＲＴＰでは、これらのフレームをＲＴＰパケット中に配置するために、使用されるコーデックに固有のパケット化ルールを順守しなければならない。実行時にそのようなパケット化を計算するように、ストリーミングサーバが構成され得る。ただし、ストリーミングサーバの支援のためのサポートがある。ヒントトラックと呼ばれる特殊なトラックがファイル中に配置され得る。
【００７２】
ヒントトラックは、特定のプロトコルの場合に、メディアトラックからどのようにパケットストリームを形成するかに関する、ストリーミングサーバのための一般的な命令を含んでいる。これらの命令の形態がメディア独立であるので、新しいコーデックが導入されたとき、サーバを修正する必要がないことがある。さらに、符号化および編集ソフトウェアは、ストリーミングサーバに気づいていないことがある。編集がファイル上で完了されると、ファイルにヒントトラックを追加するために、ストリーミングサーバ上にファイルを配置する前にヒンタ（hinter）と呼ばれる１個のソフトウェアが使用され得る。一例として、ＭＰ４ファイルフォーマット仕様においてＲＴＰストリームについて定義されたヒントトラックフォーマットがある。
【００７３】
３ＧＰ（３ＧＰＰファイルフォーマット）は、３Ｇ  ＵＭＴＳマルチメディアサービスのために第３世代パートナーシッププロジェクト（３ＧＰＰ）によって定義されたマルチメディアコンテナフォーマットである。それは、一般に３Ｇモバイルフォンおよび他の３Ｇ対応デバイス上で使用されるが、いくつかの２Ｇおよび４Ｇフォンおよびデバイス上でも再生され得る。３ＧＰＰファイルフォーマットは、ＩＳＯベースメディアファイルフォーマットに基づく。最新の３ＧＰは、３ＧＰＰ  ＴＳ２６．２４４、「Transparent end-to-end packet switched streaming service (PSS); 3GPP file format (3GP)」において規定されている。３ＧＰＰファイルフォーマットは、ＭＰＥＧ−４  Ｐａｒｔ２またはＨ．２６３またはＭＰＥＧ−４  Ｐａｒｔ１０（ＡＶＣ／Ｈ．２６４）としてビデオストリームを記憶する。３ＧＰＰが、ＩＳＯベースメディアファイルフォーマット（ＭＰＥＧ−４  Ｐａｒｔ１２）でのサンプルエントリおよびテンプレートフィールドの使用、ならびにコーデックが参照する新しいボックスを定義することを規定しているので、３ＧＰＰは、ＩＳＯベースメディアファイルフォーマットでのＡＭＲおよびＨ．２６３コーデックの使用を可能にする。３ＧＰファイル中のＭＰＥＧ−４メディア固有情報のストレージのために、３ＧＰ仕様はＭＰ４およびＡＶＣファイルフォーマットを参照し、それらのフォーマットもＩＳＯベースメディアファイルフォーマットに基づく。ＭＰ４およびＡＶＣファイルフォーマット仕様は、ＩＳＯベースメディアファイルフォーマットでＭＰＥＧ−４コンテンツの使用を記述している。
【００７４】
ＳＶＣファイルフォーマットは、ＡＶＣファイルフォーマットの拡張として、エクストラクタおよびティアの新しい構造を有する。エクストラクタは、別のトラック中で等しい復号時間をもつサンプル中のビデオコーディングデータの位置およびサイズに関する情報を与えるポインタである。これは、コーディング領域中にトラック階層を直接構築することを可能にする。ＳＶＣにおけるエクストラクタトラックは、そこから実行時にデータを抽出する１つまたは複数の基本トラックにリンクされる。エクストラクタは、ＳＶＣ拡張の場合、ＮＡＬユニットヘッダをもつデリファレンス可能なポインタである。抽出のために使用されるトラックが、異なるフレームレートのビデオコーディングデータを含んでいる場合、エクストラクタはまた、トラック間の同期性を保証するための復号時間オフセットを含んでいる。実行時に、ストリームがビデオデコーダに受け渡される前に、エクストラクタはそれがポイントするデータと交換されなければならない。
【００７５】
ＳＶＣにおけるエクストラクタトラックは、ビデオコーディングトラックのように構造化されるので、そのエクストラクタトラックが必要とするサブセットを異なる形で表し得る。ＳＶＣエクストラクタトラックは、別のトラックからどのようにデータを抽出するかに関する命令のみを含んでいる。ＳＶＣファイルフォーマットでは、また、１つのレイヤ中のＮＡＬユニットをアグリゲータにアグリゲートすることを含む、サンプル内のＮＡＬユニットを１つのＮＡＬユニットとして互いにアグリゲートすることができるアグリゲータがある。ＳＶＣにおけるエクストラクタは、サンプルまたはアグリゲータからある範囲のバイトを抽出するか、またはただ１つのＮＡＬユニット全体であるが複数のＮＡＬユニットではない、特にサンプル中で連続していないものを抽出するように設計される。ＳＶＣファイルフォーマットでは、多くのビデオ動作点があり得る。ティアは、動作点のための１つまたは複数のトラック中のサンプルをグループ化するように設計される。
【００７６】
また、ＭＶＣファイルフォーマットは、エクストラクタトラックをサポートし、エクストラクタトラックは、あるフレームレートでのビューのサブセットである動作点を形成するために、異なるビューからＮＡＬユニットを抽出する。ＭＶＣエクストラクタトラックの設計は、ＳＶＣファイルフォーマットにおけるエクストラクタと同様である。ただし、代替グループを形成するためにＭＶＣエクストラクタトラックを使用することはサポートされない。トラック選択をサポートするために、以下のＭＰＥＧ提案、Ｐ．Ｆｒｏｊｄｈ、Ａ．Ｎｏｒｋｉｎ、およびＣ．Ｐｒｉｄｄｌｅ、「File format sub-track selection and switching」、ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１  ＭＰＥＧ  Ｍ１６６６５、英国、ロンドンがＭＰＥＧに提案されている。この提案は、サブトラックレベルにおいて代替／スイッチグループ概念を可能にすることを試みている。
【００７７】
マップサンプルグループは、サンプルグループに対する拡張である。マップサンプルグループでは、（サンプルの）各グループエントリは、場合によっては、ビュー中のＮＡＬユニットを１つのＮＡＬユニットにアグリゲートした後の、実際にｖｉｅｗ＿ｉｄへのマップである「ｇｒｏｕｐＩＤ」についてのそれの記述を有する。言い換えれば、各サンプルグループエントリには、それの含んでいるビューがＳｃａｌａｂｌｅＮＡＬＵＭａｐＥｎｔｒｙ値に記載されている。このサンプルグループエントリのｇｒｏｕｐｉｎｇ＿ｔｙｐｅは「ｓｃｎｍ」である。
【００７８】
プログレッシブダウンロードは、一般にＨＴＴＰプロトコルを使用する、サーバからクライアントへのデジタルメディアファイルの転送を説明するために使用される用語である。コンピュータから起動されたとき、ダウンロードが完了する前に消費者はメディアの再生を開始し得る。ストリーミングメディアとプログレッシブダウンロードとの間の主な違いは、どのようにデジタルメディアデータが受信され、デジタルメディアにアクセスしているエンドユーザデバイスによって記憶されるかにある。プログレッシブダウンロード再生が可能であるメディアプレーヤは、元のままである、ファイルのヘッダ中にあるメタデータと、ウェブサーバからダウンロードされたときのデジタルメディアファイルのローカルバッファとを利用する。指定されたデータ量がローカル再生デバイスに利用可能になるポイントにおいて、メディアは再生を開始する。この指定されたバッファ量は、エンコーダ設定においてコンテンツの製作者によってファイルに埋め込まれ、メディアプレーヤによって課される追加のバッファ設定によって補強される。
【００７９】
３ＧＰＰでは、ダウンロードおよびプログレッシブダウンロードのために３ＧＰファイルについてＨＴＴＰ／ＴＣＰ／ＩＰトランスポートがサポートされる。さらに、ビデオストリーミングのためにＨＴＴＰを使用することにはいくつかの利点があり、ＨＴＴＰに基づくビデオストリーミングサービスが普及してきている。ＨＴＴＰストリーミングのいくつかの利点は、既存のインターネット構成要素およびプロトコルが使用され得、それによりネットワークを介してビデオデータをトランスポートするための新しい技法を開発する新たな努力が必要でないことを含む。他のトランスポートプロトコル、たとえば、ＲＴＰペイロードフォーマットは、メディアフォーマットとシグナリングコンテキストとに気づくように、中間ネットワークデバイス、たとえば、中間ボックスを必要とする。また、ＨＴＴＰストリーミングは、多くの制御問題を回避するクライアント駆動型とすることができる。たとえば、最適パフォーマンスを得るためのすべての特徴を活用するために、サーバは、まだ確認されていないパケットのサイズおよびコンテンツを監視し得る。また、サーバはファイル構造を分析し、ＲＤ最適スイッチング／細線化（thinning）決定を行うために、クライアントバッファの状態を再構成し得る。さらに、ネゴシエートされたプロファイルに準拠したままでいるために、ビットストリーム変形体に対する制約が満たされ得る。ＨＴＴＰは、ＨＴＴＰ１．１が実装されているウェブサーバにおける、新しいハードウェアまたはソフトウェア実装形態を必ずしも必要としない。また、ＨＴＴＰストリーミングはＴＣＰ親和性とファイアウォール横断とを与える。本開示の技法は、たとえば、ビットレート適応を与えることによって、ビデオデータのＨＴＴＰストリーミングを改善して、帯域幅に関係する問題を克服し得る。
【００８０】
ＩＴＵ−ＴＨ．２６１、Ｈ．２６２、Ｈ．２６３、ＭＰＥＧ−１、ＭＰＥＧ−２およびＨ．２６４／ＭＰＥＧ−４  ｐａｒｔ１０などのビデオ圧縮規格は、時間冗長性を低減するために動き補償時間予測を利用する。エンコーダは、動きベクトルに従って現在のコード化ピクチャを予測するために、いくつかの前の（本明細書ではフレームとも呼ぶ）符号化ピクチャからの動き補償予測を使用する。典型的なビデオコーディングには３つの主要なピクチャタイプがある。それらは、イントラコード化ピクチャ（「Ｉピクチャ」または「Ｉフレーム」）と、予測ピクチャ（「Ｐピクチャ」または「Ｐフレーム」）と、双方向予測ピクチャ（「Ｂピクチャ」または「Ｂフレーム」）とである。Ｐピクチャのブロックは、１つの他のピクチャに関してイントラコード化または予測され得る。Ｂピクチャでは、ブロックは、１つまたは２つの参照ピクチャから予測され得るか、またはイントラコード化され得る。これらの参照ピクチャは、時間順序で現在のピクチャの前または後に位置し得る。
【００８１】
Ｈ．２６４コーディング規格によれば、一例として、Ｂピクチャは、前にコーディングされた参照ピクチャの２つのリスト、すなわち、リスト０とリスト１とを使用する。これらの２つのリストは、それぞれ、過去および／または将来のコード化ピクチャを時間順序で含むことができる。Ｂピクチャ中のブロックは、いくつかの方法、すなわちリスト０参照ピクチャからの動き補償予測、リスト１参照ピクチャからの動き補償予測、またはリスト０参照ピクチャとリスト１参照ピクチャの両方の組合せからの動き補償予測のうちの１つで予測され得る。リスト０参照ピクチャとリスト１参照ピクチャの両方の組合せを得るために、２つの動き補償基準エリアが、それぞれリスト０参照ピクチャおよびリスト１参照ピクチャから取得される。それらの組合せは現在のブロックを予測するために使用される。
【００８２】
より小さいビデオブロックは、より良好な解像度を与えることができ、高い詳細レベルを含むビデオフレームのロケーションのために使用され得る。一般に、マクロブロックおよび様々なパーティションはサブブロックと呼ばれることがあり、ビデオブロックと見なされ得る。さらに、スライスは、マクロブロックおよび／またはサブブロックなどの複数のビデオブロックであると見なされ得る。各スライスはビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が復号可能なユニットであり得るか、またはフレームの他の部分が復号可能なユニットとして定義され得る。「コード化ユニット」または「コーディングユニット」という用語は、フレーム全体、フレームのスライス、シーケンスとも呼ばれるピクチャグループ（ＧＯＰ）など、ビデオフレームの単独で復号可能な任意のユニット、または適用可能なコーディング技法に従って定義される別の単独で復号可能なユニットを指し得る。
【００８３】
マクロブロックという用語は、１６×１６ピクセルを備える２次元ピクセルアレイに従ってピクチャおよび／またはビデオデータを符号化するためのデータ構造を指す。各ピクセルはクロミナンス成分と輝度成分とを備える。したがって、マクロブロックは、各々が８×８ピクセルの２次元アレイを備える４つの輝度ブロックと、各々が１６×１６ピクセルの２次元アレイを備える２つのクロミナンスブロックと、コード化ブロックパターン（ＣＢＰ）、符号化モード（たとえば、イントラ（Ｉ）またはインター（ＰまたはＢ）符号化モード）、イントラ符号化ブロックのパーティションのパーティションサイズ（たとえば、１６×１６、１６×８、８×１６、８×８、８×４、４×８、または４×４）、あるいはインター符号化マクロブロックのための１つまたは複数の動きベクトルなど、シンタックス情報を備えるヘッダとを定義し得る。
【００８４】
ビデオエンコーダ２８、ビデオデコーダ４８、オーディオエンコーダ２６、オーディオデコーダ４６、マルチプレクサ３０、およびデマルチプレクサ３８は、それぞれ、適用可能なとき、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなどの様々な好適なエンコーダまたはデコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２８およびビデオデコーダ４８の各々は１つまたは複数のエンコーダまたはデコーダ中に含められ得、そのいずれかは複合ビデオエンコーダ／デコーダ（ＣＯＤＥＣ）の一部として統合され得る。同様に、オーディオエンコーダ２６およびオーディオデコーダ４６の各々は１つまたは複数のエンコーダまたはデコーダ中に含められ得、そのいずれかは複合オーディオエンコーダ／デコーダ（ＣＯＤＥＣ）の一部として統合され得る。ビデオエンコーダ２８、ビデオデコーダ４８、オーディオエンコーダ２６、オーディオデコーダ４６、マルチプレクサ３０、および／またはデマルチプレクサ３８を含む装置は、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【００８５】
本開示の技法によれば、マルチプレクサ３０は、ＮＡＬユニットを、ＩＳＯベースメディアファイルフォーマットまたはその派生（たとえば、ＳＶＣ、ＡＶＣ、ＭＶＣ、または３ＧＰＰ）に準拠するビデオファイルのトラックにアセンブルし、別のトラックの１つまたは複数の潜在的な非連続ＮＡＬユニットを識別するメディアエクストラクタトラックを含み、ビデオファイルを出力インターフェース３２に受け渡し得る。出力インターフェース３２は、たとえば、送信機、トランシーバ、たとえば、オプティカルドライブ、磁気メディアドライブ（たとえば、フロッピー（登録商標）ドライブ）など、コンピュータ可読媒体にデータを書き込むためのデバイス、ユニバーサルシリアルバス（ＵＳＢ）ポート、ネットワークインターフェース、または他の出力インターフェースを備え得る。出力インターフェース３２は、ＮＡＬユニットまたはアクセスユニットを、コンピュータ可読媒体３４、たとえば、送信信号または搬送波などの一時媒体、あるいは磁気メディア、光メディア、メモリ、またはフラッシュドライブなどのコンピュータ可読記憶媒体に出力する。
【００８６】
入力インターフェース３６はコンピュータ可読媒体３４からデータを取り出す。入力インターフェース３６は、たとえば、オプティカルドライブ、磁気媒体ドライブ、ＵＳＢポート、受信機、トランシーバ、または他のコンピュータ可読媒体インターフェースを備え得る。入力インターフェース３６は、ＮＡＬユニットまたはアクセスユニットをデマルチプレクサ３８に与え得る。デマルチプレクサ３８は、トランスポートストリームまたはプログラムストリームを構成ＰＥＳストリームに多重分離し、符号化データを取り出すためにＰＥＳストリームをパケット化解除し、たとえば、ストリームのＰＥＳパケットヘッダによって示されるように、符号化データがオーディオまたはビデオストリームの一部であるかどうかに応じて、符号化データをオーディオデコーダ４６またはビデオデコーダ４８に送り得る。デマルチプレクサ３８は、初めに、受信したビデオファイル中に含まれるトラックのうちの１つを選択し、次いで、選択されたトラックのデータと、選択されたトラックのエクストラクタによって参照される他のトラックのデータとのみをビデオデコーダ４８に受け渡し得、選択されたトラックのエクストラクタによって参照されない他のトラックのデータを廃棄する。オーディオデコーダ４６は、符号化オーディオデータを復号し、復号されたオーディオデータをオーディオ出力４２に送り、ビデオデコーダ４８は、符号化ビデオデータを復号し、ストリームの複数のビューを含み得る復号されたビデオデータをビデオ出力４４に送る。ビデオ出力４４は、シーンの複数のビュー、たとえばシーンの各ビューを同時に提示する立体視または自動立体視ディスプレイを使用するディスプレイを備え得る。
【００８７】
図２は、マルチプレクサ３０（図１）の構成要素の例示的な構成を示すブロック図である。図２の例では、マルチプレクサ３０は、ストリーム管理ユニット６０と、ビデオ入力インターフェース８０と、オーディオ入力インターフェース８２と、多重化ストリーム出力インターフェース８４と、プログラム固有情報テーブル８８とを含む。ストリーム管理ユニット６０は、ＮＡＬユニットコンストラクタ６２と、ストリーム識別子（ストリームＩＤ）ルックアップユニット６６と、トラック生成ユニット６４と、エクストラクタ生成ユニット６８とを含む。
【００８８】
図２の例では、ビデオ入力インターフェース８０およびオーディオ入力インターフェース８２は、符号化ビデオデータおよび符号化オーディオデータからＰＥＳユニットを形成するためにそれぞれのパケッタイザを含む。他の例では、ビデオおよび／またはオーディオパケッタイザは、マルチプレクサ３０の外部に存在し得る。図２の例に関して、ビデオ入力インターフェース８０は、ビデオエンコーダ２８から受信された符号化ビデオデータからＰＥＳパケットを形成し得、オーディオ入力インターフェース８２は、オーディオエンコーダ２６から受信された符号化オーディオデータからＰＥＳパケットを形成し得る。
【００８９】
ＮＡＬユニットコンストラクタ６２がＮＡＬユニットを構築した後、ＮＡＬユニットコンストラクタ６２はＮＡＬユニットをトラック生成ユニット６４に送る。トラック生成ユニット６４は、ＮＡＬユニットを受信し、ビデオファイルの１つまたは複数のトラック中のＮＡＬユニットを含むビデオファイルをアセンブルする。トラック生成ユニット６４は、さらに、トラック生成ユニット６４によって構築された１つまたは複数のメディアエクストラクタトラックのためのエクストラクタを生成するために、エクストラクタ生成ユニット６８を実行し得る。１つまたは複数のＮＡＬユニットが複数のトラックに属すると判断されたとき、トラック間でＮＡＬユニットを複製するのではなく、エクストラクタ生成ユニット６８は、ＮＡＬユニットを参照するトラックのためのエクストラクタを構築し得る。このようにして、マルチプレクサ３０はトラック間のデータの重複を回避し得、それにより、ビデオファイルを送信するときの帯域幅消費量を低減し得る。
【００９０】
エクストラクタのためのデータ構造および構成要素の様々な例について、以下に説明する。概して、エクストラクタは、参照されるＮＡＬユニットが含まれるトラックを参照するトラック識別子値と、エクストラクタによって参照されるＮＡＬユニットを識別する１つまたは複数のＮＡＬユニット識別子とを含み得る。いくつかの例では、ＮＡＬユニット識別子は、識別されるＮＡＬユニットに対応するトラック識別子値によって参照されるトラック中のビットまたはバイト範囲を参照し得る。いくつかの例では、たとえば、非連続ＮＡＬユニットを識別するために、ＮＡＬユニット識別子は、エクストラクタによって識別される各ＮＡＬユニットを個々に参照し得る。いくつかの例では、ＮＡＬユニット識別子は、メディアエクストラクタトラック中のエクストラクタの時間または空間ロケーションからのオフセットに基づいて、ＮＡＬユニットを参照し得る。
【００９１】
トラック生成ユニット６４は、いくつかの例では、メディアエクストラクタトラック中に追加のＮＡＬユニットを含み得る。すなわち、メディアエクストラクタトラックは、ＮＡＬユニットとエクストラクタとを含み得る。したがって、いくつかの例では、トラック生成ユニット６４は、ＮＡＬユニットのみを含む第１のトラックと、第１のトラックのＮＡＬユニットのすべてまたはそのサブセットを参照する１つまたは複数のエクストラクタを含む第２のトラックとを有するビデオファイルを構築し得る。その上、いくつかの例では、トラック生成ユニット６４は、第１のトラック中に含まれない追加のＮＡＬユニットを第２のトラック中に含み得る。同様に、本開示の技法は、複数のトラックに拡張され得る。たとえば、トラック生成ユニット６４は、第１のトラックのＮＡＬユニットおよび／または第２のトラックのＮＡＬユニットを参照し得る第３のトラックを構築し得、第１または第２のトラック中に含まれないＮＡＬユニットをさらに含み得る。
【００９２】
図３は、ビデオサンプルのセットを有する第１のトラックと、第１のトラックのビデオサンプルのサブセットを参照するエクストラクタを有する第２のトラックとを含む例示的なファイル１００を示すブロック図である。図３の例では、ファイル１００は、ＭＯＯＶボックス１０２とメディアデータ（ＭＤＡＴ）ボックス１１０とを含む。ＭＯＯＶボックス１０２は、ムービーボックスに対応し、ＩＳＯベースメディアファイルフォーマットは、そのムービーボックスを、サブボックスがプレゼンテーションのためのメタデータを定義するコンテナボックスとして定義する。ＭＤＡＴボックス１０４はメディアデータボックスに対応し、ＩＳＯベースメディアファイルフォーマットは、そのメディアデータボックスを、プレゼンテーションのための実際のデータを保持することができるボックスとして定義する。
【００９３】
図３の例では、ＭＯＯＶボックス１０２は、完全なサブセットトラック１０４とメディアエクストラクタトラック１０６とを含む。ＩＳＯベースメディアファイルフォーマットは、ＩＳＯベースメディアファイル中の関連するサンプルの時限シーケンスとして「トラック」を定義している。ＩＳＯベースメディアファイルフォーマットは、さらに、メディアデータについて、トラックが一連の画像またはサンプリングされたオーディオに対応することに言及している。
【００９４】
ＭＤＡＴボックス１１０は、図３の例では、Ｉ符号化サンプル１１２と、Ｐ符号化サンプル１１４と、Ｂ符号化サンプル１１６と、Ｂ符号化サンプル１１８とを含む。Ｂ符号化サンプル１１６およびＢ符号化サンプル１１８は、異なる階層符号化レベルであると見なされる。図３の例では、Ｂ符号化サンプル１１６は、Ｂ符号化サンプル１１８のための参照として使用され得、したがって、Ｂ符号化サンプル１１８は、Ｂ符号化サンプル１１６の階層符号化レベルよりも低い階層符号化レベルであり得る。サンプルの表示順序は、（復号順序とも呼ばれる）階層順序、およびサンプルがＭＤＡＴボックス１１０中に含まれる順序とは異なり得る。たとえば、Ｉ符号化サンプル１１２は表示順序値０と復号順序値０とを有し得、Ｐ符号化サンプル１１４は表示順序値２と復号順序値１とを有し得、Ｂ符号化サンプル１１６は表示順序値１と復号順序値２とを有し得、Ｂ符号化サンプル１１８は表示順序値４と復号順序値３とを有し得る。トラック１は、追加のサンプル、たとえば、表示順序値３と復号順序値４とをもつサンプルを含み得る。
【００９５】
Ｉ符号化サンプル１１２、Ｐ符号化サンプル１１４、Ｂ符号化サンプル１１６、およびＢ符号化サンプル１１８の各々は、様々なＮＡＬユニットまたはアクセスユニットに対応し得る。ＩＳＯベースメディアファイルフォーマットは、単一のタイムスタンプに関連するすべてのデータ、たとえば、ビデオの個々のフレーム、復号順序での一連のビデオフレーム、または復号順序でのオーディオの圧縮セクションとして「サンプル」を定義している。完全なサブセットトラック１０４は、図３の例では、Ｉ符号化サンプル１１２と、Ｐ符号化サンプル１１４と、Ｂ符号化サンプル１１６と、Ｂ符号化サンプル１１８とを参照するメタデータを含む。
【００９６】
ＭＤＡＴボックス１１０は、エクストラクタ１２０と、エクストラクタ１２２と、エクストラクタ１２４とをさらに含む。したがって、エクストラクタ１２０〜１２４は、概してデータのサンプルを含むであろうムービーデータボックス中に含まれる。図３の例では、エクストラクタ１２０は、Ｉ符号化サンプル１１２を参照し、エクストラクタ１２２は、Ｐ符号化サンプル１１４を参照し、エクストラクタ１２４は、Ｂ符号化サンプル１１８を参照する。Ｉ符号化サンプル１１２、Ｐ符号化サンプル１１４、および／またはＢ符号化サンプル１１８に対応する２つ以上のＮＡＬユニットがあり得、そのＮＡＬユニットは非連続であり得る。本開示の技法によれば、対応するサンプル中に２つ以上の非連続ＮＡＬユニットがあり得るとしても、エクストラクタ１２０〜１２４は、それにもかかわらず、対応するサンプルのＮＡＬユニットの各々を識別し得る。メディアエクストラクタトラック１０６は、図３の例では、エクストラクタ１２０とエクストラクタ１２２とエクストラクタ１２４とを参照するメタデータを含む。
【００９７】
また、エクストラクタ１２０〜１２４の各々は、表示順序値と復号順序値とを含み得る。たとえば、エクストラクタ１２０は、表示順序値０と復号順序値０と有し得、エクストラクタ１２２は、表示順序値１と復号順序値１とを有し得、エクストラクタ１２４は、表示順序値２と復号順序値２とを有し得る。いくつかの例では、表示および／または復号値は、たとえば、識別されたサンプルの値を整合させるために、いくつかの値をスキップし得る。
【００９８】
完全なサブセットトラック１０４とメディアエクストラクタトラック１０６とは代替グループを形成し得、それにより、デマルチプレクサ３８（図１）は、ビデオデコーダ４８によって復号されるべき、完全なサブセットトラック１０４またはメディアエクストラクタトラック１０６のいずれかを選択し得る。ＭＶＣの例に関して、完全なサブセットトラック１０４は第１の動作点に対応し得、メディアエクストラクタトラック１０６は第２の動作点に対応し得る。３ＧＰＰの例に関して、完全なサブセットトラック１０４とメディアエクストラクタトラック１０６とは、スイッチグループを形成し得る。このようにして、たとえば、ＨＴＴＰストリーミングアプリケーションにおける帯域幅可用性とデコーダ能力とを適応させるために、完全なサブセットトラック１０４とメディアエクストラクタトラック１０６とが使用され得る。
【００９９】
完全なサブセットトラック１０４が選択されたとき、デマルチプレクサ３８は、完全なサブセットトラック１０４に対応するサンプル（たとえば、Ｉ符号化サンプル１１２、Ｐ符号化サンプル１１４、Ｂ符号化サンプル１１６、およびＢ符号化サンプル１１８）をビデオデコーダ４８に送り得る。メディアエクストラクタトラック１０６が選択されたとき、デマルチプレクサ３８は、メディアエクストラクタトラック１０６に対応するメディアエクストラクタによって識別されるサンプルを含む、メディアエクストラクタトラック１０６に対応するサンプルをビデオデコーダ４８に送り得る。したがって、メディアエクストラクタトラック１０６が選択されたとき、デマルチプレクサ３８は、エクストラクタ１２０とエクストラクタ１２２とエクストラクタ１２４とをデリファレンスすることによって、デマルチプレクサ３８が完全なサブセットトラック１０４から検索し得るＩ符号化サンプル１１２とＰ符号化サンプル１１４とＢ符号化サンプル１１８とをビデオデコーダ４８に送り得る。
【０１００】
図４は、２つの別個のエクストラクタトラック１４６、１４８を含む別の例示的なファイル１４０を示すブロック図である。図４の例では、２つのエクストラクタトラックが示されているが、概して、ファイルは任意の数のエクストラクタトラックを含み得る。図４の例では、ファイル１４０は、ＭＯＯＶボックス１４２とＭＤＡＴボックス１５０とを含む。ＭＯＯＶボックス１４２は、完全なサブセットトラック１４４とメディアエクストラクタトラック１４６、１４８とを含む。ＭＤＡＴボックス１５０は、様々なトラックのためのデータのサンプルおよびエクストラクタ、たとえば、Ｉ符号化サンプル１５２、Ｐ符号化サンプル１５４、Ｂ符号化サンプル１５６、Ｂ符号化サンプル１５８、およびエクストラクタ１６０〜１６８を含む。
【０１０１】
図４の例では、エクストラクタ１６０〜１６４はメディアエクストラクタトラック１４６に対応するが、エクストラクタ１６６〜１６８はメディアエクストラクタトラック１４８に対応する。この例では、メディアエクストラクタトラック１４６のエクストラクタ１６０は、Ｉ符号化サンプル１５２を識別し、エクストラクタ１６２は、Ｐ符号化サンプル１５４を識別し、エクストラクタ１６４は、Ｂ符号化サンプル１５６を識別する。この例では、エクストラクタ１６６は、Ｉ符号化サンプル１５２を識別するが、エクストラクタ１６２は、Ｐ符号化サンプル１５４を識別する。図４の例は、様々なメディアエクストラクタトラックの２つ以上のエクストラクタが、完全なサブセットトラックの同じサンプルを参照する例を示している。
【０１０２】
メディアエクストラクタトラックは、復号可能であり、元の完全時間分解能ビットストリームを含んでいるトラック、たとえば、完全なサブセットトラック１４４の代替／スイッチトラックであるビデオストリームの時間サブセットを表すために使用され得る。完全なサブセットトラック１４４は、たとえば、３０フレーム毎秒（ＦＰＳ）ビデオストリームを表し得る。いくつかの例では、ある階層レベルのＢピクチャをサブビットストリーム中に含めないことによって、サブビットストリームのフレームレートは、半分にされるか、またはある他の部分だけ低減され得る。たとえば、メディアエクストラクタトラック１４６は、Ｂ符号化サンプル１５８を含めないことによって、完全なサブセットトラック１４４に対して半分にされたフレームレートを有し得る。たとえば、メディアエクストラクタトラック１４６は、フレームレート１５ＦＰＳを有し得る。同様に、メディアエクストラクタトラック１４８は、Ｂ符号化サンプル１５６とＢ符号化サンプル１５８の両方を省略することによって、メディアエクストラクタトラック１４６に対して半分にされたフレームレートを有し、したがって、フレームレート７．５ＦＰＳを有し得る。
【０１０３】
図５は、サブセットトラック１８８と、２つのメディアエクストラクタトラック１８４、１８６とを含む別の例示的なファイル１８０を示すブロック図である。ファイル１８０のＭＯＯＶボックス１８２は、サブセットトラック１８８と、メディアエクストラクタトラック１８４、１８６とを含むが、ＭＤＡＴボックス１９０は、Ｉ符号化サンプル１９２と、Ｐ符号化サンプル１９４と、Ｂ符号化サンプル２０２と、Ｂ符号化サンプル２０８と、エクストラクタ１９８、２００、２０４、２０６および２１０とを含む。
【０１０４】
上記で説明したように、メディアエクストラクタトラックは、別のトラックのサンプルを参照するエクストラクタを含み得る。さらに、メディアエクストラクタトラックは、別のトラック中に含まれない追加のビデオサンプルをさらに含み得る。図５の例では、サブセットトラック１８８は、Ｉ符号化サンプル１９２とＰ符号化サンプル１９４とを含む。メディアエクストラクタトラック１８６は、エクストラクタ１９８、２００を含み、Ｂ符号化サンプル２０２をさらに含む。同様に、メディアエクストラクタトラック１８４は、エクストラクタ２０４、２０６、２１０と、さらにＢ符号化サンプル２０８とを含む。
【０１０５】
図５の例では、メディアエクストラクタトラック１８６は、ビデオデータの符号化サンプル（Ｂ符号化サンプル２０２）を含み、メディアエクストラクタトラック１８４は、符号化サンプルを含むメディアエクストラクタトラック１８６のサンプルを参照するエクストラクタ２１０を含む。すなわち、図５の例では、エクストラクタ２１０は、Ｂ符号化サンプル２０２を参照する。したがって、メディアエクストラクタトラック１８４は、ビットストリームの完全時間分解能を表し得るが、メディアエクストラクタトラック１８６およびサブセットトラック１８８は、完全時間分解能ビットストリームのサブセットを表し得る。すなわち、メディアエクストラクタトラック１８６およびサブセットトラック１８８は、メディアエクストラクタトラック１８４によって表される完全時間分解能よりも低い時間分解能（たとえば、より低いフレームレート）を有し得る。
【０１０６】
本開示の技法によれば、Ｈ．２６４／ＡＶＣファイルフォーマットは、元の完全時間分解能ビットストリームを含んでいるトラックの任意の準拠している時間サブセットとして抽出され得るエクストラクタトラックを含めるように変更され得る。階層Ｂ（またはＰ）ピクチャコーディングをサポートするＨ．２６４／ＡＶＣの場合、Ｎの時間レベルがあると仮定すると、時間レベル０からｋ（ｋ＜Ｎ）までのサンプルを含む各サブビットストリームは、対応するエクストラクタトラックを定義することによって抽出され得る。したがって、同じビデオの場合、代替／スイッチグループを形成するＮ個のトラック（Ｎ−１個のエクストラクタトラックを含む）があり得る。エクストラクタは、エクストラクタによって識別されたサンプルの時間階層レベルに対応する時間階層レベルに関連することができる。また、たとえば、サンプルの時間レベルを指定する時間識別子値は、エクストラクタ中でシグナリングされ得る。
【０１０７】
図６Ａ〜図６Ｃは、様々なメディアエクストラクタトラックのためのメディアエクストラクタの例を含むファイルのＭＤＡＴボックス２２０の例を示すブロック図である。図６Ａ〜図６Ｃの各々は、ビュー０サンプル２２４Ａ、ビュー２サンプル２２６Ａ、ビュー１サンプル２２８Ａ、ビュー４サンプル２３０Ａ、およびビュー３サンプル２３２Ａを含むアンカーサンプル２２２と、ビュー０サンプル２２４Ｂ、ビュー２サンプル２２６Ｂ、ビュー１サンプル２２８Ｂ、ビュー４サンプル２３０Ｂ、およびビュー３サンプル２３２Ｂを含む非アンカーサンプル２２３とを示す。非アンカーサンプル２２３のそばの楕円は、追加のサンプルがＭＤＡＴボックス２２０中に含まれ得ることを示す。アンカーサンプルおよび非アンカーサンプルの各々は、ファイルの第１のトラックをまとめて形成し得る。一例では、本開示の技法によれば、図６Ａ〜図６Ｃに示すファイルのエクストラクタの各セットについてのメディアエクストラクタトラックは、ＭＶＣファイルフォーマットに準拠するビデオファイルの別々の動作点に対応し得る。このようにして、本開示の技法は、ＭＶＣファイルフォーマットに準拠するビデオファイルの動作点に対応する１つまたは複数のメディアエクストラクタトラックを生成するために使用され得る。
【０１０８】
図６Ａ〜図６Ｃは、様々なメディアエクストラクタトラックのエクストラクタ２４０、２４４、２５０を示し、エクストラクタ２４０、２４４、２５０は、それぞれＭＤＡＴボックス２２０中に含まれるが、明快のために別々の図に示される。すなわち、完全にアセンブルされたときに、ＭＤＡＴボックス２２０はエクストラクタ２４０、２４４および２５０の各セットを含み得る。
【０１０９】
図６Ａ〜図６Ｃは、メディアエクストラクタならびに現実のビデオサンプルを含んでいるトラックを含むファイルの例を与える。様々なサンプルは、異なる時間レベルに従って異なるトラック中に別々に含まれ得る。各時間レベルについて、特定のトラックが、すべてのビデオサンプルならびにより低い時間レベルをもつトラックへのエクストラクタを含み得る。ビデオサンプル（ＮＡＬユニット）は異なるトラックに分離され得るが、より高いフレームレートをもつトラックは、他のトラックをポイントしているエクストラクタを有することができる。このようにして、１つの時間レベルのみのサンプルを含んでいるムービーフラグメントを有することが可能であり、ムービーフラグメントは、場合によっては、他のフラグメントをポイントしているエクストラクタを含み得る。この場合、異なるトラックのムービーフラグメントは、同じ時間期間がなければ、時間レベルの昇順でインターリーブされ得る。
【０１１０】
図６Ａは、メディアエクストラクタトラックに対応するエクストラクタ２４２Ａ〜２４２Ｎを含むエクストラクタ２４０の例を与える。この例では、エクストラクタ２４２Ａは、アンカーサンプル２２２のビュー０サンプル２２４Ａを参照する。エクストラクタ２４２Ｎは、非アンカーサンプル２２３のビュー０サンプル２２４Ｂを参照する。概して、図６Ａの例では、エクストラクタセット２４０のエクストラクタは、対応するビュー０サンプルを参照する。エクストラクタ２４２Ａ〜２４２Ｎの各々は、スイッチグループおよび／または代替グループに属し得る共通のメディアエクストラクタトラックに対応する。メディアエクストラクタトラックは、個々の動作点、たとえば、ビュー０を含む動作点にさらに対応し得る。
【０１１１】
いくつかの例では、ＭＶＣを使用してコーディングされたステレオビデオの場合、２つのビューを出力することをサポートする１つの動作点と、ただ１つのビュー（たとえば、ビュー０またはビュー１だけ）を出力することをサポートする第２の動作点とを含む３つの動作点があるとすることができる。第３の動作点は、ビュー１を出力する動作点とすることができる。予測関係に応じて、第３の動作点は、ビュー１中のＶＣＬ  ＮＡＬユニットおよび関連する非ＶＣＬ  ＮＡＬユニットのみ、ビュー０およびビュー１のすべてのＮＡＬユニット、またはビュー１中のＮＡＬユニットならびにアンカーＮＡＬユニット（すなわち、アンカービュー構成要素のＮＡＬユニット）を含み得る。そのようなステレオの場合、開示する技法の例は、他の２つの動作点が２つのエクストラクタトラックによって表され得ることを与え得る。これらの２つのエクストラクタトラックはスイッチグループを形成し得、元のビデオトラックとともに、これらの３つのトラックは代替グループを形成し得る。
【０１１２】
本開示は、ＭＶＣメディアエクストラクタトラックを含むようにＭＶＣファイルフォーマットを変更するための技法を提供する。概して、出力のための同数のビューとともに、ＭＶＣメディアエクストラクタトラックを含むＭＶＣビデオトラックは、スイッチグループとして特徴づけられ得る。ファイルのトラックによって表されるすべての動作点は、ＭＶＣビデオプレゼンテーションの１つの代替グループに属し得る。アンカーサンプル２２２および非アンカーサンプル２２３の各々のビューは、完全なサブセットトラック、たとえば、利用可能なビューのすべてを含む動作点を形成し得る。
【０１１３】
エクストラクタは、たとえば、図６Ｂ中のエクストラクタ２４６Ａ〜２４６Ｎに関して示されるようにサンプルの連続部分を参照し得る。図６Ｂの例では、エクストラクタ２４６Ａは、ビュー０サンプル２２４Ａと、ビュー２サンプル２２６Ａとを参照する。エクストラクタ２４６Ａを表すデータ構造は、識別されたビューのためのバイト範囲、開始ビューおよび終了ビュー、開始ビューおよび後続のビューの数、またはエクストラクタによって識別される連続の一連のビューの他の表現を指定し得る。エクストラクタ２４４のセットは別のメディアエクストラクタトラックに対応し得、メディアエクストラクタトラックは、順に別々のＭＶＣ動作点に対応し得る。
【０１１４】
また、２つのエクストラクタは、たとえば、図６Ｃ中のエクストラクタ２５４Ａ、２５６Ａに関して示されるように、サンプルの２つの部分（たとえば、２つの非連続ビュー）を参照し得る。たとえば、エクストラクタサンプル２５２Ａは、ビュー０サンプル２２４Ａとビュー２サンプル２２６Ａとを参照するエクストラクタ２５４Ａ、ならびにビュー４サンプル２３０Ａを参照するエクストラクタ２５４Ｂを含む。したがって、エクストラクタサンプル２５２Ａによって表されるサンプルは、非連続ビューサンプルを参照するエクストラクタサンプルに対応し得る。同様に、エクストラクタサンプル２５２Ｎは、図６Ｃの例では、ビュー０サンプル２２４Ｂとビュー２サンプル２２６Ｂとを参照するエクストラクタ２５６Ａ、ならびにビュー４サンプル２３０Ｂを参照するエクストラクタ２５６Ｂを含む。
【０１１５】
また、エクストラクタは、アンカーまたは非アンカーサンプルに関して定義され得、アンカーサンプルに関して定義されるエクストラクタは、非アンカーサンプルに関して定義されるエクストラクタとは異なるビューを参照し得る。
【０１１６】
ＩＳＯベースメディアファイルフォーマットまたはＭＶＣファイルフォーマットでの上記のＭＶＣメディアエクストラクタトラックは、同様の抽出機能を用いて実装され得、通常のビデオトラックの代替および／またはスイッチトラックを表すために使用され得るメタデータトラックのインスタンスとすることができる。
【０１１７】
ＭＶＣファイルフォーマットを使用する例では、１つのトラック中に完全ビットストリームが含まれ得、すべての他の可能な動作点は、エクストラクタトラックによって表され得、その各々は、たとえば、出力のためのビューの数、出力のためのビューのビュー識別子値、送信に必要な帯域幅、およびフレームレートをシグナリングし得る。
【０１１８】
図７は、例示的なＭＶＣ予測パターンを示す概念図である。図７の例では、（ビューＩＤ「Ｓ０」〜「Ｓ７」を有する）８つのビューが示され、各ビューについて１２個の時間ロケーション（「Ｔ０」〜「Ｔ１１」）が示されている。すなわち、図７中の各行はビューに対応し、各列は時間ロケーションを示す。
【０１１９】
ＭＶＣがＨ．２６４／ＡＶＣデコーダによって復号可能である、いわゆるベースビューを有し、また、ステレオビューペアがＭＶＣによってサポートされ得るが、ＭＶＣの利点は、ＭＶＣが、３Ｄビデオ入力として３つ以上のビューを使用し、複数のビューによって表されるこの３Ｄビデオを復号する例をサポートすることができるということである。ＭＶＣデコーダを有するクライアントのレンダラは、複数のビューを用いて３Ｄビデオコンテンツを予想し得る。ビュー中のアンカービュー構成要素および非アンカービュー構成要素は、異なるビュー依存性を有することができる。たとえば、ビューＳ２中のアンカービュー構成要素は、ビューＳ０中のビュー構成要素に依存する。ただし、ビューＳ２中の非アンカービュー構成要素は、他のビュー中のビュー構成要素に依存しない。
【０１２０】
図７中のフレームは、文字を含む影付きブロックを使用して、図７中の各行と各列とについて示され、その指示は、対応するフレームがイントラコード化された（すなわち、Ｉフレーム）のか、または一方向でインターコード化された（すなわち、Ｐフレームとして）のか、または複数の方向でインターコード化された（すなわち、Ｂフレームとして）のかを指示する。概して、予測は矢印によって示され、ここで矢印の終点のフレームは、予測参照のために矢印の始点のオブジェクトを使用する。たとえば、時間ロケーションＴ０におけるビューＳ２のＰフレームは、時間ロケーションＴ０におけるビューＳ０のＩフレームから予測される。
【０１２１】
単一のビュービデオ符号化の場合と同様に、マルチビュービデオコーディングビデオシーケンスのフレームは、異なる時間ロケーションにおけるフレームに関して予測符号化され得る。たとえば、時間ロケーションＴ１におけるビューＳ０のｂフレームは、時間ロケーションＴ０におけるビューＳ０のＩフレームからそのｂフレームに向けられた矢印を有し、その矢印は、ｂフレームがＩフレームから予測されることを示す。しかしながら、さらに、マルチビュービデオ符号化のコンテキストにおいて、フレームは、ビュー間予測され得る。すなわち、ビュー構成要素は、参照のために他のビュー中のビュー構成要素を使用することができる。ＭＶＣでは、たとえば、別のビュー中のビュー構成要素がインター予測参照であるかのように、ビュー間予測が実現される。潜在的なビュー間参照は、シーケンスパラメータセット（ＳＰＳ）ＭＶＣ拡張においてシグナリングされ、インター予測またはビュー間予測参照のフレキシブルな順序を可能にする参照ピクチャリスト構成プロセスによって変更され得る。以下の表１は、ＭＶＣ拡張シーケンスパラメータセットの例示的な定義を与える。
【表１】
0005591932.tif 000002
【０１２２】
図７は、ビュー間予測の様々な例を与える。図７の例では、ビューＳ１のフレームは、ビューＳ１の異なる時間ロケーションにおけるフレームから予測されるものとして、ならびに同じ時間ロケーションにおけるビューＳ０およびＳ２のフレームのうちのフレームからビュー間予測されるものとして示されている。たとえば、時間ロケーションＴ１におけるビューＳ１のｂフレームは、時間ロケーションＴ０およびＴ２におけるビューＳ１のＢフレームの各々、ならびに時間ロケーションＴ１におけるビューＳ０およびＳ２のｂフレームから予測される。
【０１２３】
図７の例では、大文字の「Ｂ」および小文字の「ｂ」は、異なる符号化方法ではなく、フレーム間の異なる階層関係を示すものとする。概して、大文字の「Ｂ」フレームは、小文字の「ｂ」フレームよりも予測階層が比較的高い。すなわち、図７の例では、「ｂ」フレームは、「Ｂ」フレームに関して符号化される。図７の「ｂ」フレームを参照し得る追加の双方向符号化されたフレームを有する追加の階層レベルが追加され得る。図７はまた、異なるレベルの陰影を使用して予測階層の変形体を示し、より大きい量の陰影の（すなわち、比較的より暗い）フレームは、より少ない陰影を有する（すなわち、比較的より明るい）それらのフレームよりも予測階層が高い。たとえば、図７中のすべてのＩフレームは、完全陰影を用いて示されるが、Ｐフレームは、いくぶんより明るい陰影を有し、Ｂフレーム（そして、小文字のｂフレーム）は、互いに様々なレベルの陰影を有するが、ＰフレームおよびＩフレームの陰影よりも常に明るい。
【０１２４】
概して、比較的階層がより高いそれらのフレームが、階層が比較的低いフレームの復号中に参照フレームとして使用され得るように、予測階層が比較的より高いフレームは、階層が比較的より低いフレームを復号する前に復号されるべきであるという点で、予測階層はビュー順序インデックスに関係する。ビュー順序インデックスは、アクセスユニット中のビュー構成要素の復号順序を示すインデックスである。Ｈ．２６４／ＡＶＣ（ＭＶＣ追補）の付属書類Ｈにおいて規定されているように、ビュー順序インデックスはＳＰＳ  ＭＶＣ拡張において暗示されている。ＳＰＳでは、各インデックスｉについて、対応するｖｉｅｗ＿ｉｄがシグナリングされる。ビュー構成要素の復号は、ビュー順序インデックスの昇順に従う。すべてのビューが提示された場合、ビュー順序インデックスは、０からｎｕｍ＿ｖｉｅｗｓ＿ｍｉｎｕｓ＿１までの連続する順序である。
【０１２５】
このようにして、参照フレームとして使用されるフレームは、その参照フレームを参照して符号化されたフレームを復号する前に復号され得る。ビュー順序インデックスは、アクセスユニット中のビュー構成要素の復号順序を示すインデックスである。各ビュー順序インデックスｉについて、対応するｖｉｅｗ＿ｉｄがシグナリングされる。ビュー構成要素の復号は、ビュー順序インデックスの昇順に従う。すべてのビューが提示された場合、ビュー順序インデックスのセットは、０からビューの全数よりも１少ない数までの連続的な順序付きセットを備える。
【０１２６】
階層の等しいレベルにおけるいくつかのフレームの場合、復号順序は、互いに重要でないことがある。たとえば、時間ロケーションＴ０におけるビューＳ０のＩフレームは、時間ロケーションＴ０におけるビューＳ２のＰフレームのための参照フレームとして使用され、そのＰフレームは今度は、時間ロケーションＴ０におけるビューＳ４のＰフレームのための参照フレームとして使用される。したがって、時間ロケーションＴ０におけるビューＳ０のＩフレームは、時間ロケーションＴ０におけるビューＳ２のＰフレームの前に復号されるべきであり、そのＰフレームは、時間ロケーションＴ０におけるビューＳ４のＰフレームの前に復号されるべきである。しかしながら、ビューＳ１およびＳ３は、予測のために互いに依拠しないが、代わりに、予測階層がより高いビューからのみ予測されるので、ビューＳ１とＳ３との間で復号順序は重要でない。その上、ビューＳ１がビューＳ０およびＳ２の後に復号される限り、ビューＳ１はビューＳ４の前に復号され得る。
【０１２７】
このようにして、ビューＳ０〜Ｓ７を記述するために階層順序が使用され得る。表記法ＳＡ＞ＳＢは、ビューＳＡがビューＳＢの前に復号されるべきであることを意味する。この表記法を使用すると、図７の例では、Ｓ０＞Ｓ２＞Ｓ４＞Ｓ６＞Ｓ７である。また、図７の例に関して、Ｓ０＞Ｓ１、Ｓ２＞Ｓ１、Ｓ２＞Ｓ３、Ｓ４＞Ｓ３、Ｓ４＞Ｓ５、およびＳ６＞Ｓ５である。これらの要件に違反しないビューのための任意の復号順序が可能である。したがって、いくつかの制限のみをもつ、多くの異なる復号順序が可能である。２つの例示的な復号順序が以下に提示されるが、多くの他の復号順序が可能であることを理解されたい。以下の表２に示す一例では、ビューができるだけ早く復号される。
【表２】
0005591932.tif 000003
【０１２８】
表２の例は、ビューＳ１は、ビューＳ０およびＳ２が復号された直後に復号され得、ビューＳ３は、ビューＳ２およびＳ４が復号された直後に復号され得、ビューＳ５は、ビューＳ４およびＳ６が復号された直後に復号され得ることを認識する。
【０１２９】
以下の表３では、別のビューのための参照として使用されるいずれのビューも、他のビューのための参照として使用されないビューの前に復号されるような復号順序である、別の例示的な復号順序を与える。
【表３】
0005591932.tif 000004
【０１３０】
表３の例は、ビューＳ１、Ｓ３、Ｓ５、およびＳ７のフレームが、他のビューのフレームのための参照フレームとして働かず、したがって、ビューＳ１、Ｓ３、Ｓ５、およびＳ７が、図７の例におけるビュー、すなわち、ビューＳ０、Ｓ２、Ｓ４、およびＳ６の、参照フレームとして使用されるフレームの後に復号され得ることを認識する。互いに対して、ビューＳ１、Ｓ３、Ｓ５、およびＳ７は任意の順序で復号され得る。したがって、表３の例では、ビューＳ７は、ビューＳ１、Ｓ３、およびＳ５の各々の前に復号される。
【０１３１】
明快のために、各ビューのフレーム間に、ならびに各ビューのフレームの時間ロケーション間に、階層関係があり得る。図７の例に関して、時間ロケーションＴ０におけるフレームは、時間ロケーションＴ０における他のビューのフレームからイントラ予測されるか、またはビュー間予測される。同様に、時間ロケーションＴ８におけるフレームは、時間ロケーションＴ８における他のビューのフレームからイントラ予測されるか、またはビュー間予測される。したがって、時間階層に関して、時間ロケーションＴ０およびＴ８は時間階層の最上位にある。
【０１３２】
図７の例では、時間ロケーションＴ４のフレームが、時間ロケーションＴ０およびＴ８のフレームを参照してＢ符号化されるので、時間ロケーションＴ４におけるフレームは、時間ロケーションＴ０およびＴ８のフレームよりも時間階層が低い。時間ロケーションＴ２およびＴ６におけるフレームは、時間ロケーションＴ４におけるフレームよりも時間階層が低い。最後に、時間ロケーションＴ１、Ｔ３、Ｔ５、およびＴ７におけるフレームは、時間ロケーションＴ２およびＴ６のフレームよりも時間階層が低い。
【０１３３】
ＭＶＣでは、全ビットストリームのサブセットが抽出されて、依然としてＭＶＣに準拠するサブビットストリームが形成され得る。たとえば、サーバによって与えられるサービス、１つまたは複数のクライアントのデコーダの容量、サポート、および能力、ならびに／または１つまたは複数のクライアントの選好に基づいて、特定の適用例が必要とし得る、多くの可能なサブビットストリームがある。たとえば、あるクライアントが３つのビューのみを必要とし得、２つのシナリオがあり得る。一例では、あるクライアントは、滑らかな閲覧エクスペリエンスを必要とし、ｖｉｅｗ＿ｉｄ値Ｓ０、Ｓ１、およびＳ２のビューを選好し得、別の他のクライアントは、ビュースケーラビリティを必要とし、ｖｉｅｗ＿ｉｄ値Ｓ０、Ｓ２、およびＳ４のビューを選好し得る。元来ｖｉｅｗ＿ｉｄが表９の例に関して順序付けられている場合、これらの２つの例においてビュー順序インデックス値はそれぞれ｛０、１、２｝および｛０、１、４｝である。これらのサブビットストリームの両方が、独立したＭＶＣビットストリームとして復号され、同時にサポートされ得ることに留意されたい。
【０１３４】
ＭＶＣデコーダによって復号可能である多くのＭＶＣサブビットストリームがあり得る。理論上、（１）各アクセスユニット中のビュー構成要素が、ビュー順序インデックスの昇順で順序付けられている、および（２）ビューの任意の組合せ中の各ビューについて、そのビューの依存ビューも上記組合せ中に含まれる、という２つのプロパティを満たす上記組合せは、一定のプロファイルまたはレベルに準拠するＭＶＣデコーダによって復号され得る。
【０１３５】
本開示の技法に関して、メディアエクストラクタトラックおよび／または純粋ビデオサンプルトラックを使用して様々なＭＶＣサブビットストリームが表され得る。これらのトラックの各々は、ＭＶＣ動作点に対応し得る。
【０１３６】
図８〜図２１は、メディアエクストラクタのためのデータ構造、および本開示の技法に従って使用され得る他のサポートするデータ構造の様々な例を示すブロック図である。図８〜図２２の様々なメディアエクストラクタは、以下で詳細に説明する様々な特徴を含む。概して、図８〜図２１のメディアエクストラクタのいずれかは、ファイルのコード化サンプルを識別するために、ＩＳＯベースメディアファイルフォーマットまたはＩＳＯベースメディアファイルフォーマットに対する拡張に準拠するファイルのメディアエクストラクタトラック中に含まれ得る。概して、メディアエクストラクタは、参照されたトラックから１つまたは複数の全サンプルを抽出するために使用され得る。図８〜図１２は、別のトラックの１つのビデオサンプルボックスを識別することが可能であるメディアエクストラクタの例である。図１３に示すように、エクストラクタを実装する別の方法は、別のトラックからのサンプルのサンプルグルーピングを可能にすることである。時間スケーラビリティのためのより具体的なサポートを与えるために、図１４に示すように、時間識別子がシグナリングされ得る。図１６〜図２２は、ＭＶＣのためのメディアエクストラクタの例であり、各ビデオサンプルボックス（アクセスユニット）から１つまたは複数の潜在的な非連続ＮＡＬユニットを抽出することが可能である。エクストラクタの様々な例は、ファイルまたはアクセスユニット中のオフセットおよびバイトの長さに基づくが、他の例は、純粋に全ＮＡＬユニットのインデックスに基づくことができ、したがって、バイト範囲のシグナリングが必要でなくてよい。また、全ＮＡＬユニットのインデックスをもつシグナリングエクストラクタの機構は、ＳＶＣファイルフォーマットに拡張され得る。
【０１３７】
また、図８〜図２１の例は、３ＧＰＰファイルフォーマットに対する拡張として、直接３ＧＰＰファイルフォーマットに適用され得る。また、図８〜図２１のうちの１つまたは複数の要素および概念は、他のエクストラクタを形成するために、図８〜図２２のうちの他の図の要素と組み合わせられ得る。図８〜図２１のうちのいくつかの図は、特定のファイルフォーマットに関して説明しているが、概して、図８〜図２１の例は、同様の特性をもつ任意のファイルフォーマット、たとえば、ＩＳＯベースメディアファイルフォーマットまたはＩＳＯベースメディアファイルフォーマットの拡張に関して使用され得る。３ＧＰＰにおいて提案されたエクストラクタの使用を可能にするために、３ＧＰＰトラック選択ボックスは、図２１の例に示すように、時間識別子、表示されるべきビューの数、および復号されるべきビューの数など、（抽出される）代替トラックの各々についてのより多くの特性を含むように拡張され得る。
【０１３８】
図８は、メディアエクストラクタのフォーマットを示す例示的なメディアエクストラクタ３００を示すブロック図である。図８の例では、メディアエクストラクタ３００は、トラック参照インデックス３０２とサンプルオフセット値３０４とを含む。本開示の技法によれば、メディアエクストラクタ３００は、メディアエクストラクタトラック内でインスタンス化され得るデータ構造の定義に対応し得る。マルチプレクサ３０は、ビデオファイルの異なるトラックのＮＡＬユニットを識別するために、ビデオファイルのメディアエクストラクタトラック中にメディアエクストラクタ３００の例に準拠するエクストラクタを含めるように構成され得る。デマルチプレクサ３８は、メディアエクストラクタ３００に準拠するエクストラクタを使用して識別されたＮＡＬユニットを検索するように構成され得る。
【０１３９】
トラック参照インデックス３０２は、識別されたＮＡＬユニットが存在するトラックの識別子に対応し得る。ビデオファイルのトラックを区別するために、ビデオファイルの各トラックには一意のインデックスを割り当てられ得る。トラック参照インデックス３０２は、データを抽出すべきトラックを発見するために使用するトラック参照のインデックスを指定し得る。そのデータが抽出されるトラック中のサンプルは、エクストラクタを含んでいるサンプルに正確に時間的に整合され得る（メディア復号タイムラインにおいて、時間サンプルテーブルを使用して、サンプルオフセット値３０４によって指定されたオフセットだけ調整される）。いくつかの例では、ビデオファイルの第１のトラックはインデックス値「１」を有し、したがって、マルチプレクサ３０は、ビデオファイルの第１のトラックを参照するトラック参照インデックス値３０２に値「１」を割り当て得る。トラック参照インデックス値の値「０」は、将来の使用のために予約され得る。
【０１４０】
サンプルオフセット値３０４は、メディアエクストラクタトラック中のメディアエクストラクタ３００の時間ロケーションから、トラック参照インデックス３０２によって参照されるトラックの識別されたＮＡＬユニットまでのオフセット値を定義する。すなわち、サンプルオフセット値３０４は、情報源として使用されるリンクされたトラック中のサンプルの相対インデックスを与える。サンプルオフセット値３０４の値０は、エクストラクタを含んでいるサンプルと同じ、または最も近接して先行する復号時間をもつサンプルを参照する。サンプル１は次のサンプルであり、サンプル−１は前のサンプルであり、以下同様である。たとえば、メディアエクストラクタ３００に準拠するメディアエクストラクタが、Ｈ．２６３またはＭＰＥＧ−４  ｐａｒｔ２で使用されるとき、メディアエクストラクタは、トラック参照インデックス３０２によって参照されるビデオトラックの時間サブセットを抽出するために使用され得る。
【０１４１】
以下の擬似コードは、メディアエクストラクタ３００と同様のメディアエクストラクタクラスの例示的な定義を与える。
【数１】
0005591932.tif 000005
【０１４２】
マルチプレクサ３０およびデマルチプレクサ３８は、上記の例示的な擬似コードにおいて定義されたメディアエクストラクタを使用してメディアエクストラクタデータオブジェクトをインスタンス化し得る。したがって、デマルチプレクサ３８は、たとえば、インスタンス化されたメディアエクストラクタによって参照された別のトラックから識別されたデータを取り出すために、選択されたトラックからデータを取り出すとき、インスタンス化されたメディアエクストラクタを参照し得る。
【０１４３】
例示的な擬似コードでは、クラスＭｅｄｉａＥｘｔｒａｃｔｏｒ（）がバイト整合される。すなわち、エクストラクタがＭｅｄｉａＥｘｔｒａｃｔｏｒ（）クラスからインスタンス化されたとき、エクストラクタは８バイト境界上で整合される。変数「ｔｒａｃｋ＿ｒｅｆ＿ｉｎｄｅｘ」はトラック参照インデックス値３０２に対応し、この例示的な擬似コードでは、符号なしの８バイト整数値に対応する。変数「ｓａｍｐｌｅ＿ｏｆｆｓｅｔ」は、サンプルオフセット値３０４に対応し、この例では、符号付きの８バイト整数値に対応する。
【０１４４】
図９は、メディアエクストラクタ３１０の別の例を示すブロック図である。メディアエクストラクタ３１０は、トラック参照インデックス３１４とサンプルオフセット値３１６とを含み、さらに、サンプルヘッダ３１２を含む。トラック参照インデックス３１４およびサンプルオフセット値３１６は、概してトラック参照インデックス３０２およびサンプルオフセット値３０４（図８）と同様のデータを含み得る。
【０１４５】
サンプルヘッダ３１２は、Ｈ．２６４／ＡＶＣに対応する例では、メディアエクストラクタ３１０によって参照されるビデオサンプルのＮＡＬユニットヘッダに従って構築され得る。サンプルヘッダ３１２は、３つのシンタックス要素、ｆｏｒｂｉｄｄｅｎ＿ｚｅｒｏ＿ｂｉｔ、（３ビットを備え得る）ｎａｌ＿ｒｅｆ＿ｉｄｃ、（５ビットを備え得る）ｎａｌ＿ｕｎｉｔ＿ｔｙｐｅをもつデータの１バイトを含み得る。「ｎａｌ＿ｕｎｉｔ＿ｔｙｐｅ」の値は２９（または任意の他の予約済みの数）であり得、他の２つのシンタックス要素は、識別されたビデオサンプル中のそれらのシンタックス要素と同様であり得る。ＭＰＥＧ−４  ｐａｒｔ−２ビジュアルに準拠する例の場合、サンプルヘッダ３１２は、スタートコードプレフィックス「０ｘ  ００  ００  ０１」とスタートコード「０ｘ  Ｃ５」（または任意の他の予約済み数）とを含み得る４バイトコードを備え得、「０ｘ」は、「０ｘ」に続く値が１６進値であることを示す。Ｈ．２６３の場合、サンプルヘッダ３１２はまた、通常のビデオサンプルのスタートコードとは異なるバイト整合されたスタートコードを含み得る。エクストラクタが通常のビデオサンプルと考えられ得るように、サンプルヘッダ３１２は、同期の目的でデマルチプレクサ３８によって使用され得る。
【０１４６】
以下の擬似コードは、メディアエクストラクタ３１０と同様のメディアエクストラクタクラスの例示的な定義を与える。
【数２】
0005591932.tif 000006
【０１４７】
マルチプレクサ３０およびデマルチプレクサ３８は、上記の例示的な擬似コードにおいて定義されたメディアエクストラクタを使用してメディアエクストラクタデータオブジェクトをインスタンス化し得る。したがって、デマルチプレクサ３８は、たとえば、インスタンス化されたメディアエクストラクタによって参照された別のトラックから識別されたデータを取り出すために、選択されたトラックからデータを取り出すとき、インスタンス化されたメディアエクストラクタを参照し得る。
【０１４８】
図１０は、エクストラクタ内で識別されたＮＡＬユニットのバイト範囲をシグナリングすることによって、ＮＡＬユニットを識別する例示的なメディアエクストラクタ３２０を示すブロック図である。メディアエクストラクタ３２０は、サンプルヘッダ３１２と同様であり得るサンプルヘッダ３２２と、トラック参照インデックス３０２と同様であり得るトラック参照インデックス３２４とを含む。ただし、サンプルオフセット値ではなく、メディアエクストラクタ３２０の例はデータオフセット値３２６とデータ長値３２８とを含む。
【０１４９】
データオフセット値３２６は、メディアエクストラクタ３２０によって識別されるデータの開始点を記述し得る。すなわち、データオフセット値３２６は、コピーすべき、トラックインデックス値３２４によって識別されるトラック内の第１のバイトへのオフセットを表す値を備え得る。データ長値３２８は、コピーすべきバイトの数を記述し得、したがって、参照されるサンプル（または複数のＮＡＬユニットを参照するときには複数のサンプル）の長さと等価であり得る。
【０１５０】
以下の擬似コードは、メディアエクストラクタ３２０と同様のメディアエクストラクタクラスの例示的な定義を与える。
【数３】
0005591932.tif 000007
【０１５１】
マルチプレクサ３０およびデマルチプレクサ３８は、上記の例示的な擬似コードにおいて定義されたメディアエクストラクタを使用してメディアエクストラクタデータオブジェクトをインスタンス化し得る。したがって、デマルチプレクサ３８は、たとえば、インスタンス化されたメディアエクストラクタによって参照された別のトラックから識別されたデータを取り出すために、選択されたトラックからデータを取り出すとき、インスタンス化されたメディアエクストラクタを参照し得る。
【０１５２】
図１１は、将来の拡張性のための予約済みビットを含んでいる例示的なメディアエクストラクタ３４０を示すブロック図である。メディアエクストラクタ３４０は、トラック参照インデックス３４２とサンプルオフセット値３４６とを含み、それらは、それぞれ、メディアエクストラクタ３０２およびサンプルオフセット値３０４と同様であり得る。さらに、メディアエクストラクタ３４０は、メディアエクストラクタに対する将来の拡張のために使用される予約済みビットを備え得る予約済みビット３４４を含む。以下の擬似コードは、メディアエクストラクタ３４０と同様のメディアエクストラクタクラスの例示的なクラス定義を与える。
【数４】
0005591932.tif 000008
【０１５３】
マルチプレクサ３０およびデマルチプレクサ３８は、上記の例示的な擬似コードにおいて定義されたメディアエクストラクタを使用してメディアエクストラクタデータオブジェクトをインスタンス化し得る。したがって、デマルチプレクサ３８は、たとえば、インスタンス化されたメディアエクストラクタによって参照された別のトラックから識別されたデータを取り出すために、選択されたトラックからデータを取り出すとき、インスタンス化されたメディアエクストラクタを参照し得る。
【０１５４】
図１２は、トラック参照インデックス値ではなく、トラック識別子値を使用する例示的なメディアエクストラクタ３５０を示すブロック図である。トラックを識別するためのトラック識別子値の使用は、ＩＳＯベースメディアファイルフォーマットでのトラック参照ボックスのプレゼンテーションを参照し得る。メディアエクストラクタ３５０の例は、トラック識別子３５２と予約済みビット３５４とサンプルオフセット値３５６とを含む。予約済みビット３５４は、予約済みビット３５４の周りの破線で示すように随意である。すなわち、いくつかの例は予約済みビット３５４を含み得るが、他の例は予約済みビット３５４を省略し得る。サンプルオフセット値３５６は、サンプルオフセット値３０４と同様であり得る。
【０１５５】
トラック識別子３５２は、データを抽出すべきトラックのトラックＩＤを指定する。データが抽出されるトラック中のサンプルは、メディアエクストラクタ３５０を含んでいるサンプルに正確に時間的に整合され得る（メディア復号タイムラインにおいて、時間サンプルテーブルを使用して、サンプルオフセット３５６によって指定されたオフセットだけ調整される）。第１のトラック参照には、識別子値１が割り当てられ得る。値０は、将来の使用および拡張のために予約され得る。
【０１５６】
以下の擬似コードは、メディアエクストラクタ３５０と同様のメディアエクストラクタクラスの例示的な定義を与える。
【数５】
0005591932.tif 000009
【０１５７】
マルチプレクサ３０およびデマルチプレクサ３８は、上記の例示的な擬似コードにおいて定義されたメディアエクストラクタを使用してメディアエクストラクタデータオブジェクトをインスタンス化し得る。したがって、デマルチプレクサ３８は、たとえば、インスタンス化されたメディアエクストラクタによって参照された別のトラックから識別されたデータを取り出すために、選択されたトラックからデータを取り出すとき、インスタンス化されたメディアエクストラクタを参照し得る。
【０１５８】
図１３は、例示的なメディアエクストラクタサンプルグループ３６０を示すブロック図である。マルチプレクサ３０は、サンプルテーブルボックスコンテナにおいて（タイプ識別子「ＭＥＳＧ」を有する）メッセージタイプボックス中にメディアエクストラクタサンプルグループ３６０を含み得る。マルチプレクサ３０は、メッセージボックスにおいて０または１つのメディアエクストラクタサンプルグループ３６０オブジェクトを含むように構成され得る。図１３の例では、メディアエクストラクタサンプルグループ３６０は、トラック参照インデックス３６２と、グループタイプ３６４と、グループ数カウント３６６と、予約済みビット３６８と、グループ記述インデックス３７０とを含む。
【０１５９】
トラック参照インデックス３６２は、ある基準下でサンプルグループからデータを抽出すべきトラックを発見するために使用されるトラック参照のインデックスを指定する。すなわち、トラック参照インデックス３６２は、トラック参照インデックス３０２と同様の方法で、メディアエクストラクタによって識別されるデータを抽出すべきトラックを識別する。
【０１６０】
グループタイプ値３６４は、メディアエクストラクタサンプルグループ３６０が対応するサンプルグループのタイプを識別する。グループタイプ値３６４は、概してサンプリンググループのサンプルグループを形成するために使用される基準を識別し、トラック参照インデックス３６２によって識別されるトラック中でグループタイプの同じ値をもつサンプルグループ記述テーブルにその基準をリンクする。グループタイプ値３６４は整数値を備え得る。このようにして、メディアエクストラクタサンプルグループ３６０のグループタイプ値は、トラック参照インデックス３６２が参照するトラックのグループタイプと同様であり得る。代替的に、ビデオ時間サブセットの場合、グループタイプ値３６４は「ｖｔｓｔ」として定義され得、メディアエクストラクタサンプルグループはそのグループタイプのためにのみ定義され得、シンタックステーブルは「ｇｒｏｕｐｉｎｇ＿ｔｙｐｅ」のシンタックス要素を必要としないであろう。
【０１６１】
グループ数カウント値３６６は、メディアエクストラクタサンプルグループ３６０を含むメディアエクストラクタトラック中のサンプルグループの数を記述し得る。グループ数カウント値３６６の値０は、グループタイプ値３６４によって参照される基準下でのすべてのサンプルグループが、メディアエクストラクタトラックを形成するために使用されることを表し得る。グループ記述インデックス３６８は、サンプルグループ記述テーブルにおいて、メディアエクストラクタトラックを形成するために使用されるサンプルグループエントリのインデックスを定義する。
【０１６２】
本開示の技法によれば、メディアエクストラクタトラック中でサンプルＢに続くサンプルＡが、トラック参照インデックス３６２によって参照されるトラック中でサンプルＡがサンプルＢに続くことを示すように、サンプルが時間的に順序付けられるようにすべてのサンプルをサンプルグループエントリ中に配置するために、アセンブルプロセスが使用され得る。
【０１６３】
以下の擬似コードは、メディアエクストラクタサンプルグループ３６０と同様のメディアエクストラクタサンプルグループクラスの例示的な定義を与える。
【数６】
0005591932.tif 000010
【０１６４】
マルチプレクサ３０およびデマルチプレクサ３８は、上記の例示的な擬似コードにおいて定義されたメディアエクストラクタを使用してメディアエクストラクタデータオブジェクトをインスタンス化し得る。したがって、デマルチプレクサ３８は、たとえば、インスタンス化されたメディアエクストラクタによって参照された別のトラックから識別されたデータを取り出すために、選択されたトラックからデータを取り出すとき、インスタンス化されたメディアエクストラクタを参照し得る。
【０１６５】
図１４は、ＡＶＣファイルフォーマットに準拠するビデオファイルのコンテキストにおいて使用され得る例示的なメディアエクストラクタ３８０を示すブロック図である。メディアエクストラクタ３８０の例は、トラック参照インデックス３８２と、時間識別子値３８４と、予約済みビット３８６と、サンプルオフセット値３８８とを含む。トラック参照インデックス３８２およびサンプルオフセット値３８８は、それぞれトラック参照インデックス３０２およびサンプルオフセット値３０４と同様の方法で使用され得る。予約済みビット３８６は、将来の使用のために予約され得、この時点ではセマンティック値を割り当てられない。
【０１６６】
時間識別子値３８４は、メディアエクストラクタ３８０によって抽出されたサンプルの時間レベルを指定する。一例では、時間レベルは０以上７以下の範囲内にある。上記で説明したように、符号化されたピクチャは時間レベルに対応し得、時間レベルは、概してフレーム間の符号化階層を記述する。たとえば、（アンカーフレームとも呼ばれる）キーフレームは最高時間レベルを割り当てられ得、参照フレームとして使用されないフレームは相対的により低い時間レベルを割り当てられ得る。このようにして、メディアエクストラクタ３８０は、サンプル自体を明示的に識別するのではなく、サンプルの時間レベルを参照することによって、トラック参照インデックス３８２によって参照されたトラックから抽出されたサンプルを識別し得る。時間識別子値３８４によって定義される値よりも高い値までのメディアエクストラクタをもつメディアエクストラクタトラックは、より高いフレームレートをもつ動作点に対応し得る。
【０１６７】
以下の擬似コードは、メディアエクストラクタ３８０と同様のメディアエクストラクタクラスの例示的な定義を与える。
【数７】
0005591932.tif 000011
【０１６８】
マルチプレクサ３０およびデマルチプレクサ３８は、上記の例示的な擬似コードにおいて定義されたメディアエクストラクタを使用してメディアエクストラクタデータオブジェクトをインスタンス化し得る。したがって、デマルチプレクサ３８は、たとえば、インスタンス化されたメディアエクストラクタによって参照された別のトラックから識別されたデータを取り出すために、選択されたトラックからデータを取り出すとき、インスタンス化されたメディアエクストラクタを参照し得る。
【０１６９】
図１５は、メディアエクストラクタトラックを含むようにＭＶＣを変更するために使用され得る例示的なＭＶＣメディアエクストラクタ４２０を示すブロック図である。メディアエクストラクタ４２０の例は、随意のＮＡＬユニットヘッダ４２２と、トラック参照インデックス４２４と、サンプルオフセット４２６と、連続バイトセットカウント４２８と、データオフセット値４３０およびデータ長値４３２を含む値のループとを含む。ＭＶＣメディアエクストラクタ４２０は、特定のトラックからビュー構成要素のサブセットのいくつかのＮＡＬユニットを抽出するために使用され得る。ＭＶＣメディアエクストラクタ４２０の例は、参照されたトラックのサンプルからデータを抽出するときにトラック中のビュー構成要素をスキップすることができる。
【０１７０】
存在するとき、ＮＡＬユニットヘッダ４２２は、ＭＶＣメディアエクストラクタ４２０によって識別されたＮＡＬユニットのＮＡＬユニットヘッダをミラーリングし得る。すなわち、ＮＡＬユニットヘッダ４２２のシンタックス要素は、ＭＶＣファイルフォーマットで定義されたエクストラクタまたはアグリゲータ生成プロセスにおけるＮＡＬユニットヘッダシンタックスに従って生成され得る。いくつかの例では、たとえば、関係するＮＡＬユニットヘッダを含めるために一連のエクストラクタが生成されるとき、エクストラクタはＮＡＬユニットヘッダ４２２を必要としないことがある。
【０１７１】
トラック参照インデックス値４２４は、データを抽出すべきトラックを発見するために使用するトラック参照のインデックスを指定する。データが抽出されるトラック中のサンプルは、サンプルオフセット値４２６によって指定されたオフセットだけ調整された、メディア復号タイムラインにおいて、ＭＶＣメディアエクストラクタ４２０を含んでいるサンプルに時間的に整合され得る。第１のトラック参照は、インデックス値１を受信するように指定され得、トラック参照インデックス値の値０が予約され得る。
【０１７２】
サンプルオフセット値４２６は、トラック参照インデックス値４２４によって参照されたトラック中にある抽出されるべきサンプルの、ＭＶＣメディアエクストラクタ４２０の時間ロケーションに対するオフセットを定義する。サンプルオフセット値４２６の値０は、抽出すべきサンプルが同じ時間ロケーションにあることを示し、−１は前のサンプルを示し、＋１は次のサンプルを示し、以下同様である。
【０１７３】
連続バイトセットカウント４２８は、データを抽出すべきトラックのサンプルの連続バイトセットの数を記述する。連続バイトセットカウント４２８が値０を有する場合、トラック中の参照されたサンプル全体が抽出されることになる。連続バイトセットはまた、サンプルの別々の部分として参照され得る。
【０１７４】
データオフセット値４３０およびデータ長値４３２はループにおいて発生する。概して、ループの反復回数、すなわち、データオフセット値４３０およびデータ長値４３２の数は、抽出されるべきサンプルの部分の数（たとえば、連続バイトセットの数）に関係する。このようにして、ＭＶＣメディアエクストラクタ４２０を使用してサンプルの２つ以上の部分が抽出され得る。抽出されるべきサンプルの部分ごとに、データオフセット値４３０のうちの対応する１つが部分の開始（たとえば、サンプルの最初のバイトに対する、部分の最初のバイト）を示し、データ長値４３２のうちの対応する１つが、コピーすべき長さ、たとえば、バイトの数を示す。いくつかの例では、データ長値４３２のうちの１つの値０は、サンプル中のすべての残りのバイトをコピーすべきであること、すなわち、部分が、データオフセット値４３０のうちの対応する１つによって示されたバイトと、サンプルの終端までのすべての他の連続バイトとに対応することを示し得る。
【０１７５】
以下の擬似コードは、ＭＶＣメディアエクストラクタ４２０と同様のメディアエクストラクタクラスの例示的な定義を与える。
【数８】
0005591932.tif 000012
【０１７６】
マルチプレクサ３０およびデマルチプレクサ３８は、上記の例示的な擬似コードにおいて定義されたメディアエクストラクタを使用してメディアエクストラクタデータオブジェクトをインスタンス化し得る。したがって、デマルチプレクサ３８は、たとえば、インスタンス化されたメディアエクストラクタによって参照された別のトラックから識別されたデータを取り出すために、選択されたトラックからデータを取り出すとき、インスタンス化されたメディアエクストラクタを参照し得る。
【０１７７】
図１６は、メディアエクストラクタトラックを含むようにＭＶＣを変更するために使用され得る別の例示的なＭＶＣメディアエクストラクタ４４０を示すブロック図である。ＭＶＣメディアエクストラクタ４４０の例は、図１５の例に関して説明したサンプルの固有のバイトとは反対に、抽出のための特定のＮＡＬユニットを識別する。図１６の例では、ＭＶＣメディアエクストラクタ４４０は、随意のＮＡＬユニットヘッダ４４２と、トラック参照インデックス４４４と、サンプルオフセット４４６と、連続ＮＡＬＵ（ＮＡＬユニット）セットカウント４４８と、ＮＡＬＵオフセット値４５０および連続ＮＡＬユニットの数４５２のループとを含む。ＮＡＬユニットヘッダ４４２、トラック参照インデックス４４４、およびサンプルオフセット値４４６は、概して、それぞれＮＡＬユニットヘッダ４２２、トラック参照インデックス４２４、およびサンプルオフセット値４２６と同様に定義される。
【０１７８】
連続ＮＡＬＵセットカウント４４８は、データを抽出すべきトラックのサンプルの連続ＮＡＬユニットの数を記述する。いくつかの例では、この値が０に設定された場合、トラック中の参照されたサンプル全体が抽出される。
【０１７９】
ＮＡＬＵオフセット値４５０および連続ＮＡＬＵの数４５２はループにおいて発生する。概して、連続ＮＡＬＵセットカウント４４８によって定義された、連続ＮＡＬＵのセットと同数のＮＡＬＵオフセット値のインスタンスおよび連続ＮＡＬＵの数がある。各ＮＡＬＵオフセット値は、データを抽出すべきトラックのサンプルにおける対応するＮＡＬユニットのオフセットを記述する。ＮＡＬユニットのうちのこのオフセットから開始するＮＡＬユニットは、このエクストラクタを使用して抽出され得る。連続ＮＡＬＵ値の各数は、ＮＡＬユニットの対応するセットのためにコピーすべき、単一の参照されたＮＡＬユニット全体の数を記述する。
【０１８０】
以下の擬似コードは、ＭＶＣメディアエクストラクタ４４０と同様のメディアエクストラクタクラスの例示的な定義を与える。
【数９】
0005591932.tif 000013
【０１８１】
マルチプレクサ３０およびデマルチプレクサ３８は、上記の例示的な擬似コードにおいて定義されたメディアエクストラクタを使用してメディアエクストラクタデータオブジェクトをインスタンス化し得る。したがって、デマルチプレクサ３８は、たとえば、インスタンス化されたメディアエクストラクタによって参照された別のトラックから識別されたデータを取り出すために、選択されたトラックからデータを取り出すとき、インスタンス化されたメディアエクストラクタを参照し得る。
【０１８２】
図１７は、ビュー構成要素のための２つ以上のＮＡＬユニットがあるとき、同じビュー構成要素中のＮＡＬユニットをアグリゲートする別の例示的なＭＶＣメディアエクストラクタ４６０を示すブロック図である。その場合、ＭＶＣメディアエクストラクタ４６０は、識別されたビュー構成要素を抽出するために使用され得る。図１７の例では、ＭＶＣメディアエクストラクタ４６０は、随意のＮＡＬユニットヘッダ４６２と、トラック参照インデックス４６４と、サンプルオフセット４６６と、連続ビューセットカウント４６８と、ビュー構成要素オフセット値４７０およびビュー構成要素カウント４７２のループとを含む。ＮＡＬユニットヘッダ４６２、トラック参照インデックス４６４、およびサンプルオフセット値４６６は、概して、それぞれＮＡＬユニットヘッダ４２２、トラック参照インデックス４２４、およびサンプルオフセット値４２６と同様に定義される。
【０１８３】
連続ビューセットカウント４６８は、データを抽出すべき、トラック参照インデックス４６４によって識別されたトラック中の識別されたサンプルの連続ビュー構成要素の数を定義する。マルチプレクサ３０は、トラック中の参照されたサンプル全体が抽出されるべきであることを示すために、連続ビューセットカウント４６８の値を０に設定し得る。
【０１８４】
ビュー構成要素オフセット値４７０およびビュー構成要素カウント４７２はループにおいて発生する。概して、連続ビューセットカウント４６８の値と同数のループの反復があり、各ループは連続ビューセットのうちの１つに対応する。ビュー構成要素オフセット値４７０の各々は、対応する連続ビューセットのためのデータを抽出すべきトラックのサンプルにおける最初のビュー構成要素のオフセットを示す。次いで、ビュー構成要素のうちのこのオフセットから開始するビュー構成要素は、ＭＶＣメディアエクストラクタ４６０を使用して抽出され得る。ビュー構成要素カウント４７２の各々は、対応する連続ビューセットのためのコピーすべきサンプル中の参照されたビュー構成要素全体の数を記述する。
【０１８５】
以下の擬似コードは、ＭＶＣメディアエクストラクタ４６０と同様のメディアエクストラクタクラスの例示的な定義を与える。
【数１０】
0005591932.tif 000014
【０１８６】
マルチプレクサ３０およびデマルチプレクサ３８は、上記の例示的な擬似コードにおいて定義されたメディアエクストラクタを使用してメディアエクストラクタデータオブジェクトをインスタンス化し得る。したがって、デマルチプレクサ３８は、たとえば、インスタンス化されたメディアエクストラクタによって参照された別のトラックから識別されたデータを取り出すために、選択されたトラックからデータを取り出すとき、インスタンス化されたメディアエクストラクタを参照し得る。
【０１８７】
図１８は、様々なトラックを参照するために使用され得るＭＶＣメディアエクストラクタ４８０の別の例を示すブロック図である。図１８の例では、ＭＶＣメディアエクストラクタ４８０は、随意のＮＡＬユニットヘッダ４８２と、連続ビューセットカウント４８４と、サンプルオフセット値４８６、トラック参照インデックス値４８８、ビュー構成要素オフセット値４９０、およびビュー構成要素カウント４９２のループとを含む。ＮＡＬユニットヘッダ４８２は、ＮＡＬユニットヘッダ４２２と同様に定義され得、いくつかの例では省略され得る。
【０１８８】
連続ビューセットカウント４８４は、ｔｒａｃｋ＿ｒｅｆ＿ｉｎｄｅｘのトラック参照インデックスをもつ、データを抽出すべきメディアエクストラクタトラックのサンプルの連続ビュー構成要素の数を与える。ｔｒａｃｋ＿ｒｅｆ＿ｉｎｄｅｘは、データを抽出すへきトラックを発見するために使用すべきトラック参照のインデックスを指定し得る。データが抽出されるトラック中のビュー構成要素は、（時間サンプル表を使用して、サンプルオフセット値４８６のうちの対応する１つによって指定されたオフセットだけ調整された、メディア復号タイムラインにおいて、）ＭｅｄｉａＥｘｔｒａｃｔｏｒＭＶＣを含んでいるサンプルに時間的に整合され得る。第１のトラック参照はインデックス値１を有し得、値０は将来の使用のために予約され得る。
【０１８９】
ＭＶＣメディアエクストラクタ４８０の例は、サンプルオフセット値４８６と、トラック参照インデックス値４８８と、ビュー構成要素オフセット値４９０と、ビュー構成要素カウント４９２との各々をループ中に含む。ループの各反復は、ＭＶＣメディアエクストラクタ４８０に対応するサンプルのためのデータを抽出すべき特定のトラックに対応する。
【０１９０】
サンプルオフセット値４８６は、トラック参照インデックス値４８８のうちの対応する１つによって参照された、情報源として使用され得るトラック中のサンプルの相対インデックスを定義する。サンプル０は、ＭＶＣメディアエクストラクタ４８０を含んでいるサンプルと同じか、または最も近い先行する復号時間をもつトラック参照インデックス値４８８のうちの対応する１つによって識別されたトラック中のサンプルであり、サンプル１は次のサンプルであり、サンプル−１は前のサンプルであり、以下同様である。
【０１９１】
トラック参照インデックス値４８８の各々は、ループの対応する反復のためのデータを抽出すべきトラックを発見するために使用すべきトラック参照のインデックスを指定する。複数のトラック参照インデックス値を使用することによって、ＭＶＣメディアエクストラクタ４８０は、複数の異なるトラックからデータを抽出し得る。
【０１９２】
ビュー構成要素オフセット値４９０の各々は、ループのこの反復におけるトラック参照インデックス値４８８のうちの対応する１つに対応するトラック参照インデックスをもつ、データを抽出すべきトラックのサンプルにおける第１のビュー構成要素のオフセットを記述する。ビュー構成要素のうちのこのオフセットから開始するビュー構成要素は、ＭＶＣメディアエクストラクタ４８０を使用して抽出され得る。いくつかの例では、外側のループは、サンプルが抽出されるべきトラックにわたって反復し、内側のループは、対応するトラックから抽出されるべきサンプルにわたって反復する、ネスティングされたループ構造を有する、図１５〜図１７のメディアエクストラクタと同様のメディアエクストラクタが構築され得る。ビュー構成要素カウント４９２の各々は、ループのこの反復におけるトラック参照インデックス値４８８の現在の値に対応するトラック参照インデックスをもつトラックのサンプル中の参照されたビュー構成要素の数を記述する。
【０１９３】
以下の擬似コードは、ＭＶＣメディアエクストラクタ４８０と同様のメディアエクストラクタクラスの例示的な定義を与える。
【数１１】
0005591932.tif 000015
【０１９４】
マルチプレクサ３０およびデマルチプレクサ３８は、上記の例示的な擬似コードにおいて定義されたメディアエクストラクタを使用してメディアエクストラクタデータオブジェクトをインスタンス化し得る。したがって、デマルチプレクサ３８は、たとえば、インスタンス化されたメディアエクストラクタによって参照された別のトラックから識別されたデータを取り出すために、選択されたトラックからデータを取り出すとき、インスタンス化されたメディアエクストラクタを参照し得る。
【０１９５】
図１９は、エクストラクタの持続時間をシグナリングする別の例示的なＭＶＣメディアエクストラクタ５００を示すブロック図である。メディアエクストラクタトラック中の異なるサンプルがエクストラクタの同じシンタックス要素を共有するとき、ＭＶＣメディアエクストラクタ５００は１つまたは複数の利点を与え得る。図１９の例では、ＭＶＣメディアエクストラクタ５００は、サンプルカウント５０２と、連続ビューセットカウント５０４と、サンプルオフセット値５０６と、トラック参照インデックス５０８と、ビュー構成要素オフセット５１０と、ビュー構成要素カウント５１２とを含む。
【０１９６】
連続ビューセットカウント５０４、サンプルオフセット値５０６、トラック参照インデックス５０８、ビュー構成要素オフセット５１０、およびビュー構成要素カウント５１２は、概して、連続ビューセットカウント４８４、サンプルオフセット値４８６、トラック参照インデックス４８８、ビュー構成要素オフセット４９０、およびビュー構成要素カウント４９２のうちの対応する１つに従って定義され得る。サンプルカウント５０２は、同じメディアエクストラクタを使用するメディアエクストラクタトラックを含んでいるＭＶＣメディアエクストラクタ５００中の連続サンプルの数を定義し得る。
【０１９７】
以下の擬似コードは、ＭＶＣメディアエクストラクタ５００と同様のメディアエクストラクタクラスの例示的な定義を与える。
【数１２】
0005591932.tif 000016
【０１９８】
マルチプレクサ３０およびデマルチプレクサ３８は、上記の例示的な擬似コードにおいて定義されたメディアエクストラクタを使用してメディアエクストラクタデータオブジェクトをインスタンス化し得る。したがって、デマルチプレクサ３８は、たとえば、インスタンス化されたメディアエクストラクタによって参照された別のトラックから識別されたデータを取り出すために、選択されたトラックからデータを取り出すとき、インスタンス化されたメディアエクストラクタを参照し得る。
【０１９９】
図２０は、異なるエクストラクタのセットを定義する別の例示的なＭＶＣメディアエクストラクタ５２０を示すブロック図である。メディアエクストラクタトラック中のサンプルごとに、サンプルは、エクストラクタのセットのうちの１つまたは複数、あるいはエクストラクタへの参照のいずれかを使用することができる。すなわち、ＭＶＣメディアエクストラクタ５２０と同様のメディアエクストラクタのセットが定義され得、各サンプルは、別のトラックのサンプルを識別するために、エクストラクタのセットのうちの１つまたは複数、あるいはエクストラクタへの参照のいずれかを使用し得る。
【０２００】
ＭＶＣメディアエクストラクタ５２０の例は、エクストラクタ識別子値５２２と、サンプルオフセット値５２４と、トラック参照インデックス値５２６と、連続ビューセットカウント５２８と、ビュー構成要素オフセット５３０およびビュー構成要素カウント５３２を含むループとを含む。サンプルオフセット値５２４、連続ビューセットカウント５２８、ビュー構成要素オフセット５３０、およびビュー構成要素カウント５３２は、連続ビューセットカウント４８４、サンプルオフセット値４８６、ビュー構成要素オフセット４９０、およびビュー構成要素カウント４９２のうちの対応する１つに従って定義され得る。トラック参照インデックス値５２６は、たとえば、トラック参照インデックス４６４に従って定義され得る。
【０２０１】
エクストラクタ識別子値５２２は、エクストラクタ、すなわち、ＭＶＣメディアエクストラクタ５２０の識別子を定義する。メディアエクストラクタトラック中のサンプルが、メディアエクストラクタを使用するためにエクストラクタ識別子値を参照し得るように、同じメディアエクストラクタトラック中のエクストラクタは、異なるエクストラクタ識別子値を割り当てられる。参照エクストラクタボックスはまた、エクストラクタの数と参照エクストラクタ識別子とを含むように定義され得る。エクストラクタの数の値は、エクストラクタトラック中のサンプルのためのデータをコピーするために使用されるエクストラクタの数を与え得る。エクストラクタの数の値が０に等しいとき、所定のエクストラクタ識別子、たとえば、０に等しいエクストラクタ識別子を有するエクストラクタが使用され得る。参照エクストラクタ識別子は、エクストラクタトラック中のサンプルのためのデータをコピーするために使用されるエクストラクタのエクストラクタ識別子を与え得る。このボックスはメディアエクストラクタトラックのサンプル中に含まれ得る。
【０２０２】
以下の擬似コードは、ＭＶＣメディアエクストラクタ５２０と同様のメディアエクストラクタクラスの例示的な定義を与える。
【数１３】
0005591932.tif 000017
【０２０３】
マルチプレクサ３０およびデマルチプレクサ３８は、上記の例示的な擬似コードにおいて定義されたメディアエクストラクタを使用してメディアエクストラクタデータオブジェクトをインスタンス化し得る。したがって、デマルチプレクサ３８は、たとえば、インスタンス化されたメディアエクストラクタによって参照された別のトラックから識別されたデータを取り出すために、選択されたトラックからデータを取り出すとき、インスタンス化されたメディアエクストラクタを参照し得る。
【０２０４】
以下の擬似コードは、上記で説明した参照エクストラクタボックスのための参照エクストラクタボックスクラスの例示的な定義を与える。
【数１４】
0005591932.tif 000018
【０２０５】
図２１は、マップサンプルグループを使用して形成され得る例示的なＭＶＣメディアエクストラクタ５５０を示すブロック図である。ＭＶＣメディアエクストラクタ５５０の例は、それぞれがマップサンプルグループ中の連続ＮＡＬユニットを与える、一連のサンプルエントリからのＮＡＬユニットグループを指定する。図２２の例では、ＭＶＣメディアエクストラクタ５５０は、ＮＡＬＵグループカウント５５２と、トラックインデックス５５４、グループ記述インデックス５５６、ＮＡＬＵ開始マップサンプル５５８、およびＮＡＬＵビューカウント５６０を含むループとを含む。
【０２０６】
ＮＡＬＵグループカウント５５２は、参照トラック中のマップサンプルグループエントリからのＮＡＬユニットグループの数を指定する。トラック参照インデックス値５５４は、それぞれループの対応する反復のためのデータを抽出すべきトラックを発見するために使用すべきトラック参照のインデックスを指定する。グループ記述インデックス５５６は、それぞれループの対応する反復のためのＮＡＬユニットグループを形成するために使用されるマップサンプルグループエントリのインデックスを指定する。ＮＡＬＵ開始マップサンプル５５８は、それぞれループの対応する反復におけるグループ記述インデックス５５６のうちの対応する１つのマップサンプルエントリインデックスをもつマップサンプルグループ中のＮＡＬユニットのオフセットを指定する。ＮＡＬＵビューカウント５６０は、ループの対応する反復におけるグループ記述インデックス５５６のうちの対応する１つのマップサンプルエントリインデックスをもつマップサンプルグループ中のメディアエクストラクタ中に抽出されるべき連続ＮＡＬユニットの数を指定する。
【０２０７】
以下の擬似コードは、ＭＶＣメディアエクストラクタ５５０と同様のメディアエクストラクタクラスの例示的な定義を与える。
【数１５】
0005591932.tif 000019
【０２０８】
マルチプレクサ３０およびデマルチプレクサ３８は、上記の例示的な擬似コードにおいて定義されたメディアエクストラクタを使用してメディアエクストラクタデータオブジェクトをインスタンス化し得る。したがって、デマルチプレクサ３８は、たとえば、インスタンス化されたメディアエクストラクタによって参照された別のトラックから識別されたデータを取り出すために、選択されたトラックからデータを取り出すとき、インスタンス化されたメディアエクストラクタを参照し得る。
【０２０９】
本開示の技法は、サンプルグループ中のサンプルのビュー構成要素を構成するためのアセンブルプロセスを含み得る。サンプルグループエントリのサンプル中のビュー構成要素は、サンプルＡが（トラック参照インデックスのインデックスをもつ）元のトラック中のサンプルＢに続く場合、サンプルＡ中のビュー構成要素がメディアエクストラクタトラック中のサンプルＢ中のビュー構成要素に続き、サンプルＡがサンプルＢよりも前の復号時間を有する場合、サンプルＡ中のビュー構成要素がメディアエクストラクタトラック中のサンプルＢ中のビュー構成要素に続き、トラックの同じサンプル中の２つのビュー構成要素は、メディアエクストラクタマップサンプルグループのシンタックステーブル中の提示の順序に従い、トラックの同じサンプル中の２つのビュー構成要素がＮＡＬユニットの同じグループに属する場合、すなわち、それらがメディアエクストラクタマップサンプルグループ中の同じループのシンタックス要素によって抽出された場合、それらは元の順序に従い、２つのビュー構成要素が異なるトラック中のサンプルから抽出されたが、同じタイムスタンプをもつ場合、それらはビュー識別子ボックス中に指定された順序インデックスの順序に従うように、適時に順序付ける。
【０２１０】
図２２は、トラック選択ボックスの追加の属性をシグナリングする例示的な変更された３ＧＰＰトラック選択ボックス３９０を示すブロック図である。この著述時点での、直近の３ＧＰＰ規格は、言語と、帯域幅と、コーデックと、スクリーンサイズと、最大パケットサイズと、メディアタイプとを記述する属性を含むＡｔｔｒｉｂｕｔｅＬｉｓｔを指定する。３ＧＰＰトラック選択ボックス３９０の属性リスト３９２は、言語値３９４と、帯域幅値３９６と、コーデック値３９８と、スクリーンサイズ値４００とを含み、既存の３ＧＰＰ規格に従ってこれらの属性をシグナリングする。さらに、本開示の技法は、フレームレート値４０６と、時間識別子値４０８と、場合によってはディスプレイビュー数値４１０と、出力ビューリスト値４１２とを含むように既存の３ＧＰＰトラック選択ボックスを変更し得る。
【０２１１】
言語値３９４は、既存の３ＧＰＰ規格の５．３．３．４章において定義されている、セッションレベルＳＤＰにおける「ａｌｔグループ」属性のグループタイプＬＡＮＧの値を定義する。帯域幅値３９６は、メディアレベルＳＤＰにおける「ｂ＝ＡＳ」属性の値を定義する。コーデック値３９８は、メディアトラックのサンプル記述ボックス中のＳａｍｐｌｅＥｎｔｒｙ値を定義する。スクリーンサイズ値４００は、メディアトラック中のＭＰ４ＶｉｓｕａｌＳａｍｐｌｅＥｎｔｒｙ値およびＨ２６３ＳａｍｐｌｅＥｎｔｒｙ値の幅および高さフィールドを定義する。最大パケットサイズ値４０２は、ＲＴＰＨｉｎｔＳａｍｐｌｅＥｎｔｒｙ中、たとえば、ＲＴＰヒントトラック中のＭａｘＰａｃｋｅｔＳｉｚｅフィールドの値を定義する。メディアタイプ値４０４は、メディアトラックのハンドラボックス中のＨａｎｄｌｅｒＴｙｐｅを記述する。概して、これらの値は既存の３ＧＰＰ規格に対応する。
【０２１２】
フレームレート値４０６は、３ＧＰＰトラック選択ボックス３９０に対応するビデオトラックまたはメディアエクストラクタトラックのフレームレートを記述する。時間識別子値４０８は、３ｇＰＰトラック選択ボックス３９０に対応するビデオトラックの時間識別子に対応し、より低い時間識別子値をもつトラックに依存し得る。いくつかの例では、マルチプレクサ３０は、時間識別子値４０８の値を事前構成された「指定なし」値、たとえば、８に設定することによって、その値が指定されていないことを示すことができる。概して、マルチプレクサ３０は、非ビデオトラックのための時間識別子値４０８の値が指定されないことを示し得る。いくつかの例では、マルチプレクサ３０はまた、対応するビデオトラックがメディアエクストラクタを含んでいないとき、および／または時間サブセットとして他のトラックによって参照されないとき、時間識別子値４０８の値が指定されないことを示し得る。
【０２１３】
３ＧＰＰにおいてＭＶＣが考慮される例では、マルチプレクサ３０は、ディスプレイビュー数の値４１０と出力ビューリスト値４１２との追加の属性を含み得る。そのような例では、マルチプレクサ３０は時間識別子値４０８を省略し得る。ディスプレイビュー数の値４１０は、対応するトラックのための出力されるべきビューの数を記述する。たとえば、表示されるべきビューが表示されないビューを参照して符号化されるとき、出力されるべきビューの数と復号されるべきビューの数とは必ずしも同じでない。出力ビューリスト値４１２は、出力されるべきＮ個のビューを識別するＮ個のビュー識別子のリストを定義し得る。
【０２１４】
図２３は、本開示の技法による、メディアエクストラクタを使用するための例示的な方法を示すフローチャートである。初めに、Ａ／Ｖソースデバイス２０（図１）などのソースデバイスは、本開示の技法に従って、ファイルフォーマットに準拠するファイルのためのビデオトラックを構築する。すなわち、マルチプレクサ３０は、ビデオトラックが１つまたは複数のＮＡＬユニットを含む符号化されたビデオサンプルを含むように、トラック中の符号化されたビデオデータをアセンブルする（６００）。マルチプレクサ３０はまた、ビデオトラックの１つまたは複数のＮＡＬユニットの一部または全部を参照するエクストラクタを構築し（６０２）、エクストラクタを含むエクストラクタトラックを構築する（６０４）。さらに、マルチプレクサ３０は、符号化されたビデオサンプルを、メディアエクストラクタトラック中、ならびに符号化されたビデオサンプルおよび／またはメディアエクストラクタを含む追加のトラック中に含め得る。
【０２１５】
次いで、マルチプレクサ３０はファイルを出力する（６０６）。ファイルは、送信機、トランシーバ、ネットワークインターフェース、モデム、または他の信号出力手段を介して信号に出力され得るか、または、ファイルは、ＵＳＢインターフェース、磁気メディアレコーダ、光レコーダ、または他のハードウェアインターフェースなどのハードウェアインターフェースを介して記憶媒体に出力され得る。
【０２１６】
Ａ／Ｖ宛先デバイス４０は、たとえば、信号を受信するかまたは記憶媒体を読み取ることによって、最終的にファイルを受信する（６０８）。デマルチプレクサ３８は、復号されるべき２つ（以上）のトラックのうちの１つを選択する（６１０）。デマルチプレクサ３８は、ビデオデコーダ４８の復号機能、ビデオ出力４４のレンダリング機能、または他の基準に基づいてトラックのうちの１つを選択し得る。エクストラクタトラックが選択されると、デマルチプレクサ３８は、エクストラクタによって識別された符号化されたビデオサンプルが記憶されたトラックから、エクストラクタトラック中のエクストラクタによって参照されたＮＡＬユニットを取り出し得る。
【０２１７】
デマルチプレクサ３８は、選択されたトラック中にない、選択されたトラック中の少なくとも１つのエクストラクタによって識別されない符号化されたビデオサンプル（または他のＮＡＬユニット）を廃棄し得る。すなわち、デマルチプレクサ３８は、使用されないビデオデータを復号するタスクをビデオデコーダ４８に与える必要がないように、そのような符号化されたビデオサンプルをビデオデコーダ４８に送ることを回避し得る。
【０２１８】
１つまたは複数の例では、説明した機能はハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装する場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などのコンピュータ可読記憶媒体を含み得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータまたは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないことを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピーディスク（disk）およびブルーレイ（登録商標）ディスク（disc）を含み、この場合、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）はデータをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０２１９】
コンピュータ可読媒体中に符号化された命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）など１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、または他の等価な集積または個別論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に提供され得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０２２０】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実施され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明したように１つまたは複数のプロセッサを含んで、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０２２１】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
〔１〕
ビデオデータを符号化するための方法であって、前記方法が、
ソースビデオデバイスによって、符号化されたビデオデータに基づいて、複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含む第１のトラックを構築することであって、前記ビデオサンプルがアクセスユニット中に含まれる、第１のトラックを構築することと、
前記ソースビデオデバイスによって、前記第１のトラックの前記ビデオサンプル中の前記複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含む第２のトラックを構築することであって、前記複数のＮＡＬユニットのうちの前記少なくとも１つが第１の識別されたＮＡＬユニットを備え、前記エクストラクタが前記アクセスユニットの第２のＮＡＬユニットを識別し、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続である、第２のトラックを構築することと、
前記第１のトラックと前記第２のトラックとを、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイル中に含めることと、
前記ビデオファイルを出力することと
を備える、方法。
〔２〕
前記ビデオファイルが前記ＩＳＯベースメディアファイルフォーマットに準拠する、〔１〕に記載の方法。
〔３〕
前記ビデオファイルが、スケーラブルビデオコーディング（ＳＶＣ）ファイルフォーマットと、アドバンストビデオコーディング（ＡＶＣ）ファイルフォーマットと、第３世代パートナーシッププロジェクト（３ＧＰＰ）ファイルフォーマットと、マルチビュービデオコーディング（ＭＶＣ）ファイルフォーマットとのうちの少なくとも１つに準拠する、〔１〕に記載の方法。
〔４〕
前記第２のトラックを構築することが、前記符号化されたデータに基づいて、前記第１のトラックの前記複数のＮＡＬユニット中に含まれていない１つまたは複数の追加のＮＡＬユニットを前記第２のトラック中に含めることをさらに備える、〔１〕に記載の方法。
〔５〕
前記第１のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第１のエクストラクタと、前記第２のトラックの前記１つまたは複数のＮＡＬユニットのうちの少なくとも１つを識別する第２のエクストラクタとを含む第３のトラックを構築することをさらに備える、〔４〕に記載の方法。
〔６〕
前記第３のトラックを構築することが、前記第１のトラックおよび前記第２のトラック中に含まれていない１つまたは複数のＮＡＬユニットを前記第３のトラック中に含めることをさらに備える、〔５〕に記載の方法。
〔７〕
前記第２のトラックを構築することが、前記第１のトラックの前記ビデオサンプルの前記複数のＮＡＬユニットの各々を識別するように前記エクストラクタを構築することを備え、前記エクストラクタが、宛先デバイスに、前記ビデオサンプルの前記複数のＮＡＬユニットの各々を全体として抽出させる、〔１〕に記載の方法。
〔８〕
前記第２のトラックを構築することが、前記ビデオファイルの前記第１のトラック中の前記ビデオサンプルの前記複数のＮＡＬユニットのうちの前記１つまたは複数のバイト範囲を指定することによって、前記ビデオサンプルの前記複数のＮＡＬユニットのうちの前記１つまたは複数を識別するように前記エクストラクタを構築することを備える、〔１〕に記載の方法。
〔９〕
前記第１のトラック中の前記ビデオサンプルの前記複数のＮＡＬユニットが、コモンピクチャのスライスと、非ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットと、補足拡張情報（ＳＥＩ）メッセージＮＡＬユニットと、前記アクセスユニットのビデオレイヤと、前記アクセスユニットの異なるビュー構成要素と、複数のＮＡＬユニットからアグリゲートされたＮＵＬユニットとのうちの少なくとも１つを備える、〔１〕に記載の方法。
〔１０〕
前記複数のＮＡＬユニットが第１の複数のＮＡＬユニットを備え、前記方法が、前記符号化されたビデオデータに基づいて第２の複数のＮＡＬユニットを含む第３のトラックを構築することをさらに備え、前記第２の複数のＮＡＬユニットが前記アクセスユニットの一部を形成し、前記第２の複数のＮＡＬユニットが、前記エクストラクタによって識別された前記第２の識別されたＮＡＬユニットを備える、〔１〕に記載の方法。
〔１１〕
前記ビデオサンプルが第１のビデオサンプルを備え、前記複数のＮＡＬユニットが第１の複数のＮＡＬユニットを備え、前記第１のトラックが、第２の複数のＮＡＬユニットを備える第２のサンプルをさらに備え、前記アクセスユニットが前記第２のサンプルを備え、前記第２の複数のＮＡＬユニットが、前記エクストラクタによって識別された前記第２のＮＡＬユニットを備える、〔１〕に記載の方法。
〔１２〕
前記第２のＮＡＬユニットが、前記ビデオサンプル中の前記第１の識別されたＮＡＬユニットから少なくとも１バイトのデータだけ分離された、前記第１のトラックの前記ビデオサンプルの前記複数のＮＡＬユニットのうちの第２のＮＡＬユニットを備える、〔１〕に記載の方法。
〔１３〕
各トラックの特性に基づいて、宛先デバイスによって復号するために前記第１のトラックまたは前記第２のトラックのいずれかが選択可能であるように、前記第１のトラックと前記第２のトラックとがスイッチグループを形成する、〔１〕に記載の方法。
〔１４〕
前記第２トラックを構築することが、
前記第２のトラックのフレームレートをシグナリングすることと、
前記第２のトラックのための前記第１のトラックの前記ビデオサンプルの時間識別子をシグナリングすることとを備え、
前記第２のトラックが２つ以上のビューを備えるとき、前記第２のトラックを構築することが、
前記第２のトラックを復号した後に表示されるべきビューの数を表す値をシグナリングすることと、
前記第２のトラックのための表示されるべきビューを表す１つまたは複数のビュー識別子値をシグナリングすることと、
前記第２のトラックのための復号されるべきビューの数を表す値をシグナリングすることと
をさらに備える、〔１３〕に記載の方法。
〔１５〕
ビデオデータを符号化するための装置であって、前記装置が、
ビデオデータを符号化するように構成されたエンコーダと、
前記符号化されたビデオデータに基づいて、複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含む第１のトラックを構築することであって、前記ビデオサンプルがアクセスユニット中に含まれる、第１のトラックを構築することと、前記第１のトラックの前記ビデオサンプル中の前記複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含む第２のトラックを構築することであって、前記複数のＮＡＬユニットのうちの前記少なくとも１つが第１の識別されたＮＡＬユニットを備え、前記エクストラクタが前記アクセスユニットの第２のＮＡＬユニットを識別し、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続である、第２のトラックを構築することと、前記第１のトラックと前記第２のトラックとを、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイル中に含めることとを行うように構成されたマルチプレクサと、
前記ビデオファイルを出力するように構成された出力インターフェースと
を備える、装置。
〔１６〕
前記ビデオファイルが、ＩＳＯベースメディアファイルフォーマットと、スケーラブルビデオコーディング（ＳＶＣ）ファイルフォーマットと、アドバンストビデオコーディング（ＡＶＣ）ファイルフォーマットと、第３世代パートナーシッププロジェクト（３ＧＰＰ）ファイルフォーマットと、マルチビュービデオコーディング（ＭＶＣ）ファイルフォーマットとのうちの少なくとも１つに準拠する、〔１５〕に記載の装置。
〔１７〕
前記マルチプレクサが、前記符号化されたビデオデータに基づいて、前記第１のトラック中に含まれていない１つまたは複数のＮＡＬユニットを前記第２のトラック中に含めるように構成された、〔１５〕に記載の装置。
〔１８〕
前記マルチプレクサが、前記第１のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第１のエクストラクタと、前記第２のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第２のエクストラクタとを含む第３のトラックを構築するように構成された、〔１７〕に記載の装置。
〔１９〕
前記エクストラクタが第１のエクストラクタを備え、前記マルチプレクサが、前記符号化されたビデオデータに基づいて、複数のＮＡＬユニットを含む第３のエクストラクタトラックを構築するように構成され、前記マルチプレクサが、前記第３のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第２のエクストラクタを含むように前記第２のトラックを構築するように構成された、〔１５〕に記載の装置。
〔２０〕
前記装置が、
集積回路と、
マイクロプロセッサと、
前記ビデオエンコーダと前記マルチプレクサとを含むワイヤレス通信デバイスと
のうちの少なくとも１つを備える、〔１６〕に記載の装置。
〔２１〕
ビデオデータを符号化するための装置であって、前記装置が、
符号化されたビデオデータに基づいて、複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含む第１のトラックを構築するための手段であって、前記ビデオサンプルがアクセスユニット中に含まれる、第１のトラックを構築するための手段と、
前記第１のトラックの前記ビデオサンプル中の前記複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含む第２のトラックを構築するための手段であって、前記複数のＮＡＬユニットのうちの前記少なくとも１つが第１の識別されたＮＡＬユニットを備え、前記エクストラクタが前記アクセスユニットの第２のＮＡＬユニットを識別し、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続である、第２のトラックを構築するための手段と、
前記第１のトラックと前記第２のトラックとを、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイル中に含めるための手段と、
前記ビデオファイルを出力するための手段と
を備える、装置。
〔２２〕
前記ビデオファイルが、ＩＳＯベースメディアファイルフォーマットと、スケーラブルビデオコーディング（ＳＶＣ）ファイルフォーマットと、アドバンストビデオコーディング（ＡＶＣ）ファイルフォーマットと、第３世代パートナーシッププロジェクト（３ＧＰＰ）ファイルフォーマットと、マルチビュービデオコーディング（ＭＶＣ）ファイルフォーマットとのうちの少なくとも１つに準拠する、〔２１〕に記載の装置。
〔２３〕
前記符号化されたデータに基づいて、前記第１のトラック中に含まれていない１つまたは複数のＮＡＬユニットを前記第２のトラック中に含めるための手段をさらに備える、〔２１〕に記載の装置。
〔２４〕
前記第１のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第１のエクストラクタと、前記第２のトラックの前記１つまたは複数のＮＡＬユニットのうちの少なくとも１つを識別する第２のエクストラクタとを含む第３のトラックを構築するための手段をさらに備える、〔２３〕に記載の装置。
〔２５〕
前記エクストラクタが第１のエクストラクタを備え、前記装置が、前記符号化されたビデオデータに基づいて、複数のＮＡＬユニットを含む第３のエクストラクタトラックを構築するための手段をさらに備え、前記第２のトラックを構築するための前記手段が、前記第３のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第２のエクストラクタを含むように前記第２のトラックを構築するための手段を備える、〔２１〕に記載の装置。
〔２６〕
実行されると、
符号化されたビデオデータに基づいて、複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含む第１のトラックを構築することであって、前記ビデオサンプルがアクセスユニット中に含まれる、第１のトラックを構築することと、
前記第１のトラックの前記ビデオサンプル中の前記複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含む第２のトラックを構築することであって、前記複数のＮＡＬユニットのうちの前記少なくとも１つが第１の識別されたＮＡＬユニットを備え、前記エクストラクタが前記アクセスユニットの第２のＮＡＬユニットを識別し、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続である、第２のトラックを構築することと、
前記第１のトラックと前記第２のトラックとを、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイル中に含めることと、
前記ビデオファイルを出力することと
をプロセッサに行わせる命令を備える、コンピュータ可読記憶媒体。
〔２７〕
前記ビデオファイルが、ＩＳＯベースメディアファイルフォーマットと、スケーラブルビデオコーディング（ＳＶＣ）ファイルフォーマットと、アドバンストビデオコーディング（ＡＶＣ）ファイルフォーマットと、第３世代パートナーシッププロジェクト（３ＧＰＰ）ファイルフォーマットと、マルチビュービデオコーディング（ＭＶＣ）ファイルフォーマットとのうちの少なくとも１つに準拠する、〔２６〕に記載のコンピュータ可読記憶媒体。
〔２８〕
前記符号化されたデータに基づいて、前記第１のトラック中に含まれていない１つまたは複数のＮＡＬユニットを前記第２のトラック中に含めることを前記プロセッサに行わせる命令をさらに備える、〔２６〕に記載のコンピュータ可読記憶媒体。
〔２９〕
前記第１のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第１のエクストラクタと、前記第２のトラックの前記１つまたは複数のＮＡＬユニットのうちの少なくとも１つを識別する第２のエクストラクタとを含む第３のトラックを構築することを前記プロセッサに行わせる命令をさらに備える、〔２８〕に記載のコンピュータ可読記憶媒体。
〔３０〕
前記エクストラクタが第１のエクストラクタを備え、前記コンピュータ可読記憶媒体が、前記符号化されたビデオデータに基づいて、複数のＮＡＬユニットを含む第３のエクストラクタトラックを構築することを前記プロセッサに行わせる命令をさらに備え、前記第２のトラックを構築することを前記プロセッサに行わせる前記命令が、前記第３のトラックの前記複数のＮＡＬユニットのうちの１つまたは複数を識別する第２のエクストラクタを含むように前記第２のトラックを構築することを前記プロセッサに行わせる命令を備える、〔２６〕に記載のコンピュータ可読記憶媒体。
〔３１〕
ビデオデータを復号するための方法であって、前記方法が、
宛先デバイスのデマルチプレクサによって、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイルを受信することであって、前記ビデオファイルが第１のトラックと第２のトラックとを備え、前記第１のトラックが、符号化されたビデオデータに対応する複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含み、前記ビデオサンプルがアクセスユニット中に含まれ、前記第２のトラックが、前記第１のトラックの前記複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含み、前記複数のＮＡＬユニットのうちの前記少なくとも１つが第１の識別されたＮＡＬユニットを備え、前記エクストラクタが前記アクセスユニットの第２のＮＡＬユニットを識別し、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続である、受信することと、
復号されるべき前記第２のトラックを選択することと、
前記第２のトラックの前記エクストラクタによって識別された前記第１のＮＡＬユニットおよび前記第２のＮＡＬユニットの符号化されたビデオデータを前記宛先デバイスのビデオデコーダに送ることと
を備える、方法。
〔３２〕
前記第２のトラックの前記エクストラクタによって識別されない前記第１のトラックの前記複数のＮＡＬユニットの各々を廃棄することをさらに備える、〔３１〕に記載の方法。
〔３３〕
前記第２のトラックが、前記第１のトラック中に含まれていない１つまたは複数のＮＡＬユニットをさらに備え、前記方法が、前記第２のトラックの前記１つまたは複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送ることをさらに備える、〔３１〕に記載の方法。
〔３４〕
前記ビデオファイルが、符号化されたビデオデータに対応する複数のＮＡＬユニットを含む第３のトラックをさらに備え、前記方法が、前記第３のトラックの前記複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送ることをさらに備える、〔３１〕に記載の方法。
〔３５〕
ビデオデータを復号するための装置であって、前記装置が、
ビデオデータを復号するように構成されたビデオデコーダと、
国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイルを受信することであって、前記ビデオファイルが第１のトラックと第２のトラックとを備え、前記第１のトラックが、符号化されたビデオデータに対応する複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含み、前記ビデオサンプルがアクセスユニット中に含まれ、前記第２のトラックが、前記第１のトラックの前記複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含み、前記複数のＮＡＬユニットのうちの前記少なくとも１つが第１の識別されたＮＡＬユニットを備え、前記エクストラクタが前記アクセスユニットの第２のＮＡＬユニットを識別し、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続である、受信することと、復号されるべき前記第２のトラックを選択することと、前記第２のトラックの前記エクストラクタによって識別された前記第１のＮＡＬユニットおよび前記第２のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送ることとを行うように構成されたデマルチプレクサとを備える、装置。
〔３６〕
前記デマルチプレクサが、前記第２のトラックの前記エクストラクタによって識別されない前記第１のトラックの前記複数のＮＡＬユニットの各々を廃棄するように構成された、〔３５〕に記載の装置。
〔３７〕
前記第２のトラックが、前記第１のトラック中に含まれていない１つまたは複数のＮＡＬユニットをさらに備え、前記デマルチプレクサが、前記第２のトラックの前記１つまたは複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送るように構成された、〔３５〕に記載の装置。
〔３８〕
前記ビデオファイルが、符号化されたビデオデータに対応する複数のＮＡＬユニットを含む第３のトラックをさらに備え、前記デマルチプレクサが、前記第３のトラックの前記複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送るように構成された、〔３５〕に記載の装置。
〔３９〕
ビデオデータを復号するための装置であって、前記装置が、
国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイルを受信するための手段であって、前記ビデオファイルが第１のトラックと第２のトラックとを備え、前記第１のトラックが、符号化されたビデオデータに対応する複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含み、前記ビデオサンプルがアクセスユニット中に含まれ、前記第２のトラックが、前記第１のトラックの前記複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含み、前記複数のＮＡＬユニットのうちの前記少なくとも１つが第１の識別されたＮＡＬユニットを備え、前記エクストラクタが前記アクセスユニットの第２のＮＡＬユニットを識別し、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続である、受信するための手段と、
復号されるべき前記第２のトラックを選択するための手段と、
前記第２のトラックの前記エクストラクタによって識別された前記第１のＮＡＬユニットおよび前記第２のＮＡＬユニットの符号化されたビデオデータを前記装置のビデオデコーダに送るための手段と
を備える、装置。
〔４０〕
前記第２のトラックの前記エクストラクタによって識別されない前記第１のトラックの前記複数のＮＡＬユニットの各々を廃棄するための手段をさらに備える、〔３９〕に記載の装置。
〔４１〕
前記第２のトラックが、前記第１のトラック中に含まれていない１つまたは複数のＮＡＬユニットをさらに備え、前記装置が、前記第２のトラックの前記１つまたは複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送るための手段をさらに備える、〔３９〕に記載の装置。
〔４２〕
前記ビデオファイルが、符号化されたビデオデータに対応する複数のＮＡＬユニットを含む第３のトラックをさらに備え、前記装置が、前記第３のトラックの前記複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送るための手段をさらに備える、〔３９〕に記載の装置。
〔４３〕
実行されると、
国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマットに少なくとも部分的に準拠するビデオファイルを受信したとき、復号されるべき前記第２のトラックを選択することであって、前記ビデオファイルが第１のトラックと第２のトラックとを備え、前記第１のトラックが、符号化されたビデオデータに対応する複数のネットワークアクセスレイヤ（ＮＡＬ）ユニットを備えるビデオサンプルを含み、前記ビデオサンプルがアクセスユニット中に含まれ、前記第２のトラックが、前記第１のトラックの前記複数のＮＡＬユニットのうちの少なくとも１つを識別するエクストラクタを含み、前記複数のＮＡＬユニットのうちの前記少なくとも１つが第１の識別されたＮＡＬユニットを備え、前記エクストラクタが前記アクセスユニットの第２のＮＡＬユニットを識別し、前記第１の識別されたＮＡＬユニットと前記第２の識別されたＮＡＬユニットとが非連続である、前記第２のトラックを選択することと、
前記第２のトラックの前記エクストラクタによって識別された前記第１のＮＡＬユニットおよび前記第２のＮＡＬユニットの符号化されたビデオデータをビデオデコーダに送ることと
をプロセッサに行わせる命令を備えるコンピュータ可読記憶媒体。
〔４４〕
前記第２のトラックの前記エクストラクタによって識別されない前記第１のトラックの前記複数のＮＡＬユニットの各々を廃棄することをさらに備える、〔４３〕に記載のコンピュータ可読記憶媒体。
〔４５〕
前記第２のトラックが、前記第１のトラック中に含まれていない１つまたは複数のＮＡＬユニットをさらに備え、前記方法が、前記第２のトラックの前記１つまたは複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送ることをさらに備える、〔４３〕に記載のコンピュータ可読記憶媒体。
〔４６〕
前記ビデオファイルが、符号化されたビデオデータに対応する複数のＮＡＬユニットを含む第３のトラックをさらに備え、前記方法が、前記第３のトラックの前記複数のＮＡＬユニットの符号化されたビデオデータを前記ビデオデコーダに送ることをさらに備える、〔４３〕に記載のコンピュータ可読記憶媒体。
【図１】
0005591932.tif 000020
【図２】
0005591932.tif 000021
【図３】
0005591932.tif 000022
【図４】
0005591932.tif 000023
【図５】
0005591932.tif 000024
【図６Ａ】
0005591932.tif 000025
【図６Ｂ】
0005591932.tif 000026
【図６Ｃ】
0005591932.tif 000027
【図７】
0005591932.tif 000028
【図８】
0005591932.tif 000029
【図９】
0005591932.tif 000030
【図１０】
0005591932.tif 000031
【図１１】
0005591932.tif 000032
【図１２】
0005591932.tif 000033
【図１３】
0005591932.tif 000034
【図１４】
0005591932.tif 000035
【図１５】
0005591932.tif 000036
【図１６】
0005591932.tif 000037
【図１７】
0005591932.tif 000038
【図１８】
0005591932.tif 000039
【図１９】
0005591932.tif 000040
【図２０】
0005591932.tif 000041
【図２１】
0005591932.tif 000042
【図２２】
0005591932.tif 000043
【図２３】
0005591932.tif 000044