(57)【特許請求の範囲】
【請求項１】
マルチメディアデータを取り出す方法であって、前記方法は、
クライアントデバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第１のセグメントのデータを取り出すことであって、前記第１のセグメントの前記データが前記マルチメディアコンテンツの期間に対応する、取り出すことと、
前記マニフェストファイルに従って前記表現の第２のセグメントの部分を取り出すことであって、前記第２のセグメントのデータは、前記第１のセグメントの前記データが対応する前記期間に対応し、前記第２のセグメントが前記表現中の前記第１のセグメントの後に存在し、前記マニフェストファイルが更新されるべきであることを前記第２のセグメントの前記部分が示す、取り出すことと、
前記マニフェストファイルが更新されるべきであるという前記指示に基づいて、前記クライアントデバイスによって記憶された前記マニフェストファイルの前記コピーを更新することと、
前記更新されたマニフェストファイルに従って前記第２のセグメントのメディアデータを取り出すことと
を備える、方法。
【請求項２】
前記マニフェストファイルを更新することが、前記第２のセグメントの前記部分のデータを使用して前記マニフェストファイルを更新することを備える、請求項１に記載の方法。
【請求項３】
前記マニフェストファイルを更新することが、前記第２のセグメントの前記部分中に示されたロケーションから前記マニフェストファイルを更新するためのデータを取り出すことを備える、請求項１に記載の方法。
【請求項４】
前記マニフェストファイルを更新することが、
更新されるべきである前記マニフェストファイルの１つまたは複数の要素を判断することと、
前記マニフェストファイルの前記判断された１つまたは複数の要素のみを更新することと
を備える、請求項１に記載の方法。
【請求項５】
前記マルチメディアコンテンツの第２の異なる表現からメディアデータを取り出すことと、
前記第１の表現と前記第２の表現とから取り出された前記データを示す情報を送ることと
をさらに備える、請求項１に記載の方法。
【請求項６】
メディアデータがそこから取り出された、前記第１の表現と前記第２の表現とを含む、前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを構築すること
をさらに備え、
取り出された前記データを示す前記情報を送ることが、前記メディアデータがそこから取り出された前記構築されたドキュメントをサーバに送ることを備える、
請求項５に記載の方法。
【請求項７】
マルチメディアデータを取り出すためのデバイスであって、前記デバイスは、前記デバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第１のセグメントのデータを取り出すことであって、前記第１のセグメントの前記データが前記マルチメディアコンテンツの期間に対応する、取り出すことと、前記マニフェストファイルに従って前記表現の第２のセグメントの部分を取り出すことであって、前記第２のセグメントのデータは、前記第１のセグメントの前記データが対応する前記期間に対応し、前記第２のセグメントが前記表現中の前記第１のセグメントの後に存在し、前記マニフェストファイルが更新されるべきであることを前記第２のセグメントの前記部分が示す、取り出すことと、前記マニフェストファイルが更新されるべきであるという前記指示に基づいて、前記デバイスによって記憶された前記マニフェストファイルの前記コピーを更新することと、前記更新されたマニフェストファイルに従って前記第２のセグメントのメディアデータを取り出すこととを行うように構成された１つまたは複数のプロセッサを備える、デバイス。
【請求項８】
前記マニフェストファイルを更新するために、前記１つまたは複数のプロセッサが、前記第２のセグメントの前記部分のデータを使用して前記マニフェストファイルを更新するように構成された、請求項７に記載のデバイス。
【請求項９】
前記マニフェストファイルを更新するために、前記１つまたは複数のプロセッサが、前記第２のセグメントの前記部分中に示されたロケーションから前記マニフェストファイルを更新するためのデータを取り出すように構成された、請求項７に記載のデバイス。
【請求項１０】
前記マニフェストファイルを更新するために、前記１つまたは複数のプロセッサが、更新されるべきである前記マニフェストファイルの１つまたは複数の要素を判断することと、前記マニフェストファイルの前記判断された１つまたは複数の要素のみを更新することとを行うように構成された、請求項７に記載のデバイス。
【請求項１１】
前記１つまたは複数のプロセッサが、前記マルチメディアコンテンツの第２の異なる表現からメディアデータを取り出すことと、前記第１の表現と前記第２の表現とから取り出された前記データを示す情報を送ることとを行うようにさらに構成された、請求項７に記載のデバイス。
【請求項１２】
前記１つまたは複数のプロセッサは、メディアデータがそこから取り出された、前記第１の表現と前記第２の表現とを含む、前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを構築するようにさらに構成され、取り出された前記データを示す前記情報を送るために、前記１つまたは複数のプロセッサは、前記メディアデータがそこから取り出された前記構築されたドキュメントをサーバに送るように構成された、請求項１１に記載のデバイス。
【請求項１３】
前記デバイスが、
集積回路と、
マイクロプロセッサと、
前記１つまたは複数のプロセッサを含むワイヤレス通信デバイスと
のうちの少なくとも１つを備える、請求項７に記載のデバイス。
【請求項１４】
マルチメディアデータを取り出すためのデバイスであって、前記デバイスは、
前記デバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第１のセグメントのデータを取り出すための手段であって、前記第１のセグメントの前記データが前記マルチメディアコンテンツの期間に対応する、取り出すための手段と、
前記マニフェストファイルに従って前記表現の第２のセグメントの部分を取り出すための手段であって、前記第２のセグメントのデータは、前記第１のセグメントの前記データが対応する前記期間に対応し、前記第２のセグメントが前記表現中の前記第１のセグメントの後に存在し、前記マニフェストファイルが更新されるべきであることを前記第２のセグメントの前記部分が示す、取り出すための手段と、
前記マニフェストファイルが更新されるべきであるという前記指示に基づいて前記デバイスによって記憶された前記マニフェストファイルの前記コピーを更新するための手段と、
前記更新されたマニフェストファイルに従って前記第２のセグメントのメディアデータを取り出すための手段と
を備える、デバイス。
【請求項１５】
前記マニフェストファイルを更新することが、前記第２のセグメントの前記部分のデータを使用して前記マニフェストファイルを更新することを備える、請求項１４に記載のデバイス。
【請求項１６】
前記マニフェストファイルを更新することが、前記第２のセグメントの前記部分中に示されたロケーションから前記マニフェストファイルを更新するためのデータを取り出すことを備える、請求項１に記載のデバイス。
【請求項１７】
前記マニフェストファイルを更新するための前記手段が、
更新されるべきである前記マニフェストファイルの１つまたは複数の要素を判断するための手段と、
前記マニフェストファイルの前記判断された１つまたは複数の要素のみを更新するための手段と
を備える、請求項１４に記載のデバイス。
【請求項１８】
前記マルチメディアコンテンツの第２の異なる表現からメディアデータを取り出すための手段と、
前記第１の表現と前記第２の表現とから取り出された前記データを示す情報を送るための手段と
をさらに備える、請求項１４に記載のデバイス。
【請求項１９】
メディアデータがそこから取り出された、前記第１の表現と前記第２の表現とを含む、前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを構築するための手段
をさらに備え、
取り出された前記データを示す前記情報を送るための前記手段が、前記メディアデータがそこから取り出された前記構築されたドキュメントをサーバに送るための手段を備える、
請求項１８に記載のデバイス。
【請求項２０】
実行されたとき、
マルチメディアデータを取り出すためのデバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第１のセグメントのデータを取り出すことであって、前記第１のセグメントの前記データが前記マルチメディアコンテンツの期間に対応する、取り出すことと、
前記マニフェストファイルに従って前記表現の第２のセグメントの部分を取り出すことであって、前記第２のセグメントのデータは、前記第１のセグメントの前記データが対応する前記期間に対応し、前記第２のセグメントが前記表現中の前記第１のセグメントの後に存在し、前記マニフェストファイルが更新されるべきであることを前記第２のセグメントの前記部分が示す、取り出すことと、
前記マニフェストファイルが更新されるべきであるという前記指示に基づいて、前記デバイスによって記憶された前記マニフェストファイルの前記コピーを更新することと、
前記更新されたマニフェストファイルに従って前記第２のセグメントのメディアデータを取り出すことと
を、前記デバイスのプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体
【請求項２１】
前記マニフェストファイルを更新することを前記プロセッサに行わせる前記命令が、前記第２のセグメントの前記部分のデータを使用して前記マニフェストファイルを更新することを前記プロセッサに行わせる命令を備える、請求項２０に記載のコンピュータ可読記憶媒体。
【請求項２２】
前記マニフェストファイルを更新することを前記プロセッサに行わせる前記命令が、前記第２のセグメントの前記部分中に示されたロケーションから前記マニフェストファイルを更新するためのデータを取り出すことを前記プロセッサに行わせる命令を備える、請求項２０に記載のコンピュータ可読記憶媒体。
【請求項２３】
前記マニフェストファイルを更新することを前記プロセッサに行わせる前記命令が、
更新されるべきである前記マニフェストファイルの１つまたは複数の要素を判断することと、
前記マニフェストファイルの前記判断された１つまたは複数の要素のみを更新することと
を前記プロセッサに行わせる命令を備える、請求項２０に記載のコンピュータ可読記憶媒体。
【請求項２４】
前記マルチメディアコンテンツの第２の異なる表現からメディアデータを取り出すことと、
前記第１の表現と前記第２の表現とから取り出された前記データを示す情報を送ることと
を前記プロセッサに行わせる命令をさらに備える、請求項２０に記載のコンピュータ可読記憶媒体。
【請求項２５】
メディアデータがそこから取り出された、前記第１の表現と前記第２の表現とを含む、前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを構築すること
を前記プロセッサに行わせる命令をさらに備え、
取り出された前記データを示す前記情報を送ることを前記プロセッサに行わせる前記命令が、前記メディアデータがそこから取り出された前記構築されたドキュメントをサーバに送ることを前記プロセッサに行わせる命令を備える、
請求項２４に記載のコンピュータ可読記憶媒体。
【請求項２６】
マルチメディアデータについての情報を送る方法であって、前記方法は、
マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送ることであって、前記マニフェストファイルが、前記マルチメディアコンテンツの表現の第１のセグメントを示す情報を含み、前記第１のセグメントのデータが前記マルチメディアコンテンツの期間に対応する、送ることと、
前記クライアントデバイスからの要求に応答して、前記表現の前記第１のセグメントの少なくとも部分を前記クライアントデバイスに送ることであって、前記マニフェストファイルが更新されるべきであることを前記第１のセグメントの前記部分が示し、前記マニフェストファイルの更新されたバージョンが、前記表現の第２の異なるセグメントを示す情報を含み、前記第２のセグメントのデータは、前記第１のセグメントの前記データが対応する前記期間に対応する、送ることと、
前記クライアントデバイスから受信され、前記更新されたマニフェストファイルに従って形成される要求に応答して、前記第２のセグメントのデータを前記クライアントデバイスに送ることと
を備える、方法。
【請求項２７】
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示す情報を含む、請求項２６に記載の方法。
【請求項２８】
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示すデータのロケーションを示す情報を含む、請求項２６に記載の方法。
【請求項２９】
前記クライアントデバイスによって取り出された前記マルチメディアコンテンツのデータを示す情報を受信することをさらに備える、請求項２６に記載の方法。
【請求項３０】
前記クライアントデバイスによって取り出された前記データを示す前記情報を受信することは、前記クライアントデバイスがそこから前記マルチメディアコンテンツのメディアデータを取り出した前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを受信することを備える、請求項２９に記載の方法。
【請求項３１】
マルチメディアデータについての情報を送るためのデバイスであって、前記デバイスは、マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送ることであって、前記マニフェストファイルが、前記マルチメディアコンテンツの表現の第１のセグメントを示す情報を含み、前記第１のセグメントの前記データが前記マルチメディアコンテンツの期間に対応する、送ることと、前記クライアントデバイスからの要求に応答して、前記表現の前記第１のセグメントの少なくとも部分を前記クライアントデバイスに送ることであって、前記マニフェストファイルが更新されるべきであることを前記第１のセグメントの前記部分が示し、前記マニフェストファイルの更新されたバージョンが、前記表現の第２の異なるセグメントを示す情報を含み、前記第２のセグメントのデータは、前記第１のセグメントの前記データが対応する前記期間に対応する、送ることと、前記クライアントデバイスから受信され、前記更新されたマニフェストファイルに従って形成される要求に応答して、前記第２のセグメントのデータを前記クライアントデバイスに送ることとを行うように構成された１つまたは複数のプロセッサを備える、デバイス。
【請求項３２】
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示す情報を含む、請求項３１に記載のデバイス。
【請求項３３】
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示すデータのロケーションを示す情報を含む、請求項３１に記載のデバイス。
【請求項３４】
前記１つまたは複数のプロセッサが、前記クライアントデバイスによって取り出された前記マルチメディアコンテンツのデータを示す情報を受信するように構成された、請求項３１に記載のデバイス。
【請求項３５】
前記クライアントデバイスによって取り出された前記データを示す前記情報は、前記クライアントデバイスがそこから前記マルチメディアコンテンツのメディアデータを取り出した前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを受信することを備える、請求項３４に記載のデバイス。
【請求項３６】
前記デバイスが、
集積回路と、
マイクロプロセッサと、
前記１つまたは複数のプロセッサを含むワイヤレス通信デバイスと
のうちの少なくとも１つを備える、請求項３１に記載のデバイス。
【請求項３７】
マルチメディアデータについての情報を送るためのデバイスであって、前記デバイスは、
マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送るための手段であって、前記マニフェストファイルが、前記マルチメディアコンテンツの表現の第１のセグメントを示す情報を含み、前記第１のセグメントの前記データが前記マルチメディアコンテンツの期間に対応する、送るための手段と、
前記クライアントデバイスからの要求に応答して、前記表現の前記第１のセグメントの少なくとも部分を前記クライアントデバイスに送るための手段であって、前記マニフェストファイルが更新されるべきであることを前記第１のセグメントの前記部分が示し、前記マニフェストファイルの更新されたバージョンが、前記表現の第２の異なるセグメントを示す情報を含み、前記第２のセグメントの前記データは、前記第１のセグメントの前記データが対応する前記期間に対応する、送るための手段と、
前記クライアントデバイスから受信され、前記更新されたマニフェストファイルに従って形成される要求に応答して、前記第２のセグメントのデータを前記クライアントデバイスに送るための手段と
を備える、デバイス。
【請求項３８】
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示す情報を含む、請求項３７に記載のデバイス。
【請求項３９】
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示すデータのロケーションを示す情報を含む、請求項３７に記載のデバイス。
【請求項４０】
前記クライアントデバイスによって取り出された前記マルチメディアコンテンツのデータを示す情報を受信するための手段をさらに備える、請求項３７に記載のデバイス。
【請求項４１】
前記クライアントデバイスによって取り出された前記データを示す前記情報を受信するための前記手段は、前記クライアントデバイスがそこから前記マルチメディアコンテンツのメディアデータを取り出した前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを受信するための手段を備える、請求項４０に記載のデバイス。
【請求項４２】
実行されたとき、
マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送ることであって、前記マニフェストファイルが、前記マルチメディアコンテンツの表現の第１のセグメントを示す情報を含み、前記第１のセグメントの前記データが前記マルチメディアコンテンツの期間に対応する、送ることと、
前記クライアントデバイスからの要求に応答して、前記表現の前記第１のセグメントの少なくとも部分を前記クライアントデバイスに送ることであって、前記マニフェストファイルが更新されるべきであることを前記第１のセグメントの前記部分が示し、前記マニフェストファイルの更新されたバージョンが、前記表現の第２の異なるセグメントを示す情報を含み、前記第２のセグメントの前記データは、前記第１のセグメントの前記データが対応する前記期間に対応する、送ることと、
前記クライアントデバイスから受信され、前記更新されたマニフェストファイルに従って形成される要求に応答して、前記第２のセグメントのデータを前記クライアントデバイスに送ることと
を、マルチメディアデータについての情報を送るためのデバイスのプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体。
【請求項４３】
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示す情報を含む、請求項４２に記載のコンピュータ可読記憶媒体。
【請求項４４】
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示すデータのロケーションを示す情報を含む、請求項４２に記載のコンピュータ可読記憶媒体。
【請求項４５】
前記クライアントデバイスによって取り出された前記マルチメディアコンテンツのデータを示す情報を受信することを前記プロセッサに行わせる命令をさらに備える、請求項４２に記載のコンピュータ可読記憶媒体。
【請求項４６】
前記クライアントデバイスによって取り出された前記データを示す前記情報を受信することを前記プロセッサに行わせる前記命令は、前記クライアントデバイスがそこから前記マルチメディアコンテンツのメディアデータを取り出した前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを受信することを前記プロセッサに行わせる命令を備える、請求項４５に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、符号化されたマルチメディアデータの記憶およびトランスポートに関する。
【背景技術】
【０００２】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３またはＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
【０００３】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を実行する。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスはマクロブロックに区分され得る。各マクロブロックはさらに区分され得る。イントラコード化（Ｉ）フレームまたはスライス中のマクロブロックは、隣接マクロブロックに対する空間的予測を使用して符号化される。インターコード化（ＰまたはＢ）フレームまたはスライス中のマクロブロックは、同じフレームまたはスライス中の隣接マクロブロックに対する空間的予測、あるいは他の参照フレームに対する時間的予測を使用し得る。
【０００４】
ビデオデータが符号化された後、ビデオデータは送信または記憶のためにパケット化され得る。ビデオデータは、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマット、およびＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣなどのそれの拡張など、様々な規格のいずれかに準拠するビデオファイルにアセンブルされ得る。そのようなパケット化されたビデオデータは、ネットワークストリーミングを使用したコンピュータネットワークを介した送信など、様々な方法でトランスポートされ得る。
【発明の概要】
【０００５】
概して、本開示では、ネットワークを介したメディアデータのストリーミングを改善するための技法について説明する。これらの技法は、ネットワークを介してストリーミングされるメディアコンテンツ内の早送り、早戻し、およびシークなど、トリックモードのサポートを含む。これらの技法はまた、表現のグループについての共通の特性、ならびに表現の個々の特性をシグナリングすることなど、表現グループのサポートを含む。さらに、本技法は、ストリーミングされるメディアコンテンツのマニフェストファイルを更新するための情報を提供することを含む。本技法はまた、メディアコンテンツのための外部期間としてターゲット広告についてのメディアデータを与えることを含む。これらの技法はさらに、クライアントデバイスからのエクスペリエンス品質報告をサービスプロバイダに提供し、解釈することを含む。さらに、これらの技法は、メディアコンテンツのマニフェストファイルが準拠するプロファイルデータのシグナリングを含む。
【０００６】
一例では、ビデオデータを取り出す方法は、マルチメディアコンテンツのマニフェストファイルの少なくとも部分を分析することであって、マニフェストファイルの部分が、マルチメディアコンテンツの表現のセットを示す情報と、表現のセットの各々についての共通の特性を示す情報とを含む、分析することと、表現のセットのうちの１つについての共通の特性に基づいて表現のセットのうちの１つを選択することと、セットのうちの１つの表現のうちの１つの１つまたは複数のコーディング特性に基づいて、表現のセットのうちの選択された１つの表現のうちの１つを選択することと、選択に基づいて表現のうちの１つのデータについての要求を生成することとを含む。
【０００７】
別の例では、ビデオデータについての情報を受信するためのデバイスは、マルチメディアコンテンツのマニフェストファイルの少なくとも部分を分析することであって、マニフェストファイルの部分が、マルチメディアコンテンツの表現のセットを示す情報と、表現のセットの各々についての共通の特性を示す情報とを含む、分析することと、表現のセットのうちの１つについての共通の特性に基づいて表現のセットのうちの１つを選択することと、セットのうちの１つの表現のうちの１つの１つまたは複数のコーディング特性に基づいて、表現のセットのうちの選択された１つの表現のうちの１つを選択することと、選択に基づいて表現のうちの１つのデータについての要求を生成することとを行うように構成された１つまたは複数のプロセッサを含む。
【０００８】
別の例では、ビデオデータについての情報を受信するためのデバイスは、マルチメディアコンテンツのマニフェストファイルの少なくとも部分を分析するための手段であって、マニフェストファイルの部分が、マルチメディアコンテンツの表現のセットを示す情報と、表現のセットの各々についての共通の特性を示す情報とを含む、分析するための手段と、表現のセットのうちの１つについての共通の特性に基づいて表現のセットのうちの１つを選択するための手段と、セットのうちの１つの表現のうちの１つの１つまたは複数のコーディング特性に基づいて、表現のセットのうちの選択された１つの表現のうちの１つを選択するための手段と、選択に基づいて表現のうちの１つのデータについての要求を生成するための手段とを含む。
【０００９】
別の例では、コンピュータプログラム製品は、実行されたとき、マルチメディアコンテンツのマニフェストファイルの少なくとも部分を分析することであって、マニフェストファイルの部分が、マルチメディアコンテンツの表現のセットを示す情報と、表現のセットの各々についての共通の特性を示す情報とを含む、分析することと、表現のセットのうちの１つについての共通の特性に基づいて表現のセットのうちの１つを選択することと、セットのうちの１つの表現のうちの１つの１つまたは複数のコーディング特性に基づいて、表現のセットのうちの選択された１つの表現のうちの１つを選択することと、選択に基づいて表現のうちの１つのデータについての要求を生成することとを、ビデオデータを取り出すためのデバイスのプロセッサに行わせる命令を備えるコンピュータ可読記憶媒体を含む。
【００１０】
別の例では、ビデオデータについての情報を送る方法は、１つまたは複数の共通の特性を有するマルチメディアコンテンツの表現のセットを取得することであって、セット中の表現の各々が、共通の特性とは別個の１つまたは複数の個々のコーディング特性を有する、取得することと、マルチメディアコンテンツのマニフェストファイルを取得することであって、マニフェストファイルが、セット中の表現を示す情報と、表現のセットについての共通の特性を示す情報と、セット中の表現の各々についてのコーディング特性を示す情報とを含む、取得することと、マニフェストファイルの少なくとも部分をクライアントデバイスに送ることとを含む。
【００１１】
別の例では、ビデオデータについての情報を送るためのデバイスであって、本デバイスは、１つまたは複数の共通の特性を有するマルチメディアコンテンツの表現のセットを取得することであって、セット中の表現の各々が、共通の特性とは別個の１つまたは複数の個々のコーディング特性を有する、取得することと、マルチメディアコンテンツのマニフェストファイルを取得することであって、マニフェストファイルが、セット中の表現を示す情報と、表現のセットについての共通の特性を示す情報と、セット中の表現の各々についてのコーディング特性を示す情報とを含む、取得することと、マニフェストファイルの少なくとも部分をクライアントデバイスに送ることとを行うように構成された１つまたは複数のプロセッサを備える、デバイスが提供される。
【００１２】
別の例では、ビデオデータについての情報を送るためのデバイスは、１つまたは複数の共通の特性を有するマルチメディアコンテンツの表現のセットを取得するための手段であって、セット中の表現の各々が、共通の特性とは別個の１つまたは複数の個々のコーディング特性を有する、取得するための手段と、マルチメディアコンテンツのマニフェストファイルを取得するための手段であって、マニフェストファイルが、セット中の表現を示す情報と、表現のセットについての共通の特性を示す情報と、セット中の表現の各々についてのコーディング特性を示す情報とを含む、取得するための手段と、マニフェストファイルの少なくとも部分をクライアントデバイスに送るための手段とを含む。
【００１３】
別の例では、コンピュータプログラム製品は、１つまたは複数の共通の特性を有するマルチメディアコンテンツの表現のセットを取得することであって、セット中の表現の各々が、共通の特性とは別個の１つまたは複数の個々のコーディング特性を有する、取得することと、マルチメディアコンテンツのマニフェストファイルを取得することであって、マニフェストファイルが、セット中の表現を示す情報と、表現のセットについての共通の特性を示す情報と、セット中の表現の各々についてのコーディング特性を示す情報とを含む、取得することと、マニフェストファイルの少なくとも部分をクライアントデバイスに送ることとを、ビデオデータを提供するためのデバイスのプロセッサに行わせる命令を備えるコンピュータ可読記憶媒体を含む。
【００１４】
別の例では、ビデオデータを取り出す方法は、マルチメディアコンテンツのマニフェストファイルの情報を分析することであって、マルチメディアコンテンツの少なくとも１つの表現が時間サブシーケンスを含むことをマニフェストファイルの情報が示す、分析することと、時間サブシーケンスについてのデータの１つまたは複数のロケーションを判断することと、時間サブシーケンスについてのデータについての１つまたは複数の要求をサブミットすることとを含む。
【００１５】
別の例では、ビデオデータを取り出すためのデバイスは、マルチメディアコンテンツのマニフェストファイルの情報を分析することであって、マルチメディアコンテンツの少なくとも１つの表現が時間サブシーケンスを含むことをマニフェストファイルの情報が示す、分析することと、時間サブシーケンスについてのデータの１つまたは複数のロケーションを判断することと、時間サブシーケンスについてのデータについての１つまたは複数の要求をサブミットすることとを行うように構成された１つまたは複数のプロセッサを含む。
【００１６】
別の例では、ビデオデータを取り出すためのデバイスは、マルチメディアコンテンツのマニフェストファイルの情報を分析するための手段であって、マルチメディアコンテンツの少なくとも１つの表現が時間サブシーケンスを含むことをマニフェストファイルの情報が示す、分析するための手段と、時間サブシーケンスについてのデータの１つまたは複数のロケーションを判断するための手段と、時間サブシーケンスについてのデータについての１つまたは複数の要求をサブミットするための手段とを含む。
【００１７】
別の例では、コンピュータプログラム製品は、実行されたとき、マルチメディアコンテンツのマニフェストファイルの情報を分析することであって、マルチメディアコンテンツの少なくとも１つの表現が時間サブシーケンスを含むことをマニフェストファイルの情報が示す、分析することと、時間サブシーケンスについてのデータの１つまたは複数のロケーションを判断することと、時間サブシーケンスについてのデータについての１つまたは複数の要求をサブミットすることとを、ビデオデータを取り出すためのデバイスのプロセッサに行わせる命令を記憶したコンピュータ可読媒体を含む。
【００１８】
別の例では、ビデオデータについての情報を送る方法は、時間サブシーケンスを含むマルチメディアコンテンツの少なくとも１つの表現についてのデータを取得することと、マルチメディアコンテンツのマニフェストファイルについてのデータを取得することであって、マルチメディアコンテンツの少なくとも１つの表現が時間サブシーケンスを含むことをマニフェストファイルの情報が示す、取得することと、マニフェストファイルの少なくとも部分をクライアントデバイスに送ることとを含む。
【００１９】
別の例では、ビデオデータについての情報を送るためのデバイスは、時間サブシーケンスを含むマルチメディアコンテンツの少なくとも１つの表現についてのデータを取得することと、マルチメディアコンテンツのマニフェストファイルについてのデータを取得することであって、マルチメディアコンテンツの少なくとも１つの表現が時間サブシーケンスを含むことをマニフェストファイルの情報が示す、取得することと、マニフェストファイルの少なくとも部分をクライアントデバイスに送ることとを行うように構成された１つまたは複数のプロセッサを含む。
【００２０】
別の例では、ビデオデータについての情報を送るためのデバイスは、時間サブシーケンスを含むマルチメディアコンテンツの少なくとも１つの表現についてのデータを取得するための手段と、マルチメディアコンテンツのマニフェストファイルについてのデータを取得するための手段であって、マルチメディアコンテンツの少なくとも１つの表現が時間サブシーケンスを含むことをマニフェストファイルの情報が示す、取得するための手段と、マニフェストファイルの少なくとも部分をクライアントデバイスに送るための手段とを含む。
【００２１】
別の例では、コンピュータプログラム製品は、実行されたとき、時間サブシーケンスを含むマルチメディアコンテンツの少なくとも１つの表現についてのデータを取得することと、マルチメディアコンテンツのマニフェストファイルについてのデータを取得することであって、マルチメディアコンテンツの少なくとも１つの表現が時間サブシーケンスを含むことをマニフェストファイルの情報が示す、取得することと、マニフェストファイルの少なくとも部分をクライアントデバイスに送ることとを、ビデオデータについての情報を送るためのデバイスのプロセッサに行わせる命令を記憶したコンピュータ可読媒体を含む。
【００２２】
別の例では、ビデオデータを取り出す方法は、クライアントデバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第１のセグメントのデータを取り出すことと、マニフェストファイルに従って表現の第２のセグメントの部分を取り出すことであって、第２のセグメントが表現中の第１のセグメントの後に存在し、マニフェストファイルが更新されるべきであることを第２のセグメントの部分が示す、取り出すことと、マニフェストファイルが更新されるべきであるという指示に基づいて、クライアントデバイスによって記憶されたマニフェストファイルのコピーを更新することと、更新されたマニフェストファイルに従って第２のセグメントのメディアデータを取り出すこととを含む。
【００２３】
別の例では、ビデオデータを取り出すためのデバイスは、本デバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第１のセグメントのデータを取り出すことと、マニフェストファイルに従って表現の第２のセグメントの部分を取り出すことであって、第２のセグメントが表現中の第１のセグメントの後に存在し、マニフェストファイルが更新されるべきであることを第２のセグメントの部分が示す、取り出すことと、マニフェストファイルが更新されるべきであるという指示に基づいて、本デバイスによって記憶されたマニフェストファイルのコピーを更新することと、更新されたマニフェストファイルに従って第２のセグメントのメディアデータを取り出すこととを行うように構成された１つまたは複数のプロセッサを含む。
【００２４】
別の例では、ビデオデータを取り出すためのデバイスは、本デバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第１のセグメントのデータを取り出すための手段と、マニフェストファイルに従って表現の第２のセグメントの部分を取り出すための手段であって、第２のセグメントが表現中の第１のセグメントの後に存在し、マニフェストファイルが更新されるべきであることを第２のセグメントの部分が示す、取り出すための手段と、マニフェストファイルが更新されるべきであるという指示に基づいて、本デバイスによって記憶されたマニフェストファイルのコピーを更新するための手段と、更新されたマニフェストファイルに従って第２のセグメントのメディアデータを取り出すための手段と含む。
【００２５】
別の例では、コンピュータプログラム製品は、実行されたとき、デバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第１のセグメントのデータを取り出すことと、マニフェストファイルに従って表現の第２のセグメントの部分を取り出すことであって、第２のセグメントが表現中の第１のセグメントの後に存在し、マニフェストファイルが更新されるべきであることを第２のセグメントの部分が示す、取り出すことと、マニフェストファイルが更新されるべきであるという指示に基づいて、デバイスによって記憶されたマニフェストファイルのコピーを更新することと、更新されたマニフェストファイルに従って第２のセグメントのメディアデータを取り出すこととを、ビデオデータを取り出すためのデバイスのプロセッサに行わせる命令を記憶したコンピュータ可読媒体を含む。
【００２６】
別の例では、ビデオデータについての情報を送る方法は、マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送ることであって、マニフェストファイルが、マルチメディアコンテンツの表現の第１のセグメントを示す情報を含む、送ることと、クライアントデバイスからの要求に応答して、表現の第１のセグメントの少なくとも部分をクライアントデバイスに送ることであって、マニフェストファイルが更新されるべきであることを第１のセグメントの部分が示し、マニフェストファイルの更新されたバージョンが、表現の第２の異なるセグメントを示す情報を含む、送ることと、クライアントデバイスから受信され、更新されたマニフェストファイルに従って形成される要求に応答して、第２のセグメントのデータをクライアントデバイスに送ることとを含む。
【００２７】
別の例では、ビデオデータについての情報を送るためのデバイスは、マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送ることであって、マニフェストファイルが、マルチメディアコンテンツの表現の第１のセグメントを示す情報を含む、送ることと、クライアントデバイスからの要求に応答して、表現の第１のセグメントの少なくとも部分をクライアントデバイスに送ることであって、マニフェストファイルが更新されるべきであることを第１のセグメントの部分が示し、マニフェストファイルの更新されたバージョンが、表現の第２の異なるセグメントを示す情報を含む、送ることと、クライアントデバイスから受信され、更新されたマニフェストファイルに従って形成される要求に応答して、第２のセグメントのデータをクライアントデバイスに送ることとを行うように構成された１つまたは複数のプロセッサを含む。
【００２８】
別の例では、ビデオデータについての情報を送るためのデバイスは、マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送るための手段であって、マニフェストファイルが、マルチメディアコンテンツの表現の第１のセグメントを示す情報を含む、送るための手段と、クライアントデバイスからの要求に応答して、表現の第１のセグメントの少なくとも部分をクライアントデバイスに送るための手段であって、マニフェストファイルが更新されるべきであることを第１のセグメントの部分が示し、マニフェストファイルの更新されたバージョンが、表現の第２の異なるセグメントを示す情報を含む、送るための手段と、クライアントデバイスから受信され、更新されたマニフェストファイルに従って形成される要求に応答して、第２のセグメントのデータをクライアントデバイスに送るための手段とを含む。
【００２９】
別の例では、コンピュータプログラム製品は、実行されたとき、マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送ることであって、マニフェストファイルが、マルチメディアコンテンツの表現の第１のセグメントを示す情報を含む、送ることと、クライアントデバイスからの要求に応答して、表現の第１のセグメントの少なくとも部分をクライアントデバイスに送ることであって、マニフェストファイルが更新されるべきであることを第１のセグメントの部分が示し、マニフェストファイルの更新されたバージョンが、表現の第２の異なるセグメントを示す情報を含む、送ることと、クライアントデバイスから受信され、更新されたマニフェストファイルに従って形成される要求に応答して、第２のセグメントのデータをクライアントデバイスに送ることとを、ビデオデータについての情報を送るためのデバイスのプロセッサに行わせる命令を記憶したコンピュータ可読媒体を含む。
【図面の簡単な説明】
【００３０】
【図１】ネットワークを介してメディアデータをストリーミングするための技法を実装する例示的なシステムを示すブロック図。
【図２】例示的なマルチメディアコンテンツの要素を示す概念図。
【図３】マルチメディアコンテンツの表現のセグメントに対応し得る、例示的なビデオファイルの要素を示すブロック図。
【図４】メディアプレゼンテーション記述（ＭＰＤ：media presentation description）と様々な表現グループとを含む例示的なマルチメディアコンテンツを示す概念図。
【図５】ＭＰＤデータが様々な表現グループの様々な部分に分離された、別の例示的なマルチメディアコンテンツを示す概念図。
【図６】トリックモードをサポートするために使用され得る別の例示的なマルチメディアコンテンツを示す概念図。
【図７】マルチメディアコンテンツのＭＰＤが更新されるべきであることを示すためのＭＰＤ更新ボックスをセグメントが含み得る、別の例示的なマルチメディアコンテンツを示す概念図。
【図８】サーバデバイスによって表現グループの指示を与えることと、クライアントデバイスによって表現グループを選択し、ならびに選択された表現グループ内の個々の表現を選択することとを行うための例示的な方法を示すフローチャート。
【図９】サーバデバイスによってトリックモードを表すデータを与えることと、マルチメディアコンテンツのトリックモードデータを取り出し、再生するためにクライアントデバイスによってそのデータを使用することとを行うための例示的な方法を示すフローチャート。
【図１０】ＭＰＤなどのマニフェストファイルが更新されるべきであるという指示をサーバデバイスによって与えることと、クライアントデバイスによってＭＰＤを更新することとを行うための例示的な方法を示すフローチャート。
【図１１】エクスペリエンス品質（ＱｏＥ）報告ドキュメントのデータを構築し、使用するための例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００３１】
概して、本開示では、ネットワークを介してオーディオおよびビデオデータなどのマルチメディアデータをストリーミングするための技法について説明する。本開示の技法は、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ：dynamic adaptive streaming over HTTP）と併せて使用され得る。本開示では、ネットワークストリーミングと併せて実行され得る様々な技法について説明し、それらの技法のいずれかまたはすべては単独でまたは任意の組合せで実装され得る。以下でより詳細に説明するように、ネットワークストリーミングを実行する様々なデバイスが本開示の技法を実装するように構成され得る。
【００３２】
ＤＡＳＨおよびネットワークを介してデータをストリーミングするための同様の技法によれば、（テキストオーバーレイまたは他のデータをも含み得る、ムービーまたは他のオーディオ／ビデオコンテンツなどの）マルチメディアコンテンツは様々な方法で様々な特性を用いて符号化され得る。コンテンツ作成デバイスは、同じマルチメディアコンテンツの複数の表現を形成し得る。各表現は、様々なコーディングおよびレンダリング能力をもつ多種多様なクライアントデバイスによって使用可能なデータを与えるために、コーディングおよびレンダリング特性など、特性の特定のセットに対応し得る。その上、様々なビットレートを有する表現によって帯域幅適応が可能になり得る。すなわち、クライアントデバイスは、現在利用可能である帯域幅の量を判断し、クライアントデバイスのコーディングおよびレンダリング能力とともにその利用可能な帯域幅の量に基づいて表現を選択し得る。
【００３３】
いくつかの例では、コンテンツ作成デバイスは、ある表現のセットが共通の特性のセットを有することを示し得る。コンテンツ作成デバイスは、その場合、セット中の表現が帯域幅適応のために使用され得るという点で、セット中の表現が表現グループを形成することを示し得る。すなわち、セット中の表現は、ビットレートが異なるが、それ以外は実質的に同じ特性を共有し得る。このようにして、クライアントデバイスは、マルチメディアコンテンツの表現グループについての共通の特性の様々なセットを判断し、クライアントデバイスのコーディングおよびレンダリング能力に基づいて表現グループを選択し得る。次いで、クライアントデバイスは、帯域幅利用可能性に基づいて、選択された表現グループ中の表現の間で適応的に切り替わり得る。
【００３４】
コンテンツ作成デバイスはまた、３ＧＰＰ（Ｔｈｉｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ）によって規定されたフォーマットにおけるメディアプレゼンテーション記述（ＭＰＤ）ファイルなど、マニフェストファイルの異なる部分に別々のネットワークロケーションを与え得る。すなわち、マニフェストファイルの異なる部分は、たとえば、ユニフォームリソースロケータ（ＵＲＬ）など、様々なユニフォームリソース識別子（ＵＲＩ）によって独立にアドレス指定可能であり得る。マニフェストファイルの最初の部分は、ＵＲＩ、ＵＲＬ、またはマニフェストファイルの別の部分の他のロケーション識別子を含み得る。たとえば、マニフェストファイルの第１の部分は、上記で説明したように、表現グループの共通の特性の記述を含み得る。
【００３５】
表現グループの各々は、それぞれの表現グループ中の表現のメディアデータのロケーションを示すデータを含み得る、マニフェストファイルのそれぞれの異なる部分に関連し得る。このようにして、クライアントデバイスは、マニフェストファイルの第１の部分を受信し、適切な表現グループを選択し、選択された表現グループのためのマニフェストファイルの別の部分を取り出し、選択されたグループの表現を選択し、マニフェストファイルのその別の部分を使用して、選択された表現のデータを取り出し得る。その上、クライアントデバイスは、マニフェストファイルのその別の部分、すなわち、選択された表現グループに固有の部分を使用して、変化するネットワーク帯域幅に適応し得る。
【００３６】
追加または代替として、マニフェストファイルの部分は、他の目的のためにマニフェストファイルの別の部分を参照し得る。すなわち、マニフェストファイルの部分は、再生中にムービー中にリモート期間のメディアデータを挿入するために、クライアントデバイスをマニフェストファイルの別の部分にダイレクトし得る。リモート期間は、いくつかの例では、広告に対応し得る。これらの技法は、いくつかの例では、ターゲット広告のために使用され得る。クライアントデバイスは、ユーザ識別子、広告についてのユーザ選好、および／またはユーザ人口統計学的情報など、ユーザ情報をサーバデバイスに提供し得、サーバデバイスは、そのユーザ情報に基づいてマニフェストファイルの部分を選択し得る。したがって、デリファレンスされたとき、マニフェストファイルの外部部分は、たとえばクライアントデバイスによって、元のマニフェストファイルに組み込まれ得る。サーバデバイスは、ターゲット広告メディアコンテンツに関連するマニフェストファイルの部分のロケーションをクライアントデバイスに与え得る。クライアントデバイスは、次いで、要求されたマルチメディアコンテンツの期間の特定の表現のデータを取り出す前に、ターゲット広告メディアコンテンツのデータを取り出し、提示し得る。このようにして、マルチメディアコンテンツのマニフェストファイルの第１の部分はマニフェストファイルの第２の部分を参照し得る。
【００３７】
いくつかの事例では、ユーザは、開始から終了まで以外の方法でビデオデータを再生することを望み得る。たとえば、ユーザは、早送りまたは早戻しモードで、あるいは特定の再生ポイントから開始してビデオデータを再生することを望み得る。開始から終了まで再生することとは異なるモードである、ビデオ再生のそのようなモードは、「トリックモード」と呼ばれることがある。トリックモードでは、最終的にすべてのビデオデータが再生されるとは限らないので、ビデオデータのすべてが取り出される必要はない。本開示では、トリックモードをサポートするための技法も提供する。たとえば、コンテンツ作成デバイスは、瞬時デコーダリフレッシュ（ＩＤＲ：instantaneous decoder refresh）ピクチャなど、トリックモードのために使用されるビデオデータ中のフレームのバイト範囲ロケーションの指示を与え得る。概して、ＩＤＲピクチャは、ＩＤＲピクチャ自体の外部にあるフレームのデータと無関係に復号され得る。ＩＤＲピクチャのフレームまたはスライスは、概して、他のフレームまたはスライスへの依存性を回避するためにイントラ予測モードでコーディングされる。このようにして、クライアントデバイスは、早送りなどのトリックモードでビデオデータを表示する際に使用するためのＩＤＲピクチャのデータのみをダウンロードするためにＩＤＲピクチャのロケーションを示す情報を取り出すことができる。時間サブシーケンス中には他のデータも含まれ得る。データは、参照のために使用されるデータが、参照するデータよりも前に（および参照するデータとの連続バイトシーケンスで）存在するように、コーディング順序で構成され得る。たとえば、ＩフレームはＰフレームに先行し得、そのＰフレームの後に１つまたは複数のＢフレームが続き得、それらの１つまたは複数のＢフレームのいずれかまたはすべては他のＢフレームに先行し得、それらの他のＢフレームは階層的に前のＢフレームを参照し得る。
【００３８】
いくつかの例では、ＭＰＤなどのマニフェストファイルは時々の更新を必要とし得る。本開示はまた、ＭＰＤが更新を必要とするという指示をシグナリングおよび受信するための技法を提供する。特に、コンテンツ作成デバイスは、対応するＭＰＤが更新を必要とすることを示す表現のセグメント中のデータを含み得る。このデータは、ＭＰＤに適用すべき更新、および／またはクライアントデバイスがそこからＭＰＤへの更新を取り出すことができるロケーションを示し得る、セグメントの最初の要素に対応し得る。更新は、完全に新しいＭＰＤ、またはマルチメディアコンテンツについての前のＭＰＤに対する増分更新を備え得る。
【００３９】
本開示はさらに、クライアントデバイスからサーバデバイスおよび／またはコンテンツ作成デバイスにフィードバックを与えるための技法を含む。フィードバックは、たとえば、マルチメディアコンテンツのために取り出されたデータを示す情報に対応し得る。コンテンツ作成デバイスおよび／またはサーバの管理者または他のユーザは、そのような情報を様々な方法で使用し得る。たとえば、ユーザは、より頻繁にアクセスされる表現のデータを、ルータまたは他のデバイスなど、コンテンツ配信ネットワーク（ＣＤＮ：content delivery network）のプロキシデバイス中にキャッシュするようにＣＤＮを構成し得る。別の例として、ユーザは、より頻繁にアクセスされる表現を判断して、現在のマルチメディアコンテンツにもしくはそこからいくつかの表現が追加もしくは削除されるべきかどうか、および／または将来のマルチメディアコンテンツの表現をどのように符号化すべきかを判断し得る。
【００４０】
メディアコンテンツの表現のセグメントなど、ビデオファイルは、ＩＳＯベースメディアファイルフォーマット、Ｓｃａｌａｂｌｅ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＳＶＣ）ファイルフォーマット、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）ファイルフォーマット、Ｔｈｉｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ（３ＧＰＰ）ファイルフォーマット、および／またはＭｕｌｔｉｖｉｅｗ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＭＶＣ）ファイルフォーマット、または他の同様のビデオファイルフォーマットのいずれかに従ってカプセル化されたビデオデータに準拠し得る。
【００４１】
ＩＳＯベースメディアファイルフォーマットは、メディアの交換、管理、編集、およびプレゼンテーションを可能にする、フレキシブルで拡張可能なフォーマットにおけるプレゼンテーションのための時限メディア情報を含んでいるように設計される。ＩＳＯベースメディアファイルフォーマット（ＩＳＯ／ＩＥＣ１４４９６−１２：２００４）は、時間ベースメディアファイルのための一般的な構造を定義するＭＰＥＧ−４  Ｐａｒｔ１２において規定されている。ＩＳＯベースメディアファイルフォーマットは、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣビデオ圧縮のサポートを定義したＡＶＣファイルフォーマット（ＩＳＯ／ＩＥＣ１４４９６−１５）、３ＧＰＰファイルフォーマット、ＳＶＣファイルフォーマット、およびＭＶＣファイルフォーマットなどのファミリー中の他のファイルフォーマットのための基礎として使用される。３ＧＰＰファイルフォーマットおよびＭＶＣファイルフォーマットはＡＶＣファイルフォーマットの拡張である。ＩＳＯベースメディアファイルフォーマットは、オーディオビジュアルプレゼンテーションなどのメディアデータの時限シーケンスのためのタイミング、構造、およびメディア情報を含んでいる。ファイル構造はオブジェクト指向であり得る。ファイルは、非常に簡単に基本オブジェクトに分解され得、オブジェクトの構造はそれらのタイプから暗示される。
【００４２】
ＩＳＯベースメディアファイルフォーマット（およびそれの拡張）に準拠するファイルは、「ボックス」と呼ばれる一連のオブジェクトとして形成され得る。ＩＳＯベースメディアファイルフォーマットのデータは、そのファイル内に他のデータが含まれている必要がなく、そのファイル内のボックスの外部にデータが存在する必要がないように、ボックス中に含まれ得る。これは、特定のファイルフォーマットによって必要とされる初期シグナチャを含む。「ボックス」は、一意のタイプ識別子と長さとによって定義されるオブジェクト指向ビルディングブロックであり得る。一般に、プレゼンテーションは１つのファイル中に含まれ、メディアプレゼンテーションは独立型（self-contained）である。ムービーコンテナ（ムービーボックス）はメディアのメタデータを含み得、ビデオおよびオーディオフレームは、メディアデータコンテナ中に含まれ得、他のファイル中にあり得る。
【００４３】
表現（動きシーケンス）は、セグメントと呼ばれることがある、いくつかのファイル中に含まれていることがある。タイミングおよびフレーミング（位置およびサイズ）情報は概してＩＳＯベースメディアファイル中にあり、補助ファイルは本質的に任意のフォーマットを使用し得る。このプレゼンテーションは、プレゼンテーションを含んでいるシステムに対して「ローカル」であり得るか、あるいはネットワークまたは他のストリーム配信機構を介して行われ得る。
【００４４】
それの値（たとえば、それのビットレート、スクリーンサイズ、または言語）がグループの他のメンバーとは異なり得る、各トラックが有する「興味深い特性」をそのトラックにタグ付けするために、随意のメタデータトラックが使用され得る。トラック内のいくつかのサンプルは、特殊な特性を有するかまたは個々に識別され得る。特性の一例は同期ポイント（しばしばビデオＩフレーム）である。これらのポイントは各トラック中の特殊なテーブルによって識別され得る。より一般的には、トラックサンプル間の依存性の性質はメタデータを使用してもドキュメント化され得る。メタデータは、ビデオトラックとまったく同様に、ファイルフォーマットサンプルのシーケンスとして構造化され得る。そのようなトラックはメタデータトラックと呼ばれることがある。各メタデータサンプルはメタデータステートメントとして構造化され得る。対応するファイルフォーマットサンプルまたはそれの構成要素サンプルに関して質問され得る様々な質問に対応する、様々な種類のステートメントがある。
【００４５】
メディアがストリーミングプロトコルを介して配信されるとき、メディアは、メディアがファイル中で表現される方法から変換される必要があり得る。これの一例は、メディアがリアルタイムトランスポートプロトコル（ＲＴＰ）を介して送信されるときである。ファイル中で、たとえば、ビデオの各フレームはファイルフォーマットサンプルとして連続して記憶される。ＲＴＰでは、これらのフレームをＲＴＰパケット中に配置するために、使用されるコーデックに固有のパケット化ルールに従わなければならない。ストリーミングサーバは、そのようなパケット化をランタイムに計算するように構成され得る。しかしながら、ストリーミングサーバを支援するためのサポートがある。
【００４６】
本開示の技法は、たとえば、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ）に従って、ＨＴＴＰストリーミングなどのネットワークストリーミングプロトコルに適用可能であり得る。ＨＴＴＰストリーミングにおいて、頻繁に使用される動作にはＧＥＴおよび部分ＧＥＴがある。ＧＥＴ動作は、所与のユニフォームリソースロケータ（ＵＲＬ）または他の識別子、たとえばＵＲＩに関連するファイル全体を取り出す。部分ＧＥＴ動作は、入力パラメータとしてバイト範囲を受信し、その受信されたバイト範囲に対応するファイルの連続バイト数を取り出す。したがって、部分ＧＥＴ動作は１つまたは複数の個々のムービーフラグメントを得ることができるので、ムービーフラグメントはＨＴＴＰストリーミングのために与えられ得る。ムービーフラグメント中には、異なるトラックのいくつかのトラックフラグメントがあり得ることに留意されたい。ＨＴＴＰストリーミングでは、メディア表現は、クライアントがアクセス可能であるデータの構造化コレクションであり得る。クライアントは、ユーザにストリーミングサービスを提示するためにメディアデータ情報を要求し、ダウンロードし得る。
【００４７】
ＨＴＴＰストリーミングを使用して３ＧＰＰデータをストリーミングする例では、マルチメディアコンテンツのビデオおよび／またはオーディオデータのための複数の表現があり得る。そのような表現のマニフェストがメディアプレゼンテーション記述（ＭＰＤ）データ構造で定義されていることがある。メディア表現は、ＨＴＴＰストリーミングクライアントデバイスがアクセス可能であるデータの構造化コレクションに対応し得る。ＨＴＴＰストリーミングクライアントデバイスは、クライアントデバイスのユーザにストリーミングサービスを提示するためにメディアデータ情報を要求し、ダウンロードし得る。メディア表現は、ＭＰＤの更新を含み得る、ＭＰＤデータ構造で記述され得る。
【００４８】
マルチメディアコンテンツは、１つまたは複数の期間のシーケンスを含んでいることがある。期間は、ＭＰＤ中のＰｅｒｉｏｄ要素によって定義され得る。各期間はＭＰＤ中の属性ｓｔａｒｔを有し得る。ＭＰＤは、期間ごとにｓｔａｒｔ属性とａｖａｉｌａｂｌｅＳｔａｒｔＴｉｍｅ属性とを含み得る。ライブサービスでは、期間のｓｔａｒｔ属性とＭＰＤ属性ａｖａｉｌａｂｌｅＳｔａｒｔＴｉｍｅとの和が、ＵＴＣ形式で期間の利用可能性時間、特に対応する期間中の各表現の第１のメディアセグメントを指定し得る。オンデマンドサービスでは、第１の期間のｓｔａｒｔ属性は０であり得る。他の期間では、ｓｔａｒｔ属性は、対応する期間の開始時間と第１の期間の開始時間との間の時間オフセットを指定し得る。各期間は、次の期間の開始まで、または最終期間の場合はメディアプレゼンテーションの終了まで延在し得る。期間開始時間は正確であり得る。期間開始時間は、すべての前の期間のメディアを再生したことから生じる実際のタイミングを反映し得る。
【００４９】
各期間は、同じメディアコンテンツについての１つまたは複数の表現を含んでいることがある。表現は、オーディオまたはビデオデータのいくつかの代替符号化バージョンのうちの１つであり得る。表現は、符号化タイプなど、様々な特性によって異なり得、たとえば、ビデオデータの場合はビットレート、解像度、および／またはコーデックによって、ならびにオーディオデータの場合はビットレート、言語、および／またはコーデックによって異なり得る。表現という用語は、マルチメディアコンテンツの特定の期間に対応し、特定の方法で符号化された符号化オーディオまたはビデオデータのセクションを指すために使用され得る。
【００５０】
特定の期間の表現はグループに割り当てられ得、グループはＭＰＤ中のｇｒｏｕｐ属性によって示され得る。同じグループ中の表現は、概して互いに代替として見なされる。たとえば、特定の期間についてのビデオデータの各表現は、それらの表現のいずれかが、対応する期間についてのマルチメディアコンテンツのビデオデータを表示するために復号のために選択され得るように、同じグループに割り当てられ得る。１期間内のメディアコンテンツは、いくつかの例では、存在する場合、グループ０からの１つの表現か、または各非ゼログループからのせいぜい１つの表現の組合せのいずれかによって表され得る。期間の各表現についてのタイミングデータは期間の開始時間に対して表現され得る。
【００５１】
表現は１つまたは複数のセグメントを含み得る。各表現は初期化セグメントを含むか、または表現の各セグメントは自己初期化され得る。存在するとき、初期化セグメントは、表現にアクセスするための初期化情報を含んでいることがある。概して、初期化セグメントはメディアデータを含んでいない。セグメントは、ユニフォームリソースロケータ（ＵＲＬ）などの識別子によって一意に参照され得る。ＭＰＤは各セグメントに識別子を与え得る。いくつかの例では、ＭＰＤはまた、ＵＲＬまたはＵＲＩによってアクセス可能なファイル内のセグメントについてのデータに対応し得る、ｒａｎｇｅ属性の形態のバイト範囲を与え得る。
【００５２】
各表現はまた、１つまたは複数のメディア構成要素を含み得、各メディア構成要素は、オーディオ、ビデオ、および／または（たとえば、字幕用の）時限テキストなど、１つの個々のメディアタイプの符号化バージョンに対応し得る。メディア構成要素は、１つの表現内の連続するメディアセグメントの境界にわたって時間連続的であり得る。
【００５３】
図１は、ネットワークを介してメディアデータをストリーミングするための技法を実装する例示的なシステム１０を示すブロック図である。この例では、システム１０は、コンテンツ作成デバイス２０と、サーバデバイス６０と、クライアントデバイス４０とを含む。クライアントデバイス４０およびサーバデバイス６０は、インターネットを備え得るネットワーク７４によって通信可能に結合される。いくつかの例では、コンテンツ作成デバイス２０およびサーバデバイス６０も、ネットワーク７４または別のネットワークによって結合されるか、あるいは直接通信可能に結合され得る。いくつかの例では、コンテンツ作成デバイス２０およびサーバデバイス６０は同じデバイスを備え得る。
【００５４】
コンテンツ作成デバイス２０は、図１の例では、オーディオソース２２とビデオソース２４とを備える。オーディオソース２２は、たとえば、オーディオエンコーダ２６によって符号化されるべき、キャプチャされたオーディオデータを表す電気信号を生成するマイクロフォンを備え得る。代替的に、オーディオソース２２は、前に記録されたオーディオデータを記憶する記憶媒体、コンピュータシンセサイザなどのオーディオデータ生成器、またはオーディオデータの任意の他のソースを備え得る。ビデオソース２４は、ビデオエンコーダ２８によって符号化されるべきビデオデータを生成するビデオカメラ、前に記録されたビデオデータで符号化された記憶媒体、コンピュータグラフィックスソースなどのビデオデータ生成ユニット、またはビデオデータの任意の他のソースを備え得る。コンテンツ作成デバイス２０は、必ずしもすべての例においてサーバデバイス６０に通信可能に結合されるとは限らないが、サーバデバイス６０によって読み取られる別個のメディアにマルチメディアコンテンツを記憶し得る。
【００５５】
未加工オーディオおよびビデオデータは、アナログまたはデジタルデータを備え得る。アナログデータは、オーディオエンコーダ２６および／またはビデオエンコーダ２８によって符号化される前にデジタル化され得る。オーディオソース２２は、通話参加者が話している間、通話参加者からオーディオデータを取得し得、同時に、ビデオソース２４は、通話参加者のビデオデータを取得し得る。他の例では、オーディオソース２２は、記憶されたオーディオデータを備えるコンピュータ可読記憶媒体を備え得、ビデオソース２４は、記憶されたビデオデータを備えるコンピュータ可読記憶媒体を備え得る。このようにして、本開示で説明する技法は、ライブ、ストリーミング、リアルタイムオーディオおよびビデオデータ、またはアーカイブされた、あらかじめ記録されたオーディオおよびビデオデータに適用され得る。
【００５６】
ビデオフレームに対応するオーディオフレームは、概して、ビデオフレーム内に含まれている、ビデオソース２４によってキャプチャされたビデオデータと同時にオーディオソース２２によってキャプチャされたオーディオデータを含んでいるオーディオフレームである。たとえば、通話参加者が概して話すことによってオーディオデータを生成する間、オーディオソース２２はオーディオデータをキャプチャし、同時に、すなわちオーディオソース２２がオーディオデータをキャプチャしている間、ビデオソース２４は通話参加者のビデオデータをキャプチャする。したがって、オーディオフレームは、１つまたは複数の特定のビデオフレームに時間的に対応し得る。したがって、ビデオフレームに対応するオーディオフレームは、概して、オーディオデータとビデオデータとが同時にキャプチャされる状況、およびオーディオフレームとビデオフレームとが、それぞれ、同時にキャプチャされたオーディオデータとビデオデータとを備える状況に対応する。
【００５７】
いくつかの例では、オーディオエンコーダ２６は、符号化オーディオフレームのオーディオデータが記録された時間を表す、各符号化オーディオフレームにおけるタイムスタンプを符号化し得、同様に、ビデオエンコーダ２８は、符号化ビデオフレームのビデオデータが記録された時間を表す、各符号化ビデオフレームにおけるタイムスタンプを符号化し得る。そのような例では、ビデオフレームに対応するオーディオフレームは、タイムスタンプを備えるオーディオフレームと、同じタイムスタンプを備えるビデオフレームとを備え得る。コンテンツ作成デバイス２０は、オーディオエンコーダ２６および／またはビデオエンコーダ２８がそこからタイムスタンプを生成し得るか、あるいはオーディオソース２２およびビデオソース２４がオーディオデータおよびビデオデータをそれぞれタイムスタンプに関連付けるために使用し得る、内部クロックを含み得る。
【００５８】
いくつかの例では、オーディオソース２２は、オーディオデータが記録された時間に対応するデータをオーディオエンコーダ２６に送り得、ビデオソース２４は、ビデオデータが記録された時間に対応するデータをビデオエンコーダ２８に送り得る。いくつかの例では、オーディオエンコーダ２６は、必ずしもオーディオデータが記録された絶対時刻を示すことなしに、符号化オーディオデータの相対的時間順序を示すために、符号化オーディオデータ中のシーケンス識別子を符号化し得、同様に、ビデオエンコーダ２８も、符号化ビデオデータの相対的時間順序を示すためにシーケンス識別子を使用し得る。同様に、いくつかの例では、シーケンス識別子は、タイムスタンプにマッピングされるか、または他の方法でタイムスタンプと相関させられ得る。
【００５９】
オーディオエンコーダ２６は概して符号化オーディオデータのストリームを生成し、ビデオエンコーダ２８は符号化ビデオデータのストリームを生成する。データの各個々のストリームは（オーディオかビデオかにかかわらず）エレメンタリストリームと呼ばれることがある。エレメンタリストリームは、表現のデジタル的にコード化された（場合によっては圧縮された）単一の構成要素である。たとえば、表現のコード化ビデオまたはオーディオ部分はエレメンタリストリームであり得る。エレメンタリストリームは、ビデオファイル内にカプセル化される前にパケット化エレメンタリストリーム（ＰＥＳ：packetized elementary stream）に変換され得る。同じ表現内では、１つのエレメンタリストリームに属するＰＥＳパケットを他のものから区別するためにストリームＩＤが使用され得る。エレメンタリストリームの基本データ単位はパケット化エレメンタリストリーム（ＰＥＳ）パケットである。したがって、コード化ビデオデータは概してエレメンタリビデオストリームに対応する。同様に、オーディオデータは１つまたは複数のそれぞれのエレメンタリストリームに対応する。
【００６０】
多くのビデオコーディング規格の場合と同様に、Ｈ．２６４／ＡＶＣは、誤りのないビットストリームのシンタックスと、セマンティクスと、復号プロセスとを定義し、そのいずれかは特定のプロファイルまたはレベルに準拠する。Ｈ．２６４／ＡＶＣはエンコーダを指定しないが、エンコーダは、生成されたビットストリームがデコーダの規格に準拠することを保証することを課される。ビデオコーディング規格のコンテキストでは、「プロファイル」は、アルゴリズム、機能、またはそれらに適用されるツールおよび制約のサブセットに対応する。たとえば、Ｈ．２６４規格によって定義される「プロファイル」は、Ｈ．２６４規格によって指定されたビットストリームシンタックス全体のサブセットである。「レベル」は、たとえば、ピクチャの解像度、ビットレート、およびマクロブロック（ＭＢ）処理レートに関係するデコーダメモリおよび計算など、デコーダリソース消費の制限に対応する。プロファイルはｐｒｏｆｉｌｅ＿ｉｄｃ（プロファイルインジケータ）値でシグナリングされ得、レベルはｌｅｖｅｌ＿ｉｄｃ（レベルインジケータ）値でシグナリングされ得る。
【００６１】
Ｈ．２６４規格は、たとえば、所与のプロファイルのシンタックスによって課される限界内で、復号されたピクチャの指定されたサイズなど、ビットストリーム中のシンタックス要素がとる値に応じて、エンコーダおよびデコーダのパフォーマンスの大きい変動を必要とする可能性が依然としてあることを認識している。Ｈ．２６４規格は、多くのアプリケーションにおいて、特定のプロファイル内でシンタックスのすべての仮定的使用を処理することが可能なデコーダを実装することが実際的でもなく、経済的でもないことをさらに認識している。したがって、Ｈ．２６４規格は、ビットストリーム中のシンタックス要素の値に課された制約の指定されたセットとして「レベル」を定義している。これらの制約は、値に関する単純な限界であり得る。代替的に、これらの制約は、値の演算の組合せ（たとえば、ピクチャの幅×ピクチャの高さ×毎秒復号されるピクチャの数）に関する制約の形態をとり得る。Ｈ．２６４規格は、個々の実装形態が、サポートされるプロファイルごとに異なるレベルをサポートし得ることをさらに規定している。
【００６２】
プロファイルに準拠するデコーダは、通常、プロファイル中で定義されたすべての機能をサポートする。たとえば、コーディング機能として、Ｂピクチャコーディングは、Ｈ．２６４／ＡＶＣのベースラインプロファイルではサポートされないが、Ｈ．２６４／ＡＶＣの他のプロファイルではサポートされる。レベルに準拠するデコーダは、レベルにおいて定義された制限を超えてリソースを必要としない任意のビットストリームを復号することが可能である必要がある。プロファイルおよびレベルの定義は、解釈可能性のために役立ち得る。たとえば、ビデオ送信中に、プロファイル定義とレベル定義のペアが全送信セッションについてネゴシエートされ、同意され得る。より詳細には、Ｈ．２６４／ＡＶＣでは、レベルは、たとえば、処理される必要があるマクロブロックの数に関する制限と、復号ピクチャバッファ（ＤＰＢ：decoded picture buffer）サイズと、コード化ピクチャバッファ（ＣＰＢ：coded picture buffer）サイズと、垂直動きベクトル範囲と、２つの連続するＭＢごとの動きベクトルの最大数と、Ｂブロックが８×８ピクセル未満のサブマクロブロックパーティションを有することができるかどうかとを定義し得る。このようにして、デコーダは、デコーダがビットストリームを適切に復号することが可能であるかどうかを判断し得る。
【００６３】
ＩＴＵ−Ｔ  Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、ＭＰＥＧ−１、ＭＰＥＧ−２、およびＨ．２６４／ＭＰＥＧ−４  ｐａｒｔ１０、ならびに今度の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格などのビデオ圧縮規格は、時間冗長性を低減するために動き補償時間的予測を利用する。ビデオエンコーダ２８などのエンコーダは、動きベクトルに従って現在のコード化ピクチャを予測するために、いくつかの前の（本明細書ではフレームとも呼ぶ）符号化ピクチャからの動き補償予測を使用し得る。典型的なビデオコーディングには３つの主要なピクチャタイプがある。それらは、イントラコード化ピクチャ（「Ｉピクチャ」または「Ｉフレーム」）と、予測ピクチャ（「Ｐピクチャ」または「Ｐフレーム」）と、双方向予測ピクチャ（「Ｂピクチャ」または「Ｂフレーム」）とである。Ｐピクチャは、時間順序で現在のピクチャの前の参照ピクチャのみを使用し得る。Ｂピクチャでは、Ｂピクチャの各ブロックは、１つまたは２つの参照ピクチャから予測され得る。これらの参照ピクチャは、時間順序で現在のピクチャの前または後に位置し得る。
【００６４】
パラメータセットは、概して、シーケンスパラメータセット（ＳＰＳ：sequence parameter set）中のシーケンスレイヤヘッダ情報と、ピクチャパラメータセット（ＰＰＳ：picture parameter set）中のまれに変化するピクチャレイヤヘッダ情報とを含んでいる。パラメータセットがある場合、このまれに変化する情報をシーケンスごとまたはピクチャごとに繰り返す必要はなく、したがってコーディング効率が改善され得る。さらに、パラメータセットの使用はヘッダ情報の帯域外送信を可能にし、誤り耐性を達成するための冗長送信の必要を回避し得る。帯域外送信では、他のＮＡＬユニットとは異なるチャネル上でパラメータセットＮＡＬユニットが送信される。
【００６５】
図１の例では、コンテンツ作成デバイス２０のカプセル化ユニット３０は、ビデオエンコーダ２８からコード化ビデオデータを備えるエレメンタリストリームを受信し、オーディオエンコーダ２６からコード化オーディオデータを備えるエレメンタリストリームを受信する。いくつかの例では、ビデオエンコーダ２８およびオーディオエンコーダ２６はそれぞれ、符号化データからＰＥＳパケットを形成するためのパケッタイザを含み得る。他の例では、ビデオエンコーダ２８およびオーディオエンコーダ２６はそれぞれ、符号化データからＰＥＳパケットを形成するためのそれぞれのパケッタイザとインターフェースし得る。さらに他の例では、カプセル化ユニット３０は、符号化オーディオデータと符号化ビデオデータとからＰＥＳパケットを形成するためのパケッタイザを含み得る。
【００６６】
ビデオエンコーダ２８は、ピクセル解像度、フレームレート、様々なコーディング規格への準拠、様々なコーディング規格のための様々なプロファイルおよび／またはプロファイルのレベルへの準拠、（たとえば、２次元または３次元再生用の）１つまたは複数のビューを有する表現、あるいは他のそのような特性など、様々なビットレートでおよび様々な特性を用いてマルチメディアコンテンツの異なる表現を生成するために、様々な方法でマルチメディアコンテンツのビデオデータを符号化し得る。本開示で使用する表現は、オーディオデータとビデオデータ、たとえば、１つまたは複数のオーディオエレメンタリストリームと１つまたは複数のビデオエレメンタリストリームの組合せを備え得る。各ＰＥＳパケットは、ＰＥＳパケットが属するエレメンタリストリームを識別するｓｔｒｅａｍ＿ｉｄを含み得る。カプセル化ユニット３０は、エレメンタリストリームを様々な表現のビデオファイルにアセンブルすることを担当する。
【００６７】
カプセル化ユニット３０は、オーディオエンコーダ２６とビデオエンコーダ２８とから表現のエレメンタリストリームのＰＥＳパケットを受信し、ＰＥＳパケットから対応するネットワークアブストラクションレイヤ（ＮＡＬ：network abstraction layer）ユニットを形成する。Ｈ．２６４／ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）の例では、コード化ビデオセグメントは、ビデオテレフォニー、ストレージ、ブロードキャスト、またはストリーミングなどのアプリケーションに対処する「ネットワークフレンドリーな」ビデオ表現を与えるＮＡＬユニットに編成される。ＮＡＬユニットは、Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｌａｙｅｒ（ＶＣＬ）ＮＡＬユニットと非ＶＣＬ  ＮＡＬユニットとにカテゴリー分類され得る。ＶＣＬユニットは、コア圧縮エンジンを含み得、ブロック、マクロブロック、および／またはスライスレベルのデータを含み得る。他のＮＡＬユニットは非ＶＣＬ  ＮＡＬユニットであり得る。いくつかの例では、通常は１次コード化ピクチャとして提示される、１つの時間インスタンス中のコード化ピクチャは、１つまたは複数のＮＡＬユニットを含み得るアクセスユニット中に含まれ得る。
【００６８】
非ＶＣＬ  ＮＡＬユニットは、特に、パラメータセットＮＡＬユニットおよびＳＥＩ  ＮＡＬユニットを含み得る。パラメータセットは、（シーケンスパラメータセット（ＳＰＳ）中の）シーケンスレベルヘッダ情報と、（ピクチャパラメータセット（ＰＰＳ）中の）まれに変化するピクチャレベルヘッダ情報とを含み得る。パラメータセット（たとえば、ＰＰＳおよびＳＰＳ）がある場合、まれに変化する情報をシーケンスごとまたはピクチャごとに繰り返す必要はなく、したがってコーディング効率が改善され得る。さらに、パラメータセットの使用は重要なヘッダ情報の帯域外送信を可能にし、誤り耐性のための冗長送信の必要を回避し得る。帯域外送信の例では、ＳＥＩ  ＮＡＬユニットなど、他のＮＡＬユニットとは異なるチャネル上でパラメータセットＮＡＬユニットが送信され得る。
【００６９】
補足エンハンスメント情報（ＳＥＩ）は、ＶＣＬ  ＮＡＬユニットからのコード化ピクチャサンプルを復号するためには必要でないが、復号、表示、誤り耐性、および他の目的に関係するプロセスを支援し得る情報を含んでいることがある。ＳＥＩメッセージは非ＶＣＬ  ＮＡＬユニット中に含まれていることがある。ＳＥＩメッセージは、一部の標準規格の規範的部分であり、したがって、常に標準準拠デコーダ実装のために必須であるとは限らない。ＳＥＩメッセージは、シーケンスレベルのＳＥＩメッセージまたはピクチャレベルのＳＥＩメッセージであり得る。いくつかのシーケンスレベル情報は、ＳＶＣの例ではスケーラビリティ情報ＳＥＩメッセージ、ＭＶＣではビュースケーラビリティ情報ＳＥＩメッセージなど、ＳＥＩメッセージ中に含まれていることがある。これらの例示的なＳＥＩメッセージは、たとえば、動作ポイントの抽出およびそれらの動作ポイントの特性に関する情報を伝達し得る。さらに、カプセル化ユニット３０は、表現の特性を記述するメディアプレゼンテーション記述子（ＭＰＤ）など、マニフェストファイルを形成し得る。カプセル化ユニット３０は、拡張可能マークアップ言語（ＸＭＬ）に従ってＭＰＤをフォーマットし得る。
【００７０】
カプセル化ユニット３０は、マニフェストファイル（たとえば、ＭＰＤ）とともに、マルチメディアコンテンツの１つまたは複数の表現についてのデータを出力インターフェース３２に供給し得る。出力インターフェース３２は、ユニバーサルシリアルバス（ＵＳＢ）インターフェース、ＣＤまたはＤＶＤライターまたはバーナーなど、記憶媒体に書き込むためのネットワークインターフェースまたはインターフェース、磁気またはフラッシュ記憶媒体へのインターフェース、あるいはメディアデータを記憶または送信するための他のインターフェースを備え得る。カプセル化ユニット３０は、マルチメディアコンテンツの表現の各々のデータを出力インターフェース３２に供給し得、出力インターフェース３２は、ネットワーク送信または記憶媒体を介してそのデータをサーバデバイス６０に送り得る。図１の例では、サーバデバイス６０は、様々なマルチメディアコンテンツ６４を記憶する記憶媒体６２を含み、各マルチメディアコンテンツ６４は、それぞれのマニフェストファイル６６と１つまたは複数の表現６８Ａ〜６８Ｎ（表現６８）とを含む。本開示の技法によれば、マニフェストファイル６６の部分は、別々のロケーションに記憶され得、たとえば、記憶媒体６２、または潜在的にプロキシデバイスなどネットワーク７４の別のデバイスの別の記憶媒体のロケーションに記憶され得る。
【００７１】
いくつかの例では、表現６８は表現グループに分離され得る。すなわち、表現６８の様々なサブセットは、コーデック、プロファイルおよびレベル、解像度、ビューの数、セグメントのファイルフォーマット、表現を用いて表示されるべきテキストおよび／または復号され、たとえばスピーカーによって提示されるべきオーディオデータの言語または他の特性を識別し得るテキストタイプ情報、表現グループ中の表現のためのシーンのカメラアングルまたは現実世界のカメラパースペクティブを記述し得るカメラアングル情報、特定のオーディエンスのコンテンツ適合性を記述するレーティング情報など、特性のそれぞれの共通のセットを含み得る。
【００７２】
マニフェストファイル６６は、特定の表現グループに対応する表現６８のサブセットを示すデータ、ならびに表現グループについての共通の特性を含み得る。マニフェストファイル６６はまた、ビットレートなど、表現グループの個々の表現についての個々の特性を表すデータを含み得る。このようにして、表現グループは、簡略化されたネットワーク帯域幅適応を可能にし得る。表現グループ中の表現は、マニフェストファイル６６の表現グループ要素の子要素を使用して示され得る。
【００７３】
マニフェストファイル６６はまた（すなわち、追加または代替として）、表現６８のうちの１つまたは複数についてのトリックモード情報をシグナリングし得る。いくつかの例では、表現６８のうちの１つまたは複数は、トリックモードサポートについてのそれぞれの時間サブシーケンスを含み得る。トリックモードは、概して、表現のデータが開始から終了まで再生されない表現のための再生モードに対応するが、代わりに、（たとえば、特定の時間ロケーションをシークすることを可能にするために）指定の時間ロケーションにおいて開始するか、あるいは１つまたは複数のフレームを順方向または逆方向の時間的方向にスキップし得る（たとえば、早送りまたは早戻し）。
【００７４】
トリックモードを可能にするために、マルチメディアコンテンツ６４は、対応する表現６８の時間サブシーケンスについてのデータのロケーションを表す情報を含み得る。いくつかの例では、マニフェストファイル６６は、時間サブシーケンスについてのデータのロケーションを表す情報を含み得る。他の例では、表現６８自体が、時間サブシーケンスについてのデータのロケーションを表す情報を含み得る。さらに他の例では、表現６８とマニフェストファイル６６の両方が、時間サブシーケンスについてのデータのロケーションを表す情報を含み得る。
【００７５】
いくつかの例では、コンテンツ作成デバイス２０は、メディアコンテンツを、たとえば、ライブサービス用に記録されているメディアコンテンツとして作成し得る。カプセル化ユニット３０は、場合によっては、メディアコンテンツのマニフェストファイルを周期的に更新する必要があり得る。カプセル化ユニット３０は、メディアコンテンツの特定の期間内にマニフェストファイルを更新することさえ行い得る。本開示の技法によれば、カプセル化ユニット３０は、マニフェストファイルが更新されるべきであることを示すデータを含む表現のセグメントを形成し得る。カプセル化ユニット３０は、それらのセグメント自体において、またはクライアントデバイス４０などのクライアントデバイスがそこからマニフェストファイルへの更新を取り出し得る別個のロケーションにおいて更新を行い得る。このようにして、マニフェストファイル６６がマルチメディアコンテンツ６４の特定の期間内で更新される必要があるとき、カプセル化ユニット３０は、マニフェストファイル６６が更新されるべきであることを示す表現６８のうちの１つまたは複数のセグメントを形成し得る。
【００７６】
いくつかの例では、マニフェストファイル６６は、再生中にリモート期間のデータをマルチメディアコンテンツ６４に挿入するためのデータを含み得る。たとえば、マルチメディアコンテンツ６４内で広告を符号化するのではなく、コンテンツ作成デバイス２０は、再生中にマルチメディアコンテンツ６４中に組み込まれるべき１つまたは複数の別個の広告メディアコンテンツを作成し得る。クライアントデバイス４０は、いくつかの例では、クライアントデバイス４０のユーザが、そのユーザにとって最も好ましく有益な広告を受信するように、広告がクライアントデバイス４０のユーザにターゲットにされ得るようなユーザ固有の情報を提供し得る。ユーザ情報のセットに応答して、サーバデバイス６０は、クライアントデバイス４０にターゲット広告マルチメディアコンテンツのデータを取り出させ得る、マニフェストファイルのターゲット広告部分をクライアントデバイス４０に供給し得る。このようにして、同じマルチメディアコンテンツ６４の２人以上の閲覧者は、広告がユーザにとって最も重要で有用となるように、異なるターゲット広告を受信し得る。
【００７７】
サーバデバイス６０は、要求処理ユニット７０とネットワークインターフェース７２とを含む。いくつかの例では、サーバデバイス６０は複数のネットワークインターフェースを含み得る。さらに、サーバデバイス６０の機能のうちのいずれかまたはすべてが、ルータ、ブリッジ、プロキシデバイス、スイッチ、または他のデバイスなど、コンテンツ配信ネットワークの他のデバイス上で実装され得る。いくつかの例では、コンテンツ配信ネットワークの中間デバイスは、マルチメディアコンテンツ６４のデータをキャッシュし、サーバデバイス６０の構成要素に実質的に準拠する構成要素を含み得る。概して、ネットワークインターフェース７２は、ネットワーク７４を介してデータを送信および受信するように構成される。
【００７８】
要求処理ユニット７０は、クライアントデバイス４０などのクライアントデバイスから、記憶媒体７２のデータについてのネットワーク要求を受信するように構成される。たとえば、要求処理ユニット７０は、Ｒ．Ｆｉｅｌｄｉｎｇらによる、ＲＦＣ２６１６、「Hypertext Transfer Protocol - HTTP/1.1」、Ｎｅｔｗｏｒｋ  Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐ、ＩＥＴＦ、１９９９年６月に記載されている、ハイパーテキスト転送プロトコル（ＨＴＴＰ）バージョン１．１を実装し得る。すなわち、要求処理ユニット７０は、ＨＴＴＰ  ＧＥＴまたは部分ＧＥＴ要求を受信し、これらの要求に応答してマルチメディアコンテンツ６４のデータを与えるように構成され得る。要求は、たとえば、セグメントのＵＲＬを使用して、表現６８のうちの１つのセグメントを指定し得る。いくつかの例では、要求はまた、セグメントの１つまたは複数のバイト範囲を指定し、したがって部分ＧＥＴ要求を備え得る。要求処理ユニット７０はさらに、表現６８のうちの１つのセグメントのヘッダデータを与えるためのＨＴＴＰ  ＨＥＡＤ要求をサービスするように構成され得る。いずれの場合も、要求処理ユニット７０は、要求されたデータをクライアントデバイス４０などの要求元デバイスに与えるための要求を処理するように構成され得る。
【００７９】
図１の例に示すように、マルチメディアコンテンツ６４は、メディアプレゼンテーション記述（ＭＰＤ）に対応し得る、マニフェストファイル６６を含む。マニフェストファイル６６は、異なる代替表現６８（たとえば、異なる品質をもつビデオサービス）の記述を含み得、その記述は、たとえば、表現６８のコーデック情報、プロファイル値、レベル値、ビットレート、および他の記述特性を含み得る。クライアントデバイス４０は、どのように表現６８のセグメントにアクセスすべきかを判断するためにメディアプレゼンテーションのＭＰＤを取り出し得る。
【００８０】
特に、ウェブアプリケーション５２は、ビデオデコーダ４８の復号能力とビデオ出力４４のレンダリング能力とを判断するためにクライアントデバイス４０の構成データ（図示せず）を取り出し得る。構成データはまた、クライアントデバイス４０のユーザによって選択された言語選好、クライアントデバイス４０のユーザによって設定された深度選好に対応する１つまたは複数のカメラパースペクティブ、および／またはクライアントデバイス４０のユーザによって選択されたレーティング選好のうちのいずれかまたはすべてを含み得る。ウェブアプリケーション５２は、たとえば、ＨＴＴＰ  ＧＥＴ要求および部分ＧＥＴ要求をサブミットするように構成されたウェブブラウザまたはメディアクライアントを備え得る。ウェブアプリケーション５２は、クライアントデバイス４０の１つまたは複数のプロセッサまたは処理ユニット（図示せず）によって実行されるソフトウェア命令に対応し得る。いくつかの例では、ウェブアプリケーション５２に関して説明する機能のすべてまたは部分が、ハードウェア、あるいはハードウェア、ソフトウェア、および／またはファームウェアの組合せで実装され得、ソフトウェアまたはファームウェアの命令を実行するために必須のハードウェアが設けられ得る。
【００８１】
ウェブアプリケーション５２は、クライアントデバイス４０の復号能力およびレンダリング能力を、マニフェストファイル６６の情報によって示される表現６８の特性と比較し得る。ウェブアプリケーション５２は、初めに、表現６８の特性を判断するためにマニフェストファイル６６の少なくとも部分を取り出し得る。たとえば、ウェブアプリケーション５２は、本開示の技法に従って、１つまたは複数の表現グループの特性を記述するマニフェストファイル６６の部分を要求し得る。ウェブアプリケーション５２は、クライアントデバイス４０のコーディング能力およびレンダリング能力によって満たされ得る特性を有する表現６８のサブセット（たとえば、表現グループ）を選択し得る。ウェブアプリケーション５２は、次いで、表現グループ中の表現のビットレートを判断し、ネットワーク帯域幅の現在利用可能な量を判断し、ネットワーク帯域幅によって満たされ得るビットレートを有する表現のうちの１つからセグメントを取り出し得る。
【００８２】
概して、より高いビットレート表現はより高品質のビデオ再生を生じ得るが、利用可能なネットワーク帯域幅が減少したとき、より低いビットレート表現は十分な品質のビデオ再生を与え得る。したがって、利用可能なネットワーク帯域幅が比較的高いとき、ウェブアプリケーション５２は比較的高いビットレート表現からデータを取り出し得るが、利用可能なネットワーク帯域幅が低いとき、ウェブアプリケーション５２は比較的低いビットレート表現からデータを取り出し得る。このようにして、クライアントデバイス４０は、ネットワーク７４上でマルチメディアデータをストリーミングしながら、ネットワーク７４の変化するネットワーク帯域幅利用可能性にも適応し得る。
【００８３】
上記のように、いくつかの例では、クライアントデバイス４０は、たとえば、サーバデバイス６０またはコンテンツ配信ネットワークの他のデバイスにユーザ情報を提供し得る。ウェブアプリケーション５２は、たとえば、ユーザ識別子、ユーザ選好、および／またはユーザ人口統計学的情報を収集し、そのようなユーザ情報をサーバデバイス６０に提供し得る。ウェブアプリケーション５２は、次いで、再生中にターゲット広告メディアコンテンツからのデータを、要求されたメディアコンテンツのメディアデータ中に挿入するために使用すべき、ターゲット広告メディアコンテンツに関連するマニフェストファイルを受信し得る。
【００８４】
時々、クライアントデバイス４０のユーザは、表現６８のうちの選択された１つがトリックモードで再生されることを要求するために、キーボード、マウス、スタイラス、タッチスクリーンインターフェース、ボタン、または他のインターフェースなど、クライアントデバイス４０のユーザインターフェースを使用してウェブブラウザ５２と対話し得る。たとえば、ユーザは、再生をそこから開始するか、または特定の時間ロケーションをそこからスキップもしくはシークすべき特定の時間ロケーションを選択し得る。別の例として、ユーザは、表現を早送りまたは早戻しすることを選択し得る。
【００８５】
ユーザからのそのような要求に応答して、ウェブアプリケーション５２は、要求されたトリックモードを実行するために、表現６８のうちの１つが時間サブシーケンスを含むかどうかを判断し得る。一例として、ユーザは、ビデオデータを早送りモードで再生することを選択し得る。表現のセグメントのすべてのデータを取り出すのではなく、ウェブアプリケーション５２は、表現の時間サブシーケンスに対応する表現のデータのロケーションを判断し得る。時間サブシーケンスのデータは、たとえば、表現の瞬時デコーダリフレッシュ（ＩＤＲ）ピクチャのセットに対応し得る。
【００８６】
表現のＩＤＲピクチャ間には、近似的持続時間、たとえば、２秒、１０秒、または他の近似的持続時間があり得る。その上、ＩＤＲピクチャはイントラ予測モードで符号化され得、したがって、ウェブアプリケーション５２はＩＤＲピクチャ以外のデータを取り出す必要がない。ウェブアプリケーション５２は、通常ならば表現のビデオデータが表示されるであろう同じフレームレートでＩＤＲピクチャを表示させ得る。しかしながら、ＩＤＲピクチャ間の多くのデータのフレームがスキップされ得るので、得られたビデオデータは増加したフレームレートで再生され、したがって所望のトリックモードが達成され得る。
【００８７】
ウェブアプリケーション５２は、様々な技法を使用して時間サブシーケンスについてのデータのロケーションを判断し得る。いくつかの例では、ウェブアプリケーション５２は、ＩＤＲピクチャのロケーションを判断するためにマニフェストファイル６６のデータを分析し得る。ＩＤＲピクチャのロケーションは、特定の表現のセグメント内のバイト範囲を使用して示され得る。他の例では、サブフラグメントインデックスボックス（サブセグメントインデックスボックスとも呼ばれる）など、表現のセグメントの特定のボックスが、時間サブシーケンスについてのデータのロケーションの指示を与え得る。たとえば、サブフラグメントインデックスボックスは、対応するセグメント内のＩＤＲピクチャのバイト範囲を表すデータを含み得る。さらに他の例では、マニフェストファイル６６と表現６８の両方が、時間サブシーケンスについてのデータを取り出すためにウェブアプリケーション５２によって使用される情報を含み得る。いずれの場合も、ウェブアプリケーション５２は、復号または表示のために使用されないであろうデータを取り出すことを回避するために、ＩＤＲピクチャについての部分ＧＥＴ要求を構築するためのセグメント中のＩＤＲピクチャのバイト範囲を判断し得る。
【００８８】
いくつかの例では、カプセル化ユニット３０は、ＩＤＲピクチャがセグメント内で連続するようなセグメントを形成し得る。すなわち、カプセル化ユニット３０は、他のタイプのピクチャの介在バイトなしに、ＩＤＲピクチャに対応するセグメントのバイトが連続することを保証し得る。このようにして、ウェブアプリケーション５２は、表現の時間サブシーケンスについてのデータを取り出すために表現のセグメントの単一バイト範囲を指定するだけでよい。いくつかの例では、トリックモードを実行するためにオープンデコーダリフレッシュ（ＯＤＲ：open decoder refresh）ピクチャも使用され得る。
【００８９】
いくつかの例では、ウェブアプリケーション５２は、マニフェストファイルが更新されるべきであることを受信セグメントの部分が示していると判断し得る。ウェブアプリケーション５２は、マニフェストファイルが更新されるべきであることをセグメントが示すかどうかを判断するために、セグメントのヘッダ部分または他の最初の部分など、各セグメントの特定の部分を分析するように構成され得る。マニフェストファイルが更新されるべきであることをセグメントが示すとき、ウェブアプリケーション５２は、セグメントのデータを使用することによって、あるいはリモートロケーションから、たとえば、サーバ６０からマニフェストファイルを更新するためのデータを取り出すことによって、マニフェストファイルの局所的に記憶されたコピーを更新し得る。マニフェストファイルを更新した後に、ウェブアプリケーション５２は、更新されたマニフェストファイルのデータに基づいて表現６８のデータについての将来の要求をサブミットし得る。
【００９０】
一例として、コンテンツ作成デバイス２０は、ライブスポーツイベント、政治イベント、あるいは、あらかじめ記録されるのでなく一般にライブまたはほぼライブでブロードキャストされる他の報道価値のあるイベントなど、ライブメディアデータを符号化し得る。そのような場合、特定の時間までのメディアデータに対応するセグメントは、初期マニフェストファイル中に含まれる、ＵＲＬなどの識別子を割り当てられ得る。ただし、ある時間期間が経過した後、その特定の時間の後にくるセグメントは、符号化され、ＵＲＬなどの識別子を割り当てられ得る。コンテンツ作成デバイス２０のカプセル化ユニット３０は、その特定の時間の後にくるセグメントのＵＲＬを、更新されたマニフェストファイルに与え得る。したがって、その特定の時間の後に来るセグメントをどのように取り出すべきかを判断するために、クライアントデバイス４０は、その特定の時間の後にくるセグメントを取り出すための要求を構築するために、更新されたマニフェストファイルを示す情報を受信し得る。
【００９１】
いくつかの例では、セグメントは、それが表現の最後のセグメントであるかどうかを示し得る。セグメントが表現の最後のセグメントであるとき、対応するマルチメディアコンテンツの後続の期間の表現を判断するために新しいマニフェストファイルが取り出される必要があり得る。したがって、セグメントがマルチメディアコンテンツの期間中で表現の最後のセグメントであるとウェブアプリケーション５２が判断したとき、ウェブアプリケーション５２は、マルチメディアコンテンツのための更新されたマニフェストファイル、たとえば、マルチメディアコンテンツ６４のマニフェストファイル６６の更新されたバージョンを取り出し得る。
【００９２】
いくつかの例では、クライアントデバイス４０は、クライアントデバイス４０がそこにマルチメディアコンテンツ６４についてのデータを要求した特定の表現６８を示すデータ構造を維持し得る。クライアントデバイス４０はまた、正確に何がいつ再生されたのかの指示を維持し得る。すなわち、データ構造は、実時間（または「壁時計（wall clock）」時間）とプレゼンテーション時間の両方で開始時間および終了時間を表す情報を提供し得る。データ構造はさらに、初期開始時間と再生の開始とを表す情報を提供し得る。マルチメディアコンテンツ６４の再生を終えた後に、クライアントデバイス４０は、データ構造をサーバデバイス６０および／またはコンテンツ作成デバイス２０に送り得る。サーバデバイス６０および／またはコンテンツ作成デバイス２０は、クライアントデバイス４０から受信された情報を使用して、再生の中断を低減することなどのために、エクスペリエンス品質を改善するより最適な方法を判断し得る。
【００９３】
ネットワークインターフェース５４は、選択された表現のセグメントのデータを受信し、ウェブアプリケーション５２に供給し得、ウェブアプリケーション５２は、今度は、そのセグメントをカプセル化解除ユニット５０に供給し得る。カプセル化解除ユニット５０は、ビデオファイルの要素を構成ＰＥＳストリームにカプセル化解除し、ＰＥＳストリームをパケット化解除して符号化データを取り出し、たとえば、ストリームのＰＥＳパケットヘッダによって示される、符号化データがオーディオストリームの一部であるかビデオストリームの一部であるかに応じて、符号化データをオーディオデコーダ４６またはビデオデコーダ４８のいずれかに送り得る。オーディオデコーダ４６は、符号化オーディオデータを復号し、復号されたオーディオデータをオーディオ出力４２に送り、ビデオデコーダ４８は、符号化ビデオデータを復号し、ストリームの複数のビューを含み得る復号されたビデオデータをビデオ出力４４に送る。
【００９４】
ビデオエンコーダ２８、ビデオデコーダ４８、オーディオエンコーダ２６、オーディオデコーダ４６、カプセル化ユニット３０、ウェブアプリケーション５２、およびカプセル化解除ユニット５０はそれぞれ、適用可能なとき、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適な処理回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２８およびビデオデコーダ４８の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。同様に、オーディオエンコーダ２６およびオーディオデコーダ４６の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２８、ビデオデコーダ４８、オーディオエンコーダ２６、オーディオデコーダ４６、カプセル化ユニット３０、ウェブアプリケーション５２、および／またはカプセル化解除ユニット５０を含む装置は、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【００９５】
図２は、例示的なマルチメディアコンテンツ１００の要素を示す概念図である。マルチメディアコンテンツ１００は、マルチメディアコンテンツ６４（図１）、またはメモリ６２に記憶された別のマルチメディアコンテンツに対応し得る。図２の例では、マルチメディアコンテンツ１００は、メディアプレゼンテーション記述（ＭＰＤ）１０２と、複数の表現１１０〜１２０とを含む。表現１１０は、随意のヘッダデータ１１２とセグメント１１４Ａ〜１１４Ｎ（セグメント１１４）とを含み、表現１２０は、随意のヘッダデータ１２２とセグメント１２４Ａ〜１２４Ｎ（セグメント１２４）とを含む。文字Ｎは、便宜上、表現１１０、１２０の各々中の最後のムービーフラグメントを指定するために使用する。いくつかの例では、表現１１０と表現１２０との間で異なる数のムービーフラグメントが存在し得る。
【００９６】
ＭＰＤ１０２は、表現１１０〜１２０とは別のデータ構造を備え得る。ＭＰＤ１０２は図１のマニフェストファイル６６に対応し得る。同様に、表現１１０〜１２０は図１の表現６８に対応し得る。概して、ＭＰＤ１０２は、コーディング特性およびレンダリング特性、表現グループ、ＭＰＤ１０２が対応するプロファイル、テキストタイプ情報、カメラアングル情報、レーティング情報、トリックモード情報（たとえば、時間サブシーケンスを含む表現を示す情報）、および／または（たとえば、再生中のメディアコンテンツ中へのターゲット広告挿入のための）リモート期間を取り出すための情報など、表現１１０〜１２０の特性を全体的に記述するデータを含み得る。リモート期間は外部期間と呼ばれることもある。以下でさらに詳細に説明する図４〜図７に、様々な要素がＭＰＤおよび／または（表現のセグメントもしくは表現のヘッダデータ内などの）表現の一方または両方中に含まれるマルチメディアコンテンツの様々な例を示す。図４〜図７のＭＰＤのいずれかまたはすべては、実質的に図２のＭＰＤ１０２に対応し得る。
【００９７】
ヘッダデータ１１２は、存在するとき、セグメント１１４の特性、たとえば、ランダムアクセスポイントの時間ロケーションを記述し得、セグメント１１４のランダムアクセスポイントは、ランダムアクセスポイント、セグメント１１４内のランダムアクセスポイントへのバイトオフセット、セグメント１１４のユニフォームリソースロケータ（ＵＲＬ）、またはセグメント１１４の他の態様を含む。ヘッダデータ１２２は、存在するとき、セグメント１２４についての同様の特性を記述し得る。追加または代替として、そのような特性はＭＰＤ１０２内に完全に含まれ得る。
【００９８】
セグメント１１４は１つまたは複数のコード化ビデオサンプルを含み、コード化ビデオサンプルの各々はビデオデータのフレームまたはスライスを含み得る。セグメント１１４のコード化ビデオサンプルの各々は、同様の特性、たとえば、高さ、幅、および帯域幅要件を有し得る。そのような特性はＭＰＤ１０２のデータによって記述され得るが、そのようなデータは図２の例に示していない。ＭＰＤ１０２は、本開示において説明するシグナリング情報のいずれかまたはすべてに加えて、３ＧＰＰ仕様に記載されている特性を含み得る。
【００９９】
セグメント１１４、１２４の各々は、一意のユニフォームリソース識別子（ＵＲＩ）、たとえば、ユニフォームリソースロケータ（ＵＲＬ）に関連し得る。したがって、セグメント１１４、１２４の各々は、ＤＡＳＨなどのストリーミングネットワークプロトコルを使用して独立に取出し可能であり得る。このようにして、クライアントデバイス４０などの宛先デバイスは、セグメント１１４または１２４を取り出すためにＨＴＴＰ  Ｇｅｔ要求を使用し得る。いくつかの例では、クライアントデバイス４０は、セグメント１１４または１２４の特定のバイト範囲を取り出すためにＨＴＴＰ部分Ｇｅｔ要求を使用し得る。
【０１００】
上記のように、ＭＰＤ１０２は特定のＭＰＤプロファイルに準拠し得る。ＭＰＤ１０２は、ＭＰＤ１０２および／またはマルチメディアコンテンツ１００の多目的インターネットメール拡張（ＭＩＭＥ）タイプを示す情報を含み得る。しかしながら、ＭＩＭＥタイプは、概して、マルチメディアコンテンツを提示するためにどんなコーデックが必要とされるかを示さない。概して、デバイスが、ＭＰＤ１０２など、マルチメディアコンテンツのＭＰＤを取り出すことができる場合、そのデバイスは、ＭＰＤに対応するマルチメディアコンテンツのデータを再生することができると仮定される。ただし、この仮定は常に安全であるとは限らない。したがって、いくつかの例では、ＭＰＤ１０２は、ＭＰＤ１０２が対応するプロファイルを示す情報を含み得る。
【０１０１】
ＭＰＤが対応し得るプロファイルの数が比較的小さいことがある。プロファイルは、Ｈ．２６４／ＡＶＣがビデオコーディングのためのプロファイルおよびレベルを含む様式と同様に、機能に対処するためのレベルによってサポートされ得る。ＭＰＤプロファイルは、上位プロファイルがすべての下位プロファイルのすべての特徴を含み得るという点で、オニオンシェル化（onion-shell）され得る。登録機関が様々なプロファイルを登録するための登録プロセスがあり得る。いくつかの例では、クライアントデバイス４０などのクライアントデバイスは、ＭＰＤ１０２によってシグナリングされる表現１１０〜１２０の特性など、ＭＰＤの他のデータを取り出す前に、ＭＰＤ１０２などのＭＰＤのプロファイルを示す情報を取り出すように構成され得る。このようにして、ＭＰＤ１０２へのアクセスが与えられる前にＭＰＤ１０２のプロファイルがシグナリングされ得る。
【０１０２】
プロファイル識別子は、プレーンテキストで（たとえば、プレーンネームとして）、または逆引き（reversed）ドメインネームで与えられ得る。プレーンネームは、３ＧＰＰまたは別の登録機関など、登録機関によって予約され得る。対応するマルチメディアコンテンツが、プロファイルに準拠し、また、ＭＰＤを読み取り、リーダー（たとえば、クライアントデバイス）が認識したものを解釈し、リーダーが理解しないマテリアルを無視するようにそのプロファイルを実装する認可をリーダーに与えることをプロファイルが請求し得るという点で、プロファイルは請求および認可と見なされ得る。
【０１０３】
プロファイルは、たとえば、ＭＰＤ１０２の特徴、ネットワークの使用、（１つまたは複数の）メディアフォーマット、使用される（１つまたは複数の）コーデック、保護フォーマット、および／またはビットレート、スクリーンサイズなどの定量的測度などの特性を記述し得る。このようにして、ＭＰＤ１０２のプロファイルは、ＭＰＤ１０２および／またはマルチメディアコンテンツ１００のデータを取り出すためにどのコーデックがサポートされる必要があるかを示す情報を提供し得る。プロファイルは「準拠ポイント」と表されることもある。ＭＰＤが準拠するプロファイルはＭＰＤの「Ｐｒｏｆｉｌｅｓ」属性中に示され得る。したがって、クライアントデバイスは、ＭＰＤ１０２の追加のデータを取り出す前に、この「Ｐｒｏｆｉｌｅｓ」属性に関係する情報を含むＭＰＤ１０２の部分を取り出すように構成され得る。代替的に、プロファイルは、ＭＰＤのＭＩＭＥタイプ中のパラメータとして示され得る。たとえば、プロファイル「Ｘ、Ｙ、およびＺ」は以下の様式でシグナリングされ得る。
【０１０４】
video/vnd.mpeg.mpd;profiles=“X,Y,Z”
いくつかの例では、ＭＰＤ１０２は、（リモート期間とも呼ばれる）外部期間のデータを参照し得る。期間は、概して、マルチメディアコンテンツの特定の時間セクションに対応する。各期間は、表現１１０〜１２０など、１つまたは複数の表現を含み得る。ただし、外部期間は、マルチメディアコンテンツ１００の期間内にまたはそれらの間に挿入され得る。外部期間は、マルチメディアコンテンツのマルチメディアデータの他にマルチメディアデータを含み得る。たとえば、外部期間は広告データを含み得る。
【０１０５】
期間は、それらの持続時間によって定義され得、すなわち、Ｐｅｒｉｏｄの開始時間は前のＰｅｒｉｏｄの持続時間に依存し得る。クライアントデバイスは外部期間をＭＰＤ構造にマッピングし得る。ライブサービスでは、ＭＰＤの連結が、適切な更新プロシージャを用いた、サーバデバイス６０などのサーバ上のＭＰＤの動的作成によって達成され得る。他のウェブ技術も使用され得る。クライアントデバイス４０のユーザをターゲットにした広告を含んでいる新しい期間を生成するために、外部的に定義された期間のＵＲＬがリアルタイムで処理され得る。クライアントデバイス４０は、広告ターゲッティングのために使用され得る要求に、追加の情報、たとえば、ユーザ識別子、ユーザ選好、ユーザ人口統計学的情報、または他の情報を供給し得る。
【０１０６】
以下の表１に、マルチメディアコンテンツの１つまたは複数のＰｅｒｉｏｄを記述し、外部期間の存在を示すためにＭＰＤ１０２中で提供され得る情報の例示的なセットを示す。
【表１】
0005559432.tif 000002
【０１０７】
このようにして、ＭＰＤ１０２のＰｅｒｉｏｄ要素は、たとえば、ｐｅｒｉｏｄＬｉｓｔＵＲＩを使用して外部（またはリモート）期間を参照し得る。オンデマンドコンテンツでは、クライアントデバイス４０などのクライアントデバイスにとって、期間持続時間の指示は、外部期間をサポートするために開始時間よりも有用であり得る。ＭＰＤはＰｅｒｉｏｄのシーケンスを含み得、Ｐｅｒｉｏｄは内部でも外部でもよい。ユーザ固有の情報とともに、そのようなリモート期間を使用することによってターゲットユーザ広告が可能になり得る。サーバデバイス６０および／またはコンテンツ作成デバイス２０は、ユーザごとに、またはクライアントデバイスごとに別々のＭＰＤを動的に生成するように構成され得る。クライアントデバイス４０、または別のデバイスは、たとえば、動的に作成されたＭＰＤを使用して、ターゲット広告のプレイアウトとライブサービスとを連結し得る。
【０１０８】
このようにして、本開示の技法は、サービスプロバイダが３ＧＰＰ  ＡＨＳを通してオンデマンドコンテンツを提供する状況をサポートし得る。コンテンツはいくつかのシーンを含み得、各シーン間に広告が追加され得る。広告はユーザごとに異なり得る。すなわち、ターゲット広告が追加され得る。さらに、各広告は持続時間が異なり得る。同様に、サービスプロバイダは特定のライブサービス（たとえば、フリーサービス）を提供し得る。ライブサービスにアクセスするとき、サービスプロバイダは、ユーザをターゲットにしていることもありしていないこともある広告を追加し得る。広告の持続時間は、アクセス時間、アクセスロケーション、ユーザなどに応じて異なり得る。サーバデバイス６０は、広告が見られることを保証するために、広告が完了した後にのみライブサービスのＵＲＬを与えるように構成され得る。
【０１０９】
図３は、図２のセグメント１１４、１２４のうちの１つなど、表現のセグメントに対応し得る、例示的なビデオファイル１５０の要素を示すブロック図である。セグメント１１４、１２４の各々は、図３の例に示すデータの構成に実質的に準拠するデータを含み得る。同様に、以下で説明する図４〜図７のセグメントも、ビデオファイル１５０の構造に実質的に準拠し得る。上記で説明したように、ＩＳＯベースメディアファイルフォーマットおよびそれの拡張に従うビデオファイルは、「ボックス」と呼ばれる一連のオブジェクトにデータを記憶する。図３の例では、ビデオファイル１５０は、ファイルタイプ（ＦＴＹＰ）ボックス１５２と、ムービー（ＭＯＯＶ）ボックス１５４と、ムービーフラグメント（ＭＯＯＦ）ボックス１６２と、ムービーフラグメントランダムアクセス（ＭＦＲＡ）ボックス１６４とを含む。
【０１１０】
ファイルタイプ（ＦＴＹＰ）ボックス１５２は、概して、ビデオファイル１５０のファイルタイプを記述する。ファイルタイプボックス１５２は、ビデオファイル１５０の最良の使用を記述する仕様を識別するデータを含み得る。ファイルタイプボックス１５２は、ＭＯＯＶボックス１５４と、ムービーフラグメントボックス１６２と、ＭＦＲＡボックス１６４との前に配置され得る。
【０１１１】
いくつかの例では、ビデオファイル１５０などのセグメントは、ＦＴＹＰボックス１５２の前にＭＰＤ更新ボックス（図示せず）を含み得る。ＭＰＤ更新ボックスは、ＭＰＤを更新するための情報とともに、ビデオファイル１５０を含む表現に対応するＭＰＤが更新されるべきであることを示す情報を含み得る。たとえば、ＭＰＤ更新ボックスは、ＭＰＤを更新するために使用されるべきリソースのＵＲＩまたはＵＲＬを与え得る。別の例として、ＭＰＤ更新ボックスは、ＭＰＤを更新するためのデータを含み得る。いくつかの例では、ＭＰＤ更新ボックスはビデオファイル１５０のセグメントタイプ（ＳＴＹＰ）ボックス（図示せず）の直後にき得、ＳＴＹＰボックスはビデオファイル１５０のセグメントタイプを定義し得る。以下でさらに詳細に説明する図７において、ＭＰＤ更新ボックスに関する追加の情報を提供する。
【０１１２】
ＭＯＯＶボックス１５４は、図３の例では、ムービーヘッダ（ＭＶＨＤ）ボックス１５６と、トラック（ＴＲＡＫ）ボックス１５８と、１つまたは複数のムービー拡張（ＭＶＥＸ）ボックス１６０とを含む。概して、ＭＶＨＤボックス１５６はビデオファイル１５０の一般的特性を記述し得る。たとえば、ＭＶＨＤボックス１５６は、ビデオファイル１５０が最初に生成されたとき、ビデオファイル１５０が最後に変更されたときを記述するデータ、ビデオファイル１５０の時間スケール、ビデオファイル１５０の再生の持続時間、またはビデオファイル１５０について一般に記述する他のデータを含み得る。
【０１１３】
ＴＲＡＫボックス１５８は、ビデオファイル１５０のトラックについてのデータを含み得る。ＴＲＡＫボックス１５８は、ＴＲＡＫボックス１５８に対応するトラックの特性を記述するトラックヘッダ（ＴＫＨＤ）ボックスを含み得る。いくつかの例では、ＴＲＡＫボックス１５８はコード化ビデオピクチャを含み得、他の例では、トラックのコード化ビデオピクチャは、ＴＲＡＫボックス１５８のデータによって参照され得るムービーフラグメント１６２中に含まれ得る。
【０１１４】
いくつかの例では、ビデオファイル１５０は２つ以上のトラックを含み得る。したがって、ＭＯＯＶボックス１５４は、ビデオファイル１５０中のトラックの数に等しい数のＴＲＡＫボックスを含み得る。ＴＲＡＫボックス１５８は、ビデオファイル１５０の対応するトラックの特性を記述し得る。たとえば、ＴＲＡＫボックス１５８は、対応するトラックについての時間および／または空間情報を記述し得る。カプセル化ユニット３０（図１）が、ビデオファイル１５０などのビデオファイル中にパラメータセットトラックを含むとき、ＭＯＯＶボックス１５４のＴＲＡＫボックス１５８と同様のＴＲＡＫボックスはパラメータセットトラックの特性を記述し得る。カプセル化ユニット３０は、パラメータセットトラックを記述するＴＲＡＫボックス内のパラメータセットトラック中でシーケンスレベルＳＥＩメッセージの存在をシグナリングし得る。
【０１１５】
ＭＶＥＸボックス１６０は、たとえば、もしあれば、ＭＯＯＶボックス１５４内に含まれるビデオデータに加えて、ムービーフラグメント１６２をビデオファイル１５０が含むことをシグナリングするように、対応するムービーフラグメント１６２の特性を記述し得る。ビデオデータをストリーミングするコンテキストでは、コード化ビデオピクチャは、ＭＯＯＶボックス１５４ではなくムービーフラグメント１６２中に含まれ得る。したがって、すべてのコード化ビデオサンプルは、ＭＯＯＶボックス１５４ではなくムービーフラグメント１６２中に含まれ得る。
【０１１６】
ＭＯＯＶボックス１５４は、ビデオファイル１５０中のムービーフラグメント１６２の数に等しい数のＭＶＥＸボックス１６０を含み得る。ＭＶＥＸボックス１６０の各々は、ムービーフラグメント１６２のうちの対応する１つの特性を記述し得る。たとえば、各ＭＶＥＸボックスは、ムービーフラグメント１６２のうちの対応する１つの持続時間を記述するムービー拡張ヘッダボックス（ＭＥＨＤ）ボックスを含み得る。
【０１１７】
上記のように、カプセル化ユニット３０は、シーケンスデータセットを、実際のコード化ビデオデータを含まないビデオサンプルに記憶し得る。ビデオサンプルは、概して、特定の時間インスタンスにおけるコード化ピクチャの表現である、アクセスユニットに対応し得る。ＡＶＣのコンテキストでは、コード化ピクチャは、アクセスユニットのすべてのピクセルを構築するための情報を含んでいる１つまたは複数のＶＣＬ  ＮＡＬユニットと、ＳＥＩメッセージなど、他の関連する非ＶＣＬ  ＮＡＬユニットとを含む。したがって、カプセル化ユニット３０は、ムービーフラグメント１６２のうちの１つ中に、シーケンスレベルＳＥＩメッセージを含み得る、シーケンスデータセットを含み得る。カプセル化ユニット３０はさらに、シーケンスデータセットおよび／またはシーケンスレベルＳＥＩメッセージの存在を、ムービーフラグメント１６２のうちの１つに対応するＭＶＥＸボックス１６０のうちの１つ内のムービーフラグメント１６２のうちの１つ中に存在するものとしてシグナリングし得る。
【０１１８】
ムービーフラグメント１６２は１つまたは複数のコード化ビデオピクチャを含み得る。いくつかの例では、ムービーフラグメント１６２は１つまたは複数のピクチャグループ（ＧＯＰ）を含み得、ピクチャグループの各々は、いくつかのコード化ビデオピクチャ、たとえば、フレームまたはピクチャを含み得る。さらに、上記で説明したように、ムービーフラグメント１６２は、いくつかの例では、シーケンスデータセットを含み得る。ムービーフラグメント１６２の各々は、ムービーフラグメントヘッダボックス（ＭＦＨＤ、図３に図示せず）を含み得る。ＭＦＨＤボックスは、ムービーフラグメントのシーケンス数など、対応するムービーフラグメントの特性を記述し得る。ムービーフラグメント１６２はビデオファイル１５０中のシーケンス数の順に含まれ得る。
【０１１９】
ＭＦＲＡボックス１６４は、ビデオファイル１５０のムービーフラグメント１６２内のランダムアクセスポイントを記述し得る。これは、ビデオファイル１５０内の特定の時間ロケーションへのシークを実行することなど、トリックモードを実行することを支援し得る。ＭＦＲＡボックス１６４は、概して随意であり、いくつかの例では、ビデオファイル中に含まれる必要がない。同様に、クライアントデバイス４０などのクライアントデバイスは、ビデオファイル１５０のビデオデータを正しく復号し、表示するために、必ずしもＭＦＲＡボックス１６４を参照する必要がない。ＭＦＲＡボックス１６４は、ビデオファイル１５０のトラックの数に等しいか、またはいくつかの例ではビデオファイル１５０のメディアトラック（たとえば、非ヒントトラック）の数に等しい、数のトラックフラグメントランダムアクセス（ＴＦＲＡ）ボックス（図示せず）を含み得る。
【０１２０】
いくつかの例では、ムービーフラグメント１６２は１つまたは複数のＩＤＲおよび／またはＯＤＲピクチャを含み得る。同様に、ＭＦＲＡボックス１６４は、ＩＤＲおよびＯＤＲピクチャのビデオファイル１５０内のロケーションの指示を与え得る。したがって、ビデオファイル１５０の時間サブシーケンスは、ビデオファイル１５０のＩＤＲおよびＯＤＲピクチャから形成され得る。時間サブシーケンスはまた、ＩＤＲおよび／またはＯＤＲピクチャに従属するＰフレームおよび／またはＢフレームなど、他のピクチャを含み得る。サブシーケンスの他のフレーム／スライスに依存する時間サブシーケンスのフレーム／スライスが適切に復号され得るように、セグメント内に時間サブシーケンスのフレームおよび／またはスライスが構成され得る。たとえば、データの階層構成において、他のデータの予測のために使用されるデータも時間サブシーケンス中に含まれ得る。その上、時間サブシーケンスのために使用される特定のセグメントのすべてのデータを取り出すための部分ＧＥＴ要求において単一バイト範囲が指定され得るように、データは連続サブシーケンスで構成され得る。クライアントデバイス４０などのクライアントデバイスは、ＩＤＲおよび／またはＯＤＲピクチャに対応するムービーフラグメント１６２（またはムービーフラグメント１６２の部分）のバイト範囲を判断することによってビデオファイル１５０の時間サブシーケンスを抽出し得る。以下でより詳細に説明するように、ビデオファイル１５０などのビデオファイルは、サブフラグメントインデックスボックスおよび／またはサブトラックフラグメントボックスを含み得、それらの一方または両方は、ビデオファイル１５０の時間サブシーケンスを抽出するためのデータを含み得る。
【０１２１】
図４は、ＭＰＤ２０２と表現グループ２１０〜２２０とを含む例示的なマルチメディアコンテンツ２００を示す概念図である。マルチメディアコンテンツ２００は、マルチメディアコンテンツ６４（図１）、またはメモリ６２に記憶された別のマルチメディアコンテンツに対応し得る。この例では、マルチメディアコンテンツ２００の表現は表現グループによって構成される。すなわち、特性の共通のセットをもつ表現が表現グループに形成され得、それにより、簡略化されたネットワーク帯域幅適応が可能になる。
【０１２２】
この例では、ＭＰＤ２０２は、表現グループ２１０の共通の特性を記述する情報を含む共通の表現特性２０４Ａと、表現グループ２２０の共通の特性を記述する共通の表現特性２０４Ｂとを含む。共通の特性は、コーデック、表現中の表現が準拠するコーデックのプロファイルおよびレベル、ピクセル解像度、フレームレート、または表現の他の特性など、表現のコーディングおよび／またはレンダリング特性を含み得る。
【０１２３】
本開示の技法によれば、特性は、上記で説明した特性に加えて、テキストタイプ値、カメラアングル値、および／またはレーティング値を含み得る。テキストタイプ値は、ビデオデータ（たとえば、字幕テキスト）とともに表示されるべきテキストの特性を記述し得る。テキストタイプ値は、たとえば、テキストの言語、テキストを表示すべきスクリーン上のロケーション、テキストのフォントおよび／またはサイズ、あるいはテキストの他の特性を記述し得る。
【０１２４】
カメラアングル値は、対応する表現のコード化ビデオデータを生成するために（物理的あるいは概念的に）使用されるカメラのための現実世界の水平方向カメラ位置を記述し得る。カメラアングルを使用して、クライアントデバイスは、たとえば、３次元ビデオ再生効果を生成するために、実質的に同時に表示されるべき２つ以上の表現からデータを選択し得る。水平方向の現実世界のカメラロケーションにより、クライアントデバイスは、ビデオデータの３次元再生における深度の相対量を増加または減少させるような表現を選択することが可能になり得る。
【０１２５】
レーティングは、特定のオーディエンスのコンテンツ適合性を記述し得る。たとえば、米国では、アメリカ映画協会（Motion Picture Association of America）が、Ｇ、ＰＧ、ＰＧ−１３、Ｒ、およびＮＣ−１７を含むレーティングを定義している。別の例として、英国では、全英映像等級審査機構（British Board of Film Classification）が、Ｕ、ＰＧ、１２Ａ、１２、１５、１８、およびＲ１８を含むレーティングを定義している。さらに別の例として、中華民国（台湾）では、映画のカテゴリーは、一般オーディエンスカテゴリー、保護カテゴリー、ペアレンタルガイダンスカテゴリー、および制限付きカテゴリーを含む。
【０１２６】
それぞれの表現グループ、たとえば、表現グループ２１０〜２２０の共通の特性２０４を与えることにより、クライアントデバイス（たとえば、クライアントデバイス４０）は、対応する共通の表現特性２０４に少なくとも部分的に基づいて、表現グループ２１０〜２２０のうちの適切な１つを選択し得る。図４の例では、ＭＰＤ２０２はまた、表現２１２Ａ、２１２Ｂ、２２２Ａ、２２２Ｂにそれぞれ対応する、個々の表現特性２０６Ａ、２０６Ｂ、２０８Ａ、および２０８Ｂを含む。個々の表現特性２０６Ａ、２０６Ｂ、２０８Ａ、および２０８Ｂは、共通の表現特性２０４によって示されない表現２１２Ａ、２１２Ｂ、２２２Ａ、２２２Ｂの特性を表す情報を含み得る。たとえば、個々の表現特性２０６Ａ、２０６Ｂ、２０８Ａ、および２０８Ｂは、表現２１２Ａ、２１２Ｂ、２２２Ａ、２２２Ｂのうちのそれぞれの１つのビットレートを表す情報を含み得る。
【０１２７】
表現グループの表現は、異なる符号化または他のパラメータと同じコンテンツ（同じビデオ、同じ言語オーディオなど）を表し得るという点で、相互排他的であると見なされ得る。ＭＰＤ２０２は、表現グループ２１０〜２２０のうちの１つ、たとえば、共通の表現特性２０４を選択するための情報を提供し得る。この情報は、クライアントが所与の表現を復号し、レンダリングすることができるかどうかを示す情報を含み得る。このようにして、クライアントデバイスは、クライアントデバイスが復号および／またはレンダリングすることが不可能な表現を考慮から除外し得る。したがって、クライアントデバイス４０は、復号され、レンダリングされ得る好適な表現グループを選択し、次いで、たとえば、ネットワーク帯域幅利用可能性に基づいて、そのグループから表現を選択し得る。
【０１２８】
クライアントデバイス４０はまた、たとえば、レーティング、言語、および／または深度についてのユーザ選好を用いて構成され得る。したがって、クライアントデバイス４０はまた、選択されたグループがユーザ選好に準拠するように１つまたは複数の表現グループを選択し得る。クライアントデバイス４０は、次いで、同時に再生され得る利用可能な表現グループのサブセットを選択し得る。クライアントデバイス４０が１つのビューしか表示できないとき、クライアントデバイス４０は１つの表現からのみデータを取り出すことを選択し得る。一方、クライアントデバイス４０がステレオビューまたはマルチビュー対応であるとき、クライアントデバイス４０は２つ以上の表現からデータを取り出し得る。
【０１２９】
１つまたは複数の表現グループを選択した後に、クライアントデバイス４０は、たとえば、利用可能なネットワーク帯域幅に基づいて、それらの表現グループから表現を選択し得る。利用可能なネットワーク帯域幅が変化（たとえば、増加または減少）したとき、クライアントデバイス４０は、変化するネットワーク帯域幅状態に適応するために表現グループからの表現の選択を調整し得る。もちろん、クライアントデバイス４０は、ユーザ選好またはデバイス能力（たとえば、復号およびレンダリング能力）が変化した場合にも表現選択を変更し得る。
【０１３０】
共通の表現特性２０４は、いくつかの例では、ＭＰＤ２０２のＲｅｐｒｅｓｅｎｔａｔｉｏｎＧｒｏｕｐ  ＸＭＬ要素に対応し得る。個々の表現特性は、いくつかの例では、ＭＰＤ２０２の対応するＲｅｐｒｅｓｅｎｔａｔｉｏｎＧｒｏｕｐ要素のサブ要素に対応し得る。
【０１３１】
表現の共通の特性を一緒にグループ化することによって、様々な最適化が達成され得る。たとえば、多くの表現が、様々なパラメータについて同じ値を有し得る。したがって、ＭＰＤにおいて特性を個々にシグナリングすると、特性を個々にシグナリングするためにＭＰＤにおいてかなりの重複が生じ得る。多くのクライアントデバイスは、受信されたＭＰＤの大部分を廃棄するように構成される。したがって、クライアントデバイスが受信するＭＰＤの部分において最適化が行われ得る。その上、表現グループが廃棄された場合、クライアントデバイスは、廃棄された表現または表現グループのＭＰＤ中に現在存在する情報（ＵＲＬなど）にアクセスしなくてもよい。クライアントデバイスはまた、たとえば、ライブイベントのためのビデオデータのリアルタイムネットワークストリーミング中では頻繁に更新される傾向がある、ＵＲＬの不必要な更新を回避し得る。ＭＰＤにおける冗長性がなくされた場合でも、クライアントデバイス４０は、著しい量の計算時間を浪費し得る、受信および再構成の後に全ＭＰＤをパースすることが依然として必要になり得る。
【０１３２】
図５は、ＭＰＤデータが様々な表現グループの様々な部分に分離された、別の例示的なマルチメディアコンテンツ２５０を示す概念図である。マルチメディアコンテンツ２５０は、マルチメディアコンテンツ６４（図１）、またはメモリ６２に記憶された別のマルチメディアコンテンツに対応し得る。特に、マルチメディアコンテンツ２５０のマニフェストファイルは、表現グループに関係するデータを概して含む、ＭＰＤ部分２５２を含む。この例では、ＭＰＤ部分２５２は、表現グループデータ２５４からそれぞれの表現グループ２７０〜２８０を指す矢印によって示されようにそれぞれの表現グループ２７０〜２８０に対応する、表現グループデータ２５４Ａおよび２５４Ｂ（表現グループデータ２５４）を含む。
【０１３３】
この例では、表現グループデータ２５４Ａは、表現グループの共通の特性２５６Ａと、表現グループのＭＰＤ部分のロケーション２５８Ａとを含む。すなわち、表現グループ２５８ＡのＭＰＤ部分のロケーションは、表現グループ２６０ＡのＭＰＤ部分のロケーションを示す。表現グループ２５８ＡのＭＰＤ部分のロケーションは、たとえば、表現グループ２６０ＡのＭＰＤ部分のＵＲＩまたはＵＲＬに対応し得る。同様に、表現グループデータ２５４Ｂは、表現グループの共通の特性２５６Ｂと、表現グループ２６０ＢのＭＰＤ部分に対応する、表現グループのＭＰＤ部分のロケーション２５８Ｂとを含む。
【０１３４】
表現グループ２６０ＡのＭＰＤ部分は、表現グループ２７０の特定の表現２７２Ａ、２７２Ｂ（表現２７２）の特性を表す情報を含む。同様に、表現グループ２６０ＢのＭＰＤ部分は、表現グループ２８０の特定の表現２８２Ａ、２８２Ｂ（表現２８２）の特性を表す情報を含む。
【０１３５】
このようにして、クライアントデバイス４０などのクライアントデバイスは、クライアントデバイス４０が取出し、復号、表示しないであろう表現についての表現固有のシグナリングデータを受信することなしに、データをそこから取り出すべき適切な表現グループを判断し得る。したがって、クライアントデバイス４０は、本来ならただ廃棄されるであろう余分のデータを取り出すことを回避し得る。特に、クライアントデバイス４０によって復号され、レンダリングされ得る表現を含む１つまたは複数の表現グループを選択した後に、クライアントデバイス４０は、クライアントデバイス４０によって適切に復号および／またはレンダリングされ得ない表現グループのＭＰＤ部分を取り出すことなしに、選択された表現グループのＭＰＤ部分のみを取り出し得る。
【０１３６】
マルチメディアコンテンツ２５０のデータは、概して、実質的にマルチメディアコンテンツ２００のそれぞれの要素に対応し得る。ただし、マルチメディアコンテンツ２５０は、クライアントデバイスによるマルチメディアコンテンツ２５０についてのＭＰＤデータの階層的ダウンロードを簡略化し得る。たとえば、すべての表現についてのシグナリングデータを含み得る、完全なマニフェストファイルを取り出すのではなく、クライアントデバイスは、単に１つまたは複数の表現グループを判断し、次いで、（たとえば、クライアントデバイスが、表現を復号し、表示するための復号および／またはレンダリングプロシージャをサポートしないので）クライアントデバイスによって取り出されないであろう他の表現グループに対応するＭＰＤ部分を取り出すことなしに、それらの表現グループに対応するＭＰＤ部分を取り出し得る。このようにして、マルチメディアコンテンツ２５０のデータにより、不要なダウンロードおよびパーシングの非効率性を緩和し得る。
【０１３７】
以下の表２に、表現グループの特性を記述する、図４のＭＰＤ２０２および／または図５のＭＰＤ部分２５２などのＭＰＤに追加され得る例示的な要素を与える。共通の表現特性２０４（図４）および／または表現グループの共通の特性２５６は表２の構造に従ってフォーマットされ得る。
【表２】
0005559432.tif 000003
【０１３８】
以下のＸＭＬは、ＭＰＤデータ構造のＲｅｐｒｅｓｅｎｔａｔｉｏｎ  Ｇｒｏｕｐ要素の例を与える。
【数１】
0005559432.tif 000004
【０１３９】
以下の表３は、表現について含まれ得るデータの例示的なセットを与える。このデータは、いくつかの例では個々の表現について与えられ得るが、他の例では、たとえば、上記の表２に従って、データの全部または一部分が表現グループのために与えられ得る。
【表３】
0005559432.tif 000005
【０１４０】
いくつかの例では、表現グループについてのデータと、そのようなグループ内の個々の表現についてのデータとは、階層関係を用いて、ＭＰＤ２０２などのＭＰＤ内に提示され得る。すなわち、個々の表現は、たとえば、ＭＰＤ２０２の、対応する表現グループ要素への子要素としてシグナリングされ得る。同様に、ＭＰＤ部分２５２と、表現グループのＭＰＤ部分２６０とについて、個々の表現特性２６２、２６４は、表現グループの共通の特性２５６の子要素に対応し得る。
【０１４１】
図６は、トリックモードをサポートするために使用され得る別の例示的なマルチメディアコンテンツ３００を示す概念図である。マルチメディアコンテンツ３００は、マルチメディアコンテンツ６４（図１）、またはメモリ６２に記憶された別のマルチメディアコンテンツに対応し得る。この例では、ＭＰＤ３０２は、時間サブシーケンス情報３０６を含み得る、表現情報３０４を含む。表現情報３０４は、この例では、表現３１０の特性を含む。表現３１０はセグメント３１２Ａ〜３１２Ｄ（セグメント３１２）を含む。この例では、セグメント３１２の各々は、それぞれのサブフラグメントインデックスボックス３１４とランダムアクセスポイント（ＲＡＰ）データ３１６とを含む。他の例では、いくつかのセグメントがランダムアクセスポイントを含まず、いくつかのセグメントが複数のランダムアクセスポイントを含むことがある。ランダムアクセスポイントはＩＤＲまたはＯＤＲピクチャを含み得る。
【０１４２】
クライアントデバイス４０は、表現３１０から時間サブシーケンスを抽出し得る。たとえば、クライアントデバイス４０は、表現３１０の時間サブシーケンスを形成するためにＲＡＰ３１６の各々を抽出し得る。代替的に、クライアントデバイス４０は、ＲＡＰ３１６Ａおよび３１６Ｃ、または３１６Ａおよび３１６Ｄなど、ＲＡＰ３１６のサブセットを取り出し得る。ランダムアクセスポイント３１６（またはそれのサブセット）のみを取り出し、再生することにより、クライアントデバイス４０は、トリックモード、たとえば、早送りまたは早戻しで表現３１０を再生し得る。同様に、クライアントデバイス４０は、要求された時間位置から再生を開始するために、ランダムアクセスポイント３１６のうちの特定の１つをスキップまたはシークし得る。
【０１４３】
マルチメディアコンテンツは、トリックモードについての情報を示すために時間サブシーケンス情報３０６および／またはＳＦＩＸボックス３１４の一方または両方を含み得る。時間サブシーケンス情報３０６は、以下の表４によって定義されるものなど、ＭＰＤ３０２の「Ｔｒｉｃｋ  Ｍｏｄｅ」要素を含み得る。
【表４】
0005559432.tif 000006
【０１４４】
表４の例では、Ｔｒｉｃｋ  Ｍｏｄｅ要素は、対応する表現が、サブフラグメントインデックスボックス３１４の情報を使用してバイト範囲によってアクセスされ得る時間サブシーケンスを含んでいることを指定するＴｅｍｐｏｒａｌ  ＳｕｂＳｅｑｕｅｎｃｅ要素を含む。ＲＡＰ３１６は、図３に示すムービーフラグメント１６２など、ムービーフラグメントの部分に対応し得る。
【０１４５】
サブフラグメントインデックスボックス３１４は、概して、対応するセグメント３１２のランダムアクセスポイント３１６のバイト範囲ロケーションを記述し得る。概して、サブフラグメントインデックスボックス３１４は、セグメント３１２のセグメントインデックス（ＳＩＤＸ）ボックス（図６に図示せず）の後に現れ、直前のセグメントインデックスボックス中で参照されるムービーフラグメントのムービーフラグメントプレフィックスサイズを与え得る。以下の表５に、例示的なＳＦＩＸボックスのプロパティを与える。
【表５】
0005559432.tif 000007
【０１４６】
以下の擬似コードに、サブフラグメントインデックスボックス３１４のための例示的なシンタックスを与える。
【数２】
0005559432.tif 000008
【０１４７】
下記の説明は、上記で説明したシンタックスのためのセマンティクスの例示的なセットを与えるものである。
【０１４８】
ｆｒａｇｍｅｎｔ＿ｃｏｕｎｔは、それのサブフラグメント情報がこのボックス中で指定されるフラグメントの数を指定する。これは、直前のセグメントインデックスボックス中のフラグメント参照の数に等しくなければならない。
【０１４９】
ｓｕｂ＿ｆｒａｇｍｅｎｔ＿ｃｏｕｎｔは、フラグメント当たりのサブフラグメントの数を指定する
ｐｒｅｆｉｘ＿ｓｉｚｅは、サブフラグメントｊによって占有されるフラグメントｉのプレフィックスのサイズを指定する。
【０１５０】
代替または追加として、サブトラックフラグメントボックスはセグメント３１２中に含まれていることがある。サブフラグメントインデックスボックスは、メディアデータを要求することに先立ってセグメントインデックスボックスとともにクライアントデバイス４０によって取り出され得るシンタックス情報を提供し得るが、サブフラグメントインデックスボックスは、フラグメントデータのサブセット、たとえば、時間サブレイヤをターゲットにするバイト範囲要求をクライアントデバイス４０が構築するための情報を提供し得る。
【０１５１】
サブトラックフラグメントボックスは、各サブトラックフラグメントのサンプルが、上位サブトラックフラグメント中にのみ現れるすべてのサンプルに先行するように、トラックフラグメントのサンプルデータの再順序付けを指定し得る。下位サブトラックフラグメント中に現れないサブトラックフラグメントのサンプルは、それらがトラックランボックス中に現れるのと同じ順序でファイル（たとえば、セグメント３１２のうちの対応する１つ）内に連続して配置され得る。これにより、サンプルがトラックフラグメント内の時間スケーラビリティレイヤの順に記憶されることが可能になり得る。このボックスが存在するとき、ただ１つのトラックランボックスがあり得る。
【０１５２】
表６に、サブトラックフラグメントボックスのプロパティを記載する。
【表６】
0005559432.tif 000009
【０１５３】
以下の擬似コードに、サブトラックフラグメントボックスのための例示的なシンタックスを示す。
【数３】
0005559432.tif 000010
【０１５４】
下記の説明は、上記で説明したサブトラックフラグメントボックスの例示的なシンタックスのための例示的なセマンティクスを与えるものである。
【０１５５】
ｓｕｂ＿ｔｒａｃｋ＿ｃｏｕｎｔは、サブトラックフラグメントの数を示す。このボックスが存在するとき、ｓｕｂ＿ｔｒａｃｋ＿ｃｏｕｎｔは２以上になり得る。
【０１５６】
ｓａｍｐｌｅ＿ｃｏｕｎｔ［ｉ］は、ｉ＋１のインデックスをもつサブトラックフラグメント中のサンプルの数を示す。サブトラックフラグメントのサンプルは、より小さいインデックス値をもつすべてのサブトラックフラグメントのメンバーであると見なされる。サブトラックフラグメント０中のサンプルの数は、後続ループ中の第１のビットストリングの０の数に等しい。ｓａｍｐｌｅ＿ｃｏｕｎｔ［ｓｕｂ＿ｔｒａｃｋ＿ｃｏｕｎｔ−１］である、ｓｕｂ＿ｔｒａｃｋ＿ｃｏｕｎｔ−１のインデックスをもつサブトラックフラグメント中のサンプルの数は、トラックフラグメント中のサンプルの数に等しい。
【０１５７】
ｃｕｒ＿ｓｕｂ＿ｔｒａｃｋ＿ｆｌａｇが、アウターループの反復ｉにおける１に等しいことは、サンプルが、ｉ＋１のインデックスをもつサブトラックフラグメントに属することを示す。この値が、アウターループの反復における０に等しいことは、サンプルが、ｉ＋１よりも小さいインデックスをもつサブトラックフラグメントに属することを示す。注：すなわち、ループの第１の反復は、サブトラックフラグメント０にもないサブトラックフラグメント１中のサンプルの位置を示すｓａｍｐｌｅ＿ｃｏｕｎｔ［０］フラグを含んでおり、ループの第２の反復は、サブトラックフラグメント１中にもないサブトラックフラグメント２中のサンプルの位置を示すｓａｍｐｌｅ＿ｃｏｕｎｔ［１］フラグを含んでいる、などである。ｓａｍｐｌｅ＿ｃｏｕｎｔ［ｓｕｂ＿ｔｒａｃｋ＿ｃｏｕｎｔ−１］は、トラックフラグメント中のサンプルの数に等しいと見なされる。
【０１５８】
トリックモードは、多種多様なシナリオに適用され得る。たとえば、トリックモードは、一時的にサービスを休止すること、休止後にサービスを再開すること、ある時間期間の間巻き戻すこと、および／または（たとえば、再生が中断された後にまたは特定の所望の時間位置をシークするために）所望の時間位置に進むために早送りすることのために使用され得る。
【０１５９】
時間サブシーケンスを使用してトリックモードをサポートすることにより、いくつかの利点が提供され得る。たとえば、時間サブシーケンスは、様々なフレームレートを比較的容易にサポートし得る。同様に、表現は時間サブシーケンスに制限されないので、時間サブシーケンスを含む表現は標準のプレイアウトのために使用され得る。さらに、時間サブシーケンスを用いた符号化は高効率であり得る。時間サブシーケンスはまた、新しいコーディングプロファイルまたはレベルを必要としなくてもよく、標準の表現を再使用し、追加のクライアント複雑性を回避し、単純なコンテンツプロビジョニングを可能にし、帯域幅、キャッシュ、および記憶効率を与え、異なるトリックモード動作間でユーザエクスペリエンスが共通になるように最適化するためのクライアント実装にフレキシビリティを提供することができ、広範囲のクライアント実装に適用可能であり得、シーク後の始動遅延、ならびに良好なフレームレート、反応性、および他のそのようなメトリックに関して比較的良好なユーザエクスペリエンスを提供することができる。
【０１６０】
図７は、ＭＰＤ３５２が更新されるべきであることを示すためのＭＰＤ更新ボックス３６４をセグメント３６２Ａ〜３６２Ｄが含み得る、別の例示的なマルチメディアコンテンツ３５０を示す概念図である。マルチメディアコンテンツ３５０は、マルチメディアコンテンツ６４（図１）、またはメモリ６２に記憶された別のマルチメディアコンテンツに対応し得る。概して、ＭＰＤ３５２は、表現３６０の特性、および表現３６０のセグメント３６２のＵＲＩまたはＵＲＬなど、表現３６０についての表現情報３５４を含む。場合によっては、表現３６０は、ライブコンテンツ、たとえば、スポーツイベントから形成され得、したがって、セグメント３６２のＵＲＩは事前に決定されないことがある。したがって、表現３６０のセグメントが形成されたとき、セグメントのうちの１つまたは複数は、ＭＰＤ３５２が更新されるべきであることを示すためのＭＰＤ更新ボックスを含み得る。
【０１６１】
たとえば、図７において、セグメント３６２Ａは、ＭＰＤ更新ボックス３６４と、セグメントデータ３６６Ａとを含む。セグメントデータ３６６Ａは、概して、ビデオファイル１５０（図３）に従って形成され得る。ただし、セグメント３６２ＡはＭＰＤ更新ボックス３６４Ａをも含む。このようにして、クライアントデバイス４０は、ＭＰＤ更新ボックス３６４Ａのデータに基づいてＭＰＤ３５２を更新し得る。ＭＰＤ更新ボックス３６４Ａは、ＭＰＤ３５２への更新を含むか、あるいはＭＰＤ３５２のための更新のＵＲＩまたはＵＲＬを含み得る。ＭＰＤ更新ボックス３６４のデータは、必ずしも明示的ボックス中に含まれるとは限らないことを理解されたい。たとえば、ＭＰＤ更新ボックス３６４のデータに実質的に準拠するデータは、セグメント３６２の他のボックス中に、またはセグメント３６２のヘッダ部分中に含まれ得る。このようにして、ＭＰＤ更新情報を含むセグメント３６２の「部分」は、ヘッダ部分、ＭＰＤ更新ボックス３６４と同様のＭＰＤ更新ボックス、あるいはセグメント３６２の１つまたは複数の他のボックス中に含まれるデータに対応し得る。
【０１６２】
このようにして、セグメント３６２Ａのデータを取り出した後に、クライアントデバイス４０は、ＭＰＤ３５２を更新するためにＭＰＤ更新ボックス３６４Ａを分析し得る。クライアントデバイス４０は、次いで、ＭＰＤ３５２の更新されたバージョンを使用してセグメント３６２Ｂおよび３６２Ｃを取り出し得る。セグメント３６２Ｂおよび３６２Ｃは、この場合も図３のビデオファイル１５０に従ってフォーマットされ得る、セグメントデータ３６６Ｂ、３６６Ｃを含む。クライアントデバイス４０はまた、セグメント３６２Ｄのデータを取り出し得る。この例では、セグメント３６２Ｄは、第１の更新に実質的に準拠する方法で、クライアントデバイス４０がＭＰＤ３５２への別の更新を実行するために使用し得る、ＭＰＤ更新ボックス３６４Ｂを含む。したがって、表現３６０のセグメント３６２Ｄを超えてセグメントを受信するために、クライアントデバイス４０は、ＭＰＤ更新ボックス３６４Ｂのデータに対して実行された更新に基づいて、ＭＰＤ３５２の新たに更新されたバージョンを使用し得る。
【０１６３】
ＭＰＤ更新ボックス３６４Ａ、３６４ＢなどのＭＰＤ更新ボックスは、以下の表７に記載のプロパティを含み得る。
【表７】
0005559432.tif 000011
【０１６４】
いくつかの例では、ＭＰＤ更新ボックスを定義するために以下のシンタックスが使用され得る。
【数４】
0005559432.tif 000012
【０１６５】
例示的なＭＰＤ更新ボックスシンタックスのためのセマンティクスの例示的なセットを以下に与える。
【０１６６】
ｍｐｄ＿ｉｎｆｏｒｍａｔｉｏｎ＿ｆｌａｇｓは、以下のうちの０個以上の論理ＯＲを含んでいる。
【０１６７】
０ｘ００  メディアプレゼンテーション記述が現在更新中
０ｘ０１  メディアプレゼンテーション記述が今後更新される
０ｘ０２  プレゼンテーションの終了
０ｘ０３〜０ｘ０７  予約済み
ｎｅｗ＿ｌｏｃａｔｉｏｎ＿ｆｌａｇが１に設定されている場合、ｍｐｄ＿ｌｏｃａｔｉｏｎにおいて指定された新しいロケーションにおいて新しいメディアプレゼンテーション記述が利用可能である。
【０１６８】
ｌａｔｅｓｔ＿ｍｐｄ＿ｕｐｄａｔｅ＿ｔｉｍｅは、最新のＭＰＤのＭＰＤ発行時間からＭＰＤ更新が必要になるまでの時間をｍｓ単位で指定する。クライアントは、以後任意の時間にＭＰＤを更新することを選択し得る。
【０１６９】
ｍｐｄ＿ｌｏｃａｔｉｏｎは、ｎｅｗ＿ｌｏｃａｔｉｏｎ＿ｆｌａｇが設定され、新しいメディアプレゼンテーション記述のユニフォームリソースロケータを与える場合のみ、存在する。
【０１７０】
このようにして、セグメントレベルにおけるバンド内信号が、ＭＰＤ３０２への更新を示すために使用され得る。更新は、いくつかの例では、セグメント境界において与えられ得る。すなわち、ＭＰＤ更新ボックス３６４は、様々な例において、それぞれのセグメントの開始または終了においてのみ存在し得る。いくつかの例では、ＭＰＤ更新の帯域幅が発行を提示した場合、サーバデバイス６０（図１）は、これらの部分のみが更新されるように、いくつかのデバイス能力のためのＭＰＤを提供し得る。その上、ＭＰＤ３０２のＭＰＤ要素は、公開時間をＭＰＤ３０２の壁時計時間で与え得る。これは、ＭＰＤが発行されたときの、ＭＰＤのための一意の識別子を与え得る、一意のＭＰＤ公開時間を提供し得る。それはまた、更新プロシージャのためのアンカーを提供し得る。さらに、サーバデバイス６０および／またはコンテンツ作成デバイス２０は、たとえば、更新を必要としないＭＰＤ３０２の他の部分を変更することなしに、更新を必要とするＭＰＤ３０２の部分のみを更新するために、階層構造を使用してＭＰＤ更新を最適化し得る。
【０１７１】
ターゲット広告挿入など、広告挿入は、図７のものと同様のＭＰＤ更新ボックスを使用しても実行され得る。すなわち、ＭＰＤ更新ボックスは、広告マルチメディアコンテンツからデータを取り出すようにクライアントデバイス４０に指示するために与えられ得る。これは、ゲームのプレイを遅延させるスポーツイベント中のタイムアウトまたは他のアクション中に、また、ビデオ再生のための刺激的なアクションのタイムアウトまたは遅延中に生じ得る。そのようなイベントはいくぶんランダムに発生し得るので、広告が挿入されるべき時間はアプリオリに知られないことがある。
【０１７２】
ＭＰＤ３０２の更新は、セグメントの配信に対して非同期方式で実現可能であり得る。サーバデバイス６０は、ＭＰＤが特定の時間量の間更新されないことをクライアントデバイス４０に対して保証し得る。ただし、サーバデバイス６０は、ＭＰＤが最小更新期間の前にいつ更新されるかを明示的にシグナリングする必要はない。クライアントデバイスは異なるＭＰＤ更新インスタンス上で動作し得るので、完全に同期しているプレイアウトはほとんど達成され得ない。したがって、クライアントはドリフトを経験し得る。サーバデバイス６０および／またはコンテンツ作成デバイス２０によって時間シフト閲覧が与えられ得る。
【０１７３】
図８は、サーバデバイスによって表現グループの指示を与えることと、クライアントデバイスによって表現グループを選択し、ならびに選択された表現グループ内の個々の表現を選択することとを行うための例示的な方法を示すフローチャートである。図８の方法についてサーバデバイス６０およびクライアントデバイス４０に関して説明するが、他のデバイスが図８の方法の技法と類似の技法を実装し得ることを理解されたい。たとえば、コンテンツ作成デバイス２０、あるいはコンテンツ配信ネットワークの１つまたは複数のネットワークデバイスが、サーバデバイス６０による機能の一部または全部を実行し得る。
【０１７４】
サーバデバイス６０は、初めに、マルチメディアコンテンツの表現のセットについてのデータを取得（たとえば、作成するか、またはコンテンツ作成デバイス２０から受信）し得、セット中の表現は、１つまたは複数の共通の特性、ならびにマルチメディアコンテンツのマニフェストファイルを有する。表現のセットは表現グループに対応し得る。サーバデバイス６０は、表現グループの指示をクライアントデバイス４０に与える（４００）。たとえば、サーバデバイス６０は、ＭＰＤ２０２（図４）またはＭＰＤ部分２５２（図５）をクライアントデバイス４０に与え得る。図２、図６、および図７の他の例示的なＭＰＤも、表現グループＸＭＬ要素など、表現グループの指示を含み得る。いずれの場合も、クライアントデバイス４０は、たとえば、サーバデバイス６０から受信されたＭＰＤファイルまたはＭＰＤファイルの部分から、表現グループ特性を記述する情報を受信する（４０２）。
【０１７５】
クライアントデバイス４０は、次いで、クライアントデバイス４０が、取出し、復号、またはレンダリングすることを選択することができないかまたは選択しないであろう表現グループを除去するために、表現グループ特性を分析し得る。たとえば、クライアントデバイス４０は、不適切な表現グループを判断するために復号およびレンダリング能力を表現グループの特性と比較し得る。別の例として、クライアントデバイス４０は、望ましくない表現グループを除去するために、（たとえば、特定のカメラアングルを有する２つ以上のビューによって与えられる）言語、レーティング、および深度の量についてのユーザ選好を比較し得る。クライアントデバイス４０は、次いで、クライアントデバイス４０の復号およびレンダリング能力に少なくとも部分的に基づいて適切な表現グループを選択する（４０４）。もちろん、この選択はまた（追加または代替として）、上記で説明したように、ユーザ選好に基づいて行われ得ることを理解されたい。このようにして、クライアントデバイス４０は、表現のセットについての共通の特性に基づいて表現のセットを選択し得る。
【０１７６】
表現グループを選択した後に、クライアントデバイス４０は、表現グループの表現を特に記述するＭＰＤ部分についてのデータを要求し得る。それに応答して、サーバデバイス６０は、選択された表現グループにおいて、個々の表現特性の中でも、表現ビットレートの指示をクライアントデバイス４０に与える（４０６）。たとえば、サーバデバイス６０は、表現グループ２６０（図５）のＭＰＤ部分のうちの特定の１つについてのデータをクライアントデバイス４０に送り得る。他の例では、クライアントデバイス４０は、マルチメディアコンテンツについての全ＭＰＤ（たとえば、図４のＭＰＤ２０２）をすでに受信していることがあるが、選択された表現グループに特に対応するＭＰＤの部分を特に分析し得る。このようにして、いくつかの例では、図８のステップ４０６は、ステップ４０２および／またはステップ４０４より前に行われ得る。
【０１７７】
いずれの場合も、表現のビットレートを含む、選択された表現グループの表現に固有の特性を受信した後に（４０８）、クライアントデバイス４０は、ネットワーク帯域幅の現在利用可能な量を判断する（４１０）。クライアントデバイス４０は、次いで、選択された表現が、ネットワーク帯域幅の判断された現在利用可能な量によって適応され得るビットレートを有するように、選択された表現グループから表現を選択する（４１２）。表現のビットレートは、表現グループ中の個々の表現のコーディング特性の例を表す。クライアントデバイス４０は、次いで、選択された表現のデータを要求する（４１４）。たとえば、クライアントデバイス４０は、選択された表現のセグメントを要求するためのＨＴＴＰ  ＧＥＴ要求を構築し得る（たとえば、生成し、送る）。代替的に、クライアントデバイス４０は、選択された表現のセグメントのバイト範囲を指定するＨＴＴＰ部分ＧＥＴを構築し得る。いずれの場合も、クライアントデバイス４０は要求をサーバデバイス６０にサブミットし得る。
【０１７８】
サーバデバイス６０は、要求を受信し、それに応答して、要求されたデータをクライアントデバイス４０に送る（４１６）。たとえば、要求処理ユニット７０は、受信された要求のデータ、たとえば、受信された要求のソースインターネットプロトコル（ＩＰ）アドレスおよびソースポートからクライアントデバイス４０のネットワークアドレスを判断し得る。要求処理ユニット７０は、要求されたデータを含むネットワークパケットを形成し、たとえば、クライアントデバイス４０の判断されたＩＰアドレスに宛てられた、要求されたデータをクライアントデバイス４０に送り得る。
【０１７９】
要求されたデータを受信した後、クライアントデバイス４０は、受信されたデータを復号し、表示することを開始する（４１８）。要求されたデータを受信している間、クライアントデバイス４０は、現在利用可能なネットワーク帯域幅を分析することと、ネットワーク帯域幅の現在利用可能な量によって適応され得るビットレートを有する表現からの要求をサブミットすることとを続け得る（４１０〜４１４）。ネットワーク帯域幅の量が変化した場合、クライアントデバイス４０は、選択された表現グループ中の異なる表現に適応的に切り替わり得る。たとえば、クライアントデバイス４０は、表現グループ中の前の表現から要求された最後のセグメントの時間ロケーションに対応する新しい表現中のセグメントを判断し、次いで、新しい表現中のその判断されたセグメント（またはそれの部分）を要求し得る。
【０１８０】
いくつかの例では、サーバデバイス６０は、図８の方法の間に、ターゲット広告挿入に対応するＭＰＤをクライアントデバイス４０に与え得る。ＭＰＤは、クライアントデバイス４０に、クライアントデバイス４０のユーザをターゲットにした広告マルチメディアデータを取り出させ得る。いくつかの例では、クライアントデバイス４０はさらに、広告メディアデータをクライアントデバイス４０のユーザにターゲットにするためのユーザ情報をサーバデバイス６０に提供し得る。ユーザ情報は、ユーザ選好、ユーザ識別情報（ユーザＩＤなど）、ユーザ人口統計学的情報、または他のそのような情報を含み得る。ターゲット広告挿入は、たとえば、図８のステップ４００より前に、またはステップ４１８の後に、および、たとえば、マルチメディアコンテンツの後続の期間について後続の表現を選択する前に行われ得る。
【０１８１】
このように、図８の方法は、マルチメディアコンテンツのマニフェストファイルの少なくとも部分を分析することであって、マニフェストファイルの部分が、マルチメディアコンテンツの表現のセットを示す情報と、表現のセットの各々についての共通の特性を示す情報とを含む、分析することと、表現のセットのうちの１つについての共通の特性に基づいて表現のセットのうちの１つを選択することと、セットのうちの１つの表現のうちの１つの１つまたは複数のコーディング特性に基づいて、表現のセットのうちの選択された１つの表現のうちの１つを選択することと、選択に基づいて表現のうちの１つのデータについての要求を生成することとを含む方法の一例を表す。
【０１８２】
同様に、図８の方法は、１つまたは複数の共通の特性を有するマルチメディアコンテンツの表現のセットを取得することであって、セット中の表現の各々が、共通の特性とは別個の個々のコーディング特性を有する、取得することと、マルチメディアコンテンツのマニフェストファイルを取得することであって、マニフェストファイルが、セット中の表現を示す情報と、表現のセットについての共通の特性を示す情報と、セット中の表現の各々についてのコーディング特性を示す情報とを含む、取得することと、マニフェストファイルの少なくとも部分をクライアントデバイスに送ることとを含む方法の一例を表す。
【０１８３】
図９は、サーバデバイスによってトリックモードを表すデータを与えることと、マルチメディアコンテンツのトリックモードデータを取り出し、再生するためにクライアントデバイスによってそのデータを使用することとを行うための例示的な方法を示すフローチャートである。図９の方法についてサーバデバイス６０およびクライアントデバイス４０に関して説明するが、他のデバイスが図９の方法の技法と類似の技法を実装し得ることを理解されたい。たとえば、コンテンツ作成デバイス２０、あるいはコンテンツ配信ネットワークの１つまたは複数のネットワークデバイスが、サーバデバイス６０による機能の一部または全部を実行し得る。その上、トリックモードの選択は、上記の図８に関して説明したように、表現グループおよび表現グループからの表現の選択と併せて実行され得る。
【０１８４】
サーバデバイス６０は、初めに、マルチメディアコンテンツの１つまたは複数の表現についてのデータを取得（たとえば、作成するか、またはコンテンツ作成デバイス２０から受信）し得、表現のうちの少なくとも１つは、時間サブシーケンス、ならびにマルチメディアコンテンツのマニフェストファイルを含む。マニフェストファイルは、表現が時間サブシーケンスを含むことを示し得る。サーバデバイス６０は、マルチメディアコンテンツの表現の指示、たとえば、表現の特性をクライアントデバイス４０に与える（４３０）。さらに、サーバデバイス６０は、表現のうちの１つまたは複数の時間サブシーケンスの指示を与える（４３２）。すなわち、サーバデバイス６０は、マルチメディアコンテンツの１つまたは複数の表現のために時間サブシーケンスが利用可能であることを示すマルチメディアコンテンツについての情報をＭＰＤファイル中で与え得る。たとえば、サーバデバイス６０は、上の図６に関して説明したように、時間サブシーケンスサブ要素を有するトリックモード要素を含むＭＰＤの少なくとも部分をクライアントデバイス４０に提供し得る。
【０１８５】
クライアントデバイス４０は、マルチメディアコンテンツの表現の特性に基づいて表現を選択する（４３４）。クライアントデバイス４０は必ずしも時間サブシーケンスをもつ表現を選択する必要はないが、これらの技法を示す説明のために、例として、クライアントデバイス４０は、時間サブシーケンスが利用可能である表現を選択すると仮定する。クライアントデバイス４０は、次いで、トリックモードを使用するようにとの要求を受信する（４３６）。たとえば、クライアントデバイス４０は、たとえば、クライアントデバイス４０のユーザから、再生をそこから開始すべき特定の時間ロケーションの選択を受信し得る。代替的に、クライアントデバイス４０は、ビデオデータを早送りまたは早戻しせよという要求を受信し得る。
【０１８６】
トリックモードを使用するようにとの要求に応答して、クライアントデバイス４０は、表現のための時間サブシーケンスが利用可能であるかどうかを判断し、利用可能である場合、時間サブシーケンスの少なくとも部分を取り出すためのデータを要求する（４３８）。サーバデバイス６０は、時間サブシーケンスについてのデータのロケーションの指示をクライアントデバイス４０に与えることによってその要求に応答する（４４０）。いくつかの例では、マルチメディアコンテンツについてのＭＰＤの部分が、時間サブシーケンスについてのデータのロケーションを示し得る。他の例では、クライアントデバイス４０は、対応する表現のセグメントにサブフラグメントインデックスボックスおよび／またはサブトラックフラグメントボックスを要求し得る。
【０１８７】
いずれの場合も、クライアントデバイス４０は、時間サブシーケンスについてのデータのロケーションを示す情報を含む受信データを使用して、指定されたロケーションに時間サブシーケンスのデータを要求する（４４２）。たとえば、クライアントデバイス４０は、ＩＤＲランダムアクセスポイントおよび／またはＯＤＲランダムアクセスポイントを含むロケーション（たとえば、セグメントのＵＲＬ、および、場合によってはセグメントのバイト範囲）を判断し得る。クライアントデバイス４０は、次いで、トリックモードに従ってビデオデータを再生するために、時間サブシーケンスのデータについてのＨＴＴＰ  ＧＥＴまたは部分ＧＥＴ要求を構築し得る。
【０１８８】
クライアントデバイス４０からＨＴＴＰ  ＧＥＴおよび／または部分ＧＥＴ要求を受信した後に、サーバデバイス６０は、要求されたデータをクライアントデバイス４０に与える（４４４）。たとえば、サーバデバイス６０は、ＨＴＴＰ  ＧＥＴ要求に応答してセグメントを送るか、あるいはＨＴＴＰ部分ＧＥＴ要求に応答してセグメントのメディアフラグメント（またはメディアフラグメントの部分）を送り得る。要求されたデータを受信した後に、クライアントデバイス４０は、受信されたデータを復号し、表示する（４４６）。同様に、クライアントデバイス４０は、その表現（または利用可能なネットワーク帯域幅の量が変化した場合は異なる表現）にデータを要求し続け得る。
【０１８９】
このように、図９の方法は、マルチメディアコンテンツのマニフェストファイルの情報を分析することであって、マルチメディアコンテンツの少なくとも１つの表現が時間サブシーケンスを含むことをマニフェストファイルの情報が示す、分析することと、時間サブシーケンスについてのデータの１つまたは複数のロケーションを判断することと、時間サブシーケンスについてのデータについての１つまたは複数の要求をサブミットすることとを含む方法の一例を表す。
【０１９０】
同様に、図９の方法は、時間サブシーケンスを含むマルチメディアコンテンツの少なくとも１つの表現についてのデータを取得することと、マルチメディアコンテンツのマニフェストファイルについてのデータを取得することであって、マルチメディアコンテンツの少なくとも１つの表現が時間サブシーケンスを含むことをマニフェストファイルの情報が示す、取得することと、マニフェストファイルの少なくとも部分をクライアントデバイスに送ることとを含む方法の一例を表す。
【０１９１】
図１０は、ＭＰＤなどのマニフェストファイルが更新されるべきであるという指示をサーバデバイスによって与えることと、クライアントデバイスによってＭＰＤを更新することとを行うための例示的な方法を示すフローチャートである。図１０の方法についてサーバデバイス６０およびクライアントデバイス４０に関して説明するが、他のデバイスが図１０の方法の技法と類似の技法を実装し得ることを理解されたい。たとえば、コンテンツ作成デバイス２０、あるいはコンテンツ配信ネットワークの１つまたは複数のネットワークデバイスが、サーバデバイス６０による機能の一部または全部を実行し得る。その上、ＭＰＤの更新は、上の図８および図９に関して説明したように、トリックモードの選択、および／または表現グループおよび表現グループからの表現の選択と併せて実行され得る。
【０１９２】
いくつかの例では、コンテンツ作成デバイス２０が、スポーツイベントなどのライブイベント中にキャプチャされた符号化ビデオデータを符号化し、カプセル化し得る。このようにして、クライアントデバイス４０は、イベントが行われているときにほぼリアルタイムでイベントのコード化データを取り出し得る。初めに、サーバデバイス６０は、ライブイベントに対応するマルチメディアコンテンツの１つまたは複数の表現を受信し、マルチメディアコンテンツの表現についての特性の指示をＭＰＤ中で与える（４６０）。マルチメディアコンテンツは、イベントがライブ撮影されているものとして形成されていることにより、ＭＰＤは、マルチメディアコンテンツの特定の時間ロケーションまでのセグメントの特性およびロケーションのみを記述し得る。
【０１９３】
クライアントデバイス４０は、ＭＰＤの情報を使用して表現を選択する（４６２）。現在のＭＰＤを使用して、クライアントデバイス４０は、たとえば、時間ロケーションまでの、選択された表現のセグメントを要求し得る。それに応答して、サーバデバイス６０は、要求されたセグメントを送り得る。ただし、さらに、サーバデバイス６０は、ＭＰＤがそのセグメントから更新されるべきであることを示すＭＰＤ更新ボックスまたは他の情報を含むセグメントを送り得る（４６６）。
【０１９４】
それに応答して、クライアントデバイス４０は、受信されたセグメントのうちの１つまたは複数のデータを復号し、表示する（４６８）。クライアントデバイス４０はまた、ＭＰＤが更新されるべきであることを示す情報を受信する（４７０）。たとえば、クライアントデバイス４０は、ＭＰＤがもはや適用されない時間ロケーションの前に最後のセグメントを受信し得る。クライアントデバイス４０は、最後のセグメントが、図７に関して説明したＭＰＤ更新ボックスと同様のＭＰＤ更新ボックスを含むと判断し得る。
【０１９５】
更新ボックスを使用して、クライアントデバイス４０はＭＰＤへの更新を要求する（４７２）。たとえば、クライアントデバイス４０は、ＭＰＤのための更新のネットワークロケーションを判断し、その判断されたロケーションに更新を要求し得る。サーバデバイス６０、またはＭＰＤへの更新を記憶している別のデバイス（たとえば、コンテンツ作成デバイス２０）は、ＭＰＤへの更新を示す情報を送り（４７４）、クライアントデバイス４０はその情報を使用してＭＰＤを更新する（４７６）。代替的に、いくつかの例では、ＭＰＤ更新ボックスは、ＭＰＤ更新自体を示す情報を含み得、その場合、クライアントデバイス４０は、ＭＰＤ更新ボックスの情報を使用してＭＰＤを更新し得る。いずれの場合も、クライアントデバイス４０は、次いで、ＭＰＤの更新されたバージョンを使用して、前のＭＰＤがもはや適用されない時間ロケーションに続くセグメントを要求する（４７８）。クライアントデバイス４０およびサーバデバイス６０は、クライアントデバイス４０がマルチメディアコンテンツの再生を完了するまで同様のステップを実行することを続け得る。
【０１９６】
いくつかの例では、図１０の方法と同様の技法が、ターゲット広告挿入を実行するために使用され得る。たとえば、更新されたＭＰＤは、広告メディアコンテンツに対応する部分を含み得る。クライアントデバイス４０は、所望のメディアコンテンツの後続のメディアデータを取り出すための別の更新されたＭＰＤを含み得る、広告メディアコンテンツの１つまたは複数のセグメントのデータを受信するために、更新されたＭＰＤに基づいて、広告メディアコンテンツのデータを取り出し、再生するように要求され得る。
【０１９７】
このように、図１０の方法は、クライアントデバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第１のセグメントのデータを取り出すことと、マニフェストファイルに従って表現の第２のセグメントの部分を取り出すことであって、第２のセグメントが表現中の第１のセグメントの後に存在し、マニフェストファイルが更新されるべきであることを第２のセグメントの部分が示す、取り出すことと、マニフェストファイルが更新されるべきであるという指示に基づいて、クライアントデバイスによって記憶されたマニフェストファイルのコピーを更新することと、更新されたマニフェストファイルに従って第２のセグメントのメディアデータを取り出すこととを含む方法の一例を表す。
【０１９８】
同様に、図１０の方法は、マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送ることであって、マニフェストファイルが、マルチメディアコンテンツの表現の第１のセグメントを示す情報を含む、送ることと、クライアントデバイスからの要求に応答して、表現の第１のセグメントの少なくとも部分をクライアントデバイスに送ることであって、マニフェストファイルが更新されるべきであることを第１のセグメントの部分が示し、マニフェストファイルの更新されたバージョンが、表現の第２の異なるセグメントを示す情報を含む、送ることと、クライアントデバイスから受信され、更新されたマニフェストファイルに従って形成される要求に応答して、第２のセグメントのデータをクライアントデバイスに送ることとを含む方法の一例を表す。
【０１９９】
図１１は、エクスペリエンス品質（ＱｏＥ）報告ドキュメントのデータを構築し、使用するための例示的な方法を示すフローチャートである。図１１の方法についてサーバデバイス６０およびクライアントデバイス４０に関して説明するが、他のデバイスが図１１の方法の技法と類似の技法を実装し得ることを理解されたい。たとえば、コンテンツ作成デバイス２０、あるいはコンテンツ配信ネットワークの１つまたは複数のネットワークデバイスが、サーバデバイス６０による機能の一部または全部を実行し得る。その上、サーバデバイス６０および／またはコンテンツ作成デバイス２０にＱｏＥ報告を与えることは、上記の図８、図９、および図１０に関して説明したように、ＭＰＤの更新、トリックモードの選択、および／または表現グループおよび表現グループからの表現の選択のうちのいずれかまたはすべてと併せて実行され得る。
【０２００】
初めに、サーバデバイス６０は、マルチメディアコンテンツの表現の特性の指示をクライアントデバイス４０へのＭＰＤ中で与える（５００）。上記で説明したように、クライアントデバイス４０は、たとえば、クライアントデバイス４０の復号および／またはレンダリング能力、ユーザ選好、利用可能なネットワーク帯域幅、および／またはマルチメディアコンテンツの表現の他の特性に基づいて、表現を選択する（５０２）。クライアントデバイス４０は、次いで、選択された表現のうちの１つまたは複数のセグメントを要求する（５０４）。
【０２０１】
サーバデバイス６０は、要求されたセグメントをクライアントデバイス４０に送る（５０６）。要求されたセグメントを受信した後に、クライアントデバイス４０は、受信されたデータを復号し、表示する（５０８）。クライアントデバイス４０は、次いで、すべてのビデオデータが受信されたかどうかを判断する（５１０）。表現の最後のセグメント（または全体的にマルチメディアコンテンツ）が受信されていない場合（５１０の「ＮＯ」分岐）、クライアントデバイス４０は、ネットワーク帯域幅の現在利用可能な量を再び評価し、この分析に基づいて表現を選択し（５０２）、表現のセグメントを要求する（５０４）。
【０２０２】
概して、クライアントデバイス４０は、現在利用可能なネットワーク帯域幅によって適応され得る表現にマルチメディアコンテンツのデータを要求することによって、データをバッファし、バッファオーバーフローおよびアンダーフローを回避することを試み得る。しかしながら、たとえば、マルチメディアコンテンツの実際のコーディング特性が、シグナリングされたコーディング特性に一致しなかった場合、またはクライアントデバイス４０が適切な選択を行うためのデータが十分になかった場合、バッファオーバーフローまたはアンダーフローが時々起こり得る。他の要因も、クライアントデバイス４０のユーザのためのエクスペリエンス品質の低減を生じ得る。したがって、表現の最後のセグメント（またはマルチメディアコンテンツ）が受信され、適切に復号された後に（５１０の「ＹＥＳ」分岐）、クライアントデバイス４０は、サーバデバイス６０にエクスペリエンス品質（ＱｏＥ）報告を与え得る。
【０２０３】
たとえば、クライアントデバイス４０は、選択されたセグメントおよび表現の指示を含むように報告を構築する（５１２）。クライアントデバイス４０はまた、メディア再生の休止を生じ得る、バッファオーバーフロー／アンダーフローの発生を記録し得る。クライアントデバイス４０は、プレイアウトされたＰｅｒｉｏｄを表す、ＰｅｒｉｏｄＲｅｐｏｒｔ要素のシーケンスを含む報告を形成し得る。Ｐｅｒｉｏｄ要素はＲｅｐｒｅｓｅｎｔａｔｉｏｎＲｅｐｏｒｔ要素のシーケンスを含み得、ＲｅｐｒｅｓｅｎｔａｔｉｏｎＲｅｐｏｒｔ要素の各々は、Ｒｅｐｒｅｓｅｎｔａｔｉｏｎの部分の連続プレイアウトを表し、開始時間および終了時間を実時間とプレゼンテーション時間の両方で与える。報告はまた、コンテンツの閲覧とプレイアウトの開始とについてのユーザ要求からの時間である、初期始動時間を含み得る。このようにして、報告ドキュメントは、クライアントデバイスがそこからマルチメディアコンテンツのメディアデータを取り出したマルチメディアコンテンツの表現を示す拡張可能マークアップ言語（ＸＭＬ）フォーマット電子ドキュメントを備え得る。
【０２０４】
クライアントデバイス４０は、報告を、サーバデバイス６０、あるいはコンテンツ作成デバイス２０または専用報告収集デバイスなど、コンテンツ配信ネットワークの別のデバイスに与え得る。このようにして、サーバデバイス６０は、クライアントデバイス４０によって受信されたセグメントおよび表現の指示を受信する（５１４）。サーバデバイス６０は、次いで、コンテンツ作成を改善するために、この指示を、たとえば、コンテンツ作成デバイス２０、あるいはサービスプロバイダまたはメディアアセンブラに関連する別のデバイスに与える（５１６）。クライアントデバイス４０によって提供された情報から、サービスプロバイダは、正確に何がプレイアウトされたか、プレイアウト中にいつ休止があったか、および表現間の切替えがいつあったかを判断し得る。代替または追加として、クライアントデバイス４０は、休止の数ならびに休止持続時間の平均および分散とともに、総プレイアウト持続時間、および表現ごとの別個の連続プレイアウト期間の数の形態で概要情報を提供し得る。
【０２０５】
このデータを使用して、サービスプロバイダは、適応ＨＴＴＰストリーミングを使用するストリーミングのための新しい１つのメディアコンテンツのエクスペリエンス品質情報を分析し得る。サービスプロバイダは、利用可能な異なるビットレートでいくつかの異なる表現を作り、メディアファイルをホストするためのＨＴＴＰサービングインフラストラクチャを提供し、次いで、フィードバックを収集してユーザの閲覧エクスペリエンスの品質を判断し得る。サービスプロバイダは、このデータを使用して、このまたは将来のメディアコンテンツホスティングのサービス品質を改善し得る。エクスペリエンス品質メトリックは、ユーザが経験する実際の閲覧を指し得、ＨＴＴＰ要求のスケジューリング、表現選択決定などのために使用されるクライアントアルゴリズムとは無関係であり得る。このようにして、サービスプロバイダは、特定の閲覧セッションについてユーザの閲覧エクスペリエンスの品質の比較的正確な記述を取得し得る。
【０２０６】
このように、図１１の方法は、メディアデータがそこから取り出されたマルチメディアコンテンツの表現を示す情報を含むドキュメントを構築することと、メディアデータがそこから取り出された、構築されたドキュメントをサーバに送ることとを含む方法の一例を表す。図１１の方法はまた、クライアントデバイスがそこからマルチメディアコンテンツのメディアデータを取り出した、マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを受信することを備える、クライアントデバイスによって取り出されたデータを示す情報を受信することを含む方法の一例を表す。
【０２０７】
１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従ってある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体など、有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０２０８】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。さらに、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０２０９】
命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に提供され得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０２１０】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実施され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明したように１つまたは複数のプロセッサを含んで、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
なお、以下に、出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
マルチメディアデータを取り出す方法であって、前記方法は、
クライアントデバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第１のセグメントのデータを取り出すことと、
前記マニフェストファイルに従って前記表現の第２のセグメントの部分を取り出すことであって、前記第２のセグメントが前記表現中の前記第１のセグメントの後に存在し、前記マニフェストファイルが更新されるべきであることを前記第２のセグメントの前記部分が示す、取り出すことと、
前記マニフェストファイルが更新されるべきであるという前記指示に基づいて、前記クライアントデバイスによって記憶された前記マニフェストファイルの前記コピーを更新することと、
前記更新されたマニフェストファイルに従って前記第２のセグメントのメディアデータを取り出すことと
を備える、方法。
［Ｃ２］
前記マニフェストファイルを更新することが、前記第２のセグメントの前記部分のデータを使用して前記マニフェストファイルを更新することを備える、Ｃ１に記載の方法。
［Ｃ３］
前記マニフェストファイルを更新することが、前記第２のセグメントの前記部分中に示されたロケーションから前記マニフェストファイルを更新するためのデータを取り出すことを備える、Ｃ１に記載の方法。
［Ｃ４］
前記マニフェストファイルを更新することが、
更新されるべきである前記マニフェストファイルの１つまたは複数の要素を判断することと、
前記マニフェストファイルの前記判断された１つまたは複数の要素のみを更新することと
を備える、Ｃ１に記載の方法。
［Ｃ５］
前記マルチメディアコンテンツの第２の異なる表現からメディアデータを取り出すことと、
前記第１の表現と前記第２の表現とから取り出された前記データを示す情報を送ることと
をさらに備える、Ｃ１に記載の方法。
［Ｃ６］
メディアデータがそこから取り出された、前記第１の表現と前記第２の表現とを含む、前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを構築すること
をさらに備え、
取り出された前記データを示す前記情報を送ることが、前記メディアデータがそこから取り出された前記構築されたドキュメントをサーバに送ることを備える、
Ｃ５に記載の方法。
［Ｃ７］
マルチメディアデータを取り出すためのデバイスであって、前記デバイスは、前記デバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第１のセグメントのデータを取り出すことと、前記マニフェストファイルに従って前記表現の第２のセグメントの部分を取り出すことであって、前記第２のセグメントが前記表現中の前記第１のセグメントの後に存在し、前記マニフェストファイルが更新されるべきであることを前記第２のセグメントの前記部分が示す、取り出すことと、前記マニフェストファイルが更新されるべきであるという前記指示に基づいて、前記デバイスによって記憶された前記マニフェストファイルの前記コピーを更新することと、前記更新されたマニフェストファイルに従って前記第２のセグメントのメディアデータを取り出すこととを行うように構成された１つまたは複数のプロセッサを備える、デバイス。
［Ｃ８］
前記マニフェストファイルを更新するために、前記１つまたは複数のプロセッサが、前記第２のセグメントの前記部分のデータを使用して前記マニフェストファイルを更新するように構成された、Ｃ７に記載のデバイス。
［Ｃ９］
前記マニフェストファイルを更新するために、前記１つまたは複数のプロセッサが、前記第２のセグメントの前記部分中に示されたロケーションから前記マニフェストファイルを更新するためのデータを取り出すように構成された、Ｃ７に記載のデバイス。
［Ｃ１０］
前記マニフェストファイルを更新するために、前記１つまたは複数のプロセッサが、更新されるべきである前記マニフェストファイルの１つまたは複数の要素を判断することと、前記マニフェストファイルの前記判断された１つまたは複数の要素のみを更新することとを行うように構成された、Ｃ７に記載のデバイス。
［Ｃ１１］
前記１つまたは複数のプロセッサが、前記マルチメディアコンテンツの第２の異なる表現からメディアデータを取り出すことと、前記第１の表現と前記第２の表現とから取り出された前記データを示す情報を送ることとを行うようにさらに構成された、Ｃ７に記載のデバイス。
［Ｃ１２］
前記１つまたは複数のプロセッサは、メディアデータがそこから取り出された、前記第１の表現と前記第２の表現とを含む、前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを構築するようにさらに構成され、取り出された前記データを示す前記情報を送るために、前記１つまたは複数のプロセッサは、前記メディアデータがそこから取り出された前記構築されたドキュメントをサーバに送るように構成された、Ｃ１１に記載のデバイス。
［Ｃ１３］
前記デバイスが、
集積回路と、
マイクロプロセッサと、
前記１つまたは複数のプロセッサを含むワイヤレス通信デバイスと
のうちの少なくとも１つを備える、Ｃ７に記載のデバイス。
［Ｃ１４］
マルチメディアデータを取り出すためのデバイスであって、前記デバイスは、
前記デバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第１のセグメントのデータを取り出すための手段と、
前記マニフェストファイルに従って前記表現の第２のセグメントの部分を取り出すための手段であって、前記第２のセグメントが前記表現中の前記第１のセグメントの後に存在し、前記マニフェストファイルが更新されるべきであることを前記第２のセグメントの前記部分が示す、取り出すための手段と、
前記マニフェストファイルが更新されるべきであるという前記指示に基づいて前記デバイスによって記憶された前記マニフェストファイルの前記コピーを更新するための手段と、
前記更新されたマニフェストファイルに従って前記第２のセグメントのメディアデータを取り出すための手段と
を備える、デバイス。
［Ｃ１５］
前記マニフェストファイルを更新することが、前記第２のセグメントの前記部分のデータを使用して前記マニフェストファイルを更新することを備える、Ｃ１４に記載のデバイス。
［Ｃ１６］
前記マニフェストファイルを更新することが、前記第２のセグメントの前記部分中に示されたロケーションから前記マニフェストファイルを更新するためのデータを取り出すことを備える、Ｃ１に記載のデバイス。
［Ｃ１７］
前記マニフェストファイルを更新するための前記手段が、
更新されるべきである前記マニフェストファイルの１つまたは複数の要素を判断するための手段と、
前記マニフェストファイルの前記判断された１つまたは複数の要素のみを更新するための手段と
を備える、Ｃ１４に記載のデバイス。
［Ｃ１８］
前記マルチメディアコンテンツの第２の異なる表現からメディアデータを取り出すための手段と、
前記第１の表現と前記第２の表現とから取り出された前記データを示す情報を送るための手段と
をさらに備える、Ｃ１４に記載のデバイス。
［Ｃ１９］
メディアデータがそこから取り出された、前記第１の表現と前記第２の表現とを含む、前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを構築するための手段
をさらに備え、
取り出された前記データを示す前記情報を送るための前記手段が、前記メディアデータがそこから取り出された前記構築されたドキュメントをサーバに送るための手段を備える、
Ｃ１８に記載のデバイス。
［Ｃ２０］
実行されたとき、
マルチメディアデータを取り出すためのデバイスによって記憶されたマニフェストファイルのコピーのデータに従ってマルチメディアコンテンツの表現の第１のセグメントのデータを取り出すことと、
前記マニフェストファイルに従って前記表現の第２のセグメントの部分を取り出すことであって、前記第２のセグメントが前記表現中の前記第１のセグメントの後に存在し、前記マニフェストファイルが更新されるべきであることを前記第２のセグメントの前記部分が示す、取り出すことと、
前記マニフェストファイルが更新されるべきであるという前記指示に基づいて、前記デバイスによって記憶された前記マニフェストファイルの前記コピーを更新することと、
前記更新されたマニフェストファイルに従って前記第２のセグメントのメディアデータを取り出すことと
を、前記デバイスのプロセッサに行わせる命令を記憶したコンピュータ可読媒体を備えるコンピュータプログラム製品。
［Ｃ２１］
前記マニフェストファイルを更新することを前記プロセッサに行わせる前記命令が、前記第２のセグメントの前記部分のデータを使用して前記マニフェストファイルを更新することを前記プロセッサに行わせる命令を備える、Ｃ２０に記載のコンピュータプログラム製品。
［Ｃ２２］
前記マニフェストファイルを更新することを前記プロセッサに行わせる前記命令が、前記第２のセグメントの前記部分中に示されたロケーションから前記マニフェストファイルを更新するためのデータを取り出すことを前記プロセッサに行わせる命令を備える、Ｃ２０に記載のコンピュータプログラム製品。
［Ｃ２３］
前記マニフェストファイルを更新することを前記プロセッサに行わせる前記命令が、
更新されるべきである前記マニフェストファイルの１つまたは複数の要素を判断することと、
前記マニフェストファイルの前記判断された１つまたは複数の要素のみを更新することと
を前記プロセッサに行わせる命令を備える、Ｃ２０に記載のコンピュータプログラム製品。
［Ｃ２４］
前記マルチメディアコンテンツの第２の異なる表現からメディアデータを取り出すことと、
前記第１の表現と前記第２の表現とから取り出された前記データを示す情報を送ることと
を前記プロセッサに行わせる命令をさらに備える、Ｃ２０に記載のコンピュータプログラム製品。
［Ｃ２５］
メディアデータがそこから取り出された、前記第１の表現と前記第２の表現とを含む、前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを構築すること
をさらに備え、
取り出された前記データを示す前記情報を送ることを前記プロセッサに行わせる前記命令が、前記メディアデータがそこから取り出された前記構築されたドキュメントをサーバに送ることを前記プロセッサに行わせる命令を備える、
Ｃ２４に記載のコンピュータプログラム製品。
［Ｃ２６］
マルチメディアデータについての情報を送る方法であって、前記方法は、
マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送ることであって、前記マニフェストファイルが、前記マルチメディアコンテンツの表現の第１のセグメントを示す情報を含む、送ることと、
前記クライアントデバイスからの要求に応答して、前記表現の前記第１のセグメントの少なくとも部分を前記クライアントデバイスに送ることであって、前記マニフェストファイルが更新されるべきであることを前記第１のセグメントの前記部分が示し、前記マニフェストファイルの更新されたバージョンが、前記表現の第２の異なるセグメントを示す情報を含む、送ることと、
前記クライアントデバイスから受信され、前記更新されたマニフェストファイルに従って形成される要求に応答して、前記第２のセグメントのデータを前記クライアントデバイスに送ることと
を備える、方法。
［Ｃ２７］
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示す情報を含む、Ｃ２６に記載の方法。
［Ｃ２８］
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示すデータのロケーションを示す情報を含む、Ｃ２６に記載の方法。
［Ｃ２９］
前記クライアントデバイスによって取り出された前記マルチメディアコンテンツのデータを示す情報を受信することをさらに備える、Ｃ２６に記載の方法。
［Ｃ３０］
前記クライアントデバイスによって取り出された前記データを示す前記情報を受信することは、前記クライアントデバイスがそこから前記マルチメディアコンテンツのメディアデータを取り出した前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを受信することを備える、Ｃ２９に記載の方法。
［Ｃ３１］
マルチメディアデータについての情報を送るためのデバイスであって、前記デバイスは、マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送ることであって、前記マニフェストファイルが、前記マルチメディアコンテンツの表現の第１のセグメントを示す情報を含む、送ることと、前記クライアントデバイスからの要求に応答して、前記表現の前記第１のセグメントの少なくとも部分を前記クライアントデバイスに送ることであって、前記マニフェストファイルが更新されるべきであることを前記第１のセグメントの前記部分が示し、前記マニフェストファイルの更新されたバージョンが、前記表現の第２の異なるセグメントを示す情報を含む、送ることと、前記クライアントデバイスから受信され、前記更新されたマニフェストファイルに従って形成される要求に応答して、前記第２のセグメントのデータを前記クライアントデバイスに送ることとを行うように構成された１つまたは複数のプロセッサを備える、デバイス。
［Ｃ３２］
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示す情報を含む、Ｃ３１に記載のデバイス。
［Ｃ３３］
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示すデータのロケーションを示す情報を含む、Ｃ３１に記載のデバイス。
［Ｃ３４］
前記１つまたは複数のプロセッサが、前記クライアントデバイスによって取り出された前記マルチメディアコンテンツのデータを示す情報を受信するように構成された、Ｃ３１に記載のデバイス。
［Ｃ３５］
前記クライアントデバイスによって取り出された前記データを示す前記情報は、前記クライアントデバイスがそこから前記マルチメディアコンテンツのメディアデータを取り出した前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを受信することを備える、Ｃ３４に記載のデバイス。
［Ｃ３６］
前記デバイスが、
集積回路と、
マイクロプロセッサと、
前記１つまたは複数のプロセッサを含むワイヤレス通信デバイスと
のうちの少なくとも１つを備える、Ｃ３１に記載のデバイス。
［Ｃ３７］
マルチメディアデータについての情報を送るためのデバイスであって、前記デバイスは、
マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送るための手段であって、前記マニフェストファイルが、前記マルチメディアコンテンツの表現の第１のセグメントを示す情報を含む、送るための手段と、
前記クライアントデバイスからの要求に応答して、前記表現の前記第１のセグメントの少なくとも部分を前記クライアントデバイスに送るための手段であって、前記マニフェストファイルが更新されるべきであることを前記第１のセグメントの前記部分が示し、前記マニフェストファイルの更新されたバージョンが、前記表現の第２の異なるセグメントを示す情報を含む、送るための手段と、
前記クライアントデバイスから受信され、前記更新されたマニフェストファイルに従って形成される要求に応答して、前記第２のセグメントのデータを前記クライアントデバイスに送るための手段と
を備える、デバイス。
［Ｃ３８］
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示す情報を含む、Ｃ３７に記載のデバイス。
［Ｃ３９］
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示すデータのロケーションを示す情報を含む、Ｃ３７に記載のデバイス。
［Ｃ４０］
前記クライアントデバイスによって取り出された前記マルチメディアコンテンツのデータを示す情報を受信するための手段をさらに備える、Ｃ３７に記載のデバイス。
［Ｃ４１］
前記クライアントデバイスによって取り出された前記データを示す前記情報を受信するための前記手段は、前記クライアントデバイスがそこから前記マルチメディアコンテンツのメディアデータを取り出した前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを受信するための手段を備える、Ｃ４０に記載のデバイス。
［Ｃ４２］
実行されたとき、
マルチメディアコンテンツのマニフェストファイルのデータをクライアントデバイスに送ることであって、前記マニフェストファイルが、前記マルチメディアコンテンツの表現の第１のセグメントを示す情報を含む、送ることと、
前記クライアントデバイスからの要求に応答して、前記表現の前記第１のセグメントの少なくとも部分を前記クライアントデバイスに送ることであって、前記マニフェストファイルが更新されるべきであることを前記第１のセグメントの前記部分が示し、前記マニフェストファイルの更新されたバージョンが、前記表現の第２の異なるセグメントを示す情報を含む、送ることと、
前記クライアントデバイスから受信され、前記更新されたマニフェストファイルに従って形成される要求に応答して、前記第２のセグメントのデータを前記クライアントデバイスに送ることと
を、マルチメディアデータについての情報を送るためのデバイスのプロセッサに行わせる命令を記憶したコンピュータ可読媒体を備えるコンピュータプログラム製品。
［Ｃ４３］
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示す情報を含む、Ｃ４２に記載のコンピュータプログラム製品。
［Ｃ４４］
前記第１のセグメントの前記部分が、前記マニフェストファイルへの更新を示すデータのロケーションを示す情報を含む、Ｃ４２に記載のコンピュータプログラム製品。
［Ｃ４５］
前記クライアントデバイスによって取り出された前記マルチメディアコンテンツのデータを示す情報を受信することを前記プロセッサに行わせる命令をさらに備える、Ｃ４２に記載のコンピュータプログラム製品。
［Ｃ４６］
前記クライアントデバイスによって取り出された前記データを示す前記情報を受信することを前記プロセッサに行わせる前記命令は、前記クライアントデバイスがそこから前記マルチメディアコンテンツのメディアデータを取り出した前記マルチメディアコンテンツの表現を示す情報を含む拡張可能マークアップ言語フォーマット電子ドキュメントを受信することを前記プロセッサに行わせる命令を備える、Ｃ４５に記載のコンピュータプログラム製品。
【図１】
0005559432.tif 000013
【図２】
0005559432.tif 000014
【図３】
0005559432.tif 000015
【図４】
0005559432.tif 000016
【図５】
0005559432.tif 000017
【図６】
0005559432.tif 000018
【図７】
0005559432.tif 000019
【図８】
0005559432.tif 000020
【図９】
0005559432.tif 000021
【図１０】
0005559432.tif 000022
【図１１】
0005559432.tif 000023