(57)【特許請求の範囲】
【請求項１】
１つのフレームにおけるN個の周波数エンベロープをN1個のベクトルに分割するステップであり、前記N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを有し、N1、N及びMは正の整数であり、Mは2以上であり、NはN1より大きいステップと、
量子化された第１のベクトルに対応するコードワードを取得するために、Bビットを有する第１のコードブックを使用することにより、前記N1個のベクトルの中の第１のベクトルを量子化するステップであり、前記第１のコードブックは、2B1個の部分に分割され、Bは2以上の正の整数であり、B1は1以上の正の整数であるステップと、
前記量子化された第１のベクトルに対応する前記コードワードに従って、前記量子化された第１のベクトルが前記第１のコードブックの前記2B1個の部分の中の第iの部分に関連すると決定するステップであり、iは1以上且つ2B1以下の正の整数であるステップと、
前記第１のコードブックの前記第iの部分のコードブックに従って第２のコードブックを決定するステップと、
前記第２のコードブックに基づいて前記N1個のベクトルの中の第２のベクトルを量子化するステップと
を有し、
前記第iの部分のコードブックに従って第２のコードブックを決定するステップは、
前記第１のコードブックの前記第iの部分を前記第２のコードブックとして使用するステップであり、前記第１のコードブックの前記第iの部分のビット量はB-B1であるステップを有する周波数エンベロープベクトル量子化方法。
【請求項２】
１つのフレームにおけるN個の周波数エンベロープをN1個のベクトルに分割するステップであり、前記N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを有し、N1、N及びMは正の整数であり、Mは2以上であり、NはN1より大きいステップと、
量子化された第１のベクトルに対応するコードワードを取得するために、Bビットを有する第１のコードブックを使用することにより、前記N1個のベクトルの中の第１のベクトルを量子化するステップであり、前記第１のコードブックは、2B1個の部分に分割され、Bは2以上の正の整数であり、B1は1以上の正の整数であるステップと、
前記量子化された第１のベクトルに対応する前記コードワードに従って、前記量子化された第１のベクトルが前記第１のコードブックの前記2B1個の部分の中の第iの部分に関連すると決定するステップであり、iは1以上且つ2B1以下の正の整数であるステップと、
前記第１のコードブックの前記第iの部分のコードブックに従って第２のコードブックを決定するステップと、
前記第２のコードブックに基づいて前記N1個のベクトルの中の第２のベクトルを量子化するステップと
を有し、
前記第iの部分のコードブックに従って第２のコードブックを決定するステップは、
予めトレーニングされたコードブックを前記第２のコードブックとして使用するステップであり、前記予めトレーニングされたコードブックのビット量と前記第１のコードブックの前記第iの部分のビット量とは同じであり、共にB-B1であるステップを有する周波数エンベロープベクトル量子化方法。
【請求項３】
B1が1である場合、前記量子化された第１のベクトルに対応する前記コードワードに従って、前記量子化された第１のベクトルが前記第１のコードブックの前記2B1個の部分の中の第iの部分に関連すると決定するステップは、
前記量子化された第１のベクトルに対応する前記コードワードが前記第１のコードブックの２つの部分の中の前半部分に属する場合、前記量子化された第１のベクトルが前記第１のコードブックの前記前半部分に関連すると決定するステップ、又は
前記量子化された第１のベクトルに対応する前記コードワードが前記第１のコードブックの前記２つの部分の中の後半部分に属する場合、前記量子化された第１のベクトルが前記第１のコードブックの前記後半部分に関連すると決定するステップ
を有する、請求項１又は２に記載の方法。
【請求項４】
Mが2であり、B1が1である場合、前記量子化された第１のベクトルに対応する前記コードワードに従って、前記量子化された第１のベクトルが前記第１のコードブックの前記2B1個の部分の中の第iの部分に関連すると決定するステップは、
前記コードワードに対応する前記量子化された第１のベクトルの第２の値に対する前記コードワードに対応する前記量子化された第１のベクトルの第１の値の比が予め設定された範囲内にあるか否かを決定するステップと、
前記比が前記予め設定された範囲内にあると決定された場合、前記量子化された第１のベクトルが前記第１のコードブックの２つの部分の中の前半部分に関連すると決定するステップ、又は
前記比が前記予め設定された範囲内にないと決定された場合、前記量子化された第１のベクトルが前記第１のコードブックの前記２つの部分の中の後半部分に関連すると決定するステップと
を有する、請求項１又は２に記載の方法。
【請求項５】
１つのフレームにおけるN個の周波数エンベロープをN1個のベクトルに分割するステップであり、前記N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを有するステップは、
前記１つのフレームがM個のサブフレームを有し、前記M個のサブフレームの中の各サブフレームがN1個のエンベロープを有し、MとN1との積がNである場合、N1個のベクトルを取得するために、前記M個のサブフレームの中の各サブフレームに対応するエンベロープを１つのベクトルに結合するステップであり、前記N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを有するステップを有する、請求項１ないし４のうちいずれか１項に記載の方法。
【請求項６】
１つのフレームにおけるN個の周波数エンベロープをN1個のベクトルに分割するように構成されたベクトル分割ユニットであり、前記N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを有し、N1、N及びMは正の整数であり、Mは2以上であり、NはN1より大きいベクトル分割ユニットと、
量子化された第１のベクトルに対応するコードワードを取得するために、Bビットを有する第１のコードブックを使用し、前記ベクトル分割ユニットによる前記分割によって取得された前記N1個のベクトルの中の第１のベクトルを量子化するように構成された第１の量子化ユニットであり、前記第１のコードブックは、2B1個の部分に分割され、Bは2以上の正の整数であり、B1は1以上の正の整数である第１の量子化ユニットと、
前記第１の量子化ユニットによる前記量子化によって取得された前記量子化された第１のベクトルに対応する前記コードワードに従って、前記量子化された第１のベクトルが前記第１のコードブックの前記2B1個の部分の中の第iの部分に関連すると決定するように構成された第１の決定ユニットであり、iは1以上且つ2B1以下の正の整数である第１の決定ユニットと、
前記第１の決定ユニットにより決定された前記第iの部分のコードブックに従って第２のコードブックを決定するように構成された第２の決定ユニットと、
前記第２の決定ユニットにより決定された前記第２のコードブックに基づいて前記N1個のベクトルの中の第２のベクトルを量子化するように構成された第２の量子化ユニットと
を有し、
前記第２の決定ユニットは、
前記第１のコードブックの前記第iの部分を前記第２のコードブックとして使用するように構成され、前記第１のコードブックの前記第iの部分のビット量はB-B1である周波数エンベロープベクトル量子化装置。
【請求項７】
１つのフレームにおけるN個の周波数エンベロープをN1個のベクトルに分割するように構成されたベクトル分割ユニットであり、前記N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを有し、N1、N及びMは正の整数であり、Mは2以上であり、NはN1より大きいベクトル分割ユニットと、
量子化された第１のベクトルに対応するコードワードを取得するために、Bビットを有する第１のコードブックを使用し、前記ベクトル分割ユニットによる前記分割によって取得された前記N1個のベクトルの中の第１のベクトルを量子化するように構成された第１の量子化ユニットであり、前記第１のコードブックは、2B1個の部分に分割され、Bは2以上の正の整数であり、B1は1以上の正の整数である第１の量子化ユニットと、
前記第１の量子化ユニットによる前記量子化によって取得された前記量子化された第１のベクトルに対応する前記コードワードに従って、前記量子化された第１のベクトルが前記第１のコードブックの前記2B1個の部分の中の第iの部分に関連すると決定するように構成された第１の決定ユニットであり、iは1以上且つ2B1以下の正の整数である第１の決定ユニットと、
前記第１の決定ユニットにより決定された前記第iの部分のコードブックに従って第２のコードブックを決定するように構成された第２の決定ユニットと、
前記第２の決定ユニットにより決定された前記第２のコードブックに基づいて前記N1個のベクトルの中の第２のベクトルを量子化するように構成された第２の量子化ユニットと
を有し、
前記第２の決定ユニットは、
予めトレーニングされたコードブックを前記第２のコードブックとして使用するように構成され、前記予めトレーニングされたコードブックのビット量と前記第１のコードブックの前記第iの部分のビット量とは同じであり、共にB-B1である周波数エンベロープベクトル量子化装置。
【請求項８】
B1が1である場合、前記第１の決定ユニットは、
前記量子化された第１のベクトルに対応する前記コードワードが前記第１のコードブックの２つの部分の中の前半部分に属する場合、前記量子化された第１のベクトルが前記第１のコードブックの前記前半部分に関連すると決定するように、或いは
前記量子化された第１のベクトルに対応する前記コードワードが前記第１のコードブックの前記２つの部分の中の後半部分に属する場合、前記量子化された第１のベクトルが前記第１のコードブックの前記後半部分に関連すると決定するように構成される、請求項６又は７に記載の装置。
【請求項９】
Mが2であり、B1が1である場合、前記第１の決定ユニットは、
前記コードワードに対応する前記量子化された第１のベクトルの第２の値に対する前記コードワードに対応する前記量子化された第１のベクトルの第１の値の比が予め設定された範囲内にあるか否かを決定し、
前記比が予め設定された範囲内にあると決定された場合、前記量子化された第１のベクトルが前記第１のコードブックの２つの部分の中の前半部分に関連すると決定し、或いは
前記比が前記予め設定された範囲内にないと決定された場合、前記量子化された第１のベクトルが前記第１のコードブックの前記２つの部分の中の後半部分に関連すると決定するように構成される、請求項６又は７に記載の装置。
【請求項１０】
前記ベクトル分割ユニットは、
前記１つのフレームがM個のサブフレームを有し、前記M個のサブフレームの中の各サブフレームがN1個のエンベロープを有し、MとN1との積がNである場合、N1個のベクトルを取得するために、前記M個のサブフレームの中の各サブフレームに対応するエンベロープを１つのベクトルに結合するように構成され、前記N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを有する、請求項６ないし９のうちいずれか１項に記載の装置。
【請求項１１】
コンピュータに請求項１ないし５のうちいずれか１項に記載の方法を実行させるプログラムを記録したコンピュータ読み取り可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化及び復号化の分野に関し、特に、周波数エンベロープベクトル量子化方法及び装置に関する。
【背景技術】
【０００２】
一般的に、入力信号の１つのフレームの周波数の周波数エンベロープを取得するために、これらの周波数の全部又は一部のエネルギー値が平均化され、平均エネルギー値の平方根が計算される。
【０００３】
現在では、コーデックにより周波数エンベロープを量子化する方法は、通常では簡単なスカラー量子化又はベクトル量子化を示す。しかし、或る特別な場合、例えば、多くの周波数エンベロープが１つのフレームから取得される必要があり、周波数エンベロープを量子化するために使用されるビット量が或る程度限られている場合、スカラー量子化が周波数エンベロープのそれぞれに使用される場合に大量のビットが消費される可能性がある。
【０００４】
既存のベクトル量子化方法は、以下のステップを含む。(1)ベクトルの次元に従って、量子化される必要がある周波数を複数のベクトルに分割する。(2)ベクトルのそれぞれを量子化するために、ビット量Bに従って大量のベクトルサンプルを使用することにより、2Bの長さを有するコードブックを予めトレーニングする。すなわち、このコードブックは2B個のベクトルを有し、これらのベクトルは、大量のベクトルサンプルに従って事前にトレーニングされる。(3)量子化される必要があるベクトルAと、コードブックのベクトルのそれぞれとを比較し、ベクトルAに最も近いベクトルBを探し出す。(4)コードブックにおけるベクトルBの位置インデックスが、ベクトルAの量子化された値である。従って、全ての周波数エンベロープがベクトル量子化のためにベクトルとして結合された場合、大きいコードブックが必要となり、これは、複雑性を増加させる。
【０００５】
簡単且つ効率的な周波数エンベロープベクトル量子化方法をどのように設計するか、及び量子化品質をどのように確保するかは、解決されるべき差し迫った課題である。
【発明の概要】
【０００６】
本発明は、コードブックにおける不十分なビット量及び比較的大量の周波数エンベロープによりもたらされる不十分な量子化精度及び過度に高い複雑性の問題を解決することを目的として、周波数エンベロープベクトル量子化方法及び装置を提案する。
【０００７】
第１の態様によれば、周波数エンベロープベクトル量子化方法が提案され、この方法は、１つのフレームにおけるN個の周波数エンベロープをN1個のベクトルに分割するステップであり、N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを含み、N1、N及びMは正の整数であり、Mは2以上であり、NはN1より大きいステップと、量子化された第１のベクトルに対応するコードワードを取得するために、Bビットを有する第１のコードブックを使用することにより、N1個のベクトルの中の第１のベクトルを量子化するステップであり、第１のコードブックは、2B1個の部分に分割され、Bは2以上の正の整数であり、B1は1以上の正の整数であるステップと、量子化された第１のベクトルに対応するコードワードに従って、量子化された第１のベクトルが第１のコードブックの2B1個の部分の中の第iの部分に関連すると決定するステップであり、iは1以上且つ2B1以下の正の整数であるステップと、第iの部分のコードブックに従って第２のコードブックを決定するステップと、第２のコードブックに基づいてN1個のベクトルの中の第２のベクトルを量子化するステップとを含む。
【０００８】
第１の態様を参照して、第１の態様の第１の実現方式では、第iの部分のコードブックに従って第２のコードブックを決定するステップは、第１のコードブックの第iの部分を第２のコードブックとして使用するステップであり、第１のコードブックの第iの部分のビット量はB-B1であるステップを含む。
【０００９】
第１の態様を参照して、第１の態様の第２の実現方式では、第iの部分のコードブックに従って第２のコードブックを決定するステップは、予めトレーニングされたコードブックを第２のコードブックとして使用するステップであり、予めトレーニングされたコードブックのビット量と第１のコードブックの第iの部分のビット量とは同じであり、共にB-B1であるステップを含む。
【００１０】
第１の態様又は第１の態様の第１若しくは第２の実現方式を参照して、第１の態様の第３の実現方式では、B1が1である場合、量子化された第１のベクトルに対応するコードワードに従って、量子化された第１のベクトルが第１のコードブックの2B1個の部分の中の第iの部分に関連すると決定するステップは、量子化された第１のベクトルに対応するコードワードが第１のコードブックの２つの部分の中の前半部分に属する場合、量子化された第１のベクトルが第１のコードブックの前半部分に関連すると決定するステップ、又は量子化された第１のベクトルに対応するコードワードが第１のコードブックの２つの部分の中の後半部分に属する場合、量子化された第１のベクトルが第１のコードブックの後半部分に関連すると決定するステップを含む。
【００１１】
第１の態様又は第１の態様の第１若しくは第２の実現方式を参照して、第１の態様の第４の実現方式では、Mが2であり、B1が1である場合、量子化された第１のベクトルに対応するコードワードに従って、量子化された第１のベクトルが第１のコードブックの2B1個の部分の中の第iの部分に関連すると決定するステップは、コードワードに対応する量子化された第１のベクトルの第２の値に対するコードワードに対応する量子化された第１のベクトルの第１の値の比が予め設定された範囲内にあるか否かを決定するステップと、比が予め設定された範囲内にあると決定された場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の前半部分に関連すると決定するステップ、又は比が予め設定された範囲内にないと決定された場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の後半部分に関連すると決定するステップとを含む。
【００１２】
第１の態様又は第１の態様の第１〜第４の実現方式のいずれか１つを参照して、第１の態様の第５の実現方式では、１つのフレームにおけるN個の周波数エンベロープをN1個のベクトルに分割するステップであり、N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを含むステップは、１つのフレームがM個のサブフレームを含み、M個のサブフレームの中の各サブフレームがN1個のエンベロープを含み、MとN1との積がNである場合、N1個のベクトルを取得するために、M個のサブフレームの中の各サブフレームに対応するエンベロープを１つのベクトルに結合するステップであり、N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを含むステップを含む。
【００１３】
第２の態様によれば、周波数エンベロープベクトル量子化装置が提案され、この装置は、１つのフレームにおけるN個の周波数エンベロープをN1個のベクトルに分割するように構成されたベクトル分割ユニットであり、N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを含み、N1、N及びMは正の整数であり、Mは2以上であり、NはN1より大きいベクトル分割ユニットと、量子化された第１のベクトルに対応するコードワードを取得するために、Bビットを有する第１のコードブックを使用し、ベクトル分割ユニットによる分割によって取得されたN1個のベクトルの中の第１のベクトルを量子化するように構成された第１の量子化ユニットであり、第１のコードブックは、2B1個の部分に分割され、Bは2以上の正の整数であり、B1は1以上の正の整数である第１の量子化ユニットと、第１の量子化ユニットによる量子化によって取得された量子化された第１のベクトルに対応するコードワードに従って、量子化された第１のベクトルが第１のコードブックの2B1個の部分の中の第iの部分に関連すると決定するように構成された第１の決定ユニットであり、iは1以上且つ2B1以下の正の整数である第１の決定ユニットと、第１の決定ユニットにより決定された第iの部分のコードブックに従って第２のコードブックを決定するように構成された第２の決定ユニットと、第２の決定ユニットにより決定された第２のコードブックに基づいてN1個のベクトルの中の第２のベクトルを量子化するように構成された第２の量子化ユニットとを含む。
【００１４】
第２の態様を参照して、第２の態様の第１の実現方式では、第２の決定ユニットは、第１のコードブックの第iの部分を第２のコードブックとして使用するように具体的に構成され、第１のコードブックの第iの部分のビット量はB-B1である。
【００１５】
第２の態様を参照して、第２の態様の第２の実現方式では、第２の決定ユニットは、予めトレーニングされたコードブックを第２のコードブックとして使用するように具体的に構成され、予めトレーニングされたコードブックのビット量と第１のコードブックの第iの部分のビット量とは同じであり、共にB-B1である。
【００１６】
第２の態様又は第２の態様の第１若しくは第２の実現方式を参照して、第２の態様の第３の実現方式では、B1が1である場合、第１の決定ユニットは、量子化された第１のベクトルに対応するコードワードが第１のコードブックの２つの部分の中の前半部分に属する場合、量子化された第１のベクトルが第１のコードブックの前半部分に関連すると決定するように、或いは量子化された第１のベクトルに対応するコードワードが第１のコードブックの２つの部分の中の後半部分に属する場合、量子化された第１のベクトルが第１のコードブックの後半部分に関連すると決定するように具体的に構成される。
【００１７】
第２の態様又は第２の態様の第１若しくは第２の実現方式を参照して、第２の態様の第４の実現方式では、Mが2であり、B1が1である場合、第１の決定ユニットは、コードワードに対応する量子化された第１のベクトルの第２の値に対するコードワードに対応する量子化された第１のベクトルの第１の値の比が予め設定された範囲内にあるか否かを決定し、比が予め設定された範囲内にあると決定された場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の前半部分に関連すると決定し、或いは比が予め設定された範囲内にないと決定された場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の後半部分に関連すると決定するように具体的に構成される。
【００１８】
第２の態様又は第２の態様の第１〜第４の実現方式のいずれか１つを参照して、第２の態様の第５の実現方式では、ベクトル分割ユニットは、１つのフレームがM個のサブフレームを含み、M個のサブフレームの中の各サブフレームがN1個のエンベロープを含み、MとN1との積がNである場合、N1個のベクトルを取得するために、M個のサブフレームの中の各サブフレームに対応するエンベロープを１つのベクトルに結合するように具体的に構成され、N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを含む。
【００１９】
本発明の実施例では、周波数エンベロープを、より少ない次元を有する複数のベクトルに分割することにより、ベクトル量子化は、より少量のビットを有するコードブックを使用することにより、周波数エンベロープベクトルにおいて実行可能になる。従って、ベクトル量子化の複雑性が低減可能になり、ベクトル量子化の効果が確保可能になる。
【図面の簡単な説明】
【００２０】
本発明の実施例の技術的対策を明確に説明するために、以下に、本発明の実施例を説明するために必要な添付図面について簡単に紹介する。明らかに、以下の説明において、添付図面は、本発明の単にいくつかの実施例を示しているに過ぎず、当業者は、創造的取り組みを行うことなく、依然としてこれらの添付図面から他の図面を導き得る。
【図１】本発明の実施例による周波数エンベロープベクトル量子化方法のフローチャート
【図２】本発明の実施例による周波数エンベロープベクトル量子化装置の概略構成図
【図３】本発明の実施例による周波数エンベロープベクトル量子化方法を実現するコーデック
【発明を実施するための形態】
【００２１】
以下に、本発明の実施例の添付図面を参照して本発明の実施例の技術的対策を明確且つ完全に説明する。明らかに、説明する実施例は、本発明の実施例の全てではなく、一部である。創造的取り組みを行うことなく、本発明の実施例に基づいて当業者により得られる全ての他の実施例は、本発明の保護範囲内に入るものとする。
【００２２】
特にベクトル量子化が周波数エンベロープにおいて実行される場合に合計のビット量が限られている場合、本発明の実施例は、符号化される必要のある周波数エンベロープの特徴に従って、サブフレームにおける周波数エンベロープの間の関連性のような関係を使用することにより、簡単であり、ビットを節約するものであり、量子化の効果が確保可能な周波数エンベロープベクトル量子化方法を提案する。本発明の実施例によるベクトル量子化方法は、１つのフレームが複数の周波数エンベロープを含む場合に特有のものである。
【００２３】
図１を参照して、以下に、本発明の実施例による周波数エンベロープベクトル量子化方法について説明する。ベクトル量子化方法は以下のステップを含む。
【００２４】
S101.１つのフレームにおけるN個の周波数エンベロープをN1個のベクトルに分割する。N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを含み、N1、N及びMは正の整数であり、Mは2以上であり、NはN1より大きい。
【００２５】
例えば、１つのフレームにおけるN個の周波数エンベロープは、N1個のM次元ベクトルに分割される。従って、N1×M=Nである。次に、ベクトル量子化がN1個のベクトルにおいて実行される。このように、次元量が減少するため、適切な量子化精度を実現するために、単一のベクトルに必要なビット量も相応して減少し、ベクトル量子化の複雑性も低減される。
【００２６】
１つのフレームがM個のサブフレームを含み、M個のサブフレームの中の各サブフレームがN1個のエンベロープを含み、MとN1との積がNである場合、次元量を低減するために、M個のサブフレームの中の各サブフレームに対応するエンベロープは、１つのベクトルに更に結合されてもよい。ここで、対応するエンベロープは、対応する位置におけるエンベロープでもよい。例えば、M個のサブフレームの第１のエンベロープは、第１のベクトルに結合され、M個のサブフレームの第２のエンベロープは、第２のベクトルに結合され、残りは、類推によって推定可能である。最後に、N1個のベクトルが取得され、ベクトルのそれぞれは、M個の周波数エンベロープを含む。
【００２７】
一般的に、異なる周波数エンベロープの特徴について異なるベクトル結合方式が使用されてもよい。第１に、同じサブフレームが２つより多くの周波数エンベロープを有し、少量のサブフレーム、例えば、２つのみのサブフレームが存在する場合、複数の２次元ベクトルが取得され得るように、異なるサブフレームの同じ周波数エンベロープが結合されてもよい。第２に、２つより多くのサブフレームが存在する場合、サブフレームの第１の周波数エンベロープは、第１のベクトルに結合されてもよく、サブフレームの第Jの周波数エンベロープは、第Jのベクトルに結合されてもよい。
【００２８】
S102.量子化された第１のベクトルに対応するコードワードを取得するために、第１のコードブックを使用することにより、N1個のベクトルの中の第１のベクトルを量子化する。第１のコードブックにおけるBビットは、2B1個の部分に分割され、Bは2以上の正の整数であり、B1は1以上の正の整数である。
【００２９】
例えば、第１のベクトルにおいてベクトル量子化を実行するために必要なビット量はBである。この場合、2B個のコードワードを有する第１のコードブックがトレーニングによって取得される必要がある。N1個の周波数エンベロープベクトルは同じフレームに属するため、N1個のベクトルのコードブックのシーケンスは、これらのベクトルの順序に従って調整されてもよい。これにより、前のベクトルの量子化結果に従って後のベクトルの範囲を推定し、後のベクトルにおいてベクトル量子化を実行するために必要なビット量を低減する。
【００３０】
第１のコードブックが２つの部分に分割され、その後、第１のコードブックの１つの部分が後のベクトルを量子化するために使用される場合、後のベクトルを量子化するために使用される第１のコードブックの部分は、B-1ビットのみを有することを理解することは容易である。或いは、第１のコードブックが４つの部分に分割され、その後、第１のコードブックの１つの部分が後のベクトルを量子化するために使用される場合、後のベクトルを量子化するために使用される第１のコードブックの部分は、B-3ビットのみを有する。残りは、類推によって推定可能である。すなわち、より少量のビットを有するコードブックが、周波数エンベロープベクトルにおいてベクトル量子化を実行するために使用可能であり、これにより、ベクトル量子化の複雑性を低減し、ベクトル量子化の効果を確保する。
【００３１】
S103.量子化された第１のベクトルに対応するコードワードに従って、量子化された第１のベクトルが第１のコードブックの2B1個の部分の中の第iの部分に関連すると決定する。iは1以上且つ2B1以下の正の整数である。
【００３２】
例えば、B1が1である場合、第１のコードブックは、２つの部分に分割される。従って、量子化された第１のベクトルは、第１のベクトルに最も近い第１のコードブックの中のベクトルを探し出すために、第１のコードブックの各ベクトルと比較される。第１のコードブックのベクトルの位置インデックスが、第１のベクトルの量子化された値である。
【００３３】
第１のベクトルの量子化された値が第１のコードブックの前半部分にあると決定された場合、量子化された第１のベクトルに対応するコードワードが第１のコードブックの２つの部分の中の前半部分に属すると決定され、すなわち、量子化された第１のベクトルが第１のコードブックの前半部分に関連すると決定され、第１のコードブックの前半部分が第２のコードブックとして使用され得る。或いは、第１のベクトルの量子化された値が第１のコードブックの後半部分にあると決定された場合、量子化された第１のベクトルに対応するコードワードが第１のコードブックの２つの部分の中の後半部分に属すると決定され、すなわち、量子化された第１のベクトルが第１のコードブックの後半部分に関連すると決定され、第１のコードブックの後半部分が第２のコードブックとして使用され得る。
【００３４】
或いは、例えば、Mが2であり、B1が1である場合、第１のコードブックは、２つの部分に分割され、各ベクトルは２次元である。従って、量子化された第１のベクトルは、第１のベクトルに最も近い第１のコードブックの中のベクトルを探し出すために、第１のコードブックの各ベクトルと比較される。第１のコードブックのベクトルの位置インデックスが、第１のベクトルの量子化された値である。
【００３５】
次に、コードワードに対応する量子化された第１のベクトルの第２の値に対するコードワードに対応する量子化された第１のベクトルの第１の値の比が予め設定された範囲内にあるか否かが決定される。比が予め設定された範囲内にあると決定された場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の前半部分に関連すると決定される。或いは、比が予め設定された範囲内にないと決定された場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の後半部分に関連すると決定される。ここで、予め設定された範囲は、経験に従って予め設定された閾値範囲である。
【００３６】
２次元ベクトルを含む第１のコードブックが{(a1,b1),(a2,b2),(a3,b3),(a4,b4)}であり、(a1,b1)のコードワード（すなわち、第１のコードブックの(a1,b1)の位置インデックス）が1であり、(a2,b2)のコードワードが2であり、(a3,b3)のコードワードが3であり、(a4,b4)のコードワードが4であることが仮定される。コードワードは、コードブックの中の位置インデックスであり、コードブックの各ベクトルに対応する。量子化された第１のベクトルに対応するコードワードが3であると決定された場合、コードワードに対応する量子化された第１のベクトルは(a3,b3)である。次に、第２の値b3に対する第１の値a3の比は、予め設定された範囲[a,b]と比較される。比が範囲内にある場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の前半部分に関連すると決定され、第１のコードブックの前半部分が第２のコードブックとして使用され得る。或いは、比が範囲内にない場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の後半部分に関連すると決定され、第１のコードブックの後半部分が第２のコードブックとして使用され得る。
【００３７】
S104.第iの部分のコードブックに従って第２のコードブックを決定する。
【００３８】
例えば、前述のように、第１のコードブックの第iの部分が第２のコードブックとして使用されてもよい。第１のコードブックの第iの部分のビット量は、B-B1である。或いは、例えば、予めトレーニングされたコードブックが第２のコードブックとして使用されてもよい。予めトレーニングされたコードブックのビット量と第１のコードブックの第iの部分のビット量とは同じであり、共にB-B1である。
【００３９】
すなわち、第２のベクトルのコードブックは、第１のベクトルを量子化するコードブックの部分に従って直接決定され得る。実際の動作において、第１のコードブックにおいてコードワードのいくつかのみを含む１つ以上のコードブック（B-B1ビットを有する）は、異なるコーデックの要件に従って再トレーニングされ、第２のベクトル及び後のベクトルのコードブックとして使用されてもよい。これにより、量子化に必要なビット量を低減する効果を実現し、量子化品質を最適化する。
【００４０】
S105.第２のコードブックに基づいてN1個のベクトルの中の第２のベクトルを量子化する。
【００４１】
例えば、第２のベクトル及び後のベクトルは、第１のベクトルを量子化した結果に従って決定される第２のコードブックに基づいて量子化されてもよい。すなわち、Bビットを有する第１のコードブックは、量子化された第１のベクトルに対応するコードワードを取得するために、N1個のベクトルの中の第１のベクトルを量子化するために使用される。次に、量子化された第１のベクトルに対応するコードワードが第１のコードブックの2B1個の部分の中の第iの部分に属すると決定される。次に、第２のコードブックは、第iの部分のコードブックに従って決定される。最後に、第２のコードブックは、第１のベクトルを除き、N1個のベクトルの中の他のベクトルを量子化するために使用される。
【００４２】
或いは、例えば、第２のベクトルはまた、第１のベクトルを量子化した結果に従って決定された第２のコードブックに基づいて量子化されてもよい。次に、第３のベクトルは、第２のベクトルを量子化した結果に従って決定された第３のコードブックに基づいて量子化され、残りは、類推によって推定可能である。
【００４３】
本発明の実施例では、周波数エンベロープを、より少ない次元を有する複数のベクトルに分割することにより、ベクトル量子化は、より少量のビットを有するコードブックを使用することにより、周波数エンベロープベクトルにおいて実行可能になることが分かる。従って、ベクトル量子化の複雑性が低減可能になり、ベクトル量子化の効果も確保可能になる。
【００４４】
実現方式では、B1が1である場合、ステップS103において量子化された第１のベクトルに対応するコードワードが第１のコードブックの2B1個の部分の中の第iの部分に属すると決定すること、及びステップS104において第iの部分のコードブックに従って第２のコードブックを決定することは、量子化された第１のベクトルに対応するコードワードが第１のコードブックの２つの部分の中の第１の部分、例えば、前半部分に属するか否かを決定し、量子化された第１のベクトルに対応するコードワードが第１のコードブックの２つの部分の中の前半部分に属すると決定された場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の前半部分に関連すると決定し、第２のコードブックが第１のコードブックの前半部分であると更に決定すること、又は量子化された第１のベクトルに対応するコードワードが第１のコードブックの２つの部分の中の前半部分に属さないことが決定された場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の後半部分に関連すると決定し、第２のコードブックが第１のコードブックの後半部分であると更に決定することを具体的に含む。
【００４５】
この場合、第２のコードブックは、B-1ビットのみを必要とする。
【００４６】
他の実現方式では、Mが2でありB1が1である場合、ステップ103において、量子化された第１のベクトルに対応するコードワードに従って、量子化された第１のベクトルが第１のコードブックの2B1個の部分の中の第iの部分に関連すると決定すること、及びステップS104において第iの部分のコードブックに従って第２のコードブックを決定することは、コードワードに対応する量子化された第１のベクトルの第２の値に対するコードワードに対応する量子化された第１のベクトル（２次元ベクトル）の第１の値の比が予め設定された範囲内にあるか否かを決定し、比が予め設定された範囲内にあると決定された場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の前半部分に関連すると決定し、第２のコードブックが第１のコードブックの前半部分であると更に決定すること、又は比が予め設定された範囲内にないと決定された場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の後半部分に関連すると決定し、第２のコードブックが第１のコードブックの後半部分であると更に決定することを具体的に含む。
【００４７】
この場合、第２のコードブックは、B-1ビットのみを必要とする。
【００４８】
前述の２つの実現方式では、Bビットを有する第１のコードブックが２つの部分に分割される場合について例示的に説明した。これらは、実現が容易な実現方式である。本発明のこの実施例では、第１のコードブックが分割される部分の量は2に限定されず、第１のコードブックは４つの部分、８個の部分、又は量が2の整数乗であるそれ以上の部分に分割されてもよいことが認識されるべきである。一般的に、第１のコードブックが分割される部分のより大きい量は、決定される第２のコードブックのより低い精度を生じる。従って、量子化精度が影響を受ける可能性がある。従って、B1の値は、実際に使用可能なビット量、すなわち、第１のコードブックが分割されて量子化品質を確保可能な部分の量を参照して決定されてもよい。
【００４９】
以下に、本発明のこの実施例による周波数エンベロープベクトル量子化方法を詳細に説明するために、いくつかの具体的な実施例を提供する。
【００５０】
第１の具体的な実施例は以下の通りである。１つのフレームがN個の周波数エンベロープを含み、フレームがN1個のサブフレームに分割され、サブフレームのそれぞれが同じ量Mの周波数エンベロープを有する場合、サブフレームのそれぞれの周波数エンベロープ（全体でM個の周波数エンベロープ）は、１つのベクトルにパッケージ化され、従って、N1個のベクトルが存在する。
【００５１】
まず、予めトレーニングされてソートされた2B個のコードワードを有する第１のコードブックAは、Bビットを使用することにより第１のベクトルに量子化するために使用され、量子化結果は、ind(1)である。
【００５２】
次に、量子化結果ind(1)が第１のコードブックAの前半部分にあるか否かが決定される。
【００５３】
量子化結果ind(1)が第１のコードブックAの前半部分にある場合、コードブックAの前半部分のコードワードは、B-1ビットを使用することにより第２のベクトル及び後のベクトルを量子化するために、新たなコードブック（すなわち、B-1ビットを含む第２のコードブック）として使用される。或いは、量子化結果ind(1)が第１のコードブックAの前半部分にない場合、コードブックAの後半部分のコードワードは、B-1ビットを使用することにより第２のベクトル及び後のベクトルを量子化するために、新たなコードブック（すなわち、B-1ビットを含む第２のコードブック）として使用される。
【００５４】
第１の具体的な実施例では、まず、一般的なコードブック（例えば、第１のコードブック）がソートされ、次に、第１のベクトルの量子化結果を参照して、後のベクトルの量子化結果が推定され、次に、後のベクトルを量子化するためにコードブックの範囲が絞り込まれることが分かる。
【００５５】
第２の具体的な実施例は以下の通りである。ベクトルが２次元である場合、この具体的な実施例の方法も使用されてもよい。
【００５６】
まず、予めトレーニングされてソートされた2B個のコードワードを有する第１のコードブックAは、Bビットを使用することにより第１のベクトルに量子化するために使用され、量子化結果は、ind(1)である。
【００５７】
次に、量子化された第１のベクトルの２つの値の間の比が予め設定された範囲[a,b]内にあるか否かが決定される。比は、量子化された第１のベクトルの第１の値を量子化された第１のベクトルの第２の値で割ることにより取得される。
【００５８】
比が予め設定された範囲[a,b]内にある場合、コードブックAの前半部分のコードワードは、B-1ビットを使用することにより第２のベクトル及び後のベクトルを量子化するために、新たなコードブック（すなわち、B-1ビットを含む第２のコードブック）として使用される。或いは、比が予め設定された範囲[a,b]内にない場合、コードブックAの後半部分のコードワードは、B-1ビットを使用することにより第２のベクトル及び後のベクトルを量子化するために、新たなコードブック（すなわち、B-1ビットを含む第２のコードブック）として使用される。
【００５９】
この具体的な実施例では、２次元ベクトルの特徴を参照して、後のベクトルの量子化結果が推定され、次に、後のベクトルを量子化するためにコードブックの範囲が絞り込まれることが分かる。
【００６０】
図２を参照して、以下に、本発明の実施例による周波数エンベロープベクトル量子化装置について説明する。
【００６１】
図２において、周波数エンベロープベクトル量子化装置20は、ベクトル分割ユニット21と、第１の量子化ユニット22と、第１の決定ユニット23と、第２の決定ユニット24と、第２の量子化ユニット25とを含む。
ベクトル分割ユニット21は、１つのフレームにおけるN個の周波数エンベロープをN1個のベクトルに分割するように構成される。N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを含み、N1、N及びMは正の整数であり、Mは2以上であり、NはN1より大きい。
第１の量子化ユニット22は、量子化された第１のベクトルに対応するコードワードを取得するために、Bビットを有する第１のコードブックを使用し、ベクトル分割ユニット21による分割によって取得されたN1個のベクトルの中の第１のベクトルを量子化するように構成される。第１のコードブックは、2B1個の部分に分割され、Bは2以上の正の整数であり、B1は1以上の正の整数である。
第１の決定ユニット23は、第１の量子化ユニット22による量子化によって取得された量子化された第１のベクトルに対応するコードワードに従って、量子化された第１のベクトルが第１のコードブックの2B1個の部分の中の第iの部分に関連すると決定するように構成される。iは1以上且つ2B1以下の正の整数である。
第２の決定ユニット24は、第１の決定ユニット23により決定された第iの部分のコードブックに従って第２のコードブックを決定するように構成される。
第２の量子化ユニット25は、第２の決定ユニット24により決定された第２のコードブックに基づいてN1個のベクトルの中の第２のベクトルを量子化するように構成される。
【００６２】
具体的に、第２の決定ユニット24は、第１のコードブックの第iの部分を第２のコードブックとして使用するように構成されてもよい。第１のコードブックの第iの部分のビット量はB-B1である。或いは、第２の決定ユニット24は、予めトレーニングされたコードブックを第２のコードブックとして使用するように構成されてもよい。予めトレーニングされたコードブックのビット量と第１のコードブックの第iの部分のビット量とは同じであり、共にB-B1である。
【００６３】
具体的に、B1が1である場合、第１の決定ユニット23は、量子化された第１のベクトルに対応するコードワードが第１のコードブックの２つの部分の中の前半部分に属する場合、量子化された第１のベクトルが第１のコードブックの前半部分に関連すると決定するように、或いは量子化された第１のベクトルに対応するコードワードが第１のコードブックの２つの部分の中の後半部分に属する場合、量子化された第１のベクトルが第１のコードブックの後半部分に関連すると決定するように構成されてもよい。
【００６４】
或いは、Mが2であり、B1が1である場合、第１の決定ユニット23は、コードワードに対応する量子化された第１のベクトルの第２の値に対するコードワードに対応する量子化された第１のベクトルの第１の値の比が予め設定された範囲内にあるか否かを決定し、比が予め設定された範囲内にあると決定された場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の前半部分に関連すると決定し、或いは比が予め設定された範囲内にないと決定された場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の後半部分に関連すると決定するように構成されてもよい。
【００６５】
具体的に、ベクトル分割ユニット21は、１つのフレームがM個のサブフレームを含み、M個のサブフレームの中の各サブフレームがN1個のエンベロープを含み、MとN1との積がNである場合、N1個のベクトルを取得するために、M個のサブフレームの中の各サブフレームに対応するエンベロープを１つのベクトルに結合するように更に構成されてもよい。N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを含む。
【００６６】
本発明の実施例では、周波数エンベロープを、より少ない次元を有する複数のベクトルに分割することにより、ベクトル量子化は、より少量のビットを有するコードブックを使用することにより、周波数エンベロープベクトルにおいて実行可能になる。従って、ベクトル量子化の複雑性が低減可能になり、ベクトル量子化の効果も確保可能になる。
【００６７】
図３は、本発明の実施例による周波数エンベロープベクトル量子化方法を実現するコーデックを示している。コーデック30は、プロセッサ31と、メモリ32とを含む。プロセッサ31は、１つのフレームにおけるN個の周波数エンベロープをN1個のベクトルに分割し、N1個のベクトルの中の各ベクトルは、M個の周波数エンベロープを含み、N1、N及びMは正の整数であり、Mは2以上であり、NはN1より大きく、量子化された第１のベクトルに対応するコードワードを取得するために、Bビットを有する第１のコードブックを使用し、N1個のベクトルの中の第１のベクトルを量子化し、第１のコードブックは、2B1個の部分に分割され、Bは2以上の正の整数であり、B1は1以上の正の整数であり、量子化された第１のベクトルに対応するコードワードに従って、量子化された第１のベクトルが第１のコードブックの2B1個の部分の中の第iの部分に関連すると決定し、iは1以上且つ2B1以下の正の整数であり、第iの部分のコードブックに従って第２のコードブックを決定し、第２のコードブックに基づいてN1個のベクトルの中の第２のベクトルを量子化するように構成される。メモリ32は、プロセッサ31により前述の方法を実行するために使用される命令を記憶するように構成される。
【００６８】
具体的に、１つのフレームがM個のサブフレームを含み、M個のサブフレームの中の各サブフレームがN1個のエンベロープを含み、MとN1との積がNである場合、プロセッサ31は、N1個のベクトルを取得するために、M個のサブフレームの中の各サブフレームに対応するエンベロープを１つのベクトルに結合してもよい。N1個のベクトルの中の  各ベクトルは、M個の周波数エンベロープを含む。
【００６９】
プロセッサ31は、第１のコードブックの第iの部分を第２のコードブックとして使用してもよい。第１のコードブックの第iの部分のビット量はB-B1である。或いは、予めトレーニングされたコードブックを第２のコードブックとして使用してもよい。予めトレーニングされたコードブックのビット量と第１のコードブックの第iの部分のビット量とは同じであり、共にB-B1である。
【００７０】
B1が1である場合、プロセッサ31は、量子化された第１のベクトルに対応するコードワードが第１のコードブックの２つの部分の中の前半部分に属することに従って、量子化された第１のベクトルが第１のコードブックの前半部分に関連すると決定してもよく、或いは量子化された第１のベクトルに対応するコードワードが第１のコードブックの２つの部分の中の後半部分に属することに従って、量子化された第１のベクトルが第１のコードブックの後半部分に関連すると決定してもよい。或いは、Mが2であり、B1が1である場合、プロセッサ31は、コードワードに対応する量子化された第１のベクトルの第２の値に対するコードワードに対応する量子化された第１のベクトルの第１の値の比が予め設定された範囲内にあるか否かに従って、量子化された第１のベクトルが第１のコードブックの前半部分又は後半部分に関連すると決定してもよい。比が予め設定された範囲内にあると決定された場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の前半部分に関連すると決定してもよく、或いは比が予め設定された範囲内にないと決定された場合、量子化された第１のベクトルが第１のコードブックの２つの部分の中の後半部分に関連すると決定してもよい。
【００７１】
本発明の実施例では、周波数エンベロープを、より少ない次元を有する複数のベクトルに分割することにより、ベクトル量子化は、より少量のビットを有するコードブックを使用することにより、周波数エンベロープベクトルにおいて実行可能になることが分かる。従って、ベクトル量子化の複雑性が低減可能になり、ベクトル量子化の効果も確保可能になる。
【００７２】
理解できるように、本発明の各請求項に記載の対策もまた実施例とみなされるべきであり、請求項の特徴が組み合わされてもよい。例えば、本発明において決定するステップの後の異なる支流の実行ステップは、異なる実施例としての役目をしてもよい。
【００７３】
当業者は、この明細書に開示された実施例に記載の例と組み合わせて、ユニット及びアルゴリズムのステップが電子ハードウェア又はコンピュータソフトウェアと電子ハードウェアとの組み合わせにより実現されてもよいことを認識し得る。機能がハードウェアにより実行されるかソフトウェアにより実行されるかは、技術的対策の特定の用途及び設計上の制約条件に依存する。当業者は、特定の用途毎に記載の機能を実現するために異なる方法を使用してもよいが、この実現が本発明の範囲を超えるものと考えられるべきではない。
【００７４】
便宜的且つ簡潔な説明の目的で、前述のシステム、装置及びユニットの詳細な動作処理について、前述の方法の実施例の対応する処理を参照することが、当業者により明確に認識され得る。詳細はここでは再び説明しない。
【００７５】
この出願で提供される複数の実施例では、開示のシステム、装置及び方法は他の方式で実現されてもよいことが認識されるべきである。例えば、記載の装置の実施例は、単なる例示である。例えば、ユニットの分割は、単に論理的な機能分割であり、実際の実現では他の分割でもよい。例えば、複数のユニット又はコンポーネントは結合されてもよく、他のシステムに統合されてもよく、いくつかの機能が無視されてもよく実行されなくてもよい。更に、表示又は説明した相互結合若しくは直接結合又は通信接続は、いくつかのインタフェースを通じて実現されてもよい。装置又はユニットの間の間接結合又は通信接続は、電気的、機械的又は他の形式で実現されてもよい。
【００７６】
別々の部分として記載したユニットは、物理的に別々でもよく別々でなくてもよい。ユニットとして表示された部分は、物理的なユニットでもよく物理的なユニットでなくてもよく、１つの位置に存在してもよく、複数のネットワークユニットに分散されてもよい。ユニットの一部又は全部は、実施例の対策の目的を達成するために、実際のニーズに従って選択されてもよい。
【００７７】
更に、本発明の実施例における機能ユニットは、１つの処理ユニットに統合されてもよく、ユニットのそれぞれが物理的に単独で存在してもよく、２つ以上のユニットが１つのユニットに統合されてもよい。
【００７８】
機能がソフトウェア機能ユニットの形式で実現され、独立したプロダクトとして販売又は使用される場合、機能は、コンピュータ読み取り可能記憶媒体に記憶されてもよい。このような理解に基づいて、基本的に本発明の技術的対策若しくは従来技術に寄与する部分、又は技術的対策のいくつかは、ソフトウェアプロダクトの形式で実現されてもよい。ソフトウェアプロダクトは、記憶媒体に記憶され、コンピュータデバイス（パーソナルコンピュータ、サーバ又はネットワークデバイス等でもよい）に対して本発明の実施例に記載の方法のステップの一部又は全部を実行するように命令する複数の命令を含む。前述の記憶媒体は、USBフラッシュドライブ、取り外し可能ハードディスク、読み取り専用メモリ（ROM、Read-Only  Memory）、ランダムアクセスメモリ（RAM、Random  Access  Memory）、磁気ディスク又は光ディスクのようなプログラムコードを記憶し得るいずれかの媒体を含む。
【００７９】
前述の説明は本発明の単に具体的な方式に過ぎず、本発明の保護範囲を限定することを意図するものではない。本発明に開示された技術的範囲内で当業者により容易に認識される如何なる変更又は置換も、本発明の保護範囲内に入るものとする。従って、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
【図１】
0006301459.tif 000002
【図２】
0006301459.tif 000003
【図３】
0006301459.tif 000004