(57)【特許請求の範囲】
【請求項１】
ターゲット信号を符号化する際に使用される複数のパルスの位置の探索を行うパルス位置探索装置であって、
入力されたターゲット信号を用いてパルス位置探索に必要なパラメータを求める前処理部と、前記パラメータには、ターゲットの時間逆順合成ベクトルｖｔＨ、パルスの合成ベクトル同士の相関行列（極性の予備選択済み）ＨｔＨ、トラック番号、及び、各トラックのパルス候補位置の間隔が含まれ、
前記パラメータを用いて、第１のパルスが配置される位置の第１候補群に対して予備選択を行い、予備選択の結果に対して第１の探索を行うことにより、前記第１のパルスが配置される第１の位置を求める第１探索部と、
前記第１の位置を用いて、第２のパルスが配置される位置の第２候補群の全ての位置候補に対して第２の探索を行うことにより、前記第２のパルスが配置される第２の位置を求める第２探索部と、
前記第２の位置を用いて、前記第１候補群に対して予備選択を行い、予備選択の結果に対して第３の探索を行うことにより、前記第１のパルスが配置される第３の位置を求め、前記第２の位置と前記第３の位置とを探索結果として出力する第３探索部と、
を具備するパルス位置探索装置。
【請求項２】
前記第１探索部は、
第１のパルスが配置される位置の第１候補群に対して、予備選択が行われるループによる探索を最初に行い、第１のパルスが配置される位置の最初の探索の際に、コスト関数の分母の総合値にパルスの合成ベクトルのパワのみを加算することにより前記コスト関数の分母項を作成する、
請求項１記載のパルス位置探索装置。
【請求項３】
ターゲット信号を符号化する際に使用される複数のパルスの位置の探索を行うパルス位置探索方法であって、
入力されたターゲット信号を用いてパルス位置探索に必要なパラメータを求め、前記パラメータには、ターゲットの時間逆順合成ベクトルｖｔＨ、パルスの合成ベクトル同士の相関行列（極性の予備選択済み）ＨｔＨ、トラック番号、及び各トラックのパルス候補位置の間隔が含まれるものであり、
前記パラメータを用いて、第１のパルスが配置される位置の第１候補群に対して予備選択を行い、予備選択の結果に対して第１の探索を行うことにより、前記第１のパルスが配置される第１の位置を求める第１探索ステップと、
前記第１の位置を用いて、第２のパルスが配置される位置の第２候補群の全ての位置候補に対して第２の探索を行うことにより、前記第２のパルスが配置される第２の位置を求める第２探索ステップと、
前記第２の位置を用いて、前記第１候補群に対して予備選択を行い、予備選択の結果に対して第３の探索を行うことにより、前記第１のパルスが配置される第３の位置を求め、前記第２の位置と前記第３の位置とを探索結果として出力する第３探索ステップと、
を有するパルス位置探索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のパルスの位置を探索するパルス位置探索装置及びその方法、及び、符号帳を構成する複数のパルスの位置を探索する符号帳探索装置及びその方法に関する。
【背景技術】
【０００２】
移動体通信においては伝送帯域の有効利用のために音声または画像のディジタル情報の圧縮符号化が必須である。その中でも、携帯電話で広く利用されている音声コーデック技術に対する期待は大きく、圧縮率の高い従来の高効率符号化に対して、更によりよい音質の要求が強まっている。また、公衆で使用されるために標準化が必須であり、それに伴う知財権の強さゆえに世界の各社で研究開発が盛んに行われている。【０００３】
近年では、音声と音楽の双方を符号化できるコーデックの標準化がＩＴＵ−Ｔ及びＭＰＥＧで検討されており、より効率的で高品質の音声コーデックが求められている。【０００４】
２０年前に確立された音声の発声機構をモデル化してベクトル量子化を巧みに応用した基本方式であるＣＥＬＰ（Code Excited Linear Prediction）によって音声符号化技術は大きく性能を向上させた。ＩＴＵ−Ｔ（International Telecommunication Union - Telecommunication Standardization Sector）標準Ｇ．７２９、ＩＴＵ−Ｔ標準Ｇ．７２２．２、ＥＴＳＩ（European Telecommunications Standards Institute）標準ＡＭＲ（Adaptive Multiple Rate Coding）、ＥＴＳＩ標準ＡＭＲ−ＷＢ（Adaptive Multiple Rate Coding - Wide Band）または３ＧＰＰ（3rd Generation Partnership Project）２標準ＶＭＲ−ＷＢ（Variable Multiple rate - Wide Band）等の国際規格において、ＣＥＬＰは多くの標準方式として採用されている。【０００５】
図１は、ＣＥＬＰ符号化装置の構成を示すブロック図である。図１では、ＣＥＬＰにおけるスペクトルパラメータ（ＬＳＰまたはＩＳＰ等）の量子化を行うものである。【０００６】
図１より、ＬＰＣ分析部１０１は、音声信号に対して線形予測分析（ＬＰＣ分析）を施し、スペクトル包絡情報であるＬＰＣパラメータを求め、求めたＬＰＣパラメータをＬＰＣ量子化部１０２及び聴感重み付け部１１１に出力する。【０００７】
ＬＰＣ量子化部１０２は、ＬＰＣ分析部１０１から出力されたＬＰＣパラメータを量子化する。そして、ＬＰＣ量子化部１０２は、得られた量子化ＬＰＣパラメータをＬＰＣ合成フィルタ１０９に出力し、量子化ＬＰＣパラメータのインデックス（符号）をＣＥＬＰ符号化装置１００の外部へ出力する。【０００８】
一方、適応符号帳１０３は、ＬＰＣ合成フィルタ１０９で使用された過去の駆動音源を記憶しており、後述する歪み最小化部１１２から指示されたインデックスに対応する適応符号帳ラグに従って、記憶している駆動音源から１サブフレーム分の音源ベクトルを生成する。この音源ベクトルは、適応符号帳ベクトルとして乗算器１０６に出力される。【０００９】
固定符号帳１０４は、音源符号化（「音源量子化」または「音源ベクトル符号化」とも呼ばれる）の符号帳である。固定符号帳１０４は、所定形状の音源ベクトルを複数個予め記憶しており、歪み最小化部１１２から指示されたインデックスに対応する音源ベクトルを、固定符号帳ベクトルとして乗算器１０７に出力する。ここで、固定符号帳１０４は代数的音源であり、代数的符号帳を用いた場合について説明する。代数的音源とは、多くの標準コーデックに採用されている音源である。【００１０】
なお、上記の適応符号帳１０３は、有声音のように周期性の強い成分を表現するために使われる。一方、固定符号帳１０４は、白色雑音のように周期性の弱い成分を表現するために使われる。【００１１】
ゲイン符号帳１０５は、歪み最小化部１１２からの指示に従って、適応符号帳１０３から出力される適応符号帳ベクトル用のゲイン（適応符号帳ゲイン）、及び固定符号帳１０４から出力される固定符号帳ベクトル用のゲイン（固定符号帳ゲイン）を生成し、それぞれ乗算器１０６、１０７に出力する。【００１２】
乗算器１０６は、ゲイン符号帳１０５から出力された適応符号帳ゲインを、適応符号帳１０３から出力された適応符号帳ベクトルに乗じ、乗算後の適応符号帳ベクトルを加算器１０８に出力する。【００１３】
乗算器１０７は、ゲイン符号帳１０５から出力された固定符号帳ゲインを、固定符号帳１０４から出力された固定符号帳ベクトルに乗じ、乗算後の固定符号帳ベクトルを加算器１０８に出力する。【００１４】
加算器１０８は、乗算器１０６から出力された適応符号帳ベクトルと、乗算器１０７から出力された固定符号帳ベクトルとを加算し、加算後の音源ベクトルを駆動音源としてＬＰＣ合成フィルタ１０９に出力する。【００１５】
ＬＰＣ合成フィルタ１０９は、ＬＰＣ量子化部１０２から出力された量子化ＬＰＣパラメータをフィルタ係数とし、適応符号帳１０３及び固定符号帳１０４で生成される音源ベクトルを駆動音源としたフィルタ関数、すなわち、ＬＰＣ合成フィルタを用いて合成信号を生成する。この合成信号は、加算器１１０に出力される。【００１６】
加算器１１０は、ＬＰＣ合成フィルタ１０９で生成された合成信号を音声信号から減算することによって誤差信号を算出し、この誤差信号を聴感重み付け部１１１に出力する。なお、この誤差信号が符号化歪みに相当する。【００１７】
聴感重み付け部１１１は、ＬＰＣ分析部１０１から入力されるＬＰＣパラメータを用いて、加算器１１０から出力された符号化歪みに対して聴感的な重み付けを施し、歪み最小化部１１２に出力する。【００１８】
歪み最小化部１１２は、聴感重み付け部１１１から出力された符号化歪みが最小となるような、適応符号帳１０３、固定符号帳１０４及びゲイン符号帳１０５の各インデックス（符号）をサブフレームごとに求め、これらのインデックスを符号化情報としてＣＥＬＰ符号化装置１００の外部に出力する。より詳細には、上記の適応符号帳１０３及び固定符号帳１０４に基づいて合成信号を生成し、この信号の符号化歪みを求める一連の処理は閉ループ制御（帰還制御）となっており、歪み最小化部１１２は、各符号帳に指示するインデックスを１サブフレーム内において様々に変化させることによって各符号帳を探索し、最終的に得られる、符号化歪みを最小とする各符号帳のインデックスを出力する。【００１９】
固定符号帳（「確率的符号帳」とも呼ぶ）として使用される代数的符号帳（Algebraic Codebook）では、限られた計算量で更に良好な符号化性能が得られるようになった。代数的符号帳は、上記のＩＴＵ−Ｔ標準Ｇ．７２９、ＩＴＵ−Ｔ標準Ｇ．７２２．２、ＥＴＳＩ標準ＡＭＲまたはＥＴＳＩ標準ＡＭＲ−ＷＢ等で広く使用されている。【００２０】
ここで、固定符号帳探索の基本的アルゴリズムの原理について説明する。【００２１】
まず、音源ベクトル（「符号帳ベクトル」または「コードベクトル」とも呼ぶ）の探索と符号の導出とは以下の（１）式の符号化歪を最小化する音源ベクトルを探索することにより行う。
【数１】
0005981909.tif 000002
【００２２】
一般的に、適応符号帳ベクトルと固定符号帳ベクトルとは逐次最適化で（別々のループで）探索されるので、固定符号帳１０４の符号の導出は以下の（２）式の符号化歪を最小化する固定符号帳ベクトルを探索することにより行う。
【数２】
0005981909.tif 000003
【００２３】
ここで、ゲインｐ、ｑは音源の符号を探索した後で決定するので、ここでは理想ゲイン（「最適ゲイン」とも呼ばれる）で探索を進めることとする。理想ゲインは、符号化歪を最も小さくするゲインを意味する。これより、上記の（２）式は以下の（３）式のように表すことができる。
【数３】
0005981909.tif 000004
【００２４】
符号化歪を示す（３）式を最小化することは、以下の（４）式のコスト関数Ｃを最大化することと同じである。
【数４】
0005981909.tif 000005
【００２５】
よって、代数的符号帳のような少数パルスからなる固定符号帳ベクトルｓの探索の場合は、ｖｔＨとＨｔＨとを予め計算しておけば、少ない計算量で上記のコスト関数Ｃを算出することができる。すなわち、代数的符号帳の符号化は、パルスの本数のチャネル（「トラック」とも呼ぶ）の多重ループにより、上記のコスト関数Ｃを最も大きくする位置と極性とを探索するアルゴリズムにより行われる。【００２６】
また、そのパルス音源の場合は、ｖｔＨの値の正負で極性を予め予備選択してしまうと同時に、ｖｔＨの値とＨｔＨの値とに極性を乗ずることによって、パルス位置探索の際に極性探索を省略することができる。この極性の予備選択により計算量は指数的に節約できる。【００２７】
そして、近年では、より高品質のニーズに対応するために、広帯域信号（１６ｋＨｚサンプリング）及び超広帯域信号（３２ｋＨｚサンプリング）を符号化するコーデックが求められており、ＩＴＵ−Ｔ、ＭＰＥＧ（Moving Picture Experts Group）または３ＧＰＰ等で標準化が進んでいる。広帯域及び超広帯域のディジタル信号を符号化するためにビットレートが高くなるのに伴って、音源を符号化する固定符号帳の情報ビット数も多くなる。代数的符号帳は、同時最適化（多重ループ）での探索により高性能を得ることができるので、ビット数が多くなる（パルス数が増える）と指数的に計算量が増えてしまう。【００２８】
そこで高品質コーデックにおいては、探索するパルス（チャネルまたはトラック）をいくつかのグループに分け、グループ内を同時最適化探索で探索し、グループ間は逐次最適化で探索するという方法が広く採用されている。例えば、４本のパルスで１つのパルスの立つ位置の候補が３２であった場合、３２の４乗で１０４８５７６回のマッチングを行わなくてはならない。しかしながら、４本のパルスを２本ずつ２つのグループに分けて探索すると、３２の２乗の計算を２回行うことにより、２０４８回のマッチングで済む。この際、逐次最適化探索であるため、完全な同時最適化探索よりも性能は多少落ちるが、グループ内がクローズドなので、大きな劣化はない。そのために、近年はこのグループ化による探索が行われるようになった。【００２９】
このパルス探索の例として、グループのサイズを２パルスとし、探索を行った例を図２を用いて説明する。図２は、従来の固定符号帳探索処理の流れを示す概念図である。固定符号帳の探索処理の流れは、簡易的には図２のように表すことができる。図２に示すように、求めるべきパルスの本数が探索されるまで、２パルス探索を必要な回数だけ行う。それぞれの２パルス探索により求められた結果（パルス）は、パルス列にまとめられる（図示省略）。この２パルス探索の結果をまとめる方法については様々なものがある。例えば、ＩＴＵ−Ｔ標準Ｇ．７１８では、４トラック構成についてパルスを２本ずつ探索しながら本数を増やすというアルゴリズムを用いている（非特許文献１参照）。ここではその説明は省略する。【００３０】
図３は、従来のグループ化によるパルスの位置の探索のアルゴリズムを模式的に示す図である。図３は、図２における２パルス探索の一つに対応する。【００３１】
探索を始める前に、前処理として、入力されるターゲット等を用いて、探索に必要なパラメータを求めておく。ここで、ターゲットはベクトルにより表すことができ、前述の、固定符号帳探索のターゲットベクトルｖに対応する。パラメータとしては、ターゲットの時間逆順合成ベクトル（極性の予備選択済み）ｖｔＨ、パルスの合成ベクトル同士の相関行列（極性の予備選択済み）ＨｔＨ、トラック番号、及び各トラックのパルス候補位置の間隔、等が用意される。【００３２】
これらのパラメータを用いて、トラック０の探索ループの中でトラック１の探索ループが実行される。すなわち、トラック０の探索ループとトラック１の探索ループとで多重ループになっている。この多重ループによる探索を行うことにより、各トラックの探索された位置、この探索までの総合的分子項の基になる相関値、及びこの探索までの総合的分母項、が得られる。【００３３】
図４は、従来のグループ化によるパルスの位置の探索のアルゴリズムを示すフロー図である。図４は図３を具体的に示したものである。【００３４】
図４において、ｄ［ｎ］は、ターゲットの時間逆順合成ベクトル（極性の予備選択済み）である。ｃ［ｎ］［ｍ］は、パルスの合成ベクトル同士の相関行列（極性の予備選択済み）であり、ｎ≠ｍであるとともに、ｎ、ｍの値は２倍されている。ｘ、ｙは、パルスの候補位置である。ｘｘ、ｙｙは、最終的に探索されたパルスの位置である。ｔｒａｃｋ０、ｔｒａｃｋ１は、トラック番号（図２では０、１、２、３のいずれか)である。ｐｓ＿ｔは、探索を行う前までのコスト関数Ｃの分子項の元である。ａｌｐ＿ｔは、探索を行う前までのコスト関数Ｃの分母項の総合値である。Ｌは、サブフレーム長である。ｓｔｅｐは、各トラックのパルスの候補位置の間隔（図４では「４」）である。【００３５】
図４において、まず、前述の必要なパラメータが入力されることでフローがスタートする。そして、パルスの候補位置ｘを探索するために、コスト関数Ｃの分子項ｓｑｋを「−１．０」とし、分母項ａｌｐｋを「１．０」とする（ステップＳＴ１１）。【００３６】
次に、パルスの候補位置ｘがサブフレーム長Ｌよりも小さいか否かを判定する（ステップＳＴ１２）。【００３７】
パルスの候補位置ｘがサブフレーム長Ｌよりも小さい場合（ステップＳＴ１２：ｙｅｓ）には、ｐｓ０＝ｐｓ＿ｔ＋ｄ［ｘ］及びａｌｐ０＝ａｌｐ＿ｔ＋ｃ［ｘ］［ｘ］の計算を行う（ステップＳＴ１３）。【００３８】
次に、パルスの候補位置ｙの探索を開始し（ステップＳＴ１４）、パルスの候補位置ｙがサブフレーム長Ｌよりも小さいか否かを判定する（ステップＳＴ１５）。【００３９】
パルスの候補位置ｙがサブフレーム長Ｌ以上の場合（ステップＳＴ１５：ｎｏ）には、次の候補位置を選択し（ｘ＝ｘ＋ｓｔｅｐ）（ステップＳＴ１６）、ステップＳＴ１２に処理を戻す。【００４０】
一方、パルスの候補位置ｙがサブフレーム長Ｌよりも小さい場合（ステップＳＴ１５：ｙｅｓ）には、ｐｓ１＝ｐｓ０＋ｄ［ｙ］、ａｌｐ１＝ａｌｐ０＋ｃ［ｙ］［ｙ］＋ｃ［ｘ］［ｙ］及びｓｑ＝ｐｓ１＊ｐｓ１の計算を行う（ステップＳＴ１７）。【００４１】
次に、（ａｌｐｋ＊ｓｑ）の値が（ｓｑｋ＊ａｌｐ１）の値よりも大きいか否かを判定する（ステップＳＴ１８）。【００４２】
（ａｌｐｋ＊ｓｑ）の値が（ｓｑｋ＊ａｌｐ１）の値以下の場合（ステップＳＴ１８：ｎｏ）には、次の候補位置を選択し（ｙ＝ｙ＋ｓｔｅｐ）（ステップＳＴ１９）、ステップＳＴ１５に処理を戻す。【００４３】
一方、（ａｌｐｋ＊ｓｑ）の値が（ｓｑｋ＊ａｌｐ１）の値よりも大きい場合（ステップＳＴ１８：ｙｅｓ）には、コスト関数Ｃの分母項及び分子項を確定して、最終的な探索したパルスの位置ｘｘ、ｙｙを確定し（ステップＳＴ２０）、ステップＳＴ１９に処理を戻す。【００４４】
また、ステップＳＴ１２において、パルスの候補位置ｘがサブフレーム長Ｌ以上の場合（ステップＳＴ１２：ｎｏ）には、ｐｓ＿ｔ＝ｐｓ＿ｔ＋ｄ［ｘｘ］＋ｄ［ｙｙ］の計算を行うとともに、探索を行う前のコスト関数Ｃの分母項をコスト関数Ｃの最終的な分母項とする（ステップＳＴ２１）。【００４５】
次に、最終的なパルスの位置ｘｘ、ｙｙ及びその際のコスト関数Ｃの分母項の総合値ａｌｐ＿ｔ及びコスト関数Ｃの分子項ｐｓ＿ｔの値を出力する（ステップＳＴ２２）。【００４６】
図４において、（４）式のコスト関数Ｃの分子項がｓｑであり、分母項がａｌｐｌである。コスト関数Ｃは、分子項を分母項で除算することによって得られるが、除算は計算量が多くなるので、コスト関数Ｃの大小の判定においてはたすき掛けの掛け算を採用する。【００４７】
しかしながら、上記のグループ化を用いても、ビット数が更に増えると膨大な計算量になってくる。そこで、ＩＴＵ−Ｔ標準Ｇ．７１８では、パルスの探索において、パルスの位置の予備選択を取り入れている（非特許文献１参照）。パルスの位置の予備選択とは、パルスの候補位置のうち、予めパルスが立ち易く、パルスが立つと予想される位置を選択し、次のループに入るパルスの候補位置の数を削減するものである。【００４８】
Ｇ．７１８で採用されているパルス位置の予備選択を用いた固定符号帳の探索処理の流れの概要を、図５を用いて説明する。図５は、従来の固定符号帳探索処理の流れを示す概念図である。なお、上記に示したように、２パルス探索の結果をまとめる方法については様々なものがあり、Ｇ．７１８では４トラック構成について２本ずつ探索しながら本数を増やすというアルゴリズムを用いている。ここではその説明は省略する。【００４９】
この固定符号帳の探索処理は、図５に示すように、図２と同様、２パルス探索を必要な回数だけ行うが、それぞれの２パルス探索において予備選択を行う。このとき、それぞれの２パルス探索の予備選択数には、昇順の大きさの関係が設定される。【００５０】
図６は、Ｇ．７１８で採用されているパルスの位置の予備選択を行う場合のパルスの位置の探索のアルゴリズムを模式的に示す図である。図６は、図５に示す２パルス探索の一つに対応する。【００５１】
図３と同様、探索を始める前に、前処理として、入力されるターゲット等を用いて、探索に必要なパラメータを求めておく。ここで、ターゲットはベクトルにより表すことができ、前述の、固定符号帳探索のターゲットベクトルｖに対応する。パラメータとしては、ターゲットの時間逆順合成ベクトル（極性の予備選択済み）ｖｔＨ、パルスの合成ベクトル同士の相関行列（極性の予備選択済み）ＨｔＨ、トラック番号、及び各トラックのパルス候補位置の間隔、等が用意される。【００５２】
これらのパラメータを用いて、トラック０の探索ループの中でトラック０の予備選択を行うことにより、トラック０の探索ループの中でトラック１の探索ループに入る数を制限する。図６の場合も、図３の場合と同様に、トラック０の探索ループとトラック１の探索ループとで多重ループになっている。この多重ループによる探索を行うことにより、各トラックの探索された位置、この探索までの総合的分子項の基になる相関値、及びこの探索までの総合的分母項、が得られる。【００５３】
図７は、Ｇ．７１８で採用されているパルスの位置の予備選択を行う場合のパルスの位置の探索のアルゴリズムを示すフロー図である。図７は、図６を具体的に示したものである。なお、図７において、図４と同一処理である部分には同一符号を付して、その説明を省略する。【００５４】
図７において、ｐｉｃｋ［ｎ］は、各パルス位置にその採用される順位が記載されている配列である。ｔｈｒｅｓは、指定された候補位置ｘの候補数から得られる値である。また、ｐｉｃｋ［ｎ］がｔｈｒｅｓの値より小さい値の場合のみの探索により指定された候補数だけ探索する。なお、その他の記号の意味は、図４と同様であるので、その説明を省略する。【００５５】
図７において、パルスの候補位置ｘがサブフレーム長Ｌよりも小さい場合（ステップＳＴ１２：ｙｅｓ）には、ｐｉｃｋ［ｘ］がｔｈｒｅｓの値より小さいか否かを判定する（ステップＳＴ５０）。【００５６】
ｐｉｃｋ［ｘ］がｔｈｒｅｓの値より小さい場合（ステップＳＴ５０：ｙｅｓ）には、ｐｓ０＝ｐｓ＿ｔ＋ｄ［ｘ］及びａｌｐ０＝ａｌｐ＿ｔ＋ｃ［ｘ］［ｘ］の計算を行う（ステップＳＴ１３）。【００５７】
一方、ｐｉｃｋ［ｘ］がｔｈｒｅｓの値以上の場合（ステップＳＴ５０：ｎｏ）には、次の候補位置を選択し（ステップＳＴ１６）、ステップＳＴ１２に処理を戻す。【００５８】
図８は、上記従来のパルス探索方法により固定符号帳のパルス探索を行うことができる固定符号帳探索装置３００の構成を示すブロック図である。【００５９】
前処理部３０１は、ターゲット信号を入力とし、パルス探索に必要なパラメータを求める。計算により生成されるパラメータとしては、各パルス位置の極性予備選択を行って結果を反映した「ターゲットの時間逆順合成ベクトル」（数４のｖｔＨに相当）、及び極性予備選択の結果を反映し対角項以外の値を２倍した「パルスの合成ベクトル同士の相関行列」（数４のＨｔＨに相当）、などがある。また、設定するパラメータとしては、探索するトラック番号、前記番号のトラックのパルス位置候補の間隔、サブフレーム長、及び予備選択数、などがある。前処理部３０１は、これらのパラメータを制御部３０２に送る。【００６０】
制御部３０２は、総ビット数を入力とし、後述するパルス列符号化部３０４からのタイミング信号に応じて、パルス探索に必要なパラメータを多重ループ探索部３０３に送り、多重ループ探索部３０３でパルスの探索を行うように制御する。多重ループ探索部３０３に送るパラメータとしては、前処理部３０１から送られてきたパラメータに加えて、各パルス位置にその採用される順位が記載されている配列、探索を行う前までの分子項の総合値及び分母項の総合値、などがある。なお、制御部３０２は、前記探索を行う前までの分子項の総合値及び分母項の総合値を、最初に多重ループ探索部３０３を駆動するときには初期化し、次回以降の段階の２パルス探索を行う際には、パルス列符号化部３０４から送られてきたものを多重ループ探索部３０３に送る。【００６１】
多重ループ探索部３０３は、パルスの位置を多重ループを用いて探索する。この際、多重ループ探索部３０３は、一番外側のループにおいて、前記予備選択数と前記各パルス位置にその採用される順位が記載されている配列とを用いて予備選択を行い、探索されたパルス位置と、そのパルス位置において計算された分子項の総合値及び分母項の総合値とをパルス列符号化部３０４に出力する。【００６２】
パルス列符号化部３０４は、多重ループ探索部３０３で探索されたパルス位置と、分子項の総合値及び分母項の総合値とを用いてパルスの符号化を行う。この固定符号帳としてのパルスの符号化は、複数回動作する多重ループ探索部３０３の結果を用いて行われるものである。そしてパルス列符号化部３０４は、分子項の総合値及び分母項の総合値を制御部３０２に送るとともに、次の多重ループ探索部３０３の動作を促すためにタイミング信号を制御部３０２に送る。そして、パルス列符号化部３０４は、最後に固定符号帳としての符号を出力する。【００６３】
ここで、パルス探索方法として図２の探索処理を用いる場合には、多重ループ探索部３０３には、予備選択を行う構成は含まれない。パルス探索方法として図５の探索処理を用いる場合には、多重ループ探索部３０３は、予備選択を行うように構成される。【００６４】
このように、従来、高ビットレートの固定符号帳探索に対応するために、代数的符号帳においてチャネル（トラック）のグループ化を行うことにより、探索を少数パルス単位で行うこととし、個別の少数パルスの探索をクローズドで行う方法、更にその時の外側のループで位置の予備選択を行って更に計算量を下げる方法が発明され、計算量を抑えながら高品質の音声または音楽を符号化できるようになった。
【先行技術文献】
【非特許文献】
【００６５】
【非特許文献１】ＩＴＵ−Ｔ標準Ｇ．７１８規格書、２００８年６月
【発明の概要】
【発明が解決しようとする課題】
【００６６】
しかしながら、従来の装置においては、多重ループを採用しているため、パルスの位置探索に伴う計算量の更なる削減が難しいという課題がある。このため、固定符号帳において探索するパルス数が多くなった場合には、符号化性能を落とさずに、パルスの位置探索に伴う計算量を削減することが困難であるという問題がある。【００６７】
本発明の目的は、パルスの位置探索に伴う計算量を削減することができるパルス位置探索装置、及びその方法を提供することである。更に、符号帳において、探索により求めるべきパルス数が多くなった場合でも、符号化性能を落とさずに、パルスの位置探索に伴う計算量を削減することができる符号帳探索装置、及びその方法を提供することである。
【課題を解決するための手段】
【００６８】
本発明のパルス位置探索装置は、ターゲット信号に所定の処理を行って得られたパラメータを入力して複数のパルスの位置の探索を行うパルス位置探索装置であって、前記パラメータを用いて、第１のパルスが配置される位置の第１候補群に対して第１の予備選択を行い、前記第１の予備選択の結果に対して第１の探索を行うことにより、前記第１のパルスが配置される第１の位置を求める第１探索手段と、前記第１の位置を用いて、第２のパルスが配置される位置の第２候補群の全ての位置候補に対して第２の探索を行うことにより、前記第２のパルスが配置される第２の位置を求める第２探索手段と、前記第２の位置を用いて、前記第１候補群に対して第２の予備選択を行い、前記第２の予備選択の結果に対して第３の探索を行うことにより、前記第１のパルスが配置される第３の位置を求め、前記第２の位置と前記第３の位置とを探索結果として出力する第３探索手段と、を具備する構成を採る。【００６９】
本発明のパルス位置探索方法は、ターゲット信号に所定の処理を行って得られたパラメータを入力して複数のパルスの位置の探索を行うパルス位置探索方法であって、前記パラメータを用いて、第１のパルスが配置される位置の第１候補群に対して第１の予備選択を行い、前記第１の予備選択の結果に対して第１の探索を行うことにより、前記第１のパルスが配置される第１の位置を求める第１探索ステップと、前記第１の位置を用いて、第２のパルスが配置される位置の第２候補群の全ての位置候補に対して第２の探索を行うことにより、前記第２のパルスが配置される第２の位置を求める第２探索ステップと、前記第２の位置を用いて、前記第１候補群に対して第２の予備選択を行い、前記第２の予備選択の結果に対して第３の探索を行うことにより、前記第１のパルスが配置される第３の位置を求め、前記第２の位置と前記第３の位置とを探索結果として出力する第３探索ステップと、を有する。
【発明の効果】
【００７０】
本発明のパルス位置探索装置及びこの方法によれば、パルスの位置探索に伴う計算量を従来以上に削減することができる。また、このパルス位置探索装置及びこの方法を符号帳探索装置及びこの方法に適用することにより、探索により求めるべきパルス数が多くなった場合でも、符号化性能を落とさずに、パルスの位置探索に伴う計算量を削減することができる。
【図面の簡単な説明】
【００７１】
【図１】ＣＥＬＰ符号化装置の構成を示すブロック図
【図２】従来の固定符号帳探索処理の流れを示す概念図
【図３】従来のグループ化によるパルスの位置の探索のアルゴリズムを模式的に示す図
【図４】従来のグループ化によるパルスの位置の探索のアルゴリズムを示すフロー図
【図５】従来の固定符号帳探索処理の流れを示す概念図
【図６】従来のパルスの位置の予備選択を行う場合のパルスの位置の探索のアルゴリズムを模式的に示す図
【図７】従来のパルスの位置の予備選択を行う場合のパルスの位置の探索のアルゴリズムを示すフロー図
【図８】従来の固定符号帳探索装置の構成を示すブロック図
【図９】本発明の実施の形態における固定符号帳探索処理の流れを示す概念図
【図１０】本発明の実施の形態におけるパルスの位置の探索のアルゴリズムを模式的に示す図
【図１１】本発明の実施の形態におけるパルス位置探索装置の構成を示すブロック図
【図１２】本発明の実施の形態におけるパルスの位置の探索方法を示すフロー図
【図１３】本発明の実施の形態における固定符号帳探索装置の構成を示すブロック図
【発明を実施するための形態】
【００７２】
本発明は、多数のパルスの探索を、複数の少数パルスの探索を組み合わせて符号化を行う量子化に関するものである。少数パルスの探索は、予備選択を行う（すなわち探索対象を最初に限定する）チャネル（トラックまたはパルスとも呼ぶ）のループを用いるものと、予備選択を行わない（すなわち全候補を探索対象とする）チャネルのループを用いるものとがある。本発明は、これらのループを多重ループ化せず、それぞれのループを順次行う逐次最適化探索を行うことを特徴とする。この、少数パルスの探索に用いる逐次最適化探索には、予備選択が行われるループを複数回用いるのが好適である。特に、ループを実行する順序は、少なくとも最初のループ及び最後のループとして、予備選択が行われるループを用いるのが、より好適である。本発明は、少数パルスの探索を、このようなパルス位置探索方法で行うパルス位置探索装置に関するものである。
【００７３】
上記パルス位置探索装置の逐次最適化探索を、予備選択数が十分少ない場合について用いれば、従来の予備選択ありの同時最適化探索の性能から大きく落ちることがない。さらに、多重ループではないので計算量を大きく削減できる。
【００７４】
したがって、符号化装置に対して、本発明のパルス位置探索装置によるパルスの逐次最適化探索を、予備選択数が十分少ない場合に用いることにより、符号化性能を落とさずに計算量を更に削減することができる。
【００７５】
本実施の形態では、音声符号化技術であるＣＥＬＰにおける固定符号帳の量子化に本発明を用いた場合について説明を行う。ＣＥＬＰについては上記で説明を行ったのでこれを省略する。
【００７６】
背景技術で述べたように、Ｇ．７１８においてはクローズド多重ループによる２パルス探索を複数回用いることによって、計算量を抑えながら多数のパルスの探索を行っている。その中で、外側のトラック０のループにおいて予備選択により内側のループに入る回数を制限することにより、更に計算量を削減している。更に、最初は大きく絞り込み、次第に候補数を増やすことで性能がそれほど落ちないようにしている。これは、後半を精度よく探索すれば、前半の探索は探索候補を予備選択により大きく絞っても性能がそれほど落ちないという傾向を利用している。
【００７７】
そこで、本発明の発明者は、十分に予備選択数が少ない場合には、予備選択が行われるループを複数回用いる逐次最適化探索を用いれば同時最適化探索を用いるのと同様の性能が得られ、かつ大きく計算量が削減できると考えた。
【００７８】
また、逐次最適化探索においては、同時最適化探索における探索結果と異なるパルス位置が探索される場合（「位置の誤り」と呼ぶ）がある。このことは、そのまま性能の劣化に繋がる可能性がある。このため、本実施の形態においては、予備選択が行われるループによる探索を最初に行うことで確率的に最初のループで位置を誤る確率を減らし、次に別のトラックの探索を行なった後で再度、予備選択が行われるループによる探索を行う。これにより、最初のループによる探索の結果が必ずしも最適でなかったとしても、最終的に正しい位置が探索される確率を向上させている。
【００７９】
また、最初のループにおいては、前述のコスト関数の分母項として新たに追加するパルスの合成ベクトルのパワ（「同じパルス位置同士の相関値」と同値）と、それまで探索されているパルスの合成ベクトル同士の相関値との２つを、探索を行う前までの分母項の総合値に加算する必要があるが、この相関値の計算を省略してパワだけにすることにより、前処理に必要な計算量を省略している。
【００８０】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。ここでは、一例として、ＣＥＬＰ符号化装置における、代数的符号帳で構成された固定符号帳でのパルスの位置の探索を、パルスを２本ずつグループ化して行うパルス位置探索装置について説明する。このパルス位置探索装置はＣＥＬＰ符号化装置に含まれる固定符号帳探索装置に適用され、このパルス位置探索装置により探索されたパルスは固定符号帳探索装置においてパルス列にまとめられて符号化される。なお、ＣＥＬＰ符号化装置は、例えば、音声、音楽、あるいはこれらが混在する信号等を対象とする。また、パルス位置探索装置は、ＣＥＬＰ符号化装置に限らず、パルス位置探索を行う必要がある符号化装置には用いることができる。
【００８１】
（実施の形態）
本実施の形態の固定符号帳の探索処理の流れについて、図９を用いて説明する。図９は、本発明の実施の形態における固定符号帳探索処理の流れを示す概念図である。
【００８２】
図９に示すように、本実施の形態の固定符号帳の探索処理は、予備選択数が小さいパルスの探索から、予備選択数が大きい方に向かって、２パルスずつ段階的に探索が行われ、求めるべきパルスの本数が探索されるまで必要な回数だけ実行される（予備選択数は同じであってもよい）。それぞれの段階の探索において求められた結果（パルス）は、パルス列にまとめられる（図示省略）。探索されたパルスをパルス列にまとめる方法については説明を省略する。また、本実施の形態においては、各段階において、代数的符号帳のトラック０とトラック１とにおいてパルス探索を行うものとする。
【００８３】
図５における探索処理と図９における探索処理との違いは、最初の段階で２パルス探索を行う点は同様であるが、次の段階以降は、本発明によるパルス位置探索方法による逐次最適化探索を行う点である。ここで「２パルス探索」とは、背景技術において説明した、図７における、予備選択を行う同時最適化探索（クローズドループ探索）のことである。また、この例では、最後の段階で、再度２パルス探索を行うこととしている。
【００８４】
本実施の形態において、予備選択数が最も少ないＮ０である最初の探索の段階で２パルス探索（クローズドループ探索）を採用したのは、現実的には、Ｎ０があまりに小さいと、本発明の逐次最適化探索よりも、クローズドループ探索の方が、この段階における計算量が小さくなる可能性があり得るためである。また、予備選択数が最も多いＮｍである最後の探索の段階でも２パルス探索を採用したのは、本発明の性能が十分に発揮されるのが、前述したように十分に予備選択数が少ない場合であるので、予備選択数がもっとも多い最後の段階では、本発明の性能が低下する可能性を考慮したものである。なお、本実施の形態では、このように最初の段階と最後の段階とを２パルス探索としたが、必ずしもこの構成としなくてもよい。
【００８５】
図９の例においては、２段目等のパルスの探索は、本発明によるパルス位置探索方法による逐次最適化探索を行う。すなわち、この段階においては十分に予備選択数が少ないものとし、予備選択を行うトラック０の探索を最初に行い、次に、トラック０で探索されたパルスの位置を固定してトラック１の探索を予備選択せずに行い、最後に、トラック１で探索された位置を固定して、予備選択を行うトラック０の探索を再度行う。
【００８６】
図１０は、本実施の形態におけるパルスの位置の探索のアルゴリズムを模式的に示す図である。図１０は、図９に示す２段目等のパルス探索に対応する。
【００８７】
図３及び図６と同様、探索を始める前に、前処理として、入力されるターゲット等を用いて、探索に必要なパラメータを求めておく。ここで、ターゲットはベクトルにより表すことができ、前述の、固定符号帳探索のターゲットベクトルｖに対応する。パラメータとしては、ターゲットの時間逆順合成ベクトル（極性の予備選択済み）ｖｔＨ、パルスの合成ベクトル同士の相関行列（極性の予備選択済み）ＨｔＨ、トラック番号、及び各トラックのパルス候補位置の間隔、等が用意される。
【００８８】
これらのパラメータを用いて、予備選択を行うトラック０の探索ループＲ１を最初に実行し、次に、トラック０で探索されたパルスの位置を固定してトラック１の探索ループＲ２を予備選択せずに実行し、最後に、トラック１で探索された位置を固定して、予備選択を行うトラック０の探索ループＲ３を再度実行する。この処理により、各トラックの探索された位置、この探索までの総合的分子項の基になる相関値、及びこの探索までの総合的分母項、が得られる。
【００８９】
すなわち本実施の形態では、図１０に示すように、図３及び図６に示す従来のアルゴリムズと異なり、多重ループを採用せずに、トラック０の探索ループとトラック１の探索ループとを上記の順序で行うアルゴリズムを用いるので、パルスの位置探索に伴う計算量を削減することができる。
【００９０】
図１１は、本発明の実施の形態に係るパルス位置探索装置４００の構成を示すブロック図である。図１１は、図１０に示す逐次最適化探索に対応する。
【００９１】
パルス位置探索装置４００は、予備選択を行うトラック０の探索ループＲ１を実行する第１探索部４０１、トラック１の探索ループＲ２を予備選択せずに実行する第２探索部４０２、及び予備選択を行うトラック０の探索ループＲ３を実行する第３探索部４０３を有する。探索により求めるべきパルスの本数は２本である。
【００９２】
第１探索部４０１は、入力信号として、極性の予備選択済みであるターゲットの時間逆順合成ベクトル、パルスの合成ベクトル同士の相関行列、トラック番号、及び各トラックのパルス位置候補間隔等のパラメータを入力し、これらを用いてパルスの位置の予備選択をしながら１つのパルスの位置を探索する。第１探索部４０１は、探索結果を第２探索部４０２に出力する。
【００９３】
第２探索部４０２は、第１探索部４０１から探索結果として入力したパルスの位置を固定し、パルスの位置の予備選択をせずに、次のトラック１におけるパルスの位置を探索する。第２探索部４０２は、探索結果を第３探索部４０３に出力する。
【００９４】
第３探索部４０３は、第２探索部４０２から探索結果として入力したパルスの位置を固定し、トラック０におけるパルスの位置について、パルスの位置の予備選択をしながら再度パルスを探索する。第３探索部４０３は、再度の探索により求めた、各トラックの探索された位置、この探索までのコスト関数Ｃの総合的分子項の元になる相関値、及びこの探索までのコスト関数Ｃの総合的分母項を出力信号として出力する。
【００９５】
図１２は、本実施の形態におけるパルスの位置の探索方法を示すフロー図である。図１２は図１１のパルス位置探索装置４００の動作を具体的に示したものである。
【００９６】
図１２において、ｄ［ｎ］は、ターゲットの時間逆順合成ベクトル（極性の予備選択済み）である。ｃ［ｎ］［ｍ］は、パルスの合成ベクトル同士の相関行列（極性の予備選択済み）であり、ｎ≠ｍであるとともに、ｎ、ｍの値は２倍されている。ｘ、ｙは、パルスの候補位置である。ｘｘ、ｙｙは、最終的に探索された位置である。ｔｒａｃｋ０、ｔｒａｃｋ１は、トラック番号(本実施の形態では０、１、２、３のいずれか)である。ｐｓ＿ｔは、探索を行う前までのコスト関数Ｃの分子項の元である。ａｌｐ＿ｔは、探索を行う前までのコスト関数Ｃの分母項の総合値である。Ｌは、サブフレーム長である。ｓｔｅｐは、各トラックのパルスの候補位置の間隔（本実施の形態では「４」）である。ｐｉｃｋ［ｎ］は、各パルスの候補位置にその採用される順位が記載されている配列である。ｔｈｒｅｓは、指定された候補位置ｘの候補数から得られる値である。また、ｐｉｃｋ［ｎ］がｔｈｒｅｓの値より小さい値の場合のみの探索により指定された候補数だけ探索する。
【００９７】
図１２より、まず、第１探索部４０１は、パルスの候補位置ｘを探索するために、コスト関数Ｃの分子項ｓｑｋを「−１．０」とし、分母項ａｌｐｋを「１．０」とする（ステップＳＴ２０１）。
【００９８】
次に、第１探索部４０１は、パルスの候補位置ｘがサブフレーム長Ｌよりも小さいか否かを判定する（ステップＳＴ２０２）。
【００９９】
パルスの候補位置ｘがサブフレーム長Ｌよりも小さい場合（ステップＳＴ２０２：ｙｅｓ）には、第１探索部４０１は、ｐｉｃｋ［ｘ］がｔｈｒｅｓの値より小さいか否かを判定する（ステップＳＴ２０３）。
【０１００】
ｐｉｃｋ［ｘ］がｔｈｒｅｓの値以上の場合（ステップＳＴ２０３：ｎｏ）には、第１探索部４０１は、次の候補位置ｘの探索に移行し（ｘ＝ｘ＋ｓｔｅｐ）（ステップＳＴ２０４）、ステップＳＴ２０２に処理を戻す。
【０１０１】
一方、ｐｉｃｋ［ｘ］がｔｈｒｅｓの値より小さい場合（ステップＳＴ２０３：ｙｅｓ）には、第１探索部４０１は、ｐｓ０＝ｐｓ＿ｔ＋ｄ［ｘ］、ａｌｐ０＝ａｌｐ＿ｔ＋ｃ［ｘ］［ｘ］及びｓｑ＝ｐｓ０＊ｐｓ０の計算を行う（ステップＳＴ２０５）。ここで、コスト関数Ｃの分母項として新たに追加するパルスの合成ベクトルのパワｃ〔ｘ〕〔ｘ〕（同じパルス位置同士の相関値と同値）と、それまでに探索されているパルスの合成ベクトル同士の相関値ｃ〔ｘ〕〔＊〕とを、探索を行う前までのコスト関数Ｃの分母項の総合値に加算する必要があるが、この相関値ｃ〔ｘ〕〔＊〕の計算を省略して、パワｃ〔ｘ〕〔ｘ〕だけにすることにより前処理に必要な計算量を省略している。
【０１０２】
また、第１探索部４０１は、（ａｌｐｋ＊ｓｑ）の値が（ｓｑｋ＊ａｌｐ０）の値より大きいか否かを判定する（ステップＳＴ２０６）。
【０１０３】
（ａｌｐｋ＊ｓｑ）の値が（ｓｑｋ＊ａｌｐ０）の値以下の場合（ステップＳＴ２０６：ｎｏ）には、第１探索部４０１は、次の候補位置ｘの探索に移行し（ｘ＝ｘ＋ｓｔｅｐ）（ステップＳＴ２０４）、ステップＳＴ２０２に処理を戻す。
【０１０４】
一方、（ａｌｐｋ＊ｓｑ）の値が（ｓｑｋ＊ａｌｐ０）の値より大きい場合（ステップＳＴ２０６：ｙｅｓ）には、第１探索部４０１は、コスト関数Ｃの分母項及び分子項を確定して、最終的なパルスの位置ｘｘを確定する（ステップＳＴ２０７）。
【０１０５】
また、ステップＳＴ２０２において、パルスの候補位置ｘがサブフレーム長Ｌ以上の場合（ステップＳＴ２０２：ｎｏ）には、第２探索部４０２は、コスト関数Ｃの分子項ｓｑｋを「−１．０」とし、分母項ａｌｐｋを「１．０」とするとともに、ｐｓ０＝ｐｓ＿ｔ＋ｄ［ｘｘ］及びａｌｐ０＝ａｌｐ＿ｔ＋ｃ［ｘｘ］［ｘｘ］の計算を行う（ステップＳＴ２０８）。
【０１０６】
次に、第２探索部４０２は、パルスの候補位置ｙがサブフレーム長Ｌよりも小さいか否かを判定する（ステップＳＴ２０９）。
【０１０７】
パルスの候補位置ｙがサブフレーム長Ｌよりも小さい場合（ステップＳＴ２０９：ｙｅｓ）には、第２探索部４０２は、ｐｓ１＝ｐｓ０＋ｄ［ｙ］、ａｌｐ１＝ａｌｐ０＋ｃ［ｙ］［ｙ］＋ｃ［ｘｘ］［ｙ］及びｓｑ＝ｐｓ１＊ｐｓ１の計算を行う（ステップＳＴ２１０）。
【０１０８】
次に、第２探索部４０２は、（ａｌｐｋ＊ｓｑ）の値が（ｓｑｋ＊ａｌｐ１）の値より大きいか否かを判定する（ステップＳＴ２１１）。
【０１０９】
（ａｌｐｋ＊ｓｑ）の値が（ｓｑｋ＊ａｌｐ１）の値以下の場合（ステップＳＴ２１１：ｎｏ）には、第２探索部４０２は、次の候補位置ｙの探索に移行し（ｙ＝ｙ＋ｓｔｅｐ）（ステップＳＴ２１２）、ステップＳＴ２０９に処理を戻す。
【０１１０】
一方、（ａｌｐｋ＊ｓｑ）の値が（ｓｑｋ＊ａｌｐ１）の値より大きい場合（ステップＳＴ２１１：ｙｅｓ）には、第２探索部４０２は、コスト関数Ｃの分母項及び分子項を確定して、最終的なパルスの位置ｙｙを確定する（ステップＳＴ２１３）。
【０１１１】
また、ステップＳＴ２０９において、パルスの候補位置ｙがサブフレーム長Ｌ以上の場合（ステップＳＴ２０９：ｎｏ）には、第３探索部４０３は、ｐｓ１＝ｐｓ＿ｔ＋ｄ［ｙｙ］及びａｌｐ１＝ａｌｐ＿ｔ＋ｃ［ｙｙ］［ｙｙ］の計算を行う（ステップＳＴ２１４）。
【０１１２】
次に、第３探索部４０３は、パルスの候補位置ｘがサブフレーム長Ｌよりも小さいか否かを判定する（ステップＳＴ２１５）。
【０１１３】
パルスの候補位置ｘがサブフレーム長Ｌよりも小さい場合（ステップＳＴ２１５：ｙｅｓ）には、第３探索部４０３は、ｐｉｃｋ［ｘ］がｔｈｒｅｓの値より小さいか否かを判定する（ステップＳＴ２１６）。
【０１１４】
ｐｉｃｋ［ｘ］がｔｈｒｅｓの値以上の場合（ステップＳＴ２１６：ｎｏ）には、第３探索部４０３は、次の候補位置ｘの探索に移行し（ｘ＝ｘ＋ｓｔｅｐ）（ステップＳＴ２１７）、ステップＳＴ２１５に処理を戻す。
【０１１５】
一方、ｐｉｃｋ［ｘ］がｔｈｒｅｓの値より小さい場合（ステップＳＴ２１６：ｙｅｓ）には、第３探索部４０３は、ｐｓ０＝ｐｓ１＋ｄ［ｘ］、ａｌｐ０＝ａｌｐ１＋ｃ［ｘ］［ｘ］＋ｃ［ｘ］［ｙｙ］及びｓｑ＝ｐｓ０＊ｐｓ０の計算を行う（ステップＳＴ２１８）。
【０１１６】
次に、第３探索部４０３は、（ａｌｐｋ＊ｓｑ）の値が（ｓｑｋ＊ａｌｐ０）の値より大きいか否かを判定する（ステップＳＴ２１９）。
【０１１７】
（ａｌｐｋ＊ｓｑ）の値が（ｓｑｋ＊ａｌｐ０）の値以下の場合（ステップＳＴ２１９：ｎｏ）には、第３探索部４０３は、次の候補位置ｘの探索に移行し（ｘ＝ｘ＋ｓｔｅｐ）（ステップＳＴ２１７）、ステップＳＴ２１５に処理を戻す。
【０１１８】
一方、（ａｌｐｋ＊ｓｑ）の値が（ｓｑｋ＊ａｌｐ０）の値より大きい場合（ステップＳＴ２１９：ｙｅｓ）には、第３探索部４０３は、コスト関数Ｃの分母項及び分子項を確定して、最終的なパルスの位置ｘｘを確定する（ステップＳＴ２２０）。
【０１１９】
また、ステップＳＴ２１５において、パルスの候補位置ｘがサブフレーム長Ｌ以上の場合（ステップＳＴ２１５：ｎｏ）には、第３探索部４０３は、ｐｓ＿ｔ＝ｐｓ＿ｔ＋ｄ［ｘｘ］＋ｄ［ｙｙ］及びａｌｐ＿ｔ＝ａｌｐｋの計算を行う（ステップＳＴ２２１）。
【０１２０】
次に、第３探索部４０３は、最終的なパルスの位置ｘｘ、ｙｙ及びその際のコスト関数Ｃの分母項の総合値ａｌｐ＿ｔ及びコスト関数Ｃの分子項ｐｓ＿ｔの値を出力する（ステップＳＴ２２２）。
【０１２１】
図１０において、トラック０の探索ループＲ１は、図１２のステップＳＴ２０１〜ステップＳＴ２０８における処理に相当し、トラック１の探索ループＲ２は、図１２のステップＳＴ２０８〜ステップＳＴ２１４に相当し、トラック０の探索ループＲ３は、図１２のステップＳＴ２１４〜ステップＳＴ２２１に相当する。
【０１２２】
図１３は、本実施の形態におけるパルス探索方法により固定符号帳のパルス探索を行うことができる固定符号帳探索装置５００の構成を示すブロック図である。
【０１２３】
前処理部５０１は、ターゲット信号を入力とし、パルス探索に必要なパラメータを求める。計算により生成されるパラメータとしては、各パルス位置の極性予備選択を行って結果を反映した「ターゲットの時間逆順合成ベクトル」（数４のｖｔＨに相当）、及び極性予備選択の結果を反映し対角項以外の値を２倍した「パルスの合成ベクトル同士の相関行列」（数４のＨｔＨに相当）、などがある。また、設定するパラメータとしては、探索するトラック番号、前記番号のトラックのパルス位置候補の間隔、サブフレーム長、及び予備選択数、などがある。前処理部５０１は、これらのパラメータを制御部５０２に送る。
【０１２４】
制御部５０２は、総ビット数を入力とし、後述するパルス列符号化部５０４からのタイミング信号に応じて、パルス探索に必要なパラメータを、多重ループ探索部５０３あるいはパルス位置探索装置６００に送り、多重ループ探索部５０３あるいはパルス位置探索装置６００でパルスの探索を行うように制御する。本実施の形態では、最初の段階と最後の段階とでは多重ループ探索部５０３を駆動するように制御し、それ以外の段階ではパルス位置探索装置６００を駆動するように制御する。
【０１２５】
多重ループ探索部５０３あるいはパルス位置探索装置６００に送るパラメータとしては、前処理部５０１から送られてきたパラメータに加えて、各パルス位置にその採用される順位が記載されている配列、探索を行う前までの分子項の総合値、及び分母項の総合値、などがある。なお、制御部５０２は、前記探索を行う前までの分子項の総合値及び分母項の総合値を、最初の段階で多重ループ探索部５０３を最初に駆動するときには初期化し、次回以降の段階において２パルス探索（クローズドループ探索）を行う場合（図９の例では最後の段階）には、パルス列符号化部５０４から送られてきたものを多重ループ探索部５０３に送る。
【０１２６】
多重ループ探索部５０３は、パルスの位置を、２パルス探索すなわち多重ループによるクローズドループ探索を用いて探索する。この際、多重ループ探索部５０３は、一番外側のループにおいて、前記予備選択数と前記各パルス位置にその採用される順位が記載されている配列とを用いて予備選択を行い、探索されたパルス位置と、そのパルス位置において計算された分子項の総合値及び分母項の総合値とをパルス列符号化部５０４に出力する。
【０１２７】
パルス位置探索装置６００は、図１１に示すパルス位置探索装置４００に対応する。したがって、第１探索部４０１は第１探索部６０１に、第２探索部４０２は第２探索部６０２に、第３探索部４０３は第３探索部６０３に、それぞれ対応し、同一の構成を有する。このため、パルス位置探索装置６００の詳細な説明は省略する。
【０１２８】
パルス列符号化部５０４は、多重ループ探索部５０３あるいはパルス位置探索装置６００で探索されたパルス位置と、分子項の総合値及び分母項の総合値とを用いてパルスの符号化を行う。この固定符号帳としてのパルスの符号化は、多重ループ探索部５０３の結果とパルス位置探索装置６００の結果とを用いて行われる。そしてパルス列符号化部５０４は、分子項の総合値及び分母項の総合値を制御部５０２に送るとともに、次のパルス位置探索装置６００の動作あるいは多重ループ探索部５０３の動作を促すために、制御部５０２にタイミング信号を送る。そして、パルス列符号化部５０４は、最後に固定符号帳としての符号を出力する。
【０１２９】
このように、本実施の形態によるパルス位置探索装置によれば、少数パルスの探索において、多重ループを採用せずに、予備選択を行うトラック０の探索ループ、予備選択を行わないトラック１の探索ループ、予備選択を行うトラック０の探索ループ、の順でループを順次実行する逐次最適化探索を行うことにより、パルスの位置探索に伴う計算量を従来以上に削減することができる。また、このパルス位置探索装置を固定符号帳探索装置に適用すれば、固定符号帳において探索するべきパルス数が多くなった場合でも、符号化性能を落とさずに、パルスの位置探索に伴う計算量を削減することができる。そして、このような固定符号帳探索装置を符号化装置に適用すれば、復号装置において符号を復号する際に、高品質な復号信号を生成することができる。
【０１３０】
また、本実施の形態によれば、パルス位置探索装置において最初にパルスの位置の予備選択ありのトラック０の探索を行うことにより、従来の多重ループで探索した場合の結果と異なる結果が得られる可能性を小さくすることができる。
【０１３１】
また、本実施の形態によれば、パルス位置探索装置においてパルスの位置の予備選択ありのトラック０の探索をトラック１の探索の後に再度行うことにより、従来の多重ループで探索した場合の結果と異なる結果が得られる可能性を小さくすることができる。
【０１３２】
また、本実施の形態によれば、パルス位置探索装置において最初に用いるパルスの位置の予備選択ありのトラック０の探索において用いるコスト関数の分母項を、分母項の総合値にパルスの合成ベクトルのパワのみを加算して算出することにより、相関値の算出に必要な計算量を節約することができ、計算量をさらに削減することができる。
【０１３３】
なお、本実施の形態において、２本のパルス毎に探索を行ったが、これは従来例であるＧ．７１８と比較するためであり、３本のパルスまたは４本のパルス等の任意の本数のパルス毎に探索を行うことができる。
【０１３４】
また、本実施の形態の固定符号帳探索装置は、最初の段階と最後の段階とを従来の同時最適化探索（クローズドループ探索）としたが、必ずしもこの構成としなくてもよい。
【０１３５】
また、本実施の形態の固定符号帳探索装置は、最後の段階のパルス群の探索においては、前記総ビット数にかかわらず、同時最適化探索（クローズドループ探索）を用いてパルス位置探索を行うように、制御部で判断するようにしてもよい。
【０１３６】
また、本実施の形態において、本発明の逐次最適化探索をトラック０の探索（予備選択あり）、トラック１の探索（予備選択なし）及びトラック０の探索（予備選択あり）の３ループ構成としたが、本発明はこれに限らず、計算量は大きく削減することができるので、更にループ数を増やしてもよい。
【０１３７】
また、本実施の形態において、固定符号帳として代数的符号帳を用いたが、本発明はこれに限らず、代数的符号帳以外の他の符号帳に用いることができる。
【０１３８】
また、本実施の形態において、Ｇ．７１８を例に挙げて予備選択を用いた探索を行ったが、本発明はこれに限らず、少数パルスの探索を複数用いる任意の符号化に用いることができる。本発明は、パルスの位置探索に関する発明であり、Ｇ．７１８規格の他の構成に拠らないからである。
【０１３９】
また、本実施の形態において、符号化方式としてＣＥＬＰを用いたが、本発明はこれに限らず、ベクトル量子化に利用出来るので、ＣＥＬＰ以外の符号化方式にも適用することができる。例えば、ＭＤＣＴ（Modified Discrete Cosine Transform）またはＱＭＦ（Quadrature Mirror Filter）を利用したスペクトルの量子化にも利用でき、帯域拡張技術における低周波数領域のスペクトルの中から似たスペクトル形状を探索するアルゴリズムにも応用できる。
【０１４０】
また、本実施の形態において、パルス位置探索装置は、音声、音楽、あるいはこれらが混在する信号を対象とした符号化装置に応用した例を示したが、本発明はこれに限らず、音声認識、画像認識または画像符号化等に用いられる量子化にも応用することができる。本発明は、パルスの位置探索に関する発明であり、アルゴリズム全体の目的に依存しないからである。
【０１４１】
また、上記実施の形態では、本発明をハードウェアで構成する場合を例にとって説明したが、本発明はハードウェアとの連携においてソフトウェアでも実現することも可能である。
【０１４２】
また、上記実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されてもよいし、一部または全てを含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１４３】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル／プロセッサを利用してもよい。
【０１４４】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０１４５】
２０１１年６月１５日出願の特願２０１１−１３３７５０の日本出願に含まれる明細書、図面及び要約書の開示内容は、すべて本願に援用される。
【産業上の利用可能性】
【０１４６】
本発明は、複数のパルスの位置を探索するパルス位置探索装置、あるいは、符号帳を構成する複数のパルスの位置を探索する符号帳探索装置に好適であり、更には音声符号化装置に適用可能である。
【符号の説明】
【０１４７】
４００、６００  パルス位置探索装置
４０１、６０１  第１探索部
４０２、６０２  第２探索部
４０３、６０３  第３探索部
５００  固定符号帳探索装置
５０１  前処理部
５０２  制御部
５０３  多重ループ探索部
５０４  パルス列符号化部
【図１】
0005981909.tif 000006
【図２】
0005981909.tif 000007
【図３】
0005981909.tif 000008
【図４】
0005981909.tif 000009
【図５】
0005981909.tif 000010
【図６】
0005981909.tif 000011
【図７】
0005981909.tif 000012
【図８】
0005981909.tif 000013
【図９】
0005981909.tif 000014
【図１０】
0005981909.tif 000015
【図１１】
0005981909.tif 000016
【図１２】
0005981909.tif 000017
【図１３】
0005981909.tif 000018