以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、撮像装置の一例であるカメラ10のシステム構成の一例を模式的に示す。カメラ10は、カメラ本体130と、レンズユニット120とを備える。カメラ10は、一眼レフレックスカメラである。レンズユニット120は、カメラ本体130に装着される。レンズユニット120は交換レンズであり、レンズユニット120はカメラ本体130に対して着脱可能である。図1では、レンズユニット120がカメラ本体130に装着された状態をカメラ10として示す。
レンズユニット120は、レンズマウント接点121を有するレンズマウントを備える。カメラ本体130は、カメラマウント接点131を有するカメラマウントを備える。レンズマウントとカメラマウントとが係合してレンズユニット120とカメラ本体130とが一体化されると、レンズマウント接点121とカメラマウント接点131とが接続される。レンズMPU123は、レンズマウント接点121およびカメラマウント接点131を介してカメラMPU140と接続され、相互に通信しつつ協働してレンズユニット120を制御する。
レンズユニット120は、レンズ群122、レンズ駆動部124およびレンズMPU123を有する。被写体光は、レンズユニット120が有する光学系としてのレンズ群122を透過して、カメラ本体130に入射する。メインミラー145およびサブミラー146を含むミラーユニットは、レンズ群122の光軸を中心とする被写体光束中に進出した進出位置と、被写体光束から退避した退避位置とを取り得る。サブミラー146は、メインミラー145の変位に連動して変位する。メインミラー145が被写体光束中から退避した位置にある場合に、サブミラー146も被写体光束から退避した位置にある。メインミラー145が被写体光束中に進出した位置にある場合に、サブミラー146も被写体光束中に進出した位置にある。レリーズボタンが押し込まれると、ミラーユニットは進出位置からアップして退避位置に変位し、撮像素子132による撮像動作が完了すると、ミラーユニットは退避位置からダウンして進出位置に戻る。
ミラーユニットが進出位置にある場合、メインミラー145は、レンズ群122を通過した被写体光束の一部を反射する。具体的には、メインミラー145の一部領域には、ハーフミラーが形成されている。メインミラー145のハーフミラー領域に入射した被写体光束の一部は透過し、他の一部は反射する。メインミラー145により反射された被写体光束は、ピント板161、透過型表示パネル160、ペンタプリズム147、接眼光学系162およびファインダ窓163を通じて、被写体像としてユーザに提示される。ユーザは、提示された被写体像に基づいて構図等を確認することができる。透過型表示パネル160は、被写体光束に基づく被写体像とともに、撮像動作の設定状態を示す情報等を含む種々の情報をユーザに提示する。透過型表示パネル160は、カメラMPU140の制御に従って、被写体光束に基づく被写体像に重畳して、種々の情報をユーザに提示する。
メインミラー145のハーフミラー領域を透過した被写体光束の一部は、サブミラー146で反射されて、AFユニット142へ導かれる。AFユニット142は、被写体光束を受光する複数の光電変換素子列を有する。光電変換素子列は、合焦状態にある場合には位相が一致した信号を出力し、前ピン状態または後ピン状態にある場合には、位相ずれした信号を出力する。位相のずれ量は、焦点状態からのずれ量に対応する。AFユニット142は、光電変換素子列の出力を相関演算することで位相差を検出して、位相差を示す位相差信号をカメラMPU140へ出力する。
レンズ群122の焦点状態は、カメラMPU140等の制御により、AFユニット142からの位相差信号を用いて調節される。例えば、位相差信号から検出された焦点状態に基づき、カメラMPU140によってレンズ群122が含むフォーカスレンズの目標位置が決定され、決定された目標位置に向けてレンズMPU123の制御によってフォーカスレンズの位置が制御される。具体的には、レンズMPU123は、一例としてフォーカスレンズモータを含むレンズ駆動部124を制御して、レンズ群122を構成するフォーカスレンズを移動させる。このように、メインミラー145が進出位置にダウンしてミラーユニットが進出位置にある場合に、位相差検出方式でレンズ群122の焦点状態が検出されて焦点調節が行われる。AFユニット142には、撮像素子132による撮像範囲内の複数の焦点調節位置のそれぞれにおいて焦点状態を調節すべく、複数の焦点調節位置にそれぞれ対応する複数の位置にそれぞれ光電変換素子が設けられる。
測光素子144は、被写体光を測光する測光部の一例である。測光素子144は、ペンタプリズム147に導かれた光束の一部の光束を受光する光電変換素子を有する。測光素子144が有する光電変換素子で検出された被写体の輝度情報を示す測光値は、カメラMPU140に出力される。カメラMPU140は、測光素子144から取得した測光値に基づき、各部を制御する。例えば、カメラMPU140は、当該測光値に基づきAE評価値を算出して、AE評価値に基づいて露出制御を行う。
メインミラー145が被写体光束から退避すると、サブミラー146はメインミラー145に連動して被写体光束から退避する。撮像素子132のレンズ群122側には、フォーカルプレーンシャッタ143が設けられる。フォーカルプレーンシャッタ143は、一例としてメカニカルシャッタである。ミラーユニットが退避位置にあり、フォーカルプレーンシャッタ143が開状態にある場合、レンズ群122を透過した被写体光束は、撮像素子132の受光面に入射する。フォーカルプレーンシャッタ143は、撮像素子132へ入射する被写体光の光路を開閉することで露光を制御する。
撮像素子132は、撮像部として機能する。撮像素子132は、レンズ群122を通過した被写体光束により被写体を撮像する。撮像素子132としては、例えばCMOSセンサ、CCDセンサ等の固体撮像素子を例示することができる。撮像素子132は、被写体光束を受光する複数の光電変換素子を有しており、複数の光電変換素子でそれぞれ生じた蓄積電荷量に応じたアナログ信号をアナログ処理部133へ出力する。アナログ処理部133は、撮像素子132から出力されたアナログ信号に対して、増幅処理、OBクランプ処理等のアナログ処理を施して、A/D変換器134へ出力する。A/D変換器134は、アナログ処理部133から出力されたアナログ信号を、画像データを表すデジタル信号に変換して出力する。撮像素子132、アナログ処理部133およびA/D変換器134は、カメラMPU140からの指示を受けた駆動部148により駆動される。
A/D変換器134からデジタル信号で出力したデジタル信号は、画像データとしてASIC135に入力される。ASIC135は、画像処理機能に関連する回路等を一つにまとめた集積回路である。ASIC135は、揮発性メモリの一例としてのRAM136の少なくとも一部のメモリ領域を、画像データを一時的に記憶するバッファ領域として使用して、RAM136に記憶された画像データに対して種々の画像処理を施す。ASIC135による画像処理としては、ノイズリダクション処理、欠陥画素補正、ホワイトバランス調節、色補間処理、色補正、ガンマ補正、輪郭強調処理、画像データの符号化処理等を例示することができる。
撮像素子132が連続して撮像した場合、順次に出力される画像データはバッファ領域に順次に記憶される。撮像素子132が連続して撮像することにより得られた複数の画像データは、連続する静止画の画像データ、または、動画を構成する動画構成画像の画像データとして、RAM136のバッファ領域に順次に記憶される。RAM136は、ASIC135が動画データを処理する場合にフレームを一時的に記憶するフレームメモリとしても機能する。
ASIC135における画像処理としては、記録用の画像データを生成する処理の他、表示用の画像データを生成する処理、自動焦点調節(AF)用の画像データ処理を例示できる。また、ASIC135における画像処理としては、AF処理用のコントラスト量を検出する処理等を含む。具体的には、ASIC135は、画像データからコントラスト量を検出して、カメラMPU140に供給する。例えば、ASIC135は、光軸方向の異なる位置にフォーカスレンズを位置させて撮像することにより得られた複数の画像データのそれぞれからコントラスト量を検出する。カメラMPU140は、検出されたコントラスト量に基づいて、レンズ群122の焦点状態を調節する。例えば、カメラMPU140は、コントラスト量を増大させるようフォーカスレンズの目標位置を決定して、レンズMPU123に、決定された目標位置に向けてフォーカスレンズの位置を制御させる。このように、メインミラー145がアップして退避位置にある場合に、コントラスト検出方式でレンズ群122の焦点状態が検出されて焦点調節が行われる。このように、カメラMPU140は、ASIC135およびレンズMPU123と協働して、レンズ群122の焦点調節を行う。
ASIC135は、A/D変換器134から出力された画像データを記録する場合、規格化された画像フォーマットの画像データに変換する。例えば、ASIC135は、静止画の画像データを、JPEG等の規格に準拠した符号化形式で符号化された静止画データを生成するための圧縮処理を行う。また、ASIC135は、複数のフレームを、QuickTime、H.264、MPEG2、Motion JPEG等の規格に準拠した符号化方式で符号化された動画データを生成するための圧縮処理を行う。
外部メモリ180は、記録媒体コネクタ151に装着される。外部メモリ180は、カメラ本体130に着脱可能である。外部メモリ180は、不揮発性の記録媒体であってよい。外部メモリ180は、フラッシュメモリ等の半導体メモリであってよい。ASIC135が生成した記録用の静止画データ、動画データ等の画像データは、記録媒体IF150の制御により、RAM136から外部メモリ180へ転送される。また、外部メモリ180に記録されている画像データは、記録媒体IF150を通じてRAM136へ転送されRAM136に記憶される。
ASIC135は、記録用の画像データの生成に並行して、表示用の画像データを生成する。例えば、ASIC135は、いわゆるライブビュー動作時に、表示部138に表示させる表示用の画像データを生成する。また、画像の再生時においては、ASIC135は、外部メモリ180から読み出された画像データから表示用の画像データを生成する。生成された表示用の画像データは、表示制御部137の制御に従ってアナログの信号に変換され、液晶ディスプレイ等の表示部138に表示される。また、撮像により得られた画像データに基づく画像表示と共に、当該画像データに基づく画像表示をすることなく、カメラ10の各種設定に関する様々なメニュー項目も、ASIC135および表示制御部137の制御により表示部138に表示される。
外部機器IF152は、外部機器コネクタ156を介して接続された外部機器との間の通信を担う。外部メモリ180に記録された画像データは、外部機器IF152を通じて外部機器へ転送される。また、外部機器IF152を通じて外部機器から通信により取得した画像データは、外部メモリ180に記録される。外部機器IF152は、USB通信により外部機器と通信してよい。外部機器としては、パーソナルコンピュータ、外部モニタ、プリンタ等を例示することができる。
操作入力部141は、ユーザ操作を受け付ける。操作入力部141は、電源スイッチの他、レリーズボタン、動画記録ボタン、撮影モードダイヤル、ライブビュースイッチ等の各種操作部材等を含む。また、操作入力部141は、タッチパネル等として表示部138と一体に実装された入力部材を含んでよい。
カメラMPU140は、操作入力部141が操作されたことを検知して、操作に応じた動作を実行する。例えば、カメラMPU140は、レリーズボタンが押し込まれた場合に、撮像動作を実行するようにカメラ10の各部を制御する。また、カメラMPU140は、タッチパネルとして実装された入力部材が操作された場合に、表示部138に表示させたメニュー項目および操作内容に応じた動作をするよう、カメラ10の各部を制御する。このように、カメラMPU140は、操作入力部141に対する操作に基づきユーザ指示を特定して、特定したユーザ指示に基づき動作を実行する。
カメラ10は、上記に説明した制御を含めて、カメラMPU140およびASIC135により直接的または間接的に制御される。カメラ10の動作に必要な定数、変数等のパラメータ、プログラム等は、システムメモリ139に格納される。システムメモリ139は、電気的に消去・記憶可能な不揮発性メモリであり、例えばフラッシュROM、EEPROM等により構成される。システムメモリ139は、パラメータ、プログラム等を、カメラ10の非動作時にも失われないように格納する。システムメモリ139に記憶されたパラメータ、プログラム等は、RAM136に展開され、カメラ10の制御に利用される。カメラ本体130内のASIC135、RAM136、システムメモリ139、表示制御部137およびカメラMPU140は、バス等の接続インタフェース149により相互に接続され、各種のデータをやりとりする。
カメラ本体130の各部、レンズユニット120の各部および外部メモリ180は、電源回路192を介して電源190から電力供給を受ける。電源190としては、カメラ本体130に対して着脱できるリチウムイオン電池等の二次電池、系統電源等を例示することができる。二次電池は電池の一例であり、電池とは、実質的に充電することができない一次電池を含む。カメラMPU140は、電源回路192を制御することにより、電源190からカメラ10の各部への電力供給を制御する。
図2は、ASIC135のブロック構成の一例を模式的に示す。ここでは、特に動画処理に関する機能ブロックを示す。ASIC135は、画像処理部210と、動画処理部280とを有する。動画処理部280は、画像処理部210、ノイズ生成部200、ノイズ付加処理部220、ノイズ制御部230、動き検出部250および符号化部260を有する。ノイズ生成部200は、第1ノイズ生成部201および第2ノイズ生成部202を含む。
画像処理部210は、画像データに画像処理を施す。例えば、画像処理部210による画像処理としては、ホワイトバランス調整、ガンマ補正、色補間処理、色変換処理等を例示することができる。色補間処理としては、1画素あたり1色の画像データから、1画素あたり3色の画像データを生成する処理等を例示することができる。色変換処理としては、RGB信号としての画像データを、YC信号としての画像データに変換する処理等を例示することができる。
撮像素子132により動画の撮像動作が行われた場合、画像処理部210には、動画に含まれる複数の動画構成画像の一例としてのフレームが順次に入力される。画像処理部210は、上述した画像処理を入力されたフレームに施して、RAM136に記憶する。ノイズ付加処理部220、動き検出部250および符号化部260は、RAM136をワークメモリとして用いて、フレームに対する各種の処理を行う。
ノイズ付加処理部220は、擬似ランダムノイズを複数のフレームにそれぞれ付加することで、画像データに対していわゆるディザリング処理を行う。ノイズ付加処理部220は、ノイズ生成部200が生成した疑似ランダムノイズを複数のフレームにそれぞれ付加する。符号化部260は、ノイズ付加処理部220によって疑似ランダムノイズが付加された複数のフレームを、フレーム間予測により符号化する。
動画に含まれるフレームには、符号化部260においてイントラ符号化されるIフレームと、符号化部260において前方向予測符号化により符号化されるPフレームと、双方向予測符号化により符号化されるBフレームとが含まれる。Pフレームは、時間的に前のIフレームまたはPフレームを参照して予測符号化され得る。Bフレームは、時間的に前のIフレーム、時間的に前のPフレーム、時間的に後のIフレームおよび時間的に後のPフレームを参照して予測符号化され得る。IフレームおよびPフレームは、PフレームまたはBフレームにより参照される。Bフレームは他のフレームから参照されない、すなわち非参照フレームである。本実施形態におけるカメラ10の説明においては、IフレームまたはPフレームを参照フレームと総称する場合がある。
ノイズ生成部200、ノイズ制御部230、ノイズ付加処理部220、動き検出部250および符号化部260の動作について説明する。
ノイズ生成部200は、動画に含まれる複数のフレームに付加される空間的な疑似ランダムノイズを生成する。疑似ランダムノイズは、ピクセル単位で変化する予め定められた長さのビット列であってよい。後述するように、疑似ランダムノイズは、疑似乱数に基づいて生成される。
ノイズ制御部230は、ノイズ生成部200における疑似ランダムノイズの発生を制御する。具体的には、ノイズ制御部230は、ノイズ生成部200が発生する疑似ランダムノイズを時間的に切り替える。疑似ランダムノイズの切り替えとは、あるパタンを有する擬似ランダムノイズから異なるパタンを有する擬似ランダムノイズに、擬似ランダムノイズを変更することである。ノイズ制御部230は、時間的に連続する複数のフレームを含むフレーム群毎に、擬似ランダムノイズを切替える。なお、フレーム群は、1つの参照フレームと参照フレームより時間的に前または後の1以上のBフレームとを含む。ノイズ付加処理部220は、ノイズ生成部200が生成した疑似ランダムノイズをフレーム群に含まれるフレーム毎に付加する。符号化部260は、ノイズ付加処理部220によって疑似ランダムノイズが付加された複数のフレームを符号化する。
ノイズ制御部230は、第1フレーム群毎に、第1ノイズ生成部201が生成する第1疑似ランダムノイズを切り替える。ノイズ付加処理部220は、第1ノイズ生成部201が生成した第1疑似ランダムノイズを、第1フレーム群が含む連続する複数のフレームのそれぞれに付加する。
第1フレーム群には、第1フレーム群が含む参照フレームより時間的に前の1以上のBフレームと、第1フレーム群が含む参照フレームより時間的に後の1以上のBフレームとが含まれてよい。第1フレーム群には、第1フレーム群が含む参照フレームより時間的に前の連続する全てのBフレームと、それぞれの第1フレーム群が含む参照フレームより時間的に後の連続する全てのBフレームとが含まれてよい。例えば、符号化部260がIフレームとPフレームとの間にBフレームを2個挿入する符号化を行う場合、それぞれの第1フレーム群は、IフレームまたはPフレームの直後のBフレームから始まる、連続する5個のフレームを含んでよい。
ノイズ制御部230は、第2フレーム群毎に、第2ノイズ生成部202が生成する第2疑似ランダムノイズを切り替える。なお、第2疑似ランダムノイズは、第1フレーム群とはフレームの組み合わせが異なる第2フレーム群に付加される。例えば、第2ノイズ生成部202は、2つの第1フレーム群にそれぞれ含まれる複数のフレームの一部を含む連続する複数のフレームに付加される空間的な第2疑似ランダムノイズを生成する。第2フレーム群は、何れの第1フレーム群にも含まれない参照フレームを含んでよい。そして、ノイズ付加処理部220は、第2ノイズ生成部202が生成した第2疑似ランダムノイズを、第2フレーム群が含む連続する複数のフレームのそれぞれに付加する。なお、第1フレーム群と第2フレーム群の両方に含まれるフレームには、第1ノイズ生成部201が生成した第1疑似ランダムノイズおよび第2ノイズ生成部202が生成した第2疑似ランダムノイズが付加されることになる。なお、ノイズ付加処理部220は、第1疑似ランダムノイズと第2擬似ランダムノイズをフレームに対して一律に付加するだけでなく、後述するように重みづけして付加することができる。なお、ノイズ制御部230は、第2疑似ランダムノイズを利用しないような制御とすることも可能である。その場合は、第1疑似ランダムノイズのみを第1フレーム群に含まれるフレームに付加する。
動き検出部250は、動画におけるフレーム間での被写体の動きを検出する。具体的には、動き検出部250は、フレーム間での被写体(画像)の動きを示す動きベクトルを検出する。例えば、動き検出部250は、16×16ピクセル等のブロック単位で、動きベクトルを検出する。ノイズ付加処理部220は、0の動きベクトルが検出されたブロックに、0以外の動きベクトルが検出されたブロックよりも大きい強度で擬似ランダムノイズを付加してよい。例えば、ノイズ付加処理部220は、0以外の動きベクトルが検出されたブロックに擬似ランダムノイズを付加せず、0の動きベクトルが検出されたブロックに擬似ランダムノイズを付加してよい。なお、ノイズの強度とはノイズの程度のことである。大きい強度のノイズをデータに付加すると、データに対するノイズの相対的な割合は高くなる。
ノイズ付加処理部220は、より大きい動きベクトルが検出されたブロックに、より小さい強度で疑似ランダムノイズを付加してよい。例えば、予め定められた基準値以上の大きさの動きベクトルが検出されたブロックに擬似ランダムノイズを付加せず、当該基準値より小さい大きさの動きベクトルが検出されたブロックに擬似ランダムノイズを付加してよい。
なお、ノイズ付加処理部220は、複数のフレームにおける少なくとも一部の画像領域に、擬似ランダムノイズを付加してよい。例えば、フレームから予め定められた値より高い空間周波数の空間周波数成分が検出された画像領域に、擬似ランダムノイズを付加してよい。ノイズ付加処理部220は、予め定められた値以下の空間周波数の空間周波数成分が検出された画像領域には、擬似ランダムノイズを付加しなくてよい。
符号化部260は、動き予測符号化によりPフレームおよびBフレームを符号化する。例えば、符号化部260は、動き検出部250が検出した動きベクトルに基づき生成される予測画像と、符号化対象の画像に含まれるブロックとの間の差分を符号化することにより、PフレームおよびBフレームを符号化する。なお、同一の擬似ランダムノイズが適用される参照フレームを参照するPフレームまたはBフレームのブロックのうち、0の動きベクトルが検出されたブロックについては、符号化部260における予測符号化によって擬似ランダムノイズがキャンセルされる。この場合、擬似ランダムノイズを付加することによって符号量は増加しない。
符号化部260は、イントラ符号化(画面内符号化)されたIフレームと、予測画像との差分が符号化されたPフレームおよびBフレームとを量子化する。また、符号化部260は、量子化されたフレームデータに対して、エントロピー符号化等により符号語を割り当てることで符号化する。符号化部260における符号化方式としては、MPEG、H.264等の、予測符号化を用いる種々の符号化方式を適用できる。符号化部260により符号化された動画データは、RAM136から外部メモリ180に転送されて、外部メモリ180に記録される。
図3は、ノイズ付加処理部220のブロック構成の一例を、第1ノイズ生成部201、第2ノイズ生成部202および重み決定部350とともに示す。ノイズ付加処理部220は、第1ノイズ生成部201の出力する第1疑似ランダムノイズと、第2ノイズ生成部202の出力する第2擬似ランダムノイズをフレームに対して重みづけして付加するものである。重みづけにより、第1疑似ランダムノイズと第2擬似ランダムノイズを付加する割合を制御することができる。また、重みづけの設定により、第1疑似ランダムノイズのみ、または第2擬似ランダムノイズのみを付加することもできる。
第1ノイズ生成部201は、線形帰還シフトレジスタによって生成される乱数列を、第1疑似ランダムノイズとして生成して、ノイズ付加処理部220に出力する。ノイズ付加処理部220は、第1ノイズ生成部201から出力される乱数列を、フレームにおける対応する画素列に加算する。例えば、第1ノイズ生成部201は、N×M画素の画像データに適用する擬似ランダムノイズとして、N×M個の乱数値を含む乱数列を生成する。乱数列に含まれる複数の乱数は、それぞれ特定の画素に対応する。ノイズ付加処理部220は、乱数列に含まれるそれぞれの乱数を、対応する画素に加算する。このように、各フレームには、N×M画素周期で循環する、周期性を持った乱数列が擬似ランダムノイズとして適用される。なお、例えば、擬似ランダムノイズを1フレーム周期で循環させることにより、上述したように0の動きベクトルが検出されたブロックについて、符号化部260における予測符号化によって擬似ランダムノイズがキャンセルされることになる。
第2ノイズ生成部202は、第1ノイズ生成部201と同様の構成を有する。そのため、第2ノイズ生成部202の詳細な説明を省略する。第2ノイズ生成部202は、線形帰還シフトレジスタによって生成される乱数列を、第2疑似ランダムノイズとして生成して、ノイズ付加処理部220に出力する。ノイズ付加処理部220は、第2ノイズ生成部202から出力される生成される乱数列を、フレームにおける対応する画素列に加算する。ノイズ付加処理部220は、第1疑似ランダムノイズを付加する場合と同様に、第2疑似ランダムノイズを画素に加算する。
ノイズ付加処理部220の各部の動作を説明する。ノイズ付加処理部220は、第1乗算部310と、第2乗算部320と、減算部330と、ノイズ付加部340と、重み決定部350とを含む。重み決定部350は、第1疑似ランダムノイズおよび第2疑似ランダムノイズが付加される複数のフレームのそれぞれについて、第1疑似ランダムノイズおよび第2疑似ランダムノイズを付加する重みを決定する。重み決定部350は、第1フレーム群にそれぞれ含まれる複数のフレームに第1疑似ランダムノイズを付加する重みを、第1フレーム群に含まれる参照フレームに近いほど、大きい値に決定する。なお、重み決定部350は、重みをフレーム毎にランダムに決定してもよい。
重み決定部350が決定した重みを示す重み値は、第1乗算部310および減算部330に出力される。第1乗算部310は、第1ノイズ生成部201から出力された第1疑似ランダムノイズに、重み決定部350から出力された重み値を乗じて、ノイズ付加部340に出力する。
減算部330は、重み決定部350から出力された重み値を1から減じることにより、第2疑似ランダムノイズに対する重みを示す重み値を算出する。減算部330が算出した重み値は、第2乗算部320に出力される。第2乗算部320は、第2ノイズ生成部202から出力された第2疑似ランダムノイズに、減算部330から出力された重み値を乗じて、ノイズ付加部340に出力する。ノイズ付加部340は、RAM136から入力されるフレームの画素値に対して疑似ランダムノイズを加算する加算機を含む。具体的には、ノイズ付加部340は、フレームの画素値に、第1乗算部310から出力された重み付けされた第1疑似ランダムノイズと、第2乗算部320から出力された重み付けされた第2疑似ランダムノイズとを加算する。このように、ノイズ付加部340は、第1疑似ランダムノイズおよび第2疑似ランダムノイズを、重み決定部350が決定した重みに従って重み付けして複数のフレームに付加する。
図4は、各フレームに付加される擬似ランダムノイズの組み合わせの一例を模式的に示す。ここでは、Iフレーム401から始まり、参照フレーム間に2つのBフレームを含むフレーム列を示す。すなわち、Iフレーム401と最初のPフレーム404との間には、Bフレームが2つ含まれる。また、PフレームとPフレームの間には、Bフレームが2つ含まれる。
ノイズ制御部230は、Iフレーム401より時間的に2個前のBフレームから始まる5個の連続するフレームに対して、第1疑似ランダムノイズN11を第1ノイズ生成部201に生成させる。具体的には、ノイズ制御部230は、Iフレーム401より2個前のBフレームと、Iフレーム401と、Iフレーム401に続く2個のBフレーム402およびBフレーム403とを含むフレーム群(第1フレーム群)の処理タイミングにわたって、疑似ランダムノイズN11を第1ノイズ生成部201に生成させる。ノイズ付加処理部220は、当該フレーム群に含まれる各フレームに対して、第1ノイズ生成部201が生成した疑似ランダムノイズN11を重み決定部350が決定した重みに従って重み付けして付加する。このように、Iフレーム401を表示順の中心に含む5個の連続するフレームに対して、疑似ランダムノイズN11が付加される。
ノイズ制御部230は、Bフレーム402から始まる連続する5つのフレーム(第2フレーム群)に対して、第2疑似ランダムノイズN21を第2ノイズ生成部202に生成させる。具体的には、ノイズ制御部230は、Bフレーム402、Bフレーム403、Pフレーム404、Bフレーム405およびBフレーム406のフレーム群の処理タイミングにわたって、第2疑似ランダムノイズN21を第2ノイズ生成部202に出力させる。ノイズ付加処理部220は、当該フレーム群に含まれる各フレームに対して、第2ノイズ生成部202が生成した第2疑似ランダムノイズN21を重み決定部350が決定した重みに従って重み付けして付加する。このように、Pフレーム404を表示順の中心に含む5個の連続するフレームに対して、第2疑似ランダムノイズN21が付加される。
ノイズ制御部230は、Bフレーム405から始まる連続する5つのフレーム(第1フレーム群)に対して、付加される第1疑似ランダムノイズを切り替える。具体的には、ノイズ制御部230は、Bフレーム405の処理タイミングにおいて、第1ノイズ生成部201に生成させるノイズを、第1疑似ランダムノイズN11から第1疑似ランダムノイズN12に切り替えて、Bフレーム405、Bフレーム406、Pフレーム407、Bフレーム408およびBフレーム409のフレーム群の処理タイミングにわたって、第1疑似ランダムノイズN12を第1ノイズ生成部201に出力させる。ノイズ付加処理部220は、当該フレーム群に含まれる各フレームに対して、第1ノイズ生成部201が生成した第1疑似ランダムノイズN12を重み決定部350が決定した重みに従って重み付けして付加する。このように、Pフレーム407を表示順の中心に含む5個の連続するフレームに対して、第1疑似ランダムノイズN12が付加される。
ノイズ制御部230は、Bフレーム408から始まる連続する5つのフレーム(第2フレーム群)に対して、付加される第2疑似ランダムノイズを切り替える。具体的には、ノイズ制御部230は、Bフレーム408の処理タイミングにおいて、第2ノイズ生成部202に生成させるノイズを、第2疑似ランダムノイズN21から第2疑似ランダムノイズN22に切り替えて、Bフレーム408、Bフレーム409、Pフレーム410、Bフレーム411およびBフレーム412のフレーム群の処理タイミングにわたって、第2疑似ランダムノイズN22を第2ノイズ生成部202に出力させる。ノイズ付加処理部220は、当該フレーム群に含まれる各フレームに対して、第2ノイズ生成部202が生成した第2疑似ランダムノイズN22を重み決定部350が決定した重みに従って重み付けして付加する。このように、Pフレーム410を表示順の中心に含む5個の連続するフレームに対して、第2疑似ランダムノイズN22が付加される。
ノイズ制御部230は、Bフレーム411から始まる5つのフレームに対して、付加される第1疑似ランダムノイズを切り替える。具体的には、ノイズ制御部230は、第1疑似ランダムノイズN12から第2疑似ランダムノイズN13に切り替える。第1疑似ランダムノイズN13に係る処理は、第1疑似ランダムノイズN12に係る処理と同様であるので、説明を省略する。
ノイズ制御部230は、Pフレーム413の次のBフレーム414から始まる5つのフレームに対して、付加される第2疑似ランダムノイズを切り替える。具体的には、ノイズ制御部230は、第2疑似ランダムノイズN22から第2疑似ランダムノイズN23に切り替える。第2疑似ランダムノイズN23に係る処理は、第2疑似ランダムノイズN22に係る処理と同様であるので、説明を省略する。
動画処理部280により行われる上述したノイズ付加処理によれば、第1疑似ランダムノイズN1および第2疑似ランダムノイズN2は、フレーム6個分の周期毎に切り替えられる。切り替えタイミングに対応するフレームから始まる連続する5個のフレーム(フレーム群)には、同一の疑似ランダムノイズが付加される。同一の擬似ランダムノイズが付加されたフレームを参照して動き予測符号化(フレーム間符号化)することにより擬似ランダムノイズの影響がキャンセルでき符号量の増加を抑制できる。
例えばBフレーム405およびBフレーム406は、Pフレーム404を含む第2フレーム群に属しており、Pフレーム404には、Bフレーム405およびBフレーム406と同じ疑似ランダムノイズN21が付加されている。符号化部260においてBフレーム405およびBフレーム406がそれぞれPフレーム404を参照してフレーム間符号化されると、疑似ランダムノイズがキャンセルされ得る。また、Bフレーム405およびBフレーム406は、Pフレーム407を含む第1フレーム群に属しており、Pフレーム407には、Bフレーム405およびBフレーム406と同じ疑似ランダムノイズN12が付加されている。符号化部260においてBフレーム405およびBフレーム406がそれぞれPフレーム407を参照してフレーム間符号化されると、疑似ランダムノイズがキャンセルされ得る。このように、Bフレーム405およびBフレーム406は前後何れの参照フレームを参照してフレーム間符号化しても符号量の増加を抑制できる。
第1疑似ランダムノイズおよび第2疑似ランダムノイズは、参照フレームを1つ含むフレーム6個分の周期毎に切り替えられる。そのため、付加した疑似ランダムノイズが人の目に固定パタンとして認識されることを抑制できる。
特に、第2疑似ランダムノイズは、第1疑似ランダムノイズが付加されない参照フレームを含む連続する5個のフレームに付加される。そのため、例えばIフレーム401に付加される疑似ランダムノイズは、Pフレーム404に付加される疑似ランダムノイズとは異なる。このように、動画処理部280によるノイズ付加処理によれば、符号化処理において互いに参照関係にあるフレームには、異なる疑似ランダムノイズが付加される。そのため、フレーム間符号化を行うことによって、参照フレームに付加された特定の疑似ランダムノイズ成分が、参照フレームを通じて後続するフレームに長期間にわたって残留することを抑制できる。したがって、付加した疑似ランダムノイズが人の目に固定パタンとして認識されることを抑制できる。このように、動画処理部280によれば、ディザリング処理によって画質を高める場合に、ディザリング処理のために付加した疑似ランダムノイズが固定パタンとして人の目に見えてしまうことを抑制しつつ、符号量の増加を抑制できる。
図5は、各フレームに疑似ランダムノイズを重み付けして付加する処理の一例を模式的に示す。重み決定部350は、第1疑似ランダムノイズN1に対する重み値w1と、第2疑似ランダムノイズN2に対する重み値w2とを決定する。したがって、例えばBフレームN402には、w1×N11+w2×N21が疑似ランダムノイズとして付加される。
一例として、重み決定部350は、1つのフレーム群において、参照フレームに対して最大の重み値wを決定し、他のフレームに対しては、参照フレームに近いほど大きい重み値wを決定してよい。例えば、重み決定部350は、Bフレーム405〜Bフレーム409までのフレーム群に対する第1疑似ランダムノイズN1の重み値w1として、Bフレーム405に対してw1=1/4、Bフレーム406に対してw1=3/4、Pフレーム407に対してw1=1、Bフレーム408に対してw1=3/4、Bフレーム409に対してw1=1/4に決定する。この場合、Bフレーム405〜Bフレーム409に対する第2疑似ランダムノイズN2の重み値w2は、Bフレーム405に対してw2=3/4、Bフレーム406に対してw2=1/4、Bフレーム408に対してw2=3/4、Bフレーム409に対してw2=3/4に決定される。これにより、第2疑似ランダムノイズが付加される1つのフレーム群においても、参照フレームに対して最大の重み値w2が決定され、他のフレームに対しては、参照フレームに近いほど重み値w2が大きくなる。
このように、重み決定部350は、表示順において参照フレームに近づくにつれて増大し、表示順において参照フレームから遠ざかるにつれて減少する重み値を決定する。なお、重み決定部350は、重み値w1をランダムに決定してもよい。例えば、重み決定部350は、疑似乱数に基づいて重み値w1を決定してよい。この場合も、重み値w2は、w2=1−w1によって決定される。
このように、1つのフレーム群内において重み値を時間的に変化させることによって、フレーム群内の各フレームに付加される擬似ランダムノイズは異なるので、疑似ランダムノイズが人の目に固定パタンとして認識されることを抑制できる。また、1つのフレーム群内においては、重みが変化するものの、疑似ランダムノイズ自体は固定されているので、符号量が著しく増大することも抑制できる。
図4および図5の例では、参照フレーム間に2個のBフレームを含める符号化を行う場合、すなわち参照フレーム間隔が3フレームの場合において、6フレーム周期で疑似ランダムノイズを切り替える場合を取り上げて説明した。参照フレーム間に3個のBフレームを含める符号化を行う場合、すなわち参照フレーム間隔が4フレームの場合は、8フレーム周期で疑似ランダムノイズを切り替えてよい。このように、参照フレーム間隔の2倍の間隔で、疑似ランダムノイズを切り替えてよい。いずれの場合においても、第1疑似ランダムノイズまたは第2疑似ランダムノイズの更新タイミングは、参照フレーム間隔毎に行われる。
なお、疑似ランダムノイズを付加するか否かが、ユーザ設定によって設定可能であってよい。例えば、ディザリングを行うか否かが、ユーザ設定によって設定可能であってよい。また、疑似ランダムノイズの重み値を固定させるか否かが、ユーザ設定によって設定可能であってよい。また、疑似ランダムノイズの重み値をフレーム群内の各フレームでどのように変化させるかは、ユーザ設定によって設定可能であってよい。例えば、重みをランダムに変化させるか否かが、ユーザ設定によって設定可能であってよい。また、疑似ランダムノイズの付加量を動きに応じて変化させるか否かが、ユーザ設定によって設定可能であってよい。また、参照フレーム間のBフレームの数が、ユーザ設定によって設定可能であってよい。
図6は、カメラ10の起動から終了までの動作の一例を示す。本フローは、電源スイッチがOFF位置からON位置に切り替えられた場合に、開始される。本フローは、カメラMPU140が主体となってカメラ10の各部を制御することにより実行される。
ステップS602において、カメラMPU140は、カメラ10の初期設定を開始する。例えば、カメラMPU140は、カメラ10を制御するための各種パラメータ等を、システムメモリ139からRAM136に展開する。カメラMPU140は、例えば展開された各種のシステムパラメータに基づき、カメラ10の初期設定を行う。例えば、撮影条件に関するシステムパラメータに基づき、デフォルトの撮像条件を設定する。
続いて、ステップS604において、カメラMPU140は、初期設定で設定された内容を表示部138等に表示させる。例えば、カメラMPU140は、決定したデフォルトの撮像条件等の情報を、アイコン表示等の種々の形式で表示部138に表示させる。
続いて、ステップS606において、発生したイベントを特定する。ここでは、イベントとして、設定ボタンの操作により生じる設定イベントと、レリーズボタンや動画記録ボタンが押し込まれることにより生じる撮影イベントと、再生ボタンが押し込まれることにより生じる再生イベントと、電源オフイベントとを取り上げる。電源オフイベントは、電源スイッチがOFF位置に切り換えられた場合や、予め定められた期間にわたって操作入力部141の操作がなかった場合に生じる。
設定イベントが生じた場合、設定モードの動作を開始して、ユーザ操作に応じた設定処理を行う(ステップS610)。設定処理としては、撮像条件を設定する処理、動画の記録条件を設定する処理、動画記録時に図1から図5に関連して説明したディザリング処理に関する設定処理、符号化に関する設定処理等を例示することができる。ディザリング処理に関する設定処理としては、ディザリング処理を施すか否かを設定する処理、疑似ランダムノイズの重み値を固定するか否かを設定する処理、疑似ランダムノイズの重み値をランダムに変更するか否かを設定する処理、動きに応じて疑似ランダムノイズの付加量を制御することを設定する処理を含む。符号化に関する設定処理としては、参照フレーム間のBフレームの数を設定する処理を含む。設定処理において設定が変更された場合、変更された設定に応じてシステムパラメータが変更される。設定モードの動作は、レリーズボタンの押し込み操作等の予め定められた操作を検出した場合に終了する。
ステップS606において、撮影イベントが生じたと判断された場合、撮影動作を行う(ステップS612)。ステップS612の処理には、静止画や動画の撮像動作、静止画や動画の画像データに対する画像処理、画像処理された画像データを外部メモリ180に記録する処理が含まれる。
ステップS606において、再生イベントが生じたと判断された場合、再生モードの動作を開始して、ユーザ操作に応じた再生動作を行う(ステップS614)。再生処理としては、外部メモリ180に記録されている画像データに基づきサムネイルを表示する処理、ユーザにより選択された画像データを再生する処理等を例示することができる。再生モードの動作は、レリーズボタンの押し込み操作等の予め定められた操作を検出した場合に、終了する。
ステップS610、ステップS612、ステップS614の処理が終了した場合、ステップS606に処理を移行する。ステップS606において、電源オフイベントが生じたと判断された場合、カメラ10の動作を停止するための予め定められた終了処理を行い(ステップS622)、本フローを終了する。
図7は、動画撮影時における処理の一例を示す。本フローは、図6のステップS612の一部として実行される。本フローは、動画記録ボタンが押し込まれた場合に、実行される。
ステップS700において、カメラMPU140は、ノイズ付加の動作条件を設定するパラメータを取得して、ノイズ付加の動作設定を行う。例えば、ディザリング処理を施す旨のパラメータ値が設定されている場合、参照フレーム間のBフレーム数を示すパラメータ値に基づいて、第1疑似ランダムノイズおよび第2疑似ランダムノイズの切り替えタイミングを設定する。また、重み値を固定する旨のパラメータ値が設定されている場合、w1=0.5、w2=0.5に固定する。一方、重み値を固定させない旨のパラメータ値が設定されている場合、重み値の変更方法を示すパラメータ値に基づいて、重み値の変化パタンを決定し、ランダムな重み値を決定するための乱数を初期化する。また、疑似ランダムノイズの付加量を動きに応じて制御することを示すパラメータ値が設定されている場合、動き量の判断と疑似ランダムノイズの付加量の調整を行うための条件を設定する。
なお、ノイズ付加の動作条件は、カメラ10が自動で設定してよい。例えば、動画処理部280は、動作モードに応じてノイズ付加の動作条件を設定してよい。例えば、撮像モードが風景モードに設定されている場合、ディザリング処理を施す旨が設定され、他の動作モードに設定されている場合に、ディザリング処理を施さない旨が設定されていてよい。なお、撮像モードは、ユーザ設定により設定されてよいし、シーン判定などによりカメラ10により自動で判定されてもよい。
続いて、ステップS702において、カメラMPU140は、フレームの読み出しを開始する。以後、フレームが撮影される毎に、ASIC135にフレームデータが取り込まれて、画像処理部210において処理され、SDRAM136に記憶される。そして、符号化処理対象のフレームとしてSDRAM136から逐次に読み出されて、符号化に供される。
ステップS704において、疑似ランダムノイズを付加する設定であるか否かを判断する。疑似ランダムノイズを付加する旨が設定されている場合、ステップS706に処理を進める。疑似ランダムノイズを付加しない旨が設定されている場合、ステップS716に処理を進める。
ステップS706において、ノイズ制御部230は、処理対象のフレームが、第1疑似ランダムノイズの切り替え周期に対応するタイミングのフレームであるか否かを判断する。切り替え周期に対応するタイミングのフレームである場合、ノイズ制御部230は、適用する疑似ランダムノイズを切り替えて(ステップS708)、ステップS710に処理を進める。切り替え周期に対応するタイミングのフレームでない場合は、ステップS710に処理を進める。
ステップS710において、ノイズ制御部230は、処理対象のフレームが、第2疑似ランダムノイズの切り替え周期に対応するタイミングのフレームであるか否かを判断する。切り替え周期に対応するタイミングのフレームである場合、ノイズ制御部230は、適用する第2疑似ランダムノイズを切り替えて(ステップS712)、ステップS714に処理を進める。切り替え周期に対応するタイミングのフレームでない場合は、ステップS714に処理を進める。
ステップS714において、ノイズ付加処理部220は、ノイズ生成部200で生成された疑似ランダムノイズを付加する。例えば、ノイズ付加処理部220は、第1疑似ランダムノイズの付加対象のフレームに、第1ノイズ生成部201が発生した第1疑似ランダムノイズを付加する。また、ノイズ付加処理部220は、第2疑似ランダムノイズの付加対象のフレームに、第2ノイズ生成部202が発生した第2疑似ランダムノイズを付加する。第1疑似ランダムノイズおよび第2疑似ランダムノイズの付加対象のフレームには、第1疑似ランダムノイズおよび第2疑似ランダムノイズが、設定された重み値に従って重み付けされて、フレームに付加される。
なお、動きに応じて疑似ランダムノイズの付加量を制御する旨が設定されている場合、ステップS714においては、動きに応じて疑似ランダムノイズを付加するか否かがブロック毎に決定される。例えば、処理対象のフレームがIフレームまたはPフレームの場合は、全ブロックに擬似ランダムノイズとして追加する一方、処理対象のフレームがBフレームの場合は、予め定められた値より小さい動きが検出されたブロックにだけ、擬似ランダムノイズを追加してよい。
続いて、ステップS716において、符号化を行う。具体的には、符号化処理に必要なフレームデータの組がRAM136に存在する場合、符号化部260において符号化処理を行う。
続いて、ステップS718において、動画撮影の処理を終了するか否かを判断する。例えば、動画撮影ボタンが再度押し込まれ、かつ、符号化対象の全てのフレームが符号化された場合に、動画撮像の処理を終了すると判断し、処理を終了する。動画撮影の処理を終了しない旨を判断した場合、ステップS706に処理を進める。
図8は、疑似ランダムノイズの他の付加例を模式的に示す。図4および図5に関連して説明した付加例によると、第1疑似ランダムノイズまたは第2疑似ランダムノイズは、フレームの全領域に付加される。その他、第1疑似ランダムノイズまたは第2疑似ランダムノイズを、フレーム内の互いに異なる部分領域に付加される。
図8の例では、各疑似ランダムノイズは1行おきに付加される。行とは、画素列であってもブロック列であってもよい。なお、図8の例では、図示の都合上、疑似ランダムノイズN1および第2疑似ランダムノイズN2を4行分についてのみ模式的に示している。
図示されるように、ノイズ付加処理部220は、Bフレーム402の第1行目および第3行目の画素列には、第1疑似ランダムノイズN11を付加し、第2行目および第4行目の画素列には、第2疑似ランダムノイズN21を付加する。第4行目以降も同様に、第1疑似ランダムノイズN1および第2疑似ランダムノイズN2を1行おきに交互に付加する。すなわち、ノイズ付加処理部220は、奇数行目の画素列には、第1疑似ランダムノイズN11を付加し、偶数行目の画素列には、第2疑似ランダムノイズN21を付加する。
なお、第1疑似ランダムノイズN1と第2疑似ランダムノイズN2とを1行おきに交互に付加する以外に、2行おきに付加する等、複数行おきに交互に付加してもよい。例えば、nピクセル×mピクセルのブロック毎に第1疑似ランダムノイズN1と第2疑似ランダムノイズN2とを付加してよい。ここで、nは1以上の値であり、mは1以上の値であってよい。
上記の説明では、各フレームに対して第1疑似ランダムノイズ及び第2疑似ランダムノイズを均等の割合で付加する場合を説明したが、異なる割合で付加しても良い。第1疑似ランダムノイズおよび第2疑似ランダムノイズがそれぞれ付加される部分領域の面積の合計値が、重み値に応じて制御されるようにしてよい。例えば、第1疑似ランダムノイズの重み値w1が第2疑似ランダムノイズの重み値w2の2倍である場合、第1疑似ランダムノイズが付加される部分領域の面積の合計値が、第2疑似ランダムノイズが付加される部分領域の面積の合計値の2倍になるように、第1疑似ランダムノイズを付加する部分領域が選択されてよい。例えば、図8のように行単位で疑似ランダムノイズを付加する場合、第1疑似ランダムノイズを2行付加する毎に、第2疑似ランダムノイズを1行付加するようにしてもよい。
上記の説明では、2種類の疑似ランダムノイズを付加する場合を説明した。更に多くの種類の疑似ランダムノイズを付加してもよい。例えば、第1疑似ランダムノイズと同じ切り替えタイミングで、第1疑似ランダムノイズおよび第2疑似ランダムノイズのいずれとも異なる第3疑似ランダムノイズを付加してよい。また、第2疑似ランダムノイズと同じ切り替えタイミングで、第1疑似ランダムノイズ、第2疑似ランダムノイズおよび第3疑似ランダムノイズのいずれとも異なる第4疑似ランダムノイズを付加してよい。
上記の説明では、動画を構成する画像であるピクチャの一例として、いわゆるフレーム画像を取り上げてカメラ10の動作を説明した。しかし、ピクチャとは、いわゆるフィールド画像であってよい。
上記の説明において、カメラMPU140の動作として説明した処理は、カメラMPU140がプログラムに従ってカメラ10が有する各ハードウェアを制御することにより実現される。同様に、上記の説明においてASIC135により実現される処理は、プロセッサによって実現することができる。すなわち、本実施形態のカメラ10に関連して説明した処理は、プロセッサがプログラムに従って動作して各ハードウェアを制御することにより、プロセッサ、メモリ等を含む各ハードウェアとプログラムとが協働して動作することにより実現することができる。すなわち、当該処理を、いわゆるコンピュータ装置によって実現することができる。コンピュータ装置は、上述した処理の実行を制御するプログラムをロードして、読み込んだプログラムに従って動作して、当該処理を実行してよい。コンピュータ装置は、当該プログラムを記憶しているコンピュータ読取可能な記録媒体から当該プログラムをロードすることができる。
また、本実施形態において、撮像装置の一例として、レンズユニット120およびカメラ本体130を備えるカメラ10を取り上げた。しかし、撮像装置とは、レンズユニット120を備えないカメラ本体130を含む概念である。なお、撮像装置とは、一眼レフレックスカメラ等のレンズ交換式カメラであってよいし、レンズ非交換式カメラであってもよい。撮像装置は、ビデオカメラであってよい。撮像装置としては、撮像機能付きの携帯電話機等、撮像機能付きの携帯情報端末等、撮像機能を有する種々の電子機器であってよい。また、撮像装置に限らず、動画処理部280が行う処理と同様の処理を行う画像処理装置を適用の対象とすることができる。例えば、パーソナルコンピュータ等の画像編集装置やテレビジョン等の表示装置等の種々の電子機器を適用の対象とすることができる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。