(57)【要約】【課題】早送り／巻き戻し動作の高速化を図る。【解決手段】圧縮データにおける早送り／巻き戻し動作中において（ステップＳ１）、フレームヘッダ情報の読み出しを行わず表示時間のみ更新し（ステップＳ２〜Ｓ４）、再生再開時にフレームヘッダ情報を読み出し、再生再開位置を検索（ステップＳ５）している。これにより、各フレームのフレームヘッダ情報を読み取る方法よりも、早送り／巻き戻し中の処理時間を短縮することが可能である。しかも、各フレームのフレームヘッダ情報をメモリに確保しないので、メモリ使用量増加の問題も発生しない。【選択図】図１
2007293973.tif 000002
【特許請求の範囲】
【請求項１】
圧縮符号化され、フレームヘッダ及びフレームデータからなるフレームが複数連続するデータ構造の圧縮データを伸張して再生すると共に再生時間の表示を行う圧縮データ再生方法において、
通常の再生を行う場合は、複数の前記フレームを順次読み出して読み出した順に再生し、
早送り／巻き戻しを行う場合は、前記早送り／巻き戻し開始時から前記早送り／巻き戻し終了時点の再生再開時までの早送り／巻き戻し期間において、前記フレームヘッダの読み出しを行わずに表示時間のみ更新し、前記再生再開時に前記フレームヘッダを読み出し、再生再開位置の検索処理を行うことを特徴とする圧縮データ再生方法。
【請求項２】
請求項１記載の圧縮データ再生方法において  
前記再生再開位置の検索処理では、前記圧縮データの１秒当たりのバイト数である平均バイトレートと再生再開時間とから前記再生再開位置を算出し、算出された再生再開位置における時間と前記再生再開時間とに誤差が生じている時には、前記算出された再生再開位置を補正することによって時間誤差を補正することを特徴とする圧縮データ再生方法。
【請求項３】
請求項２記載の圧縮データ再生方法において  
前記再生再開位置を補正した後もなお前記時間誤差が生じている時には、前記表示時間の更新タイミングを変更することによって前記時間誤差を補正することを特徴とする圧縮データ再生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ＭＰ３（MPEG Audio Layer-3）形式等で圧縮された圧縮データにおける早送り／巻き戻しを行った場合の再生時間と再生再開位置の算出方法に特徴のある圧縮データ再生方法に関するものである。
【背景技術】
【０００２】
従来、ＭＰ３形式等で圧縮された圧縮データを再生する圧縮データ再生方法に関する技術としては、例えば、次のような文献等に記載されるものがあった。
【０００３】
【特許文献１】特開２００３−６９９２号公報
【特許文献２】特開２００５−３１０３０６号公報
【０００４】
この特許文献１には、処理の負担が小さくて済み、必要なメモリ量の増加を招くことがない早送り／巻き戻し可能な情報再生方法及び情報再生装置の技術が記載されている。又、特許文献２には、可変ビットレート形式で圧縮された圧縮データの早送り／巻き戻しを行っても、再生再開位置の再生時間表示に逆転現象の生じない再生時間表示用装置及び再生時間算出方法の技術が記載されている。
【０００５】
特許文献１に記載されているように、ＭＰ３形式等の圧縮データ（例えば、圧縮音声データ）を再生する圧縮データ再生装置では、記録媒体（例えば、ハードディスク、フラッシュメモリ等）に記録された圧縮データを読み出し、読み出した圧縮データを伸張して再生し、曲毎の再生時間を表示する構成になっている。又、通常再生の他に、早送り／巻き戻し機能等を持っている。
【０００６】
図２は、従来の一般的な圧縮データのデータ構造を示す図である。
一般に、ＭＰ３形式で圧縮された圧縮データ（例えば、圧縮音声データ）１では、１つの楽曲に対して１つのファイル２が割り当てられた複数のファイル２，・・・を有し、各ファイル２が、複数Ｎのフレーム１０（１０−１〜１０−Ｎ）に区分されて構成されている。各フレーム１０は、フレームヘッダ１１及びフレームデータ１２により構成されている。フレームヘッダ１１に含まれている情報には、例えば、同期ワード１１ａ、フレーム時間情報１１ｂ、ビットレート１１ｃ、サンプリング周波数１１ｄ、及びフレームサイズ１１ｅ等がある。一般的に、同期ワード１１ａは、フレームヘッダ１１の先頭に配置されるが、その他の情報１１ｂ，・・・については、圧縮形式によって配置位置が異なる。ビットレート１１ｃにおいて、固定ビットレート形式で圧縮されたデータでは、各フレーム１０のサイズは一定になっており、これに対して可変ビットレート形式で圧縮されたデータにおいては、各フレーム１０のサイズはフレーム毎に異なる。
【０００７】
この種の圧縮データ１において、通常の再生を行う場合は、ファイル２，・・・のフレーム１０−１〜１０−Ｎを順次読み出し、読み出した順に再生する。これに対し、早送り／巻き戻し動作、早送り／巻き戻し開始時（例えば、フレーム１０−１）から早送り／巻き戻し終了時点の再生再開時（例えば、フレーム１０−１５）までの早送りの動作では、複数のフレーム１０−２〜１０−１４を読み飛ばすことによって実現されている。
【０００８】
固定ビットレート形式では、各フレーム１０のサイズが一定であるので、フレーム１０−２〜１０−１４を読み飛ばす処理を容易に行えるが、可変ビットレート形式では、各フレーム１０のサイズがフレーム１０毎に異なるので、特許文献１の技術では、読み飛ばすフレーム１０−２〜１０−１４における各フレームヘッダ１１の情報を読み取り、フレームサイズを判断して読み飛ばす手法を採っている。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来の圧縮データ再生方法において、早送り／巻き戻し動作では、各フレーム１０のフレームヘッダ情報を読み取るために記録媒体からの圧縮データ読み出しとフレームヘッダ情報の読み取りを連続に行うことになる。一般にハードディスク等の記録媒体からのデータ読み出しには処理時間が長く掛かるため、早送り／巻き戻し動作においては処理速度が低下し、操作性が悪くなる。
【００１０】
記録媒体からの圧縮データ読み出し時間を短縮させるために、各フレーム１０の位置時間及びアドレス等をメモリに確保しておく方法もあるが、フレーム数に比例して必要なメモリ量が増加するという問題が生じる。
【００１１】
これを解決するために、従来の特許文献１の技術では、上述したように、読み飛ばすフレームにおける各フレームヘッダ情報を読み取り、フレームサイズを判断して読み飛ばす手法を採っている。しかしながら、このような手法を採用しても、圧縮データ再生装置の小型化等を図るために再生機能をソフトウェアによって実現しているので、依然として早送り／巻き戻し動作が遅く、高速化を図ることが困難であった。
【課題を解決するための手段】
【００１２】
請求項１に係る発明は、圧縮符号化され、フレームヘッダ及びフレームデータからなるフレームが複数連続するデータ構造の圧縮データを伸張して再生すると共に再生時間の表示を行う圧縮データ再生方法において、通常の再生を行う場合は、複数の前記フレームを順次読み出して読み出した順に再生する。早送り／巻き戻しを行う場合は、前記早送り／巻き戻し開始時から前記早送り／巻き戻し終了時点の再生再開時までの早送り／巻き戻し期間において、前記フレームヘッダの読み出しを行わずに表示時間のみ更新し、前記再生再開時に前記フレームヘッダを読み出し、再生再開位置の検索処理を行う。
【００１３】
請求項２に係る発明は、請求項１の圧縮データ再生方法において、前記再生再開位置の検索処理では、前記圧縮データの１秒当たりのバイト数である平均バイトレートと再生再開時間とから前記再生再開位置を算出し、算出された再生再開位置における時間と前記再生再開時間とに誤差が生じている時には、前記算出された再生再開位置を補正することによって時間誤差を補正する。
【００１４】
請求項３に係る発明は、請求項２の圧縮データ再生方法において、前記再生再開位置を補正した後もなお前記時間誤差が生じている時には、前記表示時間の更新タイミングを変更することによって前記時間誤差を補正する。
【発明の効果】
【００１５】
請求項１に係る発明によれば、圧縮データにおける早送り／巻き戻し動作中において、フレームヘッダ情報の読み出しを行わず表示時間のみ更新し、再生再開時にフレームヘッダ情報を読み出し、再生再開位置を検索するようにしたので、各フレームのフレームヘッダ情報を読み取る方法よりも、早送り／巻き戻し中の処理時間を短縮することが可能である。しかも、各フレームのフレームヘッダ情報をメモリに確保しないので、メモリ使用量増加の問題も発生しない。
【００１６】
請求項２に係る発明によれば、再生再開位置の検索処理において、圧縮データの１秒当たりのバイト数（平均バイトレート）と再生再開時間とから再生再開位置を算出し、算出された再生再開位置における時間と再生再開時間に誤差が生じている時には、再生再開位置を補正することによって時間誤差を補正するようにしたので、再生再開位置確定時に再生再開時間との時間誤差が生じていた場合でも、同時に誤差を算出しておくことが可能であり、再生再開後に表示時間の更新タイミングを補正することで表示時間に対して正確な位置での再生を継続することが可能である。
【００１７】
請求項３に係る発明によれば、再生再開位置の確定後もなお時間誤差が生じている時には、表示時間の更新タイミングを変更することによって時間誤差を補正するようにしたので、正確な再生時間を表示できる。
【発明を実施するための最良の形態】
【００１８】
圧縮データ再生方法は、圧縮データにおける早送り／巻き戻し動作中において、フレームヘッダ情報の読み出しを行わず表示時間のみ更新し、再生再開時にフレームヘッダ情報を読み出し、再生再開位置を検索している。
【実施例１】
【００１９】
（実施例１の構成）
図３は、本発明の実施例１を示す圧縮データ再生装置の概略の構成図である。
【００２０】
この圧縮データ再生装置は、ハードディスク、フラッシュメモリ等の記録媒体２０に記録された図２に示すようなＭＰ３形式等の圧縮データ（例えば、音声圧縮データ）１を読み出すデータ読み出し部２１を有し、このデータ読み出し部２１に信号処理部２２が接続されている。信号処理部２２は、データ読み出し部２１で読み出された圧縮データ１を伸張して再生する再生処理部２２ａと、その圧縮データ１に対する早送り／巻き戻し処理を行う早送り／巻き戻し処理部２２ｂとを有し、この信号処理部２２に制御部２３が接続されている。
【００２１】
制御部２３は、信号処理部２２を含めた圧縮データ再生装置全体をプログラム制御する機能を有し、この制御部２３に操作部２４及び表示部２５が接続されている。操作部２４は、再生開始、再生停止、早送り／巻き戻し等を操作するスイッチ等で構成されている。表示部２５は、再生時間等を表示する液晶（ＬＣＤ）等で構成されている。又、信号処理部２２の出力側には、ディジタル／アナログ（以下「Ｄ／Ａ」という。）変換器２６が接続されている。Ｄ／Ａ変換器２６は、信号処理部２２で再生されたデータ（例えば、音声データ）をアナログ信号に変換して音声信号を出力する回路である。
【００２２】
信号処理部２２、及び制御部２３等は、中央処理装置（以下「ＣＰＵ」という。）を用いたプロセッサ等により構成されている。
【００２３】
（実施例１の圧縮データ再生方法の概略）
図３の圧縮データ再生装置において、使用者が操作部２４を操作して通常の再生指示を入力すると、制御部２３の制御により、データ読み出し部２１が動作し、記録媒体２０から圧縮データ１中の複数のフレーム１０−１〜１０−Ｎが順次読み出される。読み出されたフレーム１０−１〜１０−Ｎは、読み出された順に、信号処理部２２内の再生処理部２２ａにより再生され、制御部２３の制御によって再生時間が表示部２５に表示されると共に、再生された音声データがＤ／Ａ変換器２６によりアナログ音声信号に変換されて出力される。
【００２４】
図１は、本発明の実施例１における早送り／巻き戻し処理手順を示すフローチャートである。図４は、図１中の再生再開位置検索の手順を示すフローチャートである。
【００２５】
本実施例１の特徴は、早送り／巻き戻し動作中は表示時間のみを更新し、再生再開時に再生再開位置を検索することによって早送り／巻き戻し動作中の処理速度の低下を低減している。
【００２６】
先ず、通常の再生開始時に、再生処理部２２ａにより、再生対象となる圧縮データ１のサイズとそのデータの総再生時間を取得し、式（１）に従って平均バイトレートを算出しておく。
平均バイトレート＝対象圧縮データのサイズ／総再生時間        （１）
平均バイトレートとは、１秒当たりのバイト数であり、バイトレートとビットレートは以下の関係にある。算出した平均バイトレートは再生再開位置検索時に使用する。
バイトレート［bytes/sec］＝ビットレート［bits/sec］／８
【００２７】
図１のステップＳ１において、操作部２４から早送り／巻き戻し操作が入力されると、制御部２３で制御される信号処理部２２内の早送り／巻き戻し処理部２２ｂにより、図２に示したステップＳ２〜Ｓ６に従って表示時間の更新と再生再開位置の算出を行う。
【００２８】
早送り／巻き戻し動作中は、ステップＳ２で再生時間の計算、ステップＳ３で表示時間の更新、及び、ステップＳ４で早送り／巻き戻し操作が終了したか否かの確認を行い、これらのステップＳ２〜Ｓ４を繰り返し、表示時間のみ更新する。
【００２９】
ステップＳ４における早送り／巻き戻し操作が終了すると、ステップＳ５へ移行し、再生再開位置を検索し、再生を再開する。再生再開位置については、後述する図４に示すステップＳ１０〜Ｓ２４に従って検索する。但し、図４の手順で算出した再生再開位置の時間は、再生再開時間（表示中の時間）に対して式（２）に示した条件で誤差が生じる場合がある。
再生再開位置の時間＜再生再開時間        （２）
【００３０】
そのまま再生し続けると、圧縮データ終端における再生終了時の時間が本来の時間とずれるため、ステップＳ６の再生再開後に、式（３）に従って算出した時間誤差だけ表示時間の更新を遅らせることによって誤差を補正することが可能である。
時間誤差＝再生再開時間−再生再開位置の時間        （３）
【００３１】
再生再開位置を補正した後もなお時間誤差が生じている時には、ステップＳ７の時間誤差補正処理において、表示時間の更新タイミングを変更することによって時間誤差を補正する。
【００３２】
（図１、図４の早送り／巻き戻し処理手順の詳細）
図１において、図３の操作部２４によって早送り／巻き戻し操作が入力されると（ステップＳ１）と、ステップＳ２において早送り／巻き戻し後の時間を算出し（例えば、早送り：現在表示時間＋１、巻き戻し：現在表示時間−１）、この算出した時間で表示時間を更新する（ステップＳ３）。
【００３３】
ステップＳ２における再生時間の具体的な計算は、例えば、次のようにして行う。一般的に、圧縮データ再生装置の表示部２５に表示される時間は秒単位であるため、下記の計算方法に従い、早送り／巻き戻し後の時間を単純に秒単位の加算／減算で算出する。
計算方法：早送り／巻き戻し後の時間＝現在時間＋スキップ時間
計算例：早送り（条件  現在時間＝１分２０秒、スキップ時間＝＋１秒  ）
早送り後の時間＝１分２０秒＋１秒＝１分２１秒
巻き戻し（条件  現在時間＝１分２０秒、スキップ時間＝−１秒）
巻き戻し後の時間＝１分２０秒−１秒＝１分１９秒
【００３４】
次に、ステップＳ４において、早送り／巻き戻し操作が終了しているかを確認する。この確認は、操作部２４の操作によって入力された信号を基に判定する。早送り／巻き戻し操作中である場合は、ステップＳ２に戻って再び時間の計算を行う。ステップＳ３において、早送り／巻き戻し操作が終了していることを確認した場合は、再生再開位置を検索し（ステップＳ５）、再生を再開する。ステップＳ５における再生再開位置の検索は、図４の手順で行う。
【００３５】
図４のステップＳ１０では、図１のステップＳ３で表示した時間を入力する。この時間を再生再開時間とする。ステップＳ１１において、再生開始前に前記式（１）に従って算出しておいた平均バイトレートとステップＳ１０で入力された時間から、式（４）に従って再生再開位置を算出する。
再生再開位置＝平均バイトレート×再生再開時間        （４）
【００３６】
複数のフレーム１０−１〜１０−Ｎによって構成される圧縮データ１は、各フレーム１０の先頭アドレスであるフレームヘッダ１１に同期ワード１１ａが配置されているので、前記式（４）に従って算出した再生再開位置に最も近いフレーム１０を検索する（ステップＳ１２）。ここで検出したフレームをフレーム１０−Ｋとする。フレームヘッダ１１はフレーム１０の位置時間又は位置時間を算出できるフレーム時間情報１１ｂを持っているので、フレーム１０−Ｋの位置時間（Ｔｋ）を取得する（ステップＳ１３）。次に、ステップＳ１３において取得したフレーム位置時間（Ｔｋ）と再生再開時間を比較する（ステップＳ５５）。比較の結果、フレーム位置時間（Ｔｋ）と再生再開時間が等しい場合は、フレーム１０−Ｋを再生再開位置と決定し（ステップＳ１５）、再生再開位置検索処理を終了する。
【００３７】
但し、前記式（４）で算出した再生再開位置は、固定ビットレート形式の圧縮データ１に対しては高精度であるが、可変ビットレート形式の圧縮データ１においては各フレーム１０のサイズが一定ではないので、再生再開時間に対して誤差が生じていることが多い。従って、誤差を補正するためにステップＳ１６以降の誤差補正処理を行うことによって、再生再開位置を補正する。
【００３８】
先ず、フレーム位置時間（Ｔｋ）と再生再開時間の大小を比較する（ステップＳ１６）。再生再開時間よりフレーム位置時間（Ｔｋ）の方が大きい場合は、圧縮データ１の前方へ再生再開位置を補正するために、式（５）に従って再生再開位置を再計算する（ステップＳ１７）。ステップＳ１７において再計算した補正位置へ移動し、再びフレーム検索（ステップＳ１２）を行う。
再計算後の再生再開位置
＝現在の再生再開位置
−［平均バイトレート×フレーム位置時間−再生再開時間）］        （５）
【００３９】
ステップＳ１６の比較において、再生再開時間よりフレーム位置時間（Ｔｋ）の方が小さい場合は、圧縮データ１の後方へ再生再開位置を補正する（ステップＳ１８以降）。但し、圧縮データ前方への補正と同様の方法をとると、バイトレートの平均値を使用しているために前方補正と後方補正を繰り返し、再生再開位置が定まらない可能性がある。従って、後方補正の場合は１フレームずつ補正を行う。
【００４０】
ステップＳ１８において、フレームヘッダ１１からフレームサイズ１１ｅを読み取り、現在のフレーム１０−Ｋの先頭アドレスであるフレームヘッダ１１に加算して次のフレーム１０−（Ｋ＋１）に移動する。もし圧縮形式等によってフレームヘッダ１１にフレームサイズ１１ｅが存在しない場合は、フレームヘッダ１１の同期ワード１１ａを検索してフレーム１０−Ｋを移動する。フレーム移動後、移動先フレーム１０−（Ｋ＋１）のフレーム位置時間（Ｔｋ＋１）を取得し（ステップＳ１９）、フレーム位置時間（Ｔｋ＋１）と再生再開時間を比較する（ステップＳ２０）。ステップＳ２０の比較において、フレーム位置時間（Ｔｋ＋１）と再生再開時間が等しい場合は、ステップＳ１５に移行し、フレームＮ＋１を再生再開位置と決定して再生再開位置検索処理を終了する。
【００４１】
ステップＳ２０の比較において、フレーム位置時間（Ｔｋ＋１）と再生再開時間が等しくない場合は、ステップＳ２１に移行し、フレーム位置時間（Ｔｋ＋１）と再生再開時間の大小を比較する。比較の結果、再生再開時間よりフレーム位置時間（Ｔｋ＋１）の方が小さい場合は、ステップＳ１８へ戻り、後続フレーム１０−（Ｎ＋２）へ移動する。
【００４２】
ステップＳ２１の比較において、再生再開時間よりフレーム位置時間（Ｔｋ＋１）の方が大きい場合は、１つ前のフレーム１０−Ｋを再生再開位置と決定し（ステップＳ２２）、再生再開時間とフレーム１０−Ｋの時間（Ｔｋ）の差を前記式（３）に従って算出（ステップＳ２３）して再生再開位置検索処理を終了する（ステップＳ２４）。以上の手順で再生再開位置を検索する。
【００４３】
図１のステップＳ６の再生再開後、前記式（２）に示した状態になっている場合（ステップＳ２２及びプＳ２３が実行された場合）は、図１のステップＳ７の時間誤差補正処理において前記式（３）で算出した時間誤差だけ表示時間の更新を遅らせ、表示時間と実際の再生時間との誤差を補正する。
【００４４】
（実施例１の効果）
本実施例１によれば、次の（ａ）〜（ｃ）のような効果がある。
【００４５】
（ａ）  早送り／巻き戻し動作中は表示時間のみを更新し、再生再開時に再生再開位置の算出を行う方法を採ることによって、各フレーム１０のフレームヘッダ情報を読み取る方法よりも、早送り／巻き戻し中の処理時間を短縮することが可能である。
【００４６】
（ｂ）  各フレーム１０のフレームヘッダ情報をメモリに確保しないので、メモリ使用量増加の問題も発生しない。
【００４７】
（ｃ）  再生再開位置確定時に再生再開時間との時間誤差が生じていた場合でも、同時に誤差を算出しておくことが可能であり、再生再開後に表示時間の更新タイミングを補正することで表示時間に対して正確な位置での再生を継続することが可能である。
【実施例２】
【００４８】
図５は、本発明の実施例２における図１中のステップＳ５の処理に相当する再生再開位置検索の手順を示すフローチャートである。図６（Ａ）、（Ｂ）は、図５の再生再開位置の補正方法を示す図であり、同図（Ａ）はフレーム数＝正数の場合の補正方法を示す図、及び同図（Ｂ）はフレーム数＝負数の場合の補正方法を示す図である。
【００４９】
本実施例２は、可変ビットレート形式において、各フレームの時間が一定になるように圧縮された圧縮データ１に対する早送り／巻き戻し処理である。この処理では、図１に示すように、早送り／巻き戻し動作中は表示時間のみを更新し、再生再開時に再生再開位置の検索を行う方法については実施例１と同一の処理であるが、フレーム１０の時間長が固定されている圧縮データ１を対象にするので、再生再開位置の検索を図５の再生再開位置検索手順に変更することによって実施例１よりも処理時間を向上することが可能である。以下、本実施例２の再生再開位置検索の手順を説明する。
【００５０】
図５において、再開時間入力（ステップＳ３０）、再生再開位置算出（ステップＳ３１）、フレーム検索（ステップＳ３２）、フレーム時間取得（ステップＳ３３）、フレーム時間と再開時間とが等しいか否かの判定（ステップＳ３４）、及び現在のフレームを再生再開位置とする処理（ステップＳ３５）までの手順は、実施例１の図４のステップＳ１０〜Ｓ１５の処理と同一である。
【００５１】
ステップＳ３４の比較において、フレーム位置時間と再生再開時間が異なる場合が生じる。この理由は、次の通りである。
【００５２】
例えば、圧縮データ再生装置に表示される再生時間は秒単位になっており、圧縮データ１内の各フレーム１０の時間は、１／１０００秒単位で割り付けられている。又、フレーム１０から取得可能な位置時間は、そのフレーム１０の再生が開始される時間（圧縮形式によっては、そのフレーム１０の再生が完了した時の時間（例えは、Ｏｇｇ  Ｖｏｒｂｉｓ形式の圧縮データの場合））になっている。本実施例２では、早送り／巻き戻しの処理時間短縮のために、フレーム時間の逐次取得を行わず、秒単位の計算によって簡単に時間を算出するため、フレーム単位の時間を追っていない。そのため、算出した時間がフレーム１０の途中に当たる時間である場合は、フレーム時間と再開時間が一致していない状態となる。
【００５３】
このように、ステップＳ３４の比較において、フレーム位置時間と再生再開時間が異なる場合は、ステップＳ３６に移行し、式（６）に従って補正フレーム数を算出する。
補正フレーム数
＝（再生再開時間−フレーム位置時間）／フレーム時間長        （６）
【００５４】
補正フレーム数算出後、ステップＳ３７に移行してフレーム位置補正を行う。補正フレーム数が正数である場合は、圧縮データ後方へ補正フレーム数分補正し、これに対して補正フレーム数が負数である場合は、圧縮データ前方へ補正フレーム数分補正する。但し、前記式（６）に従って算出した補正フレーム数は小数（１以下の数）となる場合もある。このような場合は、図６（Ａ）、（Ｂ）に示す以下の（１）又は（２）の方法に従ってフレーム位置を補正する。
【００５５】
（１）  図６（Ａ）の補正フレーム数＝正数の場合の補正方法（圧縮データ後方へ補正）
小数部分を切り捨てたフレーム数補正
（例えば、算出補正フレーム数＝２．５→補正フレーム数＝２）
→補正後の時間関係は以下のようになる。
補正後フレーム位置時間＜再生再開時間
【００５６】
（２）  図６（Ｂ）の補正フレーム数＝負数の場合の補正方法（圧縮データ前方へ補正）
小数部分を切り上げたフレーム数補正
（例えば、算出補正フレーム数＝−２．５→補正フレーム数＝−３）
→補正後の時間関係は以下のようになる。
補正後フレーム位置時間＜再生再開時間
【００５７】
ステップＳ３７でのフレーム位置補正後、新たにフレーム位置時間を取得し（ステップＳ３８）、フレーム位置時間と再生再開時間の比較を行う（ステップＳ３９）。ステップＳ３９の比較において、フレーム位置時間と再生再開時間が等しい場合はステップＳ３５に移行し、現在のフレーム１０を再生再開位置と決定し、再生再開位置検索処理を終了する（ステップＳ４１）。
【００５８】
ステップＳ３９の比較において、フレーム位置時間と再生再開時間が異なる場合は、フレーム位置時間と再生再開時間の差を算出する（ステップＳ４０）。上記フレーム補正方法に従ってフレーム位置補正を行うと、ステップＳ４０におけるフレーム位置時間と再生再開時間の関係は、前記式（２）のようになっているため、実施例１と同様に、前記式（３）に従って時間誤差を算出し、再生再開位置検索処理を終了する（ステップＳ４１）。以上の手順で再生再開位置を検索する。
【００５９】
図１のステップＳ６の再生再開後、再生再開フレームの時間と再生再開時間に誤差が生じている場合（ステップＳ４０が実行された場合）は、図１のステップＳ７の時間誤差補正処理において実施例１と同様に、ステップＳ４０において算出した時間誤差だけ表示時間の更新を遅らせ、表示時間と実際の再生時間との誤差を補正する。
【００６０】
（実施例２の効果）
本実施例２のように、フレーム時間長が一定の可変ビットレート形式の圧縮データ１に対しては、補正フレーム数を算出して再生再開位置を補正する方法を採ることによって、前方補正及び後方補正の回数を減少することができ、実施例１よりも再生再開位置検索処理（図１のステップＳ５）を短縮することが可能となる。
【実施例３】
【００６１】
本実施例３では、本発明の圧縮データ再生方法をOgg Vorbis形式の圧縮データ３０に適用する例を説明する。
【００６２】
図７（Ａ）、（Ｂ）は、Ogg Vorbis形式で圧縮された圧縮データ３０のデータ構造を示す図であり、同図（Ａ）は全体の構造図、及び同図（Ｂ）は同図（Ａ）中のフレームヘッダ及びフレームデータを示す図である。
【００６３】
Ogg Vorbis形式で圧縮された圧縮データ（例えば、圧縮音声データ）３０では、１つの楽曲に対して１つのファイル３１が割り当てられた複数のファイル３１，・・・を有し、各ファイル３１が、複数Ｎのフレーム４０（４０−１〜４０−Ｎ）に区分されて構成されている。各フレーム４０は、フレームヘッダ４１及びフレームデータ４２により構成されているが、Ogg Vorbis形式では、フレームヘッダ４１とは別に圧縮データ３０の先頭に情報フィールド４３が存在する。
【００６４】
Ogg Vorbis形式でのフレームヘッダ４１には、例えば、同期ワードを示すフィールド（capture_pattern）４１ａ、先頭フレームから対象フレームまでのサンプル数の和に相当するgranule positionが格納されているフィールド（absolute granule position）４１ｂ、フレームデータのセグメント数を示すフィールド（page_segments）４１ｃ、及び、各セグメントのサイズを示すフィールド（segment_table）４１ｄの情報が含まれている。各セグメントのサイズを示すフィールド４１では、各セグメントのサイズの合計がフレームデータ４２のサイズとなり、フレームデータ４２のサイズとフレームヘッダ１１のサイズの和が１フレーム分のサイズとなる。
【００６５】
先頭の情報フィールド４３には、例えば、モノラル／ステレオを示すフィールド（audio_channels）４３ａ、後続圧縮データのサンプリング周波数を示すフィールド（audio_sample_rate）４３ｂ、後続圧縮データの最大ビットレートを示すフィールド（bitrate_maximum）４３ｃ、及び、後続圧縮データの最小ビットレートを示すフィールド（bitrate_minimum）４３の情報が含まれている。
【００６６】
Ogg Vorbis形式では、対象データの総再生時間及びフレーム位置時間を、サンプリング周波数とフィールド（absolute granule position）４１ｂに格納されているgranule positionとを使用し、式（７）に従って算出する。
再生時間＝granule position／サンプリング周波数              （７）
【００６７】
この式（７）に従って計算すると、再生対象圧縮データ３０の総再生時間は、最終フレーム４０−Ｎのgranule positionを使用することで算出される。
【００６８】
一方、フレーム位置時間については、対象フレーム４０のgranule positionを使用して計算すると、そのフレーム４０の再生終了時の時間となっている。従って、再生再開位置検索処理（図１のステップＳ５）で検出した再生再開位置がフレーム４０−Ｋであった場合、実際に再生を再開するフレーム４０をフレーム４０−（Ｋ＋１）とすることで、再生再開時間に同期した位置から再生を再開することができる。
【００６９】
本実施例３では、本発明の適用例としてOgg Vorbis形式を挙げたが、前記式（１）〜（７）に示した計算に使用するための総再生時間及びフレーム再生時間の取得方法を、再生対象のデータ形式に合わせて変更することによって、Ogg Vorbis形式以外に対しても適用可能である。
【００７０】
又、本発明の圧縮データ再生方法を実施するための圧縮データ再生装置は、図３の回路構成に限定されず、種々の変形や利用形態が可能である。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施例１における早送り／巻き戻し処理手順を示すフローチャートである。
【図２】従来の一般的な圧縮データのデータ構造を示す図である。
【図３】本発明の実施例１を示す圧縮データ再生装置の概略の構成図である。
【図４】図１中の再生再開位置検索の手順を示すフローチャートである。
【図５】本発明の実施例２における図１中のステップＳ５の処理に相当する再生再開位置検索の手順を示すフローチャートである。
【図６】図５の再生再開位置の補正方法を示す図である。
【図７】Ogg Vorbis形式で圧縮された圧縮データ３０のデータ構造を示す図である。
【符号の説明】
【００７２】
２０      記録媒体
２２      信号処理部
２２ａ      再生処理部
２２ｂ      早送り／巻き戻し処理部
２３      制御部
２４      操作部
２５      表示部
Ｓ１      早送り／巻き戻し操作入力
Ｓ２      生成時間計算処理
Ｓ３      表示時間更新処理
Ｓ４      早送り／巻き戻し操作終了確認
Ｓ５      再生再開位置検索処理
Ｓ６      再生再開処理
Ｓ７      時間誤差補正処理
【図１】
2007293973.tif 000003
【図２】
2007293973.tif 000004
【図３】
2007293973.tif 000005
【図４】
2007293973.tif 000006
【図５】
2007293973.tif 000007
【図６】
2007293973.tif 000008
【図７】
2007293973.tif 000009