(57)【要約】【課題】特定の時間位置の特定のメディアのデータを容易に抽出することができるメディアファイル管理装置を提供すること。【解決手段】時系列を持つコンテンツを構成するメディアのデータを含むメディアデータと、そのメディアデータ毎に対応付けられたデータであって、コンテンツ中の時間位置とメディアデータ中のデータ位置との対応付けを示すインデックスデータとを記憶する記憶部と、コンテンツ中の時間位置を指定されると、該指定された時間位置に対応付けられたデータ位置を、インデックスデータから取得し、指定されたメディアの取得したデータ位置のデータを、メディアデータから抽出するデータ読み出し部とを具備する。【選択図】図１
2012242845.tif 000002
【特許請求の範囲】
【請求項１】
時系列を持つコンテンツを構成するメディアのデータを含むメディアデータと、前記メディアデータ毎に対応付けられたデータであって、前記コンテンツ中の時間位置と前記メディアデータ中のデータ位置との対応付けを示すインデックスデータとを記憶する記憶部と、
前記コンテンツ中の時間位置を指定されると、該指定された時間位置に対応付けられたデータ位置を、前記インデックスデータから取得し、前記指定されたメディアの該取得したデータ位置のデータを、前記メディアデータから抽出するデータ読み出し部と
を具備することを特徴とするメディアファイル管理装置。
【請求項２】
前記メディアデータは、前記コンテンツを構成するメディアを時間方向に分割したデータを含み、
前記記憶部は、前記コンテンツを構成するメディアを時間方向に分割したデータを含むメディアデータに対応する前記インデックスデータを示す仮想メディアデータを記憶し、
前記データ読み出し部は、前記コンテンツ中の時間位置を指定されると、前記仮想メディアデータが示すインデックスデータに基づき、前記時間位置に対応付けられたデータ位置と該データ位置を含むメディアデータとを示す情報を取得し、前記指定された時間位置のデータを、前記取得した情報が示すメディアデータのデータ位置から抽出すること
を特徴とする請求項１に記載のメディアファイル管理装置。
【請求項３】
前記仮想メディアデータは、前記コンテンツを構成するメディアを時間方向に分割したデータを含むメディアデータに対応する前記インデックスデータと、該インデックスデータが示すコンテンツ中の時間位置の範囲との対応付けを示す情報を含み、
前記データ読み出し部は、前記コンテンツ中の時間位置を指定されると、前記仮想メディアデータを参照して、前記指定された時間位置を含むインデックスデータを選択し、該選択したインデックスデータを参照して、前記指定された時間位置に対応付けられたデータ位置と該データ位置を含むメディアデータとを示す情報を取得し、前記指定された時間位置のデータを、前記取得した情報が示すメディアデータのデータ位置から抽出すること
を特徴とする請求項２に記載のメディアファイル管理装置。
【請求項４】
前記記憶部は、前記コンテンツを構成するメディアの種類と、該種類のメディアの仮想メディアデータとの対応付けを示す多重化記述データを記憶し、
前記データ読み出し部は、前記コンテンツ中の時間位置とメディアとを指定されると、前記多重化記述データを参照して、前記指定されたメディアの仮想メディアデータを選択し、該選択した仮想メディアデータを参照して、前記指定された時間位置を含むインデックスデータを選択し、該選択したインデックスデータを参照して、前記指定された時間位置に対応付けられたデータ位置と該データ位置を含むメディアデータとを示す情報を取得し、前記指定された時間位置およびメディアのデータを、前記取得した情報が示すメディアデータのデータ位置から抽出すること
を特徴とする請求項３に記載のメディアファイル管理装置。
【請求項５】
前記コンテンツを指定されると、前記多重化記述データを参照して、該指定されたコンテンツを構成するメディアの種類を取得する構成メディア取得部を具備することを特徴とする請求項４に記載のメディアファイル管理装置。
【請求項６】
前記インデックスデータに基づき、前記コンテンツを構成するメディアを時間方向に分割したデータを含むメディアデータに対応する前記インデックスデータと、該インデックスデータが示すコンテンツ中の時間位置の範囲との対応付けを示す情報を生成し、前記仮想メディアに含める仮想メディアデータベース構築部を具備すること
を特徴とする請求項３に記載のメディアファイル管理装置。
【請求項７】
前記記憶部は、
通信網を介して接続された複数の記憶装置に分散してデータを記憶する分散型ファイルシステムであり、
前記メディアデータおよび前記インデックスデータの各々について、該データの識別情報と該データを記憶する記憶装置を示す情報と対応付けるデータベースを記憶し、
前記データ読み出し部は、
前記メディアデータおよび前記インデックスデータを読み出す際に、前記データベースを用いて、読み出すデータを記憶している前記記憶装置を示す情報を取得すること
を特徴とする請求項１に記載のメディアファイル管理装置。
【請求項８】
時系列を持つコンテンツを構成するメディアのデータを含むメディアデータと、前記メディアデータ毎に対応付けられたデータであって、前記コンテンツ中の時間位置と前記メディアデータ中のデータ位置との対応付けを示すインデックスデータとを記憶する記憶部を有するメディアファイル管理装置のコンピュータを、
前記コンテンツ中の時間位置を指定されると、該指定された時間位置に対応付けられたデータ位置を、前記インデックスデータから取得し、前記指定されたメディアの該取得したデータ位置のデータを、前記メディアデータから抽出するデータ読み出し部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メディアファイル管理装置およびそのプログラムに関する。
【背景技術】
【０００２】
映像、音声、字幕情報などの個別のメディアを同期して再生するために、一般には、２つの方法が用いられている。
１つ目の方法は、メディアデータのファイルをパケットに分割し、各パケットにタイムスタンプと呼ばれる時刻情報を付け、受信側でタイムスタンプに合わせて、複数のメディアの再生時刻を同期させる方法である。この方法としては、非特許文献１のＭＰＥＧ（Moving Picture Experts Group）−２  ＴＳ（Transport Stream）、非特許文献２のＲＴＰ（Real-time Transport Protocol）などがある。ＭＰＥＧ−２  ＴＳはデジタル放送でも用いられている方式である。これらの方法は、主にストリーミング転送用に使われる方式であり、一般にはファイルとして保存して利用する用途には用いられない。その理由は、映像、音声などの細かい単位のパケットが混在しているため、映像データや音声データだけを用いたいときに不便なことや、映像、音声などの特定のフレームへランダムアクセスして用いる場合、フレームの先頭箇所を特定するのが不便だからである。
【０００３】
複数メディアデータの同期再生の２つ目の方法は、複数の個別のメディアデータのファイルから多重化した１つのファイルを生成し、その多重化されたファイルを再生に用いる方式である。この方式の基本的なファイルのデータ構造を図２０に示す。この方式では、映像や音声などの複数のメディアのデータを１つのファイル内に保存した上で、ファイルの中の各メディアに対する時刻情報のインデックスをファイル内に同時に保存しておく。再生時には、インデックス情報を使って同時刻の各メディアのデータを読み出すことで同期再生を行うことができる。この方式では、インデックス情報により各メディアの先頭フレーム位置などがわかるため、ランダムアクセスなどが簡単に実現できる。
【０００４】
このような方式としては、非特許文献３のＭＰ４（MPEG(Moving Picture Experts Group)-4 Part 14；エムピーフォー、エムペグフォー）や、非特許文献４のＭＸＦ（Material eXchange Format；エムエックスエフ）などが標準化されている。しかし、ＭＰ４やＭＸＦでは各メディアのデータフォーマット（圧縮方式など）が同じであっても、多重化ファイルのデータフォーマットが異なるため、それぞれ専用の再生機が必要となる。
【０００５】
放送局では、番組制作時には、映像、音声、字幕などは個別に制作が行われるため、各メディアデータのファイルは別々のファイルとして存在している方が扱いやすい。一方、放送として送出する時にはそれらのファイルを同期して再生する必要があるため、一旦ＭＸＦなどの多重化用のファイルに１本化した上で、そのファイルを送出システムでもちいる。
【０００６】
放送局で扱う映像や音声などのメディアデータのファイルはファイルサイズが大きいため、それらのファイルを蓄積して、共有利用するには大容量のストレージシステムが必要となる。大容量のファイルを蓄積する方法としては、多数のストレージをネットワークで結び、仮想的に１つのストレージとして利用可能な分散型のファイルシステムが有効である。分散ファイルシステムの一方式として、非特許文献５の構造型Ｐ２Ｐ（Peer to Peer；ピアツーピア）を利用した分散ファイルシステムがある。
【０００７】
この方式では、複数のストレージノードが仮想的な１つのファイルシステムを構成している。各ストレージノードに保管されているファイルは、どのファイルがどのストレージノードに保存されているのかを分散ハッシュテーブル（ＤＨＴ；Distributed Hash Table）を利用して管理している。ＤＨＴは（Ｋｅｙ，  Ｖａｌｕｅ）の組を参加しているストレージノードで分散して管理し、データベースを構成する方式である。ＫｅｙとしてファイルのＩＤ（IDentification；識別情報）、Ｖａｌｕｅとしてそのファイルを保管しているストレージノードのアドレスとすることで、分散ファイルシステム内のファイルを参加しているストレージノードで分散して管理することが可能となる。
【０００８】
さらに、非特許文献５のファイルシステムでは、ディレクトリの管理のため、ディレクトリファイルを作成し、通常のファイルと同様にＤＨＴを使うことで、ディレクトリ情報を分散管理している。
非特許文献５に示される分散型ファイルシステムの特徴は、ストレージノードを必要に応じて追加していくことで、容量を任意に拡大できること、複数のストレージノードに分散してファイルを保管するため、複数のユーザからのアクセスに対して負荷分散が行われるため、複数のユーザが同時に利用しても速度性能が低下しにくいなど、放送局の大容量で多くのファイルを保管し共有するのに向いた方式である。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】ISO/IEC 13818-1, “Information technology - Generic coding of moving pictures and associated audio information: Systems”
【非特許文献２】IETF RFC1889, “RTP: A Transport Protocol for Real-Time Applications”
【非特許文献３】ISO/IEC 14496-12, “Information technology - Coding of audio-visual objects Part 12: ISO base media file format”
【非特許文献４】SMPTE 377M, “Material Exchange Format (MXF) File Format Specification (Standard)”
【非特許文献５】金子、黄、竹内、和泉, "構造型P2Pを使った分散ファイルシステムにおける分散ディレクトリ管理手法," FIT2009, L-033, 2009
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述のような従来のメディアデータにおいては、例えば、特定のフレームを修正や変更するなどのために、該特定の時間位置の特定のメディアのデータを抽出するのが困難であるという問題がある。
【００１１】
本発明は、このような事情に鑑みてなされたもので、その目的は、特定の時間位置の特定のメディアのデータを容易に抽出することができるメディアファイル管理装置およびそのプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
（１）この発明は上述した課題を解決するためになされたもので、本発明の一態様は、時系列を持つコンテンツを構成するメディアのデータを含むメディアデータと、前記メディアデータ毎に対応付けられたデータであって、前記コンテンツ中の時間位置と前記メディアデータ中のデータ位置との対応付けを示すインデックスデータとを記憶する記憶部と、前記コンテンツ中の時間位置を指定されると、該指定された時間位置に対応付けられたデータ位置を、前記インデックスデータから取得し、前記指定されたメディアの該取得したデータ位置のデータを、前記メディアデータから抽出するデータ読み出し部とを具備することを特徴とするメディアファイル管理装置である。
【００１３】
（２）また、本発明の他の態様は、上述のメディアファイル管理装置であって、前記メディアデータは、前記コンテンツを構成するメディアを時間方向に分割したデータを含み、前記記憶部は、前記コンテンツを構成するメディアを時間方向に分割したデータを含むメディアデータに対応する前記インデックスデータを示す仮想メディアデータを記憶し、前記データ読み出し部は、前記コンテンツ中の時間位置を指定されると、前記仮想メディアデータが示すインデックスデータに基づき、前記時間位置に対応付けられたデータ位置と該データ位置を含むメディアデータとを示す情報を取得し、前記指定された時間位置のデータを、前記取得した情報が示すメディアデータのデータ位置から抽出することを特徴とする。
【００１４】
（３）また、本発明の他の態様は、上述のメディアファイル管理装置であって、前記仮想メディアデータは、前記コンテンツを構成するメディアを時間方向に分割したデータを含むメディアデータに対応する前記インデックスデータと、該インデックスデータが示すコンテンツ中の時間位置の範囲との対応付けを示す情報を含み、前記データ読み出し部は、前記コンテンツ中の時間位置を指定されると、前記仮想メディアデータを参照して、前記指定された時間位置を含むインデックスデータを選択し、該選択したインデックスデータを参照して、前記指定された時間位置に対応付けられたデータ位置と該データ位置を含むメディアデータとを示す情報を取得し、前記指定された時間位置のデータを、前記取得した情報が示すメディアデータのデータ位置から抽出することを特徴とする。
【００１５】
（４）また、本発明の他の態様は、上述のメディアファイル管理装置であって、前記記憶部は、前記コンテンツを構成するメディアの種類と、該種類のメディアの仮想メディアデータとの対応付けを示す多重化記述データを記憶し、前記データ読み出し部は、前記コンテンツ中の時間位置とメディアとを指定されると、前記多重化記述データを参照して、前記指定されたメディアの仮想メディアデータを選択し、該選択した仮想メディアデータを参照して、前記指定された時間位置を含むインデックスデータを選択し、該選択したインデックスデータを参照して、前記指定された時間位置に対応付けられたデータ位置と該データ位置を含むメディアデータとを示す情報を取得し、前記指定された時間位置およびメディアのデータを、前記取得した情報が示すメディアデータのデータ位置から抽出することを特徴とする。
【００１６】
（５）また、本発明の他の態様は、上述のメディアファイル管理装置であって、前記コンテンツを指定されると、前記多重化記述データを参照して、該指定されたコンテンツを構成するメディアの種類を取得する構成メディア取得部を具備することを特徴とする。
【００１７】
（６）また、本発明の他の態様は、上述のメディアファイル管理装置であって、前記インデックスデータに基づき、前記コンテンツを構成するメディアを時間方向に分割したデータを含むメディアデータに対応する前記インデックスデータと、該インデックスデータが示すコンテンツ中の時間位置の範囲との対応付けを示す情報を生成し、前記仮想メディアに含める仮想メディアデータベース構築部を具備することを特徴とする。
【００１８】
（７）また、本発明の他の態様は、上述のメディアファイル管理装置であって、前記記憶部は、通信網を介して接続された複数の記憶装置に分散してデータを記憶する分散型ファイルシステムであり、前記メディアデータおよび前記インデックスデータの各々について、該データの識別情報と該データを記憶する記憶装置を示す情報と対応付けるデータベースを記憶し、前記データ読み出し部は、前記メディアデータおよび前記インデックスデータを読み出す際に、前記データベースを用いて、読み出すデータを記憶している前記記憶装置を示す情報を取得することを特徴とする。
【００１９】
（８）また、本発明の他の態様は、時系列を持つコンテンツを構成するメディアのデータを含むメディアデータと、前記メディアデータ毎に対応付けられたデータであって、前記コンテンツ中の時間位置と前記メディアデータ中のデータ位置との対応付けを示すインデックスデータとを記憶する記憶部を有するメディアファイル管理装置のコンピュータを、前記コンテンツ中の時間位置を指定されると、該指定された時間位置に対応付けられたデータ位置を、前記インデックスデータから取得し、前記指定されたメディアの該取得したデータ位置のデータを、前記メディアデータから抽出するデータ読み出し部として機能させるためのプログラムである。
【発明の効果】
【００２０】
この発明によれば、特定の時刻の特定のメディアのデータを容易に抽出することができる。
【図面の簡単な説明】
【００２１】
【図１】この発明の第１の実施形態によるメディアファイル管理装置の構成を示す概略ブロック図である。
【図２】同実施形態におけるコンテンツの構成例を示す概念図である。
【図３】同実施形態における仮想的な多重化ファイル（コンテンツ）の一例を示す図である。
【図４】同実施形態におけるメディアファイルの例を示す図である。
【図５】同実施形態における多重化記述ファイルのデータ構造の例を示す図である。
【図６】同実施形態における仮想メディアファイルのデータ例を示す図である。
【図７】同実施形態におけるインデックスファイルのデータ構造の例を示す図である。
【図８】同実施形態における仮想メディアデータベース構築部の動作を説明するフローチャートである。
【図９】同実施形態における仮想データベース構築処理（ステップＳ１−７）を説明するフローチャートである
【図１０】同実施形態における仮想メディアデータベースの記憶内容例を示す図である。
【図１１】同実施形態におけるｄｉｒ関数とｒｅａｄ関数の入出力パラメータとその動作の説明を示す図である。
【図１２】同実施形態における外部インタフェースの動作を説明するフローチャートである。
【図１３】この発明の第２の実施形態における分散メディアファイル管理装置の構成を示す概略ブロック図である。
【図１４】同実施形態における仮想メディアデータベース構築部の動作を説明するフローチャートである。
【図１５】同実施形態におけるファイル取得処理（ステップＳ１Ａ−２）を説明するフローチャートである。
【図１６】同実施形態における外部インタフェースの動作を説明するフローチャートである。
【図１７】同実施形態における仮想メディアデータベースの検索処理（ステップＳ２Ａ−５）を説明するフローチャートである。
【図１８】本発明をファイルのバージョン管理に用いた例を示す図である。
【図１９】本発明を電子書籍のメディアファイルの管理に利用した例を示す図である。
【図２０】従来の基本的なファイルのデータ構造を示す図である。
【発明を実施するための形態】
【００２２】
［第１の実施形態］
以下、図面を参照して、本発明の第１の実施形態について説明する。図１は、この発明の第１の実施形態によるメディアファイル管理装置の構成を示す概略ブロック図である。メディアファイル管理装置１００は、ＬＡＮ（Local Area Network；ラン）などの通信網を介して、コンテンツ編集装置２００および端末装置３００と通信可能に接続されている。また、メディアファイル管理装置１００は、仮想メディアデータベース構築部１１０、メディア記憶部１２０、構成メディア取得部１３０、データ読み出し部１４０を含んで構成される。メディア記憶部１２０は、ハードディスク装置や半導体メモリなどデータを記録できる装置で構成される。
【００２３】
コンテンツ編集装置２００は、時系列を持つコンテンツを構成するファイルを生成し、メディア記憶部１２０に格納する。本実施形態において、時系列を持つコンテンツとは、放送局が放送する特定のチャネルのサービスであるが、これに限定されず、映画や、放送番組であってもよい。メディアファイル管理装置１００は、コンテンツを構成するファイルを記憶しており、端末装置３００からの要求に応じて、記憶しているコンテンツのデータの中から、要求された任意のメディアの任意のフレーム（時間位置）のデータを出力する。ユーザはこのようにして、任意のメディアの任意のフレームのデータを取得することで、例えば、他のコンテンツに流用したり、特定のフレームの特定のメディアのみを変更したりするなど、様々なことに利用することができる。なお、図１において、メディアファイル管理装置１００には、１台のコンテンツ編集装置２００と、１台の端末装置３００とが接続されているが、それぞれが、複数台接続されてもよい。
【００２４】
メディア記憶部１２０は、コンテンツ編集装置２００が生成したコンテンツを構成するファイルと、該ファイルに基づき、仮想メディアデータベース構築部１１０が生成した仮想メディアデータベースとを記憶する。仮想メディアデータベース構築部１１０は、メディア記憶部１２０が記憶するコンテンツの各々について、該コンテンツを構成するメディアファイル各々と、該メディアファイルのコンテンツ中の時間位置の範囲との対応付を示す情報を生成し、仮想メディアデータベースとしてメディア記憶部１２０に記憶させる。
【００２５】
構成メディア取得部１３０は、端末装置３００からコンテンツを指定されると、メディア記憶部１２０を参照して、該コンテンツを構成するメディア（仮想メディア）を端末装置３００に通知する。データ読み出し部１４０は、端末装置３００からメディアとコンテンツ中の時間位置とを指定されると、メディア記憶部１２０を参照して、指定されたメディア、時間位置に応じたデータを、端末装置３００に出力する。なお、構成メディア取得部１３０と、データ読み出し部１４０とで、外部インタフェース１５０を構成する。
【００２６】
図２は、本実施形態におけるコンテンツの構成例を示す概念図である。図２に示すように、本実施形態におけるコンテンツは、仮想的に多重化されており、多重化記述ファイル１０、仮想メディアファイル２０、メディアファイル３０、インデックスファイル４０の４種類のファイルから構成される。多重化記述ファイル１０は、一コンテンツに対して、一ファイル存在し、該コンテンツを構成する仮想メディアファイル２０のファイルＩＤを含むファイルである。仮想メディアファイル２０は、該コンテンツを構成するメディア毎に存在するファイルであり、該メディアを構成するメディアファイル３０に対応付けられたインデックスファイル４０のファイルＩＤを含むファイルである。なお、該メディアが時間方向に分割された複数のメディアファイル３０からなるときは、それらのメディアファイル３０各々に対応したインデックスファイル４０が存在する。インデックスファイル４０は、コンテンツにおける時間位置と、メディアファイル３０における該時間位置のデータ位置との対応付けを示す情報を含むファイルである。
【００２７】
メディアファイル管理装置１００内では、これらのファイルにはすべて一意のファイルＩＤが付与されており、ファイルＩＤからファイルが一意に特定できる。ファイルＩＤは、ＵＵＩＤ(Universally Unique Identifier)などの一意なＩＤを生成するアルゴリズムで生成した数値でも良いし、メディア管理装置１００内で一意であることが保証されているのであれば、ファイル名をそのままファイルＩＤとして用いても良い。
【００２８】
図３は、メディアファイル管理装置１００が図２で示す４種類のファイルを使って提供する仮想的な多重化ファイル（コンテンツ）の一例を示している。図３に示す例では、多重化記述ファイル１０のファイル名としてＤＧＴＶが設定されている。本実施形態では多重化記述ファイル名はメディアファイル管理装置１００内で一意に命名される。また、多重化記述ファイル１０のファイル名をファイルＩＤとして用いる。
【００２９】
図３の例の多重化記述ファイル１０では、仮想メディア名としてＶｉｄｅｏ，  Ａｕｄｉｏ，  Ａｕｄｉｏ  Ｓｕｂ，  Ｃａｐｔｉｏｎの４つが定義されている。
この例では、仮想メディア名ＶｉｄｅｏとしてｆｉｌｅＡ，  ｆｉｌｅＢ，  ｆｉｌｅＣ，  ｆｉｌｅＤの４つのメディアファイル３０が時間軸上にマッピングされている例を示している。同様に、仮想メディア名ＡｕｄｉｏとしてｆｉｌｅＩ，  ｆｉｌｅＪ，  ｆｉｌｅＫ，  ｆｉｌｅＬの４つのメディアファイル３０が時間軸上にマッピングされており、仮想メディア名Ａｕｄｉｏ  ＳｕｂとしてｆｉｌｅＮの１つのメディアファイル３０が、仮想メディア名ＣａｐｔｉｏｎとしてｆｉｌｅＸ，  ｆｉｌｅＹの２つのメディアファイル３０が時間軸上にマッピングされている例を示している。
【００３０】
このように、本実施形態では分割されて保存されているメディアファイル３０を、多重化記述ファイル１０内の同一の時間軸上にマッピングすることで、仮想的なメディアファイルとして配置するとともに、それらの仮想的なファイルを１つの多重化ファイルとして扱えるようにすることを基本構造としている。
【００３１】
＜メディアファイル＞
本実施形態ではメディアファイル３０として、データ構造が時系列に連続するデータ構造として保存されているファイルを対象としている。図４は、データ構造が時系列であるメディアファイル３０の例を示している。図４の（１）および（２）はそれぞれ映像および音声のフレーム構造をもった時系列データを示している。また、図４（３）は字幕情報の例を示したものであり、字幕情報を表示する時刻と文字情報を組とする連続するデータがファイルに保存されている例である。図４（４）は番組情報を示しており、放送番組などの編成情報が時系列に保存されている例を示している。図４（５）は映像、音声などを再生したときに視聴者が入力したコメント情報を示した例である。また、図４（６）は多重化ファイルを検索するためのキーワードを、映像や音声のメディアデータに同期して保存したファイルの例を示している。なお、本発明によるメディアファイル３０としては、図４に示したものに限定されるものではなく、ファイルのデータがフレームなどの特定の単位で時系列に保存されてものであればどのようなファイルでもかまわない。
【００３２】
図３の例で説明したように本実施形態による仮想的な多重化ファイルを実現するため、メディアファイル管理装置１００は、図２に示した４種類のファイルにより仮想的な多重化ファイルの構造を実現している。以下、図２を参照しながら、本実施形態で使われるファイルについて説明する。
【００３３】
＜多重化記述ファイル＞
多重化記述ファイル１０は仮想メディア名と仮想メディアファイル２０のファイルＩＤとの組のリストが保存される。図５に図３の例の場合の多重化記述ファイルのデータ構造の例を示す。多重化記述ファイルには、仮想メディア名であるＶｉｄｅｏ，  Ａｕｄｉｏ，  Ａｕｄｉｏ  Ｓｕｂ，  Ｃａｐｔｉｏｎの４つが、それぞれ仮想メディアファイル２０のファイルＩＤとともに保存されている。本実施形態では、仮想メディアファイル２０のファイルＩＤとして、多重化記述ファイル１０のファイル名の先頭に“＠”文字を付けた文字列と、仮想メディア名とを“／”で連結した文字列を使う。すなわち、図３の例での仮想メディア名“Ｖｉｄｅｏ”の仮想メディアファイル２０のファイルＩＤは“＠ＤＧＴＶ／Ｖｉｄｅｏ”となる。仮想メディア名“Ａｕｄｉｏ”の仮想メディアファイル２０のファイルＩＤは“＠ＤＧＴＶ／Ａｕｄｉｏ”となる。仮想メディア名“Ａｕｄｉｏ  Ｓｕｂ”の仮想メディアファイル２０のファイルＩＤは“＠ＤＧＴＶ／Ａｕｄｉｏ  Ｓｕｂ”となる。仮想メディア名“Ｃａｐｔｉｏｎ”の仮想メディアファイル２０のファイルＩＤは“＠ＤＧＴＶ／Ｃａｐｔｉｏｎ”となる。
【００３４】
＜仮想メディアファイル＞
仮想メディアファイル２０には、１つの仮想メディアにマッピングされたインデックスファイル４０のファイルＩＤが保存されている。インデックスファイル４０は、メディアファイル３０に対して付与されたインデックスを記録したファイルである。
図３の例における仮想メディアファイル２０のファイルのデータ例を図６に示す。図６に示す仮想メディアファイルは、図５の多重化記述ファイルに記載された仮想メディアファイルである。すなわち、ファイルＩＤが“＠ＤＧＶＴ／Ｖｉｄｅｏ”のものと、ファイルＩＤが“＠ＤＧＶＴ／Ａｕｄｉｏ”のものと、ファイルＩＤが“＠ＤＧＶＴ／Ａｕｄｉｏ  Ｓｕｂ”のものと、ファイルＩＤが“＠ＤＧＶＴ／Ｃａｐｔｉｏｎ”のものの４つである。
【００３５】
ファイルＩＤが“＠ＤＧＴＶ／Ｖｉｄｅｏ”の仮想メディアファイル２０には、ｆｉｌｅＡ，ｆｉｌｅＢ，ｆｉｌｅＣ，ｆｉｌｅＤの各メディアファイル３０に対して付けられたインデックスファイル４０のファイルＩＤが保存されている。図６の例では、ｆｉｌｅＡ，ｆｉｌｅＢ，ｆｉｌｅＣ，ｆｉｌｅＤの各メディアファイル３０に付与されたインデックスファイル４０のファイルＩＤとして、“ｆｉｌｅＡ．ｉｎｄｅｘ”，“ｆｉｌｅＢ．ｉｎｄｅｘ”，“ｆｉｌｅＣ．ｉｎｄｅｘ”，“ｆｉｌｅＤ．ｉｎｄｅｘ”の４つのファイルＩＤが保存されている。
【００３６】
同様に、仮想メディア名“Ａｕｄｉｏ”の仮想メディアファイル２０（ファイルＩＤが“＠ＤＧＴＶ／Ａｕｄｉｏ”）には、ｆｉｌｅＩ，ｆｉｌｅＪ，ｆｉｌｅＫ，ｆｉｌｅＬのメディアファイル３０のインデックスファイル４０のファイルＩＤである“ｆｉｌｅＩ．ｉｎｄｅｘ”，“ｆｉｌｅＪ．ｉｎｄｅｘ”，“ｆｉｌｅＫ．ｉｎｄｅｘ”，“ｆｉｌｅＬ．ｉｎｄｅｘ”が記録されている。また、仮想ファイル名“Ａｕｄｉｏ  Ｓｕｂ”の仮想メディアファイル３０（ファイルＩＤが“＠ＤＧＴＶ／Ａｕｄｉｏ  Ｓｕｂ”）には、ｆｉｌｅＮのメディアファイル３０のインデックスファイル４０のファイルＩＤである“ｆｉｌｅＮ．ｉｎｄｅｘ”が記録され、仮想ファイル名Ｃａｐｔｉｏｎの仮想メディアファイル３０（ファイルＩＤが“＠ＤＧＴＶ／Ｃａｐｔｉｏｎ”）には、ｆｉｌｅＸ，  ｆｉｌｅＹのメディアファイル３０のインデックスファイル４０のファイルＩＤである“ｆｉｌｅＸ．ｉｎｄｅｘ”，“ｆｉｌｅＹ．ｉｎｄｅｘ”が記録されている。
【００３７】
＜インデックスファイル＞
図７は、インデックスファイルのデータ構造の例を示す図である。インデックスファイル４０には、ヘッダーとしてメディアファイル３０のファイルＩＤが保存され、続いてメディアファイル３０のフレーム毎の（開始時刻、終了時刻、メディアファイル３０の先頭からの位置、データ長）のデータがリストとして保存されている。開始時刻および終了時刻は、多重化記述ファイル１０内での時間軸に対応した時刻情報である。また、メディアファイル３０の先頭からの位置（データ位置）としては、該ファイルの先頭からのバイト数を用いる。なお、データ位置や、データ長の単位として、パケット分割されているメディアであればパケット数などを用いるようにしてもよい。
【００３８】
本実施形態では、インデックスファイルに保存する開始時刻、終了時刻などの時刻情報は、日付を示す値と時刻を示す値を含む。日付を示す値としてＭＪＤ(Modified Julian Date)、時間を示す値としては毎日の午前０時を０とした９０ＫＨｚのカウンタ値を用いる。９０ＫＨｚを基準としたカウント値を時間情報として用いることで、９０ＫＨｚの精度でフレーム単位の同期をとることが可能となる。なお、時刻情報としてこれに限定されるものではなく、本発明の使用目的（同期の精度など）を考慮して連続する数値を決定すればよい。例えば、映画や放送番組をコンテンツとするときは、時刻情報として、該コンテンツの先頭からの経過時間やフレーム数を用いるようにしてもよい。
【００３９】
以上説明した多重化記述ファイル１０、仮想メディアファイル２０、メディアファイル３０、インデックスファイル４０を用いてコンテンツを格納し、多重化記述ファイル名と仮想メディア名、時刻情報を与えることで、同一の時間軸上にマッピングされたメディアファイルのフレームデータを特定することが可能となる。
【００４０】
＜メディアファイル管理装置＞
以上説明した本発明における仮想的な多重化ファイルの原理を踏まえ、図１に示したメディアファイル管理装置１００の動作について説明する。なお、以下の説明で必要となる多重化記述ファイル１０、仮想メディアファイル２０、メディアファイル３０、インデックスファイル４０の各ファイルは、コンテンツ編集装置２００により、あらかじめメディア記憶部１２０に記録されており、メディアファイル管理装置１００内で一意のファイルＩＤにより特定できる。
【００４１】
図８は、メディアファイル管理装置１００の仮想メディアデータベース構築部１１０の動作を説明するフローチャートである。メディアファイル管理装置１００は、外部から多重化記述ファイル名が入力されると、仮想メディアデータベース構築部１１０が動作し、仮想メディアデータベースが内部的に構築される。
【００４２】
まず、仮想メディアデータベース構築部１１０は、入力された多重化記述ファイル名を取得する（Ｓ１−１）。次に、仮想メディアデータベース構築部１１０は、取得した多重化記述ファイル名（たとえばＤＧＴＶ）でメディア記憶部１２０に記憶されている多重化記述ファイルを取得する（Ｓ１−２）。次に、仮想メディアデータベース構築部１１０は、取得した多重化記述ファイル１０から、仮想メディア数を読み出し、変数Ｍに設定する（Ｓ１−３）。たとえば、図５の例では仮想メディア数は４であるので、Ｍは４となる。次に、仮想メディアデータベース構築部１１０は、繰り返し処理用のカウンタＮに１をセットし（Ｓ１−４）、繰り返し処理を開始する（Ｓ１−５）。
【００４３】
繰り返し処理では、仮想メディアデータベース構築部１１０は、多重化記述ファイルに記録されているＮ番目の仮想メディアファイルのファイルＩＤを取得する（Ｓ１−６）。たとえば、図５の例では、Ｎ＝１の場合、＠ＤＧＴＶ／Ｖｉｄｅｏを取得する。次に、仮想メディアデータベース構築部１１０は、取得した仮想メディアファイル２０のファイルＩＤから、仮想メディアデータベース構築手段１１１を使って仮想メディアデータベースを構築する（Ｓ１−７）。ステップＳ１−６の処理の詳細は後述する。その後、仮想メディアデータベース構築部１１０は、Ｎに１を加え（Ｓ１−８）、その結果、Ｎ≦Ｍの場合には（Ｓ１−９）、Ｓ１−４に戻って処理を繰り返し、そうでない場合は、仮想メディアデータベース構築部１１０の動作を終了する。
以上説明した動作により、多重化記述ファイル１０に対する、仮想メディアデータベースが構築される。
【００４４】
＜ステップＳ１−７の詳細＞
図９は、上述の仮想データベース構築処理（ステップＳ１−７）を説明するフローチャートである。始めに、仮想メディアデータベース構築部１１０は、ステップＳ１−６にて取得した仮想メディアファイルのファイルＩＤから、メディア記憶部１２０に記録されている仮想メディアファイル２０を取得する（Ｓ１０−１）。
【００４５】
次に、仮想メディアデータベース構築部１１０は、取得した仮想メディアファイル２０内に記述されているインデックスファイルのファイルＩＤの個数を変数Ｍに設定する（Ｓ１０−２）。たとえば、図６の例では、仮想メディアファイルのファイルＩＤが“＠ＤＧＴＶ／Ｖｉｄｅｏ”の場合には、Ｍに４が設定されることになる。次に、仮想メディアデータベース構築部１１０は、繰り返し処理のカウンタＮに“１”を設定し（Ｓ１０−３）、繰り返し処理に入る（Ｓ１０−４）。
【００４６】
繰り返し処理では、まず、仮想メディアデータベース構築部１１０は、取得した仮想メディアファイル２０に記録されている、Ｎ番目のインデックスファイルのファイルＩＤに基づき、メディア記憶部１２０に記録されているインデックスファイル４０を取得する（Ｓ１０−５）。次に、仮想メディアデータベース構築部１１０は、取得したインデックスファイル４０から、開始時刻と終了時刻とを読み出す。そして、仮想メディアデータベース構築部１１０は、読み出した開始時刻と終了時刻とが表す時間帯の開始時刻と終了時刻のリストを作成する（Ｓ１０−６）。たとえば、取得したインデックスファイル４０が、図３のファイルＩＤが“ｆｉｌｅＡ．ｉｎｄｅｘ”のインデックスファイルの場合は、開始時刻ＴＶ１、終了時刻ＴＶ２である１つのデータからなるリストを作成する。同様に、ファイルＩＤが“ｆｉｌｅＸ．ｉｎｄｅｘ”のインデックスファイル４０の場合は、開始時刻ＴＣ１、終了時刻がＴＣ２と、開始時刻がＴＣ３、終了時刻がＴＣ４の２つのデータからなるリストを作成する。
【００４７】
仮想メディアデータベース構築部１１０は、作成したリストを、インデックスファイル４０のファイルＩＤとともに仮想メディアデータベースに登録する（Ｓ１０−７）。次に、繰り返し処理のカウンタＮに１を加え（Ｓ１０−８）、その結果Ｎ≦Ｍの場合には、Ｓ１０−４に戻り、処理を繰り返し、Ｎ＞Ｍの場合には、仮想メディアデータベース構築処理（ステップＳ１−７）を終了する。
【００４８】
以上説明した動作により、仮想メディア名と指定時刻から、対応するインデックスファイル４０を検索できる仮想メディアデータベースが構築される。図３の場合を例として、仮想メディアデータベースの状態を図１０に示す。図１０に示すように、図３の場合、構築される仮想メディアデータベースは、仮想メディア名“Ｖｉｄｅｏ”、“Ａｕｄｉｏ”、“Ａｕｄｉｏ  Ｓｕｂ”、“Ｃａｐｔｉｏｎ”の４つである。
【００４９】
図１０では、仮想メディア名“Ｖｉｄｅｏ”の仮想メディアデータベースは、開始時刻“ＴＶ１”と終了時刻“ＴＶ２”とインデックスファイルのファイルＩＤ“ｆｉｌｅＡ．ｉｎｄｅｘ”と対応づけて記憶し、開始時刻“ＴＶ２”と終了時刻“ＴＶ３”とインデックスファイルのファイルＩＤ“ｆｉｌｅＢ．ｉｎｄｅｘ”と対応づけて記憶し、開始時刻“ＴＶ３”と終了時刻“ＴＶ４”とインデックスファイルのファイルＩＤ“ｆｉｌｅＣ．ｉｎｄｅｘ”と対応づけて記憶し、開始時刻“ＴＶ４”と終了時刻“ＴＶ５”とインデックスファイルのファイルＩＤ“ｆｉｌｅＤ．ｉｎｄｅｘ”と対応づけて記憶している。
【００５０】
また、仮想メディア名“Ａｕｄｉｏ”の仮想メディアデータベースは、開始時刻“ＴＡ１”と終了時刻“ＴＡ２”とインデックスファイルのファイルＩＤ“ｆｉｌｅＩ．ｉｎｄｅｘ”と対応づけて記憶し、開始時刻“ＴＡ２”と終了時刻“ＴＡ３”とインデックスファイルのファイルＩＤ“ｆｉｌｅＪ．ｉｎｄｅｘ”と対応づけて記憶し、開始時刻“ＴＡ３”と終了時刻“ＴＡ４”とインデックスファイルのファイルＩＤ“ｆｉｌｅＫ．ｉｎｄｅｘ”と対応づけて記憶し、開始時刻“ＴＡ４”と終了時刻“ＴＡ５”とインデックスファイルのファイルＩＤ“ｆｉｌｅＬ．ｉｎｄｅｘ”と対応づけて記憶している。
【００５１】
また、仮想メディア名“Ａｕｄｉｏ  Ｓｕｂ”の仮想メディアデータベースは、開始時刻“ＴＳ１”と終了時刻“ＴＳ２”とインデックスファイルのファイルＩＤ“ｆｉｌｅＮ．ｉｎｄｅｘ”と対応づけて記憶している。
また、仮想メディア“Ｃａｐｔｉｏｎ”の仮想メディアデータベースは、開始時刻“ＴＣ１”と終了時刻“ＴＣ２”とインデックスファイルのファイルＩＤ“ｆｉｌｅＸ．ｉｎｄｅｘ”と対応づけて記憶し、開始時刻“ＴＣ３”と終了時刻“ＴＣ４”とインデックスファイルのファイルＩＤ“ｆｉｌｅＸ．ｉｎｄｅｘ”と対応づけて記憶し、開始時刻“ＴＣ５”と終了時刻“ＴＣ６”とインデックスファイルのファイルＩＤ“ｆｉｌｅＹ．ｉｎｄｅｘ”と対応づけて記憶し、開始時刻“ＴＣ７”と終了時刻“ＴＣ８”とインデックスファイルのファイルＩＤ“ｆｉｌｅＹ．ｉｎｄｅｘ”と対応づけて記憶している。
【００５２】
＜外部インタフェース＞
メディアファイル管理装置１００は、外部とのインタフェース１５０として、構成メディア取得部１３０のｄｉｒ関数と、データ読み出し部１４０のｒｅａｄ関数の２つのアクセス用関数を持つ。図１１に、ｄｉｒ関数とｒｅａｄ関数の入出力パラメータとその動作の説明を示す。
【００５３】
ｄｉｒ関数は、多重化記述ファイル１０のファイル名をパラメータとして指定されると、多重化記述ファイル１０に含まれる仮想メディア名を返すインタフェースである。すなわち、ｄｉｒ関数により、多重化記述ファイル１０で示される同一の時間軸上に並べられた仮想メディアのリストを取得することができる。図３の例では、ｄｉｒ関数によりＶｉｄｅｏ，  Ａｕｄｉｏ，  Ａｕｄｉｏ  Ｓｕｂ，  Ｃａｐｔｉｏｎが取得される。
【００５４】
ｒｅａｄ関数は、多重化記述ファイル１０のファイル名と、仮想メディア名と、開始時刻とをパラメータとして指定されると、多重化記述ファイル１０の指定した仮想メディア名の１フレーム分のデータを返すインタフェースである。すなわち、多重化記述ファイル１０のファイル名（ｎａｍｅ）と、仮想メディア名（ｍｅｄｉａ）、開始時刻（ｓｔａｒｔ）の位置のフレームデータがｄａｔａに、そのサイズがｓｉｚｅに、そのフレームデータの終了時刻がｅｎｄの各引数に読み出される。たとえば、図３の例では、引数ｎａｍｅに“ＤＧＴＶ”、引数ｍｅｄｉａに“Ｖｉｄｅｏ”、引数ｓｔａｒｔに“ＴＶ１”を指定してｒｅａｄ関数を実行すると、メディアファイル“ｆｉｌｅＡ”の先頭１フレームのデータが読み出される。
【００５５】
アクセス用インタフェースのｄｉｒ関数およびｒｅａｄ関数は外部インタフェース１５０によって処理が行われる。外部インタフェース１５０の動作の流れを図１２に示す。
外部インタフェース１５０は始めに、端末装置３００から指定された多重化記述ファイル名に基づき、メディア記憶部１２０から多重化記述ファイルを取得する（Ｓ２−１）。次に、外部インタフェース１５０は、呼び出された関数がｄｉｒ関数かｒｅａｄ関数かを判別する（Ｓ２−２およびＳ２−４）。
【００５６】
呼び出された関数がｄｉｒ関数の場合（Ｓ２−２でＹｅｓ）、メディア構成取得部１３０が、多重化記述ファイル１０に記録された、仮想メディア名のリストをｄｉｒ関数の出力として返送し（Ｓ２−３）、外部インタフェース１５０の処理を終了する。
一方、関数がｒｅａｄ関数の場合（Ｓ２−２でＮｏ、Ｓ２−４でＹｅｓ）、データ読み出し部１４０が、ｒｅａｄ関数で指定された仮想メディア名および、開始時刻に対応する、フレームデータを取得する。具体的には、まず、データ読み出し部１４０は、メディア記憶部１２０に記録された仮想メディアデータベースのうち、指定された仮想メディア名の仮想メディアデータベースに対して、指定された開始時刻を含む時間帯に対応するインデックスファイルのファイＩＤを取得するように、検索を実行する（Ｓ２−５）。
【００５７】
次に、データ読み出し部１４０は、仮想メディアデータベースを検索して取得したファイルＩＤからインデックスファイル４０を取得する。さらに、データ読み出し部１４０は、取得したインデックスファイル４０から、メディアファイル３０のファイルＩＤと、ｒｅａｄ関数で指定された開始時刻のデータ位置と、データ長とを取得する（Ｓ２−６）。
そして、データ読み出し部１４０は、ステップＳ２−６で取得したメディアファイルのファイルＩＤと、データ位置と、データ長とに基づき、メディアファイル４０のフレームデータを取得し、そのデータをｒｅａｄ関数の出力として返送（Ｓ２−７）し処理を終了する。このとき、データ読み出し部１４０は、メディア記憶部１２０に記録されているメディアファイル４０から、指定されたインデックスデータ（ファイルの先頭位置からの位置と、データ長）に対応する１フレーム分のデータを読み出す。
【００５８】
以上、説明したようにメディア管理装置１００を使うことで、多重化記述ファイル１０で示される時間軸上に配置された仮想メディアの指定した時刻のデータを、実際のメディアファイルの分割状態を意識することなく読み込むことが可能となる。
【００５９】
また、このように、メディア記憶部１２０は、時系列を持つコンテンツを構成するメディアのデータを含むメディアファイル（メディアデータ）と、メディアファイル毎に対応付けられたデータであって、コンテンツ中の時間位置とメディアファイル中のデータ位置との対応付けを示すインデックスデータとを記憶している。さらに、データ読み出し部１４０は、コンテンツ中の時間位置を指定されると、該指定された時間位置に対応付けられたデータ位置を、インデックスデータから取得し、指定されたメディアの該取得したデータ位置のデータを、メディアファイルから抽出する。このため、特定の時間位置の特定のメディアのデータを容易に抽出することができる。
【００６０】
また、メディアファイルに対応するインデックスファイルをコンテンツ毎に用意し、一つのメディアファイルの同じ部分、あるいは、別々の部分を複数のコンテンツの一部とすることができる。この場合、一つのメディアファイルを複数のコンテンツから参照することになるため、メディア記憶部１２０の記憶容量を圧迫することなく、効率良く使用することができる。
【００６１】
また、メディアファイルは、コンテンツを構成するメディアを時間方向に分割したデータを含み、メディア記憶部１２０は、コンテンツを構成するメディアを時間方向に分割したデータを含むメディアファイルに対応するインデックスファイルを示す仮想メディアファイル（仮想メディアデータ）を記憶する。そして、データ読み出し部１４０は、コンテンツ中の時間位置を指定されると、仮想メディアファイルが示すインデックスファイルに基づき、その時間位置に対応付けられたデータ位置と該データ位置を含むメディアデータとを示す情報を取得する。このため、特定の時間位置の特定のメディアのデータを、容易に抽出することができる。
【００６２】
また、仮想メディアデータベース（仮想メディアデータ）は、インデックスファイルと、該インデックスファイルが示すコンテンツ中の時間位置の範囲との対応付けを示す情報を含む。そして、データ読み出し部１４０は、コンテンツ中の時間位置を指定されると、仮想メディアデータベースを参照して、指定された時間位置を含むインデックスファイルを選択する。このため、複数あるインデックスファイルの中から、特定のインデックスファイルを参照するだけで、特定の時間位置の特定のメディアのデータを、容易に抽出することができる。
【００６３】
また、メディア記憶部１２０は、コンテンツを構成するメディアの種類と、該種類のメディアの仮想メディアデータとの対応付けを示す多重化記述ファイル（多重化記述データ）を記憶している。そして、データ読み出し部１４０は、コンテンツ中の時間位置とメディアとを指定されると、多重化記述ファイルを参照して、指定されたメディアの仮想メディアファイルを選択する。このため、特定の時間位置の特定のメディアのデータを、容易に抽出することができる。
【００６４】
［第２の実施形態］
第１の実施形態におけるメディア管理装置１００は、仮想メディアデータベースおよび、すべてのファイルが同一のメディア管理装置１００内に存在するものとして説明したが、本発明はこれに限定されるものではない。すなわち、仮想メディアデータベースおよびファイルの蓄積を複数のメディアファイル管理装置により分担しておこなう分散型のメディアファイル管理装置であっても実現可能である。
【００６５】
以下、図面を参照して、本発明の第２の実施形態について説明する。図１３は、本実施形態における分散メディアファイル管理装置の構成を示す概略ブロック図である。図１３は、２つの分散メディアファイル管理装置１００Ａと１００Ｂが、ネットワーク装置４００により接続されている例を示している。なお、本発明による分散メディアファイル管理装置は２台に限定されるものではなく、２台を超える台数であってもよいが、説明のため、ここでは２台から構成される装置を例として説明する。また、図１３において、図１におけるコンテンツ編集装置２００および端末装置３００の図示は、省略されているが、これらの装置もネットワーク装置４００を介して、メディアファイル管理装置１００Ａ、１００Ｂに接続されている。
【００６６】
図１３の分散メディアファイル管理装置１００Ａ、１００Ｂはまったく同じ構成であるため、以下では分散メディアファイル管理装置１００Ａを中心として動作を説明する。また、同図において、図１の各部に対応する部分には同一の符号（１１０、１５０）を付け、その説明を省略する。図１３の分散メディアファイル管理装置１００Ａは、図１で示したメディアファイル管理装置１００に対して、メディア記憶部１２０に変えて、メディア記憶部１２０Ａを備える点が異なる。そして、メディア記憶部１２０Ａは、ＫＶ検索部１２１、Ｋｅｙ−Ｖａｌｕｅ記憶部１２２、ファイル記憶部１２３を含んで構成される。
【００６７】
＜分散ハッシュテーブル＞
分散メディアファイル管理装置１００Ａでは、ファイルＩＤの管理および、仮想メディアデータベースの保存先の管理に分散ハッシュテーブル（ＤＨＴ）を使う。
ＤＨＴは、Ｋｅｙ−Ｖａｌｕｅ型データベースをＤＨＴに参加するノードで分担することで、巨大なデータベースを構築する手法である。ここで、Ｋｅｙ−Ｖａｌｕｅ型データベースは、Ｋｅｙ値から対応するＶａｌｕｅ値を取得できるデータベースのことである。
【００６８】
ＤＨＴでは参加するノードはハッシュ関数により生成された一意のノードＩＤが付与されている。本実施形態では、分散メディアファイル管理装置１００Ａ、１００ＢにそれぞれノードＩＤが付与されている。そして、Ｋｅｙ−Ｖａｌｕｅ型データベースに登録するＫｅｙ−ＶａｌｕｅデータはＫｅｙのハッシュ値に近いノードＩＤのノードが保管する。これにより、与えられたＫｅｙ値から、それを保管するノードがわかり、そのノードに問い合わせることで、Ｖａｌｕｅ値を取得することができる。
【００６９】
分散メディアファイル管理装置１００ＡのＫｅｙ−Ｖａｌｕｅ記憶部１２２は、当該ノードに割り当てられたＫｅｙ−Ｖａｌｕｅデータを記憶している。ＫＶ検索部１２１は、ＤＨＴによりＫｅｙ−Ｖａｌｕｅ型データベースの検索を行う部分である。すなわち、ＫＶ検索部１２１は、ファイルＩＤを与えられると、これをＫｅｙとして、Ｋｅｙ−Ｖａｌｕｅデータベースを検索し、与えられたＩＤが示すファイルの保存先を取得する。以下、ＫＶ検索部１２１を使うことで、Ｋｅｙ−Ｖａｌｕｅ型データベースの検索が可能であるものとして説明する。なお、ＤＨＴの実現方法はさまざまな手法が開発されているが、本発明はＤＨＴの手法に依存するものではないので説明は省略する。さらに、本実施形態では、ＫＶ検索部１２１としてＤＨＴを利用することで説明しているが、ＤＨＴに限定されるものではなく、分散型のＫｅｙ−Ｖａｌｕｅ型データベースであればどのような方式であってもかまわない。
【００７０】
分散メディアファイル管理装置１００Ａ、１００Ｂでは、仮想メディアデータベースを仮想メディアごとに複数の分散メディアファイル管理装置で分担して管理する。すなわち、仮想メディアファイルのファイルＩＤをＫｅｙとして、Ｋｅｙ−Ｖａｌｕｅ型データベースを検索することで、所望の仮想メディアデータベースが構築されている分散メディアファイル管理装置を知ることができる。
外部インタフェース１５０のデータ読み出し部１４０は、仮想メディアファイルのファイルＩＤ（たとえば＠ＤＧＴＶ／Ｖｉｄｅｏ）をＫｅｙとして、Ｋｅｙ−Ｖａｌｕｅ型データベースを検索して、仮想メディアデータベースの保管先を取得し、該取得した保管先のファイル記憶部１２３に記憶されている仮想メディアデータベースを検索する。
【００７１】
また、多重化記述ファイル１０、仮想メディアファイル２０、メディアファイル３０、インデックスファイル４０は、分散メディアファイル管理装置１００Ａのファイル記憶部１２３または、分散メディアファイル管理装置１００Ｂのファイル記憶部１２３のどちらかに保管されている。ファイルの保管先は、ファイルＩＤをＫｅｙとして、保管先のアドレスをＶａｌｕｅとしてあらかじめＤＨＴに登録しておき、ｋｅｙ−Ｖａｌｕｅ型データベースを検索することで、ファイルの保管先を知ることができる。
外部インタフェース１５０の構成メディア取得部１３０およびデータ読み出し部１４０、仮想メディアデータベース構築部１１０は、ファイルＩＤからｋｅｙ−Ｖａｌｕｅ型データベースを検索し、検索した装置のファイル蓄積装置からファイルを読み出す。
【００７２】
＜仮想メディアデータベース構築部＞
分散メディアファイル管理装置１００Ａは、外部から多重化記述ファイル１０のファイル名（本実施形態ではファイルＩＤと等価）が入力されると、仮想メディアデータベース構築部１１０が動作し、仮想メディアデータベースを構築する。本実施形態における仮想メディアデータベース構築部１１０の基本的な動作は、すでに図８を使って説明した第１の実施形態における仮想メディアデータベース構築部１１０と同じである。
【００７３】
図１４は、本実施形態における仮想メディアデータベース構築部１１０の動作を説明するフローチャートである。仮想メディアデータベース構築部１１０は、始めに多重化記述ファイル１０のファイル名を取得する（Ｓ１Ａ−１）。次に、仮想メディアデータベース構築部１１０は、取得したファイル名から、多重化記述ファイル１０を取得する（Ｓ１Ａ−２）。このステップＳ１Ａ−２における多重化記述ファイル１０の取得処理の詳細については、後述する。
【００７４】
仮想メディアデータベース構築部１１０は、取得した多重化記述ファイル１０から仮想メディア数を取得し、変数Ｍに設定する（Ｓ１Ａ−３）。仮想メディアデータベース構築部１１０は、続いて、繰り返し処理のカウンタ用変数Ｎに１をセットし（Ｓ１Ａ−４）、繰り返し処理の実行を開始する（Ｓ１Ａ−５）。
【００７５】
仮想メディアデータベース構築部１１０は、繰り返し処理内では、始めにＫＶ検索部１２１を使い、Ｎ番目の仮想メディアファイルのファイルＩＤ（たとえば＠ＤＧＴＶ／Ｖｉｄｅｏ）を検索し、その仮想メディアデータベースを自装置が管理するかどうかを判定する。自装置の管理ではないと判定したときは（Ｓ１Ａ−６−Ｎｏ）、ステップＳ１Ａ−９にジャンプし、自装置の管理であると判定したときは（Ｓ１Ａ−６−Ｙｅｓ）、仮想メディアデータベースを構築する（Ｓ１Ａ−７）。仮想メディアデータベースの構築処理は、すでに図９を使って説明した第１の実施形態における仮想メディアデータベース構築部１１０と同じである。次に、Ｎに１を加え（Ｓ１Ａ−９）、Ｎ≦Ｍの場合には、ステップＳ１Ａ−５に戻り処理を繰り返し、Ｎ＞Ｍの場合には、仮想メディアデータベース構築部１１０の動作を終了する。
【００７６】
＜ファイル取得処理＞
図１５は、上述のステップＳ１Ａ−２におけるファイル取得処理を説明するフローチャートである。仮想メディアデータベース構築部１１０は、ＫＶ検索部１２１を使ってＫｅｙ−Ｖａｌｕｅ型データベースを検索して、ファイル（多重化記述ファイル１０）の保管先の管理装置を示す情報を取得する（Ｓ２１Ａ−１）。取得した情報が所望のファイルの保管先として自装置を示しているときは（Ｓ２１Ａ−２−Ｙｅｓ）、自装置のファイル記憶部１２３からファイルを取得する（Ｓ２１Ａ−３）。他の装置内を示しているときは（Ｓ２１Ａ−２−Ｎｏ）には、ネットワーク装置４００を介して、その装置のファイル記憶部１２３からファイルを取得する。
【００７７】
以上、分散メディアファイル管理装置１００Ａの仮想メディアデータベース構築部１１０の動作を説明したが、分散メディアファイル管理装置１００Ｂの仮想メディアデータベース構築部１１０も全く同じ動作をすることで、仮想メディアデータベースが、分散メディアファイル管理装置１００Ａおよび１００Ｂで分散して構築される。
【００７８】
＜外部インタフェース１５０＞
図１６は、外部インタフェース１５０の動作を説明するフローチャートである。外部インタフェース１５０の動作は、すでに図１２を使って説明した第１の実施形態における外部インタフェース１５０の動作と基本的に同じである。
外部インタフェース１５０は始めに、指定された多重化記述ファイル１０のファイル名から多重化記述ファイル１０を取得する（Ｓ２Ａ−１）。ファイルの取得は、図１４のステップＳ１Ａ−２にて仮想メディアデータベース構築部１１０が行ったファイル取得処理と同様である。すなわち、自装置のファイル記憶部１２３または、ネットワーク装置４００で接続された他の装置のファイル記憶部１２３から読み出す。
【００７９】
次に、外部インタフェース１５０は、呼び出された関数がｄｉｒ関数かｒｅａｄ関数かを判別する（Ｓ２Ａ−２およびＳ２Ａ−４）。
関数がｄｉｒ関数の場合（Ｓ２Ａ−２−Ｙｅｓ）、外部インタフェース１５０の構成メディア取得部１３０が多重化記述ファイル１０に記録された、仮想メディア名のリストをｄｉｒ関数の出力として返送し（Ｓ２Ａ−３）、外部インタフェース１５０の処理を終了する。
関数がｒｅａｄ関数の場合（Ｓ２Ａ−２でＮｏ、Ｓ２Ａ−４でＹｅｓ）、外部インタフェース１５０のデータ読み出し部１４０が、仮想メディアデータベースを検索し、ｒｅａｄ関数で指定された仮想メディア名および開始時刻に対応するインデックスファイル４０のファイルＩＤを取得する（Ｓ２Ａ−５）。なお、仮想メディアデータベースの検索処理の詳細については、後述する。
【００８０】
次に、データ読み出し部１４０は、ステップＳ２Ａ−１と同様にして、取得したファイルＩＤからインデックスファイル４０を取得する。さらに、データ読み出し部１４０は、このインデックスファイル４０からメディアファイル３０のファイルＩＤと、ｒｅａｄ関数で指定された開始時刻のインデックス（データ位置、データ長）を取得する（Ｓ２Ａ−６）。
続いて、データ読み出し部１４０は、メディアファイルのファイルＩＤとインデックスから、メディアファイル４０のフレームデータを取得し、そのデータをｒｅａｄ関数の出力として返送し（Ｓ２Ａ−７）、処理を終了する。
【００８１】
フレームデータの取得は、指定されたインデックスデータ（メディアファイルの先頭位置からの位置と、データ長）に対応するメディアファイル４０のデータを、ファイル記憶部１２３または、ネットワーク装置４００で接続された他の分散メディアファイル管理装置１００Ｂのファイル記憶部１２３に記録されているメディアファイル４０から読み出す。この動作はすでに説明したステップＳ２Ａ−１と同じである。
【００８２】
以上、分散メディアファイル管理装置１００Ａの外部インタフェース１５０の説明を行ったが、分散メディアファイル管理装置１００Ｂの外部インタフェース１５０の動作も全く同じである。すなわち、分散メディアファイル管理装置１００Ａ、１００Ｂのいずれのｄｉｒ関数およびｒｅａｄ関数を使っても全く同じデータを得ることができる。
【００８３】
＜仮想メディアデータベース検索処理＞
図１７は、ステップＳ２Ａ−５の仮想メディアデータベースの検索処理を説明するフローチャートである。始めに、入力された仮想メディアファイルのファイルＩＤからＫＶ検索部１２１を使って仮想メディアデータベースが存在する装置を検索する（Ｓ１２Ａ−１）。仮想メディアデータベースが自分の装置にある場合（Ｓ１２Ａ−２−Ｙｅｓ）には、自装置のファイル記憶部１２３が記憶する仮想メディアデータベースを検索して、インデックスファイル４０のファイルＩＤを取得する。一方、仮想メディアデータベースが他の装置に存在する場合（Ｓ１２Ａ−２−Ｎｏ）には、ネットワーク装置４００を介して、分散メディアファイル管理装置１００Ｂの仮想メディアデータベースを検索し、インデックスファイル４０のファイルＩＤを取得する（Ｓ１２Ａ−４）。
【００８４】
以上、説明したように分散メディア管理装置１００Ａ、１００Ｂを使うことで、多重化記述ファイル１０で示される時間軸上に配置された仮想メディアに対し、時刻を指定することで、実際のメディアファイルの保存場所を意識することなく、容易にデータを読み込むことが可能となる。
また、本実施形態においても、第１の実施形態と同様の効果が得られる。
【００８５】
＜ファイルのバージョン管理に利用した形態＞
以上の実施形態では、映像や音声などのメディアファイルを時間軸上にマッピングでき、複数のメディアファイルを意識することなくメディアファイルを読み出すことが可能であることを説明したが、対象とするメディアファイルは、これらに限定されるものではない。
【００８６】
たとえば、図１８は、本発明をファイルのバージョン管理に用いた例である。ソフトウェアプログラムのソースコードや、地上デジタル放送におけるデータ放送のファイルは、同じファイル名であっても、時間的に更新される。図１８はこのような同じファイル名であっても、時間とともにファイルの内容が異なるファイルのバージョン管理に本発明を利用した例である。
【００８７】
この例では、それぞれのバージョンのファイルに対して、インデックスファイルを付け、同一の仮想メディアにマッピングしている。すなわち、メディアファイルのＶｅｒｓｉｏｎ１はＴ１からＴ２にマッピングし、Ｖｅｒｓｉｏｎ２はＴ２からＴ３にマッピングしている。これにより、時刻を指定することで、その時刻におけるバージョンのファイルを取得できるようになる。
【００８８】
＜電子書籍のメディアファイルに利用した形態＞
さらに、図１９は本発明を電子書籍のメディアファイルの管理に利用した例を示している。ここでは、メディアファイルとして、雑誌などをスキャンしたデータが１ファイルとして保存されているとする。すなわち、ある雑誌の１月号をスキャンしたメディアファイル、２月号をスキャンしたファイルなどである。図１９ではこれらのメディアファイルの中から、ある特定の連載記事だけを、時間軸上にマッピングすることで、異なるメディアファイルに存在する同じ連載記事だけを連続したファイルとして読み出すようにした例である。すなわち、それぞれのメディアファイルの特定の連載記事部分に対してインデックスファイルを作成し、それを同一の仮想メディアの時間軸上にマッピングすることで実現できる。なお、本実施例ではこれまで時間軸を実際の日時として説明したが、この例に示すように、時間に限定されるものではなく、この例のようにページ数など、連続する数であればどのようなものでもかまわない。
【００８９】
また、図１におけるメディアファイル管理装置１００、図１３における分散メディアファイル管理装置１００Ａ、１００Ｂの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、これらの機能を実現させてもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【００９０】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００９１】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【００９２】
１００…メディアファイル管理装置
１００Ａ、１００Ｂ…分散メディアファイル管理装置
１１０…仮想メディアデータベース構築部
１２０、１２０Ａ…メディア記憶部
１２１…ＫＶ検索部
１２２…Ｋｅｙ−Ｖａｌｕｅ記憶部
１２３…ファイル記憶部
１３０…構成メディア取得部
１４０…データ読み出し部
１５０…外部インタフェース
２００…コンテンツ編集装置
３００…端末装置
４００…ネットワーク装置
【図１】
2012242845.tif 000003
【図２】
2012242845.tif 000004
【図３】
2012242845.tif 000005
【図４】
2012242845.tif 000006
【図５】
2012242845.tif 000007
【図６】
2012242845.tif 000008
【図７】
2012242845.tif 000009
【図８】
2012242845.tif 000010
【図９】
2012242845.tif 000011
【図１０】
2012242845.tif 000012
【図１１】
2012242845.tif 000013
【図１２】
2012242845.tif 000014
【図１３】
2012242845.tif 000015
【図１４】
2012242845.tif 000016
【図１５】
2012242845.tif 000017
【図１６】
2012242845.tif 000018
【図１７】
2012242845.tif 000019
【図１８】
2012242845.tif 000020
【図１９】
2012242845.tif 000021
【図２０】
2012242845.tif 000022