パラメータ復号装置およびパラメータ復号方法
【課題】予測量子化において主観品質の劣化を抑えるようにパラメータの補償処理を行うこと。
【解決手段】増幅器(305−1〜305−M)は入力した量子化予測残差ベクトルxn-1〜xn-Mに重み付け係数β1〜βMを乗算する。増幅器(306)は前フレームの復号LSFベクトルyn-1に重み係数β-1を乗算する。増幅器(307)はコードブック(301)から出力されたコードベクトルxn+1に重み係数β0を乗算する。加算器(308)は増幅器(305−1〜305−M)、増幅器(306)および増幅器(307)から出力されたベクトルの総和を計算する。切替スイッチ(309)は、現フレームのフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示し、かつ、次フレームのフレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示す場合には、加算器(308)から出力されたベクトルを選択する。
【解決手段】増幅器(305−1〜305−M)は入力した量子化予測残差ベクトルxn-1〜xn-Mに重み付け係数β1〜βMを乗算する。増幅器(306)は前フレームの復号LSFベクトルyn-1に重み係数β-1を乗算する。増幅器(307)はコードブック(301)から出力されたコードベクトルxn+1に重み係数β0を乗算する。加算器(308)は増幅器(305−1〜305−M)、増幅器(306)および増幅器(307)から出力されたベクトルの総和を計算する。切替スイッチ(309)は、現フレームのフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示し、かつ、次フレームのフレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示す場合には、加算器(308)から出力されたベクトルを選択する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、予測器を用いて符号化されたパラメータを復号するパラメータ復号装置およびパラメータ復号方法に関する。
【背景技術】
【0002】
ITU−T勧告G.729や3GPP AMRなどの音声コーデックでは、音声信号を分析して得られるパラメータの一部を移動平均 (Moving Average(MA))予測モデルに基づく予測量子化方法で量子化している(特許文献1、非特許文献1、非特許文献2)。MA型予測量子化器は過去の量子化予測残差の線形和で現在の量子化対象パラメータを予測するモデルであり、符号励振線形予測(Code Excited Linear Prediction(CELP))型の音声コーデックでは、線スペクトル周波数(Line Spectral Frequency(LSF))パラメータや、エネルギパラメータの予測に用いられている。
【0003】
MA型予測量子化器は、過去有限フレーム数における量子化予測残差の重み付け線形和で予測が行われるため、量子化情報に伝送路誤りがあってもその影響が及ぶのは有限フレーム数に限定される。一方、過去の復号パラメータを再帰的に用いる自己回帰(Auto Regressive(AR))型予測量子化器では、一般に高い予測利得、量子化性能が得られるものの、誤りの影響が長時間に及ぶ。このため、MA型予測のパラメータ量子化器は、AR型予測のパラメータ量子化器に比べて高い誤り耐性を実現することができ、特に移動通信用の音声コーデックなどに用いられている。
【0004】
ここで、従来から、復号側においてフレームが消失した場合のパラメータ補償方法について検討されている。一般的には、消失したフレームのパラメータの代わりに、当該フレームの前のフレームのパラメータを利用して補償を行う。ただし、LSFパラメータの場合には、徐々に平均的なLSFに近づけたり、エネルギパラメータの場合は徐々に減衰させたり、という手法により消失フレーム前のパラメータを少しずつ修正して利用することもある。
【0005】
MA型予測器を利用した量子化器においても、通常この手法が用いられ、LSFパラメータの場合には補償フレームにおいて生成されたパラメータが復号されるような量子化予測残差を生成してMA型予測器の状態を更新する処理が行われ(非特許文献1)、エネルギパラメータの場合には過去の量子化予測残差の平均値を一定の割合で減衰させたものを用いてMA型予測器の状態を更新する処理が行われる(特許文献2、非特許文献1)。
【0006】
また、消失フレーム後の復帰フレーム(正常フレーム)の情報が得られてから、消失フレームのパラメータを内挿する手法もある。例えば、特許文献3では、ピッチゲインの内挿を行い、適応符号帳の内容を生成しなおす手法が提案されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平6−175695号公報
【特許文献2】特開平9−120297号公報
【特許文献3】特開2002−328700号公報
【非特許文献】
【0008】
【非特許文献1】ITU−T勧告G.729
【非特許文献2】3GPP TS 26.091
【発明の概要】
【発明が解決しようとする課題】
【0009】
消失フレームのパラメータを内挿する手法は、予測量子化が行われていない場合に用いられるが、予測量子化が行われている場合には、消失フレーム直後のフレームにおいて符号化情報が正しく受信されても予測器が直前フレームの誤りの影響を受けてしまい正しい復号結果を得ることができないので、一般的に用いられない。
【0010】
このように、従来のMA型予測器を用いるパラメータ量子化装置では、内挿的な手法による消失フレームのパラメータの補償処理を行っていないため、例えばエネルギパラメータについて減衰のさせすぎなどによる音切れが起こり、主観品質の劣化要因となる場合がある。
【0011】
また、予測量子化が行われている場合に、復号量子化予測残差を単純に内挿補間することによりパラメータを復号する方法も考えられるが、復号量子化予測残差は大きく変動しても復号パラメータは重み付け移動平均によりフレーム間で緩やかに変動するのに対し、この方法では、復号量子化予測残差の変動に伴って復号パラメータも変動してしまうため、復号量子化予測残差の変動が大きい場合に、かえって主観品質の劣化を大きくしてしまう。
【0012】
本発明の目的は、かかる点に鑑みてなされたものであり、予測量子化が行われている場合において、主観品質の劣化を抑えるようにパラメータの補償処理を行うことができるパラメータ復号装置およびパラメータ復号方法を提供することである。
【課題を解決するための手段】
【0013】
本発明の一態様に係るパラメータ復号装置は、復号対象の現在フレームに含まれる符号化情報に基づいて量子化予測残差を求める予測残差復号手段と、前記量子化予測残差に基づいてパラメータを復号するパラメータ復号手段と、を具備し、前記予測残差復号手段は、前記現在フレームが消失した場合、過去に復号されたパラメータおよび未来フレームの量子化予測残差の重み付け線形和により現在フレームの量子化予測残差を求める、構成を採る。
【0014】
また、本発明の一態様に係るパラメータ符号化装置は、入力信号を分析して分析パラメータを求める分析手段と、予測係数を用いて前記分析パラメータを予測し、予測残差を量子化して得られる量子化予測残差と前記予測係数とを用いて量子化パラメータを得る符号化手段と、重み付け係数のセットを複数格納し、現在フレームの前記量子化予測残差、2フレーム過去の前記量子化予測残差、および、2フレーム過去の前記量子化パラメータに対し、前記重み付け係数のセットを用いて重み付き和を求め、前記重み付き和を用いて1フレーム過去の前記量子化パラメータを複数求める前フレーム補償手段と、前記前フレーム補償手段で求めた複数の前記1フレーム過去の前記量子化パラメータを、1フレーム過去に前記分析手段により求められた前記分析パラメータと比較して、前記1フレーム過去の前記量子化パラメータを一つ選択し、選択された前記1フレーム過去の前記量子化パラメータに対応する重み付け係数セットを選択して符号化する判定手段を、を具備する構成を採る。
【0015】
また、本発明の一態様に係るパラメータ復号方法は、復号対象の現在フレームに含まれる符号化情報に基づいて量子化予測残差を求める予測残差復号工程と、前記量子化予測残差に基づいてパラメータを復号するパラメータ復号工程と、を具備し、前記予測残差復号工程では、前記現在フレームが消失した場合、過去に復号されたパラメータおよび未来フレームの量子化予測残差の重み付け線形和により現在フレームの量子化予測残差を求める、方法を採る。
【発明の効果】
【0016】
本発明によれば、予測量子化が行われている場合において、現在フレームが消失した場合、過去に復号されたパラメータ、過去フレームの量子化予測残差および未来フレームの量子化予測残差の重み付け線形和により現在フレームの量子化予測残差を求めることにより、主観品質の劣化を抑えるようにパラメータの補償処理を行うことができる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施の形態1に係る音声復号装置の主要な構成を示すブロック図
【図2】本発明の実施の形態1に係る音声復号装置のLPC復号部の内部構成を示す図
【図3】図2中のコードベクトル復号部の内部構成を示す図
【図4】消失フレームがない場合に通常の処理を行った結果の一例を示す図
【図5】本実施の形態の補償処理を行った結果の一例を示す図
【図6】従来の補償処理を行った結果の一例を示す図
【図7】従来の補償処理を行った結果の一例を示す図
【図8】本発明の実施の形態2に係る音声復号装置の主要な構成を示すブロック図
【図9】図8中のLPC復号部の内部構成を示すブロック図
【図10】図9中のコードベクトル復号部の内部構成を示すブロック図
【図11】本発明の実施の形態3に係る音声復号装置の主要な構成を示すブロック図
【図12】図11中のLPC復号部の内部構成を示すブロック図
【図13】図12中のコードベクトル復号部の内部構成を示すブロック図
【図14】図1中の利得復号部の内部構成を示すブロック図
【図15】図14中の予測残差復号部の内部構成を示すブロック図
【図16】図15中のサブフレーム量子化予測残差生成部の内部構成を示すブロック図
【図17】本発明の実施の形態5に係る音声符号化装置の主要な構成を示すブロック図
【図18】本発明の実施の形態6に係る音声信号伝送システムを構成する音声信号送信装置及び音声信号受信装置の構成を示すブロック図
【図19】本発明の実施の形態7に係る音声復号装置のLPC復号部の内部構成を示す図
【図20】図19中のコードベクトル復号部の内部構成を示す図
【図21】本発明の実施の形態8に係る音声復号装置の主要な構成を示すブロック図
【図22】本発明の実施の形態8に係る音声復号装置のLPC復号部の内部構成を示す図
【図23】図22中のコードベクトル復号部の内部構成を示す図
【図24】本発明の実施の形態9に係る音声復号装置のLPC復号部の内部構成を示す図
【図25】図24中のコードベクトル復号部の内部構成を示す図
【図26】本発明の実施の形態10に係る音声復号装置の主要な構成を示すブロック図
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。なお、以下の各実施の形態においては、本発明のパラメータ復号装置/パラメータ符号化装置を、それぞれCELP型の音声復号装置/音声符号化装置に適用する場合を例に説明を行う。
【0019】
(実施の形態1)
図1は、本発明の実施の形態1に係る音声復号装置の主要な構成を示すブロック図である。図1に示す音声復号装置100において、図示しない符号化装置から伝送された符号化情報は、多重分離部101により固定符号帳符号Fn+1、適応符号帳符号An+1、利得符号Gn+1、およびLPC(線形予測係数:Linear Prediction Coefficients)符号Ln+1に分離される。別途、音声復号装置100には、フレーム消失符号Bn+1が入力される。ここで各符号の添え字nは、復号対象のフレーム番号を表す。すなわち、図1では、復号対象の第nフレーム(以下、「現フレーム」という)の次の第(n+1)フレーム(以下、「次フレーム」という)における符号化情報を分離している。
【0020】
固定符号帳符号Fn+1は固定符号帳ベクトル(Fixed Codebook Vector(FCV))復号部102に、適応符号帳符号An+1は適応符号帳ベクトル(Adaptive Codebook Vector(ACV))復号部103に、利得符号Gn+1は利得復号部104に、LPC符号Ln+1はLPC復号部105に、それぞれ入力される。また、フレーム消失符号Bn+1は、FCV復号部102、ACV復号部103、利得復号部104、およびLPC復号部105の全てに入力される。
【0021】
FCV復号部102は、フレーム消失符号Bnが「第nフレームは正常フレームである」ことを示している場合には固定符号帳符号Fnを用いて固定符号帳ベクトルを生成し、フレーム消失符号Bnが「第nフレームは消失フレームである」ことを示している場合にはフレーム消失補償(隠蔽)処理によって固定符号帳ベクトルを生成する。生成された固定符号帳ベクトルは、利得復号部104及び増幅器106に入力される。
【0022】
ACV復号部103は、フレーム消失符号Bnが「第nフレームは正常フレームである」ことを示している場合には適応符号帳符号Anを用いて適応符号帳ベクトルを生成し、フレーム消失符号Bnが「第nフレームは消失フレームである」ことを示している場合にはフレーム消失補償(隠蔽)処理によって適応符号帳ベクトルを生成する。生成された適応符号帳ベクトルは、増幅器107に入力される。
【0023】
利得復号部104は、フレーム消失符号Bnが「第nフレームは正常フレームである」ことを示している場合には利得符号Gn及び固定符号帳ベクトルを用いて固定符号帳利得と適応符号帳利得を生成し、フレーム消失符号Bnが「第nフレームは消失フレームである」ことを示している場合にはフレーム消失補償(隠蔽)処理によって固定符号帳利得と適応符号帳利得とを生成する。生成された固定符号帳利得は増幅器106に入力され、生成された適応符号帳利得は増幅器107に入力される。
【0024】
LPC復号部105は、フレーム消失符号Bnが「第nフレームは正常フレームである」ことを示している場合にはLPC符号Lnを用いてLPCパラメータを復号し、フレーム消失符号Bnが「第nフレームは消失フレームである」ことを示している場合にはフレーム消失補償(隠蔽)処理によってLPCパラメータを復号する。復号された復号LPCパラメータは、LPC合成部109に入力される。なお、LPC復号部105の詳細については後述する。
【0025】
増幅器106は、利得復号部104から出力された固定符号帳利得をFCV復号部102から出力された固定符号帳ベクトルに乗算し、乗算結果を加算器108に出力する。増幅器107は、利得復号部104から出力された適応符号帳利得をACV復号部103から出力された適応符号帳ベクトルに乗算し、乗算結果を加算器108に出力する。加算器108は、増幅器106から出力された固定符号帳利得乗算後の固定符号帳ベクトルと増幅器107から出力された適応符号帳利得乗算後の適応符号帳ベクトルとを加算し、加算結果(以下、「和ベクトル」という)をLPC合成部109に出力する。
【0026】
LPC合成部109は、LPC復号部105から出力された復号LPCパラメータを用いて線形予測合成フィルタを構成し、加算器108から出力された和ベクトルを駆動信号として線形予測合成フィルタを駆動し、駆動の結果得られた合成信号をポストフィルタ110に出力する。ポストフィルタ110は、LPC合成部109から出力された合成信号にホルマント強調やピッチ強調処理等を行い、復号音声信号として出力する。
【0027】
次に、本実施の形態に係るパラメータの補償処理の詳細について、LPCパラメータを補償する場合を例に説明する。図2は、図1中のLPC復号部105の内部構成を示す図である。
【0028】
LPC符号Ln+1はバッファ201およびコードベクトル復号部203に入力され、フレーム消失符号Bn+1はバッファ202、コードベクトル復号部203および選択器209に入力される。
【0029】
バッファ201は、次フレームのLPC符号Ln+1を1フレームの間保持し、コードベクトル復号部203に出力する。バッファ201からコードベクトル復号部203に出力されるLPC符号は、バッファ201で1フレームの間保持された結果、現フレームのLPC符号Lnとなる。
【0030】
バッファ202は、次フレームのフレーム消失符号Bn+1を1フレームの間保持し、コードベクトル復号部203に出力する。バッファ202からコードベクトル復号部203に出力されるフレーム消失符号は、バッファ202で1フレームの間保持された結果、現フレームのフレーム消失符号Bnとなる。
【0031】
コードベクトル復号部203は、過去Mフレームの量子化予測残差ベクトルxn-1〜xn-M、1フレーム前の復号LSFベクトルyn-1、次フレームのLPC符号Ln+1、次フレームのフレーム消失符号Bn+1、現フレームのLPC符号Lnおよび現フレームのフレーム消失符号Bnを入力し、これらの情報に基づいて現フレームの量子化予測残差ベクトルxnを生成し、バッファ204−1および増幅器205−1に出力する。なお、コードベクトル復号部203の詳細については後述する。
【0032】
バッファ204−1は、現フレームの量子化予測残差ベクトルxnを1フレームの間保持し、コードベクトル復号部203、バッファ204−2、および増幅器205−2に出力する。これらに入力される量子化予測残差ベクトルは、バッファ204−1で1フレームの間保持された結果、1フレーム前の量子化予測残差ベクトルxn-1となる。同様に、バッファ204−i(iは2からM−1)は、それぞれ、量子化予測残差ベクトルxn-j+1を1フレームの間保持し、コードベクトル復号部203、バッファ204−(i+1)、および増幅器205−(i+1)に出力する。バッファ204−Mは、量子化予測残差ベクトルxn-M+1を1フレームの間保持し、コードベクトル復号部203および増幅器205−(M+1)に出力する。
【0033】
増幅器205−1は、量子化予測残差ベクトルxnに所定のMA予測係数α0を乗じて加算器206に出力する。同様に、増幅器205−j(jは2からM+1)は、量子化予測残差ベクトルxn-j+1に所定のMA予測係数αj-1を乗じて加算器206に出力する。なお、MA予測係数のセットは一種類の固定値であっても良いが、ITU−T勧告G.729では2種類のセットが用意されており、どちらのセットを用いて復号を行うかは符号器側で決定され、LPC符号Lnの情報の一部として符号化され、伝送される。この場合、LPC復号部105は、MA予測係数のセットをテーブルとして備えており、符号器側で指定されたセットを図2中のα0〜αMとして用いる構成となる。
【0034】
加算器206は、各増幅器205−1〜205−(M+1)から出力されたMA予測係数乗算後の量子化予測残差ベクトルの総和を計算し、計算結果である復号LSFベクトルynをバッファ207およびLPC変換部208に出力する。
【0035】
バッファ207は、復号LSFベクトルynを1フレームの間保持し、コードベクトル復号部203に出力する。この結果、バッファ207からコードベクトル復号部203に出力される復号LSFベクトルは、1フレーム前の復号LSFベクトルyn-1となる。
【0036】
LPC変換部208は、復号LSFベクトルynを線形予測係数(復号LPCパラメータ)に変換し、選択器209に出力する。
【0037】
選択器209は、現フレームのフレーム消失符号Bnおよび次フレームのフレーム消失符号Bn+1に基づいてLPC変換部208から出力された復号LPCパラメータあるいはバッファ210から出力された前フレームにおける復号LPCパラメータのいずれかを選択する。具体的には、現フレームのフレーム消失符号Bnが「第nフレームは正常フレームである」ことを示している場合、あるいは、次フレームのフレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示している場合にはLPC変換部208から出力された復号LPCパラメータを選択し、現フレームのフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示している場合、かつ、次フレームのフレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示している場合にはバッファ210から出力された前フレームにおける復号LPCパラメータを選択する。そして、選択器209は、選択結果を最終的な復号LPCパラメータとしてLPC合成部109およびバッファ210に出力する。なお、選択器209がバッファ210から出力された前フレームにおける復号LPCパラメータを選択する場合、実際にはコードベクトル復号部203からLPC変換部208までの処理を全て行う必要はなく、バッファ204−1〜204−Mの内容を更新する処理だけを行えばよい。
【0038】
バッファ210は、選択器209から出力された復号LPCパラメータを1フレームの間保持し、選択器209に出力する。この結果、バッファ210から選択器209に出力される復号LPCパラメータは、1フレーム前の復号LPCパラメータとなる。
【0039】
次に、図2中のコードベクトル復号部203の内部構成について、図3のブロック図を用いて詳細に説明する。
【0040】
コードブック301は、現フレームのLPC符号Lnによって特定されるコードベクトルを生成して切替スイッチ309へ出力するとともに、次フレームのLPC符号Ln+1によって特定されるコードベクトルを生成して増幅器307に出力する。なお、既に述べたように、ITU−T勧告G.729ではLPC符号LnにMA予測係数セットを特定する情報も含まれており、この場合、LPC符号Lnはコードベクトルの復号のほかにMA予測係数の復号にも使用されるが、ここでは説明を省略する。また、コードブックは多段構成であったり、スプリット構成であったりする。例えばITU−T勧告G.729では2段構成で、2段目が2つに分割(スプリット)された符号帳構成である。また、多段構成や分割構成のコードブックから出力されるベクトルは、通常そのまま用いられずに次数間の間隔が極端に狭かったり、順序が逆転しているような場合は最小間隔を特定値になることを保証したり、順序性を保ったりする処理が一般的に行われる。
【0041】
過去Mフレームの量子化予測残差ベクトルxn-1〜xn-Mは、対応する増幅器302−1〜302−M、および、対応する増幅器305−1〜305−Mにそれぞれ入力される。
【0042】
増幅器302−1〜302−Mは、それぞれ、入力した量子化予測残差ベクトルxn-1〜xn-MにMA予測係数α1〜αMを乗算し、加算器303に出力する。なお、前述したように、ITU−T勧告G.729の場合、MA予測係数のセットが2種類あり、どちらを用いるのかという情報はLPC符号Lnに含まれている。また、これら乗算が行われる消失フレームでは、LPC符号Lnが消失しているため、実際には前フレームで使用したMA予測係数セットが用いられる。すなわち、前フレームのLPC符号Ln−1から復号されたMA予測係数セット情報を用いる。また、前フレームも消失フレームである場合はさらにその前のフレームの情報を用いる。
【0043】
加算器303は、増幅器302−1〜302−Mから出力されたMA予測係数乗算後の各量子化予測残差ベクトルの総和を計算し、計算結果であるベクトルを加算器304に出力する。加算器304は、バッファ207から出力された前フレームの復号LSFベクトルyn-1から、加算器303から出力されたベクトルを減算し、計算結果であるベクトルを切替スイッチ309に出力する。
【0044】
加算器303から出力されるベクトルは現フレームにおいてMA型予測器によって予測された予測LSFベクトルであり、加算器304は前フレームの復号LSFベクトルが生成されるために必要な現フレームにおける量子化予測残差ベクトルを求める処理を行っている。すなわち、増幅器302−1〜302−M、加算器303および加算器304では、前フレームの復号LSFベクトルyn-1が現フレームの復号LSFベクトルynとなるようにベクトルを計算している。
【0045】
増幅器305−1〜305−Mは、それぞれ、入力した量子化予測残差ベクトルxn-1〜xn-Mに重み付け係数β1〜βMを乗算し、加算器308に出力する。増幅器306は、バッファ207から出力された前フレームの復号LSFベクトルyn-1に重み付け係数β-1を乗算し、加算器308に出力する。増幅器307は、コードブック301から出力されたコードベクトルxn+1に重み付け係数β0を乗算し、加算器308に出力する。
【0046】
加算器308は、増幅器305−1〜305−M、増幅器306および増幅器307から出力されたベクトルの総和を計算し、計算結果であるコードベクトルを切替スイッチ309に出力する。すなわち、加算器308は、次フレームのLPC符号Ln+1によって特定されるコードベクトル、前フレームの復号LSFベクトル、および過去Mフレームの量子化予測残差ベクトルを重み付け加算することによりベクトルを計算している。
【0047】
切替スイッチ309は、現フレームのフレーム消失符号Bnが「第nフレームは正常フレームである」ことを示す場合にはコードブック301から出力されたコードベクトルを選択し、これを現フレームの量子化予測残差ベクトルxnとして出力する。一方、切替スイッチ309は、現フレームのフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示す場合には、次フレームのフレーム消失符号Bn+1がどちらの情報を有しているかによって、出力するベクトルをさらに選択する。
【0048】
すなわち、次フレームのフレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示す場合には、切替スイッチ309は、加算器304から出力されたベクトルを選択し、これを現フレームの量子化予測残差ベクトルxnとして出力する。なお、この場合、コードブック301および増幅器305−1〜305−Mから加算器308までのベクトルを生成する過程の処理は行う必要がない。
【0049】
また、次フレームのフレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示す場合には、切替スイッチ309は、加算器308から出力されたベクトルを選択し、これを現フレームの量子化予測残差ベクトルxnとして出力する。なお、この場合、増幅器302−1〜302−Mから加算器304までのベクトルを生成する過程の処理は行う必要がない。
【0050】
このように、本実施の形態によれば、現フレームが消失した場合に、次のフレームが正常に受信されていれば、過去に復号されたパラメータ、過去に受信されたフレームの量子化予測残差および未来のフレームの量子化予測残差を利用した補償処理専用の重み付け加算処理(重み付け線形和)によって現フレームのLSFパラメータの復号量子化予測残差の補償処理を行い、補償した量子化予測残差を用いてLSFパラメータの復号を行う。これにより、過去の復号LSFパラメータを繰り返し利用するよりも高い補償性能を実現することができる。
【0051】
以下、本実施の形態の補償処理を行った結果について、図4から図7を用いて、従来技術と比較する形で具体例を挙げて説明する。なお、図4から図7において、○は復号量子化予測残差を、●は補償処理により得られた復号量子化予測残差を、◇は復号パラメータを、◆は補償処理により得られた復号パラメータを、それぞれ示す。
【0052】
図4は、消失フレームがない場合に通常の処理を行った結果の一例を示す図であり、復号量子化予測残差から以下の式(1)により第nフレームの復号パラメータynを求めたものである。なお、式(1)において、cnは、第nフレームの復号量子化予測残差である。
yn=0.6cn+0.3cn-1+0.1cn-2 ・・・(1)
【0053】
図5は、本実施の形態の補償処理を行った結果の一例を示す図であり、図6および図7は、従来の補償処理を行った結果の一例を示す図である。図5、図6、図7において、第nフレームが消失し、その他のフレームは正常フレームであるとする。
【0054】
図5に示す本実施の形態の補償処理は、復号パラメータのフレーム間の変動が緩やかになるように、第n−1フレームの復号パラメータyn-1と第nフレームの復号パラメータynの距離、および、第nフレームの復号パラメータynと第n+1フレームの復号パラメータyn+1の距離の和D(Dは以下の式(2)で定義される)を最小とするように、以下の式(3)を用いて消失した第nフレームの復号量子化予測残差cnを求める。
【数1】
【数2】
【0055】
そして、本実施の形態の補償処理は、式(3)で求められた復号量子化予測残差cnを用いて、上記式(1)により、消失した第nフレームの復号パラメータynを求める。この結果、図4と図5の比較から明らかなように、本実施の形態の補償処理により得られた復号パラメータynは、消失フレームがない場合において通常の処理により得られたものとほぼ同じ値となる。
【0056】
これに対し、図6に示す従来の補償処理は、第nフレームが消失した場合、第n−1フレームの復号パラメータyn-1をそのまま第nフレームの復号パラメータynとして使用する。また、図6に示す従来の補償処理では、上記式(1)の逆算により、第nフレームの復号量子化予測残差cnを求める。
【0057】
この場合、復号量子化予測残差の変動に伴う復号パラメータの変動を考慮していないため、図4と図6の比較から明らかなように、図6の従来の補償処理により得られた復号パラメータynは、消失フレームがない場合において通常の処理により得られたものと値が大きく異なってしまう。また、第nフレームの復号量子化予測残差cnも異なるため、図6の従来の補償処理により得られた第n+1フレームの復号パラメータyn+1も、消失フレームがない場合において通常の処理により得られたものと値が異なってしまう。
【0058】
また、図7に示す従来の補償処理は、復号量子化予測残差を内挿補間により求めるものであり、第nフレームが消失した場合、第n−1フレームの復号量子化予測残差cn-1と第n+1フレームの復号量子化予測残差cn+1の平均値を第nフレームの復号量子化予測残差cnとして使用する。
【0059】
そして、図7に示す従来の補償処理は、内挿補間により求められた復号量子化予測残差cnを用いて、上記式(1)により、消失した第nフレームの復号パラメータynを求める。
【0060】
この結果、図4と図7の比較から明らかなように、図7の従来の補償処理により得られた復号パラメータynは、消失フレームがない場合において通常の処理により得られたものと値が大きく異なってしまう。これは、復号量子化予測残差は大きく変動しても復号パラメータは重み付け移動平均によりフレーム間で緩やかに変動するのに対し、この従来の補償処理では、復号量子化予測残差の変動に伴って復号パラメータも変動してしまうためである。また、第nフレームの復号量子化予測残差cnも異なるため、図7の従来の補償処理により得られた第n+1フレームの復号パラメータyn+1も、消失フレームがない場合において通常の処理により得られたものと値が異なってしまう。
【0061】
(実施の形態2)
図8は、本発明の実施の形態2に係る音声復号装置の主要な構成を示すブロック図である。図8に示す音声復号装置100は、図1と比較して、LPC復号部105に入力されるパラメータとして補償モード情報En+1がさらに追加されている点のみが異なる。
【0062】
図9は、図8中のLPC復号部105の内部構成を示すブロック図である。図9に示すLPC復号部105は、図2と比較して、コードベクトル復号部203に入力されるパラメータとして補償モード情報En+1がさらに追加されている点のみが異なる。
【0063】
図10は、図9中のコードベクトル復号部203の内部構成を示すブロック図である。図10に示すコードベクトル復号部203は、図3と比較して、係数復号部401がさらに追加されている点のみが異なる。
【0064】
係数復号部401は、重み付け係数(β-1〜βM)のセット(以下、「係数セット」という)を複数種類格納し、入力した補償モードEn+1に応じて、係数セットの中から1つの重み付け係数のセットを選択し、増幅器305−1〜305−M、306、307に出力する。
【0065】
このように、本実施の形態によれば、実施の形態1で説明した特徴に加えて、補償処理を行うための重み付け加算の重み付け係数のセットを複数用意し、符号器側でどの重み付け係数セットを用いれば高い補償性能が得られるのかを確認した上で最適なセットを特定するための情報を復号器側へ伝送し、復号器側では受信した情報に基づいて、指定された重み付け係数セットを用いて補償処理を行うので、実施の形態1よりさらに高い補償性能が得ることができる。
【0066】
(実施の形態3)
図11は、本発明の実施の形態3に係る音声復号装置の主要な構成を示すブロック図である。図11に示す音声復号装置100は、図8と比較して、LPC復号部105に入力されるLPC符号Ln+1を2種類の符号Vn+1、Kn+1に分離する分離部501がさらに追加されている点のみが異なる。符号Vはコードベクトルを生成するための符号であり、符号KはMA予測係数符号である。
【0067】
図12は、図11中のLPC復号部105の内部構成を示すブロック図である。コードベクトルを生成する符号Vn、Vn+1は、LPC符号Ln、Ln+1と同じように用いられるので、説明を省略する。図12に示すLPC復号部105は、図9と比較して、バッファ601および係数復号部602がさらに追加され、コードベクトル復号部203に入力されるパラメータとしてMA予測係数符号Kn+1がさらに追加されている点のみが異なる。
【0068】
バッファ601は、MA予測係数符号Kn+1を1フレームの間保持し、係数復号部602に出力する。この結果、バッファ601から係数復号部602に出力されるMA予測係数符号は、1フレーム前のMA予測係数符号Knとなる。
【0069】
係数復号部602は、係数セットを複数種類格納し、フレーム消失符号Bn、Bn+1、補償モードEn+1およびMA予測係数符号Knによって係数セットを特定し、増幅器205−1〜205−(M+1)に出力する。ここで、係数復号部602における係数セットの特定の仕方は以下の3通りである。
【0070】
入力したフレーム消失符号Bnが「第nフレームは正常フレームである」ことを示す場合、係数復号部602は、MA予測係数符号Knで指定される係数セットを選択する。
【0071】
また、入力したフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示し、フレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示す場合、係数復号部602は、第n+1フレームのパラメータとして受信されている補償モードEn+1を用いて、選択対象となる係数セットを決定する。例えば、補償モード符号En+1が補償フレームである第nフレームで使用すべきMA予測係数のモードを示すように予め決めておけば、補償モード符号En+1をそのままMA予測係数符号Knの代わりとして使用することができる。
【0072】
また、入力したフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示し、かつ、フレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示す場合、利用できる情報は前フレームで使用した係数セットの情報のみであるので、係数復号部602は、前フレームで使用した係数セットを繰り返し使用するようにする。もしくは予め決めておいたモードの係数セットを固定的に使用するようにしても良い。
【0073】
図13は、図12中のコードベクトル復号部203の内部構成を示すブロック図である。図13に示すコードベクトル復号部203は、図10と比較して、係数復号部401が、補償モードEn+1およびMA予測係数符号Kn+1の両方を用いて係数セットを選択する点が異なる。
【0074】
図13において、係数復号部401は、複数の重み付け係数セットを備えており、重み付け係数セットは次フレームで使用されるMA予測係数に応じて用意されている。例えば、MA予測係数のセットが2種類の場合であって、一方をモード0、他方をモード1とすると、次フレームのMA予測係数のセットがモード0の場合の専用の重み付け係数セット群と次フレームのMA予測係数のセットがモード1の場合の専用の重み付け係数セット群とから構成される。
【0075】
この場合、係数復号部401は、MA予測係数符号Kn+1によって、上記どちらかの重み付け係数セット群を決定し、入力した補償モードEn+1に応じて係数セットの中から1つの重み付け係数のセットを選択し、増幅器305−1〜305−M、306、307に出力する。
【0076】
以下、重み付け係数β-1〜βMの決め方の一例を示す。既に述べたように、第nフレームが消失し、第n+1フレームを受信している場合、第n+1フレームにおける量子化予測残差を正しく復号できても最終的な復号パラメータは両フレームにおいて未知である。このため、何らかの仮定(拘束条件)を設定しないと両フレームの復号パラメータは一意に決まらない。そこで、既に復号済みの第n−1フレームの復号パラメータから、第nフレームおよび第n+1フレームの復号パラメータがなるべく離れないように、第nフレームにおける復号パラメータと第n−1フレームにおける復号パラメータとの距離と、第n+1フレームにおける復号パラメータと第nフレームにおける復号パラメータとの距離との和であるD(j)を最小とするように、以下の式(4)により量子化予測残差ynを求める。
【数3】
【0077】
パラメータがLSFである場合は、式(4)におけるxn(j)、yn(j)、αi(j)、α’i(j)、は以下の通りである。
xn(j):第nフレームにおけるLSFパラメータの第j成分の量子化予測残差
yn(j):第nフレームにおける復号LSFパラメータの第j成分
αi(j):第nフレームにおけるMA予測係数セットのうちの第i次成分の第j成分
α’i(j):第n+1フレームにおけるMA予測係数セットのうちの第i次成分の第j成分
M:MA予測次数
【0078】
ここで、D(j)をxn(j)で偏微分して0と置いて得られる式をxn(j)について解くと、xn(j)は、以下の式(5)の形で表される。
【数4】
【0079】
なお、式(5)において、βi(j)は重み付け係数であり、αi(j)とα’i(j)で表される。つまり、MA予測係数のセットが1種類しかない場合は、重み付け係数βi(j)のセットも1種類しかないが、MA予測係数セットが複数種類ある場合は、αi(j)とα’i(j)の組み合わせによって複数種類の重み付け係数のセットが得られる。
【0080】
例えば、ITU−T勧告G.729の場合は、MA予測係数のセットが2種類あるので、これらをモード0およびモード1のセットとすると、第nフレームおよび第n+1フレームの双方ともモード0の場合、第nフレームはモード0で第n+1フレームはモード1の場合、第nフレームはモード1で第n+1フレームはモード0の場合、第nフレームおよび第n+1フレームの双方ともモード1の場合、の4種類のセットが考えられる。これら4種類のセットのいずれの重み付け係数セットを用いるかの決め方はいくつか考えられる。
【0081】
第1の方法は、4種類の全てのセットを用いて符号器側で第nフレームの復号LSFと第n+1フレームの復号LSFを生成し、生成された第nフレームの復号LSFと入力信号を分析して得られた未量子化LSFとのユークリッド距離を算出し、生成された第n+1フレームの復号LSFと入力信号を分析して得られた未量子化LSFとのユークリッド距離を算出し、これらのユークリッド距離の総和を最小とする重み付け係数βのセットを1つ選び、選ばれたセットを2ビットで符号化して復号器に伝送する方法である。この場合、ITU−T勧告G.729の符号化情報に追加して、1フレーム辺り2ビットが係数セットβの符号化に必要となる。なお、ユークリッド距離の代わりに、ITU−T勧告G.729のLSF量子化で用いられているように、重み付きユークリッド距離を採用すると聴覚的にさらに良い品質となりうる。
【0082】
第2の方法は、第n+1フレームのMA予測係数モード情報を利用して、1フレーム辺りの追加ビット数を1ビットにする方法である。復号器側で、第n+1フレームのMA予測係数のモード情報が分かっているので、αi(j)とα’i(j)の組み合わせは2通りに限定される。すなわち、第n+1フレームのMA予測モードがモード0である場合は、第nフレームと第n+1フレームのMA予測モードの組み合わせは(0−0)か(1−0)のいずれかであるので重み付け係数βのセットは2種類に限定することができる。符号器側ではこの2種類の重み付け係数βのセットを用いて上記第1の方法と同様にして未量子化LSFとの誤差が小さいほうを一つ選択して符号化し、復号器に伝送すればよい。
【0083】
第3の方法は、選択情報を全く送らない方法であり、使用する重み付け係数のセットはMA予測モードの組み合わせが(0−0)か(1−1)かの2種類のみとし、第n+1フレームでのMA予測係数のモードが0の場合は前者を、1の場合は後者を選択するようにする方法である。あるいは、(0−0)か(0−1)のように、消失フレームのモードを特定のモードに固定する方法でも良い。
【0084】
その他にも、入力信号が定常的であると判断できるフレームでは、従来法のように第n−1フレームと第nフレームとの復号パラメータが等しくなるようにする方法や、第n+1フレームと第nフレームの復号パラメータが等しくなるという仮定の下で求められる重み付け係数βのセットを使用する方法も考えられる。
【0085】
定常性の判定には、第n−1フレームと第n+1フレームのピッチ周期情報や、MA予測係数のモード情報などを利用することができる。すなわち、第n−1フレームと第n+1フレームとで復号されるピッチ周期の差が小さいときには定常であると判定する方法や、第n+1フレームで復号されるMA予測係数のモード情報が定常的なフレームを符号化するのに適したモード(すなわち高い次数のMA予測係数もある程度大きな重みを有しているモード)が選択されている場合は定常であると判定する方法が考えられる。
【0086】
このように、本実施の形態では、実施の形態2に加えて、MA予測係数のモードが2種類あるので、定常的な区間とそうでない区間とで異なるMA予測係数のセットを用いることができ、LSF量子化器の性能をより高めることができる。
【0087】
また、式(4)を最小とする式(5)の重み付け係数セットを用いることにより、消失フレームおよび消失フレームの次のフレームである正常フレームでの復号LSFパラメータが、消失フレームの前フレームのLSFパラメータから大きく逸脱した値にならないことが保証される。このため、次のフレームの復号LSFパラメータが未知であっても、次のフレームの受信情報(量子化予測残差)を有効に利用しつつ、誤った方向へ補償してしまう場合のリスク、すなわち正しい復号LSFパラメータから大きく逸脱してしまうリスクを最低限に抑えることができる。
【0088】
また、補償モードの選択方法として上記第2の方法を利用すれば、補償処理用の重み付け係数セットを特定する情報の一部としてMA予測係数のモード情報を利用することができるので、追加伝送する補償処理用の重み付け係数セットの情報を少なくすることもできる。
【0089】
(実施の形態4)
図14は、図1中の利得復号部104の内部構成を示すブロック図である(図8、図11の利得復号部104も同様)。本実施の形態では、ITU−T勧告G.729の場合と同様に、利得の復号はサブフレームに1回行われ、1フレームは2サブフレームより成るものとして、図14ではnをフレーム番号、mをサブフレーム番号とし(第nフレームにおける第1サブフレームおよび第2サブフレームのサブフレーム番号をmおよびm+1とする)、第nフレームの2サブフレーム分の利得符号(Gm、Gm+1)を順次復号するものとして図示した。
【0090】
図14において、利得復号部104には、第n+1フレームの利得符号Gn+1が多重分離部101より入力される。利得符号Gn+1は分離部700に入力され、第n+1フレームの第1サブフレームの利得符号Gm+2と第2サブフレームの利得符号Gm+3に分離される。なお、利得符号Gm+2とGm+3への分離は、多重分離部101で行われても良い。
【0091】
利得復号部104では、入力されたGn、Gn+1から生成されたGm、Gm+1、Gm+2、Gm+3を用いてサブフレームmの復号利得とサブフレームm+1の復号利得を順番に復号する。
【0092】
以下、図14において、利得符号Gmを復号する際の利得復号部104の各部の動作について説明する。
【0093】
利得符号Gm+2は、バッファ701および予測残差復号部704に入力され、フレーム消失符号Bn+1は、バッファ703、予測残差復号部704および選択器713に入力される。
【0094】
バッファ701は、入力される利得符号を1フレームの間保持し、予測残差復号部704に出力するので、予測残差復号部704に出力される利得符号は1フレーム前の利得符号となる。すなわち、バッファ701に入力される利得符号がGm+2の場合、出力される利得符号はGmである。バッファ702も701と同様の処理を行う。すなわち、入力される利得符号を1フレームの間保持して、予測残差復号部704へ出力する。バッファ701の入出力は第1サブフレームの利得符号であり、バッファ702の入出力は第2サブフレームの利得符号であるという点のみが異なる。
【0095】
バッファ703は、次フレームのフレーム消失符号Bn+1を1フレームの間保持し、予測残差復号部704、選択器713およびFCベクトルエネルギ算出部708に出力する。バッファ703から予測残差復号部704、選択器713およびFCベクトルエネルギ算出部708に出力されるフレーム消失符号は、入力されているフレームより1フレーム前のフレーム消失符号となるので、現フレームのフレーム消失符号Bnである。
【0096】
予測残差復号部704は、過去Mサブフレームの対数量子化予測残差(MA予測残差を量子化したものの対数をとったもの)xm-1〜xm-M、1サブフレーム前の復号エネルギ(対数復号利得)em-1、予測残差バイアス利得eB、次フレームの利得符号Gm+2およびGm+3、次フレームのフレーム消失符号Bn+1、現フレームの利得符号GmおよびGm+1および現フレームのフレーム消失符号Bnを入力し、これらの情報に基づいて現サブフレームの量子化予測残差を生成し、対数演算部705および乗算部712に出力する。なお、予測残差復号部704の詳細については後述する。
【0097】
対数演算部705は、予測残差復号部704から出力された量子化予測残差の対数(ITU−T勧告G.729では20×log10(x)、xは入力)xmを計算し、バッファ706−1に出力する。
【0098】
バッファ706−1は、対数演算部705から対数量子化予測残差xmを入力し、1サブフレームの間保持し、予測残差復号部704、バッファ706−2および増幅器707−1に出力する。すなわち、これらに入力される対数量子化予測残差は、1サブフレーム前の対数量子化予測残差xm-1となる。同様に、バッファ706−i(iは2からM−1)は、それぞれ、入力した対数量子化予測残差xm-iを1サブフレームの間保持し、予測残差復号部704、バッファ706−(i+1)および増幅器707−iに出力する。バッファ706−Mは、入力した対数量子化予測残差xm-M-1を1サブフレームの間保持し、予測残差復号部704および増幅器707−Mに出力する。
【0099】
増幅器707−1は、対数量子化予測残差xm-1に所定のMA予測係数α1を乗じて加算器710に出力する。同様に、増幅器707−j(jは2からM)は、対数量子化予測残差xm-jに所定のMA予測係数αjを乗じて加算器710に出力する。なお、MA予測係数のセットは、ITU−T勧告G.729では一種類の固定値であるが、複数種類のセットが用意されていて適切なものを選択する構成であっても良い。
【0100】
FCベクトルエネルギ算出部708は、現フレームのフレーム消失符号Bnが、「第nフレームは正常フレームである」ことを示す場合、別途復号されたFC(固定符号帳)ベクトルのエネルギを算出し、算出結果を平均エネルギ加算部709に出力する。また、FCベクトルエネルギ算出部708は、現フレームのフレーム消失符号Bnが、「現フレームが消失フレームである」ことを示す場合、前サブフレームでのFCベクトルのエネルギを平均エネルギ加算部709に出力する。
【0101】
平均エネルギ加算部709は、FCベクトルエネルギ算出部708から出力されたFCベクトルのエネルギを平均エネルギから減算して、減算結果である予測残差バイアス利得eBを予測残差復号部704および加算器710に出力する。なお、ここでは平均エネルギは、予め設定された定数とする。また、エネルギの加減算は対数領域で行う。
【0102】
加算器710は、増幅器707−1〜707−Mから出力されたMA予測係数乗算後の対数量子化予測残差と平均エネルギ加算部709から出力された予測残差バイアス利得eBとの総和を計算し、計算結果である対数予測利得をべき乗演算部711に出力する。
【0103】
べき乗演算部711は、加算器710から出力された対数予測利得のべき乗(10x、xは入力)を計算し、計算結果である予測利得を乗算器712に出力する。
【0104】
乗算器712は、べき乗演算部711から出力された予測利得に、予測残差復号部704から出力された量子化予測残差を乗算し、乗算結果である復号利得を選択器713に出力する。
【0105】
選択器713は、現フレームのフレーム消失符号Bnおよび次フレームのフレーム消失符号Bn+1に基づいて乗算器712から出力された復号利得あるいは増幅器715から出力された減衰後の前フレームの復号利得のいずれかを選択する。具体的には、現フレームのフレーム消失符号Bnが「第nフレームは正常フレームである」ことを示している場合、あるいは、次フレームのフレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示している場合には乗算器712から出力された復号利得を選択し、現フレームのフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示していて、かつ、次フレームのフレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示している場合には、増幅器715から出力された減衰後の前フレームの復号利得を選択する。そして、選択器713は、選択結果を最終的な復号利得として増幅器106、107、バッファ714および対数演算部716に出力する。なお、選択器713が増幅器715から出力された減衰後の前フレーム復号利得を選択する場合、実際には予測残差復号部704から乗算器712までの処理を全て行う必要はなく、バッファ706−1〜706−Mの内容を更新する処理だけを行えばよい。
【0106】
バッファ714は、選択器713から出力された復号利得を1サブフレームの間保持し、増幅器715に出力する。この結果、バッファ714から増幅器715に出力される復号利得は、1サブフレーム前の復号利得となる。増幅器715は、バッファ714から出力された1サブフレーム前の復号利得に所定の減衰係数を乗じて選択器713に出力する。この所定の減衰係数の値は、例えばITU−T勧告G.729では0.98であるが、これはコーデックに最適な値を適宜設計したものとすればよく、消失したフレームが有声フレームか無声フレームかなど消失フレームにおける信号の特徴によって値を変化させても良い。
【0107】
対数演算部716は、選択器713から出力された復号利得の対数(ITU−T勧告G.729では20×log10(x)、xは入力)emを計算し、バッファ717に出力する。バッファ717は、対数演算部716から対数復号利得emを入力し、1サブフレームの間保持し、予測残差復号部704に出力する。すなわち、予測残差復号部704に入力される対数復号利得は、1サブフレーム前の対数復号利得em-1となる。
【0108】
図15は、図14中の予測残差復号部704の内部構成を示すブロック図である。図15において、利得符号Gm、Gm+1、Gm+2、Gm+3はコードブック801に入力され、フレーム消失符号Bn、Bn+1は切替スイッチ812に入力され、過去Mサブフレームの対数量子化予測残差xm-1〜xm-Mは加算器802に入力され、1サブフレーム前の対数復号利得em-1および予測残差バイアス利得eBはサブフレーム量子化予測残差生成部807およびサブフレーム量子化予測残差生成部808に入力される。
【0109】
コードブック801は、入力された利得符号Gm、Gm+1、Gm+2、Gm+3から対応する量子化予測残差を復号し、利得符号Gm、Gm+1に対応する量子化予測残差を切替スイッチ813を介して切替スイッチ812に出力し、利得符号Gm+2、Gm+3に対応する量子化予測残差を対数演算部806に出力する。
【0110】
切替スイッチ813は、利得符号GmおよびGm+1から復号された量子化予測残差のいずれかを選択して切替スイッチ812に出力する。具体的には、第1サブフレームの利得復号処理を行う場合には利得符号Gmから復号された量子化予測残差を選択し、第2サブフレームの利得復号処理を行う場合には利得符号Gm+1から復号された量子化予測残差を選択する。
【0111】
加算器802は、過去Mサブフレームの対数量子化予測残差xm-1〜xm-Mの総和を計算し、計算結果を増幅器803に出力する。増幅器803は、加算器802の出力値を1/M倍することにより平均値を算出し、算出結果を4dB減衰部804に出力する。
【0112】
4dB減衰部804は、増幅器803の出力値を4dB下げてべき乗演算部805に出力する。この4dBの減衰は、フレーム消失から復帰したフレーム(サブフレーム)において、予測器が過大な予測値を出力しないようにするためのものであるので、そのような必要が生じない構成例では減衰器は必ずしも必要ではない。また、減衰量の4dBも最適値を自由に設計可能である。
【0113】
べき乗演算部805は、4dB減衰部804の出力値のべき乗を計算し、計算結果である補償予測残差を切替スイッチ812に出力する。
【0114】
対数演算部806は、コードブック801から出力された2つの量子化予測残差(利得符号Gm+2およびGm+3から復号したもの)の対数を計算し、計算結果である対数量子化予測残差xm+2、xm+3をサブフレーム量子化予測残差生成部807およびサブフレーム量子化予測残差生成部808に出力する。
【0115】
サブフレーム量子化予測残差生成部807は、対数量子化予測残差xm+2、xm+3、過去Mサブフレームの対数量子化予測残差xm-1〜xm-M、1サブフレーム前の復号エネルギem-1および予測残差バイアス利得eBを入力し、これらの情報に基づいて第1サブフレームの対数量子化予測残差を算出し、切替スイッチ810に出力する。同様に、サブフレーム量子化予測残差生成部808は、対数量子化予測残差xm+2、xm+3、過去Mサブフレームの対数量子化予測残差xm-1〜xm-M、1サブフレーム前の復号エネルギem-1および予測残差バイアス利得eBを入力し、これらの情報に基づいて第2サブフレームの対数量子化予測残差を算出し、バッファ809に出力する。なお、サブフレーム量子化予測残差生成部807、808の詳細については後述する。
【0116】
バッファ809は、サブフレーム量子化予測残差生成部808から出力された第2サブフレームの対数予測残差を1サブフレームの間保持し、第2サブフレームの処理が行われるときに切替スイッチ810に出力する。なお、第2サブフレームの処理時には、予測残差復号部704の外部にてxm-1〜xm-M、em-1、eBが更新されるが、サブフレーム量子化予測残差生成部807およびサブフレーム量子化予測残差生成部808のいずれにおいても何の処理も行われず、全ての処理は第1サブフレームの処理時に行われる。
【0117】
切替スイッチ810は、第1サブフレーム処理時には、サブフレーム量子化予測残差生成部807に接続され、生成された第1サブフレームの対数量子化予測残差をべき乗演算部811に出力し、第2サブフレーム処理時には、バッファ809に接続され、第2サブフレーム量子化残差生成部808で生成された第2サブフレームの対数量子化予測残差をべき乗演算部811に出力する。べき乗演算部811は、切替スイッチ810から出力された対数量子化残差をべき乗し、計算結果である補償予測残差を切替スイッチ812に出力する。
【0118】
切替スイッチ812は、現フレームのフレーム消失符号Bnが「第nフレームは正常フレームである」ことを示す場合には切替スイッチ813を介してコードブック801から出力された量子化予測残差を選択する。一方、切替スイッチ812は、現フレームのフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示す場合には、次フレームのフレーム消失符号Bn+1がどちらの情報を有しているかによって、出力する補償予測算差をさらに選択する。
【0119】
すなわち、切替スイッチ812は、次フレームのフレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示す場合には、べき乗演算部805から出力された補償予測残差を選択し、次フレームのフレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示す場合には、べき乗演算部811から出力された補償予測残差を選択する。なお、選択される端子以外の端子に入力されるデータは必要ないので、実際の処理においてはまず切替スイッチ812においてどの端子を選択するのかを決定し、決定された端子に出力される信号を生成するための処理を行うのが一般的である。
【0120】
図16は、図15中のサブフレーム量子化予測残差生成部807の内部構成を示すブロック図である。なお、サブフレーム量子化予測残差生成部808の内部構成も図16と同一であり、重み付け係数の値のみがサブフレーム量子化予測残差生成部807と異なるのみである。
【0121】
増幅器901−1〜901−Mは、それぞれ、入力した対数量子化予測残差xm-1〜xm-Mに重み付け係数β1〜βMを乗算し、加算器906に出力する。増幅器902は、前サブフレームにおける対数利得em-1に重み付け係数β-1を乗算し、加算器906に出力する。増幅器903は、対数バイアス利得eBに重み付け係数βBを乗算し、加算器906に出力する。増幅器904は、対数量子化予測残差xm+2に重み付け係数β00を乗算し、加算器906に出力する。増幅器905は、対数量子化予測残差xm+3に重み付け係数β01を乗算し、加算器906に出力する。
【0122】
加算器906は、増幅器901−1〜901−M、増幅器902、増幅器903、増幅器904および増幅器905から出力された対数量子化予測残差の総和を計算し、計算結果を切替スイッチ810に出力する。
【0123】
以下、本実施の形態における重み付け係数βのセットの決め方の一例を示す。既に述べたように、ITU−T勧告G.729の場合、利得量子化はサブフレーム処理であり、1フレームは2サブフレームから構成されているため、1フレームの消失は2サブフレーム連続のバースト消失となる。したがって、実施の形態3で示した方法では重み付け係数βのセットを決定することができない。そこで、本実施の形態では、以下の式(6)のDを最小とするxmとxm+1を求める。
【数5】
【0124】
ここではITU−T勧告G.729のように1フレームが2サブフレームで構成されていて、MA予測係数が1種類のみの場合を例として説明する。式(6)において、ym-1、ym、ym+1、ym+2、ym+3、xm、xm+1、xm+2、xm+3、xB、αiは以下の通りである。
ym-1:前フレームの第2サブフレームの復号対数利得
ym:現フレームの第1サブフレームの復号対数利得
ym+1:現フレームの第2サブフレームの復号対数利得
ym+2:次フレームの第1サブフレームの復号対数利得
ym+3:次フレームの第2サブフレームの復号対数利得
xm:現フレームの第1サブフレームの対数量子化予測残差
xm+1:現フレームの第2サブフレームの対数量子化予測残差
xm+2:次フレームの第1サブフレームの対数量子化予測残差
xm+3:次フレームの第2サブフレームの対数量子化予測残差
xB:対数バイアス利得
αi:第i次のMA予測係数
【0125】
式(6)をxmについて偏微分して0とおいて得られる式と、式(6)をxm+1について偏微分して0とおいて得られる式と、を連立方程式としてxmおよびxm+1について解くと、式(7)および式(8)が得られる。重み付け係数β00、β01、β1〜βM、β-1、βB、β'00、β'01、β'1〜β'M、β'-1、β'B、はα0〜αMから求められるので、一意に決まる。
【数6】
【数7】
【0126】
このように、次のフレームが正常に受信されている場合、過去に受信した対数量子化予測残差と次のフレームの対数量子化予測残差とを利用した補償処理専用の重み付け加算処理によって現在のフレームの対数量子化予測残差の補償処理を行い、補償した対数量子化予測残差を用いて利得パラメータの復号を行うので、過去の復号利得パラメータを単調減衰して利用するよりも高い補償性能を実現することができる。
【0127】
また、式(6)を最小とする式(7)および式(8)の重み付け係数セットを用いることにより、消失フレーム(2サブフレーム)および消失フレームの次のフレーム(2サブフレーム)である正常フレーム(2サブフレーム)での復号対数利得パラメータが消失フレームの前サブフレームの対数利得パラメータから大きく離れないことが保証される。このため、次のフレーム(2サブフレーム)の復号対数利得パラメータが未知であっても、次のフレーム(2サブフレーム)の受信情報(対数量子化予測残差)を有効に利用しつつ、誤った方向へ補償してしまった場合のリスク(正しい復号利得パラメータから大きく逸脱するリスク)を最低限に抑えることができる。
【0128】
(実施の形態5)
図17は、本発明の実施の形態5に係る音声符号化装置の主要な構成を示すブロック図である。図17は、実施の形態3で説明した第2の方法によって重み付け係数セットを決め、補償モード情報En+1を符号化する例、すなわち、第nフレームのMA予測係数モード情報を利用して、第n−1フレームの補償モード情報を1ビットで表現する方法を示す。
【0129】
この場合、前フレームLPC補償部1003は、現フレームの復号量子化予測残差と2フレーム前からM+1フレーム前の復号量子化予測残差の重み付け和により、図13を用いて説明したようにして第n−1フレームの補償LSFを求める。図13では第n+1フレームの符号化情報を用いて第nフレームの補償LSFを求めていたのに対して、ここでは第nフレームの符号化情報を用いて第n−1フレームの補償LSFを求めているので、フレーム番号が一つずれた対応関係になる。つまり、第nフレーム(=現フレーム)のMA予測係数符号によって、αi(j)とα’i(j)の組み合わせを4通りの中の2通りに限定し(すなわち、第nフレームのMA予測モードがモード0である場合は、第n−1フレームと第nフレームのMA予測モードの組み合わせは(0−0)か(1−0)のいずれかであるので重み付け係数βのセットはこの2種類に限定し)、前フレームLPC補償部1003は、この2種類の重み付け係数βのセットを用いて2種類の補償LSFω0n(j)およびω1n(j)を生成する。
【0130】
補償モード判定器1004は、ω0n(j)とω1n(j)のうちのどちらが入力LSFであるωn(j)に近いかに基づいてモードの決定を行う。ω0n(j)およびω1n(j)とωn(j)との離れ度合いは、単純なユークリッド距離に基づいても良いし、ITU−T勧告G.729のLSF量子化で用いられているような重み付けユークリッド距離に基づいても良い。
【0131】
以下、図17の音声符号化装置の各部の動作について説明する。
【0132】
入力信号snは、LPC分析部1001、ターゲットベクトル算出部1006およびフィルタ状態更新部1013にそれぞれ入力される。
【0133】
LPC分析部1001は、入力信号snに対して公知の線形予測分析を行い、線形予測係数aj(j=0〜M、Mは線形予測分析次数。a0=1.0)をインパルス応答算出部1005、ターゲットベクトル算出部1006およびLPC符号化部1002に出力する。また、LPC分析部1001は、線形予測係数ajをLSFパラメータωn(j)に変換して補償モード判定器1004に出力する。
【0134】
LPC符号化部1002は、入力したLPC(線形予測係数)の量子化・符号化を行い、量子化線形予測係数a'jをインパルス応答算出部1005、ターゲットベクトル算出部1006および合成フィルタ部1011に出力する。本例では、LPCの量子化・符号化はLSFパラメータの領域で行われる。また、LPC符号化部1002は、LPCの符号化結果Lnを多重化部1014に出力し、量子化予測残差xn、復号量子化LSFパラメータω’n(j)およびMA予測量子化モードKnを前フレームLPC補償部1003に出力する。
【0135】
前フレームLPC補償部1003は、LPC符号化部1002から出力された第nフレームの復号量子化LSFパラメータω’n(j)を2フレームの間バッファに保持する。2フレーム前の復号量子化LSFパラメータはω’n-2(j)である。また、前フレームLPC補償部1003は、第nフレームの復号量子化予測残差xnをM+1フレームの間保持する。また、前フレームLPC補償部1003は、量子化予測残差xnと2フレーム前の復号量子化LSFパラメータω’n-2(j)と2フレーム前からM+1フレーム前の復号量子化予測残差xn-2〜xn-M-1との重み付き和によって第n−1フレームの復号量子化LSFパラメータω0n (j)およびω1n (j)を生成して補償モード判定器1004に出力する。ここで、前フレームLPC補償部1003は、重み付き和を求める際の重み付け係数のセットを4種類備えているが、LPC符号化部1002から入力されたMA予測量子化モード情報Knが0か1かによって、4種類のうちの2種類を選んでω0n(j)およびω1n (j)の生成に用いる。
【0136】
補償モード判定器1004は、前フレームLPC補償部1003から出力された2種類の補償LSFパラメータω0 n(j)とω1n (j)のどちらがLPC分析部1001から出力された未量子化LSFパラメータωn(j)に近いかを判定し、近い方の補償LSFパラメータを生成する重み付け係数のセットに対応する符号Enを多重化部1014に出力する。
【0137】
インパルス応答算出部1005は、LPC分析部1001から出力された未量子化線形予測係数ajおよびLPC符号化部1002から出力された量子化線形予測係数a'jを用いて聴覚重み付け合成フィルタのインパルス応答hを生成し、ACV符号化部1007およびFCV符号化部1008に出力する。
【0138】
ターゲットベクトル算出部1006は、入力信号sn、LPC分析部1001から出力された未量子化線形予測係数aj、LPC符号化部1002から出力された量子化線形予測係数a'jおよびフィルタ状態更新部1012、1013から出力されたフィルタ状態とからターゲットベクトル(入力信号に聴覚重み付けフィルタをかけた信号から聴覚重み付け合成フィルタの零入力応答を除去した信号)oを算出し、ACV符号化部1007、利得符号化部1009およびフィルタ状態更新部1012に出力する。
【0139】
ACV符号化部1007は、ターゲットベクトル算出部1006よりターゲットベクトルoを、インパルス応答算出部1005より聴覚重み付け合成フィルタのインパルス応答hを、音源生成部1010より前フレームで生成した音源信号exをそれぞれ入力し、適応符号帳探索を行い、結果である適応符号帳符号Anを多重化部1014へ、量子化ピッチラグTをFCV符号化部1008へ、ACベクトルvを音源生成部1010へ、ACベクトルvに聴覚重み付け合成フィルタのインパルス応答hを畳み込んだフィルタ後のACベクトル成分pをフィルタ状態更新部1012および利得符号化部1009へ、固定符号帳探索用に更新したターゲットベクトルo’をFCV符号化部1008へ、それぞれ出力する。より具体的な探索方法は、ITU−T勧告G.729等に記載されているものと同様である。図17では省略しているが、開ループピッチ探索等により、閉ループピッチ探索を行う範囲を決定することで適応符号帳探索に要する演算量を抑えるのが一般的である。
【0140】
FCV符号化部1008は、ACV符号化部1007より固定符号帳用ターゲットベクトルo’および量子化ピッチラグTを、インパルス応答算出部1005より聴覚重み付け合成フィルタのインパルス応答hを、それぞれ入力し、例えばITU−T勧告G.729に記載されているような方法によって固定符号帳探索を行い、固定符号帳符号Fnを多重化部1014へ、FCベクトルuを音源生成部1010へ、FCベクトルuに聴覚重み付けフィルタのインパルス応答を畳み込んで得られるフィルタ後のFC成分qをフィルタ状態更新部1012および利得符号化部1009へ、それぞれ出力する。
【0141】
利得符号化部1009は、ターゲットベクトル算出部1006よりターゲットベクトルoを、ACV符号化部1007よりフィルタ後のACベクトル成分pを、FCV符号化部1008よりフィルタ後のFCベクトル成分qを、それぞれ入力し、|o-(ga×p+gf×q)|2が最小と成るgaとgfの組を量子化適応符号帳利得および量子化固定符号帳利得として音源生成部1010に出力する。
【0142】
音源生成部1010は、ACV符号化部1007より適応符号帳ベクトルvを、FCV符号化部1008より固定符号帳ベクトルuを、利得符号化部1009より適応符号帳ベクトル利得gaおよび固定符号帳ベクトル利得gfを、それぞれ入力し、音源ベクトルexをga×v+gf×uにより算出し、ACV符号化部1007および合成フィルタ部1011に出力する。ACV符号化部1007に出力された音源ベクトルexは、ACV符号化部内のACB(過去に生成した音源ベクトルのバッファ)の更新に用いられる。
【0143】
合成フィルタ部1011は、音源生成部1010から出力された音源ベクトルexで、LPC符号化部1002から出力された量子化線形予測係数a'jで構成される線形予測フィルタを駆動し、局部復号音声信号s'nを生成し、フィルタ状態更新部1013に出力する。
【0144】
フィルタ状態更新部1012は、ACV符号化部1007から合成適応符号帳ベクトルpを、FCV符号化部1008から合成固定符号帳ベクトルqを、ターゲットベクトル算出部1006からターゲットベクトルoを、それぞれ入力し、ターゲットベクトル算出部1006内の聴覚重み付けフィルタのフィルタ状態を生成し、ターゲットベクトル算出部1006に出力する。
【0145】
フィルタ状態更新部1013は、合成フィルタ部1011から出力された局部復号音声s'nと入力信号snとの誤差を計算し、これをターゲットベクトル算出部1006内の合成フィルタの状態としてターゲットベクトル算出部1006に出力する。
【0146】
多重化部1014は、符号Fn、An、Gn、Ln、Enを多重した符号化情報を出力する。
【0147】
また、本実施の形態では第n−1フレームの復号量子化LSFパラメータについてのみ未量子化LSFパラメータとの誤差を計算する例を示したが、第nフレームの復号量子化LSFパラメータと第nフレームの未量子化LSFパラメータとの誤差も考慮して補償モードを決定するようにしても良い。
【0148】
このように、本実施の形態に係る音声符号化装置によれば、実施の形態3の音声復号化装置に対応して、補償処理に最適な補償処理用の重み付け係数セットを特定し、その情報を復号器側に伝送するので、復号器側でより高い補償性能が得られ、復号音声信号の品質が改善される。
【0149】
(実施の形態6)
図18は、本発明の実施の形態6に係る音声信号伝送システムを構成する音声信号送信装置及び音声信号受信装置の構成を示すブロック図である。実施の形態5の音声符号化装置が音声信号送信装置に、実施の形態1〜3のいずれかの音声復号装置が音声信号受信装置に適用されている点のみが従来と異なる。
【0150】
音声信号送信装置1100は、入力装置1101、A/D変換装置1102、音声符号化装置1103、信号処理装置1104、RF変調装置1105、送信装置1106及びアンテナ1107を有している。
【0151】
A/D変換装置1102の入力端子は、入力装置1101に接続されている。音声符号化装置1103の入力端子は、A/D変換装置1102の出力端子に接続されている。信号処理装置1104の入力端子は、音声符号化装置1103の出力端子に接続されている。RF変調装置1105の入力端子は、信号処理装置1104の出力端子に接続されている。送信装置1106の入力端子は、RF変調装置1105の出力端子に接続されている。アンテナ1107は、送信装置1106の出力端子に接続されている。
【0152】
入力装置1101は、音声信号を受けてこれを電気信号であるアナログ音声信号に変換し、A/D変換装置1102に与える。A/D変換装置1102は、入力装置1101からのアナログの音声信号をディジタル音声信号に変換し、これを音声符号化装置1103へ与える。音声符号化装置1103は、A/D変換装置1102からのディジタル音声信号を符号化して音声符号化ビット列を生成し信号処理装置1104に与える。信号処理装置1104は、音声符号化装置1103からの音声符号化ビット列にチャネル符号化処理やパケット化処理及び送信バッファ処理等を行った後、その音声符号化ビット列をRF変調装置1105に与える。RF変調装置1105は、信号処理装置1104からのチャネル符号化処理等が行われた音声符号化ビット列の信号を変調して送信装置1106に与える。送信装置1106は、RF変調装置1105からの変調された音声符号化信号をアンテナ1107を介して電波(RF信号)として送出する。
【0153】
音声信号送信装置1100においては、A/D変換装置1102を介して得られるディジタル音声信号に対して数十msのフレーム単位で処理が行われる。システムを構成するネットワークがパケット網である場合には、1フレーム又は数フレームの符号化データを1つのパケットに入れこのパケットをパケット網に送出する。なお、前記ネットワークが回線交換網の場合には、パケット化処理や送信バッファ処理は不要である。
【0154】
音声信号受信装置1150は、アンテナ1151、受信装置1152、RF復調装置1153、信号処理装置1154、音声復号装置1155、D/A変換装置1156及び出力装置1157を有している。
【0155】
受信装置1152の入力端子は、アンテナ1151に接続されている。RF復調装置1153の入力端子は、受信装置1152の出力端子に接続されている。信号処理装置1154の2つの入力端子は、RF復調装置1153の2つの出力端子に接続されている。音声復号装置1155の2つの入力端子は、信号処理装置1154の2つの出力端子に接続されている。D/A変換装置1156の入力端子は、音声復号装置1155の出力端子に接続されている。出力装置1157の入力端子は、D/A変換装置1156の出力端子に接続されている。
【0156】
受信装置1152は、アンテナ1151を介して音声符号化情報を含んでいる電波(RF信号)を受けてアナログの電気信号である受信音声符号化信号を生成し、これをRF復調装置1153に与える。アンテナを介して受けた電波(RF信号)は、伝送路において信号の減衰や雑音の重畳がなければ、音声信号送信装置において送出された電波(RF信号)と全く同じものになる。
【0157】
RF復調装置1153は、受信装置1152からの受信音声符号化信号を復調し信号処理装置1154に与える。また、受信音声符号化信号が正常に復調できたかどうかの情報を別途信号処理装置1154に与える。信号処理装置1154は、RF復調装置1153からの受信音声符号化信号のジッタ吸収バッファリング処理、パケット組みたて処理およびチャネル復号化処理等を行い、受信音声符号化ビット列を音声復号装置1155に与える。また、受信音声符号化信号が正常に復調できたかどうかの情報をRF復調装置1153から入力し、RF復調装置1153から入力した情報が「正常に復調できなかった」ことを示しているか、または、信号処理装置内でのパケット組み立て処理等が正常に行えずに受信音声符号化ビット列を正常に復号できなかった場合に、フレーム消失が発生したことをフレーム消失情報として音声復号装置1155に与える。音声復号装置1155は、信号処理装置1154からの受信音声符号化ビット列の復号化処理を行って復号音声信号を生成しD/A変換装置1156へ与える。音声復号装置1155は、受信音声符号化ビット列と平行して入力されるフレーム消失情報に従って、通常の復号処理を行うのか、フレーム消失補償(隠蔽)処理による復号処理を行うのかを決定する。D/A変換装置1156は、音声復号装置1155からのディジタル復号音声信号をアナログ復号音声信号に変換して出力装置1157に与える。出力装置1157は、D/A変換装置1156からのアナログ復号音声信号を空気の振動に変換し音波として人間の耳に聞こえる様に出力する。
【0158】
このように、実施の形態1から実施の形態5で示した音声符号化装置および音声復号装置を備えることにより、伝送路誤り(特にパケットロスに代表されるフレーム消失誤り)が発生した場合でも、従来よりも良い品質の復号音声信号を得ることができる。
【0159】
(実施の形態7)
上記実施の形態1から6では、予測モデルとしてMA型を用いる場合について説明したが、本発明はこれに限らず、予測モデルとしてAR型を用いることもできる。実施の形態7では、予測モデルとしてAR型を用いる場合について説明する。なお、実施の形態7に係る音声復号装置の構成は、LPC復号部の内部構成が異なるのを除いて、図1と同一である。
【0160】
図19は、本実施の形態に係る音声復号装置のLPC復号部105の内部構成を示すブロック図である。なお、図19において、図2と共通する構成部分には、図2と同一の符号を付し、その詳しい説明を省略する。
【0161】
図19に示すLPC復号部105は、図2と比較して、予測に関わる部分(バッファ204、増幅器205、加算器206)とフレーム消失補償に関わる部分(コードベクトル復号部203、バッファ207)を削除し、これらに置き換わる構成部分(コードベクトル復号部1901、増幅器1902、加算器1903、バッファ1904)を追加した構成を採る。
【0162】
LPC符号Ln+1はバッファ201およびコードベクトル復号部1901に入力され、フレーム消失符号Bn+1はバッファ202、コードベクトル復号部1901および選択器209に入力される。
【0163】
バッファ201は、次フレームのLPC符号Ln+1を1フレームの間保持し、コードベクトル復号部1901に出力する。バッファ201からコードベクトル復号部1901に出力されるLPC符号は、バッファ201で1フレームの間保持された結果、現フレームのLPC符号Lnとなる。
【0164】
バッファ202は、次フレームのフレーム消失符号Bn+1を1フレームの間保持し、コードベクトル復号部1901に出力する。バッファ202からコードベクトル復号部1901に出力されるフレーム消失符号は、バッファ202で1フレームの間保持された結果、現フレームのフレーム消失符号Bnとなる。
【0165】
コードベクトル復号部1901は、1フレーム前の復号LSFベクトルyn-1、次フレームのLPC符号Ln+1、次フレームのフレーム消失符号Bn+1、現フレームのLPC符号Lnおよび現フレームのフレーム消失符号Bnを入力し、これらの情報に基づいて現フレームの量子化予測残差ベクトルxnを生成し、加算器1903に出力する。なお、コードベクトル復号部1901の詳細については後述する。
【0166】
増幅器1902は、前フレームの復号LSFベクトルyn−1に所定のAR予測係数a1を乗算し、加算器1903に出力する。
【0167】
加算器1903は、増幅器1902から出力された予測LSFベクトル(すなわち前フレームの復号LSFベクトルにAR予測係数を乗じたもの)とコードベクトル復号部1901から出力された現フレームの量子化予測残差ベクトルxnとの和を計算し、計算結果である復号LSFベクトルynをバッファ1904およびLPC変換部208に出力する。
【0168】
バッファ1904は、現フレームの復号LSFベクトルynを1フレームの間保持し、コードベクトル復号部1901および増幅器1902に出力する。これらに入力される復号LSFベクトルは、バッファ1904で1フレームの間保持された結果、1フレーム前の復号LSFベクトルyn-1となる。
【0169】
なお、選択器209がバッファ210から出力された前フレームにおける復号LPCパラメータを選択する場合、実際にはコードベクトル復号部1901からLPC変換部208までの処理を全て行わなくてもよい。
【0170】
次に、図19のコードベクトル復号部1901の内部構成について、図20のブロック図を用いて詳細に説明する。
【0171】
コードブック2001は、現フレームのLPC符号Lnによって特定されるコードベクトルを生成して切替スイッチ309へ出力するとともに、次フレームのLPC符号Ln+1によって特定されるコードベクトルを生成して増幅器2002に出力する。なお、コードブックは多段構成であったり、スプリット構成であったりする。
【0172】
増幅器2002は、コードブック2001から出力されたコードベクトルxn+1に重み付け係数b0を乗算し、加算器2005に出力する。
【0173】
増幅器2003は、前フレームの復号LSFベクトルが生成されるために必要な現フレームにおける量子化予測残差ベクトルを求める処理を行う。すなわち、増幅器2003は、前フレームの復号LSFベクトルyn-1が現フレームの復号LSFベクトルynとなるように現フレームのベクトルxnを計算する。具体的には、増幅器2003は、入力した前フレームの復号LSFベクトルyn-1に係数(1−a1)を乗ずる。そして、増幅器2003は、計算結果を切替スイッチ309に出力する。
【0174】
増幅器2004は、入力した前フレームの復号LSFベクトルyn-1に重み付け係数b-1を乗算し、加算器2005に出力する。
【0175】
加算器2005は、増幅器2002および増幅器2004から出力されたベクトルの和を計算し、計算結果となるコードベクトルを切替スイッチ309に出力する。すなわち、加算器2005は、次フレームのLPC符号Ln+1によって特定されるコードベクトル、前フレームの復号LSFベクトル、を重み付け加算することにより現フレームのベクトルxnを計算する。
【0176】
切替スイッチ309は、現フレームのフレーム消失符号Bnが「第nフレームは正常フレームである」ことを示す場合にはコードブック2001から出力されたコードベクトルを選択し、これを現フレームの量子化予測残差ベクトルxnとして出力する。一方、切替スイッチ309は、現フレームのフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示す場合には、次フレームのフレーム消失符号Bn+1がどちらの情報を有しているかによって、出力するベクトルをさらに選択する。
【0177】
すなわち、次フレームのフレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示す場合には、切替スイッチ309は、増幅器2003から出力されたベクトルを選択し、これを現フレームの量子化予測残差ベクトルxnとして出力する。なお、この場合、コードブック2001および増幅器2002、2004から加算器2005までのベクトルを生成する過程の処理は行う必要がない。また、この場合、yn-1をynとして用いればよいので、必ずしも増幅器2003の処理によってxnを生成しなくとも良い。
【0178】
また、次フレームのフレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示す場合には、切替スイッチ309は、加算器2005から出力されたベクトルを選択し、これを現フレームの量子化予測残差ベクトルxnとして出力する。なお、この場合、増幅器2003の処理は行う必要がない。
【0179】
なお、本実施の形態の補償処理は、復号パラメータのフレーム間の変動が緩やかになるように、第n−1フレームの復号パラメータyn-1と第nフレームの復号パラメータynの距離、および、第nフレームの復号パラメータynと第n+1フレームの復号パラメータyn+1の距離の和D(Dは以下の式(9)のようになる)が小さくなるように重み付け係数b-1およびb0を決める。
【数8】
【0180】
以下、重み付け係数b-1およびb0の決め方の一例を示す。式(9)のDを最小化するため、以下の方程式(10)を、消失した第nフレームの復号量子化予測残差xnについて解く。その結果、以下の式(11)によりxnを求めることができる。なお、予測係数が各次で異なる場合には式(9)は式(12)に置き換わる。a1はAR予測係数、a1(j)はAR予測係数セットの第j成分(すなわち、前フレームの復号LSFベクトルyn-1の第j成分であるyn-1(j)に乗算する係数)を表す。
【数9】
【数10】
【数11】
【0181】
上式におけるx、y、aは以下の通りである。
xn(j):第nフレームにおけるLSFパラメータの第j成分の量子化予測残差
yn(j):第nフレームにおける復号LSFパラメータの第j成分
a1(j):AR予測係数セットの第j成分
【0182】
このように、予測モデルとしてAR型を用いる本実施の形態によれば、現フレームが消失した場合に、次のフレームが正常に受信されていれば、過去に復号されたパラメータおよび次のフレームの量子化予測残差を利用した補償処理専用の重み付け加算処理(重み付け線形和)によって現フレームのLSFパラメータの復号量子化予測残差の補償処理を行い、補償した量子化予測残差を用いてLSFパラメータの復号を行う。これにより、過去の復号LSFパラメータを繰り返し利用するよりも高い補償性能を実現することができる。
【0183】
なお、実施の形態2から4で説明した内容を、AR型を用いる本実施の形態に適用することも可能であり、この場合でも上記と同様の効果を得ることができる。
【0184】
(実施の形態8)
上記実施の形態7では、予測係数のセットが1種類しかない場合について説明したが、本発明はこれに限られず、実施の形態2および3と同様、予測係数のセットが複数種類ある場合についても適用することができる。実施の形態8では、予測係数セットが複数種類あるAR型予測モデルを用いる場合の一例について説明する。
【0185】
図21は、実施の形態8に係る音声復号装置のブロック図である。なお、図21に示す音声復号装置100の構成は、LPC復号部の内部構成が異なることと、多重分離部101からLPC復号部105への補償モード情報En+1の入力線がないことを除いて、図11と同一である。
【0186】
図22は、本実施の形態に係る音声復号装置のLPC復号部105の内部構成を示すブロック図である。なお、図22において、図19と共通する構成部分には、図19と同一の符号を付し、その詳しい説明を省略する。
【0187】
図22に示すLPC復号部105は、図19と比較して、バッファ2202と係数復号部2203とを追加した構成を採る。また、図22のコードベクトル復号部2201の動作及び内部構成が図19のコードベクトル復号部1901と異なる。
【0188】
LPC符号Vn+1はバッファ201およびコードベクトル復号部2201に入力され、フレーム消失符号Bn+1はバッファ202、コードベクトル復号部2201および選択器209に入力される。
【0189】
バッファ201は、次フレームのLPC符号Vn+1を1フレームの間保持し、コードベクトル復号部2201に出力する。バッファ201からコードベクトル復号部2201に出力されるLPC符号は、バッファ201で1フレームの間保持された結果、現フレームのLPC符号Vnとなる。また、バッファ202は、次フレームのフレーム消失符号Bn+1を1フレームの間保持し、コードベクトル復号部2201に出力する。
【0190】
コードベクトル復号部2201は、1フレーム前の復号LSFベクトルyn-1、次フレームのLPC符号Vn+1、次フレームのフレーム消失符号Bn+1、現フレームのLPC符号Vn、次フレームの予測係数符号Kn+1および現フレームのフレーム消失符号Bnを入力し、これらの情報に基づいて現フレームの量子化予測残差ベクトルxnを生成し、加算器1903に出力する。なお、コードベクトル復号部2201の詳細については後述する。
【0191】
バッファ2202は、AR予測係数符号Kn+1を1フレームの間保持し、係数復号部2203に出力する。この結果、バッファ2202から係数復号部2203に出力されるAR予測係数符号は、1フレーム前のAR予測係数符号Knとなる。
【0192】
係数復号部2203は、係数セットを複数種類格納し、フレーム消失符号Bn、Bn+1およびAR予測係数符号Kn、Kn+1によって係数セットを特定する。ここで、係数復号部2203における係数セットの特定の仕方は以下の3通りである。
【0193】
入力したフレーム消失符号Bnが「第nフレームは正常フレームである」ことを示す場合、係数復号部2203は、AR予測係数符号Knで指定される係数セットを選択する。
【0194】
また、入力したフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示し、フレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示す場合、係数復号部2203は、第n+1フレームのパラメータとして受信されているAR予測係数符号Kn+1を用いて、選択対象となる係数セットを決定する。つまり、Kn+1をそのままAR予測係数符号Knの代わりとして使用する。もしくは予めこのような場合に使用する係数セットを決めておき、Kn+1に関わらずこの決めておいた係数セットを使うようにしても良い。
【0195】
また、入力したフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示し、かつ、フレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示す場合、利用できる情報は前フレームで使用した係数セットの情報のみであるので、係数復号部2203は、前フレームで使用した係数セットを繰り返し使用するようにする。もしくは予め決めておいたモードの係数セットを固定的に使用するようにしても良い。
【0196】
そして、係数復号部2203は、AR予測係数a1を増幅器1902に出力し、AR予測係数(1-a1)をコードベクトル復号部2201に出力する。
【0197】
増幅器1902は、前フレームの復号LSFベクトルyn-1に係数復号部2203から入力されるAR予測係数a1を乗算し、加算器1903に出力する。
【0198】
次に、図22のコードベクトル復号部2201の内部構成について、図23のブロック図を用いて詳細に説明する。なお、図23において、図20と共通する構成部分には、図20と同一の符号を付し、その詳しい説明を省略する。図23のコードベクトル復号部2201は、図20のコードベクトル復号部1901に対して係数復号部2301を追加した構成を採る。
【0199】
係数復号部2301は、係数セットを複数種類格納し、AR予測係数符号Kn+1によって係数セットを特定し、増幅器2002、2004に出力する。なお、ここで使用される係数セットは係数復号部2203から出力されるAR予測係数a1を用いて計算することも可能であり、この場合は係数セットを格納しておく必要がなく、AR予測係数a1を入力して計算すればよい。具体的な計算方法については後述する。
【0200】
コードブック2001は、現フレームのLPC符号Vnによって特定されるコードベクトルを生成して切替スイッチ309へ出力するとともに、次フレームのLPC符号Vn+1によって特定されるコードベクトルを生成して増幅器2002に出力する。なお、コードブックは多段構成であったり、スプリット構成であったりする。
【0201】
増幅器2002は、コードブック2001から出力されたコードベクトルxn+1に係数復号部2301から出力された重み付け係数b0を乗算し、加算器2005に出力する。
【0202】
増幅器2003は、係数復号部2203から出力されたAR予測係数(1-a1)を前フレームの復号LSFベクトルyn-1に乗算し、切替スイッチ309へ出力する。なお、実装上このような経路を作らずに、増幅器2003および増幅器1902および加算器1903の処理を行う代わりに、バッファ1904の出力を加算器1903の出力に替えてLPC変換部208へ入力できるような切替構成が備わっていれば、増幅器2003を経由する経路は不要である。
【0203】
増幅器2004は、入力した前フレームの復号LSFベクトルyn-1に係数復号部2301から出力された重み付け係数b-1を乗算し、加算器2005に出力する。
【0204】
なお、本実施の形態の補償処理は、復号パラメータのフレーム間の変動が緩やかになるように、第n−1フレームの復号パラメータyn-1と第nフレームの復号パラメータynの距離、および、第nフレームの復号パラメータynと第n+1フレームの復号パラメータyn+1の距離の和D(Dは以下の式(13)のようになる)が小さくなるように重み付け係数b-1およびb0を決める。
【数12】
【0205】
以下、重み付け係数b-1およびb0の決め方の一例を示す。式(13)のDを最小化するため、以下の方程式(14)を、消失した第nフレームの復号量子化予測残差xnについて解く。その結果、以下の式(15)によりxnを求めることができる。なお、予測係数が各次で異なる場合には式(13)は式(16)に置き換わる。a’1は第n+1フレームにおけるAR予測係数、a1は第nフレームにおけるAR予測係数、a1(j)はAR予測係数セットの第j成分(すなわち、前フレームの復号LSFベクトルyn-1の第j成分であるyn-1(j)に乗算する係数)を表す。
【数13】
【数14】
【数15】
【0206】
上式におけるx、y、aは以下の通りである。
xn(j):第nフレームにおけるLSFパラメータの第j成分の量子化予測残差
yn(j):第nフレームにおける復号LSFパラメータの第j成分
a1(j):第nフレームのAR予測係数セットの第j成分
a’1(j):第n+1フレームのAR予測係数セットの第j成分
【0207】
ここで、第nフレームが消失フレームだと、第nフレームの予測係数セットは未知である。a1を決定する方法はいくつか考えられる。まず、実施の形態2のように第n+1フレームで追加情報として送る方法がある。ただし、追加のビットが必要であり、エンコーダ側にも修正が必要となる。次に、第n−1フレームで使われた予測係数セットを使う方法がある。さらに、第n+1フレームで受信した予測係数セットを使う方法がある。この場合、a1=a’1である。またさらに、常に特定の予測係数セットを使う方法がある。しかしながら、後述するように、ここで異なるa1を用いても同じa1を用いてAR予測を行えば、復号されるynは等しくなる。AR予測を用いる予測量子化の場合、量子化予測残差xnは予測に関係せず、復号される量子化パラメータynのみが予測に関係するので、この場合a1は任意の値で良い。
【0208】
a1が決まれば、式(15)または式(16)からb0、b1を決定でき、消失フレームのコードベクトルxnを生成することができる。
【0209】
なお、上記の式(16)で得られる消失フレームのコードベクトルxnをynを表す式(yn=a1yn−1+xn)に代入すると、下記の式(17)のようになる。したがって、補償処理によって生成される消失フレームにおける復号パラメータはxn+1とyn-1とa1’から直接求めることができる。この場合、消失フレームにおける予測係数a1を用いない補償処理が可能となる。
【数16】
【0210】
このように、本実施の形態によれば、実施の形態7で説明した特徴に加えて、予測係数のセットを複数用意し、補償処理を行うので、実施の形態7よりもさらに高い補償性能を実現することができる。
【0211】
(実施の形態9)
上記実施の形態1から8では、n+1フレームを受信してからnフレームの復号を行う場合について説明したが、本発明はこれに限らず、nフレームの生成をn−1フレームの復号パラメータを用いて行い、n+1フレームの復号時に本発明の手法を用いてnフレームのパラメータ復号を行い、その結果で予測器の内部状態を更新してからn+1フレームの復号を行うこともできる。
【0212】
実施の形態9では、この場合について説明する。実施の形態9における音声復号装置の構成は図1と同一である。また、LPC復号部105の構成は図19と同一でよいが、n+1フレームの符号化情報入力に対してn+1フレームの復号を行うことを明確にするために図24のように書き換える。
【0213】
図24は、本実施の形態に係る音声復号装置のLPC復号部105の内部構成を示すブロック図である。なお、図24において、図19と共通する構成部分には、図19と同一の符号を付し、その詳しい説明を省略する。
【0214】
図24に示すLPC復号部105は、図19と比較して、バッファ201を削除し、コードベクトル復号部の出力がxn+1であり、復号パラメータがn+1フレームのもの(yn+1)であること、および切替スイッチ2402を追加した構成を採る。また、図24のコードベクトル復号部2401の動作及び内部構成が図19のコードベクトル復号部1901と異なる。
【0215】
LPC符号Ln+1はコードベクトル復号部2401に入力され、フレーム消失符号Bn+1はバッファ202、コードベクトル復号部2401および選択器209に入力される。
【0216】
バッファ202は、現フレームのフレーム消失符号Bn+1を1フレームの間保持し、コードベクトル復号部2401に出力する。バッファ202からコードベクトル復号部2401に出力されるフレーム消失符号は、バッファ202で1フレームの間保持された結果、前フレームのフレーム消失符号Bnとなる。
【0217】
コードベクトル復号部2401は、2フレーム前の復号LSFベクトルyn-1、現フレームのLPC符号Ln+1、現フレームのフレーム消失符号Bn+1を入力し、これらの情報に基づいて現フレームの量子化予測残差ベクトルxn+1および前フレームの復号LSFベクトルy'nを生成し、それぞれ加算器1903および切替スイッチ2402に出力する。なお、コードベクトル復号部2401の詳細については後述する。
【0218】
増幅器1902は、前フレームの復号LSFベクトルynまたはy'nに所定のAR予測係数a1を乗算し、加算器1903に出力する。
【0219】
加算器1903は、増幅器1902から出力された予測LSFベクトル(すなわち前フレームの復号LSFベクトルにAR予測係数を乗じたもの)を計算し、計算結果である復号LSFベクトルyn+1をバッファ1904およびLPC変換部208に出力する。
【0220】
バッファ1904は、現フレームの復号LSFベクトルyn+1を1フレームの間保持し、コードベクトル復号部2401および切替スイッチ2402に出力する。これらに入力される復号LSFベクトルは、バッファ1904で1フレームの間保持された結果、1フレーム前の復号LSFベクトルynとなる。
【0221】
切替スイッチ2402は、前フレームの復号LSFベクトルynか、コードベクトル復号部2401にて現フレームのLPC符号Ln+1を用いて生成しなおされた前フレームの復号LSFベクトルy'nかのいずれかを、前フレームのフレーム消失符号Bnによって選択する。切替スイッチ2402は、Bnが消失フレームを示している場合にy'nを選択する。
【0222】
なお、選択器209がバッファ210から出力された前フレームにおける復号LPCパラメータを選択する場合、実際にはコードベクトル復号部2401からLPC変換部208までの処理を全て行わなくてもよい。
【0223】
次に、図24のコードベクトル復号部2401の内部構成について、図25のブロック図を用いて詳細に説明する。なお、図25において、図20と共通する構成部分には、図20と同一の符号を付し、その詳しい説明を省略する。図25のコードベクトル復号部2401は、図20のコードベクトル復号部1901に対してバッファ2502、増幅器2503および加算器2504を追加した構成を採る。また、図25の切替スイッチ2501の動作及び内部構成が図20の切替スイッチ309と異なる。
【0224】
コードブック2001は、現フレームのLPC符号Ln+1によって特定されるコードベクトルを生成して切替スイッチ2501へ出力するとともに、増幅器2002に出力する。
【0225】
増幅器2003は、前フレームの復号LSFベクトルが生成されるために必要な現フレームにおける量子化予測残差ベクトルを求める処理を行う。すなわち、増幅器2003は、前フレームの復号LSFベクトルynが現フレームの復号LSFベクトルyn+1となるように現フレームのベクトルxn+1を計算する。具体的には、増幅器2003は、入力した前フレームの復号LSFベクトルynに係数(1−a1)を乗ずる。そして、増幅器2003は、計算結果を切替スイッチ2501に出力する。
【0226】
切替スイッチ2501は、現フレームのフレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示す場合にはコードブック2001から出力されたコードベクトルを選択し、これを現フレームの量子化予測残差ベクトルxn+1として出力する。
一方、切替スイッチ2501は、現フレームのフレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示す場合には、増幅器2003から出力されたベクトルを選択し、これを現フレームの量子化予測残差ベクトルxn+1として出力する。なお、この場合、コードブック2001および増幅器2002、2004から加算器2005までのベクトルを生成する過程の処理は行う必要がない。
【0227】
バッファ2502は、前フレームの復号LSFベクトルynを1フレームの間保持し、2フレーム前の復号LSFベクトルyn-1として増幅器2004および増幅器2503へ出力する。
【0228】
増幅器2004は、入力した2フレーム前の復号LSFベクトルyn-1に重み付け係数b-1を乗算し、加算器2005に出力する。
【0229】
加算器2005は、増幅器2002および増幅器2004から出力されたベクトルの和を計算し、計算結果となるコードベクトルを加算器2504に出力する。すなわち、加算器2005は、現フレームのLPC符号Ln+1によって特定されるコードベクトル、2フレーム前の復号LSFベクトル、を重み付け加算することにより前フレームのベクトルxnを計算し、加算器2504に出力する。
【0230】
増幅器2503は、2フレーム前の復号LSFベクトルyn-1に予測係数a1を乗算し、加算器2504に出力する。
【0231】
加算器2504は、加算器2005の出力(現フレームのLPC符号Ln+1を用いて再計算された前フレームの復号ベクトルxn)と増幅器2503の出力(2フレーム前の復号LSFベクトルyn-1に予測係数a1を乗じたベクトル)を加算し、前フレームの復号LSFベクトルy'nを再計算する。
【0232】
なお、本実施の形態の復号LSFベクトルy'nの再計算の方法は、実施の形態7における補償処理と同様である。
【0233】
このように、本実施の形態によれば、実施の形態7の補償処理によって得られる復号ベクトルxnを第n+1フレームの復号時の予測器内部状態にのみ利用する構成にすることにより、実施の形態7で必要となっていた処理遅延1フレーム分を削減することができる。
【0234】
(実施の形態10)
上記実施の形態1から9では、LPC復号部内の構成および処理にのみ特徴を備えていたが、本実施の形態に係る音声復号装置の構成は、LPC復号部外の構成について特徴を有する。本発明は図1、図8、図11、図21のいずれにも適用可能であるが、本実施の形態では図21に適用する場合を例に説明する。
【0235】
図26は、本実施の形態に係る音声復号装置を示すブロック図である。図26において、図21と同一の構成要素については図21と同一符号を付し、詳しい説明を省略する。図26に示す音声復号装置100は、図21と比較して、フィルタ利得算出部2601、音源パワ制御部2602、および増幅器2603を追加した構成を採る。
【0236】
LPC復号部105は、復号したLPCをLPC合成部109およびフィルタ利得算出部2601に出力する。また、LPC復号部105は、復号中の第nフレームに対応するフレーム消失符号Bnを音源パワ制御部2602に出力する。
【0237】
フィルタ利得算出部2601は、LPC復号部105から入力されたLPCによって構成される合成フィルタのフィルタ利得を計算する。フィルタ利得の算出方法の一例として、インパルス応答のエネルギの平方根を求めてフィルタ利得とする方法がある。これは、入力信号をエネルギが1であるインパルスと考えれば、入力されたLPCで構成した合成フィルタのインパルス応答のエネルギがそのままフィルタ利得情報となることに基づいている。また、フィルタ利得の算出方法の別の例として、LPCからレビンソン・ダービンのアルゴリズムを用いて線形予測残差の2乗平均値を求めることができることから、この逆数をフィルタ利得情報として用い、線形予測残差の2乗平均の逆数の平方根をフィルタ利得とする方法もある。求められフィルタ利得は、音源パワ制御部2602に出力される。なお、フィルタ利得を表すパラメータとして、インパルス応答のエネルギや線形予測残差の二乗平均値を、平方根を取らずに音源パワ制御部2602に出力しても良い。
【0238】
音源パワ制御部2602は、フィルタ利得算出部2601からフィルタ利得を入力し、音源信号の振幅調整用のスケーリング係数を算出する。音源パワ制御部2602は、その内部にメモリを備えていて、1フレーム前のフィルタ利得をメモリに保持している。メモリの内容は、スケーリング係数が算出された後、入力された現フレームのフィルタ利得に書き換えられる。スケーリング係数SGnの算出は、現フレームのフィルタ利得をFGn、前フレームのフィルタ利得をFGn−1、利得増加率の上限値をDGmax、とすると、例えば、SGn=DGmax×FGn−1/FGnの式により行われる。ここで、利得増加率とは、FGn/FGn−1で定義され、現フレームのフィルタ利得が前フレームのフィルタ利得と比べて何倍になったかを示すものである。その上限値を予めDGmaxと決めておく。フレーム消失隠蔽処理によって作られた合成フィルタにおいて、フィルタ利得が前フレームのフィルタ利得に対して急激に上昇した場合、合成フィルタの出力信号のエネルギも急激に上昇し、復号信号(合成信号)が局所的に大振幅となって異音を生じる。これを回避するため、フレーム消失隠蔽処理によって生成された復号LPCによって構成される合成フィルタのフィルタ利得が、前フレームのフィルタ利得に対して所定の利得増加率以上に大きくなった場合、合成フィルタの駆動信号である復号音源信号のパワを下げる。このための係数がスケーリング係数であり、前記所定の利得増加率が利得増加率の上限値DGmaxである。通常、DGmaxを1もしくは0.98など1より少し小さい値に設定すれば異音の発生を避けることができる。なお、FGn/FGn−1がDGmax以下の場合は、SGn=1.0として増幅器2603におけるスケーリングは行わなくて良い。
【0239】
・ また、スケーリング係数SGnの別の算出方法として、例えば、SGn=Max(SGmax ,FGn−1/FGn)によって求める方法がある。ここで、SGmaxはスケーリング係数の最大値を表し、例えば1.5のように1より若干大きい値とする。また、Max(A,B)はAとBのいずれか大きいほうを出力する関数である。SGn=FGn−1/FGnの場合、フィルタ利得が増加した分、音源信号のパワが下がることとなり、現フレームの復号合成信号のエネルギは前フレームの復号合成信号のエネルギと同じになる。これにより前述した合成信号エネルギの急上昇を回避することができると共に、合成信号エネルギの急激な減衰を回避することができる。前フレームのフィルタ利得に比べて現フレームのフィルタ利得が小さくなる場合、合成信号エネルギが急激に減衰し、音切れとして知覚される場合がある。このような場合に、SGn=FGn−1/FGnとするとSGnは1以上の値となり、合成信号エネルギの局所的な減衰を回避する役割を果たす。しかしながら、フレーム消失補償処理で生成した音源信号は必ずしも音源信号として適切であるとは限らないため、スケーリング係数を大きくしすぎると却って歪が目立って品質劣化に繋がる。このため、スケーリング係数に上限を設け、FGn−1/FGnがその上限値を上回る場合は、上限値にクリッピングする。
【0240】
なお、1フレーム前のフィルタ利得またはフィルタ利得を表すパラメータ(合成フィルタのインパルス応答のエネルギなど)を、音源パワ制御部2602内のメモリに保持せずに、音源パワ制御部2602の外部から入力するようにしても良い。特に1フレーム前のフィルタ利得に関する情報を音声復号器の他の部分で利用している場合には、上記パラメータを外部から入力するようにし、音源パワ制御部2602の内部で書き換えることもしない。
【0241】
そして、音源パワ制御部2602は、LPC復号部105からフレーム消失符号Bnを、入力し、Bnが、現フレームが消失フレームであることを示す場合には、算出したスケーリング係数を増幅器2603に出力する。一方、Bnが現フレームは消失フレームでないことを示す場合には、音源パワ制御部2602は、スケーリング係数として1を増幅器2603に出力する。
【0242】
増幅器2603は、音源パワ制御部2602から入力したスケーリング係数を、加算器108から入力した復号音源信号に乗算してLPC合成部109へ出力する。
【0243】
このように、本実施の形態によれば、フレーム消失隠蔽処理によって生成された復号LPCによって構成される合成フィルタのフィルタ利得が、前フレームのフィルタ利得に対して変化する場合、合成フィルタの駆動信号である復号音声信号のパワを調整することにより、異音や音切れの発生を防ぐことができる。
【0244】
なお、Bnが現フレームは消失フレームでないことを示す場合であっても、直前のフレームが消失フレームである(つまり、Bn−1が前フレームは消失フレームであったことを示す)場合には、音源パワ制御部2602が、算出したスケーリング係数を増幅器2603に出力するようにしても良い。これは、予測符号化を用いた場合は、フレーム消失からの復帰フレームにおいても誤りの影響が残留している場合があるためである。この場合でも上記と同様の効果を得ることができる。
【0245】
以上、本発明の実施の形態について説明した。
【0246】
なお、上記各実施の形態では符号化パラメータをLSFパラメータとしたが、本発明はこれに限定されるものではなく、フレーム間での変動が緩やかなパラメータであればどのようなパラメータにも適用可能であり、例えば、イミタンススペクトル周波数(immittance spectrum frequencies ;ISFs)でも良い。
【0247】
また、上記各実施の形態では符号化パラメータをLSFパラメータそのものとしたが、平均的なLSFからの差分を取った、平均値除去後のLSFパラメータにしても良い。
【0248】
また、本発明に係るパラメータ復号装置/パラメータ符号化装置は、音声復号装置/音声符号化装置に適用されるほか、移動体通信システムにおける通信端末装置および基地局装置に搭載することが可能であり、これにより上記と同様の作用効果を有する通信端末装置、基地局装置、および移動体通信システムを提供することができる。
【0249】
また、ここでは、本発明をハードウェアで構成する場合を例にとって説明したが、本発明をソフトウェアで実現することも可能である。例えば、本発明に係るパラメータ復号方法のアルゴリズムをプログラミング言語によって記述し、このプログラムをメモリに記憶しておいて情報処理手段によって実行させることにより、本発明に係るパラメータ復号装置と同様の機能を実現することができる。
【0250】
また、上記各実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部または全てを含むように1チップ化されても良い。
【0251】
また、ここではLSIとしたが、集積度の違いによって、IC、システムLSI、スーパーLSI、ウルトラLSI等と呼称されることもある。
【0252】
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラム化することが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続もしくは設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【0253】
さらに、半導体技術の進歩または派生する別技術により、LSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
【0254】
2006年11月10日出願の特願2006−305861、2007年5月17日出願の特願2007−132195及び2007年9月14日出願の特願2007−240198の日本出願に含まれる明細書、図面及び要約書の開示内容は、すべて本願に援用される。
【産業上の利用可能性】
【0255】
本発明に係るパラメータ復号装置およびパラメータ復号方法は、音声復号装置、音声符号化装置、更には、移動体通信システムにおける通信端末装置、基地局装置等の用途に適用することができる。
【技術分野】
【0001】
本発明は、予測器を用いて符号化されたパラメータを復号するパラメータ復号装置およびパラメータ復号方法に関する。
【背景技術】
【0002】
ITU−T勧告G.729や3GPP AMRなどの音声コーデックでは、音声信号を分析して得られるパラメータの一部を移動平均 (Moving Average(MA))予測モデルに基づく予測量子化方法で量子化している(特許文献1、非特許文献1、非特許文献2)。MA型予測量子化器は過去の量子化予測残差の線形和で現在の量子化対象パラメータを予測するモデルであり、符号励振線形予測(Code Excited Linear Prediction(CELP))型の音声コーデックでは、線スペクトル周波数(Line Spectral Frequency(LSF))パラメータや、エネルギパラメータの予測に用いられている。
【0003】
MA型予測量子化器は、過去有限フレーム数における量子化予測残差の重み付け線形和で予測が行われるため、量子化情報に伝送路誤りがあってもその影響が及ぶのは有限フレーム数に限定される。一方、過去の復号パラメータを再帰的に用いる自己回帰(Auto Regressive(AR))型予測量子化器では、一般に高い予測利得、量子化性能が得られるものの、誤りの影響が長時間に及ぶ。このため、MA型予測のパラメータ量子化器は、AR型予測のパラメータ量子化器に比べて高い誤り耐性を実現することができ、特に移動通信用の音声コーデックなどに用いられている。
【0004】
ここで、従来から、復号側においてフレームが消失した場合のパラメータ補償方法について検討されている。一般的には、消失したフレームのパラメータの代わりに、当該フレームの前のフレームのパラメータを利用して補償を行う。ただし、LSFパラメータの場合には、徐々に平均的なLSFに近づけたり、エネルギパラメータの場合は徐々に減衰させたり、という手法により消失フレーム前のパラメータを少しずつ修正して利用することもある。
【0005】
MA型予測器を利用した量子化器においても、通常この手法が用いられ、LSFパラメータの場合には補償フレームにおいて生成されたパラメータが復号されるような量子化予測残差を生成してMA型予測器の状態を更新する処理が行われ(非特許文献1)、エネルギパラメータの場合には過去の量子化予測残差の平均値を一定の割合で減衰させたものを用いてMA型予測器の状態を更新する処理が行われる(特許文献2、非特許文献1)。
【0006】
また、消失フレーム後の復帰フレーム(正常フレーム)の情報が得られてから、消失フレームのパラメータを内挿する手法もある。例えば、特許文献3では、ピッチゲインの内挿を行い、適応符号帳の内容を生成しなおす手法が提案されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平6−175695号公報
【特許文献2】特開平9−120297号公報
【特許文献3】特開2002−328700号公報
【非特許文献】
【0008】
【非特許文献1】ITU−T勧告G.729
【非特許文献2】3GPP TS 26.091
【発明の概要】
【発明が解決しようとする課題】
【0009】
消失フレームのパラメータを内挿する手法は、予測量子化が行われていない場合に用いられるが、予測量子化が行われている場合には、消失フレーム直後のフレームにおいて符号化情報が正しく受信されても予測器が直前フレームの誤りの影響を受けてしまい正しい復号結果を得ることができないので、一般的に用いられない。
【0010】
このように、従来のMA型予測器を用いるパラメータ量子化装置では、内挿的な手法による消失フレームのパラメータの補償処理を行っていないため、例えばエネルギパラメータについて減衰のさせすぎなどによる音切れが起こり、主観品質の劣化要因となる場合がある。
【0011】
また、予測量子化が行われている場合に、復号量子化予測残差を単純に内挿補間することによりパラメータを復号する方法も考えられるが、復号量子化予測残差は大きく変動しても復号パラメータは重み付け移動平均によりフレーム間で緩やかに変動するのに対し、この方法では、復号量子化予測残差の変動に伴って復号パラメータも変動してしまうため、復号量子化予測残差の変動が大きい場合に、かえって主観品質の劣化を大きくしてしまう。
【0012】
本発明の目的は、かかる点に鑑みてなされたものであり、予測量子化が行われている場合において、主観品質の劣化を抑えるようにパラメータの補償処理を行うことができるパラメータ復号装置およびパラメータ復号方法を提供することである。
【課題を解決するための手段】
【0013】
本発明の一態様に係るパラメータ復号装置は、復号対象の現在フレームに含まれる符号化情報に基づいて量子化予測残差を求める予測残差復号手段と、前記量子化予測残差に基づいてパラメータを復号するパラメータ復号手段と、を具備し、前記予測残差復号手段は、前記現在フレームが消失した場合、過去に復号されたパラメータおよび未来フレームの量子化予測残差の重み付け線形和により現在フレームの量子化予測残差を求める、構成を採る。
【0014】
また、本発明の一態様に係るパラメータ符号化装置は、入力信号を分析して分析パラメータを求める分析手段と、予測係数を用いて前記分析パラメータを予測し、予測残差を量子化して得られる量子化予測残差と前記予測係数とを用いて量子化パラメータを得る符号化手段と、重み付け係数のセットを複数格納し、現在フレームの前記量子化予測残差、2フレーム過去の前記量子化予測残差、および、2フレーム過去の前記量子化パラメータに対し、前記重み付け係数のセットを用いて重み付き和を求め、前記重み付き和を用いて1フレーム過去の前記量子化パラメータを複数求める前フレーム補償手段と、前記前フレーム補償手段で求めた複数の前記1フレーム過去の前記量子化パラメータを、1フレーム過去に前記分析手段により求められた前記分析パラメータと比較して、前記1フレーム過去の前記量子化パラメータを一つ選択し、選択された前記1フレーム過去の前記量子化パラメータに対応する重み付け係数セットを選択して符号化する判定手段を、を具備する構成を採る。
【0015】
また、本発明の一態様に係るパラメータ復号方法は、復号対象の現在フレームに含まれる符号化情報に基づいて量子化予測残差を求める予測残差復号工程と、前記量子化予測残差に基づいてパラメータを復号するパラメータ復号工程と、を具備し、前記予測残差復号工程では、前記現在フレームが消失した場合、過去に復号されたパラメータおよび未来フレームの量子化予測残差の重み付け線形和により現在フレームの量子化予測残差を求める、方法を採る。
【発明の効果】
【0016】
本発明によれば、予測量子化が行われている場合において、現在フレームが消失した場合、過去に復号されたパラメータ、過去フレームの量子化予測残差および未来フレームの量子化予測残差の重み付け線形和により現在フレームの量子化予測残差を求めることにより、主観品質の劣化を抑えるようにパラメータの補償処理を行うことができる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施の形態1に係る音声復号装置の主要な構成を示すブロック図
【図2】本発明の実施の形態1に係る音声復号装置のLPC復号部の内部構成を示す図
【図3】図2中のコードベクトル復号部の内部構成を示す図
【図4】消失フレームがない場合に通常の処理を行った結果の一例を示す図
【図5】本実施の形態の補償処理を行った結果の一例を示す図
【図6】従来の補償処理を行った結果の一例を示す図
【図7】従来の補償処理を行った結果の一例を示す図
【図8】本発明の実施の形態2に係る音声復号装置の主要な構成を示すブロック図
【図9】図8中のLPC復号部の内部構成を示すブロック図
【図10】図9中のコードベクトル復号部の内部構成を示すブロック図
【図11】本発明の実施の形態3に係る音声復号装置の主要な構成を示すブロック図
【図12】図11中のLPC復号部の内部構成を示すブロック図
【図13】図12中のコードベクトル復号部の内部構成を示すブロック図
【図14】図1中の利得復号部の内部構成を示すブロック図
【図15】図14中の予測残差復号部の内部構成を示すブロック図
【図16】図15中のサブフレーム量子化予測残差生成部の内部構成を示すブロック図
【図17】本発明の実施の形態5に係る音声符号化装置の主要な構成を示すブロック図
【図18】本発明の実施の形態6に係る音声信号伝送システムを構成する音声信号送信装置及び音声信号受信装置の構成を示すブロック図
【図19】本発明の実施の形態7に係る音声復号装置のLPC復号部の内部構成を示す図
【図20】図19中のコードベクトル復号部の内部構成を示す図
【図21】本発明の実施の形態8に係る音声復号装置の主要な構成を示すブロック図
【図22】本発明の実施の形態8に係る音声復号装置のLPC復号部の内部構成を示す図
【図23】図22中のコードベクトル復号部の内部構成を示す図
【図24】本発明の実施の形態9に係る音声復号装置のLPC復号部の内部構成を示す図
【図25】図24中のコードベクトル復号部の内部構成を示す図
【図26】本発明の実施の形態10に係る音声復号装置の主要な構成を示すブロック図
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。なお、以下の各実施の形態においては、本発明のパラメータ復号装置/パラメータ符号化装置を、それぞれCELP型の音声復号装置/音声符号化装置に適用する場合を例に説明を行う。
【0019】
(実施の形態1)
図1は、本発明の実施の形態1に係る音声復号装置の主要な構成を示すブロック図である。図1に示す音声復号装置100において、図示しない符号化装置から伝送された符号化情報は、多重分離部101により固定符号帳符号Fn+1、適応符号帳符号An+1、利得符号Gn+1、およびLPC(線形予測係数:Linear Prediction Coefficients)符号Ln+1に分離される。別途、音声復号装置100には、フレーム消失符号Bn+1が入力される。ここで各符号の添え字nは、復号対象のフレーム番号を表す。すなわち、図1では、復号対象の第nフレーム(以下、「現フレーム」という)の次の第(n+1)フレーム(以下、「次フレーム」という)における符号化情報を分離している。
【0020】
固定符号帳符号Fn+1は固定符号帳ベクトル(Fixed Codebook Vector(FCV))復号部102に、適応符号帳符号An+1は適応符号帳ベクトル(Adaptive Codebook Vector(ACV))復号部103に、利得符号Gn+1は利得復号部104に、LPC符号Ln+1はLPC復号部105に、それぞれ入力される。また、フレーム消失符号Bn+1は、FCV復号部102、ACV復号部103、利得復号部104、およびLPC復号部105の全てに入力される。
【0021】
FCV復号部102は、フレーム消失符号Bnが「第nフレームは正常フレームである」ことを示している場合には固定符号帳符号Fnを用いて固定符号帳ベクトルを生成し、フレーム消失符号Bnが「第nフレームは消失フレームである」ことを示している場合にはフレーム消失補償(隠蔽)処理によって固定符号帳ベクトルを生成する。生成された固定符号帳ベクトルは、利得復号部104及び増幅器106に入力される。
【0022】
ACV復号部103は、フレーム消失符号Bnが「第nフレームは正常フレームである」ことを示している場合には適応符号帳符号Anを用いて適応符号帳ベクトルを生成し、フレーム消失符号Bnが「第nフレームは消失フレームである」ことを示している場合にはフレーム消失補償(隠蔽)処理によって適応符号帳ベクトルを生成する。生成された適応符号帳ベクトルは、増幅器107に入力される。
【0023】
利得復号部104は、フレーム消失符号Bnが「第nフレームは正常フレームである」ことを示している場合には利得符号Gn及び固定符号帳ベクトルを用いて固定符号帳利得と適応符号帳利得を生成し、フレーム消失符号Bnが「第nフレームは消失フレームである」ことを示している場合にはフレーム消失補償(隠蔽)処理によって固定符号帳利得と適応符号帳利得とを生成する。生成された固定符号帳利得は増幅器106に入力され、生成された適応符号帳利得は増幅器107に入力される。
【0024】
LPC復号部105は、フレーム消失符号Bnが「第nフレームは正常フレームである」ことを示している場合にはLPC符号Lnを用いてLPCパラメータを復号し、フレーム消失符号Bnが「第nフレームは消失フレームである」ことを示している場合にはフレーム消失補償(隠蔽)処理によってLPCパラメータを復号する。復号された復号LPCパラメータは、LPC合成部109に入力される。なお、LPC復号部105の詳細については後述する。
【0025】
増幅器106は、利得復号部104から出力された固定符号帳利得をFCV復号部102から出力された固定符号帳ベクトルに乗算し、乗算結果を加算器108に出力する。増幅器107は、利得復号部104から出力された適応符号帳利得をACV復号部103から出力された適応符号帳ベクトルに乗算し、乗算結果を加算器108に出力する。加算器108は、増幅器106から出力された固定符号帳利得乗算後の固定符号帳ベクトルと増幅器107から出力された適応符号帳利得乗算後の適応符号帳ベクトルとを加算し、加算結果(以下、「和ベクトル」という)をLPC合成部109に出力する。
【0026】
LPC合成部109は、LPC復号部105から出力された復号LPCパラメータを用いて線形予測合成フィルタを構成し、加算器108から出力された和ベクトルを駆動信号として線形予測合成フィルタを駆動し、駆動の結果得られた合成信号をポストフィルタ110に出力する。ポストフィルタ110は、LPC合成部109から出力された合成信号にホルマント強調やピッチ強調処理等を行い、復号音声信号として出力する。
【0027】
次に、本実施の形態に係るパラメータの補償処理の詳細について、LPCパラメータを補償する場合を例に説明する。図2は、図1中のLPC復号部105の内部構成を示す図である。
【0028】
LPC符号Ln+1はバッファ201およびコードベクトル復号部203に入力され、フレーム消失符号Bn+1はバッファ202、コードベクトル復号部203および選択器209に入力される。
【0029】
バッファ201は、次フレームのLPC符号Ln+1を1フレームの間保持し、コードベクトル復号部203に出力する。バッファ201からコードベクトル復号部203に出力されるLPC符号は、バッファ201で1フレームの間保持された結果、現フレームのLPC符号Lnとなる。
【0030】
バッファ202は、次フレームのフレーム消失符号Bn+1を1フレームの間保持し、コードベクトル復号部203に出力する。バッファ202からコードベクトル復号部203に出力されるフレーム消失符号は、バッファ202で1フレームの間保持された結果、現フレームのフレーム消失符号Bnとなる。
【0031】
コードベクトル復号部203は、過去Mフレームの量子化予測残差ベクトルxn-1〜xn-M、1フレーム前の復号LSFベクトルyn-1、次フレームのLPC符号Ln+1、次フレームのフレーム消失符号Bn+1、現フレームのLPC符号Lnおよび現フレームのフレーム消失符号Bnを入力し、これらの情報に基づいて現フレームの量子化予測残差ベクトルxnを生成し、バッファ204−1および増幅器205−1に出力する。なお、コードベクトル復号部203の詳細については後述する。
【0032】
バッファ204−1は、現フレームの量子化予測残差ベクトルxnを1フレームの間保持し、コードベクトル復号部203、バッファ204−2、および増幅器205−2に出力する。これらに入力される量子化予測残差ベクトルは、バッファ204−1で1フレームの間保持された結果、1フレーム前の量子化予測残差ベクトルxn-1となる。同様に、バッファ204−i(iは2からM−1)は、それぞれ、量子化予測残差ベクトルxn-j+1を1フレームの間保持し、コードベクトル復号部203、バッファ204−(i+1)、および増幅器205−(i+1)に出力する。バッファ204−Mは、量子化予測残差ベクトルxn-M+1を1フレームの間保持し、コードベクトル復号部203および増幅器205−(M+1)に出力する。
【0033】
増幅器205−1は、量子化予測残差ベクトルxnに所定のMA予測係数α0を乗じて加算器206に出力する。同様に、増幅器205−j(jは2からM+1)は、量子化予測残差ベクトルxn-j+1に所定のMA予測係数αj-1を乗じて加算器206に出力する。なお、MA予測係数のセットは一種類の固定値であっても良いが、ITU−T勧告G.729では2種類のセットが用意されており、どちらのセットを用いて復号を行うかは符号器側で決定され、LPC符号Lnの情報の一部として符号化され、伝送される。この場合、LPC復号部105は、MA予測係数のセットをテーブルとして備えており、符号器側で指定されたセットを図2中のα0〜αMとして用いる構成となる。
【0034】
加算器206は、各増幅器205−1〜205−(M+1)から出力されたMA予測係数乗算後の量子化予測残差ベクトルの総和を計算し、計算結果である復号LSFベクトルynをバッファ207およびLPC変換部208に出力する。
【0035】
バッファ207は、復号LSFベクトルynを1フレームの間保持し、コードベクトル復号部203に出力する。この結果、バッファ207からコードベクトル復号部203に出力される復号LSFベクトルは、1フレーム前の復号LSFベクトルyn-1となる。
【0036】
LPC変換部208は、復号LSFベクトルynを線形予測係数(復号LPCパラメータ)に変換し、選択器209に出力する。
【0037】
選択器209は、現フレームのフレーム消失符号Bnおよび次フレームのフレーム消失符号Bn+1に基づいてLPC変換部208から出力された復号LPCパラメータあるいはバッファ210から出力された前フレームにおける復号LPCパラメータのいずれかを選択する。具体的には、現フレームのフレーム消失符号Bnが「第nフレームは正常フレームである」ことを示している場合、あるいは、次フレームのフレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示している場合にはLPC変換部208から出力された復号LPCパラメータを選択し、現フレームのフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示している場合、かつ、次フレームのフレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示している場合にはバッファ210から出力された前フレームにおける復号LPCパラメータを選択する。そして、選択器209は、選択結果を最終的な復号LPCパラメータとしてLPC合成部109およびバッファ210に出力する。なお、選択器209がバッファ210から出力された前フレームにおける復号LPCパラメータを選択する場合、実際にはコードベクトル復号部203からLPC変換部208までの処理を全て行う必要はなく、バッファ204−1〜204−Mの内容を更新する処理だけを行えばよい。
【0038】
バッファ210は、選択器209から出力された復号LPCパラメータを1フレームの間保持し、選択器209に出力する。この結果、バッファ210から選択器209に出力される復号LPCパラメータは、1フレーム前の復号LPCパラメータとなる。
【0039】
次に、図2中のコードベクトル復号部203の内部構成について、図3のブロック図を用いて詳細に説明する。
【0040】
コードブック301は、現フレームのLPC符号Lnによって特定されるコードベクトルを生成して切替スイッチ309へ出力するとともに、次フレームのLPC符号Ln+1によって特定されるコードベクトルを生成して増幅器307に出力する。なお、既に述べたように、ITU−T勧告G.729ではLPC符号LnにMA予測係数セットを特定する情報も含まれており、この場合、LPC符号Lnはコードベクトルの復号のほかにMA予測係数の復号にも使用されるが、ここでは説明を省略する。また、コードブックは多段構成であったり、スプリット構成であったりする。例えばITU−T勧告G.729では2段構成で、2段目が2つに分割(スプリット)された符号帳構成である。また、多段構成や分割構成のコードブックから出力されるベクトルは、通常そのまま用いられずに次数間の間隔が極端に狭かったり、順序が逆転しているような場合は最小間隔を特定値になることを保証したり、順序性を保ったりする処理が一般的に行われる。
【0041】
過去Mフレームの量子化予測残差ベクトルxn-1〜xn-Mは、対応する増幅器302−1〜302−M、および、対応する増幅器305−1〜305−Mにそれぞれ入力される。
【0042】
増幅器302−1〜302−Mは、それぞれ、入力した量子化予測残差ベクトルxn-1〜xn-MにMA予測係数α1〜αMを乗算し、加算器303に出力する。なお、前述したように、ITU−T勧告G.729の場合、MA予測係数のセットが2種類あり、どちらを用いるのかという情報はLPC符号Lnに含まれている。また、これら乗算が行われる消失フレームでは、LPC符号Lnが消失しているため、実際には前フレームで使用したMA予測係数セットが用いられる。すなわち、前フレームのLPC符号Ln−1から復号されたMA予測係数セット情報を用いる。また、前フレームも消失フレームである場合はさらにその前のフレームの情報を用いる。
【0043】
加算器303は、増幅器302−1〜302−Mから出力されたMA予測係数乗算後の各量子化予測残差ベクトルの総和を計算し、計算結果であるベクトルを加算器304に出力する。加算器304は、バッファ207から出力された前フレームの復号LSFベクトルyn-1から、加算器303から出力されたベクトルを減算し、計算結果であるベクトルを切替スイッチ309に出力する。
【0044】
加算器303から出力されるベクトルは現フレームにおいてMA型予測器によって予測された予測LSFベクトルであり、加算器304は前フレームの復号LSFベクトルが生成されるために必要な現フレームにおける量子化予測残差ベクトルを求める処理を行っている。すなわち、増幅器302−1〜302−M、加算器303および加算器304では、前フレームの復号LSFベクトルyn-1が現フレームの復号LSFベクトルynとなるようにベクトルを計算している。
【0045】
増幅器305−1〜305−Mは、それぞれ、入力した量子化予測残差ベクトルxn-1〜xn-Mに重み付け係数β1〜βMを乗算し、加算器308に出力する。増幅器306は、バッファ207から出力された前フレームの復号LSFベクトルyn-1に重み付け係数β-1を乗算し、加算器308に出力する。増幅器307は、コードブック301から出力されたコードベクトルxn+1に重み付け係数β0を乗算し、加算器308に出力する。
【0046】
加算器308は、増幅器305−1〜305−M、増幅器306および増幅器307から出力されたベクトルの総和を計算し、計算結果であるコードベクトルを切替スイッチ309に出力する。すなわち、加算器308は、次フレームのLPC符号Ln+1によって特定されるコードベクトル、前フレームの復号LSFベクトル、および過去Mフレームの量子化予測残差ベクトルを重み付け加算することによりベクトルを計算している。
【0047】
切替スイッチ309は、現フレームのフレーム消失符号Bnが「第nフレームは正常フレームである」ことを示す場合にはコードブック301から出力されたコードベクトルを選択し、これを現フレームの量子化予測残差ベクトルxnとして出力する。一方、切替スイッチ309は、現フレームのフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示す場合には、次フレームのフレーム消失符号Bn+1がどちらの情報を有しているかによって、出力するベクトルをさらに選択する。
【0048】
すなわち、次フレームのフレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示す場合には、切替スイッチ309は、加算器304から出力されたベクトルを選択し、これを現フレームの量子化予測残差ベクトルxnとして出力する。なお、この場合、コードブック301および増幅器305−1〜305−Mから加算器308までのベクトルを生成する過程の処理は行う必要がない。
【0049】
また、次フレームのフレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示す場合には、切替スイッチ309は、加算器308から出力されたベクトルを選択し、これを現フレームの量子化予測残差ベクトルxnとして出力する。なお、この場合、増幅器302−1〜302−Mから加算器304までのベクトルを生成する過程の処理は行う必要がない。
【0050】
このように、本実施の形態によれば、現フレームが消失した場合に、次のフレームが正常に受信されていれば、過去に復号されたパラメータ、過去に受信されたフレームの量子化予測残差および未来のフレームの量子化予測残差を利用した補償処理専用の重み付け加算処理(重み付け線形和)によって現フレームのLSFパラメータの復号量子化予測残差の補償処理を行い、補償した量子化予測残差を用いてLSFパラメータの復号を行う。これにより、過去の復号LSFパラメータを繰り返し利用するよりも高い補償性能を実現することができる。
【0051】
以下、本実施の形態の補償処理を行った結果について、図4から図7を用いて、従来技術と比較する形で具体例を挙げて説明する。なお、図4から図7において、○は復号量子化予測残差を、●は補償処理により得られた復号量子化予測残差を、◇は復号パラメータを、◆は補償処理により得られた復号パラメータを、それぞれ示す。
【0052】
図4は、消失フレームがない場合に通常の処理を行った結果の一例を示す図であり、復号量子化予測残差から以下の式(1)により第nフレームの復号パラメータynを求めたものである。なお、式(1)において、cnは、第nフレームの復号量子化予測残差である。
yn=0.6cn+0.3cn-1+0.1cn-2 ・・・(1)
【0053】
図5は、本実施の形態の補償処理を行った結果の一例を示す図であり、図6および図7は、従来の補償処理を行った結果の一例を示す図である。図5、図6、図7において、第nフレームが消失し、その他のフレームは正常フレームであるとする。
【0054】
図5に示す本実施の形態の補償処理は、復号パラメータのフレーム間の変動が緩やかになるように、第n−1フレームの復号パラメータyn-1と第nフレームの復号パラメータynの距離、および、第nフレームの復号パラメータynと第n+1フレームの復号パラメータyn+1の距離の和D(Dは以下の式(2)で定義される)を最小とするように、以下の式(3)を用いて消失した第nフレームの復号量子化予測残差cnを求める。
【数1】
【数2】
【0055】
そして、本実施の形態の補償処理は、式(3)で求められた復号量子化予測残差cnを用いて、上記式(1)により、消失した第nフレームの復号パラメータynを求める。この結果、図4と図5の比較から明らかなように、本実施の形態の補償処理により得られた復号パラメータynは、消失フレームがない場合において通常の処理により得られたものとほぼ同じ値となる。
【0056】
これに対し、図6に示す従来の補償処理は、第nフレームが消失した場合、第n−1フレームの復号パラメータyn-1をそのまま第nフレームの復号パラメータynとして使用する。また、図6に示す従来の補償処理では、上記式(1)の逆算により、第nフレームの復号量子化予測残差cnを求める。
【0057】
この場合、復号量子化予測残差の変動に伴う復号パラメータの変動を考慮していないため、図4と図6の比較から明らかなように、図6の従来の補償処理により得られた復号パラメータynは、消失フレームがない場合において通常の処理により得られたものと値が大きく異なってしまう。また、第nフレームの復号量子化予測残差cnも異なるため、図6の従来の補償処理により得られた第n+1フレームの復号パラメータyn+1も、消失フレームがない場合において通常の処理により得られたものと値が異なってしまう。
【0058】
また、図7に示す従来の補償処理は、復号量子化予測残差を内挿補間により求めるものであり、第nフレームが消失した場合、第n−1フレームの復号量子化予測残差cn-1と第n+1フレームの復号量子化予測残差cn+1の平均値を第nフレームの復号量子化予測残差cnとして使用する。
【0059】
そして、図7に示す従来の補償処理は、内挿補間により求められた復号量子化予測残差cnを用いて、上記式(1)により、消失した第nフレームの復号パラメータynを求める。
【0060】
この結果、図4と図7の比較から明らかなように、図7の従来の補償処理により得られた復号パラメータynは、消失フレームがない場合において通常の処理により得られたものと値が大きく異なってしまう。これは、復号量子化予測残差は大きく変動しても復号パラメータは重み付け移動平均によりフレーム間で緩やかに変動するのに対し、この従来の補償処理では、復号量子化予測残差の変動に伴って復号パラメータも変動してしまうためである。また、第nフレームの復号量子化予測残差cnも異なるため、図7の従来の補償処理により得られた第n+1フレームの復号パラメータyn+1も、消失フレームがない場合において通常の処理により得られたものと値が異なってしまう。
【0061】
(実施の形態2)
図8は、本発明の実施の形態2に係る音声復号装置の主要な構成を示すブロック図である。図8に示す音声復号装置100は、図1と比較して、LPC復号部105に入力されるパラメータとして補償モード情報En+1がさらに追加されている点のみが異なる。
【0062】
図9は、図8中のLPC復号部105の内部構成を示すブロック図である。図9に示すLPC復号部105は、図2と比較して、コードベクトル復号部203に入力されるパラメータとして補償モード情報En+1がさらに追加されている点のみが異なる。
【0063】
図10は、図9中のコードベクトル復号部203の内部構成を示すブロック図である。図10に示すコードベクトル復号部203は、図3と比較して、係数復号部401がさらに追加されている点のみが異なる。
【0064】
係数復号部401は、重み付け係数(β-1〜βM)のセット(以下、「係数セット」という)を複数種類格納し、入力した補償モードEn+1に応じて、係数セットの中から1つの重み付け係数のセットを選択し、増幅器305−1〜305−M、306、307に出力する。
【0065】
このように、本実施の形態によれば、実施の形態1で説明した特徴に加えて、補償処理を行うための重み付け加算の重み付け係数のセットを複数用意し、符号器側でどの重み付け係数セットを用いれば高い補償性能が得られるのかを確認した上で最適なセットを特定するための情報を復号器側へ伝送し、復号器側では受信した情報に基づいて、指定された重み付け係数セットを用いて補償処理を行うので、実施の形態1よりさらに高い補償性能が得ることができる。
【0066】
(実施の形態3)
図11は、本発明の実施の形態3に係る音声復号装置の主要な構成を示すブロック図である。図11に示す音声復号装置100は、図8と比較して、LPC復号部105に入力されるLPC符号Ln+1を2種類の符号Vn+1、Kn+1に分離する分離部501がさらに追加されている点のみが異なる。符号Vはコードベクトルを生成するための符号であり、符号KはMA予測係数符号である。
【0067】
図12は、図11中のLPC復号部105の内部構成を示すブロック図である。コードベクトルを生成する符号Vn、Vn+1は、LPC符号Ln、Ln+1と同じように用いられるので、説明を省略する。図12に示すLPC復号部105は、図9と比較して、バッファ601および係数復号部602がさらに追加され、コードベクトル復号部203に入力されるパラメータとしてMA予測係数符号Kn+1がさらに追加されている点のみが異なる。
【0068】
バッファ601は、MA予測係数符号Kn+1を1フレームの間保持し、係数復号部602に出力する。この結果、バッファ601から係数復号部602に出力されるMA予測係数符号は、1フレーム前のMA予測係数符号Knとなる。
【0069】
係数復号部602は、係数セットを複数種類格納し、フレーム消失符号Bn、Bn+1、補償モードEn+1およびMA予測係数符号Knによって係数セットを特定し、増幅器205−1〜205−(M+1)に出力する。ここで、係数復号部602における係数セットの特定の仕方は以下の3通りである。
【0070】
入力したフレーム消失符号Bnが「第nフレームは正常フレームである」ことを示す場合、係数復号部602は、MA予測係数符号Knで指定される係数セットを選択する。
【0071】
また、入力したフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示し、フレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示す場合、係数復号部602は、第n+1フレームのパラメータとして受信されている補償モードEn+1を用いて、選択対象となる係数セットを決定する。例えば、補償モード符号En+1が補償フレームである第nフレームで使用すべきMA予測係数のモードを示すように予め決めておけば、補償モード符号En+1をそのままMA予測係数符号Knの代わりとして使用することができる。
【0072】
また、入力したフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示し、かつ、フレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示す場合、利用できる情報は前フレームで使用した係数セットの情報のみであるので、係数復号部602は、前フレームで使用した係数セットを繰り返し使用するようにする。もしくは予め決めておいたモードの係数セットを固定的に使用するようにしても良い。
【0073】
図13は、図12中のコードベクトル復号部203の内部構成を示すブロック図である。図13に示すコードベクトル復号部203は、図10と比較して、係数復号部401が、補償モードEn+1およびMA予測係数符号Kn+1の両方を用いて係数セットを選択する点が異なる。
【0074】
図13において、係数復号部401は、複数の重み付け係数セットを備えており、重み付け係数セットは次フレームで使用されるMA予測係数に応じて用意されている。例えば、MA予測係数のセットが2種類の場合であって、一方をモード0、他方をモード1とすると、次フレームのMA予測係数のセットがモード0の場合の専用の重み付け係数セット群と次フレームのMA予測係数のセットがモード1の場合の専用の重み付け係数セット群とから構成される。
【0075】
この場合、係数復号部401は、MA予測係数符号Kn+1によって、上記どちらかの重み付け係数セット群を決定し、入力した補償モードEn+1に応じて係数セットの中から1つの重み付け係数のセットを選択し、増幅器305−1〜305−M、306、307に出力する。
【0076】
以下、重み付け係数β-1〜βMの決め方の一例を示す。既に述べたように、第nフレームが消失し、第n+1フレームを受信している場合、第n+1フレームにおける量子化予測残差を正しく復号できても最終的な復号パラメータは両フレームにおいて未知である。このため、何らかの仮定(拘束条件)を設定しないと両フレームの復号パラメータは一意に決まらない。そこで、既に復号済みの第n−1フレームの復号パラメータから、第nフレームおよび第n+1フレームの復号パラメータがなるべく離れないように、第nフレームにおける復号パラメータと第n−1フレームにおける復号パラメータとの距離と、第n+1フレームにおける復号パラメータと第nフレームにおける復号パラメータとの距離との和であるD(j)を最小とするように、以下の式(4)により量子化予測残差ynを求める。
【数3】
【0077】
パラメータがLSFである場合は、式(4)におけるxn(j)、yn(j)、αi(j)、α’i(j)、は以下の通りである。
xn(j):第nフレームにおけるLSFパラメータの第j成分の量子化予測残差
yn(j):第nフレームにおける復号LSFパラメータの第j成分
αi(j):第nフレームにおけるMA予測係数セットのうちの第i次成分の第j成分
α’i(j):第n+1フレームにおけるMA予測係数セットのうちの第i次成分の第j成分
M:MA予測次数
【0078】
ここで、D(j)をxn(j)で偏微分して0と置いて得られる式をxn(j)について解くと、xn(j)は、以下の式(5)の形で表される。
【数4】
【0079】
なお、式(5)において、βi(j)は重み付け係数であり、αi(j)とα’i(j)で表される。つまり、MA予測係数のセットが1種類しかない場合は、重み付け係数βi(j)のセットも1種類しかないが、MA予測係数セットが複数種類ある場合は、αi(j)とα’i(j)の組み合わせによって複数種類の重み付け係数のセットが得られる。
【0080】
例えば、ITU−T勧告G.729の場合は、MA予測係数のセットが2種類あるので、これらをモード0およびモード1のセットとすると、第nフレームおよび第n+1フレームの双方ともモード0の場合、第nフレームはモード0で第n+1フレームはモード1の場合、第nフレームはモード1で第n+1フレームはモード0の場合、第nフレームおよび第n+1フレームの双方ともモード1の場合、の4種類のセットが考えられる。これら4種類のセットのいずれの重み付け係数セットを用いるかの決め方はいくつか考えられる。
【0081】
第1の方法は、4種類の全てのセットを用いて符号器側で第nフレームの復号LSFと第n+1フレームの復号LSFを生成し、生成された第nフレームの復号LSFと入力信号を分析して得られた未量子化LSFとのユークリッド距離を算出し、生成された第n+1フレームの復号LSFと入力信号を分析して得られた未量子化LSFとのユークリッド距離を算出し、これらのユークリッド距離の総和を最小とする重み付け係数βのセットを1つ選び、選ばれたセットを2ビットで符号化して復号器に伝送する方法である。この場合、ITU−T勧告G.729の符号化情報に追加して、1フレーム辺り2ビットが係数セットβの符号化に必要となる。なお、ユークリッド距離の代わりに、ITU−T勧告G.729のLSF量子化で用いられているように、重み付きユークリッド距離を採用すると聴覚的にさらに良い品質となりうる。
【0082】
第2の方法は、第n+1フレームのMA予測係数モード情報を利用して、1フレーム辺りの追加ビット数を1ビットにする方法である。復号器側で、第n+1フレームのMA予測係数のモード情報が分かっているので、αi(j)とα’i(j)の組み合わせは2通りに限定される。すなわち、第n+1フレームのMA予測モードがモード0である場合は、第nフレームと第n+1フレームのMA予測モードの組み合わせは(0−0)か(1−0)のいずれかであるので重み付け係数βのセットは2種類に限定することができる。符号器側ではこの2種類の重み付け係数βのセットを用いて上記第1の方法と同様にして未量子化LSFとの誤差が小さいほうを一つ選択して符号化し、復号器に伝送すればよい。
【0083】
第3の方法は、選択情報を全く送らない方法であり、使用する重み付け係数のセットはMA予測モードの組み合わせが(0−0)か(1−1)かの2種類のみとし、第n+1フレームでのMA予測係数のモードが0の場合は前者を、1の場合は後者を選択するようにする方法である。あるいは、(0−0)か(0−1)のように、消失フレームのモードを特定のモードに固定する方法でも良い。
【0084】
その他にも、入力信号が定常的であると判断できるフレームでは、従来法のように第n−1フレームと第nフレームとの復号パラメータが等しくなるようにする方法や、第n+1フレームと第nフレームの復号パラメータが等しくなるという仮定の下で求められる重み付け係数βのセットを使用する方法も考えられる。
【0085】
定常性の判定には、第n−1フレームと第n+1フレームのピッチ周期情報や、MA予測係数のモード情報などを利用することができる。すなわち、第n−1フレームと第n+1フレームとで復号されるピッチ周期の差が小さいときには定常であると判定する方法や、第n+1フレームで復号されるMA予測係数のモード情報が定常的なフレームを符号化するのに適したモード(すなわち高い次数のMA予測係数もある程度大きな重みを有しているモード)が選択されている場合は定常であると判定する方法が考えられる。
【0086】
このように、本実施の形態では、実施の形態2に加えて、MA予測係数のモードが2種類あるので、定常的な区間とそうでない区間とで異なるMA予測係数のセットを用いることができ、LSF量子化器の性能をより高めることができる。
【0087】
また、式(4)を最小とする式(5)の重み付け係数セットを用いることにより、消失フレームおよび消失フレームの次のフレームである正常フレームでの復号LSFパラメータが、消失フレームの前フレームのLSFパラメータから大きく逸脱した値にならないことが保証される。このため、次のフレームの復号LSFパラメータが未知であっても、次のフレームの受信情報(量子化予測残差)を有効に利用しつつ、誤った方向へ補償してしまう場合のリスク、すなわち正しい復号LSFパラメータから大きく逸脱してしまうリスクを最低限に抑えることができる。
【0088】
また、補償モードの選択方法として上記第2の方法を利用すれば、補償処理用の重み付け係数セットを特定する情報の一部としてMA予測係数のモード情報を利用することができるので、追加伝送する補償処理用の重み付け係数セットの情報を少なくすることもできる。
【0089】
(実施の形態4)
図14は、図1中の利得復号部104の内部構成を示すブロック図である(図8、図11の利得復号部104も同様)。本実施の形態では、ITU−T勧告G.729の場合と同様に、利得の復号はサブフレームに1回行われ、1フレームは2サブフレームより成るものとして、図14ではnをフレーム番号、mをサブフレーム番号とし(第nフレームにおける第1サブフレームおよび第2サブフレームのサブフレーム番号をmおよびm+1とする)、第nフレームの2サブフレーム分の利得符号(Gm、Gm+1)を順次復号するものとして図示した。
【0090】
図14において、利得復号部104には、第n+1フレームの利得符号Gn+1が多重分離部101より入力される。利得符号Gn+1は分離部700に入力され、第n+1フレームの第1サブフレームの利得符号Gm+2と第2サブフレームの利得符号Gm+3に分離される。なお、利得符号Gm+2とGm+3への分離は、多重分離部101で行われても良い。
【0091】
利得復号部104では、入力されたGn、Gn+1から生成されたGm、Gm+1、Gm+2、Gm+3を用いてサブフレームmの復号利得とサブフレームm+1の復号利得を順番に復号する。
【0092】
以下、図14において、利得符号Gmを復号する際の利得復号部104の各部の動作について説明する。
【0093】
利得符号Gm+2は、バッファ701および予測残差復号部704に入力され、フレーム消失符号Bn+1は、バッファ703、予測残差復号部704および選択器713に入力される。
【0094】
バッファ701は、入力される利得符号を1フレームの間保持し、予測残差復号部704に出力するので、予測残差復号部704に出力される利得符号は1フレーム前の利得符号となる。すなわち、バッファ701に入力される利得符号がGm+2の場合、出力される利得符号はGmである。バッファ702も701と同様の処理を行う。すなわち、入力される利得符号を1フレームの間保持して、予測残差復号部704へ出力する。バッファ701の入出力は第1サブフレームの利得符号であり、バッファ702の入出力は第2サブフレームの利得符号であるという点のみが異なる。
【0095】
バッファ703は、次フレームのフレーム消失符号Bn+1を1フレームの間保持し、予測残差復号部704、選択器713およびFCベクトルエネルギ算出部708に出力する。バッファ703から予測残差復号部704、選択器713およびFCベクトルエネルギ算出部708に出力されるフレーム消失符号は、入力されているフレームより1フレーム前のフレーム消失符号となるので、現フレームのフレーム消失符号Bnである。
【0096】
予測残差復号部704は、過去Mサブフレームの対数量子化予測残差(MA予測残差を量子化したものの対数をとったもの)xm-1〜xm-M、1サブフレーム前の復号エネルギ(対数復号利得)em-1、予測残差バイアス利得eB、次フレームの利得符号Gm+2およびGm+3、次フレームのフレーム消失符号Bn+1、現フレームの利得符号GmおよびGm+1および現フレームのフレーム消失符号Bnを入力し、これらの情報に基づいて現サブフレームの量子化予測残差を生成し、対数演算部705および乗算部712に出力する。なお、予測残差復号部704の詳細については後述する。
【0097】
対数演算部705は、予測残差復号部704から出力された量子化予測残差の対数(ITU−T勧告G.729では20×log10(x)、xは入力)xmを計算し、バッファ706−1に出力する。
【0098】
バッファ706−1は、対数演算部705から対数量子化予測残差xmを入力し、1サブフレームの間保持し、予測残差復号部704、バッファ706−2および増幅器707−1に出力する。すなわち、これらに入力される対数量子化予測残差は、1サブフレーム前の対数量子化予測残差xm-1となる。同様に、バッファ706−i(iは2からM−1)は、それぞれ、入力した対数量子化予測残差xm-iを1サブフレームの間保持し、予測残差復号部704、バッファ706−(i+1)および増幅器707−iに出力する。バッファ706−Mは、入力した対数量子化予測残差xm-M-1を1サブフレームの間保持し、予測残差復号部704および増幅器707−Mに出力する。
【0099】
増幅器707−1は、対数量子化予測残差xm-1に所定のMA予測係数α1を乗じて加算器710に出力する。同様に、増幅器707−j(jは2からM)は、対数量子化予測残差xm-jに所定のMA予測係数αjを乗じて加算器710に出力する。なお、MA予測係数のセットは、ITU−T勧告G.729では一種類の固定値であるが、複数種類のセットが用意されていて適切なものを選択する構成であっても良い。
【0100】
FCベクトルエネルギ算出部708は、現フレームのフレーム消失符号Bnが、「第nフレームは正常フレームである」ことを示す場合、別途復号されたFC(固定符号帳)ベクトルのエネルギを算出し、算出結果を平均エネルギ加算部709に出力する。また、FCベクトルエネルギ算出部708は、現フレームのフレーム消失符号Bnが、「現フレームが消失フレームである」ことを示す場合、前サブフレームでのFCベクトルのエネルギを平均エネルギ加算部709に出力する。
【0101】
平均エネルギ加算部709は、FCベクトルエネルギ算出部708から出力されたFCベクトルのエネルギを平均エネルギから減算して、減算結果である予測残差バイアス利得eBを予測残差復号部704および加算器710に出力する。なお、ここでは平均エネルギは、予め設定された定数とする。また、エネルギの加減算は対数領域で行う。
【0102】
加算器710は、増幅器707−1〜707−Mから出力されたMA予測係数乗算後の対数量子化予測残差と平均エネルギ加算部709から出力された予測残差バイアス利得eBとの総和を計算し、計算結果である対数予測利得をべき乗演算部711に出力する。
【0103】
べき乗演算部711は、加算器710から出力された対数予測利得のべき乗(10x、xは入力)を計算し、計算結果である予測利得を乗算器712に出力する。
【0104】
乗算器712は、べき乗演算部711から出力された予測利得に、予測残差復号部704から出力された量子化予測残差を乗算し、乗算結果である復号利得を選択器713に出力する。
【0105】
選択器713は、現フレームのフレーム消失符号Bnおよび次フレームのフレーム消失符号Bn+1に基づいて乗算器712から出力された復号利得あるいは増幅器715から出力された減衰後の前フレームの復号利得のいずれかを選択する。具体的には、現フレームのフレーム消失符号Bnが「第nフレームは正常フレームである」ことを示している場合、あるいは、次フレームのフレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示している場合には乗算器712から出力された復号利得を選択し、現フレームのフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示していて、かつ、次フレームのフレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示している場合には、増幅器715から出力された減衰後の前フレームの復号利得を選択する。そして、選択器713は、選択結果を最終的な復号利得として増幅器106、107、バッファ714および対数演算部716に出力する。なお、選択器713が増幅器715から出力された減衰後の前フレーム復号利得を選択する場合、実際には予測残差復号部704から乗算器712までの処理を全て行う必要はなく、バッファ706−1〜706−Mの内容を更新する処理だけを行えばよい。
【0106】
バッファ714は、選択器713から出力された復号利得を1サブフレームの間保持し、増幅器715に出力する。この結果、バッファ714から増幅器715に出力される復号利得は、1サブフレーム前の復号利得となる。増幅器715は、バッファ714から出力された1サブフレーム前の復号利得に所定の減衰係数を乗じて選択器713に出力する。この所定の減衰係数の値は、例えばITU−T勧告G.729では0.98であるが、これはコーデックに最適な値を適宜設計したものとすればよく、消失したフレームが有声フレームか無声フレームかなど消失フレームにおける信号の特徴によって値を変化させても良い。
【0107】
対数演算部716は、選択器713から出力された復号利得の対数(ITU−T勧告G.729では20×log10(x)、xは入力)emを計算し、バッファ717に出力する。バッファ717は、対数演算部716から対数復号利得emを入力し、1サブフレームの間保持し、予測残差復号部704に出力する。すなわち、予測残差復号部704に入力される対数復号利得は、1サブフレーム前の対数復号利得em-1となる。
【0108】
図15は、図14中の予測残差復号部704の内部構成を示すブロック図である。図15において、利得符号Gm、Gm+1、Gm+2、Gm+3はコードブック801に入力され、フレーム消失符号Bn、Bn+1は切替スイッチ812に入力され、過去Mサブフレームの対数量子化予測残差xm-1〜xm-Mは加算器802に入力され、1サブフレーム前の対数復号利得em-1および予測残差バイアス利得eBはサブフレーム量子化予測残差生成部807およびサブフレーム量子化予測残差生成部808に入力される。
【0109】
コードブック801は、入力された利得符号Gm、Gm+1、Gm+2、Gm+3から対応する量子化予測残差を復号し、利得符号Gm、Gm+1に対応する量子化予測残差を切替スイッチ813を介して切替スイッチ812に出力し、利得符号Gm+2、Gm+3に対応する量子化予測残差を対数演算部806に出力する。
【0110】
切替スイッチ813は、利得符号GmおよびGm+1から復号された量子化予測残差のいずれかを選択して切替スイッチ812に出力する。具体的には、第1サブフレームの利得復号処理を行う場合には利得符号Gmから復号された量子化予測残差を選択し、第2サブフレームの利得復号処理を行う場合には利得符号Gm+1から復号された量子化予測残差を選択する。
【0111】
加算器802は、過去Mサブフレームの対数量子化予測残差xm-1〜xm-Mの総和を計算し、計算結果を増幅器803に出力する。増幅器803は、加算器802の出力値を1/M倍することにより平均値を算出し、算出結果を4dB減衰部804に出力する。
【0112】
4dB減衰部804は、増幅器803の出力値を4dB下げてべき乗演算部805に出力する。この4dBの減衰は、フレーム消失から復帰したフレーム(サブフレーム)において、予測器が過大な予測値を出力しないようにするためのものであるので、そのような必要が生じない構成例では減衰器は必ずしも必要ではない。また、減衰量の4dBも最適値を自由に設計可能である。
【0113】
べき乗演算部805は、4dB減衰部804の出力値のべき乗を計算し、計算結果である補償予測残差を切替スイッチ812に出力する。
【0114】
対数演算部806は、コードブック801から出力された2つの量子化予測残差(利得符号Gm+2およびGm+3から復号したもの)の対数を計算し、計算結果である対数量子化予測残差xm+2、xm+3をサブフレーム量子化予測残差生成部807およびサブフレーム量子化予測残差生成部808に出力する。
【0115】
サブフレーム量子化予測残差生成部807は、対数量子化予測残差xm+2、xm+3、過去Mサブフレームの対数量子化予測残差xm-1〜xm-M、1サブフレーム前の復号エネルギem-1および予測残差バイアス利得eBを入力し、これらの情報に基づいて第1サブフレームの対数量子化予測残差を算出し、切替スイッチ810に出力する。同様に、サブフレーム量子化予測残差生成部808は、対数量子化予測残差xm+2、xm+3、過去Mサブフレームの対数量子化予測残差xm-1〜xm-M、1サブフレーム前の復号エネルギem-1および予測残差バイアス利得eBを入力し、これらの情報に基づいて第2サブフレームの対数量子化予測残差を算出し、バッファ809に出力する。なお、サブフレーム量子化予測残差生成部807、808の詳細については後述する。
【0116】
バッファ809は、サブフレーム量子化予測残差生成部808から出力された第2サブフレームの対数予測残差を1サブフレームの間保持し、第2サブフレームの処理が行われるときに切替スイッチ810に出力する。なお、第2サブフレームの処理時には、予測残差復号部704の外部にてxm-1〜xm-M、em-1、eBが更新されるが、サブフレーム量子化予測残差生成部807およびサブフレーム量子化予測残差生成部808のいずれにおいても何の処理も行われず、全ての処理は第1サブフレームの処理時に行われる。
【0117】
切替スイッチ810は、第1サブフレーム処理時には、サブフレーム量子化予測残差生成部807に接続され、生成された第1サブフレームの対数量子化予測残差をべき乗演算部811に出力し、第2サブフレーム処理時には、バッファ809に接続され、第2サブフレーム量子化残差生成部808で生成された第2サブフレームの対数量子化予測残差をべき乗演算部811に出力する。べき乗演算部811は、切替スイッチ810から出力された対数量子化残差をべき乗し、計算結果である補償予測残差を切替スイッチ812に出力する。
【0118】
切替スイッチ812は、現フレームのフレーム消失符号Bnが「第nフレームは正常フレームである」ことを示す場合には切替スイッチ813を介してコードブック801から出力された量子化予測残差を選択する。一方、切替スイッチ812は、現フレームのフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示す場合には、次フレームのフレーム消失符号Bn+1がどちらの情報を有しているかによって、出力する補償予測算差をさらに選択する。
【0119】
すなわち、切替スイッチ812は、次フレームのフレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示す場合には、べき乗演算部805から出力された補償予測残差を選択し、次フレームのフレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示す場合には、べき乗演算部811から出力された補償予測残差を選択する。なお、選択される端子以外の端子に入力されるデータは必要ないので、実際の処理においてはまず切替スイッチ812においてどの端子を選択するのかを決定し、決定された端子に出力される信号を生成するための処理を行うのが一般的である。
【0120】
図16は、図15中のサブフレーム量子化予測残差生成部807の内部構成を示すブロック図である。なお、サブフレーム量子化予測残差生成部808の内部構成も図16と同一であり、重み付け係数の値のみがサブフレーム量子化予測残差生成部807と異なるのみである。
【0121】
増幅器901−1〜901−Mは、それぞれ、入力した対数量子化予測残差xm-1〜xm-Mに重み付け係数β1〜βMを乗算し、加算器906に出力する。増幅器902は、前サブフレームにおける対数利得em-1に重み付け係数β-1を乗算し、加算器906に出力する。増幅器903は、対数バイアス利得eBに重み付け係数βBを乗算し、加算器906に出力する。増幅器904は、対数量子化予測残差xm+2に重み付け係数β00を乗算し、加算器906に出力する。増幅器905は、対数量子化予測残差xm+3に重み付け係数β01を乗算し、加算器906に出力する。
【0122】
加算器906は、増幅器901−1〜901−M、増幅器902、増幅器903、増幅器904および増幅器905から出力された対数量子化予測残差の総和を計算し、計算結果を切替スイッチ810に出力する。
【0123】
以下、本実施の形態における重み付け係数βのセットの決め方の一例を示す。既に述べたように、ITU−T勧告G.729の場合、利得量子化はサブフレーム処理であり、1フレームは2サブフレームから構成されているため、1フレームの消失は2サブフレーム連続のバースト消失となる。したがって、実施の形態3で示した方法では重み付け係数βのセットを決定することができない。そこで、本実施の形態では、以下の式(6)のDを最小とするxmとxm+1を求める。
【数5】
【0124】
ここではITU−T勧告G.729のように1フレームが2サブフレームで構成されていて、MA予測係数が1種類のみの場合を例として説明する。式(6)において、ym-1、ym、ym+1、ym+2、ym+3、xm、xm+1、xm+2、xm+3、xB、αiは以下の通りである。
ym-1:前フレームの第2サブフレームの復号対数利得
ym:現フレームの第1サブフレームの復号対数利得
ym+1:現フレームの第2サブフレームの復号対数利得
ym+2:次フレームの第1サブフレームの復号対数利得
ym+3:次フレームの第2サブフレームの復号対数利得
xm:現フレームの第1サブフレームの対数量子化予測残差
xm+1:現フレームの第2サブフレームの対数量子化予測残差
xm+2:次フレームの第1サブフレームの対数量子化予測残差
xm+3:次フレームの第2サブフレームの対数量子化予測残差
xB:対数バイアス利得
αi:第i次のMA予測係数
【0125】
式(6)をxmについて偏微分して0とおいて得られる式と、式(6)をxm+1について偏微分して0とおいて得られる式と、を連立方程式としてxmおよびxm+1について解くと、式(7)および式(8)が得られる。重み付け係数β00、β01、β1〜βM、β-1、βB、β'00、β'01、β'1〜β'M、β'-1、β'B、はα0〜αMから求められるので、一意に決まる。
【数6】
【数7】
【0126】
このように、次のフレームが正常に受信されている場合、過去に受信した対数量子化予測残差と次のフレームの対数量子化予測残差とを利用した補償処理専用の重み付け加算処理によって現在のフレームの対数量子化予測残差の補償処理を行い、補償した対数量子化予測残差を用いて利得パラメータの復号を行うので、過去の復号利得パラメータを単調減衰して利用するよりも高い補償性能を実現することができる。
【0127】
また、式(6)を最小とする式(7)および式(8)の重み付け係数セットを用いることにより、消失フレーム(2サブフレーム)および消失フレームの次のフレーム(2サブフレーム)である正常フレーム(2サブフレーム)での復号対数利得パラメータが消失フレームの前サブフレームの対数利得パラメータから大きく離れないことが保証される。このため、次のフレーム(2サブフレーム)の復号対数利得パラメータが未知であっても、次のフレーム(2サブフレーム)の受信情報(対数量子化予測残差)を有効に利用しつつ、誤った方向へ補償してしまった場合のリスク(正しい復号利得パラメータから大きく逸脱するリスク)を最低限に抑えることができる。
【0128】
(実施の形態5)
図17は、本発明の実施の形態5に係る音声符号化装置の主要な構成を示すブロック図である。図17は、実施の形態3で説明した第2の方法によって重み付け係数セットを決め、補償モード情報En+1を符号化する例、すなわち、第nフレームのMA予測係数モード情報を利用して、第n−1フレームの補償モード情報を1ビットで表現する方法を示す。
【0129】
この場合、前フレームLPC補償部1003は、現フレームの復号量子化予測残差と2フレーム前からM+1フレーム前の復号量子化予測残差の重み付け和により、図13を用いて説明したようにして第n−1フレームの補償LSFを求める。図13では第n+1フレームの符号化情報を用いて第nフレームの補償LSFを求めていたのに対して、ここでは第nフレームの符号化情報を用いて第n−1フレームの補償LSFを求めているので、フレーム番号が一つずれた対応関係になる。つまり、第nフレーム(=現フレーム)のMA予測係数符号によって、αi(j)とα’i(j)の組み合わせを4通りの中の2通りに限定し(すなわち、第nフレームのMA予測モードがモード0である場合は、第n−1フレームと第nフレームのMA予測モードの組み合わせは(0−0)か(1−0)のいずれかであるので重み付け係数βのセットはこの2種類に限定し)、前フレームLPC補償部1003は、この2種類の重み付け係数βのセットを用いて2種類の補償LSFω0n(j)およびω1n(j)を生成する。
【0130】
補償モード判定器1004は、ω0n(j)とω1n(j)のうちのどちらが入力LSFであるωn(j)に近いかに基づいてモードの決定を行う。ω0n(j)およびω1n(j)とωn(j)との離れ度合いは、単純なユークリッド距離に基づいても良いし、ITU−T勧告G.729のLSF量子化で用いられているような重み付けユークリッド距離に基づいても良い。
【0131】
以下、図17の音声符号化装置の各部の動作について説明する。
【0132】
入力信号snは、LPC分析部1001、ターゲットベクトル算出部1006およびフィルタ状態更新部1013にそれぞれ入力される。
【0133】
LPC分析部1001は、入力信号snに対して公知の線形予測分析を行い、線形予測係数aj(j=0〜M、Mは線形予測分析次数。a0=1.0)をインパルス応答算出部1005、ターゲットベクトル算出部1006およびLPC符号化部1002に出力する。また、LPC分析部1001は、線形予測係数ajをLSFパラメータωn(j)に変換して補償モード判定器1004に出力する。
【0134】
LPC符号化部1002は、入力したLPC(線形予測係数)の量子化・符号化を行い、量子化線形予測係数a'jをインパルス応答算出部1005、ターゲットベクトル算出部1006および合成フィルタ部1011に出力する。本例では、LPCの量子化・符号化はLSFパラメータの領域で行われる。また、LPC符号化部1002は、LPCの符号化結果Lnを多重化部1014に出力し、量子化予測残差xn、復号量子化LSFパラメータω’n(j)およびMA予測量子化モードKnを前フレームLPC補償部1003に出力する。
【0135】
前フレームLPC補償部1003は、LPC符号化部1002から出力された第nフレームの復号量子化LSFパラメータω’n(j)を2フレームの間バッファに保持する。2フレーム前の復号量子化LSFパラメータはω’n-2(j)である。また、前フレームLPC補償部1003は、第nフレームの復号量子化予測残差xnをM+1フレームの間保持する。また、前フレームLPC補償部1003は、量子化予測残差xnと2フレーム前の復号量子化LSFパラメータω’n-2(j)と2フレーム前からM+1フレーム前の復号量子化予測残差xn-2〜xn-M-1との重み付き和によって第n−1フレームの復号量子化LSFパラメータω0n (j)およびω1n (j)を生成して補償モード判定器1004に出力する。ここで、前フレームLPC補償部1003は、重み付き和を求める際の重み付け係数のセットを4種類備えているが、LPC符号化部1002から入力されたMA予測量子化モード情報Knが0か1かによって、4種類のうちの2種類を選んでω0n(j)およびω1n (j)の生成に用いる。
【0136】
補償モード判定器1004は、前フレームLPC補償部1003から出力された2種類の補償LSFパラメータω0 n(j)とω1n (j)のどちらがLPC分析部1001から出力された未量子化LSFパラメータωn(j)に近いかを判定し、近い方の補償LSFパラメータを生成する重み付け係数のセットに対応する符号Enを多重化部1014に出力する。
【0137】
インパルス応答算出部1005は、LPC分析部1001から出力された未量子化線形予測係数ajおよびLPC符号化部1002から出力された量子化線形予測係数a'jを用いて聴覚重み付け合成フィルタのインパルス応答hを生成し、ACV符号化部1007およびFCV符号化部1008に出力する。
【0138】
ターゲットベクトル算出部1006は、入力信号sn、LPC分析部1001から出力された未量子化線形予測係数aj、LPC符号化部1002から出力された量子化線形予測係数a'jおよびフィルタ状態更新部1012、1013から出力されたフィルタ状態とからターゲットベクトル(入力信号に聴覚重み付けフィルタをかけた信号から聴覚重み付け合成フィルタの零入力応答を除去した信号)oを算出し、ACV符号化部1007、利得符号化部1009およびフィルタ状態更新部1012に出力する。
【0139】
ACV符号化部1007は、ターゲットベクトル算出部1006よりターゲットベクトルoを、インパルス応答算出部1005より聴覚重み付け合成フィルタのインパルス応答hを、音源生成部1010より前フレームで生成した音源信号exをそれぞれ入力し、適応符号帳探索を行い、結果である適応符号帳符号Anを多重化部1014へ、量子化ピッチラグTをFCV符号化部1008へ、ACベクトルvを音源生成部1010へ、ACベクトルvに聴覚重み付け合成フィルタのインパルス応答hを畳み込んだフィルタ後のACベクトル成分pをフィルタ状態更新部1012および利得符号化部1009へ、固定符号帳探索用に更新したターゲットベクトルo’をFCV符号化部1008へ、それぞれ出力する。より具体的な探索方法は、ITU−T勧告G.729等に記載されているものと同様である。図17では省略しているが、開ループピッチ探索等により、閉ループピッチ探索を行う範囲を決定することで適応符号帳探索に要する演算量を抑えるのが一般的である。
【0140】
FCV符号化部1008は、ACV符号化部1007より固定符号帳用ターゲットベクトルo’および量子化ピッチラグTを、インパルス応答算出部1005より聴覚重み付け合成フィルタのインパルス応答hを、それぞれ入力し、例えばITU−T勧告G.729に記載されているような方法によって固定符号帳探索を行い、固定符号帳符号Fnを多重化部1014へ、FCベクトルuを音源生成部1010へ、FCベクトルuに聴覚重み付けフィルタのインパルス応答を畳み込んで得られるフィルタ後のFC成分qをフィルタ状態更新部1012および利得符号化部1009へ、それぞれ出力する。
【0141】
利得符号化部1009は、ターゲットベクトル算出部1006よりターゲットベクトルoを、ACV符号化部1007よりフィルタ後のACベクトル成分pを、FCV符号化部1008よりフィルタ後のFCベクトル成分qを、それぞれ入力し、|o-(ga×p+gf×q)|2が最小と成るgaとgfの組を量子化適応符号帳利得および量子化固定符号帳利得として音源生成部1010に出力する。
【0142】
音源生成部1010は、ACV符号化部1007より適応符号帳ベクトルvを、FCV符号化部1008より固定符号帳ベクトルuを、利得符号化部1009より適応符号帳ベクトル利得gaおよび固定符号帳ベクトル利得gfを、それぞれ入力し、音源ベクトルexをga×v+gf×uにより算出し、ACV符号化部1007および合成フィルタ部1011に出力する。ACV符号化部1007に出力された音源ベクトルexは、ACV符号化部内のACB(過去に生成した音源ベクトルのバッファ)の更新に用いられる。
【0143】
合成フィルタ部1011は、音源生成部1010から出力された音源ベクトルexで、LPC符号化部1002から出力された量子化線形予測係数a'jで構成される線形予測フィルタを駆動し、局部復号音声信号s'nを生成し、フィルタ状態更新部1013に出力する。
【0144】
フィルタ状態更新部1012は、ACV符号化部1007から合成適応符号帳ベクトルpを、FCV符号化部1008から合成固定符号帳ベクトルqを、ターゲットベクトル算出部1006からターゲットベクトルoを、それぞれ入力し、ターゲットベクトル算出部1006内の聴覚重み付けフィルタのフィルタ状態を生成し、ターゲットベクトル算出部1006に出力する。
【0145】
フィルタ状態更新部1013は、合成フィルタ部1011から出力された局部復号音声s'nと入力信号snとの誤差を計算し、これをターゲットベクトル算出部1006内の合成フィルタの状態としてターゲットベクトル算出部1006に出力する。
【0146】
多重化部1014は、符号Fn、An、Gn、Ln、Enを多重した符号化情報を出力する。
【0147】
また、本実施の形態では第n−1フレームの復号量子化LSFパラメータについてのみ未量子化LSFパラメータとの誤差を計算する例を示したが、第nフレームの復号量子化LSFパラメータと第nフレームの未量子化LSFパラメータとの誤差も考慮して補償モードを決定するようにしても良い。
【0148】
このように、本実施の形態に係る音声符号化装置によれば、実施の形態3の音声復号化装置に対応して、補償処理に最適な補償処理用の重み付け係数セットを特定し、その情報を復号器側に伝送するので、復号器側でより高い補償性能が得られ、復号音声信号の品質が改善される。
【0149】
(実施の形態6)
図18は、本発明の実施の形態6に係る音声信号伝送システムを構成する音声信号送信装置及び音声信号受信装置の構成を示すブロック図である。実施の形態5の音声符号化装置が音声信号送信装置に、実施の形態1〜3のいずれかの音声復号装置が音声信号受信装置に適用されている点のみが従来と異なる。
【0150】
音声信号送信装置1100は、入力装置1101、A/D変換装置1102、音声符号化装置1103、信号処理装置1104、RF変調装置1105、送信装置1106及びアンテナ1107を有している。
【0151】
A/D変換装置1102の入力端子は、入力装置1101に接続されている。音声符号化装置1103の入力端子は、A/D変換装置1102の出力端子に接続されている。信号処理装置1104の入力端子は、音声符号化装置1103の出力端子に接続されている。RF変調装置1105の入力端子は、信号処理装置1104の出力端子に接続されている。送信装置1106の入力端子は、RF変調装置1105の出力端子に接続されている。アンテナ1107は、送信装置1106の出力端子に接続されている。
【0152】
入力装置1101は、音声信号を受けてこれを電気信号であるアナログ音声信号に変換し、A/D変換装置1102に与える。A/D変換装置1102は、入力装置1101からのアナログの音声信号をディジタル音声信号に変換し、これを音声符号化装置1103へ与える。音声符号化装置1103は、A/D変換装置1102からのディジタル音声信号を符号化して音声符号化ビット列を生成し信号処理装置1104に与える。信号処理装置1104は、音声符号化装置1103からの音声符号化ビット列にチャネル符号化処理やパケット化処理及び送信バッファ処理等を行った後、その音声符号化ビット列をRF変調装置1105に与える。RF変調装置1105は、信号処理装置1104からのチャネル符号化処理等が行われた音声符号化ビット列の信号を変調して送信装置1106に与える。送信装置1106は、RF変調装置1105からの変調された音声符号化信号をアンテナ1107を介して電波(RF信号)として送出する。
【0153】
音声信号送信装置1100においては、A/D変換装置1102を介して得られるディジタル音声信号に対して数十msのフレーム単位で処理が行われる。システムを構成するネットワークがパケット網である場合には、1フレーム又は数フレームの符号化データを1つのパケットに入れこのパケットをパケット網に送出する。なお、前記ネットワークが回線交換網の場合には、パケット化処理や送信バッファ処理は不要である。
【0154】
音声信号受信装置1150は、アンテナ1151、受信装置1152、RF復調装置1153、信号処理装置1154、音声復号装置1155、D/A変換装置1156及び出力装置1157を有している。
【0155】
受信装置1152の入力端子は、アンテナ1151に接続されている。RF復調装置1153の入力端子は、受信装置1152の出力端子に接続されている。信号処理装置1154の2つの入力端子は、RF復調装置1153の2つの出力端子に接続されている。音声復号装置1155の2つの入力端子は、信号処理装置1154の2つの出力端子に接続されている。D/A変換装置1156の入力端子は、音声復号装置1155の出力端子に接続されている。出力装置1157の入力端子は、D/A変換装置1156の出力端子に接続されている。
【0156】
受信装置1152は、アンテナ1151を介して音声符号化情報を含んでいる電波(RF信号)を受けてアナログの電気信号である受信音声符号化信号を生成し、これをRF復調装置1153に与える。アンテナを介して受けた電波(RF信号)は、伝送路において信号の減衰や雑音の重畳がなければ、音声信号送信装置において送出された電波(RF信号)と全く同じものになる。
【0157】
RF復調装置1153は、受信装置1152からの受信音声符号化信号を復調し信号処理装置1154に与える。また、受信音声符号化信号が正常に復調できたかどうかの情報を別途信号処理装置1154に与える。信号処理装置1154は、RF復調装置1153からの受信音声符号化信号のジッタ吸収バッファリング処理、パケット組みたて処理およびチャネル復号化処理等を行い、受信音声符号化ビット列を音声復号装置1155に与える。また、受信音声符号化信号が正常に復調できたかどうかの情報をRF復調装置1153から入力し、RF復調装置1153から入力した情報が「正常に復調できなかった」ことを示しているか、または、信号処理装置内でのパケット組み立て処理等が正常に行えずに受信音声符号化ビット列を正常に復号できなかった場合に、フレーム消失が発生したことをフレーム消失情報として音声復号装置1155に与える。音声復号装置1155は、信号処理装置1154からの受信音声符号化ビット列の復号化処理を行って復号音声信号を生成しD/A変換装置1156へ与える。音声復号装置1155は、受信音声符号化ビット列と平行して入力されるフレーム消失情報に従って、通常の復号処理を行うのか、フレーム消失補償(隠蔽)処理による復号処理を行うのかを決定する。D/A変換装置1156は、音声復号装置1155からのディジタル復号音声信号をアナログ復号音声信号に変換して出力装置1157に与える。出力装置1157は、D/A変換装置1156からのアナログ復号音声信号を空気の振動に変換し音波として人間の耳に聞こえる様に出力する。
【0158】
このように、実施の形態1から実施の形態5で示した音声符号化装置および音声復号装置を備えることにより、伝送路誤り(特にパケットロスに代表されるフレーム消失誤り)が発生した場合でも、従来よりも良い品質の復号音声信号を得ることができる。
【0159】
(実施の形態7)
上記実施の形態1から6では、予測モデルとしてMA型を用いる場合について説明したが、本発明はこれに限らず、予測モデルとしてAR型を用いることもできる。実施の形態7では、予測モデルとしてAR型を用いる場合について説明する。なお、実施の形態7に係る音声復号装置の構成は、LPC復号部の内部構成が異なるのを除いて、図1と同一である。
【0160】
図19は、本実施の形態に係る音声復号装置のLPC復号部105の内部構成を示すブロック図である。なお、図19において、図2と共通する構成部分には、図2と同一の符号を付し、その詳しい説明を省略する。
【0161】
図19に示すLPC復号部105は、図2と比較して、予測に関わる部分(バッファ204、増幅器205、加算器206)とフレーム消失補償に関わる部分(コードベクトル復号部203、バッファ207)を削除し、これらに置き換わる構成部分(コードベクトル復号部1901、増幅器1902、加算器1903、バッファ1904)を追加した構成を採る。
【0162】
LPC符号Ln+1はバッファ201およびコードベクトル復号部1901に入力され、フレーム消失符号Bn+1はバッファ202、コードベクトル復号部1901および選択器209に入力される。
【0163】
バッファ201は、次フレームのLPC符号Ln+1を1フレームの間保持し、コードベクトル復号部1901に出力する。バッファ201からコードベクトル復号部1901に出力されるLPC符号は、バッファ201で1フレームの間保持された結果、現フレームのLPC符号Lnとなる。
【0164】
バッファ202は、次フレームのフレーム消失符号Bn+1を1フレームの間保持し、コードベクトル復号部1901に出力する。バッファ202からコードベクトル復号部1901に出力されるフレーム消失符号は、バッファ202で1フレームの間保持された結果、現フレームのフレーム消失符号Bnとなる。
【0165】
コードベクトル復号部1901は、1フレーム前の復号LSFベクトルyn-1、次フレームのLPC符号Ln+1、次フレームのフレーム消失符号Bn+1、現フレームのLPC符号Lnおよび現フレームのフレーム消失符号Bnを入力し、これらの情報に基づいて現フレームの量子化予測残差ベクトルxnを生成し、加算器1903に出力する。なお、コードベクトル復号部1901の詳細については後述する。
【0166】
増幅器1902は、前フレームの復号LSFベクトルyn−1に所定のAR予測係数a1を乗算し、加算器1903に出力する。
【0167】
加算器1903は、増幅器1902から出力された予測LSFベクトル(すなわち前フレームの復号LSFベクトルにAR予測係数を乗じたもの)とコードベクトル復号部1901から出力された現フレームの量子化予測残差ベクトルxnとの和を計算し、計算結果である復号LSFベクトルynをバッファ1904およびLPC変換部208に出力する。
【0168】
バッファ1904は、現フレームの復号LSFベクトルynを1フレームの間保持し、コードベクトル復号部1901および増幅器1902に出力する。これらに入力される復号LSFベクトルは、バッファ1904で1フレームの間保持された結果、1フレーム前の復号LSFベクトルyn-1となる。
【0169】
なお、選択器209がバッファ210から出力された前フレームにおける復号LPCパラメータを選択する場合、実際にはコードベクトル復号部1901からLPC変換部208までの処理を全て行わなくてもよい。
【0170】
次に、図19のコードベクトル復号部1901の内部構成について、図20のブロック図を用いて詳細に説明する。
【0171】
コードブック2001は、現フレームのLPC符号Lnによって特定されるコードベクトルを生成して切替スイッチ309へ出力するとともに、次フレームのLPC符号Ln+1によって特定されるコードベクトルを生成して増幅器2002に出力する。なお、コードブックは多段構成であったり、スプリット構成であったりする。
【0172】
増幅器2002は、コードブック2001から出力されたコードベクトルxn+1に重み付け係数b0を乗算し、加算器2005に出力する。
【0173】
増幅器2003は、前フレームの復号LSFベクトルが生成されるために必要な現フレームにおける量子化予測残差ベクトルを求める処理を行う。すなわち、増幅器2003は、前フレームの復号LSFベクトルyn-1が現フレームの復号LSFベクトルynとなるように現フレームのベクトルxnを計算する。具体的には、増幅器2003は、入力した前フレームの復号LSFベクトルyn-1に係数(1−a1)を乗ずる。そして、増幅器2003は、計算結果を切替スイッチ309に出力する。
【0174】
増幅器2004は、入力した前フレームの復号LSFベクトルyn-1に重み付け係数b-1を乗算し、加算器2005に出力する。
【0175】
加算器2005は、増幅器2002および増幅器2004から出力されたベクトルの和を計算し、計算結果となるコードベクトルを切替スイッチ309に出力する。すなわち、加算器2005は、次フレームのLPC符号Ln+1によって特定されるコードベクトル、前フレームの復号LSFベクトル、を重み付け加算することにより現フレームのベクトルxnを計算する。
【0176】
切替スイッチ309は、現フレームのフレーム消失符号Bnが「第nフレームは正常フレームである」ことを示す場合にはコードブック2001から出力されたコードベクトルを選択し、これを現フレームの量子化予測残差ベクトルxnとして出力する。一方、切替スイッチ309は、現フレームのフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示す場合には、次フレームのフレーム消失符号Bn+1がどちらの情報を有しているかによって、出力するベクトルをさらに選択する。
【0177】
すなわち、次フレームのフレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示す場合には、切替スイッチ309は、増幅器2003から出力されたベクトルを選択し、これを現フレームの量子化予測残差ベクトルxnとして出力する。なお、この場合、コードブック2001および増幅器2002、2004から加算器2005までのベクトルを生成する過程の処理は行う必要がない。また、この場合、yn-1をynとして用いればよいので、必ずしも増幅器2003の処理によってxnを生成しなくとも良い。
【0178】
また、次フレームのフレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示す場合には、切替スイッチ309は、加算器2005から出力されたベクトルを選択し、これを現フレームの量子化予測残差ベクトルxnとして出力する。なお、この場合、増幅器2003の処理は行う必要がない。
【0179】
なお、本実施の形態の補償処理は、復号パラメータのフレーム間の変動が緩やかになるように、第n−1フレームの復号パラメータyn-1と第nフレームの復号パラメータynの距離、および、第nフレームの復号パラメータynと第n+1フレームの復号パラメータyn+1の距離の和D(Dは以下の式(9)のようになる)が小さくなるように重み付け係数b-1およびb0を決める。
【数8】
【0180】
以下、重み付け係数b-1およびb0の決め方の一例を示す。式(9)のDを最小化するため、以下の方程式(10)を、消失した第nフレームの復号量子化予測残差xnについて解く。その結果、以下の式(11)によりxnを求めることができる。なお、予測係数が各次で異なる場合には式(9)は式(12)に置き換わる。a1はAR予測係数、a1(j)はAR予測係数セットの第j成分(すなわち、前フレームの復号LSFベクトルyn-1の第j成分であるyn-1(j)に乗算する係数)を表す。
【数9】
【数10】
【数11】
【0181】
上式におけるx、y、aは以下の通りである。
xn(j):第nフレームにおけるLSFパラメータの第j成分の量子化予測残差
yn(j):第nフレームにおける復号LSFパラメータの第j成分
a1(j):AR予測係数セットの第j成分
【0182】
このように、予測モデルとしてAR型を用いる本実施の形態によれば、現フレームが消失した場合に、次のフレームが正常に受信されていれば、過去に復号されたパラメータおよび次のフレームの量子化予測残差を利用した補償処理専用の重み付け加算処理(重み付け線形和)によって現フレームのLSFパラメータの復号量子化予測残差の補償処理を行い、補償した量子化予測残差を用いてLSFパラメータの復号を行う。これにより、過去の復号LSFパラメータを繰り返し利用するよりも高い補償性能を実現することができる。
【0183】
なお、実施の形態2から4で説明した内容を、AR型を用いる本実施の形態に適用することも可能であり、この場合でも上記と同様の効果を得ることができる。
【0184】
(実施の形態8)
上記実施の形態7では、予測係数のセットが1種類しかない場合について説明したが、本発明はこれに限られず、実施の形態2および3と同様、予測係数のセットが複数種類ある場合についても適用することができる。実施の形態8では、予測係数セットが複数種類あるAR型予測モデルを用いる場合の一例について説明する。
【0185】
図21は、実施の形態8に係る音声復号装置のブロック図である。なお、図21に示す音声復号装置100の構成は、LPC復号部の内部構成が異なることと、多重分離部101からLPC復号部105への補償モード情報En+1の入力線がないことを除いて、図11と同一である。
【0186】
図22は、本実施の形態に係る音声復号装置のLPC復号部105の内部構成を示すブロック図である。なお、図22において、図19と共通する構成部分には、図19と同一の符号を付し、その詳しい説明を省略する。
【0187】
図22に示すLPC復号部105は、図19と比較して、バッファ2202と係数復号部2203とを追加した構成を採る。また、図22のコードベクトル復号部2201の動作及び内部構成が図19のコードベクトル復号部1901と異なる。
【0188】
LPC符号Vn+1はバッファ201およびコードベクトル復号部2201に入力され、フレーム消失符号Bn+1はバッファ202、コードベクトル復号部2201および選択器209に入力される。
【0189】
バッファ201は、次フレームのLPC符号Vn+1を1フレームの間保持し、コードベクトル復号部2201に出力する。バッファ201からコードベクトル復号部2201に出力されるLPC符号は、バッファ201で1フレームの間保持された結果、現フレームのLPC符号Vnとなる。また、バッファ202は、次フレームのフレーム消失符号Bn+1を1フレームの間保持し、コードベクトル復号部2201に出力する。
【0190】
コードベクトル復号部2201は、1フレーム前の復号LSFベクトルyn-1、次フレームのLPC符号Vn+1、次フレームのフレーム消失符号Bn+1、現フレームのLPC符号Vn、次フレームの予測係数符号Kn+1および現フレームのフレーム消失符号Bnを入力し、これらの情報に基づいて現フレームの量子化予測残差ベクトルxnを生成し、加算器1903に出力する。なお、コードベクトル復号部2201の詳細については後述する。
【0191】
バッファ2202は、AR予測係数符号Kn+1を1フレームの間保持し、係数復号部2203に出力する。この結果、バッファ2202から係数復号部2203に出力されるAR予測係数符号は、1フレーム前のAR予測係数符号Knとなる。
【0192】
係数復号部2203は、係数セットを複数種類格納し、フレーム消失符号Bn、Bn+1およびAR予測係数符号Kn、Kn+1によって係数セットを特定する。ここで、係数復号部2203における係数セットの特定の仕方は以下の3通りである。
【0193】
入力したフレーム消失符号Bnが「第nフレームは正常フレームである」ことを示す場合、係数復号部2203は、AR予測係数符号Knで指定される係数セットを選択する。
【0194】
また、入力したフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示し、フレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示す場合、係数復号部2203は、第n+1フレームのパラメータとして受信されているAR予測係数符号Kn+1を用いて、選択対象となる係数セットを決定する。つまり、Kn+1をそのままAR予測係数符号Knの代わりとして使用する。もしくは予めこのような場合に使用する係数セットを決めておき、Kn+1に関わらずこの決めておいた係数セットを使うようにしても良い。
【0195】
また、入力したフレーム消失符号Bnが「第nフレームは消失フレームである」ことを示し、かつ、フレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示す場合、利用できる情報は前フレームで使用した係数セットの情報のみであるので、係数復号部2203は、前フレームで使用した係数セットを繰り返し使用するようにする。もしくは予め決めておいたモードの係数セットを固定的に使用するようにしても良い。
【0196】
そして、係数復号部2203は、AR予測係数a1を増幅器1902に出力し、AR予測係数(1-a1)をコードベクトル復号部2201に出力する。
【0197】
増幅器1902は、前フレームの復号LSFベクトルyn-1に係数復号部2203から入力されるAR予測係数a1を乗算し、加算器1903に出力する。
【0198】
次に、図22のコードベクトル復号部2201の内部構成について、図23のブロック図を用いて詳細に説明する。なお、図23において、図20と共通する構成部分には、図20と同一の符号を付し、その詳しい説明を省略する。図23のコードベクトル復号部2201は、図20のコードベクトル復号部1901に対して係数復号部2301を追加した構成を採る。
【0199】
係数復号部2301は、係数セットを複数種類格納し、AR予測係数符号Kn+1によって係数セットを特定し、増幅器2002、2004に出力する。なお、ここで使用される係数セットは係数復号部2203から出力されるAR予測係数a1を用いて計算することも可能であり、この場合は係数セットを格納しておく必要がなく、AR予測係数a1を入力して計算すればよい。具体的な計算方法については後述する。
【0200】
コードブック2001は、現フレームのLPC符号Vnによって特定されるコードベクトルを生成して切替スイッチ309へ出力するとともに、次フレームのLPC符号Vn+1によって特定されるコードベクトルを生成して増幅器2002に出力する。なお、コードブックは多段構成であったり、スプリット構成であったりする。
【0201】
増幅器2002は、コードブック2001から出力されたコードベクトルxn+1に係数復号部2301から出力された重み付け係数b0を乗算し、加算器2005に出力する。
【0202】
増幅器2003は、係数復号部2203から出力されたAR予測係数(1-a1)を前フレームの復号LSFベクトルyn-1に乗算し、切替スイッチ309へ出力する。なお、実装上このような経路を作らずに、増幅器2003および増幅器1902および加算器1903の処理を行う代わりに、バッファ1904の出力を加算器1903の出力に替えてLPC変換部208へ入力できるような切替構成が備わっていれば、増幅器2003を経由する経路は不要である。
【0203】
増幅器2004は、入力した前フレームの復号LSFベクトルyn-1に係数復号部2301から出力された重み付け係数b-1を乗算し、加算器2005に出力する。
【0204】
なお、本実施の形態の補償処理は、復号パラメータのフレーム間の変動が緩やかになるように、第n−1フレームの復号パラメータyn-1と第nフレームの復号パラメータynの距離、および、第nフレームの復号パラメータynと第n+1フレームの復号パラメータyn+1の距離の和D(Dは以下の式(13)のようになる)が小さくなるように重み付け係数b-1およびb0を決める。
【数12】
【0205】
以下、重み付け係数b-1およびb0の決め方の一例を示す。式(13)のDを最小化するため、以下の方程式(14)を、消失した第nフレームの復号量子化予測残差xnについて解く。その結果、以下の式(15)によりxnを求めることができる。なお、予測係数が各次で異なる場合には式(13)は式(16)に置き換わる。a’1は第n+1フレームにおけるAR予測係数、a1は第nフレームにおけるAR予測係数、a1(j)はAR予測係数セットの第j成分(すなわち、前フレームの復号LSFベクトルyn-1の第j成分であるyn-1(j)に乗算する係数)を表す。
【数13】
【数14】
【数15】
【0206】
上式におけるx、y、aは以下の通りである。
xn(j):第nフレームにおけるLSFパラメータの第j成分の量子化予測残差
yn(j):第nフレームにおける復号LSFパラメータの第j成分
a1(j):第nフレームのAR予測係数セットの第j成分
a’1(j):第n+1フレームのAR予測係数セットの第j成分
【0207】
ここで、第nフレームが消失フレームだと、第nフレームの予測係数セットは未知である。a1を決定する方法はいくつか考えられる。まず、実施の形態2のように第n+1フレームで追加情報として送る方法がある。ただし、追加のビットが必要であり、エンコーダ側にも修正が必要となる。次に、第n−1フレームで使われた予測係数セットを使う方法がある。さらに、第n+1フレームで受信した予測係数セットを使う方法がある。この場合、a1=a’1である。またさらに、常に特定の予測係数セットを使う方法がある。しかしながら、後述するように、ここで異なるa1を用いても同じa1を用いてAR予測を行えば、復号されるynは等しくなる。AR予測を用いる予測量子化の場合、量子化予測残差xnは予測に関係せず、復号される量子化パラメータynのみが予測に関係するので、この場合a1は任意の値で良い。
【0208】
a1が決まれば、式(15)または式(16)からb0、b1を決定でき、消失フレームのコードベクトルxnを生成することができる。
【0209】
なお、上記の式(16)で得られる消失フレームのコードベクトルxnをynを表す式(yn=a1yn−1+xn)に代入すると、下記の式(17)のようになる。したがって、補償処理によって生成される消失フレームにおける復号パラメータはxn+1とyn-1とa1’から直接求めることができる。この場合、消失フレームにおける予測係数a1を用いない補償処理が可能となる。
【数16】
【0210】
このように、本実施の形態によれば、実施の形態7で説明した特徴に加えて、予測係数のセットを複数用意し、補償処理を行うので、実施の形態7よりもさらに高い補償性能を実現することができる。
【0211】
(実施の形態9)
上記実施の形態1から8では、n+1フレームを受信してからnフレームの復号を行う場合について説明したが、本発明はこれに限らず、nフレームの生成をn−1フレームの復号パラメータを用いて行い、n+1フレームの復号時に本発明の手法を用いてnフレームのパラメータ復号を行い、その結果で予測器の内部状態を更新してからn+1フレームの復号を行うこともできる。
【0212】
実施の形態9では、この場合について説明する。実施の形態9における音声復号装置の構成は図1と同一である。また、LPC復号部105の構成は図19と同一でよいが、n+1フレームの符号化情報入力に対してn+1フレームの復号を行うことを明確にするために図24のように書き換える。
【0213】
図24は、本実施の形態に係る音声復号装置のLPC復号部105の内部構成を示すブロック図である。なお、図24において、図19と共通する構成部分には、図19と同一の符号を付し、その詳しい説明を省略する。
【0214】
図24に示すLPC復号部105は、図19と比較して、バッファ201を削除し、コードベクトル復号部の出力がxn+1であり、復号パラメータがn+1フレームのもの(yn+1)であること、および切替スイッチ2402を追加した構成を採る。また、図24のコードベクトル復号部2401の動作及び内部構成が図19のコードベクトル復号部1901と異なる。
【0215】
LPC符号Ln+1はコードベクトル復号部2401に入力され、フレーム消失符号Bn+1はバッファ202、コードベクトル復号部2401および選択器209に入力される。
【0216】
バッファ202は、現フレームのフレーム消失符号Bn+1を1フレームの間保持し、コードベクトル復号部2401に出力する。バッファ202からコードベクトル復号部2401に出力されるフレーム消失符号は、バッファ202で1フレームの間保持された結果、前フレームのフレーム消失符号Bnとなる。
【0217】
コードベクトル復号部2401は、2フレーム前の復号LSFベクトルyn-1、現フレームのLPC符号Ln+1、現フレームのフレーム消失符号Bn+1を入力し、これらの情報に基づいて現フレームの量子化予測残差ベクトルxn+1および前フレームの復号LSFベクトルy'nを生成し、それぞれ加算器1903および切替スイッチ2402に出力する。なお、コードベクトル復号部2401の詳細については後述する。
【0218】
増幅器1902は、前フレームの復号LSFベクトルynまたはy'nに所定のAR予測係数a1を乗算し、加算器1903に出力する。
【0219】
加算器1903は、増幅器1902から出力された予測LSFベクトル(すなわち前フレームの復号LSFベクトルにAR予測係数を乗じたもの)を計算し、計算結果である復号LSFベクトルyn+1をバッファ1904およびLPC変換部208に出力する。
【0220】
バッファ1904は、現フレームの復号LSFベクトルyn+1を1フレームの間保持し、コードベクトル復号部2401および切替スイッチ2402に出力する。これらに入力される復号LSFベクトルは、バッファ1904で1フレームの間保持された結果、1フレーム前の復号LSFベクトルynとなる。
【0221】
切替スイッチ2402は、前フレームの復号LSFベクトルynか、コードベクトル復号部2401にて現フレームのLPC符号Ln+1を用いて生成しなおされた前フレームの復号LSFベクトルy'nかのいずれかを、前フレームのフレーム消失符号Bnによって選択する。切替スイッチ2402は、Bnが消失フレームを示している場合にy'nを選択する。
【0222】
なお、選択器209がバッファ210から出力された前フレームにおける復号LPCパラメータを選択する場合、実際にはコードベクトル復号部2401からLPC変換部208までの処理を全て行わなくてもよい。
【0223】
次に、図24のコードベクトル復号部2401の内部構成について、図25のブロック図を用いて詳細に説明する。なお、図25において、図20と共通する構成部分には、図20と同一の符号を付し、その詳しい説明を省略する。図25のコードベクトル復号部2401は、図20のコードベクトル復号部1901に対してバッファ2502、増幅器2503および加算器2504を追加した構成を採る。また、図25の切替スイッチ2501の動作及び内部構成が図20の切替スイッチ309と異なる。
【0224】
コードブック2001は、現フレームのLPC符号Ln+1によって特定されるコードベクトルを生成して切替スイッチ2501へ出力するとともに、増幅器2002に出力する。
【0225】
増幅器2003は、前フレームの復号LSFベクトルが生成されるために必要な現フレームにおける量子化予測残差ベクトルを求める処理を行う。すなわち、増幅器2003は、前フレームの復号LSFベクトルynが現フレームの復号LSFベクトルyn+1となるように現フレームのベクトルxn+1を計算する。具体的には、増幅器2003は、入力した前フレームの復号LSFベクトルynに係数(1−a1)を乗ずる。そして、増幅器2003は、計算結果を切替スイッチ2501に出力する。
【0226】
切替スイッチ2501は、現フレームのフレーム消失符号Bn+1が「第n+1フレームは正常フレームである」ことを示す場合にはコードブック2001から出力されたコードベクトルを選択し、これを現フレームの量子化予測残差ベクトルxn+1として出力する。
一方、切替スイッチ2501は、現フレームのフレーム消失符号Bn+1が「第n+1フレームは消失フレームである」ことを示す場合には、増幅器2003から出力されたベクトルを選択し、これを現フレームの量子化予測残差ベクトルxn+1として出力する。なお、この場合、コードブック2001および増幅器2002、2004から加算器2005までのベクトルを生成する過程の処理は行う必要がない。
【0227】
バッファ2502は、前フレームの復号LSFベクトルynを1フレームの間保持し、2フレーム前の復号LSFベクトルyn-1として増幅器2004および増幅器2503へ出力する。
【0228】
増幅器2004は、入力した2フレーム前の復号LSFベクトルyn-1に重み付け係数b-1を乗算し、加算器2005に出力する。
【0229】
加算器2005は、増幅器2002および増幅器2004から出力されたベクトルの和を計算し、計算結果となるコードベクトルを加算器2504に出力する。すなわち、加算器2005は、現フレームのLPC符号Ln+1によって特定されるコードベクトル、2フレーム前の復号LSFベクトル、を重み付け加算することにより前フレームのベクトルxnを計算し、加算器2504に出力する。
【0230】
増幅器2503は、2フレーム前の復号LSFベクトルyn-1に予測係数a1を乗算し、加算器2504に出力する。
【0231】
加算器2504は、加算器2005の出力(現フレームのLPC符号Ln+1を用いて再計算された前フレームの復号ベクトルxn)と増幅器2503の出力(2フレーム前の復号LSFベクトルyn-1に予測係数a1を乗じたベクトル)を加算し、前フレームの復号LSFベクトルy'nを再計算する。
【0232】
なお、本実施の形態の復号LSFベクトルy'nの再計算の方法は、実施の形態7における補償処理と同様である。
【0233】
このように、本実施の形態によれば、実施の形態7の補償処理によって得られる復号ベクトルxnを第n+1フレームの復号時の予測器内部状態にのみ利用する構成にすることにより、実施の形態7で必要となっていた処理遅延1フレーム分を削減することができる。
【0234】
(実施の形態10)
上記実施の形態1から9では、LPC復号部内の構成および処理にのみ特徴を備えていたが、本実施の形態に係る音声復号装置の構成は、LPC復号部外の構成について特徴を有する。本発明は図1、図8、図11、図21のいずれにも適用可能であるが、本実施の形態では図21に適用する場合を例に説明する。
【0235】
図26は、本実施の形態に係る音声復号装置を示すブロック図である。図26において、図21と同一の構成要素については図21と同一符号を付し、詳しい説明を省略する。図26に示す音声復号装置100は、図21と比較して、フィルタ利得算出部2601、音源パワ制御部2602、および増幅器2603を追加した構成を採る。
【0236】
LPC復号部105は、復号したLPCをLPC合成部109およびフィルタ利得算出部2601に出力する。また、LPC復号部105は、復号中の第nフレームに対応するフレーム消失符号Bnを音源パワ制御部2602に出力する。
【0237】
フィルタ利得算出部2601は、LPC復号部105から入力されたLPCによって構成される合成フィルタのフィルタ利得を計算する。フィルタ利得の算出方法の一例として、インパルス応答のエネルギの平方根を求めてフィルタ利得とする方法がある。これは、入力信号をエネルギが1であるインパルスと考えれば、入力されたLPCで構成した合成フィルタのインパルス応答のエネルギがそのままフィルタ利得情報となることに基づいている。また、フィルタ利得の算出方法の別の例として、LPCからレビンソン・ダービンのアルゴリズムを用いて線形予測残差の2乗平均値を求めることができることから、この逆数をフィルタ利得情報として用い、線形予測残差の2乗平均の逆数の平方根をフィルタ利得とする方法もある。求められフィルタ利得は、音源パワ制御部2602に出力される。なお、フィルタ利得を表すパラメータとして、インパルス応答のエネルギや線形予測残差の二乗平均値を、平方根を取らずに音源パワ制御部2602に出力しても良い。
【0238】
音源パワ制御部2602は、フィルタ利得算出部2601からフィルタ利得を入力し、音源信号の振幅調整用のスケーリング係数を算出する。音源パワ制御部2602は、その内部にメモリを備えていて、1フレーム前のフィルタ利得をメモリに保持している。メモリの内容は、スケーリング係数が算出された後、入力された現フレームのフィルタ利得に書き換えられる。スケーリング係数SGnの算出は、現フレームのフィルタ利得をFGn、前フレームのフィルタ利得をFGn−1、利得増加率の上限値をDGmax、とすると、例えば、SGn=DGmax×FGn−1/FGnの式により行われる。ここで、利得増加率とは、FGn/FGn−1で定義され、現フレームのフィルタ利得が前フレームのフィルタ利得と比べて何倍になったかを示すものである。その上限値を予めDGmaxと決めておく。フレーム消失隠蔽処理によって作られた合成フィルタにおいて、フィルタ利得が前フレームのフィルタ利得に対して急激に上昇した場合、合成フィルタの出力信号のエネルギも急激に上昇し、復号信号(合成信号)が局所的に大振幅となって異音を生じる。これを回避するため、フレーム消失隠蔽処理によって生成された復号LPCによって構成される合成フィルタのフィルタ利得が、前フレームのフィルタ利得に対して所定の利得増加率以上に大きくなった場合、合成フィルタの駆動信号である復号音源信号のパワを下げる。このための係数がスケーリング係数であり、前記所定の利得増加率が利得増加率の上限値DGmaxである。通常、DGmaxを1もしくは0.98など1より少し小さい値に設定すれば異音の発生を避けることができる。なお、FGn/FGn−1がDGmax以下の場合は、SGn=1.0として増幅器2603におけるスケーリングは行わなくて良い。
【0239】
・ また、スケーリング係数SGnの別の算出方法として、例えば、SGn=Max(SGmax ,FGn−1/FGn)によって求める方法がある。ここで、SGmaxはスケーリング係数の最大値を表し、例えば1.5のように1より若干大きい値とする。また、Max(A,B)はAとBのいずれか大きいほうを出力する関数である。SGn=FGn−1/FGnの場合、フィルタ利得が増加した分、音源信号のパワが下がることとなり、現フレームの復号合成信号のエネルギは前フレームの復号合成信号のエネルギと同じになる。これにより前述した合成信号エネルギの急上昇を回避することができると共に、合成信号エネルギの急激な減衰を回避することができる。前フレームのフィルタ利得に比べて現フレームのフィルタ利得が小さくなる場合、合成信号エネルギが急激に減衰し、音切れとして知覚される場合がある。このような場合に、SGn=FGn−1/FGnとするとSGnは1以上の値となり、合成信号エネルギの局所的な減衰を回避する役割を果たす。しかしながら、フレーム消失補償処理で生成した音源信号は必ずしも音源信号として適切であるとは限らないため、スケーリング係数を大きくしすぎると却って歪が目立って品質劣化に繋がる。このため、スケーリング係数に上限を設け、FGn−1/FGnがその上限値を上回る場合は、上限値にクリッピングする。
【0240】
なお、1フレーム前のフィルタ利得またはフィルタ利得を表すパラメータ(合成フィルタのインパルス応答のエネルギなど)を、音源パワ制御部2602内のメモリに保持せずに、音源パワ制御部2602の外部から入力するようにしても良い。特に1フレーム前のフィルタ利得に関する情報を音声復号器の他の部分で利用している場合には、上記パラメータを外部から入力するようにし、音源パワ制御部2602の内部で書き換えることもしない。
【0241】
そして、音源パワ制御部2602は、LPC復号部105からフレーム消失符号Bnを、入力し、Bnが、現フレームが消失フレームであることを示す場合には、算出したスケーリング係数を増幅器2603に出力する。一方、Bnが現フレームは消失フレームでないことを示す場合には、音源パワ制御部2602は、スケーリング係数として1を増幅器2603に出力する。
【0242】
増幅器2603は、音源パワ制御部2602から入力したスケーリング係数を、加算器108から入力した復号音源信号に乗算してLPC合成部109へ出力する。
【0243】
このように、本実施の形態によれば、フレーム消失隠蔽処理によって生成された復号LPCによって構成される合成フィルタのフィルタ利得が、前フレームのフィルタ利得に対して変化する場合、合成フィルタの駆動信号である復号音声信号のパワを調整することにより、異音や音切れの発生を防ぐことができる。
【0244】
なお、Bnが現フレームは消失フレームでないことを示す場合であっても、直前のフレームが消失フレームである(つまり、Bn−1が前フレームは消失フレームであったことを示す)場合には、音源パワ制御部2602が、算出したスケーリング係数を増幅器2603に出力するようにしても良い。これは、予測符号化を用いた場合は、フレーム消失からの復帰フレームにおいても誤りの影響が残留している場合があるためである。この場合でも上記と同様の効果を得ることができる。
【0245】
以上、本発明の実施の形態について説明した。
【0246】
なお、上記各実施の形態では符号化パラメータをLSFパラメータとしたが、本発明はこれに限定されるものではなく、フレーム間での変動が緩やかなパラメータであればどのようなパラメータにも適用可能であり、例えば、イミタンススペクトル周波数(immittance spectrum frequencies ;ISFs)でも良い。
【0247】
また、上記各実施の形態では符号化パラメータをLSFパラメータそのものとしたが、平均的なLSFからの差分を取った、平均値除去後のLSFパラメータにしても良い。
【0248】
また、本発明に係るパラメータ復号装置/パラメータ符号化装置は、音声復号装置/音声符号化装置に適用されるほか、移動体通信システムにおける通信端末装置および基地局装置に搭載することが可能であり、これにより上記と同様の作用効果を有する通信端末装置、基地局装置、および移動体通信システムを提供することができる。
【0249】
また、ここでは、本発明をハードウェアで構成する場合を例にとって説明したが、本発明をソフトウェアで実現することも可能である。例えば、本発明に係るパラメータ復号方法のアルゴリズムをプログラミング言語によって記述し、このプログラムをメモリに記憶しておいて情報処理手段によって実行させることにより、本発明に係るパラメータ復号装置と同様の機能を実現することができる。
【0250】
また、上記各実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部または全てを含むように1チップ化されても良い。
【0251】
また、ここではLSIとしたが、集積度の違いによって、IC、システムLSI、スーパーLSI、ウルトラLSI等と呼称されることもある。
【0252】
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラム化することが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続もしくは設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【0253】
さらに、半導体技術の進歩または派生する別技術により、LSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
【0254】
2006年11月10日出願の特願2006−305861、2007年5月17日出願の特願2007−132195及び2007年9月14日出願の特願2007−240198の日本出願に含まれる明細書、図面及び要約書の開示内容は、すべて本願に援用される。
【産業上の利用可能性】
【0255】
本発明に係るパラメータ復号装置およびパラメータ復号方法は、音声復号装置、音声符号化装置、更には、移動体通信システムにおける通信端末装置、基地局装置等の用途に適用することができる。
【特許請求の範囲】
【請求項1】
音声符号化ビット列の現フレームに含まれる符号化情報に基づいて、スペクトルパラメータの量子化された予測残差を求める予測残差復号ステップと、
前記予測残差に基づいて、前記スペクトルパラメータを復号するパラメータ復号ステップと、
を含み、
前記予測残差復号ステップにおいて、現フレームが消失した場合、下記の式を用いて、現フレームの前記予測残差を求める、
パラメータ復号方法。
【数1】
【請求項2】
前記パラメータ復号ステップは、
過去フレームの量子化予測残差に、予測係数を乗算する予測ステップと、
前記予測残差と、前記予測係数が乗算された前記過去フレームの量子化予測残差とを加算することで、前記スペクトルパラメータを復号する加算ステップと、
を含む、請求項1に記載のパラメータ復号方法。
【請求項3】
前記スペクトルパラメータはISFパラメータである請求項1に記載のパラメータ復号方法。
【請求項4】
音声符号化ビット列の現フレームに含まれる符号化情報に基づいて、スペクトルパラメータの量子化された予測残差を求める予測残差復号手段と、
前記予測残差に基づいて、前記スペクトルパラメータを復号するパラメータ復号手段と、
を含み、
前記予測残差復号手段において、現フレームが消失した場合、下記の式を用いて、現フレームの前記予測残差を求める、
パラメータ復号装置。
【数2】
【請求項5】
前記パラメータ復号手段は、
過去フレームの量子化予測残差に、予測係数を乗算する予測手段と、
前記予測残差ベクトルと、前記予測係数が乗算された前記過去フレームの量子化予測残差とを加算することで、前記スペクトルパラメータを復号する加算手段と、
を含む、請求項4に記載のパラメータ復号装置。
【請求項6】
前記スペクトルパラメータはISFパラメータである請求項4に記載のパラメータ復号装置。
【請求項1】
音声符号化ビット列の現フレームに含まれる符号化情報に基づいて、スペクトルパラメータの量子化された予測残差を求める予測残差復号ステップと、
前記予測残差に基づいて、前記スペクトルパラメータを復号するパラメータ復号ステップと、
を含み、
前記予測残差復号ステップにおいて、現フレームが消失した場合、下記の式を用いて、現フレームの前記予測残差を求める、
パラメータ復号方法。
【数1】
【請求項2】
前記パラメータ復号ステップは、
過去フレームの量子化予測残差に、予測係数を乗算する予測ステップと、
前記予測残差と、前記予測係数が乗算された前記過去フレームの量子化予測残差とを加算することで、前記スペクトルパラメータを復号する加算ステップと、
を含む、請求項1に記載のパラメータ復号方法。
【請求項3】
前記スペクトルパラメータはISFパラメータである請求項1に記載のパラメータ復号方法。
【請求項4】
音声符号化ビット列の現フレームに含まれる符号化情報に基づいて、スペクトルパラメータの量子化された予測残差を求める予測残差復号手段と、
前記予測残差に基づいて、前記スペクトルパラメータを復号するパラメータ復号手段と、
を含み、
前記予測残差復号手段において、現フレームが消失した場合、下記の式を用いて、現フレームの前記予測残差を求める、
パラメータ復号装置。
【数2】
【請求項5】
前記パラメータ復号手段は、
過去フレームの量子化予測残差に、予測係数を乗算する予測手段と、
前記予測残差ベクトルと、前記予測係数が乗算された前記過去フレームの量子化予測残差とを加算することで、前記スペクトルパラメータを復号する加算手段と、
を含む、請求項4に記載のパラメータ復号装置。
【請求項6】
前記スペクトルパラメータはISFパラメータである請求項4に記載のパラメータ復号装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【公開番号】特開2013−15851(P2013−15851A)
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願番号】特願2012−191614(P2012−191614)
【出願日】平成24年8月31日(2012.8.31)
【分割の表示】特願2008−543141(P2008−543141)の分割
【原出願日】平成19年11月9日(2007.11.9)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願日】平成24年8月31日(2012.8.31)
【分割の表示】特願2008−543141(P2008−543141)の分割
【原出願日】平成19年11月9日(2007.11.9)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】
[ Back to top ]