(57)【要約】【課題】３階層以上の画像を対象として階層処理を行う際に、少ない分割数で階層処理を行えるようにする。【解決手段】分割部２００は、１／２５６ゲイン画像、１／１６ゲイン画像をｘ個のブロックに分割する。拡大部Ａ２０１は、１／２５６ゲイン画像を分割ブロック単位で入力し、拡大する。階層加算部Ａ２０３は、１／１６ゲイン画像を分割ブロック単位で入力し、拡大した１／２５６ゲイン画像と階層加算し、中間ゲイン画像として出力する。次に、分割部２００は、中間ゲイン画像、１／１ゲイン画像をｘとは異なるｙ個のブロックに分割する。階層加算部Ａ２０３は、中間ゲイン画像をスルーし、拡大部Ｂ２０４は、中間ゲイン画像を分割ブロック単位で入力し、拡大する。階層加算部Ｂ２０６は、１／１ゲイン画像を分割ブロック単位で入力し、拡大した中間ゲイン画像と階層加算する。【選択図】図２
2017117103.tif 000002
【特許請求の範囲】
【請求項１】
上位階層の画像を縮小して下位階層の画像を生成し、３階層以上の画像を対象として階層処理を行う画像処理装置であって、
少なくとも２階層以上の下位階層群の画像を対象として階層処理を行い、中間画像を生成する第１の階層処理手段と、
前記中間画像を最下位階層の画像として含めた上位階層群の画像を対象として、前記各画像を複数ブロックに分割して階層処理を行う第２の階層処理手段とを備えたことを特徴とする画像処理装置。
【請求項２】
前記第１の階層処理手段は、前記下位階層群の画像を対象として、前記各画像を複数ブロックに分割して階層処理を行い、
前記第１の階層処理手段での画像の分割と、前記第２の階層処理手段での画像の分割とで分割数を異ならせることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１の階層処理手段は、前記下位階層群の中の最下位階層の画像の分割ブロックのサイズが整数となるように分割することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第２の階層処理手段は、前記中間画像の分割ブロックのサイズが整数となるように分割することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記第１の階層処理手段は、前記下位階層群の画像を分割せずに階層処理を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項６】
上位階層の画像を縮小して下位階層の画像を生成し、３階層以上の画像を対象として階層処理を行う画像処理装置の制御方法であって、
少なくとも２階層以上の下位階層群の画像を対象として階層処理を行い、中間画像を生成するステップと、
前記中間画像を最下位階層の画像として含めた上位階層群の画像を対象として、前記各画像を複数ブロックに分割して階層処理を行うステップとを有することを特徴とする画像処理装置の制御方法。
【請求項７】
上位階層の画像を縮小して下位階層の画像を生成し、３階層以上の画像を対象として階層処理を行うためのプログラムであって、
少なくとも２階層以上の下位階層群の画像を対象として階層処理を行い、中間画像を生成する第１の階層処理と、
前記中間画像を最下位階層の画像として含めた上位階層群の画像を対象として、前記各画像を複数ブロックに分割して階層処理を行う第２の階層処理とをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位階層の画像を縮小して下位階層の画像を生成し、３階層以上の画像を対象として階層処理を行う画像処理装置、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
撮像装置等の画像処理装置では、画像の拡大及び縮小処理が用いられる。一般に画像処理装置では、画像をラスター方向に処理する。よって垂直方向の拡大や縮小処理において複数ラインを参照するタップ処理を行う場合は、ラインメモリを使用する。画像一面を一度に処理する場合、ラインメモリは画像の水平サイズ分必要になる。近年、撮像装置の画素数の増加や、４ｋ、８ｋ等の次世代ハイビジョン規格の普及により、画像処理装置が扱う画素数が増加している。ラインメモリの使用量が大きくなると、機能実現のためのコストが増えることになる。
【０００３】
上記課題を解決するために、画像を水平に分割し、分割ブロック単位で処理を行い、ラインメモリの使用量を減らすことで、低コストで機能を実現する技術が提案されている。
特許文献１では、画像を、ラインメモリの容量に応じた分割数で行方向で分割し、その分割による矩形の分割領域毎に部分画像の拡大処理または縮小処理を実行する技術が提案されている。特許文献１では、画像を複数の分割領域に分割して処理し、分割領域毎の部分画像を合成する場合に、分割境界での画像の不連続の発生を防止または抑制するためにオーバラップ処理を行うことが記載されている。
【０００４】
一方、近年、画像処理において、コストを抑えて多タップ処理を実現するために階層処理が用いられることが多い。階層処理では、例えば以下のような処理を行う。まず、入力画像を縮小する。次に、縮小された画像を拡大することで、元の画像と同じ画像サイズだが高周波成分を取り除いた画像を生成することができる。そして、元の画像と高周波成分を取り除いた画像を階層加算により合成することで、周波数に依存した高度な処理を行うことが可能になる。
階層処理の例として、トーンマッピング処理が挙げられる。トーンマッピング処理では、高周波成分と低周波成分を比較し、画像のエッジ部とベタ部を切り分けることで画質を維持しながら暗部補正等のトーン補正処理を行う。階層処理を多階層で行うことで、精度よく複数の周波数成分を検出することができ、補正効果を高めることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５７０３７６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
分割ブロック毎に階層処理を行う場合、各分割ブロックの水平サイズは下位階層の画像の縮小率の定数倍や一次関数にすることが多い。なぜならば、上記のようにサイズ設定することで、下位階層の画像の各分割ブロックのサイズや開始画素位置を整数で算出することができ、さらに分割ブロック毎にメモリからの読み出しサイズや位置を一定にすることができるからである。これにより、画像の読み出しや階層処理の制御を簡易的に行うことができ、コストを抑えて機能を実装することが可能となる。
しかしながら、下位階層の画像の縮小率が小さい場合、分割ブロックのサイズの制約が大きくなることで、処理パフォーマンスの低下につながる場合がある。例えば下位階層の画像の解像度が１／２５６の場合、下位階層の画像の分割ブロックのサイズや開始画素位置を整数にしようとすると、元の解像度の画像は２５６の倍数の水平サイズで処理する必要がある。そのため、分割ブロック毎の水平サイズを十数画素単位といった細かさでは制御できなくなる。分割ブロックのサイズの制約により、画像サイズによっては画像の分割数が増える場合がある。分割数が増えると、フィルタ処理等で使用する周囲のオーバラップ画素分だけトータルで処理する画素数が増加したり、分割毎に必要な制御期間が積算されたりすることで処理パフォーマンスが低下してしまう。
【０００７】
本発明は上記の問題点に鑑みてなされたものであり、少ない分割数で階層処理を行えるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の画像処理装置は、上位階層の画像を縮小して下位階層の画像を生成し、３階層以上の画像を対象として階層処理を行う画像処理装置であって、少なくとも２階層以上の下位階層群の画像を対象として階層処理を行い、中間画像を生成する第１の階層処理手段と、前記中間画像を最下位階層の画像として含めた上位階層群の画像を対象として、前記各画像を複数ブロックに分割して階層処理を行う第２の階層処理手段とを備えたことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、下位階層群と上位階層群に分けて階層処理を行うようにしたので、少ない分割数で階層処理を行うことができ、処理パフォーマンスの向上を実現することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係る画像処理装置の基本構成を示すブロック図である。
【図２】第１の実施形態に係る画像処理装置の階層処理部の処理ブロックを示す図である。
【図３】下位の階層の画像から順に拡大して階層加算していく階層処理を示すフローチャートである。
【図４】第１の実施形態に係る画像処理装置が実行する下位階層群と上位階層群に分けた階層処理を示すフローチャートである。
【図５】第１の実施形態における画像の分割の考え方を説明するための図である。
【図６】画像の分割の例を説明するための図である。
【図７】画像の分割の例を説明するための図である。
【図８】第２の実施形態に係る画像処理装置の基本構成を示すブロック図である。
【図９】第２の実施形態に係る画像処理装置の階層処理部の処理ブロックを示す図である。
【図１０】第２の実施形態に係る画像処理装置において下位階層群と上位階層群に分けた階層処理を示すフローチャートである。
【図１１】第２の実施形態における画像の分割の考え方を説明するための図である。
【図１２】画像の分割の例を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明の好適な実施形態について説明する。
（第１の実施形態）
図１は、第１の実施形態に係る画像処理装置の基本構成を示すブロック図である。画像処理装置は、トーンマッピングにより、画像に対して画素毎に異なるゲインを掛ける機能を実施する構成となっている。
入力画像１００は、例えば不図示の撮像素子から出力され、撮像素子に起因するノイズ等を取り除いた画像である。撮像素子は一般的にベイヤ配列になっており、赤（Ｒ）、緑（Ｇ）、青（Ｂ）が規則正しく配列されている。本実施形態では、後段の処理と遅延量を合わせるために画像を一度不図示のメモリに置き、メモリから読み出した画像を入力画像１００とするが、撮像素子から直接出力された画像を入力画像１００としてもよい。
【００１２】
輝度変換部１０１は、入力画像１００に係数を乗算することで輝度画像に変換する。係数は、撮像素子の配列に合わせて色毎に与えられる。
ゲイン生成部１０２は、輝度変換部１０１で生成された輝度画像に対して、係数を乗算することによりゲイン画像に変換する。本実施形態では、トーンマッピングを行うためのゲイン画像を生成するので、輝度値が小さいほど大きなゲインとなるような係数を乗算する。ゲイン生成部１０２で生成されたゲイン画像は、後段の処理と遅延量を合わせるために一度メモリに書き出し、等倍で１／１ゲイン画像１０３とする。
【００１３】
縮小部１０４は、ゲイン生成部１０２で生成されたゲイン画像に縮小処理を行い、下位階層の画像として縮小ゲイン画像１０５、１０６を生成する。縮小処理は、公知の方法で行えばよく、例えば画像をブロック毎に加算し、加算した画素数で正規化する等の方法がある。本実施形態では、縮小部１０４は、１／１６及び１／２５６の縮小率で縮小し、１／１６ゲイン画像１０５及び１／２５６ゲイン画像１０６を生成する。
ここで、１／１ゲイン画像１０３、１／１６ゲイン画像１０５及び１／２５６ゲイン画像１０６は、いずれもゲイン画像であるが、含まれている情報の差分としては縮小率が高いほど高周波成分が取り除かれ、低周波成分が残っている画像となる。
【００１４】
階層処理部１０７は、１／１ゲイン画像１０３、１／１６ゲイン画像１０５及び１／２５６ゲイン画像１０６を対象として階層処理を行い、ゲインマップ画像を生成する。階層処理部１０７の処理内容については後述する。また、階層処理部１０７では中間画像として中間ゲイン画像１０８を生成するが、中間ゲイン画像１０８についても後述する。
ゲイン乗算部１０９は、階層処理部１０７で生成されたゲインマップ画像を入力画像１００に乗算し、出力画像１１０を生成する。暗い領域ほど大きなゲインとなるようにしているので、全体的に暗部に対して比較的大きなゲインがかかり、暗部補正によるトーンマッピング処理を行う。
入力セレクタ１１１は、階層処理部１０７に入力するデータを選択し、ここでは１／１６ゲイン画像１０５又は中間ゲイン画像１０８を選択する。
【００１５】
図２を参照して、階層処理部１０７の処理ブロックについて説明する。
分割部２００は、入力画像を複数ブロックに分割する。
拡大部Ａ２０１は、入力３として１／２５６ゲイン画像１０６を入力して拡大処理を行う。本実施形態では、１／１６及び１／２５６の縮小率に鑑みて、例えば１６倍に拡大する。拡大方法は、例えば隣接画素のバイリニア補間で行えばよい。垂直方向の補間を行うため、拡大部Ａ２０１はラインメモリ２０２を使用する。
階層加算部Ａ２０３は、入力２として１／１６ゲイン画像１０５を入力し、１／１６ゲイン画像１０５と拡大部Ａ２０１の出力画像（拡大した１／２５６の画像）を階層加算により合成して、中間ゲイン画像１０８として出力する（出力２）。本実施形態では、画像一律で所定の係数比をそれぞれの入力に対して掛けてから加算する。また、階層加算部Ａ２０３は、入力２として中間ゲイン画像１０８を入力したときは、スルーして拡大部Ｂ２０４に出力する。
【００１６】
拡大部Ｂ２０４は、階層加算部Ａ２０３の出力画像（中間ゲイン画像１０８）を入力して拡大処理を行う。本実施形態では、１／１及び１／１６の縮小率に鑑みて、例えば１６倍に拡大する。拡大方法は、例えば隣接画素のバイリニア補間で行えばよい。垂直方向の補間を行うため、拡大部Ｂ２０４はラインメモリ２０５を使用する。
階層加算部Ｂ２０６は、入力１として１／１ゲイン画像１０３を入力し、１／１ゲイン画像１０３と拡大部Ｂ２０４の出力画像（拡大した中間ゲイン画像１０８）を階層加算により合成して、ゲインマップ画像として出力する（出力１）。本実施形態では、画像一律で所定の係数比をそれぞれの入力に対して掛けてから加算する。
【００１７】
ここで、本実施形態において必要となるラインメモリのサイズと、一度に処理できる最大水平画素数について説明する。階層処理部１０７において、画像を一度に処理できる水平の最大画素数はラインメモリのサイズに依存する。本実施形態においては、例えば水平の最大処理画素数を１０００画素とする。ラインメモリのサイズは、拡大前のサイズ以上あればよい。よってラインメモリ２０５は、１０００÷１６≒６２．５であるので６３画素、ラインメモリ２０２は、１０００÷２５６≒３．９であるので４画素のサイズを持てばよい。
【００１８】
以下、本実施形態に係る画像処理装置による階層処理を説明する。
処理内容を分かりやすく示すために、まず図３を参照して、下位の階層の画像から順に拡大して階層加算していく階層処理を説明する。この場合に、入力画像を複数ブロックに分割して階層処理を行う。ここでは、３階層の画像（１／２５６ゲイン画像、１／１６ゲイン画像、１／１ゲイン画像）を対象とする。
【００１９】
ステップＳ３０１で、１／２５６ゲイン画像、１／１６ゲイン画像、１／１ゲイン画像をｘ個のブロックに分割する。
ステップＳ３０２で、１／２５６ゲイン画像を拡大する。
ステップＳ３０３で、１／１６ゲイン画像とステップＳ３０２で拡大した１／２５６ゲイン画像を階層加算する。
ステップＳ３０４で、ステップＳ３０３で階層加算した合成画像をさらに拡大する。
ステップＳ３０５で、１／１ゲイン画像１０３とステップＳ３０４で拡大した合成画像を階層加算する。
ステップＳ３０６で、全ての分割ブロックを処理したか否かを判定する。全ての分割ブロックの処理が完了してない場合、ステップＳ３０２に移動して次の分割ブロックの処理を行い、処理が完了している場合、本処理を終了する。
【００２０】
以上のように、分割ブロック単位で処理する場合は、分割ブロック毎に、下位の階層から拡大して一つ上位の階層と階層加算し、階層加算したものをさらに一つ上位の階層と階層加算することを繰り返していく。なお、３階層の例を示したが、２階層もしくは４階層以上でも同様である。
【００２１】
次に、図４を参照して、実施形態に係る画像処理装置が実行する下位階層群と上位階層群に分けた階層処理を説明する。
ステップＳ４０１で、分割部２００は、１／２５６ゲイン画像１０６、１／１６ゲイン画像１０５を下位階層群の画像として、ｘ個のブロックに分割する。
ステップＳ４０２で、拡大部Ａ２０１は、１／２５６ゲイン画像１０６を分割ブロック単位で入力し、拡大する。
ステップＳ４０３で、階層加算部Ａ２０３は、１／１６ゲイン画像１０５を分割ブロック単位で入力し、ステップＳ４０２で拡大した１／２５６ゲイン画像１０６と階層加算する。
ステップＳ４０４で、階層加算部Ａ２０３は、ステップＳ４０３で階層加算した合成画像を中間ゲイン画像１０８として出力する。
ステップＳ４０５で、階層処理部１０７は、全ての分割ブロックを処理したか否かを判定する。全ての分割ブロックの処理が完了してない場合、ステップＳ４０２に移動して次の分割ブロックの処理を行い、処理が完了している場合、ステップＳ４０６に進む。
なお、ステップＳ４０１〜Ｓ４０５の処理が、本発明でいう第１の階層処理手段の処理例である。
【００２２】
次に、ステップＳ４０６で、分割部２００は、中間ゲイン画像１０８、１／１ゲイン画像１０３を上位階層群の画像として、ｘとは異なるｙ個のブロックに分割する。
ステップＳ４０７で、階層加算部Ａ２０３は、中間ゲイン画像１０８をスルーし、拡大部Ｂ２０４は、中間ゲイン画像１０８を分割ブロック単位で入力し、拡大する。
ステップＳ４０８で、階層加算部Ｂ２０６は、１／１ゲイン画像１０３を分割ブロック単位で入力し、ステップＳ４０７で拡大した中間ゲイン画像１０８と階層加算する。
ステップＳ４０９で、階層処理部１０７は、全ての分割ブロックを処理したか否かを判定する。全ての分割ブロックの処理が完了してない場合、ステップＳ４０７に移動して次の分割ブロックの処理を行い、処理が完了している場合、本処理を終了する。
なお、ステップＳ４０６〜Ｓ４０９の処理が、本発明でいう第２の階層処理手段の処理例である。
【００２３】
以上のように、本実施形態では、１／２５６ゲイン画像１０６と１／１６ゲイン画像１０５を下位階層群の画像とし、中間ゲイン画像１０８と１／１ゲイン画像１０３を上位階層の画像として分ける。そして、下位階層群の画像を対象として階層処理を行い、中間ゲイン画像を生成し、次に中間ゲイン画像と最下位階層の画像として含めた上位階層群の画像を対象として階層処理を行う。このとき、下位階層群の画像を対象とする階層処理での画像の分割と、中間ゲイン画像と上位階層の画像を対象とする階層処理での画像の分割とで分割数を異ならせている。
【００２４】
ここで、図５を参照して、本実施形態における画像の分割の考え方を説明する。
図５（ａ）は、ステップＳ４０１における１／２５６ゲイン画像１０６、１／１６ゲイン画像１０５の分割の仕方を表わす。
図５（ａ）において下側が１／２５６ゲイン画像１０６、上側が１／１６ゲイン画像１０５である。水平の分割数は６分割であり、分割数ｘ＝６である。本実施形態では垂直は分割していないが、垂直に分割した場合も処理方法は同様である。
１／１６ゲイン画像１０５の（１）〜（５）（図中では丸囲み数字で示す）の各分割ブロックの水平サイズは１６の倍数であり、ｍを自然数として１６ｍと記載する。（６）ブロックは画像全体のうちの余り領域を扱うため１６の倍数ではなくてもよい。（１）〜（６）の各分割ブロックの開始座標は１６ｍの区切り位置となる。
１／２５６ゲイン画像１０６の（１）〜（５）の各分割ブロックの水平サイズ及び開始座標は、１／１６ゲイン画像１０５の１／１６になるため、１６ｍ÷１６＝ｍとなる。よって１／２５６ゲイン画像１０５の水平サイズは整数となり、開始座標も整数で等間隔となるため、簡易的な画像の読み出し制御で処理を行うことができる。
ｍの値が大きければ大きい程分割数は少なくて済むが、拡大部Ａ２０１で使用するラインメモリ２０２のサイズを超えてしまうと処理できない。よってｍの値は１６の倍数かつラインメモリ２０２のサイズを超えない値を設定すればよい。
【００２５】
図５（ｂ）は、ステップＳ４０６における中間ゲイン画像１０８、１／１ゲイン画像１０３の分割の仕方を表わす。
図５（ｂ）において下側が中間ゲイン画像１０８、上側が１／１ゲイン画像１０３である。水平の分割数は５分割であり、分割数ｙ＝５である。本実施形態では垂直は分割していないが、垂直に分割した場合も処理方法は同様である。
１／１ゲイン画像１０３の（１）〜（４）の各分割ブロックの水平サイズは１６の倍数であり、ｎを自然数として１６ｎと記載する。（５）ブロックは画像全体のうちの余り領域を扱うため１６の倍数ではなくてもよい。（１）〜（５）の各分割ブロックの開始座標は１６ｎの区切り位置となる。
中間ゲイン画像１０８の（１）〜（４）の各分割ブロックの水平サイズ及び開始座標は、１／１ゲイン画像１０３の１／１６になるため、１６ｎ÷１６＝ｎとなる。よって中間ゲイン画像１０８の水平サイズは整数となり、開始座標も整数で等間隔となるため、簡易的な画像の読み出し制御で処理を行うことができる。
ｎの値もｍと同様に、１６の倍数かつラインメモリ２０５のサイズを超えない値を設定すればよい。
【００２６】
次に、図６、図７を参照して、実際の画像の分割の例を示す。水平画像サイズは８０００画素とする。１/１６ゲイン画像のサイズは８０００÷１６＝５００画素、１／２５６ゲイン画像のサイズは８０００÷２５６＝３１．２５で小数のため、繰り上げて３２画素とする。
【００２７】
図６は、対比のため、下位の階層の画像から順に拡大して階層加算していく階層処理において画像を分割する場合の例である。１／１ゲイン画像１０３の一度に処理できる水平サイズは先に述べた通り最大１０００画素であるが、最下位階層の１／２５６ゲイン画像１０６の分割ブロックのサイズが整数になる必要があるため、２５６で割り切れるという画素数の制約を持つことになる。よって制約内の最大値として７６８画素とする。同様に１／１６ゲイン画像１０５の分割ブロックの水平サイズは７６８÷１６＝４８で４８画素、１／２５６ゲイン画像の分割ブロックの水平サイズは７６８÷２５６＝３で３画素になる。このとき、分割数は１１ブロックとなる。
【００２８】
図７は、本実施形態のように下位階層群と上位階層群に分けた階層処理において画像を分割する場合の例である。１／１ゲイン画像１０３の一度に処理できる水平サイズは最大１０００画素であるが、中間ゲイン画像１０８の分割ブロックのサイズが整数になる必要があるため、１６で割り切れる最大値として９９２画素とする。同様に中間ゲイン画像１０８の分割ブロックの水平サイズは９９２÷１６＝６２で６２画素とする。一方、１／１６ゲイン画像１０５、１／２５６ゲイン画像１０６の分割ブロックの水平サイズは、上位階層群とは独立に考えればよい。よって１／１６ゲイン画像１０６の分割ブロックの水平サイズは６４画素、１／２５６ゲイン画像の分割ブロックの水平サイズは４画素になる。このとき、分割数は９ブロックとなる。
【００２９】
図６、図７を比較すると、下位階層群と上位階層群に分けて階層処理を行うことにより、分割数及びサイズを独立に制御することが可能となり、分割数を少なくすることができる。少ない分割数で階層処理を行えることにより、フィルタ処理等で使用する周囲のオーバラップ画素分だけトータルで処理する画素数が増加したり、分割毎に必要な制御期間が積算されたりすることが避けられ、処理パフォーマンスの向上を実現することができる。
なお、画像を１枚ずつ処理する場合、下位階層群と上位階層群に分けて階層処理を行うと、下位階層群の処理分の時間が余計にかかってしまうことがある。しかしながら、複数画像を連続して処理する場合は、パイプライン処理を行うことによって上記時間を隠蔽することが可能である。
【００３０】
（第２の実施形態）
第１の実施形態では３階層の階層処理について説明したが、第２の実施形態では３階層よりも多階層の階層処理について説明する。
本実施形態では、５階層の画像（１／２５６ゲイン画像、１／１２８ゲイン画像、１／１６ゲイン画像、１／８ゲイン画像、１／１ゲイン画像）を対象とする。まず５階層を下位階層群と上位階層群に分ける。例えば中間画像の階層で分ける。
下位階層群と上位階層群の境界をどの縮小率の画像にするかは、以下のように考えることができる。通常の画像処理装置は、本実施形態で扱うような機能ブロックの他にも複数の機能ブロックをつないで順次処理を行う。画像を分割して処理を行う場合、１ブロックの画像の画素数は撮像素子の画素数や各機能ブロックの画素数の制約等、様々な要因で決まる。このとき、例えば他機能ブロックのうち最も厳しい画素数の制約が３２の倍数だった場合、下位階層群と上位階層群の境界は１／３２よりも上の（画像サイズが大きい）縮小率の画像を選択すればよい。なお、下位階層群は、少なくとも２階層以上となる必要がある。本実施形態では、１／１６ゲイン画像を境界として、下位階層群は１／１６ゲイン画像、１／１２８ゲイン画像、１／２５６ゲイン画像とし、上位階層群は１／１ゲイン画像、１／８ゲイン画像、中間ゲイン画像とする。
【００３１】
図８は、第２の実施形態に係る画像処理装置の基本構成を示すブロック図である。以下では、図１で説明した構成要素には同一の符号を付してその説明を省略し、図１と異なる構成を中心に説明する。
縮小部８０１は、ゲイン生成部１０２で生成されたゲイン画像に縮小処理を行い、下位階層の画像として縮小ゲイン画像８０２〜８０５を生成する。本実施形態では、１／８、１／１６、１／１２８及び１／２５６の縮小率で縮小し、１／８ゲイン画像８０２、１／１６ゲイン画像８０３、１／１２８ゲイン画像８０４及び１／２５６ゲイン画像８０５を生成する。
階層処理部８０６は、１／１ゲイン画像１０３、１／８ゲイン画像８０２、１／１６ゲイン画像８０３、１／１２８ゲイン画像８０４及び１／２５６ゲイン画像８０５を対象として階層処理を行い、ゲインマップ画像を生成する。また、階層処理部８０６では中間ゲイン画像８０７を生成する。
入力セレクタ８０８は、階層処理部８０６に入力するデータを選択し、ここでは１／１６ゲイン画像８０３又は中間ゲイン画像８０７を選択する。
【００３２】
図９を参照して、階層処理部８０６の処理ブロックについて説明する。
分割部９００は、入力画像を複数ブロックに分割する。
拡大部Ａ９０１は、入力５として１／２５６ゲイン画像８０５を入力して拡大処理を行う。本実施形態では、１／１２８及び１／２５６の縮小率に鑑みて、例えば２倍に拡大する。垂直方向の補間を行うため、拡大部Ａ９０１はラインメモリ９０２を使用する。
階層加算部Ａ９０３は、入力４として１／１２８ゲイン画像８０４を入力し、１／１２８ゲイン画像８０４と拡大部Ａ９０１の出力画像（拡大した１／２５６の画像）を階層加算により合成する。
【００３３】
拡大部Ｂ９０４は、階層加算部Ａ９０３の出力画像（合成画像）を入力して拡大処理を行う。本実施形態では、１／１６及び１／１２８の縮小率に鑑みて、例えば８倍に拡大する。垂直方向の補間を行うため、拡大部Ｂ９０４はラインメモリ９０５を使用する。
階層加算部Ｂ９０６は、入力３として１／１６ゲイン画像８０３を入力し、１／１６ゲイン画像８０３と拡大部Ｂ９０４の出力画像（拡大した合成画像）を階層加算により合成して、中間ゲイン画像８０７として出力する（出力２）。また、階層加算部Ｂ９０６は、入力３として中間ゲイン画像８０７を入力したときは、スルーして拡大部Ｃ９０７に出力する。
【００３４】
拡大部Ｃ９０７は、階層加算部Ｂ９０６の出力画像（中間ゲイン画像１０８）を入力して拡大処理を行う。本実施形態では、１／８及び１／１６の縮小率に鑑みて、例えば２倍に拡大する。垂直方向の補間を行うため、拡大部Ｃ９０７はラインメモリ９０８を使用する。
階層加算部Ｃ９０９は、入力２として１／８ゲイン画像８０２を入力し、１／８ゲイン画像８０２と拡大部Ｃ９０７の出力画像（拡大した中間ゲイン画像８０７）を階層加算により合成する。
【００３５】
拡大部Ｄ９１０は、階層加算部Ｃ９０９の出力画像（合成画像）を入力して拡大処理を行う。本実施形態では、１／１及び１／８の縮小率に鑑みて、例えば８倍に拡大する。垂直方向の補間を行うため、拡大部Ｄ９１０はラインメモリ９１１を使用する。
階層加算部Ｄ９１２は、入力１として１／１ゲイン画像１０３を入力し、１／１ゲイン画像１０３と拡大部Ｄ９１０の出力画像（拡大した合成画像）を階層加算により合成して、ゲインマップ画像として出力する（出力１）。
【００３６】
以下、本実施形態に係る画像処理装置による階層処理を説明する。
図１０を参照して、実施形態に係る画像処理装置が実行する下位階層群と上位階層群に分けた階層処理を説明する。
ステップＳ１００１で、分割部９００は、１／２５６ゲイン画像８０５、１／１２６ゲイン画像８０４、１／１６ゲイン画像８０３を下位階層群の画像として、ｘ個のブロックに分割する。
ステップＳ１００２で、拡大部Ａ９０１及び階層加算部Ａ９０３、拡大部Ｂ９０４及び階層加算部Ｂ９０６は、下位階層群の画像を対象として階層処理を行い、中間ゲイン画像８０７を生成して出力する。ここでの処理の説明は省略するが、図３で述べたように、下位の階層の画像から順に拡大して階層加算していく階層処理を行う。
ステップＳ１００３で、階層処理部８０６は、全ての分割ブロックを処理したか否かを判定する。全ての分割ブロックの処理が完了してない場合、ステップＳ１００２に移動して次の分割ブロックの処理を行い、処理が完了している場合、ステップＳ１００４に進む。
【００３７】
次に、ステップＳ１００４で、分割部９００は、中間ゲイン画像８０７、１／１ゲイン画像１０３、１／８ゲイン画像８０２を上位階層群の画像として、ｘとは異なるｙ個のブロックに分割する。
ステップＳ１００５で、拡大部Ｃ９０７及び階層加算部Ｃ９０９、拡大部Ｄ９１０及び階層加算部Ｄ９１２は、ステップＳ１００２に同様に、上位階層群の画像を対象として階層処理を行う。
ステップＳ１００６で、階層処理部８０６は、全ての分割ブロックを処理したか否かを判定する。全ての分割ブロックの処理が完了してない場合、ステップＳ１００５に移動して次の分割ブロックの処理を行い、処理が完了している場合、本処理を終了する。
【００３８】
ここで、図１１を参照して、本実施形態における画像の分割の考え方を説明する。
図１１（ａ）は、ステップＳ１００１における１／２５６ゲイン画像８０５、１／１２８ゲイン画像８０４、１／１６ゲイン画像８０３の分割の仕方を表わす。
図１１（ａ）において下側が１／２５６ゲイン画像８０５、真ん中が１／１２８ゲイン画像８０４、上側が１／１６ゲイン画像８０３である。水平の分割数は６分割であり、分割数ｘ＝６である。本実施形態では垂直は分割していないが、垂直に分割した場合も処理方法は同様である。
１／２５６ゲイン画像８０５、１／１６ゲイン画像８０３は図５（ａ）と同様であるが、１／１２８ゲイン画像８０４は、１／２５６の２倍の解像度のため、ｍを自然数として２ｍと記載する。つまり、１／２５６の定数倍の解像度の画像を階層加算する場合は、画素数の制約に影響を与えない。
【００３９】
図１１（ｂ）は、ステップＳ１００４における中間ゲイン画像８０７、１／８ゲイン画像８０２、１／１ゲイン画像１０３の分割の仕方を表わす。
図１１（ｂ）において下側が中間ゲイン画像８０７、真ん中が１／８ゲイン画像８０２、上側が１／１ゲイン画像１０３である。水平の分割数は５分割であり、ｙ＝５である。
図１１（ｂ）の場合も、図１１（ａ）と同様、下位階層の定数倍の解像度の画像を加算する場合は、画素数の制約に影響を与えない。
【００４０】
以上のように、３階層以上の画像を対象として階層処理を行う際に、下位階層群と上位階層群に分けて階層処理を行うことにより、分割数及びサイズを独立に制御することが可能となり、分割数を少なくして、処理パフォーマンスの向上を実現することができる。
【００４１】
（第３の実施形態）
第３の実施形態では、下位階層群の階層処理を分割ブロック単位で行うのではなく、一括で行う点で第１の実施形態と異なる。
拡大部Ａ２０１のように、入力画像の縮小率が小さい場合は、ラインメモリ２０２のメモリ量は比較的少なくなる。したがって、ラインメモリ２０２のみ一括で画像を処理できるだけのメモリ量を搭載しても、メモリの増加量は上位階層群の画像を一括で処理できるよう増やす場合と比較して少ない。
例えば画像全体で処理できる最大水平サイズを８０００画素とすると、８０００÷２５６≒３１．２で３２画素分のメモリを搭載すればよい。下位階層群の階層処理を一括で行うことにより、分割で行うよりさらに制御を簡素化することが可能である。
【００４２】
ここで、図１２を参照して、本実施形態における画像の分割の考え方を説明する。
１／１６ゲイン画像、１／２５６ゲイン画像の階層加算は、画像全体を一括で行い、中間ゲイン画像８０７を生成する。その後の、中間ゲイン画像、１／１ゲイン画像の分割の仕方は第１の実施形態と同様である。
一般に、下位階層の拡大部で使用するラインメモリのサイズは、上位階層で処理できる最大水平サイズに合わせて決定されるが、本実施形態のように下位階層の拡大部Ａ２０１で使用するラインメモリ２０２のサイズを上位階層の分割ブロックの最大水平サイズとは独立に決定し、一括で処理できる機能を持たせることで、下位階層群の階層処理をさらに簡易にすることが可能である。
このように、第３の実施形態においても第１、２の実施形態と同様に、通常の分割に比べて分割数を少なくすることにより、処理パフォーマンスの向上を実現することができる。さらに第３の実施形態では、単純な制御によって下位階層群の階層処理を実施することができる。
【００４３】
以上、本発明を実施形態と共に説明したが、上記実施形態は本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４４】
１０７：階層処理部、２００：分割部、２０１：拡大部Ａ、２０２：ラインメモリ、２０３：階層加算部Ａ、２０４：拡大部Ｂ、２０５：ラインメモリ、２０６：階層加算部Ｂ
【図１】
2017117103.tif 000003
【図２】
2017117103.tif 000004
【図３】
2017117103.tif 000005
【図４】
2017117103.tif 000006
【図５】
2017117103.tif 000007
【図６】
2017117103.tif 000008
【図７】
2017117103.tif 000009
【図８】
2017117103.tif 000010
【図９】
2017117103.tif 000011
【図１０】
2017117103.tif 000012
【図１１】
2017117103.tif 000013
【図１２】
2017117103.tif 000014