本発明は、時系列信号の圧縮符号化技術に関し、特にフレームを複数のサブフレーム(またはブロック)に階層的に分割して符号化を行う技術に関する。
フレーム単位の信号列の符号化において、分析する単位を適応的に選択することにより圧縮効率が改善できることが知られている。そのひとつとして、フレーム毎のサンプル数を固定し、各フレーム中を複数のサブフレーム(ブロック)に階層的に分割して符号化を行う方法が知られている(例えば、非特許文献1、特許文献1、特許文献2) 。以下ではまず、この各フレーム中を複数のサブフレームに階層的に分割して符号化を行う従来の方法について説明する。
図1は、このような符号化処理を行う従来の符号化装置の構成を例示した図である。また、図2は、この符号化処理が行われるフレーム100の構成を例示した概念図である。図3は、自己相関係数算出部の構成を例示した図である。なお、それぞれ対応する離散時間(サンプル間隔)を有する複数サンプル(通常数百〜 数千サンプル)からなる短時間区間を、フレームと呼ぶ。例えば、フレーム内のサンプル点数は、1024点から32768点程度である。また、以下ではフレーム内のサンプル点数をNと表現する。
符号化装置9000は、サブフレーム部9800、各階層用の符号化部9001、9101、9201、9301、選択部9900を備える。サブフレーム部9800は、フレーム単位の入力信号列(以下、「フレーム入力信号列」という)が入力され、フレーム入力信号列の一部または全部から構成されるサブフレーム単位の入力信号列(以下、「サブフレーム入力信号列」という)を、サブフレームを構成するサンプル数が異なる4種類、出力する。各階層用の符号化部9001(9101、9201、9301)は、自己相関係数算出部9010(9110、9210、9310)と、線形予測符号化部9090(9190、9290、9390)を備える。自己相関係数算出部9010(9110、9210、9310)は、図3に示すように、窓関数処理手段9050(9150、9250、9350)と自己相関計算手段9060(9160、9260、9360)を有する。窓関数処理手段9050(9150、9250、9350)は、サブフレーム入力信号列に対して窓関数を掛け、窓掛信号列を出力する。自己相関計算手段9060(9160、9260、9360)は、窓掛信号列を用いて自己相関係数を求める。線形予測符号化部9090(9190、9290、9390)は、線形予測係数算出手段9020(9120、9220、9320)、線形予測係数量子化・符号化手段9030(9130、9230、9330)、残差符号化手段9040(9140、9240、9340)を備え、自己相関係数を用いてサブフレーム入力信号列を符号化し、サブフレーム入力信号列ごとの符号(以下、「サブフレーム符号」という)を生成する。選択部9900は、1つのフレーム入力信号列から生成された複数のサブフレーム符号の中から、1つ又は複数のサブフレーム符号を選択し、当該フレーム入力信号列に対する符号を生成する。
図2の例では、1つのフレームを4つの階層(第0階層110〜 第3階層140)にサブフレーム分割する。この例の場合、第0階層110では、フレーム100がサブフレームB(0,1)に一致する。また、第1階層120は、第0階層110のサブフレームB(0,1)を2分割したサブフレームB(1,1),B(1,2)によって構成される。さらに、第2階層130は、第1階層120のサブフレームB(1,1)を2分割したサブフレームB(2,1),B(2,2)と、サブフレームB(1,2)を2分割したサブフレームB(2,3),B(2,4)とによって構成される。また、第3階層140は、第2階層130のサブフレームB(2,1)を2分割したサブフレームB(3,1),B(3,2)と、サブフレームB(2,2)を2分割したサブフレームB(3,3),B(3,4)と、サブフレームB(2,3)を2分割したサブフレームB(3,5),B(3,6)と、サブフレームB(2,4)を2分割したサブフレームB(3,7),B(3,8)とによって構成される。なお、図2における0,N1,N2,N3,N4,…,N7は、フレーム100内のサブフレームB(3,0),…,B(3,7)の最初のサンプルの番号を示す。例えば、サブフレームB(2,2)は、N2からN4−1のサンプルによって構成されるサブフレーム、サブフレームB(1,2)は、N4からN−1のサンプルによって構成されるサブフレームである。また、図1の構成と図2のサブフレームへの分割方法は一例であり、階層数やサブフレーム分割数等はこれに限定されない。なお、サブフレームがフレームと一致するような場合(上記の例では第0階層の場合)を「1分割」と呼ぶ。また、分割数がより少ない階層を上位の階層と呼び、分割数がより多い階層を下位の階層と呼ぶ。そして、分割数が最も少ない階層が最上位の階層であり、図2の例では第0階層110である。分割数が最も多い階層が最下位の階層であり、図2の例では第3階層140である。最上位の階層と最下位の階層ではない階層が中間の階層であり、図2の例では第1階層120と第2階層130である。
この従来法では、各階層のサブフレーム毎に、自己相関係数算出、線形予測係数算出、線形予測係数量子化・符号化、残差信号算出及びその符号化(エントロピー符号化等)を独立に実行し、サブフレーム毎の予測係数符号と残差符号を算出する。そして、下位の階層の複数のサブフレームに対応する符号量の合計値と、当該下位の階層の複数のサブフレームから構成される上位の階層のサブフレームに対応する符号量とを比較し、フレーム100内で符号量の合計が最小となるサブフレームの組合せを選択する。
図2の例で具体的に説明すると、まず、サブフレームB(0,1),B(1,1),B(1,2),B(2,1)〜B(2,4),B(3,1)〜B(3,8)毎に、予測分析、予測係数符号化、予測フィルタによる予測残差信号算出及びその符号化を独立に実行して、サブフレーム毎の符号を算出し、それらの符号量を計算する。
次に、第3階層140のサブフレームB(3,1),B(3,2)の符号の符号量の合計値と、それらの上位の階層である第2階層130のサブフレームB(2,1)の符号の符号量とを比較し、符号量が小さい方を選択する。この図の例では、サブフレームB(3,1),B(3,2)の符号の符号量の合計値の方がサブフレームB(2,1)の符号の符号量よりも大きいので、第2階層130のサブフレームB(2,1)が選択されている。なお、この図では、選択されたサブフレームを網掛けで示している。同様に、第3階層140のサブフレームB(3,3),B(3,4)の符号の符号量の合計値と、それらの上位の階層である第2階層130のサブフレームB(2,2)の符号の符号量とを比較し、符号量が小さい方を選択する。この図の例では、第3階層140のサブフレームB(3,3),B(3,4)が選択されている。さらに、第2,3階層のその他のサブフレームB(2,3),B(2,4),B(3,5)〜B(3,8)についても同様な処理を行い、サブフレーム選択を行う。
次に、選択された第2階層130のサブフレームB(2,1)及び第3階層140のB(3,3),B(3,4)の符号の符号量の合計と、それらの上位の階層である第1階層120のサブフレームB(1,1)の符号の符号量とを比較し、符号量が小さい方を選択する。この図の例では、サブフレームB(2,1),B(3,3),B(3,4)が選択されている。また、サブフレームB(1,2)とその下位サブフレーム(サブフレームB(2,3),B(2,4),B(3,5)〜B(3,8)のうち選択されているサブフレーム)についても同様なサブフレーム選択が行われる。この図の例では、第1階層120のサブフレームB(1,2)が選択されている。次に、これまで選択されたサブフレームB(2,1),B(3,3),B(3,4),B(1,2)の符号の符号量の合計と、それらの上位の階層である第0階層110のサブフレームB(0,1)の符号の符号量とを比較し、符号量が小さい方を選択する。この図の例では、サブフレームB(2,1),B(3,3),B(3,4),B(1,2)が選択されている。そして、このように選択されたサブフレームB(2,1),B(3,3),B(3,4),B(1,2)に対応する予測係数符号と、残差符号と、サブフレームB(2,1),B(3,3),B(3,4),B(1,2)を示す選択情報とが、フレーム100の符号列として出力される。
サブフレーム内のサンプル数をNiとするとき、p次の正規化自己相関係数は、以下の計算で求められる。
ただし、0≦m≦p−1、cxx(m)はm番目の正規化自己相関係数、x(n)は計算対象のサブフレームの窓掛信号列のn番目のサンプルの値である。窓関数としては、一般的には、ハミング窓、ハニング窓、ブラックマン窓などがある。なお、上述のm番目の正規化自己相関係数の計算方法から分かるように、cxx(m)=cxx(−m)が成り立つ。そして、FFT(またはDFT)を用いることで、pが大きな値(高次)の場合にcxx(m)の計算に必要な演算量を抑えることができることが知られている。具体的には、非特許文献2のRader法、非特許文献3のRader法に類似の方法などがある。
図4に、FFT(高速フーリエ変換)を用いて自己相関係数を計算する場合の自己相関計算手段9060(9160、9260、9360)の構成例を示す。この場合、自己相関計算手段9060(9160、9260、9360)は、FFT分割処理手段9061(9161、9261、9361)、FFT計算手段9062(9162、9262、9362)、複素積和計算手段9063(9163、9263、9363)、逆FFT計算手段9064(9164、9264、9364)を備える。図5は、図4の自己相関計算手段9060(9160、9260、9360)の処理を説明するための概念図である。
自己相関係数を求めたいサブフレーム(またはフレーム)のサンプル数をN、求める自己相関係数の次数をpとする。FFT分割処理手段9061(9161、9261、9361)は、サブフレーム(またはフレーム)の信号列をpサンプルごとのK(K=N÷p)個の小区間に分割する。図5中のxk(n)は、k番目の小区間の信号列にp個の値が0の信号を付加した信号列である。ただし、1≦k≦K、0≦n≦M−1、M=2×pである。FFT計算手段9062(9162、9262、9362)は、次式のようにxk(n)をFFTしてXk(j)を求める。
複素積和計算手段9063(9163、9263、9363)は、A0(j)=0とおき、j=0,…,M−1およびk=1,…,Kに対して、
を計算する。ただし、Xk *(j)はXk(j)の共役複素数とする。そして、この演算によって求められた値から、V(j)=AK(j)を得る。逆FFT計算手段9064(9164、9264、9364)は、V(j)を次式のように逆FFTし、自己相関係数cxx(m)を求める。
なお、特許文献1の方法は、符号量を推定し、推定した符号量が最小となるように分割パターン(サブフレーム)を選択する方法である。また、特許文献2の方法は、特許文献1の方法の演算量を削減する方法である。特許文献2の方法では、自己相関係数が計算済みのサブフレーム(ブロック)の和で構成されるサブフレームについては、窓形状(窓関数の値)が異なることは無視して、計算済みの自己相関係数の和を、そのサブフレームの自己相関係数として代用している。
I S O / I E C 1 4 4 9 6 − 3 : 2 0 0 5 / A M D 2 ( 通称M P E G− 4 A L S )
Oppenheim, Schafer著, 伊達玄訳,デジタル信号処理(下),pp.230-231.
Saul A. Teukolsky, William T. Vetterling, Bran P. Flannery, NUMERICAL RECIPES in C++ Second Edition, Willam H. Press, pp.550-552, "13.2 Correlation and Autocorrelation Using the FFT".
特開2007−286146号公報
特開2007−286200号公報
図1に示した符号化方法では、複数の階層のサブフレームの全サブフレームに対する分析をそれぞれ独立に行い、各サブフレームの符号量を比較した。しかし、この方法では、分析に必要な演算量が非常に大きくなってしまう。また、特許文献1の方法では、近似によって演算量を大幅に削減できるが、この方法で得られる分析結果は精度が十分でないため最適なサブフレームの組み合わせが選択できず、高い圧縮率が得られない場合がある。さらに、特許文献2の方法は、演算量を大幅に削減できる。しかし、サブユニット長が異なると窓形状も異なるため、近似的にした自己相関係数を求めることができない。したがって、この方法も計算精度が十分でないため、最適なサブフレームの組み合わせが選択できず、高い圧縮率が得られない場合がある。
本発明の目的は、このような問題を鑑み、演算量を少なくしながら、最適なサブフレームの組み合わせを選択し、高い圧縮率を得ることができる符号化技術を提供することである。
本発明の符号化装置は、サブフレーム部、自己相関係数算出部、線形予測符号化部、選択部、中間計算結果記憶部を備える。サブフレーム部は、フレーム単位の入力信号列(以下、「フレーム入力信号列」という)が入力され、フレーム入力信号列の一部または全部から構成されるサブフレーム単位の入力信号列(以下、「サブフレーム入力信号列」という)を、サブフレームを構成するサンプル数(サブフレーム入力信号列を構成する信号の数)が異なる複数種類、出力する。例えば、上述したように第0階層から第3階層の4種類のサブフレーム入力信号列を出力する。ただし、4種類に限定する必要はないし、図2とはことなる種類でもよい。
自己相関係数算出部は、窓関数処理手段と計算手段を有し、サブフレーム入力信号列ごとの自己相関係数を算出する。窓関数処理手段は、両端が1ではなく、かつ、両端以外に1である範囲が存在する窓関数により、サブフレーム入力信号列に窓関数処理を施し、窓掛信号列を出力する。計算手段は、中間計算結果記憶部に利用できる中間計算結果が存在する場合には当該中間計算結果を利用して、窓掛信号列から自己相関係数を計算する。計算手段は、複数種類のサブフレーム入力信号列に対する自己相関係数の算出は、サブフレームを構成するサンプル数が少ない方から行う。
線形予測符号化部は、自己相関係数を用いてサブフレーム入力信号列を符号化し、サブフレーム入力信号列ごとの符号(以下、「サブフレーム符号」という)を生成する。選択部は、1つのフレーム入力信号列から生成された複数のサブフレーム符号の中から、1つ又は複数のサブフレーム符号を選択し、当該フレーム入力信号列に対する符号を生成する。中間計算結果記憶部は、自己相関係数算出部での計算処理で求められた中間計算結果を記憶する。例えば、計算手段に、後で行う計算で利用できる可能性のある中間計算結果を、選択して中間計算結果記録部に記録する機能を備えさせればよい。
なお、直接法によって自己相関係数を求める場合には、計算手段は、中間計算結果記憶部に記憶されている中間計算結果を求めた際に用いた窓関数と、自己相関係数を計算する対象となっている窓掛信号列を求める際に用いた窓関数とを比較し、窓関数の値が異なる部分に対しては、中間計算結果記憶部に記憶されている中間計算結果を利用しないで自己相関係数を計算すればよい。また、窓関数の値が同じ部分に対しては、中間計算結果記憶部に記憶されている中間計算結果を利用すればよい。
また、FFT法によって自己相関係数を求める場合には、符号化装置は、窓掛信号列の窓関数の値が1の部分に対するFFT及び複素積和の結果を、中間計算結果として記憶しておく。そして、計算手段は、自己相関係数を計算する対象となっている窓掛信号列の窓関数の値が1の部分に対しては、中間計算結果が中間計算結果記憶部に記憶されている場合には、その中間計算結果を利用する。
本発明の符号化装置によれば、両端以外に1である範囲が存在する窓関数によって窓掛信号列を生成する。また、複数種類のサブフレーム入力信号列に対する自己相関係数の算出は、サブフレームを構成するサンプル数が少ない方から行う。このことによって、先に計算した中間計算結果(自己相関係数を求めるために行った途中の計算結果)の中に、後の計算によって求められる中間計算結果と一致する場合がある。そこで、本発明の符号化装置では、中間計算結果が一致する場合には計算を行わず、中間計算結果記憶部に記憶しておいた中間計算結果を利用する。
このように、本発明の符号化装置は、窓関数の工夫によって再利用可能な中間計算結果の割合を多くしているので、演算量を少なくでき、かつ、入力信号列の分析の精度を高くできる。つまり、演算量が少なく高い圧縮率の符号化装置を提供できる。
以下に、本発明の実施例を示す。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
実施例1では、直接法により自己相関係数を求める場合について説明する。図6に実施例1の符号化装置の構成例を、図7に自己相関係数算出部と中間計算結果記憶部の詳細な構成例を示す。また、図8に実施例1の符号化装置の処理フローの例を、図9に自己相関係数算出部の処理フローの例を示す。実施例1の符号化装置1000は、サブフレーム部9800、自己相関係数算出部1010、1110、1210、1310、線形予測符号化部9090、9190、9290、9390、選択部9900、中間計算結果記憶部1500を備える。なお、符号化装置1000は、自己相関係数算出部1010(1110、1210、1310)と線形予測符号化部9090(9190、9290、9390)とを1つずつ組み合わせた4つの符号化部1001、1101、1201、1301を備えている。
サブフレーム部9800は、フレーム単位の入力信号列(以下、「フレーム入力信号列」という)が入力され、フレーム入力信号列の一部または全部から構成されるサブフレーム単位の入力信号列(以下、「サブフレーム入力信号列」という)を、サブフレームを構成するサンプル数が異なる複数種類、出力する(S9800)。例えば、上述したように第0階層から第3階層の4種類のサブフレーム入力信号列を出力する。ただし、4種類に限定する必要はないし、図2とはことなる種類でもよい。図2では、1つ上位の階層のサブフレームを2分割して下位の階層のサブフレームとした。例えば、1つ上位の階層のサブフレームを3分割して下位の階層のサブフレームとし、階層を3つとしてもよい。つまり、どんなサブフレーム入力信号列を何種類生成するかは、フレーム入力信号列の特徴(サンプル数など)を考慮して適宜設計すればよい。なお、サブフレーム部9800は、図1に示した従来のサブフレーム部と同じである。また、本明細書内で、「分割」の意味には、「1分割」つまり分割しないことも含まれる。例えば、「フレームを1分割してサブフレームとする。」とは、「サブフレーム=フレーム」となるようなサブフレームを生成することである。また、「フレームを分割してサブフレームを生成する。」には、フレームを1分割する場合(図2の第0階層)も含まれている。
自己相関係数算出部1010、1110、1210、1310は、窓関数処理手段1050、1150、1250、1350と計算手段1060、1160、1260、1360を有し、サブフレーム入力信号列ごとの自己相関係数を算出する(S1010、S1110、S1210、S1310)。窓関数処理手段1050、1150、1250、1350は、両端が1ではなく、かつ、両端以外に1である範囲が存在する窓関数により、サブフレーム入力信号列に窓関数処理を施し、窓掛信号列を出力する(S1050、S1150、S1250、S1350)。計算手段1060、1160、1260、1360は、自己相関係数計算手段1061、1161、1261、1361、加算正規化手段1062、1162、1262、1362を備える。そして、計算手段1060、1160、1260は、さらに中間計算結果取得処理手段1063、1163、1263を備え、計算手段1160、1260、1360は、さらに中間計算結果保存処理手段1164、1264、1364を備える。計算手段1060、1160、1260、1360は、中間計算結果記憶部1500に利用できる中間計算結果が存在する場合には当該中間計算結果を利用して、窓掛信号列から自己相関係数を計算する(S1060、S1160、S1260、S1360)。なお、計算手段1060、1160、1260、1360は、利用できる中間計算結果を多くするため、複数種類のサブフレーム入力信号列に対する自己相関係数の算出は、サブフレームを構成するサンプル数が少ない方から行う。つまり、図8に示すように、下位の階層から順番に処理を行っていく。
計算手段1060、1160、1260、1360の処理について、以下に詳細に説明する(図7、図9参照)。計算手段1060、1160、1260の中間計算結果取得処理手段1063、1163、1263は、中間計算結果記憶部1500に利用できる中間計算結果が存在するかを確認し、利用できる範囲の中間計算結果を取得する(S1063、S1163、S1263)。なお、最下位の階層(図6の場合は第3階層)の計算手段1360は、最初に処理を行うので、利用できる中間計算結果が存在しない。したがって、計算手段1360は、中間計算結果取得処理手段を有さなくてもよい。自己相関係数計算手段1061、1161、1261、1361は、利用できる中間計算結果がない範囲の信号列の自己相関係数を計算する(S1061、S1161、S1261、S1361)。加算正規化手段1062、1162、1262、1362は、自己相関係数計算手段1061、1161、1261、1361が計算した自己相関係数と、中間計算結果記憶部1500から読み出した自己相関係数とを用いてサブフレーム入力信号列の自己相関係数を求める(S1062、S1162、S1262、S1362)。計算手段1160、1260、1360の中間計算結果保存処理手段1164、1264、1364は、中間計算結果が求められた時には当該中間計算結果を中間計算結果記憶部1500に記憶させる(S1164、S1264、S1364)。なお、最上位の階層(図6の場合は第0階層)の計算手段1060は、最後に処理を行うので、後の計算で利用できる中間計算結果が存在しない。したがって、計算手段1060は、中間計算結果保存処理手段を有さなくてもよい。
線形予測符号化部9090、9190、9290、9390は、自己相関係数を用いてサブフレーム入力信号列を符号化し、サブフレーム入力信号列ごとの符号(以下、「サブフレーム符号」という)を生成する(S9090、S9190、S9290、S9390)。なお、線形予測符号化部9090、9190、9290、9390の構成は、図1に示した従来の線形予測符号化部と同じである。選択部9900は、1つのフレーム入力信号列から生成された複数のサブフレーム符号の中から、1つ又は複数のサブフレーム符号を選択し、当該フレーム入力信号列に対する符号を生成する(S9900)。なお、選択部9900は、図1に示した従来の選択部と同じである。中間計算結果記憶部1500は、自己相関係数算出部での計算処理で求められた中間計算結果を記憶する。中間計算結果記憶部1500は、すべての中間計算結果を記憶してもよいし、後の計算で利用できる中間計算結果を選択して記憶してもよい。選択して記憶する場合には、中間計算結果保存処理手段1164、1264、1364が、サブフレームへの分割の方法や窓関数などを考慮し、後で行う計算で利用できる可能性のある中間計算結果を選択して中間計算結果記憶部に記憶させればよい。
次に、本発明の特徴を具体的な窓関数の例を示しながら説明する。図10に、本発明で使用する窓関数の例を示す。図11に、図10の窓関数を用いた場合に自己相関係数を計算しなければ成らない範囲と再利用できる自己相関係数の範囲を示す。図12は、加算正規化手段の処理を説明するための図である。ステップS1050、S1150、S1250、S1350で、窓関数処理手段1050、1150、1250、1350が行う窓関数処理では、両端が1ではなく、かつ、両端以外に1である範囲が存在する窓関数を用いる。図10に示された窓関数は、その例である。Wをサブフレームのサンプル数、n(ただし、0≦n≦W−1)をサンプルの位置を示す整数とすると、この窓関数w(n)は、次式で表される。
窓関数w(n)は、両端が1ではなく、かつ、両端以外に1である範囲が存在していることが分かる。なお、窓関数w(n)は、1つの例である。この窓関数でなくても、両端が1ではなく、かつ、両端以外に1である範囲が存在する窓関数であれば、本発明の効果が得られることに注意されたい。
そして、サブフレーム入力信号列をx(n)とすると、窓関数処理手段1050、1150、1250、1350から出力される窓掛信号列は、w(n)・x(n)となる。なお、サブフレームのサンプル数Wは、フレームをどのように分割するかで変わり、階層ごとに異なる。例えば、図2に示した第0階層はNがサンプル数W、第1階層はN4(つまりN/2)がサンプル数W、第2階層はN2(つまりN/4)がサンプル数W、第3階層はN1(つまりN/8)がサンプル数Wに相当する。
次に図11を参照しながら計算手段1060、1160、1260、1360の処理について説明する。図11の各階層は図2と同じように分割された場合を示している。計算手段1060、1160、1260、1360が自己相関係数を計算しなければならないのは、窓関数w(n)の値が1で無い範囲と、窓関数w(n)の値は1であるが利用できる中間計算結果が記憶されていない範囲である。一方、計算手段1060、1160、1260、1360が自己相関係数を再利用できるのは、窓関数w(n)の値は1であり、中間計算結果が記憶されている範囲である。第3階層のサブフレーム入力信号列は、すべての範囲について、自己相関係数を計算しなければならない。しかし、図11から、第2階層、第1階層、および第0階層では、多くの範囲で自己相関係数を再利用できることが分かる。
図12は、図11の中の一部を切り出した図である。自己相関係数計算手段1361は、第3階層のすべての範囲301〜310について自己相関係数を計算する。その中の範囲303、範囲304、範囲305、範囲308、範囲309、範囲303と範囲304との境界部分、範囲304と範囲305との境界部分、および3範囲08と範囲309との境界部分に対する中間計算結果は、後の計算で利用できるので中間計算結果記憶部1500に記憶される。これらの中間計算結果の中で計算手段1260での処理に使用される範囲303、範囲304、範囲305、範囲308、範囲303と範囲304との境界部分、および範囲304と範囲305との境界部分の中間計算結果は、以下のように求めることができる。
ただし、n0は範囲303の最初のサンプルの位置、n1は範囲304の最初のサンプルの位置、n2は範囲305の最初のサンプルの位置、n4は範囲308の最初のサンプルの位置、n5は範囲309の最初のサンプルの位置を示す。なお、窓関数w(n)の値が1の範囲では、上記のように自己相関係数の計算式にw(n)が表れない。つまり、この範囲の計算では、窓掛信号列ではなく、サブフレーム入力信号列を用いてもよい。言い換えると、窓関数w(n)の値が1の範囲では、窓掛信号列とはサブフレーム入力信号列のことである。
次に、計算手段1260での処理について説明する。中間計算結果取得処理手段1263は、中間計算結果記憶部1500に記憶されている中間計算結果の中から利用できる中間計算結果を取り出す。取り出される中間計算結果は、上述の範囲303、範囲304、範囲305、範囲308、範囲303と範囲304との境界部分、および範囲304と範囲305との境界部分の中間計算結果である。範囲303は範囲202に、範囲304は範囲203に、範囲305は範囲204に、範囲308は範囲206に、範囲303と範囲304との境界部分は範囲202と範囲203との境界部分に、範囲304と範囲305との境界部分は範囲203と範囲204との境界部分に相当する。これらの範囲は中間計算結果が利用される。足りない範囲については、自己相関係数計算手段1261が、自己相関係数を計算する。具体的には、範囲201、範囲205、範囲207、範囲201と範囲202との境界部分、範囲204と範囲205との境界部分、範囲205と範囲206との境界部分、および範囲206と範囲207との境界部分について、自己相関係数計算手段1261が以下のように自己相関係数を求める。
加算正規化手段1262は、次式のように、中間計算結果取得処理手段1263が取得した中間計算結果と自己相関係数計算手段1261が計算した自己相関係数をすべて加算し、サブフレームのサンプル数で除算することにより、正規化自己相関係数cxx(m)を求める。
ただし、0≦m≦p−1、pは自己相関係数の次数である。
中間計算結果保存処理手段1264は、中間計算結果をそのまま中間計算結果記憶部1500に記憶してもよいし、上位の階層での計算が簡単になるように変形した上で中間計算結果記憶部1500に記憶してもよい。図11の太枠で示した範囲は、上位の階層 で利用できる範囲なので、太枠の範囲ごとに中間計算結果をまとめておけば、上位の階層での計算が簡単になる。例えば、範囲204〜206(つまり、範囲204、範囲205、範囲206、範囲204と範囲205との境界部分、および範囲205と範囲206との境界部分)に対する中間計算結果は、第1階層での自己相関係数の計算に利用できる。そこで、中間計算結果保存処理手段1264は、次のように範囲204〜206の中間計算結果を計算し、中間計算結果記憶部1500に記憶させておけばよい。
なお、記憶領域の節約効果が小さくなり、上位の階層における加算正規化部の演算処理量が多くなってしまうが、中間計算結果保存処理手段1164、1264、1364を備えず、自己相関計算部が計算した自己相関係数をすべて中間計算結果記憶部1550に記憶するようにしてもよい。
実施例1の符号化装置によれば、両端以外に1である範囲が存在する窓関数によって窓掛信号列を生成する。また、複数種類のサブフレーム入力信号列に対する自己相関係数の算出は、サブフレームを構成するサンプル数が少ない方から行う。このことによって、先に計算した中間計算結果(自己相関係数を求めるために行った途中の計算結果)の中に、後の計算によって求められる中間計算結果と一致する場合がある。そして、実施例1の符号化装置では、中間計算結果が一致する場合には計算を行わず、中間計算結果記憶部に記憶しておいた中間計算結果を利用する。このように、実施例1の符号化装置は、窓関数の工夫によって再利用可能な中間計算結果の割合を多くしているので、演算量を少なくでき、かつ、入力信号列の分析の精度を高くできる。つまり、演算量が少なく高い圧縮率の符号化装置を提供できる。また、演算量が減るので、処理の高速化も可能である。
[変形例1]
変形例1では、直接法により自己相関係数を求める場合であって、上位の階層において自己相関係数の次数が増加するときについて説明する。変形例1でも、サブフレームの階層の例は図2と同じとする。下位の階層と上位の階層とで、線形予測(自己相関係数を求める次数)が異なる場合、実施例1の符号化装置1000では対応できない。そこで、変形例1では、下位の階層と同一の次数までは実施例1と同様に下位の階層での計算で求めた自己相関係数(中間計算結果)は利用しながら計算し、これに加えて下位の階層には無い高次の自己相関係数も計算する方法を示す。
変形例1の符号化装置2000の機能構成例は図6と同じである。また、符号化装置2000の処理フローは図8と同じである。符号化装置2000は、符号化装置1000と、自己相関係数算出部2010、2110、2210と中間計算結果記憶部2500とが異なる。図13に、自己相関係数算出部2010、2110、2210、1310と中間計算結果記憶部2500の詳細な構成例を示す。また、図14に、自己相関係数算出部2010、2110、2210の処理フローを示す。自己相関係数算出部2010、2110、2210は、計算手段2060、2160、2260が、自己相関係数算出部1010、1110、1210(図7)と異なる。なお、最下位の階層(図6の場合は第3階層)の計算手段1360は、最初に処理を行うので、利用できる中間計算結果が存在しない。したがって、計算手段1360は、符号化装置1000と同じでよい。
計算手段2060、2160、2260は、自己相関係数計算手段1061、1161、1261、加算正規化手段2062、2162、2262、中間計算結果取得処理手段2063、2163、2263、中間計算結果保存処理手段2164、2264、高次自己相関係数計算手段2065、2165、2265を備える。計算手段2060、2160、2260は、中間計算結果記憶部2500に利用できる中間計算結果が存在する場合には当該中間計算結果を利用して、窓掛信号列から自己相関係数を計算する(S2060、S2160、S2260)。
以下に詳細に説明する。計算手段2060、2160、2260の中間計算結果取得処理手段2063、2163、2263は、中間計算結果記憶部2500に利用できる中間計算結果が存在するかを確認し、利用できる範囲の中間計算結果を取得する(S2063、S2163、S2263)。自己相関係数計算手段1061、1161、1261は、利用できる中間計算結果がない範囲の信号列の自己相関係数を計算する(S1061、S1161、S1261)。
加算正規化手段2062、2162、2262は、自己相関係数計算手段2061、2161、2261、2361が計算した自己相関係数と、中間計算結果記憶部2500から読み出した自己相関係数とを用いてサブフレーム入力信号列の自己相関係数を求める(S2062、S2162、S2262、S2362)。
高次自己相関係数計算手段2065、2165、2265は、不足している次数に対応した自己相関係数を計算する。例えば、第2階層での次数をp2、第1階層での次数をp1とし、p2<p1とする。第2階層までの計算が終わった時には、中間計算結果記憶部2500には、正規化自己相関係数cxx(m)(ただし、0≦m≦p2−1)を求めるために利用できる中間計算結果は記憶されている。しかし、p2≦m≦p1−1の範囲の正規化自己相関係数cxx(m)を求めるための中間計算結果は記憶されていない。そこで、高次自己相関係数計算手段2065、2165、2265は、窓掛信号列の全範囲についてp2≦m≦p1−1に対する自己相関係数を求める。
中間計算結果保存処理手段2164、2264は、自己相関係数計算手段1161、1261の計算結果と高次自己相関係数計算手段2165、2265の計算結果とを、中間計算結果として中間計算結果記憶部2500に記憶させる(S2164、S2264)。
変形例1の符号化装置は、上述のような構成なので、実施例1の符号化装置の効果を得るとともに、各階層で求めなければならない自己相関係数の次数が異なる場合にも対応できる。
[変形例2]
実施例1、変形例1では、符号化部を階層の数と同じだけ備えていた(図6の例では4つ)。しかし、1つの符号化部ですべての階層の処理を行ってもよい。図15に、変形例2の符号化装置の構成例を示す。また、図16に、変形例2の符号化装置の処理フローの例を示す。符号化装置3000は、サブフレーム部9850、自己相関係数算出部1610、線形予測符号化部9590、選択部9900、中間計算結果記憶部1700を備える。符号化装置3000は、自己相関係数算出部1610、線形予測符号化部9590、中間計算結果記憶部1700を1つずつ有する符号化部1601を1つだけ備えている。サブフレーム部9850は、フレーム単位の入力信号列(以下、「フレーム入力信号列」という)が入力され、フレーム入力信号列の一部または全部から構成されるサブフレーム単位の入力信号列(以下、「サブフレーム入力信号列」という)を、サブフレームを構成するサンプル数が異なる複数種類、出力する(S9850)。符号化装置3000は、最下位層のサブフレーム入力信号列を処理の対象とする(S3010)。
自己相関係数算出部1610は、窓関数処理手段1650と計算手段1660を有し、サブフレーム入力信号列ごとの自己相関係数を算出する(S1610)。具体的には、窓関数処理手段1650は、両端が1ではなく、かつ、両端以外に1である範囲が存在する窓関数により、処理対象のサブフレーム入力信号列に窓関数処理を施し、窓掛信号列を出力する(S1650)。計算手段1660は、自己相関係数計算手段1661、加算正規化手段1662、中間計算結果取得処理手段1663、中間計算結果保存処理手段1664を備える。中間計算結果取得処理手段1663は、中間計算結果記憶部1700に利用できる中間計算結果が存在する場合には当該中間計算結果を取り込む(S1663)。自己相関係数計算手段1661は、利用できる中間計算結果がない範囲の信号列の自己相関係数を計算する(S1661)。加算正規化手段1662は、自己相関係数計算手段1661が計算した自己相関係数と、中間計算結果記憶部1700から読み出した自己相関係数とを用いてサブフレーム入力信号列の自己相関係数を求める(S1662)。中間計算結果保存処理手段1664は、中間計算結果が求められた時には当該中間計算結果を中間計算結果記憶部1700に記憶させる(S1664)。なお、階層によって自己相関係数の次数が異なる場合には、変形例1と同じように、自己相関係数算出部1610は、高次自己相関係数計算手段2665も備えればよく、次数の足りないときには高次の自己相関係数を計算すればよい(S2665)。
線形予測符号化部9590は、自己相関係数を用いてサブフレーム入力信号列を符号化し、サブフレーム入力信号列ごとの符号(以下、「サブフレーム符号」という)を生成する(S9590)。符号化装置3000は、すべての階層の符号化が終了したかを確認する(S3020)。ステップS3020がNoの場合には、符号化装置3000は、1つ上位の階層のサブフレーム入力信号列を処理の対象とし、ステップS1650に戻る(S3030)。ステップS3020がNoの場合には、ステップS9950に進む。選択部9950は、1つのフレーム入力信号列から生成された複数のサブフレーム符号の中から、1つ又は複数のサブフレーム符号を選択し、当該フレーム入力信号列に対する符号を生成する(S9950)。
変形例2の符号化装置は、このような構成なので、実施例1、変形例1と同じ効果を得ることができる。
実施例2では、FFT法により自己相関係数を求める場合について説明する。図17に実施例2の符号化装置の構成例を、図18に自己相関係数算出部と中間計算結果記憶部の詳細な構成例を示す。また、図19に実施例2の符号化装置の処理フローの例を、図20に自己相関係数算出部の処理フローの例を示す。実施例2の符号化装置6000は、サブフレーム部9800、自己相関係数算出部6010、6110、6210、6310、線形予測符号化部9090、9190、9290、9390、選択部9900、中間計算結果記憶部6500を備える。
サブフレーム部9800は、フレーム入力信号列が入力され、フレーム入力信号列の一部または全部から構成されるサブフレーム入力信号列を、サブフレームを構成するサンプル数が異なる複数種類、出力する(S9800)。例えば、上述したように第0階層から第3階層の4種類のサブフレーム入力信号列を出力する。ただし、4種類に限定する必要はないし、図2とはことなる種類でもよい。図2では、1つ上位の階層のサブフレームを2分割して下位の階層のサブフレームとした。例えば、1つ上位の階層のサブフレームを3分割して下位の階層のサブフレームとし、階層を3つとしてもよい。つまり、どんなサブフレーム入力信号列を何種類生成するかは、フレーム入力信号列の特徴(サンプル数など)を考慮して適宜設計すればよい。なお、サブフレーム部9800は、図1に示した従来のサブフレーム部と同じである。また、本明細書内で、「分割」の意味には、「1分割」つまり分割しないことも含まれる。例えば、「フレームを1分割してサブフレームとする。」とは、「サブフレーム=フレーム」となるようなサブフレームを生成することである。また、「フレームを分割してサブフレームを生成する。」には、フレームを1分割する場合(図2の第0階層)も含まれている。
自己相関係数算出部6010、6110、6210、6310は、窓関数処理手段1050、1150、1250、1350と計算手段6060、6160、6260、6360を有し、サブフレーム入力信号列ごとの自己相関係数を算出する(S6010、S6110、S6210、S6310)。窓関数処理手段1050、1150、1250、1350は、両端が1ではなく、かつ、両端以外に1である範囲が存在する窓関数w(n)により、サブフレーム入力信号列に窓関数処理を施し、窓掛信号列を出力する(S1050、S1150、S1250、S1350)。例えば、図10のような窓関数を用いればよい。
計算手段6060、6160、6260、6360は、FFT分割処理手段9061、9161、9261、9361、FFT計算手段6062、6162、6262、6362、複素積和計算手段6065、6165、6265、6365、逆FFT計算手段9064、9164、9264、9364を備える。そして、計算手段6060、6160、6260は、さらに中間計算結果取得処理手段6063、6163、6263を備え、計算手段6160、6260、6360は、さらに中間計算結果保存処理手段6164、6264、6364を備える。計算手段6060、6160、6260、6360は、中間計算結果記憶部6500に利用できる中間計算結果が存在する場合には当該中間計算結果を利用して、窓掛信号列から自己相関係数を計算する(S6060、S6160、S6260、S6360)。なお、計算手段6060、6160、6260、6360は、利用できる中間計算結果を多くするため、複数種類のサブフレーム入力信号列に対する自己相関係数の算出は、サブフレームを構成するサンプル数が少ない方から行う。つまり、図19に示すように、下位の階層から順番に処理を行っていく。
計算手段6060、6160、6260、6360の処理について、以下に詳細に説明する(図18、図20参照)。計算手段6060、6160、6260のFFT分割処理手段9061、9161、9261、9361は、図5に示したように、窓掛信号列w(n)・x(n)をpサンプルごとのK(K=N÷p)個の小区間の信号列xk(n)に分割する(S9061、S9161、S9261、S9361)。図5中のxk(n)は、k番目の小区間の信号列にp個の値が0の信号を付加した信号列である。また、Nはサブフレームのサンプル数、pは求める自己相関係数の次数、1≦k≦K、0≦n≦M−1、M=2×pである。中間計算結果取得処理手段6063、6163、6263は、中間計算結果記憶部6500に利用できる中間計算結果が存在するかを確認し、利用できる範囲の中間計算結果を取得する(S6063、S6163、S6263)。なお、最下位の階層(図6の場合は第3階層)の計算手段6360は、最初に処理を行うので、利用できる中間計算結果が存在しない。したがって、計算手段6360は、中間計算結果取得処理手段を有さなくてもよい。FFT計算手段6062、6162、6262、6362は、次式のように小区間の信号列xk(n)をFFTしてXk(j)を求める(S6062、S6162、S6262、S6362)。
複素積和計算手段6065、6165、6265、6365は、A0(j)=0とおき、j=0,…,M−1およびk=1,…,Kに対して、
を計算する。ただし、Xk *(j)はXk(j)の共役複素数とする。そして、この演算によって求められた値から、V(j)=AK(j)を得る(S6065、S6165、S6265、S6365)。中間計算結果保存処理手段6164、6264、6364は、中間計算結果が求められた時には当該中間計算結果を中間計算結果記憶部6500に記憶させる(S6164、S6264、S6364)。なお、最上位の階層(図17の場合は第0階層)の計算手段6060は、最後に処理を行うので、後の計算で利用できる中間計算結果が存在しない。したがって、計算手段6060は、中間計算結果保存処理手段を有さなくてもよい。逆FFT計算手段9064、9164、9264、9364は、V(j)を次式のように逆FFTし、自己相関係数cxx(m)を求める(S9064、S9164、S9264、S9364)。
線形予測符号化部9090、9190、9290、9390は、自己相関係数を用いてサブフレーム入力信号列を符号化し、サブフレーム入力信号列ごとの符号(以下、「サブフレーム符号」という)を生成する(S9090、S9190、S9290、S9390)。なお、線形予測符号化部9090、9190、9290、9390の構成は、図1に示した従来の線形予測符号化部と同じである。選択部9900は、1つのフレーム入力信号列から生成された複数のサブフレーム符号の中から、1つ又は複数のサブフレーム符号を選択し、当該フレーム入力信号列に対する符号を生成する(S9900)。なお、選択部9900は、図1に示した従来の選択部と同じである。
次に、本発明の特徴を具体的な窓関数の例を示しながら説明する。窓関数は、図10と同じ窓関数を用いる。また、窓関数が階層ごとに異なるので、小区間の信号列xk(n)とxk(n)をFFTして得られた結果Xk(j)も階層ごとに異なる。そこで、どの階層なのかを示すため、xL,k(n)とXL,k(j)と表現する。ただし、Lは階層を示しており、例えば、第1階層ならばL=1である。図21は、FFTおよび複素積和の結果を再利用できる範囲を説明するための図であり、フレームを32分割した場合の例を示している。つまり、第3階層のサブフレームは4個のxL,k(n)、第2階層のサブフレームは8個のxL,k(n)、第1階層のサブフレームは16個のxL,k(n)、第0階層のサブフレームは32個のxL,k(n)で構成される例を示している。なお、図21では、スペースの関係から、xL,k(n)をxL,kと表現している。また、xL,k(n)は、k番目の小区間の信号列にp個の0が付加された信号列であるが、図21では、付加されたp個の0は省略している。なお、pは自己相関係数の次数である。
FFT法でも図19に示したように、下位の階層(図19の例では第3階層)から処理を行う。例えば、第3階層の最初のサブフレームに対しては、FFT計算手段6362が、x3,0(n)〜x3,3(n)をFFTしてX3,0(j)〜X3,3(j)を得る。また、複素積和計算手段6365が、
を求める。なお、どの階層のV(j)かを明確にする必要がある場合には、第L階層のV(j)をVL(j)と表現する。そして、中間計算処理結果保存処理手段6364が、中間計算結果であるX3,0(j)〜X3,3(j)の全部、またはその一部を中間計算結果記憶部に記憶させる。また、逆FFT計算手段9364が、
のように計算し、自己相関係数cxx(m)を求める。同様にして、第3階層のすべてのサブフレームに対しても自己相関係数を求める。
次に、第2階層の自己相関係数を求めるが、図10に示した窓関数は、サブフレームのサンプル数に依存しているため、階層ごとに異なる。したがって、階層が異なっても窓関数の値が同じとなる場合(言い換えると、窓関数の値が、小区間の範囲全体で1の場合)に中間計算結果を再利用できる。例えば、第2階層の最初のサブフレームに対するFFT計算手段6262の処理では、x2,0(n)〜x2,7(n)をFFTしてX2,0(j)〜X2,7(j)を得る。この処理の中で、再利用できるのは、X3,1(j)、X3,2(j)、X3,5(j)、X3,6(j)であり、X2,1(j)=X3,1(j)、X2,2(j)=X3,2(j)、X2,5(j)=X3,5(j)、X2,6(j)=X3,6(j)である。したがって、中間計算結果取得処理手段6263が、X3,1(j)、X3,2(j)、X3,5(j)、X3,6(j)を中間計算結果記憶部6500から取り込む。そして、FFT計算手段6262の処理では、X2,1(j)、X2,2(j)、X2,5(j)、X2,6(j)は行わず、X2,0(j)、X2,3(j)、X2,4(j)、X2,7(j)のみを求める。複素積和計算手段6265は、
を計算する代わりに、
を計算すればよい。そして、逆FFT計算手段9264が、
のように計算し、自己相関係数cxx(m)を求める。同様にして、第3階層のすべてのサブフレームに対しても自己相関係数を求める。
なお、中間計算処理結果保存処理手段6364が、
も中間計算結果記憶部に記憶させておけば、複素積和計算手段6265の計算量を削減することもできる。例えば、図21の点線で囲んだ部分は、複素積和計算手段内での途中の計算を、中間計算結果として記憶しておけばよい範囲である。同様に、第1階層、第0階層の処理も行えばよい。また、中間計算結果であるX3,0(j)は、窓関数の値が0でない部分の中間計算結果なので、後の計算で再利用できない。したがって、中間計算処理結果保存処理手段6364が、中間計算結果の中で後で利用できる中間計算結果を選択して中間計算結果記憶部に記憶させれば、記憶容量を少なくできる。なお、実施例1と同じように、実施例2でも1つの符号化部ですべての階層の処理を行ってもよい。
実施例2の符号化装置によれば、両端以外に1である範囲が存在する窓関数によって窓掛信号列を生成する。また、複数種類のサブフレーム入力信号列に対する自己相関係数の算出は、サブフレームを構成するサンプル数が少ない方から行う。このことによって、先に計算した中間計算結果(自己相関係数を求めるために行った途中の計算結果)の中に、後の計算によって求められる中間計算結果と一致する場合がある。そして、実施例2の符号化装置では、中間計算結果が一致する場合には計算を行わず、中間計算結果記憶部に記憶しておいた中間計算結果を利用する。このように、実施例2の符号化装置は、窓関数の工夫によって再利用可能な中間計算結果の割合を多くしているので、演算量を少なくでき、かつ、入力信号列の分析の精度を高くできる。つまり、演算量が少なく高い圧縮率の符号化装置を提供できる。また、演算量が減るので、処理の高速化も可能である。
[変形例1]
FFT法(実施例2)の場合にも、直説法(実施例1)と同じように、上位の階層において自己相関係数の次数が増加する場合はある。例えば、非特許文献1に記載された例では、予測次数の最大値がサブフレームのサンプル数の1/8に制限されている。このような場合、サブフレームのサンプル数が少ない下位の階層の自己相関係数の次数pが上位の階層の自己相関係数の次数よりも小さくなってしまう。変形例1では、上位の階層で自己相関係数の次数が高くなった場合に、下位の階層でのFFTの計算結果を再利用する方法について説明する。なお、本変形例の符号化装置の機能構成例は図17と同じ、自己相関係数算出部と中間計算結果記憶部の詳細な構成例は図18と同じ、符号化装置の処理フローの例は図19と同じ、自己相関係数算出部の処理フローの例は図20と同じである。
例えば、第L階層の自己相関係数の次数をpL、ML=2×pLとする。この場合、FFT計算手段6362は、
を計算する。計算の範囲がX3,k(j)は0≦n≦2×p3−1であるのに対して、X2,k(j)は0≦n≦2×p2−1である。したがって、p3≠p2の場合には、複素積和計算手段6065、6165、6265は、実施例2のようには、下位の階層のXL,k(j)を利用できない。
そこで、複素積和計算手段6065、6165、6265は、A0(j)=0とおき、j=0,…,2×pL-1−1およびk=1,…,Kに対して、
を計算する。また、A’0(q)=0とおき、q=0,…,2×pL−2×pL-1−1およびk=1,…,Kに対して、
中間計算結果保存処理手段6264は、中間計算結果を中間計算結果記憶部6500に記憶させる。逆FFT計算手段9264は、得られたV(j)を次式のように逆FFTし、自己相関係数cxx(m)を求める。
具体例を示すと、次のようになる。たとえば、M3=2×p3=2×p、M2=2×p2=4×pとする。この場合、FFT計算手段6362は、
を計算する。中間計算結果取得処理手段6263が、X3,1(j)、X3,2(j)、X3,5(j)、X3,6(j)を中間計算結果記憶部6500から取り込む。複素積和計算手段6265は、0≦j≦2×p−1の範囲では、X3,1(j)、X3,2(j)、X3,5(j)、X3,6(j)を利用し、
を求める。さらに、複素積和計算手段6265は、2×p≦j≦4×p−1の範囲でもX3,1(j)、X3,2(j)、X3,5(j)、X3,6(j)を利用し、
を求める。ここで、j’=j+2pである。このようにして計算されたV2(j’)を2×p≦j≦4×p−1の範囲の値として設定することで、0≦j≦4×p−1の範囲でV2(j)を得る。
逆FFT計算手段9264は、得られたV2(j)を次式のように逆FFTし、自己相関係数cxx(m)を求める。
このように、増加した次数の自己相関係数の計算では、下位の階層でのFFTの結果を中間計算結果として利用できる。
もしくは、次のような方法もある。逆FFT計算手段9264が、V2(j)を0≦j≦2×p−1の2×p点の逆FFTを行い、自己相関係数cxx(m)の低次の値とする。
そして、V2(j’)を0≦j’≦2×p−1の2×p点の逆FFTを行い、自己相関係数cxx(m)の高次の値とする。
このような計算でも、下位の階層のFFTの結果を中間計算結果として利用できる。したがって、実施例2変形例1の符号化装置は、実施例2の符号化装置の効果を得るとともに、各階層で求めなければならない自己相関係数の次数が異なる場合にも対応できる。
[符号化プログラム、記録媒体]
実施例1、実施例2(各変形例を含む)の符号化装置をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Opticaldisc)等を、半導体メモリとしてEEP−ROM(Electronically Erasableand Programmable-Read Only Memory)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、各実施例では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
従来の符号化装置の構成を例示した図。
符号化処理が行われるフレームの構成を例示した概念図。
自己相関係数算出部の構成を例示した図。
FFT(高速フーリエ変換)を用いて自己相関係数を計算する場合の自己相関計算手段の構成例を示す図。
図4の自己相関計算手段の処理を説明するための概念図。
実施例1の符号化装置の構成例を示す図。
実施例1の自己相関係数算出部と中間計算結果記憶部の詳細な構成例を示す図。
実施例1の符号化装置の処理フローの例を示す図。
実施例1の自己相関係数算出部の処理フローの例を示す図。
本発明で使用する窓関数の例を示す図。
図10の窓関数を用いた場合に自己相関係数を計算しなければ成らない範囲と再利用できる自己相関係数の範囲を示す図。
加算正規化手段の処理を説明するための図。
実施例1変形例1の自己相関係数算出部と中間計算結果記憶部の詳細な構成例を示す図。
実施例1変形例1の自己相関係数算出部の処理フローを示す図。
実施例1変形例2の符号化装置の構成例を示す図。
実施例1変形例2の符号化装置の処理フローの例を示す図。
実施例2の符号化装置の構成例を示す図。
実施例2の自己相関係数算出部と中間計算結果記憶部の詳細な構成例を示す図。
実施例2の符号化装置の処理フローの例を示す図。
実施例2の自己相関係数算出部の処理フローの例を示す図。
FFTおよび複素積和の結果を再利用できる範囲を説明するための図。