以下、図面を参照して本発明の実施形態を詳細に説明する。なお、実施形態では、電子機器としてデジタルカメラ等の撮像装置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は、符号化処理部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を移動させることで、被写体の光学像をズーミングさせるものである。撮像素子202は、被写体の光学像を画像信号に変換し、画像信号を出力する。レンズ制御部203は、光学レンズ201を移動させるためのモータ等を駆動させる。画像処理部204は、撮像素子202から出力される画像信号に対して画像処理を行い、画像データを生成する。
例えば、ズーム動作やフォーカス調整等を撮像装置100に開始させるための指示が操作部110を介して入力された場合、制御部109は、光学レンズ201を移動させるようにレンズ制御部203を制御するためのズーム制御信号をONに変更する。ズーム制御信号がONに変更された場合、レンズ制御部203は、モータ等を駆動し、光学レンズ201を移動させる。
光学レンズ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フレームとして入力する。そして、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、プロファイル作成部252a、プロファイル格納部253a、振幅スペクトル減算部254a、後処理部255a、及びプロファイル補正部256aを有する。
ノイズ低減部200aは、撮像装置100がズーム動作を行っている場合に発生する駆動ノイズを低減するための動作を行う。以下、ノイズ低減部200aによって行われる動作について図4を参照し、説明を行う。
図4は、撮像装置100によってズーム動作が行われる前と撮像装置100によってズーム動作が行われている間とにおける周波数毎の振幅スペクトルの一例を表す図である。図4における横軸が周波数を示し、0乃至48Khzの区間の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)と表す。この場合、積分回路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に格納する。
積分回路250aは、レンズ制御部203が光学レンズ201の移動を開始させてから安定化期間が経過するまでの間、上述のように各周波数の振幅値を積分していく。安定化期間とは、積分回路250aの時定数により積分回路250aに入力される振幅スペクトルが安定するまでの期間である。安定化期間が経過するまでの間において、FFT207aから出力される振幅スペクトルには、駆動ノイズが含まれている。安定化期間(例えば、mフレーム分に相当するものとする)が経過した場合、積分回路250aは、S(fi)/mをプロファイル作成部252aに出力する。S(fi)/mは、図4の402によって示されている振幅スペクトルに対応する。
プロファイル作成部252aは、積分回路250aから供給されたS(fi)/mからメモリ251aに格納されたS(fi)/nを減算することで、各周波数毎の駆動ノイズに対応する振幅値であるN(fi)を次式のように算出する。
N(fi)=S(fi)/m−S(fi)/n
N(fi)が算出された後、プロファイル作成部252aは、N(fi)をノイズプロファイルとしてプロファイル格納部253aに格納する。ノイズプロファイルとは、ズーム動作が行われている場合に発生する駆動ノイズを示すデータである。
その後、振幅スペクトル減算部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へのズーム動作の開始の指示を受けてから安定化期間が経過するまでの間、プロファイル作成部252aによってノイズプロファイルの作成が完了していない状態が発生する。これにより、プロファイル作成部252aによるノイズプロファイルの作成が完了するまでの期間を短くするためには、「m」を小さくする必要がある。しかし、「m」が極端に小さい場合、ノイズプロファイルによる駆動ノイズの低減の精度が低くなってしまう可能性がある。レンズ制御部203が光学レンズ201を移動させるための制御を開始した場合、70ms程度の間、駆動ノイズの一種である光学レンズ201の動きだし音、音揺れ等が発生する。光学レンズ201の動きだし音、音揺れ等を低減するために、70msを超える期間において、プロファイル作成部252aにノイズプロファイルを作成させるため、「m」を例えば「15」とする。
実施形態では、1フレームは1024個の時系列の音声データであるものの各フレームの半分は互いに重畳している。また、音声データのサンプリングレートは48kHzとしているので、m=15とすると、ノイズプロファイルの作成期間Tは、
T=mフレーム分の期間=m×(1024/2)/48kHz=160ms
となる。ユーザによって撮像装置100へのズーム動作の開始の指示を受けてから作成期間Tが経過するまでの間に、プロファイル作成部252aは、ノイズプロファイルを作成する。このため、プロファイル作成部252aは、光学レンズ201の動きだし音、音揺れ等を低減するための精度の高いノイズプロファイルを作成できる。
後処理部255aは、振幅スペクトル減算部254aによって減算処理が行われた後の振幅スペクトルを補正して、IFFT214aに出力する。
プロファイル補正部256aは、環境音の大きさに応じて、プロファイル格納部253aに格納されたノイズプロファイルを補正する処理を行う。プロファイル補正部256aによって行われるノイズプロファイルの補正として、拡大補正(増加補正)と縮小補正(減少補正)とがある。プロファイル補正部256aは、ノイズプロファイルの拡大補正を行うプロファイル拡大部271aと、ノイズプロファイルの縮小補正を行うプロファイル縮小部272aとを有する。
ノイズプロファイルの拡大補正とは、プロファイル作成部252aによって作成されたノイズプロファイルまたはプロファイル補正部256aによって補正されたノイズプロファイルの振幅スペクトルを増大させる補正である。つまり、ノイズプロファイルの拡大補正をすることで振幅スペクトル減算部254aによって減算処理がされた後の振幅スペクトルANR(fi)は小さくなる。また、ノイズプロファイルの縮小補正とは、プロファイル作成部252aによって作成されたノイズプロファイルまたはプロファイル補正部256aによって補正されたノイズプロファイルの振幅スペクトルを減少させる補正である。つまり、ノイズプロファイルの縮小補正をすることで振幅スペクトル減算部211によって減算処理がされた後の振幅スペクトルANR(fi)は大きくなる。プロファイル補正部256aによって行われるノイズプロファイルの補正は必要に応じて、FFT207aから供給される1フレーム毎の振幅スペクトルA(fi)に対して行われる。撮像装置100によってズーム動作が行われている場合、環境音や駆動ノイズの変動に応じて、プロファイル補正部256aは、ノイズプロファイルを適正に補正することができる。
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に格納されている動画データのクローズ処理を行い、動画ファイルとして完成させる(S312)。操作部110を介して動画データの記録を撮像装置100に終了させる指示が入力されなかった場合(S306でNo)、処理は、S306からS302に戻る。
一方、操作部110からズーム動作を開始する指示が入力された場合、処理は、S305からS307に進む。S307において、制御部109は、ノイズ低減部200aにノイズプロファイルを作成させるために、ノイズプロファイル作成処理を行う。S307において行われるノイズプロファイル作成処理については後述する。ノイズプロファイル作成処理が実行されることによって作成されたノイズプロファイルは、プロファイル格納部253aに格納される。
次に、制御部109は、FFT207aにて高速フーリエ変換された周波数毎の振幅スペクトルの各周波数毎の振幅値からノイズプロファイルに含まれる特定の周波数の振幅値を減算するノイズ低減処理を行う(S308)。ノイズ低減処理が行われる場合、制御部109は、減算処理を行うように振幅スペクトル減算部254aを制御する。次に、制御部109は、プロファイル格納部210aに格納されたノイズプロファイルを補正するようにプロファイル補正部256aを制御するノイズプロファイル補正処理を行う(S309)。S309において行われるノイズプロファイル補正処理については後述する。プロファイル補正部256aによって補正されたノイズプロファイルは、次フレームの減算処理で適用される。次に、制御部109は、振幅スペクトル減算部254aにより減算処理が行われた後に得られたRchの振幅スペクトルと、振幅スペクトル減算部254bにより減算処理が行われた後に得られたLchの振幅スペクトルとがある場合、後処理を行う(S310)。後処理とは、Rchの振幅スペクトルとLchの振幅スペクトルとを同一にするように補正する処理である。S310において行われる後処理については後述する。
そして、操作部110からズーム動作を停止する指示が入力されたか否かが判定される(S311)。操作部110からズーム動作を停止する指示が入力されていない場合、撮像装置100においてズーム動作が継続して実行されるので、制御部109は、S308からS310までの処理を繰り返す。また、制御部109は、操作部110からズーム動作を停止する指示が入力された場合、撮像装置100におけるズーム動作を停止し、S301の処理に戻る。
なお、図3の動画記録処理について、マイク205aからADC206aにアナログの音声信号が出力される場合を一例に挙げて説明を行った。しかしながら、マイク205bからADC206bにアナログの音声信号が出力される場合も、図3の動画記録処理と同様に動画の記録を行う。
[ノイズプロファイル作成処理(S307)]
S307において制御部109によって実行されるノイズプロファイルの作成処理について図4、5、6及び7を用いて説明を行う。マイク205aからADC206aにアナログの音声信号が出力される場合を一例に挙げて、以下、ノイズプロファイルの作成処理について説明する。
図5は、周波数毎の振幅スペクトルに対するノイズプロファイル作成処理を示すタイミングチャート図である。図6は、撮像装置100によってズーム動作が開始される前における環境音が大きい場合における周波数毎の振幅スペクトルに対するノイズプロファイル作成処理を示すタイミングチャート図である。
以下、図5及び6について説明を行う。図5及び6おいて、制御部109が光学レンズ201を移動させるようにレンズ制御部203を制御するタイミングを「t1」とする。制御部109は、光学レンズ201を移動させるようにレンズ制御部203を制御するために、ズーム制御信号をONに変更する。制御部109は、光学レンズ201を移動させるようにレンズ制御部203を制御しない場合、ズーム制御信号をONにしないので、この場合、ズーム制御信号は、OFFになる。また、制御部109は、光学レンズ201の移動を停止させるようにレンズ制御部203を制御する場合、ズーム制御信号をOFFに変更する。ズーム制御信号がONに変更された場合、レンズ制御部203は、光学レンズ201の移動を開始させる。ズーム制御信号がOFFに変更された場合、レンズ制御部203は、光学レンズ201の移動を停止させる。さらに、図5及び6おいて、振幅スペクトル減算部254aにノイズプロファイルを用いた減算処理を開始させるタイミングを「t2」とする。さらに、図5及び6おいて、制御部109がズーム制御信号をOFFにするタイミングを「t3」とする。ノイズプロファイルを用いた減算処理は、タイミングt2からタイミングt3までの期間、振幅スペクトル減算部254aによって行われる。
図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によって行わせるノイズプロファイル作成処理を示すフローチャートである。次に、図7を用いて、制御部109によって行われるノイズプロファイル作成処理について説明する。なお、プロファイル作成部252aがノイズプロファイルを作成する場合を一例に挙げて、以下、ノイズプロファイル作成処理について説明する。操作部110からズーム動作を開始する指示が入力された場合(S305でYes)に、制御部109によってズーム制御信号はOFFからONに変更される(タイミングt1)。タイミングt1において、制御部109は、上述のように、Aave(fi)を算出するように積分回路250aを制御する。積分回路250aによってAave(fi)が算出された場合、制御部109は、Aave(fi)を振幅スペクトルDt1としてメモリ251aに保存する(S701)。
次に、制御部109は、タイミングt1から安定化期間が経過するまで、レンズ制御部203が光学レンズ201を移動させている場合の振幅スペクトルにおける各周波数毎の積分値を取得するように積分回路250aを制御する。その後、制御部109は、安定化期間が経過したか否かを判定する(S702)。安定化期間が経過した場合(タイミングt2)(S702でYes)、制御部109は、上述のように、S(fi)/mを算出するように積分回路250aを制御する。積分回路250aによってS(fi)/mが算出された場合、制御部109は、S(fi)/mを振幅スペクトルDt2としてメモリ251aに保存する(S703)。
次に、制御部109は、振幅スペクトルDt1が所定の振幅スペクトルであるDtth以下であるか否かを判定する(S704)。所定の振幅スペクトルDtthは、あらかじめメモリ103に格納されているものとする。所定の振幅スペクトルDtthは、撮像装置100によってズーム動作が開始される前における環境音が大きい場合であっても、駆動ノイズを低減できるように設定される。所定の振幅スペクトルDtthは、撮像装置100の騒音ノイズとして予測されるノイズレベルよりも一定レベル低いレベルになるように設定される。
振幅スペクトルDt1が所定の振幅スペクトルDtthよりも大きいと判定された場合(S704でNo)、制御部109は、ズーム動作が開始される前の環境音が大きいと判定する。振幅スペクトルDt1が所定の振幅スペクトルDtthより大きいと判定された場合(S704でNo)、ノイズプロファイル作成処理は、図6のようなタイミングチャートになる。この場合(S704でNo)、制御部109は、振幅スペクトルDt1としてメモリ251aに保存されているAave(fi)を消去し、所定の振幅スペクトルDtthが振幅スペクトルDt1としてメモリ251aに保存されるようにする(S705)。所定の振幅スペクトルDtthが振幅スペクトルDt1としてメモリ251aに保存された場合、制御部109は、S706の処理を行う。振幅スペクトルDt1が所定の振幅スペクトルDtth以下であると判定された場合(S704でYes)、ノイズプロファイル作成処理は、図5のようなタイミングチャートになる。この場合(S704でYes)、制御部109は、S706の処理を行う。
次に、制御部109は、振幅スペクトルDt2から振幅スペクトルDt1を減算することによって、ノイズプロファイルPtを作成するようにプロファイル作成部252aを制御する(S706)。振幅スペクトルDt1が所定の振幅スペクトルDtth以下である場合、プロファイル作成部252aは、振幅スペクトルDt2からAave(fi)を減算することによって、ノイズプロファイルPtを作成する。振幅スペクトルDt1が所定の振幅スペクトルDtthよりも大きい場合、プロファイル作成部252aは、振幅スペクトルDt2から所定の振幅スペクトルDtthを減算することによって、ノイズプロファイルPtを作成する。プロファイル作成部252aによって作成されたノイズプロファイルPtは、プロファイル格納部253aに格納される。
安定化期間が経過していない場合(S702でNo)、プロファイル格納部253aには、ノイズプロファイルPtは格納されていないので、ノイズプロファイルPtを用いて駆動ノイズを低減することはできない。そこで、制御部109は、振幅スペクトルUtが振幅スペクトルDt1と同一になるように振幅スペクトル減算部254aを制御する。安定化期間が経過していない場合、図5の501のように環境音が途中から急激に変動する場合がある。この場合、制御部109は、振幅スペクトルItが振幅スペクトルDt1以上であるか否かを判定する(S707)。
振幅スペクトルItが振幅スペクトルDt1以上であると判定された場合(S707でYes)、制御部109は、振幅スペクトルUtが振幅スペクトルDt1と同一になるように振幅スペクトル減算部254aを制御する(S708)。振幅スペクトルItが振幅スペクトルDt1以上であると判定された場合(S707でYes)、安定化期間が経過するまで(タイミングt1からタイミングt2まで)は、振幅スペクトルUtは、振幅スペクトルDt1と同一になるように制御される。振幅スペクトルItが振幅スペクトルDt1以上でないと判定された場合(S707でNo)、制御部109は、振幅スペクトルUtが振幅スペクトルItと同一になるように振幅スペクトル減算部254aを制御する(S709)。振幅スペクトルItが振幅スペクトルDt1よりも小さいと判定された場合(S707でNo)、安定化期間が経過するまで(タイミングt1からタイミングt2まで)、振幅スペクトルUtは、振幅スペクトルItと同一になるように制御される。
なお、図7のノイズプロファイル作成処理について、プロファイル作成部252aがノイズプロファイルを作成する場合を一例に挙げて説明を行った。しかしながら、プロファイル作成部252bがノイズプロファイルを作成する場合も、図7のノイズプロファイル作成処理と同様にノイズプロファイルを作成する。
なお、図6のような場合、振幅スペクトルItが振幅スペクトルDt1以上の状態になったり、振幅スペクトルItが振幅スペクトルDt1よりも小さい状態になったりを繰り返す場合がある。このような場合であっても、振幅スペクトルUtは、振幅スペクトルDt1を超えないように制御される。これにより、撮像装置100は、安定化期間が経過するまで(タイミングt1からタイミングt2まで)の期間において、駆動ノイズを低減することができる。
このように、ズーム制御信号がONにされてから安定化期間が経過するまで(タイミングt1からタイミングt2まで)の期間、制御部109は、振幅スペクトルUtが振幅スペクトルItまたは振幅スペクトルDt1になるように制御する。これにより、撮像装置100は、ズーム制御信号がONにされてから安定化期間が経過するまで(タイミングt1からタイミングt2まで)の期間における駆動ノイズを低減することができる。さらに、安定化期間が経過した後(タイミングt2からタイミングt3まで)の期間、制御部109は、ノイズプロファイルPtを使って、安定化期間が経過した後(タイミングt2からタイミングt3まで)の期間における駆動ノイズを低減することができる。これにより、撮像装置100は、駆動ノイズの低減をシームレスに行うことができる。
[ノイズプロファイル補正処理(S309)]
S309において制御部109によって実行されるノイズプロファイル補正処理について図8、9、10及び11を用いて説明を行う。プロファイル補正部256aがプロファイル作成部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によって行われるノイズプロファイル補正処理について説明する。なお、プロファイル補正部256aがプロファイル作成部252aによって作成されたノイズプロファイルを補正する場合を一例に挙げて、以下、ノイズプロファイル補正処理について説明する。積分回路250aは、S307のおけるノイズプロファイル作成処理が行われた後、あらかじめ設定されたフレーム数の各周波数の振幅値の積分し、積分された振幅値をあらかじめ設定されたフレーム数で除算することで、各周波数毎の平均振幅値を算出する。あらかじめ設定されたフレーム数は、ユーザによって設定されても良い。あらかじめ設定されたフレーム数が「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)。ノイズプロファイル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を使って減算処理を振幅スペクトル減算部254aに行わせるだけでは、振幅スペクトルUtと第2の値Utminとの差分に対応する音声が消されてしまう場合があった。そこで、ノイズプロファイルPtが第2の値Umin以上でないと判定された場合(S1004でNo)、制御部109は、時定数dec(fi)に応じてノイズプロファイルPtの縮小補正をプロファイル縮小部272aに行わせる(S1005)。ノイズプロファイルPtの縮小補正が行われた後、制御部109は、ノイズプロファイル補正処理を終了する。
なお、図10のノイズプロファイル補正処理について、プロファイル補正部256aがプロファイル作成部252aによって作成されたノイズプロファイルを補正する場合を一例に挙げて説明を行った。しかしながら、プロファイル補正部256bがプロファイル作成部252bによって作成されたノイズプロファイルを補正する場合も、図10のノイズプロファイル補正処理と同様にノイズプロファイルの補正を行う。
次に、図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、t2、t3は、図5及び6におけるt1、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に対するノイズプロファイル補正処理が行われる。
この後、制御部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)、Rch及びLchに対するノイズプロファイル補正処理は終了する。
このように、制御部109は、環境音や駆動ノイズの変化に伴い、ノイズプロファイルPtRに対して補正を行い、ノイズプロファイルPtLに対して補正を行うようにした。これにより、撮像装置100は、Rchの音声に対するノイズ低減処理と、Lchの音声に対するノイズ低減処理とが適切に行われるようにすることができる。したがって、撮像装置100は、駆動ノイズの消し残しや駆動ノイズの低減し過ぎによって環境音に違和感が生じるような事態を防止することができる。
[ノイズ低減処理(S308)]
S308において、制御部109によって実行されるノイズ低減処理について図15、16及び17を用いて説明を行う。
図15は、Rch及びLchに対するノイズ低減処理を示すタイミングチャート図である。図15におけるt1、t2、t3は、図5及び6におけるt1、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が減算処理を行う場合を一例に挙げて説明を行う。
タイミングt1において、制御部109は、メモリ251aに保存された振幅スペクトルDt1に応じて、係数αを決定する(S1601)。係数αは、ノイズプロファイルに乗算する係数である。S1601において、制御部109は、振幅スペクトルDt1に対応する図17のおける環境音のレベルを検出し、検出された環境音のレベルに対応する係数αの値を決定する。
次に、制御部109は、上述のように左右相関振幅スペクトルβtを算出する(S1602)。その後、制御部109は、左右相関振幅スペクトルβtが第3の値βth以下であるか否かを判定する(S1603)。なお、第3の値βthは、環境音がないときにおいて算出された左右相関振幅スペクトルβtの値に応じて設定される。環境音のレベルが大きいほど、左右相関振幅スペクトルβtは0に近くなる。また、環境音に対して駆動ノイズが支配的である場合、左右相関振幅スペクトルβtは、0.2以上になる。
左右相関振幅スペクトルβtが第3の値βth以下であると判定された場合(S1603でYes)、制御部109は、S1604の処理を行う。S1604において、制御部109は、ノイズプロファイルPtRとS1601において決定された係数αとを乗算し、これを振幅スペクトルItRから減算するように振幅スペクトル減算部254aを制御する。S1604において、振幅スペクトル減算部254aによって減算処理が行われた場合、振幅スペクトル減算部254aから出力される振幅スペクトルUtRは、次式のようになる。
UtR=ItR−α・PtR
左右相関振幅スペクトルβtが第3の値βthよりも大きいと判定された場合(S1603でNo)、制御部109は、S1605の処理を行う。S1605において、制御部109は、第1の値PmaxとS1601において決定された係数αとを乗算し、これを振幅スペクトルItRから減算するように振幅スペクトル減算部254aを制御する。S1605において、振幅スペクトル減算部254aによって減算処理が行われた場合、振幅スペクトル減算部254aから出力される振幅スペクトルUtRは、次式のようになる。
UtR=ItR−α・Pmax
左右相関振幅スペクトルβtが第3の値βth以下でないと判定された場合(S1603でNo)、制御部109は、ノイズプロファイルPtRを用いないようにする。なお、図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のおける環境音のレベルを検出し、検出された環境音のレベルに対応する係数αの値を決定する。振幅スペクトル減算部254aが減算処理を行う場合、S1606において、制御部109は、振幅スペクトル減算部254aによって行われた前フレームの減算処理後の振幅スペクトルUt−1Rに応じて、係数αを決定する。その後、制御部109は、S1602及びS1603の処理が行われる。左右相関振幅スペクトルβtが第3の値βth以下であると判定された場合(S1603でYes)、制御部109は、S1604の処理を行う。左右相関振幅スペクトルβtが第3の値βth以下でないと判定された場合(S1603でNo)、制御部109は、S1607の処理を行う。
S1607において、制御部109は、第2の値UminとS1606において決定された係数αとを乗算し、これを振幅スペクトルItRから減算するように振幅スペクトル減算部254aを制御する。S1607において、振幅スペクトル減算部254aによって減算処理が行われた場合、振幅スペクトル減算部254aから出力される振幅スペクトルUtRは、次式のようになる。
UtR=ItR−α・Umin
左右相関振幅スペクトルβtが第3の値βth以下でないと判定された場合(S1603でNo)、制御部109は、ノイズプロファイルPtRを用いないようにする。なお、図16(b)のノイズ低減処理について、振幅スペクトル減算部254aが減算処理を行う場合を一例に挙げて説明を行った。しかしながら、振幅スペクトル減算部254bが減算処理を行う場合も、図16(b)のノイズ低減処理と同様に駆動ノイズの低減を行う。
ノイズ低減処理について、図16(a)及び図16(b)について説明したが、図16(a)及び図16(b)のいずれか一つのノイズ低減処理が制御部109によって行われればよいものとする。
このように、制御部109は、左右相関振幅スペクトルβtに応じて、ノイズを低減するための処理を変更するようにした。これにより、撮像装置100は、駆動ノイズが環境音に対して支配的か否かに応じて、適切に駆動ノイズを低減することができる。
[後処理(S310)]
S310において、制御部109によって実行される後処理について図18及び19を用いて説明を行う。
図18は、後処理を示すタイミングチャート図である。図18におけるt1、t2、t3は、図5及び6におけるt1、t2、t3と同様であるため、説明を省略する。図18におけるUtR、UtLは、図13におけるUtR、UtLと同様であるため、説明を省略する。図18における振幅スペクトルQtは、後処理が行われた後に出力される振幅スペクトルである。
次に、図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)。S1903の処理が行われた後、制御部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よりも大きいと判定された場合(S1911で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をIFFT214aに出力することなく、振幅スペクトルUtLを振幅スペクトルQtとしてIFFT214aに出力するように後補正部255aを制御する(S1923)。
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系統の音声が入力される構成であっても良いものとする。
(その他の実施例)
上述した実施形態は、プログラム等のソフトウェアをコンピュータ(またはCPUやMPU等)に実行させることによって実現することができる。この場合、当該ソフトウェアは、ネットワーク又は記憶媒体を介してコンピュータ(またはCPUやMPU等)に供給される。