説明

オーディオコーデックポストフィルタ

【課題】 再構築されたオーディオ信号を処理するための技法およびツールを提供する。
【解決手段】 再構築されたオーディオ信号は、周波数ドメイン内で少なくとも一部が計算されるフィルタリング係数を使用して、時間ドメイン内でフィルタリングされる。他の例として、再構築されたオーディオ信号をフィルタリングするためのフィルタリング係数のセットを生成することは、係数値のセットにおける1つまたは複数の山をクリッピングすることを含む。さらに他の例として、サブ帯域コーデックの場合、2つのサブ帯域の交差部分付近の周波数領域で、再構築された合成信号が拡張される。

【発明の詳細な説明】
【技術分野】
【0001】
説明するツールおよび技法は、オーディオコーデックに関し、詳細には、復号された音声の後処理に関する。
【背景技術】
【0002】
デジタル無線電話網、インターネットを介したストリーミングオーディオ、およびインターネット電話の出現に伴い、音声のデジタル処理および配信はごく一般的なのものになってきている。技術者は、様々な技法を使用して、品質を維持しながらも音声を効率よく処理する。これらの技法を理解するためには、オーディオ情報がコンピュータ内でどのように表され、処理されるかを理解することが有用である。
【0003】
(I.コンピュータ内でのオーディオ情報の表現)
コンピュータは、オーディオ情報を、オーディオを表す一連の数字として処理する。単一の数字は、特定の時点での振幅値である、オーディオサンプルを表している。いくつかの要因が、サンプルデプス(sample depth)およびサンプリングレートを含むオーディオの品質に影響を与える。
【0004】
サンプルデプス(または精度)は、サンプルを表すために使用される数字の範囲を示す。通常、各サンプルについて可能な値が多いほど、振幅のより微妙な変動を表せることから、より品質の高い出力が得られる。8ビットのサンプルは、256の可能な値を有し、16ビットのサンプルは、65,536の可能な値を有する。
【0005】
(通常1秒あたりのサンプル数として測定される)サンプリングレートも品質に影響を与える。サンプリングレートが高いほど、より多くの音の周波数を表すことができるため、品質も高い。一般的なサンプリングレートは、8,000、11,025、22,050、32,000、44,100、48,000、および96,000サンプル/秒(Hz)である。表1は、品質レベルの異なるオーディオのいくつかのフォーマット、ならびに対応するロー(raw)ビットレートコストを示している。
【0006】
【表1】

【0007】
表1に示されるように、高品質オーディオのコストは高ビットレートである。高品質オーディオ情報は、コンピュータの記憶領域および伝送容量を大量に消費する。多くのコンピュータおよびコンピュータネットワークには、ローデジタルオーディオを処理するためのリソースが欠如している。圧縮(エンコードまたは符号化とも呼ばれる)は、より低いビットレートの形に情報を変換することにより、オーディオ情報の記憶および伝送に要するコストを減少させる。圧縮には、可逆(品質には影響がない)と、不可逆(品質は影響を受けるが、後続の可逆圧縮からのビットレート低下はより劇的である)とが存在し得る。復元(デコードとも呼ばれる)は、オリジナル情報の再構築されたバージョンを圧縮形式から抽出する。コーデックとは、エンコーダ/デコーダシステムのことである。
【0008】
(II.音声エンコーダおよびデコーダ)
オーディオ圧縮の目的の1つは、所与のビット量に対して最高の信号品質を提供するように、オーディオ信号をデジタル形式で表すことである。言い換えれば、この目的は、所与の品質レベルに対して、オーディオ信号を最も少ないビットで表すことである。いくつかのシナリオでは、伝送エラーに対する弾性、およびエンコード/伝送/デコードによる全体の遅延の制限などの、他の目的が適用される。
【0009】
異なる種類のオーディオ信号は異なる特徴を有する。音楽は、広範囲の周波数および振幅によって特徴付けられ、しばしば複数のチャネルを含む。他方で、音声は、より狭い範囲の周波数および振幅によって特徴付けられ、一般に単一のチャネルを用いて表される。ある種のコーデックおよび処理技法は、音楽および一般オーディオ用に適合されており、他のコーデックおよび処理技法は、音声用に適合されている。
【0010】
従来型音声コーデックの1つの種類は、線形予測(「LP:Linear Prediction」)を使用して圧縮を実現する。音声エンコードはいくつかの段階を含む。エンコーダは、サンプル値を、先行するサンプル値の線形組合せとして予測するために使用される、ある線形予測フィルタに関する係数を見つけ出し、これを量子化する。(「励起(excitation)」信号と表される)残余信号は、オリジナル信号における、フィルタリングによって正確に予測されない部分を示す。いくつかの段階では、異なる種類の音声が異なる特徴を有することから、音声コーデックは、(声帯の振動によって特徴付けられる)有声セグメント、無声セグメント、および無音セグメントに対して、異なる圧縮技法を使用する。有声セグメントは通常、残余ドメインにおいてさえも高度に繰り返される音声パターンを示す。有声セグメントでは、エンコーダは、現在の残余信号と以前の残余サイクルとを比較すること、および以前のサイクルを基準とする遅延またはラグ(lag)情報に関して現在の残余信号をエンコードすることによって、さらなる圧縮を実現する。エンコーダは、特別に設計されたコードブックを使用して、(線形予測および遅延情報からの)予測されエンコードされた表現と、オリジナル信号との間の他の不一致を処理する。
【0011】
上述したように、音声コーデックは、多くの適用例にとって全体的に良好な性能を有するが、いくつかの欠点もある。例えば、不可逆コーデックは通常、音声信号中の冗長性を削減することによってビットレートを減少させ、その結果、デコードされた音声にノイズまたは他の望ましくない成果物を発生させる。したがってコーデックの中には、品質を向上させるために、デコードされた音声をフィルタリングするものがある。こうしたポストフィルタ(post-filter)には通常、2つの種類、すなわち、時間ドメインポストフィルタと周波数ドメインポストフィルタとがある。
【発明の概要】
【発明が解決しようとする課題】
【0012】
コンピュータシステムにおいて音声信号を表現するための圧縮および復元の重要性を考えると、再構築された音声のポストフィルタリングが、魅力的な調査対象であることは驚くべきことではない。再構築された音声または他のオーディオの処理に関する従来技法の利点がどのようなものであれ、それらが、本明細書で説明する技法およびツールの利点を有することはない。
【課題を解決するための手段】
【0013】
要約すると、詳細な説明は、オーディオコーデックに関する様々な技法およびツールを対象とし、具体的には、デコードされた音声のフィルタリングに関するツールおよび技法を対象とする。説明する諸実施形態は、以下のことを含む、説明する技法およびツールのうちの1つまたは複数を実装するが、これらに限定されるものではない。
【0014】
一側面では、再構築されたオーディオ信号に適用するためのフィルタリング係数のセットが計算される。この計算は、1つまたは複数の周波数ドメイン計算の実行を含む。フィルタリングされたオーディオ信号は、そのフィルタリング係数のセットを使用して、時間ドメイン内の再構築されたオーディオ信号の少なくとも一部をフィルタリングすることによって生成される。
【0015】
別の側面では、再構築されたオーディオ信号に適用するためのフィルタリング係数のセットが生成される。係数の生成は、1つまたは複数の山(peak)および1つまたは複数の谷(valley)を表す係数値のセットの処理を含む。係数値のセットの処理は、山または谷のうちの1つまたは複数のクリッピング(clipping)を含む。再構築されたオーディオ信号の少なくとも一部は、フィルタリング係数を使用してフィルタリングされる。
【0016】
別の側面では、複数の再構築された周波数サブ帯域信号から合成された再構築された合成信号が受信される。サブ帯域信号は、第1の周波数帯域に関する再構築された第1の周波数サブ帯域信号と、第2の周波数帯域に関する再構築された第2の周波数サブ帯域信号とを含む。第1の周波数帯域と第2の周波数帯域との交差部分付近の周波数領域で、再構築された合成信号が選択的に拡張される。
【0017】
様々な技法およびツールは、組み合わせて使用することもできるし、または独立に使用することもできる。
【0018】
追加の特徴および利点は、添付の図面を参照しながら説明する様々な諸実施形態の以下の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【0019】
【図1】説明する諸実施形態のうちの1つまたは複数を実装可能な、好適なコンピューティング環境を示すブロック図である。
【図2】説明する諸実施形態のうちの1つまたは複数を実装可能な、ネットワーク環境を示すブロック図である。
【図3】サブ帯域エンコードに対して使用することができる1つの可能な周波数サブ帯域構造を示すグラフである。
【図4】説明する諸実施形態のうちの1つまたは複数と共に実装可能な、リアルタイム音声帯域エンコーダを示すブロック図である。
【図5】一実施例における、コードブックパラメータを決定するためのフロー図である。
【図6】説明する諸実施形態のうちの1つまたは複数と共に実装可能な、リアルタイム音声帯域デコーダを示すブロック図である。
【図7】いくつかの実施例において使用可能なポストフィルタリング係数を決定するための技法を示すフロー図である。
【発明を実施するための形態】
【0020】
説明する諸実施形態は、エンコードおよび/またはデコードにおいてオーディオ情報を処理するための技法およびツールを対象とする。これらの技法を使用すると、リアルタイム音声コーデックなどの音声コーデックから導出される音声の品質が向上する。こうした向上は、様々な技法およびツールを別々に、または組み合わせて使用する結果として生じ得る。
【0021】
こうした技法およびツールには、周波数ドメインにおいて設計または処理される係数を使用して、時間ドメイン内のデコードされたオーディオ信号に適用される、ポストフィルタを含めることができる。この技法には、こうしたフィルタ、または何らかの他の種類のポストフィルタにおいて使用するための、フィルタリング係数値のクリッピングまたは上限を定めることも含めることができる。
【0022】
この技法には、周波数帯域への分割によってエネルギが減衰された可能性のある周波数領域で、デコードされたオーディオ信号の大きさを拡張する、ポストフィルタも含めることができる。一例として、フィルタは、隣接帯域の交差部分付近の周波数領域で、信号を拡張することができる。
【0023】
様々な技法に関する動作について、特に提示のために順番に説明するが、この説明の仕方は、特定の順序で行う必要がない限り、動作順序の多少の並べ替えを含むことを理解されたい。例えば、順番に説明する動作を、場合によっては並べ替えるか、または同時に実行することができる。さらにわかりやすくするために、フローチャートでは、特定の技法を他の技法と共に使用することが可能な様々な方法を示していない場合がある。
【0024】
特定のコンピューティング環境の機能およびオーディオコーデックの機能について以下で説明するが、ツールおよび技法のうちの1つまたは複数を、様々な異なるタイプのコンピューティング環境および/または様々な異なるタイプのコーデックと共に使用することができる。例えば、ポストフィルタ技法のうちの1つまたは複数を、適応差分パルス符号変調コーデック、変換コーデック、および/または他のタイプのコーデックなどの、CELP符号化モデルを使用しないコーデックと共に使用することが可能である。他の例として、ポストフィルタ技法のうちの1つまたは複数を、単一帯域コーデックまたはサブ帯域コーデックと共に使用することができる。他の例として、ポストフィルタ技法のうちの1つまたは複数を、複数帯域コーデックの単一帯域に、および/または、複数帯域コーデックの複数帯域の寄与信号(contribution)を含む合成信号またはエンコードされていない信号に適用することができる。
【0025】
(I.コンピューティング環境)
図1は、説明する諸実施形態のうちの1つまたは複数を実装可能な、好適なコンピューティング環境(100)の一般化された例を示す図である。本発明は、様々な汎用コンピューティング環境または特定用途向けコンピューティング環境において実装可能であるため、このコンピューティング環境(100)は、本発明の使用または機能の範囲に関していかなる制限をも示唆することを意図するものではない。
【0026】
図1を参照すると、コンピューティング環境(100)は、少なくとも1つの処理ユニット(110)およびメモリ(120)を含む。図1では、この最も基本的な構成(130)が破線内に含まれている。処理ユニット(110)は、コンピュータ実行可能命令を実行し、実プロセッサまたは仮想プロセッサとすることができる。マルチ処理システムでは、処理能力を上げるために、複数の処理ユニットがコンピュータ実行可能命令を実行する。メモリ(120)は、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュメモリ)、または、この2つの何らかの組合せとすることができる。メモリ(120)は、音声デコーダに関して本明細書で説明するポストフィルタリング技法のうちの1つまたは複数を実装するソフトウェア(180)を記憶する。
【0027】
コンピューティング環境(100)は、追加の機能を有することができる。図1では、コンピューティング環境(100)は、ストレージ(140)、1つまたは複数の入力デバイス(150)、1つまたは複数の出力デバイス(160)、および1つまたは複数の通信接続(170)を含む。バス、コントローラ、またはネットワークなどの相互接続機構(図示せず)が、コンピューティング環境(100)のコンポーネントを相互接続する。通常、オペレーティングシステムソフトウェア(図示せず)は、コンピューティング環境(100)において実行される他のソフトウェアに動作環境を提供し、コンピューティング環境(100)のコンポーネントの動作を調整する。
【0028】
ストレージ(140)は、取り外し可能または取り外し不可能なものとすることができ、ストレージ(140)としては、磁気ディスク、磁気テープもしくは磁気カセット、CD−ROM、CD−RW、DVD、または、情報を記憶するために使用可能であり、かつコンピューティング環境(100)内でアクセス可能な、任意の他の媒体を挙げることができる。ストレージ(140)は、ソフトウェア(180)に関する命令を記憶する。
【0029】
1つまたは複数の入力デバイス(150)は、キーボード、マウス、ペン、もしくはトラックボールなどのタッチ入力デバイス、音声入力デバイス、スキャンデバイス、ネットワークアダプタ、または、コンピューティング環境(100)に入力を提供する他のデバイスとすることができる。オーディオの場合、1つまたは複数の入力デバイス(150)は、サウンドカード、マイクロフォン、または、アナログもしくはデジタル形式のオーディオ入力を受け入れる他のデバイス、あるいは、コンピューティング環境(100)にオーディオサンプルを提供するCD/DVDリーダとすることができる。1つまたは複数の出力デバイス(160)は、ディスプレイ、プリンタ、スピーカ、CD/DVDライタ、ネットワークアダプタ、または、コンピューティング環境(100)からの出力を提供する他のデバイスとすることができる。
【0030】
1つまたは複数の通信接続(170)は、通信媒体を介した他のコンピューティングエンティティへの通信を可能にする。通信媒体は、コンピュータ実行可能命令、圧縮音声情報、または変調されたデータ信号内の他のデータなどの情報を搬送する。変調されたデータ信号とは、信号内の情報をエンコードするような方法で設定または変更された特徴のうちの1つまたは複数を有する信号である。例を挙げると、通信媒体には、電気、光、RF、赤外線、音波、または他の搬送波を用いて実施される有線技法または無線技法が含まれるが、これらに限定されるものではない。
【0031】
本発明は、コンピュータ読み取り可能な媒体との一般的な関連において説明することができる。コンピュータ読み取り可能な媒体は、コンピューティング環境内でアクセス可能な任意の使用可能な媒体である。例を挙げると、コンピューティング環境(100)の場合、コンピュータ読み取り可能な媒体には、メモリ(120)、ストレージ(140)、通信媒体、および、これらのうちのいずれかの組合せが含まれるが、これらに限定されるものではない。
【0032】
本発明は、コンピューティング環境内のターゲットとなる実プロセッサまたは仮想プロセッサ上で実行されている、プログラムモジュールに含まれるような、コンピュータ実行可能命令との一般的な関連において説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか、または特定の抽象データ型を実装する、ルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などが含まれる。プログラムモジュールの機能は、様々な実施形態において望ましいように、組み合わせてもよいし、様々なプログラムモジュール間で分離させてもよい。プログラムモジュールに関するコンピュータ実行可能命令は、ローカルコンピューティング環境または分散コンピューティング環境内で実行可能である。
【0033】
詳細な説明では、提示のために、コンピューティング環境内でのコンピュータ動作を説明する際に、「決定する」、「生成する」、「調整する」、および「適用する」などの用語を使用する場合がある。これらの用語は、コンピュータによって実行される動作に関する高水準の抽象化であり、人間によって実行される動作と混同すべきではない。これらの用語に対応する実際のコンピュータ動作は、実装に応じて変化する。
【0034】
(II.一般化されたネットワーク環境およびリアルタイム音声コーデック)
図2は、説明する諸実施形態のうちの1つまたは複数を実装可能な、一般化されたネットワーク環境(200)を示すブロック図である。ネットワーク(250)は、様々なエンコーダ側コンポーネントを、様々なデコーダ側コンポーネントから分離する。
【0035】
エンコーダ側コンポーネントおよびデコーダ側コンポーネントの主な機能はそれぞれ、音声エンコードおよび音声デコードである。エンコーダ側では、入力バッファ(210)が音声入力(202)を受け入れて記憶する。音声エンコーダ(230)は、入力バッファ(210)から音声入力(202)を受け取り、音声入力(202)をエンコードする。
【0036】
具体的には、フレームスプリッタ(212)が音声入力(202)のサンプルをフレームに分割する。一実施例では、フレームは均一に20msの長さであり、8kHz入力に対して160サンプル、16kHz入力に対して320サンプルである。他の実施例では、フレームが異なる持続時間を有する、不均一であるか重複している、かつ/または、入力(202)のサンプリングレートが異なる。フレームは、エンコードおよびデコードの様々な段階について、スーパーフレーム/フレーム、フレーム/サブフレーム、または他の構成を用いて編成可能である。
【0037】
フレーム分類器(classifier)(214)は、信号のエネルギ、ゼロ交差レート、長期予測利得、利得差分、および/もしくは、サブフレームまたはフレーム全体に関する他の基準などの、1つまたは複数の基準に従ってフレームを分類する。この基準に基づいて、フレーム分類器(214)は、様々なフレームを、無音、無声、有声、および遷移(例えば、無声から有声への)などのクラスに分類する。加えて、フレームは、フレームに使用される冗長符号化があれば、その冗長符号化のタイプに従って分類することもできる。フレームクラスは、フレームをエンコードするために計算されることになるパラメータに影響を与える。加えて、フレームクラスは、より重要なフレームクラスおよびパラメータにより多くの解像度および損失弾性(loss resiliency)を与えるように、パラメータがエンコードされる際の解像度および損失弾性に影響を与える可能性がある。例えば、無音フレームは通常、かなり低いレートで符号化され、損失があった場合の秘匿(concealment)による回復が非常に簡単であって、損失に対する保護の必要がない場合もある。無声フレームは通常、やや高いレートで符号化され、損失があった場合の秘匿による回復が適度に簡単であり、損失に対してそれほど保護されない。有声フレームおよび遷移フレームは通常、フレームの複雑さと、遷移の有無とに応じて、より多くのビットを使用してエンコードされる。有声フレームおよび遷移フレームは、損失があった場合の回復も困難であるため、損失に対してかなり保護される。代替として、フレーム分類器(214)は、他のおよび/または追加のフレームクラスを使用してもよい。
【0038】
入力音声信号は、CELPエンコードモデルなどのエンコードモデルを、フレームに関するサブ帯域情報に適用する前に、サブ帯域信号に分割することができる。これは、(QMF分析フィルタなどの)一連の1つまたは複数の分析フィルタバンク(216)を使用して、行うことが可能である。例えば、3帯域構造が使用される場合、低域通過フィルタを介して信号を渡すことによって、低周波数帯域を分割することができる。同様に、高域通過フィルタを介して信号を渡すことによって、高帯域を分割することができる。低域通過フィルタと高域通過フィルタとを直列に含めることが可能な帯域通過フィルタを介して信号を渡すことによって、中間帯域を分割することができる。代替として、他のタイプの、サブ帯域分割のためのフィルタ配置構成、および/またはフィルタリングのタイミング(例えば、フレーム分割の前など)を使用してもよい。信号の一部について1つの帯域のみがデコードされる場合、その信号の一部は、分析フィルタバンク(216)をバイパスすることができる。
【0039】
帯域数nは、サンプリングレートによって決定することができる。例えば一実施例では、8kHzサンプリングレートに対して単一の帯域構造が使用される。16kHzおよび22.05kHzのサンプリングレートでは、図3に示されるように、3帯域構造が使用される。図3の3帯域構造では、低周波数帯域(310)は、全帯域幅Fの半分(0から0.5F)まで伸長している。帯域幅の他方の半分は、中間帯域(320)と高帯域(330)とに等しく分割されている。帯域の交差部分付近では、帯域に対する周波数応答が、通過レベルから停止レベルへと徐々に減少している。これは、交差部分に近づくに際しての両側での信号の減衰によって特徴付けられる。他の周波数帯域幅の分割も使用することができる。例えば、32kHzのサンプリングレートの場合、等しく間隔があけられた4帯域構造を使用することができる。
【0040】
通常、信号エネルギは、高周波数領域に向かうにつれて減衰していくため、低周波数帯域は通常、音声信号にとって最も重要な帯域である。したがって、低周波数帯域は、しばしば他の帯域よりも多くのビットを使用してエンコードされる。サブ帯域構造は、単一帯域符号化構造に比べて柔軟性が高く、周波数帯域をまたがった量子化ノイズをより良く制御することができる。したがって、サブ帯域構造を使用することによって、知覚音声品質は大幅に向上すると考えられる。しかしながら、以下で説明するように、サブ帯域の分割は、隣接する帯域の交差部分付近の周波数領域において、信号のエネルギ損失を発生させる可能性がある。このエネルギ損失は、結果として生じるデコードされた音声信号の品質を低下させる可能性がある。
【0041】
図2では、エンコードコンポーネント(232、234)によって示されるように、各サブ帯域が別々にエンコードされる。帯域エンコードコンポーネント(232、234)は別々のものとして示されているが、すべての帯域のエンコードは、単一のエンコーダを用いて実行されてもよいし、別々のエンコーダを用いてエンコードされてもよい。こうした帯域エンコードについては、図4を参照しながら以下でより詳細に説明する。代替として、コーデックは、単一帯域コーデックとして動作することができる。結果として生じるエンコードされた音声は、マルチプレクサ(「MUX」)(236)を介して、1つまたは複数のネットワーキング層(240)用のソフトウェアに提供される。1つまたは複数のネットワーキング層(240)は、ネットワーク(250)を介して伝送するために、エンコードされた音声を処理する。例えば、ネットワーク層ソフトウェアは、エンコードされた音声情報のフレームを、RTPプロトコルに従うパケットにパッケージングし、このパケットが、UDP、IP、および様々な物理層プロトコルを使用し、インターネットを介して中継される。代替として、他の、および/または追加のソフトウェアの層またはネットワーキングプロトコルが使用されてもよい。
【0042】
ネットワーク(250)は、インターネットなどの広域のパケット交換ネットワークである。代替として、ネットワーク(250)は、ローカルエリアネットワークまたは他の種類のネットワークである場合もある。
【0043】
デコーダ側では、1つまたは複数のネットワーキング層(260)用のソフトウェアが、伝送されたデータを受信して処理する。通常、1つまたは複数のデコーダ側のネットワーキング層(260)内の、ネットワーク、伝送、および高位層のプロトコル、ならびにソフトウェアは、エンコード側のネットワーキング層(240)内のネットワーク、伝送、および高位層のプロトコル、ならびにソフトウェアに対応する。1つまたは複数のネットワーキング層は、デマルチプレクサ(「DEMUX」)を介して、エンコードされた音声情報を音声デコーダ(270)に提供する。
【0044】
デコーダ(270)は、帯域デコードコンポーネント(272、274)において示されるように、サブ帯域の各々を別々にデコードする。すべてのサブ帯域は、単一のデコーダによってデコードしてもよいし、別々の帯域デコーダによってデコードしてもよい。
【0045】
その後、デコードされたサブ帯域は、(QMF合成フィルタなどの)一連の1つまたは複数の合成フィルタバンク(280)内で合成され、この合成フィルタバンク(280)が、デコードされた音声を出力する(292)。代替として、サブ帯域合成のための他のタイプのフィルタ配置構成が使用されてもよい。単一の帯域のみが存在する場合、デコードされた帯域は、フィルタバンク(280)をバイパスすることができる。複数の帯域が存在する場合、デコードされた音声出力(292)は、結果として生じる拡張音声出力(294)の品質を向上させるために、中間周波数拡張ポストフィルタ(284)を介して渡すことも可能である。中間周波数拡張ポストフィルタの実装については、以下でより詳細に説明する。
【0046】
図6を参照しながら、1つの一般化されたリアルタイム音声帯域デコーダについて以下で説明するが、代替として、他の音声デコーダを使用することもできる。加えて、説明するツールおよび技法の一部またはすべては、音楽エンコーダおよび音楽デコーダ、または汎用オーディオエンコーダおよび汎用オーディオデコーダなどの、他のタイプのオーディオエンコーダおよびオーディオデコーダに対して使用することも可能である。
【0047】
これらの主なエンコードおよびデコード機能は別として、こうしたコンポーネント群は、エンコードされた音声のレート、品質、および/または損失弾性を制御するために、情報を共有すること(図2の破線内に図示)も可能である。レートコントローラ(220)は、入力バッファ(210)内の現在の入力の複雑さ、エンコーダ(230)またはその他の場所における出力バッファのバッファ満杯度、所望の出力レート、現在のネットワーク帯域幅、ネットワーク輻輳/ノイズ状況、および/またはデコーダ損失レートなどの、様々な要素を考慮の対象とする。デコーダ(270)は、デコーダの損失レート情報をレートコントローラ(220)にフィードバックする。1つまたは複数のネットワーキング層(240、260)は、現在のネットワーク帯域幅および輻輳/ノイズ状況に関する情報を収集または推定し、この情報がレートコントローラ(220)にフィードバックされる。代替として、レートコントローラ(220)は、他の、および/または追加の要素を考慮の対象としてもよい。
【0048】
レートコントローラ(220)は、音声のエンコードに伴うレート、品質、および/または損失弾性を変更するよう、音声エンコーダ(230)に指示する。エンコーダ(230)は、パラメータに関する量子化要素を調整すること、またはパラメータを表すエントロピコードの解像度を変更することによって、レートおよび品質を変更することができる。加えて、エンコーダは、冗長符号化のレートまたは種類を調整することによって、損失弾性を変更することもできる。したがって、エンコーダ(230)は、ネットワーク条件に応じて、主要なエンコード機能と損失弾性機能との間でのビット割り当て(allocation)を変更することができる。
【0049】
図4は、説明する諸実施形態のうちの1つまたは複数と共に実装可能な、一般化された音声帯域エンコーダ(400)を示すブロック図である。帯域エンコーダ(400)は一般に、図2の帯域エンコードコンポーネント(232、234)のうちのいずれか1つに対応する。
【0050】
信号が複数の帯域に分割される場合、帯域エンコーダ(400)は、フィルタバンク(または他のフィルタ)から帯域入力(402)を受け入れる。信号が複数の帯域に分割されない場合、帯域入力(402)は、帯域幅全体を表すサンプルを含む。帯域エンコーダは、エンコードされた帯域出力(492)を生成する。
【0051】
信号が複数の帯域に分割される場合、ダウンサンプリングコンポーネント(420)は、各帯域でダウンサンプリングを実行することができる。一例として、サンプリングレートが16kHzに設定され、かつ各フレームの持続時間が20msの場合、各フレームは320サンプルを含む。ダウンサンプリングが実行されず、かつフレームが図3に示されるような3帯域構造に分割された場合、そのフレームでは、3倍のサンプル(すなわち、1帯域につき320サンプルなので合計960サンプル)が、エンコードおよびデコードされることになる。しかしながら、各帯域をダウンサンプリングすることができる。例えば、低周波数帯域(310)を、320サンプルから160サンプルにダウンサンプリングすることが可能であり、さらに、中間帯域(320)および高帯域(330)の各々を、320サンプルから80サンプルにダウンサンプリングすることが可能である。ここで、帯域(310、320、330)はそれぞれ、周波数領域の2分の1、4分の1、および4分の1にわたって伸長している。(この実装におけるダウンサンプリング(420)の程度は、帯域(310、320、330)の周波数領域に関して変化する。しかしながら、他の実装も可能である。後者の段階では、通常、信号エネルギは、周波数領域が高くなるほど減衰するため、通常、より高い帯域に対してより少ないビットが使用される。)したがって、これにより、フレームに対してエンコードおよびデコードされることになる合計320サンプルが提供される。
【0052】
LP分析コンポーネント(430)は、線形予測係数(432)を算出する。一実施例では、LPフィルタは、8kHz入力に対しては10個の係数を使用し、16kHz入力に対しては16個の係数を使用し、LP分析コンポーネント(430)は、各帯域について、1フレームにつき1セットの線形予測係数を算出する。代替として、LP分析コンポーネント(430)は、異なる場所を中心とする2つのウィンドウそれぞれに対して、各帯域について1フレームにつき2セットの係数を算出するか、または、1帯域および1フレームのうちの少なくとも一方につき異なる数の係数を算出する。
【0053】
LPC処理コンポーネント(435)は、線形予測係数(432)を受信して処理する。通常、LPC処理コンポーネント(435)は、より効率の良い量子化およびエンコードのために、LPC値を異なる表現に変換する。例えば、LPC処理コンポーネント(435)は、LPC値を線スペクトル対(LSP)表現に変換し、LSP値は、(ベクトル量子化などにより)量子化されエンコードされる。LSP値は、イントラ符号化することもできるし、他のLSP値から予測することもできる。LPC値に対しては、様々な表現、量子化技法、およびエンコード技法が可能である。LPC値は、パケット化および伝送のために、(任意の量子化パラメータおよび再構築に必要な他の情報と共に、)エンコードされた帯域出力(492)の一部として、何らかの形で提供される。その後エンコーダ(400)内で使用される場合、LPC処理コンポーネント(435)は、LPC値を再構築する。LPC処理コンポーネント(435)は、LPC係数の異なるセット間、またはフレームの異なるサブフレームに対して使用されるLPC係数間での遷移を平滑にするために、LPC値に対して、(LSP表現または他の表現と同等の)補間を実行することができる。
【0054】
合成(または「短期予測」)フィルタ(440)は、再構築されたLPC値(438)を受け入れ、再構築されたLPC値(438)をフィルタに組み込む。合成フィルタ(440)は励起信号を受信し、オリジナル信号の近似を生成する。所与のフレームについて、合成フィルタ(440)は、予測開始に関する以前のフレームから、いくつかの再構築されたサンプル(例えば、10タップフィルタに対して10個)をバッファリングすることができる。
【0055】
知覚重み付けコンポーネント(perceptual weighting component)(450、455)は、聴覚システムを量子化エラーに対して低感度にするための、音声信号のフォルマント構造を選択的に重視しないように、オリジナル信号と、合成フィルタ(440)のモデル化された出力とに知覚重み付けを適用する。知覚重み付けコンポーネント(450、455)は、マスキングなどの心理音響現象を活用する。一実施例では、知覚重み付けコンポーネント(450、455)は、LP分析コンポーネント(430)から受信したオリジナルLPC値(432)に基づいて、重み付けを適用する。代替として、知覚重み付けコンポーネント(450、455)は、他の、および/または追加の重み付けを適用してもよい。
【0056】
知覚重み付けコンポーネント(450、455)に続いて、エンコーダ(400)は、知覚的に重み付けされたオリジナル信号と、知覚的に重み付けされた合成フィルタ(440)からの出力との差を計算して、差分信号(434)を生成する。代替として、エンコーダ(400)は、異なる技法を使用して音声パラメータを算出してもよい。
【0057】
励起パラメータ化コンポーネント(460)は、知覚的に重み付けされたオリジナル信号と合成された信号との差を最小限にするという観点から(重み付けされた平均2乗誤差または他の基準の観点から)、適応コードブック指数、固定コードブック指数、および利得コードブック指数の最良の組合せを見つけようとする。多くのパラメータは、1サブフレームあたりで算出されるが、より一般的には、パラメータは、スーパーフレームあたり、フレームあたり、またはサブフレームあたりで算出することができる。前述したように、フレームまたはサブフレームの異なる帯域に関するパラメータは、異なる可能性がある。表2は、一実施例において、異なるフレームクラスに対する使用可能なパラメータのタイプを示している。
【0058】
【表2】

【0059】
図4では、励起パラメータ化コンポーネント(460)が、フレームをサブフレームに分割し、各サブフレームのコードブック指数および利得を適宜計算する。例えば、使用されるコードブックステージの数およびタイプ、ならびにコードブック指数の解像度は、エンコードモードによって最初に決定することが可能である。この場合、モードは、前述のレートコントロールコンポーネントによって指示される。特定のモードは、コードブックステージの数およびタイプ以外に、エンコードおよびデコードパラメータ、例えばコードブック指数の解像度を指示することもできる。各コードブックステージのパラメータは、ターゲット信号とそのコードブックステージの合成信号に対する寄与信号との間の誤差を最小化するようにパラメータを最適化することによって、決定される。(本明細書で使用される「最適化する」という用語は、パラメータスペースの全検索を実行することとは異なり、ひずみ低減、パラメータ検索時間、パラメータ検索の複雑さ、パラメータのビットレートなどの、適用可能な制約の下で、好適なソリューションを見つけることを意味する。同様に、「最小化する」という用語も、適用可能な制約の下で、好適なソリューションを見つけることに関するものと理解されたい。)例えば、最適化は、修正された平均2乗誤差技法を使用して実行可能である。各ステージのターゲット信号は、残余信号と、前のコードブックステージの合成信号に対する寄与信号が存在すれば、その寄与信号の合計との差である。代替として、他の最適化技法を使用してもよい。
【0060】
図5は、一実施例に従ってコードブックパラメータを決定するための技法を示している。励起パラメータ化コンポーネント(460)は、潜在的にはレートコントローラなどの他のコンポーネントと共に、この技法を実行する。代替として、エンコーダ内の他のコンポーネントがこの技法を実行してもよい。
【0061】
図5を参照すると、励起パラメータ化コンポーネント(460)は、有声フレームまたは遷移フレームにおける各サブフレームについて、現在のサブフレームに対して適応コードブックが使用できるかどうかを判定する(510)。(例えば、レートコントロールは、特定のフレームに対しては、適応コードブックが使用されないよう指示することができる。)適応コードブックが使用されない場合、適応コードブックスイッチは、使用される適応コードブックがないことを示すことになる(535)。例えば、これは、フレーム内で適応コードブックが使用されないことを示すフレームレベルに1ビットフラグを設定すること、フレームレベルに特定の符号化モードを指定すること、またはサブフレーム内で適応コードブックが使用されないことを示す各サブフレームについて1ビットフラグを設定することによって、実行可能である。
【0062】
さらに図5を参照すると、適応コードブックが使用可能な場合、コンポーネント(460)は適応コードブックパラメータを決定する。それらのパラメータは、励起信号履歴の所望のセグメントを示す指数またはピッチ値、および所望のセグメントに適用するための利得を含む。図4および図5では、コンポーネント(460)が閉ループピッチ検索を実行する(520)。この検索は、図4のオプションの開ループピッチ検索コンポーネント(425)によって決定されたピッチで開始される。開ループピッチ検索コンポーネント(425)は、そのピッチを推定するために、重み付けコンポーネント(450)によって生成された重み付け信号を分析する。閉ループピッチ検索(520)は、この推定されたピッチで開始され、ターゲット信号と、励起信号履歴の指示されたセグメントから生成された重み付けされた合成信号との間の誤差を減らすために、ピッチ値を最適化する。適応コードブック利得値も最適化される(525)。適応コードブック利得値は、値のスケールを調整するために、ピッチ予測値(励起信号履歴の指示されたセグメントからの値)に適用するための乗数を示す。ピッチ予測値によって乗算された利得は、現在のフレームまたはサブフレームに関する励起信号に対する適応コードブックの寄与信号である。利得最適化(525)および閉ループピッチ検索(520)はそれぞれ、ターゲット信号と、適応コードブック寄与信号から重み付けされた合成信号との間の誤差を最小化する、利得値および指数値を生成する。
【0063】
コンポーネント(460)が、適応コードブックが使用されると判定した場合(530)、適応コードブックパラメータは、ビットストリームに含められてシグナリングされる(540)。使用されない場合、上述したように、1ビットのサブフレームレベルフラグを設定することなどによって、サブフレームに対しては、適応コードブックが使用されないことが示される(535)。この判定(530)は、特定のサブフレームに関する適応コードブック寄与信号が、適応コードブックパラメータをシグナリングするために必要なビット数に値するだけの十分なものであるかどうかの判定を含めることができる。代替として、何らかの他の基準を判定に使用することもできる。さらに、図5では、判定後にシグナリングするように示されているが、代替として、フレームまたはスーパーフレームに対して技法が完了するまで、信号はバッチ処理される(batched)。
【0064】
励起パラメータ化コンポーネント(460)は、パルスコードブックが使用されるかどうかも判定する(550)。パルスコードブックを使用するか否かは、現在のフレームの全体符号化モードの一部として示される。あるいは、パルスコードブックを使用するか否かは、他の方法で示されてもよいし、決定されてもよい。パルスコードブックとは、励起信号に寄与する1つまたは複数のパルスを指定するタイプの固定コードブックである。パルスコードブックパラメータは、指数およびサイン(sign)のペア群を含む(利得は正または負とすることができる)。各ペアは、パルスの位置を示す指数と、パルスの極性を示すサインとを伴う、励起信号に含まれるパルスを示す。パルスコードブック内に含まれ、かつ励起信号に寄与するために使用されるパルスの数は、符号化モードに応じて変更することができる。加えて、パルスの数は、適応コードブックが使用されているか否かに応じて変更することができる。
【0065】
パルスコードブックが使用される場合、パルスコードブックパラメータは、指示されたパルスの寄与信号とターゲット信号との間の誤差を最小化するように最適化される(555)。適応コードブックが使用されない場合、ターゲット信号は重み付けされたオリジナル信号である。適応コードブックが使用される場合、ターゲット信号は、重み付けされたオリジナル信号と、重み付けされた合成信号に対する適応コードブックの寄与信号との差である。ある時点(図示せず)で、パルスコードブックパラメータは、ビットストリームに含められてシグナリングされる。
【0066】
励起パラメータ化コンポーネント(460)は、任意のランダム固定コードブックステージが使用されるかどうかも判定する(565)。ランダムコードブックステージが存在すれば、ランダムコードブックステージの数は、現在のフレームの全体符号化モードの一部として示されるか、または、他の方法で決定することができる。ランダムコードブックとは、エンコードする値に関して予め定義された信号モデルを使用するタイプの固定コードブックである。コードブックパラメータには、信号モデルの指示されたセグメントに関する開始点と、正または負とすることができるサインとを含めることができる。指示されたセグメントの長さまたは領域は、通常固定されているため、通常はシグナリングされないが、代替として、指示されたセグメントの長さまたは範囲は、シグナリングされてもよい。利得は、励起信号に対するランダムコードブックの寄与信号を生成するために、指示されたセグメントの値と乗算される。
【0067】
少なくとも1つのランダムコードブックステージが使用される場合、そのコードブックに関するコードブックステージパラメータは、ランダムコードブックステージの寄与信号とターゲット信号との間の誤差を最小化するように最適化される(570)。ターゲット信号は、重み付けされたオリジナル信号と、(存在すれば)重み付けされた合成信号に対する適応コードブックの寄与信号、(存在すれば)パルスコードブックの寄与信号、および(存在すれば)以前に決定されたランダムコードブックステージの寄与信号の合計との間の差である。ある時点(図示せず)で、ランダムコードブックパラメータは、ビットストリームに含められてシグナリングされる。
【0068】
次いで、コンポーネント(460)は、別のランダムコードブックステージが使用されるかどうかを判定する(580)。使用される場合、次のランダムコードブックステージのパラメータが最適化され(570)、上述したようにシグナリングされる。これは、ランダムコードブックステージに関するすべてのパラメータが決定されるまで続行される。すべてのランダムコードブックステージは、モデルとは異なるセグメントを示し、異なる利得値を有することが多いが、同じ信号モデルを使用することができる。代替として、異なる信号モデルを異なるランダムコードブックステージに対して使用することもできる。
【0069】
レートコントローラおよび/または他のコンポーネントによって決定されたように、各励起利得を独立に量子化するか、あるいは、複数の利得をまとめて量子化することができる。
【0070】
本明細書では、様々なコードブックパラメータを最適化するために、特定の順序で説明してきたが、他の順序および最適化技法を使用することもできる。例えば、すべてのランダムコードブックを同時に最適化することができる。したがって、図5は異なるコードブックパラメータの順次計算を示しているが、別の方法では、(例えば、パラメータをまとめて変更すること、および、何らかの非線形最適化技法に従って結果を評価することによって、)複数の異なるコードブックパラメータがまとめて最適化される。加えて、コードブックの他の構成または他の励起信号パラメータも使用可能である。
【0071】
この実施例における励起信号は、1つの適応コードブックステージの寄与信号、1つのパルスコードブックステージの寄与信号、および1つまたは複数のランダムコードブックステージの寄与信号の任意の合計である。代替として、図4のコンポーネント(460)は、励起信号に関する他の、および/または追加のパラメータを算出することもできる。
【0072】
図4を参照すると、励起信号に関するコードブックパラメータは、シグナリングされるか、または別の方法で、(図4内の破線で囲まれた)ローカルデコーダ(465)および帯域出力(492)に提供される。したがって、各帯域について、エンコーダ出力(492)は、前述のLPC処理コンポーネント(435)からの出力、および励起パラメータ化コンポーネント(460)からの出力を含む。
【0073】
出力(492)のビットレートは、部分的には、コードブックによって使用されるパラメータに依存し、エンコーダ(400)は、コードブック指数の異なるセット間で切り替えること、埋め込まれたコードを使用すること、または他の技法を使用することによって、ビットレートおよび/または品質を制御することができる。コードブックのタイプおよびステージの異なる組合せにより、異なるフレーム、帯域、および/またはサブフレームに対する異なるエンコードモードをもたらすことができる。例えば、無声フレームは、1つのみのランダムコードブックステージを使用することができる。適応コードブックおよびパルスコードブックは、低レートの有声フレームに対して使用することができる。高レートフレームは、1つの適応コードブックステージ、1つのパルスコードブックステージ、および1つまたは複数のランダムコードブックステージを使用して、エンコードすることができる。1つのフレームにおいて、すべてのサブ帯域に関するすべてのエンコードモードの組合せを、まとめて、モードセットと呼ぶことができる。異なるモードが異なる符号化ビットレートに対応する、各サンプリングレートについていくつかの予め定義されたモードセットが存在し得る。レートコントロールモジュールは、各フレームに関するモードセットを決定することもできるし、各フレームに関するモードセットに影響を与えることもできる。
【0074】
さらに図4を参照すると、励起パラメータ化コンポーネント(460)の出力は、パラメータ化コンポーネント(460)によって使用されるコードブックに対応する、コードブック再構築コンポーネント(470、472、474、476)および利得適用コンポーネント(480、482、484、486)によって受信される。コードブックステージ(470、472、474、476)および対応する利得適用コンポーネント(480、482、484、486)は、コードブックの寄与信号を再構築する。それらの寄与信号が合計されて励起信号(490)が生成される。この励起信号(490)が合成フィルタ(440)によって受信される。ここで、励起信号(490)は、後続の線形予測の発生元である「予測」サンプルと共に使用される。励起信号の遅延部分も、後続の適応コードブックパラメータ(例えば、ピッチ寄与)を再構築するために適応コードブック再構築コンポーネント(470)によって、ならびに、後続の適応コードブックパラメータ(例えば、ピッチ指数およびピッチ利得値)を算出する際にパラメータ化コンポーネント(460)によって、励起履歴信号として使用される。
【0075】
再度図2を参照すると、各帯域についての帯域出力は、他のパラメータと共にMUX(236)によって受け入れられる。こうした他のパラメータとしては、情報の中でもとりわけ、フレーム分類器(214)からのフレームクラス情報(222)およびフレームエンコードモードを挙げることができる。MUX(236)は、他のソフトウェアに渡すために、アプリケーション層パケットを構築するか、またはMUX(236)は、RTPなどのプロトコルに従ったパケットのペイロードにデータを入れる。MUXは、後続のパケットにおける転送エラー訂正のためのパラメータの選択的反復を可能にするように、パラメータをバッファリングすることができる。一実施例では、MUX(236)は、1つまたは複数の前のフレームのすべてまたは一部に関する転送エラー訂正情報と共に、主要エンコード音声情報を、1フレームにつき単一のパケットにパックする。
【0076】
MUX(236)は、レートコントロールのために、現在のバッファの満杯度などのフィードバックを提供する。より一般的には、エンコーダ(230)の様々なコンポーネント(フレーム分類器(214)およびMUX(236)を含む)は、図2に示されたようなレートコントローラ(220)に情報を提供することができる。
【0077】
図2のビットストリームDEMUX(276)は、エンコードされた音声情報を入力として受け入れ、パラメータを識別して処理するために、そのエンコードされた音声情報を解析する。パラメータには、フレームクラス、LPC値の何らかの表現、およびコードブックパラメータを含めることができる。フレームクラスは、所与のフレームについて、他のどのパラメータが存在するかを示すことができる。より一般的には、DEMUX(276)は、エンコーダ(230)によって使用されるプロトコルを使用し、エンコーダ(230)がパケットにパックするパラメータを抽出する。動的パケット交換ネットワークを介して受信されるパケットの場合、DEMUX(276)は、所与の期間に渡るパケットレートの短期変動を平滑にするためのジッタバッファを含む。あるケースでは、デコーダ(270)は、遅延、品質管理、欠落フレームの秘匿などをデコードに統合するように、バッファ遅延を制御し、バッファからパケットが読み出されるタイミングを管理する。他のケースでは、アプリケーション層コンポーネントがジッタバッファを管理し、ジッタバッファは、可変レートで満たされ、一定の、または比較的一定のレートで、デコーダ(270)によって消費されていく(depleted)。
【0078】
DEMUX(276)は、所与のセグメントについて、1つの1次エンコードされたバージョンと、1つまたは複数の2次エラー訂正バーションとを含む複数バージョンのパラメータを受信することができる。エラー訂正が失敗した場合、デコーダ(270)は、パラメータの反復または正しく受信された情報に基づく推定などの、秘匿技法を使用する。
【0079】
図6は、説明する諸実施形態のうちの1つまたは複数と共に実装可能な、一般化されたリアルタイム音声帯域デコーダ(600)を示すブロック図である。帯域デコーダ(600)は一般に、図2の帯域デコードコンポーネント(272、274)のうちのいずれか1つに対応する。
【0080】
帯域デコーダ(600)は、(完全な帯域とすることもできるし、または複数のサブ帯域のうちの1つとすることもできる)帯域に関するエンコードされた音声情報(692)を入力として受け入れ、デコードおよびフィルタリングの後に、フィルタリングされた再構築された出力(604)を生成する。デコーダ(600)のコンポーネントは、エンコーダ(400)内のコンポーネントに対応するコンポーネントを有するが、知覚重み付け、励起処理ループ、およびレートコントロールに関するコンポーネントがないため、全体としてデコーダ(600)の方が単純である。
【0081】
LPC処理コンポーネント(635)は、帯域エンコーダ(400)によって提供される形で、LPC値を表す情報(ならびに、任意の量子化パラメータおよび再構築に必要な他の情報)を受信する。LPC処理コンポーネント(635)は、以前にLPC値に適用された変換、量子化、エンコードなどの逆処理を使用して、LPC値(638)を再構築する。LPC処理コンポーネント(635)は、LPC係数の異なるセット間の遷移を平滑にするために、(LPC表現またはLSPなどの他の表現で)LPC値に対する補間を実行することもできる。
【0082】
コードブックステージ(670、672、674、676)および利得適用コンポーネント(680、682、684、686)は、励起信号に使用される任意の対応するコードブックステージのパラメータをデコードし、使用される各コードブックステージの寄与信号を算出する。一般に、コードブックステージ(670、672、674、676)および利得コンポーネント(680、682、684、686)の構成および動作は、エンコーダ(400)におけるコードブックステージ(470、472、474、476)および利得コンポーネント(480、482、484、486)の構成および動作に対応する。使用されるコードブックステージの寄与信号が合計され、結果として生じる励起信号(690)が合成フィルタ(640)に送信される。励起信号(690)の遅延値は、励起信号の後続部分について適応コードブックの寄与信号を算出する際に、適応コードブック(670)によって、励起履歴としても使用される。
【0083】
合成フィルタ(640)は、再構築されたLPC値(638)を受け入れ、その再構築されたLPC値(638)をフィルタに組み込む。合成フィルタ(640)は、処理するために、以前に再構築されたサンプルを記憶する。励起信号(690)は、オリジナル音声信号の近似を形成するために、合成フィルタを介して渡される。
【0084】
再構築されたサブ帯域信号(602)も短期ポストフィルタ(694)に送信される。短期ポストフィルタは、フィルタリングされたサブ帯域出力(604)を生成する。短期ポストフィルタ(694)に関する係数を算出するためのいくつかの技法については、以下で説明する。適応ポストフィルタリングの場合、デコーダ(270)は、エンコードされた音声に関するパラメータ(例えば、LPC値)から係数を算出することができる。代替として、係数は、何らかの他の技法により提供されてもよい。
【0085】
再度図2を参照すると、上述したように、複数のサブ帯域が存在する場合、各サブ帯域に関するサブ帯域出力が、音声出力(292)を形成するために、合成フィルタバンク(280)内で合成される。
【0086】
図2〜図6に示された関係は、情報の概略的なフローを示し、わかりやすくするために他の関係は示されていない。実装および所望の圧縮のタイプに応じて、コンポーネントの追加、省略、複数のコンポーネントへの分割、他のコンポーネントとの組合せ、および/または同様のコンポーネントとの置換が可能である。例えば、図2に示された環境(200)では、レートコントローラ(220)を音声エンコーダ(230)と組み合わせることができる。追加され得るコンポーネントには、マルチメディアエンコードアプリケーション(またはマルチメディア再生アプリケーション)が含まれる。このマルチメディアエンコードアプリケーション(またはマルチメディア再生アプリケーション)は、音声エンコーダ(またはデコーダ)ならびに他のエンコーダ(またはデコーダ)を管理し、ネットワーク状態情報およびデコーダ状態情報を収集し、適応エラー訂正機能を実行する。代替実施形態では、異なる組合せおよび構成のコンポーネントが、本明細書で説明する技法を使用して、音声情報を処理する。
【0087】
(III.ポストフィルタリング技法)
いくつかの実施形態では、デコーダまたは他のツールが、再構築された音声などの再構築されたオーディオがデコードされた後に、短期ポストフィルタをこのようなデコードされた再構築されたオーディオに適用する。こうしたフィルタは、再構築された音声の知覚品質を向上させることができる。
【0088】
ポストフィルタは通常、時間ドメインポストフィルタまたは周波数ドメインポストフィルタのいずれかである。従来のCELPコーデック用の時間ドメインポストフィルタは、1つの定因数(constant factor)によってスケーリングされる全極型(all-pole)線形予測係数合成フィルタと、他の定因数によってスケーリングされる全ゼロ型(all-zero)線形予測係数逆フィルタとを含む。
【0089】
加えて、通常音声内の低周波数の振幅がしばしば高周波数の振幅よりも高いため、「スペクトル傾斜」と呼ばれる現象が多くの音声信号において発生する。したがって、音声信号の周波数ドメイン振幅スペクトルは、しばしばスロープすなわち「傾斜」を含む。したがって、再構築された音声信号には、オリジナル音声からのスペクトル傾斜が存在するはずである。しかしながら、ポストフィルタの係数がこうした傾斜も組み込む場合、ポストフィルタリングされた出力における傾斜の影響は増大されることになり、結果として、フィルタリングされた音声信号はひずむことになる。したがって、いくつかの時間ドメインポストフィルタは、スペクトル傾斜を補償するための1次高域通過フィルタも含む。
【0090】
したがって、時間ドメインポストフィルタの特徴は通常、それほど高い柔軟性を与えない2つまたは3つのパラメータによって制御される。
【0091】
他方、周波数ドメインポストフィルタは、ポストフィルタリングの特徴を定義する、より柔軟な方法を有している。周波数ドメインポストフィルタでは、フィルタリング係数は、周波数ドメイン内で決定される。デコードされた音声信号は、周波数ドメインに変換され、周波数ドメイン内でフィルタリングされる。その後、フィルタリングされた信号が再度時間ドメインに変換される。しかしながら、結果として生じるフィルタリングされた時間ドメイン信号は、通常、オリジナルのフィルタリングされていない時間ドメイン信号とは異なるサンプル数を有する。例えば、160サンプルを有するフレームは、後のサンプルのパディングまたは包含後に、256ポイント高速フーリエ変換(「FFT」)などの256ポイント変換を使用して、周波数ドメインに変換することができる。フレームを時間ドメインに再変換するために256ポイント逆FFTが適用された場合、256の時間ドメインサンプルが生じることになる。したがって、余分な96サンプルが生じる。余分な96サンプルは、次のフレームの最初の96サンプル内のそれぞれのサンプルと重複させるか、またはこれに追加することができる。これは、しばしば重複−追加(overlap-add)技法と呼ばれる。音声信号の変換ならびに重複−追加技法などの技法の実施により、特にまだ周波数変換コンポーネントを含んでいないコーデックの場合、デコーダ全体の複雑さが大幅に増大する可能性がある。したがって、周波数ドメインポストフィルタは、こうしたフィルタを非正弦波ベースのコーデックに適用することにより導出される遅延および複雑さが大きすぎるため、通常、正弦波ベースの音声コーデックに対してのみ使用される。周波数ドメインポストフィルタは通常、コーデックフレームサイズが符号化中に変化する場合、(160サンプルではなく80サンプルを有するフレームなどの)異なるサイズフレームに遭遇すると、上述した重複−追加技法が極めて複雑になるため、フレームサイズを変更するための柔軟性はより低いものとなる。
【0092】
特定のコンピューティング環境機能およびオーディオコーデック機能について上述したが、1つまたは複数のツールおよび技法を、様々な異なるタイプのコンピューティング環境および/または様々な異なるタイプのコーデックと共に使用することができる。例えば、1つまたは複数のポストフィルタリング技法は、適応差分パルスコード変調コーデック、変形コーデック、および/または他のタイプのコーデックなどの、CELP符号化モデルを使用しないコーデックと共に使用することができる。他の例として、1つまたは複数のポストフィルタリング技法を、単一帯域コーデックまたはサブ帯域コーデックと共に使用することができる。他の例として、1つまたは複数のポストフィルタリング技法を、複数帯域コーデックの単一帯域に、および/または、複数帯域コーデックの複数帯域の寄与信号を含む合成信号またはエンコードされていない信号に、適用することができる。
【0093】
(A.複合短期ポストフィルタの例)
いくつかの実施形態では、図6に示されたデコーダ(600)などのデコーダが、後処理のために、適応時間周波数「複合(hybrid)」フィルタを組み込むか、またはこうしたフィルタがデコーダ(600)の出力に適用される。代替として、こうしたフィルタが、例えば本願の他の場所で説明される音声コーデックなどの、何らかの他のタイプのオーディオデコーダまたは処理ツールに組み込まれるか、あるいは、何らかの他のタイプのオーディオデコーダまたは処理ツールの出力に適用される。
【0094】
図6を参照すると、いくつかの実施例では、短期ポストフィルタ(694)は、時間ドメインおよび周波数ドメインのプロセスの組合せに基づく「複合」フィルタである。ポストフィルタ(694)の係数は、主に周波数ドメイン内で柔軟かつ効率的に設計することが可能であり、この係数を時間ドメイン内の短期ポストフィルタに適用することができる。この手法の複雑さは、通常、標準の周波数ドメインポストフィルタよりも低く、導出される遅延がごくわずかであるように実施することができる。加えて、このフィルタは、従来の時間ドメインポストフィルタよりも多くの柔軟性を提供することができる。こうした複合フィルタは、過度の遅延またはデコーダの複雑さを要することなく、出力音声品質を大幅に向上させることができると考えられる。加えて、フィルタ(694)は時間ドメイン内で適用されるため、いかなるサイズのフレームにも適用可能である。
【0095】
一般に、ポストフィルタ(694)は、有限インパルス応答(「FIR」)フィルタとすることができる。この有限インパルス応答(「FIR」)フィルタの周波数応答は、LPC合成フィルタの振幅スペクトル(magnitude spectrum)の対数に対して実行される非線形プロセスの結果である。ポストフィルタの振幅スペクトルは、フィルタ(694)がスペクトルの谷でのみ減衰するように設計することができ、場合によっては、振幅スペクトルの少なくとも一部がフォルマント領域付近で平坦になるようにクリッピングされる。以下で説明するように、FIRポストフィルタリング係数は、処理された振幅スペクトルの逆フーリエ変換の結果として生じる正規化された系列(sequence)をトランケートする(truncate)ことによって、取得することができる。
【0096】
フィルタ(694)は、時間ドメイン内の再構築された音声に適用される。フィルタは、帯域全体またはサブ帯域に適用することができる。加えて、フィルタは単独で使用することもできるし、あるいは、以下でより詳細に説明する、長期ポストフィルタおよび/または中間周波数拡張フィルタなどの他のフィルタと共に使用することもできる。
【0097】
上述したポストフィルタは、様々なビットレート、様々なサンプリングレート、および様々な符号化アルゴリズムを使用するコーデックと関連して動作することができる。ポストフィルタ(694)は、ポストフィルタなしの音声コーデックを使用した場合と比較して、大幅な品質向上を生み出すことが可能であると考えられる。具体的に言えば、ポストフィルタ(694)は、信号パワーが比較的低い周波数領域内の、すなわち、フォルマント間のスペクトルの谷内の、知覚量子化ノイズを減少させると考えられる。これらの領域では、通常、信号対ノイズ比が不十分である。言い換えれば、信号が弱いため、存在するノイズの方が相対的に強い。ポストフィルタは、これらの領域内のノイズレベルを減衰させることによって、音声品質全体を向上させると考えられる。
【0098】
再構築されたLPC係数(638)は、LPC合成フィルタの周波数応答が通常、入力音声のスペクトルエンベロープ(envelope)に従うことから、しばしばフォルマント情報を含む。したがって、LPC係数(638)は、短期ポストフィルタの係数を導出するために使用される。LPC係数(638)は、1つのフレームから次のフレームの間に変化するため、または何らかの他の基準で変化するため、LPC係数(638)から導出されるポストフィルタ係数も、フレーム間または何らかの他の基準に適合する。
【0099】
ポストフィルタ(694)のフィルタリング係数を算出するための技法を、図7に示す。図6のデコーダ(600)はこの技法を実行する。代替として、他のデコーダまたはポストフィルタリングツールがこの技法を実行してもよい。
【0100】
デコーダ(600)は、LPC係数a(i)のセット(710)をゼロパディングすること(715)によって、LPCスペクトルを取得する。ここで、i=0、1、2、...、Pであり、a(0)=1である。LPC係数のセット(710)は、CELPコーデックなどの線形予測コーデックが使用される場合、ビットストリームから取得することができる。代替として、LPC係数のセット(710)は、再構築された音声信号を分析することによって、取得することもできる。これは、たとえコーデックが線形予測コーデックでない場合であっても実行することができる。Pは、ポストフィルタリング係数を決定する際に使用されるLPC係数a(i)のLPC級数(LPC order)である。一般にゼロパディングは、その時間(または周波数帯域)制限を拡張するために、信号(またはスペクトル)をゼロを用いて拡張することを含む。このプロセスでは、ゼロパディングは、長さPの信号を長さNの信号にマッピングする。ここでは、N>Pである。全帯域コーデックの実施例では、Pは、8kHzサンプリングレートに対しては10、8kHzよりも高いサンプリングレートに対しては16である。代替として、Pは何らかの他の値としてもよい。サブ帯域コーデックの場合、Pは、各サブ帯域で異なる値とすることができる。例えば、図3に示された3つのサブ帯域構造を使用する16kHzサンプリングレートの場合、Pは、低周波数帯域(310)に対して10、中間帯域(320)に対して6、高帯域(330)に対して4とすることができる。一実施例では、Nは128である。代替として、Nは、256などの何らかの他の数としてもよい。
【0101】
次いで、デコーダ(600)は、ゼロパディングされた係数に対して、FFT(720)などのNポイント変換を実行し、振幅スペクトルA(k)が得られる。A(k)は、k=0、1、2、...、N−1の場合の、ゼロパディングされたLPC逆フィルタのスペクトルである。振幅スペクトルの逆数(すなわち、1/|A(k)|)は、LPC合成フィルタの振幅スペクトルを与える。
【0102】
LPC合成フィルタの振幅スペクトルは、その振幅領域を減少させるために、オプションで対数ドメイン(725)に変換される。一実施例では、この変換は以下のとおりである。
【0103】
【数1】

【0104】
上式において、lnは自然対数である。しかしながら、他の演算を使用して、領域を減少させることができる。例えば、自然対数演算の代わりに、10を底とする対数演算を実行することができる。
【0105】
正規化(730)、非線形圧縮(735)、およびクリッピング(740)の3つのオプションの非線形演算が、H(k)の値に基づく。
【0106】
正規化(730)は、フレーム間および帯域間で、H(k)の範囲をより一貫性のあるものにする傾向がある。正規化(730)および非線形圧縮(735)はどちらも、音声信号がポストフィルタによってそれほど変化しないように、非線形振幅スペクトルの領域を減少させる。代替として、他の、および/または追加の技法を使用して、振幅スペクトルの領域を減少させることもできる。
【0107】
一実施例では、複数帯域コーデックの各帯域について、以下のように初期正規化(730)が実行される。
【0108】
【数2】

【0109】
上式において、k=0、1、2、...、N−1の場合、Hminは、H(k)の最小値である。
【0110】
正規化(730)は、全帯域コーデックに対して以下のように実行することができる。
【0111】
【数3】

【0112】
上式において、k=0、1、2、...、N−1の場合、Hminは、H(k)の最小値であり、Hmaxは、H(k)の最大値である。上記のどちらの正規化数式においても、
【0113】
【数4】

【0114】
の最大値および最小値がそれぞれ1および0となるのを防ぐために、0.1の定数値が追加され、それにより非線形圧縮がより効率的になる。代替として、他の定数値または他の技法を使用して、ゼロ値を防ぐこともできる。
【0115】
非線形スペクトルの動的領域をさらに調整するために、非線形圧縮(735)は、以下のように実行される。
【0116】
【数5】

【0117】
上式において、k=0、1、...、N−1である。したがって、係数を周波数ドメインに変換するために128ポイントFFTが使用される場合、k=0、1、...、127である。加えて、β=η*(Hmax−Hmin)であり、ηおよびγは、適切に選択された定因数であると考えられる。ηおよびγの値は、音声コーデックのタイプおよびエンコードレートに従って選択することができる。一実施例では、ηおよびγパラメータは、実験的に選択される。例えば、γは、0.125から0.135までの範囲の値として選択され、ηは、0.5から1.0までの範囲から選択される。定数値は、プリファレンスに基づいて調整することができる。例えば、定数値の範囲は、様々な定数値から結果として生じる、予測されるスペクトルひずみ(主に山および谷の付近)を分析することによって取得される。通常、予め定められたレベルの予測されるひずみを超えない範囲を選択することが望ましい。次いで、最終的な値は、主観的リスニングテスト(subjective listening test)の結果を使用した範囲内の値のセットから選択される。例えば、8kHzサンプリングレートのポストフィルタでは、ηは0.5でありγは0.125であって、16kHzサンプリングレートのポストフィルタでは、ηは1.0でありγは0.135である。
【0118】
クリッピング(740)は、以下のように圧縮されたスペクトルH(k)に適用することができる。
【0119】
【数6】

【0120】
上式において、Hmeanは、H(k)の平均値であり、λは、定数である。λの値は、音声コーデックのタイプおよびエンコードレートに従って異なるように選択することができる。いくつかの実施例では、λは、実験的に(0.95から1.1までの値など)選択され、プリファレンスに基づいて調整することができる。例えば、λの最終的な値は、主観的リスニングテストの結果を使用して選択することができる。例えば、8kHzサンプリングレートのポストフィルタでは、λは1.1であり、16kHzサンプリングレートで動作するポストフィルタでは、λは0.95である。
【0121】
このクリッピング操作は、最大値、すなわち上限で、Hpf(k)の値の上限を定める(cap)。上記の式では、この最大値は、λ*Hmeanとして表される。代替として、他の操作を使用して、振幅スペクトルの値の上限が定められてもよい。例えば、上限は、平均値ではなく、H(k)の中央値に基づくものとすることができる。また、すべての高いH(k)値を特定の最大値(λ*Hmeanなど)にクリッピングするのではなく、より複雑な操作に従って値をクリッピングすることもできる。
【0122】
クリッピングは、フォルマント領域などの他の領域で音声スペクトルを大幅に変更することなく、音声信号をその谷で減衰させることになるフィルタリング係数を、結果として発生させる傾向がある。これにより、ポストフィルタは音声フォルマントをひずみから防ぐことが可能であり、それによって、より高品質の音声出力が生じる。加えて、クリッピングは、大きな値を上限の定められた値に減少させることによって、ポストフィルタスペクトルを平坦にすることから、スペクトル傾斜の影響を低減させることができるのに対し、谷付近の値は、ほとんど変更されないままである。
【0123】
対数ドメインへの変換が実行された場合、結果として生じるクリッピングされた振幅スペクトルHpf(k)は、例えば、対数ドメインから線形ドメインへと以下のように変換される(745)。
pfl(k)=exp(Hpf(k))
上式において、expは、逆自然対数関数である。
【0124】
Nポイント逆高速フーリエ変換(750)がHpfl(k)に対して実行されて、f(n)の時間系列が得られる。ここで、n=0、1、...、N−1であり、Nは、上述したFFT操作(720)の場合と同じである。したがって、f(n)は、Nポイントの時間系列である。
【0125】
図7では、n>M−1の場合、値をゼロに設定することによって、以下のように、f(n)の値がトランケートされる(755)。
【0126】
【数7】

【0127】
上式において、Mは、短期ポストフィルタの級数である。一般にMの値が大きいほど、高品質のフィルタリングされた音声が得られる。しかしながら、Mが増加するほど、ポストフィルタの複雑さは増大する。Mの値は、これらのトレードオフを考慮して選択することができる。一実施例では、Mは17である。
【0128】
h(n)の値は、フレーム間での突然の変化を避けるために、オプションで正規化される(760)。例えば、これは以下のように実行される。
【0129】
【数8】

【0130】
代替として、何らかの他の正規化演算が使用されてもよい。例えば、以下の演算が可能である。
【0131】
【数9】

【0132】
正規化によってポストフィルタリング係数hpf(n)(765)が得られる実施例では、係数hpf(n)(765)を伴うFIRフィルタが、時間ドメイン内の合成音声に適用される。したがって、この実施例において、1つのフレームから次のフレームでのフィルタリング係数の大幅な偏差を避けるために、すべてのフレームに対して1次ポストフィルタリング係数(n=0)は、1の値に設定される。
【0133】
(B.中間周波数拡張フィルタの例)
いくつかの実施形態では、図2に示されたデコーダ(270)などのデコーダが、後処理のために、中間周波数拡張フィルタを組み込むか、またはこうしたフィルタがデコーダ(270)の出力に適用される。代替として、こうしたフィルタが、例えば本願の他の場所で説明される音声コーデックなどの、何らかの他のタイプのオーディオデコーダまたは処理ツールに組み込まれるか、または何らかの他のタイプのオーディオデコーダまたは処理ツールの出力に適用される。
【0134】
上述したように、通常、サブ帯域の方が管理しやすく符号化に対して柔軟であることから、複数帯域コーデックは、帯域幅が減じられたチャネルに入力信号を分割する。図2を参照しながら上述したフィルタバンク(216)などの帯域通過フィルタが、エンコードに先立つ信号分割に対してしばしば使用される。しかしながら、信号分割によって、帯域通過フィルタの通過帯域間の周波数領域で、信号エネルギの損失が生じる可能性がある。中間周波数拡張(「MFE」)フィルタは、信号分割によってエネルギが減衰された周波数領域でデコードされた出力音声の振幅スペクトルを増幅することによって、他の周波数領域でのエネルギを大幅に変更することなく、この潜在的な問題に対する解決を支援する。
【0135】
図2において、MFEフィルタ(284)は、フィルタバンク(280)の出力(292)などの、1つまたは複数の帯域合成フィルタの出力に適用される。したがって、図6に示されるように、帯域nデコーダ(272、274)がある場合、短期ポストフィルタ(694)は、サブ帯域デコーダの再構築された各帯域に別々に適用されるが、MFEフィルタ(284)は、複数のサブ帯域の寄与信号を含む合成された再構築された信号に適用される。上述したように、代替として、MFEフィルタは、他の構成を有するデコーダに関連して適用されてもよい。
【0136】
いくつかの実施例では、MFEフィルタは、2次帯域通過FIRフィルタである。これは、1次低域通過フィルタおよび1次高域通過フィルタをカスケード構成にする(cascade)。両方の1次フィルタが、同一の係数を有することができる。MFEフィルタ利得が通過帯域で望ましい(信号のエネルギが増加する)ように、かつ、停止帯域で一致(unity)する(変更されずに、または相対的に変更されずに信号を通過する)ように、係数は通常選択される。代替として、帯域分割によって減衰された周波数領域を拡張するために、何らかの他の技法を使用することもできる。
【0137】
1つの1次低域通過フィルタの伝達関数は、以下のとおりである。
【0138】
【数10】

【0139】
1つの1次高域通過フィルタの伝達関数は、以下のとおりである。
【0140】
【数11】

【0141】
したがって、前述の1次低域通過フィルタおよび高域通過フィルタをカスケード構成にする2次MFEフィルタの伝達関数は、以下のとおりである。
【0142】
【数12】

【0143】
対応するMFEフィルタリング係数は、以下のように表すことができる。
【0144】
【数13】

【0145】
μの値は、実験によって選択することができる。例えば、定数値の範囲は、様々な定数値から生じる予測されるスペクトルひずみを分析することによって取得される。通常、予め定められたレベルの予測されるひずみを超えない範囲を選択することが望ましい。次いで、最終的な値は、主観的リスニングテストの結果を使用して、範囲内の値のセットの中から選択される。一実施例では、16kHzサンプリングレートが使用され、かつ音声が3つの帯域(0から8kHz、8から12kHz、および12から16kHz)に分割される場合、8kHz付近の領域を拡張することが望ましく、μは、0.45であるものとして選択される。代替として、特に何らかの他の周波数領域の拡張が望ましい場合には、他のμの値が選択されてもよい。また、代替として、MFEフィルタは、異なる設計の1つまたは複数の帯域通過フィルタを用いて実装されてもよいし、1つまたは複数の他のフィルタを用いて実装されてもよい。
【0146】
以上、説明した諸実施形態を参照しながら、本発明の原理について説明し例示してきたが、説明した諸実施形態は、こうした原理を逸脱することなく、配置構成および細部の変更が可能であることが理解されよう。本明細書で説明したプログラム、プロセス、または方法は、特に指示のない限り、特定のタイプのコンピューティング環境群に関連するものでも、それらに限定されるものでないことを理解されたい。様々なタイプの汎用コンピューティング環境または特定用途向けコンピューティング環境が、本明細書で説明した教示に従う操作と共に利用可能であるか、またはそうした操作を実行することができる。ソフトウェアを用いて説明した諸実施形態の諸要素を、ハードウェアを用いて実装することが可能であり、その逆もまた可能である。
【0147】
本発明の原理が適用可能な多くの可能な諸実施形態に鑑み、本発明のこうした諸実施形態のすべてが、特許請求の範囲およびその均等の範囲および趣旨内にあるものと主張する。

【特許請求の範囲】
【請求項1】
オーディオデコーダにおいて実行される方法であって、
符号化されたオーディオ信号を複数のフレームとして受信することと、
前記フレームに関連付けられた線形予測係数を取得することと、
前記フレームに関連付けられた前記線形予測係数に関連付けられた周波数ドメイン係数を取得することと、
前記周波数ドメイン係数をスペクトルの谷において減衰させてポストフィルタリング係数を取得するように、前記周波数ドメイン係数をクリッピングすることと、
個々のフレームに対する前記ポストフィルタリング係数の時間ドメインの適用に基づいてオーディオ信号を生成することと
を含むことを特徴とする方法。
【請求項2】
前記線形予測係数の傾斜を補償することをさらに含み、前記周波数ドメイン係数は、前記フレームの前記傾斜補償された線形予測係数に関連付けられていることを特徴とする請求項1に記載の方法。
【請求項3】
前記周波数ドメイン係数を処理して、前記フレームの前記傾斜補償された線形予測係数の対数に対応する対数スペクトルエンベロープ係数を取得することをさらに含み、前記クリッピングは、前記対数スペクトルエンベロープ係数に適用されることを特徴とする請求項2に記載の方法。
【請求項4】
前記対数スペクトルエンベロープ係数を正規化して、前記フレームの圧縮されたスペクトル係数を取得することをさらに含み、前記クリッピングは、前記正規化された対数スペクトルエンベロープ係数に適用されることを特徴とする請求項3に記載の方法。
【請求項5】
前記正規化することは、受信した複数帯域の符号化オーディオ信号に対する複数帯域の正規化、および受信した全帯域のーディオ信号に対する全帯域の正規化を含むことを特徴とする請求項4に記載の方法。
【請求項6】
前記複数帯域の正規化は、前記対数スペクトル係数と、対数スペクトル係数の最小値との差に基づくことを特徴とする請求項5に記載の方法。
【請求項7】
前記全帯域の正規化は、前記対数スペクトル係数の最大値と最小値との差に対する、前記対数スペクトル係数と対数スペクトル係数の最小値との差の比に基づくことを特徴とする請求項5に記載の方法。
【請求項8】
オーディオデコーダにおいて実行される方法であって、
符号化されたオーディオ信号を複数のフレームとして受信することと、
各フレームについて、
線形予測係数と、該線形予測係数に関連付けられた周波数ドメイン係数を取得することと、
前記周波数ドメイン係数をスペクトルの谷において減衰させてポストフィルタリング係数を取得するように、フレーム毎に前記周波数ドメイン係数をクリッピングすることと、
前記フレームに対する前記ポストフィルタリング係数の適用に基づいてオーディオ信号を生成することと
を含むことを特徴とする方法。
【請求項9】
前記クリッピングすることの前に、前記周波数ドメイン係数に非線形圧縮を適用することをさらに含むことを特徴とする請求項8に記載の方法。
【請求項10】
フーリエ変換に基づいてポストフィルタリング係数を変換して、時間ドメインのポストフィルタリング係数を取得することをさらに含むことを特徴とする請求項9に記載の方法。
【請求項11】
符号化されたオーディオ信号を複数のフレームとして受信するように構成された符号化オーディオ入力部と、
前記フレームに関連付けられた線形予測係数を処理し、
各フレームについて、
前記線形予測係数に関連付けられた周波数ドメイン係数を取得し、
前記周波数ドメイン係数をスペクトルの谷において減衰させてポストフィルタリング係数を取得するように、フレーム毎に前記周波数ドメイン係数をクリッピングし、
前記フレームに対する前記ポストフィルタリング係数の適用に基づいてオーディオ信号を生成する
ように構成されたプロセッサと
を備えたことを特徴とするオーディオデコーダデバイス。
【請求項12】
前記プロセッサは、前記周波数ドメイン係数を、逆数の対数変換の後にクリッピングするように構成されることを特徴とする請求項11に記載のオーディオデコーダデバイス。
【請求項13】
前記プロセッサは、受信した複数帯域の符号化オーディオ信号に対して複数帯域の正規化を選択し、および受信した全帯域のオーディオ信号に対して全帯域の正規化を選択するように構成され、前記選択した正規化を前記周波数ドメイン係数に適用するように構成されることを特徴とする請求項11に記載のオーディオデコーダデバイス。
【請求項14】
前記複数帯域の正規化は、対数スペクトル係数と、対数スペクトル係数の最小値との差に基づくことを特徴とする請求項13に記載のオーディオデコーダデバイス。
【請求項15】
前記全帯域の正規化は、対数スペクトル係数の最大値と最小値との差に対する、対数スペクトル係数と対数スペクトル係数の最小値との差の比に基づくことを特徴とする請求項13に記載のオーディオデコーダデバイス。
【請求項16】
前記プロセッサは、前記線形予測係数に対して傾斜補償をするように構成され、前記周波数ドメイン係数は、前記傾斜補償された線形予測係数に関連付けられることを特徴とする請求項13に記載のオーディオデコーダデバイス。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−163981(P2012−163981A)
【公開日】平成24年8月30日(2012.8.30)
【国際特許分類】
【出願番号】特願2012−104721(P2012−104721)
【出願日】平成24年5月1日(2012.5.1)
【分割の表示】特願2008−514627(P2008−514627)の分割
【原出願日】平成18年4月5日(2006.4.5)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)