(57)【特許請求の範囲】
【請求項１】
係数の一連のセグメントであって、該セグメントは時間的に互いに連続したものをエンコードするためのオーディオエンコーダ（１００）であって、  サンプリングされたオーディオ信号を表わすオーディオストリームから異なる変換長を用いて、異なる変換長が用いられるセグメントが前記サンプリングされたオーディオ信号をスペクトル的に異なる周波数分解能で表わすように、前記一連のセグメントをもたらすための手段と、  現在のセグメントの今回エンコードされる係数のための符号化コンテキストを、現在のセグメントとは異なる周波数分解能及び変換長に対応する以前のセグメントの以前にエンコードされた係数に基づいて導出するためのプロセッサ（１１０）、及び  前記符号化コンテキストに基づいて今回の係数をエントロピーエンコーディングして、エンコード済みのオーディオストリームを得るエントロピーエンコーダ（１２０）を備えているオーディオエンコーダ（１００）。
【請求項２】
前記エントロピーエンコーダ（１２０）は、スペクトル係数のタプルを単位に今回の係数をエンコードするとともに、前記符号化コンテキストに基づいて前記タプルの範囲を予測するように構成されている請求項１に記載のオーディオエンコーダ（１００）。
【請求項３】
前記エントロピーエンコーダ（１２０）は、所定のファクタによる前記タプルの除算を、除算の結果が所定の範囲に適合するために必要なだけ実行するように構成され、前記タプルが前記予測範囲に位置しない場合に、必要な除算の回数、除算の余り及び除算の結果をエンコードするように構成され、前記タプルが前記予測範囲に位置する場合に、除算をしないで前記タプルを前記符号化コンテキストに基づくエントロピーエンコーディングを用いてエンコードするように構成されている請求項２に記載のオーディオエンコーダ（１００）。
【請求項４】
前記エントロピーエンコーダ（１２０）は、前記除算の結果又はタプルを前記符号化コンテキストに基づく確率分布の１つ以上のコードワードのグループに関するグループインデックスを使用してエンコードし、前記グループが２つ以上のコードワードを含む場合に、グループ内のコードワードに関するエレメントインデックスを一様な確率分布に基づいてエンコードするように構成され、前記除算の回数を除算を示すためだけに使用される特定のグループインデックスであるエスケープシンボルの数によってエンコードするように構成され、前記除算の余りを算術符号化規則を使用して一様な確率分布に基づいてエンコードするように構成されている請求項３に記載のオーディオエンコーダ（１００）。
【請求項５】
前記エントロピーエンコーダ（１２０）は、前記エスケープシンボル及び一組の利用可能なグループインデックスに対応するグループシンボルを含むシンボルアルファベットを使用して、一連のシンボルをエンコード済みのオーディオストリームへとエンコードするように構成されており、シンボルアルファベットは対応するエレメントインデックスを含んでおり、シンボルアルファベットは異なる値の余りを含んでいる請求項４に記載のオーディオエンコーダ（１００）。
【請求項６】
前記プロセッサ（１１０）及び前記エントロピーエンコーダ（１２０）は以前のセグメントが現在のセグメントよりも細かいスペクトル分解能を呈する場合に以前のセグメントのスペクトル係数のダウンサンプリングに基づいて動作するように構成されており、並びに／又は前記プロセッサ（１１０）及び前記エントロピーエンコーダ（１２０）は以前のセグメントが現在のセグメントよりも粗いスペクトル分解能を呈する場合に以前のセグメントのスペクトル係数のアップサンプリングに基づいて動作するように構成されている請求項１から５のいずれか一項に記載のオーディオエンコーダ（１００）。
【請求項７】
係数の一連のセグメントであって、該セグメントは時間的に互いに連続したものをエンコードするための方法であって、  サンプリングされたオーディオ信号を表わすオーディオストリームから異なる変換長を用いて、異なる変換長が用いられるセグメントが前記サンプリングされたオーディオ信号をスペクトル的に異なる周波数分解能で表わすように、前記一連のセグメントをもたらすステップ、  現在のセグメントの今回エンコードされる係数のための符号化コンテキストを、現在のセグメントとは異なる周波数分解能及び変換長に対応する以前のセグメントの以前にエンコードされた係数に基づいて導出するステップ、及び  前記符号化コンテキストに基づいて今回の係数をエントロピーエンコーディングして、エンコード済みのオーディオストリームを得るステップを含んでいる方法。
【請求項８】
サンプリングされたオーディオ信号の異なる時間分解能又は周波数分解能を表わす係数のセグメントをエンコードするためのオーディオエンコーダ（１００）であって、  オーディオストリームから係数の前記セグメントをもたらすための手段であって、前記係数は前記オーディオストリームによって表わされるオーディオ信号のスペクトル表現を前記セグメント間で異なるスペクトル分解能で形成しているものの前記セグメントをもたらすための手段と、  現在のセグメントの今回エンコードされる係数のための符号化コンテキストを、今回エンコードされる係数とは異なる時間分解能又は周波数分解能を表している以前のセグメントの以前にエンコードされた係数に基づいて導出するためのプロセッサ（１１０）と、  前記符号化コンテキストに基づいて今回の係数をエントロピーエンコーディングして、エンコード済みのオーディオストリームを得るエントロピーエンコーダ（１２０）と、を備え、  前記エントロピーエンコーダ（１２０）は、スペクトル係数のタプルを単位に今回の係数をエンコードするとともに、前記符号化コンテキストに基づいて前記タプルの範囲を予測するように構成されており、  前記エントロピーエンコーダ（１２０）は、所定のファクタによる前記タプルの除算を、除算の結果が所定の範囲に適合するために必要なだけ実行するように構成され、前記タプルが前記予測範囲に位置しない場合に、必要な除算の回数、除算の余り及び除算の結果をエンコードするように構成され、前記タプルが前記予測範囲に位置する場合に、除算をしないで前記タプルを前記符号化コンテキストに基づくエントロピーエンコーディングを用いてエンコードするように構成されており、  前記エントロピーエンコーダ（１２０）は、前記除算の結果又はタプルを前記符号化コンテキストに基づく確率分布の１つ以上のコードワードのグループに関するグループインデックスを使用してエンコードし、前記グループが２つ以上のコードワードを含む場合に、グループ内のコードワードに関するエレメントインデックスを一様な確率分布に基づいてエンコードするように構成され、前記除算の回数を除算を示すためだけに使用される特定のグループインデックスであるエスケープシンボルの数によってエンコードするように構成され、前記除算の余りを算術符号化規則を使用して一様な確率分布に基づいてエンコードするように構成されているオーディオエンコーダ（１００）。
【請求項９】
サンプリングされたオーディオ信号を表わしているエンコード済みのオーディオストリームをデコードして、時間的に互いに連続し前記サンプリングされたオーディオ信号を表わしている、係数の一連のセグメントを、異なる変換長を用いて、異なる変換長が用いられるセグメントが前記サンプリングされたオーディオ信号をスペクトル的に異なる周波数分解能で表わすように得るためのオーディオデコーダ（２００）であって、  現在のセグメントの今回デコードされる係数のための符号化コンテキストを、現在のセグメントとは異なる周波数分解能及び変換長に対応する以前のセグメントの以前にデコードされた係数に基づいて導出するためのプロセッサ（２１０）、及び  前記符号化コンテキスト及び前記エンコード済みのオーディオストリームに基づいて今回の係数をエントロピーデコーディングするためのエントロピーデコーダ（２２０）を備えているオーディオデコーダ（２００）。
【請求項１０】
前記プロセッサは、以前のセグメント及び随意による現在のセグメントの以前のデコードされた隣接するスペクトル係数に基づいて、今回の係数についてスペクトル帯ごとの前記符号化コンテキストを導出するように構成されている請求項９に記載のオーディオデコーダ（２００）。
【請求項１１】
前記エントロピーデコーダ（２２０）は、１つ以上のコードワードのグループを表わすグループインデックスを、前記符号化コンテキストから導出される確率分布に基づいて前記エンコード済みのオーディオストリームからデコードするように構成され、前記グループインデックスが２つ以上のコードワードを含むグループを示している場合に、前記エンコード済みのオーディオストリームからエレメントインデックスを一様な確率分布に基づいてデコードするように構成され、前記グループインデックス及び前記エレメントインデックスに基づいて現在のセグメントのスペクトル係数のタプルを導出して、スペクトル係数のタプルでのスペクトルドメイン表現を得るように構成されている請求項１０に記載のオーディオデコーダ（２００）。
【請求項１２】
前記エントロピーデコーダ（２２０）は、エスケープシンボル及び一組の利用可能なグループインデックスに対応するグループシンボルを含むシンボルアルファベットを使用して前記符号化コンテキストから導出される確率分布に基づいて前記エンコード済みのオーディオストリームから一連のシンボルをデコードし、前記一連のシンボルのグループシンボルが対応する利用可能なグループインデックスに基づき、前記エレメントインデックスに基づいて、スペクトル係数の予備的なタプルを導出し、前記予備的なタプルを前記一連のシンボル内のエスケープシンボルの数に応じたファクタで乗算することによって、スペクトル係数の前記タプルを得るように構成されている請求項１１に記載のオーディオデコーダ（２００）。
【請求項１３】
前記エントロピーデコーダ（２２０）は、算術符号化規則を使用して一様な確率分布に基づいて前記エンコード済みのオーディオストリームから除算の余りをデコードし、前記余りを前記乗算済みの予備的なタプルに加えて、スペクトル係数の前記タプルを得るように構成されている請求項１２に記載のオーディオデコーダ（２００）。
【請求項１４】
前記プロセッサ（２１０）及び前記エントロピーデコーダ（２２０）は以前のセグメントが現在のセグメントよりも細かいスペクトル分解能を呈する場合に以前のセグメントのスペクトル係数のダウンサンプリングに基づいて動作するように構成されており、並びに／又は前記プロセッサ（２１０）及び前記エントロピーデコーダ（２２０）は以前のセグメントが現在のセグメントよりも粗いスペクトル分解能を呈する場合に以前のセグメントのスペクトル係数のアップサンプリングに基づいて動作するように構成されている請求項９から１３のいずれか一項に記載のオーディオデコーダ（２００）。
【請求項１５】
エンコード済みのオーディオストリームをデコードして、サンプリングされたオーディオ信号の異なる時間分解能又は周波数分解能を表わしている係数のセグメントを得るためのオーディオデコーダ（２００）であって、  現在のセグメントの今回デコードされる係数のための符号化コンテキストを、今回デコードされる係数とは異なる時間分解能又は周波数分解能を表わしている以前のセグメントの以前にデコードされた係数に基づいて導出するためのプロセッサ（２１０）、及び  前記符号化コンテキスト及び前記エンコード済みのオーディオストリームに基づいて今回の係数をエントロピーデコーディングするためのエントロピーデコーダ（２２０）を備え、  前記プロセッサ（２１０）は前記以前の係数に基づいて前記符号化コンテキストを導出するように構成され、前記係数は前記オーディオストリームによって表わされるオーディオ信号のスペクトル表現であって、前記セグメント間で異なるスペクトル分解能でのスペクトル表現を形成しているおり、  前記プロセッサは、以前のセグメント及び随意による現在のセグメントの以前のデコードされた隣接するスペクトル係数に基づいて、今回の係数について前記符号化コンテキストを導出するように構成されており、  前記エントロピーデコーダ（２２０）は、１つ以上のコードワードのグループを表わすグループインデックスを、前記符号化コンテキストから導出される確率分布に基づいて前記エンコード済みのオーディオストリームからデコードするように構成され、前記グループインデックスが２つ以上のコードワードを含むグループを示している場合に、前記エンコード済みのオーディオストリームからエレメントインデックスを一様な確率分布に基づいてデコードするように構成され、前記グループインデックス及び前記エレメントインデックスに基づいて現在のセグメントのスペクトル係数のタプルを導出して、スペクトル係数のタプルでのスペクトルドメイン表現を得るように構成されているオーディオデコーダ（２００）。
【請求項１６】
サンプリングされたオーディオ信号を表わしているエンコード済みのオーディオストリームをデコードして、時間的に互いに連続し前記デコード後のオーディオサンプルを表わす、係数の一連のセグメントを、異なる変換長を用いて、異なる変換長が用いられるセグメントが前記サンプリングされたオーディオ信号をスペクトル的に異なる周波数分解能で表わすように得るための方法であって、  現在のセグメントの今回デコードされる係数のための符号化コンテキストを、現在のセグメントとは異なる周波数分解能及び変換長に対応する以前のセグメントの以前にデコードされた係数に基づいて導出するステップ、及び  前記符号化コンテキスト及び前記エンコード済みのオーディオストリームに基づいて今回の係数をエントロピーデコーディングするステップを含んでいる方法。
【請求項１７】
コンピュータ又はプロセッサに請求項７に記載の方法を実行させるためのコンピュータプログラム。
【請求項１８】
コンピュータ又はプロセッサに請求項１６に記載の方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーディオ符号化の分野に属し、特にコンテキスト準拠(context base)のエントロピー符号化の分野に属する。
【背景技術】
【０００２】
伝統的なオーディオ符号化の考え方は、冗長度を減らすためのエントロピー符号化の仕組みを含んでいる。典型的には、エントロピー符号化は、周波数ドメイン準拠の符号化の仕組みにおいて量子化されたスペクトル係数(spectral coefficient)に適用され、又は時間ドメイン準拠の符号化の仕組みにおいて量子化された時間ドメインサンプルに適用される。これらのエントロピー符号化の仕組みは、典型的には、コードワード(codeword)を相応の符号帳(codebook)インデックスと組み合わせて送信することを利用する。符号帳インデックスは、デコーダが特定の符号帳ページを参照して、当該ページの送信されたコードワードに対応するエンコード済みの情報ワードをデコードすることを可能にする。しかしながら、いくつかの符号化の仕組みにおいては、例えばMeine及びEdlerの「Improved Quantization and Lossless Coding for Subband Audio Coding」及びMeineの「Vektorquantisierung und kontextabhangige arithmetische Codierung fur MPEG-4 AAC」、Dissertation、Gottfried Wilhelm Leibnitz Universitat Hannover、Hanover 2007に記載のように、例えばエントロピー符号化されたシンボルのコンテキストから符号帳インデックスを割り出すことができる場合など、符号帳インデックスの送信が必須ではない場合もある。
【０００３】
周波数ドメイン準拠又はスペクトルドメイン準拠のオーディオ符号化においては、コンテキストは、シンボル又は統計的特性を、例えば時間及び／又は周波数において先行する量子化されたスペクトル係数として記述することができる。従来からの考え方の一部においては、これらのシンボルはエンコーダ側及びデコーダ側の両方で入手可能であり、これらのシンボルに基づいて、符号帳又はコンテキストをエンコーダ側及びデコーダ側の両方で同期して割り出すことが可能である。
【０００４】
図９はコンテキスト及びその依存性の例を示している。図９は時間−周波数平面を示しており、多数のシンボルが示されている。シンボルＳn,mは、時刻ｎ及び周波数ｍにおけるシンボルを示している。図９は、特定のシンボルをエンコードするために、そのシンボルのコンテキストが、該当の符号帳を決定するために使用されることを示している。例えば、シンボルＳn0,m0については、これは
ｎ＜ｎ０かつｍが任意、又はｎ＝ｎ０かつｍ＜ｍ０
であるすべてのシンボルであろう。
【０００５】
実際の実施においては、コンテキストは無限ではなく、限られている。図９に示した例では、シンボルＳ0,3のコンテキストは、
Ｓ0,2、Ｓ0,1、Ｓ-1,5、Ｓ-1,4、Ｓ-1,3、Ｓ-1,2、Ｓ-1,1、Ｓ-2,5、Ｓ-2,4、Ｓ-2,3、Ｓ-2,2、Ｓ-2,1
となりうる。
【０００６】
周波数準拠のオーディオ符号化においては、例えばEdler, B.の「Codierung von Audiosignalen mit uberlappender Transformation und adaptiven Fensterfunktionen」、Frequenz、Ausgabe 43、September 1989に記載されているように、時間変化する信号適応フィルタバンク又はいわゆるブロック変換を使用することができる。
【０００７】
換言すると、これらのオーディオ符号化の考え方において、周波数分解能／時間分解能の変化が時間につれて生じうる。一般的なオーディオ符号化の考え方は、いわゆるＡＡＣ（ＡＡＣ＝Advanced Audio Coding）であり、その場合には、２つのブロック長が使用され、例えば２５６個又は２０４８個のウインドウ時間ドメインサンプルの周波数成分を表わす１２８個又は１０２４個の変換済み係数がそれぞれエンコードされる。
【０００８】
これらの考え方は、例えば過渡の発生もしくは調性などの特定の信号特性に応じて、又は信号がミュージック状もしくはスピーチ状などのいずれであるかに応じて、異なる分解能の間の切り替えを行うことを可能にする。例えば異なる種類のＡＡＣブロックの間の切り替えなど、異なる時間分解能／周波数分解能の間の切り替えの場合に、コンテキストは一貫していない。従来からの考え方又は技術水準にある実施例は、コンテキストのリセットを利用することができ、すなわち基本的には、利用できるコンテキストがなく、コンテキストがゼロから築き上げられる状態へと切り換えが行われる。この手法は、例えばＡＡＣにおいては、列に少なくとも２つの長いブロック又は８つの短いブロックが保証され、切り替えがまれにしか生じないと想定できるため、充分に上手く機能することができる。
【０００９】
しかしながら、コンテキストをリセットする従来からの考え方は、一般に、コンテキストがリセットされるたびに、その後の符号帳の選択が未知のコンテキストのための代替案として設計された値に基づくことになるため、符号化効率に関して最適ではない。結果として、一般的に、最適でない符号帳が選択される。符号化効率における欠点は、切り替えがまれにしか生じない場合には、無視できるかもしれない。しかしながら、より頻繁に切り替えが生じる筋書きにおいては、符号化効率が大きく損なわれる結果となる。一方で、より頻繁な切り替えは、より低いデータレート／サンプリングレートにおいて強く望まれる。なぜならば、そのような場合に特に、変換長を信号特性に最適に適応させることが所望されるからである。他方、デコーディング効率は、切り替えが頻繁である場合に大きく低下する。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、オーディオ符号化における異なる変換長の間の切り替えのための考え方であって、符号化効率の改善をもたらす考え方を提供することにある。
【課題を解決するための手段】
【００１１】
この目的は、請求項１に記載のオーディオエンコーダ、請求項８に記載のオーディオエンコーディングのための方法、請求項９に記載のオーディオデコーダ、及び請求項１６に記載のオーディオデコーディングのための方法によって達成される。
【００１２】
本発明は、例えばコンテキスト準拠のエントロピー符号化など、異なる時間分解能／周波数分解能へと適用できるコンテキスト準拠の符号化において、時間分解能／周波数分解能が時間とともに変化する場合に、コンテキストの写像の機構を使用することができ、それによって符号化効率の改善が達成できるという発見に基づいている。異なる時間分解能又は周波数分解能の間の切り替え時に、新たな分解能を有する係数のためのコンテキストは古い分解能を有する係数から導出することができるということが、本発明の１つの発見である。例えば、オーディオ符号化において時間分解能／周波数分解能が切り替えられるときに、内挿、外挿、サブサンプリング、ダウンサンプリング、アップサンプリングなどをコンテキストの適応及び／又は導出に使用することができるということが、本発明の１つの発見である。
【００１３】
本発明の実施の形態は、古い分解能に関する保存済みのコンテキストの周波数又はスペクトルの係数を、現在のコンテキスト又は現在のフレームの周波数分解能へと写像するマッピング方法を提供する。換言すると、以前のコンテキスト情報を、符号帳の決定、すなわち新たなコンテキスト情報の導出に使用することができる。これにより、いくつかの実施の形態は、ブロック長のより頻繁な切り替えを可能にでき、したがって符号化効率を損なうことなく信号特性へのより良好な適応を可能にすることができる。
【００１４】
本発明の実施の形態を、添付の図面を使用して詳述する。
【図面の簡単な説明】
【００１５】
【図１】オーディオエンコーダの実施の形態を示している。
【図２】オーディオデコーダの実施の形態を示している。
【図３】コンテキストのアップサンプリングのための実施の形態を示している。
【図４】コンテキストのダウンサンプリングのための実施の形態を示している。
【図５】時間及び周波数分解能を切り替えるオーディオを示している。
【図６】一実施の形態を示している。
【図７Ａ】エンコーディング方法の実施の形態のフロー図を示している。
【図７Ｂ】一実施の形態の全体的なコンテキスト更新手順を示している。
【図７Ｃ】分解能の変化における一実施の形態のコンテキスト更新手順を示している。
【図８】デコーディング方法の実施の形態のフロー図を示している。
【図９】技術水準の時間周波数符号化の仕組みを示している。
【発明を実施するための形態】
【００１６】
図１は、サンプリングされたオーディオ信号の異なる時間分解能又は周波数分解能を表わしている係数のセグメントをエンコードするためのオーディオエンコーダ１００の実施の形態を示している。オーディオエンコーダ１００は、現在のセグメントの今回エンコードされる係数のための符号化コンテキスト(coding context)を、今回エンコードされる係数とは異なる時間分解能又は周波数分解能を表わしている以前のセグメントの以前にエンコードされた係数に基づいて導出するためのプロセッサ１１０を備えている。このオーディオエンコーダの実施の形態は、符号化コンテキストに基づいて現在の係数をエントロピーエンコーディングしてエンコード済みのオーディオストリームを得るためのエントロピーエンコーダ１２０をさらに備えている。
【００１７】
いくつかの実施の形態において、その係数は、オーディオサンプル、量子化されたオーディオサンプル、スペクトルもしくは周波数の係数、スケーリングされた係数、変換もしくはフィルタ処理された係数、又はこれらの任意の組み合わせなどに相当することができる。
【００１８】
いくつかの実施の形態において、オーディオエンコーダ１００は、オーディオストリームから係数（係数が異なれば異なるスペクトル分解能でオーディオ信号のスペクトル表現を形成する係数）のセグメントをもたらすための手段をさらに備えることができる。そのセグメントをもたらすための手段は、異なる時間ドメインウインドウ長又は異なるオーディオフレーム（すなわち、帯域幅当たりの長さ又は係数の数が異なり、すなわちスペクトル分解能又は周波数分解能が異なるオーディオフレーム）に基づいてセグメントを判断するように構成することができる。セグメントをもたらすための手段は、１０２４個及び１２８個の時間係数、周波数係数又はスペクトル係数からなるセグメントを割り出すように構成することができる。
【００１９】
プロセッサ１１０は、いくつかの実施の形態においては、現在及び以前の係数又はセグメントの周波数ドメイン表現又はスペクトルドメイン表現に基づいて、符号化コンテキストを導出するように構成することができる。換言すると、いくつかの実施の形態においては、連続するセグメントは、異なる時間ドメイン及び／又は周波数ドメインもしくはスペクトルドメインで表現することができる。プロセッサ１１０は、現在のセグメントの周波数帯又はスペクトル帯ごとの符号化コンテキストを、例えば以前のセグメント及び／又は現在のセグメントの隣接するスペクトル係数に基づいて導出するように構成することができる。いくつかの実施の形態においては、それらのセグメントは、例えば入力オーディオストリームにウインドウを適用することによって、時間ドメインにおいて最初に決定することができる。これらの時間ドメインのセグメント又は係数に基づいて、周波数ドメイン又はスペクトルドメインのセグメント又は係数を、変換によって決定することができる。それらのセグメントは、周波数ドメイン又はスペクトルドメインにおいて、周波数帯又はスペクトル帯ごとのエネルギーにより、振幅及び位相により、振幅及び符号により、その他などにより表わすことができ、すなわちそれらのセグメントは、異なる周波数帯又はスペクトル帯に分割することができる。したがって、プロセッサ１１０は、いくつかの実施の形態においては、周波数帯又はスペクトル帯ごとに符号化コンテキストを導出することができる。
【００２０】
プロセッサ１１０及びエントロピーエンコーダ１２０は、コンテキストに属する以前のセグメントが現在のセグメントよりも細かいスペクトル又は周波数の分解能を有している場合に、以前のセグメントの周波数又はスペクトルの係数のダウンサンプリングに基づいて動作するように構成することができる。いくつかの実施の形態においては、プロセッサ１１０及びエントロピーエンコーダ１２０は、コンテキストの以前のセグメントが現在のセグメントよりも粗いスペクトル又は周波数の分解能を有している場合に、以前のセグメントの周波数又はスペクトルの係数のアップサンプリングに基づいて動作するように構成することができる。
【００２１】
いくつかの実施の形態は、サンプリングされたオーディオ信号の異なる時間分解能又は周波数分解能を表わしている係数のセグメントをエンコードするための方法を提供することができる。この方法は、以前のセグメントからの以前にエンコードされた係数又は以前の係数に基づき、さらに随意により今回エンコードされた係数又は現在の係数に基づき、現在のセグメントの今回エンコードされる係数又は現在の係数のための符号化コンテキストを導出するステップを含むことができ、ここで以前にエンコードされた係数又は以前の係数は、今回エンコードされる係数又は現在の係数とは異なる時間分解能又は周波数分解能を表わしている。この方法は、符号化コンテキストに基づいて現在の係数をエントロピーエンコーディングしてエンコード済みのオーディオストリームを得るステップをさらに含むことができる。
【００２２】
したがって、いくつかの実施の形態は、図２に示した実施の形態のオーディオデコーダ２００を含むことができる。オーディオデコーダ２００は、エンコード済みのオーディオストリームをデコードして、サンプリングされたオーディオ信号の異なる時間分解能又は周波数を表わす係数のセグメントを得るように構成されている。オーディオデコーダ２００は、今回デコードされる係数又は現在の係数のための符号化コンテキストを、今回デコードされる係数とは異なる時間分解能又は周波数分解能を表わしている以前にデコードされた係数又は以前の係数に基づいて導出するためのプロセッサ２１０を備えている。さらに、オーディオデコーダ２００は、符号化コンテキスト及びエンコード済みのオーディオストリームに基づいて現在の係数をエントロピーデコーディングするためのエントロピーデコーダ２２０を備えている。
【００２３】
いくつかの実施の形態においては、オーディオデコーダ２００は、異なる時間ドメインウインドウ長又は異なるオーディオフレーム長に基づいてデコード後の係数のセグメントを決定するように構成されたエントロピーデコーダ２２０を備えることができる。エントロピーデコーダ２２０は、例えば１０２４個及び１２８個の時間ドメインサンプル又は周波数もしくはスペクトルの係数からなるセグメントを決定するように構成することができる。したがって、プロセッサ２１０は、以前のセグメント及び／又は現在のセグメントの係数の周波数ドメイン表現又はスペクトルドメイン表現に基づいて、符号化コンテキストを導出するように構成することができる。
【００２４】
いくつかの実施の形態においては、プロセッサ２１０は、現在のセグメントの周波数帯又はスペクトル帯ごとの符号化コンテキストを、例えば１つ以上の以前のセグメント及び随意による現在のセグメントの隣接するスペクトル係数に基づいて導出するように構成することができる。換言すると、セグメントを、周波数ドメイン又はスペクトルドメインにおいて処理することができ、これを周波数帯又はスペクトル帯ごとに実行することができる。したがって、プロセッサ２１０は、周波数帯又はスペクトル帯に特有のコンテキストを導出するように構成することができる。
【００２５】
エントロピーデコーダ２００は、エントロピー又は可変長のエンコーディング規則に基づいて現在の係数をエントロピーデコーディングするように構成することができる。
【００２６】
プロセッサ２１０は、以前のセグメントにおいて帯域幅当たりの係数が現在のセグメントよりも多い（すなわち、以前のセグメントが現在のセグメントよりも細かいスペクトル又は周波数の分解能を有する）場合に、以前のセグメントの周波数又はスペクトルの係数のダウンサンプリングに基づいて符号化コンテキストを導出するように構成することができる。さらなる実施の形態においては、プロセッサ２１０及びエントロピーエンコーダ２２０は、以前のセグメントにおいて帯域幅当たりの係数が現在のセグメントよりも少ない（すなわち、以前のセグメントが現在のセグメントよりも粗いスペクトル又は周波数の分解能を有している）場合に、以前のセグメントのスペクトル係数のアップサンプリングに基づいて動作するように構成することができる。
【００２７】
したがって、いくつかの実施の形態は、エンコード済みのオーディオストリームをデコードして、デコード後のオーディオサンプルを表わす係数のセグメントを得るための方法を提供することができる。このデコーディングの方法は、以前のセグメントの以前にデコードされた係数又は以前の係数に基づき、現在のセグメントの今回デコードされる係数又は現在の係数のための符号化コンテキストを導出するステップを含むことができ、ここで以前にデコードされた係数又は以前の係数は、今回デコードされる係数とは異なる時間分解能又は周波数分解能を表わしている。さらに、この方法は、符号化コンテキスト及びエンコード済みのオーディオストリームに基づき、現在の係数をエントロピーデコーディングするステップを含むことができる。随意により、この方法は、エンコード済みのオーディオストリームから異なる数のオーディオ係数を表わしているエンコード済みのオーディオ係数のセグメントを割り出すステップを含むことができる。
【００２８】
図３は、プロセッサ１１０、２１０がＭc,oldという係数からなる以前のセグメントに基づいてＭc,newという係数からなる現在のセグメントのための符号化コンテキストをどのように導出できるのかを示している（ここで、以前のセグメントは現在のセグメントとは異なる数のオーディオ係数を含んでいる）。図３に示した実施の形態においては、セグメントＭの係数の数が、セグメントの周波数又はスペクトルの分解能を決定する。この実施の形態は、以前のセグメントのＭc,old個の係数を現在のセグメントと同じコンテキストの周波数又はスペクトルの分解能を有するＭc,new個の係数へと写像するマッピング方法を含むことができる。図３は、２つのセグメントにおける２組の係数を示している。すなわち元の以前のセグメント３１０がＭc,old個の係数Ｓn,0、Ｓn,1、Ｓn,2などを表わしており、これに対応して、写像後の以前のセグメント３２０がＭc,new個の係数Ｓn,0、Ｓn,1、Ｓn,2、Ｓn,3などを表わしており、写像後のセグメント３２０はより高い分解能を有しており、すなわちＭc,newはＭc,oldよりも大きい。
【００２９】
一般に、現在のセグメントのコンテキストの分解能が以前のセグメントのコンテキストの分解能よりも高いか又は低いかに応じて、２つの実施の形態を区別することができる。図３は、Ｍc,old個の係数からなる以前のセグメントの分解能が、Ｍc,new個の係数からなる現在のセグメントの分解能よりも低い実施の形態を示している。図３は、以前のセグメント３１０の係数及び写像後の以前のセグメント３２０のシンボルを示している。図３から、Ｍc,new個の係数からなる現在のセグメントの分解能が、Ｍc,old個の係数しか有していない以前のセグメント３１０の分解能よりも高いことを見て取ることができる。一実施の形態においては、以前のセグメント３１０が、現在のセグメントの周波数又はスペクトルの分解能に一致するためのＭc,new個の係数からなるセグメント３２０へとアップサンプリングされる。これは、例えば各々の値をＭc,new回だけ繰り返し、次いで得られたアップサンプリングされたセグメントを各々のＭc,oldについて１つの係数だけを維持することによって減らすなど、シンボルの複製及び間引き(decimation)の機構を有する純粋なアップサンプリングを含むことができる。他の内挿又は外挿の機構も使用することが可能である。
【００３０】
いくつかの実施の形態においては、写像は、現在のセグメントのためのコンテキストの決定に必要なすべての以前のセグメント３１０について実行することができ、すなわち、例えば時刻ｎにおける現在のセグメントのために、複数の以前のセグメント、すなわち時刻ｎ−１、ｎ−２などにおける以前のセグメントを考慮することができる。一般に、いくつかの実施の形態は、複数の時間スロット又は以前のセグメントを考慮に入れることができ、完全なコンテキストを定めるために必要な時間スロットの数は種々の実施例又は実施の形態で異ならせることができる。
【００３１】
図４は、以前のセグメント４１０の係数が現在のセグメントのコンテキストの計算に使用されるセグメント４２０へとダウンサンプルされ、すなわち以前のセグメント４１０の係数の数Ｍc,oldが現在のセグメントの係数の数Ｍc,newよりも多い別の実施の形態を示している。図４は、図３と同様の図解を使用しており、したがって複数の係数が各々のセグメント４１０及び４２０に示されている。図４に示されているように、Ｍc,oldがＭc,newよりも大きい。したがって、Ｍc,old個の係数が、Ｍc,new個の係数からなる現在のセグメントの周波数又はスペクトルの分解能に一致するようにサブサンプリングされている。すなわち、いくつかの実施の形態においては、より高い分解能を有している以前のセグメントを、より低い分解能を有する現在のセグメントの分解能に一致するようにサブサンプリングすることができる。これは、いくつかの実施の形態においては、例えば各々の値をＭc,new回だけ繰り返し、次いで得られたアップサンプリングされたセグメントを各々のＭc,oldについて１つの係数だけを維持することによって減らすなど、係数の複製及び間引きの機構を有する純粋なダウンサンプリングを含むことができる。他の実施の形態においては、例えば２つ又は複数の隣接する値を平均するなどのフィルタ処理操作を考慮することができる。
【００３２】
図５は異なる分解能の間の切り換えが行われる別の実施の形態を示している。図５は時間／周波数平面を示しており、オーディオ係数の３つの連続するセグメント、すなわちセグメント５１０、５２０及び５３０が示されている。セグメント５１０、５２０及び５３０の各々は１組の係数に対応する。図５に示した実施の形態においては、第２のセグメント５２０が、第１のセグメント５１０及び第３のセグメント５３０の２倍の長さであると仮定されている。これは、例えばＡＡＣにおいて行われるように、時間ドメインにおけるセグメント分けの際に異なるウインドウを使用することによって実現することができる。図５に示した実施の形態においては、サンプリングレートが一定のままであると仮定されており、換言すると、より長い第２のセグメント５２０については、帯域幅当たりのオーディオ係数の数が、第１又は第３のセグメント５１０又は５３０の２倍である。
【００３３】
図５は、この場合に、周波数ドメイン又はスペクトルドメインにおける分解能が、時間ドメインにおけるセグメントの広がりにつれて変化することを示している。換言すると、時間ドメインにおけるウインドウが短くなるほど、周波数ドメイン又はスペクトルドメインにおける分解能が低くなる。周波数ドメイン又はスペクトルドメインにおいてサンプルをエンコードするためのコンテキストを評価する場合、この例のように第２のセグメント５２０をエンコードするとき、符号化はセグメント５１０のより高い分解能のバージョンを有する必要があること、すなわちセグメント５１０の２倍の分解能を導出しなければならないことを図５は示している。他の実施の形態においては、特に他の時間−周波数変換又はフィルタバンクを使用する場合に、時間ドメイン及び周波数ドメインの分解能の間の他の関係がもたらされる可能性がある。
【００３４】
一実施の形態によれば、第１のセグメント５１０においてエンコードされた係数が、例えば中間のアップサンプリングによって、第２のセグメント５２０のためのコンテキストを決定するための基礎を提供する。換言すると、第１のセグメント５１０から来るコンテキストの中身は、より高い分解能を有する第２のセグメント５２０のためのコンテキストを導出するために、例えば内挿又は外挿に関する第１のセグメント５１０のアップサンプリングによって得ることができる。
【００３５】
図５に示されるように、第２のセグメント５２０から第３のセグメント５３０への切り替えの際に、今度は分解能が減少しているため、コンテキストの構成要素を同様に変化させなければならない。一実施の形態によれば、第２のセグメント５２０においてエンコードされた係数は、中間のダウンサンプリングによって、第３のセグメントのためのコンテキストを導出するために使用することができる。これは、例えば平均化により実行することができ、又は単に１つおきの第２の値を使用することによって実行することができ、又はダウンサンプリングのための他の手段を使用して実行することができる。
【００３６】
いくつかの実施の形態は、たとえ分解能又はウインドウ長に変化が生じたときでも、以前のセグメントから導出された過去のコンテキストを考慮することによって、符号化効率の向上という利点を達成する。コンテキストの構成要素は、例えば内挿、外挿、フィルタ処理又は平均化などによるアップサンプリング又はダウンサンプリングにより新たな分解能に適応させることができる。
【００３７】
以下では、より具体的な実施の形態を、スペクトル・ノイズレス・符号化により提示する。スペクトル・ノイズレス・符号化は、オーディオ符号化において量子化されたスペクトルの冗長度をさらに減らすために使用することができる。スペクトル・ノイズレス・符号化は、動的なコンテキスト適応に連動した算術符号化に基づくことができる。
【００３８】
ノイズレス符号化は、量子化されたスペクトル値に基づくことができ、コンテキスト依存の累積度数表(cumulative frequency table)を使用することができる。累積度数表は、例えば以前にデコードされた４つの隣接タプル(tuple)から導出される。図６は別の実施の形態を示している。図６は時間−周波数平面を示しており、時間軸に沿って３つの時間スロットｎ、ｎ−１及びｎ−２が示されている。さらに図６は、ｍ−２、ｍ−１、ｍ及びｍ＋１によって示されている４つの周波数帯又はスペクトル帯を示している。図６は、各々の時間−周波数スロットに、エンコード又はデコードされるサンプルのタプルを表わすボックスを図示している。図６には、３つの異なる種類のタプルが示されており、縁が破線又は点線であるボックスはエンコード又はデコードすべき残りのタプルを示しており、縁が実線である白色のボックスは以前にエンコード又はデコードされたタプルを示しており、縁が実線である灰色のボックスは以前にエンコード／デコードされたタプルであって、エンコード又はデコードすべき現在のタプルのためのコンテキストを決定するために使用されるタプルを示している。
【００３９】
上述の実施の形態において言及された以前及び現在のセグメントはこの実施の形態におけるタプルに相当できること、換言すると、セグメントは周波数ドメイン又はスペクトルドメインにおいて帯域ごとに処理できることに注意すべきである。図６に示されているように、現在のタプルの近隣（すなわち、時間ドメインと周波数ドメイン又はスペクトルドメインにおいて近隣）のタプル又はセグメントは、コンテキストを導出するために考慮することができる。次いで、累積度数表を可変長のバイナリコードを生成するために算術コーダによって使用することができる。算術コーダは、シンボル及びそれらのそれぞれの確率の所与の組についてのバイナリコードを生成することができる。バイナリコードは、シンボルの組が位置する確率区間（probability interval）をコードワードへと写像することによって生成することができる。算術コーダは、上述の実施の形態のエントロピーエンコーダ１２０及びエントロピーデコーダ２２０のそれぞれに相当することができる。
【００４０】
この実施の形態においては、コンテキスト準拠の算術符号化は４−タプルに基づいて（すなわち、４つのスペクトル係数インデックスについて）実行することができる。４−タプルはｑ（ｎ，ｍ）とも表わされ、量子化後のスペクトル係数を表わしており、周波数ドメイン又はスペクトルドメインにおいて隣接しており、一工程でエントロピー符号化されている。以上の説明によれば、符号化は、符号化コンテキストに基づいて実行することができる。図６に示されるように、符号化される４−タプル（すなわち、現在のセグメント）に加えて、４つの以前に符号化された４−タプルが、コンテキストを導出するために考慮される。これらの４つの４−タプルはコンテキストを決定し、周波数ドメイン及び／又は時間ドメインにおいて先行している。
【００４１】
図７Ａはスペクトル係数のエンコーディングの仕組みのためのＵＳＡＣ（ＵＳＡＣ＝Universal Speech and Audio Coder）コンテキスト依存算術コーダのフロー図を示している。エンコーディングプロセスは、現在の４−タプル及びコンテキストに依存し、コンテキストは算術コーダの確率分布の選択及びスペクトル係数の振幅の予測に使用される。図７Ａにおいて、ボックス７０５は、図６において縁が実線で灰色のボックスであるｑ（ｎ−１，ｍ）、ｑ（ｎ，ｍ−１）、ｑ（ｎ−１，ｍ−１）及びｑ（ｎ−１，ｍ＋１）に対応するｔ０、ｔ１、ｔ２及びｔ３に基づくコンテキストの決定を表わしている。
【００４２】
一般に、いくつかの実施の形態においては、エントロピーエンコーダは、スペクトル係数の４−タプルを単位にして現在のセグメントをエンコードし、符号化コンテキストに基づいて４−タプルの振幅範囲を予測するように構成することができる。
【００４３】
この実施の形態においては、エンコードの仕組みはいくつかの段階を含んでいる。第１に、リテラルコードワード（literal codeword）が、算術コーダ及び特定の確率分布を使用してエンコードされる。そのコードワードは、４つの隣接するスペクトル係数（ａ，ｂ，ｃ，ｄ）を表わすが、ａ，ｂ，ｃ，ｄの各々は範囲が限られている。
−５＜ａ，ｂ，ｃ，ｄ＜４
【００４４】
一般に、いくつかの実施の形態においては、エントロピーエンコーダ１２０は、４−タプルが予測される範囲に存在しない場合には、所定のファクタ(factor)による４−タプルの除算を、除算の結果を予測される範囲又は所定の範囲に合せるのに必要なだけ実行して、その必要な除算の回数、除算の余り及び除算の結果をエンコードし、そうでない場合には、除算の余り及び除算の結果をエンコードするように構成することができる。
【００４５】
以下では、項（ａ，ｂ，ｃ，ｄ）、すなわちいずれかの係数ａ，ｂ，ｃ，ｄがこの実施の形態における所与の範囲を超える場合に、これは、一般的に、（ａ，ｂ，ｃ，ｄ）をファクタ（例えば、２又は４）によって必要なだけ除算し、得られるコードワードを所与の範囲に合せることによって考慮することができる。２というファクタによる除算は、右側へのバイナリシフト、すなわち（ａ，ｂ，ｃ，ｄ）＞＞１に相当する。この縮小は、整数表現において行われ、すなわち情報が失われる可能性がある。右へのシフトによって失われる可能性がある最下位ビットは、保存され、後に算術コーダ及び一様な確率分布を使用して符号化される。右へのシフトのプロセスは、４つのスペクトル係数（ａ，ｂ，ｃ，ｄ）のすべてについて実行される。
【００４６】
一般的な実施の形態においては、エントロピーエンコーダ１２０は、除算の結果又は４−タプルをグループインデックスｎｇ（グループインデックスｎｇは、確率分布が符号化コンテキストに基づく１つ以上のコードワードのグループを指している）及びグループが２つ以上のコードワードを含んでいる場合のエレメントインデックスｎｅ（エレメントインデックスｎｅは、グループ内のコードワードを指しており、一様に分布していると仮定できる）を使用してエンコードし、除算の回数をエスケープシンボル（エスケープシンボルは、除算を示すためだけに使用される特定のグループインデックスｎｇである）の数によってエンコードし、除算の余りを算術符号化規則を使用して一様な分布に基づいてエンコードするように構成することができる。エントロピーエンコーダ１２０は、エスケープシンボルを含むシンボルアルファベット及び一組の利用可能なグループインデックスに対応するグループシンボルを使用して、シンボルの並びをエンコード済みのオーディオストリームへとエンコードするように構成することができ、シンボルアルファベットは、対応するエレメントインデックスを含んでおり、シンボルアルファベットは、異なる値の余りを含んでいる。
【００４７】
図７Ａの実施の形態において、リテラルコードワードのエンコーディングのための確率分布及び範囲縮小工程の数の推定は、コンテキストから導出することができる。例えば、合計で８4＝４０９６であるすべてのコードワードは、１つ以上のエレメントで構成される合計５４４のグループにわたる。コードワードは、ビットストリームにおいて、グループインデックスｎｇ及びグループエレメントｎｅとして表わすことができる。両方の値は、算術コーダを使用し、特定の確率分布を使用して符号化することができる。一実施の形態においては、ｎｇについての確率分布はコンテキストから導出でき、一方、ｎｅについての確率分布は一様であると仮定することができる。ｎｇ及びｎｅの組み合わせは、コードワードを明確に特定することができる。除算の余り、すなわちシフトアウトされたビット平面は、やはり一様に分布していると仮定することができる。
【００４８】
図７Ａのステップ７１０において、４−タプルｑ（ｎ，ｍ）、すなわち（ａ，ｂ，ｃ，ｄ）又は現在のセグメントがもたらされ、パラメータｌｅｖは、これを０に設定することによって開始される。
【００４９】
ステップ７１５において、コンテキストから、（ａ，ｂ，ｃ，ｄ）の範囲が推定される。この推定に従って、（ａ，ｂ，ｃ，ｄ）をｌｅｖ０のレベルによって減らすことができ、すなわち２lev0というファクタで除算することができる。ｌｅｖ０の最下位ビット平面が、後のステップ７５０における使用のために保存される。
【００５０】
ステップ７２０において、（ａ，ｂ，ｃ，ｄ）が所与の範囲を超えているか否かがチェックされ、超えている場合には、ステップ７２５において、（ａ，ｂ，ｃ，ｄ）の範囲が、４というファクタによって減らされる。換言すると、ステップ７２５において、（ａ，ｂ，ｃ，ｄ）が２だけ右にシフトされ、除去されたビット平面が、後のステップ７５０における使用のために保存される。
【００５１】
この縮小工程を示すために、ステップ７３０においてｎｇが５４４に設定され、すなわちｎｇ＝５４４がエスケープコードワードとして機能する。次いで、このコードワードが、ステップ７５５においてビットストリームに書き込まれ、ステップ７３０においてコードワードを導出するために、算術コーダが、コンテキストから導出された確率分布とともに使用される。この縮小工程が初めて適用された場合、すなわちｌｅｖ＝＝ｌｅｖ０の場合には、コンテキストがわずかに変えられる。縮小が２回以上加えられる場合には、コンテキストが破棄され、以後はデフォルトの分布(default distribution)が使用される。次いで、プロセスはステップ７２０に続く。
【００５２】
ステップ７２０において範囲の適合が検出され、より具体的には（ａ，ｂ，ｃ，ｄ）が範囲の条件に適合する場合には、（ａ，ｂ，ｃ，ｄ）がグループｎｇへと写像され、該当する場合にはグループエレメントインデックスｎｅへと写像される。この写像は明確であり、すなわち（ａ，ｂ，ｃ，ｄ）をｎｇ及びｎｅから導出することができる。次いで、グループインデックスｎｇが、変更／破棄されたコンテキストのために到着した確率分布を使用して、ステップ７３５において算術コーダによって符号化される。次いで、グループインデックスｎｇが、ステップ７５５においてビットストリームへと挿入される。続くステップ７４０において、グループ内のエレメントの数が１よりも多いか否かがチェックされる。必要な場合、すなわちｎｇによって示されるグループが２つ以上のエレメントで構成されている場合、グループエレメントインデックスｎｅが、ステップ７４５において、この実施の形態においては一様な確率分布を仮定して、算術コーダによって符号化される。
【００５３】
ステップ７４５に続いて、エレメントグループインデックスｎｅがステップ７５５においてビットストリームへ挿入される。最後に、ステップ７５０において、すべての保存されたビット平面が、一様な確率分布を仮定し、算術コーダを使用して符号化される。次いで、保存及び符号化されたビット平面が、ステップ７５５においてビットストリームへ挿入される。
【００５４】
いくつかの実施の形態においては、エントロピーデコーダ２２０は、エンコード済みのオーディオストリームからのグループインデックスｎｇ（グループインデックスｎｇは、１つ以上のコードワードからなるグループを表わしている）を符号化コンテキストから導出される確率分布に基づいてデコードし、グループインデックスｎｇが２つ以上のコードワードを含むグループを示している場合に、エンコード済みのオーディオストリームからのエレメントインデックスｎｅを一様な確率分布に基づいてデコードし、グループインデックスｎｇ及びエレメントインデックスｎｅに基づいて現在のセグメントのスペクトル係数の４−タプルを導出することで、スペクトル係数のタプルにてのスペクトルドメイン表現を得るように構成することができる。
【００５５】
いくつかの実施の形態においては、エントロピーデコーダ２２０は、エスケープシンボルを含むシンボルアルファベット及び一組の利用可能なグループインデックスｎｇに対応するグループシンボルを使用して符号化コンテキストから導出された確率分布に基づいてエンコード済みのオーディオストリームからの一連のシンボルをデコードし、一連のシンボルのグループシンボルに対応する利用可能なグループインデックスｎｇに基づき、かつエレメントインデックスｎｅに基づいて、スペクトル係数の予備的な４−タプルを導出し、予備的な４−タプルを一連のシンボル内のエスケープシンボルの数に応じたファクタで乗算することによって、スペクトル係数のタプルを得るように構成することができる。
【００５６】
さらに、エントロピーデコーダ２２０は、算術符号化規則を使用して一様な確率分布に基づいてエンコード済みのオーディオストリームから余りをデコードし、さらに余りを乗算済みの予備的な４−タプルに加えて、スペクトル係数の４−タプルを得るように構成することができる。
【００５７】
エントロピーデコーダ２２０は、エンコード済みのオーディオストリームからエスケープシンボル（エスケープシンボルは、乗算を示すためだけに使用される特定のグループインデックスｎｇである）がデコードされた回数だけ４−タプルを所定のファクタで乗算し、算術符号化規則を使用して一様な確率分布に基づいてエンコード済みのオーディオストリームから余りをデコードするように構成することができ、さらにエントロピーデコーダ２２０は、余りを乗算済みの４−タプルへと加えて現在のセグメントを得るように構成することができる。
【００５８】
以下で、ＵＳＡＣコンテキスト依存算術コーダのデコーディングの仕組みを説明する。エンコーディングの仕組みの上述の実施の形態に対応して、ノイズレスに符号化され量子化されたスペクトル係数に対応する４−タプルを検討する。さらに、４−タプルが、最も低い周波数又はスペクトル係数から出発して、最も高い周波数又はスペクトル係数へと進みながら送信されると仮定する。係数は、例えば、アレイに保存されるＡＡＣ係数に対応することができ、ノイズレス・符号化・コードワードの送信の順序は、それらが受信された順序でデコードされ、アレイに保存されるときに、binが最も速く増加するインデックスであり、ｇが最もゆっくりと増加するインデックスであるように仮定される。コードワードにおいて、デコーディングの順序はａ、ｂ、ｃ、ｄである。
【００５９】
図７Ｂは、一実施の形態の全体的なコンテキスト更新手順を示している。ビット深度予測機構によるコンテキスト適応の詳細が、この実施の形態において検討される。図７Ｂは、ビット平面に関して４−タプル（ａ，ｂ，ｃ，ｄ）の考えられる範囲を表示している平面７６０を示している。ビット深度、すなわち４−タプルを表わすために必要なビット平面の数は、図７Ｂにも示されているｌｅｖ０と呼ばれる変数の計算により、現在の４−タプルのコンテキストによって予測することができる。次いで、４−タプルが２lev0によって除算され、すなわち上述のステップ７１５に従って、ｌｅｖ＝ｌｅｖ０のビット平面が除去され、後の使用のために保存される。
【００６０】
４−タプルが−５＜ａ，ｂ，ｃ，ｄ＜４という範囲にある場合、予測されたビット深度ｌｅｖ０は、正しく予測又は過大評価されている。次いで、４−タプルは、上述した説明に沿って、グループインデックスｎｇ、エレメントインデックスｎｅ、及びｌｅｖの残りのビット平面によって符号化することができる。その結果、現在の４−タプルの符号化が終了する。エレメントインデックスｎｅの符号化は、以下の分析においてエレメントインデックスをエンコードするために常に使用される一様な確率分布７６２によって図７Ｂに示されており、図７Ｂにおいて、パラメータｒは、除算後の４−タプルの余りを表わしており、ｐ（ｒ）は対応する一様な確率密度関数を表わしている。
【００６１】
４−タプルが−５＜ａ，ｂ，ｃ，ｄ＜４という範囲にない場合、符号化コンテキスト７６４に基づく予測が低すぎ、エスケープシンボル（ｎｇ＝５４４）が７６６において符号化され、４−タプルが、図７Ａのステップ７３０に従って４で除算され、ｌｅｖが２だけ増やされる。コンテキストは、以下のように適応させられる。ｌｅｖ＝＝ｌｅｖ０＋２である場合、図７Ｂの７６８に対応してコンテキストがわずかに変更される。フラグをコンテキストの表現ｔに設定することができ、新たな確率分布モデルが、将来のシンボルｎｇの符号化に使用される。
【００６２】
ｌｅｖ＞ｌｅｖ０＋２である場合、別のエスケープシンボルが図７Ｂのステップ７７０に従って符号化され、コンテキストが完全にリセットされ（７７２を参照）、図７Ａのステップ７３０のように破棄される。さらなるコンテキストの適応は、現在の４−タプルの符号化に関係がないと考えられるため、使用されない。コンテキストが利用できない場合に使用されるデフォルトの確率モデルが、将来のｎｇシンボルについて使用され、これが図７Ｂの工程７７４及び７７６によって示されている。次いで、このプロセスが、他のタプルについて繰り返される。
【００６３】
要約すると、コンテキストの適応は、コンテキスト適応符号化においてコンテキストの重要性を減らすための機構である。コンテキストの適応は、予測されるｌｅｖ０と実際のｌｅｖが不一致の場合に生じさせることができる。これは、コード化されたエスケープシンボル（ｎｇ＝５４４）の数によって容易に検出され（図７Ｂの７６６及び７７０を参照）、したがってデコーダにおいても同様のやり方で実行することができる。
【００６４】
コンテキストの適応は、コンテキスト状態表現ｔ内のフラグをトリガすることによって行うことができる。値ｔは、テーブルｑ[][]に保存された現在の４−タプルの以前及び／又は現在のフレーム又はセグメントから導出されるコンテキストを使用することによって、ｌｅｖ０として、関数get_state( )によって計算される。コンテキストの状態は、例えば２４のビットによって表わすことができる。一実施の形態においては、１９０５８００個の状態が可能である。これらの状態は２１のビットだけで表わすことができる。ｔの２３番目及び２４番目のビットは、コンテキストの状態の適応のために予約される。２３番目及び２４番目のビットの値に応じて、関数get_pk()は異なる確率分布モデルを出力する。一実施の形態においては、ｔの２３番目のビットを、４−タプルがｌｅｖ０によって除算された後で４で除算される場合、すなわちｌｅｖ＝＝ｌｅｖ０＋２の場合に、１に設定することができる。
【００６５】
結果として、コンテキスト状態ｔと確率分布モデルｐｋｉとの間の写像が、ｌｅｖ＝＝ｌｅｖ０＋２においては、ｌｅｖ＝＝ｌｅｖ０とは異なる。コンテキスト状態ｔとモデルｐｋｉとの間の写像は、学習シーケンスの全体としての統計について最適化を実行することによって学習段階においてあらかじめ定められる。ｌｅｖ＞ｌｅｖ０＋２である場合、コンテキスト及びｔはゼロに設定することができる。その場合、関数get_pk()は、ｔ＝０に対応するデフォルトの確率分布モデルｐｋｉを出力する。
【００６６】
以下で、一実施の形態におけるコンテキストの写像の詳細を説明する。コンテキストの写像は、この実施の形態においてコンテキストの最終的なリセットの後でコンテキスト適応の符号化において行われる最初の作業である。それは、２つの工程にて行われる。
【００６７】
最初に、符号化の前に、以前のフレームにおいて保存されたprevious_lg/4というサイズのコンテキストテーブルqs[]が、現在のフレームのサイズに対応するlg/4というサイズのコンテキストテーブルq[0][]に写像される。マッピングは、以下の擬似コードによって例示されるarith_map_context関数にて行われる。
【００６８】
/*input variable*/
lg/4 /*number of 4-tuples*/
arith_map_context()
{
v=w=0
if(core_mode==1){
q[0][v++]=qs[w++];
}
ratio= ((float)previous_lg)/((float)lg);
for(j=0; j<lg/4; j++){
k = (int) ((float)) ((j)*ratio);
q[0][v++] = qs[w+k];
}
if(core_mode==0){
q[0][lg/4]=qs[previous_lg/4];
}
q[0][lg/4+1]=qs[previous_lg/4+1];
previous_lg=lg;
}
【００６９】
擬似コードから見て取ることができるように、写像は、すべての符号化のやり方について正確に同じでなくてもよい。この実施の形態において、写像は、ＡＡＣ（Advanced Audio Coding）が係数について使用される場合（core_mode==0）に、ＴＣＸ（Transform based Coding）が使用される場合（core_mode==1）と異なる。違いのうちの１つは、テーブルの境界がどのように取り扱われるかに起因する。ＡＡＣにおいては、写像はインデックス０（テーブルの第１の値）から始めることができ、一方、ＴＣＸについては、第１の値が常に「未知」（コンテキストをリセットするために使用される特定の状態）に設定されることがわかっていて、写像はインデックス１（テーブルの第２の値）から始めることができる。lgに対するprevious_lgの比（ratio）が、この実施の形態において実行されるアップサンプリング（ratio＜１）又はダウンサンプリング（ratio＞１）の指令を決定する。図７Ｃは、１０２４／４というサイズ（図７Ｃの左側７８０を参照）の保存されたコンテキストテーブルから５１２／４というサイズ（図７Ｃの右側７８２を参照）への変換の場合のＴＣＸの事例を示している。現在のコンテキストテーブル７８２について、１という刻みでの増加が使用されている一方で、保存されたコンテキストテーブル７８０について、上述の比の段階的な増加が使用されていることを見て取ることができる。
【００７０】
図７Ｃは、分解能の変化における一実施の形態のコンテキスト更新手順を示している。ひとたび写像が行われると、コンテキスト適応の符号化が実行される。符号化の終わりにおいて、現在のフレームの要素が、次のフレームのためのテーブルqs[]に保存される。これは、以下の擬似コードによって例示されるarith_update_context()において行うことができる。
【００７１】
/*input variables*/
a,b,c,d /* value of the decoded 4-tuple */
i /*the index of the 4-tuple to decode in the vector*/
lg/4 /*number of 4-tuples*/
arith_update_context()
{
q[1][1+i].a=a;
q[1][1+i].b=b;
q[1][1+i].c=c;
q[1][1+i].d=d;
if ( (a<-4) || (a>=4) || (b<-4) || (b>=4) || (c<-4) || (c>=4) || (d<-4) || (d>=4) ) {
q[1][1+i].v =1024; 
}
else q[1][1+i].v=egroups[4+a][4+b][4+c][4+d];
if(i==lg/4 && core_mode==1){
qs[0]=q[1][0];
ratio= ((float) lg)/((float)1024);
for(j=0; j<256; j++){
k = (int) ((float) j*ratio);
qs[1+k] = q[1][1+j] ;
}
qs[previous_lg/4+1] = q[1][lg/4+1];
previous_lg = 1024;
}
if(i==lg/4 && core_mode==0){
for(j=0; j<258; j++){
qs[j] = q[1][k];
}
previous_lg = min(1024,lg);
}
}
【００７２】
この実施の形態においては、保存はコアコーダ（ＡＡＣ又はＴＣＸ）に応じて異なって行われる。ＴＣＸにおいては、コンテキストが、常に１０２４／４個の値からなるテーブルqs[]に保存される。この追加の写像は、ＡＭＲ−ＷＢ＋（Adaptive Multirate WideBand Codec）の閉ループ決定ゆえに行うことができる。閉ループ決定においては、コーダ状態のいくつかのコピー手順が、ＴＣＸ及びＡＣＥＬＰ（Arithmetic Coded Excited Linear Prediction）の考えられる組み合わせの各々をテストするために必要とされる。状態のコピーは、すべてのＴＣＸモードがテーブルqs[]について同じサイズを共有する場合に、実現がより容易である。次いで、写像が、ｌｇ／４から１０２４／４への体系的な変換に使用される。他方で、ＡＡＣはコンテキストだけを保存し、この段階において写像を実行しない。
【００７３】
図８は、デコーディングの仕組みの実施の形態のフロー図を示している。ステップ８０５において、ステップ７０５に対応して、コンテキストがｔ０、ｔ１、ｔ２及びｔ３に基づいて導出される。ステップ８１０において、第１の減少レベルｌｅｖ０がコンテキストから推定され、変数ｌｅｖがｌｅｖ０に設定される。続くステップ８１５において、グループｎｇがビットストリームから読み出され、ｎｇをデコードするための確率分布がコンテキストから導出される。次いで、ステップ８１５において、グループｎｇをビットストリームからデコードすることができる。
【００７４】
ステップ８２０において、ｎｇがエスケープ値に相当する５４４に等しいか否かが判断される。ｎｇが５４４に等しい場合、ステップ８１５に戻る前に変数ｌｅｖを２だけ増加させることができる。上述のコンテキスト適応の機構（図７Ｂ及び７Ｃを参照）に沿って、この分岐が初めて使用される場合、すなわちｌｅｖ＝＝ｌｅｖ０である場合、コンテキストを相応に適応させることができ、分岐が初めて使用されるのではない場合にはコンテキストを破棄することができる。ステップ８２０においてグループインデックスｎｇが５４４に等しくない場合には、続くステップ８２５においてグループ内のエレメントの数が１よりも多いか否かが判断され、１よりも多い場合にはステップ８３０においてグループエレメントｎｅが読み出され、一様な確率分布を仮定してビットストリームからデコードされる。エレメントインデックスｎｅは、算術符号化及び一様な確率分布を使用してビットストリームから導出される。
【００７５】
ステップ８３５において、リテラルコードワード（ａ，ｂ，ｃ，ｄ）が、例えばテーブルにおける参照プロセスによって、例えばdgroups[ng]及びacod_ne[ne]を参照し、ｎｇ及びｎｅから導出される。
【００７６】
ステップ８４０において、ビット平面を欠いているすべてのｌｅｖについて、算術符号化を使用し、一様な確率分布を仮定して、ビット平面がビットストリームから読み出される。次いで、ビット平面は、（ａ，ｂ，ｃ，ｄ）を左へとシフトさせ、ビット平面ｂｐを加えることによって、（ａ，ｂ，ｃ，ｄ）へ添えることができる。すなわち、（（ａ，ｂ，ｃ，ｄ）＜＜＝１）｜＝ｂｐである。このプロセスは、ｌｅｖ回だけ繰り返すことができる。
【００７７】
最後に、ステップ８４５において、４−タプルｑ（ｎ，ｍ）、すなわち（ａ，ｂ，ｃ，ｄ）をもたらすことができる。
【００７８】
以下の擬似コード及び実施の詳細が実施の形態に従ってもたらされる。以下の定義が使用される。
【００７９】
(a,b,c,d)：デコードすべき４−タプル。
ng：４−タプルの最上位の２ビットごとの平面のグループインデックスであり、０≦ｎｇ≦５４４である。最後の値５４４は、エスケープシンボルARITH_ESCAPEに対応する。
ne：グループにおけるエレメントインデックス。neは、０と各グループのカーディナルmmとの間に位置する。グループ内のエレメントの最大数は７３である。
lev：残りのビット平面のレベル。最上位の２ビットごとの平面よりも下位のビット平面の数に相当する。
egroups：［ａ］［ｂ］［ｃ］［ｄ］グループ・インデックス・テーブル。４−タプル(a,b,c,d)の最上位の２ビットごとの平面を５４４のグループへ写像できるようにする。
mm：グループのカーディナル。
og：グループのオフセット。
dgroups[]：グループインデックスngを各グループのカーディナルmm（最初の８ビット）へ写像し、グループのオフセットogをdgvectors[]（最後の８ビット）に写像する。
dgvectors[]：  グループのオフセットog及びエレメントのインデックスneを４−タプル(a,b,c,d)の最上位の２ビットごとの平面へ写像する。
arith_cf_ng_hash[]：コンテキストの状態を累積度数表インデックスpkiへ写像するハッシュテーブル。
arith_cf_ng[pki][545]：グループ・インデックス・シンボルngについての累積度数のモデル。
arith_cf_ne[]：エレメント・インデックス・シンボルneについての累積度数。
r：最上位の２ビットごとの平面よりも下位の４タプルのビット平面。
arith_cf_r []：最下位ビット平面シンボルrについての累積度数。
【００８０】
以下で、デコーディングプロセスを最初に検討する。４−タプルの量子化されたスペクトル係数が、ノイズレス符号化され、最も低い周波数又はスペクトル係数から出発して、最も高い周波数又はスペクトル係数へと進みながら送信される。ＡＡＣからの係数が、アレイx_ac_quant[g][win][sfb][bin]に保存され、ノイズレス・符号化・コードワードの送信は、それらが受信された順序でデコードされ、アレイに保存されるときに、binが最も速く増加するインデックスであり、gが最もゆっくりと増加するインデックスであるような順序で行われる。コードワードにおいて、デコーディングの順序はa、b、c、dである。ＴＣＸからの係数はアレイx_tcx_invquant[win][bin]に直接保存され、ノイズレス・符号化・コードワードの送信は、それらが受信された順序でデコードされ、アレイに保存されるときに、binが最も速く増加するインデックスであり、winが最もゆっくりと増加するインデックスであるような順序で行われる。コードワードにおいて、デコーディングの順序はa、b、c、dである。最初に、フラグarith_reset_flagが、コンテキストをリセットしなければならないか否かを決定する。フラグがTRUEである場合、以下の関数が呼び出される。
【００８１】
*global variables*/
q[2][290] /*current context*/
qs[258] /*past context*/
previous_lg /*number of 4-tuples of the past context*/
arith_reset_context()
{
for(i=0;i<258;i++){
qs[i].a=0; qs[i].b=0; qs[i].c=0; qs[i].d=0
qs[i].v=-1;
}
for(i=0;i<290;i++){
q[0][i].a=0;  q[0][i].b=0;  q[0][i].c=0;  q[0][i].d=0
q[0][i].v=-1;
q[1][i].a=0;  q[1][i].b=0;  q[1][i].c=0;  q[1][i].d=0
q[1][i].v=-1;
}
previous_lg=256;
}
【００８２】
他方で、arith_reset_flagがFALSEである場合には、過去のコンテキストと現在のコンテキストとの間で写像が行われる。
【００８３】
すなわち、
/*input variable*/
lg /*number of 4-tuples*/
arith_map_context(lg)
{
v=w=0
if(core_mode==1){
q[0] [v++]=qs[w++];
}
ratio= ((float)previous_lg)/((float)lg);
for(j=0; j<lg; j++){
k = (int) ((float)) ((j)*ratio);
q[0][v++] = qs[w+k];
}
if(core_mode==0){
q[0][lg]=qs[previous_lg];
}
q[0][lg+1]=qs[previous_lg+1];
previous_lg=lg;
}
【００８４】
ノイズレスデコーダが、符号付きの量子化されたスペクトル係数の４−タプルを出力する。最初にコンテキストの状態が、デコードすべき４−タプルを囲んでいる４つの以前にデコードされたグループに基づいて計算される。コンテキストの状態は、関数arith_get_context()によって与えられる。
【００８５】
すなわち、
/*input variables*/
i /*the index of the 4-tuple to decode in the vector*/
arith_get_context(i,)
{
t0=q[0][1+i].v+1;
t1=q[1][1+i-1].v+1;
t2=q[0][1+i-1].v+1;
T3=q[0][1+i+1].v+1;
if ( (t0<10) && (t1<10) && (t2<10) && (t3<10) ){
if ( t2>1 ) t2=2;
if ( t3>1 ) t3=2;
return 3*(3*(3*(3*(3*(10*(10*t0+t1))+t2)+t3)));
}
if ( (t0<34) && (t1<34) && (t2<34) && (t3<34) ){
if ( (t2>1) && (t2<10) ) t2=2; else if ( t2>=10 ) t2=3;
if ( (t3>1) && (t3<10) ) t3=2; else if ( t3>=10 ) t3=3;
return 252000+4*(4*(34*(34*t0+t1))+t2)+t3;
}
if ( (t0<90) && (t1<90) ) return 880864+90*(90*t0+t1);
if ( (t0<544) && (t1<544) ) return 1609864 + 544*t0+t1;
if ( t0>1 )
{
a0=q[0][i].a;
b0=q[0][i].b;
c0=q[0][i].c;
d0=q[0][i].d;
}
else a0=b0=c0=d0=0;
if ( t1>1 )
{
a1=q[1][i-1].a;
b1=q[1][i-1].b;
c1=q[1][i-1].c;
d1=q[1][i-1].d;
}
else a1=b1=c1=d1=0;
l=0;
do
{
a0>>=1;
b0>>=1;
c0>>=1;
d0>>=1;
a1>>=1;
b1>>=1;
c1>>=1;
d1>>=1;
l++;
}
while ( (a0<-4) || (a0>=4) || (b0<-4) || (b0>=4) || (c0<-4) || (c0>=4) || (d0<-4) 
|| (d0>=4) ||
(a1<-4) || (a1>=4) || (b1<-4) || (b1>=4) || (c1<-4) || (c1>=4) || (d1<-4) 
|| (d1>=4) );
if ( t0>1 ) t0=1+(egroups[4+a0][4+b0][4+c0][4+d0] >> 16);
if ( t1>1 ) t1=1+(egroups[4+a1][4+b1][4+c1][4+d1] >> 16);
return 1609864 + ((l<<24)|(544*t0+t1));
}
【００８６】
ひとたび状態が知られると、４−タプルの最上位の２ビットごとの平面が属するグループが、コンテキストの状態に対応する割り当てられた累積度数表とともに供給されるarith_decode()を使用してデコードされる。対応は、関数arith_get_pk()によって作られる。
【００８７】
すなわち、
/*input variable*/
s /* State of the context*/
arith_get_pk(s)
{
psci[28] = {
247,248,249,250,251,252,253,254,254,0,254,254,254,255,250,215,
215,70,70,123,123,123,123,3,67,78,82,152
};
register unsigned char *p;
register unsigned long i,j;
i=123*s;
for (;;)
{
j=arith_cf_nq_hash[i&32767];
if ( j==0xFFFFFFFFul ) break;
if ( (j>>8)==s ) return j&255;
i++;
}
p=psci+7*(s>>22);
j= s & 4194303;
if ( j<436961 )
{
if ( j<252001 ) return p[(j<243001)?0:1]; else return 
p[(j<288993)?2:3];
}
else
{
if ( j<1609865 ) return p[(j<880865)?4:5]; else return
p[6];
}
}
【００８８】
次いで、arith_decode()関数が、arith_get_pk()によって返されたインデックスに対応する累積度数表によって呼び出される。算術コーダは、スケーリングを有するタグを生成する整数の実施である。以下の疑似Ｃ−コードは、使用されるアルゴリズムを表わす。
【００８９】
/*helper funtions*/
bool arith_first_symbol(void);
/* Return TRUE if it is the first symbol of the sequence, FALSE otherwise*/
Ushort arith_get_next_bit(void);
/* Get the next bit of the bitstream*/
/* global variables */
low
high
value
/* input variables */
cum_freq[];
cfl;
arith_decode()
{
if(arith_first_symbol())
{
value = 0;
for (i=1; i<=20; i++)
{
value = (val<<1) | arith_get_next_bit();
}
low=0;
high=1048575;
}
range = high-low+1;
cum =((((int64) (value-low+1))<<16)-((int64) 1))/((int64) range);
p = cum_freq-1;
do
{
q=p+(cfl>>1);
if ( *q > cum ) { p=q; cfl++; }
cfl>>=1;
}
while ( cfl>1 );
symbol = p-cum_freq+1;
if(symbol)
high = low + (((int64)range)*((int64)cum_freq[symbol-1]))>>16 - 1;
low += (((int64) range)* ((int64) cum_freq[symbol]))>>16;
for (;;)
{
if ( high<524286) { }
else if ( low>=524286)
{
value -=524286;
low -=524286;
high -=524286;
}
else if ( low>=262143 && high<786429)
{
value -= 262143;
low -= 262143;
high -= 262143;
}
else break;
low += low;
high += high+1;
value = (value<<1) | arith_get_next_bit();
}
return symbol;
}
【００９０】
デコードされたグループインデックスngがエスケープシンボルARITH_ESCAPEであるとき、さらなるグループインデックスngがデコードされ、変数levが２だけ増やされる。デコードされたグループインデックスがエスケープシンボルARITH_ESCAPEでないとき、グループ内のエレメントの数mm及びグループオフセットogが、テーブルdgroups[]を参照することによって推定される。
mm=dgroups[nq]&255
og = dgroups[nq]>>8
【００９１】
次いで、エレメントインデックスneが、累積度数表(arith_cf_ne+((mm*(mm-1))>>1)[]でarith_decode()を呼び出すことによってデコードされる。ひとたびエレメントインデックスがデコードされると、４−タプルの最上位の２ビットごとの平面を、テーブルdgvector[]によって導出することができる。
a=dgvectors[4*(og+ne)]
b=dgvectors[4*(og+ne)+1]
c=dgvectors[4*(og+ne)+2]
d=dgvectors[4*(og+ne)+3]
【００９２】
次いで、残りのビット平面が、累積度数表arith_cf_r []によってarith_decode()をlev回呼び出すことによって、最上位から最下位レベルまでデコードされる。デコードされたビット平面rは、以下のやり方でデコード４−タプルを精密にすることを可能にする。
a = (a<<1) | (r&1)
b = (b<<1) | ((r>>1)&1)
c = (c<<1) | ((r>>2)&1)
d = (d<<1) | (r>>3)
【００９３】
ひとたび４−タプル（a,b,c,d）が完全にデコードされると、コンテキストテーブルq及びqsが、関数arith_update_context()を呼び出すことによって更新される。
【００９４】
arith_update_context(a,b,c,d,i,lg)
{
q[1][1+i].a=a;
q[1][1+i].b=b;
q[1][1+i].c=c;
q[1][1+i].d=d;
if ( (a<-4) || (a>=4) || (b<-4) || (b>=4) || (c<-4) || (c>=4)
|| (d<-4) || (d>=4) )
q[1][1+i].v =1024;
else q[1][1+i].v=egroups[4+a][4+b][4+c][4+d];
if(i==lg && core_mode==1){
qs[0]=q[1] [0];
ratio= ((float) lg)/((float)256);
for(j=0; j<256; j++){
k = (int) ((float)) ((j)*ratio);
qs[1+k] = q[1][1+j] ;
}
qs[previous_lg+1]=q[1][lg+1];
previous_lg=256;
}
if(i==lg && core_mode==0){
for(j=0; j<258; j++){
qs[j] = q[1][k];
}
previous_lg=min(1024,lg);
}
}
【００９５】
本発明の方法の特定の実施の要件に応じて、本発明の方法を、ハードウエア又はソフトウエアにて実現することが可能である。実施例は、本発明の方法が実行されるようにプログラマブルなコンピュータと協働する電子的に読み取り可能な制御信号を保存してなるデジタル記憶媒体、特にディスク、ＤＶＤ又はＣＤを使用して形成することができる。したがって、一般的に、本発明は、機械で読み取ることができる担体のためのプログラムコードを有しているプログラム製品であり、このコンピュータプログラムがコンピュータ上で実行されるときに、そのプログラムコードが本発明の方法を実行するように動作することができる。したがって、換言すると、本発明の方法は、コンピュータ上で実行されたときに本発明の方法のうちの少なくとも１つを実行するためのプログラムコードを有しているコンピュータプログラムである。
【図１】
0005606433.tif 000002
【図２】
0005606433.tif 000003
【図３】
0005606433.tif 000004
【図４】
0005606433.tif 000005
【図５】
0005606433.tif 000006
【図６】
0005606433.tif 000007
【図７Ａ】
0005606433.tif 000008
【図７Ｂ】
0005606433.tif 000009
【図７Ｃ】
0005606433.tif 000010
【図８】
0005606433.tif 000011
【図９】
0005606433.tif 000012