メディア・コンテナ・ファイル管理
メディア・コンテナ・ファイル(1)が、ファイル(1)内のメディアトラック(12)により定義されるメディアデータ(2;3)を編成することにより生成される。メディアデータ(2;3)のメディアデータ部分(4,5;6,7,8)を識別するサブトラック情報(72,74)が、メディアトラック(12)において定義される複数のサブトラックのサブトラックごとに編成される。サブトラックのうちの少なくとも1つに、メディア・コンテナ・ファイル(1)において編成される他のメディアデータに関連してサブトラックにより定義されるメディアデータ部分(4,5;6,7,8)の選択的処理を定義する選択情報(62,64)が割り当てられる。メディアデータ(2,3)は、有利には、サブトラック(12)へと編成される階層化メディアまたは複数のカメラビューを定義するメディアに関連するものである。選択情報(62,64)は、メディアセッションをセットアップし、そのようなメディアセッションの間にトラック(12)およびサブトラックを切換えるときの、トラック(12)およびサブトラックの中からの選択を可能にする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、メディアおよびマルチメディアの管理に関し、詳細には、そのようなメディアまたはマルチメディアコンテンツを含むメディア・コンテナ・ファイルの作成および使用に関する。
【背景技術】
【0002】
ここ数年、様々なネットワーク上でのクライアントへのメディアおよびマルチメディアの提供がすさまじい勢いで増加している。今日、インターネットは、多数のユーザにより、メディアサーバからの、ビデオおよびオーディオのストリームやファイルなどとしてのメディアにアクセスし、ダウンロードまたはストリーミングするために使用されている。
【0003】
様々な有線および無線の通信ネットワークにおけるメディア提供に対する需要を踏まえ、要求側クライアントにメディアコンテンツを提供するために無線ネットワークにおいて利用できるストリーミングおよびダウンロードサーバの開発研究が進められている。そこには透過的で柔軟性のあるストリーミング/ダウンロードサーバに向かおうとする一般的傾向があり、これは、サーバは基本的に、様々なメディア管理機能を果たす多数の「標準」のモジュールまたはプログラムからなるべきであることを示唆するものである。その場合、これらの機能への入力メディアコンテンツは、各モジュール/プログラムがコンテンツをどのように処理すべきかの命令と一緒に提供される。これは、サーバにおける定められた事前定義のメディア処理の使用と比べて、より柔軟性のあるメディア提供を実現する。
【0004】
MPEG(Moving Picture Experts Group)は、ストリーミングおよびダウンロードサーバの開発における傾向に沿ったファイル形式、すなわち、ISOベース・メディア・ファイル形式(ISO base media file format)[1]を標準化している。ISOベース・メディア・ファイル形式は、AVC(Advanced Video Coding)ファイル形式[2]、SVC(Scalable Video Coding)ファイル形式[3]、MVC(Multiview Video Coding)ファイル形式[4]といった、いくつかのより具体的なファイル形式のベースとして使用される、マルチメディア表現の記憶および伝送のための一般的なファイル形式を指定している。
【0005】
ISOベース・メディア・ファイル形式は、トラックをオルタネートグループにグループ化することができる。同じオルタネートグループに属するトラックをオルタネートトラックといい、相互に対する代替トラックとして使用される。オルタネートトラックは、例えば、同じコンテンツを表すことができるが、品質、コーデック、言語などに関しては異なる。完全な表現を提供するには、メディアセッションにおいて1度に各オルタネートグループからただ1つのトラックを処理すべきである。
【0006】
また、オルタネートグループに加えて、ISOベース・メディア・ファイル形式はスイッチグループも定義している。オルタネートグループ内のすべてのトラックはメディア選択のための候補であるが、進行中のメディアセッションの間にそれらのトラックの一部を切換えることが妥当でない場合もある。例えば、フレームサイズを保持している間は、異なるビットレートのビデオトラックを切換えることも可能であろうが、異なるフレームサイズ、異なるビデオコードまたは異なるオーディオ言語のトラックの切換えは許容しないはずである。オルタネートグループとスイッチグループとの区別は、同じスイッチグループ内のトラックは、進行中のメディアセッションの間でさえも切換えの候補であるが、同じオルタネートグループ内にあるが異なるスイッチグループに含まれるトラックは、進行中のメディアセッションの間に切換えられるべきではないというものである。
【0007】
先行技術の、トラック内のメディアデータの編成、およびそのようなトラックの異なるオルタネートグループとスイッチグループとへの割り当ては、大部分の種類のメディアでうまく機能する。しかし、ある特定の種類のメディア、例えばSVCやMVCとの接続に際しては問題が発生する[5]。
【0008】
SVCは、定評のあるH.264/AVCビデオ符号化標準の標準化されたスケーラブルな拡張である[5]。SVCは、ビデオの複数の表現を単一のビットストリームにおいて符号化することを可能にする。特定の空間分解能、品質およびフレーム率におけるそのようなビデオの各符号化表現が層として表される。各層は階層関係を構成し、最低の層がベース層(BL(base layer))を表し、それに続く各層が拡張層(EL)を表す。
【0009】
MVCは、複数のビューを一緒に符号化することを目標とするAVC/SVC標準の拡張である。複数のビューとは、この状況においては、異なるカメラで撮影される同じ場面を表すビデオシーケンスである。MVCビューの構造はSVC層の構造と類似するが、各MVCビューは普通、同様の分解能、品質およびフレーム率を有するという違いがある。
【発明の概要】
【発明が解決しようとする課題】
【0010】
ISOベース・メディア・ファイル形式をSVCまたはMVCの符号化コンテンツに適用するとき、各トラックは、同じコンテンツの複数のバージョンを複数の層またはビューとして含むことになる。しかし、オルタネートグループおよびスイッチンググループは、単一トラック専用に設計されている。これは、進行中のメディアセッションの間に、トラックにより定義される異なる層またはビューの間で切換えが行われ得ることを意味する。というのは、これらの層またはビューは、本来、同じオルタネートグループおよび同じスイッチグループに属するからである。しかし、層またはビューを動的に切換えることがきわめて望ましくない状況が存在する。例えば、ベース層は無料とすることができ、広告を含むが、拡張層は、コンテンツのプレミアム付きの有料の広告なしのバージョンを含む。したがって、広告が表示されないように料金を支払っているユーザについては、プレミアム付きコンテンツから無料コンテンツに意図せずに切り換わることは望ましくない。
【0011】
よって、SVCやMVCといった、同じコンテンツの複数のバージョンを搬送する種類のメディアに、オルタネートグループおよび/またはスイッチグループの概念を適用する解決策が求められている。
【0012】
一般的な目的は、メディアセッションにおいて使用することのできるメディア・コンテナ・ファイルを提供することである。
【0013】
個別の目的は、個々のサブストリームを構成する複数のメディアデータ部分を含むメディアデータのために使用することのできるメディア・コンテナ・ファイルを提供することである。
【課題を解決するための手段】
【0014】
上記その他の目的は、本明細書で開示する実施形態により達成される。
【0015】
簡単にいうと、メディア・コンテナ・ファイルが、メディア・コンテナ・ファイル内のメディアトラックにより定義されるメディアデータを編成することにより生成される。メディアデータは、同じメディアコンテンツの異なるバージョンに関連するという点において異なるサブストリームを構成する部分を含む。例えば、メディアデータ部分は、SVCデータの異なる層またはMVCデータの異なるビューに関連するものとすることができる。
【0016】
サブトラック情報が、メディアトラックにより定義されるサブトラックごとに、メディア・コンテナ・ファイルにおいて提供される。サブトラック情報は、当該サブトラックに属する、または当該サブトラックにより定義されるメディア・コンテナ・ファイル内のメディアデータ部分を識別する。サブトラックの少なくとも1つに選択情報が割り当てられ、選択情報はメディア・コンテナ・ファイルに含まれる。選択情報は、メディア・コンテナ・ファイルにおいて編成され、当該サブトラックのメディアデータ部分と同じコンテンツに関連する他のメディアデータに関連してサブトラックにより定義されるメディアデータ部分の選択的処理を定義する。
【0017】
また一態様は、そのようなメディア・コンテナ・ファイルを生成するように設計されたメディアコンテンツ・サーバにも関するものである。メディア・コンテンツ・サーバは、メディア・コンテナ・ファイル内のメディアデータを編成するためのデータオーガナイザを備える。サブトラック情報プロバイダはメディア・コンテナ・ファイルにおいてサブトラック情報を提供し、選択情報プロバイダはメディア・コンテナ・ファイルにおいて選択情報を提供する。
【0018】
別の態様は、個々のサブストリームを構成するメディアデータ部分を含むメディア・コンテナ・ファイルを定義する。メディア・コンテナ・ファイルにはメディアデータを定義するためにメディアトラックが含まれる。メディア・コンテナ・ファイルは、さらに、メディアトラックにおいて定義されるサブトラックごとに、当該サブトラックに属するメディアデータのメディアデータ部分を識別するサブトラック情報も含む。メディア・コンテナ・ファイルには、メディア・コンテナ・ファイルにおいて編成され、当該メディアデータ部分と同じメディアコンテンツに関連する他のメディアデータに関連して、少なくとも1つのサブトラックが当該サブトラックと関連付けられるメディアデータ部分の選択的処理を定義するために、選択情報が含まれる。
【0019】
一態様によるメディア処理の方法は、選択情報としてサブトラックに割り当てられるオルタネートグループ識別子に基づき、メディアセッションのセットアップと関連してサブトラックを選択することにより、メディア・コンテナ・ファイルを使用する。選択されるサブトラックと関連付けられるメタデータが、選択されるサブトラックに割り当てられるサブトラック情報に基づいてメディア・コンテナ・ファイルの中から取り出される。取り出されるメディアデータはデータパケットへとコンパイルされメディアセッションの間に少なくとも1つのユーザ端末に送信される。
【0020】
メディア処理の方法の別の態様は、進行中のメディアセッションの間に、現在のトラックまたはサブトラックから別のサブトラックに切り換わる。切換えは、選択情報としてサブトラックに割り当てられるスイッチグループ識別子に基づいて実行され、したがってメディア・コンテナ・ファイル内に存在する。選択されるサブトラックに割り当てられ、メディア・コンテナ・ファイルに含まれるサブトラック情報は、進行中のメディアセッションの間に同じコンテンツに関連するメディアデータの切換えに影響を及ぼすために、サブトラックのメディアデータを取り出し、それを少なくとも1つのユーザ端末に送られるデータパケットへとコンパイルするのに使用される。
【0021】
メディア処理サーバは、一態様によれば、メディア・コンテナ・ファイルを提供するためのコンテナプロバイダを備える。トラックセレクタが、メディアセッションのセットアップと関連してメディア・コンテナ・ファイルにおいて定義されるサブトラックを選択する。トラックセレクタは、メディア・コンテナ・ファイルからの、選択手順においてサブトラックに割り当てられるオルタネートグループ識別子を使用する。パケットコンパイラが、メディア・コンテナ・ファイルの中からサブトラックのメディアデータを取り出し、サブトラックと関連付けられるサブトラック情報に基づき、メディアデータをデータパケットへとコンパイルする。送信機が、メディアセッションの間に、データパケットを少なくとも1つのユーザ端末に送信する。
【0022】
メディア処理サーバの別の態様は、進行中のメディアセッションの間に、同じメディアコンテンツに関連するストリームおよびサブストリームの切換えを実現する。コンテナプロバイダが、少なくとも1つのサブトラックが定義されており、関連付けられるスイッチグループ識別子およびサブトラック情報を含むメディア・コンテナ・ファイルを提供する。トラックセレクタがスイッチグループ識別子を使用して、現在のトラックまたはサブトラックと同じメディアコンテンツに関連するサブトラックを選択する。パケットコンパイラが、サブトラック情報に基づき、選択されるサブトラックのメディアデータを搬送するデータパケットをコンパイルする。データパケットは、メディアデータのストリームまたはサブストリームの切換えに影響を及ぼすために、進行中のメディアセッションの間に、少なくとも1つのユーザ端末に送信される。
【0023】
本発明はそのさらに別の目的および利点と共に、以下の説明を添付の図面と併せて参照することにより最もよく理解することができる。
【図面の簡単な説明】
【0024】
【図1】一実施形態によるメディア・コンテナ・ファイルを生成する方法を示す流れ図である。
【図2】スケーラブルビデオ符号化データの異なる層への編成を示す概略図である。
【図3】スケーラブルビデオ符号化データに適用できる図1の情報提供ステップの一実施形態を示す流れ図である。
【図4】複数のカメラビューを使った場面の記録を概略的に示す図である。
【図5】マルチビュービデオ符号化データの異なるビューへの編成を示す概略図である。
【図6】マルチビュービデオ符号化データに適用できる図1の情報提供ステップの一実施形態を示す流れ図である。
【図7】一実施形態による、図1の生成する方法のさらに別のステップを示す流れ図である。
【図8】一実施形態によるメディア・コンテナ・ファイルを示す概略図である。
【図9】一実施形態による、メディア・コンテナ・ファイルを生成し、使用するサーバを含む通信ネットワークを示す概要図である。
【図10】メディア・コンテンツ・サーバの一実施形態を示す概略的ブロック図である。
【図11】一実施形態によるメディア処理の方法を示す流れ図である。
【図12】一実施形態による、図11のメディア処理の方法のさらに別のステップを示す流れ図である。
【図13】メディア処理サーバの一実施形態を示す概略的ブロック図である。
【発明を実施するための形態】
【0025】
図面全体を通して、同じ参照番号は類似の、または対応する要素に使用される。
【0026】
本発明は、一般に、メディアおよびマルチメディアデータの管理に関し、詳細には、無線ベースの通信ネットワークを含む通信ネットワークにおける、ストリーミングサーバやダウンロードサーバといったメディアサーバと関連したメディア・コンテナ・ファイルの作成および利用に関するものである。メディア・コンテナ・ファイルは、(1つまたは複数の)要求側クライアントに送信するためのメディアコンテンツに加えて、メディアサーバにおいてメディア処理および送信を実行するのに使用される命令も含む。これらの命令は、メディアサーバにより、メディアセッションをセットアップするときのメディアコンテンツの選択および/または進行中のメディアセッションの間のメディア・データ・ストリームの切換えなど、メディアセッションと関連したメディアコンテンツの選択のために使用され得る選択情報を含む。
【0027】
本発明によれば、メディアまたはマルチメディアデータまたはコンテンツとは、データをレンダリングするためにコンテンツ提供者またはサーバによりクライアントに提供され得る任意のデータをいう。典型的な好ましい例には、ビデオデータおよびオーディオデータが含まれる。各実施形態は、それぞれが個々のサブストリームを構成する複数の異なるデータ部分を含むメディアデータとの関連において特に有用である。そのようなメディアデータは、メディア・コンテナ・ファイルの単一のメディアトラックへと編成されるが、SVCにおける層やMVCにおけるビューといった、複数のデータ部分を含む。メディアデータのサブストリーム別のメディアデータ部分への編成は、先行技術の技法、すなわち、先行技術のオータナティブ(alternative)グループおよびスイッチグループを適用するときに問題を生じる。各実施形態の利点をより明確に開示するために、以下でまず先行技術の技法の限界を手短に論じる。
SVCコンテンツクラス
【0028】
SVCは、ビデオコンテンツの複数の表現を単一のビットストリームにおいて符号化することを可能にする。ビデオデータのスケーラビリティは以下の観点において実現することができる。
時間的スケーラビリティ フレーム率はフレームを落とすことにより低減することができる。
空間的スケーラビリティ 各層が異なる空間分解能で符号化される。より高い分解能の予測でより低い分解能のデータを使用することができる。
品質スケーラビリティ 各層が同じ空間分解能で符号化されるが、異なる品質で符号化される。また品質スケーラビリティは、当分野では信号対雑音割り当て(signal−to−noise ration)(SNR)スケーラビリティとも表示される。
【0029】
符号化データ2は異なる層4、5へと分割され、これが図2に概略的に示されている。層4、5は階層関係を構成し、最低の層がベース層4を表し、それに続く各層が拡張層5を表す。図には、層4、5間のこの階層的符号化関係が、拡張層5の(インターまたはP)フレームが、少なくとも一部は、ベース層4の(イントラまたはI/イントラまたはP)フレームに基づいて符号化されるという観点において概略的に示されている。
【0030】
SVCは、同じビデオコンテンツの異なるバージョンまたはクラス、例えば、有料のプレミアム付きバージョン対無料バージョンを表すのに使用することができる。2つのバージョンの違いは、品質に関して、例えば、高忠実度か低忠実度か、分解能関して、例えば、高品位(HD)か標準品位(SD)か、あるいは1080pか720pか、広告関して、例えば、広告およびロゴの空間的挿入の有無などとすることができる。
【0031】
2つのコンテンツクラスは、ベース層(BL)にける無料バージョンと拡張層(EL)におけるプレミアム付きバージョンを伴う1つのSVCトラックにより符号化することができる。しかし、先行技術のスイッチグループ構文は、1トラック内で異なるスイッチグループを割り当てるのに使用することができない。
【0032】
【表1】
【0033】
したがって、先行技術によれば、無料バージョンとプレミアム付きバージョンとの意図しない切換えを防ぐことが不可能である。当然ながらこれは、ビデオに広告が表示されないように追加料金を支払っているユーザには受け入れられない。
MVCビュー
【0034】
MVCは、図4に示すように、場面86の複数のカメラビュー80〜85から取り込まれるビデオデータを一緒に符号化する。図には、場面86の異なる左ビューを取り込む3台のカメラ80〜82が示されており、他方、他の3台のカメラ83〜85は、異なる右場面ビューを取り込むように位置決めされている。ビュー間相関を複数のビューの統合符号化において利用し、それによって、異なるビューを個別に符号化するのに比べてビットレートを低減することができる。図5に、異なるビュー6〜8へと編成されるMVCデータ3の概念を示す。そのような場合には、ビューのうちの1つはベースビュー6であり、他のビューは、追加ビュー7、8と表示され、図に概略的に示すように、ベースビュー6または他の追加ビューとの関連で符号化される。
【0035】
MVCデータは、SVCデータと同様に、先行技術に対して問題を生じる。例えば、1つの左ビューと右ビューの対からのビデオデータがH.263を用いて符号化され、別の左右対がMVCデータとして符号化される事例を想定する。
【0036】
【表2】
【0037】
先行技術によれば、オルタネートグループ識別子およびスイッチグループ識別子がトラックレベルで割り当てられているため、2つの左符号化間または2つの右符号化間でどちらかを表示することは不可能である。この場合、トラック3は、左右両方のビューのビデオデータを含むため、実際には、H.263左ビューと同じオルタネートグループと、H.263右グループと同じオルタネートグループの両方に属するはずである。
【0038】
一見しただけでは、これらの先行技術の問題を、エクストラクタを使って解決しようと試みることも考えられる。エクストラクタは、同じメディア・コンテナ・ファイル内の他のデータを参照する。エクストラクタは、ファイル読取装置により処理されるとき、それが参照するメディアデータで置き換えられる。
【0039】
【表3】
【0040】
この場合には、メディアセッションの間にベース層と拡張層との間で切換えが発生し得るため、上記の問題が存在する。
【0041】
【表4】
【0042】
2つのトラックについて異なるスイッチグループを有する場合でさえも、トラック1においてベース層と拡張層とを切換えることが可能である。
【0043】
【表5】
【0044】
2つのトラックについて異なるスイッチグループを有する場合でさえも、トラック2においてベース層と拡張層とを切換えることが可能である。
【0045】
よって、先行技術の解決策に対する上記の自明の改変のいずれも、ベース層と拡張層との切換えを制御する、例えば、切換えを防ぐという問題を解決することにならない。
【0046】
今日、ベース層への切換えを防ぐことのできる、SVCのための具体的解決策が実際に存在する。スケーラビリティ情報補助拡張標識(supplementary enhancement indicator)(SEI)メッセージ内のlayer_output_flagが一候補である。layer_output_flagが1であることは、現在のスケーラブル層表現についての復号結果の出力が意図されていることを示す。layer_output_flagが0であることは、現在のスケーラブル層表現についての復号結果の出力が意図されていないことを示す。
【0047】
しかし、ベース層についてlayer_output_flagを0に設定することは、ベース層の出力が全く意図されない場合にのみ機能する。異なるコンテンツクラスまたはバージョンを有することの本質は、すべてのクラスが出力のための潜在的な候補となるべきことである。それらのクラスのうちの1つを選択した後でも、クラスの切換えが、例えば制限されるなど、制御可能であるべきである。よって、このようなlayer_output_flagの使用は先行技術の問題を解決することにならない。というのは、その場合実際には、層のうちの1つへのアクセス可能性を制限し、それにより異なる層およびメディアコンテンツクラスを有するという利点を弱めることになるからである。加えて、layer_output_flagは、ISOベース・メディア・ファイル形式のファイル形式においては利用できず、むしろ、実際のビットストリームのオンザフライの検査を必要とし、これはメディアセッションにおいては煩雑である。
【0048】
よって、例えば、SVCデータやMVCデータのような異なるサブストリームへと編成されるメディアコンテンツの種類のためにもオルタネートグループおよびスイッチグループの使用を可能にする解決策が求められている。というのは、先行技術の技法はそのような解決策を実現するのに使用し得ないからである。
【0049】
図1は、一実施形態によるメディア・コンテナ・ファイルを生成する方法の流れ図である。このメディア・コンテナ・ファイルは、メディアコンテンツを提供し、メディアデータを送信可能なデータパケットに形成するためのメディアセッションの間にメディアサーバにより使用され得る完全な入力パッケージとみなすことができる。よって、メディア・コンテナ・ファイルは、好ましくは、メディアコンテンツ自体に加えて、メディアサーバがメディアセッションの間に処理を実行し、メディアコンテンツの送信を可能にするために必要とされる情報および命令も含む。
【0050】
方法は任意選択のステップS1において開始し、そこでメディア・コンテナ・ファイルに含まれるべきメディアデータが提供される。各実施形態によれば、メディアデータは、メディアコンテンツの個々のサブストリームを構成する、複数の、すなわち少なくとも2つのデータ部分を含む。これら複数のメディアデータ部分は、同じメディアコンテンツの異なるバージョンを構成するものとみなすことができる。例えば、SVCなどの階層化メディアは、典型的には階層的順序で複数の層を含む。ただ1つの層、すなわちベース層を処理すること、またはさらに拡張層を処理することは、ほとんどの場合、同じメディアコンテンツを生成するが、例えば、品質、分解能などに関して異なるクラスまたはバージョンとして生成する。しかし、各代替層を処理するときに提供される実際のメディアコンテンツは、異なるバージョンの形をとり得るとはいえ、おおむね同じである。同様の状況が、各メディアデータ部分が異なるカメラビューに関連するMVCについても発生する。SVCおよびMVCは、ステップS1で提供され得るメディアデータの好ましい例であるが、各実施形態はそれだけに限定されない。それとは全く対照的に、スケーラブル・オーディオ・データを含む、層やビューといった異なるメディアデータ部分へと編成され得る他の任意の種類のメディアデータを使用することができる。
【0051】
本発明においては、たとえ1つの層またはビューが1つのメディアデータ部分とみなされ得る場合でさえも、相互関係を符号化するために、別の層またはビューからの符号化データが復号できることが必要とされ得ることを見越している。例えば、拡張層がベース層および/または他の(1つまたは複数の)拡張層と関連して符号化されてもよく、追加ビューがベースビューおよび/または他の(1つまたは複数の)追加層と関連して符号化されてもよい。よって、データパケットの復号可能なストリームを提供するという観点で層またはビューを処理することは、他の層またはビューからのデータを必要とし得る。
【0052】
ステップS1のメディアデータの提供は様々な実施形態に従って実施され得る。メディアデータは、通信システム内の他の何らかのサーバまたは装置により生成または収集され、メディア・コンテナ・ファイルの生成を実行するメディア・コンテンツ・サーバに送信されていてもよい。あるいは、メディア・コンテンツ・サーバ自体が、メディア・コンテナ・ファイルに含められるべきメディアデータを提供するメディア記録または生成設備を含んでいてもよい。
【0053】
次のステップS2では、メディアデータがメディア・コンテナ・ファイル内のメディアトラックにより定義されるように、メディア・コンテナ・ファイルにおいてステップS1で提供されたメディアデータを編成する。
【0054】
ステップS2でメディア・コンテナ・ファイルにおいて編成されるメディアデータは、好ましくは、メディアセッションの間にクライアントに送信されるべきすべてのメディアコンテンツを一括して含む。言い換えると、メディア・コンテナ・ファイルは、必要とされるすべての層またはビューを含むマルチメディア表現全体についてのメディアデータを含む。よって、メディアコンテンツが音楽ビデオを含む場合、メディア・コンテナ・ファイルは、好ましくは、ビデオデータを有するメディアデータと対応するオーディオデータを有するメディアデータとを含む。
【0055】
メディア・コンテナ・ファイル内のメディアトラックは、メディアデータをその複数のメディアデータ部分を用いて定義する。これは、メディアトラックがメディアセッションの間にメディアコンテンツの表現を提供するのに必要とされる情報を含むことを意味する。好ましくは、メディアトラックは、それ自体の時間的、空間的情報を運び、それが参照するメディアデータに関連する命令情報を提供する。
【0056】
メディアトラックは、各実施形態によれば、複数のサブトラックを、好ましくは、各メディアデータ部分当たりサブトラックを1つずつ含む。よってその場合、階層化された、またはビューベースのメディアデータは、メディアコンテンツの1つの層(または層のグループ)またはカメラビュー当たり1つのそのようなサブトラックを有し得る。
【0057】
次のステップS3では、メディア・コンテナ・ファイルにおいてサブトラック情報を提供する。このサブトラック情報は、特定のサブトラックに属するメディアデータ部分を識別する。ステップS3および次のステップS4の情報提供は、好ましくは、サブトラックごとに1回ずつ行われ、これは線L1により概略的に示されている。
【0058】
ステップS4では、複数のサブトラックの少なくとも1つについてメディア・コンテナ・ファイルにおいて選択情報を提供する。選択情報はメディア・コンテナ・ファイルにおいて編成される他のメディアデータに関連してサブトラックにより定義されるメディアデータ部分の選択的処理を定義する。よって、選択情報は、メディアセッションを開始するときにどのサブトラックおよびメディア部分を使用すべきか、および/またはメディアセッションの間に切換えることのできる、または切換えることのできないサブトラックおよびメディア部分はどれかを選択するために、メディアセッションと関連してメディアサーバにより使用され得る。選択情報は、先行技術によるオルタネートグループ識別子および/またはスイッチグループ識別子と同様に使用することができる。しかし、同一のオルタネート/スイッチグループ識別子がトラックにより定義されるすべてのメディアデータに適用できることを意味する、オルタネート/スイッチグループ識別子がトラックベースで割り当てられる先行技術とは対照的に、ステップS4で提供される選択情報は、サブトラックと、当該サブトラックにより定義されるメディアデータ部分だけに関連する。その結果、すべて単一のメディアトラックへと編成されるその他のメディアデータ部分については他の選択情報を割り当て、使用することができる。
【0059】
選択情報が適用されるメディアデータ部分の選択的処理は、好ましくは、当該メディアデータ部分と同じコンテンツに関連する他のメディアデータに関連するものである。同じコンテンツに関連するその他のメディアデータは、同じメディアトラック、すなわち、当該メディアトラック内の別のサブトラック、またはメディア・コンテナ・ファイルに存在する別のメディアトラックにより定義され得る。別のサブトラックの場合には、その他のメディアデータは、同じメディアトラックにより定義され、現在のサブトラックおよびメディア部分のSVC層またはMVCビューに対して、他のSVC層またはMVCビューに関連する1つまたは複数の他のサブトラックとすることができるはずである。別のメディアトラックの場合には、メディア・コンテナ・ファイルは、同じコンテンツに関連する少なくとも2つの別々のメディアトラックを含む。例えば、1つのメディアトラックはSVC層またはMVCビューを定義する複数のサブトラックを含むことができ、他方、少なくとも1つの他のトラックは、標準AVC(H.264)やH.263データといった、ビュー間または層間の関係なしで符号化することができる。
【0060】
個々の選択情報は、ステップS4でメディアトラックの各サブトラックに提供することができ、これは線L1により概略的に示されている。あるいは、複数のサブトラックのうちのただ1つのサブトラックまたは一部分に選択情報が割り当てられる。次いで、残りの(1つまたは複数の)サブトラックは、さらに説明するように、複数のサブトラックを定義する完全なメディアトラックに割り当て可能なオルタネートグループ識別子および/またはスイッチグループ識別子を継承することができる。
【0061】
ステップS2〜S4の順序は交換されてもよく、代わりに、任意の順序で実行することも、実際には少なくとも一部を並行して実行することもできる。
【0062】
次いで方法は終了する。
【0063】
メディア・コンテナ・ファイルが、それぞれ複数のサブトラックからなる複数のメディアトラックを含む場合、ステップS1〜S4の手順は、そのようなメディアトラックごとに実行することができる。
【0064】
図1との関連で前述したメディア・コンテナ・ファイル生成は、好ましくは、内部または外部のメディア・コンテンツ・ソースにアクセスすることのできるメディアコンテンツ作成者またはサーバにおいて実行される。次いで、生成されたメディア・コンテナ・ファイルは、例えば、ローカルシステム内での転送のためや、ローカルまたはグローバルネットワーク上での送信のために、コンピュータメモリといった記憶媒体において、または電気信号や無線信号といった物理信号において表現され得る。典型的な実施形態では、メディア・コンテナ・ファイルは、様々なクライアントとのメディアセッションにおいて使用するためのメディアサーバに無線信号として提供される。
【0065】
以下、メディア・コンテナ・ファイルという用語は、本開示全体を通して、記憶媒体における記憶のためのデータファイルと、転送または配信のための信号の両方を含む意味として使用する。
【0066】
図3は、図2に示すSVCデータに適用できる情報提供ステップS3およびS4の個別実施形態を示す流れ図である。この方法は、図1のステップS2から続く。次のステップS10では、SVCデータ2のベース層4に関連するサブトラック情報を提供する。この情報は、ベース層サブトラックが関連するSVCデータの部分の識別を可能にするようにベース層サブトラックを定義する。次のステップS11では、それに応じて、メディア・コンテナ・ファイル内のSVCデータ2の拡張層5ごとのサブトラック情報を提供する。よって、ステップS11で提供されるサブトラックは、当該サブトラックが関連する特定の拡張層5を定義するSVCデータ2のメディアデータ部分を識別する。
【0067】
次の2つのステップS12およびS13は、ベース層および拡張層についての選択情報を提供する。これらのステップS12およびS13のうちの少なくとも1つは、サブトラックレベルで実行される。例えば、ベース層サブトラックに専用の選択情報を割り当てることができ、拡張層サブトラックにそれに応じて専用の選択情報が割り当てられる。あるいは、ベース層サブトラックおよび拡張層サブトラックのうちの1つにサブトラック別の選択情報が割り当てられ、その他の(1つまたは複数の)サブトラックは、完全なメディアトラックの選択情報(オルタネート/スイッチグループ識別子)を継承する。
【0068】
ステップS10〜S13の順序は、交換されてもよく、代わりに、任意の順序で実行することも、実際には少なくとも一部を並行して実行することもできる。
【0069】
図6は、図5に示すMVCデータの場合の、図1の情報提供ステップS3およびS4の対応する個別実施態様である。この方法は図1のステップS2から続く。次のステップS20は、ベースビュー6を定義するMVCデータ3のメディアデータ部分を定義するサブトラック情報を提供する。次のステップS21は、それに応じて、MVCデータ3の(1つまたは複数の)追加ビュー7、8に関連する(1つまたは複数の)メディアデータ部分を定義するサブトラック情報を提供する。
【0070】
ステップS22およびS23においてベースビューおよび/または追加ビューを定義するサブトラックに選択情報が割り当てられる。図3のステップS12およびS13と同様に、ステップS22およびS23では、ベースビューおよび追加ビューを定義するサブトラックにサブトラック別の選択情報を提供することもでき、そのようなサブトラック別の選択情報を、ベースビューまたは追加ビューの1つもしくは複数だけに提供することもできる。後者の場合、サブトラック別の選択情報が割り当てられないサブトラックは、それらがすべて定義されるメディアトラックからそのような選択情報を継承することができる。
【0071】
ステップS12〜S23の順序は交換されてもよく、代わりに、任意の順序で実行することも、実際には少なくとも一部を並行して実行することもできる。
【0072】
各実施形態による、サブトラックベースで割り当てられる選択情報は、有利には、サブトラック別のオルタネートグループ識別子とすることができる。その場合、そのようなオルタネートグループ識別子は、メディアセッションの間に、例えば、復号され、変換され、かつ/または送信用のデータパケットへと編成されるなどの処理を施されるべきサブストリームを選択するときに、メディアセッションのセットアップと関連してメディアサーバにより適用され得る。メディアサーバは、その場合、オルタネートグループがメディア・トラック・レベルで定義されるかそれともサブトラックレベルで定義されるかとは無関係に、完全な表現を与えるために、一度に各オルタネートグループから複数のオルタネートメディアを使用しないはずである。
【0073】
したがって、オルタネートグループ内のオプションは、相互に対する代替として使用される。すなわち、それらのオプションは、同じコンテンツを表すが、品質、分解能、コーデック、オーディオ言語などに関して異なり得る。オルタネートグループ内のすべてのオプションが同じオルタネートグループ識別子を共有し、メディアセッションが開始する前のメディア選択の候補である。
【0074】
代替の実施形態において、選択情報は、進行中のメディアセッションの間に、異なるストリーム(完全なメディアトラック)および/またはサブトラック(サブトラックに対応するメディアデータ部分)を切換えるときに適用できる、サブトラック別のスイッチグループ識別子に対応する。
【0075】
スイッチグループ内のオプションは同じオルタネートグループに属する。同じスイッチグループ内のオプションは、同じスイッチグループ識別子を共用し、メディアセッションの間の切換えに利用可能であるが、異なるスイッチグループ内のオプションは利用できない。異なるスイッチグループは、異なるフレームサイズ、高品質対低品質、異なる言語などといった、異なる動作点を表すものとみなすことができる。また、スイッチグループ内部のオプションは、例えば、品質における異なる動作点も表す。
【0076】
個別実施形態において、サブトラックレベルで割り当てられる選択情報は、オルタネートグループ識別子とスイッチグループ識別子の両方を含む。
【0077】
本明細書で開示する実施形態によれば、先行技術との関連で前述した例は、今度は、効果的に処理することができる。
【0078】
【表6】
【0079】
この場合、ベース層データ部分および拡張層データ部分を定義するメディアトラックには、当該メディアトラックが複数のサブトラックを含むこと、ならびにオルタネートグループ識別子およびスイッチグループ識別子は代わりにサブトラックごとに割り当てられることを示す、0などの事前定義の値に従ってオルタネートグループ識別子およびスイッチグループ識別子が割り当てられる。
【0080】
無料SVCデータとプレミアム付きSVCデータには、それらが同じオルタネートグループに属し、メディア処理の間の代替選択肢またはオプションであることを示すように、同じオルタネートグループのサブトラック識別子が割り当てられる。よって、プレミアム付きコンテンツのための追加料金を支払ったクライアントは、拡張層とベース層に関連するメディアデータ部分を含むデータパケットを獲得するはずであり、その場合、ベース層が必要とされ得るのは拡張層を復号するためである。しかし、他のプレミアム付きでないクライアントは、単にベース層データだけを受信するはずである。
【0081】
2つのサブトラックには、メディアセッションの間に、プレミアム付きSVCコンテンツに関連するサブストリームから無料SVCコンテンツのサブストリームへの切換えまたはその逆の切換えが許容されるべきではないことを示すために、異なるサブトラック・スイッチ・グループ識別子が割り当てられる。
【0082】
また、サブトラック別の選択情報を、グレースフルデグラデーション(graceful degradation:優雅な劣化)との関連で使用することもでき、その場合には、同じメディアコンテンツのいくつかの品質層がビットレート適応を可能にするために利用できる。しかし、ベース層が広告を含み、または非常に低い品質のものである場合には、メディアサーバに、予期しない輻輳またはビットレート低下の間には切換えがある層より上でのみ行われるべきであると指示することが望ましい。プレミアム付きのクライアントに意図せずに広告を表示するよりはむしろ、受信機がデータパケット損失を隠す方が望ましい場合もある。そのような解決策は、以下を含むように設計することができる。
【0083】
【表7】
【0084】
それぞれが個々の拡張層(EL1およびEL2)を定義する2つのサブトラックは、進行中のメディアセッションの間の、それらのサブトラックにより定義される2つのサブストリーム間の切換えを可能にするように、同じスイッチグループに属する。しかし、切換えは、ベース層定義のサブストリームと拡張層定義のサブストリームとの間では許容されないはずである。
【0085】
【表8】
【0086】
この例では2つのオルタネートグループがあり、一方は場面の左ビューに関連し、他方は右場面ビューに関連する。どちらのオルタネートグループも、メディアトラック(H.263トラック1または2)の完全なメディアデータおよびサブトラック(MVCサブトラック1または2)のMVCビューデータを含む。この場合、H.263とMVCデータの符号化には異なるコーデックが用いられている。その結果、H.263符号化データとMVC符号化データとの切換えは求められない。したがって、同じオルタネートグループに属するH.263左ビューデータとMVC左ビューデータには、異なるスイッチグループ識別子が使用されるはずである。H.263右ビューデータとMVC右ビューデータにも同じことが当てはまる。スイッチグループはオルタネートグループ内においてローカルで定義されるため、前述のように同じスイッチ・グループ・インデックスが再利用され得ることに留意されたい。あるいは、スイッチグループ識別は、例えば、1、1、2、2、ではなく、1、3、2、4などとすることもできる。
【0087】
上記の例は、各実施形態がMVCコンテンツの個々のビューに対処するのに使用され得ることを示し、また、単一のトラックメディア型(H.263)の代替選択肢を階層化メディア型(MVC)とどのように関連させるべきかを示すものでもある。
【0088】
MVCに関する別の例は、ファイルが多くのビューを含み得るが、その一部だけがスムーズな切換えに適するというものである。例えば、オブジェクト86の左から3台のカメラ80〜82と右から3台のカメラ83〜86など、2つのカメラクラスタを有する図4に示す状況を考察する。そのような場合、自由視点を得るためにスムーズな切換えは各クラスタ内でのみ可能である。この状況は以下に従って処理することができる。
【0089】
【表9】
【0090】
すべてのビューは、メディアセッションをセットアップするときの代替選択肢であり、すべてのサブトラックに同じオルタネートグループ識別子を割り当てることにより示される。しかし、切換えは、それぞれ、左ビューの間と、右ビューの間でのみ許容されるはずである。その結果、すべての左ビューサブトラックに同じスイッチグループ識別子、すなわち、すべての右ビューサブトラックに割り当てられるスイッチグループ識別子と異なる識別子が割り当てられる。
【0091】
メディアトラックに、メディアトラックが複数のサブトラックを含むことを示す事前定義の値を有するいわゆるトラック選択情報を割り当てることができる。このトラック選択情報は、トラックレベルで割り当てることのできるオルタネートグループ識別子および/またはスイッチグループ識別子を含む。上記の例では、事前定義の値が0に設定されており、それにより、メディアトラック全体に適用できるオルタネート/スイッチグループ識別子が利用できず、代わりに、サブトラック別のオルタネート/スイッチグループ識別子がメディア・コンテナ・ファイルに含まれることを知らせる。
【0092】
その場合、メディアサーバは、現在のメディアコンテンツにトラック別のオルタネート/スイッチグループ識別子を使用すべきかそれともサブトラック別のオルタネート/スイッチグループ識別子を使用すべきか判定するために、単にメディア・コンテナ・ファイル内のオルタネート/スイッチグループ識別子フィールドまたはボックスを調べるだけでよい。ISOベース・メディア・ファイル形式を参照すると、そのような場合には、トラック選択ボックスをなしにすることもでき、スイッチグループが0に設定され、かつ/またはトラック・ヘッダ・ボックス内のオルタネートグループが0に設定される。
【0093】
代替の手法においては、オルタネートおよび/またはスイッチグループ識別子などのトラック選択情報を、複数のサブトラックを定義するメディアトラックについてトラックレベルで割り当てることができる。そのような場合には、サブトラック別の選択情報を複数のサブトラックの1つまたは一部分に割り当てることができ、メディアトラックの残りのサブトラックはサブトラック別の選択情報をもたない。これら残りのサブトラックは、代わりに、メディアトラックに割り当てられる(1つまたは複数の)オルタネート/スイッチグループ識別子を継承する。この状況では、最終的なメディア・コンテナ・ファイルを処理するメディアサーバが、メディアトラックが非ゼロのオルタネート/スイッチグループ識別子を有するかどうか調べ、さらに、そのようなオルタネート/スイッチグループ識別子がサブトラックのために設けられているかどうかも調べる。専用の(1つまたは複数の)オルタネート/スイッチグループ識別子がサブトラックに割り当てられている場合、この(これらの)識別子は、トラック別のオルタネート/スイッチグループ識別子の代わりにサブトラックに使用される。
【0094】
【表10】
【0095】
この例は、メディア・トラック・レベルのオルタネートグループ識別子の使用を概略的に示すが、メディアトラックにより定義されるサブトラックごとのスイッチグループ識別子は示さない。
【0096】
【表11】
【0097】
この例では、ベース層を定義するサブトラックは、完全なメディアトラックのオルタネートグループ識別子およびスイッチグループ識別子を継承し、異なる拡張層を定義する2つのサブトラックは、それ自体に割り当てられるオルタネートグループ識別子およびスイッチグループ識別子を有する。
【0098】
図7は、生成する方法のさらに別の任意選択のステップを示す流れ図である。この方法は図1のステップS3から続く。次のステップS30では、メディアトラックにトラック選択情報を提供する。選択情報は、好ましくは、オルタネートグループ識別子および/またはスイッチグループ識別子を含む。選択情報の値は、メディア・トラック・レベルではオルタネート/スイッチグループ識別子が与えられず、代わりに各サブトラックに個々の選択情報が割り当てられることを示す、0といった事前定義の値とすることができる。トラックレベルの選択情報がある場合には、サブトラックが特に割り当てられた選択情報をもたない限り、この情報がメディアトラックにより定義されたすべてのサブトラックに使用される。よって、サブトラックレベルで割り当てられる選択情報は、メディア・トラック・レベルで割り当てられるトラック選択情報に優先する。
【0099】
次いでこの方法は図1のステップS4に続く。
【0100】
以下において、各実施形態を、ISOベース・メディア・ファイル形式[1]の使用という観点でのメディア・コンテナ・ファイルの個別実施態様を参照してより詳細に説明する。使用され得る代替のコンテナファイル形式には、MP4ファイル形式、3GPファイル形式、AVC、SVC、MVCおよびQuickTime形式が含まれる。
【0101】
ISOベース・メディア・ファイル形式は、メディアの交換、管理、編集および表現を円滑化する柔軟性のある拡張可能な形式での表現のための時限メディア情報を含むように設計されている。表現は、当該表現を含むシステムにとってローカルのものとすることもでき、ネットワークまたは他のストリーム配信機構によるものとすることもできる。ISOベース・メディア・ファイルの形のメディア・コンテナ・ファイルを使用することの利点は、それがいかなる特定のネットワークプロトコルからも独立である同時に、それらを全般的に効率よくサポートすることができるように設計されていることである。
【0102】
ISOベース・メディア・ファイル形式のファイル構造は、コンテナファイルを非常に簡単に構成オブジェクトへと分解することができ、各オブジェクトの構造がその型から直接推測されることを意味するオブジェクト指向型である。ISOベース・メディア・ファイル形式に基づくものであるメディア・コンテナ・ファイルは、個々の一意の識別子により定義されるオブジェクト指向型のビルディングブロックである、いくつかのボックスにより定義されるものとみなすことができる。
【0103】
図8を参照すると、ISOベース・メディア・ファイル形式に適合するメディア・コンテナ・ファイル1の一実施形態が示されている。
【0104】
メディア・コンテナ・ファイル1は、好ましくは、そのサブボックスが表現のためのメタデータを定義するコンテナボックスである映画ボックス(‘moov’)10を含む。
【0105】
映画ボックス
定義:
ボックス型:‘moov’
コンテナ:ファイル
必須:はい
数量:厳密に1つ
【0106】
表現のためのメタデータはこの単一つの映画ボックス10に記憶され、これは、メディア・コンテナ・ファイル1の最上位レベルに出現する。通常、この映画ボックス10はメディア・コンテナ・ファイル1の先頭または末尾の近くにあるが、これは必須ではない。
【0107】
構文:
aligned(8)class MovieBox extends Box(‘moov’){
}
【0108】
映画ボックス10は、メディア・コンテナ・ファイル1内の関連するメディア・データ・サンプルの時限シーケンスを定義するトラック12、14を含む。
【0109】
トラックボックス
定義:
ボックス型:‘trak’
コンテナ:映画ボックス(‘moov’)
必須:はい
数量:1以上
【0110】
トラックボックス12、14は、表現の単一のトラックのためのコンテナボックスである。各トラック12、14はそれ自体の時間的、空間的情報を運ぶ。トラックボックス12、14は、メディアトラックの観点からメディアデータを定義し、いわゆるヒントトラックの観点から見た、ストリーミングなどによるメディアデータの配信のためのパケット化情報を含めるのに使用される。
【0111】
構文:
aligned(8)class TrackBox extends Box(‘trak){
}
【0112】
図8には、メディア・コンテナ・ファイル1が、2つのトラックボックス12、14を含むものとして非限定的に示されている。しかしこれは単なる例示とみなすべきであり、メディア・コンテナ・ファイル1は1つまたは複数のそのようなトラックボックス12、14を含むことができる。図において、トラックボックス12は、前述のような複数のメディアデータ部分を含むメディアデータを定義するメディアトラックである。メディアトラック12は、したがって、さらに説明するように、複数のサブトラックを含むことになる。
【0113】
トラックボックス12は、好ましくは、包含ボックスおよびそのデータ、すなわち、表現またはトラックに関するユーザ情報を示すオブジェクトを含むユーザ・データ・ボックス30を含む。したがって、ユーザ・データ・ボックス30は、そのコンテンツをより正確に示すより詳細なボックス型を有するボックスの集合として書式設定される情報提供ユーザデータのためのコンテナボックスとみなすことができる。
【0114】
また、メディア・コンテナ・ファイル1は、表現のための実際のメディアデータを保持するメディア・データ・ボックス(‘mdat’)も含む。
【0115】
メディア・データ・ボックス
定義:
ボックス型:‘mdat’
コンテナ:ファイル
必須:いいえ
数量:任意の数
【0116】
メディア・データ・ボックス20はメディアデータを含む。例えば、ビデオトラック12、14では、このボックス20はビデオフレームを含むはずである。
【0117】
構文:
aligned(8)class MediaDataBox extends Box(‘mdat’){
bit(8)data[];
}
【0118】
データは実際のメディアデータを表す。
【0119】
ユーザ・データ・ボックス
定義:
ボックス型:‘udta’
コンテナ:映画ボックス(‘moov’)またはトラックボックス(‘trak’)
必須:いいえ
数量:0または1
【0120】
構文:
aligned(8)class UserDataBox extends Box(‘udta’){
}
【0121】
前述の考察によれば、代替グループ中のすべてのトラックがメディア選択の候補であり、これは、すべてのメディアトラックを同じオルタネートグループに割り当てることにより実現される。オルタネートグループ識別子の情報は、トラックボックス12と関連付けられるトラック・ヘッダ・ボックス(不図示)において提供される。ISOベース・メディア・ファイル形式によれば、トラック・ヘッダ・ボックス(‘tkhd’)の構文は以下のように表現される。
aligned(8)class TrackHeaderBox extends Fullbox(‘tkhd’,version,flags){
...
template int(16)alternate_group=O;
...
}
【0122】
このオルタネートグループ識別子は、トラックレベルで適用することができ、したがって、メディアトラック12のサブトラックがそれに特有のサブトラック・オルタネート・グループ識別子をもたない限り、メディアトラック12により定義されるメディアデータ全体に適用される。好ましい実施態様においては、オルタネートグループ識別子のゼロ値により、メディアトラックが、それ自体のサブトラック・オルタネート・グループをもち得る複数のサブトラックを含むことを知らせる。このフィールドが0でない場合、それは、相互についてのオルタネートデータを含むタック(tack)12では同じであり、異なるそのようなグループに属するトラック12では異なるはずである。その場合、トラック12により定義されるサブトラックは、それ自体のサブトラック・オルタネート・グループ識別子をもたない限り、このオルタネートグループ識別子を継承することができる。
【0123】
ユーザ・データ・ボックス30は、任意選択で、メディアトラック12に適用できるスイッチグループ識別子を定義するのに使用されるトラック選択ボックス(‘tsel’)40を含む。
【0124】
トラック選択ボックス
定義:
ボックス型:‘tsel’
コンテナ:ユーザ・データ・ボックス(‘udta’)
必須:いいえ
数量:0または1
【0125】
トラック選択ボックス40は、それが関連するトラック12のユーザ・データ・ボックス30に含まれる。
【0126】
構文:
aligned(8)class TrackSelectionBox extends FullBox(‘tsel’,version=O,O){
template int(32)switch_group=O;
unsigned int(32)attribute_list[];//ボックスの最後まで
}
【0127】
属性リストは、トラックの記述として、または同じオルタネートグループもしくはスイッチグループ内のトラックについての差別化基準として使用される。スイッチグループ識別子は0とすることができ、その場合復号器は、メディア・コンテナ・ファイル内のサブトラック選択グループを探すことができる。非ゼロの値は、それ自体のサブトラック・スイッチ・グループ識別子をもたない任意のサブトラックにより継承され得る。
【0128】
各実施形態によれば、ユーザ・データ・ボックス30は、トラックがサブトラックを含む場合には、現在のトラック内のサブトラックを指定する、いわゆるサブトラックボックス(‘strk’)50を含む。
【0129】
サブトラックボックス
定義:
ボックス型:‘strk’
コンテナ:ユーザ・データ・ボックス(‘udta’)
必須:いいえ
数量:0以上
【0130】
サブトラックボックス50は、現在のメディアトラック12内のサブトラックに関する情報を定義し、提供するオブジェクトを含む。
【0131】
構文:
aligned(8)class SubTrack extends Box(‘strk’){
}
【0132】
サブトラックボックス50は2つのボックス、すなわち、サブトラック情報ボックス(‘stri’)60とサブトラック定義ボックス(‘strd’)70を含むコンテナである。
【0133】
サブトラック情報ボックス60はサブトラック記述を含む。これは、例えば、サブトラックがどのスイッチグループおよび/またはオルタネートグループに属するか、サブトラックの他の属性などとすることができる。個別実施形態においては、オルタネートグループおよびスイッチグループの番号が、メディア・コンテナ・ファイル1により使用される。これは、同じ識別子形式または番号付けがトラックオルタネート/スイッチグループ識別子およびサブトラックオルタネート/スイッチグループ識別子の間で共用されることを意味する。このようにして、オルタネートグループまたはスイッチグループはトラックとサブトラックの両方を含み得る。
【0134】
サブトラック情報ボックス
定義:
ボックス型:‘stri’
コンテナ:サブトラックボックス(‘strk’)
必須:はい
数量:1
【0135】
サブトラック情報ボックス60は、サブトラックに関する情報を提供するオブジェクトを含む。
【0136】
構文:
aligned(8)class SubTrackInformation extends Box(‘stri’){
}
【0137】
サブトラック定義ボックス70は、サブトラックを定義するボックスを含むコンテナボックスである。サブトラックは、サブトラック定義ボックスに囲まれたものにより決定されるサンプル部分集合の和集合として定義される。これらの部分集合を定義するボックスは、SVCファイル形式標準やMVCファイル形式標準といった、対応するファイル形式標準において決定することができる。
【0138】
サブトラック定義ボックス
定義:
ボックス型:‘strd’
コンテナ:サブトラックボックス(‘strk’)
必須:はい
数量:1
【0139】
サブトラック定義ボックス70は、サブトラックの定義を提供するオブジェクトを含む。
【0140】
構文:
aligned(8)class SubTrackDefinition extends Box(‘strd’){
}
【0141】
メディア・コンテナ・ファイル1の代替の実施態様においては、提案する構造を、サブトラック情報ボックス60およびサブトラック定義ボックス70なしで実現することができる。そのような場合には、サブトラック情報ボックス60およびサブトラック定義ボックス70内に存在するボックスは、代わりに、直接サブトラックボックス50に配置することができる。しかし、サブトラック情報ボックス60およびサブトラック定義ボックス70を用いる構造は、より多くの情報を収集することができるため、有利である。例えば、ファイルパーサは、サブトラック定義ボックス70において、それが認識しないボックスを発見する場合、これがサブトラックを定義するボックスであることを知るはずである。
【0142】
ISOベース・メディア・ファイル形式標準と同様に、サブトラック選択ボックス(‘stsl’)62が定義され、好ましくは、サブトラック情報ボックス60に含められる。サブトラック選択ボックス62は、現在のスイッチグループに適用できるサブトラック・スイッチ・グループ識別子を含む。
【0143】
サブトラック選択ボックス
定義:
ボックス型:‘stsl’
コンテナ:サブトラック情報ボックス(‘stri’)
必須:いいえ
数量:0または1
【0144】
構文:
aligned(8)class SubTrackSelectionBox extends Fullbox(‘stsl’,version=0,0){
template int(32)switch_group=0;
unsigned int(32)attribute_list[];//ボックスの最後まで
}
【0145】
switch_groupはサブトラック・スイッチ・グループ識別子であり、トラックおよび/またはサブトラックのグループまたは集合体を指定する整数である。このフィールドが0、すなわちデフォルト値である場合、またはサブトラック選択ボックス62がない場合には、再生またはストリーミングの間の切換えのためにサブトラックを使用することができるかどうかに関する情報がない。また、同じスイッチグループに属するトラック/サブトラックは、同じオルタネートグループにも属するはずである。
【0146】
attribute_listは、サブトラックの記述として、または同じオルタネートグループもしくはスイッチグループ内のトラック/サブトラックの差別化基準として使用すべき属性のリストである。
【0147】
使用され得る記述属性の例には以下が含まれる。
【表12】
【0148】
使用され得る差別化属性の例には以下が含まれる。
【表13】
トラック・ヘッダ・ボックス内の持続期間で割ったサブトラック内のサンプルの数。
【0149】
オルタネートサブトラック選択ボックス(‘asts’)64は、オルタネートグループ識別子を割り当てるのに使用される。このボックス64は任意選択であり、同じオルタネートグループがすべてのサブトラックに適用される場合には、オルタネートサブトラック選択ボックス64を含める必要はない。
【0150】
オルタネートサブトラック選択ボックス
定義:
ボックス型:‘asts’
コンテナ:サブトラック情報ボックス(‘stri’)
必須:いいえ
数量:0または1
【0151】
aligned(8)class AlternateSubTrackSelectionBox extends FullBox(‘asts’,version=O,O){
template int(32)alternate_group=0;
}
【0152】
alternate_groupは、サブトラック・オルタネート・グループ識別子であり、トラックおよび/またはサブトラックのグループまたは集合体を指定する整数である。このフィールドが0、すなわちデフォルト値である場合、またはオルタネートサブトラック選択ボックス64がない場合には、他のトラック/サブトラックに関連する可能性に関する情報がない。
【0153】
このフィールドが0でない場合、それは、相互についてのオルタネートデータを含むトラック/サブトラックでは同じであり、異なるそのようなグループに属するトラック/サブトラックでは異なるはずである。どの時点においても、オルタネートグループ内のただ1つのトラック/サブトラックだけが再生され、またはストリーミングされるはずである。
【0154】
サブトラック定義選択ボックス70においては、個別のサブトラック定義ボックス72、74が割り振られる。これらのボックス72、74は、典型的には、コーデック別のものであり、特定のサブトラックに属するトラックの部分を決定する。複数のサブトラック定義ボックス70が存在する場合には、サブトラック定義の和集合がサブトラックを定義する。
【0155】
以下に、SVCデータおよびMVCデータを参照してサブトラックの定義の異なる実施形態を開示する。サブトラックへと編成され得るメディアデータを生成するのに他のコーデックが用いられる場合、定義ボックスは、それらのコーデックのためにしかるべく適合される。定義ボックスの基本的な目的は、サブトラックに属するメディアトラックの(1つまたは複数の)部分を識別することである。したがって、コーデック別の識別子を使用することができる。
【0156】
SVC実施形態
SVCサブトラック層ボックス
定義:
ボックス型:‘sstl’
コンテナ:サブトラック定義ボックス(‘strd’)
必須:いいえ
数量:0以上
【0157】
構文:
aligned(8)class SVCSubTrackLayerBox extends FullBox(‘sstl’){
unsigned int(16)item_count;
for(i=0;i<item_count;i++){
unsigned int(3)DependencyId;
unsigned int(4)QualityId;
unsigned int(3)TemporalId;
unsigned int(6)reserved;
}
}
【0158】
依存関係識別子、品質識別子および時間識別子のトリプレット(DQT)のリストは、サブトラックに属するメディアトラックの部分を指定する。依存関係識別子、品質識別子および時間識別子の一意の組合せがSVC層を決定する。したがって、サブトラック層ボックスに記載される各DQTトリプレットが単一のSVC動作点を決定する。異なるDQTトリプレット値の和集合、したがって、SVC層の和集合は、ボックスにより定義されるサブトラックを記述する。
【0159】
item_countは、このボックスに記載されるDQTトリプレットの数をカウントし、依存関係/品質/時間の各識別子は、ネットワーク抽象化層(NAL)ユニットの依存関係/品質/時間識別子の値を示す。
【0160】
SVCサブトラック階層ボックス
定義:
ボックス型:‘stti’
コンテナ:サブトラック定義ボックス(‘strd’)
必須:いいえ
数量:0以上
【0161】
構文:
aligned(8)class SubTrackTierBox extends FullBox(‘stti’){
unsigned int(16)item_count;
for(i=O;i<item_count;i++){
unsigned int(16)tierId;
}
}
【0162】
このボックス内の階層識別子の和集合は、ボックスにより定義されるサブトラックを記述する。この場合の階層はSVC階層である。当分野で公知のように、階層(tier)とは、ビットストリームにおける動作点を表す層の集合である。NALユニットを階層にマップするために、サンプルグループおよびマップグループを使用することができる。サンプルグループはグループ間でのサンプルの分割を行う。しかし、1サンプル内に複数のNALユニットが存在し得るため、マップグループを使用して、1サンプル内のNALユニットを異なるサンプルグループに割り当てることができる。階層は、1つまたは複数のそのようなサンプルグループを含む。
【0163】
item_countは、このサブトラック階層ボックスにおいて記述される階層の数をカウントし、tierIdは、サブトラックに含まれる(1つまたは複数の)階層の識別子を与える。
【0164】
SVCサブトラック・サンプル・グループ・ボックス
定義:
ボックス型:‘stsg’
コンテナ:サブトラック定義ボックス(‘strd’)
必須:いいえ
数量:0以上
【0165】
構文:
aligned(8)class SubTrackSampleGroupBox extends Fullbox(‘stsg’){
unsigned int(16)item_count;
for(i=O;i<item_count;i++){
unsigned int(16)groupId;
}
}
【0166】
この実施形態では、トラックをサブトラックに分割するために、階層ではなくサンプルグループが直接使用される。また、サンプルグループをマップグループと一緒に使用することもできる。
【0167】
item_countは、このサブトラック階層ボックスにおいて記述されるサンプルグループの数をカウントし、groupIdは、グループエントリの識別子を与える。グループ識別子は任意の値であるが、サンプルグループについて一意である。
【0168】
前述の実施形態は、どのようにしてSVCサブトラックを定義することができるかの例である。これらの実施形態のいずれも、メディア・コンテナ・ファイル1において使用することができる。
【0169】
メディア・コンテナ・ファイル1において階層またはエクストラクタを使用すると、SVCデータについての別の解決策が可能になる。階層のグループ化がSVCファイル形式で実行される[3]。コンテンツに基づいて階層をグループ化するために、新しいスイッチ・グループ・ボックス(‘swgr’)が、階層の1次定義に加えられる。そのような場合には、階層、すなわち、同じコンテンツグループに属する動作点の集合間の切換えが許容される。異なるコンテンツグループに属する階層間の切換えは許容されない。この代替の解決策ではサブトラックを定義する必要がない。代わりに、階層定義を変更する。この解決策の欠点は、明示的なサブトラックを使用する場合よりも汎用性が低いことである。
【0170】
スイッチ・グループ・ボックス
定義:
ボックス型:‘swgr’
コンテナ:スケーラブル・グループ・エントリ
必須:いいえ
数量:0または1
【0171】
構文:
aligned(8)class SwitchGroupBox extends Box(‘swgr’){
unsigned int(32)content_group=O;
}
【0172】
content_groupは、同じコンテンツを有する階層のグループまたは集合体を指定する整数である。このフィールドが0であり、またはスイッチ・グループ・ボックスがない場合には、トラックはデフォルトでコンテンツグループ0に属する。切換えは、同じコンテンツグループに属する階層間では行われ得るが、異なるグループに属する階層間では許容されない。コンテンツグループは、好ましくは、1つのメンバのみを有する。よって、content_groupは、この場合には、一実施形態によるサブトラックに割り当てられ得る選択情報の一例である。
【0173】
スイッチ・グループ・ボックスは任意選択であり、階層の1次定義に存在する。スイッチ・グループ・ボックスは、以下の例に従ってスケーラブル・グループ・エントリに加えることができる。
【0174】
aligned(8)class ScalableGroupEntry extends VisualSampleGroupEntry(‘scif’){
unsigned int(8)groupId;
unsigned int(8)primary_groupId;
unsigned int(1)is_tier_IDR;
unsigned int(1)noInterLayerPredFlag;
unsigned int(1)useRefBasePicFlag;
unsigned int(1)storeBaseRepFlag;
unsigned int(1)is_tl_switching_point;
unsigned int(3)reservered=0;
unsigned int(8)tl_switching_distance;
【0175】
if(groupId==primary_groupId)//階層の1次定義
{
TierInfoBox();//必須
SVCDependencyRangeBox();//必須
SVCPriorityRangeBox()//必須
TierBitRateBox();//任意選択
RectRegionBox();//任意選択
BufferingBox();//任意選択
TierDependencyBox();//任意選択
InitialParameterSetBox();//任意選択
IroiInfoBox();//任意選択
ProtectionSchemeInfoBox();//任意選択
TranscodingInfoBox();//任意選択
SwitchGroupBox();//任意選択
}
}
【0176】
MVC実施形態
MVCサブトラック・ビュー・ボックス
定義:
ボックス型:‘mstv’
コンテナ:サブトラック定義ボックス(‘strd’)
必須:いいえ
数量:0以上
【0177】
構文:
aligned(8)class MVCSubTrackViewBox extends FullBox(‘mstv’){
unsigned int(16)item_count;
for(i=O;i<item_count;i++){
unsigned int(10)ViewId;
unsigned int(3)TemporalId;
unsigned int(2)reserved;
}
}
【0178】
ビュー識別子と時間識別子との対のリストは、サブトラックに属するトラックの部分を指定する。ビューと時間識別子との組合せがMVC層を決定する。したがって、MVCサブトラック・ビュー・ボックスに記載されるそのような各識別子対が単一のMVC動作点を決定する。識別子値の異なる対の和集合、したがって、特定の時間分解能におけるMVCビューの和集合が、このボックスにより定義されるサブトラックを記述する。
【0179】
item_countは、ボックスに記載されるビュー識別子と時間識別子の対の数をカウントし、ビュー/時間識別子はMVC NALユニットヘッダ内の識別子値を示す。
【0180】
代替の実施形態では、MVCサブトラック・ビュー・ボックスは、ビュー識別子だけを記載し、時間識別子は記載しない。その場合、サブトラックの定義は、指定されるビュー識別子を有するすべてのMVC層を含む。
【0181】
MVCサブトラック階層ボックス
定義:
ボックス型:‘stti’
コンテナ:サブトラック定義ボックス(‘strd’)
必須:いいえ
数量:0以上
【0182】
構文:
aligned(8)class SubTrackTierBox extends FullBox(‘stti’){
unsigned int(16)item_count;
for(i=O;i<item_count;i++){
unsigned int(16)tierId;
}
}
【0183】
このボックス内の階層識別子の和集合は、ボックスにより定義されるサブトラックを記述する。この場合の階層はMVC階層である。
【0184】
item_countは、このサブトラック階層ボックスにおいて記述される階層の数をカウントし、tierIdは、サブトラックに含まれる(1つまたは複数の)階層の識別子を与える。
【0185】
MVCサブトラック・マルチビュー・グループ・ボックス
定義:
ボックス型:‘stmg’
コンテナ:サブトラック定義ボックス(‘strd’)
必須:いいえ
数量:0以上
【0186】
構文:
aligned(8)class MVCSubTRckMultiviewGroupBox extends FullBox(‘stmg’){
unsigned int(16)item_count;
for(i=O;i<item_count;i++){
unsigned int(16)MultiviewGroupId;
}
}
【0187】
ボックス内のマルチビューグループ識別子の和集合は、ボックスにより定義されるサブトラックを記述する。item_countは、ボックスにおいて記述されるマルチビューグループの数をカウントし、マルチビューグループ識別子は、サブトラックに含まれる(1つまたは複数の)マルチビューグループの識別子を与える。マルチビューグループ識別子は、好ましくは、MVCファイル形式で定義されたマルチビューグループの識別子である。
【0188】
MVCサブトラック・サンプル・グループ・ボックス
定義:
ボックス型:‘stsg’
コンテナ:サブトラック定義ボックス(‘strd’)
必須:いいえ
数量:0以上
【0189】
構文:
aligned(8)class SubTrackSampleGroupBox extends Fullbox(‘stsg’){
unsigned int(16)item_count;
for(i=0;i<item_count;i++){
unsigned int(16)groupId;
}
}
【0190】
この実施形態では、トラックをサブトラックに分割するのに、階層の代わりにサンプルグループが直接使用される。またサンプルグループをマップグループと一緒に使用することもできる。
【0191】
item_countは、このサブトラック階層ボックスにおいて記述されるサンプルグループの数をカウントし、groupIdは、グループエントリの識別子を与える。グループ識別子は任意の値であるが、サンプルグループについて一意である。
【0192】
前述の実施形態は、どのようにしてMVCサブトラックを定義することができるかの例である。これらの実施形態のいずれもメディア・コンテナ・ファイル1において使用することができる。
【0193】
メディア・コンテナ・ファイル1において階層またはエクストラクタを使用すると、MVCデータのための代替の解決策が可能になる。階層のグループ化がMVCファイル形式で行われる。コンテンツに基づいて階層をグループ化するために、階層の1次定義に新しいスイッチ・グループ・ボックス(‘swgr’)が加えられる。そのような場合には、階層、すなわち、同じコンテンツグループに属する動作点の集合間の切換えが許容される。異なるコンテンツグループに属する階層間の切換えは許容されない。この代替の解決策ではサブトラックを定義する必要がない。代わりに、階層定義を変更する。この解決策の欠点は、明示的なサブトラックを使用する場合よりも汎用性が低いことである。
【0194】
スイッチ・グループ・ボックス
定義:
ボックス型:‘swgr’
コンテナ:マルチビュー・グループ・エントリ
必須:いいえ
数量:0または1
【0195】
構文:
aligned(8)class SwitchGroupBox extends Box(‘swgr’){
unsigned int(32)content_group=O;
}
【0196】
content_groupは、同じコンテンツを有する階層のグループまたは集合体を指定する整数である。このフィールドが0であり、またはスイッチ・グループ・ボックスがない場合には、トラックはデフォルトでコンテンツグループ0に属する。切換えは、同じコンテンツグループに属する階層間では実行され得るが、異なるグループに属する階層間では許容されない。コンテンツグループは、好ましくは、1つのメンバだけを有する。よって、content_groupは、この場合は、一実施形態によるサブトラックに割り当てられ得る選択情報の一例である。
【0197】
スイッチ・グループ・ボックスは任意選択であり、階層の1次定義に存在する。スイッチ・グループ・ボックスは、以下の例に従ってスケーラブル・グループ・エントリに加えることができる。
【0198】
aligned(8)class MultiviewGroupEntry extends VisualSampleGroupEntry(‘scif’){
unsigned int(8)groupId;
unsigned int(8)primary_groupId;
unsigned int(4)reserved=O;
unsigned int(1)is_tl_switching_point;
unsigned int(3)reservered=O;
unsigned int(8)tl_switching_distance;
【0199】
if(groupId==primary_groupId)//階層の1次定義
{
ViewIdentifierBox();//必須
TierInfoBox();//必須
TierDependencyBox();//必須
SVCPriorityRangeBox();//必須
TierBitRateBox();//任意選択
BufferingBox();//任意選択
InitialParameterSetBox();//任意選択
ProtectionSchemeInfoBox();//任意選択
ViewPriorityBox();//任意選択
SwitchGroupBox();//任意選択
}
}
【0200】
メディアデータを定義し、メディアデータを含み、サブトラックおよびオルタネート/スイッチグループ識別子を識別する異なるボックスへのメディア・コンテナ・ファイルの前述の編成は、個別の実施の形態とみなすべきである。前述のメディアデータおよび記述情報(メタデータ)の別の編成を、代替として、別の実施形態において使用することもできる。
【0201】
図9は、メディア・コンテナ・ファイル1を生成し、または使用する当事者を示す通信ネットワークの図式的概要である。メディア・コンテンツ・サーバ100は、メディアデータを受信し、またはこれにアクセスし、メディア・コンテナ・ファイル1を構築するコンテンツ提供者または作成者を表す。メディア・コンテナ・ファイル1のコピーが、図において移動端末で表される異なるクライアント300、310、320に送信(マルチキャスト)されるメディアを含むデータパケットをコンパイルするためのメディアセッションにおいてメディア・コンテナ・ファイル1を使用するメディア処理サーバ200に送信される。通信ネットワークは、有利には、ネットワーク事業者を有するいわゆる専有ネットワークとすることができる。そのような通信ネットワークの一例が、携帯電話に通信サービスを提供する、無線の電波ベースの通信ネットワークである。
【0202】
図において、メディア・コンテンツ・サーバ100とメディア処理サーバ200とは、有利には、通信ネットワークの基地局といった異なるネットワークノードにおいて配置される別々のサーバとして図示されている。代替の手法では、これら2台のサーバ100、200の動作は、実際には、単一のネットワークノードに集中されていてもよく、その場合には、同一のサーバがメディア・コンテンツ・サーバ100とメディア処理サーバ200の動作を行う。
【0203】
図10は、一実施形態によるメディア・コンテンツ・サーバ100の概略的ブロック図である。メディア・コンテンツ・サーバ100は、送信機および受信機110、または一般的な送受信機(TX/RX)を備える。受信機は、特に、入力メディアコンテンツを受信し、メディア・コンテナ・ファイルを求める要求を受信するように構成されている。送信機は、それに応じて特に、メディア・コンテンツ・サーバ100により、そのようなメディア・コンテナ・ファイルを通信ネットワーク内の他のサーバに送信するときに用いられる。図に示す送信機/受信機110は、データの送受信を実施するのに必要とされる機能を備え、この機能は当分野では公知であり、中でも特に、変調器/復調器、符号器/復号器などを含む。データの有線送信の場合には、送信機/受信機110は、送信機/受信機110と同様の送信/受信機能を果たす一般的な入力および出力(I/O)装置で置き換えることができる。
【0204】
メディア・コンテンツ・サーバ100は、メディア・コンテナ・ファイルにおいて編成されるべきメディアデータを提供するように構成されたメディアプロバイダ160を備える。メディアプロバイダ160は、おそらくは送信機110を介し、リモートであるが接続されたメディアソースまたはエンジン400、410から、実際のメディアデータを取得することができる。あるいは、メディアデータは、事前にメディア・コンテンツ・サーバ100に提供されており、データ記憶170に記憶されている。その場合メディアプロバイダ160は、記憶170から関連するメディアデータを取り出す。別の実施形態では、メディアプロバイダ160は、実際にメディアデータ自体を生成し、したがって、メディア生成および/または記録設備を備える。
【0205】
メディアプロバイダ160からのメディアデータは、図8に示すメディア・データ・ボックス内など、メディア・コンテナ・ファイルにおいてメディアデータを編成するデータオーガナイザ120に送られる。提供され、編成されるメタデータは、前述のようにメディア・コンテナ・ファイル内のメディアトラックにより定義され、個々のサブストリームを定義する複数のデータ部分を含む。
【0206】
メディア・コンテンツ・サーバ100においては、メディア・コンテナ・ファイルにおいてサブトラック情報を提供するために、サブトラック情報プロバイダ140が実施される。このサブトラック情報は、メディアトラックの個々のサブトラックに属する編成されたメディアデータのメディアデータ部分の識別を可能にする。よって、メディアトラックにより定義される複数のサブトラックはそれぞれ、当該サブトラックが適用される関連性のあるメディアデータ部分を識別するための関連付けられたサブトラック情報を含む。
【0207】
また、メディア・コンテンツ・サーバ100は、メディア・コンテナ・ファイル内の少なくとも1つのサブトラックについての選択情報を提供する選択情報プロバイダ130も含む。この選択情報は、前述のようにメディア・コンテナ・ファイルにおいて編成される他のメディアデータに関連して少なくとも1つのサブトラックにより定義されるメディアデータ部分の選択的処理を定義する。
【0208】
選択情報プロバイダ130は、任意選択で、メディア・コンテナ・ファイル内の少なくとも1つのサブトラックにサブトラック・オルタネート・グループ識別子を提供するように実施されるオルタネートグループ識別子プロバイダ132を含む。そのような場合には、このオルタネートグループ識別子はその特定のサブトラックに適用することができ、他方、同じメディアトラックに含まれる他のサブトラックは、独自のオルタネートグループ識別子を有し、または任意選択のトラック選択情報プロバイダ150により完全なメディアトラックに割り当てられるオルタネートグループ識別子を共用または継承する。
【0209】
選択情報プロバイダ130の任意選択のスイッチグループ識別子プロバイダ134は、メディア・コンテナ・ファイル内の少なくとも1つのサブトラックにサブトラック・スイッチ・グループ識別子を提供するように実施される。スイッチグループ識別子プロバイダ134は、メディアトラックのすべてのサブトラックまたはそのごく一部分だけに個々のスイッチグループ識別子を割り当てることができる。一部分だけの場合には、スイッチグループ識別子を割り当てられないサブトラックは、好ましくは、トラック選択情報プロバイダ150により完全なメディアトラックに割り当てられるスイッチグループ識別子を使用する。
【0210】
選択情報の値を定義するのに使用される選択情報プロバイダ130への入力は、好ましくは、オルタネートおよび/またはスイッチグループ識別子、どのサブトラックをメディア・コンテナ・ファイル内の他のサブトラック/トラックの代替とすべきか、およびどのサブトラック/トラックの間で切換えを許容し、または妨げるべきかを知るコンテンツ作成者からもたらされ得る。あるいは、選択情報プロバイダ130は、提供されるメディアデータの情報に基づき、これらの値を自動的に決定することもできるはずである。例えば、選択情報プロバイダは、通常のコンテンツとプレミアム付きのコンテンツとの切換え、異なるコーデックにより符号化されたメディアデータ間の切換え、異なるオーディオ言語を有するメディアデータ間の切換えは阻止するが、例えば、異なる品質レベルで利用可能なコンテンツ間の切換えは許容するように事前に構成することができる。
【0211】
メディア・コンテンツ・サーバ100は、有利には、SVCデータおよびMVCデータを処理するのに適する。その場合、サブトラック情報プロバイダ140は、コンテンツのために、ベース層と拡張層またはベースビューと追加ビューに対応する異なるサブトラックへと編成されるべきメディアデータ部分を定義するサブトラック情報を提供するように構成される。
【0212】
トラック選択情報プロバイダ150は、有利には、完全なメディアトラックに適用することができ、前述のようにメディアトラックが複数のサブトラックを含むことを示す0などの事前定義の値を有する、オルタネートおよび/またはスイッチグループ識別子などのトラック選択情報を割り当てることができる。
【0213】
メディア・コンテンツ・サーバ100のユニット110〜160は、ソフトウェア、ハードウェア、またはそれらの組合せとして実施され、または提供され得る。ソフトウェアベースの実施態様の場合には、メディア・コンテンツ・サーバ100またはその一部を実施するコンピュータプログラム製品は、汎用の、または特別に適合されたコンピュータ、プロセッサ、またはマイクロプロセッサ上で実行されるソフトウェアまたはコンピュータプログラムを含む。ソフトウェアは、図10に示すコンピュータ・プログラム・コード要素またはソフトウェアコード部分を含む。プログラムは、全部または一部が、磁気ディスク、CD−ROM、DVDディスク、USBメモリ、ハードディスク、光磁気メモリといった1つまたは複数の適切なコンピュータ可読媒体またはデータ記憶手段に、RAMまたは揮発性メモリに、ROMまたはフラッシュメモリに、ファームウェアとして、あるいはデータサーバ上で記憶され得る。
【0214】
ユニット110〜170はすべて、通信システムの単一のネットワークノード内のメディア・コンテンツ・サーバ100において実施され得る。あるいは、分散型の実施態様も可能であり、本発明の範囲内である。そのような場合には、メディア・コンテンツ・サーバ100の異なるユニット110〜170は異なるネットワークノードに配置され得るが、にもかかわらず、前述のようにそれぞれの目的の動作を実行する。
【0215】
図11は、メディア・コンテナ・ファイルを利用する一実施形態によるメディア処理の方法を示す流れ図である。この処理は、有利には、図9に示すメディア・コンテンツ・サーバからメディア・コンテナ・ファイルを受信する通信ネットワーク内のメディア処理サーバにより実行され得る。
【0216】
方法はステップS40において開始し、そこで本明細書において開示するメディア・コンテナ・ファイルが提供される。ステップS40のファイル提供は、様々な実施形態に従って実行することができる。例えば、メディア・コンテナ・ファイルは、メディア処理サーバに有線または無線で接続されたメディア・コンテンツ・サーバから受信される。あるいは、メディア・コンテナ・ファイルは、リモートのメディア・コンテンツ・サーバから事前に受信しておくこともでき、したがって、ステップS40でデータ記憶から取り出される。さらに別の実施形態において、前述のメディア・コンテンツ・サーバおよびメディア処理サーバが共通のメディアサーバへと編成されているときには、メディア・コンテナ・ファイルはステップS40で実際に作成される。
【0217】
次のステップS41では、メディア・コンテナ・ファイルにおいて定義された複数のサブトラックのうちのサブトラックを選択する。サブトラック選択は、サブトラックに割り当てられ、メディア・コンテナ・ファイルに存在するオルタネートグループ識別子に基づいて行われる。この場合、メディア・コンテナ・ファイルは、結果的に、同じオルタネートグループ識別子の値が割り当てられる複数のトラック/サブトラックを含むオルタネートグループを定義する。当該の複数のサブトラックまたは(1つまたは複数の)サブトラックおよび(1つまたは複数の)トラックは、結果的に、メディアセッションにおいて使用すべき代替を構成することになる。選択ステップS41は、メディアセッションのセットアップと関連して実行される。
【0218】
次のステップS42では、サブトラックにより定義されるメディア・コンテナ・ファイルからメディアデータ部分を取り出す。このデータ取り出しは、メディア・コンテナ・ファイルに含まれ、選択されたサブトラックに対応するメディア・コンテナ・ファイル内で編成されたメディアデータのメディアデータ部分の識別を可能にするサブトラック情報に基づいて行われる。取り出されたメディアデータはステップS42でデータパケットへとコンパイルされ、ステップS43でメディアセッションの間に少なくとも1つのクライアントまたはユーザ端末に送信される。
【0219】
次いで方法は終了する。
【0220】
図12は、別の態様によるメディア処理の方法を示す流れ図である。この場合、メディアセッションはすでに開始されており、トラックまたはサブトラックが、メディアセッションのセットアップに関連してすでに選択されている。この場合、方法は、図11のステップS43から続き、次のステップS50では進行中のメディアセッションの間にストリームを切換える。ステップS50は、結果的に、サブトラックに割り当てられたスイッチグループ識別子に基づき、メディア・コンテナ・ファイルにおいて定義されたサブトラックを選択することを伴う。選択されるサブトラックは、メディアセッションをセットアップするときに最初に選択されたトラックまたはサブトラックと同じオルタネートグループに属する。加えて、選択されるサブトラックは、このトラックまたはサブトラックと同じスイッチグループ識別子の値も有し、よって同じスイッチグループにも属する。選択されるサブトラックは、好ましくは、元のトラックまたはサブトラックと同じコンテンツに関連し、例えば、SVCデータの場合には異なる層に、またはMVCデータの場合には異なるビューに関連し得る。
【0221】
ステップS50のストリーム切換えは、様々な実施形態に従ってトリガすることができる。例えば、データパケットが送信されるユーザ端末から発せられる要求または入力メッセージが、切換え基準をトリガすることが可能である。あるいは、メディア処理サーバおよび/またはユーザ端末により推定される信号品質または強度情報を使用して、ステップS50でストリーム切換えをトリガすることもできる。実際には、当分野で公知の、トラックの切換えをトリガするための任意の手順を使用し、各実施形態に従って、あるサブトラックから別のサブトラックに、トラックからサブトラックに、または実際にサブトラックからトラックに、あるいは先行技術に従ってあるトラックから別のトラックに切換えることができる。また、あるSVC層から別の層に、またはあるMVCから別のビューに切換えるための任意の公知の手順を使用することもできる。
【0222】
次のステップS51では、メディア・コンテナ・ファイルから、選択されたサブトラックに対応するメディアデータ部分を取り出す。この取り出しは、選択されたサブトラックと関連付けられ、メディア・コンテナ・ファイルに含まれるサブトラック情報に基づいて行われる。また、取り出されたメディアデータはデータパケットへと編成される。このステップS51は図11のステップS42と同様に実行される。次のステップS52では、データパケットを、進行中のメディアセッションに関与する少なくとも1つのユーザ端末に送信する。次いで方法は終了する。
【0223】
図13は、メディア処理サーバ200の一実施形態を示す概略的ブロック図である。メディア処理サーバ200は、外部のユニットとの通信を実行するように構成された送信機/受信機210を備える。受信機210は、特に、メディア・コンテナ・ファイルがメディア処理サーバ200のコンテナプロバイダ220により生成されるのでない限り、メディア・コンテンツ・サーバからメディア・コンテナ・ファイルを受信するように構成される。送信機210は、特に、メディア・コンテナ・ファイルからフェッチされたメディアデータを運ぶデータパケットを、メディアセッションにおいて1つまたは複数のユーザ端末に送信するように構成される。
【0224】
コンテナプロバイダ220は、メディア・コンテナ・ファイルが事前に記憶されている受信機210またはデータ記憶250からメディア・コンテナ・ファイルを提供する。あるいは、コンテナプロバイダ220は、メディア・コンテナ・ファイルを作成するために、上記考察され、図10に示すメディア・コンテンツ・サーバの各機能を実際に構成することもできる。
【0225】
メディア処理サーバ200のトラックセレクタ230は、メディア・コンテナ・ファイル内のトラックおよびサブトラックに割り当てられたオルタネートグループ識別子を使用して、メディアセッションをセットアップするときにどのトラックまたはサブトラックを使用すべきか選択する。好ましい実施形態では、トラックセレクタ230は、同じコンテンツに関連し、先に開示のメディア・コンテナ・ファイルにおいて定義されている複数のサブトラックの中から1つのサブトラックを選択する。トラックセレクタ230は、メディアセッションのセットアップと関連して動作可能であり、それによって、メディアセッションを開始に用いる初期トラック/サブトラックを選択する。
【0226】
パケットコンパイラ240は、トラックセレクタ230により選択されたトラック/サブトラックに対応するメディアデータを取り出す。好ましい実施形態では、サブトラックが選択されるときに、選択されるサブトラックと関連付けられ、メディア・コンテナ・ファイルに含まれるサブトラック情報を使用して、取り出すべきメディア・コンテナ・ファイル内のメディアデータの部分が識別される。メディアデータはデータパケットへと編成、コンパイルされ、データパケットは送信機210により少なくとも1つのユーザ端末に送信される。
【0227】
進行中のメディアセッションの間に、トラックセレクタ230は、初期のサブトラックまたはトラックと同じコンテンツに関連する別のサブトラックまたはトラックに切り換わることができる。トラックセレクタ230は、そのような切換えを、前述のようにメディア・コンテナ・ファイル内のトラックおよびサブトラックに割り当てられたスイッチグループ識別子に基づいて行う。次いでパケットコンパイラ240は、新しく選択されたサブトラックまたはトラックと関連付けられたメディアデータを取り出し、当該メディアデータを、送信機210により送信されるデータパケットへとコンパイルする。
【0228】
メディア処理サーバ200のユニット210〜240は、ソフトウェア、ハードウェア、またはその組合せとして実施され、または提供され得る。ソフトウェアベースの実施態様の場合には、メディア・コンテンツ・サーバ200またはその一部を実施するコンピュータプログラム製品は、汎用の、または特別に適合されたコンピュータ、プロセッサ、またはマイクロプロセッサ上で実行されるソフトウェアまたはコンピュータプログラムを含む。ソフトウェアは、図13に示すコンピュータ・プログラム・コード要素またはソフトウェアコード部分を含む。プログラムは、全部または一部が、磁気ディスク、CD−ROM、DVDディスク、USBメモリ、ハードディスク、光磁気メモリといった1つまたは複数の適切なコンピュータ可読媒体またはデータ記憶手段に、RAMまたは揮発性メモリに、ROMまたはフラッシュメモリに、ファームウェアとして、あるいはデータサーバ上で記憶され得る。
【0229】
ユニット210〜250はすべて、通信システムの単一のネットワークノード内のメディア処理サーバ200において実施され得る。あるいは、分散型の実施態様も可能であり、本発明の範囲内である。そのような場合には、メディア処理サーバ200の異なるユニット210〜250は異なるネットワークノードに配置され得るが、にもかかわらず、前述のようにそれぞれの目的の動作を実行する。
【0230】
前述の各実施形態は、本発明の少数の説明例にすぎないものと理解すべきである。各実施形態には、本発明の範囲を逸脱することなく、様々な改変、組合せおよび変更が加えられ得ることを当業者は理解するであろう。特に、異なる実施形態における異なる部分の解決策を、技術的に可能な場合には、他の構成として組み合わせることができる。しかし、本発明の範囲は、添付の特許請求の範囲により定義されるものである。
【0231】
参照文献
[1]ISO/IEC 14496−12:2008,Information technology−Coding of audio−visual objects−Part 12:ISO base media file format
[2]ISO/IEC 14496−15:2004,Information technology−Coding of audio−visual objects−Part 15:Advanced Video Coding(AVC)file format
[3]ISO/IEC 14496−15:2004/Amd 2:2008,Information technology−Coding of audio−visual objects−Part 15:Advanced Video Coding(AVC)file format;Amendment 2:File format support for Scalable Video Coding(SVC)
[4]ISO/IEC 14496−15:2004/FPDAmd 3,Information technology−Coding of audio−visual objects−Part 15:Advanced Video Coding(AVC)file format;Amendment 3:File format support for Multiview Video Coding
[5]ISO/IEC 14496−10:2009,Information technology−Coding of audio−visual objects−Part 10:Advanced Video Coding
【技術分野】
【0001】
本発明は、一般に、メディアおよびマルチメディアの管理に関し、詳細には、そのようなメディアまたはマルチメディアコンテンツを含むメディア・コンテナ・ファイルの作成および使用に関する。
【背景技術】
【0002】
ここ数年、様々なネットワーク上でのクライアントへのメディアおよびマルチメディアの提供がすさまじい勢いで増加している。今日、インターネットは、多数のユーザにより、メディアサーバからの、ビデオおよびオーディオのストリームやファイルなどとしてのメディアにアクセスし、ダウンロードまたはストリーミングするために使用されている。
【0003】
様々な有線および無線の通信ネットワークにおけるメディア提供に対する需要を踏まえ、要求側クライアントにメディアコンテンツを提供するために無線ネットワークにおいて利用できるストリーミングおよびダウンロードサーバの開発研究が進められている。そこには透過的で柔軟性のあるストリーミング/ダウンロードサーバに向かおうとする一般的傾向があり、これは、サーバは基本的に、様々なメディア管理機能を果たす多数の「標準」のモジュールまたはプログラムからなるべきであることを示唆するものである。その場合、これらの機能への入力メディアコンテンツは、各モジュール/プログラムがコンテンツをどのように処理すべきかの命令と一緒に提供される。これは、サーバにおける定められた事前定義のメディア処理の使用と比べて、より柔軟性のあるメディア提供を実現する。
【0004】
MPEG(Moving Picture Experts Group)は、ストリーミングおよびダウンロードサーバの開発における傾向に沿ったファイル形式、すなわち、ISOベース・メディア・ファイル形式(ISO base media file format)[1]を標準化している。ISOベース・メディア・ファイル形式は、AVC(Advanced Video Coding)ファイル形式[2]、SVC(Scalable Video Coding)ファイル形式[3]、MVC(Multiview Video Coding)ファイル形式[4]といった、いくつかのより具体的なファイル形式のベースとして使用される、マルチメディア表現の記憶および伝送のための一般的なファイル形式を指定している。
【0005】
ISOベース・メディア・ファイル形式は、トラックをオルタネートグループにグループ化することができる。同じオルタネートグループに属するトラックをオルタネートトラックといい、相互に対する代替トラックとして使用される。オルタネートトラックは、例えば、同じコンテンツを表すことができるが、品質、コーデック、言語などに関しては異なる。完全な表現を提供するには、メディアセッションにおいて1度に各オルタネートグループからただ1つのトラックを処理すべきである。
【0006】
また、オルタネートグループに加えて、ISOベース・メディア・ファイル形式はスイッチグループも定義している。オルタネートグループ内のすべてのトラックはメディア選択のための候補であるが、進行中のメディアセッションの間にそれらのトラックの一部を切換えることが妥当でない場合もある。例えば、フレームサイズを保持している間は、異なるビットレートのビデオトラックを切換えることも可能であろうが、異なるフレームサイズ、異なるビデオコードまたは異なるオーディオ言語のトラックの切換えは許容しないはずである。オルタネートグループとスイッチグループとの区別は、同じスイッチグループ内のトラックは、進行中のメディアセッションの間でさえも切換えの候補であるが、同じオルタネートグループ内にあるが異なるスイッチグループに含まれるトラックは、進行中のメディアセッションの間に切換えられるべきではないというものである。
【0007】
先行技術の、トラック内のメディアデータの編成、およびそのようなトラックの異なるオルタネートグループとスイッチグループとへの割り当ては、大部分の種類のメディアでうまく機能する。しかし、ある特定の種類のメディア、例えばSVCやMVCとの接続に際しては問題が発生する[5]。
【0008】
SVCは、定評のあるH.264/AVCビデオ符号化標準の標準化されたスケーラブルな拡張である[5]。SVCは、ビデオの複数の表現を単一のビットストリームにおいて符号化することを可能にする。特定の空間分解能、品質およびフレーム率におけるそのようなビデオの各符号化表現が層として表される。各層は階層関係を構成し、最低の層がベース層(BL(base layer))を表し、それに続く各層が拡張層(EL)を表す。
【0009】
MVCは、複数のビューを一緒に符号化することを目標とするAVC/SVC標準の拡張である。複数のビューとは、この状況においては、異なるカメラで撮影される同じ場面を表すビデオシーケンスである。MVCビューの構造はSVC層の構造と類似するが、各MVCビューは普通、同様の分解能、品質およびフレーム率を有するという違いがある。
【発明の概要】
【発明が解決しようとする課題】
【0010】
ISOベース・メディア・ファイル形式をSVCまたはMVCの符号化コンテンツに適用するとき、各トラックは、同じコンテンツの複数のバージョンを複数の層またはビューとして含むことになる。しかし、オルタネートグループおよびスイッチンググループは、単一トラック専用に設計されている。これは、進行中のメディアセッションの間に、トラックにより定義される異なる層またはビューの間で切換えが行われ得ることを意味する。というのは、これらの層またはビューは、本来、同じオルタネートグループおよび同じスイッチグループに属するからである。しかし、層またはビューを動的に切換えることがきわめて望ましくない状況が存在する。例えば、ベース層は無料とすることができ、広告を含むが、拡張層は、コンテンツのプレミアム付きの有料の広告なしのバージョンを含む。したがって、広告が表示されないように料金を支払っているユーザについては、プレミアム付きコンテンツから無料コンテンツに意図せずに切り換わることは望ましくない。
【0011】
よって、SVCやMVCといった、同じコンテンツの複数のバージョンを搬送する種類のメディアに、オルタネートグループおよび/またはスイッチグループの概念を適用する解決策が求められている。
【0012】
一般的な目的は、メディアセッションにおいて使用することのできるメディア・コンテナ・ファイルを提供することである。
【0013】
個別の目的は、個々のサブストリームを構成する複数のメディアデータ部分を含むメディアデータのために使用することのできるメディア・コンテナ・ファイルを提供することである。
【課題を解決するための手段】
【0014】
上記その他の目的は、本明細書で開示する実施形態により達成される。
【0015】
簡単にいうと、メディア・コンテナ・ファイルが、メディア・コンテナ・ファイル内のメディアトラックにより定義されるメディアデータを編成することにより生成される。メディアデータは、同じメディアコンテンツの異なるバージョンに関連するという点において異なるサブストリームを構成する部分を含む。例えば、メディアデータ部分は、SVCデータの異なる層またはMVCデータの異なるビューに関連するものとすることができる。
【0016】
サブトラック情報が、メディアトラックにより定義されるサブトラックごとに、メディア・コンテナ・ファイルにおいて提供される。サブトラック情報は、当該サブトラックに属する、または当該サブトラックにより定義されるメディア・コンテナ・ファイル内のメディアデータ部分を識別する。サブトラックの少なくとも1つに選択情報が割り当てられ、選択情報はメディア・コンテナ・ファイルに含まれる。選択情報は、メディア・コンテナ・ファイルにおいて編成され、当該サブトラックのメディアデータ部分と同じコンテンツに関連する他のメディアデータに関連してサブトラックにより定義されるメディアデータ部分の選択的処理を定義する。
【0017】
また一態様は、そのようなメディア・コンテナ・ファイルを生成するように設計されたメディアコンテンツ・サーバにも関するものである。メディア・コンテンツ・サーバは、メディア・コンテナ・ファイル内のメディアデータを編成するためのデータオーガナイザを備える。サブトラック情報プロバイダはメディア・コンテナ・ファイルにおいてサブトラック情報を提供し、選択情報プロバイダはメディア・コンテナ・ファイルにおいて選択情報を提供する。
【0018】
別の態様は、個々のサブストリームを構成するメディアデータ部分を含むメディア・コンテナ・ファイルを定義する。メディア・コンテナ・ファイルにはメディアデータを定義するためにメディアトラックが含まれる。メディア・コンテナ・ファイルは、さらに、メディアトラックにおいて定義されるサブトラックごとに、当該サブトラックに属するメディアデータのメディアデータ部分を識別するサブトラック情報も含む。メディア・コンテナ・ファイルには、メディア・コンテナ・ファイルにおいて編成され、当該メディアデータ部分と同じメディアコンテンツに関連する他のメディアデータに関連して、少なくとも1つのサブトラックが当該サブトラックと関連付けられるメディアデータ部分の選択的処理を定義するために、選択情報が含まれる。
【0019】
一態様によるメディア処理の方法は、選択情報としてサブトラックに割り当てられるオルタネートグループ識別子に基づき、メディアセッションのセットアップと関連してサブトラックを選択することにより、メディア・コンテナ・ファイルを使用する。選択されるサブトラックと関連付けられるメタデータが、選択されるサブトラックに割り当てられるサブトラック情報に基づいてメディア・コンテナ・ファイルの中から取り出される。取り出されるメディアデータはデータパケットへとコンパイルされメディアセッションの間に少なくとも1つのユーザ端末に送信される。
【0020】
メディア処理の方法の別の態様は、進行中のメディアセッションの間に、現在のトラックまたはサブトラックから別のサブトラックに切り換わる。切換えは、選択情報としてサブトラックに割り当てられるスイッチグループ識別子に基づいて実行され、したがってメディア・コンテナ・ファイル内に存在する。選択されるサブトラックに割り当てられ、メディア・コンテナ・ファイルに含まれるサブトラック情報は、進行中のメディアセッションの間に同じコンテンツに関連するメディアデータの切換えに影響を及ぼすために、サブトラックのメディアデータを取り出し、それを少なくとも1つのユーザ端末に送られるデータパケットへとコンパイルするのに使用される。
【0021】
メディア処理サーバは、一態様によれば、メディア・コンテナ・ファイルを提供するためのコンテナプロバイダを備える。トラックセレクタが、メディアセッションのセットアップと関連してメディア・コンテナ・ファイルにおいて定義されるサブトラックを選択する。トラックセレクタは、メディア・コンテナ・ファイルからの、選択手順においてサブトラックに割り当てられるオルタネートグループ識別子を使用する。パケットコンパイラが、メディア・コンテナ・ファイルの中からサブトラックのメディアデータを取り出し、サブトラックと関連付けられるサブトラック情報に基づき、メディアデータをデータパケットへとコンパイルする。送信機が、メディアセッションの間に、データパケットを少なくとも1つのユーザ端末に送信する。
【0022】
メディア処理サーバの別の態様は、進行中のメディアセッションの間に、同じメディアコンテンツに関連するストリームおよびサブストリームの切換えを実現する。コンテナプロバイダが、少なくとも1つのサブトラックが定義されており、関連付けられるスイッチグループ識別子およびサブトラック情報を含むメディア・コンテナ・ファイルを提供する。トラックセレクタがスイッチグループ識別子を使用して、現在のトラックまたはサブトラックと同じメディアコンテンツに関連するサブトラックを選択する。パケットコンパイラが、サブトラック情報に基づき、選択されるサブトラックのメディアデータを搬送するデータパケットをコンパイルする。データパケットは、メディアデータのストリームまたはサブストリームの切換えに影響を及ぼすために、進行中のメディアセッションの間に、少なくとも1つのユーザ端末に送信される。
【0023】
本発明はそのさらに別の目的および利点と共に、以下の説明を添付の図面と併せて参照することにより最もよく理解することができる。
【図面の簡単な説明】
【0024】
【図1】一実施形態によるメディア・コンテナ・ファイルを生成する方法を示す流れ図である。
【図2】スケーラブルビデオ符号化データの異なる層への編成を示す概略図である。
【図3】スケーラブルビデオ符号化データに適用できる図1の情報提供ステップの一実施形態を示す流れ図である。
【図4】複数のカメラビューを使った場面の記録を概略的に示す図である。
【図5】マルチビュービデオ符号化データの異なるビューへの編成を示す概略図である。
【図6】マルチビュービデオ符号化データに適用できる図1の情報提供ステップの一実施形態を示す流れ図である。
【図7】一実施形態による、図1の生成する方法のさらに別のステップを示す流れ図である。
【図8】一実施形態によるメディア・コンテナ・ファイルを示す概略図である。
【図9】一実施形態による、メディア・コンテナ・ファイルを生成し、使用するサーバを含む通信ネットワークを示す概要図である。
【図10】メディア・コンテンツ・サーバの一実施形態を示す概略的ブロック図である。
【図11】一実施形態によるメディア処理の方法を示す流れ図である。
【図12】一実施形態による、図11のメディア処理の方法のさらに別のステップを示す流れ図である。
【図13】メディア処理サーバの一実施形態を示す概略的ブロック図である。
【発明を実施するための形態】
【0025】
図面全体を通して、同じ参照番号は類似の、または対応する要素に使用される。
【0026】
本発明は、一般に、メディアおよびマルチメディアデータの管理に関し、詳細には、無線ベースの通信ネットワークを含む通信ネットワークにおける、ストリーミングサーバやダウンロードサーバといったメディアサーバと関連したメディア・コンテナ・ファイルの作成および利用に関するものである。メディア・コンテナ・ファイルは、(1つまたは複数の)要求側クライアントに送信するためのメディアコンテンツに加えて、メディアサーバにおいてメディア処理および送信を実行するのに使用される命令も含む。これらの命令は、メディアサーバにより、メディアセッションをセットアップするときのメディアコンテンツの選択および/または進行中のメディアセッションの間のメディア・データ・ストリームの切換えなど、メディアセッションと関連したメディアコンテンツの選択のために使用され得る選択情報を含む。
【0027】
本発明によれば、メディアまたはマルチメディアデータまたはコンテンツとは、データをレンダリングするためにコンテンツ提供者またはサーバによりクライアントに提供され得る任意のデータをいう。典型的な好ましい例には、ビデオデータおよびオーディオデータが含まれる。各実施形態は、それぞれが個々のサブストリームを構成する複数の異なるデータ部分を含むメディアデータとの関連において特に有用である。そのようなメディアデータは、メディア・コンテナ・ファイルの単一のメディアトラックへと編成されるが、SVCにおける層やMVCにおけるビューといった、複数のデータ部分を含む。メディアデータのサブストリーム別のメディアデータ部分への編成は、先行技術の技法、すなわち、先行技術のオータナティブ(alternative)グループおよびスイッチグループを適用するときに問題を生じる。各実施形態の利点をより明確に開示するために、以下でまず先行技術の技法の限界を手短に論じる。
SVCコンテンツクラス
【0028】
SVCは、ビデオコンテンツの複数の表現を単一のビットストリームにおいて符号化することを可能にする。ビデオデータのスケーラビリティは以下の観点において実現することができる。
時間的スケーラビリティ フレーム率はフレームを落とすことにより低減することができる。
空間的スケーラビリティ 各層が異なる空間分解能で符号化される。より高い分解能の予測でより低い分解能のデータを使用することができる。
品質スケーラビリティ 各層が同じ空間分解能で符号化されるが、異なる品質で符号化される。また品質スケーラビリティは、当分野では信号対雑音割り当て(signal−to−noise ration)(SNR)スケーラビリティとも表示される。
【0029】
符号化データ2は異なる層4、5へと分割され、これが図2に概略的に示されている。層4、5は階層関係を構成し、最低の層がベース層4を表し、それに続く各層が拡張層5を表す。図には、層4、5間のこの階層的符号化関係が、拡張層5の(インターまたはP)フレームが、少なくとも一部は、ベース層4の(イントラまたはI/イントラまたはP)フレームに基づいて符号化されるという観点において概略的に示されている。
【0030】
SVCは、同じビデオコンテンツの異なるバージョンまたはクラス、例えば、有料のプレミアム付きバージョン対無料バージョンを表すのに使用することができる。2つのバージョンの違いは、品質に関して、例えば、高忠実度か低忠実度か、分解能関して、例えば、高品位(HD)か標準品位(SD)か、あるいは1080pか720pか、広告関して、例えば、広告およびロゴの空間的挿入の有無などとすることができる。
【0031】
2つのコンテンツクラスは、ベース層(BL)にける無料バージョンと拡張層(EL)におけるプレミアム付きバージョンを伴う1つのSVCトラックにより符号化することができる。しかし、先行技術のスイッチグループ構文は、1トラック内で異なるスイッチグループを割り当てるのに使用することができない。
【0032】
【表1】
【0033】
したがって、先行技術によれば、無料バージョンとプレミアム付きバージョンとの意図しない切換えを防ぐことが不可能である。当然ながらこれは、ビデオに広告が表示されないように追加料金を支払っているユーザには受け入れられない。
MVCビュー
【0034】
MVCは、図4に示すように、場面86の複数のカメラビュー80〜85から取り込まれるビデオデータを一緒に符号化する。図には、場面86の異なる左ビューを取り込む3台のカメラ80〜82が示されており、他方、他の3台のカメラ83〜85は、異なる右場面ビューを取り込むように位置決めされている。ビュー間相関を複数のビューの統合符号化において利用し、それによって、異なるビューを個別に符号化するのに比べてビットレートを低減することができる。図5に、異なるビュー6〜8へと編成されるMVCデータ3の概念を示す。そのような場合には、ビューのうちの1つはベースビュー6であり、他のビューは、追加ビュー7、8と表示され、図に概略的に示すように、ベースビュー6または他の追加ビューとの関連で符号化される。
【0035】
MVCデータは、SVCデータと同様に、先行技術に対して問題を生じる。例えば、1つの左ビューと右ビューの対からのビデオデータがH.263を用いて符号化され、別の左右対がMVCデータとして符号化される事例を想定する。
【0036】
【表2】
【0037】
先行技術によれば、オルタネートグループ識別子およびスイッチグループ識別子がトラックレベルで割り当てられているため、2つの左符号化間または2つの右符号化間でどちらかを表示することは不可能である。この場合、トラック3は、左右両方のビューのビデオデータを含むため、実際には、H.263左ビューと同じオルタネートグループと、H.263右グループと同じオルタネートグループの両方に属するはずである。
【0038】
一見しただけでは、これらの先行技術の問題を、エクストラクタを使って解決しようと試みることも考えられる。エクストラクタは、同じメディア・コンテナ・ファイル内の他のデータを参照する。エクストラクタは、ファイル読取装置により処理されるとき、それが参照するメディアデータで置き換えられる。
【0039】
【表3】
【0040】
この場合には、メディアセッションの間にベース層と拡張層との間で切換えが発生し得るため、上記の問題が存在する。
【0041】
【表4】
【0042】
2つのトラックについて異なるスイッチグループを有する場合でさえも、トラック1においてベース層と拡張層とを切換えることが可能である。
【0043】
【表5】
【0044】
2つのトラックについて異なるスイッチグループを有する場合でさえも、トラック2においてベース層と拡張層とを切換えることが可能である。
【0045】
よって、先行技術の解決策に対する上記の自明の改変のいずれも、ベース層と拡張層との切換えを制御する、例えば、切換えを防ぐという問題を解決することにならない。
【0046】
今日、ベース層への切換えを防ぐことのできる、SVCのための具体的解決策が実際に存在する。スケーラビリティ情報補助拡張標識(supplementary enhancement indicator)(SEI)メッセージ内のlayer_output_flagが一候補である。layer_output_flagが1であることは、現在のスケーラブル層表現についての復号結果の出力が意図されていることを示す。layer_output_flagが0であることは、現在のスケーラブル層表現についての復号結果の出力が意図されていないことを示す。
【0047】
しかし、ベース層についてlayer_output_flagを0に設定することは、ベース層の出力が全く意図されない場合にのみ機能する。異なるコンテンツクラスまたはバージョンを有することの本質は、すべてのクラスが出力のための潜在的な候補となるべきことである。それらのクラスのうちの1つを選択した後でも、クラスの切換えが、例えば制限されるなど、制御可能であるべきである。よって、このようなlayer_output_flagの使用は先行技術の問題を解決することにならない。というのは、その場合実際には、層のうちの1つへのアクセス可能性を制限し、それにより異なる層およびメディアコンテンツクラスを有するという利点を弱めることになるからである。加えて、layer_output_flagは、ISOベース・メディア・ファイル形式のファイル形式においては利用できず、むしろ、実際のビットストリームのオンザフライの検査を必要とし、これはメディアセッションにおいては煩雑である。
【0048】
よって、例えば、SVCデータやMVCデータのような異なるサブストリームへと編成されるメディアコンテンツの種類のためにもオルタネートグループおよびスイッチグループの使用を可能にする解決策が求められている。というのは、先行技術の技法はそのような解決策を実現するのに使用し得ないからである。
【0049】
図1は、一実施形態によるメディア・コンテナ・ファイルを生成する方法の流れ図である。このメディア・コンテナ・ファイルは、メディアコンテンツを提供し、メディアデータを送信可能なデータパケットに形成するためのメディアセッションの間にメディアサーバにより使用され得る完全な入力パッケージとみなすことができる。よって、メディア・コンテナ・ファイルは、好ましくは、メディアコンテンツ自体に加えて、メディアサーバがメディアセッションの間に処理を実行し、メディアコンテンツの送信を可能にするために必要とされる情報および命令も含む。
【0050】
方法は任意選択のステップS1において開始し、そこでメディア・コンテナ・ファイルに含まれるべきメディアデータが提供される。各実施形態によれば、メディアデータは、メディアコンテンツの個々のサブストリームを構成する、複数の、すなわち少なくとも2つのデータ部分を含む。これら複数のメディアデータ部分は、同じメディアコンテンツの異なるバージョンを構成するものとみなすことができる。例えば、SVCなどの階層化メディアは、典型的には階層的順序で複数の層を含む。ただ1つの層、すなわちベース層を処理すること、またはさらに拡張層を処理することは、ほとんどの場合、同じメディアコンテンツを生成するが、例えば、品質、分解能などに関して異なるクラスまたはバージョンとして生成する。しかし、各代替層を処理するときに提供される実際のメディアコンテンツは、異なるバージョンの形をとり得るとはいえ、おおむね同じである。同様の状況が、各メディアデータ部分が異なるカメラビューに関連するMVCについても発生する。SVCおよびMVCは、ステップS1で提供され得るメディアデータの好ましい例であるが、各実施形態はそれだけに限定されない。それとは全く対照的に、スケーラブル・オーディオ・データを含む、層やビューといった異なるメディアデータ部分へと編成され得る他の任意の種類のメディアデータを使用することができる。
【0051】
本発明においては、たとえ1つの層またはビューが1つのメディアデータ部分とみなされ得る場合でさえも、相互関係を符号化するために、別の層またはビューからの符号化データが復号できることが必要とされ得ることを見越している。例えば、拡張層がベース層および/または他の(1つまたは複数の)拡張層と関連して符号化されてもよく、追加ビューがベースビューおよび/または他の(1つまたは複数の)追加層と関連して符号化されてもよい。よって、データパケットの復号可能なストリームを提供するという観点で層またはビューを処理することは、他の層またはビューからのデータを必要とし得る。
【0052】
ステップS1のメディアデータの提供は様々な実施形態に従って実施され得る。メディアデータは、通信システム内の他の何らかのサーバまたは装置により生成または収集され、メディア・コンテナ・ファイルの生成を実行するメディア・コンテンツ・サーバに送信されていてもよい。あるいは、メディア・コンテンツ・サーバ自体が、メディア・コンテナ・ファイルに含められるべきメディアデータを提供するメディア記録または生成設備を含んでいてもよい。
【0053】
次のステップS2では、メディアデータがメディア・コンテナ・ファイル内のメディアトラックにより定義されるように、メディア・コンテナ・ファイルにおいてステップS1で提供されたメディアデータを編成する。
【0054】
ステップS2でメディア・コンテナ・ファイルにおいて編成されるメディアデータは、好ましくは、メディアセッションの間にクライアントに送信されるべきすべてのメディアコンテンツを一括して含む。言い換えると、メディア・コンテナ・ファイルは、必要とされるすべての層またはビューを含むマルチメディア表現全体についてのメディアデータを含む。よって、メディアコンテンツが音楽ビデオを含む場合、メディア・コンテナ・ファイルは、好ましくは、ビデオデータを有するメディアデータと対応するオーディオデータを有するメディアデータとを含む。
【0055】
メディア・コンテナ・ファイル内のメディアトラックは、メディアデータをその複数のメディアデータ部分を用いて定義する。これは、メディアトラックがメディアセッションの間にメディアコンテンツの表現を提供するのに必要とされる情報を含むことを意味する。好ましくは、メディアトラックは、それ自体の時間的、空間的情報を運び、それが参照するメディアデータに関連する命令情報を提供する。
【0056】
メディアトラックは、各実施形態によれば、複数のサブトラックを、好ましくは、各メディアデータ部分当たりサブトラックを1つずつ含む。よってその場合、階層化された、またはビューベースのメディアデータは、メディアコンテンツの1つの層(または層のグループ)またはカメラビュー当たり1つのそのようなサブトラックを有し得る。
【0057】
次のステップS3では、メディア・コンテナ・ファイルにおいてサブトラック情報を提供する。このサブトラック情報は、特定のサブトラックに属するメディアデータ部分を識別する。ステップS3および次のステップS4の情報提供は、好ましくは、サブトラックごとに1回ずつ行われ、これは線L1により概略的に示されている。
【0058】
ステップS4では、複数のサブトラックの少なくとも1つについてメディア・コンテナ・ファイルにおいて選択情報を提供する。選択情報はメディア・コンテナ・ファイルにおいて編成される他のメディアデータに関連してサブトラックにより定義されるメディアデータ部分の選択的処理を定義する。よって、選択情報は、メディアセッションを開始するときにどのサブトラックおよびメディア部分を使用すべきか、および/またはメディアセッションの間に切換えることのできる、または切換えることのできないサブトラックおよびメディア部分はどれかを選択するために、メディアセッションと関連してメディアサーバにより使用され得る。選択情報は、先行技術によるオルタネートグループ識別子および/またはスイッチグループ識別子と同様に使用することができる。しかし、同一のオルタネート/スイッチグループ識別子がトラックにより定義されるすべてのメディアデータに適用できることを意味する、オルタネート/スイッチグループ識別子がトラックベースで割り当てられる先行技術とは対照的に、ステップS4で提供される選択情報は、サブトラックと、当該サブトラックにより定義されるメディアデータ部分だけに関連する。その結果、すべて単一のメディアトラックへと編成されるその他のメディアデータ部分については他の選択情報を割り当て、使用することができる。
【0059】
選択情報が適用されるメディアデータ部分の選択的処理は、好ましくは、当該メディアデータ部分と同じコンテンツに関連する他のメディアデータに関連するものである。同じコンテンツに関連するその他のメディアデータは、同じメディアトラック、すなわち、当該メディアトラック内の別のサブトラック、またはメディア・コンテナ・ファイルに存在する別のメディアトラックにより定義され得る。別のサブトラックの場合には、その他のメディアデータは、同じメディアトラックにより定義され、現在のサブトラックおよびメディア部分のSVC層またはMVCビューに対して、他のSVC層またはMVCビューに関連する1つまたは複数の他のサブトラックとすることができるはずである。別のメディアトラックの場合には、メディア・コンテナ・ファイルは、同じコンテンツに関連する少なくとも2つの別々のメディアトラックを含む。例えば、1つのメディアトラックはSVC層またはMVCビューを定義する複数のサブトラックを含むことができ、他方、少なくとも1つの他のトラックは、標準AVC(H.264)やH.263データといった、ビュー間または層間の関係なしで符号化することができる。
【0060】
個々の選択情報は、ステップS4でメディアトラックの各サブトラックに提供することができ、これは線L1により概略的に示されている。あるいは、複数のサブトラックのうちのただ1つのサブトラックまたは一部分に選択情報が割り当てられる。次いで、残りの(1つまたは複数の)サブトラックは、さらに説明するように、複数のサブトラックを定義する完全なメディアトラックに割り当て可能なオルタネートグループ識別子および/またはスイッチグループ識別子を継承することができる。
【0061】
ステップS2〜S4の順序は交換されてもよく、代わりに、任意の順序で実行することも、実際には少なくとも一部を並行して実行することもできる。
【0062】
次いで方法は終了する。
【0063】
メディア・コンテナ・ファイルが、それぞれ複数のサブトラックからなる複数のメディアトラックを含む場合、ステップS1〜S4の手順は、そのようなメディアトラックごとに実行することができる。
【0064】
図1との関連で前述したメディア・コンテナ・ファイル生成は、好ましくは、内部または外部のメディア・コンテンツ・ソースにアクセスすることのできるメディアコンテンツ作成者またはサーバにおいて実行される。次いで、生成されたメディア・コンテナ・ファイルは、例えば、ローカルシステム内での転送のためや、ローカルまたはグローバルネットワーク上での送信のために、コンピュータメモリといった記憶媒体において、または電気信号や無線信号といった物理信号において表現され得る。典型的な実施形態では、メディア・コンテナ・ファイルは、様々なクライアントとのメディアセッションにおいて使用するためのメディアサーバに無線信号として提供される。
【0065】
以下、メディア・コンテナ・ファイルという用語は、本開示全体を通して、記憶媒体における記憶のためのデータファイルと、転送または配信のための信号の両方を含む意味として使用する。
【0066】
図3は、図2に示すSVCデータに適用できる情報提供ステップS3およびS4の個別実施形態を示す流れ図である。この方法は、図1のステップS2から続く。次のステップS10では、SVCデータ2のベース層4に関連するサブトラック情報を提供する。この情報は、ベース層サブトラックが関連するSVCデータの部分の識別を可能にするようにベース層サブトラックを定義する。次のステップS11では、それに応じて、メディア・コンテナ・ファイル内のSVCデータ2の拡張層5ごとのサブトラック情報を提供する。よって、ステップS11で提供されるサブトラックは、当該サブトラックが関連する特定の拡張層5を定義するSVCデータ2のメディアデータ部分を識別する。
【0067】
次の2つのステップS12およびS13は、ベース層および拡張層についての選択情報を提供する。これらのステップS12およびS13のうちの少なくとも1つは、サブトラックレベルで実行される。例えば、ベース層サブトラックに専用の選択情報を割り当てることができ、拡張層サブトラックにそれに応じて専用の選択情報が割り当てられる。あるいは、ベース層サブトラックおよび拡張層サブトラックのうちの1つにサブトラック別の選択情報が割り当てられ、その他の(1つまたは複数の)サブトラックは、完全なメディアトラックの選択情報(オルタネート/スイッチグループ識別子)を継承する。
【0068】
ステップS10〜S13の順序は、交換されてもよく、代わりに、任意の順序で実行することも、実際には少なくとも一部を並行して実行することもできる。
【0069】
図6は、図5に示すMVCデータの場合の、図1の情報提供ステップS3およびS4の対応する個別実施態様である。この方法は図1のステップS2から続く。次のステップS20は、ベースビュー6を定義するMVCデータ3のメディアデータ部分を定義するサブトラック情報を提供する。次のステップS21は、それに応じて、MVCデータ3の(1つまたは複数の)追加ビュー7、8に関連する(1つまたは複数の)メディアデータ部分を定義するサブトラック情報を提供する。
【0070】
ステップS22およびS23においてベースビューおよび/または追加ビューを定義するサブトラックに選択情報が割り当てられる。図3のステップS12およびS13と同様に、ステップS22およびS23では、ベースビューおよび追加ビューを定義するサブトラックにサブトラック別の選択情報を提供することもでき、そのようなサブトラック別の選択情報を、ベースビューまたは追加ビューの1つもしくは複数だけに提供することもできる。後者の場合、サブトラック別の選択情報が割り当てられないサブトラックは、それらがすべて定義されるメディアトラックからそのような選択情報を継承することができる。
【0071】
ステップS12〜S23の順序は交換されてもよく、代わりに、任意の順序で実行することも、実際には少なくとも一部を並行して実行することもできる。
【0072】
各実施形態による、サブトラックベースで割り当てられる選択情報は、有利には、サブトラック別のオルタネートグループ識別子とすることができる。その場合、そのようなオルタネートグループ識別子は、メディアセッションの間に、例えば、復号され、変換され、かつ/または送信用のデータパケットへと編成されるなどの処理を施されるべきサブストリームを選択するときに、メディアセッションのセットアップと関連してメディアサーバにより適用され得る。メディアサーバは、その場合、オルタネートグループがメディア・トラック・レベルで定義されるかそれともサブトラックレベルで定義されるかとは無関係に、完全な表現を与えるために、一度に各オルタネートグループから複数のオルタネートメディアを使用しないはずである。
【0073】
したがって、オルタネートグループ内のオプションは、相互に対する代替として使用される。すなわち、それらのオプションは、同じコンテンツを表すが、品質、分解能、コーデック、オーディオ言語などに関して異なり得る。オルタネートグループ内のすべてのオプションが同じオルタネートグループ識別子を共有し、メディアセッションが開始する前のメディア選択の候補である。
【0074】
代替の実施形態において、選択情報は、進行中のメディアセッションの間に、異なるストリーム(完全なメディアトラック)および/またはサブトラック(サブトラックに対応するメディアデータ部分)を切換えるときに適用できる、サブトラック別のスイッチグループ識別子に対応する。
【0075】
スイッチグループ内のオプションは同じオルタネートグループに属する。同じスイッチグループ内のオプションは、同じスイッチグループ識別子を共用し、メディアセッションの間の切換えに利用可能であるが、異なるスイッチグループ内のオプションは利用できない。異なるスイッチグループは、異なるフレームサイズ、高品質対低品質、異なる言語などといった、異なる動作点を表すものとみなすことができる。また、スイッチグループ内部のオプションは、例えば、品質における異なる動作点も表す。
【0076】
個別実施形態において、サブトラックレベルで割り当てられる選択情報は、オルタネートグループ識別子とスイッチグループ識別子の両方を含む。
【0077】
本明細書で開示する実施形態によれば、先行技術との関連で前述した例は、今度は、効果的に処理することができる。
【0078】
【表6】
【0079】
この場合、ベース層データ部分および拡張層データ部分を定義するメディアトラックには、当該メディアトラックが複数のサブトラックを含むこと、ならびにオルタネートグループ識別子およびスイッチグループ識別子は代わりにサブトラックごとに割り当てられることを示す、0などの事前定義の値に従ってオルタネートグループ識別子およびスイッチグループ識別子が割り当てられる。
【0080】
無料SVCデータとプレミアム付きSVCデータには、それらが同じオルタネートグループに属し、メディア処理の間の代替選択肢またはオプションであることを示すように、同じオルタネートグループのサブトラック識別子が割り当てられる。よって、プレミアム付きコンテンツのための追加料金を支払ったクライアントは、拡張層とベース層に関連するメディアデータ部分を含むデータパケットを獲得するはずであり、その場合、ベース層が必要とされ得るのは拡張層を復号するためである。しかし、他のプレミアム付きでないクライアントは、単にベース層データだけを受信するはずである。
【0081】
2つのサブトラックには、メディアセッションの間に、プレミアム付きSVCコンテンツに関連するサブストリームから無料SVCコンテンツのサブストリームへの切換えまたはその逆の切換えが許容されるべきではないことを示すために、異なるサブトラック・スイッチ・グループ識別子が割り当てられる。
【0082】
また、サブトラック別の選択情報を、グレースフルデグラデーション(graceful degradation:優雅な劣化)との関連で使用することもでき、その場合には、同じメディアコンテンツのいくつかの品質層がビットレート適応を可能にするために利用できる。しかし、ベース層が広告を含み、または非常に低い品質のものである場合には、メディアサーバに、予期しない輻輳またはビットレート低下の間には切換えがある層より上でのみ行われるべきであると指示することが望ましい。プレミアム付きのクライアントに意図せずに広告を表示するよりはむしろ、受信機がデータパケット損失を隠す方が望ましい場合もある。そのような解決策は、以下を含むように設計することができる。
【0083】
【表7】
【0084】
それぞれが個々の拡張層(EL1およびEL2)を定義する2つのサブトラックは、進行中のメディアセッションの間の、それらのサブトラックにより定義される2つのサブストリーム間の切換えを可能にするように、同じスイッチグループに属する。しかし、切換えは、ベース層定義のサブストリームと拡張層定義のサブストリームとの間では許容されないはずである。
【0085】
【表8】
【0086】
この例では2つのオルタネートグループがあり、一方は場面の左ビューに関連し、他方は右場面ビューに関連する。どちらのオルタネートグループも、メディアトラック(H.263トラック1または2)の完全なメディアデータおよびサブトラック(MVCサブトラック1または2)のMVCビューデータを含む。この場合、H.263とMVCデータの符号化には異なるコーデックが用いられている。その結果、H.263符号化データとMVC符号化データとの切換えは求められない。したがって、同じオルタネートグループに属するH.263左ビューデータとMVC左ビューデータには、異なるスイッチグループ識別子が使用されるはずである。H.263右ビューデータとMVC右ビューデータにも同じことが当てはまる。スイッチグループはオルタネートグループ内においてローカルで定義されるため、前述のように同じスイッチ・グループ・インデックスが再利用され得ることに留意されたい。あるいは、スイッチグループ識別は、例えば、1、1、2、2、ではなく、1、3、2、4などとすることもできる。
【0087】
上記の例は、各実施形態がMVCコンテンツの個々のビューに対処するのに使用され得ることを示し、また、単一のトラックメディア型(H.263)の代替選択肢を階層化メディア型(MVC)とどのように関連させるべきかを示すものでもある。
【0088】
MVCに関する別の例は、ファイルが多くのビューを含み得るが、その一部だけがスムーズな切換えに適するというものである。例えば、オブジェクト86の左から3台のカメラ80〜82と右から3台のカメラ83〜86など、2つのカメラクラスタを有する図4に示す状況を考察する。そのような場合、自由視点を得るためにスムーズな切換えは各クラスタ内でのみ可能である。この状況は以下に従って処理することができる。
【0089】
【表9】
【0090】
すべてのビューは、メディアセッションをセットアップするときの代替選択肢であり、すべてのサブトラックに同じオルタネートグループ識別子を割り当てることにより示される。しかし、切換えは、それぞれ、左ビューの間と、右ビューの間でのみ許容されるはずである。その結果、すべての左ビューサブトラックに同じスイッチグループ識別子、すなわち、すべての右ビューサブトラックに割り当てられるスイッチグループ識別子と異なる識別子が割り当てられる。
【0091】
メディアトラックに、メディアトラックが複数のサブトラックを含むことを示す事前定義の値を有するいわゆるトラック選択情報を割り当てることができる。このトラック選択情報は、トラックレベルで割り当てることのできるオルタネートグループ識別子および/またはスイッチグループ識別子を含む。上記の例では、事前定義の値が0に設定されており、それにより、メディアトラック全体に適用できるオルタネート/スイッチグループ識別子が利用できず、代わりに、サブトラック別のオルタネート/スイッチグループ識別子がメディア・コンテナ・ファイルに含まれることを知らせる。
【0092】
その場合、メディアサーバは、現在のメディアコンテンツにトラック別のオルタネート/スイッチグループ識別子を使用すべきかそれともサブトラック別のオルタネート/スイッチグループ識別子を使用すべきか判定するために、単にメディア・コンテナ・ファイル内のオルタネート/スイッチグループ識別子フィールドまたはボックスを調べるだけでよい。ISOベース・メディア・ファイル形式を参照すると、そのような場合には、トラック選択ボックスをなしにすることもでき、スイッチグループが0に設定され、かつ/またはトラック・ヘッダ・ボックス内のオルタネートグループが0に設定される。
【0093】
代替の手法においては、オルタネートおよび/またはスイッチグループ識別子などのトラック選択情報を、複数のサブトラックを定義するメディアトラックについてトラックレベルで割り当てることができる。そのような場合には、サブトラック別の選択情報を複数のサブトラックの1つまたは一部分に割り当てることができ、メディアトラックの残りのサブトラックはサブトラック別の選択情報をもたない。これら残りのサブトラックは、代わりに、メディアトラックに割り当てられる(1つまたは複数の)オルタネート/スイッチグループ識別子を継承する。この状況では、最終的なメディア・コンテナ・ファイルを処理するメディアサーバが、メディアトラックが非ゼロのオルタネート/スイッチグループ識別子を有するかどうか調べ、さらに、そのようなオルタネート/スイッチグループ識別子がサブトラックのために設けられているかどうかも調べる。専用の(1つまたは複数の)オルタネート/スイッチグループ識別子がサブトラックに割り当てられている場合、この(これらの)識別子は、トラック別のオルタネート/スイッチグループ識別子の代わりにサブトラックに使用される。
【0094】
【表10】
【0095】
この例は、メディア・トラック・レベルのオルタネートグループ識別子の使用を概略的に示すが、メディアトラックにより定義されるサブトラックごとのスイッチグループ識別子は示さない。
【0096】
【表11】
【0097】
この例では、ベース層を定義するサブトラックは、完全なメディアトラックのオルタネートグループ識別子およびスイッチグループ識別子を継承し、異なる拡張層を定義する2つのサブトラックは、それ自体に割り当てられるオルタネートグループ識別子およびスイッチグループ識別子を有する。
【0098】
図7は、生成する方法のさらに別の任意選択のステップを示す流れ図である。この方法は図1のステップS3から続く。次のステップS30では、メディアトラックにトラック選択情報を提供する。選択情報は、好ましくは、オルタネートグループ識別子および/またはスイッチグループ識別子を含む。選択情報の値は、メディア・トラック・レベルではオルタネート/スイッチグループ識別子が与えられず、代わりに各サブトラックに個々の選択情報が割り当てられることを示す、0といった事前定義の値とすることができる。トラックレベルの選択情報がある場合には、サブトラックが特に割り当てられた選択情報をもたない限り、この情報がメディアトラックにより定義されたすべてのサブトラックに使用される。よって、サブトラックレベルで割り当てられる選択情報は、メディア・トラック・レベルで割り当てられるトラック選択情報に優先する。
【0099】
次いでこの方法は図1のステップS4に続く。
【0100】
以下において、各実施形態を、ISOベース・メディア・ファイル形式[1]の使用という観点でのメディア・コンテナ・ファイルの個別実施態様を参照してより詳細に説明する。使用され得る代替のコンテナファイル形式には、MP4ファイル形式、3GPファイル形式、AVC、SVC、MVCおよびQuickTime形式が含まれる。
【0101】
ISOベース・メディア・ファイル形式は、メディアの交換、管理、編集および表現を円滑化する柔軟性のある拡張可能な形式での表現のための時限メディア情報を含むように設計されている。表現は、当該表現を含むシステムにとってローカルのものとすることもでき、ネットワークまたは他のストリーム配信機構によるものとすることもできる。ISOベース・メディア・ファイルの形のメディア・コンテナ・ファイルを使用することの利点は、それがいかなる特定のネットワークプロトコルからも独立である同時に、それらを全般的に効率よくサポートすることができるように設計されていることである。
【0102】
ISOベース・メディア・ファイル形式のファイル構造は、コンテナファイルを非常に簡単に構成オブジェクトへと分解することができ、各オブジェクトの構造がその型から直接推測されることを意味するオブジェクト指向型である。ISOベース・メディア・ファイル形式に基づくものであるメディア・コンテナ・ファイルは、個々の一意の識別子により定義されるオブジェクト指向型のビルディングブロックである、いくつかのボックスにより定義されるものとみなすことができる。
【0103】
図8を参照すると、ISOベース・メディア・ファイル形式に適合するメディア・コンテナ・ファイル1の一実施形態が示されている。
【0104】
メディア・コンテナ・ファイル1は、好ましくは、そのサブボックスが表現のためのメタデータを定義するコンテナボックスである映画ボックス(‘moov’)10を含む。
【0105】
映画ボックス
定義:
ボックス型:‘moov’
コンテナ:ファイル
必須:はい
数量:厳密に1つ
【0106】
表現のためのメタデータはこの単一つの映画ボックス10に記憶され、これは、メディア・コンテナ・ファイル1の最上位レベルに出現する。通常、この映画ボックス10はメディア・コンテナ・ファイル1の先頭または末尾の近くにあるが、これは必須ではない。
【0107】
構文:
aligned(8)class MovieBox extends Box(‘moov’){
}
【0108】
映画ボックス10は、メディア・コンテナ・ファイル1内の関連するメディア・データ・サンプルの時限シーケンスを定義するトラック12、14を含む。
【0109】
トラックボックス
定義:
ボックス型:‘trak’
コンテナ:映画ボックス(‘moov’)
必須:はい
数量:1以上
【0110】
トラックボックス12、14は、表現の単一のトラックのためのコンテナボックスである。各トラック12、14はそれ自体の時間的、空間的情報を運ぶ。トラックボックス12、14は、メディアトラックの観点からメディアデータを定義し、いわゆるヒントトラックの観点から見た、ストリーミングなどによるメディアデータの配信のためのパケット化情報を含めるのに使用される。
【0111】
構文:
aligned(8)class TrackBox extends Box(‘trak){
}
【0112】
図8には、メディア・コンテナ・ファイル1が、2つのトラックボックス12、14を含むものとして非限定的に示されている。しかしこれは単なる例示とみなすべきであり、メディア・コンテナ・ファイル1は1つまたは複数のそのようなトラックボックス12、14を含むことができる。図において、トラックボックス12は、前述のような複数のメディアデータ部分を含むメディアデータを定義するメディアトラックである。メディアトラック12は、したがって、さらに説明するように、複数のサブトラックを含むことになる。
【0113】
トラックボックス12は、好ましくは、包含ボックスおよびそのデータ、すなわち、表現またはトラックに関するユーザ情報を示すオブジェクトを含むユーザ・データ・ボックス30を含む。したがって、ユーザ・データ・ボックス30は、そのコンテンツをより正確に示すより詳細なボックス型を有するボックスの集合として書式設定される情報提供ユーザデータのためのコンテナボックスとみなすことができる。
【0114】
また、メディア・コンテナ・ファイル1は、表現のための実際のメディアデータを保持するメディア・データ・ボックス(‘mdat’)も含む。
【0115】
メディア・データ・ボックス
定義:
ボックス型:‘mdat’
コンテナ:ファイル
必須:いいえ
数量:任意の数
【0116】
メディア・データ・ボックス20はメディアデータを含む。例えば、ビデオトラック12、14では、このボックス20はビデオフレームを含むはずである。
【0117】
構文:
aligned(8)class MediaDataBox extends Box(‘mdat’){
bit(8)data[];
}
【0118】
データは実際のメディアデータを表す。
【0119】
ユーザ・データ・ボックス
定義:
ボックス型:‘udta’
コンテナ:映画ボックス(‘moov’)またはトラックボックス(‘trak’)
必須:いいえ
数量:0または1
【0120】
構文:
aligned(8)class UserDataBox extends Box(‘udta’){
}
【0121】
前述の考察によれば、代替グループ中のすべてのトラックがメディア選択の候補であり、これは、すべてのメディアトラックを同じオルタネートグループに割り当てることにより実現される。オルタネートグループ識別子の情報は、トラックボックス12と関連付けられるトラック・ヘッダ・ボックス(不図示)において提供される。ISOベース・メディア・ファイル形式によれば、トラック・ヘッダ・ボックス(‘tkhd’)の構文は以下のように表現される。
aligned(8)class TrackHeaderBox extends Fullbox(‘tkhd’,version,flags){
...
template int(16)alternate_group=O;
...
}
【0122】
このオルタネートグループ識別子は、トラックレベルで適用することができ、したがって、メディアトラック12のサブトラックがそれに特有のサブトラック・オルタネート・グループ識別子をもたない限り、メディアトラック12により定義されるメディアデータ全体に適用される。好ましい実施態様においては、オルタネートグループ識別子のゼロ値により、メディアトラックが、それ自体のサブトラック・オルタネート・グループをもち得る複数のサブトラックを含むことを知らせる。このフィールドが0でない場合、それは、相互についてのオルタネートデータを含むタック(tack)12では同じであり、異なるそのようなグループに属するトラック12では異なるはずである。その場合、トラック12により定義されるサブトラックは、それ自体のサブトラック・オルタネート・グループ識別子をもたない限り、このオルタネートグループ識別子を継承することができる。
【0123】
ユーザ・データ・ボックス30は、任意選択で、メディアトラック12に適用できるスイッチグループ識別子を定義するのに使用されるトラック選択ボックス(‘tsel’)40を含む。
【0124】
トラック選択ボックス
定義:
ボックス型:‘tsel’
コンテナ:ユーザ・データ・ボックス(‘udta’)
必須:いいえ
数量:0または1
【0125】
トラック選択ボックス40は、それが関連するトラック12のユーザ・データ・ボックス30に含まれる。
【0126】
構文:
aligned(8)class TrackSelectionBox extends FullBox(‘tsel’,version=O,O){
template int(32)switch_group=O;
unsigned int(32)attribute_list[];//ボックスの最後まで
}
【0127】
属性リストは、トラックの記述として、または同じオルタネートグループもしくはスイッチグループ内のトラックについての差別化基準として使用される。スイッチグループ識別子は0とすることができ、その場合復号器は、メディア・コンテナ・ファイル内のサブトラック選択グループを探すことができる。非ゼロの値は、それ自体のサブトラック・スイッチ・グループ識別子をもたない任意のサブトラックにより継承され得る。
【0128】
各実施形態によれば、ユーザ・データ・ボックス30は、トラックがサブトラックを含む場合には、現在のトラック内のサブトラックを指定する、いわゆるサブトラックボックス(‘strk’)50を含む。
【0129】
サブトラックボックス
定義:
ボックス型:‘strk’
コンテナ:ユーザ・データ・ボックス(‘udta’)
必須:いいえ
数量:0以上
【0130】
サブトラックボックス50は、現在のメディアトラック12内のサブトラックに関する情報を定義し、提供するオブジェクトを含む。
【0131】
構文:
aligned(8)class SubTrack extends Box(‘strk’){
}
【0132】
サブトラックボックス50は2つのボックス、すなわち、サブトラック情報ボックス(‘stri’)60とサブトラック定義ボックス(‘strd’)70を含むコンテナである。
【0133】
サブトラック情報ボックス60はサブトラック記述を含む。これは、例えば、サブトラックがどのスイッチグループおよび/またはオルタネートグループに属するか、サブトラックの他の属性などとすることができる。個別実施形態においては、オルタネートグループおよびスイッチグループの番号が、メディア・コンテナ・ファイル1により使用される。これは、同じ識別子形式または番号付けがトラックオルタネート/スイッチグループ識別子およびサブトラックオルタネート/スイッチグループ識別子の間で共用されることを意味する。このようにして、オルタネートグループまたはスイッチグループはトラックとサブトラックの両方を含み得る。
【0134】
サブトラック情報ボックス
定義:
ボックス型:‘stri’
コンテナ:サブトラックボックス(‘strk’)
必須:はい
数量:1
【0135】
サブトラック情報ボックス60は、サブトラックに関する情報を提供するオブジェクトを含む。
【0136】
構文:
aligned(8)class SubTrackInformation extends Box(‘stri’){
}
【0137】
サブトラック定義ボックス70は、サブトラックを定義するボックスを含むコンテナボックスである。サブトラックは、サブトラック定義ボックスに囲まれたものにより決定されるサンプル部分集合の和集合として定義される。これらの部分集合を定義するボックスは、SVCファイル形式標準やMVCファイル形式標準といった、対応するファイル形式標準において決定することができる。
【0138】
サブトラック定義ボックス
定義:
ボックス型:‘strd’
コンテナ:サブトラックボックス(‘strk’)
必須:はい
数量:1
【0139】
サブトラック定義ボックス70は、サブトラックの定義を提供するオブジェクトを含む。
【0140】
構文:
aligned(8)class SubTrackDefinition extends Box(‘strd’){
}
【0141】
メディア・コンテナ・ファイル1の代替の実施態様においては、提案する構造を、サブトラック情報ボックス60およびサブトラック定義ボックス70なしで実現することができる。そのような場合には、サブトラック情報ボックス60およびサブトラック定義ボックス70内に存在するボックスは、代わりに、直接サブトラックボックス50に配置することができる。しかし、サブトラック情報ボックス60およびサブトラック定義ボックス70を用いる構造は、より多くの情報を収集することができるため、有利である。例えば、ファイルパーサは、サブトラック定義ボックス70において、それが認識しないボックスを発見する場合、これがサブトラックを定義するボックスであることを知るはずである。
【0142】
ISOベース・メディア・ファイル形式標準と同様に、サブトラック選択ボックス(‘stsl’)62が定義され、好ましくは、サブトラック情報ボックス60に含められる。サブトラック選択ボックス62は、現在のスイッチグループに適用できるサブトラック・スイッチ・グループ識別子を含む。
【0143】
サブトラック選択ボックス
定義:
ボックス型:‘stsl’
コンテナ:サブトラック情報ボックス(‘stri’)
必須:いいえ
数量:0または1
【0144】
構文:
aligned(8)class SubTrackSelectionBox extends Fullbox(‘stsl’,version=0,0){
template int(32)switch_group=0;
unsigned int(32)attribute_list[];//ボックスの最後まで
}
【0145】
switch_groupはサブトラック・スイッチ・グループ識別子であり、トラックおよび/またはサブトラックのグループまたは集合体を指定する整数である。このフィールドが0、すなわちデフォルト値である場合、またはサブトラック選択ボックス62がない場合には、再生またはストリーミングの間の切換えのためにサブトラックを使用することができるかどうかに関する情報がない。また、同じスイッチグループに属するトラック/サブトラックは、同じオルタネートグループにも属するはずである。
【0146】
attribute_listは、サブトラックの記述として、または同じオルタネートグループもしくはスイッチグループ内のトラック/サブトラックの差別化基準として使用すべき属性のリストである。
【0147】
使用され得る記述属性の例には以下が含まれる。
【表12】
【0148】
使用され得る差別化属性の例には以下が含まれる。
【表13】
トラック・ヘッダ・ボックス内の持続期間で割ったサブトラック内のサンプルの数。
【0149】
オルタネートサブトラック選択ボックス(‘asts’)64は、オルタネートグループ識別子を割り当てるのに使用される。このボックス64は任意選択であり、同じオルタネートグループがすべてのサブトラックに適用される場合には、オルタネートサブトラック選択ボックス64を含める必要はない。
【0150】
オルタネートサブトラック選択ボックス
定義:
ボックス型:‘asts’
コンテナ:サブトラック情報ボックス(‘stri’)
必須:いいえ
数量:0または1
【0151】
aligned(8)class AlternateSubTrackSelectionBox extends FullBox(‘asts’,version=O,O){
template int(32)alternate_group=0;
}
【0152】
alternate_groupは、サブトラック・オルタネート・グループ識別子であり、トラックおよび/またはサブトラックのグループまたは集合体を指定する整数である。このフィールドが0、すなわちデフォルト値である場合、またはオルタネートサブトラック選択ボックス64がない場合には、他のトラック/サブトラックに関連する可能性に関する情報がない。
【0153】
このフィールドが0でない場合、それは、相互についてのオルタネートデータを含むトラック/サブトラックでは同じであり、異なるそのようなグループに属するトラック/サブトラックでは異なるはずである。どの時点においても、オルタネートグループ内のただ1つのトラック/サブトラックだけが再生され、またはストリーミングされるはずである。
【0154】
サブトラック定義選択ボックス70においては、個別のサブトラック定義ボックス72、74が割り振られる。これらのボックス72、74は、典型的には、コーデック別のものであり、特定のサブトラックに属するトラックの部分を決定する。複数のサブトラック定義ボックス70が存在する場合には、サブトラック定義の和集合がサブトラックを定義する。
【0155】
以下に、SVCデータおよびMVCデータを参照してサブトラックの定義の異なる実施形態を開示する。サブトラックへと編成され得るメディアデータを生成するのに他のコーデックが用いられる場合、定義ボックスは、それらのコーデックのためにしかるべく適合される。定義ボックスの基本的な目的は、サブトラックに属するメディアトラックの(1つまたは複数の)部分を識別することである。したがって、コーデック別の識別子を使用することができる。
【0156】
SVC実施形態
SVCサブトラック層ボックス
定義:
ボックス型:‘sstl’
コンテナ:サブトラック定義ボックス(‘strd’)
必須:いいえ
数量:0以上
【0157】
構文:
aligned(8)class SVCSubTrackLayerBox extends FullBox(‘sstl’){
unsigned int(16)item_count;
for(i=0;i<item_count;i++){
unsigned int(3)DependencyId;
unsigned int(4)QualityId;
unsigned int(3)TemporalId;
unsigned int(6)reserved;
}
}
【0158】
依存関係識別子、品質識別子および時間識別子のトリプレット(DQT)のリストは、サブトラックに属するメディアトラックの部分を指定する。依存関係識別子、品質識別子および時間識別子の一意の組合せがSVC層を決定する。したがって、サブトラック層ボックスに記載される各DQTトリプレットが単一のSVC動作点を決定する。異なるDQTトリプレット値の和集合、したがって、SVC層の和集合は、ボックスにより定義されるサブトラックを記述する。
【0159】
item_countは、このボックスに記載されるDQTトリプレットの数をカウントし、依存関係/品質/時間の各識別子は、ネットワーク抽象化層(NAL)ユニットの依存関係/品質/時間識別子の値を示す。
【0160】
SVCサブトラック階層ボックス
定義:
ボックス型:‘stti’
コンテナ:サブトラック定義ボックス(‘strd’)
必須:いいえ
数量:0以上
【0161】
構文:
aligned(8)class SubTrackTierBox extends FullBox(‘stti’){
unsigned int(16)item_count;
for(i=O;i<item_count;i++){
unsigned int(16)tierId;
}
}
【0162】
このボックス内の階層識別子の和集合は、ボックスにより定義されるサブトラックを記述する。この場合の階層はSVC階層である。当分野で公知のように、階層(tier)とは、ビットストリームにおける動作点を表す層の集合である。NALユニットを階層にマップするために、サンプルグループおよびマップグループを使用することができる。サンプルグループはグループ間でのサンプルの分割を行う。しかし、1サンプル内に複数のNALユニットが存在し得るため、マップグループを使用して、1サンプル内のNALユニットを異なるサンプルグループに割り当てることができる。階層は、1つまたは複数のそのようなサンプルグループを含む。
【0163】
item_countは、このサブトラック階層ボックスにおいて記述される階層の数をカウントし、tierIdは、サブトラックに含まれる(1つまたは複数の)階層の識別子を与える。
【0164】
SVCサブトラック・サンプル・グループ・ボックス
定義:
ボックス型:‘stsg’
コンテナ:サブトラック定義ボックス(‘strd’)
必須:いいえ
数量:0以上
【0165】
構文:
aligned(8)class SubTrackSampleGroupBox extends Fullbox(‘stsg’){
unsigned int(16)item_count;
for(i=O;i<item_count;i++){
unsigned int(16)groupId;
}
}
【0166】
この実施形態では、トラックをサブトラックに分割するために、階層ではなくサンプルグループが直接使用される。また、サンプルグループをマップグループと一緒に使用することもできる。
【0167】
item_countは、このサブトラック階層ボックスにおいて記述されるサンプルグループの数をカウントし、groupIdは、グループエントリの識別子を与える。グループ識別子は任意の値であるが、サンプルグループについて一意である。
【0168】
前述の実施形態は、どのようにしてSVCサブトラックを定義することができるかの例である。これらの実施形態のいずれも、メディア・コンテナ・ファイル1において使用することができる。
【0169】
メディア・コンテナ・ファイル1において階層またはエクストラクタを使用すると、SVCデータについての別の解決策が可能になる。階層のグループ化がSVCファイル形式で実行される[3]。コンテンツに基づいて階層をグループ化するために、新しいスイッチ・グループ・ボックス(‘swgr’)が、階層の1次定義に加えられる。そのような場合には、階層、すなわち、同じコンテンツグループに属する動作点の集合間の切換えが許容される。異なるコンテンツグループに属する階層間の切換えは許容されない。この代替の解決策ではサブトラックを定義する必要がない。代わりに、階層定義を変更する。この解決策の欠点は、明示的なサブトラックを使用する場合よりも汎用性が低いことである。
【0170】
スイッチ・グループ・ボックス
定義:
ボックス型:‘swgr’
コンテナ:スケーラブル・グループ・エントリ
必須:いいえ
数量:0または1
【0171】
構文:
aligned(8)class SwitchGroupBox extends Box(‘swgr’){
unsigned int(32)content_group=O;
}
【0172】
content_groupは、同じコンテンツを有する階層のグループまたは集合体を指定する整数である。このフィールドが0であり、またはスイッチ・グループ・ボックスがない場合には、トラックはデフォルトでコンテンツグループ0に属する。切換えは、同じコンテンツグループに属する階層間では行われ得るが、異なるグループに属する階層間では許容されない。コンテンツグループは、好ましくは、1つのメンバのみを有する。よって、content_groupは、この場合には、一実施形態によるサブトラックに割り当てられ得る選択情報の一例である。
【0173】
スイッチ・グループ・ボックスは任意選択であり、階層の1次定義に存在する。スイッチ・グループ・ボックスは、以下の例に従ってスケーラブル・グループ・エントリに加えることができる。
【0174】
aligned(8)class ScalableGroupEntry extends VisualSampleGroupEntry(‘scif’){
unsigned int(8)groupId;
unsigned int(8)primary_groupId;
unsigned int(1)is_tier_IDR;
unsigned int(1)noInterLayerPredFlag;
unsigned int(1)useRefBasePicFlag;
unsigned int(1)storeBaseRepFlag;
unsigned int(1)is_tl_switching_point;
unsigned int(3)reservered=0;
unsigned int(8)tl_switching_distance;
【0175】
if(groupId==primary_groupId)//階層の1次定義
{
TierInfoBox();//必須
SVCDependencyRangeBox();//必須
SVCPriorityRangeBox()//必須
TierBitRateBox();//任意選択
RectRegionBox();//任意選択
BufferingBox();//任意選択
TierDependencyBox();//任意選択
InitialParameterSetBox();//任意選択
IroiInfoBox();//任意選択
ProtectionSchemeInfoBox();//任意選択
TranscodingInfoBox();//任意選択
SwitchGroupBox();//任意選択
}
}
【0176】
MVC実施形態
MVCサブトラック・ビュー・ボックス
定義:
ボックス型:‘mstv’
コンテナ:サブトラック定義ボックス(‘strd’)
必須:いいえ
数量:0以上
【0177】
構文:
aligned(8)class MVCSubTrackViewBox extends FullBox(‘mstv’){
unsigned int(16)item_count;
for(i=O;i<item_count;i++){
unsigned int(10)ViewId;
unsigned int(3)TemporalId;
unsigned int(2)reserved;
}
}
【0178】
ビュー識別子と時間識別子との対のリストは、サブトラックに属するトラックの部分を指定する。ビューと時間識別子との組合せがMVC層を決定する。したがって、MVCサブトラック・ビュー・ボックスに記載されるそのような各識別子対が単一のMVC動作点を決定する。識別子値の異なる対の和集合、したがって、特定の時間分解能におけるMVCビューの和集合が、このボックスにより定義されるサブトラックを記述する。
【0179】
item_countは、ボックスに記載されるビュー識別子と時間識別子の対の数をカウントし、ビュー/時間識別子はMVC NALユニットヘッダ内の識別子値を示す。
【0180】
代替の実施形態では、MVCサブトラック・ビュー・ボックスは、ビュー識別子だけを記載し、時間識別子は記載しない。その場合、サブトラックの定義は、指定されるビュー識別子を有するすべてのMVC層を含む。
【0181】
MVCサブトラック階層ボックス
定義:
ボックス型:‘stti’
コンテナ:サブトラック定義ボックス(‘strd’)
必須:いいえ
数量:0以上
【0182】
構文:
aligned(8)class SubTrackTierBox extends FullBox(‘stti’){
unsigned int(16)item_count;
for(i=O;i<item_count;i++){
unsigned int(16)tierId;
}
}
【0183】
このボックス内の階層識別子の和集合は、ボックスにより定義されるサブトラックを記述する。この場合の階層はMVC階層である。
【0184】
item_countは、このサブトラック階層ボックスにおいて記述される階層の数をカウントし、tierIdは、サブトラックに含まれる(1つまたは複数の)階層の識別子を与える。
【0185】
MVCサブトラック・マルチビュー・グループ・ボックス
定義:
ボックス型:‘stmg’
コンテナ:サブトラック定義ボックス(‘strd’)
必須:いいえ
数量:0以上
【0186】
構文:
aligned(8)class MVCSubTRckMultiviewGroupBox extends FullBox(‘stmg’){
unsigned int(16)item_count;
for(i=O;i<item_count;i++){
unsigned int(16)MultiviewGroupId;
}
}
【0187】
ボックス内のマルチビューグループ識別子の和集合は、ボックスにより定義されるサブトラックを記述する。item_countは、ボックスにおいて記述されるマルチビューグループの数をカウントし、マルチビューグループ識別子は、サブトラックに含まれる(1つまたは複数の)マルチビューグループの識別子を与える。マルチビューグループ識別子は、好ましくは、MVCファイル形式で定義されたマルチビューグループの識別子である。
【0188】
MVCサブトラック・サンプル・グループ・ボックス
定義:
ボックス型:‘stsg’
コンテナ:サブトラック定義ボックス(‘strd’)
必須:いいえ
数量:0以上
【0189】
構文:
aligned(8)class SubTrackSampleGroupBox extends Fullbox(‘stsg’){
unsigned int(16)item_count;
for(i=0;i<item_count;i++){
unsigned int(16)groupId;
}
}
【0190】
この実施形態では、トラックをサブトラックに分割するのに、階層の代わりにサンプルグループが直接使用される。またサンプルグループをマップグループと一緒に使用することもできる。
【0191】
item_countは、このサブトラック階層ボックスにおいて記述されるサンプルグループの数をカウントし、groupIdは、グループエントリの識別子を与える。グループ識別子は任意の値であるが、サンプルグループについて一意である。
【0192】
前述の実施形態は、どのようにしてMVCサブトラックを定義することができるかの例である。これらの実施形態のいずれもメディア・コンテナ・ファイル1において使用することができる。
【0193】
メディア・コンテナ・ファイル1において階層またはエクストラクタを使用すると、MVCデータのための代替の解決策が可能になる。階層のグループ化がMVCファイル形式で行われる。コンテンツに基づいて階層をグループ化するために、階層の1次定義に新しいスイッチ・グループ・ボックス(‘swgr’)が加えられる。そのような場合には、階層、すなわち、同じコンテンツグループに属する動作点の集合間の切換えが許容される。異なるコンテンツグループに属する階層間の切換えは許容されない。この代替の解決策ではサブトラックを定義する必要がない。代わりに、階層定義を変更する。この解決策の欠点は、明示的なサブトラックを使用する場合よりも汎用性が低いことである。
【0194】
スイッチ・グループ・ボックス
定義:
ボックス型:‘swgr’
コンテナ:マルチビュー・グループ・エントリ
必須:いいえ
数量:0または1
【0195】
構文:
aligned(8)class SwitchGroupBox extends Box(‘swgr’){
unsigned int(32)content_group=O;
}
【0196】
content_groupは、同じコンテンツを有する階層のグループまたは集合体を指定する整数である。このフィールドが0であり、またはスイッチ・グループ・ボックスがない場合には、トラックはデフォルトでコンテンツグループ0に属する。切換えは、同じコンテンツグループに属する階層間では実行され得るが、異なるグループに属する階層間では許容されない。コンテンツグループは、好ましくは、1つのメンバだけを有する。よって、content_groupは、この場合は、一実施形態によるサブトラックに割り当てられ得る選択情報の一例である。
【0197】
スイッチ・グループ・ボックスは任意選択であり、階層の1次定義に存在する。スイッチ・グループ・ボックスは、以下の例に従ってスケーラブル・グループ・エントリに加えることができる。
【0198】
aligned(8)class MultiviewGroupEntry extends VisualSampleGroupEntry(‘scif’){
unsigned int(8)groupId;
unsigned int(8)primary_groupId;
unsigned int(4)reserved=O;
unsigned int(1)is_tl_switching_point;
unsigned int(3)reservered=O;
unsigned int(8)tl_switching_distance;
【0199】
if(groupId==primary_groupId)//階層の1次定義
{
ViewIdentifierBox();//必須
TierInfoBox();//必須
TierDependencyBox();//必須
SVCPriorityRangeBox();//必須
TierBitRateBox();//任意選択
BufferingBox();//任意選択
InitialParameterSetBox();//任意選択
ProtectionSchemeInfoBox();//任意選択
ViewPriorityBox();//任意選択
SwitchGroupBox();//任意選択
}
}
【0200】
メディアデータを定義し、メディアデータを含み、サブトラックおよびオルタネート/スイッチグループ識別子を識別する異なるボックスへのメディア・コンテナ・ファイルの前述の編成は、個別の実施の形態とみなすべきである。前述のメディアデータおよび記述情報(メタデータ)の別の編成を、代替として、別の実施形態において使用することもできる。
【0201】
図9は、メディア・コンテナ・ファイル1を生成し、または使用する当事者を示す通信ネットワークの図式的概要である。メディア・コンテンツ・サーバ100は、メディアデータを受信し、またはこれにアクセスし、メディア・コンテナ・ファイル1を構築するコンテンツ提供者または作成者を表す。メディア・コンテナ・ファイル1のコピーが、図において移動端末で表される異なるクライアント300、310、320に送信(マルチキャスト)されるメディアを含むデータパケットをコンパイルするためのメディアセッションにおいてメディア・コンテナ・ファイル1を使用するメディア処理サーバ200に送信される。通信ネットワークは、有利には、ネットワーク事業者を有するいわゆる専有ネットワークとすることができる。そのような通信ネットワークの一例が、携帯電話に通信サービスを提供する、無線の電波ベースの通信ネットワークである。
【0202】
図において、メディア・コンテンツ・サーバ100とメディア処理サーバ200とは、有利には、通信ネットワークの基地局といった異なるネットワークノードにおいて配置される別々のサーバとして図示されている。代替の手法では、これら2台のサーバ100、200の動作は、実際には、単一のネットワークノードに集中されていてもよく、その場合には、同一のサーバがメディア・コンテンツ・サーバ100とメディア処理サーバ200の動作を行う。
【0203】
図10は、一実施形態によるメディア・コンテンツ・サーバ100の概略的ブロック図である。メディア・コンテンツ・サーバ100は、送信機および受信機110、または一般的な送受信機(TX/RX)を備える。受信機は、特に、入力メディアコンテンツを受信し、メディア・コンテナ・ファイルを求める要求を受信するように構成されている。送信機は、それに応じて特に、メディア・コンテンツ・サーバ100により、そのようなメディア・コンテナ・ファイルを通信ネットワーク内の他のサーバに送信するときに用いられる。図に示す送信機/受信機110は、データの送受信を実施するのに必要とされる機能を備え、この機能は当分野では公知であり、中でも特に、変調器/復調器、符号器/復号器などを含む。データの有線送信の場合には、送信機/受信機110は、送信機/受信機110と同様の送信/受信機能を果たす一般的な入力および出力(I/O)装置で置き換えることができる。
【0204】
メディア・コンテンツ・サーバ100は、メディア・コンテナ・ファイルにおいて編成されるべきメディアデータを提供するように構成されたメディアプロバイダ160を備える。メディアプロバイダ160は、おそらくは送信機110を介し、リモートであるが接続されたメディアソースまたはエンジン400、410から、実際のメディアデータを取得することができる。あるいは、メディアデータは、事前にメディア・コンテンツ・サーバ100に提供されており、データ記憶170に記憶されている。その場合メディアプロバイダ160は、記憶170から関連するメディアデータを取り出す。別の実施形態では、メディアプロバイダ160は、実際にメディアデータ自体を生成し、したがって、メディア生成および/または記録設備を備える。
【0205】
メディアプロバイダ160からのメディアデータは、図8に示すメディア・データ・ボックス内など、メディア・コンテナ・ファイルにおいてメディアデータを編成するデータオーガナイザ120に送られる。提供され、編成されるメタデータは、前述のようにメディア・コンテナ・ファイル内のメディアトラックにより定義され、個々のサブストリームを定義する複数のデータ部分を含む。
【0206】
メディア・コンテンツ・サーバ100においては、メディア・コンテナ・ファイルにおいてサブトラック情報を提供するために、サブトラック情報プロバイダ140が実施される。このサブトラック情報は、メディアトラックの個々のサブトラックに属する編成されたメディアデータのメディアデータ部分の識別を可能にする。よって、メディアトラックにより定義される複数のサブトラックはそれぞれ、当該サブトラックが適用される関連性のあるメディアデータ部分を識別するための関連付けられたサブトラック情報を含む。
【0207】
また、メディア・コンテンツ・サーバ100は、メディア・コンテナ・ファイル内の少なくとも1つのサブトラックについての選択情報を提供する選択情報プロバイダ130も含む。この選択情報は、前述のようにメディア・コンテナ・ファイルにおいて編成される他のメディアデータに関連して少なくとも1つのサブトラックにより定義されるメディアデータ部分の選択的処理を定義する。
【0208】
選択情報プロバイダ130は、任意選択で、メディア・コンテナ・ファイル内の少なくとも1つのサブトラックにサブトラック・オルタネート・グループ識別子を提供するように実施されるオルタネートグループ識別子プロバイダ132を含む。そのような場合には、このオルタネートグループ識別子はその特定のサブトラックに適用することができ、他方、同じメディアトラックに含まれる他のサブトラックは、独自のオルタネートグループ識別子を有し、または任意選択のトラック選択情報プロバイダ150により完全なメディアトラックに割り当てられるオルタネートグループ識別子を共用または継承する。
【0209】
選択情報プロバイダ130の任意選択のスイッチグループ識別子プロバイダ134は、メディア・コンテナ・ファイル内の少なくとも1つのサブトラックにサブトラック・スイッチ・グループ識別子を提供するように実施される。スイッチグループ識別子プロバイダ134は、メディアトラックのすべてのサブトラックまたはそのごく一部分だけに個々のスイッチグループ識別子を割り当てることができる。一部分だけの場合には、スイッチグループ識別子を割り当てられないサブトラックは、好ましくは、トラック選択情報プロバイダ150により完全なメディアトラックに割り当てられるスイッチグループ識別子を使用する。
【0210】
選択情報の値を定義するのに使用される選択情報プロバイダ130への入力は、好ましくは、オルタネートおよび/またはスイッチグループ識別子、どのサブトラックをメディア・コンテナ・ファイル内の他のサブトラック/トラックの代替とすべきか、およびどのサブトラック/トラックの間で切換えを許容し、または妨げるべきかを知るコンテンツ作成者からもたらされ得る。あるいは、選択情報プロバイダ130は、提供されるメディアデータの情報に基づき、これらの値を自動的に決定することもできるはずである。例えば、選択情報プロバイダは、通常のコンテンツとプレミアム付きのコンテンツとの切換え、異なるコーデックにより符号化されたメディアデータ間の切換え、異なるオーディオ言語を有するメディアデータ間の切換えは阻止するが、例えば、異なる品質レベルで利用可能なコンテンツ間の切換えは許容するように事前に構成することができる。
【0211】
メディア・コンテンツ・サーバ100は、有利には、SVCデータおよびMVCデータを処理するのに適する。その場合、サブトラック情報プロバイダ140は、コンテンツのために、ベース層と拡張層またはベースビューと追加ビューに対応する異なるサブトラックへと編成されるべきメディアデータ部分を定義するサブトラック情報を提供するように構成される。
【0212】
トラック選択情報プロバイダ150は、有利には、完全なメディアトラックに適用することができ、前述のようにメディアトラックが複数のサブトラックを含むことを示す0などの事前定義の値を有する、オルタネートおよび/またはスイッチグループ識別子などのトラック選択情報を割り当てることができる。
【0213】
メディア・コンテンツ・サーバ100のユニット110〜160は、ソフトウェア、ハードウェア、またはそれらの組合せとして実施され、または提供され得る。ソフトウェアベースの実施態様の場合には、メディア・コンテンツ・サーバ100またはその一部を実施するコンピュータプログラム製品は、汎用の、または特別に適合されたコンピュータ、プロセッサ、またはマイクロプロセッサ上で実行されるソフトウェアまたはコンピュータプログラムを含む。ソフトウェアは、図10に示すコンピュータ・プログラム・コード要素またはソフトウェアコード部分を含む。プログラムは、全部または一部が、磁気ディスク、CD−ROM、DVDディスク、USBメモリ、ハードディスク、光磁気メモリといった1つまたは複数の適切なコンピュータ可読媒体またはデータ記憶手段に、RAMまたは揮発性メモリに、ROMまたはフラッシュメモリに、ファームウェアとして、あるいはデータサーバ上で記憶され得る。
【0214】
ユニット110〜170はすべて、通信システムの単一のネットワークノード内のメディア・コンテンツ・サーバ100において実施され得る。あるいは、分散型の実施態様も可能であり、本発明の範囲内である。そのような場合には、メディア・コンテンツ・サーバ100の異なるユニット110〜170は異なるネットワークノードに配置され得るが、にもかかわらず、前述のようにそれぞれの目的の動作を実行する。
【0215】
図11は、メディア・コンテナ・ファイルを利用する一実施形態によるメディア処理の方法を示す流れ図である。この処理は、有利には、図9に示すメディア・コンテンツ・サーバからメディア・コンテナ・ファイルを受信する通信ネットワーク内のメディア処理サーバにより実行され得る。
【0216】
方法はステップS40において開始し、そこで本明細書において開示するメディア・コンテナ・ファイルが提供される。ステップS40のファイル提供は、様々な実施形態に従って実行することができる。例えば、メディア・コンテナ・ファイルは、メディア処理サーバに有線または無線で接続されたメディア・コンテンツ・サーバから受信される。あるいは、メディア・コンテナ・ファイルは、リモートのメディア・コンテンツ・サーバから事前に受信しておくこともでき、したがって、ステップS40でデータ記憶から取り出される。さらに別の実施形態において、前述のメディア・コンテンツ・サーバおよびメディア処理サーバが共通のメディアサーバへと編成されているときには、メディア・コンテナ・ファイルはステップS40で実際に作成される。
【0217】
次のステップS41では、メディア・コンテナ・ファイルにおいて定義された複数のサブトラックのうちのサブトラックを選択する。サブトラック選択は、サブトラックに割り当てられ、メディア・コンテナ・ファイルに存在するオルタネートグループ識別子に基づいて行われる。この場合、メディア・コンテナ・ファイルは、結果的に、同じオルタネートグループ識別子の値が割り当てられる複数のトラック/サブトラックを含むオルタネートグループを定義する。当該の複数のサブトラックまたは(1つまたは複数の)サブトラックおよび(1つまたは複数の)トラックは、結果的に、メディアセッションにおいて使用すべき代替を構成することになる。選択ステップS41は、メディアセッションのセットアップと関連して実行される。
【0218】
次のステップS42では、サブトラックにより定義されるメディア・コンテナ・ファイルからメディアデータ部分を取り出す。このデータ取り出しは、メディア・コンテナ・ファイルに含まれ、選択されたサブトラックに対応するメディア・コンテナ・ファイル内で編成されたメディアデータのメディアデータ部分の識別を可能にするサブトラック情報に基づいて行われる。取り出されたメディアデータはステップS42でデータパケットへとコンパイルされ、ステップS43でメディアセッションの間に少なくとも1つのクライアントまたはユーザ端末に送信される。
【0219】
次いで方法は終了する。
【0220】
図12は、別の態様によるメディア処理の方法を示す流れ図である。この場合、メディアセッションはすでに開始されており、トラックまたはサブトラックが、メディアセッションのセットアップに関連してすでに選択されている。この場合、方法は、図11のステップS43から続き、次のステップS50では進行中のメディアセッションの間にストリームを切換える。ステップS50は、結果的に、サブトラックに割り当てられたスイッチグループ識別子に基づき、メディア・コンテナ・ファイルにおいて定義されたサブトラックを選択することを伴う。選択されるサブトラックは、メディアセッションをセットアップするときに最初に選択されたトラックまたはサブトラックと同じオルタネートグループに属する。加えて、選択されるサブトラックは、このトラックまたはサブトラックと同じスイッチグループ識別子の値も有し、よって同じスイッチグループにも属する。選択されるサブトラックは、好ましくは、元のトラックまたはサブトラックと同じコンテンツに関連し、例えば、SVCデータの場合には異なる層に、またはMVCデータの場合には異なるビューに関連し得る。
【0221】
ステップS50のストリーム切換えは、様々な実施形態に従ってトリガすることができる。例えば、データパケットが送信されるユーザ端末から発せられる要求または入力メッセージが、切換え基準をトリガすることが可能である。あるいは、メディア処理サーバおよび/またはユーザ端末により推定される信号品質または強度情報を使用して、ステップS50でストリーム切換えをトリガすることもできる。実際には、当分野で公知の、トラックの切換えをトリガするための任意の手順を使用し、各実施形態に従って、あるサブトラックから別のサブトラックに、トラックからサブトラックに、または実際にサブトラックからトラックに、あるいは先行技術に従ってあるトラックから別のトラックに切換えることができる。また、あるSVC層から別の層に、またはあるMVCから別のビューに切換えるための任意の公知の手順を使用することもできる。
【0222】
次のステップS51では、メディア・コンテナ・ファイルから、選択されたサブトラックに対応するメディアデータ部分を取り出す。この取り出しは、選択されたサブトラックと関連付けられ、メディア・コンテナ・ファイルに含まれるサブトラック情報に基づいて行われる。また、取り出されたメディアデータはデータパケットへと編成される。このステップS51は図11のステップS42と同様に実行される。次のステップS52では、データパケットを、進行中のメディアセッションに関与する少なくとも1つのユーザ端末に送信する。次いで方法は終了する。
【0223】
図13は、メディア処理サーバ200の一実施形態を示す概略的ブロック図である。メディア処理サーバ200は、外部のユニットとの通信を実行するように構成された送信機/受信機210を備える。受信機210は、特に、メディア・コンテナ・ファイルがメディア処理サーバ200のコンテナプロバイダ220により生成されるのでない限り、メディア・コンテンツ・サーバからメディア・コンテナ・ファイルを受信するように構成される。送信機210は、特に、メディア・コンテナ・ファイルからフェッチされたメディアデータを運ぶデータパケットを、メディアセッションにおいて1つまたは複数のユーザ端末に送信するように構成される。
【0224】
コンテナプロバイダ220は、メディア・コンテナ・ファイルが事前に記憶されている受信機210またはデータ記憶250からメディア・コンテナ・ファイルを提供する。あるいは、コンテナプロバイダ220は、メディア・コンテナ・ファイルを作成するために、上記考察され、図10に示すメディア・コンテンツ・サーバの各機能を実際に構成することもできる。
【0225】
メディア処理サーバ200のトラックセレクタ230は、メディア・コンテナ・ファイル内のトラックおよびサブトラックに割り当てられたオルタネートグループ識別子を使用して、メディアセッションをセットアップするときにどのトラックまたはサブトラックを使用すべきか選択する。好ましい実施形態では、トラックセレクタ230は、同じコンテンツに関連し、先に開示のメディア・コンテナ・ファイルにおいて定義されている複数のサブトラックの中から1つのサブトラックを選択する。トラックセレクタ230は、メディアセッションのセットアップと関連して動作可能であり、それによって、メディアセッションを開始に用いる初期トラック/サブトラックを選択する。
【0226】
パケットコンパイラ240は、トラックセレクタ230により選択されたトラック/サブトラックに対応するメディアデータを取り出す。好ましい実施形態では、サブトラックが選択されるときに、選択されるサブトラックと関連付けられ、メディア・コンテナ・ファイルに含まれるサブトラック情報を使用して、取り出すべきメディア・コンテナ・ファイル内のメディアデータの部分が識別される。メディアデータはデータパケットへと編成、コンパイルされ、データパケットは送信機210により少なくとも1つのユーザ端末に送信される。
【0227】
進行中のメディアセッションの間に、トラックセレクタ230は、初期のサブトラックまたはトラックと同じコンテンツに関連する別のサブトラックまたはトラックに切り換わることができる。トラックセレクタ230は、そのような切換えを、前述のようにメディア・コンテナ・ファイル内のトラックおよびサブトラックに割り当てられたスイッチグループ識別子に基づいて行う。次いでパケットコンパイラ240は、新しく選択されたサブトラックまたはトラックと関連付けられたメディアデータを取り出し、当該メディアデータを、送信機210により送信されるデータパケットへとコンパイルする。
【0228】
メディア処理サーバ200のユニット210〜240は、ソフトウェア、ハードウェア、またはその組合せとして実施され、または提供され得る。ソフトウェアベースの実施態様の場合には、メディア・コンテンツ・サーバ200またはその一部を実施するコンピュータプログラム製品は、汎用の、または特別に適合されたコンピュータ、プロセッサ、またはマイクロプロセッサ上で実行されるソフトウェアまたはコンピュータプログラムを含む。ソフトウェアは、図13に示すコンピュータ・プログラム・コード要素またはソフトウェアコード部分を含む。プログラムは、全部または一部が、磁気ディスク、CD−ROM、DVDディスク、USBメモリ、ハードディスク、光磁気メモリといった1つまたは複数の適切なコンピュータ可読媒体またはデータ記憶手段に、RAMまたは揮発性メモリに、ROMまたはフラッシュメモリに、ファームウェアとして、あるいはデータサーバ上で記憶され得る。
【0229】
ユニット210〜250はすべて、通信システムの単一のネットワークノード内のメディア処理サーバ200において実施され得る。あるいは、分散型の実施態様も可能であり、本発明の範囲内である。そのような場合には、メディア処理サーバ200の異なるユニット210〜250は異なるネットワークノードに配置され得るが、にもかかわらず、前述のようにそれぞれの目的の動作を実行する。
【0230】
前述の各実施形態は、本発明の少数の説明例にすぎないものと理解すべきである。各実施形態には、本発明の範囲を逸脱することなく、様々な改変、組合せおよび変更が加えられ得ることを当業者は理解するであろう。特に、異なる実施形態における異なる部分の解決策を、技術的に可能な場合には、他の構成として組み合わせることができる。しかし、本発明の範囲は、添付の特許請求の範囲により定義されるものである。
【0231】
参照文献
[1]ISO/IEC 14496−12:2008,Information technology−Coding of audio−visual objects−Part 12:ISO base media file format
[2]ISO/IEC 14496−15:2004,Information technology−Coding of audio−visual objects−Part 15:Advanced Video Coding(AVC)file format
[3]ISO/IEC 14496−15:2004/Amd 2:2008,Information technology−Coding of audio−visual objects−Part 15:Advanced Video Coding(AVC)file format;Amendment 2:File format support for Scalable Video Coding(SVC)
[4]ISO/IEC 14496−15:2004/FPDAmd 3,Information technology−Coding of audio−visual objects−Part 15:Advanced Video Coding(AVC)file format;Amendment 3:File format support for Multiview Video Coding
[5]ISO/IEC 14496−10:2009,Information technology−Coding of audio−visual objects−Part 10:Advanced Video Coding
【特許請求の範囲】
【請求項1】
メディア・コンテナ・ファイル(1)を生成する方法であって、
a)前記メディア・コンテナ・ファイル(1)において、前記メディア・コンテナ・ファイル(1)内のメディアトラック(12)により定義され、個々のサブストリームを構成する複数のメディアデータ部分(4,5;6,7,8)を含むメディアデータ(2;3)を編成するステップと、
b)前記メディア・コンテナ・ファイル(1)において、前記メディアトラック(12)において定義される複数のサブトラックのサブトラックごとに、前記サブトラックに属する前記メディアデータ(2;3)のメディアデータ部分(4,5;6,7,8)を識別するサブトラック情報(72,74)を提供するステップと、
c)前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの少なくとも1つのサブトラックについて、前記メディア・コンテナ・ファイル(1)において編成され、前記少なくとも1つのサブトラックにより定義される前記メディアデータ部分(4;6)と同じコンテンツに関連する他のメディアデータ(5;7,8)に関連して、前記少なくとも1つのサブトラックにより定義される前記メディアデータ部分(4;6)の選択的処理を定義する選択情報(62,64)を提供するステップと
を含む方法。
【請求項2】
前記提供するステップc)は、前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの前記少なくとも1つのサブトラックについて、前記複数のサブトラックの残りのサブトラックにより定義される残りのメディアデータ部分(5;7,8)に関連して、前記少なくとも1つのサブトラックにより定義される前記メディアデータ部分(4;6)の選択的処理を定義するサブトラック情報(62,64)を提供することを含む請求項1に記載の方法。
【請求項3】
前記提供するステップc)は、前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの前記少なくとも1つのサブトラックについて、メディアセッションの間に処理されるべきサブストリームを選択するときに前記メディアセッションのセットアップと関連して適用できるオルタネートグループ識別子(64)を提供するステップを含む請求項1または2に記載の方法。
【請求項4】
前記提供するステップc)は、前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの前記少なくとも1つのサブトラックについて、進行中のメディアセッションの間に異なるストリームおよび/またはサブストリームを切換えるときに適用できるスイッチグループ識別子(62)を提供するステップを含む請求項1〜3のいずれか1項に記載の方法。
【請求項5】
前記メディアデータ(2)は、ベース層を構成する第1のメディアデータ部分(4)と、少なくとも1つの拡張層を構成する少なくとも1つの第2のメディアデータ部分(5)とを含むスケーラブルビデオ符号化データ(2)であり、前記提供するステップb)は、
前記メディア・コンテナ・ファイル(1)において、第1のサブトラックについて、前記第1のメディアデータ部分(4)を識別するサブトラック情報(72)を提供するステップと、
前記メディア・コンテナ・ファイル(1)において、少なくとも1つの第2のサブトラックについて、前記少なくとも1つの第2のメディアデータ部分(5)を識別するサブトラック情報(74)を提供するステップと
を含む請求項1〜4のいずれか1項に記載の方法。
【請求項6】
前記メディアデータ(3)は、第1のビューを構成する第1のビデオデータ部分(6)と、少なくとも1つの第2のビューを構成する少なくとも1つの第2のビデオデータ部分(7,8)とを含むマルチビュービデオ符号化データ(3)であり、前記提供するステップb)は、
前記メディア・コンテナ・ファイル(1)において、第1のサブトラックについて、前記第1のメディアデータ部分(6)を識別するサブトラック情報(72)を提供するステップと、
前記メディア・コンテナ・ファイル(1)において、少なくとも1つの第2のサブトラックについて、前記少なくとも1つの第2のメディアデータ部分(7,8)を識別するサブトラック情報(74)を提供するステップと
を含む請求項1〜5のいずれか1項に記載の方法。
【請求項7】
前記メディア・コンテナ・ファイル(1)において、前記メディアトラック(12)が複数のサブトラックを含むことを示す事前定義の値を有する、前記メディアトラック(12)により定義される前記メディアデータ(2;3)の選択的処理を定義するトラック選択情報(40)を提供するステップをさらに含む請求項1〜6のいずれか1項に記載の方法。
【請求項8】
前記提供するステップc)は前記複数のサブトラックの第1の部分について実行され、前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの第2の残りの部分に適用できる、前記メディアトラック(12)により定義される前記メディアデータ(2;3)の選択的処理を定義するトラック選択情報(40)を提供するステップをさらに含む請求項1〜7のいずれか1項に記載の方法。
【請求項9】
メディア・コンテナ・ファイル(1)を生成するためのメディア・コンテンツ・サーバ(100)であって、
前記メディア・コンテナ・ファイル(1)において、メディアトラック(12)により定義され、個々のサブストリームを定義する複数のメディアデータ部分(4,5;6,7,8)を含む前記メディアデータ(2;3)を編成するように構成されたデータオーガナイザ(120)と、
前記メディア・コンテナ・ファイル(1)において、前記メディアトラック(12)において定義される複数のサブトラックのサブトラックごとに、前記サブトラックに属する前記メディアデータ(2;3)のメディアデータ部分(4,5;6,7,8)を識別するサブトラック情報(72,74)を提供するように構成されたサブトラック情報プロバイダ(140)と、
前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの少なくとも1つのサブトラックについて、前記メディア・コンテナ・ファイル(1)において編成され、前記少なくとも1つのサブトラックにより定義される前記メディアデータ部分(4;6)と同じコンテンツに関連する他のメディアデータ(5;7,8)に関連して、前記少なくとも1つのサブトラックにより定義される前記メディアデータ部分(4;6)の選択的処理を定義する選択情報(62,64)を提供するように構成された選択情報プロバイダ(130)と
を備えるメディア・コンテンツ・サーバ。
【請求項10】
前記選択情報プロバイダ(130)は、前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの前記少なくとも1つのサブトラックについて、メディアセッションの間に処理されるべきサブストリームを選択するときに前記メディアセッションのセットアップと関連して適用できるオルタネートグループ識別子(64)を提供するように構成されたオルタネートグループ識別子プロバイダ(132)を備える請求項9に記載のメディア・コンテンツ・サーバ。
【請求項11】
前記選択情報プロバイダ(130)は、前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの前記少なくとも1つのサブトラックについて、進行中のメディアセッションの間に異なるストリームおよび/またはサブストリームを切換えるときに適用できるスイッチグループ識別子(62)を提供するように構成されたスイッチグループ識別子プロバイダ(134)を備える請求項9または10に記載のメディア・コンテンツ・サーバ。
【請求項12】
前記メディアデータ(2)は、ベース層を構成する第1のメディアデータ部分(4)と、少なくとも1つの拡張層を構成する少なくとも1つの第2のメディアデータ部分(5)とを含むスケーラブルビデオ符号化データ(2)であり、前記サブトラック情報プロバイダ(140)は、前記メディア・コンテナ・ファイル(1)において、第1のサブトラックについて、前記第1のメディアデータ部分(4)を識別するサブトラック情報(72)を提供し、前記メディア・コンテナ・ファイル(1)において、少なくとも1つの第2のサブトラックについて、前記少なくとも1つの第2のメディアデータ部分(5)を識別するサブトラック情報(74)を提供するように構成されている請求項9〜11のいずれか1項に記載のメディア・コンテンツ・サーバ。
【請求項13】
前記メディアデータ(3)は、第1のビューを構成する第1のビデオデータ部分(6)と、少なくとも1つの第2のビューを構成する少なくとも1つの第2のビデオデータ部分(7,8)とを含むマルチビュービデオ符号化データ(3)であり、前記サブトラック情報プロバイダ(140)は、前記メディア・コンテナ・ファイル(1)において、第1のサブトラックについて、前記第1のメディアデータ部分(6)を識別するサブトラック情報(72)を提供し、前記メディア・コンテナ・ファイル(1)において、少なくとも1つの第2のサブトラックについて、前記少なくとも1つの第2のメディアデータ部分(7,8)を識別するサブトラック情報(74)を提供するように構成されている請求項9〜12のいずれか1項に記載のメディア・コンテンツ・サーバ。
【請求項14】
前記メディア・コンテナ・ファイル(1)において、前記メディアトラック(12)が複数のサブトラックを含むことを示す事前定義の値を有する、前記メディアトラック(12)により定義される前記メディアデータ(2;3)の選択的処理を定義するトラック選択情報(40)を提供するように構成されたトラック選択情報プロバイダ(150)をさらに備える請求項9〜13のいずれか1項に記載のメディア・コンテンツ・サーバ。
【請求項15】
前記選択情報プロバイダ(130)は、前記複数のサブトラックの第1の部分についての選択的処理を定義する個々の選択情報(60)を割り当てるように構成されており、前記メディア・コンテンツ・サーバ(100)は、前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの第2の残りの部分に適用できる、前記メディアトラック(12)により定義される前記メディアデータ(2;3)の選択的処理を定義するトラック選択情報(40)を提供するように構成されたトラック選択情報プロバイダ(150)をさらに備える請求項9〜14のいずれか1項に記載のメディア・コンテンツ・サーバ。
【請求項16】
個々のサブストリームを構成する複数のメディアデータ部分(4,5;6,7,8)を含むメディアデータ(2;3)と、
前記メディアデータ(2;3)を定義するメディアトラック(12)と、
前記メディアトラック(12)において定義される複数のサブトラックのサブトラックごとに、前記サブトラックに属する前記メディアデータ(2;3)のメディアデータ部分(4,5;6,7,8)を識別するサブトラック情報(72,74)と、
前記複数のサブトラックの少なくとも1つのサブトラックについて、前記メディア・コンテナ・ファイル(1)において編成され、前記少なくとも1つのサブトラックにより定義される前記メディアデータ部分(4;6)と同じコンテンツに関連する他のメディアデータ(5;7,8)に関連して、前記少なくとも1つのサブトラックにより定義される前記メディアデータ部分(4;6)の選択的処理を定義する選択情報(62,64)と
を含むメディア・コンテナ・ファイル(1)。
【請求項17】
前記選択情報(64)は、メディアセッションの間に処理されるべきサブストリームを選択するときに前記メディアセッションのセットアップと関連して適用できるオルタネートグループ識別子(64)を含む請求項16に記載のメディア・コンテナ・ファイル。
【請求項18】
前記選択情報(62)は、進行中のメディアセッションの間に異なるストリームおよび/またはサブストリームを切換えるときに適用できるスイッチグループ識別子(62)を含む請求項16または17に記載のメディア・コンテナ・ファイル。
【請求項19】
前記メディアデータ(2)は、ベース層を構成する第1のメディアデータ部分(4)と、少なくとも1つの拡張層を構成する少なくとも1つの第2のメディアデータ部分(5)とを含むスケーラブルビデオ符号化データ(2)であり、前記サブトラック情報(72,74)は、
第1のサブトラックについて、前記第1のメディアデータ部分(4)を識別する第1のサブトラック情報(72)と、
少なくとも1つの第2のサブトラックについて、前記少なくとも1つの第2のメディアデータ部分(5)を識別する少なくとも1つの第2のサブトラック情報(74)と
を含む請求項16〜18のいずれか1項に記載のメディア・コンテナ・ファイル。
【請求項20】
前記メディアデータ(3)は、第1のビューを構成する第1のビデオデータ部分(6)と、少なくとも1つの第2のビューを構成する少なくとも1つの第2のビデオデータ部分(7,8)とを含むマルチビュービデオ符号化データ(3)であり、前記サブトラック情報(72,74)は、
第1のサブトラックについて、前記第1のメディアデータ部分(6)を識別する第1のサブトラック情報(72)と、
少なくとも1つの第2のサブトラックについて、前記少なくとも1つの第2のメディアデータ部分(7,8)を識別する少なくとも1つの第2のサブトラック情報(74)と
を含む請求項16〜19のいずれか1項に記載のメディア・コンテナ・ファイル。
【請求項21】
前記メディアトラック(12)が複数のサブトラックを含むことを示す事前定義の値を有する、前記メディアトラック(12)により定義される前記メディアデータ(2;3)の選択的処理を定義するトラック選択情報(40)をさらに含む請求項16〜20のいずれか1項に記載のメディア・コンテナ・ファイル。
【請求項22】
前記複数のサブトラックの第1の部分が個々の選択情報(62,64)を有し、前記メディア・コンテナ・ファイル(1)は、前記複数のサブトラックの第2の残りの部分に適用できる、前記メディアトラック(12)により定義される前記メディアデータ(2;3)の選択的処理を定義するトラック選択情報(40)をさらに含む請求項16〜21のいずれか1項に記載のメディア・コンテナ・ファイル。
【請求項23】
メディア・コンテナ・ファイル(1)において編成される、個々のサブストリームを定義する複数のメディアデータ部分(4,5;6,7,8)を含むメディアデータ(2;3)を定義するメディアトラック(12)と、前記メディアトラック(12)において定義される複数のサブトラックのサブトラックごとに、前記サブトラックに属する前記メディアデータ(2;3)のメディアデータ部分(4,5;6,7,8)を識別するサブトラック情報(72,74)と、前記複数のサブトラックの少なくとも1つのサブトラックについて、同じコンテンツに関連するストリームおよび/またはサブストリームの間のストリーム選択基準を構成するオルタネートグループ識別子(64)とを含むメディア・コンテナ・ファイル(1)を提供するステップと、
メディアセッションのセットアップと関連して、前記オルタネートグループ識別子(64)に基づき、前記複数のサブトラックの中からサブトラックを選択するステップと、
前記選択されるサブトラックと関連付けられる前記サブトラック情報(72,74)に基づき、前記メディア・コンテナ・ファイル(1)からメディアデータ(2;3)を抽出することによりデータパケットをコンパイルするステップと、
前記メディアセッションの間に前記データパケットを少なくとも1つのユーザ端末に送信するステップと
を含むメディア処理の方法。
【請求項24】
メディア・コンテナ・ファイル(1)において編成される、個々のサブストリームを定義する複数のメディアデータ部分(4,5;6,7,8)を含むメディアデータ(2;3)を定義するメディアトラック(12)と、前記メディアトラック(12)において定義される複数のサブトラックのサブトラックごとに、前記サブトラックに属する前記メディアデータ(2;3)のメディアデータ部分(4,5;6,7,8)を識別するサブトラック情報(72,74)と、前記複数のサブトラックの少なくとも1つのサブトラックについて、同じコンテンツに関連するストリームおよび/またはサブストリームの間のストリーム選択基準を構成するオルタネートグループ識別子(64)とを含むメディア・コンテナ・ファイル(1)を提供するように構成されたコンテナプロバイダ(220)と、
メディアセッションのセットアップと関連して、前記オルタネートグループ識別子(64)に基づき、前記複数のサブトラックの中からサブトラックを選択するように構成されたトラックセレクタ(230)と、
前記選択されるサブトラックと関連付けられる前記サブトラック情報(72,74)に基づき、前記メディア・コンテナ・ファイル(1)からメディアデータ(2;3)を抽出することによりデータパケットをコンパイルするように構成されたパケットコンパイラ(240)と、
前記メディアセッションの間に前記データパケットを少なくとも1つのユーザ端末に送信するように構成された送信機(210)と
を備えるメディア処理サーバ(200)。
【請求項25】
メディア・コンテナ・ファイル(1)において編成される、個々のサブストリームを定義する複数のメディアデータ部分(4,5;6,7,8)を含むメディアデータ(2;3)を定義するメディアトラック(12)と、前記メディアトラック(12)において定義される複数のサブトラックのサブトラックごとに、前記サブトラックに属する前記メディアデータ(2,3)のメディアデータ部分(4,5;6,7,8)を識別するサブトラック情報(72,74)と、前記複数のサブトラックの少なくとも1つのサブトラックについて、同じコンテンツに関連するストリームおよび/またはサブストリームの間のストリーム切換え基準を構成するスイッチグループ識別子(62)とを含むメディア・コンテナ・ファイル(1)を提供するステップと、
少なくとも1つのユーザ端末(300,310,320)への前記メディア・コンテナ・ファイル(1)に含まれるメディアデータ(2;3)の送信を伴う進行中のメディアセッションの間に、前記スイッチグループ識別子(62)に基づいて前記複数のサブトラックの中からサブトラックを選択するステップと、
前記選択されるサブトラックと関連付けられる前記サブトラック情報(72,74)に基づき、前記メディア・コンテナ・ファイル(1)からメディアデータ(2;3)を抽出することによりデータパケットをコンパイルするステップと、
前記選択されるサブトラックのメディアデータ(2;3)への切換えに影響を及ぼすために、前記進行中のメディアセッションの間に、前記少なくとも1つのユーザ端末(300,310,320)に前記データパケットを送信するステップと
を含むメディア処理の方法。
【請求項26】
メディア・コンテナ・ファイル(1)において編成される、個々のサブストリームを定義する複数のメディアデータ部分を含むメディアデータ(2;3)を定義するメディアトラック(12)と、前記メディアトラック(12)において定義される複数のサブトラックのサブトラックごとに、前記サブトラックに属する前記メディアデータ(2;3)のメディアデータ部分(4,5;6,7,8)を識別するサブトラック情報(72,74)と、前記複数のサブトラックの少なくとも1つのサブトラックについて、同じコンテンツに関連するストリームおよび/またはサブストリームの間のストリーム切換え基準を構成するスイッチグループ識別子(62)とを含むメディア・コンテナ・ファイル(1)を提供するように構成されたコンテナプロバイダ(220)と、
少なくとも1つのユーザ端末(300,310,320)への前記メディア・コンテナ・ファイル(1)に含まれるメディアデータ(2,3)の送信を伴う進行中のメディアセッションの間に、前記スイッチグループ識別子(62)に基づいて前記複数のサブトラックの中からサブトラックを選択するように構成されたトラックセレクタ(230)と、
前記選択されるサブトラックと関連付けられる前記サブトラック情報(72,74)に基づき、前記メディア・コンテナ・ファイル(1)からメディアデータ(2,3)を抽出することによりデータパケットをコンパイルするように構成されたパケットコンパイラ(240)と、
前記選択されるサブトラックのメディアデータ(2;3)への切換えに影響を及ぼすために、前記進行中のメディアセッションの間に、前記少なくとも1つのユーザ端末(300,310,320)に前記データパケットを送信するように構成された送信機(210)と
を備えるメディア処理サーバ(200)。
【請求項1】
メディア・コンテナ・ファイル(1)を生成する方法であって、
a)前記メディア・コンテナ・ファイル(1)において、前記メディア・コンテナ・ファイル(1)内のメディアトラック(12)により定義され、個々のサブストリームを構成する複数のメディアデータ部分(4,5;6,7,8)を含むメディアデータ(2;3)を編成するステップと、
b)前記メディア・コンテナ・ファイル(1)において、前記メディアトラック(12)において定義される複数のサブトラックのサブトラックごとに、前記サブトラックに属する前記メディアデータ(2;3)のメディアデータ部分(4,5;6,7,8)を識別するサブトラック情報(72,74)を提供するステップと、
c)前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの少なくとも1つのサブトラックについて、前記メディア・コンテナ・ファイル(1)において編成され、前記少なくとも1つのサブトラックにより定義される前記メディアデータ部分(4;6)と同じコンテンツに関連する他のメディアデータ(5;7,8)に関連して、前記少なくとも1つのサブトラックにより定義される前記メディアデータ部分(4;6)の選択的処理を定義する選択情報(62,64)を提供するステップと
を含む方法。
【請求項2】
前記提供するステップc)は、前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの前記少なくとも1つのサブトラックについて、前記複数のサブトラックの残りのサブトラックにより定義される残りのメディアデータ部分(5;7,8)に関連して、前記少なくとも1つのサブトラックにより定義される前記メディアデータ部分(4;6)の選択的処理を定義するサブトラック情報(62,64)を提供することを含む請求項1に記載の方法。
【請求項3】
前記提供するステップc)は、前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの前記少なくとも1つのサブトラックについて、メディアセッションの間に処理されるべきサブストリームを選択するときに前記メディアセッションのセットアップと関連して適用できるオルタネートグループ識別子(64)を提供するステップを含む請求項1または2に記載の方法。
【請求項4】
前記提供するステップc)は、前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの前記少なくとも1つのサブトラックについて、進行中のメディアセッションの間に異なるストリームおよび/またはサブストリームを切換えるときに適用できるスイッチグループ識別子(62)を提供するステップを含む請求項1〜3のいずれか1項に記載の方法。
【請求項5】
前記メディアデータ(2)は、ベース層を構成する第1のメディアデータ部分(4)と、少なくとも1つの拡張層を構成する少なくとも1つの第2のメディアデータ部分(5)とを含むスケーラブルビデオ符号化データ(2)であり、前記提供するステップb)は、
前記メディア・コンテナ・ファイル(1)において、第1のサブトラックについて、前記第1のメディアデータ部分(4)を識別するサブトラック情報(72)を提供するステップと、
前記メディア・コンテナ・ファイル(1)において、少なくとも1つの第2のサブトラックについて、前記少なくとも1つの第2のメディアデータ部分(5)を識別するサブトラック情報(74)を提供するステップと
を含む請求項1〜4のいずれか1項に記載の方法。
【請求項6】
前記メディアデータ(3)は、第1のビューを構成する第1のビデオデータ部分(6)と、少なくとも1つの第2のビューを構成する少なくとも1つの第2のビデオデータ部分(7,8)とを含むマルチビュービデオ符号化データ(3)であり、前記提供するステップb)は、
前記メディア・コンテナ・ファイル(1)において、第1のサブトラックについて、前記第1のメディアデータ部分(6)を識別するサブトラック情報(72)を提供するステップと、
前記メディア・コンテナ・ファイル(1)において、少なくとも1つの第2のサブトラックについて、前記少なくとも1つの第2のメディアデータ部分(7,8)を識別するサブトラック情報(74)を提供するステップと
を含む請求項1〜5のいずれか1項に記載の方法。
【請求項7】
前記メディア・コンテナ・ファイル(1)において、前記メディアトラック(12)が複数のサブトラックを含むことを示す事前定義の値を有する、前記メディアトラック(12)により定義される前記メディアデータ(2;3)の選択的処理を定義するトラック選択情報(40)を提供するステップをさらに含む請求項1〜6のいずれか1項に記載の方法。
【請求項8】
前記提供するステップc)は前記複数のサブトラックの第1の部分について実行され、前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの第2の残りの部分に適用できる、前記メディアトラック(12)により定義される前記メディアデータ(2;3)の選択的処理を定義するトラック選択情報(40)を提供するステップをさらに含む請求項1〜7のいずれか1項に記載の方法。
【請求項9】
メディア・コンテナ・ファイル(1)を生成するためのメディア・コンテンツ・サーバ(100)であって、
前記メディア・コンテナ・ファイル(1)において、メディアトラック(12)により定義され、個々のサブストリームを定義する複数のメディアデータ部分(4,5;6,7,8)を含む前記メディアデータ(2;3)を編成するように構成されたデータオーガナイザ(120)と、
前記メディア・コンテナ・ファイル(1)において、前記メディアトラック(12)において定義される複数のサブトラックのサブトラックごとに、前記サブトラックに属する前記メディアデータ(2;3)のメディアデータ部分(4,5;6,7,8)を識別するサブトラック情報(72,74)を提供するように構成されたサブトラック情報プロバイダ(140)と、
前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの少なくとも1つのサブトラックについて、前記メディア・コンテナ・ファイル(1)において編成され、前記少なくとも1つのサブトラックにより定義される前記メディアデータ部分(4;6)と同じコンテンツに関連する他のメディアデータ(5;7,8)に関連して、前記少なくとも1つのサブトラックにより定義される前記メディアデータ部分(4;6)の選択的処理を定義する選択情報(62,64)を提供するように構成された選択情報プロバイダ(130)と
を備えるメディア・コンテンツ・サーバ。
【請求項10】
前記選択情報プロバイダ(130)は、前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの前記少なくとも1つのサブトラックについて、メディアセッションの間に処理されるべきサブストリームを選択するときに前記メディアセッションのセットアップと関連して適用できるオルタネートグループ識別子(64)を提供するように構成されたオルタネートグループ識別子プロバイダ(132)を備える請求項9に記載のメディア・コンテンツ・サーバ。
【請求項11】
前記選択情報プロバイダ(130)は、前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの前記少なくとも1つのサブトラックについて、進行中のメディアセッションの間に異なるストリームおよび/またはサブストリームを切換えるときに適用できるスイッチグループ識別子(62)を提供するように構成されたスイッチグループ識別子プロバイダ(134)を備える請求項9または10に記載のメディア・コンテンツ・サーバ。
【請求項12】
前記メディアデータ(2)は、ベース層を構成する第1のメディアデータ部分(4)と、少なくとも1つの拡張層を構成する少なくとも1つの第2のメディアデータ部分(5)とを含むスケーラブルビデオ符号化データ(2)であり、前記サブトラック情報プロバイダ(140)は、前記メディア・コンテナ・ファイル(1)において、第1のサブトラックについて、前記第1のメディアデータ部分(4)を識別するサブトラック情報(72)を提供し、前記メディア・コンテナ・ファイル(1)において、少なくとも1つの第2のサブトラックについて、前記少なくとも1つの第2のメディアデータ部分(5)を識別するサブトラック情報(74)を提供するように構成されている請求項9〜11のいずれか1項に記載のメディア・コンテンツ・サーバ。
【請求項13】
前記メディアデータ(3)は、第1のビューを構成する第1のビデオデータ部分(6)と、少なくとも1つの第2のビューを構成する少なくとも1つの第2のビデオデータ部分(7,8)とを含むマルチビュービデオ符号化データ(3)であり、前記サブトラック情報プロバイダ(140)は、前記メディア・コンテナ・ファイル(1)において、第1のサブトラックについて、前記第1のメディアデータ部分(6)を識別するサブトラック情報(72)を提供し、前記メディア・コンテナ・ファイル(1)において、少なくとも1つの第2のサブトラックについて、前記少なくとも1つの第2のメディアデータ部分(7,8)を識別するサブトラック情報(74)を提供するように構成されている請求項9〜12のいずれか1項に記載のメディア・コンテンツ・サーバ。
【請求項14】
前記メディア・コンテナ・ファイル(1)において、前記メディアトラック(12)が複数のサブトラックを含むことを示す事前定義の値を有する、前記メディアトラック(12)により定義される前記メディアデータ(2;3)の選択的処理を定義するトラック選択情報(40)を提供するように構成されたトラック選択情報プロバイダ(150)をさらに備える請求項9〜13のいずれか1項に記載のメディア・コンテンツ・サーバ。
【請求項15】
前記選択情報プロバイダ(130)は、前記複数のサブトラックの第1の部分についての選択的処理を定義する個々の選択情報(60)を割り当てるように構成されており、前記メディア・コンテンツ・サーバ(100)は、前記メディア・コンテナ・ファイル(1)において、前記複数のサブトラックの第2の残りの部分に適用できる、前記メディアトラック(12)により定義される前記メディアデータ(2;3)の選択的処理を定義するトラック選択情報(40)を提供するように構成されたトラック選択情報プロバイダ(150)をさらに備える請求項9〜14のいずれか1項に記載のメディア・コンテンツ・サーバ。
【請求項16】
個々のサブストリームを構成する複数のメディアデータ部分(4,5;6,7,8)を含むメディアデータ(2;3)と、
前記メディアデータ(2;3)を定義するメディアトラック(12)と、
前記メディアトラック(12)において定義される複数のサブトラックのサブトラックごとに、前記サブトラックに属する前記メディアデータ(2;3)のメディアデータ部分(4,5;6,7,8)を識別するサブトラック情報(72,74)と、
前記複数のサブトラックの少なくとも1つのサブトラックについて、前記メディア・コンテナ・ファイル(1)において編成され、前記少なくとも1つのサブトラックにより定義される前記メディアデータ部分(4;6)と同じコンテンツに関連する他のメディアデータ(5;7,8)に関連して、前記少なくとも1つのサブトラックにより定義される前記メディアデータ部分(4;6)の選択的処理を定義する選択情報(62,64)と
を含むメディア・コンテナ・ファイル(1)。
【請求項17】
前記選択情報(64)は、メディアセッションの間に処理されるべきサブストリームを選択するときに前記メディアセッションのセットアップと関連して適用できるオルタネートグループ識別子(64)を含む請求項16に記載のメディア・コンテナ・ファイル。
【請求項18】
前記選択情報(62)は、進行中のメディアセッションの間に異なるストリームおよび/またはサブストリームを切換えるときに適用できるスイッチグループ識別子(62)を含む請求項16または17に記載のメディア・コンテナ・ファイル。
【請求項19】
前記メディアデータ(2)は、ベース層を構成する第1のメディアデータ部分(4)と、少なくとも1つの拡張層を構成する少なくとも1つの第2のメディアデータ部分(5)とを含むスケーラブルビデオ符号化データ(2)であり、前記サブトラック情報(72,74)は、
第1のサブトラックについて、前記第1のメディアデータ部分(4)を識別する第1のサブトラック情報(72)と、
少なくとも1つの第2のサブトラックについて、前記少なくとも1つの第2のメディアデータ部分(5)を識別する少なくとも1つの第2のサブトラック情報(74)と
を含む請求項16〜18のいずれか1項に記載のメディア・コンテナ・ファイル。
【請求項20】
前記メディアデータ(3)は、第1のビューを構成する第1のビデオデータ部分(6)と、少なくとも1つの第2のビューを構成する少なくとも1つの第2のビデオデータ部分(7,8)とを含むマルチビュービデオ符号化データ(3)であり、前記サブトラック情報(72,74)は、
第1のサブトラックについて、前記第1のメディアデータ部分(6)を識別する第1のサブトラック情報(72)と、
少なくとも1つの第2のサブトラックについて、前記少なくとも1つの第2のメディアデータ部分(7,8)を識別する少なくとも1つの第2のサブトラック情報(74)と
を含む請求項16〜19のいずれか1項に記載のメディア・コンテナ・ファイル。
【請求項21】
前記メディアトラック(12)が複数のサブトラックを含むことを示す事前定義の値を有する、前記メディアトラック(12)により定義される前記メディアデータ(2;3)の選択的処理を定義するトラック選択情報(40)をさらに含む請求項16〜20のいずれか1項に記載のメディア・コンテナ・ファイル。
【請求項22】
前記複数のサブトラックの第1の部分が個々の選択情報(62,64)を有し、前記メディア・コンテナ・ファイル(1)は、前記複数のサブトラックの第2の残りの部分に適用できる、前記メディアトラック(12)により定義される前記メディアデータ(2;3)の選択的処理を定義するトラック選択情報(40)をさらに含む請求項16〜21のいずれか1項に記載のメディア・コンテナ・ファイル。
【請求項23】
メディア・コンテナ・ファイル(1)において編成される、個々のサブストリームを定義する複数のメディアデータ部分(4,5;6,7,8)を含むメディアデータ(2;3)を定義するメディアトラック(12)と、前記メディアトラック(12)において定義される複数のサブトラックのサブトラックごとに、前記サブトラックに属する前記メディアデータ(2;3)のメディアデータ部分(4,5;6,7,8)を識別するサブトラック情報(72,74)と、前記複数のサブトラックの少なくとも1つのサブトラックについて、同じコンテンツに関連するストリームおよび/またはサブストリームの間のストリーム選択基準を構成するオルタネートグループ識別子(64)とを含むメディア・コンテナ・ファイル(1)を提供するステップと、
メディアセッションのセットアップと関連して、前記オルタネートグループ識別子(64)に基づき、前記複数のサブトラックの中からサブトラックを選択するステップと、
前記選択されるサブトラックと関連付けられる前記サブトラック情報(72,74)に基づき、前記メディア・コンテナ・ファイル(1)からメディアデータ(2;3)を抽出することによりデータパケットをコンパイルするステップと、
前記メディアセッションの間に前記データパケットを少なくとも1つのユーザ端末に送信するステップと
を含むメディア処理の方法。
【請求項24】
メディア・コンテナ・ファイル(1)において編成される、個々のサブストリームを定義する複数のメディアデータ部分(4,5;6,7,8)を含むメディアデータ(2;3)を定義するメディアトラック(12)と、前記メディアトラック(12)において定義される複数のサブトラックのサブトラックごとに、前記サブトラックに属する前記メディアデータ(2;3)のメディアデータ部分(4,5;6,7,8)を識別するサブトラック情報(72,74)と、前記複数のサブトラックの少なくとも1つのサブトラックについて、同じコンテンツに関連するストリームおよび/またはサブストリームの間のストリーム選択基準を構成するオルタネートグループ識別子(64)とを含むメディア・コンテナ・ファイル(1)を提供するように構成されたコンテナプロバイダ(220)と、
メディアセッションのセットアップと関連して、前記オルタネートグループ識別子(64)に基づき、前記複数のサブトラックの中からサブトラックを選択するように構成されたトラックセレクタ(230)と、
前記選択されるサブトラックと関連付けられる前記サブトラック情報(72,74)に基づき、前記メディア・コンテナ・ファイル(1)からメディアデータ(2;3)を抽出することによりデータパケットをコンパイルするように構成されたパケットコンパイラ(240)と、
前記メディアセッションの間に前記データパケットを少なくとも1つのユーザ端末に送信するように構成された送信機(210)と
を備えるメディア処理サーバ(200)。
【請求項25】
メディア・コンテナ・ファイル(1)において編成される、個々のサブストリームを定義する複数のメディアデータ部分(4,5;6,7,8)を含むメディアデータ(2;3)を定義するメディアトラック(12)と、前記メディアトラック(12)において定義される複数のサブトラックのサブトラックごとに、前記サブトラックに属する前記メディアデータ(2,3)のメディアデータ部分(4,5;6,7,8)を識別するサブトラック情報(72,74)と、前記複数のサブトラックの少なくとも1つのサブトラックについて、同じコンテンツに関連するストリームおよび/またはサブストリームの間のストリーム切換え基準を構成するスイッチグループ識別子(62)とを含むメディア・コンテナ・ファイル(1)を提供するステップと、
少なくとも1つのユーザ端末(300,310,320)への前記メディア・コンテナ・ファイル(1)に含まれるメディアデータ(2;3)の送信を伴う進行中のメディアセッションの間に、前記スイッチグループ識別子(62)に基づいて前記複数のサブトラックの中からサブトラックを選択するステップと、
前記選択されるサブトラックと関連付けられる前記サブトラック情報(72,74)に基づき、前記メディア・コンテナ・ファイル(1)からメディアデータ(2;3)を抽出することによりデータパケットをコンパイルするステップと、
前記選択されるサブトラックのメディアデータ(2;3)への切換えに影響を及ぼすために、前記進行中のメディアセッションの間に、前記少なくとも1つのユーザ端末(300,310,320)に前記データパケットを送信するステップと
を含むメディア処理の方法。
【請求項26】
メディア・コンテナ・ファイル(1)において編成される、個々のサブストリームを定義する複数のメディアデータ部分を含むメディアデータ(2;3)を定義するメディアトラック(12)と、前記メディアトラック(12)において定義される複数のサブトラックのサブトラックごとに、前記サブトラックに属する前記メディアデータ(2;3)のメディアデータ部分(4,5;6,7,8)を識別するサブトラック情報(72,74)と、前記複数のサブトラックの少なくとも1つのサブトラックについて、同じコンテンツに関連するストリームおよび/またはサブストリームの間のストリーム切換え基準を構成するスイッチグループ識別子(62)とを含むメディア・コンテナ・ファイル(1)を提供するように構成されたコンテナプロバイダ(220)と、
少なくとも1つのユーザ端末(300,310,320)への前記メディア・コンテナ・ファイル(1)に含まれるメディアデータ(2,3)の送信を伴う進行中のメディアセッションの間に、前記スイッチグループ識別子(62)に基づいて前記複数のサブトラックの中からサブトラックを選択するように構成されたトラックセレクタ(230)と、
前記選択されるサブトラックと関連付けられる前記サブトラック情報(72,74)に基づき、前記メディア・コンテナ・ファイル(1)からメディアデータ(2,3)を抽出することによりデータパケットをコンパイルするように構成されたパケットコンパイラ(240)と、
前記選択されるサブトラックのメディアデータ(2;3)への切換えに影響を及ぼすために、前記進行中のメディアセッションの間に、前記少なくとも1つのユーザ端末(300,310,320)に前記データパケットを送信するように構成された送信機(210)と
を備えるメディア処理サーバ(200)。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公表番号】特表2012−523746(P2012−523746A)
【公表日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2012−504650(P2012−504650)
【出願日】平成21年11月6日(2009.11.6)
【国際出願番号】PCT/SE2009/051260
【国際公開番号】WO2010/117315
【国際公開日】平成22年10月14日(2010.10.14)
【出願人】(598036300)テレフオンアクチーボラゲット エル エム エリクソン(パブル) (2,266)
【Fターム(参考)】
【公表日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願日】平成21年11月6日(2009.11.6)
【国際出願番号】PCT/SE2009/051260
【国際公開番号】WO2010/117315
【国際公開日】平成22年10月14日(2010.10.14)
【出願人】(598036300)テレフオンアクチーボラゲット エル エム エリクソン(パブル) (2,266)
【Fターム(参考)】
[ Back to top ]