マルチメディアデータを取り出す方法であって、前記方法は、クライアントデバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第1のセグメントのデータを取り出すことと、前記マニフェストファイルに従って前記表現の第2のセグメントの部分を取り出すことであって、前記第2のセグメントが前記表現中の前記第1のセグメントの後に存在し、前記マニフェストファイルが更新されるべきであることを前記第2のセグメントの前記部分が示す、取り出すことと、前記マニフェストファイルが更新されるべきであるという前記指示に基づいて、前記クライアントデバイスによって記憶された前記マニフェストファイルの前記コピーを更新することと、前記更新されたマニフェストファイルに従って前記第2のセグメントのメディアデータを取り出すこととを備える、方法。前記マニフェストファイルを更新することが、前記第2のセグメントの前記部分のデータを使用して前記マニフェストファイルを更新することを備える、請求項1に記載の方法。前記マニフェストファイルを更新することが、前記第2のセグメントの前記部分中に示されたロケーションから前記マニフェストファイルを更新するためのデータを取り出すことを備える、請求項1に記載の方法。前記マニフェストファイルを更新することが、更新されるべきである前記マニフェストファイルの1つまたは複数の要素を判断することと、前記マニフェストファイルの前記判断された1つまたは複数の要素のみを更新することとを備える、請求項1に記載の方法。前記マルチメディアコンテンツの第2の異なる表現からメディアデータを取り出すことと、前記第1の表現と前記第2の表現とから取り出された前記データを示す情報を送ることとをさらに備える、請求項1に記載の方法。メディアデータがそこから取り出された、前記第1の表現と前記第2の表現とを含む、前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを構築することをさらに備え、取り出された前記データを示す前記情報を送ることが、前記メディアデータがそこから取り出された前記構築されたドキュメントをサーバに送ることを備える、請求項5に記載の方法。マルチメディアデータを取り出すためのデバイスであって、前記デバイスは、前記デバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第1のセグメントのデータを取り出すことと、前記マニフェストファイルに従って前記表現の第2のセグメントの部分を取り出すことであって、前記第2のセグメントが前記表現中の前記第1のセグメントの後に存在し、前記マニフェストファイルが更新されるべきであることを前記第2のセグメントの前記部分が示す、取り出すことと、前記マニフェストファイルが更新されるべきであるという前記指示に基づいて、前記デバイスによって記憶された前記マニフェストファイルの前記コピーを更新することと、前記更新されたマニフェストファイルに従って前記第2のセグメントのメディアデータを取り出すこととを行うように構成された1つまたは複数のプロセッサを備える、デバイス。前記マニフェストファイルを更新するために、前記1つまたは複数のプロセッサが、前記第2のセグメントの前記部分のデータを使用して前記マニフェストファイルを更新するように構成された、請求項7に記載のデバイス。前記マニフェストファイルを更新するために、前記1つまたは複数のプロセッサが、前記第2のセグメントの前記部分中に示されたロケーションから前記マニフェストファイルを更新するためのデータを取り出すように構成された、請求項7に記載のデバイス。前記マニフェストファイルを更新するために、前記1つまたは複数のプロセッサが、更新されるべきである前記マニフェストファイルの1つまたは複数の要素を判断することと、前記マニフェストファイルの前記判断された1つまたは複数の要素のみを更新することとを行うように構成された、請求項7に記載のデバイス。前記1つまたは複数のプロセッサが、前記マルチメディアコンテンツの第2の異なる表現からメディアデータを取り出すことと、前記第1の表現と前記第2の表現とから取り出された前記データを示す情報を送ることとを行うようにさらに構成された、請求項7に記載のデバイス。前記1つまたは複数のプロセッサは、メディアデータがそこから取り出された、前記第1の表現と前記第2の表現とを含む、前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを構築するようにさらに構成され、取り出された前記データを示す前記情報を送るために、前記1つまたは複数のプロセッサは、前記メディアデータがそこから取り出された前記構築されたドキュメントをサーバに送るように構成された、請求項11に記載のデバイス。前記デバイスが、集積回路と、マイクロプロセッサと、前記1つまたは複数のプロセッサを含むワイヤレス通信デバイスとのうちの少なくとも1つを備える、請求項7に記載のデバイス。マルチメディアデータを取り出すためのデバイスであって、前記デバイスは、前記デバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第1のセグメントのデータを取り出すための手段と、前記マニフェストファイルに従って前記表現の第2のセグメントの部分を取り出すための手段であって、前記第2のセグメントが前記表現中の前記第1のセグメントの後に存在し、前記マニフェストファイルが更新されるべきであることを前記第2のセグメントの前記部分が示す、取り出すための手段と、前記マニフェストファイルが更新されるべきであるという前記指示に基づいて前記デバイスによって記憶された前記マニフェストファイルの前記コピーを更新するための手段と、前記更新されたマニフェストファイルに従って前記第2のセグメントのメディアデータを取り出すための手段とを備える、デバイス。前記マニフェストファイルを更新することが、前記第2のセグメントの前記部分のデータを使用して前記マニフェストファイルを更新することを備える、請求項14に記載のデバイス。前記マニフェストファイルを更新することが、前記第2のセグメントの前記部分中に示されたロケーションから前記マニフェストファイルを更新するためのデータを取り出すことを備える、請求項1に記載のデバイス。前記マニフェストファイルを更新するための前記手段が、更新されるべきである前記マニフェストファイルの1つまたは複数の要素を判断するための手段と、前記マニフェストファイルの前記判断された1つまたは複数の要素のみを更新するための手段とを備える、請求項14に記載のデバイス。前記マルチメディアコンテンツの第2の異なる表現からメディアデータを取り出すための手段と、前記第1の表現と前記第2の表現とから取り出された前記データを示す情報を送るための手段とをさらに備える、請求項14に記載のデバイス。メディアデータがそこから取り出された、前記第1の表現と前記第2の表現とを含む、前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを構築するための手段をさらに備え、取り出された前記データを示す前記情報を送るための前記手段が、前記メディアデータがそこから取り出された前記構築されたドキュメントをサーバに送るための手段を備える、請求項18に記載のデバイス。実行されたとき、マルチメディアデータを取り出すためのデバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第1のセグメントのデータを取り出すことと、前記マニフェストファイルに従って前記表現の第2のセグメントの部分を取り出すことであって、前記第2のセグメントが前記表現中の前記第1のセグメントの後に存在し、前記マニフェストファイルが更新されるべきであることを前記第2のセグメントの前記部分が示す、取り出すことと、前記マニフェストファイルが更新されるべきであるという前記指示に基づいて、前記デバイスによって記憶された前記マニフェストファイルの前記コピーを更新することと、前記更新されたマニフェストファイルに従って前記第2のセグメントのメディアデータを取り出すこととを、前記デバイスのプロセッサに行わせる命令を記憶したコンピュータ可読媒体を備えるコンピュータプログラム製品。前記マニフェストファイルを更新することを前記プロセッサに行わせる前記命令が、前記第2のセグメントの前記部分のデータを使用して前記マニフェストファイルを更新することを前記プロセッサに行わせる命令を備える、請求項20に記載のコンピュータプログラム製品。前記マニフェストファイルを更新することを前記プロセッサに行わせる前記命令が、前記第2のセグメントの前記部分中に示されたロケーションから前記マニフェストファイルを更新するためのデータを取り出すことを前記プロセッサに行わせる命令を備える、請求項20に記載のコンピュータプログラム製品。前記マニフェストファイルを更新することを前記プロセッサに行わせる前記命令が、更新されるべきである前記マニフェストファイルの1つまたは複数の要素を判断することと、前記マニフェストファイルの前記判断された1つまたは複数の要素のみを更新することとを前記プロセッサに行わせる命令を備える、請求項20に記載のコンピュータプログラム製品。前記マルチメディアコンテンツの第2の異なる表現からメディアデータを取り出すことと、前記第1の表現と前記第2の表現とから取り出された前記データを示す情報を送ることとを前記プロセッサに行わせる命令をさらに備える、請求項20に記載のコンピュータプログラム製品。メディアデータがそこから取り出された、前記第1の表現と前記第2の表現とを含む、前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを構築することをさらに備え、取り出された前記データを示す前記情報を送ることを前記プロセッサに行わせる前記命令が、前記メディアデータがそこから取り出された前記構築されたドキュメントをサーバに送ることを前記プロセッサに行わせる命令を備える、請求項24に記載のコンピュータプログラム製品。マルチメディアデータについての情報を送る方法であって、前記方法は、マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送ることであって、前記マニフェストファイルが、前記マルチメディアコンテンツの表現の第1のセグメントを示す情報を含む、送ることと、前記クライアントデバイスからの要求に応答して、前記表現の前記第1のセグメントの少なくとも部分を前記クライアントデバイスに送ることであって、前記マニフェストファイルが更新されるべきであることを前記第1のセグメントの前記部分が示し、前記マニフェストファイルの更新されたバージョンが、前記表現の第2の異なるセグメントを示す情報を含む、送ることと、前記クライアントデバイスから受信され、前記更新されたマニフェストファイルに従って形成される要求に応答して、前記第2のセグメントのデータを前記クライアントデバイスに送ることとを備える、方法。前記第1のセグメントの前記部分が、前記マニフェストファイルへの更新を示す情報を含む、請求項26に記載の方法。前記第1のセグメントの前記部分が、前記マニフェストファイルへの更新を示すデータのロケーションを示す情報を含む、請求項26に記載の方法。前記クライアントデバイスによって取り出された前記マルチメディアコンテンツのデータを示す情報を受信することをさらに備える、請求項26に記載の方法。前記クライアントデバイスによって取り出された前記データを示す前記情報を受信することは、前記クライアントデバイスがそこから前記マルチメディアコンテンツのメディアデータを取り出した前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを受信することを備える、請求項29に記載の方法。マルチメディアデータについての情報を送るためのデバイスであって、前記デバイスは、マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送ることであって、前記マニフェストファイルが、前記マルチメディアコンテンツの表現の第1のセグメントを示す情報を含む、送ることと、前記クライアントデバイスからの要求に応答して、前記表現の前記第1のセグメントの少なくとも部分を前記クライアントデバイスに送ることであって、前記マニフェストファイルが更新されるべきであることを前記第1のセグメントの前記部分が示し、前記マニフェストファイルの更新されたバージョンが、前記表現の第2の異なるセグメントを示す情報を含む、送ることと、前記クライアントデバイスから受信され、前記更新されたマニフェストファイルに従って形成される要求に応答して、前記第2のセグメントのデータを前記クライアントデバイスに送ることとを行うように構成された1つまたは複数のプロセッサを備える、デバイス。前記第1のセグメントの前記部分が、前記マニフェストファイルへの更新を示す情報を含む、請求項31に記載のデバイス。前記第1のセグメントの前記部分が、前記マニフェストファイルへの更新を示すデータのロケーションを示す情報を含む、請求項31に記載のデバイス。前記1つまたは複数のプロセッサが、前記クライアントデバイスによって取り出された前記マルチメディアコンテンツのデータを示す情報を受信するように構成された、請求項31に記載のデバイス。前記クライアントデバイスによって取り出された前記データを示す前記情報は、前記クライアントデバイスがそこから前記マルチメディアコンテンツのメディアデータを取り出した前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを受信することを備える、請求項34に記載のデバイス。前記デバイスが、集積回路と、マイクロプロセッサと、前記1つまたは複数のプロセッサを含むワイヤレス通信デバイスとのうちの少なくとも1つを備える、請求項31に記載のデバイス。マルチメディアデータについての情報を送るためのデバイスであって、前記デバイスは、マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送るための手段であって、前記マニフェストファイルが、前記マルチメディアコンテンツの表現の第1のセグメントを示す情報を含む、送るための手段と、前記クライアントデバイスからの要求に応答して、前記表現の前記第1のセグメントの少なくとも部分を前記クライアントデバイスに送るための手段であって、前記マニフェストファイルが更新されるべきであることを前記第1のセグメントの前記部分が示し、前記マニフェストファイルの更新されたバージョンが、前記表現の第2の異なるセグメントを示す情報を含む、送るための手段と、前記クライアントデバイスから受信され、前記更新されたマニフェストファイルに従って形成される要求に応答して、前記第2のセグメントのデータを前記クライアントデバイスに送るための手段とを備える、デバイス。前記第1のセグメントの前記部分が、前記マニフェストファイルへの更新を示す情報を含む、請求項37に記載のデバイス。前記第1のセグメントの前記部分が、前記マニフェストファイルへの更新を示すデータのロケーションを示す情報を含む、請求項37に記載のデバイス。前記クライアントデバイスによって取り出された前記マルチメディアコンテンツのデータを示す情報を受信するための手段をさらに備える、請求項37に記載のデバイス。前記クライアントデバイスによって取り出された前記データを示す前記情報を受信するための前記手段は、前記クライアントデバイスがそこから前記マルチメディアコンテンツのメディアデータを取り出した前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを受信するための手段を備える、請求項40に記載のデバイス。実行されたとき、マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送ることであって、前記マニフェストファイルが、前記マルチメディアコンテンツの表現の第1のセグメントを示す情報を含む、送ることと、前記クライアントデバイスからの要求に応答して、前記表現の前記第1のセグメントの少なくとも部分を前記クライアントデバイスに送ることであって、前記マニフェストファイルが更新されるべきであることを前記第1のセグメントの前記部分が示し、前記マニフェストファイルの更新されたバージョンが、前記表現の第2の異なるセグメントを示す情報を含む、送ることと、前記クライアントデバイスから受信され、前記更新されたマニフェストファイルに従って形成される要求に応答して、前記第2のセグメントのデータを前記クライアントデバイスに送ることとを、マルチメディアデータについての情報を送るためのデバイスのプロセッサに行わせる命令を記憶したコンピュータ可読媒体を備えるコンピュータプログラム製品。前記第1のセグメントの前記部分が、前記マニフェストファイルへの更新を示す情報を含む、請求項42に記載のコンピュータプログラム製品。前記第1のセグメントの前記部分が、前記マニフェストファイルへの更新を示すデータのロケーションを示す情報を含む、請求項42に記載のコンピュータプログラム製品。前記クライアントデバイスによって取り出された前記マルチメディアコンテンツのデータを示す情報を受信することを前記プロセッサに行わせる命令をさらに備える、請求項42に記載のコンピュータプログラム製品。前記クライアントデバイスによって取り出された前記データを示す前記情報を受信することを前記プロセッサに行わせる前記命令は、前記クライアントデバイスがそこから前記マルチメディアコンテンツのメディアデータを取り出した前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを受信することを前記プロセッサに行わせる命令を備える、請求項45に記載のコンピュータプログラム製品。概して、本開示では、ネットワークを介してオーディオおよびビデオデータなどのマルチメディアデータをストリーミングするための技法について説明する。本開示の技法は、動的適応ストリーミングオーバーHTTPDASH:dynamicadaptivestreamingoverHTTPと併せて使用され得る。本開示では、ネットワークストリーミングと併せて実行され得る様々な技法について説明し、それらの技法のいずれかまたはすべては単独でまたは任意の組合せで実装され得る。以下でより詳細に説明するように、ネットワークストリーミングを実行する様々なデバイスが本開示の技法を実装するように構成され得る。DASHおよびネットワークを介してデータをストリーミングするための同様の技法によれば、テキストオーバーレイまたは他のデータをも含み得る、ムービーまたは他のオーディオ/ビデオコンテンツなどのマルチメディアコンテンツは様々な方法で様々な特性を用いて符号化され得る。コンテンツ作成デバイスは、同じマルチメディアコンテンツの複数の表現を形成し得る。各表現は、様々なコーディングおよびレンダリング能力をもつ多種多様なクライアントデバイスによって使用可能なデータを与えるために、コーディングおよびレンダリング特性など、特性の特定のセットに対応し得る。その上、様々なビットレートを有する表現によって帯域幅適応が可能になり得る。すなわち、クライアントデバイスは、現在利用可能である帯域幅の量を判断し、クライアントデバイスのコーディングおよびレンダリング能力とともにその利用可能な帯域幅の量に基づいて表現を選択し得る。いくつかの例では、コンテンツ作成デバイスは、ある表現のセットが共通の特性のセットを有することを示し得る。コンテンツ作成デバイスは、その場合、セット中の表現が帯域幅適応のために使用され得るという点で、セット中の表現が表現グループを形成することを示し得る。すなわち、セット中の表現は、ビットレートが異なるが、それ以外は実質的に同じ特性を共有し得る。このようにして、クライアントデバイスは、マルチメディアコンテンツの表現グループについての共通の特性の様々なセットを判断し、クライアントデバイスのコーディングおよびレンダリング能力に基づいて表現グループを選択し得る。次いで、クライアントデバイスは、帯域幅利用可能性に基づいて、選択された表現グループ中の表現の間で適応的に切り替わり得る。コンテンツ作成デバイスはまた、3GPPThirdGenerationPartnershipProjectによって規定されたフォーマットにおけるメディアプレゼンテーション記述MPDファイルなど、マニフェストファイルの異なる部分に別々のネットワークロケーションを与え得る。すなわち、マニフェストファイルの異なる部分は、たとえば、ユニフォームリソースロケータURLなど、様々なユニフォームリソース識別子URIによって独立にアドレス指定可能であり得る。マニフェストファイルの最初の部分は、URI、URL、またはマニフェストファイルの別の部分の他のロケーション識別子を含み得る。たとえば、マニフェストファイルの第1の部分は、上記で説明したように、表現グループの共通の特性の記述を含み得る。表現グループの各々は、それぞれの表現グループ中の表現のメディアデータのロケーションを示すデータを含み得る、マニフェストファイルのそれぞれの異なる部分に関連し得る。このようにして、クライアントデバイスは、マニフェストファイルの第1の部分を受信し、適切な表現グループを選択し、選択された表現グループのためのマニフェストファイルの別の部分を取り出し、選択されたグループの表現を選択し、マニフェストファイルのその別の部分を使用して、選択された表現のデータを取り出し得る。その上、クライアントデバイスは、マニフェストファイルのその別の部分、すなわち、選択された表現グループに固有の部分を使用して、変化するネットワーク帯域幅に適応し得る。追加または代替として、マニフェストファイルの部分は、他の目的のためにマニフェストファイルの別の部分を参照し得る。すなわち、マニフェストファイルの部分は、再生中にムービー中にリモート期間のメディアデータを挿入するために、クライアントデバイスをマニフェストファイルの別の部分にダイレクトし得る。リモート期間は、いくつかの例では、広告に対応し得る。これらの技法は、いくつかの例では、ターゲット広告のために使用され得る。クライアントデバイスは、ユーザ識別子、広告についてのユーザ選好、および/またはユーザ人口統計学的情報など、ユーザ情報をサーバデバイスに提供し得、サーバデバイスは、そのユーザ情報に基づいてマニフェストファイルの部分を選択し得る。したがって、デリファレンスされたとき、マニフェストファイルの外部部分は、たとえばクライアントデバイスによって、元のマニフェストファイルに組み込まれ得る。サーバデバイスは、ターゲット広告メディアコンテンツに関連するマニフェストファイルの部分のロケーションをクライアントデバイスに与え得る。クライアントデバイスは、次いで、要求されたマルチメディアコンテンツの期間の特定の表現のデータを取り出す前に、ターゲット広告メディアコンテンツのデータを取り出し、提示し得る。このようにして、マルチメディアコンテンツのマニフェストファイルの第1の部分はマニフェストファイルの第2の部分を参照し得る。いくつかの事例では、ユーザは、開始から終了まで以外の方法でビデオデータを再生することを望み得る。たとえば、ユーザは、早送りまたは早戻しモードで、あるいは特定の再生ポイントから開始してビデオデータを再生することを望み得る。開始から終了まで再生することとは異なるモードである、ビデオ再生のそのようなモードは、トリックモードと呼ばれることがある。トリックモードでは、最終的にすべてのビデオデータが再生されるとは限らないので、ビデオデータのすべてが取り出される必要はない。本開示では、トリックモードをサポートするための技法も提供する。たとえば、コンテンツ作成デバイスは、瞬時デコーダリフレッシュIDR:instantaneousdecoderrefreshピクチャなど、トリックモードのために使用されるビデオデータ中のフレームのバイト範囲ロケーションの指示を与え得る。概して、IDRピクチャは、IDRピクチャ自体の外部にあるフレームのデータと無関係に復号され得る。IDRピクチャのフレームまたはスライスは、概して、他のフレームまたはスライスへの依存性を回避するためにイントラ予測モードでコーディングされる。このようにして、クライアントデバイスは、早送りなどのトリックモードでビデオデータを表示する際に使用するためのIDRピクチャのデータのみをダウンロードするためにIDRピクチャのロケーションを示す情報を取り出すことができる。時間サブシーケンス中には他のデータも含まれ得る。データは、参照のために使用されるデータが、参照するデータよりも前におよび参照するデータとの連続バイトシーケンスで存在するように、コーディング順序で構成され得る。たとえば、IフレームはPフレームに先行し得、そのPフレームの後に1つまたは複数のBフレームが続き得、それらの1つまたは複数のBフレームのいずれかまたはすべては他のBフレームに先行し得、それらの他のBフレームは階層的に前のBフレームを参照し得る。いくつかの例では、MPDなどのマニフェストファイルは時々の更新を必要とし得る。本開示はまた、MPDが更新を必要とするという指示をシグナリングおよび受信するための技法を提供する。特に、コンテンツ作成デバイスは、対応するMPDが更新を必要とすることを示す表現のセグメント中のデータを含み得る。このデータは、MPDに適用すべき更新、および/またはクライアントデバイスがそこからMPDへの更新を取り出すことができるロケーションを示し得る、セグメントの最初の要素に対応し得る。更新は、完全に新しいMPD、またはマルチメディアコンテンツについての前のMPDに対する増分更新を備え得る。本開示はさらに、クライアントデバイスからサーバデバイスおよび/またはコンテンツ作成デバイスにフィードバックを与えるための技法を含む。フィードバックは、たとえば、マルチメディアコンテンツのために取り出されたデータを示す情報に対応し得る。コンテンツ作成デバイスおよび/またはサーバの管理者または他のユーザは、そのような情報を様々な方法で使用し得る。たとえば、ユーザは、より頻繁にアクセスされる表現のデータを、ルータまたは他のデバイスなど、コンテンツ配信ネットワークCDN:contentdeliverynetworkのプロキシデバイス中にキャッシュするようにCDNを構成し得る。別の例として、ユーザは、より頻繁にアクセスされる表現を判断して、現在のマルチメディアコンテンツにもしくはそこからいくつかの表現が追加もしくは削除されるべきかどうか、および/または将来のマルチメディアコンテンツの表現をどのように符号化すべきかを判断し得る。メディアコンテンツの表現のセグメントなど、ビデオファイルは、ISOベースメディアファイルフォーマット、ScalableVideoCodingSVCファイルフォーマット、AdvancedVideoCodingAVCファイルフォーマット、ThirdGenerationPartnershipProject3GPPファイルフォーマット、および/またはMultiviewVideoCodingMVCファイルフォーマット、または他の同様のビデオファイルフォーマットのいずれかに従ってカプセル化されたビデオデータに準拠し得る。ISOベースメディアファイルフォーマットは、メディアの交換、管理、編集、およびプレゼンテーションを可能にする、フレキシブルで拡張可能なフォーマットにおけるプレゼンテーションのための時限メディア情報を含んでいるように設計される。ISOベースメディアファイルフォーマットISO/IEC14496-12:2004は、時間ベースメディアファイルのための一般的な構造を定義するMPEG-4Part12において規定されている。ISOベースメディアファイルフォーマットは、H.264/MPEG-4AVCビデオ圧縮のサポートを定義したAVCファイルフォーマットISO/IEC14496-15、3GPPファイルフォーマット、SVCファイルフォーマット、およびMVCファイルフォーマットなどのファミリー中の他のファイルフォーマットのための基礎として使用される。3GPPファイルフォーマットおよびMVCファイルフォーマットはAVCファイルフォーマットの拡張である。ISOベースメディアファイルフォーマットは、オーディオビジュアルプレゼンテーションなどのメディアデータの時限シーケンスのためのタイミング、構造、およびメディア情報を含んでいる。ファイル構造はオブジェクト指向であり得る。ファイルは、非常に簡単に基本オブジェクトに分解され得、オブジェクトの構造はそれらのタイプから暗示される。ISOベースメディアファイルフォーマットおよびそれの拡張に準拠するファイルは、ボックスと呼ばれる一連のオブジェクトとして形成され得る。ISOベースメディアファイルフォーマットのデータは、そのファイル内に他のデータが含まれている必要がなく、そのファイル内のボックスの外部にデータが存在する必要がないように、ボックス中に含まれ得る。これは、特定のファイルフォーマットによって必要とされる初期シグナチャを含む。ボックスは、一意のタイプ識別子と長さとによって定義されるオブジェクト指向ビルディングブロックであり得る。一般に、プレゼンテーションは1つのファイル中に含まれ、メディアプレゼンテーションは独立型selfcontainedである。ムービーコンテナムービーボックスはメディアのメタデータを含み得、ビデオおよびオーディオフレームは、メディアデータコンテナ中に含まれ得、他のファイル中にあり得る。表現動きシーケンスは、セグメントと呼ばれることがある、いくつかのファイル中に含まれていることがある。タイミングおよびフレーミング位置およびサイズ情報は概してISOベースメディアファイル中にあり、補助ファイルは本質的に任意のフォーマットを使用し得る。このプレゼンテーションは、プレゼンテーションを含んでいるシステムに対してローカルであり得るか、あるいはネットワークまたは他のストリーム配信機構を介して行われ得る。それの値たとえば、それのビットレート、スクリーンサイズ、または言語がグループの他のメンバーとは異なり得る、各トラックが有する興味深い特性をそのトラックにタグ付けするために、随意のメタデータトラックが使用され得る。トラック内のいくつかのサンプルは、特殊な特性を有するかまたは個々に識別され得る。特性の一例は同期ポイントしばしばビデオIフレームである。これらのポイントは各トラック中の特殊なテーブルによって識別され得る。より一般的には、トラックサンプル間の依存性の性質はメタデータを使用してもドキュメント化され得る。メタデータは、ビデオトラックとまったく同様に、ファイルフォーマットサンプルのシーケンスとして構造化され得る。そのようなトラックはメタデータトラックと呼ばれることがある。各メタデータサンプルはメタデータステートメントとして構造化され得る。対応するファイルフォーマットサンプルまたはそれの構成要素サンプルに関して質問され得る様々な質問に対応する、様々な種類のステートメントがある。メディアがストリーミングプロトコルを介して配信されるとき、メディアは、メディアがファイル中で表現される方法から変換される必要があり得る。これの一例は、メディアがリアルタイムトランスポートプロトコルRTPを介して送信されるときである。ファイル中で、たとえば、ビデオの各フレームはファイルフォーマットサンプルとして連続して記憶される。RTPでは、これらのフレームをRTPパケット中に配置するために、使用されるコーデックに固有のパケット化ルールに従わなければならない。ストリーミングサーバは、そのようなパケット化をランタイムに計算するように構成され得る。しかしながら、ストリーミングサーバを支援するためのサポートがある。本開示の技法は、たとえば、動的適応ストリーミングオーバーHTTPDASHに従って、HTTPストリーミングなどのネットワークストリーミングプロトコルに適用可能であり得る。HTTPストリーミングにおいて、頻繁に使用される動作にはGETおよび部分GETがある。GET動作は、所与のユニフォームリソースロケータURLまたは他の識別子、たとえばURIに関連するファイル全体を取り出す。部分GET動作は、入力パラメータとしてバイト範囲を受信し、その受信されたバイト範囲に対応するファイルの連続バイト数を取り出す。したがって、部分GET動作は1つまたは複数の個々のムービーフラグメントを得ることができるので、ムービーフラグメントはHTTPストリーミングのために与えられ得る。ムービーフラグメント中には、異なるトラックのいくつかのトラックフラグメントがあり得ることに留意されたい。HTTPストリーミングでは、メディア表現は、クライアントがアクセス可能であるデータの構造化コレクションであり得る。クライアントは、ユーザにストリーミングサービスを提示するためにメディアデータ情報を要求し、ダウンロードし得る。HTTPストリーミングを使用して3GPPデータをストリーミングする例では、マルチメディアコンテンツのビデオおよび/またはオーディオデータのための複数の表現があり得る。そのような表現のマニフェストがメディアプレゼンテーション記述MPDデータ構造で定義されていることがある。メディア表現は、HTTPストリーミングクライアントデバイスがアクセス可能であるデータの構造化コレクションに対応し得る。HTTPストリーミングクライアントデバイスは、クライアントデバイスのユーザにストリーミングサービスを提示するためにメディアデータ情報を要求し、ダウンロードし得る。メディア表現は、MPDの更新を含み得る、MPDデータ構造で記述され得る。マルチメディアコンテンツは、1つまたは複数の期間のシーケンスを含んでいることがある。期間は、MPD中のPeriod要素によって定義され得る。各期間はMPD中の属性startを有し得る。MPDは、期間ごとにstart属性とavailableStartTime属性とを含み得る。ライブサービスでは、期間のstart属性とMPD属性availableStartTimeとの和が、UTC形式で期間の利用可能性時間、特に対応する期間中の各表現の第1のメディアセグメントを指定し得る。オンデマンドサービスでは、第1の期間のstart属性は0であり得る。他の期間では、start属性は、対応する期間の開始時間と第1の期間の開始時間との間の時間オフセットを指定し得る。各期間は、次の期間の開始まで、または最終期間の場合はメディアプレゼンテーションの終了まで延在し得る。期間開始時間は正確であり得る。期間開始時間は、すべての前の期間のメディアを再生したことから生じる実際のタイミングを反映し得る。各期間は、同じメディアコンテンツについての1つまたは複数の表現を含んでいることがある。表現は、オーディオまたはビデオデータのいくつかの代替符号化バージョンのうちの1つであり得る。表現は、符号化タイプなど、様々な特性によって異なり得、たとえば、ビデオデータの場合はビットレート、解像度、および/またはコーデックによって、ならびにオーディオデータの場合はビットレート、言語、および/またはコーデックによって異なり得る。表現という用語は、マルチメディアコンテンツの特定の期間に対応し、特定の方法で符号化された符号化オーディオまたはビデオデータのセクションを指すために使用され得る。特定の期間の表現はグループに割り当てられ得、グループはMPD中のgroup属性によって示され得る。同じグループ中の表現は、概して互いに代替として見なされる。たとえば、特定の期間についてのビデオデータの各表現は、それらの表現のいずれかが、対応する期間についてのマルチメディアコンテンツのビデオデータを表示するために復号のために選択され得るように、同じグループに割り当てられ得る。1期間内のメディアコンテンツは、いくつかの例では、存在する場合、グループ0からの1つの表現か、または各非ゼログループからのせいぜい1つの表現の組合せのいずれかによって表され得る。期間の各表現についてのタイミングデータは期間の開始時間に対して表現され得る。表現は1つまたは複数のセグメントを含み得る。各表現は初期化セグメントを含むか、または表現の各セグメントは自己初期化され得る。存在するとき、初期化セグメントは、表現にアクセスするための初期化情報を含んでいることがある。概して、初期化セグメントはメディアデータを含んでいない。セグメントは、ユニフォームリソースロケータURLなどの識別子によって一意に参照され得る。MPDは各セグメントに識別子を与え得る。いくつかの例では、MPDはまた、URLまたはURIによってアクセス可能なファイル内のセグメントについてのデータに対応し得る、range属性の形態のバイト範囲を与え得る。各表現はまた、1つまたは複数のメディア構成要素を含み得、各メディア構成要素は、オーディオ、ビデオ、および/またはたとえば、字幕用の時限テキストなど、1つの個々のメディアタイプの符号化バージョンに対応し得る。メディア構成要素は、1つの表現内の連続するメディアセグメントの境界にわたって時間連続的であり得る。図1は、ネットワークを介してメディアデータをストリーミングするための技法を実装する例示的なシステム10を示すブロック図である。この例では、システム10は、コンテンツ作成デバイス20と、サーバデバイス60と、クライアントデバイス40とを含む。クライアントデバイス40およびサーバデバイス60は、インターネットを備え得るネットワーク74によって通信可能に結合される。いくつかの例では、コンテンツ作成デバイス20およびサーバデバイス60も、ネットワーク74または別のネットワークによって結合されるか、あるいは直接通信可能に結合され得る。いくつかの例では、コンテンツ作成デバイス20およびサーバデバイス60は同じデバイスを備え得る。コンテンツ作成デバイス20は、図1の例では、オーディオソース22とビデオソース24とを備える。オーディオソース22は、たとえば、オーディオエンコーダ26によって符号化されるべき、キャプチャされたオーディオデータを表す電気信号を生成するマイクロフォンを備え得る。代替的に、オーディオソース22は、前に記録されたオーディオデータを記憶する記憶媒体、コンピュータシンセサイザなどのオーディオデータ生成器、またはオーディオデータの任意の他のソースを備え得る。ビデオソース24は、ビデオエンコーダ28によって符号化されるべきビデオデータを生成するビデオカメラ、前に記録されたビデオデータで符号化された記憶媒体、コンピュータグラフィックスソースなどのビデオデータ生成ユニット、またはビデオデータの任意の他のソースを備え得る。コンテンツ作成デバイス20は、必ずしもすべての例においてサーバデバイス60に通信可能に結合されるとは限らないが、サーバデバイス60によって読み取られる別個のメディアにマルチメディアコンテンツを記憶し得る。未加工オーディオおよびビデオデータは、アナログまたはデジタルデータを備え得る。アナログデータは、オーディオエンコーダ26および/またはビデオエンコーダ28によって符号化される前にデジタル化され得る。オーディオソース22は、通話参加者が話している間、通話参加者からオーディオデータを取得し得、同時に、ビデオソース24は、通話参加者のビデオデータを取得し得る。他の例では、オーディオソース22は、記憶されたオーディオデータを備えるコンピュータ可読記憶媒体を備え得、ビデオソース24は、記憶されたビデオデータを備えるコンピュータ可読記憶媒体を備え得る。このようにして、本開示で説明する技法は、ライブ、ストリーミング、リアルタイムオーディオおよびビデオデータ、またはアーカイブされた、あらかじめ記録されたオーディオおよびビデオデータに適用され得る。ビデオフレームに対応するオーディオフレームは、概して、ビデオフレーム内に含まれている、ビデオソース24によってキャプチャされたビデオデータと同時にオーディオソース22によってキャプチャされたオーディオデータを含んでいるオーディオフレームである。たとえば、通話参加者が概して話すことによってオーディオデータを生成する間、オーディオソース22はオーディオデータをキャプチャし、同時に、すなわちオーディオソース22がオーディオデータをキャプチャしている間、ビデオソース24は通話参加者のビデオデータをキャプチャする。したがって、オーディオフレームは、1つまたは複数の特定のビデオフレームに時間的に対応し得る。したがって、ビデオフレームに対応するオーディオフレームは、概して、オーディオデータとビデオデータとが同時にキャプチャされる状況、およびオーディオフレームとビデオフレームとが、それぞれ、同時にキャプチャされたオーディオデータとビデオデータとを備える状況に対応する。いくつかの例では、オーディオエンコーダ26は、符号化オーディオフレームのオーディオデータが記録された時間を表す、各符号化オーディオフレームにおけるタイムスタンプを符号化し得、同様に、ビデオエンコーダ28は、符号化ビデオフレームのビデオデータが記録された時間を表す、各符号化ビデオフレームにおけるタイムスタンプを符号化し得る。そのような例では、ビデオフレームに対応するオーディオフレームは、タイムスタンプを備えるオーディオフレームと、同じタイムスタンプを備えるビデオフレームとを備え得る。コンテンツ作成デバイス20は、オーディオエンコーダ26および/またはビデオエンコーダ28がそこからタイムスタンプを生成し得るか、あるいはオーディオソース22およびビデオソース24がオーディオデータおよびビデオデータをそれぞれタイムスタンプに関連付けるために使用し得る、内部クロックを含み得る。いくつかの例では、オーディオソース22は、オーディオデータが記録された時間に対応するデータをオーディオエンコーダ26に送り得、ビデオソース24は、ビデオデータが記録された時間に対応するデータをビデオエンコーダ28に送り得る。いくつかの例では、オーディオエンコーダ26は、必ずしもオーディオデータが記録された絶対時刻を示すことなしに、符号化オーディオデータの相対的時間順序を示すために、符号化オーディオデータ中のシーケンス識別子を符号化し得、同様に、ビデオエンコーダ28も、符号化ビデオデータの相対的時間順序を示すためにシーケンス識別子を使用し得る。同様に、いくつかの例では、シーケンス識別子は、タイムスタンプにマッピングされるか、または他の方法でタイムスタンプと相関させられ得る。オーディオエンコーダ26は概して符号化オーディオデータのストリームを生成し、ビデオエンコーダ28は符号化ビデオデータのストリームを生成する。データの各個々のストリームはオーディオかビデオかにかかわらずエレメンタリストリームと呼ばれることがある。エレメンタリストリームは、表現のデジタル的にコード化された場合によっては圧縮された単一の構成要素である。たとえば、表現のコード化ビデオまたはオーディオ部分はエレメンタリストリームであり得る。エレメンタリストリームは、ビデオファイル内にカプセル化される前にパケット化エレメンタリストリームPES:packetizedelementarystreamに変換され得る。同じ表現内では、1つのエレメンタリストリームに属するPESパケットを他のものから区別するためにストリームIDが使用され得る。エレメンタリストリームの基本データ単位はパケット化エレメンタリストリームPESパケットである。したがって、コード化ビデオデータは概してエレメンタリビデオストリームに対応する。同様に、オーディオデータは1つまたは複数のそれぞれのエレメンタリストリームに対応する。多くのビデオコーディング規格の場合と同様に、H.264/AVCは、誤りのないビットストリームのシンタックスと、セマンティクスと、復号プロセスとを定義し、そのいずれかは特定のプロファイルまたはレベルに準拠する。H.264/AVCはエンコーダを指定しないが、エンコーダは、生成されたビットストリームがデコーダの規格に準拠することを保証することを課される。ビデオコーディング規格のコンテキストでは、プロファイルは、アルゴリズム、機能、またはそれらに適用されるツールおよび制約のサブセットに対応する。たとえば、H.264規格によって定義されるプロファイルは、H.264規格によって指定されたビットストリームシンタックス全体のサブセットである。レベルは、たとえば、ピクチャの解像度、ビットレート、およびマクロブロックMB処理レートに関係するデコーダメモリおよび計算など、デコーダリソース消費の制限に対応する。プロファイルはprofile_idcプロファイルインジケータ値でシグナリングされ得、レベルはlevel_idcレベルインジケータ値でシグナリングされ得る。H.264規格は、たとえば、所与のプロファイルのシンタックスによって課される限界内で、復号されたピクチャの指定されたサイズなど、ビットストリーム中のシンタックス要素がとる値に応じて、エンコーダおよびデコーダのパフォーマンスの大きい変動を必要とする可能性が依然としてあることを認識している。H.264規格は、多くのアプリケーションにおいて、特定のプロファイル内でシンタックスのすべての仮定的使用を処理することが可能なデコーダを実装することが実際的でもなく、経済的でもないことをさらに認識している。したがって、H.264規格は、ビットストリーム中のシンタックス要素の値に課された制約の指定されたセットとしてレベルを定義している。これらの制約は、値に関する単純な限界であり得る。代替的に、これらの制約は、値の演算の組合せたとえば、ピクチャの幅×ピクチャの高さ×毎秒復号されるピクチャの数に関する制約の形態をとり得る。H.264規格は、個々の実装形態が、サポートされるプロファイルごとに異なるレベルをサポートし得ることをさらに規定している。プロファイルに準拠するデコーダは、通常、プロファイル中で定義されたすべての機能をサポートする。たとえば、コーディング機能として、Bピクチャコーディングは、H.264/AVCのベースラインプロファイルではサポートされないが、H.264/AVCの他のプロファイルではサポートされる。レベルに準拠するデコーダは、レベルにおいて定義された制限を超えてリソースを必要としない任意のビットストリームを復号することが可能である必要がある。プロファイルおよびレベルの定義は、解釈可能性のために役立ち得る。たとえば、ビデオ送信中に、プロファイル定義とレベル定義のペアが全送信セッションについてネゴシエートされ、同意され得る。より詳細には、H.264/AVCでは、レベルは、たとえば、処理される必要があるマクロブロックの数に関する制限と、復号ピクチャバッファDPB:decodedpicturebufferサイズと、コード化ピクチャバッファCPB:codedpicturebufferサイズと、垂直動きベクトル範囲と、2つの連続するMBごとの動きベクトルの最大数と、Bブロックが8×8ピクセル未満のサブマクロブロックパーティションを有することができるかどうかとを定義し得る。このようにして、デコーダは、デコーダがビットストリームを適切に復号することが可能であるかどうかを判断し得る。ITU-TH.261、H.262、H.263、MPEG-1、MPEG-2、およびH.264/MPEG-4part10、ならびに今度の高効率ビデオコーディングHEVC:HighEfficiencyVideoCoding規格などのビデオ圧縮規格は、時間冗長性を低減するために動き補償時間的予測を利用する。ビデオエンコーダ28などのエンコーダは、動きベクトルに従って現在のコード化ピクチャを予測するために、いくつかの前の本明細書ではフレームとも呼ぶ符号化ピクチャからの動き補償予測を使用し得る。典型的なビデオコーディングには3つの主要なピクチャタイプがある。それらは、イントラコード化ピクチャIピクチャまたはIフレームと、予測ピクチャPピクチャまたはPフレームと、双方向予測ピクチャBピクチャまたはBフレームとである。Pピクチャは、時間順序で現在のピクチャの前の参照ピクチャのみを使用し得る。Bピクチャでは、Bピクチャの各ブロックは、1つまたは2つの参照ピクチャから予測され得る。これらの参照ピクチャは、時間順序で現在のピクチャの前または後に位置し得る。パラメータセットは、概して、シーケンスパラメータセットSPS:sequenceparameterset中のシーケンスレイヤヘッダ情報と、ピクチャパラメータセットPPS:pictureparameterset中のまれに変化するピクチャレイヤヘッダ情報とを含んでいる。パラメータセットがある場合、このまれに変化する情報をシーケンスごとまたはピクチャごとに繰り返す必要はなく、したがってコーディング効率が改善され得る。さらに、パラメータセットの使用はヘッダ情報の帯域外送信を可能にし、誤り耐性を達成するための冗長送信の必要を回避し得る。帯域外送信では、他のNALユニットとは異なるチャネル上でパラメータセットNALユニットが送信される。図1の例では、コンテンツ作成デバイス20のカプセル化ユニット30は、ビデオエンコーダ28からコード化ビデオデータを備えるエレメンタリストリームを受信し、オーディオエンコーダ26からコード化オーディオデータを備えるエレメンタリストリームを受信する。いくつかの例では、ビデオエンコーダ28およびオーディオエンコーダ26はそれぞれ、符号化データからPESパケットを形成するためのパケッタイザを含み得る。他の例では、ビデオエンコーダ28およびオーディオエンコーダ26はそれぞれ、符号化データからPESパケットを形成するためのそれぞれのパケッタイザとインターフェースし得る。さらに他の例では、カプセル化ユニット30は、符号化オーディオデータと符号化ビデオデータとからPESパケットを形成するためのパケッタイザを含み得る。ビデオエンコーダ28は、ピクセル解像度、フレームレート、様々なコーディング規格への準拠、様々なコーディング規格のための様々なプロファイルおよび/またはプロファイルのレベルへの準拠、たとえば、2次元または3次元再生用の1つまたは複数のビューを有する表現、あるいは他のそのような特性など、様々なビットレートでおよび様々な特性を用いてマルチメディアコンテンツの異なる表現を生成するために、様々な方法でマルチメディアコンテンツのビデオデータを符号化し得る。本開示で使用する表現は、オーディオデータとビデオデータ、たとえば、1つまたは複数のオーディオエレメンタリストリームと1つまたは複数のビデオエレメンタリストリームの組合せを備え得る。各PESパケットは、PESパケットが属するエレメンタリストリームを識別するstream_idを含み得る。カプセル化ユニット30は、エレメンタリストリームを様々な表現のビデオファイルにアセンブルすることを担当する。カプセル化ユニット30は、オーディオエンコーダ26とビデオエンコーダ28とから表現のエレメンタリストリームのPESパケットを受信し、PESパケットから対応するネットワークアブストラクションレイヤNAL:networkabstractionlayerユニットを形成する。H.264/AVCAdvancedVideoCodingの例では、コード化ビデオセグメントは、ビデオテレフォニー、ストレージ、ブロードキャスト、またはストリーミングなどのアプリケーションに対処するネットワークフレンドリーなビデオ表現を与えるNALユニットに編成される。NALユニットは、VideoCodingLayerVCLNALユニットと非VCLNALユニットとにカテゴリー分類され得る。VCLユニットは、コア圧縮エンジンを含み得、ブロック、マクロブロック、および/またはスライスレベルのデータを含み得る。他のNALユニットは非VCLNALユニットであり得る。いくつかの例では、通常は1次コード化ピクチャとして提示される、1つの時間インスタンス中のコード化ピクチャは、1つまたは複数のNALユニットを含み得るアクセスユニット中に含まれ得る。非VCLNALユニットは、特に、パラメータセットNALユニットおよびSEINALユニットを含み得る。パラメータセットは、シーケンスパラメータセットSPS中のシーケンスレベルヘッダ情報と、ピクチャパラメータセットPPS中のまれに変化するピクチャレベルヘッダ情報とを含み得る。パラメータセットたとえば、PPSおよびSPSがある場合、まれに変化する情報をシーケンスごとまたはピクチャごとに繰り返す必要はなく、したがってコーディング効率が改善され得る。さらに、パラメータセットの使用は重要なヘッダ情報の帯域外送信を可能にし、誤り耐性のための冗長送信の必要を回避し得る。帯域外送信の例では、SEINALユニットなど、他のNALユニットとは異なるチャネル上でパラメータセットNALユニットが送信され得る。補足エンハンスメント情報SEIは、VCLNALユニットからのコード化ピクチャサンプルを復号するためには必要でないが、復号、表示、誤り耐性、および他の目的に関係するプロセスを支援し得る情報を含んでいることがある。SEIメッセージは非VCLNALユニット中に含まれていることがある。SEIメッセージは、一部の標準規格の規範的部分であり、したがって、常に標準準拠デコーダ実装のために必須であるとは限らない。SEIメッセージは、シーケンスレベルのSEIメッセージまたはピクチャレベルのSEIメッセージであり得る。いくつかのシーケンスレベル情報は、SVCの例ではスケーラビリティ情報SEIメッセージ、MVCではビュースケーラビリティ情報SEIメッセージなど、SEIメッセージ中に含まれていることがある。これらの例示的なSEIメッセージは、たとえば、動作ポイントの抽出およびそれらの動作ポイントの特性に関する情報を伝達し得る。さらに、カプセル化ユニット30は、表現の特性を記述するメディアプレゼンテーション記述子MPDなど、マニフェストファイルを形成し得る。カプセル化ユニット30は、拡張可能マークアップ言語XMLに従ってMPDをフォーマットし得る。カプセル化ユニット30は、マニフェストファイルたとえば、MPDとともに、マルチメディアコンテンツの1つまたは複数の表現についてのデータを出力インターフェース32に供給し得る。出力インターフェース32は、ユニバーサルシリアルバスUSBインターフェース、CDまたはDVDライターまたはバーナーなど、記憶媒体に書き込むためのネットワークインターフェースまたはインターフェース、磁気またはフラッシュ記憶媒体へのインターフェース、あるいはメディアデータを記憶または送信するための他のインターフェースを備え得る。カプセル化ユニット30は、マルチメディアコンテンツの表現の各々のデータを出力インターフェース32に供給し得、出力インターフェース32は、ネットワーク送信または記憶媒体を介してそのデータをサーバデバイス60に送り得る。図1の例では、サーバデバイス60は、様々なマルチメディアコンテンツ64を記憶する記憶媒体62を含み、各マルチメディアコンテンツ64は、それぞれのマニフェストファイル66と1つまたは複数の表現68A~68N表現68とを含む。本開示の技法によれば、マニフェストファイル66の部分は、別々のロケーションに記憶され得、たとえば、記憶媒体62、または潜在的にプロキシデバイスなどネットワーク74の別のデバイスの別の記憶媒体のロケーションに記憶され得る。いくつかの例では、表現68は表現グループに分離され得る。すなわち、表現68の様々なサブセットは、コーデック、プロファイルおよびレベル、解像度、ビューの数、セグメントのファイルフォーマット、表現を用いて表示されるべきテキストおよび/または復号され、たとえばスピーカーによって提示されるべきオーディオデータの言語または他の特性を識別し得るテキストタイプ情報、表現グループ中の表現のためのシーンのカメラアングルまたは現実世界のカメラパースペクティブを記述し得るカメラアングル情報、特定のオーディエンスのコンテンツ適合性を記述するレーティング情報など、特性のそれぞれの共通のセットを含み得る。マニフェストファイル66は、特定の表現グループに対応する表現68のサブセットを示すデータ、ならびに表現グループについての共通の特性を含み得る。マニフェストファイル66はまた、ビットレートなど、表現グループの個々の表現についての個々の特性を表すデータを含み得る。このようにして、表現グループは、簡略化されたネットワーク帯域幅適応を可能にし得る。表現グループ中の表現は、マニフェストファイル66の表現グループ要素の子要素を使用して示され得る。マニフェストファイル66はまたすなわち、追加または代替として、表現68のうちの1つまたは複数についてのトリックモード情報をシグナリングし得る。いくつかの例では、表現68のうちの1つまたは複数は、トリックモードサポートについてのそれぞれの時間サブシーケンスを含み得る。トリックモードは、概して、表現のデータが開始から終了まで再生されない表現のための再生モードに対応するが、代わりに、たとえば、特定の時間ロケーションをシークすることを可能にするために指定の時間ロケーションにおいて開始するか、あるいは1つまたは複数のフレームを順方向または逆方向の時間的方向にスキップし得るたとえば、早送りまたは早戻し。トリックモードを可能にするために、マルチメディアコンテンツ64は、対応する表現68の時間サブシーケンスについてのデータのロケーションを表す情報を含み得る。いくつかの例では、マニフェストファイル66は、時間サブシーケンスについてのデータのロケーションを表す情報を含み得る。他の例では、表現68自体が、時間サブシーケンスについてのデータのロケーションを表す情報を含み得る。さらに他の例では、表現68とマニフェストファイル66の両方が、時間サブシーケンスについてのデータのロケーションを表す情報を含み得る。いくつかの例では、コンテンツ作成デバイス20は、メディアコンテンツを、たとえば、ライブサービス用に記録されているメディアコンテンツとして作成し得る。カプセル化ユニット30は、場合によっては、メディアコンテンツのマニフェストファイルを周期的に更新する必要があり得る。カプセル化ユニット30は、メディアコンテンツの特定の期間内にマニフェストファイルを更新することさえ行い得る。本開示の技法によれば、カプセル化ユニット30は、マニフェストファイルが更新されるべきであることを示すデータを含む表現のセグメントを形成し得る。カプセル化ユニット30は、それらのセグメント自体において、またはクライアントデバイス40などのクライアントデバイスがそこからマニフェストファイルへの更新を取り出し得る別個のロケーションにおいて更新を行い得る。このようにして、マニフェストファイル66がマルチメディアコンテンツ64の特定の期間内で更新される必要があるとき、カプセル化ユニット30は、マニフェストファイル66が更新されるべきであることを示す表現68のうちの1つまたは複数のセグメントを形成し得る。いくつかの例では、マニフェストファイル66は、再生中にリモート期間のデータをマルチメディアコンテンツ64に挿入するためのデータを含み得る。たとえば、マルチメディアコンテンツ64内で広告を符号化するのではなく、コンテンツ作成デバイス20は、再生中にマルチメディアコンテンツ64中に組み込まれるべき1つまたは複数の別個の広告メディアコンテンツを作成し得る。クライアントデバイス40は、いくつかの例では、クライアントデバイス40のユーザが、そのユーザにとって最も好ましく有益な広告を受信するように、広告がクライアントデバイス40のユーザにターゲットにされ得るようなユーザ固有の情報を提供し得る。ユーザ情報のセットに応答して、サーバデバイス60は、クライアントデバイス40にターゲット広告マルチメディアコンテンツのデータを取り出させ得る、マニフェストファイルのターゲット広告部分をクライアントデバイス40に供給し得る。このようにして、同じマルチメディアコンテンツ64の2人以上の閲覧者は、広告がユーザにとって最も重要で有用となるように、異なるターゲット広告を受信し得る。サーバデバイス60は、要求処理ユニット70とネットワークインターフェース72とを含む。いくつかの例では、サーバデバイス60は複数のネットワークインターフェースを含み得る。さらに、サーバデバイス60の機能のうちのいずれかまたはすべてが、ルータ、ブリッジ、プロキシデバイス、スイッチ、または他のデバイスなど、コンテンツ配信ネットワークの他のデバイス上で実装され得る。いくつかの例では、コンテンツ配信ネットワークの中間デバイスは、マルチメディアコンテンツ64のデータをキャッシュし、サーバデバイス60の構成要素に実質的に準拠する構成要素を含み得る。概して、ネットワークインターフェース72は、ネットワーク74を介してデータを送信および受信するように構成される。要求処理ユニット70は、クライアントデバイス40などのクライアントデバイスから、記憶媒体72のデータについてのネットワーク要求を受信するように構成される。たとえば、要求処理ユニット70は、R.Fieldingらによる、RFC2616、HypertextTransferProtocolHTTP11、NetworkWorkingGroup、IETF、1999年6月に記載されている、ハイパーテキスト転送プロトコルHTTPバージョン1.1を実装し得る。すなわち、要求処理ユニット70は、HTTPGETまたは部分GET要求を受信し、これらの要求に応答してマルチメディアコンテンツ64のデータを与えるように構成され得る。要求は、たとえば、セグメントのURLを使用して、表現68のうちの1つのセグメントを指定し得る。いくつかの例では、要求はまた、セグメントの1つまたは複数のバイト範囲を指定し、したがって部分GET要求を備え得る。要求処理ユニット70はさらに、表現68のうちの1つのセグメントのヘッダデータを与えるためのHTTPHEAD要求をサービスするように構成され得る。いずれの場合も、要求処理ユニット70は、要求されたデータをクライアントデバイス40などの要求元デバイスに与えるための要求を処理するように構成され得る。図1の例に示すように、マルチメディアコンテンツ64は、メディアプレゼンテーション記述MPDに対応し得る、マニフェストファイル66を含む。マニフェストファイル66は、異なる代替表現68たとえば、異なる品質をもつビデオサービスの記述を含み得、その記述は、たとえば、表現68のコーデック情報、プロファイル値、レベル値、ビットレート、および他の記述特性を含み得る。クライアントデバイス40は、どのように表現68のセグメントにアクセスすべきかを判断するためにメディアプレゼンテーションのMPDを取り出し得る。特に、ウェブアプリケーション52は、ビデオデコーダ48の復号能力とビデオ出力44のレンダリング能力とを判断するためにクライアントデバイス40の構成データ図示せずを取り出し得る。構成データはまた、クライアントデバイス40のユーザによって選択された言語選好、クライアントデバイス40のユーザによって設定された深度選好に対応する1つまたは複数のカメラパースペクティブ、および/またはクライアントデバイス40のユーザによって選択されたレーティング選好のうちのいずれかまたはすべてを含み得る。ウェブアプリケーション52は、たとえば、HTTPGET要求および部分GET要求をサブミットするように構成されたウェブブラウザまたはメディアクライアントを備え得る。ウェブアプリケーション52は、クライアントデバイス40の1つまたは複数のプロセッサまたは処理ユニット図示せずによって実行されるソフトウェア命令に対応し得る。いくつかの例では、ウェブアプリケーション52に関して説明する機能のすべてまたは部分が、ハードウェア、あるいはハードウェア、ソフトウェア、および/またはファームウェアの組合せで実装され得、ソフトウェアまたはファームウェアの命令を実行するために必須のハードウェアが設けられ得る。ウェブアプリケーション52は、クライアントデバイス40の復号能力およびレンダリング能力を、マニフェストファイル66の情報によって示される表現68の特性と比較し得る。ウェブアプリケーション52は、初めに、表現68の特性を判断するためにマニフェストファイル66の少なくとも部分を取り出し得る。たとえば、ウェブアプリケーション52は、本開示の技法に従って、1つまたは複数の表現グループの特性を記述するマニフェストファイル66の部分を要求し得る。ウェブアプリケーション52は、クライアントデバイス40のコーディング能力およびレンダリング能力によって満たされ得る特性を有する表現68のサブセットたとえば、表現グループを選択し得る。ウェブアプリケーション52は、次いで、表現グループ中の表現のビットレートを判断し、ネットワーク帯域幅の現在利用可能な量を判断し、ネットワーク帯域幅によって満たされ得るビットレートを有する表現のうちの1つからセグメントを取り出し得る。概して、より高いビットレート表現はより高品質のビデオ再生を生じ得るが、利用可能なネットワーク帯域幅が減少したとき、より低いビットレート表現は十分な品質のビデオ再生を与え得る。したがって、利用可能なネットワーク帯域幅が比較的高いとき、ウェブアプリケーション52は比較的高いビットレート表現からデータを取り出し得るが、利用可能なネットワーク帯域幅が低いとき、ウェブアプリケーション52は比較的低いビットレート表現からデータを取り出し得る。このようにして、クライアントデバイス40は、ネットワーク74上でマルチメディアデータをストリーミングしながら、ネットワーク74の変化するネットワーク帯域幅利用可能性にも適応し得る。上記のように、いくつかの例では、クライアントデバイス40は、たとえば、サーバデバイス60またはコンテンツ配信ネットワークの他のデバイスにユーザ情報を提供し得る。ウェブアプリケーション52は、たとえば、ユーザ識別子、ユーザ選好、および/またはユーザ人口統計学的情報を収集し、そのようなユーザ情報をサーバデバイス60に提供し得る。ウェブアプリケーション52は、次いで、再生中にターゲット広告メディアコンテンツからのデータを、要求されたメディアコンテンツのメディアデータ中に挿入するために使用すべき、ターゲット広告メディアコンテンツに関連するマニフェストファイルを受信し得る。時々、クライアントデバイス40のユーザは、表現68のうちの選択された1つがトリックモードで再生されることを要求するために、キーボード、マウス、スタイラス、タッチスクリーンインターフェース、ボタン、または他のインターフェースなど、クライアントデバイス40のユーザインターフェースを使用してウェブブラウザ52と対話し得る。たとえば、ユーザは、再生をそこから開始するか、または特定の時間ロケーションをそこからスキップもしくはシークすべき特定の時間ロケーションを選択し得る。別の例として、ユーザは、表現を早送りまたは早戻しすることを選択し得る。ユーザからのそのような要求に応答して、ウェブアプリケーション52は、要求されたトリックモードを実行するために、表現68のうちの1つが時間サブシーケンスを含むかどうかを判断し得る。一例として、ユーザは、ビデオデータを早送りモードで再生することを選択し得る。表現のセグメントのすべてのデータを取り出すのではなく、ウェブアプリケーション52は、表現の時間サブシーケンスに対応する表現のデータのロケーションを判断し得る。時間サブシーケンスのデータは、たとえば、表現の瞬時デコーダリフレッシュIDRピクチャのセットに対応し得る。表現のIDRピクチャ間には、近似的持続時間、たとえば、2秒、10秒、または他の近似的持続時間があり得る。その上、IDRピクチャはイントラ予測モードで符号化され得、したがって、ウェブアプリケーション52はIDRピクチャ以外のデータを取り出す必要がない。ウェブアプリケーション52は、通常ならば表現のビデオデータが表示されるであろう同じフレームレートでIDRピクチャを表示させ得る。しかしながら、IDRピクチャ間の多くのデータのフレームがスキップされ得るので、得られたビデオデータは増加したフレームレートで再生され、したがって所望のトリックモードが達成され得る。ウェブアプリケーション52は、様々な技法を使用して時間サブシーケンスについてのデータのロケーションを判断し得る。いくつかの例では、ウェブアプリケーション52は、IDRピクチャのロケーションを判断するためにマニフェストファイル66のデータを分析し得る。IDRピクチャのロケーションは、特定の表現のセグメント内のバイト範囲を使用して示され得る。他の例では、サブフラグメントインデックスボックスサブセグメントインデックスボックスとも呼ばれるなど、表現のセグメントの特定のボックスが、時間サブシーケンスについてのデータのロケーションの指示を与え得る。たとえば、サブフラグメントインデックスボックスは、対応するセグメント内のIDRピクチャのバイト範囲を表すデータを含み得る。さらに他の例では、マニフェストファイル66と表現68の両方が、時間サブシーケンスについてのデータを取り出すためにウェブアプリケーション52によって使用される情報を含み得る。いずれの場合も、ウェブアプリケーション52は、復号または表示のために使用されないであろうデータを取り出すことを回避するために、IDRピクチャについての部分GET要求を構築するためのセグメント中のIDRピクチャのバイト範囲を判断し得る。いくつかの例では、カプセル化ユニット30は、IDRピクチャがセグメント内で連続するようなセグメントを形成し得る。すなわち、カプセル化ユニット30は、他のタイプのピクチャの介在バイトなしに、IDRピクチャに対応するセグメントのバイトが連続することを保証し得る。このようにして、ウェブアプリケーション52は、表現の時間サブシーケンスについてのデータを取り出すために表現のセグメントの単一バイト範囲を指定するだけでよい。いくつかの例では、トリックモードを実行するためにオープンデコーダリフレッシュODR:opendecoderrefreshピクチャも使用され得る。いくつかの例では、ウェブアプリケーション52は、マニフェストファイルが更新されるべきであることを受信セグメントの部分が示していると判断し得る。ウェブアプリケーション52は、マニフェストファイルが更新されるべきであることをセグメントが示すかどうかを判断するために、セグメントのヘッダ部分または他の最初の部分など、各セグメントの特定の部分を分析するように構成され得る。マニフェストファイルが更新されるべきであることをセグメントが示すとき、ウェブアプリケーション52は、セグメントのデータを使用することによって、あるいはリモートロケーションから、たとえば、サーバ60からマニフェストファイルを更新するためのデータを取り出すことによって、マニフェストファイルの局所的に記憶されたコピーを更新し得る。マニフェストファイルを更新した後に、ウェブアプリケーション52は、更新されたマニフェストファイルのデータに基づいて表現68のデータについての将来の要求をサブミットし得る。一例として、コンテンツ作成デバイス20は、ライブスポーツイベント、政治イベント、あるいは、あらかじめ記録されるのでなく一般にライブまたはほぼライブでブロードキャストされる他の報道価値のあるイベントなど、ライブメディアデータを符号化し得る。そのような場合、特定の時間までのメディアデータに対応するセグメントは、初期マニフェストファイル中に含まれる、URLなどの識別子を割り当てられ得る。ただし、ある時間期間が経過した後、その特定の時間の後にくるセグメントは、符号化され、URLなどの識別子を割り当てられ得る。コンテンツ作成デバイス20のカプセル化ユニット30は、その特定の時間の後にくるセグメントのURLを、更新されたマニフェストファイルに与え得る。したがって、その特定の時間の後に来るセグメントをどのように取り出すべきかを判断するために、クライアントデバイス40は、その特定の時間の後にくるセグメントを取り出すための要求を構築するために、更新されたマニフェストファイルを示す情報を受信し得る。いくつかの例では、セグメントは、それが表現の最後のセグメントであるかどうかを示し得る。セグメントが表現の最後のセグメントであるとき、対応するマルチメディアコンテンツの後続の期間の表現を判断するために新しいマニフェストファイルが取り出される必要があり得る。したがって、セグメントがマルチメディアコンテンツの期間中で表現の最後のセグメントであるとウェブアプリケーション52が判断したとき、ウェブアプリケーション52は、マルチメディアコンテンツのための更新されたマニフェストファイル、たとえば、マルチメディアコンテンツ64のマニフェストファイル66の更新されたバージョンを取り出し得る。いくつかの例では、クライアントデバイス40は、クライアントデバイス40がそこにマルチメディアコンテンツ64についてのデータを要求した特定の表現68を示すデータ構造を維持し得る。クライアントデバイス40はまた、正確に何がいつ再生されたのかの指示を維持し得る。すなわち、データ構造は、実時間または壁時計wallclock時間とプレゼンテーション時間の両方で開始時間および終了時間を表す情報を提供し得る。データ構造はさらに、初期開始時間と再生の開始とを表す情報を提供し得る。マルチメディアコンテンツ64の再生を終えた後に、クライアントデバイス40は、データ構造をサーバデバイス60および/またはコンテンツ作成デバイス20に送り得る。サーバデバイス60および/またはコンテンツ作成デバイス20は、クライアントデバイス40から受信された情報を使用して、再生の中断を低減することなどのために、エクスペリエンス品質を改善するより最適な方法を判断し得る。ネットワークインターフェース54は、選択された表現のセグメントのデータを受信し、ウェブアプリケーション52に供給し得、ウェブアプリケーション52は、今度は、そのセグメントをカプセル化解除ユニット50に供給し得る。カプセル化解除ユニット50は、ビデオファイルの要素を構成PESストリームにカプセル化解除し、PESストリームをパケット化解除して符号化データを取り出し、たとえば、ストリームのPESパケットヘッダによって示される、符号化データがオーディオストリームの一部であるかビデオストリームの一部であるかに応じて、符号化データをオーディオデコーダ46またはビデオデコーダ48のいずれかに送り得る。オーディオデコーダ46は、符号化オーディオデータを復号し、復号されたオーディオデータをオーディオ出力42に送り、ビデオデコーダ48は、符号化ビデオデータを復号し、ストリームの複数のビューを含み得る復号されたビデオデータをビデオ出力44に送る。ビデオエンコーダ28、ビデオデコーダ48、オーディオエンコーダ26、オーディオデコーダ46、カプセル化ユニット30、ウェブアプリケーション52、およびカプセル化解除ユニット50はそれぞれ、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサDSP、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGA、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適な処理回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ28およびビデオデコーダ48の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダコーデックの一部として統合され得る。同様に、オーディオエンコーダ26およびオーディオデコーダ46の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダコーデックの一部として統合され得る。ビデオエンコーダ28、ビデオデコーダ48、オーディオエンコーダ26、オーディオデコーダ46、カプセル化ユニット30、ウェブアプリケーション52、および/またはカプセル化解除ユニット50を含む装置は、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。図2は、例示的なマルチメディアコンテンツ100の要素を示す概念図である。マルチメディアコンテンツ100は、マルチメディアコンテンツ64図1、またはメモリ62に記憶された別のマルチメディアコンテンツに対応し得る。図2の例では、マルチメディアコンテンツ100は、メディアプレゼンテーション記述MPD102と、複数の表現110~120とを含む。表現110は、随意のヘッダデータ112とセグメント114A~114Nセグメント114とを含み、表現120は、随意のヘッダデータ122とセグメント124A~124Nセグメント124とを含む。文字Nは、便宜上、表現110、120の各々中の最後のムービーフラグメントを指定するために使用する。いくつかの例では、表現110と表現120との間で異なる数のムービーフラグメントが存在し得る。MPD102は、表現110~120とは別のデータ構造を備え得る。MPD102は図1のマニフェストファイル66に対応し得る。同様に、表現110~120は図1の表現68に対応し得る。概して、MPD102は、コーディング特性およびレンダリング特性、表現グループ、MPD102が対応するプロファイル、テキストタイプ情報、カメラアングル情報、レーティング情報、トリックモード情報たとえば、時間サブシーケンスを含む表現を示す情報、および/またはたとえば、再生中のメディアコンテンツ中へのターゲット広告挿入のためのリモート期間を取り出すための情報など、表現110~120の特性を全体的に記述するデータを含み得る。リモート期間は外部期間と呼ばれることもある。以下でさらに詳細に説明する図4~図7に、様々な要素がMPDおよび/または表現のセグメントもしくは表現のヘッダデータ内などの表現の一方または両方中に含まれるマルチメディアコンテンツの様々な例を示す。図4~図7のMPDのいずれかまたはすべては、実質的に図2のMPD102に対応し得る。ヘッダデータ112は、存在するとき、セグメント114の特性、たとえば、ランダムアクセスポイントの時間ロケーションを記述し得、セグメント114のランダムアクセスポイントは、ランダムアクセスポイント、セグメント114内のランダムアクセスポイントへのバイトオフセット、セグメント114のユニフォームリソースロケータURL、またはセグメント114の他の態様を含む。ヘッダデータ122は、存在するとき、セグメント124についての同様の特性を記述し得る。追加または代替として、そのような特性はMPD102内に完全に含まれ得る。セグメント114は1つまたは複数のコード化ビデオサンプルを含み、コード化ビデオサンプルの各々はビデオデータのフレームまたはスライスを含み得る。セグメント114のコード化ビデオサンプルの各々は、同様の特性、たとえば、高さ、幅、および帯域幅要件を有し得る。そのような特性はMPD102のデータによって記述され得るが、そのようなデータは図2の例に示していない。MPD102は、本開示において説明するシグナリング情報のいずれかまたはすべてに加えて、3GPP仕様に記載されている特性を含み得る。セグメント114、124の各々は、一意のユニフォームリソース識別子URI、たとえば、ユニフォームリソースロケータURLに関連し得る。したがって、セグメント114、124の各々は、DASHなどのストリーミングネットワークプロトコルを使用して独立に取出し可能であり得る。このようにして、クライアントデバイス40などの宛先デバイスは、セグメント114または124を取り出すためにHTTPGet要求を使用し得る。いくつかの例では、クライアントデバイス40は、セグメント114または124の特定のバイト範囲を取り出すためにHTTP部分Get要求を使用し得る。上記のように、MPD102は特定のMPDプロファイルに準拠し得る。MPD102は、MPD102および/またはマルチメディアコンテンツ100の多目的インターネットメール拡張MIMEタイプを示す情報を含み得る。しかしながら、MIMEタイプは、概して、マルチメディアコンテンツを提示するためにどんなコーデックが必要とされるかを示さない。概して、デバイスが、MPD102など、マルチメディアコンテンツのMPDを取り出すことができる場合、そのデバイスは、MPDに対応するマルチメディアコンテンツのデータを再生することができると仮定される。ただし、この仮定は常に安全であるとは限らない。したがって、いくつかの例では、MPD102は、MPD102が対応するプロファイルを示す情報を含み得る。MPDが対応し得るプロファイルの数が比較的小さいことがある。プロファイルは、H.264/AVCがビデオコーディングのためのプロファイルおよびレベルを含む様式と同様に、機能に対処するためのレベルによってサポートされ得る。MPDプロファイルは、上位プロファイルがすべての下位プロファイルのすべての特徴を含み得るという点で、オニオンシェル化onionshellされ得る。登録機関が様々なプロファイルを登録するための登録プロセスがあり得る。いくつかの例では、クライアントデバイス40などのクライアントデバイスは、MPD102によってシグナリングされる表現110~120の特性など、MPDの他のデータを取り出す前に、MPD102などのMPDのプロファイルを示す情報を取り出すように構成され得る。このようにして、MPD102へのアクセスが与えられる前にMPD102のプロファイルがシグナリングされ得る。プロファイル識別子は、プレーンテキストでたとえば、プレーンネームとして、または逆引きreversedドメインネームで与えられ得る。プレーンネームは、3GPPまたは別の登録機関など、登録機関によって予約され得る。対応するマルチメディアコンテンツが、プロファイルに準拠し、また、MPDを読み取り、リーダーたとえば、クライアントデバイスが認識したものを解釈し、リーダーが理解しないマテリアルを無視するようにそのプロファイルを実装する認可をリーダーに与えることをプロファイルが請求し得るという点で、プロファイルは請求および認可と見なされ得る。プロファイルは、たとえば、MPD102の特徴、ネットワークの使用、1つまたは複数のメディアフォーマット、使用される1つまたは複数のコーデック、保護フォーマット、および/またはビットレート、スクリーンサイズなどの定量的測度などの特性を記述し得る。このようにして、MPD102のプロファイルは、MPD102および/またはマルチメディアコンテンツ100のデータを取り出すためにどのコーデックがサポートされる必要があるかを示す情報を提供し得る。プロファイルは準拠ポイントと表されることもある。MPDが準拠するプロファイルはMPDのProfiles属性中に示され得る。したがって、クライアントデバイスは、MPD102の追加のデータを取り出す前に、このProfiles属性に関係する情報を含むMPD102の部分を取り出すように構成され得る。代替的に、プロファイルは、MPDのMIMEタイプ中のパラメータとして示され得る。たとえば、プロファイルX、Y、およびZは以下の様式でシグナリングされ得る。videovndmpegmpdprofilesXYZいくつかの例では、MPD102は、リモート期間とも呼ばれる外部期間のデータを参照し得る。期間は、概して、マルチメディアコンテンツの特定の時間セクションに対応する。各期間は、表現110~120など、1つまたは複数の表現を含み得る。ただし、外部期間は、マルチメディアコンテンツ100の期間内にまたはそれらの間に挿入され得る。外部期間は、マルチメディアコンテンツのマルチメディアデータの他にマルチメディアデータを含み得る。たとえば、外部期間は広告データを含み得る。期間は、それらの持続時間によって定義され得、すなわち、Periodの開始時間は前のPeriodの持続時間に依存し得る。クライアントデバイスは外部期間をMPD構造にマッピングし得る。ライブサービスでは、MPDの連結が、適切な更新プロシージャを用いた、サーバデバイス60などのサーバ上のMPDの動的作成によって達成され得る。他のウェブ技術も使用され得る。クライアントデバイス40のユーザをターゲットにした広告を含んでいる新しい期間を生成するために、外部的に定義された期間のURLがリアルタイムで処理され得る。クライアントデバイス40は、広告ターゲッティングのために使用され得る要求に、追加の情報、たとえば、ユーザ識別子、ユーザ選好、ユーザ人口統計学的情報、または他の情報を供給し得る。以下の表1に、マルチメディアコンテンツの1つまたは複数のPeriodを記述し、外部期間の存在を示すためにMPD102中で提供され得る情報の例示的なセットを示す。このようにして、MPD102のPeriod要素は、たとえば、periodListURIを使用して外部またはリモート期間を参照し得る。オンデマンドコンテンツでは、クライアントデバイス40などのクライアントデバイスにとって、期間持続時間の指示は、外部期間をサポートするために開始時間よりも有用であり得る。MPDはPeriodのシーケンスを含み得、Periodは内部でも外部でもよい。ユーザ固有の情報とともに、そのようなリモート期間を使用することによってターゲットユーザ広告が可能になり得る。サーバデバイス60および/またはコンテンツ作成デバイス20は、ユーザごとに、またはクライアントデバイスごとに別々のMPDを動的に生成するように構成され得る。クライアントデバイス40、または別のデバイスは、たとえば、動的に作成されたMPDを使用して、ターゲット広告のプレイアウトとライブサービスとを連結し得る。このようにして、本開示の技法は、サービスプロバイダが3GPPAHSを通してオンデマンドコンテンツを提供する状況をサポートし得る。コンテンツはいくつかのシーンを含み得、各シーン間に広告が追加され得る。広告はユーザごとに異なり得る。すなわち、ターゲット広告が追加され得る。さらに、各広告は持続時間が異なり得る。同様に、サービスプロバイダは特定のライブサービスたとえば、フリーサービスを提供し得る。ライブサービスにアクセスするとき、サービスプロバイダは、ユーザをターゲットにしていることもありしていないこともある広告を追加し得る。広告の持続時間は、アクセス時間、アクセスロケーション、ユーザなどに応じて異なり得る。サーバデバイス60は、広告が見られることを保証するために、広告が完了した後にのみライブサービスのURLを与えるように構成され得る。図3は、図2のセグメント114、124のうちの1つなど、表現のセグメントに対応し得る、例示的なビデオファイル150の要素を示すブロック図である。セグメント114、124の各々は、図3の例に示すデータの構成に実質的に準拠するデータを含み得る。同様に、以下で説明する図4~図7のセグメントも、ビデオファイル150の構造に実質的に準拠し得る。上記で説明したように、ISOベースメディアファイルフォーマットおよびそれの拡張に従うビデオファイルは、ボックスと呼ばれる一連のオブジェクトにデータを記憶する。図3の例では、ビデオファイル150は、ファイルタイプFTYPボックス152と、ムービーMOOVボックス154と、ムービーフラグメントMOOFボックス162と、ムービーフラグメントランダムアクセスMFRAボックス164とを含む。ファイルタイプFTYPボックス152は、概して、ビデオファイル150のファイルタイプを記述する。ファイルタイプボックス152は、ビデオファイル150の最良の使用を記述する仕様を識別するデータを含み得る。ファイルタイプボックス152は、MOOVボックス154と、ムービーフラグメントボックス162と、MFRAボックス164との前に配置され得る。いくつかの例では、ビデオファイル150などのセグメントは、FTYPボックス152の前にMPD更新ボックス図示せずを含み得る。MPD更新ボックスは、MPDを更新するための情報とともに、ビデオファイル150を含む表現に対応するMPDが更新されるべきであることを示す情報を含み得る。たとえば、MPD更新ボックスは、MPDを更新するために使用されるべきリソースのURIまたはURLを与え得る。別の例として、MPD更新ボックスは、MPDを更新するためのデータを含み得る。いくつかの例では、MPD更新ボックスはビデオファイル150のセグメントタイプSTYPボックス図示せずの直後にき得、STYPボックスはビデオファイル150のセグメントタイプを定義し得る。以下でさらに詳細に説明する図7において、MPD更新ボックスに関する追加の情報を提供する。MOOVボックス154は、図3の例では、ムービーヘッダMVHDボックス156と、トラックTRAKボックス158と、1つまたは複数のムービー拡張MVEXボックス160とを含む。概して、MVHDボックス156はビデオファイル150の一般的特性を記述し得る。たとえば、MVHDボックス156は、ビデオファイル150が最初に生成されたとき、ビデオファイル150が最後に変更されたときを記述するデータ、ビデオファイル150の時間スケール、ビデオファイル150の再生の持続時間、またはビデオファイル150について一般に記述する他のデータを含み得る。TRAKボックス158は、ビデオファイル150のトラックについてのデータを含み得る。TRAKボックス158は、TRAKボックス158に対応するトラックの特性を記述するトラックヘッダTKHDボックスを含み得る。いくつかの例では、TRAKボックス158はコード化ビデオピクチャを含み得、他の例では、トラックのコード化ビデオピクチャは、TRAKボックス158のデータによって参照され得るムービーフラグメント162中に含まれ得る。いくつかの例では、ビデオファイル150は2つ以上のトラックを含み得る。したがって、MOOVボックス154は、ビデオファイル150中のトラックの数に等しい数のTRAKボックスを含み得る。TRAKボックス158は、ビデオファイル150の対応するトラックの特性を記述し得る。たとえば、TRAKボックス158は、対応するトラックについての時間および/または空間情報を記述し得る。カプセル化ユニット30図1が、ビデオファイル150などのビデオファイル中にパラメータセットトラックを含むとき、MOOVボックス154のTRAKボックス158と同様のTRAKボックスはパラメータセットトラックの特性を記述し得る。カプセル化ユニット30は、パラメータセットトラックを記述するTRAKボックス内のパラメータセットトラック中でシーケンスレベルSEIメッセージの存在をシグナリングし得る。MVEXボックス160は、たとえば、もしあれば、MOOVボックス154内に含まれるビデオデータに加えて、ムービーフラグメント162をビデオファイル150が含むことをシグナリングするように、対応するムービーフラグメント162の特性を記述し得る。ビデオデータをストリーミングするコンテキストでは、コード化ビデオピクチャは、MOOVボックス154ではなくムービーフラグメント162中に含まれ得る。したがって、すべてのコード化ビデオサンプルは、MOOVボックス154ではなくムービーフラグメント162中に含まれ得る。MOOVボックス154は、ビデオファイル150中のムービーフラグメント162の数に等しい数のMVEXボックス160を含み得る。MVEXボックス160の各々は、ムービーフラグメント162のうちの対応する1つの特性を記述し得る。たとえば、各MVEXボックスは、ムービーフラグメント162のうちの対応する1つの持続時間を記述するムービー拡張ヘッダボックスMEHDボックスを含み得る。上記のように、カプセル化ユニット30は、シーケンスデータセットを、実際のコード化ビデオデータを含まないビデオサンプルに記憶し得る。ビデオサンプルは、概して、特定の時間インスタンスにおけるコード化ピクチャの表現である、アクセスユニットに対応し得る。AVCのコンテキストでは、コード化ピクチャは、アクセスユニットのすべてのピクセルを構築するための情報を含んでいる1つまたは複数のVCLNALユニットと、SEIメッセージなど、他の関連する非VCLNALユニットとを含む。したがって、カプセル化ユニット30は、ムービーフラグメント162のうちの1つ中に、シーケンスレベルSEIメッセージを含み得る、シーケンスデータセットを含み得る。カプセル化ユニット30はさらに、シーケンスデータセットおよび/またはシーケンスレベルSEIメッセージの存在を、ムービーフラグメント162のうちの1つに対応するMVEXボックス160のうちの1つ内のムービーフラグメント162のうちの1つ中に存在するものとしてシグナリングし得る。ムービーフラグメント162は1つまたは複数のコード化ビデオピクチャを含み得る。いくつかの例では、ムービーフラグメント162は1つまたは複数のピクチャグループGOPを含み得、ピクチャグループの各々は、いくつかのコード化ビデオピクチャ、たとえば、フレームまたはピクチャを含み得る。さらに、上記で説明したように、ムービーフラグメント162は、いくつかの例では、シーケンスデータセットを含み得る。ムービーフラグメント162の各々は、ムービーフラグメントヘッダボックスMFHD、図3に図示せずを含み得る。MFHDボックスは、ムービーフラグメントのシーケンス数など、対応するムービーフラグメントの特性を記述し得る。ムービーフラグメント162はビデオファイル150中のシーケンス数の順に含まれ得る。MFRAボックス164は、ビデオファイル150のムービーフラグメント162内のランダムアクセスポイントを記述し得る。これは、ビデオファイル150内の特定の時間ロケーションへのシークを実行することなど、トリックモードを実行することを支援し得る。MFRAボックス164は、概して随意であり、いくつかの例では、ビデオファイル中に含まれる必要がない。同様に、クライアントデバイス40などのクライアントデバイスは、ビデオファイル150のビデオデータを正しく復号し、表示するために、必ずしもMFRAボックス164を参照する必要がない。MFRAボックス164は、ビデオファイル150のトラックの数に等しいか、またはいくつかの例ではビデオファイル150のメディアトラックたとえば、非ヒントトラックの数に等しい、数のトラックフラグメントランダムアクセスTFRAボックス図示せずを含み得る。いくつかの例では、ムービーフラグメント162は1つまたは複数のIDRおよび/またはODRピクチャを含み得る。同様に、MFRAボックス164は、IDRおよびODRピクチャのビデオファイル150内のロケーションの指示を与え得る。したがって、ビデオファイル150の時間サブシーケンスは、ビデオファイル150のIDRおよびODRピクチャから形成され得る。時間サブシーケンスはまた、IDRおよび/またはODRピクチャに従属するPフレームおよび/またはBフレームなど、他のピクチャを含み得る。サブシーケンスの他のフレーム/スライスに依存する時間サブシーケンスのフレーム/スライスが適切に復号され得るように、セグメント内に時間サブシーケンスのフレームおよび/またはスライスが構成され得る。たとえば、データの階層構成において、他のデータの予測のために使用されるデータも時間サブシーケンス中に含まれ得る。その上、時間サブシーケンスのために使用される特定のセグメントのすべてのデータを取り出すための部分GET要求において単一バイト範囲が指定され得るように、データは連続サブシーケンスで構成され得る。クライアントデバイス40などのクライアントデバイスは、IDRおよび/またはODRピクチャに対応するムービーフラグメント162またはムービーフラグメント162の部分のバイト範囲を判断することによってビデオファイル150の時間サブシーケンスを抽出し得る。以下でより詳細に説明するように、ビデオファイル150などのビデオファイルは、サブフラグメントインデックスボックスおよび/またはサブトラックフラグメントボックスを含み得、それらの一方または両方は、ビデオファイル150の時間サブシーケンスを抽出するためのデータを含み得る。図4は、MPD202と表現グループ210~220とを含む例示的なマルチメディアコンテンツ200を示す概念図である。マルチメディアコンテンツ200は、マルチメディアコンテンツ64図1、またはメモリ62に記憶された別のマルチメディアコンテンツに対応し得る。この例では、マルチメディアコンテンツ200の表現は表現グループによって構成される。すなわち、特性の共通のセットをもつ表現が表現グループに形成され得、それにより、簡略化されたネットワーク帯域幅適応が可能になる。この例では、MPD202は、表現グループ210の共通の特性を記述する情報を含む共通の表現特性204Aと、表現グループ220の共通の特性を記述する共通の表現特性204Bとを含む。共通の特性は、コーデック、表現中の表現が準拠するコーデックのプロファイルおよびレベル、ピクセル解像度、フレームレート、または表現の他の特性など、表現のコーディングおよび/またはレンダリング特性を含み得る。本開示の技法によれば、特性は、上記で説明した特性に加えて、テキストタイプ値、カメラアングル値、および/またはレーティング値を含み得る。テキストタイプ値は、ビデオデータたとえば、字幕テキストとともに表示されるべきテキストの特性を記述し得る。テキストタイプ値は、たとえば、テキストの言語、テキストを表示すべきスクリーン上のロケーション、テキストのフォントおよび/またはサイズ、あるいはテキストの他の特性を記述し得る。カメラアングル値は、対応する表現のコード化ビデオデータを生成するために物理的あるいは概念的に使用されるカメラのための現実世界の水平方向カメラ位置を記述し得る。カメラアングルを使用して、クライアントデバイスは、たとえば、3次元ビデオ再生効果を生成するために、実質的に同時に表示されるべき2つ以上の表現からデータを選択し得る。水平方向の現実世界のカメラロケーションにより、クライアントデバイスは、ビデオデータの3次元再生における深度の相対量を増加または減少させるような表現を選択することが可能になり得る。レーティングは、特定のオーディエンスのコンテンツ適合性を記述し得る。たとえば、米国では、アメリカ映画協会MotionPictureAssociationofAmericaが、G、PG、PG-13、R、およびNC-17を含むレーティングを定義している。別の例として、英国では、全英映像等級審査機構BritishBoardofFilmClassificationが、U、PG、12A、12、15、18、およびR18を含むレーティングを定義している。さらに別の例として、中華民国台湾では、映画のカテゴリーは、一般オーディエンスカテゴリー、保護カテゴリー、ペアレンタルガイダンスカテゴリー、および制限付きカテゴリーを含む。それぞれの表現グループ、たとえば、表現グループ210~220の共通の特性204を与えることにより、クライアントデバイスたとえば、クライアントデバイス40は、対応する共通の表現特性204に少なくとも部分的に基づいて、表現グループ210~220のうちの適切な1つを選択し得る。図4の例では、MPD202はまた、表現212A、212B、222A、222Bにそれぞれ対応する、個々の表現特性206A、206B、208A、および208Bを含む。個々の表現特性206A、206B、208A、および208Bは、共通の表現特性204によって示されない表現212A、212B、222A、222Bの特性を表す情報を含み得る。たとえば、個々の表現特性206A、206B、208A、および208Bは、表現212A、212B、222A、222Bのうちのそれぞれの1つのビットレートを表す情報を含み得る。表現グループの表現は、異なる符号化または他のパラメータと同じコンテンツ同じビデオ、同じ言語オーディオなどを表し得るという点で、相互排他的であると見なされ得る。MPD202は、表現グループ210~220のうちの1つ、たとえば、共通の表現特性204を選択するための情報を提供し得る。この情報は、クライアントが所与の表現を復号し、レンダリングすることができるかどうかを示す情報を含み得る。このようにして、クライアントデバイスは、クライアントデバイスが復号および/またはレンダリングすることが不可能な表現を考慮から除外し得る。したがって、クライアントデバイス40は、復号され、レンダリングされ得る好適な表現グループを選択し、次いで、たとえば、ネットワーク帯域幅利用可能性に基づいて、そのグループから表現を選択し得る。クライアントデバイス40はまた、たとえば、レーティング、言語、および/または深度についてのユーザ選好を用いて構成され得る。したがって、クライアントデバイス40はまた、選択されたグループがユーザ選好に準拠するように1つまたは複数の表現グループを選択し得る。クライアントデバイス40は、次いで、同時に再生され得る利用可能な表現グループのサブセットを選択し得る。クライアントデバイス40が1つのビューしか表示できないとき、クライアントデバイス40は1つの表現からのみデータを取り出すことを選択し得る。一方、クライアントデバイス40がステレオビューまたはマルチビュー対応であるとき、クライアントデバイス40は2つ以上の表現からデータを取り出し得る。1つまたは複数の表現グループを選択した後に、クライアントデバイス40は、たとえば、利用可能なネットワーク帯域幅に基づいて、それらの表現グループから表現を選択し得る。利用可能なネットワーク帯域幅が変化たとえば、増加または減少したとき、クライアントデバイス40は、変化するネットワーク帯域幅状態に適応するために表現グループからの表現の選択を調整し得る。もちろん、クライアントデバイス40は、ユーザ選好またはデバイス能力たとえば、復号およびレンダリング能力が変化した場合にも表現選択を変更し得る。共通の表現特性204は、いくつかの例では、MPD202のRepresentationGroupXML要素に対応し得る。個々の表現特性は、いくつかの例では、MPD202の対応するRepresentationGroup要素のサブ要素に対応し得る。表現の共通の特性を一緒にグループ化することによって、様々な最適化が達成され得る。たとえば、多くの表現が、様々なパラメータについて同じ値を有し得る。したがって、MPDにおいて特性を個々にシグナリングすると、特性を個々にシグナリングするためにMPDにおいてかなりの重複が生じ得る。多くのクライアントデバイスは、受信されたMPDの大部分を廃棄するように構成される。したがって、クライアントデバイスが受信するMPDの部分において最適化が行われ得る。その上、表現グループが廃棄された場合、クライアントデバイスは、廃棄された表現または表現グループのMPD中に現在存在する情報URLなどにアクセスしなくてもよい。クライアントデバイスはまた、たとえば、ライブイベントのためのビデオデータのリアルタイムネットワークストリーミング中では頻繁に更新される傾向がある、URLの不必要な更新を回避し得る。MPDにおける冗長性がなくされた場合でも、クライアントデバイス40は、著しい量の計算時間を浪費し得る、受信および再構成の後に全MPDをパースすることが依然として必要になり得る。図5は、MPDデータが様々な表現グループの様々な部分に分離された、別の例示的なマルチメディアコンテンツ250を示す概念図である。マルチメディアコンテンツ250は、マルチメディアコンテンツ64図1、またはメモリ62に記憶された別のマルチメディアコンテンツに対応し得る。特に、マルチメディアコンテンツ250のマニフェストファイルは、表現グループに関係するデータを概して含む、MPD部分252を含む。この例では、MPD部分252は、表現グループデータ254からそれぞれの表現グループ270~280を指す矢印によって示されようにそれぞれの表現グループ270~280に対応する、表現グループデータ254Aおよび254B表現グループデータ254を含む。この例では、表現グループデータ254Aは、表現グループの共通の特性256Aと、表現グループのMPD部分のロケーション258Aとを含む。すなわち、表現グループ258AのMPD部分のロケーションは、表現グループ260AのMPD部分のロケーションを示す。表現グループ258AのMPD部分のロケーションは、たとえば、表現グループ260AのMPD部分のURIまたはURLに対応し得る。同様に、表現グループデータ254Bは、表現グループの共通の特性256Bと、表現グループ260BのMPD部分に対応する、表現グループのMPD部分のロケーション258Bとを含む。表現グループ260AのMPD部分は、表現グループ270の特定の表現272A、272B表現272の特性を表す情報を含む。同様に、表現グループ260BのMPD部分は、表現グループ280の特定の表現282A、282B表現282の特性を表す情報を含む。このようにして、クライアントデバイス40などのクライアントデバイスは、クライアントデバイス40が取出し、復号、表示しないであろう表現についての表現固有のシグナリングデータを受信することなしに、データをそこから取り出すべき適切な表現グループを判断し得る。したがって、クライアントデバイス40は、本来ならただ廃棄されるであろう余分のデータを取り出すことを回避し得る。特に、クライアントデバイス40によって復号され、レンダリングされ得る表現を含む1つまたは複数の表現グループを選択した後に、クライアントデバイス40は、クライアントデバイス40によって適切に復号および/またはレンダリングされ得ない表現グループのMPD部分を取り出すことなしに、選択された表現グループのMPD部分のみを取り出し得る。マルチメディアコンテンツ250のデータは、概して、実質的にマルチメディアコンテンツ200のそれぞれの要素に対応し得る。ただし、マルチメディアコンテンツ250は、クライアントデバイスによるマルチメディアコンテンツ250についてのMPDデータの階層的ダウンロードを簡略化し得る。たとえば、すべての表現についてのシグナリングデータを含み得る、完全なマニフェストファイルを取り出すのではなく、クライアントデバイスは、単に1つまたは複数の表現グループを判断し、次いで、たとえば、クライアントデバイスが、表現を復号し、表示するための復号および/またはレンダリングプロシージャをサポートしないのでクライアントデバイスによって取り出されないであろう他の表現グループに対応するMPD部分を取り出すことなしに、それらの表現グループに対応するMPD部分を取り出し得る。このようにして、マルチメディアコンテンツ250のデータにより、不要なダウンロードおよびパーシングの非効率性を緩和し得る。以下の表2に、表現グループの特性を記述する、図4のMPD202および/または図5のMPD部分252などのMPDに追加され得る例示的な要素を与える。共通の表現特性204図4および/または表現グループの共通の特性256は表2の構造に従ってフォーマットされ得る。以下のXMLは、MPDデータ構造のRepresentationGroup要素の例を与える。以下の表3は、表現について含まれ得るデータの例示的なセットを与える。このデータは、いくつかの例では個々の表現について与えられ得るが、他の例では、たとえば、上記の表2に従って、データの全部または一部分が表現グループのために与えられ得る。いくつかの例では、表現グループについてのデータと、そのようなグループ内の個々の表現についてのデータとは、階層関係を用いて、MPD202などのMPD内に提示され得る。すなわち、個々の表現は、たとえば、MPD202の、対応する表現グループ要素への子要素としてシグナリングされ得る。同様に、MPD部分252と、表現グループのMPD部分260とについて、個々の表現特性262、264は、表現グループの共通の特性256の子要素に対応し得る。図6は、トリックモードをサポートするために使用され得る別の例示的なマルチメディアコンテンツ300を示す概念図である。マルチメディアコンテンツ300は、マルチメディアコンテンツ64図1、またはメモリ62に記憶された別のマルチメディアコンテンツに対応し得る。この例では、MPD302は、時間サブシーケンス情報306を含み得る、表現情報304を含む。表現情報304は、この例では、表現310の特性を含む。表現310はセグメント312A~312Dセグメント312を含む。この例では、セグメント312の各々は、それぞれのサブフラグメントインデックスボックス314とランダムアクセスポイントRAPデータ316とを含む。他の例では、いくつかのセグメントがランダムアクセスポイントを含まず、いくつかのセグメントが複数のランダムアクセスポイントを含むことがある。ランダムアクセスポイントはIDRまたはODRピクチャを含み得る。クライアントデバイス40は、表現310から時間サブシーケンスを抽出し得る。たとえば、クライアントデバイス40は、表現310の時間サブシーケンスを形成するためにRAP316の各々を抽出し得る。代替的に、クライアントデバイス40は、RAP316Aおよび316C、または316Aおよび316Dなど、RAP316のサブセットを取り出し得る。ランダムアクセスポイント316またはそれのサブセットのみを取り出し、再生することにより、クライアントデバイス40は、トリックモード、たとえば、早送りまたは早戻しで表現310を再生し得る。同様に、クライアントデバイス40は、要求された時間位置から再生を開始するために、ランダムアクセスポイント316のうちの特定の1つをスキップまたはシークし得る。マルチメディアコンテンツは、トリックモードについての情報を示すために時間サブシーケンス情報306および/またはSFIXボックス314の一方または両方を含み得る。時間サブシーケンス情報306は、以下の表4によって定義されるものなど、MPD302のTrickMode要素を含み得る。表4の例では、TrickMode要素は、対応する表現が、サブフラグメントインデックスボックス314の情報を使用してバイト範囲によってアクセスされ得る時間サブシーケンスを含んでいることを指定するTemporalSubSequence要素を含む。RAP316は、図3に示すムービーフラグメント162など、ムービーフラグメントの部分に対応し得る。サブフラグメントインデックスボックス314は、概して、対応するセグメント312のランダムアクセスポイント316のバイト範囲ロケーションを記述し得る。概して、サブフラグメントインデックスボックス314は、セグメント312のセグメントインデックスSIDXボックス図6に図示せずの後に現れ、直前のセグメントインデックスボックス中で参照されるムービーフラグメントのムービーフラグメントプレフィックスサイズを与え得る。以下の表5に、例示的なSFIXボックスのプロパティを与える。以下の擬似コードに、サブフラグメントインデックスボックス314のための例示的なシンタックスを与える。下記の説明は、上記で説明したシンタックスのためのセマンティクスの例示的なセットを与えるものである。fragment_countは、それのサブフラグメント情報がこのボックス中で指定されるフラグメントの数を指定する。これは、直前のセグメントインデックスボックス中のフラグメント参照の数に等しくなければならない。sub_fragment_countは、フラグメント当たりのサブフラグメントの数を指定するprefix_sizeは、サブフラグメントjによって占有されるフラグメントiのプレフィックスのサイズを指定する。代替または追加として、サブトラックフラグメントボックスはセグメント312中に含まれていることがある。サブフラグメントインデックスボックスは、メディアデータを要求することに先立ってセグメントインデックスボックスとともにクライアントデバイス40によって取り出され得るシンタックス情報を提供し得るが、サブフラグメントインデックスボックスは、フラグメントデータのサブセット、たとえば、時間サブレイヤをターゲットにするバイト範囲要求をクライアントデバイス40が構築するための情報を提供し得る。サブトラックフラグメントボックスは、各サブトラックフラグメントのサンプルが、上位サブトラックフラグメント中にのみ現れるすべてのサンプルに先行するように、トラックフラグメントのサンプルデータの再順序付けを指定し得る。下位サブトラックフラグメント中に現れないサブトラックフラグメントのサンプルは、それらがトラックランボックス中に現れるのと同じ順序でファイルたとえば、セグメント312のうちの対応する1つ内に連続して配置され得る。これにより、サンプルがトラックフラグメント内の時間スケーラビリティレイヤの順に記憶されることが可能になり得る。このボックスが存在するとき、ただ1つのトラックランボックスがあり得る。表6に、サブトラックフラグメントボックスのプロパティを記載する。以下の擬似コードに、サブトラックフラグメントボックスのための例示的なシンタックスを示す。下記の説明は、上記で説明したサブトラックフラグメントボックスの例示的なシンタックスのための例示的なセマンティクスを与えるものである。sub_track_countは、サブトラックフラグメントの数を示す。このボックスが存在するとき、sub_track_countは2以上になり得る。sample_count[i]は、i1のインデックスをもつサブトラックフラグメント中のサンプルの数を示す。サブトラックフラグメントのサンプルは、より小さいインデックス値をもつすべてのサブトラックフラグメントのメンバーであると見なされる。サブトラックフラグメント0中のサンプルの数は、後続ループ中の第1のビットストリングの0の数に等しい。sample_count[sub_track_count-1]である、sub_track_count-1のインデックスをもつサブトラックフラグメント中のサンプルの数は、トラックフラグメント中のサンプルの数に等しい。cur_sub_track_flagが、アウターループの反復iにおける1に等しいことは、サンプルが、i1のインデックスをもつサブトラックフラグメントに属することを示す。この値が、アウターループの反復における0に等しいことは、サンプルが、i1よりも小さいインデックスをもつサブトラックフラグメントに属することを示す。注:すなわち、ループの第1の反復は、サブトラックフラグメント0にもないサブトラックフラグメント1中のサンプルの位置を示すsample_count[0]フラグを含んでおり、ループの第2の反復は、サブトラックフラグメント1中にもないサブトラックフラグメント2中のサンプルの位置を示すsample_count[1]フラグを含んでいる、などである。sample_count[sub_track_count-1]は、トラックフラグメント中のサンプルの数に等しいと見なされる。トリックモードは、多種多様なシナリオに適用され得る。たとえば、トリックモードは、一時的にサービスを休止すること、休止後にサービスを再開すること、ある時間期間の間巻き戻すこと、および/またはたとえば、再生が中断された後にまたは特定の所望の時間位置をシークするために所望の時間位置に進むために早送りすることのために使用され得る。時間サブシーケンスを使用してトリックモードをサポートすることにより、いくつかの利点が提供され得る。たとえば、時間サブシーケンスは、様々なフレームレートを比較的容易にサポートし得る。同様に、表現は時間サブシーケンスに制限されないので、時間サブシーケンスを含む表現は標準のプレイアウトのために使用され得る。さらに、時間サブシーケンスを用いた符号化は高効率であり得る。時間サブシーケンスはまた、新しいコーディングプロファイルまたはレベルを必要としなくてもよく、標準の表現を再使用し、追加のクライアント複雑性を回避し、単純なコンテンツプロビジョニングを可能にし、帯域幅、キャッシュ、および記憶効率を与え、異なるトリックモード動作間でユーザエクスペリエンスが共通になるように最適化するためのクライアント実装にフレキシビリティを提供することができ、広範囲のクライアント実装に適用可能であり得、シーク後の始動遅延、ならびに良好なフレームレート、反応性、および他のそのようなメトリックに関して比較的良好なユーザエクスペリエンスを提供することができる。図7は、MPD352が更新されるべきであることを示すためのMPD更新ボックス364をセグメント362A~362Dが含み得る、別の例示的なマルチメディアコンテンツ350を示す概念図である。マルチメディアコンテンツ350は、マルチメディアコンテンツ64図1、またはメモリ62に記憶された別のマルチメディアコンテンツに対応し得る。概して、MPD352は、表現360の特性、および表現360のセグメント362のURIまたはURLなど、表現360についての表現情報354を含む。場合によっては、表現360は、ライブコンテンツ、たとえば、スポーツイベントから形成され得、したがって、セグメント362のURIは事前に決定されないことがある。したがって、表現360のセグメントが形成されたとき、セグメントのうちの1つまたは複数は、MPD352が更新されるべきであることを示すためのMPD更新ボックスを含み得る。たとえば、図7において、セグメント362Aは、MPD更新ボックス364と、セグメントデータ366Aとを含む。セグメントデータ366Aは、概して、ビデオファイル150図3に従って形成され得る。ただし、セグメント362AはMPD更新ボックス364Aをも含む。このようにして、クライアントデバイス40は、MPD更新ボックス364Aのデータに基づいてMPD352を更新し得る。MPD更新ボックス364Aは、MPD352への更新を含むか、あるいはMPD352のための更新のURIまたはURLを含み得る。MPD更新ボックス364のデータは、必ずしも明示的ボックス中に含まれるとは限らないことを理解されたい。たとえば、MPD更新ボックス364のデータに実質的に準拠するデータは、セグメント362の他のボックス中に、またはセグメント362のヘッダ部分中に含まれ得る。このようにして、MPD更新情報を含むセグメント362の部分は、ヘッダ部分、MPD更新ボックス364と同様のMPD更新ボックス、あるいはセグメント362の1つまたは複数の他のボックス中に含まれるデータに対応し得る。このようにして、セグメント362Aのデータを取り出した後に、クライアントデバイス40は、MPD352を更新するためにMPD更新ボックス364Aを分析し得る。クライアントデバイス40は、次いで、MPD352の更新されたバージョンを使用してセグメント362Bおよび362Cを取り出し得る。セグメント362Bおよび362Cは、この場合も図3のビデオファイル150に従ってフォーマットされ得る、セグメントデータ366B、366Cを含む。クライアントデバイス40はまた、セグメント362Dのデータを取り出し得る。この例では、セグメント362Dは、第1の更新に実質的に準拠する方法で、クライアントデバイス40がMPD352への別の更新を実行するために使用し得る、MPD更新ボックス364Bを含む。したがって、表現360のセグメント362Dを超えてセグメントを受信するために、クライアントデバイス40は、MPD更新ボックス364Bのデータに対して実行された更新に基づいて、MPD352の新たに更新されたバージョンを使用し得る。MPD更新ボックス364A、364BなどのMPD更新ボックスは、以下の表7に記載のプロパティを含み得る。いくつかの例では、MPD更新ボックスを定義するために以下のシンタックスが使用され得る。例示的なMPD更新ボックスシンタックスのためのセマンティクスの例示的なセットを以下に与える。mpd_information_flagsは、以下のうちの0個以上の論理ORを含んでいる。0x00メディアプレゼンテーション記述が現在更新中0x01メディアプレゼンテーション記述が今後更新される0x02プレゼンテーションの終了0x03~0x07予約済みnew_location_flagが1に設定されている場合、mpd_locationにおいて指定された新しいロケーションにおいて新しいメディアプレゼンテーション記述が利用可能である。latest_mpd_update_timeは、最新のMPDのMPD発行時間からMPD更新が必要になるまでの時間をms単位で指定する。クライアントは、以後任意の時間にMPDを更新することを選択し得る。mpd_locationは、new_location_flagが設定され、新しいメディアプレゼンテーション記述のユニフォームリソースロケータを与える場合のみ、存在する。このようにして、セグメントレベルにおけるバンド内信号が、MPD302への更新を示すために使用され得る。更新は、いくつかの例では、セグメント境界において与えられ得る。すなわち、MPD更新ボックス364は、様々な例において、それぞれのセグメントの開始または終了においてのみ存在し得る。いくつかの例では、MPD更新の帯域幅が発行を提示した場合、サーバデバイス60図1は、これらの部分のみが更新されるように、いくつかのデバイス能力のためのMPDを提供し得る。その上、MPD302のMPD要素は、公開時間をMPD302の壁時計時間で与え得る。これは、MPDが発行されたときの、MPDのための一意の識別子を与え得る、一意のMPD公開時間を提供し得る。それはまた、更新プロシージャのためのアンカーを提供し得る。さらに、サーバデバイス60および/またはコンテンツ作成デバイス20は、たとえば、更新を必要としないMPD302の他の部分を変更することなしに、更新を必要とするMPD302の部分のみを更新するために、階層構造を使用してMPD更新を最適化し得る。ターゲット広告挿入など、広告挿入は、図7のものと同様のMPD更新ボックスを使用しても実行され得る。すなわち、MPD更新ボックスは、広告マルチメディアコンテンツからデータを取り出すようにクライアントデバイス40に指示するために与えられ得る。これは、ゲームのプレイを遅延させるスポーツイベント中のタイムアウトまたは他のアクション中に、また、ビデオ再生のための刺激的なアクションのタイムアウトまたは遅延中に生じ得る。そのようなイベントはいくぶんランダムに発生し得るので、広告が挿入されるべき時間はアプリオリに知られないことがある。MPD302の更新は、セグメントの配信に対して非同期方式で実現可能であり得る。サーバデバイス60は、MPDが特定の時間量の間更新されないことをクライアントデバイス40に対して保証し得る。ただし、サーバデバイス60は、MPDが最小更新期間の前にいつ更新されるかを明示的にシグナリングする必要はない。クライアントデバイスは異なるMPD更新インスタンス上で動作し得るので、完全に同期しているプレイアウトはほとんど達成され得ない。したがって、クライアントはドリフトを経験し得る。サーバデバイス60および/またはコンテンツ作成デバイス20によって時間シフト閲覧が与えられ得る。図8は、サーバデバイスによって表現グループの指示を与えることと、クライアントデバイスによって表現グループを選択し、ならびに選択された表現グループ内の個々の表現を選択することとを行うための例示的な方法を示すフローチャートである。図8の方法についてサーバデバイス60およびクライアントデバイス40に関して説明するが、他のデバイスが図8の方法の技法と類似の技法を実装し得ることを理解されたい。たとえば、コンテンツ作成デバイス20、あるいはコンテンツ配信ネットワークの1つまたは複数のネットワークデバイスが、サーバデバイス60による機能の一部または全部を実行し得る。サーバデバイス60は、初めに、マルチメディアコンテンツの表現のセットについてのデータを取得たとえば、作成するか、またはコンテンツ作成デバイス20から受信し得、セット中の表現は、1つまたは複数の共通の特性、ならびにマルチメディアコンテンツのマニフェストファイルを有する。表現のセットは表現グループに対応し得る。サーバデバイス60は、表現グループの指示をクライアントデバイス40に与える400。たとえば、サーバデバイス60は、MPD202図4またはMPD部分252図5をクライアントデバイス40に与え得る。図2、図6、および図7の他の例示的なMPDも、表現グループXML要素など、表現グループの指示を含み得る。いずれの場合も、クライアントデバイス40は、たとえば、サーバデバイス60から受信されたMPDファイルまたはMPDファイルの部分から、表現グループ特性を記述する情報を受信する402。クライアントデバイス40は、次いで、クライアントデバイス40が、取出し、復号、またはレンダリングすることを選択することができないかまたは選択しないであろう表現グループを除去するために、表現グループ特性を分析し得る。たとえば、クライアントデバイス40は、不適切な表現グループを判断するために復号およびレンダリング能力を表現グループの特性と比較し得る。別の例として、クライアントデバイス40は、望ましくない表現グループを除去するために、たとえば、特定のカメラアングルを有する2つ以上のビューによって与えられる言語、レーティング、および深度の量についてのユーザ選好を比較し得る。クライアントデバイス40は、次いで、クライアントデバイス40の復号およびレンダリング能力に少なくとも部分的に基づいて適切な表現グループを選択する404。もちろん、この選択はまた追加または代替として、上記で説明したように、ユーザ選好に基づいて行われ得ることを理解されたい。このようにして、クライアントデバイス40は、表現のセットについての共通の特性に基づいて表現のセットを選択し得る。表現グループを選択した後に、クライアントデバイス40は、表現グループの表現を特に記述するMPD部分についてのデータを要求し得る。それに応答して、サーバデバイス60は、選択された表現グループにおいて、個々の表現特性の中でも、表現ビットレートの指示をクライアントデバイス40に与える406。たとえば、サーバデバイス60は、表現グループ260図5のMPD部分のうちの特定の1つについてのデータをクライアントデバイス40に送り得る。他の例では、クライアントデバイス40は、マルチメディアコンテンツについての全MPDたとえば、図4のMPD202をすでに受信していることがあるが、選択された表現グループに特に対応するMPDの部分を特に分析し得る。このようにして、いくつかの例では、図8のステップ406は、ステップ402および/またはステップ404より前に行われ得る。いずれの場合も、表現のビットレートを含む、選択された表現グループの表現に固有の特性を受信した後に408、クライアントデバイス40は、ネットワーク帯域幅の現在利用可能な量を判断する410。クライアントデバイス40は、次いで、選択された表現が、ネットワーク帯域幅の判断された現在利用可能な量によって適応され得るビットレートを有するように、選択された表現グループから表現を選択する412。表現のビットレートは、表現グループ中の個々の表現のコーディング特性の例を表す。クライアントデバイス40は、次いで、選択された表現のデータを要求する414。たとえば、クライアントデバイス40は、選択された表現のセグメントを要求するためのHTTPGET要求を構築し得るたとえば、生成し、送る。代替的に、クライアントデバイス40は、選択された表現のセグメントのバイト範囲を指定するHTTP部分GETを構築し得る。いずれの場合も、クライアントデバイス40は要求をサーバデバイス60にサブミットし得る。サーバデバイス60は、要求を受信し、それに応答して、要求されたデータをクライアントデバイス40に送る416。たとえば、要求処理ユニット70は、受信された要求のデータ、たとえば、受信された要求のソースインターネットプロトコルIPアドレスおよびソースポートからクライアントデバイス40のネットワークアドレスを判断し得る。要求処理ユニット70は、要求されたデータを含むネットワークパケットを形成し、たとえば、クライアントデバイス40の判断されたIPアドレスに宛てられた、要求されたデータをクライアントデバイス40に送り得る。要求されたデータを受信した後、クライアントデバイス40は、受信されたデータを復号し、表示することを開始する418。要求されたデータを受信している間、クライアントデバイス40は、現在利用可能なネットワーク帯域幅を分析することと、ネットワーク帯域幅の現在利用可能な量によって適応され得るビットレートを有する表現からの要求をサブミットすることとを続け得る410~414。ネットワーク帯域幅の量が変化した場合、クライアントデバイス40は、選択された表現グループ中の異なる表現に適応的に切り替わり得る。たとえば、クライアントデバイス40は、表現グループ中の前の表現から要求された最後のセグメントの時間ロケーションに対応する新しい表現中のセグメントを判断し、次いで、新しい表現中のその判断されたセグメントまたはそれの部分を要求し得る。いくつかの例では、サーバデバイス60は、図8の方法の間に、ターゲット広告挿入に対応するMPDをクライアントデバイス40に与え得る。MPDは、クライアントデバイス40に、クライアントデバイス40のユーザをターゲットにした広告マルチメディアデータを取り出させ得る。いくつかの例では、クライアントデバイス40はさらに、広告メディアデータをクライアントデバイス40のユーザにターゲットにするためのユーザ情報をサーバデバイス60に提供し得る。ユーザ情報は、ユーザ選好、ユーザ識別情報ユーザIDなど、ユーザ人口統計学的情報、または他のそのような情報を含み得る。ターゲット広告挿入は、たとえば、図8のステップ400より前に、またはステップ418の後に、および、たとえば、マルチメディアコンテンツの後続の期間について後続の表現を選択する前に行われ得る。このように、図8の方法は、マルチメディアコンテンツのマニフェストファイルの少なくとも部分を分析することであって、マニフェストファイルの部分が、マルチメディアコンテンツの表現のセットを示す情報と、表現のセットの各々についての共通の特性を示す情報とを含む、分析することと、表現のセットのうちの1つについての共通の特性に基づいて表現のセットのうちの1つを選択することと、セットのうちの1つの表現のうちの1つの1つまたは複数のコーディング特性に基づいて、表現のセットのうちの選択された1つの表現のうちの1つを選択することと、選択に基づいて表現のうちの1つのデータについての要求を生成することとを含む方法の一例を表す。同様に、図8の方法は、1つまたは複数の共通の特性を有するマルチメディアコンテンツの表現のセットを取得することであって、セット中の表現の各々が、共通の特性とは別個の個々のコーディング特性を有する、取得することと、マルチメディアコンテンツのマニフェストファイルを取得することであって、マニフェストファイルが、セット中の表現を示す情報と、表現のセットについての共通の特性を示す情報と、セット中の表現の各々についてのコーディング特性を示す情報とを含む、取得することと、マニフェストファイルの少なくとも部分をクライアントデバイスに送ることとを含む方法の一例を表す。図9は、サーバデバイスによってトリックモードを表すデータを与えることと、マルチメディアコンテンツのトリックモードデータを取り出し、再生するためにクライアントデバイスによってそのデータを使用することとを行うための例示的な方法を示すフローチャートである。図9の方法についてサーバデバイス60およびクライアントデバイス40に関して説明するが、他のデバイスが図9の方法の技法と類似の技法を実装し得ることを理解されたい。たとえば、コンテンツ作成デバイス20、あるいはコンテンツ配信ネットワークの1つまたは複数のネットワークデバイスが、サーバデバイス60による機能の一部または全部を実行し得る。その上、トリックモードの選択は、上記の図8に関して説明したように、表現グループおよび表現グループからの表現の選択と併せて実行され得る。サーバデバイス60は、初めに、マルチメディアコンテンツの1つまたは複数の表現についてのデータを取得たとえば、作成するか、またはコンテンツ作成デバイス20から受信し得、表現のうちの少なくとも1つは、時間サブシーケンス、ならびにマルチメディアコンテンツのマニフェストファイルを含む。マニフェストファイルは、表現が時間サブシーケンスを含むことを示し得る。サーバデバイス60は、マルチメディアコンテンツの表現の指示、たとえば、表現の特性をクライアントデバイス40に与える430。さらに、サーバデバイス60は、表現のうちの1つまたは複数の時間サブシーケンスの指示を与える432。すなわち、サーバデバイス60は、マルチメディアコンテンツの1つまたは複数の表現のために時間サブシーケンスが利用可能であることを示すマルチメディアコンテンツについての情報をMPDファイル中で与え得る。たとえば、サーバデバイス60は、上の図6に関して説明したように、時間サブシーケンスサブ要素を有するトリックモード要素を含むMPDの少なくとも部分をクライアントデバイス40に提供し得る。クライアントデバイス40は、マルチメディアコンテンツの表現の特性に基づいて表現を選択する434。クライアントデバイス40は必ずしも時間サブシーケンスをもつ表現を選択する必要はないが、これらの技法を示す説明のために、例として、クライアントデバイス40は、時間サブシーケンスが利用可能である表現を選択すると仮定する。クライアントデバイス40は、次いで、トリックモードを使用するようにとの要求を受信する436。たとえば、クライアントデバイス40は、たとえば、クライアントデバイス40のユーザから、再生をそこから開始すべき特定の時間ロケーションの選択を受信し得る。代替的に、クライアントデバイス40は、ビデオデータを早送りまたは早戻しせよという要求を受信し得る。トリックモードを使用するようにとの要求に応答して、クライアントデバイス40は、表現のための時間サブシーケンスが利用可能であるかどうかを判断し、利用可能である場合、時間サブシーケンスの少なくとも部分を取り出すためのデータを要求する438。サーバデバイス60は、時間サブシーケンスについてのデータのロケーションの指示をクライアントデバイス40に与えることによってその要求に応答する440。いくつかの例では、マルチメディアコンテンツについてのMPDの部分が、時間サブシーケンスについてのデータのロケーションを示し得る。他の例では、クライアントデバイス40は、対応する表現のセグメントにサブフラグメントインデックスボックスおよび/またはサブトラックフラグメントボックスを要求し得る。いずれの場合も、クライアントデバイス40は、時間サブシーケンスについてのデータのロケーションを示す情報を含む受信データを使用して、指定されたロケーションに時間サブシーケンスのデータを要求する442。たとえば、クライアントデバイス40は、IDRランダムアクセスポイントおよび/またはODRランダムアクセスポイントを含むロケーションたとえば、セグメントのURL、および、場合によってはセグメントのバイト範囲を判断し得る。クライアントデバイス40は、次いで、トリックモードに従ってビデオデータを再生するために、時間サブシーケンスのデータについてのHTTPGETまたは部分GET要求を構築し得る。クライアントデバイス40からHTTPGETおよび/または部分GET要求を受信した後に、サーバデバイス60は、要求されたデータをクライアントデバイス40に与える444。たとえば、サーバデバイス60は、HTTPGET要求に応答してセグメントを送るか、あるいはHTTP部分GET要求に応答してセグメントのメディアフラグメントまたはメディアフラグメントの部分を送り得る。要求されたデータを受信した後に、クライアントデバイス40は、受信されたデータを復号し、表示する446。同様に、クライアントデバイス40は、その表現または利用可能なネットワーク帯域幅の量が変化した場合は異なる表現にデータを要求し続け得る。このように、図9の方法は、マルチメディアコンテンツのマニフェストファイルの情報を分析することであって、マルチメディアコンテンツの少なくとも1つの表現が時間サブシーケンスを含むことをマニフェストファイルの情報が示す、分析することと、時間サブシーケンスについてのデータの1つまたは複数のロケーションを判断することと、時間サブシーケンスについてのデータについての1つまたは複数の要求をサブミットすることとを含む方法の一例を表す。同様に、図9の方法は、時間サブシーケンスを含むマルチメディアコンテンツの少なくとも1つの表現についてのデータを取得することと、マルチメディアコンテンツのマニフェストファイルについてのデータを取得することであって、マルチメディアコンテンツの少なくとも1つの表現が時間サブシーケンスを含むことをマニフェストファイルの情報が示す、取得することと、マニフェストファイルの少なくとも部分をクライアントデバイスに送ることとを含む方法の一例を表す。図10は、MPDなどのマニフェストファイルが更新されるべきであるという指示をサーバデバイスによって与えることと、クライアントデバイスによってMPDを更新することとを行うための例示的な方法を示すフローチャートである。図10の方法についてサーバデバイス60およびクライアントデバイス40に関して説明するが、他のデバイスが図10の方法の技法と類似の技法を実装し得ることを理解されたい。たとえば、コンテンツ作成デバイス20、あるいはコンテンツ配信ネットワークの1つまたは複数のネットワークデバイスが、サーバデバイス60による機能の一部または全部を実行し得る。その上、MPDの更新は、上の図8および図9に関して説明したように、トリックモードの選択、および/または表現グループおよび表現グループからの表現の選択と併せて実行され得る。いくつかの例では、コンテンツ作成デバイス20が、スポーツイベントなどのライブイベント中にキャプチャされた符号化ビデオデータを符号化し、カプセル化し得る。このようにして、クライアントデバイス40は、イベントが行われているときにほぼリアルタイムでイベントのコード化データを取り出し得る。初めに、サーバデバイス60は、ライブイベントに対応するマルチメディアコンテンツの1つまたは複数の表現を受信し、マルチメディアコンテンツの表現についての特性の指示をMPD中で与える460。マルチメディアコンテンツは、イベントがライブ撮影されているものとして形成されていることにより、MPDは、マルチメディアコンテンツの特定の時間ロケーションまでのセグメントの特性およびロケーションのみを記述し得る。クライアントデバイス40は、MPDの情報を使用して表現を選択する462。現在のMPDを使用して、クライアントデバイス40は、たとえば、時間ロケーションまでの、選択された表現のセグメントを要求し得る。それに応答して、サーバデバイス60は、要求されたセグメントを送り得る。ただし、さらに、サーバデバイス60は、MPDがそのセグメントから更新されるべきであることを示すMPD更新ボックスまたは他の情報を含むセグメントを送り得る466。それに応答して、クライアントデバイス40は、受信されたセグメントのうちの1つまたは複数のデータを復号し、表示する468。クライアントデバイス40はまた、MPDが更新されるべきであることを示す情報を受信する470。たとえば、クライアントデバイス40は、MPDがもはや適用されない時間ロケーションの前に最後のセグメントを受信し得る。クライアントデバイス40は、最後のセグメントが、図7に関して説明したMPD更新ボックスと同様のMPD更新ボックスを含むと判断し得る。更新ボックスを使用して、クライアントデバイス40はMPDへの更新を要求する472。たとえば、クライアントデバイス40は、MPDのための更新のネットワークロケーションを判断し、その判断されたロケーションに更新を要求し得る。サーバデバイス60、またはMPDへの更新を記憶している別のデバイスたとえば、コンテンツ作成デバイス20は、MPDへの更新を示す情報を送り474、クライアントデバイス40はその情報を使用してMPDを更新する476。代替的に、いくつかの例では、MPD更新ボックスは、MPD更新自体を示す情報を含み得、その場合、クライアントデバイス40は、MPD更新ボックスの情報を使用してMPDを更新し得る。いずれの場合も、クライアントデバイス40は、次いで、MPDの更新されたバージョンを使用して、前のMPDがもはや適用されない時間ロケーションに続くセグメントを要求する478。クライアントデバイス40およびサーバデバイス60は、クライアントデバイス40がマルチメディアコンテンツの再生を完了するまで同様のステップを実行することを続け得る。いくつかの例では、図10の方法と同様の技法が、ターゲット広告挿入を実行するために使用され得る。たとえば、更新されたMPDは、広告メディアコンテンツに対応する部分を含み得る。クライアントデバイス40は、所望のメディアコンテンツの後続のメディアデータを取り出すための別の更新されたMPDを含み得る、広告メディアコンテンツの1つまたは複数のセグメントのデータを受信するために、更新されたMPDに基づいて、広告メディアコンテンツのデータを取り出し、再生するように要求され得る。このように、図10の方法は、クライアントデバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第1のセグメントのデータを取り出すことと、マニフェストファイルに従って表現の第2のセグメントの部分を取り出すことであって、第2のセグメントが表現中の第1のセグメントの後に存在し、マニフェストファイルが更新されるべきであることを第2のセグメントの部分が示す、取り出すことと、マニフェストファイルが更新されるべきであるという指示に基づいて、クライアントデバイスによって記憶されたマニフェストファイルのコピーを更新することと、更新されたマニフェストファイルに従って第2のセグメントのメディアデータを取り出すこととを含む方法の一例を表す。同様に、図10の方法は、マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送ることであって、マニフェストファイルが、マルチメディアコンテンツの表現の第1のセグメントを示す情報を含む、送ることと、クライアントデバイスからの要求に応答して、表現の第1のセグメントの少なくとも部分をクライアントデバイスに送ることであって、マニフェストファイルが更新されるべきであることを第1のセグメントの部分が示し、マニフェストファイルの更新されたバージョンが、表現の第2の異なるセグメントを示す情報を含む、送ることと、クライアントデバイスから受信され、更新されたマニフェストファイルに従って形成される要求に応答して、第2のセグメントのデータをクライアントデバイスに送ることとを含む方法の一例を表す。図11は、エクスペリエンス品質QoE報告ドキュメントのデータを構築し、使用するための例示的な方法を示すフローチャートである。図11の方法についてサーバデバイス60およびクライアントデバイス40に関して説明するが、他のデバイスが図11の方法の技法と類似の技法を実装し得ることを理解されたい。たとえば、コンテンツ作成デバイス20、あるいはコンテンツ配信ネットワークの1つまたは複数のネットワークデバイスが、サーバデバイス60による機能の一部または全部を実行し得る。その上、サーバデバイス60および/またはコンテンツ作成デバイス20にQoE報告を与えることは、上記の図8、図9、および図10に関して説明したように、MPDの更新、トリックモードの選択、および/または表現グループおよび表現グループからの表現の選択のうちのいずれかまたはすべてと併せて実行され得る。初めに、サーバデバイス60は、マルチメディアコンテンツの表現の特性の指示をクライアントデバイス40へのMPD中で与える500。上記で説明したように、クライアントデバイス40は、たとえば、クライアントデバイス40の復号および/またはレンダリング能力、ユーザ選好、利用可能なネットワーク帯域幅、および/またはマルチメディアコンテンツの表現の他の特性に基づいて、表現を選択する502。クライアントデバイス40は、次いで、選択された表現のうちの1つまたは複数のセグメントを要求する504。サーバデバイス60は、要求されたセグメントをクライアントデバイス40に送る506。要求されたセグメントを受信した後に、クライアントデバイス40は、受信されたデータを復号し、表示する508。クライアントデバイス40は、次いで、すべてのビデオデータが受信されたかどうかを判断する510。表現の最後のセグメントまたは全体的にマルチメディアコンテンツが受信されていない場合510のNO分岐、クライアントデバイス40は、ネットワーク帯域幅の現在利用可能な量を再び評価し、この分析に基づいて表現を選択し502、表現のセグメントを要求する504。概して、クライアントデバイス40は、現在利用可能なネットワーク帯域幅によって適応され得る表現にマルチメディアコンテンツのデータを要求することによって、データをバッファし、バッファオーバーフローおよびアンダーフローを回避することを試み得る。しかしながら、たとえば、マルチメディアコンテンツの実際のコーディング特性が、シグナリングされたコーディング特性に一致しなかった場合、またはクライアントデバイス40が適切な選択を行うためのデータが十分になかった場合、バッファオーバーフローまたはアンダーフローが時々起こり得る。他の要因も、クライアントデバイス40のユーザのためのエクスペリエンス品質の低減を生じ得る。したがって、表現の最後のセグメントまたはマルチメディアコンテンツが受信され、適切に復号された後に510のYES分岐、クライアントデバイス40は、サーバデバイス60にエクスペリエンス品質QoE報告を与え得る。たとえば、クライアントデバイス40は、選択されたセグメントおよび表現の指示を含むように報告を構築する512。クライアントデバイス40はまた、メディア再生の休止を生じ得る、バッファオーバーフロー/アンダーフローの発生を記録し得る。クライアントデバイス40は、プレイアウトされたPeriodを表す、PeriodReport要素のシーケンスを含む報告を形成し得る。Period要素はRepresentationReport要素のシーケンスを含み得、RepresentationReport要素の各々は、Representationの部分の連続プレイアウトを表し、開始時間および終了時間を実時間とプレゼンテーション時間の両方で与える。報告はまた、コンテンツの閲覧とプレイアウトの開始とについてのユーザ要求からの時間である、初期始動時間を含み得る。このようにして、報告ドキュメントは、クライアントデバイスがそこからマルチメディアコンテンツのメディアデータを取り出したマルチメディアコンテンツの表現を示す拡張可能マークアップ言語XMLフォーマット電子ドキュメントを備え得る。クライアントデバイス40は、報告を、サーバデバイス60、あるいはコンテンツ作成デバイス20または専用報告収集デバイスなど、コンテンツ配信ネットワークの別のデバイスに与え得る。このようにして、サーバデバイス60は、クライアントデバイス40によって受信されたセグメントおよび表現の指示を受信する514。サーバデバイス60は、次いで、コンテンツ作成を改善するために、この指示を、たとえば、コンテンツ作成デバイス20、あるいはサービスプロバイダまたはメディアアセンブラに関連する別のデバイスに与える516。クライアントデバイス40によって提供された情報から、サービスプロバイダは、正確に何がプレイアウトされたか、プレイアウト中にいつ休止があったか、および表現間の切替えがいつあったかを判断し得る。代替または追加として、クライアントデバイス40は、休止の数ならびに休止持続時間の平均および分散とともに、総プレイアウト持続時間、および表現ごとの別個の連続プレイアウト期間の数の形態で概要情報を提供し得る。このデータを使用して、サービスプロバイダは、適応HTTPストリーミングを使用するストリーミングのための新しい1つのメディアコンテンツのエクスペリエンス品質情報を分析し得る。サービスプロバイダは、利用可能な異なるビットレートでいくつかの異なる表現を作り、メディアファイルをホストするためのHTTPサービングインフラストラクチャを提供し、次いで、フィードバックを収集してユーザの閲覧エクスペリエンスの品質を判断し得る。サービスプロバイダは、このデータを使用して、このまたは将来のメディアコンテンツホスティングのサービス品質を改善し得る。エクスペリエンス品質メトリックは、ユーザが経験する実際の閲覧を指し得、HTTP要求のスケジューリング、表現選択決定などのために使用されるクライアントアルゴリズムとは無関係であり得る。このようにして、サービスプロバイダは、特定の閲覧セッションについてユーザの閲覧エクスペリエンスの品質の比較的正確な記述を取得し得る。このように、図11の方法は、メディアデータがそこから取り出されたマルチメディアコンテンツの表現を示す情報を含むドキュメントを構築することと、メディアデータがそこから取り出された、構築されたドキュメントをサーバに送ることとを含む方法の一例を表す。図11の方法はまた、クライアントデバイスがそこからマルチメディアコンテンツのメディアデータを取り出した、マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを受信することを備える、クライアントデバイスによって取り出されたデータを示す情報を受信することを含む方法の一例を表す。1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従ってある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体など、有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、1非一時的である有形コンピュータ可読記憶媒体、あるいは2信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。さらに、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスクdiskおよびディスクdiscは、コンパクトディスクdiscCD、レーザディスクdisc、光ディスクdisc、デジタル多用途ディスクdiscDVD、フロッピー登録商標ディスクdiskおよびブルーレイ登録商標ディスクdiscを含み、ディスクdiskは、通常、データを磁気的に再生し、ディスクdiscは、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。命令は、1つまたは複数のデジタル信号プロセッサDSPなどの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路ASIC、フィールドプログラマブル論理アレイFPGA、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用するプロセッサという用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に提供され得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。本開示の技法は、ワイヤレスハンドセット、集積回路ICまたはICのセットたとえば、チップセットを含む、多種多様なデバイスまたは装置において実施され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明したように1つまたは複数のプロセッサを含んで、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。