(57)【要約】  【課題】  フレーム同期信号の周波数誤差に起因する復号音声サンプル数の過不足が発生しても、復号音声サンプル列の変換を行わずに品質劣化のない再生音声信号を出力することができる復号装置、復号方法を提供する。  【解決手段】  符号化情報の復号を行う復号部１と、復号部１からの書き込みを行う復号結果用バッファ部１２と、復号結果用バッファ部１２からの書き込みと外部への出力を行う再生用バッファ部２と、フレーム同期信号の１周期の再生サンプル数を出力するサンプルカウンタ１０と、再生用バッファ部２の左シフトと書き込み開始ポイントを設定し、復号結果用バッファ部から再生用バッファ部２へのコピーを行い、復号結果用バッファ部１２の左シフトと次の書き込み開始ポイントを設定し、再生用バッファ部２の読み出しを行わせる制御部とを備えた。  【選択図】  図１
2007072334.tif 000002
【特許請求の範囲】
【請求項１】
外部から入力されるフレーム同期信号と共に外部から入力される符号化情報の復号を行い、外部から入力されるサンプリングクロックに従って前記復号の結果を外部へ出力する復号装置であって、
前記フレーム同期信号のタイミングに従って、前記符号化情報の復号を行い、該復号の結果を前記符号化情報に含まれるピッチ周期毎に復号サンプル列として出力する復号部と、
外部から指示された復号結果用書き込み開始ポイントから前記ピッチ周期毎の前記復号サンプル列の書き込みを行い、外部から指示されたポイントの読み出しを行う復号結果用バッファ部と、
外部から指示された再生用書き込み開始ポイントから前記復号結果用バッファ部の出力の書き込みを行い、外部からの指示に従って読み出しを行い外部へ出力する再生用バッファ部と、
前記フレーム同期信号の１周期の間に外部から入力されるサンプリングクロックをカウントし、再生サンプル数として出力するサンプルカウンタと、
所定の最大サンプル数と前記再生サンプル数に基づいて、前記再生用バッファ部の左シフトを行い、前記再生用書き込み開始ポイントを設定し、前記復号結果用バッファ部から前記再生用バッファ部へのコピーを行い、前記復号結果用バッファ部の左シフトを行い、次のフレームにおける前記復号結果用書き込み開始ポイントを設定し、前記再生用バッファ部の読み出しを行わせる制御部と、
を備えてなる復号装置。
【請求項２】
復号結果用バッファ部と再生用バッファ部を備えた復号装置において、外部から入力されるフレーム同期信号と共に外部から入力される符号化情報の復号を行い、外部から入力されるサンプリングクロックに従って前記復号の結果を外部へ出力する復号方法であって、
前記フレーム同期信号のタイミングに従って、前記符号化情報の復号を行い、該復号の結果を前記符号化情報に含まれるピッチ周期毎に復号サンプル列として前記復号結果用バッファ部へ書き込みを行う復号ステップと、
前記フレーム同期信号の１周期の間に外部から入力されるサンプリングクロックをカウントした結果を再生サンプル数として取得するサンプルカウンタステップと、
所定の最大サンプル数と前記再生サンプル数に基づいて、前記再生用バッファ部の左シフトを行い、前記再生用書き込み開始ポイントを設定する再生用バッファ部更新ステップと、
前記再生サンプル数に基づいて、前記復号結果用バッファ部から前記再生用バッファ部へのコピーを行うコピーステップと、
所定の最大サンプル数と前記再生サンプル数に基づいて、前記復号結果用バッファ部の左シフトを行い、次のフレームにおける前記復号結果用書き込み開始ポイントを設定する復号結果用バッファ部更新ステップと、
前記再生用バッファ部を読み出し、外部へ出力する再生ステップと、
を実行する復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声等、フレーム単位の符号化情報を復号し、再生する復号装置、復号方法に関するものである。
【背景技術】
【０００２】
音声通信装置においては、音声情報の通信データ量を低減するために、送信側音声通信装置がアナログの送信音声信号を符号化してデジタルの音声符号化情報に変換し、無線伝送路或いは有線伝送路を介して送信し、受信側音声通信装置がデジタルの音声符号化情報を受信し、復号してアナログの再生音声信号を出力することが行われている。
【０００３】
次に、従来の受信側音声通信装置に用いられる一般的な音声復号装置の構成について説明する。
【０００４】
図９は、従来の音声復号装置の構成の一例を示すブロック図である。この音声復号装置は、復号部１、再生用バッファ部１０２、Ｄ／Ａ変換部３、サンプリングクロック生成部４で構成されている。ここでは、数値の具体例として、音声符号化速度を２４００ｂｐｓ、フレーム長を２０ｍｓ、再生する音声のサンプリング周波数を８ｋＨｚとする。また、フレーム毎の音声符号化情報ビット列の長さを４８ビット、フレーム毎の復号音声サンプル列の長さを１６０サンプルとする。
【０００５】
復号部１は、外部から入力される音声符号化情報を復号し、復号音声サンプル列を出力する一般的な復号器である。具体的に復号部１は、外部から入力される１フレーム区間の開始を示すフレーム同期信号に同期して、音声符号化情報を入力し、フレーム同期信号に基づいてフレーム毎に復号処理を行い、得られた結果を復号音声サンプル列として出力する。
【０００６】
再生用バッファ部１０２は、復号部１から入力される復号音声サンプル列を一時記憶するものである。再生用バッファ部１０２の入力である復号音声サンプル列は、復号部１の復号タイミングで書き込まれる。再生用バッファ部１０２の出力である再生音声サンプル列は、サンプリングクロック生成部４で生成されるサンプリングクロックに同期して読み出され、出力される。
【０００７】
ここで、再生用バッファ部１０２の構成について説明する。再生用バッファ部１０２は、１フレーム単位のダブルバッファ構成となっている。図１０は、従来の再生用バッファ部の構成の一例を示す図である。再生音声サンプル列がバッファＡから読み出されるとき、復号音声サンプル列はバッファＢに格納される。逆に、再生音声サンプル列がバッファＢから読み出されるとき、復号音声サンプル列はバッファＡに格納される。また、再生用バッファ部１０２の書き込みポイント（アドレス）及び読み出しポイント（アドレス）は、サンプリングクロックに基づいて１６０サンプル／フレームとなるように制御されている。このダブルバッファ構成により、バッファの音声サンプルを読み出している最中にバッファの内容が上書きされて更新されてしまう事態を避けることができる。
【０００８】
Ｄ／Ａ変換部３は、入力されるデジタル信号である再生音声サンプル列を、アナログ信号である再生音声信号に変換する一般的なデジタル／アナログ変換器である。
【０００９】
次に、従来の音声復号装置の動作について説明する。
【００１０】
復号部１は、フレーム同期信号に同期して１フレーム分の音声符号化情報（４８ビット）を取り込み、復号処理を行い、復号音声サンプル列（１６０サンプル／フレーム）が出力されて、再生用バッファ部１０２の２つのバッファを交互に使って記憶される。再生用バッファ部１０２に記憶された復号音声サンプル列は、音声復号装置内で生成されるサンプリングクロックに同期して、２つのバッファのうち書き込みを行っているバッファとは異なるバッファから読み出され、再生音声サンプル列としてＤ／Ａ変換部３へ入力され、アナログの再生音声信号に変換され、出力される。
【００１１】
次に、従来の音声復号装置における復号動作のタイミングについて説明する。
【００１２】
図１１は、従来の音声復号装置の各部におけるタイミングを示すタイミングチャートである。上から順に、フレーム同期信号、音声符号化情報読み込み処理、復号処理、再生用バッファ部更新処理、サンプリングクロック、再生音声サンプル列の波形を示す。
【００１３】
フレーム同期信号は、立ち下がりで１フレーム区間の開始を表す。音声符号化情報読み込み処理は、フレーム同期信号に基づき発生するフレーム割り込みに従って、復号部１により実行され、１フレーム周期（２０ｍｓ）当たり４８ビットの速度で読み込みを行う。復号処理は、復号部１により１フレーム周期（２０ｍｓ）当たり１６０サンプルの復号音声サンプル列を出力する。再生用バッファ部更新処理は、フレーム同期信号に従って実行される。サンプリングクロックは、音声復号装置内の発生源で生成され、再生用バッファ部１０２に入力される。再生音声サンプル列は、サンプリングクロックに同期して再生用バッファ部１０２から読み出され、１フレーム周期（２０ｍｓ）当たり１６０サンプルの速度で出力される。
【００１４】
ここで、フレーム同期信号は、外部から供給される信号であり、サンプリングクロックは、音声復号装置内で発生しているため、フレーム同期信号とサンプリングクロックが同期しているとは限らない。
【００１５】
従来の音声復号装置において、外部から入力されるフレーム同期信号の周波数に誤差が無く正確に５０Ｈｚであれば、１フレーム周期（２０ｍｓ）あたりの音声符号化情報ビット数（４８ビット）と復号音声サンプル列のフレーム単位の長さである復号音声サンプル数（１６０サンプル）とを設計通りに整合した状態に保つことができ、正常に音声復号処理を行うことが可能である。
【００１６】
しかし、フレーム同期信号の周波数精度を高くすることはコストの増大につながることから、一般にフレーム同期信号の周波数精度には所定量の誤差（例えば±２．５％）が許容されている。
【００１７】
ここで、送信側音声通信装置で発振されたフレーム同期信号が復号部１に入力される場合、復号部１に入力されるフレーム周期は、設計段階の規定のフレーム周期とは異なり、更に送信側音声通信装置毎に異なる。従って、送信側音声通信装置が替わると、復号部１から出力される復号音声サンプル列のフレーム周期が変化して、復号側で独立して発振されたサンプリングクロックとの整合性が取れなくなり、正常に音声復号化ができなくなる場合が生じていた。
【００１８】
また、フレーム同期信号が受信側音声通信装置のホストＣＰＵからソフトウェア処理で出力される場合、ホストＣＰＵの負荷の変動等により、フレーム周期はフレーム毎に変動する。その結果、復号部１から出力される復号音声サンプル列のフレーム周期が変化して、サンプリングクロックとの整合性が取れなくなり、正常に音声復号化ができなくなる場合が生じていた。
【００１９】
つまり、従来の音声復号装置における再生用バッファ部１０２は、サンプリングクロックに基づいて１６０サンプル／フレーム固定であるとしており、１６０サンプル／フレームのタイミングで書き込みポイント及び読み出しポイントを制御しているために、１６０サンプル／フレームでないケースが発生すると、整合性が取れなくなる事態が発生する。
【００２０】
このようにサンプリングクロックとの整合性が取れなくなり、正常に音声復号化ができなくなる例について具体的に説明する。ここでは、設計段階でのフレーム同期信号周波数、フレーム周期、復号音声サンプル数をそれぞれ、規定フレーム同期信号周波数、規定フレーム周期、規定復号音声サンプル数とし、誤差に起因する実際のフレーム同期信号周波数、フレーム周期、復号音声サンプル数をそれぞれ、実フレーム同期信号周波数、実フレーム周期、実復号音声サンプル数とする。
【００２１】
例えば、実フレーム同期信号周波数が規定フレーム同期信号周波数に対して±２．５％で変化すると、実フレーム周期も変化し、規定フレーム周期＝２０ｍｓ／フレームとすると、復号部１から出力されるフレーム当たりの実復号音声サンプル数は規定復号音声サンプル数１６０に対して１６０±α（実フレーム同期信号周波数の誤差が±２．５％の場合、α＝４）サンプルの範囲で変化する。
【００２２】
ここで、規定フレーム周期（２０ｍｓ）に基づき、再生用バッファ部１０２を１６０サンプル／フレームの２バッファ構成として、音声復号装置が設計された場合について説明する。例えば、実フレーム同期信号周波数が規定フレーム同期信号よりプラス方向に変動し、規定フレーム周期より実フレーム周期が短くなり、規定フレーム周期に復号部１から出力されて再生用バッファ部１０２に蓄えられる実復号音声サンプル数が１６０＋αサンプルになってしまった場合、復号音声サンプルが一方のバッファＡに蓄積しきれずに、最後のαサンプル分を廃棄してしまうか、又はαサンプル分を他方のバッファＢにはみ出して蓄積されることになる。
【００２３】
最後のαサンプル分がバッファＢのバッファにはみ出して蓄積されたとしても、次のフレーム用のサンプルは、バッファＢの先頭から書き込まれてしまう。更に、再生用バッファ部１０２からの読み出しは、変動しないサンプリングクロックに基づいてバッファ（１６０サンプル）単位であるので、結果的に最後のαサンプル分は、再生用バッファ部１０２から読み出されてＤ／Ａ変換部３に出力されることはなく、再生音声信号で音が飛んでしまうことになる。
【００２４】
また、例えば、実フレーム同期信号周波数が規定フレーム同期信号よりマイナス方向に変動し、実フレーム周期期間が長くなり、規定フレーム周期に復号部１から出力されて再生用バッファ部１０２に蓄えられる実サンプル数が１６０−αサンプルになってしまった場合、復号音声サンプル列がバッファＡ一杯に蓄積されずに、最後のαサンプル分に過去のサンプルデータが残るか、又はバッファＡが初期化されたときの初期化データが残ってしまうことになり、不正なサンプルデータが存在することになる。
【００２５】
更に、再生用バッファ部１０２からの読み出しは、サンプリングクロックに基づいてバッファ（１６０サンプル）単位であるので、結果的に最後のαサンプル分の不正なサンプルも読み出されてＤ／Ａ変換部３に出力されることになり、再生音声信号で雑音が出力されることになる。
【００２６】
このような不具合を解決する方法として、再生用バッファ部１０２に蓄えられる復号音声サンプル数を間引いたり重複して繰り返させたりして、所定の復号音声サンプル数に調整することが考えられるが、単純な復号音声サンプル列の間引きや重複繰り返しにより１６０サンプルを１６０±αサンプルに変換しても、サンプル間の連続性が悪くなり、この結果として再生音声信号の品質が劣化するという問題点があった。
【００２７】
なお、本発明の関連ある従来技術として、例えば、下記に示す特許文献１が知られている。この音声処理方法及び装置は、音声サンプリングカウンタが、フレーム同期信号の１周期に出力音声バッファから出力されるサンプル数をサンプリングクロックでカウントして求め、音声サンプル数変換器で、出力音声バッファに蓄えられた音声サンプル数を所定の音声サンプル数にオーバサンプリング及び補間によって変換するものであり、これにより、上述した問題を解決し、再生音声信号の品質を劣化させることなく所定数に調整して、音声復号化処理を正常に行わせるものである。
【特許文献１】特開平１１−２７２２９５号公報（第７頁、図２）
【発明の開示】
【発明が解決しようとする課題】
【００２８】
しかしながら、上述した特許文献１の音声処理方法及び装置は、再生音声信号の品質の劣化の問題を防止することはできるものの、バッファに蓄えられた復号音声サンプル列に対して変換処理を施す必要があることから、高速な信号処理と複雑なアルゴリズムを必要とし、コストの増大につながっていた。
【００２９】
本発明は上述した問題点を解決するためになされたものであり、フレーム同期信号の周波数誤差に起因する復号音声サンプル数の過不足が発生しても、復号音声サンプル列の変換を行わずに品質劣化のない再生音声信号を出力することができる復号装置、復号方法を提供することを目的とする。
【課題を解決するための手段】
【００３０】
上述した課題を解決するため、本発明は、外部から入力されるフレーム同期信号と共に外部から入力される符号化情報の復号を行い、外部から入力されるサンプリングクロックに従って前記復号の結果を外部へ出力する復号装置であって、前記フレーム同期信号のタイミングに従って、前記符号化情報の復号を行い、該復号の結果を前記符号化情報に含まれるピッチ周期毎に復号サンプル列として出力する復号部と、外部から指示された復号結果用書き込み開始ポイントから前記ピッチ周期毎の前記復号サンプル列の書き込みを行い、外部から指示されたポイントの読み出しを行う復号結果用バッファ部と、外部から指示された再生用書き込み開始ポイントから前記復号結果用バッファ部の出力の書き込みを行い、外部からの指示に従って読み出しを行い外部へ出力する再生用バッファ部と、前記フレーム同期信号の１周期の間に外部から入力されるサンプリングクロックをカウントし、再生サンプル数として出力するサンプルカウンタと、所定の最大サンプル数と前記再生サンプル数に基づいて、前記再生用バッファ部の左シフトを行い、前記再生用書き込み開始ポイントを設定し、前記復号結果用バッファ部から前記再生用バッファ部へのコピーを行い、前記復号結果用バッファ部の左シフトを行い、次のフレームにおける前記復号結果用書き込み開始ポイントを設定し、前記再生用バッファ部の読み出しを行わせる制御部とを備えたものである。
【００３１】
また、本発明は、外部から入力されるフレーム同期信号と共に外部から入力される符号化情報の復号を行い、外部から入力されるサンプリングクロックに従って前記復号の結果を外部へ出力する復号装置であって、前記フレーム同期信号のタイミングに従って、前記符号化情報の復号を行い、該復号の結果を前記符号化情報に含まれるピッチ周期毎に復号サンプル列として出力する復号部と、外部から指示された復号結果用書き込み開始ポイントから前記ピッチ周期毎の前記復号サンプル列の書き込みを行い、外部から指示された数の左シフトを行い、外部から指示されたポイントの読み出しを行う復号結果用バッファ部と、外部から指示された数の左シフトを行い、前記復号結果用バッファ部により読み出されたサンプルを外部から指示された再生用書き込み開始ポイントに書き込みを行い、外部から指示されたポイントの読み出しを行い外部へ出力する再生用バッファ部と、前記フレーム同期信号の１周期の間に外部から入力されるサンプリングクロックをカウントし、再生サンプル数として出力するサンプルカウンタと、前記フレーム同期信号に従って、前記サンプルカウンタから前記再生サンプル数を取得し、前記再生用バッファ部の内容を前記再生サンプル数だけ左シフトし、（所定の最大サンプル数−前記再生サンプル数）を前記再生用バッファ部の再生用書き込み開始ポイントとし、前記復号結果用バッファ部の先頭から前記再生サンプル数分を前記再生用バッファ部へコピーし、前記復号結果用バッファ部の復号結果用書き込み開始ポイントからの書き込みの長さが、前記所定の最大サンプル数を超えたピッチ周期の最後を書き込み終了暫定ポイントとし、（該書き込み終了暫定ポイント−前記ピッチ周期）が前記再生サンプル数より大きいという条件を満たす場合、（前記書き込み終了暫定ポイント−前記ピッチ周期）を書き込み終了ポイントとし、前記条件を満たさない場合、前記書き込み終了暫定ポイントを書き込み終了ポイントとし、前記復号結果用バッファ部の内容を前記再生サンプル数だけ左シフトし、前記復号結果用バッファ部の（前記書き込み終了ポイント−前記再生サンプル数）のポイントを次のフレームの復号結果用書き込み開始ポイントとし、前記再生用バッファ部の先頭ポイントから読み出しを行わせる制御部とを備えたものである。
【００３２】
また、本発明に係る復号装置において、前記復号結果用バッファの長さは前記規定フレーム周期の２倍とすることを特徴とするものである。
【００３３】
また、本発明に係る復号装置において、前記所定の最大サンプル数は、フレーム周波数誤差によりフレームの長さが最大となる場合の１フレームのサンプル数とすることを特徴とするものである。
【００３４】
また、本発明は、復号結果用バッファ部と再生用バッファ部を備えた復号装置において、外部から入力されるフレーム同期信号と共に外部から入力される符号化情報の復号を行い、外部から入力されるサンプリングクロックに従って前記復号の結果を外部へ出力する復号方法であって、前記フレーム同期信号のタイミングに従って、前記符号化情報の復号を行い、該復号の結果を前記符号化情報に含まれるピッチ周期毎に復号サンプル列として前記復号結果用バッファ部へ書き込みを行う復号ステップと、前記フレーム同期信号の１周期の間に外部から入力されるサンプリングクロックをカウントした結果を再生サンプル数として取得するサンプルカウンタステップと、所定の最大サンプル数と前記再生サンプル数に基づいて、前記再生用バッファ部の左シフトを行い、前記再生用書き込み開始ポイントを設定する再生用バッファ部更新ステップと、前記再生サンプル数に基づいて、前記復号結果用バッファ部から前記再生用バッファ部へのコピーを行うコピーステップと、所定の最大サンプル数と前記再生サンプル数に基づいて、前記復号結果用バッファ部の左シフトを行い、次のフレームにおける前記復号結果用書き込み開始ポイントを設定する復号結果用バッファ部更新ステップと、前記再生用バッファ部を読み出し、外部へ出力する再生ステップとを実行するものである。
【００３５】
また、本発明は、復号結果用バッファ部と再生用バッファ部を備えた復号装置において、外部から入力されるフレーム同期信号と共に外部から入力される符号化情報の復号を行い、外部から入力されるサンプリングクロックに従って前記復号の結果を外部へ出力する復号方法であって、前記フレーム同期信号のタイミングに従って、前記符号化情報の復号を行い、該復号の結果を前記符号化情報に含まれるピッチ周期毎に復号サンプル列として前記復号結果用バッファ部へ書き込みを行う復号ステップと、前記フレーム同期信号の１周期の間に外部から入力されるサンプリングクロックをカウントした結果を再生サンプル数として取得するサンプルカウンタステップと、前記再生用バッファ部の内容を前記再生サンプル数だけ左シフトし、（所定の最大サンプル数−前記再生サンプル数）を前記再生用バッファ部の再生用書き込み開始ポイントとする再生用バッファ部更新ステップと、前記復号結果用バッファ部の先頭から前記再生サンプル数分を前記再生用バッファ部へコピーするコピーステップと、前記復号結果用バッファ部の復号結果用書き込み開始ポイントからの書き込みの長さが、前記所定の最大サンプル数を超えたピッチ周期の最後を書き込み終了暫定ポイントとし、（該書き込み終了暫定ポイント−前記ピッチ周期）が前記再生サンプル数より大きいという条件を満たす場合、（前記書き込み終了暫定ポイント−前記ピッチ周期）を書き込み終了ポイントとし、前記条件を満たさない場合、前記書き込み終了暫定ポイントを書き込み終了ポイントとし、前記復号結果用バッファ部の内容を前記再生サンプル数だけ左シフトし、前記復号結果用バッファ部の（前記書き込み終了ポイント−前記再生サンプル数）のポイントを次のフレームの復号結果用書き込み開始ポイントとする復号結果用バッファ部更新ステップと、前記再生用バッファ部の先頭ポイントから読み出し、外部へ出力する再生ステップとを実行するものである。
【００３６】
また、本発明に係る復号方法において、前記復号結果用バッファの長さは前記規定フレーム周期の２倍とすることを特徴とするものである。
【００３７】
また、本発明に係る復号方法において、前記所定の最大サンプル数は、フレーム周波数誤差によりフレームの長さが最大となる場合の１フレームのサンプル数とすることを特徴とするものである。
【発明の効果】
【００３８】
本発明によれば、フレーム同期信号における１周期のサンプリングクロック数をカウントしてサンプル数を求め、サンプル数に基づいてバッファにおける書き込みポイント及び読み出しポイントを制御することにより、フレーム周期に対するサンプル数の過不足が発生しても、実際のサンプル数に基づいてバッファへの書き込み及び読み出しが連続的に行われるように制御でき、品質劣化を伴わずに再生音声信号を出力できる。
【発明を実施するための最良の形態】
【００３９】
以下、本発明の実施の形態について図面を参照しつつ説明する。本実施の形態においては、復号装置の例として、音声符号化情報を入力し、再生音声信号を出力する音声復号装置について説明する。また、本実施の形態においては、従来例と同様、数値の具体例として、音声符号化速度を２４００ｂｐｓ、フレーム長を２０ｍｓ、再生する音声のサンプリング周波数を８ｋＨｚ、フレーム毎の音声符号化情報ビット列の長さを４８ビット、規定フレームの復号音声サンプル列の長さを１６０サンプルとする。
【００４０】
まず、本発明に係る音声復号装置の構成について説明する。
【００４１】
図１は、本発明に係る音声復号装置の構成の一例を示すブロック図である。図１において、図９と同一符号は図９に示された対象と同一又は相当物を示しており、ここでの説明を省略する。図９と比較すると図１は、再生用バッファ部１０２の代わりに再生用バッファ部２を備える。図９と比較すると図１は、新たにサンプルカウンタ１０、制御部１１、復号結果用バッファ部１２を備える。
【００４２】
次に、音声復号装置の各部について説明する。
【００４３】
本実施の形態では、復号部１として、ＬＰＣ（Ｌｉｎｅａｒ  Ｐｒｅｄｉｃｔｉｖｅ  Ｃｏｄｅｒ）、ＭＥＬＰ（Ｍｉｘｅｄ  Ｅｘｃｉｔａｔｉｏｎ  Ｌｉｎｅａｒ  Ｐｒｅｄｉｃｔｉｖｅ  Ｃｏｄｅｒ）等の分析合成符号化を用いた復号器であることを前提としており、入力される音声符号化情報の中に含まれるピッチ周期情報に基づき、１ピッチ周期単位で音声を合成し、復号音声サンプル列として出力するものである。ここで、ピッチ周期は、２０〜１６０サンプルの範囲を取る。
【００４４】
また、復号部１は、送信側音声通信装置から入力される１フレーム区間の開始を示すフレーム同期信号（５０Ｈｚ＝１／２０ｍｓ）と、音声符号化情報（４８ビット／フレーム）を入力し、フレーム同期信号に基づいてフレーム毎に復号処理を行い、その結果を復号音声サンプル列（１６０サンプル／フレーム）として出力する。
【００４５】
復号結果用バッファ部１２は、復号部１から出力された復号音声サンプル列を一時記憶するバッファであり、復号部１における復号タイミングで書き込まれるものである。ここで、復号結果用バッファ部１２の長さは、例えば、規定フレーム周期である１６０サンプルの２倍（３２０サンプル）に設定する。また、復号結果用バッファ部１２における入出力は、後述する制御部１１によって制御される。
【００４６】
再生用バッファ部２は、復号結果用バッファ部１２に記憶された復号音声サンプル列の一部を一時記憶し、Ｄ／Ａ変換部３に再生音声サンプル列を出力するバッファである。再生用バッファ部２は、従来の再生用バッファ部１０２と同様、サンプリングクロック生成部４から入力されるサンプリングクロック（８ｋＨｚ）に同期して、読み出しポイントを示す再生用ポインタをインクリメントしながら、記憶されている復号音声サンプル列が読み出され、再生音声サンプル列としてＤ／Ａ変換部３に出力されるようになっている。但し、従来の再生用バッファ部１０２と異なる点は、後述する制御部１１の制御により、データが書き込まれ、また、ポインタが制御部１１によって制御される点が従来と異なる。
【００４７】
再生用バッファ部２の大きさは、規定フレーム長のサンプル数（例：１６０サンプル）＋最大変動サンプル数分（例：フレーム同期信号の周波数誤差が±２．５％の場合、４サンプル）とし、この長さを後述する可変フレーム長Ｌｖの最大値とする。再生用バッファ部２に実際に格納される復号音声サンプル列の長さは、後述するサンプルカウンタ１０の出力である再生音声サンプル数に基づいて制御部１１からの出力である制御信号により制御されるようになっている。
【００４８】
また、再生用バッファ部２における読み出しポイントを示す再生用ポインタは制御部１１によって制御され、サンプリングクロック（８ｋＨｚ）に同期して再生用ポインタが示すポイントから音声サンプルが読み出されて再生音声サンプル列として出力されるようになっている。
【００４９】
サンプルカウンタ１０は、フレーム同期信号ａに基づく実フレーム周期当りにＤ／Ａ変換部３に出力される再生音声サンプル列の長さを再生音声サンプル数として出力するもので、フレーム周期のサンプリングクロックをカウントすることにより再生音声サンプル数を求める。
【００５０】
具体的には、サンプルカウンタ１０は、フレーム同期信号ａに従い、フレーム同期信号がＨからＬ（有効）に切り替わると、フレームの開始を認識してサンプリングクロックのカウントを開始し、次にフレーム同期信号がＨからＬに切り替わる時に、カウント値を再生音声サンプル数として制御部１１に出力し、出力後にクリアして再度サンプリングクロックのカウントを開始するようになっている。
【００５１】
なお、サンプルカウンタ１０で求める再生音声サンプル数は、送信側音声通信装置におけるフレーム同期信号周波数に依存して決まるものである場合は、必ずしもフレーム毎に毎回再生音声サンプル数をカウントしなくてもよく、少なくとも、送信側の構成が切り替わったときにカウントされればよい。
【００５２】
しかし、フレーム同期信号が受信側音声通信装置のホストＣＰＵからソフトウェア処理で出力される構成の場合には、ホストＣＰＵの負荷の変動により、フレーム同期信号の周波数はフレーム毎に変動するため、フレーム毎に毎回再生音声サンプル数をカウントする必要がある。
【００５３】
また、サンプルカウンタ１０は、受信側音声通信装置が自ら入力するフレーム同期信号に基づいて、再生音声サンプル数の出力、カウンタのクリアを行う構成としても良いし、単にサンプリングクロックのカウント機能のみとし、後述する制御部１１の制御によって再生音声サンプル数の出力、カウンタのクリアを行うように構成しても構わない。
【００５４】
この時、実フレーム同期信号周波数が当初の設計通りの規定フレーム同期信号周波数であれば、フレーム同期信号に基づく実フレーム周期も規定フレーム周期となり、フレーム同期信号とは独立しているサンプリングクロックであっても、サンプリングクロックに従って出力される再生音声サンプル数は規定値、例えば１６０になるはずである。しかし、送信側音声通信装置または受信側音声通信装置のホストＣＰＵの負荷状況等に依存して、実フレーム同期信号周波数が規定フレーム同期信号周波数に対して所定量の誤差（例えば±２．５％）で変化している場合、１フレーム期間が変化するため、１フレーム期間に再生用バッファ部２から出力される再生音声サンプル数は１６０±α（αは例えば４）サンプルの範囲で変化する。
【００５５】
ここでは、１６０±αサンプルの範囲を有する再生音声サンプル数を現フレームでの可変フレーム長Ｌｖと定義し、αの最大値をαｍａｘと定義する。具体的には、実フレーム同期信号周波数が規定フレーム同期信号周波数に対して増加すれば、フレーム同期信号の実フレーム周期が短くなるため、１フレーム周期に出力される再生音声サンプル数は減少することになり、逆に実フレーム同期信号周波数が規定フレーム同期信号周波数に対して減少すれば、フレーム同期信号の実フレーム周期が長くなるため、１フレーム周期に出力される再生音声サンプル数は増加することになる。
【００５６】
制御部１１は、外部から入力されるフレーム同期信号のタイミングと、サンプルカウンタ１０で求められた再生音声サンプル数に基づいて、復号結果用バッファ部１２、及び再生用バッファ部２における入出力制御を行うものである。
【００５７】
次に、制御部１１による入出力制御処理について具体的に説明する。
【００５８】
本実施の形態に係る音声復号装置において、各所における信号の入出力タイミングは、図１１に示した従来の音声復号装置と同様である。
【００５９】
制御部１１では、図１１に示したフレーム同期信号ａがＨからＬ（有効）へ切り替わるタイミングから、次にＨからＬへ切り替わるタイミングまでを書き込み制御単位とする。また、制御部１１は、書き込み制御単位の初めにサンプルカウンタ１０から出力される再生音声サンプル数である可変フレーム長Ｌｖを受け取り、この可変フレーム長Ｌｖを各バッファの入出力制御処理に用いる。
【００６０】
また、制御部１１は、復号結果用バッファ部１２に対する入出力制御処理として、書き込み制御単位毎に復号音声サンプル列の書き込み開始位置を示す復号結果用書き込み開始ポイントと、書き込み中の復号音声サンプル列の書き込み位置を示す書き込みポイントと、書き込み制御単位毎に復号音声サンプル列の書き込み終了位置を示す書き込み終了ポイントとを、制御信号により制御する。また、制御部１１は、再生用バッファ部２に対する入出力制御処理として、読み出しポイント、復号結果用書き込み開始ポイント、再生用書き込み開始ポイント等のポインタを制御信号により制御する。
【００６１】
次に、制御部１１による復号結果用バッファ部１２の入出力制御処理について具体的に説明する。
【００６２】
図２は、本発明に係る制御部１１による復号結果用バッファ部１２及び再生用バッファ部２の入出力制御処理の第１の例を示す図である。制御部１１は、復号結果用バッファ部１２に対する入出力制御処理の初期処理において、図２に示すように、まず復号結果用バッファ部１２における復号結果用書き込み開始ポイントの初期値として復号結果用バッファ部１２の先頭を設定する。また、再生用バッファ部２のメモリ内容は０で初期化されているものとする。次に、制御信号に従って、復号部１でピッチ周期毎に復号された復号音声サンプル列は、復号結果用バッファ部１２の復号結果用書き込み開始ポイントからピッチ周期毎に書き込まれ、復号結果用バッファ部１２は１サンプル書き込まれる毎に書き込みポイントをインクリメントしていく。
【００６３】
書き込みポイントがインクリメントされ、復号音声サンプルがピッチ周期毎に書き込まれていく過程で、制御部１１は、書き込みポイントが規定フレーム長Ｆ＿ＬＥＮＧＴＨ（１６０サンプル）と最大変動サンプル数αｍａｘ（４サンプル）の和（１６４サンプル）のポイントを越えたならば、そのときのピッチ周期分のサンプルを書き終わった時点で書き込みを停止しておき、そのポイントを書き込み終了暫定ポイントとする。
【００６４】
ここで、可変フレーム長Ｌｖは、次のフレームの開始時（フレーム同期信号がＨからＬへ切り替わったタイミング）において、サンプルカウンタ１０から与えられる。
【００６５】
図２では、例として可変フレーム長Ｌｖが規定フレーム長Ｆ＿ＬＥＮＧＴＨ（１６０サンプル）と最大変動サンプル数αｍａｘ（４サンプル）の差である場合、すなわち、可変フレーム長Ｌｖが想定している最小値（１５６サンプル）の場合を示している。
【００６６】
次に、再生用バッファ部２のメモリ内容（初期値は０）を可変フレーム長Ｌｖ分だけ左シフトした後、再生用バッファ部２のサイズ（規定フレーム長Ｆ＿ＬＥＮＧＴＨ（１６０サンプル）と最大変動サンプル数αｍａｘ（４サンプル）の和）から可変フレーム長Ｌｖを引いたポイント（αｍａｘ×２）を再生用バッファ部２の再生用書き込み開始ポイント（アドレス）とする。
【００６７】
次に、復号結果用バッファ部１２の先頭から、可変フレーム長Ｌｖ分の復号情報を、再生用バッファ部２の再生用書き込み開始ポイント（αｍａｘ×２）を起点とし再生用バッファ部２にコピーする。
【００６８】
次に、制御部１１による復号結果用バッファ部１２の更新処理について説明する。
【００６９】
復号結果用バッファ部１２のバッファの書き込み終了暫定ポイントからピッチ周期を引いたポイントが、復号結果用バッファ部１２の先頭ポイントに可変フレーム長Ｌｖを加算したポイントより大きければ、書き込み終了暫定ポイントからピッチ周期を引いたポイントを書き込み終了ポイントとし、そうでなければ、書き込み終了暫定ポイントを書き込み終了ポイントと設定する。従って、図２の例では、書き込み終了暫定ポイントからピッチ周期を引いたポイントを書き込み終了ポイントとしている。
【００７０】
次に、復号結果用バッファ部１２の書き込み終了ポイントより大きいポイントのサンプル値を０クリアした後、復号結果用バッファ部１２の復号結果を再生音声サンプル数分だけ左シフトする。復号結果用バッファ部１２の書き込み終了ポイントから可変フレーム長Ｌｖ分を引いたポイントを次のフレームの復号結果用書き込み開始ポイントに設定する。次に、再生用バッファ部２の先頭から再生音声サンプル列が出力される。
【００７１】
図３は、本発明に係る制御部１１による復号結果用バッファ部１２及び再生用バッファ部２の入出力制御処理の第２の例を示す図である。この図は、図２に示したフレームの次のフレームを示しており、更に、可変フレーム長Ｌｖが、規定フレーム長Ｆ＿ＬＥＮＧＴＨ（１６０サンプル）と最大変動サンプル数αｍａｘ（４サンプル）の和である場合、すなわち、可変フレーム長Ｌｖが想定している最大値（１６４サンプル）の場合を示している。この図の例では、書き込み終了暫定ポイントを書き込み終了ポイントと設定する。
【００７２】
図４は、本発明に係る制御部１１による復号結果用バッファ部１２及び再生用バッファ部２の入出力制御処理の第３の例を示す図である。この図は、図３に示したフレームの次のフレームを示しており、更に、可変フレーム長Ｌｖが規定フレーム長Ｆ＿ＬＥＮＧＴＨ（１６０サンプル）と最大変動サンプル数αｍａｘ（４サンプル）の差である場合、すなわち、可変フレーム長Ｌｖが想定している最小値（１５６サンプル）の場合を示している。この図の例では、書き込み終了暫定ポイントからピッチ周期を引いたポイントを書き込み終了ポイントと設定する。
【００７３】
上述したように、本発明によれば、制御部１１における入出力制御によって、復号部１におけるフレーム同期信号に基づく復号タイミングと、サンプリングクロックに基づく再生タイミングとの整合性がとれない状態であっても、復号結果用バッファ部１２への書き込みは復号タイミングで行い、再生用バッファ部２からの読み出しは再生タイミングで行えるので、タイミングの不整合による再生音声サンプルの欠落や不正なサンプルの混入を回避できる。
【００７４】
なお、上述した本発明の音声復号装置は、ＤＳＰ（ディジタルシグナルプロセッサ）等を用いるソフトウェア処理により、容易に実現可能である。ソフトウェア処理で実現する場合には、図１の各構成要素が行う動作をプログラムにより実現し、フレーム同期信号、サンプリングクロックの各タイミングに応じて、割り込みが発生し、当該割り込み処理の中で、各プログラムが起動されることになる。図１の構成に加えて、割り込み処理の中で各プログラムの動作を制御する主制御部が必要となる。
【００７５】
また、音声復号装置の一部の機能をハードウェア処理で実現し、他の部分をソフトウェア処理で実現しても良い。
【００７６】
まず、フレーム割り込み処理について説明する。
【００７７】
上述した再生用バッファ部２および復号結果用バッファ部１２の更新処理等は、フレーム同期信号がＨからＬ（有効）へ切り替わるタイミングで、フレーム割り込み処理として実行される。図５は、本発明に係るソフトウェア処理による音声復号装置におけるフレーム割り込み処理の動作の一例を示すフローチャートである。
【００７８】
まず、音声復号装置は、外部からの音声符号化情報を１フレーム分読み込む（Ｓ１１）。次に、音声復号装置は、可変フレーム長Ｌｖとしてサンプルカウンタ１０から再生音声サンプル数を設定する（Ｓ１２）。次に、音声復号装置は、サンプルカウンタ１０を０クリアする（Ｓ１３）。次に、音声復号装置は、後述する再生用バッファ部２の更新処理を実行する（Ｓ２１）。次に、音声復号装置は、後述する復号結果用バッファ部１２の更新処理を実行する（Ｓ２２）。次に、音声復号装置は、再生用バッファ部２の読み出しポイント（アドレス）をバッファ先頭アドレスにリセットし（Ｓ２３）、このフローを終了する。
【００７９】
次に、再生用バッファ部２の更新処理について説明する。
【００８０】
図６は、本発明に係るソフトウェア処理による音声復号装置における再生用バッファ部の更新処理の動作の一例を示すフローチャートである。まず、音声復号装置は、再生用バッファ部２のメモリ内容（初期値は０）を可変フレーム長Ｌｖ分だけ左シフトする（Ｓ３１）。次に、音声復号装置は、再生用バッファ部２のサイズ（規定フレーム長Ｆ＿ＬＥＮＧＴＨ（１６０サンプル）と最大変動サンプル数αｍａｘ（４サンプル）の和）から可変フレーム長Ｌｖを引いたポイントを再生用バッファ部２の再生用書き込み開始ポイント（アドレス）とする。次に、音声複合装置は、復号結果用バッファ部１２の先頭から、可変フレーム長Ｌｖ分の復号情報を、再生用バッファ部２の再生用書き込み開始ポイント（アドレス）を起点として、再生用バッファ部２にコピーし（Ｓ３３）、このフローを終了する。
【００８１】
次に、復号結果用バッファ部１２の更新処理について説明する。
【００８２】
図７は、本発明に係るソフトウェア処理による音声復号装置における復号結果用バッファ部の更新処理の動作の一例を示すフローチャートである。まず、音声復号装置は、復号結果用バッファ部１２のバッファの書き込み終了暫定ポイントからピッチ周期を引いたポイントが、復号結果用バッファ部１２の先頭ポイントに可変フレーム長Ｌｖを加算したポイントより大きいか否かの判断を行う（Ｓ４１）。
【００８３】
大きい場合（Ｓ４１，Ｙ）、音声復号装置は、書き込み終了暫定ポイントからピッチ周期を引いたポイントを書き込み終了ポイントとし（Ｓ４２）、そうでなければ（Ｓ４１，Ｎ）、音声復号装置は、書き込み終了暫定ポイントを書き込み終了ポイントと設定する（Ｓ４３）。次に、音声復号装置は、復号結果用バッファ部１２の書き込み終了ポイントより大きいポイントのサンプル値を０クリアする（Ｓ５１）。次に、音声復号装置は、復号結果用バッファ部１２の復号情報を前記カウントしたサンプル数分だけ左シフトする（Ｓ５２）。次に、音声復号装置は、復号結果用バッファ部１２の書き込み終了ポイントから可変フレーム長Ｌｖ分を引いたポイントを現フレームのための復号結果用バッファ部１２の復号結果用書き込み開始ポイントに設定し（Ｓ５３）、このフローを終了する。
【００８４】
次に、サンプリングクロックのタイミングで実行される音声サンプル出力割り込み処理について説明する。
【００８５】
図８は、本発明に係るソフトウェア処理による音声復号装置における音声サンプル出力割り込み処理の動作の一例を示すフローチャートである。まず、音声復号装置は、再生用バッファ部２の読み出しポイント（アドレス）から再生音声サンプル列の１サンプルをＤ／Ａ変換部３に出力する（Ｓ６１）。次に、音声復号装置は、再生用バッファ部２の読み出しポイント（アドレス）のポインタをインクリメントする（Ｓ６２）。次に、音声復号装置は、サンプルカウンタ１０での再生音声サンプル数をインクリメントし（Ｓ６３）、このフローを終了する。
【００８６】
なお、本実施の形態においては、復号装置として音声復号装置の例を用いて説明したが、１ピッチ周期単位で音声が合成される分析合成符号化を用いた音声情報を復号するものに適用可能である。
【００８７】
また、上述した機能実現手段は、当該機能を実現できる手段であれば、どのような回路又は装置であっても構わず、また機能の一部又は全部をソフトウェアで実現することも可能である。更に、機能実現手段を複数の回路によって実現してもよく、複数の機能実現手段を単一の回路で実現してもよい。
【００８８】
また、本発明に係る復号装置は、通信装置に容易に適用することができ、通信装置の性能をより高めることができる。ここで、通信装置には、音声を受信し、復号する携帯電話、固定電話、放送受信機等が含まれ得る。
【図面の簡単な説明】
【００８９】
【図１】本発明に係る音声復号装置の構成の一例を示すブロック図である。
【図２】本発明に係る制御部による復号結果用バッファ部及び再生用バッファ部の入出力制御処理の第１の例を示す図である。
【図３】本発明に係る制御部による復号結果用バッファ部及び再生用バッファ部の入出力制御処理の第２の例を示す図である。
【図４】本発明に係る制御部による復号結果用バッファ部及び再生用バッファ部の入出力制御処理の第３の例を示す図である。
【図５】本発明に係るソフトウェア処理による音声復号装置におけるフレーム割り込み処理の動作の一例を示すフローチャートである。
【図６】本発明に係るソフトウェア処理による音声復号装置における再生用バッファ部の更新処理の動作の一例を示すフローチャートである。
【図７】本発明に係るソフトウェア処理による音声復号装置における復号結果用バッファ部の更新処理の動作の一例を示すフローチャートである。
【図８】本発明に係るソフトウェア処理による音声復号装置における音声サンプル出力割り込み処理の動作の一例を示すフローチャートである。
【図９】従来の音声復号装置の構成の一例を示すブロック図である。
【図１０】従来の再生用バッファ部の構成の一例を示す図である。
【図１１】従来の音声復号装置の各部におけるタイミングを示すタイミングチャートである。
【符号の説明】
【００９０】
１  復号部、２  再生用バッファ部、３  Ｄ／Ａ変換部、４  サンプリングクロック生成部、１０  サンプルカウンタ、１１  制御部、１２  復号結果用バッファ部。
【図１】
2007072334.tif 000003
【図２】
2007072334.tif 000004
【図３】
2007072334.tif 000005
【図４】
2007072334.tif 000006
【図５】
2007072334.tif 000007
【図６】
2007072334.tif 000008
【図７】
2007072334.tif 000009
【図８】
2007072334.tif 000010
【図９】
2007072334.tif 000011
【図１０】
2007072334.tif 000012
【図１１】
2007072334.tif 000013