JP2005260556A - Avファイル分離装置 - Google Patents

Avファイル分離装置 Download PDF

Info

Publication number
JP2005260556A
JP2005260556A JP2004068883A JP2004068883A JP2005260556A JP 2005260556 A JP2005260556 A JP 2005260556A JP 2004068883 A JP2004068883 A JP 2004068883A JP 2004068883 A JP2004068883 A JP 2004068883A JP 2005260556 A JP2005260556 A JP 2005260556A
Authority
JP
Japan
Prior art keywords
packet map
file
packet
map
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004068883A
Other languages
English (en)
Inventor
Shinji Sugiura
慎治 杉浦
Manabu Yoshino
学 芳野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004068883A priority Critical patent/JP2005260556A/ja
Publication of JP2005260556A publication Critical patent/JP2005260556A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Television Signal Processing For Recording (AREA)

Abstract

【課題】 音声や映像が多重化されたAVファイルを再生する場合、AVファイル内の音声データや映像データの格納位置が規定されていないため、分離部によるデコーダが要求する時間内でのデータ供給を保証することができない。
【解決手段】 AVファイル内のパケット配置情報をAVファイルの再生開始前に取得してパケットマップを生成するパケットマップ生成部110と、パケットマップを蓄積して管理するパケットマップバッファ111と、パケットマップバッファ111からパケットマップを取り出し、パケット配置情報を基に記憶部102からAVファイル内のデータを読み出し、デコードを行う。
【選択図】 図3

Description

本発明は、オーディオデータやビデオデータなどのデータが多重化されたAV(Audio andVisual)ファイルの分離処理を行うAVファイル分離装置にかかわり、特には、デコード装置へのデータ供給が、AVファイル内のデータ配置状態によって遅延することがないようにする技術に関する。
図1は、AVファイルの一例としてASF(Advanced StreamingFormat)ファイルの構成を示している。ASFファイルはオブジェクトと呼ばれるセクションによって構成される。最も大まかな分類を行う場合、ASFファイルは、ヘッダー・オブジェクト、データ・オブジェクト、インデックス・オブジェクトの3つのオブジェクトに分類することができる。
ヘッダー・オブジェクトはさらに、1以上の複数のオブジェクトを含むことが可能である。ヘッダー・オブジェクトに含まれるオブジェクトによって、ファイルのサイズ、ファイルに含まれるファイルの数、エラー訂正に関する情報、コーデックに関する情報、メタ情報などファイルに関連する一般的な情報が格納される。
データ・オブジェクトは、1以上の複数のパケットから構成されている。各パケットには、1以上の複数のペイロードが含まれている。ペイロードには分割されたエレメンタリーストリームとエレメンタリーストリームのデコード開始時間を示すタイムスタンプ(Presentation Time Stamp:PTS)が格納されている。
また、インデックス・オブジェクトには、早送りや巻戻しのような特殊再生を実現するためのインデックス情報が格納される。
図2は、このようなAVファイルを再生するための従来のシステム構成を示している(例えば、非特許文献1参照。)。
記憶部102には、複数のAVファイルが格納されており、ユーザーによってその中の一つが選択される。今、ユーザーが入力部109を用いて、記憶部102に格納されたAVファイルのうち一つを選択すると、選択されたAVファイルがAVファイルの分離部103に通知され、AVファイルの分離処理が開始される。
まず、記憶部102に格納されたAVファイルは、分離部103によって読み出される。記憶部102から取り出されたAVファイルは分離部103によって解析され、オーディオデータとビデオデータに分離される。また、分離されたデータは、それぞれ対応するオーディオバッファ104、ビデオバッファ105へと供給される。
同期制御部106は、ASFファイルの再生開始からの時間をシステム時刻として計測しており、現在のシステム時刻を定期的にオーディオ再生部107とビデオ再生部108に通知する。
システム時刻の通知を受けたオーディオ再生部107は、オーディオバッファ104からシステム時刻より過去のPTSを持つオーディオデータを取り出し、デコードして再生する。
同様に、システム時刻の通知を受けたビデオ再生部108は、ビデオバッファ105からシステム時刻より過去のPTSを持つビデオデータを取り出し、デコードして再生する。
Pioneer R&D 技術情報、"MPEG2−システムの概要"、[online]、[平成15年1月19日検索]、インターネット<URL:1078891886750_0.html>
このようなシステムを用いてAVデータの再生を行う場合、オーディオバッファ104、ビデオバッファ105の必要十分なしきい値を設定するのが困難という課題があった。
具体的には、オーディオバッファ104のしきい値は、単位時間当たりにオーディオ再生部107がデコードするデータ量と分離部103によって供給されるオーディオデータ量によって決定される。
同様に、ビデオバッファ105のしきい値は、単位時間当たりにビデオ再生部108がデコードするデータ量と分離部103によって供給されるビデオデータ量によって決定される。
ここで、単位時間当たりに分離部103によって供給されるオーディオデータ量は、多重化ストリーム内のオーディオ、ビデオデータの配置状態に依存する。従って、従来の再生システムでは、必要十分なしきい値を設定することができず、一部のストリームの再生を保証することができなかった。
本発明は、上記の課題を解決するために次のような手段を講じる。
本発明によるAVファイル分離装置は、再生すべきファイルのデータおよび他のデータを格納するための記憶手段と、前記記憶手段に格納されたファイル内のパケットの配置情報と任意の付加情報を関連付けたパケットマップを生成するパケットマップ生成手段と、前記パケットマップ生成手段によって生成された前記パケットマップをバッファし、任意のタイミングで前記パケットマップを利用することを可能とするためのパケットマップバッファと、前記パケットマップバッファにバッファされた前記パケットマップを利用して、前記記憶手段に格納されたファイル内のパケットを分離する分離手段とを備えたものである。
この構成によれば、AVファイル内のパケット配置情報をAVファイルの再生開始前に取得してパケットマップを生成し、パケットマップバッファに蓄積して管理する。そして、パケットマップバッファからパケットマップを取り出し、パケットマップに存在するAVファイル内のパケット配置情報を基に記憶手段からAVファイル内のデータを読み出し、デコードを行う。このように、AVファイルの再生開始に先立ってあらかじめAVファイル内のパケット配置情報を取得しておくので、AVファイル内のデータ配置状態に影響されることなく、デコーダへのデータ供給時間を最適化することができる。
上記構成において、さらに、次のようなスケジューラ手段を備えたものも有効である。そのスケジューラ手段は、前記分離手段による前記パケットマップバッファからの前記パケットマップの取り出しと前記パケットマップ生成手段による前記パケットマップバッファへの前記パケットマップのバッファとを並行して行う場合に、前記分離手段による前記パケットマップバッファからのパケットマップ取り出しが遅延しないようにスケジューリングするものである。
この構成によれば、スケジューラ手段によってAVファイルのデコード処理とAVファイルのパケットマップ生成処理とを並行的に行わせることによって、パケットマップの生成時間をAVファイルのデコード時間に対して最小とし、AVファイルの再生開始前の待ち時間を短縮することができる。
また、上記構成において、さらに、前記パケットマップバッファにバッファされた前記パケットマップをファイルとして前記記憶手段に書き込むためのパケットマップ書き込み手段と、前記記憶手段に格納された前記ファイルを読み出して、前記パケットマップバッファにバッファするパケットマップ読み出し手段と、前記記憶手段に格納された前記ファイルを検索し、前記ファイルが前記記憶手段内に格納されている場合、前記パケットマップ読み出し手段を用いて前記パケットマップバッファに前記パケットマップをバッファするための判定を行うマップ生成判定手段とを備えたAVファイル分離装置も有効である。
この構成によれば、一度分離したAVファイルのパケットマップ情報をファイルとしてAVファイルと共に保存しておき、二度目以降に同じAVファイルの分離を行う場合に、過去に保存したパケットマップ情報を利用することで、パケットマップの生成処理を行わなくともパケットマップを利用できる。その結果、AVファイルの分離処理を効率良く行うことができる。
また、上記構成において、さらに、前記分離手段が前記パケットマップバッファに格納された前記パケットマップの各データを取り出す際に、時系列に並んだ複数のデータを読み飛ばしながら、時間軸方向の順方向または逆方向に取り出すマップ検索手段を備えたAVファイル分離装置も有効である。
この構成によれば、AVファイル内のデータ配置状態に影響されることなく、デコーダへのデータ供給時間を最適化する機能を発揮しつつ、通常再生以外にも早送り再生、巻き戻し再生など様々な特殊再生を行うことができる。
また、上記構成において、さらに、複数ファイルのリストを保持するプレイリスト手段と、前記プレイリスト手段が保持するファイルに対して、前記パケットマップ生成手段を用いて前記パケットマップを生成させるスケジューラ手段と、複数のパケットマップバッファにバッファされた前記パケットマップを前記分離手段と前記パケットマップ生成手段から選択的にアクセスするためのパケットマップ選択手段とを備えたAVファイル分離装置も有効である。この場合、前記分離手段は、前記パケットマップ選択手段を通して任意のバッファから前記パケットマップを取り出すものとし、前記パケットマップ生成手段は、前記パケットマップ選択手段を通して任意のバッファへ前記パケットマップを格納するものとする。
この構成によれば、複数のパケットマップバッファをマップ選択手段によって切り替えて利用することによって、あるAVファイルのデコード中に別のAVファイルのパケットマップ生成を行うことが可能となり、複数のAVファイルを取り扱う場合に、それらのAVファイルの分離処理およびデコード処理を効率良く行うことができる。
以上のように本発明によれば、AVファイル内のデータの読み出しを、パケットマップに存在するAVファイル内のパケット配置情報に従って行うので、データ検索がデータ配置状態から影響を受けずにすみ、データ検索時間を最小化することができる。
以下、本発明にかかわるAVファイル分離装置の実施の形態を図面に基づいて詳細に説明する。
(実施の形態1)
図3は、本発明の実施の形態1におけるAVファイル分離装置を備えたAVファイル再生装置の構成を示すブロック図である。
はじめにAVファイル再生装置100が再生するAVファイルについて説明する。
AVファイル再生装置100では、オーディオデータとビデオデータが多重化されたAVファイルを再生する。
オーディオデータやビデオデータがAVファイルとして多重化される場合、オーディオ、ビデオのそれぞれのデータはパケットとして細分化され、それら細分化されたパケット同士を1つのデータとしてつなぎ合わせることで多重化を行う。
このとき、それぞれのパケットには、多重化されたデータの出力時の同期を取るための情報として、プレゼンテーションタイムスタンプ(Presentation Time Stamp:PTS)が付加される。
PTSはパケットに格納されたデータの再生中における提示時刻を示しており、オーディオデータの場合は、スピーカーから音声として出力される時刻がPTSとして付加され、ビデオデータの場合は、表示手段から映像として出力される時刻がPTSとして付加される。
図4は、AVファイル再生装置100が再生するAVファイルのデータ構成の例を示している。AVファイル401にはヘッダ部402とデータ部403が含まれている。
ヘッダ部402には、AVファイルであることを判別するための識別情報411、ヘッダ部のサイズを示すヘッダ長412、AVファイル全体のサイズを表すファイル長413、AVファイルに含まれるデータパケットの個数を表すパケット数414が含まれている。
データ部403には、1以上の複数のパケット421が含まれている。
本発明では、AVファイルに含まれるパケットのパケットサイズは限定しないが、この例においては、AVファイルに含まれるパケットのパケットサイズはすべて固定されているものとする。また、データ部403に含まれるパケットの個数はヘッダ部402のパケット数フラグ414によって示される。
各パケットには、パケットに含まれるデータの種類を表すストリームタイプ431、パケットに含まれるデータのサイズを表すデータ長432、パケットに含まれるデータの提示時刻を表すPTS433、パケット化されたオーディオストリームやビデオストリームのパケットデータ部434が含まれている。
なお、このデータ構成は以降の説明を行うための一例である。別の方法により上記の実施の形態のようなAVデータの再生に必要な情報が得られる構成であれば、本発明を適用することができる。
図3において、AVファイル分離装置101の構成について説明する。AVファイル分離装置101は、記憶部102、分離部103、パケットマップ生成部110、パケットマップバッファ111によって構成される。
分離部103による出力は、オーディオバッファ104とビデオバッファ105に供給され、オーディオ再生部107とビデオ再生部108によってデコードされ出力される。
また、分離部103とオーディオ再生部107とビデオ再生部108の同期制御は同期制御部106によって制御される。
さらに、入力部109によってユーザー入力が通知され、記憶部102に格納された複数のAVファイルの中から再生するAVファイルが分離部103によって選択され、再生、早送り、巻き戻し、停止、一時停止のような再生制御が行われる。
記憶部102は、例えばSD(Secure Digital)カードに代表されるメモリーカード、ハードディスクやDVD−RAMのようなランダムアクセス可能な記憶装置であるものとする。また、記憶部102には、オーディオデータとビデオデータが多重化されたAVファイルが格納されるものとする。
まず、パケットマップ生成部110は、入力部109によって通知されたAVファイルを記憶部102から読み出して解析し、オーディオデータの格納位置とビデオデータの格納位置を抽出し、任意の付加情報を追加してパケットマップとしてパケットマップバッファ111に蓄積する。
次に、パケットマップバッファ111に蓄積されるパケットマップの構成について図5を参照しながら説明する。
パケットマップには、2つのリストが含まれる。オーディオマップリスト501には、オーディオデータの配置情報が格納され、ビデオマップリスト502には、ビデオデータの配置情報が格納される。
それぞれのリストは、エントリ数511と複数のエントリ512から構成されている。エントリ数511には、リストに含まれるエントリの個数が格納される。各エントリは、個々のオーディオパケットやビデオパケットと関連付けされており、対応するパケットのPTS521やパケットのデータ長522、パケットの格納位置を示すデータ開始位置523から構成される。
データ開始位置としては、例えばAVファイルの先頭から対応するパケット内のデータまでのオフセットが格納される。なお、このデータ構成は以降の説明を行うための一例である。別の方法によりデータ開始位置などの必要な情報が得られる構成であれば、本発明を適用することができる。
ここで、分離部103は、パケットマップバッファ111からパケットマップを取り出し、パケットマップに存在するAVファイルのパケット配置情報に従って記憶部102からAVファイル中のオーディオパケットとビデオパケットを取り出し、それぞれオーディオバッファ104、ビデオバッファ105に格納する。
同期制御部106は、AVファイルの再生開始からの時間をシステム時刻として管理し、オーディオ再生部107とビデオ再生部108に対してシステム時刻を通知する。
オーディオ再生部107は、同期制御部106からのシステム時刻の通知を受けて、オーディオバッファ104からオーディオデータを取り出し、デコードして、スピーカーなどから音声として再生する。
また、ビデオ再生部108は、同期制御部106からのシステム時刻の通知を受けて、ビデオバッファ105からビデオデータを取り出し、デコードして、ディスプレイなどから映像として再生する。
次に、AVファイル分離部103の分離処理について、図6のフローチャートを用いて説明する。
今、記憶部102に格納されたAVファイルが入力部109によって選択され、AVファイルの分離部103に対して再生開始が通知されたとき、ステップS1において、図3の分離部103は記憶部102に格納されたAVファイルの中から入力部109によって通知されたAVファイルを選択し、そのAVファイルの種類を特定する。
さらに、ステップS2において、分離可能なファイルタイプであるかどうかを判定する。具体的には、分離部103は、AVファイルの先頭部分を読み出して、ファイルの識別情報411を取得する。分離部103は、取得した識別情報411を解析して対応可能なファイルであるかどうかを判定する。
例えば、AVファイルとしてASFファイルが用いられているとすると、図4のASFファイルのヘッダ部402の先頭部分には、ASFのヘッダ部の先頭であることを示す識別IDが16バイトのサイズで格納されている。従って、分離部103はこの識別IDを取り出し、値を確認することで分離可能なファイルであるかどうかを判定することができる。
ステップS2において分離部103が分離可能なファイルタイプではないと判定した場合(ASFのヘッダ部を表す識別IDが得られなかった場合)は、以降の分離処理を行わずに、処理を終了する。
ステップS2おいて分離部103が分離可能なファイルタイプであると判定した場合(ASFヘッダ部を表す識別IDが得られた場合)は、ステップS3に移行して、ヘッダ部402の解析処理を行う。
具体的には、AVファイルのデータ部403を解析するための情報をヘッダ部402から取得し、パケットマップ生成部110に通知する。
より具体的には、ヘッダ部402からヘッダ部のサイズを表すヘッダ長412、AVファイルのサイズを表すファイル長413、データ部403に含まれるパケットの個数を表すパケット数414をそれぞれ取得し、分離部103に通知する。
このとき、同時にヘッダ部402に格納されたAVファイルのメタ情報などを取得することもできる。
ステップS3においてAVファイルのデータ部403を解析するための情報を通知されたパケットマップ生成部110は、ステップS4において、AVファイルのデータ部403を解析してパケットマップバッファ111に、AVファイル内のオーディオデータとビデオデータの格納位置に関する情報を格納する。
さらにステップS4において、AVファイルのデータ部の解析を行う。
ステップS4におけるデータ部の解析処理の詳細について、図7のフローチャートを用いて説明する。
まず、ステップS11において、パケットマップ生成部110は、AVファイルのヘッダ部402からパケット数414を取得する。
次に、ステップS12において、パケット421−1からストリームタイプ431、データ長432、PTS433を取得し、同時に、データ434のAVファイル内における格納位置について計算し、それぞれについてパケットマップバッファ111に通知する。
通知を受けたパケットマップバッファ111は、ステップS13において、ストリームタイプによってパケットマップリストを選択し、リストの先頭のエントリ512−1に、通知されたPTSとデータ長、データの格納位置をそれぞれPTS521、データ長522、データ開始位置523に格納する。また、格納した後、エントリ数511に格納されている値を1増加させる。なお、エントリ数511の初期値は0であるとする。
次に、ステップS14において、すべてのパケットについて解析が完了したかを判定する。具体的には、ステップS11で取得したパケット数とこれまでに解析したパケット数を比較する。
解析したパケット数がステップS11で取得したパケット数よりも少ない場合は、再度ステップS12、ステップS13を実行する。
解析したパケット数がステップS11で取得したパケット数と同じ場合には、データ部の解析処理を終了する。
図6に戻って、ステップS5においては、ステップS4で行われたデータ部の解析処理の結果を利用してAVファイル内から実際にオーディオデータやビデオデータを取り出す処理を行う。
次に、ステップS5のデータ取り出し処理について、図8のフローチャートを用いて説明する。
ステップS21では、分離部103は、パケットマップバッファ111内のオーディオマップリスト501中から取り出していないオーディオパケットマップエントリが存在するかどうかを判定する。
取り出していないオーディオパケットマップエントリが存在しない場合は、ステップS26へ飛ぶ。
取り出していないオーディオパケットマップエントリが存在する場合は、ステップS22以降の処理を繰り返す。
このとき、パケットマップバッファ111内において、オーディオパケットマップ参照位置情報を管理し、オーディオパケットマップ参照位置情報と、オーディオパケットマップリスト501中のエントリ数511を比較することで、オーディオパケットマップリスト501からパケットマップエントリが取り出せるかどうかを判定する方法を用いても良い。
ステップS22では、オーディオバッファ104内のデータ量を確認し、しきい値以上かどうかを判定する。
オーディオバッファ104内のデータ量がしきい値以上であれば、ステップS26へ飛ぶ。
オーディオバッファ104内のデータ量がしきい値に満たない場合には、ステップS23、ステップS24、ステップS25の処理を繰り返す。
ステップS23において、分離部103は、パケットマップバッファ111内のオーディオマップリスト501からパケットマップエントリをパケットマップエントリが持つPTS順に取り出す。
次に、ステップS24において、分離部103は、ステップS23で取り出したパケットマップエントリの内容に従って記憶部102から目的のデータを読み出す。
具体的には、パケットマップエントリ中のデータ開始位置523とデータ長522の値を用いてデータの読み出しを行う。
読み出したデータは、ステップS25において、オーディオバッファ104へと格納する。このとき、分離部103は、オーディオ再生部107がデータを取り出すための情報としてパケットマップエントリ中のPTS521やデータ長522を同時にオーディオバッファ104に格納しても良い。
ステップS26では、分離部103は、パケットマップバッファ111内のビデオパケットマップリスト502中から取り出していないビデオパケットマップエントリが存在するかどうかを判定する。
取り出していないビデオパケットマップエントリが存在しない場合は、データ取り出し処理は完了する。
取り出していないオーディオパケットマップエントリが存在する場合には、ステップS27以降の処理を繰り返す。
このとき、パケットマップバッファ111内において、ビデオパケットマップ参照位置情報を管理し、ビデオパケットマップ参照位置情報と、ビデオパケットマップリスト502中のエントリ数511を比較することで、ビデオパケットマップリスト502からパケットマップエントリが取り出せるかどうかを判定する方法を用いても良い。
ステップS27では、ビデオバッファ105内のデータ量を確認し、しきい値以上かどうかを判定する。
ビデオバッファ105内のデータ量がしきい値以上であれば、データ取り出し処理を完了する。
ビデオバッファ105内のデータ量がしきい値に満たない場合には、ステップS28、ステップS29、ステップS30の処理を繰り返す。
ステップS28では、分離部103は、パケットマップバッファ111内のビデオマップリストからパケットマップエントリをPTS順に取り出す。
次に、ステップS29において、分離部103は、ステップS28で取り出したパケットマップエントリの内容に従って記憶部102から目的のデータを読み出す。
具体的には、パケットマップエントリ中のデータ開始位置523とデータ長522の値を用いてデータの読み出しを行う。
読み出したデータは、ステップS30において、ビデオバッファ105へと格納する。このとき、分離部103は、ビデオ再生部108がデータを取り出すための情報としてパケットマップエントリ中のPTS521やデータ長522を同時にビデオバッファ105に格納しても良い。
なお、ステップS21からステップS25までの手順と、ステップS26からステップS30までの手順は順序が入れ替わっても良いし、並行に行うことにしても良い。
再度、図6に戻って、ステップS6では、オーディオ再生部107やビデオ再生部108がデコードを開始しなければならないオーディオデータ、ビデオデータをオーディオバッファ104とビデオバッファ105から検索する。
具体的には、同期制御部106が現在のシステム時刻をオーディオ再生部107とビデオ再生部108に通知する。
本発明では、システム時刻の単位について特に限定しないが、AVファイル内のデータに付加されたPTSの単位と同じ単位を用いる必要がある。
例えばASFファイルの場合、各データには、ミリ秒単位でPTSが付加されているため、システム時刻もミリ秒単位で計測する必要がある。
オーディオ再生部107は、通知されたシステム時刻よりも過去のPTSを持つオーディオデータをオーディオバッファ104内から検索し、ステップS7を実行する。
オーディオバッファ104内に該当するオーディオデータが存在しない場合は、ステップS7は実行せずに、ステップS8へと飛ぶ。
オーディオバッファ104内に該当するオーディオデータが複数存在する場合は、すべてのオーディオデータについて順次ステップS7を実行する。
同様に、ビデオ再生部108は、通知されたシステム時刻よりも過去のPTSを持つビデオデータをビデオバッファ105内から検索し、ステップS7を実行する。
ビデオバッファ105内に該当するビデオデータが存在しない場合は、ステップS7は実行せずにステップS8へと飛ぶ。
ビデオバッファ105内に該当するビデオデータが複数存在する場合は、すべての該当するビデオデータについて順次ステップS7を実行する。
実際のAVファイル再生装置では、デコードには有限の時間が必要となるが、この例では、MPEG1のSTD(System Target Decoder、MPEG−1のオーディオ/ビデオの同期再生やバッファ管理をモデル化したデコーダ)の例に倣って、デコーダによるデータのデコード時間を0として扱っている。しかし、デコーダによるデータのデコード時間があらかじめ判明している場合は、PTSとシステム時刻との比較時にデコード時間を加味した比較を行う方法を用いても良い。
ステップS7では、ステップS6でオーディオバッファ104やビデオバッファ105から取り出されたオーディオデータやビデオデータをデコードし、音声や映像としてオーディオ再生部107とビデオ再生部108から出力する。
ステップS8においては、すべてのデータについてデコードが完了したかどうかについて判定する。
すべてのデータについてデコードが完了している場合は、AVファイルの再生処理は完了する。
すべてのデータについてのデコードが完了していない場合は、ステップS5まで処理を戻す。
本実施の形態によれば、AVファイル内のパケット配置情報をAVファイルの再生開始前に取得してパケットマップを生成し、パケットマップバッファに蓄積し、さらに、パケットマップバッファからパケットマップを取り出し、パケットマップに存在するAVファイル内のパケット配置情報を基に記憶手段からAVファイル内のデータを読み出し、デコードを行う。すなわち、AVファイルの再生開始に先立ってあらかじめAVファイル内のパケット配置情報を取得しておくので、AVファイル内のデータ配置状態に影響されることなく、デコーダへのデータ供給時間を最適化することができる。
(実施の形態2)
図9は、本発明の実施の形態2におけるAVファイル分離装置を備えたAVファイル再生装置の構成を示すブロック図である。
上記の実施の形態1では、分離部103によるオーディオバッファ104、ビデオバッファ105へのデータ供給が、AVファイル内のデータ配置状態によって遅延することがないようにしている。しかし、ユーザーがAVファイルの再生開始を指示した後、パケットマップ生成時間分の経過の後にAVファイルの再生処理が開始される。つまり、AVファイルの再生前にパケットマップ生成時間が必要となるという課題が残っている。
そこで、AVファイル再生前のパケットマップ生成時間を短縮することを本実施の形態によって達成する。
本実施の形態のAVファイル再生装置100は、AVファイルの再生処理の前に、AVファイルのデータ部を解析した上でパケットマップを生成し、次いで生成したパケットマップに従ってAVファイルの再生を実行するが、一部のパケットマップの生成をAVファイルの再生処理と並行して行うものである。
具体的には、図9に示すように、スケジューラ112を用いてパケットマップ生成処理をスケジューリングすることによって一部のパケットマップ生成をAVファイルの再生処理と並行動作させる。
ユーザーがAVファイルの再生開始を指示してから、一部のパケットマップ生成を実行し、その後、残りのパケットマップ生成をAVファイルの再生処理と共に並行して行う。このことにより、再生開始前の遅延時間を短縮することができる。
分離部103による記憶部102からのデータ読み出しの平均速度は、再生中のAVファイルのビットレートに依存する。一般的には、AVファイルのビットレートよりも記憶部102からの読み出し速度の方が高速である場合が多い。したがって、分離部103による記憶部102からのデータ読み出しと、パケットマップ生成部110によるマップ生成とを並行しても、分離部103によって目的のパケットマップが要求されるまでの間にパケットマップ生成部110が目的のパケットマップ生成を完了していれば、再生処理を成立させることができる。
具体的には、パケットマップ生成部110によってn番目のパケットマップPm(n)が生成される時刻をTcre(n)とし、そのパケットマップのデータが分離部103によって要求される時刻をTreq(n)として、式(1)のように時刻Tcre(n)が時刻Treq(n)よりも早ければ、分離部103によるパケットマップPm(n)の要求に対して十分に対応できると言える。
Tcre(n)<Treq(n) ……………………………………………(1)
ところで、AVファイル内のオーディオデータの格納位置とビデオデータの格納位置とはAVファイルごとに異なるため、あるn番目のパケットマップ生成時刻がパケットマップ要求時刻に対して間に合ったからといって、n+1番目のパケットマップ生成時刻がn+1番目のパケットマップ要求時刻に間に合うとは限らない。したがって、以下の式は常に成り立つわけではない。
Tcre(n+1)−Tcre(n)<Treq(n+1)−Treq(n)……(2)
ここで、Treq(n+1)とTreq(n)の差はnの値によらずに常に一定であるが(デコーダによるデータ要求周期に依存するため)、Tcre(n+1)とTcre(n)の差は、AVファイル内のデータ配置状態に依存するため、一定とはならない。
そこで、
Tcre(n+1)−Tcre(n)<Treq(n+1)−Treq(n)……(3)
の式がnの値によらずに成立する(n−1)までのパケットマップを再生前に生成しておき、残りの(n)以降のパケットマップの生成をデータの再生と並行させる。すなわち、パケットマップ生成とデータ再生の並列動作を実現する。
例えば、オーディオデータとビデオデータが多重化されたAVファイルにおいて、オーディオデータのパケットマップを生成する場合は、その最短時間をTminで表すこととする。
Tminは、パケットマップを生成するために必要な情報をAVファイルから読み出すための最短時間であり、2つのオーディオデータ、A(n)とA(n+1)が隣接してAVファイル内に配置されている場合は、A(n+1)のパケットマップを生成する時間はTminとなる。Tminは、AVファイル内のデータ配置状態によらずに一定の値となり、記憶部102からのデータ読み出し速度にのみ依存する。
逆に、パケットマップを生成するための最長時間をTmaxで表すこととする。例えば、2つのオーディオデータA(n)とA(n+1)の間にすべてのビデオパケットが含まれている場合は、A(n+1)のパケットマップを生成する時間はTmaxとなる。
このとき、A(n)とA(n+1)の間のすべてのビデオパケットは隣接してAVファイル内に配置されていることになる。したがって、これらのパケットのパケットマップ生成時間は、Tminとなることが容易に想像できる。
同時に、A(n)とA(n+1)以外のオーディオパケットも隣接して配置されていることになる。したがって、これらのパケットのパケットマップ生成時間もTminとなることが想像できる。
そこで、ある時刻tまでに生成されたパケットマップ数をn−1とすると、A(n)のパケットマップを生成する時間TAmax(n)は、AVファイル中に含まれるビデオパケット数をNv、時刻tの時点ですでにパケットマップを生成したビデオパケット数をNvr(n)とすると、以下の式で表される。
TAmax(n)=(Nv−Nvr(n)+1)×Tmin …………………(4)
また、n=0のとき、
TAmax(0)=(Nv+1)×Tmin …………………………………(5)
となり、最大となる。
また、Nv=Nvr(n)の場合(すなわち、すべてのビデオパケットのパケットマップ生成が完了している場合)は、
TAmax(n)=Tmin …………………………………………………(6)
となり、最小となる。
同様にビデオデータのパケットマップ生成の最大時間TVmax(n)は、AVファイルに含まれるオーディオパケット数をNa、時刻nの時点ですでにパケットマップを生成したオーディオパケット数をNar(n)とすると、
TVmax(n)=(Na−Nar(n)+1)×Tmin …………………(7)
また、n=0のとき、
TVmax(0)=(Na+1)×Tmin …………………………………(8)
となり、最大となる。
また、Na=Nar(n)の場合(すなわち、すべてのオーディオパケットのパケットマップ生成が完了している場合)は、
TVmax(n)=Tmin …………………………………………………(9)
となり、最小となる。
ここで、再生開始前にAVファイル内のm個のパケットについてパケットマップを生成しているとする場合は、再生開始後のオーディオパケットマップの最大生成時間TAmax(m)は、以下の式で表される。
TAmax(m)=(Nv−Nvr(m)+1)×Tmin ………………(10)
次に、分離部103がパケットマップを要求する周期をTAcycとすると、再生開始前に生成されたm個のパケットマップがすべて消費されるまでの時間TAcsm(m)は、
TAcsm(m)=Nar(m)×TAcyc ………………………………(11)
同様にビデオパケットマップの最大生成時間TVmax(m)とパケットマップの消費時間はTVcsm(m)は、
TVmax(m)=(Na−Nar(m)+1)×Tmin ………………(12)
TVcsm(m)=Nvr(m)×TVcyc ………………………………(13)
このとき、TAmaxとTVmaxはm=0のとき最大であり、m=Na+Nvのとき最小(0)となる。
そのため、以下の式を満足する最小のmが、パケットマップ生成部110が分離部103からの要求に対してパケットマップの供給を保証できるmであるといえる。
TAmax(m)<TAcsm(m) ……………………………………(14)
TVmax(m)<TVcsm(m) ……………………………………(15)
そこで、式(14)を変形して、
(Nv−Nvr(m)+1)×Tmin<Nar(m)×TAcyc …………(16)
m=Nar(m)+Nvr(m) ………………………………………(17)
であることから、
Nvr(m)=m−Nar(m) ………………………………………(18)
を適用して、
(Nv−(m−Nar(m))+1)×Tmin<Nar(m)×TAcyc…(19)
−m<(Nar(m)×TAcyc−Nv−Nar(m)−1)/Tmin
m>(Nv+Nar(m)+1−Nar(m)×TAcyc)/Tmin
m>(Nv+Nar(m)×(1−TAcyc)+1)/Tmin ………(20)
同様にビデオパケットの場合は、以下の式で表される。
m>(Na+Nvr(m)×(1−TVcyc)+1)/Tmin ………(21)
AVファイル中の式5、式6の両方を満足するmで表される個数のパケットについてのパケットマップの生成が完了した時点で、パケットマップ生成部110が分離部103からの要求に対してパケットマップの供給を保証できると言える。
なお、Nar(m)、Nvr(m)はmの関数で表されるため、mは、マップ生成開始前に知ることはできず、m個のパケットマップを生成した後に式(20)、式(21)を判定することによって、パケットマップの供給を保証できるmであることが判明する。
以降の説明では、ある時間までに読み出されたパケット数mが式(20)、式(21)を満たすことを、“再生成立条件を満たす”と表現することにする。
次に、パケットマップ生成と再生処理を並行に行う場合の処理の流れを、図10に示すフローチャートを用いて説明する。
図10のステップS1からステップS3までの処理は、図6のステップS1からステップS3までの処理と同様であるため、ここでは説明を省略する。
ステップS3において、ヘッダ部の解析を行った後、ステップS40において、データ部の解析処理2を実行する。
データ部の解析処理2の詳細な流れについて、図11のフローチャートを用いて説明する。
データ部の解析処理2では、まずステップS42において、AVファイル内のすべてのパケットについてパケットマップの生成が完了しているかどうかを判定する。
もし、AVファイル内のすべてのパケットについてパケットマップが生成されているならば、データ部の解析処理2は終了する。
AVファイル内のすべてのパケットについてのパケットマップが生成されていないならば、ステップS11、ステップS12、ステップS13の処理を実行する。
図10に戻って、ステップS41において、生成されたパケットマップの状態から再生成立条件の判定を行う。
再生成立条件が成立していない場合には、ステップS40に戻り、データ部の解析処理2を実行する。
再生成立条件が成立している場合には、ステップS5に移行して、データの取り出し処理を実行する。
ステップS5において取り出されたデータは、オーディオバッファ104、ビデオバッファ105に一時的に格納され、ステップS6において、システム時刻がデータのPTSに達するのを待ってから、ステップS7において、対応するオーディオ再生部107、ビデオ再生部108によって復号化され、音声や映像として再生される。
さらにステップS8において、すべてのパケットについて再生が完了したかどうかを判定し、すべてのパケットについての再生が完了していなければ、再度ステップS40からの手順を繰り返す。
すべてのパケットについての再生が完了していれば、再生処理は終了される。
図6においては、ステップS4のデータ解析処理によって、AVファイル内のすべてのデータについて解析を行ってから、ステップS5のデータ取り出し処理を実行していた。
これに対して、図10においては、ステップS40のデータ解析処理2をステップS41における再生成立条件が成立するまで実行した後、ステップS5のデータ取り出し処理が実行される。すなわち、全データについての解析完了を待たずに、再生成立条件が1回でも成立すれば、直ちにデータ取り出しに移行することにしている。そのため、図10の方法では、図6と比較すると、再生処理開始からステップS5のデータ取り出し処理開始までの時間を大幅に短縮することができる。ステップS5のデータ取り出し処理開始までの時間が短縮されると、AVファイル再生時の映像、音声データの最初の出力までの時間が短縮される。すなわち、ユーザーがAVファイル再生装置100に再生処理を指示してから、実際に再生処理が開始されるまでの時間が短縮されることになる。
なお、ステップS40、ステップS5、ステップS7の処理はそれぞれに並行に実行することにしてもよい。
(実施の形態3)
図12は、本発明の実施の形態3におけるAVファイル分離装置を備えたAVファイル再生装置の構成を示すブロック図である。
このAVファイル分離装置は、一度分離したAVファイルのパケットマップ情報をファイルとしてAVファイルと共に保存しておき、二度目以降に同じAVファイルの分離を行う場合に、過去に保存したパケットマップ情報を利用することで、パケットマップの生成処理を行わなくともパケットマップを利用できるようにしたものである。
図12において、マップ書き込み部114は、パケットマップバッファ111に格納されたパケットマップリストをファイルとして記憶部102に書き込む。マップ読み出し部113は、マップ書き込み部114によって記憶部102に書き込まれたパケットマップリストのファイルを読み出してパケットマップバッファ111に格納する。
また、マップ生成判定部115は、選択されたAVファイルのパケットマップリストを記録したファイルが記憶部102に格納されているかどうかを判定し、格納されていなければ、パケットマップ生成部110を制御してパケットマップを生成し、格納されていれば、マップ読み出し部113を制御してパケットマップリストを記録したファイルを読み出してパケットマップバッファ111に格納させる。
実施の形態3における処理の流れを、図13に示すフローチャートを用いて説明する。
図13において、ステップS1からステップS3までは、図6における処理と同様であるため、説明は省略する。
ユーザーによって選択されたAVファイルは、入力部109から通知され、そのパケットマップ情報ファイルが記憶部102に格納されているとする。ステップS50において、図12のマップ生成判定部115は、パケットマップ情報ファイルが記憶部102に格納されているかどうかを判定する。
選択されたAVファイルについてのパケットマップ情報ファイルが記憶部102に格納されている場合は、ステップS51に移行して、マップ読み出し部113を制御して対象のパケットマップ情報ファイルを読み出してパケットマップバッファ111に格納する。
選択されたAVファイルについてのパケットマップ情報ファイルが記憶部102に格納されていない場合は、ステップS4に移行して、パケットマップ生成部110を制御してパケットマップの生成を行い、パケットマップバッファ111にパケットマップを格納する。
この後、ステップS5、ステップS6、ステップS7、ステップS8の手順は図6のフローチャートと同様の手順であるため、説明は省略する。
最後にステップS52において、マップ書き込み部114によって、パケットマップバッファ111に格納されたパケットマップリストをファイルとして記憶部102に書き込む。
このとき、すでにパケットマップ情報ファイルが記憶部102に格納されている場合は、書き込み処理を省略しても良い。
本発明は、パケットマップリストの判定および書き込み方法については限定しないが、具体的な説明を行うために、以下にファイルの判定と書き込み方法の例を示す。
まず、書き込みを行う場合、パケットマップリストを書き込むファイルのファイル名には、対応するAVファイル名を特定の方法で修飾したファイル名を利用する。
例えば、ファイル名に特定のプレフィクス、サフィックスを付加したり、拡張子を変更するなどの方法が考えられる。修飾された結果、新たに生成されるファイル名は他のファイルのファイル名と同一にならないように、ユニークな修飾方法を用いるべきである。
この方法によって、AVファイルに対応するパケットマップ情報ファイルが存在するかどうかの判定を行う場合に、ファイル名の判定だけで対応することが可能となり、容易に対応することができる。
また、パケットマップ情報ファイルの生成後に、対応するAVファイルが編集されて、パケットマップ情報ファイルの内容とAVファイルの内容が整合性が取れないものになってしまった場合は、パケットマップ情報ファイルを一旦破棄して、新しいパケットマップリストをファイルに書き込む必要がある。
パケットマップリストを書き込むときのAVファイルの最終更新時間と、選択されたAVファイルの最終更新時間とを比較して、それぞれの最終更新時間が同一の場合のみ、パケットマップ情報ファイルとAVファイルの関連があると判定することで、AVファイルが更新されたことを知ることができる。
同様に、パケットマップリストを書き込むときのAVファイルのファイルサイズと、選択されたAVファイルのファイルサイズとを比較することにより、さらに精度の高い判定が可能となる。
本実施の形態によれば、過去に保存したパケットマップ情報を利用することで、二度目以降に同じAVファイルの分離を行う場合には、パケットマップの生成処理を行わなくてもよい。したがって、AVファイルの分離処理を効率良く行うことができる。
(実施の形態4)
図14は、本発明の実施の形態4におけるAVファイル分離装置を備えたAVファイル再生装置の構成を示すブロック図である。
これまでの構成例では、AVファイルの通常再生のみを扱ってきたが、実際のAVファイル再生装置では、通常再生以外にも早送り再生、巻き戻し再生など様々な特殊再生を行う。例えば早送り再生は、早送り再生を開始したパケットから第1の時間間隔分に相当するパケットを読み飛ばした後、第2の時間間隔分に相当するパケットを通常どおり再生し、再び第1の時間間隔分に相当するパケットを読み飛ばして再生することを繰り返すことで実現する。
このとき、第1の時間間隔と第2の時間間隔を調整することによって、早送り速度を調整する。すなわち、それぞれの時間間隔を長くするほど、早送り速度は高速になり、短くするほど早送り速度は低速となる。
逆に、巻き戻し再生は、巻き戻し再生を開始したパケットから第1の時間間隔分に相当するパケットを逆方向に検索して読み飛ばした後、第2の時間間隔分に相当するパケットを通常どおり再生し、再び第1の時間間隔分に相当するパケットを逆方向に検索して読み飛ばして再生することを繰り返すことで実現する。
このAVファイル分離装置は、分離部103がマップ検索部116を用いてパケットマップバッファ111からパケットマップを取得することで、パケットマップバッファ111から任意のPTSを持つパケットマップを高速に検索することが可能となるようにしたものである。
AVファイル再生装置100において、早送り再生を実現する場合は、復号化されたデータをデータのPTS順に並べて順次出力装置から再生する通常再生と異なり、現在再生中のデータのPTSに対して、所定時間後のPTSを持つデータを取り出して再生する。
このような場合、分離部103はパケットマップバッファ111から順次パケットマップを取り出して目的のPTSをもつパケットマップを検索する必要がある。
逆に、巻き戻し再生を行う場合、現在再生中のデータのPTSに対して所定時間前のPTSを持つデータを取り出して再生する。
このような場合、分離部103はパケットマップバッファ111から逆順にパケットマップを取り出して目的のPTSをもつパケットマップを検索する必要がある。
検索に要する時間は、個々のパケットマップに付加されたPTSの差の大きさに依存するが、PTSの差の大きさは、デコード中のAVファイルのデータ配置状態に依存するため、一意に決定することができない。
そこで、本実施の形態では、マップ検索部116を設けることで任意のPTSを持つパケットマップを検索するための時間を一意に決定可能なようにすることを目的としている。
図14の実施の形態において、マップ検索部116は、例えば図15に示すようなデータ構成図から目的のPTSをもつパケットマップを検索する。
なお、本発明は、データ構成図の構成は限定しないが、ここでは具体的な例を説明するために、図15に示すデータ構成図を利用する。次に、図15のデータ構成図について説明する。
このデータ構成図では、一定の時間区間に含まれるPTSを持つパケットマップエントリ同士をグルーピングして管理している。ある時間区間には、0個以上のパケットマップエントリが含まれる。また、ある時間区間に含まれるパケットマップエントリの集合を時間区間に属するパケットマップグループと呼ぶこととする。
パケットマップグループごとに含まれるパケットマップエントリの個数は一定ではないが、パケットマップグループが属する時間区間の長さは常に一定である。
あるパケットマップグループは、ヘッダ部1501とリスト状に接続された0個以上のリスト部1502によって構成される。
ヘッダ部1501には、連続した時間区間における直前のパケットマップグループのヘッダ部を指すPポインタ1511と、連続した時間区間における直後のパケットマップグループのヘッダ部を指すNポインタ1512と、リスト部を指すSポインタ1513によって構成されている。
リスト部1502は、パケットマップの内容であるPTS1521とデータ長1522、データ位置1523、同じパケットマップグループに属する次のPTSを持つパケットマップを指すSポインタ1524によって構成されている。
このデータ構成図を用いて通常再生を行う場合のパケットマップの検索方法について、図16に示すフローチャートを用いて説明する。
ステップS1601において、再生開始位置から検索を開始するパケットマップグループを特定し、ヘッダ部を特定する。
ステップS1602において、ヘッダ部のSポインタがNULL(何も指していないことを示す特別な値)の場合は、パケットマップグループには、パケットマップが含まれていないので、ステップS1607において、次のパケットマップグループの検索を行う。
ヘッダ部のSポインタがNULLでない場合は、パケットマップグループ内にパケットマップが含まれているのでパケットマップの検索を行う。
ステップS1603において、ヘッダ部のSポインタが指すリスト部を特定する。
ステップS1604において、特定したリスト部からパケットマップ情報を取り出す。取り出したパケットマップ情報は、ステップS1605において、分離部103に通知される。
ステップS1605までの手順によってパケットマップ情報が分離部103に通知されるが、続けて検索を実行する場合は、ステップS1606以降の手順も実行する。
ステップS1606において、現在参照しているリスト部のSポインタがNULLであるかを判定する。
リスト部のSポインタがNULLの場合は、対象のパケットマップグループには、それ以上のパケットマップ情報が含まれていないので、ステップS1607において、次のパケットマップグループの検索を行う。
リスト部のSポインタがNULLでない場合は、パケットマップグループに他のパケットマップが含まれているので、ステップS1608において、リスト部のSポインタから次のリスト部を特定する。リスト部を特定した後は、ステップS1604以降の処理を繰り返し、パケットマップ情報の検索を続ける。
また、ステップS1607においては、ステップS1603で参照したヘッダ部を再度参照してヘッダ部のNポインタがNULLかどうかを判定する。
ヘッダ部のNポインタがNULLの場合は、パケットマップグループがこれ以上存在しないことを示しているので、パケットマップの検索を終了する。
ヘッダ部のNポインタがNULLでない場合、次のパケットマップグループを参照するために、ステップS1609において、Nポインタが指すヘッダ部を特定する。
新しいヘッダ部が特定できれば、ステップS1603以降の処理を繰り返し、パケットマップグループに含まれるパケットマップ情報を取り出す。
次に、このデータ構成図を用いて早送り再生を行う場合の処理の流れを、図17に示すフローチャートを用いて説明する。
図17のフローチャートにおけるステップS1701からステップS1704までの手順は、図16におけるステップS1601からステップS1604までの手順と同一であるため、説明は省略する。
早送り再生の場合、各パケットマップグループが属する時間区間の一部だけを再生する必要があるので、ステップS1704において、リスト部からパケットマップ情報を取り出した後、取り出したパケットマップ情報がパケットマップグループが属する時間区間の一部に含まれているかどうかをステップS1705において判定する。
具体的には、パケットマップ情報のPTSが、パケットマップグループが属する時間区間の先頭時間と早送り時に再生する所定時間の和よりも少ない場合、再生する必要のある情報であると判断できる。逆に、パケットマップ情報のPTSが、パケットマップグループが属する時間区間の先頭時間と早送り時に再生する所定時間の和よりも大きい場合、再生する必要のないパケットマップであると判断できる。
再生する必要のあるパケットマップ情報である場合は、ステップS1706に移行して、分離部103にパケットマップ情報を通知し、再生する必要のないパケットマップ情報の場合は、同じパケットマップグループに含まれる以降のパケットマップも再生する必要がないと判断できるので、ステップS1708からの、次のパケットマップグループの検索に移行する。
以降、ステップS1707からステップS1710までの手順は、図16におけるステップS1606からステップS1609の手順と同一であるため、説明は省略する。
次に、このデータ構成図を用いて巻き戻し再生を行う場合の処理の流れを、図18に示すフローチャートを用いて説明する。
図18において、ステップS1801からステップS1807とステップS1809の手順は、図17のステップS1701からステップS1707とステップS1709の手順と同一であるため、説明は省略する。
ひとつのパケットマップグループを再生し終わって、次に再生するパケットマップグループを特定するステップS1808では、ヘッダ部のPポインタがNULLであるかどうかを判定する。
PポインタがNULLの場合は、これ以上巻き戻し再生できるパケットマップグループが存在しないことを示すため、巻き戻し再生を終了する。
PポインタがNULLでない場合は、ステップS1810に移行して、ヘッダ部のPポインタから次に再生すべきパケットマップグループのヘッダ部を特定する。
その後、ステップS1803以降の手順を繰り返し、新しいパケットマップグループの検索を行う。
次に、実施の形態4における処理の流れを、図19に示すフローチャートを用いて説明する。早送り、巻き戻し処理のどちらも処理の流れでは同じであるので、1つのフローチャートで説明する。また、通常再生時の処理の流れは図6において示されている。
いま、図6においてステップS5からステップS8までの処理を繰り返して通常再生が実行されているときに、ユーザーから早送りもしくは巻き戻しの要求が発行されたものとする。
早送りもしくは巻き戻し処理の要求が発行されると、図19のステップS1901以降の処理が実行される。
ステップS1901においては、オーディオバッファ104の内容をクリアする。同様にステップS1902においては、ビデオバッファ105の内容をクリアする。
これは、オーディオバッファ104、ビデオバッファ105には、通常再生時データ並びでオーディオデータ、ビデオデータが配置されているためであり、これらのデータをデコードしても通常再生時と同じ出力しか得ることができない。
そこで、両方のバッファをクリアして、早送り、巻き戻し再生用の並びでデータを供給し直すことで、早送り、巻き戻し用の出力を得ることができる。
次に、ステップS1903においては、マップ検索部116に対してパケットマップの検索方法が通常検索から早送り検索、巻き戻し検索に変更されたことを通知する。
この手順によりマップ検索部116によるパケットマップの検索方法が変更され、ステップS1904のデータ取り出し処理において、取り出されるパケットマップが変化する。
ステップS1904からステップS1906までの手順は、図6におけるステップS5からステップS7までの処理と同等であるため、説明は省略する。
ステップS1907においては、早送り/巻き戻しが解除されたかどうかを判定し、解除されていない場合は、ステップS1904以降の手順を繰り返し実行する。
早送り/巻き戻しが解除された場合は、ステップS1908に移行して、マップ検索部116に対して早送り/巻き戻し処理が解除されたことを通知する。
さらにステップS1909とステップS1910において、オーディオバッファ104とビデオバッファ105をクリアしてから、早送り、巻き戻し処理を終了する。
本実施の形態によれば、AVファイル内のデータ配置状態に影響されることなく、デコーダへのデータ供給時間を最適化する機能を発揮しつつ、通常再生以外にも早送り再生、巻き戻し再生など様々な特殊再生を行うことができる。
(実施の形態5)
図20は、本発明の実施の形態5におけるAVファイル分離装置を備えたAVファイル再生装置の構成を示すブロック図である。
この実施の形態は、複数のパケットマップバッファ111−1〜111−Nをマップ選択部117によって切り替えて利用することにより、あるAVファイルのデコード中に別のAVファイルのパケットマップ生成を行うことを可能とするものである。
図20において、マップ選択部117はパケットマップバッファ111−1〜111−Nへのアクセスの切り替えを行い、プレイリスト部119はAVファイル再生装置100がデコードするAVファイルのリストを管理し、スケジューラ118に対して、今後デコードされる可能性のあるAVファイルを通知する。
パケットマップバッファ111−1〜111−Nは、パケットマップ生成部110によって生成されたパケットマップを格納する。
スケジューラ118は、パケットマップバッファ内に蓄積されたパケットマップの状態を監視しながら分離部103へのパケットマップの供給とパケットマップ生成部110によるパケットマップの生成をスケジューリングする。
なお、本発明において、プレイリスト部119の存在は必須ではないが、実施方法を具体的に説明するために構成に加えている。
次に、実施の形態5における処理の流れを、図21に示すフローチャートを用いて説明する。
ここでは、例として、あるAVファイルのデコード中に、別のAVファイルのマップ生成を並行して行う場合の処理の流れについて説明する。
以下の説明中では、デコードするAVファイルを第1のファイル、マップ生成のみを行うAVファイルを第2のファイルと呼ぶこととする。
ステップS2102からステップS2106までの手順は、図6におけるステップS1からステップS3までの手順を第1のファイルに対して行うものであるため、説明は省略する。
次に、ステップS2104において、データ部の解析処理3を実行する。データ部の解析処理3の詳細については、図22にフローチャートが示されているので、図22を参照しながら説明する。
図22のステップS2201において、第1のファイルのすべてのパケットについてパケットマップが生成されたかどうかを判定する。
第1のファイルのすべてのパケットについてのパケットマップが生成されているならば、ステップS2205に移行する。
第1のファイルのすべてのパケットについてパケットマップが生成されていない場合は、ステップS2202に移行し、第1のファイルについてのパケットマップを生成する。
ステップS2202では、第1のファイルからまだパケットマップを生成していないパケットを特定する。
特定したパケットからは、ステップS2203において、ストリームタイプ、データ長、PTS、データ位置を取得する。さらにステップS2204において、取得した情報をパケットマップに格納する。
ステップS2205では、「第2のファイルの処理中フラグ」がセットされているかを判定する。このフラグは、第2のファイルについてのパケットマップ生成中であるかどうかを示すフラグであり、ステップS2211においてセットされ、ステップS2216においてクリアされる。
フラグがセットされている場合は、ステップS2212に移行して、第2のファイルのパケットマップ生成を続ける。
フラグがセットされていない場合は、ステップS2206に移行する。
ステップS2206では、ファイルリスト中にパケットマップが生成されていないファイルがあるかを判定する。
ファイルリスト中にパケットマップが生成されていないファイルが存在しない場合は、データ部の解析処理3は終了する。
ファイルリスト中にパケットマップが生成されていないファイルが存在する場合は、ステップS2207に移行する。
次に、ステップS2207では、ファイルリストから取得したパケットマップ生成を行っていない新しいファイルを第2のファイルとして特定する。
ステップS2208からS2210までの手順は、図6のステップS1からステップS3までの手順を第2のファイルに対して行うものであるため、説明は省略する。
次に、ステップS2211では、「第2のファイルの処理中フラグ」をセットし、第2のファイルに対するパケットマップ生成処理を開始する。
ステップS2212からステップS2214までの手順は、図22のステップS2202からステップS2204までの手順を第2のファイルに対して行うものであるので、説明は省略する。
ステップS2215では、第2のファイルのすべてのパケットについてパケットマップ生成が完了しているかどうかを判定する。
第2のファイルのすべてのパケットについてパケットマップ生成が完了していない場合は、そのままデータ部の解析処理3を終了する。
第2のファイルのすべてのパケットについてパケットマップ生成が完了している場合は、ステップS2216において、「第2のファイルの処理中フラグ」をクリアしてデータ部の解析処理3を終了する。
図21に戻って、ステップS2107からステップS2109までの手順は、図10におけるステップS6からステップS8までの手順を第1のファイルに対して実行するものであるので、説明は省略する。
本発明のAVファイル分離装置は、多重化されたAVファイルから目的のデータを高速に読み出すことが可能なため、インターネットなどから配信されたAVファイルを再生するメディアプレーヤーアプリケーションなどで、映像や音声の同期を確実に保証する必要がある場合等に特に有効である。
ASFシステムフォーマットのデータ構成図 従来の方法によるASF分離装置のシステム構成図 本発明の実施の形態1におけるAVファイル分離装置のシステム構成図 本発明の実施の形態1が取り扱うAVファイルのデータ構成図 本発明の実施の形態1におけるパケットマップのデータ構成図 本発明の実施の形態1におけるAVファイル分離装置の処理の流れを示す第1のフローチャート 本発明の実施の形態1におけるAVファイル分離装置の処理の流れを示す第2のフローチャート 本発明の実施の形態1におけるAVファイル分離装置の処理の流れを示す第3のフローチャート 本発明の実施の形態2におけるAVファイル分離装置のシステム構成図 本発明の実施の形態2におけるAVファイル分離装置の処理の流れを示す第1のフローチャート 本発明の実施の形態2におけるAVファイル分離装置の処理の流れを示す第2のフローチャート 本発明の実施の形態3におけるAVファイル分離装置のシステム構成図 本発明の実施の形態3におけるAVファイル分離装置の処理の流れを示すフローチャート 本発明の実施の形態4におけるAVファイル分離装置のシステム構成図 本発明の実施の形態4の説明に用いるパケットマップのデータ構成図 本発明の実施の形態4におけるマップ検索部の処理の流れを示す第1のフローチャート 本発明の実施の形態4におけるマップ検索部の処理の流れを示す第2のフローチャート 本発明の実施の形態4におけるマップ検索部の処理の流れを示す第3のフローチャート 本発明の実施の形態4におけるAVファイル分離装置の処理の流れを示す第4のフローチャート 本発明の実施の形態5におけるAVファイル分離装置のシステム構成図 本発明の実施の形態5におけるAVファイル分離装置の処理の流れを示す第1のフローチャート 本発明の実施の形態5におけるAVファイル分離装置の処理の流れを示す第2のフローチャート
符号の説明
100 AVファイル再生装置
101 AVファイル分離装置
102 記憶部
103 分離部
104 オーディオバッファ
105 ビデオバッファ
106 同期制御部
107 オーディオ再生部
108 ビデオ再生部
109 入力部
110 パケットマップ生成部
111 パケットマップバッファ
112 スケジューラ
113 マップ読み出し部
114 マップ書き込み部
116 マップ検索部
117 マップ選択部
118 スケジューラ
119 プレイリスト部


Claims (5)

  1. 再生すべきファイルのデータおよび他のデータを格納するための記憶手段と、
    前記記憶手段に格納されたファイル内のパケットの配置情報と任意の付加情報を関連付けたパケットマップを生成するパケットマップ生成手段と、
    前記パケットマップ生成手段によって生成された前記パケットマップをバッファし、任意のタイミングで前記パケットマップを利用することを可能とするためのパケットマップバッファと、
    前記パケットマップバッファにバッファされた前記パケットマップを利用して、前記記憶手段に格納されたファイル内のパケットを分離する分離手段と、
    を備えたAVファイル分離装置。
  2. 再生すべきファイルのデータおよび他のデータを格納するための記憶手段と、
    前記記憶手段に格納されたファイル内のパケットの配置情報と任意の付加情報を関連付けたパケットマップを生成するパケットマップ生成手段と、
    前記パケットマップ生成手段によって生成された前記パケットマップをバッファし、任意のタイミングで前記パケットマップを利用することを可能とするためのパケットマップバッファと、
    前記パケットマップバッファにバッファされた前記パケットマップを利用して、前記記憶手段に格納されたファイル内のパケットを分離する分離手段と、
    前記分離手段による前記パケットマップバッファからの前記パケットマップの取り出しと前記パケットマップ生成手段による前記パケットマップバッファへの前記パケットマップのバッファとを並行して行う場合に、前記分離手段による前記パケットマップバッファからのパケットマップ取り出しが遅延しないようにスケジューリングするスケジューラ手段と、
    を備えたAVファイル分離装置。
  3. 再生すべきファイルのデータおよび他のデータを格納するための記憶手段と、
    前記記憶手段に格納されたファイル内のパケットの配置情報と任意の付加情報を関連付けたパケットマップを生成するパケットマップ生成手段と、
    前記パケットマップ生成手段によって生成された前記パケットマップをバッファし、任意のタイミングで前記パケットマップを利用することを可能とするためのパケットマップバッファと、
    前記パケットマップバッファにバッファされた前記パケットマップをファイルとして前記記憶手段に書き込むためのパケットマップ書き込み手段と、
    前記記憶手段に格納された前記ファイルを読み出して、前記パケットマップバッファにバッファするパケットマップ読み出し手段と、
    前記パケットマップバッファにバッファされた前記パケットマップを利用して、前記記憶手段に格納されたファイル内のパケットを分離する分離手段と、
    前記記憶手段に格納された前記ファイルを検索し、前記ファイルが前記記憶手段内に格納されている場合、前記パケットマップ読み出し手段を用いて前記パケットマップバッファに前記パケットマップをバッファするための判定を行うマップ生成判定手段と、
    を備えたAVファイル分離装置。
  4. さらに、前記分離手段が前記パケットマップバッファに格納された前記パケットマップの各データを取り出す際に、時系列に並んだ複数のデータを読み飛ばしながら、時間軸方向の順方向または逆方向に取り出すマップ検索手段を備えた請求項1に記載のAVファイル分離装置。
  5. さらに、複数ファイルのリストを保持するプレイリスト手段と、
    前記プレイリスト手段が保持するファイルに対して、前記パケットマップ生成手段を用いて前記パケットマップを生成させるスケジューラ手段と、
    複数のパケットマップバッファにバッファされた前記パケットマップを前記分離手段と前記パケットマップ生成手段から選択的にアクセスするためのパケットマップ選択手段とを備え、
    前記分離手段は、前記パケットマップ選択手段を通して任意のバッファから前記パケットマップを取り出し、
    前記パケットマップ生成手段は、前記パケットマップ選択手段を通して任意のバッファへ前記パケットマップを格納する請求項1に記載のAVファイル分離装置。


JP2004068883A 2004-03-11 2004-03-11 Avファイル分離装置 Pending JP2005260556A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004068883A JP2005260556A (ja) 2004-03-11 2004-03-11 Avファイル分離装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004068883A JP2005260556A (ja) 2004-03-11 2004-03-11 Avファイル分離装置

Publications (1)

Publication Number Publication Date
JP2005260556A true JP2005260556A (ja) 2005-09-22

Family

ID=35085865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004068883A Pending JP2005260556A (ja) 2004-03-11 2004-03-11 Avファイル分離装置

Country Status (1)

Country Link
JP (1) JP2005260556A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012248259A (ja) * 2011-05-31 2012-12-13 Funai Electric Co Ltd 再生装置
JP2013523031A (ja) * 2010-05-13 2013-06-13 ゼットティーイー コーポレーション マルチメディアファイルの制御過程に高速な応答を実現する方法及び放送装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013523031A (ja) * 2010-05-13 2013-06-13 ゼットティーイー コーポレーション マルチメディアファイルの制御過程に高速な応答を実現する方法及び放送装置
KR101408021B1 (ko) * 2010-05-13 2014-06-17 지티이 코포레이션 멀티미디어 파일 제어 과정에서 빠른 응답을 구현하는 방법 및 재생 장치
JP2012248259A (ja) * 2011-05-31 2012-12-13 Funai Electric Co Ltd 再生装置
US8842968B2 (en) 2011-05-31 2014-09-23 Funai Electric Co., Ltd. Reproduction apparatus

Similar Documents

Publication Publication Date Title
JP4690303B2 (ja) シリーズコンテンツの視聴ポイントに基づいてコンテンツを再生させる装置およびその方法
JP5239858B2 (ja) 再生装置および方法、並びにプログラム
CN103442300A (zh) 一种音视频跳转播放方法以及装置
JP2008243367A (ja) 同報通信データを記録するための方法、および、装置
JP2005117659A (ja) 検索情報を記録した保存媒体、その再生装置及び再生方法
WO2006115151A1 (ja) 記録装置、再生装置、記録再生装置、記録プログラムとその記録媒体、再生プログラムとその記録媒体
JP4320673B2 (ja) 情報処理装置および方法、並びにプログラム
CN101340538A (zh) 记录/再现装置、记录装置和方法、再现装置和方法
CN101714367B (zh) 信息存储介质和用于再现其的设备和方法
CN102065320B (zh) 用于处理关于ts码流的特技播放命令的方法和设备
CN101083113B (zh) 再现装置和再现方法
JP2005260556A (ja) Avファイル分離装置
JP2004297493A (ja) デジタルコンテンツ編集システムおよびデジタルコンテンツ編集方法
JP2007288300A (ja) 映像音声再生装置
US7539395B2 (en) Audio/video recording apparatus and method of multiplexing audio/video data
CN102982817A (zh) 信息处理装置、信息处理方法和程序
JP2011249940A (ja) コンテンツ再生装置、およびコンテンツ再生装置の動作方法
JP2010066675A (ja) 音声情報処理システム及び音声情報処理プログラム
JP2006268953A (ja) データ処理装置及びその方法
JP4152368B2 (ja) 録画システムおよびアナログ放送番組の録画方法
JP5560999B2 (ja) 映像音声記録再生装置、および映像音声記録再生方法
JP4600891B2 (ja) Av装置、及びav装置における放送録画方法
JP5355749B1 (ja) 再生装置および再生方法
JP2010160862A (ja) オーディオ再生装置
JP2006229674A (ja) コンテンツ再生装置