以下、本発明の好適な実施形態について説明する。
<第1の実施形態>
本実施形態では、フィルム風のノイズ効果として粒状感を与えるために粒状ノイズであるグレインノイズを画像に付加することが可能な画像処理装置を示す。
図1は第1の実施形態における画像処理装置としてのデジタルビデオカメラのブロック図である。撮像素子100は結像した入射光を光電変換する。光電変換された信号はカメラ信号処理部101へ入力される。カメラ信号処理部101では光電変換された信号に対し各種の画像処理を行い映像信号へ変換し出力する。出力された映像信号はエンコーダ部111で所定の記録フォーマットで符号化され、記録メディア112へ記録される。
次にカメラ信号処理部101での信号処理について説明する。カメラ信号処理部101へ入力した信号は、まず画像処理部104で各種信号処理が行われる。各種信号処理とは、通常の撮影の際に画像データに対して行われる、ホワイトバランス処理、ガンマ処理、色空間変換処理、カラーゲイン処理、カラーバランス処理などである。処理後の信号は撮像画像として第1のフレームメモリ108へ格納される。
2次元109はグレインノイズとして2次元ノイズデータ301を格納しているメモリである。ノイズデータ301はメモリ109から読み出される。切り出し処理部106はメモリデータ301から所定の位置と大きさのノイズデータ302を切り出す。切り出しされたノイズデータ302は第2のフレームメモリ110へ格納される。第2のフレームメモリ110から読み出されたノイズデータ302は、拡大処理部107で撮像画像との合成に必要な大きさのノイズデータ402にリサイズ処理される。
合成処理部105は所定のタイミングで第1のフレームメモリ108に格納されている撮像画像401と拡大処理部107で処理されたノイズデータ402を読み出し、合成を行い、合成画像を出力する。合成処理部105は撮像画像401とノイズデータ402の合成比率を変更することが可能である。合成比率を変えることで付加するグレインノイズの強度を変えることもできる。グレインノイズの生成方法、付加方法については後に詳述する。
信号発生器103は撮像素子100の駆動タイミングを制御する信号を発生する信号発生器(Signal Generator:SG)である。発生した信号は撮像素子100に供給される。
システムコントローラ102は、撮像素子100とカメラ信号処理部101で構成されるカメラブロックの制御を行う。撮像素子100に対しては、信号の蓄積期間や読み出しタイミングの指示を行う。画像処理部104に対しては、各種信号処理で画質設定に必要なパラメータの設定を行う。合成処理部105に対しては、合成対象となるフレームメモリの指定、合成比率の指定および合成タイミングの指示を行う。切り出し処理部106に対しては、グレインノイズを生成するために、メモリ109から読み出しを行うタイミングの指示、切り出し位置と大きさの指示、切り出したデータを第2のフレームメモリ110へ書き出すタイミングの指示を行う。拡大処理部107に対しては、第2のフレームメモリ110から読み出しを行うタイミングの指示、リサイズ時の大きさの指示を行う。信号発生器103に対しては、撮像素子100を駆動する駆動タイミングの指示を行う。
ここで、図3、図4を用いて、本実施形態の特徴的な処理である画像データにフィルム風の粒状効果を与えるグレインノイズを付加する際に用いるグレインノイズの生成方法、付加方法について詳述する。特許文献1のように粒状パターンデータを複数配置する方法では、動画像の更新周期、つまりフレームレートに同期してパターンデータの配置を行うには、フレームレートの周期以内で毎回異なる配置を行う高速な処理システムが必要となる。また、複数のグレインノイズパターンから選択してこれを付加する方法では、グレインノイズを格納するメモリ領域が複数必要となる。
そこで、本実施形態では、あらかじめグレインノイズを2次元データとして持っておき、任意の位置で入力される画像のフレーム全体に対応するノイズデータの切り出しを行い、切り出したノイズデータを動画像に合成する。この時、切り出しのタイミングを動画像のフレームレートに同期させ、切り出しの位置を複数フレームで毎回変化させることで、空間的と時間的にランダムなグレインノイズを動画像に合成することが可能となる。
図3は2次元のノイズデータ(グレインノイズデータ301)とそこから切り出す切り出しノイズデータ302の関係を示した図である。図4は切り出しノイズデータ302と撮像画像の合成の概念を示した図である。グレインノイズデータ301は、本実施形態では最小粒状単位を1画素として、ガウス分布に従った乱数が画素値として1画素ごとに記録されている画素群である。ここで、乱数はガウス分布に従ったものに限らず、一様乱数や指数乱数など多くの乱数の種類が考えられ、乱数の種類は限定されない。ノイズデータとしての実際のデータの形態は、画像データ、もしくはデータ列などさまざまな形態が考えられ、それらの形態のいずれにも限定されない。また、最小粒状単位についても1画素に限定されないが、当然小さければ小さいほどランダム性があがる。
グレインノイズデータ301に対して、処理時刻やカメラの姿勢情報や位置情報などのカメラ内で取得できる動的な値を利用して切り出し開始位置X,Yをランダムに決定する。決定された開始位置から所定サイズのデータを切り出しノイズデータ302としてグレインノイズデータ301から切り出し、図4のように撮像画像と合成することで、撮像画像にグレインノイズを付加する。
ここで、切り出しの開始位置をランダムに毎回変化させる際、前回の切り出しの位置と今回の切り出しの位置が近い場合や水平あるいは垂直方向にずれているだけの場合は、合成結果として2次元のパターンが移動しているように見えてしまう。
そこで、本実施形態では、前回切り出し位置から今回の切り出し位置への移動量が、所定の範囲内にならないように今回の切り出し位置を設定する。
図7を用い、本実施例におけるシステムコントローラ102が切り出し処理部106に対し指示するノイズデータ301の切り出し制御について説明する。この制御は、撮影画像に対してフィルム風のノイズ効果を付加する撮影モードのときに行われる。あるいは、記録メディア212等のメモリに記憶された動画像を連続的に読み出して事後処理として行われる。
ステップS701では、メモリ109に格納されているノイズデータから上述したように動的な値を利用して今回どの位置から切り出すかの候補値を指示する。切り出したデータをグレインノイズとして合成するため、毎回ランダムに決定し、前回の切り出し位置とは異なる位置とする。指示する今回の切り出し位置が決定するとステップS702へ進む。
ステップS702では、信号発生器103に指示する駆動タイミング信号に基づき現在の撮像素子100のフレームレート情報を取得する。情報を取得するとステップS703へ進む。
ステップS703では、今回指示されている切り出し位置と一時メモリ(不図示)に保存されている前回の切り出し位置が、どの程度離れた位置にあるかを判定する判定基準値を算出する。フレームレートに同期して合成するグレインノイズの更新を行うため、フレームレートが小さくなるほど、つまり撮像画像の更新周期が長くなるほど、グレインノイズの更新周期も長くなり、見え続ける。そのため、前回の切り出し位置と今回の切り出し位置が近い位置にあると、合成されたグレインノイズが移動しているように見える。そこで、ステップS702で取得したフレームレート情報に応じて、今回指示されている切り出し位置と前回の切り出し位置がどの程度近い位置にあるかを判定する基準(所定値)を変更する。例えば、60fpsのフレームレート(第1のフレームレート)では前回位置を中心として周辺10画素(第1の所定値)以内に今回の位置があった場合に、近い位置であると判定する。一方、30fps(第2のフレームレート)では周辺20画素(第2の所定値)以内に今回の位置があった場合を所定値以下の近い位置であると判定するように判定基準を決定する。判定基準を決定するとステップS704へ進む。
ステップS704では、グレインノイズデータ上の前回のノイズデータの切り出し位置からステップS701で算出した今回の切り出し位置がどの程度変化したかを示す、切り出し位置間の距離を算出する。算出するとステップS705へ進む。
ステップS705では、ステップS704で算出した前回切り出し位置から今回指示されている切り出し位置への距離とステップS703で算出した判定基準との大小を比較する。距離が判定基準より大きい、つまり切り出し位置が前回から今回で大きく変化していると判定した場合は、ステップS707へ進む。一方、距離が判定基準より小さい、つまり切り出し位置が前回から今回で小さく変化していると判定した場合は、ステップS706へ進む。
ステップS706では、ステップS701で算出した今回指示されている切り出し位置の位置情報に対して補正を行う。切り出し位置の位置情報の補正方法については後述する。切り出し位置の位置情報の補正を行うとステップS707へ進む。
ステップS707では、ステップS706で補正した切り出し位置の位置情報を次回の切り出し位置の制御で利用するために、一時メモリに保存し、ステップS708へ進む。
ステップS708では、ステップS706で補正した切り出し位置を切り出し処理部106へ指示し、処理を終了する。
次にステップS706における切り出し位置の補正処理について説明する。図8、図9、図10は、メモリ103に格納されているノイズデータ301から切り出し位置の補正を行う場合の補正条件と補正位置を説明する図である。ノイズデータ301の幅と高さがそれぞれW画素、H画素であるとする(W≧4、H≧4)。また、ノイズデータの切り出しは画素単位で行い、左上を切り出し位置の原点(0,0)とする。また、切り出す切り出しノイズデータ302の大きさを幅(W/2)画素、高さ(H/2)画素とする。
例えば、図3に示すように、今回の切り出し位置が(X,Y)であった場合に、上記大きさの切り出しノイズデータを切り出す切り出し開始位置(X,Y)は(0≦X<W/2,0≦Y<Y/2)の範囲の領域を指定し得る(図8)。さらに、この切り出し開始位置の指定し得る領域を図8の(a)、(b)、(c)および(d)に示す4つの領域、領域1、2、3および4に分ける。領域1は切り出し位置を(0≦X<W/4,0≦Y<H/4)に含む領域であり、領域2は切り出し位置を(W/4≦X<W/2,0≦Y<H/4)に含む領域である。さらに、領域3が(0≦X<W/4,H/4≦Y<H/2)、領域4が(W/4≦X<W/2,H/4≦Y<H/2)の各範囲で切り出し位置を含む領域である。
切り出し位置を補正する場合、前回の切り出し位置で切り出したノイズデータと今回指示されている切り出し位置とで、重複するデータの面積が少なく、さらにその位置が離れている方が合成時のランダム性が向上するため好ましい。そこで、補正制御では今回の切り出し位置が上記領域1〜4のどこにあるかを判定し、その箇所に応じて対角の領域である領域上に切り出し位置を補正する。この時、図9の表に示すように切り出し位置(X,Y)を補正切り出し位置(X’,Y’)に補正する。
例えば、今回の切り出し位置が領域1にあった場合、補正後の位置が領域4となるようにすると(図10 1003)、領域2、領域3に移動した場合(図10 1001、1002)に比べ、切り出されたノイズデータが重複する面積が少なくなる。その結果、ノイズデータの移動が目立ちにくくなり、グレインノイズの時間的なランダム性が向上する。
以上のように、第1の実施形態では、2次元ノイズデータから、任意の範囲を撮像画像の更新に合わせて毎回ランダムに切り出し、これを撮像画像と合成する。これにより、動画像であっても粒状ノイズが付加された画像を生成することが可能となる。また、ランダムに決めた切り出し位置が前回と所定範囲内の近い位置にあったとしても、その位置を所定範囲外に補正することで、ノイズのランダム性を確保することを可能としている。本実施形態では、特許文献に比べ、すでに読み込まれているデータから所定大きさのデータを切り出すだけでノイズデータの生成が可能であり、生成に要する時間を短縮することが可能である。
さらに、ノイズデータの今回の切り出し位置が前回の切り出し位置と比較して、位置の変化が少なく、近い位置である場合には、今回の切り出し位置を変更することで、切り出したノイズデータが移動して見えることを防ぎ、ノイズのランダム性が向上する。
本実施形態では、グレインノイズデータ301(幅W、高さH)に対して切り出しノイズデータの大きさを幅(W/2)画素、高さ(H/2)画素とした。しかしグレインノイズデータに対する切り出しノイズデータの大きさとしてはこれに限らず、グレインノイズデータの大きさを超えるものでなければ本実施形態に比べて大きくても小さくてもよい。ただし、切り出しノイズデータの大きさが大きくなるとそれだけランダム性が損なわれやすく、小さいと必要な切り出しノイズデータの大きさに対してグレインノイズデータ301を大きく持ちすぎているため、メモリの容量を食ってしまう。そこで本実施形態では、ノイズデータ301と切り出しノイズデータの大きさの比を4:1程度にし、さらに開始位置が近くならないよう制御する本実施形態の処理を入れることで、ノイズのランダム性の確保とメモリ容量の節約の両方をより好適に実現している。
また、本実施形態では、切り出し開始位置のとり得る領域を4つに分割したが、分割数、分割面積の割り振りとしてはこれに限定されない。
また、本実施形態では、今回と前回の切り出し位置間の距離が所定値以下であるかどうかを判定し、所定値以下であった場合に、上記のような切り出し開始位置の領域を移動する補正を行った。しかし、補正方法についてはこれに限らず、単に今回と前回の切り出し位置間の距離が所定値より大きくなる距離以上に座標移動をさせるようにしてもよい。すなわち、60fpsのフレームレートで所定値が周辺10画素であった場合、周辺11画素以上になるように位置(座標)を変更してもよい。また、そもそも初めから今回の開始位置の指定の際に、周辺10画素以内の座標を候補からはずしてランダムに指定させてもよい。
また、本実施形態では、今回と前回の切り出し位置間の距離が所定値以下であるかどうかを判定し、所定値以下にあった場合に、上記のような切り出し開始位置の領域を移動する補正を行った。しかし、切り出し開始位置の判定方法についてはこれに限らず、今回と前回の切り出し位置の属する領域を判定し(図8の領域1、2、3、4いずれの領域に属しているか)、同じ領域に属していた場合、異なる領域に移動させるように補正してもよい。このとき領域の移動を対角の領域にすると本実施形態のように前回と今回の切り出し領域の重なる領域がより小さくなり好ましい。さらに、本判定方法と今回と前回の切り出し位置間の距離が所定値以下であるか否かを判定する方法とを組み合わせて判定を行うと領域の境界近傍に開始位置があった場合にも有効な判定が可能となる。
<第2の実施形態>
本実施形態では、フィルム調の効果としてフィルムに傷がついた効果を与えるために縦線状ノイズであるスクラッチ傷を画像に付加することが可能な画像処理装置を示す。図5、図6は、本実施形態におけるスクラッチ傷のノイズデータの切り出しと合成について説明する。図5は複数パターンのスクラッチ傷で構成されているノイズデータとそこから切り出すノイズデータの関係を示した図である。スクラッチ傷ノイズデータ501は水平方向の1画素を最小単位とし、垂直方向にスクラッチ傷が記憶されており、その強度は乱数で決定されている。また垂直方向は複数画素を最小単位として強度が変化しており、これにより、垂直方向にスクラッチ傷の濃さや太さが変化し、傷の「かすれ」を表現する。乱数はガウス分布をはじめとして様々なものが考えられるが、その種類には依らない。
図6は切り出したスクラッチ傷と撮像画像の合成の概念を示した図である。本実施形態では、図5のようなスクラッチ傷ノイズデータ501から切り出しノイズデータ502を切り出し、所定の画像サイズにリサイズして貼り付けノイズデータ602を生成する。そして前回までの貼り付けノイズデータ602の貼り付け位置とその位置での貼り付けの継続時間に応じて今回の貼り付けノイズデータ602の貼り付け位置を決定し、貼り付ける。
図2は第2の実施形態としての画像処理装置としてのデジタルビデオカメラのブロック図である。撮像素子200は結像した入射光を光電変換する。光電変換された信号はカメラ信号処理部201へ入力される。カメラ信号処理部201では光電変換された信号に対し各種の画像処理を行い映像信号へ変換し出力する。出力された映像信号はエンコーダ部211で所定の記録フォーマットで符号化され、記録メディア212へ記録される。
次にカメラ信号処理部201での信号処理について説明する。カメラ信号処理部201へ入力した信号はまず、画像処理部204で第1の実施形態と同様に各種信号処理が行われる。処理後の信号は撮像画像としてフレームメモリ209へ格納される。
210は複数のパターンから構成されているスクラッチ傷のノイズデータ501を格納しているメモリである。ノイズデータ501はメモリ210から読み出される。切り出し処理部206はノイズデータ501上の指定された位置と大きさのスクラッチ傷のノイズデータ502を切り出す。切り出したノイズデータ502は拡大処理部207で撮像画像601との合成に必要な大きさのノイズデータ602にリサイズ処理される。貼り付け処理部208は切り出し位置に依らない任意の位置でノイズデータ602を合成するための貼り付け位置の指定を行う。
合成処理部205は所定のタイミングでフレームメモリ209に格納されている撮像画像601と貼り付け処理部208で処理されたノイズデータ602を読み出し、合成を行い、合成画像を出力する。
信号発生器(SG)203は撮像素子200の駆動タイミングを制御する信号を発生する信号発生器である。発生した信号は撮像素子200とシステムコントローラ202に供給される。
システムコントローラ202は、撮像素子200とカメラ信号処理部201で構成されるカメラブロックの制御を行う。撮像素子200に対しては、信号の蓄積期間や読み出しタイミングの指示を行う。画像処理部204に対しては、各種信号処理で画質設定に必要なパラメータの設定を行う。合成処理部205に対しては、合成対象となるフレームメモリの指定、合成比率の指定および合成タイミングの指示を行う。切り出し処理部206に対しては、スクラッチ傷を生成するために、メモリ210から読み出しを行うタイミングの指示、切り出し位置と大きさの指示を行う。拡大処理部207に対しては、リサイズ時の大きさの指示を行う。貼り付け処理部208に対しては、合成時の貼り付け位置の指示を行う。信号発生器203に対しては、撮像素子200を駆動する駆動タイミングの指示を行う。
次に図11、図12を用い、本実施例におけるシステムコントローラ202が貼り付け処理部208に対し指示する貼り付けノイズデータ602の貼り付け制御について説明する。この制御は、撮影画像に対してスクラッチ傷が付加されているかのような画像処理を施す撮影モードのときに行われる。あるいは、記録メディア212等のメモリに記憶された動画像を連続的に読み出して事後処理として行われる。本処理は、垂直同期信号に連動して開始され、同期信号によって一連の処理が繰り返されることになる。
ステップS1101では、一時メモリ(不図示)に保存されているスクラッチ傷が撮像画像に重畳している時間を計測するカウンタである重畳カウンタ(第1の検出手段)の値が、重畳の目標時間(第1の所定時間)に達しているか否かを判定する。目標時間に達していなければステップS1108へ進む。一方、達している場合はステップS1102へ進む。ここで、重畳の目標時間とは、撮影画像に対して同一のスクラッチ傷をどれくらいの時間続けて表示してよいかを決める時間であり、各種条件によって定めてよいし、ユーザが決めてもよい。
ステップS1102では、目標時間に達した重畳カウンタを初期状態にクリアし、ステップS1103へ進む。
ステップS1103では、メモリ210に格納されているノイズデータから取り出したスクラッチ傷を今回重畳するか否かの有無を取得する。例えば、スクラッチ傷をランダムに重畳するために乱数発生手段から無作為に得た値を有無情報としてもよい。有無情報を取得するとステップS1104へ進む。
ステップS1104では、ステップS1103で得た有無情報が重畳有りか否かの判定を行う。判定結果は一時メモリに保存される。有無情報は二値で定義されてもよいし、例えば、乱数発生手段から得た値であれば、その値が所定のしきい値より大きければ重畳有り、逆にしきい値以下であれば重畳無しと決定する。時間変化で見えると、ステップS1104の処理が実行されることで、図12に示すように所定フレーム毎に重畳有りと重畳無しの期間がランダムに発生する。本実施形態では、1フレーム毎に重畳の有無を決定するものとする。判定の結果、重畳有りと判定した場合は、ステップS1105へ進む。一方で重畳無しと判定した場合はステップS1121へ進む。
ステップS1105では、メモリ210に格納されているスクラッチ傷ノイズデータ501から、切り出しノイズデータ502の切り出し開始位置、切り出しの幅、高さを決定する。これらが変わることで、重畳するスクラッチ傷のパターン(長さ、強度、本数など)が変わる。そのため毎回異なる開始位置から切り出しを行うように、乱数発生手段を用いて決定してもよい。切り出し位置を算出するとステップS1106へ進む。
ステップS1106では、ステップS1105で決定した切り出し位置を切り出し処理部206へ指示し、ステップS1107へ進む。
ステップS1107では、重畳の目標時間を決定して一時メモリへ保存した後、ステップS1108へ進む。
ステップS1108では、重畳カウンタの加算(インクリメント)を行い、ステップS1109へ進む。
ステップS1109では、スクラッチ傷の重畳無しの状態から有りの状態と判定されてからの経過時間を計測するために重畳継続カウンタ(第2の検出手段)の加算を行い、ステップS1110へ進む。
ステップS1110では、切り出し処理部206で切り出されたノイズデータを今回撮像された画像上のどの位置に合成して貼り付けるかの貼り付け位置を決定する。貼り付け位置は合成のタイミングによってランダムな貼り付け位置とする。例えば乱数発生手段を用い、貼り付け位置を取得すると、合成の都度、画面上の異なる位置にスクラッチ傷が重畳され、ランダムノイズに見える。貼り付け位置を取得するとステップS1111へ進む。
ステップS1111では、信号発生器203に指示する駆動タイミング信号に基づき現在の撮像素子200のフレームレート情報を取得する。情報を取得するとステップS1112へ進む。
ステップS1112では、今回の貼り付け位置と前回の貼り付け位置がどの程度離れた位置にあるかを判定する判定基準値(所定値)を算出する。フレームレートに同期して、合成するスクラッチ傷の更新を行うため、フレームレートが小さくなるほどつまり撮像画像の更新周期が長くなるほど、スクラッチ傷の更新周期も長くなり、見え続ける。前回の貼り付け位置と今回の貼り付け位置の距離が大きいと、合成されたスクラッチ傷が移動しているように見えてしまう。そこで、ステップS1111で取得したフレームレート情報に応じて、今回と前回の貼り付け位置がどの程度遠い位置にあるかを判定する基準を変更する。例えば、60fpsのフレームレート(第1のフレームレート)では前回位置を中心として水平前後10画素(第1の所定値)より遠い位置に今回の位置があった場合に、所定値より大きい、遠い位置であると判定する。一方、30fps(第2のフレームレート)では水平前後20画素(第2の所定値)より遠い位置に今回の位置があった場合を所定値より大きい、遠い位置であると判定するように判定基準を変更する。判定基準を決定するとステップS1113へ進む。
ステップS1113では、前回のノイズデータの貼り付け位置からステップS1110で算出した今回の貼り付け位置がどの程度移動したかの距離を算出する。算出するとステップS1114へ進む。
ステップS1114では、ステップS1113で算出した貼り付け位置間の距離とステップS1113で算出した判定基準との大小を比較する。距離が判定基準(所定値)より大きい、つまり貼り付け位置が前回から今回で大きく変化していると判定した場合は、ステップS1116へ進む。一方、距離が判定基準より小さい、つまり貼り付け位置が前回から今回で小さく変化していると判定した場合は、ステップS1115へ進む。
ステップS1115では、あらかじめ規定されている重畳継続カウンタ上限値(第2の所定時間)を大きくなるように変更する。変更するとステップS1117へ進む。
ステップS1116では、あらかじめ規定されている重畳継続カウンタ上限値を小さくなるように変更する。変更するとステップS1117へ進む。
ステップS1117では、重畳継続カウンタ上限値と一時メモリに保存されている重畳継続カウンタの値を比較する。重畳継続カウンタが上限に達した場合はステップS1122へ進む。一方、上限に達していない場合はステップS1118へ進む。
ステップS1118では、決定した今回の貼り付け位置を一時メモリに保存し、次回の制御に利用する。保存を行うとステップS1119へ進む。
ステップS1119では、今回の貼り付け位置を貼り付け処理部208に対して指示する。指示を行うと、ステップS1120へ進む。
ステップS1120では、合成処理部205に対して貼り付け指示されたスクラッチ傷と撮像画像の重畳を有効とする指示を行う。重畳を有効にすると、制御を終了する。
ステップS1121では、一時メモリに保存されている重畳継続カウンタの値を初期状態にクリアし、保存を行う。保存が終了するとステップS1122へ進む。
ステップS1122では、合成処理部205に対して貼り付け指示されたスクラッチ傷と撮像画像の重畳の無効を指示する。無効にする方法は、合成処理そのものを行わず撮像画像のみを出力する方法でもよいし、合成処理は行うが、撮像画像に対するスクラッチ傷の合成比率を下げて、撮像画像のみが出力される方法でもよく、その実現手段はどのようなものであってもよい。重畳を無効にすると、制御を終了する。
第2の実施形態では、あらかじめ記憶手段に記憶しておいた複数のパターンのスクラッチ傷で構成されるノイズデータから、任意の位置を撮像画像の更新に合わせて毎回ランダムに切り出し、これを撮像画像と任意の位置で合成する。これにより、時間的と空間的にランダムに発生し、移動するスクラッチ傷を動画像に付加することが可能となる。
さらに、スクラッチ傷の付加が一定期間以上継続した場合に、ノイズデータの今回の貼り付け位置と前回の貼り付け位置とを比較する。このとき、位置の移動が大きく遠い位置へのスクラッチ傷の付加を制限することで、実際のスクラッチ傷の発生に近い動作を実現することが可能となる。
また、上述の第1および第2の実施形態では、グレインノイズの切り出し位置の変更制御およびスクラッチ傷の付加の無効制御は、動画像のフレームレートに依存してグレインノイズの変更条件およびスクラッチ傷の無効条件を変更した。しかし、ノイズデータの合成比率が小さい場合は、合成後の画像においてノイズ成分が視認されにくい。そのため、グレインノイズの切り出し制御において、今回の切り出し位置が前回の位置の近くであったとしても、パターンが移動しているように認識されにくい。
そこで、合成における撮像画像とノイズデータの合成比率の設定をユーザーによる操作あるいは自動で変更できる場合は、ノイズデータの合成比率に応じた条件の変更が可能であることは言うまでもない。すなわち、撮像画像に対するノイズデータの合成比率が小さいほど、所定値は大きくすることができる。
また、上述の第1および第2の実施形態では、デジタルビデオカメラの動画像撮影時動作でグレインノイズおよびスクラッチ傷を付加する場合について述べた。しかし、本発明は動画像撮影に限られるものではなく、静止画像撮影において連写撮影で、各撮影時に異なるパターンのグレインノイズを付加する場合に用いることも可能である。また動画像あるいは静止画像の再生において、フィルム撮影の効果を付加する場合に利用することが可能であることも言うまでもない。
<第3の実施形態>
本実施形態では、フィルム風の効果としてフィルムを映写機に掛けて再生した場合に発生する映像の上下ぶれを画像に与えることが可能な画像処理装置を示す。図14、図15は本実施形態における上下ぶれを実現するためのフレームメモリからの画像切り出しと、切り出しによるノイズ(画像情報がないデータ)を隠蔽する処理について説明している。
図14は撮像素子で撮像した撮像画像が格納されているフレームメモリ内のデータの構造とフレームメモリから指定された位置で切り出しを行った場合に表示される画像を示した図である。フレームメモリ内のデータは逐次更新されている。撮像画像の前後の領域には別の用途のデータが格納されているが、撮像画像データとしてはノイズデータ(画像情報がないデータ)と見なせる。格納されている撮像画像は所定の切り出し開始位置で、かつ所定の切り出し範囲で切り出しを行うと、表示画像1400として出力される。切り出し開始位置を乱数で決定することで、異なる位置から切り出しを行うことができ、上下ぶれの発生した撮像画像を表示画像1401、1402のように出力することが可能である。切り出し開始位置は画像の垂直方向の1画素分つまり1ライン分を最小単位として決定される。
また、切り出し開始位置を決定する乱数は、ガウス分布をはじめとして様々なものが考えられるが、その種類には依らない。
また、上下ぶれ量すなわち、ぶれがない状態を基準位置として、基準位置から切り出し開始位置までのオフセット量に上限を設けることで、一定量以上のぶれが発生しないようにしている。
また、異なる周期で決定した二つの上下ぶれ量の和をオフセット量とし、オフセット量の分だけ画像の読み出し開始位置を左上端からずらし、切り出し開始位置とする。こうすることで、フィルムの送出動作で発生する上下ぶれとフィルムの巻き取り動作で発生する上下ぶれのように異なる種類のぶれの組み合わせとして構成される上下ぶれを表現することが可能である。
図15は、上下ぶれの効果を付加した際に発生するノイズデータの隠蔽方法を示した図である。上下ぶれの無い撮像画像1500に対し、任意の上下ぶれが発生した撮像画像1501、1505には画面下部にノイズデータが表示される。隠蔽方法として例えば、マスクを付加する方法、あるいは拡大する方法が考えられる。
マスクを付加する方法では、撮像画像1504に対し、上下ぶれの最大ぶれ幅(最大のオフセット量)以上となるマスク画像1503を画面下部に重畳しノイズデータを隠す。この時、画面上部にも同じ大きさのマスク画像を重畳することで、いわゆるレターボックス状態のアスペクト比の撮像画像1502を表示することができる。
一方、拡大する方法では、上下ぶれの最大ぶれ幅を含まない領域1506に対し、領域1506の高さが画面高に等しくなるように、かつ画面のアスペクト比を維持して拡大を行うことで、表示画像1507として表示することができる。
図13は第3の実施形態としての画像処理装置としてのデジタルビデオカメラのブロック図である。撮像素子1300は結像した入射光を光電変換する。光電変換された信号はカメラ信号処理部1301へ入力される。カメラ信号処理部1301では光電変換された信号に対し各種の画像処理を行い映像信号へ変換し出力する。出力された映像信号はエンコーダ部1311で所定の記録フォーマットで符号化され、記録メディア1312へ記録される。
次にカメラ信号処理部1301での信号処理について説明する。カメラ信号処理部1301へ入力した信号はまず、画像処理部1304で第1の実施形態と同様に各種信号処理が行われる。処理後の信号は撮像画像として第1のフレームメモリ1305へ格納される。
切り出し処理部1306は上下ぶれの効果を与えるために第1のフレームメモリ1305から予め定められたオフセット量の上限値で任意の位置の切り出しを行う。
1308は切り出し処理により発生するノイズデータを隠すためのマスク画像を格納している第2のフレームメモリである。マスク処理部1307は上下ぶれの最大幅以上となるマスク画像を生成し、第2のフレームメモリ1308へ格納する。
合成処理部1309は所定のタイミングで第1のフレームメモリ1305に格納されている撮像画像1504と、マスク処理部1307で生成され第2のフレームメモリ1308に格納されているマスク画像1304とを読み出し、合成を行い、合成画像を出力する。
信号発生器(SG)1303は撮像素子1300の駆動タイミングを制御する信号を発生する信号発生器である。発生した信号は撮像素子1300とシステムコントローラ1302に供給される。
システムコントローラ1302は、撮像素子1300とカメラ信号処理部1301で構成されるカメラブロックの制御を行う。撮像素子1300に対しては、信号の蓄積期間や読み出しタイミングの指示を行う。画像処理部1304に対しては、各種信号処理で画質設定に必要なパラメータの設定を行う。合成処理部1309に対しては、合成対象となるフレームメモリの指定、合成タイミングの指示を行う。切り出し処理部1306に対しては、第1のフレームメモリ1305から読み出しを行うタイミングの指示、切り出し位置の指示を行う。マスク処理部1307に対しては、重畳するマスクの大きさ、色の指示、動作開始および解除指示を行う。信号発生器1303に対しては、撮像素子1300を駆動する駆動タイミングの指示を行う。
次に図16、図17を用い、本実施例におけるシステムコントローラ1302が切り出し処理部1306、マスク処理部1307に対し指示し、各部が動作する撮像画像の切り出し処理およびマスク処理のフローチャートについて説明する。この制御は、撮影画像に対して上下ぶれが付加されているかのような画像処理を施す撮影モードのときに行われる。あるいは、記録メディア1312等のメモリに記憶された動画像を連続的に読み出して事後処理として行われる。本処理は、垂直同期信号に連動して開始され、同期信号によって一連の処理が繰り返されることになる。本実施形態では、上下ぶれを付加するか否かをユーザによる手動あるいはシーン判別等により自動で切り換えることができる。上下ぶれを付加する場合、ノイズデータが見えてしまわないように、マスク→上下ぶれの順に処理をかけ、上下ぶれの付加をやめる場合には逆に上下ぶれ停止→マスク解除の順にかけるようにする。
ステップS1601では、上下ぶれの停止要求の制御を行う。撮影モード情報等、動作状態を取得し、上下ぶれが必要な撮影モードから不要な撮影モードに遷移したことを検出した場合は停止要求を発行し、ステップS1609へ進む。そうでない場合はステップS1602へ進む。
ステップS1602では、上下ぶれの発生要求の制御を行う。撮影モード情報等、動作状態を取得し、上下ぶれが不要な撮影モードから必要な撮影モードに遷移したことを検出した場合は発生要求を発行し、ステップS1603へ進む。そうでない場合はステップS1612へ進む。
ステップS1603では、上下ぶれの動作状態を「発生」に設定する。状態が「発生」の場合、上下ぶれの制御が可能となる。設定が完了するとステップS1604へ進む。
ステップS1604では、上下に付加するマスクの動作状態を判定する。判定の結果「付加」である場合は、ステップS1605へ進み、「付加」でなく「解除」である場合はステップS1607へ進む。
ステップS1605では、上下ぶれのぶれ量を決定する。ぶれ量はランダムに決定される値であり、例えば乱数発生手段から得た値に対し、
X=Xmax×(r/R)
の式で決定してもよい。ここでXはぶれ量、Xmaxは最大ぶれ量、rは乱数発生手段から得た値、Rは乱数発生手段が出力する最大値である。
また、上述したように複数の異なる種類のぶれを組み合わせることも可能である。例えば第1のぶれとして、短周期で変化するがぶれ量の少ないぶれと、第2のぶれとして、長周期で変化するが、ぶれ量の多いぶれの組み合わせを考える。第1のぶれの時間変化は図17の1701に、同様に第2のぶれの時間変化は図17の1702に示される。この時、2つのぶれの組み合わせである第1と第2のぶれ量の時間変化の和は図17の1703に示される。この時、ぶれ量Xは乱数発生手段から得た値に対し、
X=Xmax1 ×(r1/R1)+Xmax2 ×(r2/R2)
の式で決定してもよい。ここでXmax1は第1のぶれ量変化における最大ぶれ量、Xmax2は第2のぶれ量変化における最大ぶれ量、r1、r2は第1、第2のぶれ量として乱数発生手段から得た値、R1、R2は乱数発生手段が出力する最大値である。
ステップS1605でぶれ量を決定するとステップS1606へ進む。
ステップS1606では、ステップS1605で決定したぶれ量から、フレームメモリ内に格納されている撮像画像の切り出し開始位置を算出する。算出が終わると制御を終了する。
ステップS1607では、上下ぶれ発生時に見える画面下部のノイズデータを隠蔽するマスク画像の付加をマスク処理部1307に実行させる。この際、マスク画像の大きさを示す大きさ情報をマスク処理部1307に指示する。マスク画像の付加が終わるとステップS1608へ進む。
ステップS1608では、マスクの動作状態を「付加」に設定し、制御を終了する。
ステップS1609では、上下ぶれの動作状態を判定する。状態が「停止」の場合、ステップS1610へ進み、状態が「発生」の場合はステップS1612へ進む。
ステップS1610では、上下ぶれ発生時に見える画面下部のノイズデータを隠蔽するマスク画像の付加の解除をマスク処理部1307に対し指示する。指示する情報はマスク画像の重畳を無効とする重畳無効情報である。指示が終わるとステップS1611へ進む。
ステップS1611では、マスクの動作状態を「解除」に設定し、制御を終了する。
ステップS1612では、上下ぶれの動作状態を「停止」に設定する。状態が「停止」の場合、上下ぶれの制御が無効となる。設定が完了するとステップS1613へ進む。
ステップS1613では、上下ぶれのない値をぶれ量として設定する。ぶれ量を決定するとステップS1614へ進む。
ステップS1614では、ステップS1613で決定したぶれ量から、フレームメモリ内に格納されている撮像画像の切り出し開始位置を算出する。この時切り出し開始位置は基準の位置となる。算出が終わると制御を終了する。
上記のステップを状況別に見ていくと、(1)上下ぶれの付加が開始するときにはぶれ停止要求はなく、ぶれ発生要求があるので、S1601、S1602、S1603、S1604と進む。S1604では上下マスク状態は初期状態で上下マスク状態=解除となっているので、S1607に進み、まず上下マスクが付加され、S1608で上下マスク状態=付加の状態に変えて、一巡目を終了する。次のフレームでは、同様にS1604まで進み、上下マスク状態=付加になっているので、次にS1605、S1606の処理で上下ぶれを発生させる。以降、(2)上下ぶれの付加が継続されているときは、S1601〜S1606の処理が各フレームで繰り返される。また、(3)上下ぶれの付加を終了するときには、ぶれ停止要求があり、ぶれ発生要求はなしとし、S1601からS1609に進む。1巡目は上下ぶれ状態=発生の状態なのでS1612へ進み、上下ぶれ=停止にするとともにS1613、S1614でまず上下ぶれを停止する。次のフレームでは、S1601、S1609と進み、上下ぶれ状態=停止の状態なのでS1610に進み、上下マスクの解除を実行し、上下マスク状態=解除にして2巡目を終了し、ここまでで上下ぶれの付加を終了させる。(4)上下ぶれの付加を行わない状態を継続する場合には、ぶれ停止要求もぶれ発生要求もないので、S1601からS1602、そしてS1612と進む。S1613、S1614はぶれ量のない切り出し位置での切り出し、すなわち上下ぶれのない状態を作るステップなので、このループを継続することで上下ぶれのない状態を継続する。
以上のように、第3の実施形態では、ランダムに決められた切り出し開始位置で画像の切り出しを行った画像を表示することで、フィルム風の効果としてフィルムを映写機に掛けて再生した場合に発生する映像の上下ぶれを画像に与えることを可能にしている。
<第4の実施形態>
本実施形態では、フィルム風の効果としてフィルムを映写機に掛けて再生した場合に発生する映像の明るさのムラ(以下、明滅と称する)を画像に与えることが可能な画像処理装置を示す。
図19は本実施形態における明滅を実現するための輝度信号の補正処理について説明している。本実施形態では、最終的に表示、記録される画像の明滅を実現するために、輝度信号の入出力特性を変化させる補正を行う方法を用いる。補正処理では入力された撮像画像に対し、逐次異なる入出力特性で出力画像の輝度成分を変化させる。本実施形態では、輝度信号の変化の最小単位は出力画像の信号の最小分解能であり、時間の最小単位は撮像画像の更新周期となる。
基準となる特性1901から特性1902、1903、1904の実線で示される特性の順に補正した場合、撮像画像は特性1901に対応する画像1905に対して画像1906、1907、1908となる。この時、画像1908>画像1905>画像1907>画像1906の順で明るい。
明滅をランダムに発生させるため、例えば入出力特性を構成するパラメータデータを複数用意しておき、その中からどのパラメータデータを利用するかを乱数で決定することが考えられる。このパラメータデータ決定の乱数は、ガウス分布をはじめとして様々なものが考えられるが、その種類には依らない。
図18(a)は第4の実施形態としての画像処理装置としてのデジタルビデオカメラのブロック図である。撮像素子1800は結像した入射光を光電変換する。光電変換された信号はカメラ信号処理部1801へ入力される。カメラ信号処理部1801では光電変換された信号に対し各種の画像処理を行い映像信号へ変換し出力する。出力された映像信号はエンコーダ部1808で所定の記録フォーマットで符号化され、記録メディア1809へ記録される。
次にカメラ信号処理部1801での信号処理について説明する。カメラ信号処理部1801へ入力された信号はまず、画像処理部1804で輝度成分、色成分、黒成分の各信号成分に対し、各種信号処理が行われる。処理後の信号は撮像画像としてフレームメモリ1805へ格納される。
特性データ格納部1807は映像信号の輝度の入出力特性を決定するパラメータデータを複数格納しているメモリである。例えば特性が1901〜1904のように一次関数で表される場合、パラメータデータとしては直線の傾き、切片がある。また特性1904のように、入力が大きい場合に出力をクリップするポイントやクリップされる値もパラメータデータである。決定されたパラメータデータは補正処理部1806へ送られる。
補正処理部1806は特性データ格納部1807から送られたパラメータデータに応じた輝度の入出力特性を決定し、その特性に応じてフレームメモリ1805に格納されている撮像画像の補正を行い、補正画像を出力する。また補正は画像処理部1804で映像信号が輝度信号(Y信号)、色差信号(U、V信号)の後に行われる処理であるため、補正により出力特性が変わったとしても、その結果が画像処理部1804で行われる輝度成分の処理に影響を与えることはない。
信号発生器(SG)1803は撮像素子1800の駆動タイミングを制御する信号を発生する信号発生器である。発生した信号は撮像素子1800とシステムコントローラ1802に供給される。
システムコントローラ1802は、撮像素子1800とカメラ信号処理部1801で構成されるカメラブロックの制御を行う。撮像素子1800に対しては、信号の蓄積期間や読み出しタイミングの指示を行う。画像処理部1804に対しては、各種信号処理で画質設定に必要なパラメータの設定を行う。特性データ格納部1807に対しては、入出力特性のパラメータデータの指定を行う。補正処理部1806に対しては、フレームメモリ1805から読み出しを行うタイミングの指示、補正処理の有効、無効の指示を行う。信号発生器1803に対しては、撮像素子1800を駆動する駆動タイミングの指示を行う。
次に図20を用い、本実施例におけるシステムコントローラ1802が補正処理部1806および特性データ格納部1807に対し指示し、各部が動作する補正処理および特性データの決定処理のフローチャートについて説明する。この制御は、撮影画像に対して明滅が付加されているかのような画像処理を施す撮影モードのときに行われる。あるいは、記録メディア1809等のメモリに記憶された動画像を連続的に読み出して事後処理として行われる。本処理は、垂直同期信号に連動して開始され、同期信号によって一連の処理が繰り返されることになる。
ステップS2001では、まず現状の撮影モード情報等から明滅制御の動作状態を取得し、その結果を判定する。取得した動作状態から明滅の「発生」が必要であると判定した場合はステップS2002へ進み、動作状態から明滅の「停止」が必要であると判定した場合はステップS2004へ進む。
ステップS2002では、明滅を発生させるために特性データ格納部1807に格納されている入出力特性を変えるパラメータデータを決定する。この時、明滅の量に変化を与えるために、複数あるパラメータデータのうち、いずれか1つのデータを選択する。例えば、明滅の量をランダムに発生させるために乱数発生手段から無作為に得た値に基づいてパラメータデータを決定する。パラメータデータを決定するとステップS2003へ進む。
ステップS2003では、ステップS2002で決定したパラメータデータを用いて補正処理部1806が補正処理を行い、処理を終了する。
ステップS2004では、明滅を停止するために、特性データ格納部1807に格納されている入出力特性のうち基準となるパラメータデータを選択する。これにより、明滅停止時は常に同じ特性となる。選択が完了したら、ステップS2003へ進む。
以上のように、第4の実施形態では、画像に対して通常の画像処理に加えて輝度信号の入出力特性を変化させる補正を行う。これにより、フィルム風の効果としてフィルムを映写機に掛けて再生した場合に発生する映像の明るさのムラを画像に与えることを可能にしている。
また、図14(b)は明滅の効果を与える補正処理を、通常の撮影の際にも行われる画像処理部1804内のガンマ処理においてまとめてかける場合の実施形態を示したブロック図である。ホワイトバランス処理部1810でホワイトバランス処理が行われ、出力された段階では赤(R)、緑(G)、青(B)信号の状態で、この信号を受けて補正処理部1806は、輝度信号、色信号に分けて処理を行う。具体的には、輝度信号用のRGB信号と色信号用のRGB信号を用意し、それぞれに適したガンマ補正をかける。その後、輝度信号用のRGB信号から輝度(Y)信号を生成し、色信号用のRGB信号から色差(Cb、Cr)信号を生成し、カラーバランス補正部1811に出力される。これらの過程において、輝度信号用のRGB信号に対してかけるガンマカーブを、本実施形態における入出力特性を加味したカーブに変換する。これにより、明滅用に別途処理ブロックやメモリを必要とすることなく明滅の効果を実現できる。
<第5の実施形態>
本実施形態では、フィルムを映写機に掛けて再生した場合に画像に発生するような映像効果を与える画像処理として、前述の実施形態で説明したスクラッチ傷と明滅と上下ぶれを重ねて画像に与える画像処理を実行可能な画像処理装置を示す。スクラッチ傷、明滅、上下ぶれの各効果を与える方法は上述の実施形態にある方法を用いるものとし、ここでは詳細な説明は省略する。
図21は、第5の実施形態としての画像処理装置としてのデジタルビデオカメラのブロック図である。撮像素子2100は結像した入射光を光電変換する。光電変換された信号はカメラ信号処理部2101へ入力される。カメラ信号処理部2101では光電変換された信号に対し各種の画像処理を行い映像信号へ変換し出力する。出力された映像信号はエンコーダ部2113で所定の記録フォーマットで符号化され、記録メディア2114へ記録される。
次にカメラ信号処理部2101での信号処理について説明する。カメラ信号処理部2101へ入力した信号はまず、画像処理部2104で第1の実施形態と同様に各種信号処理が行われ、輝度信号と色差信号で出力される。処理後の信号は撮像画像として第1のフレームメモリ2105へ格納される。
2106、2107、2108はフィルム風の効果を与える各種処理を行った結果を一時的に格納する第2、第3、第4のフレームメモリである。
次にフィルム風の効果を与える処理部について説明する。2109は、上下ぶれを発生させるために画像を所定の切り出し位置で画像の切り出しを行う切り出し処理部、2110は、明滅を発生させるために画像の輝度の入出力特性を補正する補正処理部である。2111は、スクラッチ傷を付加させるためにスクラッチ傷のノイズ画像を画像に合成する合成処理部、2112は、切り出し処理時に発生するノイズを隠蔽するためのマスク画像の付加を行うマスク処理部である。
信号発生器(SG)2103は撮像素子2100の駆動タイミングを制御する信号を発生する信号発生器である。発生した信号は撮像素子2100とシステムコントローラ2102に供給される。
システムコントローラ2102は、撮像素子2100とカメラ信号処理部2101で構成されるカメラブロックの制御を行う。撮像素子2100に対しては、信号の蓄積期間や読み出しタイミングの指示を行う。画像処理部2104に対しては、各種信号処理で画質設定に必要なパラメータの設定を行う。切り出し処理部2109に対しては、切り出し制御の有効、無効の指示、第1のフレームメモリ2105からの切り出し位置の指示、第1のフレームメモリ2105からの読み出しおよび第2のフレームメモリ2106への書き出しを行うタイミングの指示を行う。補正処理部2110に対しては、補正処理の有効、無効の指示、入出力特性のパラメータデータの指定、第2のフレームメモリ2106から読み出しおよび第3のフレームメモリ2107への書き出しを行うタイミングの指示を行う。合成処理部2111に対しては、合成制御の有効、無効の指示、合成対象となるノイズ画像(不図示)の指定、第3のフレームメモリ2107から読み出しおよび第4のフレームメモリ2108への書き出しを行うタイミングの指示を行う。マスク処理部2112に対しては、マスク画像の制御として重畳するマスクの大きさ、色の指示、フレームメモリ2108から読み出しを行うタイミングの指示、動作開始および解除指示を行う。信号発生器2103に対しては、撮像素子2100を駆動する駆動タイミングの指示を行う。
次に図22に、本実施形態におけるシステムコントローラ2202が切り出し処理部2109、補正処理部2110、合成処理部2111、マスク処理部2112に対して行う制御と、それによる各部の動作のフローチャートを示す。この制御は、撮影画像に対して複数のフィルム風の効果の付加がされているかのような画像処理を施す撮影モードのときに行われる。あるいは、記録メディア2114等のメモリに記憶された動画像を連続的に読み出して事後処理として行われる。本処理は、垂直同期信号に連動して開始され、同期信号によって一連の処理が繰り返されることになる。
ステップS2201では、撮影モードや各種設定の情報を取得し、上下ぶれの有効、無効を判定する。上下ぶれが有効と判定された場合は、切り出し処理部2109に切り出し処理を実行する指示を行い、ステップS2202へ進む。一方、無効と設定されている場合は、切り出し処理部2109に切り出し制御を実行しない指示を行い、ステップS2203へ進む。
ステップS2202では、第1のフレームメモリ2105から読み出した画像データに対して第3の実施形態で示したように切り出し処理を行う。図16のフローにおけるS1605、S1606の処理と同様にマスク処理が行われる。切り出された画像データは、第2のフレームメモリ2106へ書き込まれる。そして、ステップS2203へ進む。
ステップS2203では、撮影モードや各種設定の情報を取得し、明滅の有効、無効を判定する。明滅が有効と判定された場合は、補正処理部2110に補正処理を実行する指示を行い、ステップS2204へ進む。一方、無効と判定された場合は、補正処理部21010に補正処理を実行しない指示を行い、ステップS2205へ進む。
ステップS2204では、第2のフレームメモリ2106から読み出した画像データに対し、第4の実施形態で示したように輝度の入出力特性の補正を行うことで、明滅の制御を行う。図20のフローに沿って、各種設定に応じて、システムコントローラ2202の指示によって補正処理部2110により1巡分処理が進められる。補正された画像データは、第3のフレームメモリ2107に書き込まれ、ステップS2205へ進む。
ステップS2205では、撮影モードや各種設定の情報を取得し、スクラッチ傷の付加の有効、無効を判定する。スクラッチ傷の付加が有効と判定された場合は、合成処理部2111にてスクラッチ傷のノイズ画像の合成制御を実行する指示を行い、ステップS2206へ進む。一方、無効と判定された場合は、合成処理部2111にスクラッチ傷のノイズ画像の合成制御を実行しない指示を行い、ステップS2206へ進む。
ステップS2206では、第3のフレームメモリ2107から読み出した画像データに対して、第2の実施形態で示したようにスクラッチ傷のノイズ画像データの合成処理が行われる。図11のフローに沿って、各種設定に応じて、システムコントローラ2202の指示によって合成処理部2111により1巡分処理が進められる。ノイズ画像の切り出し位置および合成位置を決定する。合成された画像データは、第4のフレームメモリ2108に書き込まれ、ステップS2207へ進む。
ステップS2207では、撮影モードや各種設定の情報を取得し、上下マスクの付加の有効、無効を判定する。上下マスクの付加が有効と判定された場合は、マスク処理部2112にマスク画像の合成制御を実行する指示を行い、ステップS2208へ進む。一方、無効であると判定された場合は、マスク処理部2112にマスク画像の合成制御を実行しない指示を行い、ステップS2208へ進む。
ステップS2208では、第4のフレームメモリ2108から読み出した画像データに対して、第4の実施形態で示したように、マスク画像を付加する処理を行う。図16のフローにおけるS1607、S1608の処理と同様にマスク処理が行われる。マスク処理された画像データは、カメラ信号処理部2101にて各種の信号処理が行われた後の画像データとしてエンコーダ部2113等に出力され、1巡目の処理を終了する。
以上のように、第5の実施形態では、入力される画像データの画像に対して、スクラッチ傷と明滅と上下ぶれを重ねて画像に与える。これにより、フィルムを映写機に掛けて再生した場合に画像に発生するような映像効果を、より忠実に与えることができる。
また、図21(b)に、本実施形態で画像に与える効果のうち、通常の撮影モードにおける各種の処理と並行して与えられるものをまとめて与えるようにした実施形態の画像処理装置を示す。この形態では、切り出し処理部2109は、通常、センサーから読み出した画像を一旦フレームメモリにバッファリングし、センタリングや不要画素のカットなど画角合わせを行っており、これらの切り出しの処理を行うブロックである。また手ぶれによる画像全体のぶれを補正するための電子防振の機能としても用いられる。本実施形態では、ここに上下ぶれのための切り出し処理も実行させる。さらに、図18(b)と同様に、画像処理部2104内で通常の撮影時にも行われる輝度信号へのガンマ補正を行う補正処理部2110に、明滅のための輝度の入出力特性の補正を踏まえたガンマカーブによってガンマ補正を実行させる。これにより、新たに設ける処理ブロックも少なくなり、処理の高速化も実現できる。
<第6の実施形態>
本実施形態では、フィルムを映写機に掛けて再生した場合に画像に発生するような映像効果(フィルム調の効果)をデジタル画像に重畳するために、グレインノイズとスクラッチ傷とを重ねて付加することが可能な画像処理装置を示す。グレインノイズとスクラッチ傷の生成についての詳細は第1及び第2の実施形態にて詳述しているため、ここでは省略する。
図24はフィルムを記録媒体とした動画撮影における記録(以下、撮影)から再生(以下、上映)までの過程を説明した図である。図25は図24で挙げた各過程において、上映結果に影響を与える事象((1)の過程における(A)、(B))と、その事象による効果(同じく(A−1)、(A−2)、(B))、また、その効果を疑似的に画像処理で実現するための手段を載せた表である。
動画撮影における過程はまず(1)撮影、(2)現像・編集、(3)保管、(4)上映の順で4つに分けられる。グレインノイズは(2)現像・編集の過程で例えば「銀のこし」として知られる現像手法によって発生する。また、スクラッチ傷は(4)上映の過程で走行中のフィルムに傷が付くことで発生する。すなわち、グレインノイズとスクラッチ傷は、フィルムで撮影された画像が上映される行程において、別の原因によって発生する、特性の異なるノイズである。第1の実施形態、第2の実施形態、及び本実施形態ではこの2つのノイズを、発生するノイズを模したノイズ画像を撮像画像に合成することで実現している。
なお、その他(1)撮影の過程では撮影に利用した(A)光学系の特性により(A−1)周辺光量落ち、(A−2)歪曲が発生する。また(3)保管の過程では(A)フィルムの経年変化による退色、(B)ゴミの付着、シミの発生によるノイズなどが発生する。これらの効果についても同様に、歪曲であれば画像処理装置において(1)の(A−2)表示画像の変形、ゴミであれば(2)または(3)の(B)ランダムな粒状ノイズの貼り付けを行うことで、画像に疑似的に与えることができる。さらに、退色であれば(3)の(A)カラーバランス、カラーゲインの補正である。
フィルム調の効果として効果を複数付加する場合、フィルム撮影の過程に対応した順番で効果を与えることで、より好ましい結果を得ることができる。グレインノイズとスクラッチ傷を両方付加する場合、グレインノイズの原因となる現像・編集過程はスクラッチ傷の原因となる上映の過程の前段階にある。そのため本実施形態では、入力される画像データに対して、グレインノイズを合成した結果の画像データに対し、そのあとでスクラッチ傷を付加する処理を行う。こうすることで、より忠実なフィルム調の効果を与えることが可能となる。
図23は、第6の実施形態としての画像処理装置としてのデジタルビデオカメラのブロック図である。撮像素子2300は結像した入射光を光電変換する。光電変換された信号はカメラ信号処理部2301へ入力される。カメラ信号処理部2301では光電変換された信号に対し各種の画像処理を行い映像信号へ変換し出力する。出力された映像信号はエンコーダ部2314で所定の記録フォーマットで符号化され、記録メディア2315へ記録される。
次にカメラ信号処理部2301での信号処理について説明する。信号処理部2301へ入力した信号はまず、画像処理部2304で第1の実施形態と同様に各種信号処理が行われる。処理後の信号は撮像画像として第1のフレームメモリ2305へ格納される。
2308はシステムコントローラ2302(第2の指定手段)の指示により、スクラッチ傷のノイズ画像の生成および切り出しを行うスクラッチ傷生成部(選択手段)である。第2のフレームメモリ2306(第2の記憶手段)に格納されたノイズ画像(第2のノイズデータ)は第2の実施形態に示したように処理され、合成処理部2310で合成される。
2309はシステムコントローラ2302(第1の指定手段)の指示により、グレインノイズのノイズ画像の生成および切り出しを行うグレインノイズ生成部(切り出し手段)である。第3のフレームメモリ2307(第1の記憶手段)に格納されたノイズ画像(第1のノイズデータ)は第1の実施形態で示したように処理され、合成処理部2310で合成される。
合成処理部2310は第1のフレームメモリ2305に格納されている撮像画像を異なる二つの画像と順次合成可能な合成処理部である。2311は第1の入力画像を合成する第1の合成部であり、第1のフレームメモリ2305に格納されている画像データとグレインノイズのノイズ画像データとの合成を行う。2312は第2の入力画像を合成する第2の合成部であり、第1の合成部の出力結果の画像データとスクラッチ傷のノイズ画像データとの合成を行う。切替制御部2313は第1、第2の合成部に、合成する画像データを入力するか否かの切り替えを行う。入力の切り替えは第1、第2の各合成部で独立して設定が可能である。また、第1、第2の各合成部に入力しない場合は、第1のフレームメモリ2305に格納されている画像データあるいは第1の合成部の出力結果の画像データがそのまま出力されることとなる。
信号発生器(SG)2303は撮像素子2300の駆動タイミングを制御する信号を発生する信号発生器である。発生した信号は撮像素子2300とシステムコントローラ2302に供給される。
システムコントローラ2302は、撮像素子2300とカメラ信号処理部2301で構成されるカメラブロックの制御を行う。撮像素子2300に対しては、信号の蓄積期間や読み出しタイミングの指示を行う。画像処理部2304に対しては、各種信号処理で画質設定に必要なパラメータの設定を行う。合成処理部2310に対しては、合成を行うフレームメモリ2305の撮像画像の読み出しタイミングの指示、第1、第2の各合成部の合成比率の指示、第1、第2の各合成部が合成を行うか否かの指示を行う。スクラッチ傷生成部2308に対しては、スクラッチ傷を生成するために、メモリ2306へのノイズデータの読み書きのタイミングの指示、切り出し位置と大きさの指示、リサイズ時の大きさの指示および合成時の貼り付け位置の指示を行う。グレインノイズ生成部2309に対しては、グレインノイズを生成するために、メモリ2307へのノイズデータの読み書きのタイミングの指示、切り出し位置と大きさの指示、リサイズ時の大きさの指示および合成時の貼り付け位置の指示を行う。信号発生器2303に対しては、撮像素子200を駆動する駆動タイミングの指示を行う。
次に図26に、本実施形態におけるシステムコントローラ2302が合成処理部2310に対し指示する合成画像の切り替え制御、及びその制御を受けて各部で行われる処理のフローチャートを示す。この制御は、撮影画像に対して複数のフィルム風のノイズ効果を付加する撮影モードのときに行われる。あるいは、記録メディア2315等のメモリに記憶された動画像を連続的に読み出して事後処理として行われる。本処理は、垂直同期信号に連動して開始され、同期信号によって一連の処理が繰り返されることになる。
グレインノイズとスクラッチ傷を多重に合成する場合、上述したようにグレインノイズ、スクラッチ傷の順に合成すると、実際にフィルムを上映した時に近い効果が得られる。そこで、第1の合成部の合成用の画像として、グレインノイズ生成部2309が出力するノイズ画像を入力し、第2の合成部の合成用画像として、スクラッチ傷生成部2308が出力するノイズ画像を入力する。
ステップS2601では、フレームメモリ2305に格納されている撮像画像に付加するノイズ効果の種別を取得し、ステップS2602へ進む。
ステップS2602では、ステップS2601で取得したノイズ効果の種別にグレインノイズが含まれているか否かを判定する。含まれている場合はステップS2603へ進み、含まれていない場合はステップS2604へ進む。
ステップS2603では、グレインノイズの合成を有効とし、第1の実施形態で示したように、グレインノイズの合成処理を行う。図7のフローに沿って、各種設定に応じて、システムコントローラ2302の指示によってグレインノイズ生成部2309、合成処理部2310により1巡分処理が進められる。本実施形態では、第1の合成部2311によって、入力される第1のフレームメモリ2305からの画像データとグレインノイズデータとを合成する。合成された出力結果は第2の合成部2312へ出力され、ステップS2605へ進む。
ステップS2604では、グレインノイズの合成を無効とする設定を決定し、ステップS2605へ進む。
ステップS2605では、ステップS2601で取得したノイズ効果の種別にスクラッチ傷が含まれているか否かを判定する。含まれている場合はステップS2606へ進み、含まれていない場合はステップS2607へ進む。
ステップS2606では、スクラッチ傷の合成を有効とし、第2の実施形態で示したように、スクラッチ傷のノイズの合成処理を行う。図11のフローに沿って、各種設定に応じて、システムコントローラ2302の指示によってスクラッチ傷生成部2308、合成処理部2310により1巡分処理が進められる。本実施形態では、スクラッチ傷生成部2308にてスクラッチ傷のノイズデータを生成し、第2の合成部2312にて、第1の合成部2311の出力結果の画像データと、スクラッチ傷のノイズデータとを合成する。合成された出力結果の画像データはカメラ信号処理部2301の出力として出力され、制御を終了する。
ステップS2607では、スクラッチ傷の合成を無効とする設定を決定し、制御を終了する。
以上のように、第6の実施形態では、入力される画像データの画像に対して、時間的及び空間的なランダム性が互いに異なるグレインノイズとスクラッチ傷という2つのノイズをノイズデータとして別々に生成し、重ねて画像データに合成する。これにより、フィルムを映写機に掛けて再生した場合に画像に発生するような映像効果を、より忠実に与えることができる。さらに、画像データに各ノイズを合成する順番を、フィルム撮影の過程に対応した順番とすることで、より忠実なノイズ効果を得ることを可能としている。
本実施形態では、入力される画像データに対して、グレインノイズのノイズ画像データ、スクラッチ傷のノイズ画像データと、順に合成した。しかし、これに限らず、グレインノイズのノイズ画像データにスクラッチ傷のノイズ画像データを合成したものを、入力される画像データと合成しても良い。この際、グレインノイズのノイズ画像データとスクラッチ傷のノイズ画像データを合成する際に、予めグレインノイズに透過性を持たせてスクラッチ傷を0:1で合成する(貼り付ける)。その上で、入力される画像データと合成されたノイズ画像データとを0:1で合成すると、グレインノイズは透過性に対応した合成比率で合成され、スクラッチ傷は上から貼り付けられたような画像の出力となり、本実施形態のようにより忠実な画像が出来上がる。
(他の実施形態)
上記各実施形態では、画像処理装置の一例としてビデオカメラの撮影画像に対してフィルム調の効果を与える場合の実施形態を示した。しかし、これに限らず、本発明は入力される画像データに対して画像処理を加えられる画像処理装置であればその形態を問わない。例えばデジタルスチルカメラ、PC、携帯端末等様々なものが考えられる。
図27は本発明の適用できる画像処理装置のうち、記録画像に対して処理を行う場合の実施形態の一例を示している。信号処理部2701は上記各実施形態におけるカメラ信号処理部に相当し、必要に応じてフレームメモリ等も有しているものとする。記録部2703に記録された画像データに、記録制御部2702にて必要に応じて復号化あるいは伸長処理を施し、信号処理部2701にてフィルム調の効果を付加する処理を施す。処理後の画像データは、再び記録制御部2702に送られ、必要に応じて符号化、圧縮処理を施され、記録部2703に記録される。また、表示制御部2704に送られ、表示部2705に表示される。なお、信号処理部2701以外の構成は必ずしも画像処理装置内にある必要はなく、記録部2703として外部装置の記録媒体やWEB上のオンラインストレージなどでもよい。また、表示部2705も外部のモニタ等の表示装置でもよい。
また、本発明の目的は以下のようにしても達成できる。すなわち、前述した各実施形態の機能を実現するための手順が記述されたソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給する。そしてそのシステムまたは装置のコンピュータ(またはCPU、MPU等)が記憶媒体に格納されたプログラムコードを読み出して実行するのである。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体およびプログラムは本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどが挙げられる。また、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD−R、磁気テープ、不揮発性のメモリカード、ROM等も用いることができる。
また、コンピュータが読み出したプログラムコードを実行可能とすることにより、前述した各実施形態の機能が実現される。さらに、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した各実施形態の機能が実現される場合も含まれる。
更に、以下の場合も含まれる。まず記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う。