(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
本発明に基づいた符号化は、特に音声周波数信号(発話、音楽等)のようなデジタル信号の伝送及び/または保存用に適合される。
【0003】
本発明は、更に特に、PCM(Pulse Code Modulation)符号化のような波形符号化、もしくは、ADPCM(Adaptive Differential Pulse Code Modulation)符号化タイプの適応波形符号化に関係がある。本発明は、特にスケーラブルバイナリ列の量子化インデックスを配信することを可能にする埋め込みコード符号化(embedded-code coding)に関係がある。
【0004】
ITU−T勧告G.722またはITU−T勧告G.727によって指定された埋め込みコードADPCM符号化/復号化の一般原則は、例えば、
図1及び
図2を参照して説明されるようなものである。
【0005】
図1は、従って、サンプルごとに“B”ビットと“B+K”ビットとの間で動作するADPCMタイプ(例えば、G.722低帯域、G.727)の埋め込みコード符号器を表す。非スケーラブルADPCM符号化(例えばG.726、G.722高帯域)の場合がK=0に対応することに注意が必要である。ここで、“B”は、様々な考えられるビットレートの中から選択され得る一定値である。
【0006】
それは、
−“v(n’)”が量子化倍率(quantization scale factor)である量子化された誤差信号の前のサンプル
【数1】
、及び、“n”が現在の時点である再構成された信号の前のサンプル
【数2】
に基づいて、信号の予測値
【数3】
を与えることを可能にする予測モジュール110と、
−“e(n)”と表示される予測誤差信号を獲得するために、入力信号“x(n)”からその予測値
【数4】
を差し引く減算モジュール120と、
−“B+K”ビットから成る量子化インデックス“I
B+K(n)”を与えるために誤差信号“e(n)”を入力として受け取る、誤差信号のための量子化モジュール130“Q
B+K”とを備える。量子化モジュール“Q
B+K”は、埋め込みコードタイプの量子化モジュールであり、すなわち、それは、“B”ビットを有する“コア”量子化器と、“コア”量子化器に埋め込まれた“B+k(k=1,...,K)”ビットを有する量子化器を含む。
【0007】
ITU−TG.722標準の低帯域の符号化の場合は、“B=4”及び“K=0、1、及び2”における量子化器“Q
B”、“Q
B+1”、“Q
B+2”の判定レベル及び再構成レベル(reconstruction level:復元レベル)は、“X. Maitre”によるG.722標準を説明する概説の論文、すなわち「“7 kHz audio coding within 64 kbit/s”、“IEEE Journal on Selected Areas in Communication”、第6巻、第2号、1988年2月」のテーブルIV及びテーブルVIによって定義される。
【0008】
量子化モジュール“Q
B+K”の出力における“B+K”ビットの量子化インデックス“I
B+K(n)”は、例えば
図2を参照して説明されるように、データ伝送路140を介して復号器に送られる。
【0009】
符号器は、更に、
−“B”ビットの低ビットレートインデックス“I
B(n)”を与えるために、インデックス“I
B+K(n)”の“K”個の低位のビットを削除するためのモジュール150と、
−出力において、“B”ビットの量子化された誤差信号
【数5】
を与えるための逆量子化モジュール121“(Q
B)
−1”と、
−次の時点に対して倍率とも呼ばれるレベル制御パラメータ“v(n)”を与えるために、量子化器及び逆量子化器を適応させるためのモジュール170“Q
Adapt”と、
−低ビットレートの再構成された信号“r
B(n)”を与えるために、予測値
【数6】
を量子化された誤差信号に加算するためのモジュール180と、
−“B”ビットの量子化された誤差信号
【数7】
、及び“1+P
z(z)”によってフィルタ処理された信号
【数8】
に基づいて、予測モジュールを適応させるためのモジュール190“P
Adapt”とを備える。
【0010】
図1における、符号155で参照された破線部分が、低ビットレートのローカルな復号器を表すと共に、それは、予測器(predictor)165及び175、そして逆量子化器121を含むことが注目され得る。このローカルな復号器は、従って、低ビットレートインデックス“I
B(n)”に基づいて符号170における逆量子化器を適応させることを可能にすると共に、再構成された低ビットレートデータに基づいて予測器(predictor)165及び175を適応させることを可能にする。
【0011】
この部分は、例えば
図2を参照して説明されたような埋め込みコードADPCM復号器において全く同じに発見される。
【0012】
図2の埋め込みコードADPCM復号器は、入力として、バイナリエラーによって恐らくは妨害される“I
B+K”のバージョンである、通信チャネル140に起因するインデックス“I
’B+K”を受け取り、信号
【数9】
を獲得するために、ビットレートがサンプル当たりBビットである逆量子化モジュール210“(Q
B)
−1”によって逆量子化を実行する。記号“ ’ ”は、受け取られたビットに基づいて復号化された値を示すと共に、それは、伝送エラーのために、符号器によって使用されたビットとは恐らくは異なる。
【0013】
“B”ビットに対する出力信号“r’
B(n)”は、信号の予測値と“B”ビットを有する逆量子化器の出力の和に等しくなるであろう。復号器のこの部分(part:パート)255は、
図1の低ビットレートローカル復号器155と同じである。
【0014】
モードビットレートインジケータ及びセレクタ220を使用して、復号器は、復元された信号を向上させ得る。
【0015】
実際には、もし“B+1”ビットが受け取られたことをモードが示すならば、その場合に、出力は、信号の予測値
【数10】
と“B+1”ビットを有する逆量子化器230の出力
【数11】
の和に等しくなるであろう。
【0016】
もし“B+2”ビットが受け取られたことをモードが示すならば、出力は、信号の予測値
【数12】
と“B+2”ビットを有する逆量子化器240の出力
【数13】
の和に等しくなるであろう。
【0017】
それは、z変換表記法(z-transform notation)を使用することによって、ループ構造“R
B+k(z)=X(Z)+Q
B+k(z)”のように書くことができ、ここで、“B+k”ビットを有する量子化雑音“Q
B+k(z)”は、
【数14】
によって定義される。
【0018】
ITU−T標準G.722(以下ではG.722と指定される)の埋め込みコードADPCM符号化は、「50〜7000[Hz]」の最小帯域幅によって定義されると共に、16[kHz]でサンプリングされる広帯域において、信号の符号化を実行する。G.722符号化は、2つの信号サブ帯域「0〜4000[Hz]」及び「4000〜8000[Hz]」の各々のADPCM符号化であり、直交ミラーフィルタ(quadrature mirror filter)による信号分解によって獲得される。高域がサンプル当たり2ビットのADPCM符号器によって符号化される一方、低域は、埋め込みコードADPCM符号化によってサンプル当たり6、5、及び4ビットで符号化される。全体のビットレートは、低域の復号化のために使用されるビットの数に従って、64、56、または48[ビット/s]になるであろう。
【0019】
この符号化は、最初にISDN(Integrated Services Digital Network)における使用のために開発された。それは、IPネットワーク上の「HDヴォイス(HD voice:高音質(HD)音声」と称される改良された品質の電話通信アプリケーションに最近展開された。
【0020】
多数のレベルを有する量子化器に関して、量子化雑音のスペクトルは比較的平らであろう。しかしながら、信号が低いエネルギーを有する周波数ゾーンにおいて、雑音は、信号に匹敵するレベル、または実際には信号より大きいレベルを有し、従って、もはや必ずしもマスクされるとは限らない。その場合に、それは、これらの領域で聞こえる状態になるかもしれない。
【0021】
符号化雑音の整形(shaping:成形)が、従って必要である。G.722のような符号器では、埋め込みコード符号化に適応した符号化雑音整形が更に望ましい。
【0022】
一般的に、符号化雑音を整形することの目的は、スペクトル包絡線が短期間のマスキングしきい値に従う量子化雑音を獲得することであり、この原理は、多くの場合、雑音のスペクトルがおおよそ信号のスペクトルに追随すると共に、信号のエネルギーがより低いゾーンにおいてさえもその雑音が聞き取れないままであるようにより均一の信号対雑音比を保証するために、単純化される。
【0023】
埋め込みコードPCM(パルス符号変調)タイプのための雑音整形技術は、ITU−T勧告G.711.1“Wideband embedded extension for G.711 pulse code modulation”、または、“Y. Hiwasaki”、“S. Sasaki”、“H. Ohmuro”、“T. Mori”、“J. Seong”、“M. S. Lee”、“B. Kovesi”、“S. Ragot”、“J.-L. Garcia”、“C. Marro”、“L. Miao”、“J. Xu”、“V. Malenovsky”、“J. Lapierre”、“R. Lefebvre”、“G.711.1: A wideband extension to ITU-T G.711”、EUSIPCO、Lausanne、2008年において説明されている。
【0024】
この勧告は、従って、コアビットレート符号化のための符号化雑音の整形を伴う符号化を説明する。符号化雑音を整形するための知覚フィルタは、逆コア量子化器から生じる過去の復号化された信号に基づいて計算される。コアビットレートローカル復号器は、従って雑音整形フィルタを計算することを可能にする。このように、復号器で、コアビットレート復号化信号(core bitrate decoded signal)に基づいて、この雑音整形フィルタを計算することが可能である。
【0025】
改良ビットを配信する量子化器が、符号器で使用される。
【0026】
コアバイナリストリーム及び改良ビットを受け取る復号器は、コアビットレート復号化信号に基づいて、符号器における方法と同じ方法で、符号化雑音を整形するためのフィルタを計算すると共に、このフィルタを改良ビット逆量子化器の出力信号に適用し、フィルタ処理された信号を復号化されたコア信号に加えることによって、整形された高いビットレート信号が獲得される。
【0027】
雑音の整形は、従って、コアビットレート信号の知覚の品質を改良する。それは、改良されたビットに関する品質において、限られた改良を提供する。実際には、符号化雑音の整形は、改良ビットの符号化に対しては実行されず、量子化器の入力は、改良された量子化に関しては、コア量子化のための入力と同じである。
【発明の概要】
【発明が解決しようとする課題】
【0028】
改良ビットがコアビットに加えて復号化されるとき、復号器は、その場合に、適当なフィルタ処理によって、結果として生じる不要な成分を削除しなければならない。
【0029】
復号器におけるフィルタの追加の計算は、復号器の複雑さを増大させる。
【0030】
この技術は、G.722及びG.727復号器タイプの既に存在する標準のスケーラブルデコーダには使用されない。従って、現存する標準のスケーラブルデコーダと互換性がある状態を維持する一方、どのようなビットレートであっても信号の品質を改良する必要性が存在する。
【0031】
復号器で補足的信号処理を行うことを必要としない解決法が、特許出願WO2010/058117号において説明される。この出願において、復号器で受け取られた信号は、コアビットレート信号及び埋め込みビットレート信号を、雑音または修正項(corrective term)を整形するためのあらゆる計算を必要とせずに、復号化することができる標準の復号器によって復号化され得る。
【0032】
この文献は、階層型符号器改良ステージに関して、知覚的にフィルタ処理された領域(domain)における二次誤差基準(quadratic error criterion)を最小化することによって量子化が実行されることを説明する。
【0033】
従って、符号化雑音整形フィルタが定義されて、少なくとも先行する符号化ステージの再構成された信号に基づいて判定された誤差信号に適用される。スキームは、更に、あとに続く符号化ステージの予測として、現在の改良ステージの再構成された信号の計算を必要とする。
【0034】
更に、改良項が、現在の改良ステージに関して計算されて保存される。これは、従って、有意の複雑さと、改良項または以前のステージの再構成された信号サンプルの有意の記憶量を導入する。
【0035】
この解決法は、従って、複雑さの見地から最適ではない。
【0036】
従って、現存する階層型復号器と互換性がある状態を維持しながら、符号化と改良符号化の雑音の整形のために、従来技術スキームを改良する必要性が存在する。
【課題を解決するための手段】
【0037】
本発明は、状況を改善するようになる。それは、この目的のために、“B”ビットを有するコア符号化ステージと、少なくとも1つの現在の改良符号化ステージkを備える階層型符号器においてデジタル音声入力信号(x(n))を符号化する方法であって、前記現在のステージkに先行する前記コア符号化ステージ及び前記改良符号化ステージが、先行する埋め込み符号器のインデックス(I
B+k−1)を形成するように連結された量子化インデックスを配信する方法を提案する。その方法は、それが下記の、−前記現在のステージkのみの絶対再構成レベル及び前記先行する埋め込み符号器のインデックスに基づいて、前記現在の改良ステージkに関する考えられる量子化値を獲得するステップと、−前記考えられる量子化値のうちの1つに対応する、前記ステージkに関する量子化インデックス、及び量子化信号を形成するように、前記考えられる量子化値に基づいて、知覚の重み付け処理を受けたまたは受けていない前記階層型符号器の前記入力信号を量子化するステップとを含むようなものである。
【0038】
従って、改良ステージの量子化は、以前のステージのインデックスと直接連結される量子化インデックスビットまたは複数の量子化インデックスビットを判定する。従来技術スキームとの対比において、改良信号及び改良項の計算は、存在しない。
【0039】
更に、量子化の入力における信号は、直接的に階層型符号器の入力信号であるか、または、知覚の重み付け処理を直接的に受けたまさにこの入力信号である。従来技術と同様に、ここでは、これは、入力信号と先行する符号化ステージの再構成された信号との間の差異に関する差信号を包含しない。
【0040】
計算負荷に関する複雑さは、それによって減少する。
【0041】
更に、従来技術スキームとの対比において、保存された量子化値は、差分値(differential value)ではない。従って、改良ステージのための量子化辞書を構成するために、以前のステージにおける再構成の代わりになる量子化値を保存することは、有益ではない。
【0042】
更に、従来技術スキームとの対比において、改良ステージが現存する階層型符号器及び階層型復号器によって保存される絶対レベル
【数15】
を直接使用するので、差分辞書(differential dictionary)を構成して保存することは、必要ではない。従って、本発明は、符号器において差分辞書が使用され、復号器において絶対辞書(absolute dictionary)が使用される従来技術スキームにおいて直面し得る辞書の重複を回避する。
【0043】
辞書の保存、そして符号器における量子化及び復号器における逆量子化の演算のために必要とされる記憶装置(memory:メモリ)は、従って減少する。
【0044】
最後に、差を求めずに改良ステージの量子化値を直接獲得することは、例えば有限の精度で動作している場合に、符号器で獲得された値と復号器で獲得された値との間の追加の正確度を導入する。
【0045】
下記で言及された様々な特別な実施例は、お互いに独立してまたは組み合わせて、上記で定義された方法のステップに加えられ得る。
【0046】
特定の実施例において、前記量子化ステップの前に、前記入力信号は、修正された入力信号を与えるための所定の重み付けフィルタを使用して、知覚の重み付け処理を受けたと共に、前記方法は、前記現在の改良符号化ステージの前記量子化信号に基づいて前記重み付けフィルタのメモリを適応させるステップを更に含む。
【0047】
入力信号と先行する符号化ステージの再構成された信号との間の差異に関する差信号に関してこの知覚の重み付け処理を行った従来技術に対して、ステージkの改良符号化のために階層型符号器の入力信号に直接的に適用されたこの知覚の重み付け処理は、更に、計算の負荷に関する複雑さを減少させる。
【0048】
従って、説明された符号化方法は、更に、現存する復号器が、効果的な符号化雑音の整形による信号の改良から利益を得る一方、実行されるべきあらゆる修正または想定されるべき追加の処理が存在しない状態で、信号を復号化することを可能にする。
【0049】
特定の実施例において、改良ステージkの前記考えられる量子化値は、更に、適応タイプ(adaptive type)のコア符号化から生じる倍率及び予測値を含む。
【0050】
これは、コア符号化において定義された値に対して量子化値を適応させることを可能にする。
【0051】
代替の実施例において、改良ステージkにおいて量子化されるべき前記修正された入力信号は、適応タイプのコア符号化から生じる予測値が差し引かれる知覚的に重み付けされた入力信号である。
【0052】
これは、更に、各量子化値に関してよりむしろ量子化器の入力においてこの適応を実行することによってではあるが、コア符号化において定義された値に対して量子化値を適応させることを可能にする。これは、その改良がいくらかのビットに関して行われる場合に有利である。
【0053】
特定の方法において、前記知覚の重み付け処理は、ARMAタイプのフィルタを形成する予測フィルタによって実行される。
【0054】
改良符号化雑音の整形は、その場合に、良い品質を有する。
【0055】
同じく本発明は、“B”ビットを有するコア符号化ステージと、少なくとも1つの現在の改良符号化ステージkを備える、デジタル音声入力信号の階層型符号器であって、前記現在のステージkに先行する前記コア符号化ステージ及び前記改良符号化ステージが、先行する埋め込み符号器のインデックスを形成するように連結された量子化インデックスを配信する階層型符号器と関係がある。前記符号器は、それが、−前記先行する埋め込み符号器のインデックスに基づいて前記現在のステージkのみの絶対再構成レベルを判定することによって、前記現在の改良ステージkに関する考えられる量子化値を獲得するためのモジュールと、−前記考えられる量子化値のうちの1つに対応する、前記ステージkに関する量子化インデックス、及び量子化信号を形成するように、前記考えられる量子化値に基づいて、知覚の重み付け処理を受けたまたは受けていない前記階層型符号器の前記入力信号を量子化するためのモジュールとを備えるようなものである。
【0056】
前記階層型符号器は、前記量子化モジュールの入力における、修正された入力信号を与えるための所定の重み付けフィルタを使用した知覚の重み付けのための前処理モジュールと、前記現在の改良符号化ステージの前記量子化信号に基づいて前記重み付けフィルタのメモリを適応させるためのモジュールとを更に備える。
【0057】
階層型符号器は、それが実施する方法の利点と同じ利点を提供する。
【0058】
本発明は、更に、プロセッサによって実行される場合に本発明による符号化方法のステップを実施するためのコード命令を含むコンピュータプログラムと関係がある。
【0059】
本発明は、最終的に、上記で説明されたようなコンピュータプログラムを格納すると共に、プロセッサによって読み取り可能な記憶手段と関係がある。
【0060】
本発明の他の特徴及び利点は、単に限定されない例のつもりで与えられた下記の説明を読むことに基づいて、そして添付図面を参照することによって、更に明らかに明白になるであろう。
【発明を実施するための形態】
【0062】
図3を参照すると、本発明の一実施例による符号化方法だけでなく符号器が説明されている。
【0063】
ここで考察されているのは、Bビットを有するコア符号化及び少なくとも1つのランクkの改良ステージが構想される埋め込みコード符号器または階層型符号器の場合であるということが思い出される。符号306で描写されたような改良の符号化ステージkに先行するコア符号化ステージ及び改良ステージは、サンプル当たり“B+k−1”ビットのインデックス“I
B+k−1(n)”に多重化されたスカラー量子化インデックスを配信する。
【0064】
下記で説明された代表的な実施例では、説明を単純化するために、(ランクkの)改良ステージは、サンプルごとに追加のビットを生成するとして提示される。この場合、各改良ステージにおける符号化は、2つの考えられる値のうちの1つを選択することを必要とする。続いて明白になるように、ランクkの改良ステージが生成することができる全ての量子化値に対応する“絶対辞書”−絶対レベル(非差分という意味で)の観点において−は、サイズ“2
B+k”の辞書であるか、または、低域の6ビット量子化器における64個の可能なレベルの代わりにわずか60個の考えられるレベルを有する、例えばG.722の符号器における辞書のように、時にはサイズ“2
B+k”よりわずかに小さい辞書である。階層型符号化は、1つの改良ビットが以前のステージの“B+k−1”ビットを与えられて符号化を行うのに十分であることを説明する“絶対辞書”のバイナリーツリー構造(binary tree structure)を包含する。
【0065】
図9は、前述の“X.Maitre”の論文の表VI(table VI)からの抽出であると共に、“B+2”ビットの従来技術の改良量子化器の出力値だけでなく、“B”ビットを有するコア量子化器の“B=4”ビットに対する最初の4つのレベル、そしてG.722符号器の低域の符号化の“B+1”ビット及び“B+2”ビットを有する量子化器のレベルを描写する。
【0066】
この図において例証されたように、“B+1=5”ビットを有する埋め込み量子化器(embedded quantizer)は、“B=4”ビットを有する量子化器のレベルを“分割する”ことによって獲得される。“B+2=6”ビットを有する埋め込み量子化器(embedded quantizer)は、“B+1=5”ビットを有する量子化器のレベルを“分割する”ことによって獲得される。実際には、再構成のレベルの分割は、G.722においてツリー構造化された(サンプル当たり4、5、または6ビットを有する)スカラー量子化辞書の形式で実施される低域に関する階層型符号化の制限の結果である。
【0067】
従来技術において、改良ステージkに関する量子化再構成レベルを示す値
【数16】
は、“B+k”ビット(“B”はコア符号化のビット数を示す)を有する埋め込み量子化器の量子化の再構成レベルを示す値と、“B+k−1”ビットを有する埋め込み量子化器の量子化の再構成レベルを示す値との間の差異によって定義され、“B+k”ビットを有する埋め込み量子化器の量子化の再構成レベルは、“B+k−1”ビットを有する埋め込み量子化器の量子化の再構成レベルを分割することによって定義される。
【0068】
本発明に関して、右側に記載されたと共に点線によって囲った差分の再構成レベル
【数17】
は、計算されて保存される必要はない。本発明によれば、ステージkの絶対的な再構成レベル
【数18】
が、計算されて保存される。
【0069】
標準の埋め込みコードADPCM復号器を表す
図2の説明を参照して既に提示されたように、これらのステージkの絶対的な再構成レベル
【数19】
は、再構成された信号が、倍率v(n)を乗算し、予測信号
【数20】
を加えることによって、これらの絶対的な再構成レベル
【数21】
に基づいて、ADPCM符号化の一般的な場合に獲得され得るという意味において、復号器における方法と同じ方法で符号器において使用される。これらのレベルは復号器において既に定義されて保存されているので、従って、符号器は、符復号器(codec:コーデック)(符号器+復号器)において、追加の量子化テーブルを全く加えない。
【0070】
本発明による改良ステージの符号化は、改良ステージがサンプル当たりいくらかのビットを追加する場合に関して、非常に容易に一般化可能である。この場合に、これ以降定義されるように、改良ステージで使用された辞書“D
k(n)”のサイズは、単に2
Uであり、ここで、“U>1”は、改良ステージのサンプル当たりのビット数である。
【0071】
例えば
図3において描写されるような符号器は、Bビットを有するコア符号化及び少なくとも1つのランクkの改良ステージが構想される埋め込みコード符号器または階層型符号器を示す。符号306で描写されたような改良の符号化ステージkに先行するコア符号化ステージ及び改良ステージは、先行する埋め込み符号器のインデックス“I
B+k−1(n)”を形成するように連結されたスカラー量子化インデックスを配信する。
【0072】
図3は、簡単な方法で、符号306における改良符号化に先行する埋め込み符号化を描写するPCM/ADPCM符号化モジュール302を例証する。
【0073】
先行する埋め込み符号化のコア符号化は、“コア”符号化雑音を整形するように、符号301において判定されたマスキングフィルタを使用して、任意に実行され得る。このタイプのコア符号化の例は、
図8を参照して続いて説明される。
【0074】
実際には
図1を参照して説明された符号化と類似したADPCM予測符号化に対処する場合に、このように、このモジュール302は、予測信号
【数22】
及び倍率v(n)だけでなく、埋め込み符号器のインデックス“I
B+k−1(n)”を配信する。
【0075】
PCM符号化の場合は、モジュール302は、単に、埋め込み量子化インデックスI
B+k−1(n)”を配信する。更に、PCM符号化が、
【数23】
及び“v(n)=1”とするADPCM符号化の特別な場合であることに注意が必要である。
【0076】
適切な場合、予測信号
【数24】
及び倍率v(n)だけでなく、埋め込み量子化インデックス“I
B+k−1(n)の知識及び絶対的な再構成レベル
【数25】
の知識は、量子化値の辞書を構成するためのモジュール303において、現在の改良ステージkに関する量子化値
【数26】
を判定することを可能にする。この辞書“D
k(n)”は、ランクkの改良ステージのための“改良量子化器”としてここで参照される量子化器によって使用される。
【0077】
従って、好ましい実施例によれば、ADPCM符号化の場合は、辞書の量子化値は、下記の方法で定義される。
【0079】
ここで、“j=0”または“j=1”である場合に、
【数28】
は、“B+k”ビットの埋め込み量子化器の2つの考えられる量子化値を表し、その値は、符号器において、そして復号器において事前に定義されて保存される。先行するステージ“k−1”の辞書
【数29】
の“分割(splitting)”から生じるものとして、値
【数30】
を見ることができる。
【0080】
辞書“D
k(n)”の2つの要素が“I
B+k−1”によって決まることに注意が必要である。実際、この辞書は、下記のように定義される“絶対辞書”のサブセットである。
【0082】
“絶対辞書”は、ツリー構造化された(tree-structured)辞書である。インデックス“I
B+k−1”は、ステージkの考えられる量子化値(D
k(n))を判定するためにツリーの様々なブランチが考慮されるように条件づける。
【0083】
図1において例証されたように、倍率“v(n)”は、ADPCM符号化のコアステージによって決定されると共に、従って、改良ステージは、量子化辞書の符号語(code word)を増減させるために、この同じ倍率を使用する。
【0084】
本発明の一実施例では、
図3の符号器は、モジュール301及び310を含まず、すなわち符号化雑音の整形処理への対策は全く講じられない。従って、量子化モジュール306によって量子化されるのは、入力信号“x(n)”そのものである。
【0085】
特定の実施例において、符号器は、更に、マスキングフィルタを計算し、そして続いて説明される重み付けフィルタ“W(z)”または予測のバージョン“W
PRED(z)”を判定するためのモジュール301を備える。マスキングフィルタまたは重み付けフィルタは、ここでは、入力信号“x(n)”に基づいて判定されるが、しかし、復号化された信号、例えば先行する埋め込み符号器の復号化された信号
【数32】
に基づいて非常によく判定されるであろう。マスキングフィルタは、サンプル毎に、またはサンプルのブロック単位で、判定され得るか、もしくは適合され得る。
【0086】
実際には、本発明による符号器は、フィルタ“W(z)”によって重み付けされた領域(domain)における量子化を使用することによって、すなわち“W(z)”によりフィルタ処理された量子化雑音のエネルギーを最小限にすることによって、改良ステージの符号化雑音の整形を行う。
【0087】
この重み付けフィルタは、フィルタ処理モジュールによって、そしてより全体的には、入力信号“x(n)”の知覚の重み付け前処理のためのモジュール310によって、符号311において使用される。この前処理は、従来技術の場合にありえたように、誤差信号ではなく直接入力信号“x(n)”に適用される。
【0088】
この前処理モジュール310は、改良量子化器307の入力に修正された信号“x’(n)”を配信する。
【0089】
改良ステージkの量子化モジュール307は、現在の埋め込み符号化のインデックス(I
B+k)を形成するように、ここで表されないモジュールによって先行する埋め込み符号化のインデックス(I
B+k−1)と連結されることになる量子化インデックス“I
enhB+k(n)”を配信する。
【0090】
改良ステージkの量子化モジュール307は、適応辞書“D
k(n)”の2つの値
【数33】
の中から選択をする。
【0091】
それは、入力として信号“x’(n)”を受け取り、ローカル復号化モジュール308を通ることによって、出力として量子化された値
【数34】
を、“x’(n)”と
【数35】
との間の二次の誤差(quadratic error)を最小化することによって与える。(ここで、
【数36】
は、
【数37】
のいずれかに等しい。)従って、適応辞書“D
k(n)”は、ステージkの量子化された出力値を直接含む。
【0092】
モジュール308は、インデックス
【数38】
の逆量子化によって、入力信号の量子化された値を与える。復号器において、同じ値が、単にステージkの逆の量子化器及び連結されたインデックスを直接使用することによって、下記式のように獲得される。
【0094】
この量子化信号は、入力
【数40】
に対応するメモリを獲得するように、改良ステージの重み付けフィルタ“W(z)”のメモリを更新するために使用される。一般的に、復号化された信号の現在の値
【数41】
が、より最近のメモリ(または、ARMAタイプのフィルタの場合における複数のメモリ)から差し引かれる。
【0095】
従って、信号“x(n)”の量子化は、重み付けされた領域において行われ、それは、フィルタ“W(z)”によってフィルタ処理した後で、“x(n)”と
【数42】
との間の2次の誤差を最小化することを意味する。改良ステージの量子化雑音は、従って、フィルタ“1/W(z)”によって、この雑音をあまり聞こえる状態にしないように、整形される。重み付けされた量子化雑音のエネルギーは、従って、最小限にされる。
【0096】
図3において与えられるブロック310の一般的な実施例は、“W(z)”が無限インパルス応答(IIR)フィルタまたは有限インパルス応答(FIR)フィルタである一般的な場合を示す。信号“x’(n)”は、“x(n)”を“W(z)”によってフィルタ処理することによって獲得され、その場合に、量子化された値
【数43】
が知られているとき、そのフィルタ処理が信号
【数44】
に関して実行されたかのように、フィルタ“W(z)”のメモリが更新される。
【0097】
破線の矢印は、フィルタのメモリの更新を表す。
【0098】
従って、
図3において例証されたように、符号器に実装されるステップが更に表される。実際には、下記の、
−符号303において、先行する埋め込み符号器のインデックス(I
B+k−1)に基づいて現在のステージkのみの絶対再構成レベルを判定することによって、現在の改良ステージkに関する考えられる量子化値
【数45】
を獲得するステップと、
−符号306において、考えられる量子化値のうちの1つに対応する、ステージkに関する量子化インデックス(I
enhB+k(n))、及び量子化信号
【数46】
を形成するように、前記考えられる量子化値
【数47】
に基づいて、知覚の重み付け処理を受けたまたは受けていない階層型符号器の入力信号(x’(n)またはx(n))を量子化するステップが、その中で発見される。
【0099】
図3に表されたケースにおいて、入力信号は、符号306における量子化ステップの前に、修正された入力信号“x’(n)”を与えるために、符号301においてあらかじめ定められた重み付けフィルタを使用して、符号310において知覚の重み付け処理を受けた。
【0100】
図3は、更に、現在の改良符号化ステージの量子化信号
【数48】
に基づいて重み付けフィルタのメモリを適応させるための、符号311における適応ステップを表す。
【0101】
図4、5、及び6は、ここで、前処理ブロック310の特定の実施例を描写する。
【0102】
ブロック301、302、303、306、307、及び308は、その場合に、
図3を参照して説明されたそれらと同じままである。
【0103】
図4は、有限インパルス応答(FIR)を有するフィルタ“W(z)=A’(z)”を備えた前処理ブロック310の第1の実施例を表す。
【0104】
この実施例において、フィルタのメモリは、信号
【数49】
の過去の入力サンプルを単独で含み、“b
B+k(n’),n’=n−1,...,n−N
D”のように表される。N
Dは、知覚フィルタ“W(z)”の次数である。
【0105】
符号302において、入力信号“x(n)”は、埋め込み符号器“B+k−1”の符号化雑音の整形ありで、あるいは、埋め込み符号器“B+k−1”の符号化雑音の整形なしで、PCM/ADPCM符号化モジュール302によって符号化される。
【0106】
符号303において、適応辞書“D
k”は、
図3を参照して説明されたように、ADPCM適応タイプの符号化の場合は、そして符号化インデックス“I
B+k−1(n)”の場合は、コアステージの倍率“v(n)”の予測値
【数50】
の関数として構成される。適応辞書“D
k”は、単一の改良ビットが改良ステージkにおいて構想される特定の実施例において、下記の2つの項(term)を含む。
【0108】
この実施例では、符号301においてマスキングフィルタを計算するステップ、そして重み付けフィルタ“W(z)”及び予測に基づくその予測のバージョン“W
PRED(z)”を判定するステップ、すなわち単独で過去のサンプルを使用する計算を発見する。
【0109】
予測フィルタの定義をここで思い起こす。
【0110】
一例として、(同様に有限インパルス応答のためにFIRと称される)零点のみ(all-zero)の伝達関数を有する次数4の非再帰型フィルタ“A(z)”
【数52】
によって信号“x(n)”をフィルタ処理して、結果として信号“y(n)”を与える場合を考える。z変換の領域において、方程式“Y(z)=A(z)X(z)”は、差分方程式“y(n)=a
0x(n)+a
1x(n−1)+a
2x(n−2)+a
3x(n−3)+a
4x(n−4)”に対応する。
【0111】
“y(n)”に関するこの表現法は、2つの部分に分割され得る。
−第1の部分“a
0x(n)”は、現在の入力“x(n)”のみによって変わる。本明細書において、通常は、そして我々にとって興味がある場合に、“a
0=1”である。
−第2の部分“a
1x(n−1)+a
2x(n−2)+a
3x(n−3)+a
4x(n−4)”は、過去の入力“x(n−i),i>0”のみによって変わる。それは、従って、以前のサンプルに基づいて“x(n)”の予測を表す線形予測を有する類推による、フィルタ処理の予測部分(predictive part)であると考えられるであろう。
【0112】
この第2の部分は、サンプリング時点“n”における、実際には一般化された予測値である“ゼロ入力応答”(ZIR)、あるいは、“リンギング(ringing)”」に対応する。この成分のz変換は、下記のようになる。
【0114】
同様に、
【数54】
の場合に、信号“y(n)”をもたらす、極のみ(all-pole)の次数4の再帰型フィルタ
【数55】
による信号“x(n)”のフィルタ処理に関して、伝達関数は、差分方程式が“y(n)=x(n)−b
1y(n−1)−b
2y(n−2)−b
3y(n−3)−b
4y(n−4)”の場合に、
【数56】
を与える。
【0115】
z変換が
【数57】
の場合に、革新部分(innovation part)は“x(n)”であり、予測部分(predictive part)は“−b
1y(n−1)−b
2y(n−2)−b
3y(n−3)−b
4y(n−4)”である。
【0116】
同じことが、差分方程式が
【数58】
である場合に、全く同一の時刻に零と極を含むフィルタ(ARMA(自己回帰移動平均)フィルタ)
【数59】
に関して適用できる。(この例では、“A(z)”及び“B(z)”は次数4である。)
【0117】
z変換が
【数60】
の場合に、革新部分(innovation part)は“x(n)”であり、予測部分(predictive part)は
【数61】
である。
【0118】
これ以降、“H
PRED(z)”は、一般的にその現在の入力“x(n)”に対する係数がゼロであるフィルタを表示する。
【0119】
極のみの再帰型フィルタ
【数62】
またはARMA再帰型フィルタ
【数63】
は、いわゆるIIR(無限インパルス応答)フィルタである。
【0120】
この場合は、
図4において、革新部分(innovation part)と予測部分(predictive part)へのフィルタ処理の切り分けを使用することによって、エネルギーが最小限にされなければならない項は、
【数64】
である。
【0121】
ステージkの改良量子化器によって量子化されるべき信号は、従って、
【数65】
であり、ここで、
【数66】
は、予測フィルタ“W
PRED(z)”によって
【数67】
をフィルタ処理することによって獲得される。これらの2つのフィルタ処理は、(例えばフィルタのメモリを更新することによって)1つに結合され得ると共に、共通のフィルタ“W
PRED(z)”の入力は、その場合に、
【数68】
になるであろう。その場合に、フィルタ処理の出力として、
【数69】
が獲得される。
【0122】
前処理モジュール310は、符号404において、“W
PRED(z)”によって、符号409において獲得された信号
【数70】
の過去のサンプルをフィルタ処理することにより、予測値
【数71】
を計算するステップを実施する。
【0123】
この予測値
【数72】
は、改良ステージkの量子化器の修正された入力信号“x’(n)”を獲得するために、符号405において入力信号“x(n)”に加えられる。
【0124】
“x’(n)”の量子化は、改良ステージkの量子化インデックス
【数73】
、及びステージkの復号化された信号
【数74】
を与えるために、符号306において、改良ステージkの量子化モジュールによって実行される。モジュール307は、“x’(n)”と量子化値
【数75】
との間の2次の誤差を最小化する、適応辞書“D
k”の符号語(code word)のインデックス
【数76】
(代表的実例では1ビット)を与える。このインデックスは、復号器においてステージkの符号語のインデックス“I
B+k”を獲得するために、先行する埋め込み符号器のインデックス“I
B+k−1”と連結されなければならない。モジュール308は、インデックス
【数77】
の逆量子化によって、入力信号の量子化された値
【数78】
を与える。
【0125】
復号器において、単に、ステージkの逆量子化、及び、
【数79】
を獲得するための連結されたインデックスを直接使用することによって、同じ値が獲得される。
【0126】
符号409において、ステージkを含む符号器の符号化雑音“b
B+k(n)”を計算するステップが、入力信号“x(n)”を、現在のサンプル(n=0)に関するステージkの合成された信号
【数80】
から差し引くことによって、実行される。
【0127】
ブロック310の前処理の動作は、従って、入力信号“x(n)”の知覚の重み付けを実行することによって、ステージkの改良符号化雑音を整形することを可能にする。知覚的に重み付けされているのは入力信号そのものであり、従来技術スキームにおける場合のような誤差信号ではない。
【0128】
図5は、前処理モジュールの別の代表的な実施例を例証すると共に、この実施例では、伝達関数
【数81】
を有するARMA(自己回帰移動平均)タイプのフィルタ処理を使用する。
【0129】
図5に基づいた動作は、下記のとおりにつながれる。符号301において、マスキングフィルタを計算すると共に、重み付けフィルタ
【数82】
を判定する。任意に、符号化雑音を整形するために符号301において判定されたマスキングフィルタを使用した符号化雑音の整形を伴って、符号302において、“B+k−1”ビットのPCM/ADPCMタイプの埋め込み符号器によって、入力信号“x(n)”を符号化する。符号303において、予測値
【数83】
の関数として、及び(ADPCM符号化の場合に)コアステージの倍率v(n)の関数として、及び量子化インデックス“I
B+k−1(n)”の関数として、適応辞書“D
k”を判定する。
【0131】
これらのステップは、
図3を参照して説明されるものに相当する。
【0132】
前処理モジュール310は、フィルタ処理された再構成された雑音
【数85】
に基づいて符号510において計算された予測値を加えることによって、そして、再構成された雑音
【数86】
に基づいて符号511において計算された予測値を差し引くことによって、符号512において、フィルタ処理された量子化雑音
【数87】
の予測信号
【数88】
を計算するステップを含む。
【0133】
符号505において、予測信号
【数89】
を信号“x(n)”に加えるステップが、修正された信号“x’(n)”を与えるために実行される。
【0134】
修正された信号“x’(n)”を量子化するステップが、
図3及び
図4を参照して説明された方法と同じ方法で、量子化モジュール306によって実行される。
【0135】
従って、ブロック306の量子化は、出力として、インデックス
【数90】
、及び、ステージkにおける復号化された信号
【数91】
を与える。
【0136】
符号509において、信号“x(n)”から再構成された信号
【数92】
を差し引くステップが、復号化された雑音“b
B+k(n)”を与えるために実行される。
【0137】
符号513において、予測信号
【数93】
を信号“b
B+k(n)”に加えるステップが、フィルタ処理された再構成された雑音
【数94】
を与えるために実行される。
【0138】
前処理ブロック310のモジュールによって、符号505、509、510、511、512、及び513において実行される全てのステップは、改良符号化ステージkに関して、符号化雑音を整形することを可能にする。雑音のこの整形は、その場合に、従って雑音整形の更に良い正確度を提供するARMAフィルタを構成する2つの予測フィルタによって実行される。
【0139】
図6は、フィルタ処理された再構成された信号
【数95】
が計算される方法に違いが存在する、前処理ブロック310の更にもう一つの実施例を例証する。フィルタ処理された再構成された雑音
【数96】
は、符号614において、信号“x’(n)”から復号化されたシグナル
【数97】
を差し引くことによって、ここでは獲得される。
【0140】
上記で説明された
図5及び
図6では、過去のサンプルに関するフィルタ処理された再構成された雑音信号
【数98】
に基づいて重み付けフィルタのメモリを更新することについて、更に説明することが可能である。
【0141】
図7は、コア符号化に由来する予測された信号
【数99】
を異なって処理することによって信号“x’(n)”を量子化するステップ306に関する代替実施例を例証する。この実施例は、
図3において提示される代表的な前処理ブロック310によって表示されるが、しかし、明らかに
図4、5、及び6で説明された前処理ブロックに統合され得る。
図7に基づいた動作は、下記のとおりにつながれる。符号301において、マスキングフィルタを計算すると共に、重み付けフィルタ“W(z)”またはその予測のバージョン“W
PRED(z)”を判定する。任意に、符号化雑音を整形するために符号301において判定されたマスキングフィルタを使用した符号化雑音の整形を伴って、符号302において、“B+k−1”ビットのPCM/ADPCMタイプの埋め込み符号器によって、入力信号“x(n)”を符号化する。符号701において、(ADPCM符号化の場合に)コアステージの倍率v(n)の関数として、及び埋め込み符号化の先行するステージkの量子化インデックス“I
B+k−1(n)”の関数として、適応辞書“D
k’”を判定する。
【0143】
符号311において、フィルタ“W(z)”のメモリとしての入力信号
【数101】
に対応する値と共に、改良量子化器の修正された入力信号“x’(n)”を獲得するために、信号“x(n)”をフィルタ“W(z)”によってフィルタ処理する。符号706において、インデックス
【数102】
、及び、ステージkにおける復号化された信号
【数103】
を与えるために、入力信号“x’(n)”を量子化する。
【0144】
この実施例において、コアステージの予測された信号
【数104】
は、修正された信号
【数105】
を獲得するために、信号“x’(n)”から差し引かれる(モジュール702)。
【0145】
モジュール707は、“x''(n)”と符号語
【数106】
との間の2次の誤差を最小化する、適応辞書“D
k’”の符号語のインデックス
【数107】
(代表的実例では1ビット)を与える。このインデックスは、復号器においてステージkを含む現在の埋め込み符号化のインデックス“I
B+k”を獲得するために、先行する埋め込み符号化のインデックス“I
B+k−1”と連結されなければならない。
【0146】
モジュール708は、インデックス
【数108】
の逆量子化によって、信号“x''(n)”の量子化された値
【数109】
を与える。モジュール703は、予測された信号と量子化器からの出力信号とを合計することによって、ステージkの量子化信号
【数110】
を計算する。
【0147】
最終的に、入力
【数111】
に対応するメモリを獲得するために、フィルタ“W(z)”のメモリを更新するステップが符号311において実行される。一般的に、復号化された信号の現在の値
【数112】
は、より最近のメモリ(または、ARMAタイプのフィルタの場合におけるメモリ)から差し引かれる。
【0148】
図7における解決法は、品質(quality)及び記憶装置(storage)の点から、
図3の解決法と同等であるが、しかし、改良ステージが1ビット以上を使用する場合に、計算をほとんど必要としない。実際には、予測値
【数113】
を全ての符号語(>2)に加える代りに、量子化の前に単に1つの減算を行い、そして、量子化された値
【数114】
を取り出すために単に1つの加算を行う。その複雑さは、従って減少する。
【0149】
別の代替実施例が、
図7bで例証される。ここで、適応辞書“D
k'' ”は、修正された入力信号から、適切であるならばステージkの倍率“v(n)”によって重み付けされた再構成レベルを差し引くことによって構成される。
【0151】
この典型例において、それは、2次の誤差を最小化することによって量子化される予測信号
【数116】
である。
次に、メモリを更新するための復号化された信号
【数117】
は、下記の方法において獲得される。
【0153】
図8は、コア符号化における雑音の整形の可能な実装を詳述する。モジュール801は、雑音整形フィルタの係数
【数119】
を計算する。モジュール802は、前のサンプリング時点“n−1,n−2,...”の符号化の誤差
【数120】
を計算する。この誤差は、予測信号“q
w,pred(n)”を獲得するために予測フィルタ“H
PRED(z)”によってフィルタ処理される。“H
PRED(z)”に対応するフィルタ“H(z)”は、例えば、
【数121】
のいずれかに等しくなり得る。
【0154】
時点“n”において、この予測値は、符号化されるべき修正された信号“x’(n)=x(n)−q
w,pred(n)”を獲得するために、符号化されるべき信号から差し引かれることになる。
【0155】
PCM/ADPCM符号器−PCM/ADPCM復号器チェーンの入力と出力との間の差異
【数122】
は、これらの符号器が多数のレベルを有する量子化器を使用すると共に、入力信号が固定であると仮定する場合に、短期的には白色雑音であると考察され得る。
【0156】
ここでは、例として、
【数123】
であるとする。PCM/ADPCM標準符号化チェーンの入力信号は、寄与(contribution:貢献)
【数124】
の減算によって修正される。これから、完全なチェーンの符号化雑音
【数125】
がフィルタ
【数126】
によって整形され、
【数127】
ということになり、これは、方程式
【数128】
の点から証明される。それ故に、
【数129】
であり、従って、
【数130】
である。
【0157】
実際には、そのフィルタ“H
PRED(z)=H(z)−1”は、(時点“n”において)“Z
0”におけるゼロの係数を有しており、従って、予測器(predictor)は、復号化された値
【数131】
が知られている場合に、その一部分に関してPCM/ADPCM処理の終りにおいてのみ知られている
【数132】
に基づいて、動作する。
【0158】
図8の動作のシーケンスは、下記のとおりである。符号801において、マスキングフィルタを計算すると共に、フィルタ“H(z)”を判定する。フィルタ“H(z)”は、同様に、復号化された信号
【数133】
に基づいて判定され得る点に注意が必要である。符号803において、前のサンプリング時点“n−1,n−2,...”の値
【数134】
に基づいて、予測値“q
w,pred(n)”を計算する([H(z)−1]Q
w(z))。符号804において、修正された信号“x’(n)”を獲得するために、予測値“q
w,pred(n)”を“x(n)”から差し引く。符号805−806において、標準のPCM/ADPCM符号器/復号器によって、修正された信号“x’(n)”の符号化/復号化を行う。ローカル復号器は、標準G.711、G.721、G.726、G.722、或いはG.727のPCM/ADPCMタイプの標準のローカル復号器であり得る。符号802において、出力信号
【数135】
から入力信号“x(n)”を差し引くことによって、フィルタ処理された符号化雑音“q
w(n)”を計算する。
【0159】
周囲を囲まれた部分807は、標準の符号器/復号器チェーンの入力を修正する雑音整形前処理として考えられると共に実施され得る。
【0160】
本発明による符号器の代表的な実施例が、
図10を参照してここから説明される。
【0161】
ハードウェアに関しては、上記で本発明の意図において様々な実施例に従って説明されたような符号器900は、記憶装置及び/またはワークメモリを含むメモリブロック“BM”と協力するプロセッサ“μP”の他に、例えば
図3、4、5、6、及び7を参照して説明されたような符号化方法の実施のために必要とされる量子化再構成レベルの辞書またはあらゆるその他のデータを保存するための手段としての前述のバッファメモリMEMを備える。この符号器は、入力として、デジタル信号“x(n)”連続するフレームを受け取り、そして、連結された量子化インデックス“I
B+K”を配信する。
【0162】
メモリブロック“BM”は、コード命令が符号器のプロセッサ“μP”によって実行されたときに本発明による方法のステップ、特に、先行する埋め込み符号器のインデックスに基づいて現在のステージkのみの絶対再構成レベルを判定することによって、現在の改良ステージkに関する考えられる量子化値を獲得するステップと、前記考えられる量子化値のうちの1つに対応する、ステージkに関する量子化インデックス、及び量子化信号を形成するように、前記考えられる量子化値に基づいて、知覚の重み付け処理を受けたまたは受けていない階層型符号器の入力信号(x’(n)またはx(n))を量子化するステップとを実施するためのコード命令を有するコンピュータプログラムを含むことができる。
【0163】
更に一般的な方法では、コンピュータまたは恐らくは符号器に統合されたプロセッサによって読み取り可能な記憶手段、任意に取り外し可能な記憶手段が、本発明による符号化方法を実施するコンピュータプログラムを記憶する。
【0164】
図3〜
図7は、例えばそのようなコンピュータプログラムのアルゴリズムを例証し得る。