(57)【特許請求の範囲】
【請求項１】
オーディオエンコーダにおいてオーディオ信号を符号化する方法であって、
以前に符号化されたユニットのセグメントにおける情報を参照して、現在符号化の対象となっているユニットに対するメインの情報を符号化するステップであって、前記以前に符号化されたユニットのセグメントにおける情報は、現在符号化の対象となっているユニットを復号化することをサポートする、ステップと、
前記現在符号化の対象となっているユニットに対する冗長な情報を符号化するステップであって、前記冗長な情報は１又はそれより多くの余分なコードブックステージの１又はそれより多くのパラメータを含み、前記冗長な情報は、前記以前に符号化されたユニットが利用できない場合、前記現在符号化の対照となっているユニットを復号化することをサポートする、ステップと、
前記符号化されたメインの情報及び前記符号化された冗長な情報の両方からなる前記オーディオ信号の符号化されたユニットを出力するステップと
を含むことを特徴とする方法。
【請求項２】
前記現在符号化の対象となっているユニットに対するメインの情報は、前記現在符号化の対象となっているユニットに対する再構成と、前記現在符号化の対象となっているユニットに対する予測との１又はそれより多くの相違点を表す残余信号パラメータを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記冗長な情報を符号化するステップは、閉ループエンコーダ検索において、前記以前に符号化されたユニットに対する励起信号の情報がないと仮定する、前記１又はそれより多くの余分なコードブックステージに対する前記１又はそれより多くのパラメータを判定することにより、前記冗長な情報を生成するステップであることを特徴とする請求項１に記載の方法。
【請求項４】
前記オーディオエンコーダはリアルタイム音声エンコーダであり、前記オーディオ信号は符号化された音声であることを特徴とする請求項１に記載の方法。
【請求項５】
前記１又はそれより多くの余分なコードブックステージに対する前記１又はそれより多くのパラメータは、適応コードブックステージに続く固定コードブックステージにおける固定コードブックに対するパラメータであり、前記１又はそれより多くの余分なコードブックステージに対する前記１又はそれより多くのパラメータは、コードブックインデックス及びコードブック利得を含んでいることを特徴とする請求項１に記載の方法。
【請求項６】
前記適応コードブックステージにおける適応コードブックに対する前記１又はそれより多くのパラメータは、前記以前に符号化されたユニットの励起信号の履歴を参照して、現在符号化の対象となっているユニットに対する励起信号を表すが、前記固定コードブックは、前記励起信号の履歴を参照することなく、前記励起信号を表すことを特徴とする請求項５に記載の方法。
【請求項７】
オーディオデコーダにおいてオーディオ信号のユニットを復号化する方法であって、
現在復号化の対象となっているオーディオ信号ユニットにおけるメインの情報を復号化するステップであって、前記メインの情報は、前記オーディオ信号の以前のユニットのセグメントにおける情報を参照し、前記オーディオ信号の前記以前のユニットの前記セグメントの前記参照された情報は、前記現在復号化の対象となっているユニットを復号化することをサポートする、ステップと、
前記現在復号化の対象となっている前記オーディオ信号における冗長な情報を復号化するステップであって、前記冗長な情報は、１またはそれより多くの余分なコードブックステージに対する１またはそれより多くのパラメータを含み、前記冗長な情報は、前記オーディオ信号の前記以前のユニットが利用できない場合、前記現在復号化の対象となっている前記ユニットを復号化することをサポートする、ステップと、
前記オーディオ信号の復号化されたユニットを出力するステップと
を含むことを特徴とする方法。
【請求項８】
前記オーディオ信号の前記以前の信号が利用できない場合、前記現在符号化の対象となっているユニットを復号化するステップにおいて、前記メインの情報の少なくともいくつか及び前記１又はそれより多くの余分なコードブックステージに対する前記１又はそれより多くのパラメータを使用し、
前記オーディオ信号の前記以前の信号が利用できる場合、前記現在符号化の対象となっているユニットを復号化するステップにおいて、前記メインの情報を使用するが、前記１又はそれより多くの余分なコードブックステージに対する前記１又はそれより多くのパラメータを使用しない
ことを特徴とする請求項７に記載の方法。
【請求項９】
前記現在符号化の対象となっているユニットに対する前記メインの情報は、前記現在復号化の対象となっているユニットに対する再構成と、前記現在復号化の対象となっているユニットに対する予測との１またはそれより多くの相違点を表す残余信号パラメータを含むことを特徴とする請求項７に記載の方法。
【請求項１０】
前記オーディオデコーダは音声デコーダであり、前記オーディオ信号は音声であることを特徴とする請求項７に記載の方法。
【請求項１１】
前記１又はそれより多くの余分なコードブックステージに対する前記１又はそれより多くのパラメータは、適応コードブックステージに続く固定コードブックステージにおける固定コードブックに対するパラメータであり、前記１又はそれより多くの余分なコードブックステージに対する前記１又はそれより多くのパラメータは、コードブックインデックス及びコードブック利得を含むことを特徴とする請求項７に記載の方法。
【請求項１２】
前記適応コードブックステージにおける適応コードブックに対する前記１又はそれより多くのパラメータは、前記オーディオ信号の前記以前のユニットに対する励起信号の履歴を参照して、前記復号化の対象となっているユニットに対する励起信号を表すが、前記固定コードブックに対する前記１又はそれより多くのパラメータは、前記励起信号の履歴を参照することなく、前記励起信号を表すことを特徴とする請求項１１に記載の方法。
【請求項１３】
オーディオデコーダであって、
現在復号化の対象となっているオーディオ信号のユニットにおけるメインの情報を復号化し、前記メインの情報は、前記オーディオ信号の前記以前のユニットのセグメントにおける情報を参照し、前記オーディオ信号の前記以前の情報の前記セグメントにおける前記参照された情報は、前記現在復号化の対象となっているユニットを復号化することをサポートし、
前記現在復号化の対象となっているオーディオ信号のユニットにおける冗長な情報を復号化し、前記冗長な情報は、１またはそれより多くの余分なコードブックステージに対する１またはそれより多くのパラメータを含み、前記冗長な情報は、前記オーディオ信号の前記以前のユニットが利用できない場合、現在復号化の対象となっている前記ユニットを復号化することをサポートし、
前記オーディオ信号の復号化されたユニットを出力する
ように構成されたことを特徴とするオーディオデコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
説明されるツールおよび技法は、オーディオコーデックに関し、詳細にはサブバンドコーディング、コードブック、および／または冗長コーディング（ｒｅｄｕｎｄａｎｔ  ｃｏｄｉｎｇ）に関する。
【背景技術】
【０００２】
デジタル無線電話ネットワーク、インターネット上におけるストリーミングオーディオ（ｓｔｒｅａｍｉｎｇ  ａｕｄｉｏ）、およびインターネット電話技術の出現と共に、スピーチのデジタル処理および配信が、一般的になってきている。エンジニアは、品質を依然として保持しながら効率的にスピーチを処理するために様々な技法を使用する。これらの技法を理解するためには、どのようにしてオーディオ情報がコンピュータ中において表され処理されるかを理解することが役に立つ。
【０００３】
Ｉ．コンピュータ中におけるオーディオ情報の表現
コンピュータは、オーディオを表現する一連の数としてオーディオ情報を処理する。１つの数は、オーディオサンプルを表現することができ、このオーディオサンプルは、特定の時刻における振幅値である。いくつかのファクタは、サンプル深度（ｓａｍｐｌｅ  ｄｅｐｔｈ）およびサンプリングレートを含めて、オーディオの品質に影響を及ぼす。
【０００４】
サンプル深度（または精度）は、サンプルを表現するために使用される数の範囲を示す。各サンプルについてのより多くの可能な値は、振幅のより微妙な変化が表現され得るので、一般的により高い品質出力を与える。８ビットサンプルは、２５６個の可能な値を有するが、１６ビットサンプルは、６５，５３６個の可能な値を有する。
【０００５】
（通常毎秒当たりのサンプルの数として測定される）サンプリングレートは、また品質にも影響を及ぼす。サンプリングレートが高くなればなるほど、サウンドのより多くの周波数を表現することができるので、品質はより高くなる。一般的な一部のサンプリングレートは、８，０００サンプル／秒（Ｈｚ）、１１，０２５サンプル／秒（Ｈｚ）、２２，０５０サンプル／秒（Ｈｚ）、３２，０００サンプル／秒（Ｈｚ）、４４，１００サンプル／秒（Ｈｚ）、４８，０００サンプル／秒（Ｈｚ）、および９６，０００サンプル／秒（Ｈｚ）である。表１は、異なる品質レベルを有するオーディオのいくつかのフォーマットを対応する生ビットレートコスト（ｒａｗ  ｂｉｔ  ｒａｔｅ  ｃｏｓｔ）と一緒に示している。
【０００６】
【表１】
0005186054.tif 000002
【０００７】
表１が示すように、高品質オーディオのコストは、高いビットレートである。高品質のオーディオ情報は、大容量のコンピュータストレージと伝送容量を消費する。多数のコンピュータおよびコンピュータネットワークでは、生のデジタルオーディオを処理するリソースが欠如している。（符号化またはコーディングとも呼ばれる）圧縮（ｃｏｍｐｒｅｓｓｉｏｎ）は、情報をより低いビットレート形式へと変換することによってオーディオ情報を記憶し伝送するコストを低減させる。圧縮は、（品質が悪化しない）無損失（ｌｏｓｓｌｅｓｓ）にすることもでき、あるいは（品質が悪化するが、後続の無損失圧縮からのビットレート低下がより劇的である）損失がある（ｌｏｓｓｙ）ようにすることもできる。（復号化とも呼ばれる）伸張（ｄｅｃｏｍｐｒｅｓｓｉｏｎ）は、圧縮された形式から元の情報の再構築されたバージョンを抽出する。コーデックとは、エンコーダ／デコーダシステム（ｅｎｃｏｄｅｒ／ｄｅｃｏｄｅｒ  ｓｙｓｔｅｍ）のことである。
【０００８】
ＩＩ．スピーチのエンコーダおよびデコーダ
オーディオ圧縮の１つの目標は、オーディオ信号をデジタルで表現して、与えられた量のビットについての最大の信号品質を実現することである。別の言い方をすれば、この目標は、与えられた品質レベルについて最小のビットを用いてオーディオ信号を表現することである。伝送エラーに対する回復力や符号化／伝送／復号化に起因した全体的な遅延を制限することなど、他の目標は、一部のシナリオにおいて当てはまる。
【０００９】
異なる種類のオーディオ信号は、異なる特徴を有する。音楽は、より大きな範囲の周波数および振幅によって特徴づけられ、多くの場合に２つ以上のチャネルを含んでいる。他方では、スピーチは、より小さな範囲の周波数および振幅によって特徴づけられ、一般に１つのチャネル中において表現される。ある種のコーデックおよび処理技法は、音楽および一般的なオーディオ用に適応させられ、他のコーデックおよび処理技法は、スピーチ用に適応させられる。
【００１０】
１つのタイプの従来のスピーチコーデックは、線形予測を使用して圧縮を達成する。そのスピーチ符号化は、いくつかのステージを含んでいる。エンコーダは、線形予測フィルタについての係数を見出し量子化し、この線形予測フィルタを使用して、処理サンプル値の線形結合（ｌｉｎｅａｒ  ｃｏｍｂｉｎａｔｉｏｎ）としてサンプル値を予測する。（「励起（ｅｘｃｉｔａｔｉｏｎ）」信号として表現される）残留信号は、フィルタリングによって正確に予測されない元の信号の一部分を示す。異なる種類のスピーチは異なる特徴を有するので、一部のステージにおいて、スピーチコーデックは、（声帯の振動によって特徴づけられた）有声セグメント（ｖｏｉｃｅｄ  ｓｅｇｍｅｎｔ）、無声セグメント（ｕｎｖｏｉｃｅｄ  ｓｅｇｍｅｎｔ）、および無音セグメント（ｓｉｌｅｎｔ  ｓｅｇｍｅｎｔ）についての異なる圧縮技法を使用する。有声セグメントは、一般的に残留ドメイン中においてさえ非常に反復の多い有声パターン（ｖｏｉｃｉｎｇ  ｐａｔｔｅｒｎ）を示す。有声セグメントでは、エンコーダは、現行の残留信号を以前の残留サイクルと比較し、現行の残留信号を以前のサイクルに対する遅延または遅れの情報の観点から符号化することによりさらなる圧縮を達成する。エンコーダは、元の信号と特別に設計されたコードブックを使用した予測され符号化された表現との間の他の不一致を処理する。
【００１１】
多数のスピーチコーデックは、何らかの方法で信号中における時間的冗長性を活用する。前述のように、１つの一般的な方法は、ピッチパラメータの長期予測を使用して、以前の励起サイクルに対する遅延または遅れの観点から現行の励起信号を予測する。時間的冗長性を活用することは、ビットレートの品質の観点から圧縮効率を非常に改善することができるが、コーデックにメモリ依存性を導入することを犠牲にしており−デコーダは、信号の以前に復号化された一部分を用いて、信号の別の部分を正しく復号化する。多数の効率のよいスピーチコーデックは、かなりのメモリ依存性を有する。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
前述されるようなスピーチコーデックは、多数の用途について全体的なよい性能を有するが、それらにはいくつかの欠点がある。とりわけ、それらのスピーチコーデックがダイナミックネットワークリソースに関連して使用される場合に、いくつかの欠点が表面化する。そのようなシナリオにおいては、符号化されたスピーチは、一時的な帯域幅不足または他の問題のために失われる可能性がある。
【００１３】
Ａ．狭帯域コーデックおよび広帯域コーデック
多数の標準的なスピーチコーデックが、８ｋＨｚサンプリングレートを有する狭帯域信号用に設計された。８ｋＨｚサンプリングレートは、多数の状況において十分であるが、より高いサンプリングレートが、より高い周波数を表現するためなど他の状況においては望ましいこともある。
【００１４】
少なくとも１６ｋＨｚのサンプリングレートを有するスピーチ信号は、一般的に広帯域スピーチと呼ばれる。これらの広帯域コーデックは、高い周波数スピーチパターンを表現するために望ましいこともあるが、それらは一般的に狭帯域コーデックよりも高いビットレートを必要とする。そのようなより高いビットレートは、一部のタイプのネットワーク中において、または一部のネットワーク状態の下では実現可能でないこともある。
【００１５】
Ｂ．ダイナミックネットワーク状態中における非効率なメモリ依存性
伝送中にまたはどこかで、失われ、遅延させられ、破損させられ、別の方法で使用できないようにされるなどにより、符号化されたスピーチが失われている場合には、スピーチコーデックの性能は、失われる情報に対するメモリ依存性に起因して悪化する可能性がある。励起信号についての情報の損失は、その失われた信号に依存する後になってからの再構築を妨害する。以前のサイクルが失われる場合に、遅延情報は、それが、デコーダがもたない情報を指すので、役に立たないこともある。メモリ依存性の別の例は、（とりわけ有声信号では、異なる合成フィルタ（ｓｙｎｔｈｅｓｉｓ  ｆｉｌｔｅｒ）の間における遷移を滑らかにするために使用される）フィルタ係数補間（ｆｉｌｔｅｒ  ｃｏｅｆｆｉｃｉｅｎｔ  ｉｎｔｅｒｐｏｌａｔｉｏｎ）である。フレームについてのフィルタ係数が失われる場合には、後続のフレームについてのフィルタ係数は、正しくない値を有することもある。
【００１６】
デコーダは、様々な技法を使用して、パケット損失および他の情報損失に起因したエラーを隠すが、これらの秘匿技法（ｃｏｎｃｅａｌｍｅｎｔ  ｔｅｃｈｎｉｑｕｅ）は、めったに十分にはエラーを隠さない。例えば、デコーダは、正しく復号化された情報に基づいて以前のパラメータを反復し、あるいはパラメータを推定する。遅延情報は、しかしながら非常に影響を受けやすい可能性があり、先行する技法は、秘匿のために特に有効ではない。
【００１７】
ほとんどの場合において、デコーダは、最終的に失われた情報に起因したエラーから回復する。パケットが受信され復号化されるときに、パラメータは、それらの正しい値に向かって徐々に調整される。しかしながら、品質は、デコーダが、正しい内部状態を回復することができるまで悪化される可能性が高い。ほとんどの効率的なスピーチコーデックのうちの多くでは、再生品質は、拡張された期間（例えば、１秒まで）にわたって悪化させられ、高いひずみを引き起こし、多くの場合にスピーチを理解できないようにレンダリングする（ｒｅｎｄｅｒ）こともある。回復時間は、これが、多数のパラメータについての自然のリセットポイントを提供するので、無音フレームなど、かなりの変化が生じる場合に、より速くなる。一部のコーデックは、それらがフレーム間依存性を取り除くので、パケット損失に対してより堅牢である。しかし、そのようなコーデックは、フレーム間依存性を有する伝統的なＣＥＬＰコーデックと同じ音声品質を達成するためにかなり高いビットレートを必要とする。
【００１８】
コンピュータシステム中におけるスピーチ信号を表現することに対する圧縮および伸張の重要性を考えると、スピーチの圧縮および伸張は研究アクティビティおよび規格化アクティビティを引き寄せてきていることは驚くべきことではない。しかしながら、先行する技法およびツールの利点が何であったとしても、それらは、本明細書中に説明される技法およびツールの利点を有してはいない。
【課題を解決するための手段】
【００１９】
要約すれば、本詳細な説明は、オーディオコーデックについての様々な技法およびツールを対象としており、特にサブバンドコーディング、オーディオコーデックコードブック、および／または冗長コーディングに関連したツールおよび技法を対象としている。説明される実施形態は、それだけには限定されないが以降を含めて１つまたは複数の説明される技法およびツールを実施している。
【００２０】
一態様においては、オーディオ信号についてのビットストリームは、現行のフレームを復号化する際に使用されるべき以前のフレームのセグメントを参照する現行のフレームについてのメインの符号化された情報と、現行のフレームを復号化するための冗長符号化された情報とを含んでいる。冗長符号化された情報は、以前のフレームの参照されるセグメントに関連する信号履歴情報（ｓｉｇｎａｌ  ｈｉｓｔｏｒｙ  ｉｎｆｏｒｍａｔｉｏｎ）を含んでいる。
【００２１】
別の態様においては、オーディオ信号についてのビットストリームは、現行の符号化されたユニットを復号化する際に使用されるべき以前の符号化されたユニットのセグメントを参照する現行の符号化されたユニットについてのメインの符号化された情報と、現行の符号化されたユニットを復号化するための冗長符号化された情報とを含んでいる。その冗長符号化された情報は、以前の符号化されたユニットが使用可能でない場合だけに、現行の符号化された符号化されたユニットを復号化する際に使用されるべき１つまたは複数の余分なコードブックステージについての１つまたは複数のパラメータを含んでいる。
【００２２】
別の態様においては、ビットストリームは、複数の符号化されたオーディオユニットを含んでおり、符号化された各ユニットは、フィールドを含んでいる。そのフィールドは、符号化されたユニットが、オーディオ信号のセグメントを表現するメインの符号化された情報を含んでいるかどうかと、符号化されたユニットが、メインの符号化された情報を復号化する際に使用するための冗長符号化された情報を含んでいるかどうかを示す。
【００２３】
別の態様においては、オーディオ信号は、複数の周波数サブバンドへと分解される。各サブバンドは、コード励起された線形予測モデルに従って符号化される。ビットストリームは、おのおのがオーディオ信号のセグメントを表現する複数の符号化されたユニットを含むことができ、ここで複数の符号化されたユニットは、周波数サブバンドの第１の数を表す第１の符号化されたユニットと、周波数サブバンドの第２の数を表す第２の符号化されたユニットとを含み、サブバンドの第２の数は、第１の符号化されたユニットまたは第２の符号化されたユニットについてのサブバンド情報の脱落に起因してサブバンドの第１の数とは異なっている。第１のサブバンドは、第１の符号化モードに従って符号化することができ、第２のサブバンドは、異なる第２の符号化モードに従って符号化することができる。第１の符号化モードと第２の符号化モードは、異なる数のコードブックステージを使用することができる。各サブバンドは、別々に符号化することができる。さらに、リアルタイムスピーチエンコーダは、オーディオ信号を複数の周波数サブバンドへと分解すること、および複数の周波数サブバンドを符号化することを含めて、ビットストリームを処理することができる。ビットストリームを処理することは、複数の周波数サブバンドを復号化すること、および複数の周波数サブバンドを合成することを含むことができる。
【００２４】
別の態様においては、オーディオ信号についてのビットストリームは、オーディオ信号の第１のセグメントを表現するための、第１の組の複数の固定されたコードブックステージを含む第１のグループのコードブックステージについてのパラメータを含んでいる。第１の組の複数の固定されたコードブックステージは、複数のランダムな固定されたコードブックステージを含むことができる。固定されたコードブックステージは、パルスコードブックステージとランダムコードブックステージを含むことができる。第１のグループのコードブックステージは、適応コードブックステージをさらに含むことができる。ビットストリームは、オーディオ信号の第２のセグメントを表現する、第１のグループとは異なる数のコードブックステージを有する第２のグループのコードブックステージについてのパラメータをさらに含むことができる。第１のグループのコードブックステージ中におけるコードブックステージの数は、オーディオ信号の第１のセグメントの１つまたは複数の特性を含めて１つまたは複数のファクタに基づいて選択することができる。第１のグループのコードブックステージ中におけるコードブックステージの数は、エンコーダとデコーダとの間のネットワーク伝送状態を含めて１つまたは複数のファクタに基づいて選択することができる。ビットストリームは、複数の固定されたコードブックステージのおのおのについて別個のコードブックインデックスおよび別個の利得を含むことができる。別々の利得を使用することは、信号マッチングを実行することができ、別々のコードブックインデックスを使用することは、コードブック検索を簡単にすることができる。
【００２５】
別の態様においては、ビットストリームは、適応コードブックを使用してパラメタライズ化可能な複数のユニットのおのおのについて、適応コードブックパラメータがそのユニットについて使用されるか否かを示すフィールドを含んでいる。それらのユニットは、オーディオ信号の複数のフレームのサブフレームとすることができる。リアルタイムスピーチエンコーダなどのオーディオ処理ツールは、各ユニット中において適応コードブックパラメータを使用すべきかどうかを決定することを含めてビットストリームを処理することができる。適応コードブックパラメータを使用すべきかどうかを決定することは、適応コードブック利得がしきい値より上にあるかどうかを決定することを含むことができる。また、適応コードブックパラメータを使用すべきかどうかを決定することは、フレームの１つまたは複数の特性を評価することを含むこともできる。さらに、適応コードブックパラメータを使用すべきかどうかを決定することは、エンコーダとデコーダとの間の１つまたは複数のネットワーク伝送特性を評価することを含むことができる。フィールドは、有声ユニット当たりの１ビットフラグとすることができる。フィールドは、オーディオ信号の音声フレームのサブフレーム当たりの１ビットフラグとすることができ、フィールドは、他のタイプのフレームでは含められなくてもよい。
【００２６】
様々な技法およびツールは、組み合わせて、または独立に使用することができる。
【００２７】
追加の特徴および利点は、添付図面を参照して進められる異なる実施形態の以降の詳細な説明から明らかにされるであろう。
【図面の簡単な説明】
【００２８】
【図１】１つまたは複数の説明される実施形態を実施することができる適切なコンピューティング環境のブロック図である。
【図２】それに関連して１つまたは複数の説明される実施形態を実施することができるネットワーク環境のブロック図である。
【図３】サブバンド符号化のために使用することができるサブバンド構成についての１組の周波数応答を示すグラフである。
【図４】それに関連して１つまたは複数の説明される実施形態を実施することができるリアルタイムスピーチ帯域エンコーダのブロック図である。
【図５】一実施形態中におけるコードブックパラメータの決定を示す流れ図である。
【図６】それに関連して１つまたは複数の説明される実施形態を実施することができるリアルタイムスピーチ帯域デコーダのブロック図である。
【図７】現行のフレーム、および先行フレームの再符号化された一部分を含む励起信号履歴の図である。
【図８】一実施形態中における余分なランダムコードブックステージについてのコードブックパラメータの決定を示す流れ図である。
【図９Ａ】余分なランダムコードブックステージを使用したリアルタイムスピーチ帯域デコーダのブロック図である。
【図９Ｂ】余分なランダムコードブックステージを使用したリアルタイムスピーチ帯域デコーダのブロック図である。
【図１０】一部の実施形態と共に使用することができる異なる冗長コーディング技法についての情報を含むフレームについてのビットストリームフォーマットの図である。
【図１１】一部の実施形態と共に使用することができる冗長コーディング情報を有するフレームを含むパケットについてのビットストリームフォーマットの図である。
【発明を実施するための形態】
【００２９】
説明される実施形態は、符号化および復号化に際してのオーディオ情報を処理するための技法およびツールを対象としている。これらの技法を用いて、リアルタイムスピーチコーデックなどのスピーチコーデックから導き出されるスピーチの品質が改善される。そのような改善は、別々にまたは組み合わされて様々な技法およびツールの使用からもたらされ得る。
【００３０】
そのような技法およびツールは、ＣＥＬＰなどの線形予測技法を使用したサブバンドの符号化および／または復号化を含むことができる。
【００３１】
それらの技法はまた、パルスおよび／またはランダムの固定されたコードブックを含めて、固定されたコードブックの複数のステージを有することを含むこともできる。コードブックステージの数は、与えられたビットレートについての品質を最大にするために変化させることができる。さらに、適応コードブックは、望ましいビットレートや現行のフレームまたはサブフレームの特徴などのファクタに応じてオンまたはオフに切り換えることができる。
【００３２】
さらにフレームは、現行のフレームが依存している以前のフレームの一部分またはすべてについての冗長符号化された情報を含むこともできる。この情報をデコーダによって使用して、以前のフレームが失われている場合に、何度も送信されるべき全体の以前のフレームを必要とせずに、現行のフレームを復号化することができる。そのような情報は、現行または以前のフレームと同じビットレートで、あるいはもっと低いビットレートで符号化することができる。さらに、そのような情報は、励起信号の望ましい部分の全体的な再符号化をすることではなくて、励起信号の望ましい部分を近似するランダムコードブック情報を含むことができる。
【００３３】
様々な技法についてのオペレーションは、提示のために特定の逐次的な順序で説明されるが、説明のこの方法は、特定の順序付けが必要とされない限り、オペレーションの順序の小さな再構成を包含することを理解すべきである。例えば、逐次的に説明されるオペレーションは、一部の場合には再構成することもでき、あるいは同時に実行することもできる。さらに、簡単のためにフローチャートは、個々の技法を他の技法に関連して使用することができる様々な方法を示していないこともある。
【００３４】
Ｉ．コンピューティング環境
図１は、１つまたは複数の説明される実施形態を実施することができる適切なコンピューティング環境（１００）の一般化された一例を示している。本発明は、様々な汎用コンピューティング環境または専用コンピューティング環境中において実施することができるので、コンピューティング環境（１００）は、本発明の使用または機能の範囲に関するどのような限定も示唆するようには意図されない。
【００３５】
図１を参照すると、コンピューティング環境（１００）は、少なくとも１つの処理装置（１１０）およびメモリ（１２０）を含んでいる。図１において、この最も基本的なコンフィギュレーション（１３０）は、破線内に含まれる。処理装置（１１０）は、コンピュータ実行可能命令を実行し、実プロセッサまたは仮想プロセッサとすることができる。マルチ処理システムにおいては、複数の処理装置は、コンピュータ実行可能命令を実行して、処理能力を増大させる。メモリ（１２０）は、揮発性メモリ（例えば、レジスタ、キャッシュ、ＲＡＭなど）、不揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリなど）、またはそれら２つの何らかの組合せとすることができる。メモリ（１２０）は、スピーチエンコーダまたはスピーチデコーダについてのサブバンドコーディング、マルチステージコードブック、および／または冗長コーディング技法を実施するソフトウェア（１８０）を記憶する。
【００３６】
コンピューティング環境（１００）は、追加の機能を有することができる。図１において、コンピューティング環境（１００）は、ストレージ（１４０）、１つまたは複数の入力デバイス（１５０）、１つまたは複数の出力デバイス（１６０）、および１つまたは複数の通信接続（１７０）を含んでいる。バス、コントローラ、ネットワークなどの相互接続メカニズム（図示されず）は、コンピューティング環境（１００）のコンポーネントを相互接続する。一般的に、オペレーティングシステムソフトウェア（図示されず）は、コンピューティング環境（１００）中において実行される他のソフトウェアについての動作環境を提供し、コンピューティング環境（１００）のコンポーネントのアクティビティを調整する。
【００３７】
ストレージ（１４０）は、着脱可能または着脱不能とすることができ、情報を記憶するために使用することができ、コンピューティング環境（１００）内でアクセスすることができる、磁気ディスク、磁気テープまたは磁気カセット、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、あるいは他の任意の媒体を含むことができる。ストレージ（１４０）は、ソフトウェア（１８０）のための命令を記憶する。
【００３８】
１つ（または複数）の入力デバイス（１５０）は、コンピューティング環境（１００）に対する入力を供給する、キーボード、マウス、ペン、トラックボールなどのタッチ入力デバイス、音声入力デバイス、スキャニングデバイス、ネットワークアダプタ、または別のデバイスとすることができる。オーディオでは、１つ（または複数）の入力デバイス（１５０）は、オーディオ入力をアナログ形式またはデジタル形式で受け入れるサウンドカード、マイクロフォン、または他のデバイス、あるいはコンピューティング環境（１００）に対してオーディオサンプルを供給するＣＤ／ＤＶＤリーダとすることができる。１つ（または複数）の出力デバイス（１６０）は、コンピューティング環境（１００）からの出力を供給するディスプレイ、プリンタ、スピーカ、ＣＤ／ＤＶＤ−ライタ、ネットワークアダプタ、または別のデバイスとすることができる。
【００３９】
１つ（または複数）の通信接続（１７０）は、別のコンピューティングエンティティに対する通信媒体上での通信を可能にする。その通信媒体は、被変調データ信号中におけるコンピュータ実行可能命令、圧縮されたスピーチ情報、他のデータなどの情報を搬送する。被変調データ信号は、信号中における符号化情報について、その特性のうちの１つまたは複数が、そのような方法で設定されまたは変更されている信号である。例として限定ではないが、通信媒体は、電気キャリア（搬送）、光キャリア、ＲＦキャリア、赤外線キャリア、音響キャリア、または他のキャリアを用いて実施される有線技法または無線技法を含んでいる。
【００４０】
本発明は、コンピュータ読取り可能媒体の一般的な場合について説明することができる。コンピュータ読取り可能媒体は、コンピューティング環境内でアクセスすることができる使用可能な任意の媒体である。例として限定ではないが、コンピューティング環境（１００）では、コンピュータ読取り可能媒体は、メモリ（１２０）、ストレージ（１４０）、通信媒体、および以上の任意の物の組合せを含んでいる。
【００４１】
本発明は、ターゲットの実プロセッサまたは仮想プロセッサ上のコンピューティング環境中において実行されている、プログラムモジュール中に含まれる命令などコンピュータ実行可能命令の一般的な場合において説明することができる。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実施するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などを含んでいる。プログラムモジュールの機能は、様々な実施形態中において必要に応じてプログラムモジュール間で組合せ、または分離することができる。プログラムモジュールについてのコンピュータ実行可能命令は、ローカルコンピューティング環境内または分散コンピューティング環境内で実行することができる。
【００４２】
提示のために、詳細な説明は、「決定する（ｄｅｔｅｒｍｉｎｅ）」、「生成する（ｇｅｎｅｒａｔｅ）」、「調整する（ａｄｊｕｓｔ）」および「適用する（ａｐｐｌｙ）」のような用語を使用して、コンピューティング環境中におけるコンピュータオペレーションを説明している。これらの用語は、コンピュータによって実行されるオペレーションの高レベルの抽象化であるが、人間によって実行される動作と混同すべきではない。これらの用語に対応する実際のコンピュータオペレーションは、実施形態に応じて変化する。
【００４３】
ＩＩ．一般化されたネットワーク環境とリアルタイムスピーチコーデック
図２は、それに関連して１つまたは複数の説明される実施形態を実施することができる一般化されたネットワーク環境（２００）のブロック図である。ネットワーク（２５０）は、様々なエンコーダ側コンポーネントを様々なデコーダ側コンポーネントから分離する。
【００４４】
エンコーダ側コンポーネントとデコーダ側コンポーネントの主要なファンクションは、それぞれスピーチ符号化とスピーチ復号化である。エンコーダ側においては、入力バッファ（２１０）は、スピーチ入力（２０２）を受け入れ、記憶する。スピーチデコーダ（２３０）は、入力バッファ（２１０）からスピーチ入力（２０２）を取り込み、それを符号化する。
【００４５】
特に、フレームスプリッタ（ｆｒａｍｅ  ｓｐｌｉｔｔｅｒ）（２１２）は、スピーチ入力（２０２）のサンプルをフレームへと分離する。一実施形態においては、フレームは、一様な２０ｍｓの長さ−８ｋＨｚ入力では１６０個のサンプルであり、１６ｋＨｚ入力では３２０個のサンプルである。他の実施形態においては、フレームは、異なる存続期間を有し、非一様もしくはオーバーラップしており、または入力（２０２）のサンプリングレートが異なっており、あるいはその両方である。フレームは、符号化および復号化の異なるステージでは、スーパーフレーム／フレーム、フレーム／サブフレーム、または他のコンフィギュレーションの形で構成することができる。
【００４６】
フレーム分類器（ｆｒａｍｅ  ｃｌａｓｓｉｆｉｅｒ）（２１４）は、サブフレームまたは全体フレームについての信号のエネルギー、ゼロ交差レート、長期予測利得、利得差（ｇａｉｎ  ｄｉｆｆｅｒｅｎｔｉａｌ）および／または他の判断基準など１つまたは複数の判断基準に従ってフレームを分類する。その判断基準に基づいて、フレーム分類器（２１４）は、異なるフレームを無音、無声、有声、遷移（例えば、無声から有声）などのクラスへと分類する。さらに、フレームは、もしあればそのフレームについて使用される冗長コーディングのタイプに従って分類することができる。フレームクラスは、フレームを符号化するために計算されることになるパラメータに影響を及ぼす。さらに、フレームクラスは、パラメータを符号化する分解能および損失回復力に影響を及ぼして、より重要なフレームクラスおよびパラメータに対してより高い分解能および損失回復力を与える。例えば、無音フレームは、一般的に非常に低いレートで符号化され、失われる場合に秘匿によって回復することが非常に簡単であり、損失に対する保護を必要としないこともある。無声フレームは、一般的にやや高いレートで符号化され、失われる場合に秘匿によって回復することが妥当に簡単であり、損失に対してあまり保護されない。有声フレームおよび遷移フレームは、通常はフレームの複雑さならびに遷移の存在に応じて、より多数のビットを用いて符号化される。有声フレームおよび遷移フレームはまた、失われる場合に回復することが困難でもあり、それ故に損失に対してもっと顕著に保護される。代わりに、フレーム分類器（２１４）は、他および／または追加のフレームクラスを使用することもある。
【００４７】
入力スピーチ信号は、ＣＥＬＰ符号化モデルなどの符号化モデルをフレームについてのサブバンド情報に対して適用する前にサブバンド信号へと分割することができる。これは、一連の１つまたは複数の（ＱＭＦ解析フィルタなど）解析フィルタバンク（２１６）を使用して行うことができる。例えば、３帯域構成が使用されるべき場合には、次いで低周波数帯域は、ローパスフィルタ（ｌｏｗ−ｐａｓｓ  ｆｉｌｔｅｒ）を介して信号を通過させることにより分離して取り出すことができる。同様に、高帯域は、ハイパスフィルタ（ｈｉｇｈ  ｐａｓｓ  ｆｉｌｔｅｒ）を介して信号を通過させることにより分離して取り出すことができる。中間帯域は、帯域通過フィルタ（ｂａｎｄ  ｐａｓｓ  ｆｉｌｔｅｒ）を介して信号を通過させることにより、分離して取り出すことができ、この帯域通過フィルタは、直列のローパスフィルタとハイパスフィルタを含むことができる。代わりにサブバンド分解および／または（例えば、フレーム分離の前の）フィルタリングのタイミングについての他のタイプのフィルタ構成を使用することもできる。１つの帯域だけが、その信号の一部分について復号化されるべき場合には、その部分は解析フィルタバンク（２１６）をバイパスすることができる。ＣＥＬＰ符号化は、一般的にスピーチ信号についてＡＤＰＣＭおよびＭＬＴよりも高いコーディング効率を有する。
【００４８】
帯域の数ｎは、サンプリングレートによって決定することができる。例えば、一実施形態においては、単一帯域構成は、８ｋＨｚサンプリングレートについて使用される。１６ｋＨｚおよび２２．０５ｋＨｚのサンプリングレートでは、図３に示されるように３帯域構成を使用することができる。図３の３帯域構成においては、低周波数帯域（３１０）は、全帯域幅Ｆの２分の１（０から０．５Ｆまで）広がる。帯域幅の他方の２分の１は、中間帯域（３２０）と高帯域（３３０）の間に等しく分割される。帯域の交差する点の近くでは、帯域についての周波数応答は、通過レベルから停止レベルまで徐々に減少することもあり、この停止レベルは、この交差する点が近づくときに両方の側上の信号の減衰によって特徴づけられる。周波数帯域幅の他の分割を使用することもできる。例えば、３２ｋＨｚサンプリングレートでは、等しい間隔をおいて配置された４帯域構成を使用することができる。
【００４９】
信号エネルギーは、一般的により高い周波数範囲に向かって減衰していくので、低周波数帯域は、一般的にスピーチ信号では最も重要な帯域である。したがって、低周波数帯域は、多くの場合に他の帯域よりもより多くのビットを使用して符号化される。単一帯域コーディング構成と比較すると、サブバンド構成は、より柔軟性があり、周波数帯域にまたがったビット分布／量子化ノイズのより良い制御を可能にする。したがって、知覚による音声品質は、サブバンド構成を使用することによりかなり改善されると考えられる。
【００５０】
図２においては、符号化コンポーネント（２３２、２３４）によって示されるように、各サブバンドは、別々に符号化される。帯域符号化コンポーネント（２３２、２３４）は別々に示されているが、すべての帯域の符号化は、単一エンコーダによって行うことができ、あるいはそれらは、別々のエンコーダによって符号化することができる。そのような帯域符号化は、図４を参照して以下により詳細に説明される。代わりに、コーデックは、単一帯域コーデックとして動作することもできる。
【００５１】
結果として生じる符号化されたスピーチは、マルチプレクサ（「ＭＵＸ」）（２３６）を介して１つまたは複数のネットワーキング層（２４０）についてのソフトウェアに対して供給される。ネットワーキング層（２４０）は、ネットワーク（２５０）上の伝送についての符号化されたスピーチを処理する。例えば、ネットワーク層ソフトウェアは、符号化されたスピーチ情報のフレームをＲＴＰプロトコルに続くパケット中へとパッケージ化し、これらのパケットは、インターネット上でＵＤＰ、ＩＰ、および様々な物理層プロトコルを使用して中継される。代わりに、ソフトウェアまたはネットワーキングプロトコルの他および／または追加の層も使用される。ネットワーク（２５０）は、インターネットなどの広域パケット交換網（ｗｉｄｅ  ａｒｅａ，ｐａｃｋｅｔ−ｓｗｉｔｃｈｅｄ  ｎｅｔｗｏｒｋ）である。代わりに、ネットワーク（２５０）は、ローカルエリアネットワーク（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）または他の種類のネットワークのこともある。
【００５２】
デコーダ側では、１つまたは複数のネットワーキング層（２６０）についてのソフトウェアは、伝送されたデータを受信し処理する。デコーダ側の１つ（または複数）のネットワーキング層（２６０）中におけるネットワーク層プロトコル、トランスポート層プロトコル、およびより高位の層のプロトコルは、通常、エンコーダ側の１つ（または複数）のネットワーキング層（２４０）中におけるプロトコルに対応する。１つ（または複数）のネットワーキング層は、デマルチプレクサ（ｄｅｍｕｌｔｉｐｌｅｘｅｒ）（「ＤＥＭＵＸ」）（２７６）を介して符号化されたスピーチ情報をスピーチデコーダ（２７０）に対して供給する。デコーダ（２７０）は、復号化モジュール（２７２、２７４）中に示されるように各サブバンドを別々に復号化する。すべてのサブバンドは、単一デコーダによって復号化することもでき、あるいはそれらは別々の帯域デコーダによって復号化することもできる。
【００５３】
次いで復号化されたサブバンドは、一連の１つまたは複数の（ＱＭＦ合成フィルタなどの）合成フィルタバンク（２８０）中において合成され、この合成フィルタバンクは、復号化されたスピーチ（２９２）を出力する。代わりに、サブバンド合成についての他のタイプのフィルタ構成も使用される。１つの帯域だけが存在する場合には、復号化された帯域は、フィルタバンク（２８０）をバイパスすることができる。
【００５４】
復号化されたスピーチ出力（２９２）は、１つまたは複数の後置フィルタ（２８４）を介して通過させて、結果として生じるフィルタがかけられたスピーチ出力（２９４）の品質を改善することができる。また各帯域は、フィルタバンク（２８０）に入力する前に１つまたは複数の後置フィルタを介して別々に通過させることもできる。
【００５５】
１つの一般化されたリアルタイムスピーチ帯域デコーダは、図６を参照して以下で説明されるが、他のスピーチデコーダを代わりに使用することもできる。さらに、説明されるツールおよび技法の一部または全部は、音楽のエンコーダやデコーダなどの他のタイプのオーディオのエンコーダおよびデコーダ、あるいは汎用のオーディオのエンコーダおよびデコーダと共に使用することもできる。
【００５６】
これらの主要な符号化ファンクションおよび復号化ファンクションを別として、コンポーネントはまた、（図２中における破線で示される）情報を共有して、符号化されたスピーチのレート、品質、および／または損失回復力を制御することもできる。レートコントローラ（ｒａｔｅ  ｃｏｎｔｒｏｌｌｅｒ）（２２０）は、入力バッファ（２１０）中における現行の入力の複雑度、エンコーダ（２３０）中または他のどこかにおける出力バッファのバッファ満杯度（ｂｕｆｆｅｒ  ｆｕｌｌｎｅｓｓ）、望ましい出力レート、現行のネットワーク帯域幅、ネットワーク輻輳／ノイズ状態、および／またはデコーダ損失レートなど、様々なファクタを考慮する。デコーダ（２７０）は、デコーダ損失レート情報をレートコントローラ（２２０）へとフィードバックする。１つ（または複数）のネットワーキング層（２４０、２６０）は、現行のネットワーク帯域幅および輻輳／ノイズ状態についての情報を収集し、または推定し、この情報は、レートコントローラ（２２０）へとフィードバックされる。代わりに、レートコントローラ（２２０）は、他および／または追加のファクタを考慮することもある。
【００５７】
レートコントローラ（２２０）は、スピーチが復号化されるレート、品質、および／または損失回復力を変更するようにスピーチエンコーダ（２３０）に指示する。エンコーダ（２３０）は、パラメータについての量子化ファクタを調整し、あるいはそれらのパラメータを表現するエントロピーコード（ｅｎｔｒｏｐｙ  ｃｏｄｅ）の分解能を変更することにより、レートおよび品質を変更することができる。さらに、エンコーダは、冗長コーディングのレートまたはタイプを調整することにより、損失回復力を変更することもできる。したがって、エンコーダ（２３０）は、ネットワーク状態に応じて主要な符号化ファンクションと損失回復力ファンクションの間のビットの割付けを変更することができる。
【００５８】
レートコントローラ（２２０）は、いくつかのファクタに基づいて各フレームの各サブバンドについての符号化モードを決定することができる。これらのファクタは、各サブバンドの信号特性と、ビットストリームバッファ履歴と、ターゲットビットレートを含むことができる。例えば、前述のように、一般的により少ないビットが、無声フレームや無音フレームなど、より簡単なフレームでは必要とされ、より多くのビットが、遷移フレームなど、より複雑なフレームでは必要とされる。さらに、より少ないビットが、高周波数帯域など、一部の帯域では必要とされることもある。さらに、ビットストリーム履歴バッファ中における平均ビットレートが、ターゲット平均ビットレートよりも少ない場合には、より高いビットレートを現行のフレームについて使用することができる。平均ビットレートがターゲット平均ビットレートよりも少ない場合には、より低いビットレートを現行のフレームについて選択して、平均ビットレートを低下させることができる。さらに、１つまたは複数の帯域は、１つまたは複数のフレームから削除することができる。例えば、中間周波数フレームおよび高周波数フレームは、無声フレームでは削除することができ、あるいはそれらは、期間にわたってのすべてのフレームから削除して、その時間中のビットレートを低下させることができる。
【００５９】
図４は、それに関連して１つまたは複数の説明される実施形態を実施することができる一般化されたスピーチ帯域エンコーダ（４００）のブロック図である。帯域エンコーダ（４００）は、一般に図２中における帯域符号化コンポーネント（２３２、２３４）のうちの任意の１つに対応する。
【００６０】
信号（例えば、現行のフレーム）が、複数の帯域中へと分離される場合、帯域エンコーダ（４００）は、フィルタバンク（または他のフィルタ）から帯域入力（４０２）を受け入れる。現行のフレームが複数の帯域中へと分離されない場合には、帯域入力（４０２）は、全体の帯域幅を表現するサンプルを含んでいる。帯域エンコーダは、符号化された帯域出力（４９２）を生成する。
【００６１】
信号が複数の帯域に分離される場合には、ダウンサンプリングコンポーネント（ｄｏｗｎｓａｍｐｌｉｎｇ  ｃｏｍｐｏｎｅｎｔ）（４２０）は、各帯域上でダウンサンプリングを実行することができる。一例として、サンプリングレートが１６ｋＨｚに設定され、各フレームが、存続期間が２０ｍｓである場合には、各フレームは、３２０個のサンプルを含んでいる。ダウンサンプリングが実行されず、フレームが図３に示される３帯域構成に分離された場合には、多数のサンプルの３回分（すなわち、帯域当たりに３２０サンプル、すなわち９６０個の全サンプル）が、そのフレームについて符号化され復号化されることになる。しかしながら、各帯域は、ダウンサンプリングすることができる。例えば、低周波数帯域（３１０）は、３２０サンプルから１６０サンプルへとダウンサンプリングすることができ、中間帯域（３２０）と高帯域（３３０）のおのおのは、３２０サンプルから８０サンプルへとダウンサンプリングすることができ、ここで帯域（３１０、３２０、３３０）は、それぞれ周波数範囲の２分の１、４分の１、および４分の１よりも広がる。（この実施形態におけるダウンサンプリング（４２０）の程度は、帯域（３１０、３２０、３３０）の周波数範囲に対して変化する。しかし、他の実施形態も可能である。後のステージにおいて、信号エネルギーが、一般的に周波数範囲が高くなれば減少するので、より少ないビットが、一般的により高い帯域では使用される。）したがって、これは、そのフレームについて符号化され復号化されるべき全部で３２０個のサンプルを提供する。
【００６２】
各帯域のこのダウンサンプリングを伴ってさえ、サブバンドコーデックは、それがより柔軟性があるので単一帯域コーデックよりも高い音声品質出力を生成することができることが考えられる。例えば、サブバンドコーデックは、全周波数スペクトルについて同じアプローチを使用するのでなくて、帯域ごとに量子化ノイズを制御する点でより柔軟性がある可能性がある。複数の帯域のおのおのは、（以下で説明されるようにコードブックステージの異なる数および／またはタイプなど）異なるプロパティを用いて符号化することができる。そのようなプロパティは、各サブバンドの信号特性と、ビットストリームバッファ履歴と、ターゲットビットレートを含めて、いくつかのファクタに基づいて前述のレート制御によって決定することができる。前述のように、一般的により少ないビットが、無声フレームや無音フレームなど、「簡単な」フレームについて必要とされ、より多いビットが、遷移フレームなど、「複雑な」フレームについて必要とされる。ビットストリーム履歴バッファ中における平均ビットレートが、ターゲットビットレートよりも低い場合、より高いビットレートを現行のフレームについて使用することができる。そうでなければ、より低いビットレートが、平均ビットレートを低下させるために選択される。サブバンドコーデックにおいては、各帯域は、同じ方法で全体の周波数スペクトルを特性づけるのでなく、この方法で特性づけ、それに応じて符号化することができる。さらに、レート制御は、１つまたは複数のフレームについての１つまたは複数のより高い周波数帯域を削除することにより、ビットレートを低減させることができる。
【００６３】
ＬＰ解析コンポーネント（ＬＰ  ａｎａｌｙｓｉｓ  ｃｏｍｐｏｎｅｎｔ）（４３０）は、線形予測係数（４３２）を計算する。一実施形態においては、ＬＰフィルタは、８ｋＨｚ入力では１０個の係数を、１６ｋＨｚ入力では１６個の係数を使用し、ＬＰ解析コンポーネント（４３０）は、各帯域についてフレーム当たりに１組の線形予測係数を計算する。代わりに、ＬＰ解析コンポーネント（４３０）は、各帯域についてフレーム当たりに、異なるロケーションに中心をおく２つのウィンドウのおのおのについて１組の、２組の係数を計算し、あるいは帯域当たりおよび／またはフレーム当たりに異なる数の係数を計算することもある。
【００６４】
ＬＰＣ処理コンポーネント（ＬＰＣ  ｐｒｏｃｅｓｓｉｎｇ  ｃｏｍｐｏｎｅｎｔ）（４３５）は、線形予測係数（４３２）を受け取り、処理する。一般的に、ＬＰＣ処理コンポーネント（４３５）は、より効率的な量子化および符号化のためにＬＰＣ値を異なる表現へと変換する。例えば、ＬＰＣ処理コンポーネント（４３５）は、ＬＰＣ値を線形スペクトル対（ｌｉｎｅａｒ  ｓｐｅｃｔｒａｌ  ｐａｉｒ）［「ＬＳＰ」］表現へと変換し、それらのＬＳＰ値は、（ベクトル量子化などにより）量子化され、符号化される。ＬＳＰ値は、内部で符号化し、あるいは他のＬＳＰ値から予測することができる。様々な表現、量子化技法、および符号化技法がＬＰＣ値について可能である。ＬＰＣ値は、パケット化および伝送のために（再構成のために必要とされる任意の量子化パラメータと他の情報と一緒に）符号化された帯域出力（４９２）の一部分として何らかの形式で提供される。エンコーダ（４００）中において後で使用するために、ＬＰＣ処理コンポーネント（４３５）は、（ＬＳＰ表現または別の表現と等価的になど）ＬＰＣ値についての補間を実行して、異なる組のＬＰＣ係数の間における、あるいはフレームの異なるサブフレームについて使用されるＬＰＣ係数の間における遷移を滑らかにすることができる。
【００６５】
合成（または「短期予測」）フィルタ（４４０）は、再構成されたＬＰＣ値（４３８）を受け入れ、それらをフィルタに組み込む。合成フィルタ（４４０）は、励起信号を受け取り、元の信号の近似値を生成する。与えられたフレームでは、合成フィルタ（４４０）は、予測の開始のために、以前のフレームからの再構成されたサンプルの数（例えば、１０タップフィルタでは１０）をバッファすることができる。
【００６６】
恒久的重み付けコンポーネント（ｐｅｒｃｅｐｔｕａｌ  ｗｅｉｇｈｔｉｎｇ  ｃｏｍｐｏｎｅｎｔ）（４５０、４５５）は、合成フィルタ（４４０）の元の信号とモデル化された出力に恒久的重み付けを適用して、スピーチ信号のフォルマント構造を選択的に逆強調して（ｄｅｅｍｐｈａｓｉｚｅ）、この聴覚システム（ａｕｄｉｔｏｒｙ  ｓｙｓｔｅｍ）を量子化エラーの影響をあまり受けないようにする。恒久的重み付けコンポーネント（４５０、４５５）は、マスキングなどの心理音響的現象（ｐｓｙｃｈｏａｃｏｕｓｔｉｃ  ｐｈｅｎｏｍｅｎａ）を活用する。一実施形態においては、恒久的重み付けコンポーネント（４５０、４５５）は、ＬＰ解析コンポーネント（４３０）から受け取られた元のＬＰＣ値（４３２）に基づいて重みを適用する。代わりに、恒久的重み付けコンポーネント（４５０、４５５）は、他および／または追加の重みを適用することもある。
【００６７】
恒久的重み付けコンポーネント（４５０、４５５）に従って、エンコーダ（４００）は、合成フィルタ（４４０）の恒久的に重み付けされた元の信号と恒久的に重み付けされた出力との間の差を計算して、差信号（４３４）を生成する。代わりに、エンコーダ（４００）は、異なる技法を使用してスピーチパラメータを計算することもある。
【００６８】
励起パラメータ化コンポーネント（ｅｘｃｉｔａｔｉｏｎ  ｐａｒａｍｅｔｅｒｉｚａｔｉｏｎ  ｃｏｍｐｏｎｅｎｔ）（４６０）は、（重み付けされた平均２乗誤差（ｍｅａｎ  ｓｑｕａｒｅ  ｅｒｒｏｒ）または他の判断基準の観点から）恒久的に重み付けされた元の信号と合成された信号との間の差を最小にする観点から適応コードブックインデックス、固定されたコードブックインデックス、および利得コードブックインデックスの最良の組合せを見出そうとする。多数のパラメータが、サブフレームごとに計算されるが、より一般的にはパラメータは、スーパーフレームごと、フレームごと、またはサブフレームごとのこともある。前述のように、フレームまたはサブフレームの異なる帯域についてのパラメータは、異なることもある。表２は、一実施形態における異なるフレームクラスについての使用可能なタイプのパラメータを示している。
【００６９】
【表２】
0005186054.tif 000003
【００７０】
図４において、励起パラメータ化コンポーネント（４６０）は、フレームをサブフレームへと分割し、必要に応じてサブフレームごとにコードブックのインデックスおよび利得を算出する。例えば、使用されるべきコードブックステージの数およびタイプと、コードブックインデックスの分解能は、符号化モードによって最初に決定することができ、ここでそのモードは、前述のようにレート制御コンポーネントによって指示することができる。特定のモードはまた、コードブックステージの数およびタイプ以外の符号化パラメータおよび復号化パラメータ、例えばコードブックインデックスの分解能を指示することもできる。各コードブックステージのパラメータは、パラメータを最適化して、ターゲット信号と、合成された信号に対するそのコードブックステージの寄与との間のエラーを最小にすることにより、決定される。（本明細書中において使用されるように、用語「最適化する」は、パラメータ空間上で完全な検索を実行することとは逆に、ひずみ低減化、パラメータ検索時間、パラメータ検索複雑度、パラメータのビットレートなどの適用可能な制約条件の下において適切なソリューションを見出すことを意味する。同様に、用語「最小にする」は、適用可能な制約条件の下で適切なソリューションを見出す観点から理解されるべきである。）例えば、最適化は、修正された平均２乗誤差技法を使用して行うことができる。ステージごとのターゲット信号は、残留信号と、以前のコードブックステージの、もしあれば合成された信号に対する寄与の合計との間の差である。代わりに、他の最適化技法を使用することもできる。
【００７１】
図５は、一実施形態による、コードブックパラメータを決定するための技法を示している。励起パラメータ化コンポーネント（４６０）は、もしかするとレートコントローラなど、他のコンポーネントに関連してその技法を実行する。代わりに、エンコーダ中における別のコンポーネントが、その技法を実行することもある。
【００７２】
図５を参照すると、有声フレームまたは遷移フレーム中におけるサブフレームごとに、励起パラメータ化コンポーネント（４６０）は、適応コードブックを現行のサブフレームについて使用することができるかどうかを決定する（５１０）。（例えば、レート制御は、適応コードブックが特定のフレームについて使用されるべきでないことを指示することができる。）適応コードブックが使用されるべきでない場合、次いで適応コードブックスイッチは、適応コードブックが使用されるべきでないことを示すことになる（５３５）。例えば、これは、フレームレベルにおいて特定のコーディングモデルを指定することにより、適応コードブックがそのフレーム中において使用されないことを示すフレームレベルで１ビットフラグを設定することにより、あるいは適応コードブックがそのサブフレーム中において使用されないことを示すサブフレームごとに１ビットフラグを設定することによって行うことができる。
【００７３】
例えば、レート制御コンポーネントは、フレームについての適応コードブックを除外し、それによってフレーム間の最も顕著なメモリ依存性を除去することができる。とりわけ有声フレームでは、典型的な励起信号は周期的パターンによって特徴づけられる。適応コードブックは、履歴バッファ中における励起のセグメントの位置を示す遅れを表すインデックスを含んでいる。以前の励起のセグメントは、励起信号に対する適応コードブックの寄与となるようにスケーリングされる。デコーダにおいては、適応コードブック情報は、一般的に励起信号を再構成する際に非常に重要である。以前のフレームが失われ、適応コードブックインデックスが以前のフレームのセグメントを戻って指す場合には、適応コードブックインデックスは、それが存在していない履歴情報を指すので、一般的に有用ではない。たとえ秘匿技法が、この失われた情報を回復するために実行されるとしても、さらなる再構築は、やはりその不完全に回復された信号に基づくことになる。これは、遅れ情報が一般的に影響を受けやすいので、そのフレーム中において継続するエラーを引き起こすことになる。
【００７４】
したがって、以降の適応コードブックによって用いられるパケットの損失は、多数のパケットが復号化された後だけに、あるいは適応コードブックのないフレームに遭遇される場合に次第に消えていく拡張された悪化をもたらす可能性がある。この問題は、フレーム間のメモリ依存性をもたないパケットストリーム中に、いわゆる「内部フレーム（ｉｎｔｒａ−ｆｒａｍｅ）」を定期的に挿入することにより減少させることができる。このようにして、エラーは、次の内部フレームまで伝搬するだけになる。したがって、適応コードブックのコーディング効率は通常、固定されたコードブックのコーディング効率よりも高いので、良好な音声品質と良好なパケット損失性能との間にトレードオフが存在する。レート制御コンポーネントは、特定のフレームについて適応コードブックを禁止することがいつ有利であるかを決定することができる。適応コードブックスイッチを使用して、特定のフレームについての適応コードブックの使用を防止し、それによって一般的に以前のフレームに対する最も重要な依存性となる物をなくすることができる（ＬＰＣ補間および合成フィルタメモリは、ある程度まで以前のフレームに依存することもある）。したがって、適応コードブックスイッチをレート制御コンポーネントが使用して、パケット損失レートなどのファクタに基づいて準内部フレームを動的に作成することができる（すなわち、パケット損失レートが高い場合には、より多くの内部フレームを挿入して、より高速なメモリリセットを可能にすることができる）。
【００７５】
依然として図５を参照すると、適応コードブックを使用することができる場合には、コンポーネント（４６０）は、適応コードブックパラメータを決定する。これらのパラメータは、励起信号履歴の望ましいセグメントを示すインデックスまたはピッチの値、ならびに望ましいセグメントに対して適用される利得を含んでいる。図４および５においては、コンポーネント（４６０）は、閉ループピッチ検索（ｃｌｏｓｅｄ  ｌｏｏｐ  ｐｉｔｃｈ  ｓｅａｒｃｈ）（５２０）を実行する。この検索は、図４中におけるオプションの開ループピッチ検索コンポーネント（４２５）によって決定されるピッチを用いて開始される。開ループピッチ検索コンポーネント（４２５）は、重み付けコンポーネント（４５０）によって生成される重み付けされた信号を解析して、そのピッチを推定する。この推定されるピッチと共に開始されて、閉ループピッチ検索（５２０）は、ピッチ値を最適化して、ターゲット信号と励起信号履歴の示されたセグメントから生成される重み付けされた合成信号との間のエラーを減少させる。適応コードブック利得値もまた最適化される（５２５）。適応コードブック利得値は、それらの値のスケールを調整するためにピッチ予測された値（励起信号履歴の示されたセグメントからの値）に対して適用される乗数（ｍｕｌｔｉｐｌｉｅｒ）を示す。ピッチ予測された値によって乗ぜられた利得は、現行のフレームまたはサブフレームについての励起信号に対する適応コードブックの寄与である。利得最適化（５２５）は、ターゲット信号と、適応コードブック寄与からの重み付けされた合成信号との間のエラーを最小にする利得値およびインデックス値を生成する。
【００７６】
ピッチ値および利得値が決定された後に、次いで適応コードブック寄与が、適応コードブックパラメータによって使用されるビット数を価値あるようにするのに十分意味があるかどうかが決定される（５３０）。適応コードブック利得がしきい値より小さい場合、適応コードブックは、オフにされて、以下で説明される固定されたコードブックについてのビットを節約する。一実施形態においては、０．３のしきい値が使用されるが、他の値が代わりにしきい値として使用されてもよい。一例として、現行の符号化モードが適応コードブックに加えて５つのパルスを有するパルスコードブックを使用する場合には、次いで適応コードブックがオフにされる場合に７パルスコードブックが、使用されてもよく、ビットの総数は、依然として同じまたはそれより少ないことになる。前述のように、サブフレームごとの１ビットフラグを使用して、サブフレームについての適応コードブックスイッチを示すことができる。したがって、適応コードブックが使用されない場合、スイッチは、適応コードブックがサブフレーム中において使用されないことを示すように設定される（５３５）。同様に、適応コードブックが使用される場合には、スイッチは、適応コードブックがサブフレーム中において使用され、適応コードブックパラメータがビットストリーム中において信号で伝えられること（５４０）を示すように設定される。図５は、その決定の後に信号で伝えることを示しているが、代わりに、信号は、この技法が、フレームまたはスーパーフレームについて終了するまでバッチ処理（ｂａｔｃｈ）されることもある。
【００７７】
励起パラメータ化コンポーネント（４６０）は、パルスコードブックが使用されるかどうかも決定する（５５０）。一実施形態においては、パルスコードブックの使用または非使用は、現行のフレームについての全体的なコーディングモードの一部分として示され、あるいは、それは、他の方法で示し、または決定することもできる。パルスコードブックは、励起信号に対して寄与すべき１つまたは複数のパルスを指定する、１タイプの固定されたコードブックである。パルスコードブックパラメータは、インデックスおよび符号の対を含んでいる（利得は正または負の可能性がある）。各対は、励起信号に含められるべきパルスを示し、インデックスは、パルスの位置を示し、符号は、パルスの極性を示す。パルスコードブック中に含められ、励起信号に寄与するように使用されるパルスの数は、コーディングモードに応じて変化する可能性がある。さらに、パルス数は、適応コードブックが使用されているか否かに依存することもある。
【００７８】
パルスコードブックが使用される場合には、次いでパルスコードブックパラメータは、示されるパルスの寄与と、ターゲット信号との間のエラーを最小にするように最適化される（５５５）。適応コードブックが使用されない場合には、次いでターゲット信号は、重み付けされた元の信号である。適応コードブックが使用される場合には、次いでターゲット信号は、重み付けされた元の信号と、適応コードブックの重み付けされた合成信号に対する寄与との間の差である。あるポイント（図示されず）において、パルスコードブックパラメータは、次いでビットストリーム中において信号で伝えられる。
【００７９】
励起パラメータ化コンポーネント（４６０）はまた、任意のランダムな固定されたコードブックステージが使用されるべきかどうかも決定する（５６５）。（もしあれば）ランダムコードブックステージの数は、現行のフレームについての全体的コーディングモードの一部分として示されるが、それは、別の方法で示し、決定することもできる。ランダムコードブックは、それが符号化する値についてのあらかじめ定義された信号モデルを使用する１タイプの固定されたコードブックである。コードブックパラメータは、信号モデルの示されるセグメントについての開始ポイントと、正または負となり得る符号とを含むことができる。示されるセグメントの長さまたは範囲は、一般的に固定され、それ故に一般的には信号で伝えられないが、代わりにその示されるセグメントの長さまたは範囲が、信号で伝えられることもある。利得は、示されたセグメント中の値によって乗ぜられて、励起信号に対する、ランダムコードブックの寄与を生成する。
【００８０】
少なくとも１つのランダムコードブックステージが使用される場合、次いでそのコードブックステージについてのコードブックステージパラメータは、ランダムコードブックステージの寄与とターゲット信号との間のエラーを最小にするように最適化される（５７０）。ターゲット信号は、重み付けされた元の信号と、適応コードブックステージ（もしあれば）、パルスコードブックステージ（もしあれば）、および以前に決定されたランダムコードブックステージ（もしあれば）の重み付けされた合成信号に対する寄与の合計との間の差である。次いであるポイント（図示されず）において、ランダムコードブックパラメータは、ビットストリーム中において信号で伝えられる。
【００８１】
次いで、コンポーネント（４６０）は、より多くの任意のランダムコードブックステージが使用されるべきかどうかを決定する（５８０）。使用されるべき場合、次いで次のランダムコードブックステージのパラメータが最適化され（５７０）、前述のように信号で伝えられる。これは、ランダムコードブックステージについてのすべてのパラメータが決定されるまで、継続される。すべてのランダムコードブックステージは、同じ信号モデルを使用することができるが、それらは、モデルとは異なるセグメントを示し、異なる利得値を有することになる可能性が高い。代わりに、異なる信号モデルを異なるランダムコードブックステージについて使用することもできる。
【００８２】
レートコントローラおよび／または他のコンポーネントによって決定されるように、各励起利得は、独立に量子化することもでき、あるいは２つ以上の利得は、一緒に量子化することもできる。
【００８３】
特定の順序が、様々なコードブックパラメータを最適化するために本明細書中で述べられてきているが、他の順序および最適化技法を使用することもできる。したがって、図５は、異なるコードブックパラメータの逐次的な計算を示すが、代わりに２つ以上の異なるコードブックパラメータが、（例えば、それらのパラメータを一緒に変化させ、何らかの非線形最適化技法に従って結果を評価することにより）一緒に最適化されることもある。さらに、コードブックの他のコンフィギュレーション、または他の励起信号パラメータを使用することもできる。
【００８４】
本実施形態中における励起信号は、適応コードブックステージと、パルスコードブックステージと、１つ（または複数）のランダムコードブックステージのうちの任意の寄与の合計である。代わりに、コンポーネント（４６０）は、励起信号についての他および／または追加のパラメータを計算することもできる。
【００８５】
図４を参照すると、励起信号についてのコードブックパラメータは、（図４中における破線で囲まれた）ローカルデコーダ（４６５）、ならびに帯域出力（４９２）に対して信号で伝えられ、あるいは別のやり方で供給される。したがって、帯域ごとに、エンコーダ出力（４９２）は、前述のＬＰＣ処理コンポーネント（４３５）からの出力、ならびに励起パラメータ化コンポーネント（４６０）からの出力を含んでいる。
【００８６】
出力（４９２）のビットレートは、コードブックによって使用されるパラメータに部分的に依存し、エンコーダ（４００）は、異なる組のコードブックインデックスの間で切り換え、埋め込まれたコーデックを使用し、または他の技法を使用することにより、ビットレートおよび／または品質を制御することができる。コードブックのタイプとステージとの異なる組合せは、異なるフレーム、帯域、および／またはサブフレームについての異なる符号化モードをもたらすことができる。例えば、無声フレームは、１つのランダムコードブックステージだけを使用することができる。適応コードブックとパルスコードブックは、低レートの有声フレームについて使用することができる。高レートフレームは、適応コードブックステージ、パルスコードブックステージ、および１つまたは複数のランダムコードブックステージを使用して符号化することができる。１つのフレーム中においては、すべてのサブバンドについてのすべての符号化モードの組合せを一緒にモードセットと呼ぶことができる。サンプリングレートごとに、異なるモードが異なるコーディングビットレートに対応した、いくつかのあらかじめ定義されたモードセットが存在することができる。レート制御モジュールは、フレームごとにモードセットを決定し、あるいはそのモードセットに影響を及ぼすことができる。
【００８７】
可能なビットレートの範囲は、説明される実施形態について非常に大きくすることができ、結果として生じる品質にかなりの改善をもたらすことができる。標準的なエンコーダにおいては、パルスコードブックのために使用されるビットの数は、変化させることもできるが、あまりにも多数のビットは、単に過度に高密度のパルスをもたらす可能性がある。同様に、ただ１つのコードブックが使用される場合には、より多くのビットを追加することにより、より大きな信号モデルを使用することができるようになる。しかし、これは、そのモデルの最適なセグメントについての検索の複雑さをかなり増大させる可能性がある。対照的に、追加のタイプのコードブックおよび追加のランダムコードブックステージは、（単一の組み合わされたコードブックを検索することと比べて）個々のコードブック検索の複雑さをあまり増大させずに、追加することができる。さらに、複数のランダムコードブックステージと複数のタイプの固定されたコードブックは、複数の利得ファクタを可能にし、これらの利得ファクタは、波形マッチングについてのより多くの柔軟性をもたらす。
【００８８】
依然として図４を参照すると、励起パラメータ化コンポーネント（４６０）の出力は、そのパラメータ化コンポーネント（４６０）によって使用されるコードブックに従ってコードブック再構成コンポーネント（ｃｏｄｅｂｏｏｋ  ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ  ｃｏｍｐｏｎｅｎｔ）（４７０、４７２、４７４、４７６）と利得適用コンポーネント（ｇａｉｎ  ａｐｐｌｉｃａｔｉｏｎ  ｃｏｍｐｏｎｅｎｔ）（４８０、４８２、４８４、４８６）によって受け取られる。コードブックステージ（４７０、４７２、４７４、４７６）と対応する利得適用コンポーネント（４８０、４８２、４８４、４８６）は、コードブックの寄与を再構成する。これらの寄与は、励起信号（４９０）を生成することが仮定され、この励起信号は、合成フィルタ（４４０）によって受け取られ、ここでその励起信号は、後続の線形予測が行われる「予測された」サンプルと一緒に使用される。励起信号の遅延部分はまた、後続の適応コードブックパラメータ（例えば、ピッチの寄与）を再構成するために、適応コードブック再構成コンポーネント（４７０）によって、また後続の適応コードブックパラメータ（例えば、ピッチインデックス値およびピッチ利得値）を計算する際に、パラメータ化コンポーネント（４６０）によって励起履歴信号として使用される。
【００８９】
図２に戻って参照すると、帯域ごとの帯域出力は、他のパラメータと一緒にＭＵＸ（２３６）によって受け入れられる。そのような他のパラメータは、他の情報のうちでもとりわけ、フレーム分類器（２１４）からのフレームクラス情報（２２２）とフレーム符号化モードを含んでいる。ＭＵＸ（２３６）は、他のソフトウェアに渡すためのアプリケーション層パケットを構成し、ＭＵＸ（２３６）は、ＲＴＰなどのプロトコルに従うパケットのペイロードにデータを入れる。ＭＵＸは、後のパケット中における順方向エラー訂正についてのパラメータの選択的反復を可能にするためにパラメータをバッファすることができる。一実施形態においては、ＭＵＸ（２３６）は、１つまたは複数の以前のフレームのすべてまたは一部分についての順方向エラー訂正情報と一緒に１つのフレームについてのメインの符号化されたスピーチ情報を単一パケットへと詰め込む。
【００９０】
ＭＵＸ（２３６）は、レート制御目的のための現行のバッファ満杯度などのフィードバックを提供する。より一般的には、（フレーム分類器（２１４）およびＭＵＸ（２３６）を含めて）エンコーダ（２３０）の様々なコンポーネントは、図２に示されるレートコントローラなどのレートコントローラ（２２０）に対して情報を供給することができる。
【００９１】
図２のビットストリームＤＥＭＵＸ（２７６）は、符号化されたスピーチ情報を入力として受け入れ、その情報を解析して、パラメータを識別し処理する。パラメータは、フレームクラス、ＬＰＣ値の何らかの表現、およびコードブックパラメータを含むことができる。フレームクラスは、他のどのパラメータが与えられたフレームについて存在するかを示すことができる。より一般的には、ＤＥＭＵＸ（２７６）は、エンコーダ（２３０）によって使用されるプロトコルを使用し、エンコーダ（２３０）がパケットに詰め込むパラメータを抽出する。動的パケット交換網上で受信されるパケットでは、ＤＥＭＵＸ（２７６）は、与えられた期間上のパケットレートの短期揺らぎを平滑化するジッタバッファ（ｊｉｔｔｅｒ  ｂｕｆｆｅｒ）を含んでいる。一部の場合には、デコーダ（２７０）は、バッファ遅延を調整し、遅延、品質制御、失われたフレームの秘匿などを復号化に統合するためにパケットが、いつバッファから読み出されるかを管理する。他の場合には、アプリケーション層コンポーネントは、ジッタバッファを管理し、ジッタバッファは、可変なレートで満たされ、一定または比較的一定のレートでデコーダ（２７０）によって使い尽くされる。
【００９２】
ＤＥＭＵＸ（２７６）は、一次的な符号化されたバージョンと、１つまたは複数の二次的なエラー訂正バージョンを含めて、与えられたセグメントについての複数のバージョンのパラメータを受信することができる。エラー訂正が失敗する場合に、デコーダ（２７０）は、正しく受け取られた情報に基づいてパラメータの反復や推定などの秘匿技法を使用する。
【００９３】
図６は、それに関連して１つまたは複数の説明される実施形態を実施することができる一般化されたリアルタイムスピーチ帯域デコーダ（６００）のブロック図である。帯域デコーダ（６００）は、一般に図２の帯域復号化コンポーネント（２７２、２７４）のうちの任意の１つに対応する。
【００９４】
帯域デコーダ（６００）は、（完全な帯域、または複数のサブバンドのうちの１つとすることができる）帯域についての符号化されたスピーチ情報（６９２）を入力として受け入れ、復号化後に再生成された出力（６０２）を生成する。デコーダ（６００）のコンポーネントは、エンコーダ（４００）中における対応するコンポーネントを有するが、全体的なデコーダ（６００）は、それには、恒久的な重み付け、励起処理ループおよびレート制御についてのコンポーネントが欠如しているので、より簡単である。
【００９５】
ＬＰＣ処理成分（６３５）は、帯域エンコーダ（４００）によって提供される形態におけるＬＰＣ値を表現する情報（ならびに任意の量子化パラメータおよび再構成のために必要とされる他の情報）を受け取る。ＬＰＣ処理コンポーネント（６３５）は、ＬＰＣ値に以前に適用された変換、量子化、符号化などの逆変換（ｉｎｖｅｒｓｅ）を使用して、ＬＰＣ値（６３８）を再構成する。ＬＰＣ処理コンポーネント（６３５）はまた、（ＬＰＣ表現、またはＬＳＰなど別の表現の）ＬＰＣ値についての補間を実行して、異なる組のＬＰＣ係数の間の遷移を滑らかにすることができる。
【００９６】
コードブックステージ（６７０、６７２、６７４、６７６）および利得適用コンポーネント（６８０、６８２、６８４、６８６）は、励起信号について使用される対応するコードブックステージのうちのどれかのパラメータを復号化し、使用される各コードブックステージの寄与を計算する。より一般的には、コードブックステージ（６７０、６７２、６７４、６７６）および利得コンポーネント（６８０、６８２、６８４、６８６）のコンフィギュレーションおよびオペレーションは、エンコーダ（４００）中におけるコードブックステージ（４７０、４７２、４７４、４７６）および利得コンポーネント（４８０、４８２、４８４、４８６）のコンフィギュレーションおよびオペレーションに対応する。使用されるコードブックステージの寄与は、合計され、結果として生ずる励起信号（６９０）は、合成フィルタ（６４０）へと供給される。励起信号（６９０）の遅延された値は、励起信号の後続の部分についての適応コードブックの寄与を計算する際に適応コードブック（６７０）によって励起履歴として使用されもする。
【００９７】
合成フィルタ（６４０）は、再構成されたＬＰＣ値（６３８）を受け入れ、それらをフィルタ中に組み込む。合成フィルタ（６４０）は、処理するために以前に再構成されたサンプルを記憶する。励起信号（６９０）は、元のスピーチ信号の近似を形成するために合成フィルタ中を通過させられる。図２に戻って参照すると、前述のように、複数のサブバンドが存在する場合、各サブバンドについてのサブバンド出力は、フィルタバンク（２８０）中において合成されて、スピーチ出力（２９２）を形成する。
【００９８】
図２〜６に示される関係は、情報の全般的な流れを示しているが、他の関係は、簡単にするために示されてはいない。望ましい圧縮の実施形態およびタイプに応じて、コンポーネントは、他のコンポーネントと組み合わされ、または同様なコンポーネントと置換され、あるいはその両方が行われる複数のコンポーネント中へと追加し、削除し、分離することができる。例えば図２に示される環境（２００）において、レートコントローラ（２２０）は、スピーチエンコーダ（２３０）と組み合わせることができる。追加される可能性のあるコンポーネントは、スピーチエンコーダ（またはデコーダ）ならびに他のエンコーダ（またはデコーダ）を管理し、ネットワークおよびデコーダの状態情報を収集し、また適応エラー収集ファンクションを実行するマルチメディア符号化（または再生）アプリケーションを含んでいる。代替実施形態においては、コンポーネントの異なる組合せおよびコンフィギュレーションは、本明細書中に説明される技法を使用してスピーチ情報を処理する。
【００９９】
ＩＩＩ．冗長コーディング技法
スピーチコーデックの可能性のある１つの用途は、ＩＰネットワークまたは他のパケット交換網上の音声用である。そのようなネットワークは、既存の回路スイッチングインフラストラクチャ（ｃｉｒｃｕｉｔ  ｓｗｉｔｃｈｉｎｇ  ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）に対して優る一部の利点を有する。しかしながら、ボイスオーバーＩＰネットワーク（ｖｏｉｃｅ  ｏｖｅｒ  ＩＰ  ｎｅｔｗｏｒｋ）においては、パケットは、多くの場合にネットワーク輻輳に起因して遅延させられ、あるいは脱落させられることもある。
【０１００】
多数の標準的なスピーチコーデックは、高いフレーム間の依存性を有する。したがって、これらのコーデックでは、１つの失われたフレームは、多数の以降のフレームを介して厳しい音声品質悪化を引き起こす可能性がある。
【０１０１】
他のコーデックにおいては、各フレームは、独立に復号化することができる。そのようなコーデックは、パケット損失に対して堅牢である。しかし、品質およびビットレートの観点からのコーディング効率は、フレーム間の依存性を可能にしない結果としてかなり低下する。したがって、そのようなコーデックは、一般的に伝統的なＣＥＬＰコーダと同様な音声品質を達成するために、より高いビットレートを必要とする。
【０１０２】
一部の実施形態においては、以下で説明される冗長コーディング技法は、ビットレートをあまり増大させることなく、良好なパケット損失回復性能を達成する助けを行うことができる。それらの技法は、単一のコーデック内で一緒に使用することもでき、あるいはそれらは、別々に使用することもできる。
【０１０３】
図２および４を参照して以上で説明されるエンコーダ実施形態においては、適応コードブック情報は、一般的に他のフレームに対する依存性の主要な原因である。前述のように、適応コードブックインデックスは、履歴バッファ中における励起信号のセグメントの位置を示す。以前の励起信号のセグメントは、現行のフレーム（またはサブフレーム）励起信号の適応コードブック寄与となるように、（利得値に従って）スケーリングされる。符号化された以前の励起信号を再構成するために使用される情報を含む以前のパケットが失われる場合には、この現行のフレーム（またはサブフレーム）の遅れ情報は、それがまだ存在していない履歴情報を指すので、有用ではない。遅れ情報は、影響を受けやすいので、これは通常、多数のパケットが復号化された後だけに、次第に消えていく結果として生じるスピーチ出力の拡大された悪化をもたらす。
【０１０４】
以降の技法は、それらのフレームが遅延させられ、あるいは失われているので使用可能ではない以前のフレームからの再構成された情報に対する現行の励起信号の依存性を少なくともある程度まで取り除くように設計される。
【０１０５】
図２を参照して前述されるエンコーダ（２３０）などのエンコーダは、フレームごとに、または他の何かに基づいて、以降の符号化技法の間で切り換えることができる。図２を参照して前述されるデコーダ（２７０）など、対応するデコーダは、フレームごとに、または他の何かに基づいて、対応する解析／復号化技法を切り換える。代わりに、別のエンコーダ、デコーダ、またはオーディオ処理ツールは、以降の技法のうちの１つまたは複数を実行することもある。
【０１０６】
Ａ．一次的適応コードブック履歴再符号化／復号化
一次的適応コードブック履歴再符号化／復号化においては、励起履歴バッファは、たとえその励起履歴バッファがデコーダにおいて使用可能である（以前のフレームのパケットが受信される、以前のフレームが復号化されるなど）としても、現行のフレームの励起信号を復号化するために使用されない。その代わりに、エンコーダにおいては、ピッチ情報が現行のフレームについて解析されて、どれだけ多くの励起履歴が必要とされるかを決定する。励起履歴の必要な部分は、再符号化され、現行のフレームについての符号化された情報（例えば、フィルタパラメータ、コードブックのインデックスおよび利得）と一緒に送信される。現行のフレームの適応コードブック寄与は、現行のフレームと共に送信される再符号化された励起信号を参照する。したがって、関連した励起履歴は、フレームごとにデコーダにとって使用可能であるように保証される。現行のフレームが、無声フレームなど、適応コードブックを使用しない場合には、この冗長コーディングは、必要ではない。
【０１０７】
励起履歴の参照される部分の再符号化は、現行のフレームの符号化と一緒に行うことができ、その再符号化は、前述される、現行のフレームについての励起信号の符号化と同じようにして行うことができる。
【０１０８】
一部の実施形態においては、励起信号の符号化は、サブフレームに基づいて行われ、再符号化された励起信号のセグメントは、現行のサブフレームを含む現行のフレームの始めから現行のフレームについての最も遠い適応コードブック依存性を超えたサブフレーム境界まで広がる。再符号化された励起信号は、それによってフレーム中の複数のサブフレームについてのピッチ情報を参照して使用可能である。代わりに、励起信号の符号化は、例えばフレームごとに他の何かに基づいて行われることもある。
【０１０９】
一例が、図７に示され、この図は、励起履歴（７１０）を示している。フレーム境界（７２０）と、サブフレーム境界（７３０）は、それぞれより大きな破線と、より小さな破線によって示される。現行のフレーム（７４０）のサブフレームは、適応コードブックを使用して符号化される。現行のフレームのサブフレームの任意の適応コードブック遅れについての依存性の最も遠いポイントは、線（７５０）によって示される。したがって、再符号化された履歴（７６０）は、現行のフレームの最初から最も遠いポイント（７５０）を超える次のサブフレーム境界の後ろまで広がる。依存性の最も遠いポイントは、前述のオープンループピッチ検索（４２５）の結果を使用することにより推定することができる。しかしながら、その検索は正確ではないので、後のピッチ検索が強制されない限り、適応コードブックが、推定される最も遠いポイントを超える励起信号のある部分に依存することになることが可能である。したがって、再符号化された履歴は、マッチングするピッチ情報を見出すための追加の余裕を与える推定された最も遠い依存ポイントを超えた追加のサンプルを含むことができる。一実施形態においては、推定される最も遠い依存ポイントを超える少なくとも１０個の追加サンプルが、その再符号化された履歴に含められる。もちろん、再符号化された履歴が、現行のサブフレーム中におけるこれらにマッチングするピッチサイクルを十分に遠くまで含むように広がる可能性を高めるために１０個よりも多いサンプルを含めることもできる。
【０１１０】
代わりに、現行のフレームの１つ（または複数）のサブフレーム中において実際に参照される先行する励起信号の１つ（または複数）のセグメントだけが、再符号化されることもある。例えば、適切な存続期間を有する先行する励起信号のセグメントは、その存続期間の単一の現行のセグメントを復号化する際に使用するために再符号化される。
【０１１１】
一次的適応コードブック履歴再符号化／復号化は、先行フレームの励起履歴に対する依存性をなくする。同時に、それにより、適応コードブックを使用することができるようになり、それは、全体の以前の１つ（または複数）のフレームの再符号化を（あるいは、以前の１つ（または複数）のフレームの全体的な励起履歴さえも）必要とはしない。しかし、適応コードブックメモリを再符号化するために必要とされるビットレートは、とりわけ再符号化された履歴がフレーム間依存性を有する符号化／復号化と同じ品質レベルにおける一次的符号化／復号化のために使用される場合に、以下で説明される技法と比べて非常に高くなる。
【０１１２】
一次的適応コードブック履歴再符号化／復号化の副産物（ｂｙ−ｐｒｏｄｕｃｔ）として、再符号化された励起信号を使用して、以前の失われたフレームについての励起信号の少なくとも一部分を回復することができる。例えば、再符号化された励起信号は、現行のフレームのサブフレームの復号化中に再構成され、再符号化された励起信号は、実際の、または推定されたフィルタ係数を使用して構成されるＬＰＣ合成フィルタに入力される。
【０１１３】
結果として生ずる再構成される出力信号は、以前のフレーム出力の一部分として使用することができる。この技法は、現行のフレームについての合成フィルタメモリの初期状態を推定する助けをすることもできる。再符号化された励起履歴と推定された合成フィルタメモリを使用して、現行のフレームの出力は、通常の符号化と同じようにして生成される。
【０１１４】
Ｂ．二次的適応コードブック履歴再符号化／復号化
二次的適用コードブック履歴再符号化／復号化においては、現行のフレームの一次的適応コードブックは、変更されない。同様に、現行のフレームの一次的復号化も変更されない。すなわち、以前のフレームが受信される場合に、二次的適用コードブック履歴再符号化／復号化は、以前のフレーム励起履歴を使用する。
【０１１５】
先行励起履歴が再構成されない場合に使用するために、励起履歴バッファは、前述の一次的適応コードブック履歴再符号化／復号化技法と実質的に同じ方法で再符号化される。しかしながら、パケットが失われない場合に音声品質は、再符号化された信号によって影響を受けないので、一次的再符号化／復号化と比べて、より少ないビットが再符号化のために使用される。励起履歴を再符号化するために使用されるビットの数は、より少ない固定されたコードブックを使用してや、パルスコードブック中におけるより少ないパルスを使用してなど、様々なパラメータを変更することによって低減させることができる。
【０１１６】
以前のフレームが失われる場合に、再符号化される励起履歴をデコーダ中において使用して、現行のフレームについての適応コードブック励起信号を生成する。再符号化された励起履歴を使用して、一次的適応コードブック履歴再符号化／復号化技法におけると同様に、以前に失われたフレームについての励起信号の少なくとも一部分を回復することもできる。
【０１１７】
また、結果として生ずる再構成された出力信号は、以前のフレーム出力の一部分として使用することもできる。この技法は、現行のフレームについての合成フィルタメモリの初期状態を推定する助けをすることもできる。再符号化された励起履歴と推定された合成フィルタメモリを使用して、現行のフレームの出力は、通常の符号化と同じようにして生成される。
【０１１８】
Ｃ．余分のコードブックステージ
二次的適用コードブック履歴再符号化／復号化技法におけるように、余分なコードブックステージ技法においては、主要な励起信号符号化は、図２〜５を参照して前述される通常の符号化と同じである。しかしながら、余分なコードブックステージについてのパラメータもまた、決定される。
【０１１９】
図８中に示されるこの符号化技法においては、以前の励起履歴バッファは、現行のフレームの開始時にすべてゼロであり、したがって以前の励起履歴バッファからの寄与は存在しないことが仮定される（８１０）。現行のフレームについてのメインの符号化された情報に加えて、１つまたは複数の余分なコードブックステージが、サブフレームごとに、あるいは適応コードブックを使用する他のセグメントについて使用される。例えば、余分なコードブックステージは、図４を参照して説明されるコードブックなど、ランダムな固定されたコードブックを使用する。
【０１２０】
この技法においては、現行のフレームは通常、以前のフレームが使用可能な場合に、デコーダによって使用されるべき（主要なコードブックステージについての主要なコードブックパラメータを含み得る）メインの符号化された情報を生成するように符号化される。エンコーダ側においては、１つまたは複数の余分なコードブックステージについての冗長パラメータは、以前のフレームからの励起情報を仮定しないで、閉ループ中において決定される。第１の実施形態においては、その決定は、主要なコードブックパラメータのどれも使用しないで行われる。代わりに、第２の実施形態においては、その決定は、現行のフレームについての少なくとも一部の主要なコードブックパラメータを使用することもある。以下で説明されるように以前のフレームが失われている場合に、これらの主要なコードブックパラメータは、１つ（または複数）の余分なコードブックステージパラメータと一緒に使用して、現行のフレームを復号化することができる。一般に、この第２の実施形態は、１つ（または複数）の余分なコードブックステージのために使用されているより少ないビットを用いて第１の実施形態と同様な品質を達成することができる。
【０１２１】
図８に従って、余分のコードブックステージの利得と最後に存在するパルスまたはランダムなコードブックの利得は、コーディングエラーを最小にするようにエンコーダ閉ループ検索において一緒に最適化される。通常の符号化中に生成されるほとんどのパラメータは、この最適化において保存され、使用される。最適化においては、任意のランダムコードブックステージまたはパルスコードブックステージが、通常の符号化において使用されるかどうかが決定される（８２０）。使用される場合には、次いで（図４中におけるランダムコードブックステージｎなど）最後に存在するランダムコードブックステージまたはパルスコードブックステージの改訂された利得が、そのコードブックステージの寄与とターゲット信号の間のエラーを最小にするように最適化される（８３０）。この最適化のためのターゲット信号は、残留信号と、先行するランダムコードブックステージの寄与の合計との間の差である（すなわち、以前のフレームのセグメントからの適応コードブック寄与を除くすべての先行するコードブックステージは、ゼロに設定される）。
【０１２２】
余分なランダムコードブックステージのインデックスおよび利得のパラメータは、そのコードブックの寄与とターゲット信号の間のエラーを最小にするように同様に最適化される（８４０）。余分なランダムコードブックステージについてのターゲット信号は、残留信号と、適応コードブック、（最後に存在する通常のランダムコードブックまたはパルスコードブックが、改訂された利得を有する）（もしあれば）パルスコードブック、および任意の通常のランダムコードブックの寄与の合計との間の差である。最後に存在する通常のランダムコードブックまたはパルスコードブックの改訂された利得と、余分なランダムコードブックステージの利得は、別々にまたは一緒に最適化することができる。
【０１２３】
デコーダが通常の復号化モードにある場合、デコーダは、余分なランダムコードブックステージを使用せず、（例えば、図６におけるような）以上の説明に従って信号を復号化する。
【０１２４】
図９Ａは、適応コードブックインデックスが、失われている以前のフレームのセグメントを指す場合に余分なコードブックステージを使用することができるサブバンドデコーダを示している。フレームワークは、一般に前述され、図６に示される復号化フレームワークと同じであり、図９のサブバンドデコーダ（９００）中におけるコンポーネントおよび信号のうちの多くのファンクションは、図６の対応するコンポーネントおよび信号と同じである。例えば、符号化されたサブバンド情報（９９２）は受け取られ、ＬＰＣ処理コンポーネント（９３５）は、その情報を使用して線形予測係数（９３８）を再構成し、それらの係数を合成フィルタ（９４０）に対して供給する。しかしながら、以前のフレームが失われている場合には、リセットコンポーネント（９９６）は、ゼロ履歴コンポーネント（９９４）に信号を伝えて、失われたフレームについて励起履歴をゼロに設定し、その履歴を適応コードブック（９７０）に対して供給する。利得（９８０）は、適応コードブックの寄与に適用される。したがって、適応コードブック（９７０）は、そのインデックスが失われているフレームについての履歴バッファを指す場合に、ゼロの寄与を有するが、そのインデックスが現行のフレームの内側のセグメントを指す場合には、何らかの非ゼロの寄与を有することができる。固定されたコードブックステージ（９７２、９７４、９７６）は、サブバンド情報（９９２）と共に受信されるそれらの通常のインデックスを適用する。同様に、最後の通常コードブック利得コンポーネント（９８６）を除いて、固定されたコードブック利得コンポーネント（９８２、９８４）は、それらの通常の利得を適用して、励起信号（９９０）に対するそれらのそれぞれの寄与を生成する。
【０１２５】
余分なランダムコードブックステージ（９８８）が使用可能であり、以前のフレームが失われている場合には、次いでリセットコンポーネント（９９６）は、合計されるべき通常の利得（９８６）を用いて最後の通常のコードブックステージ（９７６）の寄与を渡すのではなくて、他のコードブック寄与と合計されるべき改訂された利得（９８７）を用いて最後の通常のコードブックステージ（９７６）の寄与を渡すようにスイッチに信号を伝える。改訂された利得は、励起履歴が以前のフレームについてゼロに設定される状況について最適化される。さらに、余分なコードブックステージ（９７８）は、そのインデックスを適用して、対応するコードブック中において、ランダムコードブックモデル信号のセグメントを示し、ランダムコードブック利得コンポーネント（９８８）は、余分なランダムコードブックステージについての利得をそのセグメントに対して適用する。スイッチ（９９８）は、以前のコードブックステージ（９７０、９７２、９７４、９７６）の寄与と合計されるべき結果として生ずる余分なコードブックステージ寄与を渡して、励起信号（９９０）を生成する。それに応じて、（余分なステージインデックスや利得など）余分なランダムコードブックステージについての冗長な情報と、（最後の主要なランダムコードブックステージについての通常の利得の代わりに使用される）最後の主要なランダムコードブックステージの改訂された利得とを使用して、現行のフレームを知られているステータスに速くリセットする。代わりに、通常の利得を最後の主要なランダムコードブックステージについて使用して、または一部の他のパラメータを使用して、あるいはその両方を行って、余分なステージランダムコードブックを信号で伝えることもある。
【０１２６】
余分なコードブックステージ技法は、非常にわずかのビットしか必要としないので、その使用についてのビットレートペナルティは、一般的に取るに足りない。他方、フレーム間の依存性が存在する場合には、その技法は、フレーム損失に起因した品質悪化をかなり低減させることができる。
【０１２７】
図９Ｂは、図９Ａに示されるサブバンドデコーダと類似したサブバンドデコーダを示しているが、通常のランダムコードブックステージをもたない。それによって、本実施形態においては、改訂された利得（９８７）は、以前の失われているフレームについての残留履歴がゼロに設定される場合に、パルスコードブック（９７２）について最適化される。したがって、フレームが失われている場合には、（以前の失われているフレームについての残留履歴がゼロに設定された）適応コードブック（９７０）と、（改訂された利得を有する）パルスコードブック（９７２）と、余分なランダムコードブックステージ（９７８）の寄与は、励起信号（９９０）を生成するために合計される。
【０１２８】
失われているフレームについての残留履歴がゼロに設定される状況について最適化される余分なステージコードブックは、コードブックの多数の異なる実施形態および組合せ、および／または残留信号の他の表現と共に使用することができる。
【０１２９】
Ｄ．冗長コーディング技法の間におけるトレードオフ
前述の３つの冗長コーディング技法のおのおのは、他に比べて利点および短所を有することもある。表３は、これら３つの冗長コーディング技法の間における一部のトレードオフであると考えられる物についての一部の一般化された結論を示している。ビットレートペナルティは、本技法を使用するために必要とされるビットの量を意味する。例えば、通常の符号化／復号化と同じビットレートが使用されると仮定すると、より多くのビットが冗長コーディングでは使用され、したがって通常の符号化された情報では、より少ないビットが使用され得るので、より高いビットレートペナルティは、一般に通常の復号化中における、より低い品質に対応する。メモリ依存性を低減させる効率は、１つまたは複数の以前のフレームが失われる場合に、結果として生ずるスピーチ出力の品質を改善するに際しての技法の効率を意味する。以前の１つ（または複数）のフレームを回復するための有用性は、以前の１つ（または複数）のフレームが失われる場合に、冗長に符号化された情報を使用して、１つまたは複数の以前のフレームを回復する能力を意味する。その表中における結論は、一般化され、個々の実施形態においては当てはまらないこともある。
【０１３０】
【表３】
0005186054.tif 000004
【０１３１】
エンコーダは、符号化中の実行中に任意のフレームについての冗長コーディングスキームのどれかを選択することができる。冗長コーディングは、（例えば、有声フレームについて使用され、無音フレームまたは無声フレームでは使用されない）フレームの一部のクラスでは全く使用されないこともあり、冗長コーディングが使用される場合には、冗長コーディングは、各フレーム上で、１０フレームごとなど、定期的なベースに基づいて、あるいは他の何かに基づいて使用することができる。これは、以上のトレードオフ、使用可能なチャネル帯域幅、パケット損失ステータスについてのデコーダフィードバックなどのファクタを考慮して、レート制御コンポーネントなどのコンポーネントによって制御することができる。
【０１３２】
Ｅ．冗長コーディングビットストリームフォーマット
冗長コーディング情報は、ビットストリーム中において様々な異なるフォーマットで送信することができる。以降は、前述の冗長コーディング符号化された情報を送信し、その存在をデコーダに信号で伝えるためのフォーマットの実施形態である。この実施形態においては、ビットストリーム中における各フレームは、フレームタイプと呼ばれる２ビットのフィールドで開始される。そのフレームタイプを使用して、以降に続くビットについての冗長コーディングモードを識別し、またそのフレームタイプは、同様に符号化し復号化する際における他の目的のために使用することもできる。表４は、フレームタイプフィールドの冗長コーディングモードの意味を与えている。
【０１３３】
【表４】
0005186054.tif 000005
【０１３４】
図１０は、通常のフレームの存在および／またはそれぞれの冗長コーディングタイプを信号で伝えるビットストリームフレームフォーマット中におけるこれらのコードの４つの異なる組合せを示している。任意の冗長コーディングビットのないフレームについてのメインの符号化された情報を含む通常フレーム（１０１０）では、フレームの始めにおけるバイト境界（１０１５）には、フレームタイプコード００が続いている。そのフレームタイプコードには、通常フレームについてのメインの符号化された情報が続いている。
【０１３５】
一次的適応コードブック履歴冗長符号化情報を有するフレーム（１０２０）では、フレームの始めにおけるバイト境界（１０２５）には、フレームタイプコード１０が続き、このフレームタイプコードは、そのフレームについての一次的適応コードブック履歴情報の存在を信号で伝える。フレームタイプコードには、メインの符号化された情報および適応コードブック履歴情報を有するフレームについての符号化されたユニットが続いている。
【０１３６】
二次的履歴冗長符号化情報がフレーム（１０３０）について含められる場合には、フレームの始めにおけるバイト境界（１０３５）には、通常のフレームについてのメインの符号化された情報が続いているフレームタイプコード００（通常のフレームについてのコード）を含む符号化されたユニットが続いている。しかし、メインの符号化された情報の終わりにおけるバイト境界（１０４５）に続いて、別の符号化されたユニットは、（フレームについてのメインの符号化された情報でなくて）オプションの二次的履歴情報（１０４０）が続いていることを示すフレームタイプコード１１を含んでいる。二次的履歴情報（１０４０）は、以前のフレームが失われる場合だけに使用されるので、パケット化器（ｐａｃｋｅｔｉｚｅｒ）または他のコンポーネントには、情報を削除するオプションを与えることができる。これは、全体的なビットレートが低減させられる必要がある場合、パケット損失レートが低い場合、または以前のフレームが現行のフレームを伴うパケット中に含められる場合など様々な理由で行うことができる。あるいは、通常のフレーム（１０３０）が正常に受信される場合には、デマルチプレクサまたは他のコンポーネントには、二次的履歴情報をスキップするオプションを与えることもできる。
【０１３７】
同様に、余分なコードブックステージ冗長符号化情報が、フレーム（１０５０）について含められる場合には、符号化されたユニットの始めにおけるバイト境界（１０５５）には、通常のフレームについてのメインの符号化された情報が続いているフレームタイプコード００（通常のフレームについてのコード）が続いている。しかし、主要な符号化された情報の終わりにおけるバイト境界（１０６５）に続いて、別の符号化されたユニットは、オプションの余分なコードブックステージ情報（１０６０）が続いていることを示すフレームタイプコード０１を含んでいる。二次的履歴情報と同様に、余分なコードブックステージ情報（１０６０）は、以前のフレームが失われる場合だけに使用される。したがって、二次的履歴情報と同様に、パケット化器または他のコンポーネントには、余分なコードブックステージ情報を削除するオプションを与えることができ、あるいはデマルチプレクサまたは他のコンポーネントには、余分なコードブックステージ情報をスキップするオプションを与えることができる。
【０１３８】
アプリケーション（例えば、トランスポート層パケット化を取り扱うアプリケーション）は、複数のフレームを一緒に組み合わせて、より大きなパケットを形成して、パケットヘッダについて必要とされる余分なビットを低減させることを決定することができる。パケット内において、アプリケーションは、ビットストリームをスキャンすることによりフレーム境界を決定することができる。
【０１３９】
図１１は、４つのフレーム（１１１０、１１２０、１１３０、１１４０）を有する単一パケット（１１００）の可能なビットストリームを示している。単一パケット中におけるすべてのフレームが、それらのうちのどれかが受信される（すなわち、部分的なデータ破損がない）場合に受信されることになること、および適応コードブックの遅れまたはピッチが、一般的にフレーム長よりも小さいことを仮定することができる。この例においては、現行のフレームが存在していた場合に以前のフレームは、常に存在することになるので、フレーム２（１１２０）、フレーム３（１１３０）、およびフレーム４（１１４０）についてのオプションの任意の冗長コーディング情報は、一般的に使用されないことになる。したがって、パケット（１１００）中における第１のフレーム以外のすべてについてのオプションの冗長コーディング情報は、取り除くことができる。これは、凝縮されたパケット（１１５０）をもたらし、ここでフレーム１（１１６０）は、オプションの余分なコードブックステージ情報を含むが、すべてのオプションの冗長コーディング情報は、残りのフレーム（１１７０、１１８０、１１９０）から取り除かれている。
【０１４０】
デコーダが、一次的履歴冗長コーディング技法を使用している場合には、一次的履歴冗長コーディング情報は、以前のフレームが失われていてもいなくても使用されるので、フレームを一緒に単一パケットに詰め込む場合にアプリケーションは、そのような任意のビットを脱落させないことになる。しかし、アプリケーションが、フレームがマルチフレームパケット中にあり、そのフレームは、そのようなパケット中における最初のフレームではないことを知っている場合には、アプリケーションは、エンコーダにそのようなフレームを通常のフレームとして符号化するように強いることができる。
【０１４１】
図１０および１１とそれに付随する説明は、フレームと情報のタイプとの間のバイト位置に合わせられた境界を示しているが、代わりにそれらの境界は、バイト位置に合わせられないこともある。さらに、図１０および１１とそれに付随する説明は、フレームタイプコードとフレームタイプの組合せの例を示している。代わりに、エンコーダおよびデコーダは、他および／または追加のフレームタイプ、あるいはフレームタイプの組合せを使用することもある。
【０１４２】
説明される実施形態に関して本発明者等の発明の原理を説明し示してきているが、説明される実施形態は、そのような原理を逸脱することなく、構成および詳細において修正することができることが認識されるであろう。本明細書中に説明されるプログラム、プロセス、または方法は、他の方法で示されていない限り、特定の任意のタイプのコンピューティング環境だけに関連づけられ、あるいは限定されることはないことを理解すべきである。様々なタイプの汎用または専用のコンピューティング環境は、本明細書中に説明される教示によるオペレーションを用いて、使用することができ、あるいは本明細書中に説明される教示によるオペレーションを実行することができる。ソフトウェアの形で示される説明される実施形態の要素は、ハードウェアの形で実施することもでき、逆もまた同様である。
【図１】
0005186054.tif 000006
【図２】
0005186054.tif 000007
【図３】
0005186054.tif 000008
【図４】
0005186054.tif 000009
【図５】
0005186054.tif 000010
【図６】
0005186054.tif 000011
【図７】
0005186054.tif 000012
【図８】
0005186054.tif 000013
【図９Ａ】
0005186054.tif 000014
【図９Ｂ】
0005186054.tif 000015
【図１０】
0005186054.tif 000016
【図１１】
0005186054.tif 000017