(57)【要約】  関係するメディアデータコンテナ（１０４）およびメタデータコンテナ（１０６）を有するファイル（１０２）を記録するための装置（１００）であって、装置は、第１のクロックに基づくパケット化された第１のメディアデータサンプルを含む第１のデータパケット（１１０）を受信し、第１のクロックとは異なる第２のクロックに基づく、第１の第１のメディアデータサンプルに関連する第２のメディアデータサンプルを含む第２のデータパケット（１１２）を受信し、基準クロックに対する第１のクロックの関係を示すための情報を含む第１の制御パケット（１１４）を受信し、基準クロックに対する第２のクロックの関係を示すための情報を含む第２の制御パケット（１１５）を受信するための受信器（１０８）と、受信された第１および第２のデータパケット（１１０，１１２）および受信された第１および第２の制御パケット（１１４，１１５）の少なくとも一部をメディアデータコンテナ（１０４）内に記憶し、関連したメタデータ（１２４，１２８）をメタデータコンテナ（１０６）内に記憶するためのレコーダ（１１６）とを含み、関連したメタデータは、受信された第１および第２のデータパケットおよび受信された第１および第２の制御パケットのタイミング情報、および、記憶された第１および第２のデータパケット、および、記憶された第１および第２の制御パケットの、メディアデータコンテナ内の位置を示す位置情報を含む。
2010532605.tif 000002
【特許請求の範囲】
【請求項１】
関係するメディアデータコンテナ（１０４）およびメタデータコンテナ（１０６）を有するファイル（１０２）を記録するための装置（１００）であって、
第１のクロックに基づくパケット化された第１のメディアデータサンプルを含む第１のデータパケット（１１０）を受信し、前記第１のクロックとは異なる第２のクロックに基づく、前記第１のメディアデータサンプルに関連する第２のメディアデータサンプルを含む第２のデータパケット（１１２）を受信し、基準クロックに対する前記第１のクロックの関係を示すための情報を含む第１の制御パケット（１１４）を受信し、前記基準クロックに対する前記第２のクロックの関係を示すための情報を含む第２の制御パケット（１１５）を受信するための受信器（１０８）と、
前記受信された第１および第２のデータパケット（１１０，１１２）、および、前記受信された第１および第２の制御パケット（１１４，１１５）の少なくとも一部を前記メディアデータコンテナ（１０４）内に記憶し、関連したメタデータ（１２４，１２８）を前記メタデータコンテナ（１０６）内に記憶するためのレコーダ（１１６）とを含み、前記関連したメタデータは、前記受信された第１および第２のデータパケットおよび前記受信された第１および第２の制御パケットのタイミング情報、および、前記記憶された第１および第２のデータパケット、および、前記記憶された第１および第２の制御パケットの、前記メディアデータコンテナ内の位置を示す位置情報を含む、装置。
【請求項２】
前記レコーダ（１１６）は、前記第１および第２の受信されたデータパケット（１１６）を、前記メディアデータコンテナ（１０４）の第１のチャンク（１１８）内にサンプルとして記憶し、前記受信された第１および第２の制御パケット（１１４，１１５）の前記一部を、前記メディアデータコンテナ（１０４）の第２のチャンク（１２２）内にサンプルとして記憶するように適合される、請求項１に記載の装置。
【請求項３】
前記レコーダ（１１６）は、前記第１および第２のチャンク（１１８，１２２）を、交互的な態様で前記メディアデータコンテナ（１０４）内に記憶するように適合される、請求項２に記載の装置。
【請求項４】
前記第１および第２の制御パケット（１１４，１１５）は、第１および第２のＲＴＣＰパケットであり、前記レコーダ（１１６）は、第１および第２のＲＴＣＰセンダーレポートを、前記受信された、関連した第１および第２の制御パケットの前記一部として記憶するように適合される、請求項１〜３のいずれかに記載の装置。
【請求項５】
前記レコーダ（１１６）は、前記第１および第２のデータパケット（１１０，１１２）の前記タイミング情報および前記位置情報を、前記メタデータコンテナ（１０６）の第１のトラック（１２４）内に記憶し、前記第１および第２の制御パケット（１１４，１１５）の前記タイミング情報および前記位置情報を、前記メタデータコンテナ（１０６）の第２のトラック（１２８）内に記憶するように適合される、請求項１〜４のいずれかに記載の装置。
【請求項６】
前記レコーダ（１１６）は、前記第１および第２のデータパケット（１１０，１１２）の前記タイミング情報を、第１および／または第２のデータパケットのタイミングから、前記第１のチャンク（１１８）内の第１および／または第２のデータパケットの関連したサンプル番号への索引付けを可能にする第１のサンプルテーブルボックス（ｓｔｔｓ）内に記憶し、第１のおよび／または第２の制御パケットのタイミングから、前記第２のチャンク（１２２）の前記第１のおよび／または第２の制御パケットに関連したサンプル番号への索引付けを可能にする第２のサンプルテーブルボックス（ｓｔｔｓ）内に、前記第１および第２の制御パケット（１１４，１１５）の前記タイミング情報を記憶するように適合される、請求項１〜５のいずれかに記載の装置。
【請求項７】
前記レコーダ（１１６）は、データ／制御パケットの、受信時間および／または伝送プロトコルタイムスタンプを、それぞれ、前記タイミング情報として記憶するように適合される、請求項６に記載の装置。
【請求項８】
前記レコーダ（１１６）は、前記ファイル（１０２）内に、各第１のチャンク（１１８）のインデックスを示す第１のチャンクオフセットテーブル（ｓｔｃｏ，ｃｏ６４）を記憶し、前記ファイル（１０２）内に、各第２のチャンク（１２２）のインデックスを示す第２のチャンクオフセットテーブル（ｓｔｃｏ，ｃｏ６４）を記憶するように適合される、請求項６に記載の装置。
【請求項９】
前記装置（１００）は、前記第１および第２のデータパケット（１１０，１１２）の記憶された伝送タイミング情報、および、前記第１および第２のデータパケットに関連した、前記記憶された第１および第２のデータ制御パケット（１１４，１１５）に含まれるＮＴＰタイムスタンプに基づいて、前記第１および第２のメディアデータサンプルを同期化するための同期化情報を決定するためのプロセッサ（６０２）を含む、請求項１〜８のいずれかに記載の装置。
【請求項１０】
前記プロセッサ（６０２）は、前記記憶された第１および第２のデータパケット（１００，１１２）に基づいて、前記記憶された第１および第２の制御パケット（１１４，１１５）を決定し、前記記憶された、関連したメタ情報（１２４，１２８）に基づいて、前記記憶されたデータパケット（１１０，１１２）のペイロードのための復号化情報（６０４，６０６，７０４，７０６）を決定するように構成され、前記復号化情報は、どの時点で前記記憶されたデータパケットのどのペイロードをリプレイするかを示す、請求項９に記載の装置。
【請求項１１】
前記プロセッサは、どの前記記憶されたデータパケット（１１０，１１２）が、前記第１または前記第２のメディアデータサンプルに関係するかを決定し、前記第１のメディアデータサンプルに関係する第１の復号化情報サンプル（６０２，７０２）を、前記メディアデータコンテナ（１０４）に記憶し、前記メディアコンテナ（１０４）内の前記第１の復号化情報サンプル（６０２，７０２）の位置を示す第１の復号化メタ情報（６０４，７０４）を、前記メタデータコンテナ（１０６）に記憶し、前記第２のメディアデータサンプルに関係する第２の復号化情報サンプル（６０２，７０２）を、前記メディアデータコンテナ（１０４）内に記憶し、前記メディアコンテナ（１０４）内の前記第２の復号化情報サンプル（６０２，７０２）の位置を示す第２の復号化メタ情報（６０４，７０４）を、前記メタデータコンテナ（１０６）内に記憶するように適合される、請求項１０に記載の装置。
【請求項１２】
前記受信器（１０８，１１０８）は、さらに、複数の暗号化キー（ｋn）を含むキーストリームパケット（１１１２）を受信するように適合され、各暗号化キーは、前記第１および／または前記第２のデータパケット（１１０，１１２，１１１０）のうちの少なくともいずれか一つのペイロードに関連し、前記レコーダは、前記受信されたキーストリームパケットを前記メディアデータコンテナ（１０４，１１０４）内に記憶し、関連した伝送タイミング情報を前記メタデータコンテナ（１０６，１１０６）に記憶するように構成される、請求項１〜１１のいずれかに記載の装置。
【請求項１３】
前記レコーダ（１１６，１１１６）は、前記キーストリームパケット（１１１２）を、サンプルとして前記メディアデータコンテナ（１０４，１１０４）のキーチャンク（１１２０）内に記憶し、前記関連した伝送タイミング情報、および、前記メディアデータコンテナ内の前記キーストリームパケットの位置を示す位置情報を、前記メタデータコンテナ（１０６，１１０６）のキートラック（１１２８）内に記憶するように適合される、請求項１２に記載の装置。
【請求項１４】
前記レコーダ（１１６，１１１６）は、キーストリームパケットとの伝送タイミングから、前記キーチャンク（１１２０）内のキーストリームパケットの関連したサンプル番号への索引付けを許容するキーサンプルテーブルボックス（ｓｔｔｓ）内に、前記伝送タイミング情報を記憶するように適合される、請求項１２または１３に記載の装置。
【請求項１５】
前記レコーダ（１１６，１１１６）は、キーストリームパケットの受信時間インデックスを、関連した伝送タイミング情報として記憶する、または、前記キーストリームパケットの受信時間付近の予め定められた時間間隔で受信されたデータパケットのパケットタイムスタンプを、キーストリームパケットの関連したタイミング情報として記憶するように適合される、請求項１２〜１４のいずれかに記載の装置。
【請求項１６】
前記プロセッサ（６０２）は、前記記憶された第１および第２のデータパケット（１１０，１１２）に基づいて、前記記憶された第１および第２の制御パケット（１１４，１１５）に基づいて、前記関連したメタ情報（１２４，１２８）に基づいて、および、前記記憶されたキーストリームパケット（１１１２）および前記関連したキーストリームメタ情報（１１２８）に基づいて、前記記憶された第１および／または第２のデータパケット（１１０，１１２）のペイロードに、復号化情報を割当てるように適合され、前記復号化情報は、どの暗号化キーを用いてどの時間に前記記憶された第１および／または第２のデータパケットのペイロードをリプレイするかを示す、請求項１２〜１５のいずれかに記載の装置。
【請求項１７】
前記プロセッサ（６０２）は、復号化情報サンプル内の前記復号化情報を、前記メディアデータコンテナ（１０４）内に記憶し、関連する復号化指令メタ情報を前記メタデータコンテナ（１０６）内に記憶するように適合される、請求項１６に記載の装置。
【請求項１８】
前記ファイル（１０２）は、前記ＩＳＯベースのメディアファイルフォーマットに基づく、請求項１〜１７のいずれかに記載の装置。
【請求項１９】
前記第１のデータパケット（１１０）は、パケット化された第１のメディアデータサンプルを含む第１のストリーム配信されたＲＴＰパケットであり、前記第２のデータパケット（１１２）は、パケット化された第１のメディアデータサンプルを含む第２のストリーム配信されたＲＴＰパケットであり、前記第１の制御パケット（１１４）は、前記第１のストリーム配信されたＲＴＰパケットに関係する第１のＲＴＣＰパケットであり、前記第２の制御パケット（１１５）は、前記第２のストリーム配信されたＲＴＰパケット（１１２）に関係する第２のＲＴＣＰパケットである、請求項１〜１８のいずれかに記載の装置。
【請求項２０】
関係するメディアデータコンテナ（１０４）およびメタデータコンテナ（１０６）を有するファイル（１０２）を記録するための方法であって、
第１のクロックに基づくパケット化された第１のメディアデータサンプルを含む第１のデータパケット（１１０）を受信し、前記第１のクロックとは異なる第２のクロックに基づく、前記第１の第１のメディアデータサンプルに関連する第２のメディアデータサンプルを含む第２のデータパケット（１１２）を受信し、基準クロックに対する前記第１のクロックの関係を示すための情報を含む第１の制御パケット（１１４）を受信し、前記基準クロックに対する前記第２のクロックの関係を示すための情報を含む第２の制御パケット（１１５）を受信するステップと、
前記受信された第１および第２のデータパケット（１１０，１１２）、および、前記受信された第１および第２の制御パケット（１１４，１１５）の少なくとも一部を前記メディアデータコンテナ（１０４）内に記憶し、関連したメタデータ（１２４，１２８）を前記メタデータコンテナ（１０６）内に記憶するステップとを含み、前記関連したメタデータは、前記受信された第１および第２のデータパケットおよび前記受信された第１および第２の制御パケットのタイミング情報、および、前記記憶された第１および第２のデータパケット、および、前記記憶された第１および第２の制御パケットの、前記メディアデータコンテナ内の位置を示す位置情報を含む、方法。
【請求項２１】
コンピュータまたはマイクロコントローラ上で実行されている場合に、請求項２０に記載の方法を実行するためのコンピュータプログラム。
【請求項２２】
ファイル（１０２）を読み出すための装置であって、前記ファイルは、前記ファイルに関係したメディアデータコンテナ（１０４）内に記憶された、第１のクロックに基づくパケット化された第１のメディアデータサンプルを含む第１のデータパケット（１１０）、および、第１のクロックとは異なる第２のクロックに基づくパケット化された第２のメディアデータサンプルを含む第２のデータパケット（１１２）を有し、かつ、前記ファイルは、記憶された、基準クロックに対する前記第１のクロックの関係を示すための情報を含む、関連した第１の制御パケット（１１４）の少なくとも一部を有し、かつ、記憶された、前記基準クロックに対する前記第２のクロックの関係を示すための情報を含む、関連した第２の制御パケット（１１５）の少なくとも一部を有し、前記ファイルは、前記ファイルのメタデータコンテナ（１０６）内に、記憶された、関連したメタデータ（１２４，１２８）を有し、前記関連したメタデータは、前記受信された第１および第２のデータパケット（１１０，１１２）および前記受信された第１および第２の制御パケット（１１４，１１５）のタイミング情報、および、前記記憶された第１および第２のデータパケットおよび前記記憶された第１および第２の制御パケットの、前記メディアデータコンテナ内の位置を示す位置情報を含み、前記装置は、
前記メタデータコンテナ（１０６）にアクセスし、前記メディアデータコンテナ（１０４）内の前記記憶された第１および第２のデータパケットおよび前記記憶された第１および第２の制御パケット（１１４，１１５）のタイミング情報を解析することにより、前記記憶された第１および第２のデータパケット（１１０，１１２）の出力スケジュールを決定するためのプロセッサと、
メタデータコンテナ（１０６）にアクセスし、前記メディアデータコンテナ（１０４）から前記データパケットを読み出すことによって、前記決定された出力スケジュールに従って、前記第１および第２のデータパケット（１１０，１１２）を出力するための出力コントローラとを含む、装置。
【請求項２３】
前記プロセッサは、前記出力スケジュールが前記第１および第２のデータパケット（１１０，１１２）の受信順序を反映するように前記出力スケジュールを決定するように適合され、前記受信順序は、前記受信された第１および第２のデータパケットの、記憶された伝送タイミング情報によって示される、請求項２２に記載の装置。
【請求項２４】
前記プロセッサは、前記第１および第２のデータパケット（１１０，１１２）の、記憶されたタイミング情報、および、前記記憶された第１および第２のデータ制御パケット（１１４，１１５）に含まれる基準タイムスタンプに基づいて、前記第１のデータパケットの出力スケジュールが、前記第１および第２のメディアデータサンプルのメディアタイミングに関して、前記第２のデータパケットの出力スケジュールと同期するように同期化情報を決定するように適合され、前記メディアタイミングは、基準時間情報に基づく、請求項２２に記載の装置。
【請求項２５】
前記ファイル（１０２）は、前記ＩＳＯベースのメディアファイルフォーマットに基づく、請求項２２〜２４のいずれかに記載の装置。
【請求項２６】
前記第１のデータパケット（１１０）は、パケット化された第１のメディアデータサンプルを含む第１のストリーム配信されたＲＴＰパケットであり、前記第２のデータパケット（１１２）は、パケット化された第１のメディアデータサンプルを含む第２のストリーム配信されたＲＴＰパケットであり、前記第１の制御パケット（１１４）は、前記第１のストリーム配信されたＲＴＰパケットに関係する第１のＲＴＣＰパケットであり、前記第２の制御パケット（１１５）は、前記第２のストリーム配信されたＲＴＰパケット（１１２）に関係する第２のＲＴＣＰパケットである、請求項２２〜２５のいずれかに記載の装置。
【請求項２７】
ファイル（１０２）を読み出すための方法であって、前記ファイルは、前記ファイルに関係したメディアデータコンテナ（１０４）内に記憶された、第１のクロックに基づくパケット化された第１のメディアデータサンプルを含む第１のデータパケット（１１０）、および、第１のクロックとは異なる第２のクロックに基づくパケット化された第２のメディアデータサンプルを含む第２のデータパケット（１１２）を有し、かつ、前記ファイルは、記憶された、基準クロックに対する前記第１のクロックの関係を示すための情報を含む、関連した第１の制御パケット（１１４）の少なくとも一部を有し、かつ、記憶された、前記基準クロックに対する前記第２のクロックの関係を示すための情報を含む、関連した第２の制御パケット（１１５）の少なくとも一部を有し、前記ファイルは、前記ファイルのメタデータコンテナ（１０６）内に、記憶された、関連したメタデータ（１２４，１２８）を有し、前記関連したメタデータは、前記受信された第１および第２のデータパケット（１１０，１１２）および前記受信された第１および第２の制御パケット（１１４，１１５）のタイミング情報、および、前記記憶された第１および第２のデータパケットおよび前記記憶された第１および第２の制御パケットの、前記メディアデータコンテナ内の位置を示す位置情報を含み、前記方法は、
前記メタデータコンテナ（１０６）にアクセスし、前記メディアデータコンテナ（１０４）内の、前記記憶された第１および第２のデータパケットおよび前記記憶された第１および第２の制御パケット（１１４，１１５）のタイミング情報を解析することにより、前記記憶された第１および第２のデータパケット（１１０，１１２）の出力スケジュールを決定するステップと、
メタデータコンテナ（１０６）にアクセスし、前記メディアデータコンテナ（１０４）から前記データパケットを読み出すことによって、前記決定された出力スケジュールに従って、前記第１および第２のデータパケット（１１０，１１２）を出力するステップとを含む、方法。
【請求項２８】
コンピュータまたはマイクロコントローラ上で実行されている場合に、請求項２７に記載の方法を実行するためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
発明は、伝送プロトコルデータパケットおよびそれに関連したサイド情報を、たとえば、ＩＳＯ（International Organization for Standardization）ベースのメディアファイルフォーマットに基づくファイルのような、メディアデータコンテナおよびメタデータコンテナを有するファイルに記憶すること、および／またはファイルから読み出すことに関する。
【背景技術】
【０００２】
様々な電子デバイスが、メディアデータストリームを受信し、提供することが可能である。そのようなメディアデータストリームは、例えば、ＤＶＢ−Ｈ標準（Digital Video Broadcasting−Handhelds）またはＤＶＢ−Ｔ標準（Digital Video Broadcasting Terrestrial）に従ってメディアストリームを送信するデジタルビデオブロードキャスティングネットワークから受信できる。
【０００３】
ＤＶＢ−Ｔは、国際標準ＩＳＯ／ＩＥＣ１３８１８（IEC=International Electrotechnical Commission）に従う、エレメンタリＭＰＥＧ−２（MPEG=Moving Pictures Expert Group）ビデオおよびオーディオストリームを含む、自己完結型ＭＰＥＧ−２伝送ストリームを用いる。ＭＰＥＧ−２伝送ストリームは、今日の伝送システムの多くにおいて用いられている多重送信である。それは、一般的にはオーディオおよびビデオであるが、他のデータでもある、一つ以上のメディアプログラムのストリーム多重送信である。ＭＰＥＧ−２伝送ストリームは、全てのメディアストリームにおいて、共通のクロックを共有し、タイムスタンプされたメディアサンプル（アクセスユニット，ＡＵ）を用いる。これにより、送信器と受信器のクロックの同期およびオーディオストリームとビデオストリームのリップ同期化（lip-synchronization）が可能になる。
【０００４】
ＤＶＢ−Ｈに対して、エレメンタリオーディオおよびビデオストリームは、ＩＰデータのキャスティングのために、ＲＴＰ（Real-Time Transport Protocol）、ＵＤＰ（User Datagram Protocol）、ＩＰ（Internet Protocol）およびＭＰＥ（Multi-Protocol Encapsulation）の形式でカプセル化される。ＲＴＰは、ＩＰネットワーク上でのマルチメディアデータの効果的なリアルタイム配信のために用いられる。多重送信は、典型的には、異なるネットワークポート、たとえば、ビデオのための一つのネットワークポートおよびオーディオのためのもう一つのネットワークポートを各々個別のメディアストリームに関連付けることによってなされる。異なるメディアは、大抵、異なるクロックまたはクロックレートを有する、異なるソースに端を発する。例えば、オーディオサンプルは、オーディオサンプリングデバイスのクロックレートに依存するサンプルレートを有し、ビデオフレームのフレームレートは、ビデオフレーム取得デバイスのクロックレートに依存する。そのようなクロックは、１００万分の数百よりも大きい固有の周波数誤差を有し、結果的に、一日に数十秒の累積誤差となる。「クロックスキュー」という用語は、クロックの発振器の公称周波数からの実際の周波数の差として定義される。もし、送信器のクロックが受信器のクロックよりも早く動作すると、受信器においてパケットが累積されることになる。もし、送信器のクロックが受信器のクロックよりも遅く動作すると、受信器のバッファがアンダーフィルとなる結果となる。したがって、もし、受信器のクロックレートが送信器のクロックレートと異なっていれば、受信器のバッファは、徐々にいっぱいになるか、空になる。また、クロックスキューは、受信器において、関連するオーディオおよびビデオサンプル間の非同期化をもたらし得る。
【０００５】
ＲＴＣＰ（Real-Time Transport Control Protocol）は、ＲＴＰストリームに対して、クロックの復元および同期化を可能にする。ＲＴＣＰチャネルは、各ＲＴＰストリームに関連付けられ、センダーレポート（ＳＲ）の形式での送信器から受信器への制御情報を含む。その逆も同様である。各ＲＴＣＰ  ＳＲは、２つのタイムスタンプ、すなわち、送信器のシステムクロック（基準時間）のＮＴＰ（Network Time Protocol）タイムスタンプおよび関連したＲＴＰストリームの対応するメディアタイムスタンプを含む。これらのＲＴＣＰ  ＳＲは、オーディオおよびビデオの両方に対して送られる。ＲＴＰおよびＮＴＰの時間の値から、ＲＴＰパケットは、タイムライン上に配置され、メディアが完璧に同期され得る。
【０００６】
ストリーミングサービスは、受信中にすぐに消費するために、時間的に制約された、または制約されない態様で配信される同期されたメディアストリームの組として定義される。各ストリーミングセッションは、オーディオ、ビデオおよび／またはタイムドテキストのようなリアルタイムメディアデータを含み得る。たとえば、携帯テレビの手段により動画のためのメディアデータを受けるユーザは、動画を見ること、および／または動画をファイルに録画することができる。一般的に、この目的のため、受信されたメディアストリームの受信されたデータパケットは、ファイルの未加工のメディアデータを記憶するために非パケット化される。すなわち、受信されたＲＴＰパケットまたはＭＰＥＧ−２パケットは、メディアデータサンプルの形式でそれらのペイロードを得るために最初に非パケット化される。そして、非パケット化の後、得られたメディアデータサンプルは、リプレイされるか、またはファイルに記憶される。得られたメディアサンプルは、一般的に、Ｈ．２６４／ＡＶＣ（AVC=Advanced Video Coding）ビデオフォーマット、および／またはＭＰＥＧ−４  ＨＥ−ＡＡＣｖ２（HE-AACv2=High-Efficiency Advanced Audio Coding version 2）オーディオフォーマットなどのフォーマットによって圧縮される。そのようなビデオおよび／またはオーディオフォーマットを有するメディアデータサンプルが記憶される場合、それらは、３ＧＰＰ（3rd Generation Partnership Project）ファイルフォーマットとしても知られる、いわゆる３ＧＰファイルフォーマット、またはＭＰ４（ＭＰＥＧ−４）ファイルフォーマットの形で記憶され得る。３ＧＰおよびＭＰ４の両方とも、ＩＳＯ／ＩＥＣ国際標準１４４９６−１２：２００５「オーディオビジュアルオブジェクトのインフォメーションテクノロジーコーディング−パート１２：ＩＳＯベースのメディアファイルフォーマット」において規定された、ＩＳＯベースのメディアファイルフォーマットから派生した。このフォーマットのファイルは、メディアデータおよびメタデータを含む。そのようなファイルを動作可能にするために、これらのデータの両方が提供されなければならない。メディアデータは、ファイルに関連したメディアデータコンテナ（ｍｄａｔ）に記憶され、メタデータはファイルのメタデータコンテナ（ｍｏｏｖ）に記憶される。従来、メディアデータコンテナは、実際のメディアサンプルを含む。すなわち、それは、たとえば、例えば、交互的で、時間が順序付けされたビデオおよび／またはオーディオフレームを含む。それによって、各メディアは、メディアコンテンツプロパティを記述する、それ自身のメタデータトラック（ｔｒａｋ）を、メタデータコンテナｍｏｏｖ内に有する。メタデータコンテナｍｏｏｖ内の付加的なコンテナ（ボックスともいう）は、ファイルプロパティ、ファイルコンテンツなどのについての情報を含み得る。
【０００７】
近年、国際標準化組織によって、ＩＳＯベースのメディアファイルフォーマットに基づいたファイルのための、いわゆる受信ヒントトラックが定義された。それらの受信ヒントトラックは、例えば、受信されたＭＰＥＧ−２伝送ストリームまたはＲＴＰパケットのような、多重送信された、および／またはパケット化されたストリームを記憶するために用いられ得る。受信ヒントトラックは、受信されたデータの、クライアント側での記憶およびプレイバックのために用いられ得る。それによって、一つのストリームの、受信されたＭＰＥＧ−２  ＴＳまたはＲＴＰパケットが、例えば、予め計算されたサンプルまたはコンストラクタとして、直接的に、受信ヒントトラック内に記憶される。
【０００８】
この手法には、データパケットを非多重送信および／または非パケット化し、全てのエレメンタリメディアストリーム（オーディオおよび／またはビデオ）に対して別々のメディアトラックを記載することに比べて、２つの利点がある。一つ目は、受信されたデータパケットの非多重送信、または別の処理が必要でないため、記憶中において受信デバイスに要求される複雑性を低くすることである。受信されたデータパケットの修正されない形式でのファイル記憶だけが実行される。二つ目は、いくつかの場合において、特に、メディアが伝送／多重送信レベルにおいて暗号化されているか、またはパケット化スキームが不明であると、受信されたデータパケットを別々のメディアトラックに非多重送信することが全く不可能であることである。三つ目は、最初の２点により、ＰＶＲ（PVR=Personal Video Recorder）アプリケーションにおいて、タイムシフト、すなわち、ファイルへの書込み、および、様々に時間をずらしての同じファイルからの即時読み出しが容易になる。
【０００９】
受信ヒントトラックからのプレイバックは、普通のストリーム受信をエミュレートし、受信ヒントトラックから、記憶されたデータパケットを、ＩＰ上で受信された通りに読み出すことによりなされ得る。メディアプレイバックタイミングを有するメディアトラックとは逆に、受信ヒントトラックは、全てのヒントトラックのように、伝送タイミングを有する。したがって、受信デバイスの受信タイムスタンプは、受信ヒントトラックに記憶された各データパケットに関連付けられる。
【００１０】
サーバ側のファイル内のＲＴＰヒントトラックは、一つのストリームからＲＴＰメディアデータパケットのみを記憶し、例えば、ＲＴＣＰ情報またはキーメッセージのような、対応するサイドまたは制御情報を含まない。ＲＴＣＰ情報は、ストリーミング状況の現在の状態、たとえばタイミングを記述するため、ストリーミングサーバによって、オンザフライで生成される。
【００１１】
ストリーミング受信器は、ダイレクトプレイバックのためにバッファオーバーフローおよびアンダーランをそれぞれ避けるため、受信時間から送信器のシステムクロックを復元し、受信器のシステムクロックを送信器のシステムクロックに合わせ得る。何でもクロックの復元のために用いられるＲＴＰパケットまたはＲＴＣＰセンダーレポートパケットの到着時間におけるジッター（ネットワークジッター）のため、即時のクロックの復元は可能でない。同期していないサンプリングクロックを有する、独立したオーディオおよびビデオキャプチャユニットは、メディアタイムスタンプが固定レートで常時増加するにもかかわらず、ＲＴＰクロックをドリフトする結果になり得る。ＲＴＣＰ  ＳＲは、各々のストリームに対してＮＴＰおよびＲＴＰタイムスタンプを運び、それゆえ、関与するデバイスのドリフトを抽出するために用いることができる。多くのシステムにおいて、ＲＴＣＰ  ＳＲの作成、特にＮＴＰクロックおよびＲＴＰクロック間の関係に関与するジッターが存在し得る。したがって、ストリーミングクライアントは、起動直後に完璧なリップ同期化を達成し得ないことは一般的ではあるが、ビデオおよびオーディオストリーム間でのリップ同期化の前に、所定の数のＲＴＣＰ  ＳＲを考慮する必要があることは間違いない。もし、送信器のシステムクロックが復元される必要があり、かつネットワークジッターが高ければ、何でもクロックの復元に用いられる所定の数のＲＴＰパケットまたはＲＴＣＰセンダーレポートパケットも必要である。ネットワークジッターおよびクロックドリフトは、関連するデータパケットのＲＴＰタイムスタンプに加えて、上述したような多重ＲＴＣＰ  ＳＲの情報を用いて、リアルタイムストリーム受信中に再計算され得る。
【００１２】
現時点では、ＲＴＰ受信ヒントトラックは、メディアストリームの受信されたデータパケットを記憶するようにだけ規定され、それぞれがセンダーレポートからのタイミング情報である対応するＲＴＣＰ  ＳＲを含まない。受信されたＲＴＰパケットのＲＴＰタイムスタンプだけでは、異なるストリームから受信されたメディアデータを同期するのに不十分である。これは、一般的に、各メディアストリームが、その初期のタイムスタンプおよび初期のシーケンス番号にランダムな値を割当て、タイムスタンプのクロック周波数が、運ばれるメディアデータのフォーマットに依存するからである。ＲＴＰパケットの到着時間もしくは受信時間は、ストリーム間の同期に用いられ得る。しかしながら、この手法の問題は、ＲＴＰはパケットの配信を保証せず、アウトオブバンド配信を防ぐこともないということである。その結果、受信時間のみに基づく同期では、精度を保証し得ない。
【００１３】
上述したように、異なるＲＴＰストリーム間での同期を取る最も正確な方法は、ＲＴＰタイムスタンプと、ＮＴＰタイムスタンプフォーマットの形式でのストリームの間で共通のタイムスタンプとの間の変換を可能にする情報を含む、関連したＲＴＣＰ  ＳＲを待つことを必要とする。これらのＲＴＣＰセンダーレポートは、大抵、所定のビットレートに対する各ストリームに対して５秒毎に送信され、２つのＲＴＣＰ  ＳＲ間の時間間隔は、ビットレートに依存する。
【００１４】
よって、正確なタイミングでのＲＴＰ受信ヒントトラックのプレイバックおよびリップ同期化は、次の二つの場合にのみ可能である。一つは、異なるメディアクロック間にクロックドリフトがなく、かつ、ＲＴＣＰセンダーレポートのインターストリーム同期データが、受信された各ＲＴＰパケットに対して利用可能である場合である。しかしながら、これは、実際の環境においてとても起こりえない理想的な状況に相当する。二つ目は、受信されたＲＴＰパケットのＲＴＰタイムスタンプを記憶する前に調整することによって、受信デバイスが、ＲＴＣＰ  ＳＲのタイミング情報を考慮に入れる場合である。
【００１５】
最初の事例は、理論的な事例にすぎず、実際には起こらない。２つ目の事例は、たとえば、時間調整のためにいくらかのＲＴＣＰ  ＳＲを考慮に入れるために、何秒かの間に受信されたストリームをバッファすることが必要となるなど、サーバに大きな負荷を与える。これは、タイムシフトアプリケーションにとって、同じファイルから即時に読み出す能力に影響をも与え得る。さらに、記憶後、元の受信状況が再現され得ない。すなわち、完全なストリームが受信され、記録された後の処理中において、ロングタームジッターが取り除かれないかも知れない。
【００１６】
現在のブロードキャストシステムは、キーストリーム（インバンドまたはアウトオブバンドのいずれか）を、関連するデータパケットのメディアデータを復号するために用いられるサイド情報としての、保護されたキーを伝送するために用いる。典型的には、キーストリームと暗号化されたメディアデータとの間には弱連結があるのみであり、タイミングの関連性はない。
【００１７】
ＤＶＢ−ＨおよびＯＭＡ−ＢＣＡＳＴ（Open Mobile Alliance-Mobile Broadcast Services）において、キーストリームは、関連したメディアストリームとは異なるＵＤＰポートに送信されたキーメッセージの、別個のストリームとして定義される。全てのキーメッセージが単一のＵＤＰパケットとして送信される。ＯＭＡ−ＢＣＡＳＴでは、これらのメッセージをショートタームキーメッセージ（ＳＴＫＭ）と呼び、ＤＶＢ−Ｈでは、それらをキーストリームメッセージ（ＫＳＭ）と呼ぶ。全てのキーメッセージはストリーミングされるサービスの購読のためにあり、それゆえ、認証された購読者／デバイスのみがアクセスできるため、キーメッセージの記憶は、ストリーミングシステムのセキュリティに害を与えない。キーメッセージ内の実際の暗号化キーは、サービスまたはプログラムキーを用いて保護される。
【００１８】
各キーは、関連した、暗号化されたメディアアクセスユニットでも示される、関連したキーインジケータ（キーＩＤ）を有する。復号器は、暗号化アクセスユニット内のキーＩＤに関連したキーの存在を確かめる。
【００１９】
暗号化されたメディアアクセスユニットと関連したキーメッセージとの同期は、オーバーラップする有効期間とともにキーを周期的に送信することにより処理される。キーは、暗号化されたビデオパケットによりも前に送信され、対応するキーインジケータを用いて印が付される。そして、キーは、少なくともメディアデータがこの特定のキーを使用している間は有効である。
【００２０】
メディアタイミングはストリーム内のキーメッセージに関連付けられていないため、ファイルの記録中にメディアトラックとしてキーを記憶することは実用的ではない。キーと対応する暗号化されたアクセスユニットとの間でのメディアタイミングの関連付けは、キーとメディアストリームとの両方の連結を取り計らうキーＩＤを処理し、分析した後にのみなされ得る。この分析の後でのみ、どのキーが、どのアクセスユニットまたはビデオフレームに用いられるかが明らかになる。
【発明の概要】
【発明が解決しようとする課題】
【００２１】
したがって、本発明の目的は、例えば、記録または記憶処理中に著しい複雑性を加えることなく、記録されたメディアのプレイバック中に正確なリップ同期化または復号化ができるような、効果的な方法で、受信されたパケットおよびファイル内の関連したサイド情報を記録し、処理するコンセプトを提供することである。
【課題を解決するための手段】
【００２２】
この目的は、請求項１に従うファイルを記録するための装置、請求項２０に従うファイルを記録するための方法、請求項２２に従うファイルを読み出すための装置および請求項２７に従うファイルを読み出すための方法によって解決される。
【００２３】
上述した目的の解決のため、本発明の実施例は、発明に係る方法を実行するためのコンピュータプログラムをも提供する。
【００２４】
本発明は、受信された、ストリーム配信（streamed）されたメディアデータパケットだけでなく、サイド情報を運ぶ受信中の関連したデータ、特に、たとえば、ＲＴＣＰセンダーレポートを含むＲＴＣＰメッセージのように、メディアストリームと平行に配信された全ての関連したデータも記憶することによって、または、受信された、ストリーム配信されたメディアデータパケットに含まれたメディアデータに関連した暗号化キーを含む、関連した、受信されたキーメッセージを記録することによって、上述した課題が同時に解決され得るという発見に基づく。
【００２５】
この、受信された、関連したデータまたはサイド情報は、いわゆる関連した受信ヒントトラック（「ａｒｈｔ」）の形式で、メディアデータコンテナおよびメタデータコンテナを含むファイル内に記憶される。このトラックは、例えば、ＩＳＯ／ＩＥＣ１４４９６−１２のトラック参照メカニズムを用いる、関係したメディアパケットを含む、対応する受信ヒントトラックのためのものである。関係した受信ヒントトラックのように、関連した受信ヒントトラックも、例えば、受信器のシステムクロックのタイムスタンプの形式で、伝送タイミングを記憶する。これは、プレイバック中の後の段階にて、元のパケット受信のタイミング状況の復元を可能にし得る。
【００２６】
受信ヒントトラックおよび関連した受信ヒントトラックは、ファイルの、メディアデータコンテナ内にパケットデータ部分を含み、メタデータコンテナ内にメタデータ部分を含む。
【００２７】
本発明の実施例によれば、ＲＴＣＰ  ＳＲのようなメッセージおよび関係した伝送タイミング情報は、関連した受信ヒントトラックの記録中に保存される。平行して、受信されたメディアＲＴＰパケットおよび関係した伝送タイミングは、受信ヒントトラックに直接記憶される。記録の間、非ジッター処理またはリップ同期化補正は行なわれない。
【００２８】
この目的のため、本発明のある実施例は、関係するメディアデータコンテナおよびメタデータコンテナを有するファイルを記録するための装置を提供する。装置は、第１のクロックに基づくパケット化された第１のメディアデータサンプルを含む第１のデータパケットを受信し、第１のクロックとは異なる第２のクロックに基づく第２のメディアデータサンプルを含む第２のデータパケットを受信するための受信器を含み、第２のメディアデータサンプルは、第１のメディアデータサンプルに関連付けられる。受信器は、さらに、基準クロックに対する第１のクロックの関係を示すための情報を含む第１の制御パケットを受信し、基準クロックに対する第２のクロックの関係を示すための情報を含む第２の制御パケットを受信するように適合される。装置は、また、メディアデータコンテナ内に、受信された第１および第２のデータパケット、および、受信された第１および第２の制御パケットの少なくとも一部を記憶し、メタデータコンテナ内に、関連したメタデータを記憶するためのレコーダを含み、関連したメタデータは、受信された第１および第２のデータパケットおよび受信された第１および第２の制御パケットのタイミング情報を含み、記憶された第１および第２のデータパケットおよび記憶された第１および第２の制御パケットの、メディアデータコンテナ内の位置を示す位置情報を含む。
【００２９】
本発明のある実施例によれば、レコーダは、第１および第２の受信されたデータパケットを、メディアデータコンテナの第１のチャンク内にサンプルとして記録し、受信された、関連した第１および第２の制御パケットの少なくとも一部を、サンプルとしてメディアデータコンテナの第２のチャンクに記録するように適合される。
【００３０】
本発明のある実施例によれば、レコーダは、第１および第２のデータパケットのタイミング情報および位置情報を、ファイルのメタデータコンテナの第１のトラック内に記録し、第１および第２の制御パケットのタイミング情報および位置情報を、ファイルのメタデータコンテナの第２のトラック内に記録するように適合される。
【００３１】
本発明のある実施例によれば、ファイルは、ＩＳＯベースのメディアファイルフォーマットに基づく。本発明のある好ましい実施例によれば、ファイルは、３ＧＰ−またはＭＰ４−ファイルである。
【００３２】
本発明のある実施例によれば、第１のデータパケットは、パケット化された第１のメディアサンプル（たとえば、圧縮されたビデオ）を含む第１のストリーム配信されたＲＴＰパケットであり、第１の制御パケットは、第１のＲＴＣＰセンダーレポートを含む第１のストリーム配信されたＲＴＰパケットに関係するＲＴＣＰパケットである。第２のデータパケットは、パケット化された第２のメディアデータサンプル（例えば、ビデオに関係する圧縮されたオーディオ）を含む第２のストリーム配信されたＲＴＰパケットであり、第２の制御パケットは、第２のＲＴＣＰセンダーレポートを含む第２のストリーム配信されたＲＴＰパケットに関係するＲＴＣＰパケットである。
【００３３】
第１および第２のデータパケットと関連した制御パケットとの平行的な記憶は、記録処理がさらに軽量であり、後の段階で記録ファイルからメディアストリームをプレイバックするために必要な全ての情報を取得し得る点で有利である。関連した受信ヒントトラック、すなわち、メディアデータコンテナ内の記憶された制御パケットおよびメタデータコンテナ内の関連したメタ情報は、受信ヒントトラック、すなわち、ファイルのメディアデータコンテナ内の記憶された第１および／または第２のデータパケット、および、ファイルのメタデータコンテナ内に記憶された、それらの関連したメタ情報のプレイバック中に用いられる。
【００３４】
記録されたファイルのプレイバックの目的のために、本発明の実施例は、ファイルを読み出すための装置を提供し、ファイルは、ファイルに関係するメディアデータコンテナ内に記憶され、第１のデータパケットは、第１のクロックに基づくパケット化された第１のメディアデータサンプルを含み、第２のデータパケットは、第１のクロックとは異なる第２のクロックに基づくパケット化された第２のメディアデータサンプルを含む。ファイルは、また、基準クロックに対する第１のクロックの関係を示すための情報を含む関連した第１の制御パケットの少なくとも一部、および、基準クロックに対する第２のクロックの関係を示すための情報を含む関連した第２の制御パケットの少なくとも一部を記憶する。ファイルは、ファイルのメタデータコンテナ内に、記憶された、関連したメタデータを有し、関連したメタデータコンテナは、受信された第１および第２のデータパケット、および、受信された第１および第２の制御パケットのタイミング情報、および、メディアデータコンテナ内の、記憶された第１および第２のデータパケットの位置、および記憶された第１および第２の制御パケットの位置を示す位置情報を含む。ファイルを読み出すための装置は、メタデータコンテナにアクセスし、メディアデータコンテナ内に記憶された第１および第２のデータパケットおよび記憶された第１および第２の制御パケットのタイミング情報を解析することによって、記憶された第１および第２のデータパケットの出力スケジュールを決定するためのプロセッサを含む。装置は、メディアデータコンテナにアクセスし、データパケットをメディアデータコンテナから読み出すことによって、第１および第２のデータパケットを決定された出力スケジュールに従って出力するための出力コントローラをさらに含む。
【００３５】
本発明の実施例に従って、記憶された第１および第２のデータパケットおよび関連した、記憶された第１および第２の制御パケットは、リップ同期化、クロックの復元および／またはクロックドリフトの調整のためにオンザフライで処理され得る。この種類のプレイバックは、記録されたメディアストリームの模擬的なライブ受信と同等である。
【００３６】
記録された受信ヒントトラック（第１／第２のデータパケット）および記録された、関連した受信ヒントトラック（第１／第２の制御パケット）は、全記録にわたる。プレイバックまたはリプレイの間、関連した受信ヒントトラックの制御データは、例えば、多重の将来のＲＴＣＰ  ＳＲを考慮に入れることによる、正確なリップ同期化のために、例えば、ＲＴＣＰ  ＳＲの形式で、プリフェッチされる。ここで、将来のＲＴＣＰ  ＳＲは、現在のプレイバックの時点の将来の時点に関係する。
【００３７】
本発明の利点は、関連した受信ヒントトラック、すなわち、メディアストリームの受信中の間の制御情報の記録が、単に複雑性を加えることなく、ファイルからのストリームの同期したプレイバックに関係する全ての情報の軽量な記録処理を可能にすることである。
【００３８】
記録されたファイルが長期間の記憶のために意図されたものであり、最終的には何回もプレイバックされる場合、各々のプレイバックの間、記憶された第１／第２のデータパケットおよび記憶された第１／第２の制御パケットを、それぞれ、関連したメタデータと一緒に分析することを避け、その代わり、さらなる処理をすることなく直接利用可能な、メディアタイミング、すなわち、第１／第２の記憶されたデータパケットによって含まれる第１／第２のメディアデータサンプルをリプレイするためのタイミングを有することが望ましい。
【００３９】
通常、これは、受信ヒントトラックからの記憶されたデータパケットの非パケット化、および、それを、トラック毎に一つのエレメンタリストリームとともに、関係したメディアデータコンテナ内のメディアトラックに保存することを意味する。これは、たとえば、伝送暗号化がストリームパケットに適用された場合、または記憶容量が限られている場合、常に可能であったり、望ましいわけではない。
【００４０】
伝送パケットの正確なタイミングに加えて、受信ヒントトラック（記憶された、第１／第２のデータパケットとメタ情報）について利用可能な、拡張された情報、特に、第１／第２データパケット内部のメディアデータ、たとえば、フレームアキュレイト（frame−accurate）ＳＭＰＴＥタイムスタンプ（SMPTE=Society of Motion Picture and Television Engineers）またはビデオトラックのサブタイトルについての情報を有することが望ましい。
【００４１】
この目的のため、本発明の実施例は、ファイルに関係するメディアデータコンテナ内に記憶された伝送プロトコルに関係するデータパケットを処理し、ファイルのメタデータコンテナ内の、記憶された、関連したメタ情報を処理するための装置を提供し、関連したメタ情報は、伝送タイミング情報および、メディアデータコンテナ内の、記憶されたデータパケットの位置を示す位置情報を含む。装置は、記憶されたデータパケットおよび記憶された、関連したメタ情報に基づいて、記憶されたデータパケットのペイロードのための符号化情報を決定するためのプロセッサを含み、復号化情報は、どの時点で、記憶されたデータパケットのどのペイロードをリプレイするかを示す。処理するための装置は、スタンドアロンのデバイスであってもよく、上述した、ファイルを記憶するための装置に組み込まれてもよい。
【００４２】
ある実施例によれば、記憶されたデータパケットは、ＭＰＥＧ−２伝送ストリームパケットを含んでもよい。別の実施例によれば、記憶されたデータパケットは、パケット化されたメディアデータを含むＲＴＰパケットを含んでもよい。
【００４３】
本発明の実施例によれば、復号化情報は、メディアアクセスユニットについて決定される。すなわち、各アクセスユニット、たとえばメディアフレームに対して、復号化情報のサンプルが、ファイルのメディアデータコンテナ内に記憶され、復号化情報のサンプルは、メディア（たとえば、ビデオ／オーディオ）フレームを取得するために、記憶されたデータパケットのどの部分から、どのメディアデータサンプルを入手するかを示す。復号化情報のサンプルに関係するメタ情報は、メタデータコンテナ内の復号化情報メタデータトラック内に記憶される。それにより、復号化情報メタデータトラック（ＩＳＯベースのメディアファイルフォーマットの「トラック」ボックス／アトム）は、復号化のサンプルのためのタイミングおよび維持情報を含む。
【００４４】
記憶された復号化情報のサンプル、および、それらの関連した復号化情報メタデータトラック（以下、「仮想メディアトラック」とも記載する」は、関連した受信ヒントトラックのアイデアの基に形成され、プレイバックに対する上述した利点を与える。仮想メディアトラックのメタデータ部分において、メディアデータコンテナ内の、関係した復号化情報のサンプルのためのメディアタイミングが提供される。復号化情報のサンプルは、情報を提供し、その情報から、記憶されたデータパケットまたは伝送ユニットが、不要なメディアパケットの非パケット化を行なう、関係したメディアアクセスユニットのためのメディアデータを取得する。仮想メディアトラックは、受信ヒントトラック、もし必要であれば、関連した受信ヒントトラックからの情報を用いて、メディアストリームの最終的な受信の後に形成されてもよい。これは、「リバースドヒンティング（reversed hinting）処理」においてなされ、結果的に得られるファイルは、プレイバックデバイスが、ファイル内を検索し、メディアタイミングに基づいてメディアにランダムにアクセスすることを可能にする。
【００４５】
仮想メディアトラックは、不完全なメディアトラックとして見え得る。したがって、ＲＴＰおよびＲＴＣＰ受信ヒントトラックから復元されたタイミングと、メディアトラックの全てのインデックス（典型的には、「サンプルテーブル」が用いられることによる）との両方が、適用され得る。
【００４６】
仮想メディアトラックは、受信ヒントトラック伝送ユニットからアクセスユニットを再構築するためのコンストラクタを含み得る復号化情報サンプル（仮想メディアサンプル）から形成されてもよい。また、復号化情報サンプルは、アクセスの再構築（不完全なコンストラクタ）に関係がある、一つ以上の重要伝送ユニットへのリンクを含んでもよい。さらに、仮想メディアトラックの、復号化情報サンプルまたは仮想メディアサンプルは、例えば、受信処理中にパケットが喪失した場合に空であってもよい。代替的には、仮想トラックの復号化情報サンプル（以下、仮想メディアサンプルとも記載する）は、標準的なメディアトラック内のように完全に解凍されたメディアサンプルを含んでもよい。
【００４７】
仮想メディアトラックのサンプルテーブル内のインデックスからの情報（および、たとえばタイムドメタデータトラックからの、全ての関連した情報）は、受信ヒントトラックの、対応する伝送ユニットへのリンクをたどることによって、基準受信ヒントトラックに論理的に適用される。
【００４８】
ストリームから記述を正確に復元することができない場合、仮想メディアトラックは、仮想メディアサンプルの、近似のかつ不完全な記述を含み得る。このことは、データパケットが暗号化されたり、非パケット化スキームが完全には知られていない場合に適用される。
【００４９】
仮想メディアトラックをリプレイするために、本発明の実施例は、ファイルを読み出すための装置を提供し、ファイルは、ファイルに関係するメディアデータコンテナ内に記憶された、ペイロードを含むデータパケットを有し、メディアデータコンテナ内に記憶された、データパケットのペイロードのための復号化情報を有し、復号化情報は、どの時点で、記憶されたデータパケットのどのペイロードをリプレイするかを示し、ファイルは、メディアデータコンテナ内に記憶された、関連したメタデータを有し、関連したメタデータは、復号化時間およびメディアデータコンテナ内の復号化情報の位置を示す。装置は、メディアデータコンテナ内の関連したメタデータにアクセスし、メディアデータコンテナ内の復号化情報に、メタデータに基づいてアクセスし、記憶されたデータパケットのペイロードに、復号化情報に基づいてアクセスすることによって、記憶されたデータパケットのペイロードの出力スケジュールを決定するためのプロセッサを含む。出力コントローラは、決定された出力スケジュールに従ってペイロードを出力するように動作する。
【００５０】
記憶中における、受信されたデータパケットのメディアトラックへのオンザフライでの変換に比べて、仮想メディアトラックは、メディアデータ（記憶されたデータパケット）の非パケット化の必要とせずに、メディアタイミングおよびメタデータを提供し、よって、記憶領域を節約できる。仮想メディアトラックは、プレイバックデバイスが、メディアタイミングに基づいてファイル内を検索することを可能にする。もし、標準的なメディアトラックがファイルに加えられれば、ファイルサイズが倍になり得るが、仮想メディアトラックは、ファイルサイズを倍にすることなく、メディアトラックおよび受信ヒントトラックの利点を組み合わせることができる。仮想メディアトラックのコンセプトにより、たとえば、エラーの隠蔽を手助けする喪失したパケットについての情報およびリップ同期化を手助けする受信タイミングについての情報など、元の受信処理の全ての情報が保持される。同時に、メディアアクセスのための従来のメディアトラックの全ての可能性が、発明に係る仮想メディアトラックにより与えられる。従来のメディアトラックに比べてさらなる柔軟性が与えられる。記憶された伝送ユニット（データパケット）がアクセスユニット（メディアフレーム）に対して完全に解凍された場合、または、たとえば、記憶領域を節約するために、コンストラクタまたはアクセスユニットの再構築のためのリンクのみが記憶された場合、サンプル毎に、それを決定してもよい。さらに、全ての可能性が、一つの仮想メディアトラック内で混合される。すなわち、復号化情報サンプルまたは仮想メディアサンプルは、完全なアクセスユニット、コンストラクタ、リンクを含んでいたり、空であったりする。
【００５１】
多重仮想メディアトラックは、同じ記録されたデータパケットストリームの異なるインデックスを可能にする、同じ受信ヒントトラックからの伝送ユニットまたはデータパケットを参照してもよい。たとえば、一つはオーディオに関係し、もう一つはビデオに関係する、ランダムアクセスを有する２つの仮想メディアトラックは、同じＭＰＥＧ−２伝送ストリームの受信ヒントトラックのオーディオおよびビデオのためのインデックスを指し示すようにしてもよい。
【００５２】
受信され、記憶されたデータパケットにおいて暗号化されたメディアデータサンプルのプレイバックまたはリプレイを可能にするため、関連したキーストリームメッセージは、データパケットは別にして、ファイルのメディアコンテナ内に記憶されてもよい。本発明の実施例によれば、キーストリームメッセージは、キーストリーム受信ヒントトラックのサンプル内に記憶される。受信時間（伝送時間）は、キーメッセージを対応する受信ヒントトラック内の暗号化されたメディアパケットに割当てるためのキーストリームサンプルのタイムスタンプとして用いられ得る。トラックリファレンスは、キーストリーム受信ヒントトラックをメディア受信ヒントトラックに関連付けるために用いられる。
【００５３】
ファイルを記録するという目的のため、本発明の実施例は、関係するメディアデータコンテナおよびメタデータコンテナを有するファイルを記録するための装置を提供する。装置は、各々がペイロードを含むデータパケットを受信し、複数の暗号化キーを含むキーストリームパケットを受信するための受信器を含み、各暗号化キーはデータパケットのペイロードに関連付けられる。装置は、メディアデータコンテナ内に受信されたデータパケットおよび受信されたキーストリームパメットを記憶し、メタデータコンテナ内に関連したメタデータを記憶するためのレコーダを含み、関連したメタデータは、受信されたデータパケットおよび受信されたキーストリームパケットの伝送タイミング情報と、メディアデータコンテナ内の、記憶されたデータパケットおよび記憶されたキーストリームパケットの位置を示す位置情報とを含む。データパケットおよびキーストリームパケットを記録するための装置は、スタンドアローンデバイスであってもよく、上述した、記憶および／または処理のための装置に内蔵された、または組み合わせされたデバイスであってもよい。
【００５４】
本発明の実施例によれば、レコーダは、メディアデータコンテナの第１のチャンク内のサンプルとして、受信されたデータパケットを記憶し、メディアデータコンテナの第２のチャンク内のサンプルとして、受信された、関連するキーストリームパケットを記憶するように適合される。本発明の実施例によれば、レコーダは、メディアデータコンテナの第１のトラック内にデータパケットの伝送タイミング情報および位置情報を記憶し、メタデータコンテナの第２のトラック内に、キーストリームパケットの伝送タイミング情報および位置情報を記憶するように適合される。
【００５５】
本発明のある実施例によれば、ファイルは、ＩＳＯベースのメディアファイルフォーマットに基づく。
【００５６】
本発明のある実施例によれば、データパケットは、ＭＰＥＧ−２伝送ストリームパケットを含む。
【００５７】
本発明の別の実施例によれば、データパケットは、パケット化されたメディアデータサンプルを含むＲＴＰパケットを含む。
【００５８】
データパケットストリームおよび関連したキーストリームの受信後のプレイバックを容易にするため、キーストリーム受信ヒントトラックを仮想メタデータトラックに変換するためのワンタイム処理が行われ得る。伝送タイミングを有するキーストリーム受信ヒントトラックからのキーメッセージは、上述した仮想メディアトラックと同様に、メディアタイミングを有する仮想メタデータトラック内のキーサンプルに変換される。必要であれば、メディアトラック内の全てのメディアサンプルが、キートラック内に関連したキーサンプルを有するように、キーサンプルが仮想的に倍にされる。
【００５９】
したがって、特に、暗号化されたアクセスユニットが伝送ユニットから再構築される場合（コンテンツの暗号化の場合）、メディアアクセスユニットとキーメッセージとの間の正確な時間的な関係を作成することが可能である。
【００６０】
リプレイする実施例がファイルを読み出すための装置を提供するために、ファイルは、パケット化されたメディアデータサンプルを含む、記憶されたデータパケットを有し、ファイルは、ファイルに関係するメディアデータコンテナ内に、記憶された、関連したキーストリームパケットを有する。ファイルは、メタデータコンテナ内に、記憶された関連したメタデータを記憶し、関連したメタデータは、受信されたデータパケットおよび受信されたキーストリームパケットの伝送タイミング情報と、メディアデータコンテナ内の記憶されたデータパケットおよび記憶されたキーストリームパケットの位置を示す位置情報とを含む。また、装置は、データパケットに基づき、関連したメタ情報に基づき、かつ記憶されたキーストリームパケットおよび関連したキーストリームメタ情報に基づいて、復号化情報を記憶されたデータパケットのペイロードに割当てるためのプロセッサを含み、復号化情報は、記憶されたデータパケットのペイロードをリプレイするために、どの暗号化キーをどの時間で用いるかを示す。割当てられた復号化情報に基づいて、復号化されたデータパケットを出力するために、出力が提供される。
【００６１】
本発明の実施例は、キーメッセージの受信タイミングおよび受信されたデータパケットに対するタイミングの関係を十分に維持する。本発明の実施例は、記憶されたデータパケットを含むメディアトラック内の全ての対応するメディアサンプルに対して、ファイルが、キーメッセージを有するメタデータトラックを含む場合、記録されたファイルからプレイバックに最適化されたファイルへの変換を可能にする。したがって、プレイバック中に、正しいキーを求めて記憶されたキートラックを解析（parse）する必要はない。
【００６２】
本発明の他の目的および特徴は、添付の図面とともに考慮される以下の詳細な説明から明らかになる。
【図面の簡単な説明】
【００６３】
【図１】図１は、本発明のある実施例に従う、ファイルを記録するための装置の概略ブロック図である。
【図２】図２は、本発明のある実施例に従う、関係するメディアデータコンテナおよびメタデータコンテナを有する、記録されたファイルの概略的なファイル構造を示す。
【図３】図３は、ＩＳＯベースのメディアファイルフォーマットに基づくファイルの概略構造を示す。
【図４】図４は、本発明のある実施例に従う、ファイルを記録するための方法のフローチャートを示す。
【図５】図５は、本発明の他の実施例に従う、ファイルを記録するための他の方法のフローチャートを示す。
【図６】図６は、本発明のある実施例に従う、仮想メディアトラックを取得するために、ファイルを記録および処理するための装置の概略的なブロック図を示す。
【図７】図７は、本発明のある実施例に従う、仮想ビデオトラックを有する、記録されたファイルの概略構造を示す。
【図８】図８は、本発明のある実施例に従う、データパケットを記録し、仮想メディアサンプルを作成し、仮想メディアサンプルによってデータパケットを記憶することにより構成されたメディアサンプルをリプレイするための方法のフローチャートを示す。
【図９】図９は、本発明のある実施例に従う、記憶されたデータのペイロードによって形成されたメディアフレームを参照する仮想メディアサンプルの記述的な情報を取得する態様の例を示す。
【図１０】図１０は、本発明のある実施例に従う、受信ヒントトラックおよび仮想メディアトラックのサンプルのマッピングを示す。
【図１１】図１１は、本発明の別の実施例に従う、ファイルを記録するための装置の概略的なブロック図を示す。
【図１２】図１２は、携帯ＴＶ環境においてキーストリームとメディアとの同期化の原理を示す。
【発明を実施するための形態】
【００６４】
図１は、関係するメディアデータコンテナ１０４およびメタデータコンテナ１０６を有するファイル１０２を記録するための装置１００の概略的なフローチャートを示す。
【００６５】
装置１００は、第１のクロックに基づくパケット化された第１のメディアデータサンプルを含む第１のデータパケット１１０を受信し、第１のクロックとは異なる第２のクロックに基づく第２のメディアデータサンプルを含む第２のデータパケット１１２を受信するための受信器１０８を含み、第２のメディアデータサンプルは、第１のメディアデータサンプルに関連付けられる。さらに、受信器１０８は、基準クロックに対する第１のクロックの関係を示すための情報を含む、第１の制御パケット１１４を受信し、基準クロックに対する第２のクロックの関係を示すための情報を含む、第２の制御パケット１１５を受信するように動作する。さらに、装置１００は、受信された第１および第２のデータパケット１１０，１１２、および、受信された第１および第２の制御パケット１１４，１１５の少なくとも一部を、メディアデータコンテナ１０４内に記憶し、関連したメタデータをメタデータコンテナ１０６内に記憶するためのレコーダ１１６を含む。関連したメタデータは、受信された第１および第２のデータパケット１１０，１１２、および、受信された第１および第２の制御パケット１１４，１１５のタイミング情報を含む。さらに、関連したメタデータは、メディアデータコンテナ１０４内の、記憶された第１および第２のデータパケット１１０，１１２、および、記憶された第１および第２の制御パケット１１４，１１５の位置を示す位置情報を含む。
【００６６】
本発明の実施例によれば、第１のデータパケット１１０は、パケット化された第１のメディアデータサンプル（例えば、ビデオ）を含む、第１のストリーム配信されたＲＴＰパケットであり得、第２のデータパケット１１２は、パケット化された第２のメディアデータサンプル（例えば、オーディオ）を含む、第２のストリーム配信されたＲＴＰパケットであり得る。したがって、第１の制御データパケット１１４は、第１のストリーム配信されたＲＴＰパケット１１０に関連付けられたＲＴＣＰパケットであり得、第２の制御データパケット１１５は、第２のストリーム配信されたＲＴＰパケット１１２に関連付けられた、ＲＴＣＰパケットであり得る。
【００６７】
本発明の実施例によれば、ファイル１０２は、ＩＳＯベースのメディアファイルフォーマットに基づくファイルであり得る。例えば、ファイルフォーマットは、ＭＰＥＧ−４と互換性のあるファイルフォーマットであり得、すなわち、ファイル１０２は、ＩＳＯ／ＩＥＣ１４４９６−１４によって規定された、いわゆるＭＰ４ファイルであり得る。ＭＰ４ファイルフォーマットは、メタデータコンテナ１０６に記憶されたメタデータから構成され、メタデータは、メディアデータコンテナ１０４内に記憶されたメディアに典型的に関係する情報を記述する。メディアデータコンテナ１０４は、ファイル１０２の外部にあってもよい。例えば、メディアデータコンテナ１０４は、ファイル１０２内のリンクによって参照され得る、別個の記憶位置にあってもよい。普通は、メディアデータコンテナ１０４内に記憶されたメディアデータは、暗号化されたビデオおよび／またはオーディオデータである。関係する明細書において、コンテナ１０４および１０６は、「ボックス」（または「アトム」）と呼ばれるデータ構造体である。
【００６８】
典型的には、ボックスは、サイズフィールド、タイプフィールドおよびデータフィールドから構成される。サイズフィールドを含むボックス全体の大きさ、すなわち、バイト数は、サイズフィールドに収容される。通常は４文字のボックス識別子は、ボックスのタイプフィールド内に記憶される。実際のヘッダーデータおよびメディアデータは、データフィールド内に記憶される。そのようなボックス構造体を用いて、上述したＭＰ４ファイルフォーマットを形成するメタデータコンテナ１０６は、典型的には、ムービーボックス「ｍｏｏｖ」と呼ばれる。同様に、メディアデータコンテナ１０４は、メディアデータボックス（以下、「ｍｄａｔ」）と呼ばれる。
【００６９】
メディアデータコンテナｍｄａｔ１０４は、典型的には、一連のデータユニットまたは、いわゆるチャンクにグループ化されるサンプルから構成される。チャンクは、異なるサイズのものなることができ、チャンク内のサンプルは異なるサイズを有することができる。
【００７０】
本発明の実施例によれば、レコーダ１１６は、メディアデータコンテナ１０４の第１のチャンク１１８内に、サンプルとして、第１および第２の受信されたデータパケット１１０，１１２を記憶するように適合される。図２から理解できるように、レコーダ１１６は、さらに、メディアデータコンテナ１０４の第２のチャンク１２２内に、サンプルとして、受信された、関連する第１および第２の制御パケット１１４，１１５の少なくとも一部を記憶するように適合される。
【００７１】
チャンク１１８，１２２の記憶は交互的な態様でなされる。
したがって、チャンクのサンプルは、一つ以上の、受信されたデータパケットを含み得る。すなわち、第１のチャンク１１８のサンプルは、一つ以上の、受信された第１および／または第２のＲＴＰパケット１１０，１１２を含み得、第２のチャンク１２２のサンプルは、受信された第１および／または第２の制御パケット１１４，１１５の、一つ以上の第１および／または第２のＲＴＣＰ  ＳＲを含み得る。
【００７２】
複数の第１のチャンク１１８は、（ＲＴＰ−）受信ヒントトラックの、メディアデータ部分とみなされ得る。同じように、複数の第２のチャンク１２２は、受信ヒントトラックに対して関連した（ＲＴＣＰ−）受信ヒントトラックのメディアデータ部分とみなされ得る。すなわち、図１または図２の場合において、全ての、受信されたＲＴＰパケット１１０，１１２に対して、一つのＲＴＰ受信ヒントトラックがあり、全ての、受信されたＲＴＣＰパケット１１４，１１５またはＲＴＣＰ  ＳＲに対して、一つの、関連したＲＴＣＰ受信ヒントトラックがある。これは、記録の複雑性が最小であることを意味する。
【００７３】
ＲＴＣＰ受信ヒントトラックは、ＲＴＣＰ受信ヒントトラックの、関係した基本ＲＴＰ受信ヒントトラックのＳＤＰ（Session Description Protocol）情報との組み合わせにおいてのみ有用であるにも関わらず、ＲＴＣＰ受信ヒントトラックは、ジェネリックパケットペイロードコンフィギュレーションデータを必要としない。
【００７４】
ＲＴＣＰ受信ヒントトラックサンプルペイロードは、未加工のＲＴＣＰパケットから構成される。この未加工のＲＴＣＰパケットは、一つのサンプル内に多重のＲＴＣＰパケットの記憶ができるようにするために、ＲＴＣＰパケットのＲＴＣＰヘッダーとともに直接含まれるか、別の構造体の内部で包含される。
【００７５】
ＲＴＣＰサンプルのタイミングは、それに関係するＲＴＰ受信ヒントトラックのタイミング方法に依存する。もし、ＲＴＰ受信ヒントトラックが、復号化時間をＲＴＰタイムスタンプから引出していると、ＲＴＣＰ受信ヒントトラックも、ＲＴＣＰパケット内のＲＴＰタイムスタンプから、その復号化時間を引き出す。もし、受信タイミングがＲＴＰ受信ヒントトラックのために用いられるのであれば、受信タイミングは、ＲＴＣＰパケットを記憶するためにも用いられる。一般的に、ＲＴＰ受信ヒントトラックおよびＲＴＣＰ受信ヒントトラックの両方とも、同期され、同じ時間に基づいて利用される。
【００７６】
図１および２に示すように、レコーダ１１６は、第１および第２の、受信されたデータパケット１１０，１１２のタイミング情報および位置情報をメディアデータコンテナ１０６の第１のメタデータトラック１２４内に記憶し、第１および第２のデータパケット１１０，１１２に関連した、受信された、第１および第２の制御パケット１１４，１１５のタイミング情報および位置情報を、メディアデータコンテナ１０６の第２のメタデータトラック１２８内に記憶するように適合される。記憶処理のより詳細な記述は、図３を参照して与えられる。
【００７７】
第１のメタデータトラック１２４は、ＲＴＰ受信ヒントトラックのメタデータ部分としてみなされ得る。同様に、第２のメタデータトラック１２４は、受信ヒントトラックに関連したＲＴＣＰヒントトラックのメタデータ部分として見なされ得る。
【００７８】
図２の例では、個々のメディアストリーム（たとえば、ビデオ／オーディオ）は、たとえば、ＲＴＰパケットとともに記憶された各々のメディアタイプについてのＳＤＰ情報を用いることによって、後の段階において、単一のＲＴＰ受信ヒントトラックおよび単一の、関連したＲＴＣＰ受信ヒントトラックとから識別される。
【００７９】
図２は、ＲＴＰ受信ヒントトラックおよび関連したＲＴＣＰ受信ヒントトラックを有する、ＩＳＯメディアファイル１０２の構造を示す。
【００８０】
前述したように、ファイル１０２は、メタデータコンテナ１０５を含み、メタデータコンテナ１０６は、メディアデータコンテナ１０４内で、第１のチャンク１１８−１，１１８−２内などのサンプルとして記憶された、受信されたＲＴＰパケットに関係するタイミング情報を含むＲＴＰ受信ヒントトラックを含む。すなわち、ＲＴＰ受信ヒントトラック１２４は、受信の間、記憶された（第１および第２の）ＲＴＰパケットの伝送タイミングの情報を含む。
【００８１】
この伝送タイミングは、受信器１０８の受信クロックのタイムスタンプ、および／または、受信されたＲＴＰパケット１１０，１１２のＲＴＰタイムスタップであり得る。すなわち、各ＲＴＰパケットまたはサンプルに対して、ＲＴＰ受信ヒントトラックのメタデータ部分１２４は、ＲＴＰパケット１１０，１１２がいつ受信されたかについての標識および、付加的に、メディアデータコンテナ１０４内のどこにＲＴＰパケットが記憶されたかについての情報を含む。
【００８２】
関連したＲＴＣＰ受信ヒントトラックのメタデータ部分１２８にも同じことが当てはまる。ＲＴＣＰ受信ヒントトラックのメタデータ部分１２８は、第２のチャンク１２２内に記憶された、受信されたＲＴＣＰパケットの伝送タイミング情報を含む。
【００８３】
伝送タイミング情報は、たとえば、関係するＲＴＣＰパケットの受信時間、または、ＲＴＣＰパケットに関係するＲＴＰパケットのＲＴＰタイムスタンプであり得る。さらに、関連したＲＴＣＰ受信ヒントトラックのメタデータ部分１２８は、メディアデータコンテナ１０４内においてＲＴＣＰパケットがどこに記憶されたかを示す位置情報を含む。
【００８４】
別の実施例によると、それらのＳＤＰパラメータは、異なるメディアに関係するＲＴＰセッションが、別個のＲＴＰ受信ヒントトラックおよび別個の関係したＲＴＣＰ受信ヒントトラックにすぐに記憶され得るように、記録処理中に直接分析され得る。
【００８５】
それゆえ、本発明の実施例によれば、レコーダ１１６は、第１の受信されたデータパケット１１０をサンプルとしてメディアデータコンテナ１０４の第１のチャンク内に記憶するように適合される。さらに、レコーダ１１６は、第２の受信されたデータパケット１１２をサンプルとしてメディアデータコンテナ１０４の第２のチャンク内に記憶するように適合される。レコーダ１１６は、関連した第１の制御パケット１１４の少なくとも一部をサンプルとしてメディアデータコンテナ１０４の第３のチャンク内に記憶し、受信された、関連した第２の制御パケット１１４の少なくとも一部をサンプルとしてメディアデータコンテナ１０４の第４のチャンク内に記憶するように適合される。
【００８６】
チャンクの記憶は、交互的な態様でなされ得る。すなわち、本発明の実施例によれば、第１のメディアストリーム（たとえばビデオ）に関係する第１のＲＴＰパケットは、第２のメディアストリーム（たとえばオーディオ）に関係する第２のＲＴＰパケット１１２、および関連した第１および第２のＲＴＣＰパケットまたは少なくとも第１および第２のＲＴＣＰセンダーレポートは、交互的な態様で、第１、第２、第３および第４のチャンクのサンプルとして記憶され得る。
【００８７】
したがって、チャンクのサンプルは、一つ以上の受信されたデータパケットを含み得る。すなわち、第１のチャンクのサンプルは、一つ以上の受信された第１のデータパケット１１０を含み、第２のチャンクのサンプルは、一つ以上の受信された第２のデータパケット１１２を含み、第３のチャンクのサンプルは、受信された第１の制御パケット１１４の一つ以上の第１のＲＴＣＰ  ＳＲを含み、第４のチャンクのサンプルは、受信された第２の制御パケット１１５の一つ以上の第２のＲＴＣＰ  ＳＲを含み得る。
【００８８】
複数の第１のチャンクは、第１のパケット１１０のメディアに関係する第１の受信ヒントトラックのメディアデータ部分としてみなされ得る。複数の第２のチャンクは、第２のパケット１１２のメディアに関係する第２の受信ヒントトラックのメディアデータ部分としてみなされ得る。複数の第３のチャンクは、第１の受信ヒントトラックに対して関連したヒントトラックのメディアデータ部分としてみなされ得る。同様に、複数の第４のチャンクは、第２の受信ヒントトラックに対して関連したヒントトラックのメディアデータ部分としてみなされ得る。すなわち、ＲＴＰ受信ヒントトラックおよびＲＴＣＰ関連した受信ヒントトラックの事例において、受信ヒントトラックは、全ての識別されたＲＴＰセッションに対して記録され得、関連した受信ヒントトラックは、記録されたＲＴＰ受信ヒントトラックの各々に対して記録され得る。
【００８９】
本発明のある実施例によれば、レコーダ１１６は、メディアデータコンテナ１０６の第１のメタデータトラック内に、第１の受信されたデータパケット１１０のタイミング情報および位置情報を記憶し、メタデータコンテナ１０６の第２のメタデータトラック内に、第２の受信されたデータパケット１１２のタイミング情報および位置情報を記憶するように適合される。レコーダ１１６は、メディアデータコンテナ１０６の第３のメタデータトラック内に、第１のデータパケット１１０に関連した、受信された第１の制御パケット１１４のタイミング情報および位置情報を記憶し、メディアデータコンテナ１０６の第４のメタデータトラック内に、第２のデータパケット１１２に関連した、受信された第２の制御パケット１１５のタイミング情報および位置情報を記憶するように適合される。
【００９０】
図３に移って、ＩＳＯメディアベースのフォーマットに基づくファイルのメタデータコンテナ１０６のより詳細な説明が与えられる。
【００９１】
ＩＳＯメディアベースのフォーマットに基づくファイルに対して「ｍｏｏｖ」と呼ばれるメディアデータコンテナ１０６は、全体的なヘッダー情報を含む、ムービーヘッダーボックス「ｍｖｈｄ」の形式の、要求されたボックス３０２と、複数の「ｔｒａｋ」ボックス３０４（図３中では一つのみ示される）とを用いて、ボックスの層にされる。トラックボックス３０４は、さらに、２層にされ、トラックヘッダーボックス「ｔｋｈｄ」３０６が、トラックの特性を規定する。
【００９２】
ｔｒａｋボックス３０４は、さらに、全てのオブジェクト、すなわち、トラック内のデータパケット（通常はメディアデータ）について公表情報を含むメディアボックス「ｍｄｉａ」３０８を含む。ｍｄｉａボックス３０８は、メディアヘッダーボックス「ｍｄｈｄ」３１０およびハンドラリファレンスボックス「ｈｄｌｒ」３１２を含む。メディアヘッダーボックスｍｄｈｄ３１０は、メディアから独立し、受信ヒントトラック内の「メディア」、すなわち、データパケットのカバー特性に関係する全体的な情報を含む。ハンドラリファレンスボックスｈｄｌｒ３１２は、トラック内の「メディアデータ」を提供するプロセスと、したがって、トラック、たとえば受信ヒントトラック内の「メディア」の特質とを公表する。
【００９３】
また、メディアボックスｍｄｉａ３０８は、メディア情報ボックス「ｍｉｎｆ」３１４を含む。このボックスは、ヒントトラック内の「メディア」（データパケット）の特性情報を公表する全てのオブジェクトを含む。メディア情報ボックスｍｉｎｆ３１４は、さらに、ヒントトラックのための一般的な情報を含むヒントメディアヘッダーボックス「ｈｍｈｄ」３１６を含む。さらに、データ情報ボックス「ｄｉｎｆ」３１８は、メディア情報ボックスｍｉｎｆ３１４によって含まれる。データ情報ボックスｄｉｎｆ３１８は、トラック内のメディア情報の位置を公表するオブジェクトを含む。
【００９４】
さらに、サンプルテーブルボックス「ｓｔｂｌ」３２０が、メディア情報ボックスｍｉｎｆ３１４によって含まれる。少なくとも一つのチャンクおよびメディアデータコンテナｍｄａｔ１０４のサンプルのデータは、このボックス内に含まれ、各アイテムとリンク付けされる。ｓｔｂｌ３２０内のアイテムを記述するために、ｓｔｔｓボックス３２２が一つのサンプルの持続時間を含み、ｓｔｓｄボックス３２４がサンプルの細目を含み、
ｓｔｓｚ３２６がサンプルのサイズを含み、ｓｔｓｃ３２８がチャンク内の含まれるサンプルの数、すなわちデータパケットの数を含み、ｓｔｃｏボックス３３０が、チャンクオフセットを含み、各々が、メディアデータコンテナ１０４内のサンプル／パケットにリンク付けされるということが観察される。
【００９５】
前述したように、レコーダ１１６は、関係する受信ヒントトラックのメタデータ部分１４，１２８内に、受信されたデータパケット１１０，１１２の（伝送）タイミング情報および位置情報を記録するように適合される。特に、受信タイムスタンプから引出されたタイミング情報もしくは後の受信されたデータ／制御パケットから引出された相対的なタイミング情報であり得るタイミング情報が、トラック１２４，１２８の関係したサンプルテーブルボックスｓｔｂｌ３２０内に記憶される。
【００９６】
メタデータトラック１２４，１２８トラックにより含まれるサンプルテーブルボックスｓｔｂｌ３２０内の受信されたデータパケットの、時間に関係したメタデータ情報を受信し、記憶する処理を示すチャートが図４に示される。
【００９７】
第１のステップ４０２にて、ＲＴＰパケットまたはＲＴＣＰパケットであり得るデータパケットが、受信器１０８により受信される。第２のステップ４０４にて、受信されたデータパケットに関係するタイミング情報が、レシーバ１０８のシステムクロックによって受信タイムスタンプの形で、もしくは受信されたデータパケットのＲＴＰタイムスタンプから取得される。後に続くステップ４０６にて、先行する受信されたデータパケットに対する時間差が演算される。ステップ４０８にて、演算された時間差が、個々のメタデータトラックのｓｔｔｓボックス３２２に書き込まれる。ｓｔｔｓは、受信タイミングから夫々サンプル番号、すなわち、受信され、記憶されたパケットへの索引付けを可能する。すなわち、本発明の実施例によれば、サンプルボックスｓｔｔｓ３２２についての復号化時間は、受信時間差：ＲＴ（ｎ＋１）＝ＲＴ（ｎ）＋ｓｔｔｓ（ｎ）を含む。ここで、ＲＴ（ｎ）は、パケットｎに対する受信時間を意味し、ｓｔｔｓ（ｎ）は、パケットｎに対する未圧縮のテーブルエントリである。
【００９８】
前述したように、メディアデータコンテナ１０４内のサンプル（パケット）は、チャック１１０，１１２にグループ分けされる。それらのチャンクは、サイズが異なってもよく、チャンク内のサンプルもサイズが異なってもよい。チャンクボックスｓｔｓｃ３２８へのサンプルは、特定のサンプルを含むチャンク、その位置および関連したサンプルの記述を見つけるために用いられ得る。各エントリは、同じ特性を有するチャンクのラン（ｒｕｎ）の第１のチャンクのインデックスを与える。ここの一つのエントリを前のエントリから減じることにより、個々のランにチャンクがいくつあるかを演算することができる。チャンク毎の適切なサンプル数を乗じることにより、これをサンプルのカウントに変換することができる。
【００９９】
チャンクオフセットテーブルｓｔｃｏまたはｃｏ６４  ３３０は、メディアデータコンテナ１０４に、各チャンクのインデックスを与える。３２ビットまたは６４ビットのオフセットの使用を許容する２つの型がある。後者は、非常に大きなファイル１０２を管理する際に有用である。オフセットは、大抵、ファイルオフセットであって、ファイル（たとえばメディアデータコンテナ）内のボックスに入れられるオフセットではない。これは、ボックス構造の無いファイル内のメディアデータを参照することを可能にする。
【０１００】
したがって、本発明の実施例によれば、レコーダ１１６は、ファイルに入れられる各第１のチャンクのインデックスを示す第１のチャンクオフセットテーブル３３０を記憶するように適合される。これは、図５を参照して説明される。
【０１０１】
第１のステップ５０２にて、受信器１０８によるデータパケットの受信の後、受信されたデータパケット１１０，１１２は、第２のステップ５０４にて、ファイル１０２に関係するメディアデータコンテナ１０４内に記憶される。それによって、受信されたデータパケット１１０，１１２は、メディアデータコンテナ１０４内の記憶アドレスにてサンプルとして記憶される。第３のステップ５０６にて、ファイル１０２（メディアデータコンテナ１０４がファイル１０２に含まれる場合）の始め、または、メディアデータコンテナ１０４（メディアデータコンテナ１０４が別個のファイルに言及していた場合）の始めへの記憶アドレスのオフセットが演算される。その後、演算されたオフセットが、関係するメタデータトラック１２４のｓｔｃｏまたはｃｏ６４ボックス３３０に書き込まれる。
【０１０２】
制御パケット１１４，１１５およびそれらの関係するメタデータトラック１２８についても同様のことが当てはまる。
【０１０３】
上述したことを要約するため、以下においてより詳細に説明される、たとえば、ＲＴＰ／ＲＴＣＰ受信ヒントトラックまたはキーストリーム受信ヒントトラックなどの、受信ヒントトラックまたは関連した受信ヒントトラックを作成するための実行される動作に対して外観が与えられる。以下において説明される仮想メディアトラックに対しても同様のことが当てはまる。ＩＳＯベースのメディアファイルに基づくファイル１０２にトラックが加えられる場合、典型的には、本発明の実施例に従う装置１００によって以下の動作が実行される。
【０１０４】
・ｍｏｏｖボックスに新しいｔｒａｋボックスを加える。
・新たに作成されたｔｒａｋに新しいｔｋｈｄボックスを加える。このボックスは、トラックの特性（たとえば、作成時間、トラックＩＤ、「メディア」トラックの寸法および持続時間）を含むことになる。
【０１０５】
・新たに作成されたｔｒａｋボックスに、新しいｔｒｅｆボックスを加える。このボックスは、トラックのつながり、すなわち、トラックがそれ自身で成り立っているか、または他のトラックとの組み合わせにおいてのみ用いることができるかを示す。なお、あの受信ヒントトラックは、ｔｒｅｆボックスを用いてトラックリファレンスを介してリンク付けされるか、または、たとえば、２つ以上のトラックをリンク付けするために用いられることができるデータを含むサンプル記述を介して、暗にリンク付けされる。
【０１０６】
・新たに作成されたｔｒａｋボックスに新しいｍｄｉａボックスを加える。
・新たに作成されたｍｄｉａボックスに新しいｍｄｈｄボックスを加える。このボックスは、トラック内のメディアの特性（たとえば、メディアの持続時間および言語）を含むことになる。
【０１０７】
・新たに作成されたｍｄｉａボックスに新しいｈｄｌｒボックスを加える。このボックスは、典型的にはそのようなメディアを消費することができる処理のためのアイデンティフィケイションを含むことになる。アドバンスド受信ヒントトラック（たとえば、ＲＴＣＰ受信ヒントトラック）の場合、このアイデンティフィケイションは「ｈｉｎｔ」である。
【０１０８】
・新たに作成されたｍｄｉａボックスに新しいｍｉｎｆボックスを加える。
・新たに作成されたｍｉｎｆボックスに新しいｈｍｈｄボックスを加える。このボックスは、ｈｉｎｔトラックに対する情報ヘッダーを含むことになる。
【０１０９】
・新たに作成されたｍｄｉａボックスに新しいｄｉｎｆボックスを加える。
・新たに作成されたｄｉｎｆボックスに、トラックの未加工のデータが、ファイル自体の中にあるか、外部にあるか、例えば、別のファイル内にあるか、またはＵＲＩ（Uniform Resource Identifier）を介して利用可能であるかを示す、新しいｄｒｅｆボックスを加える。
【０１１０】
・新たに作成されたｍｉｎｆボックスに、新しいｓｔｂｌボックスを加える。このボックスは、タイミング、および、トラック内のサンプル（たとえば、ＲＴＰ／ＲＴＣＰまたはキーストリームパケット、仮想メディアサンプル）の索引付けをするデータを含むボックスのためのコンテナである。
・新たに作成されたｓｔｂｌボックスに新しいｓｔｓｄボックスを加える。このボックスは、メディア（一般的には４ＣＣと呼ばれる）のアイデンティフィケイション、および、サンプルのアウトオブバンド構造を含む。
【０１１１】
・新たに作成されたｓｔｂｌボックスに、新しいｓｔｔｓボックスを加える。このボックスは、トラック内のメディアの各個々のサンプル（たとえば、ＲＴＰ／ＲＴＣＰまたはキーストリームパケット、仮想メディアサンプル）の持続時間についての情報を含むことになる。
【０１１２】
・新たに作成されたｓｔｂｌボックスに、新しいｓｔｓｃボックスを加える。このボックスは、チャンクにグループ分けされたサンプル（たとえば、ＲＴＰ／ＲＴＣＰまたはキーストリームパケット、仮想メディアサンプル）の数についての情報を含むことになる。
【０１１３】
・新たに作成されたｓｔｂｌボックスに、新しいｓｔｓｚボックスを加える。このボックスは、トラック内のメディアの各個々のサンプル（たとえば、ＲＴＰ／ＲＴＣＰまたはキーストリームパケット、仮想メディアサンプル）のサイズについての情報を含むことになる。
・新たに作成されたｓｔｂｌボックスに、新しいｓｔｃｏまたはｃｏ６４ボックスを加える。このボックスは、各チャンクの第１のバイトのファイルオフセットについての情報を含むことになる。
・サンプルテーブルにおいて許容される別のボックス、たとえば、ランダムオフセットのために用いられることができるサンプル（たとえば、ＲＴＰ／ＲＴＣＰまたはキーストリームパケット、仮想メディアサンプル）を索引付けするｓｔｓｓボックスを、任意に加える。
【０１１４】
サンプルは、ギャップのない、サンプルの連続的なブロックであるチャンクにグループ分けされる。サンプルがファイルに加えられない場合、サンプルは、既存のチャンクに添付されるか、新しいチャンクが開始される。各々の新しいサンプルのために、ｓｔｔｓおよびｓｔｓｚボックスにエントリが加えられ、ｓｔｓｃボックスが、現在のチャンク内のサンプルの数を反映するように変更される。サンプルが新しいチャンクに書き込まれる場合、新しいエントリがｓｔｃｏ（またはｃｏ６４）に添付され、ｓｔｓｃボックスは、新しいチャンク内のサンプルの数を反映するように変更される。チャンク、すなわち未加工のサンプルデータそのものは、ｍｄａｔボックス内のファイルまたは（ファイル内から参照可能な）外部のファイルに書き込まれる。
【０１１５】
デバイスの動作に依存して、アドバンスド受信ヒントトラックは、（ＲＴＣＰおよびキーストリーム受信ヒントトラックと）平行にファイルに書き込まれる。すなわち、（仮想メディアトラックに対する）オフライン動作中の後の時点において、新しいデータが到着または加えられると、サンプルは、ファイルに加えられる。
【０１１６】
受信ヒントトラックおよび関連した受信ヒントトラック内の、受信されたデータパケット１１０，１１２および関連した制御メッセージ１１４，１１５の平行的な記憶は、記録および／またはタイムシフティングアプリケーション中における理想的な解決手段である。しかしながら、記録されたファイル１０２が長期間の記憶を意図されており、結果的に、何回もプレイバックされる場合、全てのプレイバック中において記憶されたデータを分析することを避け、別の計算なしに直接利用可能なメディア時間を有することが望ましい。通常、これは、（ＲＴＰ）受信ヒントトラックからのデータを非パケット化し、トラック毎に一つのエレメンタリストリームを用いてエキストラメディアトラックにそれを保存することを意味する。これは、たとえば、伝送暗号化が、ストリームデータパケットに対して適用されたり、記憶容量が制限されていた場合、いつも可能であったり、望ましいわけではない。メディアデータコンテナ１０４に記憶された伝送パケットの正確なタイミングに加えて、受信ヒントトラックについて利用可能な拡張された情報、特に、メディアストリーム内についての情報、たとえば、フレームアキュレイトＳＭＰＴＥタイムスタンプまたはビデオトラックのためのサブタイトルを有することが望ましい。
【０１１７】
記録されたメディアストリームの各プレイバック中における複雑な処理をすることなく、異なる記録されたメディアストリーム間で即時の正確なタイミング同期を提供することが望ましい。すなわち、記録されたメディアストリームがプレイバックされる度に記録されたメディアストリームが非ジッター化されることを必要とせず、記録されたファイルのプレイバックのために、全ての含まれるストリームのクロックの復元が必要でないことが望ましい。
【０１１８】
図６に移って、本発明の実施例に従って、記憶されたデータパケットおよび記憶された関連したメタデータ情報を処理するための装置６００が示される。
【０１１９】
記録されたデータパケットおよび記録された関連したメタ情報に基づいて、どの時点で記憶されたデータパケットのどのペイロードをリプレイするかを示す、記憶されたデータパケットのペイロードのための復号化情報を決定するためのプロセッサ６０２において、装置６００は、図１に示した装置１００と異なる。装置６００は、装置１００を拡張したものであり得るが、特に、装置６００が、記憶された、たとえばＭＰＥＧ−２  ＴＳパケットのような非ＲＴＰ／ＲＴＣＰパケットを処理するために用いられない場合、装置６００は、別個のものでもあり得る
図６に示される実施例において、データパケットは、ファイル１０２に関係するメディアデータコンテナ１０４内に記憶される。メタ情報は、上述したように、ファイル１０２のメタデータコンテナ１０６内に記憶される。記憶されたデータパケットは、メディアデータコンテナ１０４のチャンク１１８，１２２内にサンプルとして記憶され得る。サンプルおよび／またはチャンクは、メタデータコンテナ１０６内の関連したメタデータトラック１２４，１２８によって参照される。
【０１２０】
本発明のある実施例によれば、記憶されたデータは、上述したように、第１および第２のパケット化されたメディアデータを含む第１および第２のＲＴＰパケット１１０，１１２、および、関連した第１および第２のＲＴＣＰパケット１１４，１１５を含み得る。
【０１２１】
本発明の別の実施例によれば、記憶されたデータパケットは、一つ以上のプログラム、典型的には、オーディオおよびビデオのストリーム多重送信を含む、ＭＰＥＧ−２伝送ストリームデータパケットを含み得る。ＭＰＥＧ−２伝送ストリームデータパケットは、典型的には、１８８バイトの長さを有する。
【０１２２】
本発明のある実施例によれば、決定された復号化情報は、メディアデータコンテナ１０４内に復号化情報サンプルの形で記憶される。したがって、各復号化情報サンプルは、アクセスユニット、たとえば、受信ヒントトラックのメディアデータ部分内に記憶されたデータパケットから再構築され得るビデオまたはオーディオフレームに関係する。
【０１２３】
プロセッサ６０２は、復号化情報サンプルが、メディアアクセスユニットの開始アドレスおよび終了アドレスを示すように、メディアフレームに基づいて復号化情報サンプルを決定するように適合される。開始アドレスは、メディアアクセスユニットの開始を示すメディアデータサンプルの位置を示し、終了アドレスは、メディアアクセスユニットの終了を示すメディアデータサンプルの位置を示し、メディアデータサンプルは、メディアデータコンテナ１０４内のデータパケットによって含まれる。
【０１２４】
プロセッサ６０２は、仮想メディアサンプルとしてメディアデータコンテナ１０４内のチャンク６０４内に復号化情報を記憶するためにメディアデータコンテナ１０４にアクセスし得る。さらに、プロセッサ６０２は、復号化情報サンプル（仮想メディアサンプル）に関係し、復号化時間およびメディアデータコンテナ１０４内のメタデータトラック６０６内における復号化情報サンプルの位置を示す復号化メタ情報を記憶するために、メディアデータコンテナ１０６にアクセスし得る。前述したように、復号化情報サンプルは、各々が関係したビデオまたはオーディオストリームのアクセスユニットを参照する仮想メディアサンプルとして見られ得る。仮想メディアサンプルは、関係するオーディオ／ビデオフレームをメディアデータコンテナ１０４内の記憶されたデータパケットからどのようにして再構築するかについての情報を含む。
【０１２５】
図７に移って、メディアデータコンテナ１０４内に仮想メディアサンプル７０４を、メタデータコンテナ１０６内に関連した仮想メタデータトラック７０６を含むファイル７０２が示される。
【０１２６】
ファイル７０２は、メディアデータコンテナ１０４に含まれるチャンク７０８内にＲＴＰパケットを記憶し、チャンク７１０によって含まれるＲＴＣＰパケットを記憶する。ＲＴＰパケットを記憶するため、関連したＲＴＰメタデータトラック７１２がある。ＲＴＣＰパケットを記憶するために、ＲＴＣＰメタデータトラック７１４がメタデータコンテナ１０６内にある。
【０１２７】
矢印で示されるように、仮想メディアチャンク７０４内の仮想メディアサンプルは、チャンク７０８に記憶されたＲＴＰパケットに関係する。仮想メディアサンプルは、チャンク７０８に記憶された、記憶された伝送ユニット、すなわちデータパケットから、アクセスユニット、すなわち、たとえばメディアフレームを再構築するためのコンストラクタを含んでもよい。仮想メディアサンプルは、特定のアクセスユニット（不完全なコンストラクタ）の再構築に関係する、一つ以上の重要な伝送ユニットへのリンクを含んでもよい。また、仮想メディアサンプルは、たとえば、受信中にパケットを損失した場合、空であってもよい。さらなる変形例は、仮想メディアサンプルが、標準的なメディアトラックの場合のように、メディアフレームを記述する、完全に解凍されたメディアサンプルを含むことである。
【０１２８】
仮想メディアサンプルのジェネリックペイロードコンフィギュレーションデータは、同じ種類の非仮想メディアトラックのジェネリックペイロードコンフィギュレーションデータを含む。たとえば、Ｈ．２６４でコード化されたビデオのための仮想メディアトラックも、サンプル記述の内部のａｖｃＣボックス内にＡＶＣコンフィギュレーションレコードを含むことになる。加えて、それは、受信ヒントトラックの非ヒンティング処理についての情報、たとえば、仮想メディアトラックのサンプルペイロードに与えられる情報を用いることによって受信ヒントトラックから再組み立てされるメディアサンプルの最大のサイズを含み得る。
【０１２９】
仮想メディアトラックのサンプルのペイロードは、受信ヒントトラックからメディアサンプルデータを取り出す処理を記述した「コマンド」から構成される。これらのコマンドは、ヒントトラックのためのパケットコンストラクタから取り出され、「イミディエイトコンストラクタ」、「サンプルコンストラクタ」および「サンプル記述コンストラクタ」を含む。イミディエイトコンストラクタは、「Ｌｅｎｇｔｈ」、「ｄａｔａ」および「ｐａｄ」のフィールドから構成される。「Ｌｅｎｇｔｈ」は、「ｄａｔａ」のフィールドの長さを示す。「ｐａｄ」は、余分に容易された領域を埋めるために用いられ得る。
【０１３０】
サンプルコンストラクタは、ｔｒａｃｋｒｅｆｉｎｄｅｘ，ｌｅｎｇｔｈ，ｓａｍｐｌｅｎｕｍｂｅｒおよびｓａｍｐｌｅｏｆｆｓｅｔのフィールドから構成される。ｔｒａｃｋｒｅｆｉｎｄｅｘは、データが取り出される受信ヒントトラックを示し、ｓａｍｐｌｅｎｕｍｂｅｒは、受信ヒントトラックのサンプルの数を示す。ｓａｍｐｌｅｏｆｆｓｅｔのフィールドは、取り出されるべき長さ「ｌｅｎｇｔｈ」のデータブロックの始まりを特定する。
【０１３１】
サンプルコンストラクタを用いることにより、データをコピーせずに、メディアサンプルのコンパクトな表現が可能になる
サンプル記述コンストラクタは、ｔｒａｃｋｒｅｆｉｎｄｅｘ，ｓａｍｐｌｅｄｅｓｃｒｉｐｔｉｏｎｉｎｄｅｘ、ｓａｍｐｌｅｄｅｓｃｒｉｐｔｉｏｎｏｆｆｓｅｔおよびｌｅｎｇｔｈのフィールドから構成される。サンプルコンストラクタと同様に、受信ヒントトラックのサンプル記述からのデータは、仮想メディアサンプル内への包含のために用いられる。
【０１３２】
仮想メディアトラックは、メディアタイミングを用いる。すなわち、復号化タイムスタンプは、伝送の遅延またはクロック周波数の不正確性に影響を及ぼさない。タイミングは、仮想メディアトラックにおいて利用可能な情報から生成されうるメディアトラックのタイミングと同じである。
【０１３３】
図８は、ストリームの記録およびオフラインファイルの最適化フローチャートを示す。
第１のステップ８０２にて、受信ヒントトラックおよび任意に関連した受信ヒントトラック（たとえば、ＲＴＰおよびＲＴＣＰ）は、上述したようにファイル１０２に保存される。記録の完了後、すなわち、データパケットが、受信ヒントトラックの形でファイル１０２に保存され、結果として関連したコントロールパケットが関連した受信ヒントトラック内のファイルに保存されると、ステップ８０４にて、記録された受信ヒントトラック内で異なるメディアストリームが決定される。ステップ８０４が含む手段は、たとえば、オーディオおよびビデオストリームまたはオーディオおよびビデオストリームにそれぞれ関係するデータパケットを、記録された受信ヒントトラック内で決定する。これは、上述したように、セッション記述プロトコル（ＳＤＰ）から適切な情報を取り出すことによってなされる。
【０１３４】
それゆえ、プロセッサ６０２は、記憶されたデータパケットのどれが第１または第２のメディアデータサンプルに関係するかを決定し、メディアデータコンテナ１０４内の第２のメディアデータサンプルに関係する第２の復号化情報サンプル（第２の仮想メディアサンプル）を決定するように適合される。
【０１３５】
別のステップ８０６において、各識別されたメディアストリームに対して、関係する受信ヒントトラックを参照する仮想メディアトラック（メディアおよびメタデータを含む）が作成される。
【０１３６】
すなわち、プロセッサ６０２は、メディアデータコンテナ１０４内の第１のメディアデータサンプルに関係する第１の復号化情報サンプル（第１の仮想メディアサンプル）を記憶し、メディアコンテナ１０４内の第１の復号化情報サンプルの位置（たとえば、チャンクオフセット、サンプル番号など）を示す第１の復号化情報を、メタデータコンテナ１０６内に記憶するように適合される。プロセッサ６０２は、メディアコンテナ１０４内の第２の復号化情報サンプルの位置（たとえば、チャンクオフセット、サンプル番号など）を示す第２の復号化情報を、メタデータコンテナ１０６内に記憶するように適合される。
【０１３７】
すなわち、作成された仮想メディアトラックは、夫々のメディアストリームに従うペイロードを有するデータパケットを含む受信ヒントトラックを参照する。仮想メディアトラックを作成した後、受信ヒントトラックのメディアデータ部分内のサンプルまたはパケットを指し示し、制御伝送ユニット（たとえば、ＲＴＣＰセンダーレポート）から正確なタイミングを復元する仮想メディアサンプル（復号化情報サンプル）が仮想メディアトラックに加えられる。
【０１３８】
ＲＴＣＰセンダーレポートは、ＲＴＰタイムスタンプと、ＮＴＰタイムスタンプ形式の、ストリームの間で対応する共通タイムスタンプを含む。ＲＴＰタイムスタンプおよびＮＴＰタイムスタンプは、変換値が決定されることを可能にする。このＲＴＰ／ＮＴＰタイムスタンプ変換値およびＲＴＰタイムスタンプのクロック周波数を用いて、受信されたＲＴＰパケットの、ストリームの間で対応するタイムスタンプをＮＴＰタイムスタンプ形式で算出することが可能になる。このやり方によって、ＲＴＰ受信ヒントトラックの各サンプル、すなわち、各記憶されたデータパケットに対するメディアタイミングが、データパケットの記憶に対して処理後に得られうる。
【０１３９】
別のステップ８１０にて、記述的情報が仮想メディアトラックに（たとえば、このトラック内のテーブル、または、このトラックを参照する別のトラックを加えることによって）加えられる。それによって、加えられた記述的情報は、仮想メディアサンプルに関連したメディアフレームの開始アドレスおよび終了アドレスを示し得る。開始アドレスは、メディアフレームの開始を示すメディアデータサンプルの位置を意味し、終了アドレスは、メディアフレームの終りを示すメディアデータサンプルの位置を意味し、メディアデータサンプルは、メディアデータコンテナ１０４内のデータパケットのペイロードによって含まれる。
【０１４０】
別の認知のプレイバックステップ８１２において、仮想メディアサンプルの記述的な情報が、受信ヒントトラック内の対応するサンプルを仮想メディアトラックを介して見つけるために用いられる。ステップ８１０は、たとえば、記憶されたデータパケットに含まれたメディアストリームをリプレイするために用いられる。
【０１４１】
受信ヒントトラック内に記憶されたデータパケットのペイロードによって含まれるメディアフレームを参照する仮想メディアサンプルの記述的な情報をどのようにして取得するかの一例が図９に示される。
【０１４２】
図９は、一連の、記憶されたＲＴＰパケットＲＴＰ１，ＲＴＰ２，ＲＴＰ３を示す。ＲＴＰパケットＲＴＰ１，ＲＴＰ２，ＲＴＰ３は、仮想メディアコンテナ１０４内にサンプルとして記憶される。ＲＴＰパケットＲＴＰ１，ＲＴＰ２，ＲＴＰ３の各々は、ヘッダーＨ１，Ｈ２，Ｈ３、および、メディアデータサンプルを含むペイロードＰＬ１，ＰＬ２，ＰＬ３を含む。一例として、夫々、ヘッダーの大きさはＡビットであり、ペイロードの大きさは（Ｂ−Ａ）ビットである。ビデオまたはオーディオフレームであり得る第１のメディアフレームのデータは、第１のＲＴＰパケットＲＴＰ１のペイロードと第２のＲＴＰパケットＲＴＰ２のペイロードとの間で分割される。一例として、第１のメディアフレームのメディアデータは、ＲＴＰパケットＲＴＰ１のバイトＡからデータパケットＲＴＰ２のバイトＡ＋Ｙまでである。第２のメディアフレームのメディアデータは、バイトアドレスＡ＋Ｙで始まるデータパケットＲＴＰ２と、データパケットＲＴＰ３のバイトアドレスＡ＋Ｚで終わるデータパケットＲＴＰ３との間で分割される。
【０１４３】
仮想メディアサンプルＶＭＳ１およびＶＭＳ２は、夫々、第１のメディアフレームおよび第２のメディアフレームに関係する。本発明の実施例によれば、仮想メディアサンプルＶＭＳ１，ＶＭＳ２は、記憶されたデータパケットＲＴＰ１，ＲＴＰ２，ＲＴＰ３内の第１および第２のメディアフレームのメディアデータをどこで見つけるかについての情報を含む。すなわち、仮想メディアパケットＶＭＳ１は、データパケットＲＴＰ１をバイトアドレスＡからバイトアドレスＢまでアクセスし、データパケットＲＴＰ２のアドレスをバイトアドレスａからバイトアドレスＡ＋Ｙまで指定することによって、フレーム１のメディアデータが得られる情報を含む。仮想メディアサンプル２は、メディアフレーム２のためのメディアサンプルをどこで取得するかの情報を含む。すなわち、仮想メディアパケットＶＭＳ２は、メディアフレーム２がデータパケットＲＴＰ２中で始まり、バイトアドレスＡ＋Ｙは最大でバイトアドレスＢであり、バイトアドレスＡからバイトアドレスＡ＋ＺまでであるデータパケットＲＴＰ３中に、フレーム２のあの別のメディアサンプルが見つけられるという情報を記憶する。
【０１４４】
仮想メディアトラックのメディアデータ部分を形成する仮想メディアサンプルＶＭＳ１およびＶＭＳ２は、共に、メタデータコンテナ１０６内の仮想メディアトラックのメタデータ部分によって参照される。サンプルへの復号化時間（decoding-time-to-sample）情報が、各仮想メディアサンプルＶＭＳ１，ＶＭＳ２のためのｓｔｔｓボックス内で見つけられる。それによって、サンプルへの復号化時間情報は、上述したように、ＲＴＰパケットＲＴＰ１，ＲＴＰ２，ＲＴＰ３に関係する、記憶されたＲＴＣＰパケットを評価することによって決定され得るメディアタイミングを反映する。
【０１４５】
図１０は、受信ヒントトラックのサンプルの、仮想メディアトラックのサンプルへのマッピングを示す。
【０１４６】
図９と比較して、図１０は、ＭＰＥＧ−２伝送ストリームＭ２Ｔの、記憶されたデータパケットを示す。伝送ストリームＭ２Ｔは、オーディオサンプルを含むデータパケットＡ１〜Ａ７およびビデオサンプルを含むデータパケットＶ１〜Ｖ７を含む。
【０１４７】
仮想メディアサンプルＶＭＳＡ１は、オーディオパケットＡ１のペイロードおよびオーディオパケットＡ２のペイロードの間で分けられる。仮想メディアアンプルＶＭＳＡ１は、オーディオフレームを取得するために取り入れる、Ａ１およびＡ２ペイロードの、部分を示す。同様に、仮想メディアサンプルＶＭＳＡ２は、メディアデータが、オーディオパケットＡ２およびＡ３のペイロードにおいて見つけられ得る、第２のオーディオフレームに関係する。仮想メディアサンプルＶＭＳＡ３は、第３のオーディオフレームを取得するために、オーディオパケットＡ４およびオーディオパケットＡ５の一部を参照する。仮想メディアサンプルＶＭＳＡ４は、オーディオパケットＡ５の残りの部分および、オーディオフレーム４に対するオーディオパケットＡ６およびＡ７のペイロードを参照する。
【０１４８】
同様に、第１のビデオフレームに関係する仮想メディアサンプルＶＭＳＶ１は、第１のビデオフレームのためのビデオパケットＶ１，Ｖ２およびＶ３のペイロードを参照する。仮想メディアサンプルＶＭＳＶ２は、第２のビデオフレームのためのメディアサンプルを取得するために、ビデオパケットＶ４，Ｖ５およびＶ６のペイロードを参照する。
【０１４９】
記憶されたＲＴＰパケットを参照する受信ヒントトラックおよび記憶されたＲＴＣＰパケットを参照する受信ヒントトラックに基づくメディアコンテンツをリプレイするために、本発明の実施例は、ファイルを読み出すための装置を提供する。ファイルは、ファイルに関係するメディアコンテナ内に記憶された、第１のクロックに基づくパケット化された第１のメディアデータサンプルを含む第１のデータパケットと、第１のクロックとは異なる第２のクロックに基づくパケット化された第２のメディアデータサンプルを含む第２のデータパケットとを含む。ファイルは、さらに、記録された、基準クロックに対する第１のクロックの関係を示すための情報を含む、関連した第１の制御パケットの少なくとも一部と、基準クロックに対する第２のクロックの関係を示すための情報を含む、関連した第２の制御パケットの少なくとも一部とを含む。ファイルは、さらに、メタデータコンテナ内に記憶された関連したメタデータを有する。関連したメタデータは、受信された第１および第２のデータパケットおよび受信された第１および第２の制御パケットのタイミング情報および記憶された第１および第２のデータパケットおよび記憶された第１および第２の制御パケットの、メディアデータコンテナ内の位置を示す位置情報を含む。装置は、メディアデータコンテナにアクセスし、メディアデータコンテナ内の、記憶された第１および第２のデータパケットおよび記憶された第１および第２の制御パケットのタイミング情報を解釈することによって、記憶された第１および第２のデータパケットの出力スケジュールを決定するためのプロセッサを備える。装置は、メタデータコンテナにアクセスし、メディアデータコンテナからデータパケットを読み出すことによって、決定された出力スケジュールに従ってデータパケットを出力するための出力コントローラをさらに備える。
【０１５０】
本発明のある実施例によれば、プロセッサは、受信の順番が受信された第１および第２のデータパケットの記憶されたタイミング情報によって示される場合に、第１および第２のデータパケットの受信の順番を出力スケジュールが反映するように出力スケジュールを決定するように適合される。すなわち、この実施例を用いて、元の受信シナリオのシミュレーションを実行することができる。
【０１５１】
別の実施例によれば、プロセッサは、第１のデータパケットの出力スケジュールが、基準時間（ＮＴＰ）に関して第２のデータパケットの出力スケジュールと同期するように、第１および第２のデータパケットの記憶されたタイミング情報と、記憶された第１および第２の制御パケット内に含まれる基準タイムスタンプとに基づいて、同期化情報を決定するように適合される。すなわち、この実施例を用いて、受信された記憶された第１および第２のパケットのタイミングの同期化が実現される。
【０１５２】
受信ヒントトラックを読み出すデバイスは、ファイルを解析できるか否かを検出するために、典型的には、以下の動作の組を用いる。
【０１５３】
・ファイルコンテンツおよび構造が、潜在的に解析可能であるか否かを検出するために、ｆｔｙｐボックスを解析する。ファイルを解析できない場合、ファイルの読み出し動作を停止する。
【０１５４】
・ｍｏｏｖボックスを解析し、内部のｔｒａｋボックスの数を検出する。トラックが無い場合、ファイルの読み出し動作を停止する。
【０１５５】
・ｈｄｌｒボックス内において定義されるハンドラの種類に対して利用可能なハンドラの処理があるか否かを検出するために、各トラックのｍｉｎｆボックス内のｈｄｌｒボックスを解析する。ハンドラが認識されない場合、このトラックに対するファイルの読み出し動作を停止する。
【０１５６】
・各トラックのｍｉｎｆボックス内部のｓｔｂｌボックスおよびｓｔｓｄボックスを解析する。ｓｔｓｄボックスは、トラックのコンテンツのアイデンティフィケイションを含み、コンテンツを記述する。コンテンツが把握されない場合、トラックの、ファイルの読み出し動作を停止する。
【０１５７】
ファイルを解析できる場合、ｔｒａｋボックス内部のｔｒｅｆボックスを解析することにより、トラックの関連性が判定される。代替的には、フォーマットがトラックの関連性を定義する場合、トラックのｓｔｓｄボックス内で利用可能な情報を用いる。トラックの関連性を判定できない場合、トラックは、独立して成り立っており、別のトラックに含まれる情報が無くても解析することができると推定される。トラックの関連性は、読み出し装置の内部で記憶され、トラックに含まれる未加工のデータの把握の処理において必要である場合に用いられる。
【０１５８】
デバイスの動作に依存して、把握したトラックおよびファイルの提供に対してどれが関係しているかを選択することができる。初期設定により全てのトラックが解析されるが、以下の規則が適用される。
【０１５９】
・仮想メディアトラックに対し、ＲＴＰまたＭＥＰＧ−２ＴＳ受信ヒントトラックの代わりに、仮想メディアトラックが用いられる。このトラックは、ヒンティング動作の反転のためのデータを含む。すなわち、エレメンタリストリームデータブロックを作成するために、受信ヒントトラックのどのデータを取り出し、他のデータを用いて拡張する必要があるかを、デコーダは、生来的に把握している。
【０１６０】
・ＲＴＣＰ受信ヒントトラックに対し、動作の第１モードは、ＲＴＰ受信ヒントトラックと平行にＲＴＣＰとラックが消費されるというものである。読み出しデバイスは、同期化ストリームに対してジェネリックなＲＴＰ／ＲＴＣＰ受信の利用可能なロジックを用いる。
【０１６１】
・ＲＴＣＰ受信ヒントトラックに対し、動作の第２のモードは、初期同期化およびいくつかのＲＴＰ受信ヒントトラック間のクロックドリフトを検出するために、通常の読み出し動作の前に全体的なＲＴＣＰ受信ヒントトラックの消費が開始されるというものである。このモードにおいては、たとえば、いくつかのＲＴＰ受信ヒントトラックのＲＴＰクロックの調整に対して、線形回帰が適用される。多重ＲＴＰ受信ヒントトラックの継続的に同期化されたプレイアウトを容易にするためにデータが消費されると、ストリームにスキューが適用される。
【０１６２】
・キーストリーム受信ヒントトラックに対し、動作の第１のモードは、ＲＴＰまたはＭＰＥＧ−２ＴＳ受信ヒントトラックと平行に、キーストリーム受信ヒントトラックが消費されるというものである。これは、受信ヒントトラックの特定の保護されたデータブロックに対してキーストリームが、実際の放送と同様の態様で利用可能であることを確かにする。
【０１６３】
・動作の第２のモードは、有効期間がオーバーラップしないように、キーストリームデータおよび受信ヒントトラックのデータを調整することである。これは、キーストリームデータのタイミングを把握する必要なしに、後におけるトラックの編集を可能にする。
【０１６４】
トラックからいわゆるサンプルを得るために、ファイルの内部の位置が引出される必要がある。ｋ番目のサンプルＳに対するこの動作は、以下によって遂行される。
【０１６５】
・ｓｔｓｃボックスのデータを用いることによって、サンプルＳがあるチャンクＣを決定する。
【０１６６】
・チャンクＣのファイルオフセットＦを判定するために、ｓｔｃｏ（またはｃｏ６４）を解析する。
【０１６７】
・チャンク内の、サンプルＳの大きさＬおよび全ての前のサンプルＰiの大きさＫiを得るために、ｓｔｓｚボックスを解析する。
【０１６８】
したがって、データは、ファイル内の位置（Ｆ＋ｓｕｍ（Ｋi））において利用可能である。
【０１６９】
データがプレイアウトされる時間は、ｓｔｔｓボックス内で利用可能な情報によって定められる。このボックスは、各個々のサンプルｊに対して、ラン長さ暗号化された持続時間Ｄjを含む。したがって、ｋ番目のサンプルＳに対するプレイアウト時間は、ｊ＜ｋとして、全ての持続時間Ｄjの合計である。
【０１７０】
仮想メディアトラックが利用可能である場合、本発明の実施例は、ファイルを読み出すための装置を提供する。ファイルは、メディアデータコンテナ内に、ペイロードを含むデータパケットを記憶し、メディアデータコンテナ１０４内に、記憶されたデータパケットのペイロードのための復号化情報を記憶し、復号化情報は、記憶されたデータパケットのどのペイロードをどの時点でリプレイするかを示す。ファイルは、メタデータコンテナ１０６内に関連したメタデータを記憶し、関連したメタデータは、メディアデータコンテナ内の復号化情報の復号化時間および位置を示す。本発明の実施例に従う装置は、メタデータコンテナ１０６内の関連したメタデータにアクセスし、メタデータに基づいて、メディアデータコンテナ内の復号化情報にアクセスし、復号化情報に基づいて、記憶されたデータパケットのためのペイロードにアクセスすることにより、記憶されたデータパケットのペイロードの出力スケジュールを決定するためのプロセッサと、規定された出力スケジュールに従ってペイロードを出力するための出力コントローラとを備える。
【０１７１】
この明細書の導入部において述べたように、本発明の他の局面は、受信されたデータパケットに加えて、キーストリームメッセージを記憶することである。
【０１７２】
データまたはデータパケットにアクセスする権限は、権限管理システムを介して制御され得る。デジタル通信ネットワークを介してデータコンテンツを受信することは、あるエンドユーザに対して制限され、別のユーザから制約され得る。たとえば、ユーザは、プログラムに対する料金を支払うことによりプログラムへのアクセスを購入してもよい。ユーザが料金を支払えば、ユーザは、特定の期間プログラムへのアクセスが認められてもよく、一方、料金を支払わないユーザは、プログラムへのアクセスを有さない。プログラムへのアクセスは、伝送されたデータの暗号化により規制される。データを暗号化するのに、暗号化キーの使用を介して、標準的な暗号化をいくつ用いてもよい。受信器またはユーザの端末においてコンテンツを視聴できるように、受信器またはユーザの端末において、暗号化されたデータを復号化するためにキーが用いられ得る。暗号化されたデータパケットを復号化するためのキーは、同じデジタル通信ネットワークを介して配信されてもよく、暗号化されてもよい。一つ以上のキーを配信するために、他のデジタル通信ネットワークを用いることができる。したがって、プログラムまたはサービスへのアクセスまたは視聴を望むエンドユーザは、キーに対する権限を得る必要がある。
【０１７３】
暗号化されたプログラムまたはサービスに関連した伝送暗号化キーは、キーストリームの形態でユーザ端末に伝送される。キーストリームは、予め定められた頻度で伝送されるキーストリームメッセージを含んでもよく、暗号化されたデータストリームが受信器またはユーザ端末で受信された場合、キーストリームメッセージも受信される。
【０１７４】
図１２は、各々、暗号化キーｋ0，ｋ1，ｋ2を用いて暗号化されたペイロードを有する、ストリーム配信されたデータパケット１３０２−１，１３０２−２，１３０２−３を示す。データパケット１３０２に関連して、キーストリームパケット１３０４−１，１３０４−２，１３０４−３および１３０４−４を含むキーストリームがある。キーストリームパケット１３０４−１は、その関連したデータパケット１３０２−１の前の時間に配信され、データパケット１３０２−１の、暗号化されたペイロードの復号化のために、暗号化キーｋ0を含む。したがって、暗号化キーｋ0は、それに関連し、関連したデータパケットが暗号化されることができることを確かにする存続期間ｄ0を有する。第２のキーストリームパケット１３０４−２、および、関連したデータパケット１３０２−２のペイロードを復号化するために用いられ得る、その暗号化キーｋ1についても、同様のことが当てはまる。ここでも、肝炎したキーストリーム１３０４−２は、データパケット１３０２−２よりも十分前の時間に配信され、暗号化キーｋ1は、データパケット１３０２−２のペイロードの正しい復号化を確かにする存続時間ｄ1を有する。
【０１７５】
本発明の実施例によれば、データパケットおよび関連した制御パケットに対して前述したように、データパケットおよび関連したキーストリームパケットは、受信器端末において、メタデータコンテナ内にメディアデータコンテナを有するファイルに一緒に記憶され得る。
【０１７６】
図１１は、本発明のある実施例に従う、関係したメディアデータコンテナ１１０４およびメタデータコンテナ１１０６を有するファイル１１０２を記憶するための装置１１００を示す。
【０１７７】
装置１１００は、各々がペイロードを含むデータパケット１１１０を受信し、複数の暗号化キーを含むキーストリームパケットを受信するための受信器１１０８を含み、各暗号化器は、受信されたデータパケットのペイロードに関連付けられる。さらに、装置１１００は、メディアデータコンテナ１１０４内に受信されたデータパケット１１１０および受信されたキーストリームパケット１１１２を記憶し、メタデータコンテナ１１０６内に関連したメタデータを記憶するためのレコーダ１１１６を含み、関連したメタデータは、受信されたキーストリームパケット１１１２内の受信されたデータパケット１１１０の伝送タイミング情報を含み、かつ、メディアデータコンテナ１１０４内の、記憶されたデータパケット１１１０および記憶されたキーストリームパケット１１２の位置を示す位置情報を含む。
【０１７８】
装置１１００は、装置１００と共に用いられてよく、または装置１００に含まれてもよいことが強調されるべきである。すなわち、データパケットを関連した制御パケットと一緒に記憶するという発明に関するコンセプト、データパケットを関連したキーストリームパケットとともに記憶するという発明に関するコンセプト、および、記憶されたデータパケットおよび関連した制御パケットおよび／または関係したキーストリームパケットから生じるメディアトラックの形態で復号化情報を生成するという発明に関するコンセプトを組み合わせてもよい。
【０１７９】
図１１に再び移って、受信されたデータパケット１１１０は、メディアデータコンテナ１１０４の第１のチャンク１１１８内にサンプルとして記憶される。受信された関連したキーストリームパケットは、メディアデータコンテナ１１０４の第２のチャンク１１２０内にサンプルとして記憶される。本発明の好ましい実施例によれば、第１および第２のチャンク１１１８および１１２０は、メディアコンテナ１１０４内に交互的な態様で記憶されてもよい。
【０１８０】
上述したように、ファイル１１０２は、ＩＳＯベースのメディアファイルフォーマットに基づくファイル、例えば、ＭＰ４ファイルである。それゆえ、レコーダ１１１６は、メタデータコンテナｍｏｏｖ１１０６の第１のメタデータトラック１１２４の第１のチャンクオフセットテーブルｓｔｃｏまたはｃｏ６４内に第１のチャンク１１１８を記憶するように適合され、第１のチャンクオフセットテーブルは、メディアデータコンテナ１１０４がファイル１１０２の一部であるか否かに基づいて、ファイル１１０２またはメディアデータコンテナ１１０４へ向かう各第１のチャンク１１８のインデックスを示す。メディアデータコンテナ１１０４に向かう第２のチャンクのインデックスは、第１のチャンクに対して説明したのと同様の態様で、メタデータコンテナ１１０６の第２のメタデータトラック１１２０の第２のチャンクオフセットテーブル内に記憶される。
【０１８１】
受信ヒントトラックおよび関連した受信ヒントトラック内のデータパケット１１０，１１２および関連した制御パケット１１４，１１５の並行的な記憶の場合についてすでに説明したように、データパケット１１１０に対する伝送タイミング情報、すなわち、受信時間またはＲＴＰタイムスタンプは、第１のメタデータトラック１１２４により含まれる第１のｓｔｔｓボックスに記憶される。同様に、伝送タイミング情報またはディファレンシャル伝送タイミング情報は、第２のチャンク１１２０に関係する第２のメタデータ１１２８トラックの第２のｓｔｔｓボックスに記憶される。
【０１８２】
また、ストリームの受信が完了した後のプレイバックを容易にするため、キーストリーム受信ヒントトラックを仮想メタデータトラックに変換するように、ワンタイム処理が実行されてもよい。この目的のため、装置１１００は、記憶されたデータパケット１１１０おおび関連したメタ情報１１２４に基づいて、かつ、記憶されたキーストリームパケット１１１２および関連したキーストリームメタ情報１１２８に基づいて、記憶されたデータパケット１１１０のペイロードのための復号化情報を割当てるプロセッサ（図示せず）を含み、復号化情報は、記憶されたデータパケット１１１０のペイロードのリプレイするために、どの暗号化キーをどの時点で用いるかを示す。
【０１８３】
すなわち、伝送タイミングを有するキーストリーム受信ヒントトラックからのキーメッセージは、メディアタイミングを有する仮想メタデータトラック内のキーサンプルに変換される。これは、仮想メディアトラックについて上述したのと同じコンセプトに基づいてなされる。すなわち、キーサンプルは、生成され、メディアデータコンテナ１１０４内に記憶される。それによって、各キーサンプルは、アクセスユニットまたはメディアフレームと関係し、関係するメディアフレームに対して用いるための暗号化キーについての情報を含む。ｓｔｔｓボックスを含む関連したメタデータトラック１１２８において、キーサンプルへの復号化（decoding-to-key-sample）情報が与えられる。キーサンプルへの復号化情報は、夫々の暗号化メディアフレームを生じさせるために記憶されたデータパケットのペイロードデータを再び参照する、夫々のキーサンプルにどの時点でアクセスするかを示す。もし必要であれば、キーサンプルは、メディアトラック内の全てのメディアサンプルが、キートラック内に（同じキーＩＤを有する）関連したキーサンプルを有するように、仮想的に倍にされる。
【０１８４】
したがって、特に、コンテンツの暗号化の場合に暗号化されたアクセスユニットが、伝送ユニット（データパケット）から再構築でくるのであれば、メディアアクセスユニット、たとえば、メディアフレームと、キーメッセージとの間で正確な時間的関係を生成することが可能である。
【０１８５】
記憶されたデータパケット１１１０および記憶された関連したキーストリームパケット１１１２をメディアデータコンテナ１１０４内に有し、メタデータコンテナ１１０６内に記憶された関連したメタデータを有するファイル１１０２を読み出すため、本発明の実施例は、記憶されたデータパケット１１１０に基づき、関連したパケットメタ情報１１２４に基づき、および、記憶されたキーストリームパケット１１１２および関連したキーストリームメタ情報１１２８に基づいて、暗号化された情報を記憶されたデータパケットのペイロードに割当てるためのプロセッサを含み、復号化情報は、どの暗号化キーを用いて、どの時間に記憶されたデータパケットのペイロードをリプレイするかを示す。
【０１８６】
復号化情報を割当てるためのプロセッサは、暗号化データデータパケット１１１０のペイロードのプレイヤーに対して用いられてもよい。この理由は、割当てられた復号化情報に基づいて、復号化データパケットがデコーダに出力されるからである。復号化情報を割当てるためのプロセッサは、仮想キーサンプルとしてメディアデータコンテナ１１０４に部分的に記憶される仮想復号化情報を生成するために用いられても良い。関連したメタ情報は、メタデータトラック１１２８に記憶される。これは、上述した仮想メディアトラックのコンセプトに対応する。
【０１８７】
キーサンプルのペイロードは、受信されたままのキーストリームの未加工のペイロードを含んでもよい。これは、キーストリームのＵＤＰパケットのコンテンツが、直接記憶されることを意味する。複数の受信されたキーストリームメッセージの記憶を可能にするために、別のストラクチャの内部にこのデータをラップ（wrap）するシステムがあってもよい。
【０１８８】
キーストリームサンプルのタイミングは、その基本のＲＴＰ受信ヒントトラックのタイミング方法に依存する。ＲＴＰ受信ヒントトラックが、その復号化時間をＲＴＰタイムスタンプから取り出す場合、キーストリーム受信ヒントトラックもまた、その復号化時間をＲＴＰタイムスタンプから取り出すことになるが、ＲＴＰタイムスタンプを推定する必要があり得る。受信時間がＲＴＰ受信ヒントトラックに対して用いられる場合は、受信タイミングがキーストリームメッセージを記憶するためにも用いられることになる。一般的に、ＲＴＰ受信ヒントトラックおよびキーストリーム受信ヒントトラックの両方が同期され、同じ時間に基づいて用いられる。
【０１８９】
要約すると、本発明は、典型的には、パケット化されたメディアデータ、たとえばビデオデータを含む、受信された「伝送ユニット」（ＴＵ）を、予め演算されたパケットまたはコンストラクタとして、ファイルのサンプル内の「制御伝送ユニット」（ＣＴＵ）とともに、受信ヒントトラック内に記録するメディア記憶システムに関する。制御伝送ユニットは、受信ヒントトラックに関連した、別個の平行トラック内に記憶される。
【０１９０】
ＣＴＵは、ファイルからのプレイバック中に受信ヒントトラックのメディアパケットを処理するのに必要また有用である付加的なデータを含む。ＣＴＵの例は、暗号化ストリームの場合におけるＲＴＣＰレポートまたはキーメッセージである。
【０１９１】
記録されたストリームのローカルプレイバックを最適化するため、「仮想メディアトラック」は、逆ヒンティング処理を用いて、受信されたＴＵを「仮想メディアサンプル」にマッピングする。仮想メディアサンプルは、ＣＴＵを有するトラックおよび受信ヒントトラックから復元されることがあり、完全なメディアサンプルである必要がないメディアサンプルのタイミングを有する。適切であれば、仮想メディアトラックの索引付けが適用される。インデックスは、受信ヒントトラックのリンク付けされたサンプルに対しても適用される。仮想メディアトラックは、ファイル内の別のトラック（たとえば、「タイムドメタデータトラック）に対する参照として用いられ得る。アプリケーションは、仮想メディアトラックを介して受信ヒントトラックの対応するサンプルを検索し得る。
【０１９２】
キーストリームメッセージは、関連した受信ヒントトラックとして記憶される。仮想メディアトラックは、メディアサンプルおよび復号化キーを正確にそろえるために用いられる。
【０１９３】
近年、たとえば、米国特許出願ＵＳ２００７／０１３０４９８に記載されているように、動画片（movie fragments）と呼ばれる追加物によって、上述したＩＳＯベースのファイルフォーマットが補足された。本発明の実施例にも、前述した動画片を適用してもよいことが言及されなければならない。
【０１９４】
状況に応じて、発明に係る方法は、ハードウェアまたはソフトウェアで実現され得る。方法が実行されるようにプログラム可能なコンピュータシステムと協働し得る、デジタル記憶媒体、特に、電気的に読取り可能な制御信号を有するディスクまたはＣＤにおいて実現される。したがって、一般的に、発明は、コンピュータプログラムプロダクトがコンピュータ上で実行されると発明に係る方法を行なうための、機械読取り可能なキャリアに記憶されたプログラムコードを有するコンピュータプログラムプロダクトにある。言い換えると、発明は、コンピュータプログラムがコンピュータ上で実行されると方法を行なうためのプログラムコードを有するコンピュータプログラムとして実現される。
【０１９５】
この発明は、いくつかの好ましい実施例の観点で説明されてきたが、この発明の範囲内で変更、置換および均等物がある。本発明の方法および構成物を実現する多くの代替手段があることに留意すべきである。したがって、以下に添付された特許請求の範囲は、本発明の忠実な精神および範囲内で、全てのそのような変更、置換および均等物を含むものと解釈されることが意図される。
【図１】
2010532605.tif 000003
【図２】
2010532605.tif 000004
【図３】
2010532605.tif 000005
【図４】
2010532605.tif 000006
【図５】
2010532605.tif 000007
【図６】
2010532605.tif 000008
【図７】
2010532605.tif 000009
【図８】
2010532605.tif 000010
【図９】
2010532605.tif 000011
【図１０】
2010532605.tif 000012
【図１１】
2010532605.tif 000013
【図１２】
2010532605.tif 000014
【手続補正書】
【提出日】平成21年8月14日(2009.8.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
関係するメディアデータコンテナ（１０４）およびメタデータコンテナ（１０６）を有するファイル（１０２）を記録するための装置（１００）であって、
第１のクロックに基づくパケット化された第１のメディアデータサンプルを含む第１のストリーム配信されたＲＴＰパケット（１１０）を受信し、前記第１のクロックとは異なる第２のクロックに基づく、前記第１のメディアデータサンプルに関連する第２のメディアデータサンプルを含む第２のストリーム配信されたＲＴＰパケット（１１２）を受信し、前記第１のストリーム配信されたＲＴＰパケット（１１０）に関係するとともに、基準クロックに対する前記第１のクロックの関係を示すための情報を含む第１のＲＴＣＰパケット（１１４）を受信し、前記第２のストリーム配信されたＲＴＰパケット（１１２）に関係するとともに、前記基準クロックに対する前記第２のクロックの関係を示すための情報を含む第２のＲＴＣＰパケット（１１５）を受信するための受信器（１０８）と、
前記受信された第１および第２のストリーム配信されたＲＴＰパケット（１１０，１１２）、および、前記受信された第１および第２のＲＴＣＰパケット（１１４，１１５）の少なくともＲＴＣＰセンダーレポートを前記メディアデータコンテナ（１０４）内に記憶し、関連したメタデータ（１２４，１２８）を前記メタデータコンテナ（１０６）内に記憶するためのレコーダ（１１６）とを含み、前記関連したメタデータは、前記受信された第１および第２のストリーム配信されたＲＴＰパケットおよび前記受信された第１および第２のＲＴＣＰパケットの受信時間および／または伝送プロトコルタイムスタンプ情報、および、前記記憶された第１および第２のＲＴＰパケット、および、前記記憶された第１および第２のＲＴＣＰパケットの、前記メディアデータコンテナ内の位置を示す位置情報を含む、装置。
【請求項２】
前記レコーダ（１１６）は、前記第１および第２の受信されたＲＴＰパケット（１１６）を、前記メディアデータコンテナ（１０４）の第１のチャンク（１１８）内にサンプルとして記憶し、前記受信された第１および第２のＲＴＣＰパケット（１１４，１１５）の前記ＲＴＣＰセンダーレポートを、前記メディアデータコンテナ（１０４）の第２のチャンク（１２２）内にサンプルとして記憶するように適合される、請求項１に記載の装置。
【請求項３】
前記レコーダ（１１６）は、前記第１および第２のチャンク（１１８，１２２）を、交互的な態様で前記メディアデータコンテナ（１０４）内に記憶するように適合される、請求項２に記載の装置。
【請求項４】
前記レコーダ（１１６）は、前記第１および第２のＲＴＰパケット（１１０，１１２）の前記受信時間および／または伝送プロトコルタイムスタンプ情報および前記位置情報を、前記メタデータコンテナ（１０６）の第１のトラック（１２４）内に記憶し、前記第１および第２のＲＴＣＰパケット（１１４，１１５）の前記受信時間および／または伝送プロトコルタイムスタンプ情報および前記位置情報を、前記メタデータコンテナ（１０６）の第２のトラック（１２８）内に記憶するように適合される、請求項１〜３のいずれかに記載の装置。
【請求項５】
前記レコーダ（１１６）は、前記第１および第２のＲＴＰパケット（１１０，１１２）の前記受信時間および／または伝送プロトコルタイムスタンプ情報を、第１および／または第２のＲＴＰパケットの受信タイミングから、前記第１のチャンク（１１８）内の第１および／または第２のＲＴＰパケットの関連したサンプル番号への索引付けを可能にする第１のサンプルテーブルボックス（ｓｔｔｓ）内に記憶し、第１のおよび／または第２のＲＴＣＰパケットの受信タイミングから、前記第２のチャンク（１２２）の前記第１のおよび／または第２のＲＴＣＰパケットに関連したサンプル番号への索引付けを可能にする第２のサンプルテーブルボックス（ｓｔｔｓ）内に、前記第１および第２のＲＴＣＰパケット（１１４，１１５）の前記受信タイミング情報を記憶するように適合される、請求項１〜４のいずれかに記載の装置。
【請求項６】
前記レコーダ（１１６）は、前記ファイル（１０２）内に、各第１のチャンク（１１８）のインデックスを示す第１のチャンクオフセットテーブル（ｓｔｃｏ，ｃｏ６４）を記憶し、前記ファイル（１０２）内に、各第２のチャンク（１２２）のインデックスを示す第２のチャンクオフセットテーブル（ｓｔｃｏ，ｃｏ６４）を記憶するように適合される、請求項５に記載の装置。
【請求項７】
前記装置（１００）は、前記第１および第２のＲＴＰパケット（１１０，１１２）の前記記憶された受信時間および／または伝送プロトコルタイムスタンプ情報、および、前記第１および第２のＲＴＰパケットに関連した、前記記憶された第１および第２のＲＴＣＰパケット（１１４，１１５）に含まれるＮＴＰタイムスタンプに基づいて、前記第１および第２のメディアデータサンプルを同期化するための同期化情報を決定するためのプロセッサ（６０２）を含む、請求項１〜６のいずれかに記載の装置。
【請求項８】
前記プロセッサ（６０２）は、前記記憶された第１および第２のＲＴＰパケット（１００，１１２）に基づいて、前記記憶された第１および第２のＲＴＣＰパケット（１１４，１１５）を決定し、前記記憶された、関連したメタ情報（１２４，１２８）に基づいて、前記記憶されたＲＴＰパケット（１１０，１１２）のペイロードのための復号化情報（６０４，６０６，７０４，７０６）を決定するように構成され、前記復号化情報は、どの時点で前記記憶されたＲＴＰパケットのどのペイロードをリプレイするかを示す、請求項７に記載の装置。
【請求項９】
前記プロセッサは、どの前記記憶されたＲＴＰパケット（１１０，１１２）が、前記第１または前記第２のメディアデータサンプルに関係するかを決定し、前記第１のメディアデータサンプルに関係する第１の復号化情報サンプル（６０２，７０２）を、前記メディアデータコンテナ（１０４）に記憶し、前記メディアコンテナ（１０４）内の前記第１の復号化情報サンプル（６０２，７０２）の位置を示す第１の復号化メタ情報（６０４，７０４）を、前記メタデータコンテナ（１０６）に記憶し、前記第２のメディアデータサンプルに関係する第２の復号化情報サンプル（６０２，７０２）を、前記メディアデータコンテナ（１０４）内に記憶し、前記メディアコンテナ（１０４）内の前記第２の復号化情報サンプル（６０２，７０２）の位置を示す第２の復号化メタ情報（６０４，７０４）を、前記メタデータコンテナ（１０６）内に記憶するように適合される、請求項８に記載の装置。
【請求項１０】
前記受信器（１０８，１１０８）は、さらに、複数の暗号化キー（ｋn）を含むキーストリームパケット（１１１２）を受信するように適合され、各暗号化キーは、前記第１および／または前記第２のＲＴＰパケット（１１０，１１２，１１１０）のうちの少なくともいずれか一つのペイロードに関連し、前記レコーダは、前記受信されたキーストリームパケットを前記メディアデータコンテナ（１０４，１１０４）内に記憶し、関連した伝送タイミング情報を前記メタデータコンテナ（１０６，１１０６）に記憶するように構成される、請求項１〜９のいずれかに記載の装置。
【請求項１１】
前記レコーダ（１１６，１１１６）は、前記キーストリームパケット（１１１２）を、サンプルとして前記メディアデータコンテナ（１０４，１１０４）のキーチャンク（１１２０）内に記憶し、前記関連した伝送タイミング情報、および、前記メディアデータコンテナ内の前記キーストリームパケットの位置を示す位置情報を、前記メタデータコンテナ（１０６，１１０６）のキートラック（１１２８）内に記憶するように適合される、請求項１０に記載の装置。
【請求項１２】
前記レコーダ（１１６，１１１６）は、キーストリームパケットとの伝送タイミングから、前記キーチャンク（１１２０）内のキーストリームパケットの関連したサンプル番号への索引付けを許容するキーサンプルテーブルボックス（ｓｔｔｓ）内に、前記伝送タイミング情報を記憶するように適合される、請求項１０または１１に記載の装置。
【請求項１３】
前記レコーダ（１１６，１１１６）は、キーストリームパケットの受信時間インデックスを、関連した伝送タイミング情報として記憶する、または、前記キーストリームパケットの受信時間付近の予め定められた時間間隔で受信されたＲＴＰパケットのパケットタイムスタンプを、キーストリームパケットの関連したタイミング情報として記憶するように適合される、請求項１０〜１２のいずれかに記載の装置。
【請求項１４】
前記プロセッサ（６０２）は、前記記憶された第１および第２のＲＴＰパケット（１１０，１１２）に基づいて、前記記憶された第１および第２のＲＴＣＰパケット（１１４，１１５）に基づいて、前記関連したメタ情報（１２４，１２８）に基づいて、および、前記記憶されたキーストリームパケット（１１１２）および前記関連したキーストリームメタ情報（１１２８）に基づいて、前記記憶された第１および／または第２のＲＴＰパケット（１１０，１１２）のペイロードに、復号化情報を割当てるように適合され、前記復号化情報は、どの暗号化キーを用いてどの時間に前記記憶された第１および／または第２のＲＴＰパケットのペイロードをリプレイするかを示す、請求項１０〜１３のいずれかに記載の装置。
【請求項１５】
前記プロセッサ（６０２）は、復号化情報サンプル内の前記復号化情報を、前記メディアデータコンテナ（１０４）内に記憶し、関連する復号化指令メタ情報を前記メタデータコンテナ（１０６）内に記憶するように適合される、請求項１４に記載の装置。
【請求項１６】
前記ファイル（１０２）は、前記ＩＳＯベースのメディアファイルフォーマットに基づく、請求項１〜１５のいずれかに記載の装置。
【請求項１７】
関係するメディアデータコンテナ（１０４）およびメタデータコンテナ（１０６）を有するファイル（１０２）を記録するための方法であって、
第１のクロックに基づくパケット化された第１のメディアデータサンプルを含む第１のストリーム配信されたＲＴＰパケット（１１０）を受信し、前記第１のクロックとは異なる第２のクロックに基づく、前記第１の第１のメディアデータサンプルに関連する第２のメディアデータサンプルを含む第２のストリーム配信されたＲＴＰパケット（１１２）を受信し、基準クロックに対する前記第１のクロックの関係を示すための情報を含む第１のＲＴＣＰパケット（１１４）を受信し、前記基準クロックに対する前記第２のクロックの関係を示すための情報を含む第２のＲＴＣＰパケット（１１５）を受信するステップと、
前記受信された第１および第２のストリーム配信されたＲＴＰパケット（１１０，１１２）、および、前記受信された第１および第２のＲＴＣＰパケット（１１４，１１５）の少なくともＲＴＣＰセンダーレポートを前記メディアデータコンテナ（１０４）内に記憶し、関連したメタデータ（１２４，１２８）を前記メタデータコンテナ（１０６）内に記憶するステップとを含み、前記関連したメタデータは、前記受信された第１および第２のストリーム配信されたＲＴＰパケットおよび前記受信された第１および第２のＲＴＣＰパケットの受信時間および／または伝送プロトコルタイムスタンプ情報、および、前記記憶された第１および第２のＲＴＰパケット、および、前記記憶された第１および第２のＲＴＣＰパケットの、前記メディアデータコンテナ内の位置を示す位置情報を含む、方法。
【請求項１８】
コンピュータまたはマイクロコントローラ上で実行されている場合に、請求項１７に記載の方法を実行するためのコンピュータプログラム。
【請求項１９】
ファイル（１０２）を読み出すための装置であって、前記ファイルは、前記ファイルに関係したメディアデータコンテナ（１０４）内に記憶された、第１のクロックに基づくパケット化された第１のメディアデータサンプルを含む第１のストリーム配信されたＲＴＰパケット（１１０）、および、第１のクロックとは異なる第２のクロックに基づくパケット化された第２のメディアデータサンプルを含む第２のストリーム配信されたＲＴＰパケット（１１２）を有し、かつ、前記ファイルは、記憶された、基準クロックに対する前記第１のクロックの関係を示すための情報を含む、関連した第１のＲＴＣＰパケット（１１４）の少なくともＲＴＣＰセンダーレポートを有し、かつ、記憶された、前記基準クロックに対する前記第２のクロックの関係を示すための情報を含む、関連した第２のＲＴＣＰパケット（１１５）の少なくともＲＴＣＰセンダーレポートを有し、前記ファイルは、前記ファイルのメタデータコンテナ（１０６）内に、記憶された、関連したメタデータ（１２４，１２８）を有し、前記関連したメタデータは、前記受信された第１および第２のストリーム配信されたＲＴＰパケット（１１０，１１２）および前記受信された第１および第２のＲＴＣＰパケット（１１４，１１５）の受信時間および／または伝送プロトコルタイムスタンプ情報、および、前記記憶された第１および第２のＲＴＰパケットおよび前記記憶された第１および第２のＲＴＣＰパケットの、前記メディアデータコンテナ内の位置を示す位置情報を含み、前記装置は、
前記メタデータコンテナ（１０６）にアクセスし、前記メディアデータコンテナ（１０４）内の前記記憶された第１および第２のＲＴＰパケットおよび前記記憶された第１および第２のＲＴＣＰパケット（１１４，１１５）の受信時間および／または伝送プロトコルタイムスタンプ情報を解析することにより、前記記憶された第１および第２のＲＴＰパケット（１１０，１１２）の出力スケジュールを決定するためのプロセッサを含み、前記プロセッサは、前記第１および第２のＲＴＰパケット（１１０，１１２）の、前記記憶された受信時間および／または伝送プロトコルタイムスタンプ情報、および、前記記憶された第１および第２のＲＴＣＰパケット（１１４，１１５）の前記ＲＴＣＰセンダーレポートに含まれる基準タイムスタンプに基づいて、前記第１のＲＴＰパケットの出力スケジュールが、前記第１および第２のメディアデータサンプルのメディアタイミングに関して、前記第２のＲＴＰパケットの出力スケジュールと同期するように同期化情報を決定するように適合され、前記メディアタイミングは、基準時間情報に基づき、前記装置は、
メタデータコンテナ（１０６）にアクセスし、前記メディアデータコンテナ（１０４）から前記ＲＴＰパケットを読み出すことによって、前記決定された出力スケジュールに従って、前記第１および第２のＲＴＰパケット（１１０，１１２）を出力するための出力コントローラをさらに含む、装置。
【請求項２０】
前記プロセッサは、前記出力スケジュールが前記第１および第２のＲＴＰパケット（１１０，１１２）の受信順序を反映するように前記出力スケジュールを決定するように適合され、前記受信順序は、前記受信された第１および第２のＲＴＰパケットの、記憶された受信タイミング情報によって示される、請求項１９に記載の装置。
【請求項２１】
前記ファイル（１０２）は、前記ＩＳＯベースのメディアファイルフォーマットに基づく、請求項１９または２０に記載の装置。
【請求項２２】
ファイル（１０２）を読み出すための方法であって、前記ファイルは、前記ファイルに関係したメディアデータコンテナ（１０４）内に記憶された、第１のクロックに基づくパケット化された第１のメディアデータサンプルを含む第１のストリーム配信されたＲＴＰパケット（１１０）、および、第１のクロックとは異なる第２のクロックに基づくパケット化された第２のメディアデータサンプルを含む第２のストリーム配信されたＲＴＰパケット（１１２）を有し、かつ、前記ファイルは、記憶された、基準クロックに対する前記第１のクロックの関係を示すための情報を含む、関連した第１のＲＴＣＰパケット（１１４）の少なくともＲＴＣＰセンダーレポートを有し、かつ、記憶された、前記基準クロックに対する前記第２のクロックの関係を示すための情報を含む、関連した第２のＲＴＣＰパケット（１１５）の少なくともＲＴＣＰセンダーレポートを有し、前記ファイルは、前記ファイルのメタデータコンテナ（１０６）内に、記憶された、関連したメタデータ（１２４，１２８）を有し、前記関連したメタデータは、前記受信された第１および第２のストリーム配信されたＲＴＰパケット（１１０，１１２）および前記受信された第１および第２のＲＴＣＰパケット（１１４，１１５）の受信時間および／または伝送プロトコルタイムスタンプタイミング情報、および、前記記憶された第１および第２のＲＴＰパケットおよび前記記憶された第１および第２のＲＴＣＰパケットの、前記メディアデータコンテナ内の位置を示す位置情報を含み、前記方法は、
前記メタデータコンテナ（１０６）にアクセスし、前記メディアデータコンテナ（１０４）内の、前記記憶された第１および第２のＲＴＰパケットおよび前記記憶された第１および第２のＲＴＣＰパケット（１１４，１１５）の受信時間および／または伝送プロトコルタイムスタンプ情報を解析することにより、前記記憶された第１および第２のＲＴＰパケット（１１０，１１２）の出力スケジュールを決定するステップを含み、前記第１および第２のＲＴＰパケット（１１０，１１２）の、前記記憶された受信時間および／または伝送プロトコルタイムスタンプ情報、および、前記記憶された第１および第２のＲＴＣＰパケット（１１４，１１５）の前記ＲＴＣＰセンダーレポートに含まれる基準タイムスタンプに基づいて、前記第１のＲＴＰパケットの出力スケジュールが、前記第１および第２のメディアデータサンプルのメディアタイミングに関して、前記第２のＲＴＰパケットの出力スケジュールと同期するように同期化情報を決定するように適合され、前記メディアタイミングは、基準時間情報に基づき、前記方法は、
メタデータコンテナ（１０６）にアクセスし、前記メディアデータコンテナ（１０４）から前記ＲＴＰパケットを読み出すことによって、前記決定された出力スケジュールに従って、前記第１および第２のＲＴＰパケット（１１０，１１２）を出力するステップをさらに含む、方法。
【請求項２３】
コンピュータまたはマイクロコントローラ上で実行されている場合に、請求項２２に記載の方法を実行するためのコンピュータプログラム。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2010532605.tif 000015
【国際調査報告】
2010532605.tif 000016
2010532605.tif 000017
2010532605.tif 000018
2010532605.tif 000019