(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0024】
以下、添付された図面を参考にしつつ、本発明の望ましい実施形態について詳細に説明する。
【0025】
まず、説明の便宜のために、本明細書で使われる用語を簡単に定義する。
【0026】
コンテンツの一例は、オーディオ情報、ビデオ情報、オーディオ・ビデオ情報及びデータを含む。コンテンツ・アイテム(content item)は、後述する複数個のコンポーネント(component)から構成される。
【0027】
コンポーネントは、オーディオ情報、ビデオ情報、サブタイトル情報のように、コンテンツ・アイテムの成分である。一例として、コンポーネントは、特定言語で作成されたサブタイトル・ストリームや、特定カメラアングルで獲得したビデオストリームであってもよい。コンポーネントは、コンテナによって、トラックや基本ストリーム(ES:elementary stream)と命名可能である。
【0028】
コンテンツ・リソースは、コンテンツ・アイテムに係わる適切なストリーミングを可能にするために、複数個のリプリゼンテーション(representation)から提供されるコンテンツ・アイテムである(例えば、多様な品質、ビットレート、角度)。サービス検索過程は、コンテンツ・リソースと言うことができる。コンテンツ・リソースは、一つ以上の連続的なタイムのペイロードから構成される。
【0029】
ピリオドは、コンテンツ・リソースの時間的なセクションである。
【0030】
リプリゼンテーションは、ピリオド内のコンテンツ・リソースのバージョン(あらゆるコンポーネントまたは一部コンポーネント)である。リプリゼンテーションは、コンポーネントのサブセットが異なるか、あるいはコンポーネントのエンコーディング・パラメータ(例えば、ビットレート)が異なる。本明細書では、リプリゼンテーションをメディアデータとするが、一つ以上のコンポーネントを含むデータを指すいかなる用語にも使われる。
【0031】
セグメント(部分)は、特定システムレイヤ形式(TSまたはMP4)で、唯一のURL(uniform resource locator)を介して呼ばれるリプリゼンテーションの時間的なセクションを意味する。
【0032】
以下、図面を参照しつつ、本発明の実施形態について詳細に説明する。
【0033】
図1は、本発明の一実施形態によるストリーミング・システムを図示している。
【0034】
図1を参照すれば、本発明の一実施形態によるストリーミング・システム100は、エンコーディング装置110、サーバ120及びクライアント130を有する。
【0035】
エンコーディング装置110は、入力されたコンテンツを複数の異なる品質にエンコーディングし、1つのコンテンツに係わる複数のメディアデータを生成する。サーバ120が、クライアント130にメディアデータをストリーミングするとき、ストリーミング環境は変更される。例えば、ストリーミングのためのネットワーク140の帯域幅が変更され得るし、メディアデータを伝送するために、サーバ120が使用可能なハードウェア資源、またはメディアデータを受信するために、クライアント130が使用可能なハードウェア資源が変更され得る。
【0036】
従って、エンコーディング装置110は、流動的なストリーミング環境による適切なストリーミングのために、1つのコンテンツを複数の異なる品質にエンコーディングする。ビット率、サンプリング周波数(sampling frequency)または解像度のような因子を調節することによって、1つのコンテンツを複数の異なる品質にエンコーディングすることができる。例えば、1つの動映像コンテンツを互いに異なる解像度でエンコーディングし、500Kbps、1,000Kbps及び2,000Kbpsの複数のメディアデータを生成することができる。
【0037】
異なる品質にエンコーディングされた複数のメディアデータは、サーバ120に伝送され、このとき、コンテンツに係わる情報及び複数のメディアデータそれぞれに係わる情報も、共にサーバ120に伝送される。コンテンツに係わる情報は、コンテンツのメタデータであって、コンテンツの題目(title)、シノプシス(synopsis)、コンテンツ識別子(content ID)、コンテンツURLのような情報を含んでもよい。複数のメディアデータに係わる情報は、それぞれのメディアデータの品質、類型及び識別子などを含むことができるが、これについては、
図4A、
図4B及び
図4Cを参照して詳細に説明する。
【0038】
クライアント130は、コンテンツに係わる情報及び複数のメディアデータに係わる情報のうち少なくとも一つを受信し、これに基づいて、サーバ120に複数のメディアデータのうち少なくとも1つのメディアデータを要請する。クライアント130は、ストリーミング環境を推定(estimation)し、推定されたストリーミング環境に基づいて、複数のメディアデータのうち少なくとも1つのメディアデータを選択する。推定されたストリーミング環境で、適切なQoS(quality of service)を維持することができる少なくとも1つのメディアデータを選択することができる。その後、クライアント130は、選択された少なくとも1つのメディアデータの伝送を要請するHTTP(hypertext transfer protocol)要請(request)をサーバ120に伝送することができる。
【0039】
高品質のメディアデータを受信しているが、ストリーミング環境が劣化して続けてメディアデータを再生することができない場合には、複数のメディアデータのうち、低い品質のメディアデータを要請し、ストリーミング環境が改善されて高い品質のメディアデータを受信しても続けてメディアデータを再生することができる場合には、複数のメディアデータのうち、高い品質のメディアデータを要請することができる。
【0040】
所定のメディアデータを受信している最中に、他のメディアデータの伝送をサーバ120に要請することもできる。例えば、ストリーミング環境が劣化した状態で、低品質の第1メディアデータを要請して受信していたクライアント130は、ストリーミング環境が改善されることによって、さらに高品質の第2メディアデータの伝送をサーバ120に要請することができる。従来技術によるストリーミング方法によれば、サーバ120とクライアント130とが、ストリーミング・チャネルを最初に設定するとき、品質を一度設定すれば、続けて同じ品質でメディアデータを送受信せねばならなかった。しかし、本願発明によれば、クライアント130が低品質の第1メディアデータを受信していても、同じコンテンツに係わるさらに高品質の第2メディアデータをさらに要請することができ、ストリーミング環境による適切なストリーミングが可能になる。
【0041】
ネットワーク140の帯域幅、及びサーバ120またはクライアント130の使用可能なハードウェア資源に基づいて、ストリーミング環境を推定する多様な方法が、クライアント130がストリーミング環境を推定するのに利用される。例えば、クライアント130は、受信されるメディアデータのタイムスタンプ及びBER(bit error rate)に基づいて、ストリーミング環境を推定することができる。受信されるメディアデータのタイムスタンプを確認し、メディアデータが再生速度より遅い速度で受信されていれば、ストリーミング環境が劣化していると判断することができる。また、受信されるメディアデータのBERが高くなっても、ストリーミング環境が劣化していると判断することができる。
【0042】
クライアント130が、ストリーミング環境によって複数のメディアデータのうち、少なくとも1つのメディアデータの伝送を要請すれば、サーバ120は、要請されたメディアデータをクライアント130に伝送する。HTTP要請に対するHTTP応答として、要請されたメディアデータをクライアント130に伝送することができる。
【0043】
複数のメディアデータそれぞれは、コンテンツを異なる品質にエンコーディングし、分割して生成された複数の部分(segment)のうち、少なくとも一つを含んでもよい。言い換えれば、エンコーディング装置110のエンコーディング結果として生成された複数のメディアデータそれぞれは、時間に基づいて分割された少なくとも1つの部分をそれぞれ含んでもよい。サーバ120は、コンテンツを1つのストリームにエンコーディングして連続して伝送するのではなく、複数の部分に分割してそれぞれ伝送する。コンテンツを10秒または20秒のように、所定の時間単位でコンテンツを分割し、複数の部分を生成することができる。分割の基礎になる時間は、GOP(group of picture)に基づいて設定される。一つまたは二つ以上のGOPのピクチャに対応するメディアデータを、1つの部分として設定することができる。
【0044】
例えば、2種の品質にコンテンツがストリーミングされる場合、第1メディアデータは、コンテンツを第1品質にエンコーディングし、時間に基づいて分割して生成された少なくとも1つの部分を含み、第2メディアデータは、コンテンツを第2品質にエンコーディングし、時間に基づいて分割して生成された少なくとも1つの部分を含んでもよい。
【0045】
複数のメディアデータを時間に基づいてそれぞれ分割することによって、前述の適切なストリーミングが可能になる。例えば、ストリーミングが始まれば、サーバ120は、低品質の第1メディアデータの0秒から20秒に該当する部分を伝送する。その後、20秒後に、ストリーミング環境が改善されたと判断され、クライアント130がさらに高品質のメディアデータを要請すれば、サーバ120は、さらに高品質の第2メディアデータの、20秒から40秒に該当する部分を伝送することができる。メディアデータが、時間に基づいて複数の部分に分割されているために、ストリーミング最中にも、ストリーミング環境によって異なるメディアデータの部分を伝送することができる。
【0046】
図2Aは、本発明の一実施形態によるストリーミング方法について説明するためのフローチャートである。
【0047】
図2Aを参照すれば、ステップ210でクライアント130は、所定のコンテンツに係わる情報の伝送をサーバ120に要請する。クライアント130のユーザが、クライアント130の画面に表示されたユーザ・インターフェースで、所定のコンテンツを選択すれば、選択されたコンテンツに係わる情報の伝送をサーバ120に要請する。クライアント130は、コンテンツに係わる情報の伝送を要請するHTTP要請を、サーバ120に伝送することができる。
【0048】
クライアント130からの要請を受信したサーバ120は、クライアント130にコンテンツに係わる情報を伝送する。HTTP要請に対するHTTP応答として、コンテンツに係わる情報をクライアント130に伝送することができる。コンテンツに係わる情報は、OIPF(open IPTV forum)標準によるCAD(content access descriptor)であってもよい。
図3を参照して詳細に説明する。
【0049】
図3は、本発明の一実施形態によるコンテンツに係わる情報を含むファイルのスキーマ(schema)を図示している。コンテンツに係わる情報を含むファイルは、CADであって、XML(extensible markup language)ファイルであってもよい。以下、本発明の詳細な説明では、タグ(tag)及び属性(attribute)を区分して説明するが、本発明の詳細な説明で、タグによって定義される項目を、タグではない属性によって定義する、又は本発明の詳細な説明で、属性によって定義される項目を、属性ではないタグによって定義することができることは、本発明が属する技術分野で当業者であるならば、容易に理解できる。
【0050】
図3を参照すれば、コンテンツ(content)に係わる情報は、「Title」、「Synopsis」、「OriginSite」、「ContentURL」のタグなどを含んでもよい。
【0051】
従来技術によるメディアデータのストリーミングは、1つのコンテンツを所定の品質にエンコーディングし、1つのメディアデータを生成するので、従来技術によるコンテンツに係わる情報(特に、OIPFによるCAD)は、コンテンツを異なる品質にエンコーディングすることで生成された複数のメディアデータに係わる情報を含まない。
【0052】
しかし、本発明の一実施形態によるコンテンツに係わる情報は、1つのコンテンツを異なる品質にエンコーディングすることで生成された複数のメディアデータに係わる情報を含むが、
図3に図示された実施形態の「Tracks」、「RefData」及び「Fragments」のタグがこれに該当する。
【0053】
図4Aは、本発明の一実施形態による複数のメディアデータを定義するための情報を図示している。
【0054】
図4Aを参照すれば、「Tracks」タグは、コンテンツを異なる品質にエンコーディングすることで生成された複数のメディアデータを区分するための情報である。「Tracks」タグは、複数のメディアデータそれぞれに割り当てられた「ID」属性(attribute)、「Type」属性及び「BitRate」属性を含む。
【0055】
「ID」属性は、メディアデータに対して順に付与される識別子を定義し、「Type」属性は、メディアデータのオーディオデータ、ビデオデータ、ビデオ/オーディオデータ、字幕データのうち、どのデータに該当するかを定義する。「Type」属性が「Packed」であるならば、メディアデータがビデオ/オーディオデータであることを示し、「Type」属性が「Video」であるならば、メディアデータがビデオデータであることを示す。「BitRate」属性は、ビデオデータのエンコーディングに利用されたビット率を定義する。
【0056】
図4Bは、本発明の一実施形態によるメディアデータのヘッダに係わる情報を図示している。
【0057】
図4Bを参照すれば、「RefData」タグは、「Type」属性及び「ID」属性を含む。「Type」属性は、ヘッダがいかなるメディア・フォーマットのヘッダであるかを定義する。例えば、「Type」属性が「HEAD−TS」であるならば、ヘッダが、伝送ストリーム(transport stream)フォーマットのヘッダであることを示す。「ID」属性は、ヘッダが複数のメディアデータのうち、どのメディアデータのヘッダであるかを定義する。「ID」属性が「1」であるならば、メディアデータ識別子が、「1」であるメディアデータに係わるヘッダであることを示す。また、「RefData」タグは、ヘッダを指示(pointing)する情報を含むが、「URL」タグは、ヘッダの位置、すなわち、URLを定義する。
【0058】
「RefData」タグは、選択的な要素である。ヘッダがメディアデータと分離され、別途のファイルとして存在する場合にのみ、コンテンツに係わる情報に「RefData」タグが含まれ、メディアデータと結合されて存在する場合には、コンテンツに係わる情報に、「RefData」タグが含まれない。
【0059】
図4Cは、本発明の一実施形態による複数のメディアデータそれぞれに含まれた少なくとも1つの部分に係わる情報を含む。
【0060】
図4Cを参照すれば、「Fragments」タグの下位タグである「Fragment」タグに、複数のメディアデータそれぞれに含まれた少なくとも1つの部分に係わる情報が含まれる。
【0061】
「Fragments」タグは、「NextFragmentsXMLURL」属性を含む。ライブストリーミングのように、1つのコンテンツ・ストリーミングが完了すれば、次のコンテンツが続いてストリーミングされる場合には、次にストリーミングされるコンテンツに係わる情報をクライアント130があらかじめ知っていてこそ、続けてコンテンツをストリーミングすることができる。従って、「Fragments」タグは、次にストリーミングされるコンテンツに係わる情報を「NextFragmentsXMLURL」属性と定義する。次にストリーミングされるコンテンツに係わる複数のメディアデータのURLが「NextFragmentsXMLURL」属性と定義される。
【0062】
「Fragment」タグは、現在ストリーミングされるコンテンツの少なくとも1つの部分に係わる情報を含む。
図4Cに図示された実施形態を例に挙げて説明すれば、第1メディアデータとしてコンテンツを第1品質にエンコーディングすることで生成された最初の部分である「slice1−1.as」のURL情報が、「URL」タグによって定義され、対応するヘッダの識別子が「RefPointer」タグによって定義される。また、最初の部分の開始時間が「StartTime」属性によって定義され、それぞれの部分の持続時間が「Duration」属性によって定義される。第1メディアデータの品質は、「BitRate」属性によって定義される。
【0063】
図4Cに図示された実施形態では「Fragments」タグは、それぞれのメディアデータが1つの部分だけを含む場合を図示した。しかし、本発明が属する技術分野で当業者であるならば、
図1と関連して説明したように、それぞれのメディアデータが複数の部分に分割される場合、1つの「Fragments」タグが二以上の部分に係わる情報を含んでもよいということが容易に分かるであろう。
【0064】
再び
図2Aを参照すれば、ステップ220でクライアント130は、複数のメディアデータのうち少なくとも1つのメディアデータの伝送をサーバ120に要請する。複数のメディアデータは、1つのコンテンツを異なる品質にエンコーディングすることで生成された複数のメディアデータである。クライアント130は、複数のメディアデータのうちから、ストリーミング環境に適した品質に符号化された少なくとも1つのメディアデータを選択し、サーバ120に要請する。クライアント130は、コンテンツに係わる情報に含まれた複数のメディアデータに係わる情報に基づいて、HTTP要請をサーバ120に伝送することができる。
【0065】
コンテンツに係わる情報は、
図4Cと関連して説明したように、「Fragments」タグを含んでいる。従って、クライアント130は、「Fragments」タグに含まれたURL情報に基づいて、選択されたメディアデータの伝送をサーバ120に要請する。
【0066】
クライアント120の要請によって、サーバ120は、メディアデータを伝送する。要請されたメディアデータの少なくとも1つの部分をクライアント120に伝送することができる。HTTP要請に対するHTTP応答として、要請されたメディアデータをクライアント120に伝送することができる。
【0067】
図2Bは、本発明の他の実施形態によるストリーミング方法について説明するためのフローチャートである。
図2Bは、ヘッダがメディアデータと分離され、別途のファイルとして存在する場合のストリーミング方法を図示している。
【0068】
図2Bを参照すれば、ステップ212でクライアント130は、所定のコンテンツに係わる情報の伝送をサーバ120に要請し、サーバ120からコンテンツに係わる情報を伝送する。
図2Aのステップ210に図示されている。
図4Bと関連して説明した「RefData」タグを含むコンテンツに係わる情報を受信する。
【0069】
ステップ222でクライアント130は、ステップ210で受信されたコンテンツに係わる情報に基づいて、複数のメディアデータのうち選択されたメディアデータのヘッダを要請する。ステップ212で受信されたコンテンツに係わる情報に基づいて、複数のメディアデータのうちストリーミング環境に適した少なくとも1つのメディアデータを選択し、選択したメディアデータのヘッダを要請する。ステップ212で受信されたコンテンツに係わる情報に含まれた「RefData」タグを参照し、選択されたメディアデータのヘッダを要請する。
【0070】
サーバ120は、要請されたメディアデータのヘッダをクライアント130に伝送する。ヘッダファイルをクライアント130に伝送することができ、ヘッダファイルは、XMLファイルであってもよい。
【0071】
ステップ232でクライアント130は、ステップ212で受信されたコンテンツに係わる情報及びステップ222で受信されたヘッダに基づいて、選択されたメディアデータの伝送をサーバ120に要請する。メディアデータを時間に基づいて分割し、生成された少なくとも1つの部分の伝送をサーバ130に要請し、サーバ120は、要請された少なくとも1つの部分をクライアント130に伝送する。
【0072】
図5Aは、本発明のさらに他の実施形態によるストリーミング方法について説明するためのフローチャートである。
【0073】
図5Aを参照すれば、ステップ510でクライアント130は、所定のコンテンツに係わる情報の伝送をサーバ120に要請し、サーバ120からコンテンツに係わる情報を伝送する。所定のコンテンツに係わる情報の伝送を要請するHTTP要請をサーバ120に伝送し、これに対するHTTP応答として、コンテンツに係わる情報を受信する。コンテンツに係わる情報を含むXMLファイルを受信することができる。ステップ510でクライアント130が受信するコンテンツに係わる情報は、
図2のステップ210でクライアント130が受信するコンテンツに係わる情報と異なるが、
図6及び
図7を参照して詳細に説明する。
【0074】
図6は、本発明の他の実施形態によるコンテンツに係わる情報を含むファイルのスキーマを図示している。
【0075】
図6を参照すれば、本発明の一実施形態によるコンテンツに係わる情報は、
図3と同一に、「Title」、「Synopsis」、「OriginSite」、「ContentURL」のタグなどを含んでいる。しかし、
図3に図示された実施形態では、コンテンツに係わる情報が「Tracks」、「RefData」及び「Fragments」のタグを含むことによって、複数のメディアデータに係わる情報も共に含むのに対し、
図6に図示された実施形態では、コンテンツに係わる情報が、複数のメディアデータに係わる情報を含むのではなく、複数のメディアデータに係わる情報を含むファイル(以下、「メディア表現記述(media presentation description)」)のURLのみ定義するところが異なる。「ContentURL」タグによって、メディア表現記述のURLが定義される。
【0076】
図6に図示されているように、従来技術による多様なコンテンツに係わる情報ファイルのスキーマを大きく変更せずに、メディア表現記述のURLだけコンテンツに係わる情報ファイルに挿入することによって、多様なメディアデータ・フォーマットとの互換性を維持しつつ、ストリーミング環境に適切なストリーミングが可能になる。
【0077】
図6に図示されたところによれば、コンテンツに係わる情報は、複数のメディアデータに係わる情報は含まず、ストリーミング方法と関連した情報だけ含んでもよい。言い換えれば、「ContentURL」タグは、ストリーミングに利用されるメディアデータのフォーマットを定義する「MediaFormat」属性、メディアデータの種類を定義する「MIME Type」属性などを含んでもよい。
【0078】
特に、「ContentURL」タグは、コンテンツのストリーミングがいかなるサービスと関連しているかを定義する「Transfer Type」属性を含んでもよい。「Transfer Type」属性は、コンテンツのストリーミングが、CoD(content on delivery)サービス、生中継(live)、適応ストリーミング生中継(adaptive streaming live)及び適応ストリーミングCoD(adaptive streaming CoD)のうち、いかなるサービスと関連しているかを定義することができる。
【0079】
図7は、本発明のさらに他の実施形態によるコンテンツに係わる情報を図示している。
図7は、OIPF標準によるCADであってもよい。
【0080】
図7を参照すれば、
図6に図示されたスキーマによって生成されたコンテンツに係わる情報は、「ContentURL」タグに、メディア表現記述のURLが定義される。「http://asexample.com/vod/movies/18888/Meta/MainMeta.xml」がメディア表現記述のURLである。また、
図6と関連して説明したように、「MediaFormat」属性、「MIME Type」属性及び「Transfer Type」属性などが「ContentURL」タグに定義される。
【0081】
再び
図5Aを参照すれば、ステップ520でクライアント130は、ステップ510で受信されたコンテンツに係わる情報に基づいて、複数のメディアデータに係わる情報をサーバ120に要請する。メディア表現記述を、HTTP要請を介してサーバ120に要請し、HTTP応答として、メディア表現記述を受信することができる。
【0082】
ステップ510でクライアント130がサーバ120から受信したコンテンツに係わる情報は、
図6及び
図7と関連して説明したように、メディア表現記述のURL情報を含んでもよいが、クライアント130は、コンテンツに係わる情報の「ContentURL」タグを参照し、メディア表現記述をサーバ120に要請して受信する。メディア表現記述について、
図8A、
図8B、
図9Aないし
図9Gを参照しつつ詳細に説明する。
【0083】
図8A及び
図8Bは、本発明の一実施形態によるメディア表現記述のスキーマを図示している。メディア表現記述は、OIPF標準によるメディア表現記述であってもよい。
【0084】
図8Aを参照すれば、本発明の一実施形態によるメディア表現記述は、複数のメディアデータのURLに対するテンプレート(template)タグ、ヘッダの位置を定義するためのタグ、ストリーミングがいかなるサービスと関連しているかを定義するためのタグ、メディアデータコンテナ(container)・フォーマットを定義するためのタグ、及び複数のメディアデータを定義するためのタグを含む。
【0085】
「urlTemplate」タグは、複数のメディアデータに係わるURL情報の共通部分を定義する。例えば、「http://example.com/vod/movie/18888/Track/{TrackID}/Segments/{SegmentID}」がURLテンプレートであるならば、「TrackID」及び「SegmentID」に複数のメディアデータそれぞれの識別子、及びそれぞれのメディアデータに含まれた少なくとも1つの部分の識別子を代入することにより、メディアデータに係わるURLを定義することができる。
【0086】
「headerUrl」タグは、
図4Bと関連して説明した「RefData」タグに対応する。言い換えれば、複数のメディアデータのヘッダURLを定義する。
【0087】
「isLive」タグは、ストリーミングがいかなるサービスと関連しているかを定義するタグである。例えば、「isLive」タグが「Live」と定義されれば、ストリーミングが生放送サービスと関連していることを示し、「isLive」タグが「CoD」と定義されれば、ストリーミングがCoDサービスと関連していることを示す。
【0088】
「contentType」タグは、ストリーミングに利用されるメディアデータのコンテナ・フォーマットを定義する。例えば、メディアデータのコンテナ・フォーマットがMP4フォーマットであるか、あるいはMPEG 2−TSフォーマットであるかを示すための情報であってもよい。
【0089】
「Stream」タグは、複数のメディアデータそれぞれについて生成され、複数のメディアデータそれぞれを定義する。1つのコンテンツを異なる品質にエンコーディングすることで生成された複数のメディアデータそれぞれを定義するために、「streamName」属性、「Type」属性、「bitrate」属性、「startTime」属性、「firstIntervalNum」属性、「duration」属性、及び「intervalCount」属性を含む。
【0090】
「streamName」属性は、メディアデータの名称を定義する。メディアデータの識別子であってもよい。「Type」属性は、メディアデータの類型を定義する。メディアデータがオーディオデータ、ビデオデータ及びオーディオ/ビデオデータのうち、いかなるメディアのデータであるかを定義する。メディアデータが変速再生(トリックプレイ)のために、Iフレームに係わるデータだけを含む場合には、これに係わる情報を「Type」属性と定義することができる。
【0091】
「BitRate」属性は、メディアデータのビット率を定義し、「startTime」属性は、メディアデータの開始時間を特定するタイムスタンプを定義し、「firstIntervalNum」属性は、最初に始まる部分の番号を定義する。
【0092】
「duration」属性は、メディアデータに含まれた部分の持続時間を定義し、「intervalCount」属性は、メディアデータに含まれた少なくとも1つの部分の全体個数を定義する。
【0093】
「Segment」タグは、「Stream」タグの下位タグであり、メディアデータが、前述のように、コンテンツを所定の品質にエンコーディングし、時間に基づいて分割して生成された少なくとも1つの部分であるならば、このような少なくとも1つの部分それぞれを定義する。
【0094】
「IntNum」属性は、部分の番号を定義し、「StartTime」は、当該部分の開始時間を定義する。「Duration」は、当該部分の持続時間を定義し、「url」は、当該部分のURL情報を定義する。
【0095】
「Segment」タグは、選択的なタグであり、メディアデータに含まれた少なくとも1つの部分に係わる情報が、「Stream」タグの他の属性から類推される場合には、メディア表現記述に含まれない。言い換えれば、「Stream」タグに定義された「startTime」、「firstIntervalNum」、「duration」及び「intervalCount」の属性によって「Stream」タグから類推される場合には、メディア表現記述に含まれない。また、「urlTemplate」タグに所定のテンプレートが定義されており、このように定義されたテンプレートに、複数のメディアデータそれぞれの識別子、及びそれぞれのメディアデータに含まれた少なくとも1つの部分の識別子を代入することにより、部分のURL情報を類推することができれば、「Segment」タグの「url」属性は不要となる。
【0096】
図8Bを参照すれば、本発明の他の実施形態によるメディア表現記述は、「nextManifestURL」タグをさらに含んでもよい。前述のように、ライブストリーミングまたは広告の挿入のように、1つのコンテンツ・ストリーミングが完了すれば、次のコンテンツが続いてストリーミングされる場合には、次にストリーミングされるコンテンツに係わる情報をクライアント130があらかじめ知っていてこそ、続けてコンテンツをストリーミングすることができるので、現在ストリーミング中であるコンテンツ次にストリーミングされるコンテンツのメディア表現記述のURL情報が「nextManifestURL」タグによって定義される。
【0097】
図9Aないし
図9Hは、本願発明の一実施形態によるメディア表現記述を図示している。
【0098】
図9Aを参照すれば、本発明の一実施形態によるメディア表現記述は、「URLTemplate」タグ、「RefDataURL」タグ及び複数のメディアデータそれぞれを定義する複数のタグを含む。
【0099】
「URLTemplate」タグ及び「RefDataURL」タグは、それぞれ
図8A及び
図8Bの「urlTemplate」タグ及び「RefDataURL」タグに対応する。
【0100】
「ID」属性、「Type」属性、「BitRate」属性、「StartTime」属性、「SegmentDuration」属性、「SegmentStartID」属性及び「SegmentCount」属性は、それぞれ
図8A及び
図8Bの「streamName」属性、「Type」属性、「bitrate」属性、「startTime」属性、「Stream」タグの「duration」属性、「Stream」タグの「firstIntervalNum」属性及び「intervalCount」属性に対応する。
【0101】
図9Aに図示されたメディア表現記述は、コンテンツを異なる品質にエンコーディングすることで生成された3種のビデオデータ、1つのオーディオデータ及び変速再生のために、Iフレームだけエンコーディングすることで生成されたメディアデータに係わる情報を含む。
【0102】
図9Bを参照すれば、本発明の一実施形態によるメディア表現記述は、「NextAdaptiveControlURL」タグをさらに含む。「NextAdaptiveControlURL」タグは、
図8Bの「nextManifestURL」タグに対応する。従って、現在再生中であるコンテンツ後に続いて再生するコンテンツのメディア表現記述のURLが、「NextAdaptiveControlURL」タグによって定義される。
【0103】
図9Cは、現在再生中であるコンテンツに続いて再生するコンテンツのメディア表現記述のURLが、
図9Bの「NextAdaptiveControlURL」タグによって定義されたとき、次に続いて再生するコンテンツのメディア表現記述を図示する。
図9Bのメディア表現記述と比較すれば、
図9Cは、次に続いて再生されるコンテンツのメディア表現記述であるから、「StartTime」属性の現在再生中であるコンテンツのメディア表現記述と異なる。
【0104】
図9D及び
図9Eは、ユーザの高画質ビデオ再生を選択的に制御するためのメディア表現記述を図示している。1つのコンテンツを5種の異なる品質にエンコーディングし、複数のメディアデータが生成され、
図9Dは、その場合のメディア表現記述を図示する。しかし、
図9Eに図示されたメディア表現記述で、高品質にエンコーディングされたビデオに係わる情報を含んでいるタグ、すなわち、「ID」属性が「5」であるメディアデータの「StartTime」属性及び「SegmentCount」属性が、
図9Dのメディア表現記述と異なる。
【0105】
サーバ120は、クライアント130のユーザ等級(rating)によって、
図9Dのメディア表現記述、または
図9Eのメディア表現記述を選択的に伝送することができる。クライアント130のユーザ等級が高い場合(例えば、クライアント130が有料ユーザである場合)には、
図9Dのメディア表現記述を伝送することによって、高品質のビデオも自由に再生可能であり、クライアント130のユーザ等級が低い場合(例えば、クライアント130が無料ユーザである場合)には、
図9Eのメディア表現記述を伝送することによって、高品質のビデオは、「StartTime」属性によって定義された時間から、「SegmentCount」属性によって定義された部分だけ再生可能とする。
【0106】
図9Fは、コンテンツに広告が挿入される場合のメディア表現記述を図示している。
図9Fを参照すれば、メディア表現記述は、「StartTime」属性が異なる広告コンテンツ及びメインコンテンツに係わる情報を含んでもよい。メディア表現記述は、「00:00:00」から「00:02:00」まで再生されるビット率が「500000」である広告コンテンツに係わる情報、及び「00:02:00」から再生されるビット率が、「1000000」、「2000000」、「3000000」及び「4000000」のメインコンテンツに係わる情報を含んでもよい。サーバ120が広告コンテンツを1つのビット率によってエンコーディングしてクライアント130に提供し、広告コンテンツと「StartTime」属性を異にするメインコンテンツは、4種の異なるビット率によってエンコーディングしてクライアント130に提供する場合、
図9Fのメディア表現記述が、サーバ120からクライアント130に伝送される。
【0107】
図9Gは、本発明の一実施形態による広告コンテンツに係わる情報を含むメディア表現記述を図示している。メインコンテンツを提供するサーバと、広告コンテンツを提供するサーバとが異なってもよい。言い換えれば、クライアント130が、メインコンテンツは、
図5Aのサーバ120から提供され、広告コンテンツは、
図5Aのサーバ120ではない他のサーバから受信する場合、広告コンテンツに係わる情報を含むメディア表現記述は、広告コンテンツのURL情報を含んでもよい。
図9Gに図示されているように、1つの品質に符号化された広告コンテンツのURL情報が、メディア表現記述に含まれてもよい。
【0108】
図9Hは、本発明の一実施形態による言語情報及び字幕情報を含むメディア表現記述を図示している。
図9Hを参照すれば、オーディオデータは、多重言語に係わる情報を含んでもよい。「ID」属性が「4」及び「5」である多重言語のオーディオデータに係わる情報が、メディア表現記述に含まれ、「ID」属性が「6」及び「7」である多重言語の字幕に係わる情報がメディア表現記述に含まれてもよい。
【0109】
オーディオデータは、もちろん字幕も、時間によって複数の部分に分割されるので、ストリーミング最中に、オーディオデータ及び字幕を異なる言語のオーディオデータ及び字幕に変更することができる。
【0110】
再び
図5Aを参照すれば、ステップ530でクライアント130は、複数のメディアデータのうち少なくとも1つのメディアデータの伝送をサーバ120に要請する。クライアント130は、複数のメディアデータに係わる情報を参照し、ストリーミング環境に適した品質にエンコーディングされた少なくとも1つのメディアデータを選択してサーバ120に要請する。クライアント130は、所定のメディアデータの伝送を要請するHTTP要請をサーバ120に伝送することができる。クライアント120の要請によってサーバ120は、メディアデータを伝送する。コンテンツを所定の品質にエンコーディングし、時間に基づいて分割して生成された少なくとも1つの部分を、クライアント120に伝送することができる。HTTP要請に対するHTTP応答として、要請されたメディアデータをクライアント120に伝送することができる。
【0111】
図5Bは、本発明のさらに他の実施形態によるストリーミング方法について説明するためのフローチャートである。
【0112】
図5Bを参照すれば、ステップ512でクライアント130は、所定のコンテンツに係わる情報の伝送をサーバ120に要請し、サーバ120からコンテンツに係わる情報が伝送される。所定のコンテンツに係わる情報の伝送を要請するHTTP要請をサーバ120に伝送し、これに対するHTTP応答として、コンテンツに係わる情報を受信する。コンテンツに係わる情報を含むXMLファイルを受信することができる。
【0113】
ステップ522でクライアント130は、ステップ512で受信されたコンテンツに係わる情報に基づいて、複数のメディアデータに係わる情報をサーバ120に要請する。メディア表現記述を、HTTP要請を介してサーバ120に要請し、HTTP応答として、メディア表現記述を受信することができる。
【0114】
ステップ532でクライアント130は、ステップ522で受信した複数のメディアデータに係わる情報に基づいて、選択されたメディアデータのヘッダを要請する。ステップ522で受信した情報に基づいて、複数のメディアデータのうち、ストリーミング環境に適した少なくとも1つのメディアデータを選択し、選択したメディアデータのヘッダを要請する。ステップ522で受信した複数のメディアデータに係わる情報を参照し、選択したメディアデータのヘッダを要請する。サーバ120は、要請に対する応答として、選択されたメディアデータのヘッダファイルをクライアント130に伝送する。
【0115】
ステップ542でクライアント130は、ステップ522で受信した複数のメディアデータに係わる情報、及びステップ532で受信したヘッダに基づいて、選択したメディアデータの伝送をサーバ120に要請する。コンテンツを所定の比率でエンコーディング、及び時間分割して生成された少なくとも1つの部分の伝送をサーバ130に要請し、サーバ120は、要請された少なくとも1つの部分をクライアント130に伝送する。
【0116】
図10Aないし
図10Cは、本発明の一実施形態による複数のメディアデータを図示している。
図10Aないし
図10Cは、
図5A及び
図5Bによるストリーミング方法を遂行するために、サーバ120が保有する複数のメディアデータを図示している。
【0117】
図10Aを参照すれば、ストリーミング環境に適切なストリーミングのために、サーバ120は、1つのコンテンツを複数の異なる品質にエンコーディングすることで生成された複数のメディアデータ1010ないし1030を保有することができる。「Track1」、「Track2」、…、「TrackN」が複数のメディアデータである。また、それぞれのメディアデータは、それぞれのメディアデータを時間に基づいて分割して生成された少なくとも1つの部分を含んでもよい。「Slice1−1.as」、「Slice1−2.as」、「Slice1−3.as」、「Slice2−1.as」、「Slice2−2.as」、「Slice2−3.as」、「SliceN−1.as」、「SliceN−2.as」、「SliceN−3.as」などが少なくとも1つの部分である。
【0118】
またサーバ120は、クライアント130が複数のメディアデータにアクセスするために必要な情報1040を保有することができる。コンテンツに係わる情報として、「CadMeta.xml」ファイル、複数のメディアデータに係わる情報として、「MainMeta.xml」ファイルを保有することができ、複数のメディアデータのヘッダとして、「Head1.ref」、「Head2.ref」のファイルなどを保有することができる。「Head1.ref」は、「Track1」のヘッダファイルであって、「Head2.ref」は、「Track2」のヘッダファイルである。
【0119】
「CadMeta.xml」は、OIPF標準によるCADファイルであって、「MainMeta.xml」は、前述のメディア表現記述であってもよい。また、「Head1.ref」、「Head2.ref」のファイルは、選択的な要素であり、ヘッダが複数のメディアデータ1010ないし1030に含まれている場合には、存在しないこともある。
【0120】
図10Bを参照すれば、クライアント130が複数のメディアデータにアクセスするために必要な情報1042は、「NextMeta.xml」をさらに含んでもよい。前述のように、「NextMeta.xml」は、現在再生中であるコンテンツに続いて再生される次のコンテンツのメディア表現記述であってもよい。前述のように、現在再生中のメディア表現記述、すなわち、「MainMeta.xml」ファイルは、続いて再生するコンテンツのメディア表現記述のURL情報を含んでいるが、これに基づいてクライアント130は、「NextMeta.xml」ファイルにアクセスすることができる。
【0121】
図10Cを参照すれば、複数のメディアデータのヘッダは、1つのファイル1050として存在しうる。ヘッダファイルが複数のメディアデータそれぞれについて、複数で存在するのではなく、1つのヘッダファイル1050として、複数のメディアデータにアクセスするために必要な情報1044に含まれてもよい。
【0122】
例えば、複数のメディアデータそれぞれが、MPEG−2によるエレメンタリーストリーム(elementary stream)に対応するとき、複数のメディアデータのヘッダは、PAT(program association table)及びPMT(program map table)のうち、少なくとも一つを含む1つのヘッダファイル1050であってもよい。PAT及びPMTのうち、少なくとも一つを複数のメディアデータ1010ないし1030と分離し、1つのヘッダファイル1050を作り、メディア表現記述は、このヘッダファイル1050を指示(pointing)する情報を含んでもよい。ヘッダファイル1050の指示情報は、ヘッダファイル1050のURL情報でもあり、MPEG−2伝送ストリーム(transport stream)で、ヘッダファイル1050を含んでいるパケットを特定するための情報でもある。
【0123】
前述のステップ532でクライアント130は、メディア表現記述を参照し、ヘッダファイル1050に指示情報を獲得し、指示情報に基づいて、ヘッダファイル1050を要請することができる。指示情報にヘッダファイル1050を要請して受信した後、ヘッダファイル1050に含まれているPAT及びPMTのうち少なくとも一つに基づいて、複数のメディアデータのうち少なくとも一つを選択し、選択したメディアデータをサーバ120に要請する。PAT及びPMTは、複数のメディアデータ1010ないし1030の全体リストを含む。
【0124】
MPEG−2によれば、PAT及びPMTで定義されるPID(packet ID)は、エレメンタリーストリームによって異なる。従って、複数のメディアデータそれぞれに割り当てられるPIDは、異なる。しかし、他の実施形態によれば、1つのコンテンツを異なる品質にエンコーディングすることで生成された複数のメディアデータは、同じコンテンツに係わるエレメンタリーストリームであるから、PIDが同一に設定されもする。
【0125】
複数のメディアデータ1010ないし1030が、MPEG−2による複数のエレメンタリーストリームに対応する場合、複数のメディアデータ1010ないし1030それぞれは、複数の連続したPES(packetized elementary stream)を含んでもよい。
【0126】
複数のメディアデータは、1つのコンテンツを異なる品質にエンコーディングすることで生成されたものであるので、複数のメディアデータそれぞれに含まれたPESのPTS(presentation time stamp)及び/またはDTS(decoding time stamp)は、メディアデータの再生時間によって整列される(aligned)。言い換えれば、第1メディアデータの最初のPESと、第2メディアデータの最初のPESとが同じ時間に再生されるコンテンツであるならば、PTS及び/またはDTSが同一に設定される。
【0127】
図11Aは、本発明のさらに他の実施形態によるストリーミング方法について説明するためのフローチャートである。
【0128】
図11Aを参照すれば、ステップ1110でクライアント130は、複数のメディアデータに係わる情報をサーバ120に要請する。メディア表現記述を、HTTP要請を介してサーバ120に要請し、HTTP応答として、メディア表現記述を受信することができる。クライアント130は、ストリーミング環境に適切なストリーミングを遂行するために、1つのコンテンツを複数の異なる品質にエンコーディングすることで生成された複数のメディアデータに係わる情報を、サーバ120に要請して受信する。コンテンツに係わる情報の要請及び受信なしに、複数のメディアデータに係わる情報の要請及び受信が遂行されるという点が、
図5Aに図示された実施形態と異なる。
【0129】
ステップ1120でクライアント130は、複数のメディアデータのうち、少なくとも1つのメディアデータの伝送をサーバ120に要請する。クライアント130は、複数のメディアデータに係わる情報を参照し、ストリーミング環境に適した品質にエンコーディングされた少なくとも1つのメディアデータを選択してサーバ120に要請し、要請されたメディアデータをサーバ120から受信する。
【0130】
図11Bは、本発明のさらに他の実施形態によるストリーミング方法について説明するためのフローチャートである。
【0131】
図11Bを参照すれば、ステップ1112でクライアント130は、複数のメディアデータに係わる情報をサーバ120に要請し、要請に対する応答として、複数のメディアデータに係わる情報をサーバ120から受信する。メディア表現記述を、HTTP要請を介してサーバ120に要請し、HTTP応答として、メディア表現記述を受信することができる。
【0132】
ステップ1122でクライアント130は、ステップ1112で受信した複数のメディアデータに係わる情報に基づいて、選択したメディアデータのヘッダを要請する。ステップ522で受信された複数のメディアデータに係わる情報を参照し、ストリーミング環境によって選択したメディアデータのヘッダを要請する。サーバ120は、要請に対する応答として、選択されたメディアデータのヘッダを含むファイルをクライアント130に伝送する。
【0133】
ステップ1132でクライアント130は、ステップ1112で受信した複数のメディアデータに係わる情報、及びステップ1122で受信したヘッダに基づいて選択したメディアデータの伝送をサーバ120に要請する。コンテンツを所定の比率でエンコーディング、及び時間分割して生成された少なくとも1つの部分の伝送をサーバ130に要請し、サーバ120は、要請された少なくとも1つの部分をクライアント130に伝送する。
【0134】
図12A及び
図12Bは、本発明の他の実施形態による複数のメディアデータを図示している。
図12A及び
図12Bは、
図11A及び
図11Bによるストリーミング方法を遂行するために、サーバ120が保有する複数のメディアデータを図示している。
【0135】
図12Aを参照すれば、
図10Aに図示された実施形態と同様に、ストリーミング環境に適切なストリーミングのためにサーバ120は、1つのコンテンツを複数の異なる品質にエンコーディングすることで生成された複数のメディアデータ1010ないし1030を保有することができる。
【0136】
クライアント130が複数のメディアデータにアクセスするために必要な情報1240だけ異なるが、
図10Aに図示された実施形態とは異なり、サーバ120は、コンテンツに係わる情報を除外した複数のメディアデータに係わる情報だけ含んでもよい。この場合、クライアント130は、コンテンツに係わる情報を、サーバ120ではない他のエンティテイから受信し、コンテンツに係わる情報に基づいて、サーバ120が保有している複数のメディアデータにアクセスすることが可能である。
【0137】
図12Bを参照すれば、クライアント130が複数のメディアデータにアクセスするために必要な情報1242は、
図12Aの情報1240に、「NextMeta.xml」をさらに含んでもよい。
【0138】
図13は、本発明の一実施形態によるデータ伝送装置1300に係わるブロック図である。
【0139】
本発明の一実施形態によるデータ伝送装置1300は、獲得部1310、生成部1320及び伝送部1330を備える。
【0140】
獲得部1310は、同じコンテンツを異なる品質にエンコーディングすることで生成された複数個のメディアデータを獲得する。複数個のメディアデータは、所定のコンテンツを異なる方式でエンコーディングするか、あるいは同じ方式でエンコーディングするが、エンコーディング・パラメータを異にして生成されたものであってもよい。その場合、複数個のメディアデータは、異なる特徴を有する。一例として、複数個のメディアデータは、ビット率(bit rate)、解像度(resolution)、コーデック(codec)が異なる。
【0141】
複数個のメディアデータは、同じコンテンツから生成されたものであるので、相互間にスイッチングが可能である。ユーザは、高解像度のメディアデータを使用時に通信環境が悪化すれば、同じコンテンツから生成された低解像度のメディアデータにスイッチングすることができる。メディアデータ間のスイッチングは、セグメント単位で遂行されてもよい。
【0142】
セグメントは、エンコーディングされたコンテンツを、時間分割して生成される。従って、1つのメディアデータは、一つ以上のセグメントを含み得る。ユーザが、第1メディアデータ内の「A」番目のセグメントを使用していて、他の品質を有する第2メディアデータを再生しようとすれば、第1メディアデータ内の「A」番目のセグメントに対応する第2メディアデータ内のセグメントを受信して使用するのである。
【0143】
生成部1320は、少なくとも1つのセグメントそれぞれのランダムアクセスが可能なポイントを示す位置情報を生成する。生成部1320は、1つの位置情報だけを生成し、1つの位置情報にあらゆるセグメントでのランダムアクセス・ポイント情報を含めることができるが、それぞれのセグメントに対応する複数個の位置情報を生成することができる。後者の場合、1つの位置情報には、ただ対応するセグメント内のランダムアクセス・ポイントの位置だけを含むのである。
【0144】
他の実施形態において、
図32Cに図示されているように、生成部1320は、少なくとも1つの他のセグメントの位置情報を含む少なくとも1つのセグメントを生成する。
【0145】
セグメントは、一つ以上のデータユニットから構成され、生成部1320は、位置情報をデータユニット内の所定位置に挿入することができる。
【0146】
位置情報を伝送する方法は、実施形態によって多様である。以下、位置情報を伝送する方法に係わる例として、4種を提示するが、本願発明は、それらに限定されるものではない。
【0147】
i)MPEG 2標準によってエンコーディングされたメディアデータの場合、伝送パケット(transport packet)の「adaptation field」内に位置した「private_data_bytes」フィールドに位置情報を挿入して伝送することができる。「private_data_bytes」フィールドは、TSレベルで、付加的なフレーム情報を提供するためのフィールドである。これについての詳細な説明は、
図26Aを利用して後述する。
【0148】
ii)伝送パケット(transport packet)の「adaptation field」内に位置した「adaptation_field_extension」フィールドに位置情報を挿入して伝送することができる。「adaptation_field_extension」フィールドには、ユーザが新たに定義して使用できる「reserved」領域が存在し、「reserved」領域を介して位置情報を伝送する。これについての詳細な説明は、
図26Bを利用して後述する。
【0149】
iii)既存に存在するセクション内の所定のフィールドを介して、本願発明による位置情報を伝送する。一例として、MPEG−2では、TS_description_sectionを定義しており、TS_description_sectionは、「descriptor」フィールドを介して、多様な記述を提供する。本願発明による位置情報は、記述を介して伝送することができる。これについての詳細な説明は、
図26C及び
図26Dを参考にして後述する。
【0150】
iv)新たなセクションを定義し、新たに定義されたセクションを介して、本願発明による位置情報を伝送する。セクションは、伝送ストリームを介して伝送されるデータ形式の一つであり、主にサービス情報及びプログラム案内情報のようなサービス関連情報を含むデータである。これについての詳細な説明は、
図26E及び
図26Fを利用して後述する。
【0151】
v)MPEG 4標準によってエンコーディングされたメディアデータの場合、「Moof」ボックスまたは、「Moov」ボックスに位置情報を挿入する。以下、説明の便宜のために、パケットを基準にして説明する。しかし、本発明は、MPEG 4標準によるボックスのように、他の標準によるエンコーディングでも同一に適用されることは、当業者に自明である。
【0152】
位置情報は、対応するセグメント内でのランダムアクセスが可能なポイントを指示する方式によって、異なる構造を有することができる。本明細書では、3種タイプの位置情報について説明する。しかし、位置情報は、これに限定されるものではない。
【0153】
第1タイプの位置情報は、対応するセグメント内のランダムアクセスが可能な次のパケットの位置を示す第1オフセット情報を含む。第1タイプの位置情報は、ランダムアクセスが可能なそれぞれのパケット内の所定位置に配置されるのである。第1タイプの位置情報に係わる詳細な説明は、
図15及び
図20で後述する。
【0154】
第2タイプの位置情報は、対応するセグメント内のランダムアクセスが可能なあらゆるパケットの位置を示す第2オフセット情報を含む。第2タイプの位置情報は、1つのパケットにいずれも含まれるか、あるいは連続する複数個のパケットにまたがって含まれてもよい。一例として、セグメントの開始から連続する複数個のパケットに第2タイプの位置情報が含まれてもよい。第2タイプの位置情報に係わる詳細な説明は、
図17及び
図24で後述する。
【0155】
第3タイプの位置情報は、対応するセグメント内のあらゆるアクセスユニットについての位置情報を示す第3オプション情報を含む。第3タイプの位置情報は、アクセスユニットのタイプ別位置を含むので、ランダムアクセスが可能ではないアクセスユニットではなくとも、位置が容易に分かる。第3タイプの位置情報に係わる詳細な説明は、
図19及び
図25で後述する。
【0156】
このように、異なるタイプの位置情報が使われる場合には、位置情報のタイプをシグナリングする必要がある。このために、生成部1320は、位置情報に係わるタイプ情報を位置情報に含めることができる。
【0157】
伝送部1330は、位置情報を伝送する。前述のように位置情報は、対応するセグメント内の所定パケットに挿入され、伝送部1330は、位置情報が挿入されたセグメントを含むメディアデータを伝送することができる。
【0158】
図14は、本発明の一実施形態によるデータ受信装置1400に係わるブロック図を示している。
【0159】
本発明の一実施形態によるデータ受信装置1400は、受信部1410、獲得部1420及び提供部1430を備える。
【0160】
受信部1410は、同じコンテンツを異なる品質にエンコーディングすることで生成された複数個のメディアデータのうち、少なくとも一つを受信する。複数個のメディアデータは、エンコーディングされたコンテンツを時間分割した部分である一つ以上のセグメントを含む。
【0161】
受信部1410は、コンテンツを異なる品質にエンコーディングすることで生成された複数のメディアデータに係わる情報を含むファイルをまず受信した後、ユーザの選択または外部環境に基づいて、複数個のメディアデータのうち一つ以上のメディアデータを選択的に受信することができる。
【0162】
獲得部1420は、少なくとも1つのセグメントそれぞれのランダムアクセスが可能なポイントを示す位置情報を獲得する。位置情報は、自体が搭載されたセグメント内のランダムアクセス・ポイントについての情報だけを含むか、あるいは自体が搭載されていないセグメントのランダムアクセス・ポイントについての情報までいずれも含んでもよい。以下では、説明の便宜のために、位置情報自体が搭載されたセグメント内のランダムアクセス・ポイントについての情報だけを含むと仮定する。
【0163】
セグメントは、一つ以上のパケット(例えば、MPEG 2TSパケットまたはMPEG 4ボックス)から構成され、獲得部1420は、セグメント内の所定パケットにアクセスして位置情報を獲得する。
【0164】
獲得部1420が位置情報を獲得する方法は、位置情報のタイプによって異なることが可能であるので、獲得部1420は、まず位置情報に係わるタイプ情報を獲得する。
【0165】
第1タイプの位置情報の場合、獲得部1420は、セグメント内の特定パケット(例えば、最初のパケット)にアクセスする。獲得部1420は、アクセスしたパケット内の所定位置から(例えば、「private_data_bytes」フィールド)、ランダムアクセスが可能な次のパケットの位置を獲得する。獲得部1420は、アクセスしたパケット内の所定の位置から、ランダムアクセスが可能なその次のパケットの位置を獲得する。獲得部1420は、かような方式で、ランダムアクセスが可能なパケットに順次にアクセスし、次のランダムアクセス・ポイントの位置を獲得する。
【0166】
第2タイプの位置情報の場合、獲得部1420は、セグメント内の一つ以上の所定パケットの位置情報を獲得する。実施形態によっては、第2タイプの位置情報が、複数個の連続するパケットにまたがって含まれもする。その場合、獲得部1420は、複数個のパケットから位置情報を獲得して組み合わせる。第2タイプの位置情報が獲得されれば、当該セグメント内では、位置情報をさらに獲得する必要がない。しかし、位置情報がアップデートされたり、あるいはエラーが発生した場合に備え、アップデートされた後の特定パケットに位置情報を挿入したり、あるいは所定周期のパケットごとに位置情報を挿入したりもする。
【0167】
第3タイプの位置情報の場合、獲得部1420は、セグメント内の一つ以上の所定パケットの位置情報を獲得する。実施形態によっては、第3タイプの位置情報が、複数個の連続するパケットにまたがって含まれもする。その場合、獲得部1420は、複数個のパケットから位置情報を獲得して組み合わせる。第3タイプの位置情報は、位置情報がセグメント内のあらゆるアクセスユニット(access unit)(例えば、Pフレーム、Bフレーム、Iフレーム)についての位置情報を示す第3オフセット情報を含むので、必要によっては、ランダムアクセスが不可能なアクセスユニットに選択的にアクセスすることもある。
【0168】
提供部1430は、位置情報を利用して受信されたメディアデータに係わるランダムアクセスを提供する。
【0169】
従来には、「random_access_indicator」フィールドを利用してランダムアクセス機能を支援した。従って、クライアントでは、所望のランダムアクセス・ポイントを検出するまで、パケットを一つ一つ検索せねばならない。しかし、本願発明では、ランダムアクセス情報を特定フィールド(例えば、MPEG 2TSパケットのヘッダ内の「private_data_bytes」フィールド)を使用して提供することによって、ランダムアクセス機能を効果的に提供することができる。
【0170】
図15Aは、本発明の一実施形態による第1タイプの位置情報1510に係わる一例を示している。
【0171】
「data_field_tag」フィールド1511は、位置情報1510のタイプを示す。本明細書での位置情報は、次のランダムアクセス・ポイントを指示する第1オフセット情報、あらゆるランダムアクセス・ポイントを指示する第2オフセット情報、あらゆるアクセスユニットの位置を指示する第3オフセット情報のうち1つのタイプであると仮定する。
【0172】
「data_field_length」フィールド1512は、フィールド長を示す。
【0173】
「offset」フィールド1513は、16ビットから構成され、現在パケットからランダムアクセスが可能な次のパケットまでのパケット個数を示す。
図15Aでは、「offset」フィールド1513にパケット個数が含まれたが、次のランダムアクセス・ポイントを示すことができるいかなる値(例えば、次のランダムアクセス・ポイントまでのバイト数、次のランダムアクセス・ポイントのPTS、DTS、メディアのglobal time、フレーム番号)が含まれてもよい。
【0174】
図15Bは、本発明の実施形態による第1タイプの位置情報1520についての他の例を示している。
【0175】
「data_field_tag」フィールド1521は、位置情報1520のタイプを示す。
【0176】
「data_field_length」フィールド1522は、フィールド長を示す。
【0177】
「PTS」フィールド1523は、「TS_index」フィールド1524が示すパケットが提供するフレームのPTSを示す。一実施形態では、「PTS」フィールド1523が、メディアのglobal timeを示すこともできる。
【0178】
「TS_index」フィールド1524は、現在パケットからランダムアクセスが可能な次のパケットまでのパケット個数を示す。
【0179】
図16は、本発明の一実施形態による位置情報1510,1520を利用し、ランダムアクセスを提供する一例を示している。
【0180】
図16は、1つのセグメント内のパケットを示し、位置情報1510,1520は、第1タイプである。
【0181】
図16では、位置情報1510,1520がランダムアクセスが可能なパケットにのみ含まれると仮定する。また、セグメント内の最初のパケットは、ランダムアクセスが可能なパケットであると仮定する。
【0182】
獲得部1420は、最初のパケット内の「Private_data_bytes」フィールドにアクセスして位置情報を獲得する。最初のパケットから獲得した位置情報には、次のランダムアクセス・ポイントに係わるオフセット情報が含まれている。
【0183】
最初のパケットから順次にパケットを処理し、ユーザにコンテンツを提供していて、ユーザが特定位置へのジャンプを要請したと仮定する。ジャンプ後の再生は、必ずランダムアクセス・ポイントから開始されなければならないなので、獲得された位置情報から次のランダムアクセス・ポイントの位置を確認し、当該パケットにアクセスする。この後、アクセスしたパケットから順次にパケットを処理してデータを再生する。
【0184】
図17Aは、本発明の一実施形態による第2タイプの位置情報1710に係わる一例を示している。第2タイプの位置情報1710は、1つのセグメント内のあらゆるランダムアクセス・ポイントを指示する。
【0185】
位置情報1710は、1つのパケットに搭載されるが、場合によっては、連続する複数個のパケット内の特定フィールドに搭載されもする。位置情報1710が、パケット内のデータを搭載できる空間をいずれも占める場合には、当該パケットにペイロードデータがないこともある。パケットは、PIDを介してペイロードに含まれたデータを識別する。従って、PIDを利用し、当該パケットが位置情報を含むか否かを確認することができる。
【0186】
「data_field_tag」フィールド1711は、位置情報1710のタイプを示す。
【0187】
「data_field_length」フィールド1712は、フィールド長を示す。
【0188】
「RAP_index_finish_flag」フィールド1713は、現在のパケットで、「RAP_index」データが終わっているか否かを示す。前述のように位置情報1710は、複数個のパケットにまたがって存在し、「RAP_index_finish_flag」フィールド1713が、「0」であるならば、次のパケットに位置情報1710が含まれ、「RAP_index_finish_flag」フィールド1713が、「1」であるならば、次のパケットに位置情報1710が含まれないということを示す。
【0189】
「PTS」フィールド1714は、後述する「TS_index」フィールド1715が示すパケットから始まるフレームのPTS(またはメディアのglobal time)を示す。「TS_index」フィールド1715は、それぞれのランダムアクセス・ポイントに係わるインデックスを示す。「TS_index」フィールド1715は、ランダムアクセス・ポイントの位置を、パケットの個数、バイト数などを利用して示すことができる。
図17Aでnは、セグメント内の「ランダムアクセス・ポイントの個数−1」である。従って、位置情報1710には、「PTS」フィールド1714と、「TS_index」フィールド1715とが「n+1」回反復して存在する。
【0190】
図17Bは、本発明の一実施形態による第2タイプの位置情報1720に係わる一例を示している。第2タイプの位置情報1720は、1つのセグメント内のあらゆるランダムアクセス・ポイントを指示する。
【0191】
「data_field_tag」フィールド1721は、位置情報1720のタイプを示す。
【0192】
「data_field_length」フィールド1722は、フィールド長を示す。
【0193】
「RAP_count」フィールド1723は、セグメント内の全体ランダムアクセス・ポイントの個数を示す。
【0194】
「PTS」フィールド1724は、後述する「TS_index」フィールド1725が示すパケットから始まるフレームのPTS(またはメディアのglobal time)を示す。「TS_index」フィールド1725は、現在パケットからランダムアクセスが可能な次のパケットの開始までのパケットの個数を示す。
【0195】
図17Cは、本発明の一実施形態による位置情報に係わる他の例を示している。
【0196】
図17Cは、メディアデータを構成するセグメントについてのインデックスである。
図17Cでは、本願発明による位置情報をセグメント・インデックスに挿入し、セグメント・インデックスを、「private_data_field」を介して伝送する。
図17Cでは、本願発明の位置情報と関連していないフィールドについての説明は省略する。
【0197】
「segment_contains_rap」フィールド1731は、セグメント内に少なくとも1つのランダムアクセス・ポイントが存在するか否かを示す。
【0198】
「segment_starts_with_rap」フィールド1732は、セグメントの最も近いアクセスポイントが、ランダムアクセス・ポイントであるか否かを示す。すなわち、セグメントの開始が、ランダムアクセス・ポイントであるか否かを示す。
【0199】
「number_entries」フィールド1733は、ランダムアクセス・ポイントの個数を示す。
【0200】
「direction」フィールド1734は、現在位置からランダムアクセス・ポイントが存在する方向を示す(例えば、以前のランダムアクセス・ポイント、またはそれ以後のランダムアクセス・ポイント)。
【0201】
「reference type」フィールド1735は、ランダムアクセス・ポイントをインデクシングするときに基準になるパケットのタイプを決定する。次の表1は、「reference type」フィールド1735による基準パケットのタイプに係わる一例である。
【0203】
「offset flags」フィールド1736は、オフセット値のタイプを示す。次の表2は、「offset flags」フィールド1736値によるオフセット値のタイプに係わる一例である。
【0205】
「offset flags」フィールド1736の値が「00」であり、オフセットを示すフィールドの値が「3」であるならば、オフセット値は、8*3=24ビットになる。
【0206】
「rap_size_present_flag」フィールド1737は、セグメントエントリー内にランダムアクセスの位置を示す情報が含まれているか否かを示す。
【0207】
「rap_size」フィールド1738は、ランダムアクセス・ユニットを完全に出コーディングするために読み取らねばならない連続的な伝送ストリームパケットの個数を示す。すなわち、現在パケットから次のランダムアクセス・ポイントまでに存在するパケットの個数を示す。このとき、「rap_size」フィールド1738が示すパケットの個数は、アクセスユニットの最初のパケットと最後のパケットとの間に存在するPIDが異なるあらゆるパケットを含む。
図18は、本発明の一実施形態による位置情報1710,1720を利用してランダムアクセスを提供する一例を示している。
【0208】
獲得部1420は、最初のパケット(または、連続する一つ以上のパケット)内の「Private_data_bytes」フィールドにアクセスし、位置情報1510,1520を獲得する。最初のパケットから獲得した位置情報には、セグメント内のあらゆるランダムアクセス・ポイントに係わるオフセット情報が含まれている。
【0209】
最初のパケットから順次にパケットを処理し、ユーザにデータを再生していて、ユーザが特定位置へのジャンプを要請したと仮定する。獲得した位置情報1510,1520には、セグメント内のあらゆるアクセスポイントの位置が含まれているので、ユーザが要請した位置後に存在するランダムアクセス・ポイントにアクセスし、アクセスしたパケットから順次にパケットを処理してデータを再生する。
【0210】
図19は、本発明の一実施形態による第3タイプの位置情報1910に係わる一例を示している。
【0211】
「data_field_tag」フィールド1911は、位置情報1910のタイプを示す。
【0212】
「data_field_length」フィールド1912は、フィールド長を示す。
【0213】
「AU_index_finish_flag」フィールド1913は、AU_indexデータが、現在パケットで終わっているか否かを示す。前述のように位置情報1910は、複数個のパケットにまたがって存在し、「AU_index_finish_flag」フィールド1913が「0」であるならば、次のパケットに位置情報1910が含まれ、「AU_index_finish_flag」フィールド1913が「1」であるならば、次のパケットに位置情報1910が含まれないということを示す。
【0214】
「TS_index」フィールド1914は、アクセスユニットそれぞれに係わるパケットの位置を示す。実施形態によっては、「TS_index」フィールド1914は、アクセスユニットそれぞれに係わる「AU_information」フィールドの位置を示すこともある。
【0215】
「AU_coding_type_information」フィールド1915は、アクセスユニットのタイプを示す。一例として、「AU_coding_type_information」フィールド1915は、アクセスユニットが、Bフレーム、Pフレーム、Iフレーム、IDRフレームのうち一つであることを示すことができる。
【0216】
図20は、本発明の一実施形態による第1タイプの位置情報2010についての他の例を示している。
図20の位置情報2010は、一部フィールドを除外すれば、
図15Aの位置情報1510と同一であるので、異なる一部フィールドについてのみ説明する。
【0217】
「dependency_flag」(またはweighting_flag)フィールド2011は、「dependency」フィールド2013が存在するか否かを示す。「dependency_flag」(またはweighting_flag)フィールド2011が「1」に設定されれば、対応するランダムアクセス・ポイントが示すパケットは、依存性を有する。すなわち、当該パケットは、一つ以上の他のパケットのデータと共に処理されて再生される。
【0218】
「viewing_flag」フィールド2012は、「viewing」フィールド2014フィールドが存在するか否かを示す。「viewing_flag」フィールド2012が「1」に設定されれば、対応するランダムアクセス・ポイントは、三次元映像を提供する。
【0219】
「dependency」フィールド2013は、ランダムアクセス・ポイントに該当するパケットの依存度を示す。例えば、基本階層(basis layer)と強化階層(enhancement layer)とから構成されるスケーラブル映像成分を仮定する。基本階層は、強化階層なしにもデコーディングされるために、依存度は、「0」に設定される。しかし、強化階層をデコーディングするためには、基本階層及び下位階層のデコーディングが必須である。これは、スケーラブル階層が増大することにより、依存度が上昇するということを意味する。従って、強化階層の依存度は、「1」以上に設定される。依存度と同じ概念として、加重値(weighting)は、依存度と反対に作用する。
【0220】
「viewing」フィールド2014は、多視点コーディング(multi view coding)によってエンコーディングされた映像(例えば、自由視点TV、多視点三次元TVまたはステレオスコーピック(2種の視点)の映像)の視点レベルを示す。ステレオスコーピックの場合、左視点映像を提供するパケットに対応する「viewing」フィールド2014は、「0」に設定され、右視点映像を提供するパケットに対応する「viewing」フィールド2014は、「1」に設定される。
【0221】
図21は、本発明の一実施形態によるスケーラブル映像データを示している。
【0222】
図21では、n+1個の映像データを提供する。「base layer」階層に該当する映像データは、単独再生が可能な低画質の映像データである。ユーザが一ステップ高い画質(または音質)の映像データを所望する場合、「enhancement layer 1」階層と「base layer」階層とに該当する映像データを処理して再生する。ただし、「enhancement layer 1」階層に該当する映像データは、単独再生が不可能である。同様に、ユーザが最も高画質の映像データを所望する場合、「base layer」階層から「enhancement layer n」階層に該当する映像データをいずれも処理して再生する。
【0223】
上位階層に位置した映像データであるほど、共に再生せねばならない映像データの個数が多くなるので、依存度が上昇する。一方、重要度は低下するので、加重値は減少する。
【0224】
図22は、本発明の一実施形態による位置情報2210,2220を利用し、ランダムアクセスを提供する一例を示している。
図22は、複数個の階層から構成されたスケーラブル映像データに係わるものである。
【0225】
獲得部1420は、基本階層に該当するランダムアクセスが可能なパケット2201にアクセスし、パケット2201内の「Private_data_bytes」フィールドから、位置情報2210を獲得する。
【0226】
位置情報2210内の「dependency_flag」(またはweighting_flag)フィールドを介して、当該パケット2201がスケーラブル映像データを提供するものであることを確認することができる。また、位置情報2210内の「dependency」フィールドを介して、当該パケット2201の階層を確認することができる。パケット2201の「dependency」フィールドは、「0」の値を有するので、パケット2201は、基本階層に該当する。
【0227】
獲得部1420は、「offset」フィールドを参考にして、上位階層に該当するパケット2202にアクセスし、パケット2202内の「Private_data_bytes」フィールドから、位置情報2220を獲得する。
図22で、パケット2202の「dependency」フィールドは、「1」の値を有するので、パケット2202は、強化階層に該当する。
【0228】
図23は、本発明の一実施形態による位置情報2310,2320を利用し、ランダムアクセスを提供する一例を示す。
図23では、左視点映像データと右視点映像データとから構成されたステレオスコーピック映像データに係わるものである。
【0229】
獲得部1420は、左視点映像データに該当するランダムアクセスが可能なパケット2301にアクセスし、パケット2301内の「Private_data_bytes」フィールドから、位置情報2310を獲得する。
【0230】
位置情報2310内の「viewing_flag」フィールドを介して、当該パケット2301が三次元映像を提供するものであることを確認することができる。また、位置情報2310内の「viewing」フィールドを介して、当該パケット2301が提供する映像データの視点を確認することができる。パケット2301の「dependency」フィールドは、「0」の値を有するので、パケット2301は、左視点映像データである。
【0231】
獲得部1420は、「offset」フィールドを介して、ランダムアクセスが可能な右視点映像データに該当するパケット2302にアクセスし、パケット2302内の「Private_data_bytes」フィールドから、位置情報2320を獲得する。
図23で、パケット2302の「viewing」フィールドは、「1」の値を有するので、パケット2302は、右視点映像データである。
【0232】
図24は、本発明の一実施形態による第2タイプの位置情報2410についての他の例を示している。
図24の位置情報2410は、一部フィールドを除外すれば、
図17Aの位置情報1710と同一であるので、以下、説明を省略する。
【0233】
図25は、本発明の一実施形態による第3タイプの位置情報2510についての他の例を示している。
図25の位置情報2510は、一部フィールドを除外すれば、
図19の位置情報1910と同一であるので、以下、説明を省略する。
【0234】
図26Aは、本発明の一実施形態による位置情報を含むMPEG TS(transport stream)の構造に係わる一例である。
【0235】
「Adaptation field」内に、「private data」を入力するフィールドが「private−data−byte」として存在する。データ伝送装置1300は、「private−data−byte」の長さを定義した後、「transport−private−data−length」に入力する。データ伝送装置1300は、「transport−private−data−length」ほど「private−data−byte」に記録する。「private−data−byte」は、「unsigned integer」形態の数値である。「private−data−byte」の値は、現在あるTSパケットで、次のIフレームを有するTSパケットの開始位置に係わるオフセット値を意味する。TSにいくつかのIフレームが存在する場合、それぞれのIフレームが始まるところに、「Adaptation field」が存在する。
【0236】
図26Bは、本発明の一実施形態による位置情報を含むMPEG TS(transport stream)の構造についての他の例である。
【0237】
MPEG−2 TSパケットのヘッダには、「adaptation_field」が存在する。「adaptation_field」には、「adaptation_field_extension」フィールドが存在し、「adaptation_field_extension」フィールドには、ユーザが任意に定義して使用することができる「reserved」領域が存在する。
図26Cでは、「adaptation_field_extension」フィールドに、本願発明による位置情報が含まれるか否かを示すフラグと、次のランダムアクセス・ポイントの位置を示すバイト値が含まれたフィールドとを挿入する。
【0238】
図26Bでは、説明の便宜のために、位置情報と関連したフィールドについてのみ説明する。
【0239】
「adaptation_field_extension_flag」フィールド2611は、「adaptation_field」内に、「adaptation_field_extension」フィールドが存在するか否かを示す。
【0240】
「random_access_point_flag」フィールド2612は、「adaptation_field_extension」フィールド内に、ランダムアクセス・ポイントの位置を示す情報が含まれているか否かを示す。
【0241】
「random_access_point_count」フィールド2613は、TSパケットで提供するランダムアクセス・ポイントの個数を示す。
【0242】
「random_access_point_count」フィールド2613が「1」の値を有せば、TSパケット内には、1つのランダムアクセス・ポイントの位置だけ含まれるということを意味する。「random_access_point_count」フィールド2613が「1」の値を有する場合のパケットの構造に係わる一例は、
図32Aに図示されている。
図32Aを参考にすれば、TSパケットには、次のランダムアクセス・ポイントの位置だけ含まれ、次のランダムアクセス・ポイントが始まるTSパケットで、その次のランダムアクセス・ポイントの位置をさらに獲得せねばならない。
【0243】
「random_access_point_count」フィールド2613が、「2」以上の値を有せば、TSパケット内には、複数のランダムアクセス・ポイントの位置が含まれるということを意味する。「random_access_point_count」フィールド2613が、「2」以上の値を有する場合のパケットの構造に係わる一例は、
図32Bに図示されている。
図32Bを参考にすれば、TSパケットには、複数個のランダムアクセス・ポイントの位置が含まれている。従って、1つのTSパケットを処理し、所定区間内に存在するランダムアクセス・ポイントの位置がいずれも分かる。
【0244】
「random_access_point_length」フィールド2614は、現在TSパケットから次のランダムアクセス・ポイントが始まるTSパケットまでのバイト数を示す。
【0245】
データ受信装置は、TSパケットのヘッダをパージングし、「adaptation_field_extension」フィールドに含まれた情報を獲得し、「random_access_indicator」フィールドが存在するか否かを判断する。
【0246】
「random_access_indicator」フィールドが存在するならば、「random_access_point_count」フィールド2613と、「random_access_point_length」フィールド2614とを利用することによって、ランダムアクセス・ポイントの位置を容易に把握することができる。
【0247】
図26Bでは、「adaptation_field_extension」フィールドに、本願発明による位置情報を挿入することによって、TSの構造を大きく変化させずとも、ランダムアクセス・ポイントの位置を効率的に提供する。
【0248】
図26Cは、本発明の一実施形態による位置情報を含む「TS_description_section」に係わる一例である。
【0249】
MPEG 2では、プログラム情報のようなシグナリング情報を伝達するために、多様なセクションを定義している。次の表3は、MPEG 2で定義するセクションに係わる一例である。
【0251】
MPEGでは、PAT、PMTのような多様な形態のセクションを定義しており、それぞれのセクションには、固有の「PID」値が割り当てられる。
【0252】
また、それぞれのセクションは、「table_id」値が指定される。次の表4は、「table_id」値によるセッションの種類である。
【0254】
表3及び表4を参考にすれば、「table_id」の値が「0x00」であるセクションは、PATであり、PIDは、「0x00」である。また、「table_id」の値が「0x03」であるセクションは、「TS_description_section」であり、PIDが「0x02」である。「TS_description_section」は、多様な記述子(デスクリプタ)を提供する。
【0255】
図26Cは、「TS_description_section」であるから、「table_id」フィールド2631の値が「0x03」がなる。
【0256】
「descriptor」フィールド2632は、本願発明による位置情報が含まれる。「descriptor」フィールド2632に含まれる位置情報に係わる一例は、
図26Dで述べる。
【0257】
図26Dは、本発明の一実施形態による「TS_description_section()」に挿入された位置情報を含むTSパケット2640に係わる一例である。
【0258】
TSパケット2640は、ヘッダ2641とペイロード領域2642とから構成される。ヘッダ2641には、ペイロード領域2642に含まれたデータを識別するためのPIDフィールドが存在する。
【0259】
TSパケット2640のペイロード領域2642には、ランダムアクセス・ポイントの位置情報を含む「TS_description_section()」が搭載される。従って、TSパケット2640のPIDは、「0x02」になり、「table_id」は、「0x03」になるのである。
【0260】
ランダムアクセス・ポイントの位置情報は、「descriptor_tag」フィールド2643、「descriptor_length」フィールド2644、「random_access_point_count」フィールド2645及び「random_access_point_offset」フィールド2646を含んでもよい。
【0261】
「descriptor_tag」フィールド2643は、8ビットのフィールドであり、記述子を区分する識別子である。
【0262】
「descriptor_length」フィールド2644は、8ビットのフィールドであり、記述子のバイト個数を示す。
【0263】
「random_access_point_count」フィールド2645は、TSパケットで提供するランダムアクセス・ポイントの個数を示す。
【0264】
「random_access_point_length」フィールド2646フィールドは、ランダムアクセス・ポイントの位置を示す。
【0265】
図26Eは、MPEG−2標準による「TS_program_map_section」(以下、PMT)構造に係わる一例である。
【0266】
PMTは、「stream_type」フィールド2651と「elementary_PID」フィールド2652とのマッピング情報を含む。すなわち、PMTは、特定データタイプに係わる識別情報を提供する。
【0267】
MPEG 2標準では、「stream_type」フィールド2651の値が「0x80〜0xFF」である場合をユーザが任意に使用することができる「reserved」領域として提供している。従って、「0x80〜0xFF」のうち一つが、本願発明の位置情報を示すものであると設定できる。例えば、「stream_type」フィールド2651値が「0x80」であるならば、当該ストリームが、本願発明の位置情報を含むと仮定することができる。
【0268】
同時に、本願発明の位置情報を含むストリームの「elementary_PID」を「reserved」された値のうち一つ(例えば、「1000」)に設定する。
【0269】
もし受信機で、ランダムアクセス・ポイントについての位置情報が含まれたストリームを獲得しようとすれば、「elementary_PID」2652が「1000」であるパケットを獲得する。
【0270】
図26Fは、本発明の一実施形態による「private_section()」に挿入された位置情報を含むTSパケット2660に係わる一例である。
【0271】
TSパケット2660は、ヘッダ2661とペイロード領域2662とから構成される。ヘッダ2661は、ペイロード領域2662に含まれたデータを識別するためのPIDフィールドが存在する。TSパケット2660のPIDが「1000」であるから、ペイロード2662には、ランダムアクセス・ポイントについての位置情報が含まれるということが分かる。
【0272】
本発明の一実施形態では、「private_section()」を利用し、ランダムアクセス・ポイントについての情報を伝達すると仮定したが、実施形態によっては、既存の「private_section()」ではない新たなsectionを設定したり、あるいはTSパケットのペイロードなどに割り当てられたPIDを利用し、ランダムアクセス・ポイントについての情報を伝送することができるということは、本発明が属する技術分野で当業者には自明である。
【0273】
図26Fで、TSパケット2660のペイロード領域2662には、「private_section()」が含まれる。MPEG−2TSでは、ユーザがセクションを新たに定義して使用することができるように、「table_id」が「0x40」〜「0xFE」である場合を「reserved」領域として提供しており、「table_id」が「0x40」であるセクションを、「private_section()」と定義し、本願発明による位置情報を搭載する。
【0274】
「private_section()」は、「table_id」フィールド2663及び「private_data_type」フィールド2664を含む。
【0275】
「table_id」フィールド2663は、セクションのタイプを示す。
【0276】
「private_data_type」フィールド2664は、本願発明による位置情報が含まれる。本願発明による位置情報は、「random_access_point_count」フィールド2665及び「random_access_point_offset」フィールド2666を含むことができ、これについての説明は、
図26Dと同一であるので省略する。
【0277】
図27は、本発明の一実施形態によるデータ受信装置で、ユーザがトリックプレイを要請した場合のサービス提供方法に係わるフローチャートを示している。
図27では、Iフレームを順次に再生することによって、トリックプレイを提供すると仮定する。
【0278】
ステップ2710で、ユーザからトリックプレイの要請を受信する。
【0279】
ステップ2720で、パケット内に「adaptation field」が存在するか否かを判断する。パケット内に「adaptation field」が存在すれば、ステップ2730に進み、そうではなければ、次のパケットに「adaptation field」が存在するか否かを判断する。もしクライアントが、位置情報を含むパケットの位置を知っている場合(例えば、セグメント内の最初のパケットとして約束した場合)には、ステップ2720を遂行しない。
【0280】
ステップ2730で、「adaptation field」内の「private−data−byte」から、位置情報を獲得することによって、Iフレームの位置を確認する。第1タイプの位置情報が獲得された場合には、次のIフレームの位置だけを獲得できるのであり、第2タイプまたは第3タイプの位置情報が獲得された場合には、セグメント内のあらゆるIフレームの位置を確認することができる。
【0281】
以下、第1タイプの位置情報が獲得されたと仮定し、次のIフレームオフセットを抽出する過程について簡略に説明する。例えば、オフセット値が2462である場合、2462の値を16ビット値に変更した0x99Eを計算する。「unsigned integer」のサイズが4バイトであるから、「transport−private−data−length」値を4として登録する。0x99Eを4バイト整数である「0x00 0x00 0x09 0x9E」に変換する。「private−data−byte」に変換された値を入力する。反対に、「private−data−byte」からオフセット値を抽出する方法で、「private−data−byte」がpdb[4]と宣言された場合、オフセットは、(int)(pdb[3]<<24 | pdb[2]<<16 | pdb[1]<<8|pdb[0])と計算される。
【0282】
ステップ2740で、次のIフレームオフセットほどTSファイルを分離する。
【0283】
ステップ2750で、セグメント内のファイルの最後であるか否かを判断する。セグメントファイルの最後ではない場合、ステップ2730に移動し、再び次のIフレームを抽出する。セグメントファイルの最後である場合、ステップ2720に移動し、次のセグメントについて同じ過程を遂行する。
【0284】
図28は、本発明の他の実施形態によるMPEG TS(transport stream)で、Iフレームを見い出すためのTSパケットの構造を図示している。
【0285】
「Adaptation field」は、TSヘッダの一部分であり、TS関連追加情報を入力する選択的なフィールドである。「Adaptation field」は、さまざまなパラメータを有し、そのうち、ユーザが任意に使用することができる「private data field」が存在する。「transport_private_data_length」は、「Adaptation field」内に存在する「private data field」のサイズ知らせるパラメータである。「private_data_byte」は、ユーザが任意に定義したデータを保存する空間である。クライアントは、「transport_private_data_length」と「private_data_byte」とを利用し、MPEG TSで、次のIフレームの開始位置を計算することができる。
【0286】
図29は、本発明の一実施形態による、MPEG TSで、Iフレームを探すためのMP4ファイル構造を図示している。
【0287】
MP4ファイル構造では、エンコーディングされたデータを、時間に基づいて分割して生成されたセグメントが、一つ以上の「moof」ボックス及び「mdat」ボックスを含む。「moof」ボックスは、セグメントに係わるメタデータが含まれ、「mdat」ボックスは、コンテンツを提供するペイロードデータが含まれる。
【0288】
Iフレームの位置情報は、MP4ファイルの「Trak」ボックスや「Traf」ボックス内の「moof」ボックスを介して獲得することができる。
【0289】
図30は、本発明の一実施形態によるデータ伝送方法に係わるフローチャートを示している。
【0290】
ステップ3010では、同じコンテンツを異なる品質にエンコーディングすることで生成される少なくとも1つのセグメントを含む複数個のメディアデータを獲得する。
【0291】
ステップ3020では、少なくとも1つのセグメントそれぞれのランダムアクセスが可能なポイントを示す位置情報を生成する。
【0292】
ステップ3030では、位置情報を伝送する。
【0293】
図31は、本発明の一実施形態によるデータ受信方法に係わるフローチャートを示している。
【0294】
ステップ3110では、コンテンツを異なる品質にエンコーディングすることで生成されるそれぞれ少なくとも1つのセグメントを含む複数個のメディアデータのうち少なくとも一つを受信する。
【0295】
ステップ3120では、少なくとも1つのセグメントそれぞれのランダムアクセスが可能なポイントを示す位置情報を、受信されたメディアデータから獲得する。
【0296】
ステップ3130では、位置情報を利用して受信されたメディアデータに係わるランダムアクセスを提供する。
【0297】
一方、前述の本発明の実施形態は、コンピュータで実行することができるプログラムで作成可能であり、コンピュータで読み取り可能な記録媒体を利用し、前記プログラムを動作させる汎用デジタルコンピュータで具現される。
【0298】
前記コンピュータで読み取り可能な記録媒体は、磁気記録媒体(例えば、ROM(read-only memory)、フロッピー(登録商標)ディスク、ハードディスクなど)、光学記録媒体(例えば、CD−ROM、DVDなど)及びキャリアウェーブ(例えば、インターネットを介した伝送)のような記録媒体を含む。
【0299】
以上、本発明についてその望ましい実施形態を中心に説明した。本発明が属する技術分野で当業者であるならば、本発明が本発明の本質的な特性から外れない範囲で変更された形態で具現されるということを理解することができる。従って、開示された実施形態は、限定的な観点ではなく、説明的な観点から考慮されなければならないのである。本発明の範囲は、前述の説明ではなく、特許請求の範囲に示されており、それと同等な範囲内にあるあらゆる差異点は、本発明に含まれたものであると解釈されなければならない。
【0300】
100 ストリーミング・システム
110 エンコーディング装置
120 サーバ
130 クライアント
140 ネットワーク