図1は、本発明に係る音声処理装置の一実施例を組み込んだ撮像装置100の概略構成ブロック図を示す。撮像装置、特に、動画の撮像装置は、撮影レンズに電動のズームレンズを装備するのが一般的である。従って、マイクにより取得される周囲又は被写体からの音声信号にズーム操作に伴うズーム動作音が雑音として混入することがある。すなわち、ズーム駆動系が雑音発生源となりうる。以下では、このズーム操作に伴う雑音を低減する実施例を説明する。
撮像装置100は、操作部101、制御部102、撮像部103、音声入力部104、雑音低減処理部105、音声出力部106、映像出力部107、メモリ108及びメモリバス109から構成される。操作部101、制御部102、撮像部103、音声入力部104、雑音低減処理部105、音声出力部106及び映像出力部107は、メモリバス109を介してメモリ108にデータを読み書きする。
操作部101は、ユーザの指示を撮像装置100に入力する手段であり、ボタン、タッチパネル又はズームレバー等からなる。制御部102は、撮像装置100を制御するCPU(中央演算処理装置)からなり、操作部101によるユーザからの指示に従い、メモリバス109を介して関連するブロックを制御する。
例えば、制御部102は、ユーザによる操作部101のズーム操作に従い、撮像部103のズームレンズを制御すると共に、ズーム制御情報をメモリ108の制御信号領域に記憶する。ズーム制御情報は、ズーム駆動の開示時刻及び終了時刻、ズーム駆動中を示すフラグ、ズーム動作方向、並びにズーム駆動モータの回転速度などを示す情報からなる。開始時刻は、絶対時刻でも音声取り込みからの相対時刻でも良い。終了時刻は絶対時刻でも開始からの相対時刻でもよい。詳細は後述するが、ズーム制御情報は、音声信号に混入するズーム駆動音を除去又は低減するために使用される。ズーム制御情報は、ズーム駆動により発生する雑音の鳴り始めの時間及び鳴り終わりの時間を含む雑音時間情報でもあり、メモリ108の制御信号領域はいわば雑音時間保持手段である。
撮像部103は、ズーム機能を備えたレンズ、絞り、撮像センサ及びA/D変換器からなる。撮像センサは、レンズを透過して撮像面に入射する光学像を画像信号に変換し、A/D変換器が、撮像センサから出力されるアナログ画像信号をデジタル画像信号に変換する。撮像部103から出力されるデジタル画像信号は、メモリ108の画像データ領域に書き込まれる。
音声入力部104は、例えば、外部の音声を取り込んで音声信号に変換するマイクのような電気音響変換素子と、そのアナログ出力をデジタル信号に変換するA/D変換器からなる。音声入力部104は、ある周波数、例えば48KHzでサンプリングされたデジタル音声信号をメモリ108の音声データ領域に書き込む。
雑音低減処理部105は、制御信号領域に記憶されたズーム制御情報に従い、メモリ108の音声データ領域に記憶された音声データに対する雑音低減処理を実行する。具体的には、雑音低減処理部105は、ズーム制御情報がズーム動作中を示すときには、メモリ108から読み出した音声データに一定期間のフレーム単位で雑音低減処理を施し、処理後の音声データをメモリ108に書き戻す。ズーム駆動中でないときには、ズーム駆動音が発生していないので、雑音低減処理部105は、メモリ108から読み出した音声データをそのままメモリ108に書き戻す。
雑音低減処理前の音声データを処理後の音声データとは別にメモリ108上に確保する必要が無い場合には、雑音低減処理部105から出力される音声データを、メモリ108の音声データ領域の処理前の音声データに上書きしてもよい。そもそも、雑音低減処理を行わない音声データ部分については、メモリ108から読み出さなくてもよい。
音声出力部106は、音声データをアナログ音声信号に変換するD/A変換器と、スピーカ及び音声出力端子からなる。音声出力部106は、メモリ108の音声データ領域から音声データを読み出し、アナログ音声信号に変換し、スピーカから音響出力し、音声出力端子から外部に出力する。
映像出力部107は、いわゆる表示装置であり、メモリ108の画像データ領域から画像データを読み出して、その画像を表示する。
メモリ108は、高速でランダムアクセス可能なダイナミックRAMである。メモリ108の記憶領域は、音声データを記憶する音声データ領域、画像データを記憶する画像データ領域及び制御信号を記憶する制御信号領域に区分される。制御部102は、メモリ108に格納される音声データ、画像データ及び制御信号を、フレームごとにどの時刻のデータであるかを識別できるように管理する。
図示しないメモリ制御回路が、メモリバス109に接続する各ブロックからのメモリバス109を介したメモリ108へのアクセスを調停し、時分割でのメモリ108への読み書きを可能にする。
図2は、雑音低減処理部105の概略構成ブロック図を示す。信号入力制御部201はメモリバス109とのインターフェースである。メモリ108の音声データ領域に記憶されている音声データと制御信号領域に記憶されているズーム制御情報が、メモリバス109を介して信号入力制御部201に入力する。信号入力制御部201は入力する音声データを所定の一定区間毎にフレーム分割し、ズーム制御情報に従い、雑音低減処理をするときにはフーリエ変換部202に供給し、雑音低減処理をしないときには信号出力制御部210に供給する。すなわち、ズーム制御情報がズーム中、即ち、ズーム駆動による雑音発生中(とその可能性)を示すときには、信号入力制御部201は、音声データをフーリエ変換部202に供給する。他方、ズーム制御情報がズーム中でないとき、即ち、ズーム駆動による雑音が発生しない状態を示すとき、信号入力制御部201は、音声データを信号出力制御部210に供給する。何れの場合でも、信号入力制御部201は、ズーム制御情報を信号出力制御部210に供給する。
フーリエ変換部202は、信号入力制御部201からのフレーム分割された音声データをフーリエ変換し、周波数毎の位相情報と、周波数毎の振幅の絶対値(周波数振幅成分)を算出する。フーリエ変換部202は、周波数毎の周波数振幅成分を周波数成分除算部204と雑音低減部208に供給し、周波数毎の位相情報を逆フーリエ変換部209に供給する。
ノイズプロファイル記憶部203は、低減対象となる雑音(ここでは、ズーム駆動音等のズーム駆動時に発生する雑音)の周波数振幅成分をノイズプロファイルとして記憶する。具体的には、低減対象となる雑音のみから成る音声信号をフーリエ変換し、得られた周波数振幅成分を得る。低減対象となる雑音がある程度の時間(例えば4秒間)続く場合、雑音が続く時間内における周波数成分の時間変化に対してピークホールドしたものをノイズプロファイルとする。
ノイズプロファイル記憶部203に記憶するノイズプロファイルは、復元可能に圧縮されていてもよい。但し、この場合、復元のための伸長手段をノイズプロファイル記憶部203の出力段に配置する必要がある。ノイズプロファイル記憶部203は、記憶しているノイズプロファイルを、周波数成分除算部204と乗算器207に読み出す。
周波数成分除算部204は周波数毎の除算器からなり、フーリエ変換部202からの周波数振幅成分(A)をノイズプロファイル記憶部203からのノイズプロファイルの対応する周波数の値(B)で周波数毎に除算する。周波数成分除算部204は、周波数毎の除算結果を時間変化制御部205に供給する。
時間変化制御部205は実質的にはローパスフィルタ(LPF)からなり、周波数成分除算部204からの周波数毎の除算結果を時間軸上で平滑化する。時間変化制御部205の具体的な構成は後述する。時間変化制御部205は、周波数毎のフィルタ結果、すなわち低域成分を減算係数算出部206に出力する。
減算係数算出部206は、時間変化制御部205からの周波数毎の時間変化の低域成分量から周波数毎の減算係数(ノイズプロファイルに対する重み係数)を算出し、乗算器207に出力する。減算係数算出部206の具体的な構成は後述する。
乗算器207は、減算係数算出部206からの周波数毎の減算係数をノイズプロファイル記憶部203から読み出されたノイズプロファイルの対応する周波数成分の値に乗算する。換言すると、乗算器207は、ノイズプロファイル記憶部203から読み出されたノイズプロファイルの強度を減算係数算出部206からの周波数毎の減算係数(重み係数)で調整する。この点で、乗算器207の出力は重み付きノイズスペクトルを示す。
雑音低減部208は減算器からなり、フーリエ変換部202からの周波数振幅成分から、乗算器207からの重み付きノイズスペクトルを対応する周波数同士で減算する。この減算処理により、周波数領域でズーム駆動に起因する雑音が低減される。雑音低減部208の出力信号は雑音低減後の音声信号のスペクトルを示し、逆フーリエ変換部209に入力する。
逆フーリエ変換部209は、雑音低減部208からの音声信号スペクトルを、フーリエ変換部202からの位相情報を用いて逆フーリエ変換する。これにより、雑音低減した時間領域の音声データを得ることができる。逆フーリエ変換部209は、逆フーリエ変換により復元された音声データを信号出力制御部210に供給する。
信号出力制御部210は、メモリバス109に対するインターフェースである。信号出力制御部210は、信号入力制御部201からのズーム制御情報に従い、雑音低減処理をするときには、逆フーリエ変換部209からの音声データを選択して、メモリバス109に出力する。また、信号出力制御部210は、ズーム制御情報に従い、雑音低減処理をしないときには、信号入力制御部201からのフレーム分割された音声データを選択し、フレーム合成して、メモリバス109に出力する。なお、信号出力制御部210の、信号入力制御部201からの音声信号が入力するポートには、フーリエ変換部202から逆フーリエ変換部209まで部分での処理時間に相当する遅延を与える遅延器を配置してある。
撮像装置100の動画撮影の際に音声に混入するズーム動作音を雑音として低減する動作を説明する。
まず、ユーザが操作部101により動画撮影開始を撮像装置100に指示したとする。制御部102は操作部101からの指示に従い、各ブロックを動画撮影用に始動する。例えば、撮像部103は、撮影による動画像の画像データをメモリ108の画像データ領域に書き込み、音声入力部104は、周囲又は被写体の音声を取り込み、その音声データをメモリ108の音声データ領域に書き込む。
動画撮影中に、ユーザが操作部101でズーム操作を制御部102に指示したとする。制御部102は、操作部101からのズーム操作信号に従うズーム制御信号を撮像部103に供給すると同時に、メモリ108の制御信号領域にズーム制御情報を書き込む。撮像部103は、制御部102からのズーム制御信号に従いズームレンズを駆動する。このとき、ズーム駆動のためのモータとレンズ鏡筒等が回転動作し、雑音を発生する。音声入力部104は、この雑音を本来の周囲又は被写体からの音声と一緒に取り込む。音声入力部104は、取り込んだ音声の音声データをメモリ108の音声データ領域に書き込む。
雑音低減処理部105は、メモリ108の音声データ領域に記憶される音声データとメモリ108の制御信号領域に記憶されるズーム制御情報を読み込み、ズーム制御情報に従い音声データへの雑音低減処理の有無を切り替える。すなわち、雑音低減処理部105は、ズームが動作していないときの音声データには雑音低減処理を行わず、読み込んだ音声データをそのままメモリ108の音声データ領域に書き戻す。他方、雑音低減処理部105は、ズームが動作している時に入力された音声データには雑音低減処理を行い、雑音低減処理後の音声データをメモリ108の音声データ領域に書き戻す。
取り込まれた音声を出力する場合、音声出力部106が、メモリ108の音声データ領域の雑音低減された音声データを読み出して音響出力する。また、映像出力部107が、メモリ108の画像データ領域に記憶されている画像データを読み出して、動画として出力する。
音声入力部104により入力される音声データの雑音低減処理部105による雑音低減処理を具体的に説明する。ここでは、説明例として、音声入力部104のA/D変換におけるサンプリング周波数は48kHzとする。FFTのためのフレーム分割単位は1024点、すなわち、フーリエ変換部202及び逆フーリエ変換部209の周波数分解能は1024点とする。つまり、フーリエ変換部202のフーリエ変換結果は、512点のスペクトルで24kHzまでの周波数成分を表すことになる。
ノイズプロファイル記憶部203に記憶されているノイズプロファイルは、低減対象とする雑音(ここではズーム雑音)のみで構成される音声信号をフーリエ変換することで得られる。事前に、音声入力部104にこの雑音のみを取り込み、信号入力制御部201でフレーム分割し、フーリエ変換部202でフーリエ変換する。この処理で得られる512点までの周波数成分を時間方向にフレームをまたいでピークホールドしたものをノイズプロファイルとしてノイズプロファイル記憶部203に格納する。ノイズプロファイルをprofile[n]と表現する。但し、n=0,1,2,3,・・・・,511である。
雑音低減処理部105の信号入力制御部201は、メモリ108の音声データ領域に記憶されている音声データを、メモリバス109を通して読み出し、1024サンプル毎にフレーム分割する。このとき、メモリ108に記憶されているズーム制御情報も読み出し、ズーム動作中の音声データでなければ音声データを信号出力制御部210に供給し、ズーム動作中の音声データであれば音声データをフーリエ変換部202に供給する。
フーリエ変換部202は、信号入力制御部201からの1024点の音声データをフーリエ変換する。フーリエ変換結果をsound_fft[N]と表現する。但し、N=0,1,2,3,・・・・,1023である。
フーリエ変換部202は、フーリエ変換結果のうちの前半の512点までの結果を周波数成分除算部204と雑音低減部208に供給する。フーリエ変換部202は、フーリエ変換結果のうちの前半の512点までの結果をsound_fft[n]と表現する。但し、n=0,1,2,3,・・・・,511である。
周波数成分除算部204は、フーリエ変換部202からのフーリエ変換結果sound_fft[n]をノイズプロファイル記憶部203からのノイズプロファイルprofile[n]で除算する。除算結果はいわゆる信号対雑音比(SN比)であり、
signal_noise[n]
=sound_fft[n]/profile[n]
となる。n=0,1,2,・・・・,511である。
この演算結果の数値が大きい周波数には、所望音声(周囲又は被写体からの音声)の周波数成分に、低減処理すべき雑音の周波数成分が重畳していると考えられる。逆に、SN比が1に近ければ近いほど、その周波数における、低減対象となる雑音の占める割合が大きいと考えられる。また、SN比が1以下の値であった場合は、低減処理すべき雑音の周波数成分がノイズプロファイルに対して変化していると考えられる。
時間変化制御部205は、周波数成分除算部204の除算結果signal_noise[n]に、時間方向への巡回型ローパスフィルタをかける。図3は、時間変化制御部205の概略構成ブロック図を示す。時間変化制御部205は、加算器301、前フレームの雑音低減処理で算出された値を保持するレジスタ302、1以下の係数coefを乗算する乗算器303、係数(1−coef)を乗算する乗算器304から構成される。係数coefは実験的に求められる値である。
周波数成分除算部204の演算結果signal_noise[nF]が加算器301に入力する。ここでFはフレーム番号を表し、nF=0,1,2,・・・・,511である。加算器301は、周波数成分除算部204の出力signal_noise[nF]にレジスタ302の保持値Reg[nF]を加算し、加算結果tmp[nF]を出力する。レジスタ302は、前フレームの加算器301の出力tmp[nF-1]に係数(1−coef)を乗算した結果をReg[nF]として保持する。すなわち、
Reg[nF]
=(signal_noise[nF−1]+Reg[nF−1])×(1−coef)
tmp[nF]
=signal_noise[nF]+Reg[nF]
である。
乗算器303は、加算器301の出力tmp[nF]に係数coefを乗算する。乗算器303の出力は時間変化制御部205の出力であり、
output_LPF[nF]=tmp[nF]×coef
と表される。
以上のように、時間変化制御部205は周波数成分除算部204の演算結果に時間方向へのローパスフィルタをかける。このローパスフィルタ処理により、周波数成分除算部204の出力、すなわちSN比の時間方向への急変を抑制できる。例えば、周波数成分除算部204の出力が図4に示すような時間変化を示す場合に、時間変化制御部205の出力は、図5に示すように、高周波数成分が低減した、よりスムーズな変化を示す。
時間変化制御部205で時間変化を緩和した結果に従い減算係数算出部206が、ノイズプロファイルに対する重み係数を決定するので、決定される重み係数は、SN比の急激な変動の影響を受けにくくなる。この結果、ミュージカルノイズを低減した雑音低減を実現でき、音質劣化を改善出来る。
以後の説明では、フレーム番号Fが影響しないので、フレーム番号Fの表記を省略する。
減算係数算出部206は、時間変化制御部205の演算結果output_LPF[n]を用いて減算係数γ[n]を算出又は決定する。減算係数算出部206は例えば、図6に示すようにoutput_LPF[n]の値によって一意に減算係数γ[n]を決定するルックアップテーブルからなる。
減算係数算出部206は、図6に示すように、output_LPF[n]の値が大きくなればなるほど減算係数γ[n]を小さくし、一定値以上で一定値にする。この理由は次の通りである。すなわち、output_LPF[n]が十分に大きい場合は、低減対象とする雑音の周波数成分に対して、十分大きな所望音声の周波数成分が重畳されている。このとき、マスキング効果により、人間の聴覚は雑音をほぼ知覚できなくなるので、減算係数γ[n]を小さくすることで、所望音声の劣化を抑制する。減算係数算出部206は、周波数毎に決定した減算係数γ[n]を乗算器207に供給する。
乗算器207は、ノイズプロファイル記憶部203からのプロファイルprofile[n]に減算係数算出部206からの減算係数γ[n]を周波数毎に乗算する。これにより、低減すべき雑音量sub_profile[n]が周波数ごとに決定される。すなわち、
sub_profile[n]=profile[n]×γ[n]
である。
雑音低減部208は、フーリエ変換部202からの周波数振幅成分sound_fft[n]から乗算器207からの雑音相当量を周波数ごとに減算し、雑音低減スペクトルafter_subtract[n]を出力する。すなわち、
after_subtract[n]
=sound_fft[n]−sub_profile[n]
となる。
逆フーリエ変換部209は、雑音低減部208からの512点の雑音低減スペクトルafter_subtract[n](n=0,1,2,…,511)を1024点に拡張する。拡張後の雑音低減スペクトルをafter_subtract2[N]とし、N=0、1、2、・・・、1023とする。N<512では、after_subtract2[N]
=after_subtract[n]
とする。N=512では、
after_subtract2[N]=0
とする。N>512では、
after_subtract2[N]
=after_subtract[1024−N]
とする。
逆フーリエ変換部209は、1024点に拡張した雑音低減スペクトルafter_subtract2[N]を、フーリエ変換部202からの位相情報を用いて逆フーリエ変換する。これにより、周波数領域でズーム雑音を低減した音声データが得られる。逆フーリエ変換部209は、このようにして得られた音声データを信号出力制御部210に供給する。
信号出力制御部210は、逆フーリエ変換部209からの音声データをフレーム毎に繋ぎ合わせ、メモリバス109を通してメモリ108の音声データ領域に書き戻す。
本実施例では、ズーム非動作時の音声データを雑音低減処理部105がメモリ108から読み出してメモリ108に書き戻すようにしているが、雑音低減処理部105を経由させないようにしてもよい。この場合、雑音低減処理部105の信号入力制御部201から信号出力制御部210に直接至る信号路は不要となる。
図7は、本発明の第2実施例の概略構成ブロック図を示し、図8は、雑音低減処理部705の概略構成ブロック図を示す。図7に示す撮像装置700は、操作部701、制御部702、撮像部703、音声入力部704、雑音低減処理部705、音声出力部706、映像出力部707、メモリ708及びメモリバス709から構成される。雑音低減処理部705以外のブロック701〜704,706〜709はそれぞれ、図1に示す実施例の対応するブロック101〜104,106〜109と同じ機能を果たすので、詳細な説明を省略する。
雑音低減処理部705は、制御信号領域に記憶されたズーム制御情報に従い、メモリ708の音声データ領域に記憶された音声データに対する雑音低減処理を実行する。具体的には、雑音低減処理部705は、ズーム制御情報がズーム動作中を示すときには、メモリ708から読み出した音声データに一定期間のフレーム単位で雑音低減処理を施し、処理後の音声データをメモリ708に書き戻す。ズーム駆動中でないときには、ズーム駆動音が発生していないので、雑音低減処理部705は、メモリ708から読み出した音声データをそのままメモリ708に書き戻す。
図8を参照して、雑音低減処理部705の構成と雑音低減動作を詳細に説明する。
信号入力制御部801はメモリバス709とのインターフェースである。メモリ708の音声データ領域に記憶されている音声データと制御信号領域に記憶されているズーム制御情報が、メモリバス709を介して信号入力制御部801に入力する。信号入力制御部801は入力する音声データを所定の一定区間毎にフレーム分割し、ズーム制御情報に従い、雑音低減処理をするときにはフーリエ変換部802に供給し、雑音低減処理をしないときには信号出力制御部811に供給する。すなわち、ズーム制御情報がズーム中、即ち、ズーム駆動による雑音発生中(とその可能性)を示すときには、信号入力制御部801は、音声データをフーリエ変換部802に供給する。他方、ズーム制御情報がズーム中でないとき、即ち、ズーム駆動による雑音が発生しない状態を示すとき、信号入力制御部801は、音声データを信号出力制御部811に供給する。何れの場合でも、信号入力制御部801は、ズーム制御情報を信号出力制御部811に供給する。
フーリエ変換部802は、フーリエ変換部202と同様に動作し、信号入力制御部801からのフレーム分割された音声データをフーリエ変換し、周波数毎の位相情報と、周波数毎の振幅の絶対値(周波数振幅成分)を算出する。フーリエ変換部802は、周波数毎の周波数振幅成分を周波数成分除算部804と雑音低減部809に供給し、周波数毎の位相情報を逆フーリエ変換部810に供給する。
ノイズプロファイル記憶部803は、ノイズプロファイル記憶部203と同様に、低減対象となる雑音(ここでは、ズーム駆動音等のズーム駆動時に発生する雑音)の周波数振幅成分をノイズプロファイルとして記憶する。ノイズプロファイル記憶部803は、記憶しているノイズプロファイルを、周波数成分除算部804と乗算器807に読み出す。
周波数成分除算部804は周波数成分除算部204と同様に、フーリエ変換部802からの周波数振幅成分(A)をノイズプロファイル記憶部803からのノイズプロファイルの対応する周波数の値(B)で周波数毎に除算する。周波数成分除算部804は、周波数毎の除算結果を時間変化制御部805に供給する。
時間変化制御部805は実質的にはローパスフィルタ(LPF)からなり、周波数成分除算部804からの周波数毎の除算結果を時間軸上で平滑化する。時間変化制御部805は、周波数毎のフィルタ結果、すなわち低域成分を減算係数算出部806と雑音低減部809に出力する。
減算係数算出部806は、減算係数算出部206と同様に動作する。すなわち、減算係数算出部806は、時間変化制御部805からの周波数毎の時間変化の低域成分量から周波数毎の減算係数(ノイズプロファイルに対する重み係数)を算出し、乗算器807に出力する。乗算器807は乗算器207と同様に、減算係数算出部806からの周波数毎の減算係数をノイズプロファイル記憶部803から読み出されたノイズプロファイルの対応する周波数成分の値に乗算する。
雑音時間変化情報記憶部808は、低減対象となる雑音の周波数毎の時間変化の傾向を記憶し、適時のタイミングで記憶情報を雑音低減部809に供給する。雑音時間変化情報記憶部808に記憶される情報の詳細は後述する。
雑音低減部809には、時間変化制御部805の演算結果805sと、乗算器807の乗算結果807sと、フーリエ変換部802からの周波数振幅成分802sが入力する。雑音低減部809は、信号入力制御部801からのズーム制御情報801sと、雑音時間変化情報記憶部808からの雑音時間変化傾向情報808sに従い、周波数振幅成分802sに含まれる雑音を周波数領域で低減する。雑音低減部809は、雑音低減処理を行った音声信号を、逆フーリエ変換部810に供給する。雑音低減部809の詳細は後述する。
逆フーリエ変換部810は、逆フーリエ変換部209と同様に、雑音低減部809からの音声信号スペクトルをフーリエ変換部802からの位相情報を用いて逆フーリエ変換する。これにより、雑音低減した時間領域の音声データを得ることができる。逆フーリエ変換部810は、逆フーリエ変換により復元された音声データを信号出力制御部811に供給する。
信号出力制御部811は、信号出力制御部210と同様に動作する。即ち、信号出力制御部811は、信号入力制御部801からのズーム制御情報に従い、雑音低減処理をするときには、逆フーリエ変換部810からの音声データを選択してメモリバス709に出力する。また、信号出力制御部811は、ズーム制御情報に従い、雑音低減処理をしないときには、信号入力制御部801からのフレーム分割された音声データを選択し、フレーム合成して、メモリバス709に出力する。
音声入力部704により入力される音声データの雑音低減処理部705による雑音低減処理を具体的に説明する。ここでは、説明例として、音声入力部704のA/D変換におけるサンプリング周波数は48kHzとする。FFTのためのフレーム分割単位は1024点、すなわち、フーリエ変換部802及び逆フーリエ変換部810の周波数分解能は1024点とする。つまり、フーリエ変換部802のフーリエ変換結果は、512点のスペクトルで24kHzまでの周波数成分を表すことになる。
ノイズプロファイル記憶部803に記憶されているノイズプロファイルは、低減対象とする雑音(ここではズーム雑音)のみで構成される音声信号をフーリエ変換することで得られる。事前に、音声入力部704にこの雑音のみを取り込み、信号入力制御部801でフレーム分割し、フーリエ変換部802でフーリエ変換する。この処理で得られる512点までの周波数成分を時間方向にフレームをまたいでピークホールドしたものをノイズプロファイルとしてノイズプロファイル記憶部803に格納する。ノイズプロファイルをprofile[n]と表現する。但し、n=0,1,2,3,・・・・,511である。
雑音低減処理部705の信号入力制御部801は、メモリ708の音声データ領域に記憶されている音声データを、メモリバス709を通して読み出し、1024サンプル毎にフレーム分割する。このとき、メモリ108に記憶されているズーム制御情報も読み出し、ズーム動作中の音声データでなければ音声データを信号出力制御部811に供給し、ズーム動作中の音声データであれば音声データをフーリエ変換部802に供給する。
フーリエ変換部802は、信号入力制御部801からの1024点の音声データをフーリエ変換する。フーリエ変換結果をsound_fft[N]と表現する。但し、N=0,1,2,3,・・・・,1023である。
フーリエ変換部802は、フーリエ変換結果のうちの前半の512点までの結果を周波数成分除算部804と雑音低減部809に供給する。フーリエ変換部802は、フーリエ変換結果のうちの前半の512点までの結果をsound_fft[n]と表現する。但し、n=0,1,2,3,・・・・,511である。
周波数成分除算部804は、フーリエ変換部802からのフーリエ変換結果sound_fft[n]をノイズプロファイル記憶部803からのノイズプロファイルprofile[n]で除算する。除算結果はいわゆる信号対雑音比(SN比)であり、
signal_noise[n]
=sound_fft[n]/profile[n]
となる。n=0,1,2,・・・・,511である。
この演算結果の数値が大きい周波数には、所望音声(周囲又は被写体からの音声)の周波数成分に、低減処理すべき雑音の周波数成分が重畳していると考えられる。逆に、SN比が1に近ければ近いほど、その周波数における、低減対象となる雑音の占める割合が大きいと考えられる。また、SN比が1以下の値であった場合は、低減処理すべき雑音の周波数成分がノイズプロファイルに対して変化していると考えられる。
時間変化制御部805は、時間変化制御部205と同じ構成からなり、周波数成分除算部804の除算結果signal_noise[n]に、時間方向への巡回型ローパスフィルタをかける。
この実施例でも、実施例1と同様に、時間変化制御部805のローパスフィルタ処理により、周波数成分除算部804の出力、すなわちSN比の時間方向への急変を抑制できる。この抑制の結果として、音圧の急変を抑制してミュージカルノイズを低減でき、音質劣化を改善できる。
実施例1と同様に、以後の説明ではフレーム番号Fが影響しないので、フレー得番号Fの表記を省略する。
減算係数算出部806は、時間変化制御部805の演算結果output_LPF[n]を用いて減算係数γ[n]を算出又は決定する。減算係数算出部806は例えば、減算係数算出部206と同様に、output_LPF[n]の値によって一意に減算係数γ[n]を決定するルックアップテーブルからなる。
減算係数算出部806は、図6に示すように、output_LPF[n]の値が大きくなればなるほど、徐々に減算係数γ[n]を小さくする。この理由は次の通りである。すなわち、output_LPF[n]が十分に大きい場合は、低減対象とする雑音の周波数成分に対して、十分大きな所望音声の周波数成分が重畳されている。このとき、マスキング効果により、人間の聴覚は雑音をほぼ知覚できなくなるので、減算係数γ[n]を小さくすることで、所望音声の劣化を抑制する。減算係数算出部806は、周波数毎に決定した減算係数γ[n]を乗算器807に供給する。
乗算器807は、プロファイル記憶部803からのプロファイルprofile[n]に減算係数算出部806からの減算係数γ[n]を周波数毎に乗算する。これにより、低減すべき雑音量sub_profile[n]が周波数ごとに決定される。すなわち、
sub_profile[n]=profile[n]×γ[n]
である。
雑音時間変化情報記憶部808は、雑音が時間方向に変動するときの傾向を周波数毎に記憶している。例えば、ズーム雑音について考えると、ズーム動作の開始から終了までの間で、時間経過と共に雑音の周波数成分が変動する。雑音時間変化情報記憶部808は、その時間経過による変動傾向fluctuation[n]を周波数毎に記憶する。図10、図11、図12は、ある周波数n=n’に着目したときの、周波数成分の変動傾向を示すグラフである。
図10は、周波数n=n’における周波数成分のズーム動作時間による変動が、時間の経過につれて増加するような傾向を示す場合を示す。図10に示す例では、変動傾向fluctuation[n]の値を0とする。
図11は、周波数成分のズーム動作時間による変動傾向が無い場合を示す。図11に示す例では、変動傾向fluctuation[n]の値を1とする。
図12は、周波数成分のズーム動作時間による変動が、時間の経過につれて減少するような傾向を示す場合を示す。図12に示す例では、変動傾向fluctuation[n]の値を2とする。
雑音時間変化情報記憶部808は、変動傾向値fluctuation[n]を雑音時間変化傾向情報808sとして雑音低減部809に供給する。雑音低減部809は、信号入力制御部801からのズーム制御情報801sと、時間変化制御部805の出力805s及び雑音時間変化情報記憶部808からの雑音時間変化傾向情報808s(fluctuation[n])に従い、雑音低減処理を切り替える。
図9は、雑音低減部809の概略構成ブロック図を示す。雑音低減部809は、演算切替え制御部901、乗算器902、減衰倍率算出部903及び減算器904で構成される。
減衰倍率算出部903は、時間変化制御部805の演算結果に対して、図13に示すような特性の、減衰倍率K[n](但しK[n]≦1.0)を出力するテーブルからなる。このテーブルは基本的に、減算係数算出部806における減算係数γ[n]とは逆の傾きを持つようなテーブルとなる。図13で、減衰倍率K[n]の最低値K[n]=0.1の区間は、図6における減算係数γ[n]=1.0の区間と等しくなる。図13におけるK[n]=1.0の区間は、図6におけるγ[n]=0の区間と等しくなる。減衰倍率K[n]の最低値K[n]=0.1の値は実験的に求められるものであり、ここで示す数値は一例である。減衰倍率算出部903は、時間変化制御部805の出力805Sに応じた減衰倍率K[n]を乗算器902に供給する。
乗算器902は、フーリエ変換部802からの周波数振幅成分802sに減衰倍率K[n]を乗算する。すなわち、乗算器902の出力はsound_fft[n]×K[n]で与えられる。但し、n=0、1,2、・・・、511である。
また、減算器904は、フーリエ変換部802からの周波数振幅成分802sから、乗算器807の出力807sを減算する。減算器904の出力は、
sound_fft[n]−sub_profile[n]
で与えられる。ただし、n=0、1,2、・・・、511である。
演算切替え制御部901は、信号入力制御部801からのズーム制御情報と雑音時間変化情報記憶部808からの周波数変動傾向情報fluctuation[n]の値に従い、乗算器902又は減算器904の出力を選択して逆フーリエ変換部810に出力する。
周波数変動傾向情報fluctuation[n]=0の場合、演算切替え制御部901は、ズーム動作開始時からズーム動作時間内のある一定時間までは、乗算器902の出力を出力信号線809sに接続する。そして、その一定時間の経過後には、演算切替え制御部901は、減算器904の出力を出力信号線809sに接続する。
周波数変動傾向情報fluctuation[n]=1の場合、演算切替え制御部901は、ズーム動作中常時、減算器904の出力を出力信号線809sに接続する。
周波数変動傾向情報fluctuation[n]=2の場合、演算切替え制御部901は、ズーム動作開始時からズーム動作時間内のある一定時間までは、減算器904の出力を出力信号線809sに接続する。その一定時間の経過後には、演算切替え制御部901は、乗算器902の出力を出力信号線809sに接続する。
逆フーリエ変換部810は、逆フーリエ変換部209と同じ方法で、雑音低減部809から出力される512点の雑音低減スペクトルを1024点に拡張し、フーリエ変換部802からの位相情報を用いて逆フーリエ変換する。これにより、周波数領域でズーム雑音を低減した音声データが得られる。逆フーリエ変換部810は、このようにして得られた音声データを信号出力制御部822に供給する。
信号出力制御部811は、信号出力制御部210と同様に、逆フーリエ変換部810からの音声データをフレーム毎に繋ぎ合わせ、メモリバス709を通してメモリ708の音声データ領域に書き戻す。
本実施例でも、ズーム非動作時の音声データを雑音低減処理部705がメモリ708から読み出してメモリ708に書き戻すようにしているが、雑音低減処理部705を経由させないようにしてもよい。この場合、雑音低減処理部705の信号入力制御部801から信号出力制御部811に直接至る信号路は不要となる。
雑音時間変化情報記憶部808からのズーム雑音の周波数毎の時間変動傾向と、信号入力制御部801からのズーム制御情報により、雑音低減部809の演算方法を切り替える理由を、説明する。
図14は、ある周波数n=n’においてfluctuation[n’]=2の場合、即ち、減少傾向の場合の、ズーム雑音の周波数成分と時間との関係を示す。ノイズプロファイル記憶部803に記憶されるノイズプロファイルは、時間で変化するズーム雑音の周波数成分を時間方向にピークホールドしたものであるので、profile[n’]は図14で示す値となる。雑音区間をt1〜t3とした時、雑音の周波数成分が時間と共に小さくなるにも関わらず、profile[n’]が固定値である。従って、減算器904の出力sound_fft[n]−sub_profile[n]を出力信号線809sに接続するケースでは、特にt2〜t3の区間で、所望音声が重畳されているときには大きく音質が劣化してしまう。
そこで、本実施例では、変動傾向fluctuation[n’]=2の場合に、区間t2〜t3においては、演算切替え制御部901が、乗算器902の出力sound_fft[n]×K[n]を出力信号線809sに接続するようにした。すなわち、乗算器902による雑音低減処理を選択することで、雑音の低減量を適切に制御し、所望音声の劣化を抑えることができる。
演算切替え制御部901は、信号入力制御部801から供給されるズーム制御情報により時間t1、t2、t3を判断し、乗算器902と減算器904の出力を切り替える。
図15はfluctuation[n]=0のときの演算切替え制御部901による切替え例を示す。図16はfluctuation[n]=1のときの演算切替え制御部901による切替え例を示す。図17はfluctuation[n]=2のときの演算切替え制御部901による切替え例を示す。
ズーム制御情報として、ズーム時における駆動部(モータ)の回転情報と、駆動部の位置情報を、制御部702から信号入力制御部801を介して雑音低減部809に供給しても良い。この場合、雑音時間変化情報記憶部808で記憶される変動傾向情報は、例えばfluctuation[n’]=2の場合(減少傾向の場合)、図18で示されるようにモータの位置情報に対する雑音の周波数成分の変動傾向となる。
図18で、p1、p2、p3はズームに関するモータの位置情報である。p1が、撮像装置のズーム操作における広角側を、p3が望遠側を示す。つまり、図18に示す周波数では、雑音の周波数成分が望遠側にいけばいくほど小さくなる。信号入力制御部801から位置情報p1〜p3とズーム回転方向情報を雑音低減部809に供給する。雑音低減部809は、これらの情報と雑音時間変化情報記憶部808からの変動傾向情報に基づき、乗算器902の出力か減算器904の出力かを切り替える。