以下、図面を参照して本発明の実施形態を詳細に説明する。なお、実施形態では、電子機器としてデジタルカメラ等の撮像装置100を一例に挙げ、以下説明を行う。しかし、電子機器は、撮像装置100に限られず、マイクを有する装置であれば、携帯電話やICレコーダであっても良い。
図1は、撮像装置100の構成の一例を示すブロック図である。撮像装置100は、光学レンズやレンズ制御部、撮像素子、画像処理部等を含む撮像部101、音声入力部102、メモリ103、表示制御部104、表示部105、符号化処理部106、記録再生部107、記録媒体108、制御部109を有する。さらに、撮像装置100は、操作部110、音声出力部111、スピーカ112、外部出力部113、及び、各構成要素を接続するシステムバス114を有する。
撮像部101は、被写体の光学像を画像信号に変換し、これに対して画像処理を行い、画像データを生成する。音声入力部102は、撮像装置100の周辺の音声を集音し、これに対して音声処理を行い、音声データを生成する。
メモリ103は、撮像部101から供給される画像データや、音声入力部102から供給される音声データを記憶する。音声データはメモリとは限らず、何らかの記録部に記録されればよい。表示制御部104は、撮像部101から得られた画像データや撮像装置100のメニュー画面等を表示部105に表示させる。符号化処理部106は、メモリ103に記憶された画像データに対して所定の符号化を行い、圧縮画像データを生成する。また、符号化処理部106は、メモリ103に記憶された音声データに対して所定の符号化を行い、圧縮音声データを生成する。記録再生部107は、記録媒体108に対して、符号化処理部106で生成された圧縮画像データ、圧縮音声データ及び圧縮された動画データの少なくとも一つを記録媒体108に記録する。また、記録再生部107は、記録媒体108に記録されている画像データ、音声データ及び動画データの少なくとも一つを記録媒体108から読み出す。
制御部109は、システムバス114を介して撮像装置100の各部を制御する。制御部109は、CPU及びメモリを有する。制御部109のメモリには、撮像装置100の各部を制御するためのプログラムが記録される。
操作部110は、ユーザからの指示を撮像装置100に入力するための操作を受け付ける。操作部110は、ユーザによって行われた特定の操作に対応する信号を制御部109に送信する。操作部110は、静止画の撮影を指示するボタン、動画記録開始と停止を指示する記録ボタン、光学的に画像に対してズーム動作を行うように撮像装置100に指示するためのズームボタンなどを有する。さらに、操作部110は、撮像装置100の動作モードを静止画撮影モード、動画像撮影モード及び再生モードから選択するためのモード選択ボタンを有する。
音声出力部111は、記録再生部107によって読み出された音声データをスピーカ112に出力する。外部出力部113は、記録再生部107によって読み出された音声データを外部機器に出力する。
次に、撮像装置100が動画撮影モードである場合における動作について説明する。撮像装置100が動画像撮影モードである場合、制御部109は、操作部110の記録ボタンがONにされたことに応じて、所定のフレームレートで撮像するように撮像部101を制御し、音声データを取得するように音声入力部102を制御する。この場合、撮像部101で撮像された画像データと音声データとは圧縮され、記録再生部107によって記録媒体108に動画データとして記録される。その後、制御部109は、操作部110の記録ボタンがOFFにされたことに応じて、記録媒体108に記録していた動画データをクローズ処理し、1つの動画ファイルを生成する。なお、撮像装置100が動画撮影モードである場合、ユーザによって操作部110の記録ボタンがONされるまでは、操作部110の記録ボタンは、OFFであるものとする。
図20は、撮像部101と音声入力部102との関係を示す。
撮像部101は、光学レンズ201、撮像素子202、レンズ制御部203及び画像処理部204を有する。
光学レンズ201は、被写体の光学的に合焦させるためのフォーカスレンズやズームレンズ等である。光学レンズ201は、ズーミングを光学的に行うことができる。以下、光学レンズ201を使ってズーミングを光学的に行うことを「ズーム動作」と呼ぶものとする。ズーム動作は、制御部109からの指示で、レンズ制御部203が、光学レンズ201を移動させることで、被写体の光学像をズーミングさせるものである。光学レンズ201の移動のためには、動力源であるモータのほか、ギア等の動力伝達系を含む機械的な駆動部が用意されている。撮像素子202は、被写体の光学像を画像信号に変換し、画像信号を出力する。レンズ制御部203は、光学レンズ201を移動させるためのモータ等を駆動させる。画像処理部204は、撮像素子202から出力される画像信号に対して画像処理を行い、画像データを生成する。
例えば、ズーム動作を撮像装置100に開始させるための指示が操作部110を介して入力された場合、制御部109は、光学レンズ201を移動させるようにレンズ制御部203を制御するズーム制御信号をONに変更する。ズーム制御信号がONに変更された場合、レンズ制御部203は、モータ等を駆動し、光学レンズ201を移動させる。これはフォーカス調整等の指示が操作部110で入力された場合にも同様であるが、この場合にはズームではなくフォーカス調整がレンズ移動の目的となる。
光学レンズ201を移動させる場合、撮像装置100において、光学レンズ201の移動に伴うノイズや光学レンズ201を移動させるためのモータの駆動に伴うノイズが発生する。以下、光学レンズ201の移動に伴うノイズや光学レンズ201を移動させるためのモータの駆動に伴うノイズを「駆動ノイズ」と呼ぶものとする。
なお、図20において、撮像装置100に光学レンズ201やレンズ制御部203が含まれているものとして説明を行ったが、これに限られないものとする。光学レンズ201やレンズ制御部203は、撮像装置100に対して着脱可能なものであっても良い。
撮像装置100の音声入力部102は、ステレオ録音を実現するため、R(Right)チャネル音声入力部102a及びL(Left)チャネル音声入力部102bを有する。Rチャネル音声入力部102aと、Lチャネル音声入力部102bとは構成が同じであるため、以下、Rチャネル音声入力部102aの構成について説明する。Rチャネル音声入力部102aは、マイク205a、ADC206a、FFT207a、ノイズ除去部200a、IFFT214a、ノイズ印加部215a、音声処理部216a、ALC217aを有する。なお、R(右)チャネルを以下「Rch」と呼び、L(左)チャネルを以下「Lch」と呼ぶものとする。
マイク205aは、音声振動を電気信号に変換し、アナログの音声信号を出力する。ADC(アナログデジタルコンバータ)206aは、マイク205aにより得られたアナログ音声信号をデジタル音声信号に変換する。例えば、ADC206aのサンプリング周波数は48KHzで、1サンプルにつき16ビットの、時系列のデジタルデータを出力する。FFT(高速フーリエ変換器)207aは、ADC206aから出力された、例えば、1024個のサンプルデータが時系列に並んだ音声データを1フレームとして入力する。すなわち、所定時間分の音声データを1フレームとする。そして、FFT207aは、1フレーム分の音声データに対して高速フーリエ変換し、各周波数の振幅レベル(振幅スペクトルデータ)を生成し、ノイズ除去部200aに供給する。なお、FFT207aが生成する振幅スペクトルは、0から48KHzまでの1024ポイントの各周波数の振幅データで構成されるものとする。また、実施形態では1フレームの音声データを1024個のサンプルから構成されるとしているが、次に処理する1フレームにおける前半の512個のデータと、直前の1フレームの後半の512個のデータは同じであり、互いに一部が重複している。
ノイズ除去部200aは、ズーム動作を撮像装置100が実行している場合に発生する駆動ノイズを表す各周波数のノイズの振幅データを、FFT207aから出力された該当する周波数の振幅データから減算する。ノイズ除去部200aは、減算が行われた後の振幅スペクトルデータをIFFT(逆高速フーリエ変換器)214aに供給する。これによりノイズを除去または低減する。したがってノイズ低減部と呼んでもよい。
IFFT(逆高速フーリエ変換器)214aは、FFT207aから供給された位相情報を用いて、ノイズ除去部200aから供給された振幅スペクトルデータに対して逆高速フーリエ変換(逆変換)を行うことで、元の時系列形式の音声データを生成する。本実施形態においてIFFT214aは、FFT207aにて高速フーリエ変換される前の位相情報を保持して時系列の音声信号に戻す。
ノイズ印加部215aは、IFFT214aからの時系列の音声信号に対してノイズ信号を印加する。ノイズ印加部215aによって印加されるノイズ信号は、ノイズフロアレベルの信号であるものとする。音声処理部216aは、風騒音を低減するための処理、ステレオ感を強調するための処理やイコライザ処理等を行う。そして、ALC(オートレベルコントローラ)217aは、時系列の音声信号の振幅を所定のレベルに調整し、調整後の音声データをメモリ103に出力する。
次に、実施形態におけるRチャネル音声入力部102aのノイズ除去部200aについて、図2を用いて、以下説明を行う。
図2は、ノイズ除去部200aの構成の一例を示すブロック図である。ノイズ除去部200aは、積分回路250a、メモリ251a、プロファイル処理判定部256a、プロファイル作成部252a、プロファイル格納部253a、振幅スペクトル減算部254a、後補正部255a、及びプロファイル補正部257aを有する。
Lチャネル音声入力部102bのノイズ低減部200bもノイズ除去部200aと同様の構成であり、積分回路250b、メモリ251b、プロファイル処理判定部256b、プロファイル作成部252b、プロファイル格納部253b、振幅スペクトル減算部254b、後補正部255b、及びプロファイル補正部256bを有する。
ノイズ除去部200aは、撮像装置100がズーム動作を行っている場合に発生する駆動ノイズを低減するための動作を行う。以下、ノイズ除去部200aによって行われる動作について図4を参照し、説明を行う。
図4は、撮像装置100によってズーム動作が行われる前と撮像装置100によってズーム動作が行われている間とにおける各周波数の振幅スペクトルの一例を表す図である。図4における横軸が周波数を示し、0から48キロヘルツ(kHz)の区間の1024ポイントを示している(ただし、ナイキスト周波数である24kHzまでにおいては512ポイントの周波数スペクトルをもつものとする)。図4における振幅スペクトル401は、撮像装置100がズーム動作を行う前(光学レンズ201が移動していない状態)における環境音を示す振幅スペクトルデータを示す。図4における振幅スペクトル402は、撮像装置100がズーム動作を行っている場合(光学レンズ201が移動している状態)における環境音を示す振幅スペクトルを示している。振幅スペクトル402には、駆動ノイズが含まれている。ノイズ除去部200aは、振幅スペクトル401と、振幅スペクトル402との差分から駆動ノイズを低減するために用いられるノイズプロファイルを作成する。以下、ノイズ除去部200aの各部について説明を行う。
積分回路250aは、制御部109からの指示に応じて、FFT207aにて高速フーリエ変換された振幅スペクトルの各周波数の振幅値を時間軸に積分する。このとき、積分回路250aは、積分したフレーム数をカウントする。FFT207aからの1フレームから得られた振幅スペクトルデータにおける周波数fi(ただし、i=0、1、...、1023のいずれか)の振幅値をA(fi)と表す。周波数fiはインデックスiで示される離散した周波数である。ここでfiは0から48kHzまでの1024ポイントの各周波数に対応している。この場合、積分回路250aは、次式のように各周波数の積分値(累積加算値)S(fi)を求める。
S(fi)=ΣA(fi)
レンズ制御部203が光学レンズ201を移動させていない場合、積分回路250aは、上述のように各周波数の振幅値を積分していく。そして、積分回路250aは、各周波数の積分値を、積分期間を表すフレーム数nで除算した結果を出力する。つまり、積分回路250aは、次式のように各周波数の平均振幅値Aave(fi)を算出し、その算出結果を出力する。
Aave(fi)=S(fi)/n
平均振幅値Aave(fi)(i=0、1、...、1023)で示されるデータは、図4の振幅スペクトル401に対応する。積分回路250aは、算出した平均振幅値Aave(fi)をノイズプロファイル初期値としてメモリ251aに格納する。平均振幅値Aave(fi)は、振幅スペクトルの一定時間にわたる平均値であり、時間平均ということができる。
なお、光学レンズ201を移動させていない場合の制御部109によるS(fi)の積分は、たとえば、録画(あるいは録音)開始指示信号がオンとなり、かつ後述するプロファイル作成指示信号がオフであることをトリガとして開始される。積分回路250aはその時点からnフレーム分の積分S(fi)を求める。nの値はたとえば所定数であってよい。ただし、ズーム操作が行われた環境に近い環境で上記積分値を求めるのが望ましいので、積分操作は、たとえば最新の積分値を保持しつつ定期的に繰り返し行い、得られた値で最新の積分値を更新してもよい。そしてズーム操作が行われたなら(ズーム制御信号がアクティブになったなら)保持している最新の積部値をS(fi)として用いるように構成してもよい。
プロファイル処理判定部256aは、制御部109からの指示に応じて、FFT207aにて、右チャンネルの高速フーリエ変換された振幅スペクトルの各周波数の振幅値AR(fi)を取得し、同様にプロファイル処理判定部256bで左チャンネルの振幅値AL(fi)を取得する。そしてそれら値から、LchとRchの振幅スペクトルの各周波数の左右差振幅値のA|L−R|(fi)=|AL(fi)−AR(fi)|を算出する。ここで新たなパラメータとしてフレーム番号を導入し、フレーム番号をjで表すことにする。たとえばフレームjの周波数fiにおける平均左右差振幅値A|L−R|(fi)をA|L−R|(j,fi)と表す。そして、フレームごとの前記左右差振幅値を基に、現フレームの左右差振幅値A|L−R|(j,fi)と前フレーム(あるいは直前フレーム)の左右差振幅値A|L−R|(j−1,fi)の差分を、振幅スペクトルの周波数全体すなわち帯域全体にわたって周波数ごとに評価する。そして現フレームの左右差振幅値A|L−R|(j,fi)が前フレームの左右差振幅値A|L−R|(j−1,fi)よりも大きい周波数の左右差振幅値の増加分の合計Sum0(j)と、前フレームより現フレームの左右差振幅値が大きい周波数の本数Num0(j)を算出する。Sum0、Num0は、振幅スペクトルの全周波数を対象として計算される。かっこ内は、これらの値が現フレームであるフレームjに関して算出された値であることを示す。すなわち、連続するフレーム間における左右チャンネル間の差分の増加分を(A|L−R|(j,fi)−A|L−R|(j−1,fi))=Δ(j,fi)と表し、関数P(j,fi)の値を以下の通り定義する。
P(j,fi)=Δ(j,fi)(Δ(j,fi)>0)
P(j,fi)=0 (Δ(j,fi)≦0)
このP(j,fi)を用いれば、
Sum0(j)=ΣfiP(j,fi)である。
また、関数M(j,fi)の値を以下の通り定義する。
M(j,fi)=1(Δ(j,fi)>0)
M(j,fi)=0(Δ(j,fi)≦0)
このM(j,fi)を用いれば、
Num0(j)=ΣfiM(j,fi)である。
また、合わせて、0から511までの512ポイントの振幅スペクトルの内、384から511までの127ポイントの振幅スペクトルの範囲(すなわち比較的高周波の帯域)に限定して同様に増加分の合計Sum1(j)と周波数の本数Num1(j)を算出する。Sum1(j)、Num1(j)は、計算の対象となる帯域が異なるものの、Sum0(j)、Num0(j)それぞれと同様に計算できる。プロファイル処理判定部256aはSum0(j)、Num0(j)、Sum1(j)、Num1(j)の其々の値に対し予め定めた閾値を設け、全てが閾値を超えたと判定した場合にフレーム間において左右差をもった急激な振幅スペクトルの増加があった(すなわち増加率が閾値を超えた)と判断する。つまり、制御部109からの指示を受けてズーム動作が開始された、つまりはズーム音の発生が開始された事を判定する。この判定結果は、プロファイル作成指示信号としてプロファイル作成部252aに入力される。すなわち条件Sum0>Thsum0、Num0>Thnum0,Sum1>Thsum1,Num1>Thnum1が全て満たされるとプロファイル作成指示信号はオンにされる。この条件の具備を、「ズーム音の開始」とも呼ぶ。また、これら条件がひとつでも満たされないとプロファイル作成指示信号はネゲートされる。ここでThsum0、Thnum0,Thsum1,Thnum1は、Sum0、Num0,Sum1,Num1それぞれに対する閾値である。この閾値は例えば実験的に決めることができる。
ここでSum0(j)、Num0(j)、Sum1(j)、Num1(j)のAND条件について説明する。周囲音が大きい場合は前記総和自体大きくなるので、Sum0(j)のフレーム間の左右差の差分の総和だけではズームの駆動開始を検出するのは難しい。また、広帯域の周囲音だとポイント数が増えるので、Num0(j)のフレーム間の左右差の差分が大きくなる周波数ポイント数だけではズームの駆動開始を検出するのは難しい。また、高周波数側の帯域における左右差振幅値の増加分の総和Sum1(j)、および左右差振幅値が増加した周波数の本数Num1(j)を条件に追加している理由は以下のとおりである。すなわち、ズームの動作開始時の動きだし音は、モータの駆動におけるノイズに加え、ギアのかみ合う音や摺動音が混在する事により、15kHz以上の比較的高周波数の帯域の振幅スペクトルが大きくなる事が特徴的である。以上の特徴により、Sum0(j)、Num0(j)、Sum1(j)、Num1(j)のAND条件をとる事で、より確実にズーム音の開始を判定する事ができる。また上記判定基準として左右差振幅値を用いるのは、カメラにおけるステレオマイクとレンズ駆動部の配置から、ズーム動作時におけるノイズは他の環境音に比べて一方のチャンネルにより捉えられやすいことによる。もしも左右のチャネルでズーム時のノイズに差がないならば、左右何れかの入力信号或いは和信号を用いるなどしてもよい。
また、本実施例において、プロファイル処理判定部256aは前述の判定条件に従ってプロファイル作成部252aに対しプロファイル作成指示を出力する。一方、プロファイル作成完了指示については、制御部109がプロファイル作成部252aにプロファイル作成完了指示を出力する事でノイズプロファイル作成を終了させる事とする。また前記処理は、制御部109の指示を受けて、プロファイル処理判定部256aがプロファイル作成部252aに対してプロファイル作成完了指示を出す構成であっても勿論構わない。
プロファイル処理判定部256aはズーム音の開始を判定した時点において、プロファイル作成部252aに対し、プロファイル作成指示を出力する。
本実施例においては、Lchのプロファイル処理判定部256aが左右差を算出し、Sum0(j)、Num0(j)、Sum1(j)、Num1(j)を算出し、それぞれの閾値と比較した後、ズーム音の開始を判定しているが、前記処理をプロファイル処理判定部256bが実施しても勿論構わない。プロファイル処理判定部256として一つの判定部として前記処理を実施しても勿論構わない。
積分回路250aは、レンズ制御部203が光学レンズ201の移動を開始させてから安定化期間が経過するまでの間、上述のように各周波数の振幅値を積分していく。たとえばプロファイル処理判定部256aからのプロファイル作成指示信号がオンとなったタイミングで信号の積分を開始し、そこから安定期間が経過するまで信号の積分を行う。安定化期間とは、プロファイル作成指示信号がアクティブになったタイミングを起点として、積分回路250aの時定数により積分回路250aに入力される振幅スペクトルが安定するまでの期間である。安定期間の長さは積分回路の時定数により決まる所定の値で良い。安定化期間が経過するまでの間において、FFT207aから出力される振幅スペクトルには、駆動ノイズが含まれている。安定化期間(所定数のフレーム例えば、mフレーム分に相当するものとする)が経過した場合、積分回路250aは、積分した振幅値の平均値S(fi)/mをプロファイル作成部252aに出力する。S(fi)/mは、図4の振幅スペクトル402のデータに対応する。
プロファイル作成部252aは、プロファイル処理判定部256aからのプロファイル作成指示を受け、積分回路250aから供給されたS(fi)/m(スペクトル402に相当)からメモリ251aに格納されたS(fi)/n(スペクトル401に相当)を減算することで、各周波数の駆動ノイズに対応する振幅値であるN(fi)を次式のように算出する。
N(fi)=S(fi)/m−S(fi)/n
N(fi)が算出された後、プロファイル作成部252aは、N(fi)をノイズプロファイルとしてプロファイル格納部253aに格納する。ノイズプロファイルとは、ズーム動作が行われている場合に発生する駆動ノイズを示すデータである。なおこれは原則であり、図6、図7で説明するように、S(fi)/nに代えて所定の閾値を用いることもある。
その後、振幅スペクトル減算部254aは、FFT207aから供給される振幅スペクトルデータのA(fi)から、プロファイル格納部253aから読み出された駆動ノイズの振幅値N(fi)を減算する処理を行う。なお、以下、FFT207aから供給される振幅スペクトルデータのA(fi)から、プロファイル格納部253aから読み出されたノイズプロファイルである振幅値N(fi)を減算する処理を「減算処理」と呼ぶ。振幅スペクトル減算部254aは、次式によって得られた振幅スペクトルデータANR(fi)をIFFT214aまたはIFFT214bに出力する。
ANR(fi)=A(fi)−N(fi)
この減算処理はプロファイル作成指示信号がオンである間実行され、プロファイル作成指示信号がオフにされたタイミングで停止する。さらにズーム制御信号がオフになったタイミングで停止してもよいし、それら信号の積がオフになったなら停止してもよい。
なお、ユーザによって撮像装置100へのズーム動作の開始の指示を受け、ズームが動作を開始し、つまりプロファイル処理判定部256aがプロファイル作成指示を出力してから、安定化期間が経過するまでの間、プロファイル作成部252aでのノイズプロファイルの作成が完了していない状態が発生する。これにより、プロファイル作成部252aによるノイズプロファイルの作成が完了するまでの期間を短くするためには、安定化期間に対応するフレーム数「m」を小さくする必要がある。しかし、「m」が極端に小さい場合、ノイズプロファイルによる駆動ノイズの低減の精度が低くなってしまう可能性がある。たとえばレンズ制御部203が光学レンズ201を移動させるための制御後にズーム動作が開始された場合、70ms程度の間、駆動ノイズの一種である光学レンズ201の動きだし音や音揺れ等が発生する。光学レンズ201の動きだし音や音揺れ等を低減するために、70msを超える期間において、プロファイル作成部252aにノイズプロファイルを作成させるため、「m」を例えば「15」とする。
実施形態では、1フレームは1024個の時系列の音声データであるものの各フレームの半分は互いに重畳している。また、音声データのサンプリングレートは48kHzとしているので、m=15とすると、ノイズプロファイルの作成期間Tは、
T=mフレーム分の期間=15×(1024/2)/48kHz=160ms
となる。このように、安定化期間を確実に含む期間にわたって積分が行われるように、フレーム数mを決定する。これにより、ユーザによって撮像装置100へのズーム動作の開始の指示を受けてから作成期間Tが経過するまでの、安定化期間を含む期間に、プロファイル作成部252aは、ノイズプロファイルを作成する。このため、プロファイル作成部252aは、光学レンズ201の動きだし音や音揺れ等を低減するための精度の高いノイズプロファイルを作成できる。
また、撮像装置100へのズーム動作の開始の指示を受け、ズームが動作を開始するまでには、タイムラグが存在し、また前記タイムラグは機器毎にばらつきを持っている。前記タイムラグを加味せずにプロファイル作成を開始すると、実際には安定化期間が過ぎていない、まだ安定していない時点でノイズプロファイルを作成してしまう事になり、実際のズーム音よりも小さいノイズプロファイルが作成され、ズーム音の消し残しが発生してしまう。
プロファイル処理判定部256aにより確実にズーム音の開始を判定してからプロファイル作成を開始する事により、安定化期間を含むようにプロファイルを作成でき、前述のようなズーム音の消し残しのない精度の高いノイズプロファイルを作成できる。
後補正部255aは、振幅スペクトル減算部254aによって減算処理が行われた後の振幅スペクトルを補正して、IFFT214aに出力する。
プロファイル補正部257aは、環境音の大きさに応じて、プロファイル格納部253aに格納されたノイズプロファイルを補正する処理を行う。プロファイル補正部257aによって行われるノイズプロファイルの補正として、拡大補正(増加補正)と縮小補正(減少補正)とがある。プロファイル補正部257aは、ノイズプロファイルの拡大補正を行うプロファイル拡大部271aと、ノイズプロファイルの縮小補正を行うプロファイル縮小部272aとを有する。
ノイズプロファイルの拡大補正とは、プロファイル作成部252aによって作成されたノイズプロファイルまたはプロファイル補正部257aによって補正されたノイズプロファイルの振幅スペクトルを増大させる補正である。つまり、ノイズプロファイルの拡大補正をすることで振幅スペクトル減算部254aによって減算処理がされた後の振幅スペクトルデータANR(fi)は、その前に比べて小さくなる。また、ノイズプロファイルの縮小補正とは、プロファイル作成部252aによって作成されたノイズプロファイルまたはプロファイル補正部257aによって補正されたノイズプロファイルの振幅スペクトルを減少させる補正である。つまり、ノイズプロファイルの縮小補正をすることで振幅スペクトル減算部254aによって減算処理がされた後の振幅スペクトルデータANR(fi)は、その前に比べて大きくなる。プロファイル補正部257aによって行われるノイズプロファイルの補正は必要に応じて、FFT207aから供給される1フレーム毎の振幅値A(fi)に対して行われる。撮像装置100によってズーム動作が行われている場合、環境音や光学レンズ201の移動に伴う振幅スペクトルの変動に応じて、プロファイル補正部257aは、ノイズプロファイルを適正に補正することができる。すなわち、ノイズプロファイルの補正は、ノイズプロファイルを適用してノイズ低減処理を行っている間に動的に行われる。
Lチャネル音声入力部102bもRチャネル音声入力部102aと同様に、マイク205b、ADC206b、FFT207b、ノイズ低減部200b、IFFT214b、ノイズ印加部215b、音声処理部216b、ALC217bを有する。マイク205aとマイク205bとは、同様の構成であり、FFT207aとFFT207bとは、同様の構成であり、ノイズ除去部200aとノイズ低減部200bは、同様の構成である。さらに、IFFT214aとIFFT214bとは、同様の構成であり、ノイズ印加部215aとノイズ印加部215bとは、同様の構成である。さらに、音声処理部216aと音声処理部216bとは、同様の構成であり、ALC217aとALC217bとは同様の構成である。
図3は、撮像装置100のモードとして動画像撮影モードが選択された場合に制御部109によって行われる動画記録処理の一例を示すフローチャートである。次に、マイク205aがADC206aにアナログの音声信号を出力する場合を一例に挙げて、以下、動画記録処理について説明する。
撮像装置100が動画像撮影モードに変更された場合、制御部109は、ノイズ除去部200aにおけるプロファイル格納部253aをゼロクリアにする(S301)。その後、制御部109は、積分回路250aに対してFFT207aから入力された振幅スペクトルデータの積分処理を開始させる(S302)。そして、制御部109は、操作部110の記録ボタンがONされたか否か、つまり動画データの記録を撮像装置100に開始させる指示が入力されたか否かを判定する(S303)。動画データの記録を撮像装置100に開始させる指示が入力された場合(S303でYes)、制御部109は、動画データの記録を開始する(S304)。この場合、制御部109は、撮像部101及び音声入力部102からメモリ103に格納される動画データを生成するための画像データ及び音声データの符号化処理を開始し、記録再生部107による記録媒体108への記録を開始する。
S305では、制御部109は、操作部110を介してズーム動作を開始する指示が入力されたか否かを判定する。操作部110を介してズーム動作を開始する指示が入力されなかった場合、制御部109は、操作部110を介して動画データの記録を撮像装置100に終了させる指示が入力されたか否かを判定する(S306)。操作部110を介して動画データの記録を撮像装置100に終了させる指示が入力された場合(S306でYes)、制御部109は、メモリ103に格納されている動画データの符号化を開始し、記録媒体108への記録を行わせる。さらに、制御部109は、記録媒体108に格納している動画データのクローズ処理を行い、動画ファイルとして完成させる(S314)。
一方、操作部110からズーム動作を開始する指示が入力された場合、処理は、S305からS307に進む。S307においてノイズプロファイル初期値作成処理を行った後、S308においてプロファイル処理判定部256aは上述した条件でズーム音の開始を判定した場合、プロファイル作成部252aに対しプロファイル作成指示を出す。プロファイル作成指示に応じてプロファイル作成部252aによるノイズプロファイル作成処理が開始される。
S307において行われるノイズプロファイル初期値作成処理とS309において行われるノイズプロファイル作成処理については後述する。ノイズプロファイル作成処理が実行されることによって作成されたノイズプロファイルは、プロファイル格納部253aに格納される。
次に、制御部109は、FFT207aにて高速フーリエ変換された各周波数の振幅スペクトルデータの各周波数の振幅値からノイズプロファイルに含まれる特定の周波数の振幅値を減算するノイズ低減処理を行う(S310)。ノイズ低減処理が行われる場合、制御部109は、減算処理を行うように振幅スペクトル減算部254aを制御する。次に、制御部109は、プロファイル格納部210aに格納されたノイズプロファイルを補正するようにプロファイル補正部257aを制御するノイズプロファイル補正処理を行う(S311)。S311において行われるノイズプロファイル補正処理については後述する。プロファイル補正部257aによって補正されたノイズプロファイルは、次フレームの減算処理で適用される。次に、制御部109は、振幅スペクトル減算部254aにより減算処理が行われたRchの振幅スペクトルと、振幅スペクトル減算部254bにより減算処理が行われたLchの振幅スペクトルとがある場合、後補正処理を行う(S312)。後補正とは、Rchの振幅スペクトルとLchの振幅スペクトルとを同一にするように補正する処理である。S312において行われる後補正処理については後述する。
そして、操作部110からズーム動作を停止する指示が入力されたか否かが判定される(S313)。操作部110からズーム動作を停止する指示が入力されていない場合、撮像装置100においてズーム動作が継続して実行されるので、制御部109は、S310からS312までの処理を繰り返す。
また、制御部109は、操作部110からズーム動作を停止する指示が入力された場合、撮像装置100におけるズーム動作を停止し、S301の処理に戻る。S301に戻ったことで、制御部109によってプロファイルクリア処理が実行される。このため、FFT207aからの振幅スペクトルはIFFT214aに供給される。
なお、図3の動画記録処理について、マイク205aがADC206aにアナログの音声信号を出力する場合を一例に挙げて説明を行った。しかしながら、マイク205bがアナログの音声信号をADC206bに出力する場合も、図3の動画記録処理と同様に動画の記録を行う。
[ノイズプロファイル作成処理(S309)]
S309において制御部109によって実行されるノイズプロファイルの作成処理について図4、5、6及び7を用いて説明を行う。
図5は、各周波数の振幅スペクトルに対するノイズプロファイル作成処理を示すタイミングチャート図である。図6は、撮像装置100によってズーム動作が開始される前における環境音が大きい場合における各周波数の振幅スペクトルに対するノイズプロファイル作成処理を示すタイミングチャート図である。
以下、図5及び図6について説明を行う。図5及び図6おいて、制御部109がズーム操作に応じてズーム制御信号を出力し、光学レンズ201を移動させるようにレンズ制御部203を制御するタイミングを「t1」とする。制御部109は、光学レンズ201を移動させるようにレンズ制御部203を制御する場合、光学レンズ201を移動させるようにレンズ制御部203を制御するズーム制御信号をONに変更する。
制御部109は、光学レンズ201を移動させるようにレンズ制御部203を制御しない場合、ズーム制御信号をONにしないので、この場合、ズーム制御信号はOFFになる。また、制御部109は、光学レンズ201の移動を停止させるようにレンズ制御部203を制御する場合、ズーム制御信号をOFFに変更する。ズーム制御信号がONに変更された場合、レンズ制御部203は、光学レンズ201の移動を開始させる。ズーム制御信号がOFFに変更された場合、レンズ制御部203は、光学レンズ201の移動を停止させる。またレンズ制御部203の指示を受けて光学レンズ201が実際に動き始めるタイミング、つまりはプロファイル処理判定部256がズーム音の開始を判定し、プロファイル作成指示信号をオンにしたタイミングを「t12」とする。さらに、図5及び図6おいて、プロファイル処理判定部256が振幅スペクトル減算部254にノイズプロファイルを用いた減算処理を開始させるタイミングを「t2」とする。さらに、図5及び図6おいて、制御部109がズーム制御信号をOFFにするタイミングを「t3」とする。ノイズプロファイルを用いた減算処理は、タイミングt2からタイミングt3までの期間、振幅スペクトル減算部254によって行われる。
図5及び図6において、FFT207aによって高速フーリエ変換された所定の周波数fiの振幅スペクトルを「It」とする。さらに、図5及び図6において、積分回路250aによって積分された所定の周波数fiの振幅を示す振幅スペクトルを「Dt」とする。図5及び図6において、プロファイル作成部252aによって作成された所定の周波数fiに対応するノイズプロファイルを「Pt」とし、振幅スペクトル減算部254aから出力される所定の周波数fiの振幅スペクトルを「Ut」とする。さらに図5及び図6において、ノイズ印加部215aによってノイズ信号が印加された後の所定の周波数fiの時系列のデジタル音声信号を「Nt」とする。
ノイズプロファイルPtは、ナイキスト周波数である24kHzまでにおいて512ポイントの振幅スペクトルを持つ。図5及び図6における512ポイントの振幅スペクトルDt1は、撮像装置100がズーム動作を行う前(光学レンズ201が移動していない状態)における環境音を示す振幅スペクトルを示し、図4におけるスペクトル401に対応する。図5及び図6における512ポイントの振幅スペクトル(Dt2)は、撮像装置100がズーム動作を行っている場合(光学レンズ201が移動している状態)における環境音を示す振幅スペクトルを示し、図4におけるスペクトル402に対応する。
図7は、制御部109によって行わせるノイズプロファイル初期値作成処理(S307)とノイズプロファイル作成処理(S309)を示すフローチャートである。図7を用いて、制御部109によって行われる、プロファイル作成部252aによるノイズプロファイル初期値作成処理とノイズプロファイル作成処理について説明する。プロファイル作成部252bにおいても同様の処理が行われる。まず、操作部110からズーム動作を開始する指示が入力された場合(S305でYes)に、制御部109によってズーム制御信号はOFFからONに変更される(タイミングt1)。タイミングt1において、制御部109は、上述のように、Aave(fi)を算出するように積分回路250aを制御する。積分回路250aによってAave(fi)が算出された場合、制御部109は、Aave(fi)を振幅スペクトルDt1つまりノイズプロファイル初期値としてメモリ251aに保存する(S307)。続いてS308においてプロファイル処理判定部256aはズーム音の開始を判定した場合、プロファイル作成部252aに対しプロファイル作成指示を出し、プロファイル作成部252aによるノイズプロファイル作成処理が開始される(タイミングt12)。タイミングt1においてAave(fi)を作成しておくためには、たとえば、積分回路250の説明で述べたように、n個のフレームについての積分S(fi)を、録画または録音指示信号がオンかつプロファイル作成指示信号がオフのタイミングでおこなってよい。さらに、最新の積分値を保持しつつ定期的に繰り返し積分処理を行い、完了するつど最新値を更新するよう構成してもよい。そしてズーム制御信号がオンになったなら、その時点で保持しているS(fi)を用いてAave(fi)を計算するように構成してよい。
次に、制御部109は、プロファイル作成指示信号をトリガとして、タイミングt12から安定化期間が経過するまで、レンズ制御部203が光学レンズ201を移動させている場合における振幅スペクトルにおける各周波数の積分値を取得するように積分回路250aを制御する。その後、制御部109は、安定化期間が経過したか否かを判定する(S701)。たとえば、プロファイル作成指示信号がオンになってから所定時間が経過したタイミングをもって、安定化期間が経過したと判定する。安定化期間が経過したと判定された場合(タイミングt2)(S701でYes)、制御部109は、上述のように、S(fi)/mを算出するように積分回路250aを制御する。積分回路250aによってS(fi)/mが算出された場合、制御部109は、S(fi)/mを振幅スペクトルDt2としてメモリ251aに保存する(S702)。
次に、制御部109は、振幅スペクトルDt1が所定の振幅スペクトルであるDtth以下であるか否かを判定する(S703)。所定の振幅スペクトルDtthは、あらかじめメモリ103に格納されているものとする。所定の振幅スペクトルDtthは、撮像装置100によってズーム動作が開始される前における環境音が大きい場合であっても、駆動ノイズを低減できるように設定される。所定の振幅スペクトルDtthは、撮像装置100の騒音ノイズとして予測されるノイズレベルよりも一定レベル低いレベルになるように設定される。
振幅スペクトルDt1が所定の振幅スペクトルDtthよりも大きいと判定された場合(S703でNo)、制御部109は、ズーム動作が開始される前の環境音が大きいと判定する。なお振幅スペクトルの大小の判定は、たとえば、周波数ごとに行われる。その場合、その判定に応じた処理も、周波数ごとの判定結果に応じて行われる。すなわち、たとえば2つの周波数における判定結果が相違していれば、それら2つの周波数についての処理もそれぞれの判定結果に応じたものとなる。あるいはスペクトルの大小の判定をたとえば可聴域におけるパワーの総和どうしを比較するなどして行ってもよい。この場合には判定に応じた処理は、すべての周波数に対して共通に適用される。或いはこのほかの方法で判定を行ってもよい。これはS703に限らず、本実施形態あるいは他の実施形態におけるスペクトルどうしの比較判定について同様である。振幅スペクトルDt1が所定の振幅スペクトルDtth以下でないと判定された場合(S703でNo)、ノイズプロファイル作成処理は、図6のようなタイミングチャートになる。この場合(S703でNo)、制御部109は、振幅スペクトルDt1としてメモリ251aに保存されているAave(fi)を消去し、所定の振幅スペクトルDtthが振幅スペクトルDt1としてメモリ251aに保存されるようにする(S704)。所定の振幅スペクトルDtthが振幅スペクトルDt1としてメモリ251aに保存された場合、制御部109は、S705の処理を行う。振幅スペクトルDt1が所定の振幅スペクトルDtth以下であると判定された場合(S703でYes)、ノイズプロファイル作成処理は、図5のようなタイミングチャートになる。この場合(S703でYes)、制御部109は、S705の処理を行う。
次に、制御部109は、振幅スペクトルDt2から振幅スペクトルDt1を減算することによって、ノイズプロファイルPtを作成するようにプロファイル作成部252aを制御する(S705)。振幅スペクトルDt1が所定の振幅スペクトルDtth以下である場合、プロファイル作成部252aは、振幅スペクトルDt2からAave(fi)を減算することによって、ノイズプロファイルPtを作成する。振幅スペクトルDt1が所定の振幅スペクトルDtth以下でない場合、プロファイル作成部252aは、振幅スペクトルDt2から所定の振幅スペクトルDtthを減算することによって、ノイズプロファイルPtを作成する。プロファイル作成部252aによって作成されたノイズプロファイルPtは、プロファイル格納部253aに格納される。
一方ステップS701において安定化期間が経過していないと判定された場合(S701でNo)、プロファイル格納部253aには、ノイズプロファイルPtは格納されていないので、ノイズプロファイルPtを用いて駆動ノイズを低減することはできない。そこで、制御部109は、ステップS706〜S708のとおり、振幅スペクトル減算部254aを制御する。安定化期間が経過していない場合、図5の波形501のように環境音が途中から急激に変動する場合がある。そこでこの場合、制御部109は、入力信号の振幅スペクトルItが振幅スペクトルDt1以上であるか否かを判定する(S706)。この判定もステップS703と同じ要領で行ってよい。
振幅スペクトルItが振幅スペクトルDt1以上であると判定された場合(S706でYes)、制御部109は、安定化期間が経過するまで(タイミングt12からタイミングt2まで)、振幅スペクトルUtが振幅スペクトルDt1と同一になるように振幅スペクトル減算部254aを制御する(S707)。一方振幅スペクトルItが振幅スペクトルDt1以上でないと判定された場合(S706でNo)、制御部109は、安定化期間が経過するまで(タイミングt12からタイミングt2まで)、振幅スペクトルUtが振幅スペクトルItと同一になるように振幅スペクトル減算部254aを制御する(S708)。すなわち、入力信号が閾値以上であれば入力信号を出力し、そうでなければ閾値Dtthを出力する。
なお、図7のノイズプロファイル作成処理について、プロファイル作成部252aがノイズプロファイルを作成する場合を一例に挙げて説明を行った。しかしながら、プロファイル作成部252bがノイズプロファイルを作成する場合も、図7のノイズプロファイル作成処理と同様にノイズプロファイルを作成する。
なお、図6のような場合、振幅スペクトルItが振幅スペクトルDt1以上の状態になったり、振幅スペクトルItが振幅スペクトルDt1以上でない状態になったりを繰り返す場合がある。このような場合であっても、振幅スペクトルUtは、振幅スペクトルDt1を超えないように制御される。これにより、撮像装置100は、安定化期間が経過するまで(タイミングt12からタイミングt2まで)の期間において、駆動ノイズを低減することができる。
このように、プロファイル処理判定部256aがプロファイル作成指示を出してから安定化期間が経過するまで(タイミングt12からタイミングt2まで)の期間、制御部109は、振幅スペクトルUtが振幅スペクトルItまたは振幅スペクトルDt1になるように制御する。これにより、撮像装置100は、プロファイル処理判定部256aがプロファイル作成指示を出してから安定化期間が経過するまで(タイミングt12からタイミングt2まで)の期間における駆動ノイズを低減することができる。さらに、安定化期間が経過した後(タイミングt2からタイミングt3まで)の期間、制御部109は、ノイズプロファイルPtを使って、安定化期間が経過した後(タイミングt2からタイミングt3まで)の期間における駆動ノイズを低減することができる。これにより、撮像装置100は、駆動ノイズの低減をシームレスに行うことができる。
[ノイズプロファイル補正処理(S311)]
S311において制御部109によって実行されるノイズプロファイル補正処理について図8、図9、図10及び図11を用いて説明を行う。次に、プロファイル補正部257aがプロファイル作成部252aによって作成されたノイズプロファイルを補正する場合を一例に挙げて、以下、ノイズプロファイル補正処理について説明する。ノイズプロファイルの補正処理は、入力音声信号の振幅スペクトルの変動に応じてノイズプロファイルを動的に補正するための処理である。
図8は、ノイズプロファイルPtを拡大補正する処理を示すタイミングチャート図である。図9は、ノイズプロファイルPtを縮小補正する処理を示すタイミングチャート図である。
図8及び図9におけるt1、t2、t3、It、Dt、Pt、Ut、Ntは、図5及び図6におけるt1、t2、t3、It、Dt、Pt、Ut、Ntと同様であるため、説明を省略する。図11は、ノイズプロファイル補正処理に関する時定数の設定を示す図である。
図10は、制御部109によって行われるノイズプロファイル補正処理を示すフローチャートである。図10を用いて、制御部109によって行われるノイズプロファイル補正処理について説明する。なお、マイク205aがADC206aにアナログの音声信号を出力する場合を一例に挙げて、以下、ノイズプロファイル補正処理について説明する。積分回路250aは、S309のおけるノイズプロファイル作成処理が行われた後、あらかじめ設定されたフレーム数の各周波数の振幅値の積分し、積分された振幅値をあらかじめ設定されたフレーム数で除算することで、各周波数の平均振幅値を算出する。あらかじめ設定されたフレーム数は、ユーザによって設定されても良い。あらかじめ設定されたフレーム数が「1」である場合、積分回路250aが出力する振幅スペクトルの値は、FFT207aから出力される値と等しくなる。積分回路250aは、各周波数の平均振幅値を振幅スペクトルDtとして出力する。
制御部109は、積分回路250aから出力された振幅スペクトルDtが所定の振幅スペクトルDt2以下であるか否かを判定する(S1001)。振幅スペクトルDtが振幅スペクトルDt2よりも大きいと判定された場合(S1001でNo)、制御部109は、プロファイル格納部253aに格納されているノイズプロファイルPtが第1の値Pmax以下であるか否かを判定する(S1002)。なお、第1の値Pmaxは、ノイズプロファイルPtの拡大補正を制限するための閾値である。さらに、第1の値Pmaxは、駆動ノイズを低減し過ぎることによる違和感を防止するために用いられる。
図8のように、タイミングt2からタイミングt3までの期間、駆動ノイズが大きくなることに伴い、振幅スペクトルDtが振幅スペクトルDt2よりも大きくなる。このため、プロファイル作成部252aで生成されたノイズプロファイルPtを使って減算処理を振幅スペクトル減算部211aに行わせるだけでは、振幅スペクトルDtと振幅スペクトルDt2との差分に対応する駆動ノイズは低減されなかった。そこで、ノイズプロファイルPtが第1の値Pmax以下であると判定された場合(S1002でYes)、制御部109は、時定数inc(fi)に応じてノイズプロファイルPtの拡大補正をプロファイル拡大部271aに行わせる(S1003)。たとえば拡大補正によりDt(fi)−Dt2(fi)の値を、Pmax(fi)を上限としてノイズプロファイルPt(fi)に上乗せする。ただし一時に行わず、時定数inc(fi)に応じた増加率で増加させる。もちろんこれは一例に過ぎない。ノイズプロファイルPtの拡大補正が行われた後、制御部109は、S1004の処理を行う。
ノイズプロファイルPtが第1の値Pmax以下でないと判定された場合(S1002でNo)、駆動ノイズを低減し過ぎることを防止するために、制御部109は、ノイズプロファイルPtの拡大補正をプロファイル拡大部271aに行わせないようにする。ノイズプロファイルPtが第1の値Pmax以下でないと判定された場合(S1002でNo)、制御部109は、S1004の処理を行う。振幅スペクトルDtが振幅スペクトルDt2以下であると判定された場合(S1001でYes)、制御部109は、S1004の処理を行う。
制御部109は、振幅スペクトル減算部254aから出力された振幅スペクトルUtが第2の値Umin以上であるか否かを判定する(S1004)。なお、第2の値Uminは、ノイズプロファイルPtの縮小補正を制限する閾値である。第2の値Uminは、ノイズフロアレベルであり、音声入力部102に音声が入力されていない場合であっても、録音されてしまう最小のノイズの値である。ノイズプロファイルPtが第2の値Umin以上であると判定された場合(S1004でYes)、制御部109は、ノイズプロファイルPtの縮小補正をプロファイル縮小部272aに行わせないようにし、ノイズプロファイル補正処理を終了する。
図9のように、タイミングt2からタイミングt3までの期間、駆動ノイズが小さくなることに伴い、振幅スペクトルUtが第2の値Utminよりも小さくなる。このため、プロファイル作成部252aで生成されたノイズプロファイルPtを使って減算処理を振幅スペクトル減算部211aに行わせるだけでは、振幅スペクトルUtと第2の値Utminとの差分に対応する音声が消されてしまう場合があった。そこで、ノイズプロファイルPtが第2の値Umin以上でないと判定された場合(S1004でNo)、制御部109は、時定数dec(fi)に応じてノイズプロファイルPtの縮小補正をプロファイル縮小部272aに行わせる(S1005)。たとえば縮小補正によりUt(fi)−Utmin(fi)の値を、ノイズプロファイルPt(fi)から差し引く。ただし一時に行わず、時定数dec(fi)に応じた減少率で減少させる。もちろんこれは一例に過ぎない。ノイズプロファイルPtの縮小補正が行われた後、制御部109は、ノイズプロファイル補正処理を終了する。
なお、図10のノイズプロファイル補正処理について、プロファイル補正部257aがプロファイル作成部252aによって作成されたノイズプロファイルを補正する場合を一例に挙げて説明を行った。しかしながら、プロファイル補正部256bがプロファイル作成部252bによって作成されたノイズプロファイルを補正する場合も、図10のノイズプロファイル補正処理と同様にノイズプロファイルの補正を行う。また図10において、S1001およびS1004の条件から、拡大補正と縮小補正が両方同時に実施されることを防止するために、S1003の後はS1004に進まず、そのまま処理を終了させてもよい。
次に、図11を用いて、プロファイル拡大部271aによるノイズプロファイルPtの拡大補正の時定数inc(fi)及びプロファイル縮小部272aによるノイズプロファイルPtの縮小補正の時定数dec(fi)を設定する方法について説明する。
図11(A)は、駆動ノイズの各周波数の特性を示す図である。図11(B)は、ノイズプロファイルPtを拡大補正する場合の周波数に応じた時定数inc(fi)の設定を示す図である。図11(C)は、ノイズプロファイルPtを縮小補正する場合の周波数に応じた時定数dec(fi)の設定を表す図である。
図11(A)において、スペクトル1101は、撮像装置100によってズーム動作が行われている場合における振幅スペクトルを512ポイントの振幅スペクトルで示したものである。スペクトル1102は、撮像装置100によってズーム動作が行われている場合における振幅スペクトルの変化を示したものである。スペクトル1102が示すように、周波数帯が高域になるほど、撮像装置100によってズーム動作が行われている場合における駆動ノイズの変化が大きくなる。
これにより、図11(B)のように、プロファイル拡大部271aによるノイズプロファイルPtの拡大補正が行われる場合、周波数帯域が高くなるほど、時定数inc(fi)は、小さくなるように設定される。これは、駆動ノイズの変化に対して、ノイズプロファイルPtの拡大補正を早く追従させることによって、駆動ノイズが低減されず残ってしまうような事態を防止する。
また、図11(C)のように、プロファイル縮小部272aによるノイズプロファイルPtの縮小補正が行われる場合、周波数帯域が高くなるほど、時定数dec(fi)は、大きくなるように設定される。これは、駆動ノイズの変化に対して、ノイズプロファイルPtの縮小補正を遅く追従させることによって、駆動ノイズが低減されず残ってしまうような事態を防止する。
本実施形態において、ノイズプロファイルPtを縮小補正する際の時定数dec(fi)は、ノイズプロファイルPtを拡大補正する際の時定数inc(fi)よりも大きくする。
[左右それぞれのチャネルに対するノイズプロファイルの補正]
IFFT214aによって時系列の音声信号に戻された後に、ノイズ印加部215aは、IFFT214aから供給された音声信号にノイズ信号を印加する。ノイズ印加部215aは、ノイズ除去部200aによる駆動ノイズの低減し過ぎによる違和感を防止するために、ノイズ信号を印加する。ノイズ印加部215aによって印加されるノイズ信号は、ノイズフロアレベルの信号であるものとする。これにより、振幅スペクトル減算部254aによる減算処理は、駆動ノイズの低減が重視される。
図12は、外部音源1201と音声入力部102との関係の一例を示す図である。図12のように、外部音源1201と撮像装置100との距離が十分に離れている場合、外部音源1201とRチャネル音声入力部102aとの距離と、外部音源1201とLチャネル音声入力部102bとの距離とは、ほぼ同じである。このため、マイク205aによって取得される環境音と、マイク205bによって取得される環境音との差は小さい。
しがしながら、光学レンズ201とRチャネル音声入力部102aとの距離と、光学レンズ201とLチャネル音声入力部102bとの距離との差による駆動ノイズの影響は異なる。そのため、Rチャネル音声入力部102aへの駆動ノイズの影響と、Lチャネル音声入力部102bへの駆動ノイズの影響とをそれぞれ考慮する必要がある。
次の式に示されるように、Rチャネル音声入力部102aへの駆動ノイズの影響とLチャネル音声入力部102bへの駆動ノイズの影響との差は、大きくなる。次の式の「DtL」は、ノイズ低減処理が行われる前のL(Left)のチャネルの振幅値であり、「DtR」は、ノイズ低減処理が行われる前のR(Right)のチャネルの振幅値である。さらに、次の式の「βt」は、左右相関振幅スペクトルである。
βt=|DtL−DtR|/(DtL+DtR)
環境音は、音量が大きいほど、LchとRchとで差分は大きくなる。しかし、図12のような場合、外部音源1201とRチャネル音声入力部102aとの距離と、外部音源1201とLチャネル音声入力部102bとの距離とは、ほぼ同じなので、左右相関振幅スペクトルβtは小さくなる。駆動ノイズについては、光学レンズ201とRチャネル音声入力部102aとの距離と、光学レンズ201とLチャネル音声入力部102bとの距離との差により、左右相関振幅スペクトルβtは大きくなる。左右相関振幅スペクトルβtにより、駆動ノイズが環境音に対して支配的か否かを判定することができる。
次に、図13及び図14を用いて、Rchへの駆動ノイズの影響と、Lchへの駆動ノイズの影響とを考慮したノイズプロファイル補正処理について説明を行う。
図13は、Rch及びLchに対してノイズプロファイルを補正する処理を示すタイミングチャート図である。図13におけるt1、t12、t2、t3は、図5及び図6におけるt1、t12、t2、t3と同様であるため、説明を省略する。
図13において、FFT207aによって高速フーリエ変換された所定の周波数fiの振幅スペクトルを「ItR」とし、FFT207bによって高速フーリエ変換された所定の周波数fiの振幅スペクトルを「ItL」とする。振幅スペクトルItRは、点線で示され、振幅スペクトルItLは、実線で示される。さらに、図13において、積分回路250aによって積分された所定の周波数fiの振幅を示す振幅スペクトルを「DtR」とし、積分回路250bによって積分された所定の周波数fiの振幅を示す振幅スペクトルを「DtL」とする。振幅スペクトルDtRは、点線で示され、振幅スペクトルDtLは、実線で示される。図13において、プロファイル作成部252aによって作成された所定の周波数fiに対応するノイズプロファイルを「PtR」とし、プロファイル作成部252bによって作成された所定の周波数fiに対応するノイズプロファイルを「PtL」とする。ノイズプロファイルPtRは、点線で示され、ノイズプロファイルPtLは、実線で示される。タイミングt2において、プロファイル作成部252aによってノイズプロファイルPtRが作成され、プロファイル作成部252bによってノイズプロファイルPtLが作成される。
図13において、振幅スペクトル減算部254aから出力される所定の周波数fiの振幅スペクトルを「UtR」とし、振幅スペクトル減算部254bから出力される所定の周波数fiの振幅スペクトルを「UtL」とする。振幅スペクトルUtRは、点線で示され、振幅スペクトルUtLは、実線で示される。図13において、ノイズ印加部215aによってノイズ信号が印加された後の所定の周波数fiの時系列のデジタル音声信号を「NtR」とする。図13において、ノイズ印加部215bによってノイズ信号が印加された後の所定の周波数fiの時系列のデジタル音声信号を「NtL」とする。振幅スペクトルNtRは、点線で示され、振幅スペクトルNtLは、実線で示される。図13において、振幅スペクトルItLと振幅スペクトルItRとの差分の絶対値である|ItL−ItR|は、実線で示される。図13において、振幅スペクトルUtLと振幅スペクトルUtRとの差分の絶対値である|UtL−UtR|は、点線で示される。
図13に示すように、|UtL−UtR|が|ItL−ItR|を上回る場合がある。これは、振幅スペクトルUtL及び振幅スペクトルUtRのいずれか一つが減算処理により駆動ノイズが低減され過ぎていることを示す。これは、ノイズプロファイルPtL及びノイズプロファイルPtRのいずれか一つが大き過ぎることが原因となって起こることである。
図14は、Rch及びLchに対するノイズプロファイル補正処理の一例を示すフローチャートである。図14を用いて、制御部109によって行われるRch及びLchに対するノイズプロファイル補正処理について説明する。なお、ノイズプロファイルPtRに対して図10のノイズプロファイル補正処理が行われ、ノイズプロファイルPtLに対して図10のノイズプロファイル補正処理が行われた後、図14のRch及びLchに対するノイズプロファイル補正処理が行われる。これによってたとえば、上述したような、ノイズプロファイルPtL及びノイズプロファイルPtRのいずれか一つが大き過ぎることに起因する、ノイズ除去処理による左右チャネル差の増大に対処する。
この後、制御部109は、振幅スペクトルItL、振幅スペクトルItR、振幅スペクトルUtL及び振幅スペクトルUtR検出し、以下の条件が成立しているか否かを判定する(S1401)。
条件:|ItL−ItR|≦|UtL−UtR|
条件|ItL−ItR|≦|UtL−UtR|が成立していると判定された場合(S1401でYes)、制御部109は、振幅スペクトルUtLが振幅スペクトルUtR以上であるか否かを判定する(S1402)。振幅スペクトルUtLが振幅スペクトルUtR以上である場合(S1402でYes)、制御部109は、時定数inc_L(fi)に応じてノイズプロファイルPtLの拡大補正をプロファイル拡大部271bに行わせる(S1403)。時定数inc_L(fi)は、プロファイル拡大部271bに対応する時定数である。その後、制御部109は、時定数dec_R(fi)に応じてノイズプロファイルPtRの縮小補正をプロファイル縮小部272aに行わせる(S1404)。時定数dec_R(fi)は、プロファイル縮小部272aに対応する時定数である。S1404の処理が行われた後、Rch及びLchに対するノイズプロファイル補正処理は終了する。時定数dec_R(fi)は、時定数inc_L(fi)よりも大きくなる。
振幅スペクトルUtLが振幅スペクトルUtRよりも小さいと判定された場合(S1402でNo)、制御部109は、時定数inc_R(fi)に応じてノイズプロファイルPtRの拡大補正をプロファイル拡大部271aに行わせる(S1405)。時定数inc_R(fi)は、プロファイル拡大部271aに対応する時定数である。その後、制御部109は、時定数dec_L(fi)に応じてノイズプロファイルPtLの縮小補正をプロファイル縮小部272bに行わせる(S1406)。時定数dec_L(fi)は、プロファイル縮小部272bに対応する時定数である。S1406の処理が行われた後、Rch及びLchに対するノイズプロファイル補正処理は終了する。時定数dec_L(fi)は、時定数inc_R(fi)よりも大きくなる。
条件|ItL−ItR|≦|UtL−UtR|が成立していない場合、|ItL−ItR|>|UtL−UtR|となる。条件|ItL−ItR|≦|UtL−UtR|が成立していないと判定された場合(S1401でNo)、制御部109は、Rch及びLchに対するノイズプロファイル補正処理は終了する。
このように、制御部109は、環境音や駆動ノイズの変化に伴い、ノイズプロファイルPtRに対して補正を行い、ノイズプロファイルPtLに対して補正を行うようにした。具体的には、ノイズ除去処理の出力の左右チャネルの差が、ノイズ除去処理の入力の左右チャネルの差に比べて増大している場合には、出力の左右チャネルの差を縮小するように、左右チャネルのノイズプロファイルをそれぞれ補正する。これにより、撮像装置100は、Rchの音声に対するノイズ低減処理と、Lchの音声に対するノイズ低減処理とが適切に行われるようにすることができる。したがって、撮像装置100は、駆動ノイズの消し残しや駆動ノイズの低減し過ぎによって環境音に違和感が生じるような事態を防止することができる。
[ノイズ低減処理(S310)]
S310において、制御部109によって実行されるノイズ低減処理について図15、図16及び図17を用いて説明を行う。
図15は、Rch及びLchに対するノイズ低減処理を示すタイミングチャート図である。図15におけるt1、t12、t2、t3は、図5及び図6におけるt1、t12、t2、t3と同様であるため、説明を省略する。図15におけるItR、ItL、DtR、DtL、PtR、PtL、UtR、UtL、NtR及びNtLは、図13におけるItR、ItL、DtR、DtL、PtR、PtL、UtR、UtL、NtR及びNtLと同様であるため、説明を省略する。
撮像装置100によってズーム動作が行われている間に環境音や駆動ノイズが急激に変化した場合、ノイズプロファイルPtR及びノイズプロファイルPtLを用いて駆動ノイズを低減したとしても、駆動ノイズの消し残りや環境音に違和感が生じる場合がある。これを防止するために、制御部109は、左右相関振幅スペクトルβtに応じて、ノイズ低減処理を行う。
図16は、ノイズ低減処理の二つの例を示すフローチャートである。図17は、係数αと環境音との関係を示す図である。図17の横軸は、環境音のレベルを示し、図17の縦軸は、係数αの値を示している。図17において、環境音のレベルに係数αが対応づけられている。図17における実線1701が、環境音のレベルに対応した係数αの値を示している。破線1702は、駆動ノイズのレベルであり、破線1703は、駆動ノイズが環境音によってかき消されるレベルである。係数αは、環境音レベルの大きくなるほど、小さくなるものとする。環境音のレベルが破線1702のレベルである場合、係数αは0.125となる。
次に、図16(a)及び図17を用いて、制御部109によって行われるノイズ低減処理について説明を行う。なお、図16(a)のノイズ低減処理について、振幅スペクトル減算部254aが減算処理を行う場合を一例に挙げて説明を行う。
タイミングt12において、制御部109は、メモリ251aに保存された振幅スペクトルDt1に応じて、係数αを決定する(S1601)。係数αは、ノイズプロファイルに乗算する係数である。S1601において、制御部109は、振幅スペクトルDt1に対応する図17のおける環境音のレベルを検出し、検出された環境音のレベルに対応する係数αの値を決定する。
次に、制御部109は、上述のように左右相関振幅スペクトルβtを算出する(S1602)。その後、制御部109は、左右相関振幅スペクトルβtが第3の値βth以下であるか否かを判定する(S1603)。なお、第3の値βthは、環境音がないときにおいて算出された左右相関振幅スペクトルβtβtの値に応じて設定される。環境音のレベルが大きいほど、左右相関振幅スペクトルβtは0に近くなる。また、環境音に対して駆動ノイズが支配的である場合、左右相関振幅スペクトルβtは、0.2以上になる。
左右相関振幅スペクトルβtが第3の値βth以下であると判定された場合(S1603でYes)、制御部109は、S1604の処理を行う。S1604において、制御部109は、ノイズプロファイルPtとS1601において決定された係数αとを乗算し、これを振幅スペクトルItから減算するように振幅スペクトル減算部254aを制御する。S1604において、振幅スペクトル減算部254によって減算処理が行われた場合、振幅スペクトル減算部254から出力される振幅スペクトルUtは、次式のようになる。
Ut=It−α・Pt
左右相関振幅スペクトルβtが第3の値βthよりも大きいと判定された場合(S1603でNo)、制御部109は、S1605の処理を行う。S1605において、制御部109は、第1の値PmaxとS1601において決定された係数αとを乗算し、これを振幅スペクトルItから減算するように振幅スペクトル減算部254を制御する。S1605において、振幅スペクトル減算部254aによって減算処理が行われた場合、振幅スペクトル減算部254aから出力される振幅スペクトルUtは、次式のようになる。
Ut=It−α・Pmax
左右相関振幅スペクトルβtが第3の値βth以下でないと判定された場合(S1603でNo)、制御部109は、ノイズプロファイルPtを用いないようにする。なお、図16(a)のノイズ低減処理について、振幅スペクトル減算部254aが減算処理を行う場合を一例に挙げて説明を行った。しかしながら、振幅スペクトル減算部254bが減算処理を行う場合も、図16(a)のノイズ低減処理と同様に駆動ノイズの低減を行う。
次に、図16(b)及び図17を用いて、制御部109によって行われるノイズ低減処理について説明を行う。なお、図16(b)のノイズ低減処理について、振幅スペクトル減算部254aが減算処理を行う場合を一例に挙げて説明を行う。
図16(b)におけるS1602、S1603及びS1604は、図16(b)におけるS1602、S1603及びS1604と同一の処理であるので、説明を省略する。制御部109は、前フレームの減算処理後の振幅スペクトルUt−1に応じて、係数αを決定する(S1606)。S1606において、制御部109は、振幅スペクトルUt−1に対応する図17のおける環境音のレベルを検出し、検出された環境音のレベルに対応する係数αの値を決定する。その後、制御部109は、S1602及びS1603の処理が行われる。左右相関振幅スペクトルβtが第3の値βth以下であると判定された場合(S1603でYes)、制御部109は、S1604の処理を行う。左右相関振幅スペクトルβtが第3の値βth以下でないと判定された場合(S1603でNo)、制御部109は、S1607の処理を行う。
S1607において、制御部109は、第2の値UminとS1606において決定された係数αとを乗算し、これを振幅スペクトルItから減算するように振幅スペクトル減算部254aを制御する。S1607において、振幅スペクトル減算部254によって減算処理が行われた場合、振幅スペクトル減算部254から出力される振幅スペクトルUtは、次式のようになる。
Ut=It−α・Umin
左右相関振幅スペクトルβtが第3の値βth以下でないと判定された場合(S1603でNo)、制御部109は、ノイズプロファイルPtを用いないようにする。なお、図16(b)のノイズ低減処理について、振幅スペクトル減算部254aが減算処理を行う場合を一例に挙げて説明を行った。しかしながら、振幅スペクトル減算部254bが減算処理を行う場合も、図16(b)のノイズ低減処理と同様に駆動ノイズの低減を行う。
ノイズ低減処理について、図16(a)及び図16(b)について説明したが、図16(a)及び図16(b)のいずれか一つのノイズ低減処理が制御部109によって行われればよいものとする。
このように、制御部109は、左右相関振幅スペクトルβtに応じて、ノイズを低減するための処理を変更するようにした。これにより、撮像装置100は、駆動ノイズが環境音に対して支配的か否かに応じて、適切に駆動ノイズを低減することができる。
[後補正処理(S312)]
S312において、制御部109によって実行される後補正処理について図15、図18及び図19を用いて説明を行う。
図18は、後補正処理を示すタイミングチャート図である。図18におけるt1、t12、t2、t3は、図5及び図6におけるt1、t12、t2、t3と同様であるため、説明を省略する。図18におけるUtR、UtLは、図13におけるUtR、UtLと同様であるため、説明を省略する。図18における振幅スペクトルQtは、後補正処理が行われた後に出力される振幅スペクトルである。図19は後処理手順の三つの例を説明する図である。
次に、図19(a)及び図18(a)を用いて、制御部109によって行われる後補正処理の一例について説明を行う。振幅スペクトル減算部254aから振幅スペクトルUtRが出力され、振幅スペクトル減算部254bから振幅スペクトルUtLが出力された場合、制御部109は、振幅スペクトルUtLが振幅スペクトルUtR以下であるか否かを判定する(S1901)。
振幅スペクトルUtLが振幅スペクトルUtR以下であると判定された場合(S1901でYes)、制御部109は、振幅スペクトルUtLを振幅スペクトルQtとしてIFFT214bに出力するように後補正部255bを制御する。その後、制御部109は、振幅スペクトルUtRをIFFT214aに出力することなく、振幅スペクトルUtLを振幅スペクトルQtとしてIFFT214aに出力するように後補正部255aを制御する。(S1902)。S1902の処理が行われた後、制御部109は、後補正処理を終了する。
振幅スペクトルUtLが振幅スペクトルUtRよりも大きいと判定された場合(S1901でNo)、制御部109は、振幅スペクトルUtRを振幅スペクトルQtとしてIFFT214aに出力するように後補正部255aを制御する。その後、制御部109は、振幅スペクトルUtLをIFFT214bに出力することなく、振幅スペクトルUtRを振幅スペクトルQtとしてIFFT214bに出力するようになるように後補正部255bを制御する(S1903)。S1902の処理が行われた後、制御部109は、後補正処理を終了する。
図19(a)の後補正処理が行われる場合、図18(a)のように、振幅スペクトルUtL及び振幅スペクトルUtRのうちの小さい方の振幅スペクトルQtがIFFT214a及びIFFT214bに入力される。
次に、図19(b)及び図18(b)を用いて、制御部109によって行われる後補正処理の他の例について説明を行う。振幅スペクトル減算部254aから振幅スペクトルUtRが出力され、振幅スペクトル減算部254bから振幅スペクトルUtLが出力された場合、制御部109は、S1910の処理を行う。S1910において、制御部109は、振幅スペクトルUtL及び振幅スペクトルUtRのいずれか一つが第4の値Qmin以下か否かを判定する。なお、第4の値Qminは、後補正処理による違和感を防止するために用いられる。第4の値Qminは、第2の値Uminと同一の値であっても良い。
振幅スペクトルUtL及び振幅スペクトルUtRのいずれか一つが第4の値Qmin以下である場合(S1910でYes)、制御部109は、振幅スペクトルUtLが振幅スペクトルUtR以下であるか否かを判定する(S1914)。振幅スペクトルUtLが振幅スペクトルUtR以下であると判定された場合(S1914でYes)、制御部109は、振幅スペクトルUtRを振幅スペクトルQtとしてIFFT214aに出力するように後補正部255aを制御する。その後、制御部109は、振幅スペクトルUtLをIFFT214bに出力することなく、振幅スペクトルUtRを振幅スペクトルQtとしてIFFT214bに出力するように後補正部255bを制御する。(S1915)。S1915の処理が行われた後、制御部109は、後補正処理を終了する。振幅スペクトルUtLが振幅スペクトルUtRよりも大きいと判定された場合(S1914でNo)、制御部109は、振幅スペクトルUtLを振幅スペクトルQtとしてIFFT214bに出力するように後補正部255bを制御する。その後、制御部109は、振幅スペクトルUtRをIFFT214aに出力することなく、振幅スペクトルUtLを振幅スペクトルQtとしてIFFT214aに出力するように後補正部255aを制御する(S1916)。S1916の処理が行われた後、制御部109は、後補正処理を終了する。
振幅スペクトルUtL及び振幅スペクトルUtRのいずれも第4の値Qminよりも大きいである場合(S1910でNo)、制御部109は、振幅スペクトルUtLが振幅スペクトルUtR以下であるか否かを判定する(S1911)。
振幅スペクトルUtLが振幅スペクトルUtR以下であると判定された場合(S1911でYes)、制御部109は、振幅スペクトルUtLを振幅スペクトルQtとしてIFFT214bに出力するように後補正部255bを制御する。その後、制御部109は、振幅スペクトルUtRをIFFT214aに出力することなく、振幅スペクトルUtLを振幅スペクトルQtとしてIFFT214aに出力するように後補正部255aを制御する。S1912の処理が行われた後、制御部109は、後補正処理を終了する。
振幅スペクトルUtLが振幅スペクトルUtRよりも大きいと判定された場合(S1912でNo)、制御部109は、振幅スペクトルUtRを振幅スペクトルQtとしてIFFT214aに出力するように後補正部255aを制御する。その後、制御部109は、振幅スペクトルUtLをIFFT214bに出力することなく、振幅スペクトルUtRを振幅スペクトルQtとしてIFFT214bに出力するように後補正部255bを制御する(S1913)。S1913の処理が行われた後、制御部109は、後補正処理を終了する。
図19(b)の後補正処理が行われる場合、振幅スペクトルUtL及び振幅スペクトルUtRのいずれもが第4の値Qminよりも大きい場合について説明する。この場合、図18(b)のように、振幅スペクトルUtL及び振幅スペクトルUtRのうち小さい方の振幅スペクトルQtがIFFT214a及びIFFT214bに入力される。
次に、図19(b)の後補正処理が行われる場合、振幅スペクトルUtL及び振幅スペクトルUtRのいずれか一つが第4の値Qmin以下である場合について説明する。この場合、図18(b)のように、振幅スペクトルUtL及び振幅スペクトルUtRのうち大きい方の振幅スペクトルQtがIFFT214a及びIFFT214bに入力される。
次に、図19(c)及び図18(c)を用いて、制御部109によって行われる後補正処理のさらに他の例について説明を行う。振幅スペクトル減算部254aから振幅スペクトルUtRが出力され、振幅スペクトル減算部254bから振幅スペクトルUtLが出力された場合、制御部109は、S1921の処理を行う。S1921において、制御部109は、ΔtL及びΔtRを算出し、|ΔtL−ΔtR|を算出する。ΔtLは、振幅スペクトルItLと振幅スペクトルUtLとの差分であり、ΔtRは、振幅スペクトルItRと振幅スペクトルUtRとの差分である。さらに、制御部109は、以下の条件が成立しているか否かを判定する。
|ΔtL−ΔtR|≦|ΔtL−ΔtR|max
なお、|ΔtL−ΔtR|maxは、予め定められた閾値であり、ΔtLとΔtRとの差分による環境音の左右差の違和感を防止するために用いられる。
条件|ΔtL−ΔtR|≦|ΔtL−ΔtR|maxが成立していると判定された場合(S1921でYes)、制御部109は、振幅スペクトルUtLが振幅スペクトルUtR以下であるか否かを判定する(S1922)。振幅スペクトルUtLが振幅スペクトルUtR以下であると判定された場合(S1922でYes)、制御部109は、振幅スペクトルUtLを振幅スペクトルQtとしてIFFT214bに出力するように後補正部255bを制御する。その後、制御部109は、振幅スペクトルUtRが振幅スペクトルQtになるように後補正部255aを制御する(S1923)。その後、制御部109は、振幅スペクトルUtRをIFFT214aに出力することなく、振幅スペクトルUtLを振幅スペクトルQtとしてIFFT214aに出力するように後補正部255aを制御する。
S1923の処理が行われた後、制御部109は、後補正処理を終了する。振幅スペクトルUtLが振幅スペクトルUtRよりも大きいと判定された場合(S1922でNo)、制御部109は、振幅スペクトルUtRを振幅スペクトルQtとしてIFFT214aに出力するように後補正部255aを制御する。その後、制御部109は、振幅スペクトルUtLをIFFT214bに出力することなく、振幅スペクトルUtRを振幅スペクトルQtとしてIFFT214bに出力するように後補正部255bを制御する(S1924)。S1924の処理が行われた後、制御部109は、後補正処理を終了する。
条件|ΔtL−ΔtR|≦|ΔtL−ΔtR|maxが成立していない場合、|ΔtL−ΔtR|>|ΔtL−ΔtR|maxとなる。条件|ΔtL−ΔtR|≦|ΔtL−ΔtR|maxが成立していないと判定された場合(S1921でNo)、制御部109は、振幅スペクトルUtLが振幅スペクトルUtR以下であるか否かを判定する(S1925)。
振幅スペクトルUtLが振幅スペクトルUtR以下であると判定された場合(S1925でYes)、制御部109は、振幅スペクトルUtRを振幅スペクトルQtとしてIFFT214aに出力するように後補正部255aを制御する。その後、制御部109は、振幅スペクトルUtLをIFFT214bに出力することなく、振幅スペクトルUtRを振幅スペクトルQtとしてIFFT214bに出力するように後補正部255bを制御する(S1926)。S1926の処理が行われた後、制御部109は、後補正処理を終了する。振幅スペクトルUtLが振幅スペクトルUtRよりも大きいと判定された場合(S1925でNo)、制御部109は、振幅スペクトルUtLを振幅スペクトルQtとしてIFFT214bに出力するように後補正部255bを制御する。その後、制御部109は、振幅スペクトルUtRをIFFT214aに出力することなく、振幅スペクトルUtLを振幅スペクトルQtとしてIFFT214aに出力するように後補正部255aを制御する(S1927)。S1927の処理が行われた後、制御部109は、後補正処理を終了する。
図19(c)の後補正処理が行われる場合、|ΔtL−ΔtR|≦|ΔtL−ΔtR|maxが成り立つ場合について説明する。この場合、図18(c)のように、振幅スペクトルUtL及び振幅スペクトルUtRのうち小さい方の振幅スペクトルQtがIFFT214a及びIFFT214bに入力される。
次に、図19(c)の後補正処理が行われる場合、|ΔtL−ΔtR|≦|ΔtL−ΔtR|maxが成り立たない場合について説明する。この場合、図18(c)のように、振幅スペクトルUtL及び振幅スペクトルUtRのうち大きい方の振幅スペクトルQtがIFFT214a及びIFFT214bに入力される。
後補正処理について、図19(a)、図19(b)及び図19(c)について説明したが、図19(a)、図19(b)及び図19(c)のいずれか一つの後補正処理が制御部109によって行われればよいものとする。
図19(a)、図19(b)及び図19(c)のいずれか一つの後補正処理が行われた後、IFFT214aは、FFT207aから供給された位相情報を用いて、振幅スペクトルQtに対して逆高速フーリエ変換を行うことで、元の時系列形式の音声データを生成する。図19(a)、図19(b)及び図19(c)のいずれか一つの後補正処理が行われた後、IFFT214bは、FFT207bから供給された位相情報を用いて、振幅スペクトルQtに対して逆高速フーリエ変換を行うことで、元の時系列形式の音声データを生成する。
このように、制御部109は、Rchの音声とLchの音声とのレベルが一致するように補正するための処理を行うようにした。これにより、撮像装置100は、環境音の左右差による違和感が生じないようにすることができる。
本実施形態において、撮像装置100は、RchとLchとの2系統の音声が入力される構成として説明を行ったが、チャネル数が2以上の音声が入力される構成であっても良い。また、撮像装置100は、1系統の音声が入力される構成であっても良いものとする。
[その他の実施例]
以上の実施形態においては、ズーム駆動音を図3のS308で検出し、それをきっかけとしてノイズプロファイルの作成をS309で行っている。しかしながら、ノイズプロファイルを予め作成しておき、それをノイズ低減処理310において適用してもよい。この場合には図3のS307およびS309を省略できる。またS308の判定は、判定基準は上記実施形態と同一ながら、「プロファイル作成開始?」ではなく「ノイズ低減処理開始?」となる。これにより、固定的なノイズプロファイルを用いた場合にも、ズームレンズが実際に駆動されてノイズが生じたことをきっかけとして、ノイズの削減処理を開始できる。その結果、ノイズの生じている時間に適した、時間的な過不足のないノイズ低減処理を実現できる。
さらにまた、上記実施形態では、入力音声を記録する際にノイズ除去を行い、ノイズ除去した音声を記録している。これに対して、録音時にはノイズ処理を行わず、再生時にノイズ低減処理を行うこともできる。そして上記実施形態に係る原理のノイズ削除を再生時にも適用することができる。たとえば、図20のFFT207a(207bも同じ、以下同様)〜IFFT214aまでを音声入力部から、メモリ103に記録した音声データを再生する回路に移動する。そして、メモリ103から読み取ったデジタル音声データをFFT207aに入力し、変換されたデータをノイズ除去部200aに入力してノイズ除去し、その出力を逆FFTすることで、ノイズを取り除いた音声を再生することができる。
さらに、上述した固定プロファイルを用いたノイズ低減処理を、再生時において適用することもできる。
また本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。