相互参照
[0001]本願は、2016年5月24日に出願された米国仮特許出願第62/340,886号の利益を主張し、その全体の内容(contents)が参照により本明細書に組み込まれる。
[0002]本開示は、ビデオビットストリームなどの、メディアビットストリームの記憶およびトランスポート(storage and transport)のためのファイル形式に関連する。
[0003]デジタルビデオ機能(capabilities)は、デジタルテレビ、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレイヤ、ビデオゲームデバイス、ビデオゲーム機、セルラ式または衛星無線電話、ビデオテレビ会議デバイス、および同類のものを含む、広範囲のデバイスに組み込まれることができる。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するために、MPEG−2、MPEG−4、ITU−T H.263またはITU−T H.264/MPEG−4、Part10、Advanced Video Coding(AVC)、およびそのような規格の拡張によって定義された規格において説明されるような、ビデオ圧縮技法をインプリメントする。
[0004]ビデオ圧縮技法は、ビデオシーケンスに内在する(inherent in)冗長性を減らすまたは取り除くために、空間予測(spatial prediction)および/または時間予測(temporal prediction)を行う。ブロックベースのビデオコーディングに関して(For)、ビデオフレームまたはスライスは、マクロブロックに区分化され得る。各マクロブロックは、さらに区分化されることができる。イントラコード化された(I)フレームまたはスライスにおけるマクロブロックは、隣接したマクロブロックに関する空間予測を使用して符号化される。インターコード化された(PまたはB)フレームまたはスライスにおけるマクロブロックは、同じフレームまたはスライスにおける複数の隣接したマクロブロック(neighboring macroblocks)に関する空間予測、あるいは他の参照フレームに関する時間予測を使用し得る。
[0005]ビデオデータが符号化された後に、ビデオデータは、送信または記憶のためにパケット化され得る。ビデオデータは、国際標準化機構(ISO:International Organization for Standardization)ベースメディアファイルフォーマット、および、AVCファイルフォーマットのような、それの拡張などの、様々な規格のうちのいずれ(any)にも適合するビデオファイルにアセンブルされ得る。
[0006]一般に、本開示は、1つまたは複数のトラックにおいてシングルレイヤまたはマルチレイヤのビットストリームを記憶するファイルに関する便利なランダムアクセス動作(convenient random access operations)をイネーブルするための技法を説明する。本開示は、1つまたは複数のトラックにおいてシングルレイヤまたはマルチレイヤのビットストリームを記憶するファイルに関する、便利なランダムアクセス動作をイネーブルするサンプルエントリー設計上の方法、デバイス、およびコンピュータプログラム製品を提供する。
[0007]1つの例において、ビデオデータを検索する方法は、ビデオビットストリームのサンプルに関するサンプルエントリータイプを記述するデータを受信することと、サンプルエントリータイプは、'hev1'または'hev2'のうちの1つであり、ここにおいて、サンプルは、High−Efficiency Video Coding(HEVC)またはレイヤードHEVC(L−HEVC)のうちの1つに従って符号化されたビデオデータを備え、ビデオデータを含む1つまたは複数の他のサンプルは、復号順序においてビデオビットストリームにおけるサンプルに先行する、'hev1'または'hev2'であるサンプルエントリータイプおよびHEVCまたはL−HEVCのうちの1つに従って符号化されたビデオデータを備えるサンプルに応答して、サンプルに先行する1つまたは複数の他のサンプルのうちのいずれの(any)ビデオデータを検索することなしに(without)、および復号順序においてビデオビットストリームのいずれの前のサンプルのパラメータセットを検索することなしに、サンプルを使用してランダムアクセスを行うためにサンプルを検索することと、を含む。
[0008]別の例において、ビデオデータを検索するためのデバイスは、ビデオビットストリームのサンプルに関するサンプルエントリータイプを記述するデータを受信することと、サンプルエントリータイプは、'hev1'または'hev2'のうちの1つであり、ここにおいて、サンプルは、High−Efficiency Video Coding(HEVC)またはレイヤードHEVC(L−HEVC)のうちの1つに従って符号化されたビデオデータを備え、ビデオデータを含む1つまたは複数の他のサンプルは、復号順序においてビデオビットストリームにおけるサンプルに先行する、'hev1'または'hev2'であるサンプルエントリータイプおよびHEVCまたはL−HEVCのうちの1つに従って符号化されたビデオデータを備えるサンプルに応答して、サンプルに先行する1つまたは複数の他のサンプルのうちのいずれのビデオデータを検索することなしに、および復号順序においてビデオビットストリームのいずれの前のサンプルのパラメータセットを検索することなしに、サンプルを使用してランダムアクセスを行うためにサンプルを検索することと、を行うように構成された1つまたは複数のプロセッサを含む。
[0009]別の例において、ビデオデータを検索するためのデバイスは、ビデオビットストリームのサンプルに関するサンプルエントリータイプを記述するデータを受信するための手段と、サンプルエントリータイプは、'hev1'または'hev2'のうちの1つであり、ここにおいて、サンプルは、High−Efficiency Video Coding(HEVC)またはレイヤードHEVC(L−HEVC)のうちの1つに従って符号化されたビデオデータを備え、ビデオデータを含む1つまたは複数の他のサンプルは、復号順序においてビデオビットストリームにおけるサンプルに先行する、'hev1'または'hev2'であるサンプルエントリータイプおよびHEVCまたはL−HEVCのうちの1つに従って符号化されたビデオデータを備えるサンプルに応答して、サンプルに先行する1つまたは複数の他のサンプルのうちのいずれのビデオデータを検索することなしに、および復号順序においてビデオビットストリームのいずれの前のサンプルのパラメータセットを検索することなしに、サンプルを使用してランダムアクセスを行うためにサンプルを検索するための手段と、を含む。
[0010]別の例において、命令を記憶したコンピュータ可読記憶媒体であって、命令は、実行されると、プロセッサに、ビデオビットストリームのサンプルに関するサンプルエントリータイプを記述するデータを受信することと、サンプルエントリータイプは、'hev1'または'hev2'のうちの1つであり、ここにおいて、サンプルは、High−Efficiency Video Coding(HEVC)またはレイヤードHEVC(L−HEVC)のうちの1つに従って符号化されたビデオデータを備え、ビデオデータを含む1つまたは複数の他のサンプルは、復号順序においてビデオビットストリームにおけるサンプルに先行する、'hev1'または'hev2'であるサンプルエントリータイプおよびHEVCまたはL−HEVCのうちの1つに従って符号化されたビデオデータを備えるサンプルに応答して、サンプルに先行する1つまたは複数の他のサンプルのうちのいずれのビデオデータを検索することなしに、および復号順序においてビデオビットストリームのいずれの前のサンプルのパラメータセットを検索することなしに、サンプルを使用してランダムアクセスを行うためにサンプルを検索することと、を行わせる。
[0011]別の例において、ビデオデータを含むファイルを生成する方法は、複数のトラックのうちの最も低い(lowest)トラック、最も低いトラックはビデオデータの最も低いサブレイヤを運ぶ(carrying)ビデオデータのベースレイヤを含む、が、便利なランダムアクセスがイネーブルされていることを示すサンプルに関するサンプルエントリータイプ値を含むことになる(is to include)ことを決定することに応答して、便利なランダムアクセスがイネーブルされていることを示すために、ビデオデータを含む複数のトラックのその他の(other)トラックの各々のサンプルに関する(for)サンプルエントリータイプ値を設定することと、複数のトラックのトラックに関するサンプルエントリータイプ値が、便利なランダムアクセスがイネーブルされていることを示すように、複数のトラックを含むファイルを生成することと、を含む。
[0012]別の例において、ビデオデータを含むファイルを生成するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、サーキットリー(circuitry)においてインプリメントされ、および、複数のトラックのうちの最も低いトラック、最も低いトラックはビデオデータの最も低いサブレイヤを運ぶビデオデータのベースレイヤを含む、が、便利なランダムアクセスがイネーブルされていることを示すサンプルに関するサンプルエントリータイプ値を含むことになることを決定することに応答して、便利なランダムアクセスがイネーブルされていることを示すために、ビデオデータを含む複数のトラックのその他のトラックの各々のサンプルに関するサンプルエントリータイプ値を設定することと、複数のトラックのトラックに関するサンプルエントリータイプ値が、便利なランダムアクセスがイネーブルされていることを示すように、複数のトラックを含むファイルを生成することとを行うように構成された1つまたは複数のプロセッサとを含む。
[0013]別の例において、ビデオデータを含むファイルを生成するためのデバイスは、複数のトラックのうちの最も低いトラック、最も低いトラックはビデオデータの最も低いサブレイヤを運ぶビデオデータのベースレイヤを含む、が、便利なランダムアクセスがイネーブルされていることを示すサンプルに関するサンプルエントリータイプ値を含むことになることを決定することに応答して、便利なランダムアクセスがイネーブルされていることを示すために、ビデオデータを含む複数のトラックのその他のトラックの各々のサンプルに関するサンプルエントリータイプ値を設定するための手段と、複数のトラックのトラックに関するサンプルエントリータイプ値が、便利なランダムアクセスがイネーブルされていることを示すように、複数のトラックを含むファイルを生成するための手段と、を含む。
[0014]別の例において、コンピュータ可読記憶媒体は、実行されると、プロセッサに、複数のトラックのうちの最も低いトラック、最も低いトラックはビデオデータの最も低いサブレイヤを運ぶビデオデータのベースレイヤを含む、が、便利なランダムアクセスがイネーブルされていることを示すサンプルに関するサンプルエントリータイプ値を含むことになることを決定することに応答して、便利なランダムアクセスがイネーブルされていることを示すために、ビデオデータを含む複数のトラックのその他のトラックの各々のサンプルに関するサンプルエントリータイプ値を設定することと、複数のトラックのトラックに関するサンプルエントリータイプ値が、便利なランダムアクセスがイネーブルされていることを示すように、複数のトラックを含むファイルを生成することと、を行わせる命令を記憶する。
[0015]1つまたは複数の例の詳細は、添付の図面および以下の説明において説明される。他の特徴、目的、および利点は、説明、図面から、および特許請求の範囲から明らかになるであろう。
[0016]図1は、ネットワーク上でメディアデータをストリーミングするための技法をインプリメントする例となるシステムを例示するブロック図である。
[0017]図2は、検索ユニットのコンポーネントの例となるセットを例示するブロック図である。
[0018]図3は、例となるマルチメディアコンテンツの要素を例示する概念図である。
[0019]図4は、例となるビデオファイルの要素を例示するブロック図である。
[0020]図5は、データを処理する例となる技法を例示するフローチャートである。
[0021]図6は、データを処理する例となる技法を例示するフローチャートである。
[0022]図7は、ビデオデータを含むファイルを生成する例となる技法を例示するフローチャートである。
詳細な説明
[0023]一般に、本開示は、1つまたは複数のトラックにおいてシングルレイヤまたはマルチレイヤのビットストリームを記憶するファイルに関する便利なランダムアクセス動作をイネーブルするための技法を説明する。便利なランダムアクセスは、より早い(earlier)サンプルからパラメータセットを探索する(searching)ことおよび/またはフェッチすることを必要とすること(requiring)なしに、ランダムアクセスとして定義され得る。言い換えれば、便利なランダムアクセスは、クライアントデバイスが、より早いサンプルのパラメータセットを探索する(searching for)ことおよび/またはフェッチすることなしに、サンプルおよび後続のサンプルを要求(request)できるとき、ビデオビットストリームのサンプルのためにイネーブルされる。それ故、全ての必要なパラメータセットは、サンプルそれ自体において、またはサンプルに対応するサンプルエントリーにおいてのいずれかに含まれ得る。
[0024]本開示は、1つまたは複数のトラックにおいてシングルレイヤまたはマルチレイヤのビットストリームを記憶するファイルに関する、便利なランダムアクセス動作をイネーブルするサンプルエントリー設計上の方法を説明する。
[0025]ビデオコーディング規格は、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262またはISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、それのScalable Video Coding(SVC)拡張およびMultiview Video Coding(MVC)拡張を含むITU−T H.264またはISO/IEC MPEG−4 AVC、および、それのスケーラブルコーディング拡張(すなわち、scalable high−efficiency video coding、SHVC)、マルチビュー拡張(すなわち、multiview high efficiency video coding、MV−HEVC)、および3D拡張(すなわち、3D high efficiency video coding、3D−HEVC)を含む、ITU−T H.265およびISO/IEC23008−2としてもまた知られる、High−Efficiency Video Coding(HEVC)を含む。
[0026]ファイルフォーマット規格は、ISOベースメディアファイルフォーマット(ISOBMFF、ISO/IEC14496−12)を含み、MPEG−4ファイルフォーマット(ISO/IEC14496−15)、3GPP(登録商標)ファイルフォーマット(3GPP TS 26.244)、およびAVCおよびそれの拡張のためのファイルフォーマットならびにHEVCおよびそれの拡張のためのファイルフォーマットを包含するISO/IEC14496−15を含む、ISOBMFFから派生した他のフォーマットを含む。ISO/IEC14496−12および14496−15の最新の版の草案文面は、それぞれ、http://phenix.int-evry.fr/mpeg/doc_end_user/documents/111_Geneva/wg11/w15177-v6-w15177.zipおよびhttp://wg11.sc29.org/doc_end_user/documents/114_San%20Diego/wg11/w15928-v2-w15928.zipにおいて、入手可能である。
[0027]この開示の技法は、ISOベースメディアファイルフォーマット、Scalable Video Coding(SVC)ファイルフォーマット、Advanced Video Coding(AVC)ファイルフォーマット、第3世代パートナーシッププロジェクト(3GPP:Third Generation Partnership Project)ファイルフォーマット、および/またはMultiview Video Coding(MVC)ファイルフォーマット、あるいは、他の類似の(similar)ビデオファイルフォーマットのいずれかに従ってカプセル化されたビデオデータに適合するビデオファイルに適用され得る。
[0028]HTTPストリーミングにおいて、頻繁に使用される動作は、HEAD、GET、およびパーシャルGETを含む。HEAD動作は、所与のユニフォームリソースロケータ(URL)またはユニフォームリソースネーム(URN)に関連付けられたファイルのヘッダを、URLまたはURNに関連付けられたペイロードを検索することなく、検索する。GET動作は、所与のURLまたはURNに関連付けられた全ファイルを検索する。パーシャルGET動作(partial GET operation)は、入力パラメータとしてバイト範囲を受信し、ファイルのバイトの連続数(continuous number)を検索する、ここで、バイトの数は、受信されたバイト範囲に対応する。それ故、ムービーフラグメントは、HTTPストリーミングのために提供され得る、なぜなら、パーシャルGET動作が、1つまたは複数の個々のムービーフラグメントを得ることができるからである。ムービーフラグメントにおいて、異なるトラックのいくつかの(several)トラックフラグメントがあることができる(can)。HTTPストリーミングにおいて、メディアプレゼンテーションは、クライアントにアクセス可能な(accessible)データの構造化された集まり(structured collection)であり得る。クライアントは、ユーザにストリーミングサービスを提示するために、メディアデータ情報を要求しおよびダウンロードし得る。
[0029]HTTPストリーミングを使用して、3GPPデータをストリーミングする例において、マルチメディアコンテンツのビデオおよび/または音声データに関する複数の表現(multiple representations)があり得る。下記に説明されるように、異なる表現は、異なるコーディング特性(例えば、ビデオコーディング規格の異なるプロファイルまたはレベル)、異なるコーディング規格またはコーディング規格の(マルチビュー拡張および/またはスケーラブル拡張などの)拡張、あるいは異なるビットレートに対応し得る。そのような表現のマニフェストは、メディアプレゼンテーション記述(MPD)データ構造において定義され得る。メディアプレゼンテーションは、HTTPストリーミングクライアントデバイスにアクセス可能なデータの構造化された集まりに対応し得る。HTTPストリーミングクライアントデバイスは、クライアントデバイスのユーザにストリーミングサービスを提示するために、メディアデータ情報を要求し(request)およびダウンロードし得る。メディアプレゼンテーションは、MPDデータ構造において記述され得、それは、MPDのアップデートを含み得る。
[0030]メディアプレゼンテーションは、一連の(a sequence of)1つまたは複数の期間(Period)を包含し得る。各期間は、次の期間の開始までか、または、最後の期間の場合においては、メディアプレゼンテーションの終わりまで、伸び(extend)得る。各期間は、同じメディアコンテンツに関して1つまたは複数の表現を包含し得る。表現は、音声、ビデオ、タイムドテキスト、または他のそのようなデータの複数の(a number of)代替的な符号化されたバージョンのうちの1つであり得る。表現(representations)は、符号化タイプにより、例えば、ビットレート、解像度、および/または、ビデオデータおよびビットレートに関するコーデック、言語、および/または音声データに関するコーデックにより、異なり得る。ターム(term)表現は、マルチメディアコンテンツの特定の期間に対応する符号化された音声またはビデオデータのセクションに言及するために使用され得(may be used to refer to)、および特定の方法(way)で符号化される。
[0031]特定の期間の表現は、表現が属する適応セット(adaptation set)を示すMPDにおける属性によって示されるグループに割り当てられ得る。同じ適応セットにおける表現は、一般に、クライアントデバイスが、例えば、帯域幅適応(bandwidth adaptation)を行うために、動的に、および継ぎ目なく(seamlessly)、これらの表現間で切り替えることができるという点で、互いに代替であると考えられる。例えば、特定の期間に関するビデオデータの各表現は、それら表現のいずれもが、対応する期間に関するマルチメディアコンテンツのビデオデータまたは音声データなどの、メディアデータを提示するために復号のために選択され得るように、同じ適応セットに割り当てられ得る。1つの期間内のメディアコンテンツは、いくつかの例において、もし存在する場合(if present)、グループ0からの1つの表現、または、各非ゼログループからの多くても1つの表現の組合せのいずれかにより、表現され得る。期間の各表現に関するタイミングデータは、期間の開始時間に対して(relative to)表され得る。
[0032]表現は、1つまたは複数のセグメントを含み得る。各表現は、初期化セグメントを含み得るか、または表現の各セグメントは、自己初期化している(self-initializing)可能性がある。初期化セグメントは、存在するとき、表現にアクセスするための初期化情報を包含し得る。一般に、初期化セグメントは、メディアデータを包含しない。セグメントは、ユニフォームリソースロケータ(URL)、ユニフォームリソースネーム(URN)、またはユニフォームリソース識別子(URI)などの、識別子によって一意的に(uniquely)言及され得る。MPDは、セグメントごとに識別子を提供し得る。いくつかの例において、MPDはまた、範囲属性(range attribute)の形態でバイト範囲を提供し得、それは、URL、URN、またはURIによってアクセス可能なファイル内のセグメントに関するデータに対応し得る。
[0033]異なる表現は、異なるタイプのメディアデータに実質的に同時の検索のために選択され得る。例えば、クライアントデバイスは、音声表現、ビデオ表現、およびタイムドテキスト表現を、それらからセグメントを検索するために、選択し得る。いくつかの例において、クライアントデバイスは、帯域幅適応を行うための特定の適応セットを選択し得る。つまり、クライアントデバイスは、ビデオ表現、音声表現を含む適応セット、および/またはタイムドテキストを含む適応セットを含む適応セットを選択し得る。代替的に、クライアントデバイスは、ある特定の(certain)タイプのメディア(例えば、ビデオ)に関する適応セットを選択し得、他タイプのメディア(例えば、音声および/またはタイムドテキスト)に関する表現を直接に選択し得る。
[0034]図1は、ネットワーク上でメディアデータをストリーミングするための技法をインプリメントする例となるシステム10を例示するブロック図である。この例において、システム10は、コンテンツ準備デバイス20、サーバデバイス60、およびクライアントデバイス40を含む。クライアントデバイス40およびサーバデバイス60は、ネットワーク74によって通信可能に(communicatively)結合され、それはインターネットを備え得る。いくつかの例において、コンテンツ準備デバイス20およびサーバデバイス60はまた、ネットワーク74または別のネットワークによって結合され得、あるいは直接に通信可能に結合され得る。いくつかの例において、コンテンツ準備デバイス20およびサーバデバイス60は、同じデバイスを備え得る。
[0035]コンテンツ準備デバイス20は、図1の例において、音声ソース22およびビデオソース24を備える。音声ソース22は、例えば、音声エンコーダ26によって符号化されることになるキャプチャされた音声データを代表する(representative of)電気信号を作り出すマイクロフォンを備え得る。代替的に、音声ソース22は、事前に記録された音声データを記憶する記憶媒体、コンピュータ化されたシンセサイザーなどの音声データ生成器、または音声データの何らかの他のソースを備え得る。ビデオソース24は、ビデオエンコーダ28によって符号化されることになるビデオデータを作り出すビデオカメラ、事前に記録されたビデオデータを用いて符号化された記憶媒体、コンピュータグラフィックスソースなどのビデオデータ生成ユニット、またはビデオデータの何らかの他のソースを備え得る。コンテンツ準備デバイス20は、全ての例においてサーバデバイス60に必ずしも通信可能に結合される必要はないが、サーバデバイス60によって読み取られ得る別個の媒体へのマルチメディアコンテンツを記憶し得る。
[0036]生音声およびビデオデータは、アナログまたはデジタルデータを備え得る。アナログデータは、音声エンコーダ26および/またはビデオエンコーダ28によって符号化される前に、デジタル化され得る。音声ソース22は、話している参加者(speaking participant)が話している間に話している参加者から音声データを取得し得、ビデオソース24は、その話している参加者のビデオデータを同時に取得し得る。他の例において、音声ソース22は、記憶された音声データを備えるコンピュータ可読記憶媒体を備え得、ビデオソース24は、記憶されたビデオデータを備えるコンピュータ可読記憶媒体を備え得る。このように、本開示において説明された技法は、ライブ、ストリーミング、リアルタイム音声およびビデオデータに、またはアーカイブされた、事前記録された音声およびビデオデータに、適用され得る。
[0037]ビデオフレームに対応する音声フレームは、一般に、ビデオフレーム内において包含されるビデオソース24によってキャプチャされた(または生成された)ビデオデータと同時に(contemporaneously)、音声ソース22によってキャプチャされた(または生成された)音声データを包含する音声フレームである。例えば、話している参加者は、一般に、話すことによって音声データを作り出す(produces)間、音声ソース22は、音声データをキャプチャし、ビデオソース24は、同じ時間において、つまり、音声ソース22が音声データをキャプチャしている間、話している参加者のビデオデータをキャプチャする。故に、音声フレームは、1つまたは複数の特定のビデオフレームに時間的に対応し得る。したがって、ビデオフレームに対応する音声フレームは、一般に、音声データおよびビデオデータが同じ時間においてキャプチャされた、および音声フレームおよびビデオフレームが、それぞれ、同じ時間においてキャプチャされた音声データおよびビデオデータを備える、状況に対応する。
[0038]いくつかの例において、音声エンコーダ26は、符号化された音声フレームに関する音声データが記録された時間を表す各符号化された音声フレームにおけるタイムスタンプを符号化し得、同様に、ビデオエンコーダ28は、符号化されたビデオフレームに関してビデオデータが記録された時間を表す各符号化されたビデオフレームにおけるタイムスタンプを符号化し得る。そのような例において、ビデオフレームに対応する音声フレームは、タイムスタンプを備える音声フレームおよび同じタイムスタンプを備えるビデオフレームを備え得る。コンテンツ準備デバイス20は、音声エンコーダ26および/またはビデオエンコーダ28が、それからタイムスタンプを生成し得るか、または音声ソース22およびビデオソース24が、音声およびビデオデータを、それぞれ、タイムスタンプと関連付けるために使用し得る、内部クロックを含み得る。
[0039]いくつかの例において、音声ソース22は、音声データが記録された時間に対応する音声エンコーダ26にデータを送り得、ビデオソース24は、ビデオデータが記録された時間に対応するビデオエンコーダ28にデータを送り得る。いくつかの例において、音声エンコーダ26は、音声データが記録された絶対的な時間を必ずしも示さないが、符号化されたビデオデータの相対的な時間的秩序(relative temporal ordering)を示すために、符号化された音声データにおけるシーケンス識別子を符号化し得、同様に、ビデオエンコーダ28はまた、符号化されたビデオデータの相対的な時間的秩序を示すためにシーケンス識別子を使用し得る。同様に、いくつかの例において、シーケンス識別子は、マッピングされ得るか、またはそうでなければ、タイムスタンプと相互関係を示す(correlated with)。
[0040]音声エンコーダ26は、一般に、符号化された音声データのストリームを作り出し、一方で、ビデオエンコーダ28は、符号化されたビデオデータのストリームを作り出す。(音声であろうがビデオであろうが)データの各個々のストリームは、エレメンタリーストリームと呼ばれ得る。エレメンタリーストリームは、表現の、単一の、デジタルにコード化された(場合により(possibly)圧縮された)コンポーネントである。例えば、表現のコード化されたビデオまたは音声部分は、エレメンタリーストリームであることができる(can)。エレメンタリーストリームは、ビデオファイル内にカプセル化される前に、パケット化されたエレメンタリーストリーム(PES:packetized elementary stream)に変換され(converted into)得る。同じ表現内で、ストリームIDは、1つのエレメンタリーストリームに属するPESパケットをその他から区別するために使用され得る。エレメンタリーストリームのデータの基本単位は、パケット化されたエレメンタリーストリーム(PES)パケットである。それ故、コード化されたビデオデータは、一般に、エレメンタリービデオストリームに対応する。同様に、音声データは、1つまたは複数のそれぞれのエレメンタリーストリームに対応する。
[0041]ITU−T H.264/AVCおよび今度の(upcoming)High Efficiency Video Coding(HEVC)規格のような、多くのビデオコーディング規格は、エラーフリービットストリームに関する、シンタックス、セマンティクス、復号プロセスを定義し、それらのいずれもある特定のプロファイルまたはレベルに適合する。ビデオコーディング規格は、典型的に、エンコーダを特定しないが、エンコーダは、生成されたビットストリームがデコーダに関して規格に準拠していることを保証することが課せられる(tasked with)。ビデオコーディング規格のコンテキストにおいて、「プロファイル(profile)」は、アルゴリズム、特徴、またはツールのサブセット、およびそれらに適応される制約に対応する。H.264規格によって定義されるように、例えば、「プロファイル」は、H.264規格によって規定される全体のビットストリームシンタックスのサブセットである。「レベル(level)」は、例えば、デコーダメモリおよび計算などの、デコーダリソース消費の限界(limitations)に対応し、それは、ピクチャ、ビットレート、およびブロック処理レートの解像度に関連する。プロファイルは、profile_idc(プロファイルインジケータ)値を用いてシグナリングされ得、一方で、レベルは、level_idc(レベルインジケータ)値を用いてシグナリングされ得る。
[0042]H.264規格は、例えば、所与のプロファイルのシンタックスによって課せられる限度(bounds)内で、復号されたピクチャの特定されたサイズなどのビットストリームにおけるシンタックス要素によって取られる値に依存して、エンコーダおよびデコーダの性能(performance)において大きな変化(large variation)を必要とすることが未だ可能であることを認めている。H.264規格は、多くのアプリケーションにおいて、特定のプロファイル内のシンタックスの全ての仮説上の(hypothetical)使途に対応する(dealing with)能力があるデコーダをインプリメントすることは実用的(practical)でも経済的(economical)でもないことをさらに認めている(recognizes)。したがって、H.264規格は、ビットストリームにおけるシンタックス要素の値に課せられた制約の規定の(specified)セットとして、「レベル」を定義する。これらの制約は、値についての簡素な制限であり得る。代替的に、これらの制約は、値の算術的な組合せ(例えば、毎秒当たりに復号されたピクチャの数を乗じたピクチャ高さを乗じたピクチャ幅)に対する制約の形態を取り得る。H.264規格は、個々のインプリメンテーションは、サポートされたプロファイルごとに異なるレベルをサポートし得ることをさらに提供する。
[0043]プロファイルに適合するデコーダは、通常(ordinarily)、プロファイルにおいて定義された全ての特長をサポートする。例えば、コーディングの特長として、Bピクチャコーディングは、H.264/AVCのベースラインプロファイルにおいてサポートされていないが、H.264/AVCの他のプロファイルにおいてサポートされている。レベルに適合するデコーダは、レベルにおいて定義された制限(limitations)を超えるリソースを必要としない任意の(any)ビットストリームを復号する能力があるはずである。プロファイルおよびレベルの定義は、解釈可能性(interpretability)に関して役立ち得る。例えば、ビデオ送信の間、一対のプロファイルおよびレベルの定義は、全ての送信セッションに関して、交渉されおよび合意され得る。さらに具体的には、H.264/AVCにおいて、レベルは、処理されることが必要であるマクロブロックの数、復号されたピクチャバッファ(DPB)サイズ、コード化されたピクチャバッファ(CPB)サイズ、垂直動きベクトル範囲、2つの連続するMBごとの動きベクトルの最大数、およびBブロックが8x8画素よりも少ないサブマクロブロック区分を有することができるかどうか、についての制限を定義し得る。このように、デコーダは、デコーダがビットストリームを適切に復号する能力があるかどうかを決定し得る。
[0044]図1の例において、コンテンツ準備デバイス20のカプセル化ユニット30は、ビデオエンコーダ28からコード化されたビデオデータを備えるエレメンタリーストリームおよび音声エンコーダ26からコード化された音声データを備えるエレメンタリーストリームを受信する。いくつかの例において、ビデオエンコーダ28および音声エンコーダ26は、各々、符号化されたデータからPESパケットを形成するためのパケタイザ(packetizers)を含み得る。他の例において、ビデオエンコーダ28および音声エンコーダ26は、各々、符号化されたデータからPESパケットを形成するためのそれぞれのパケタイザとインターフェースで接続(interface with)し得る。さらに他の例において、カプセル化ユニット30は、符号化された音声およびビデオデータからのPESパケットを形成するためのパケタイザを含み得る。
[0045]ビデオエンコーダ28は、様々な方法において、様々なビットレートにおける、および、画素解像度、フレームレート、様々なコーディング規格への適合、様々なコーディング規格に関する様々なプロファイルおよび/またはプロファイルのレベルへの適合、(例えば、2次元のまたは3次元の再生に関する)1つまたは複数のビューを有する表現、あるいは他のそのような特性などの、様々な特性を有する、マルチメディアコンテンツの異なる表現を作り出すために、マルチメディアコンテンツのビデオデータを符号化し得る。表現は、本開示において使用されるように、音声データ、ビデオデータ、(例えば、字幕(closed captions)に関する)テキストデータ、または他のそのようなデータのうちの1つを備え得る。表現は、音声エレメンタリーストリームまたはビデオエレメンタリーストリームなどの、エレメンタリーストリームを含み得る。各PESパケットは、PESパケットが属するエレメンタリーストリームを識別するstream_idを含み得る。カプセル化ユニット30は、エレメンタリーストリームを様々な表現のビデオファイル(例えば、セグメント)にアセンブルすることを担う。
[0046]カプセル化ユニット30は、音声エンコーダ26およびビデオエンコーダ28からの表現のエレメンタリーストリームに関してPESパケットを受信し、PESパケットから対応するネットワーク抽象化レイヤ(NAL)ユニットを形成する。H.264/AVC(Advanced Video Coding)の例において、コード化されたビデオセグメントは、NALユニットとして組織化され(organized into)、それは、ビデオ電話通信、記憶装置、ブロードキャスト、またはストリーミングなどのアプリケーションに対処する「ネットワークフレンドリーな」ビデオ表現を提供する。NALユニットは、Video Coding Layer(VCL)NALユニットおよび非VCL NALユニットに分類(categorized)されることができる。VCLユニットは、コア圧縮エンジンを包含し得、ブロック、マクロブロック、および/またはスライスレベルデータを含み得る。他のNALユニットは、非VCL NALユニットであり得る。いくつかの例において、1つの時間インスタンスにおけるコード化されたピクチャは、通常、プライマリにコード化されたピクチャとして提示され、アクセスユニットにおいて包含され得、それは、1つまたは複数のNALユニットを含み得る。
[0047]非VCL NALユニットは、とりわけ(among others)、パラメータセットNALユニットおよびSEI NALユニットを含み得る。パラメータセットは、(シーケンスパラメータセット(SPS)において)シーケンスレベルのヘッダ情報および(ピクチャパラメータセット(PPS)において)変化する頻度が低い(infrequently changing)ピクチャレベルのヘッダ情報を包含し得る。パラメータセット(例えば、PPSおよびSPS)があれば、変化する頻度が低い情報は、シーケンスまたはピクチャごとに繰り返される必要はなく、故に、コーディング効率は、改善され得る。その上、パラメータセットの使用は、重要なヘッダ情報の帯域外送信(out-of-band transmission)をイネーブルし得、誤り耐性(error resilience)のための冗長送信の必要性を避ける。帯域外送信の例において、パラメータセットNALユニットは、SEI NALユニットなどの、他のNALユニットとは異なるチャネル上で、送信され得る。
[0048]付加拡張情報(SEI)は、VCL NALユニットからコード化されたピクチャサンプルを復号するために必要ではない情報を包含し得るが、復号、ディスプレイ、誤り耐性、および他の目的に関連する処理において、支援し(assist)得る。SEIメッセージは、非VCL NALユニットにおいて包含され得る。SEIメッセージは、いくつかの規格仕様の標準的な部分(normative part)であり、それ故、標準準拠のデコーダのインプリメンテーションに対して常に必須であるわけではない(not always mandatory for)。SEIメッセージは、シーケンスレベルSEIメッセージまたはピクチャレベルSEIメッセージであり得る。いくつかのシーケンスレベル情報は、SVCの例における拡張性(scalability)情報SEIメッセージおよびMVCにおけるビュー拡張性情報SEIメッセージなどの、SEIメッセージに包含され得る。これらの例となるSEIメッセージは、例えば、動作点の抽出(extraction)および動作点の特性上で、情報を運び得る。加えて、カプセル化ユニット30は、表現の特性を記述するメディアプレゼンテーション記述子(MPD)などの、マニフェストファイルを形成し得る。カプセル化ユニット30は、XML(extensible markup language)に従って、MPDをフォーマットし得る。
[0049]カプセル化ユニット30は、出力インターフェース32に、マニフェストファイル(例えば、MPD)と共に(along with)、マルチメディアコンテンツの1つまたは複数の表現に関するデータを提供し得る。出力インターフェース32は、ネットワークインターフェースまたはユニバーサル・シリアル・バス(USB)インターフェース、CDまたはDVDライタまたはバーナー、磁気のまたはフラッシュの記憶媒体へのインターフェース、またはメディアデータを記憶または送信するための他のインターフェースなどの、記憶媒体に書き込むためのインターフェースを備え得る。カプセル化ユニット30は、出力インターフェース32に、マルチメディアコンテンツの表現の各々のデータを提供し得、それは、データをネットワーク送信または記憶媒体を介して、サーバデバイス60に送り得る。図1の例において、サーバデバイス60は、様々なマルチメディアコンテンツ64を記憶する記憶媒体62を含み、各々は、それぞれのマニフェストファイル66および1つまたは複数の表現68A〜68N(表現68)を含む。いくつかの例において、出力インターフェース32はまた、データをネットワーク74に直接に送り得る。
[0050]いくつかの例において、表現68は、適応セットに分けられ(separated into)得る。つまり、表現68の様々なサブセットは、コーデック、プロファイルおよびレベル、解像度、ビューの数、セグメントに関するファイル形式、表現を用いて表示されることになるテキストの言語または他の特性を、および/または、例えば、スピーカによって、復号されおよび提示されることになる音声データを、識別し得るテキストタイプ情報、適応セットにおける表現のためにシーンのカメラ角度または実世界のカメラの遠近感を記述し得るカメラ角度情報、特定の視聴者(audiences)に関するコンテンツの適合性を説明する評定情報(rating information)、また同種のものなどの、特性のそれぞれの共通のセットを含み得る。
[0051]マニフェストファイル66は、適応セットに関する共通の特性ならびに(as well as)特定の適応セットに対応する表現68のサブセットを示すデータを含み得る。マニフェストファイル66はまた、適応セットの個々の表現に関する、ビットレートなどの、個々の特性を代表するデータを含み得る。このように、適応セットは、簡易化されたネットワーク帯域幅適応を提供し得る。適応セットにおける表現は、マニフェストファイル66の適応セット要素の子の要素(child elements)を使用して、示され得る。
[0052]サーバデバイス60は、要求処理ユニット70およびネットワークインターフェース72を含む。いくつかの例において、サーバデバイス60は、複数のネットワークインターフェースを含み得る。その上、サーバデバイス60の特徴のうちのいずれかのまたは全ては、ルータ、ブリッジ、プロキシデバイス、スイッチ、または他のデバイスなどの、コンテンツデリバリネットワークの他のデバイス上でインプリメントされ得る。いくつかの例において、コンテンツデリバリネットワークの中間デバイスは、マルチメディアコンテンツ64のデータをキャッシュし(cache)得、サーバデバイス60のそれらに実質的に適合するコンポ―ネントを含み得る。一般に、ネットワークインターフェース72は、ネットワーク74を介してデータを送りおよび受信するように構成される。
[0053]要求処理ユニット70は、記憶媒体62のデータに関して、クライアントデバイス40などの、クライアントデバイスからネットワーク要求を受信するように構成される。例えば、要求処理ユニット70は、RFC2616、R. Fielding他による「Hypertext Transfer Protocol - HTTP/1.1」、ネットワークワーキンググループ、IETF、1999年6月、において説明される、ハイパーテキスト・トランスファー・プロトコル(HTTP)バージョン1.1をインプリメントし得る。つまり、要求処理ユニット70は、HTTP GET要求またはパーシャルGET要求を受信すること、および要求に応答して、マルチメディアコンテンツ64のデータを提供することを行うように構成され得る。要求は、例えば、セグメントのURLを使用して、表現68のうちの1つのセグメントを特定し得る。いくつかの例において、要求はまた、セグメントの1つまたは複数のバイト幅を特定し得、それ故、パーシャルGET要求を備える。要求処理ユニット70は、表現68のうちの1つのセグメントのヘッダデータを提供するためのHTTP HEAD要求をサービス提供するようにさらに構成され得る。いずれの場合においても、要求処理ユニット70は、クライアントデバイス40などの、要求するデバイスに要求されたデータを提供するために要求を処理するように構成され得る。
[0054]追加的にまたは代替的に、要求処理ユニット70は、eMBMSのような、ブロードキャストまたはマルチキャストプロトコルを介して、メディアデータを配信するように構成され得る。コンテンツ準備デバイス20は、説明されるのと実質的に同じやり方で、DASHセグメントおよび/またはサブセグメントを作成し得るが、サーバデバイス60は、eMBMSまたは別のブロードキャストまたはマルチキャストネットワークトランスポートプロトコルを使用して、これらのセグメントまたはサブセグメントを配信し得る。例えば、要求処理ユニット70は、クライアントデバイス40からマルチキャストグループ加入要求を受信するように構成され得る。つまり、サーバデバイス60は、特定のメディアコンテンツ(例えば、ライブイベントのブロードキャスト)に関連付けられた、クライアントデバイス40を含む、クライアントデバイスに対してマルチキャストグループに関連付けられたインターネットプロトコル(IP)アドレスを宣伝し(advertise)得る。クライアントデバイス40は、次に、マルチキャストグループに加入する(join)ための要求を提出し(submit)得る。この要求は、ネットワーク74を通じて伝搬され得、ルータがマルチキャストグループに関連付けられたIPアドレスを目的地とする(destined for)トラフィックを、クライアントデバイス40などの、契約している(subscribing)クライアントデバイスに向けさせられるように、例えば、ルータがネットワーク74を作り上げる(making up)。
[0055]図1の例において例示されるように、マルチメディアコンテンツ64は、マニフェストファイル66を含み、それは、メディアプレゼンテーション記述(MPD)に対応し得る。マニフェストファイル66は、異なる代替的な表現68(例えば、異なる性質(qualities)を有するビデオサービス)の記述を包含し得、記述は、例えば、コーデック情報、プロファイル値、レベル値、ビットレート、および表現68の他の記述的な特性を含み得る。クライアントデバイス40は、表現68のセグメントにどのようにアクセスするかを決定するために、メディアプレゼンテーションのMPDを検索し得る。
[0056]特に、検索ユニット52は、ビデオデコーダ48の復号機能およびビデオ出力44のレンダリング機能を決定するために、クライアントデバイス40の構成データ(図示せず)を検索し得る。構成データはまた、クライアントデバイス40のユーザによって選択された言語の選好、クライアントデバイス40のユーザによって設定される深度選好(depth preferences)に対応する1つまたは複数のカメラの遠近法、および/またはクライアントデバイス40のユーザによって選択される評定選好(rating preference)、のいずれかのまたは全てを含み得る。検索ユニット52は、例えば、HTTP GET要求およびパーシャルGET要求を提出するように構成されたウェブブラウザまたはメディアクライアントを備え得る。検索ユニット52は、クライアントデバイス40の1つまたは複数のプロセッサまたは処理ユニット(図示せず)によって実行されるソフトウェア命令に対応し得る。いくつかの例において、検索ユニット52に関して説明される機能性のうちの全てまたは部分は、ハードウェアにおいて、またはハードウェア、ソフトウェア、および/またはファームウェアの組合せにおいてインプリメントされ得、ここで、必須の(requisite)ハードウェアは、ソフトウェアまたはファームウェアに関する命令を実行するために提供され得る。
[0057]検索ユニット52は、クライアントデバイス40の復号機能およびレンダリング機能をマニフェストファイル66の情報によって示される表現68の特性と比較し得る。検索ユニット52は、初めに、表現68の特性を決定するためにマニフェストファイル66の少なくとも一部分を検索し得る。例えば、検索ユニット52は、1つまたは複数の適応セットの特性を記述するマニフェストファイル66の一部分を要求し得る。検索ユニット52は、クライアントデバイス40のコーディングおよびレンダリング機能によって満たされることができる特性を有する表現68のサブセット(例えば、適応セット)を選択し得る。検索ユニット52は、次いで、適応セットにおける表現に関するビットレートを決定し得、ネットワーク帯域幅の現在に利用可能な量を決定し得、およびネットワーク帯域幅によって満たされることができるビットレートを有する表現のうちの1つからセグメントを検索し得る。
[0058]一般に、より高いビットレート表現は、より高い品質のビデオ再生を生み出し得、一方で、より低いビットレート表現は、利用可能なネットワーク帯域幅が減少するとき、十分な品質のビデオ再生を提供し得る。したがって、利用可能なネットワーク帯域幅が、相対的に高いとき、検索ユニット52は、相対的に高いビットレート表現からデータを検索し得るのに対して、利用可能なネットワーク帯域幅が低いとき、検索ユニット52は、相対的に低いビットレート表現からデータを検索し得る。このように、クライアントデバイス40は、また、ネットワーク74のネットワーク帯域幅の利用可能性を変化させることにも適応しながら、ネットワーク74上でマルチメディアデータをストリーミングし得る。
[0059]追加的にまたは代替的に、検索ユニット52は、eMBMSまたはIPマルチキャストのような、ブロードキャストまたはマルチキャストネットワークプロトコルに従って、データを受信するように構成され得る。そのような例において、検索ユニット52は、特定のメディアコンテンツに関連付けられたマルチキャストネットワークグループに加入するための要求を提出し得る。マルチキャストグループに加入した後に、検索ユニット52は、さらなる要求がサーバデバイス60またはコンテンツ準備デバイス20に対して発行される(issued)ことなしに、マルチキャストグループのデータを受信し得る。検索ユニット52は、例えば、再生を止めるためにまたは異なるマルチキャストグループにチャンネル(channels)を変えるために、そのマルチキャストグループのデータがもはや必要とされないとき、そのマルチキャストグループを出る(leave)ための要求を提出し得る。
[0060]ネットワークインターフェース54は、選択された表現のセグメントのデータを受信し得および検索ユニット52に提供し得、それは、今度は、ファイルフォーマット処理ユニット50にセグメントを提供し得る。ファイルフォーマット処理ユニット50は、ビデオファイルの要素を構成成分(constituent)PESストリームにカプセル解除し(decapsulate)得、符号化されたデータを検索するためにPESストリームを非パケット化し(depacketize)得、および、例えば、ストリームのPESパケットヘッダによって示されるように、符号化されたデータが音声またはビデオストリームの部分であるかどうかに依存して、音声デコーダ46かまたはビデオデコーダ48かのいずれかに符号化されたデータを送り得る。音声デコーダ46は、符号化された音声データを復号し、復号された音声データを音声出力42に送り、一方で、ビデオデコーダ48は、符号化されたビデオデータを復号し、復号されたビデオデータ、それは、ストリームの複数のビューを含み得る、をビデオ出力44に送る(sends)。
[0061]ビデオエンコーダ28、ビデオデコーダ48、音声エンコーダ26、音声デコーダ46、カプセル化ユニット30、検索ユニット52、およびファイルフォーマット処理ユニット50は、各々、該当する場合は(as applicable)、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理サーキットリー、ソフトウェア、ハードウェア、ファームウェア、またはそれらのあらゆる(any)組み合わせなどの、様々な適した処理サーキットリーのうちのいずれとしてもインプリメントされ得る。ビデオエンコーダ28およびビデオデコーダ48の各々は、1つまたは複数のエンコーダまたはデコーダに含まれ得、それらのどちらも、組み合わされたビデオエンコーダ/デコーダ(CODEC)の部分として統合され得る。同様に、音声エンコーダ26および音声デコーダ46の各々は、1つまたは複数のエンコーダまたはデコーダにおいて含まれ得、それらのどちらも、組み合わされたコーデック(CODEC)の部分として統合され得る。ビデオエンコーダ28、ビデオデコーダ48、音声エンコーダ26、音声デコーダ46、カプセル化ユニット30、検索ユニット52、および/またはファイルフォーマット処理ユニット50を含む装置は、集積回路、マイクロプロセッサ、および/または、セルラ電話などの、ワイヤレス通信デバイスを備え得る。
[0062]クライアントデバイス40、サーバデバイス60、および/またはコンテンツ準備デバイス20は、本開示の技法に従って、動作するように構成され得る。例の目的のために、本開示は、クライアントデバイス40およびサーバデバイス60に関してこれらの技法を説明する。しかしながら、コンテンツ準備デバイス20は、サーバデバイス60の代わりに(または、それに加えて)、これらの技法を行うように構成され得ることが理解されるべきである。
[0063]カプセル化ユニット30は、ペイロード、例えば、音声データ、ビデオデータ、またはNALユニットが対応するトランスポートまたはプログラムストリームを説明するデータ、だけでなく(as well as)、NALユニットが属するプログラムを識別するヘッダを備えるNALユニットを形成し得る。例えば、H.264/AVCにおいて、NALユニットは、1バイトのヘッダおよび可変のサイズのペイロードを含む。それのペイロードにおいてビデオデータを含むNALユニットは、ビデオデータの様々な粒度(granularity)レベルを備え得る。例えば、NALユニットは、ビデオデータのブロック、複数のブロック、ビデオデータのスライス、またはビデオデータの全体のピクチャを備え得る。カプセル化ユニット30は、エレメンタリーストリームのPESパケットの形態(form)で、ビデオエンコーダ28から符号化されたビデオデータを受信し得る。カプセル化ユニット30は、各エレメンタリーストリームを対応するプログラムと関連付け得る。
[0064]カプセル化ユニット30はまた、複数のNALユニットからのアクセスユニットをアセンブルし得る。一般に、アクセスユニットは、ビデオデータのフレームを表すための1つまたは複数のNALユニットを備え得、なお、そのフレームに対応する音声データもそのような音声データが利用可能であるとき同様である(as well)。アクセスユニットは、一般に、1つの出力時間インスタンスに関して全てのNALユニット、例えば、1つの時間インスタンスに関して全ての音声およびビデオデータ、を含む。例えば、各ビューが毎秒20フレーム(fps)のフレームレートを有する場合、各時間インスタンスは、0.05秒の時間間隔に対応し得る。この時間間隔の間、同じアクセスユニット(同じ時間インスタンス)の全てのビューに関する特定のフレームは、同時にレンダリングされ得る。1つの例において、アクセスユニットは、1つの時間インスタンスにおいてコード化されたピクチャを備え得、それは、プライマリにコード化されたピクチャとして提示され得る。
[0065]したがって、アクセスユニットは、共通の時間インスタンスの全ての音声およびビデオフレーム、例えば、時間Xに対応する全てのビュー、を備え得る。本開示はまた、特定のビューの符号化されたピクチャを「ビューコンポーネント」と呼ぶ。つまり、ビューコンポーネントは、特定の時間における、特定のビューに関する符号化されたピクチャ(またはフレーム)を備え得る。したがって、アクセスユニットは、共通の時間インスタンスの全てのビューコンポーネントを備えるとして定義され得る。アクセスユニットの復号順序は、出力または表示順序と必ずしも同じである必要はない。
[0066]メディアプレゼンテーションは、メディアプレゼンテーション記述(MPD)を含み得、それは、異なる代替的な表現(例えば、異なる性質を有するビデオサービス)の記述を包含し得、記述は、例えば、コーデック情報、プロファイル値、およびレベル値を含み得る。MPDは、マニフェストファイル66のような、マニフェストファイルの1つの例である。クライアントデバイス40は、様々なプレゼンテーションのムービーフラグメントにどのようにアクセスするかを決定するためにメディアプレゼンテーションのMPDを検索し得る。ムービーフラグメントは、ビデオファイルのムービーフラグメントボックス(moof boxes)に位置づけられ得る。
[0067](例えば、MPDを備え得る)マニフェストファイル66は、表現68のセグメントの利用可能性を宣伝し得る。つまり、MPDは、表現68のうちの1つの第1のセグメントが利用可能になる実測時間(wall-clock time)を示す情報、ならびに表現68内のセグメントの持続時間を示す情報を含み得る。このように、クライアントデバイス40の検索ユニット52は、特定のセグメントに先行するセグメントの持続時間ならびに開始時間に基づいて、各セグメントがいつ利用可能であるかを決定し得る。
[0068]カプセル化ユニット30が、受信されたデータに基づいて、NALユニットおよび/またはアクセスユニットをビデオファイルにアセンブルした後に、カプセル化ユニット30は、ビデオファイルを出力のために出力インターフェース32に渡す(passes)。いくつかの例において、カプセル化ユニット30は、ビデオファイルを局所的に記憶し得るか、または、ビデオファイルをクライアントデバイス40に直接に送るのではなく(rather than)、ビデオファイルを遠隔サーバに出力インターフェース32を介して送り得る。出力インターフェース32は、例えば、送信機、トランシーバ、例えば、光学ドライブ、磁気メディアドライブ(例えば、フロッピー(登録商標)ドライブ)、ユニバーサル・シリアル・バス(USB)ポート、ネットワークインターフェース、または他の出力インターフェースなどの、コンピュータ可読媒体にデータを書き込むためのデバイス、を備え得る。出力インターフェース32は、ビデオファイルを、例えば、送信信号、磁気媒体、光学媒体、メモリ、フラッシュドライブなどの、コンピュータ可読媒体、または他のコンピュータ可読媒体に出力する。
[0069]ネットワークインターフェース54は、ネットワーク74を介してNALユニットまたはアクセスユニットを受信し得、検索ユニット52を介して、ファイルフォーマット処理ユニット50にNALユニットまたはアクセスユニットを提供し得る。ファイルフォーマット処理ユニット50は、ビデオファイルの要素を構成成分PESストリームにカプセル解除し、符号化されたデータを検索するためにPESストリームを非パケット化し得、および、例えば、ストリームのPESパケットヘッダによって示されるように、符号化されたデータが音声またはビデオストリームの部分(part)であるかどうかに依存して、音声デコーダ46かまたはビデオデコーダ48かのいずれかに符号化されたデータを送り得る。音声デコーダ46は、符号化された音声データを復号し、復号された音声データを音声出力42に送り、一方で、ビデオデコーダ48が符号化されたビデオデータを復号し、復号されたビデオデータ、それは、ストリームの複数のビューを含み得る、をビデオ出力44に送る。
[0070]コンテンツ準備デバイス20(例えば、カプセル化ユニット30を介して)およびクライアントデバイス40(例えば、ファイルフォーマット処理ユニット50を介して)は、ビデオコンテンツをカプセル化および/またはカプセル解除するために、多くのファイル形式のうちの1つまたは複数を利用し得る。ISOBMFFは、AVCファイルフォーマットなどの、多くのコーデックカプセル化フォーマットの、ならびにMPEG−4ファイルフォーマット、3GPPファイルフォーマット(3GP)、およびDVBファイルフォーマットなどの、多くのマルチメディアコンテナフォーマットの、基礎として(as the basis for)使用される。
[0071]音声およびビデオなどの、連続メディアに加えて、画像などの、静的媒体、ならびにメタデータは、ISOBMFFに適合するファイルにおいて記憶されることができる。ISOBMFFに従って構造化されたファイルは、ローカルメディアファイルプレイバック、遠隔ファイルのプログレッシブダウンローディング、Dynamic Adaptive Streaming over HTTP(DASH)のためのセグメント、ストリーミングされることになるコンテンツおよびそれのパケット化の命令のためのコンテナ(containers)、ならびに受信されたリアルタイムメディアストリームの記録を含む、多くの目的に使用され得る。
[0072]ボックスは、4文字のコード化されたボックスタイプ、ボックスのバイトカウント、およびペイロードを含む、ISOBMFFにおける基本となる(elementary)シンタックス構造である。ISOBMFFファイルは、一連のボックスから成り、ボックスは、他のボックスを包含し得る。ムービーボックス(「moov」)は、ファイルにおいて存在する連続メディアストリームに関するメタデータを包含し、各1つは、トラックとしてファイルにおいて表現される。トラックに関するメタデータは、トラックボックス(「trak」)において同封され、一方で、トラックのメディアコンテンツは、メディアデータボックス(「mdat」)において、または直接に別個の(separate)ファイルにおいて、のいずれかで同封される。トラックのメディアコンテンツは、音声またはビデオアクセスユニットなどの、一連のサンプルから成る。
[0073]ISOBMFFは、トラックの以下のタイプ:メディアトラック、それはエレメンタリーメディアストリームを包含する、ヒントトラック、それはメディア送信命令を含むかまたは受信されたパケットストリームを表すかのいずれかである、およびタイムドメタデータトラック、それは時間同期されたメタデータを備える、を規定する。
[0074]最初は記憶のために設計されたが、ISOBMFFは、ストリーミング、例えば、プログレッシブダウンロードまたはDASHに対して、非常に有益であることを証明した。ストリーミングの目的のために、ISOBMFFにおいて定義されたムービーフラグメントが使用されることができる。
[0075]各トラックに関するメタデータは、サンプル記述エントリーのリストを含み、各々は、トラックにおいて使用されるコーディングまたはカプセル化フォーマットおよびそのフォーマットを処理するために必要とされる初期化データを提供する。各サンプルは、トラックのサンプル記述エントリーのうちの1つに関連付けられる。
[0076]ISOBMFFは、様々な機構を有するサンプル固有のメタデータを特定することを可能にする。サンプルテーブル(Sample Table)ボックス(「stbl」)内の特定のボックスは、共通の必要性に答えるために(to respond to common needs)標準化された。例えば、シンクサンプル(Sync Sample)ボックス(「stss」)が、トラックのランダムアクセスサンプルをリストするために使用される。サンプルグループ化機構は、ファイルにおいてサンプルグループ記述エントリーとして規定される同じプロパティを共有するサンプルのグループの中への4文字のグループ化タイプに従ったサンプルのマッピングをイネーブルする。様々なグループ化タイプは、ISOBMFFにおいて規定されている。
[0077]ISOBMFF仕様は、DASHを伴う使用のためのStream Access Points(SAP)の6つのタイプを規定する。最初の2つのSAPタイプ(タイプ1および2)は、H.264/AVCおよびHEVCにおけるIDRピクチャに対応する。第3のSAPタイプ(タイプ3)は、オープンGOP(open-GOP)ランダムアクセスポイント、故に、HEVCにおけるBLAまたはCRAピクチャに対応する(corresponds to open-GOP random access points hence BLA or CRA pictures in HEVC)。第4のSAPタイプ(タイプ4)は、GDRランダムアクセスポイントに対応する。
[0078]ISO/IEC14496−15において、(またサンプルエントリーネームとも呼ばれる)様々なサンプルエントリータイプが規定されている。
[0079]HEVCファイルフォーマット(ISO/IEC14496−15の条項(clause)8)において、サンプルエントリータイプ'hvc1'および'hev1'が規定されている。サンプルエントリータイプ'hev1'に関する制約は、以下のように規定されている:
[0080]サンプルエントリーネームが'hev1'であるとき、以下が適用される。
[0081]サンプルがランダムアクセスポイントである場合、そのサンプルを復号するために必要とされる全てのパラメータセットは、サンプルエントリーにおいて、またはサンプルそれ自体において、のいずれかに含まれるものとする。
[0082]さもなければ(サンプルがランダムアクセスポイントでない)、サンプルを復号するために必要とされる全てのパラメータセットは、サンプルエントリーにおいて、または前のランダムアクセスポイントからサンプルそれ自体までの両端を含むサンプルのうちのいずれかにおいて、のいずれかに含まれるものとする。
[0083]この制約の目的はまた、より早いサンプルからパラメータセットを探索することおよび/またはフェッチすることの必要性なしに、ランダムアクセスポイントであるサンプルからの、便利なランダムアクセスをイネーブルすることである。
[0084]レイヤードHEVC(L−HEVC)ファイルフォーマット(ISO/IEC14496−15の条項9)において、サンプルエントリータイプ'hvc2'、'hev2'、'lhv1'および'lhe1'が規定されている。サンプルエントリータイプ'lhe1'に関する制約は、以下のように規定されている:
[0085]サンプルエントリーネームが'lhe1'であるとき、以下が適用される。
[0086]下記の制約は、少なくともいくつかのレイヤにおいてIRAPピクチャを包含するアクセスユニットからの便利なランダムアクセスをイネーブルするために、(サンプルエントリーにおける)帯域外パラメータセットおよび(サンプルにおける)帯域内(in-band)パラメータセットの配置(placement)に制限を課す。これらの制約があるので、それらサンプルエントリーを用いて初期化して、全てのピクチャがIRAPピクチャであるアクセスユニットからロールフォワードする(rolls forward)ファイルリーダは、それが必要とする全てのパラメータセットを有するであろう。
[0087]特定のトラックにおける任意の特定のサンプルに関して、別のトラックにおいて時間的に配列された(temporally collocated)サンプルは、この特定のサンプルのものと同じ復号時間を有するもの(the one)として定義される。
[0088]所与のサンプルのIRAPピクチャ、トラックおよびレイヤに関して、IRAPピクチャを復号するために必要とされる各パラメータセットは、以下のうちの1つにおいて含まれるものとする:
a.所与のトラックにおける所与のサンプルに適用するサンプルエントリー
b.所与のレイヤの参照レイヤを運ぶトラックの初期サンプルのサンプルエントリー、ここで、初期サンプルは、時間的に配列されたサンプルが参照レイヤのIRAPピクチャを包含するとき、所与のサンプルの時間的に配列されたサンプルであるか、または参照レイヤのIRAPピクチャを包含する前のサンプルであるかのいずれかである。
c.場合によりエクストラクタを使用して、所与のサンプルそれ自体
d.存在するとき、場合によりエクストラクタを使用して、所与のレイヤの参照レイヤを運ぶトラックの任意の時間的に配列されたサンプル
[0089]所与のサンプルの非IRAPピクチャに関して、トラックおよびレイヤは、そのピクチャを復号するために必要とされる各パラメータセットは、以下のうちの1つにおいて含まれるものとする:
a.所与のトラックにおける所与のサンプルに適用するサンプルエントリー
b.所与のレイヤの参照レイヤを運ぶトラックの初期サンプルのサンプルエントリー、ここで、初期サンプルは、時間的に配列されたサンプルが参照レイヤのIRAPピクチャを包含するとき、所与のサンプルの時間的に配列されたサンプルであるか、または参照レイヤのIRAPピクチャを包含する前のサンプルであるかのいずれかである。
c.場合によりエクストラクタを使用して、所与のレイヤにおけるIRAPピクチャを包含する前のサンプルから、所与のサンプルそれ自体までの両端を含む、所与のトラックにおけるサンプルのうちのいずれか
d.存在するとき、場合によりエクストラクタを使用して、所与のレイヤにおいてIRAPピクチャを包含する前のサンプルの時間的に配列されたサンプルから(since)、所与のサンプルの時間的に配列されたサンプルまで(to)の両端を含む、所与のレイヤの参照レイヤを運ぶトラックにおけるサンプルのうちのいずれか
[0090]この制約の目的もまた、制約の記述の部分として上記に詳細に記述されるように、複数のレイヤを包含するビットストリームを別にすれば(but)、便利なランダムアクセスをイネーブルすることである。
[0091](下記にコピーされる)ISO/IEC14496−15の表10は、HEVCトラックおよびL−HEVCトラックのためのL−HEV Cツール、構成、およびサンプルエントリーの全ての可能な用途を示す。
[0092]本開示は、(例えば、ISO/IEC14496−15の箇条8および9における)HEVCおよびL−HEVCに関するファイルフォーマットにおけるサンプルエントリータイプの現在の設計が様々な問題を提示し得ることを認識する。例えば。
[0093]第1の潜在的な問題を説明するために、ISO/IEC14496−15の表10の行2は、以下のように述べていることに留意されたい。
[0094]一方で、ISO/IEC14496−15の表10の行4は、以下のように述べている。
[0095]サンプルエントリータイプが'hvc1'、'hev1'、'hvc2'、または'hev2'であり、および同じエントリーがHEVC構成およびL−HEVC構成の両方を包含するとき、トラックは、ベースレイヤおよび1つまたは複数の拡張(enhancement)レイヤの両方のデータを運ぶ。
[0096]しかしながら、複数のレイヤを包含するビットストリームを別にした(but for)便利なランダムアクセスをイネーブルする制約は、サンプルエントリータイプ'lhe1'に関してのみ、規定される。これは、マルチレイヤL−HEVCビットストリームがサンプルエントリータイプ'hvc1'、'hev1'、'hvc2'、および'hev2'のうちのいずれかを使用して記憶されるとき、便利なランダムアクセスが(より早いサンプルからパラメータセットを探索することおよびフェッチすることを必要とせずに、など)イネーブルされていることを保証しおよび示す方法がないことを意味する。
[0097]本開示の技法は、上記で議論された第1の潜在的な問題に対処する(address)ために使用され得る。特に、1つの例において、複数のレイヤのデータを包含するトラックに関するより早いサンプルからパラメータセットを探索することおよびフェッチすることを必要とせずに、便利なランダムアクセスをイネーブルするための制約は、サンプルエントリーがHEVC構成およびL−HEVC構成の両方を包含するとき、サンプルエントリータイプ'hev1'および'hev2'に関して規定される。それ故、コンテンツ準備デバイス20は、より早いサンプルからパラメータセットを探索することおよびフェッチすることが必要とされ(required)ないように、必要なパラメータセットがサンプルエントリーおよび/または'hev1'および'hev2'のサンプルエントリータイプを有するサンプルと一緒に提供されることを確かにし(ensure)得る。同様に、クライアントデバイス40は、ビデオ復号順序においていずれの前のサンプルのパラメータセットを検索することなしに、サンプルエントリーおよび'hev1'または'hev2'のサンプルエントリータイプを有するサンプルを検索し得およびランダムアクセスを行い得る。
[0098]第2の潜在的な問題を説明するために、ISO/IEC14496−15の表10の行3は、以下のように述べていることに留意されたい。
[0099]サンプルエントリータイプが'hvc2'または'hev2'であり、同じエントリーがHEVC構成のみを包含するとき、以下のシナリオのいずれかが起こり得る。(1)トラックは、全体のシングルレイヤHEVCビットストリームを運び、ここにおいて、VCL NALユニットは全て、0に等しいnuh_layer_idを有する、およびいくつかのエクストラクタおよび/またはアグリゲータが存在する;または(2)トラックは、そのようなシングルレイヤHEVCビットストリームのサブセットを運び、サブセットは、(エクストラクタおよび/またはアグリゲータがあるかどうかに関わらず)0よりも大きいTemporalIdのみを有するVCL NALユニットを包含する。
[0100]しかしながら、サンプルエントリータイプ'hvc2'および'hev2'のいずれも、サンプルエントリータイプ'hev1'に関して同様に便利なランダムアクセスをイネーブルすることを強いられて(constrained)いなかった。これは、上記の2つのシナリオに関して、便利なランダムアクセスが(より早いサンプルからパラメータセットを探索することおよびフェッチすることを必要とせずに(without needing of searching and fetch parameter sets from earlier samples))イネーブルされていることを保証しおよび示す方法がないことを意味する。
[0101]本開示はまた、第2の潜在的な問題を解決するために使用され得る技法を説明する。特に、制約は、全体のシングルレイヤHEVCビットストリームまたはそれのサブセットのみを包含するトラックに関するより早いサンプルからパラメータセットを探索することおよびフェッチすることを必要とせずに、便利なランダムアクセスをイネーブルするために、サンプルエントリーがHEVC構成のみを包含するとき、サンプルエントリータイプ'hev2'は使用されることになる(is to be used)ことが規定され得る。それ故、サンプルエントリーがHEVC構成のみを包含するとき、コンテンツ準備デバイス20は、'hev2'のサンプルエントリータイプを特定し得る。同様に、クライアントデバイス40は、便利なランダムアクセスがサンプルエントリータイプ'hev2'を有するサンプルに関してイネーブルされること、その上、サンプルが、L−HEVC構成ではなく、HEVC構成のみに従って符号化されたビデオデータを含むことを決定し得る。
[0102]第3の潜在的な問題を説明するために、マルチレイヤL−HEVCビットストリームの各全体のレイヤが、現在の仕様に従って、別個のトラックにおいて記憶されるとき、ベーストラックがHEVC構成のみを有するサンプルエントリータイプ'hev1'を使用すること、および他のトラックがL−HEVC構成のみを有するサンプルエントリータイプ'lhv1'を使用することが可能であること、ならびにベーストラックがHEVC構成のみを有するサンプルエントリータイプ'hvc1'を使用すること、および他のトラックがL−HEVC構成のみを有するサンプルエントリータイプ'lhe1'を使用することもまた可能であること、を留意されたい。
[0103]第1のシナリオにおいて、便利なランダムアクセスはベーストラックに関して示されるが、他のトラックに関しては示されない。第2のシナリオにおいて、便利なランダムアクセスはベーストラックに関して示されないが、他のトラックに関して示される。第1のシナリオに関して、ベーストラックが便利なランダムアクセスをイネーブルするオーバーヘッドを正当化する(justify)のに十分に重要である一方で、拡張レイヤを運ぶトラックに関してより少ないオーバーヘッドのために便利なランダムアクセスを諦めるという妥協がよいトレードオフ(good tradeoff)であると考えられるといった、もっともらしい弁解(plausible excuse)があり得る。しかしながら、第2のシナリオは、拡張レイヤを運ぶトラックに関して便利なランダムアクセスをイネーブルすることが、ベーストラックに関して便利なランダムアクセスをイネーブルすることを効率的に必要とするであろうため(as)、意味をなさず、ベーストラックに関してそれがイネーブルされる場合、正しい(the right)サンプルエントリータイプ、すなわち、'hev1'を使用することによってそれを示さないという道理はない。
[0104]同様に、第3の潜在的な問題はまた、複数の時間サブレイヤを包含するシングルレイヤHEVCビットストリームが複数のトラックによって運ばれるとき、適用され得、ここで、(それのVCL NALユニットが0に等しいTemporalIdを有する)最も低いサブレイヤを運ぶトラックは、便利なランダムアクセスがイネーブルされていることを示すサンプルエントリータイプを使用し、一方(while)、他のトラックが便利なランダムアクセスがイネーブルされていることを示さないサンプルエントリータイプを使用する、または逆もまた同様である。
[0105]本開示の技法はまた、第3の潜在的な問題に対処し得る。特に、制約は、(HEVC、L−HEVC、またはあらゆる他のコーデックによってコード化された)シングルレイヤまたはマルチレイヤのビットストリームを運ぶ全てのトラックに関して、全てのトラックが便利なランダムアクセスがイネーブルされていることを示す(HEVC構成および/またはL−HEVC構成の存在を伴う)サンプルエントリータイプを使用するか、または全てのトラックが便利なランダムアクセスがイネーブルされていることを示さない(HEVC構成および/またはL−HEVC構成の存在を伴う(together with))サンプルエントリータイプを使用するかのいずれかを必要とするように規定され得る。それ故、コンテンツ準備デバイス20は、シングルレイヤまたはマルチレイヤのビットストリームを運ぶトラックに関して、トラックのうちの全てが便利なランダムアクセスがイネーブルされていることを示すサンプルエントリータイプを使用するか、またはトラックのうちの全てが便利なランダムアクセスがイネーブルされていないことを示すサンプルエントリータイプを使用するかのいずれかを確かにし得る。このように、便利なランダムアクセスがトラックのうちの1つに関してイネーブルされている場合、クライアントデバイス40は、便利なランダムアクセスがトラックの各々に関してイネーブルされていることを決定し得る。
[0106]代替的に、制約は、(HEVC、L−HEVC、またはあらゆる他のコーデックによってコード化された)シングルレイヤまたはマルチレイヤのビットストリームを運ぶ全てのトラックに関して、ベースレイヤの(VCL NALユニットが0に等しいTemporalIdを有する)最も低いサブレイヤを運ぶトラックが、便利なランダムアクセスがイネーブルされていることを示す(HEVC構成および/またはL−HEVC構成の存在を伴う)サンプルエントリータイプを使用するとき、全ての他のトラックは、便利なランダムアクセスがイネーブルされていることを示す(HEVC構成および/またはL−HEVC構成の存在を伴う)サンプルエントリータイプを使用するもの(shall)とすることを必要とする(require)ように規定され得る。それ故、コンテンツ準備デバイス20は、シングルレイヤまたはマルチレイヤのビットストリームを運ぶトラックに関して、ベースレイヤの最も低い時間サブレイヤを運ぶトラックが、便利なランダムアクセスがイネーブルされていることを示すサンプルエントリータイプを使用するとき、トラックの全てが便利なランダムアクセスがイネーブルされていることを示すサンプルエントリータイプを使用すること、または代替的に、便利なランダムアクセスが、ベースレイヤの最も低い時間サブレイヤに関してイネーブルされていない場合、トラックのうちのどれもが、便利なランダムアクセスがイネーブルされていることを示すサンプルエントリータイプを使用しないこと、を確かにし得る。このように、便利なランダムアクセスが、ベースレイヤの最も低い時間サブレイヤを含むトラックに関してイネーブルされている場合、クライアントデバイス40は、便利なランダムアクセスがトラックの各々に関してイネーブルされていることを決定し得る。
[0107]クライアントデバイス40は、様々な方法で便利なランダムアクセスを行うための本開示の技法を使用し得る。例えば、クライアントデバイス40は、DASHのような、ネットワークストリーミングプロトコルを使用して、サーバデバイス60からデータを要求することによって便利なランダムアクセスを行い得る。他の例において、クライアントデバイス40は、デジタル多用途ディスク、Blu−ray(登録商標)ディスク、ハードドライブ、フラッシュメモリ、または同種のもののような、固定式コンピュータ可読記憶媒体からメディアデータを検索するために便利なランダムアクセスを行うために、本開示の技法を使用し得る。それ故、図1は、ネットワークベースのストリーミングを含む例を例示するが、本開示の技法が他のシナリオおよびコンテキストにも同様に適用され得ることが理解されるべきである。
[0108]図2は、図1の検索ユニット52のコンポーネントの例となるセットを、より詳細に例示するブロック図である。この例において、検索ユニット52は、eMBMSミドルウェアユニット100、DASHクライアント110、およびメディアアプリケーション112を含む。
[0109]この例において、eMBMSミドルウェアユニット100は、eMBMS受信ユニット106、キャッシュ104、およびサーバユニット102をさらに含む。この例において、eMBMS受信ユニット106は、http://tools.ietf.org/html/rfc6726において入手可能である、T. Paila他、「FLUTE-File Delivery over Unidirectional Transport」、ネットワークワーキンググループ、RFC6726、2012年11月、において説明される、例えば、File Delivery over Unidirectional Transport(FLUTE)に従って、eMBMSを介してデータを受信するように構成される。つまり、eMBMS受信ユニット106は、例えば、サーバデバイス60、それは、BM−SCとして振る舞い得る、からのブロードキャストを介して、ファイルを受信し得る。
[0110]eMBMSミドルウェアユニット100がファイルに関するデータを受信する時に、eMBMSミドルウェアユニットは、キャッシュ104において受信されたデータを記憶し得る。キャッシュ104は、フラッシュメモリ、ハードディスク、RAM、または任意の他の適した記憶媒体などの、コンピュータ可読記憶媒体を備え得る。
[0111]ローカルサーバユニット102は、DASHクライアント110のためのサーバとして振る舞い得る。例えば、ローカルサーバユニット102は、MPDファイルまたは他のマニフェストファイルをDASHクライアント110に提供し得る。ローカルサーバユニット102は、MPDファイルにおけるセグメントに関する利用可能時間(availability times)、ならびに、セグメントが検索されることができるハイパーリンクを宣伝し得る。これらのハイパーリンクは、クライアントデバイス40(例えば、IPv4に関する127.0.0.1)に対応するローカルホストアドレスプリフィックスを含み得る。このように、DASHクライアント110は、HTTP GETまたはパーシャルGET要求を使用して、ローカルサーバユニット102からセグメントを要求し得る。例えば、リンクhttp://127.0.0.1/rep1/seg3から利用可能なセグメントに関して、DASHクライアント110は、http://127.0.0.1/rep1/seg3を求める要求(request for)を含むHTTP GET要求を構築し得、その要求をローカルサーバユニット102に提出し得る。ローカルサーバユニット102は、キャッシュ104から要求されたデータを検索し得、そのような要求に応答して、データをDASHクライアント110に提供し得る。
[0112]図3は、例となるマルチメディアコンテンツ120の要素を例示する概念図である。マルチメディアコンテンツ120は、マルチメディアコンテンツ64(図1)、または記憶媒体62において記憶された別のマルチメディアコンテンツに対応し得る。図3の例において、マルチメディアコンテンツ120は、メディアプレゼンテーション記述(MPD)122および複数の表現124A〜124N(表現124)を含む。表現124Aは、随意的な(optional)ヘッダデータ126およびセグメント128A〜128N(セグメント128)を含み、一方で、表現124Nは、随意的なヘッダデータ130およびセグメント132A〜132N(セグメント132)を含む。文字(letter)Nは、便宜上(as a matter of convenience)、表現124の各々において、最後のムービーフラグメントを指定するために使用される。いくつかの例において、表現124の間で異なる数のムービーフラグメントがあり得る。
[0113]MPD122は、表現124とは別個の(separate from)データ構造を備え得る。MPD122は、図1のマニフェストファイル66に対応し得る。同様に、表現124は、図2の表現68に対応し得る。一般に、MPD122は、一般に、コーディングおよびレンダリング特性、適応セット、MPD122が対応するプロファイル、テキストタイプ情報、カメラ角度情報、評定情報、トリックモード情報(例えば、時間サブシーケンス(temporal sub-sequences)を含む表現を示す情報)、および/または(例えば、再生中の、メディアコンテンツへの的を絞った宣伝の挿入(targeted advertisement insertion)のための)遠隔期間(remote periods)を検索するための情報などの、表現124の特性を記述するデータを含み得る。
[0114]ヘッダデータ126は、存在するとき、セグメント128の特性を記述し得、例えば、(RAP、またストリームアクセスポイント(SAP)とも呼ばれる)ランダムアクセスポイントの時間的なロケーション(temporal locations)、セグメント128のそれは、ランダムアクセスポイント、セグメント128内のランダムアクセスポイントへのバイトオフセット、セグメント128のユニフォームリソースロケータ(URL)、またはセグメント128の他の態様を含む。ヘッダデータ130は、存在するとき、セグメント132に関する類似の特性を記述し得る。追加的にまたは代替的に、そのような特性は、MPD122内に完全に(fully)含まれ得る。
[0115]セグメント128、132は、1つまたは複数のコード化されたビデオサンプルを含み、それらの各々は、ビデオデータのフレームまたはスライスを含み得る。セグメント128のコード化されたビデオサンプルの各々は、類似の特性、例えば、高さ、幅、および帯域幅の必須要件(requirements)、を有し得る。そのような特性は、MPD122のデータによって記述され得るが、そのようなデータは、図3の例において例示されていない。MPD122は、本開示において説明された示唆された(signaled)情報のうちの任意のまたは全てを加えて、3GPP仕様書によって説明されるような、特性を含み得る。
[0116]セグメント128、132の各々は、固有のユニフォームリソースロケータ(URL)に関連付けられ得る。それ故、セグメント128、132の各々は、DASHのような、ストリーミングネットワークプロトコルを使用して、独立して検索可能であり(retrievable)得る。このように、クライアントデバイス40などの、宛先デバイスは、セグメント128または132を検索するためにHTTP GET要求を使用し得る。いくつかの例において、クライアントデバイス40は、セグメント128または132の特定のバイト範囲を検索するために、HTTPパーシャルGET要求を使用し得る。
[0117]図4は、例となるビデオファイル150の要素を例示するブロック図であり、それは、図3のセグメント114、124のうちの1つのような、表現のセグメントに対応し得る。セグメント128、132の各々は、図4の例において例示されるデータの配列(arrangement)に実質的に適合するデータを含み得る。ビデオファイル150は、セグメントをカプセル化するように示され(said)得る。上記で説明されるように、ISOベースメディアファイルフォーマットに従うビデオファイルおよびそれの拡張は、「ボックス」と呼ばれる、一連のオブジェクトに、データを記憶する。図4の例において、ビデオファイル150は、ファイルタイプ(FTYP)ボックス152、ムービー(MOOV)ボックス154、セグメントインデックス(sidx)ボックス162、ムービーフラグメント(MOOF)ボックス164、およびムービーフラグメントランダムアクセス(MFRA)ボックス166を含む。図4は、ビデオファイルの例を表すが、他のメディアファイルが、ISOベースメディアファイルフォーマットおよびそれの拡張に従って、ビデオファイル150のデータと同様に構造化されたメディアデータ(例えば、音声データ、タイムドテキストデータ、または同種のもの)の他のタイプを含み得ることは理解されるべきである。
[0118]ファイルタイプ(FTYP)ボックス152は、一般に、ビデオファイル150に関するファイルタイプを記述する。ファイルタイプボックス152は、ビデオファイル150に関する最善の使用(best use)を説明する仕様を識別するデータを含み得る。ファイルタイプボックス152は、代替的に、MOOVボックス154、ムービーフラグメントボックス164、および/またはMFRAボックス166の前に、置かれ得る。
[0119]いくつかの例において、ビデオファイル150などの、セグメントは、FTYPボックス152の前に、MPDアップデートボックス(図示せず)を含み得る。MPDアップデートボックスは、ビデオファイル150を含む表現に対応するMPDが、MPDを更新するための情報と共に、更新されることになる(is to be updated)ことを示す情報を含み得る。例えば、MPDアップデートボックスは、MPDをアップデートするために使用されることになるリソースに関してURIまたはURLを提供し得る。別の例として、MPDアップデートボックスは、MPDをアップデートするためのデータを含み得る。いくつかの例において、MPDアップデートボックスは、ビデオファイル150のセグメントタイプ(STYP)ボックス(図示せず)に直ちに続き(immediately follow)得、ここで、STYPボックスは、ビデオファイル150に関するセグメントタイプを定義し得る。下記にさらに詳細に議論される、図7は、MPDアップデートボックスに関する追加情報を提供する。
[0120]MOOVボックス154は、図4の例において、ムービーヘッダ(MVHD)ボックス156、トラック(TRAK)ボックス158、および1つまたは複数のmovie extends(MVEX)ボックス160を含む。一般に、MVHDボックス156は、ビデオファイル150の一般的な特性を記述し得る。例えば、MVHDボックス156は、ビデオファイル150がいつ最初に(originally)作成されたか、ビデオファイル150がいつ最後に修正されたか、ビデオファイル150に関する時間尺度(timescale)、ビデオファイル150に関する再生の持続時間、を記述するデータ、または一般にビデオファイル150を記述する他のデータを含み得る。
[0121]TRAKボックス158は、ビデオファイル150のトラックに関するデータを含み得る。TRAKボックス158は、TRAKボックス158に対応するトラックの特性を説明するトラックヘッダ(TKHD)ボックスを含み得る。いくつかの例において、TRAKボックス158は、コード化されたビデオピクチャを含み得、一方で、他の例において、トラックのコード化されたビデオピクチャは、ムービーフラグメント164において含まれ得、それは、TRAKボックス158および/またはsidxボックス162のデータによって言及され得る。
[0122]いくつかの例において、ビデオファイル150は、1つより多くのトラックを含み得る。したがって、MOOVボックス154は、ビデオファイル150におけるトラックの数に等しい数のTRAKボックスを含み得る。TRAKボックス158は、ビデオファイル150の対応するトラックの特性を記述し得る。例えば、TRAKボックス158は、対応するトラックに関する時間的および/または空間的情報を記述し得る。MOOVボックス154のTRAKボックス158と同様のTRAKボックスは、カプセル化ユニット30(図3)が、ビデオファイル150などの、ビデオファイルにおいてパラメータセットトラックを含むとき、パラメータセットトラックの特性を記述し得る。カプセル化ユニット30は、パラメータセットラックを記述するTRAKボックス内のパラメータセットラックにおけるシーケンスレベルのSEIメッセージの存在をシグナリングし得る。
[0123]MVEXボックス160は、例えば、MOOVボックス154内に含まれるビデオデータに加えて、もしあれば(if any)、ビデオファイル150がムービーフラグメント164を含むことをシグナリングするために、対応するムービーフラグメント164の特性を記述し得る。ストリーミングビデオデータのコンテキストにおいて、コード化されたビデオピクチャは、MOOVボックス154においてではなく、ムービーフラグメント164において含まれ得る。したがって、全てのコード化されたビデオサンプルは、MOOVボックス154においてではなく、ムービーフラグメント164において、含まれ得る。
[0124]MOOVボックス154は、ビデオファイル150におけるムービーフラグメント164の数に等しい数のMVEXボックス160を含み得る。MVEXボックス160の各々は、ムービーフラグメント164のうちの対応する1つの特性を記述し得る。例えば、各MVEXボックスは、ムービーフラグメント164のうちの対応する1つに関する時間的な持続時間を記述するmovie extends header box(MEHD)ボックスを含み得る。
[0125]上で述べたように、カプセル化ユニット30は、実際にコード化されたビデオデータを含まないビデオサンプルにおいて、シーケンスデータセットを記憶し得る。ビデオサンプルは、一般に、アクセスユニットに対応し得、それは、特定の時間インスタンスにおけるコード化されたピクチャの表現である。AVCのコンテキストにおいて、コード化されたピクチャは、アクセスユニットの全ての画素を構築するための情報を包含する1つまたは複数のVCL NALユニット、および、SEIメッセージのような、他の関連付けられた非VCL NALユニットを含む。したがって、カプセル化ユニット30は、ムービーフラグメント164のうちの1つにおいて、シーケンスデータセットを含み得、それは、シーケンスレベルSEIメッセージを含み得る。カプセル化ユニット30は、シーケンスデータセットおよび/またはシーケンスレベルSEIメッセージの存在を、ムービーフラグメント164のうちの1つに対応するMVEXボックス160のうちの1つ内でムービーフラグメント164のうちの1つにおいて存在しているとして、さらにシグナリングし得る。
[0126]SIDXボックス162は、ビデオファイル150の随意的な要素である。つまり、3GPPファイルフォーマットに適合するビデオファイル、またはそのようなファイル形式は、SIDXボックス162を必ずしも含まない。3GPPファイルフォーマットの例に従って、SIDXボックスは、セグメント(例えば、ビデオファイル150内に包含されるセグメント)のサブセグメントを識別するために使用され得る。3GPPファイルフォーマットは、サブセグメントを、「対応する(1つまたは複数の)メディアデータボックスを有する1つまたは複数の連続するムービーフラグメントボックスの自己完結型(self-contained)のセットであり、およびムービーフラグメントボックスによって言及される(referenced)データを包含するメディアデータボックスは、そのムービーフラグメントボックスに続かなければならず、および同じトラックについての情報を包含する次のムービーフラグメントボックスに先行しなければならない」と定義する。3GPPファイルフォーマットはまた、SIDXボックスが「ボックスによって文書で記録された(documented)(サブ)セグメントのサブセグメントへの一連への言及(references)を包含することを示す。言及されたサブセグメントは、プレゼンテーション時間において、連続的である。同様に、セグメントインデックスボックスによって言及されたバイトは、常にそのセグメント内で連続的である。言及されたサイズは、言及された資料(material)においてバイトの数のカウントを与える。」
[0127]SIDXボックス162は、一般に、ビデオファイル150において含まれるセグメントの1つまたは複数のサブセグメントを代表する情報を提供する。例えば、そのような情報は、サブセグメントが始まりおよび/または終了する再生時間(playback times)、サブセグメントに関するバイトオフセット、サブセグメントがストリームアクセスポイント(SAP)を含む(例えば、ストリームアクセスポイント(SAP)から開始する)かどうか、SAPに関するタイプ(例えば、SAPが瞬間デコーダリフレッシュ(IDR:instantaneous decoder refresh)ピクチャであるか、クリーンランダムアクセス(CRA)ピクチャであるか、ブロークンリンクアクセス(BLA)ピクチャであるか、または同種のものであるか)、サブセグメントにおける(再生時間および/またはバイトオフセットの観点からの)SAPの位置、および同類のもの、を含み得る。
[0128]ムービーフラグメント164は、1つまたは複数のコード化されたビデオピクチャを含み得る。いくつかの例において、ムービーフラグメント164は、ピクチャの1つまたは複数のグループ(GOP)を含み得、それらの各々は、複数のコード化されたビデオピクチャ、例えば、フレームまたはピクチャ、を含み得る。加えて、上記で説明されるように、ムービーフラグメント164は、いくつかの例において、シーケンスデータセットを含み得る。ムービーフラグメント164の各々は、ムービーフラグメントヘッダボックス(MFHD、図4において示されない)を含み得る。MFHDボックスは、ムービーフラグメントに関するシーケンス番号のような、対応するムービーフラグメントの特性を記述し得る。ムービーフラグメント164は、ビデオファイル150におけるシーケンス番号順に(in order of sequence number)含まれ得る。
[0129]MFRAボックス166は、ビデオファイル150のムービーフラグメント164内で、ランダムアクセスポイントを記述し得る。これは、ビデオファイル150によってカプセル化されたセグメント内の特定の時間的なロケーション(すなわち、再生時間)への捜索(seeks)を行うなどの、トリックモードを行うことを支援し得る。MFRAボックス166は、いくつかの例において、一般に、随意的であり、ビデオファイルに含まれることを必要としない。同様に、クライアントデバイス40のような、クライアントデバイスは、ビデオファイル150のビデオデータを正しく復号しおよび表示するためにMFRAボックス166を言及することを必ずしも必要としない。MFRAボックス166は、ビデオファイル150のトラックの数に等しい、またはいくつかの例において、ビデオファイル150のメディアトラック(例えば、非ヒントトラック)の数に等しい、複数の(a number of)トラックフラグメントランダムアクセス(TFRA)ボックス(図示せず)を含み得る。
[0130]いくつかの例において、ムービーフラグメント164は、IDRピクチャのような、1つまたは複数のストリームアクセスポイント(SAP)を含み得る。同様に、MFRAボックス166は、SAPのビデオファイル150内のロケーションのインジケーションを提供し得る。したがって、ビデオファイル150の時間サブシーケンスは、ビデオファイル150のSAPから形成され得る。時間サブシーケンスはまた、SAPに従属する(depend from)Pフレームおよび/またはBフレームなどの他のピクチャを含み得る。時間サブシーケンスのフレームおよび/またはスライスは、そのサブシーケンスの他のフレーム/スライスに依存する時間サブシーケンスのフレーム/スライスが適切に復号されることができるように、セグメント内で配列され得る。例えば、データの階層的な配列において、他のデータに関する予測のために使用されるデータはまた、時間サブシーケンスに含まれ得る。
[0131]ビデオファイル150はまた、この例において、サンプル記述ボックス168を包含し得る。特に、サンプル記述ボックス168は、この例において、TRAKボックス158内に含まれる。例となるサンプル記述ボックス168は、以下のように定義され得る:
[0132]サンプルエントリーおよびボックスタイプ:'hvc2'、hev2'、'lhv1'、'lhe1'、'lhvC'
・コンテナ:サンプル記述ボックス('stsd')
・必須(Mandatory):'hvc1'、'hev1'、'hvc2'、'hev2'、'lhv1'、または'lhe1'サンプルエントリーが必須である
・量:1つまたは複数のサンプルエントリーが存在し得る
[0133]サンプル記述ボックス168に関するこの例となる定義において、サンプルエントリーネームが'lhv1'であるとき、array_completenessのデフォルトおよび必須の値は、パラメータセットの全てのタイプのアレイ(arrays)に関して1であり、全ての他のアレイに関しては0である。サンプルエントリーネームが、'lhe1'のとき、array_completenesのデフォルト値は、全てのアレイに関して0である。
[0134]サンプル記述ボックス168についてのこの例となる定義において、サンプルエントリーネームが'hev2'であり、サンプルエントリーがHEVC構成のみを包含するとき、サンプルエントリーネーム'hev1'に関して条項8.4.3において規定されたのと同じ制約が、適用する。
[0135]サンプル記述ボックス168についてのこの例となる定義において、サンプルエントリーネームが'lhe1'であるとき、またはサンプルエントリーネームが'hev1'または'hev2'であり、およびそのサンプルエントリーが、HEVC構成およびL−HEVC構成の両方を包含するとき、以下が適用される。
[0136]下記の例となる制約は、少なくともいくつかのレイヤにおいてIRAPピクチャを包含するアクセスユニットからの便利なランダムアクセスをイネーブルするために、(サンプルエントリーにおける)帯域外パラメータセットおよび(サンプルにおける)帯域内パラメータセットの配置に制限を課す。これらの制約があるので(With these constraints)、それらサンプルエントリーを用いて初期化して、全てのピクチャがIRAPピクチャであるアクセスユニットからロールフォワードするファイルリーダは、それが必要とする全てのパラメータセットを有するであろう。
[0137]サンプル記述ボックス168についてのこの例となる定義において、特定のトラックにおける任意の特定のサンプルに関して、別のトラックにおいて時間的に配列されたサンプルは、この特定のサンプルのもの(that)と同じ復号時間を有するもの(one)として定義される。
[0138]サンプル記述ボックス168についてのこの例となる定義において、所与のサンプルのIRAPピクチャ、トラックおよびレイヤに関して、IRAPピクチャを復号するために必要とされる各パラメータセットは、以下のうちの1つにおいて含まれるものとする(shall):
a.所与のトラックにおける所与のサンプルに適用するサンプルエントリー
b.所与のレイヤの参照レイヤを運ぶトラックの初期サンプルのサンプルエントリー、ここで、初期サンプルは、時間的に配列されたサンプルが参照レイヤのIRAPピクチャを包含するとき、所与のサンプルの時間的に配列されたサンプルであるか、または参照レイヤのIRAPピクチャを包含する前のサンプルであるかのいずれかである。
c.場合によりエクストラクタを使用して、所与のサンプルそれ自体
d.存在するとき、場合によりエクストラクタを使用して、所与のレイヤの参照レイヤを運ぶトラックの任意の時間的に配列されたサンプル
[0139]サンプル記述ボックス168についてのこの例となる定義において、所与のサンプルの非IRAPピクチャ、トラックおよびレイヤに関して、そのピクチャを復号するために必要とされる各パラメータセットは、以下のうちの1つにおいて含まれるものとする:
a.所与のトラックにおける所与のサンプルに適用するサンプルエントリー
b.所与のレイヤの参照レイヤを運ぶトラックの初期サンプルのサンプルエントリー、ここで、初期サンプルは、時間的に配列されたサンプルが参照レイヤのIRAPピクチャを包含するとき、所与のサンプルの時間的に配列されたサンプルであるか、または参照レイヤのIRAPピクチャを包含する前のサンプルであるかのいずれかである。
c.場合によりエクストラクタを使用して、所与のレイヤにおけるIRAPピクチャを包含する前のサンプルから、所与のサンプルそれ自体までの両端を含む、所与のトラックにおけるサンプルのうちのいずれか(any of the samples)
d.存在するとき、場合によりエクストラクタを使用して、所与のレイヤにおいてIRAPピクチャを包含する前のサンプルの時間的に配列されたサンプルから、所与のサンプルの時間的に配列されたサンプルまでの両端を含む、所与のレイヤの参照レイヤを運ぶトラックにおけるサンプルのうちのいずれか
[0140]サンプル記述ボックス168についてのこの例となる定義において、1つよりも多くのトラックにおいて運ばれるHEVCまたはL−HEVCビットストリームに関して、ベーストラックのサンプルエントリーネームが'hvc1'または'hvc2'であるとき、他のトラックのサンプルエントリーネームは'hvc2'または'lhv1'であるものとし、ベーストラックのサンプルエントリーネームが'hev1'または'hev2'であるとき、他のトラックのサンプルエントリーネームは、'hev2'または'lhe1'であるものとする。ベーストラックは、ネイティブに存在する(natively present)ベースレイヤの最も低い時間サブレイヤ(それのVCL NALユニットは0に等しいTemporalIdを有する)を有するトラックである。
[0141]上記の制約は、この例において、HEVCまたはL−HEVCビットストリームを運ぶ全てのトラック、あるいは、どのトラックでもなく、のいずれか、に関して、イネーブルされることになりおよび示されることになる便利なランダムアクセスを必要とする。
[0142]トラックのサンプルがHEVC準拠のベースレイヤを包含する場合、'hvc1'、'hev1'、'hvc2'、または'hev2'サンプルエントリーは、この例において、使用されるものとする。ここで、エントリーは、初めに、HEVC構成ボックスを包含するものとし、場合により、以下で定義されるようにL−HEVC構成ボックスによって、後続される。HEVC構成ボックスは、プロファイル、層(Tier)、レベル、および、場合によりまた、HEVCDecoderConfigurationRecordによって定義されるような、HEVC準拠のベースレイヤのパラメータセット、を文書で記録する(documents)。L−HEVC構成ボックスは、場合により、L−HEVC構成ボックスにおいて記憶される、LHEVCDecoderConfigurationRecordによって定義されるような、L−HEVC準拠の拡張レイヤのパラメータセットを文書で記録する。
[0143]トラックのサンプルが、HEVCベースレイヤを包含しない場合、サンプルエントリータイプ'lhv1'または'lhe1'は、使用されるものとし、およびサンプルエントリーは、下記に定義されるような、L−HEVC構成ボックスを包含するものとする。これは、例えば、ISO/IEC14496−15において、定義されるような、HEVCDecoderConfigurationRecordを含む。
[0144]図5は、本開示の技法に従って、メディアデータを形成しおよび送る例となる方法を例示するフローチャートである。図5の方法は、例えば、図1のコンテンツ準備デバイス20、および/または図1のサーバデバイス60、コンテンツ準備デバイス20およびサーバデバイス60にあると考えられる(attributed to)機能性を行うように構成されるデバイス、または同種のものによって行われ得る。説明の目的のために、図5の技法は、コンテンツ準備デバイス20およびサーバデバイス60の両方に関して議論される。
[0145]初めに、カプセル化ユニット30は、例えば、音声エンコーダ26および/またはビデオエンコーダ28(200)から符号化されたメディアデータを受信する。この例において、カプセル化ユニット30は、様々なサンプルにおけるビデオデータをカプセル化し、それらのうちのいくつかは、ランダムアクセスサンプルを表す。ビデオデータは、HEVCまたはL−HEVCとして符号化され得る。便利なランダムアクセスをイネーブルするために、カプセル化ユニット30は、'hev1'または'hev2'のサンプルエントリータイプ値をランダムアクセスポイントメディアデータをカプセル化するサンプルに割り当て(202)、およびまた、パラメータセットにサンプルエントリーまたはランダムアクセスサンプルを提供する(204)。ランダムアクセスポイントは、瞬間デコーダリフレッシュ(IDR:instantaneous decoder refresh)フレームに対応し得、それは、イントラ予測(Iフレーム)を使用して符号化されたフレームに対応し得る。パラメータセットは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、および/またはピクチャパラメータセット(SPS)のうちのいずれかまたは全てを含み得る。一般に、カプセル化ユニット30は、便利なランダムアクセスをイネーブルするために、全ての必要なパラメータセットがランダムアクセスサンプルと一緒に(with)、および/またはランダムアクセスサンプルに対応するサンプルエントリーと一緒に、提供されることを確かにし得る。
[0146]カプセル化ユニット30は、次いで、例えば、ISO/IEC14496−15に従い、サンプルおよびパラメータセットを含む、1つまたは複数のファイルを形成し得る(206)。特に、カプセル化ユニット30は、便利なランダムアクセスをイネーブルするために、パラメータセットがサンプルエントリータイプ'hev1'または'hev2'および/またはこれらのサンプルエントリータイプに対応するサンプルと共に(with)含まれるように、ファイルを形成し得る。コンテンツ準備デバイス20は、次いで、ランダムアクセスサンプルに関するサンプルエントリータイプデータを出力し得る(208)。いくつかの例において、この出力は、(1つまたは複数の)ファイルの残り(the rest)と一緒に、デジタル多用途ディスク(DVD)またはBlu−rayディスクなどの、固定媒体に向けてのものであり得る。他の例において、この出力は、サーバデバイス60に送られ得、それは、次いで、サンプルエントリータイプデータを、図1のクライアントデバイス40などの、クライアントデバイスに送り得る。
[0147]図5の例において、サーバデバイス60は、クライアントデバイス40にサンプルエントリータイプデータを送り、それは、クライアントデバイス40に便利なランダムアクセスを行わせる。それ故、図1のサーバデバイス60の要求処理ユニット70は、クライアントデバイス40から、ランダムアクセスサンプル、それに関するサンプルエントリータイプが'hev1'または'hev2'である、への要求を受信する(210)。それに応じて、要求処理ユニット70は、クライアントデバイス40に、要求されたランダムアクセスサンプルおよびパラメータセット(VPS、SPS、および/またはPPS)を送る(212)。特に、このデータは、クライアントデバイス40がランダムアクセスサンプルより早いサンプルのパラメータセットを探索することおよびフェッチすることを必要としないように、パラメータセットがサンプルエントリーデータと一緒にまたはサンプルエントリーデータに対応するサンプルと一緒に置かれるように配列され得る。このように、図5の技法は、クライアントデバイス40に関して便利なランダムアクセスをイネーブルし得、それにより、サーバデバイス60およびクライアントデバイス40に関する処理必須要件(processing requirements)を減らし、便利なランダムアクセスがイネーブルされていない場合と比べてこのデータ交換に関して帯域幅の消費を減らし得、およびクライアントデバイス40がユーザからメディアデータを要求する入力を受信する時間とクライアントデバイス40がユーザに要求されたメディアデータを提示することができる時間との間のレイテンシを改善し得る。
[0148]図6は、本開示の技法に従って、ランダムアクセスを行う例となる方法を例示するフローチャートである。例の目的のために、図6の方法は、図1のクライアントデバイス40に関して説明される。
[0149]この例において、クライアントデバイス40の検索ユニット52は、初めに、ランダムアクセスポイントサンプルに関するサンプルエントリータイプデータを要求する(220)。例えば、検索ユニット52は、DASHに従ったサンプルエントリータイプデータに関して、HTTP要求を送り得る。サンプルエントリータイプデータを受信した後に、クライアントデバイス40のファイルフォーマット処理ユニット50は、例えば、HEVCまたはL−HEVCのうちの1つに従って符号化されたビデオデータを含む関連付けられたサンプルに関する、サンプルエントリータイプデータが'hev1'または'hev2'のサンプルエントリータイプを示すことを決定する(222)。したがって、クライアントデバイス40は、サンプルが便利なランダムアクセスに関して使用されることができることを決定し得る。つまり、クライアントデバイス40は、復号順序においてより早いサンプルのパラメータセットを探索することおよびフェッチすることなしに、サンプル、および、サンプルのメディアデータと一緒にまたはサンプルに関するサンプルエントリーと一緒に、含まれるパラメータセットを検索し得る。この例において、サンプルを含むビデオビットストリームはまた、復号順序においてそのサンプルよりも早い1つまたは複数の他のサンプルを含むことが理解されるべきである。
[0150]それに応じて、クライアントデバイス40は、サンプルメディアデータおよび対応するパラメータセットを検索する(226)。クライアントデバイス40は、より早いサンプルのパラメータセットを探索することおよびフェッチすることを必要としないが、代わりに(but instead)、検索されたパラメータセットは、便利なランダムアクセスに起因して(due to)、検索されたサンプルのメディアデータを復号するために必要とされる全てのパラメータセットデータを含む。それ故、ファイルフォーマット処理ユニット50は、検索されたサンプルを含むファイルからビデオデータをカプセル解除し、およびビデオデコーダ48にカプセル解除されたメディアデータを提供する。ビデオデコーダ48は、パラメータセットを使用して、ビデオデータを復号し、復号されたビデオデータをビデオ出力44に提供し、それは、メディアデータを提示する(228)。検索ユニット52は、復号順序において後続の(subsequent)サンプルをさらに要求し得(230)、ビデオデコーダ48は、次いで(then)、後続のサンプルのビデオデータを復号し得、およびビデオ出力44は、復号されたビデオデータを提示し得る。このプロセスは、対応するメディアプレゼンテーションの終わりまで、またはメディアデータの新しいセットが、例えば、ユーザによって、要求されるまで、継続し得る。
[0151]このように、図6の方法は、ビデオビットストリームのサンプルに関するサンプルエントリータイプを記述するデータを受信すること、サンプルエントリータイプは、'hev1'または'hev2'のうちの1つであり、ここにおいて、サンプルは、High−Efficiency Video Coding(HEVC)またはレイヤードHEVC(L−HEVC)のうちの1つに従って符号化されたビデオデータを備え、ビデオデータを含む1つまたは複数の他のサンプルは、復号順序においてビデオビットストリームにおけるサンプルに先行する、と、'hev1'または'hev2'であるサンプルエントリータイプおよびHEVCまたはL−HEVCのうちの1つに従って符号化されたビデオデータを備えるサンプルに応答して、サンプルに先行する1つまたは複数の他のサンプルのうちのいずれのビデオデータを検索することなしに、および復号順序においてビデオビットストリームのいずれの前のサンプルのパラメータセットを検索することなしに、サンプルを使用してランダムアクセスを行うためにサンプルを検索することと、を含む、ビデオデータを処理する方法の例を表す。
[0152]図7は、ビデオデータを含むファイルを生成する例となる技法を例示するフローチャートである。図7の方法は、図1のカプセル化ユニット30によって行われているとして説明される。しかしながら、一般に、図7の方法は、例えば、サーバデバイス60のコンポーネントによってなど、他のデバイスによっても同様に、行われ得ることが理解されるべきである。その上、図7の技法は、上記で議論されるような、図5のファイル生成技法と併せて、行われ得る。
[0153]初めに、カプセル化ユニット30は、符号化されたメディアデータを受信する(250)。カプセル化ユニット30は、例えば、ビデオエンコーダ28から符号化されたメディアデータを受信し得、それは、HEVC、L−HEVC、または別のそのようなビデオコーディング規格に従って、メディアデータを符号化し得る。特に、符号化されたメディアデータは、例えば、MV−HEVC、3D−HEVC、SHVC、または(他のビデオ符号化規格へのレイヤード拡張などの)同種のものに関する、複数のレイヤを含み得る。
[0154]カプセル化ユニット30は、一般に、複数のトラックの形態で符号化されたメディアデータを含むファイルを生成し得る。カプセル化ユニット30は、ビデオデータを含む各トラックがマルチレイヤビデオデータの1つまたは複数のレイヤを含むように、ファイルのトラックを形成し得る(252)。トラック内の複数のレイヤは、例えば、様々な時間的拡張性レイヤに対応し得る。別個の(distinct)レイヤを含むトラックは、例えば、MV−HEVCまたは3D−HEVCに関する別個の(distinct)ビュー、またはSHVCに関する異なる拡張性レイヤ(例えば、空間解像度拡張性、ビット深度拡張性、ピーク信号対雑音比(PSNR)拡張性、または同種のもの)に対応し得る。
[0155]図7の例において、カプセル化ユニット30は、次いで、便利なランダムアクセスをイネーブルするかどうかを決定する(254)。例えば、カプセル化ユニット30は、管理者などの、ユーザから構成データを受信し得る。本開示において提案されている制限に従って、便利なランダムアクセスが複数のトラックの最も低いトラックに関してイネーブルされるとき、最も低いトラックはビデオデータの最も低いサブレイヤを運ぶビデオデータのベースレイヤを含む、カプセル化ユニット30は、ビデオデータを含む複数のトラックの互いの(each other)トラックに関して、便利なランダムアクセスをイネーブルする(256)。代替的に、便利なランダムアクセスが最も低いトラックに関してディセーブルされる(disabled)場合、カプセル化ユニット30は、複数のトラックのうちのその他のトラック(the other tracks)に関して便利なランダムアクセスをディセーブルする(258)。他の例において、カプセル化ユニット30は、上記で議論された代替的な制約に従って(すなわち、(HEVC、L−HEVC、またはあらゆる他のコーデックによってコード化された)シングルレイヤまたはマルチレイヤのビットストリームを運ぶ全てのトラックに関して)、便利なランダムアクセスをイネーブルまたはディセーブルし得、ベースレイヤの最も低いサブレイヤ(それのVCL NALユニットが0に等しいTemporalIdを有する)を運ぶトラックが、便利なランダムアクセスがイネーブルされていることを示す(HEVC構成および/またはL−HEVC構成の存在を伴う)サンプルエントリータイプを使用するとき、全ての他のトラックは、便利なランダムアクセスがイネーブルされていることを示す(HEVC構成および/またはL−HEVC構成の存在を伴う)サンプルエントリータイプを使用するものとする。
[0156]カプセル化ユニット30は、次いで、便利なランダムアクセスがイネーブルされているかどうかを示すサンプルエントリータイプ値を、ビデオデータを含むトラックのサンプルに関するサンプルエントリーに割り当てる(260)。例えば、サンプルエントリータイプ値としての'hev1'および'hev2'は、便利なランダムアクセスがビデオデータを含むトラックに関してイネーブルされていることを示し得る。カプセル化ユニット30はまた、上記で決定されるようなトラックおよびサンプルエントリータイプ値を含むファイルを形成する(262)。
[0157]このように、図7の方法は、複数のトラックのうちの最も低いトラック、最も低いトラックはビデオデータの最も低いサブレイヤを運ぶビデオデータのベースレイヤを含む、が、便利なランダムアクセスがイネーブルされていることを示すサンプルに関するサンプルエントリータイプ値を含むことになることを決定することに応答して、便利なランダムアクセスがイネーブルされることを示すために、ビデオデータを含む複数のトラックのその他のトラックの各々のサンプルに関するサンプルエントリータイプ値を設定することと、複数のトラックのトラックに関するサンプルエントリータイプ値が、便利なランダムアクセスがイネーブルされていることを示すように、複数のトラックを含むファイルを生成することと、を含むビデオデータを含むファイルを生成する方法の例を表す。
[0158]1つまたは複数の例において、説明された機能(functions)は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせにおいて、インプリメントされ得る。ソフトウェアにおいてインプリメントされる場合、これら機能は、コンピュータ可読媒体上で1つまたは複数の命令またはコードとして記憶または送信され得、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体またはデータ記憶媒体のような有体の媒体に対応する、コンピュータ可読記憶媒体を含み得る。このように、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号または搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法のインプリメンテーションのための命令、コード、および/またはデータ構造を検索するために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされることができるあらゆる利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
[0159]制限ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光学ディスクストレージ、磁気ディスクストレージ、または他の磁気記憶デバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態で望ましいプログラムコードを記憶するために使用されることができ、かつ、コンピュータによってアクセスされることができるあらゆる他の媒体を備えることができる。また、任意の接続は、厳密にはコンピュータ可読媒体と称される。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まないが、代わりとして、非一時的な、有形の記憶媒体に向けられていることは理解されるべきである。本明細書で使用される場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスクおよびブルーレイディスクを含み、ここで、ディスク(disk)は、通常磁気的にデータを再生し、一方で、ディスク(disc)は、レーザーを用いて光学的にデータを再生する。上記の組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
[0160]命令は、1つまたは複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の同等の集積回路またはディスクリート論理サーキットリーのような、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される場合、「プロセッサ」という用語は、前述の構造または本明細書で説明された技法のインプリメンテーションに適した任意の他の構造のいずれかを言及し得る。加えて、いくつかの態様では、本明細書で説明された機能性は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に提供され得るか、または組み合わせられたコーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理素子において十分にインプリメントされ得る。
[0161]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(例えば、チップセット)を含む、幅広い種類のデバイスまたは装置においてインプリメントされ得る。様々な構成要素、モジュール、またはユニットは、本開示では、開示された技法を実行するように構成されたデバイスの機能的な態様を強調するように説明されているが、必ずしも異なるハードウェアユニットによる実現を必要とするわけではない。むしろ、上記で説明されるように、様々なユニットは、コーデックハードウェアユニットへと組み合わせられ得るか、または適したソフトウェアおよび/またはファームウェアと併せて、上述したような1つまたは複数のプロセッサを含む、相互動作するハードウェアユニットの集合によって提供され得る。
[0162]様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲の範囲内にある。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを検索する方法であって、前記方法は、
ビデオビットストリームのサンプルに関するサンプルエントリータイプを記述するデータを受信することと、前記サンプルエントリータイプは、'hev1'または'hev2'のうちの1つであり、ここにおいて、前記サンプルは、High−Efficiency Video Coding(HEVC)またはレイヤードHEVC(L−HEVC)のうちの1つに従って符号化されたビデオデータを備え、ビデオデータを含む1つまたは複数の他のサンプルは、復号順序において前記ビデオビットストリームにおける前記サンプルに先行する、
'hev1'または'hev2'である前記サンプルエントリータイプおよびHEVCまたはL−HEVCのうちの1つに従って符号化された前記ビデオデータを備える前記サンプルに応答して、前記サンプルに先行する前記1つまたは複数の他のサンプルのうちのいずれの前記ビデオデータを検索することなしに、および復号順序において前記ビデオビットストリームのいずれの前のサンプルのパラメータセットを検索することなしに、前記サンプルを使用してランダムアクセスを行うために前記サンプルを検索することと
を備える、方法。
[C2]
前記サンプルに対応するサンプルエントリーにおいて、または前記サンプルにおいて、のうちの少なくとも1つにおいて、前記サンプルを記述するパラメータセットを受信することをさらに備える、C1に記載の方法。
[C3]
前記サンプルは、HEVCに従って、前記ビデオデータを備え、前記サンプルエントリータイプは、'hev2'である、C1に記載の方法。
[C4]
前記サンプルの前記ビデオデータは、ファイルのトラックにおいて含まれる、C1に記載の方法。
[C5]
前記ファイルは、複数のトラックを含み、前記トラックの各々は、L−HEVCのレイヤに対応する、C4に記載の方法。
[C6]
前記サンプルの前記ビデオデータは、ファイルの複数のトラックのうちの1つのトラックに含まれ、前記複数のトラックは、シングルレイヤまたはマルチレイヤのビデオデータを含む前記複数のトラックのサブセットを含み、前記方法は、前記複数のトラックの前記サブセットのうちの各々が、便利なランダムアクセスがイネーブルされていることを示すサンプルエントリータイプを有するサンプルを含むことを決定することをさらに備える、C1に記載の方法。
[C7]
前記サンプルの前記ビデオデータは、ファイルの複数のトラックのうちの1つのトラックに含まれ、前記複数のトラックは、シングルレイヤまたはマルチレイヤのビデオデータを含む前記複数のトラックのサブセットを含み、前記方法は、便利なランダムアクセスが、最も低い時間サブレイヤを有する前記複数のトラックの前記サブセットのうちの1つに関してイネーブルされていることを決定することに応答して、便利なランダムアクセスが、前記複数のトラックの各々に関してイネーブルされていることを決定することをさらに備える、C1に記載の方法。
[C8]
ビデオデータを検索するためのデバイスであって、前記デバイスは、
ビデオデータを記憶するように構成されたメモリと、
サーキットリーにおいてインプリメントされ、および、
ビデオビットストリームのサンプルに関するサンプルエントリータイプを記述するデータを受信することと、前記サンプルエントリータイプは、'hev1'または'hev2'のうちの1つであり、ここにおいて、前記サンプルは、High−Efficiency Video Coding(HEVC)またはレイヤードHEVC(L−HEVC)のうちの1つに従って符号化されたビデオデータを備え、ビデオデータを含む1つまたは複数の他のサンプルは、復号順序において前記ビデオビットストリームにおける前記サンプルに先行する、
'hev1'または'hev2'である前記サンプルエントリータイプおよびHEVCまたはL−HEVCのうちの1つに従って符号化された前記ビデオデータを備える前記サンプルに応答して、前記サンプルに先行する前記1つまたは複数の他のサンプルのうちのいずれの前記ビデオデータを検索することなしに、および復号順序において前記ビデオビットストリームのいずれの前のサンプルのパラメータセットを検索することなしに、前記サンプルを使用してランダムアクセスを行うために前記サンプルを検索することと、
前記メモリに前記検索されたサンプルを記憶することと
を行うように構成された1つまたは複数のプロセッサと
を備える、デバイス。
[C9]
前記プロセッサは、前記サンプルに対応するサンプルエントリーにおいて、または前記サンプルにおいて、のうちの少なくとも1つにおいて、前記サンプルを記述するパラメータセットを受信するようにさらに構成される、C8に記載のデバイス。
[C10]
前記サンプルは、HEVCに従って、前記ビデオデータを備え、前記サンプルエントリータイプは、'hev2'である、C8に記載のデバイス。
[C11]
前記サンプルの前記ビデオデータは、ファイルのトラックにおいて含まれる、C8に記載のデバイス。
[C12]
前記ファイルは、複数のトラックを含み、前記トラックの各々は、L−HEVCのレイヤに対応する、C11に記載のデバイス。
[C13]
前記サンプルの前記ビデオデータは、ファイルの複数のトラックのうちの1つのトラックに含まれ、前記複数のトラックは、シングルレイヤまたはマルチレイヤのビデオデータを含む前記複数のトラックのサブセットを含み、前記プロセッサは、前記複数のトラックの前記サブセットのうちの各々が、便利なランダムアクセスがイネーブルされていることを示すサンプルエントリータイプを有するサンプルを含むことを決定するようにさらに構成される、C8に記載のデバイス。
[C14]
前記サンプルの前記ビデオデータは、ファイルの複数のトラックのうちの1つのトラックに含まれ、前記複数のトラックは、シングルレイヤまたはマルチレイヤのビデオデータを含む前記複数のトラックのサブセットを含み、前記プロセッサは、便利なランダムアクセスが、最も低い時間サブレイヤを有する前記複数のトラックの前記サブセットのうちの1つに関してイネーブルされていることを決定することに応答して、便利なランダムアクセスが、前記複数のトラックの各々に関してイネーブルされていることを決定するように構成される、C8に記載のデバイス。
[C15]
ビデオデータを検索するためのデバイスであって、前記デバイスは、
ビデオビットストリームのサンプルに関するサンプルエントリータイプを記述するデータを受信するための手段と、前記サンプルエントリータイプは、'hev1'または'hev2'のうちの1つであり、ここにおいて、前記サンプルは、High−Efficiency Video Coding(HEVC)またはレイヤードHEVC(L−HEVC)のうちの1つに従って符号化されたビデオデータを備え、ビデオデータを含む1つまたは複数の他のサンプルは、復号順序において前記ビデオビットストリームにおける前記サンプルに先行する、
'hev1'または'hev2'である前記サンプルエントリータイプおよびHEVCまたはL−HEVCのうちの1つに従って符号化された前記ビデオデータを備える前記サンプルに応答して、前記サンプルに先行する前記1つまたは複数の他のサンプルのうちのいずれの前記ビデオデータを検索することなしに、および復号順序において前記ビデオビットストリームのいずれの前のサンプルのパラメータセットを検索することなしに、前記サンプルを使用してランダムアクセスを行うために前記サンプルを検索するための手段と
を備える、デバイス。
[C16]
前記サンプルに対応するサンプルエントリーにおいて、または前記サンプルにおいて、のうちの少なくとも1つにおいて、前記サンプルを記述するパラメータセットを受信するための手段をさらに備える、C15に記載のデバイス。
[C17]
前記サンプルは、HEVCに従って、前記ビデオデータを備え、前記サンプルエントリータイプは、'hev2'である、C15に記載のデバイス。
[C18]
前記サンプルの前記ビデオデータは、ファイルのトラックにおいて含まれる、C15に記載のデバイス。
[C19]
前記ファイルは、複数のトラックを含み、前記トラックの各々は、L−HEVCのレイヤに対応する、C18に記載のデバイス。
[C20]
前記サンプルの前記ビデオデータは、ファイルの複数のトラックのうちの1つのトラックに含まれ、前記複数のトラックは、シングルレイヤまたはマルチレイヤのビデオデータを含む前記複数のトラックのサブセットを含み、前記複数のトラックの前記サブセットのうちの各々が、便利なランダムアクセスがイネーブルされていることを示すサンプルエントリータイプを有するサンプルを含むことを決定するための手段をさらに備える、C15に記載のデバイス。
[C21]
前記サンプルの前記ビデオデータは、ファイルの複数のトラックのうちの1つのトラックに含まれ、前記複数のトラックは、シングルレイヤまたはマルチレイヤのビデオデータを含む前記複数のトラックのサブセットを含み、便利なランダムアクセスが、最も低い時間サブレイヤを有する前記複数のトラックの前記サブセットのうちの1つに関してイネーブルされていることを決定することに応答して、便利なランダムアクセスが、前記複数のトラックの各々に関してイネーブルされていることを決定するための手段をさらに備える、C15に記載のデバイス。
[C22]
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、プロセッサに、
ビデオビットストリームのサンプルに関するサンプルエントリータイプを記述するデータを受信することと、前記サンプルエントリータイプは、'hev1'または'hev2'のうちの1つであり、ここにおいて、前記サンプルは、High−Efficiency Video Coding(HEVC)またはレイヤードHEVC(L−HEVC)のうちの1つに従って符号化されたビデオデータを備え、ビデオデータを含む1つまたは複数の他のサンプルは、復号順序において前記ビデオビットストリームにおける前記サンプルに先行する、
'hev1'または'hev2'である前記サンプルエントリータイプおよびHEVCまたはL−HEVCのうちの1つに従って符号化された前記ビデオデータを備える前記サンプルに応答して、前記サンプルに先行する前記1つまたは複数の他のサンプルのうちのいずれの前記ビデオデータを検索することなしに、および復号順序において前記ビデオビットストリームのいずれの前のサンプルのパラメータセットを検索することなしに、前記サンプルを使用してランダムアクセスを行うために前記サンプルを検索することと
を行わせる、コンピュータ可読記憶媒体。
[C23]
前記プロセッサに、前記サンプルに対応するサンプルエントリーにおいて、または前記サンプルにおいて、のうちの少なくとも1つにおいて、前記サンプルを記述するパラメータセットを受信させるための命令をさらに備える、C22に記載のコンピュータ可読記憶媒体。
[C24]
前記サンプルは、HEVCに従って、前記ビデオデータを備え、前記サンプルエントリータイプは、'hev2'である、C22に記載のコンピュータ可読記憶媒体。
[C25]
前記サンプルの前記ビデオデータは、ファイルのトラックにおいて含まれる、C22に記載のコンピュータ可読記憶媒体。
[C26]
前記ファイルは、複数のトラックを含み、前記トラックの各々は、L−HEVCのレイヤに対応する、C25に記載のコンピュータ可読記憶媒体。
[C27]
前記サンプルの前記ビデオデータは、ファイルの複数のトラックのうちの1つのトラックに含まれ、前記複数のトラックは、シングルレイヤまたはマルチレイヤのビデオデータを含む前記複数のトラックのサブセットを含み、前記プロセッサに、前記複数のトラックの前記サブセットのうちの各々が、便利なランダムアクセスがイネーブルされていることを示すサンプルエントリータイプを有するサンプルを含むことを決定させるための命令をさらに備える、C22に記載のコンピュータ可読記憶媒体。
[C28]
前記サンプルの前記ビデオデータは、ファイルの複数のトラックのうちの1つのトラックに含まれ、前記複数のトラックは、シングルレイヤまたはマルチレイヤのビデオデータを含む前記複数のトラックのサブセットを含み、前記プロセッサに、便利なランダムアクセスが、最も低い時間サブレイヤを有する前記複数のトラックの前記サブセットのうちの1つに関してイネーブルされていることを決定することに応答して、便利なランダムアクセスが、前記複数のトラックの各々に関してイネーブルされていることを決定することを行わせる命令をさらに備える、C22に記載のコンピュータ可読記憶媒体。