(57)【要約】      （修正有）【課題】最適な演算ビットサイズを有するハードウェアで処理可能なピラミッドベクトル量子化によりインデクシングされるベクトルサイズを拡張する。【解決手段】オーディオ／ビデオ信号のピラミッドベクトル量子化インデクシングの方法は、オーディオ／ビデオサンプルを表す整数入力ベクトルを取得する（４０２）。整数入力ベクトルから先行符号を抽出する（４０４）。先行符号は、整数入力ベクトルの終端非零係数の符号である。終端非零係数は、整数入力ベクトルの最初の非零係数及び最後の非零係数のうち一方である。整数入力ベクトルは、ピラミッドベクトル量子化列挙方式によってオーディオ／ビデオ信号サンプルを表す出力インデックスにインデクシングされる（４０６）。ピラミッドベクトル量子化列挙方式は、終端非零係数の符号を無視するために設計され、出力インデックス及び先行符号を出力する（４０８）。【選択図】図５
2020024431.tif 000002
【特許請求の範囲】
【請求項１】
オーディオ／ビデオサンプルのピラミッドベクトル量子化インデクシングのための方法であって、前記方法は、
整数入力ベクトルを取得するステップ（４０２）であって、
前記整数入力ベクトルは前記オーディオ／ビデオ信号のサンプルを表し、
前記整数入力ベクトルは複数の整数値係数を有する、ステップと、
前記整数入力ベクトルから先行符号を抽出するステップ（４０４）であって、
前記先行符号は前記整数入力ベクトル中の終端非零係数の符号であり、
前記終端非零係数は前記整数入力ベクトルにおける最初の非零係数と最後の非零係数とのいずれかである、ステップと、
ピラミッドベクトル量子化列挙方式を用いて、前記整数入力ベクトルを、前記先行符号と共に前記オーディオ／ビデオ信号のサンプルを表す出力インデックスにインデクシングするステップ（４０６）であって、
前記ピラミッドベクトル量子化列挙方式は前記終端非零係数の前記符号を無視する、ステップと、
前記先行符号を第１の符号語として、前記出力インデックスを第２の符号語として、出力ビットストリームへ出力するステップ（４０８）と、
を有することを特徴とする方法。
【請求項２】
インデクシングする前記ステップ（４０６）は反復列挙手順により実行され、
前記反復列挙手順は前記整数入力ベクトルのうちの１つの現在の係数を考慮するために選択する反復ステップの繰り返しを含み、
前記反復ステップは、順に、
前記整数入力ベクトルの前記現在の係数の前に処理された前記整数入力ベクトルのすべての係数と関連するオフセットパラメータを発見することと、
前記オフセットパラメータに応じて累積インデックスを増加させることと、
を含み、
前記繰り返しは、少なくとも前記整数入力ベクトルのすべての係数が考慮されるまで、前記現在の係数として順次選択される前記整数入力ベクトルの係数を用いて継続され、
前記反復列挙手順は、すべての反復ステップが終了した後に前記出力インデックスが前記累積インデックスと等しくなるように設定される終了ステップを含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
各反復ステップにおいて前記累積インデックスを前記増加させることに対して、前記整数入力ベクトルにおける以前の先行符号に応じて最下位ビットが与えられる、
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記累積インデックスを前記増加させることは、nが前記整数入力ベクトルの次元でありkが単位パルスの数である場合の第１のオフセットパラメータU(n,k)に少なくとも部分的に基づき、前記第１のオフセットパラメータU(n,k)は、先行する０を持たず、先行値kを持たず、先行する正の値を有し且つ正の次の先行符号を有した、次元n及びkのＬ１ノルムの整数ベクトルの数として定められる、
ことを特徴とする請求項２又は３に記載の方法。
【請求項５】
前記第１のオフセットパラメータU(n,k)は、再帰的に、
U(n,k)=1+U(n,k-1)+U(n-1,k-1)+U(n-1,k)
と定められる、
ことを特徴とする請求項４に記載の方法。
【請求項６】
前記インデックスの前記増加は、nが前記整数入力ベクトルの次元でありkが単位パルスの数である場合の第２のオフセットパラメータA(n,k)に少なくとも部分的に基づき、前記第２のオフセットパラメータA(n,k)は、正の先行値を有するとともに先行する０を持たない、次元n及びkのＬ１ノルムの整数ベクトルの数として定められる、
ことを特徴とする請求項２から５のいずれか１項に記載の方法。
【請求項７】
前記第２のオフセットパラメータA(n,k)は、再帰的に、
A(n,k)=A(n,k-1)+A(n-1,k-1)+A(n-1,k)
と定められる、
ことを特徴とする請求項６に記載の方法。
【請求項８】
インデックス値の前記増加は、nが前記整数入力ベクトルの次元でありkが単位パルスの数である場合の、第１のオフセットパラメータU(n,k)と、第２のオフセットパラメータA(n,k)との両方に基づき、前記第１のオフセットパラメータU(n,k)は、先行する０を持たず、先行値kを持たず、先行する正の値を有し且つ正の次の先行符号を有した、次元n及びkのＬ１ノルムの整数ベクトルの数として定められ、前記第２のオフセットパラメータA(n,k)は、正の先行値を有するとともに先行する０を持たない、次元n及びkのＬ１ノルムの整数ベクトルの数として定められる、
ことを特徴とする請求項２から７のいずれか１項に記載の方法。
【請求項９】
Uの再帰が、
U(n,k+1)=1+A(n-1,k)＞＞1+U(n-1,k+1)+A(n,k)＞＞1
に従って実行される、
ことを特徴とする請求項８に記載の方法。
【請求項１０】
オーディオ／ビデオサンプルのピラミッドベクトル量子化デインデクシングのための方法であって、前記方法は、
入力ビットストリームから、第１の符号語としての先行符号及び第２の符号語としての入力インデックスを受信するステップ（４５２）であって、
前記先行符号及び前記入力インデックスはオーディオ／ビデオ信号のサンプルを表し、
前記先行符号は、前記オーディオ／ビデオ信号のサンプルを表す生成されるべき整数出力ベクトルにおける、終端非零係数の符号であり、
前記整数出力ベクトルは、複数の整数値係数を有し、
前記終端非零係数は、前記整数出力ベクトルにおける最初の非零係数と最後の非零係数とのいずれかである、ステップと、
ピラミッドベクトル量子化列挙解除方式を用いて、前記入力インデックスを前記整数出力ベクトルにデインデクシングするステップ（４５４）であって、
前記入力インデックスは、前記終端非零係数の前記符号を無視する列挙方式により生成される、ステップと、
前記受信先行符号に従って、前記整数出力ベクトルにおける前記終端非零係数の符号を割り当てるステップ（４５６）と、
前記整数出力ベクトルを出力するステップ（４５８）と、
を有することを特徴とする方法。
【請求項１１】
デインデクシングする前記ステップ（４５４）は、反復列挙解除手順により実行され、
前記反復列挙解除手順は、残存インデックスが前記入力インデックスと等しくなるように設定される初期化ステップと、前記整数出力ベクトルの１つの現在の係数を考慮するために選択する反復ステップの繰り返しとを含み、
前記反復ステップは、順に、
前記整数出力ベクトルの中の前記現在の係数の位置及び残存インデックスに適合しているオフセットパラメータを発見することと、
前記オフセットパラメータに応じて前記残存インデックスを減少させることと、
前記整数入力ベクトルの前記現在の係数の振幅を前記オフセットパラメータと関連する振幅と等しくなるように設定することと、
を含み、
前記繰り返しは、少なくとも前記残存インデックスがゼロに等しくなるまで、前記現在の係数として選択される前記整数入力ベクトルの係数を用いて継続される、
ことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記残存インデックスにおける最下位ビットに応じて、前記整数入力ベクトルにおける次の先行符号が推論される、
ことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記残存インデックスの前記減少は、nが前記整数入力ベクトルの次元でありkが単位パルスの数である場合の第１のオフセットパラメータU(n,k)に少なくとも部分的に基づき、前記第１のオフセットパラメータU(n,k)は、先行する０を持たず、先行値kを持たず、先行する正の値を有し且つ正の次の先行符号を有した、次元n及びkのＬ１ノルムの整数ベクトルの数として定められる、
ことを特徴とする請求項１１又は１２に記載の方法。
【請求項１４】
前記第１のオフセットパラメータU(n,k)は、再帰的に、
U(n,k)=1+U(n,k-1)+U(n-1,k-1)+U(n-1,k)
と定められる、
ことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記残存インデックスの前記減少は、nが前記整数入力ベクトルの次元でありkが単位パルスの数である場合の第２のオフセットパラメータA(n,k)に少なくとも部分的に基づき、前記第２のオフセットパラメータA(n,k)は、正の先行値を有するとともに先行する０を持たない、次元n及びkのＬ１ノルムの整数ベクトルの数として定められる、
ことを特徴とする請求項１１から１４のいずれか１項に記載の方法。
【請求項１６】
前記第２のオフセットパラメータA(n,k)は、再帰的に、
A(n,k)=A(n,k-1)+A(n-1,k-1)+A(n-1,k)
と定められる、
ことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記残存インデックスの前記減少は、nが前記整数入力ベクトルの次元でありkが単位パルスの数である場合の、第１のオフセットパラメータU(n,k)と、第２のオフセットパラメータA(n,k)との両方に基づき、前記第１のオフセットパラメータU(n,k)は、先行する０を持たず、先行値kを持たず、先行する正の値を有し且つ正の次の先行符号を有した、次元n及びkのＬ１ノルムの整数ベクトルの数として定められ、前記第２のオフセットパラメータA(n,k)は、正の先行値を有するとともに先行する０を持たない、次元n及びkのＬ１ノルムの整数ベクトルの数として定められる、
ことを特徴とする請求項１１から１６のいずれか１項に記載の方法。
【請求項１８】
最後の列（k=K+1）に対するUの行専用再帰が、
U(n,k)=A(n,k-2)＞＞1+(n*A(n,k-1)-(1+A(n,k-1)＞＞1+A(n,k-2)＞＞1))/(k-1)
に従って実行される、
ことを特徴とする請求項８に記載の方法。
【請求項１９】
オーディオ／ビデオ信号の通信のための方法であって、
オーディオ／ビデオサンプルを、送信機の符号化器において、請求項１から９のいずれかに記載のオーディオ／ビデオサンプルのピラミッドベクトル量子化インデクシングのための方法に従って、前記出力インデックス及び前記先行符号に符号化することと、
前記出力インデックス及び前記先行符号の、前記送信機からの、前記出力インデックス及び前記先行符号が入力インデックスと先行符号として受信される受信機への送信と、
前記受信機の復号器において、請求項１０から１８のいずれかに記載のオーディオ／ビデオサンプルのピラミッドベクトル量子化デインデクシングのための方法に従って、前記入力インデックス及び前記先行符号を復号することと、
を含むことを特徴とする方法。
【請求項２０】
ピラミッドベクトル量子化によってオーディオ／ビデオサンプルをインデクシングするように構成される符号化器（１０）であって、
前記符号化器（１０）は、整数入力ベクトルを取得するように構成され、
前記整数入力ベクトル（５）は、前記オーディオ／ビデオ信号のサンプルを表し、
前記整数入力ベクトルは、複数の整数値係数を有し、
前記符号化器（１０）は、前記整数入力ベクトル（５）から先行符号（１５）を抽出するように構成され、
前記先行符号（１５）は、前記整数入力ベクトル（５）における終端非零係数の符号であり、
前記終端非零係数は、前記整数入力ベクトル（５）における最初の非零係数と最後の非零係数とのいずれかであり、
前記符号化器（１０）は、ピラミッドベクトル量子化列挙方式を用いて、前記整数入力ベクトル（５）を、前記先行符号と共に前記オーディオ／ビデオ信号のサンプルを表す出力インデックス（２５）にインデクシングするように構成され、
前記ピラミッドベクトル量子化列挙方式は前記終端非零係数の前記符号を無視し、
前記符号化器（１０）は、前記先行符号（１５）を第１の符号語として、前記出力インデックス（２５）を第２の符号語として、出力ビットストリーム（２）へ出力するように構成される、
ことを特徴とする符号化器。
【請求項２１】
前記符号化器（１０）は、プロセッサ（８００）及びメモリ（８１０）を有し、前記メモリ（８１０）は、前記プロセッサ（８００）により実行可能な命令を含み、それにより、前記プロセッサ（８００）は、前記整数入力ベクトル（５）から前記先行符号（１５）を抽出し、前記先行符号を無視する前記ピラミッドベクトル量子化列挙方式を用いて、前記オーディオ／ビデオ信号のサンプルを表す前記出力インデックス（２５）に前記整数入力ベクトル（５）をインデクシングするように動作可能である、
ことを特徴とする請求項２０に記載の符号化器。
【請求項２２】
符号化器（１０）は、前記オーディオ／ビデオ信号のサンプルを表す前記整数入力ベクトル（５）を取得し、前記出力ビットストリーム（２）へと、前記先行符号（１５）及び前記出力インデックス（２５）を出力するように構成される通信回路（８０４、８０６、８０８）を有する、
ことを特徴とする請求項２０又は２１に記載の符号化器。
【請求項２３】
前記符号化器（１０）は前記インデクシングを反復列挙手順により実行するように構成され、
前記反復列挙手順は、前記整数入力ベクトル（５）のうちの１つの現在の係数を考慮するために選択する反復ステップの繰り返しを含み、
前記反復ステップは、順に、
前記整数入力ベクトル（５）の前記現在の係数の前に処理された前記整数入力ベクトルのすべての係数と関連するオフセットパラメータを発見することと、
前記オフセットパラメータに応じて累積インデックスを増加させることと、
を含み、
前記繰り返しは、少なくとも前記整数入力ベクトル（５）のすべての係数が考慮されるまで、前記現在の係数として順次選択される前記整数入力ベクトルの係数を用いて継続され、
前記反復列挙手順は、すべての反復ステップが終了した後に前記出力インデックス（２５）が前記累積インデックスと等しくなるように設定される終了ステップを含む、
ことを特徴とする請求項２０から２２のいずれか１項に記載の符号化器。
【請求項２４】
各反復ステップにおいて前記累積インデックスの前記増加に対して、前記整数入力ベクトル（５）における以前の先行符号に応じて最下位ビットが与えられる、
ことを特徴とする請求項２３に記載の符号化器。
【請求項２５】
前記累積インデックスの前記増加は、nが前記整数入力ベクトルの次元でありkが単位パルスの数である場合の第１のオフセットパラメータU(n,k)に少なくとも部分的に基づき、前記第１のオフセットパラメータU(n,k)は、先行する０を持たず、先行値kを持たず、先行する正の値を有し且つ正の次の先行符号を有した、次元n及びkのＬ１ノルムの整数ベクトルの数として定められる、
ことを特徴とする請求項２３又は２４に記載の符号化器。
【請求項２６】
前記第１のオフセットパラメータU(n,k)は、再帰的に、
U(n,k)=1+U(n,k-1)+U(n-1,k-1)+U(n-1,k)
と定められる、
ことを特徴とする請求項２５に記載の符号化器。
【請求項２７】
前記インデックスの前記増加は、nが前記整数入力ベクトルの次元でありkが単位パルスの数である場合の第２のオフセットパラメータA(n,k)に少なくとも部分的に基づき、前記第２のオフセットパラメータA(n,k)は、正の先行値を有するとともに先行する０を持たない、次元n及びkのＬ１ノルムの整数ベクトルの数として定められる、
ことを特徴とする請求項２３から２６のいずれか１項に記載の符号化器。
【請求項２８】
前記第２のオフセットパラメータA(n,k)は、再帰的に、
A(n,k)=A(n,k-1)+A(n-1,k-1)+A(n-1,k)
と定められる、
ことを特徴とする請求項２７に記載の符号化器。
【請求項２９】
インデックス値の前記増加は、nが前記整数入力ベクトルの次元でありkが単位パルスの数である場合の第１のオフセットパラメータU(n,k)と、nが前記整数入力ベクトルの次元でありkが単位パルスの数である場合の第２のオフセットパラメータA(n,k)との両方に基づき、前記第１のオフセットパラメータU(n,k)は、先行する０を持たず、先行値kを持たず、先行する正の値を有し且つ正の次の先行符号を有した、次元n及びkのＬ１ノルムの整数ベクトルの数として定められ、前記第２のオフセットパラメータA(n,k)は、正の先行値を有するとともに先行する０を持たない、次元n及びkのＬ１ノルムの整数ベクトルの数として定められる、
ことを特徴とする請求項２３から２８のいずれか１項に記載の符号化器。
【請求項３０】
Uの再帰が、
U(n,k+1)=1+A(n-1,k)＞＞1+U(n-1,k+1)+A(n,k)＞＞1
に従って実行される、
ことを特徴とする請求項２９に記載の符号化器。
【請求項３１】
オーディオ／ビデオサンプルへのピラミッドベクトル量子化によるデインデクシングを行うように構成された復号器であって、
前記復号器（６０）は、入力ビットストリーム（２’）から、第１の符号語としての先行符号（１５’）及び第２の符号語としての入力インデックス（２５’）を受信するように構成され、
前記先行符号（１５’）及び前記入力インデックス（２５’）はオーディオ／ビデオ信号のサンプルを表し、
前記先行符号（１５’）は、前記オーディオ／ビデオ信号のサンプルを表す生成されるべき整数出力ベクトル（６’）における、終端非零係数の符号であり、
前記整数出力ベクトルは、複数の整数値係数を有し、
前記終端非零係数は、前記整数出力ベクトルにおける最初の非零係数と最後の非零係数とのいずれかであり、
前記復号器（６０）は、ピラミッドベクトル量子化列挙解除方式を用いて、前記入力インデックス（２５’）を前記整数出力ベクトル（６’）にデインデクシングするように構成され、
前記入力インデックスは、前記終端非零係数の前記符号を無視する列挙方式により生成され、
前記復号器（６０）は、前記受信先行符号（１５’）に従って、前記終端非零係数の符号を割り当てるように構成され、
前記復号器（６０）は、前記整数出力ベクトル（６’）を出力するように構成される、
ことを特徴とする復号器。
【請求項３２】
前記復号器（６０）は、プロセッサ（８５０）及びメモリ（８６０）を有し、前記メモリ（８６０）は、前記プロセッサ（８５０）により実行可能な命令を含み、それにより、前記プロセッサ（８５０）は、前記先行符号を無視する前記ピラミッドベクトル量子化列挙方式を用いて前記入力インデックス（２５’）を前記整数出力ベクトル（６’）にデインデクシングし、前記受信先行符号（１５’）に従って、前記終端非零係数の符号を割り当てるように動作可能である、
ことを特徴とする請求項３１に記載の復号器。
【請求項３３】
前記復号器（６０）は、入力ビットストリーム（２’）から、オーディオ／ビデオ信号のサンプルを表す先行符号（１５’）及び入力インデックス（２５’）を受信し、前記整数出力ベクトルを出力するように構成される通信回路（８５４、８５６、８５８）を有する、
ことを特徴とする請求項３１又は３２に記載の復号器。
【請求項３４】
前記復号器（６０）は、反復列挙解除手順により前記デインデクシングを実行するように構成され、
前記反復列挙解除手順は、残存インデックスが前記入力インデックス（２５’）と等しくなるように設定される初期化ステップと、前記整数出力ベクトルの１つの現在の係数を考慮するために選択する反復ステップの繰り返しとを含み、
前記反復ステップは、順に、
前記整数出力ベクトルの中の前記現在の係数の位置及び残存インデックスに適合しているオフセットパラメータを発見することと、
前記オフセットパラメータに応じて前記残存インデックスを減少させることと、
前記整数入力ベクトルの前記現在の係数の振幅を前記オフセットパラメータと関連する振幅と等しくなるように設定することと、
を含み、
前記繰り返しは、少なくとも前記残存インデックスがゼロに等しくなるまで、前記現在の係数として選択される前記整数入力ベクトルの係数を用いて継続される、
ことを特徴とする請求項３１から３３のいずれか１項に記載の復号器。
【請求項３５】
前記残存インデックスにおける最下位ビットに応じて、前記整数入力ベクトルにおける次の先行符号が推論される、
ことを特徴とする請求項３４に記載の復号器。
【請求項３６】
前記残存インデックスの前記減少は、nが前記整数入力ベクトルの次元でありkが単位パルスの数である場合の第１のオフセットパラメータU(n,k)に少なくとも部分的に基づき、前記第１のオフセットパラメータU(n,k)は、先行する０を持たず、先行値kを持たず、先行する正の値を有し且つ正の次の先行符号を有した、次元n及びkのＬ１ノルムの整数ベクトルの数として定められる、
ことを特徴とする請求項３４又は３５に記載の復号器。
【請求項３７】
前記第１のオフセットパラメータU(n,k)は、再帰的に、
U(n,k)=1+U(n,k-1)+U(n-1,k-1)+U(n-1,k)
と定められる、
ことを特徴とする請求項３６に記載の復号器。
【請求項３８】
前記残存インデックスの前記減少は、nが前記整数入力ベクトルの次元でありkが単位パルスの数である場合の第２のオフセットパラメータA(n,k)に少なくとも部分的に基づき、前記第２のオフセットパラメータA(n,k)は、正の先行値を有するとともに先行する０を持たない、次元n及びkのＬ１ノルムの整数ベクトルの数として定められる、
ことを特徴とする請求項３４から３７のいずれか１項に記載の復号器。
【請求項３９】
前記第２のオフセットパラメータA(n,k)は、再帰的に、
A(n,k)=A(n,k-1)+A(n-1,k-1)+A(n-1,k)
と定められる、
ことを特徴とする請求項３８に記載の復号器。
【請求項４０】
前記残存インデックスの前記減少は、nが前記整数入力ベクトルの次元でありkが単位パルスの数である場合の第１のオフセットパラメータU(n,k)と、nが前記整数入力ベクトルの次元でありkが単位パルスの数である場合の第２のオフセットパラメータA(n,k)との両方に基づき、前記第１のオフセットパラメータU(n,k)は、先行する０を持たず、先行値kを持たず、先行する正の値を有し且つ正の次の先行符号を有した、次元n及びkのＬ１ノルムの整数ベクトルの数として定められ、前記第２のオフセットパラメータA(n,k)は、正の先行値を有するとともに先行する０を持たない、次元n及びkのＬ１ノルムの整数ベクトルの数として定められる、
ことを特徴とする請求項３４から３９のいずれか１項に記載の復号器。
【請求項４１】
最後の行列の列（k=K+1）に対するUの行専用再帰が、
U(n,k)=A(n,k-2)＞＞1+(n*A(n,k-1)-(1+A(n,k-1)＞＞1+A(n,k-2)＞＞1))/(k-1)
に従って実行される、
ことを特徴とする請求項４０に記載の復号器。
【請求項４２】
コンピュータプログラム（８２０、８２２、８２４、８３６）であって、
少なくとも１つのプロセッサ（８００）により実行されるときに、前記少なくとも１つのプロセッサ（８００）に、整数入力ベクトル（５）を取得させ、ここで前記整数入力ベクトルは前記オーディオ／ビデオ信号のサンプルを表し、前記整数入力ベクトルは複数の整数値係数を有し、前記整数入力ベクトル（５）から先行符号（１５）を抽出させ、ここで前記先行符号（５）は前記整数入力ベクトル中の終端非零係数の符号であり、前記終端非零係数は前記整数入力ベクトルにおける最初の非零係数と最後の非零係数とのいずれかであり、ピラミッドベクトル量子化列挙方式を用いて、前記整数入力ベクトルを、前記先行符号と共に前記オーディオ／ビデオ信号のサンプルを表す出力インデックス（２５）にインデクシングさせ、ここで前記ピラミッドベクトル量子化列挙方式は前記終端非零係数の前記符号を無視し、前記先行符号（１５）を第１の符号語として、前記出力インデックス（２５）を第２の符号語として、出力ビットストリーム（２）へ出力させる命令を含む、
ことを特徴とするコンピュータプログラム。
【請求項４３】
コンピュータプログラム（８７０、８７２、８７４、８７６）であって、
少なくとも１つのプロセッサ（８５０）により実行されるときに、前記少なくとも１つのプロセッサ（８５０）に、入力ビットストリーム（２’）から、第１の符号語としての先行符号（１５’）及び第２の符号語としての入力インデックス（２５’）を受信させ、ここで、前記先行符号及び前記入力インデックスはオーディオ／ビデオ信号のサンプルを表し、前記先行符号（１５’）は、前記オーディオ／ビデオ信号のサンプルを表す生成されるべき整数出力ベクトル（６’）における、終端非零係数の符号であり、前記整数出力ベクトルは、複数の整数値係数を有し、前記終端非零係数は、前記整数出力ベクトルにおける最初の非零係数と最後の非零係数とのいずれかであり、ピラミッドベクトル量子化列挙解除方式を用いて、前記入力インデックス（２５’）を前記整数出力ベクトル（６’）にデインデクシングさせ、ここで、前記入力インデックスは前記終端非零係数の前記符号を無視する列挙方式により生成され、前記受信先行符号（１５’）に従って、前記終端非零係数の符号を割り当てさせ、前記整数出力ベクトル（６’）を出力させる命令を含む、
ことを特徴とするコンピュータプログラム。
【請求項４４】
請求項４２及び請求項４３の少なくともいずれかのコンピュータプログラムを有するキャリアであって、前記キャリアは、電子信号、光信号、電磁信号、磁気信号、電気信号、無線信号、マイクロ波信号、又はコンピュータ可読記憶媒体のいずれかである、
ことを特徴とするキャリア。
【請求項４５】
オーディオ／ビデオサンプルのピラミッドベクトル量子化インデクシングのための符号化器（１０）であって、
整数入力ベクトル（５）を取得するための入力モジュール（８３０）と、
ここで、前記整数入力ベクトルは、前記オーディオ／ビデオ信号のサンプルを表し、
前記整数入力ベクトルは複数の整数値係数を有し、
前記整数入力ベクトル（５）から先行符号（１５）を抽出するための抽出モジュール（８３２）と、
ここで、前記先行符号（１５）は、前記整数入力ベクトル（５）における終端非零係数の符号であり、
前記終端非零係数は、前記整数入力ベクトル（５）最初の非零係数と最後の非零係数とのいずれかであり、
ピラミッドベクトル量子化列挙方式を用いて、前記整数入力ベクトル（５）を、前記先行符号と共に前記オーディオ／ビデオ信号のサンプルを表す出力インデックス（２５）にインデクシングするためのインデクシングモジュール（８３４）と、
ここで、前記ピラミッドベクトル量子化列挙方式は前記終端非零係数の前記符号を無視し、
前記先行符号（１５）を第１の符号語として、前記出力インデックス（２５）を第２の符号語として、出力ビットストリーム（２）へ出力するための出力モジュール（８３６）と、
を有することを特徴とする符号化器。
【請求項４６】
オーディオ／ビデオサンプルへのピラミッドベクトル量子化デインデクシングのための復号器（６０）であって、
入力ビットストリーム（２’）から、第１の符号語としての先行符号（１５’）及び第２の符号語としての入力インデックス（２５’）を受信するための受信器（８８０）と、
ここで、前記先行符号及び前記入力インデックスはオーディオ／ビデオ信号のサンプルを表し、
前記先行符号（１５’）は、前記オーディオ／ビデオ信号のサンプルを表す生成されるべき整数出力ベクトル（６’）における、終端非零係数の符号であり、
前記整数出力ベクトルは、複数の整数値係数を有し、
前記終端非零係数は、前記整数出力ベクトル（６’）における最初の非零係数と最後の非零係数とのいずれかであり、
ピラミッドベクトル量子化列挙解除方式を用いて、前記入力インデックスを前記整数出力ベクトル（６’）にデインデクシングするためのデインデクシングモジュール（８８２）と、
ここで、前記入力インデックスは、前記終端非零係数の前記符号を無視する列挙方式により生成され、
前記受信先行符号（１５’）に従って、前記整数出力ベクトル（６’）における前記終端非零係数の符号を割り当てるための割り当てモジュール（８８４）と、
前記整数出力ベクトル（６’）を出力するための出力モジュール（８８６）と、
を有することを特徴とする復号器。
【請求項４７】
請求項２０から３０のいずれか１項又は請求項４５に記載の符号化器と、請求項３１から４１のいずれか１項又は請求項４６に記載の復号器と、の少なくともいずれかを有することを特徴とするネットワークノード。
【請求項４８】
請求項２０から３０のいずれか１項又は請求項４５に記載の符号化器と、請求項３１から４１のいずれか１項又は請求項４６に記載の復号器と、の少なくともいずれかを有することを特徴とするユーザ端末。
【発明の詳細な説明】
【技術分野】
【０００１】
提案される技術は、一般にオーディオ／ビデオ信号の符号化／復号化に関し、特に、オーディオ／ビデオサンプルベクトルのピラミッドベクトル量子化インデクシング及びデインデクシングの方法及び装置に関する。
【背景技術】
【０００２】
オーディオ信号又はビデオ信号が送信又記憶されるべき場合に、通常、信号は符号化される。符号化器では、オーディオ／ビデオ信号サンプルを表すベクトルが複数の係数又はパラメータにより表されるように符号化される。それらの係数又はパラメータは、その後、効率よく送信又は記憶可能である。係数又はパラメータが受信又は検索された場合に、元のオーディオ／ビデオ信号を検索するために、係数又はパラメータのオーディオ／ビデオ信号サンプルへの復号化が実行される。オーディオ／ビデオ信号に対して多くの異なる種類の符号化技術が使用されている。
【０００３】
１つの方法はベクトル量子化（ＶＱ）に基づく。無制約ベクトル量子化（ＶＱ）は、特定の長さのグループ化サンプル（ベクトル）に関して最適の量子化方法であることが知られている。しかし、メモリ及び探索の複雑度に制約があるため、構造化ベクトル量子化器が開発されることになった。構造が異なれば、探索の複雑度及びメモリ要件に関連するトレードオフも異なる。そのような方法の１つは利得−形状ベクトル量子化であり、この場合、目標ベクトルxは、形状ベクトルvec及び利得Gを使用して次のように表される。
2020024431.tif 000003
【０００４】
本概念は、目標ベクトルを直接量子化するのではなく、｛vec,G｝の対を量子化することである。次に、正規化形状入力に合わせて調整された形状量子化器及び信号のダイナミクスを処理する利得量子化器を使用して、利得成分及び形状成分が符号化される。ダイナミクス及び形状（又は微細構造）への分割は聴知覚モデルによく適合するので、この構造は、例えばオーディオ符号化でよく使用されている。
【０００５】
まず、構造の知識を使用して、選択された構造化ベクトル量子化器の有効エントリが探索される（例えば、Ｌ１（絶対振幅）−正規化又はＬ２（エネルギー）−正規化）。有効ベクトルが発見された後、その特定のベクトルを表すインデックス（又は符号語）を効率よく作成し、次に、そのインデックスを受信機へ送信する必要がある。インデックス作成（インデクシング又は列挙としても知られる）は、選択された構造の特性を使用し、構造化ＶＱで発見されたベクトルに関して固有のインデックス（符号語）を作成する。
【０００６】
受信側では、復号器は、インデックスを符号化器側で判定された同じベクトルに効率よく分解する必要がある。この分解は、大型テーブルルックアップを使用することにより動作に関して非常に低い複雑度で実行可能であるが、巨大な読み取り専用メモリ（ＲＯＭ）テーブルを記憶するためのコストが必要となる。あるいは、分解が選択された構造の知識と、おそらくはインデックスをアルゴリズムによって固有ベクトルに効率よく分解するために利用可能な目標ハードウェア数値演算とを使用するように分解（デインデクシングとしても知られる）を設計できる。
【０００７】
適切に設計された構造化ＶＱは、１００万命令毎秒（ＭＯＰＳ）に関連して且つ要求されるプログラムＲＯＭ及びダイナミックランダムアクセスメモリ（ＲＡＭ）に関連して、また、テーブルＲＯＭに関連して、符号化器の探索の複雑度、符号化器のインデクシングの複雑度及び復号器のデインデクシングの複雑度の均衡を適切に保つ。
【０００８】
ＣＥＬＴ、ＩＥＴＦ／Ｏｐｕｓ−Ａｕｄｉｏ及びＩＴＵ−Ｔ  Ｇ.７１９などの多くのオーディオコーデックは、目標オーディオ信号のスペクトル係数を（修正離散余弦変換（ＭＤＣＴ）ドメインで）符号化するためにエンベロープ及び形状ＶＱ並びにエンベロープ混合利得−形状ＶＱを使用する。ＣＥＬＴ／ＩＥＴＦ  ＯＰＵＳ−ＡｕｄｉｏがＰＶＱベクトル量子化器を使用するのに対し、Ｇ．７１９は、Ｒ＝１ビット／次元符号化の場合はＲＥ８代数ベクトル量子化器を使用し、わずかに拡張させ、１ビット／次元より高いＶＱレートに関しては非常に複雑度の低いＤ８格子量子化器を使用する。ＰＶＱはピラミッドベクトル量子化器を表し、これは、高速探索を可能にするためにＬ１ノルム（Σabs(vector)）を使用するＶＱである。ＰＶＱは極めて効率のよいインデクシングを提供できることもわかっている。ＰＶＱはかなり以前から存在していたが、１９８３〜８６年にＦｉｓｃｈｅｒにより初めて開発された。
【０００９】
ＰＶＱ量子化器は、音声符号化器で時間領域及び線形予測（ＬＰ）残存ドメインサンプルの符号化、並びに周波数領域離散余弦変換（ＤＣＴ）係数の符号化にも使用されてきた。他の構造化ＶＱと比較してＰＶＱを使用することの利点は、ＰＶＱがどのようなベクトル次元でも当然処理できるのに対し、他の構造化ＶＱは、多くの場合、倍数である次元、例えば、４の倍数又は８の倍数である次元に限定されることである。
【００１０】
オーディオモードのＩＥＴＦ／ＯＰＵＳコーデックは、３２ビットに設定されるＰＶＱインデックス／（短）符号語の最大サイズを有する再帰的ＰＶＱインデクシング／デインデクシング方式を採用している。量子化されるべき目標ベクトルが３２ビットを超える場合に、当初の目標ベクトルは、すべてのサブベクトルが３２ビット短符号語インデクシングドメインに当てはまるまで、更に低い次元に再帰的に２分割される。再帰的２値次元分割の過程で、２つの分割されたサブ目標ベクトルの間にエネルギー関係（量子化角度により表される相対エネルギー）を符号化するための符号語を追加するというコストが追加される。ＯＰＵＳ−Ａｕｄｉｏでは、取得された低い次元の分割目標サブベクトルに対して構造化ＰＶＱ探索が実行される。
【００１１】
最初のＣＥＬＴコーデック（２００９年にＶａｌｉｎ、Ｔｅｒｒｉｂｅｒｙ及びＭａｘｗｅｌｌにより開発された）は、同様のＰＶＱインデクシング／デインデクシング方式（３２ビット符号語限界を有する）を採用しているが、ＣＥＬＴの２値次元分割は、探索後、初期ＰＶＱ構造化ベクトルを確立した後にインデクシングドメインで実行される。次に、インデクシングすべき整数ＰＶＱベクトルは、整数ドメインで３２ビットＰＶＱベクトルサブユニット以下になるまで再帰的に縮小される。これも、同様に、分割のために追加符号語を追加することにより実現されるが、この場合には、「左」整数サブベクトルと「右」整数サブベクトルとの整数関係に関して実行されるので、復号器でサブＰＶＱベクトルの各々のＬ１ノルムを知ることができる。ＣＥＬＴ探索後整数インデクシング分割方式はレートを可変にするので（可変合計サイズインデックス）、メディア搬送に固定レート符号化が要求される場合に、これは欠点になりうる。
【００１２】
１９９７年及び１９９８年に、Ｔｓｅｒｎ及びＭｅｎｇは、ＰＶＱインデクシングの少数の変形の誤り頑健度を調査し、ＰＶＱ列挙（インデクシング）の問題を次のようにまとめた（ｌはベクトル次元であり、kは単位パルスの数である）。
【００１３】
「列挙は、ＰＶＱコードブックP(l,k)のすべての可能なベクトルに固有のインデックスを割り当て、ＰＶＱコードブックベクトルに分類順序を与える。」
「列挙のための系統的分類は、ピラミッド中のベクトルの数に関する係数公式を通して実行され、これは、すべてのピラミッド列挙技術に共通する概念である。」
「ピラミッドコードブックP(l,k)のベクトルの数はN(l,k)と示される。これは、ceil(log2(N(l,k)))ビットである２値符号語インデックス長に関連する。N(l,k)は、１つのベクトルの整数値がkの絶対和を有することができる方法の数lとみなすことができる。」
Ｈｕｎｇ他は、ＰＶＱインデクシング／列挙方式の１対の変形に関してＰＶＱ符号語のビット誤り頑健性を研究したが、実際のハードウェア実現形態に関してＰＶＱ列挙の実現の効率を向上し且つ十分に複雑度を低下させることに研究の主眼を置かなかった。ＰＶＱインデクシングのＣＥＬＴ及びＩＥＴＦ／ＯＰＵＳ−ＡｕｄｉｏのＰＶＱ実現形態は、３２ビット符号なし整数に基づくハードウェアに対して、可能な限り列挙の複雑度を低下させること（符号化及び復号化の双方）に焦点を絞ったが、ＰＶＱがビット誤りを起こしやすいことを無視していた。また、１９９９年に、Ａｓｈｌｅｙは、サイズ計算及びオフセット計算に使用される二項式組み合わせ関数の複雑度の低い確定的近似の使用によって製品コードＰＶＱ列挙を実現するために複雑度を低下させる方法を提案し、Ａｓｈｌｅｙ他は、この技術を階乗パルス符号化（ＦＰＣ）と呼び、この方式は、ＩＴＵ−Ｇ．７１８音声コーデック規格で採用されている。
【００１４】
ＣＥＬＴ及びＩＥＴＦ／ＯＰＵＳ−Ａｕｄｉｏでは、ＰＶＱ符号語は、１つのビットの粒度により制限されない。これら２つのコーデックは、８分の１（１／８）ビットの分解能を使用する更に粒度の高い方式を使用する。これは、ビットストリームを搬送するためのインタフェースの中間ステップとして算術符号化器／復号器を使用することにより実現され（ＣＥＬＴ／ＯＰＵＳ−Ａｕｄｉｏは、算術符号化器／復号器としてレンジエンコーダ／デコーダを使用する）、ＰＶＱ符号語により使用されるビットの数を小数部ビットにすることができる。ビット分解能BITRES=8（８分の１）である場合、小数部ＰＶＱ符号語長はceil(log2(N(l,k)*BITRES))/BITRESとなる。例えば、l=64、k=5及びBITRES=8である場合に、この結果、NPVQ=N(l,k)=286680704、log2(NPVQ)=28.0948696及びceil(log2(NPVQ)*BITRES)/BITRES=28.125ビットとなる。小数部ビットを使用することにより、N(l,k)ＰＶＱコード語サイズの多くに対して切り捨て損失ははるかに少なくなり、特にコーデックがＰＶＱ量子化器の多くのセル／インスタンスを使用している場合、これによりコーデックの効率は向上する。
【００１５】
構造化ベクトル量子化の一般的な問題点の１つは、効率のよい探索、効率のよい符号語インデクシング及び効率のよい符号語デインデクシングを含む適切な総合的折衷案を見出すということである。
【００１６】
長いインデックス符号語（例えば、４００ビット整数符号語）は、インデクシング計算及びデインデクシング計算で大きな複雑度オーバヘッドを発生させる（また、長い符号語の合成及び分解では、それらの大きな整数の乗算及び除算に特別なソフトウェアルーチンが必要になる）。
【００１７】
短いインデックス符号語は効率のよいハードウェア演算子（例えば、３２ビットデジタルシグナルプロセッサ（ＤＳＰ）における単一命令多重データ（ＳＩＭＤ）命令）を使用できるが、目標ＶＱベクトルの事前分割が必要になるか（ＩＥＴＦ／ＯＰＵＳ−Ａｕｄｉｏのように）、又は整数ＰＶＱ探索結果ベクトルの探索後分割が必要になる（当初のＣＥＬＴのように）という問題がある。それらの次元分割方法は、分割情報符号語に関して送信コストを追加し（分割オーバヘッド）、可能なインデックス符号語が短いほど、必要とされる分割の数は多くなり、その結果、長いインデックス符号語の分割のためにオーバヘッドが増加する。例えば、１６ビットの短いＰＶＱ符号語では、３２ビットの短い符号語より分割の数は多くなり、従って、分割のオーバヘッドは増加する。
【００１８】
ＰＶＱ（ピラミッドベクトル量子化器）は、Ｌ１正規化によって非常に効率のよい探索を可能にする。通常、絶対和正規化目標ベクトルが作成され、続いて、ベクトル切り捨て（又は丸め）が実行され、次に、ＰＶＱベクトル（PVQ-vec）の目標Ｌ１ノルムに到達するために、訂正反復の限定セットが実行される。
【００１９】
先に述べた従来の技術のＣＥＬＴ／ＯＰＵＳ短符号語インデクシング方式の問題点は、それらの方式が３２ビット整数範囲（符号なし３２ビット整数）に限定されることであり、更に、符号付き３２ビット整数に関する高速命令のみを支援するＤＳＰアーキテクチャでは効率よく実現できないことである。
【発明の概要】
【００２０】
ここで提示される技術の目的は、最適の演算ビットサイズを有するハードウェアで処理可能なＰＶＱによりインデクシングされるベクトルのサイズを拡張することである。
【００２１】
この目的及び他の目的は、提案される技術の実施形態により達成される。
【００２２】
第１の態様によれば、オーディオ／ビデオ信号のピラミッドベクトル量子化インデクシングの方法が提供される。方法は、整数入力ベクトルを取得することを備え、整数入力ベクトルはオーディオ／ビデオ信号サンプルを表し、整数入力ベクトルは複数の整数値係数を有し、整数入力ベクトルから先行符号を抽出することを備え、先行符号は、整数入力ベクトル中の終端非零係数の符号であり、終端非零係数は、整数入力ベクトル中の最初の非零係数及び最後の非零係数のうち一方であり、整数入力ベクトルをピラミッドベクトル量子化列挙方式によって出力インデックスにインデクシングすることを備え、出力インデックスは、先行符号と共に前記オーディオ／ビデオ信号サンプルを表し、ピラミッドベクトル量子化列挙方式は、終端非零係数の符号を無視するように設計され、出力インデックスを第１の符号語として出力ビットストリームへ出力し、先行符号を第２の符号語として出力ビットストリームへ出力することを備える。
【００２３】
一実施形態において、抽出は列挙の前に実行される。別の実施形態では、抽出は、列挙と同時に、列挙と協働して実行される。一実施形態において、本開示ではU(n,k)として示されるオフセットパラメータは、先行する0を持たず、先行値kを持たず、先行する正の値を有し且つ正の次の先行符号を有する、nの次元及びkのＬ１ノルムの整数ベクトルの数として定義される。その実施形態では、オフセットパラメータUは、列挙で使用されるインデクシング方式の計算に使用される。別の実施形態では、インデックス計算は、Uパラメータ及び本開示ではA(n,k)として示されるオフセットパラメータの双方に従属し、このA(n,k)オフセットパラメータは、正の先行値を有し且つ先行する０を持たない、次元n及びkのＬ１ノルムの整数ベクトルの数として定義される。更に別の実施形態では、列挙におけるインデックス計算は、Uに基づくか又はUとAの組み合わせに基づく列挙手順に一部従属する。言い換えれば、列挙は、最初のＭＰＶＱ先行符号列挙段階と、次に続くベクトルの残存部分に対する他の何らかの効率のよいＰＶＱ列挙方式とを採用してもよい。
【００２４】
第２の態様によれば、オーディオ／ビデオ信号のピラミッドベクトル量子化デインデクシングの方法が提供される。方法は、入力ビットストリームから、第１の符号語としての先行符号及び第２の符号語としての入力インデックスを受信することを備え、先行符号及び入力インデックスはオーディオ／ビデオ信号サンプルを表し、先行符号は、オーディオ／ビデオ信号サンプルを表す符号であって、作成されるべき整数出力ベクトルの中の終端非零係数の符号であり、整数出力ベクトルは複数の整数値係数を有し、終端非零係数は、整数出力ベクトル中の最初の非零係数及び最後の非零係数のうち一方であり、ピラミッドベクトル量子化列挙解除方式に従って入力インデックスを整数出力ベクトルにデインデクシングすることを備え、列挙方式により作成される入力インデックスは、終端非零係数の符号を無視するように設計され、整数出力ベクトル中の終端非零係数の符号を受信された先行符号に従って割り当てることを備え、整数出力ベクトルを出力することを備える。
【００２５】
第３の態様によれば、オーディオ／ビデオ信号を通信する方法が提供される。方法は、第１の態様による方法に従って、送信機の符号化器においてオーディオ／ビデオサンプルを符号化することを備え、出力インデックス及び先行符号を送信機から受信機へ送信することを備え、出力インデックス及び先行符号は入力インデックス及び先行符号として受信され、受信機の復号器において、前記入力インデックス及び前記先行符号を第２の態様による方法に従って復号化することを備える。
【００２６】
第４の態様によれば、オーディオ／ビデオ信号をピラミッドベクトル量子化によりインデクシングする符号化器が提供される。符号化器は、複数の整数値係数を有する整数入力ベクトルを取得するように動作し、整数入力ベクトルはオーディオ／ビデオ信号サンプルを表し、符号化器は、整数入力ベクトル中の終端非零係数の符号である先行符号を整数入力ベクトルから抽出するように更に動作し、終端非零係数は、整数入力ベクトル中の最初の非零係数及び最後の非零係数のうち一方であり、符号化器は、整数入力ベクトルをピラミッドベクトル量子化列挙方式によって出力インデックスにインデクシングするように更に動作し、出力インデックスは、先行符号と共にオーディオ／ビデオ信号サンプルを表し、ピラミッドベクトル量子化列挙方式は、終端非零係数の符号を無視するように設計され、符号化器は、第１の符号語としての先行符号及び第２の符号語としての出力インデックスを出力ビットストリームへ出力するように更に動作する。
【００２７】
第５の態様によれば、オーディオ／ビデオ信号をピラミッドベクトル量子化によりデインデクシングする復号器が提供される。復号器は、入力ビットストリームから、第１の符号語としての先行符号及び第２の符号語としての入力インデックスを受信するように動作し、先行符号及び入力インデックスはオーディオ／ビデオ信号サンプルを表し、先行符号は、オーディオ／ビデオ信号サンプルを表す符号であって、作成されるべき整数出力ベクトルの中の終端非零係数の符号であり、整数出力ベクトルは複数の整数値係数を有し、終端非零係数は、整数出力ベクトル中の最初の非零係数及び最後の非零係数のうち一方であり、復号器は、ピラミッドベクトル量子化列挙解除方式に従って入力インデックスを整数出力ベクトルにデインデクシングするように更に動作し、列挙方式により作成される入力インデックスは、終端非零係数の符号を無視するように設計され、復号器は、終端非零係数の符号を受信された先行符号に従って割り当て、整数出力ベクトルを出力するように更に動作する。
【００２８】
第６の態様によれば、オーディオ／ビデオ信号サンプルをピラミッドベクトル量子化インデクシングする符号化器が提供される。符号化器は、整数入力ベクトルを取得する入力モジュールを備え、整数入力ベクトルはオーディオ／ビデオ信号サンプルを表し、整数入力ベクトルは複数の整数値係数を有する。符号化器は、整数入力ベクトルから先行符号を抽出する抽出モジュールを更に備える。先行符号は、整数入力ベクトル中の終端非零係数の符号である。終端非零係数は、整数入力ベクトル中の最初の非零係数及び最後の非零係数のうち一方である。符号化器は、整数入力ベクトルをピラミッドベクトル量子化列挙方式によって出力インデックスにインデクシングするインデクシングモジュールを更に備え、出力インデックスは、先行符号と共にオーディオ／ビデオ信号サンプルを表し、ピラミッドベクトル量子化列挙方式は、終端非零係数の符号を無視するように設計される。符号化器は、第１の符号語としての先行符号及び第２の符号語としての出力インデックスを出力ビットストリームへ出力する出力モジュールを更に備える。
【００２９】
第７の態様によれば、オーディオ／ビデオ信号サンプルを復号化する復号器が提供される。復号器は、第１の符号語としての先行符号及び第２の符号語としての入力インデックスを入力ビットストリームから受信する受信機を備える。先行符号及び入力インデックスはオーディオ／ビデオ信号サンプルを表す。先行符号は、オーディオ／ビデオ信号サンプルを表す符号であって、作成されるべき整数出力ベクトル中の終端非零係数の符号である。整数出力ベクトルは複数の整数値係数を有する。終端非零係数は、整数出力ベクトル中の最初の非零係数及び最後の非零係数のうち一方である。復号器は、入力インデックスをピラミッドベクトル量子化列挙解除方式に従って整数出力ベクトルにデインデクシングするデインデクシングモジュールを更に備え、列挙方式により作成される入力インデックスは、終端非零係数の符号を無視するように設計される。復号器は、整数出力ベクトル中の終端非零係数の符号を受信された先行符号に従って割り当てる割り当てモジュールを更に備える。復号器は、整数出力ベクトルを出力する出力モジュールを更に備える。
【００３０】
第８の態様によれば、第４又は第６の態様による符号化器及び／又は第５又は第７の態様による符号化器を備えるネットワークノードが提供される。
【００３１】
第９の態様によれば、第４又は第６の態様による符号化器及び／又は第５又は第７の態様による符号化器を備えるユーザ機器が提供される。
【００３２】
第１０の態様によれば、オーディオ／ビデオ信号サンプルを符号化するコンピュータプログラムが提供され、コンピュータプログラムは、少なくとも１つのプロセッサにより実行される場合に、プロセッサに整数入力ベクトルを取得させる命令を備え、整数入力ベクトルはオーディオ／ビデオ信号サンプルを表す。整数入力ベクトルは複数の整数値係数を有する。コンピュータプログラムは、プロセッサにより実行される場合に、プロセッサに整数入力ベクトルから先行符号を抽出させる更なる命令を備える。先行符号は、整数入力ベクトル中の終端非零係数の符号である。終端非零係数は、整数入力ベクトル中の最初の非零係数及び最後の非零係数のうち一方である。コンピュータプログラムは、プロセッサにより実行される場合に、プロセッサに、整数入力ベクトルをピラミッドベクトル量子化列挙方式によって出力インデックスにインデクシングさせる更なる命令を備え、出力インデックスは、前記先行符号と共にオーディオ／ビデオ信号サンプルを表す。ピラミッドベクトル量子化列挙方式は、前記終端非零係数の符号を無視するように設計される。コンピュータプログラムは、プロセッサにより実行される場合に、プロセッサに第１の符号語としての先行符号及び第２の符号語としての出力インデックスを出力ビットストリームへ出力させる更なる命令を備える。
【００３３】
第１１の態様によれば、オーディオ／ビデオ信号を復号化するコンピュータプログラムが提供され、コンピュータプログラムは、少なくとも１つのプロセッサにより実行される場合に、プロセッサに入力ビットストリームから第１の符号語としての先行符号及び第２の符号語としての入力インデックスを受信させる命令を備える。先行符号及び入力インデックスはオーディオ／ビデオ信号サンプルを表す。先行符号は、オーディオ／ビデオ信号サンプルを表す符号であって、作成されるべき整数出力ベクトル中の終端非零係数の符号である。整数出力ベクトルは複数の整数値係数を有する。終端非零係数は、前記整数出力ベクトル中の最初の非零係数及び最後の非零係数のうち一方である。コンピュータプログラムは、プロセッサにより実行される場合に、プロセッサに入力インデックスをピラミッドベクトル量子化列挙解除方式によって整数出力ベクトルにデインデクシングさせる更なる命令を備える。列挙方式により作成される入力インデックスは、終端非零係数の符号を無視するように設計される。コンピュータプログラムは、プロセッサにより実行される場合に、プロセッサに終端非零係数の符号を受信された先行符号に従って割り当てさせる更なる命令を備える。コンピュータプログラムは、プロセッサにより実行される場合に、プロセッサに整数出力ベクトルを出力させる更なる命令を備える。
【００３４】
第１２の態様によれば、第１０及び第１１の態様のうち少なくとも一方のコンピュータプログラムを備えるキャリアが提供される。キャリアは、電子信号、光信号、電磁信号、磁気信号、電気信号、無線信号、マイクロ波信号又はコンピュータ可読記憶媒体のうち１つである。
【００３５】
ここで提示される技術の利点の１つは、必要とされるインデクシングオフセットに必要なダイナミックレンジが縮小され、それにより、使用されるハードウェアの許容ビットサイズに対する要求が軽減されることである。
【００３６】
インデクシングアルゴリズムは、ＰＶＱ構造及びインデックスを先行符号区分に繰り返し分解するのが好ましい。分解は、発見されたインデクシングすべきＰＶＱベクトル中の非零要素の数にかかわらず、常に１つの先行符号が抽出されるように実行される。この複雑度の低い符号抽出は、ランタイム計算ＰＶＱインデクシングオフセットに関する縮小ダイナミックレンジの形成を更に可能にする。
【００３７】
特定の一例として、改善されたインデクシングアルゴリズム及びデインデクシングアルゴリズムは、ＭＯＰＳ、ＲＡＭ、ＲＯＭ及びプログラム読み取り専用メモリ（Ｐ−ＲＯＭ）のすべてに関して追加コストを限界内に抑えて、３２ビットＤＳＰハードウェアで３３ビットＰＶＱインデックスの使用を可能にする。更に、アルゴリズムは、符号付き３２ビット演算のみを支援するＤＳＰハードウェアにおいて３２ビットＰＶＱインデックスの使用を可能にする。
【００３８】
他の利点は、詳細な説明を読むことにより理解されるだろう。
【図面の簡単な説明】
【００３９】
実施形態は、その更なる目的及び利点と共に、添付の図面に関する以下の説明を参照することにより最もよく理解されるだろう。
【図１】図１は、オーディオ符号化システムの一例を示す概略図である。
【図２】図２は、符号化器の一実施形態を示す概略ブロック図である。
【図３】図３は、復号器の一実施形態を示す概略ブロック図である。
【図４】図４は、オフセットの一実施形態及び構造中のベクトルの合計との関係を示す表の形の構造図である。
【図５】図５は、オーディオ／ビデオサンプルのピラミッドベクトル量子化インデクシングの方法の一実施形態のステップを示すフローチャートである。
【図６】図６は、一般的レベルのＭＰＶＱインデクシングの一実施形態のステップを示すフローチャートである。
【図７Ａ】、
【図７Ｂ】図７Ａ及び図７Ｂは、ＭＰＶＱインデックス合成の方法の一実施形態のステップを示すフローチャートである。
【図８】図８は、基本ＭＰＶＱ反復の一実施形態を示す表の形のハイレベル構造図である。
【図９】図９は、次元を増加させる場合のＭＰＶＱ−Ａ／Ｕオフセット再帰の３つの実施形態の組み合わせのステップを示すフローチャートである。
【図１０】図１０は、オーディオ／ビデオサンプルのピラミッドベクトル量子化デインデクシングの方法の一実施形態のステップを示すフローチャートである。
【図１１】図１１は、ＭＰＶＱデインデクシングの一実施形態のステップを示すフローチャートである。
【図１２】図１２は、サイズ及びオフセットを発見する手順の一実施形態のステップを示すフローチャートである。
【図１３】図１３は、ＭＰＶＱインデックス分解の一実施形態のステップを示すフローチャートである。
【図１４】図１４は、次の係数の振幅を発見する実施形態のステップを示すフローチャートである。
【図１５】図１５は、次の先行符号を発見し、抽出された符号情報を除去する手順の一実施形態のステップを示すフローチャートである。
【図１６】図１６は、次元を１減少させる場合のオフセット更新の手順の一実施形態のステップを示すフローチャートである。
【図１７Ａ】図１７Ａは、いくつかの共通ハードウェアビット限界に関するＰＶＱ符号語の概要を示す図である。
【図１７Ｂ】図１７Ｂは、異なるＢＩＴ限界を有する最適なＰＶＱ符号語量子化器に関するビット／サンプルにおける関連Ｒ値の概要を示す図である。
【図１７Ｃ】図１７Ｃは、結果として得られるＰＶＱの形状整合能力に直接相関される対応する実現可能パルス密度を示す図である。
【図１７Ｄ】図１７Ｄは、従来の方式のＰＶＱの例及び新規な方式ＭＰＶＱに関してインデクシング／デインデクシングの最悪の場合のＭＯＰＳ命令トレードオフを示す図である。
【図１８】図１８は、事前抽出された先行符号を使用するＭＰＶＱインデックス合成の一実施形態のステップを示すフローチャートである。
【図１９】図１９は、符号抽出機能の一実施形態のステップを示すフローチャートである。
【図２０】図２０は、符号化器の一実施形態を概略的に示す図である。
【図２１】図２１は、復号器の一実施形態を概略的に示す図である。
【図２２】図２２は、符号化器の一実施形態を概略的に示す図である。
【図２３】図２３は、復号器の一実施形態を概略的に示す図である。
【発明を実施するための形態】
【００４０】
実施形態は、その更なる目的及び利点と共に、添付の図面に関連する以下の説明を参照することにより最もよく理解されるだろう。
【００４１】
図面を通して、同じ図中符号は、類似する要素又は対応する要素に使用される。
【００４２】
インデクシングアルゴリズムは、ＰＶＱ構造及びインデックスを先行符号区分に反復して分解する。分解は、発見されるＰＶＱベクトルのインデクシングすべき非零要素の数にかかわらず常に１つの先行符号が抽出されるように実行される。符号抽出の複雑度がこのように低いため、ランタイム計算ＰＶＱインデクシングオフセットに関して縮小ダイナミックレンジを作成できる。
【００４３】
ＰＶＱインデクシングオフセットは、ＰＶＱインデックス合成及びＰＶＱインデックス分解で使用される。構造化ＰＶＱ量子化器は本質的に次元（ｌ）及び単位パルス（k）の大きな変化、従って、ビットレートの大きな変化に対処できるので、通常、オフセットは、符号化されるべき現在の次元及び現在の単位パルスの数に関してのみ計算される。ビットレートはlog2(NPVQ(l,k))に対応し、その結果、可能なＰＶＱオフセットは膨大な量になる。オフセットはダイナミックＲＡＭに記憶される。しかし、l,k限定ＰＶＱ量子化器の実現形態は、インデクシング／デインデクシングオフセットを記憶するためにテーブルルックアップを使用してもよい。
【００４４】
提案される技術を更によく理解するために、付録Ａにまとめられた従来の技術のＩＥＴＦ／ＯＰＵＳ探索／インデクシング／デインデクシングの説明の抜粋を参照することは有用だろう。
【００４５】
図１には、本明細書で提示される方式を使用するオーディオ符号化システムの一例が示される。これは、ＭＰＶＱインデクシング及びデインデクシングを使用する符号化器１０及び復号器６０を有するオーディオコーデックシステムの一例である。第１の部分は、符号化器１０に含まれる部分に対応し、図の第２の部分は、復号器６０に含まれる部分に対応する。入力サンプル１は符号化器１０に提供される。符号化器１０は、入力ベクトルを少なくともＭＰＶＱインデックス及び先行符号として表すビットストリーム２を提供する。符号化器１０からの好ましくは本質的にビットストリーム２と等しいビットストリーム２’は復号器６０に提供され、復号器は、ＭＰＶＱインデックス及び先行符号を再構成サンプル３に復号化する。通常、ＭＰＶＱインデックス及び先行符号は個別の符号語として提供される。
【００４６】
符号化器１０の一実施形態が図２に更に詳細に示される。オーディオ／ビデオサンプルxを表す入力サンプル１が受信される。ノルム計算器１２で、ノルム係数gが計算される。ノルム量子化器１４は、入力ベクトルのノルムを表すノルム量子化ビットNORMQ-bitsを作成する。それらのビットは、通常、ビットストリームに含まれるように提供される。入力ベクトルは、ノルム係数により正規化ベクトル４として正規化される。ノルム量子化器１４は、オプションとして、ノルム係数を例えばNORMQ-bitsとしてビット割り当て部１６にも提供しており、ビット割り当て部１６は、N及びKの適切な値、すなわち、整数ベクトルの次元及び単位パルスの合計を計算するか、又はルックアップテーブルから検索する。それらの値は、オプションとして、出力ビットストリームで提供されるか、又は受信側でビットストリーム中の先行パラメータから導出されてもよい。ＰＶＱ形状探索部１８は、正規化ベクトル４をＰＶＱの整数入力ベクトル５に変換する。整数入力ベクトル５はＭＰＶＱインデクシング部２０に提供され、そこで実際のＭＰＶＱインデクシングが実行される。このことは以下に更に詳細に説明される。第１の符号語である先行符号１５及び第２の符号語である出力インデックス、通常はＭＰＶＱサイズが付随するＭＰＶＱインデックス２５は、ＭＰＶＱインデクシング部２０からビットストリームマルチプレクサＭＵＸ３０へ出力される。そこで、異なる情報量が１つのビットストリーム２に併合され、ビットストリームＭＵＸ３０から出力される。
【００４７】
復号器６０の一実施形態が図３に更に詳細に示される。入力ビットストリーム２’はビットストリームＤＥＭＵＸ８０に提供される。そこで、情報の異なる部分は複数の部分に分割される。N値及びK値又はNORMQ-bitsなどのビット割り当てを支援する情報はビット割り当て部６２に提供され、ビット割り当て部は、N及びKの関連値をサイズ／オフセット計算部６４及びＭＰＶＱデインデクシング部７０へ出力する。サイズ／オフセット計算部６４は、N値及びK値並びに通常はＭＰＶＱサイズが付随する、再構成ＭＰＶＱインデックス２５’の情報２５’から取得され、ＭＰＶＱデインデクシング区分７０に提供されるＭＰＶＱサイズに基づいて、オフセット８を計算する。第２の符号語である再構成ＭＰＶＱインデックス２５’及び第１の符号語である再構成先行符号１５’もＭＰＶＱデインデクシング区分７０に提供され、そこで、実際のＭＰＶＱデインデクシングが実行される。このことは以下に更に詳細に説明される。符号化器における整数入力ベクトルの再構成である整数出力ベクトル６’は単位エネルギー正規化部６８へ出力され、そこで正規化が確保される。ノルム逆量子化器６６は、NORMQ-bitsを使用してノルム係数
2020024431.tif 000004
を提供する。次に、ノルム係数は、元のオーディオ／ビデオサンプルの再構成サンプル３である最終出力ベクトル
2020024431.tif 000005
を形成するために使用される。
【００４８】
尚、ＭＰＶＱ方式は、図２及び図３の特定のシステムに限定されず、どのようなＰＶＱベース量子化システムのインデクシングにも、例えば、線形予測（ＬＰ）ヴォコーダにおける時間領域信号又はビデオコーデックにおける変換領域係数にも採用可能である。
【００４９】
例えば、図２及び図３において、「ビットストリームＭＵＸ」ブロック及び「ビットストリームＤＥＭＵＸ」ブロックは、オプションとして、本開示の別の場所で説明されるようにＰＶＱインデックス切り捨て損失を制限するために算術符号化器及び算術復号器をそれぞれ採用してもよい。「ＭＵＸ」ブロック及び「ＤＥＭＵＸ」ブロックは、MPVQ(n,k)符号語に関する正しいビット数を抽出可能にするために、短い各ＰＶＱ符号語の整数サイズ（ＭＰＶＱサイズ）を知る必要がある。算術符号化器／復号器なしの場合、短いMPVQ(n,k)符号語に関するビットストリームをパースするときにcell(log2(MPVQ-size))完全非分数ビットを使用する。算術符号化器／復号器対を使用する場合には、算術符号化器／復号器対により使用されるビット分解能及び分布関数は、「ＭＵＸ」ブロック及び「ＤＥＭＵＸ」ブロックにより使用される分数ビットを決定する。算術符号化器／復号器対は、ビットストリームから復号化されたビット（この時点で分数）をどのようにパースすべきかを判定するために整数ＭＰＶＱサイズを更に必要とする。
【００５０】
このような演算は当業者にはよく知られており、以下の説明中、ＰＶＱシステムの当然の一部分であると想定される。
【００５１】
図２では、ＭＰＶＱサイズはＭＰＶＱインデクシングループの一部として計算され、その後、ＭＵＸに提供される。図３では、復号器で、ＭＰＶＱオフセット及びＭＰＶＱサイズを計算する関数がまず呼び出され、次に、この整数サイズ情報を使用してＭＵＸから符号語が抽出される。抽出されたインデックス（第２の符号語）及び初期オフセットは、その後、ＭＰＶＱデインデクシングブロックに提供される。
【００５２】
図２及び図３の符号化器部分及び／又は復号器部分は、いくつかの用途では、通信ネットワークの１つのノード又はユーザ機器に構成されてもよい。通信ネットワークのノードは、例えば、無線ネットワークノード、例えば、基地局であってもよい。符号化器部分と復号器部分との間の通信は、有線送信及び／又は無線送信により実行可能である。符号化器部分及び復号器部分は個別に動作してもよい。例えば、符号化器部分は記録機器の一部であることが可能であり、生成されるビットストリームは将来の使用に備えて記憶されることが可能だろう。同様に、復号器部分は、再生機器の一部であることが可能であり、再生機器は、例えば、記憶装置からビットストリームを検索し、ビットストリームをオーディオ／ビデオ信号に復号化する。
【００５３】
ＭＰＶＱ列挙方法の一実施形態は、本発明による組み合わせ大きさ／単一先行符号ビットベース列挙、NPVQ(l,k)=2*NMPVQ(l,k)を使用しており、ＭＰＶＱ方式は、反復付加大きさ列挙を使用しているのが好ましく、残存ベクトルにおける第１の非零要素の確定済み先行符号に基づくのが更に好ましい。
【００５４】
従来の技術のＩＥＴＦ／ＯＰＵＳコーデックは、当初のフィッシャー列挙の最適化バージョンを使用しており、行ごとの直接行オフセット計算再帰、ラッピング乗算による高速厳密整数除算並びに直接非再帰方程式オフセット及びサイズ計算は改善される（次元ｌ及び単位パルスの数kがそのような直接計算を可能にするのに十分に低い場合）。ＩＥＴＦ／ＯＰＵＳ−ＡｕｄｉｏＰＶＱ実現形態及びＯＰＵＳ−ｃ符号参照のＲＦＣテキスト説明の抜粋に関して付録Ａを参照。ＯＰＵＳの実現の複雑度を軽減するために、ＰＶＱ符号語の最大インデックス値は232-1（多くのデスクトップコンピュータで典型的なフォーマットである符号なし３２ビット整数算術で表すことが可能なインデックス値）に制限される。
【００５５】
ここで提示されている技術の第１の部分では、先行符号方式を使用する先行符号モジュラーＰＶＱ（ＭＰＶＱ）列挙を説明する。この新規な改善されたＭＰＱ列挙は、同一の一般技術（例えば、行ごと、直接行オフセット計算再帰、厳密整数除算及び直接非再帰方程式オフセット及びサイズ計算）を使用しているが、別の再帰方式を採用することによりこれを実行する。オフセットのダイナミクス及びサイズ計算は軽減されるので、短いＰＶＱ符号語のインデクシングを効率よく実現でき、効率よくインデクシング及びデインデクシングすることが可能な符号語中のエントリの数のサイズは２倍になる（１ビット多い）。
【００５６】
このインデクシング／デインデクシングの改善は、特定の一例では、３３ビットインデックスに関して複雑度の低い割り当て手順を可能にし、１ビットにより使用できる可能な限り大きいＰＶＱを拡張しようとするものである（あるいは３２ビットにわたるＰＶＱに関して符号付き算術を使用できるように列挙を変形することにより、ＰＶＱを１＋３１ビットに保持する）。
【００５７】
オフセットパラメータU(n,k)を、先行する０を持たず、先行値kを持たず、先行する正の値を有し且つ正の先行符号を有する次元n及びkのＬ１ノルムの整数ベクトルの数として定義する。先行符号は、再帰の方向に現在の値の後に遭遇する最初の符号である。
【００５８】
オフセットパラメータA(n,k)を、正の先行値を有し且つ先行する０を持たない次元n及びkのＬ１ノルムの整数ベクトルの数として定義する。
【００５９】
そこで、A(n,k)=1+2*U(n,k)となる。「１」は単一の初期「k」値ベクトルに由来し、因数「２」は、次の先行符号が正の符号及び負の符号になる可能性による。A(n,k)は、従来の技術インデクシングオフセットとして使用されていた和である(NPVQ(n,k-1)+NPVQ(n-1,k-1))/2にも等しい。
【００６０】
U(n,k)及びそれとNMPVQ(n,k)ベクトルを有するMPVQ(n,k)構造におけるベクトルの合計との関係の表構造の図に関して図４を参照。図４は、次の先行符号情報の最下位ビット（ＬＳＢ）の最初の「インタリービング」を使用する、好適な最下位ビット（ＬＳＢ）先行符号列挙の変形を含む基本ＭＰＶＱ反復の一実施形態のハイレベル概略図を示す。好適な解では、先行符号インタリービングは、pos[0]固有振幅k_deltaごとに、例えば、k_delta=k-1又はk-2ブロックに対して実行される。pos[0]値=「k」の場合、すべての単位パルスはpos[0]で消費され、反復を停止できる。pos[0]値が０ではない正又は負の次の先行符号である場合、最初に遭遇する非零位置符号は１ビットの情報を必要とする。これは、ＬＳＢビットとして常に偶数サイズの「2*U(n-k)」サブセクションに記憶される。pos[0]値=「k」である場合、反復は、新たな先行符号情報なしでpos[0]に拡張される。
【００６１】
この第１の部分の基本インデクシング／列挙方式を以下に説明する。インデクシング／列挙すべきＰＶＱベクトルは、［0...2B+1-1］の範囲にあることがわかっており、B+1ビットに当てはまる。この場合、通常、現在のＤＳＰハードウェアではB=32ビットである。例えば、PVQ(N,K)である場合、すなわち、次元がN，単位パルスの数がKである場合、インデックスの数はNPVQ≦(2B+1-1)である。
【００６２】
図５は、オーディオ／ビデオサンプルのピラミッドベクトル量子化インデクシングの方法の一実施形態のステップのフローチャートを示す。方法はステップ４００で開始される。ステップ４０２で、オーディオ／ビデオ信号サンプルを表す整数入力ベクトルが取得される。整数入力ベクトルは複数の整数値係数を有する。ステップ４０４で、整数入力ベクトルから先行符号が抽出される。先行符号は、整数入力ベクトルにおける終端非零係数の符号である。終端非零係数は、整数入力ベクトルにおける最初の非零係数及び最後の非零係数のうち一方である。ステップ４０６で、整数入力ベクトルは、ピラミッドベクトル量子化列挙方式によって出力インデックスにインデクシングされ、この出力インデックスは、先行符号と共にオーディオ／ビデオ信号サンプルを表す。ピラミッドベクトル量子化列挙方式は、前記終端非零係数の符号を無視するように設計される。別の実施形態では、ステップ４０６は、ステップ４０４と組み合わせて同時に実行可能であるか又はステップ４０４の前に実行可能である。ステップ４０８で、先行符号及び出力インデックスは、第１の符号語及び第２の符号語としてそれぞれ出力ビットストリームへ出力される。手順はステップ４４９で終了する。
【００６３】
特定の一実施形態では、インデクシングするステップ４０６は反復列挙手順により実行される。更に別の特定の一実施形態では、反復列挙手順は、考慮に入れるために整数入力ベクトルの１つの現在係数を考慮するために選択する反復ステップの繰り返しを含む。反復ステップは、整数入力ベクトルの現在係数の前に処理された前記整数入力ベクトルのすべての係数と関連するオフセットパラメータを発見することと、オフセットパラメータに応じて累積インデックスを増加させることとを順次含む。繰り返しは、少なくとも整数入力ベクトルのすべての係数が考慮されるまで、現在の係数として順次選択される整数入力ベクトルの係数を用いて継続される。反復列挙手順は、すべての反復ステップが終了した後に出力インデックスが累積インデックスと等しくなるように設定される終了ステップを含む。
【００６４】
図６は、一般的レベルのＭＰＱインデクシングの一実施形態を示す。ＭＰＶＱインデクシングの送信側の態様を実現する詳細なブロック図は以下に示される。ＭＰＶＱインデクシング処理はステップ２００で開始され、ステップ２１０で、コーデックビット割り当てループからＶＱ次元N及び単位パルスの数Kが取得される。ステップ２２０で、ＰＶＱ探索からＰＶＱベクトル「PVQ-vec」が取得される。ステップ２３０で、先行符号ビット及びＭＰＶＱサイズを発見することによりＭＰＶＱインデックスが合成される。ステップ２４０で、先行符号はビットストリームへ送信され、ステップ２４５で、インデックスはビットストリームへ送信される。手順はステップ２４９で終了する。
【００６５】
図５のフローチャートと比較して、ステップ２１０及び２２０は、ステップ４０２に含まれると考えることができる。ステップ４０４及び４０６は、同様にステップ２３０に含まれると考えることができる。最後に、ステップ２４０及び２５０はステップ４０８に含まれると考えらえる。
【００６６】
図７Ａ及び図７Ｂは、ＭＰＶＱインデックス合成の一実施形態を示し、例えば、図６のステップ２３０として提供される。図７Ａ及び図７Ｂにおいて、ＭＰＶＱインデックスの合成並びに先行符号及びＭＰＶＱサイズの発見はステップ３００で開始される。本実施形態は、ＬＳＢ位置にあるベクトルの次の符号による解に基づく。ステップ３０２において、処理は、既知のオフセット反復ベースケースにより初期化される。ステップ３０４において、現在位置パラメータが設定される。本実施形態では、インデクシングは、ベクトルの終端から始めに向かって実行される。インデクシングはデインデクシングと比較して逆の位置順序で実行される。以下の更なる説明を参照。これは、先行符号により発生されるように各反復ステップで累積インデックスを増加させる場合に、整数入力ベクトル中の以前の先行符号に従って、累積インデックスが最下位ビットを与えられることを意味する。
【００６７】
別の実施形態では、インデクシングとデインデクシングとの間でベクトルの位置順序を変更できる。
【００６８】
ステップ３０６で、累積インデックスは０に初期化される。パラメータk_accは、解析される累積単位パルスを示し、０に初期化される。フラグgot_sign_flagは、符号が抽出されるか否かを示し、当初は同様に０に設定される。ステップ３０８で、ベクトルからの現在係数「vec(pos)」はパラメータ「val」として考慮される。ステップ３１０で、第１の符号が発見され、現在係数が０に等しくない場合に、処理はステップ３１２へ続くが、０に等しい場合には、処理はステップ３１４へ直接続く。ステップ３１２で、以前のステップからセーブされた先行符号情報がＬＳＢに導入される。以前のステップにおける負の符号は、値next_sign_ind=1に対応し、正の符号は、値next_sign_ind=0に対応する。ステップ３１４で、現在符号の探索が開始される。値が０に等しい場合、新たな符号は存在せず、最前の符号が転送されるべきであり、これは、処理がステップ３２４（図７Ｂ）へ直接続くことを意味する。現在の係数が０ではない場合に、まず、ステップ３１６で、符号が発見されたというフラグがセットされる。これは実際には第１の符号に関してのみ必要であるが、本実施形態では、流れを簡略にするため、非零値が発見されるたびにフラグはセットされる。ステップ３１８で、next_sign_ind、すなわち、次の符号の標識が正の符号を指示するように設定される。ステップ３２０で、現在係数の値が実際に正であるか否かが検査される。現在係数が正であることが発見された場合、流れはステップ３２４へ続き、正でない場合には、next_sign_ind、すなわち、次の符号の標識は負の符号を指示するように変更される。
【００６９】
ステップ３２４で、現在次元n及び解析される累積単位パルスに基づいてオフセット値に従って累積インデックスは増加される。言い換えれば、累積インデックスは、正の先行値を有し且つ先行する０を持たない、次元n及びk_accのＬ１ノルムの整数ベクトルの数に対応する数だけカウントアップされる。本実施形態では、累積インデックスの修正にAオフセットが使用される。以下に更に説明されるように、他の実施形態では、Aオフセットの代わりに、Uオフセットを使用でき、あるいはAオフセットとUオフセットの組み合わせを使用できる。ステップ３２６で、現在係数の値を加算することにより、k_accパラメータは更新される。ベクトルのすべての位置が考慮されてはいない場合、すなわち、パラメータ「pos」が０より大きい場合、次の繰り返しが準備される。ステップ３３０で、以下に更に詳細に説明されるように、次元は増加され、オフセットは更新される。ステップ３３２で、現在係数の位置は１ステップだけ減少される。次に、処理は、考慮されるべき整数入力ベクトルからの新たな現在係数による別の繰り返しのためにステップ３０８（図７Ａ）に戻る。
【００７０】
ベクトルのすべての位置が考慮されていた場合には、流れはステップ３３４へ続き、先行符号は、現在の次符号指示と等しくなるように設定される。言い換えれば、ベクトルのまさに最初の符号は累積インデックスには含まれておらず、インデクシングの残存部分に影響を与えない別のパラメータとして抽出されることになる。これは、使用されるピラミッドベクトル量子化列挙方式が最初の非零係数の符号を無視することを意味する。その代わりに、この符号は、インデクシング処理から「押し出され」、「先行符号」又は「lead_sign」として示される。その他の符号も、通常、反復中に抽出されるが、インデックス累積に影響を与える。最後に、ステップ３３６で、ＭＰＶＱサイズが計算され、本実施形態では、この計算を２つの異なる方法で実行できる。累積インデックスは、ＭＰＶＱピラミッドベクトル量子化列挙方式の出力インデックスとしてこの処理から抜ける。手順はステップ３４９で終了する。
【００７１】
上記の構造は、符号化されるべき非零ベクトル値のすべての符号を選択された方向に次の非零係数へ１ステップシフトするように動作する。次の位置が存在しない場合、すなわち、処理が当初のベクトルの外にある場合には、その符号を残存lead_signとして記憶する。この符号シフトは、以下の説明から更にわかるように別の前処理ステップとして実行可能であるが、好適な実施形態では、前述のように次元反復ループ全体の中にある。そこで、lead_sign（＋１又は−１）をビットストリーム中の個別のビットとして、lead_sign_ind（０又は１）として送信可能である。
【００７２】
残存シフト済み符号及び当初のベクトルの振幅は、当初のＰＶＱベクトルから常に厳密に１つの符号が抽出／シフトされることを利用する変形インデクシング／列挙方式によって符号化される。この抽出は、当初のＰＶＱ目標ベクトルPVQ_vecの非零要素の数とは無関係である。
【００７３】
図７Ａ及び図７Ｂの構造を容易に理解するために、以下に３つの例を説明する。説明を限度内にとどめ、例全体を理解できるようにするために、それらの例は極めて複雑度の低いものである。しかし、通常の現実の例では、次元及び単位パルスの数は、それよりはるかに多い。しかし、原理は同一である。
【００７４】
第１の例では、次元N=3及び単位パルスの数K=5として、[2,2,-1]の整数入力ベクトルを考える。初期化が実行され、「pos」は「２」に設定され、インデックスk_accは「０」に設定され、次元はn=1に設定され、got_sign_flagはセットされない（=0）。第１の値「val」はベクトルの係数２として、すなわち、−１として選択される。（ベクトルの係数は０、１及び２と番号付けされる。）非零値はまだ評価されていないので、符号は抽出されておらず、流れは、検出された符号に基づくインデックスの調整を飛び越す。これにより、流れは、０と同じではない値「val」の評価へ直接進む。この結果、符号フラグはセットされる。第１の符号が検出されており、検出された符号に従ってnext_sign_indは設定され、この場合next_sign_ind=1、すなわち、負の値（−１）に設定される。次に、累積インデックスは、正の先行値を有し且つ先行する０を持たない、次元１の及び０のＬ１ノルムの整数ベクトルの数に対応するオフセットA(1,0)だけカウントアップされる。A(1,0)は０に等しい。そこで、累積インデックスはindex=0となる。次に、累積kパラメータk_accは、「val」の絶対値だけ、すなわち、１単位だけ更新され、すなわち、k_acc=1となる。
【００７５】
数nを１増加させ、すなわち、n=2とし且つ位置標識「pos」を１減少させ、例えば、pos=1とすることにより、次の繰り返しが準備される。流れはステップ３０８に戻り、位置の新たな値１が選択され、すなわち、この例では、val=vec(1)=2となる。符号フラグ「got_sign_flag」は、符号が検出されたことを指示し、現在の値「val」は０に等しくないので、「next_sign_ind」はＬＳＢとして累積インデックス「index」に加算され、累積インデックスは１（=2*0+1）となる。流れは値「val」の評価へ続き、この場合も、値「val」は０と同じではない。next_sign_indは検出された符号に従って設定され、この場合、next_sign_ind=0、すなわち、正の値（２）となる。次に、累積インデックスは、正の先行値を有し且つ先行する０を持たない、次元２及び１のＬ１ノルムの整数ベクトルの数に対応するオフセットA(2,1)だけカウントアップされる。A(2,1)は１に等しい。そこで、累積インデックスはindex=2となる。次に、累積kパラメータk_accは、vec(1)の絶対値だけ、すなわち２単位だけ更新され、すなわち、k_acc=3となる。
【００７６】
数nを１増加させ、すなわち、n=3とし且つ位置標識「pos」を１減少させ、例えば、pos=0とすることにより、次の繰り返しが準備される。流れはステップ３０８に戻り、位置の新たな値０が選択され、すなわち、この例ではval=vec(0)=2となる。符号フラグ「got_sign_flag」は、符号が検出されたことを指示し、現在の値「val」は０に等しくないので、「next_sign_ind」はＬＳＢとして累積インデックス「index」に加算され、累積インデックスは４（=2*2+0）となる。流れは、値「val」の評価へ続き、この場合にも、値「val」は０と同じではない。next_sign_indは、検出された符号に従って設定され、この場合、next_sign_ind=０となり、すなわち、正の値（２）となる。次に、累積インデックスは、正の先行値を有し且つ先行する０を持たない、次元３及び３のＬ１ノルムの整数ベクトルの数に対応するオフセットA(3,3)だけカウントアップされる。A(3,3)は１３に等しい。そこで、累積インデックスはindex=17となる。次に、累積kパラメータk_accは、「val」の絶対値だけ、すなわち、２単位だけ更新され、すなわち、k_acc=5となる。
【００７７】
この時点で累積kaccは最大のK=5に等しく、ベクトルのすべての位置が考慮されている。従って、出力インデックスは現在累積インデックスに等しく、すなわち、出力インデックスは１７である。最後に識別された符号は累積インデックスにはまだ含まれておらず、別のパラメータとして、すなわち、先行符号=「+1」（next_sign_ind=0）として抽出される。
【００７８】
第２の例では、次元N=3且つ単位パルスの数K=5として、[-4,0,-1]の整数入力ベクトルを考える。初期化が実行され、「pos」は「２」に設定され、インデックス、k_accは「０」に設定され、次元n=1に設定され、got_sign_flagはセットされない（=0）。第１の値「val」はベクトルの係数２として、すなわち−１として選択される。非零値はまだ評価されていないので、符号は抽出されておらず、流れは、検出された符号に基づくインデックスの調整を飛び越す。これにより、流れは値「val」の評価へ直接進み、値「val」は０と同じではない。これにより、符号フラグはセットされる。第１の符号が検出されており、next_sign_indは、検出された符号に従って設定され、この場合、next_sign_ind=1、すなわち、負の値（−１）に設定される。次に、累積インデックスは、正の先行値を有し且つ先行する０を持たない、次元１及び０のＬ１ノルムの整数ベクトルの数に対応するオフセットA(1,0)だけカウントアップされる。A(1,0)は０に等しい。そこで、累積インデックスはindex=0となる。次に、累積kパラメータk_accは、「val」の絶対値だけ、すなわち、１単位だけ更新され、すなわち、k_acc=1となる。
【００７９】
数nを１増加させ、すなわち、n=2とし且つ位置標識「pos」を１減少させ、例えば、pos=1とすることにより、次の繰り返しが準備される。流れはステップ３０８に戻り、位置１の新たな値が選択され、すなわち、この例では、val=vec(1)=0となる。符号フラグ「got_sign_flag」は、符号が検出されたことを指示するが、現在の値「val」は０に等しいので、「next_sign_flag」は次の繰り返しのためにセーブされる。流れは値「val」の評価へ続き、値「val」は０と同じである。従って、next_sign_indは変更されない。次に、累積インデックスは、正の先行値を有し且つ先行する０を持たない、次元２及び１のＬ１ノルムの整数ベクトルの数に対応するオフセットA(2,1)だけカウントアップされる。A(2,1)は１に等しい。そこで、累積インデックスはindex=1となる。次に、累積kパラメータk_accは、「val」の絶対値だけ、すなわち、０単位だけ更新され、すなわち、依然としてk_acc=1である。
【００８０】
数nを１増加させ、すなわちn=3とし且つ位置標識「pos」を１減少させ、例えば、pos=0とすることにより、次の繰り返しが準備される。流れはステップ３０８に戻り、位置０の新たな値が選択され、すなわち、この例では、val=vec(0)=-4となる。符号フラグ「got_sign_flag」は、符号が検出されたことを指示し、現在の値「val」は０に等しくないので、ベクトル位置２から生じる「next_sign_ind」はＬＳＢとして累積インデックス「index」に加算され、この結果、累積インデックスは３（=2*1+1）となる。流れは値「val」の評価へ続き、値「val」は０と同じではない。next_sign_indは、検出された符号に従って設定され、この場合、next_sign_ind=1となり、すなわち、負の値（−４）である。次に、累積インデックスは、正の先行値を有し且つ先行する０を持たない、次元３及び１のＬ１ノルムの整数ベクトルの数に対応するオフセットA(3,1)だけカウントアップされる。A(3,1)は１に等しい。そこで、累積インデックスはindex=4となる。次に、累積kパラメータk_accは、「val」の絶対値だけ、すなわち、４単位だけ更新され、すなわち、k_acc=5となる。
【００８１】
この時点で、累積k_accは最大限のK=5に等しく、ベクトルのすべての位置が考慮されている。従って、出力インデックスは、現在の累積インデックスに等しく、出力インデックス４となる。最後に識別された符号は累積インデックスにまだ含まれておらず、別のパラメータとして、すなわち、先行符号=「−１」（next_sign_ind=1）として抽出される。
【００８２】
第３の例では、次元N=3とし且つ単位パルスの数K=5として、［０，５，０］の整数入力ベクトルを考える。初期化が実行され、「pos」は「２」に設定され、インデックス、k_accは「０」に設定され、次元n=1に設定され、got_sign_flagはセットされない（=０）。第１の値「val」は、ベクトルの係数２として、すなわち、０として選択される。非零値はまだ評価されていないので、符号は抽出されておらず、流れは、検出された符号に基づくインデックスの調整を飛び越す。これにより、流れは、値「val」の評価へ直接進み、値「val」は０と同じである。これにより、符号フラグのトリギング（ｔｒｉｇｇｉｎｇ）は飛び越される。従って、第１の符号はまだ検出されていない。次に、累積インデックスは、正の先行値を有し且つ先行する０を持たない、次元１及び０のＬ１ノルムの整数ベクトルの数に対応するオフセットA(1,0)だけカウントアップされる。A(1,0)は０に等しい。そこで、累積インデックスはindex=０となる。次に、累積kパラメータk_accは、「val」の絶対値だけ、すなわち、０単位だけ更新され、すなわち、依然としてk_acc=0である。
【００８３】
数nを１増加させ、すなわち、n=2とし且つ位置標識「pos」を１減少させ、例えば、pos=1とすることにより、次の繰り返しが準備される。流れはステップ３０８に戻り、位置１の新たな値が選択され、すなわち、この例では、val=vec(1)=5となる。符号フラグ「got_sign_flag」は、符号がまだ検出されていないことを指示する。これにより、流れは、値「val」の評価へ直接進み、値「val」は０と同じではない。これにより、符号フラグはセットされる。この時点で第１の符号が検出されており、next_sign_indは、検出された符号に従って設定され、すなわち、この場合、next_sign_ind=0となり、すなわち、正の値（５）である。次に、累積インデックスは、正の先行値を有し且つ先行する０を持たない、次元２及び０のＬ１ノルムの整数ベクトルの数に対応するオフセットA(2,0)だけカウントアップされる。A(2,0)は０に等しい。そこで、累積インデックスは依然としてindex=0である。次に、累積kパラメータk_accは、「val」の絶対値だけ、すなわち、５単位だけ更新され、すなわち、k_acc=5となる。
【００８４】
数nを１増加させ、すなわち、n=3とし且つ位置標識「pos」を１減少させ、例えば、pos=0とすることにより、次の繰り返しが準備される。流れはステップ３０８に戻り、位置０の新たな値が選択され、すなわち、本例ではval=ｖｅｃ（０）=0となる。符号フラグ「got_sign_flag」は、符号が検出されたことを指示するが、現在の値「val」は０に等しいので、「next_sign_ind」は、次の繰り返しのために又は本例では最終ステップのためにセーブされる。流れは、値「val」の評価へ続き、値「val」は０と同じである。従って、next_sign_indは変更されない。次に、累積インデックスは、正の先行値を有し且つ先行する０を持たない、次元３及び５のＬ１ノルムの整数ベクトルの数に対応するオフセットA(3,5)だけカウントアップされる。A(3,5)は４１に等しい。そこで、累積インデックスはindex=41となる。次に、累積kパラメータk_accは、「val」の絶対値だけ、すなわち、０単位だけ更新され、すなわち、依然としてk_acc=5である。
【００８５】
累積k_accはこの時点で最大限のK=5に等しく、ベクトルのすべての位置が考慮されている。従って、出力インデックスは現在の累積インデックスに等しく、すなわち、出力インデックス４１となる。最後に識別された符号は累積インデックスにまだ含まれておらず、別のパラメータとして、すなわち、先行符号=「＋１」（next_sign_ind=0）として抽出される。
【００８６】
図８には、代わりに区分化先行符号符号化を使用する基本ＭＰＶＱ反復の一実施形態のハイレベル概略図が示される。図は、先行符号情報の区分化を使用する基本ＭＰＶＱ反復の一実施形態のハイレベル概略図を示す。好適な解では、固有pos[0]振幅k_deltaごとに、例えば、k_delta=[k-1,k-2,...1]に関して２つの符号区分が実現される。pos[0]値=「k」の場合、すべての単位パルスはpos[0]で消費され、反復を停止できる。pos[0]値が非零の場合に、最初に遭遇した非零位置符号である正の次の先行符号は１ビットの情報を必要とする。pos[0]値が非零の場合、最初に遭遇した非零位置符号である負の次の先行符号は１ビットの情報を必要とする。pos[0]値=「０」である場合、反復は、新たな先行符号情報を必要とすることなくpos[0]に拡張される。
【００８７】
以上のような反復の定義から、次のような式を確立できる。
M(n,k)=1+U(n,k)+U(n,k)+M(n-1,k)=1+2*U(n,k)+M(n-1,k)
M(n,k)-M(n-1,k)=1+2*U(n,k)
【００８８】
フィッシャーのＰＶＱ再帰を適用することにより、次の式が得られる。
M(n,k)-M(n-1,k)=M(n-1,k-1)+M(n,k-1)
1+2*U(n,k)=M(n-1,k-1)+M(n,k-1)-M(n-1,k-1)+M(n-1,k-1)
1+2*U(n,k)=1+2*U(n,k-1)+2*M(n-1,k-1)
U(n,k)=U(n,k-1)+M(n-1,k-1)
M(n-1,k-1)=U(n,k)-U(n,k-1)
この結果、
M(n-1,k)=[U(n,k+1)-U(n,k)]
となる。再帰の定義から、次のことがわかる。
M(n,k)=1+2*U(n,k)+[U(n,k+1)-U(n,k)]=1+U(n,k)+U(n,k+1)
そこで、ＭＰＶＱサイズを再帰的に次のように判定できる。
NMPVQ(n,k)=M(n,k)=1+U(n,k)+U(n,k+1)
採用されるＭＰＶＱ再帰公式の導出に関しては、更に付録Ｂを参照。
NMPVQ(n,k)=1+2*U(n,k)+NMPVQ(n-1,k)
【００８９】
列挙／インデクシングでは、以下に定義される特性（ａ〜ｇ）のいずれかを使用する。
ａ）NPVQ(n,k)=2*NMPVQ(n,k)、
（効率のよいインデクシングのために再帰的に適用される）
ｂ）U(n,k)=1+U(n,k-1)+U(n-1,k-1)+U(n-1,k)、
初期条件はU(0,*)=0、U(*,0)=0、U(1,*)=0、U(*,1)=0及びU(a,b)=U(b,a)であり、効率を得るために更にU(2,k)=k-1及びU(n,2)=n-1及びU(3,k)=K*(k-1)及びU(n,3)=n(n-1)を使用できる。
ｃ）NMPVQ(n,k)=1+U(n,k)+U(n,k+1)、
（最終ＭＰＶＱサイズ計算）
ｄ）NMPVQ(n,k)=1+floor((A(n,k))/2)+U(n,k+1)、
（代替最終サイズ計算）
ｅ）NMPVQ(n,k)-NMPVQ(n-1,k)=1+2*U(n,k)=A(n,k)、
（反復振幅インデックス追加判定に使用可能である）
ｆ）A(n,k)=A(n,k-1)+A(n-1,k-1)+A(n-1,k)、
（例えば、ＣＥＬＴ／ＯＰＵＳ−ａｕｄｉｏでも使用されるこの再帰は、複雑度の低い振幅インデクシングオフセット更新にも使用できる）
ｇ）ＰＶＱオフセット=U(n,k=0..K+1)を反復更新するか、又は好ましくはA(n,k=0...K)及びU(n,K+1)を反復更新する。A(n,k)再帰はU(n,k)再帰よりわずかに速く、最終要素U(n,K+1)はA(n,K+1)より低いダイナミックレンジを有する。
【００９０】
この場合、ｃ）及びｄ）は、ビットストリームからインデックスを取得するために必要とされるか、あるいはビットストリーム又はビットストリームにインタフェースする演算符号化器／復号器に提供される最終MPVQ(n,k)符号語のサイズを計算するために使用される。
【００９１】
図９は、次元を増加させる場合のＰＶＱ−Ａ／Ｕオフセット再帰の３つの実施形態の組み合わせを示す。
【００９２】
オフセットを更新する手順はステップ３５０で開始される。入力パラメータは、次元n及びk_max+1値である。この手順は、行nのインデクシングオフセットに行n-1のインデクシングオフセットを提供し、0...(k_max+1)のkに関するオフセットの更新を含む。ステップ３５２で、Aオフセットのみが使用されるべきか否かが決定される。Aオフセットのみが使用されるべきである場合、ステップ３５４で、A(n,k)が次のように計算される。
【００９３】
A(n,k)=A(n-1,k)+A(n-1,k-1)+A(n,k-1)
この特定の再帰は従来の技術でも利用されているが、ＰＶＱインデクシング処理の効率は劣る。ステップ３９７で、A(n,k)は返送される。ステップ３５６で、Uオフセットのみが使用されるべきか否かが決定される。Uオフセットのみが使用されるべきである場合、ステップ３５８で、U(n,k)が次のように計算される。
【００９４】
U(n,k)=1+U(n-1,k-1)+U(n-1,k)+U(n,k-1)
ステップ３９８で、U(n,k)は返送される。ステップ３６０で、AオフセットとUオフセットの組み合わせが使用されるべきである。ステップ３６２において、k=0...(k_max)に関する再帰は、
A(n,k)=A(n-1,k)+A(n-1,k-1)+A(n,k-1)
に従って実行される。この特定の再帰は従来の技術でも利用されているが、ＰＶＱインデクシング処理の効率は劣る。最高ダイナミクスオフセット（k_max+1）に関して、ステップ３６４で再帰が実行される。特定の一実施形態において、
U(n,k_max+1)=1+U(n-1,k_max)+U(n-1,k_max+1)+U(n,k_max)
に従って純粋U再帰が使用される。別の特定の実施形態では、
U(n,k_max+1)=1+(A(n-1,k_max)＞＞1)+(A(n,k_max)＞＞)+U(n-1,k_max+1)
に従って混合A/U再帰が使用される。式中、（y＞＞1）はy=floor(y/2)を意味する。ステップ３９９において、A(n,k)及びU(n,k_max+1)は返送される。
【００９５】
受信機側では、逆の手順が実行されなければならず、先行符号及びインデックスは整数出力ベクトルに変換される。図１０は、オーディオ／ビデオサンプルのピラミッドベクトル量子化デインデクシングの方法の一実施形態のステップのフローチャートを示す。方法はステップ４５０で開始される。ステップ４５２で、第１の符号語としての先行符号及び第２の符号語としての入力インデックスが入力ビットストリームから受信される。先行符号及び入力インデックスはオーディオ／ビデオ信号サンプルを表す。先行符号は、オーディオ／ビデオ信号サンプルを表す符号であって、作成されるべき整数出力ベクトル中の終端非零係数の符号である。整数出力ベクトルは複数の整数値係数を有する。終端非零係数は、前記整数出力ベクトル中の最初の非零係数及び最後の非零係数のうち一方である。ステップ４５４で、入力インデックスはピラミッドベクトル量子化列挙解除方式によって整数出力ベクトルにデインデクシングされる。列挙方式により作成される入力インデックスは、終端非零係数の符号を無視している。ステップ４５６で、整数出力ベクトル中の終端非零係数の符号は、受信された先行符号に従って割り当てられる。別の実施形態では、ステップ４５６は、ステップ４５４と同時に、ステップ４５６と組み合わせて又はステップ４５６の前に実行可能である。ステップ４５８で、整数出力ベクトルは出力される。処理はステップ４９９で終了する。
【００９６】
特定の一実施形態において、デインデクシングするステップ４５４は、反復列挙解除手順により実行される。更なる特定の実施形態では、反復列挙解除手順は、残存インデックスが入力インデックスと等しくなるように設定される初期化ステップと、考慮に入れるために整数出力ベクトルの１つの現在係数が選択される反復ステップの繰り返しとを含む。反復ステップは、整数出力ベクトルの中の現在係数の位置及び残存インデックスに適合しているオフセットパラメータを発見することと、オフセットパラメータに応じて残存インデックスを減少させることと、整数入力ベクトルの現在係数の振幅をオフセットパラメータと関連する振幅と等しくなるように設定することとを含む。繰り返しは、残存インデックスが０に等しくなるまで、整数入力ベクトルの係数が現在係数として順次選択されている間は継続される。
【００９７】
ＭＰＶＱデインデクシングの受信側のいくつかの態様が処理の実施形態を実現する詳細なブロック図を使用して以下に例示される。ＭＰＶＱデインデクシングの一実施形態の概要が図１１に示される。ＭＰＶＱデインデクシングはステップ２５０で開始される。ステップ２６０で、コーデックビット割り当てループからＶＱ次元N及び単位パルスの数Kが獲得される。ステップ２７０で、サイズ及びオフセットが発見される。ステップ２８０で、入力ビットストリームから先行符号が抽出され、ステップ２８５で、入力ビットストリームからＭＰＶＱインデックスが取得される。これらの量は、ＭＰＶＱインデックスが分解されるステップ２９０で利用される。処理はステップ２９９で終了する。
【００９８】
図１０のフローチャートと比較して、ステップ２６０、２７０、２８０及び２８５は、ステップ４５２に含まれると考えることができる。ステップ４５４及び４５６も同様にステップ２９０に含まれると考えられる。
【００９９】
例えば、図１１のステップ２７０に対応するサイズ及びオフセットを発見するための手順の一実施形態が図１２に示される。デインデクシングにおけるA(n,k)オフセットは、通常、振幅オフセットであるが、残存符号も考慮に入れる。U(n,k)オフセットも同様である。これも振幅オフセットである。しかし、U(n,k)オフセットは第１の先行符号（「２」）を含まず、残存先行符号の残りのすべてが含まれる。一般に、オフセットは、振幅及び先行符号の残存する可能な組み合わせに関するセクションサイズを示す。場合によっては、これは、現在の先行符号（A(n,k)）によって実行されるが、次の先行符号なしで、残存するすべての先行符号によって実行されることもある（U(n,k)の場合）。k=0〜k=K+1で次元Nに関してＭＰＶＱサイズNMPVQ(N,K)及びインデクシングオフセットA、Uを発見するための手順はステップ５００で開始される。尚、A(n,k)の直接式、A(n,k)行専用再帰及びA基本再帰は従来の技術で知られている。ステップ５０２で、サイズ及びオフセットがＲＯＭテーブルに記憶されているか否かが検査される。N及びKの双方がローであるときに現実に起こりうるように、記憶されている場合、手順はステップ５１９によって直接継続する。ステップ５０４で、効率のよい直接計算が可能であるか否かが検査される。Nがローであるときに現実に起こりうるように、可能である場合、処理はステップ５０６へ続き、ＭＰＶＱサイズ(N,K)及び振幅オフセットA(N,K)に対して直接式が使用される。次に、手順はステップ５１９へ続く。ステップ５０８で、効率のよい行再帰が可能であるか否かが検査される。いくつかのKに対して現実的であるように、可能である場合、処理はステップ５１０へ続き、A(N,k=0...K)及びU(N,K+1)を計算するために行Nに対して再帰行専用式が使用される。次に、手順はステップ５１４へ続く。ステップ５０８で行専用再帰が実現不可能であることが判明した場合に、手順はステップ５１２へ続き、オフセットをA(N,k=0...K)及びU(N,K+1)として計算するために行0〜行Nに対して基本列／行オフセット再帰式に関してオフセット更新処理が使用される。これは、すべてのN及びKに対して可能である。そのようなオフセット更新ルーチンの一例は、例えば、図９で見られる。ステップ５１４において、ＭＰＶＱサイズをMPVQ-size=1+(A(N,K)＞＞1)+U(N,K+1)として、あるいはMPVQ-size=1+U(N,K)+U(N,K+1)として計算できる。ステップ５１９において、オフセット（A,U）及びＭＰＶＱサイズを返送することにより、手順は終了する。
【０１００】
図１３は、ＭＰＶＱインデックス分解の一実施形態を示す。ＭＰＶＱインデックスを分解する手順はステップ５２０で開始される。パラメータN、K、入力インデックス及び先行符号並びにオフセット値が提供される。残存インデックスは入力インデックスと等しくなるように設定される。ステップ５２２で、出力ベクトル「vec」は０によって初期化される。ステップ５２４で、ローカル最大値k、k_max_localはKと等しくなるように設定され、ベクトル中の位置は０から開始され、nはNに設定される。ステップ５２６で、ベクトル中のすべての位置が考慮された否かが検査される。すべての位置が考慮されていた場合、ステップ５４８で、出力ベクトルとしてベクトルが返送され、すなわち、最終位置の後の処理を抜ける。ステップ５２８で、残存インデックスが０であるか否かが検査される。０である場合に、非零値で充填されるべきベクトル位置はそれ以上残っていない。手順はステップ５３０へ続き、先行符号が組み込まれ、ステップ５４９で、出力ベクトルとしてベクトルが返送され、すなわち、最終位置の前の処理を速く抜ける。残存インデックスが０より大きい場合に、手順はステップ５３２へ続き、k_delta、すなわち、検査すべきベクトル位置の絶対振幅及び振幅オフセット「amp_offset」が発見される。このことは以下に更に詳細に説明される。ステップ５３４で、残存インデックスは振幅オフセットだけ減少される。ステップ５３６の検査に従って、ベクトル位置の振幅が非零の場合に、手順はステップ５３８へ続き、ベクトル位置は、振幅に先行符号を乗算した値に等しい値を与えられる。最初の非零係数の場合、先行符号は、ビットストリームから抽出される先行符号である。ステップ５４０で、将来位置に関する次の先行符号が推論される。このことは以下に更に詳細に説明される。ステップ５４２で、ローカル最大k値は現在のk値「k_delta」によって減少される。次に、ステップ５４４で次元nを増加させ、オフセットを更新し且つベクトル中の位置を１ステップ増分することにより、次の繰り返しが準備される。次に、手順はステップ５２６に戻る。
【０１０１】
図１３に示されるように、受信されたインデックスから、現在位置の振幅「k_delta」が判定される。これは、利用可能なA(n,k)オフセット及び／又はU(n,k)オフセットを使用することにより実行されるのが好ましい。振幅情報オフセットが更に推論され、残存インデックスは、この振幅情報オフセット「amp_offset」だけ減少される。そのような手順の一実施形態が図１４に示される。
【０１０２】
振幅k_delta及び振幅オフセットamp_offsetを発見する手順の一実施形態はステップ５５０で開始される。言い換えれば、この手順は、現在位置の振幅及び対応するインデックスオフセットを発見することであると想定される。A(n,k)のオフセットを使用する線形探索又はツリー探索自体は、従来の技術で利用可能である。入力パラメータは、ローカル最大値k「k_max_local」、インデックス及びオフセットH(n,k)=A(n,k)である。ステップ５５２でツリー探索又は線形探索が選択される。線形探索を選択した場合、ステップ５５４は、累積k値k_accをローカル最大値kと等しくなるように設定し、振幅オフセットは、現在のn及び累積k値に関するオフセットと等しくなるように設定される。ステップ５５６で、オフセットがインデックスより大きいか否かが検査される。大きい場合に、ステップ５５８でk_acc値は１単位減少され、新たな振幅オフセットが導出される。次に、手順はステップ５５６に戻る。残存インデックス以下の最大振幅オフセット値が発見されるまで、これが繰り返される。次に、手順はステップ５６０へ続き、k_delta、すなわち、現在位置の振幅は、k_acc値だけ減少されたローカル最大k値として計算される。
【０１０３】
ツリー手順が選択された場合、ステップ５６２でハイパラメータ及びローパラメータが定義され、n及びハイパラメータに関する振幅オフセットが推論される。ステップ５６４で、探索すべきk領域は、k_testパラメータによって２つの部分に分割され、n及びハイパラメータに関する振幅オフセットが推論される。ステップ５６６で決定されるような、振幅オフセットがインデックスより大きいか又は小さいかに応じて、ステップ５６８でハイパラメータが変更されるか、又はステップ５７２でローパラメータが変更される。ステップ５７０及び５７４でそれぞれ検査されるように、振幅オフセットとインデックスとの差が０になるか、又はk_testポイントがハイパラメータと等しくなるまで、これが繰り返される。ステップ５７６で、k_delta、すなわち、現在位置の振幅は、k_test値だけ減少されたローカル最大k値として計算される。ステップ５７９で、振幅k_delta、k_acc及びamp_offsetは区分化符号符号化に使用され、この場合、k_acc=k_max_local-k_deltaである。
【０１０４】
図１３のステップ５３６で、大きさが０ではなく、最大残存K単位パルス値より小さい場合に、ステップ５３８で、以前に抽出（記憶）された先行符号が現在位置振幅に適用される。その後、次の先行符号は、受信され、分解されたＭＰＶＱインデックスから抽出されるべきである。次の先行符号を発見し、抽出された符号情報（ビット又はsign_offset）をインデックスから除去する手順の一実施形態は図１５に示される。
【０１０５】
次の先行符号を獲得する手順はステップ５８０で開始される。入力パラメータは残存インデックス、オフセット及び累積k値k_accである。ステップ５８２で符号位置決め方法が選択される。現時点で好適な実施形態であると考えられるＬＳＢ方式が選択された場合に、ステップ５８４で、先行符号は、最初に正（＋１）に設定される。ステップ５８６で、ビットごと「ａｎｄ」演算を使用してインデックス中の最下位ビットが判定される。ビットが「１」である場合に、これは負の符号を意味し、その結果、ステップ５８８で先行符号は「−１」に変更される。ステップ５９０でインデックスは位置１つだけシフトされ、すなわち、符号ビットをシフトアウトする。
【０１０６】
ＬＳＢ方式よりわずかに複雑である区分化先行符号復号化が選択された場合に、ステップ５９２で、先行符号は、最初に正（１）に設定される。ステップ５９４で、k_deltaセグメントのサイズは２分割される。インデックスがこの符号オフセット以上である場合に、符号は負であり、その結果、ステップ５９７で先行符号は変更される。ステップ５９８で、インデックスも、発見された符号オフセットだけ減少される。ステップ５９９で、先行符号及び修正後のインデックスが返送される。
【０１０７】
再び図１３に戻ると、現在位置が０振幅を有する場合に、先行符号は保持され、すなわち、現在位置の後の次の位置で使用するために記憶される。
【０１０８】
大きさが最大残存K単位パルス値と等しい場合に、記憶された先行符号が適用される。オプションとしてこの最後の非零エントリの代わりに処理を反復して速く抜けることができ、一連の末尾０によって早期に処理を抜けることができる。ＤＳＰ−ＨＷでは、最適化一定長ループを条件付きで処理を抜けることのコストは、場合によってはループにとどまることより高いので、これは任意である。
【０１０９】
残存ベクトルに関してオフセットA(n,k)又はU(n,k)を再帰的に更新することができ、その場合、デインデクシングするために１次元減少させ且つデインデクシングするために単位パルスを「k_delta」だけ減少させる。１次元減少させる場合のオフセット更新の手順の一実施形態が図１６に示される。手順は図９に提示される手順に類似しているが、この場合、次元は増加されるのではなく、減少される。
【０１１０】
オフセットを更新する手順はステップ６００で開始される。入力パラメータは、次元n及びk_max値である。この手順は、0...k_maxのkに関するオフセットを更新することを含めて、行n+1のインデクシングオフセットを行nのインデクシングオフセットに提供する。ステップ６０２で、Aオフセットのみが使用されるべきであるか否かが決定される。Aオフセットのみが使用されるべきである場合に、ステップ６０４で、A(n,k)は次のように計算される。
A(n,k)=A(n+1,k)-A(n,k-1)-A(n+1,k-1)
この特定の再帰は従来の技術でも利用されているが、ＰＶＱインデクシング処理の効率は劣る。ステップ６１７でA(n,k)が返送される。ステップ６０６で、Uオフセットのみが使用されるべきであるか否かが決定される。Uオフセットのみが使用されるべきである場合に、ステップ６０８で、U(n,k)は次のように計算される。
U(n,k)=U(n+1,k)-U(n,k-1)-U(n+1,k-1)-1
ステップ６１８でU(n,k)は返送される。ステップ６１０で、AオフセットとUオフセットの組み合わせが使用されるべきである。ステップ６１２で、k=0...(k_max-1)に関する再帰は、
A(n,k)=A(n+1,k)-A(n,k-1)-A(n+1,k-1)
に従って実行される。この特定の再帰は従来の技術でも利用されているが、ＰＶＱインデクシング処理の効率は劣る。k_max=K+1である場合の最高ダイナミクスオフセットk_maxに関して、ステップ６１４で再帰が実行される。特定の一実施形態では、純粋なU再帰は、
U(n,k_max)=U(n+1,k_max)-U(n,k_max-1)-U(n+1,k_max-1)-1
に従って使用される。別の特定の実施形態では、
U(n,k_max)=U(n+1,k_max)-(A(n,k_max-1)＞＞1)-(A(n+1,k_max-1)＞＞1)-1
に従って混合A／U再帰が使用され、式中、（y＞＞1）は、y=floor(y/2)を意味する。ステップ６１９で、A(n,k)及びU(n,k_max)が返送される。
【０１１１】
ここで、図１３の構造を容易に理解するために、３つの例を以下に説明する。説明を限度内にとどめ、例全体を理解できるようにするために、それらの例は極めて複雑度の低いものである。しかし、通常の現実の例では、次元及び単位パルスの数は、それよりはるかに多い。しかし、原理は同一である。
【０１１２】
第１の例では、次元N=3及び単位パルスの数K=5として、１７の入力インデックス及び先行符号「＋１」、すなわち、正の符号を考える。初期化が実行され、「pos」は「０」に設定され、すなわち、デインデクシングは、ベクトル中の第１の係数から開始され、k_max_localが５とされ、次元n=3とされる。入力インデックスは残存インデックスに「リネーム」される。位置は３より低く、残存インデックスは０ではない。振幅k_delta及びオフセットamp_offsetが探索される（例えば、図１４に従って）。例えば、Aオフセットが使用される場合に、オフセット群A(3,0...5)が検査され、まだ残存インデックス以下である最大AオフセットはA(3,3)=13である。従って、k_accは３になり、k_deltaは２になり、amp_offsetは１３に等しい。残存インデックスはamp_offsetだけ減少され、４に等しくなる。k_deltaは０に等しくないので、適用されるべき符号は存在する。従って、ベクトル位置は、絶対値（k_delta）と、受信され、記憶された正である先行符号との積に設定される。そこで、出力ベクトルは[2,0,0]になる。次に、例えば、図１５に従って、次の先行符号の判定が実行される。ＬＳＢ符号位置決めを想定すると、残存インデックス（４）のＬＳＢは０であり、これは正の符号に対応する。従って、lead_signは「＋１」に設定される。残存インデックスは、インデックスを１ステップシフトすることにより減少され、すなわち、２による整数除算に等しい。そこで、残存インデックスは２に等しくなる。最後に、残存パルス単位k_max_localが更新され、この時点で３になる。
【０１１３】
数nを１減少させ、すなわち、n=2とし且つ位置標識「pos」を１増加させ、例えば、pos=1とすることにより、次の繰り返しが準備される。新たなnに従って、利用可能オフセットも更新される。流れはステップ５２６に戻り、新たな振幅及びオフセットが発見されるべきである（例えば、図１４に従って）。例えば、Aオフセットが使用される場合に、オフセット群A(2,0...3)が検査され、まだ残存インデックス以下である最大AオフセットはA(2,1)=1である。従って、k_accは１になり、k_deltaは２になり、amp_offsetは１に等しい。残存インデックスはamp_offsetだけ減少され、１に等しくなる。k_deltaは０に等しくないので、適用されるべき符号は存在する。従って、ベクトル位置は、絶対値（k_delta）と、最近抽出され、正であった先行符号との積に設定される。そこで、出力ベクトルは[2,2,0]になる。次に、例えば、図１５に従って、次の先行符号の判定が実行される。ＬＳＢ符号位置決めを想定すると、残存インデックス（１）のＬＳＢは１であり、これは負の符号に対応する。従って、lead_signは−１に設定される。残存インデックスも、インデックスを１ステップシフトすることにより減少され、すなわち、２による整数除算に等しい。そこで、残存インデックスは０に等しくなる。最後に、残存パルス単位k_max_localが更新され、この時点で１になる。
【０１１４】
数nを１減少させ、すなわちn=1とし且つ位置標識「pos」を１増加させて、例えば、pos=2とすることにより、次の繰り返しが準備される。新たなnに従って、利用可能オフセットも更新される。流れはステップ５２６に戻る。残存インデックスは０であるので、最後のベクトル係数を提供するためにステップ５３０が実行される。lead_signは−１に等しく、k_max_localは１に等しく、これにより、[2,2,-1]の出力ベクトルが得られる。
【０１１５】
第２の例では、次元N=3とし且つ単位パルスの数K=5として、４の入力インデックス及び負の先行符号を考える。初期化が実行され、「pos」は「０」に設定され、すなわち、デインデクシングは、ベクトル中の第１の係数、k_max_local「５」及び次元n=3から開始される。入力インデックスは残存インデックスに「リネーム」される。位置は３より低く、残存インデックスは０ではない。振幅k_delta及びオフセットamp_offsetが探索される（例えば、図１４に従って）。例えば、Aオフセットが使用される場合に、オフセット群A(3,0...5)が検査され、まだ残存インデックス以下である最大AオフセットはA(3,1)=1である。従って、k_accは１になり、k_deltaは４になり、amp_offsetは１に等しい。残存インデックスはamp_offsetだけ減少され、３に等しくなる。k_deltaは０に等しくないので、適用されるべき符号は存在する。従って、ベクトル位置は、絶対値（k_delta）と、受信され、負であった先行符号との積に設定される。そこで、出力ベクトルは[-4,0,0]になる。次に、例えば、図１５に従って、次の先行符号の判定が実行される。ＬＳＢ符号位置決めを想定すると、残存インデックス（３）のＬＳＢは１であり、これは負の符号に対応する。従って、lead_signは−１に設定される。残存インデックスは、インデックスを１ステップシフトすることにより減少され、すなわち、２による整数除算に等しい。そこで、残存インデックスは２に等しくなる。最後に、残存パルス単位k_max_localが更新され、この時点で１になる。
【０１１６】
数nを１減少させ、すなわち、n=2とし且つ位置標識「pos」を１増加させて、例えば、pos=1とすることにより、次の繰り返しが準備される。新たなnに従って、利用可能オフセットも更新される。流れはステップ５２６に戻り、新たな振幅及びオフセットが発見されるべきである（例えば、図１４に従って）。例えば、Aオフセットが使用される場合に、オフセット群A(2,0...1)が検査され、まだ残存インデックスより小さい最大AオフセットはA(2,1)=1である。従って、k_accは１になり、k_deltaは０になり、amp_offsetは１に等しい。残存インデックスはamp_offsetだけ減少され、１に等しくなる。k_deltaは０に等しいので、次の繰り返しに備えて最後の抽出符号がセーブされる。出力ベクトルは依然として[-4,0,0]である。
【０１１７】
数nを１減少させ、すなわち、n=1とし且つ位置標識「pos」を１増加させて、例えば、pos=2とすることにより、次の繰り返しが準備される。新たなnに従って、利用可能オフセットも更新される。流れはステップ５２６に戻り、新たな振幅及びオフセットが発見されるべきである（例えば、図１４に従って）。例えば、Aオフセットが使用される場合に、オフセット群A(1,0...1)が検査され、まだ残存インデックス以下である最大AオフセットはA(1,1)=1である。従って、k_accは１になり、k_deltaは０になり、amp_offsetは１に等しい。残存インデックスはamp_offsetだけ減少され、０に等しくなる。k_deltaは０に等しくないので、適用されるべき符号は存在する。従って、ベクトル位置は、絶対値（k_delta）と、先に抽出され、負であった先行符号との積に設定される。最終出力ベクトルは[-4,0,-1]になる。
【０１１８】
第３の例では、次元N=3とし且つ単位パルスの数K=5として、４１の入力インデックス及び正の先行符号を考える。初期化が実行され、「pos」は「０」に設定され、すなわち、デインデクシングは、ベクトル中の第１の係数、k_max_local「５」及び次元n=3から開始される。入力インデックスは残存インデックスに「リネーム」される。位置は３より低く、残存インデックスは０ではない。振幅k_delta及びオフセットamp_offsetが探索される（例えば、図１４に従って）。例えば、Aオフセットが使用される場合に、オフセット群A(3,0...5)が検査され、まだ残存インデックス以下である最大AオフセットはA(3,5)=41である。従って、k_accは５になり、k_deltaは０になり、amp_offsetは４１に等しい。残存インデックスはamp_offsetだけ減少され、０に等しくなる。k_deltaは０に等しいので、後の反復に備えて符号はセーブされる。出力ベクトルは依然として[0,0,0]である。
【０１１９】
数nを１減少させ、すなわち、n=2とし且つ位置標識「pos」を１増加させて、例えば、pos=1とすることにより、次の繰り返しが準備される。新たなnに従って、利用可能オフセットも更新される。流れはステップ５２６に戻り、新たな振幅及びオフセットが発見されるべきである（例えば、図１４に従って）。例えば、Aオフセットが使用される場合に、オフセット群A(2,0...5)が検査され、まだ残存インデックス以下である最大AオフセットはA(2,0)=0である。従って、k_accは０になり、k_deltaは５になり、amp_offsetは０に等しい。残存インデックスはamp_offsetだけ減少され、０に等しくなる。k_deltaは０に等しくないので、適用されるべき符号は存在する。従って、ベクトル位置は、絶対値（k_delta）と、受信され、記憶された、正であった先行符号とを乗算した値に設定される。そこで、出力ベクトルは[0,5,0]になる。
【０１２０】
数nを１減少させ、すなわち、n=1とし且つ位置標識「pos」を１増加させて、例えば、pos=2とすることにより、次の繰り返しが準備される。流れはステップ５２６に戻る。ステップ５２８で、インデックスは０であり、ステップ５３０及び５４９を介して処理を速く抜けれることがわかる。
【０１２１】
本開示で提示されるこの新規なインデクシング方式は、改善された複雑度の低い短符号語方式である。設計上、これは、最適化された純粋大きさインデクシング方式（Ｆｉｓｃｈｅｒ／Ｈｕｎｇ／Ｏｐｕｓ／ＣＥＬＴ）であるが、それに加えて、あらゆるＰＶＱ構造の大きさは常に偶数のベクトルであるという事実を効率よく利用する。
【０１２２】
非常に大きなＰＶＱベクトル（1+Bより大きい）ビットを効率よく処理する必要がある。これは、例えば、目標ベクトル次元分割、ＰＶＱベクトル次元分割又はコストが高いダイナミックレンジ整数計算、例えば、n*16又はn*32仮想、ソフトウェア定義の大きな整数により実行可能である。
【０１２３】
BビットからB+1ビットへ（例えば、３２ビットから３３ビットへ）移行することの利得は、拡張R=ビット／係数範囲能力として定量化でき、この場合、所定の次元に関して次元分割は必要とされない。例えば、次元N=8の場合、R=32/8=4ビット／係数（又はサンプル）から係数又はサンプルごとにR=33/8=4.125ビットへ移行する。通常、高品質周波数領域オーディオＰＶＱ方式では、R=7形状ビット／係数（又はサンプル）が要求される。
【０１２４】
図１７Ａは、いくつかの一般的なハードウェアビット限界に関するＰＶＱ符号語の概要を示す。曲線９００はPVQ(n,k)ビット限界３３を示し、曲線９０１はPVQ(n,k)ビット限界３２を示し、曲線９０２はPVQ(n,k)ビット限界３１を示し、曲線９０３はPVQ(n,k)ビット限界１７を示し、曲線９０４はPVQ(n,k)ビット限界１６を示し、曲線９０５はPVQ(n,k)ビット限界１５を示す。３３ビットは、新規な方式及び符号なし３２ビット整数と共に使用可能であり、３２ビットは符号なし３２ビット整数に対応し、３１ビットは符号付き３２ビット整数に対応し、１７ビットは、新規な方式及び符号なし１６ビット整数と共に使用可能であり、１６ビットは符号なし１６ビット整数に対応し、１５ビットは符号付き１６ビット整数に対応する。
【０１２５】
図１７Ｂは、異なるＢＩＴ限界を有する最適のＰＶＱ符号語量子化器に関するビット／サンプル単位の関連Ｒ値の概要を示す。曲線９１０はPVQ(n,k)ビット限界３３を示し、曲線９１１はPVQ(n,k)ビット限界３２を示し、曲線９１２はPVQ(n,k)ビット限界３１を示し、曲線９１３はPVQ(n,k)ビット限界１７を示し、曲線９１４はPVQ(n,k)ビット限界１６を示し、曲線９１５はPVQ(n,k)ビット限界１５を示す。Ｒ値が高いほど、高い符号化品質を実現できる。
【０１２６】
図１７Ｃは、利得−形状ＰＶＱの結果である形状整合能力に直接相関させた対応する実現可能なパルス密度を示す。曲線９２０はPVQ(n,k)ビット限界３３を示し、曲線９２１はPVQ(n,k)ビット限界３２を示し、曲線９２２はPVQ(n,k)ビット限界３１を示し、曲線９２３はPVQ(n,k)ビット限界１７を示し、曲線９２４はPVQ(n,k)ビット限界１６を示し、曲線９２５はPVQ(n,k)ビット限界１５を示す。R値が高いほど、高い符号化品質を実現できる。異なるＢＩＴ限界と共に、最適ＰＶＱ符号語量子化器に関する可能なパルス密度が示される。パルス密度が高いほど、高い符号化品質、例えば、高いＶＱ  ＳＮＲを実現できる。
【０１２７】
図１７Ｄは、公正な比較のために、共に最大サイズ３２のＰＶＱ符号語を使用する従来の方式ＰＶＱの例及び新規な方式ＭＰＶＱに関するインデクシング／デインデクシングにおけるワーストケースのＭＯＰＳ命令トレードオフを示す。曲線９３０はＭＰＶＱに関する総合的複雑度を示し、曲線９３１はＰＶＱに関する総合的複雑度を示し、曲線９３２はＭＰＶＱに関するデインデクシング複雑度を示し、曲線９３３はＰＶＱに関するデインデクシング複雑度を示し、曲線９３４はＭＰＶＱに関するインデクシング複雑度を示し、曲線９３５はＰＶＱに関するインデクシング複雑度を示す。上記のＭＰＶＱは符号付き３２ビットアーキテクチャで実現可能であり、従来の技術のＰＶＱは符号なし３２ビットアーキテクチャを要求する。
【０１２８】
ここで提示される技術の第２の部分では、オフセットの低ダイナミックＭＰＶＱランタイム計算が説明される。付録Ａには、背景としてＯＰＵＳ  ＲＦＣからのハイレベルテキスト記述が転載される。ＩＥＴＦ−ＯＰＵＳ  ｃ−ｃｏｄｅ（ｃｗｒｓ．ｃ）では、符号インデクシング及び振幅インデクシングの双方で動的にランタイム計算されたインデクシングオフセットA(n,k)が使用される。しかし、尚ＯＰＵＳ  ｃ−ｃｏｄｅ内で異なるオフセット可変名が使用される。数A(n,k)は、第１の位置で正の非零値から開始されるベクトルPVQ(n,k)の数を表す。従来の技術では、
A(n,k)=(NPVQ(n,k-1)+NPVQ(n-1,k-1))/2
であることがわかっている。言い換えれば、数Aは、ＰＶＱサイズマトリクスN(n,k)の行nの要素と先行する行n-1の要素との加重和である。
【０１２９】
A(n,k)に関する表１は、従来の技術（ＣＥＬＴ／ＯＰＵＳ）のＰＶＱオフセットデータ方式が使用され、メモリ効率に関して前方再帰の所定のポイントでＲＡＭメモリに１つの行のみ、例えば、n=3が記憶され、その後、行n=3に基づいてn=4が計算され、それが繰り返される例を示す。
【０１３０】
尚、音声及びオーディオの符号化の実世界におけるＰＶＱ実現形態の場合、目標ＤＳＰの容量に応じて、次元nは２５６になり、単位パルスkの数は約５１２になる可能性がある。従って、n*k個のオフセットを記憶することは多くの場合に実現不可能である。
【０１３１】
2020024431.tif 000006
表１  例えば、ＩＥＴＦ−ＯＰＵＳ−Ａｕｄｉｏのようなインデクシング方式でＰＶＱ復号化／符号化を実行する場合に計算されるPVQ(n=6,k=5)に必要とされる従来の技術のA(n,k)オフセット。
【０１３２】
しかし、動的インデクシングオフセット計算を改善することができる。ここで提案される新規な再帰は次の通りである。
U(n,k)=U(n,k-1)+U(n-1,k-1)+U(n-1,k)+1
これは、以前に採用されていた従来の技術のＯＰＵＳ／ＣＥＬＴのオフセットA(n,k)と次のように関連していることがわかる。
A(n,k)=2*U(n,k)+1
U(n,k)の整数レンジダイナミクスは常にA(n,k)レンジの少なくとも２分の１である。これは、例えば３２ビット語の中で高速インデクシングのために１ビット余分に利用可能にできることを意味する。また、U(2,k)及びU(3,k)をA(2,k)及びA(3,k)の場合より速く、対称的にU(2,k)=k-1,U(3,k)=k*(k-1)及びU(a,b)=U(b,a)として直接計算できる。
【０１３３】
2020024431.tif 000007
表２  MPVQ(n=6,k=5)に関して計算された新たな低ダイナミックレンジU(n,k)インデクシングオフセット。
【０１３４】
上記の表１及び表２から、A(n=6,k=6)=1683は１０ビットの中に当てはまらないことがわかる。１０ビットは１０２４のエントリ、例えば、値０〜１０２３に対応する。しかし、新たなオフセットU(n=6,k=6)は１０ビットの中に当てはまる。正確なインデクシング／デインデクシングを成功させるためにはインデクシングオフセットを正確に計算する必要があるので、オフセットA(6,6)が１０２３で飽和するか、又は不正確な低い値で完了することは許されない。
【０１３５】
以前の（ＩＥＴＦ／ＯＰＵＳ−Ａｕｄｉｏ  ＰＶＱ−従来の技術）再帰は
A(n,k)=A(n,k-1)+A(n-1,k-1)+A(n-1,k)
である。これは３つの追加の項を有するため、４つの項が追加される新たなU(n,k)再帰と比較して、特に高いn又は高いkに関しては計算がわずかに速くなる。
【０１３６】
再帰効率を保ち且つ必要に応じて低いダイナミックレンジを維持するために、別の実施形態では、好適な混合再帰を定義することが可能であり、混合再帰の場合、U(n,KMAX)は、以前のA(n,低いk)オフセット値の関数であり、Bビット語のレンジ限界に近いダイナミック再帰データに関してのみ使用される。これは、通常、N行ベース再帰における最終列KMAXに関しては真である。表３では、最終エントリが１０ビットを超える表１と比較して、オフセットは１０ビットに収まっていることがわかる。
【０１３７】
2020024431.tif 000008
表３  効率がよく且つレンジが保障されたインデクシング再帰のために計算された混合A(n,k)及び最終k列U(n,6=KMAX)オフセット。
【０１３８】
尚、通常、ダイナミックレンジの支障を引き起こすのは最終n行NMAX（この場合は６）及び最高のk（この場合はk=6）である。しかし、場合によっては、例えば、読み取り専用再帰計算において、除算の分子がハードウェアビット限界に近いときに、最後から２番目の行（NMAX-1）がレンジの問題を引き起こすこともある。
【０１３９】
ＭＰＶＱ方式に関する上記の再帰関係の導出を付録Ｂで確認できる。
【０１４０】
従来の技術のＰＶＱインデクシング方式の一例が表４に示される。この場合、最大インデックス値A(n,k)+A(k+1)-1は、例えば、２３２より小さくなければならない。従来の技術のＯＰＵＳ／ＣＥＬＴでは、符号切り替え［｛＋，０｝／−］を伴う表４の方式が使用される。注：ａ）ベクトル[-2,-1,1]；ｂ）インデックス２５〜４０に関して、位置p0における０のデインデクシングは、p1では最終的には正の値又は負の値又は０になってもよい；ｃ）p0正の決定限界。
【０１４１】
［｛＋，０｝／−］ＰＶＱインデクシングＰＶＱ再帰デインデクシング方式ＰＶＱ（n=3,k=4）、NPVQ=66による従来のＰＶＱ−インデクシング、［｛−，０｝／＋］従来のインデクシング（青色、白色）セルpX=３次元ベクトル[p0,p1,p2]における位置、k=4単位パルスを符号化でき、例えば、復号化されたインデックス７→ベクトル[-2,-1,1]であり、符号を判定するためにオフセットA(n,k)が使用され、それらのオフセットからサイズを判定するために、関係NPVQ(n=3,k=4)=A(n,k)+A(n,k+1)が使用される。
【０１４２】
2020024431.tif 000009
2020024431.tif 000010
2020024431.tif 000011
表４  従来のＰＶＱインデクシング方式の例。
【０１４３】
AとUの関係は、MPVQ(3,5)の例に関して、先行符号再帰解法を使用して、表５に図式的に示される。NPVQ(n=3,k=5)=2*NMPVQ(3,5)=2*51=102となり、式中、「２」は、ここで事前抽出される先行符号ビットに対応する。ベクトルPVQ-vec=[p0,p1,p2]、例えば、復号化されたインデックス８は[3,-1,1]、和(abs(PVQ-vec))=5である。以下の表５では、ここで事前抽出される初期符号は正（＋）であり、すなわち、以下に示す値p0は常に０以上である。この例において、次の先行符号は、2*U(n,k)個の区分のＬＳＢビットに記憶される。
【０１４４】
2020024431.tif 000012
2020024431.tif 000013
表５  例  MPVQ(3,5)ＬＳＢに基づく先行符号列挙。
【０１４５】
表６は、表５に従ったインデックス構成の例を示す。
【０１４６】
2020024431.tif 000014
2020024431.tif 000015
表６  MPVQ(3,5)ＬＳＢに基づく先行符号列挙の例、インデックス構成例。
【０１４７】
尚、すべてのn,kに対してA(n,k+1)を2*NMPVQ(n,k)ビット限界（例えば、３２ビット）の中で保障なく計算することは不可能であるので、表５のＰＶＱサイズは、ここではNMPVQ=1+U(n,k)+U(n,K+1)を使用して計算されなければならない。従来の技術は、PVQ-size=A(n,K+1)+A(n,k)を使用するか、あるいはＭＯＰＳのコストの高い組み合わせ関数又は記憶された値のコストの高いＲＯＭテーブルルックアップを使用する非零要素の合計を使用する。
【０１４８】
図５（先行符号の区分化位置決め）及び図２（先行符号のＬＳＢ位置決め）の基本再帰の概要では、A(n,k)を1+2*U(n,k)とみなすこともできる。
【０１４９】
ここで提示される技術の別の部分では、符号の符号化位置の事前抽出による最適化ＭＰＶＱインデクシングが説明される。符号の符号化位置encode_sign[0...N-1]のベクトルへのＭＰＶＱ先行符号、並びにその位置で符号化すべき実際の符号及び残存初期先行符号を事前抽出することによって符号化器側ＭＰＶＱインデックス合成内部ループを最適化することも可能である。しかし、このためには、前処理符号シフト関数を実行しなければならず、パルス数が少ない場合、そのコストは高くなるだろう。しかし、場合によっては、インデックス合成の内部ループはいっそう容易になり、例えば、ＤＳＰパイプライン化に関して強力に最適化されることが可能であるので、ＭＰＶＱインデクシングを実現することは好適な方法であるといえる。
【０１５０】
以下の符号事前シフトの例はN=8及びK=13を利用する。
2020024431.tif 000016
【０１５１】
上記の例では、符号化は右から左へ、すなわち、位置（N-1）から位置０に向かって実行される。
【０１５２】
事前シフト関数は、第１の符号を変数「lead_sign」へシフトし、PVQ-vecの残存する符号は次の（左側の）非零位置へシフトされる。PVQ-vecの最後の非零位置は、encode_signベクトルでは常に０の値を獲得する。
【０１５３】
図１８は、事前抽出された先行符号を使用するＭＰＶＱインデックス合成の一実施形態を示す。図１８には、このＭＰＶＱインデックス合成の実現形態に関して詳細なブロック図の実施形態が示される。事前抽出された先行符号及びＭＰＶＱサイズによってＭＰＶＱインデックスを合成するための手順はステップ７００で開始される。本実施形態は、ＬＳＢ位置の次の符号による解法に基づく。入力パラメータは、N、K及び「vec」としてのＰＶＱベクトルである。ステップ７０２は、既知のオフセット再帰ベースケースを伴う初期化ステップであり、n=1を設定する。ステップ７０４で、位置パラメータはN-1に設定され、すなわち、ベクトルは、最終位置から始めて、最初に向かって終端から解析される。ステップ７０６で、累積インデックス及び累積パルスは０に設定される。最初に、ステップ７０８で符号が解析されるが、このことは以下に更に詳細に説明される。これにより、先行符号が判定され、符号ベクトルを利用可能である。ステップ７１０で、値は現在入力ベクトル係数と等しくなるように設定される。ステップ７１２〜７２０では、係数が非零である場合に、本実施形態ではＬＳＢを追加することにより、累積インデックスは係数の符号に適応される。ステップ７２２で、残存単位パルス及び現在次元と関連するオフセットに従って、累積インデックスが修正される。ステップ７２４の検査に従って、現在位置が非零である場合、すなわち、探索が入力ベクトルの前部にまだ到達していない場合、ステップ７２６及び７２８で新たな繰り返しが準備され、手順はステップ７１０に戻る。ベクトル全体が探索されていた場合には、ステップ７３０でMPVQ-SIZEが計算され、ステップ７３９で、出力インデックス、先行符号及びＭＰＶＱサイズが提供される。
【０１５４】
図１９は、符号抽出関数の一実施形態である。手順はステップ７４０で開始される。ステップ７４２で、初期化が実行され、正の先行符号を想定して符号化符号ベクトルに０係数が与えられ、初期非零係数の一次的位置は−１と設定され、位置番号０から開始される。ステップ７４４で、位置が最大に至っておらず、まだ先行符号が発見されていないかどうかが検査される。その通りである場合に、ステップ７４６で、現在位置のベクトル係数が０であるか否かが検査される。０である場合に、ステップ７５４で、現在位置は１ステップ前へ進められ、処理が反復される。現在ベクトル係数が非零の場合、手順はステップ７４８へ続き、ステップ７５０で、負の係数は負のlead_signをもたらす。ステップ７５２で、第１の非零係数の位置がinitial_posとして記録され、その後、手順はステップ７５４へ続く。ステップ７４４で、先行符号が発見されたと判定された場合に、手順はステップ７５６へ続き、符号ベクトルencode_sign手順は初期化される。ステップ７５８〜７６６は、非零係数に関して入力ベクトルを探索し続け、符号ベクトル中の対応する位置は、続く非零係数の符号を与えられる。すべての位置が検査され終わると、ステップ７６９で、先行符号及び符号ベクトルが返送される。
【０１５５】
この方式の利点は、先行符号の符号化位置の事前シフト又は事前特定により、インデクシング内部反復ループにおける先行符号のシャッフルを回避できることである。これは、分岐（ＩＦｓ／ＥＬＳＥｓ）を実現することのコストが大きい特定のハードウェアにおいて符号化内部ループを最適化することが望まれる場合に有益であるといえる。
【０１５６】
表７は、ＭＰＶＱ区分化先行符号反復の例を示す。NPVQ(n=3,k=5)=2*NMPVQ(3,5)=2*51=102であり、式中、「２」は、現時点で事前抽出された先行符号ビットに対応する。ベクトルPVQ-vec=[p0,p1,p2]であり、例えば、復号化インデックス８は[3,0,2]であり、sum(abs(PVQ-vec))=5となる。表７において、現時点で事前抽出された初期符号は正であり、この例で、2*U(n,k)初期振幅区分のロー／ハイ区分から導出された次の先行符号である。
【０１５７】
2020024431.tif 000017
2020024431.tif 000018
表７  MPVQ(3,5)区分化先行符号列挙の例。
【０１５８】
表８は、表７に従ったインデックス構成の例を示す。
【０１５９】
現時点で提示される技術の更に別の部分では、混合低ダイナミクス行専用再帰が説明される。k値が十分に低い場合に、以下に更に提示される新たな行専用再帰公式を使用して、オフセットマトリクスA(n,k)の所定の行nに関して必要とされるオフセットを計算することが可能である。新たな再帰公式の詳細な抜粋は付録Ｂに示される。ＰＶＱ差オフセットA(n,k)の所定の行nに関する一般再帰式は、２０１２従来技術ＩＥＴＦ／ＯＰＵＳ−Ａｕｄｉｏ符号で使用される。
A(n,k)=A(n,k-2)+((2*n-1)*A(n,k-1)-A(n,k-2)) /(k-1)
【０１６０】
2020024431.tif 000019
2020024431.tif 000020
表８  MPVQ(3,5)区分化先行符号列挙の例、インデックス構成例。
【０１６１】
上記の式のマッサージング（ｍａｓｓａｇｉｎｇ）及び操作により、新たな関係
U(n,k)=(A(n,k)-1)/2,
を使用して、新たな好適な低ダイナミックレンジ混合再帰公式
U(n,k)=U(n,k-2)+(n*A(n,k-1)-NMPVQ(n,k-2))/(k-1)
を取得でき、式中、NMPVQ(n,k)=1+U(n,k)+U(n,k+1)、（MPVQ(n,k)サイズ）である。
【０１６２】
ここで新たな分子項n*A(n,k-1)は、対応する従来の技術の分子項(2*n-1)*A(n,k-1)よりはるかに低いダイナミックレンジである。
【０１６３】
好適な解法では、k＞0の場合にA(n,k)は奇数であるという事実を使用することにより、行nに関する以前のA(n,k)のみを使用するために、この行専用再帰を更にマッサージングすることができる。そこで、新たな非常に効率のよい混合再帰公式
U(n,k)=A(n,k-2)＞＞1+(n*A(n,k-1)-(1+A(n,k-1)＞＞1+A(n,k-2)＞＞1))/(k-1)
を取得し、式中、「＞＞」は２による整数除算であり、多くのハードウェアにおいて低コストの右シフトである。
【０１６４】
これにより、従来の技術の行専用再帰より高いn及び高いkに対して、限定された精度で、例えば、６４ビット以内又は３２ビット以内又は３３ビット以内の高速行専用再帰を使用可能である。言い換えれば、行再帰に関してn又はkの範囲を拡大したので、新たなn*A(n,k-1)の項は、旧来の項2*n*A(n,k-1)より遅くオーバフロー／終結する。
【０１６５】
U(n,k)の結果のオフセットは、以前に使用されていたA(n,k)より低いダイナミクスを有するので、最適化行専用再帰のダイナミクスに関わる利点は、表２の縮小ダイナミックオフセットから間接的に見て取ることができ、また、表３の混合再帰オフセットでもわかる。
【０１６６】
ここで提示される技術の更に別の部分では、混合ＭＰＶＱ先行符号反復及びいずれかのレガシーＰＶＱ反復が説明される。それに代わる別の可能な列挙方式は、ベクトルの残存部分に関して、初期ＭＰＶＱ先行符号列挙段階及びそれに続く他の何らかの効率のよいＰＶＱ列挙方式を採用することである。言い換えれば、第２の先行符号が列挙されるべきである場合、その都度、使用されるＰＶＱ列挙方法をレガシー方式に切り替えることができる。初期先行符号ＭＰＶＱ段階は、レガシー短符号語方式より１ビット多いビットを使用することを可能にし、初期ＭＰＶＱ段階は、第１のＭＰＶＱ段階の後にオフセット（A,U）のダイナミクスを少なくとも１ビット少なくなるように縮小する。
【０１６７】
表９は、デインデクシング構造の一例、並びに第１のＭＰＶＱ段階と、その後に続く第２のＯＰＵＳ／ＩＥＴＦ−Ａｕｄｉｏ大きさ及び（サイズPVQ(n,k)=A(n,k)+A(n,k+1)）ベース列挙段階とのハイブリッドな組み合わせであるＭＰＶＱＨの結果とを示す。
【０１６８】
2020024431.tif 000021
2020024431.tif 000022
表９  MPVQH(3,5)ハイブリッド単一先行符号列挙の例。
【０１６９】
(n=3,k=5)の場合のＭＰＶＱの変形例。このハイブリッドバージョンは、単一先行符号反復インデクシング段階と、その後に続く従来の技術のＩＥＴＦ／ＯＰＵＳに類似する［｛−，０｝／＋］の大きさに基づくＰＶＱインデクシング段階セルとを使用し、NPVQ=2*NMPVQH=2*51=102となり、式中、「２」は、単一の初期単一抽出先行符号ビットに対応する。
【０１７０】
第１のMPVQ(n,k)段階を使用し、次に、第２の符号が追加されるべき場合に別のピラミッドベースＰＶＱ列挙段階（ＩＥＴＦ／ＯＰＵＳに類似する大きさ段階）を使用するハイブリッド方式の欠点は（先に例示したＭＰＶＱＨと同様に）、ＰＲＯＭ符号サイズがきわめて大きくなることと、反復ループ内でインデクシング方法を切り替えるために、クリティカル反復ループの中で更に別のＤＳＰサイクルを要求する更なる決定論理が必要になることである。また、いくつかのオフセットメモリを維持しなければならない。しかし、ハイブリッドＭＰＶＱ単一先行符号段階と、それに続く後続正規ＰＶＱ方式の段階とは、総合的な短符号語サイズを１ビット拡張するという利点、例えば、３２ビットから３３ビットに拡張するという利点も提供できる。
【０１７１】
以上説明した実施形態において、先行符号は、ベクトル中の最初の非零係数の符号として選択されていた。しかし、他の実施形態では、ベクトル中の最後の非零係数として先行符号を選択することも可能である。従って、先行符号は、整数入力ベクトル又は整数出力ベクトルの終端非零係数の符号である。終端非零係数は、整数入力ベクトル又は整数出力ベクトルの最初の非零係数及び最後の非零係数のうち一方である。先行符号を抽出することにより、残りのインデクシングを簡略化できる。顕著な理由の１つは、インデクシング方式を２分の１にまで縮小できることである。インデクシング前に、処理すべきベクトルの中にどれほどの数の非零係数が存在するかはわかっていない。しかし、常に終端非零係数は存在する。
【０１７２】
以上説明した実施形態において、整数入力ベクトルのインデクシングは最後の係数から開始され、最初の係数で終了すること、及びデインデクシングは整数出力ベクトルの最初の係数で開始され、最後の係数で終了するということも想定されていた。別の実施形態では、その代わりに、インデクシングは最初のベクトル係数で開始され、最後のベクトル係数で終了してもよく、デインデクシングは最後の係数で開始され、最初の係数で終了する。これに代わる終端非零係数の中の係数のいずれかとこれを組み合わせることができる。更なる実施形態では、インデクシングは、整数入力ベクトルの係数を何らかの所定の順序で取り上げてもよく、その場合、対応するデインデクシングは、整数出力ベクトルの係数を逆方向にたどる。ピラミッドベクトル量子化列挙方式及びピラミッドベクトル量子化列挙解除方式は、それに従って適応されてもよい。特定の一実施形態では、整数入力／出力ベクトル中の「位置」は、想定される処理順序における位置であることが可能であり、ベクトル自体の中の実際の位置に対応する必要はない。
【０１７３】
提案される技術は、特定の実施形態において、有線デバイス又は無線デバイスのいずれであってもよいユーザ端末又はユーザ機器に適用されてもよい。
【０１７４】
本明細書で使用される場合の非限定的な用語「ユーザ機器」（ＵＥ）及び「無線デバイス」は、移動電話、携帯電話、無線通信能力を備えるパーソナルデジタルアシスタント（ＰＤＡ）、スマートフォン、内部又は外部にモバイルブロードバンドモデムを備えるラップトップコンピュータ又はパーソナルコンピュータ、無線通信能力を有するタブレットＰＣ、目標デバイス、デバイスツーデバイスＵＥ、マシン型ＵＥ又はマシンツーマシン通信が可能なＵＥ、ｉＰＡＤ、顧客構内機器（ＣＰＥ）、ラップトップ組み込み機器（ＬＥＥ）、ラップトップ実装機器（ＬＭＥ）、ユニバーサルシリアルバス（ＵＳＢ）ドングル、ポータブル電子無線通信デバイス、無線通信能力を備えるセンサデバイスなどを表してもよい。特に、用語「ＵＥ」及び用語「無線デバイス」は、セルラ通信システム又は移動通信システムで無線ネットワークノードと通信するあらゆる種類の無線デバイス、あるいはセルラ通信システム又は移動通信システムの中における通信に関する何らかの関連規格に従った無線通信のための無線回路網を備えるあらゆるデバイスを含む非限定的な用語として解釈されるべきである。
【０１７５】
本明細書で使用される場合の用語「有線デバイス」は、ネットワークに有線接続するように構成又は準備されたあらゆるデバイスを表してもよい。特に、有線デバイスは、無線通信能力を備えているか又は備えていないかにかかわらず、有線接続するように構成されている場合の上記のデバイスのうち少なくともいくつかであってもよい。
【０１７６】
提案される技術は、特定の実施形態において、有線デバイス又は無線デバイスのいずれであってもよいネットワークノードに適用されてもよい。
【０１７７】
特定の実施形態において、ネットワークノードは無線ネットワークノードであることが可能である。本明細書で使用される場合の非限定的な用語「無線ネットワークノード」は、基地局、ネットワークコントローラなどのネットワーク制御ノード、無線ネットワークコントローラ、基地局コントローラなどを表してもよい。特に、用語「基地局」は、Ｎｏｄｅ  Ｂ又は進化型Ｎｏｄｅ  Ｂ（ｅＮＢ）などの標準化基地局を含み、マクロ／マイクロ／ピコ無線基地局、フェムト基地局としても知られるホーム基地局、リレーノード、中継局、無線アクセスポイント、基地トランシーバ局（ＢＴＳ）、更には１つ以上の遠隔無線ユニット（ＲＲＵ）を制御する無線制御ノードなどを更に含む異なる種類の無線基地局を含んでもよい。
【０１７８】
ネットワークノードは、特定の実施形態において、有線通信システムの中のネットワークノードであることが可能である。
【０１７９】
ＵＥ又はネットワークノードは、情報の送信及び／又は受信を含めて、１つ以上の他のノードと通信するための無線回路を更に含んでもよい。
【０１８０】
本明細書で説明される方法及びデバイスは多様な方法で組み合わせ可能且つ再配置可能であることが理解されるだろう。
【０１８１】
例えば、実施形態は、ハードウェアで実現されてもよく、適切な処理回路により実行するためにソフトウェアで実現されてもよく、あるいはハードウェアとソフトウェアの組み合わせで実現されてもよい。
【０１８２】
本明細書で説明されるステップ、機能、手順、モジュール及び／又はブロックは、汎用電子回路網及び特定用途向け回路網の双方を含めて、ディスクリート回路技術又は集積回路技術のような従来のいずれかの技術を使用してハードウェアで実現されてもよい。
【０１８３】
特定の例は、１つ以上の適切に構成されたデジタルシグナルプロセッサ及び他の既知の電子回路、例えば、特殊化機能を実行するように相互に接続された個別の論理ゲート又は特定用途向け集積回路（ＡＳＩＣ）を含む。
【０１８４】
あるいは、本明細書で説明されるステップ、機能、手順、モジュール及び／又はブロックのうち少なくともいくつかは、１つ以上のプロセッサ又は処理ユニットなどの適切な処理回路網により実行するためのコンピュータプログラムのようなソフトウェアで実現されてもよい。
【０１８５】
従って、本明細書で提示されるフローチャートは、１つ以上のプロセッサにより実行される場合にコンピュータフローチャートとみなされてもよい。対応する装置は機能モジュール群として定義されてもよく、プロセッサにより実行される各ステップは１つの機能モジュールに対応する。この場合、機能モジュールは、プロセッサで実行されるコンピュータプログラムとして実現される。
【０１８６】
処理回路網の例は、１つ以上のマイクロプロセッサ、１つ以上のデジタルシグナルプロセッサ（ＤＳＰ）、１つ以上の中央処理装置（ＣＰＵ）、ビデオアクセラレーションハードウェア及び／又は１つ以上のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）又は１つ以上のプログラマブルロジックコントローラ（ＰＬＣ）のような何らかの適切なプログラム可能論理回路網を含むが、それらに限定されない。
【０１８７】
また、提案される技術が実現される従来の何らかのデバイス又はユニットの汎用処理能力を再利用することも可能だろうということを理解すべきである。更に、既存のソフトウェアの再プログラミングにより又は新たなソフトウェアコンポーネントの追加により既存のソフトウェアを再利用することも可能だろう。
【０１８８】
提案される技術は、オーディオ／ビデオ信号を符号化するように構成された符号化器を提供し、符号化器は、オーディオ／ビデオ信号サンプルを表す整数入力ベクトルを取得するように構成され、前記整数入力ベクトルは複数の整数値係数を有し、符号化器は、前記整数入力ベクトルから先行符号を抽出するように更に構成され、前記先行符号は、入力ベクトル中の終端非零係数の符号であり、前記終端非零係数は、整数入力ベクトル中の最初の非零係数及び最後の非零係数のうち一方であり、符号化器は、前記整数入力ベクトルをピラミッドベクトル量子化列挙方式によって出力インデックスにインデクシングするように更に構成され、前記出力インデックスは、前記先行符号と共にオーディオ／ビデオ信号サンプルを表し、ピラミッドベクトル量子化列挙方式は、終端非零係数の符号を無視するように設計され、符号化器は、先行符号を第１の符号語として且つ出力インデックスを第２の符号語として出力ビットストリームへ出力するように更に構成される。
【０１８９】
特定の一例において、符号化器はプロセッサ及びメモリを備える。メモリは、プロセッサにより実行可能な命令を備え、それにより、符号化器／プロセッサは、オーディオ／ビデオ信号サンプルを表す整数入力ベクトルを取得するように動作し、前記整数入力ベクトルは複数の整数値係数を有し、符号化器／プロセッサは、前記整数入力ベクトルから先行符号を抽出するように更に動作し、前記先行符号は、入力ベクトル中の終端非零係数の符号であり、前記終端非零係数は、整数入力ベクトル中の最初の非零係数及び最後の非零係数のうち一方であり、符号化器／プロセッサは、前記整数入力ベクトルをピラミッドベクトル量子化列挙方式によって出力インデックスにインデクシングするように更に動作し、前記出力インデックスは、先行符号と共にオーディオ／ビデオ信号サンプルを表し、ピラミッドベクトル量子化列挙方式は、終端非零係数の符号を無視するように設計され、符号化器／プロセッサは、先行符号を第１の符号語として且つ出力インデックスを第２の符号語として出力ビットストリームへ出力するように更に動作する。
【０１９０】
提案される技術は、ピラミッドベクトル量子化によりオーディオ／ビデオサンプルにデインデクシングするように構成された復号器を更に提供し、復号器は、入力ビットストリームから先行符号を第１の符号語として受信し、入力インデックスを第２の符号語として受信するように構成され、先行符号及び入力インデックスはオーディオ／ビデオ信号サンプルを表し、先行符号は、オーディオ／ビデオ信号サンプルを表す符号であって、作成されるべき整数出力ベクトル中の終端非零係数の符号であり、整数出力ベクトルは複数の整数値係数を有し、終端非零係数は、整数出力ベクトル中の最初の非零係数及び最後の非零係数のうち一方であり、復号器は、入力インデックスをピラミッドベクトル量子化列挙解除方式によって整数出力ベクトルにデインデクシングするように更に構成され、列挙方式により作成される入力インデックスは、終端非零係数の符号を無視するように設計され、復号器は、終端非零係数の符号を受信された先行符号に従って割り当て、ベクトルを出力するように更に構成される。
【０１９１】
特定の一例において、復号器はプロセッサ及びメモリを備える。メモリは、プロセッサにより実行可能な命令を備え、それにより、復号器／プロセッサは、入力ビットストリームから先行符号を第１の符号語として受信し、入力インデックスを第２の符号語として受信するように動作し、先行符号及び入力インデックスはオーディオ／ビデオ信号サンプルを表し、先行符号は、オーディオ／ビデオ信号サンプルを表す符号であって、作成されるべき整数出力ベクトル中の終端非零係数の符号であり、整数出力ベクトルは複数の整数値係数を有し、終端非零係数は、整数出力ベクトル中の最初の非零係数及び最後の非零係数のうち一方であり、復号器／プロセッサは、入力インデックスをピラミッドベクトル量子化列挙解除方式によって整数出力ベクトルにデインデクシングするように更に動作し、列挙方式により作成される入力インデックスは、終端非零係数の符号を無視するように設計され、復号器／プロセッサは、終端非零係数の符号を受信された先行符号に従って割り当て、ベクトルを出力するように更に動作する。
【０１９２】
以下に、図２０を参照して、コンピュータ実現形態の一例を説明する。符号化器１０は、１つ以上のプロセッサ８００などの処理回路網及びメモリ８１０を備える。この特定の例では、本明細書で説明されるステップ、機能、手順、モジュール及び／又はブロックのうち少なくともいくつかは、処理回路網により実行するためにメモリにロードされるコンピュータプログラム８２０〜８２６で実現される。処理回路網及びメモリは、通常のソフトウェア実行を可能にするために互いに接続される。オプションの入力／出力デバイス８０４〜８０８も、入力パラメータ及び／又は生成される出力パラメータなどの関連データの入力及び／又は出力を可能にするために処理回路網及び／又はメモリに相互接続されてよい。
【０１９３】
以下に、図２１を参照して、コンピュータ実現形態の別の例を説明する。復号器６０は、１つ以上のプロセッサ８５０などの処理回路網及びメモリ８６０を備える。この特定の例では、本明細書で説明されるステップ、機能、手順、モジュール及び／又はブロックのうち少なくともいくつかは、処理回路網により実行するためにメモリにロードされるコンピュータプログラム８７０〜８７６で実現される。処理回路網及びメモリは、通常のソフトウェア実行を可能にするために互いに接続される。オプションの入力／出力デバイス８５４〜８５８も、入力パラメータ及び／又は生成される出力パラメータなどの関連データの入力及び／又は出力を可能にするために処理回路網及び／又はメモリに相互接続されてよい。
【０１９４】
用語「コンピュータ」は、一般的な意味で、特定の処理、判定又は計算タスクを実行するためにプログラムコード又はコンピュータプログラム命令を実行することが可能な何らかのシステム又はデバイスとして解釈されるべきである。
【０１９５】
特定の一実施形態において、コンピュータプログラムは命令を備え、命令は、少なくとも１つのプロセッサにより実行される場合に、プロセッサに、前記オーディオ／ビデオ信号サンプルを表す整数入力ベクトルを取得させ、整数入力ベクトルは複数の整数値係数を有し、命令は、更に、プロセッサに、整数入力ベクトルから先行符号を抽出させ、先行符号は、整数入力ベクトル中の終端非零係数の符号であり、終端非零係数は、整数入力ベクトル中の最初の非零係数及び最後の非零係数のうち一方であり、命令は、更に、プロセッサに、整数入力ベクトルをピラミッドベクトル量子化列挙方式によって出力インデックスにインデクシングさせ、出力インデックスは、先行符号と共にオーディオ／ビデオ信号サンプルを表し、ピラミッドベクトル量子化列挙方式は終端非零係数の符号を無視し、命令は、更に、プロセッサに、第１の符号語としての先行符号及び第２の符号語としての出力インデックスを出力ビットストリームへ出力させる。
【０１９６】
特定の一実施形態において、コンピュータプログラムは命令を備え、命令は、少なくとも１つのプロセッサにより実行される場合に、プロセッサに、入力ビットストリームから第１の符号語としての先行符号及び第２の符号語としての入力インデックスを受信させ、先行符号及び入力インデックスはオーディオ／ビデオ信号サンプルを表し、先行符号は、オーディオ／ビデオ信号サンプルを表す符号であって、作成されるべき整数出力ベクトル中の終端非零係数の符号であり、整数出力ベクトルは複数の整数値係数を有し、終端非零係数は、整数出力ベクトル中の最初の非零係数及び最後の非零係数のうち一方であり、命令は、更に、プロセッサに、入力インデックスをピラミッドベクトル量子化列挙解除方式によって整数出力ベクトルにデインデクシングさせ、入力インデックスは、前記終端非零係数の符号を無視する列挙方式により作成され、命令は、更に、プロセッサに、終端非零係数の符号を受信された先行符号に従って割り当てさせ、整数出力ベクトルを出力させる。
【０１９７】
提案される技術は、コンピュータプログラムを備えるキャリアを更に提供し、キャリアは、電子信号、光信号、電磁信号、磁気信号、電気信号、無線信号、マイクロ波信号又はコンピュータ可読記憶媒体のうち１つである。
【０１９８】
従って、ソフトウェアプログラム又はコンピュータプログラムは、通常はコンピュータ可読媒体で搬送されるか又はコンピュータ可読媒体に記憶されるコンピュータプログラムとして実現されてもよい。コンピュータ可読媒体は、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、コンパクトディスク（ＣＤ）、デジタルバーサタイルディスク（ＤＶＤ）、ブルーレイディスク、ユニバーサルシリアルバス（ＵＳＢ）メモリ、ハードディスクドライブ（ＨＤＤ）記憶デバイス、フラッシュメモリ、磁気テープ又は他の何らかの従来のメモリデバイスを含む１つ以上の取り外し可能な又は取り外し不可能なメモリデバイスを含んでもよいが、それらに限定されない。従って、コンピュータプログラムは、コンピュータ又はそれと同等の処理デバイスの処理回路網により実行するために、コンピュータ又はそれと同等の処理デバイスのオペレーティングメモリにロードされてもよい。
【０１９９】
本明細書で指示されるように、符号化器は機能モジュール群として定義されてもよく、それらの機能モジュールは、少なくとも１つのプロセッサで実行されるコンピュータプログラムとして実現される。
【０２００】
図２２は、機能モジュール群８３０〜８３６を備える符号化器１０の一例を示す概略ブロック図である。
【０２０１】
メモリ８１０に常駐するコンピュータプログラムは、プロセッサ８００により実行される場合に、本明細書で説明されるステップ及び／又はタスクの少なくとも一部を実行するように構成された適切な機能モジュール８３０〜８３６として編成されてもよい。そのような機能モジュール８３０〜８３６の一例が図２２に示される。
【０２０２】
本明細書で指示されるように、復号器は機能モジュール群として定義されてもよく、それらの機能モジュールは、少なくとも１つのプロセッサで実行されるコンピュータプログラムとして実現される。
【０２０３】
図２３は、機能モジュール群８８０〜８８６を備える復号器６０の一例を示す概略ブロック図である。
【０２０４】
メモリ８６０に常駐するコンピュータプログラムは、プロセッサ８５０により実行される場合に、本明細書で説明されるステップ及び／又はタスクの少なくとも一部を実行するように構成された適切な機能モジュール８８０〜８８６として編成されてもよい。そのような機能モジュール８８０〜８８６の一例が図２３に示される。
【０２０５】
提案される方式は、短符号語に基づくピラミッドベクトル量子化方式の性能を改善する。この方式は、必要とされるインデクシングオフセットのダイナミックレンジを縮小する。ダイナミックレンジの縮小に伴う望ましい副次効果は、所定のＨＷに対して、重大なペナルティなく１ビット大きい「短」ＰＶＱ符号語を使用できることである。
【０２０６】
これにより、Ｂビット符号なし演算を支援するＤＳＰハードウェアでＢ＋１ビットＰＶＱ符号語方式を使用することが可能になり、また、符号付きＢビット整数演算（Ｂ−１ビットの大きさによる）のみを支援するＤＳＰハードウェアでＢビットＰＶＱ符号語方式を実現することが可能になる。
【０２０７】
更に、１ビット大きい符号語を効率よく符号化可能であるため、分割側情報を送信するために必要とされるオーバヘッドが減少される。次元N=128でk個の均等に分散したパルスのＰＶＱ符号化を例にとると、２値次元分割ごとに関係を符号化するために５ビットが使用され、次元N=128にわたり、オーディオコーデックビット割り当てアルゴリズムにより７１ビットがＰＶＱに割り当てられた。
【０２０８】
最適の無制限ＰＶＱは次の結果を与える。
log2(NPVQ(N=128,k=12))=67.2ビット、
log2(NMPVQ(N=128,k=12+1))=71.5ビット
67.2＜71＜71.5であり、すなわち、N=128にわたり最適無制限ＰＶＱを使用すると、１２の単位パルスが可能であり、その結果、パルス密度は12/128となる。
【０２０９】
レガシーB=32ビット方式は、ほぼ等しい次元[N1=43,N2=43,N3=42]への２回の分割を必要とするので、
2*log2(NPVQ(43,4))+log2(NPVQ(42,4))+2*5=63.25+2*5=73.25ビット
となり、７３．２５はビット予定７１を超える。パルスの数を１減少させて１１にしようと試みることにより、次の式が取得される。
2*log2(NPVQ(43,4))+log2(NPVQ(42,3))+2*5=58.84+2*5=68.84＜71
この結果得られるパルス密度は１１／１２８となる。
【０２１０】
レガシーB=32ビット方式は、不均一分割次元[N1=64,N2=32,N3=32]への２回の分割を必要とするので、
log2(NPVQ(64,6))+2*log2(NPVQ(32,3))+2*5=53.34+2*5=73.34ビット
となり、７３．２５はビット予定７１を超える。パルスの数を１減少させて１１にしようと試みることにより、次の式が取得される。
2*log2(NPVQ(32,3))+log2(NPVQ(64,5))+2*5=58.92+2*5=68.9＜71
この結果得られるパルス密度は１１／１２８となる。
【０２１１】
新規な（B+1）３３ビットＭＰＶＱ方式は、[N1=64,N2=64]への１回の分割を必要とする。
2*log2(2*NMPVQ(64,6))+5=2*32.51+5=70.02ビット＜71
式中、
2*NMPVQ(64,6)=NPVQ(64,6)=32.51＞B
この結果得られるパルス密度は１２／１２８となる。言い換えれば、次元N=128のベクトルに割り当てられる７１ビットが与えられた場合、以前の３２ビット符号語方式は１１パルスしか提供できないが、新規な３３ビット符号語方式は１２個のパルスを提供できる。
【０２１２】
符号化範囲が１ビット大きくなって３３ビットになることによって、追加のベクトル分割のオーバヘッドを（多くの場合に）減少できるので、新規な方式は、オーディオコーデックの当初のビット割り当て命令に従ったビットの割り当てに更に適切に適合される。
【０２１３】
オーディオコーデックビット割り当て方式の一例は、ＩＴＵ−ＴＧ．７１９仕様、第７．５．２章又はＯＰＵＳ  ＲＦＣ７１６、第４．３．４．１章で確認できる。
【０２１４】
以上説明した実施形態は単なる例として提示されたにすぎず、提案される技術がそれらに限定されないことを理解すべきである。添付の特許請求の範囲により定義される本発明の範囲から逸脱せずに、種々の変形、組み合わせ及び変更が実施されてもよいことは当業者には理解されるだろう。特に、異なる実施形態における異なる部分の解法は、技術的に可能であれば、他の構成で組み合わせることができる。
【０２１５】
略語
VQ    ベクトル量子化器／量子化
PVQ    ピラミッドVQ
PVQ(n,k)  次元n及び単位パルスの数kを有するPVQ構造、PVQ(n,k)はkと等しいＬ１ノルムを有するピラミッド構造である。
MPVQ  先行符号モジュールPVQ
MPVQ(n,k)  次元n及び単位パルスの数kを有するMPVQ構造、MPVQ(n,k)構造はスライスされたPVQ(n,k)ピラミッド構造であり、MPVQ(n,k)のＬ１ノルムはkである。
NPVQ(N,K)  PVQ（次元N、単位パルスの数K）のサイズ
NMPVQ(N,K)  MPVQ（次元N，単位パルスの数K）のサイズ
SIMD    単一命令多重データ（DSP命令カテゴリ）
DSP    デジタルシグナルプロセッサ
HW    ハードウェア
SW    ソフトウェア
N、dim    次元
n、l    現在次元
k、K    PVQ(n,k)及びMPVQ(n,k)の単位パルスの数
KMAX    最大K値
B    効率のよい動作のための目標ハードウェアシステムにおけるビット限界、今日のプロセッサでは通常（１６）、３２又は６４ビット
R    サンプルごとのビット数又は係数ごとのビット数
X    目標ベクトル
r、vec  形状ベクトル（残存ベクトルと呼ばれる場合もある）
G    目標ベクトルをスケーリングするための利得（スカラ又はベクトル）
RAM    ランダムアクセスメモリ
OPS    毎秒演算回数
MOPS    １００万命令毎秒
P-ROM    プログラムROM
ROM    読み取り専用メモリ（通常、事前記憶データ）
LSB    最下位ビット
MSB    最上位ビット
LP    線形予測
【０２１６】
付録Ａ
本付録には、従来の技術の状態を確認するために、ＩＥＴＦ／ＯＰＵＳ  ａｕｄｉｏ  ＰＶＱの章からの関連事項の抜粋が含まれる。改善され、最適化されたＯＰＵＳ−Ａｕｄｉｏ  ＰＶＱインデクシング／デインデクシングアルゴリズムは、ＲＦＣ６７１６のテキスト説明では説明されないが、付属のＩＥＴＦ／ＯＰＵＳ−Ａｕｄｉｏ  ＲＦＣ６７１６  ＰＶＱ−デインデクシングではｃ−コードファイル（ｃｗｒｓ．ｃ）として提供されるいくつかの最適化を含む。
「ＰＶＱ復号化
ＰＶＱベクトルの復号化はｄｅｃｏｄｅ＿ｐｕｌｓｅｓ（）（ｃｗｒｓ．ｃ）で実現される。固有符号語インデックスは、均一に分散する０とV(N,K)−１との間の整数値として復号化され、V(N,K)は、N個のサンプル中のK個のパルスの可能な組み合わせの数である。次に、インデックスは、［ＰＶＱ］で指定されるのと同一の方法でベクトルに変換される。インデクシングはV(N,K)の計算に基づく（[PVQ]ではN(L,K)と示される）。
【０２１７】
組み合わせの数は、V(N,K)=N(N-1,K)+V(N,K-1)+V(N-1,K-1)として再帰的に計算可能であり、V(N,0)=1及びV(0,K)=0、K!=0である。事前計算テーブル及び再帰公式化の直接使用を含めて、V(N,K)を計算する多くの異なる方法が存在する。基準実現形態は、任意の行を初期化するための代替一変量反復及び小さなNに対する直接多項式解法と共に、メモリ使用時にセーブするために、再帰的公式化を一度に１行（又は１列）適用する。これらの方法はすべて同等であり、速度、メモリ利用度及び符号サイズに関して様々に異なるトレードオフを有する。実現形態は、数学的定義と同等であるならば、好適であるどの方法を使用してもよい。
【０２１８】
復号化ベクトルXは次のように回復される。ft=V(N,K)として、第４．１．５章の手順によって復号化されるインデックスをiとすると、0≦iV(N,K)である。k=Kとする。そこで、jを０以上、（N-1）以下として、次のことを実行する。
１．p=(V(N-j-1,k)+N(N-j,k))/2とする。
２．i＜pである場合、sgn=1とし、そうでない場合には、sgn=-1とし且つi=i-pと設定する。
３．k0=k及びp=p-V(N-j-1,k)と設定する。
４．p＞iである場合、k=k-1及びp=p-V(N-j-1,k)と設定する。
５．X[j]=sgn*(k0-k)及びi=i-pと設定する。
【０２１９】
次に、復号化ベクトルXのＬ２ノルムが１に等しくなるように、復号化ベクトルXは正規化される。
【０２２０】
ＩＥＴＦ／ＯＰＵＳ−ａｕｄｉｏ  ＰＶＱ符号語の限界及び分割
「分割復号化
ＰＶＱ符号ベクトルを復号化する場合に多精度計算の必要を回避するために、コードブックに許容される最大サイズは３２ビットである。これより大型のコードブックが必要とされる場合、ベクトルは、サイズN/2の２つのサブベクトルに分割される。現在の割り当てから導出される精度を有する量子化利得ベクトルは、分割の各側の相対利得を表すためにエントロピー符号化され、復号化処理全体は再帰的に適用される。LM+1回の分割という限界まで、多数の分割レベルが適用されてもよい。ステレオオーディオの合同符号化には同一の再帰メカニズムが適用される。」
【０２２１】
ＩＥＴＦ／ＯＰＵＳ  Ａｕｄｉｏ  ＲＦＣ−６７１６  ＰＶＱ探索
「球形ベクトル量子化
ＣＥＬＴは、ピッチ予測器により予測されなかった各帯域のスペクトルの詳細を量子化するためにピラミッドベクトル量子化器（ＰＶＱ）［ＰＶＱ］を使用する。ＰＶＱコードブックは、N個のサンプルから成るベクトル中のK個の符号付きパルスのすべての和から構成され、同一の位置の２つのパルスは同一の符号を有することが要求される。従って、コードブックは、sum(abs(y(j)))=Kを満たすN個の次元のすべての整数符号ベクトルyを含む。
【０２２２】
割り当てられた十分な数のビットが存在する帯域では、第５．３．２章の正規化の結果得られた単位ベクトルを直接符号化するためにＰＶＱが使用される。ＰＶＱ符号ベクトルｙが与えられた場合、単位ベクトルＸはX=y/||y||として取得され、式中、||.||はＬ２ノルムを示す。」
【０２２３】
「ＰＶＱ探索
最良の符号ベクトルyの探索は、alg_quant()(vq.c)により実行される。探索のためのいくつかの可能な方式があり、それらの方式では、品質と複雑度とのトレードオフが図られる。基準実現形態で使用される方法は、正規化スペクトルXをK-1個のパルスのコードブックピラミッドに投影することにより初期符号語y1を計算する。
y0=truncate_towards_zero((K-1)*X/sum(abs(X)))
N、K及び入力データに応じて、初期符号語y0は、0〜K-1個の非零値を含んでもよい。最後のパルスを除き、すべての残存パルスは、yとXとの正規化相関を最小限にする貪欲探索によって繰り返し発見される。
T
J=-X*y/||y||
以上説明した探索は、品質と計算コストとの適切なトレードオフであると考えられる。しかし、ＰＶＱコードブックを探索する他の方法も可能であり、実現に際しては、他のどのような探索方法を使用してもよい。celt/vq.cのalg_quant()を参照。」
【０２２４】
ＩＥＴＦ／ＯＰＵＳ  Ａｕｄｉｏ  ＲＦＣ６７１６  ＰＶＱインデクシング
「ＰＶＱインデクシング
符号化すべきベクトルXは、0≦i＜V(N,K)となるように次のようにインデックスiに変換される。次に、（N-1）以下、０以上のjに対して、次のことを実行する。
１．k＞0である場合、i=i+(V(N-j-1,k-1)+V(N-j,k-1))/2と設定する。
２．k=k+abs(X[j])と設定する。
３．X[j]＜0である場合、i=i+(V(N-j-1,k)+V(N-j,k))/2と設定する。
【０２２５】
次に、ft=V(N,K)として、第５．１．４章の手順を使用してインデックスiは符号化される。
【０２２６】
付録Ｂ
ＭＰＶＱ関連再帰式の導出
フィシャーの公式を使用するU(n,k)とM(n,k)=NMPVQ(n,k)とのサイズ関係の導出：
k個の単位パルスを有する次元nのＰＶＱベクトルの数であるNPVQ(n,k)の短縮表記としてN(n,k)を使用する。
【０２２７】
フィッシャーの１９８６年当時の当初のＰＶＱ再帰は、
N(n,k)=N(n-1,k)+N(n-1,k-1)+N(n-1,k)    （１）
である。
M(n,k)=N(n,k)/2と定義する。    （２）
M(n,k)は、NMPVQ(n,k)を表す短縮表記として以下のように使用される。
【０２２８】
正の初期符号を有するＰＶＱベクトルの数であるM(n,k)は、完全ＰＶＱピラミッドN(n,k)のエントリの数の２分の１である。
U(n,k)をsum(j=1,j=k-1,M(n-1,j)と定義する。    （３）
「k」の初期位置値を有するベクトルを除き且つ「０」の初期位置値を有するベクトルを除く残存先行＋（正）符号を有するベクトルの数。
M(n,k)=1+2*U(n,k)+M(n-1,k);    （４）
k=KMAXの場合に１、新たな／次の先行符号を有するベクトルの数に関して可能なただ１つのそのような先行ベクトル2*U(n,k)（新たな／次の先行符号が正又は負であるために「２」）（「（U(n,k)」ベクトルは初期正振幅[KMAX-1,KMAX-2...1]を有し、先行０値を有する残存ベクトルに関してM(n-1,k)
（M(n,k)=NMPVQ(n,k)と同等）
NMPVQ(n,k)=1+2*U(n,k)+NMPVQ(n-1,k);    （４ｂ）
M(n,k)-M(n-1,k)=1+2*U(n,k)=A(n,k)    （５）
（１）、（２）、（５）を組み合わせると、
M(n-1,k)=U(n,k+1)-U(n,k)    （６）
（４）、（６）を組み合わせると、
M(n,k)=1+U(n,k)+U(n,k+1)    （７）
ここで、U(n,k)及びU(n,k+1)の双方が＜M(n,k)（５）であるように、（７）をサイズ計算に使用でき、差（５）（A(n,k)）は、振幅オフセット反復に依然として使用でき、A(n,KMAX+1)のようにA(n,KMAX)までのオフセットにのみ使用される場合に、M(n,KMAX)を超えてもよく、従って、精度が限定されたハードウェアで数値の問題を引き起こしうる。
【０２２９】
U(n,k)に関する直接行計算再帰の導出
U(n,k)=(A(n,k)-1)/2  （式（５）から）
ＣＥＬＴ／ＯＰＵＳ−Ａｕｄｉｏで使用されるＰＶＱ差行A(n,k)に関する一般式
は次の通りである。
A(n,k)=A(n,k-2)+((2*n-1)*A(n,k-1)-A(n,k-2))/(k-1)  （８）
（５）、（８）を組み合わせると、
U(n,k)=((2*n-1)*(U(n,k-1)+(k-2)*U(n,k-2)+n-1)/(k-1)  （９）
あるいは、混合再帰を可能にすると、
U(n,k)=(A(n,k-2)-1)/2+((2*n-1)*A(n,k-1)-A(n,k-2))/(2*(k-1))  （１０）
（８及び９、１０）の分子のダイナミックレンジが高いため、特に精度が限定された演算システム（例えば、３２ビットシステム）においては、この直接関数を評価する場合に特別な注意を払わなければならない。
【０２３０】
（８）はＩＥＴＦ／ＯＰＵＳ及び元来のＣＥＬＴで使用される。
【０２３１】
先行するすべてのA(n,k＜KMAX+1)が十分に低い値を有することは事前にわかっているので、（１０）はU(n,KMAX+1)のＭＰＶＱシステム計算で使用できる。
【０２３２】
（１０）を更に簡略化できる（k＞1の場合、A(n,k)は常に奇数であるため）。
U(n,k)=floor(A(n,k-2)/2)+(n*A(n,k-1)-(floor(A(n,k-1)/2)+floor(A(n,k-2)/2+1)))/(k-1)    （１１）
又はU(n,k)=U(n,k-2)+(n*A(n,k-1)-NMPVQ(n,k-2))/(k-1)    （１１ｂ）
【０２３３】
ＭＰＶＱ  n,k-マトリクス再帰関係
フィッシャーの関係（１）から、N(n,k)=N(n-1,k)+N(n-1,k-1)+N(n-1,k)。
【０２３４】
（７）と（５）を組み合わせると、次のような再帰関係を発見できる。
初期条件
U(0,*)=0、U(1,*)=0、及びU(a,b)=U(b,a)
の場合、
U(n,k+1)=1+U(n-1,k)+U(n-1,k+1)+U(n,k)    （１２）
初期条件
A(0,0)=1、A(0,1+)=0、A(1,*)=1、及びA(a,b)=A(b,a)
の場合、
A(n,k+1)=A(n-1,k)+A(n-1,k+1)+A(n,k)    （１３）
A(n,k)に関して先行ベクトル行n-1,k=0：KMAXから行n,k=0：KMAXを反復計算するために（１３）を使用でき、また、U(n,k)に関して先行ベクトル行n-1,k=0：KMAX+1から行n,k=0：KMAX+1を反復計算するために（１２）を使用できる。
【０２３５】
（１３）はＩＥＴＦ−ＯＰＵＳ−Ａｕｄｉｏで使用される。
【０２３６】
（１２）及びA(n,k)が奇数であるという事実を使用して、新たな効率のよい混合再帰公式
U(n,k+1)=1+A(n-1,k)＞＞1+U(n-1,k+1)+A(n,k)＞＞1    （１４）
を取得し、式中、「＞＞」は２による整数除算（右シフト）であり、A(大きなn,k+1)は飽和してもよいので、所定のダイナミックレンジ、例えば（最後の（k+1）オフセット列に関して３２ビット）の中にとどまるために式１４が使用される。
ベクトル半径関係、列挙の副次的結果及びベクトル長再帰関係
１９９８年に、Ｈｕｎｇ、Ｔｓｅｒｎ、Ｍｅｎｇは、サイズがN(l,k)=NPVQ(l,k)であるPVQ(1==n,k)ピラミッドに関していくつかの関連する追加の関係を更に要約している。以下に示すベクトル半径再帰関係「（４３）」は、行l=nに関する基本行専用サイズ関係である。
【０２３７】
以下の列挙公式の副次的結果「（４４）」は、ＰＶＱサイズに関するいくつかの非零要素ベース積関係である。
【０２３８】
2020024431.tif 000023
ベクトル長再帰（４２）
2020024431.tif 000024
ベクトル半径再帰（４３）
2020024431.tif 000025
列挙公式の副次的結果（４４）
【図１】
2020024431.tif 000026
【図２】
2020024431.tif 000027
【図３】
2020024431.tif 000028
【図４】
2020024431.tif 000029
【図５】
2020024431.tif 000030
【図６】
2020024431.tif 000031
【図７Ａ】
2020024431.tif 000032
【図７Ｂ】
2020024431.tif 000033
【図８】
2020024431.tif 000034
【図９】
2020024431.tif 000035
【図１０】
2020024431.tif 000036
【図１１】
2020024431.tif 000037
【図１２】
2020024431.tif 000038
【図１３】
2020024431.tif 000039
【図１４】
2020024431.tif 000040
【図１５】
2020024431.tif 000041
【図１６】
2020024431.tif 000042
【図１７Ａ】
2020024431.tif 000043
【図１７Ｂ】
2020024431.tif 000044
【図１７Ｃ】
2020024431.tif 000045
【図１７Ｄ】
2020024431.tif 000046
【図１８】
2020024431.tif 000047
【図１９】
2020024431.tif 000048
【図２０】
2020024431.tif 000049
【図２１】
2020024431.tif 000050
【図２２】
2020024431.tif 000051
【図２３】
2020024431.tif 000052
【手続補正書】
【提出日】令和1年10月23日(2019.10.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
オーディオ又はビデオ信号から導出される係数のピラミッドベクトル量子化インデクシングのための方法であって、前記方法は、
複数の前記係数を有する入力ベクトルを取得することと、
前記入力ベクトルにおける非零係数の符号である先行符号を、前記入力ベクトルから抽出することと、
変形ピラミッドベクトル量子化列挙方式を用いて、前記入力ベクトルを、前記先行符号と共に前記係数を表す出力インデクスにインデクシングすることと、
前記変形ピラミッドベクトル量子化列挙方式が、前記入力ベクトルの前記出力インデクスへの前記インデクシングを実行する際に、前記先行符号を無視することと、
前記先行符号と前記出力インデクスとを、出力ビットストリームにおけるコードワードとして出力することと、
を有することを特徴とする方法。
【請求項２】
前記変形ピラミッド量子化列挙方式を用いた前記入力ベクトルの前記インデクシングは、非零係数の符号をシフトして、そのシフトした符号が前記入力ベクトルの前記出力インデクスへの前記インデクシングの方向における次の非零係数と関連付けられて符号化されるようにすることを含む、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記入力ベクトルの前記取得は、前記複数の前記係数を有する整数入力ベクトルを取得することを含む、ことを特徴とする請求項１に記載の方法。
【請求項４】
前記先行符号の前記入力ベクトルからの前記抽出は、前記入力ベクトルの前記出力インデクスへの前記インデクシングの方向において前記入力ベクトルの最初に出現する非零係数の符号を抽出する、ことを特徴とする請求項１に記載の方法。
【請求項５】
前記先行符号の前記入力ベクトルからの前記抽出は、前記入力ベクトルの前記出力インデクスへの前記インデクシングの方向において前記入力ベクトルの最後に出現する非零係数の符号を抽出する、ことを特徴とする請求項１に記載の方法。
【請求項６】
前記インデクシングは、反復列挙手順によって実行され、
前記反復列挙手順は、前記入力ベクトルのうちの１つの現在の係数を考慮するために選択する反復ステップの繰り返しを含み、
前記反復ステップは、順に、
前記入力ベクトルの前記現在の係数の前に処理された前記入力ベクトルのすべての係数と関連するオフセットパラメータを発見することと、
前記オフセットパラメータに従って累積インデクスを増加させることと、
を含み、
前記反復ステップの前記繰り返しは、少なくとも前記入力ベクトルの大部分の前記係数が考慮されるまで、前記現在の係数として順次選択されている前記入力ベクトルの係数を用いて継続され、
前記反復列挙手順は、前記反復ステップの繰り返しが終了したことに応答して、前記累積インデクスの値に基づいて前記出力インデクスが設定される終了ステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項７】
前記反復ステップの前記繰り返しは、少なくとも前記入力ベクトルにおける前記係数の全てが考慮されるまで、前記現在の係数として順次選択されている前記入力ベクトルの係数を用いて継続され、
前記反復列挙手順の前記終了ステップは、前記反復ステップの前記繰り返しの前記終了に応答して、前記累積インデクスと等しい前記出力インデクスを設定する、ことを特徴とする請求項６に記載の方法。
【請求項８】
各反復ステップにおける前記累積インデクスの前記増加は、前記入力ベクトルにおける以前の非零係数の符号に従った最下位ビットに基づく、ことを特徴とする請求項６に記載の方法。
【請求項９】
前記累積インデクスの前記増加は、nが前記入力ベクトルの次元でありkが単位パルスの数である場合の第１のオフセットパラメータU(n,k)に少なくとも部分的に基づき、前記第１のオフセットパラメータU(n,k)は、先行する０を持たず、先行値kを持たず、先行する正の値を有し且つ正の次の先行符号を有した、次元n及びkのＬ１ノルムのベクトルの数として定められる、ことを特徴とする請求項６に記載の方法。
【請求項１０】
前記インデクスの前記増加は、nが前記入力ベクトルの次元でありkが単位パルスの数である場合の第２のオフセットパラメータA(n,k)に少なくとも部分的に基づき、前記第２のオフセットパラメータA(n,k)は、正の先行値を有するとともに先行する０を持たない、次元n及びkのＬ１ノルムのベクトルの数として定められる、ことを特徴とする請求項６に記載の方法。
【請求項１１】
オーディオ又はビデオ信号から導出される係数のピラミッドベクトル量子化インデクシングを実行するように構成されたエンコーダであって、前記エンコーダは、
複数の前記係数を有する入力ベクトルを取得することと、
前記入力ベクトルにおける非零係数の符号である先行符号を、前記入力ベクトルから抽出することと、
変形ピラミッドベクトル量子化列挙方式を用いて、前記入力ベクトルを、前記先行符号と共に前記係数を表す出力インデクスにインデクシングすることと、
前記変形ピラミッドベクトル量子化列挙方式が、前記入力ベクトルの前記出力インデクスへの前記インデクシングを実行する際に、前記先行符号を無視することと、
前記先行符号と前記出力インデクスとを、出力ビットストリームにおけるコードワードとして出力することと、
を含んだ動作を実行するように構成されたことを特徴とするエンコーダ。
【請求項１２】
前記変形ピラミッド量子化列挙方式を用いて前記入力ベクトルを前記インデクシングする動作は、非零係数の符号をシフトして、そのシフトした符号が前記入力ベクトルの前記出力インデクスへの前記インデクシングの方向における次の非零係数と関連付けられて符号化されるようにすることを含む、ことを特徴とする請求項１１に記載のエンコーダ。
【請求項１３】
前記入力ベクトルの前記取得の動作は、前記複数の前記係数を有する整数入力ベクトルを取得することを含む、ことを特徴とする請求項１１に記載のエンコーダ。
【請求項１４】
前記先行符号の前記入力ベクトルからの前記抽出の動作は、前記入力ベクトルの前記出力インデクスへの前記インデクシングの方向において前記入力ベクトルの最初に出現する非零係数の符号を抽出する、ことを特徴とする請求項１１に記載のエンコーダ。
【請求項１５】
前記先行符号の前記入力ベクトルからの前記抽出の動作は、前記入力ベクトルの前記出力インデクスへの前記インデクシングの方向において前記入力ベクトルの最後に出現する非零係数の符号を抽出する、ことを特徴とする請求項１１に記載のエンコーダ。
【請求項１６】
前記インデクシングの動作は、反復列挙手順によって実行され、
前記反復列挙手順は、前記入力ベクトルのうちの１つの現在の係数を考慮するために選択する反復動作の繰り返しを含み、
前記反復動作は、順に、
前記入力ベクトルの前記現在の係数の前に処理された前記入力ベクトルのすべての係数と関連するオフセットパラメータを発見することと、
前記オフセットパラメータに従って累積インデクスを増加させることと、
を含み、
前記反復動作の前記繰り返しは、少なくとも前記入力ベクトルの大部分の前記係数が考慮されるまで、前記現在の係数として順次選択されている前記入力ベクトルの係数を用いて継続され、
前記反復列挙手順は、前記反復動作の繰り返しが終了したことに応答して、前記累積インデクスの値に基づいて前記出力インデクスが設定される終了動作をさらに含む、
ことを特徴とする請求項１１に記載のエンコーダ。
【請求項１７】
前記反復動作の前記繰り返しは、少なくとも前記入力ベクトルにおける前記係数の全てが考慮されるまで、前記現在の係数として順次選択されている前記入力ベクトルの係数を用いて継続され、
前記反復列挙手順の前記終了動作は、前記反復動作の前記繰り返しの前記終了に応答して、前記累積インデクスと等しい前記出力インデクスを設定する、ことを特徴とする請求項１６に記載のエンコーダ。
【請求項１８】
各反復動作における前記累積インデクスの前記増加の動作は、前記入力ベクトルにおける以前の非零係数の符号に従った最下位ビットに基づく、ことを特徴とする請求項１６に記載のエンコーダ。
【請求項１９】
前記累積インデクスの前記増加は、nが前記入力ベクトルの次元でありkが単位パルスの数である場合の第１のオフセットパラメータU(n,k)に少なくとも部分的に基づき、前記第１のオフセットパラメータU(n,k)は、先行する０を持たず、先行値kを持たず、先行する正の値を有し且つ正の次の先行符号を有した、次元n及びkのＬ１ノルムのベクトルの数として定められる、ことを特徴とする請求項１６に記載のエンコーダ。
【請求項２０】
前記インデクスの前記増加は、nが前記入力ベクトルの次元でありkが単位パルスの数である場合の第２のオフセットパラメータA(n,k)に少なくとも部分的に基づき、前記第２のオフセットパラメータA(n,k)は、正の先行値を有するとともに先行する０を持たない、次元n及びkのＬ１ノルムのベクトルの数として定められる、ことを特徴とする請求項１６に記載のエンコーダ。
【外国語明細書】
2020024431000001.pdf