(57)【特許請求の範囲】
【請求項１】
ベイヤ配列状の原色画素配置を有する第１画像フレームに基準マクロブロックを設定する基準マクロブロック設定部と、
前記第１画像フレームに設定した基準マクロブロックのベイヤ配列状の原色画素配置と同じベイヤ配列状の原色画素配置になるように、第２画像フレームに対して探索マクロブロックを設定する探索マクロブロック設定部とを備え、
前記探索マクロブロック設定部は、前記基準マクロブロック設定部が前記第１画像フレームに設定した基準マクロブロックと空間的に同位置にある前記第２画像フレームの画素ブロックに前記基準マクロブロックと同じ大きさの探索マクロブロックを設定するものであり、前記探索マクロブロックを偶数画素毎に移動、再設定し、
前記基準マクロブロックの任意の２つの位置で前記原色画素の色の重みが一定となるように、前記基準マクロブロックに含まれる前記原色画素の各色の画素数に応じて、前記原色画素の各色の重み付けを行うことにより、前記基準マクロブロックおよび前記探索マクロブロックに対してブロックマッチングを行うことで動きベクトル又は視差情報を算出することを特徴とする画像処理装置。
【請求項２】
撮像素子の各画素に対応してベイヤ配列状のＲ・Ｇ・Ｂフィルタを備えた撮像装置において、
請求項１に記載の前記画像処理装置を備え、前記撮像素子が生成したベイヤ配列状の原色画素配置を有する画像フレームを当該画像処理装置に出力することを特徴とする撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像信号から動きベクトルや視差情報を検出する、画像処理装置および撮像装置に関し、特に、動きベクトルや視差情報の検出精度および検出処理速度の向上に関する。
【背景技術】
【０００２】
従来から、映像信号を圧縮する方法として動き補償が広く用いられている。これは、映像信号から抽出した連続する画像（映像）フレーム内のオブジェクト（要素）の移動方向、移動量を示す動きベクトルを検出し、この動きベクトル基づき画像フレームを圧縮するものであり、高圧縮率を実現する方法である。
【０００３】
動きベクトルを検出する代表的な方法として、ブロックマッチングやステレオマッチングと呼ばれる方法が提案されている。以下に、このブロックマッチング処理を説明する。
まず、連続する第１画像フレーム、第２画像フレームにおいて、第１画像フレームに例えば縦１６画素×横１６画素からなる基準マクロブロックを設定（定義）する。更に、設定した基準マクロブロックと空間的に同位置にある第２画像フレームの画素ブロックに前記基準マクロブロックと同じ大きさの探索マクロブロックを設定する。
【０００４】
その後、前記探索マクロブロックを１又は複数画素毎に上下左右に移動し、基準マクロブロックの画素の画素値と当該画素に対応する探索マクロブロックの画素の画素値との差分絶対値を算出し、ブロック内の全画素に対する前記差分絶対値の総和、すなわち、差分絶対値和が最小になる探索マクロブロックの位置を特定する。そして、この位置を基準マクロブロックの移動先のマクロブロックとみなし、基準マクロブロックの動きベクトルを得る。
前記画素値としては明るさに相当する値が用いられ、例えば、注目位置近傍の赤画素、緑画素、青画素の和を明るさ値としたり、決められた行列式によって輝度値を算出したりして求めることができる。
【０００５】
なお、異なる視点位置に配置された撮像装置から同一の被写体を撮像すれば、視差情報に基づき視点位置から被写体までの距離を算出することができる。動きベクトルの検出では連続する２画像フレームに対してブロックマッチングを行うが、被写体までの距離を算出する場合には、例えば、異なる２つの視点位置に配置された２つの撮像装置が出力した同一被写体に係る２画像フレームに対してブロックマッチングを行い前記同一被写体に対する視差情報を検出すれば、撮像装置から被写体までの距離を求めることができる。
【０００６】
ところで、撮像素子の各画素に対応してベイヤ配列状のＲ・Ｇ・Ｂフィルタが設けられている撮像装置が出力した画像フレームに基づき動きベクトルを検出することがある。この画像フレームは、デモザイク処理を行わないRAWデータ（生データ）である。
【０００７】
そして、このような画像フレーム内のオブジェクトに対して高速に動きベクトルを検出する方法が様々提案されている。
例えば、特許文献１には、図１６に示すように、Ｒ・Ｇ・Ｂフィルタ（色画素）と透明フィルタ（白色画素）とが周期的に配列されるベイヤ配列状のフィルタが設けられた撮像素子が出力する画像フレームから、白色画素（Ｐ画素）の輝度値を抽出し、この輝度値に基づき、ブロックマッチングを行い、高速に動きベクトルを検出する動きベクトル検出装置が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−１４１７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に開示の手法では、白色画素の画素値（輝度値）に基づき、ブロックマッチングにより動きベクトルを検出すると誤検出が発生する可能性がある。例えば、明るさが同じである赤色の物体Ｘと青色の物体Ｙが第１画像フレームおよび第２画像フレームにあるとする。赤色物体Ｘの明るさと青色物体Ｙの明るさは同じであるので、両物体Ｘ、Ｙの画素の輝度値としては差がない。
【００１０】
それ故、第１画像フレームの赤色物体Ｘの領域に対応するマクロブロックＭＸと、第２画像フレームの青色物体Ｙの領域に対応するマクロブロックＭＹとの間で差分絶対値和を算出して両マクロブロックのマッチングを行うと、第２画像フレームの青色物体Ｙに対応するマクロブロックＭＹが第１画像フレームの赤色物体Ｘに対応するマクロブロックＭＸの移動先ブロックであると誤認識することがあり、動きベクトルの検出精度が大きく低下する。
【００１１】
また、輝度値を精度よく検出するために、特許文献１に開示されているように透明画素を配置すると、緑色画素の個数が減少し、色の解像度が減少して撮像装置により撮像した画像の画質が低下してしまう。さらに、透明画素のノイズの影響は低減することが可能だが、色画素の透過率は、透明画素の１／３程度しかないので光量も１／３となりノイズが増加してしまい、撮像装置で撮像した画像のノイズが増加して画質が低下してしまう。
【００１２】
一方、赤色画素、緑色画素、青色画素の画素値をそのまま利用してブロックマッチングをすることも可能である。これにより色の違いによって誤検出の可能性を低減することができるが、計算量が増大してしまうという問題が発生する。すなわち、輝度を使ってブロックマッチングをするときには輝度チャネルの１チャネル分のマッチングであるが、赤色、緑色、青色の各チャネルを使うと３チャネル分のマッチングが必要となり、計算量は少なくとも３倍以上になってしまう。
【００１３】
なお、動きベクトルの検出だけではなく、視差情報の検出でも同様の問題が生じる。
【００１４】
本発明は、かかる実情に鑑みてなされたものであり、例えば撮像素子の各画素に対応してベイヤ配列状のＲ・Ｇ・Ｂフィルタが設けられている撮像装置が出力した画像フレームに基づき、ブロックマッチング法により動きベクトルや視差情報を検出する場合において、動きベクトルや視差情報を高精度、かつ、高速に検出する画像処理装置、当該装置を備えた撮像装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
第１の技術手段は、ベイヤ配列状の原色画素配置を有する第１画像フレームに基準マクロブロックを設定する基準マクロブロック設定部と、前記第１画像フレームに設定した基準マクロブロックのベイヤ配列状の原色画素配置と同じベイヤ配列状の原色画素配置になるように、第２画像フレームに対して探索マクロブロックを設定する探索マクロブロック設定部とを備え、前記探索マクロブロック設定部は、前記基準マクロブロック設定部が前記第１画像フレームに設定した基準マクロブロックと空間的に同位置にある前記第２画像フレームの画素ブロックに前記基準マクロブロックと同じ大きさの探索マクロブロックを設定するものであり、前記探索マクロブロックを偶数画素毎に移動、再設定し、前記基準マクロブロックの任意の２つの位置で前記原色画素の色の重みが一定となるように、前記基準マクロブロックに含まれる前記原色画素の各色の画素数に応じて、前記原色画素の各色の重み付けを行うことにより、前記基準マクロブロックおよび前記探索マクロブロックに対してブロックマッチングを行うことで動きベクトル又は視差情報を算出することを特徴とする画像処理装置である。
【００１９】
第２の技術手段は、撮像素子の各画素に対応してベイヤ配列状のＲ・Ｇ・Ｂフィルタを備えた撮像装置において、第１の前記画像処理装置を備え、前記撮像素子が生成したベイヤ配列状の原色画素配置を有する画像フレームを当該画像処理装置に出力することを特徴とする撮像装置である。
【発明の効果】
【００２０】
本発明によれば、例えば撮像素子の各画素に対応してベイヤ配列状のＲ・Ｇ・Ｂフィルタが設けられている撮像装置が出力した画像フレームに基づき、ブロックマッチング法により動きベクトルや視差情報を検出する場合において、基準マクロブロックのベイヤ配列状の原色画素配置と、探索マクロブロックのベイヤ配列状の原色画素配置が同じになるように、探索マクロブロックを設定するので、動きベクトルや視差情報を高精度、かつ、高速に検出することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施形態に係る画像処理装置、撮像装置の機能ブロック図である。
【図２】基準マクロブロックを示す図である。
【図３】探索マクロブロックを示す図である。
【図４】探索マクロブロックを示す図である。
【図５】探索マクロブロックを示す図である。
【図６】基準マクロブロック、探索マクロブロックの設定処理、動きベクトルの検出処理を説明するためのフロー図である。
【図７】基準マクロブロックを示す図である。
【図８】基準マクロブロックを示す図である。
【図９】基準マクロブロックを示す図である。
【図１０】基準マクロブロックを示す図である。
【図１１】基準マクロブロックを示す図である。
【図１２】基準マクロブロックを示す図である。
【図１３】本発明の第２の実施形態に係る画像処理装置、撮像装置の機能ブロック図である。
【図１４】探索マクロブロックを示す図である。
【図１５】画素配置を入れ替えた後の探索マクロブロックを示す図である。
【図１６】従来技術を説明する図である。
【発明を実施するための形態】
【００２２】
以下、図面を使って本発明の実施の形態を詳細に説明する。なお、各図における構成は理解しやすいように誇張して記載しており、実際の間隔や大きさとは異なる。
（実施形態１）
図１は、本発明の第１の実施形態に係る画像処理装置１および画像処理装置１に接続される撮像装置２の機能ブロック図である。
画像処理装置１は、動きベクトル検出部１１を備え、撮像装置２は、撮像部２１、画像フレームメモリ２２を備える。
【００２３】
まず、撮像装置２の機能ブロックについて説明する。
撮像部２１は、ＣＣＤ、ＣＭＯＳ等の撮像素子を備え、撮像素子には光の波長を選択するＲ・Ｇ・Ｂフィルタが設けられている。Ｒ・Ｇ・Ｂフィルタは、ベイヤ配列状のＲ・Ｇ・Ｂフィルタから構成され、各色のフィルタが撮像素子の各画素に対応して設けられている。撮像部２１は、各画素における光電変換により画像フレーム（画像データ）を生成し、画像フレームメモリ２２に出力する。この画像フレームは、ベイヤ配列状の原色画素配置（ベイヤ配列状のＲ・Ｇ・Ｂ画素配置）を有するものである。
画像フレームメモリ２２は、画像フレームを記憶するメモリで、少なくとも２つの画像フレームを記憶できる記憶容量を有している。
【００２４】
次に、画像処理装置１の機能ブロックについて説明する。
動きベクトル検出部１１は、撮像装置２の画像フレームメモリ２２に記憶されている画像フレームの画素（物体）に対して動きベクトルを検出する。なお、後述するように、動きベクトル検出部１１は、動きベクトルだけなく、視差情報なども検出することができる。
画像フレームメモリ２２には連続する２つの画像フレームである第１画像フレーム、第２画像フレームが記憶されているものとする。撮像部２１が動いている被写体を撮像した場合には、被写体の画像内での位置が異なって撮像されている。
【００２５】
なお、視差情報を検出する場合、異なる２つの視点位置に配置された２つの撮像装置が出力した同一被写体に係る２画像フレームが第１画像フレーム、第２画像フレームとして、ベクトル検出部１１に入力される。
【００２６】
動きベクトル検出部１１の基準マクロブロック設定部１１ａは、画像フレームメモリ２２の第１画像フレームに対して基準マクロブロックを設定（定義）する。
すなわち、撮像素子（撮像部２１）の各画素に対応してベイヤ配列状のＲ・Ｇ・Ｂフィルタが設けられている撮像装置２が出力した、ベイヤ配列状の原色画素配置を有する第１画像フレームに基準マクロブロックを設定する。
【００２７】
探索マクロブロック設定部１１ｂは、基準マクロブロック設定部１１ａが第１画像フレームに設定した基準マクロブロックのベイヤ配列状の原色画素配置と同じベイヤ配列状の原色画素配置になるように第２画像フレーム（次画像フレーム）に対して探索マクロブロックを設定する。なお、第２画像フレームもベイヤ配列状の原色画素配置を有する。
【００２８】
差分絶対値和算出部１１ｃは、基準マクロブロックの画素の画素値と当該画素に対応する探索マクロブロックの画素の画素値との差分絶対値を算出し、ブロック内の全画素に対する前記差分絶対値の総和、すなわち、差分絶対値和を算出し、差分絶対値和評価部１１ｄに出力する。このとき、基準マクロブロック、探索マクロブロックの座標情報も差分絶対値和評価部１１ｄに出力する。座標情報は、例えば、撮像素子における各マクロブロックの左上のｘｙ座標、撮像素子における各マクロブロックの中心のｘｙ座標、基準マクロブロックを原点とした相対座標、メモリ上のアドレスなどでよい。
【００２９】
差分絶対値和評価部１１ｄは、差分絶対値和算出部１１ｃから入力された各マクロブロックの差分絶対値和を比較し、差分絶対値和が最小になる探索マクロブロックの位置を特定する。
【００３０】
以下に、本発明の動きベクトル検出処理の詳細について説明する。
図２は、撮像部２１の撮像素子が出力する画像フレームの一部分を示している。
図２のマトリクスで示される画素の上段に記載された文字のＲ・Ｇ・Ｂがそれぞれ赤色画素・緑色画素・青色画素を示し、同下段に記載された４桁の数値は、画素の位置情報を示し、上２桁が列番号、下２桁が行番号を示している。
図２のベイヤ配列は、縦横２画素（計４画素）を一組とする画素ブロックにおいて、２画素のＧ画素が斜めに、また、１画素のＲ画素、１画素のＢ画素が斜めに配置されている配列である。
【００３１】
まず、基準マクロブロック設定部１１ａは、図２に示すように、第１画像フレームに対して基準マクロブロックを設定する。本実施形態では、基準マクロブロックの大きさは、縦８画素、横８画素であるとする。
さらに、探索マクロブロック設定部１１ｂは、図３に示すように、基準マクロブロック設定部１１ａが第１画像フレームに設定した基準マクロブロックと空間的に同位置にある第２画像フレームの画素ブロックに前記基準マクロブロックと同じ大きさの探索マクロブロックを設定する。
【００３２】
探索マクロブロックの設定が終了すると、差分絶対値和算出部１１ｃは、基準マクロブロックの画素の画素値（以下、基準マクロブロックの画素値と略記する）と当該画素に対応する探索マクロブロックの画素の画素値（以下、探索マクロブロックの画素値と略記する）との差分絶対値を算出し、ブロック内の全画素に対する差分絶対値和Ｓを算出する。
【００３３】
例えば、基準マクロブロックの画素値をＰ、探索マクロブロックの画素値をＰ’として、マクロブロック内での位置を縦方向ｉ、横方向ｊとすると、差分絶対値和Ｓは、（式１）により算出される。
Ｓ＝ΣΣ｜Ｐｉｊ−Ｐ’ｉｊ｜……（式１）
【００３４】
図２の基準マクロブロックと図３の探索マクロブロックとから差分絶対値和を求める場合、図２の基準マクロブロック左上Ｇ０１０１の画素値と、図３の探索マクロブロック左上Ｇ’０１０１の画素値の差、同Ｂ０２０１の画素値と同Ｂ’０２０１の画素値の差、同Ｒ０１０２の画素値と同Ｒ’０１０２の画素値の差のようにブロック内の全画素に対して画素値の差を算出し、その総和を算出する。
すなわち、図２の基準マクロブロックの画素値と図３の探索マクロブロックの画素値との差分算出においては、互いに同じ色の画素値の差分を算出する。
【００３５】
図２の基準マクロブロックの画素値と図３の探索マクロブロックの画素値による差分絶対値和Ｓの算出が終了すると、差分絶対値和算出部１１ｃは、算出結果を差分絶対値和評価部１１ｄに出力する。
【００３６】
差分絶対値和評価部１１ｄは、差分絶対値和算出部１１ｃから入力された各マクロブロックの差分絶対値和を比較し、その最小値を記憶する。
【００３７】
次に、探索マクロブロック設定部１１ｂは、第２画像フレームに設定した探索マクロブロックを移動し、再設定するが、このとき、図４に示すように、図３に示す探索マクロブロックから右に１画素分移動し、再設定するとする。
このとき、図２に示す基準マクロブロックのベイヤ配列状の原色画素配置と、図４に示す探索マクロブロックのベイヤ配列状の原色画素配置は異なる。例えば、図２の基準マクロブロック左上Ｇ０１０１、その右Ｂ０２０１、その下Ｒ０１０２は、それぞれ、図４の探索マクロブロック左上Ｂ’０２０１、Ｇ’０３０１、Ｇ’０２０２と対応し、両マクロブロックのベイヤ配列状の原色画素配置は異なっている。
【００３８】
このような異なる色の画素値に基づいて算出した両マクロブロックの差分絶対値和Ｓは、差分絶対値和が最小となっても異なる色を比較しているため、誤検出である可能性が高くなる。
そこで、本発明の探索マクロブロック設定部１１ｂは、基準マクロブロックのベイヤ配列状の原色画素配置と、探索マクロブロックのベイヤ配列状の原色画素配置が同じになるように、探索マクロブロックを第２画像フレームに設定する。
上記の例では、探索マクロブロック設定部１１ｂは、図３に示す探索マクロブロックから横方向に２画素（偶数画素）ずらした図５の探索マクロブロックを第２画像フレームに設定する。
【００３９】
このとき、図２の基準マクロブロック左上Ｇ０１０１、その右Ｂ０２０１、その下Ｒ０１０２は、ぞれぞれ、図５の探索マクロブロック左上Ｇ’０３０１、Ｂ’０４０１、Ｒ’０３０２と対応し、両マクロブロックのベイヤ配列状の原色画素配置は同じになる。
この探索マクロブロックの設定が終了すると、差分絶対値和算出部１１ｃは、図２の基準マクロブロックの画素値の画素値と図５の探索マクロブロックの画素値による差分絶対値和Ｓを算出する。
【００４０】
以後、探索マクロブロック設定部１１ｂは、第１画像フレームに設定された基準マクロブロックのベイヤ配列状の原色画素配置と、探索マクロブロックのベイヤ配列状の原色画素配置が同じになるように、探索マクロブロックを第２画像フレームに設定する。上記の例では、探索マクロブロックを偶数画素毎に移動、再設定する。
【００４１】
上記に説明した、基準マクロブロック、探索マクロブロックの設定処理、動きベクトルの検出処理の一例を図６のフロー図を用いて説明する。なお、図６のフロー図で説明する動きベクトルの検出処理は、例えばソフトウエアを用いて本発明に係る動きベクトル検出処理を実行することを前提としており、ハードウエアを用いて本発明に係る動きベクトル検出処理を実行する場合には、前記動きベクトルの検出処理は並列処理で実行してもよい。
【００４２】
基準マクロブロック設定部１１ａは、撮像装置２の画像フレームメモリ２２に記憶されている第１画像フレームに基準マクロブロックを設定する（ステップＳ１）。
【００４３】
次に、探索マクロブロック設定部１１ｂは、第１画像フレームの次画像フレーム（第２画像フレーム）に対して、第１画像フレームに設定された基準マクロブロックと空間的に同位置にある第２画像フレームの画素ブロックに前記基準マクロブロックと同じ大きさの探索マクロブロックを設定する（ステップＳ２）。なお、探索マクロブロックと基準マクロブロックは、空間的に同位置にあるので各ブロックの色配置は同じである。
【００４４】
差分絶対値和算出部１１ｃは、基準マクロブロックの画素値と探索マクロブロックの画素値との差分絶対値和Ｓを算出し、算出結果を各マクロブロックの座標情報と共に差分絶対値和評価部１１ｄに出力する（ステップＳ３）。
【００４５】
次に、探索マクロブロック設定部１１ｂは、基準マクロブロックのベイヤ配列状の原色画素配置と、探索マクロブロックのベイヤ配列状の原色画素配置が同じになるように、設定した探索マクロブロックを例えば左から右に偶数画素毎（上から下に偶数画素）移動し、再設定する（ステップＳ４）。
【００４６】
そして、探索マクロブロックの設定後、ステップ３で説明したように、基準マクロブロックの画素値と探索マクロブロックの画素値との差分絶対値和Ｓを算出し、算出結果を各マクロブロックの座標情報と共に差分絶対値和評価部１１ｄに出力する。
【００４７】
第２画像フレームの所定領域に対して、ステップＳ４で説明した探索マクロブロックの設定処理、差分絶対値和Ｓの算出処理を繰り返し実行し（ステップＳ３〜ステップＳ５）、第２画像フレームの所定領域に対する当該設定処理、算出処理が終了すると（ステップＳ５／ＹＥＳ）、ステップＳ６の処理を実行する。なお、前記所定領域は、アルゴリズムや精度、処理量などに基づき決定され、例えば、フレーム間の移動距離が最大３２画素となる物体まで探索する場合、注目画素に対して±３２画素の範囲を所定領域とすればよい。設定処理が終了しない場合（ステップＳ５／ＮＯ）、ステップＳ３に戻る。
【００４８】
ステップＳ６で、差分絶対値和評価部１１ｄは、最小の差分絶対値和に対応する探索マクロブロックを特定する。そして、動きベクトル検出部１１は、前記特定された探索マクロブロックが基準マクロブロックの移動先マクロブロックとみなし、当該基準マクロブロックの座標情報と、前記特定された、最小差分絶対値和の探索マクロブロックの座標情報に基づき、当該基準マクロブロックの動きベクトルを検出する。
【００４９】
第１画像フレームの所定領域に対して、基準マクロブロックの設定処理が終了すると（ステップＳ７／ＹＥＳ）、処理を終了する。なお、次は、第２画像フレームに対して基準マクロブロックを設定し、第３画像フレームに対して探索マクロブロックを設定することになる。
【００５０】
第１画像フレームの所定領域に対して、基準マクロブロックの設定処理が終了しない場合（ステップＳ７／ＮＯ）、ステップＳ１に戻る。このステップでは、第１画像フレームに設定した基準マクロブロックを例えば左から右に１画素分（上から下に１画素分）移動し、再設定する。なお、基準マクロブロックの移動量（移動画素）は、撮像された映像の画角、撮像素子の解像度、必要とする動きベクトル解像度などによって適切に決められる。
【００５１】
ステップＳ４で説明したように、基準マクロブロックの画素の色と、当該基準マクロブロックに対応する探索マクロブロックの画素の色とを同色にして動きベクトルを検出すると、輝度情報を使ったときと同じ処理量でありながら、検出精度を向上させることが可能である。
【００５２】
また、探索マクロブロックを誤検出となる可能性が高い位置に移動せず、画素の色が同じになるように移動させるので、動きベクトル検出時の計算量が半分以下となる効果もある。
【００５３】
次に、マクロブロックの大きさについて説明する。図２で説明した基準マクロブロックの大きさは縦８画素、横８画素であったが、他にも様々な大きさの基準マクロブロックを設定することができる。
例えば、図７、図８に示すように、基準マクロブロックの大きさを縦８画素、横７画素とすることができる。しかし、この場合、下記のような問題が生じるので差分絶対値和の算出において補正処理を実行する。
【００５４】
図７に示す基準マクロブロックの大きさは縦８画素、横７画素である。このとき、図８に示す基準マクロブロックと図７に示す基準マクロブロックとを比較する。図８に示す基準マクロブロックは、図７に示す基準マクロブロックを横に１画素ずらした基準マクロブロックである。
【００５５】
図７の基準マクロブロック内の緑画素の個数は２８個、同赤画素の個数は１６個、同青画素の個数は１２個である。同じく、図８の基準マクロブロック内の緑画素の個数は２８個、赤画素の個数は１２個、青画素の個数は１６個である。
したがって、前述したように、基準マクロブロック内の各画素の画素値と当該基準マクロブロックに対応する探索マクロブロック内の各画素の画素値を用いて差分絶対値和を算出すると、図７の基準マクロブロックは図８の基準マクロブロックに比べて緑画素が同数で、赤画素が多く、青画素が少ないので、赤画素に重み付けされていることになる。
すなわち、隣接する基準マクロブロックであっても、重み付けが異なる差分絶対値和が算出され、基準マクロブロックの動きベクトルの検出結果が異なる可能性がある。
【００５６】
このような基準マクロブロックと当該基準マクロブロックに対応する探索マクロブロックに基づいて動きベクトルを検出した場合、動きベクトルは正しく検出されているように思えるが、実際には、特に、隣接する基準マクロブロックの画素値が同じような値を取る場合、動きベクトルを正しく検出することができず、全体として見ると値にばらつきのある誤検出に似た状態となる。
【００５７】
基準マクロブロックの縦の画素数が奇数、横の画素数が偶数でも同様で、例えば、縦の画素数が９画素、横の画素数が８画素である、図９、図１０に示す基準マクロブロックを比較する。
図９の基準マクロブロック内の緑画素の個数は３６個、赤画素の個数は１６個、青画素の個数は２０個である。図１０の基準マクロブロック内の緑画素の個数は３６個、赤画素の個は１６個、青画素の個数は２０個である。したがって、緑色に対する赤色および青色の重み付けが異なることになる。
【００５８】
基準マクロブロックの縦の画素数が奇数、横の画素数が奇数でも同様で、例えば、縦の画素数が７画素、横の画素数が７画素である図１１、図１２に示す基準マクロブロックを比較する。
図１１の基準マクロブロック内の緑画素の個数は２５個、赤画素の個数は１２個、青画素の個数は１２個である。図１２の基準マクロブロック内の緑画素の個数は２４個、赤画素の個数は９個、青画素の個数は１６個である。したがって、全ての色での重み付けが異なることになる。
【００５９】
以上より、全ての色で重み付けが変わらない基準マクロブロックの大きさは、縦横の画素数が偶数の場合であることがわかる。したがって、基準マクロブロックを縦横が偶数画素となるように設定することで、基準マクロブロックの設定の仕方によって色の重み付けが変化せず、良好な算出結果を得ることができる。
【００６０】
しかしながら、基準マクロブロックを設定するときに、画像フレームの注目画素に対して基準マクロブロックの縦横幅を対称（当該注目画素に基準マクロブロックの中心画素をあわせる）にしたい場合など、奇数の画素数により構成したい場合も存在する。
そこで、マクロブロックの縦の画素数、横の画素数が奇数である場合には色画素の個数を考慮して、差分絶対値の算出結果に補正計算処理を実行することで、差分絶対値和を算出する。
例えば、縦が７画素、横が７画素である図１１、図１２に示す基準マクロブロックで説明すると、図１１に示す基準マクロブロックの場合、差分絶対値和算出部１１ｃは、緑画素の差分絶対値算出結果をブロック内緑画素数（２５）で除算、赤画素の差分絶対値算出結果をブロック内赤画素数（１２）で除算、青画素の差分絶対値算出結果をブロック内青画素数（１２）で除算して、各除算値の和を算出する。
【００６１】
また、図１２に示す基準マクロブロックの場合、差分絶対値和算出部１１ｃは、緑画素の差分絶対値算出結果を２４で除算、赤画素の差分絶対値算出結果を９で除算、青画素の差分絶対値算出結果を１６で除算して、各除算値の和を算出する。このようにすることで、各色の重み付けを均一にすることができ、基準マクロブロックの大きさによって色の重み付けが変化せず、良好な算出結果を得ることができる。
【００６２】
なお、マクロブロックの縦横の画素数をそれぞれ偶数になるように探索マクロブロック設定すれば、色の重み付けが変化せず良好な算出が可能である。
【００６３】
（実施形態２）
次に、本発明の第２の実施形態について図面を参照しながら説明する。なお、第１の実施の形態と同様の機能を有する部分については同一の符号を付して、その説明を省略している。
図１３は、本発明の第２の実施形態に係る画像処理装置１’および画像処理装置１’に接続される撮像装置２の機能ブロック図である。
【００６４】
第１の実施形態に係る画像処理装置１の探索マクロブロック設定部１１ｂは、基準マクロブロックのベイヤ配列状の原色画素配置と、探索マクロブロックのベイヤ配列状の原色画素配置が同じになるように、探索マクロブロックを第２画像フレームに設定した。
【００６５】
しかし、基準マクロブロックのベイヤ配列状の原色画素配置と、探索マクロブロックのベイヤ配列状の原色画素配置が異なる場合でも、設定した探索マクロブロックの画素の配置を入れ替えることで、基準マクロブロックのベイヤ配列状の原色画素配置と、探索マクロブロックのベイヤ配列状の原色画素配置とを同じにすることができる。
【００６６】
探索マクロブロック設定部１１ｂ’は、基準マクロブロック設定部１１ａが第１画像フレームに設定した基準マクロブロックと空間的に同位置にある第２画像フレームの画素ブロックに基準マクロブロックと同じ大きさの探索マクロブロックを設定し、当該探索マクロブロックを１画素または奇数画素毎に移動、再設定する。
このとき、第１の実施形態とは異なり、第１画像フレームに設定された基準マクロブロックのベイヤ配列状の原色画素配置と、探索マクロブロックのベイヤ配列状の原色画素配置は異なってもよい。
【００６７】
例えば、本発明の第２の実施形態に係る画像処理装置１’の探索マクロブロック設定部１１ｂ’は、図２に示す基準マクロブロックに対応する探索マクロブロックを図１４に示すように第２画像フレームに設定するとする。この場合、基準マクロブロックのベイヤ配列状の原色画素配置と、探索マクロブロックのベイヤ配列状の原色画素配置とは異なる。
【００６８】
そこで、本発明の画像処理装置１’の画素配置入れ替え部１１ｅは、設定（再設定）した探索マクロブロックのベイヤ配列状の原色画素配置と基準マクロブロックのベイヤ配列状の原色画素配置とが異なることを検出すると、探索マクロブロックの原色画素配置を入れ替えることで、探索マクロブロックのベイヤ配列状の原色画素配置を基準マクロブロックのベイヤ配列状の原色画素配置と同じにする。
【００６９】
なお、探索マクロブロックが、基準マクロブロックから奇数画素分移動したことを検出することにより、両マクロブロックの原色画素配置が異なるとみなすことができる。
【００７０】
図１４の例では、画素配置入れ替え部１１ｅは、探索マクロブロックの赤画素と青画素とを入れ替える。
【００７１】
図１５は、図１４の探索マクロブロックの赤画素と青画素とを入れ替えた場合の探索マクロブロックを示している。図１５に示す探索マクロブロックは、図２に示す基準マクロブロックの赤画素の画素配置と青画素の画素配置に対応するように、Ｒ’０３０２とＢ’０２０３を入れ替えている。同じく、Ｒ’０５０２とＢ’０４０３、Ｒ’０７０２とＢ’０６０３を入れ替えている。
【００７２】
以後、前述したように、動きベクトル検出部１１’は、基準マクロブロックおよび探索マクロブロックに対してブロックマッチングを行うことにより動きベクトルを検出する。
【００７３】
このようにすることで、基準マクロブロックと探索マクロブロックの画素の色が互いに同じになり、差分絶対値和が正しく算出される。
このように、基準マクロブロックに対して縦に奇数画素、横に奇数画素ずれた探索マクロブロックにおいて、各マクロブロックの画素の色が互いに同じになるように原色画素配置を変えることで、正しく差分絶対値和が算出できるようになる。
【００７４】
実施形態２の画像処理装置では、緑画素の位置を変化させずに、赤画素と青画素の位置を入れ替えている。前述したように、赤画素数と青画素数が異なると、差分絶対値和に誤差が生じることになるので、マクロブロック内の赤色画素数と青色画素数とが同数になるように基準マクロブロックの大きさ、探索マクロブロックの大きさを決定することが好ましい。
【００７５】
実施形態２の画像処理装置によれば、基準マクロブロックのベイヤ配列状の原色画素配置と、探索マクロブロックのベイヤ配列状の原色画素配置が異なっていても、差分絶対値和を正しく算出できる。
【００７６】
また、実施形態２の画像処理装置によれば、動きベクトルや視差の分解能を向上させることができる。実施形態１では、探索マクロブロックを偶数画素毎に移動させたが、この場合、探索マクロブロックの最小移動量は縦横２画素分の距離となる。一方、本実施形態では探索マクロブロックの最小移動量は縦横１画素分の距離である。したがって、探索マクロブロック間距離を√２とすることができる。よって、探索マクロブロックの移動が細かくなり、動きベクトルや視差などの算出分解能を向上させることができる。
【００７７】
本実施形態では差分絶対値和（ΣΣ｜Ｐｉｊ−Ｐ’ｉｊ｜）を利用して動きベクトルを検出したが、差分二乗和（ΣΣ（Ｐｉｊ−Ｐ’ｉｊ）２）を利用して動きベクトルを検出してもよい。
【００７８】
本実施形態では動きベクトルの検出について説明したが、本発明は、ブロックマッチングを使用するあらゆる処理に適用することができる。
例えば、視差情報に基づき被写体から撮像装置までの距離を算出する際に本発明を適用してもよい。この場合、例えば、異なる２つの視点位置に配置された２つの撮像装置が出力した同一被写体に係る２画像フレームに対して、本発明のブロックマッチングを行えば前記同一被写体に対する視差を検出することができ、被写体から撮像装置までの距離を求めることができる。
なお、視差の検出は、従来から提案されている様々な方法を用いることができる。
【００７９】
また、通常の撮像装置では、撮像素子に光を導くための光学系が備えられており、これにより撮像素子での照度ムラが発生する場合には、シェーディング補正などの処理を画像データに対して行った後に、ブロックマッチングを行うことで検出精度を向上させることができる。さらに、撮像素子の画素間のムラや傷欠陥などの補正処理を行った後に、ブロックマッチングを行うことで検出精度を向上させることができる。
【００８０】
撮像素子２と画像処理装置１とを一体にしてもよい。この場合、撮像装置２は、画像処理装置１を備え、撮像装置２の撮像部２１が生成したベイヤ配列状の原色画素配置を有する画像フレームを画像処理装置１に出力することになる。なお、撮像素子２と画像処理装置１’とを一体にしてもよい。
また、撮像装置２２のフレームメモリ２２を、画像処理装置１，１’に設けてもよい。
【符号の説明】
【００８１】
１，１’…画像処理装置、１１，１１’…動きベクトル検出部、１１ａ…基準マクロブロック設定部、１１ｂ…探索マクロブロック設定部、１１ｃ…差分絶対値和算出部、１１ｄ…差分絶対値和評価部、１１ｅ…画素配置入れ替え部、２…撮像装置、２１…撮像部、２２…画像フレームメモリ。
【図１】
0005400573.tif 000002
【図２】
0005400573.tif 000003
【図３】
0005400573.tif 000004
【図４】
0005400573.tif 000005
【図５】
0005400573.tif 000006
【図６】
0005400573.tif 000007
【図７】
0005400573.tif 000008
【図８】
0005400573.tif 000009
【図９】
0005400573.tif 000010
【図１０】
0005400573.tif 000011
【図１１】
0005400573.tif 000012
【図１２】
0005400573.tif 000013
【図１３】
0005400573.tif 000014
【図１４】
0005400573.tif 000015
【図１５】
0005400573.tif 000016
【図１６】
0005400573.tif 000017