(58)【調査した分野】(Int.Cl.,DB名)
前記第1のシーケンスと前記第2のシーケンスを形成することは、前記ユニットの複数のシーケンスを形成することであって、前記複数のシーケンスの各々が、それぞれの共通の持続時間を有する前記ユニットのうちの1つまたは複数を備える、形成することを備え、前記複数のシーケンスがビデオファイルのプレゼンテーション内で連続的に配置され、
与えることが、前記ユニットのいずれかを前記クライアントデバイスに送る前に前記ビデオファイルの特性として前記第1の値、前記第2の値、前記第3の値および前記第4の値を前記クライアントデバイスに送ることを備え、前記複数のシーケンスの各々について、与えられた情報が、前記対応するシーケンスの前記それぞれの共通の持続時間と、前記対応するシーケンス中の前記ユニットの前記数とを示す、請求項1に記載の方法。
前記プロセッサが、前記第1のシーケンスの開始時間を形成することと、前記第1のシーケンスの前記開始時間を生成することとを行うように構成され、前記ネットワークインターフェースが、前記第1のシーケンスの前記開始時間を前記クライアントデバイスに与えるように構成された、請求項4に記載の装置。
前記プロセッサは、前記第1のシーケンスと前記第2のシーケンスを含む前記ユニットの複数のシーケンスを形成することであって、前記シーケンスの各々が、それぞれの共通の持続時間を有する前記ユニットのうちの1つまたは複数を備える、形成することを行うように構成され、前記複数のシーケンスがビデオファイルのプレゼンテーション内で連続的に配置され、
前記プロセッサが、前記ビデオファイルの前記ユニットのいずれかを前記クライアントデバイスに送る前に前記ビデオファイルの特性として前記第1の値、前記第2の値、前記第3の値および前記第4の値を前記クライアントデバイスに送るように構成され、前記複数のシーケンスの各々について、与えられた情報が、前記対応するシーケンスの前記それぞれの共通の持続時間と、前記対応するシーケンス中の前記ユニットの前記数とを示す、請求項4に記載の装置。
前記第1のシーケンスと前記第2のシーケンスを形成するための前記手段は、前記ユニットの複数のシーケンスを形成することであって、前記複数のシーケンスの各々が、それぞれの共通の持続時間を有する前記ユニットのうちの1つまたは複数を備える、形成することを備え、前記複数のシーケンスがビデオファイルのプレゼンテーション内で連続的に配置され、
与えるための前記手段が、前記ユニットのいずれかを前記クライアントデバイスに送る前に前記ビデオファイルの特性として前記第1の値、前記第2の値、前記第3の値および前記第4の値を前記クライアントデバイスに送るための手段を備え、前記複数のシーケンスの各々について、与えられた情報が、前記対応するシーケンスの前記それぞれの共通の持続時間と、前記対応するシーケンス中の前記ユニットの前記数とを示す、請求項7に記載の装置。
前記ユニットを含む前記第1のシーケンスと前記ユニットを含む前記第2のシーケンスを形成することを前記プロセッサに行わせる前記命令は、前記ユニットの複数のシーケンスを形成することを前記プロセッサに行わせる命令であって、前記複数のシーケンスの各々が、それぞれの共通の持続時間を有する前記ユニットのうちの1つまたは複数を備える、命令を備え、前記複数のシーケンスがビデオファイルのプレゼンテーション内で連続的に配置され、
与えることを前記プロセッサに行わせる前記命令が、前記ユニットのいずれかを前記クライアントデバイスに送る前に前記ビデオファイルの特性として前記第1の値、前記第2の値、前記第3の値および前記第4の値を前記クライアントデバイスに送ることを前記プロセッサに行わせる命令を備え、前記複数のシーケンスの各々について、与えられた情報が、前記対応するシーケンスの前記それぞれの共通の持続時間と、前記対応するシーケンス中の前記ユニットの前記数とを示す、請求項10に記載のコンピュータ可読記憶媒体。
前記第1のシーケンスを含む第1の表現または前記第2のシーケンスを含む第2の表現の開始時間と、前記第1の共通の持続時間または前記第2の共通の持続時間と、前記第1のシーケンス中の前記ユニットの前記数または前記第2のシーケンス中の前記ユニットの前記数とに基づいて、前記ユニットのうちの前記1つについての前記開始時間を計算することをさらに備える、請求項15に記載の方法。
前記ストリーミングHTTP要求を自動的に生成することが、ビデオファイル中の前記ビデオセグメントのうちの前記1つについてのバイト範囲を指定することをさらに備える、請求項15に記載の方法。
前記要求を自動的に生成するために、前記プロセッサが、前記第1の共通の持続時間または前記第2の共通の持続時間と、前記第1のシーケンスまたは前記第2のシーケンス中の前記ユニットの前記数とに基づいて、前記ユニットのうちの前記1つについての開始時間を形成することと、前記第1の共通の持続時間または前記第2の共通の持続時間と、前記第1のシーケンスまたは前記第2のシーケンス中の前記ユニットの前記数とに基づいて、前記ユニットのうちの前記1つについての終了時間を形成することと、前記ユニフォームリソースロケータにおいて前記開始時間および前記終了時間を指定することと、を行うように構成された、請求項18に記載の装置。
前記プロセッサが、前記第1のシーケンスを含む第1の表現または前記第2のシーケンスを含む第2の表現の開始時間と、前記第1の共通の持続時間または前記第2の共通の持続時間と、前記第1のシーケンス中の前記ユニットの前記数または前記第2のシーケンス中のユニットの前記数とに基づいて、前記ユニットのうちの前記1つについての前記開始時間を計算するように構成された、請求項20に記載の装置。
前記ストリーミングHTTP要求を自動的に生成するために、前記プロセッサが、ビデオファイル中の前記ビデオセグメントのうちの前記1つについてのバイト範囲を指定するように構成された、請求項20に記載の装置。
前記第1のシーケンスを含む第1の表現または前記第2のシーケンスを含む第2の表現の開始時間と、前記第1の共通の持続時間または前記第2の共通の持続時間と、前記第1のシーケンス中のユニットの前記数または前記第2のシーケンス中のユニットの前記数とに基づいて、前記ユニットのうちの前記1つについての前記開始時間を計算するための手段をさらに備える、請求項25に記載の装置。
前記ストリーミングHTTP要求を自動的に生成するための前記手段が、ビデオファイル中の前記ビデオセグメントのうちの前記1つについてのバイト範囲を指定するための手段をさらに備える、請求項25に記載の装置。
受信することを前記プロセッサに行わせる前記命令が、前記サーバデバイスから受信することを前記プロセッサに行わせる命令を備える、請求項28に記載のコンピュータ可読記憶媒体。
前記要求を自動的に生成することを前記プロセッサに行わせる前記命令が、前記指定されたユニフォームリソースロケータを自動的に生成することを前記プロセッサに行わせる命令を備え、前記コンピュータ可読記憶媒体が、
前記第1の共通の持続時間または前記第2の共通の持続時間と、前記第1のシーケンスまたは前記第2のシーケンス中の前記ユニットの前記数とに基づいて、前記ユニットのうちの前記1つについての開始時間を形成することと、
前記第1の共通の持続時間または前記第2の共通の持続時間と、前記第1のシーケンスまたは前記第2のシーケンス中の前記ユニットの前記数とに基づいて、前記ユニットのうちの前記1つについての終了時間を形成することと、
前記ユニフォームリソースロケータにおいて前記開始時間および前記終了時間を指定することと
を前記プロセッサに行わせる命令を備える、請求項28に記載のコンピュータ可読記憶媒体。
前記第1のシーケンスを含む第1の表現または前記第2のシーケンスを含む第2の表現の開始時間と、前記第1の共通の持続時間または前記第2の共通の持続時間と、前記第1のシーケンス中のユニットの前記数または前記第2のシーケンス中のユニットの前記数とに基づいて、前記ユニットのうちの前記1つについての前記開始時間を計算することを前記プロセッサに行わせる命令をさらに備える、請求項30に記載のコンピュータ可読記憶媒体。
前記ストリーミングHTTP要求を自動的に生成することを前記プロセッサに行わせる前記命令が、ビデオファイル中の前記ビデオセグメントのうちの前記1つについてのバイト範囲を指定することを前記プロセッサに行わせる命令をさらに備える、請求項30に記載のコンピュータ可読記憶媒体。
【発明を実施するための形態】
【0018】
本開示の技法は、概して、たとえば、ハイパーテキスト転送プロトコル(HTTP)などのプロトコルと、HTTPのHTTPストリーミング・アプリケーションとを使用したビデオ・データのストリーミング・トランスポートをサポートすることを対象とする。概して、本開示では、HTTPへの言及は、HTTPストリーミングへの言及を含み得る。本開示は、たとえば、ビデオ・データのフラグメントがプレゼンテーション内に記憶されている場合などに、ビデオ・データのいくつかのプレゼンテーションの特性要素をシグナリングするメディア・プレゼンテーション記述(MPD)ファイルを提供する。各プレゼンテーションは、いくつかの個々のファイル、たとえば、third Generation Partnership Project(3GPP)ファイルを含み得る。概して、各プレゼンテーションは、たとえば、ビットレート、フレームレート、解像度、インターレースまたはプログレッシブ走査タイプ、符号化タイプ(たとえば、MPEG−1、MPEG−2、H.263、MPEG−4/H.264、H.265など)などの個々の特性、あるいは他の特性のセットを含み得る。
【0019】
3GPPファイルの各々は、たとえば、HTTP GETおよび部分GET要求を使用して、サーバによって個別に記憶され、クライアントによって個別に取り出され得る。HTTP GETおよび部分GET要求は、http://tools.ietf.org/html/rfc2616において入手可能な、R.Fieldingら、「Hypertext Transfer Protocol - HTTP/1.1」、Network Working Group、RFC2616、1999年6月、に記載されている。本開示の技法によれば、各プレゼンテーションの3GPPファイルは、ビデオの同じセクション、すなわち、1つまたは複数のシーンの同じセットに対応するように整合され得る。その上、サーバが、同様の命名方式を使用して、各プレゼンテーションの対応する3GPPファイルを命名し得る。このようにして、HTTPクライアントは、ネットワーク状態が変化するにつれてプレゼンテーションを容易に変更し得る。たとえば、大量の帯域幅が利用可能なときは、クライアントは比較的高い品質のプレゼンテーションの3GPPファイルを取り出し得、より少ない量の帯域幅が利用可能なときは、クライアントは比較的低い品質のプレゼンテーションの3GPPファイルを取り出し得る。
【0020】
本開示は、MPDファイルにおいて要約されたプレゼンテーションと、対応する3GPPファイルとの特性をシグナリングするための技法をも提供する。一例として、本開示は、たとえば、各プレゼンテーションについてのクライアント・デバイスの予想されるレンダリング能力および復号能力などの特性をサーバがそれによってシグナリングし得る、技法を提供する。このようにして、クライアント・デバイスは、クライアント・デバイスの復号およびレンダリング能力に基づいて様々なプレゼンテーション間で選択することができる。別の例として、本開示は、各プレゼンテーションについての平均ビットレートおよび最大ビットレートをシグナリングするための技法を提供する。このようにして、クライアント・デバイスは、帯域幅利用可能性を判断し、判断された帯域幅に基づいて様々なプレゼンテーション間で選択することができる。
【0021】
本開示の技法によれば、サーバが、同じシーンに対応する各プレゼンテーションの3GPPファイルを示す命名規則を使用し得る。本開示は、各シーンが各プレゼンテーション中の3GPPファイルのうちの1つに対応するように、各プレゼンテーションの3GPPファイルを整合させるための技法を提供する。たとえば、サーバは、「[program]_preX_T_T+N」と同様の命名規則を使用して、時間Tから時間T+Nまで続くシーンに対応する各プレゼンテーションの3GPPファイルを命名し得、ただし、その命名規則におけるTおよびT+Nは、時間Tおよび時間T+Nの値に対応し、「[program]」はビデオの名前に対応し、「_preX」はプレゼンテーションの識別子に対応する(たとえば、プレゼンテーション2の場合は「pre2」)。したがって、各プレゼンテーションの3GPPファイルは、各プレゼンテーションについての瞬時ビットレートを導出するために同じ時間期間における3GPPファイルのファイル・サイズが使用され得るように整合され得る。
【0022】
さらに、サーバは、各プレゼンテーションについての3GPPファイルの各々についての開始時間ならびに終了時間ならびに/または持続時間をシグナリングし得る。このようにして、クライアントは、サーバによってシグナリングされた3GPPファイルの開始時間および終了時間を取り出すことと、開始時間および終了時間に基づいてファイル名を自動的に生成することとによって、ファイルの名前に基づいてHTTP GETを使用して特定の3GPPファイルを取り出すことができる。さらに、サーバは、各プレゼンテーションの3GPPファイルの各々についてのバイト範囲をもシグナリングし得る。したがって、クライアントは、自動的に生成された名前と、取り出されるべき3GPPファイルのバイト範囲とに基づいて、部分GETを使用して3GPPファイルの全部または一部分を取り出し得る。クライアントは、特定の3GPPファイルのファイル・サイズを取り出すためのHTTPのHEADメソッドを使用し得る。概して、HEAD要求は、HEAD要求が向けられたURNまたはURLについての対応する本体データなしにヘッダデータを取り出す。
【0023】
図1は、オーディオ/ビデオ(A/V)ソース・デバイス20がオーディオおよびビデオ・データをA/V宛先デバイス40にトランスポートする例示的なシステム10を示すブロック図である。
図1のシステム10は、ビデオ通信会議システム、サーバ/クライアントシステム、放送事業者/受信機システム、ゲームシステム、またはA/Vソース・デバイス20などのソース・デバイスからA/V宛先デバイス40などの宛先デバイスにビデオ・データが送られる任意の他のシステムに対応し得る。いくつかの例では、オーディオ・エンコーダ26は、ボコーダとも呼ばれるボイスエンコーダを備え得る。
【0024】
A/Vソース・デバイス20は、
図1の例では、オーディオ・ソース22と、ビデオ・ソース24と、オーディオ・エンコーダ26と、ビデオ・エンコーダ28と、メディア・プレゼンテーション記述(MPD)管理ユニット30と、ネットワーク・インターフェース32とを含む。オーディオ・ソース22は、たとえば、オーディオ・エンコーダ26によって符号化されるべき、キャプチャされたオーディオ・データを表す電気信号を生成するマイクロフォンを備え得る。代替的に、オーディオ・ソース22は、前に記録されたオーディオ・データを記憶する記憶媒体、コンピュータ・シンセサイザなどのオーディオ・データ生成器、またはオーディオ・データの任意の他のソースを備え得る。ビデオ・ソース24は、ビデオ・エンコーダ28によって符号化されるべきビデオ・データを生成するビデオカメラ、前に記録されたビデオ・データで符号化された記憶媒体、コンピュータグラフィックスのためのビデオ・データ生成ユニット、またはビデオ・データの任意の他のソースを備え得る。未加工オーディオおよびビデオ・データは、アナログまたはデジタルデータを備え得る。アナログデータは、オーディオ・エンコーダ26および/またはビデオ・エンコーダ28によって符号化される前にデジタル化され得る。
【0025】
オーディオ・ソース22は、通話参加者が話している間、通話参加者からオーディオ・データを取得し得、同時に、ビデオ・ソース24は、通話参加者のビデオ・データを取得し得る。他の例では、オーディオ・ソース22は、記憶されたオーディオ・データを備えるコンピュータ可読記憶媒体を備え得、ビデオ・ソース24は、記憶されたビデオ・データを備えるコンピュータ可読記憶媒体を備え得る。このようにして、本開示で説明する技法は、ライブ、ストリーミング、リアルタイムオーディオおよびビデオ・データ、ならびに/またはアーカイブされた、あらかじめ記録されたオーディオおよびビデオ・データに適用され得る。
【0026】
ビデオ・フレームに対応するオーディオ・フレームは、概して、ビデオ・フレーム内に含まれている、ビデオ・ソース24によってキャプチャされたビデオ・データと同時にオーディオ・ソース22によってキャプチャされたオーディオ・データを含んでいるオーディオ・フレームである。たとえば、通話参加者が概して話すことによってオーディオ・データを生成する間、オーディオ・ソース22はオーディオ・データをキャプチャし、同時に、すなわちオーディオ・ソース22がオーディオ・データをキャプチャしている間、ビデオ・ソース24は通話参加者のビデオ・データをキャプチャする。したがって、オーディオ・フレームは、1つまたは複数の特定のビデオ・フレームに時間的に対応し得る。したがって、ビデオ・フレームに対応するオーディオ・フレームは、概して、オーディオ・データとビデオ・データとが同時にキャプチャされる状況、およびオーディオ・フレームとビデオ・フレームとが、それぞれ、同時にキャプチャされたオーディオ・データとビデオ・データとを備える状況に対応する。また、たとえば、サウンド・トラック情報、追加音響、音楽、音響効果など、オーディオ・データが別個に追加され得る。
【0027】
オーディオ・エンコーダ26は、符号化オーディオ・フレームのオーディオ・データが記録された時間を表す、各符号化オーディオ・フレームにおけるタイム・スタンプを符号化し得、同様に、ビデオ・エンコーダ28は、符号化ビデオ・フレームのビデオ・データが記録された時間を表す、各符号化ビデオ・フレームにおけるタイム・スタンプを符号化し得る。そのような例では、ビデオ・フレームに対応するオーディオ・フレームは、タイム・スタンプを備えるオーディオ・フレームと同じタイム・スタンプを備えるビデオ・フレームとを備え得る。A/Vソース・デバイス20は、オーディオ・エンコーダ26および/またはビデオ・エンコーダ28がそこからタイム・スタンプを生成し得るか、あるいはオーディオ・ソース22およびビデオ・ソース24がオーディオおよびビデオ・データをそれぞれタイム・スタンプに関連付けるために使用し得る、内部クロックを含み得る。
【0028】
オーディオ・ソース22は、オーディオ・データが記録された時間に対応するデータをオーディオ・エンコーダ26に送り得、ビデオ・ソース24は、ビデオ・データが記録された時間に対応するデータをビデオ・エンコーダ28に送り得る。いくつかの例では、オーディオ・エンコーダ26は、必ずしも、オーディオ・データが記録された絶対時刻を示すことなしに、符号化オーディオ・データの相対的時間順序を示すために、符号化オーディオ・データ中のシーケンス識別子を符号化し得、同様に、ビデオ・エンコーダ28も、符号化ビデオ・データの相対的時間順序を示すためにシーケンス識別子を使用し得る。同様に、いくつかの例では、シーケンス識別子は、タイム・スタンプにマッピングされるか、または場合によってはタイム・スタンプと相関し得る。
【0029】
オーディオ・エンコーダ26およびビデオ・エンコーダ28は符号化データをMPD管理ユニット30に与える。概して、MPD管理ユニット30は、本開示の技法に従って、符号化オーディオ・データおよび符号化ビデオ・データに対応するMPDファイルの形態で、符号化オーディオ・データおよび符号化ビデオ・データに関する要約を記憶する。以下でより詳細に説明するように、MPDファイルはいくつかのプレゼンテーションを記述し、各プレゼンテーションは、たとえば、Third Generation Partnership Project(3GPP)ファイルとして形成された、いくつかのビデオ・ファイルを有する。MPD管理ユニット30は、各プレゼンテーションにおいて同数の3GPPファイルを作成し得、同様に位置する3GPPファイルが同じビデオ・セグメントに対応するように、各プレゼンテーションの3GPPファイルを整合させ得る。すなわち、同様に位置する3GPPファイルは同じ時間ビデオ・フラグメントに対応し得る。MPD管理ユニット30は、たとえば、3GPPファイルの持続時間など、各プレゼンテーションの3GPPファイルの特性を記述するデータをも記憶し得る。
【0030】
MPD管理ユニット30は、A/V宛先デバイス40などのクライアントにビデオ・データを与えるためにネットワーク・インターフェース32と対話し得る。ネットワーク・インターフェース32は、MPD管理ユニット30によって記憶されているMPDファイルに記載されている個々の3GPPファイルを宛先デバイス40が要求することを可能にするために、HTTP(または他のネットワーク・プロトコル)を実装し得る。したがって、ネットワーク・インターフェース32は、3GPPファイルについてのHTTP GET要求、3GPPファイルの個々のバイト範囲についての部分GET要求、MPDおよび/または3GPPファイルについてのヘッダ情報を与えるためのHEAD要求、ならびに他のそのような要求に応答し得る。したがって、ネットワーク・インターフェース32は、たとえば、MPDファイルのベース名など、MPDファイルの特性、MPDファイルのプレゼンテーションの特性、および/または各プレゼンテーションに記憶された3GPPファイルの特性を示すデータを宛先デバイス40に配信し得る。MPDファイルのプレゼンテーション、MPDファイル自体、および/またはMPDファイルに対応する3GPPファイルの特性を記述するデータは、「プレゼンテーション記述データ」と呼ばれることがある。いくつかの例では、ネットワーク・インターフェース32は、代わりに、受信したパケットからアプリケーション・レイヤ・データを抽出し、次いでアプリケーション・レイヤ・パケットをMPD管理ユニット30に受け渡す、ネットワーク・インターフェース・カード(NIC)を備え得る。いくつかの例では、MPD管理ユニット30およびネットワーク・インターフェース32は機能的に統合され得る。
【0031】
このようにして、ユーザは、
図1の例では、ビデオ・データを取り出すために、宛先デバイス40上で実行されるウェブ・ブラウザ38アプリケーションを介して宛先デバイス40と対話し得る。ウェブ・ブラウザ38は、初めに、MPD管理ユニット30によって記憶されたプレゼンテーションのうちの1つから第1のビデオ・ファイルまたはそれのフラグメントを取り出し、次いで、第1のビデオ・ファイルが、ビデオ・デコーダ48およびビデオ出力44によってそれぞれ復号され、表示されているときに、後続のビデオ・ファイルまたはフラグメントを取り出し得る。宛先デバイス40は、たとえば、ディスプレイの形態の、ビデオ出力44、ならびにオーディオ出力42、ならびに、たとえば、キーボード、マウス、ジョイスティック、マイクロフォン、タッチ・スクリーン・ディスプレイ、スタイラス、ライトペンなどの、他の入力および/または出力デバイスを含むユーザ・インターフェース、あるいは他の入力および/または出力デバイスを含み得る。ビデオ・ファイルがオーディオ・データを含むとき、オーディオ・デコーダ46およびオーディオ出力42は、オーディオ・データをそれぞれ復号し、提示し得る。その上、ユーザは、ビデオプレゼンテーションの特定の時間ロケーションを「シーク」し得る。たとえば、ユーザが、最初から最後までビデオ・ファイル全部を見るのではなく、ビデオ・データ内の特定の時間ロケーションを要求するという意味で、ユーザはシークし得る。ウェブブラウザは、シークの時間ロケーションを含むビデオ・ファイルのうちの1つを判断することと、次いでそのビデオ・ファイルをソース・デバイス20に要求するとこととを宛先デバイス40のプロセッサまたは他の処理ユニットに行わせ得る。
【0032】
いくつかの例では、宛先デバイス40内の制御ユニットがウェブ・ブラウザ38の機能を実行し得る。すなわち、制御ユニットは、ネットワーク・インターフェース36を介して要求をソース・デバイス20にサブミットすることと、MPDファイルのプレゼンテーション間で選択することと、ネットワーク接続34の利用可能な帯域幅を判断することとを行うための、ウェブ・ブラウザ38のための命令を実行し得る。ウェブ・ブラウザ38のための命令はコンピュータ可読記憶媒体に記憶され得る。制御ユニットは、さらに、本開示で説明するように、ソース・デバイス20からの個々の3GPPファイルについての要求、たとえば、HTTP GETおよび部分GET要求を形成し得る。制御ユニットは、汎用プロセッサ、および/あるいは、たとえば、ASIC、FPGAなどの1つまたは複数の専用ハードウェアユニット、あるいは他のハードウェアまたは処理ユニットまたは回路を備え得る。制御ユニットは、さらに、いくつかの例では、オーディオ・デコーダ46、ビデオ・デコーダ48のいずれかの機能、および/または宛先デバイス40に関して説明する他の機能を実行し得る。
【0033】
概して、MPDファイルのプレゼンテーションは、たとえば、宛先デバイスの予想されるレンダリング能力、宛先デバイスの予想される復号能力、プレゼンテーションのビデオ・ファイルについての平均ビットレートなどの特性によって異なる。MPD管理ユニット30は、MPDファイルのプレゼンテーション・ヘッダにおいて、プレゼンテーションについての予想されるレンダリング能力、予想される復号能力、および平均ビットレートをシグナリングし得る。このようにして、宛先デバイス40は、たとえば、ビデオ出力44のレンダリング能力および/またはビデオ・デコーダ48の復号能力に基づいて、上記プレゼンテーションのうち、どのプレゼンテーションからビデオ・ファイルを取り出すべきかを判断し得る。
【0034】
宛先デバイス40は、さらに、たとえば、ネットワーク接続34の、現在の帯域幅利用可能性を判断し、プレゼンテーションについての平均ビットレートに基づいてプレゼンテーションを選択し得る。すなわち、ビデオ出力44およびビデオ・デコーダ48が、MPDファイルのプレゼンテーションのうちの2つ以上についてのビデオ・ファイルをそれぞれレンダリングし、復号するための能力を有するとき、宛先デバイス40は、現在の帯域幅利用可能性に基づいてプレゼンテーションのうちの1つを選択し得る。同様に、帯域幅利用可能性が変化したとき、宛先デバイス40は、サポートされるプレゼンテーション間で動的に切り替え得る。たとえば、帯域幅が制限されるときは、宛先デバイス40は、比較的低いビットレートのビデオ・ファイルを有するプレゼンテーションから次のビデオ・ファイルを取り出し得、帯域幅が拡大するときは、宛先デバイス40は、比較的高いビットレートのビデオ・ファイルを有するプレゼンテーションから次のビデオ・ファイルを取り出し得る。
【0035】
各プレゼンテーションのビデオ・ファイルを時間的に整合させることによって、プレゼンテーション間の動的切替えは、宛先デバイス40などの宛先デバイスのために簡略化され得る。すなわち、宛先デバイス40は、帯域幅状態が変化したと判断すると、ビデオ・データがすでにその間に取り出された時間期間を判断し、次いで、帯域幅状態に基づいてプレゼンテーションのうちの1つから次のビデオ・ファイルを取り出し得る。たとえば、宛先デバイス40によって取り出された最後のビデオ・ファイルが時間Tに終了し、次のファイルが持続時間Nのファイルである場合、宛先デバイス40は、プレゼンテーションの各々についてのビデオ・ファイルが時間的に整合されるので、帯域幅状態に基づいて、プレゼンテーションのいずれかから、時間Tから時間T+Nまでのビデオ・ファイルを取り出し得る。
【0036】
その上、MPD管理ユニット30およびウェブ・ブラウザ38は、ビデオ・ファイルのための共通の命名規則で構成され得る。概して、各ビデオ・ファイル(たとえば、各3GPPファイル)は、MPDファイルが記憶されているユニフォーム・リソース・ロケータ(URL)と、そのURLにおけるMPDファイルのユニフォーム・リソース・ネーム(URN)と、プレゼンテーションの名前と、開始時間と、終了時間とに基づく名前を備え得る。したがって、MPD管理ユニット30とウェブ・ブラウザ38の両方は、たとえば、「[URL]/[URN]_pre[X]_[start time]_[end time]」などの命名方式を使用するように構成され得、ただし、[URL]はMPDファイルのURLに置き換えられ、[URN]はMPDファイルのURNに置き換えられ、Xはプレゼンテーションの数に置き換えられ、[start time]は、要求されている3GPPファイルの開始時間に置き換えられ、[end time]は、要求されている3GPPファイルの終了時間に置き換えられる。他の例では、その名前はプレゼンテーション内の3GPPファイルの位置に基づき得る。たとえば、3GPPファイルMの場合、3GPPファイルの名前は、「[URL]/[URN]_pre[X]_[M]」として自動的に生成され得る。ウェブ・ブラウザ38は、いくつかの例では、たとえば、上記の命名方式、ならびにファイルのバイト範囲を使用してファイルを指定することによって、ファイルについてのHTTP部分GET要求をサブミットし得る。ウェブ・ブラウザ38は、たとえば、上記の命名方式を使用して、指定されたファイルのサイズを取り出すためのHTTP HEADメソッドを利用し得る。
【0037】
したがって、たとえば、URL「www.qualcomm.com」と、「program1」のURNとを有するMPDファイルの場合、10:02に開始し、10:05に終了するプレゼンテーション3の3GPPファイルを取り出すために、ウェブ・ブラウザ38は、「www.qualcomm.com/program1_pre3_10:02_10:05」についてのHTTP GET要求をサブミットし得る。さらなる例として、プレゼンテーション2がプレゼンテーション3よりも比較的高いビットレートを有し、宛先デバイス40が、利用可能な帯域幅が増加したと判断した場合、前の例の3GPPファイルを取り出した後に、ウェブ・ブラウザ38は、次に「www.qualcomm.com/program1_pre2_10:05_10:08」についてのHTTP GET要求をサブミットし得る。
【0038】
概して、各3GPPファイルは単独で復号可能であり得る。各3GPPファイルは、たとえば、少なくとも1つのイントラ符号化ピクチャを含み得る。たとえば、各3GPPファイルは、1つまたは複数のピクチャ・グループ(GOP)またはスーパー・フレームを備え得、ただし、GOPまたはスーパー・フレームのための少なくとも1つのキー・フレームは、イントラモード符号化を使用して符号化される。このようにして、ウェブ・ブラウザ38は、MPDファイルのプレゼンテーションのいずれかから3GPPファイルを取り出し、同じプレゼンテーションの他の3GPPファイルに関係なく、取り出された3GPPファイルを復号し得る。たとえば、ウェブブラウザ38が、利用可能な帯域幅が増加したと判断したとき、ウェブブラウザ38は、より高い平均ビットレートを有するプレゼンテーションの時間的に前の3GPPファイルを取り出すことなしに、現在のプレゼンテーションよりも比較的高い平均ビットレートを有するプレゼンテーションからの次の3GPPファイルを要求し得る。
【0039】
このようにして、ソース・デバイス20は、MPDファイルの形態のビデオ・データを宛先デバイス40などの宛先デバイスに与え得る。いくつかの例では、ソース・デバイス20はウェブサーバを備え得る。宛先デバイス40は、たとえば、HTTPを介して、データを取り出すことが可能な、たとえば、コンピュータ、またはインターネットアクセスをもつセルラー電話などのモバイルデバイスなどの、任意のデバイスを備え得る。ソース・デバイス20は、符号化ビデオ・データを宛先デバイス40にトランスポートし、符号化ビデオ・データの特性をシグナリングするために、本開示の技法を実装し得る。符号化ビデオ・データは、たとえば、MPEG−1、MPEG−2、H.263、H.264/MPEG−4、H.265、または他の符号化規格など、多種多様な規格のいずれかを使用して符号化され得る。
【0040】
ITU−T H.264規格は、一例として、ルーマ成分については16×16、8×8、または4×4、およびクロマ成分については8×8など、様々なブロックサイズのイントラ予測をサポートし、ならびにルーマ成分については16×16、16×8、8×16、8×8、8×4、4×8および4×4、およびクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。本開示では、「N×(x)N」と「N×(by)N」は、垂直寸法および水平寸法に関するブロックのピクセル寸法、たとえば、16×(x)16ピクセルまたは16×(by)16ピクセルを指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、Nは、非負整数値を表す。ブロック中のピクセルは行と列に配置され得る。その上、ビデオ・データのブロックは、正方形である必要がなく、たとえば、N×Mピクセルを備え得、ただし、NはMに等しくない。
【0041】
16×16よりも小さいブロックサイズは16×16マクロブロックのパーティションと呼ばれることがある。ビデオ・ブロックは、ピクセル領域中のピクセルデータのブロックを備え得、あるいは、たとえば、コード化ビデオ・ブロックと予測ビデオ・ブロックとのピクセル差分を表す残差ビデオ・ブロック・データへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後の、変換領域中の変換係数のブロックを備え得る。場合によっては、ビデオ・ブロックは、変換領域中の量子化変換係数のブロックを備え得る。
【0042】
より小さいビデオ・ブロックは、より良好な解像度を与えることができ、高い詳細レベルを含むビデオ・フレームのロケーションのために使用され得る。一般に、マクロブロックおよび様々なパーティションはサブブロックと呼ばれることがあり、ビデオ・ブロックと見なされ得る。さらに、スライスは、マクロブロックおよび/またはサブブロックなどの複数のビデオ・ブロックであると見なされ得る。各スライスはビデオ・フレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が復号可能なユニットであり得るか、またはフレームの他の部分が復号可能なユニットとして定義され得る。「コード化ユニット」または「コーディング・ユニット」という用語は、フレーム全体、フレームのスライス、シーケンスとも呼ばれるピクチャグループ(GOP)など、ビデオ・フレームの単独で復号可能な任意のユニット、または適用可能なコーディング技法に従って定義される別の単独で復号可能なユニットを指し得る。
【0043】
マクロブロックという用語は、16×16ピクセルを備える2次元ピクセルアレイに従ってピクチャおよび/またはビデオ・データを符号化するためのデータ構造を指す。各ピクセルはクロミナンス成分と輝度成分とを備える。したがって、マクロブロックは、各々が8×8ピクセルの2次元アレイを備える4つの輝度ブロックと、各々が16×16ピクセルの2次元アレイを備える2つのクロミナンス・ブロックと、コード化ブロック・パターン(CBP)、符号化モード(たとえば、イントラ(I)またはインター(PまたはB)符号化モード)、イントラ符号化ブロックのパーティションのパーティション・サイズ(たとえば、16×16、16×8、8×16、8×8、8×4、4×8、または4×4)、あるいはインター符号化マクロブロックのための1つまたは複数の動きベクトルなど、シンタックス情報を備えるヘッダと、を定義し得る。
【0044】
ビデオ・エンコーダ28、ビデオ・デコーダ48、オーディオ・エンコーダ26、オーディオ・デコーダ46、およびMPD管理ユニット30は、それぞれ、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなどの様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオ・エンコーダ28およびビデオ・デコーダ48の各々は1つまたは複数のエンコーダまたはデコーダ中に含められ得、そのいずれかは複合ビデオ・エンコーダ/デコーダ(CODEC)の一部として統合され得る。同様に、オーディオ・エンコーダ26およびオーディオ・デコーダ46の各々は1つまたは複数のエンコーダまたはデコーダ中に含められ得、そのいずれかは複合オーディオ・エンコーダ/デコーダ(CODEC)の一部として統合され得る。ビデオ・エンコーダ28、ビデオ・デコーダ48、オーディオ・エンコーダ26、オーディオ・デコーダ46、MPD管理ユニット30、および/またはウェブ・ブラウザ38のアプリケーションを実行するハードウェアを含む装置は、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【0045】
図2は、MPD管理ユニット30(
図1)の構成要素の例示的な構成を示すブロック図である。
図2の例では、MPD管理ユニット30は、MPD作成ユニット60と、ビデオ入力インターフェース80と、オーディオ入力インターフェース82と、MPDファイル・ストレージ84と、MPD出力ユニット70とを含む。
図2の例では、MPD作成ユニット60は、パラメータ・シグナリング・ユニット62と3GPPファイル管理ユニット64とを含み、MPD出力ユニット70は、3GPPファイル取出しユニット72とHTTPサーバユニット74とを含む。
【0046】
ビデオ入力インターフェース80およびオーディオ入力インターフェース82は、それぞれ符号化ビデオ・データおよび符号化オーディオ・データを受信する。ビデオ入力インターフェース80およびオーディオ入力インターフェース82は、データが符号化されると、符号化ビデオ・データおよび符号化オーディオ・データを受信するか、または符号化ビデオ・データおよび符号化オーディオ・データをコンピュータ可読媒体から取り出し得る。符号化ビデオ・データおよび符号化オーディオ・データを受信すると、ビデオ入力インターフェース80およびオーディオ入力インターフェース82は、MPDファイルに集約するために符号化ビデオ・データおよび符号化オーディオ・データをMPD作成ユニット60に受け渡す。
【0047】
MPD作成ユニット60は、MPDファイルを作成するために符号化オーディオ・データおよび符号化ビデオ・データを受信する。MPD作成ユニット60は、多種多様な方法で、たとえば、ビデオ・データの異なるサイズ(解像度)で符号化されたビデオ・データ、様々な符号化規格に従って符号化されたビデオ・データ、様々なフレームレートおよび/またはビットレートで符号化されたビデオ・データ、あるいは他の変形体を受信し得る。MPD作成ユニット60は、MPDファイル内に記憶されるべき、様々なプレゼンテーションの各々についての符号化ビデオ・データを受信し得る。
【0048】
3GPPファイル管理ユニット64は、各プレゼンテーションの3GPPファイルが時間的に整合されるように、MPDファイルの各プレゼンテーションについての個々の3GPPファイルを作成し得る。すなわち、各プレゼンテーション中の第1の3GPPファイルは、同じ持続時間と、開始時間と、終了時間とをもつ同じビデオ・フラグメントに対応する。同じ開始時間と終了時間とを有する同じビデオ・フラグメントに対応する3GPPファイルは、対応する3GPPファイルと呼ばれる。プレゼンテーションは様々なフレームレートを有し得るので、プレゼンテーションの対応する3GPPファイルは様々な数の符号化ピクチャを含み得る。同様に、符号化方法およびビットレートはプレゼンテーション間で異なり得るので、対応する3GPPファイルは異なるファイル・サイズを有し得る。
【0049】
いくつかの例では、3GPPファイル管理ユニット64は、各3GPPファイルが同じ時間持続時間を有するように、各プレゼンテーションについての3GPPファイルを構築し得る。これらの例では、パラメータ・シグナリング・ユニット62は、共通の持続時間を表す1つの値を使用してMPDファイルについてのすべての3GPPファイルの持続時間をシグナリングし得る。他の例では、3GPPファイル管理ユニット64は、プレゼンテーション間の対応する3GPPファイルは同じ持続時間を有するが、あるプレゼンテーション内の3GPPファイルは個々の持続時間を有し得るように、3GPPファイルを構築し得る。そのような例では、パラメータ・シグナリング・ユニット62は、各3GPPファイルの持続時間をシグナリングし得る。パラメータ・シグナリング・ユニット62は、プレゼンテーションについての各3GPPファイルの開始時間、終了時間、および/または持続時間をもシグナリングし得る。
【0050】
パラメータ・シグナリング・ユニット62は、MPDファイルと、MPDファイル内に含まれる3GPPファイルと、MPDファイルのプレゼンテーションとの他の特性をもシグナリングし得る。たとえば、パラメータ・シグナリング・ユニット62は、各プレゼンテーションについての宛先デバイスのデコーダの予想される復号能力をシグナリングし得る。復号能力は、たとえば、プレゼンテーションのビデオ・データを符号化するために使用される符号化規格などの復号方法、最小マクロブロック復号レート、最小フレーム復号レート、フレームまたはブロックバッファサイズ、および/あるいは他の予想される復号能力を含み得る。いくつかの例では、パラメータ・シグナリング・ユニット62は、プロファイルインジケータ(プロファイルIDC)値とレベルインジケータ(レベルIDC)値とを使用して、予想される復号能力をシグナリングし得る。
【0051】
ビデオコーディング規格のコンテキストにおいて、「プロファイルIDC」値は、アルゴリズム、機能、またはツール、およびそれらに適用される制約のサブセットに対応し得る。たとえば、H.264規格によって定義される「プロファイルIDC」値は、H.264規格によって指定されたビットストリームシンタックス全体のサブセットを記述する。「レベルIDC」値は、たとえば、ピクチャの解像度、ビットレート、およびマクロブロック(MB)処理レートに関係するデコーダメモリおよび計算など、デコーダリソース消費の制限を記述する。
【0052】
パラメータ・シグナリング・ユニット62は、各プレゼンテーションについての予想されるレンダリング能力をもシグナリングし得る。たとえば、パラメータ・シグナリング・ユニット62は、各プレゼンテーションについてのピクチャ幅、ピクチャ高さ、および/またはフレームレートをシグナリングし得る。
【0053】
MPD作成ユニット30は、各プレゼンテーションについての3GPPファイル、およびMPDファイルと、プレゼンテーションと、各3GPPファイルとについてのシグナリングされた特性とともに、作成されたMPDファイルをMPDファイル・ストレージ84に記憶し得る。MPDファイル・ストレージ84は、たとえば、ハードディスク、ソリッドステートドライブ、磁気テープ、光記憶媒体などの、コンピュータ可読記憶媒体、または他の記憶媒体、あるいはそれらの組合せを備え得る。
【0054】
MPD出力ユニット70は、たとえば、宛先デバイス40などの宛先デバイスからのHTTP要求を受信し、そのHTTP要求に応答し得る。
図2の例では、ネットワーク・インターフェース32(
図1)が、受信したネットワーク・パケットから、HTTP要求を含み得るアプリケーション・レイヤ・データを抽出し、抽出されたアプリケーション・レイヤ・データをMPD管理ユニット30に受け渡すと仮定される。MPD出力ユニット70は、概して、受信した要求が何を要求しているかを判断し、要求されたデータをMPDファイル・ストレージ84から取り出し、要求されたデータを要求元デバイス、たとえば、宛先デバイス40に与える。
【0055】
HTTPサーバユニット74は、この例では、GET、部分GET、およびHEAD要求などの、HTTP要求を受信し、解釈するために、HTTPを実装する。本開示では、例示のためにHTTPの例について説明するが、本開示で説明する技法とともに他のネットワークプロトコルも使用され得る。
【0056】
HTTPサーバユニット74は、受信したHTTP要求によって要求されたデータを判断するためにHTTP要求を解釈し得る。その要求は、たとえば、特定の3GPPファイルまたは特定の3GPPファイルの一部分を指定するか、MPDファイル、MPDファイルのプレゼンテーション、および/またはプレゼンテーションの3GPPファイルの特性を記述するヘッダデータを指定するか、あるいはMPDの他のデータを指定し得る。次いで、HTTPサーバユニット74は、要求されたデータの指示を3GPPファイル取出しユニット72に受け渡し得る。3GPPファイル取出しユニット72は、要求されたデータをMPDファイル・ストレージ84から取り出し、取り出されたデータをHTTPサーバユニット74に返信し得、HTTPサーバユニット74は、そのデータを1つまたは複数のHTTPパケットにパッケージングし、それらのパケットをネットワーク・インターフェース32に送り得る。次いで、ネットワーク・インターフェース32は、HTTPパケットをカプセル化し、それらのパケットを、たとえば、宛先デバイス40に出力し得る。
【0057】
パラメータ・シグナリング・ユニット62が、MPDファイルについての3GPPファイルの開始時間および持続時間をシグナリングすると、宛先デバイス40などの宛先デバイスは、MPDファイルの様々なプレゼンテーションの互いに対応する3GPPファイルを判断し得る。たとえば、HTTPサーバユニット74は、MPDファイル、MPDファイルの1つまたは複数のプレゼンテーション、および/またはMPDファイルのプレゼンテーションの1つまたは複数の3GPPファイルの特性を記述するデータで、HTTP HEAD要求に応答し得る。また、宛先デバイス40は、たとえば、3GPPファイルがそれに対応するビデオ・セグメントの時間持続時間でファイル・サイズを除算することによって、各プレゼンテーションについての瞬時ビットレートを導出するために、対応する3GPPファイルのファイル・サイズを取り出し得る。
【0058】
HTTPを介したストリーミングにおける帯域幅適応は次のように実装され得る。特定の時間Tに、宛先デバイス40は、所望のビットレートに最も近いが所望のビットレートよりも小さいビットレートをもつストリーム(たとえば、プレゼンテーション)に切り替え得る。時間Tを現在のプレゼンテーションの現在の3GPPファイルにマッピングすることによって、プレゼンテーションの瞬時ビットレートが計算され得る。そうするために、各3GPPファイルが同じ時間長さdeltaTを有すると仮定すると、宛先デバイスは、3GPPファイルの識別子MをM=T/deltaTとして計算し得る。次いで、宛先デバイス40は、3GPPファイルのファイル名を生成し、3GPPファイルの長さをuiFileLengthとして取り出し得る。
【0059】
宛先デバイス40は、MPDファイルから3GPPファイルの時間持続時間をも取り出し得る。この時間持続時間は、この例では秒で記述されると仮定される、指定されたuiDurationであり得る。次いで、宛先デバイス40は、瞬時ビットレートをビットレート=8.0*uiFileLength/uiDuration/100として計算し得、その結果、kbpsの単位を有するビットレートの値が生じる。同じシーンの各プレゼンテーションについてのあらゆるビットレート値を検査することによって、所望のビットレートに最も近いが所望のビットレートよりも小さい値。その場合、対応するプレゼンテーションは、宛先デバイス40がそれに切り替わるべきであるターゲットプレゼンテーションであることがある。すなわち、宛先デバイス40は、ターゲット・プレゼンテーションから3GPPファイルを取り出し始め得る。
【0060】
さらに、HTTPサーバユニット74は、「[URN]_pre[X]_[start
time]_[end time]」などの特定の命名方式に基づいて3GPPファイルを認識するように構成され得、ただし、[URN]はMPDファイルのURNに置き換えられ、Xはプレゼンテーションの数に置き換えられ、[start time]は、要求されている3GPPファイルの開始時間に置き換えられ、[end time]は、要求されている3GPPファイルの終了時間に置き換えられる。したがって、HTTPサーバユニット74は、この命名方式を使用して3GPPファイルを識別する要求に応答して、[start time]の開始時間および[end time]の終了時間を有するプレゼンテーション_pre[X]から[URN]によって識別されたMPDファイルに対応する3GPPファイルを取り出すための指示を3GPPファイル取出しユニット72に送り得る。同様に、3GPPファイル取出しユニット72は、この要求された3GPPファイルを取り出し得る。宛先デバイス40は、3GPPファイルの開始時間および終了時間、ならびに3GPPファイルをそこから取り出すべきプレゼンテーションに基づいて、上記要求中に含めるための3GPPファイルの名前を自動的に生成し得る。
【0061】
いくつかの例では、HTTPサーバユニット74は、上記の命名方式に従って識別されたファイルのバイト範囲を指定するHTTP部分GET要求を受信し得る。HTTPサーバユニット74は、そのファイルのバイト範囲の指示を3GPPファイル取出しユニット72に与え得、3GPPファイル取出しユニット72は、要求されたバイト範囲に対応するファイルのデータのみを取り出し、取り出されたデータをHTTPサーバユニット74に与え得る。HTTPサーバユニット74は、同様に、このデータをカプセル化し、そのデータをネットワーク・インターフェース32に送り得、ネットワーク・インターフェース32は、さらにそのデータをカプセル化し、そのデータを接続34を介して送信し得る。
【0062】
図2の例では、MPD管理ユニットが、MPD作成ユニット60とMPD出力ユニット70の両方を含むものとして示されているが、他の例では、別個のデバイスが、MPD作成ユニット60とMPD出力ユニット70とによる機能を実行するように構成され得る。たとえば、第1のデバイスは、符号化ビデオ・データをMPDファイルの形態でカプセル化することと、MPDファイルのパラメータをシグナリングすることとを行うように構成され得、第2のデバイスは、ウェブサーバとして、第1のデバイスによって作成されたMPDファイルへのアクセスを与えるように構成され得る。同様に、ソース・デバイス20とは別個の符号化デバイスが、未加工ビデオ・データを符号化し、符号化されたビデオ・データをソース・デバイス20のMPD管理ユニット30に送り得る。概して、ソース・デバイス20による機能のいずれも、共通のまたは別個のデバイスおよび/またはデバイスのユニット中に含まれ得る。MPDファイル・ストレージ84は、いくつかの例では、たとえば、外部ハードドライブまたは外部ファイルサーバなどの、外部記憶デバイスに対応し得る。
【0063】
図3は、例示的なMPDファイル90内に記憶されたデータを示すブロック図である。パラメータ・シグナリング・ユニット62は、たとえば、MPDが記憶されたユニフォーム・リソース・ロケータ(URL)を表すURL値92(たとえば、「www.qualcomm.com/media」)、MPDファイル90についてのビデオ・データの時間持続時間を表す持続時間値94、およびMPDファイル90の名前に対応するベース・ユニフォーム・リソースネーム(URN)値96、たとえば、「program1」など、MPDファイル90についての情報をシグナリングし得る。MPDファイル90は、プレゼンテーション100Aの例と同様のいくつかのプレゼンテーションを含む。MPDファイル90のプレゼンテーション100Aの例では、パラメータ・シグナリング・ユニット62は、プレゼンテーション識別子102Aと、宛先デバイスがプレゼンテーション100Aを参照するために使用し得る増分URN104A(たとえば、「_preX」)と、たとえば、プロファイルIDC値106AおよびレベルIDC値108Aを含む、予想される復号能力値と、たとえば、フレームレート値110A、ピクチャ幅値112A、および/またはピクチャ高さ値114Aを含む、予想されるレンダリング能力値とをシグナリングし得る。
【0064】
パラメータ・シグナリング・ユニット62は、プレゼンテーション100Aなどのプレゼンテーションについてのタイミング情報をもシグナリングし得る。タイミング情報属性116Aは、たとえば、(各プレゼンテーションについて等しいはずである)プレゼンテーション中のエントリの数、3GPPファイル識別子118Aに対応する3GPPファイルの持続時間、および同じ持続時間を有する3GPPファイルの数を含み得る。いくつかの例では、パラメータ・シグナリング・ユニット62は、ただ1つのプレゼンテーション(たとえば、プレゼンテーション100A)についてこのデータをシグナリングし得るが、そのデータは、他のプレゼンテーションの各々について同じであると推定され得る。以下の擬似コードは、プレゼンテーションのタイミング特性をシグナリングするために使用され得るデータ構造の一部分を表し得る。
【数1】
【0065】
例示的な擬似コードでは、「number_entry」は、同じプレゼンテーションについての3GPPファイルの連続グループの数を表す。パラメータ・シグナリング・ユニット62は、ムービー・フラグメントのすべての持続時間が同じであるとき、number_entry値を1に設定し得る。値「deltaT」は、3GPPファイルの連続グループのi番目のエントリにおける3GPPファイルの持続時間を表す。値「numFileWithSameDuration」は、i番目のエントリにおける連続3gpファイルの数を表す。パラメータ・シグナリング・ユニット62は、プレゼンテーション中のすべての3GPPファイルが同じ持続時間deltaTを有することを示すために、「numFileWithSameDuration」の値を0に等しく設定し得る。ライブストリーミングに対応する例では、パラメータ・シグナリング・ユニット62は、あらゆる3GPPファイルが同じ持続時間を有することを示すために、「number_entry」値を1に設定し得る。
【0066】
プレゼンテーション100Aは、3GPPファイル管理ユニット64によって構築された3GPPファイルに対応する、いくつかの3GPPファイル識別子118Aをも含む。MPDファイル90のプレゼンテーション100の各々は、時間的に整合され得る同数の3GPPファイルを含み得る。
【0067】
このシグナリングされたデータを使用して、宛先デバイス40は、HTTP GETおよび部分GET要求をサブミットするために3GPPファイルの名前を自動的に生成し得る。すなわち、宛先デバイス40は、3GPPファイルのURNを自動的に生成し得る。たとえば、MPDファイル90のベースURN96が「program1」であり、プレゼンテーション100Aのプレゼンテーション識別子102Aが「_pre2」であると仮定すると、3GPPファイル識別子118Aに対応する3GPPファイルのURNの共通部分は「program1_pre2」である。この例では、プレゼンテーション100A中の3GPPファイル識別子118AのM番目の3GPPファイル識別子の場合、宛先デバイス40は「program1_pre2_M」についてのHTTP GET要求をサブミットし得る。たとえば、45番目の3GPPファイルを取り出すために、宛先デバイス40は、「program1_pre2_45.3gp」についてのHTTP GET要求をサブミットし得る。代替的に、宛先デバイス40は、「program1_pre2_Mstart_Mend」についてのHTTP GET要求をサブミットし得、ただし、Mstartは、3GPPファイル識別子118Aに対応する3GPPファイルのM番目の3GPPファイルの開始時間に対応し、Mendは、3GPPファイル識別子118Aに対応する3GPPファイルのM番目の3GPPファイルの終了時間に対応する。
【0068】
また、宛先デバイス40などのHTTPクライアントが、プレゼンテーション100Aなどのプレゼンテーションの時間Tをシークし得る。シーク時間Tに対応する3GPPファイル識別子118Aに対応する3GPPファイルのM番目の3GPPファイルを取り出すために、宛先デバイス40は、MをM=T/deltaTとして計算し得、ただし、deltaTは、上記で説明したように、3GPPファイルの各々が同じ持続時間を有すると仮定すると、タイミング情報属性116A内でシグナリングされ得る。一方、3GPPファイルが同じ持続時間を有しない場合、宛先デバイス40は、3GPPファイル識別子118Aに対応する3GPPファイルのうち、どの3GPPファイルを取り出すべきかを判断するために、3GPPファイルの各々についての持続時間を取り出し得る。Mを計算した後に、宛先デバイス40は、3GPPファイル識別子118Aに対応する3GPPファイルのM番目の3GPPファイルを取り出し得る。
【0069】
プレゼンテーション100の各々についての3GPPファイルが時間的に整合されたとき、宛先デバイス40は、上記の例では、プレゼンテーションのいずれかから3GPPファイルを取り出すために「_pre2」の代わりにプレゼンテーション100のいずれか1つについての識別子を使用し得る。一例として、MPDファイル90が5つのプレゼンテーションを有し、宛先デバイス40がプレゼンテーション2、3、または4のいずれかを復号し、レンダリングすることが可能であると考える。さらに、プレゼンテーション2が比較的低い品質(および、したがって低い平均ビットレート)を有し、プレゼンテーション3が、より高い品質およびより高い平均ビットレートを有し、プレゼンテーション4が、さらにより高い品質およびさらにより高い平均ビットレートを有すると仮定する。初めに、宛先デバイス40は、利用可能な帯域幅が比較的低いと判断し、したがって、たとえば、「program1_pre2_1.3gp」についてのHTTP GET要求を使用して、プレゼンテーション2から3GPPファイル「1」を取り出し得る。次いで、宛先デバイス40は、利用可能な帯域幅が増加したと判断し、したがって、「program1_pre3_2.3gp」についてのHTTP GET要求を使用して、次の3GPPファイルを取り出し得る。次いで、宛先デバイス40は、利用可能な帯域幅がなお一層増加したと判断し、したがって、「program1_pre4_3.3gp」についてのHTTP GET要求を使用して、次の3GPPファイルを取り出し得る。
【0070】
図4は、様々なプレゼンテーション134、140の3GPPファイル138、144と、ビデオ146のビデオ・セグメント130との間の整合を示す概念図である。ビデオ146はビデオ・セグメント130A〜130N(ビデオ・セグメント130)を含む。
図4の例は、この例ではプレゼンテーション134とプレゼンテーション140とを示しており、プレゼンテーション134とプレゼンテーション140との間の省略符号によって示されるように、追加のプレゼンテーションを含み得る。プレゼンテーション134は、ヘッダデータ136と3GPPファイル138A〜138N(3GPPファイル138)とを含む。プレゼンテーション140は、ヘッダデータ142と3GPPファイル144A〜144N(3GPPファイル144)とを含む。
【0071】
3GPPファイル138は、3GPPファイル144とはサイズが異なるが、3GPPファイル138および3GPPファイル144は、ビデオ146のビデオ・セグメント130と時間的に整合される。
図4の例では、3GPPファイル138Aおよび3GPPファイル144Aはビデオ・セグメント130Aに対応し、3GPPファイル138Bおよび3GPPファイル144Bはビデオ・セグメント130Bに対応し、3GPPファイル138Cおよび3GPPファイル144Cはビデオ・セグメント130Cに対応し、3GPPファイル138Nおよび3GPPファイル144Nはビデオ・セグメント130Nに対応する。すなわち、3GPPファイル138Aおよび3GPPファイル144Aは、たとえば、潜在的に別様に符号化および/またはレンダリングされるが、概して、ビデオ・セグメント130Aと同じシーンに対応する、ビデオ・データを含む。
【0072】
ヘッダデータ136、142は、概して、それぞれプレゼンテーション134、140を記述するデータを含み得る。ヘッダデータ136、142は、
図3のプレゼンテーション識別子102A、増分URN104A、プロファイルIDC値106A、レベルIDC値108A、フレームレート値110A、ピクチャ幅値112A、ピクチャ高さ値114A、およびタイミング情報属性116Aと同様のデータを含み得る。プレゼンテーション134〜140の3GPPファイル138、144を記述するMPDファイルは、MPDファイルと、プレゼンテーション134、140と、3GPPファイル138、144との特性を記述するヘッダデータ(図示せず)をも含み得る。
【0073】
このようにして、宛先デバイス40(
図1)は、宛先デバイス40が3GPPファイル138および/または3GPPファイル144のビデオ・データを復号し、表示することが可能であるかどうかを判断するために、ヘッダデータ136、142を取り出し得る。宛先デバイス40が、3GPPファイル138と3GPPファイル144の両方からのデータを復号し、レンダリングすることが可能であると仮定すると、宛先デバイス40は、帯域幅利用可能性に基づいてプレゼンテーション134とプレゼンテーション140のいずれかを選択し得る。たとえば、プレゼンテーション134がプレゼンテーション140よりも低い平均ビットレートを有すると仮定すると、宛先デバイス40は、帯域幅利用可能性が比較的低いとき、初めにプレゼンテーション134から3GPPファイル138Aを取り出し得る。次いで、宛先デバイス40が、帯域幅利用可能性が増加したと判断すると仮定すると、宛先デバイス40は、次に3GPPファイル144Bを取り出し得る。3GPPファイル138Aと3GPPファイル144Aとが時間的に整合されるので、宛先デバイス40は、3GPPファイル144Bの符号化ビデオ・データをシームレスに復号し、レンダリングし得、その結果、宛先デバイス40のユーザは、潜在的に品質が変動するとしても、ビデオ・セグメント130Aと、その直後にくるビデオ・セグメント130Bとを参照することが可能となる。
【0074】
図5は、符号化ビデオ・データをソース・デバイスから宛先デバイスにトランスポートするための例示的な方法を示すフローチャートである。例として、
図5の方法についてソース・デバイス20および宛先デバイス40に関して説明するが、他のデバイスが
図5の方法を実行するように構成され得ることを理解されたい。
【0075】
図5の例では、ソース・デバイス20は、ビデオの様々なビデオ・セグメントに対応する符号化ビデオ・データを受信する。ソース・デバイス20は、符号化ビデオ・データをMPDファイルにカプセル化する(180)。たとえば、ソース・デバイス20は、
図4に示すように、共通のビデオ・セグメントに対応する多種多様なプレゼンテーションの符号化ビデオ・フレームを判断し、そのビデオ・フレームを様々なプレゼンテーションの1つまたは複数のそれぞれの3GPPファイルにカプセル化し得る。ソース・デバイス20はまた、MPDファイル、プレゼンテーション、および/または3GPPファイルのヘッダ部分において、MPDファイル、プレゼンテーション、および3GPPファイルの特性をシグナリングする(182)。それらの特性は、
図3に示す例示的な特性に対応し得る。
【0076】
宛先デバイス40のユーザは、初めに、たとえば、ウェブブラウザ38(
図1)を使用して、ウェブページ上のリンクから、またはウェブページの埋込みビデオから、MPDファイルを取り出し得る。ユーザがビデオを閲覧することを要求した後、宛先デバイス40はMPDファイルの特性を要求する(184)。たとえば、宛先デバイス40は、特定のMPDファイルについてHTTP HEAD要求をソース・デバイス20に発行し得る。それに応答して、ソース・デバイス20は、MPDファイルの特性を示すデータを与える(186)。このデータは、たとえば、MPDファイルについてのプレゼンテーションの数、宛先デバイス40がそれぞれのプレゼンテーションの3GPPファイルを復号し、レンダリングすることが可能であると予想される、各プレゼンテーションについての復号能力およびレンダリング能力、各プレゼンテーションについての平均ビットレート、プレゼンテーションについての3GPPファイルの持続時間(3GPPファイルの各々が同じ持続時間を有する場合)、プレゼンテーションのうちの1つまたは複数についての3GPPファイルの各々についての持続時間(3GPPファイルが、プレゼンテーション内で異なる持続時間を有することができるが、異なるプレゼンテーション間で時間的に整合される場合)、各プレゼンテーションの増分ユニフォーム・リソースネーム、またはMPDファイルの他の特性を示し得る。
【0077】
宛先デバイス40は、予想される復号およびレンダリング能力を分析して、上記プレゼンテーションのうち、どのプレゼンテーションが宛先デバイス40によって復号され、レンダリングされ得るかを判断する(188)。たとえば、宛先デバイス40は、受信したMPDファイル特性において予想される復号能力によって示されるプロファイルIDC値およびレベルIDC値をビデオ・デコーダ48が満たすかどうかを判断し得る。宛先デバイス40はまた、予想されるレンダリング能力値によって示されるフレームレートでビデオ出力44がビデオ・データを表示することが可能であるかどうかを判断し、予想されるレンダリング能力値のピクチャ高さおよび/またはピクチャ幅値にビデオ出力44のサイズが一致するかどうかを判断し得る。いくつかの例では、ビデオ・デコーダ48および/またはビデオ出力44は、ビデオ出力44のサイズ内に適切に収まるように、復号されたピクチャをアップサンプリングまたはダウンサンプリングし得る。同様に、ビデオ・デコーダ48および/またはビデオ出力44は、ビデオ出力44のリフレッシュ速度に一致するように、復号されたビデオ・データのフレームを補間またはデシメート(またはスキップ)し得る。宛先デバイス40は、MPDファイルのどのプレゼンテーションがローカルコンピュータ可読記憶媒体、たとえば、宛先デバイス40のランダムアクセスメモリ(RAM)において復号され、レンダリングされ得るかについての指示を記録し得る。
【0078】
次いで、宛先デバイス40は、それ自体とソース・デバイス20との間のネットワークの帯域幅の相対量を判断する(190)。宛先デバイス40は、概して、利用可能である帯域幅の量を判断するために、利用可能な帯域幅を推定するための任意の知られている技法を使用し得る。たとえば、宛先デバイス40は、追加または代替として、(たとえば、インターネット制御メッセージ・プロトコル(ICMP)ピング要求をソース・デバイス20に発行することによって)往復遅延を推定するか、(たとえば、伝送制御プロトコル(TCP)統計に従って、損失または破損したパケットを分析することによって)平均パケット破損またはパケット損失を推定するか、あるいは他のネットワーク・パフォーマンス・メトリックを推定し得る。
【0079】
次いで、宛先デバイス40は、上記プレゼンテーションのうち、3GPPファイルをそこから取り出し始めるべきプレゼンテーションを選択する(192)。宛先デバイス40は、上記プレゼンテーションのうち、予想される復号能力をビデオ・デコーダ48が満たし、予想されるレンダリング能力をビデオ出力44が満たす、プレゼンテーションを選択し得る。宛先デバイス40が2つ以上のプレゼンテーションの符号化ビデオ・データを復号し、レンダリングすることが可能であるとき、宛先デバイス40は、プレゼンテーションの平均ビットレートを互いに比較することによって、帯域幅の判断された量に基づいて、これらの潜在的なプレゼンテーションの中から選択し得る。宛先デバイス40は、宛先デバイス40が、利用可能な帯域幅が低いときは比較的低い平均ビットレートを有するプレゼンテーションを選択するが、利用可能な帯域幅が高いときは比較的高い平均ビットレートを有するプレゼンテーションを選択するように、平均ビットレートを利用可能な帯域幅に確実に関係づける機能で構成され得る。
【0080】
プレゼンテーションを選択した後に、宛先デバイス40はプレゼンテーションからの3GPPファイルを要求する(194)。宛先デバイス40は、第1の3GPPファイル、またはシークされた時間(すなわち、ユーザがビデオ・データ内でシークすることを要求した位置に対応する時間ロケーション)を含む3GPPファイルを選択し得る。3GPPファイルを要求するために、宛先デバイスは、ソース・デバイス20のURLと、MPDファイルのURNと、プレゼンテーション識別子と、3GPPファイル識別子とを指定するHTTP GET要求を構築し得る。3GPPファイル識別子は、3GPPファイルの数字識別子に対応するか、あるいは開始時間および/または終了時間のうちの少なくとも1つを含み得る。いくつかの例では、宛先デバイス40は、たとえば、ユーザがシークする時間を含む3GPPファイルが比較的長い(たとえば、60秒近く)とき、部分GET要求を構築し得る。
【0081】
HTTP GETまたは部分GET要求を受信した後に、ソース・デバイス20は、要求された3GPPファイル(または要求された3GPPファイルの部分)を取り出し、送る(196)。ソース・デバイス20は、1つまたは複数のHTTPパケットにおいて3GPPファイルを宛先デバイス40に送り得る。HTTPパケットの各々は、たとえば、TCP/IPに従って、さらにカプセル化され得る。要求された3GPPファイルを受信し、再び集約した後に、宛先デバイス40は、3GPPファイルを復号し、表示する(198)。すなわち、宛先デバイス40のウェブ・ブラウザ38は、3GPPファイルを復号のためにビデオ・デコーダ48に送り得、ビデオ・デコーダ48は、復号されたビデオ・データを表示のためにビデオ出力44に送り得る。
【0082】
次いで、宛先デバイス40は、復号され表示されたビデオ・ファイルがビデオの最後の3GPPファイルであったかどうかを判断する(200)。宛先デバイス40は、ビデオの終了に達したとき、またはユーザがビデオを見るのを止めることを選択したとき、その3GPPファイルが最後であったと判断し得る。復号され表示されたビデオ・ファイルが最後のビデオ・ファイルでなかった場合(200の「NO」分岐)、宛先デバイス40は、利用可能な帯域幅を再評価し(190)、帯域幅の新たに判断された量に基づいてプレゼンテーションを選択し(192)、選択されたプレゼンテーションからの次の3GPPファイルを要求する(194)。一方、復号され表示されたビデオ・ファイルが最後のビデオ・ファイルであった場合(200の「YES」分岐)、本方法は終了し得る。
【0083】
図6は、例示的な3GPPファイル220の要素を示すブロック図である。宛先デバイス40は、3GPPファイル220内の要求された時間をシークするために3GPPファイル220からのデータを使用し得る。概して、3GPPファイルは、たとえば、2秒から60秒の間の、さらにはより長いまたはより短い、任意の時間の長さに対応するビデオ・データを含み得る。3GPPファイルの時間の長さが比較的短い(たとえば、2秒に近い)とき、宛先デバイス40は、シーク時間、すなわち、たとえば、ユーザによって要求されるように、ビデオ・データを表示し始めるべきビデオ・データの時間を含む3GPPファイル全体を取り出すように構成され得る。一方、3GPPファイルの時間の長さがより長い(たとえば、60秒により近い)とき、宛先デバイス40は、たとえば、HTTP部分GET要求を使用することによって、復号および表示のためにシーク時間に近い3GPPファイルの一部分を取り出すように構成され得る。
【0084】
3GPPファイル220は、ムービー(MOOV)ボックス222とムービー・フラグメント・ランダムアクセス(MFRA)ボックス230とを含む。MOOVボックス222は、概して符号化ビデオ・データを含み、MFRAボックス230は、MOOVボックス222内のデータのランダムアクセスを支援するための記述データを含む。
図6の例では、MOOVボックス222は、ファイル全体についてのメタデータ224と、場合によってはビデオ・フラグメント226A〜226C(ビデオ・フラグメント226)とを含み、MFRAボックスは、フラグメント・シグナリングデータ234を含むトラック・フラグメント・ランダムアクセス(TFRA)ボックス232と、MFRAサイズ値238を含むムービー・フラグメント・ランダムアクセス・オフセット(MFRO)ボックス236とを含む。
【0085】
MFRAサイズ値238は、MFRAボックス230の長さをバイトで記述する。
図6の例では、3GPPファイル220はNバイトを有する。宛先デバイス40は、3GPPファイル220の長さ、たとえば、この例ではNの値を判断するために、3GPPファイル220についてのHTTP HEAD要求をサブミットし得る。概して、MFROボックス236は、3GPPファイル220の最後の4バイトを占有する。したがって、MFRAボックス230の長さを判断するために、宛先デバイス40などのクライアント・デバイスは、たとえば、[N−4]からNまでのバイト範囲を指定するHTTP部分GET要求を使用して、3GPPファイル220の最後の4バイトを取り出し得る。MFROボックス236がMFRAサイズ値238を含むので、宛先デバイス40は、MFROボックス236を取り出した後にMFRAボックス230の長さを判断し得る。
【0086】
MFRAサイズ値238を使用してMFRAボックス230の長さを判断した後に、宛先デバイス40は、MFRAボックス230の残りの部分を取り出し得る。たとえば、宛先デバイス40は、[N−MFRAサイズ]から[N−4]までのバイト範囲を指定する、3GPPファイル220についてのHTTP部分getを発行し得る。
図6に示すように、この部分は、フラグメント・シグナリング234を含むTFRAボックス232を含む。フラグメント・シグナリング234は、たとえば、ビデオ・フラグメント226の時間ロケーションを指定し得る。ヘッダデータ224。
【0087】
宛先デバイス40は、シーク要求を満たすために、ビデオ・フラグメント226のうち、どのビデオ・フラグメントを取り出すべきかを判断するために、フラグメント・シグナリング234を使用し得る。すなわち、宛先デバイス40は、ビデオ・フラグメント226のうち、どのビデオ・フラグメントが、シーク要求において指定された時間を含むかを判断し得る。宛先デバイス40は、ビデオ・フラグメント226の各々についてのバイト範囲を判断するためにヘッダデータ224を取り出し得る。フラグメント・シグナリング234に基づいて、ビデオ・フラグメント226のうち、どのビデオ・フラグメントが、シーク要求において指定された時間を含むかを判断した後に、宛先デバイス40は、ビデオ・フラグメント226のうち、シーク要求において指定された時間を含むビデオ・フラグメント、ならびに後続のビデオ・フラグメント226の各々を取り出し得る。
【0088】
いくつかの例では、宛先デバイス40は、ビデオ・フラグメント226のうち、シーク要求において指定された時間を含むビデオ・フラグメントについての第1の部分GET要求をサブミットし、受信時にこのビデオ・フラグメントを復号および表示し始め、次いで、ビデオ・フラグメント226のうちの後続のビデオ・フラグメントを取り出すための1つまたは複数の追加の部分GET要求をサブミットし得る。他の例では、宛先デバイス40は、たとえば、ビデオ・フラグメント226のうち、シーク要求において指定された時間を含むビデオ・フラグメントの開始から[N−MFRAサイズ]までに対応するバイト範囲を指定することによって、ビデオ・フラグメント226のうちの上記ビデオ・フラグメントと、ビデオ・フラグメント226のうちの後続のビデオ・フラグメントの各々とを取り出すための、1つの部分GET要求をサブミットし得る。
【0089】
図7は、3GPPファイル内の時間についてのシーク要求に応答して3GPPファイルのフラグメントを要求するための例示的な方法を示すフローチャートである。初めに、宛先デバイス40は、たとえば、ウェブ・ブラウザ38を介してユーザから、ビデオ内の特定の時間をシークするための要求を受信する(250)。たとえば、ユーザは、特定の時間ロケーションのシークを要求するために、ビデオ・データの時間ロケーションを示すスクロールバーの一部分を選択し得る。
【0090】
それに応答して、宛先デバイス40は、シーク時間を含むMPDファイルのプレゼンテーションの3GPPファイルを判断する(252)。すなわち、宛先デバイス40は、シーク時間よりも小さい開始時間とシーク時間よりも大きい終了時間とを有するプレゼンテーションの3GPPファイルのうちの1つを判断し得る。例示のために、
図7の方法について
図6の3GPPファイル220に関して説明し、3GPPファイル220は、3GPPファイル識別子118に対応する3GPPファイル、3GPPファイル138、または3GPPファイル144のいずれかに対応し得る。3GPPファイル220が、シーク時間よりも小さい開始時間とシーク時間よりも大きい終了時間とを有すると仮定する。宛先デバイス40は、3GPPファイル220を含むプレゼンテーションのヘッダ部分内に記憶された3GPPファイル220についてのタイミング情報属性に基づいて3GPPファイル220を識別し得る。シーク時間と3GPPファイル220の開始時間との間の差は、時間オフセットと呼ばれることがある。
【0091】
次いで、宛先デバイス40は、たとえば、3GPPファイル220を指定するHTTP
HEAD要求をソース・デバイス20に発行することによって、3GPPファイル220の長さを判断し得る。バイトでの3GPPファイル220の長さ(たとえば、Nバイト)を判断すると、宛先デバイス40は、3GPPファイル220からMFROボックス236を取り出す(254)ために、3GPPファイル220と、3GPPファイル220の[N−4]〜Nのバイト範囲とを指定するHTTP部分GET要求を発行し得る。
【0092】
図6の例に示すように、MFROボックス236はMFRAサイズ値238を含む。したがって、宛先デバイス40は、MFROボックス236を受信した後にMFRAサイズ値238を使用して、MFRAボックス230の残部を取り出す(256)。すなわち、宛先デバイス40は、3GPPファイル220のバイト範囲[N−MFRAサイズ]〜[N−4]についてのHTTP部分GETを発行し得る。このようにして、宛先デバイス40は、MFROデータに基づいて残りのMFRAデータを取り出し得る。宛先デバイス40は、MOOVボックス222のMOOVヘッダデータ、たとえば、ヘッダ224をも取り出す(258)。
【0093】
宛先デバイス40は、ヘッダ224とMFRAボックス230のフラグメント・シグナリング232とのデータを使用して、ビデオ・フラグメント226のうち、どのビデオ・フラグメントが、シーク時間を超えることなしにシーク時間に最も近い開始時間を有するかを判断する(260)。次いで、宛先デバイス40は、ビデオ・フラグメント226のうちの上記ビデオ・フラグメントと後続のビデオ・フラグメント226の各々とを3GPPファイル220から取り出すための1つまたは複数のHTTP部分GET要求を発行する(262)。すなわち、ヘッダ224とフラグメント・シグナリング232とからの指示を使用して、宛先デバイス40は、ビデオ・フラグメント226のうちの上記ビデオ・フラグメントが、シーク時間を超えることなしにシーク時間に最も近い開始時間を有する、開始バイトを判断し得る。様々な例では、次いで、宛先デバイス40は、この開始バイトと、ビデオ・フラグメント226のうちのこのビデオ・フラグメントの最終バイトまたはMOOVボックス222の終了のいずれかとを指定するHTTP部分GET要求を構築し得る。
【0094】
図7の方法について、MFRAボックス230からのデータの使用に関して説明するが、宛先デバイス40は、3GPPファイル222からビデオ・フラグメント226を抽出するための同様の技法を実行するために他のデータを使用し得る。たとえば、宛先デバイス40は、3GPPファイルのアイテム・ロケーション(ILOC)ボックスに基づいて、ビデオ・フラグメント226のうち、どのビデオ・フラグメントを抽出すべきかを判断し得る。最初の4バイトが、たとえば、アイテム・ロケーション・オフセット(ILOO)ボックスを含み、その直後にILOCがくるように、3GPPファイルが構築され得る。ILOOボックスはILOCボックスの長さを指定し得る。ILOOボックスは、以下の例示的な擬似コードに従って構築され得る。
【数2】
【0095】
例示的な擬似コードでは、ItemLocationBoxOffsetは、ILOOボックスについての新しいクラスの名前を記述する。本例では、ILOCボックスのサイズを示す32ビット整数値「size」を指定する。ILOOボックスによって指定されたILOCボックスのサイズ値は、ILOOボックスの4バイトを含み得る。
【0096】
ILOCボックスは、3GPPファイル内に含まれるビデオ・フラグメントのタイミング情報、たとえば、各フラグメントの開始時間および終了時間を示す、タイミング情報ボックスを指定し得る。タイミング情報は、たとえば、ビットを節約するために、自動的にシグナリングされ得る。ILOCボックスは、さらに、3GPPファイルのMOOVボックスの他の記述データ、たとえば、
図6のヘッダ224によって記憶されたデータと同様のデータを含み得る。ILOCおよびILOOボックスは、ムービー・フラグメントのタイミング情報を示すために使用され得る。したがって、宛先デバイス40は、ILOCおよびILOOボックスのデータに基づいて1つまたは複数のHTTP部分GET要求を構築することによってシーク要求を満たすためにビデオ・フラグメントを取り出し得る。
【0097】
特に、宛先デバイス40は、最初に、ILOCボックスのサイズ値に対応する、3GPPファイルの最初の4バイトを取り出し得る。すなわち、宛先デバイス40は、最初に、ILOOボックスを取り出すための、3GPPファイルのバイト0〜4についてのHTTP部分GET要求を発行し得る。ILOOボックスによって指定されたILOCボックスのサイズを使用することによって、宛先デバイス40は、たとえば、バイト4〜[ILOCサイズ]を指定するHTTP部分GET要求を発行することによって、ILOCボックスを取り出し得る。
【0098】
ILOCボックスは、各ビデオ・フラグメントについてのバイト範囲および時間ロケーション、たとえば、開始時間、終了時間、開始バイト、および終了バイトを示す(後続のILOCボックスとも呼ばれる)タイミング情報ボックスの位置および長さを指定し得る。したがって、宛先デバイス40は、次いで、ILOCボックスのデータに基づいてタイミング情報ボックスを取り出し得る。次いで、宛先デバイス40は、上記ビデオ・フラグメントのうち、どのビデオ・フラグメントが、シーク時間よりも小さい開始時間とシーク時間よりも大きい終了時間とを含むかを判断し、3GPPファイルのこのビデオ・フラグメントと後続のビデオ・フラグメントとを取り出すための1つまたは複数のHTTP部分GET要求を発行し得る。
【0099】
タイミング情報ボックスは、以下の例次的な擬似コードに従って実装され得る。
【数3】
【0100】
例示的な擬似コードでは、「number_entry」値は、3GPPファイルの連続ムービー・フラグメントの数を記述する。number_entryは、ムービー・フラグメントのすべての持続時間が同じであることを示すために1の値に設定され得る。「deltaTFragment」値は、概して、3GPPファイル中のムービー・フラグメントの連続グループのi番目のエントリのフラグメントの持続時間を記述し得る。「numContinueFragWithSameDuration」値は、i番目のエントリにおける連続ムービー・フラグメントの数を記述する。「numContinueFragWithSameDuration」値が0に等しいとき、その値は、プレゼンテーション中のすべての3GPPファイルが同じ持続時間deltaTを有することを示す。
【0101】
1つまたは複数の例では、説明した機能はハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータ・プログラムの転送を可能にする任意の媒体を含む、コンピュータデータ記憶媒体または通信媒体を含み得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。「コンピュータ可読記憶媒体」という句は、製造品に対応し得る非一時的な有形のコンピュータ可読記憶媒体を指すものとする。限定ではなく、例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【0102】
コードは、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェア・モジュール内に提供され得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
【0103】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実施され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェア・ユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明したように1つまたは複数のプロセッサを含んで、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【0104】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に本願出願当初の特許請求の範囲を付記する。
[C1] 符号化ビデオ・データをトランスポートするための方法であって、前記方法は、
ソース・ビデオ・デバイスが、いくつかのビデオ・セグメントを備える符号化ビデオ・データを受信することと、
いくつかのビデオ・ファイルを備えるプレゼンテーションを形成することであって、前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応する、形成することと、
前記ビデオ・データの時間セクションを指定する要求に応答して、前記要求された時間セクションの前記いくつかのビデオ・セグメントに対応する前記ビデオ・ファイルのうちの少なくとも1つを出力することと、
を備える、方法。
[C2] 前記ビデオ・ファイルの各々についての開始時間および終了時間をシグナリングすることをさらに備える、C1に記載の方法。
[C3] 前記時間セクションが、前記ビデオ・ファイルのうちの1つについての前記開始時間と等価な開始時間を備え、前記時間セクションが、前記ビデオ・ファイルのうちの前記1つについての前記終了時間と等価な終了時間を備え、
前記ビデオ・ファイルのうちの前記少なくとも1つを出力することが、前記要求によって指定された前記時間セクションの前記それぞれの開始時間および終了時間と等価な前記開始時間および前記終了時間を有する前記ビデオ・ファイルのうちの前記1つを出力することを備える、
C2に記載の方法。
[C4] 前記プレゼンテーションが第1のプレゼンテーションを備え、前記方法は、
いくつかのビデオ・ファイルを備える第2のプレゼンテーションを形成することであって、前記第2のプレゼンテーションの前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応し、その結果、前記第2のプレゼンテーションの前記ビデオ・ファイルが前記第1のプレゼンテーションの前記ビデオ・ファイルと時間的に整合される、形成することと、
前記要求に基づいて前記第1のプレゼンテーションまたは前記第2のプレゼンテーションから前記いくつかのビデオ・ファイルのうちの少なくとも1つを選択的に出力することであって、前記要求が前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのうちの少なくとも1つを指定する、出力することと、
をさらに備える、C1に記載の方法。
[C5] 前記第1のプレゼンテーションについての第1のレンダリング能力、第1の復号能力、および第1の平均ビットレートをシグナリングすることと、
前記第2のプレゼンテーションについての第2のレンダリング能力、第2の復号能力、および第2の平均ビットレートをシグナリングすることと、
をさらに備える、C4に記載の方法。
[C6] 前記要求が、前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのうちの少なくとも1つについての指示と、開始時間と、終了時間とを備えるファイル名を備え、
前記ビデオ・ファイルのうちの前記少なくとも1つを出力することが、前記要求の前記指示に対応する前記プレゼンテーションから前記ビデオ・ファイルのうちの1つを出力することを備え、前記ビデオ・ファイルのうちの前記1つが前記要求の前記開始時間および前記終了時間を有する、
C4に記載の方法。
[C7] 前記要求が、前記指定されたプレゼンテーションの前記ビデオ・ファイルのうちの1つについてのバイト範囲を指定するハイパーテキスト転送プロトコル(HTTP)部分GET要求を備える、C1に記載の方法。
[C8] 符号化ビデオ・データをトランスポートするための装置であって、前記装置は、
いくつかのビデオ・セグメントを備える符号化ビデオ・データを受信することと、いくつかのビデオ・ファイルを備えるプレゼンテーションを形成することであって、前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応する、形成することとを行うように構成された管理ユニットと、
前記ビデオ・データの時間セクションを指定する要求に応答して、前記要求された時間セクションの前記いくつかのビデオ・セグメントに対応する前記ビデオ・ファイルのうちの少なくとも1つを出力するように構成されたネットワーク・インターフェースと
を備える、装置。
[C9] 前記管理ユニットが、前記ビデオ・ファイルの各々についての開始時間および終了時間をシグナリングするように構成された、C8に記載の装置。
[C10] 前記時間セクションが、前記ビデオ・ファイルのうちの1つについての前記開始時間と等価な開始時間を備え、前記時間セクションが、前記ビデオ・ファイルのうちの前記1つについての前記終了時間と等価な終了時間を備え、
前記ビデオ・ファイルのうちの前記少なくとも1つを出力するために、前記ネットワーク・インターフェースが、前記要求によって指定された前記時間セクションの前記それぞれの開始時間および終了時間と等価な前記開始時間および前記終了時間を有する前記ビデオ・ファイルのうちの前記1つを出力する、
C9に記載の装置。
[C11] 前記プレゼンテーションが第1のプレゼンテーションを備え、前記管理ユニットは、いくつかのビデオ・ファイルを備える第2のプレゼンテーションを形成することであって、前記第2のプレゼンテーションの前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応し、その結果、前記第2のプレゼンテーションの前記ビデオ・ファイルが前記第1のプレゼンテーションの前記ビデオ・ファイルと時間的に整合される、形成することと、前記要求に基づいて前記第1のプレゼンテーションまたは前記第2のプレゼンテーションから前記いくつかのビデオ・ファイルのうちの少なくとも1つを選択的に出力することであって、前記要求が前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのうちの少なくとも1つをさらに指定する、出力することと、を行うように構成された、C8に記載の装置。
[C12] 前記管理ユニットが、前記第1のプレゼンテーションについての第1のレンダリング能力、第1の復号能力、および第1の平均ビットレートをシグナリングすることと、前記第2のプレゼンテーションについての第2のレンダリング能力、第2の復号能力、および第2の平均ビットレートをシグナリングすることとを行うように構成された、C11に記載の装置。
[C13] 前記要求が、前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのうちの少なくとも1つについての指示と、開始時間と、終了時間とを備えるファイル名を備え、
前記ビデオ・ファイルのうちの前記少なくとも1つを出力するために、前記ネットワーク・インターフェースが、前記要求の前記指示に対応する前記プレゼンテーションから前記ビデオ・ファイルのうちの1つを出力するように構成され、前記ビデオ・ファイルのうちの前記1つが前記要求の前記開始時間および前記終了時間を有する、
C11に記載の装置。
[C14] 前記要求が、前記指定されたプレゼンテーションの前記ビデオ・ファイルのうちの1つについてのバイト範囲を指定するハイパーテキスト転送プロトコル(HTTP)部分GET要求を備える、C8に記載の装置。
[C15] 符号化ビデオ・データをトランスポートするための装置であって、前記装置は、
いくつかのビデオ・セグメントを備える符号化ビデオ・データを受信するための手段と、
いくつかのビデオ・ファイルを備えるプレゼンテーションを形成するための手段であって、前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応する、形成するための手段と、
前記ビデオ・データの時間セクションを指定する要求に応答して、前記要求された時間セクションの前記いくつかのビデオ・セグメントに対応する前記ビデオ・ファイルのうちの少なくとも1つを出力するための手段と、
を備える、装置。
[C16] 前記ビデオ・ファイルの各々についての開始時間および終了時間をシグナリングするための手段をさらに備える、C15に記載の装置。
[C17] 前記時間セクションが、前記ビデオ・ファイルのうちの1つについての前記開始時間と等価な開始時間を備え、前記時間セクションが、前記ビデオ・ファイルのうちの前記1つについての前記終了時間と等価な終了時間を備え、
前記ビデオ・ファイルのうちの前記少なくとも1つを出力するための前記手段が、前記要求によって指定された前記時間セクションの前記それぞれの開始時間および終了時間と等価な前記開始時間および前記終了時間を有する前記ビデオ・ファイルのうちの前記1つを出力するための手段を備える、
C16に記載の装置。
[C18] 前記プレゼンテーションが第1のプレゼンテーションを備え、前記装置は、
いくつかのビデオ・ファイルを備える第2のプレゼンテーションを形成するための手段であって、前記第2のプレゼンテーションの前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応し、その結果、前記第2のプレゼンテーションの前記ビデオ・ファイルが前記第1のプレゼンテーションの前記ビデオ・ファイルと時間的に整合される、形成するための手段と、
前記要求に基づいて前記第1のプレゼンテーションまたは前記第2のプレゼンテーションから前記いくつかのビデオ・ファイルのうちの少なくとも1つを選択的に出力するための手段であって、前記要求が前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのうちの少なくとも1つをさらに指定する、出力するための手段と、
をさらに備える、C15に記載の装置。
[C19] 前記第1のプレゼンテーションについての第1のレンダリング能力、第1の復号能力、および第1の平均ビットレートをシグナリングするための手段と、
前記第2のプレゼンテーションについての第2のレンダリング能力、第2の復号能力、および第2の平均ビットレートをシグナリングするための手段と、
をさらに備える、C18に記載の装置。
[C20] 前記要求が、前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのうちの少なくとも1つについての指示と、開始時間と、終了時間とを備えるファイル名を備え、
前記ビデオ・ファイルのうちの前記少なくとも1つを出力するための前記手段が、前記要求の前記指示に対応する前記プレゼンテーションから前記ビデオ・ファイルのうちの1つを出力するための手段を備え、前記ビデオ・ファイルのうちの前記1つが前記要求の前記開始時間および前記終了時間を有する、
C18に記載の装置。
[C21] 前記要求が、前記指定されたプレゼンテーションの前記ビデオ・ファイルのうちの1つについてのバイト範囲を指定するハイパーテキスト転送プロトコル(HTTP)部分GET要求を備える、C15に記載の装置。
[C22] 実行されると、
いくつかのビデオ・セグメントを備える符号化ビデオ・データを受信することと、
いくつかのビデオ・ファイルを備えるプレゼンテーションを形成することであって、前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応する、形成することと、
前記ビデオ・データの時間セクションを指定する要求に応答して、前記要求された時間セクションの前記いくつかのビデオ・セグメントに対応する前記ビデオ・ファイルのうちの少なくとも1つを出力することとを、符号化ビデオ・データをトランスポートするためのソース・デバイスのプロセッサに行わせる命令を備える非一時的コンピュータ可読記憶媒体。
[C23] 前記ビデオ・ファイルの各々についての開始時間および終了時間をシグナリングするための命令をさらに備える、C22に記載の非一時的コンピュータ可読記憶媒体。
[C24] 前記時間セクションが、前記ビデオ・ファイルのうちの1つについての前記開始時間と等価な開始時間を備え、前記時間セクションが、前記ビデオ・ファイルのうちの前記1つについての前記終了時間と等価な終了時間を備え、
前記ビデオ・ファイルのうちの前記少なくとも1つを出力するための前記命令が、前記要求によって指定された前記時間セクションの前記それぞれの開始時間および終了時間と等価な前記開始時間および前記終了時間を有する前記ビデオ・ファイルのうちの前記1つを出力するための命令を備える、
C23に記載の非一時的コンピュータ可読記憶媒体。
[C25] 前記プレゼンテーションが第1のプレゼンテーションを備え、前記非一時的コンピュータ可読記憶媒体は、
いくつかのビデオ・ファイルを備える第2のプレゼンテーションを形成することであって、前記第2のプレゼンテーションの前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応し、その結果、前記第2のプレゼンテーションの前記ビデオ・ファイルが前記第1のプレゼンテーションの前記ビデオ・ファイルと時間的に整合される、形成することと、
前記要求に基づいて前記第1のプレゼンテーションまたは前記第2のプレゼンテーションから前記いくつかのビデオ・ファイルのうちの少なくとも1つを選択的に出力することであって、前記要求が前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのうちの少なくとも1つをさらに指定する、出力することと、
を行うための命令をさらに備える、C22に記載の非一時的コンピュータ可読記憶媒体。
[C26] 前記第1のプレゼンテーションについての第1のレンダリング能力、第1の復号能力、および第1の平均ビットレートをシグナリングすることと、
前記第2のプレゼンテーションについての第2のレンダリング能力、第2の復号能力、および第2の平均ビットレートをシグナリングすることと、
を行うための命令をさらに備える、C25に記載の非一時的コンピュータ可読記憶媒体。
[C27] 前記要求が、前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのうちの少なくとも1つについての指示と、開始時間と、終了時間とを備えるファイル名を備え、
前記ビデオ・ファイルのうちの前記少なくとも1つを出力するための前記命令が、前記要求の前記指示に対応する前記プレゼンテーションから前記ビデオ・ファイルのうちの1つを出力するための命令を備え、前記ビデオ・ファイルのうちの前記1つが前記要求の前記開始時間および前記終了時間を有する、
C25に記載の非一時的コンピュータ可読記憶媒体。
[C28] 前記要求が、前記指定されたプレゼンテーションの前記ビデオ・ファイルのうちの1つについてのバイト範囲を指定するハイパーテキスト転送プロトコル(HTTP)部分GET要求を備える、C22に記載の非一時的コンピュータ可読記憶媒体。
[C29] 符号化ビデオ・データを取り出すための方法であって、前記方法は、
クライアント・デバイスが、ビデオ・データのプレゼンテーションの特性を記述するプレゼンテーション記述データを取り出すことであって、前記ビデオ・データがいくつかのビデオ・セグメントを備え、前記プレゼンテーションがいくつかのビデオ・ファイルを備え、前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応する、取り出すことと、
前記ビデオ・データの時間セクションを指定する要求をソース・デバイスにサブミットすることと、
前記要求に応答して、前記要求された時間セクションの前記いくつかのビデオ・セグメントに対応する前記ビデオ・ファイルのうちの少なくとも1つを前記ソース・デバイスから受信することと、
前記ビデオ・ファイルのうちの前記少なくとも1つを復号し、表示することと、
を備える、方法。
[C30] 前記プレゼンテーションが第1のプレゼンテーションを備え、前記第1のプレゼンテーションについての前記特性が、前記第1のプレゼンテーションについての予想される復号能力と、前記第1のプレゼンテーションについての予想されるレンダリング能力と、前記第1のプレゼンテーションについての平均ビットレートとのうちの少なくとも1つを備え、前記プレゼンテーション記述データが、前記ビデオ・データの第2のプレゼンテーションの特性をさらに記述し、前記第2のプレゼンテーションについての前記特性が、前記第2のプレゼンテーションについての予想される復号能力と、前記第2のプレゼンテーションについての予想されるレンダリング能力と、前記第2のプレゼンテーションについての平均ビットレートとのうちの少なくとも1つを備え、前記第2のプレゼンテーションがいくつかのビデオ・ファイルを備え、前記第2のプレゼンテーションの前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応し、その結果、前記第2のプレゼンテーションの前記ビデオ・ファイルが前記第1のプレゼンテーションの前記ビデオ・ファイルと時間的に整合され、前記方法が、
前記第1のプレゼンテーションおよび前記第2のプレゼンテーションの前記特性と、前記クライアント・デバイスの復号能力および前記クライアント・デバイスのレンダリング能力のうちの少なくとも1つとに基づいて、前記第1のプレゼンテーションと前記第2のプレゼンテーションのいずれかを選択すること、
をさらに備え、
前記要求をサブミットすることが、前記選択に基づいて前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのいずれかを指定することを備える、C29に記載の方法。
[C31] 前記ビデオ・ファイルのうちの前記少なくとも1つが、前記第1のプレゼンテーションからの第1のビデオ・ファイルを備え、前記要求が第1の要求を備え、前記時間セクションが第1の時間セクションを備え、前記方法は、
利用可能なネットワーク帯域幅の量を判断することと、
利用可能なネットワーク帯域幅の前記判断された量に基づいて前記第2のプレゼンテーションを選択することと、
前記ビデオ・データの第2の時間セクションを指定する第2の要求を前記ソース・デバイスにサブミットすることであって、前記第2の時間セクションが、前記ビデオ・データにおいて前記第1の時間セクションよりも後で起こる、サブミットすることと、
をさらに備える、C30に記載の方法。
[C32] 前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのうちの少なくとも1つと、前記ビデオ・ファイルのうちの前記少なくとも1つについての開始時間と、前記ビデオ・ファイルのうちの前記少なくとも1つについての終了時間とを指定するファイル名を含むように前記要求を形成することをさらに備える、C30に記載の方法。
[C33] 前記要求をサブミットする前に、前記ビデオ・ファイルの前記時間セクションの開始の指示を受信することと、
前記ビデオ・ファイルのうちの前記少なくとも1つについてのバイト範囲を取り出すためのHTTP部分GET要求として前記要求を形成することであって、前記バイト範囲が、前記時間セクションの前記開始に対応する開始バイトを有する、形成することと、
をさらに備える、C29に記載の方法。
[C34] 符号化ビデオ・データを取り出すための装置であって、前記装置は、
ネットワーク・インターフェースと、
前記ネットワーク・インターフェースを介して、ビデオ・データのプレゼンテーションの特性を記述するプレゼンテーション記述データを取り出すことであって、前記ビデオ・データがいくつかのビデオ・セグメントを備え、前記プレゼンテーションがいくつかのビデオ・ファイルを備え、前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応する、取り出すことと、前記ビデオ・データの時間セクションを指定する要求をソース・デバイスにサブミットすることと、前記要求に応答して、前記要求された時間セクションの前記いくつかのビデオ・セグメントに対応する前記ビデオ・ファイルのうちの少なくとも1つを前記ソース・デバイスから受信することと、を行うように構成された制御ユニットと、
前記ビデオ・ファイルのうちの前記少なくとも1つを復号するように構成されたビデオ・デコーダと、
前記ビデオ・ファイルのうちの前記復号された少なくとも1つを表示するように構成されたディスプレイを備えるユーザ・インターフェースと、
を備える、装置。
[C35] 前記プレゼンテーションが第1のプレゼンテーションを備え、前記第1のプレゼンテーションについての前記特性が、前記第1のプレゼンテーションについての予想される復号能力と、前記第1のプレゼンテーションについての予想されるレンダリング能力と、前記第1のプレゼンテーションについての平均ビットレートとのうちの少なくとも1つを備え、前記プレゼンテーション記述データが、前記ビデオ・データの第2のプレゼンテーションの特性をさらに記述し、前記第2のプレゼンテーションについての前記特性が、前記第2のプレゼンテーションについての予想される復号能力と、前記第2のプレゼンテーションについての予想されるレンダリング能力と、前記第2のプレゼンテーションについての平均ビットレートとのうちの少なくとも1つを備え、前記第2のプレゼンテーションがいくつかのビデオ・ファイルを備え、前記第2のプレゼンテーションの前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応し、その結果、前記第2のプレゼンテーションの前記ビデオ・ファイルが前記第1のプレゼンテーションの前記ビデオ・ファイルと時間的に整合され、前記制御ユニットが、前記第1のプレゼンテーションおよび前記第2のプレゼンテーションの前記特性と、前記装置についての復号能力および前記装置についてのレンダリング能力のうちの少なくとも1つとに基づいて、前記第1のプレゼンテーションと前記第2のプレゼンテーションのいずれかを選択するようにさらに構成され、前記要求をサブミットするために、前記制御ユニットが、前記選択に基づいて前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのいずれかを指定するように構成された、C34に記載の装置。
[C36] 前記ビデオ・ファイルのうちの前記少なくとも1つが、前記第1のプレゼンテーションからの第1のビデオ・ファイルを備え、前記要求が第1の要求を備え、前記時間セクションが第1の時間セクションを備え、前記制御ユニットは、利用可能なネットワーク帯域幅の量を判断することと、利用可能なネットワーク帯域幅の前記判断された量に基づいて前記第2のプレゼンテーションを選択することと、前記ビデオ・データの第2の時間セクションを指定する第2の要求を前記ソース・デバイスにサブミットすることであって、前記第2の時間セクションが、前記ビデオ・データにおいて前記第1の時間セクションよりも後で起こる、サブミットすることと、を行うように構成された、C35に記載の装置。
[C37] 前記制御ユニットが、前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのうちの少なくとも1つと、前記ビデオ・ファイルのうちの前記少なくとも1つについての開始時間と、前記ビデオ・ファイルのうちの前記少なくとも1つについての終了時間とを指定するファイル名を含むように前記要求を形成するようにさらに構成された、C35に記載の装置。
[C38] 前記制御ユニットは、前記要求をサブミットする前に、前記ビデオ・ファイルの前記時間セクションの開始の指示を受信することと、前記ビデオ・ファイルのうちの前記少なくとも1つについてのバイト範囲を取り出すためのHTTP部分GET要求として前記要求を形成することであって、前記バイト範囲が、前記時間セクションの前記開始に対応する開始バイトを有する、形成することとを行うように構成された、C34に記載の装置。
[C39] 符号化ビデオ・データを取り出すための装置であって、前記装置は、
ビデオ・データのプレゼンテーションの特性を記述するプレゼンテーション記述データを取り出すための手段であって、前記ビデオ・データがいくつかのビデオ・セグメントを備え、前記プレゼンテーションがいくつかのビデオ・ファイルを備え、前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応する、取り出すための手段と、
前記ビデオ・データの時間セクションを指定する要求をソース・デバイスにサブミットするための手段と、
前記要求に応答して、前記要求された時間セクションの前記いくつかのビデオ・セグメントに対応する前記ビデオ・ファイルのうちの少なくとも1つを前記ソース・デバイスから受信するための手段と、
前記ビデオ・ファイルのうちの前記少なくとも1つを復号し、表示するための手段と、
を備える、装置。
[C40] 前記プレゼンテーションが第1のプレゼンテーションを備え、前記第1のプレゼンテーションについての前記特性が、前記第1のプレゼンテーションについての予想される復号能力と、前記第1のプレゼンテーションについての予想されるレンダリング能力と、前記第1のプレゼンテーションについての平均ビットレートとのうちの少なくとも1つを備え、前記プレゼンテーション記述データが、前記ビデオ・データの第2のプレゼンテーションの特性をさらに記述し、前記第2のプレゼンテーションについての前記特性が、前記第2のプレゼンテーションについての予想される復号能力と、前記第2のプレゼンテーションについての予想されるレンダリング能力と、前記第2のプレゼンテーションについての平均ビットレートとのうちの少なくとも1つを備え、前記第2のプレゼンテーションがいくつかのビデオ・ファイルを備え、前記第2のプレゼンテーションの前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応し、その結果、前記第2のプレゼンテーションの前記ビデオ・ファイルが前記第1のプレゼンテーションの前記ビデオ・ファイルと時間的に整合され、前記装置が、
前記第1のプレゼンテーションおよび前記第2のプレゼンテーションの前記特性と、前記装置についての復号能力および前記装置についてのレンダリング能力のうちの少なくとも1つとに基づいて、前記第1のプレゼンテーションと前記第2のプレゼンテーションのいずれかを選択するための手段、
をさらに備え、
前記要求をサブミットするための前記手段が、前記選択に基づいて前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのいずれかを指定するための手段を備える、
C39に記載の装置。
[C41] 前記ビデオ・ファイルのうちの前記少なくとも1つが、前記第1のプレゼンテーションからの第1のビデオ・ファイルを備え、前記要求が第1の要求を備え、前記時間セクションが第1の時間セクションを備え、前記装置は、
利用可能なネットワーク帯域幅の量を判断するための手段と、
利用可能なネットワーク帯域幅の前記判断された量に基づいて前記第2のプレゼンテーションを選択するための手段と、
前記ビデオ・データの第2の時間セクションを指定する第2の要求を前記ソース・デバイスにサブミットするための手段であって、前記第2の時間セクションが、前記ビデオ・データにおいて前記第1の時間セクションよりも後で起こる、サブミットするための手段と、
をさらに備える、C40に記載の装置。
[C42] 前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのうちの少なくとも1つと、前記ビデオ・ファイルのうちの前記少なくとも1つについての開始時間と、前記ビデオ・ファイルのうちの前記少なくとも1つについての終了時間とを指定するファイル名を含むように前記要求を形成するための手段をさらに備える、C40に記載の装置。
[C43] 前記要求をサブミットする前に、前記ビデオ・ファイルの前記時間セクションの開始の指示を受信するための手段と、
前記ビデオ・ファイルのうちの前記少なくとも1つについてのバイト範囲を取り出すためのHTTP部分GET要求として前記要求を形成するための手段であって、前記バイト範囲が、前記時間セクションの前記開始に対応する開始バイトを有する、形成するための手段と、
をさらに備える、C39に記載の装置。
[C44] 実行されると、
ビデオ・データのプレゼンテーションの特性を記述するプレゼンテーション記述データを取り出すことであって、前記ビデオ・データがいくつかのビデオ・セグメントを備え、前記プレゼンテーションがいくつかのビデオ・ファイルを備え、前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応する、取り出すことと、
前記ビデオ・データの時間セクションを指定する要求をソース・デバイスにサブミットすることと、
前記要求に応答して、前記要求された時間セクションの前記いくつかのビデオ・セグメントに対応する前記ビデオ・ファイルのうちの少なくとも1つを前記ソース・デバイスから受信することと、
前記ビデオ・ファイルのうちの前記少なくとも1つを、符号化ビデオ・データを取り出すためのクライアント・デバイスのビデオ・デコーダに復号させることと、
前記復号されたビデオ・ファイルのうちの前記少なくとも1つを前記クライアント・デバイスのディスプレイに表示させることと、
を前記クライアント・デバイスのプロセッサに行わせる命令を備える非一時的コンピュータ可読記憶媒体。
[C45] 前記プレゼンテーションが第1のプレゼンテーションを備え、前記第1のプレゼンテーションについての前記特性が、前記第1のプレゼンテーションについての予想される復号能力と、前記第1のプレゼンテーションについての予想されるレンダリング能力と、前記第1のプレゼンテーションについての平均ビットレートとのうちの少なくとも1つを備え、前記プレゼンテーション記述データが、前記ビデオ・データの第2のプレゼンテーションの特性をさらに記述し、前記第2のプレゼンテーションについての前記特性が、前記第2のプレゼンテーションについての予想される復号能力と、前記第2のプレゼンテーションについての予想されるレンダリング能力と、前記第2のプレゼンテーションについての平均ビットレートとのうちの少なくとも1つを備え、前記第2のプレゼンテーションがいくつかのビデオ・ファイルを備え、前記第2のプレゼンテーションの前記ビデオ・ファイルの各々が前記ビデオ・セグメントの各々に対応し、その結果、前記第2のプレゼンテーションの前記ビデオ・ファイルが前記第1のプレゼンテーションの前記ビデオ・ファイルと時間的に整合され、前記非一時的コンピュータ可読記憶媒体が、
前記第1のプレゼンテーションおよび前記第2のプレゼンテーションの前記特性と、前記ビデオ・デコーダの復号能力および前記ディスプレイのレンダリング能力のうちの少なくとも1つとに基づいて、前記第1のプレゼンテーションと前記第2のプレゼンテーションのいずれかを選択すること、
を行うための命令をさらに備え、
前記要求をサブミットするための前記命令が、前記選択に基づいて前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのいずれかを指定するための命令を備える、
C44に記載の非一時的コンピュータ可読記憶媒体。
[C46] 前記ビデオ・ファイルのうちの前記少なくとも1つが、前記第1のプレゼンテーションからの第1のビデオ・ファイルを備え、前記要求が第1の要求を備え、前記時間セクションが第1の時間セクションを備え、前記非一時的コンピュータ可読記憶媒体は、
利用可能なネットワーク帯域幅の量を判断することと、
利用可能なネットワーク帯域幅の前記判断された量に基づいて前記第2のプレゼンテーションを選択することと、
前記ビデオ・データの第2の時間セクションを指定する第2の要求を前記ソース・デバイスにサブミットすることであって、前記第2の時間セクションが、前記ビデオ・データにおいて前記第1の時間セクションよりも後で起こる、サブミットすることとを行うための命令をさらに備える、C45に記載の非一時的コンピュータ可読記憶媒体。
[C47] 前記第1のプレゼンテーションまたは前記第2のプレゼンテーションのうちの少なくとも1つと、前記ビデオ・ファイルのうちの前記少なくとも1つについての開始時間と、前記ビデオ・ファイルのうちの前記少なくとも1つについての終了時間とを指定するファイル名を含むように前記要求を形成するための命令をさらに備える、C45に記載の非一時的コンピュータ可読記憶媒体。
[C48] 前記要求をサブミットする前に、前記ビデオ・ファイルの前記時間セクションの開始の指示を受信することと、
前記ビデオ・ファイルのうちの前記少なくとも1つについてのバイト範囲を取り出すためのHTTP部分GET要求として前記要求を形成することであって、前記バイト範囲が、前記時間セクションの前記開始に対応する開始バイトを有する、形成することと、
を行うための命令をさらに備える、C44に記載の非一時的コンピュータ可読記憶媒体。