(57)【要約】可変長の第１モードで符号化するための符号化モジュール（５０２）を備える、信号の包絡線をバイナリ符号化するためのモジュール（４０２）である。本発明によれば、前記第１モードで符号化するための符号化モジュールは包絡線の飽和検出器を含み、前記符号化モジュール（４０２）は、前記第１モードで符号化するための符号化モジュール（５０２）と並列に第２モードで符号化するための第２符号化モジュール（５０３）と、符号長の基準および前記包絡線の飽和検出器からの結果の関数として前記２つの符号化モードのうち１つを選択するように構成されたモードセレクタ（５０４）と、をさらに含む。可聴周波数信号の変換符号化に適用される。
2009527785.tif 000002
【特許請求の範囲】
【請求項１】
可変長の第１符号化モードを有する、信号の包絡線を定義する量子化インデックスをバイナリ符号化する方法であって、
前記第１符号化モードは包絡線の飽和検出を含み、
前記方法は、前記第１符号化モードと並列に実行される第２符号化モードを含み、符号長の基準および前記第１符号化モードにおける包絡線の飽和検出の結果の関数として前記２つの符号化モードのうち１つを選択するステップを含むことを特徴とする方法。
【請求項２】
次の条件、
前記第２符号化モードの符号長が前記第１符号化モードの符号長より短い、
前記第１符号化モードにおいて包絡線の飽和検出が飽和を示す、
のうち１つまたは複数が満たされるとき、前記第２符号化モードが選択されることを特徴とする請求項１に記載の方法。
【請求項３】
選択された符号化モードの指示子を生成するステップをさらに含むことを特徴とする請求項１または２に記載の方法。
【請求項４】
前記指示子は１つのビットであることを特徴とする請求項３に記載の方法。
【請求項５】
前記第２符号化モードは固定長の通常のバイナリ符号化であることを特徴とする請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記可変長の第１符号化モードは可変長の差分符号化であることを特徴とする請求項１から５のいずれか１項に記載の方法。
【請求項７】
前記可変長の第１符号化モードは可変長の差分ハフマン符号化であることを特徴とする請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記量子化インデックスは前記信号のサブバンドにおけるエネルギーを定義する周波数包絡線のスカラー量子化によって得られることを特徴とする請求項１から７のいずれか１項に記載の方法。
【請求項９】
前記量子化インデックスは前記信号のサブフレームにおけるエネルギーを定義する時間包絡線のスカラー量子化によって得られることを特徴とする請求項１から７のいずれか１項に記載の方法。
【請求項１０】
最初のサブバンドまたはサブフレームは固定長符号化され、先行するサブバンドまたはサブフレームに対するサブバンドまたはサブフレームの差分エネルギーは可変長符号化されることを特徴とする請求項８または９に記載の方法。
【請求項１１】
請求項２から１０のいずれか１項に記載のバイナリ符号化する方法によって符号化された信号の包絡線を復号化する方法であって、
前記復号化する方法は、
前記選択された符号化モードの指示子を検出するステップと、
前記選択された符号化モードに従って復号化するステップと、
を含むことを特徴とする方法。
【請求項１２】
可変長の第１モードで符号化するためのモジュール（５０２）を備える、信号の包絡線をバイナリ符号化するためのモジュール（４０２）であって、
前記第１モードで符号化するためのモジュールは包絡線の飽和検出器を含み、
前記符号化するためのモジュール（４０２）は、
前記第１モードで符号化するためのモジュール（５０２）と並列に第２モードで符号化するための第２モジュール（５０３）と、
符号長の基準および前記包絡線の飽和検出器からの結果の関数として前記２つの符号化モードのうち１つを保持するためのモードセレクタ（５０４）と、
を含むことを特徴とするモジュール。
【請求項１３】
前記モードセレクタ（５０４）は選択された符号化モードの指示子を生成するように構成されることを特徴とする請求項１２に記載のモジュール。
【請求項１４】
信号の包絡線を復号化するためのモジュール（７０１）であって、
前記包絡線は請求項１３に記載のバイナリ符号化するためのモジュールによって符号化され、
前記復号化するためのモジュールは可変長の第１モードで復号化するための復号化モジュール（８０８）を備え、
前記復号化するためのモジュール（７０１）は、
前記第１モードで復号化するための復号化モジュール（８０８）と並列に第２モードで復号化するための第２復号化モジュール（８０９）と、
前記符号化モードの指示子を検出し、前記検出された指示子に対応する復号化モジュール（８０８，８０９）を動作させるように構成されたモードセレクタ（８０６）と、
を含むことを特徴とするモジュール。
【請求項１５】
可聴周波数信号の符号化を変換するための、請求項１から１０のいずれか１項に記載の符号化する方法、および、請求項１２または１３に記載の符号化モジュールのアプリケーション。
【請求項１６】
前記変換は変形離散コサイン変換（ＭＤＣＴ）であることを特徴とする請求項１５に記載のアプリケーション。
【請求項１７】
コンピュータで実行されるとき請求項１から１０のいずれか１項に記載の方法のステップを実行するためのコンピュータ読み取り可能な媒体に記憶された命令を含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号包絡線を定義する量子化インデックスをバイナリ符号化する方法に関する。また、その方法を実現するためのバイナリ符号化モジュールに関する。さらに、本発明によるバイナリ符号化方法およびバイナリ符号化モジュールによって符号化された包絡線を復号化するための方法およびモジュールに関する。
【背景技術】
【０００２】
可聴周波数の音声、音楽、等の信号をデジタル化および圧縮するための各種技術が存在する。最も幅広く使用されている方法は、
・パルス符号変調（pulse code modulation（ＰＣＭ））、適応差分パルス符号変調（adaptive differential pulse code modulation（ＡＤＰＣＭ））符号化のような“波形符号化”法、
・符号励振線形予測（code excited linear prediction（ＣＥＬＰ））符号化のような“パラメトリック分析合成（parametric analysis-synthesis）符号化”法、
・“サブバンドまたは変換知覚（transform perceptual）符号化”法
である。
可聴周波数信号を符号化するためのこれらの古典的な技術は、非特許文献１に開示されている。
上述したように本発明は基本的に変換符号化技術に関する。
【０００３】
非特許文献２は、１６ｋＨｚのサンプリング周波数、２４ｋｂｉｔ／ｓまたは３２ｋｂｉｔ／ｓのビットレートで、広帯域（wide band）と呼ばれる５０Ｈｚから７０００Ｈｚの通過帯域において、音声または音楽の可聴信号を圧縮するための変換符号化器を開示する。図１は非特許文献２に開示された関係する符号化方式を表わす。
この図が表わすようにG.722.1の符号化器は変調重複変換（modulated lapped transform（ＭＬＴ））に基づく。フレーム長は２０ｍｓであり、このフレームはＮ＝３２０個のサンプルを含む。
ＭＬＴ変換、Malvarの変調重複変換は、ＭＤＣＴ（modified discrete cosine transform（変形離散コサイン変換））の変形である。
【０００４】
図２はＭＤＣＴの原理の概要を表わす。
現在のフレームとその後のフレームのサンプルを有する長さＬ＝２Ｎの信号ｘ（ｎ）のＭＤＣＴ変換Ｘ（ｍ）は次のように定義される。ここでｍ＝０，・・・，Ｎ−１である。
【０００５】
【数１】
2009527785.tif 000003
【０００６】
上記の数式において、サインの項は図２に表わされている区切ったウィンドウに対応する。従って、Ｘ（ｍ）の計算は、正弦波のウィンドウを用いた局所的なコサイン成分へのｘ（ｎ）の射影に対応する。高速なＭＤＣＴ計算アルゴリズムが存在する（例えば、非特許文献３を参照）。
変換のスペクトル包絡線を計算するために、ＭＤＣＴによって導き出される値Ｘ（０），・・・，Ｘ（Ｎ−１）は２０個の係数の１６個のサブバンドにグループ化される。周波数帯域０〜７０００Ｈｚに対応する最初の１４個のサブバンド（１４×２０＝２８０個の係数）のみ量子化および符号化され、７０００〜８０００Ｈｚの帯域（４０個の係数）は無視される。
ｊ番目のサブバンドについてのスペクトル包絡線の値は、次のように対数領域で定義される。ここでｊ＝０，・・・，１３であり、εの項はｌｏｇ２（０）を防ぐ役割を果たす。
【０００７】
【数２】
2009527785.tif 000004
【０００８】
従って、この包絡線はサブバンドごとの２乗の平均の平方根（root mean square）の値（rms値）に対応する。
そして、スペクトル包絡線は次のように量子化される。
・値の設定
log_rms = { log_rms(0) log_rms(1) … log_rms(13) }
は、まず、
rms_index = { rms_index(0) rms_index(1) … rms_index(13) }
に丸められる。ここで、インデックスrms_index(j)はj = 0, … , 13についてlog_rms(j)×0.5に最も近い整数に丸められる。
従って、量子化の間隔は20×log10(20.5) = 3.0103 … dBである。得られる値は、
j = 0について3 ≦ rms_index(0) ≦ 33（ダイナミックレンジ31×3.01 = 93.31 dB）、
j = 1, … , 13について-6 ≦ rms_index(j) ≦ 33（ダイナミックレンジ40×3.01 = 120.4 dB）
に制限される。
そして、後者の１３個の帯域についてrms_indexの値は、１つのサブバンドと先行するサブバンドのスペクトル包絡線のrms値の間の差を計算することによって差分インデックスに変換される。
j = 1, … , 13についてdiff_ rms_index(j) = rms_index(j) - rms_index(j-1)
また、これらの差分インデックスは、
j = 1, … , 13について-12 ≦ diff_ rms_index(j) ≦ 11
に制限される。
【０００９】
以下、“量子化インデックスの範囲”とは、バイナリ符号化によって表現することができるインデックスの範囲を言う。G.722.1の符号化器において、差分インデックスの範囲は[ -11, 12 ]の範囲に制限される。従って、G.722.1の符号化器の範囲は、
-12 ≦ rms_index(j) - rms_index(j-1) ≦ 11
ならば、rms_index(j)とrms_index(j-1)の間の差を符号化するために“十分である”と言われる。
そうでなければ、G.722.1の符号化器の範囲は“不十分である”と言われる。従って、２つのサブバンドの間のrmsの差が12×3.01 = 36.12 dBを超えるとすぐに、スペクトル包絡線の符号化は飽和に到達する。
【非特許文献１】W. B. Kleijn、K. K. Paliwal編、“Speech Coding and Synthesis”、（米国）、Elsevier、１９９５年
【非特許文献２】ITU-T勧告G.722.1、“Coding at 24 kbit/s and 32 kbit/s for hands-free operation in systems with low frame loss”、（米国）、１９９９年９月
【非特許文献３】P. Duhamel、Y. Mahieux、J. P. Petit、“A fast algorithm for the implementation of filter banks based on time domain aliasing cancellation”、（米国）、ICASSP、１９９１年、第３巻、p.2209-2212
【発明の開示】
【発明が解決しようとする課題】
【００１０】
G.722.1の符号化器において量子化インデックスrms_index(0)は５ビットで伝送される。差分量子化インデックスdiff_ rms_index(j) (j = 1, … , 13)はハフマン符号化によって符号化され、各変数はそれ自身のハフマンテーブルを有する。従って、この符号化は可変長のエントロピー符号化であり、この原理は、最も確率の高い差分インデックス値にビットが短い符号を割り当て、最も確率が低い差分量子化インデックス値はより長い符号を有する。この種類の符号化は、平均ビットレートに関してたいへん効果的であり、G.722.1においてスペクトル包絡線を符号化するために使用される全ビット数は平均でおよそ５０ビットであることに留意すべきである。しかし、以下で明らかになるように、最悪ケースのシナリオは制御できない。
【００１１】
図３の表は、各サブバンドについて、最も短い符号長（最小）、従って、最も確率の高い値（最良ケース）の符号長、および、最も長い符号長（最大）、従って、最も確率の低い値（最悪ケース）の符号長を与える。この表において、最初のサブバンド（j = 0）は、続くサブバンドと異なり、５ビットの固定長を有することに留意すべきである。
これらの符号長の値を用いて、最良ケースではスペクトル包絡線の符号化は３９ビット（１．９５ｋｂｉｔ／ｓ）を必要とし、論理的な最悪ケースでは１９０ビット（９．５ｋｂｉｔ／ｓ）を必要とすることが分かる。
そして、G.722.1の符号化器において、スペクトル包絡線の量子化インデックスを符号化した後に残るビットは、量子化された包絡線によって正規化されたＭＤＣＴ係数を符号化するために割り当てられる。サブバンドにおけるビットの割り当ては、本発明に関係しないカテゴリ化処理によって行われ、ここでは詳細には説明しない。G.722.1の処理の残りは、同じ理由から詳細には説明しない。
G.722.1の符号化器においてＭＤＣＴスペクトル包絡線を符号化することは多数の短所を有する。
上述したように、可変長の符号化は、最悪ケースにおいてスペクトル包絡線を符号化するためにたいへん大きなビット数を使用することに導きうる。また、その上、高いスペクトルのばらつきのいくつかの信号、例えば、孤立した正弦波についての飽和の危険性が指摘され、±36.12 dBの範囲はrms値の間の差の全てのダイナミックレンジを表現することができないので、差分符号化は有効に動作しない。
【００１２】
従って、本発明によって解決すべき１つの技術的課題は、可変長符号化ステップを含み、最悪ケースでも符号化の長さを制限されたビット数に最小化する、信号包絡線を定義する量子化インデックスをバイナリ符号化する方法を提供することである。
また、本発明によって解決すべきもう１つの課題は、正弦波のような高いrms値を有する信号について飽和の危険性を管理することに関する。
【課題を解決するための手段】
【００１３】
本発明によるこの技術的課題への解決策は、第１符号化モードは包絡線の飽和検出を含み、本方法は、前記第１符号化モードと並列に実行される第２符号化モードを含み、符号長の基準および前記第１符号化モードにおける包絡線の飽和検出の結果の関数として前記２つの符号化モードのうち１つを選択することからなる。
【００１４】
従って、本発明による方法は、特に最悪ケースにおいて、すなわち、最も確率が低いrms値について、より少ない符号化ビット数を生じるモードを選択することができるように、２つの符号化モードの併存に基づき、その一方または各々は可変長である。
さらに、符号化モードの一方がサブバンドのrms値の飽和に導くならば、他のモードが“強制”され、それがより大きい符号長に導くとしても優先される。
【００１５】
好ましい実施形態において、次の条件、前記第２符号化モードの符号長が前記第１符号化モードの符号長より短い、前記第１符号化モードの包絡線の飽和検出が飽和を示す、のうち１つまたは複数が満たされるとき、前記第２符号化モードが選択される。
【００１６】
また、本発明は、可変長の第１モードで符号化するためのモジュールを備える、信号の包絡線をバイナリ符号化するためのモジュールを提供し、前記第１モードで符号化するためのモジュールは包絡線の飽和検出器を含み、前記バイナリ符号化するためのモジュールは、前記第１モードで符号化するためのモジュールと並列に第２モードで符号化するための第２モジュールと、符号長の基準および前記包絡線の飽和検出器からの結果の関数として前記２つの符号化モードのうち１つを保持するためのモードセレクタと、を含むことに注目すべきである。
最適な符号を選択することに加えて、前記モードセレクタは、適用すべき復号化モードを下流側の復号化器に指示するために、保持される符号化モードの指示子を生成することができる。
【００１７】
さらに、本発明は、信号の包絡線を復号化する方法を提供し、前記包絡線は本発明によるバイナリ符号化する方法によって符号化され、前記復号化する方法は、前記選択された符号化モードの指示子を検出するステップと、前記選択された符号化モードに従って復号化するステップと、を含むことに注目すべきである。
【００１８】
さらに、本発明は、信号の包絡線を復号化するためのモジュールを提供し、前記包絡線は本発明によるバイナリ符号化するためのモジュールによって符号化され、前記復号化するためのモジュールは可変長の第１モードで復号化するための復号化モジュールを備え、前記復号化するためのモジュールは、前記可変長の第１モードで復号化するための復号化モジュールと並列に第２モードで復号化するための第２復号化モジュールと、前記符号化モードの指示子を検出し、前記検出された指示子に対応する復号化モジュールを動作させるように構成されたモードセレクタと、を含むことに注目すべきである。
【００１９】
最後に、本発明は、本発明の方法のステップを実行するためのコンピュータ読み取り可能な媒体に記憶された命令を含むプログラムを提供する。
【発明を実施するための最良の形態】
【００２０】
限定しない例として与えられる添付図面を参照して続く説明は、本発明がどのように構成され、実施するためにどのように変形することができるかを明瞭に説明する。
本発明は、８ｋｂｉｔ／ｓから３２ｋｂｉｔ／ｓで動作する特定の種類の階層的な可聴周波音符号化器の場合について説明する。しかし、スペクトル包絡線のバイナリ符号化および復号化ための本発明による方法およびモジュールはこの種類の符号化器に限定されず、信号のサブバンドにおけるエネルギーを定義する任意の形態のスペクトル包絡線のバイナリ符号化に適用できることが明確に理解されなければならない。
【００２１】
図４に表わされているように、１６ｋＨｚでサンプリングされた広帯域の階層的な符号化器への入力信号は、まず、直交ミラーフィルタ（quadrature mirror filter（ＱＭＦ））によって２つのサブバンドに分割される。０〜４０００Ｈｚの低い帯域はローパスフィルタ３００およびデシメーション３０１によって得られ、４０００〜８０００Ｈｚの高い帯域はハイパスフィルタ３０２およびデシメーション３０３によって得られる。好ましい実施形態において、ローパスフィルタ３００およびハイパスフィルタ３０２はタップ数（filter length）６４であり、これはJ. Johnston、“A filter family designed for use in quadrature mirror filter banks”、ICASSP、１９８０年、第５巻、p.291-294に開示されている。
【００２２】
低い帯域は、狭帯域（５０〜４０００Ｈｚ）におけるＣＥＬＰ符号化３０５の前に、５０Ｈｚより下の成分を除去するハイパスフィルタ３０４によって前処理される。ハイパスフィルタは、広帯域が５０〜７０００Ｈｚの帯域として定義される事実を考慮する。上述した実施形態において、使用される狭帯域のＣＥＬＰ符号化３０５の形態は、第１段として、前処理フィルタなしの改良されたG.729符号化（ITU-T G.729勧告、“Coding of Speech at 8 kbit/s using Conjugate Structure Algebraic Code Excited Linear Prediction (CS-ACELP)”、１９９６年３月）、第２段として、追加の固定された辞書を備えるＣＥＬＰ符号化をカスケードすることに対応する。ＣＥＬＰ符号化の誤差信号は減算器３０６によって計算され、そして、信号ｘｌｏを得るためにＷＮＢ（ｚ）フィルタ３０７によって知覚的に重み付けされる。その信号は、離散変換されたスペクトルＸｌｏを得るために、変形離散コサイン変換（ＭＤＣＴ）３０８によって分析される。
【００２３】
Ｈ  ＱＭＦ  フィルタ３０２によって引き起こされるエイリアシングを補償するために、まず、高い帯域におけるエイリアシングが３０９でキャンセルされ、その後、元の信号における７０００〜８０００Ｈｚの範囲内の成分を除去するローパスフィルタ３１０によって高い帯域が前処理される。結果として生じる信号ｘｈｉは、離散変換されたスペクトルＸｈｉを得るためにＭＤＣＴ変換３１１に従う。帯域拡張３１２はｘｈｉおよびＸｈｉに基づいて処理する。
【００２４】
図２を参照して既に説明したように、信号ｘｌｏおよびｘｈｉはＮ個のサンプルのフレームに分割され、長さＬ＝２ＮのＭＤＣＴ変換は現在および後のフレームを分析する。好ましい実施形態において、ｘｌｏおよびｘｈｉは８ｋＨｚ、Ｎ＝１６０（２０ｍｓ）でサンプリングされた狭帯域の信号である。従って、ＭＤＣＴ変換ＸｌｏおよびＸｈｉはＮ＝１６０個の係数を含み、そして、各係数は４０００／１６０＝２５Ｈｚの周波数帯域を表わす。好ましい実施形態において、ＭＤＣＴ変換はP. Duhamel、Y. Mahieux、J. P. Petit、“A fast algorithm for the implementation of filter banks based on ‘time domain aliasing cancellation’”、ICASSP、１９９１年、第３巻、p.2209-2212、に開示されたアルゴリズムによって実現される。
【００２５】
低い帯域および高い帯域のＭＤＣＴスペクトルＸｌｏおよびＸｈｉは変換符号化モジュール３１３内で符号化される。本発明は、より詳しくは、この符号化器に関する。
符号化モジュール３０５、３１２、３１３によって生成されるビットストリームは、マルチプレクサ３１４内で階層的なビットストリームに多重化および構造化される。符号化は、サンプル（フレーム）の２０ｍｓのブロック、すなわち、３２０個のサンプルのブロックずつ処理される。符号化ビットレートは、８ｋｂｉｔ／ｓ、１２ｋｂｉｔ／ｓ、２ｋｂｉｔ／ｓ間隔で１４ｋｂｉｔ／ｓから３２ｋｂｉｔ／ｓである。
【００２６】
図５を参照してＭＤＣＴ符号化器３１３を詳細に説明する。
低い帯域および高い帯域のＭＤＣＴ変換は、まず、結合ブロック４００内で結合される。従って、係数
Xlo = { Xlo(0) Xlo(1) … Xlo(N-1) }およびXhi = { Xhi(0) Xhi(1) … Xhi(N-1) }
は１つのベクトルにグループ化され、全帯域の離散変換されたスペクトル
X = { X(m) }m=0…L-1 = { Xlo(0) Xlo(1) … Xlo(N-1) Xhi(0) Xhi(1) … Xhi(N-1) }
を形成する。
XのＭＤＣＴ係数X(0), … ,X(L-1)はＫ個のサブバンドにグループ化される。サブバンドへの分割はサブバンドの境界を定義するＫ＋１個の要素のテーブル
tabis = { tabis(0) tabis(1) … tabis(K) }
によって表わすことができる。そして、第１のサブバンドは係数X(tabis(0))からX(tabis(1)-1)を含み、第２のサブバンドは係数X(tabis(1))からX(tabis(2)-1)を含む、等である。
好ましい実施形態においてＫ＝１８であり、これに関する分割は図７の表（ａ）に具体的に記載されている。
【００２７】
サブバンドごとのエネルギー分布を表わす振幅log_rmsのスペクトル包絡線は４０１で計算され、インデックスrms_indexを得るためにスペクトル包絡線符号化器によって４０２で符号化される。４０３で各サブバンドにビットが割り当てられ、４０４でスペクトルXに球面ベクトル量子化が適用される。好ましい実施形態において、ビットの割り当ては、Y. Mahieux、J. P. Petit、“Transform coding of audio signals at 64 kbit/s”、IEEE GLOBECOM、１９９０年、第１巻、p.518-522において開示された方法に対応し、球面ベクトル量子化は国際出願ＰＣＴ／ＦＲ０４／００２１９において開示されたように処理される。
【００２８】
スペクトル包絡線の符号化およびＭＤＣＴ係数のベクトル量子化から結果として生じるビットはマルチプレクサ３１４によって処理される。
スペクトル包絡線の計算および符号化は以下でより詳細に説明する。
対数領域におけるスペクトル包絡線log_rmsはj番目のサブバンドについて次のように定義される。
【００２９】
【数３】
2009527785.tif 000005
【００３０】
ここで、j = 0, … ,K-1であり、nb_coeff(j) = tabis(j+1) - tabis(j)はj番目のサブバンドにおける係数の数である。εの項はlog2(0)を防ぐ役割を果たす。スペクトル包絡線はj番目のサブバンドのdBにおけるrms値に対応し、従って、振幅の包絡線である。
好ましい実施形態において、サブバンドの大きさnb_coeff(j)は図７の表（ｂ）において与えられる。さらに、ε= 2-24であり、これはlog_rms(j) ≧ -12を意味する。
【００３１】
符号化器４０２によるスペクトル包絡線の符号化は図６に表わされている。
対数領域における包絡線log_rmsは、まず、均一量子化５００によってrms_index = { rms_index(0) rms_index(1) … rms_index(K-1) }に丸められる。この量子化は、簡単に、
rms_index(j) = log_rms(j)×0.5に最も近い整数に丸められ、
rms_index(j) ＜ -11ならばrms_index(j) = -11
rms_index(j) ＞ +20ならばrms_index(j) = +20
によって与えられる。
そして、スペクトル包絡線は20×log10(20.5) = 3.0103 … dBの均一の対数の間隔で符号化される。結果として生じるベクトルrms_indexは-11から+20の整数インデックスを含む（すなわち、３２個の値がありうる）。従って、スペクトル包絡線は約32×3.01 = 96.31 dBのダイナミックレンジで表現される。
そして、量子化された包絡線rms_indexは、ブロック５０１で２つの部分ベクトルに分割され、１つの部分ベクトルは低い帯域の包絡線についてのrms_index_bb = { rms_index(0) rms_index(1) … rms_index(K_BB - 1) }であり、他のベクトルは高い帯域の包絡線についてのrms_index_bh = { rms_index(K_BB) … rms_index(K - 1) }である。このましい実施形態においてK = 18、K_BB = 10であり、言い換えると、最初の１０個のサブバンドは低い帯域（０〜４０００Ｈｚ）に存在し、最後の８個のサブバンドは高い帯域（４０００〜８０００Ｈｚ）に存在する。
【００３２】
低い帯域の包絡線rms_index_bbは、並列に動作する２つの符号化モジュール５０２、５０３、すなわち、可変長差分符号化モジュール５０２および固定長（“等確率”）符号化モジュール５０３によって２進数化される。好ましい実施形態において、モジュール５０２は差分ハフマン符号化モジュールであり、モジュール５０３は通常のバイナリ符号化モジュールである。
差分ハフマン符号化モジュール５０２は以下で詳細に説明する２つの符号化ステップを含む。
【００３３】
＜差分インデックスの計算＞
差分量子化インデックスdiff_index(1) diff_index(2) … diff_index(K_BB - 1)は次によって与えられる。
satur_bb = 0
diff_index(j) = rms_index(j) - rms_index(j-1)
diff_index(j)＜-12またはdiff_index(j)＞+12ならばsatur_bb = 1
バイナリ指示子satur_bbはdiff_index(j)が[-12, +12]の範囲内にない場合を検出するために使用される。satur_bb = 0ならば、全ての要素はその範囲内に存在し、差分ハフマン符号化インデックスは十分である。そうでないならば、これらの要素の１つが-12より小さいか、または、+12より大きく、そのインデックスの範囲は不十分である。従って、指示子satur_bbは低い帯域において差分ハフマン符号化によるスペクトル包絡線の飽和を検出するために使用される。飽和が検出されると、符号化モードは固定長（等確率）符号化モードに変更される。実際、等確率モードのインデックスの範囲は常に十分である。
【００３４】
＜最初のインデックスのバイナリ変換および差分インデックスのハフマン符号化＞
量子化インデックスrms_index(0)は-11から+20の整数値を有する。それは５ビットの固定長で２進数に直接に符号化される。そして、j = 1 … K_BB - 1についての差分量子化インデックスdiff_index(j)は、ハフマン符号化（可変長）によってバイナリ形式に変換される。使用されるハフマンテーブルは図８の表に具体的に表わされている。
rms_index(0)のバイナリ変換および量子化インデックスdiff_index(j)のハフマン符号化から生じる全ビット数bit_cnt1_bbは変動する。
好ましい実施形態において、ハフマン符号の最大の長さは１４ビットであり、ハフマン符号化は低い帯域におけるK_BB-1 = 9個の差分インデックスに適用される。従って、bit_cnt1_bbの論理的な最大値は5 + 9×14 = 131ビットである。これは論理値にすぎないが、最悪ケースのシナリオにおいて低い帯域におけるスペクトル包絡線の符号化によって使用されるビット数はたいへん大きいことがあり、悪いケースのシナリオに限定することは正に等確率符号化の役割であることに留意すべきである。
【００３５】
等確率符号化モジュール５０３は、要素rms_index(0) rms_index(1) … rms_index(K_BB - 1)を通常のバイナリ形式に直接に変換する。これらは-11から+20の範囲にわたり、従って、各々は５ビットで符号化される。従って、等確率符号化のために必要なビット数は単純にbit_cnt2_bb = 5×K_BBビットである。好ましい実施形態において、K_BB = 10、従って、bit_cont2_bb = 50ビットである。
【００３６】
モードセレクタ５０４は、２つのモジュール５０２、５０３（差分ハフマン符号化または等確率符号化）のどちらがより少ないビット数を生成するかを選択する。差分ハフマンモードが差分インデックスを+/-12において飽和させるとき、差分量子化インデックスの計算において飽和が検出されるとすぐに等確率モードが選択される。この方法は、２つの隣接する帯域のrms値の間の差が12×3.01 = 36.12 dBを超えるとすぐにスペクトル包絡線の飽和を防止する。モード選択は次のように説明される。
satur_bb = 1またはbit_cnt2_bb＜bit_cnt1_bbならば等確率モードが選択される。
そうでなければ、差分ハフマンモードが選択される。
モードセレクタ５０４は、差分ハフマンモードについて０、等確率モードについて１の規則を使用して、差分ハフマンまたは等確率モードのどちらが選択されたかを示すビットを生成する。このビットは、マルチプレクサ３１４内でスペクトル包絡線を符号化することによって生成される他のビットと多重化される。また、モードセレクタ５０４は、マルチプレクサ３１４内で選択された符号化モードのビットを多重化する双安定５０５を動作させる。
【００３７】
高い帯域の包絡線rms_index_bhは、rms_index_bbと全く同様に、等確率符号化モジュール５０７による最初のインデックスlog_rms(0)の５ビットでの均一符号化および符号化モジュール５０６による差分インデックスのハフマン符号化が処理される。モジュール５０６内で使用されるハフマンテーブルは、モジュール５０２内で使用されるものと同一である。同様に、等確率符号化５０７は低い帯域における符号化５０３と同一である。モードセレクタ５０８は、どのモード（差分ハフマンモードまたは等確率モード）が選択されたかを示すビットを生成し、そのビットは、マルチプレクサ３１４内で双安定５０９からのビットと多重化される。高い帯域における等確率符号化のために必要なビット数はbit_cnt2_bh = (K - K_BB)×5、好ましい実施形態において、K - K_BB = 8従ってbit_cnt2_bh = 40ビットである。
【００３８】
好ましい実施形態において、低い帯域の包絡線に関するビットの前に高い帯域の包絡線に関するビットが多重化されることに留意することが重要である。ここで、符号化されたスペクトル包絡線の一部のみが復号化器によって受信されるならば、高い帯域の包絡線は低い帯域の包絡線の前に復号化することができる。
【００３９】
説明した符号化器に対応する階層的な可聴周波音復号化器が図９に表されている。各々の２０ｍｓのフレームを定義するビットはデマルチプレクサ６００内で逆多重化される。ここで、８ｋｂｉｔ／ｓから３２ｋｂｉｔ／ｓにおける復号化が表わされている。実際、ビットストリームは８ｋｂｉｔ／ｓ、１２ｋｂｉｔ／ｓ、１４ｋｂｉｔ／ｓ、または、２ｋｂｉｔ／ｓ間隔で１４ｋｂｉｔ／ｓから３２ｋｂｉｔ／ｓに打ち切ることが可能である。
８および１２ｋｂｉｔ／ｓにおける階層のビットストリームは、最初の狭帯域（０〜４０００Ｈｚ）の合成を生成するためにＣＥＬＰ復号化器６０１によって使用される。１４ｋｂｉｔ／ｓの階層に対応するビットストリームの部分は帯域拡張モジュール６０２によって復号化される。高い帯域（４０００〜７０００Ｈｚ）において得られた信号はＭＤＣＴ変換６０３を適用することによって変換信号
【００４０】
【数４】
2009527785.tif 000006
【００４１】
に変換される。ＭＤＣＴ復号化６０４は図１０に表わされており、後に説明する。ビットレート１４ｋｂｉｔ／ｓから３２ｋｂｉｔ／ｓに対応するビットストリームから、低い帯域において再構成されたスペクトル
【００４２】
【数５】
2009527785.tif 000007
【００４３】
が生成され、高い帯域において再構成されたスペクトル
【００４４】
【数６】
2009527785.tif 000008
【００４５】
が生成される。これらのスペクトルは、ブロック６０５および６０６内で逆ＭＤＣＴ変換によって時間領域の信号
【００４６】
【数７】
2009527785.tif 000009
【００４７】
および
【００４８】
【数８】
2009527785.tif 000010
【００４９】
に変換される。信号
【００５０】
【数９】
2009527785.tif 000011
【００５１】
は逆知覚フィルタリング６０７の後にＣＥＬＰ合成６０８に加算され、そして、その結果は６０９でポストフィルタリングされる。
１６ｋＨｚでサンプリングされた広帯域の出力信号は、オーバーサンプリング６１０および６１２、ローパスおよびハイパスフィルタリング６１１および６１３、加算器６１４を含む合成ＱＭＦフィルタバンクによって得られる。
【００５２】
以下、図１０を参照してＭＤＣＴ復号化器６０４を説明する。
このモジュールに関するビットは、デマルチプレクサ６００内で逆多重化される。スペクトル包絡線は、まず、インデックスrms_indexおよび線形スケールで再構成されたスペクトル包絡線rms_qを得るために７０１で復号化される。復号化モジュール７０１は図１１に表わされており、後に説明する。ビットエラーがなく、スペクトル包絡線を定義する全てのビットが正しく受信されると、インデックスrms_indexは符号化器で計算されたものと正確に対応し、符号化器と復号化器が互換性を有するようにビット７０２の割り当てが符号化器と復号化器で同一の情報を要求するので、この特性は必須である。正規化されたＭＤＣＴ係数がブロック７０３で復号化される。
【００５３】
エネルギーが少な過ぎるために、受信されなかった、または、符号化されなかったサブバンドは、置換モジュール７０４でスペクトル
【００５４】
【数１０】
2009527785.tif 000012
【００５５】
からのサブバンドによって置換される。最後に、モジュール７０５は、モジュール７０４の出力において適用される係数に、サブバンドごとの振幅の包絡線を適用し、再構成されたスペクトル
【００５６】
【数１１】
2009527785.tif 000013
【００５７】
は、７０６で、低い帯域（０〜４０００Ｈｚ）において再構成されたスペクトル
【００５８】
【数１２】
2009527785.tif 000014
【００５９】
と高い帯域（４０００〜７０００Ｈｚ）において再構成されたスペクトル
【００６０】
【数１３】
2009527785.tif 000015
【００６１】
に分離される。
【００６２】
図１１は、スペクトル包絡線の復号化を表わす。スペクトル包絡線に関するビットはデマルチプレクサ６００によって逆多重化される。
好ましい実施形態において、高い帯域のスペクトル包絡線に関するビットは、低い帯域のスペクトル包絡線に関するビットの前に送信される。従って、復号化は、モードセレクタ８０１において符号化器から受信したモード選択ビットの値（差分ハフマンモードまたは等確率モード）を読み取ることを開始する。セレクト８０１は符号化と同じ規則、すなわち、差分ハフマンモードについて０、等確率モードについて１に従う。このビットの値は双安定８０２および８０５を駆動する。
モード選択ビットが０ならば、可変長復号化モジュール８０３によって差分ハフマン復号化が処理される。５ビットで表現された-11から+20である絶対値rms_index(K_BB)がまず復号化され、続いて、j = K_BB ... K-1について差分量子化インデックスdiff_index(j)に関するハフマン符号が復号化される。そして、j = K_BB ... K-1について下記の式を用いて整数インデックスrms_index(j)が再構成される。
rms_index(j) = rms_index(j-1) + diff_index(j)
モード選択ビットが１ならば、固定長復号化モジュール８０４によってj = K_BB ... K-1について５ビットで表現された-11から+20のrms_index(j)の値が続いて復号化される。
モード０においてハフマン符号が発見されないか、または、受信したビット数が高い帯域を完全に復号化するために不十分であるならば、復号化処理はエラーが発生したことをＭＤＣＴ復号化器に示す。
【００６３】
低い帯域に関するビットは、高い帯域に関するビットと同様に復号化される。従って、この復号化部は、モードセレクタ８０６、双安定８０７、８１０、復号化モジュール８０８、８０９を含む。
高い帯域の再構成されたスペクトル包絡線は、j = K_BB ... K-1についての整数インデックスrms_index(j)を含む。低い帯域における再構成はj = 0 ... K_BB-1についての整数インデックスrms_index(j)を含む。これらのインデックスは結合ブロック８１１において単一のベクトルrms_index = { rms_index(0) rms_index(1) ... rms_index(K-1) }にグループ化される。ベクトルrms_indexは２を底とする対数スケールで再構成されたスペクトル包絡線を表わす。スペクトル包絡線は変換モジュール８１２によって線形スケールに変換され、j = 0, ... , K-1について次の演算が行われる。
rms_q(j) = 2rms_index(j)
【００６４】
本発明はここで説明した実施形態に限定されないことは明らかである。特に、本発明によって符号化された包絡線は、サブフレームごとのrms値を定義するスペクトル包絡線ではなく、信号のサブフレームごとのrms値を定義する時間包絡線に対応しうることに留意すべきである。
さらに、差分ハフマン符号化と並列の固定長符号化ステップは、可変長符号化ステップ、例えば、差分インデックスをハフマン符号化する代わりに量子化インデックスをハフマン符号化することによって置換することができる。また、ハフマン符号化は、算術符号化、Tunstall符号化、等のような任意の他の損失のない符号化によって置き換えることができる。
【産業上の利用可能性】
【００６５】
本発明は、可聴周波数の音声、音楽、等の信号のようなデジタル信号の伝送および記憶に、特に効果的な適用が見出される。本発明による符号化方法および符号化モジュールは可聴周波数信号の符号化を変換するために、特によく適合する。
【図面の簡単な説明】
【００６６】
【図１】G.722.1勧告に適合した符号化器の図である。
【図２】ＭＤＣＴ型変換を表わす図である。
【図３】図１の符号化器についてのハフマン符号化での各サブバンドにおける符号ビットの最小の長さ（最小）および最大の長さ（最大）の表である。
【図４】本発明を実現するＭＤＣＴ符号化器を含む階層的な可聴周波音符号化器の図である。
【図５】図４のＭＤＣＴ符号化器の詳細な図である。
【図６】図５のＭＤＣＴ符号化器のスペクトル包絡線符号化モジュールの図である。
【図７】ＭＤＣＴスペクトルの１８個のサブバンドへの分割を定義する表（ａ）、および、サブバンドの大きさを与える表（ｂ）を含む。
【図８】差分インデックスを表現するためのハフマン符号化の一例の表である。
【図９】本発明を実現するＭＤＣＴ復号化器を含む階層的な可聴周波音復号化器の図である。
【図１０】図９のＭＤＣＴ復号化器の詳細な図である。
【図１１】図１０のＭＤＣＴ復号化器のスペクトル包絡線復号化モジュールの図である。
【符号の説明】
【００６７】
３００、３１０  ローパスフィルタ
３０１、３０３  デシメーション
３０２、３０４  ハイパスフィルタ
３０５  ＣＥＬＰ符号化
３０６  減算器
３０７  フィルタ
３０８、３１１  ＭＤＣＴ変換
３１２  帯域拡張
３１３  ＭＤＣＴ符号化
３１４  マルチプレクサ
【図１】
2009527785.tif 000016
【図２】
2009527785.tif 000017
【図３】
2009527785.tif 000018
【図４】
2009527785.tif 000019
【図５】
2009527785.tif 000020
【図６】
2009527785.tif 000021
【図７】
2009527785.tif 000022
【図８】
2009527785.tif 000023
【図９】
2009527785.tif 000024
【図１０】
2009527785.tif 000025
【図１１】
2009527785.tif 000026
【手続補正書】
【提出日】平成20年10月23日(2008.10.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
可変長の第１符号化モードを有する、信号の包絡線を定義する量子化インデックスをバイナリ符号化する方法であって、
前記第１符号化モードは包絡線の飽和検出を含み、
前記方法は、前記第１符号化モードと並列に実行される第２符号化モードを含み、符号長の基準および前記第１符号化モードにおける包絡線の飽和検出の結果の関数として前記２つの符号化モードのうち１つを選択するステップを含むことを特徴とする方法。
【請求項２】
次の条件、
前記第２符号化モードの符号長が前記第１符号化モードの符号長より短い、
前記第１符号化モードにおいて包絡線の飽和検出が飽和を示す、
のうち１つまたは複数が満たされるとき、前記第２符号化モードが選択されることを特徴とする請求項１に記載の方法。
【請求項３】
選択された符号化モードの指示子を生成するステップをさらに含むことを特徴とする請求項１または２に記載の方法。
【請求項４】
前記第２符号化モードは固定長の通常のバイナリ符号化であることを特徴とする請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記可変長の第１符号化モードは可変長の差分符号化であることを特徴とする請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記量子化インデックスは前記信号のサブバンドにおけるエネルギーを定義する周波数包絡線のスカラー量子化によって得られることを特徴とする請求項１から５のいずれか１項に記載の方法。
【請求項７】
最初のサブバンドまたはサブフレームは固定長符号化され、先行するサブバンドまたはサブフレームに対するサブバンドまたはサブフレームの差分エネルギーは可変長符号化されることを特徴とする請求項６に記載の方法。
【請求項８】
請求項３から７のいずれか１項に記載のバイナリ符号化する方法によって符号化された信号の包絡線を復号化する方法であって、
前記復号化する方法は、
前記選択された符号化モードの指示子を検出するステップと、
前記選択された符号化モードに従って復号化するステップと、
を含むことを特徴とする方法。
【請求項９】
可変長の第１モードで符号化するためのモジュール（５０２）を備える、信号の包絡線をバイナリ符号化するためのモジュール（４０２）であって、
前記第１モードで符号化するためのモジュールは包絡線の飽和検出器を含み、
前記符号化するためのモジュール（４０２）は、
前記第１モードで符号化するためのモジュール（５０２）と並列に第２モードで符号化するための第２モジュール（５０３）と、
符号長の基準および前記包絡線の飽和検出器からの結果の関数として前記２つの符号化モードのうち１つを保持するためのモードセレクタ（５０４）と、
を含むことを特徴とするモジュール。
【請求項１０】
前記モードセレクタ（５０４）は選択された符号化モードの指示子を生成するように構成されることを特徴とする請求項９に記載のモジュール。
【請求項１１】
信号の包絡線を復号化するためのモジュール（７０１）であって、
前記包絡線は請求項１０に記載のバイナリ符号化するためのモジュールによって符号化され、
前記復号化するためのモジュールは可変長の第１モードで復号化するための復号化モジュール（８０８）を備え、
前記復号化するためのモジュール（７０１）は、
前記第１モードで復号化するための復号化モジュール（８０８）と並列に第２モードで復号化するための第２復号化モジュール（８０９）と、
前記符号化モードの指示子を検出し、前記検出された指示子に対応する復号化モジュール（８０８，８０９）を動作させるように構成されたモードセレクタ（８０６）と、
を含むことを特徴とするモジュール。
【請求項１２】
コンピュータで実行されるとき請求項１から７のいずれか１項に記載の方法のステップを実行するためのコンピュータ読み取り可能な媒体に記憶された命令を含むプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
好ましい実施形態において、次の条件、前記第２符号化モードの符号長が前記第１符号化モードの符号長より短い、前記第１符号化モードの包絡線の飽和検出が飽和を示す、のうち１つまたは複数が満たされるとき、前記第２符号化モードが選択される。
本発明の一実施形態において、前記方法は、選択された符号化モードの指示子を生成するステップをさらに含む。
好ましくは、前記指示子は１つのビットである。本発明の一実施形態において、前記第２符号化モードは固定長の通常のバイナリ符号化であり、前記可変長の第１符号化モードは可変長の差分符号化である。
この可変長の第１符号化モードは差分ハフマン符号化である。
本発明の一実施形態において、前記量子化インデックスは前記信号のサブバンドにおけるエネルギーを定義する周波数包絡線のスカラー量子化によって得られる。
もう１つの一実施形態において、前記量子化インデックスは前記信号のサブフレームにおけるエネルギーを定義する時間包絡線のスカラー量子化によって得られる
１つの可能な実施形態において、最初のサブバンドまたはサブフレームは固定長符号化され、先行するサブバンドまたはサブフレームに対するサブバンドまたはサブフレームの差分エネルギーは可変長符号化される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
さらに、本発明は、信号の包絡線を復号化するためのモジュールを提供し、前記包絡線は本発明によるバイナリ符号化するためのモジュールによって符号化され、前記復号化するためのモジュールは可変長の第１モードで復号化するための復号化モジュールを備え、前記復号化するためのモジュールは、前記可変長の第１モードで復号化するための復号化モジュールと並列に第２モードで復号化するための第２復号化モジュールと、前記符号化モードの指示子を検出し、前記検出された指示子に対応する復号化モジュールを動作させるように構成されたモードセレクタと、を含むことに注目すべきである。
本発明は、可聴周波数信号の符号化を変換するための、本発明による符号化する方法、および、本発明による符号化モジュールのアプリケーションに関する。
好ましくは、前記変換は変形離散コサイン変換（ＭＤＣＴ）である。
【国際調査報告】
2009527785.tif 000027
2009527785.tif 000028
2009527785.tif 000029
2009527785.tif 000030
2009527785.tif 000031
2009527785.tif 000032