(57)【特許請求の範囲】
【請求項１】
第１の方向を有する第１の入力ベクトルを受け取り、第１のコードブックの複数の第１のコードブックベクトルのうちから対応する１つを選択するように構成される、第１のベクトル量子化器と、
前記選択された第１のコードブックベクトルに基づく回転行列を生成するように構成される、回転行列生成器と、
（Ａ）前記第１の方向を有するベクトルと（Ｂ）前記回転行列との積を計算して、前記第１の方向とは異なる第２の方向を有する回転されたベクトルを生成するように構成される、乗算器と、
前記第２の方向を有する第２の入力ベクトルを受け取り、第２のコードブックの複数の第２のコードブックベクトルのうちから対応する１つを選択するように構成される、第２のベクトル量子化器とを備える、ベクトル量子化のための装置。
【請求項２】
前記複数の第１のコードブックベクトルと前記複数の第２のコードブックベクトルの各々が、単位ノルムベクトルである、請求項１に記載の装置。
【請求項３】
前記第１のベクトル量子化器が、前記第１の入力ベクトルの利得値に基づいて、複数のコードブックのうちから前記第１のコードブックを選択するように構成される、請求項１および２のいずれか一項に記載の装置。
【請求項４】
前記複数の第１のコードブックベクトルの各々に対して、前記第１の入力ベクトルと前記複数の第１のコードブックベクトルの各々の内積が、前記第１の入力ベクトルと前記選択された第１のコードブックベクトルの内積よりも大きくない、請求項１から３のいずれか一項に記載の装置。
【請求項５】
前記第１の入力ベクトルが、音声信号のフレームの複数のサブバンドベクトルのうちの１つである、請求項１から４のいずれか一項に記載の装置であって、
前記音声信号の前のフレームの平均利得値に基づいて、前記複数のサブバンドベクトルの平均利得値を符号化するように構成される、利得量子化器を含む、装置。
【請求項６】
前記回転行列の少なくとも１つの行の要素の各々が、前記選択された第１のコードブックベクトルの対応する要素に基づく、請求項１から５のいずれか一項に記載の装置。
【請求項７】
前記回転行列の少なくとも１つの列の要素の各々が、前記選択された第１のコードブックベクトルの対応する要素に基づく、請求項１から６のいずれか一項に記載の装置。
【請求項８】
前記回転行列が、前記第１の入力ベクトルとは独立の参照ベクトルに基づく、請求項１から７のいずれか一項に記載の装置。
【請求項９】
前記参照ベクトルが、０ではない要素を１つしか有さない、請求項８に記載の装置。
【請求項１０】
前記回転行列が、前記選択された第１のコードブックベクトルと前記参照ベクトルとを含む平面内での、前記選択された第１のコードブックベクトルの前記参照ベクトルの方向への回転を定義する、請求項８および９のいずれか一項に記載の装置。
【請求項１１】
前記乗算器が、前記回転行列と前記第１の入力ベクトルとの積を計算することによって、前記第１の方向を有するベクトルと前記回転行列との前記積を計算するように構成される、請求項１から１０のいずれか一項に記載の装置。
【請求項１２】
前記選択された第１のコードブックベクトルが、単位パルスのパターンに基づく、請求項１から１１のいずれか一項に記載の装置。
【請求項１３】
第１のコードブックの複数の第１のコードブックベクトルのうちから対応する１つを選択することによって、第１の方向を有する第１の入力ベクトルを量子化することと、
前記選択された第１のコードブックベクトルに基づく回転行列を生成することと、
（Ａ）前記第１の方向を有するベクトルと（Ｂ）前記回転行列との積を計算して、前記第１の方向とは異なる第２の方向を有する回転されたベクトルを生成することと、
第２のコードブックの複数の第２のコードブックベクトルのうちから対応する１つを選択することによって、前記第２の方向を有する第２の入力ベクトルを量子化することとを備える、ベクトル量子化の方法。
【請求項１４】
前記複数の第１のコードブックベクトルと前記複数の第２のコードブックベクトルの各々が、単位ノルムベクトルである、請求項１３に記載の方法。
【請求項１５】
第１の入力ベクトルを前記量子化することが、前記第１の入力ベクトルの利得値に基づいて、複数のコードブックのうちから前記第１のコードブックを選択することを含む、請求項１３および１４のいずれか一項に記載の方法。
【請求項１６】
前記複数の第１のコードブックベクトルの各々に対して、前記第１の入力ベクトルと前記複数の第１のコードブックベクトルの各々の内積が、前記第１の入力ベクトルと前記選択された第１のコードブックベクトルの内積よりも大きくない、請求項１３から１５のいずれか一項に記載の方法。
【請求項１７】
前記第１の入力ベクトルが、音声信号のフレームの複数のサブバンドベクトルのうちの１つである、請求項１３から１６のいずれか一項に記載の方法であって、
前記音声信号の前のフレームの平均利得値に基づいて、前記複数のサブバンドベクトルの平均利得値を符号化することを含む、方法。
【請求項１８】
前記回転行列の少なくとも１つの行の要素の各々が、前記選択された第１のコードブックベクトルの対応する要素に基づく、請求項１３から１７のいずれか一項に記載の方法。
【請求項１９】
前記回転行列の少なくとも１つの列の要素の各々が、前記選択された第１のコードブックベクトルの対応する要素に基づく、請求項１３から１８のいずれか一項に記載の方法。
【請求項２０】
前記回転行列が、前記第１の入力ベクトルとは独立の参照ベクトルに基づく、請求項１３から１９のいずれか一項に記載の方法。
【請求項２１】
前記参照ベクトルが、０ではない要素を１つしか有さない、請求項２０に記載の方法。
【請求項２２】
前記回転行列が、前記選択された第１のコードブックベクトルと前記参照ベクトルとを含む平面内での、前記選択された第１のコードブックベクトルの前記参照ベクトルの方向への回転を定義する、請求項２０および２１のいずれか一項に記載の方法。
【請求項２３】
前記回転行列と前記第１の入力ベクトルとの積を計算することによって、前記第１の方向を有する前記ベクトルと前記回転行列との前記積を前記計算することが実行される、請求項１３から２２のいずれか一項に記載の方法。
【請求項２４】
前記選択された第１のコードブックベクトルが、単位パルスのパターンに基づく、請求項１３から２３のいずれか一項に記載の方法。
【請求項２５】
第１のコードブックの複数の第１のコードブックベクトルのうちから対応する１つを選択することによって、第１の方向を有する第１の入力ベクトルを量子化するための手段と、
前記選択された第１のコードブックベクトルに基づく回転行列を生成するための手段と、
（Ａ）前記第１の方向を有するベクトルと（Ｂ）前記回転行列との積を計算して、前記第１の方向とは異なる第２の方向を有する回転されたベクトルを生成するための手段と、
第２のコードブックの複数の第２のコードブックベクトルのうちから対応する１つを選択することによって、前記第２の方向を有する第２の入力ベクトルを量子化するための手段とを備える、ベクトル量子化のための装置。
【請求項２６】
前記複数の第１のコードブックベクトルと前記複数の第２のコードブックベクトルの各々が、単位ノルムベクトルである、請求項２５に記載の装置。
【請求項２７】
第１の入力ベクトルを量子化するための前記手段が、前記第１の入力ベクトルの利得値に基づいて、複数のコードブックのうちから前記第１のコードブックを選択するように構成される、請求項２５および２６のいずれか一項に記載の装置。
【請求項２８】
前記複数の第１のコードブックベクトルの各々に対して、前記第１の入力ベクトルと前記複数の第１のコードブックベクトルの各々の内積が、前記第１の入力ベクトルと前記選択された第１のコードブックベクトルの内積よりも大きくない、請求項２５から２７のいずれか一項に記載の装置。
【請求項２９】
前記第１の入力ベクトルが、音声信号のフレームの複数のサブバンドベクトルのうちの１つである、請求項２５から２８のいずれか一項に記載の装置であって、
前記音声信号の前のフレームの平均利得値に基づいて、前記複数のサブバンドベクトルの平均利得値を符号化するための手段を含む、装置。
【請求項３０】
前記回転行列の少なくとも１つの行の要素の各々が、前記選択された第１のコードブックベクトルの対応する要素に基づく、請求項２５から２９のいずれか一項に記載の装置。
【請求項３１】
前記回転行列の少なくとも１つの列の要素の各々が、前記選択された第１のコードブックベクトルの対応する要素に基づく、請求項２５から３０のいずれか一項に記載の装置。
【請求項３２】
前記回転行列が、前記第１の入力ベクトルとは独立の参照ベクトルに基づく、請求項２５から３１のいずれか一項に記載の装置。
【請求項３３】
前記参照ベクトルが、０ではない要素を１つしか有さない、請求項３２に記載の装置。
【請求項３４】
前記回転行列が、前記選択された第１のコードブックベクトルと前記参照ベクトルとを含む平面内での、前記選択された第１のコードブックベクトルの前記参照ベクトルの方向への回転を定義する、請求項３２および３３のいずれか一項に記載の装置。
【請求項３５】
積を計算するための前記手段が、前記回転行列と前記第１の入力ベクトルとの積を計算することによって、前記第１の方向を有するベクトルと前記回転行列との前記積を計算するように構成される、請求項２５から３４のいずれか一項に記載の装置。
【請求項３６】
前記選択された第１のコードブックベクトルが、単位パルスのパターンに基づく、請求項２５から３５のいずれか一項に記載の装置。
【請求項３７】
第１のコードブックインデックスと第２のコードブックインデックスとを含む、量子化されたベクトルを逆量子化するための装置であって、
前記第１のコードブックインデックスを受け取り、第１のコードブックから対応する第１のコードブックベクトルを生成するように構成される、第１のベクトル逆量子化器と、
前記第１のコードブックベクトルに基づく回転行列を生成するように構成される、回転行列生成器と、
第２のコードブックインデックスを受け取り、第１の方向を有する対応する第２のコードブックベクトルを第２のコードブックから生成するように構成される、第２のベクトル逆量子化器と、
（Ａ）前記第１の方向を有するベクトルと（Ｂ）前記回転行列との積を計算して、前記第１の方向とは異なる第２の方向を有する回転されたベクトルを生成するように構成される、乗算器とを備える、装置。
【請求項３８】
第１のコードブックインデックスと第２のコードブックインデックスとを含む、量子化されたベクトルを逆量子化する方法であって、
第１のコードブックの複数の第１のコードブックベクトルのうちから、前記第１のコードブックインデックスによって示される第１のコードブックベクトルを選択することと、
前記選択された第１のコードブックベクトルに基づく回転行列を生成することと、
第２のコードブックの複数の第２のコードブックベクトルのうちから、前記第２のコードブックインデックスによって示され第１の方向を有する第２のコードブックベクトルを選択することと、
（Ａ）前記第１の方向を有するベクトルと（Ｂ）前記回転行列との積を計算して、前記第１の方向とは異なる第２の方向を有する回転されたベクトルを生成することとを備える、方法。
【請求項３９】
第１のコードブックインデックスと第２のコードブックインデックスとを含む、量子化されたベクトルを逆量子化するための装置であって、
第１のコードブックの複数の第１のコードブックベクトルのうちから、前記第１のコードブックインデックスによって示される第１のコードブックベクトルを選択するための手段と、
前記選択された第１のコードブックベクトルに基づく回転行列を生成するための手段と、
第２のコードブックの複数の第２のコードブックベクトルのうちから、前記第２のコードブックインデックスによって示され第１の方向を有する第２のコードブックベクトルを選択するための手段と、
（Ａ）前記第１の方向を有するベクトルと（Ｂ）前記回転行列との積を計算して、前記第１の方向とは異なる第２の方向を有する回転されたベクトルを生成するための手段とを備える、装置。
【請求項４０】
コンピュータに、請求項１３から２４および３８のいずれか一項に記載の方法を実行させるためのプログラムを記憶するコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［米国特許法第１１９条に基づく優先権の主張］
本特許出願は、２０１０年７月３０日に出願された、「ＳＹＳＴＥＭＳ，ＭＥＴＨＯＤＳ，ＡＰＰＡＲＡＴＵＳ，ＡＮＤ  ＣＯＭＰＵＴＥＲ−ＲＥＡＤＡＢＬＥ  ＭＥＤＩＡ  ＦＯＲ  ＥＦＦＩＣＩＥＮＴ  ＴＲＡＮＳＦＯＲＭ−ＤＯＭＡＩＮ  ＣＯＤＩＮＧ  ＯＦ  ＡＵＤＩＯ  ＳＩＧＮＡＬＳ」という表題の仮出願第６１／３６９，６６２号の優先権を主張する。本特許出願は、２０１０年７月３１日に出願された、「ＳＹＳＴＥＭＳ，ＭＥＴＨＯＤＳ，ＡＰＰＡＲＡＴＵＳ，ＡＮＤ  ＣＯＭＰＵＴＥＲ−ＲＥＡＤＡＢＬＥ  ＭＥＤＩＡ  ＦＯＲ  ＤＹＮＡＭＩＣ  ＢＩＴ  ＡＬＬＯＣＡＴＩＯＮ」という表題の仮出願第６１／３６９，７０５号の優先権を主張する。本特許出願は、２０１０年８月１日に出願された、「ＳＹＳＴＥＭＳ，ＭＥＴＨＯＤＳ，ＡＰＰＡＲＡＴＵＳ，ＡＮＤ  ＣＯＭＰＵＴＥＲ−ＲＥＡＤＡＢＬＥ  ＭＥＤＩＡ  ＦＯＲ  ＭＵＬＴＩ−ＳＴＡＧＥ  ＳＨＡＰＥ  ＶＥＣＴＯＲ  ＱＵＡＮＴＩＺＡＴＩＯＮ」という表題の仮出願第６１／３６９，７５１号の優先権を主張する。本特許出願は、２０１０年８月１７日に出願された、「ＳＹＳＴＥＭＳ，ＭＥＴＨＯＤＳ，ＡＰＰＡＲＡＴＵＳ，ＡＮＤ  ＣＯＭＰＵＴＥＲ−ＲＥＡＤＡＢＬＥ  ＭＥＤＩＡ  ＦＯＲ  ＧＥＮＥＲＡＬＩＺＥＤ  ＡＵＤＩＯ  ＣＯＤＩＮＧ」という表題の仮出願第６１／３７４，５６５号の優先権を主張する。本特許出願は、２０１０年９月１７日に出願された、「ＳＹＳＴＥＭＳ，ＭＥＴＨＯＤＳ，ＡＰＰＡＲＡＴＵＳ，ＡＮＤ  ＣＯＭＰＵＴＥＲ−ＲＥＡＤＡＢＬＥ  ＭＥＤＩＡ  ＦＯＲ  ＧＥＮＥＲＡＬＩＺＥＤ  ＡＵＤＩＯ  ＣＯＤＩＮＧ」という表題の仮出願第６１／３８４，２３７号の優先権を主張する。本特許出願は、２０１１年３月３１日に出願された、「ＳＹＳＴＥＭＳ，ＭＥＴＨＯＤＳ，ＡＰＰＡＲＡＴＵＳ，ＡＮＤ  ＣＯＭＰＵＴＥＲ−ＲＥＡＤＡＢＬＥ  ＭＥＤＩＡ  ＦＯＲ  ＤＹＮＡＭＩＣ  ＢＩＴ  ＡＬＬＯＣＡＴＩＯＮ」という表題の仮出願第６１／４７０，４３８号の優先権を主張する。
【０００２】
［分野］
本開示は、音声信号処理の分野に関する。
【背景技術】
【０００３】
［背景］
通常、修正離散コサイン変換（ＭＤＣＴ）に基づく符号化方式が、発話コンテンツおよび／または音楽のような非発話コンテンツを含み得る、汎用音声信号を符号化するために使われる。ＭＤＣＴ符号化を使う既存の音声コーデックの例には、ＭＰＥＧ−１  Ａｕｄｉｏ  Ｌａｙｅｒ  ３（ＭＰ３）、Ｄｏｌｂｙ  Ｄｉｇｉｔａｌ（英国、ロンドンのＤｏｌｂｙ  Ｌａｂｓによる、ＡＣ−３とも呼ばれＡＴＳＣ  Ａ／５２として標準化されている）、Ｖｏｒｂｉｓ（マサチューセッツ州サマービルのＸｉｐｈ．Ｏｒｇ  Ｆｏｕｎｄａｔｉｏｎによる）、Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ  Ａｕｄｉｏ（ＷＭＡ、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐによる）、Ａｄａｐｔｉｖｅ  Ｔｒａｎｓｆｏｒｍ  Ａｃｏｕｓｔｉｃ  Ｃｏｄｉｎｇ（ＡＴＲＡＣ、東京のＳｏｎｙ  Ｃｏｒｐによる）、およびＡｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ（ＡＡＣ、ＩＳＯ／ＩＥＣ  １４４９６−３：２００９において最近標準化された）がある。ＭＤＣＴ符号化はまた、Ｅｎｈａｎｃｅｄ  Ｖａｒｉａｂｌｅ  Ｒａｔｅ  Ｃｏｄｅｃ（ＥＶＲＣ、２０１０年１月２５日に第３世代パートナーシッププロジェクト２（３ＧＰＰ２）の文書Ｃ．Ｓ００１４−Ｄ  ｖ２．０で標準化された）のような、いくつかの通信規格の構成要素でもある。Ｇ．７１８コーデック（スイス、ジュネーブの電気通信標準化部門（ＩＴＵ−Ｔ）による、２００８年６月制定、２００８年１１月および２００９年８月修正、２００９年３月および２０１０年３月改正の、「Ｆｒａｍｅ  ｅｒｒｏｒ  ｒｏｂｕｓｔ  ｎａｒｒｏｗｂａｎｄ  ａｎｄ  ｗｉｄｅｂａｎｄ  ｅｍｂｅｄｄｅｄ  ｖａｒｉａｂｌｅ  ｂｉｔ−ｒａｔｅ  ｃｏｄｉｎｇ  ｏｆ  ｓｐｅｅｃｈ  ａｎｄ  ａｕｄｉｏ  ｆｒｏｍ  ８−３２ｋｂｉｔ／ｓ」）は、ＭＤＣＴ符号化を使うマルチレイヤコーデックの一例である。
【発明の概要】
【０００４】
一般的な構成によるベクトル量子化(vector quantization)の方法は、第１のコードブックの複数の第１のコードブックベクトル(codebook vector)のうちから対応する１つを選択することによって、第１の方向を有する第１の入力ベクトルを量子化することと、選択された第１のコードブックベクトルに基づく回転行列(rotation matrix)を生成することとを含む。この方法はまた、（Ａ）第１の方向を有するベクトルと（Ｂ）回転行列との積を計算して、第１の方向とは異なる第２の方向を有する回転されたベクトルを生成することと、第２のコードブックの複数の第２のコードブックベクトルのうちから対応する１つを選択することによって、第２の方向を有する第２の入力ベクトルを量子化することとを含む。対応するベクトル逆量子化の方法も開示される。有形な機構を有し、その機構が、機械にその機構を読み取らせてそのような方法を実行させる、コンピュータ可読記憶媒体（たとえば、非一時的媒体）も開示される。
【０００５】
一般的な構成によるベクトル量子化のための装置は、第１の方向を有する第１の入力ベクトルを受け取って、第１のコードブックの複数の第１のコードブックベクトルのうちから対応する１つを選択するように構成される、第１のベクトル量子化器(vector quantizer)と、選択された第１のコードブックベクトルに基づく回転行列を生成するように構成される、回転行列生成器とを含む。この装置はまた、（Ａ）第１の方向を有するベクトルと（Ｂ）回転行列との積を計算して、第１の方向とは異なる第２の方向を有する回転されたベクトルを生成するように構成される、乗算器と、第２の方向を有する第２の入力ベクトルを受け取って、第２のコードブックの複数の第２のコードブックベクトルのうちから対応する１つを選択するように構成される、第２のベクトル量子化器とを含む。対応するベクトル逆量子化のための装置も開示される。
【０００６】
別の一般的な構成による音声信号のフレームを処理するための装置は、第１のコードブックの複数の第１のコードブックベクトルのうちから対応する１つを選択することによって、第１の方向を有する第１の入力ベクトルを量子化するための手段と、選択された第１のコードブックベクトルに基づく回転行列を生成するための手段とを含む。この装置はまた、（Ａ）第１の方向を有するベクトルと（Ｂ）回転行列との積を計算して、第１の方向とは異なる第２の方向を有する回転されたベクトルを生成するための手段と、第２のコードブックの複数の第２のコードブックベクトルのうちから対応する１つを選択することによって、第２の方向を有する第２の入力ベクトルを量子化するための手段とを含む。対応するベクトル逆量子化のための装置も開示される。
【図面の簡単な説明】
【０００７】
【図１Ａ】ｇａｉｎ−ｓｈａｐｅベクトル量子化操作の例を示す図。
【図１Ｂ】ｇａｉｎ−ｓｈａｐｅベクトル量子化操作の例を示す図。
【図１Ｃ】ｇａｉｎ−ｓｈａｐｅベクトル量子化操作の例を示す図。
【図１Ｄ】ｇａｉｎ−ｓｈａｐｅベクトル量子化操作の例を示す図。
【図２Ａ】一般的な構成による、複数段階の形状量子化のための装置Ａ１００のブロック図。
【図２Ｂ】一般的な構成による、複数段階の形状逆量子化のための装置Ｄ１００のブロック図。
【図３Ａ】回転行列の生成に使うことができる式の例を示す図。
【図３Ｂ】回転行列の生成に使うことができる式の例を示す図。
【図４】単純な二次元の例を使った装置Ａ１００の動作の原理を示す図。
【図５Ａ】回転行列の生成に使うことができる式の例を示す図。
【図５Ｂ】回転行列の生成に使うことができる式の例を示す図。
【図６】回転行列の生成に使うことができる式の例を示す図。
【図７Ａ】図１Ａの開ループの利得符号化構成への、装置Ａ１００の適用の例を示す図。
【図７Ｂ】図１Ｂの開ループの利得符号化構成への、装置Ａ１００の適用の例を示す図。
【図７Ｃ】閉ループの利得符号化構成で使うことができる、装置Ａ１００のある実装形態Ａ１１０のブロック図。
【図８Ａ】図１Ｃの開ループの利得符号化構成への、装置Ａ１１０の適用の例を示す図。
【図８Ｂ】図１Ｄの開ループの利得符号化構成への、装置Ａ１１０の適用の例を示す図。
【図９Ａ】装置Ａ１００の拡張である、３段階の形状量子化器の概略図。
【図９Ｂ】装置Ａ１１０の拡張である、３段階の形状量子化器の概略図。
【図９Ｃ】装置Ｄ１００の拡張である、３段階の形状逆量子化器の概略図。
【図１０Ａ】利得量子化器ＧＱ１０のある実装形態ＧＱ１００のブロック図。
【図１０Ｂ】利得ベクトル計算器ＧＶＣ１０のある実装形態ＧＶＣ２０のブロック図。
【図１１Ａ】利得逆量子化器ＤＱ１００のブロック図。
【図１１Ｂ】利得量子化器ＧＱ１０のある予測的な実装形態ＧＱ２００のブロック図。
【図１１Ｃ】利得量子化器ＧＱ１０のある予測的な実装形態ＧＱ２１０のブロック図。
【図１１Ｄ】利得逆量子化器ＧＤ２００のブロック図。
【図１１Ｅ】予測器ＰＤ１０のある実装形態ＰＤ２０のブロック図。
【図１２Ａ】利得量子化器ＧＱ１００およびＧＱ２００という例を含む利得符号化構成。
【図１２Ｂ】装置Ａ１００のある実装形態を含む、通信デバイスＤ１０のブロック図。
【図１３Ａ】一般的な構成によるベクトル量子化のための方法Ｍ１００のフローチャート。
【図１３Ｂ】一般的な構成によるベクトル量子化のための装置ＭＦ１００のブロック図。
【図１４Ａ】一般的な構成によるベクトル逆量子化のための方法ＭＤ１００のフローチャート。
【図１４Ｂ】一般的な構成によるベクトル逆量子化のための装置ＤＦ１００のブロック図。
【図１５】ハンドセットＨ１００の正面図、背面図、および側面図。
【図１６】ＵＢ−ＭＤＣＴ信号がモデル化されている例における、大きさ対周波数のプロットを示す図。
【発明を実施するための形態】
【０００８】
［詳細な説明］
ｇａｉｎ−ｓｈａｐｅベクトル量子化方式では、（たとえば、複雑さと記憶域を減らすために）複数の段階で形状ベクトル(shape vector)の符号化を実行するのが望ましいことがある。本明細書で説明されるような、複数段階の形状ベクトル量子化器の構成は、広範囲のビットレートの効果的なｇａｉｎ−ｓｈａｐｅベクトル量子化を支援するような場合に、使うことができる。
【０００９】
文脈によって明確に限定されない限り、「信号」という用語は、本明細書では、ワイヤ、バス、または他の伝送媒体上に表された記憶場所（または記憶場所のセット）の状態を含む、その通常の意味のいずれをも示すのに使用される。文脈によって明確に限定されない限り、「発生（generating）」という用語は、本明細書では、計算（computing）または別様の生成（producing）など、その通常の意味のいずれをも示すのに使用される。文脈によって明確に限定されない限り、「計算（calculating）」という用語は、本明細書では、複数の値からの計算（computing）、評価、平滑化、および／または選択など、その通常の意味のいずれをも示すのに使用される。文脈によって明確に限定されない限り、「得る（obtaining）」という用語は、計算、導出、（たとえば、外部デバイスからの）受信、および／または（たとえば、記憶素子のアレイからの）取り出しなど、その通常の意味のいずれをも示すのに使用される。文脈によって明確に限定されない限り、「選択（selecting）」という用語は、２つ以上のセットのうちの少なくとも１つ、かつすべてよりも少数を識別、指示、適用、および／または使用することなど、その通常の意味のいずれをも示すのに使用される。「備える（comprising）」という用語は、本明細書と特許請求の範囲とにおいて使用される場合、他の要素または動作を除外するものではない。「に基づく」（「ＡはＢに基づく」など）という用語は、（ｉ）「から導出される」（たとえば、「ＢはＡの前の形である」）、（ｉｉ）「少なくとも〜に基づく」（たとえば、「Ａは少なくともＢに基づく」）、および特定の文脈で適当な場合に、（ｉｉｉ）「に等しい」（たとえば、「ＡはＢに等しい」）という場合を含む、その通常の意味のいずれをも示すのに使用される。同様に、「に応答して」という用語は、「少なくとも〜に応答して」を含む、その通常の意味のいずれをも示すのに使用される。
【００１０】
別段に規定されていない限り、「一連」という用語は、２つ以上の項目の列を示すのに使用される。「対数」という用語は、１０を底とする対数を示すのに使用されるが、他の底へのそのような演算の拡張も本開示の範囲内である。「周波数成分」という用語は、（たとえば、高速フーリエ変換によって生成される）信号の周波数領域表現のサンプル、または信号のサブバンド（たとえば、バーク尺度もしくはメル尺度サブバンド）など、信号の周波数または周波数帯域のセットのうちの１つを示すのに使用される。
【００１１】
別段に規定されていない限り、特定の特徴を有する装置の動作のいかなる開示も、類似の特徴を有する方法を開示する（その逆も同様）ことをも明確に意図し、特定の構成による装置の動作のいかなる開示も、類似の構成による方法を開示する（その逆も同様）ことをも明確に意図する。「構成」という用語は、その具体的な文脈によって示されるように、方法、装置、および／またはシステムに関して使用され得る。「方法」、「処理」、「手順」、および「技法」という用語は、具体的な文脈によって別段に規定されていない限り、一般的、互換的に使用される。「装置」および「デバイス」という用語も、具体的な文脈によって別段に規定されていない限り、一般的、互換的に使用される。「要素」および「モジュール」という用語は、一般に、より大きな構成の一部を示すのに使用される。文脈によって明確に限定されない限り、「システム」という用語は、本明細書では、「共通の目的を果たすために相互作用する要素のグループ」を含む、その通常の意味のいずれをも示すのに使用される。文書の一部分の参照による任意の組込みは、その部分内で言及された用語または変数の定義が、文書中の他の場所に現れ、ならびに組み込まれた部分で参照される図に現れた場合、そのような定義を組み込んでいることも理解されたい。
【００１２】
本明細書で説明されるシステム、方法、および装置は、周波数領域での音声信号の符号化表現に一般に適用可能である。そのような表現の典型的な例は、変換領域における一連の変換係数である。適切な変換の例には、正弦的ユニタリ変換のような、離散的な直交変換がある。適切な正弦的ユニタリ変換の例には、限定はされないが、離散コサイン変換（ＤＣＴ）、離散サイン変換（ＤＳＴ）、および離散フーリエ変換（ＤＦＴ）を含む、離散三角変換がある。適切な変換の他の例には、そのような変換の重複したバージョンがある。適切な変換の具体的な例は、上で紹介された修正ＤＣＴ（ＭＤＣＴ）である。
【００１３】
本開示の全体で、音声周波数域の「低域」および「高域」（等価的に、「上側域」）への言及が行われ、低域の具体的な例は０から４キロヘルツ（ｋＨｚ）であり、高域の具体的な例は３．５から７ｋＨｚである。本明細書で論じられる原理は、明示的に述べられていない限り、何らこの特定の例に限定されないことが、明確に指摘される。符号化、復号、割り当て、量子化、および／または他の処理のこれらの原理の適用が明確に企図され本明細書で開示される周波数域の他の例（やはり限定はされない）は、０、２５、５０、１００、１５０、および２００Ｈｚのいずれかに下側境界を、３０００、３５００、４０００、および４５００Ｈｚのいずれかに上側境界を有する低域と、３０００、３５００、４０００、４５００、および５０００Ｈｚのいずれかに下側境界を、６０００、６５００、７０００、７５００、８０００、８５００、および９０００Ｈｚのいずれかに上側境界を有する高域とを含む。３０００、３５００、４０００、４５００、５０００、５５００、６０００、６５００、７０００、７５００、８０００、８５００、および９０００Ｈｚのいずれかに下側境界を、１０、１０．５、１１、１１．５、１２、１２．５、１３、１３．５、１４、１４．５、１５、１５．５、および１６ｋＨｚのいずれかに上側境界を有する高域へのそのような原理の適用（やはり限定はされない）も、明確に企図され本明細書で開示される。高域信号は通常、符号化処理の早い段階でより低いサンプリングレートに変換される（たとえば、再サンプリングおよび／またはデシメーションを介して）が、高域信号は高域信号のままであり、高域信号の搬送する情報は、高域の音声周波数域を表し続けることも、明確に指摘される。
【００１４】
本明細書で説明されるような複数段階の形状量子化操作を含む符号化方式は、（たとえば、発話を含む）任意の音声信号の符号化に適用され得る。あるいは、そのような符号化方式を発話ではない音声（たとえば、音楽）にのみ使うのが望ましいことがある。そのような場合、その符号化方式を分類方式とともに使って、音声信号の各フレームの内容の種類を判定し、適切な符号化方式を選択することができる。
【００１５】
本明細書で説明されるような複数段階の形状量子化操作を含む符号化方式は、主要なコーデックとして、またはマルチレイヤ内のレイヤもしくは段階として、または複数段階のコーデックとして使われ得る。１つのそのような例では、音声信号の周波数成分の一部（たとえば、低域または高域）を符号化するのにそのような符号化方式が使われ、信号の周波数成分の別の部分を符号化するのに別の符号化方式が使われる。別のそのような例では、別の符号化レイヤの残余（すなわち、元の信号と符号化された信号との間の誤差）を符号化するのに、そのような符号化方式が使われる。
【００１６】
Ｇａｉｎ−ｓｈａｐｅベクトル量子化は、利得係数(gain factor)によって表されるベクトルエネルギーを、形状によって表されるベクトル方向から分離することによって、信号ベクトル（たとえば、音または画像データを表す）を効率的に符号化するのに使われ得る、符号化技法である。そのような技法は、発話および／または音楽のような音声信号の符号化のような、信号のダイナミックレンジが大きい可能性のある用途に、特に適していることがある。
【００１７】
ｇａｉｎ−ｓｈａｐｅベクトル量子化（ＧＳＶＱ）は、入力ベクトルｘの形状および利得を別々に符号化する。図１Ａは、ｇａｉｎ−ｓｈａｐｅベクトル量子化操作の例を示す。この例では、形状量子化器(shape quantizer)ＳＱ１００は、入力ベクトルｘに最も近い（たとえば、平均二乗誤差の観点で最も近い）コードブック中のベクトルとして、量子化された形状ベクトル
【数１】
0005587501.tif 000002
【００１８】
をコードブックから選択し、コードブック中のベクトル
【数２】
0005587501.tif 000003
【００１９】
に対してインデックスを出力することによって、ベクトル量子化（ＶＱ）方式を実行するように構成される。別の例では、形状量子化器ＳＱ１００は、入力ベクトルｘに最も近い（たとえば、平均二乗誤差の観点で最も近い）単位パルスの単位ノルムパターン(unit-norm pattern)を選択し、そのパターンに対してコードブックインデックスを出力することによって、パルス符号化量子化方式を実行するように構成される。ノルム計算器ＮＣ１０は、入力ベクトルｘのノルム｜｜ｘ｜｜を計算するように構成され、利得量子化器(gain quantizer)ＧＱ１０は、ノルムを量子化して量子化された利得値(gain value)を生成するように構成される。
【００２０】
形状量子化器ＳＱ１００は通常、コードブックベクトルが単位ノルム(unit-norm)を有する（すなわち、単位超球(unit hypersphere)上のすべての点である）という制約とともに、ベクトル量子化器として実装される。この制約によって、（たとえば、内積演算に対する平均二乗誤差の計算からの）コードブックの検索が簡単になる。たとえば、形状量子化器ＳＱ１００は、ａｒｇ  ｍａｘk（ｘTＳk）のような演算に従って、Ｋ個の単位ノルムベクトルＳk，ｋ＝０，１，…，Ｋ−１のコードブックのうちから、ベクトル
【数３】
0005587501.tif 000004
【００２１】
を選択するように構成され得る。そのような検索は、網羅的であっても最適化されていてもよい。たとえば、ベクトルは、特定の検索戦略を支援するように、コードブック内で配置されてよい。
【００２２】
いくつかの場合には、形状量子化器ＳＱ１００への入力を、（たとえば、特定のコードブック検索戦略を可能にするために）単位ノルムに限定するのが望ましいことがある。図１Ｂは、ｇａｉｎ−ｓｈａｐｅベクトル量子化操作のそのような例を示す。この例では、正規化器ＮＬ１０が、入力ベクトルｘを正規化して、ベクトルノルム｜｜ｘ｜｜と単位ノルム形状ベクトル（unit-norm shape vector)Ｓ＝ｘ／｜｜ｘ｜｜とを生成するように構成され、形状量子化器ＳＱ１００が、入力として形状ベクトルＳを受け取るように配置される。そのような場合、形状量子化器ＳＱ１００は、ａｒｇ  ｍａｘk（ＳTＳk）のような演算に従って、Ｋ個の単位ノルムベクトルＳk，ｋ＝０，１，…，Ｋ−１のコードブックのうちから、ベクトル
【数４】
0005587501.tif 000005
【００２３】
を選択するように構成され得る。
【００２４】
あるいは、形状量子化器ＳＱ１００は、ユニットパルスのパターンのコードブックのうちから、ベクトル
【数５】
0005587501.tif 000006
【００２５】
を選択するように構成され得る。この場合、量子化器ＳＱ１００は、正規化されると形状ベクトルＳに最も近い（たとえば、平均二乗誤差の観点で最も近い）パターンを選択するように構成され得る。そのようなパターンは通常、パターン中の各々の専有された位置に対するパルスおよび信号の数を示す、コードブックインデックスとして符号化される。パターンを選択することは、入力ベクトルをスケーリングすることと入力ベクトルをパターンと照合することとを含んでよく、量子化されたベクトル
【数６】
0005587501.tif 000007
【００２６】
は、選択されたパターンを正規化することによって生成される。そのようなパターンを符号化するために形状量子化器ＳＱ１００によって実行され得るパルス符号化方式の例には、ｆａｃｔｏｒｉａｌ  ｐｕｌｓｅ  ｃｏｄｉｎｇおよびｃｏｍｂｉｎａｔｏｒｉａｌ  ｐｕｌｓｅ  ｃｏｄｉｎｇがある。
【００２７】
利得量子化器ＧＱ１０は、利得のスカラー量子化を実行し、または、その利得を他の利得と組み合わせてベクトル量子化のための利得ベクトルにするように、構成され得る。図１Ａおよび図１Ｂの例では、利得量子化器ＧＱ１０は、入力ベクトルｘの利得をノルム｜｜ｘ｜｜として受け取り量子化するように配置される（「開ループ利得」とも呼ばれる）。他の場合では、利得は、量子化された形状ベクトル
【数７】
0005587501.tif 000008
【００２８】
と元の形状との相関に基づく。そのような利得は、「閉ループ利得」と呼ばれる。図１Ｃは、内積計算器ＩＰ１０と、量子化された形状ベクトル
【数８】
0005587501.tif 000009
【００２９】
も生成する形状量子化器ＳＱ１００のある実装形態ＳＱ１１０とを含む、そのようなｇａｉｎ−ｓｈａｐｅベクトル量子化操作の例を示す。計算器ＩＰ１０は、量子化された形状ベクトル
【数９】
0005587501.tif 000010
【００３０】
と元の入力ベクトル（たとえば、
【数１０】
0005587501.tif 000011
【００３１】
）との内積を計算するように配置され、利得量子化器ＧＱ１０は、閉ループ利得としてこの積を受け取り量子化するように配置される。形状量子化器ＳＱ１１０の生成する形状量子化の結果が不良である限り、閉ループ利得はより低くなる。形状量子化器が正確に形状を量子化する限り、閉ループ利得はより高くなる。形状量子化が完璧である場合、閉ループ利得は開ループ利得に等しい。図１Ｄは、入力ベクトルｘを正規化して、形状量子化器ＳＱ１１０への入力として単位ノルム形状ベクトルＳ＝ｘ／｜｜ｘ｜｜を生成するように構成される、正規化器ＮＬ２０を含む、同様のｇａｉｎ−ｓｈａｐｅベクトル量子化操作の例を示す。
【００３２】
音楽および発話のような音声信号では、信号ベクトルは、信号のフレームを変換領域（たとえば、高速フーリエ変換（ＦＦＴ）またはＭＤＣＴ領域）へと変換して、これらの変換領域係数からサブバンドを形成することによって、形成され得る。一例では、エンコーダは、所定の分割方式（たとえば、フレームが受信される前にデコーダに知られている固定分割方式）に従ってサブバンドのセットへと変換係数を分割して、ベクトル量子化（ＶＱ）方式（たとえば、本明細書で説明されるようなＧＳＶＱ方式）を使って各サブバンドを符号化することによって、フレームを符号化するように構成される。そのような場合、形状コードブックは、均一な量子化セル（たとえば、ボロノイ領域）への単位超球の分割を表すように選択され得る。
【００３３】
別の例では、信号内でエネルギーが大きな領域を特定し、これらの領域を信号の残りの部分とは別に符号化するのが、望ましいことがある。たとえば、比較的多くのビットを使ってそのような領域を符号化し、比較的少ないビットを使って（またはビットを全く使わずに）信号の他の領域を符号化することによって、符号化の効率を上げることが望ましいことがある。そのような領域は、一般に特定の種類の形状を占め得るので、対応するベクトルの形状は、単位超球の何らかの領域に入る可能性が他の領域に入る可能性より高い。たとえば、高調波成分を有する信号の重要な領域は、ピークが中心に置かれた形状を有するように選択され得る。図１６は、選択されたサブバンドおよびこの選択操作の残余へのフレームの分割を示す、線形予測符号化残余信号の高域部分（たとえば、３．５から７ｋＨｚの範囲の音声コンテンツを表す）の、１４０個のＭＤＣＴ係数のフレームをそのように選択する例を示す。そのような場合、不均一な量子化セルへの単位超球の分割を表すように、形状コードブックを設計するのが望ましいことがある。
【００３４】
複数段階のベクトル量子化方式は、前段階の量子化誤差を符号化することによって、より正確な結果を生成するので、この誤差はデコーダにおいて低減され得る。ｇａｉｎ−ｓｈａｐｅ  ＶＱの状況で複数段階のＶＱを実施するのが望ましいことがある。
【００３５】
上で述べられたように、形状量子化器は通常、コードブックベクトルが単位ノルムを有するという制約とともに、ベクトル量子化器として実装される。しかし、形状量子化器の量子化誤差（すなわち、入力ベクトルｘと対応する選択されたコードブックベクトルとの差）は、単位ノルムを有するとは考えられず、そのためスケーラビリティの問題が発生し、複数段階の量子化器の実装を難しいものにする。デコーダにおいて有用な結果を得るために、たとえば、量子化誤差ベクトルの形状と利得の両方の符号化が、通常は必要とされる。誤差利得を符号化すると、送信すべき追加の情報が発生し、これはビットが制約されている状況（たとえば、携帯電話、衛星通信）では望ましくないことがある。
【００３６】
図２Ａは、誤差利得の量子化を回避する、一般的な構成による複数段階の形状量子化のための装置Ａ１００のブロック図を示す。装置Ａ１００は、上で説明されたような、形状量子化器ＳＱ１１０の例と、形状量子化器ＳＱ１００の例ＳＱ２００とを含む。第１の形状量子化器ＳＱ１１０は、第１の入力ベクトルＶ１０ａの形状（たとえば、方向）を量子化して、長さＮの第１のコードブックベクトルＳｋと、Ｓｋに対するインデックスとを生成するように構成される。装置Ａ１００はまた、選択されたベクトルＳｋに基づくＮｘＮの回転行列Ｒｋを生成するように構成される、回転行列生成器２００と、回転行列Ｒｋと第２のベクトルＶ１０ｂの積を計算して、ベクトルｒ＝（Ｒｋ）ｖ（ｖはベクトルＶ１０ｂを示す）を生成するように構成される、乗算器ＭＬ１０とを含む。ベクトルＶ１０ｂは、ベクトルＶ１０ａと同じ方向を有し（たとえば、ベクトルＶ１０ａおよびＶ１０ｂは同じベクトルであってよく、または一方が他方の正規化されたバージョンであってもよい）、ベクトルｒは、ベクトルＶ１０ａおよびＶ１０ｂとは異なる方向を有する。第２の形状量子化器ＳＱ２００は、ベクトルｒの（またはベクトルｒと同じ方向を有するベクトルの）形状（たとえば、方向）を量子化して、第２のコードブックベクトルＳｎと、Ｓｎに対するインデックスとを生成するように構成される。（一般的な場合では、第２の形状ベクトル量子化器ＳＱ２００は、ベクトルｒではないがベクトルｒと同じ方向を有するベクトルを、入力として受け取るように構成され得ることに、留意されたい。）
この手法では、第１の形状量子化器ＳＱ１１０によって実行される各々の第１段階の量子化の誤差を符号化することは、（Ａ）入力ベクトルを表すものとして選択された第１段階のコードブックベクトルＳｋと（Ｂ）参照方向とに基づいて、回転行列Ｒｋによって対応する入力ベクトルの方向を回転させることを含む。その参照方向は、デコーダに知られており、一定であり得る。その参照方向はまた、入力ベクトルＶ１０ａと独立であり得る。
【００３７】
所望の回転を生成しつつ、ベクトルＶ１０ｂに対するあらゆる他の影響を最小化する式を使うように、回転行列生成器２００を構成するのが望ましいことがある。図３Ａは、式中のＳを、現在の選択されたベクトルＳｋで（長さＮの列ベクトルとして）置き換えることによって、回転行列Ｒｋを生成するために、回転行列生成器２００によって使用され得る式の一例を示す。この例では、参照方向は、単位ベクトル［１，０，０，・・・，０］の方向であるが、任意の他の参照方向を選択することができる。そのような参照方向の潜在的な利点は、各入力ベクトルに対して、対応するコードブックベクトルから対応する回転行列を比較的経済的に計算できることと、対応する回転を比較的経済的にかつ他の影響をほとんど伴わずに実行できることとを含み、これらは、固定小数点の実装形態では特に重要であり得る。
【００３８】
乗算器ＭＬ１０は、行列ベクトルの積ｒ＝Ｒｋｘｖを計算するように配置される。この単位ノルムベクトルは、第２の形状量子化段階（すなわち第２の形状量子化器ＳＱ２００）への入力である。同じ参照方向に基づいて各回転行列を構築すると、その方向に関する量子化誤差の集中を引き起こし、このことは、その誤差の効果的な第２段階の量子化を助ける。
【００３９】
回転行列Ｒｋによって引き起こされる回転は逆にできる（計算誤差の範囲内で）ので、回転行列の転置を伴う乗算によって、回転は逆にされ得る。図２Ｂは、一般的な構成による、複数段階の形状逆量子化のための装置Ｄ１００のブロック図を示す。装置Ｄ１００は、ベクトルＳｋに対するインデックスに応答して第１の選択されたコードブックベクトルＳｋを生成するように構成される、第１の形状逆量子化器５００と、ベクトルＳｎに対するインデックスに応答して第２の選択されたコードブックベクトルＳｎを生成するように構成される、第２の形状逆量子化器６００とを含む。装置Ｄ１００はまた、第１段階のコードブックベクトルＳｋに基づいて、エンコーダにおいて（たとえば、生成器２００によって）生成された対応する回転行列の転置である回転行列ＲｋTを生成するように構成される、回転行列生成器２１０を含む。たとえば、生成器２１０は、生成器２００と同じ式に従って行列を生成し、次いで、（たとえば、主対角線を中心に反転することによって）その行列の転置を計算し、または、上記の式の転置である生成式を使うように、実装され得る。装置Ｄ１００はまた、出力ベクトル
【数１１】
0005587501.tif 000012
【００４０】
を行列ベクトル積ＲｋTｘＳｎとして計算する、乗算器ＭＬ３０を含む。
【００４１】
図４は、単純な二次元の例を使った装置Ａ１００の動作の原理を示す。図の左側で、単位ノルムベクトルＳが、（破線の矢印によって示されるような）コードブックベクトルのセットのうちから最も近いＳｋ（星によって示されるような）を選択することによって、第１段階で量子化される。コードブックの検索は、（たとえば、ベクトルＳとの内積が最大であるコードブックベクトルを選択することによって）内積演算を使って実行され得る。コードブックベクトルは、単位超球（たとえば、図４に示されるような）の周りで均一に分布していてもよく、または本明細書で述べられたように不均一に分布していてもよい。
【００４２】
図４の左下で示されるように、ベクトル減算を使って第１段階の量子化誤差を求めると、もはや単位ノルムではない誤差ベクトルが発生する。代わりに、ベクトルＳは、本明細書で説明されるようなコードブックベクトルＳｋに基づく回転行列Ｒｋによって、図４の中心で示されるように回転される。たとえば、回転行列Ｒｋは、規定された参照方向（点によって示される）へとコードブックベクトルＳｋを回転させる行列として、選択され得る。図４の右側は、第２の量子化段階を示し、この段階において、回転されたベクトルＲｋｘＳは、三角形で示されるように、ＲｋｘＳに最も近い（たとえば、ベクトルＲｋｘＳとの内積が最大である）ベクトルを第２のコードブックから選択することによって、量子化される。図４に示されるように、回転操作は、参照方向の周りに第１段階の量子化誤差を集中させるので、第２のコードブックは、単位超球全体よりも狭い領域しかカバーしなくてよい。
【００４３】
Ｓ［１］が−１（ｎｅｇａｔｉｖｅ  ｏｎｅ）に近い場合、図３Ａの生成式は、非常に小さい数による除算を伴う可能性があり、このことは、固定小数点の実装形態では特に計算上の問題を引き起こし得る。そのような場合（たとえば、除算が常に少なくとも１以上の数によるものになるようにＳ［１］が０未満である場合は常に）、代わりに図３Ｂの式を使うように回転行列生成器２００と２１０とを構成するのが望ましいことがある。あるいは、そのような場合には、エンコーダにおいて第１の軸（たとえば、参照方向）を中心に回転行列を反転し、デコーダにおいてその反転を戻すことによって、等価的な効果を得ることができる。
【００４４】
参照方向の他の選択は、他の単位ベクトルのいずれをも含み得る。たとえば、図５Ａおよび図５Ｂは、図３Ａおよび図３Ｂで示された生成式に相当する、長さＮの単位ベクトル［０，０，・・・，０，１］によって示される参照方向に対する生成式の例を示す。図６は、図３Ａで示される式に相当する、０ではない唯一の要素がｄ番目の要素である長さＮ（１＜ｄ＜Ｎ）の単位ベクトルによって示される参照方向に対する生成式の、一般的な例を示す。一般に、選択された第１のコードブックベクトルと参照ベクトル(reference vector)とを含む平面内での、参照ベクトル（たとえば、図３Ａ、図３Ｂ、図４、図５Ａ、図５Ｂ、および図６の例におけるような）の方向への選択された第１のコードブックベクトルの回転を、回転行列Ｒｋが定義するのが望ましいことがある。ベクトルＶ１０ｂは一般にこの平面上にはないが、回転行列ＲｋによってベクトルＶ１０ｂを乗算することで、この平面と平行な平面内へと、ベクトルＶ１０ｂが回転する。回転行列Ｒｋによる乗算は、選択された第１のコードブックベクトルと参照方向の両方に直交する、（Ｎ−２次元の）部分空間(subspace)の周りでベクトルを回転させる。
【００４５】
図７Ａおよび図７Ｂはそれぞれ、図１Ａおよび図１Ｂの開ループの利得符号化構成への、装置Ａ１００の適用の例を示す。図７Ａでは、装置Ａ１００は、入力ベクトルＶ１０ａおよびベクトルＶ１０ｂとしてベクトルｘを受け取るように配置され、図７Ｂでは、装置Ａ１００は、入力ベクトルＶ１０ａおよびベクトルＶ１０ｂとして形状ベクトルＳを受け取るように配置される。
【００４６】
図７Ｃは、（たとえば、図１Ｃおよび図１Ｄに示されるような）閉ループの利得符号化構成で使われ得る、装置Ａ１００のある実装形態Ａ１１０のブロック図を示す。装置Ａ１１０は、回転行列Ｒｋの転置を計算する（たとえば、主対角線を中心に行列Ｒｋを反転する）ように構成される、転置器４００と、量子化された形状ベクトル
【数１２】
0005587501.tif 000013
【００４７】
を行列ベクトル積ＲｋTｘＳｎとして計算するように構成される、乗算器ＭＬ２０とを含む。図８Ａおよび図８Ｂはそれぞれ、図１Ｃおよび図１Ｄの開ループの利得符号化構成への、装置Ａ１１０の適用の例を示す。
【００４８】
本明細書で説明される、複数段階の形状量子化の原理は、任意の数の形状量子化の段階に拡張できる。たとえば、図９Ａは、装置Ａ１００の拡張である、３段階の形状量子化器の概略図を示す。この図では、様々な標識が以下の構造または値を示す。すなわち、ベクトル方向Ｖ１およびＶ２、コードブックベクトルＣ１およびＣ２、コードブックインデックスＸ１、Ｘ２、およびＸ３、量子化器Ｑ１、Ｑ２、およびＱ３、回転行列生成器Ｇ１およびＧ２、ならびに回転行列Ｒ１およびＲ２である。図９Ｂは、装置Ａ１１０の拡張である、３段階の形状量子化器の同様の概略図を示し、量子化された形状ベクトル
【数１３】
0005587501.tif 000014
【００４９】
を生成する（この図では、各標識ＴＲは行列転置器を示す）。図９Ｃは、装置Ｄ１００の拡張である、対応する３段階の形状逆量子化器の概略図を示す。
【００５０】
音声信号の低ビットレートの符号化は、音声信号フレームの内容を符号化するのに利用可能なビットの最適な利用を必要とすることが多い。音声信号フレームの内容は、信号のＰＣＭサンプルまたは、信号の変換領域での表現のいずれかであってよい。信号ベクトルを符号化することは通常、複数のサブベクトルへベクトルを分割することと、各サブベクトルへのビット割り当てを指定することと、対応する割り当てられた数のビットへと各サブベクトルを符号化することとを含む。典型的な音声符号化の用途では、たとえば、各フレームのための多数の（たとえば、１０個または２０個の）異なるサブバンドベクトルに対して、ｇａｉｎ−ｓｈａｐｅベクトル量子化を実行するのが望ましいことがある。フレームサイズの例には、１００、１２０、１４０、１６０、および１８０という値（たとえば、変換係数）があり、サブバンドの長さの例には、５、６、７、８、９、１０、１１、および１２がある。
【００５１】
ビット割り当ての一手法は、全体のビット割り当てＢを、異なる形状ベクトルの間で均一に分割すること（および、たとえば、閉ループ利得符号化方式で使うこと）である。たとえば、各サブベクトルに割り当てられたビットの数は、フレームごとに一定であり得る。この場合、ビット割り当て方式についての情報をエンコーダが送信する必要がないように、デコーダは、ビット割り当て方式についての情報によってすでに構成されていてよい。しかし、ビットの最適な利用の目標は、音声信号フレームの様々な成分が、その知覚的な重要性に関連する（たとえば、比例する）数のビットで符号化されるのを、確実にすることであり得る。入力サブバンドベクトルの一部は、あまり重要ではないことがある（たとえば、ほとんどエネルギーを占めないことがある）ので、そうした形状ベクトルにより少数のビットを割り当て、より重要なサブバンドのベクトルにより多くのビットを割り当てることによって、より良い結果が得られ得る。
【００５２】
固定された割り当て方式は、サブベクトルの相対的な知覚的重要性の変動を考慮しないので、各サブベクトルに割り当てられるビットの数がフレームごとに変化し得るように、動的な割り当て方式を代わりに使うのが望ましいことがある。この場合、フレームが復号され得るように、各フレームに対して使われる具体的なビット割り当て方式に関する情報が、デコーダに提供される。
【００５３】
ほとんどの音声エンコーダは、ビット割り当てを副次的な情報としてデコーダに明示的に送信する。たとえば、ＡＡＣのような音声符号化アルゴリズムは通常、副次的な情報、またはハフマン符号化のようなエントロピー符号化方式を使って、ビット割り当て情報を搬送する。副次的な情報は信号の符号化に直接は使われないので、ビット割り当てを搬送するためだけに副次的な情報を使うのは非効率である。ハフマン符号化または算術符号化のような可変長の符号語は、いくつかの利点をもたらし得るが、符号化の効率を下げ得る長い符号語に遭遇する可能性がある。ビット割り当て方式が、エンコーダからデコーダへ副次的な情報を明示的に送信することなく実行され得るように、エンコーダとデコーダの両方に知られている符号化された利得パラメータに基づく、動的なビット割り当て方式を代わりに使うのが望ましいことがある。そのような効率性は、携帯電話による通信のような、低ビットレートの用途では特に重要であり得る。
【００５４】
そのような動的なビット割り当ては、関連する利得の値に従って、形状量子化のためのビットを割り当てることによって、副次的な情報なしで実施され得る。ソースの符号化の観点では、閉ループの利得がより適していると考えられ得る。それは、開ループ利得とは異なり、閉ループ利得は具体的な形状量子化誤差を考慮するからである。しかし、この利得値に基づいて上流側の処理を実行するのが望ましいことがある。具体的には、形状をどのように量子化するかを決定するために、利得値を用いる（たとえば、量子化ビット割り当て量を複数の形状に動的に割り当てるために、利得値を用いる）のが望ましいことがある。この場合、利得がビット割り当てを制御するので、形状量子化は、エンコーダとデコーダの両方における利得に明示的に依存し、したがって、形状に依存する閉ループ利得ではなく、形状に依存しない開ループ利得の計算が使われる。
【００５５】
動的な割り当て方式を支援するために、量子化されるべき各形状に割り当てられる具体的なビットの数に応答して、異なる大きさのコードブックのうちから（すなわち、インデックスの長さが異なるコードブックのうちから）選択するように、形状量子化器と逆量子化器と（たとえば、量子化器ＳＱ１１０、ＳＱ２００、ＳＱ２１０、逆量子化器５００および６００）を実装するのが望ましいことがある。そのような例では、装置Ａ１００の量子化器の１つまたは複数（たとえば、量子化器ＳＱ１１０およびＳＱ２００またはＳＱ２１０）は、開ループ利得が小さいサブバンドベクトルの形状の符号化には、インデックスがより短いコードブックを使い、開ループ利得が大きいサブバンドベクトルの形状の符号化には、インデックスがより長いコードブックを使うように、実装され得る。そのような動的な割り当て方式は、対応する逆量子化器が追加の副次的な情報を何ら伴わずに同じ方式を適用できるように、一定である、または他の方式で決定的である、ベクトル利得と形状コードブックのインデックスの長さとの間のマッピングを、使うように構成され得る。
【００５６】
開ループ利得の符号化の場合には、形状の符号化に使われたビットの数の関数である係数γ（たとえば、形状コードブックベクトルに対するインデックスの長さ）によって、開ループ利得を乗算するように、デコーダ（たとえば、利得逆量子化器）を構成するのが望ましいことがある。形状を量子化するために使われるビットが非常に少ない場合、形状量子化器は大きな誤差を生成する可能性が高いので、ベクトルＳと
【数１４】
0005587501.tif 000015
【００５７】
とがよく一致しないことがあり、よって、その誤差を反映するようにデコーダにおいて利得を下げるのが望ましいことがある。補正係数γは、この誤差を平均の観点でしか表さない。γは、コードブック（具体的には、コードブック中のビットの数）にしか依存せず、入力ベクトルｘの具体的な詳細情報には何ら依存しない。補正係数γが送信されず、ベクトル
【数１５】
0005587501.tif 000016
【００５８】
の量子化にどれだけのビットが使われたかに従って、γがデコーダによってテーブルから読み出されるだけであるように、コーデックは構成され得る。
【００５９】
この補正係数γは、ビットレートに基づいて、平均ベクトル
【数１６】
0005587501.tif 000017
【００６０】
が真の形状Ｓにどの程度近いと予測され得るかを示す。ビットレートが上がるに従って、平均の誤差は小さくなり、補正係数γの値は１に近づき、またビットレートが非常に低くなるに従って、Ｓとベクトル
【数１７】
0005587501.tif 000018
【００６１】
の相関（たとえば、ベクトル
【数１８】
0005587501.tif 000019
【００６２】
とＳの内積）は小さくなり、補正係数γの値も小さくなる。閉ループ利得と同じ効果を（たとえば、実際の入力ごとに、適応的な観点で）得るのが望ましい可能性があるが、開ループの場合は、補正は通常、平均の観点でしか可能ではない。
【００６３】
あるいは、開ループ利得と閉ループ利得を補間するような方法が実行されてもよい。そのような手法は、単に長さに基づく平均の量子化誤差ではなく、具体的な形状量子化の品質に依存する動的な補正係数によって、開ループ利得の表現を補強する。そのような係数は、量子化された形状と逆量子化された形状のドット積に基づいて計算され得る。この補正係数の値は、非常に少数のビットで送信され得るように、非常に粗く符号化する（たとえば、インデックスとして、４エントリまたは８エントリのコードブックへと符号化する）のが望ましいことがある。
【００６４】
利得パラメータにおける相関を、経時的に、かつ／または周波数にわたって効率的に利用するのが望ましいことがある。上で述べられたように、信号ベクトルは、信号のフレームを変換領域へと変換し、これらの変換領域係数からサブバンドを形成することによって、音声符号化において形成され得る。連続するフレームからのベクトルのエネルギーの間の相関を利用するために、予測的な利得符号化方式を使うのが望ましいことがある。さらに、またはあるいは、単一のフレーム内でのサブバンドのエネルギーの間の相関を利用するために、変換利得符号化方式を使うのが望ましいことがある。
【００６５】
図１０Ａは、本明細書で説明されるような回転行列の異なる適用形態を含む、利得量子化器ＧＱ１０ある実装形態ＧＱ１００のブロック図を示す。利得量子化器ＧＱ１００は、入力信号のフレームのＭ個のサブバンドベクトルｘ１からｘＭを受け取り、サブバンド利得値の対応するベクトルＧＶ１０を生成するように構成される、利得ベクトル計算器ＧＶＣ１０を含む。Ｍ個のサブバンドは、フレーム全体を含み得る（たとえば、所定の分割方式に従ってＭ個のサブバンドに分割される）。あるいは、Ｍ個のサブバンドは、フレームのすべてよりも少ないフレーム（たとえば、本明細書で述べられた例におけるような、動的なサブバンド方式に従って選択されたような）を含んでもよい。サブバンドの数Ｍの例には、（限定ではなく）５、６、７、８、９、１０、および２０がある。
【００６６】
図１０Ｂは、利得ベクトル計算器ＧＶＣ１０のある実装形態ＧＶＣ２０のブロック図を示す。ベクトル計算器ＧＶＣ２０は、Ｍ個のサブバンドの対応する１つのための対応する利得値Ｇ１０−１、Ｇ１０−２、・・・、Ｇ１０−Ｍを計算するように各々構成される、利得係数計算器のＭ個の例ＧＣ１０−１、ＧＣ１０−２、・・・、ＧＣ１０−Ｍを含む。一例では、各々の利得係数計算器ＧＣ１０−１、ＧＣ１０−２、・・・、ＧＣ１０−Ｍは、対応するサブバンドベクトルのノルムとして、対応する利得値を計算するように構成される。別の例では、各々の利得係数計算器ＧＣ１０−１、ＧＣ１０−２、・・・、ＧＣ１０−Ｍは、対応する利得値を、デシベルで、または他の対数で、または知覚的な尺度で計算するように構成される。１つのそのような例では、各々の利得係数計算器ＧＣ１０−１、ＧＣ１０−２、・・・、ＧＣ１０−Ｍは、１≦ｍ≦Ｍとして、ＧＣ１０−ｍ＝１０ｌｏｇ10｜｜ｘｍ｜｜2のような式に従って、対応する利得値ＧＣ１０−ｍを計算するように構成され、ここでｘmは対応するサブバンドベクトルを示す。
【００６７】
ベクトル量子化器ＧＶＣ２０はまた、Ｍ個の利得値Ｇ１０−１からＧ１０−Ｍの各々を、対応するフレームの長さＭのベクトルの対応する要素に記憶し、このベクトルを利得ベクトルＧＶ１０として出力するように構成される、ベクトルレジスタＶＲ１０を含む。
【００６８】
利得量子化器ＧＱ１００はまた、回転行列Ｒｇを生成するように構成される、回転行列生成器２００のある実装形態２５０と、Ｒｇと利得ベクトルＧＶ１０の行列ベクトル積としてベクトルｇｒを計算するように構成される、乗算器ＭＬ３０とを含む。一例では、生成器２５０は、
【数１９】
0005587501.tif 000020
【００６９】
として、図３Ａに示される生成式中のＳを、長さＭの単位ノルムベクトルＹで置き換えることによって、行列Ｒｇを生成するように構成される。得られる回転行列Ｒｇは、利得ベクトルＧＶ１０という平均出力を有する出力ベクトルｇｒを、第１の要素において生成する効果を有する。
【００７０】
そのような第１の要素の平均を生成するために、他の変換（たとえば、ＦＦＴ、ＭＤＣＴ、Ｗａｌｓｈ、またはウェーブレット変換）を使うことができるが、この変換によって生成される出力ベクトルｇｒの他の要素の各々は、この平均とベクトルＧＶ１０の対応する要素との差である。サブバンド利得の間の差から、フレームの平均の利得値を分離することで、上記のような方式は、各サブバンド中（たとえば、音量が大きなフレーム中）のエネルギーを符号化するために使われていたであろうビットを、各サブバンド中の詳細情報を符号化するのに利用できるようにする。これらの差はまた、（たとえば、本明細書で説明されるような）対応する形状ベクトルに、ビットを動的に割り当てるための方法に対する、入力として使われ得る。平均出力をベクトルｇｒの異なる要素に配置するのが望ましい場合、本明細書で説明される生成式の対応する１つが代わりに使われ得る。
【００７１】
利得量子化器ＧＱ１００はまた、ベクトルｇｒ（たとえば、平均値を除外した長さＭ−１のサブベクトル）の少なくともあるサブベクトルを量子化して、（たとえば、１つまたは複数のコードブックインデックスとして）量子化された利得ベクトルＱＶ１０を生成するように構成される、ベクトル量子化器ＶＱ１０を含む。一例では、ベクトル量子化器ＶＱ１０は、分割ベクトル量子化を実行するように実装される。利得値Ｇ１０−１からＧ１０−Ｍが開ループ利得である場合、上で説明されたような補正係数γを、対応する符合された利得値に適用するように、対応する逆量子化器を構成するのが望ましいことがある。
【００７２】
図１１Ａは、対応する利得逆量子化器ＤＱ１００のブロック図を示す。逆量子化器ＤＱ１００は、量子化された利得ベクトルＱＶ１０を逆量子化して、逆量子化されたベクトル（ｇｒ）Dを生成するように構成される、ベクトル逆量子化器ＤＱ１０と、量子化器ＧＱ１００において適用された回転行列の転置ＲｇTを生成するように構成される、回転行列生成器２６０と、行列ＲｇTとベクトル（ｇｒ）Dの行列ベクトル積を計算して、復号された利得ベクトルＤＶ１０を生成するように構成される、乗算器ＭＬ４０とを含む。量子化された利得ベクトルＱＶ１０が、ベクトルｇｒの平均値要素を含まない場合（たとえば、図１２Ａを参照して本明細書で説明されるように）、復号された平均値は、逆量子化されたベクトル（ｇｒ）Dの要素と他の方法で組み合わされ、復号された利得ベクトルＤＶ１０の対応する要素を生成することができる。
【００７３】
平均出力によって占有されるベクトルｇｒの要素に対応する利得は、（たとえば、逆量子化の後に）利得ベクトルの他の要素から（たとえば、デコーダにおいて、および場合によってはビット割り当ての目的でエンコーダにおいて）導出され得る。たとえば、この利得は、（Ａ）平均によって示唆される全体の利得（すなわち、平均×Ｍ）と、（Ｂ）他の（Ｍ−１）個の再構築された利得の合計との差として、計算され得る。そのような導出は、他の（Ｍ−１）個の再構築された利得の量子化誤差を、導出された利得値の中に蓄積するという効果を生むことができ、また、その利得値を符号化し送信する手間をなくす。
【００７４】
利得量子化器ＧＱ１００は、本明細書で説明されるような複数段階の形状量子化装置Ａ１００のある実装形態とともに使われてよく（たとえば、Ａ１１０）、また、関連するサブバンドベクトルのセットへの、単一段階のｇａｉｎ−ｓｈａｐｅベクトル量子化の適用として、装置Ａ１００とは独立に使われてもよいことが、明確に指摘される。
【００７５】
上で述べられたように、予測的な利得符号化によるＧＳＶＱは、選択された（たとえば、高エネルギーの）サブバンドのセットの利得係数を、フレームごとに差動的に符号化するのに使われ得る。各サブバンドの利得係数が、互いに独立に、かつ前のフレームの対応する利得係数に対して差動的に符号化されるように、予測的な利得符号化を含むｇａｉｎ−ｓｈａｐｅベクトル量子化方式を使うのが望ましいことがある。
【００７６】
図１１Ｂは、予測誤差ＰＥ１０を量子化して、量子化された予測誤差ＱＰ１０と、誤差ＱＰ１０に対応するコードブックインデックスとを生成するように構成される、スカラー量子化器ＣＱ１０と、予測された利得値ＰＧ１０を利得値ＧＮ１０から差し引き、予測誤差ＰＥ１０を生成するように構成される、加算器ＡＤ１０と、量子化された予測誤差ＱＰ１０を予測された利得値ＰＧ１０に加算するように構成される、加算器ＡＤ２０と、量子化された予測誤差ＱＰ１０の前の値と予測された利得値ＰＧ１０との１つまたは複数の和に基づいて、予測された利得値ＰＧ１０を計算するように構成される、予測器ＰＤ１０とを含む、利得量子化器ＧＱ１０の予測的な実装形態ＧＱ２００のブロック図を示す。予測器ＰＤ１０は、Ｈ（ｚ）＝ａ1ｚ-1＋ａ2ｚ-2のような変換関数を有する、二次有限インパルス応答フィルタとして実装され得る。図１１Ｅは、予測器ＰＤ１０のそのような実装形態ＰＤ２０のブロック図を示す。そのようなフィルタの例示的な係数値には、（ａ１，ａ２）＝（０．８，０．２）がある。入力利得値ＧＮ１０は、本明細書で説明されるような開ループ利得であっても閉ループ利得であってもよい。図１１Ｃは、利得量子化器ＧＱ１０の別の予測的な実装形態ＧＱ２１０のブロック図を示す。この場合、スカラー量子化器ＣＱ１０は、選択されたインデックスに対応するコードブックのエントリを出力する必要はない。図１１Ｄは、利得量子化器ＧＱ２００とＧＱ２１０のいずれかによって生成されたような、量子化された予測誤差ＱＰ１０に対するコードブックインデックスに従って、復号された利得値ＤＮ１０を生成するのに使われ得る（たとえば、対応するデコーダにおいて）、利得逆量子化器ＧＤ２００のブロック図を示す。逆量子化器ＧＤ２００は、逆量子化された予測誤差ＰＤ１０を、コードブックインデックスによって示されるように生成するように構成される、スカラー逆量子化器ＣＤ１０と、復号された利得値ＤＮ１０の１つまたは複数の前の値に基づいて、予測された利得値ＤＧ１０を生成するように配置される、予測器ＰＤ１０の例と、予測された利得値ＤＧ１０と逆量子化された予測誤差ＰＤ１０を加算して、復号された利得値ＤＮ１０を生成するように配置される、加算器ＡＤ２０の例とを含む。
【００７７】
利得量子化器ＧＱ２００またはＧＱ２１０は、本明細書で説明されるような複数段階の形状量子化装置Ａ１００のある実装形態（たとえば、Ａ１１０）とともに使われてよく、また、関連するサブバンドベクトルのセットへの、単一段階のｇａｉｎ−ｓｈａｐｅベクトル量子化の適用として、装置Ａ１００とは独立に使われてもよい。利得値ＧＢ１０が開ループ利得である場合、上で説明されたような補正係数γを、対応する符合された利得値に適用するように、対応する逆量子化器を構成するのが望ましいことがある。
【００７８】
利得量子化器ＧＱ２００またはＧＱ２１０のような予測的な構成を、利得量子化器ＧＱ１００のような利得符号化のための変換構成と組み合わせるのが、望ましいことがある。図１２Ａは、利得量子化器ＧＱ１００が、本明細書で説明されるようにサブバンドベクトルｘ１からｘＭを量子化して、ベクトルｇｒから平均利得値ＡＧ１０を、さらに、ベクトルｇｒの他の（たとえば、差動的な）要素に基づく量子化された利得ベクトルＱＶ１０を生成するように構成される例を示す。この例では、予測的な利得量子化器ＧＱ２００（あるいは、ＧＱ２１０）は、平均利得値ＡＧ１０のみに対して動作するように配置される。
【００７９】
図１２Ａに示されるような手法を、本明細書で説明されるような動的な割り当て方法とともに使うのが、望ましいことがある。サブバンド利得の平均の成分は、サブバンド間の動的な割り当てに影響しないので、過去に依存しない差動成分の符号化が、予測的な符号化操作の失敗（たとえば、前のフレームの消滅に起因する）に耐性があり過去のフレームの喪失の影響を受けにくい、動的な割り当て操作を実現するために使われ得る。そのような構成は、本明細書で説明されるような複数段階の形状量子化装置Ａ１００のある実装形態（たとえば、Ａ１１０）とともに使われてよく、また、関連するサブバンドベクトルのセットへの、単一段階のｇａｉｎ−ｓｈａｐｅベクトル量子化の適用として、装置Ａ１００とは独立に使われてもよいことが、明確に指摘される。
【００８０】
本開示で示される形状量子化操作のいずれも、本明細書で説明される複数段階の形状量子化の原理に従って実施され得ることが、明確に企図され本明細書で開示される。装置Ａ１００のある実装形態を含むエンコーダは、一連のセグメントとして音声信号を処理するように構成され得る。セグメント（または「フレーム」）は、通常約５〜１０ミリ秒から約４０または５０ミリ秒の範囲にある長さの、時間領域セグメントに対応する、変換係数のブロックであり得る。時間領域セグメントは、（たとえば、隣接するセグメントと２５％または５０％）重複していてもよく、または重複していなくてもよい。
【００８１】
音声コーダにおいて、高い品質と少ない遅延の両方を実現するのが望ましいことがある。音声コーダは、高い品質を得るために大きなフレームを使うことができるが、残念ながらフレームサイズが大きいと通常は遅延が大きくなる。本明細書で説明されるような音声エンコーダの可能性のある利点には、フレームサイズが短くても符号化が高品質であることがある（たとえば、２０ミリ秒のフレームサイズで、１０ミリ秒の先読み）。１つの具体的な例では、時間領域信号が２０ミリ秒の重複しない一連のセグメントに分割され、各フレームに対するＭＤＣＴが、隣接するフレームの各々と１０ミリ秒重複する、４０ミリ秒のウィンドウにわたって行われる。
【００８２】
１つの特定の例では、装置Ａ１００のある実装形態を含むエンコーダによって処理される一連のセグメント（または「フレーム」）の各々は、０から４ｋＨｚの低周波数域を表す１６０個のＭＤＣＴ係数のセットを格納する（低域ＭＤＣＴまたはＬＢ−ＭＤＣＴとも呼ばれる）。別の特定の例では、そのようなエンコーダによって処理される一連のフレームの各々は、３．５から７ｋＨｚの高周波数域を表す１４０個のＭＤＣＴ係数のセットを格納する（高域ＭＤＣＴまたはＨＢ−ＭＤＣＴとも呼ばれる）。
【００８３】
装置Ａ１００のある実装形態を含むエンコーダは、長さが一定で等しいサブバンドを符号化するように実装され得る。ある特定の例では、各サブバンドは７個の周波数ビンの幅（たとえば、ビン間隔が２５Ｈｚの場合は１７５Ｈｚ）を有するので、各サブバンドベクトルの形状の長さは７である。しかし、本明細書で説明される原理は、サブバンドの長さが標的フレームごとに変動し得る場合、および／または、標的フレーム内のサブバンドのセットの２つ以上（場合によってはすべて）の長さが異なり得る場合にも適用され得ることが、明確に企図され本明細書で開示される。
【００８４】
装置Ａ１００のある実装形態を含む音声エンコーダは、音声信号のフレーム（たとえば、ＬＰＣ残余）を、変換領域におけるサンプルとして（たとえば、ＭＤＣＴ係数またはＦＦＴ係数のような変換係数として）受け取るように構成され得る。そのようなエンコーダは、所定の分割方式（すなわち、フレームが受信される前にデコーダに知られている固定分割方式）に従ってサブバンドのセットへと変換係数をグループ化して、ｇａｉｎ−ｓｈａｐｅベクトル量子化方式を使って各サブバンドを符号化することによって、各フレームを符号化するように実装され得る。そのような所定の分割方式の一例では、各々の１００要素の入力ベクトルが、それぞれ長さが（２５，３５，４０）である３個のサブベクトルに分割される。
【００８５】
高調波成分を有する音声信号（たとえば、音楽信号、声による発話信号）では、所与の時間における、周波数領域の中でエネルギーが大きな領域の位置は、長時間にわたって比較的持続し得る。そのような長時間にわたる相関を利用することによって、音声信号の効率的な変換領域での符号化を実行するのが望ましいことがある。１つのそのような例では、動的なサブバンド選択方式が、符号化されるべきフレームの知覚的に重要な（たとえば、高エネルギーの）サブバンドを、復号された前のフレームの対応する知覚的に重要なサブバンドと照合するために使われる（「従属モード符号化」とも呼ばれる）。ある特定の適用例では、そのような方式を使って、線形予測符号化（ＬＰＣ）操作の残余のような、音声信号の０〜４ｋＨｚの範囲に対応するＭＤＣＴ変換係数を符号化する。従属モードの符号化のさらなる説明は、本出願が優先権を主張する上で列挙された出願において見出され得る。
【００８６】
別の例では、高調波信号のサブバンドの選択されたセットの各々の位置が、基本周波数Ｆ０の選択された値と、周波数領域における隣接するピークの間隔の選択された値とを使って、モデル化される。そのような高調波モデリングのさらなる説明は、本出願が優先権を主張する上で列挙された出願において見出され得る。
【００８７】
同じ信号の異なる周波数帯を別々に符号化するように、音声コーデックを構成するのが望ましいことがある。たとえば、音声信号の低域部分を符号化する第１の符号化された信号と、同じ音声信号の高域部分を符号化する第２の符号化された信号とを生成するように、そのようなコーデックを構成するのが望ましいことがある。そのような帯域を分割した符号化が望ましいことがある適用例には、狭域の復号システムと互換性を保たなければならない広域の符号化システムがある。そのような適用例には、異なる周波数帯に対する異なる符号化方式の使用に対応することによって、様々な異なる種類の音声入力信号（たとえば、発話と音楽の両方）の効率的な符号化を実現する、汎用音声符号化方式もある。
【００８８】
信号の異なる周波数帯が別々に符号化される場合、一部の場合には、別の帯域からの符号化された（たとえば、量子化された）情報を使うことによって、１つの帯域での符号化効率を向上させることが可能であり得る。それは、この符号化された情報は、すでにデコーダにおいて知られているからである。たとえば、緩やかな高調波モデルを適用して、音声信号フレームの第１の帯域（「ソース」帯域とも呼ばれる）の変換係数を表す復号されたものからの情報を使って、同じ音声信号フレームの第２の帯域（「モデル化されるべき」帯域とも呼ばれる）の変換係数を符号化することができる。高調波モデルに関連がある場合には、第１の帯域を表す復号されたものがすでにデコーダにおいて利用可能なので、符号化効率を向上させることができる。
【００８９】
そのような拡張された方法は、符号化された第１の帯域と高調波的に関連がある第２の帯域のサブバンドを決定することを含み得る。音声信号（たとえば、複雑な音楽信号）の低ビットレート符号化アルゴリズムでは、信号のフレームを複数の帯域（たとえば、低域および高域）に分割して、これらの帯域の間の相関を利用し、帯域の時間領域での表現を効率的に符号化するのが望ましいことがある。
【００９０】
そのような拡張のある特定の例では、音声信号フレームの３．５〜７ｋＨｚ帯に対応するＭＤＣＴ係数（以後上側帯域ＭＤＣＴまたはＵＢ−ＭＤＣＴと呼ばれる）は、フレームの量子化された低域ＭＤＣＴスペクトル（０〜４ｋＨｚ）からの高調波情報に基づいて符号化される。そのような拡張の他の例では、２つの周波数域は重複する必要がなく、分離すらされてもよいことが、明示的に指摘される（たとえば、０〜４ｋＨｚ帯を表す復号されたものからの情報に基づく、フレームの７〜１４ｋＨｚ帯の符号化）。高調波モデリングのさらなる説明は、本出願が優先権を主張する上で列挙された出願において見出され得る。
【００９１】
図１３Ａは、タスクＴ１００と、Ｔ２００と、Ｔ３００と、Ｔ４００とを含む、一般的な構成によるベクトル量子化の方法Ｍ１００のフローチャートを示す。タスクＴ１００は、（たとえば、形状量子化器ＳＱ１００に関して本明細書で説明されるように）第１のコードブックの複数の第１のコードブックベクトルのうちから対応する１つを選択することによって、第１の方向を有する第１の入力ベクトルを量子化する。タスクＴ２００は、（たとえば、回転行列生成器２００に関して本明細書で説明されるように）選択された第１のコードブックベクトルに基づく回転行列を生成する。タスクＴ３００は、（たとえば、乗算器ＭＬ１０に関して本明細書で説明されるように）（Ａ）第１の方向を有するベクトルと（Ｂ）回転行列との積を計算して、第２の方向を有する回転されたベクトルを生成する。タスクＴ４００は、（たとえば、第２の形状量子化器ＳＱ２００に関して本明細書で説明されるように）第２のコードブックの複数の第２のコードブックベクトルのうちから対応する１つを選択することによって、第２の方向を有する第２の入力ベクトルを量子化する。
【００９２】
図１３Ｂは、一般的な構成によるベクトル量子化のための装置ＭＦ１００のブロック図を示す。装置ＭＦ１００は、（たとえば、形状量子化器ＳＱ１００に関して本明細書で説明されるように）第１のコードブックの複数の第１のコードブックベクトルのうちから対応する１つを選択することによって、第１の方向を有する第１の入力ベクトルを量子化するための手段Ｆ１００を含む。装置ＭＦ１００はまた、（たとえば、回転行列生成器２００に関して本明細書で説明されるように）選択された第１のコードブックベクトルに基づく回転行列を生成するための手段Ｆ２００を含む。装置ＭＦ１００はまた、（たとえば、乗算器ＭＬ１０に関して本明細書で説明されるように）（Ａ）第１の方向を有するベクトルと（Ｂ）回転行列との積を計算して、第２の方向を有する回転されたベクトルを生成するための手段Ｆ３００を含む。装置ＭＦ１００はまた、（たとえば、第２の形状量子化器ＳＱ２００に関して本明細書で説明されるように）第２のコードブックの複数の第２のコードブックベクトルのうちから対応する１つを選択することによって、第２の方向を有する第２の入力ベクトルを量子化するための手段Ｆ４００を含む。
【００９３】
図１４Ａは、タスクＴ６００と、Ｔ７００と、Ｔ８００と、Ｔ９００とを含む、一般的な構成によるベクトル逆量子化のための方法ＭＤ１００のフローチャートを示す。タスクＴ６００は、（たとえば、第１の形状逆量子化器５００に関して本明細書で説明されるように）第１のコードブックの複数の第１のコードブックベクトルのうちから、第１のコードブックインデックスによって示される第１のコードブックベクトルを選択する。タスクＴ７００は、（たとえば、回転行列生成器２００に関して本明細書で説明されるように）選択された第１のコードブックベクトルに基づく回転行列を生成する。タスクＴ８００は、（たとえば、第２の形状逆量子化器６００に関して本明細書で説明されるように）第２のコードブックの複数の第２のコードブックベクトルのうちから、第２のコードブックインデックスによって示され第１の方向を有する第２のコードブックベクトルを選択する。タスクＴ９００は、（たとえば、乗算器ＭＬ３０に関して本明細書で説明されるように）（Ａ）第１の方向を有するベクトルと（Ｂ）回転行列との積を計算して、第１の方向とは異なる第２の方向を有する回転されたベクトルを生成する。
【００９４】
図１４Ｂは、一般的な構成によるベクトル逆量子化のための装置ＤＦ１００のブロック図を示す。装置ＤＦ１００は、（たとえば、第１の形状逆量子化器５００に関して本明細書で説明されるように）第１のコードブックの複数の第１のコードブックベクトルのうちから、第１のコードブックインデックスによって示される第１のコードブックベクトルを選択するための手段Ｆ６００を含む。装置ＤＦ１００はまた、（たとえば、回転行列生成器２１０に関して本明細書で説明されるように）選択された第１のコードブックベクトルに基づく回転行列を生成するための手段Ｆ７００を含む。装置ＤＦ１００はまた、（たとえば、第２の形状逆量子化器６００に関して本明細書で説明されるように）第２のコードブックの複数の第２のコードブックベクトルのうちから、第２のコードブックインデックスによって示され第１の方向を有する第２のコードブックベクトルを選択するための手段Ｆ８００を含む。装置ＤＦ１００はまた、（たとえば、乗算器ＭＬ３０に関して本明細書で説明されるように）（Ａ）第１の方向を有するベクトルと（Ｂ）回転行列との積を計算して、第１の方向とは異なる第２の方向を有する回転されたベクトルを生成するための手段Ｆ９００を含む。
【００９５】
図１２Ｂは、装置Ａ１００のある実装形態を含む、通信デバイスＤ１０のブロック図を示す。デバイスＤ１０は、装置Ａ１００（またはＭＦ１００）の、および場合によっては装置Ｄ１００（またはＤＦ１００）の要素を具現化する、チップまたはチップセットＣＳ１０（たとえば、移動局モデム（ＭＳＭ）チップセット）を含む。チップ／チップセットＣＳ１０は、装置Ａ１００またはＭＦ１００のソフトウェアおよび／またはファームウェア部を（たとえば、命令として）実行するように構成され得る、１つまたは複数のプロセッサを含み得る。
【００９６】
チップ／チップセットＣＳ１０は、高周波（ＲＦ）通信信号を受信し、ＲＦ信号内で符号化されたオーディオ信号を復号し再生するように構成される、受信機と、マイクロフォンＭＶ１０によって生成される信号に基づく、（たとえば、装置Ａ１００によって生成されるようなコードインデックスを含む）符号化された音声信号を表すＲＦ通信信号を送信するように構成される、送信機とを含む。そのようなデバイスは、１つまたは複数の（「コーデック」とも呼ばれる）符号化および復号方式を介して音声通信データをワイヤレスに送信および受信するように構成され得る。そのようなコーデックの例には、「Ｅｎｈａｎｃｅｄ  Ｖａｒｉａｂｌｅ  Ｒａｔｅ  Ｃｏｄｅｃ，Ｓｐｅｅｃｈ  Ｓｅｒｖｉｃｅ  Ｏｐｔｉｏｎｓ  ３，６８  ａｎｄ  ７０  ｆｏｒ  Ｗｉｄｅｂａｎｄ  Ｓｐｒｅａｄ  Ｓｐｅｃｔｒｕｍ  Ｄｉｇｉｔａｌ  Ｓｙｓｔｅｍｓ」と題する第３世代パートナーシッププロジェクト２（３ＧＰＰ２）文書Ｃ．Ｓ００１４−Ｃ、ｖ１．０、２００７年２月（ｗｗｗ．３ｇｐｐ．ｏｒｇでオンライン入手可能）に記載されているＥｎｈａｎｃｅｄ  Ｖａｒｉａｂｌｅ  Ｒａｔｅ  Ｃｏｄｅｃ、「Ｓｅｌｅｃｔａｂｌｅ  Ｍｏｄｅ  Ｖｏｃｏｄｅｒ（ＳＭＶ）  Ｓｅｒｖｉｃｅ  Ｏｐｔｉｏｎ  ｆｏｒ  Ｗｉｄｅｂａｎｄ  Ｓｐｒｅａｄ  Ｓｐｅｃｔｒｕｍ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｙｓｔｅｍｓ」と題する３ＧＰＰ２文書Ｃ．Ｓ００３０−０、ｖ３．０、２００４年１月（ｗｗｗ．３ｇｐｐ．ｏｒｇでオンライン入手可能）に記載されているＳｅｌｅｃｔａｂｌｅ  Ｍｏｄｅ  Ｖｏｃｏｄｅｒ音声コーデック、文書ＥＴＳＩ  ＴＳ  １２６  ０９２  Ｖ６．０．０（Ｅｕｒｏｐｅａｎ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｔａｎｄａｒｄｓ  Ｉｎｓｔｉｔｕｔｅ（ＥＴＳＩ）、Ｓｏｐｈｉａ  Ａｎｔｉｐｏｌｉｓ  Ｃｅｄｅｘ、ＦＲ、２００４年１２月）に記載されているＡｄａｐｔｉｖｅ  Ｍｕｌｔｉ  Ｒａｔｅ（ＡＭＲ）音声コーデック、および文書ＥＴＳＩ  ＴＳ  １２６  １９２  Ｖ６．０．０（ＥＴＳＩ、２００４年１２月）に記載されているＡＭＲ  Ｗｉｄｅｂａｎｄ音声コーデックがある。たとえば、チップまたはチップセットＣＳ１０は、１つまたは複数のそのようなコーデックに準拠するように、符号化されたフレームを生成するように構成され得る。
【００９７】
デバイスＤ１０は、アンテナＣ３０を介してＲＦ通信信号を受信および送信するように構成される。デバイスＤ１０はまた、アンテナＣ３０への経路中にダイプレクサと１つまたは複数の電力増幅器とを含み得る。また、チップ／チップセットＣＳ１０は、キーパッドＣ１０を介してユーザ入力を受信し、ディスプレイＣ２０を介して情報を表示するように構成される。この例では、デバイスＤ１０はまた、全地球測位システム（ＧＰＳ）位置サービス、および／またはワイヤレス（たとえば、Ｂｌｕｅｔｏｏｔｈ（登録商標））ヘッドセットなどの外部デバイスとの短距離通信をサポートするための、１つまたは複数のアンテナＣ４０を含む。別の例では、そのような通信デバイスは、それ自体がＢｌｕｅｔｏｏｔｈ（登録商標）ヘッドセットであり、キーパッドＣ１０、ディスプレイＣ２０、およびアンテナＣ３０がない。
【００９８】
通信デバイスＤ１０は、スマートフォンおよびラップトップおよびタブレットコンピュータを含む、様々な通信デバイスに組み込まれ得る。図１５は、正面に２つの音声マイクロフォンＭＶ１０−１およびＭＶ１０−３が配置され、背面に音声マイクロフォンＭＶ１０−２が配置され、正面の上側の角に誤差マイクロフォンＭＥ１０が配置され、背面に雑音参照マイクロフォンＭＲ１０が配置された、ハンドセットＨ１００（たとえば、スマートフォン）の正面図、背面図、および側面図を示す。拡声器ＬＳ１０が、誤差マイクロフォンＭＥ１０の近くの、正面の上側の中心に配置され、（たとえば、スピーカーフォンの用途で）２つの他の拡声器ＬＳ２０Ｌ、ＬＳ２０Ｒも設けられる。そのようなハンドセットのマイクロフォン間の最大距離は、一般に約１０または１２センチメートルである。
【００９９】
本明細書で開示される方法および装置は、概して任意の送受信および／または音声感知用途、特にそのような用途のモバイル事例または他の持ち運び可能事例において一般に適用され得る。たとえば、本明細書で開示される構成の範囲は、符号分割多元接続（ＣＤＭＡ）無線インターフェースを採用するように構成されたワイヤレス電話通信システムに常駐する、通信デバイスを含む。しかし、本明細書で説明した特徴を有する方法および装置は、有線ならびに／またはワイヤレス（たとえば、ＣＤＭＡ、ＴＤＭＡ、ＦＤＭＡ、および／もしくはＴＤ−ＳＣＤＭＡ）送信チャネルを介したボイスオーバＩＰ（ＶｏＩＰ）を採用するシステムなど、当業者に知られている広範囲の技術を採用する様々な通信システムのいずれにも常駐し得ることが、当業者には理解されよう。
【０１００】
本明細書で開示される通信デバイスは、パケット交換式であるネットワーク（たとえば、ＶｏＩＰなどのプロトコルに従って音声送信を搬送するように構成された有線および／もしくはワイヤレスネットワーク）ならびに／または回線交換式であるネットワークでの使用に適合され得ることが明確に企図され、本明細書で開示される。また、本明細書で開示される通信デバイスは、狭帯域符号化システム（たとえば、約４または５キロヘルツの音声周波数域を符号化するシステム）での使用、ならびに／または、全帯域の広帯域符号化システムおよび帯域を分割した広帯域符号化システムを含む広帯域符号化システム（たとえば、５キロヘルツを超える音声周波数を符号化するシステム）での使用に適合され得ることが明確に企図され、本明細書で開示される。
【０１０１】
説明した構成の提示は、本明細書で開示される方法および他の構造物を当業者が製造または使用できるように与えたものである。本明細書で図示および説明したフローチャート、ブロック図、および他の構造は例にすぎず、これらの構造の他の変形形態も開示の範囲内である。これらの構成に対する様々な変更が可能であり、本明細書で提示した一般的な原理は他の構成にも同様に適用できる。したがって、本開示は、上に示した構成に限定されるものではなく、原開示の一部をなす、出願した添付の特許請求の範囲を含む、本明細書において任意の方法で開示される原理および新規の特徴に一致する最も広い範囲が与えられるべきである。
【０１０２】
情報および信号は、多種多様な技術および技法のいずれかを使用して表され得ることが、当業者には理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、およびシンボルは、電圧、電流、電磁波、磁界もしくは磁性粒子、光場もしくは光子、またはそれらの任意の組合せによって表され得る。
【０１０３】
本明細書で開示される構成の実装形態の重要な設計要件は、圧縮されたオーディオもしくはオーディオビジュアル情報（たとえば、本明細書で識別される例のうちの１つなど、圧縮形式に従って符号化されるファイルまたはストリーム）の再生などの計算集約的な適用例、または広帯域通信（たとえば、１２、１６、４４．１、４８、または１９２ｋＨｚなど、８キロヘルツよりも高いサンプリングレートにおける音声通信）の適用例では特に、（一般に百万命令毎秒またはＭＩＰＳで測定される）処理遅延および／または計算複雑性を最小にすることを含み得る。
【０１０４】
本明細書で開示されるような装置（たとえば、装置Ａ１００、Ａ１１０、Ｄ１００、ＭＦ１００、またはＤＦ１００）は、意図する用途に適切であると考えられる、ハードウェアとソフトウェアの任意の組合せ、および／またはハードウェアとファームウェアの任意の組合せで実装され得る。たとえば、そのような装置の要素は、たとえば、同じチップ上に、またはチップセット中の２つ以上のチップ上に常駐する、電子デバイスおよび／または光デバイスとして作製され得る。そのようなデバイスの一例は、トランジスタまたは論理ゲートなどの論理要素の固定アレイまたはプログラマブルアレイであり、これらの要素のいずれも１つまたは複数のそのようなアレイとして実装され得る。これらの要素のうちの任意の２つ以上、さらにはすべてが、同じ１つまたは複数のアレイ内に実装され得る。そのような１つまたは複数のアレイは、１つまたは複数のチップ内（たとえば、２つ以上のチップを含むチップセット内）に実装され得る。
【０１０５】
本明細書で開示される装置（たとえば、装置Ａ１００、Ａ１１０、Ｄ１００、ＭＦ１００、またはＤＦ１００）の様々な実装形態の１つまたは複数の要素は、全体または一部が、マイクロプロセッサ、組込みプロセッサ、ＩＰコア、デジタル信号プロセッサ、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）、ＡＳＳＰ（特定用途向け標準製品）、およびＡＳＩＣ（特定用途向け集積回路）などの論理要素の１つまたは複数の固定アレイまたはプログラマブルアレイ上で実行されるように構成された、命令の１つまたは複数のセットとしても実装され得る。本明細書で開示される装置の実装形態の様々な要素のいずれも、１つまたは複数のコンピュータ（たとえば、「プロセッサ」とも呼ばれる、命令の１つまたは複数のセットまたはシーケンスを実行するようにプログラムされた１つまたは複数のアレイを含む機械）としても実装されてよく、これらの要素のうちの任意の２つ以上、さらにはすべてが、同じそのような１つまたは複数のコンピュータ内に実装されてよい。
【０１０６】
本明細書で開示されるプロセッサまたは処理するための他の手段は、たとえば、同じチップ上に、またはチップセット中の２つ以上のチップ上に常駐する、１つまたは複数の電子デバイスおよび／または光デバイスとして作製され得る。そのようなデバイスの一例は、トランジスタまたは論理ゲートなどの論理要素の固定アレイまたはプログラマブルアレイであり、これらの要素のいずれも１つまたは複数のそのようなアレイとして実装され得る。そのような１つまたは複数のアレイは、１つまたは複数のチップ内（たとえば、２つ以上のチップを含むチップセット内）に実装され得る。そのようなアレイの例には、マイクロプロセッサ、組込みプロセッサ、ＩＰコア、ＤＳＰ、ＦＰＧＡ、ＡＳＳＰ、およびＡＳＩＣなどの論理要素の固定アレイまたはプログラマブルアレイがある。本明細書で開示されるプロセッサまたは処理するための他の手段は、１つまたは複数のコンピュータ（たとえば、命令の１つまたは複数のセットまたはシーケンスを実行するようにプログラムされた１つまたは複数のアレイを含む機械）、または他のプロセッサとしても実装され得る。本明細書で説明したプロセッサは、プロセッサが組み込まれているデバイスまたはシステム（たとえば、音声感知デバイス）の別の演算に関係するタスクなど、方法Ｍ１００またはＭＤ１００の実装形態のプロシージャに直接関係しないタスクを実行するかまたは命令の他のセットを実行するために使用することが可能である。また、本明細書で開示される方法の一部が音声感知デバイスのプロセッサによって実行され、その方法の別の一部は１つまたは複数の他のプロセッサの制御下で実行されることが可能である。
【０１０７】
本明細書で開示される構成に関して説明した様々な例示的なモジュール、論理ブロック、回路、およびテストならびに他の動作は、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得ることが、当業者には諒解されよう。そのようなモジュール、論理ブロック、回路、および動作は、本明細書で開示される構成を生成するように設計された、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ＡＳＩＣもしくはＡＳＳＰ、ＦＰＧＡもしくは他のプログラマブル論理デバイス、個別ゲート回路もしくはトランジスタ論理回路、個別ハードウェア構成要素、またはそれらの任意の組合せを用いて実装または実行され得る。たとえば、そのような構成は、少なくとも部分的に、ハードワイヤード回路として、特定用途向け集積回路へと作製された回路構成として、または、不揮発性記憶装置にロードされるファームウェアプログラムとして、または、汎用プロセッサもしくは他のデジタル信号処理ユニットなどの論理要素のアレイによって実行可能な命令である機械可読コードとしてデータ記憶媒体からロードされるかデータ記憶媒体にロードされるソフトウェアプログラムとして、実装され得る。汎用プロセッサはマイクロプロセッサであってよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってもよい。プロセッサは、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つもしくは複数のマイクロプロセッサ、または、任意の他のそのような構成として実装されてもよい。ソフトウェアモジュールは、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（読取り専用メモリ）、フラッシュＲＡＭなどの不揮発性ＲＡＭ（ＮＶＲＡＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、レジスタ、ハードディスク、リムーバブルディスク、もしくはＣＤ−ＲＯＭなど、非一時的記憶媒体中に、または当技術分野で知られている任意の他の形態の記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であってもよい。プロセッサおよび記憶媒体はＡＳＩＣ中に常駐してよい。ＡＳＩＣは、ユーザ端末内に常駐してよい。代替として、プロセッサおよび記憶媒体は、ユーザ端末内に個別構成要素として常駐してよい。
【０１０８】
本明細書で開示される様々な方法（たとえば、方法Ｍ１００、ＭＤ１００、および本明細書で説明した様々な装置の動作に関して開示される他の方法）は、プロセッサなどの論理要素のアレイによって実行されてよく、本明細書で説明した装置の様々な要素は、そのようなアレイ上で実行されるように設計されたモジュールとして実装され得ることに留意されたい。本明細書で使用する「モジュール」または「サブモジュール」という用語は、ソフトウェア、ハードウェアまたはファームウェアの形態でコンピュータ命令（たとえば、論理式）を含む任意の方法、装置、デバイス、ユニットまたはコンピュータ可読データ記憶媒体を指し得る。複数のモジュールまたはシステムを１つのモジュールまたはシステムに結合することができ、１つのモジュールまたはシステムを、同じ機能を実行する複数のモジュールまたはシステムに分離することができることを理解されたい。ソフトウェアまたは他のコンピュータ実行可能命令で実装した場合、プロセスの要素は本質的に、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを用いて関連するタスクを実行するコードセグメントである。「ソフトウェア」という用語は、ソースコード、アセンブリ言語コード、機械コード、バイナリコード、ファームウェア、マクロコード、マイクロコード、論理要素のアレイによって実行可能な命令の１つもしくは複数のセットまたはシーケンス、およびそのような例の任意の組合せを含むことを理解されたい。プログラムまたはコードセグメントは、プロセッサ可読媒体に記憶されてよく、または、搬送波に埋め込まれたコンピュータデータ信号によって伝送媒体または通信リンクを介して送信されてよい。
【０１０９】
本明細書で開示される方法、方式、および技法の実装形態は、（たとえば、本明細書に記載する１つまたは複数のコンピュータ可読記憶媒体の有形のコンピュータ可読特徴において）論理要素のアレイ（たとえば、プロセッサ、マイクロプロセッサ、マイクロコントローラ、または他の有限状態機械）を含む機械によって実行可能な命令の１つまたは複数のセットとしても有形に実施され得る。「コンピュータ可読媒体」という用語は、情報を記憶または転送することができる、揮発性の、不揮発性の、取外し可能な、および取外し不可能な記憶媒体を含む、任意の媒体を含み得る。コンピュータ可読媒体の例には、電子回路、半導体メモリデバイス、ＲＯＭ、フラッシュメモリ、消去可能ＲＯＭ（ＥＲＯＭ）、フロッピー（登録商標）ディスケットもしくは他の磁気ストレージ、ＣＤ−ＲＯＭ／ＤＶＤもしくは他の光ストレージ、ハードディスクもしくは所望の情報を記憶するために使用され得る任意の他の媒体、光ファイバー媒体、無線周波（ＲＦ）リンク、または、所望の情報を搬送するために使用されアクセスされ得る任意の他の媒体がある。コンピュータデータ信号は、電子ネットワークチャネル、光ファイバー、無線リンク、電磁リンク、ＲＦリンクなどの伝送媒体を介して伝播することができる、任意の信号を含み得る。コードセグメントは、インターネットまたはイントラネットなどのコンピュータネットワークを介してダウンロードされ得る。いずれの場合も、本開示の範囲は、そのような実施形態によって限定されると解釈すべきではない。
【０１１０】
本明細書で説明した方法のタスクの各々は、ハードウェアで直接実施されてもよく、プロセッサによって実行されるソフトウェアモジュールで実施されてもよく、またはその２つの組合せで実施されてもよい。本明細書で開示される方法の実装形態の典型的な適用例では、論理要素のアレイ（たとえば、論理ゲート）は、この方法の様々なタスクのうちの１つ、複数、さらにはすべてを実行するように構成される。タスクの１つまたは複数（場合によってはすべて）は、論理要素のアレイ（たとえば、プロセッサ、マイクロプロセッサ、マイクロコントローラ、または他の有限状態機械）を含む機械（たとえば、コンピュータ）によって読取り可能および／または実行可能である、コンピュータプログラム製品（たとえば、ディスク、フラッシュもしくは他の不揮発性メモリカード、半導体メモリチップなどの１つまたは複数のデータ記憶媒体など）に埋め込まれたコード（たとえば、命令の１つまたは複数のセット）としても実装され得る。本明細書で開示される方法の実装形態のタスクは、２つ以上のそのようなアレイまたは機械によっても実行され得る。これらのまたは他の実装形態では、タスクは、携帯電話のようなワイヤレス通信用のデバイス、またはそのような通信機能をもつ他のデバイス内で実行され得る。そのようなデバイスは、（ＶｏＩＰなどの１つまたは複数のプロトコルを使用して）回線交換および／またはパケット交換ネットワークと通信するように構成され得る。たとえば、そのようなデバイスは、符号化フレームを受信および／または送信するように構成されたＲＦ回路を含み得る。
【０１１１】
本明細書で開示される様々な方法は、ハンドセット、ヘッドセット、または携帯情報端末（ＰＤＡ）などのポータブル通信デバイスによって実行されてよく、本明細書で説明した様々な装置は、そのようなデバイス内に含まれ得ることが明確に開示される。典型的なリアルタイム（たとえば、オンライン）適用例は、そのようなモバイルデバイスを使用して行われる電話による会話である。
【０１１２】
１つまたは複数の例示的な実施形態では、本明細書で説明した動作は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実施され得る。ソフトウェアで実施される場合、そのような動作は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体に記憶され得るか、あるいはコンピュータ可読媒体を介して送信され得る。「コンピュータ可読媒体」という用語は、コンピュータ可読記憶媒体と通信（たとえば、伝送）媒体の両方を含む。限定ではなく、例として、コンピュータ可読記憶媒体は、（限定はしないが、ダイナミックＲＡＭもしくはスタティックＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、および／またはフラッシュＲＡＭを含み得る）半導体メモリ、または強誘電体メモリ、磁気抵抗メモリ、オボニックメモリ、高分子メモリ、または相変化メモリなどの記憶要素のアレイ、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、および／または、磁気ディスクストレージもしくは他の磁気ストレージデバイスを備え得る。そのような記憶媒体は、コンピュータによってアクセスされ得る命令またはデータ構造の形態で情報を記憶し得る。通信媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、命令またはデータ構造の形態の所望のプログラムコードを搬送するために使用されコンピュータによってアクセスされ得る、任意の媒体を備え得る。同様に、いかなる接続も適切にコンピュータ可読媒体と称される。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または、赤外線、無線、および／もしくはマイクロ波のようなワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、または、赤外線、無線、および／もしくはマイクロ波のようなワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク（ｄｉｓｋ）およびディスク（ｄｉｓｃ）は、コンパクトディスク（ｄｉｓｃ）（ＣＤ）、レーザディスク（ｄｉｓｃ）、光ディスク（ｄｉｓｃ）、デジタル多用途ディスク（ｄｉｓｃ）（ＤＶＤ）、フロッピーディスク（ｄｉｓｋ）およびブルーレイ（登録商標）ディスク（ｄｉｓｃ）（Ｂｌｕ−Ｒａｙ  Ｄｉｓｃ  Ａｓｓｏｃｉａｔｉｏｎ、カリフォルニア州ユニヴァーサルシティー）を含み、ディスク（ｄｉｓｋ）は、通常、データを磁気的に再生し、ディスク（ｄｉｓｃ）はデータをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１１３】
本明細書で説明した音響信号処理装置は、いくつかの動作を制御するために音声入力を受け取り、またはバックグラウンドノイズから所望のノイズを分離することから利益を得ることができる、通信デバイスなどの電子デバイスに組み込まれ得る。多くの適用例において、複数の方向から発生した背景音から、明瞭な所望の音を強調または分離することから利益を得ることができる。そのような適用例は、音声認識および検出、音声強調および分離、音声により有効になる制御などの機能を組み込んだ、電子デバイスまたはコンピューティングデバイスにおける人と機械の間のインターフェースを含み得る。そのような音響信号処理装置を、限定された処理機能のみを与えるデバイスに適するように実装するのが望ましいことがある。
【０１１４】
本明細書で説明したモジュール、要素、およびデバイスの様々な実装形態の要素は、たとえば、同じチップ上に、またはチップセット中の２つ以上のチップ上に常駐する、電子デバイスおよび／または光デバイスとして作製され得る。そのようなデバイスの一例は、トランジスタまたはゲートなど、論理要素の固定アレイまたはプログラマブルアレイである。本明細書で説明した装置の様々な実装形態の１つまたは複数の要素は、全体または一部が、マイクロプロセッサ、組込みプロセッサ、ＩＰコア、デジタル信号プロセッサ、ＦＰＧＡ、ＡＳＳＰ、およびＡＳＩＣのような論理要素の１つまたは複数の固定アレイまたはプログラマブルアレイ上で実行されるように構成された、命令の１つまたは複数のセットとしても実装され得る。
【０１１５】
本明細書で説明した装置の一実装形態の１つまたは複数の要素は、装置が組み込まれているデバイスまたはシステムの別の動作に関係するタスクなど、装置の動作に直接関係しないタスクを実施し、または装置の動作に直接関係しない命令の他のセットを実行するために使用することが可能である。また、そのような装置の実装形態の１つまたは複数の要素は、共通の構造（たとえば、異なる要素に対応するコードの部分を異なる時間に実行するために使用されるプロセッサ、異なる要素に対応するタスクを異なる時間に実施するように実行される命令のセット、または、異なる要素向けの動作を異なる時間に実施する電子デバイスおよび／もしくは光デバイスの構成）を有することが可能である。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］
第１の方向を有する第１の入力ベクトルを受け取り、第１のコードブックの複数の第１のコードブックベクトルのうちから対応する１つを選択するように構成される、第１のベクトル量子化器と、
前記選択された第１のコードブックベクトルに基づく回転行列を生成するように構成される、回転行列生成器と、
（Ａ）前記第１の方向を有するベクトルと（Ｂ）前記回転行列との積を計算して、前記第１の方向とは異なる第２の方向を有する回転されたベクトルを生成するように構成される、乗算器と、
前記第２の方向を有する第２の入力ベクトルを受け取り、第２のコードブックの複数の第２のコードブックベクトルのうちから対応する１つを選択するように構成される、第２のベクトル量子化器とを備える、ベクトル量子化のための装置。
［２］
前記複数の第１のコードブックベクトルと前記複数の第２のコードブックベクトルの各々が、単位ノルムベクトルである、上記［１］に記載の装置。
［３］
前記第１のベクトル量子化器が、前記第１の入力ベクトルの利得値に基づいて、複数のコードブックのうちから前記第１のコードブックを選択するように構成される、上記［１］および上記［２］のいずれか一項に記載の装置。
［４］
前記複数の第１のコードブックベクトルの各々に対して、前記第１の入力ベクトルと前記コードブックベクトルの内積が、前記第１の入力ベクトルと前記選択された第１のコードブックベクトルの内積よりも大きくない、上記［１］から上記［３］のいずれか一項に記載の装置。
［５］
前記第１の入力ベクトルが、音声信号のフレームの複数のサブバンドベクトルのうちの１つである、上記［１］から上記［４］のいずれか一項に記載の装置であって、
前記音声信号の前のフレームの平均利得値に基づいて、前記複数のサブバンドベクトルの平均利得値を符号化するように構成される、利得量子化器を含む、装置。
［６］
前記回転行列の少なくとも１つの行の要素の各々が、前記選択された第１のコードブックベクトルの対応する要素に基づく、上記［１］から上記［５］のいずれか一項に記載の装置。
［７］
前記回転行列の少なくとも１つの列の要素の各々が、前記選択された第１のコードブックベクトルの対応する要素に基づく、上記［１］から上記［６］のいずれか一項に記載の装置。
［８］
前記回転行列が、前記第１の入力ベクトルとは独立の参照ベクトルに基づく、上記［１］から上記［７］のいずれか一項に記載の装置。
［９］
前記参照ベクトルが、０ではない要素を１つしか有さない、上記［８］に記載の装置。
［１０］
前記回転行列が、前記選択された第１のコードブックベクトルと前記参照ベクトルとを含む平面内での、前記選択された第１のコードブックベクトルの前記参照ベクトルの方向への回転を定義する、上記［８］および上記［９］のいずれか一項に記載の装置。
［１１］
前記乗算器が、前記回転行列と前記第１の入力ベクトルとの積を計算することによって、前記第１の方向を有するベクトルと前記回転行列との前記積を計算するように構成される、上記［１］から上記［１０］のいずれか一項に記載の装置。
［１２］
前記選択された第１のコードブックベクトルが、単位パルスのパターンに基づく、上記［１］から上記［１１］のいずれか一項に記載の装置。
［１３］
第１のコードブックの複数の第１のコードブックベクトルのうちから対応する１つを選択することによって、第１の方向を有する第１の入力ベクトルを量子化することと、
前記選択された第１のコードブックベクトルに基づく回転行列を生成することと、
（Ａ）前記第１の方向を有するベクトルと（Ｂ）前記回転行列との積を計算して、前記第１の方向とは異なる第２の方向を有する回転されたベクトルを生成することと、
第２のコードブックの複数の第２のコードブックベクトルのうちから対応する１つを選択することによって、前記第２の方向を有する第２の入力ベクトルを量子化することとを備える、ベクトル量子化の方法。
［１４］
前記複数の第１のコードブックベクトルと前記複数の第２のコードブックベクトルの各々が、単位ノルムベクトルである、上記［１３］に記載の方法。
［１５］
第１の入力ベクトルを前記量子化することが、前記第１の入力ベクトルの利得値に基づいて、複数のコードブックのうちから前記第１のコードブックを選択することを含む、上記［１３］および上記［１４］のいずれか一項に記載の方法。
［１６］
前記複数の第１のコードブックベクトルの各々に対して、前記第１の入力ベクトルと前記コードブックベクトルの内積が、前記第１の入力ベクトルと前記選択された第１のコードブックベクトルの内積よりも大きくない、上記［１３］から上記［１５］のいずれか一項に記載の方法。
［１７］
前記第１の入力ベクトルが、音声信号のフレームの複数のサブバンドベクトルのうちの１つである、上記［１３］から上記［１６］のいずれか一項に記載の方法であって、
前記音声信号の前のフレームの平均利得値に基づいて、前記複数のサブバンドベクトルの平均利得値を符号化することを含む、方法。
［１８］
前記回転行列の少なくとも１つの行の要素の各々が、前記選択された第１のコードブックベクトルの対応する要素に基づく、上記［１３］から上記［１７］のいずれか一項に記載の方法。
［１９］
前記回転行列の少なくとも１つの列の要素の各々が、前記選択された第１のコードブックベクトルの対応する要素に基づく、上記［１３］から上記［１８］のいずれか一項に記載の方法。
［２０］
前記回転行列が、前記第１の入力ベクトルとは独立の参照ベクトルに基づく、上記［１３］から上記［１９］のいずれか一項に記載の方法。
［２１］
前記参照ベクトルが、０ではない要素を１つしか有さない、上記［２０］に記載の方法。
［２２］
前記回転行列が、前記選択された第１のコードブックベクトルと前記参照ベクトルとを含む平面内での、前記選択された第１のコードブックベクトルの前記参照ベクトルの方向への回転を定義する、上記［２０］および上記［２１］のいずれか一項に記載の方法。
［２３］
前記回転行列と前記第１の入力ベクトルとの積を計算することによって、前記第１の方向を有する前記ベクトルと前記回転行列との前記積を前記計算することが実行される、上記［１３］から上記［２２］のいずれか一項に記載の方法。
［２４］
前記選択された第１のコードブックベクトルが、単位パルスのパターンに基づく、上記［１３］から上記［２３］のいずれか一項に記載の方法。
［２５］
第１のコードブックの複数の第１のコードブックベクトルのうちから対応する１つを選択することによって、第１の方向を有する第１の入力ベクトルを量子化するための手段と、
前記選択された第１のコードブックベクトルに基づく回転行列を生成するための手段と、
（Ａ）前記第１の方向を有するベクトルと（Ｂ）前記回転行列との積を計算して、前記第１の方向とは異なる第２の方向を有する回転されたベクトルを生成するための手段と、
第２のコードブックの複数の第２のコードブックベクトルのうちから対応する１つを選択することによって、前記第２の方向を有する第２の入力ベクトルを量子化するための手段とを備える、ベクトル量子化のための装置。
［２６］
前記複数の第１のコードブックベクトルと前記複数の第２のコードブックベクトルの各々が、単位ノルムベクトルである、上記［２５］に記載の装置。
［２７］
第１の入力ベクトルを量子化するための前記手段が、前記第１の入力ベクトルの利得値に基づいて、複数のコードブックのうちから前記第１のコードブックを選択するように構成される、上記［２５］および上記［２６］のいずれか一項に記載の装置。
［２８］
前記複数の第１のコードブックベクトルの各々に対して、前記第１の入力ベクトルと前記コードブックベクトルの内積が、前記第１の入力ベクトルと前記選択された第１のコードブックベクトルの内積よりも大きくない、上記［２５］から上記［２７］のいずれか一項に記載の装置。
［２９］
前記第１の入力ベクトルが、音声信号のフレームの複数のサブバンドベクトルのうちの１つである、上記［２５］から上記［２８］のいずれか一項に記載の装置であって、
前記音声信号の前のフレームの平均利得値に基づいて、前記複数のサブバンドベクトルの平均利得値を符号化するための手段を含む、装置。
［３０］
前記回転行列の少なくとも１つの行の要素の各々が、前記選択された第１のコードブックベクトルの対応する要素に基づく、上記［２５］から上記［２９］のいずれか一項に記載の装置。
［３１］
前記回転行列の少なくとも１つの列の要素の各々が、前記選択された第１のコードブックベクトルの対応する要素に基づく、上記［２５］から上記［３０］のいずれか一項に記載の装置。
［３２］
前記回転行列が、前記第１の入力ベクトルとは独立の参照ベクトルに基づく、上記［２５］から上記［３１］のいずれか一項に記載の装置。
［３３］
前記参照ベクトルが、０ではない要素を１つしか有さない、上記［３２］に記載の装置。
［３４］
前記回転行列が、前記選択された第１のコードブックベクトルと前記参照ベクトルとを含む平面内での、前記選択された第１のコードブックベクトルの前記参照ベクトルの方向への回転を定義する、上記［３２］および上記［３３］のいずれか一項に記載の装置。
［３５］
積を計算するための前記手段が、前記回転行列と前記第１の入力ベクトルとの積を計算することによって、前記第１の方向を有するベクトルと前記回転行列との前記積を計算するように構成される、上記［２５］から上記［３４］のいずれか一項に記載の装置。
［３６］
前記選択された第１のコードブックベクトルが、単位パルスのパターンに基づく、上記［２５］から上記［３５］のいずれか一項に記載の装置。
［３７］
第１のコードブックインデックスと第２のコードブックインデックスとを含む、量子化されたベクトルを逆量子化するための装置であって、
前記第１のコードブックインデックスを受け取り、第１のコードブックから対応する第１のコードブックベクトルを生成するように構成される、第１のベクトル逆量子化器と、
前記第１のコードブックベクトルに基づく回転行列を生成するように構成される、回転行列生成器と、
第２のコードブックインデックスを受け取り、第１の方向を有する対応する第２のコードブックベクトルを第２のコードブックから生成するように構成される、第２のベクトル逆量子化器と、
（Ａ）前記第１の方向を有するベクトルと（Ｂ）前記回転行列との積を計算して、前記第１の方向とは異なる第２の方向を有する回転されたベクトルを生成するように構成される、乗算器とを備える、装置。
［３８］
第１のコードブックインデックスと第２のコードブックインデックスとを含む、量子化されたベクトルを逆量子化する方法であって、
第１のコードブックの複数の第１のコードブックベクトルのうちから、前記第１のコードブックインデックスによって示される第１のコードブックベクトルを選択することと、
前記選択された第１のコードブックベクトルに基づく回転行列を生成することと、
第２のコードブックの複数の第２のコードブックベクトルのうちから、前記第２のコードブックインデックスによって示され第１の方向を有する第２のコードブックベクトルを選択することと、
（Ａ）前記第１の方向を有するベクトルと（Ｂ）前記回転行列との積を計算して、前記第１の方向とは異なる第２の方向を有する回転されたベクトルを生成することとを備える、方法。
［３９］
第１のコードブックインデックスと第２のコードブックインデックスとを含む、量子化されたベクトルを逆量子化するための装置であって、
第１のコードブックの複数の第１のコードブックベクトルのうちから、前記第１のコードブックインデックスによって示される第１のコードブックベクトルを選択するための手段と、
前記選択された第１のコードブックベクトルに基づく回転行列を生成するための手段と、
第２のコードブックの複数の第２のコードブックベクトルのうちから、前記第２のコードブックインデックスによって示され第１の方向を有する第２のコードブックベクトルを選択するための手段と、
（Ａ）前記第１の方向を有するベクトルと（Ｂ）前記回転行列との積を計算して、前記第１の方向とは異なる第２の方向を有する回転されたベクトルを生成するための手段とを備える、装置。
［４０］
有形な機構を有し、前記有形な機構が、機械に前記機構を読み取らせて、上記［１３］から上記［２４］および上記［３８］のいずれか一項に記載の方法を実行させる、コンピュータ可読記憶媒体。
【図１Ａ】
0005587501.tif 000021
【図１Ｂ】
0005587501.tif 000022
【図１Ｃ】
0005587501.tif 000023
【図１Ｄ】
0005587501.tif 000024
【図２Ａ】
0005587501.tif 000025
【図２Ｂ】
0005587501.tif 000026
【図３Ａ】
0005587501.tif 000027
【図３Ｂ】
0005587501.tif 000028
【図４】
0005587501.tif 000029
【図５Ａ】
0005587501.tif 000030
【図５Ｂ】
0005587501.tif 000031
【図６】
0005587501.tif 000032
【図７Ａ】
0005587501.tif 000033
【図７Ｂ】
0005587501.tif 000034
【図７Ｃ】
0005587501.tif 000035
【図８Ａ】
0005587501.tif 000036
【図８Ｂ】
0005587501.tif 000037
【図９Ａ】
0005587501.tif 000038
【図９Ｂ】
0005587501.tif 000039
【図９Ｃ】
0005587501.tif 000040
【図１０Ａ】
0005587501.tif 000041
【図１０Ｂ】
0005587501.tif 000042
【図１１Ａ】
0005587501.tif 000043
【図１１Ｂ】
0005587501.tif 000044
【図１１Ｃ】
0005587501.tif 000045
【図１１Ｄ】
0005587501.tif 000046
【図１１Ｅ】
0005587501.tif 000047
【図１２Ａ】
0005587501.tif 000048
【図１２Ｂ】
0005587501.tif 000049
【図１３Ａ】
0005587501.tif 000050
【図１３Ｂ】
0005587501.tif 000051
【図１４Ａ】
0005587501.tif 000052
【図１４Ｂ】
0005587501.tif 000053
【図１５】
0005587501.tif 000054
【図１６】
0005587501.tif 000055