(57)【要約】  【課題】  音声や映像が多重化されたＡＶファイルを再生する場合、ＡＶファイル内の音声データや映像データの格納位置が規定されていないため、分離部によるデコーダが要求する時間内でのデータ供給を保証することができない。  【解決手段】  ＡＶファイル内のパケット配置情報をＡＶファイルの再生開始前に取得してパケットマップを生成するパケットマップ生成部１１０と、パケットマップを蓄積して管理するパケットマップバッファ１１１と、パケットマップバッファ１１１からパケットマップを取り出し、パケット配置情報を基に記憶部１０２からＡＶファイル内のデータを読み出し、デコードを行う。【選択図】  図３
2005260556.tif 000002
【特許請求の範囲】
【請求項１】
再生すべきファイルのデータおよび他のデータを格納するための記憶手段と、
前記記憶手段に格納されたファイル内のパケットの配置情報と任意の付加情報を関連付けたパケットマップを生成するパケットマップ生成手段と、
前記パケットマップ生成手段によって生成された前記パケットマップをバッファし、任意のタイミングで前記パケットマップを利用することを可能とするためのパケットマップバッファと、
前記パケットマップバッファにバッファされた前記パケットマップを利用して、前記記憶手段に格納されたファイル内のパケットを分離する分離手段と、
を備えたＡＶファイル分離装置。
【請求項２】
再生すべきファイルのデータおよび他のデータを格納するための記憶手段と、
前記記憶手段に格納されたファイル内のパケットの配置情報と任意の付加情報を関連付けたパケットマップを生成するパケットマップ生成手段と、
前記パケットマップ生成手段によって生成された前記パケットマップをバッファし、任意のタイミングで前記パケットマップを利用することを可能とするためのパケットマップバッファと、
前記パケットマップバッファにバッファされた前記パケットマップを利用して、前記記憶手段に格納されたファイル内のパケットを分離する分離手段と、
前記分離手段による前記パケットマップバッファからの前記パケットマップの取り出しと前記パケットマップ生成手段による前記パケットマップバッファへの前記パケットマップのバッファとを並行して行う場合に、前記分離手段による前記パケットマップバッファからのパケットマップ取り出しが遅延しないようにスケジューリングするスケジューラ手段と、
を備えたＡＶファイル分離装置。
【請求項３】
再生すべきファイルのデータおよび他のデータを格納するための記憶手段と、
前記記憶手段に格納されたファイル内のパケットの配置情報と任意の付加情報を関連付けたパケットマップを生成するパケットマップ生成手段と、
前記パケットマップ生成手段によって生成された前記パケットマップをバッファし、任意のタイミングで前記パケットマップを利用することを可能とするためのパケットマップバッファと、
前記パケットマップバッファにバッファされた前記パケットマップをファイルとして前記記憶手段に書き込むためのパケットマップ書き込み手段と、
前記記憶手段に格納された前記ファイルを読み出して、前記パケットマップバッファにバッファするパケットマップ読み出し手段と、
前記パケットマップバッファにバッファされた前記パケットマップを利用して、前記記憶手段に格納されたファイル内のパケットを分離する分離手段と、
前記記憶手段に格納された前記ファイルを検索し、前記ファイルが前記記憶手段内に格納されている場合、前記パケットマップ読み出し手段を用いて前記パケットマップバッファに前記パケットマップをバッファするための判定を行うマップ生成判定手段と、
を備えたＡＶファイル分離装置。
【請求項４】
さらに、前記分離手段が前記パケットマップバッファに格納された前記パケットマップの各データを取り出す際に、時系列に並んだ複数のデータを読み飛ばしながら、時間軸方向の順方向または逆方向に取り出すマップ検索手段を備えた請求項１に記載のＡＶファイル分離装置。
【請求項５】
さらに、複数ファイルのリストを保持するプレイリスト手段と、
前記プレイリスト手段が保持するファイルに対して、前記パケットマップ生成手段を用いて前記パケットマップを生成させるスケジューラ手段と、
複数のパケットマップバッファにバッファされた前記パケットマップを前記分離手段と前記パケットマップ生成手段から選択的にアクセスするためのパケットマップ選択手段とを備え、
前記分離手段は、前記パケットマップ選択手段を通して任意のバッファから前記パケットマップを取り出し、
前記パケットマップ生成手段は、前記パケットマップ選択手段を通して任意のバッファへ前記パケットマップを格納する請求項１に記載のＡＶファイル分離装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーディオデータやビデオデータなどのデータが多重化されたＡＶ（Audio andVisual）ファイルの分離処理を行うＡＶファイル分離装置にかかわり、特には、デコード装置へのデータ供給が、ＡＶファイル内のデータ配置状態によって遅延することがないようにする技術に関する。
【背景技術】
【０００２】
図１は、ＡＶファイルの一例としてＡＳＦ（Advanced StreamingFormat）ファイルの構成を示している。ＡＳＦファイルはオブジェクトと呼ばれるセクションによって構成される。最も大まかな分類を行う場合、ＡＳＦファイルは、ヘッダー・オブジェクト、データ・オブジェクト、インデックス・オブジェクトの３つのオブジェクトに分類することができる。
【０００３】
ヘッダー・オブジェクトはさらに、１以上の複数のオブジェクトを含むことが可能である。ヘッダー・オブジェクトに含まれるオブジェクトによって、ファイルのサイズ、ファイルに含まれるファイルの数、エラー訂正に関する情報、コーデックに関する情報、メタ情報などファイルに関連する一般的な情報が格納される。
【０００４】
データ・オブジェクトは、１以上の複数のパケットから構成されている。各パケットには、１以上の複数のペイロードが含まれている。ペイロードには分割されたエレメンタリーストリームとエレメンタリーストリームのデコード開始時間を示すタイムスタンプ（Presentation Time Stamp：ＰＴＳ）が格納されている。
【０００５】
また、インデックス・オブジェクトには、早送りや巻戻しのような特殊再生を実現するためのインデックス情報が格納される。
【０００６】
図２は、このようなＡＶファイルを再生するための従来のシステム構成を示している（例えば、非特許文献１参照。）。
【０００７】
記憶部１０２には、複数のＡＶファイルが格納されており、ユーザーによってその中の一つが選択される。今、ユーザーが入力部１０９を用いて、記憶部１０２に格納されたＡＶファイルのうち一つを選択すると、選択されたＡＶファイルがＡＶファイルの分離部１０３に通知され、ＡＶファイルの分離処理が開始される。
【０００８】
まず、記憶部１０２に格納されたＡＶファイルは、分離部１０３によって読み出される。記憶部１０２から取り出されたＡＶファイルは分離部１０３によって解析され、オーディオデータとビデオデータに分離される。また、分離されたデータは、それぞれ対応するオーディオバッファ１０４、ビデオバッファ１０５へと供給される。
【０００９】
同期制御部１０６は、ＡＳＦファイルの再生開始からの時間をシステム時刻として計測しており、現在のシステム時刻を定期的にオーディオ再生部１０７とビデオ再生部１０８に通知する。
【００１０】
システム時刻の通知を受けたオーディオ再生部１０７は、オーディオバッファ１０４からシステム時刻より過去のＰＴＳを持つオーディオデータを取り出し、デコードして再生する。
【００１１】
同様に、システム時刻の通知を受けたビデオ再生部１０８は、ビデオバッファ１０５からシステム時刻より過去のＰＴＳを持つビデオデータを取り出し、デコードして再生する。
【非特許文献１】Ｐｉｏｎｅｅｒ Ｒ＆Ｄ 技術情報、“ＭＰＥＧ２−システムの概要”、[online]、[平成１５年１月１９日検索]、インターネット＜ＵＲＬ：1078891886750_0.html＞
【発明の開示】
【発明が解決しようとする課題】
【００１２】
このようなシステムを用いてＡＶデータの再生を行う場合、オーディオバッファ１０４、ビデオバッファ１０５の必要十分なしきい値を設定するのが困難という課題があった。
【００１３】
具体的には、オーディオバッファ１０４のしきい値は、単位時間当たりにオーディオ再生部１０７がデコードするデータ量と分離部１０３によって供給されるオーディオデータ量によって決定される。
【００１４】
同様に、ビデオバッファ１０５のしきい値は、単位時間当たりにビデオ再生部１０８がデコードするデータ量と分離部１０３によって供給されるビデオデータ量によって決定される。
【００１５】
ここで、単位時間当たりに分離部１０３によって供給されるオーディオデータ量は、多重化ストリーム内のオーディオ、ビデオデータの配置状態に依存する。従って、従来の再生システムでは、必要十分なしきい値を設定することができず、一部のストリームの再生を保証することができなかった。
【課題を解決するための手段】
【００１６】
本発明は、上記の課題を解決するために次のような手段を講じる。
【００１７】
本発明によるＡＶファイル分離装置は、再生すべきファイルのデータおよび他のデータを格納するための記憶手段と、前記記憶手段に格納されたファイル内のパケットの配置情報と任意の付加情報を関連付けたパケットマップを生成するパケットマップ生成手段と、前記パケットマップ生成手段によって生成された前記パケットマップをバッファし、任意のタイミングで前記パケットマップを利用することを可能とするためのパケットマップバッファと、前記パケットマップバッファにバッファされた前記パケットマップを利用して、前記記憶手段に格納されたファイル内のパケットを分離する分離手段とを備えたものである。
【００１８】
この構成によれば、ＡＶファイル内のパケット配置情報をＡＶファイルの再生開始前に取得してパケットマップを生成し、パケットマップバッファに蓄積して管理する。そして、パケットマップバッファからパケットマップを取り出し、パケットマップに存在するＡＶファイル内のパケット配置情報を基に記憶手段からＡＶファイル内のデータを読み出し、デコードを行う。このように、ＡＶファイルの再生開始に先立ってあらかじめＡＶファイル内のパケット配置情報を取得しておくので、ＡＶファイル内のデータ配置状態に影響されることなく、デコーダへのデータ供給時間を最適化することができる。
【００１９】
上記構成において、さらに、次のようなスケジューラ手段を備えたものも有効である。そのスケジューラ手段は、前記分離手段による前記パケットマップバッファからの前記パケットマップの取り出しと前記パケットマップ生成手段による前記パケットマップバッファへの前記パケットマップのバッファとを並行して行う場合に、前記分離手段による前記パケットマップバッファからのパケットマップ取り出しが遅延しないようにスケジューリングするものである。
【００２０】
この構成によれば、スケジューラ手段によってＡＶファイルのデコード処理とＡＶファイルのパケットマップ生成処理とを並行的に行わせることによって、パケットマップの生成時間をＡＶファイルのデコード時間に対して最小とし、ＡＶファイルの再生開始前の待ち時間を短縮することができる。
【００２１】
また、上記構成において、さらに、前記パケットマップバッファにバッファされた前記パケットマップをファイルとして前記記憶手段に書き込むためのパケットマップ書き込み手段と、前記記憶手段に格納された前記ファイルを読み出して、前記パケットマップバッファにバッファするパケットマップ読み出し手段と、前記記憶手段に格納された前記ファイルを検索し、前記ファイルが前記記憶手段内に格納されている場合、前記パケットマップ読み出し手段を用いて前記パケットマップバッファに前記パケットマップをバッファするための判定を行うマップ生成判定手段とを備えたＡＶファイル分離装置も有効である。
【００２２】
この構成によれば、一度分離したＡＶファイルのパケットマップ情報をファイルとしてＡＶファイルと共に保存しておき、二度目以降に同じＡＶファイルの分離を行う場合に、過去に保存したパケットマップ情報を利用することで、パケットマップの生成処理を行わなくともパケットマップを利用できる。その結果、ＡＶファイルの分離処理を効率良く行うことができる。
【００２３】
また、上記構成において、さらに、前記分離手段が前記パケットマップバッファに格納された前記パケットマップの各データを取り出す際に、時系列に並んだ複数のデータを読み飛ばしながら、時間軸方向の順方向または逆方向に取り出すマップ検索手段を備えたＡＶファイル分離装置も有効である。
【００２４】
この構成によれば、ＡＶファイル内のデータ配置状態に影響されることなく、デコーダへのデータ供給時間を最適化する機能を発揮しつつ、通常再生以外にも早送り再生、巻き戻し再生など様々な特殊再生を行うことができる。
【００２５】
また、上記構成において、さらに、複数ファイルのリストを保持するプレイリスト手段と、前記プレイリスト手段が保持するファイルに対して、前記パケットマップ生成手段を用いて前記パケットマップを生成させるスケジューラ手段と、複数のパケットマップバッファにバッファされた前記パケットマップを前記分離手段と前記パケットマップ生成手段から選択的にアクセスするためのパケットマップ選択手段とを備えたＡＶファイル分離装置も有効である。この場合、前記分離手段は、前記パケットマップ選択手段を通して任意のバッファから前記パケットマップを取り出すものとし、前記パケットマップ生成手段は、前記パケットマップ選択手段を通して任意のバッファへ前記パケットマップを格納するものとする。
【００２６】
この構成によれば、複数のパケットマップバッファをマップ選択手段によって切り替えて利用することによって、あるＡＶファイルのデコード中に別のＡＶファイルのパケットマップ生成を行うことが可能となり、複数のＡＶファイルを取り扱う場合に、それらのＡＶファイルの分離処理およびデコード処理を効率良く行うことができる。
【発明の効果】
【００２７】
以上のように本発明によれば、ＡＶファイル内のデータの読み出しを、パケットマップに存在するＡＶファイル内のパケット配置情報に従って行うので、データ検索がデータ配置状態から影響を受けずにすみ、データ検索時間を最小化することができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明にかかわるＡＶファイル分離装置の実施の形態を図面に基づいて詳細に説明する。
【００２９】
（実施の形態１）
図３は、本発明の実施の形態１におけるＡＶファイル分離装置を備えたＡＶファイル再生装置の構成を示すブロック図である。
【００３０】
はじめにＡＶファイル再生装置１００が再生するＡＶファイルについて説明する。
【００３１】
ＡＶファイル再生装置１００では、オーディオデータとビデオデータが多重化されたＡＶファイルを再生する。
【００３２】
オーディオデータやビデオデータがＡＶファイルとして多重化される場合、オーディオ、ビデオのそれぞれのデータはパケットとして細分化され、それら細分化されたパケット同士を１つのデータとしてつなぎ合わせることで多重化を行う。
【００３３】
このとき、それぞれのパケットには、多重化されたデータの出力時の同期を取るための情報として、プレゼンテーションタイムスタンプ（Presentation Time Stamp：ＰＴＳ）が付加される。
【００３４】
ＰＴＳはパケットに格納されたデータの再生中における提示時刻を示しており、オーディオデータの場合は、スピーカーから音声として出力される時刻がＰＴＳとして付加され、ビデオデータの場合は、表示手段から映像として出力される時刻がＰＴＳとして付加される。
【００３５】
図４は、ＡＶファイル再生装置１００が再生するＡＶファイルのデータ構成の例を示している。ＡＶファイル４０１にはヘッダ部４０２とデータ部４０３が含まれている。
【００３６】
ヘッダ部４０２には、ＡＶファイルであることを判別するための識別情報４１１、ヘッダ部のサイズを示すヘッダ長４１２、ＡＶファイル全体のサイズを表すファイル長４１３、ＡＶファイルに含まれるデータパケットの個数を表すパケット数４１４が含まれている。
【００３７】
データ部４０３には、１以上の複数のパケット４２１が含まれている。
【００３８】
本発明では、ＡＶファイルに含まれるパケットのパケットサイズは限定しないが、この例においては、ＡＶファイルに含まれるパケットのパケットサイズはすべて固定されているものとする。また、データ部４０３に含まれるパケットの個数はヘッダ部４０２のパケット数フラグ４１４によって示される。
【００３９】
各パケットには、パケットに含まれるデータの種類を表すストリームタイプ４３１、パケットに含まれるデータのサイズを表すデータ長４３２、パケットに含まれるデータの提示時刻を表すＰＴＳ４３３、パケット化されたオーディオストリームやビデオストリームのパケットデータ部４３４が含まれている。
【００４０】
なお、このデータ構成は以降の説明を行うための一例である。別の方法により上記の実施の形態のようなＡＶデータの再生に必要な情報が得られる構成であれば、本発明を適用することができる。
【００４１】
図３において、ＡＶファイル分離装置１０１の構成について説明する。ＡＶファイル分離装置１０１は、記憶部１０２、分離部１０３、パケットマップ生成部１１０、パケットマップバッファ１１１によって構成される。
【００４２】
分離部１０３による出力は、オーディオバッファ１０４とビデオバッファ１０５に供給され、オーディオ再生部１０７とビデオ再生部１０８によってデコードされ出力される。
【００４３】
また、分離部１０３とオーディオ再生部１０７とビデオ再生部１０８の同期制御は同期制御部１０６によって制御される。
【００４４】
さらに、入力部１０９によってユーザー入力が通知され、記憶部１０２に格納された複数のＡＶファイルの中から再生するＡＶファイルが分離部１０３によって選択され、再生、早送り、巻き戻し、停止、一時停止のような再生制御が行われる。
【００４５】
記憶部１０２は、例えばＳＤ（Secure Digital）カードに代表されるメモリーカード、ハードディスクやＤＶＤ−ＲＡＭのようなランダムアクセス可能な記憶装置であるものとする。また、記憶部１０２には、オーディオデータとビデオデータが多重化されたＡＶファイルが格納されるものとする。
【００４６】
まず、パケットマップ生成部１１０は、入力部１０９によって通知されたＡＶファイルを記憶部１０２から読み出して解析し、オーディオデータの格納位置とビデオデータの格納位置を抽出し、任意の付加情報を追加してパケットマップとしてパケットマップバッファ１１１に蓄積する。
【００４７】
次に、パケットマップバッファ１１１に蓄積されるパケットマップの構成について図５を参照しながら説明する。
【００４８】
パケットマップには、２つのリストが含まれる。オーディオマップリスト５０１には、オーディオデータの配置情報が格納され、ビデオマップリスト５０２には、ビデオデータの配置情報が格納される。
【００４９】
それぞれのリストは、エントリ数５１１と複数のエントリ５１２から構成されている。エントリ数５１１には、リストに含まれるエントリの個数が格納される。各エントリは、個々のオーディオパケットやビデオパケットと関連付けされており、対応するパケットのＰＴＳ５２１やパケットのデータ長５２２、パケットの格納位置を示すデータ開始位置５２３から構成される。
【００５０】
データ開始位置としては、例えばＡＶファイルの先頭から対応するパケット内のデータまでのオフセットが格納される。なお、このデータ構成は以降の説明を行うための一例である。別の方法によりデータ開始位置などの必要な情報が得られる構成であれば、本発明を適用することができる。
【００５１】
ここで、分離部１０３は、パケットマップバッファ１１１からパケットマップを取り出し、パケットマップに存在するＡＶファイルのパケット配置情報に従って記憶部１０２からＡＶファイル中のオーディオパケットとビデオパケットを取り出し、それぞれオーディオバッファ１０４、ビデオバッファ１０５に格納する。
【００５２】
同期制御部１０６は、ＡＶファイルの再生開始からの時間をシステム時刻として管理し、オーディオ再生部１０７とビデオ再生部１０８に対してシステム時刻を通知する。
【００５３】
オーディオ再生部１０７は、同期制御部１０６からのシステム時刻の通知を受けて、オーディオバッファ１０４からオーディオデータを取り出し、デコードして、スピーカーなどから音声として再生する。
【００５４】
また、ビデオ再生部１０８は、同期制御部１０６からのシステム時刻の通知を受けて、ビデオバッファ１０５からビデオデータを取り出し、デコードして、ディスプレイなどから映像として再生する。
【００５５】
次に、ＡＶファイル分離部１０３の分離処理について、図６のフローチャートを用いて説明する。
【００５６】
今、記憶部１０２に格納されたＡＶファイルが入力部１０９によって選択され、ＡＶファイルの分離部１０３に対して再生開始が通知されたとき、ステップＳ１において、図３の分離部１０３は記憶部１０２に格納されたＡＶファイルの中から入力部１０９によって通知されたＡＶファイルを選択し、そのＡＶファイルの種類を特定する。
【００５７】
さらに、ステップＳ２において、分離可能なファイルタイプであるかどうかを判定する。具体的には、分離部１０３は、ＡＶファイルの先頭部分を読み出して、ファイルの識別情報４１１を取得する。分離部１０３は、取得した識別情報４１１を解析して対応可能なファイルであるかどうかを判定する。
【００５８】
例えば、ＡＶファイルとしてＡＳＦファイルが用いられているとすると、図４のＡＳＦファイルのヘッダ部４０２の先頭部分には、ＡＳＦのヘッダ部の先頭であることを示す識別ＩＤが１６バイトのサイズで格納されている。従って、分離部１０３はこの識別ＩＤを取り出し、値を確認することで分離可能なファイルであるかどうかを判定することができる。
【００５９】
ステップＳ２において分離部１０３が分離可能なファイルタイプではないと判定した場合（ＡＳＦのヘッダ部を表す識別ＩＤが得られなかった場合）は、以降の分離処理を行わずに、処理を終了する。
【００６０】
ステップＳ２おいて分離部１０３が分離可能なファイルタイプであると判定した場合（ＡＳＦヘッダ部を表す識別ＩＤが得られた場合）は、ステップＳ３に移行して、ヘッダ部４０２の解析処理を行う。
【００６１】
具体的には、ＡＶファイルのデータ部４０３を解析するための情報をヘッダ部４０２から取得し、パケットマップ生成部１１０に通知する。
【００６２】
より具体的には、ヘッダ部４０２からヘッダ部のサイズを表すヘッダ長４１２、ＡＶファイルのサイズを表すファイル長４１３、データ部４０３に含まれるパケットの個数を表すパケット数４１４をそれぞれ取得し、分離部１０３に通知する。
【００６３】
このとき、同時にヘッダ部４０２に格納されたＡＶファイルのメタ情報などを取得することもできる。
【００６４】
ステップＳ３においてＡＶファイルのデータ部４０３を解析するための情報を通知されたパケットマップ生成部１１０は、ステップＳ４において、ＡＶファイルのデータ部４０３を解析してパケットマップバッファ１１１に、ＡＶファイル内のオーディオデータとビデオデータの格納位置に関する情報を格納する。
【００６５】
さらにステップＳ４において、ＡＶファイルのデータ部の解析を行う。
【００６６】
ステップＳ４におけるデータ部の解析処理の詳細について、図７のフローチャートを用いて説明する。
【００６７】
まず、ステップＳ１１において、パケットマップ生成部１１０は、ＡＶファイルのヘッダ部４０２からパケット数４１４を取得する。
【００６８】
次に、ステップＳ１２において、パケット４２１−１からストリームタイプ４３１、データ長４３２、ＰＴＳ４３３を取得し、同時に、データ４３４のＡＶファイル内における格納位置について計算し、それぞれについてパケットマップバッファ１１１に通知する。
【００６９】
通知を受けたパケットマップバッファ１１１は、ステップＳ１３において、ストリームタイプによってパケットマップリストを選択し、リストの先頭のエントリ５１２−１に、通知されたＰＴＳとデータ長、データの格納位置をそれぞれＰＴＳ５２１、データ長５２２、データ開始位置５２３に格納する。また、格納した後、エントリ数５１１に格納されている値を１増加させる。なお、エントリ数５１１の初期値は０であるとする。
【００７０】
次に、ステップＳ１４において、すべてのパケットについて解析が完了したかを判定する。具体的には、ステップＳ１１で取得したパケット数とこれまでに解析したパケット数を比較する。
【００７１】
解析したパケット数がステップＳ１１で取得したパケット数よりも少ない場合は、再度ステップＳ１２、ステップＳ１３を実行する。
【００７２】
解析したパケット数がステップＳ１１で取得したパケット数と同じ場合には、データ部の解析処理を終了する。
【００７３】
図６に戻って、ステップＳ５においては、ステップＳ４で行われたデータ部の解析処理の結果を利用してＡＶファイル内から実際にオーディオデータやビデオデータを取り出す処理を行う。
【００７４】
次に、ステップＳ５のデータ取り出し処理について、図８のフローチャートを用いて説明する。
【００７５】
ステップＳ２１では、分離部１０３は、パケットマップバッファ１１１内のオーディオマップリスト５０１中から取り出していないオーディオパケットマップエントリが存在するかどうかを判定する。
【００７６】
取り出していないオーディオパケットマップエントリが存在しない場合は、ステップＳ２６へ飛ぶ。
【００７７】
取り出していないオーディオパケットマップエントリが存在する場合は、ステップＳ２２以降の処理を繰り返す。
【００７８】
このとき、パケットマップバッファ１１１内において、オーディオパケットマップ参照位置情報を管理し、オーディオパケットマップ参照位置情報と、オーディオパケットマップリスト５０１中のエントリ数５１１を比較することで、オーディオパケットマップリスト５０１からパケットマップエントリが取り出せるかどうかを判定する方法を用いても良い。
【００７９】
ステップＳ２２では、オーディオバッファ１０４内のデータ量を確認し、しきい値以上かどうかを判定する。
【００８０】
オーディオバッファ１０４内のデータ量がしきい値以上であれば、ステップＳ２６へ飛ぶ。
【００８１】
オーディオバッファ１０４内のデータ量がしきい値に満たない場合には、ステップＳ２３、ステップＳ２４、ステップＳ２５の処理を繰り返す。
【００８２】
ステップＳ２３において、分離部１０３は、パケットマップバッファ１１１内のオーディオマップリスト５０１からパケットマップエントリをパケットマップエントリが持つＰＴＳ順に取り出す。
【００８３】
次に、ステップＳ２４において、分離部１０３は、ステップＳ２３で取り出したパケットマップエントリの内容に従って記憶部１０２から目的のデータを読み出す。
【００８４】
具体的には、パケットマップエントリ中のデータ開始位置５２３とデータ長５２２の値を用いてデータの読み出しを行う。
【００８５】
読み出したデータは、ステップＳ２５において、オーディオバッファ１０４へと格納する。このとき、分離部１０３は、オーディオ再生部１０７がデータを取り出すための情報としてパケットマップエントリ中のＰＴＳ５２１やデータ長５２２を同時にオーディオバッファ１０４に格納しても良い。
【００８６】
ステップＳ２６では、分離部１０３は、パケットマップバッファ１１１内のビデオパケットマップリスト５０２中から取り出していないビデオパケットマップエントリが存在するかどうかを判定する。
【００８７】
取り出していないビデオパケットマップエントリが存在しない場合は、データ取り出し処理は完了する。
【００８８】
取り出していないオーディオパケットマップエントリが存在する場合には、ステップＳ２７以降の処理を繰り返す。
【００８９】
このとき、パケットマップバッファ１１１内において、ビデオパケットマップ参照位置情報を管理し、ビデオパケットマップ参照位置情報と、ビデオパケットマップリスト５０２中のエントリ数５１１を比較することで、ビデオパケットマップリスト５０２からパケットマップエントリが取り出せるかどうかを判定する方法を用いても良い。
【００９０】
ステップＳ２７では、ビデオバッファ１０５内のデータ量を確認し、しきい値以上かどうかを判定する。
【００９１】
ビデオバッファ１０５内のデータ量がしきい値以上であれば、データ取り出し処理を完了する。
【００９２】
ビデオバッファ１０５内のデータ量がしきい値に満たない場合には、ステップＳ２８、ステップＳ２９、ステップＳ３０の処理を繰り返す。
【００９３】
ステップＳ２８では、分離部１０３は、パケットマップバッファ１１１内のビデオマップリストからパケットマップエントリをＰＴＳ順に取り出す。
【００９４】
次に、ステップＳ２９において、分離部１０３は、ステップＳ２８で取り出したパケットマップエントリの内容に従って記憶部１０２から目的のデータを読み出す。
【００９５】
具体的には、パケットマップエントリ中のデータ開始位置５２３とデータ長５２２の値を用いてデータの読み出しを行う。
【００９６】
読み出したデータは、ステップＳ３０において、ビデオバッファ１０５へと格納する。このとき、分離部１０３は、ビデオ再生部１０８がデータを取り出すための情報としてパケットマップエントリ中のＰＴＳ５２１やデータ長５２２を同時にビデオバッファ１０５に格納しても良い。
【００９７】
なお、ステップＳ２１からステップＳ２５までの手順と、ステップＳ２６からステップＳ３０までの手順は順序が入れ替わっても良いし、並行に行うことにしても良い。
【００９８】
再度、図６に戻って、ステップＳ６では、オーディオ再生部１０７やビデオ再生部１０８がデコードを開始しなければならないオーディオデータ、ビデオデータをオーディオバッファ１０４とビデオバッファ１０５から検索する。
【００９９】
具体的には、同期制御部１０６が現在のシステム時刻をオーディオ再生部１０７とビデオ再生部１０８に通知する。
【０１００】
本発明では、システム時刻の単位について特に限定しないが、ＡＶファイル内のデータに付加されたＰＴＳの単位と同じ単位を用いる必要がある。
【０１０１】
例えばＡＳＦファイルの場合、各データには、ミリ秒単位でＰＴＳが付加されているため、システム時刻もミリ秒単位で計測する必要がある。
【０１０２】
オーディオ再生部１０７は、通知されたシステム時刻よりも過去のＰＴＳを持つオーディオデータをオーディオバッファ１０４内から検索し、ステップＳ７を実行する。
【０１０３】
オーディオバッファ１０４内に該当するオーディオデータが存在しない場合は、ステップＳ７は実行せずに、ステップＳ８へと飛ぶ。
【０１０４】
オーディオバッファ１０４内に該当するオーディオデータが複数存在する場合は、すべてのオーディオデータについて順次ステップＳ７を実行する。
【０１０５】
同様に、ビデオ再生部１０８は、通知されたシステム時刻よりも過去のＰＴＳを持つビデオデータをビデオバッファ１０５内から検索し、ステップＳ７を実行する。
【０１０６】
ビデオバッファ１０５内に該当するビデオデータが存在しない場合は、ステップＳ７は実行せずにステップＳ８へと飛ぶ。
【０１０７】
ビデオバッファ１０５内に該当するビデオデータが複数存在する場合は、すべての該当するビデオデータについて順次ステップＳ７を実行する。
【０１０８】
実際のＡＶファイル再生装置では、デコードには有限の時間が必要となるが、この例では、ＭＰＥＧ１のＳＴＤ（System Target Decoder、ＭＰＥＧ−１のオーディオ／ビデオの同期再生やバッファ管理をモデル化したデコーダ）の例に倣って、デコーダによるデータのデコード時間を０として扱っている。しかし、デコーダによるデータのデコード時間があらかじめ判明している場合は、ＰＴＳとシステム時刻との比較時にデコード時間を加味した比較を行う方法を用いても良い。
【０１０９】
ステップＳ７では、ステップＳ６でオーディオバッファ１０４やビデオバッファ１０５から取り出されたオーディオデータやビデオデータをデコードし、音声や映像としてオーディオ再生部１０７とビデオ再生部１０８から出力する。
【０１１０】
ステップＳ８においては、すべてのデータについてデコードが完了したかどうかについて判定する。
【０１１１】
すべてのデータについてデコードが完了している場合は、ＡＶファイルの再生処理は完了する。
【０１１２】
すべてのデータについてのデコードが完了していない場合は、ステップＳ５まで処理を戻す。
【０１１３】
本実施の形態によれば、ＡＶファイル内のパケット配置情報をＡＶファイルの再生開始前に取得してパケットマップを生成し、パケットマップバッファに蓄積し、さらに、パケットマップバッファからパケットマップを取り出し、パケットマップに存在するＡＶファイル内のパケット配置情報を基に記憶手段からＡＶファイル内のデータを読み出し、デコードを行う。すなわち、ＡＶファイルの再生開始に先立ってあらかじめＡＶファイル内のパケット配置情報を取得しておくので、ＡＶファイル内のデータ配置状態に影響されることなく、デコーダへのデータ供給時間を最適化することができる。
【０１１４】
（実施の形態２）
図９は、本発明の実施の形態２におけるＡＶファイル分離装置を備えたＡＶファイル再生装置の構成を示すブロック図である。
【０１１５】
上記の実施の形態１では、分離部１０３によるオーディオバッファ１０４、ビデオバッファ１０５へのデータ供給が、ＡＶファイル内のデータ配置状態によって遅延することがないようにしている。しかし、ユーザーがＡＶファイルの再生開始を指示した後、パケットマップ生成時間分の経過の後にＡＶファイルの再生処理が開始される。つまり、ＡＶファイルの再生前にパケットマップ生成時間が必要となるという課題が残っている。
【０１１６】
そこで、ＡＶファイル再生前のパケットマップ生成時間を短縮することを本実施の形態によって達成する。
【０１１７】
本実施の形態のＡＶファイル再生装置１００は、ＡＶファイルの再生処理の前に、ＡＶファイルのデータ部を解析した上でパケットマップを生成し、次いで生成したパケットマップに従ってＡＶファイルの再生を実行するが、一部のパケットマップの生成をＡＶファイルの再生処理と並行して行うものである。
【０１１８】
具体的には、図９に示すように、スケジューラ１１２を用いてパケットマップ生成処理をスケジューリングすることによって一部のパケットマップ生成をＡＶファイルの再生処理と並行動作させる。
【０１１９】
ユーザーがＡＶファイルの再生開始を指示してから、一部のパケットマップ生成を実行し、その後、残りのパケットマップ生成をＡＶファイルの再生処理と共に並行して行う。このことにより、再生開始前の遅延時間を短縮することができる。
【０１２０】
分離部１０３による記憶部１０２からのデータ読み出しの平均速度は、再生中のＡＶファイルのビットレートに依存する。一般的には、ＡＶファイルのビットレートよりも記憶部１０２からの読み出し速度の方が高速である場合が多い。したがって、分離部１０３による記憶部１０２からのデータ読み出しと、パケットマップ生成部１１０によるマップ生成とを並行しても、分離部１０３によって目的のパケットマップが要求されるまでの間にパケットマップ生成部１１０が目的のパケットマップ生成を完了していれば、再生処理を成立させることができる。
【０１２１】
具体的には、パケットマップ生成部１１０によってｎ番目のパケットマップＰm（ｎ）が生成される時刻をＴcre（ｎ）とし、そのパケットマップのデータが分離部１０３によって要求される時刻をＴreq（ｎ）として、式（１）のように時刻Ｔcre（ｎ）が時刻Ｔreq（ｎ）よりも早ければ、分離部１０３によるパケットマップＰm（ｎ）の要求に対して十分に対応できると言える。
【０１２２】
Ｔcre（ｎ）＜Ｔreq（ｎ）    ……………………………………………（１）
ところで、ＡＶファイル内のオーディオデータの格納位置とビデオデータの格納位置とはＡＶファイルごとに異なるため、あるｎ番目のパケットマップ生成時刻がパケットマップ要求時刻に対して間に合ったからといって、ｎ＋１番目のパケットマップ生成時刻がｎ＋１番目のパケットマップ要求時刻に間に合うとは限らない。したがって、以下の式は常に成り立つわけではない。
【０１２３】
Ｔcre（ｎ＋１）−Ｔcre（ｎ）＜Ｔreq（ｎ＋１）−Ｔreq（ｎ）……（２）
ここで、Ｔreq（ｎ＋１）とＴreq（ｎ）の差はｎの値によらずに常に一定であるが（デコーダによるデータ要求周期に依存するため）、Ｔcre（ｎ＋１）とＴcre（ｎ）の差は、ＡＶファイル内のデータ配置状態に依存するため、一定とはならない。
【０１２４】
そこで、
Ｔcre（ｎ＋１）−Ｔcre（ｎ）＜Ｔreq（ｎ＋１）−Ｔreq（ｎ）……（３）
の式がｎの値によらずに成立する（ｎ−１）までのパケットマップを再生前に生成しておき、残りの（ｎ）以降のパケットマップの生成をデータの再生と並行させる。すなわち、パケットマップ生成とデータ再生の並列動作を実現する。
【０１２５】
例えば、オーディオデータとビデオデータが多重化されたＡＶファイルにおいて、オーディオデータのパケットマップを生成する場合は、その最短時間をＴminで表すこととする。
【０１２６】
Ｔminは、パケットマップを生成するために必要な情報をＡＶファイルから読み出すための最短時間であり、２つのオーディオデータ、Ａ（ｎ）とＡ（ｎ＋１）が隣接してＡＶファイル内に配置されている場合は、Ａ（ｎ＋１）のパケットマップを生成する時間はＴminとなる。Ｔminは、ＡＶファイル内のデータ配置状態によらずに一定の値となり、記憶部１０２からのデータ読み出し速度にのみ依存する。
【０１２７】
逆に、パケットマップを生成するための最長時間をＴmaxで表すこととする。例えば、２つのオーディオデータＡ（ｎ）とＡ（ｎ＋１）の間にすべてのビデオパケットが含まれている場合は、Ａ（ｎ＋１）のパケットマップを生成する時間はＴmaxとなる。
【０１２８】
このとき、Ａ（ｎ）とＡ（ｎ＋１）の間のすべてのビデオパケットは隣接してＡＶファイル内に配置されていることになる。したがって、これらのパケットのパケットマップ生成時間は、Ｔminとなることが容易に想像できる。
【０１２９】
同時に、Ａ（ｎ）とＡ（ｎ＋１）以外のオーディオパケットも隣接して配置されていることになる。したがって、これらのパケットのパケットマップ生成時間もＴminとなることが想像できる。
【０１３０】
そこで、ある時刻ｔまでに生成されたパケットマップ数をｎ−１とすると、Ａ（ｎ）のパケットマップを生成する時間ＴＡmax（ｎ）は、ＡＶファイル中に含まれるビデオパケット数をＮv、時刻ｔの時点ですでにパケットマップを生成したビデオパケット数をＮvr（ｎ）とすると、以下の式で表される。
【０１３１】
ＴＡmax（ｎ）＝（Ｎv−Ｎvr（ｎ）＋１）×Ｔmin    …………………（４）
また、ｎ＝０のとき、
ＴＡmax（０）＝（Ｎv＋１）×Ｔmin    …………………………………（５）
となり、最大となる。
【０１３２】
また、Ｎv＝Ｎvr（ｎ）の場合（すなわち、すべてのビデオパケットのパケットマップ生成が完了している場合）は、
ＴＡmax（ｎ）＝Ｔmin    …………………………………………………（６）
となり、最小となる。
【０１３３】
同様にビデオデータのパケットマップ生成の最大時間ＴＶmax（ｎ）は、ＡＶファイルに含まれるオーディオパケット数をＮa、時刻ｎの時点ですでにパケットマップを生成したオーディオパケット数をＮar（ｎ）とすると、
ＴＶmax（ｎ）＝（Ｎa−Ｎar（ｎ）＋１）×Ｔmin    …………………（７）
また、ｎ＝０のとき、
ＴＶmax（０）＝（Ｎa＋１）×Ｔmin    …………………………………（８）
となり、最大となる。
【０１３４】
また、Ｎa＝Ｎar（ｎ）の場合（すなわち、すべてのオーディオパケットのパケットマップ生成が完了している場合）は、
ＴＶmax（ｎ）＝Ｔmin    …………………………………………………（９）
となり、最小となる。
【０１３５】
ここで、再生開始前にＡＶファイル内のｍ個のパケットについてパケットマップを生成しているとする場合は、再生開始後のオーディオパケットマップの最大生成時間ＴＡmax（ｍ）は、以下の式で表される。
【０１３６】
ＴＡmax（ｍ）＝（Ｎv−Ｎvr（ｍ）＋１）×Ｔmin    ………………（１０）
次に、分離部１０３がパケットマップを要求する周期をＴＡcycとすると、再生開始前に生成されたｍ個のパケットマップがすべて消費されるまでの時間ＴＡcsm（ｍ）は、
ＴＡcsm（ｍ）＝Ｎar（ｍ）×ＴＡcyc    ………………………………（１１）
同様にビデオパケットマップの最大生成時間ＴＶmax（ｍ）とパケットマップの消費時間はＴＶcsm（ｍ）は、
ＴＶmax（ｍ）＝（Ｎa−Ｎar（ｍ）＋１）×Ｔmin    ………………（１２）
ＴＶcsm（ｍ）＝Ｎvr（ｍ）×ＴＶcyc    ………………………………（１３）
このとき、ＴＡmaxとＴＶmaxはｍ＝０のとき最大であり、ｍ＝Ｎa＋Ｎvのとき最小（０）となる。
【０１３７】
そのため、以下の式を満足する最小のｍが、パケットマップ生成部１１０が分離部１０３からの要求に対してパケットマップの供給を保証できるｍであるといえる。
【０１３８】
ＴＡmax（ｍ）＜ＴＡcsm（ｍ）    ……………………………………（１４）
ＴＶmax（ｍ）＜ＴＶcsm（ｍ）    ……………………………………（１５）
そこで、式（１４）を変形して、
（Ｎv−Ｎvr（ｍ）＋１）×Ｔmin＜Ｎar（ｍ）×ＴＡcyc  …………（１６）
ｍ＝Ｎar（ｍ）＋Ｎvr（ｍ）    ………………………………………（１７）
であることから、
Ｎvr（ｍ）＝ｍ−Ｎar（ｍ）    ………………………………………（１８）
を適用して、
（Ｎv−（ｍ−Ｎar（ｍ））＋１）×Ｔmin＜Ｎar（ｍ）×ＴＡcyc…（１９）
−ｍ＜（Ｎar（ｍ）×ＴＡcyc−Ｎv−Ｎar（ｍ）−１）／Ｔmin
ｍ＞（Ｎv＋Ｎar（ｍ）＋１−Ｎar（ｍ）×ＴＡcyc）／Ｔmin
ｍ＞（Ｎv＋Ｎar（ｍ）×（１−ＴＡcyc）＋１）／Ｔmin    ………（２０）
同様にビデオパケットの場合は、以下の式で表される。
【０１３９】
ｍ＞（Ｎa＋Ｎvr（ｍ）×（１−ＴＶcyc）＋１）／Ｔmin    ………（２１）
ＡＶファイル中の式５、式６の両方を満足するｍで表される個数のパケットについてのパケットマップの生成が完了した時点で、パケットマップ生成部１１０が分離部１０３からの要求に対してパケットマップの供給を保証できると言える。
【０１４０】
なお、Ｎar（ｍ）、Ｎvr（ｍ）はｍの関数で表されるため、ｍは、マップ生成開始前に知ることはできず、ｍ個のパケットマップを生成した後に式（２０）、式（２１）を判定することによって、パケットマップの供給を保証できるｍであることが判明する。
【０１４１】
以降の説明では、ある時間までに読み出されたパケット数ｍが式（２０）、式（２１）を満たすことを、“再生成立条件を満たす”と表現することにする。
【０１４２】
次に、パケットマップ生成と再生処理を並行に行う場合の処理の流れを、図１０に示すフローチャートを用いて説明する。
【０１４３】
図１０のステップＳ１からステップＳ３までの処理は、図６のステップＳ１からステップＳ３までの処理と同様であるため、ここでは説明を省略する。
【０１４４】
ステップＳ３において、ヘッダ部の解析を行った後、ステップＳ４０において、データ部の解析処理２を実行する。
【０１４５】
データ部の解析処理２の詳細な流れについて、図１１のフローチャートを用いて説明する。
【０１４６】
データ部の解析処理２では、まずステップＳ４２において、ＡＶファイル内のすべてのパケットについてパケットマップの生成が完了しているかどうかを判定する。
【０１４７】
もし、ＡＶファイル内のすべてのパケットについてパケットマップが生成されているならば、データ部の解析処理２は終了する。
【０１４８】
ＡＶファイル内のすべてのパケットについてのパケットマップが生成されていないならば、ステップＳ１１、ステップＳ１２、ステップＳ１３の処理を実行する。
【０１４９】
図１０に戻って、ステップＳ４１において、生成されたパケットマップの状態から再生成立条件の判定を行う。
【０１５０】
再生成立条件が成立していない場合には、ステップＳ４０に戻り、データ部の解析処理２を実行する。
【０１５１】
再生成立条件が成立している場合には、ステップＳ５に移行して、データの取り出し処理を実行する。
【０１５２】
ステップＳ５において取り出されたデータは、オーディオバッファ１０４、ビデオバッファ１０５に一時的に格納され、ステップＳ６において、システム時刻がデータのＰＴＳに達するのを待ってから、ステップＳ７において、対応するオーディオ再生部１０７、ビデオ再生部１０８によって復号化され、音声や映像として再生される。
【０１５３】
さらにステップＳ８において、すべてのパケットについて再生が完了したかどうかを判定し、すべてのパケットについての再生が完了していなければ、再度ステップＳ４０からの手順を繰り返す。
【０１５４】
すべてのパケットについての再生が完了していれば、再生処理は終了される。
【０１５５】
図６においては、ステップＳ４のデータ解析処理によって、ＡＶファイル内のすべてのデータについて解析を行ってから、ステップＳ５のデータ取り出し処理を実行していた。
【０１５６】
これに対して、図１０においては、ステップＳ４０のデータ解析処理２をステップＳ４１における再生成立条件が成立するまで実行した後、ステップＳ５のデータ取り出し処理が実行される。すなわち、全データについての解析完了を待たずに、再生成立条件が１回でも成立すれば、直ちにデータ取り出しに移行することにしている。そのため、図１０の方法では、図６と比較すると、再生処理開始からステップＳ５のデータ取り出し処理開始までの時間を大幅に短縮することができる。ステップＳ５のデータ取り出し処理開始までの時間が短縮されると、ＡＶファイル再生時の映像、音声データの最初の出力までの時間が短縮される。すなわち、ユーザーがＡＶファイル再生装置１００に再生処理を指示してから、実際に再生処理が開始されるまでの時間が短縮されることになる。
【０１５７】
なお、ステップＳ４０、ステップＳ５、ステップＳ７の処理はそれぞれに並行に実行することにしてもよい。
【０１５８】
（実施の形態３）
図１２は、本発明の実施の形態３におけるＡＶファイル分離装置を備えたＡＶファイル再生装置の構成を示すブロック図である。
【０１５９】
このＡＶファイル分離装置は、一度分離したＡＶファイルのパケットマップ情報をファイルとしてＡＶファイルと共に保存しておき、二度目以降に同じＡＶファイルの分離を行う場合に、過去に保存したパケットマップ情報を利用することで、パケットマップの生成処理を行わなくともパケットマップを利用できるようにしたものである。
【０１６０】
図１２において、マップ書き込み部１１４は、パケットマップバッファ１１１に格納されたパケットマップリストをファイルとして記憶部１０２に書き込む。マップ読み出し部１１３は、マップ書き込み部１１４によって記憶部１０２に書き込まれたパケットマップリストのファイルを読み出してパケットマップバッファ１１１に格納する。
【０１６１】
また、マップ生成判定部１１５は、選択されたＡＶファイルのパケットマップリストを記録したファイルが記憶部１０２に格納されているかどうかを判定し、格納されていなければ、パケットマップ生成部１１０を制御してパケットマップを生成し、格納されていれば、マップ読み出し部１１３を制御してパケットマップリストを記録したファイルを読み出してパケットマップバッファ１１１に格納させる。
【０１６２】
実施の形態３における処理の流れを、図１３に示すフローチャートを用いて説明する。
【０１６３】
図１３において、ステップＳ１からステップＳ３までは、図６における処理と同様であるため、説明は省略する。
【０１６４】
ユーザーによって選択されたＡＶファイルは、入力部１０９から通知され、そのパケットマップ情報ファイルが記憶部１０２に格納されているとする。ステップＳ５０において、図１２のマップ生成判定部１１５は、パケットマップ情報ファイルが記憶部１０２に格納されているかどうかを判定する。
【０１６５】
選択されたＡＶファイルについてのパケットマップ情報ファイルが記憶部１０２に格納されている場合は、ステップＳ５１に移行して、マップ読み出し部１１３を制御して対象のパケットマップ情報ファイルを読み出してパケットマップバッファ１１１に格納する。
【０１６６】
選択されたＡＶファイルについてのパケットマップ情報ファイルが記憶部１０２に格納されていない場合は、ステップＳ４に移行して、パケットマップ生成部１１０を制御してパケットマップの生成を行い、パケットマップバッファ１１１にパケットマップを格納する。
【０１６７】
この後、ステップＳ５、ステップＳ６、ステップＳ７、ステップＳ８の手順は図６のフローチャートと同様の手順であるため、説明は省略する。
【０１６８】
最後にステップＳ５２において、マップ書き込み部１１４によって、パケットマップバッファ１１１に格納されたパケットマップリストをファイルとして記憶部１０２に書き込む。
【０１６９】
このとき、すでにパケットマップ情報ファイルが記憶部１０２に格納されている場合は、書き込み処理を省略しても良い。
【０１７０】
本発明は、パケットマップリストの判定および書き込み方法については限定しないが、具体的な説明を行うために、以下にファイルの判定と書き込み方法の例を示す。
【０１７１】
まず、書き込みを行う場合、パケットマップリストを書き込むファイルのファイル名には、対応するＡＶファイル名を特定の方法で修飾したファイル名を利用する。
【０１７２】
例えば、ファイル名に特定のプレフィクス、サフィックスを付加したり、拡張子を変更するなどの方法が考えられる。修飾された結果、新たに生成されるファイル名は他のファイルのファイル名と同一にならないように、ユニークな修飾方法を用いるべきである。
【０１７３】
この方法によって、ＡＶファイルに対応するパケットマップ情報ファイルが存在するかどうかの判定を行う場合に、ファイル名の判定だけで対応することが可能となり、容易に対応することができる。
【０１７４】
また、パケットマップ情報ファイルの生成後に、対応するＡＶファイルが編集されて、パケットマップ情報ファイルの内容とＡＶファイルの内容が整合性が取れないものになってしまった場合は、パケットマップ情報ファイルを一旦破棄して、新しいパケットマップリストをファイルに書き込む必要がある。
【０１７５】
パケットマップリストを書き込むときのＡＶファイルの最終更新時間と、選択されたＡＶファイルの最終更新時間とを比較して、それぞれの最終更新時間が同一の場合のみ、パケットマップ情報ファイルとＡＶファイルの関連があると判定することで、ＡＶファイルが更新されたことを知ることができる。
【０１７６】
同様に、パケットマップリストを書き込むときのＡＶファイルのファイルサイズと、選択されたＡＶファイルのファイルサイズとを比較することにより、さらに精度の高い判定が可能となる。
【０１７７】
本実施の形態によれば、過去に保存したパケットマップ情報を利用することで、二度目以降に同じＡＶファイルの分離を行う場合には、パケットマップの生成処理を行わなくてもよい。したがって、ＡＶファイルの分離処理を効率良く行うことができる。
【０１７８】
（実施の形態４）
図１４は、本発明の実施の形態４におけるＡＶファイル分離装置を備えたＡＶファイル再生装置の構成を示すブロック図である。
【０１７９】
これまでの構成例では、ＡＶファイルの通常再生のみを扱ってきたが、実際のＡＶファイル再生装置では、通常再生以外にも早送り再生、巻き戻し再生など様々な特殊再生を行う。例えば早送り再生は、早送り再生を開始したパケットから第１の時間間隔分に相当するパケットを読み飛ばした後、第２の時間間隔分に相当するパケットを通常どおり再生し、再び第１の時間間隔分に相当するパケットを読み飛ばして再生することを繰り返すことで実現する。
【０１８０】
このとき、第１の時間間隔と第２の時間間隔を調整することによって、早送り速度を調整する。すなわち、それぞれの時間間隔を長くするほど、早送り速度は高速になり、短くするほど早送り速度は低速となる。
【０１８１】
逆に、巻き戻し再生は、巻き戻し再生を開始したパケットから第１の時間間隔分に相当するパケットを逆方向に検索して読み飛ばした後、第２の時間間隔分に相当するパケットを通常どおり再生し、再び第１の時間間隔分に相当するパケットを逆方向に検索して読み飛ばして再生することを繰り返すことで実現する。
【０１８２】
このＡＶファイル分離装置は、分離部１０３がマップ検索部１１６を用いてパケットマップバッファ１１１からパケットマップを取得することで、パケットマップバッファ１１１から任意のＰＴＳを持つパケットマップを高速に検索することが可能となるようにしたものである。
【０１８３】
ＡＶファイル再生装置１００において、早送り再生を実現する場合は、復号化されたデータをデータのＰＴＳ順に並べて順次出力装置から再生する通常再生と異なり、現在再生中のデータのＰＴＳに対して、所定時間後のＰＴＳを持つデータを取り出して再生する。
【０１８４】
このような場合、分離部１０３はパケットマップバッファ１１１から順次パケットマップを取り出して目的のＰＴＳをもつパケットマップを検索する必要がある。
【０１８５】
逆に、巻き戻し再生を行う場合、現在再生中のデータのＰＴＳに対して所定時間前のＰＴＳを持つデータを取り出して再生する。
【０１８６】
このような場合、分離部１０３はパケットマップバッファ１１１から逆順にパケットマップを取り出して目的のＰＴＳをもつパケットマップを検索する必要がある。
【０１８７】
検索に要する時間は、個々のパケットマップに付加されたＰＴＳの差の大きさに依存するが、ＰＴＳの差の大きさは、デコード中のＡＶファイルのデータ配置状態に依存するため、一意に決定することができない。
【０１８８】
そこで、本実施の形態では、マップ検索部１１６を設けることで任意のＰＴＳを持つパケットマップを検索するための時間を一意に決定可能なようにすることを目的としている。
【０１８９】
図１４の実施の形態において、マップ検索部１１６は、例えば図１５に示すようなデータ構成図から目的のＰＴＳをもつパケットマップを検索する。
【０１９０】
なお、本発明は、データ構成図の構成は限定しないが、ここでは具体的な例を説明するために、図１５に示すデータ構成図を利用する。次に、図１５のデータ構成図について説明する。
【０１９１】
このデータ構成図では、一定の時間区間に含まれるＰＴＳを持つパケットマップエントリ同士をグルーピングして管理している。ある時間区間には、０個以上のパケットマップエントリが含まれる。また、ある時間区間に含まれるパケットマップエントリの集合を時間区間に属するパケットマップグループと呼ぶこととする。
【０１９２】
パケットマップグループごとに含まれるパケットマップエントリの個数は一定ではないが、パケットマップグループが属する時間区間の長さは常に一定である。
【０１９３】
あるパケットマップグループは、ヘッダ部１５０１とリスト状に接続された０個以上のリスト部１５０２によって構成される。
【０１９４】
ヘッダ部１５０１には、連続した時間区間における直前のパケットマップグループのヘッダ部を指すＰポインタ１５１１と、連続した時間区間における直後のパケットマップグループのヘッダ部を指すＮポインタ１５１２と、リスト部を指すＳポインタ１５１３によって構成されている。
【０１９５】
リスト部１５０２は、パケットマップの内容であるＰＴＳ１５２１とデータ長１５２２、データ位置１５２３、同じパケットマップグループに属する次のＰＴＳを持つパケットマップを指すＳポインタ１５２４によって構成されている。
【０１９６】
このデータ構成図を用いて通常再生を行う場合のパケットマップの検索方法について、図１６に示すフローチャートを用いて説明する。
【０１９７】
ステップＳ１６０１において、再生開始位置から検索を開始するパケットマップグループを特定し、ヘッダ部を特定する。
【０１９８】
ステップＳ１６０２において、ヘッダ部のＳポインタがＮＵＬＬ（何も指していないことを示す特別な値）の場合は、パケットマップグループには、パケットマップが含まれていないので、ステップＳ１６０７において、次のパケットマップグループの検索を行う。
【０１９９】
ヘッダ部のＳポインタがＮＵＬＬでない場合は、パケットマップグループ内にパケットマップが含まれているのでパケットマップの検索を行う。
【０２００】
ステップＳ１６０３において、ヘッダ部のＳポインタが指すリスト部を特定する。
【０２０１】
ステップＳ１６０４において、特定したリスト部からパケットマップ情報を取り出す。取り出したパケットマップ情報は、ステップＳ１６０５において、分離部１０３に通知される。
【０２０２】
ステップＳ１６０５までの手順によってパケットマップ情報が分離部１０３に通知されるが、続けて検索を実行する場合は、ステップＳ１６０６以降の手順も実行する。
【０２０３】
ステップＳ１６０６において、現在参照しているリスト部のＳポインタがＮＵＬＬであるかを判定する。
【０２０４】
リスト部のＳポインタがＮＵＬＬの場合は、対象のパケットマップグループには、それ以上のパケットマップ情報が含まれていないので、ステップＳ１６０７において、次のパケットマップグループの検索を行う。
【０２０５】
リスト部のＳポインタがＮＵＬＬでない場合は、パケットマップグループに他のパケットマップが含まれているので、ステップＳ１６０８において、リスト部のＳポインタから次のリスト部を特定する。リスト部を特定した後は、ステップＳ１６０４以降の処理を繰り返し、パケットマップ情報の検索を続ける。
【０２０６】
また、ステップＳ１６０７においては、ステップＳ１６０３で参照したヘッダ部を再度参照してヘッダ部のＮポインタがＮＵＬＬかどうかを判定する。
【０２０７】
ヘッダ部のＮポインタがＮＵＬＬの場合は、パケットマップグループがこれ以上存在しないことを示しているので、パケットマップの検索を終了する。
【０２０８】
ヘッダ部のＮポインタがＮＵＬＬでない場合、次のパケットマップグループを参照するために、ステップＳ１６０９において、Ｎポインタが指すヘッダ部を特定する。
【０２０９】
新しいヘッダ部が特定できれば、ステップＳ１６０３以降の処理を繰り返し、パケットマップグループに含まれるパケットマップ情報を取り出す。
【０２１０】
次に、このデータ構成図を用いて早送り再生を行う場合の処理の流れを、図１７に示すフローチャートを用いて説明する。
【０２１１】
図１７のフローチャートにおけるステップＳ１７０１からステップＳ１７０４までの手順は、図１６におけるステップＳ１６０１からステップＳ１６０４までの手順と同一であるため、説明は省略する。
【０２１２】
早送り再生の場合、各パケットマップグループが属する時間区間の一部だけを再生する必要があるので、ステップＳ１７０４において、リスト部からパケットマップ情報を取り出した後、取り出したパケットマップ情報がパケットマップグループが属する時間区間の一部に含まれているかどうかをステップＳ１７０５において判定する。
【０２１３】
具体的には、パケットマップ情報のＰＴＳが、パケットマップグループが属する時間区間の先頭時間と早送り時に再生する所定時間の和よりも少ない場合、再生する必要のある情報であると判断できる。逆に、パケットマップ情報のＰＴＳが、パケットマップグループが属する時間区間の先頭時間と早送り時に再生する所定時間の和よりも大きい場合、再生する必要のないパケットマップであると判断できる。
【０２１４】
再生する必要のあるパケットマップ情報である場合は、ステップＳ１７０６に移行して、分離部１０３にパケットマップ情報を通知し、再生する必要のないパケットマップ情報の場合は、同じパケットマップグループに含まれる以降のパケットマップも再生する必要がないと判断できるので、ステップＳ１７０８からの、次のパケットマップグループの検索に移行する。
【０２１５】
以降、ステップＳ１７０７からステップＳ１７１０までの手順は、図１６におけるステップＳ１６０６からステップＳ１６０９の手順と同一であるため、説明は省略する。
【０２１６】
次に、このデータ構成図を用いて巻き戻し再生を行う場合の処理の流れを、図１８に示すフローチャートを用いて説明する。
【０２１７】
図１８において、ステップＳ１８０１からステップＳ１８０７とステップＳ１８０９の手順は、図１７のステップＳ１７０１からステップＳ１７０７とステップＳ１７０９の手順と同一であるため、説明は省略する。
【０２１８】
ひとつのパケットマップグループを再生し終わって、次に再生するパケットマップグループを特定するステップＳ１８０８では、ヘッダ部のＰポインタがＮＵＬＬであるかどうかを判定する。
【０２１９】
ＰポインタがＮＵＬＬの場合は、これ以上巻き戻し再生できるパケットマップグループが存在しないことを示すため、巻き戻し再生を終了する。
【０２２０】
ＰポインタがＮＵＬＬでない場合は、ステップＳ１８１０に移行して、ヘッダ部のＰポインタから次に再生すべきパケットマップグループのヘッダ部を特定する。
【０２２１】
その後、ステップＳ１８０３以降の手順を繰り返し、新しいパケットマップグループの検索を行う。
【０２２２】
次に、実施の形態４における処理の流れを、図１９に示すフローチャートを用いて説明する。早送り、巻き戻し処理のどちらも処理の流れでは同じであるので、１つのフローチャートで説明する。また、通常再生時の処理の流れは図６において示されている。
【０２２３】
いま、図６においてステップＳ５からステップＳ８までの処理を繰り返して通常再生が実行されているときに、ユーザーから早送りもしくは巻き戻しの要求が発行されたものとする。
【０２２４】
早送りもしくは巻き戻し処理の要求が発行されると、図１９のステップＳ１９０１以降の処理が実行される。
【０２２５】
ステップＳ１９０１においては、オーディオバッファ１０４の内容をクリアする。同様にステップＳ１９０２においては、ビデオバッファ１０５の内容をクリアする。
【０２２６】
これは、オーディオバッファ１０４、ビデオバッファ１０５には、通常再生時データ並びでオーディオデータ、ビデオデータが配置されているためであり、これらのデータをデコードしても通常再生時と同じ出力しか得ることができない。
【０２２７】
そこで、両方のバッファをクリアして、早送り、巻き戻し再生用の並びでデータを供給し直すことで、早送り、巻き戻し用の出力を得ることができる。
【０２２８】
次に、ステップＳ１９０３においては、マップ検索部１１６に対してパケットマップの検索方法が通常検索から早送り検索、巻き戻し検索に変更されたことを通知する。
【０２２９】
この手順によりマップ検索部１１６によるパケットマップの検索方法が変更され、ステップＳ１９０４のデータ取り出し処理において、取り出されるパケットマップが変化する。
【０２３０】
ステップＳ１９０４からステップＳ１９０６までの手順は、図６におけるステップＳ５からステップＳ７までの処理と同等であるため、説明は省略する。
【０２３１】
ステップＳ１９０７においては、早送り／巻き戻しが解除されたかどうかを判定し、解除されていない場合は、ステップＳ１９０４以降の手順を繰り返し実行する。
【０２３２】
早送り／巻き戻しが解除された場合は、ステップＳ１９０８に移行して、マップ検索部１１６に対して早送り／巻き戻し処理が解除されたことを通知する。
【０２３３】
さらにステップＳ１９０９とステップＳ１９１０において、オーディオバッファ１０４とビデオバッファ１０５をクリアしてから、早送り、巻き戻し処理を終了する。
【０２３４】
本実施の形態によれば、ＡＶファイル内のデータ配置状態に影響されることなく、デコーダへのデータ供給時間を最適化する機能を発揮しつつ、通常再生以外にも早送り再生、巻き戻し再生など様々な特殊再生を行うことができる。
【０２３５】
（実施の形態５）
図２０は、本発明の実施の形態５におけるＡＶファイル分離装置を備えたＡＶファイル再生装置の構成を示すブロック図である。
【０２３６】
この実施の形態は、複数のパケットマップバッファ１１１−１〜１１１−Ｎをマップ選択部１１７によって切り替えて利用することにより、あるＡＶファイルのデコード中に別のＡＶファイルのパケットマップ生成を行うことを可能とするものである。
【０２３７】
図２０において、マップ選択部１１７はパケットマップバッファ１１１−１〜１１１−Ｎへのアクセスの切り替えを行い、プレイリスト部１１９はＡＶファイル再生装置１００がデコードするＡＶファイルのリストを管理し、スケジューラ１１８に対して、今後デコードされる可能性のあるＡＶファイルを通知する。
【０２３８】
パケットマップバッファ１１１−１〜１１１−Ｎは、パケットマップ生成部１１０によって生成されたパケットマップを格納する。
【０２３９】
スケジューラ１１８は、パケットマップバッファ内に蓄積されたパケットマップの状態を監視しながら分離部１０３へのパケットマップの供給とパケットマップ生成部１１０によるパケットマップの生成をスケジューリングする。
【０２４０】
なお、本発明において、プレイリスト部１１９の存在は必須ではないが、実施方法を具体的に説明するために構成に加えている。
【０２４１】
次に、実施の形態５における処理の流れを、図２１に示すフローチャートを用いて説明する。
【０２４２】
ここでは、例として、あるＡＶファイルのデコード中に、別のＡＶファイルのマップ生成を並行して行う場合の処理の流れについて説明する。
【０２４３】
以下の説明中では、デコードするＡＶファイルを第１のファイル、マップ生成のみを行うＡＶファイルを第２のファイルと呼ぶこととする。
【０２４４】
ステップＳ２１０２からステップＳ２１０６までの手順は、図６におけるステップＳ１からステップＳ３までの手順を第１のファイルに対して行うものであるため、説明は省略する。
【０２４５】
次に、ステップＳ２１０４において、データ部の解析処理３を実行する。データ部の解析処理３の詳細については、図２２にフローチャートが示されているので、図２２を参照しながら説明する。
【０２４６】
図２２のステップＳ２２０１において、第１のファイルのすべてのパケットについてパケットマップが生成されたかどうかを判定する。
【０２４７】
第１のファイルのすべてのパケットについてのパケットマップが生成されているならば、ステップＳ２２０５に移行する。
【０２４８】
第１のファイルのすべてのパケットについてパケットマップが生成されていない場合は、ステップＳ２２０２に移行し、第１のファイルについてのパケットマップを生成する。
【０２４９】
ステップＳ２２０２では、第１のファイルからまだパケットマップを生成していないパケットを特定する。
【０２５０】
特定したパケットからは、ステップＳ２２０３において、ストリームタイプ、データ長、ＰＴＳ、データ位置を取得する。さらにステップＳ２２０４において、取得した情報をパケットマップに格納する。
【０２５１】
ステップＳ２２０５では、「第２のファイルの処理中フラグ」がセットされているかを判定する。このフラグは、第２のファイルについてのパケットマップ生成中であるかどうかを示すフラグであり、ステップＳ２２１１においてセットされ、ステップＳ２２１６においてクリアされる。
【０２５２】
フラグがセットされている場合は、ステップＳ２２１２に移行して、第２のファイルのパケットマップ生成を続ける。
【０２５３】
フラグがセットされていない場合は、ステップＳ２２０６に移行する。
【０２５４】
ステップＳ２２０６では、ファイルリスト中にパケットマップが生成されていないファイルがあるかを判定する。
【０２５５】
ファイルリスト中にパケットマップが生成されていないファイルが存在しない場合は、データ部の解析処理３は終了する。
【０２５６】
ファイルリスト中にパケットマップが生成されていないファイルが存在する場合は、ステップＳ２２０７に移行する。
【０２５７】
次に、ステップＳ２２０７では、ファイルリストから取得したパケットマップ生成を行っていない新しいファイルを第２のファイルとして特定する。
【０２５８】
ステップＳ２２０８からＳ２２１０までの手順は、図６のステップＳ１からステップＳ３までの手順を第２のファイルに対して行うものであるため、説明は省略する。
【０２５９】
次に、ステップＳ２２１１では、「第２のファイルの処理中フラグ」をセットし、第２のファイルに対するパケットマップ生成処理を開始する。
【０２６０】
ステップＳ２２１２からステップＳ２２１４までの手順は、図２２のステップＳ２２０２からステップＳ２２０４までの手順を第２のファイルに対して行うものであるので、説明は省略する。
【０２６１】
ステップＳ２２１５では、第２のファイルのすべてのパケットについてパケットマップ生成が完了しているかどうかを判定する。
【０２６２】
第２のファイルのすべてのパケットについてパケットマップ生成が完了していない場合は、そのままデータ部の解析処理３を終了する。
【０２６３】
第２のファイルのすべてのパケットについてパケットマップ生成が完了している場合は、ステップＳ２２１６において、「第２のファイルの処理中フラグ」をクリアしてデータ部の解析処理３を終了する。
【０２６４】
図２１に戻って、ステップＳ２１０７からステップＳ２１０９までの手順は、図１０におけるステップＳ６からステップＳ８までの手順を第１のファイルに対して実行するものであるので、説明は省略する。
【産業上の利用可能性】
【０２６５】
本発明のＡＶファイル分離装置は、多重化されたＡＶファイルから目的のデータを高速に読み出すことが可能なため、インターネットなどから配信されたＡＶファイルを再生するメディアプレーヤーアプリケーションなどで、映像や音声の同期を確実に保証する必要がある場合等に特に有効である。
【図面の簡単な説明】
【０２６６】
【図１】ＡＳＦシステムフォーマットのデータ構成図
【図２】従来の方法によるＡＳＦ分離装置のシステム構成図
【図３】本発明の実施の形態１におけるＡＶファイル分離装置のシステム構成図
【図４】本発明の実施の形態１が取り扱うＡＶファイルのデータ構成図
【図５】本発明の実施の形態１におけるパケットマップのデータ構成図
【図６】本発明の実施の形態１におけるＡＶファイル分離装置の処理の流れを示す第１のフローチャート
【図７】本発明の実施の形態１におけるＡＶファイル分離装置の処理の流れを示す第２のフローチャート
【図８】本発明の実施の形態１におけるＡＶファイル分離装置の処理の流れを示す第３のフローチャート
【図９】本発明の実施の形態２におけるＡＶファイル分離装置のシステム構成図
【図１０】本発明の実施の形態２におけるＡＶファイル分離装置の処理の流れを示す第１のフローチャート
【図１１】本発明の実施の形態２におけるＡＶファイル分離装置の処理の流れを示す第２のフローチャート
【図１２】本発明の実施の形態３におけるＡＶファイル分離装置のシステム構成図
【図１３】本発明の実施の形態３におけるＡＶファイル分離装置の処理の流れを示すフローチャート
【図１４】本発明の実施の形態４におけるＡＶファイル分離装置のシステム構成図
【図１５】本発明の実施の形態４の説明に用いるパケットマップのデータ構成図
【図１６】本発明の実施の形態４におけるマップ検索部の処理の流れを示す第１のフローチャート
【図１７】本発明の実施の形態４におけるマップ検索部の処理の流れを示す第２のフローチャート
【図１８】本発明の実施の形態４におけるマップ検索部の処理の流れを示す第３のフローチャート
【図１９】本発明の実施の形態４におけるＡＶファイル分離装置の処理の流れを示す第４のフローチャート
【図２０】本発明の実施の形態５におけるＡＶファイル分離装置のシステム構成図
【図２１】本発明の実施の形態５におけるＡＶファイル分離装置の処理の流れを示す第１のフローチャート
【図２２】本発明の実施の形態５におけるＡＶファイル分離装置の処理の流れを示す第２のフローチャート
【符号の説明】
【０２６７】
１００  ＡＶファイル再生装置
１０１  ＡＶファイル分離装置
１０２  記憶部
１０３  分離部
１０４  オーディオバッファ
１０５  ビデオバッファ
１０６  同期制御部
１０７  オーディオ再生部
１０８  ビデオ再生部
１０９  入力部
１１０  パケットマップ生成部
１１１  パケットマップバッファ
１１２  スケジューラ
１１３  マップ読み出し部
１１４  マップ書き込み部
１１６  マップ検索部
１１７  マップ選択部
１１８  スケジューラ
１１９  プレイリスト部
【図１】
2005260556.tif 000003
【図２】
2005260556.tif 000004
【図３】
2005260556.tif 000005
【図４】
2005260556.tif 000006
【図５】
2005260556.tif 000007
【図６】
2005260556.tif 000008
【図７】
2005260556.tif 000009
【図８】
2005260556.tif 000010
【図９】
2005260556.tif 000011
【図１０】
2005260556.tif 000012
【図１１】
2005260556.tif 000013
【図１２】
2005260556.tif 000014
【図１３】
2005260556.tif 000015
【図１４】
2005260556.tif 000016
【図１５】
2005260556.tif 000017
【図１６】
2005260556.tif 000018
【図１７】
2005260556.tif 000019
【図１８】
2005260556.tif 000020
【図１９】
2005260556.tif 000021
【図２０】
2005260556.tif 000022
【図２１】
2005260556.tif 000023
【図２２】
2005260556.tif 000024