実施の形態1
以下本発明の実施の形態を、図面を参照して説明する。図1は信号処理装置たる復号装置のハードウェア構成を示すブロック図である。図において20は、符号化された音響信号を復号する復号装置であり、音響信号入力部21、アンパッキング部22、逆量子化部23、補間処理部1、周波数時間変換部24、周波数帯域合成部25及び音響信号出力部26を含んで構成される。なお、本実施の形態においては圧縮符号化方式としてMP3を適用した例について説明するが、他の方式についても同様に適用しても良い。
記録媒体から読み出された符号化音響信号またはデジタルチューナにより受信した符号化音響信号等は、音響信号入力部21へ入力され、入力された符号化音響信号はアンパッキング部(デマルチプレクサ)22へ出力される。アンパッキング部22は、音響信号のフレーム情報から量子化係数、スケールファクタ、スケールファクタマルチプレクサ、グローバルゲイン、サブブロックゲインをそれぞれアンパッキングする。アンパッキングされた量子化係数、量子化ビット数、及びスケールファクタ、スケールファクタマルチプレクサ、グローバルゲイン、サブブロックゲインを用いて逆量子化部23においてIMDCT係数に逆量子化される。逆量子化部23からはブロック長(ロングブロックまたはショートブロック)に応じて次の式(1)で示されるIMDCT係数が周波数帯域毎に出力される。
式(1)中の変数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におけるスケールファクタに関する値は、式(1)で示す如く、スケールファクタ、スケールファクタマルチプレクサ、グローバルゲイン及びサブブロックゲイン(式(1)の2の乗数以降の箇所)、プリエンファシスの有無フラグ、プリエンファシステーブルによって得られる値を用いて算出される。以下ではATRACにおけるスケールファクタ及びMP3におけるスケールファクタに関する値をまとめてスケールファクタとして説明する。
本実施の形態においては図に示すように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の係数からなる。なお、本実施の形態においては、ブロック長はロングブロックであるものとして説明する。また、IMDCT係数の576サンプルが1グラニュールを構成し、グラニュール0とグラニュール1との合計1152の係数サンプルを1フレームとして処理するが、以後、1グラニュールの事を1フレームと称して説明する。
図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から出力される。周波数時間変換部24ではIMDCT処理が施され、時間軸の音響信号に変換される。更に、逆変換された音響信号は周波数帯域合成部25において、帯域合成フィルタであるIPFB(Inverse Polyphase Filter Bank)によって帯域合成された後、音響信号出力部26へ出力される。
図3は補間処理部1のハードウェア構成を示すブロック図である。補間処理部1はレベル検出部としての最小値検出部12、補正係数算出部18、補正値算出部13、白色雑音格納部16、出力部14、最大スペクトル検出部15及び補正周波数係数算出部17を含んで構成される。逆量子化部23から出力される各周波数帯域の係数I(m)は最小値検出部12へ入力される。最小値検出部12は一フレームの係数I(0)〜係数I(575)から、零を除く係数(スペクトル)の絶対値の最小値を検出する。図2の例においては、零であるI(18×k+2)ではなく、I(18×k+1)が検出される。検出された絶対値が最小の係数I(m)が最小値として補正係数算出部18へ出力される。なお、本実施の形態においてはレベル検出部として最小値検出部12を用いて、係数I(m)の零を除く係数の絶対値の最小値をレベルとして検出することとしたが、これに限るものではない。例えば、係数I(m)のレベルとしてはこの他に、係数I(m)の2番目に絶対値の小さい値、絶対値の小さいもの3つの平均値または分散値等であっても良い。
白色雑音格納部16は、複数の白色雑音(白色雑音の周波数成分源)をブロック単位で格納している。図4は白色雑音格納部16のレコードレイアウトを示す説明図である。白色雑音格納部16は、一フレームに対応する時間の白色雑音を複数の帯域(ブロック)に分割し、帯域毎に直交変換した直交変換係数(スペクトル)により構成されている。白色雑音格納部16はブロックフィールド、番号mフィールド及びスペクトルIwn(m)フィールドを含んで構成される。ブロックフィールドにはロングブロックに対応する白色雑音を構成するブロック数が記憶されており、ブロック0〜ブロック31までの全32ブロックが用意されている。番号mフィールドにはブロック毎に白色雑音のスペクトルを識別するための番号が記憶されている。
また、スペクトルIwn(m)フィールドには、番号mに対応させて白色雑音のスペクトルがそれぞれ記憶されている。本実施の形態においては1ブロックあたり18個のスペクトルが、全32ブロック、計576のスペクトルが記憶される。例えばブロック「0」の番号「1」には白色雑音のスペクトル「0.003125」が格納されている。この白色雑音のスペクトルは全スペクトルを平均した場合に所定値となるよう、例えば約−20dBとなるよう、設定すれば良い。なお、このIwn(m)は、I(m)の最小値の約1/2のレベルの白色雑音を作成するためのテーブルであって、約−20dBという数値には限定する必要はない。白色雑音格納部16には、予め時間信号の白色雑音源を圧縮時に時間周波数変換した変換係数(スペクトル)データが、ブロック長に応じてメモリ等に記憶されて用意されている。つまり一フレームあたりの白色雑音を複数の帯域に分割し、帯域毎に直交変換した直交変換係数により構成されている。ロングブロックの場合は、圧縮時に周波数分割により18個の時間データに分割され、18個の周波数成分データに変換された変換係数がメモリ等に記録され、ショートブロックの場合は、圧縮時に周波数分割により6個の時間データに分割され、6個の周波数成分データに変換された変換係数がメモリ等に記録されている。なお、本実施の形態においては、説明を容易にするために予め用意しておいた白色雑音を用いる形態について説明するが、装置内で図示しない乱数発生器等により、全体の平均スペクトルが所定値以下となる白色雑音を逐次発生させて、白色雑音格納部16に一時的に記憶してから出力するようにしても良い。
白色雑音格納部16に接続される出力部14は白色雑音格納部16の複数のブロックを無作為にまたは規則的に選択し、当該選択したブロックの白色雑音に係るスペクトルを最大スペクトル検出部15及び補正値算出部13へ出力する。最大スペクトル検出部15は出力部14から出力されたブロック内のスペクトルの絶対値に係る最大値を検出する。なお、本実施の形態においては、最大スペクトル検出部15はスペクトルの最大値を検出するが、最大スペクトル検出部15に代えて平均スペクトル検出部(図示せず)を設け、ブロック内のスペクトルの平均値を検出するようにしても良い。最大スペクトル検出部15で検出された絶対値が最大値に係る白色雑音のスペクトル(またはスペクトル平均値)は補正係数算出部18へ出力される。なお、本実施の形態においては最大スペクトル検出部15または平均スペクトル検出部を設け白色雑音の最大値または平均値を出力するようにしているが、白色雑音のレベルを検出するものであれば、この形態に限るものではない。例えば、選択されたブロックの白色雑音の値の大きい複数のスペクトルの平均値、または分散値等を検出するものであっても良い。
補正係数算出部18は最小値検出部12から出力された係数I(m)の最小値を、白色雑音のスペクトルの最大値(または平均値)の2倍で除すことにより、補正係数を算出する。補正係数算出部18は算出した補正係数を補正値算出部13へ出力する。なお、本実施の形態においては、係数I(m)の最小値を、白色雑音のスペクトルの最大値(または平均値)の2倍で除すようにしているが、あくまで一例であり、3倍等で除しても良い。補正値算出部13は、補正すべき白色雑音に関する値として、出力部14から出力される一ブロックの白色雑音に係るスペクトルと補正係数算出部18から出力される補正係数とを乗じ、係数I(m)へ補正すべき補正値を算出する。例えば、ブロック「0」の白色雑音のスペクトルIwm(1)〜Iwm(18)が出力された場合、各スペクトルに補正係数が乗じられ、「18」の白色雑音に関する値としての補正値が算出される。補正周波数係数算出部17は、補正値算出部13から出力される補正値と係数I(m)とを加算し補正後の係数I(m)を算出する。補正後の係数I(m)は周波数時間変換部24へ出力される。上記例では、係数I(18×k)〜I(18×k+17)に18個の補正値がそれぞれ加算され補正後の係数I(18×k)〜I(18×k+17)が算出される。ここで、補正係数算出部18で算出した補正係数は周波数帯域間0≦k≦31で、同じ値が使用される。また、出力部14から無作為または規則的に選択され、補正値算出部13へ出力されるブロックに係る白色雑音は周波数帯域間0≦k≦31で、同じブロックに係る白色雑音のスペクトルを使用しても良く、また周波数帯域間0≦k≦31で再び無作為または規則的に選択される異なるブロックに係る白色雑音のスペクトルを使用するようにしても良い。なお、量子化値が非零に係る周波数帯域には補正値を加算しなくても良い。
以上の各ハードウェアの処理を、フローチャートを用いて説明する。図5は補正後の係数の算出手順を示すフローチャートである。まず最小値検出部12は係数I(m)の零を除く係数の絶対値の最小値を一フレーム内の係数の中から検出する(ステップS51)。白色雑音格納部16に接続される出力部14は白色雑音格納部16の一のブロックを無作為にまたは規則的に選択し、当該選択されたブロックの白色雑音(スペクトル)を最大スペクトル検出部15及び補正値算出部13へ出力する(ステップS52)。最大スペクトル検出部15は出力部14から出力されたブロック内のスペクトルの絶対値に係る最大値を検出する(ステップS53)。最大スペクトル検出部15で検出された、絶対値が最大値に係る白色雑音のスペクトル(またはスペクトル平均値)は補正係数算出部18へ出力される。
補正係数算出部18は最小値検出部12から出力された係数I(m)の最小値を、白色雑音のスペクトルの最大値(または平均値)の2倍で除すことにより、補正係数を算出する(ステップS54)。補正係数算出部18は算出した補正係数を補正値算出部13へ出力する。補正値算出部13は補正係数算出部18から出力される補正係数を、出力部14から無作為または規則的に出力されるブロックの白色雑音に係る各スペクトルに乗じ、係数I(m)へ補正すべき補正値を算出する(ステップS55)。補正周波数係数算出部17は、補正値算出部13から出力される各補正値を係数I(m)に加算して、補正後の係数I(m)を算出する(ステップS56)。例えば、ステップS54で算出した補正係数をJとした場合、図4に示すブロック0内のスペクトルIwn(1)〜Iwn(18)にJを乗算して補正値Iwn’(1)〜Iwn’(18)を算出する。そして、block(0)内の係数I(0)〜係数I(17)に補正値Iwn’(1)〜Iwn’(18)を加算して、補正後の係数I’(0)〜係数I’(17)を得ることができる。これは次のblock(1)の係数I(18)〜係数I(35)についても同様である。すなわち、無作為または規則的に選択された図4に示すブロック1内のスペクトルIwn(19)〜Iwn(36)にJを乗算して補正値Iwn’(19)〜Iwn’(36)を算出する。そして、block(1)内の係数I(18)〜係数I(35)に補正値Iwn’(19)〜Iwn’(36)を加算して、補正後の係数I’(18)〜係数I’(35)を得ることができる。そして係る処理を異なるブロックに繰り返し適用する。以上の如く、IMDCT係数の最小値及び白色雑音に基づき算出される補正値をIMDCT係数に加算するので、音圧に合致した最適量の白色雑音を加算でき、量子化により失われたエネルギを適切に補うことが可能となる。
実施の形態2
実施の形態2は最小値検出部12で検出した最小値を補正する形態に関する。図6は実施の形態2に係る補間処理部1のハードウェア構成を示すブロック図である。実施の形態2に係る補間処理部1は実施の形態1の構成に加え、エネルギ算出部121、前フレームエネルギ保存部122、エネルギ変化率算出部123、判断部124、最小値補正部126、最小値変化率算出部125、補正最小値設定部127、最小値設定部128及び前フレーム最小値保存部129を含んで構成される。なお、以下では、符号化(復号化)処理単位の時間間隔を意味するフレームが、現在処理されているフレームより、1フレーム過去の時間に処理されたフレームを前フレームという。
周波数帯域の係数I(m)はエネルギ算出部121、最小値検出部12及び補正周波数係数算出部17へ入力される。エネルギ算出部121は係数I(m)を2乗した値、即ちパワースペクトルの総和によりエネルギを算出する。このエネルギは、式(2)で示す如く、フレームの周波数帯域I(0)〜I(575)の係数の2乗総和をとることより算出される。ここではエネルギを用いたが、式(3)で示す如く、スペクトルの数、例えば576で除すことにより算出された平均パワースペクトルを用いてもよい。以下では、エネルギ算出部121はエネルギを算出するものとして説明する。
ここでEは1フレームのエネルギを示し、またmは自然数であり最大値はMである。図2の例では、I(0)〜I(575)の2乗総和をとることによりエネルギが算出される。前フレームエネルギ保存部122は、エネルギ算出部121で算出した前フレームのエネルギを保存する。エネルギ変化率算出部123へは、前フレームエネルギ保存部122で保存された前フレームのエネルギ及びエネルギ算出部121で算出したエネルギがそれぞれ入力される。エネルギ変化率算出部123は、式(4)で示す如く、エネルギ算出部121で算出したエネルギを、前フレームエネルギ保存部122から出力される前フレームのエネルギで除し、平方根をとることによりエネルギ変化率を算出する。すなわち、エネルギ算出部121で算出された所定時刻における復号化処理単位(フレーム)のエネルギと、前フレームエネルギ保存部122にて保存された前記所定時刻より過去の復号化処理単位(フレーム)のエネルギとの変化率を算出する。
ここで、Epは前フレームのエネルギを示し、ERはエネルギ変化率を示す。なお、本実施の形態2においてはエネルギ変化率としてエネルギを前エネルギで除して平方根をとることにより、算出したが、要はフレーム間のエネルギ変動を算出できるものであればこれに限るものではなく、例えば算出したエネルギから前エネルギを減算し、これを2乗することにより変化率とする他、逆に前エネルギをエネルギ算出部121で算出したエネルギで除し平方根をとっても良い。
算出されたエネルギ変化率は判断部124へ出力される。最小値検出部12へ入力された係数I(m)は実施の形態1と同じく周波数帯域内の零を除く絶対値の最小値に係る係数I(m)が検出される。前フレーム最小値保存部129は、最小値検出部12で検出された前フレームの最小値が保存される。最小値変化率算出部125へは、前フレーム最小値保存部129で保存された前フレームの最小値及び最小値検出部12で検出した最小値がそれぞれ入力される。最小値変化率算出部125は、最小値検出部12で検出した最小値を、前フレーム最小値保存部129から出力される前フレームの最小値で除すことにより最小値変化率を算出する。すなわち、最小値検出部12で検出した所定時刻における復号化処理単位(フレーム)の最小値と、前フレーム最小値保存部129に保存された前記所定時刻より過去の復号化処理単位(フレーム)の最小値との変化率を算出する。なお、最小値の変化率も、前フレームの最小値との変動を算出できるのであれば、例えば検出した最小値から前フレームの最小値を減じて2乗したものを変化率として算出する他、逆に前フレームの最小値を検出した最小値で除しても良い。
判断部124はエネルギ変化率算出部123から出力されるエネルギ変化率と、最小値変化率算出部125から出力される最小値変化率とを比較し、エネルギ変化率が最小値変化率よりも大きいか否かを判断する。これは、最小値の変動がフレーム間で大きい場合に、実施の形態1で述べた最小値を補正するものであり、その判断の閾値としてフレーム間のエネルギ変化率を比較対象としたものである。判断部124は、エネルギ変化率が最小値変化率より大きいと判断した場合、特に補正する必要はないので、最小値検出部12にて検出した最小値を補正係数算出部18及び最小値設定部128へ出力する。最小値設定部128は、当該最小値を前フレームの最小値として前フレーム最小値保存部129にて保存すべく、当該最小値を前フレーム最小値保存部129へ出力する。すなわち、最小値設定部128から出力される最小値は、次のフレームにおける最小値変化率を算出する場合に、前フレーム最小値保存部129から出力される前フレームの最小値として用いられる。
一方、判断部124はエネルギ変化率が最小値変化率よりも小さいと判断した場合、エネルギ変化率及び前フレームの最小値を最小値補正部126へ出力する。最小値補正部126は最小値変化率とエネルギ変化率とが等しくなるよう最小値を補正する。具体的には式(5)で示す条件式を満たすよう最小値を補正する。
ここで、MSRは係数I(m)の最小値を前フレームの最小値で除した最小値変化率を示す。このように式(5)の右辺の最小値変化率は、式(6)に示す如く、|I(m)|の零を除く最小値を前フレームの|I(m)|の零を除く最小値で除したものとして変形できる。そして求めるべき補正後の最小値はエネルギ変化率ERに前フレームの最小値を乗じた値となる。最小値補正部126はこのようにして補正した最小値を補正最小値設定部127及び補正係数算出部18へ出力する。補正最小値設定部127は、最小値設定部128と同じく、補正後の最小値を前フレームの最小値として保存するよう、当該補正後の最小値を前フレーム最小値保存部129へ出力する。
前フレーム最小値保存部129は、補正最小値設定部127または最小値設定部128から出力された最小値を保存する。前フレーム最小値保存部129は補正最小値設定部127または最小値設定部128から出力された最小値を最小値変化率算出部125へ出力する。なお、本実施の形態2においては、最小値変化率がエネルギ変化率と等しくなるよう最小値を補正したが、必ずしも厳密に最小値変化率がエネルギ変化率と等しくなるまで最小値を補正する必要はなく、略等しくなるまで補正すれば良く、多少の誤差を持たせても良い。また最小値補正部126から出力される補正後の最小値は補正係数算出部18へ出力される。
以上のハードウェア構成において、補正後の最小値の算出処理手順を、フローチャートを用いて説明する。図7は補正後の最小値の算出処理手順を示すフローチャートである。まず、前フレームエネルギ保存部122及び前フレーム最小値保存部129の保存内容を初期化する(ステップS71)。具体的には前フレームのエネルギ及び前フレームの最小値を1とする。かかる処理は第1番目のフレームに対する補正後の係数を算出する場合に、エネルギ変化率算出部123及び最小値変化率算出部125において、分母に0が代入されて無限大の解が発生することを防止するための処理であり、次フレーム以降の処理は、算出された前フレームのエネルギ及び最小値が保存されて利用される。なお、楽曲の途中に無音のフレームがある場合には、スタートより開始される。
周波数帯域の係数I(m)はエネルギ算出部121、最小値検出部12及び補正周波数係数算出部17へ出力される(ステップS72)。エネルギ算出部121は係数I(m)のエネルギを算出する(ステップS73)。エネルギ変化率算出部123へは、前フレームエネルギ保存部122で保存された前フレームのエネルギ及びエネルギ算出部121で算出したエネルギがそれぞれ入力される。エネルギ変化率算出部123は、エネルギ算出部121で算出したエネルギを、前フレームエネルギ保存部122から出力される前フレームのエネルギで除し、平方根をとることによりエネルギ変化率を算出する(ステップS74)。前フレームエネルギ保存部122は、保存した前フレームのエネルギをエネルギ変化率算出部123へ出力した後、エネルギ算出部121から出力されるエネルギを、次フレームの演算で用いる前フレームのエネルギとして保存する。
算出されたエネルギ変化率は判断部124へ出力される。最小値検出部12は入力された係数I(m)に基づき、絶対値の最小値に係る係数I(m)を検出する(ステップS75)。最小値変化率算出部125へは、前フレーム最小値保存部129で保存された前フレームの最小値及び最小値検出部12で検出した最小値がそれぞれ入力される。最小値変化率算出部125は、最小値検出部12で検出した最小値を、前フレーム最小値保存部129から出力される前フレームの最小値で除すことにより最小値変化率を算出する(ステップS76)。
判断部124はエネルギ変化率算出部123から出力されるエネルギ変化率と、最小値変化率算出部125から出力される最小値変化率とを比較し、エネルギ変化率が最小値変化率よりも大きいか否かを判断する(ステップS77)。判断部124は、エネルギ変化率が最小値変化率より大きいと判断した場合(ステップS77でYES)、最小値検出部12にて検出した最小値を補正係数算出部18へ出力する(ステップS78)。また最小値は、最小値設定部128へ出力される。最小値設定部128は、当該最小値を前フレームの最小値として保存すべく、前フレーム最小値保存部129へ最小値を出力し、前フレーム最小値保存部129は、最小値設定部128から出力された最小値を保存する(ステップS79)。
一方、判断部124はエネルギ変化率が最小値変化率よりも小さいと判断した場合(ステップS77でNO)、エネルギ変化率及び前フレームの最小値を最小値補正部126へ出力し、最小値補正部126は最小値変化率とエネルギ変化率とが等しくなるよう最小値を補正する(ステップS710)。具体的には上述したように前フレームの最小値をエネルギ変化率に乗ずることにより最小値補正部126は補正後の最小値を算出する。最小値補正部126は算出した補正後の最小値を補正最小値設定部127及び補正係数算出部18へ出力する(ステップS711)。補正最小値設定部127は、最小値設定部128と同じく、補正後の最小値を前フレームの最小値として保存するよう、当該補正後の最小値を前フレーム最小値保存部129へ出力する。
前フレーム最小値保存部129は、補正最小値設定部127から出力された最小値を保存する(ステップS712)。ステップS79及びステップS712の処理以降、エネルギ算出部121は、ステップS73で算出したエネルギを前フレームエネルギ保存部122に保存する(ステップS713)。ステップS78で出力された最小値またはステップS711で出力された最小値は、補正係数算出部18へ出力される。以降の処理は図5のステップS52乃至ステップS56と同様であるので詳細な説明は省略する。このように、フレーム間のエネルギ変化率及び最小値変化率に着目し、最小値変化率が顕著な場合、これを低減させることにより、最小値を補正し、ひいては係数I(m)に加算する白色雑音に係る補正値の変動を低減させることができ、その結果フレーム間での不自然な補間処理が防止される。
図8は判断部124を用いない場合と、用いた場合との補正係数の比較を示すグラフである。図8(a)は、判断部124における処理、すなわちエネルギ変化率と最小値変化率との比較処理を行わない場合の補正係数の変化を示すグラフである。図8(a)のグラフの横軸はフレームを示し、縦軸は補正係数算出部18にて算出される補正係数(係数I(m)の最小値を白色雑音のスペクトルの最大値を除したもの)である。なお、補正係数「1」を−20dBとしている。図8(a)のグラフは、フレーム毎の補正係数の変化を示しており、数カ所で補正係数が突出している箇所が散見される。
図8(b)は判断部124における処理、すなわちエネルギ変化率と最小値変化率との比較処理を行う場合の補正係数の変化を示すグラフである。図8(a)のグラフと比較すると、突出していた補正係数が減少していることが理解できる。図8に示す如く、フレーム間で、エネルギ変化率及び最小値変化率に鑑み、最小値を適宜補正することにより、係数I(m)へも、変動の少ない補正値が加算され、より自然な原音の再現が可能となる。
図9は従来技術との比較結果を示すグラフである。図9において横軸はエンコードビットレートであり、単位はkbps(bits per second)である。また縦軸はODG(Objective Difference Grade)である。また、実線は本技術を適用したMP3デコーダの各エンコードビットレートに対するODGの変化を示し、点線は従来のMP3デコーダの各エンコードビットレートに対するODGの変化を示す。評価試験はJEITA(Japan Electronics and Information Technology Industries Association)のCPX−2601が規定する測定方法を用い、またLAME社コアのエンコーダを使用した。
評価規格は「ITU−R Rec.BS.1387−1(2001) Basic Version」であり、テストソースはCat No.42204-2(1988) EBU/Sound Quality Assessment Material recordings for subjective tests(SQAM)のTrack No.27(カスタネット)、32(トライアングル)、35(鉄琴)、40(ハープシコード)、65(オーケストラ)、66(木琴アンサンブル)、69(ホップス/ABBA)、及び70(ホップス/E.RABBITT)の以上8曲の加算平均を用いた。
ODGは測定の最終結果として得られる客観評価値であり、0〜−4までの負の値をとり、値が大きくなるほど原音からの劣化が小さい。「0.0」は「原音との差が分からない」、「−1.0」は「原音との差が分かるが気にならない」、「−2.0」は「気になるが邪魔にはならない」、「−3.0」は「邪魔になる」及び「−4.0」は「非常に邪魔になる」とそれぞれ定義されている。図9の実線のグラフ及び点線のグラフを比較すると、全域にわたってODGが向上しており、特に64kbbs〜160kbpsにかけては良好な結果が得られることが理解できる。
本実施の形態2は以上の如き構成としてあり、その他の構成及び作用は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態3
図10は実施の形態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を介して図示しないサーバコンピュータからダウンロードすることも可能である。以下に、その内容を説明する。
図10に示すパーソナルコンピュータ20の図示しないリーダ/ライタに、最小値を検出させ、補正係数を算出させ、補正値を算出させ、補正後の係数を算出させるコンピュータプログラムが記録された可搬型記録媒体1A(CD−ROM、MO又はDVD−ROM等)を、挿入して記憶部65の制御プログラム内にこのプログラムをインストールする。または、かかるプログラムを、通信部66を介して外部の図示しないサーバコンピュータからダウンロードし、記憶部65にインストールするようにしても良い。かかるプログラムはRAM62にロードして実行される。これにより、上述のような本発明の信号処理装置20として機能する。
本実施の形態3は以上の如き構成としてあり、その他の構成及び作用は実施の形態1及び2と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態4
実施の形態4は複数の白色雑音格納部16を設ける形態に関する。図11は実施の形態4に係る補間処理部1のハードウェア構成を示すブロック図である。実施の形態4に係る補間処理部1は、実施の形態1または実施の形態2の構成に加えて、ブロック長判別部161、選択部162、第1白色雑音格納部16L及び第2白色雑音格納部16Sを含んで構成される。ブロック長判別部161は入力される音響信号のブロック長がロングブロックであるか、ショートブロックであるかを判断する。ブロック長判別部161はビットストリーム中のフレームサイド情報領域内のblocksplit_flag[ch][gr]フラグを参照し、フレーム毎にロングブロックか、ショートブロックかを判別する。なお、1フレームはロングブロックの場合、18サンプル×32ブロックで576サンプル、ショートブロックの場合、6サンプル×32ブロックで192サンプルのサブブロックが3つで構成される。
ブロック長判別部161は判別したブロック長を選択部162及びエネルギ算出部121へ出力する。エネルギ算出部121は、エネルギとして平均パワースペクトルを算出する場合、係数I(m)の総和の2乗をサンプル数で除すことにより、係数I(m)のエネルギを算出する。このサンプル数を提供すべく、ブロック長判別部161はブロック長をエネルギ算出部121へ出力する。エネルギ算出部121は、ブロック長に応じて、除算用のサンプル数を適宜設定する。
選択部162はブロック長判別部161で判別されたブロック長に基づき、判別ブロック長に応じて第1白色雑音格納部16Lまたは第2白色雑音格納部16Sのいずれかを選択すると共に、その選択した情報を出力部14へ出力する。実施の形態4においては、2種類の白色雑音格納部が設けられる。第1白色雑音格納部16Lは、実施の形態1(図4参照)で示したものと同様であり、選択部162が、ブロック長はロングブロックであると判断した場合に選択される。一方、第2白色雑音格納部16Sは、選択部162が、ブロック長はショートブロックであると判断した場合に選択される。なお、本実施の形態4にあっては、説明を容易にするためにロングブロック及びショートブロックに対応する2つの第1白色雑音格納部16L及び第2白色雑音格納部16Sを設けたが、3種以上の異なるブロック長が存在する場合は、ブロック長に応じて3種以上の白色雑音格納部を用意しても良い。
図12は第2白色雑音格納部16Sのレコードレイアウトを示す説明図である。第2白色雑音格納部16Sはブロックフィールド、番号mフィールド及びスペクトルIwn(m)フィールドを含んで構成される。ブロックフィールドにはショートブロックに対応する白色雑音を構成するブロック数が記憶されており、ブロック0〜ブロック31までの全32ブロックが用意されている。番号mフィールドにはブロック毎に白色雑音のスペクトルを識別するための番号が記憶されている。
また、スペクトルIwn(m)フィールドには、番号mに対応させて白色雑音のスペクトルがそれぞれ記憶されている。本実施の形態4においては1ブロックあたり6個のスペクトルが、全32ブロック、計192のスペクトルが記憶される。例えばブロック「0」の番号「1」には白色雑音のスペクトル「0.007248」が格納されている。この白色雑音のスペクトルはロングブロックと同様に、全スペクトルを平均した場合に、約−20dBとなるよう設定すれば良い。なお、このIwn(m)は、I(m)の最小値の約1/2のレベルの白色雑音を作成するためのテーブルであって、約−20dBという数値には限定する必要はない。
出力部14は、選択部162が第1白色雑音格納部16Lを選択した場合、すなわちブロック長がロングブロックである場合、I(m)が零のスペクトルが存在するブロックに対応して、図4に示す第1白色雑音格納部16Lから、無作為に、または、規則的に選択された複数のブロックのスペクトルを最大スペクトル検出部15及び補正値算出部13へ出力する。一方、選択部162が第2白色雑音格納部16Sを選択した場合、すなわちブロック長がショートブロックである場合、図12に示す第2白色雑音格納部16Sから、無作為に、または、規則的に選択された複数のブロックのスペクトルを最大スペクトル検出部15及び補正値算出部13へ出力する。
このようにして選択された複数のブロックの白色雑音はその複数のブロックに属するスペクトルの最大値が最大スペクトル検出部15で検出され、補正係数算出部18にて係数I(m)の最小値を白色雑音のスペクトルの最大値で除して補正係数を算出し、この補正係数を、ブロックの各スペクトルへ補正値算出部13にて乗ずることにより、補正周波数係数算出部17へ出力される補正値が算出される。
出力部14での複数のブロックの出力は、例えば図示しない乱数発生器により無作為に任意のブロックを出力部14が第1白色雑音格納部16Lまたは第2白色雑音格納部16Sから選択する。または全てのブロックが均等に選択されるよう周期的にブロックを選択するようにしても良い。例えば、第1白色雑音格納部16Lまたは第2白色雑音格納部16Sの全ブロック「0」〜「31」がそれぞれ1回ずつ選択されるよう、出力するようにしても良い。このように、白色雑音のブロックを無作為または規則的に選択することにより、係数I(m)へ加算される補正値が、特定の白色雑音に偏ることなく平坦化され、より自然な補間処理を実現することが可能となる。
図13は第1白色雑音格納部16Lまたは第2白色雑音格納部16Sの選択処理の手順を示すフローチャートである。ブロック長判別部161は入力されるビットストリームのフレームサイド情報を参照して、ブロック長がロングブロックであるか、ショートブロックであるかの判断を行う(ステップS141)。ブロック長判別部161は判別したブロック長をエネルギ算出部121及び選択部162へ出力する(ステップS142)。選択部162はブロック長判別部161で判別されたブロック長がロングブロックか否かを判断する(ステップS143)。選択部162はロングブロックであると判断した場合(ステップS143でYES)、第1白色雑音格納部16Lを選択し(ステップS144)、ロングブロックであることを示す信号を出力部14へ出力する。
一方、選択部162はロングブロックでないと判断した場合(ステップS143でNO)、第2白色雑音格納部16Sを選択し(ステップS145)、ショートブロックであることを示す信号を出力部14へ出力する。出力部14は、選択部162が第1白色雑音格納部16Lを選択した場合、すなわちブロック長がロングブロックである場合、図4に示す第1白色雑音格納部16Lから、無作為に、または、規則的に選択された複数のブロックを選択する(ステップS146)。同様に、出力部14は、選択部162が第2白色雑音格納部16Sを選択した場合、すなわちブロック長がショートブロックである場合、図12に示す第2白色雑音格納部16Sから、無作為に、または、規則的に選択された複数のブロックを選択する(ステップS146)。なお、このブロックの選択処理手順については後述する。
出力部14は無作為または規則的に選択した複数のブロックの白色雑音を読み出す(ステップS147)。そして出力部14はこの読み出した白色雑音(スペクトル)を最大スペクトル検出部15へ出力する(ステップS148)。最大スペクトル検出部15はこの出力された白色雑音のスペクトルの絶対値の最大値を検出する。また、出力部14は、無作為または規則的に選択したブロックの白色雑音を補正値算出部13へ出力する(ステップS149)。以降の補正係数の算出及び補正値の算出は実施の形態1及び2で詳述したので説明は省略する。
図14はブロックの選択処理の手順を示すフローチャートである。出力部14が第1白色雑音格納部16Lまたは第2白色雑音格納部16Sから一のブロックを選択する手順について説明する。なお、以下ではブロック長はロングブロックであるものとし、第1白色雑音格納部16Lから一のブロックに係る白色雑音を出力する形態について説明する。まず出力部14は図4に示す第1白色雑音格納部16Lのブロック0を選択する(ステップS151)。そして出力部14は第1白色雑音格納部16Lのブロック0に属する18個の白色雑音を最大スペクトル検出部15及び補正値算出部13へ出力する。
続いて出力部14は次のブロックを選択する(ステップS152)。例えば、ブロック0の選択後はブロック1が選択される。
出力部14は次のブロック内の白色雑音を第1白色雑音格納部16Lから読み出し、最大スペクトル検出部15及び補正値算出部13へ出力する。出力部14はステップS152で選択したブロックが最終ブロック(図4の例ではブロック31)であるか否かを判断する(ステップS153)。出力部14は、選択したブロックが最終ブロックでないと判断した場合(ステップS153でNO)、ステップS152へ移行し、さらに次のブロックを選択する。
一方、出力部14は、ステップS152にて選択したブロックが最終ブロックであると判断した場合(ステップS153でYES)、上述の例ではブロック31を選択したと判断した場合、ステップS151へ移行し、次に選択するブロックをブロック0とする。このように規則的に白色雑音のブロックを選択し、また1フレーム、576サンプルすべての白色雑音を均等に選択して出力するので、特定の白色雑音に偏ることなく平坦化され、より自然な補間処理を実現することが可能となる。なお、無作為にブロックを選択する場合、図示しない乱数発生器により発生した数値に対応するブロックを選択するようにすればよい。
本実施の形態4は以上の如き構成としてあり、その他の構成及び作用は実施の形態1乃至3と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態5
実施の形態4に係る処理を図10で示したパーソナルコンピュータを用いてソフトウェア処理として実現するようにしても良い。図15は実施の形態5に係る信号処理装置20の構成を示すブロック図である。信号処理装置たるパーソナルコンピュータ20を動作させるためのコンピュータプログラムは、本実施の形態5のように、CD−ROM、MO、またはDVD−ROM等の可搬型記録媒体1Aで提供することも可能である。さらに、コンピュータプログラムを、通信部66を介して図示しないサーバコンピュータからダウンロードすることも可能である。以下に、その内容を説明する。
図15に示すパーソナルコンピュータ20の図示しないリーダ/ライタに、ブロック長を判別させ、白色雑音格納部を選択させ、白色雑音を出力させ、補正後の係数を算出させるコンピュータプログラムが記録された可搬型記録媒体1A(CD−ROM、MO又はDVD−ROM等)を、挿入して記憶部65の制御プログラム内にこのプログラムをインストールする。または、かかるプログラムを、通信部66を介して外部の図示しないサーバコンピュータからダウンロードし、記憶部65にインストールするようにしても良い。かかるプログラムはRAM62にロードして実行される。これにより、上述のような本発明の信号処理装置20として機能する。
本実施の形態5は以上の如き構成としてあり、その他の構成及び作用は実施の形態1乃至4と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態6
実施の形態6は音響信号の純音性に応じて係数を補正するか否かを判断する形態に関する。図16は実施の形態6に係る復号装置20のハードウェア構成を示すブロック図である。図16に示すように指標値算出部27及び純音性判定部28が新たに設けられている。アンパッキング部22はビットストリームのフレームサイド情報から各周波数帯域のスケールファクタを抽出する。
指標値算出部27は、各周波数帯域のスケールファクタの最大値から平均値を減じて純音性の度合いを示す純音性指標値を算出する。算出した純音性指標値は純音性判定部28へ出力される。純音性判定部28の内部の図示しないメモリには基準値が記憶されており、純音性判定部28は入力された純音性指標値と基準値とを比較し、純音か否かを判断する。なお、この基準値は、例えばスケールファクタの最大値が120dBの場合、70dBとすれば良い。
純音性判定部28は、純音性指標値が基準値より小さい場合、純音性が低いと判断し、全周波数帯域の係数I(m)を補間処理部1へ出力し、上述した補間処理が行われる。一方、純音性判定部28は、純音性指標値が基準値より大きい場合、純音性が高いと判断し、全周波数帯域の係数I(m)を補間処理部1へ出力することなく直接周波数時間変換部24へ出力する。このように音響信号の特性に応じて補間処理を実行または実行しないことにより、適切な補間処理が可能となると共に、処理の高速化及び消費電力の低減化を図ることが可能となる。
図17は純音性判定処理の手順を示すフローチャートである。まず、アンパッキン部22にてビットストリームのフレームサイド情報から、各周波数帯域のスケールファクタを抽出する(ステップS171)。抽出されたスケールファクタは指標値算出部27へ出力される。指標値算出部27は、各周波数帯域のスケールファクタから最大値を抽出する(ステップS172)。また指標値算出部27は、スケールファクタの平均値を算出する(ステップS173)。指標値算出部27はスケールファクタの最大値から平均値を減じて純音性指標値を算出する(ステップS174)。指標値算出部27は、算出した純音性指標値を純音性判定部28へ出力する(ステップS175)。
純音性判定部28は内部の図示しないメモリから基準値を読み出す(ステップS176)。そして、純音性判定部28は入力された純音性指標値と基準値とを比較し、純音性指標値が読み出した基準値より小さいか否かを判断する(ステップS177)。純音性判定部28は、純音性指標値が基準値より小さいと判断した場合(ステップS177でYES)、純音性が低いと判断し、全周波数帯域の係数I(m)を補間処理部1へ出力する(ステップS178)。
一方、純音性判定部28は、純音性指標値が基準値より大きいと判断した場合(ステップS177でNO)、純音性が高いと判断し、全周波数帯域の係数I(m)を補間処理部1へ出力することなく直接周波数時間変換部24へ出力する(ステップS179)。なお、本実施の形態6においては純音か否かの判断をスケールファクタに基づいて判断したが、各周波数帯域のパワーに基づいて純音か否かを判断しても良い。この場合、指標値算出部27は各周波数帯域の係数I(m)のパワーの最大値から平均値を減じ、これを純音性指標値として純音性判定部28へ出力する。純音性判定部28には基準値として例えば40dBが記憶されている。純音性判定部28は、純音性指標値がこの基準値よりも小さい場合、純音性が低いと判断し、全周波数帯域の係数I(m)を補間処理部1へ出力する。一方、純音性指標値が基準値よりも大きい場合、純音性が高いと判断し、全周波数帯域の係数I(m)を、補間処理部1を経由することなく周波数時間変換部24へ出力する。なお、これら純音性の判断については特開2002−351500号公報または特開2005−195983号公報に開示の技術を適用すればよい。
本実施の形態6は以上の如き構成としてあり、その他の構成及び作用は実施の形態1乃至5と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態7
実施の形態6に係る処理を図10で示したパーソナルコンピュータを用いてソフトウェア処理として実現するようにしても良い。図18は実施の形態7に係る信号処理装置20の構成を示すブロック図である。信号処理装置たるパーソナルコンピュータ20を動作させるためのコンピュータプログラムは、本実施の形態7のように、CD−ROM、MO、またはDVD−ROM等の可搬型記録媒体1Aで提供することも可能である。さらに、コンピュータプログラムを、通信部66を介して図示しないサーバコンピュータからダウンロードすることも可能である。以下に、その内容を説明する。
図18に示すパーソナルコンピュータ20の図示しないリーダ/ライタに、純音性指標値を算出させ、純音性か否かを判定させ、白色雑音を出力させ、純音性か否かに応じて補正後の係数を算出させるコンピュータプログラムが記録された可搬型記録媒体1A(CD−ROM、MO又はDVD−ROM等)を、挿入して記憶部65の制御プログラム内にこのプログラムをインストールする。または、かかるプログラムを、通信部66を介して外部の図示しないサーバコンピュータからダウンロードし、記憶部65にインストールするようにしても良い。かかるプログラムはRAM62にロードして実行される。これにより、上述のような本発明の信号処理装置20として機能する。
本実施の形態7は以上の如き構成としてあり、その他の構成及び作用は実施の形態1乃至6と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態8
実施の形態8はビットレートに応じて補間処理を実行するか否かを判断する形態に関する。図19は実施の形態8に係る復号装置20のハードウェア構成を示すブロック図である。図19に示すようにビットレート取得部210、サンプリング周波数取得部211、ビットレート比較部212、及びテーブル213が新たに設けられている。ビットレート取得部210は音響信号に付随するヘッダに記述されたビットレートインデックスから、音響信号のビットレートを取得する。取得したビットレートはサンプリング周波数取得部211を経てビットレート比較部212へ出力される。
サンプリング周波数取得部211は音響信号に付随するヘッダに記述されたサンプリング周波数を取得する。サンプリング周波数はMP3方式においては、32kHz、44.1kHz及び48kHzのいずれかが取得される。サンプリング周波数取得部211は取得したサンプリング周波数をビットレート比較部212へ出力する。
図20はテーブル213のレコードレイアウトを示す説明図である。テーブル213はサンプリング周波数毎に基準となる基準ビットレートが記憶されている。テーブル213には、各サンプリング周波数32kHz、44.1kHz及び48kHzに対応付けて、ビットレートが記憶されている。32kHzの場合、基準ビットレートは160kbpsと記憶されており、図20のハッチングで囲む160kbpsよりも小さいビットレートの場合、上述した純音性の判断及び補間処理が行われる。
また44.1kHzの場合、基準ビットレートは192kbpsと記憶されており、図20のハッチングで囲む192kbpsよりも小さいビットレートの場合、上述した純音性の判断及び補間処理が行われる。さらに、48kHzの場合、基準ビットレートは224kbpsと記憶されており、図20のハッチングで囲む224kbpsよりも小さいビットレートの場合、上述した純音性の判断及び補間処理が行われる。なお、ATRAC3規格のミニディスクの場合、サンプリング周波数は44.1kHzの一つだけであり、この場合基準ビットレートは292kbpsであり、これよりも小さい、132kbps、105kbps及び66kbpsの場合、上述した純音性の判断及び補間処理が行われる。
ビットレート比較部212はサンプリング周波数取得部211から出力されたサンプリング周波数を基に、テーブル213から基準ビットレートを読み出す。そしてビットレート比較部212は、ビットレート取得部210から出力されたビットレートが基準ビットレートよりも小さいか否かを判断する。ビットレート比較部212は、ビットレート取得部210から出力されたビットレートが基準ビットレートよりも小さいと判断した場合、全周波数帯域の係数I(m)を補間処理部1へ出力する。例えば、取得したサンプリング周波数が32kHz、取得したビットレートが、32,64,96または128kbpsの場合、全周波数帯域の係数I(m)は補間処理の対象となる。
一方、ビットレート取得部210から出力されたビットレートが基準ビットレートよりも小さくないと判断した場合、各周波数帯域の係数I(m)を、補間処理部1を経ることなく、周波数時間変換部24へ直接出力する。例えば、取得したサンプリング周波数が32kHz、取得したビットレートが、160,192,224,256,288,320,352,384,416または448kbpsの場合、各周波数帯域の係数I(m)は補間処理の対象とならない。このように、サンプリング周波数及びビットレートに応じて、補間処理を実行または実行しないよう構成したので、音響信号の状態に適合した最適な補間処理が可能となると共に、処理の高速化または消費電力の低減化を図ることが可能となる。
図21は比較処理の手順を示すフローチャートである。ビットレート取得部210は音響信号に付随するヘッダに記述されたビットレートインデックスから、音響信号のビットレートを取得する(ステップS211)。ビットレート取得部210は取得したビットレートを、サンプリング周波数取得部211を経てビットレート比較部212へ出力する(ステップS212)。サンプリング周波数取得部211は音響信号に付随するヘッダに記述されたサンプリング周波数を取得する(ステップS213)。サンプリング周波数取得部211は取得したサンプリング周波数をビットレート比較部212へ出力する(ステップS214)。
ビットレート比較部212はサンプリング周波数取得部211から出力されたサンプリング周波数に対応する、基準ビットレートをテーブル213から読み出す(ステップS215)。そしてビットレート比較部212は、ビットレート取得部210において取得したビットレートが、読み出した基準ビットレートよりも小さいか否かを判断する(ステップS216)。ビットレート取得部210は、取得したビットレートが基準ビットレートよりも小さいと判断した場合(ステップS216でYES)、全周波数帯域の係数I(m)を補間処理部1へ出力する(ステップS217)。
一方、取得したビットレートが基準ビットレートよりも小さくないと判断した場合(ステップS216でNO)、全周波数帯域の係数I(m)を、補間処理部1を経ることなく、周波数時間変換部24へ直接出力する(ステップS218)。
本実施の形態8は以上の如き構成としてあり、その他の構成及び作用は実施の形態1乃至7と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態9
実施の形態8に係る処理を図10で示したパーソナルコンピュータを用いてソフトウェア処理として実現するようにしても良い。図22は実施の形態9に係る信号処理装置20の構成を示すブロック図である。信号処理装置たるパーソナルコンピュータ20を動作させるためのコンピュータプログラムは、本実施の形態9のように、CD−ROM、MO、またはDVD−ROM等の可搬型記録媒体1Aで提供することも可能である。さらに、コンピュータプログラムを、通信部66を介して図示しないサーバコンピュータからダウンロードすることも可能である。以下に、その内容を説明する。
図22に示すパーソナルコンピュータ20の図示しないリーダ/ライタに、ビットレートを比較させ、白色雑音を出力させ、ビットレートに応じて補正後の係数を算出させるコンピュータプログラムが記録された可搬型記録媒体1A(CD−ROM、MO又はDVD−ROM等)を、挿入して記憶部65の制御プログラム内にこのプログラムをインストールする。または、かかるプログラムを、通信部66を介して外部の図示しないサーバコンピュータからダウンロードし、記憶部65にインストールするようにしても良い。かかるプログラムはRAM62にロードして実行される。これにより、上述のような本発明の信号処理装置20として機能する。
本実施の形態9は以上の如き構成としてあり、その他の構成及び作用は実施の形態1乃至8と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態10
実施の形態10は、符号化音響信号または符号化映像信号の周波数帯域内に零の直交変換係数が存在するか否かを判断し、存在する場合に当該周波数帯域に白色雑音源に係る直交変換係数を付加する形態に関する。図23は実施の形態10に係る補間処理部1のハードウェア構成を示すブロック図である。図における補間処理部1を備える復号装置20は、所定時間のフレーム単位毎に直交変換された音響信号または映像信号を符号化した符号化音響信号または符号化映像信号を逆量子化して処理する。本実施の形態においては符号化音響信号を処理する形態について説明し、また直交変換の方式としてMDCTを用いた例について説明するが、これに限るものではなく符号化映像信号を用い、また直交変換の方式としてDCTまたはFFT(Fast Fourier Transform)等を用いても良い。
実施の形態10に係る補間処理部1は、係数判断部30、付加部31、補正係数算出部18、補正値算出部13、出力部14及び白色雑音格納部16を含んで構成される。なお、補正係数算出部18、補正値算出部13、出力部14及び白色雑音格納部16は実施の形態1乃至9で述べたものと同じであるので詳細な説明は省略する。逆量子化された係数I(m)は係数判断部30に入力される。係数判断部30は、周波数帯域毎にスペクトル(直交変換係数)が零の係数I(m)が存在するか否かを判断する。
係数判断部30は、周波数帯域内にスペクトル零の係数I(m)が存在すると判断した場合、当該周波数帯域にフラグを設定した上で係数I(m)を付加部31へ出力する。一方、係数判断部30は、周波数帯域内にスペクトル零の係数I(m)が存在しないと判断した場合、当該周波数帯域内にフラグを設定することなく、係数I(m)を付加部31へ出力する。白色雑音源である白色雑音格納部16には、上述したフレームに対応する時間の白色雑音を複数の帯域(ブロック)に分割し、帯域毎に直交変換した直交変換係数(白色雑音のスペクトル)により構成されている。なお、本実施の形態においては図4に示すロングブロックに係る白色雑音を適用した例について説明する。
出力部14は白色雑音格納部16から実施の形態4で述べた如く所定の帯域、すなわち無作為または規則的に選択されたブロックに係る白色雑音のスペクトル(直交変換係数)を読み出し、この読み出した白色雑音のスペクトルを補正値算出部13へ出力する。一方、実施の形態1及び2で述べた補正係数算出部18からは、算出された補正係数が補正値算出部13へ出力される。補正値算出部13は出力された補正係数を出力部14から出力されたブロックに係る白色雑音のスペクトルに乗じ、補正値を算出する。補正値算出部13は算出した補正値を付加部31へ出力する。付加部31は、係数判断部30から出力された周波数帯域に係る係数I(m)のうち、フラグが設定された周波数帯域に係る係数I(m)に、補正値算出部13から出力された補正値、すなわち白色雑音源から読み出した所定の帯域に係る直交変換係数に関する値を付加する。なお、白色雑音のスペクトルの付加は、スペクトルが0の係数I(m)に対してのみ行っても良い。また、本実施の形態においては、白色雑音格納部16に格納された所定帯域の白色雑音のスペクトルに補正係数算出部18で算出した補正値を補正値算出部13で乗じる演算を行うよう構成したが、この乗算処理を行うことなく、そのまま所定帯域の白色雑音のスペクトルを付加部31へ出力するようにしても良い。
図24は白色雑音の付加処理の手順を示すフローチャートである。係数判断部30は周波数帯域内にスペクトル0の係数が存在するか否かを判断する(ステップS251)。係数判断部30は少なくとも一つスペクトル0の係数が存在すると判断した場合(ステップS251でYES)、当該周波数帯域にフラグを設定する(ステップS252)。なお、ステップS251においては少なくとも一つスペクトル0の係数が存在した場合にフラグを設定するよう構成したが、スペクトルが0の係数が所定数存在する場合に、フラグを設定するようにしても良い。一方、係数判断部30は周波数帯域内にスペクトル0の係数が存在しないと判断した場合(ステップS251でNO)、ステップS252の処理をスキップする。そして、係数判断部30は全ての周波数帯域に対してステップS251の処理を行ったか否かを判断する(ステップS253)。
係数判断部30は全ての周波数帯域に対する処理を行っていないと判断した場合(ステップS253でNO)、ステップS251へ移行し、以上の処理を繰り返す。一方、係数判断部30は全ての周波数帯域に対して処理を終了したと判断した場合(ステップS253でYES)、各周波数帯域の係数及びフラグ設定の有無を示す情報を付加部31へ出力する。出力部14は白色雑音格納部16から実施の形態4で述べた如く無作為または規則的に選択されたブロックに係る白色雑音のスペクトルを読み出し、この読み出した白色雑音のスペクトルを補正値算出部13へ出力する。補正係数算出部18からは、算出された補正係数が補正値算出部13へ出力される。補正値算出部13は出力された補正係数を出力部14から出力されたブロックに係る白色雑音のスペクトルに乗じ、補正値を算出する。補正値算出部13は算出した補正値を付加部31へ出力する。付加部31は、フラグが設定された周波数帯域に白色雑音格納部16から読み出された補正値を付加する(ステップS254)。付加部31は、フラグが設定された他の周波数帯域の係数に対しても同様に、無作為または規則的に選択されたブロックに係る白色雑音のスペクトルに基づく補正値を付加する。付加部31は付加した後の周波数帯域の係数を周波数時間変換部24へ出力する一方で、フラグが設定されていない周波数帯域に係る係数を、白色雑音のスペクトルに基づく補正値を付加することなく周波数時間変換部24へ出力する。
本実施の形態10は以上の如き構成としてあり、その他の構成及び作用は実施の形態1乃至9と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態11
実施の形態10に係る処理を図10で示したパーソナルコンピュータを用いてソフトウェア処理として実現するようにしても良い。図25は実施の形態11に係る信号処理装置20の構成を示すブロック図である。信号処理装置たるパーソナルコンピュータ20を動作させるためのコンピュータプログラムは、本実施の形態11のように、CD−ROM、MO、またはDVD−ROM等の可搬型記録媒体1Aで提供することも可能である。さらに、コンピュータプログラムを、通信部66を介して図示しないサーバコンピュータからダウンロードすることも可能である。以下に、その内容を説明する。
図25に示すパーソナルコンピュータ20の図示しないリーダ/ライタに、係数の存否を判断させ、係数を付加させるコンピュータプログラムが記録された可搬型記録媒体1A(CD−ROM、MO又はDVD−ROM等)を、挿入して記憶部65の制御プログラム内にこのプログラムをインストールする。または、かかるプログラムを、通信部66を介して外部の図示しないサーバコンピュータからダウンロードし、記憶部65にインストールするようにしても良い。かかるプログラムはRAM62にロードして実行される。これにより、上述のような本発明の信号処理装置20として機能する。
本実施の形態11は以上の如き構成としてあり、その他の構成及び作用は実施の形態1乃至10と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
(付記1)
符号化音響信号を逆量子化した音響信号を処理する信号処理方法において、
複数の白色雑音をブロック単位で格納した白色雑音格納部から、無作為または規則的に選択された一のブロックに対応する白色雑音を出力する出力ステップと、
逆量子化した音響信号の各周波数帯域の係数に前記出力ステップにより出力した一のブロックの白色雑音に関する値を加算して補正後の係数を算出する補正周波数係数算出ステップと
を備えることを特徴とする信号処理方法。
(付記2)
符号化音響信号を逆量子化した音響信号を処理する信号処理装置において、
複数の白色雑音をブロック単位で格納した白色雑音格納部から、無作為または規則的に選択された一のブロックに対応する白色雑音を出力する出力部と、
逆量子化した音響信号の各周波数帯域の係数に前記出力部から出力した一のブロックの白色雑音に関する値を加算して補正後の係数を算出する補正周波数係数算出部と
を備えることを特徴とする信号処理装置。
(付記3)
音響信号のブロック長を判別するブロック長判別部と、
音響信号のブロック長に応じて設けられる複数の白色雑音格納部と、
前記ブロック長判別部により判別したブロック長に対応する一の白色雑音格納部を選択する選択部とをさらに備え、
前記出力部は、前記選択部により選択された白色雑音格納部から無作為にまたは規則的に選択された一のブロックに対応する白色雑音を出力するよう構成してあることを特徴とする付記2に記載の信号処理装置。
(付記4)
逆量子化した音響信号の係数のレベルを検出するレベル検出部と、
前記白色雑音格納部から出力される白色雑音及び前記レベルに基づき補正係数を算出する補正係数算出部と、
前記補正係数を前記白色雑音格納部に格納された白色雑音に乗じて補正値を算出する補正値算出部とをさらに備え、
前記補正周波数係数算出部は、前記補正値を白色雑音に関する値として逆量子化した音響信号の係数に加算して補正後の係数を算出するよう構成してあることを特徴とする付記2または3に記載の信号処理装置。
(付記5)
前記レベル検出部は、前記逆量子化した音響信号の係数の零を除く最小値を検出するよう構成してあることを特徴とする付記4に記載の信号処理装置。
(付記6)
前記補正係数算出部は、前記レベル検出部で検出したレベルを前記白色雑音格納部に格納された白色雑音のレベルで除すことにより補正係数を算出するよう構成してあることを特徴とする付記4に記載の信号処理装置。
(付記7)
前記白色雑音のレベルは、前記白色雑音格納部に格納された白色雑音の最大値または平均値であることを特徴とする付記6に記載の信号処理装置。
(付記8)
符号化音響信号を逆量子化した音響信号をコンピュータで処理するためのコンピュータプログラムにおいて、
コンピュータに、
複数の白色雑音をブロック単位で格納した白色雑音格納部から、無作為または規則的に選択された一のブロックに対応する白色雑音を出力する出力ステップと、
逆量子化した音響信号の各周波数帯域の係数に前記出力ステップにより出力した一のブロックの白色雑音に関する値を加算して補正後の係数を算出する補正周波数係数算出ステップと
を実行させるためのコンピュータプログラム。