(57)【特許請求の範囲】
【請求項１】
走査線順に撮像された入力映像信号の水平方向および垂直方向動きベクトルを生成する動きベクトル生成部と、
前記水平方向および垂直方向動きベクトルに基づいて前記走査線毎に水平方向補正量を生成するとともに、前記垂直方向動きベクトルに基づいて前記走査線毎に垂直方向補正量を生成する補正量生成部と、
前記水平方向および垂直方向補正量に基づいて、前記入力映像信号を補正して出力映像信号を生成する補正部と、を備えることを特徴とする画像処理装置。
【請求項２】
前記補正量生成部は、下記（１）式に基づいて前記水平方向補正量を生成し、下記（２）式に基づいて前記垂直方向補正量を生成することを特徴とする請求項１に記載の画像処理装置。
ＭＯＤｘ［ｙ］＝ＭＶｘ＊ｙ／（ＭＶｙ＋Ｈ）  ・・・（１）
ＭＯＤｙ［ｙ］＝ＭＶｙ＊ｙ／（ＭＶｙ＋Ｈ）  ・・・（２）
ここで、ＭＯＤｘ［ｙ］は前記水平方向補正量、ＭＯＤｙ［ｙ］は前記垂直方向補正量、ＭＶｘは前記水平方向動きベクトル、ＭＶｙは前記垂直方向動きベクトル、ｙは補正対象画素の前記走査線位置、Ｈは全走査線数。
【請求項３】
前記補正量生成部は、下記（３）式に基づいて前記水平方向補正量を生成し、下記（４）式に基づいて前記垂直方向補正量を生成することを特徴とする請求項１に記載の画像処理装置。
ＭＯＤｘ［ｙ］＝ＭＶｘ＊ｙ＊ａ／（ＭＶｙ＋Ｈ）＞＞Ｓｆｔ  ・・・（３）
ＭＯＤｙ［ｙ］＝ＭＶｙ＊ｙ＊ａ／（ＭＶｙ＋Ｈ）＞＞Ｓｆｔ  ・・・（４）
ここで、ＭＯＤｘ［ｙ］は前記水平方向補正量、ＭＯＤｙ［ｙ］は前記垂直方向補正量、ＭＶｘは前記水平方向動きベクトル、ＭＶｙは前記垂直方向動きベクトル、ｙは補正対象画素の前記走査線位置、Ｈは全走査線数、ａは任意の係数、Ｓｆｔはビットシフト量。
【請求項４】
前記水平方向および垂直方向補正量が小数点以下の精度を有する場合、
前記補正部は、補正対象の画素から前記水平方向補正量および垂直方向補正量だけずれた位置の画素を、その周囲の１または複数の画素を用いて生成し、前記補正対象の画素を前記生成された画素に置き換えることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
走査線順に撮像する撮像装置と、
前記撮像装置から入力される入力映像信号の水平方向および垂直方向動きベクトルを生成する動きベクトル生成部と、
前記水平方向および垂直方向動きベクトルに基づいて前記走査線毎に水平方向補正量を生成し、前記垂直方向動きベクトルに基づいて前記走査線毎に垂直方向補正量を生成する補正量生成部と、
前記水平方向および垂直方向補正量に基づいて、前記入力映像信号を補正して出力映像信号を生成する補正部と、を備えることを特徴とする画像処理システム。
【請求項６】
走査線順に撮像された入力映像信号の水平方向および垂直方向動きベクトルを生成するステップと、
前記水平方向および垂直方向動きベクトルに基づいて前記走査線毎に水平方向補正量を生成し、前記垂直方向動きベクトルに基づいて前記走査線毎に垂直方向補正量を生成するステップと、
前記水平方向および垂直方向補正量に基づいて、前記入力映像信号を補正して出力映像信号を生成するステップと、を備えることを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像処理装置、画像処理システムおよび画像処理方法に関する。
【背景技術】
【０００２】
ＣＭＯＳ（Complementary Metal-Oxide-Semiconductor）センサは低コストで製造できるため、デジタルビデオカメラ等に多く用いられている。ＣＭＯＳセンサは、１フレーム全体を同時に撮像するのではなく、画面上部から下部へ走査線毎に順に撮像するローリングシャッタ方式が一般的である。画面の上部と下部で撮像タイミングが異なるため、ＣＭＯＳセンサで動画像を撮影すると、動いている被写体が歪むという問題がある。この歪みはフォーカルプレーン歪みと呼ばれる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１４８４９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動画像の歪みを高精度に補正可能な画像処理装置、画像処理システムおよび画像処理方法を提供する。
【課題を解決するための手段】
【０００５】
実施形態によれば、画像処理装置は、動きベクトル生成部と、補正量生成部と、補正部とを備える。動きベクトル生成部は、走査線順に撮像された入力映像信号の水平方向および垂直方向動きベクトルを生成する。補正量生成部は、前記水平方向および垂直方向動きベクトルに基づいて前記走査線毎に水平方向補正量を生成するとともに、前記垂直方向動きベクトルに基づいて前記走査線毎に垂直方向補正量を生成する。補正部は、前記水平方向および垂直方向補正量に基づいて、前記入力映像信号を補正して出力映像信号を生成する。
【図面の簡単な説明】
【０００６】
【図１】動きベクトルを用いてフォーカルプレーン歪みを補正する原理を説明する図。
【図２】第１の実施形態に係る画像処理システムの概略ブロック図。
【図３】補正量生成部１４の内部構成の一例を示す図。
【図４】補正部１５の内部構成の一例を示す図。
【図５】図２の画像処理装置２の処理動作を示すフローチャート。
【図６】第２の実施形態に係る画像処理システムの概略ブロック図。
【図７】補正量生成部１４ａの内部構成の一例を示す図。
【図８】第３の実施形態による補正を説明する図。
【図９】補正部１５ａの内部構成の一例を示す図。
【発明を実施するための形態】
【０００７】
以下、本発明の実施形態について、図面を参照しながら具体的に説明する。
【０００８】
（第１の実施形態）
図１は、動きベクトルを用いてフォーカルプレーン歪みを補正する原理を説明する図である。図１は、ローリングシャッタ方式のＣＭＯＳセンサで撮影された時間的に連続する２枚のフレームＦ１，Ｆ２を示している。
【０００９】
ＣＭＯＳセンサは、フレームＦ１の全体を同時に撮像するのではなく、画面上部から下部へ走査線毎に順に撮像する。１本の走査線を撮像するのに要する時間をｔｓ、各フレームの全走査線数をＨとすると、時間ｔｓ＊ＨかかってフレームＦ１の全走査線を撮像した後、引き続くフレームＦ２を、画面上部から下部へ走査線毎に順に撮像する。
【００１０】
フレームＦ１では、中心が（ｘ１，ｙ１）に位置していた物体Ｏｂｊが、フレームＦ２では（ｘ２，ｙ２）に移動したとする。すなわち、１フレームでの水平方向および垂直方向の移動量はそれぞれｘ２−ｘ１，ｙ２−ｙ１である。以下では、この１フレームでの水平方向の移動量を水平方向動きベクトルＭＶｘ（＝ｘ２−ｘ１）、垂直方向の移動量を垂直方向動きベクトルＭＶｙ（＝ｙ２−ｙ１）と呼ぶ。
【００１１】
ここで、時刻ｔ０でフレームＦ１の（ｘ１，ｙ１）を含む走査線を撮影したとすると、フレームＦ２の（ｘ２，ｙ２）を含む走査線を撮影する時刻は、時刻ｔ１＝ｔ０＋ｔｓ＊（ＭＶｙ＋Ｈ）である。したがって、物体Ｏｂｊが水平方向動きベクトルＭＶｘだけ移動するのに要した時間は、ｔ１−ｔ０＝ｔｓ＊（ＭＶｙ＋Ｈ）である。よって、１本の走査線を撮像する間（以下、１走査線当たり、という）の物体Ｏｂｊの水平方向移動量ｄｘおよび垂直方向移動量ｄｙは、下記の（１），（２）式でそれぞれ表される。  
ｄｘ＝ＭＶｘ／（ｔ１−ｔ０）＝ＭＶｘ／｛ｔｓ＊（ＭＶｙ＋Ｈ）｝  ・・・（１）
ｄｙ＝ＭＶｙ／（ｔ１−ｔ０）＝ＭＶｙ／｛ｔｓ＊（ＭＶｙ＋Ｈ）｝  ・・・（２）
物体Ｏｂｊの下部は、上部と比べて撮像タイミングが遅いため、移動量が大きくなる。その結果、図１に示すように、物体Ｏｂｊは歪んでしまう。
【００１２】
そこで、走査線ｙ毎に水平方向補正量ＭＯＤｘ［ｙ］および垂直方向補正量ＭＯＤｘ［ｙ］を下記（３）、（４）式により算出する。ここで、時間ｔｓ＊ｙは、１〜ｙ番目の走査線を撮像するのに要する時間に相当する。  
ＭＯＤｘ［ｙ］＝ｄｘ＊ｔｓ＊ｙ＝ＭＶｘ＊ｙ／（ＭＶｙ＋Ｈ）  ・・・（３）
ＭＯＤｙ［ｙ］＝ｄｙ＊ｔｓ＊ｙ＝ＭＶｙ＊ｙ／（ＭＶｙ＋Ｈ）  ・・・（４）
これら補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］は、（ｘ，ｙ）の画素を仮に１本目の走査線と同時に撮像していたとすると、その（ｘ，ｙ）の画素は（ｘ−ＭＯＤｘ［ｙ］，ｙ−ＭＯＤｙ［ｙ］）にあったことを意味する。よって、（ｘ−ＭＯＤｘ［ｙ］，ｙ−ＭＯＤｙ［ｙ］）の画素を（ｘ，ｙ）の画素に置き換える補正をすれば、言い換えると、（ｘ，ｙ）の画素を（ｘ＋ＭＯＤｘ［ｙ］，ｙ＋ＭＯＤｙ［ｙ］）の画素に置き換える補正をすればフォーカルプレーン歪みが補正される。
【００１３】
このように、１ライン当たりの物体Ｏｂｊの水平および垂直方向移動量ｄｘ，ｄｙを、垂直方向動きベクトルＭＶｙを考慮して上記（１），（２）式とする。そして、これら１ライン当たりの移動量ｄｘ，ｄｙに基づいて、走査線毎に補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］を算出することにより、高精度にフォーカルプレーン歪みを補正できる。
【００１４】
図２は、第１の実施形態に係る画像処理システムの概略ブロック図である。画像処理システムは、ＣＭＯＳセンサ１と、画像処理装置２と、外部機器３とを備えている。ＣＭＯＳセンサ１により取得されたＲＡＷデータである入力映像信号が画像処理装置２に入力される。画像処理装置２は入力映像信号のフォーカルプレーン歪みを補正して、出力映像信号を生成する。外部機器３は、例えば出力映像信号を表示する液晶ディスプレイ等の表示装置や、出力映像信号を記憶するフラッシュメモリやハードディスク等の記憶媒体である。
【００１５】
画像処理装置２は、前処理部１１と、フレームメモリ１２と、動きベクトル生成部１３と、補正量生成部１４と、補正部１５とを有する。本実施形態では、画像処理装置２とは別個にＣＭＯＳセンサ１が設けられている例を示すが、画像処理装置２と同一チップにＣＭＯＳセンサ１を搭載してもよい。
【００１６】
前処理部１１は、ＣＭＯＳセンサ１から入力されるＲＡＷデータからＲＧＢ補間を行って、各画素のＲＧＢ値を生成するとともに、このＲＧＢ値に基づいて所定のマトリクス変換を行い、Ｙ（輝度）成分を生成する。生成されたＲＧＢ値およびＹ成分はフレームメモリ１２に記憶される。フレームメモリ１２は、例えば２フレームの画素情報を記憶できるものとする。このとき、各フレームの（ｘ，ｙ）の画素のＲＧＢ値はそれぞれ、フレームメモリ１２の各フレームに対応するアドレス（ｘ，ｙ）に記憶されるものとする。
【００１７】
動きベクトル生成部１３は、ＣＭＯＳセンサ１から入力される現在のフレームのＹ成分と、フレームメモリ１２に記憶された過去のフレームにおけるＹ成分とを用いて動きベクトル探索を行い、フレームにつき１つの水平方向動きベクトルＭＶｘおよび垂直方向動きベクトルＭＶｙを生成する。生成された動きベクトルＭＶｘ，ＭＶｙは補正量生成部１４に入力される。
【００１８】
より具体的には、フレーム中に複数画素からなるいくつか（例えば５個）のブロックを設定し、ブロック毎に差分絶対値和（Sum of Absolute Difference：ＳＡＤ）によるブロックマッチング演算を行って動きベクトル探索を行う。そして、全ブロックの動きベクトルの平均またはメディアンをそのフレームの動きベクトルとする。あるいは別の手法として、現在および過去のフレームを縮小し、走査線毎に動きベクトル探索を行って、動きベクトル生成部１３内の動きベクトル用ラインメモリ（不図示）に一旦記憶する。そして、全走査線の動きベクトルのメディアンをそのフレームの動きベクトルＭＶｘ，ＭＶｙとする。
【００１９】
また、画像処理装置２とは別個に画像符号化装置（不図示）等が設けられ、外部から動きベクトルを取得してもよい。この場合、現在および過去のフレームのＹ成分を用いなくてもよい。
【００２０】
補正量生成部１４は、動きベクトルＭＶｘ，ＭＶｙと、外部の例えばホストプロセッサ（不図示）から設定される全走査線数Ｈを用いて、走査線位置ｙ毎に、垂直方向動きベクトルＭＶｙを考慮した水平方向補正量ＭＯＤｘ［ｙ］および垂直方向補正量ＭＯＤｙ［ｙ］を下記（５），（６）式により生成する。  
ＭＯＤｘ［ｙ］＝ＭＶｘ＊ｙ／（ＭＶｙ＋Ｈ）  ・・・（５）
ＭＯＤｙ［ｙ］＝ＭＶｙ＊ｙ／（ＭＶｙ＋Ｈ）  ・・・（６）
これら（５），（６）式はそれぞれ、上記（３），（４）式と対応する。補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］は補正部１５へ入力される。なお、走査線位置ｙは、例えば水平同期信号Ｈｓｙｎｃのパルス数をカウントすることにより得られる。本実施形態では、補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］が整数精度となるよう、小数点以下の切り捨てまたは四捨五入等を行う。
【００２１】
図３は、補正量生成部１４の内部構成の一例を示す図である。補正量生成部１４は、乗算器２１，２２と、加算器２３と、除算器２４，２５とを有する。第１の乗算器２１は、ＭＶｘ＊ｙを生成する。加算器２３は、ＭＶｙ＋Ｈを生成する。第１の除算器２４は、乗算器２１により生成されたＭＶｘ＊ｙを、加算器２３により生成されたＭＶｙ＋Ｈで除し、水平方向補正量ＭＯＤｘを生成する。第２の乗算器２２は、ＭＶｙ＊ｙを生成する。第２の除算器２５は、乗算器２２により生成されたＭＶｙ＊ｙを、加算器２３により生成されたＭＶｙ＋Ｈで除し、垂直方向補正量ＭＯＤｙ［ｙ］を生成する。
【００２２】
図２の補正部１５は、補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］およびフレームメモリ１２に記憶された現在のフレームのＲＧＢ値を用いて、入力映像信号を補正する。より具体的には、（ｘ，ｙ）の画素のＲＧＢ値を、（ｘ＋ＭＯＤｘ［ｙ］，ｙ＋ＭＯＤｙ［ｙ］）の画素のＲＧＢ値で置き換える補正を行う。
【００２３】
図４は、補正部１５の内部構成の一例を示す図である。補正部１５は、カウンタ３１，３２と、加算器３３，３４とを有する。カウンタ３１には水平同期信号Ｈｓｙｎｃが入力され、水平同期信号Ｈｓｙｎｃのアサートによりカウント値を０にリセットしながらカウントアップを繰り返すことで位置ｘを算出する。加算器３３は、位置ｘと水平方向補正量ＭＯＤｘ［ｙ］とを加算し、水平方向アドレスＡＤＲｘ（＝ｘ＋ＭＯＤｘ［ｙ］）を生成する。カウンタ３２には垂直同期信号Ｖｓｙｎｃと水平同期信号Ｈｓｙｎｃが入力され、垂直同期信号Ｖｓｙｎｃのアサートによりカウント値を０にリセットしながら水平同期信号Ｈｓｙｎｃのパルスの数をカウントすることで位置ｙを算出する。加算器３４は、位置ｙと垂直方向補正量ＭＯＤｙ［ｙ］とを加算し、垂直方向アドレスＡＤＲｙ（＝ｙ＋ＭＯＤｙ［ｙ］）を生成する。そして、フレームメモリ１２からアドレス（ＡＤＲｘ，ＡＤＲｙ）に記憶されたＲＧＢ値を読み出し、補正後の出力映像信号とする。これにより、フォーカルプレーン歪みを抑制できる。
【００２４】
図５は、画像処理装置２の処理動作を示すフローチャートである。初めは、フレームメモリ１２にフレームＦ１のＹ成分およびＲＧＢ値が記憶されているものとする。ＣＭＯＳセンサ１からフレームＦ１に引き続くフレームＦ２の入力映像信号が入力されると、前処理部１１はＲＧＢ値とＹ成分を生成する（Ｓ１）。
【００２５】
次に、動きベクトル生成部１３は、現在のフレームＦ２のＹ成分と、フレームメモリ１２に記憶された過去のフレームＦ１のＹ成分とを用いて動きベクトルＭＶｘ，ＭＶｙを生成する（Ｓ２）。その後、フレームメモリ１２をフレームＦ２のＲＧＢ値およびＹ成分に更新する（Ｓ３）。
【００２６】
続いて、補正量生成部１４は、上記（５），（６）式に基づいて、走査線位置ｙ毎に、垂直方向動きベクトルＭＶｙを考慮した補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］を生成する（Ｓ４）。そして、補正部１５は各位置（ｘ，ｙ）のＲＧＢ値を、補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］およびフレームメモリ１２に記憶されたフレームＦ１のＲＧＢ画素値を用いて、補正する（Ｓ５）。補正されたＲＧＢ値からなる出力映像信号は外部機器３に供給される。
【００２７】
このように、第１の実施形態では、垂直方向動きベクトルＭＶｙを考慮した補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］を生成し、補正を行う。そのため、高精度にフォーカルプレーン歪みを補正できる。
【００２８】
なお、上述した例ではフレームメモリ１２が２フレームの画素情報を記憶するものであったが、必ずしも２フレームを記憶するメモリでなくてもよい。例えば、１フレームを記憶するフレームメモリに加え、垂直方向の補正で必要となる補正量ＭＯＤｙ［ｙ］の最大値と、動きベクトル探索で必要となる動きベクトル探索範囲の垂直方向の最大値と、のうちの最大値に相当するライン数を記憶できるラインメモリを用いてもよい。
【００２９】
（第２の実施形態）
第１の実施形態の補正量生成部１４は、外部から全走査線数Ｈのみが設定されて、補正量ＭＯＤｘ［ｘ］，ＭＯＤｙ［ｙ］を生成した。これに対し、第２の実施形態の補正量生成部１４ａは、さらに多くのパラメータが設定されて、補正量ＭＯＤｘ［ｘ］，ＭＯＤｙ［ｙ］を生成するものである。
【００３０】
図６は、第２の実施形態に係る画像処理システムの概略ブロック図である。図６では、図２と共通する構成部分には同一の符号を付しており、以下では相違点を中心に説明する。
【００３１】
図６の画像処理システムは、画像処理装置２ａ内の補正量生成部１４ａの内部構成が、図２の補正量生成部１４の内部構成とは異なっている。補正量生成部１４ａは、外部から全走査線数Ｈ、任意の係数ａおよびビットシフト量Ｓｆｔがパラメータとして設定される。そして、補正量生成部１４ａは、下記（７），（８）式により水平方向補正量ＭＯＤｘ［ｙ］および垂直方向補正量ＭＯＤｙ［ｙ］を生成する。  
ＭＯＤｘ［ｙ］＝ＭＶｘ＊ｙ＊ａ／（ＭＶｙ＋Ｈ）＞＞Ｓｆｔ  ・・・（７）
ＭＯＤｙ［ｙ］＝ＭＶｙ＊ｙ＊ａ／（ＭＶｙ＋Ｈ）＞＞Ｓｆｔ  ・・・（８）
ここで、＞＞Ｓｆｔは右にビットシフト量Ｓｆｔだけビットシフトすることを示し、２のＳｆｔ乗で除すことと等価である。すなわち、上記（７），（８）式は、（５），（６）式の補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］に係数ａを乗じ、２のＳｆｔ乗で除したものである。第２の実施形態では、補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］が整数精度となるよう、係数ａに応じてビットシフト量Ｓｆｔを定める。
【００３２】
上記の（７），（８）式により補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］を生成する場合、外部から設定されるパラメータにより、補正量を柔軟に調整することができる。例えば、誤補正を防ぐために補正量を小さく設定したい場合は、係数ａを１倍に相当する値より小さく設定すればよい。補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］は、係数ａに比例するため、その調整が簡易に行える。
【００３３】
特に画像処理装置２ａをハードウェアで実現する場合、係数ａを乗じてビットシフトすることで、除算器をもう１つ用いることに比べて、ハードウェアの規模を抑えて、調整を行うことができる。
【００３４】
図７は、補正量生成部１４ａの内部構成の一例を示す図である。補正量生成部１４ａは、乗算器４１〜４４と、加算器４５と、除算器４６，４７と、ビットシフト器４８，４９とを有する。第１の乗算器４１は、ＭＶｘ＊ｙを生成する。第２の乗算器４３は、ＭＶｘ＊ｙ＊ａを生成する。加算器４５は、ＭＶｙ＋Ｈを生成する。第１の除算器４６は、乗算器４３により生成されたＭＶｘ＊ｙ＊ａを、加算器４５により生成されたＭＶｙ＋Ｈで除し、ＭＶｘ＊ｙ＊ａ／（ＭＶｙ＋Ｈ）を生成する。第１のビットシフト器４８は、ＭＶｘ＊ｙ＊ａ／（ＭＶｙ＋Ｈ）をビットシフト量Ｓｆｔだけビットシフトして、水平方向補正量ＭＯＤｘ［ｙ］を生成する。第３の乗算器４２はＭＶｙ＊ｙを生成し、第４の乗算器４４はＭＶｙ＊ｙ＊ａを生成する。第２の除算器４７は、第４の乗算器４４により生成されたＭＶｙ＊ｙ＊ａを、加算器４５により生成されたＭＶｙ＋Ｈで除し、ＭＶｙ＊ｙ＊ａ／（ＭＶｙ＋Ｈ）を生成する。第２のビットシフト器４９は、ＭＶｙ＊ｙ＊ａ／（ＭＶｙ＋Ｈ）をビットシフト量Ｓｆｔだけビットシフトして、垂直方向補正量ＭＯＤｙ［ｙ］を生成する。
【００３５】
以下、第１の実施形態と同様にして、生成された補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］を用いて入力映像信号を補正する。
【００３６】
このように、第２の実施形態では、第１の実施形態に加え、係数ａおよびビットシフト量Ｓｆｔを外部から設定して、補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］を生成する。そのため、外部から補正量を簡易に調整できる。
【００３７】
（第３の実施形態）
第１および第２の実施形態は、補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］を整数精度とし、補正対象の画素をフレーム内に存在するいずれかの画素で置き換えて補正するものであった。これに対し、第３の実施形態は、補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］を小数精度とし、フレーム内の１または複数の画素から生成される画素で置き換えて補正するものである。
【００３８】
図８は、第３の実施形態による補正を説明する図である。同図では、補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］を小数以下２ビットまで、すなわち、０．２５の単位まで算出する例を示している。同図の黒丸はフレームメモリから読み出される画素の位置を示しており、整数座標にのみ存在する。これに対し、白ヌキ四角は、置き換えられる可能性がある画素の位置の例を示しており、０．２５単位の座標に存在する。これらは、補間により生成される。
【００３９】
例えば位置Ｐ（５，１）に存在する画素において、水平方向補正量ＭＯＤｘ［１］＝０．２５、垂直方向補正量ＭＯＤｙ［ｙ］＝１．７５である場合、置き換えるべき画素の位置はＰ’（５．２５，２．７５）となる。実際には、この位置に画素は存在しない。そのため、周囲の画素、例えば位置Ａ（５，２），Ｂ（６，２），Ｃ（５，３），Ｄ（６，３）の４つの画素のＲＧＢ値から位置Ｐ’（５．２５，２．７５）の画素のＲＧＢ値を畳み込み演算（フィルタ処理）を行って補間する。そして、位置Ｐ（５，１）の画素のＲＧＢ値を、補間により生成された位置Ｐ’（５．２５，２．７５）のＲＧＢ値で置き換える補正を行う。このように補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］を小数精度まで制御することで、補正の精度を向上できる。
【００４０】
補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］を小数精度とするためには、例えば第１の実施形態の（５），（６）式で小数点以下まで計算したり、第２の実施形態のビットシフト量Ｓｆｔを小さく設定したりすればよい。
【００４１】
図９は、第３の実施形態の補正部１５ａの内部構成の一例を示す図である。補正部１５ａは、カウンタ３１，３２と、加算器３３，３４と、補間部６０とを有する。補間部６０は、係数テーブル６１と、乗算器６２と、加算器６３と、アキュムレータ（ＡＣＣ）６４とを有する。
【００４２】
以下、図８と同様の条件にて、図９の補正部１５ａの動作を説明する。図４の補正部１５と同様に、カウンタ３１，３２は位置ｘ，ｙをそれぞれ算出する。また、加算器３３，３４は水平方向アドレスＡＤＲｘ（＝ｘ＋ＭＯＤｘ［ｙ］）および垂直方向アドレスＡＤＲｙ（＝ｙ＋ＭＯＤｙ［ｙ］）を生成する。ここで、補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］は小数点以下２ビットまでの精度を有するため、アドレス（ＡＤＲｘ，ＡＤＲｙ）も同様に小数以下２ビットまでの精度を有する。
【００４３】
そして、フレームメモリ１２からアドレス（ＡＤＲｘ，ＡＤＲｙ）の周囲の整数座標に存在する画素のＲＧＢ値が読み出される。そして、乗算器６２は、アドレス（ＡＤＲｘ，ＡＤＲｙ）との距離に応じて予め定められ、係数テーブル６１に格納されたフィルタ係数と、読み出されたＲＧＢ値のそれぞれとを乗じ、加算器６３およびアキュムレータ６４により積算する。
【００４４】
図８の例では、アドレス（５．２５，２．７５）の周囲に存在するアドレス（５，２），（６，２），（５，３），（６，３）のそれぞれについて、上記の処理が行われる。アドレス（５，３）のＲＧＢ値には、アドレス（５．２５，２．７５）との距離が小さいため、比較的大きな値のフィルタ係数が乗じられる。一方、アドレス（６，２）のＲＧＢ値には、アドレス（５．２５，２．７５）との距離が大きいため、比較的小さな値のフィルタ係数が乗じられる。
【００４５】
このようにして、補間されたＲＧＢ値を補正後のＲＧＢ値とする。
【００４６】
また、本実施形態では、補間されたＲＧＢ値を求める際の畳み込み演算では、１画素あたりに複数回のフレームメモリ１２へのアクセスが行われる。しかしながら、畳み込み演算ではフレーム中のデータ局所性を有するため、フレームメモリ１２と補正部１５ａとの間にフレームメモリ参照キャッシュ（不図示）を設けることや、メモリ参照コントローラ（不図示）を設けることで、消費電力やメモリアクセスレイテンシを削減することも可能である。
【００４７】
なお、第３の実施形態では、補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］を小数点以下２ビットの精度としたが、より高精度にしてもよい。また、補間の手法は任意でよく、４つ以上の画素のＲＧＢ値を用いて補間してもよいし、最近接の画素１つのみで補間してもよい。
このように、第３の実施形態では、補正量ＭＯＤｘ［ｙ］，ＭＯＤｙ［ｙ］を小数点以下まで算出し、１または複数の画素から補間されるＲＧＢ値を用いて補正を行う。そのため、補正量をより細かく制御でき、補正の精度が向上する。
【００４８】
なお、各実施形態の入力映像信号は、走査線毎に順に撮像されたものであればよく、ＣＭＯＳセンサでなく他の撮像装置により撮像されたものであってもよい。  
各実施形態で説明した画像処理システムの少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、画像処理システムの少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。また、画像処理システムの少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【００４９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００５０】
１  ＣＭＯＳセンサ
２，２ａ  画像処理装置
３  外部機器
１１  前処理部
１２  フレームメモリ
１３  動きベクトル生成部
１４，１４ａ  補正量生成部
１５，１５ａ  補正部
【図１】
0005351200.tif 000002
【図２】
0005351200.tif 000003
【図３】
0005351200.tif 000004
【図４】
0005351200.tif 000005
【図５】
0005351200.tif 000006
【図６】
0005351200.tif 000007
【図７】
0005351200.tif 000008
【図８】
0005351200.tif 000009
【図９】
0005351200.tif 000010