(57)【特許請求の範囲】
【請求項１】
メディアデータコンテナ（１６）とメタデータコンテナ（１４）とを有する、ＩＳＯベースメディアファイルフォーマットに基づくファイル（１２）を出力するための装置（１０）であって、
データサンプルのシーケンス内の損失又は破損データサンプルに関連するエラー情報（１９）を提供するために、前記データサンプルのシーケンスを解析するエラー情報提供手段（１８）と、
前記エラー情報と前記損失又は破損データサンプルに関連するサンプル番号（２１）とを前記ＩＳＯベースメディアファイルフォーマットに基づくファイル（１２）の前記メタデータコンテナ（１４）内に一緒に格納する記録手段（２２）と、を含み、
前記エラー情報提供手段（１８）は、前記提供されたエラー情報（１９）を、それぞれ異なるエラータイプを示す複数のエラータイプのうちの少なくとも１つに関連付けるものであり、
前記記録手段（２２）は、前記少なくとも１つのエラータイプを、関連するエラータイプ記述ボックス（５２；spdb）に格納するよう構成され、
前記エラータイプ記述ボックス（５２；spdb）は、前記メタデータコンテナ（１４）内のサンプルテーブルボックス(stbl)に含まれており、
前記サンプルテーブルボックス（stbl）は、データサンプルのタイミングをその関連付けられたサンプル番号（２１）へインデックス化することを可能にするものであり、
前記記録手段（２２）は、前記データサンプルと前記提供されたエラー情報（１９）との間の割り当てを可能にするエラー属性ボックス（５４；stpb）に、前記提供されたエラー情報（１９）と前記サンプル番号（２１）とを一緒に格納するよう構成され、
前記エラー属性ボックス（５４；stpb）は前記サンプルテーブルボックス（stbl）に含まれている、ことを特徴とする装置。
【請求項２】
前記記録手段（２２）は、前記データサンプルのシーケンス内で損失データサンプルが検出された場合には、前記損失データサンプルを示すエラー情報（１９）と前記損失データサンプルの隣に存在するデータサンプルのサンプル番号（２１）とを一緒に格納することを特徴とする、請求項１に記載の装置。
【請求項３】
前記エラー情報提供手段（１８）は、データサンプル（２０）の少なくとも一部が破損した情報を含んでいるかどうかを検出することを特徴とする、請求項１に記載の装置。
【請求項４】
前記データサンプル（２０）は前記ファイル（１２）の前記メディアデータコンテナ（１６）内に格納され、
前記エラー情報提供手段（１８）は、損失又は破損データサンプルを検出するためにこの格納されたデータサンプルを解析することを特徴とする、請求項１乃至３のいずれか１項に記載の装置。
【請求項５】
ストリーミングされたデータサンプルを受信するための受信器（２４）を更に含み、
前記エラー情報提供手段（１８）は、損失又は破損データサンプルを検出するためにこの受信されたデータサンプルを検査することを特徴とする、請求項１乃至３のいずれか１項に記載の装置。
【請求項６】
前記記録手段（２２）は、前記受信されたデータサンプルを前記ファイル（１２）の前記メディアデータコンテナ（１６）のチャンク内に格納し、この格納されたデータサンプルの各々にサンプル番号（２１）を関連付けることを特徴とする、請求項５に記載の装置。
【請求項７】
前記記録手段（２２）は、前記提供されたエラー情報（１９）をサンプルテーブルボックス(stbl)に格納するよう構成され、
前記サンプルテーブルボックスは、前記格納されたデータサンプルのタイミングを前記チャンク内の前記関連付けられたサンプル番号（２１）へインデックス化することを可能にするものであることを特徴とする、請求項６に記載の装置。
【請求項８】
前記記録手段は、前記ファイル（１２）の中への各チャンクのインデックスを示すチャンクオフセットボックス(stco)を格納することを特徴とする、請求項７に記載の装置。
【請求項９】
前記提供されたエラー情報（１９）は質的エラー情報と量的エラー情報とを含み、前記記録手段は、前記量的エラー情報と前記質的エラー情報及び前記サンプル番号（２１）とを一緒に格納し、前記量的エラー情報は前記質的エラー情報を量的に特徴付けるものである、請求項１乃至８のいずれか１項に記載の装置。
【請求項１０】
前記データサンプル（２０）は、メディアデータサンプルを含むストリーミングされたデータパケットであることを特徴とする、請求項１乃至９のいずれか１項に記載の装置。
【請求項１１】
前記データパケット（２０）は、ストリーミングされたＲＴＰパケット、ＲＴＣＰパケット又はＭＰＥＧ−２転送ストリームパケットであることを特徴とする、請求項１０に記載の装置。
【請求項１２】
メディアデータコンテナ（１６）とメタデータコンテナ（１４）とを有する、ＩＳＯベースメディアファイルフォーマットに基づくファイル（１２）を出力するための方法であって、
データサンプルのシーケンス内の損失又は破損データサンプルに関連するエラー情報（１９）を提供するために、前記データサンプルのシーケンスを解析するステップ（Ｓ１）と、
前記エラー情報（１９）と前記損失又は破損データサンプルに関連するサンプル番号（２１）とを前記ＩＳＯベースメディアファイルフォーマットに基づくファイル（１２）の前記メタデータコンテナ内に一緒に格納するステップ（Ｓ２）と、を含み、
前記解析ステップは、前記提供されたエラー情報（１９）を、それぞれ異なるエラータイプを示す複数のエラータイプのうちの少なくとも１つに関連付けるステップを含み、
前記格納ステップは、前記少なくとも１つのエラータイプを、関連するエラータイプ記述ボックス（５２；spdb）に格納するものであり、
前記エラータイプ記述ボックス（５２；spdb）は、前記メタデータコンテナ（１４）内のサンプルテーブルボックス(stbl)に含まれており、
前記サンプルテーブルボックス（stbl）は、データサンプルのタイミングをその関連付けられたサンプル番号（２１）へインデックス化することを可能にするものであり、
前記格納ステップは、前記データサンプルと前記提供されたエラー情報（１９）との間の割り当てを可能にするエラー属性ボックス（５４；stpb）に、前記提供されたエラー情報（１９）と前記サンプル番号（２１）とを一緒に格納するものであり、
前記エラー属性ボックス（５４；stpb）は前記サンプルテーブルボックス（stbl）に含まれている、ことを特徴とする方法。
【請求項１３】
格納されたサンプル（２０）を持つメディアデータコンテナ（１６）と、この格納されたデータサンプルに関連する格納されたエラー情報（１９）を持つメタデータコンテナ（１４）とを有する、ＩＳＯベースメディアファイルフォーマットに基づくファイル（１２）を読み取る装置（６０）であって、
処理されるべきデータサンプルに関連するエラー情報を発見するために前記メタデータコンテナを解析するパーサ（６２）と、
前記処理されるべきデータサンプルが損失又は破損していると前記関連するエラー情報（１９）が指示する場合に、エラー対策を提供する処理手段（６４）と、を含み、
前記処理手段（６４）は、前記格納されたエラー情報によって決定された損失又は破損データサンプルのエラーのないコピーを要求しかつ新たに受信し、
前記処理手段（６４）は、前記損失又は破損データサンプルを含む前記格納されたファイルをエラーのないファイルへと変換するために、前記ファイル（１２）のメディアデータコンテナ内に前記要求されかつ新たに受信されたエラーのないデータサンプルを配置し、
前記エラー情報（１９）と前記損失又は破損データサンプルに関連するサンプル番号（２１）とは、前記ＩＳＯベースメディアファイルフォーマットに基づくファイル（１２）の前記メタデータコンテナ内に一緒に格納されており、
前記エラー情報（１９）は、それぞれ異なるエラータイプを示す複数のエラータイプのうちの少なくとも１つに関連付けられており、
前記少なくとも１つのエラータイプは、関連するエラータイプ記述ボックス（５２；spdb）に格納されており、
前記エラータイプ記述ボックス（５２；spdb）は、前記メタデータコンテナ（１４）内のサンプルテーブルボックス(stbl)に含まれており、
前記サンプルテーブルボックス（stbl）は、データサンプルのタイミングをその関連付けられたサンプル番号（２１）へインデックス化することを可能にするものであり、
前記データサンプルと前記エラー情報（１９）との間の割り当てを可能にするエラー属性ボックス（５４；stpb）に、前記エラー情報（１９）と前記サンプル番号（２１）とが一緒に格納されており、
前記エラー属性ボックス（５４；stpb）は前記サンプルテーブルボックス（stbl）に含まれている、ことを特徴とする装置。
【請求項１４】
前記データサンプルは、メディアデータサンプルを含むストリーミングされたデータパケットであることを特徴とする、請求項１３に記載の装置。
【請求項１５】
前記格納されたデータサンプルは、ＲＴＰパケット、ＲＴＣＰパケット又はＭＰＥＧ−２転送ストリームパケットであることを特徴とする、請求項１４に記載の装置。
【請求項１６】
格納されたデータサンプル（２０）を持つメディアデータコンテナ（１６）と、この格納されたデータサンプルに関連する格納されたエラー情報（１９）を持つメタデータコンテナ（１４）とを有する、ＩＳＯベースメディアファイルフォーマットに基づくファイル（１２）を読み取る方法であって、
処理されるべきデータサンプルに関連するエラー情報（１９）を発見するために前記メタデータコンテナ（１４）を解析するステップと、
前記処理されるべきデータサンプルが損失又は破損していると前記関連するエラー情報（１９）が指示する場合に、エラー対策を提供するステップと、を含み、
前記エラー対策を提供するステップは、前記格納されたエラー情報によって決定された損失又は破損データサンプルのエラーのないコピーを要求しかつ新たに受信し、
前記エラー対策を提供するステップは、前記損失又は破損データサンプルを含む前記格納されたファイルをエラーのないファイルへと変換するために、前記ファイル（１２）のメディアデータコンテナ内に前記要求されかつ新たに受信されたエラーのないデータサンプルを配置し、
前記エラー情報（１９）と前記損失又は破損データサンプルに関連するサンプル番号（２１）とは、前記ＩＳＯベースメディアファイルフォーマットに基づくファイル（１２）の前記メタデータコンテナ内に一緒に格納されており、
前記エラー情報（１９）は、それぞれ異なるエラータイプを示す複数のエラータイプのうちの少なくとも１つに関連付けられており、
前記少なくとも１つのエラータイプは、関連するエラータイプ記述ボックス（５２；spdb）に格納されており、
前記エラータイプ記述ボックス（５２；spdb）は、前記メタデータコンテナ（１４）内のサンプルテーブルボックス(stbl)に含まれており、
前記サンプルテーブルボックス（stbl）は、データサンプルのタイミングをその関連付けられたサンプル番号（２１）へインデックス化することを可能にするものであり、
前記データサンプルと前記エラー情報（１９）との間の割り当てを可能にするエラー属性ボックス（５４；stpb）に、前記エラー情報（１９）と前記サンプル番号（２１）とが一緒に格納されており、
前記エラー属性ボックス（５４；stpb）は前記サンプルテーブルボックス（stbl）に含まれている、ことを特徴とする方法。
【請求項１７】
コンピュータ又はマイクロコントローラー上で実行される時、請求項１２又は１６に記載の方法を実行するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メディアの格納、伝送、受信、再生に関し、特に、例えばＩＳＯ(国際標準化機構)ベースメディアファイルフォーマットに基づくファイルのようなメディアデータコンテナとメタデータコンテナとを有するファイルへのメディア格納、又はそのファイルからの再生に関するものである。
【背景技術】
【０００２】
メディアデータストリームを受信し、かつ表示できる様々な電子機器がある。このようなメディアデータストリームは、例えばＤＶＢ−Ｈ (デジタルビデオ放送−ハンドヘルド)標準やＤＶＢ−Ｔ(デジタルビデオ放送−地上)標準などに従ってメディアストリームを放送するデジタルビデオ放送ネットワークから受信可能である。
【０００３】
ＤＶＢ−Ｔは、国際標準ＩＳＯ／ＩＥＣ 13818(ＩＥＣ＝国際電気標準会議)に従う基本のＭＰＥＧ−２(ＭＰＥＧ＝動画像専門家グループ)ビデオ及びオーディオストリームを含む、自己内蔵型のＭＰＥＧ−２転送ストリームを使用する。このＭＰＥＧ−２転送ストリームは、今日の放送システムの多くで使われる多重化ストリームである。これは１つ又は複数のメディアプログラムの多重化されたストリームであり、各ストリームは典型的にはオーディオとビデオのみならず他のデータをも含んでいる。ＭＰＥＧ−２転送ストリームはプログラム毎に共通のクロックを共有し、１つのプログラム内の全てのメディアストリームにおいてタイムスタンプされたメディアサンプル(アクセスユニット,ＡＵｓ)を使用する。そのため、送信者クロックと受信者クロックとの同期が可能となり、またオーディオストリームとビデオストリームの唇同期(lip synchronization)が可能となる。
【０００４】
ＤＶＢ−Ｈに関しては、基本のオーディオ及びビデオストリームは、ＩＰデータをキャスティングするために、ＲＴＰ(リアルタイム転送プロトコル)と、ＵＤＰ(ユーザーデータグラムプロトコル)と、ＩＰ(インターネットプロトコル)と、ＭＰＥ(マルチプロトコルカプセル化)との中にカプセル化されている。ＲＴＰはＩＰネットワークを介するマルチメディアデータの効果的なリアルタイム配信のために使用される。多重化は、典型的には異なるネットワークポートをそれぞれ別個のメディアストリームへ関連付けること、例えば１つのネットワークポートをビデオに関連付け、他のネットワークポートをオーディオに関連付けることにより実行される。
【０００５】
ストリーミングサービスは、受信する端から即時に再生する目的で、時間に制約される方法或いは制約されない方法で配信される、同期化されたメディアストリームのセットとして定義される。個々のストリームセッションは、時間情報を有するテキストのようなオーディオ、ビデオ、及び／又はリアルタイムメディアを含む。例えば、モバイルテレビにより、ムービーのメディアデータを受信しているユーザーは、そのムービーを見ることができ、及び／又はファイルに記録できる。通常この目的には、受信されたメディアストリームの受信されたデータパケットは生のメディアデータをファイルへ格納するために逆パケット化される。即ち、受信されたＲＴＰパケット又はＭＰＥＧ−２パケットは、最初に圧縮されたビデオ又はオーディオフレーム等のメディアデータサンプルの形でそれらのペイロードを得るために、逆パケット化される。次に、逆パケット化の後、取得されたメディアサンプルは再生されるかファイルに格納される。この取得されたメディアサンプルは、通常Ｈ．２６４／ＡＶＣ（ＡＶＣ＝高度動画像圧縮符号化標準）ビデオフォーマット及び／又はＭＰＥＧ−４．ＨＥ−ＡＡＣｖ２（ＨＥ−ＡＡＣｖ２＝高効率高圧縮率のオーディオ圧縮符号化方式２）オーディオフォーマットなどのフォーマットにより圧縮されている。このようなビデオフォーマット及び／又はオーディオフォーマットを持つメディアデータサンプルが記録される際には、それらはいわゆる３ＧＰフォーマット、即ち３ＧＰＰ(第３世代移動体通信規格化)のファイルフォーマットとしても知られるフォーマットで記録されても良く、又はＭＰ４(ＭＰＥＧ−４)ファイルフォーマットで記録されてもよい。３ＧＰとＭＰ４とは共に、ＩＳＯベースメディアファイルフォーマットに基づくものであり、このフォーマットは非特許文献１の中で規定されている。このフォーマットのファイルはメディアデータとメタデータとを含む。これらのファイルが操作可能になるためには、これら両方のデータが存在しなければならない。メディアデータはそのファイルに関連するメディアデータコンテナ(mdat)内に格納／記憶され、メタデータはそのファイルのメタデータコンテナ(moov)内に格納／記憶される。従来では、メディアデータコンテナは実際のメディアサンプルを含む。つまりメディアデータコンテナは、インターリーブされた時間順序のビデオ及び／又はオーディオフレームなどを含んでも良い。一方、各メディアは、メディアコンテンツの属性を記述するメタデータコンテナ(moov)内に、各メディア自身のメタデータトラック（trak）を持つ。メタデータコンテナ(moov)内の(ボックスとも呼ばれる)追加的コンテナは、ファイル属性、ファイルコンテンツなどについての情報を含んでも良い。
【０００６】
近年、ＩＳＯベースメディアファイルフォーマットに基づいたファイルのためのいわゆる受信ヒントトラックが、国際標準化グループにより定義されてきた。これらの受信ヒントトラックは、例えば受信されたＭＰＥＧ−２ＴＳ(転送ストリーム)やＲＴＰパケットなどの、多重化され及び／又はパケット化されたストリームを格納するために使用されても良い。受信ヒントトラックは、受信されたデータパケットのクライアント側の格納と再生のために使用されてもよい。受信されたデータパケットは、本件明細書の後段においてデータサンプルとしても示される。このようにして、１つのストリームの受信されたＭＰＥＧ−２ＴＳやＲＴＰパケットは、例えば事前に演算されたサンプル又はコンストラクタなどとして、受信ヒントトラック内に直接格納される。つまり、受信ヒントトラックの場合は、データパケットはＩＳＯベースメディアファイルフォーマットに基づくファイルのメディアデータコンテナ内にサンプルとして格納される。受信ヒントトラックからの再生は、ＩＰを介して受信された時のように、通常のストリーム受信をエミュレートし、かつ受信ヒントトラックから格納されたデータパケットを読み取ることによって実行されても良い。
【０００７】
非特許文献１によれば、サンプルグルーピングとは、あるグルーピング基準に基づいて、１つのトラック内の各サンプルを１つのサンプルグループの一員として割り当てることと定義している。トラック内のサンプルには２つ以上のサンプルグルーピングが存在する可能性もあるため、各サンプルグルーピングはグルーピングのタイプを示すタイプフィールドを持つ。
【０００８】
サンプルグループは二段階で定義される。まず第一段階で、グルーピングのタイプが「サンプルグループ記述ボックス」(sgpd)内において定義される。第二段階で、この記述は１つの「サンプル・トゥ・グループボックス」(sbgp)内にあるサンプルに対して割り当てられる。サンプルグループメカニズムには拡張性があり、現在はＡＶＣ仕様の拡張及びＳＶＣ（スケーラブルビデオ符号化）仕様の拡張、及びプロプライエタリ拡張に使用されている。
【０００９】
上述のシンタックスの一部の記述を以下に示す。
【数１】
0005587779.tif 000002
【００１０】
「サンプルグループ記述ボックス(SampleGroupDescriptionBox)」の簡易版をここに示す。ＩＳＯファイルフォーマットには取扱者タイプ(handler type)に依存する特殊版が存在する。
【数２】
0005587779.tif 000003
【００１１】
前述のボックスの１つの例では、複数のグループを定義することができ、かつ各サンプルは１つのグループの一員でなければならない。「サンプル・トゥ・グループボックス(SampleToGroupBox)」のシンタックスを以下に示す。
【数３】
0005587779.tif 000004
【００１２】
以下の概略的な例では、サンプルグループがどのように機能するかを説明する。各サンプルの「色」が記述されなければならないと仮定する。サンプルの１つの完全なセットのためには、同じ色を持つ全てのサンプルが同じグループとなる。
【００１３】
まず、どの色が発生可能かということを特定しなければならない。各色に対し、「サンプルグループ記述エントリ(SampleGroupDescriptionEntry)」が定義される。グルーピングタイプ(grouping_type)の「色」に対する値が定義され、グルーピングタイプの色のための「サンプルグループ記述ボックス」内に全ての色記述エントリが格納される。
【００１４】
次に、「色」のグルーピングタイプのための「サンプル・トゥ・グループボックス」は、どのサンプルがどの色を持つかということを記述する。これは差分方式で実行され、各リストエントリは、どれだけ多くの連続したサンプルが同じ色を持つかを記述する。これにより、例えば、まず多数のサンプルが１の色を持ち、次にいくつかのサンプルが２の色を持つというように、色の変化がまれである場合には、非常にコンパクトな格納が可能になる。
【００１５】
色が３色あり、１つのファイルが５０個のサンプルを持つ場合、上述したシンタックスに基づいたテーブルは以下のようにすることができる。
【数４】
0005587779.tif 000005
【数５】
0005587779.tif 000006
【００１６】
上述の通り、サンプルグループはサンプルを異なるカテゴリ内へと分類するためには好適であるが、個々のサンプルに関連するイベントや属性をファイル内で記述する必要がある時にはあまり好適ではない。その主な理由は、サンプルグループは常にサンプルの完全なセットを記述することと、あるグループエントリに属さないサンプルは必ず「どのグループにも属さない」というグループエントリの一員でなければならないことである。もう１つの理由は、１つのサンプルしか属さないサンプルグループのルックアップが遅いことである。
【００１７】
イベントや属性は、単一のサンプル或いは比較的少数のサンプルのためのインデックスとして理解されるべきである。このイベントや属性はインデックス化された１つのサンプルの上に現れるが、任意数の後続のサンプルに影響する可能性もあり、例えばランダムアクセスポイントがイベントとして扱われる可能性もある。
【００１８】
前記の例に匹敵するイベントの例は「色の変化」である。もし、色自身ではなく、ある色から別の色への変化がインデックス化されなければならない場合には、サンプルグループは好適とは言えない。なぜなら、「サンプルグループ」に基づくインデックスは、「色変化無し」のような望ましくない情報をも含まなければならないからである。特に、頻繁な変化がある場合には、この点が非効率的なインデックステーブルをもたらす可能性がある。ファイルの終了付近のイベントのための解析は、複雑な作業になる傾向にある。なぜなら、全てのサンプルカウント(「イベントなし」グループのサンプルカウントも同様に)が合計されなければならないからである。
【００１９】
トリックプレイモード(例えば早送りやファイルの検索など)のためには、所望のエントリポイントに最も近いランダムアクセスポイントが効果的に認識される必要がある。従って、このイベントが適用するサンプルのテーブルが、正しいエントリポイントのために調査されなければならない。ランダムアクセスポイントは複数のレベルに存在することができる。例えば、第一レベルではビデオ復号器構成がファイル内で必要となり、次のレベルではビデオトラックの最も近いＩフレームが必要となり、その上のレベルでは、(例えばＭＰＥＧ−２転送ストリームにおけるＰＡＴ(番組統合テーブル)のような)多重化レベルのエントリポイントが必要となる。
【００２０】
更なる問題は、サンプルグループが１つのサンプルの複数のグループ記述への対応付けを許可しないことである。そのため、もしサンプルグループがインデックス化という問題を解決するために使用された場合には、イベントの積み重ねが複雑化し、コンパクトな表現は不可能であろう。
【先行技術文献】
【非特許文献】
【００２１】
【非特許文献１】ＩＳＯ／ＩＥＣ国際標準14496-12:2005「情報技術−オーディオビジュアルオブジェクトの符号化−パート１２：ＩＳＯベースメディアファイルフォーマット」
【発明の概要】
【発明が解決しようとする課題】
【００２２】
本発明の目的は、メディアデータコンテナとメタデータコンテナとを有するファイル内のデータサンプルに関するイベントや属性を効率的に対応付け、このサンプルの効率的なルックアップを可能にする概念を提供することである。
【課題を解決するための手段】
【００２３】
この目的は、請求項１に記載のファイルを出力する装置と、請求項１２に記載のファイルを出力する方法と、請求項１３に記載のファイルを読み取る装置と、請求項１６に記載のファイルを読み取る方法と、によって解決される。
【００２４】
上述の目的の解決策として、本発明の実施形態は、本発明に係る方法を実行するコンピュータプログラムをも提供する。
【００２５】
本発明は、ＩＳＯベースメディアファイルフォーマットに基づくファイルのメタデータコンテナ内に、属性情報と、その情報に関連するサンプル番号とを一緒に格納することにより、特定のサンプル又は所定数の後続のサンプルに関するイベントや属性を提供することができる、という知見に基づいている。ある具体的な実施形態では、この属性情報は、所定のサンプルやサンプルシーケンスのエラーに関連しているか、又は関連付けられている。エラーに関するメタデータを記録する目的で、専用のコンテナ又はボックスがファイルのメタデータコンテナ(moov)内に準備される。次に、記録されるべきエラー情報は二段階で定義される。まず第一段階で、エラーのタイプが「サンプル属性記述ボックス」(spdb)内で定義される。第二段階では、このエラーのタイプの記述が「サンプル・トゥ・属性ボックス」(stpb)内で特定のサンプルに割り当てられる。
【００２６】
本発明の好ましい一実施形態によると、属性又はエラーに関連するメタデータボックスspdbとstpbは、トラック内のサンプルの時間とデータのインデックス化を含む「サンプルテーブルボックス」(stbl)に備えられている。「サンプルテーブルボックス」(stbl)に含まれたテーブルを使うことで、サンプルを時間的に位置決めし、それらサンプルのタイプと、サイズと、(ファイルのメディアデータ部分内の)コンテナと、そのコンテナ内へのオフセットとを決定することが可能となる。
【００２７】
本発明の幾つかの実施形態によれば、エラーを含むサンプルや、エラーを含むサンプル近くのサンプルを効率的に決定できる。エラーを含むサンプルは、例えば破損したサンプルであるか、又は、メディアデータコンテナに記録されていないか若しくはファイルに保存する前に送信器から受信器へとデータサンプルを事前伝送する途中で損失した損失サンプルであってもよい。
【００２８】
本発明の一実施形態によると、サンプルはＲＴＰやＭＰＥＧ−２転送ストリームデータパケットなどのデータパケットであり、このデータパケットはストリーミングセッションの間に受信されるか、又は受信ヒントトラックの場合のようにＩＳＯベースメディアファイルフォーマットに基づくファイルのメディアデータコンテナ内に既に格納されたデータパケットである。
【００２９】
本発明の一実施形態によると、メタデータコンテナ(moov)中に格納されたエラー情報は、エラータイプなどの質的なエラー情報と、このエラーデータサンプルに対応付けられたサンプル番号とを含む。また、このエラー情報は、例えばエラーの詳細な記述のような量的なエラー情報を更に含んでもよい。
【００３０】
ファイルを生成するために、本発明の幾つかの実施形態は、メディアデータコンテナとメタデータコンテナとを有するファイルを出力するための装置を提供し、この装置は、データサンプルに関連するエラー情報を提供／準備するエラー情報提供手段(error information provider)と、メタデータコンテナ内にそのエラー情報とそのデータサンプルに関連するサンプル番号とを一緒に格納／記録する記録手段(recorder)とを含む。
【００３１】
更に本発明の幾つかの実施形態は、格納されたデータサンプルを持つメディアデータコンテナと、この格納されたデータサンプルに関連する格納されたエラー情報を持つメタデータコンテナと、を備えたファイルを読み取るための装置を提供し、この装置は、処理すべきデータサンプルに関連するエラー情報を発見するためにメタデータコンテナを解析するためのパーサと、処理すべきデータサンプルはエラーを含むと関連するエラー情報が示す場合にエラー対策や操作を提供するための処理手段と、を含む。
【００３２】
例えば、エラー対策はエラーを隠すか又はエラーを示す対策であってもよい。エラー隠しは、例えば格納されたデータサンプルやパケットを再生する間に、エラーを含むデータサンプルやデータパケットをユーザーから隠すために実行されてもよい。例えば、オーディオを再生する際、損失又は破損したオーディオフレームは、当該技術においては公知である特定の隠蔽方法によって置き換えられてもよい。同様のことは、損失又は破損したビデオフレームにも当てはまる。
【００３３】
更に、完全に伝送されたデータサンプルが受信されファイルに格納された後で、格納されたエラー情報は、エラーを含んで受信された全てのデータサンプルを明確に識別するために使われてもよい。本発明の実施形態は、メディアデータコンテナの中に格納されたエラーを含むデータサンプルを識別し、例えばストリーミングサーバー等のデータサーバーからこれらのデータの新たなコピーを非リアルタイムの操作で要求し受信するために、メタデータコンテナを読み取りかつ解析するための装置を提供する。エラーを含むデータサンプルは、ファイルの中で新たに受信されたエラーのないデータサンプルによって置き換えられ、その結果、格納されたエラーを含むファイルからエラーのないファイルへと変換される。
【００３４】
本発明の実施形態は、エラーのコンパクトな表現を提供する。サンプル番号は素早いテーブルルックアップのために使われてもよい。これは、例えば完全なムービーの記録など長いファイルに対して特に役に立つ可能性がある。エラー情報をサンプル番号へ直接関連付けることによって、逆パケット化器や復号器は、エラーを含むデータパケットやデータサンプルを処理しようとする前に「警告」されるか又は通知され、その結果、適切な対策が準備可能となる。
【００３５】
本発明の更なる目的や特徴は、添付の図面に関連付けて示される以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００３６】
【図１ａ】メディアデータコンテナとメタデータコンテナとを有するファイルを出力するための、本発明の一実施形態に係る装置の概略的なブロック図を示す。
【図１ｂ】メディアデータコンテナとメタデータコンテナとを有するファイルを出力するための、本発明の他の実施形態に係る装置の概略的なブロック図を示す。
【図１ｃ】メディアデータコンテナとメタデータコンテナとを有するファイルを出力するための、本発明の更に他の実施形態に係る装置の概略的なブロック図を示す。
【図２】本発明の一実施形態に係るサンプルテーブルボックスの概略的な構造を示す。
【図３】前記ファイルを出力するための、本発明の一実施形態に係る方法のフローチャートを示す。
【図４】メディアデータコンテナとメタデータコンテナとを有するファイルを読み取るための、本発明の一実施形態に係る装置の概略的なブロック図を示す。
【発明を実施するための形態】
【００３７】
以下の記述は、特定の実施例、処理手続、技術など具体的な詳細を提示するが、これらは説明を目的とするものであって、限定を意味するものではない。これらの具体的な詳細以外にも他の実施例を使用できることは、当業者によって明らかである。例えば、以下の説明は、様々な実施例に対する非制限的な例の適用を用いて進行されているが、この技術はあらゆるタイプのシステムに利用されてもよい。ある例においては、不必要な詳細説明によって本件明細書の焦点を曖昧にしないように、公知の方法、インターフェース、回路と装置の詳細説明が省略されている。さらに、いくつかの図面には個々のブロックが示されているが、これらブロックの機能は、個々のハードウエア回路を使用するか、適切にプログラムされたデジタルマイクロプロセッサ又は汎用コンピュータと協働するソフトウエアプログラム及びデータを使用するか、特定用途向け集積回路(ＡＳＩＣ)、及び／又は１つあるいは複数のデジタル信号プロセッサ(ＤＳＰｓ)を使用して実行され得るということは、当業者には明らかである。
【００３８】
図１ａは、メディアデータコンテナ１６とメタデータコンテナ１４とを有するファイル１２を出力するための装置１０の例示的なブロック図を表す。
【００３９】
装置１０は、エラー情報提供手段１８へ入力されたデータサンプル２０に関連するエラー情報１９を提供／検出するためのエラー情報提供手段１８を含む。更に装置１０は、ファイル１２のメタデータコンテナ１４内に、エラー情報１９とデータサンプル２０に関連するサンプル番号２１とを一緒に格納／記憶するための記録手段２２を含む。
【００４０】
本発明の一実施形態によれば、エラー情報提供手段１８は、データサンプル２０のシーケンスを分析し、データサンプルの分析されたシーケンスの損失データサンプルに関わるエラー情報１９を提供する。これは、例えばストリーミングセッションの間に失われたサンプルを識別するのに有用である。損失データサンプルが検出された場合には、記録手段２２は、損失データサンプルを示すエラー情報１９と、この損失データサンプルやパケットの隣或いは近隣に存在するデータサンプルのサンプル番号２１とを一緒に格納してもよい。換言すれば、記録手段２２は、損失によって存在しないデータサンプルのサンプル番号は格納できないので、損失サンプルに関するエラー情報と、損失していない近隣のデータサンプルとを対応付けてもよい。説明のための例を更に以下に示す。
【００４１】
上述の機能に加え、又はその代わりに、エラー情報提供手段１８は、データサンプル２０の少なくとも一部が破損した情報を含むかどうかを検出しても良い。例えば、チャネルフェーディングや付加的ノイズのような所定の影響のために、送信者から受信者へのデータサンプルの伝送中に、そのデータサンプルにより運ばれた情報が改変されたり破損する可能性があり、その結果、データサンプルの受信されたバージョンとデータサンプルの送信されたバージョンとが一致しないという事態が発生しうる。この場合、エラー修正又は隠蔽の方法は、例えば受信終了時に適用されてもよい。
【００４２】
図１ｂは本発明の他の実施形態に係る装置１０を表す。
【００４３】
図１ｂで表された実施形態において、データサンプル２０−１，２０−２，２０−３は、ＩＳＯベースメディアファイルフォーマットに基づくファイル１２のメディアデータコンテナ１６(mdat)内に既に格納されている。典型的には、メディアデータボックス１６内のサンプル２０−１，２０−２，２０−３は、いわゆるチャンク(chunks)へとグルーピングされている。チャンクは異なるサイズであってもよく、１つのチャンク内のサンプルは異なるサイズを持っていてもよい。図１ｂの場合、エラー情報提供手段１８は、メディアデータコンテナ１６内の格納されたデータサンプル２０−１，２０−２，２０−３を解析又は分析し、損失，破損又は一般的なエラーを含むデータサンプルを検出する。データサンプル２０−１，２０−２，２０−３が、例えばＲＴＰやＭＰＥＧ−２転送ストリームデータパケット等のデータパケットである場合には、そのデータパケットは通常、伝送の順番を示すシーケンス番号を含む。エラー情報提供手段１８は、格納されたデータサンプル２０−１，２０−２，２０−３のシーケンス番号を検査し、その結果、損失シーケンス番号を検出しても良い。さらに、データサンプル２０−１，２０−２，２０−３の格納されたシーケンス又はチャンクは、破損したサンプルを発見するために解析されても良い。
【００４４】
この装置１０の他の実施形態を図１ｃで原理的に示す。
【００４５】
本実施形態は、ストリーミングされたデータサンプル２０−１，２０−２，２０−３を受信するための受信器２４を含み、これらサンプルはパケット化されたメディアデータサンプルを含む生のメディアデータサンプルやデータパケットであってもよい。受信器２４の出力は、エラー情報提供手段１８の入力に連結されており、エラー情報提供手段１８は、受信したデータサンプル２０−１，２０−２，２０−３を検査し、損失又は破損したデータサンプルを検出し、さらに対応する質的及び任意には量的なエラー情報を提供してもよい。図１ｃに示す例では、記録手段２２は、受信されたデータサンプル２０をファイル１２のメディアデータコンテナ１６のチャンク内に格納し、サンプル番号２１を格納されたデータサンプルそれぞれに対応付けるよう構成されている。
【００４６】
本発明の実施形態によれば、提供されたエラー情報１９はメタデータコンテナ１４(moov)に含まれる「サンプルテーブルボックス」(stbl)のサブボックス内に格納され、この「サンプルテーブルボックス」(stbl)は、データサンプル２０−１，２０−２，２０−３のタイミングを、チャンク内のこれらが対応付けられたサンプル番号２１−１，２１−２，２１−３へインデックス化することを可能にする。この点については、図２を参照しながら更に詳細に説明する。
【００４７】
図２は、ＩＳＯベースメディアファイルフォーマットに基づくファイルの「サンプルテーブルボックス(Sample Table Box) 」(stbl) ５０を表しており、このボックスは、例えば「サンプル記述ボックス(Sample Description Box)」(stsd)、「サンプルサイズボックス(Sample Size Box)」(stsz)、「サンプル・トゥ・チャンクボックス(Sample To Chunk Box)」(stsc)、「チャンクオフセットボックス(Chunk Offset Box)」(stco)のような従来のメディアデータ参照サブボックスに加え、本発明のサブボックス５２と５４とを含む。「サンプル記述ボックス」(stsd)は必須である。なぜなら、このボックスは、メディアデータコンテナ(mdat)内のサンプルを回復するために、どのデータ参照ボックスが使用されるかを示すデータ参照インデックスフィールドを含んでいるからである。このサンプル記述がない場合には、どこにサンプルが格納されているかを決定するのは不可能になる。「同期サンプルテーブル(Sync Sample Box)」(stss)は任意である。もしこの「同期サンプルテーブル」(stss)がない場合には、全てのサンプルが同期サンプルである。当業者には公知である従来のサブボックスに加え、この「サンプルテーブルボックス」(stbl)５０は、エラー情報提供手段１８によって提供されたエラー情報１９に関連する、２つの追加的サブボックス５２、５４を含む。以下の説明においては、サブボックス５２は「サンプル属性記述ボックス(Sample Property Description Box)」(spdb)として例示的に示され、サブボックス５４は「サンプル・トゥ・属性ボックス(Sample To Property Box)」(stpb)として例示的に示される。本発明の実施形態によると、サンプルの属性とは、そのサンプルがエラーに関連するという事実、又はサンプル自体がエラーを含むという事実である。
【００４８】
「サンプル・トゥ・属性ボックス」 (spdb)５４は、サンプルをその属性、即ちこの実施形態ではエラーへとマップする。属性は積み重ねられてもよい。つまり、同じ属性タイプ(property type)(エラー)の複数の属性が一つのサンプルに適用されてもよい。ある特定の属性の値の長さ(property_length)は具体的に定義されてはいないが、その属性に依存する。属性タイプを理解しないファイル読取器は、ボックス(stpb)５４全体を廃棄してもよい。
【００４９】
「サンプル属性記述ボックス」(spdb)５２は、１つの属性タイプの属性を記述する。サンプル属性記述エントリは具体的に定義されていないが、プロプライエタリであってもよい。読取装置が属性タイプを理解する場合にのみ、その読取装置はボックス(spdp)５２を解析しても良く、他の場合には、この属性タイプの「サンプル・トゥ・属性ボックス」(stpb)５４と「サンプル属性記述ボックス」(spdp)５２との両方を廃棄してもよい。サンプル属性についての例示的なシンタックスは、以下のようであってもよい。
【００５０】
【数６】
0005587779.tif 000007
【数７】
0005587779.tif 000008
【００５１】
本発明の実施形態によれば、エラーはインデックス化されてもよい。つまり、伝送エラーは受信ヒントトラック内でマークされてもよい。そのため、次のように二つの異なるエラー分類が定義されてもよい。
a)  損失パケット
b)  破損パケット
【００５２】
前記の例示的な記述法によれば、これら各パケットについて、あるサンプル属性記述エントリは下記のように定義してもよい：
【数８】
0005587779.tif 000009
【００５３】
前記サンプル属性記述エントリは以下のように定義してもよい：
【数９】
0005587779.tif 000010
【数１０】
0005587779.tif 000011
【００５４】
ここで、「損失パケットエントリ (LostPacketEntry)」は、第一の質的なエラー情報に対応し、「サンプル・トゥ・属性ボックス」(stpb)５４内の第一の「属性記述インデックス(property_desc_index)」の作動を初期化するために使われる。「破損パケットエントリ(CorruptedPacketEntry)」は、第二の質的なエラー情報に対応し、第二の属性記述インデックスを用いた作動を初期化する。
【００５５】
もし、例えばパケット[１,ｎ]（但しｎ＝１０００）を用いる伝送を実行したと仮定する。このパケットは伝送エラーに影響されており、例えばパケット３１０〜３６７が損失し、パケット３４と１７７が破損していたとすれば、「サンプル・トゥ・属性ボックス」のエントリは下記のようであっても良い。
【数１１】
0005587779.tif 000012
【００５６】
もし受信された各々のパケットが１個ずつサンプルを生成し、パケット３１０〜３６７が損失したと仮定すれば、サンプル１〜３０９はパケット１〜３０９を含み、サンプル３１０〜９４２はパケット３６８〜１０００を含むことになる。
【００５７】
前記の例では、値１を有する属性記述インデックスに対応して、損失後の次に受信されたパケットがエラー指示又はエラー情報を含む。「サンプル属性(SampleProperty)」の値、すなわち量的エラー情報は、その前に連続して失われたパケットの数であり、ここでは５８となる。
【００５８】
破損パケットは、「属性記述インデックス＝２」のための作動により、破損パケットとしてマークされる。従って、サンプル３４と１７７には破損というマークがつけられる。「属性長さ(property_length)」の値はこの「属性記述インデックス(property_desc_index)」についてはゼロであるから、どの値もこのインデックスには割り当てられない。
【００５９】
図３に戻り、ＩＳＯベースメディアファイルに基づくファイル１２を出力するための１つの方法について説明する。
【００６０】
第一ステップＳ１において、エラー情報提供手段１８は、データサンプルやデータパケット２０を分析し、この分析されたサンプル２０に関するエラー情報１９を決定する。もし、前記サンプルに関してエラー情報を与えるエラーが検出された場合には、そのエラー情報１９は、当該エラー情報に対応付けられたエラーを含むデータサンプルのサンプル番号２１と一緒に、ステップＳ２においてメタデータコンテナ１４内に格納される。ステップＳ２は、「サンプル属性記述ボックス」５２と「サンプル・トゥ・属性ボックス」５４とを、ファイル１２のメタデータコンテナ(moov)１４のサンプルテーブル(stbl)５０内に格納するステップを含む。
【００６１】
例えばストリーミングされたデータサンプルが受信される場合など、もしデータサンプル２０が受信されれば、受信されたデータサンプルそれぞれに対し、サンプル番号２１が対応付けられる。更に、受信された各データサンプルは、任意のステップＳ３において、メディアデータコンテナ１６のチャンク内に格納されてもよい。
【００６２】
ステップＳ２と任意のステップＳ３とは実質的に並行して実行されても良い。つまり、エラー情報１９とサンプル番号２１とがメタデータコンテナ１４に格納される一方で、データサンプルがメディアデータコンテナ１６へ同時に格納されてもよい。
【００６３】
上述のように、前記サンプルはＲＴＰやＭＰＥＧ−２転送ストリームデータパケットなどのデータパケットであってもよく、本明細書の導入部分において説明したように、受信ヒントトラックを格納する場合と同様である。
【００６４】
ＩＳＯベースメディアファイルフォーマットに基づくファイル１２のメディアデータコンテナ１６内にサンプルが格納され、メタデータコンテナ１４内にエラー情報が格納された後、これらの格納されたエラー情報は、例えばサンプル再生の間などに使用されてもよい。この目的のために、本発明の実施形態は、図４で例示的に示すように、メディアデータコンテナ１６とメタデータコンテナ１４とを有するファイル１２を読み取るための読取装置６０を提供する。
【００６５】
装置６０は、処理すべきデータサンプル２０に関するエラー情報１９を発見するため、メタデータコンテナ１４を解析又は分析するパーサ６２を含む。処理手段６４は、処理すべきデータサンプル２０にエラーが含まれると関連エラー情報１９が指示した場合、エラー対策を提供してもよい。
【００６６】
更に具体的には、パーサ６２は、ファイル１２におけるメタデータコンテナ(moov)１４のサンプルテーブル(stbl)５０内の「サンプル属性記述ボックス」５２と「サンプル・トゥ・属性ボックス」５４とを解析してもよい。次に、パーサ６２は、サンプル番号２１と、当該サンプル番号に対応付けられた質的エラー情報１９、例えば上段で使用した記述法によればそれらの属性記述インデックスと、を探索してもよい。更に、このパーサ６２は、量的なエラー情報、例えば何個のデータパケットがその対応付けられたサンプル番号を持つパケットの前又は後で損失したか、という情報を抽出してもよい。
【００６７】
本発明の実施形態によれば、処理手段６４は検出されたエラーの情報に応答して、エラー対策としてエラー隠しを実行する。例えば、もし処理されるべきデータサンプルが破損又は損失している場合には、近隣に存在するデータサンプルのスペクトル値の間で一種のスペクトル補間を実行することで、処理手段６４はそのサンプルを合成しても良い。このようなスペクトル補間は、例えばデータサンプルがオーディオ又はビデオフレームに関連している場合に実行されても良い。
【００６８】
破損したサンプルやデータパケットの場合は、処理手段６４は、例えばチャネル復号化の手段を採る事により、一種のエラー修正を実行しても良い。
【００６９】
更なる実施形態では、処理手段６４は、上述の質的及び量的エラー情報を下流側にある装置又はユーザーインターフェースに報告する事によって、そのエラーを示しても良い。
【００７０】
更に、メタデータコンテナ１４内の格納されたエラー情報１９は、伝送されたデータサンプルが完全に受信されファイル１２に格納された後に、エラーを含んで受信されたデータサンプルを明確に識別するために使われても良い。そのため、パーサ６２は、メタデータコンテナ１４内の格納されたエラー情報１９を解析し、メディアデータコンテナ１６内に格納されたエラーを含むデータサンプルを識別しても良い。処理手段６４は、識別されたエラーを含むデータサンプルの新たなコピー又はバージョンを、例えばストリーミングサーバー等のコンテントプロバイダのサーバーから、非リアルタイム操作で要求し受信しても良い。つまり、例えばエラーを含む単一のビデオフレームのような識別されたデータサンプルの再伝送のために、いかなるリアルタイムプロトコルも必要ではない。このエラーを含むデータサンプルは、次に、要求され新しく受信されたエラーのないデータサンプルによってファイル１２内で置き換えられ、エラーを含んで格納されたファイル１２はエラーのないファイルへと変換される。
【００７１】
装置６０は、エラー情報の形で返答を得るために外部からの要求を受け取ってもよい。例えば、
−特別に要求されたサンプルに当てはまるエラー情報からなる返答を受け取る。
−特別に要求されたエラー(例えば損失サンプル)が当てはまる最も近いサンプル番号と一緒に返答を受け取る。
【００７２】
エラー情報の形で記述されたイベントやサンプル属性は、例えば受信ヒントトラックのインデックス等にとっては有益である。
【００７３】
本発明の実施形態は、サンプルに関わるエラーが拡張可能な方法で記述できるという利点を提供する。複数の対応するエラーは１つのエラータイプへとグルーピングされることができる。量的なエラー情報は、例えばサンプルグループ記述エントリの数による場合のように、制限されるものではない。
【００７４】
更に、簡単かつ効率的な方法がファイル内でエラーの発生位置を信号化するために提供される。この信号化は、ファイルのメディアデータコンテナ内に格納されたデータコンテンツを再生する際に、エラー修正、エラー隠し及び／又はエラー指示の方法にとって有益である。
【００７５】
条件にもよるが、本発明の方法は、ハードウエアにおいてもソフトウエアにおいても実現可能である。この実施の形態は、その中に格納される電子的に読出し可能な制御信号を有し、本発明の方法が実行されるようにプログラム可能なコンピュータシステムと協働するデジタル記憶媒体、特に、ディスク、ＣＤ又はＤＶＤを用いて実行できる。したがって、一般に、本発明は、機械読出し可能なキャリアに格納されたプログラムコードを有するコンピュータプログラム製品であり、プログラムコードは、コンピュータプログラム製品がコンピュータ上で実行されるときに、本発明の方法を実行するように作動する。言い換えれば、本発明は、このコンピュータプログラムがコンピュータ上で実行されるときに、この方法を実行するためのプログラムコードを有するコンピュータプログラムとして実現されても良い。
【００７６】
本発明はいくつかの好ましい実施形態の観点から説明してきたが、本発明の範囲内における変更例、交換例、同等例が存在する。また、本発明の方法と構成を実行する多くの変更例が存在する事に留意すべきである。よって、以下に添付する特許請求の範囲の記載は、これらの変更例、交換例、同等例の全てを、本発明の本来の精神及び範囲内に入るものとして含むと理解されるよう意図するものである。
【図１ａ】
0005587779.tif 000013
【図１ｂ】
0005587779.tif 000014
【図１ｃ】
0005587779.tif 000015
【図２】
0005587779.tif 000016
【図３】
0005587779.tif 000017
【図４】
0005587779.tif 000018