(57)【要約】【課題】可変ビットレートで圧縮されたオーディオデータに対し、早送り／早戻し処理を行った場合であっても、正確な再生時間の表示を実現する。【解決手段】［ａ］可変ビットレート（ＶＢＲ）で圧縮された圧縮オーディオデータを読み出すステップと、［ｂ］圧縮オーディオデータの複数のフレームのうち、任意のフレームのビットレート値を取得するステップと、［ｃ］取得したビットレート値に基づいて、圧縮オーディオデータの再生時間を算出するステップとを具備する方法によって、圧縮オーディオデータの再生を行う。その取得するステップは、［ｂ１］圧縮オーディオデータの過去の再生位置から、現在の再生位置に移動したことを認識するステップと、［ｂ２］現在の再生位置に対応するフレームである現在フレームのビットレート値が取得済み場合、現在フレームのビットレート値の取得を禁止するステップとを備える。【選択図】図２
2012226801.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）可変ビットレート（ＶＢＲ）で圧縮された圧縮オーディオデータを読み出すステップと、
（ｂ）前記圧縮オーディオデータの複数のフレームのうち、任意のフレームのビットレート値を取得するステップと、
（ｃ）取得した前記ビットレート値に基づいて、前記圧縮オーディオデータの再生時間を算出するステップと、
を具備し、
前記取得するステップは、
（ｂ１）前記圧縮オーディオデータの過去の再生位置から、現在の再生位置に移動したことを認識するステップと、
（ｂ２）前記現在の再生位置に対応するフレームである現在フレームの前記ビットレート値が取得済み場合、前記現在フレームの前記ビットレート値の取得を禁止するステップと
を備える
圧縮オーディオデータの再生方法。
【請求項２】
請求項１に記載の圧縮オーディオデータの再生方法において、
前記算出するステップは、
（ｃ１）前記現在フレームの前記ビットレート値が取得済み場合、前記ビットレート値に依存することなく前記圧縮オーディオデータの再生時間を算出するステップ
を備える
圧縮オーディオデータの再生方法。
【請求項３】
請求項２に記載の圧縮オーディオデータの再生方法において、
前記取得するステップは、さらに、
（ｂ３）前記ビットレート値の取得が完了しているフレームを示すビットレート値取得済フレーム情報を有するビットレート取得テーブルを生成するステップ
を備え、
前記（ｂ２）ステップは、
前記ビットレート取得テーブルを参照して、前記現在フレームの前記ビットレート値が取得済みか否かを判断するステップを含む
圧縮オーディオデータの再生方法。
【請求項４】
請求項３に記載の圧縮オーディオデータの再生方法において、
前記（ｂ３）ステップは、さらに、
前記圧縮オーディオデータの再生に応答して、前記圧縮オーディオデータの先頭から順番に、前記ビットレート値を取得するステップと、
前記複数のフレームの各々に対し、前記ビットレート値の取得が終了したことを示す判定ビットと、前記ビットレート値が取得済みの前記フレームの位置との対応を示す情報を、前記ビットレート値取得済フレーム情報として前記ビットレート取得テーブルを生成するステップと
を含む
圧縮オーディオデータの再生方法。
【請求項５】
請求項４に記載の圧縮オーディオデータの再生方法において、
前記（ｂ３）ステップは、さらに、
前記圧縮オーディオデータの再生中に、一定の時間ごとに前記ビットレート値を取得するステップと、
前記一定の時間ごとに前記圧縮オーディオデータの先頭からのバイト数を取得するステップと、
前記先頭からの前記バイト数に基づいて、前記ビットレート値が取得済みの前記フレームの位置を特定して、前記ビットレート取得テーブルを生成するステップ
を含む
圧縮オーディオデータの再生方法。
【請求項６】
請求項５に記載の圧縮オーディオデータの再生方法において、
前記取得するステップは、さらに、
（ｂ４）前記ビットレート値の取得が完了しているフレームから前記ビットレート値の取得が完了していないフレームに前記圧縮オーディオデータの再生位置が移動したとき、前記ビットレート値の取得が完了していないフレームの前記ビットレート値を、一定の時間ごとに取得するステップ
を備える
圧縮オーディオデータの再生方法。
【請求項７】
請求項１から６の何れか一項に記載のオーディオ再生方法において、さらに、
（ｄ）前記圧縮オーディオデータを読み出した後、再生開始の前に、前記再生時間を初期化するステップと、
（ｅ）前記圧縮オーディオデータを読み出した後、再生開始の前に、前記ビットレート取得テーブルを初期化するステップを
を具備する
圧縮オーディオデータの再生方法。
【請求項８】
請求項１から７の何れか一項に記載のオーディオ再生方法において、さらに、
（ｆ）前記再生時間を表示するステップを具備する
圧縮オーディオデータの再生方法。
【請求項９】
可変ビットレート（ＶＢＲ）で圧縮された圧縮オーディオデータの複数のフレームのうち、任意のフレームのビットレート値を取得するビットレート取得判断部と、
取得した前記ビットレート値に基づいて、前記圧縮オーディオデータの再生時間を算出する再生時間計算部と、
前記ビットレート値の取得が完了しているフレームを示すビットレート値取得済フレーム情報を有するビットレート取得テーブルを保持するビットレート取得テーブル格納部と
を具備し、
前記ビットレート取得判断部は、
前記ビットレート取得テーブルを参照して、現在の再生位置に対応するフレームである現在フレームの前記ビットレート値が取得済みか否かを判断し、前記現在フレームの前記ビットレート値が取得済み場合、前記現在フレームの前記ビットレート値の取得を禁止する
圧縮オーディオデータ再生装置。
【請求項１０】
請求項９に記載の圧縮オーディオデータ再生装置において、
前記ビットレート取得判断部は、
前記圧縮オーディオデータの過去の再生位置から、前記現在の再生位置に移動したことを認識し、
前記再生時間計算部は、
前記現在フレームの前記ビットレート値が取得済み場合、前記ビットレート値に依存することなく前記圧縮オーディオデータの再生時間を算出する
圧縮オーディオデータ再生装置。
【請求項１１】
請求項１０に記載の圧縮オーディオデータ再生装置において、
前記ビットレート取得判断部は、
前記圧縮オーディオデータの再生に応答して、前記圧縮オーディオデータの先頭から順番に、前記ビットレート値を取得し、
前記ビットレート取得テーブル格納部は、
前記複数のフレームの各々に対し、前記ビットレート値の取得が終了したことを示す判定ビットと、前記ビットレート値が取得済みの前記フレームの位置との対応を示す情報を、前記ビットレート値取得済フレーム情報として前記ビットレート取得テーブルを更新する
圧縮オーディオデータ再生装置。
【請求項１２】
請求項１１に記載の圧縮オーディオデータ再生装置において、
前記ビットレート取得判断部は、
前記圧縮オーディオデータの再生中に、一定の時間ごとに前記ビットレート値と前記圧縮オーディオデータの先頭からのバイト数とを取得し、
前記ビットレート取得テーブル格納部は、
前記先頭からの前記バイト数に基づいて、前記ビットレート値が取得済みの前記フレームの位置を特定して、前記ビットレート取得テーブルを更新する
圧縮オーディオデータ再生装置。
【請求項１３】
請求項１２に記載の圧縮オーディオデータ再生装置において、
前記ビットレート取得判断部は、
前記ビットレート値の取得が完了しているフレームから前記ビットレート値の取得が完了していないフレームに前記圧縮オーディオデータの再生位置が移動したとき、前記ビットレート値の取得が完了していないフレームの前記ビットレート値を、一定の時間ごとに取得する
圧縮オーディオデータ再生装置。
【請求項１４】
請求項９から１３の何れか一項に記載の圧縮オーディオデータ再生装置において、さらに、前記ビットレート取得判断部は、
前記圧縮オーディオデータが読み出された後、再生開始の前に、前記再生時間に関する情報御と前記ビットレート取得テーブルとを初期化する
圧縮オーディオデータ再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮オーディオデータ再生方法、および圧縮オーディオデータ再生装置に関する。
【背景技術】
【０００２】
近年の音声データの圧縮方式（符号化方式）としては、例えば、ＭＰ３（Ｍｏｖｉｎｇ  ＰｉｃｔｕｒｅＥｘｐｅｒｔ  Ｇｒｏｕｐ  Ａｕｄｉｏ  レイヤ３）が広く用いられている。ＭＰ３などの圧縮方式によって圧縮された音声データ（以下、圧縮オーディオデータという）に対応した圧縮オーディオデータ再生装置も、広く普及してきている。
【０００３】
圧縮オーディオデータ再生装置では、ＭＰ３などの圧縮方式で圧縮された音声データを、伸張して再生している。一般的に、圧縮オーディオデータ再生装置には、再生時間を液晶ディスプレイ等の表示装置によって表示する機能が備えられている。
【０００４】
近年の音声データの圧縮方式としては、効率的にデータを格納できるようにすることを目的として、ビットレートをフレーム毎に変更できるようにした可変ビットレート（ＶＢＲ：Ｖａｒｉａｂｌｅ  ｂｉｔｒａｔｅ）によって音声データを圧縮する技術が知られてきている。可変ビットレートに対応したオーディオデータの再生技術においては、全てのフレームのビットレート値を読み出しておき、これらのビットレート値に基づいて正確に再生時間を表示させる技術が知られている（例えば、特許文献１、２参照）。
【０００５】
特許文献１には、再生時間の表示を簡易かつ比較的正確に行うための技術が開示されている。図１Ａ、図１Ｂは、特許文献１に記載の装置の動作を示すフローチャートである。図１Ａを参照すると、ステップＳ１では、ＣＤ−ＲＯＭデコーダから入力されている割込み信号ＩＮＴに基づいて、当該ファイルの先頭位置を示す情報として先頭セクタの絶対アドレスを変数ｓｔａｒｔＰｏｓに代入する。
【０００６】
これに引き続いて実行されるステップＳ２では、初期設定として、ビットレートの合計値の格納に用いられる変数ｂｉｔｒａｔｅに対して０（零）を代入する。ステップＳ３では、再生時間を表示する際の表示回数のカウンタとして用いられる変数ｃｏｕｎｔに対して０（零）を代入する。ステップＳ４では、ＣＤ−ＲＯＭデコーダ２６からＭＰ３デコーダ３０に対して転送されたデータの総バイト数の格納に用いられる変数ｔｏｔａｌＰｏｓに対して０（零）を代入する。ステップＳ５では、ビットレートの平均値の格納に用いられる変数ａｖｅｒａｇｅに対して０（零）を代入する。
【０００７】
図１Ｂを参照すると、次のステップＳ６では、制御マイコンに内蔵されたタイマを参照して、所定時間（１００ｍＳ）が経過したか否かを判定する。その判定の結果、経過していない場合には、処理はステップＳ１４へ移行し、経過した場合には、処理はステップＳ７へ移行する。
【０００８】
ステップＳ７では、ＣＤ−ＲＯＭデコーダから入力されている割込み信号ＩＮＴに基いて、現在のファイル位置を示す情報として現在転送中のセクタの絶対アドレスを変数ｎｏｗＰｏｓに代入する。
【０００９】
次のステップＳ８では、この時点にＭＰ３デコーダから入力されているヘッダ情報の中のビットレートを抽出して変数ｂｉｔｒａｔｅの値に加算した後に変数ｂｉｔｒａｔｅに格納する。次のステップＳ９では、変数ｃｏｕｎｔを１だけインクリメントし、更に次のステップＳ１０では、変数ｔｏｔａｌＰｏｓに変数ｎｏｗＰｏｓの値から変数ｓｔａｒｔＰｏｓの値を減算して得られた値を代入する。ステップＳ１０の演算処理によって、ＣＤ−ＲＯＭデコーダからＭＰ３デコーダに転送したデータの総バイト数が導出される。
【００１０】
次のステップＳ１１では、変数ａｖｅｒａｇｅに変数ｂｉｔｒａｔｅの値を変数ｃｏｕｎｔの値で除算して得られた値を代入する。ステップＳ１１の処理によって、この時点までにＣＤ−ＲＯＭデコーダからＭＰ３デコーダに転送されたデータの各フレームにおける上記所定時間（１００ｍＳ）毎のビットレートの移動平均値が導出される。
【００１１】
次のステップＳ１２では、次の式によって再生時間ＴＸを導出する。
ＴＸ＝ｔｏｔａｌＰｏｓ÷（ａｖｅｒａｇｅ÷８）
【００１２】
次のステップＳ１３では、ステップＳ１２で導出した再生時間ＴＸを、表示部によって表示する。次のステップＳ１４では、当該ファイルの再生が終了したか否かを判定する。再生が終了していない場合は、処理は、ステップＳ６へ戻る。再生が終了した時点で再生時間表示処理プログラムを終了している。
【００１３】
特許文献２には、オーディオデータの再生時に、再生進行時間表示の違和感を無くすための技術が開示されている。特許文献２に記載の技術では、再生中のデータから検出された再生進行時間と、現在表示出力させている再生進行時間とを比較し、比較結果に基づいて、その際に検出された再生進行時間の時間値を表示するか、或いは現在表示させている再生進行時間の時間値を表示上で維持するかを決めている。検出された再生進行時間の時間値が、現在表示させている再生進行時間の時間値より戻った値となっている場合は、表示中の再生進行時間を維持している。
【００１４】
また、可変ビットレートに対応したオーディオデータの再生技術において、早送り／早戻し処理を行なったときに、再生時間を表示させる技術が知られている（例えば、特許文献３、４参照）。
【００１５】
特許文献３には、可変ビットレートで符号圧縮されたデータの早送り／巻き戻しを行っても、再生再開位置の再生時間表示に逆転現象の生じない再生時間表示用装置および再生時間算出方法に関する技術が開示されている。特許文献３に記載の技術では、再生時間表示用装置の平均符号化ビットレート算出部が、符号圧縮データの早送り／巻き戻し開始時点のファイルポインタＦｐｓと、再生時間カウンタから入力された早送り／巻き戻し開始時間Ｔｓとにより平均符号化ビットレートＲＦ＝Ｆｐｓ／Ｔｓを算出する。
再生再開時間計算部が、符号圧縮データの早送り／巻き戻し終了時点のファイルポインタＦｐｅと平均符号化ビットレートＲＦとにより早送り／巻き戻し終了時間Ｔｅ＝Ｆｐｅ／ＲＦを算出する。そして、早送り／巻き戻し終了時に再生時間カウンタのカウンタ値を早送り／巻き戻し終了時間Ｔｅに書き換えている。
【００１６】
特許文献４には、ＶＢＲ方式の圧縮オーディオファイルの再生時に、早送り／逆戻し時間表示と、ユーザからの時間指定に対するタイムサーチを可能にするための技術が開示されている。特許文献４に記載の技術では、ＭＰ３、ＷＭＡ、ＡＡＣなどのＶＢＲ方式の圧縮オーディオファイルの生成時に、圧縮レートの時間変化を記述したＶＢＲ圧縮レートテーブルをファイル終端にファイルＣＡＴさせている。圧縮オーディオファイルの再生時には、ＶＢＲ圧縮レートテーブルを用いて目標位置へのシーク時間を算出している。特許文献４に記載の技術では、圧縮レートが変化するそれぞれの時間間隔での圧縮ビットレート情報を求めている。その圧縮ビットレート情報に基づいて、早送り／逆戻し時間表示および時間指定によるタイムサーチを行っている。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００２−０７４９２０号公報
【特許文献２】特開２００８−２０４５５１号公報
【特許文献３】特開２００５−３１０３０６号公報
【特許文献４】特開２００７−１４１３７８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
特許文献１〜４に記載されているような技術では、正確に再生時間を表示できない場合がある。例えば、各フレームのビットレート値の差異が大きい場合、一箇所の繰り返し再生や早送り／早戻しを繰り返すことで、平均ビットレートが大きく変動することがある。そのため、平均ビットレートから算出する再生時間も変動してしまい、正確な再生時間の表示が困難になることがある。また、特許文献４に記載の技術は、ファイルの終端にＶＢＲ圧縮レートテーブルが追加された特殊なフォーマットにしか対応していない。さらに、その技術では、エンコード時にテーブルを作る必要があるため、通常のＭＰ３ファイルなどには対応することができない。
【００１９】
可変ビットレートで圧縮されたオーディオデータに対し、早送り／早戻し処理を行った場合であっても、正確な再生時間の表示を実現するための技術が要求されている。
【課題を解決するための手段】
【００２０】
以下に、［発明を実施するための形態］で使用される番号を用いて、［課題を解決するための手段］を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００２１】
上記の課題を解決するために、［ａ］可変ビットレート（ＶＢＲ）で圧縮された圧縮オーディオデータを読み出すステップと、［ｂ］圧縮オーディオデータの複数のフレームのうち、任意のフレームのビットレート値を取得するステップと、［ｃ］取得したビットレート値に基づいて、圧縮オーディオデータの再生時間を算出するステップとを具備する方法によって、圧縮オーディオデータの再生を行う。
この方法を実行するにあたり、その取得するステップは、［ｂ１］圧縮オーディオデータの過去の再生位置から、現在の再生位置に移動したことを認識するステップと、［ｂ２］現在の再生位置に対応するフレームである現在フレームのビットレート値が取得済み場合、現在フレームのビットレート値の取得を禁止するステップとを備えることが好ましい。
【００２２】
また、下記のような装置を構成することによって。上記の課題の解決に貢献することが可能となる。具体的には、可変ビットレート（ＶＢＲ）で圧縮された圧縮オーディオデータの複数のフレームのうち、任意のフレームのビットレート値を取得するビットレート取得判断部（２）と、取得したビットレート値に基づいて、圧縮オーディオデータの再生時間を算出する再生時間計算部（７）と、ビットレート値の取得が完了しているフレームを示すビットレート値取得済フレーム情報を有するビットレート取得テーブル（２１）を保持するビットレート取得テーブル格納部（３）とを具備する圧縮オーディオデータ再生装置（１０）を構成する。ここで、ビットレート取得判断部（２）は、ビットレート取得テーブル（２１）を参照して、現在の再生位置に対応するフレームである現在フレームのビットレート値が取得済みか否かを判断し、現在フレームのビットレート値が取得済み場合、現在フレームのビットレート値の取得を禁止する。
【００２３】
再生中は、所定時間ごとにヘッダ内のビットレート値を取得する。そしてビットレート取得テーブル２１内の対応した位置のビット（ビット位置＝転送バイト総数÷所定のバイト数）を、ビットレート取得済みに変更し、平均ビットレートの計算を行なう。早戻しなどの操作によりビットレート取得済みに変更されている位置のビットレート値を、複数回取得した場合は、平均ビットレートの計算は行なわない。
【発明の効果】
【００２４】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、可変ビットレートで圧縮されたオーディオデータに対し、早送り／早戻し処理を行った場合であっても、正確な再生時間の表示を実現することが可能となる。
同じ位置のビットレート値によって平均ビットレートの再計算を実施しないことで平均ビットレートの精度が上がり正確なＳＥＥＫ動作や再生時間が表示できる。
また、再生時間はビットレート取得間隔を加算していくことで算出することにより、誤差が少なく時間の逆転現象（再生時間が減少する現象）も発生しない。
【図面の簡単な説明】
【００２５】
【図１Ａ】図１Ａは、特許文献１に記載の装置の動作を示すフローチャートである。
【図１Ｂ】図１Ｂは、特許文献１に記載の装置の動作を示すフローチャートである。
【図２】図２は、本実施形態の圧縮オーディオデータ再生装置１０の構成を例示するブロック図である。
【図３】図３は、本実施形態のビットレート取得テーブル２１の構成を例示するブロック図である。
【図４Ａ】図４Ａは、本実施形態の圧縮オーディオデータ再生装置１０の動作を例示するフローチャートである。
【図４Ｂ】図４Ｂは、本実施形態の圧縮オーディオデータ再生装置１０の動作を例示するフローチャートである。
【図４Ｃ】図４Ｃは、本実施形態の圧縮オーディオデータ再生装置１０の動作を例示するフローチャートである。
【図５】図５は、本実施形態で処理の対象となる圧縮オーディオデータ２２の構成を例示する図である。
【図６】図６は、圧縮オーディオデータを再生する前の圧縮オーディオデータ２２とビットレート取得テーブル２１の状態を概念的に例示するブロック図である。
【図７】図７は、先頭位置（０ｂｙｔｅ）から２０００ｂｙｔｅまで再生した時の圧縮オーディオデータ２２とビットレート取得テーブル２１状態を概念的に例示するブロック図である。
【図８】図８は、ＳＥＥＫが行われるときの圧縮オーディオデータ２２とビットレート取得テーブル２１の状態を概念的に例示するブロック図である。
【図９Ａ】図９Ａは、比較例における圧縮オーディオデータ再生装置１０の動作を例示するフローチャートである。
【図９Ｂ】図９Ｂは、比較例における圧縮オーディオデータ再生装置１０の動作を例示するフローチャートである。
【図１０】図１０は、比較例に示すフローチャートにおいて、早戻し動作を行なった時の平均ビットレート更新処理の動作を例示するブロック図である。
【図１１】図１１は、先頭から１００００ｂｙｔｅまで再生した時の再生時間を算出する動作を例示するブック図である。
【図１２】図１２は、ＳＥＥＫを実施した時の再生時間を算出する動作を例示するブロック図である。
【図１３】図１３は、特定の領域を繰り返し再生した場合の動作を例示するブロック図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施の形態を図面に基づいて説明する。なお、実施の形態を説明するための図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２７】
図２は、本実施形態の圧縮オーディオデータ再生装置１０の構成を例示するブロック図である。本実施形態の圧縮オーディオデータ再生装置１０は、ＭＰ３のように可変ビットレートで圧縮された圧縮オーディオデータを再生する機能を備えている。その圧縮オーディオデータ再生装置１０は、再生中にフレームのヘッダ情報のビットレート値を、所定時間毎に抽出し、算出した平均ビットレートに基づいて再生時間を表示する機能を備えている。また、その圧縮オーディオデータ再生装置１０は、早送り／早戻しに対応した圧縮オーディオデータの読み出し位置の変更（以降、ＳＥＥＫと称す）を行なうための機能を備え、ＳＥＥＫが行われた場合には、ＳＥＥＫ位置に基づいてデータ量を算出することで、再生時間を表示する機能を備えている。
【００２８】
図２に示されているように、圧縮オーディオデータ再生装置１０は、ヘッダ解析部１と、ビットレート取得判断部２と、ビットレート取得テーブル格納部３と、平均ビットレート計算部４と、ＳＥＥＫ量計算部５と、ＳＥＥＫ制御部６と、再生時間計算部７と、表示装置８と、記録媒体１１と、圧縮データデコード部１２と、音声出力装置１３と、スピーカ装置１４とを備えている。
【００２９】
ヘッダ解析部１は、ヘッダのフォーマット解析を行い、フレームのヘッダ情報から抽出したビットレート値と取得したビットレート値が格納されていた位置の情報（ビットレート格納位置）をビットレート取得判断部２に供給する。
【００３０】
そのビットレート取得判断部２は、入力されたビットレート格納位置から、現在のフレームのビットレート値が未取得かどうかを判断する。具体的には、ビットレート取得判断部２は、ヘッダ解析部１から供給される情報とビットレート取得テーブル格納部３のビットレート取得テーブル２１に示される情報とを比較する。ビットレート取得判断部２は、その比較の結果に基づいて、現在のフレームのビットレート値が未取得かどうかを判断する。現在のフレームのビットレート値が未取得の場合は、ビットレート取得判断部２は、平均ビットレート計算部４にビットレート値を供給する。ビットレート取得テーブル格納部３は、ビットレート取得テーブル２１を保持する。ビットレート取得テーブル格納部３は、ビットレート取得判断部２から入力されたビットレート格納位置情報が反映するようにビットレート取得テーブル２１を更新する。
【００３１】
平均ビットレート計算部４は、入力されたビットレート値の合計計算と取得回数から、平均ビットレートを算出する。平均ビットレート計算部４は、その算出によって得られた平均ビットレートを、ＳＥＥＫ量計算部５に供給する。ＳＥＥＫ量計算部５は、ＳＥＥＫ動作を行なう時、平均ビットレート計算部４が算出した平均ビットレートとＳＥＥＫしたい時間からＳＥＥＫ量を算出する。ＳＥＥＫ制御部６は、入力されたＳＥＥＫ量の分だけファイル読み込み位置を変更する。
【００３２】
再生時間計算部７は、平均ビットレート計算部４が算出した平均ビットレートに基づいて、再生時間を計算する。表示装置８は、再生時間計算部７の計算によって得られて再生時間を、ユーザが認識できる形式で表示する。
【００３３】
記録媒体１１は、不揮発性の半導体記憶装置や、ＣＤ−ＲＯＭなどに代表される情報記録媒体である。記録媒体１１には、本実施形態の再生対象となる圧縮オーディオデータが格納されている。本実施形態の圧縮オーディオデータ再生装置１０において、記録媒体１１は、着脱可能に構成されていても良い。
【００３４】
圧縮データデコード部１２は、圧縮オーディオデータを伸長して音声出力装置１３に供給する。音声出力装置１３は、圧縮データデコード部１２から供給される伸長されたオーディオデータをＤ／Ａ変換して、アナログ信号を生成する。生成されたアナログ信号は、スピーカ装置１４によって再生される。
【００３５】
図３は、本実施形態のビットレート取得テーブル２１の構成を例示するブロック図である。図３は、再生前のビットレート取得テーブル２１の状態を例示している。このときのビットレート取得テーブル２１の各データは、初期化された状態である。本実施形態ビットレート取得テーブル２１は、ビットレートを取得したか否かを示す情報を一定の間隔で保持している。ビットレート取得テーブル２１において、その間隔は、再生時間を使用せずに、所定のバイト範囲としている。
【００３６】
後述するように、本実施形態の圧縮オーディオデータ再生装置１０は、圧縮オーディオデータを再生しながらビットレート値を取得し、平均ビットレートを算出している。再生途中では、全てのビットレート値を取得できていない。そのため、全てのビットレート値を取得した結果に基づいた平均ビットレートを算出することはできない。
【００３７】
全てのビットレート値が取得されていないため、再生途中での平均ビットレートには、誤差が含まれている。再生途中でＳＥＥＫを行なうことで、再生時間と現在のファイル位置（ビットレートが格納されてる位置）とが不一致を起こす可能性がある。このため、ビットレートを取得したか否かを示す情報が得られる間隔を、再生時間を基準に決定してしまうと、ビットレート取得の有無が正しく判断出来なくなる可能性が出てくる。
【００３８】
したがって、ビットレート取得テーブル２１のテーブル要素数は、ファイルサイズと所定のバイト間隔から算出する。図２に例示するビットレート取得テーブル２１は、所定のバイト間隔が１００ｂｙｔｅに設定されている。この場合、例えば、ファイルサイズが１０Ｋｂｙｔｅのファイルを再生する時に必要ビット数は１００ビットとなる。また、図２に例示されているように、この場合のテーブル要素数は１３個となる。また、所定のバイト間隔を１００ｂｙｔｅと設定した場合、０〜９９ｂｙｔｅ、１００〜１９９ｂｙｔｅ、２００〜２９９ｂｙｔｅ・・・と、１００ｂｙｔｅ毎に、ビットレート取得テーブル２１にビットレートを取得したかの判定結果（１ビット）が割り当てられる。例えば、０〜９９ｂｙｔｅの範囲においてビットレートが取得できているか否かは、ビットレート取得テーブル２１の１ビット目に設定される。このように、ビットレート取得テーブル２１のデータそれぞれは、所定のバイト間隔で決められた範囲に対応づけられている。
【００３９】
本実施形態の圧縮オーディオデータ再生装置１０において、再生開始時に、ファイルサイズと所定のバイト間隔からビットレート取得テーブル２１の容量を計算し、ビットレート取得テーブル格納部３の領域の確保を行うことが好ましい。テーブルデータは、少なくとも再生開始時に、ビットレート未取得の状態に初期化する。なお、算出されたテーブル容量を確保できない場合は、所定のバイト間隔を変更することでテーブル容量の減少も可能である。また、再生時間は先頭からの再生経過時間を表すので、再生開始時に再生時間も初期化することが好ましい。
【００４０】
図４Ａ、図４Ｂ、図４Ｃは、本実施形態の圧縮オーディオデータ再生装置１０の動作を例示するフローチャートである。ステップＳ１０１において、割込み信号に基づいて、圧縮オーディオデータのフレームの先頭位置を示す情報として、先頭セクタの絶対アドレスを変数ｓｔａｒｔＰｏｓに代入する。
【００４１】
ステップＳ１０２において、初期設定として、ビットレートの合計値の格納に用いられる変数ｂｉｔｒａｔｅに対して、“０”（零）を代入する。ステップＳ１０３において、再生時間を表示する際の表示回数のカウンタとして用いられる変数ｃｏｕｎｔに対して“０”（零）を代入する。
【００４２】
ステップＳ１０４において、圧縮データデコード部１２に対して転送されたデータの総バイト数の格納に用いられる変数ｔｏｔａｌＰｏｓに対して“０”（零）を代入する。ステップＳ１０５において、ビットレートの平均値の格納に用いられる変数ａｖｅｒａｇｅに対して“０”（零）を代入する。
【００４３】
ステップＳ１０６において、ビットレート取得判断部２およびビットレート取得テーブル格納部３の初期化処理として、ビットレート取得テーブル２１の初期化を行う。ステップＳ１０７において、再生時間の初期化を行なう。
【００４４】
ステップＳ１０８において、早送り／早戻しの要求が有ったか否かの判断を実行する。その判断の結果、早送り／早戻し要求が発生した時は、処理はステップＳ１０９に進む。その判断の結果、早送り／早戻し要求が発生していない場合には、処理は、ステップＳ１２０に進む。
【００４５】
ステップＳ１０９において、ヘッダ情報を取得する時間間隔をチェックして、所定時間を経過したか否かの判断を実行する。その判断の結果、所定時間を経過した場合には、処理はステップＳ１１０に進む。その判断の結果、所定時間を経過していない場合には、処理はステップＳ１１９に進む。
【００４６】
ステップＳ１１０において、同一フレームのビットレート値を複数回取得しないように、ビットレート取得判断部２はビットレート取得テーブル格納部３の内容を参照して、現在のファイル位置のビットレート値が取得済みか否かの判断を実行する。つまり、現在のファイル位置、すなわち、ビットレート格納位置が所定のバイト間隔のどの範囲に含まれるかを判断し、ビットレート取得テーブル格納部３の対応する範囲に割り当てられたデータを参照する。その結果、現在のファイル位置のビットレート値が取得済みの場合、処理はステップＳ１１７に進む。したがって、取得済みのビットレート値の場合は、平均ビットレートの算出を行なわずに、処理がステップＳ１１７へ移行する。その判断の結果、現在のファイル位置のビットレート値が未取得の場合には、処理はステップＳ１１１に進む。
【００４７】
ステップＳ１１１において、現在のファイル位置を示す情報として現在転送中のセクタの絶対アドレスを、変数ｎｏｗＰｏｓに代入する。ステップＳ１１２において、圧縮データデコード部１２から入力されているヘッダ情報の中のビットレートを抽出して、現在の変数ｂｉｔｒａｔｅの値に加算して新たな変数ｂｉｔｒａｔｅとする。ステップＳ１１３において、変数ｃｏｕｎｔを１だけインクリメントする。
【００４８】
ステップＳ１１４において、変数ｔｏｔａｌＰｏｓに、変数ｎｏｗＰｏｓの値から変数ｓｔａｒｔＰｏｓの値を減算して得られた値を代入する。ステップＳ１１４の演算処理によって、圧縮データデコード部１２に転送したデータの総バイト数を算出する。ステップＳ１１５において、変数ａｖｅｒａｇｅに対し、変数ｂｉｔｒａｔｅの値を変数ｃｏｕｎｔの値で除算して得られた値を代入する。ステップＳ１１５の処理の時点までに、圧縮データデコード部１２に転送されたデータの各フレームにおける所定時間（１００ｍＳ）毎のビットレートの移動平均値を算出する。
【００４９】
ステップＳ１１６において、未取得だった現在のファイル位置のビットレート値を取得し、ビットレート取得テーブル格納部３のビットレート取得テーブル２１の情報を更新する。このとき、現在のファイル位置のフレームをしめすビットレート取得テーブル２１の領域には、ビットレート値が取得済みであることを示す情報が書き込まれる。
【００５０】
ステップＳ１１７において、現在の再生時間にビットレートを取得する所定の時間間隔を加算して、新たな再生時間を算出する。また、上述のステップＳ１０８における判断の結果、早送り／早戻し要求が発生した時は、ステップＳ１２０以降の処理が実行される。ステップＳ１２０において、ＳＥＥＫしたい時間と平均ビットレートよりＳＥＥＫ量を算出する。ステップＳ１２１において、ＳＥＥＫ動作を実行する。ステップＳ１２２において、変数ｔｏｔａｌＰｏｓに、変数ｎｏｗＰｏｓの値から変数ｓｔａｒｔＰｏｓの値を減算して得られた値を代入する。ステップＳ１２３において、次の式によって再生時間を計算する。
再生時間＝ｔｏｔａｌＰｏｓ÷（ａｖｅｒａｇｅ÷８）
その後、処理はステップＳ１１８に進む。
【００５１】
ステップＳ１１８において、ステップＳ１１７で算出した再生時間、またはステップＳ１２３で算出した再生時間を、表示装置８によって表示する。ステップＳ１１９において、ファイルの再生が終了したか否かを判断する。その判断の結果、再生が終了していない場合には、処理は、ステップＳ１０８へ戻る。その判断の結果、再生が終了した時点で、図４のフローチャートの動作を終了する。
【００５２】
図５は、本実施形態で処理の対象となる圧縮オーディオデータ２２の構成を例示する図である。図５に示される、位置Ａ〜Ｆは、圧縮オーディオデータ２２において、ビットレートが変化する地点を示し、位置Ｐ７０１〜Ｐ７０６は、ビットレート値が取得される位置を示すものとする。
【００５３】
位置Ａから位置Ｂまでのデータ領域は、同一ビットレート値の複数のフレームで構成されているものとする。また、位置Ａから位置Ｂまでの各フレームは、ビットレート値を含むヘッダ情報とオーディオデータを備えているものとする。同様に、位置Ｂから位置Ｃまでのデータ領域、位置Ｃから位置Ｄまでのデータ領域、位置Ｄから位置Ｅまでのデータ領域、および位置Ｅから位置Ｆまでのデータ領域の各々は、同一ビットレート値の複数のフレームで構成されているものとする。また、各データ領域の各フレームは、ビットレート値を含むヘッダ情報とオーディオデータを備えているものとする。ここで、位置Ｂから位置Ｃまでのデータのビットレート値と、位置Ｃから位置Ｄまでのデータのビットレート値と、位置Ｄから位置Ｅまでのデータのビットレート値と、位置Ｅから位置Ｆまでのデータのビットレート値とは、それぞれ異なるものとする。
【００５４】
以下に、本実施形態の圧縮オーディオデータ再生装置１０の動作とビットレート取得テーブル２１との関連性と図面を参照して説明する。図６〜図８は、本実施形態の圧縮オーディオデータ再生装置１０における、ビットレート値の取得の動作と、その時のビットレート取得テーブル２１の状態を例示するブロック図である。上述したように、本実施形態において、ビットレート取得テーブル２１を参照したときに、ビットレートを取得したか否かを示す情報が得られる間隔は、再生時間ではなく所定のバイト範囲で設定されている。
【００５５】
図６〜図８に例示する動作では、所定のバイト間隔を１００ｂｙｔｅと設定している。この場合、ファイルサイズが１０Ｋｂｙｔｅのファイルを再生する時に必要ビット数は１００ビットとなる。この場合のテーブル要素数は、１３個となっている。また、所定のバイト間隔を１００ｂｙｔｅと設定した場合、０〜９９ｂｙｔｅ、１００〜１９９ｂｙｔｅ、２００〜２９９ｂｙｔｅ、・・・と、１００ｂｙｔｅ毎にビットレート取得テーブル２１のビットレートを取得したかの判定結果（１ビット）が割り当てられている。
【００５６】
図６は、圧縮オーディオデータを再生する前の圧縮オーディオデータ２２とビットレート取得テーブル２１の状態を概念的に例示するブロック図である。このときビットレート取得テーブル２１の各データは、初期化された状態である。
【００５７】
図７は、先頭位置（０ｂｙｔｅ）から２０００ｂｙｔｅまで再生した時の圧縮オーディオデータ２２とビットレート取得テーブル２１状態を概念的に例示するブロック図である。平均ビットレートの計算は、２０００ｂｙｔｅの位置まで毎回実行される。このとき、ビットレート取得テーブル２１は、０ｂｙｔｅから２０００ｂｙｔｅに対応する２０ビット目までがセットされる。
【００５８】
図８は、ＳＥＥＫが行われるときの圧縮オーディオデータ２２とビットレート取得テーブル２１の状態を概念的に例示するブロック図である。図８に示される動作では、２０００ｂｙｔｅの位置のフレームを過去フレームとし、そこから、ＳＥＥＫにより１０００ｂｙｔｅの位置のフレーム（現在フレーム）に一旦に戻っている。そして、その現在フレームに一旦戻った後、今度は、その現在フレーム（１０００ｂｙｔｅの位置）を新たな過去フレームとし、３０００ｂｙｔｅの位置まで再生している。このとき、ビットレート取得テーブル２１によってビットレート取得済みが示されている領域（１０００ｂｙｔｅから２０００ｂｙｔｅの期間）では、平均ビットレートが計算されることはない。そして、２０００ｂｙｔｅから３０００ｂｙｔｅの期間のみ、平均ビットレートの計算が行われる。この場合、ビットレート取得テーブル２１は、３０００ｂｙｔｅに対応する３０ビット目までが、順次セットされる。
【００５９】
［比較例］
以下に、本実施形態の比較例について説明を行う。本比較例では、ビットレート取得テーブル２１を参照しない場合の圧縮オーディオデータ再生装置１０の動作を例示する。図９Ａ、図９Ｂは、比較例における圧縮オーディオデータ再生装置１０の動作を例示するフローチャートである。図９Ａ、図９Ｂのフローチャートを参照すると、ステップＳ１０１〜ステップＳ１０５までは、上述の実施形態と同様に動作する。
【００６０】
その後、ビットレート取得テーブル２１に関連する動作を行うことなく処理はステップＳ１０８に進む。ステップＳ１０８において、早送り／早戻しの要求が有ったか否かの判断を実行する。その判断の結果、早送り／早戻し要求が発生した時は、処理はステップＳ１２０に進む。その判断の結果、早送り／早戻し要求が発生していない場合には、処理は、ステップＳ１０９に進む。
【００６１】
ステップＳ１０９では、ヘッダ情報を取得する時間間隔をチェックする。そのステップＳ１０９において、所定時間を経過した場合は、上述のステップＳ１１０の処理を行うことなく、ステップＳ１１１の処理を実行する。
【００６２】
その後、ステップＳ１１２〜ステップＳ１１５までは、上述の実施形態と同様に動作する。そのステップＳ１１５での処理を行った後、上述のステップＳ１１６の処理を行うことなく、ステップＳ１１７の処理を実行する。そして、ステップＳ１１７以降は、上述の実施形態と同様に動作する。
一般的な平均ビットレートと再生時間は以下のような式で算出される。
平均ビットレート＝取得したビットレート値の合計÷取得した個数・・・式１
再生時間＝ファイル先頭からのバイト数÷（平均ビットレート÷８）・・・式２
ここで、上述の図５における位置Ｐ７０１〜Ｐ７０６で取得されたビットレート値を、値Ｂ７０１〜Ｂ７０６とするとき、式１において、位置Ａから位置Ｂ〜Ｆまで通常再生を実行した時の平均ビットレートは以下のようになる。
・位置Ａから位置Ｂ＝Ｂ７０１
・位置Ａから位置Ｄ＝（Ｂ７０１＋Ｂ７０２＋Ｂ７０３＋Ｂ７０４）÷４
・位置Ａから位置Ｆ＝（Ｂ７０１＋Ｂ７０２＋Ｂ７０３＋Ｂ７０４＋Ｂ７０５＋Ｂ７０６）÷６
また、各位置で平均ビットレートが更新されるごとに、再生時間は上記の式２で再計算し更新される。
【００６３】
図１０は、比較例に示すフローチャートにおいて、早戻し動作を行なった時の平均ビットレート更新処理の動作を例示するブロック図である。図１０の圧縮オーディオデータ１２２は、上述の図５の圧縮オーディオデータ２２と同様に構成されている。圧縮オーディオデータ１２２に対する早戻し動作は、ＳＥＥＫと再生を繰り返すことで実現し、再生時には平均ビットレートの更新が行なわれる。ＳＥＥＫ量（ＳＥＥＫ先までの変更バイト量）は、ＳＥＥＫ先時間と平均ビットレートから、以下のような式で算出される。
ｘ秒戻るときのＳＥＥＫ量＝（平均ビットレート÷８）×ｘ（ｓ）・・・式３
【００６４】
図１０を参照すると、位置Ａから位置Ｆまで再生した後、位置Ｆから位置ＤにＳＥＥＫし、再生を実行した時、位置Ｐ８０１で新たなビットレート値Ｂ８０１が取得される。この場合の平均ビットレートは、圧縮オーディオデータ１２２において、圧縮オーディオデータ２２と同様に、位置Ｐ７０１〜Ｐ７０６で取得されたビットレート値を、値Ｂ７０１〜Ｂ７０６とするとき、以下のようになる。
・位置Ｄ＝（Ｂ７０１＋Ｂ７０２＋Ｂ７０３＋Ｂ７０４＋Ｂ７０５＋Ｂ７０６＋Ｂ８０１）÷７
【００６５】
図１１は、先頭から１００００ｂｙｔｅまで再生した時の再生時間を算出する動作を例示するブック図である。図１１の動作では、三角形の印が付されている位置毎にビットレート値を取得している。位置Ｐ９０１、位置Ｐ９０２、位置Ｐ９０３、および位置Ｐ９０４に対応するビットレート値として、各１２８ｋｂｐｓ、３２０ｋｂｐｓ、３２０ｋｂｐｓ、１２８ｋｂｐｓが取得される。したがって、平均ビットレートおよび再生時間は、以下のように算出される。
平均ビットレート
＝（１２８ｋｂｐｓ＋３２０ｋｂｐｓ＋３２０ｋｂｐｓ＋１２８ｋｂｐｓ）／４回
＝２２４ｋｂｐｓ
再生時間
＝１００００ｂｙｔｅ÷（２２４ｋｂｐｓ÷８）
＝３５７ｍｓ
【００６６】
図１２は、図１１で示した再生動作を行った後に、１００００ｂｙｔｅの位置から１００ｍｓのＳＥＥＫを実施した時の再生時間を算出する動作を例示するブロック図である。図１２は、早戻し実行後、位置Ｐ１００１に対応するビットレート値として、６４ｋｂｐｓを取得し、平均ビットレート及び再生時間の更新を行った場合を例示している。このとき、
ＳＥＥＫ量
＝１００ｍｓ×（２２４ｋｂｐｓ÷８）
＝２８００ｂｙｔｅ
平均ビットレート
＝（１２８ｋｂｐｓ＋３２０ｋｂｐｓ＋３２０ｋｂｐｓ＋１２８ｋｂｐｓ＋６４ｋｂｐｓ）／５回
＝１９２ｋｂｐｓ
再生時間
＝（１００００ｂｙｔｅ−２８００ｂｙｔｅ）÷（１９２÷８）
＝３００ｍｓ
が算出される。
【００６７】
図１３は、特定の領域を繰り返し再生した場合の動作を例示するブロック図である。図１３に示されているように、ビットレート値で構成されたファイルにて、特定の領域を繰り返し再生すると、平均ビットレートの精度が低下する問題が発生することがある。図１３に示されているように、先頭から位置Ｐ１１０５まで再生を行なうと、取得したビットレート値の合計が１１５０ｋｂｐｓで、平均ビットレートは２３０ｋｂｐｓとなる。
【００６８】
しかし、位置Ｐ１１０４へのＳＥＥＫと、位置Ｐ１１０５までの再生を繰り返し行なうと、平均ビットレートは４００ｋｂｐｓに近づいてしまい本来の平均ビットレートとは大きく異なる値になる。以下に、その場合の具体的な数値を示す。
ＳＥＥＫ０回目：
（１１５０ｋｂｐｓ）÷５回
＝２３０ｋｂｐｓ
ＳＥＥＫ１回目：
（１１５０ｋｂｐｓ＋４００ｋｂｐｓ）÷６回
＝２５８ｋｂｐｓ
ＳＥＥＫ２回目：
（１５５０ｋｂｐｓ＋４００ｋｂｐｓ）÷７回
＝２７９ｋｂｐｓ
ＳＥＥＫ３回目：
（１９５０ｋｂｐｓ＋４００ｋｂｐｓ）÷８回
＝２９３ｋｂｐｓ
ＳＥＥＫ１０回目：
（４７５０ｋｂｐｓ＋４００ｋｂｐｓ）÷１５回
＝３４３ｋｂｐｓ
【００６９】
本実施形態の圧縮オーディオデータ再生装置１０は、ビットレート取得テーブル２１を備えている。そのビットレート取得テーブル２１には、ビットレート値の取得状況が記録されている。そのため、特定の領域の繰り返し再生や、早送り/早戻し動作の繰り返しを実行した時でも、同一フレームのビットレート値を複数回取得することで平均ビットレートが大きく変動した値になるという現象を防ぎ、算出される平均ビットレートの精度を向上させることで、再生時間を正確に表示することができる。
【００７０】
また、本実施形態の圧縮オーディオデータ再生装置１０は、平均ビットレートの精度が向上するため、上述の式３において、ＳＥＥＫ量の精度が向上する。したがって、正確な位置へＳＥＥＫすることが可能となる。
【００７１】
また、本実施形態の圧縮オーディオデータ再生装置１０は、事前に全てのフレームのビットレート値を読み出す必要がないので、高い処理能力を有するＣＰＵでの処理に頼ることが無い。本願発明は、可変ビットレートで圧縮されたオーディオデータに対し、早送り／早戻し処理を行った場合の正確な再生時間の表示を、ＣＰＵの負荷を増加させずに実現している。そのため、装置のコストの増加を抑制することも可能である。
【００７２】
以上、本願発明の実施の形態を具体的に説明した。本願発明は上述の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【００７３】
１…ヘッダ解析部
２…ビットレート取得判断部
３…ビットレート取得テーブル格納部
４…平均ビットレート計算部
５…ＳＥＥＫ量計算部
６…ＳＥＥＫ制御部
７…再生時間計算部
８…表示装置
１０…圧縮オーディオデータ再生装置
１１…記録媒体
１２…圧縮データデコード部
１３…音声出力装置
１４…スピーカ装置
２１…ビットレート取得テーブル
２２…圧縮オーディオデータ
１２２…圧縮オーディオデータ
【図１Ａ】
2012226801.tif 000003
【図１Ｂ】
2012226801.tif 000004
【図２】
2012226801.tif 000005
【図３】
2012226801.tif 000006
【図４Ａ】
2012226801.tif 000007
【図４Ｂ】
2012226801.tif 000008
【図４Ｃ】
2012226801.tif 000009
【図５】
2012226801.tif 000010
【図６】
2012226801.tif 000011
【図７】
2012226801.tif 000012
【図８】
2012226801.tif 000013
【図９Ａ】
2012226801.tif 000014
【図９Ｂ】
2012226801.tif 000015
【図１０】
2012226801.tif 000016
【図１１】
2012226801.tif 000017
【図１２】
2012226801.tif 000018
【図１３】
2012226801.tif 000019