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