【文献】
"Wideband coding of speech at around 16kbit/s using Adaptive Multi-rate Wideband (AMR-WB)",ITU-T Recommendation G.722.2,2002年 1月,pp.1-64
(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
語音または音楽などの可聴周波数信号を圧縮する(損失を伴う)ための多くの技法がある。コード化は、例えば、ITU−T推奨G.711またはG.729(入力信号が8kHzでサンプリングされ、コーダおよびデコーダがこの同じ周波数で動作する)にあるような入力信号のサンプリング周波数で直接実行することができる。
【0003】
しかし、いくつかのコード化方法は、サンプリング周波数の変更を使用して、例えば、コード化の複雑性を低減するか、コード化すべき異なる周波数サブバンドに従ってコード化を適応させるか、またはそれがコーダの事前に定義された内部サンプリング周波数と一致するように入力信号を変換する。
【0004】
ITU−T推奨G.722で定義されるサブバンドコード化では、16kHzでの入力信号は、ADPCM(適応差分パルス符号変調)タイプのコーダによって別々にコード化される2つのサブバンド(8kHzでサンプリングされる)に分割される。この2つのサブバンドへの分割は、23次の有限インパルス応答(FIR)の二次モードミラーフィルタバンクによって行われ、それにより、理論上、16msで23個のサンプルの分析合成遅延(コーダ+デコーダ)が生じる。このフィルタバンクは、多相の実現によって実装される。G.722における2つのサブバンドへの分割により、既定の方法で、それらの先験的な知覚的重要度の関数として異なるビットレートを2つのサブバンドに割り当てることが可能になり、また、低周波数でADPCMタイプの2つのコーダを実行することによって全体的なコード化の複雑性を低減することも可能になる。しかし、それにより、直接のADPCMコード化と比べて、アルゴリズム遅延が引き起こされる。
【0005】
例えば、非包括的な方法で、FIR(有限インパルス応答)フィルタ、IIR(無限インパルス応答)フィルタまたは多項式補間(スプラインを含む)を使用することによって、デジタル信号のサンプリング周波数を変更する(リサンプリングとも呼ばれる)ための様々な方法が知られている。従来のリサンプリング方法のレビューは、例えば、(非特許文献1)の論文に見ることができる。
【0006】
FIRフィルタ(対称)の利点は、その簡略化された実装形態(ある条件付き)および線形位相を保証する可能性にある。線形位相フィルタリングは、入力信号の波形の保存を可能にするが、過渡信号上のプレエコータイプのアーチファクトを生成し得る時間的拡散(またはリンギング)を伴う可能性もある。この方法は、適切なフィルタリング特性(帯域幅におけるリップル、エイリアシングまたはスペクトル画像を取り除くのに十分な拒絶レベル、...)を保証するために、一般に、ほぼ1〜数ms程度の遅延(インパルス応答の長さによって決まる)を生じさせる。
【0007】
IIRフィルタによるリサンプリングの代替形態は、一般に、MATLAB(登録商標)ソフトウェアの「iirgrpdelay」ルーチンにおける例示的な実現によって、例えば、(非特許文献2)の論文で説明されるように、位相が追加の全域通過フィルタリング段階によって補償されない限り、非線形位相につながる。IIRフィルタは、一般に、低次のものであるが、固定小数点表現における実装がより複雑であり、フィルタの状態(またはメモリ)は、帰納的部分に対して高い動的な値に達することができ、全域通過フィルタリングによる位相補償が使用される場合、この問題は拡大される。
【0008】
図1は、16kHzから12.8kHzに変更するために64kHzで2
*60+1=121個の係数の長さでFIRフィルタを用いた4/5の比率によるダウンサンプリングの例を示す。x軸は、時間(異なる周波数で時間が記録された信号を表すためにmsを単位とする)を表し、y軸は、振幅を表す。上部の正方形の印は、16kHzでの入力信号のサンプルの時間的位置を表す。ここでは、これらのサンプルは20msのフレームの終了に相当することが想定される。連続的な垂直線は、16kHzでの相当するサンプリング時点をマークする。図の下部では、垂直の点線は、12.8kHzでの相当するサンプリング時点をマークし、星印は、12.8kHzでの出力サンプルを象徴する。また、64kHzでのFIRフィルタの121個の係数のインパルス応答(対称)も表されており、この応答は、12.8kHzでの現フレームの最後のサンプルを計算するために位置付けられる(インパルス応答の最大値の位置はこのサンプルと位置合わせされる)。円形の印は、多相表現で使用された値(入力サンプリング時点に相当する)を示す。出力サンプルを得るため、相当する入力サンプルをこれらの値に乗じ、これらの結果を合計する。この図では、現フレームの終了後(次のフレームの開始時)の入力サンプルが未だ知られていないため、12.8kHzでの12個のサンプル(入力フレームの終了まで)を正確には計算できないことが認められよう。
図1の条件でのダウンサンプリング遅延は、12個のサンプル(すなわち、12/12.8=0.9375ms)である。
【0009】
FIRタイプのサンプリング周波数の変更による遅延を低減するための技法がある。
【0010】
3GPP AMR−WB規格(ITU−T推奨G.722.2としても定義される)では、16kHzでサンプリングされた入力信号は、CELPタイプのコード化を適用する前に、12.8kHzの内部周波数でダウンサンプリングされる。次いで、12.8kHzで復号された信号は、16kHzでリサンプリングされ、高帯域信号と結合される。
【0011】
12.8kHzの中間周波数を通過する利点は、CELPコード化の複雑性を低減すること、および2の累乗の倍数であるフレーム長を有することを可能にすることであり、それにより、あるCELPパラメータのコード化が容易になる。使用される方法は、複雑性を最小限に抑えるための多相の実現での、FIRフィルタ(64kHzでの121個の係数の)による4/5倍での従来のリサンプリングである。
【0012】
理論上、コーダ上およびAMR−WBデコーダ上のこのリサンプリングは、
図1で表される処理と同様な方法で遅延を生じるはずである。AMR−WBコーデックの事例では、121個の係数のFIRフィルタを用いると、総合遅延は、理論上、64kHzでの2×60個のサンプル(すなわち、16kHzでの2×15個のサンプルまたは1.875ms)であるはずである。実際には、特定の技法は、コーダ部分のみにおける関連遅延を取り除く(補償する)ために、AMR−WBコーダ上で実装され、従って実効遅延を2で除する。
【0013】
この補償方法については、3GPP規格TS26.190の条項5.1およびITU−T推奨G.722.2の条項5.1で説明されている。FIRフィルタリング遅延を補償するための方法は、12.8kHzに変換すべき16kHzでサンプリングされた新しいフレームの各々に対して、現フレームの終了時に既定の数の0を加えることにある。これらの0は、入力サンプリング周波数で定義され、それらの数は、この周波数でのリサンプリングFIRフィルタの遅延に相当する(すなわち、16kHzでは15個の0が加えられる)。リサンプリングは、20msのフレーム(320個のサンプル)ごとに実装される。従って、AMR−WBコーダのリサンプリングは、左側には(過去に向かって)先行フレーム(リサンプリングメモリ)の終了から30個のサンプルで、かつ右側には15の0で、320個のサンプルの入力フレームを補完して、30+320+15=365個のサンプルのベクトルを形成し、次いで、それを4/5倍でリサンプリングすることに等しい。従って、将来のヌル信号が加えられるため、FIRフィルタは、ゼロ位相で(従って、遅延なしで)実装することができる。理論上、4/5倍によるFIRリサンプリングは、以下のステップに従って実行される。
− 各入力サンプル後に0の3つのサンプルを加えることによって4だけアップサンプリング(16kHzから64kHzへ)するステップ
− 64kHzで120次の対称FIRタイプの伝達関数H
decim(z)をローパスフィルタリングするステップ
− ローパスフィルタリングされた信号から5つのサンプルのうちの1つのサンプルのみを保持することによって5だけダウンサンプリング(64kHzから12.8kHzへ)するステップ
【0014】
実際には、このリサンプリングは、64kHzでの中間信号を計算することなく、および変換すべき信号を0と連結することなく(AMR−WBコーデックのソースコードの「decim54.c」ファイルを参照)、最適化された多相の実現に従って等しい方法で実装される。各「位相」に対するFIRフィルタリングは、12.8kHzでの12個のサンプル(すなわち、0.9375ms)の遅延を有する12.8kHzでの24次のFIRフィルタに等しい。
【0015】
16kHzから12.8kHzへの20msの各フレームのFIRリサンプリングの結果は、次のフレームでのみ利用可能な「真」の将来の信号の代わりに将来の信号として0のブロックを使用することによるエラーを含む12.8kHzでの結果として得られた各フレームの最後の12個のサンプルを除いて、「完全な」入力信号(すなわち、フレームに細分されていない)上に形成されたリサンプリングと同一である。実際には、導入される0は、次のフレームにおけるヌル入力信号の事例をシミュレーションする。
【0016】
この処理は、上部の正方形の印によって16kHzでの最後の入力サンプルを表す
図2の20msのフレームの終了時に示されている。垂直線は、16kHzでの相当するサンプリング時点をマークする。図の下部では、星印は、12個のサンプルの遅延を有する従来のダウンサンプリングによって得ることができる12.8kHzでの出力サンプルを象徴する。次いで、下部の三角形の印は、フィルタリングの継続および遅延の低減を行えるようにフレームの終了時に加えられるヌル値の少なくとも1つのサンプルを使用することによって得られる12.8kHzでの12個のサンプルに相当する。これらのサンプルは、従来のフィルタリングで得られた出力の終了に対するそれらの位置に従って#1〜#12に番号付けられる。また、12.8kHzでの最後の出力サンプルに相当する位置で使用された64kHzでのフィルタのインパルス応答も表されている(インパルス応答の最大値はこのサンプルと位置合わせされる)。円形の印は、多相表現で使用される値(入力サンプリング時点に相当する)を示す。出力サンプルを得るため、相当する入力サンプルまたは0(フレームの終了後の値の場合)をこれらの値に乗じ、これらの結果を合計する。ここでは、この最後のサンプルに対して、加えられた0をインパルス応答から使用されたサンプルのほぼ半分に乗じるため、そのことが重大な推定エラーを招くことが分かる。また、従来のフィルタリング(すなわち、真の入力信号のみを有する)の後に生成された第1のサンプルのエラーは小さく(その終了時のインパルス応答の重みは低く)、従来のフィルタリングからの距離の増大と共にエラーは大きくなる(次いで、インパルス応答の重みは大きくなる)ことも理解されよう。そのことは、
図7の結果において観察することができる。
【0017】
リサンプリングすべき20msの各ブロック(またはフレーム)の終了時に0が加えられる、AMR−WBコーデックで使用される遅延補償方法は、コーダ上のリサンプリング遅延を取り除くことを可能にするが、現フレームの終了時に生成された値(入力において0が加えられた)が直接コード化され、次のフレームの入力信号が知られた時点で真の値に置き換えられない際は、一般に、満足できるものではない。実際には、各フレームの終了時のこれらの通常のエラーは、次のフレームの開始時の真の出力信号への移行期の周期的な不連続性を生成する。これらの不連続性は、聞き取れるものであり、非常に不快である場合が多い。これが、遅延補償がコーダにのみおよび将来の信号部分(ルックアヘッドと呼ばれる)にのみ適用され、AMR−WBデコーダには適用されない理由である。
【0018】
実際には、AMR−WBコーダでは、16kHzでの新しい20msの入力フレームの各々は、ACELPモデルによってコード化すべき現フレームの最後の15msおよび将来の信号(またはルックアヘッド)の5msに相当する時間セグメントに相当する。コード化すべき現フレームの最初の5msは、既に受信され、先行セグメントの「ルックアヘッド」として格納されている。従って、コーダ上で16kHzから12.8kHzへのリサンプリング後に得られる最後の12個のサンプルは、12.8kHzでの将来の信号の最後のサンプルに相当する。結果的に、12.8kHzでの20ms(すなわち、256個のサンプル)の現フレームおよび将来の信号の5ms(すなわち、64個のサンプル)は、同じ長さのLPC分析ウィンドウによって重み付けされる384個のサンプル(30ms)のLPC分析バッファを形成するために、過去のオリジナル信号(ループバック)の5msで補完される。
【0019】
リサンプリングエラーを含む12.8kHzでの「ルックアヘッド」の最後の12個のサンプルは、線形予測(LPC)のために使用されるウィンドウにおいて非常に低い相対重みを有し、さらに有力な理由をもって、それらは、推定LPCエンベロープにのみ影響を及ぼし、この影響はごくわずかである。12個の誤ったサンプルは、次のフレーム上で「正確な」リサンプリング値に置き換えることができ、従って、エラーは、将来の信号(ルックアヘッド)のために現フレームに一時的にしか存在せず、LPC分析にのみ影響を及ぼすことに留意することが重要である。従って、AMR−WBコーダの遅延補償技法は、AMR−WBコーデックの現フレームの信号の波形のコード化に影響を及ぼさない。このモードは、以下では、「将来の信号を有するフレームによる使用」と呼ばれる。こうして生成されたサンプルは、中間計算(LPC分析)のために一時的にしか使用されず、次のフレームの信号が知られている際には、正しくリサンプリングされたサンプルに置き換えられる。この構成では、各フレームに対する長さがlg_outの出力フレームに対して、lg_out+12個のサンプルがリサンプリングによって生成されることが述べられよう。
【0020】
AMR−WBコーダ上で使用されるこの遅延補償技法は、AMR−WBデコーダには適用されない。
【0021】
従って、コーデック(コーダ+デコーダ)は、コーダ(20msのフレーム+5msのルックアヘッド)およびデコーダ上のリサンプリング(0.9375ms)に起因する25.9375msの総合アルゴリズム遅延を有する。
【0022】
AMR−WBコーダの遅延補償技法は、コード化信号の質を大いに劣化させるため、G.722コーデックのQMFフィルタリング遅延を低減するために使用できない。実際には、G.722コーデックでは、フィルタリングから得られたサンプル(低帯域および高帯域信号)は、「ルックアヘッド」なしで動作し、あるフレームから別のフレームにこれらの値を訂正することを可能にしない、2つのADPCMサブコーデックの入力信号を直接構成する。このモードは、以下では、「連続的なフレーム単位での使用」と呼ばれる。
【発明の概要】
【課題を解決するための手段】
【0024】
本発明は、先行技術の状況を改善する。
【0025】
この目的を達成するため、本発明は、可聴周波数信号コード化または復号において可聴周波数信号をリサンプリングするための方法を提案する。方法は、リサンプリングすべき各信号ブロックに対して以下のステップ:
− 適応線形予測によって、或る数の将来の信号サンプルを決定するステップであって、この数が、選ばれたリサンプリング遅延の関数として定義される、ステップと、
− 少なくとも現ブロックのサンプルおよび決定された将来の信号サンプルからリサンプリングサポートベクトルを構築するステップと、
− リサンプリングサポートベクトルのサンプルにリサンプリングフィルタを適用するステップと
を含むものである。
【0026】
従って、本発明によるリサンプリングは、性能レベルを連続的なリサンプリングに非常に近い状態に維持しながら、フィルタによってリサンプリング遅延を低減すること(ブロックごとまたはフレームごと)を可能にする。各ブロックまたはフレームの将来の信号の予測は、これらの将来のサンプルがヌル値で設定された場合よりも実際のサンプルに近いサンプルを有することを可能にする。従って、これらの後者のサンプルのためのリサンプリングプロセスの性能は、より良いものである。
【0027】
このリサンプリング方法は、所望の遅延の関数として考慮すべき将来の信号サンプルの数を適応させることが可能であるため、適応できるものでもある。遅延なしのリサンプリングの場合、決定すべき将来の信号サンプルの数は、リサンプリングフィルタの遅延に相当する。フィルタの遅延より低い遅延が
許容される場合、将来の信号サンプルの数は、リサンプリングフィルタの遅延のごく一部に相当し得る。
【0028】
信号ブロックごとに実行されるリサンプリング遅延の適応により、異なるリサンプリング構成(この目的で使用されるFIRフィルタを含む)間で、あるブロックから別のブロックにまたはあるフレームから別のフレームに、容易に切り替えること、あるいは、あるサンプリング周波数での所定のフレームの直接コード化からリサンプリングによる次のフレームのコード化に切り替える(または逆も同様)ことが可能である。
【0029】
以下で述べられる様々な特定の実施形態は、独立してまたは互いに組み合わせて、上記で定義されるリサンプリング方法のステップに追加することができる。
【0030】
簡単な実施形態では、適応線形予測によって決定するステップは、以下のステップ:
− 既定の次数の線形予測フィルタの係数を得るステップと、
− 得られた予測フィルタをヌル値の励起信号に適用することによって将来の信号サンプルを得るステップと
を含む。
【0031】
特定の実施形態では、線形予測フィルタの係数は、コード化または復号ステップで格納されたパラメータを読み取ることによって得られる。
【0032】
従って、コード化モジュールが、リサンプリングデバイスとは無関係に、予測フィルタのパラメータを既に決定しているLPC分析を含む際は、リサンプリング方法においてこれらのパラメータを再計算する必要はない。格納されている(定量化されているかどうかを問わない)パラメータを読み取るだけで十分である。
【0033】
別の実施形態では、線形予測フィルタの係数は、少なくとも現ブロックのサンプルからの分析によって得られる。
【0034】
次いで、LPC分析は、リサンプリングデバイスで直接行われる。
【0035】
例示的な実施形態では、線形予測は、プリエンファシス処理が実行されている可聴周波数信号上で実行される。
【0036】
プリエンファシスは、特に、強い傾斜およびスペクトル力学を有する信号に対して、固定小数点表現実装形態におけるより良いデジタル安定性を確保することを可能にする。それは、信号のスペクトル力学を低減し、従って、周波数帯域上の信号の電力の分布は、プリエンファシス後により一様になる。プリエンファシス後のモデリングパラメータは、より低い力学を有し、システムの安定性を確保することが容易であり、固定小数点表現算術を用いてこのモデルを使用してアルゴリズムを実装することも容易である。
【0037】
可能な実施形態では、適応線形予測は、以下の方法:
− 短期線形予測、
− 長期線形予測、
− 短期線形予測と長期線形予測との組合せ、
− 消去フレーム隠蔽プロセス
のうちの1つからの予測である。
【0038】
従って、有利な信号対雑音比における有効性を確保する一方で、方法の実装のためのより多くのまたはより少ない正確な予測タイプが可能である。
【0039】
また、本発明は、可聴周波数信号コーダまたはデコーダにおいて可聴周波数信号をリサンプリングするためのデバイスも対象とする。デバイスは、
− 各信号ブロックに対して、選ばれたリサンプリング遅延の関数として定義される或る数の将来の信号サンプルを決定するのに適した適応線形予測モジュールと、
− 少なくとも現ブロックのサンプルおよび決定された将来の信号サンプルからリサンプリングサポートベクトルを構築するためのモジュールと、
− リサンプリングサポートベクトルのサンプルに適用されるリサンプリングフィルタと
を備えるものである。
【0040】
このデバイスは、それが実装する、上記に説明される方法と同じ利点を提供する。
【0041】
特定の実施形態では、適応線形予測モジュールは、コーダまたはデコーダの予測コード化または復号モジュールに含まれる予測分析モジュールと協働する。
【0042】
従って、いかなるLPC分析モジュールも含む必要がないため、リサンプリングデバイスの複雑性が低減される。コード化または復号モジュールの分析モジュールから得られたパラメータは、コード化または復号中に格納され、従って、リサンプリングにおいて使用することができる。
【0043】
また、本発明は、説明されるような少なくとも1つのリサンプリングデバイスを備える可聴周波数信号コーダおよびデコーダも対象とする。
【0044】
特定の実施形態では、コーダまたはデコーダは、異なる遅延を有する少なくとも2つのリサンプリングフィルタを使用するリサンプリングデバイスであって、将来の信号サンプルの数の決定が使用される2つのリサンプリングフィルタの遅延差の関数である上記に説明されるような方法に従ってフィルタの少なくとも1つが実装される、リサンプリングデバイスを備える。
【0045】
リサンプリングフィルタは異なるコード化モードと関連付けられる場合が多いため、この実施形態は、いかなる可聴アーチファクトも存在することなく、あるコード化モードから別のコード化モードに容易に切り替えることを可能にする。
【0046】
本発明は、コード命令であって、これらの命令がプロセッサによって実行される際に、説明されるようなリサンプリング方法のステップを実装するためのコード命令を含むコンピュータプログラムを対象とする。
【0047】
最後に、本発明は、上記に説明されるようなリサンプリング方法を実装するコンピュータプログラムを格納するプロセッサ可読記憶媒体(リサンプリングデバイスに組み込まれているかどうかを問わない、取り外し可能もあり得る)に関する。
【0048】
本発明の他の特徴および利点は、単に非限定的な例として与えられる以下の説明を読み進め、添付の図面を参照することでより明確に明らかになるであろう。
【発明を実施するための形態】
【0050】
図3は、本発明の実施形態によるリサンプリングデバイス300を備える音声コーダの例を示す。
【0051】
ここで示されるコーデックは、8、16、32または48kHzの入力および出力サンプリング周波数で動作するマルチビットレート(7.2〜128kbit/sで設定されたビットレートで)の音声信号(モノラル)のコーダである。第1に、
図3で表されるコーダ部分に関心が集められ、関連デコーダについては、
図9と併せて後に説明する。
【0052】
入力信号は、20msのフレームに分割され(ブロック310)、各フレームは、多重化モジュール313によって多重化される前に、CELPタイプの時間領域(TD)手法(309)に従って、またはMDCTタイプの周波数領域(FD)手法(ブロック312)に従ってコード化することができる。ここでは、CELPおよびMDCTタイプのコード化は当業者に知られていると考えられる。内部コード化周波数のものを含むモードの選択(ブロック311)は、ここでは詳述しない。
【0053】
ビットレートおよびサンプリング周波数において柔軟であるこのコーデックでは、周波数「f
Out」(出力の場合はOut)での周波数「f
In」(入力の場合はIn)のリサンプリング構成の数が必要である。ここで説明される実施形態では、使用された構成を以下の表1に列挙する。
【0055】
この表では、太字の周波数値は、コーデックの「外部」周波数(すなわち、入力および/または出力周波数)を示し、他の周波数値は、低帯域の信号のコード化のための「内部」サンプリング周波数であり、16kHzでの1つの外部周波数および12.8kHzでの1つの内部周波数しか有さないAMR−WBコード化と同様の方法である。「filt_len
in」は、フィルタの長さを表し、「fac_num」は、アップサンプリングファクタを表し、「fac_den」は、ダウンサンプリングファクタを表す。
【0056】
一般性を失うことなく、FIRフィルタは、ここに示される例では、カーディナルサイン(sin(x)/x)のウィンドウイングを伴うため、「ウィンドウ方法」と呼ばれる従来の方法に従って設計される。FIRフィルタは、例えば、以下で説明されるように設計される。
【0057】
例えば、フィルタf_5_8_129は、以下のmatlabコマンドによって得られる。
f_5_8_129=[0 0 0 0 fir1(248,(3775/32000),hanning(249))
*4.999895 0 0 0 0];
3775Hzの64kHzでのカットオフ周波数(−6dB)を用いる。
【0058】
これらの係数は、8000Hzでの16個の係数(すなわち、64000Hzでの128個の係数)のフィルタとして、および12800Hzでの24個の係数(すなわち、64000Hzでの120個の係数、最後の値を無視する)のフィルタとして使用される。
【0059】
フィルタf_12_180は、以下のmatlabコマンドによって得られる。
ftmp=fir1(358,1/12,hanning(359));
f_12_180=[0 ftmp/ftmp(180)0];
8000Hzの192kHzでのカットオフ周波数(−6dB)を用いる。
【0060】
フィルタf_15_180は、以下のmatlabコマンドによって得られる。
ftmp=fir1(358,1/15,hanning(359));
f_12_180=[0 ftmp/ftmp(180)0];
6400Hzの192kHzでのカットオフ周波数(−6dB)を用いる。
【0061】
本発明の変形形態では、当然ながら、他のFIRフィルタ設計方法を使用することができる。
【0062】
これらの変換構成は、一般性を失うことなく、コード化アルゴリズムにおいて2つの内部周波数12.8kHzおよび16kHzを使用することによって、ここで正当化される。内部サンプリング周波数(12.8または16kHz)の選択が行われる方法も、採用すべきコード化のタイプの選択(ブロック311)が行われる方法も、ここでは詳述しない。それは本発明の範囲を超えている。しかし、コーデックの同じ入力および/または出力周波数に対して、各フレームで独立して内部周波数の選択を行うことができ、それは、例えば、フレームNでは、構成iによるリサンプリングの使用が可能であり、フレームN+1では、構成iとは異なる構成j(ただし、同じ「外部」周波数を有する)によるリサンプリングの使用が可能であり、フレームN+2では、リサンプリングの使用が可能でない(入力周波数f
Inでのフレームの直接コード化を意味する)ことを意味することが留意され、実際には、この最後の事例は、以下の状況:
・ 選ばれたコード化モードが、周波数f
Inで常に動作するFDタイプのコード化である場合、
・ 選ばれたコード化モードがTDコード化であり、入力周波数f
Inが内部TDコード化周波数に相当する場合
でのみ、好ましい実施形態で可能である。
【0063】
しかし、本発明の変形形態では、その切り替えを容易にするために、TDコード化と同じ内部コード化周波数で動作することをFDタイプのコード化に強制することができるであろう。
【0064】
TDコード化からFDコード化への移行(および逆も同様)については、本発明の範囲を超えるため、ここでは説明されないことに留意されたい。
【0065】
入力信号のサンプリング周波数f
Inが内部コード化サンプリング周波数より大きい際は、コード化アルゴリズムTD CODまたはFC CODは、高帯域(6.4または7kHzより大きい周波数)の信号のコード化を提供し、この高帯域のコード化は、ここでは詳述しない。
【0066】
従って、コーダは、多くのFIRフィルタ係数構成(ブロック305)で動作できるため、パラメータ化可能なリサンプリングフィルタを含むリサンプリングデバイス300を備える。以下で説明される実施形態では、リサンプリングフィルタは、多相フィルタである。本発明は、FIRフィルタによる他のタイプのリサンプリングの実装形態にも適用され、例えば、多相表現を伴わない非最適な複雑性のリサンプリングフィルタなどが挙げられる。そのうえ、本発明は、他のサンプリング周波数変換率に対しても適用される。
【0067】
最初の3つの構成(番号1〜3)を除いて、他のすべての構成は、0.9375msの遅延(12.8kHzでの12個のサンプル、16kHzでの15個のサンプル、32kHzでの30個のサンプルおよび48kHzでの45個のサンプル)を有するFIRタイプの多相フィルタを使用する。
【0068】
構成4〜13の多相リサンプリングフィルタリング(ブロック305)は、ITU−T G.718コーデックで定義されたFIRによる多相リサンプリングから得られたアルゴリズムに従って実行される(「modify_fs.c」ファイルのG.718のソースコードにおける実現を参照)。
【0069】
ここでは、8000Hzの「外部」サンプリング周波数を伴う最初の3つの構成に関心が集められる。これらの構成の場合、より長いFIRフィルタが、適切なフィルタリング性能を有するために必要であり、特に、耳が非常に敏感な周波数で起こり得るスペクトル画像またはスペクトルエイリアシングの十分な拒絶を保証するために必要である。
【0070】
本発明のリサンプリング方法を実装しなければ、これらの3つの構成は、通常、8000Hzから12800Hzへのリサンプリングの場合は12.8kHzでの25個のサンプルの遅延を、12800Hzから8000Hzへのリサンプリングの場合は8kHzでの15個のサンプルの遅延を、16000Hzから8000Hzへのリサンプリングを生じさせることになる。一般に、出力サンプリング周波数での遅延は、四捨五入してfilt_len
*fac_num/fac_den未満の整数にし、filt_lenはフィルタの長さであり、fac_numはアップサンプリングファクタであり、fac_denはダウンサンプリングファクタ(表1も参照)であるが、サンプルの半分の何分の1かの遅延を考慮することも可能になるであろう。
【0071】
リサンプリングデバイス300における、本発明によるならびに
図4aおよび4bを参照して以下で説明されるリサンプリング方法の実装は、このコーダの事例では、以下を可能にする。
− 他の変換構成4〜13(0.9375msの遅延を有する)と同一の遅延を得るために、構成1〜3の実効遅延を制限すること。これを行うため、リサンプリングデバイスは、各信号フレームに対して、選ばれたリサンプリング遅延の関数として定義される或る数の将来の信号サンプルを決定するのに適した適応線形予測モジュール301を備える。サンプルの数は、理論上、パラメータ化可能であるが、実際には、定義されたコーデック構成に対して一定に保たれることが述べられよう。
− 理論的な関連遅延が異なる場合であっても、すべての定義されたリサンプリング構成を切り替えられるようにすること。
【0072】
表1では説明されない本発明の特定の実施形態では、コーダは、異なる遅延を生じさせる多くの(少なくとも2つの)多相FIRリサンプリングフィルタを備え得る。例えば、マルチビットレートコーダでは、常に16000Hzである入力に対して、ビットレートに応じて2つの異なる内部周波数コード化コアを使用することが可能である(低ビットレートの場合は8000Hzおよび高ビットレートの場合は12800Hz)。十分なフィルタリング性能レベルを有するため、特に、スペクトル画像またはスペクトルエイリアシングの十分な拒絶を保証するため、16000Hzから8000Hzへのリサンプリングには、16000Hzから12800Hzへのリサンプリングより長いFIRフィルタが必要とされる。従って、これらの2つのフィルタリングは、異なる遅延を有する。アーチファクトなしでこれらの2つのコード化モード間で切り替えられるようにするため(ビットレートを変更する場合)、これらの遅延を調和(等しく)しなければならない。リサンプリングFIRフィルタの長さが16000Hzから8000Hzに低減される場合、スペクトルエイリアシングが十分にうまく減衰されなくなり、聞き取れるようになるため、質は一般に劣化する。リサンプリングFIRフィルタの長さが16000Hzから12800Hzに増加されるか、または追加の遅延がリサンプリングされた信号に適用される場合、コード化/復号の全体的な遅延が増大し、それにより、双方向性が妨げられ得る。
【0073】
本発明のリサンプリング方法を使用することによって、オリジナルのフィルタリングに比べて、質を著しく損失することなく、より長いFIRフィルタリングの遅延をより短いフィルタリング遅延のレベルに低減することが可能である。実際には、シミュレーション結果は、通常のフィルタリングと本発明による低遅延フィルタリングとの間で信号対雑音比が非常に高いことを示している。また、通常のフィルタリングおよび本発明による低遅延フィルタリングで得られた信号間の差は聞き取れないことが試聴テストによっても立証されている。
【0074】
従って、ここで提示される事例では、コーダは(またはデコーダでさえも)、異なる遅延を有する2つの多相リサンプリングフィルタを備える。リサンプリングフィルタの少なくとも1つは、将来の信号サンプルの数の決定が、2つのデバイスで使用される2つのリサンプリングフィルタの遅延差の関数である、本発明に従って上記に説明されるように実装されたフィルタである。
【0075】
例えば、表1では、16000Hzの外部周波数ならびに8000Hzおよび12800Hzの内部周波数に対して、構成3〜7を使用することができる。この事例では、入力周波数(filt_len)での遅延は、30個および15個のサンプルのそれぞれであることが分かる。従って、構成3の遅延を構成7の遅延のレベルに低減できるように差(すなわち、16000Hzでの15個のサンプル)を予測することが必要である。後に詳述される本発明は、構成3の遅延を低減するため、ならびに構成3および構成7が透過的に交互に起こることができるようにするために使用できるが、それは、その後に同じ15個のサンプルの遅延を有するようにするためである。
【0076】
図3のコーダおよび表1に列挙された構成の例に戻るため、
8000Hzから12800Hzへのリサンプリングの場合は、25個から12個のサンプルに遅延を低減すること(すなわち、12800Hzでのplus_sample_out=13個の追加サンプルを生成すること。これには、8000Hzでのplus_sample_in=8個のサンプルの外挿が必要である)が必要であり、
12800Hzから8000Hzへのリサンプリングの場合は、15個から7個のサンプルに遅延を低減すること(すなわち、8000Hzでのplus_sample_out=8個の追加サンプルを生成すること。これには、12800Hzでのplus_sample_in=12個のサンプルの外挿が必要である)が必要であり、
16000Hzから8000Hzへのリサンプリングの場合は、15個から7個のサンプルに遅延を低減すること(すなわち、8000Hzでのplus_sample_out=8個の追加サンプルを生成すること。これには、16000Hzでのplus_sample_in=15個のサンプルの外挿が必要である)が必要である。8000Hzでは、0.9375msは7.5個のサンプルに相当し、7.5個のサンプルは切り捨てて7個のサンプルにしていることに留意すべきである。
【0077】
図3に示されるリサンプリングデバイス300は、入力として音声信号ブロックを受信し、この実施形態では、それらは、過去のフレームからのサンプルセットもメモリに有するブロック310によって受信された20msのフレームである。
【0078】
このリサンプリングデバイスは、各信号ブロックまたはフレームに対して、選ばれたリサンプリング遅延の関数として定義される或る数の将来の信号サンプルを決定するのに適した適応線形予測モジュール301を備える。
【0079】
この予測された或る数の将来の信号サンプルは、リサンプリングサポートベクトルを構築するためのモジュール304によって定義されるリサンプリングサポートを決定するために使用される。このリサンプリングサポートベクトルは、例えば、可能な過去の信号サンプル、現ブロックまたはフレームからのサンプル、およびモジュール301によって予測された将来の信号サンプルを連結したものである。過去の信号サンプルは、リサンプリングFIRフィルタのためのメモリとして機能する。
【0080】
それにもかかわらず、このサポートベクトルの構築は、以下の実装形態も含む。
− 過去の信号は、リサンプリングFIRフィルタのメモリに格納することができ、従って、現フレームのサンプルとは直接連結されない(しかし、現フレームの信号は、まさに過去の信号を含むこれらのメモリの連続性である)。
− 予測された将来の信号は、別々のベクトルに格納することもでき、そのリサンプリングは、必要なメモリが正しく更新される限り、現フレームの信号のものとは別々に行うことができる。将来の信号の別々のリサンプリングの事例では、リサンプリングフィルタのメモリは、現フレームの最新のサンプルによって初期化される。ここでもまた、この分離にもかかわらず、予測された将来の信号は、まさに現フレームの信号の連続である。
【0081】
本明細書では、一般性を失うことなく、「サポートベクトルの構築」という用語は、同じベクトルにおいて実際には信号が次々とコピーされることはないが、異なるベクトルに格納される事例も包含する。
【0082】
次いで、所望の出力周波数でリサンプリングされた信号を得るため、フィルタ305がこのリサンプリングサポートベクトルに適用される。
【0083】
線形予測モジュール301は、
図4aに関連して後で説明されるように線形予測フィルタの係数を決定するのに適した短期予測分析モジュール302(LPC)を備え得る。このLPC分析モジュール(302b)は、別の有利な実施形態では、TDタイプの時間コード化(例えば、CELPコード化)の予測コード化モジュール309に含めることができる。従って、リサンプリングデバイスに役立つ将来のサンプルを予測する目的および伝送前に信号をコード化する目的の両方で、同じ分析モジュールを使用することができる。従って、これは、コード化モジュールの分析モジュールと協働するリサンプリングデバイスの複雑性を低減する。
【0084】
モジュール301は、将来のサンプルのセットbuf
futを得るために、ヌル信号の1/A(z)フィルタリングによる予測フィルタリングモジュール303をさらに備える。
【0085】
従って、
図4aは、本発明の実施形態によるリサンプリング方法の主なステップを示す。
【0086】
この方法のステップは、入力(Buf
In)として、入力サンプリング周波数f
Inでのlgのサンプルのフレームによって実装される。メモリを通じてこの入力信号の過去のサンプルへのアクセスもある。この入力信号から、ステップE401は、所望の遅延の関数として予測すべきサンプルの数plus_sample_inを決定し、線形予測によって、この数の将来の信号サンプルを予測する。この予測の結果は、リサンプリングサポートベクトルを構築するステップE402において入力信号(現フレームおよびメモリの過去のフレーム)上で連結される。従って、このサポートベクトルは、一実施形態では、過去の信号のサンプル、現フレームのサンプルおよび決定された将来の信号サンプルを連結したものである。
【0087】
ステップE403では、リサンプリングフィルタリングは、例えば、有限インパルス応答(FIR)で、リサンプリングサポートベクトルのサンプルにリサンプリングフィルタを適用することによって実行され、リサンプリングされた信号buf
outは、出力リサンプリング周波数f
Outで、出力として供給される。
【0088】
次いで、以下のような多くの事例が可能である。
− 連続的なフレーム単位での使用の事例(入力としてlgのサンプル)では、最後のlg_out=lg
*fac_num/fac_denのサンプルのみが計算される。
− より多くのサンプルを得なければならない事例(将来の信号を有するフレームごとに使用)(入力としてlg+plus_sample_inのサンプル)では、AMR−WB規格のコーダの事例と同様に、lg_out+plus_sample_outのサンプルが計算され、式中、plus_sample_out=plus_sample_in
*fac_num/fac_denである。実際には、AMR−WBコーダでは、20msの現フレームがリサンプリングされ、15個の追加のサンプルがリサンプリングされる。第1のステップは、第2のステップで実行されるリサンプリングからのエラーを置き換える。この例では、lg=320、plus_sample_in=15である。
− 使用は、例えば、メモリ(信号の断片またはブロック)がリサンプリングされる際は(例えば、2つのコード化モード間で切り替える事例では)、1回限りのものでもあり得る。この事例では、リサンプリング入力は、フレーム(例えば、20msの)ではなく、信号ブロックである。本発明を適用するため、変換すべき過去のブロックまたは過去から既に事前に計算されているLPCモデルを有することが必須であることに留意することが重要である。線形予測を既に使用しているTDタイプのコード化を用いると、各フレームにおいてTDコーダおよび/またはデコーダで計算されたおよび/またはコード化されたパラメータ(LPCまたは同等の係数)を格納することが一般に可能であることが述べられよう。従って、本発明の変形形態では、これらのLPCパラメータを再利用することができ、それにより、格納された値(恐らく定量化されている)の簡単な検索を伴うようになるため、ブロック302の実装が簡略化される。
【0089】
並行して、E405において、リサンプリングフィルタのメモリが更新される。前と同じように、以下のような多くの事例が可能である。
− 生成すべきより多くのサンプルを用いた連続的な使用の事例では、AMR−WB規格の事例と同様に、入力フレームの最後のmem_lenのサンプルは、予測されたサンプルなしで格納される:mem_sig(0...mem_len−1)=frame(lg−mem_len...lg−1)。
リサンプリングが再開され次第、出力サンプリング周波数で得られたサンプルは、予測された入力信号を使用することによって得られたサンプルを置き換える。
− 連続的なフレーム単位での使用の事例では、予測された入力信号を使用することによって得られたサンプルは置き換えられず、lg_outのサンプルのみが出力サンプリング周波数で計算される。新しいフレームがインデックスlg+plus_sample_inのサンプルから始まると見なされる場合、リサンプリングFIRフィルタのメモリは、インデックス(lg...lg+plus_sample_in−1)のこのメモリの一部が真の信号または予測された信号であり得る、インデックス(lg+plus_sample_in−mem_len...lg+plus_sample_in−1)の過去のサンプルから構成される。真の信号を使用することで、第1のサンプルは、予測なしでフィルタリングによって得られたもの(最適なものと見なされた結果)に等しいが、先行フレームの間に予測で得られた最後のサンプルと真の信号で得られた第1のサンプルとの間では、小さな不連続性を有する可能性がある。メモリの予測された信号の使用の事例では、不連続性はないが、わずかなエラーが別のfilt_lenのサンプルに広がる。好ましい実施形態では、このわずかな不連続性は聞き取れないため、第1の解決策が使用される。
− 1回限りの使用の事例では、リサンプリング後のメモリ更新は必要ではないが、相当する過去の入力信号を用いて、リサンプリング動作の前に、リサンプリングメモリを初期化しなければならない。
【0090】
変形形態では、将来の信号を予測するために使用されるLPC分析は、現フレームの信号上で直接実行されることはないが、1−μ.z
−1の形態のフィルタによる現フレームのフィルタリングから得られたプリエンファシスされた信号上で実行され、式中、μは、適応して計算されるかまたは既定の値で設定される。この変形形態は、
図4bに示される。
図4aに比べて、プリエンファシスファクタμを決定するステップE406が追加されている。このファクタμを使用することによって、入力信号は、このステップE407において、1−μ.z
−1フィルタリングによってプリエンファシスされる。このフィルタリングはメモリサンプルを必要とし、従って、この変形形態では、メモリのサイズが1だけ増大されることに留意すべきである。プリエンファシスされる信号は、ステップE401およびE402の入力である。次いで、連結された信号は、ステップE408において、1/(1−μz
−1)フィルタリングによって同じファクタμを使用することによってデエンファシスされる。所定の信号に対して、同じファクタμによるデエンファシスが続くLPC分析の前のプリエンファシスのシーケンシングが透過的であること、すなわち、正確に入力信号が回収されることに留意すべきである。従って、信号がプリエンファシス前に格納される場合、計算複雑性を低減するために、予測された部分のみをデエンファシスしなければならない。次いで、このデエンファシスされた予測された部分は、リサンプリングサポートベクトルを形成するために、格納された信号上で連結される。
【0091】
値が−1〜1であるプリエンファシスファクタμを決定するための多くの技法がある。
− μは一定であり得る(例えば、μ=0.68)、
− μは一定であり得る(入力サンプリング周波数によって決まる)、
− μはスペクトルの傾きの分析に従って適応できるものであり得る(先行技術から知られている方法)。
【0092】
図5aは、プリエンファシスファクタを決定する
図4bのこのステップE406を示す。ステップE501では、信号は分析ウィンドウによってウィンドウ表示される。ステップE502では、次数M=1(r(0)およびr(1))の自己相関が計算され、ステップE503では、雑音閾値(またはノイズフロア)がr(0)に適用され、低レベル入力信号の演算問題が回避される。
【0093】
雑音閾値の適用の自己相関のこれらのステップについては、例えば、ITU−T推奨G.729のサブセクション3.2.1で説明されている。
【0094】
シフトk=0,...,Mに対する長さLのウィンドウでの自己相関r(k)の計算は、以下の形態である。
【0096】
式中、S
W(n)=s(n).w(n)およびs(n)は、現フレームの信号および恐らくは過去の信号(長さLが現フレームの長さより大きい場合)の最後のL個のサンプルに相当する。
【0097】
好ましい実施形態では、LPCウィンドウw(n)長さL=240が使用され、その例は、
図6に示されている。
【0098】
このウィンドウの形態は非対称であり、重みはそのサポートの端に集中される(最新のサンプル上で)ことが分かる。L=240のこのウィンドウを構築するためのmatlabコマンドは、例えば、以下の通りである。
【0100】
本発明の変形形態では、LPC次数Mの他の値、LPCウィンドウの他の形態および長さは、本発明の本質を変更することなく、使用することができるであろう。「ノイズフロア」は、第1の相関係数にファクタ>1を乗じることによってまたはこの第1の係数の値を最小値に制限することによって、従来の方法で使用することができるであろう。
【0101】
最後に、ステップE504において、μ=r(1)/r(0)としてファクタが計算される。
【0102】
図5bは、本発明による将来のサンプルを決定するための線形予測の
図4のステップE401の実施形態についてより詳細に説明する。
【0103】
例えば、このステップE401は、現フレームのサンプルおよび恐らくは先行フレームのサンプルから既定の次数の線形予測フィルタの係数を計算するステップE506と、計算された予測フィルタをヌル値の励起信号に適用することによって将来の信号サンプルを得るステップE507とを含み得る。
【0104】
図5aおよび5bのステップE501、E502およびE503は、同様のものであるが、異なる予測次数Mを有する。分析ウィンドウの形態もしくは長さまたはさらに「ノイズフロア」などの他のパラメータもまた異なり得る。両方の事例では、共通のモジュールを使用して複雑性を低減することができる。
【0105】
より具体的には、ステップE501では、入力信号(プリエンファシスされているかどうかを問わない)がウィンドウ表示される。例えば、
図6に示されるものと同じタイプのウィンドウを使用することが可能である。例えば、G.729規格のサブセクション3.2で説明されるように、E502では、選ばれた次数(例えば、M=10)で自己相関関数が計算され、ステップE503では、ノイズフロアがr(0)に適用される。
【0106】
ステップE505では、G.729規格のサブセクション3.2.1でも明白に説明されている、「ラグウィンドウイング」(当業者に知られている方法)と呼ばれるステップが実行される。
【0107】
入力サンプリング周波数(f
In)に対する「ラグウィンドウイング」のこのステップは、以下の形態である。
r(i)=r(i)
*w
lag(i)、i=0,...,M
式中、係数w
lag(i)は、以下のように定義される。
【0109】
式中、f
s=f
Inは、リサンプリングすべき信号の周波数であり、例えば、f
0=60Hzである。
【0110】
ステップE506(
図3のモジュール302によって実装される)では、G.729のサブセクション3.2.2またはAMR−WB規格のサブセクション6.4.3を参照して説明されるように、レビンソンダービンアルゴリズムによって次数Mの線形予測フィルタA(z)の係数A[i]、i=0,...,Mが計算される。好ましい実施形態では、LPC次数M=10が使用される。
【0111】
ステップE507(
図3のモジュール303によって実装される)では、将来の信号サンプルの予測を与えるために、合成フィルタ1/A(z)がヌル信号に適用される。
【0112】
この予測は、長さlg(i=lg...lg+plus_sample_in−1)のフレームの終了時に、plus_sample_inのサンプルに対して、ヌル入力(フィルタ励起信号)での1/A(z)フィルタリングによって、帰納的に実行される。
【0114】
本発明の変形形態では、線形予測係数を計算するための他の方法を使用することができ、例えば、先行技術から知られている、例えば、SILKコーダで実装されるバーグ方法を使用することが可能であろう。
【0115】
別の変形形態では、線形予測係数は、適応フィルタリングのLMS(最小二乗平均)またはRLS(逐次最小二乗)タイプの手法によって推定することができるであろう。
【0116】
別の代替形態では、LPC係数は、FDコーダにおいてさえLPC予測(302b)を使用してTDタイプ(309)のコーダの信号上で実行される(ただし、線形予測はFDコーダで実行される)関連パラメータの分析および/または定量化から直接得ることができるであろう。
【0117】
例えば、AMR−WBコーデックのCELPデコーダでは、各サブフレームにLPC係数(次数16の)があり、特に、最後のサブフレームで復号されたLPC係数を使用して復号された将来の信号を予測し、従って、CELPデコーダのリサンプリングの遅延を取り除くことが可能である。
【0118】
別の変形形態では、ステップE507における無励起(ヌル入力)は、例えば、励起領域におけるピッチ予測によって、予測励起に置き換えることができる。
【0119】
本発明の他の変形形態では、線形予測(短期)は、信号の領域のピッチ予測(長期)に置き換えることができ、この予測は、部分またはマルチタップであり得る。
【0120】
時間的手法の代わりに周波数領域で予測を実行することが可能であることが認められよう。しかし、周波数領域でのこの代替の手法は、分析変換(例えば、FFT)、将来のスペクトルの予測(例えば、最も重要なスペクトル線の振幅の反復および位相の連続性による)、および逆合成変換または正弦波合成を必要とする。この代替形態は、一般に、上記に説明される時間的手法より複雑であり、周波数分析は、スペクトル線(トーン)を識別できるほど十分な周波数分解能を有することができるほど十分長い時間的サポートを有さなければならないため、なおさらそうである。この手法は、限られた数(フレーム長より少ない)のサンプルを外挿することが目的である際には理想的ではない。
【0121】
さらなる別の実施形態では、上記に説明される適応線形予測は、より洗練された信号モデルによって将来の信号を外挿するために、消去フレーム隠蔽プロセスに置き換えることができる。そのような技法は、例えば、EP1 316 087の番号の下で公開された欧州特許で説明されている。
【0122】
本発明の他の変形形態では、FIRフィルタによるリサンプリングは、IIRフィルタリングまたは多項式補間による他のリサンプリング方法に置き換えることができよう。この事例では、原理は同じままであり、将来の信号が予測され、将来の信号を考慮することによってリサンプリングが適用される。一実施形態では、異なる遅延を有する2つのリサンプリング構成の事例が考慮され、本発明は、最も長い遅延を最も低い遅延値にもたらすことを可能にする。
【0123】
8000Hzから12800Hzへのリサンプリングの例において、上記に説明される本発明の方法による低遅延リサンプリングの有効性を立証できるようにするため、混ざり合った10の正弦曲線からなるテスト信号(その周波数は毎秒変化する)が使用される。i秒後の信号に対して、これらの正弦曲線の周波数は、間隔[fe
center(i)−600、fe
center(i)+600]およびfe
center(i)=500+100
*iHz、i=1...28で、中心周波数fe
center(i)あたりで無作為に選ばれている。
【0124】
図7a〜7lは、AMR−WBの先行技術のリサンプリング方法(点線)と、20個のサンプルの分析ウィンドウを有する次数M=4の予測フィルタを用いる本発明による方法のもの(一点鎖線)と、240個のサンプルの分析ウィンドウを有する次数10の線形予測フィルタを用いる本発明による方法のもの(連続線)との間の比較の結果を表す。
【0125】
図は、テスト信号の中心周波数の関数としての信号対雑音比を表す。
【0126】
各図は、従来のフィルタリングで得られた従来のフレームの終了に対するサンプルの異なる位置に相当する(
図2の番号#1、...、#12に相当する)。例えば、
図7aは、従来のフレームの終了後の第2の位置のサンプルに対する信号対雑音比(SNR)を表す。
図7bは、現フレームの後の第3の位置の予測されたサンプルに対する信号対雑音比などを表すである。従って、
図7lは、現フレームの後の第13の位置の予測されたサンプルに対する信号対雑音比を表す。
【0127】
予測されたサンプルはフィルタリングの間に使用が増えるため、位置の増加と共にSNRが減少すること、および同じ位置に対しては、高い周波数は予測し難いため、中心周波数の増加と共にSNRが減少することを観察することができる。しかし、すべての事例において、本発明による方法は、低い予測次数を用いる場合でさえ、AMR−WBコーダで使用される方法よりかなり効率的であることが観測される。
【0128】
低い次数の予測の使用の利点は、固定小数点表現算術の中でも特に、その低い複雑性および計算の実装が容易であることである。次数が高いほど、複雑性が増大すると同時に、フィルタの安定性の確保がより難しくなる。
【0129】
図8a〜8cは、非常に広い語音信号ベースにわたる同じタイプの結果を示す。その中では、SNRは、3つの異なる事例(
図8aの8000Hzから12800Hzへ、
図8bの12800Hzから8000Hzへおよび
図8cの16000Hzから8000Hzへ)のサンプルの位置の関数と考えられる。前と同じように、本発明によるアルゴリズムは、短いウィンドウを有する低い予測次数を用いる場合でさえ、先行技術(AMR−WB)で使用されるものよりかなり効率的である。
【0130】
図9は、本発明によるリサンプリングデバイス300を備えるオーディオデコーダの例を示す。リサンプリングデバイスは、
図3を参照して説明されるものと同じである。
【0131】
ここで示されるデコーダは、8、16、32または48kHzの出力サンプリング周波数で動作するマルチビットレート(7.2〜128kbit/sで設定されたビットレートで)の音声信号(モノラル)のデコーダである。
【0132】
受信され、分離されたフレーム(ブロック901)に基づいて、線形予測(902b)を使用するCELPタイプ(902)の時分割デコーダ(TD DEC)の出力と、周波数領域デコーダ(FD DEC)の出力との間で、出力が切り替えられる(904)。
【0133】
図10は、本発明によるリサンプリングデバイス300のハードウェア実施形態の例を表す。後者は、可聴周波数信号コーダ、デコーダまたは可聴周波数信号を受信する機器アイテムの不可欠な部分とすることができる。
【0134】
このタイプのデバイスは、ストレージおよび/または動作メモリMEMを備えるメモリブロックBMと協働するプロセッサPROCを備える。
【0135】
そのようなデバイスは、サンプリング周波数f
Inで音声信号フレームBuf
Inを受信するのに適した入力モジュールEを備える。
【0136】
それは、f
Outのサンプリング周波数でリサンプリングされた可聴周波数信号buf
outを送信するのに適した出力モジュールSを備える。
【0137】
メモリブロックは、これらの命令がプロセッサPROCによって実行される際に、本発明の意味内のリサンプリング方法のステップ、特に、適応線形予測によって、或る数の将来の信号サンプルを決定するステップであって、この数が、選ばれたリサンプリング遅延の関数として定義される、ステップと、少なくとも現ブロックのサンプルおよび決定された将来の信号サンプルからリサンプリングサポートベクトルを構築するステップと、リサンプリングサポートベクトルのサンプルにリサンプリングフィルタを適用するステップとを実装するためのコード命令を含むコンピュータプログラムを有利に含み得る。
【0138】
通常、
図4aの説明は、そのようなコンピュータプログラムのアルゴリズムのステップを繰り返す。また、コンピュータプログラムは、デバイスのリーダによって読み取れるかまたはその記憶空間にダウンロードできる記憶媒体上に格納することもできる。
【0139】
メモリMEMは、一般に、方法を実装するために必要なすべてのデータを格納する。