分野
本発明の諸実施形態は符号化に関し、特に、音声およびオーディオ符号化に関する。
背景
音声およびオーディオ符号化のための低複雑性アルゴリズムは、例えば、モバイル端末ベースの通信のために、非常に重要な利点をもたらす。
符号化効率を維持しつつ、記憶量が少なく、複雑性が低いため、例えば、第3世代パートナーシッププロジェクト(Third Generation Partnership Project、3GPP)内で標準化される予定のエンハンストボイスサービス(Enhanced Voice Service、EVS)コーデックのような、いくつかの最新の音声およびオーディオコーデックにおいては、構造化されたコードブックが好ましい場合がある。
これらの音声およびオーディオコーデック内で用いられるコードブックは、例えば、参照文献、A. Vasilache、B. DumitrescuおよびI. Tabus著、「多スケールリーダ格子VQ、およびLSF量子化へのその適用(Multiple-scale leader-lattice VQ with application to LSF quantization)」、Signal Processing、2002、vol. 82、563−586ページ、Elsevierに記載されているように、格子構造に基づいてもよい。同文献はその全体が本明細書において参照により援用されている。
格子コードブックは、リーダベクトルによって各々特徴付けられる、リーダクラスの集合として定義することが可能である。リーダベクトルは、(例えば正の)成分が(例えば降順に)順序付けられた、n次元ベクトルである(nは整数を表す)。このとき、リーダベクトルに対応するリーダクラスは、リーダベクトル、および(いくらかの可能な制約を伴う)リーダベクトルの全ての符号付き置換を通じて得られる全てのベクトルから成る。1つ、いくつか、または全てのリーダクラスはそれぞれ1つ以上のスケールに関連付けられることも可能であり、このとき、格子コードブックは、スケーリングされたリーダクラスおよび/またはスケーリングされていないリーダクラスの集合として形成される。
入力ベクトルは、例えば、(例えば量子化において、)コードブック内の最も近い隣接コードベクトル、すなわち、入力ベクトルに対して最小距離を有するコードベクトルを見つけることによって、エンコードされてもよい。その後は、このコードベクトルの識別子(例えばこのコードベクトルに付与された添字)が、入力ベクトルのエンコードされた表現の役割を果たしてもよい。
例えば、音声またはオーディオ符号化は各種の符号化モードに適用されてもよい。一例として、量子化は、信号の有声部分、無声部分、一般部分、移行部分またはコンフォートノイズ生成(comfort noise generation、CNG)部分に適用されてもよい。CNG部分が使用する部分は一般的に少ないため、その結果、量子化のために使うビットは少ない。しかし、ビットレートがより低い場合には、格子ベースのコードブックはあまり効率的でなくなる。
A. Vasilache、B. DumitrescuおよびI. Tabus著、「多スケールリーダ格子VQ、およびLSF量子化へのその適用(Multiple-scale leader-lattice VQ with application to LSF quantization)」、Signal Processing、2002年、vol. 82、563−586ページ、Elsevier
発明のいくつかの実施形態のまとめ
構造化されたコードブックの利用によって、入力ベクトルのエンコードに必要なメモリ量および計算量はすでに低減されているが、例えば、特に、有声部分、無声部分、一般部分、移行部分またはCNG部分を含むオーディオ信号のための、各種の符号化モードに関しては、所要メモリ量および/または計算の複雑性のさらなる低減ならびに/あるいは量子化品質の向上が望まれる。
本発明の第1の態様の第1の例示的実施形態によれば、方法であって、前記方法は入力ベクトルの第1の量子化表現を決定することと、第1の量子化表現によって決まるコードブックに基づいて入力ベクトルの第2の量子化表現を決定することと、を含む、方法が開示される。
本発明の第1の態様の第2の例示的実施形態によれば、本発明の第1の態様に係る方法を遂行するように構成される装置、または入力ベクトルの第1の量子化表現を決定するための手段と、第1の量子化表現によって決まるコードブックに基づいて入力ベクトルの第2の量子化表現を決定するための手段と、を備える装置が開示される。
本発明の第1の態様の第3の例示的実施形態によれば、少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリと、を備える装置であって、少なくとも1つのメモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサを用いて、装置に、本発明の第1の態様に係る方法を少なくとも遂行させるように構成される、装置が開示される。メモリ内に含まれるコンピュータプログラムコードは、例えば、プロセッサのためのソフトウェアおよび/またはファームウェアを少なくとも部分的に表現してもよい。メモリの非限定例は、プロセッサによってアクセス可能であるランダムアクセスメモリ(Random−Access Memory、RAM)またはリードオンリーメモリ(Read−Only Memory、ROM)である。
本発明の第1の態様の第4の例示的実施形態によれば、コンピュータプログラムがプロセッサ上で実行されると、本発明の第1の態様に係る方法を遂行するためのプログラムコードを含む、コンピュータプログラムが開示される。コンピュータプログラムは、例えば、例としてインターネット等の、ネットワークを介して配付可能であってもよい。コンピュータプログラムは、例えば、コンピュータ可読媒体内に記憶可能またはエンコード可能であってもよい。コンピュータプログラムは、例えば、プロセッサのソフトウェアおよび/またはファームウェアを少なくとも部分的に表現してもよい。
本発明の第1の態様の第5の例示的実施形態によれば、コンピュータ可読媒体であって、その上に本発明の第1の態様に係るコンピュータプログラムが記憶された、コンピュータ可読媒体が開示される。コンピュータ可読媒体は、例えば、電気的、磁気的、電磁的、光学的またはその他の記憶媒体として具体化されてもよく、取り外し可能な媒体、または装置もしくはデバイス内に固定的に搭載される媒体のいずれかであってよい。このようなコンピュータ可読媒体の非限定例はRAMまたはROMである。コンピュータ可読媒体は、例えば、有形媒体、例として、有形記憶媒体であってもよい。コンピュータ可読媒体は、例えば、プロセッサ等の、コンピュータによって可読であると理解される。
以下において、本発明のこれらの上述の態様の全てに関する特徴および実施形態が簡潔に要約される。
非限定例として、入力ベクトルは、入力信号の線スペクトル周波数(Line Spectral Frequencies、LSF)を含むベクトルを表現してもよい。この入力信号は、部分オーディオ信号、例えば、音声信号の部分または非音声信号の部分、を少なくとも表現してもよく、このオーディオ信号は、有声部分および/または無声部分および/または一般部分および/または移行部分および/またはCNG部分を含んでもよい。例えば、量子化される入力信号は、エンコードされるオーディオ信号の残差データを表現してもよい。
一例として、第1の量子化表現は、複数のコードベクトルに基づいて遂行される第1の量子化段階を用いて決定されてもよい。第1の量子化段階のこの複数のコードベクトルは第1段階コードブックを表現してもよい。
例えば、第1の量子化表現は、入力ベクトルを量子化するための複数のコードベクトルから選択されたコードベクトルを表現してもよい。別の例として、第1の量子化表現は、選択されたコードベクトルの識別子を表現してもよく、この識別子はコードベクトル添字を表現してもよい。そのため、例えば、第1の量子化表現がnビットを含み得る場合には、第1段階コードブックは最大で2n個のコードベクトルを含み得る。
次に、第1の量子化表現によって決まるコードブックに基づいて入力ベクトルの第2の量子化表現が決定される。
例えば、この第2の量子化表現は第2の量子化段階を用いて遂行されると仮定されてもよい。この第2の量子化段階は複数のコードブックに基づいて量子化を遂行してもよい。この複数のコードブックは各々、少なくとも1つのコードベクトルを含む。
第2段階における入力ベクトルの量子化のために用いられるコードブックは第1の量子化表現によって決まる。そのため、一例として、第2段階において用いられるコードブックは、入力ベクトルの第1の量子化表現に基づいて第2段階の複数のコードブックから選択されてもよい。
例えば、第1段階の複数のコードベクトルのうちのコードベクトルと第2段階の複数のコードブックのうちのコードブックとの間の対応付けが定義されて存在してもよい。したがって、このような対応付けが、第1段階の複数のコードベクトルの各コードベクトルと第2段階の複数のコードブックのうちのそれぞれのコードブックのために定義されてもよい。そのため、第1段階において選択されたコードベクトルを表現してもよい、または第1段階において選択されたコードベクトルの標識を表現してもよい、入力ベクトルの第1の量子化表現に基づいて、第2段階の複数のコードブックから、第2段階における量子化を遂行するためのコードブックが選択されてもよい。
例えば、第2段階のコードブックは格子コードブックを表現してもよい。
一例として、入力ベクトルの第1の量子化表現は、第1段階において選択されたコードベクトルを指示するコードベクトル添字を表現してもよい。次に、例えば、第1の量子化表現のコードベクトル添字に関連付けられた、複数のコードブックのうちのコードブックが選択される。例えば、第1段階の各コードベクトル添字は、第2段階の複数のコードブックのうちの対応するコードブックに関連付けられてもよい。
次に、選択されたコードブックに基づき、選択されたコードブックのコードベクトルが、例えば、歪みメトリックに基づいて、決定されてもよい。例えば、選択されたコードブックのコードベクトルは、入力ベクトルに対して最小の歪みを有する入力ベクトルの量子化のために決定されてもよい。ここで、歪みは歪みメトリックに基づいて求められる。一例として、歪みメトリックはコードベクトルと入力ベクトルとの間の距離を表現してもよい。例えば、ハミング距離もしくはユークリッド距離または任意のその他の距離が用いられてもよい。
そのため、適用された歪みメトリックに基づいて複数のコードベクトルのうちのコードベクトルが決定されてもよい。この決定は、例えば、複数のコードベクトルのうちの少なくとも1つのコードベクトルについて歪みを算出することを含んでもよく、決定された歪みメトリックに従い最小の歪みを有する、少なくとも1つのコードベクトルのうちのコードベクトルが量子化のために選択される。例えば、前記少なくとも1つのコードベクトルは、選択されたコードブックの複数のコードベクトルのうちの全てのコードベクトル、または選択されたコードブックの複数のコードベクトルのうちのコードベクトルのサブセットを表現してもよい。
本発明の第1のものの例示的実施形態によれば、入力ベクトルの第2の量子化表現を前記決定することは、第1の量子化表現に基づいて複数のコードブックのうちのコードブックを選択することを含む。
これは、第1段階において遂行された量子化に各々適合された特定のコードブック群が第2段階のために定義されてもよいという利点を示してよい。そのため、第2段階の複数のコードブックのうちの少なくとも1つのコードブックは、エンコードされるこのコードブックに関連付けられた特定の残差データに応じて調整された特定のコードブックを表現してもよく、これにより、符号化効率を向上させることができる。
本発明の第1のものの例示的実施形態によれば、入力ベクトルの第2の量子化表現を決定する前に、入力ベクトルは第1の量子化表現に基づいて正規化される。
例えば、前記正規化は、入力ベクトルの正規化された表現を得るために、入力ベクトルのベクトル成分に、入力ベクトルの第1の量子化表現によって決まる正規化係数を乗算することを含んでもよい。
正規化は第1の量子化表現に基づいて遂行される。例えば、正規化係数の複数のセットが定義されて存在してもよく、正規化係数の各セットは、入力ベクトルを正規化するために用いられる少なくとも1つの正規化係数を含み、入力ベクトルの第1の量子化表現に基づいて正規化係数の複数のセットから正規化係数の1つのセットが選択される。
例えば、第1段階の複数のコードベクトルのうちのコードベクトルと正規化係数の複数のセットのうちの正規化係数のセットとの間の対応付けが定義されて存在してもよい。したがって、このような対応付けが、第1段階の複数のコードベクトルのうちの各コードベクトルと複数の正規化係数のうちの正規化係数のそれぞれのセットのために定義されてもよい。そのため、第1段階において選択されたコードベクトルを表現してもよい、または第1段階において選択されたコードベクトルの標識を表現してもよい、入力ベクトルの第1の量子化表現に基づいて、正規化係数の複数のセットから、入力ベクトルの正規化を遂行するための正規化係数のセットが選択されてもよい。
一例として、入力ベクトルがn個のベクトル係数を含む場合には、正規化係数のセットはn個の正規化係数を含んでもよい。このとき、入力ベクトルの正規化は、入力ベクトルの複数のベクトル成分のうちのベクトル成分に、正規化係数の選択されたセットの関連正規化係数を乗算することによって遂行されてもよい。これは入力ベクトルの各ベクトル成分について遂行されてもよく、入力ベクトルの正規化された表現を得るために、それぞれのベクトル成分に正規化係数のセットのそれぞれの正規化係数が乗算される。
一例として、入力ベクトルの第1の量子化表現は、第1段階において選択されたコードベクトルを指示するコードベクトル添字を表現してもよい。次に、ステップ310では、第1の量子化表現のコードベクトル添字に関連付けられた、正規化係数の複数のセットのうちの正規化係数のセットが選択される。例えば、第1段階の各コードベクトル添字は、正規化係数の複数のセットのうちの正規化係数の対応するセットに関連付けられてもよい。
本発明の第1のものの例示的実施形態によれば、前記入力ベクトルは複数のベクトル成分を含み、前記正規化は、入力ベクトルの少なくとも1つのベクトル成分に、第1の量子化表現によって決まるそれぞれの正規化係数を乗算することを含む。
本発明の第1のものの例示的実施形態によれば、第1の量子化表現に基づいて正規化係数の複数のセットのうちの正規化係数のセットが選択され、入力ベクトルの少なくとも1つのベクトル成分のうちの1つに乗算されるそれぞれの正規化係数は、正規化係数の選択されたセットからのものとされる。
本発明の第1のものの例示的実施形態によれば、基底コードベクトルの関連付けられたセット、および関連付けられた少なくとも1つのスケール表象によってコードブックが定義され、関連付けられた少なくとも1つのスケール表象のうちのスケール表象によってスケーリングされた、基底コードベクトルの関連付けられたセットの基底コードベクトルによってコードブックのコードベクトルが定義される。
複数のコードブックの各コードブックは、基底コードベクトルの関連付けられたセット、および関連付けられた少なくとも1つのスケール表象によって定義される。
基底コードベクトルの各セットは少なくとも1つの基底コードベクトルを含む。基底コードベクトルの各セットは複数のスケール表象のうちの少なくとも1つのスケール表象に関連付けられるため、コードベクトルは、潜在基底コードベクトルのセットのうちの基底コードベクトル、および潜在基底コードベクトルのセットに関連付けられた少なくとも1つのスケール表象のうちのスケール表象に基づいて決定することができる。すなわち、コードベクトルは、それぞれのスケール表象によってスケーリングされた基底コードベクトルに基づいて表現されてもよい。例えば、スケール表象はスケール値を表現してもよく、コードベクトルは基底コードベクトルおよびそれぞれのスケール値の乗算に基づいて決定されてもよい。
例えば、基底コードベクトルの少なくとも1つのセットは少なくとも2つのスケール表象に関連付けられる。さらに、一例として、ただ1つのスケール表象がただ1つの基底コードベクトルのセットに関連付けられてもよい。
したがって、一例として、コードブックは、基底コードベクトルの複数のセットに基づき、かつ複数の基底コードベクトルのうちの基底コードベクトルのそれぞれのセットに関連付けられたそれぞれの少なくとも1つのスケール値に基づくコードベクトル群を含むコードベクトルのセットを含んでもよい。コードベクトルのこのセットは、基底コードベクトルの各セットの各基底コードベクトルにつき、および基底コードベクトルのそれぞれのセットに関連付けられた少なくとも1つのスケール表象の各々につき、それぞれのスケール表象によってスケーリングされたそれぞれの基底コードベクトルに基づくコードベクトルを含んでもよい。
例えば、基底コードベクトルの前記セット群はリーダクラス群を表現してもよく、各リーダクラスは、異なるリーダベクトル、および前記リーダベクトルの置換群を含む。そのため、前記リーダベクトル、および前記リーダベクトルの置換群は、基底コードベクトルのそれぞれのセットの基底コードベクトル群を表現してもよい。
基底コードベクトルの複数のセットは基底コードベクトルの第2の複数のセットのサブセットを表現してもよい。例えば、基底コードベクトルの各セットはリーダクラスを表現するとの仮定の下では、複数のリーダクラスは第2の複数のリーダクラスのサブセットを表現してもよい。そのため、複数のリーダクラスは、第2の複数のリーダクラスに対して、短縮された複数のリーダクラスと考えられてもよい。
例えば、基底コードベクトルの複数のセットが提供されて存在してもよい。ここで、x∈{0, 1, ...X−1}とする、各bxは、基底コードベクトルの複数のセットのうちの基底コードベクトルのセットを表現する。ここで、Xは基底コードベクトルの複数のセットのセットの数を表現する。基底コードベクトルの各セットは少なくとも1つの基底コードベクトルbx, yに関連付けられるかまたはそれを含む。ここで、Bxは基底コードベクトルのそれぞれのセットbxの基底コードベクトルの数を表現する。すなわち、y∈{0, 1, ...Bx−1}が成り立つ。例えば、基底コードベクトルのセットの基底コードベクトルの数Bxは基底コードベクトルのセットによって異なってもよく、および/またはそれは基底コードベクトルの少なくとも2つのセットについて同じであってもよい。
一例として、コードベクトルcx, z, yは、基底コードベクトルbx, yに基づき、かつスケール表象szに基づいて決定されてもよい。ここで、添字zは複数のスケール表象s0...sS−1のそれぞれのスケール表象の添字を表現する。すなわち、z∈{0, 1, ...S−1}が成り立つ。
例えば、t∈{0, 1, ...n−1}が成り立ち、nはそれぞれの基底コードベクトルbx, yの長さを表すとして、基底コードベクトルbx, y=[bx, y, 0, bx, y, 1, ...、bx, y, n−1]の値bx, y, tが絶対値を表現する場合において、絶対値化された入力ベクトルが、基底コードベクトルのそれぞれのセットの潜在コードベクトルを決定するために用いられる場合には、図4cに例示的に示されるように、基底コードベクトルbx, yに基づき、かつスケール表象szに基づくコードベクトルcx, z, yの決定が遂行される前に、入力ベクトルiの(t+1)番目の位置におけるそれぞれの値itの符号に基づいて、決定された最近傍の基底コードベクトルbx, yの(t+1)番目の位置における各値bx, y, tの符号が付与されてもよい。一例として、i=[i0, i1, ..., in−1]が入力ベクトルを表現する場合には、絶対値化された入力ベクトルは[|i0|, |i1|, ..., |in−1|]によって表現されてもよい。
例えば、決定された最近傍の基底コードベクトルbx, yの(t+1)番目の位置における各値bx, y, tの符号は、入力ベクトルの(t+1)番目の位置におけるそれぞれの値itの符号をそれぞれ付与されてもよく、これは、基底コードベクトルのセットbxの基底コードベクトルbx, yのパリティが0である場合に、成立し得る。別の例として、基底コードベクトルのセットbxの基底コードベクトルbx, yのパリティが−1である場合には、潜在基底コードベクトルの値bx, y, tの符号は、ベクトル内の同じ位置における入力ベクトルの値の符号に対応してそれぞれ付与されてもよく、負の成分が奇数個存在しない場合には、最小の非ヌル絶対値を有する潜在基底コードベクトル内の値bx, y, tはその符号を変更してもよい。あるいは、別の例として、基底コードベクトルのセットbxの基底コードベクトルbx, yのパリティが+1である場合には、潜在基底コードベクトルの値bx, y, tの符号は、ベクトル内の同じ位置における入力ベクトルの値の符号に対応してそれぞれ付与されてもよく、負の成分が偶数個存在しない場合には、最小の非ヌル絶対値を有する潜在基底コードベクトル内の値bx, y, tはその符号を変更してもよい。
非限定例として、コードベクトルcx, z, yは、基底コードベクトルに基づきbxによって、かつスケール表象szに基づきcx, z, y=[bx, y, 0・sz, bx, y, 1・sz, ..., bx, y, n−1・sz]によって決定されてもよい。
z∈{0, 1, ...S−1}が成り立つとして、スケール表象szの各々は基底コードベクトルの少なくとも1つのセットに関連付けられる。例えば、非限定例として、基底コードベクトルのこのそれぞれの少なくとも1つのセットは基底コードベクトルのセットbxによって表現されてもよい。ただし、x∈{0, 1, ...nz−1}であり、nzは、それぞれのスケール表象szに関連付けられた基底コードベクトルのセットの数を表現してもよい。ただし、0<nz<Xが成り立つ。それぞれのスケール表象szと、x∈{0, 1, ...nz−1}とする、基底コードベクトルの関連付けられた少なくとも1つのセットbxとの間のこの連係に基づいて、x∈{0, 1, ...nz−1}およびy∈{0, 1, ...Bx−1}およびz∈{0, 1, ...S−1}とする、コードベクトルの関連付けられた少なくとも1つのセットcx, z, yを決定することができる。
そのため、一例として、上述のコードブックのコードブック構造は、複数のスケール表象sz、基底コードベクトルの複数のセットbx、および各スケール表象と、基底コードベクトルの関連付けられた少なくとも1つのセットとの間の連係によって定義されてもよい。
基底コードベクトルの少なくとも1つのセット、例えば、少なくとも基底コードベクトルのセットb0、は少なくとも2つのスケール表象に関連付けられるため、基底コードベクトルの同じセットを、第1のスケール表象に関連付けられたコードベクトルの少なくとも1つのセットのコードベクトル群を構築するために用い、少なくとも1つのさらなるスケール表象に関連付けられたコードベクトルの少なくとも1つのセットのコードベクトル群を構築するために用いることができる。
本発明の第1のものの例示的実施形態によれば、前記入力ベクトルは、ビデオ信号、画像信号、オーディオ信号および音声信号のうちの少なくとも1つを少なくとも部分的に表現する。
そのため、前記リーダベクトル、および前記リーダベクトルの置換群は、基底コードベクトルのそれぞれのセットの基底コードベクトル群を表現してもよい。
本発明の第2の態様の第1の例示的実施形態によれば、方法であって、前記方法は、ベクトルの第1の量子化表現に基づいて複数のコードブックのうちのコードブックを選択することと、選択されたコードブックに基づいてベクトルの第2の量子化表現を逆量子化することと、を含む、方法が開示される。
本発明の第2の態様の第2の例示的実施形態によれば、本発明の第2の態様に係る方法を遂行するように構成される装置、またはベクトルの第1の量子化表現に基づいて複数のコードブックのうちのコードブックを選択するための手段と、選択されたコードブックに基づいてベクトルの第2の量子化表現を逆量子化するための手段と、を備える装置が開示される。
本発明の第2の態様の第3の例示的実施形態によれば、少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリとを備える装置であって、少なくとも1つのメモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサを用いて、装置に、本発明の第2の態様に係る方法を少なくとも遂行させるように構成される、装置が開示される。メモリ内に含まれるコンピュータプログラムコードは、例えば、プロセッサのためのソフトウェアおよび/またはファームウェアを少なくとも部分的に表現してもよい。メモリの非限定例は、プロセッサによってアクセス可能であるランダムアクセスメモリ(RAM)またはリードオンリーメモリ(ROM)である。
本発明の第2の態様の第4の例示的実施形態によれば、コンピュータプログラムがプロセッサ上で実行されると、本発明の第2の態様に係る方法を遂行するためのプログラムコードを含む、コンピュータプログラムが開示される。コンピュータプログラムは、例えば、例としてインターネット等の、ネットワークを介して配付可能であってもよい。コンピュータプログラムは、例えば、コンピュータ可読媒体内に記憶可能またはエンコード可能であってもよい。コンピュータプログラムは、例えば、プロセッサのソフトウェアおよび/またはファームウェアを少なくとも部分的に表現してもよい。
本発明の第2の態様の第5の例示的実施形態によれば、コンピュータ可読媒体であって、その上に本発明の第2の態様に係るコンピュータプログラムが記憶された、コンピュータ可読媒体が開示される。コンピュータ可読媒体は、例えば、電気的、磁気的、電磁的、光学的またはその他の記憶媒体として具体化されてもよく、取り外し可能な媒体、または装置もしくはデバイス内に固定的に搭載される媒体のいずれかであってよい。このようなコンピュータ可読媒体の非限定例はRAMまたはROMである。コンピュータ可読媒体は、例えば、有形媒体、例として、有形記憶媒体であってもよい。コンピュータ可読媒体は、例えば、プロセッサ等の、コンピュータによって可読であると理解される。
例えば、本発明の第2の態様に係るこの方法は、本発明の第1の態様の諸実施形態のいずれかによって量子化された入力ベクトルを逆量子化するために用いられてもよい。
ベクトルの第1の量子化表現に基づいて複数のコードブックのうちのコードブックが選択される。この第1の量子化表現は、本発明の第1の態様に関して説明されている入力ベクトルの第1の量子化表現のいずれかを表現してもよい。コードブックのこの選択は、本発明の第1の態様に関して説明されているように遂行されてもよい。
例えば、複数のコードブックは、本発明の第1の態様において用いられる複数のコードブックを表現し、第1の量子化表現は、本発明の第1の態様における第2段階量子化のために用いられるコードブックを指示する。
次に、選択されたコードブックに基づいてベクトルの第2の量子化表現が逆量子化される。この第2の量子化表現は、本発明の第1の態様に関して説明されている入力ベクトルの第2の量子化表現のいずれかを表現してもよい。
そのため、選択されたコードブックに従って、本発明の第1の態様の第2段階量子化の逆の量子化を遂行することができる。したがって、本発明の第1の態様における第2段階量子化に関して与えられている説明は全て本発明の第2の態様の逆量子化にも適用できる。
逆量子化されたベクトルの第2の量子化表現は、このとき、本発明の第1の態様の入力ベクトルに対応してもよい。
本発明の第2の態様の例示的実施形態によれば、ベクトルの第1の量子化表現に基づく正規化表現が決定され(または選択され)、正規化表現に基づくベクトルの正規化が元に戻される。
本発明の第1の態様において入力ベクトルの正規化が遂行された場合には、第2の態様は、第1の量子化表現に基づく選択された正規化表現によるこの正規化を元に戻すことを含んでもよい。
例えば、前記入力ベクトルは複数のベクトル成分を含んでもよく、前記逆正規化は、逆量子化された入力ベクトルの少なくとも1つのベクトル成分を、第1の量子化表現によって決まるそれぞれの正規化係数で除算することを含んでもよい。
一例として、本発明の第1の態様に関して説明されているように、第1の量子化表現に基づいて正規化係数の複数のセットから正規化係数のセットが選択されてもよく、逆量子化された入力ベクトルの少なくとも1つのベクトル成分のうちの1つに対して除算されるそれぞれの正規化係数は、正規化係数の選択されたセットからのものとされる。
例えば、本発明の第1の態様に関して提示されているあらゆる説明は本発明の第2の態様にも適用できてよい。
本発明の第3の態様の第1の例示的実施形態によれば、方法であって、前記方法は、ベクトル成分に基づく規則に従って入力ベクトルの複数のベクトル成分をベクトル成分の少なくとも2つのグループにグループ分けすること、ただし、ベクトル成分の少なくとも2つのグループの各グループは複数のベクトル成分のうちの少なくとも1つのベクトル成分を含む、グループ分けすることと、ベクトル成分の少なくとも2つのグループのうちの少なくとも1つについて、ベクトル成分のグループに関連付けられたコードブックに基づいてベクトル成分のそれぞれのグループの量子化表現を決定することと、を含む、方法が開示される。
本発明の第3の態様の第2の例示的実施形態によれば、本発明の第3の態様に係る方法を遂行するように構成される装置、またはベクトル成分に基づく規則に従って入力ベクトルの複数のベクトル成分をベクトル成分の少なくとも2つのグループにグループ分けするための手段、ただし、ベクトル成分の少なくとも2つのグループの各グループは複数のベクトル成分のうちの少なくとも1つのベクトル成分を含む、グループ分けするための手段と、ベクトル成分の少なくとも2つのグループのうちの少なくとも1つについて、ベクトル成分のグループに関連付けられたコードブックに基づいてベクトル成分のそれぞれのグループの量子化表現を決定するための手段と、を含む装置が開示される。
本発明の第3の態様の第3の例示的実施形態によれば、少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリとを備える装置であって、少なくとも1つのメモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサを用いて、装置に、本発明の第3の態様に係る方法を少なくとも遂行させるように構成される、装置が開示される。メモリ内に含まれるコンピュータプログラムコードは、例えば、プロセッサのためのソフトウェアおよび/またはファームウェアを少なくとも部分的に表現してもよい。メモリの非限定例は、プロセッサによってアクセス可能であるランダムアクセスメモリ(RAM)またはリードオンリーメモリ(ROM)である。
本発明の第3の態様の第4の例示的実施形態によれば、コンピュータプログラムがプロセッサ上で実行されると、本発明の第3の態様に係る方法を遂行するためのプログラムコードを含む、コンピュータプログラムが開示される。コンピュータプログラムは、例えば、例としてインターネット等の、ネットワークを介して配付可能であってもよい。コンピュータプログラムは、例えば、コンピュータ可読媒体内に記憶可能またはエンコード可能であってもよい。コンピュータプログラムは、例えば、プロセッサのソフトウェアおよび/またはファームウェアを少なくとも部分的に表現してもよい。
本発明の第3の態様の第5の例示的実施形態によれば、コンピュータ可読媒体であって、その上に本発明の第3の態様に係るコンピュータプログラムが記憶された、コンピュータ可読媒体が開示される。コンピュータ可読媒体は、例えば、電気的、磁気的、電磁的、光学的またはその他の記憶媒体として具体化されてもよく、取り外し可能な媒体、または装置もしくはデバイス内に固定的に搭載される媒体のいずれかであってよい。このようなコンピュータ可読媒体の非限定例はRAMまたはROMである。コンピュータ可読媒体は、例えば、有形媒体、例として、有形記憶媒体であってもよい。コンピュータ可読媒体は、例えば、プロセッサ等の、コンピュータによって可読であると理解される。
入力ベクトルは複数のベクトル成分を含む。
非限定例として、入力ベクトルは、入力信号の線スペクトル周波数(LSF)を含むベクトルを表現してもよい。この入力信号は、部分オーディオ信号、例えば、音声信号の部分または非音声信号の部分、を少なくとも表現してもよく、このオーディオ信号は、有声部分および/または無声部分および/または一般部分および/または移行部分および/またはCNG部分を含んでもよい。例えば、量子化される入力信号は、エンコードされるオーディオ信号の残差データ、例えば、線スペクトル周波数(LSF)ベクトルの残差を表現してもよい。
一例として、入力ベクトルは、x∈{0, 1, ...k−1}とするk個のベクトル成分ixを含むベクトルi=[i0, i1, ..., ik]として定義されてもよい。その他の表現も同様に用いられてよいことを理解されたい。
次に、入力ベクトルの前記複数のベクトル成分は、ベクトル成分に基づく規則に従ってベクトル成分の少なくとも2つのグループにグループ分けされる。
一例として、ベクトル成分の少なくとも2つのグループの各グループは既定数のベクトル成分を含むと定義されてもよい。例えば、複数のベクトル成分の各ベクトル成分は、ベクトル成分の少なくとも2つのグループのそれぞれのグループに関連付けられてもよい。すなわち、ベクトル成分の少なくとも2つのグループのベクトル成分群は複数のベクトル成分を表現するか、または、別の例として、ベクトル成分の少なくとも2つのグループのベクトル成分群は複数のベクトル成分のうちのベクトル成分のサブセットを表現してもよい。
一例として、前記規則は、ベクトル成分に関連付けられたエネルギー値に基づく規則を表現してもよい。例えば、前記規則は、ベクトル成分の少なくとも2つのグループの各々のベクトル成分は既定のエネルギー特性を満たさなければならないことを指定してもよい。一例として、この規則は、ベクトル成分の少なくとも2つのグループのうちのグループのベクトル成分群は同様のエネルギー値を有してもよいと定義してもよく、および/または、例えば、前記規則は、ベクトル成分の少なくとも2つのグループのうちの第1のグループであって、この第1のグループはl1<k個のベクトル成分を含む、第1のグループは、複数のベクトル成分のうちのl1個の最もエネルギーが高いベクトル成分またはよりエネルギーが低いベクトル成分を含み、それに対して、複数のベクトル成分のうちの残りのk−l1個のベクトル成分は、ベクトル成分の第1のグループを表現しないベクトル成分の少なくとも2つのグループのうちの残りの少なくとも1つのグループに関連付けられることを指定してもよい。
一例として、それぞれのベクトル成分に関連付けられたエネルギー値は、例えば、それぞれのベクトル成分のエネルギー値、またはそれぞれのベクトル成分のエネルギー値に比例する値、またはこのベクトル成分に関連付けられた重み係数で加重されたそれぞれのベクトル成分のエネルギー値を表現するエネルギー値、またはこのベクトル成分に関連付けられた重み係数で加重されたそれぞれのベクトル成分のエネルギー値を表現するエネルギー値に比例する値、または複数のベクトル成分のうちの残りのベクトル成分のエネルギーランク(rank)に対するそれぞれのベクトル成分のエネルギーランクを表現してもよい。例えば、複数のベクトル成分の最低エネルギー値に関連付けられるベクトル成分は最低エネルギーランク、例えばrank=1またはrank=k、に関連付けられてもよく、複数のベクトル成分の最高エネルギー値に関連付けられるベクトル成分は最高エネルギーランク、例えばrank=kまたはrank=1、に関連付けられてもよい。そのため、ベクトル成分のエネルギーランクは、複数のベクトル成分のうちの全ての他の残りのベクトル成分のエネルギーと比較した、それぞれのベクトル成分のそのエネルギーに関する位置を指示してもよい。
x∈{0, 1, ...k−1}とするベクトル成分ixのエネルギー値exは、例えば、
ex=ix^2
に基づくか、またはエネルギー値の任意のその他の適切な定義に基づいて算出されてもよい。
x∈{0, 1, ...k−1}とするベクトル成分ixが、対応する重み係数wxで加重される場合には、このとき、対応する重み係数で加重されたエネルギー値は、例えば、次式に基づいて算出されてもよいであろう。
ex=wxix^2
例えば、前記複数のベクトル成分をベクトル成分の少なくとも2つのグループにグループ分けすることは、ベクトル成分の前記少なくとも2つのグループの初期定義による初期化を含んでもよく、ベクトル成分の前記少なくとも2つのグループのうちのグループの各々は、入力ベクトルの複数のベクトル成分のうちのベクトル成分群の、ベクトル成分の少なくとも2つのグループへの初期対応付けに従って、複数のベクトル成分のうちの少なくとも1つのベクトル成分を含み、ベクトル成分の少なくとも2つのグループのうちの異なるグループのベクトル成分群は、ベクトル成分群に関連付けられたエネルギー値に基づく規則が満たされるまで、すなわち、ベクトル成分の少なくとも2つのグループの各グループのベクトル成分群がこの規則を満たすまでずっと、異なるグループの間で入れ換えられる。例えば、前記初期対応付けは複数の入力ベクトルについて同じ仕方で遂行されてもよく、そのため、初期対応付けは複数の入力ベクトルについて同じであってもよい。一例として、初期対応付け方式は訓練例内のベクトル成分群の平均エネルギーに基づいて決定されてもよく、その後、この初期対応付け方式は、複数の入力ベクトルについての、入力ベクトルの複数のベクトル成分のうちのベクトル成分群の、ベクトル成分の少なくとも2つのグループへの上述の初期対応付けのために用いられる。
あるいは、別の例として、入力ベクトルの複数のベクトル成分のうちのベクトル成分群の、ベクトル成分の少なくとも2つのグループへの前記初期対応付けは、ベクトル成分群に関連付けられたエネルギー値に基づく規則に従ってベクトル成分群がベクトル成分の少なくとも2つのグループに対応付けられる仕方で遂行されてもよい。そのため、対応付けアルゴリズムは、複数のベクトル成分のうちのベクトル成分群をベクトル成分の少なくとも2つのグループに対応付ける際に、規則を考慮してもよい。
グループ分けが遂行された後には、ベクトル成分群の少なくとも2つのグループの各グループのベクトル成分群は、複数のベクトル成分のうちのベクトル成分群に関連付けられたエネルギー値に基づく規則を満たす。
次に、ベクトル成分の少なくとも2つのグループのうちの少なくとも1つのグループの各グループについて、ベクトル成分のそれぞれのグループに関連付けられたコードブックに基づいてベクトル成分のそれぞれのグループの量子化表現が決定される。その結果、ベクトル成分の少なくとも1つのグループの少なくとも1つの量子化表現が決定され、ベクトル成分の少なくとも1つのグループの少なくとも1つの量子化表現の各々は、ベクトル成分の少なくとも1つのグループのうちのベクトル成分の対応するグループに関連付けられる。例えば、ベクトル成分の少なくとも2つのグループの各グループが量子化されてもよい。
例えば、ベクトル成分の少なくとも1つのグループの各々を量子化するために、同じコードブックが用いられてもよい。
あるいは、別の例として、量子化されるベクトル成分の少なくとも1つのグループのうちのベクトル成分のグループを量子化するために用いられるコードブックは、ベクトル成分のそれぞれのグループのコードベクトルに依存して複数のコードブックから選ばれてもよい。そのため、例えば、より低い/低いエネルギー値に関連付けられたベクトル成分群を含むベクトル成分のグループは、低エネルギーベクトル成分群のために最適化されたコードブックに基づいて量子化されてもよく、それに対して、より高い/高いエネルギー値(例えば、より低い/低いエネルギー値に関連付けられたベクトル成分を含むベクトル成分のグループのようにより高いエネルギー値)に関連付けられたベクトル成分を含むベクトル成分のグループは、高エネルギーベクトル成分群のために最適化されたコードブックに基づいて量子化されてもよい。その結果、例えば、量子化されるベクトル成分の少なくとも1つのグループのうちのそれぞれのグループを量子化するために適切なコードブックが選択されてもよい。そのため、一例として、ベクトル成分の少なくとも2つのグループのベクトル成分群に関連付けられたエネルギー値に基づく規則が満たされた結果、ベクトル成分のそれぞれのグループの特定のエネルギー特性が、複数のコードブックのうちの選択されるそれぞれのコードブックのために用いられてもよい。ここで、複数のコードブックのうちのコードブック群は、ベクトル成分の異なるエネルギー特性に応じて最適化されていてもよい。
例えば、エンコードされる少なくとも2つのグループのうちの少なくとも1つのグループの各々は、本発明の第1の態様に係る2段階量子化を適用することによってエンコードされてもよい。
得られたコードベクトルの少なくとも2つのグループのうちのコードベクトルの少なくとも1つのグループの少なくとも1つの量子化表現は、本発明の第1の態様に係る入力ベクトルの第2の量子化表現と考えられてもよい。
本発明の第3の態様の例示的実施形態によれば、前記規則は、ベクトル成分に関連付けられたエネルギー値に基づく規則、およびベクトル成分に関連付けられた既定のノルムに基づく規則のうちの1つである。
例えば、規則が、ベクトル成分群に関連付けられた既定のノルムに基づく規則を表現する場合には、この規則は、ベクトル成分の少なくとも2つのグループのうちのグループのベクトル成分群は特定のノルムを満たしてもよいか、または特定のノルムに基づく既定の範囲内にあると定義してもよく、このノルムは、例えば、p≧1が成り立つとして、対応するLp空間のそれぞれのLpノルム、または任意のその他の適切なノルムを表現してもよい。
例えば、規則は、ベクトル成分の少なくとも2つのグループのうちの第1のグループのベクトル成分群に適用される特定のノルムは第1の既定の範囲内にある、ベクトル係数の少なくとも2つのグループのうちの第2のグループのベクトル成分に適用される特定のノルムは第2の既定の範囲内にある、および以下同様である、ただし、第1および第2の既定の範囲は互いに異なる、と定義してもよい。
一例として、ベクトル成分の少なくとも2つのグループは、x∈{1, 2, ...n}、n≧2とする、ベクトル成分のn個のグループgxを表現し、ベクトル成分の少なくとも2つのグループのうちのx番目のグループgxは入力ベクトルの複数のベクトル係数のうちのlx個のベクトル係数を含み、前記規則は、x番目のグループgxのlx個のベクトル係数の特定のノルムは、このx番目のグループgxに関連付けられた既定の範囲rx内にあることを指定する。そのため、複数のxの範囲lxが定義されてもよく、それぞれのx番目のグループgxに関連付けられた各範囲rxは、異なる範囲を表現してもよい。
例えば、特定のノルムがlpノルムを表現し、x番目のグループgxのlx個のベクトル係数がgx, 0, gx, 1, ..., gx, lx−1と表されてもよい場合には、このノルムは、x番目のグループgxのlx個のベクトル係数について以下のように算出されてもよい:
例えば、l1ノルム(すなわち、p=1)が用いられてもよく、またはl2ノルム(すなわち、p=2)が用いられてもよく、または任意のその他の適切なノルムが用いられてもよい。
本発明の第3の態様の例示的実施形態によれば、前記規則は、ベクトル成分の少なくとも2つのグループの各々のベクトル成分群は既定のエネルギー特性を満たさなければならないことを指定する。
一例として、この規則は、ベクトル成分の少なくとも2つのグループのうちのグループのベクトル成分群は同様のエネルギー値を有してもよいと定義してもよく、および/または、例えば、前記規則は、ベクトル成分の少なくとも2つのグループのうちの第1のグループであって、この第1のグループはl1<k個のベクトル成分を含む、第1のグループは、複数のベクトル成分のうちのl1個の最もエネルギーが高いベクトル成分またはよりエネルギーが低いベクトル成分を含み、それに対して、複数のベクトル成分のうちの残りのk−l1個のベクトル成分は、ベクトル成分の第1のグループを表現しないベクトル成分の少なくとも2つのグループのうちの残りの少なくとも1つのグループに関連付けられることを指定してもよい。
そのため、ベクトル成分のエネルギー値によって決まる任意の適切な既定のエネルギー特性が用いられてもよい。例えば、この規則によれば、エネルギー値の少なくとも2つのグループの各グループの係数は特定のエネルギー特性を満たし、ベクトル成分の少なくとも2つのグループの各グループは複数の(例えば異なる)エネルギー特性のうちのそれぞれのエネルギー特性に関連付けられてもよい。
例えば、少なくとも2つのグループのそれぞれのグループ内のベクトル係数の順序は、適用された規則にとって無意味であってもよい。
本発明の第3の態様の例示的実施形態によれば、前記規則は、ベクトル成分の少なくとも2つのグループのうちの第1のグループの各ベクトル成分のそれぞれのベクトル成分に関連付けられたエネルギー値は、ベクトル成分の少なくとも2つのグループのうちの残りのグループの各グループの各ベクトル成分のそれぞれのベクトル成分に関連付けられたエネルギー値よりも高いことを指定する。
例えば、前記規則は、ベクトル成分の少なくとも2つのグループのうちの第1のグループは、複数のベクトル成分のうちのl1個の最もエネルギーの高いベクトル成分(またはl1個のよりエネルギーの低いベクトル成分)を含み、それに対して、複数のベクトル成分のうちの残りのk−l1個のベクトル成分は、ベクトル成分の第1のグループを表現しないベクトル成分の少なくとも2つのグループのうちの残りの少なくとも1つのグループに関連付けられることを指定してもよいと仮定されてもよい。さらに、一例として、この規則によれば、ベクトル成分の少なくとも2つのグループのうちの第2のグループは、複数のベクトル成分のうちの残りのk−l1個のベクトル成分のうちのl2個の最もエネルギーの高いベクトル成分(またはl2個のよりエネルギーの低いベクトル成分)を含んでもよい。
本発明の第3の態様の例示的実施形態によれば、ベクトル成分の少なくとも2つのグループは、x∈{1, 2, ...n}、n≧2とする、ベクトル成分のn個のグループを表現し、ベクトル成分の少なくとも2つのグループのうちのx番目のグループgxは入力ベクトルの複数のベクトル係数のうちのlx個のベクトル係数を含み、前記規則は、x番目のグループgxのlx個のベクトル係数は、複数のベクトル係数のうちの
番目から
にエネルギーの高い(またはエネルギーの低い)ベクトル係数を表現することを指定する。
本発明の第3の態様の例示的実施形態によれば、入力ベクトルの前記複数のベクトル成分をベクトル成分の少なくとも2つのグループに前記グループ分けすることは、入力ベクトルをベクトル成分の前記少なくとも2つのグループに分割することと、ベクトル係数の少なくとも2つのグループの各グループが規則を満たすまで、ベクトル成分の少なくとも2つのグループのうちの第1のグループのベクトル成分をベクトル成分の少なくとも2つのグループのうちの第2のグループのベクトル成分と入れ換えることと、を含む。
例えば、以下のように限定されるわけではないが、入力ベクトルは、k個のベクトル成分を含むベクトルを表現すると仮定されてもよく、このベクトルはベクトル成分の2つのグループg1およびg2に分割される:
次に、ベクトル成分の少なくとも2つのグループの各グループは規則を満たすかどうかがチェックされてもよい。
少なくとも2つのグループの各々が規則を満たす場合には、このとき、ベクトル係数の少なくとも2つのグループのうちの2つの異なるグループの間でベクトル係数を再配列する必要はなく、分割によって得られた少なくとも2つのグループは、ベクトル成分の少なくとも2つのグループのうちの少なくとも1つのグループの前記量子化表現を決定するために用いることができる。
例えば、少なくとも1つのグループのうちの少なくとも1つのグループは規則を満たさないと判定される場合もあり、それは、少なくとも2つのグループのうちの第1のグループのベクトル成分と、ベクトル成分の少なくとも2つのグループのうちの第2のグループのベクトル成分との入れ換えへ進められてもよい。
例えば、この入れ換えは、第1のグループ、および入れ換えられる第1のグループのそれぞれのベクトル係数、ならびに対応する第2のグループ、および入れ換えられる第2のグループのそれぞれのベクトル係数は、規則に基づいて、入れ換え後に規則が満たされるように選ばれるか、あるいは、規則を満たすためには1対を超える係数を入れ換えなければならない場合には、選択された第1のグループの選択されたベクトル係数および選択された第2のグループの選択されたベクトル係数は、規則を満たすために入れ換えられる1対を超える係数のうちの1対の係数を表現するように、選ばれる仕方で遂行されてもよい。
一例として、ベクトル係数の第1のグループg1のil1−1をベクトル係数の第2のグループのil1と入れ換えることが必要となる場合があり、この入れ換えによって、以下のようにベクトル係数の再配列されたグループができてもよい:
そのため、一例として、ベクトル係数の前記少なくとも2つのグループの各グループは、入力ベクトルのベクトルiの定位置に関連付けられてもよく、前記入れ換えは、ベクトルi内の入れ換えられるベクトル係数の位置を交換することによって遂行されてもよく、ベクトルi'は入れ換え後の入力ベクトルのベクトルを表現してもよい。
次に、ベクトル係数の少なくとも2つのグループの各グループは規則を満たすかどうかがチェックされてもよい。いいえである場合には、このとき、本方法は、満たされるべき規則に従って異なるグループの2つのベクトル係数を互いに入れ換えることへ再度進んでもよい。その結果、前記入れ換えは、規則が満たされるまで遂行されてもよい。
本発明の第3の態様の例示的実施形態によれば、第1のサブベクトルのベクトル成分を第2のサブベクトルのベクトル成分と前記入れ換えることは、ベクトル成分の第1のグループの第1のベクトル成分を決定すること、ただし、この第1のベクトル成分は規則を満たさない、決定することと、ベクトル成分の第2のグループの第2のベクトル成分を決定すること、ただし、ベクトル成分の第1のグループの第1のベクトル成分がこのベクトル成分の第2のグループの第2のベクトル成分と入れ換えられると、ベクトル成分の第1のグループは規則を満たすであろう、決定することと、第1のサブベクトルの第1のベクトル成分を第2のサブベクトルの第2のベクトル成分と入れ換えることと、を含む。
本発明の第3の態様の例示的実施形態によれば、ベクトル成分の少なくとも2つのグループに基づいて複数のベクトル成分を含む入力ベクトルを決定するように構成される情報が決定される。
例えば、前記情報は、ベクトル成分の少なくとも2つのグループのうちの異なるグループのベクトル成分の間で遂行された任意選択的な入れ換えに関する情報を含んでもよい。その結果、一例として、受信機では、ベクトル成分の少なくとも2つのグループの初期の2つのグループを得るために、前記入れ換えが逆順序で行われてもよい。初期の2つのグループは規則を満たさなくてもよいが、入力ベクトルを再構築するために用いることができる。例えば、複数のベクトル成分に基づいてベクトル成分の前記初期の少なくとも2つのグループを定義することは、受信機に知られていてもよい既定の様式で遂行されてもよい。
ベクトル成分の少なくとも2つのグループに基づいて複数のベクトル成分を含む入力ベクトルを決定するように構成されるこの情報は、入力ベクトルの前記第2の量子化表現内に追加情報として含まれてもよい。
あるいは、別の例として、第3の態様における、入力ベクトルの複数のベクトル成分のうちのベクトル成分群の、ベクトル成分の少なくとも2つのグループへの初期対応付けが、ベクトル成分群が、ベクトル成分群に関連付けられたエネルギー値に基づく規則に従ってベクトル成分の少なくとも2つのグループに対応付けられる(すなわち、前記入れ換えを行わない)仕方で遂行された場合には、ベクトル成分の少なくとも2つの逆量子化されたグループに基づいて複数のベクトル成分を含む入力ベクトルを決定するように構成される情報は、この対応付けを指示してもよい。
例えば、先行入力ベクトルの、ベクトル成分の少なくとも2つのグループへのグループ分けに関する情報は、入力ベクトルをベクトル成分の少なくとも2つのグループにグループ分けするために考慮されなくてもよいため、上述のグループ分けは、先行入力ベクトルのグループ分けを用いないグループ分けと考えられてもよい。
本発明の第3の態様の例示的実施形態によれば、入力ベクトルの複数のベクトル成分を前記グループ分けすることは、先行入力ベクトルの複数のベクトル成分のグループ分けに基づいて遂行される。
例えば、現在の入力ベクトルがn番目の入力ベクトルを表現する場合には、前記先行入力ベクトルはn−1の入力ベクトルを表現してもよい。先行入力ベクトルの複数のベクトル成分のグループ分けは本発明の第3の態様に従って遂行されたと仮定される。
一例として、現在の入力ベクトルの前記グループ分けは、先行入力ベクトルに対して遂行されたグループ分けと同じ仕方で初期に遂行されてもよい。次に、規則が満たされるかどうかがチェックされてもよい。
規則が満たされる場合には、現在の入力ベクトルのこのグループ分けは、先行入力ベクトルの場合と同じ仕方で遂行される。すなわち、初期グループ分けに対する変更は遂行されなくてもよい。そのため、受信機は現在の入力ベクトルのために先行入力ベクトルの場合と同じグループ分け解除を用いることができるため、例えば、このグループ分けに関する追加情報、例えば、ベクトル成分の少なくとも2つのグループに基づいて複数のベクトル成分を含む入力ベクトルを決定するように構成される前記上述の情報は送信される必要はない。例えば、このグループ分けに関する追加情報の送信の前記不在は、送信された前記情報は、現在の入力ベクトルを決定するように構成されることを含んでもよく、この情報は、入れ換えの変更は遂行されないことを指示してもよい。
規則が満たされない場合には、例えば、初期に遂行された、ベクトル成分の前記少なくとも2つのグループへのグループ分けに基づいて、規則が満たされるまで、ベクトル成分の前記初期にグループ分けされた少なくとも2つのグループのうちのベクトル成分の2つの異なるグループの間のベクトル成分群が互いに入れ換えられる。このとき、一例として、ベクトル成分の前記初期にグループ分けされた少なくとも2つのグループのベクトル成分群に対して遂行されたこの入れ換えに関する情報のみが、ベクトル成分の少なくとも2つのグループに基づいて複数のベクトル成分を含む入力ベクトルを決定するように構成される前記上述の情報として送信されてもよい。これは、受信機は、前記先行入力ベクトルの初期グループ分けを用いることができ、次に、現在の入力ベクトルを決定するように構成される情報に基づいて前記さらなるグループ分けを遂行することができるためである。
そのため、現在の入力ベクトルを決定するように構成される前記情報は、先行入力ベクトルのベクトル成分の少なくとも2つのグループのグループ分けに対する、現在の入力ベクトルのベクトル成分の少なくとも2つのグループのグループ分けにおける変更を指示する差分グループ分け情報と考えられてもよい。
例えば、先行入力ベクトルのベクトル成分の少なくとも2つのグループの前記グループ分けが、ベクトル成分の2つの異なるグループの間の1対のベクトル成分の間の少なくとも1回の入れ換えを含む場合には、このとき、現在の入力ベクトルのベクトル成分の少なくとも2つのグループを初期にグループ分けするために、前記少なくとも1回の入れ換えが遂行されてもよい。規則が満たされない場合には、現在の入力ベクトルのベクトル成分の少なくとも2つのグループについて、前記少なくとも1回の入れ換えは元に入れ換え直されてもよく、元に入れ換え直されたベクトル成分の少なくとも2つの異なるグループのベクトル成分群の間の少なくとも1回の新たな入れ換えが、規則に従うために決定されてもよい。ここで、少なくとも1回の新たな入れ換えの各入れ換えは、ベクトル成分の第1のグループのベクトル成分をベクトル成分の第2のグループのベクトル成分と入れ換えることができる。
さらに、先行入力ベクトルのベクトル成分の少なくとも2つのグループのグループ分けに対する、現在の入力ベクトルのベクトル成分の少なくとも2つのグループのグループ分けにおける変更を指示する差分グループ分け情報を送信する方が優れているのか、それとも先行ベクトルのグループ分けに依存しない決定される、ベクトル成分の少なくとも2つのグループに基づいて複数のベクトル成分を含む入力ベクトルを決定するように構成される、完全グループ分け情報として表されてもよい情報を送信する方が優れているのかがチェックされてもよい。
例えば、差分グループ分け情報の符号化のために必要なビットが、完全グループ分け情報を符号化するために必要なビットと比較されてもよく、複数のベクトル成分を含む入力ベクトルを決定するように構成される情報として符号化するために必要なビットが少ない方が選択される。さらに、例えば、グループ分けの種類、すなわち、差分グループ分けまたは完全グループ分けに関するサイド情報が送信されてもよいであろう。
本発明の第3の態様の例示的実施形態によれば、先行入力ベクトルに対して遂行されたグループ分けに基づく、入力ベクトルの、ベクトル成分の少なくとも2つのグループへの前記グループ分けは、ベクトル成分の少なくとも2つの第1のグループを生じさせる第1のグループ分けとして遂行されてもよく、先行入力ベクトルのグループ分けを用いない、入力ベクトルの、ベクトル成分の少なくとも2つのグループへの前記グループ分けは、ベクトル成分の少なくとも2つの第2のグループを生じさせる第2のグループ分けとして遂行されてもよい。
すなわち、ベクトル成分の少なくとも2つの第1のグループおよびベクトル成分の少なくとも2つの第2のグループはどちらも規則を満たすが、異なるグループ分けがベクトル成分に適用されているために、互いに異なり得る。次に、一例として、上述されたように、ベクトル成分の少なくとも2つの第1のグループの各々について第1の量子化表現が決定されてもよく、上述されたように、ベクトル成分の少なくとも2つの第2のグループの各々について第2の量子化表現が決定されてもよく、次に、第1の量子化表現の方が第2の量子化表現よりも入力ベクトルに対して与える歪みは小さいかどうかがチェックされてもよい。はいである場合には、第1のグループ分けが選択され、ベクトル成分の少なくとも2つの第1のグループの第1の量子化表現がベクトル成分のグループの量子化表現として選択される。いいえである場合には、第2のグループ分けが選択され、ベクトル成分の少なくとも2つの第2のグループの第2の量子化表現がベクトル成分のグループの量子化表現として選択される。
さらに、例えば、現在の入力ベクトルを決定するように構成される前記情報は、諸実施形態のいずれかに関して上述されたように、受信機へ提供および/または送信されてもよく、この情報は、選択されたグループ分けに対応する情報を表現するように構成される。
本発明の第3の態様の例示的実施形態によれば、ベクトル成分の少なくとも2つのグループのうちの少なくとも1つについて、ベクトル成分のグループに関連付けられたコードブックに基づいてベクトル成分のそれぞれのグループの量子化表現を前記決定することは、本発明の第1の態様に従ってベクトル成分の少なくとも2つのグループのうちの少なくとも1つの各々について遂行される。本発明の第1の態様の入力ベクトルは、量子化されるベクトル成分の少なくとも2つのグループのうちの少なくとも1つのベクトル成分のそれぞれのグループを表現する。
本発明の第3の態様の例示的実施形態によれば、前記態様は、第3世代パートナーシッププロジェクト音声および/またはオーディオコーデック、特に、エンハンストボイスサービスコーデックの一部を形成する。
本発明の第3の態様の例示的実施形態によれば、入力ベクトルは第1の入力ベクトルを表現し、前記少なくとも1つのメモリおよび前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサを用いて、前記装置に、第1の入力ベクトルの複数のベクトル成分に対して遂行されたグループ分けに従って第2の入力ベクトルの複数のベクトル成分をベクトル成分の少なくとも2つのグループにグループ分けすることと、第2の入力ベクトルに関連付けられたベクトル成分の少なくとも2つのグループのうちの少なくとも1つについて、ベクトル成分のグループに関連付けられたコードブックに基づいてベクトル成分のそれぞれのグループの量子化表現を決定することと、をさらに遂行させるように構成される。
その結果、第2の入力ベクトルのベクトル成分群は、第1の入力ベクトルのベクトル成分群の、第1の入力ベクトルに関連付けられたベクトル成分の少なくとも2つのグループ上のベクトル成分群上へのグループ分けと同じ仕方で、第2の入力ベクトルに関連付けられたベクトル成分の少なくとも2つのグループ上にグループ分けされる。すなわち、第1の入力ベクトルのベクトル成分群の、第1の入力ベクトルに関連付けられたベクトル成分の少なくとも2つのグループ上のベクトル成分群上への対応付けが、第2の入力ベクトルのベクトル成分群を、第2の入力ベクトルに関連付けられたベクトル成分の少なくとも2つのグループのベクトル成分群上に対応付けるために用いられる。
例えば、この対応付けは、ベクトル成分群が、ベクトル成分群に関連付けられたエネルギー値に基づく規則に従ってベクトル成分の少なくとも2つのグループに対応付けられる仕方で遂行される、第1の入力ベクトルの複数のベクトル成分のうちのベクトル成分群の、第1の入力ベクトルに関連付けられたベクトル成分の少なくとも2つのグループへの前記初期対応付けを表現してもよい。すなわち、この初期対応付けアルゴリズムは、複数のベクトル成分のうちのベクトル成分群をベクトル成分の少なくとも2つのグループに対応付ける際に、規則を考慮してもよい。
あるいは、例えば、前記対応付けは、前記初期対応付けと、ベクトル成分の少なくとも2つのグループのうちの第1のグループのベクトル成分とベクトル成分の少なくとも2つのグループのうちの第2のグループのベクトル成分との間の前記少なくとも1回の入れ換えが遂行される場合には、その入れ換えとを表現してもよい。
そのため、第1の入力ベクトルに関連付けられたベクトル成分の少なくとも2つのグループに基づいて複数のベクトル成分を含む第1の入力ベクトルを決定するように構成される情報は、第2の入力ベクトルに関連付けられたベクトル成分の少なくとも2つのグループに基づいて複数のベクトル成分を含む第2の入力ベクトルを決定するために用いられてもよい。さらに、グループ分けは第1の入力ベクトルに対して不変のままであり、受信機は第1の入力ベクトルのグループ分けを用いることができるため、第2の入力ベクトルに関するこの情報を送信する必要はなくてもよい。
その後、ベクトル成分の少なくとも2つのさらなるグループは、第1の入力ベクトルに関連付けられたベクトル成分の少なくとも2つのグループに関して説明されているように、量子化される。
例えば、第2の入力ベクトルは、第1の入力ベクトルの直後に続く入力ベクトルを表現してもよい。一例として、第1の入力ベクトルに適用されたグループ分け方式は記憶されてもよく、少なくとも1つの後続入力ベクトルのために、この少なくとも1つの後続入力ベクトルの各々をベクトル成分のそれぞれの少なくとも2つのさらなるグループ上にグループ分けするべく適用されてもよい。ベクトル成分の前記少なくとも2つのさらなるグループは、第1の入力ベクトルに関連付けられたベクトル成分の少なくとも2つのグループに関して説明されているように、量子化される。例えば、これは、後続入力ベクトルの間に相関が存在する場合に遂行されてもよい。
本発明の第4の態様の第1の例示的実施形態によれば、方法であって、前記方法は、ベクトル成分の少なくとも2つのグループのうちのベクトル成分のグループの各量子化表現を逆量子化すること、ただし、ベクトル成分のそれぞれの量子化されたグループについての逆量子化は、ベクトル成分のそれぞれの量子化されたグループに関連付けられたコードブックに基づいて遂行される、逆量子化することと、ベクトル成分の少なくとも2つの逆量子化されたグループに基づき、およびベクトル成分の少なくとも2つの逆量子化されたグループに基づいて複数のベクトル成分を含むベクトルを決定するように構成される情報に基づいて、複数のベクトル成分を含むベクトルを決定することと、を含む、方法が開示される。
本発明の第4の態様の第2の例示的実施形態によれば、本発明の第4の態様に係る方法を遂行するように構成される装置、あるいはベクトル成分の少なくとも2つのグループのうちのベクトル成分のグループの各量子化表現を逆量子化するための手段、ただし、ベクトル成分のそれぞれの量子化されたグループについての逆量子化は、ベクトル成分のそれぞれの量子化されたグループに関連付けられたコードブックに基づいて遂行される、逆量子化するための手段と、ベクトル成分の少なくとも2つの逆量子化されたグループに基づき、およびベクトル成分の少なくとも2つの逆量子化されたグループに基づいて複数のベクトル成分を含むベクトルを決定するように構成される情報に基づいて、複数のベクトル成分を含むベクトルを決定するための手段と、を含む装置が開示される。
本発明の第4の態様の第3の例示的実施形態によれば、少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリとを備える装置であって、少なくとも1つのメモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサを用いて、装置に、本発明の第4の態様に係る方法を少なくとも遂行させるように構成される、装置が開示される。メモリ内に含まれるコンピュータプログラムコードは、例えば、プロセッサのためのソフトウェアおよび/またはファームウェアを少なくとも部分的に表現してもよい。メモリの非限定例は、プロセッサによってアクセス可能であるランダムアクセスメモリ(RAM)またはリードオンリーメモリ(ROM)である。
本発明の第4の態様の第4の例示的実施形態によれば、コンピュータプログラムがプロセッサ上で実行されると、本発明の第4の態様に係る方法を遂行するためのプログラムコードを含む、コンピュータプログラムが開示される。コンピュータプログラムは、例えば、例としてインターネット等の、ネットワークを介して配付可能であってもよい。コンピュータプログラムは、例えば、コンピュータ可読媒体内に記憶可能またはエンコード可能であってもよい。コンピュータプログラムは、例えば、プロセッサのソフトウェアおよび/またはファームウェアを少なくとも部分的に表現してもよい。
本発明の第4の態様の第5の例示的実施形態によれば、コンピュータ可読媒体であって、その上に本発明の第4の態様に係るコンピュータプログラムが記憶された、コンピュータ可読媒体が開示される。コンピュータ可読媒体は、例えば、電気的、磁気的、電磁的、光学的またはその他の記憶媒体として具体化されてもよく、取り外し可能な媒体、または装置もしくはデバイス内に固定的に搭載される媒体のいずれかであってよい。このようなコンピュータ可読媒体の非限定例はRAMまたはROMである。コンピュータ可読媒体は、例えば、有形媒体、例として、有形記憶媒体であってもよい。コンピュータ可読媒体は、例えば、プロセッサ等の、コンピュータによって可読であると理解される。
例えば、本発明のこの第4の態様は、本発明の第3の態様の諸実施形態のいずれかによって得られたベクトル成分のグループの量子化表現を逆量子化するために用いられてもよい。
ベクトル成分の少なくとも2つのグループのうちのベクトル成分のグループの各量子化表現が逆量子化される。ベクトル成分のこれらの量子化された少なくとも2つのグループは、本発明の第3の態様の諸実施形態のいずれかによって得られたベクトル成分の少なくとも2つの量子化されたグループを表現してもよい。
そのため、前記逆量子化は、本発明の第3の態様の対応する量子化を取り消すために遂行され、ベクトル成分の各量子化されたグループは、ベクトル成分のそれぞれの逆量子化されたグループを決定するために逆量子化される。一例として、この逆量子化は本発明の第3の態様に従って遂行されてもよい。
次に、ベクトル成分の少なくとも2つの逆量子化されたグループに基づいて複数のベクトル成分を含むベクトルを決定するように構成される情報に基づき、ベクトル成分の少なくとも2つの逆量子化されたグループに基づいて、複数のベクトル成分を含むベクトルが決定される。ベクトル成分の少なくとも2つの逆量子化されたグループに基づいて複数のベクトル成分を含むベクトルを決定するように構成されるこの情報は、本発明の第3の態様において説明されているベクトル成分の少なくとも2つの逆量子化されたグループに基づいて複数のベクトル成分を含む入力ベクトルを決定するように構成される情報を表現してもよく、例えば、ベクトル成分の少なくとも2つの逆量子化されたグループとともに受信機において受信されてもよい。
例えば、第3の態様における、入力ベクトルの複数のベクトル成分のうちのベクトル成分群の、ベクトル成分の少なくとも2つのグループへの初期対応付けが、ベクトル成分群が、ベクトル成分群に関連付けられたエネルギー値に基づく規則に従ってベクトル成分の少なくとも2つのグループに対応付けられる仕方で遂行された場合には、ベクトル成分の少なくとも2つの逆量子化されたグループに基づいて複数のベクトル成分を含む(入力)ベクトルを決定するように構成される情報は、この対応付けを指示してもよく、本発明の第4の態様によれば、ベクトルは、ベクトル係数の少なくとも2つの逆量子化されたグループのベクトル係数群の、ベクトルへの対応する逆の対応付けを遂行することによって、得られる。
例えば、本発明の第3の態様に関して提示されているあらゆる説明は本発明の第4の態様にも適用できてよい。
本発明の第4の態様の例示的実施形態によれば、ベクトル成分の少なくとも2つの逆量子化されたグループに基づいて複数のベクトル成分を含むベクトルを決定するように構成される前記情報は、ベクトル成分の少なくとも2つのグループのうちの異なるグループのベクトル成分群の間で遂行された入れ換えに関する情報を含み、本方法は、情報に従って、ベクトル成分の少なくとも2つの逆量子化されたグループのうちの異なるグループのベクトル成分群の再入れ換えを遂行することを含む。
例えば、本発明の第4の態様は、ベクトル成分の少なくとも2つの逆量子化されたグループのうちの異なるグループの間のベクトル成分群の再入れ換えを含んでもよい。一例として、情報は、ベクトル成分の少なくとも2つのグループのうちの異なるグループのベクトル成分群の間で遂行された入れ換えに関する情報を含んでもよく、例えば、この情報は、本発明の第3の態様の諸実施形態のうちの1つによって遂行された、ベクトル成分の少なくとも2つのグループのうちの第1のグループのベクトル成分の、ベクトル成分の少なくとも2つのグループのうちの第2のグループのベクトル成分とのものを定義する入れ換えに関する情報を含んでもよい。そのため、一例として、ベクトル成分の少なくとも2つのグループのうちの異なるグループのベクトル成分群の間で遂行された入れ換えに関する情報を含む情報に基づいて、本発明の第3の態様によって遂行された入れ換えは、ベクトル係数の少なくとも2つの逆量子化されたグループが、入れ換えが遂行される前の本発明の第3の態様のベクトル成分の初期の少なくとも2つのグループに対応するまで、ベクトル成分の少なくとも2つの逆量子化されたグループに対して取り消されてもよい。次に、ベクトル係数のこれらの少なくとも2つの逆量子化されたグループに基づいて、例えば、本発明の第3の態様において遂行された入力ベクトルの複数のベクトル成分の分割を取り消すために、ベクトル係数の少なくとも2つの逆量子化されたグループを一つに結合することによって、入力ベクトルの第1の表現を得ることができる。
例えば、本発明の第3の態様において入れ換えが必要でなかった場合には、このとき、これは、例えば、ベクトル成分の少なくとも2つの逆量子化されたグループに基づいて複数のベクトル成分を含むベクトルを決定するように構成される情報によって指示されてもよく、ベクトル係数の少なくとも2つの逆量子化されたグループは、本発明の第3の態様の入力ベクトルを得るために、例えば、入れ換えを全く行うことなく一つに結合されてもよい。
本発明の第4の態様の例示的実施形態によれば、ベクトル成分の少なくとも2つのグループのうちのベクトル成分のグループの各量子化表現を前記逆量子化することは、本発明の第2の態様の諸実施形態のうちの1つに従って、ベクトル成分の少なくとも2つのグループのうちのベクトル成分のグループの各量子化表現について遂行される。ベクトル成分のグループのそれぞれの量子化表現は、ベクトル成分のそれぞれのグループの第1の量子化表現およびベクトル成分のそれぞれのグループの第2の量子化表現を含む。
本発明の第3の態様の例示的実施形態によれば、ベクトル成分の少なくとも2つの量子化されたグループに基づいて複数のベクトル成分を含むベクトルを決定するように構成される情報に基づき、ベクトル成分の少なくとも2つの逆量子化されたグループに基づいてベクトルの表現を前記決定することは、先行ベクトルのベクトル成分の少なくとも2つの量子化されたグループに基づいて複数のベクトル成分を含む先行ベクトルを決定するように構成される情報に基づいて遂行される。
例えば、前記ベクトルは現在のベクトルを表現すると考えられてもよく、(現在の)ベクトルを決定するように構成される情報は、先行入力ベクトルのベクトル成分の少なくとも2つのグループのグループ分けに対する、現在の入力ベクトルのベクトル成分の少なくとも2つのグループのグループ分けにおける変更を指示する上述の差分グループ分け情報を表現してもよい。
一例として、現在の入力ベクトルのベクトル成分の少なくとも2つの逆量子化されたグループに対する同じ再入れ換えが遂行されてもよい、先行入力ベクトルのベクトル成分の少なくとも2つの逆量子化されたグループの再入れ換えのためのものとして遂行される。その結果、先行ベクトルのベクトル成分の少なくとも2つの量子化されたグループに基づいて複数のベクトル成分を含む先行ベクトルを決定するように構成される情報は、現在のベクトルに対する前記再入れ換えを遂行するために用いられる。この再入れ換えは初期の再入れ換えにおいて表現してもよい。
さらに、ベクトル成分の少なくとも2つの量子化されたグループに基づいて複数のベクトル成分を含む現在のベクトルを決定するように構成される情報が、現在の入力ベクトルのベクトル成分の前記少なくとも2つの初期に再入れ換えされたグループの少なくとも2つのベクトル成分の間のグループ分けのさらなる変更(例えば、少なくとも1回の入れ換え)が遂行されるべきであることを指示する場合には、現在のベクトルの表現に従ってベクトル成分の少なくとも2つの逆量子化されたグループを得るために前記さらなるグループ分けが遂行される。
本発明の第4の態様の例示的実施形態によれば、ベクトルは第1のベクトルを表現し、ベクトル成分の少なくとも2つのさらなるグループのうちのベクトル成分のグループの各量子化表現は逆量子化される。ただし、ベクトル成分のそれぞれの量子化されたグループについての逆量子化は、ベクトル成分のそれぞれのさらなる量子化されたグループに関連付けられたコードブックに基づいて遂行される。ベクトル成分の少なくとも2つの逆量子化されたグループに基づいて複数のベクトル成分を含む第1のベクトルを決定するように構成される情報に基づき、ベクトル成分の少なくとも2つのさらなる逆量子化されたグループに基づいて第2のベクトルの表現が決定される。
ベクトル成分の前記少なくとも2つのさらなるグループのうちのベクトル成分のそれぞれの量子化されたグループについての前記逆量子化は、第1のベクトルに関連付けられたベクトル成分のグループの逆量子化に関して説明されているように遂行される。
第2の(入力)ベクトルの複数のベクトル成分を、第2の(入力)ベクトルに関連付けられたベクトル成分の少なくとも2つのグループにグループ分けすることは、第1の(入力)ベクトルの複数のベクトル成分に対して遂行されたグループ分けに従って遂行されたことが前提とされるため、ベクトル成分の少なくとも2つのさらなる逆量子化されたグループに基づいて第2のベクトルの表現を決定する際には、第1のベクトルのためのものと同じ情報を用いることができる。
そのため、一例として、複数のベクトル成分を含む第1のベクトルを決定するように構成される情報は、ベクトル成分の少なくとも2つのさらなるグループに基づいて第2のベクトルを決定するために同じ様式で用いることができるので、第2のベクトルのベクトル係数群の、ベクトル係数の少なくとも2つのさらなるグループ上へのグループ分けに関する追加情報は必要ない。
本発明の諸態様のその他の特徴は、以下において添付の図面に関連して提示される本発明の諸実施形態の詳細な説明から明白であり、それを参照して明らかにされるであろう。ただし、図面は単に例示の目的のために作成されているだけであり、本発明の限定の定義として作成されてはいないことを理解されたい。本発明の限定の定義については、添付の請求項を参照するべきである。図面は原寸に比例して描かれていないこと、ならびにそれらは単に、それらの中に記載されている構造および手続きを概念的に示すことを意図されているだけであることをさらに理解されたい。特に、図面に存在する特徴だからといって、これらの特徴は本発明に必須のものであると考えてはならない。
図面では以下のものを示す。
本発明の一態様に係る装置の例示的な一実施形態の略図である。
本発明の一実施形態に係る有形記憶媒体の図である。
本発明の第1の態様に係る方法の第1の実施形態例のフローチャートである。
本発明の第1の態様に係る方法の第2の実施形態例のフローチャートである。
本発明の第1の態様に係る方法の第3の実施形態例のフローチャートである。
基底コードベクトルの複数のセットの一例の図である。
コードベクトルを決定するプロセスの一例の図である。
本発明の第2の態様に係る方法の第1の実施形態例のフローチャートである。
本発明の第3の態様に係る方法の第1の実施形態例のフローチャートである。
本発明の第3の態様に係る方法の第2の実施形態例のフローチャートである。
本発明の第4の態様に係る方法の第1の実施形態例のフローチャートである。
発明の諸実施形態の詳細説明
図1aは、本発明の一実施形態に係る装置1の構成要素を概略的に示す。装置1は、例えば、例として、音声、オーディオおよびビデオ信号のうちの少なくとも1つをエンコードする能力を有する電子デバイス、あるいはこのようなデバイスの構成要素であってもよい。例えば、装置1は端末であってもよく、または端末の一部を形成してもよい。
本発明の第1の態様によれば、装置1は、例えば、入力ベクトルの第1の量子化表現を決定し、第1の量子化表現によって決まるコードブックに基づいて入力ベクトルの第2の量子化表現を決定するように構成されてもよい。
代替的に、または、追加的に、装置1は、例えば、入力ベクトルの第1の量子化表現であって、この第1の量子化表現は複数のベクトル成分を含む、第1の量子化表現を決定することと、ベクトル成分に関連付けられたエネルギー値に基づく規則に従って前記複数のベクトル成分をベクトル成分の少なくとも2つのグループにグループ分けすることであって、ただし、ベクトル成分の少なくとも2つのグループの各グループは複数のベクトル成分のうちの少なくとも1つのベクトル成分を含む、グループ分けすることと、ベクトル成分の少なくとも2つのグループのうちの少なくとも1つについて、本発明の第3の態様に従ってコードブックに基づいてベクトル成分のそれぞれのグループの量子化表現を決定することと、をするように構成されてもよい。
装置1は例えばモジュールとして具体化されてもよい。装置1の非限定例は、携帯電話、パーソナルデジタルアシスタント、ポータブルマルチメディア(オーディオおよび/またはビデオ)プレーヤ、ならびにコンピュータ(例えば、ラップトップまたはデスクトップコンピュータ)である。
装置1はプロセッサ10を含む。プロセッサ10は、例えば、ほんのいくつかの非限定例を挙げると、マイクロプロセッサ、デジタル信号プロセッサ(Digital Signal Processor、DSP)または特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)として具体化されてもよい。プロセッサ10は、プログラムメモリ11内に記憶されたプログラムコードを実行し、例えば、中間結果を少なくとも一時的に記憶するため、さらに、それだけでなく、例えば、事前に定義されたデータベースおよび/または事前に計算されたデータベースを記憶するために、主メモリ12を作業メモリとして用いる。メモリ11および12の一部または全てはプロセッサ10内に含まれてもよい。メモリ11および/または12は、ほんのいくつかの非限定例を挙げると、例えば、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)として具体化されてもよい。メモリ11および12の一方または両方は、プロセッサ10に固定的に接続されるか、またはメモリカードまたはスティックの形態で、プロセッサ10から取り外し可能であってよい。
プロセッサ10は入力/出力(input/output、I/O)インタフェース13をさらに制御し、それを介してプロセッサは他の機能ユニットから情報を受信するか、またはそれを提供する。
以下において説明するように、プロセッサ10は、少なくとも、本発明の第1の態様および/または第2の態様および/または第3の態様および/または第4の態様を提供するためのプログラムコードを実行する能力を有する。しかし、プロセッサ10は当然さらなる能力を有してもよい。例えば、プロセッサ10は、例えば、サンプリングされた入力値に基づく、音声、オーディオおよびビデオエンコーディングのうちの少なくとも1つの能力を有してもよい。プロセッサ10は、追加的に、または代替的に、ポータブル通信および/またはマルチメディアデバイスの動作を制御する能力を有してもよい。
図1aの装置1は、例えば、装置1のユーザがプロセッサ10とやり取りすることを可能にするための、ユーザインタフェース、または装置1が無線通信を遂行することを可能にするための関連する無線周波数(radio frequency、RF)回路機構を有するアンテナ等の、構成要素をさらに備えてもよい。
装置1の構成要素によって形成される回路機構は、本明細書の最後においてさらに説明されるように、ハードウェアだけの形で実装されてもよく、部分的にハードウェアの形およびソフトウェアの形で実装されてもよく、あるいはソフトウェアのみの形で実装されてもよい。
図1bは、本発明に係る有形記憶媒体30の一実施形態の略図である。この有形記憶媒体30は、特に非一時的記憶媒体であってもよく、プログラム31を含む。プログラム31は、今度は、プログラムコード32(例えば命令のセット)を含む。有形記憶媒体30の具体例は、例えば、図1aのプログラムメモリ12であってもよい。したがって、プログラムコード32は、例えば、後述される本発明の第1、第2、第3および第4の態様のうちの1つの態様に関連付けられる図2、3、4a、4d、5、6および7のフローチャートを実施してもよい。
図2aは、本発明の第1の態様の第1の実施形態に係る方法のフローチャート200を示す。このフローチャート200のステップは、例えば、図1bに示されるように、有形記憶媒体30上に記憶されるコンピュータプログラム31のそれぞれのプログラムコード32によって定義されてもよい。有形記憶媒体30は、例えば、図1aのプログラムメモリ11を具体化してもよく、このとき、コンピュータプログラム31は図1aのプロセッサ10によって実行されてもよい。
ステップ210では、入力ベクトルの第1の量子化表現が決定される。例えば、前記第1の量子化表現は、入力ベクトルの量子化されたベクトルを表現してもよい。一例として、この量子化されたベクトルは複数のビットを含んでもよいが、入力ベクトルの任意の他の適切な量子化表現が第1の量子化表現のために用いられてもよい。
非限定例として、入力ベクトルは、入力信号の線スペクトル周波数(LSF)を含むベクトルを表現してもよい。この入力信号は、部分オーディオ信号、例えば、音声信号の部分または非音声信号の部分、を少なくとも表現してもよく、このオーディオ信号は、有声部分および/または無声部分および/または一般部分および/または移行部分および/またはCNG部分を含んでもよい。例えば、量子化される入力信号は、エンコードされるオーディオ信号の残差データ、例えば、線スペクトル周波数(LSF)ベクトルの残差を表現してもよい。
一例として、第1の量子化表現は、複数のコードベクトルに基づいて遂行される第1の量子化段階を用いて決定されてもよい。第1の量子化段階のこの複数のコードベクトルは第1段階コードブックを表現してもよい。
例えば、第1の量子化表現は、入力ベクトルを量子化するための複数のコードベクトルから選択されたコードベクトルを表現してもよい。別の例として、第1の量子化表現は、選択されたコードベクトルの識別子を表現してもよく、この識別子はコードベクトル添字を表現してもよい。そのため、例えば、第1の量子化表現がnビットを含み得る場合には、第1段階コードブックは最大で2n個のコードベクトルを含み得る。
ステップ220では、第1の量子化表現によって決まるコードブックに基づいて入力ベクトルの第2の量子化表現が決定される。
例えば、この第2の量子化表現は第2の量子化段階を用いて遂行されると仮定されてもよい。この第2の量子化段階は複数のコードブックに基づいて量子化を遂行してもよい。この複数のコードブックは各々、少なくとも1つのコードベクトルを含む。
第2段階における入力ベクトルの量子化のために用いられるコードブックは第1の量子化表現によって決まる。そのため、一例として、第2段階において用いられるコードブックは、入力ベクトルの第1の量子化表現に基づいて第2段階の複数のコードブックから選択されてもよい。
例えば、第1段階の複数のコードベクトルのうちのコードベクトルと第2段階の複数のコードブックのうちのコードブックとの間の対応付けが定義されて存在してもよい。したがって、このような対応付けが、第1段階の複数のコードベクトルの各コードベクトルと第2段階の複数のコードブックのうちのそれぞれのコードブックのために定義されてもよい。そのため、第1段階において選択されたコードベクトルを表現してもよい、または第1段階において選択されたコードベクトルの標識を表現してもよい、入力ベクトルの第1の量子化表現に基づいて、第2段階の複数のコードブックから、第2段階における量子化を遂行するためのコードブックが選択されてもよい。
これは、第1段階において遂行された量子化に各々適合された特定のコードブック群が第2段階のために定義されてもよいという利点を示してよい。そのため、第2段階の複数のコードブックのうちの少なくとも1つのコードブックは、エンコードされるこのコードブックに関連付けられた特定の残差データに応じて調整された特定のコードブックを表現してもよく、これにより、符号化効率を向上させることができる。
例えば、第2段階のコードブックは格子コードブックを表現してもよい。
一例として、入力ベクトルの第1の量子化表現は、第1段階において選択されたコードベクトルを指示するコードベクトル添字を表現してもよい。次に、ステップ220では、第1の量子化表現のコードベクトル添字に関連付けられた、複数のコードブックのうちのコードブックが選択される。例えば、第1段階の各コードベクトル添字は、第2段階の複数のコードブックのうちの対応するコードブックに関連付けられてもよい。
次に、ステップ220では、選択されたコードブックに基づき、選択されたコードブックのコードベクトルが、例えば、歪みメトリックに基づいて、決定されてもよい。例えば、選択されたコードブックのコードベクトルは、入力ベクトルに対して最小の歪みを有する入力ベクトルの量子化のために決定されてもよい。ここで、歪みは歪みメトリックに基づいて求められる。一例として、歪みメトリックはコードベクトルと入力ベクトルとの間の距離を表現してもよい。例えば、ハミング距離もしくはユークリッド距離または任意のその他の距離が用いられてもよい。
図3は、本発明の第1の態様に係る方法300の第2の実施形態例のフローチャート300を示す。このフローチャート300のステップは、例えば、図1bに示されるように、有形記憶媒体30上に記憶されるコンピュータプログラム31のそれぞれのプログラムコード32によって定義されてもよい。有形記憶媒体30は、例えば、図1aのプログラムメモリ11を具体化してもよく、このとき、コンピュータプログラム31は図1aのプロセッサ10によって実行されてもよい。
例えば、この方法300は、図2に示される方法200のステップ220において入力ベクトルの第2の量子化表現を決定するために用いられてもよい。
ステップ310では、入力ベクトルが第1の量子化表現に基づいて正規化される。例えば、前記正規化は、入力ベクトルの正規化された表現を得るために、入力ベクトルのベクトル成分に、入力ベクトルの第1の量子化表現によって決まる正規化係数を乗算することを含んでもよい。
正規化は第1の量子化表現に基づいて遂行される。例えば、正規化係数の複数のセットが定義されて存在してもよく、正規化係数の各セットは、入力ベクトルを正規化するために用いられる少なくとも1つの正規化係数を含み、入力ベクトルの第1の量子化表現に基づいて正規化係数の複数のセットから正規化係数の1つのセットが選択される。
例えば、第1段階の複数のコードベクトルのうちのコードベクトルと正規化係数の複数のセットのうちの正規化係数のセットとの間の対応付けが定義されて存在してもよい。したがって、このような対応付けが、第1段階の複数のコードベクトルのうちの各コードベクトルと複数の正規化係数のうちの正規化係数のそれぞれのセットのために定義されてもよい。そのため、第1段階において選択されたコードベクトルを表現してもよい、または第1段階において選択されたコードベクトルの標識を表現してもよい、入力ベクトルの第1の量子化に基づいて、正規化係数の複数のセットから、ステップ310において入力ベクトルの正規化を遂行するための正規化係数のセットが選択されてもよい。
一例として、入力ベクトルがn個のベクトル係数を含む場合には、正規化係数のセットはn個の正規化係数を含んでもよい。このとき、入力ベクトルの正規化は、入力ベクトルの複数のベクトル成分のうちのベクトル成分に、正規化係数の選択されたセットの関連正規化係数を乗算することによって遂行されてもよい。これは入力ベクトルの各ベクトル成分について遂行されてもよく、入力ベクトルの正規化された表現を得るために、それぞれのベクトル成分に正規化係数のセットのそれぞれの正規化係数が乗算される。
一例として、入力ベクトルの第1の量子化表現は、第1段階において選択されたコードベクトルを指示するコードベクトル添字を表現してもよい。次に、ステップ310では、第1の量子化表現のコードベクトル添字に関連付けられた、正規化係数の複数のセットのうちの正規化係数のセットが選択される。例えば、第1段階の各コードベクトル添字は、正規化係数の複数のセットのうちの正規化係数の対応するセットに関連付けられてもよい。
次に、ステップ320では、第1の量子化表現に依存して、正規化された入力ベクトルの第2の量子化表現が決定される。ステップ320において第2の量子化表現を決定することは、図2におけるステップ220に関して説明されているように遂行されてもよく、ステップ220において用いられる入力ベクトルは、ステップ310において得られた正規化された入力ベクトルと置き換えられる。
図4aは、本発明の第1の態様に係る方法400の第3の実施形態例のフローチャート400を示す。このフローチャート400のステップは、例えば、図1bに示されるように、有形記憶媒体30上に記憶されるコンピュータプログラム31のそれぞれのプログラムコード32によって定義されてもよい。有形記憶媒体30は、例えば、図1aのプログラムメモリ11を具体化してもよく、このとき、コンピュータプログラム31は図1aのプロセッサ10によって実行されてもよい。
例えば、この方法400は、図2に示される方法200のステップ220において入力ベクトルの第2の量子化表現を決定するため、または図3におけるステップ320において、正規化された入力ベクトルの第2の量子化表現を決定するために用いられてもよい。
ステップ410では、第1の量子化表現に基づいて複数のコードブックのうちからコードブックが選択される。例えば、この選択は、方法200の第1の実施形態例に関して説明されているように遂行されてもよい。
複数のコードブックの各コードブックは、基底コードベクトルの関連付けられたセット、および関連付けられた少なくとも1つのスケール表象によって定義される。
基底コードベクトルの各セットは少なくとも1つの基底コードベクトルを含む。基底コードベクトルの各セットは複数のスケール表象のうちの少なくとも1つのスケール表象に関連付けられるため、コードベクトルは、潜在基底コードベクトルのセットのうちの基底コードベクトル、および潜在基底コードベクトルのセットに関連付けられた少なくとも1つのスケール表象のうちのスケール表象に基づいて決定することができる。すなわち、コードベクトルは、それぞれのスケール表象によってスケーリングされた基底コードベクトルに基づいて表現されてもよい。例えば、スケール表象はスケール値を表現してもよく、コードベクトルは基底コードベクトルおよびそれぞれのスケール値の乗算に基づいて決定されてもよい。
例えば、基底コードベクトルの少なくとも1つのセットは少なくとも2つのスケール表象に関連付けられる。
したがって、一例として、コードブックは、基底コードベクトルの複数のセットに基づき、かつ複数の基底コードベクトルのうちの基底コードベクトルのそれぞれのセットに関連付けられたそれぞれの少なくとも1つのスケール値に基づくコードベクトル群を含むコードベクトルのセットを含んでもよい。コードベクトルのこのセットは、基底コードベクトルの各セットの各基底コードベクトルにつき、および基底コードベクトルのそれぞれのセットに関連付けられた少なくとも1つのスケール表象の各々につき、それぞれのスケール表象によってスケーリングされたそれぞれの基底コードベクトルに基づくコードベクトルを含んでもよい。
例えば、基底コードベクトルの前記セット群はリーダクラス群を表現してもよく、各リーダクラスは、異なるリーダベクトル、および前記リーダベクトルの置換群を含む。そのため、前記リーダベクトル、および前記リーダベクトルの置換群は、基底コードベクトルのそれぞれのセットの基底コードベクトル群を表現してもよい。
基底コードベクトルの複数のセットは基底コードベクトルの第2の複数のセットのサブセットを表現してもよい。例えば、基底コードベクトルの各セットはリーダクラスを表現するとの仮定の下では、複数のリーダクラスは第2の複数のリーダクラスのサブセットを表現してもよい。そのため、複数のリーダクラスは、第2の複数のリーダクラスに対して、短縮された複数のリーダクラスと考えられてもよい。
図4bは基底コードベクトルの複数のセットを示す。ここで、x∈{0, 1, ...X−1}とする、各bxは、基底コードベクトルの複数のセットのうちの基底コードベクトルのセットを表現する。ここで、Xは基底コードベクトルの複数のセットのセットの数を表現する。基底コードベクトルの各セットは少なくとも1つの基底コードベクトルbx, yに関連付けられるかまたはそれを含む。ここで、Bxは基底コードベクトルのそれぞれのセットbxの基底コードベクトルの数を表現する。すなわち、y∈{0, 1, ...Bx−1}が成り立つ。例えば、基底コードベクトルのセットの基底コードベクトルの数Bxは基底コードベクトルのセットによって異なってもよく、および/またはそれは基底コードベクトルの少なくとも2つのセットについて同じであってもよい。
図4cは、基底コードベクトルbx, yに基づき、かつスケール表象zに基づいてコードベクトルcx, z, yを決定するプロセス例を示す。ここで、添字zは複数のスケール表象s0...sS−1のそれぞれのスケール表象の添字を表現する。すなわち、z∈{0, 1, ...S−1}が成り立つ。
例えば、t∈{0, 1, ...n−1}が成り立ち、nはそれぞれの基底コードベクトルbx, yの長さを表すとして、基底コードベクトルbx, y=[bx, y, 0, bx, y, 1, ..., bx, y, n−1]の値bx, y, tが絶対値を表現する場合において、絶対値化された入力ベクトルが、基底コードベクトルのそれぞれのセットの潜在コードベクトルを決定するために用いられる場合には、図4cに例示的に示されるように、基底コードベクトルbx, yに基づき、かつスケール表象szに基づくコードベクトルcx, z, yの決定が遂行される前に、入力ベクトルiの(t+1)番目の位置におけるそれぞれの値itの符号に基づいて、決定された最近傍の基底コードベクトルbx, yの(t+1)番目の位置における各値bx, y, tの符号が付与されてもよい。一例として、i=[i0, i1, ..., in−1]が入力ベクトルを表現する場合には、絶対値化された入力ベクトルは[|i0|, |i1|, ..., |in−1|]によって表現されてもよい。
例えば、決定された最近傍の基底コードベクトルbx, yの(t+1)番目の位置における各値bx, y, tの符号は、入力ベクトルの(t+1)番目の位置におけるそれぞれの値itの符号をそれぞれ付与されてもよく、これは、基底コードベクトルのセットbxの基底コードベクトルbx, yのパリティが0である場合に、成立し得る。別の例として、基底コードベクトルのセットbxの基底コードベクトルbx, yのパリティが−1である場合には、潜在基底コードベクトルの値bx, y, tの符号は、ベクトル内の同じ位置における入力ベクトルの値の符号に対応してそれぞれ付与されてもよく、負の成分が奇数個存在しない場合には、最小の非ヌル絶対値を有する潜在基底コードベクトル内の値bx, y, tはその符号を変更してもよい。あるいは、別の例として、基底コードベクトルのセットbxの基底コードベクトルbx, yのパリティが+1である場合には、潜在基底コードベクトルの値bx, y, tの符号は、ベクトル内の同じ位置における入力ベクトルの値の符号に対応してそれぞれ付与されてもよく、負の成分が偶数個存在しない場合には、最小の非ヌル絶対値を有する潜在基底コードベクトル内の値bx, y, tはその符号を変更してもよい。
非限定例として、コードベクトルcx, z, yは、基底コードベクトルに基づきbxによって、かつスケール表象szに基づきcx, z, y=[bx, y, 0・sz, bx, y, 1・sz, ..., bx, y, n−1・sz]によって決定されてもよい。
z∈{0, 1, ...S−1}が成り立つとして、スケール表象szの各々は基底コードベクトルの少なくとも1つのセットに関連付けられる。例えば、非限定例として、基底コードベクトルのこのそれぞれの少なくとも1つのセットは基底コードベクトルのセットbxによって表現されてもよい。ただし、x∈{0, 1, ...nz−1}であり、nzは、それぞれのスケール表象szに関連付けられた基底コードベクトルのセットの数を表現してもよい。ただし、0<nz<Xが成り立つ。それぞれのスケール表象szと、x∈{0, 1, ...nz−1}とする基底コードベクトルの関連付けられた少なくとも1つのセットbxとの間のこの連係に基づいて、x∈{0, 1, ...nz−1}およびy∈{0, 1, ...Bx−1}およびz∈{0, 1, ...S−1}とする、コードベクトルの関連付けられた少なくとも1つのセットcx, z, yを決定することができる。
そのため、一例として、上述のコードブックのコードブック構造は、複数のスケール表象sz、基底コードベクトルの複数のセットbx、および各スケール表象と、基底コードベクトルの関連付けられた少なくとも1つのセットとの間の連係によって定義されてもよい。
基底コードベクトルの少なくとも1つのセット、例えば、少なくとも基底コードベクトルのセットb0、は少なくとも2つのスケール表象に関連付けられるため、基底コードベクトルの同じセットを、第1のスケール表象に関連付けられたコードベクトルの少なくとも1つのセットのコードベクトル群を構築するために用い、少なくとも1つのさらなるスケール表象に関連付けられたコードベクトルの少なくとも1つのセットのコードベクトル群を構築するために用いることができる。
例えば、ステップ410の複数のコードブックのうちのコードブック群は上述の第2の複数のリーダクラスに基づいて定義されてもよい。ここで、第2の複数のリーダクラスの各リーダクラスは異なるリーダベクトルに関連付けられ、それぞれのリーダクラスに関連付けられた基底コードベクトルのセットは、それぞれのリーダベクトル、およびこのリーダベクトルの置換群によって表現されてもよい。このとき、一例として、複数のコードブックの各コードブックは、それぞれのコードブックに関連付けられた少なくとも1つの短縮によって定義されてもよい。それぞれのコードブックに関連付けられた少なくとも1つの短縮の各短縮は、第2の複数のリーダクラスのうちの少なくとも1つのリーダクラスに関連付けられ、かつそれぞれのスケール表象に関連付けられ、それにより、それぞれのスケール表象によってスケーリングされたそれぞれのリーダクラスのリーダクラスベクトル、およびこのスケーリングされたリーダクラスベクトルの置換群は、それぞれのコードブックの少なくとも1つの短縮のそれぞれの短縮のコードベクトルを表現する。
非限定例として、16個の典型的なリーダクラスの一例は次式によって定義されてもよい:
例えば、これらの16個のリーダクラスは、基底コードベクトルの上述の第2の複数のセットを定義してもよく、コードブック構造は、基底コードベクトルの前記第2の複数のセットのサブセットを表現する基底コードベクトルの複数のセットによって定義されてもよい。
一例として、16個の例示的コードブック構造の一例は以下のように定義されてもよい。
ここで、各ベクトルno_lead[][l](ただし、l∈{0, 1, ...16}が成り立つ)は、複数の短縮を含むそれぞれのコードブック構造を定義する。例えば、l=2の場合、ベクトルno_lead[][2]=(10, 9, 3, 2, 2, 0)は、第1の短縮、すなわち、リーダクラスの第1の集合、は最初の8つのリーダクラスで構成されてよい、第2のものは最初の9つのリーダクラスによって構成されてよい、第3のものは最初の3つのリーダクラスによって構成されてよい、および以下同様であることを意味する、それぞれのコードブック構造を定義する。
それぞれのコードブック構造の各短縮に対して、例えば以下のように、それぞれのスケール表現が(例えば訓練を通じて)付与されてもよい:
そのため、一例として、複数のコードブックのうちのl番目のコードブックは、それぞれのベクトルno_lead[][l]およびスケール表現のそれぞれのベクトルscales[][l]によって定義される複数の短縮によって定義されてもよく、各短縮k no_lead[k][l]は、この短縮に関連付けられたそれぞれのスケール表現scales[k][l]を用いてスケーリングされる。そのため、l番目のコードブックの複数のコードベクトルのうちのコードベクトルの第1のセットは、それぞれの第1のスケール表現によってスケーリングされた第1の短縮によって定義される。すなわち、l=2の仮定の下では、上述の例では、第1のスケール表現は0.887になるであろう。l番目のコードブックの複数のコードベクトルのうちのコードベクトルの第2のセットは、それぞれの第2のスケール表現によってスケーリングされた第2の短縮によって定義される。すなわち、l=2の仮定の下では、上述の例では、第2のスケール表現は1.635になるであろう。以下同様である。
例えば、複数のコードブックのコードブックの数は、第1段階のコードベクトルの数に対応してもよく、第1段階の各コードベクトルは第2段階のそれぞれのコードブックに関連付けられる。一例として、入力ベクトルの第1の量子化表現は、第1段階において選択されたコードベクトルを指示するコードベクトル添字を表現してもよい。次に、ステップ410では、コードベクトル添字に基づいて、複数のコードブックのうちの対応するコードブックが選択される。例えば、第1段階の各コードベクトル添字は、第2段階の対応するコードブックに関連付けられてもよい。
非限定例として、コードベクトル添字はlと示されてもよく、対応するコードブックは、それぞれのリーダベクトルno_lead[][l]、およびスケール表現のそれぞれのベクトルscales[][l]によって定義されてもよい。
次に、ステップ420では、選択されたコードブックに基づいて入力ベクトルの第2の量子化表現が決定される。
この入力ベクトルは、正規化された入力ベクトル、または正規化されていない入力ベクトルを表現してもよいことを理解されたい。
例えば、入力ベクトルの第2の量子化表現を前記決定することは、選択されたコードブックの複数のコードベクトルのうちの、入力ベクトルに比べてわずかな歪みまたは最小の歪みを有するコードベクトルを決定することを含んでもよい。
一例として、歪みメトリックが、コードベクトルおよび入力ベクトルの歪みを求めるために用いられてもよい。例えば、前記歪みメトリックは、コードベクトルと入力ベクトルとの間の任意の種類の好適な距離に基づいてもよい。一例として、ハミング距離もしくはユークリッド距離または任意のその他の距離が用いられてもよい。一例として、歪みメトリックが算出されるコードベクトルは必ずしも決定されなければならないわけではなく、歪みメトリックは、選択されたスケール表現に関連付けられたそれぞれのコードベクトル、およびこの選択されたスケール表現に関連付けられた基底コードベクトルのセットを固有に考慮することによって算出されてもよい。
例えば、cx, z, y=[cx, z, y, 0, cx, z, 1, ..., cx, z, n−1]がコードベクトルを表現し、i=[i0, i1, ..., in−1]が入力ベクトルを表現する場合には、距離dは次式に基づいて算出されてもよい。
一例として、それぞれのコードベクトルは、コードベクトル値c0...n−1を含むn次元ベクトルを表現し、入力ベクトルは、入力ベクトル値i0...in−1を含むn次元ベクトルを表現し、それぞれの距離dを決定することは、d'を算出することに基づいて遂行される。
この歪みメトリック(2)は、質の低下を全く伴うことなくメトリック(1)の簡単化したメトリックを表現すると考えられてもよい。
さらに、一例として、歪みメトリックは重み関数に基づいて決定されてもよい。
例えば、それぞれのコードベクトルは、コードベクトル値c0...n−1を含むn次元ベクトルを表現し、入力ベクトルは、入力ベクトル値i0...in−1を含むn次元ベクトルを表現し、それぞれの距離dw'を決定することは、次式を算出することに基づいて遂行される。
ここで、wkは重み関数の重み係数を表現する。
したがって、ステップ420では、適用された歪みメトリックに基づいて複数のコードベクトルのうちのコードベクトルが決定されてもよい。この決定は、例えば、複数のコードベクトルのうちの少なくとも1つのコードベクトルについての歪みを算出することを含んでもよく、決定された歪みメトリックに従い最小の歪みを有する、少なくとも1つのコードベクトルのうちのコードベクトルがステップ420における量子化のために選択される。例えば、前記少なくとも1つのコードベクトルは、選択されたコードブックの複数のコードベクトルのうちの全てのコードベクトル、または選択されたコードブックの複数のコードベクトルのうちのコードベクトルのサブセットを表現してもよい。
図4dは、本発明の第2の態様に係る方法の第1の実施形態例のフローチャート400'である。このフローチャート400'のステップは、例えば、図1bに示されるように、有形記憶媒体30上に記憶されるコンピュータプログラム31のそれぞれのプログラムコード32によって定義されてもよい。有形記憶媒体30は、例えば、図1aのプログラムメモリ11を具体化してもよく、このとき、コンピュータプログラム31は図1aのプロセッサ10によって実行されてもよい。
例えば、この方法400'は、本発明の第1の態様の方法のいずれかによって量子化された入力ベクトルを逆量子化するために用いられてもよい。
ステップ430では、ベクトルの第1の量子化表現に基づいて複数のコードブックのうちのコードブックが選択される。この第1の量子化表現は、本発明の第1の態様に関して説明されている入力ベクトルの第1の量子化表現のいずれかを表現してもよい。コードブックのこの選択は、本発明の第1の態様に関して説明されているように遂行されてもよい。
例えば、複数のコードブックは、図2に示されるステップ220において、または図4に示されるステップ410において用いられる複数のコードブックを表現し、第1の量子化表現は、本発明の第1の態様における第2段階量子化のために用いられるコードブックを指示する。
ステップ440では、選択されたコードブックに基づいてベクトルの第2の量子化表現が逆量子化される。この第2の量子化表現は、本発明の第1の態様に関して説明されている入力ベクトルの第2の量子化表現のいずれかを表現してもよい。
そのため、ステップ440は、選択されたコードブックに従って、本発明の第1の態様の第2段階量子化の逆の量子化を遂行する。したがって、本発明の第1の態様における第2段階量子化に関して与えられている説明は全て、ステップ440において遂行される逆量子化にも適用できる。
逆量子化されたベクトルの第2の量子化表現は, このとき、本発明の第1の態様の入力ベクトルに対応してもよい。
本発明の第1の態様において入力ベクトルの正規化が遂行された場合には、方法400'は、第1の量子化表現に基づく選択された正規化表現によるこの正規化を元に戻すことを含んでもよい。
例えば、前記入力ベクトルは複数のベクトル成分を含んでもよく、前記逆正規化は、逆量子化された入力ベクトルの少なくとも1つのベクトル成分を、第1の量子化表現によって決まるそれぞれの正規化係数で除算することを含んでもよい。
一例として、本発明の第1の態様に関して説明されているように、第1の量子化表現に基づいて正規化係数の複数のセットから正規化係数のセットが選択されてもよく、逆量子化された入力ベクトルの少なくとも1つのベクトル成分のうちの1つに対して除算されるそれぞれの正規化係数は、正規化係数の選択されたセットからのものとされる。
例えば、本発明の第1の態様に関して提示されているあらゆる説明は本発明の第2の態様にも適用できてよい。
図5は、本発明の第3の態様の第1の実施形態に係る方法のフローチャート500を示す。このフローチャート500のステップは、例えば、図1bに示されるように、有形記憶媒体30上に記憶されるコンピュータプログラム31のそれぞれのプログラムコード32によって定義されてもよい。有形記憶媒体30は、例えば、図1aのプログラムメモリ11を具体化してもよく、このとき、コンピュータプログラム31は図1aのプロセッサ10によって実行されてもよい。
例えば、複数のベクトル係数を含む入力ベクトルが提供されてもよい。この入力ベクトルは、残差ベクトル表現を生じさせるベクトル量子化を表現してもよく、残差ベクトル表現が入力ベクトルを表現してもよい。非限定例として、入力ベクトルは、入力信号の線スペクトル周波数(LSF)を含むベクトルを表現してもよい。この入力信号は、部分オーディオ信号、例えば、音声信号の部分または非音声信号の部分、を少なくとも表現してもよく、このオーディオ信号は、有声部分および/または無声部分および/または一般部分および/または移行部分および/またはCNG部分を含んでもよい。例えば、量子化される入力信号は、エンコードされるオーディオ信号の残差データを表現してもよい。
一例として、入力ベクトルは、x∈{0, 1, ...k−1}とするk個のベクトル成分ixを含むベクトルi=[i0, i1, ..., ik]として定義されてもよい。その他の表現も同様に用いられてよいことを理解されたい。
ステップ520では、前記複数のベクトル成分は、ベクトル成分に基づく規則に従ってベクトル成分の少なくとも2つのグループにグループ分けされる。
一例として、ベクトル成分の少なくとも2つのグループの各グループは既定数のベクトル成分を含むと定義されてもよい。例えば、複数のベクトル成分の各ベクトル成分は、ベクトル成分の少なくとも2つのグループのそれぞれのグループに関連付けられてもよい。すなわち、ベクトル成分の少なくとも2つのグループのベクトル成分群は複数のベクトル成分を表現するか、または、別の例として、ベクトル成分の少なくとも2つのグループのベクトル成分群は複数のベクトル成分のうちのベクトル成分のサブセットを表現してもよい。
例えば、前記規則は、ベクトル成分の少なくとも2つのグループの各々のベクトル成分は既定のエネルギー特性を満たさなければならないことを指定してもよい。一例として、この規則は、ベクトル成分の少なくとも2つのグループのうちのグループのベクトル成分群は同様のエネルギー値を有してもよいと定義してもよく、および/または、例えば、前記規則は、ベクトル成分の少なくとも2つのグループのうちの第1のグループであって、この第1のグループはl1<k個のベクトル成分を含む、第1のグループは、複数のベクトル成分のうちのl1個の最もエネルギーが高いベクトル成分またはよりエネルギーが低いベクトル成分を含み、それに対して、複数のベクトル成分のうちの残りのk−l1個のベクトル成分は、ベクトル成分の第1のグループを表現しないベクトル成分の少なくとも2つのグループのうちの残りの少なくとも1つのグループに関連付けられることを指定してもよい。
例えば、前記規則は、ベクトル成分に関連付けられたエネルギー値に基づく規則を表現してもよい。一例として、それぞれのベクトル成分に関連付けられたエネルギー値は、例えば、それぞれのベクトル成分のエネルギー値、またはそれぞれのベクトル成分のエネルギー値に比例する値、またはこのベクトル成分に関連付けられた重み係数で加重されたそれぞれのベクトル成分のエネルギー値を表現するエネルギー値、またはこのベクトル成分に関連付けられた重み係数で加重されたそれぞれのベクトル成分のエネルギー値を表現するエネルギー値に比例する値、または複数のベクトル成分のうちの残りのベクトル成分のエネルギーランク(rank)に対するそれぞれのベクトル成分のエネルギーランクを表現してもよい。例えば、複数のベクトル成分の最低エネルギー値に関連付けられるベクトル成分は最低エネルギーランク、例えばrank=1またはrank=k、に関連付けられてもよく、複数のベクトル成分の最高エネルギー値に関連付けられるベクトル成分は最高エネルギーランク、例えばrank=kまたはrank=1、に関連付けられてもよい。そのため、ベクトル成分のエネルギーランクは、複数のベクトル成分のうちの全ての他の残りのベクトル成分のエネルギーと比較した、それぞれのベクトル成分のそのエネルギーに関する位置を指示してもよい。
x∈{0, 1, ...k−1}とするベクトル成分ixのエネルギー値exは、例えば、
ex=ix^2
に基づくか、またはエネルギー値の任意のその他の適切な定義に基づいて算出されてもよい。
x∈{0, 1, ...k−1}とするベクトル成分ixが、対応する重み係数wxで加重される場合には、このとき、対応する重み係数で加重されたエネルギー値は、例えば、次式に基づいて算出されてもよいであろう。
ex=wxix^2
さらに、別の例として、前記規則は、ベクトル成分に関連付けられた既定のノルムに基づく規則であってもよい。この規則は、ベクトル成分の少なくとも2つのグループのうちのグループのベクトル成分群は特定のノルムを満たしてもよいか、または特定のノルムに基づく既定の範囲内にあると定義してもよく、このノルムは、例えば、p≧1が成り立つとして、対応するLp空間のそれぞれのLpノルム、または任意のその他の適切なノルムを表現してもよい。
例えば、規則は、ベクトル成分の少なくとも2つのグループのうちの第1のグループのベクトル成分群に適用される特定のノルムは第1の既定の範囲内にある、ベクトル係数の少なくとも2つのグループのうちの第2のグループのベクトル成分に適用される特定のノルムは第2の既定の範囲内にある、および以下同様である、ただし、第1および第2の既定の範囲は互いに異なる、と定義してもよい。
一例として、ベクトル成分の少なくとも2つのグループは、x∈{1, 2, ...n}、n≧2とする、ベクトル成分のn個のグループgxを表現し、ベクトル成分の少なくとも2つのグループのうちのx番目のグループgxは入力ベクトルの複数のベクトル係数のうちのlx個のベクトル係数を含み、前記規則は、x番目のグループgxのlx個のベクトル係数の特定のノルムは、このx番目のグループgxに関連付けられた既定の範囲rx内にあることを指定する。そのため、複数のxの範囲lxが定義されてもよく、それぞれのx番目のグループgxに関連付けられた各範囲rxは、異なる範囲を表現してもよい。
例えば、特定のノルムがlpノルムを表現し、x番目のグループgxのlx個のベクトル係数がgx, 0, gx, 1, ...、gx, lx−1, と表されてもよい場合には、このノルムは、x番目のグループgxのlx個のベクトル係数について以下のように算出されてもよい:
例えば、l1ノルム(すなわち、p=1)が用いられてもよく、またはl2ノルム(すなわち、p=2)が用いられてもよく、または任意のその他の適切なノルムが用いられてもよい。
例えば、ステップ520における前記複数のベクトル成分をベクトル成分の少なくとも2つのグループにグループ分けすることは、ベクトル成分の前記少なくとも2つのグループの初期定義による初期化を含んでもよく、ベクトル成分の前記少なくとも2つのグループのうちのグループの各々は、入力ベクトルの複数のベクトル成分のうちのベクトル成分群の、ベクトル成分の少なくとも2つのグループへの初期対応付けに従って、複数のベクトル成分のうちの少なくとも1つのベクトル成分を含み、ベクトル成分の少なくとも2つのグループのうちの異なるグループのベクトル成分群は、ベクトル成分群に関連付けられたエネルギー値に基づく規則が満たされるまで、すなわち、ベクトル成分の少なくとも2つのグループの各グループのベクトル成分群がこの規則を満たすまでずっと、異なるグループの間で入れ換えられる。
あるいは、別の例として、第1の量子化表現の複数のベクトル成分のうちのベクトル成分群の、ベクトル成分の少なくとも2つのグループへの前記初期対応付けは、ベクトル成分群に関連付けられたエネルギー値に基づく規則に従ってベクトル成分群がベクトル成分の少なくとも2つのグループに対応付けられる仕方で遂行されてもよい。そのため、対応付けアルゴリズムは、複数のベクトル成分のうちのベクトル成分群をベクトル成分の少なくとも2つのグループに対応付ける際に、規則を考慮してもよい。
その結果、ステップ520におけるグループ分けが遂行された後には、ベクトル成分群の少なくとも2つのグループの各グループのベクトル成分群は、複数のベクトル成分のうちのベクトル成分群に関連付けられたエネルギー値に基づく規則を満たす。
ステップ530では、ベクトル成分の少なくとも2つのグループのうちの少なくとも1つのグループの各グループについて、ベクトル成分のそれぞれのグループに関連付けられたコードブックに基づいてベクトル成分のそれぞれのグループの量子化表現が決定される。その結果、ステップ530では、ベクトル成分の少なくとも1つのグループの少なくとも1つの量子化表現が決定され、ベクトル成分の少なくとも1つのグループの少なくとも1つの量子化表現の各々は、ベクトル成分の少なくとも1つのグループのうちのベクトル成分の対応するグループに関連付けられる。例えば、ステップ530では、ベクトル成分の少なくとも2つのグループの各グループが量子化されてもよい。
例えば、ステップ530では、ベクトル成分の少なくとも1つのグループの各々を量子化するために、同じコードブックが用いられてもよい。
あるいは、別の例として、ステップ530において量子化されるベクトル成分の少なくとも1つのグループのうちのベクトル成分のグループを量子化するために用いられるコードブックは、ベクトル成分のそれぞれのグループのコードベクトルに依存して複数のコードブックから選ばれてもよい。そのため、例えば、より低い/低いエネルギー値に関連付けられたベクトル成分群を含むベクトル成分のグループは、低エネルギーベクトル成分群のために最適化されたコードブックに基づいて量子化されてもよく、それに対して、より高い/高いエネルギー値(例えば、より低い/低いエネルギー値に関連付けられたベクトル成分を含むベクトル成分のグループのようにより高いエネルギー値)に関連付けられたベクトル成分を含むベクトル成分のグループは、高エネルギーベクトル成分群のために最適化されたコードブックに基づいて量子化されてもよい。その結果、ステップ530では、例えば、量子化されるベクトル成分の少なくとも1つのグループのうちのそれぞれのグループを量子化するために適切なコードブックが選択されてもよい。そのため、一例として、ベクトル成分の少なくとも2つのグループのベクトル成分群に関連付けられたエネルギー値に基づく規則が満たされた結果、ベクトル成分のそれぞれのグループの特定のエネルギー特性が、複数のコードブックのうちの選択されるそれぞれのコードブックのために用いられてもよい。ここで、複数のコードブックのうちのコードブック群は、ベクトル成分の異なるエネルギー特性に応じて最適化されていてもよい。
例えば、ステップ530においてエンコードされる少なくとも2つのグループのうちの少なくとも1つのグループの各々は、本発明の第1の態様に係る2段階量子化を適用することによってエンコードされてもよい。すなわち、一例として、ステップ530は、ベクトル成分の少なくとも1つのグループの各々について、本発明のための第1の態様の方法200、300および400のいずれかを遂行することを含む。すなわち、ステップ530においてエンコードされるベクトル成分の少なくとも1つのグループのベクトル成分のそれぞれのグループは、本発明の第1の態様に係るそれぞれの入力ベクトルを表現する。
ステップ530において得られたコードベクトルの少なくとも2つのグループのうちのコードベクトルの少なくとも1つのグループの少なくとも1つの量子化表現は、本発明の第1の態様に係る入力ベクトルの第2の量子化表現と考えられてもよい。
さらに、一例として、方法500は、ベクトル成分の少なくとも2つのグループに基づいて複数のベクトル成分を含む(入力)ベクトルを決定するように構成される情報を決定することを含んでもよい。例えば、前記情報は、ベクトル成分の少なくとも2つのグループのうちの異なるグループのベクトル成分の間で遂行された入れ換えに関する情報を含んでもよい。その結果、一例として、受信機では、ベクトル成分の少なくとも2つのグループの初期の2つのグループを得るために、前記入れ換えが逆順序で行われてもよい。初期の2つのグループは規則を満たさなくてもよいが、入力ベクトルを再構築するために用いることができる。例えば、複数のベクトル成分に基づいてベクトル成分の前記初期の少なくとも2つのグループを定義することは、受信機に知られていてもよい既定の様式で遂行されてもよい。
ベクトル成分の少なくとも2つのグループに基づいて複数のベクトル成分を含む入力ベクトルを決定するように構成されるこの情報は、入力ベクトルの前記第2の量子化表現内に追加情報として含まれてもよい。
図6は、本発明の第3の態様の第2の実施形態に係る方法の任意選択的なフローチャート600を示す。この方法600は、例えば、本発明の第3の態様の第1の実施形態に係る方法500のステップ520において前記複数のベクトル成分をベクトル成分の少なくとも2つのグループにグループ分けするために用いられてもよい。このフローチャート600のステップは、例えば、図1bに示されるように、有形記憶媒体30上に記憶されるコンピュータプログラム31のそれぞれのプログラムコード32によって定義されてもよい。有形記憶媒体30は、例えば、図1aのプログラムメモリ11を具体化してもよく、このとき、コンピュータプログラム31は図1aのプロセッサ10によって実行されてもよい。
ステップ610では、入力ベクトルの複数のベクトル成分がベクトル成分の少なくとも2つのグループに分割される。例えば、前記分割は、規則を満たさなくてもよい、ベクトル成分の初期の少なくとも2つのグループを得るための複数のベクトル成分のベクトル成分群の上述の初期グループ分けの一例を表してもよい。
入力ベクトルは、x∈{0, 1, ...k−1}とする、k個のベクトル成分ixを含むベクトルi=[i0, i1, ..., ik]として定義されてもよいとの仮定の下で、前記k個のベクトル成分i0, i1, ..., ikは、ステップ610において既定の様式に従ってベクトル成分の少なくとも2つのグループの少なくとも2つのグループに分割される。例えば、ベクトル成分の少なくとも2つのグループのうちの第1の初期グループはl1個のベクトル成分を含んでもよく、このl1個のベクトル成分は入力ベクトル表現の最初のl1個のベクトル成分、すなわち、i0, ..., il1−1を表現してもよい。ベクトル成分の第2のグループはl2個のベクトル成分を含んでもよく、このl2個のベクトル成分は、第2のグループの先行グループ、すなわち、ベクトル成分の第1のグループのベクトル成分の後に直接続く複数のベクトル成分のうちのl2個のベクトル成分を表現してもよく、このl2個のベクトル成分はil1, ..., il1+l2−1を表現してもよい。ベクトル成分の少なくとも2つのグループがベクトル成分の2つを超えるグループを表現する場合には、このとき、ベクトル成分のさらなるグループは各々、複数のベクトル係数をベクトル係数の前記少なくとも2つのグループに分割することを通じて得られる、複数のベクトル成分のうちの多数の隣り合うベクトル成分を含む。例えば、少なくとも2つのグループの各グループは同数のベクトル係数を含んでもよく、または、別の例として、ベクトル係数の数はベクトル係数の少なくとも2つのグループのうちのグループによって異なってもよい。
結局、例えば、以下のように限定されるわけではないが、入力ベクトルは、k個のベクトル成分を含むベクトルを表現すると仮定されてもよく、このベクトルはベクトル成分の2つのグループg1およびg2に分割される:
ステップ620では、ベクトル成分の少なくとも2つのグループの各グループは規則を満たすかどうかがチェックされる。
少なくとも2つのグループの各々が規則を満たす場合には、このとき、ベクトル係数の少なくとも2つのグループのうちの2つの異なるグループの間でベクトル係数を再配列する必要はなく、方法600は参照符号640に進んでもよく、そこで、それは、図5に示される方法500の530へジャンプしてもよい。
ステップ620において、少なくとも1つのグループのうちの少なくとも1つのグループは規則を満たさないと判定された場合には、方法600は、ステップ630における、少なくとも2つのグループのうちの第1のグループのベクトル成分の、ベクトル成分の少なくとも2つのグループのうちの第2のグループのベクトル成分との入れ換えへ進む。この入れ換えは、第1のグループ、および入れ換えられる第1のグループのそれぞれのベクトル係数、ならびに対応する第2のグループ、および入れ換えられる第2のグループのそれぞれのベクトル係数は、規則に基づいて、入れ換え後に規則が満たされるように選ばれるか、あるいは、規則を満たすためには1対を超える係数が入れ換えられなければならない場合には、選択された第1のグループの選択されたベクトル係数および選択された第2のグループの選択されたベクトル係数は、規則を満たすために入れ換えられる1対を超える係数のうちの1対の係数を表現するように、選ばれる仕方で遂行される。
一例として、ベクトル係数の第1のグループg1のil1−1をベクトル係数の第2のグループのil1と入れ換えることが必要となる場合があり、この入れ換えによって、以下のようにベクトル係数の再配列されたグループができてもよい:
そのため、一例として、ベクトル係数の前記少なくとも2つのグループの各グループは、入力ベクトルのベクトルiの定位置に関連付けられてもよく、前記入れ換えは、ベクトルi内の入れ換えられるベクトル係数の位置を交換することによって遂行されてもよく、ベクトルi'は入れ換え後の入力ベクトルを表現してもよい。
次に、ステップ620において、ベクトル係数の少なくとも2つのグループの各グループは規則を満たすかどうかがチェックされてもよい。いいえである場合には、このとき、本方法は、異なるグループの2つのベクトル係数を互いに入れ換えることへ再度進む。その結果、図6においてステップ620および630によって定義されるループは、ステップ620において規則が満たされるまで遂行されてもよい。
例えば、前記規則は、ベクトル成分の少なくとも2つのグループのうちの第1のグループは、複数のベクトル成分のうちのl1個の最もエネルギーの高いベクトル成分(またはl1個のよりエネルギーの低いベクトル成分)を含み、それに対して、複数のベクトル成分のうちの残りのk−l1個のベクトル成分は、ベクトル成分の第1のグループを表現しないベクトル成分の少なくとも2つのグループのうちの残りの少なくとも1つのグループに関連付けられることを指定してもよいと仮定されてもよい。さらに、一例として、この規則によれば、ベクトル成分の少なくとも2つのグループのうちの第2のグループは、複数のベクトル成分のうちの残りのk−l1個のベクトル成分のうちのl2個の最もエネルギーの高いベクトル成分(またはl2個のよりエネルギーの低いベクトル成分)を含んでもよい。
そのため、例えば、x∈{1, 2, ...n}とする、ベクトル係数のn個のグループgxが用いられ、x番目のグループgxは入力ベクトルの複数のベクトル係数のうちのlx個のベクトル係数を含む(またはそれらに関連付けられる)との仮定の下では、規則によれば、x番目のグループgxのlx個のベクトル係数は、複数のベクトル係数のうちの
番目から
にエネルギーの高い(またはエネルギーの低い)ベクトル係数を表現しなければならない。
あるいは、別の例として、ベクトル成分に関連付けられた既定のノルムに基づく上述の規則が適用されてもよい。
例えば、少なくとも2つのグループのそれぞれのグループ内のベクトル係数の順序は、適用された規則にとって無意味であってもよい。
別の例として、入力ベクトルは16個のベクトル係数を含んでもよく、ベクトル成分の少なくとも2つのグループはベクトル成分のちょうど2つのグループであり、2つのグループは各々8つのベクトル成分を含み、初期に、第1のグループは、例えばステップ610によって得られた、複数のベクトル係数のうちの最初の8つのベクトル成分i0, ..., i7を含んでもよく、第2のグループは残りの8つのベクトル成分i8, ..., i15を含んでもよい:
ここで、成分のエネルギー値の順序は、一例では、(ベクトルi内のそれぞれの位置に対応する)各成分のランクが以下の通りであるようになっていてもよい:
1 4 5 6 2 9 3 7 11 12 10 8 13 14 15 16。
ここで、1は、それぞれのベクトル成分i0は、全てのベクトル成分のうち、エネルギー値に関して最も高いランクを有することを指示し、以下同様に続く。すなわち、16は、ベクトル成分i15はエネルギー値に関して16番目に高いランクを有することを指示する。
次に、例えば、ステップ620では、規則は満たされているどうか、またはベクトル係数の2つのグループg1およびg2の各々がチェックされる。例えば、規則は、x番目のグループgxのlx個のベクトル係数は、複数のベクトル係数のうちの
番目から
にエネルギーの高いベクトル係数を表現しなければならないという上述の規則を表現してもよい。
その結果、ステップ620では、第1のグループおよび第2のグループはこの規則を満たさないことが検出される。これは、ベクトル成分の第1のグループのベクトル係数i7は9番目にエネルギーの高いベクトル係数を表現するがゆえに、第1のグループg1は1番目から8番目にエネルギーの高いベクトル係数を含まないため、およびベクトル係数の第2のグループのベクトル係数i11は8番目にエネルギーの高いベクトル係数を表現するがゆえに、第2のグループg2は9番目から16番目にエネルギーの高いベクトル係数を含まないためである。
そのため、ステップ620では、適用された規則に従わないベクトル係数が特定されてもよく、すなわち、これらのベクトル係数は、規則が満たされるまで入れ換えられる。
その結果、本例では、ベクトル係数の第1のグループおよび第2のグループを再配列するために、ベクトル成分の第1のグループのベクトル係数i7はベクトル係数の第2のグループのベクトル係数i11と入れ換えられ、ベクトル係数の再配列されたグループは以下のように表されてもよい:
そのため、再配列されたベクトルi'の(またはベクトル係数の再配列されたグループの)エネルギー値の順序は以下のようになる:
1 4 5 6 2 8 3 7 11 12 10 9 13 14 15 16。
次に、ステップ620では、第1のグループg1は1番目から8番目にエネルギーの高いベクトル係数をまさに含むこと、および第2のグループg2は9番目から16番目にエネルギーの高いベクトル係数をまさに含むことが検出され、それゆえ、規則は2つのベクトルグループの各グループについて満たされる。
このとき、方法600は次に参照符号640へ進んでもよく、方法500のステップ530へジャンプしてもよい。
図7は、本発明の第4の態様に係る方法の第1の実施形態例のフローチャート700である。
このフローチャート700のステップは、例えば、図1bに示されるように、有形記憶媒体30上に記憶されるコンピュータプログラム31のそれぞれのプログラムコード32によって定義されてもよい。有形記憶媒体30は、例えば、図1aのプログラムメモリ11を具体化してもよく、このとき、コンピュータプログラム31は図1aのプロセッサ10によって実行されてもよい。
例えば、この方法700は、本発明の第3の態様の方法のいずれかによって得られた、例えば、図5のステップ530によって得られた、ベクトル成分のグループの量子化表現を逆量子化するために用いられてもよい。
ステップ710では、ベクトル成分の少なくとも2つのグループのうちのベクトル成分のグループの各量子化表現が逆量子化される。ベクトル成分のこれらの量子化された少なくとも2つのグループは、本発明の第3の態様の方法のいずれかによって、例えば、図5ステップの530を用いて得られたベクトル成分の少なくとも2つの量子化されたグループを表現してもよい。
そのため、ステップ710の前記逆量子化は図5のステップ530に対して逆の順序で遂行されてもよく、ベクトル成分の各量子化されたグループは、ステップ710において、ベクトル成分のそれぞれの逆量子化されたグループを決定するために、逆量子化される。一例として、この逆量子化は本発明の第3の態様に従って遂行されてもよい。
ステップ720では、次に、ベクトル成分の少なくとも2つの逆量子化されたグループに基づいて複数のベクトル成分を含むベクトルを決定するように構成される情報に基づき、ベクトル成分の少なくとも2つの逆量子化されたグループに基づいて、複数のベクトル成分を含むベクトルが決定される。ベクトル成分の少なくとも2つの逆量子化されたグループに基づいて複数のベクトル成分を含むベクトルを決定するように構成されるこの情報は、本発明の第3の態様において説明されているベクトル成分の少なくとも2つの逆量子化されたグループに基づいて複数のベクトル成分を含む入力ベクトルを決定するように構成される情報を表現してもよく、例えば、ベクトル成分の少なくとも2つの逆量子化されたグループとともに受信機において受信されてもよい。
例えば、ステップ720は、ベクトル成分の少なくとも2つの逆量子化されたグループのうちの異なるグループの間のベクトル成分群の再入れ換えを含んでもよい。一例として、情報は、ベクトル成分の少なくとも2つのグループのうちの異なるグループのベクトル成分群の間で遂行された入れ換えに関する情報を含んでもよく、例えば、この情報は、ステップ630において遂行された、ベクトル成分の少なくとも2つのグループのうちの第1のグループのベクトル成分の、ベクトル成分の少なくとも2つのグループのうちの第2のグループのベクトル成分とのものを定義する入れ換えに関する情報を含んでもよい。そのため、一例として、ベクトル成分の少なくとも2つのグループのうちの異なるグループのベクトル成分群の間で遂行された入れ換えに関する情報を含む情報に基づいて、方法600によって遂行された入れ換えは、ベクトル係数の少なくとも2つの逆量子化されたグループが、入れ換えが遂行される前の本発明の第3の態様のベクトル成分の初期の少なくとも2つのグループに対応するまで、ベクトル成分の少なくとも2つの逆量子化されたグループに対して取り消されてもよい。次に、ベクトル係数のこれらの少なくとも2つの逆量子化されたグループに基づいて、例えば、本発明の第3の態様において遂行された入力ベクトルの複数の成分の分割を取り消すために、ベクトル係数の少なくとも2つの逆量子化されたグループを一つに結合することによって、入力ベクトルの第1の表現を得ることができる。例えば、方法600において入れ換えが必要でなかった場合には、このとき、これは情報によって指示されてもよく、ベクトル係数の少なくとも2つの逆量子化されたグループは、例えば、入力ベクトルを得るために入れ換えを全く行うことなく一つに結合されてもよい。
あるいは、別の例として、第3の態様における、入力ベクトルの複数のベクトル成分のうちのベクトル成分群の、ベクトル成分の少なくとも2つのグループへの初期対応付けが、ベクトル成分群が、ベクトル成分群に関連付けられたエネルギー値に基づく規則に従ってベクトル成分の少なくとも2つのグループに対応付けられる仕方で遂行された場合には、ベクトル成分の少なくとも2つの逆量子化されたグループに基づいて複数のベクトル成分を含むベクトルを決定するように構成される情報は、この対応付けを指示し、ステップ720では、第1の量子化表現は、ベクトル係数の少なくとも2つの逆量子化されたグループのベクトル係数群の、(入力)ベクトルの複数のベクトル成分への対応する逆の対応付けを遂行することによって、得られる。
例えば、本発明の第3の態様に関して提示されているあらゆる説明は本発明の第4の態様にも適用できてよい。
これらの擬似コード例内のループは限定的なものではなく、単一のコードベクトル添字から少なくとも2つのコードベクトル添字を抽出するために、異なる仕方で配列されてもよいことを理解されたい。
本出願において使用されるとき、用語'回路機構'は以下のものの全てを指す:
(a)ハードウェアのみの回路実装形態(アナログおよび/またはデジタル回路機構のみの形の実装形態等)ならびに
(b)(場合に応じて)以下のもの等の、回路およびソフトウェア(および/またはファームウェア)の組み合わせ:
(i)プロセッサ(単数または複数)の組み合わせ、または
(ii)協働して携帯電話または測位デバイス等の装置に種々の機能を遂行させるプロセッサ(単数または複数)/ソフトウェア(デジタル信号プロセッサ(単数または複数)を含む)の部分、ソフトウェアの部分、およびメモリ(単数または複数)の部分、ならびに
(c)たとえ、ソフトウェアまたはファームウェアは物理的に存在しなくても、動作のためにはソフトウェアまたはファームウェアを必要とする、マイクロプロセッサ(単数または複数)、またはマイクロプロセッサ(単数または複数)の部分等の、回路。
'回路機構'のこの定義は、全ての請求項を含めて、本出願におけるこの用語の全ての使用に適用される。さらなる例として、本出願において使用されるとき、用語「回路機構」は、単なるプロセッサ(もしくは複数のプロセッサ)、またはプロセッサの部分、ならびにその(もしくはそれらの)付随のソフトウェアおよび/またはファームウェアの実装形態も同様に対象範囲に含むであろう。用語「回路機構」は、例えば、特定のクレーム要素に適用可能な場合には、携帯電話または測位デバイスのためのベースバンド集積回路またはアプリケーションプロセッサ集積回路も同様に対象範囲に含む。
本出願に説明されている本発明の諸態様およびそれらの諸実施形態に関して、あらゆる動作またはステップの開示は、対応する装置の対応する(機能)構成(例えば、対応する装置のコンピュータプログラムコードおよび/またはプロセッサおよび/または何らかの他の手段の構成)、実行されるとこうした動作またはステップを生じさせるように定義された対応するコンピュータプログラムコード、ならびに/あるいはシステム(またはその一部)の対応する(機能)構成の開示として理解されるべきであることを理解されたい。
本出願に提示されている本発明の諸態様およびそれらの諸実施形態、ならびに同様にそれらの一つ一つの特徴は、全ての可能な相互の組み合わせで開示されることも理解されたい。以上に提示されているフローチャートにおける方法ステップの順序は必須ではなく、代替の順序も同様に可能であってよいことも理解されたい。
本発明は以上において非限定例によって説明されている。特に、当業者に明白であり、添付の請求項の範囲および趣旨から逸脱することなく実施可能な代替的な方法および変更が存在することに留意されたい。