説明

圧縮データ再生方法

【課題】早送り/巻き戻し動作の高速化を図る。
【解決手段】圧縮データにおける早送り/巻き戻し動作中において(ステップS1)、フレームヘッダ情報の読み出しを行わず表示時間のみ更新し(ステップS2〜S4)、再生再開時にフレームヘッダ情報を読み出し、再生再開位置を検索(ステップS5)している。これにより、各フレームのフレームヘッダ情報を読み取る方法よりも、早送り/巻き戻し中の処理時間を短縮することが可能である。しかも、各フレームのフレームヘッダ情報をメモリに確保しないので、メモリ使用量増加の問題も発生しない。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、MP3(MPEG Audio Layer-3)形式等で圧縮された圧縮データにおける早送り/巻き戻しを行った場合の再生時間と再生再開位置の算出方法に特徴のある圧縮データ再生方法に関するものである。
【背景技術】
【0002】
従来、MP3形式等で圧縮された圧縮データを再生する圧縮データ再生方法に関する技術としては、例えば、次のような文献等に記載されるものがあった。
【0003】
【特許文献1】特開2003−6992号公報
【特許文献2】特開2005−310306号公報
【0004】
この特許文献1には、処理の負担が小さくて済み、必要なメモリ量の増加を招くことがない早送り/巻き戻し可能な情報再生方法及び情報再生装置の技術が記載されている。又、特許文献2には、可変ビットレート形式で圧縮された圧縮データの早送り/巻き戻しを行っても、再生再開位置の再生時間表示に逆転現象の生じない再生時間表示用装置及び再生時間算出方法の技術が記載されている。
【0005】
特許文献1に記載されているように、MP3形式等の圧縮データ(例えば、圧縮音声データ)を再生する圧縮データ再生装置では、記録媒体(例えば、ハードディスク、フラッシュメモリ等)に記録された圧縮データを読み出し、読み出した圧縮データを伸張して再生し、曲毎の再生時間を表示する構成になっている。又、通常再生の他に、早送り/巻き戻し機能等を持っている。
【0006】
図2は、従来の一般的な圧縮データのデータ構造を示す図である。
一般に、MP3形式で圧縮された圧縮データ(例えば、圧縮音声データ)1では、1つの楽曲に対して1つのファイル2が割り当てられた複数のファイル2,・・・を有し、各ファイル2が、複数Nのフレーム10(10−1〜10−N)に区分されて構成されている。各フレーム10は、フレームヘッダ11及びフレームデータ12により構成されている。フレームヘッダ11に含まれている情報には、例えば、同期ワード11a、フレーム時間情報11b、ビットレート11c、サンプリング周波数11d、及びフレームサイズ11e等がある。一般的に、同期ワード11aは、フレームヘッダ11の先頭に配置されるが、その他の情報11b,・・・については、圧縮形式によって配置位置が異なる。ビットレート11cにおいて、固定ビットレート形式で圧縮されたデータでは、各フレーム10のサイズは一定になっており、これに対して可変ビットレート形式で圧縮されたデータにおいては、各フレーム10のサイズはフレーム毎に異なる。
【0007】
この種の圧縮データ1において、通常の再生を行う場合は、ファイル2,・・・のフレーム10−1〜10−Nを順次読み出し、読み出した順に再生する。これに対し、早送り/巻き戻し動作、早送り/巻き戻し開始時(例えば、フレーム10−1)から早送り/巻き戻し終了時点の再生再開時(例えば、フレーム10−15)までの早送りの動作では、複数のフレーム10−2〜10−14を読み飛ばすことによって実現されている。
【0008】
固定ビットレート形式では、各フレーム10のサイズが一定であるので、フレーム10−2〜10−14を読み飛ばす処理を容易に行えるが、可変ビットレート形式では、各フレーム10のサイズがフレーム10毎に異なるので、特許文献1の技術では、読み飛ばすフレーム10−2〜10−14における各フレームヘッダ11の情報を読み取り、フレームサイズを判断して読み飛ばす手法を採っている。
【発明の開示】
【発明が解決しようとする課題】
【0009】
従来の圧縮データ再生方法において、早送り/巻き戻し動作では、各フレーム10のフレームヘッダ情報を読み取るために記録媒体からの圧縮データ読み出しとフレームヘッダ情報の読み取りを連続に行うことになる。一般にハードディスク等の記録媒体からのデータ読み出しには処理時間が長く掛かるため、早送り/巻き戻し動作においては処理速度が低下し、操作性が悪くなる。
【0010】
記録媒体からの圧縮データ読み出し時間を短縮させるために、各フレーム10の位置時間及びアドレス等をメモリに確保しておく方法もあるが、フレーム数に比例して必要なメモリ量が増加するという問題が生じる。
【0011】
これを解決するために、従来の特許文献1の技術では、上述したように、読み飛ばすフレームにおける各フレームヘッダ情報を読み取り、フレームサイズを判断して読み飛ばす手法を採っている。しかしながら、このような手法を採用しても、圧縮データ再生装置の小型化等を図るために再生機能をソフトウェアによって実現しているので、依然として早送り/巻き戻し動作が遅く、高速化を図ることが困難であった。
【課題を解決するための手段】
【0012】
請求項1に係る発明は、圧縮符号化され、フレームヘッダ及びフレームデータからなるフレームが複数連続するデータ構造の圧縮データを伸張して再生すると共に再生時間の表示を行う圧縮データ再生方法において、通常の再生を行う場合は、複数の前記フレームを順次読み出して読み出した順に再生する。早送り/巻き戻しを行う場合は、前記早送り/巻き戻し開始時から前記早送り/巻き戻し終了時点の再生再開時までの早送り/巻き戻し期間において、前記フレームヘッダの読み出しを行わずに表示時間のみ更新し、前記再生再開時に前記フレームヘッダを読み出し、再生再開位置の検索処理を行う。
【0013】
請求項2に係る発明は、請求項1の圧縮データ再生方法において、前記再生再開位置の検索処理では、前記圧縮データの1秒当たりのバイト数である平均バイトレートと再生再開時間とから前記再生再開位置を算出し、算出された再生再開位置における時間と前記再生再開時間とに誤差が生じている時には、前記算出された再生再開位置を補正することによって時間誤差を補正する。
【0014】
請求項3に係る発明は、請求項2の圧縮データ再生方法において、前記再生再開位置を補正した後もなお前記時間誤差が生じている時には、前記表示時間の更新タイミングを変更することによって前記時間誤差を補正する。
【発明の効果】
【0015】
請求項1に係る発明によれば、圧縮データにおける早送り/巻き戻し動作中において、フレームヘッダ情報の読み出しを行わず表示時間のみ更新し、再生再開時にフレームヘッダ情報を読み出し、再生再開位置を検索するようにしたので、各フレームのフレームヘッダ情報を読み取る方法よりも、早送り/巻き戻し中の処理時間を短縮することが可能である。しかも、各フレームのフレームヘッダ情報をメモリに確保しないので、メモリ使用量増加の問題も発生しない。
【0016】
請求項2に係る発明によれば、再生再開位置の検索処理において、圧縮データの1秒当たりのバイト数(平均バイトレート)と再生再開時間とから再生再開位置を算出し、算出された再生再開位置における時間と再生再開時間に誤差が生じている時には、再生再開位置を補正することによって時間誤差を補正するようにしたので、再生再開位置確定時に再生再開時間との時間誤差が生じていた場合でも、同時に誤差を算出しておくことが可能であり、再生再開後に表示時間の更新タイミングを補正することで表示時間に対して正確な位置での再生を継続することが可能である。
【0017】
請求項3に係る発明によれば、再生再開位置の確定後もなお時間誤差が生じている時には、表示時間の更新タイミングを変更することによって時間誤差を補正するようにしたので、正確な再生時間を表示できる。
【発明を実施するための最良の形態】
【0018】
圧縮データ再生方法は、圧縮データにおける早送り/巻き戻し動作中において、フレームヘッダ情報の読み出しを行わず表示時間のみ更新し、再生再開時にフレームヘッダ情報を読み出し、再生再開位置を検索している。
【実施例1】
【0019】
(実施例1の構成)
図3は、本発明の実施例1を示す圧縮データ再生装置の概略の構成図である。
【0020】
この圧縮データ再生装置は、ハードディスク、フラッシュメモリ等の記録媒体20に記録された図2に示すようなMP3形式等の圧縮データ(例えば、音声圧縮データ)1を読み出すデータ読み出し部21を有し、このデータ読み出し部21に信号処理部22が接続されている。信号処理部22は、データ読み出し部21で読み出された圧縮データ1を伸張して再生する再生処理部22aと、その圧縮データ1に対する早送り/巻き戻し処理を行う早送り/巻き戻し処理部22bとを有し、この信号処理部22に制御部23が接続されている。
【0021】
制御部23は、信号処理部22を含めた圧縮データ再生装置全体をプログラム制御する機能を有し、この制御部23に操作部24及び表示部25が接続されている。操作部24は、再生開始、再生停止、早送り/巻き戻し等を操作するスイッチ等で構成されている。表示部25は、再生時間等を表示する液晶(LCD)等で構成されている。又、信号処理部22の出力側には、ディジタル/アナログ(以下「D/A」という。)変換器26が接続されている。D/A変換器26は、信号処理部22で再生されたデータ(例えば、音声データ)をアナログ信号に変換して音声信号を出力する回路である。
【0022】
信号処理部22、及び制御部23等は、中央処理装置(以下「CPU」という。)を用いたプロセッサ等により構成されている。
【0023】
(実施例1の圧縮データ再生方法の概略)
図3の圧縮データ再生装置において、使用者が操作部24を操作して通常の再生指示を入力すると、制御部23の制御により、データ読み出し部21が動作し、記録媒体20から圧縮データ1中の複数のフレーム10−1〜10−Nが順次読み出される。読み出されたフレーム10−1〜10−Nは、読み出された順に、信号処理部22内の再生処理部22aにより再生され、制御部23の制御によって再生時間が表示部25に表示されると共に、再生された音声データがD/A変換器26によりアナログ音声信号に変換されて出力される。
【0024】
図1は、本発明の実施例1における早送り/巻き戻し処理手順を示すフローチャートである。図4は、図1中の再生再開位置検索の手順を示すフローチャートである。
【0025】
本実施例1の特徴は、早送り/巻き戻し動作中は表示時間のみを更新し、再生再開時に再生再開位置を検索することによって早送り/巻き戻し動作中の処理速度の低下を低減している。
【0026】
先ず、通常の再生開始時に、再生処理部22aにより、再生対象となる圧縮データ1のサイズとそのデータの総再生時間を取得し、式(1)に従って平均バイトレートを算出しておく。
平均バイトレート=対象圧縮データのサイズ/総再生時間 (1)
平均バイトレートとは、1秒当たりのバイト数であり、バイトレートとビットレートは以下の関係にある。算出した平均バイトレートは再生再開位置検索時に使用する。
バイトレート[bytes/sec]=ビットレート[bits/sec]/8
【0027】
図1のステップS1において、操作部24から早送り/巻き戻し操作が入力されると、制御部23で制御される信号処理部22内の早送り/巻き戻し処理部22bにより、図2に示したステップS2〜S6に従って表示時間の更新と再生再開位置の算出を行う。
【0028】
早送り/巻き戻し動作中は、ステップS2で再生時間の計算、ステップS3で表示時間の更新、及び、ステップS4で早送り/巻き戻し操作が終了したか否かの確認を行い、これらのステップS2〜S4を繰り返し、表示時間のみ更新する。
【0029】
ステップS4における早送り/巻き戻し操作が終了すると、ステップS5へ移行し、再生再開位置を検索し、再生を再開する。再生再開位置については、後述する図4に示すステップS10〜S24に従って検索する。但し、図4の手順で算出した再生再開位置の時間は、再生再開時間(表示中の時間)に対して式(2)に示した条件で誤差が生じる場合がある。
再生再開位置の時間<再生再開時間 (2)
【0030】
そのまま再生し続けると、圧縮データ終端における再生終了時の時間が本来の時間とずれるため、ステップS6の再生再開後に、式(3)に従って算出した時間誤差だけ表示時間の更新を遅らせることによって誤差を補正することが可能である。
時間誤差=再生再開時間−再生再開位置の時間 (3)
【0031】
再生再開位置を補正した後もなお時間誤差が生じている時には、ステップS7の時間誤差補正処理において、表示時間の更新タイミングを変更することによって時間誤差を補正する。
【0032】
(図1、図4の早送り/巻き戻し処理手順の詳細)
図1において、図3の操作部24によって早送り/巻き戻し操作が入力されると(ステップS1)と、ステップS2において早送り/巻き戻し後の時間を算出し(例えば、早送り:現在表示時間+1、巻き戻し:現在表示時間−1)、この算出した時間で表示時間を更新する(ステップS3)。
【0033】
ステップS2における再生時間の具体的な計算は、例えば、次のようにして行う。一般的に、圧縮データ再生装置の表示部25に表示される時間は秒単位であるため、下記の計算方法に従い、早送り/巻き戻し後の時間を単純に秒単位の加算/減算で算出する。
計算方法:早送り/巻き戻し後の時間=現在時間+スキップ時間
計算例:早送り(条件 現在時間=1分20秒、スキップ時間=+1秒 )
早送り後の時間=1分20秒+1秒=1分21秒
巻き戻し(条件 現在時間=1分20秒、スキップ時間=−1秒)
巻き戻し後の時間=1分20秒−1秒=1分19秒
【0034】
次に、ステップS4において、早送り/巻き戻し操作が終了しているかを確認する。この確認は、操作部24の操作によって入力された信号を基に判定する。早送り/巻き戻し操作中である場合は、ステップS2に戻って再び時間の計算を行う。ステップS3において、早送り/巻き戻し操作が終了していることを確認した場合は、再生再開位置を検索し(ステップS5)、再生を再開する。ステップS5における再生再開位置の検索は、図4の手順で行う。
【0035】
図4のステップS10では、図1のステップS3で表示した時間を入力する。この時間を再生再開時間とする。ステップS11において、再生開始前に前記式(1)に従って算出しておいた平均バイトレートとステップS10で入力された時間から、式(4)に従って再生再開位置を算出する。
再生再開位置=平均バイトレート×再生再開時間 (4)
【0036】
複数のフレーム10−1〜10−Nによって構成される圧縮データ1は、各フレーム10の先頭アドレスであるフレームヘッダ11に同期ワード11aが配置されているので、前記式(4)に従って算出した再生再開位置に最も近いフレーム10を検索する(ステップS12)。ここで検出したフレームをフレーム10−Kとする。フレームヘッダ11はフレーム10の位置時間又は位置時間を算出できるフレーム時間情報11bを持っているので、フレーム10−Kの位置時間(Tk)を取得する(ステップS13)。次に、ステップS13において取得したフレーム位置時間(Tk)と再生再開時間を比較する(ステップS55)。比較の結果、フレーム位置時間(Tk)と再生再開時間が等しい場合は、フレーム10−Kを再生再開位置と決定し(ステップS15)、再生再開位置検索処理を終了する。
【0037】
但し、前記式(4)で算出した再生再開位置は、固定ビットレート形式の圧縮データ1に対しては高精度であるが、可変ビットレート形式の圧縮データ1においては各フレーム10のサイズが一定ではないので、再生再開時間に対して誤差が生じていることが多い。従って、誤差を補正するためにステップS16以降の誤差補正処理を行うことによって、再生再開位置を補正する。
【0038】
先ず、フレーム位置時間(Tk)と再生再開時間の大小を比較する(ステップS16)。再生再開時間よりフレーム位置時間(Tk)の方が大きい場合は、圧縮データ1の前方へ再生再開位置を補正するために、式(5)に従って再生再開位置を再計算する(ステップS17)。ステップS17において再計算した補正位置へ移動し、再びフレーム検索(ステップS12)を行う。
再計算後の再生再開位置
=現在の再生再開位置
−[平均バイトレート×フレーム位置時間−再生再開時間)] (5)
【0039】
ステップS16の比較において、再生再開時間よりフレーム位置時間(Tk)の方が小さい場合は、圧縮データ1の後方へ再生再開位置を補正する(ステップS18以降)。但し、圧縮データ前方への補正と同様の方法をとると、バイトレートの平均値を使用しているために前方補正と後方補正を繰り返し、再生再開位置が定まらない可能性がある。従って、後方補正の場合は1フレームずつ補正を行う。
【0040】
ステップS18において、フレームヘッダ11からフレームサイズ11eを読み取り、現在のフレーム10−Kの先頭アドレスであるフレームヘッダ11に加算して次のフレーム10−(K+1)に移動する。もし圧縮形式等によってフレームヘッダ11にフレームサイズ11eが存在しない場合は、フレームヘッダ11の同期ワード11aを検索してフレーム10−Kを移動する。フレーム移動後、移動先フレーム10−(K+1)のフレーム位置時間(Tk+1)を取得し(ステップS19)、フレーム位置時間(Tk+1)と再生再開時間を比較する(ステップS20)。ステップS20の比較において、フレーム位置時間(Tk+1)と再生再開時間が等しい場合は、ステップS15に移行し、フレームN+1を再生再開位置と決定して再生再開位置検索処理を終了する。
【0041】
ステップS20の比較において、フレーム位置時間(Tk+1)と再生再開時間が等しくない場合は、ステップS21に移行し、フレーム位置時間(Tk+1)と再生再開時間の大小を比較する。比較の結果、再生再開時間よりフレーム位置時間(Tk+1)の方が小さい場合は、ステップS18へ戻り、後続フレーム10−(N+2)へ移動する。
【0042】
ステップS21の比較において、再生再開時間よりフレーム位置時間(Tk+1)の方が大きい場合は、1つ前のフレーム10−Kを再生再開位置と決定し(ステップS22)、再生再開時間とフレーム10−Kの時間(Tk)の差を前記式(3)に従って算出(ステップS23)して再生再開位置検索処理を終了する(ステップS24)。以上の手順で再生再開位置を検索する。
【0043】
図1のステップS6の再生再開後、前記式(2)に示した状態になっている場合(ステップS22及びプS23が実行された場合)は、図1のステップS7の時間誤差補正処理において前記式(3)で算出した時間誤差だけ表示時間の更新を遅らせ、表示時間と実際の再生時間との誤差を補正する。
【0044】
(実施例1の効果)
本実施例1によれば、次の(a)〜(c)のような効果がある。
【0045】
(a) 早送り/巻き戻し動作中は表示時間のみを更新し、再生再開時に再生再開位置の算出を行う方法を採ることによって、各フレーム10のフレームヘッダ情報を読み取る方法よりも、早送り/巻き戻し中の処理時間を短縮することが可能である。
【0046】
(b) 各フレーム10のフレームヘッダ情報をメモリに確保しないので、メモリ使用量増加の問題も発生しない。
【0047】
(c) 再生再開位置確定時に再生再開時間との時間誤差が生じていた場合でも、同時に誤差を算出しておくことが可能であり、再生再開後に表示時間の更新タイミングを補正することで表示時間に対して正確な位置での再生を継続することが可能である。
【実施例2】
【0048】
図5は、本発明の実施例2における図1中のステップS5の処理に相当する再生再開位置検索の手順を示すフローチャートである。図6(A)、(B)は、図5の再生再開位置の補正方法を示す図であり、同図(A)はフレーム数=正数の場合の補正方法を示す図、及び同図(B)はフレーム数=負数の場合の補正方法を示す図である。
【0049】
本実施例2は、可変ビットレート形式において、各フレームの時間が一定になるように圧縮された圧縮データ1に対する早送り/巻き戻し処理である。この処理では、図1に示すように、早送り/巻き戻し動作中は表示時間のみを更新し、再生再開時に再生再開位置の検索を行う方法については実施例1と同一の処理であるが、フレーム10の時間長が固定されている圧縮データ1を対象にするので、再生再開位置の検索を図5の再生再開位置検索手順に変更することによって実施例1よりも処理時間を向上することが可能である。以下、本実施例2の再生再開位置検索の手順を説明する。
【0050】
図5において、再開時間入力(ステップS30)、再生再開位置算出(ステップS31)、フレーム検索(ステップS32)、フレーム時間取得(ステップS33)、フレーム時間と再開時間とが等しいか否かの判定(ステップS34)、及び現在のフレームを再生再開位置とする処理(ステップS35)までの手順は、実施例1の図4のステップS10〜S15の処理と同一である。
【0051】
ステップS34の比較において、フレーム位置時間と再生再開時間が異なる場合が生じる。この理由は、次の通りである。
【0052】
例えば、圧縮データ再生装置に表示される再生時間は秒単位になっており、圧縮データ1内の各フレーム10の時間は、1/1000秒単位で割り付けられている。又、フレーム10から取得可能な位置時間は、そのフレーム10の再生が開始される時間(圧縮形式によっては、そのフレーム10の再生が完了した時の時間(例えは、Ogg Vorbis形式の圧縮データの場合))になっている。本実施例2では、早送り/巻き戻しの処理時間短縮のために、フレーム時間の逐次取得を行わず、秒単位の計算によって簡単に時間を算出するため、フレーム単位の時間を追っていない。そのため、算出した時間がフレーム10の途中に当たる時間である場合は、フレーム時間と再開時間が一致していない状態となる。
【0053】
このように、ステップS34の比較において、フレーム位置時間と再生再開時間が異なる場合は、ステップS36に移行し、式(6)に従って補正フレーム数を算出する。
補正フレーム数
=(再生再開時間−フレーム位置時間)/フレーム時間長 (6)
【0054】
補正フレーム数算出後、ステップS37に移行してフレーム位置補正を行う。補正フレーム数が正数である場合は、圧縮データ後方へ補正フレーム数分補正し、これに対して補正フレーム数が負数である場合は、圧縮データ前方へ補正フレーム数分補正する。但し、前記式(6)に従って算出した補正フレーム数は小数(1以下の数)となる場合もある。このような場合は、図6(A)、(B)に示す以下の(1)又は(2)の方法に従ってフレーム位置を補正する。
【0055】
(1) 図6(A)の補正フレーム数=正数の場合の補正方法(圧縮データ後方へ補正)
小数部分を切り捨てたフレーム数補正
(例えば、算出補正フレーム数=2.5→補正フレーム数=2)
→補正後の時間関係は以下のようになる。
補正後フレーム位置時間<再生再開時間
【0056】
(2) 図6(B)の補正フレーム数=負数の場合の補正方法(圧縮データ前方へ補正)
小数部分を切り上げたフレーム数補正
(例えば、算出補正フレーム数=−2.5→補正フレーム数=−3)
→補正後の時間関係は以下のようになる。
補正後フレーム位置時間<再生再開時間
【0057】
ステップS37でのフレーム位置補正後、新たにフレーム位置時間を取得し(ステップS38)、フレーム位置時間と再生再開時間の比較を行う(ステップS39)。ステップS39の比較において、フレーム位置時間と再生再開時間が等しい場合はステップS35に移行し、現在のフレーム10を再生再開位置と決定し、再生再開位置検索処理を終了する(ステップS41)。
【0058】
ステップS39の比較において、フレーム位置時間と再生再開時間が異なる場合は、フレーム位置時間と再生再開時間の差を算出する(ステップS40)。上記フレーム補正方法に従ってフレーム位置補正を行うと、ステップS40におけるフレーム位置時間と再生再開時間の関係は、前記式(2)のようになっているため、実施例1と同様に、前記式(3)に従って時間誤差を算出し、再生再開位置検索処理を終了する(ステップS41)。以上の手順で再生再開位置を検索する。
【0059】
図1のステップS6の再生再開後、再生再開フレームの時間と再生再開時間に誤差が生じている場合(ステップS40が実行された場合)は、図1のステップS7の時間誤差補正処理において実施例1と同様に、ステップS40において算出した時間誤差だけ表示時間の更新を遅らせ、表示時間と実際の再生時間との誤差を補正する。
【0060】
(実施例2の効果)
本実施例2のように、フレーム時間長が一定の可変ビットレート形式の圧縮データ1に対しては、補正フレーム数を算出して再生再開位置を補正する方法を採ることによって、前方補正及び後方補正の回数を減少することができ、実施例1よりも再生再開位置検索処理(図1のステップS5)を短縮することが可能となる。
【実施例3】
【0061】
本実施例3では、本発明の圧縮データ再生方法をOgg Vorbis形式の圧縮データ30に適用する例を説明する。
【0062】
図7(A)、(B)は、Ogg Vorbis形式で圧縮された圧縮データ30のデータ構造を示す図であり、同図(A)は全体の構造図、及び同図(B)は同図(A)中のフレームヘッダ及びフレームデータを示す図である。
【0063】
Ogg Vorbis形式で圧縮された圧縮データ(例えば、圧縮音声データ)30では、1つの楽曲に対して1つのファイル31が割り当てられた複数のファイル31,・・・を有し、各ファイル31が、複数Nのフレーム40(40−1〜40−N)に区分されて構成されている。各フレーム40は、フレームヘッダ41及びフレームデータ42により構成されているが、Ogg Vorbis形式では、フレームヘッダ41とは別に圧縮データ30の先頭に情報フィールド43が存在する。
【0064】
Ogg Vorbis形式でのフレームヘッダ41には、例えば、同期ワードを示すフィールド(capture_pattern)41a、先頭フレームから対象フレームまでのサンプル数の和に相当するgranule positionが格納されているフィールド(absolute granule position)41b、フレームデータのセグメント数を示すフィールド(page_segments)41c、及び、各セグメントのサイズを示すフィールド(segment_table)41dの情報が含まれている。各セグメントのサイズを示すフィールド41では、各セグメントのサイズの合計がフレームデータ42のサイズとなり、フレームデータ42のサイズとフレームヘッダ11のサイズの和が1フレーム分のサイズとなる。
【0065】
先頭の情報フィールド43には、例えば、モノラル/ステレオを示すフィールド(audio_channels)43a、後続圧縮データのサンプリング周波数を示すフィールド(audio_sample_rate)43b、後続圧縮データの最大ビットレートを示すフィールド(bitrate_maximum)43c、及び、後続圧縮データの最小ビットレートを示すフィールド(bitrate_minimum)43の情報が含まれている。
【0066】
Ogg Vorbis形式では、対象データの総再生時間及びフレーム位置時間を、サンプリング周波数とフィールド(absolute granule position)41bに格納されているgranule positionとを使用し、式(7)に従って算出する。
再生時間=granule position/サンプリング周波数 (7)
【0067】
この式(7)に従って計算すると、再生対象圧縮データ30の総再生時間は、最終フレーム40−Nのgranule positionを使用することで算出される。
【0068】
一方、フレーム位置時間については、対象フレーム40のgranule positionを使用して計算すると、そのフレーム40の再生終了時の時間となっている。従って、再生再開位置検索処理(図1のステップS5)で検出した再生再開位置がフレーム40−Kであった場合、実際に再生を再開するフレーム40をフレーム40−(K+1)とすることで、再生再開時間に同期した位置から再生を再開することができる。
【0069】
本実施例3では、本発明の適用例としてOgg Vorbis形式を挙げたが、前記式(1)〜(7)に示した計算に使用するための総再生時間及びフレーム再生時間の取得方法を、再生対象のデータ形式に合わせて変更することによって、Ogg Vorbis形式以外に対しても適用可能である。
【0070】
又、本発明の圧縮データ再生方法を実施するための圧縮データ再生装置は、図3の回路構成に限定されず、種々の変形や利用形態が可能である。
【図面の簡単な説明】
【0071】
【図1】本発明の実施例1における早送り/巻き戻し処理手順を示すフローチャートである。
【図2】従来の一般的な圧縮データのデータ構造を示す図である。
【図3】本発明の実施例1を示す圧縮データ再生装置の概略の構成図である。
【図4】図1中の再生再開位置検索の手順を示すフローチャートである。
【図5】本発明の実施例2における図1中のステップS5の処理に相当する再生再開位置検索の手順を示すフローチャートである。
【図6】図5の再生再開位置の補正方法を示す図である。
【図7】Ogg Vorbis形式で圧縮された圧縮データ30のデータ構造を示す図である。
【符号の説明】
【0072】
20 記録媒体
22 信号処理部
22a 再生処理部
22b 早送り/巻き戻し処理部
23 制御部
24 操作部
25 表示部
S1 早送り/巻き戻し操作入力
S2 生成時間計算処理
S3 表示時間更新処理
S4 早送り/巻き戻し操作終了確認
S5 再生再開位置検索処理
S6 再生再開処理
S7 時間誤差補正処理

【特許請求の範囲】
【請求項1】
圧縮符号化され、フレームヘッダ及びフレームデータからなるフレームが複数連続するデータ構造の圧縮データを伸張して再生すると共に再生時間の表示を行う圧縮データ再生方法において、
通常の再生を行う場合は、複数の前記フレームを順次読み出して読み出した順に再生し、
早送り/巻き戻しを行う場合は、前記早送り/巻き戻し開始時から前記早送り/巻き戻し終了時点の再生再開時までの早送り/巻き戻し期間において、前記フレームヘッダの読み出しを行わずに表示時間のみ更新し、前記再生再開時に前記フレームヘッダを読み出し、再生再開位置の検索処理を行うことを特徴とする圧縮データ再生方法。
【請求項2】
請求項1記載の圧縮データ再生方法において
前記再生再開位置の検索処理では、前記圧縮データの1秒当たりのバイト数である平均バイトレートと再生再開時間とから前記再生再開位置を算出し、算出された再生再開位置における時間と前記再生再開時間とに誤差が生じている時には、前記算出された再生再開位置を補正することによって時間誤差を補正することを特徴とする圧縮データ再生方法。
【請求項3】
請求項2記載の圧縮データ再生方法において
前記再生再開位置を補正した後もなお前記時間誤差が生じている時には、前記表示時間の更新タイミングを変更することによって前記時間誤差を補正することを特徴とする圧縮データ再生方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2007−293973(P2007−293973A)
【公開日】平成19年11月8日(2007.11.8)
【国際特許分類】
【出願番号】特願2006−119064(P2006−119064)
【出願日】平成18年4月24日(2006.4.24)
【出願人】(000000295)沖電気工業株式会社 (6,645)
【Fターム(参考)】