しかしながら、非特許文献2及び3に記載の如く、これらの帯域分割及び帯域合成フィルタは、帯域分割された帯域の信号に何らかの処理をしないことを前提にして設計されており、何らかの処理を行った場合は完全再構成(式(2)参照)の条件を満たさず、折り返し歪みは0にならない。例えばQMFの場合、帯域分割及び帯域合成の入力信号をx(n)、出力信号をx’(n)とし、x’(n)の伝達関数X’(z)は式(1)によって表される。
ここで、H0 は、低域通過特性をもつ分割フィルタ、H1 は、高域通過特性をもつ分割フィルタ、F0 は、低域通過特性をもつ合成フィルタ、F1は、高域通過特性をもつ合成フィルタである。上記式(1)が完全再構成、すなわちX’(z)をX(z)に戻す(完全再構成される)条件は、式(2)、式(3)となる。
ここで、z-1はlサンプルの遅延を表し、式(2)を満たせば周波数振幅特性及び周波数位相特性で歪みがなくなり、また折り返し成分であるX(−z)の項が0となる、すなわち式(3)を満たせば折り返し成分が出力x’(z)に含まれない。ATRACのQMF、IQMFのフィルタ係数は、式(4)のように設計されており、式(5)を満たす。
ここでh0 (n)はH0 のインパルス応答、h1 (n)はH1 のインパルス応答、f0(n)はF0 のインパルス応答、f1 (n)はF1 のインパルス応答を表す。
これを式(1)に代入すると、式(6)のようになり、帯域分割及び帯域合成のフィルタだけの特性ではX(−z)の項が0となり、折り返しの成分はキャンセルされていることになる。
折り返し歪みが0にならない要因として、ATRAC方式の場合、帯域分割フィルタ後に、折り返し歪み成分が付加されるが、非可逆の符号化処理によって、量子化ノイズが発生し、特に量子化ビット数が零の係数には本来帯域合成フィルタにてキャンセルされるはずの成分も完全に除去されるため、復号時に折り返し歪みが発生する問題があった。
一方、MP3方式の場合、周波数領域において、折り返し歪み削減バタフライ回路により周波数帯域の係数中の折り返し歪み成分は除去されている。従って、量子化ビット数が零の場合、量子化により原音の周波数成分は除去されるものの、キャンセルされるはずの折り返し歪み成分は既に除去されるためATRAC方式のような問題は生じない。しかしながら、MP3方式においても、量子化ビット数が零の場合、折り返し歪み削減バタフライ回路において、当該量子化ビット数が零の対称帯域に、キャンセル用の折り返し成分が発生しないという問題があった。なお特許文献1乃至4並びに非特許文献1乃至3には係る問題を解決するための手段は記載されていない。
本発明は斯かる事情に鑑みてなされたものであり、その目的は、ATRAC等の如く、符号化方式、すなわち、帯域分割及び帯域合成のフィルタが帯域分割された帯域の信号に何らかの処理をしないことを前提にして設計された方式において、量子化ビット数を検出し、検出した係数の量子化ビット数が零の場合、演算部により前記係数について周波数帯域での折り返し成分を生成することにより、ビット配分が零であることに起因する折り返し歪みの発生を低減させることが可能な信号処理方法、信号処理装置、該信号処理装置をコンピュータとして機能させるためのプログラムを提供することにある。
本発明の他の目的は、符号化方式がMP3方式等の如く、周波数領域において、折り返し歪み削減バタフライ回路により、周波数帯域の係数中の折り返し歪み成分が除去される方式において、(以降、MP3方式と称する。)逆量子化した音響信号の周波数帯域の係数の中から複数の係数を選択し、選択した複数の係数を用いた補間法により、選択されない係数であって量子化ビット数が零の係数に対する補間係数を算出することにより、折り返し歪み削減バタフライ演算に用いる対象周波数成分をより高い精度で発生させることが可能な信号処理方法、信号処理装置、該信号処理装置をコンピュータとして機能させるためのプログラムを提供することにある。
本発明に係る信号処理方法は、帯域分割された符号化音響信号を逆量子化した音響信号を処理する信号処理方法において、逆量子化した音響信号の周波数帯域の係数の量子化時における量子化ビット数を検出する検出ステップと、該検出ステップにより検出した一の周波数帯域内の係数の量子化ビット数が零であり、かつ、前記検出ステップにより検出した前記一の周波数帯域に隣接する他の周波数帯域内の折り返し位置にある係数の量子化ビット数が非零の場合、前記一の周波数帯域の係数および前記他の周波数帯域の係数についてバタフライ演算を行う演算ステップとを備えることを特徴とする。
本発明に係る信号処理装置は、帯域分割された符号化音響信号を逆量子化した音響信号を処理する信号処理装置において、逆量子化した音響信号の周波数帯域の係数の量子化時における量子化ビット数を検出する検出部と、該検出部により検出した一の周波数帯域内の係数の量子化ビット数が零であり、かつ、前記検出部により検出した前記一の周波数帯域に隣接する他の周波数帯域内の折り返し位置にある係数の量子化ビット数が非零の場合、前記一の周波数帯域の係数および前記他の周波数帯域の係数についてバタフライ演算を行う演算部とを備えることを特徴とする。
本発明に係る信号処理装置は、前記検出部は、逆量子化した音響信号の周波数帯域の係数の内、前記帯域分割の境界から所定周波数内に存在する係数の量子化時における量子化ビット数を検出するよう構成してあることを特徴とする。
本発明に係る信号処理装置は、前記所定周波数は、前記帯域分割の境界の周波数と、帯域分割を行う帯域分割フィルタの周波数応答に基づく所定強度以上の周波数との間の周波数であることを特徴とする。
本発明に係るプログラムは、帯域分割された符号化音響信号を逆量子化した音響信号をコンピュータにより処理するプログラムにおいて、コンピュータに、逆量子化した音響信号の周波数帯域の係数の量子化時における量子化ビット数を検出する検出ステップと、該検出ステップにより検出した一の周波数帯域内の係数の量子化ビット数が零であり、かつ、前記検出ステップにより検出した前記一の周波数帯域に隣接する他の周波数帯域内の折り返し位置にある係数の量子化ビット数が非零の場合、前記一の周波数帯域の係数および前記他の周波数帯域の係数についてバタフライ演算を行う演算ステップとを実行させることを特徴とする。
本発明に係る信号処理方法は、帯域分割された符号化音響信号を逆量子化した音響信号を処理する信号処理方法において、逆量子化した音響信号の周波数帯域の係数の中から複数の係数を選択する選択ステップと、逆量子化した音響信号の周波数帯域の係数の量子化時における量子化ビット数を検出する検出ステップと、前記選択ステップにより選択した複数の係数を用いた補間法により、前記選択ステップにより選択されない係数であって前記検出ステップにて検出した量子化ビット数が零の係数に対する補間係数を算出する算出ステップとを備えることを特徴とする。
本発明に係る信号処理装置は、帯域分割された符号化音響信号を逆量子化した音響信号を処理する信号処理装置において、逆量子化した音響信号の周波数帯域の係数の中から複数の係数を選択する選択部と、逆量子化した音響信号の周波数帯域の係数の量子化時における量子化ビット数を検出する検出部と、前記選択部により選択した複数の係数を用いた補間法により、前記選択部により選択されない係数であって前記検出部にて検出した量子化ビット数が零の係数に対する補間係数を算出する算出部とを備えることを特徴とする。
本発明に係るプログラムは、帯域分割された符号化音響信号を逆量子化した音響信号をコンピュータにより処理するプログラムにおいて、コンピュータに、逆量子化した音響信号の周波数帯域の係数の中から複数の係数を選択する選択ステップと、逆量子化した音響信号の周波数帯域の係数の量子化時における量子化ビット数を検出する検出ステップと、前記選択ステップにより選択した複数の係数を用いた補間法により、前記選択ステップにより選択されない係数であって前記検出ステップにて検出した量子化ビット数が零の係数に対する補間係数を算出する算出ステップとを実行させることを特徴とする。
本発明に係る信号処理方法は、帯域分割された符号化音響信号を逆量子化した音響信号を処理する信号処理方法において、符号化音響信号の符号化方式がバタフライ演算を行う方式であるか否かを判断する方式判断ステップと、逆量子化した音響信号の周波数帯域の係数の量子化時における量子化ビット数を検出する検出ステップと、前記方式判断ステップにて符号化方式がバタフライ演算を行う方式でないと判断し、また、前記検出ステップにより検出した一の周波数帯域内の係数の量子化ビット数が零であり、かつ、前記検出ステップにより検出した前記一の周波数帯域に隣接する他の周波数帯域内の折り返し位置にある係数の量子化ビット数が非零の場合、前記一の周波数帯域の係数および前記他の周波数帯域の係数についてバタフライ演算を行う演算ステップとを備えることを特徴とする。
本発明に係る信号処理装置は、帯域分割された符号化音響信号を逆量子化した音響信号を処理する信号処理装置において、符号化音響信号の符号化方式がバタフライ演算を行う方式であるか否かを判断する方式判断部と、逆量子化した音響信号の周波数帯域の係数の量子化時における量子化ビット数を検出する検出部と、前記方式判断部にて符号化方式がバタフライ演算を行う方式でないと判断し、また、前記検出部により検出した一の周波数帯域内の係数の量子化ビット数が零であり、かつ、前記検出部により検出した前記一の周波数帯域に隣接する他の周波数帯域内の折り返し位置にある係数の量子化ビット数が非零の場合、前記一の周波数帯域の係数および前記他の周波数帯域の係数についてバタフライ演算を行う演算部とを備えることを特徴とする。
本発明に係る信号処理装置は、逆量子化した音響信号の周波数帯域の係数の中から複数の係数を選択する選択部と、前記方式判断部において符号化方式がバタフライ演算を行う方式と判断した場合に、前記選択部により選択した複数の係数を用いた補間法により、前記選択部により選択されない係数であって前記検出部にて検出した量子化ビット数が零の係数に対する補間係数を算出する算出部とをさらに備えることを特徴とする。
本発明に係るプログラムは、帯域分割された符号化音響信号を逆量子化した音響信号をコンピュータにより処理するプログラムにおいて、コンピュータに、符号化音響信号の符号化方式がバタフライ演算を行う方式であるか否かを判断する方式判断ステップと、逆量子化した音響信号の周波数帯域の係数の量子化時における量子化ビット数を検出する検出ステップと、前記方式判断ステップにて符号化方式がバタフライ演算を行う方式でないと判断し、また、前記検出ステップにより検出した一の周波数帯域内の係数の量子化ビット数が零であり、かつ、前記検出ステップにより検出した前記一の周波数帯域に隣接する他の周波数帯域内の折り返し位置にある係数の量子化ビット数が非零の場合、前記一の周波数帯域の係数および前記他の周波数帯域の係数についてバタフライ演算を行う演算ステップとを実行させることを特徴とする。
本発明にあっては、逆量子化した音響信号の周波数帯域の係数の量子化時における量子化ビット数を検出部により検出する。そして、検出部により検出した係数の量子化ビット数が零の場合、前記係数について折り返し歪みを削減する演算部によりバタフライ演算を行うので、ビット配分が零に起因して発生する帯域分割フィルタの折り返し歪みを低減することが可能となる。
本発明にあっては、検出部は、逆量子化した音響信号の周波数帯域の係数の内、帯域分割の境界から所定周波数内に存在する係数に着目し、これらの係数の量子化時における量子化ビット数を検出する。この所定周波数としては、例えば、帯域分割の境界の周波数と、帯域分割を行う帯域分割フィルタの周波数応答に基づく所定強度以上の周波数との間の周波数とする。このように、バタフライ演算を行う係数を所定周波数内の係数に限って行うこととしたので消費電力を低減することが可能となる。
本発明にあっては、演算部は、検出部により検出した係数の量子化ビット数が零であり、前記係数が属する一の周波数帯域に隣接する他の周波数帯域内の折り返し位置にある係数の量子化ビット数が検出部により非零と検出された場合に、検出した係数及び折り返し位置にある係数を用いてバタフライ演算を行う。反対に、係数の量子化ビット数が零であり、また帯域分割の境界から対称帯域にある係数の量子化ビット数も零の場合、折り返し歪みが発生しないことから演算部による演算が実行されない。
本発明にあっては、選択部は逆量子化した音響信号の周波数帯域の係数の中から複数の係数を選択する。また検出部は逆量子化した音響信号の周波数帯域の係数の量子化時における量子化ビット数を検出する。そして、選択部により選択した複数の係数を用いた補間法により、選択されない係数であって、また検出部にて検出した量子化ビット数が零の係数に対する補間係数を算出部により算出するので、キャンセル用の折り返し歪み成分を最適な量で生成することが可能となる。また、補間処理により量子化の際に失われたエネルギが補間され、量子化誤差に伴うエネルギの物足りなさを補うことが可能となる。
本発明にあっては、方式判断部は符号化音響信号の符号化方式が例えばMP3方式、即ち、周波数領域において、折り返し歪み削減バタフライ回路により、周波数帯域の係数中の折り返し歪み成分が除去される方式であるか否かを判断する。そして、符号化方式がバタフライ演算を行う方式でないと判断し、また、検出部により検出した係数の量子化ビット数が零の場合、係数についてバタフライ演算により、折り返し歪みをキャンセルする帯域合成に用いる対象周波数成分を生成するので、ビット配分が零に起因して発生する帯域分割フィルタの折り返し歪みを低減することが可能となる。
本発明にあっては、方式判断部において符号化方式がバタフライ演算を行う方式であると判断した場合に、選択部により選択した複数の係数を用いた補間法により、選択されない係数であって検出部にて検出した量子化ビット数が零の係数に対する補間係数を算出するので、キャンセル用の折り返し歪み成分を最適な量で生成することが可能となる。
本発明にあっては、逆量子化した音響信号の周波数帯域の係数の量子化時における量子化ビット数を検出部により検出する。そして検出した係数の量子化ビット数が零の場合、前記係数について演算部によりバタフライ演算を行うので、ビット配分が零に起因して発生する帯域分割フィルタの折り返し歪みを低減することが可能となる。
本発明にあっては、検出部は、逆量子化した音響信号の周波数帯域の係数の内、帯域分割の境界から所定周波数内に存在する係数に着目し、これらの係数の量子化時における量子化ビット数を検出する。このように、バタフライ演算を行う係数を所定周波数内の係数に限って行うこととしたので、歪み成分が大きい帯域について効果的に歪み削減を行うことができ、また消費電力を低減することが可能となる。
本発明にあっては、係数の量子化ビット数が零であり、また対称帯域にある係数の量子化ビット数も零の場合、折り返し歪みが発生しないことから演算部による演算が実行されない。これにより、無用の折り返し歪み削減バタフライ演算に用いる対象周波数成分の生成が回避され演算速度の向上を図ることが可能となる。
本発明にあっては、選択部は逆量子化した音響信号の周波数帯域の係数の中から複数の係数を選択する。また検出部は逆量子化した音響信号の周波数帯域の係数の量子化時における量子化ビット数を検出する。そして、選択部により選択した複数の係数を用いた補間法により、選択されない係数であって、また検出部にて検出した量子化ビット数が零の係数に対する補間係数を算出部により算出するので、キャンセル用の折り返し歪み削減バタフライ演算に用いる対象周波数成分を最適な量で生成することが可能となる。また、補間処理により量子化の際に失われたエネルギが補間され、量子化誤差に伴うエネルギの物足りなさを補うことが可能となる。
本発明にあっては、方式判断部は符号化音響信号の符号化方式がバタフライ演算を行う方式であるか否かを判断する。そして、符号化方式がバタフライ演算を行う方式でないと判断し、また、検出部により検出した係数の量子化ビット数が零の場合、係数についてバタフライ演算を行うので、ビット配分が零に起因して発生する帯域分割フィルタの折り返し歪みを低減することが可能となる。また符号化方式を事前に判断し、また逆量子化した周波数帯域の係数を用いるので、復号側において独立してエネルギを補間でき、多様な規格に対してエネルギを適切に補間することが可能となる。
本発明にあっては、方式判断部において符号化方式がバタフライ演算を行う方式であると判断した場合に、選択部により選択した複数の係数を用いた補間法により、選択されない係数であって検出部にて検出した量子化ビット数が零の係数に対する補間係数を算出するので、キャンセル用の折り返し歪み削減バタフライ演算に用いる対象周波数成分を最適な量で生成することが可能となる。また、事前に符号化方式を判断すると共に、逆量子化した周波数帯域の係数を用いるので、復号側において独立してエネルギを補間でき、多様な規格に対してエネルギを適切に補間することが可能となる等、本発明は優れた効果を奏する。
実施の形態1
以下本発明の実施の形態を、図面を参照して説明する。図1は信号処理装置たる復号装置のハードウェア構成を示すブロック図である。図において20は、符号化された音響信号を復号する復号装置であり、音響信号入力部21、アンパッキング部22、逆量子化部23、補間処理部1、バタフライ演算部240、周波数時間変換部24、周波数帯域合成部25及び音響信号出力部26を含んで構成される。本実施の形態においては圧縮符号化方式としてMP3を適用した例についてまず説明する。なお、周波数帯域合成部25は、IPFBである。
記録媒体から読み出された符号化音響信号またはデジタルチューナにより受信した符号化音響信号等は、音響信号入力部21へ入力され、入力された符号化音響信号はアンパッキング部(デマルチプレクサ)22へ出力される。アンパッキング部22は、音響信号のフレーム情報から量子化係数、量子化ビット数、スケールファクタ、スケールファクタマルチプレクサ、グローバルゲイン、及びサブブロックゲインをそれぞれアンパッキングする。アンパッキングされた量子化係数、量子化ビット数、スケールファクタ、スケールファクタマルチプレクサ、グローバルゲイン、及びサブブロックゲインを用いて逆量子化部23においてIMDCT係数に逆量子化される。逆量子化部23からはブロック長(ロングブロックまたはショートブロック)に応じて次の式(7)で示されるIMDCT係数が周波数帯域毎に出力される。
式(7)中の変数mはIMDCT係数のインデックス、MK(m)は量子化係数(ハフマン復号化値)、sgn(MK(m))は量子化係数の符号、scalefac_multiplierは1または0.5、grはグラニュールのインデックス、wndはウィンドウの形状のインデックス、sfbはスケールファクタバンドのインデックス、preflag[gr]はプリエンファシスの有無フラグで0または1、pretab[sfb] は所定のプリエンファシステーブルによって得られる値を表している。なお、ATRACにおけるスケールファクタ(例えば各6ビットで表され、約2dB単位で指定することができる)は、MP3におけるスケールファクタに関する値と同様であり、MP3におけるスケールファクタに関する値は、式(7)で示す如く、スケールファクタ、スケールファクタマルチプレクサ、グローバルゲイン及びサブブロックゲイン(式(7)の2の乗数以降の箇所)、プリエンファシスの有無フラグ、プリエンファシステーブルによって得られる値を用いて算出される。以下ではATRACにおけるスケールファクタ及びMP3におけるスケールファクタに関する値をまとめてスケールファクタとして説明する。ここで、スケールファクタとは、所定の分割された各周波数帯域のスペクトルを表現するために、仮数部と指数部で表した指数部分をいう。例えば、MP3においては、所定の分割された各周波数帯域のスペクトルを最大値が1.0となるように正規化され、その指数部分をスケールファクタとグローバルゲイン、及びサブブロックゲインとして符号化されている。上記スケールファクタとグローバルゲイン、及びサブブロックゲインの指数部を総称してスケールファクタに関する値と呼ぶ。
本実施の形態においては図に示すように32の周波数帯域毎block(0)〜block(31)にIMDCT係数I(0)、I(1)、…、I(m)、…、I(575)が出力される。サンプリング周波数が44.1kHzの場合、block(0)の周波数は0Hz〜689.0625Hz、block(1)は689.0625Hz〜1378.125Hz、またblock(31)は21360.9375Hz〜22050Hzである。なお、以下では任意の周波数帯域のブロックをblock(k)とする。ここでkは整数であり、0≦k≦31を満たすものとする。各周波数帯域のIMDCT係数I(0)〜I(575)は補間処理部1へ入力される。
各周波数帯域のIMDCT係数はブロック長に応じて複数の係数(スペクトル)から構成される。ロングブロックでは18の係数からなり、ショートブロックでは6の係数からなる。なお、本実施の形態においては、ブロック長はロングブロックであるものとして説明する。
図2は周波数に対するIMDCT係数の変化を示すグラフである。横軸は周波数であり、縦軸は係数を示す。IMDCT係数(以下、係数I(m)で代表する)はロングブロックの場合、一周波数帯域内に18の係数I(18×k)乃至I(18×k+17)を有する。図2のグラフにおいては周波数18×k、18×k+1、…18×k+17に対応させて、係数I(18×k)、I(18×k+1)、…、I(18×k+17)の変化が示されている。この係数は正、負または零の値を取る。
図1において係数I(m)は補間処理部1へ入力され、補間処理後の係数I’(m)が補間処理部1から出力される。バタフライ演算部240は、後述する式(33)のバタフライ演算式を用いて、帯域分割の境界から8サンプルの係数I’(m)に対して夫々の帯域でバタフライ演算が施される。ここで、式(33)に入力されるciは、i=0の場合、-0.6、i=1の場合、-0.535、i=2の場合、-0.33、i=3の場合、-0.185、i=4の場合、-0.095、i=5の場合、-0.041、i=6の場合、-0.0142、i=7の場合、-0.0037である。なお、iは、入力In1または入力In2と分割境界との間隔であり、これらの係数及び数式はバタフライ演算部240内の図示しないメモリに記憶されている。周波数時間変換部24には一部の係数についてバタフライ演算が施された補間処理後の係数I’(m)が入力される。周波数時間変換部24では係数I’(m)についてIMDCT処理が施され、時間軸の音響信号に変換される。更に、逆変換された音響信号は周波数帯域合成部25において、帯域合成フィルタであるIPFBによって帯域合成された後、音響信号出力部26へ出力される。
図3は補間処理部1のハードウェア構成を示すブロック図である。補間処理部1は量子化ビット数検出部11、補間判定部12、選択部13及び算出部14を含んで構成される。量子化ビット数検出部11は周波数帯域の係数の量子化時における量子化ビット数を、入力されるフレームサイド情報に基づき検出する。具体的には、係数I(m)の量子化ビット数はアンパッキング部22にてアンパックされたビットストリーム中のフレームサイド情報のtable_select[ch][gr][region]を参照することにより検出することができる。
このtable_select[ch][gr][region]は、ハフマン符号化されたハフマンテーブルを指し示すセレクト信号であり、指し示されたハフマンテーブルを復号化する事により、ハフマン復号化値、即ち係数I(m)を得る。上記regionにおける一の領域のハフマン復号化値の最大の数字を取得することにより、量子化ビット数を検出することもできるが、table_select[ch][gr][region]が指し示すハフマンテーブルに存在する最大の数字は予め決まっているので、その語長を量子化ビット数とすることで検出する。
量子化ビット数検出部11は検出した量子化ビット数を補間判定部12及び算出部14へ出力する。補間判定部12は、周波数帯域内の係数I(m)の量子化ビット数に所定ビット数以下の係数I(m)が存在するか否かを判断する。例えば、補間判定部12は周波数帯域内の係数I(m)の量子化ビット数が、4以下の係数I(m)が存在するか否かを判断すればよい。そして、補間判定部12は、入力された周波数帯域内の係数I(m)に所定量子化ビット数以下の係数I(m)が存在すると判断した場合、当該周波数帯域の係数I(m)を補間処理すべく選択部13へ出力する。一方、補間判定部12は、入力された周波数帯域内の係数I(m)に所定量子化ビット数以下の係数I(m)が存在しないと判断した場合、当該周波数帯域の係数I(m)を補間処理することなく、補正後の係数I’(m)を、バタフライ演算部240を経ることなく周波数時間変換部24へ出力する。
選択部13は周波数帯域内の係数の中から複数の係数を選択する。これは、例えば、周波数帯域内の係数の両端の係数、すなわち最も低域にあたる係数及び最も高域にあたる係数を少なくとも選択する。図2の例においては、I(18×k)及びI(18×k+17)が選択される。さらに選択部13はこれらに加え、周波数帯域内の係数の中からスペクトルが最大及び最小の係数を選択するようにしても良い。図2の例においては、最小スペクトルであるI(18×k+3)、及び、最大スペクトルであり、また、最も高域にある係数I(18×k+17)が選択される。選択部13は入力された係数I(m)及び選択した複数の係数に係る情報を算出部14へ出力する。
算出部14は選択部13において選択した係数を用い、選択されなかった係数の補間係数を、補間法を用いて算出する。この場合、算出部14は、量子化ビット数検出部11から出力される係数の量子化ビット数に基づき、量子化ビット数が零の係数について補間係数を算出する。この補間法は例えばラグランジュ補間法またはスプライン補間法が用いられる。以下では、スプライン補間法を用いた例について説明する。
N+1個の点(x0 ,y0 ),(x1 ,y1 ),・・・,(xN,yN )が与えられている。ただし、x0 <x1 <・・xN とする。これらの点を滑らかに接続するスプライン補間について述べる。3次スプライン補間で求まる曲線をy=S(x)とする。S(x)は各区間[xj ,yj]で区分的に定義されているとする。各区間xj ≦x≦xj+1 の区間でS(x)=Sj (x)とする。さらに、Sj (x)は式(8)で示す3次多項式で与えられる。
係数aj ,bj ,cj ,dj は以下に述べる条件から決まる。すなわち、曲線y=S(x)は連続であり、点(xj,yj )(j=0,1,・・・,N)の全てをとおる(条件1)。また区間の境目x=xj(j=1,2,・・・,N-1 )で、y=S(x)の1階微分係数および2階微分係数が連続である(条件2)。条件1から、式(9)が導出される。
また条件2から式(10)が導出される。
これら式(9)及び式(10)を用いることにより係数aj ,bj ,cj ,djが決定される。まず、x=xj (j=1,2,・・・,N-1 )でのS(x)の2階微分係数を式(11)のようにおく。
3次スプラインの定義は式(8)であるから、その2階微分係数は式(12)で表される。
これによりbj =uj /2となる。さらに、2階微分係数は式(13)で表すことができる。
式(13)から、式(14)が導出される。
また以上の式から式(15)の条件を自動的に満たす。
またdj=yjも明らかであることから、条件1を用いて式(16)が導出される。
さらに式(16)から最終的に式(17)が得られる。
ここで、式(18)で示す最後の条件を用いる。
式(18)は3次多項式から式(19)の如く表現できる。
式(19)にaj ,bj ,cj を代入することにより式(20)が導出される。
これを順に並べた場合、式(21)で示す連立方程式をなす。
ただし、hj ,vj は以下の式(22)で示す条件を満たすものとする。なお、hj ,vj は最初に与えられているxj ,yj だけから計算できるので既知の定数である。
未知変数uj は、全部で N+1個あるが、上で述べた連立1次方程式の数は N-1個である。したがって、この連立1次方程式からuj を一意に決定できない。そこで、曲線の両端の点(x0 ,y0 ),(xN ,yN )で、それぞれ境界条件を1つずつ付け加える。この境界条件にはいくつか考えられるが、ここでは曲線の傾きの変化率が両端で0であるという条件を採用する。2階微分が0であることから式(23)が導出される。
式(23)から式(24)が導かれる。
またu0 =uN =0であることから、式(25)で示すu1 〜uN-1 に関する連立1次方程式が求まる。
次に、スプライン補間のアルゴリズムを説明する。まず、 N+1個の点(xj ,yj )(j=0,1,・・・,N)を与え、3次スプラインは区分的に式(26)及び式(27)を満たすとする。
曲線の両端での境界条件を式(28)とした場合、u0 =uN =0となる。
hj (j=0,1,・・・,N)及びuj (j=0,1,・・・,N)を計算し、連立一次方程式を解くことにより、u1 〜uN-1 が求まる。最後に係数aj ,bj ,cj ,dj を求め、曲線S(x)が決定される。算出部14は選択部13で選択された係数に基づき、曲線Sj (x)の係数aj ,bj ,cj ,dj を求める。そして、選択されていない係数であって、量子化ビット数が所定値以下の係数について、補間係数Sj (x)を算出し、補間後の補間係数Sj (x)及び補間されていない係数を係数I’(m)として、周波数時間変換部24へ出力する。
図4は補間処理の手順を示すフローチャートである。なお、以下では説明を容易にするために周波数帯域内の係数のブロック長をロングブロックであるとして説明する。まず量子化ビット数検出部11は量子化ビット数を検出する(ステップS41)。この検出した量子化ビット数は補間判定部12及び算出部14へそれぞれ出力される。補間判定部12は、周波数帯域内の係数の中に量子化ビット数が所定値以下のものが存在するか否かを判断する(ステップS42)。補間判定部12は係数の量子化ビット数に所定値以下のものが存在しないと判断した場合(ステップS42でNO)、一連の処理を終了する。この場合、補間判定部12は当該周波数帯域の係数を、バタフライ演算部240を経ることなく周波数時間変換部24へ出力する。
一方、補間判定部12は係数の量子化ビット数が所定値以下のものが存在すると判断した場合(ステップS42でYES)、補間判定部12は、当該周波数帯域内の係数を選択部13へ出力する。選択部13は、周波数帯域内の両端の係数、すなわち低域側の係数及び高域側の係数を、スプライン補間の節点とすべく選択する(ステップS43)。さらに、選択部13は周波数帯域内の係数の最大スペクトルの係数及び最小スペクトルの係数をスプライン補間の節点とすべく、選択する(ステップS44)。なお、最大スペクトルの係数及び最小スペクトルの係数はそれぞれ、周波数帯域内の両端の係数となることもあることから、節点数は2〜4となる。
算出部14は、式(8)で示すステップS43及びS44で選択した係数に基づき、3次スプライン関数の係数aj ,bj ,cj ,dj を算出する(ステップS45)。算出部14はステップS43及びS44において選択されない係数の量子化ビット数が所定値(0)以下であるか否かを判断する(ステップS46)。算出部14は選択されない係数の量子化ビット数が所定値(0)以下であると判断した場合(ステップS46でYES)、求めた係数aj ,bj ,cj ,dj 及び式(8)から補間係数を算出する(ステップS47)。一方、選択されない係数の量子化ビット数が所定値(0)以下でないと判断した場合(ステップS46でNO)、補間処理を行わず、ステップS47の処理をスキップする。
算出部14は全てのステップS43及びS44において選択されない係数に対するステップS46の処理が終了したか否かを判断する(ステップS48)。算出部14は、処理が終了していないと判断した場合(ステップS48でNO)、他の選択されていない係数の補関係数を求めるべく、ステップS46へ移行する。一方、全ての選択されない係数に対する処理を終了したと算出部14が判断した場合(ステップS48でYES)、一連の処理を終了する。以上の処理を全ての周波数帯域に対して実行し、量子化ビット数が0の係数に対するスプライン補間により、最適なスペクトルが補間係数として得られる結果、
量子化された係数の分解能を高めることができ、物足りなさや違和感を受けることなく再生が可能となる。なお、以上述べた節点となる係数の選択方法及び量子化ビット数の値はあくまで一例でありこれに限るものでない。
実施の形態2
実施の形態2は補間係数を補正する形態に関する。図5は実施の形態2に係る補間処理部1のハードウェア構成を示すブロック図である。実施の形態1の構成に加え、有効範囲決定部15及び補正部16が追加されている。逆量子化部23から出力されるビットストリームのフレームサイド情報から各周波数帯域のスケールファクタが抽出され、抽出されたスケールファクタは、有効範囲決定部15へ入力される。量子化ビット数検出部11により検出される係数の量子化ビット数及び算出部14にて算出された補間係数は有効範囲決定部15へ入力される。さらに、補間判定部12から出力された補間処理を行わない係数も有効範囲決定部15へ入力される。
図6は有効範囲を説明するためのグラフである。図6のグラフにおいて横軸は周波数を、縦軸はスペクトルの大きさを示す。丸印はスプライン補間による補間がなされていない係数I(m)を示す。ここで例示のため係数の数は1≦m≦4としてあり、スケールファクタはSF、量子化ビット数は2としている。また×印は原音のMDCT係数(M(m))である。原音のM(m)は2ビットの量子化により矢印方向へ丸印まで量子化される。例えば、M(1)については、約0.3SFに位置するところ、0.5SF以下であることから、I(1)=0SFへ量子化される。またM(2)については0.5SFより大きいのでI(2)=SFへ量子化される。
ここで、図に示すようにI(1)=0の場合、原音M(1)は量子化ビット数が2であることから、−0.5SFから+0.5SFに理論上存在する。またI(2)=SFの場合、原音M(2)は上限SF、下限0.5SFの範囲内に理論上存在する。係数I(m)に対してスケールファクタ及び量子化ビット数により決定される原音の存在する理論上の範囲を有効範囲とする。ここで係数I(m)の有効範囲をP(m)、量子化ビット数をW、スケールファクタをSFとした場合、有効範囲P(m)は例えば下記式(29)により定義される。
ただし、I(m)=SFの場合、有効範囲P(m)は式(30)で定義される。
さらに、I(m)=−SFの場合、有効範囲P(m)は式(31)で定義される。
これら有効範囲の定義はあくまで一例であり、係数I(m)の絶対値を用いて有効範囲P(m)を定義する等、係数に対するスケールファクタ及び量子化ビット数に基づき決定されるものであればこれに限るものではない。
図6において、三角印は図5における算出部14にて算出された補間係数S(m)を示している。S(1)、S(3)及びS(4)に着目すると、より原音に近い補間係数が算出され、またその補間係数は矢印で示す有効範囲内に存在していることが理解できる。しかし補間係数S(2)については、不適切な節点の係数を選択したことで、補間法のルンゲの現象等に起因する誤差が発生しており、理論上取り得る有効範囲から逸脱していることが理解できる。図5における補正部16は有効範囲決定部15から出力される有効範囲P(m)及び補間係数S(m)に基づき、この誤差を補正する。
補正部16は補間係数が有効範囲内に存在していると判断した場合は、補正することなく補間係数を、バタフライ演算部240を経ることなく周波数時間変換部24へ出力する。一方、補正部16は補間係数が有効範囲内に存在しないと判断した場合は、補間係数を有効範囲内に属するよう補正する。この補正処理は例えば以下のように行う。例えば補間係数が式(29)乃至式(31)で定義される有効範囲の上限値を超える場合、上限値が補間係数となるよう補正する。また、補間係数が式(29)乃至式(31)で定義される下限値を下回る場合、下限値が補間係数となるよう補正する。
またこの他、所定のゲインgを補間係数に乗ずるようにしても良い。このゲインgは有効範囲P(m)の上限(または下限)と補間係数S(m)との比である。そしてこのゲインgを他の補間係数(例えば、隣接するS(m−2)、S(m−1)、S(m+1)、S(m+2))に乗じ、他の補間係数がそれぞれの有効範囲(P(m−2)、P(m−1)、P(m+1)、P(m+2))に属するか否かを判断する。そして補正部16は属すると判断した場合は、当該ゲインgを補間係数S(m)に乗じ、この値を、バタフライ演算部240を経ることなく周波数時間変換部24へ出力する。
一方、補正部16は、他の補間係数がそれぞれの有効範囲に属しないと判断した場合は、ゲインgの値を所定値変更(例えば1.5g、1.4g、1.3g・・・0.5g)し、他の補間係数がそれぞれの有効範囲に属するまでこれを繰り返し行う。以上の処理を行った場合にでも、他の補間係数がそれぞれの有効範囲に属しない場合は、上述したように当該補間係数S(m)についてのみ、上限値(または下限値)が補間係数となるよう補正する。これにより、何らかの原因により、補間誤差が生じた場合でも、原音が取り得る量子化の理論範囲内に補間係数を補正でき復号時の信号処理の安定化を図ることが可能となる。なお、上述した補正処理は、あくまで一例であり、補間係数が有効範囲内に存在するよう補正するのであれば、他の形態であっても良い。
図7は補正処理の手順を示すフローチャートである。有効範囲決定部15にはスケールファクタ、量子化ビット数、補間係数及び係数が入力される(ステップS81)。有効範囲決定部15は係数に対する有効範囲を入力されたスケールファクタ及び量子化ビット数並びに式(29)乃至式(31)に基づき決定する(ステップS82)。有効範囲決定部15は決定した係数に対する有効範囲及び補間係数を補正部16へ出力する(ステップS83)。
補正部16は補間係数と有効範囲とを比較し、補間係数が有効範囲内に存在するか否かを判断する(ステップS84)。補正部16は、補間係数が有効範囲内に存在すると判断した場合は(ステップS84でYES)、当該補間係数を補正することなく周波数時間変換部24へ出力する(ステップS87)。一方、補間係数が有効範囲内に存在しないと判断した場合(ステップS84でNO)、補正部16は補間係数が有効範囲内に属するよう補正する(ステップS85)。補正部16は補間係数が式(29)乃至式(31)で定義される有効範囲の上限値を超える場合、上限値が補間係数となるよう補正する。また、補間係数が式(29)乃至式(31)で定義される下限値を下回る場合、下限値が補間係数となるよう補正する。そして、補正部16は補正後の補間係数を周波数時間変換部24へ出力する(ステップS86)。
図8はゲインgの算出処理の手順を示すフローチャートである。ステップS85における処理は上述したようにゲインgを算出し、このゲインgを補間係数に乗じて補正するようにしても良い。補正部16は有効範囲決定部15から出力された有効範囲の上限(または下限)と補間係数との比(g)を算出し(ステップS91)、これをゲインgとする。なお、補正部16はゲインの初期値g’にこの算出したgを代入をしておく。補正部16はゲインg’を他の補間係数に乗ずる(ステップS92)。これは、例えば対象となる補間係数S(m)と量子化ビット数を同じくする周波数帯域内の補間係数について行えばよい。
補正部16はゲインg’を乗じた他の補間係数が、当該他の補間係数に係る有効範囲内に存在するか否かを判断する(ステップS93)。補正部16は、ゲインg’を乗じた他の補間係数の全てが各補間係数に係る有効範囲内に存在すると判断した場合(ステップS93でYES)、当該ゲインg’を補間係数S(m)に乗じ(ステップS94)、処理を終了する。一方、補正部16は、ゲインg’を乗じた他の補間係数の少なくとも一つが当該他の補間係数に係る有効範囲内に存在しないと判断した場合(ステップS93でNO)、ゲインg’を段階的に変更すべく以下の処理を行う。
補正部16は変数nにn+1を代入する(ステップS95)。なお、nの初期値は0である。補正部16はゲインg(初期値のゲインg’)の1.5倍から(n/10)gを減算し、新たなゲインg’を算出する(ステップS96)。すなわちゲインgから±50%の範囲で10%段階的に変化させる処理を行う。また量子化ビット数が2、3と大きくなるに従って、ゲインgの1.5倍から(n/10)gを減算する、1.25倍から(n/10)gを減算するといったように、範囲を狭くして段階の分解能を上げてもよい。補正部16は変数nが10であるか否かを判断する(ステップS97)。補正部16は変数nが10でないと判断した場合(ステップS97でNO)、ステップS92へ移行し、新たなゲインg’を他の補間係数に乗ずる。このように変数nをインクリメントさせてゲインgを段階的に変更させる処理を繰り返し行う。
補正部16はnが10であると判断した場合(ステップS97でYES)、すなわちゲインgが1.5g以上、0.5g以下となる場合、ゲインgによる補正は困難であるとして、補間係数を有効範囲の上限(または下限)に補正する(ステップS98)。なお、本実施の形態においては、ステップS96において、gに1.5を乗ずる処理を行ったが、あくまで一例であり、適宜の値を乗ずるようにすればよい。
本実施の形態2は以上の如き構成としてあり、その他の構成及び作用は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態3
図9は実施の形態3に係る信号処理装置20の構成を示すブロック図である。実施の形態3に係る信号処理装置20の各処理はパーソナルコンピュータで実行されるソフトウェアにより実現しても良い。以下では信号処理装置20をパーソナルコンピュータ20であるものとして説明する。パーソナルコンピュータ20は公知のものであり、CPU(Central Processing Unit)61にバス67を介してRAM(Random Access Memory)62、ハードディスク等の記憶部65、入力部63、スピーカ等の出力部64、インターネット等の通信網に接続可能な通信部66を備える。
パーソナルコンピュータ20を動作させるためのコンピュータプログラムは、本実施の形態3のように、CD−ROM、MO、またはDVD−ROM等の可搬型記録媒体1Aで提供することも可能である。さらに、コンピュータプログラムを、通信部66を介して図示しないサーバコンピュータからダウンロードすることも可能である。以下に、その内容を説明する。
図9に示すパーソナルコンピュータ20の図示しないリーダ/ライタに、係数を選択させ、補間係数を算出させるコンピュータプログラムが記録された可搬型記録媒体1A(CD−ROM、MO又はDVD−ROM等)を、挿入して記憶部65の制御プログラム内にこのプログラムをインストールする。または、かかるプログラムを、通信部66を介して外部の図示しないサーバコンピュータからダウンロードし、記憶部65にインストールするようにしても良い。かかるプログラムはRAM62にロードして実行される。これにより、上述のような本発明の信号処理装置20として機能する。
本実施の形態3は以上の如き構成としてあり、その他の構成及び作用は実施の形態1及び2と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態4
図10は実施の形態4に係る復号装置のハードウェア構成を示すブロック図である。図において20Aは、符号化された音響信号を復号する復号装置であり、MP3方式以外の、AACまたはATRAC方式に適用される。以下では復号装置20AをATRAC方式に適用した例について説明する。復号装置20Aは、音響信号入力部21、アンパッキング部22、逆量子化部23、量子化ビット数検出部11、演算部であるバタフライ演算部31、周波数時間変換部24、周波数帯域合成部25及び音響信号出力部26を含んで構成される。なお、周波数帯域合成部25は、IQMFである。
記録媒体から読み出された符号化音響信号またはデジタルチューナにより受信した符号化音響信号等は、音響信号入力部21へ入力され、入力された符号化音響信号はアンパッキング部(デマルチプレクサ)22へ出力される。アンパッキング部22は、音響信号のフレーム情報から量子化係数、量子化ビット数、スケールファクタをそれぞれアンパッキングする。アンパッキングされた量子化係数、量子化ビット数、及びスケールファクタは逆量子化部23において逆量子化される。逆量子化部23からは式(32)で示すIMDCT係数が周波数帯域毎に量子化ビット数検出部11へ出力される。
ここで、式32中の変数mはIMDCT係数のインデックス、iは逆量子化周波数帯域のインデックス、MK(m)は量子化係数、WL(i)は量子化ビット数、SF(i)はスケールファクタを表している。
図11は対称帯域にある係数を説明するためのグラフである。図11のグラフは横軸を周波数、縦軸をスペクトルとし、帯域分割フィルタであるQMFにより512サンプルのPCMが2分割された低域側の周波数帯域block(L)と高域側の周波数帯域block(H)内のIMDCT係数を表示している。また、図12はQMFの周波数応答を示すグラフである。横軸は各周波数を示し、サンプリング周波数が44.1kHzの場合、π/2が22.05Hzである。縦軸は強度を示し単位はデシベルである。図12のように、周波数の中央(帯域の分割境界)から低域側(H0(z))の応答と高域側(H1(z))の応答は対称な特性になるように設計されており、H0(z)とH1(z)との阻止域減衰が約−70dBの周波数を低域境界、及び高域境界と呼ぶことにする。block(L)とblock(H)との分割境界はI(255)とI(256)との間である。また低域境界はI(191)とI(192)との間、高域境界はI(319)とI(320)との間として説明する。量子化ビット数検出部11は、入力された一の周波数帯域の係数が一の周波数帯域の分割境界と低域境界との間に存在するか否かを判断し、さらに量子化ビット数が0であるか否かを判断する。そして、係数が一の周波数帯域の分割境界と低域境界の間に含まれない場合は、折り返し歪みは非常に小さいので、バタフライ演算部31を経ることなく当該係数を周波数時間変換部24へ出力する。量子化ビット数検出部11は、係数の量子化ビット数が0であると判断した場合、帯域分割境界を中心に折り返した高域側の係数の量子化ビット数を判断する。すなわち、量子化ビット数検出部11は帯域内の全ての係数について検出するのではなく、所定周波数内の係数のみを検出してバタフライ演算部31による演算を行う。この所定周波数は、例えば、上述したように、帯域の分割境界(I(255)とI(256)との間)と、図12の周波数応答に基づく所定強度(−70dB)以上の周波数(I(191)とI(192)との間)との間に存在する周波数とすればよい。量子化ビット数検出部11が検出する係数の範囲は、帯域分割フィルタの特性、音質及び消費電力等によって適宜設定すれば良く、検出する係数の範囲を予め量子化ビット数検出部11の図示しないメモリに記憶しておけばよい。また本実施の形態においては、周波数応答に基づく強度が−70dB以上の周波数としたが、これに限るものではなく、例えば高域側の周波数応答においては帯域の分割境界から周波数が小さくなるにつれて強度が減少するが、最初に極値をとる強度(図12では−74dB)以上の周波数としても良い。この場合、量子化ビット数検出部11が検出する係数は、帯域の分割境界に対応する周波数と、高域側の周波数応答において分割境界を経て最初に極値をとる強度に対応する周波数との間に属する係数となる。
量子化ビット数検出部11は、帯域分割境界を中心に折り返した高域側の係数の量子化ビット数が0と判断した場合、折り返し成分も0であり、折り返し歪みは発生しないので、量子化ビット数検出部11は一の周波数帯域の係数を、バタフライ演算部31を経ることなく周波数時間変換部24へ出力する。
当該係数または帯域分割境界を中心に折り返した高域側の係数の量子化ビット数のどちらか一方が0でない場合、当該係数と帯域分割境界を中心に折り返した高域側の係数をバタフライ演算部31へ出力する。
バタフライ演算部31は、当該係数と帯域分割境界を中心に折り返した高域側の係数及びバタフライ係数を用いてバタフライ演算を行い、バタフライ演算後の係数を周波数時間変換部24へ出力する。なお、バタフライ演算は帯域分割された境界帯域の折り返し歪みを削減するために行われる。またバタフライ係数については後述する。周波数時間変換部24ではIMDCT処理が施され、時間軸の音響信号に変換される。更に、逆変換された音響信号は周波数帯域合成部25において、帯域合成フィルタであるIQMFによって帯域合成された後、音響信号出力部26へ出力される。
図11に示すI(255)とI(256)とを中心として、図12に示すQMFの周波数応答の約−70dBまでの低域側64個のIMDCT係数と高域側の64個のIMDCT係数に対し、すなわち、低域境界までのI(192)〜I(255)と、高域境界までのI(256)〜I(319)に対して折り返し歪み成分を打ち消すバタフライ演算が行われる。ここで一の周波数帯域block(L)の係数I(193)及びI(317)に着目する。なお、I(193)及びI(317)の量子化ビット数は0であるものとする。
I(193)については、分割境界の対称位置にあるI(318)との比較が行われる。量子化ビット数検出部11は係数I(318)の量子化ビット数を検出し、0であるか否かを判断する。ここで、係数I(318)の量子化ビット数は0でないので、I(193)及びI(318)を用いたバタフライ演算が行われる。
図13はバタフライ演算の手順を示す説明図である。バタフライ演算部31は入力In1及びIn2を、式(33)へ代入することにより出力Out1及びOut2を得る。上述の例では、係数I(193)及びI(318)がそれぞれ入力され、係数I’(193)及びI’(318)がバタフライ演算部31から周波数時間変換部24へ出力される。
ここで、バタフライ演算における係数ciは、入力In1または入力In2と分割境界との間隔に応じて定まる係数であり、図12のQMFの周波数応答特性から求められる。図14はバタフライ演算係数記憶部310のレコードレイアウトを示す説明図である。バタフライ演算係数記憶部310(図示せず)はバタフライ演算部31内部に記憶されており、入力In1または入力In2と分割境界との間隔iに対応付けて係数ciが記憶されている。係数I(193)及びI(318)の場合、分割領域との間隔i=62となり、ci=-0.00054932が選択される。この係数ciから式(33)によって係数csi 及びcai が算出される。なお、計算後のcsi 及びcaiも予めバタフライ演算部31内部に記憶しておいても良い。一方、係数I(194)の場合、分割境界の対称位置にあるI(317)との比較が行われる。ここでI(317)の量子化ビット数が0であるとすると、量子化ビット数検出部11はバタフライ演算部31を経ることなく、係数I(194)及び、I(317)をそのまま周波数時間変換部24へ出力する。
図15はバタフライ演算処理の手順を示すフローチャートである。まず、量子化ビット数検出部11は係数の初期選択を行う(ステップS161)。量子化ビット数検出部11は選択された係数が一の周波数帯域の分割境界と低域境界との間に存在するか否かを判断する(ステップS162)。
量子化ビット数検出部11は選択された係数が一の周波数帯域の分割境界と低域境界との間に存在すると判断した場合(ステップS162でYES)、選択された係数の量子化ビット数が0であるか否かを判断する(ステップS163)。量子化ビット数検出部11は選択された係数の量子化ビット数が0と判断した場合(ステップS163でYES)、分割境界を中心として折り返した高域側の周波数帯域の係数の量子化ビット数が0であるか否かを判断する(ステップS164)。量子化ビット数検出部11は、分割境界を中心として折り返した高域側の周波数帯域の係数の量子化ビット数が0でないと判断した場合(ステップS164でNO)、選択された係数及び高域側の周波数帯域の係数をバタフライ演算部31へ出力する。バタフライ演算部31は一の周波数帯域の係数及び高域側の周波数帯域の係数を用いてバタフライ演算を行う(ステップS166)。具体的にはバタフライ演算部31は式33を読み出し、またバタフライ演算係数記憶部310から読み出した係数Ci並びに一の周波数帯域の係数及び高域側の周波数帯域の係数を、読み出した式に代入し演算後の係数及び高域側の係数を求める。バタフライ演算後の一の周波数帯域の係数及び高域側の周波数帯域の係数は周波数時間変換部24へ出力される。
量子化ビット数検出部11は、選択された係数の量子化ビット数が0でないと判断した場合(ステップS163でNO)、分割境界を中心として折り返した高域側の周波数帯域の係数の量子化ビット数が0であるか否かを判断する(ステップS165)。量子化ビット数検出部11は、分割境界を中心として折り返した高域側の周波数帯域の係数の量子化ビット数が0と判断した場合(ステップS165でYES)、選択された係数及び高域側の周波数帯域の係数がバタフライ演算部31へ出力され、ステップS166で述べた処理が行われる。
ステップS162においてNOの場合、ステップS164においてYESの場合、及びステップS165においてNOの場合は、ステップS166の処理、すなわちバタフライ演算処理がスキップされ、この場合選択された係数はバタフライ演算部31を経ることなく周波数時間変換部24へ出力される。その後、バタフライ演算部31はblock(L)の全係数に対して処理を終了したか否かを判断する(ステップS167)。バタフライ演算部31は全ての係数について処理を終えていないと判断した場合(ステップS167でNO)、ステップS162乃至ステップS166の処理を未だ終えていない係数へ変更し、ステップS162以降の処理を繰り返す。一方、バタフライ演算部31は全ての係数について処理を終えたと判断した場合(ステップS167でYES)、一連の処理を終了する。
本実施の形態4は以上の如き構成としてあり、その他の構成及び作用は実施の形態1乃至3と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態5
図16は実施の形態5に係る信号処理装置たる復号装置20及び復号装置20Aのハードウェア構成を示すブロック図である。図16は実施の形態1の復号装置20及び実施の形態4の復号装置20Aをそれぞれ組み合わせたものであり、これらに方式判断部32を加えたものである。方式判断部32は入力される音響信号の符号化方式を判断し、符号化方式に応じて入力される音響信号を復号装置20または復号装置20Aのいずれかへ出力する。方式判断部32は、入力された符号化方式が、折り返し歪みを削減するバタフライ演算を行う方式であると判断した場合、補間処理部1を備える復号装置20へ音響信号を出力する。一方、入力された符号化方式が、折り返し歪みを削減するバタフライ演算を行う方式でないと判断した場合、バタフライ演算部31を備える復号装置20Aへ音響信号を出力する。例えば方式判断部32は、入力音響信号中のヘッダ等を参照することにより、符号化方式がMP3方式であると判断した場合、入力音響信号を復号装置20へ出力する。その後、入力音響信号は実施の形態1で述べた補間処理が行われる。一方、方式判断部32は、入力音響信号の符号化方式がAAC方式、または、ATRAC方式であると判断した場合、入力音響信号を復号装置20Aへ出力する。その後、入力音響信号は実施の形態4で述べたバタフライ演算処理が行われる。
本実施の形態5は以上の如き構成としてあり、その他の構成及び作用は実施の形態1乃至4と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態6
実施の形態5に係る処理を図9で示したパーソナルコンピュータを用いてソフトウェア処理として実現するようにしても良い。図17は実施の形態6に係る信号処理装置20の構成を示すブロック図である。信号処理装置たるパーソナルコンピュータ20を動作させるためのコンピュータプログラムは、本実施の形態6のように、CD−ROM、MO、またはDVD−ROM等の可搬型記録媒体1Aで提供することも可能である。さらに、コンピュータプログラムを、通信部66を介して図示しないサーバコンピュータからダウンロードすることも可能である。以下に、その内容を説明する。
図17に示すパーソナルコンピュータ20の図示しないリーダ/ライタに、方式を判断させ、量子化ビット数を検出させ、バタフライ演算をさせるコンピュータプログラムが記録された可搬型記録媒体1A(CD−ROM、MO又はDVD−ROM等)を、挿入して記憶部65の制御プログラム内にこのプログラムをインストールする。または、かかるプログラムを、通信部66を介して外部の図示しないサーバコンピュータからダウンロードし、記憶部65にインストールするようにしても良い。かかるプログラムはRAM62にロードして実行される。これにより、上述のような本発明の信号処理装置20として機能する。
本実施の形態6は以上の如き構成としてあり、その他の構成及び作用は実施の形態1乃至5と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。