(57)【特許請求の範囲】
【請求項１】
入力された音信号を符号化するための時間領域/周波数領域混合型符号化装置であって、
前記入力された音信号に応じて時間領域の励振寄与分を計算する計算器と、
前記入力された音信号に応じて時間領域の励振寄与分のカットオフ周波数を計算する計算器と、
前記カットオフ周波数に応じて前記時間領域の励振寄与分の周波数範囲を調整するフィルタと、
前記入力された音信号に応じて周波数領域の励振寄与分を計算する計算器と、
フィルタリングされた時間領域の励振寄与分と前記周波数領域の励振寄与分とを加算して、前記入力された音信号の符号化バージョンを構成する時間領域/周波数領域混合型励振を形成する加算器と
を備える時間領域/周波数領域混合型符号化装置。
【請求項２】
前記時間領域の励振寄与分は、(a)適応コードブック寄与分のみ、または(b)前記適応コードブック寄与分および固定コードブック寄与分を含む、請求項1に記載の時間領域/周波数領域混合型符号化装置。
【請求項３】
前記時間領域の励振寄与分計算器は、前記入力された音信号の符号励振線形予測符号化を使用する、請求項1または2に記載の時間領域/周波数領域混合型符号化装置。
【請求項４】
現在のフレームで使用するサブフレーム数を計算する計算器を備え、前記時間領域の励振寄与分の計算器は、前記現在のフレームについて前記サブフレーム数の計算器によって決定されたサブフレーム数を前記現在のフレームで使用する、請求項1から3のいずれか一項に記載の時間領域/周波数領域混合型符号化装置。
【請求項５】
前記現在のフレームの前記サブフレーム数の計算器は、利用可能なビット配分と、前記入力された音信号の高域周波数のスペクトル動特性との少なくとも1つに応答する、請求項4に記載の時間領域/周波数領域混合型符号化装置。
【請求項６】
前記時間領域の励振寄与分の周波数変換の計算器を備える、請求項1から5のいずれか一項に記載の時間領域/周波数領域混合型符号化装置。
【請求項７】
前記周波数領域の励振寄与分の計算器は、前記入力された音信号のLP分析から得られるLP残差の周波数変換を行って、前記LP残差の周波数表現を生成する、請求項1から6のいずれか一項に記載の時間領域/周波数領域混合型符号化装置。
【請求項８】
前記カットオフ周波数の計算器は、前記LP残差の周波数表現と、前記時間領域の励振寄与分の周波数表現との間の相互相関を複数の周波数帯各々について算出する算出器を備え、前記符号化装置は、前記相互相関に応じて前記カットオフ周波数の推定値を見つける発見器を備える、請求項7に記載の時間領域/周波数領域混合型符号化装置。
【請求項９】
前記周波数帯間の相互相関を平滑化して相互相関ベクトルを生成する平滑器と、前記周波数帯にわたる前記相互相関ベクトルの平均を計算する計算器と、前記相互相関ベクトルの平均を正規化する正規化器とを備え、前記カットオフ周波数の推定値の前記発見器は、前記周波数帯のうち1つの周波数帯の最後の周波数と、前記相互相関ベクトルの前記正規化された平均にスペクトル幅値を乗算した値との差分が最小になる最後の周波数を見つけることにより、前記カットオフ周波数の第1の推定値を求める、請求項8に記載の時間領域/周波数領域混合型符号化装置。
【請求項１０】
前記カットオフ周波数の計算器は、前記時間領域の励振寄与分から算出される高調波が位置する、前記周波数帯のうち1つを見つける発見器と、前記カットオフ周波数の前記第1の推定値と、前記高調波が位置する前記周波数帯の最後の周波数とのうち高い方の周波数を前記カットオフ周波数として選択する選択器とを備える、請求項9に記載の時間領域/周波数領域混合型符号化装置。
【請求項１１】
前記フィルタは、前記カットオフ周波数より上の複数の周波数帯の周波数ビンを強制的にゼロにする、周波数ビンのゼロ化器を備える、請求項1から10のいずれか一項に記載の時間領域/周波数領域混合型符号化装置。
【請求項１２】
前記フィルタは、前記カットオフ周波数が所与の値より低い場合に複数の周波数帯のすべての周波数ビンを強制的にゼロにする周波数ビンのゼロ化器を備える、請求項1から11のいずれか一項に記載の時間領域/周波数領域混合型符号化装置。
【請求項１３】
前記周波数領域の励振寄与分の計算器は、前記入力された音信号のLP残差の周波数表現と、前記時間領域の励振寄与分のフィルタリング後周波数表現との差分を計算する計算器を備える、請求項1から12のいずれか一項に記載の時間領域/周波数領域混合型符号化装置。
【請求項１４】
前記周波数領域の励振寄与分の計算器は、前記LP残差の周波数表現と、前記カットオフ周波数までの前記時間領域の励振寄与分の周波数表現との差分を計算して、差分ベクトルの第1の部分を形成する計算器を備える、請求項7に記載の時間領域/周波数領域混合型符号化装置。
【請求項１５】
前記カットオフ周波数に続く所定の周波数範囲内の前記時間領域の励振寄与分の前記周波数表現に適用されて、前記差分ベクトルの第2の部分を形成するための縮小係数を備える、請求項14に記載の時間領域/周波数領域混合型符号化装置。
【請求項１６】
前記差分ベクトルは、前記所定の周波数範囲より上の残りの第3の部分については前記LP残差の周波数表現で形成される、請求項15に記載の時間領域/周波数領域混合型符号化装置。
【請求項１７】
前記差分ベクトルの量子化器を備える、請求項14から16のいずれか一項に記載の時間領域/周波数領域混合型符号化装置。
【請求項１８】
前記加算器は、量子化された差分ベクトルと、フィルタリング後の時間領域の励振寄与分の周波数変換されたバージョンとを前記周波数領域で加算して前記時間領域/周波数領域混合型励振を形成する、請求項17に記載の時間領域/周波数領域混合型符号化装置。
【請求項１９】
前記加算器は、前記時間領域の励振寄与分と前記周波数領域の励振寄与分とを前記周波数領域で加算する、請求項1から18のいずれか一項に記載の時間領域/周波数領域混合型符号化装置。
【請求項２０】
前記時間領域の励振寄与分と前記周波数領域の励振寄与分間でビット配分を動的に割り当てる手段を備える、請求項1から19のいずれか一項に記載の時間領域/周波数領域混合型符号化装置。
【請求項２１】
時間領域および周波数領域モデルを使用するエンコーダであって、
入力された音信号を音声または非音声に分類する分類器と、
時間領域専用符号器と、
請求項1から20のいずれか一項に記載の時間領域/周波数領域混合型符号化装置と、
前記入力された音信号の分類に応じて、前記入力された音信号を符号化するために、前記時間領域専用符号器および前記時間領域/周波数領域混合型符号化装置の一方を選択する選択器と
を備えるエンコーダ。
【請求項２２】
前記時間領域専用符号器は符号励振線形予測符号器である、請求項21に記載のエンコーダ。
【請求項２３】
前記分類器が前記入力された音信号を非音声に分類し前記入力された音信号中に一時的アタックを検出すると、前記時間領域専用符号器で前記入力された音信号を符号化する際にメモリレス時間領域符号化モードを強制的に使用させるメモリレス時間領域符号化モードの選択器を備える、請求項21または22に記載のエンコーダ。
【請求項２４】
前記時間領域/周波数領域混合型符号化装置は、時間領域寄与分の計算で可変長のサブフレームを使用する、請求項21から23のいずれか一項に記載のエンコーダ。
【請求項２５】
入力された音信号を符号化するための時間領域/周波数領域混合型符号化装置であって、
前記入力された音信号に応じて時間領域の励振寄与分を計算する計算器であって、前記時間領域の励振寄与分の計算器は、前記入力された音信号の連続したフレーム単位で前記入力された音信号を処理し、前記入力された音信号の現在のフレームで使用するサブフレーム数を計算する計算器を備え、前記時間領域の励振寄与分の計算器は、前記現在のフレームについて前記サブフレーム数の計算器によって決定されたサブフレーム数を前記現在のフレームで使用する、計算器と、
前記入力された音信号に応じて周波数領域の励振寄与分を計算する計算器と、
前記時間領域の励振寄与分と前記周波数領域の励振寄与分とを加算して、前記入力された音信号の符号化バージョンを構成する時間領域/周波数領域混合型励振を形成する加算器と
を備える時間領域/周波数領域混合型符号化装置。
【請求項２６】
前記現在のフレームの前記サブフレーム数の計算器は、利用可能なビット配分と、前記入力された音信号の高域周波数のスペクトル動特性との少なくとも1つに応答する、請求項25に記載の時間領域/周波数領域混合型符号化装置。
【請求項２７】
請求項1から20のいずれか一項に記載の時間領域/周波数領域混合型符号化装置を使用して符号化された音信号を復号するデコーダであって、
前記時間領域/周波数領域混合型励振を時間領域に変換する変換器と、
時間領域に変換された前記時間領域/周波数領域混合型励振に応じて前記音信号を合成する合成フィルタと
を備えるデコーダ。
【請求項２８】
前記変換器は逆離散コサイン変換を使用する、請求項27に記載のデコーダ。
【請求項２９】
前記合成フィルタはLP合成フィルタである、請求項27または28に記載のデコーダ。
【請求項３０】
請求項25または26に記載の時間領域/周波数領域混合型符号化装置を使用して符号化された音信号を復号するデコーダであって、
前記時間領域/周波数領域混合型励振を時間領域に変換する変換器と、
時間領域に変換された前記時間領域/周波数領域混合型励振に応じて前記音信号を合成する合成フィルタと
を備えるデコーダ。
【請求項３１】
入力された音信号を符号化する時間領域/周波数領域混合型符号化方法であって、
前記入力された音信号に応じて時間領域の励振寄与分を計算するステップと、
前記入力された音信号に応じて時間領域の励振寄与分のカットオフ周波数を計算するステップと、
前記カットオフ周波数に応じて前記時間領域の励振寄与分の周波数範囲を調整するステップと、
前記入力された音信号に応じて周波数領域の励振寄与分を計算するステップと、
前記調整された時間領域の励振寄与分と前記周波数領域の励振寄与分とを加算して、前記入力された音信号の符号化バージョンを構成する時間領域/周波数領域混合型励振を形成するステップと
とを含む方法。
【請求項３２】
前記時間領域の励振寄与分は、(a)適応コードブック寄与分のみ、または(b)前記適応コードブック寄与分および固定コードブック寄与分を含む、請求項31に記載の時間領域/周波数領域混合型符号化方法。
【請求項３３】
前記時間領域の励振寄与分を計算するステップは、前記入力された音信号の符号励振線形予測符号化を使用するステップを含む、請求項31または32に記載の時間領域/周波数領域混合型符号化方法。
【請求項３４】
現在のフレームで使用するサブフレーム数を計算するステップを含み、前記時間領域の励振寄与分を計算するステップは、前記現在のフレームについて決定されたサブフレーム数を前記現在のフレームで使用するステップを含む、請求項31から32のいずれか一項に記載の時間領域/周波数領域混合型符号化方法。
【請求項３５】
前記現在のフレームの前記サブフレーム数を計算するステップは、利用可能なビット配分と、前記入力された音信号の高域周波数のスペクトル動特性との少なくとも1つに応答する請求項34に記載の時間領域/周波数領域混合型符号化方法。
【請求項３６】
前記時間領域の励振寄与分の周波数変換を計算するステップを含む、請求項31から35のいずれか一項に記載の時間領域/周波数領域混合型符号化方法。
【請求項３７】
前記周波数領域の励振寄与分を計算するステップは、前記入力された音信号のLP分析から得られるLP残差の周波数変換を行って、前記LP残差の周波数表現を生成するステップを含む、請求項31から36のいずれか一項に記載の時間領域/周波数領域混合型符号化方法。
【請求項３８】
前記カットオフ周波数を計算するステップは、前記LP残差の周波数表現と、前記時間領域の励振寄与分の周波数表現との間の相互相関を複数の周波数帯各々について算出するステップを含み、前記符号化方法は、前記相互相関に応じて前記カットオフ周波数の推定値を見つけるステップを含む、請求項37に記載の時間領域/周波数領域混合型符号化方法。
【請求項３９】
前記周波数帯間の相互相関を平滑化して相互相関ベクトルを生成し、前記周波数帯にわたる前記相互相関ベクトルの平均を計算し、前記相互相関ベクトルの平均を正規化するステップを含み、前記カットオフ周波数の推定値を見つけるステップは、前記周波数帯のうち1つの周波数帯の最後の周波数と、前記相互相関ベクトルの前記正規化された平均にスペクトル幅値を乗算した値との差分が最小になる最後の周波数を見つけることにより、前記カットオフ周波数の第1の推定値を求めるステップを含む、請求項38に記載の時間領域/周波数領域混合型符号化方法。
【請求項４０】
前記カットオフ周波数を計算するステップは、前記時間領域の励振寄与分から算出される高調波が位置する、前記周波数帯のうち1つを見つけ、前記カットオフ周波数の前記第1の推定値と、前記高調波が位置する前記周波数帯の最後の周波数とのうち高い方の周波数を前記カットオフ周波数として選択するステップを含む、請求項39に記載の時間領域/周波数領域混合型符号化方法。
【請求項４１】
前記時間領域の励振寄与分の周波数範囲を調整するステップは、前記カットオフ周波数より上の複数の周波数帯の周波数ビンを強制的にゼロにする周波数ビンのゼロ化ステップを含む、請求項31から40のいずれか一項に記載の時間領域/周波数領域混合型符号化方法。
【請求項４２】
前記時間領域の励振寄与分の周波数範囲を調整するステップは、前記カットオフ周波数が所与の値より低い場合に、複数の周波数帯のすべての周波数ビンをゼロにする周波数ビンのゼロ化ステップを含む、請求項31から41のいずれか一項に記載の時間領域/周波数領域混合型符号化方法。
【請求項４３】
前記周波数領域の励振寄与分を計算するステップは、前記入力された音信号のLP残差の周波数表現と、前記時間領域の励振寄与分のフィルタリング後周波数表現との差分を計算するステップを含む、請求項31から42のいずれか一項に記載の時間領域/周波数領域混合型符号化方法。
【請求項４４】
前記周波数領域の励振寄与分を計算するステップは、前記LP残差の周波数表現と、前記カットオフ周波数までの前記時間領域の励振寄与分の周波数表現との差分を計算して、差分ベクトルの第1の部分を形成するステップを含む、請求項37から40のいずれか一項に記載の時間領域/周波数領域混合型符号化方法。
【請求項４５】
前記カットオフ周波数に続く所定の周波数範囲内の前記時間領域の励振寄与分の前記周波数表現に縮小係数を適用して、前記差分ベクトルの第2の部分を形成するステップを含む、請求項44に記載の時間領域/周波数領域混合型符号化方法。
【請求項４６】
前記所定の周波数範囲より上の残りの第3の部分については前記LP残差の周波数表現で前記差分ベクトルを形成するステップを含む、請求項45に記載の時間領域/周波数領域混合型符号化方法。
【請求項４７】
前記差分ベクトルを量子化するステップを含む、請求項44から46のいずれか一項に記載の時間領域/周波数領域混合型符号化方法。
【請求項４８】
調整された時間領域の励振寄与分と前記周波数領域の励振寄与分とを加算して前記時間領域/周波数領域混合型励振を形成するステップは、量子化された差分ベクトルと、前記調整された時間領域の励振寄与分の周波数変換バージョンとを前記周波数領域で加算するステップを含む、請求項47に記載の時間領域/周波数領域混合型符号化方法。
【請求項４９】
調整された時間領域の励振寄与分と前記周波数領域の励振寄与分とを加算して前記時間領域/周波数領域混合型励振を形成するステップは、前記時間領域の励振寄与分と前記周波数領域の励振寄与分とを前記周波数領域で加算するステップを含む、請求項31から48のいずれか一項に記載の時間領域/周波数領域混合型符号化方法。
【請求項５０】
前記時間領域の励振寄与分と前記周波数領域の励振寄与分間でビット配分を動的に割り当てるステップを含む、請求項31から49のいずれか一項に記載の時間領域/周波数領域混合型符号化方法。
【請求項５１】
時間領域および周波数領域モデルを使用した符号化の方法であって、
入力された音信号を音声または非音声に分類するステップと、
時間領域のみの符号化方法を備えるステップと、
請求項31から50のいずれか一項に記載の時間領域/周波数領域混合型符号化方法を備えるステップと、
前記入力された音信号の分類に応じて、前記入力された音信号を符号化するために、前記時間領域のみの符号化方法および前記時間領域/周波数領域混合型符号化方法の一方を選択するステップと
を含む方法。
【請求項５２】
前記時間領域のみの符号化方法は符号励振線形予測符号化方法である、請求項51に記載の符号化の方法。
【請求項５３】
前記入力された音信号が非音声に分類され前記入力された音信号中に一時的アタックが検出されると、前記時間領域のみの符号化方法を使用して前記入力された音信号を符号化する際にメモリレス時間領域符号化モードを強制的に使用させる、メモリレス時間領域符号化モードを選択するステップを含む、請求項51または52に記載の符号化の方法。
【請求項５４】
前記時間領域/周波数領域混合型符号化方法は、時間領域寄与分の計算で可変長のサブフレームを使用するステップを含む、請求項51から53のいずれか一項に記載の符号化の方法。
【請求項５５】
入力された音信号を符号化する時間領域/周波数領域混合型符号化方法であって、
前記入力された音信号に応じて時間領域の励振寄与分を計算するステップであって、前記時間領域の励振寄与分を計算するステップは、前記入力された音信号の連続したフレーム単位で前記入力された音信号を処理し、前記入力された音信号の現在のフレームで使用するサブフレーム数を計算するステップを含み、前記時間領域の励振寄与分を計算するステップは、前記現在のフレームについて計算されたサブフレーム数を前記現在のフレームで使用するステップを含む、ステップと
前記入力された音信号に応じて周波数領域の励振寄与分を計算するステップと、
前記時間領域の励振寄与分と前記周波数領域の励振寄与分とを加算して、前記入力された音信号の符号化バージョンを構成する時間領域/周波数領域混合型励振を形成するステップと
を含む方法。
【請求項５６】
前記現在のフレームの前記サブフレーム数を計算するステップは、利用可能なビット配分と、前記入力された音信号の高域周波数のスペクトル動特性との少なくとも1つに応答する、請求項55に記載の時間領域/周波数領域混合型符号化方法。
【請求項５７】
請求項31から50のいずれか一項に記載の時間領域/周波数領域混合型符号化方法を使用して符号化された音信号を復号する方法であって、
前記時間領域/周波数領域混合型励振を時間領域に変換するステップと、
時間領域に変換された前記時間領域/周波数領域混合型励振に応じて、合成フィルタを通じて前記音信号を合成するステップと
を含む方法。
【請求項５８】
前記時間領域/周波数領域混合型励振を時間領域に変換するステップは逆離散コサイン変換を使用するステップを含む、請求項57に記載の復号する方法。
【請求項５９】
前記合成フィルタはLP合成フィルタである、請求項57または58に記載の復号する方法。
【請求項６０】
請求項55または56に記載の時間領域/周波数領域混合型符号化方法を使用して符号化された音信号を復号する方法であって、
前記時間領域/周波数領域混合型励振を時間領域に変換するステップと、
時間領域に変換された前記時間領域/周波数領域混合型励振に応じて、合成フィルタを通じて前記音信号を合成するステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、入力された音信号を符号化するための時間領域/周波数領域混合型符号化装置および方法、ならびにそれに対応する、その時間領域/周波数領域混合型符号化装置および方法を使用したエンコーダおよびデコーダに関する。
【背景技術】
【０００２】
最新の会話コーデックは、8kbps前後のビットレートでクリーンな音声信号を非常に高い品質で表現することができ、16kbpsのビットレートの明晰度に匹敵しうる。しかし、16kbpsより低いビットレートでは、大半の場合は時間領域で入力音声信号を符号化する低処理遅延の会話コーデックは、音楽や残響音声などの一般的なオーディオ信号には適さない。この欠点を克服するために切替え型コーデックが導入されており、これは基本的に、音声が主体の入力信号の符号化には時間領域の手法を使用し、一般的なオーディオ信号の符号化には周波数領域の手法を使用するものである。しかし、そのような切替え型の解決法では、通例、音声と音楽の分類および周波数領域への変換の両方のためにより長い処理遅延が必要となる。
【０００３】
上記欠点を克服するために、時間領域および周波数領域がより統合されたモデルを提案する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ITU-T Reccommendation G.718 "Frame error robust narrow-band and wideband embedded variable bit-rate coding of speech and audio from 8-32 kbit/s", June 2008、section 6.8.1.4 and section 6.8.4.2
【非特許文献２】ITU-T recommendation G.718, sections 6.4 and 6.1.4
【非特許文献３】T.Vaillancourt et al., "Inter-tone noise reduction in a low bit rate CELP decoder," Proc. lEEE ICASSP, Taipei, Taiwan, Apr. 2009, pp. 41 13-16
【非特許文献４】Eksler, V., and Jelinek, M.(2008), "Transition mode coding for source controlled CELP codecs", IEEE Proceedings of International Conference on Acoustics, Speech and Signal Processing, March-April, pp. 4001-40043
【非特許文献５】ITU-T recommendation, G.718, Section 6.6
【非特許文献６】ITU-T recommendation G.718, section 6.7.2.2
【非特許文献７】ITU-T G.718 recommendation; Section 6.8.4.1.4.1
【非特許文献８】Mittal, U., Ashley, J.P., and Cruz-Zeno, E.M.(2007), "Low Complexity Factorial Pulse Coding of MDCT Coefficients using Approximation of Combinatorial Functions", IEEE Proceedings on Acoustic, Speech and Signals Processing, Vol. 1, April, pp. 289-292
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示は、入力された音信号を符号化するための時間領域/周波数領域混合型符号化装置に関し、この装置は、入力された音信号に応じて時間領域の励振寄与分を計算する計算器と、入力された音信号に応じて時間領域の励振寄与分のカットオフ周波数を計算する計算器と、カットオフ周波数に応じて時間領域の励振寄与分の周波数範囲を調整するフィルタと、入力された音信号に応じて周波数領域励振寄与分を計算する計算器と、フィルタリングされた時間領域の励振寄与分と周波数領域の励振寄与分とを加算して、入力された音信号の符号化バージョンを構成する時間領域/周波数領域混合型の励振を形成する加算器とを備える。
【０００６】
本開示は、時間領域および周波数領域モデルを使用するエンコーダにも関し、このエンコーダは、入力された音信号を音声または非音声に分類する分類器と、時間領域専用符号器と、上記の時間領域/周波数領域混合型符号化装置と、入力された音信号の分類に応じて、入力された音信号を符号化するために、時間領域専用符号器および時間領域/周波数領域混合型符号化装置の一方を選択する選択器とを備える。
【０００７】
本開示には、入力された音信号を符号化するための時間領域/周波数領域混合型符号化装置が記載され、この装置は、入力された音信号に応じて時間領域の励振寄与分を計算する計算器であって、時間領域の励振寄与分の計算器は、入力音信号の連続したフレーム単位で入力された音信号を処理し、入力された音信号の現在のフレームで使用するサブフレーム数を計算する計算器を備え、時間領域の励振寄与分の計算器は、現在のフレームについてサブフレーム数計算器によって決定されたサブフレーム数を現在のフレームで使用する、計算器と、入力された音信号に応じて周波数領域の励振寄与分を計算する計算器と、時間領域の励振寄与分と周波数領域の励振寄与分とを加算して、入力された音信号の符号化バージョンを構成する時間領域/周波数領域混合型の励振を形成する加算器とを備える。
【０００８】
本開示はさらに、上記の時間領域/周波数領域混合型符号化装置を使用して符号化された音信号を復号するデコーダに関し、このデコーダは、時間領域/周波数領域混合型励振を時間領域に変換する変換器と、時間領域に変換された時間領域/周波数領域混合型励振に応じて音信号を合成する合成フィルタとを備える。
【０００９】
本開示は、入力された音信号を符号化する時間領域/周波数領域混合型符号化方法にも関し、この方法は、入力された音信号に応じて時間領域の励振寄与分を計算するステップと、入力された音信号に応じて時間領域の励振寄与分のカットオフ周波数を計算するステップと、カットオフ周波数に応じて時間領域の励振寄与分の周波数範囲を調整するステップと、入力された音信号に応じて周波数領域励振寄与分を計算するステップと、調整された時間領域の励振寄与分と周波数領域の励振寄与分とを加算して、入力された音信号の符号化バージョンを構成する時間領域/周波数領域混合型の励振を形成するステップとを含む。
【００１０】
本開示にはさらに、時間領域および周波数領域モデルを使用した符号化の方法が記載され、この方法は、入力された音信号を音声または非音声に分類するステップと、時間領域のみの符号化方法を備えるステップと、上記の時間領域/周波数領域混合型符号化方法を備えるステップと、入力された音信号の分類に応じて、入力された音信号を符号化するために、時間領域のみの符号化方法および時間領域/周波数領域混合型符号化方法の一方を選択するステップとを含む。
【００１１】
本開示はさらに、入力された音信号を符号化する時間領域/周波数領域混合型符号化方法に関し、この方法は、入力された音信号に応じて時間領域の励振寄与分を計算するステップであって、時間領域の励振寄与分を計算するステップは、入力音信号の連続したフレーム単位で入力された音信号を処理し、入力された音信号の現在のフレームで使用するサブフレーム数を計算するステップを含み、時間領域の励振寄与分を計算するステップは、現在のフレームについて計算されたサブフレーム数を現在のフレームで使用するステップを含む、ステップと、入力された音信号に応じて周波数領域の励振寄与分を計算するステップと、時間領域の励振寄与分と周波数領域の励振寄与分とを加算して、入力された音信号の符号化バージョンを構成する時間領域/周波数領域混合型の励振を形成するステップとを含む。
【００１２】
本開示にはさらに、上記の時間領域/周波数領域混合型符号化方法を使用して符号化された音信号を復号する方法が記載され、この方法は、時間領域/周波数領域混合型励振を時間領域に変換するステップと、時間領域に変換された時間領域/周波数領域混合型励振に応じて、合成フィルタを通じて音信号を合成するステップとを含む。
【００１３】
上述の特徴および他の特徴は、単なる例として添付図面を参照して与えられる、以下の提案される時間領域および周波数領域モデルの例示的実施形態の非制限的な説明を読むことにより、より明らかになろう。
【図面の簡単な説明】
【００１４】
【図１】拡張CELP(符号励振線形予測)エンコーダ、例えばACELP(代数符号励振線形予測)エンコーダの概要を説明する概略ブロック図である。
【図２】図1の拡張CELPエンコーダのより詳細な構造を示す概略ブロック図である。
【図３】カットオフ周波数の計算器概要の概略ブロック図である。
【図４】図3のカットオフ周波数の計算器のより詳細な構造の概略ブロック図である。
【図５】周波数量子化器の概要の概略ブロック図である
【図６】図5の周波数量子化器のより詳細な構造の概略ブロック図である。
【発明を実施するための形態】
【００１５】
ここに提案される時間領域と周波数領域がより統合されたモデルは、処理遅延とビットレートを増大させることなく、例えば音楽や残響音声などの一般的なオーディオ信号の合成品質を向上させることができる。このモデルは、例えば、利用可能なビットが、入力信号の特性に応じて、適応コードブック、1つまたは複数の固定コードブック(例えば代数コードブック、ガウスコードブック等)、および周波数領域符号化モードの間で動的に割り当てられる線形予測(LP)の残差領域で動作する。
【００１６】
音楽や残響音声などの一般的なオーディオ信号の合成品質を向上させる低処理遅延、低ビットレートの会話コーデックを実現するために、周波数領域符号化モードを、CELP(符号励振線形予測)による時間領域符号化モードと可能な限り統合することができる。その目的のために、周波数領域符号化モードでは、例えば、LP残差領域で行われる周波数変換を使用する。それにより、1つのフレーム、例えば20msのフレームのフレームから別のフレームへの切り替えをほぼアーチファクトを生じずに行うことが可能となる。また、2つの符号化モードの統合は十分に緊密であるため、現在の符号化モードが十分に効率的でないと判断される場合に、ビット配分を別の符号化モードに動的に再割り当てすることができる。
【００１７】
提案される時間領域と周波数領域がより統合されたモデルの特徴の1つは、時間領域構成要素の可変の時間サポートであり、時間領域構成要素はフレームごとに4分の1フレームから1フレーム全体まで変動し、この構成要素をサブフレームと呼ぶ。説明のための例として、1フレームが20msの入力信号に相当するとする。これは、コーデックの内部サンプリング周波数が16kHzの場合は1フレーム当たり320サンプルに相当し、コーデックの内部サンプリング周波数が12.8kHzの場合は1フレーム当たり256サンプルに相当する。すると、4分の1フレーム(サブフレーム)は、コーデックの内部サンプリング周波数によって64または80サンプルに相当する。以下の例示的実施形態では、コーデックの内部サンプリング周波数は12.8kHzであり、256サンプルのフレーム長になるものとする。可変の時間サポートにより、最小のビットレートで主要な時間的事象を捉えて、基本の時間領域励振寄与分を生成することが可能となる。非常に低いビットレートでは、時間サポートは通常1フレーム全体である。その場合、励振信号への時間領域寄与分は適応コードブックのみからなり、対応する利得を含むそれに対応するピッチ情報は1フレームにつき1回送信される。より高いビットレートが利用可能な場合は、時間サポートを短くする(そして時間領域符号化モードに割り当てられるビットレートを増大する)ことにより、より多くの時間的事象を捉えることができる。最後に、時間サポートが十分に短く(4分の1フレーム)、利用可能なビットレートが十分に高い時には、時間領域寄与分は、対応する利得と共に、適応コードブック寄与分、固定コードブック寄与分、またはその両方を含むことができる。そして、コードブックのインデックスおよび利得を記述するパラメータがサブフレームごとに送信される。
【００１８】
低いビットレートでは、会話コーデックは、高域周波数を適切に符号化することができない。その結果、入力信号が音楽および/または残響音声を含む場合には合成品質の重大な劣化が生じる。この問題を解決するために、時間領域の励振寄与分の効率性を計算する機能が追加される。場合によっては、入力ビットレートと時間フレームサポートに関係なく、時間領域の励振寄与分が有益でないことがある。そのような場合は、すべてのビットを周波数領域符号化の次の段階に再割り当てする。しかし、大半の時間には、時間領域の励振寄与分は、特定の周波数(カットオフ周波数)までしか有益でない。そのような場合には、カットオフ周波数より上で時間領域の励振寄与分をフィルタリングで除去する。このフィルタリング動作により、有益な情報が時間領域の励振寄与分で符号化された状態を保つことができ、カットオフ周波数より上の有益でない情報を除去することができる。例示的実施形態では、このフィルタリングは、周波数領域で特定周波数より上の周波数ビンをゼロに設定することにより行われる。
【００１９】
可変の時間サポートを可変のカットオフ周波数と組み合わせると、時間領域と周波数領域が統合されたモデル内のビット割り当てが非常に動的になる。LPフィルタの量子化後のビットレートは、すべて時間領域に割り当てるか、またはすべて周波数領域に割り当てるか、またはその中間とすることができる。時間領域と周波数領域間のビットレートの割り当ては、時間領域寄与分に使用されるサブフレームの数、利用可能なビット配分、および算出されたカットオフ周波数に応じて行うことができる。
【００２０】
より効率的に入力残差に合致する合計励振を生成するために、周波数領域符号化モードを適用する。本開示の特徴は、入力LP残差の周波数表現(周波数変換)とカットオフ周波数までにフィルタリングされた時間領域の励振寄与分の周波数表現(周波数変換)との差を含んでいるベクトルであって、そのカットオフ周波数より上の入力LP残差自体の周波数表現(周波数変換)を含んでいるベクトルに周波数領域の符号化が行われることである。カットオフ周波数のすぐ上の両セグメントの間に滑らかなスペクトル遷移が挿入される。換言すると、まず時間領域の励振寄与分の周波数表現の高域周波数部分をゼロにする。スペクトルの変化していない部分とスペクトルのゼロにした部分との間の遷移領域をカットオフ周波数のすぐ上に挿入して、スペクトルの両部分間が確実に滑らかに遷移するようにする。次いで、この時間領域の励振寄与分の変更を加えたスペクトルを入力LP残差の周波数表現から引く。したがって、その結果得られるスペクトルは、カットオフ周波数より下の両スペクトルの差と、カットオフ周波数より上のLP残差の周波数表現とに対応し、いくらかの遷移領域を含んでいる。上述のように、カットオフ周波数はフレームごとに変化する可能性がある。
【００２１】
選択される周波数量子化方法(周波数領域符号化モード)に関係なく、特に非常に長い窓の場合は常にプリエコー(pre-echo)の可能性がある。本技術では、使用する窓は矩形窓であり、符号化信号と比較した余分な窓長がゼロになる、すなわち重畳加算を使用しない。これは、発生する可能性のあるプリエコーを低減するための最適な窓に相当するが、一時的アタック（temporal attacks）ではいくらかのプリエコーがなお聞こえる可能性がある。そのようなプリエコーの問題を解決する技術は多数存在するが、本開示はこのプリエコーの問題を解消するための単純な機能を提案する。この機能は、ITU-T勧告G.718の「遷移モード(Transition Mode)」(参考文献[ITU-T Recommendation G.718 "Frame error robust narrow-band and wideband embedded variable bit-rate coding of speech and audio from 8-32 kbit/s", June 2008、section 6.8.1.4 and section 6.8.4.2])から導き出されたメモリレス(memory-less)時間領域符号化モードに基づく。この機能の背後にある発想は、提案される時間領域と周波数領域がより統合されたモデルがLP残差領域に組み込まれ、それによりほぼ常にアーチファクトのない切替えが可能になることを利用するというものである。信号が一般的なオーディオ(音楽や残響音声)と考えられ、フレーム内で一時的アタックが検出された場合は、そのフレームだけがこの特別なメモリレス時間領域符号化モードで符号化される。このモードは一時的アタックに対処して、そのフレームの周波数領域符号化によって生じる可能性のあるプリエコーを回避する。
【００２２】
例示的実施形態
提案される時間領域と周波数領域がより統合されたモデルでは、上記の適応コードブック、1つまたは複数の固定コードブック(例えば代数コードブック、ガウスコードブック等)、すなわちいわゆる時間領域コードブック、および周波数領域量子化(周波数領域符号化モード)をコードブックライブラリと見なすことができ、すべての利用可能なコードブックまたはその部分集合にビットを分配することができる。これは、例えば入力された音信号がクリーンな音声である場合は、すべてのビットが時間領域符号化モードに割り当てられ、基本的に符号化を旧来のCELP方式にすることを意味する。一方、何らかの音楽セグメントの場合は、入力LP残差を符号化するために割り当てられるすべてのビットを、周波数領域、例えば変換領域で消費するのが最適である場合がある。
【００２３】
上記説明で指摘したように、時間領域符号化モードと周波数領域符号化モードの時間サポートは、同じである必要はない。異なる時間領域量子化方法(適応コードブックおよび代数コードブックの検索)に消費されるビットは、通常はサブフレーム単位(典型的には4分の1フレーム、すなわち5msの時間サポート)で分配され、周波数領域符号化モードに割り当てられるビットは、フレーム単位(通例は20msの時間サポート)で分配して周波数分解能を改善する。
【００２４】
時間領域CELP符号化モードに割り当てられるビット配分は、入力された音信号に応じて動的に制御することもできる。場合によっては、時間領域のCELP符号化モードに割り当てられるビット配分をゼロにすることができ、これは実質的に全ビット配分が周波数領域符号化モードに当てられることを意味する。時間領域の手法と周波数領域の手法の両方についてLP残差領域で動作することを選択すると、2つの主な利点がある。第1に、これはCELP符号化モードと両立することができ、音声信号の符号化で効率的であることが分かっている。その結果、2種類の符号化モードの切替えによるアーチファクトが生じない。第2に、元の入力された音信号に対するLP残差の動特性の低さとその相対的な平坦性のために、周波数変換に矩形窓を使用することが容易になり、したがって重なりのない窓を使用することが可能となる。
【００２５】
コーデックの内部サンプリング周波数が12.8kHz(すなわち1フレーム当たり256サンプル)である非制限的な例では、ITU-T勧告G.718と同様に、時間領域のCELP符号化モードで使用するサブフレームの長さは、典型的な4分の1フレーム長(5ms)から2分の1フレーム(10ms)または全フレーム長(20ms)まで異なる可能性がある。サブフレーム長の決定は、利用可能なビットレート、および入力された音信号の分析、特にその入力された音信号のスペクトル動特性の分析に基づく。サブフレーム長の決定は閉ループ方式で行うことができる。複雑性を軽減するために、サブフレーム長の決定を開ループ方式で行うこともできる。サブフレーム長はフレームごとに変えることができる。
【００２６】
特定のフレームでサブフレーム長が選択されると、標準的な閉ループのピッチ分析を行い、励振信号への第1の寄与分を適応コードブックから選択する。そして、利用可能なビット配分と入力された音信号の特性(例えば入力音声信号の場合)に応じて、1つまたは数個の固定コードブックから得た第2の寄与分を変換領域符号化を行う前に追加することができる。その結果得られる励振を時間領域の励振寄与分と呼ぶ。一方、非常に低いビットレートで一般的なオーディオの場合は、固定コードブック段階を省き、残りのすべてのビットを変換領域符号化モードに使用する方がよい場合がしばしばある。変換領域符号化モードは例えば周波数領域符号化モードである。上記のように、サブフレーム長は4分の1フレーム、2分の1フレーム、または1フレームの長さである。固定コードブックの寄与分は、サブフレーム長が4分の1フレーム長に等しい場合にのみ使用する。サブフレーム長を2分の1フレームまたは1フレーム長に決定した場合は、適応コードブックの寄与分のみを使用して時間領域励振を表し、残りのすべてのビットは周波数領域符号化モードに割り当てる。
【００２７】
時間領域の励振寄与分の算出が完了すると、その効率を評価し、量子化する必要がある。時間領域における符号化の利得が非常に低い場合は、時間領域の励振寄与分を完全になくし、代わりにすべてのビットを周波数領域符号化モードに使用する方が効率的である。対して、例えばクリーンな入力音声の場合は、周波数領域符号化モードは必要でなく、すべてのビットを時間領域符号化モードに割り当てる。しかし、しばしば、時間領域における符号化は特定の周波数までしか効率的でない。その周波数を時間領域の励振寄与分のカットオフ周波数と呼ぶ。そのようなカットオフ周波数を判定することにより、全時間領域符号化が、周波数領域符号化に逆らって作用せずに、より良好な最終的合成を得る助けとなることが保証される。
【００２８】
カットオフ周波数は周波数領域で推定する。カットオフ周波数を算出するために、まずLP残差と時間領域の符号化寄与分両方のスペクトルを所定数の周波数帯に分割する。周波数帯の数と、各周波数帯に含まれる周波数ビンの数は、実装ごとに異なってよい。周波数帯ごとに、時間領域の励振寄与分の周波数表現とLP残差の周波数表現との間の正規化相関を算出し、隣接する周波数帯間で相関を平滑化する。周波数帯単位の相関は、0.5を下限とし、0〜1の間に正規化される。次いで、平均相関を、すべての周波数帯の相関の平均として算出する。次いで、カットオフ周波数の第1の推定のために、平均相関を0から2分の1サンプリングレート(2分の1サンプリングレートは「1」の正規化相関値に相当する)の間に調節する。そして、カットオフ周波数の第1の推定値を、その値に最も近い周波数帯の上限として求める。実装の一例では、12.8kHzの16個の周波数帯を相関の算出のために定義する。
【００２９】
人間の耳の音響心理学的性質を利用して、ピッチの第8高調波周波数の推定位置を、相関の算出で推定されたカットオフ周波数と比較することにより、カットオフ周波数推定の信頼性を向上させる。その位置が相関の算出で推定されたカットオフ周波数より高い場合は、ピッチの第8高調波周波数の位置に対応するようにカットオフ周波数を変更する。そして、カットオフ周波数の最終値を量子化し、送信する。実装の一例では、ビットレートに応じて、そのような量子化に3ビットまたは4ビットを使用して、8個または16個の可能なカットオフ周波数を得る。
【００３０】
カットオフ周波数が分かると、周波数領域の励振寄与分の周波数量子化を行う。まず、入力LP残差の周波数表現(周波数変換)と、時間領域の励振寄与分の周波数表現(周波数変換)との差分を求める。次いで、その差分からカットオフ周波数までと、残りのスペクトルの入力LP残差の周波数表現への滑らかな推移とから構成される新しいベクトルを作成する。そして、新しいベクトル全体に周波数量子化を適用する。実装の一例では、この量子化では、支配的な(最もエネルギーが高い)スペクトルパルスの正負符号および位置を符号化する。1つの周波数帯につき量子化するパルスの数は、周波数領域符号化モードに利用可能なビットレートに関係する。利用可能なビットがすべての周波数帯をカバーするのに十分でない場合は、残りの周波数帯はノイズのみで埋める。
【００３１】
前の段落で説明した量子化方法を使用した周波数帯の周波数量子化では、その周波数帯にあるすべての周波数ビンが量子化されることは保証されない。これは特に、1周波数帯当たりの量子化されるパルスの数が比較的少ない低ビットレートの場合にそうである。そのような量子化されていないビンに起因する可聴アーチファクトの出現を防ぐために、何らかのノイズを付加してそれらの空白を埋める。低いビットレートでは、挿入されたノイズではなく量子化されたパルスがスペクトルの大半を占めるので、ノイズスペクトルの振幅は、パルスの振幅の何分の1かにしか相当しない。スペクトル中の付加ノイズの振幅は、利用可能なビット配分が低い(より多くのノイズを許す)時に大きくなり、利用可能なビット配分が大きい時には小さくなる。
【００３２】
周波数領域符号化モードでは、周波数帯ごとに利得を算出して、非量子化信号のエネルギーと量子化信号のエネルギーを一致させる。利得はベクトル量子化され、周波数帯ごとに量子化信号に適用される。エンコーダが時間領域のみの符号化モードから時間領域/周波数領域混合型符号化モードにビット割り当てを変更すると、時間領域のみの符号化モードの周波数帯ごとの励振スペクトルエネルギーは、時間領域/周波数領域混合型符号化モードの周波数帯ごとの励振スペクトルエネルギーと一致しない。このエネルギーの不一致は、特に低ビットレートで、切替えによるアーチファクトを生じさせる可能性がある。このビットの再割り当てによって生じる可聴の劣化を軽減するために、周波数帯ごとに長期間の利得を算出し、時間領域符号化モードから時間領域/周波数領域混合型符号化モードに切り替わった後に適用して、数フレームにわたり各周波数帯のエネルギーを補正することができる。
【００３３】
周波数領域符号化モードが完了すると、周波数領域励振寄与分を時間領域の励振寄与分の周波数表現(周波数変換)に加算することによって合計励振を求め、その後励振寄与分の合計を変換して時間領域に戻すことにより合計励振を形成する。最後に、LP合成フィルタで合計励振をフィルタリングすることにより、合成信号を算出する。一実施形態では、時間領域の励振寄与分のみを使用してサブフレーム単位でCELP符号化メモリを更新する一方で、合計励振を使用してそれらのメモリをフレーム境界で更新する。別の可能な実装では、時間領域の励振寄与分のみを使用して、サブフレーム単位とフレーム境界の両方でCELP符号化メモリを更新する。その結果、周波数領域の量子化信号がコアCELP層と別個に上層の量子化層を構成する埋め込み構造が得られる。この特定の事例では、適応コードブックの内容を更新するために、常に固定コードブックを使用する。ただし、周波数領域符号化モードは1フレーム全体に適用することができる。この埋め込み方式は、12kbps前後からそれ以上のビットレートに有効である。
【００３４】
1)音種類の分類
図1は、拡張CELPエンコーダ100、例えばACELPエンコーダの概略を示す概略ブロック図である。言うまでもなく、同じ概念を使用して他の種類の拡張CELPエンコーダを実装することができる。図2は、拡張CELPエンコーダ100のより詳細な構造の概略ブロック図である。
【００３５】
CELPエンコーダ100は、入力された音信号101(図1および図2)のパラメータを分析するプリプロセッサ102(図1)を備える。図2を参照すると、プリプロセッサ102は、入力された音信号101のLP分析器201、スペクトル分析器202、開ループピッチ分析器203、および信号分類器204を備える。分析器201および202は、CELP符号化で通常行われるLPおよびスペクトル分析を行う。これについては、例えばITU-T勧告G.718の項6.4および6.1.4に記載されており、したがって本開示ではこれ以上説明しない。
【００３６】
プリプロセッサ102は、例えば参考文献[T.Vaillancourt et al., "Inter-tone noise reduction in a low bit rate CELP decoder," Proc. IEEE ICASSP, Taipei, Taiwan, Apr. 2009, pp. 41 13-16]に記載されるのと同様にして、または他の信頼できる音声/非音声の判別方法により、第1レベルの分析を行って、入力された音信号101を音声と非音声(一般的なオーディオ(音楽や残響音声))に分類する。上記参考文献は、参照により全内容が本明細書に組み込まれる。
【００３７】
この第1レベルの分析の後、プリプロセッサ102は入力信号パラメータの第2レベルの分析を行って、強い非音声特性を持つが時間領域の手法で符号化した方がよい音信号に時間領域のCELP符号化(周波数領域の符号化を用いない)を使用できるようにする。エネルギーの重大な変動が発生すると、この第2レベルの分析において、CELPエンコーダ100はメモリレス時間領域符号化モードに切り替わることができる。このモードは、参考文献[Eksler, V., and Jelinek, M.(2008), "Transition mode coding for source controlled CELP codecs", IEEE Proceedings of International Conference on Acoustics, Speech and Signal Processing, March-April, pp. 4001-40043]では一般に「遷移モード(Transition Mode)」と呼ばれている。参考文献の全内容は参照により本明細書に組み込まれる。
【００３８】
この第2レベルの分析時に、信号分類器204は、開ループのピッチ分析器203から得られる開ループのピッチ相関の平滑化されたバージョンcstの変動σc、現在の合計フレームエネルギーEtot、および現在の合計フレームエネルギーと直前の合計フレームエネルギーとの差分Ediffを計算し、使用する。初めに、平滑化された開ループピッチ相関の変動を以下のように算出し、
【００３９】
【数１】
0005978218.tif 000002
【００４０】
cstは、
cst=0.9・col+0.1・cst
と定義される平滑化された開ループのピッチ相関である。
colは、例えばITU-T勧告G.718、項6.6に記載される、CELP符号化技術の当業者に知られる方法を使用して分析器203で計算された開ループのピッチ相関であり、
【００４１】
【数２】
0005978218.tif 000003
【００４２】
は、平滑化された開ループのピッチ相関cstの直近の10フレームにわたる平均であり、
σcは、平滑化された開ループのピッチ相関の変動である。
【００４３】
第1レベルの分析の際に、信号分類器204がフレームを非音声に分類すると、信号分類器204が下記の検証を第2レベルの分析で行って、時間領域/周波数領域混合型符号化モードを使用することが本当に安全であるかどうかを判断する。ただし、時間領域符号化モードの前処理機能で推定された時間領域手法の1つを使用して、現在のフレームを時間領域符号化モードのみで符号化する方がよい場合がある。特に、メモリレス時間領域符号化モードを使用して、時間領域/周波数領域混合型符号化モードによって生じる可能性のあるプリエコーを最小に低減する方がよい場合もある。
【００４４】
時間領域/周波数領域混合型符号化を使用すべきかどうかについての第1の検証として、信号分類器204は、現在の合計フレームエネルギーと直前のフレームの合計エネルギーとの差分を計算する。現在の合計フレームエネルギーEtotと直前のフレーム合計エネルギーとの差Ediffが6dBより高い場合は、入力された音信号中にいわゆる「一時的アタック」があることに相当する。そのような状況では、音声/非音声の決定および選択された符号化モードを上書きし、メモリレス時間領域符号化モードを強制する。より具体的には、拡張CELPエンコーダ100は、時間のみ/時間-周波数符号化選択器103(図1)を備え、選択器103自体は、音声/一般オーディオ選択器205(図2)、一時的アタック検出器208(図2)、およびメモリレス時間領域符号化モードの選択器206を備える。すなわち、選択器205で非音声信号(一般オーディオ)と判定され、検出器208で入力された音信号中の一時的アタックが検出されると、選択器206は閉ループCELP符号器207(図2)に強制的にメモリレス時間領域符号化モードを使用させる。閉ループCELP符号器207は、図1の時間領域専用符号器104の一部を形成する。
【００４５】
第2の検証として、現在の合計フレームエネルギーEtotと直前のフレームの合計エネルギーの差Ediffが6dB以下であるが、
-平滑化された開ループのピッチ相関Cstが0.96より高いか、または
-平滑化された開ループのピッチ相関Cstが0.85より高く、かつ現在の合計フレームエネルギーEtotと直前のフレームの合計エネルギーとの差Ediffが0.3dB未満であるか、または
-平滑化された開ループのピッチ相関σcの変動が0.1未満であり、かつ現在の合計フレームエネルギーEtotと直前のフレーム合計エネルギーの差Ediffが0.6dB未満であるか、または
-現在の合計フレームエネルギーEtotが20dB未満であり、
それが、第1レベルの分析の決定を変更しようとする少なくとも2番目の連続したフレーム(cnt≧2)である場合は、音声/一般オーディオ選択器205は、現在のフレームは、閉ループの汎用CELP符号器207(図2)を使用して、時間領域のみのモードを使用して符号化することを決定する。
【００４６】
そうでない場合、時間/時間-周波数符号化選択器103は、以下の説明で開示される時間領域/周波数領域混合型符号化装置によって行われる時間領域/周波数領域混合型符号化モードを選択する。
【００４７】
これは、例えば非音声の音信号が音楽である場合には、以下の擬似コードで要約することができる。
【００４８】
【数３】
0005978218.tif 000004
【００４９】
Etotは
【００５０】
【数４】
0005978218.tif 000005
【００５１】
として表される現在のフレームエネルギーであり、(x(i)は、フレーム中の入力された音信号のサンプルを表し)、Ediffは、現在の合計フレームエネルギーEtotと直前のフレームの合計エネルギーの差である。
【００５２】
2)サブフレーム長の決定
典型的なCELPでは、入力された音信号サンプルは10〜30msのフレーム単位で処理され、それらのフレームを、適応コードブックおよび固定コードブックの分析のために数個のサブフレームに分割する。例えば、20msのフレーム(内部サンプリング周波数が12.8kHzの場合は256サンプル)を使用することができ、4つの5msサブフレームに分割することができる。可変のサブフレーム長は、1つの符号化モードへの時間領域と周波数領域の完全な統合を実現するために使用される機能である。サブフレーム長は、典型的な4分の1フレーム長から、2分の1フレーム、または1フレーム長全体まで変化させることができる。言うまでもなく、別の数のサブフレーム(サブフレーム長)の使用を実装することができる。
【００５３】
サブフレームの長さ(サブフレーム数)、すなわち時間サポートの決定は、利用可能なビットレートおよびプリプロセッサ102における入力信号の分析、特に分析器209による入力された音信号101の高域周波数のスペクトル動特性、および分析器203から得られる平滑化された開ループのピッチ相関を含む開ループのピッチ分析に基づいて、サブフレーム数の計算器210によって決定される。分析器209は、スペクトル分析器202からの情報に応答して、入力信号101の高域周波数のスペクトル動特性を求める。スペクトル動特性は、そのノイズフロアが入力スペクトル動特性の表現を持たない入力スペクトルとして、ITU-T勧告G.718、項6.7.2.2に記載される機能で算出される。4.4kHz〜6.4kHzの周波数帯における入力された音信号101の分析器209で判定された平均スペクトル動特性が9.6dB未満であり、最後のフレームが高いスペクトル動特性を有すると見なされた場合、入力信号101は、高域周波数に高いスペクトル動特性成分を有するとは見なされなくなる。その場合は、時間領域符号化モードにより多くのサブフレームを追加するか、または周波数領域寄与分の低域周波数部分のパルスを強制的に増やすことにより、例えば4kHz未満の周波数により多くのビットを割り当てることができる。
【００５４】
一方、分析器209による判定で高いスペクトル動特性を有すると見なされなかった最後のフレームの平均スペクトル動特性と比べた、入力信号101の高域周波数成分の平均動特性の増加が、例えば4.5dBより大きい場合は、入力された音信号101は、例えば4kHzを超える高いスペクトル動的成分を有すると見なされる。その場合は、利用可能なビットレートに応じて、入力された音信号101の高域周波数を符号化するためにいくらかの追加的なビットを使用して、1つまたは複数の周波数パルスの符号化を可能にする。
【００５５】
計算器210(図2)で決定されるサブフレーム長は、利用可能なビット配分にも依存する。非常に低いビットレート、例えば9kbps未満のビットレートでは、時間領域符号化には1つのサブフレームしか利用することができず、そうでないと、周波数領域符号化に利用可能なビット数が不十分になる。中間ビットレート、例えば9kbps〜16kbpsのビットレートでは、高域周波数が高い動的スペクトル成分を含んでいる場合には1サブフレームが使用され、そうでない場合には2サブフレームが使用される。中間から高いビットレート、例えば16kbps前後からそれ以上のビットレートでは、「音種類の分類」の項の段落[0031]で定義した平滑化された開ループのピッチ相関Cstが0.8より高ければ、4サブフレームの事例も利用可能になる。
【００５６】
1つまたは2つのサブフレームの場合は、時間領域符号化が適応コードブックの寄与分(符号化ピッチ遅延およびピッチ利得を含む)のみに制限される。すなわちその場合は固定コードブックは使用されないのに対して、4サブフレームの場合は、利用可能なビット配分が十分であれば、適応型および固定コードブックの寄与分が可能となる。4サブフレームの事例は、16kbps前後から可能になる。ビット配分の制約のために、時間領域励振は、低ビットレートでは適応コードブックの寄与分のみからなる。高いビットレート、例えば24kbps以上のビットレートでは、単純な固定コードブックの寄与分を追加することができる。すべての事例で、事後に時間領域符号化の効率性を評価して、どの周波数までそのような時間領域符号化が有用であるかを判断する。
【００５７】
3)閉ループのピッチ分析
時間領域/周波数領域混合型符号化モードを使用する場合は、必要であれば固定型代数コードブックの検索を伴う閉ループのピッチ分析を行う。そのために、CELPエンコーダ100(図1)は、時間領域励振寄与分の計算器(図1および図2)105を備える。この計算器はさらに分析器211(図2)を備え、分析器211は、開ループピッチ分析器203で行われる開ループのピッチ分析と、計算器210で行われるサブフレーム長(すなわち1フレーム中のサブフレーム数)の決定に応じて、閉ループのピッチ分析を行う。閉ループのピッチ分析は当業者にはよく知られており、実装の一例が例えば参考文献[ITU-T G.718 Recommendation; Section 6.8.4.1.4.1]に記載される。上記参考文献は、参照により全内容が本明細書に組み込まれる。閉ループのピッチ分析の結果、適応コードブックパラメータとも呼ばれるピッチパラメータが算出され、このパラメータは主としてピッチ遅延(適応コードブックインデックスT)およびピッチ利得(または適応コードブック利得b)からなる。適応コードブックの寄与分は通常は、遅延Tにおける過去の励振か、またはそれを補間したバージョンである。適応コードブックインデックスTを符号化し、遠隔のデコーダに送信する。ピッチ利得bも量子化し、遠隔のデコーダに送信する。
【００５８】
閉ループのピッチ分析が完了すると、CELPエンコーダ100は、通常は固定コードブックインデックスおよび固定コードブック利得からなる最良の固定コードブックパラメータを見つけるために検索される固定コードブック212を備える。固定コードブックのインデックスおよび利得が固定コードブックの寄与分を形成する。固定コードブックインデックスを符号化し、遠隔のデコーダに送信する。固定コードブック利得も量子化し、遠隔のデコーダに送信する。固定代数コードブックとその検索はCELP符号化技術の当業者によく知られているものと思われ、そのため本開示ではこれ以上説明しない。
【００５９】
適応コードブックのインデックスおよび利得ならびに固定コードブックのインデックスおよび利得が、時間領域のCELP励振寄与分を形成する。
【００６０】
4)対象信号の周波数変換
時間領域/周波数領域混合型符号化モードの周波数領域符号化の際には、変換領域、例えば周波数領域で2つの信号を表す必要がある。一実施形態では、時間から周波数への変換は、256点タイプII(またはタイプIV)のDCT(離散コサイン変換)を使用して実現することができ、12.8kHzの内部サンプリング周波数で25Hzの分解能を得ることができるが、他の変換を使用することもできる。別の変換を使用する場合は、周波数の分解能(上記で定義した)、周波数帯の数および1band当たりの周波数ビンの数(さらに下記で定義する)をそれに応じて変更する必要がある可能性もある。この点に関して、CELPエンコーダ100は、分析器201による入力された音信号のLP分析で得られた入力LP残差res(n)に応じて周波数領域励振寄与分を計算する計算器107(図1)を備える。図2に示すように、計算器107は、DCT213、例えば入力LP残差res(n)のタイプIIのDCTを計算することができる。CELPエンコーダ100は、時間領域の励振寄与分の周波数変換の計算器106(図1)も備える。図2に示すように、計算器106は、時間領域の励振寄与分のDCT214、例えばタイプIIのDCTを計算することができる。入力LP残差fresおよび時間領域のCELP励振寄与分fexcの周波数変換は、以下の式を使用して計算することができる。
【００６１】
【数５】
0005978218.tif 000006
【００６２】
および
【００６３】
【数６】
0005978218.tif 000007
【００６４】
式中、res(n)は入力LP残差であり、etd(n)は時間領域の励振寄与分であり、Nはフレーム長である。可能な実装では、対応する12.8kHzの内部サンプリング周波数の場合、フレーム長は256サンプルである。時間領域の励振寄与分は以下の関係により与えられる。
etd(n)=bv(n)+gc(n)
【００６５】
式中、v(n)は適応コードブックの寄与分であり、bは適応コードブック利得であり、c(n)は固定コードブックの寄与分であり、gは固定コードブック利得である。時間領域の励振寄与分は、前述で説明したように、適応コードブックの寄与分のみからなる場合があることに留意されたい。
【００６６】
5)時間領域寄与分のカットオフ周波数
一般的なオーディオサンプルでは、時間領域の励振寄与分(適応型および/または固定型代数コードブックの組み合わせ)は、周波数領域の符号化と比べると、符号化の向上に常に大きく貢献するという訳ではない。しばしば、スペクトルの低い部分の符号化は改善するが、スペクトルの高い部分の改善は最小にとどまる。CELPエンコーダ100は、時間領域の励振寄与分で得られる符号化の向上が低くて有用性を失う周波数であるカットオフ周波数の発見器およびフィルタ108(図1)を備える。発見器およびフィルタ108は、図2のカットオフ周波数の計算器215とフィルタ216を備える。初めに、各周波数帯の計算器107で得られる周波数変換された入力LP残差と、計算器106で得られる周波数変換された時間領域の励振寄与分(上記の項4で定義したようにそれぞれfresおよびfexcと表記する)との正規化相互相関の算出器303(図3および図4)を使用して、時間領域の励振寄与分のカットオフ周波数を計算器215(図2)で推定する。例えば16個の周波数帯それぞれに含まれる最後の周波数LfをHz単位で以下のように定義する。
【００６７】
【数７】
0005978218.tif 000008
【００６８】
説明のための本例では、12.8kHzのサンプリング周波数で20msフレームの場合に、1周波数帯当たりの周波数ビンの数Bb、1周波数帯当たりの累積周波数ビンCBb、および1周波数帯ごとの正規化相互相関CC(i)を以下のように定義する。
【００６９】
【数８】
0005978218.tif 000009
【００７０】
ここで
【００７１】
【数９】
0005978218.tif 000010
【００７２】
かつ
【００７３】
【数１０】
0005978218.tif 000011
【００７４】
である。
【００７５】
Bbは、1周波数帯Bb当たりの周波数ビンの数であり、CBbは、1周波数帯当たりの累積周波数ビンであり、
【００７６】
【数１１】
0005978218.tif 000012
【００７７】
は周波数帯ごとの正規化された相互相関であり、
【００７８】
【数１２】
0005978218.tif 000013
【００７９】
は周波数帯の励振エネルギーであり、同様に
【００８０】
【数１３】
0005978218.tif 000014
【００８１】
は1周波数帯当たりの残余エネルギーである。
【００８２】
カットオフ周波数の計算器215は、異なる周波数帯間の相互相関ベクトルを平滑化するためにいくつかの動作を行う、周波数帯間の相互相関の平滑器304(図3および図4)を備える。より具体的には、周波数帯間の相互相関の平滑器304は、下記の関係を使用して新しい相互相関ベクトル
【００８３】
【数１４】
0005978218.tif 000015
【００８４】
を算出する。
【００８５】
【数１５】
0005978218.tif 000016
【００８６】
ここで、α=0.95、δ=(1-α)、Nb=13、β=δ/2である
【００８７】
カットオフ周波数の計算器215はさらに、最初のNb個の周波数帯(Nb=13であり、5575Hzに相当する)にわたる新しい相互相関ベクトル
【００８８】
【数１６】
0005978218.tif 000017
【００８９】
の平均を計算する計算器305(図3および図4)を備える。
【００９０】
カットオフ周波数の計算器215はカットオフ周波数モジュール306(図3)も備え、モジュール306は、相互相関の制限器406(図4)、相互相関の正規化器407、および相互相関が最も低い周波数を見つける発見器408を含む。より具体的には、制限器406は、相互相関ベクトルの平均を0.5の最小値に制限し、正規化器408は、制限された相互相関ベクトルの平均を0〜1の間に正規化する。発見器408は、1つの周波数帯Lfの最後の周波数と、相互相関ベクトル
【００９１】
【数１７】
0005978218.tif 000018
【００９２】
の正規化平均
【００９３】
【数１８】
0005978218.tif 000019
【００９４】
に入力された音信号のスペクトルの幅F/2を乗算した値との差を最小にする周波数帯Lfの最後の周波数を見つけることにより、カットオフ周波数の第1の推定値を得る。
【００９５】
【数１９】
0005978218.tif 000020
【００９６】
ここで
【００９７】
【数２０】
0005978218.tif 000021
【００９８】
【数２１】
0005978218.tif 000022
【００９９】
は、カットオフ周波数の第1の推定値である。
【０１００】
低ビットレートで、正規化平均
【０１０１】
【数２２】
0005978218.tif 000023
【０１０２】
が非常に高くなることが全くない場合、または
【０１０３】
【数２３】
0005978218.tif 000024
【０１０４】
の値を人為的に増大して時間領域の寄与分に多少多くの重みを与えたい場合には、
【０１０５】
【数２４】
0005978218.tif 000025
【０１０６】
の値を固定の倍率、例えば8kbps未満のビットレートで増すことが可能であり、例示的実装では
【０１０７】
【数２５】
0005978218.tif 000026
【０１０８】
に常に2が乗算される。
【０１０９】
カットオフ周波数の精度は、下記の構成要素を算出に追加することによって上げることができる。そのために、カットオフ周波数の計算器215は、下記の関係を使用してすべてのサブフレームの時間領域の励振寄与分の最小または最低のピッチ遅延値から算出される第8高調波の外挿器410(図4)を備える。
【０１１０】
【数２６】
0005978218.tif 000027
【０１１１】
Fs=12800Hzであり、Nsubはサブフレームの数であり、T(i)はサブフレームiの適応コードブックインデックスまたはピッチ遅延である。
【０１１２】
カットオフ周波数の計算器215は、第8高調波
【０１１３】
【数２７】
0005978218.tif 000028
【０１１４】
が位置する周波数帯を見つける発見器409(図4)も備える。より具体的には、すべてのi<Nbについて、発見器409は、以下の不等式がなお成立する最も高い周波数帯を探す。
【０１１５】
【数２８】
0005978218.tif 000029
【０１１６】
その周波数帯のインデックスを
【０１１７】
【数２９】
0005978218.tif 000030
【０１１８】
と呼び、これは、第8高調波が位置する可能性が高い周波数帯を示す。
【０１１９】
カットオフ周波数の計算器215は、最後に、最終的なカットオフ周波数ftcの選択器411(図4)を備える。より具体的には、選択器411は、下記の関係を使用して、発見器408から得られるカットオフ周波数の第1の推定値ftc1と、第8高調波が位置する周波数帯の最後の周波数
【０１２０】
【数３０】
0005978218.tif 000031
【０１２１】
のうち高い方の周波数を維持する。
【０１２２】
【数３１】
0005978218.tif 000032
【０１２３】
図3および図4に示すように、
-  カットオフ周波数の計算器215はさらに、ゼロにする周波数ビンの数の決定器307(図3)を備え、決定器307自体は、パラメータの分析器415(図4)、およびゼロにする周波数ビンの選択器416(図4)を含む。
-  周波数領域で動作するフィルタ216(図2)は、ゼロにすることが決定された周波数ビンをゼロにするゼロ化器308(図3)を備える。ゼロ化器は、すべての周波数ビンをゼロにする(図4のゼロ化器417)か、または(図4のフィルタ418)滑らかな遷移領域が補われたカットオフ周波数ftcより上に位置する高域周波数ビンの一部のみをゼロにすることができる。遷移領域は、カットオフ周波数ftcより上で、かつゼロにされるビンより下に位置し、ftcより下の無変更のスペクトルと、高域周波数のゼロにされたビンとの間が滑らかにスペクトル遷移するようにする。
【０１２４】
説明のための本例では、選択器411で選択されたカットオフ周波数ftcが775Hz以下の場合、分析器415は、時間領域の励振寄与分のコストが高すぎると見なす。選択器416は、時間領域の励振寄与分の周波数表現のすべての周波数ビンをゼロにするために選択し、ゼロ化器417ですべての周波数ビンを強制的にゼロにすると共に、カットオフ周波数ftcも強制的にゼロにする。そして、時間領域の励振寄与分に割り当てられたすべてのビットを周波数領域符号化モードに割り当て直す。そうでない場合は、分析器415は、ゼロ化器418でゼロにするために、カットオフ周波数ftcより高い高域周波数ビンを強制的に選択器416に選択させる。
【０１２５】
最後に、カットオフ周波数の計算器215は、カットオフ周波数ftcをそのカットオフ周波数の量子化されたバージョンftcQに変換するカットオフ周波数の量子化器309(図3および図4)を備える。カットオフ周波数パラメータに3ビットが関連付けられている場合、出力値の可能な集合は以下のように定義することができる(単位:Hz)。
ftcQ-{0,1175,1575,1975,2375,2775,3175,3575}
【０１２６】
最終的なカットオフ周波数ftcの選択を安定させて、量子化されたバージョンftcQが不適当な信号セグメント内で0と1175の間で切り替わることを防ぐために多くの機構を使用することができる。これを実現するために、本例示的実装における分析器415は、閉ループのピッチ分析器211(図2)から得られる長期の平均ピッチ利得Glt412、開ループのピッチ分析器203から得られる開ループの相関Col413、および平滑化された開ループの相関Cstに応答することができる。完全に周波数のみの符号化に切り替わるのを防ぐために、下記の条件が満たされる時には、分析器415は周波数のみの符号化を許可しない。すなわちftcQは0に設定することができない。
ftc>2375Hz
または
ftc>1175HzかつCol>0.7かつGlt≧0.6
または
ftc≧1175HzかつCst>0.8かつGlt≧0.4
または
ftcQ(t-1)!=0かつCol>0.5かつCst>0.5かつGlt≧0.6
【０１２７】
Colは開ループのピッチ相関413であり、Cstは、Cst=0.9・Col+0.1・Cstと定義される開ループのピッチ相関414の平滑化されたバージョンに相当する。さらに、Glt(図4の項目412)は、時間領域の励振寄与分内で閉ループのピッチ分析器211で取得されたピッチ利得の長期平均に相当する。ピッチ利得の長期平均412は、
【０１２８】
【数３２】
0005978218.tif 000033
【０１２９】
と定義され、
【０１３０】
【数３３】
0005978218.tif 000034
【０１３１】
は現在のフレームにわたる平均ピッチ利得である。周波数領域のみの符号化と時間領域/周波数領域混合型符号化の間で切り替わる率をさらに下げるために、ハングオーバーを追加することができる。
【０１３２】
6)周波数領域の符号化
差分ベクトルの生成
時間領域の励振寄与分のカットオフ周波数を定義すると、周波数領域符号化が行われる。CELPエンコーダ100は減算器または計算器109(図1、図2、図5、および図6)を備え、計算器109は、DCT213(図2)で得られる入力LP残差の周波数変換fres502(図5および図6)(または他の周波数表現)と、DCT214(図2)で得られる、ゼロから時間領域の励振寄与分のカットオフ周波数ftcまでの時間領域の励振寄与分の周波数変換fexc501(図5および図6)(または他の周波数表現)との差で、差分ベクトルfdの第1の部分を形成する。縮小係数603(図6)を次の遷移領域ftrans=2kHz(この実装例では80個の周波数ビン)のために周波数変換fexc501に適用してから、周波数変換fresのそれぞれのスペクトル部分から減算する。減算の結果が、カットオフ周波数ftcからftc+ftransまでの周波数範囲に相当する差分ベクトルfdの第2の部分を構成する。ベクトルfdの残りの第3の部分には、入力LP残差の周波数変換fres502を使用する。縮小係数603の適用で得られるベクトルfdの縮小された部分は、任意種のフェードアウト機能で行うことができ、数個のみの周波数ビンに短縮することができるが、カットオフ周波数ftcが変化している時に利用可能なビット配分がエネルギー振動アーチファクトを防止するのに十分であると判断される場合は省略することも可能である。例えば、12.8kHzの場合に256点DCTで1周波数ビンfbin=25Hzに相当する25Hzの分解能では、差分ベクトルは
【０１３３】
【数３４】
0005978218.tif 000035
【０１３４】
として構築することができる。
【０１３５】
fres、fexc、およびftcは、上記項4および5で定義している。
【０１３６】
周波数パルスの検索
CELPエンコーダ100は、差分ベクトルfdの周波数量子化器110(図1および図2)を備える。差分ベクトルfdは、いくつかの方法を使用して量子化することができる。いずれの場合も、周波数パルスを探し、量子化しなければならない。可能な単純な方法の1つでは、周波数領域符号化は、スペクトル全体で差分ベクトルfdの最もエネルギーが高いパルスの検索を含む。パルス検索の方法は、スペクトルを複数の周波数帯に分割し、周波数帯ごとに一定数のパルスを許可するという単純なものとすることができる。周波数帯ごとのパルスの数は、利用可能なビット配分と、スペクトル内での周波数帯の位置に応じて決まる。通例は、低域周波数により多くのパルスが割り当てられる。
【０１３７】
量子化された差分ベクトル
利用可能なビットレートに応じて、種々の技術を使用して周波数パルスの量子化を行うことができる。一実施形態では、12kbps未満のビットレートでは、単純な検索および量子化方式を使用してパルスの位置および正負符号を符号化することができる。この方式について以下で説明する。
【０１３８】
例えば3175Hzより低い周波数では、この単純な検索および量子化方式では、階乗パルス符号化(FPC)に基づく手法を使用する。FPCについては文献、例えば参考文献[Mittal, U., Ashley, J.P., and Cruz-Zeno, E.M.(2007), "Low Complexity Factorial Pulse Coding of MDCT Coefficients using Approximation of Combinatorial Functions", IEEE Proceedings on Acoustic, Speech and Signals Processing, Vol. 1, April, pp. 289-292]に記載される。上記参考文献は、参照により全内容が本明細書に組み込まれる。
【０１３９】
より具体的には、選択器504(図5および図6)が、全スペクトルをFPCを使用して量子化しないことを決定する。図5に示すように、FPC符号化とパルス位置および正負符号の符号化が符号器506で行われる。図6に示すように、符号器506は周波数パルスの検索器609を備える。検索は、3175Hzより低い周波数を求めてすべての周波数帯に行われる。次いでFPC符号器610が周波数パルスを処理する。符号器506は、3175Hz以上の周波数について最もエネルギーの高いパルスを見つける発見器611、および、見つかった最もエネルギーが高いパルスの位置と正負符号を量子化する量子化器612も備える。1つの周波数帯で1つ以上のパルスが許される場合は、先に見つかったパルスの振幅を2で割り、その周波数帯全体に再度検索を行う。パルスが見つかるたびに、その位置および正負符号が量子化とビットパッキング段階のために記憶される。以下の擬似コードは、この単純な検索および量子化方式を説明するものである。
【０１４０】
【数３５】
0005978218.tif 000036
【０１４１】
NBDは周波数帯の数(本例ではNBD=16)、Npは周波数帯kで符号化されるパルスの数であり、Bbは1周波数帯Bb当たりの周波数ビンの数であり、CBbは上記項5で定義した1周波数帯当たりの累積周波数ビンであり、
【０１４２】
【数３６】
0005978218.tif 000037
【０１４３】
は見つかったパルス位置を含むベクトルを表し、
【０１４４】
【数３７】
0005978218.tif 000038
【０１４５】
は、見つかったパルスの正負符号を含むベクトルを表し、Pmaxπpmaxは見つかったパルスのエネルギーを表す。
【０１４６】
12kbpsより高いビットレートでは、選択器504は、FPCを使用してすべてのスペクトルを量子化すると決定する。図5に示すように、FPC符号化は符号器505で行われる。図6に示すように、符号器505は周波数パルスの検索器607を備える。検索は全周波数帯に行われる。そして、FPC処理器610が見つかった周波数パルスをFPC符号化する。
【０１４７】
次いで、見つかった各位置ppに、パルス正負符号psを有するパルスの数nb_pulsesを足すことにより、量子化された差分ベクトルfdQを得る。周波数帯ごとに、以下の擬似コードで量子化差分ベクトルfdQを表すことができる。
for j=0,..., j<nb_pulses
fdQ(pp(j))+=ps(j)
【０１４８】
ノイズの埋め込み
精度の差はあるもののすべての周波数帯が量子化される。前項で説明した量子化方法では、周波数帯内にあるすべての周波数ビンが量子化されることは保証されない。これは特に1周波数帯当たりの量子化されるパルスの数が比較的少ない低ビットレートの場合にそうである。そのような量子化されていないビンに起因する可聴アーチファクトの出現を防止するために、ノイズ付加器507(図5)でそのような空白に何らかのノイズを付加する。このノイズの付加は、例えば12kbps未満のビットレートではすべてのスペクトルに行われるが、高ビットレートの場合は時間領域の励振寄与分のカットオフ周波数ftcより上だけに適用することができる。単純化のために、ノイズの強度は利用可能なビットレートのみに応じて変動するとする。高いビットレートでは、ノイズレベルは低いが、低ビットレートではノイズレベルは高くなる。
【０１４９】
ノイズ付加器504は、付加ノイズの強度またはエネルギーレベルが推定器614で決定された後、かつ周波数ごとの利得が算出器615で決定される前に量子化差分ベクトルfdQにノイズを付加する加算器613(図6)を備える。この例示的実施形態では、ノイズレベルは符号化ビットレートに直接関係する。例えば、6.60kbpsでは、ノイズレベルNLは、特定の周波数帯内で符号化されたスペクトルパルスの振幅の0.4倍であり、そこから漸減して、24kbpsでは周波数帯内で符号化されたスペクトルパルスの振幅0.2倍の値になる。ノイズは、一定数の連続した周波数ビンのエネルギーが非常に低いスペクトル区間のみに付加され、例えば、エネルギーが非常に低い連続したビンの数Nzがその周波数帯に含まれるビンの数の半分である時に付加される。特定の周波数帯iについて、ノイズは以下のように注入される。
【０１５０】
【数３８】
0005978218.tif 000039
【０１５１】
周波数帯iについて、CBbは1周波数帯当たりのビンの累積数であり、Bbは特定の周波数帯iにあるビンの数であり、NLはノイズレベルであり、randは-1から1の間に制限された乱数生成器である。
【０１５２】
7)周波数帯ごとの利得の量子化
周波数量子化器110は、周波数帯ごとの利得の計算器615(図6)および計算された周波数帯ごとの利得の量子化器616(図6)を含む周波数帯ごとの利得計算器/量子化器508(図5)を備える。必要な場合はノイズの埋め込みを含んでいる量子化された差分ベクトルfdQが見つかると、計算器615は各周波数帯の周波数帯ごとの利得を算出する。特定周波数帯の周波数帯ごとの利得Gb(i)は、対数領域における量子化されていない差分ベクトルfd信号のエネルギーと、量子化された差分ベクトルfdQのエネルギーとの対数領域として次のように定義される。
【０１５３】
【数３９】
0005978218.tif 000040
【０１５４】
CBbおよびBbは上記項5で定義している。
【０１５５】
図5および図6の実施形態では、周波数帯ごとの利得量子化器616は、周波数帯ごとの周波数利得をベクトル量子化する。ベクトル量子化の前に、低ビットレートでは、最後の利得(最後の周波数帯に対応する)を別に量子化し、残りのすべての15個の利得を量子化された最後の利得で割る。次いで、正規化された残りの15個の利得がベクトル量子化される。高いビットレートでは、周波数帯ごとの利得の平均値が初めに量子化され、次いで、例えば16個の周波数帯のすべての周波数帯ごとの利得から、それらの周波数帯ごとの利得がベクトル量子化される前にその平均値が除去される。使用するベクトル量子化は、周波数帯ごとの利得を含んでいるベクトルと、特定のコードブックの項目との間の距離の対数領域における標準的な最小化とすることができる。
【０１５６】
周波数領域符号化モードでは、利得は、量子化されていないベクトルfdのエネルギーを量子化されたベクトルfdQに一致させるように、周波数帯ごとに計算器615で算出される。利得は量子化器616でベクトル量子化され、周波数帯ごとに乗算器509(図5および図6)を通じて量子化ベクトルfdQに適用される。
【０１５７】
あるいは、周波数帯の一部のみを量子化のために選択することにより、スペクトル全体について12kbps未満のビットレートでFPC符号化方式を使用することも可能である。周波数帯の選択を行う前に、量子化されていない差分ベクトルfdの周波数帯のエネルギーEdを量子化する。このエネルギーは次のように算出される。
【０１５８】
【数４０】
0005978218.tif 000041
【０１５９】
CBbおよびBbは上記の項5で定義している。
【０１６０】
周波数帯エネルギーEdの量子化を行うために、まず、使用する16個の周波数帯のうち最初の12個の周波数帯の平均エネルギーを量子化し、16個すべての周波数帯のエネルギーから減算する。そして、すべての周波数帯を、3つまたは4つの周波数帯からなるグループごとにベクトル量子化する。使用するベクトル量子化は、周波数帯ごとの利得を含んでいるベクトルと、特定のコードブックの項目との間の距離の対数領域における標準的な最小化とすることができる。十分なビットが利用可できない場合は、最初の12個の周波数帯のみを量子化し、先行する3つの周波数帯の平均を使用するか、または他の方法により最後の4周波数帯を外挿することが可能である。
【０１６１】
量子化されていない差分ベクトルの周波数帯のエネルギーが量子化されると、デコーダ側で複製できるようにエネルギーを降順に並べ替えることが可能になる。この並べ替えの時に、2kHz未満のすべてのエネルギー帯を常に維持し、最もエネルギーが高い周波数帯のみをパルス振幅および正負符号の符号化のためにFPCに渡す。この手法では、FPC方式で符号化されるベクトルは小さくなるが、より広い周波数範囲が対象となる。すなわち、全スペクトルにわたって重要なエネルギー事象をカバーするのに必要なビットが少なくて済む。
【０１６２】
パルス量子化の工程後、上記と同様のノイズの埋め込みが必要となる。そして、量子化された差分ベクトルfdQのエネルギーEdQを量子化されていない差分ベクトルfdの量子化されたエネルギーE'dに一致させるように、周波数帯ごとに利得調整係数Gaを算出する。そして、その周波数帯ごとの利得調整係数を量子化された差分ベクトルfdQに適用する。
Ga(i)=10E'd(i)-EdQ(i)
ここで
【０１６３】
【数４１】
0005978218.tif 000042
【０１６４】
E'dは、上記で定義したように、量子化されていない差分ベクトルfdの周波数帯ごとの量子化されたエネルギーである。
【０１６５】
周波数領域符号化段階が完了すると、加算器111(図1、図2、図5および図6)で、フィルタリング後の周波数変換された時間領域の励振寄与分fexcFに、周波数量子化された差分ベクトルfdQを合計することにより、合計の時間領域/周波数領域励振を求める。拡張CELPエンコーダ100がビット割り当てを時間領域のみの符号化モードから時間領域/周波数領域混合型符号化モードに変更すると、時間領域のみの符号化モードの周波数帯当たりの励振スペクトルエネルギーは、時間領域/周波数領域混合型符号化モードの1周波数帯当たりの励振スペクトルエネルギーと一致しない。このエネルギーの不一致により、低ビットレートでより聞こえやすい切替えアーチファクトが生じる可能性がある。このビットの再割り当てで生じる可聴の劣化を低減するために、周波数帯ごとに長期の利得を算出し、再割り当て後に合計励振に適用して、数フレームにわたって各周波数帯のエネルギーを補正することができる。そして、周波数量子化された差分ベクトルfdQと、周波数変換され、フィルタリングされた時間領域の励振寄与分fexcFとの和を、例えばIDCT(逆DCT)220からなる変換器112(図1、図5、および図6)で変換して時間領域に戻す。
【０１６６】
最後に、IDCT220で得られる合計励振信号をLP合成フィルタ113(図1および図2)でフィルタリングすることにより、合成信号を算出する。
【０１６７】
周波数量子化された差分ベクトルfdQと、周波数変換され、フィルタリングされた時間領域の励振寄与分fexcFとの和は、遠隔のデコーダ(図示せず)に送信される時間領域/周波数領域混合型励振を形成する。遠隔のデコーダも、例えばIDCT(逆DCT)220を使用して時間領域/周波数領域混合型励振を変換して時間領域に戻す変換器112を備える。最後に、IDCT220で得られる合計励振信号をフィルタリングすることにより、すなわち時間領域/周波数領域混合型励振をLP合成フィルタ113(図1および図2)でフィルタリングすることにより、デコーダで合成信号が算出される。
【０１６８】
一実施形態では、時間領域の励振寄与分のみを使用してサブフレーム単位でCELP符号化メモリを更新する一方で、合計励振を使用してそれらのメモリをフレーム境界で更新する。別の可能な実装では、時間領域の励振寄与分のみを使用して、サブフレーム単位でCELP符号化メモリを更新すると共にフレーム境界でも更新する。その結果、周波数領域の量子化された信号がコアCELP層と別に上層の量子化層を構成する埋め込み構造が得られる。これは、特定の応用例で利点がある。この特定の事例では、固定コードブックを常に使用して良好な知覚的品質を維持し、同じ理由からサブフレーム数は常に4とする。ただし、周波数領域分析をフレーム全体に適用することができる。この埋め込み型の手法は、12kbps前後からそれ以上のビットレートに有効である。
【０１６９】
上述の開示は、非制限的な例示的実施形態に関し、それらの実施形態は、付記の特許請求の範囲内で任意に変更を加えることができる。
【符号の説明】
【０１７０】
100  CELPエンコーダ
101  入力信号
102  プリプロセッサ
103  時間/時間-周波数符号化選択器
104  時間領域専用符号器
105  時間領域励振寄与分の計算器
106  時間領域寄与分の周波数変換の計算器
107  周波数領域励振寄与分の計算器
108  発見器およびフィルタ
109  フィルタリング後の信号と残差の周波数変換との差分の減算器
110  量子化器
111  量子化された差分信号をフィルタリング後の信号に加算する加算器
112  変換器
113  合成フィルタ
201  LP分析器
202  スペクトル分析器
203  開ループピッチ分析器
204  信号分類器
205  音声/一般オーディオ選択器
206  メモリレス時間領域符号化モードの選択器
207  閉ループCELP符号器
208  一時的アタック検出器
209  分析器
210  サブフレーム数の計算器
211  閉ループピッチ分析器
212  固定コードブック
213  DCT
214  時間領域の励振寄与分のDCT
215  カットオフ周波数の計算器
216  フィルタ
220  IDCT
303  正規化相互相関の算出器
304  相互相関の平滑器
305  平均を計算する計算器
306  カットオフ周波数モジュール
307  ゼロにする周波数ビンの数の決定器
308  ゼロ化器
309  カットオフ周波数の量子化器
406  相互相関の制限器
407  相互相関の正規化器
408  発見器
409  発見器
410  第8高調波の外挿器
411  最終的なカットオフ周波数の選択器
412  長期平均ピッチ利得
413  開ループ相関
414  開ループのピッチ相関
415  パラメータの分析器
416  ゼロにする周波数ビンの選択器
417  ゼロ化器
418  フィルタ
501  時間領域の励振寄与分の周波数変換
502  入力LP残差の周波数変換
504  選択器
505  符号器
506  符号器
507  ノイズ付加器
508  利得計算器/量子化器
509  乗算器
603  縮小係数
607  周波数パルスの検索器
609  周波数パルスの検索器
610  FPC符号器
611  発見器
612  量子化器
613  加算器
614  推定器
615  計算器
616  量子化器
【図１】
0005978218.tif 000043
【図２】
0005978218.tif 000044
【図３】
0005978218.tif 000045
【図４】
0005978218.tif 000046
【図５】
0005978218.tif 000047
【図６】
0005978218.tif 000048