JP2018067849A - 画像処理装置、画像処理方法、プログラム - Google Patents

画像処理装置、画像処理方法、プログラム Download PDF

Info

Publication number
JP2018067849A
JP2018067849A JP2016206333A JP2016206333A JP2018067849A JP 2018067849 A JP2018067849 A JP 2018067849A JP 2016206333 A JP2016206333 A JP 2016206333A JP 2016206333 A JP2016206333 A JP 2016206333A JP 2018067849 A JP2018067849 A JP 2018067849A
Authority
JP
Japan
Prior art keywords
image
block
unit
enlargement
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016206333A
Other languages
English (en)
Other versions
JP2018067849A5 (ja
JP6840506B2 (ja
Inventor
大輔 若宮
Daisuke Wakamiya
大輔 若宮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2016206333A priority Critical patent/JP6840506B2/ja
Priority to US15/787,138 priority patent/US10475159B2/en
Publication of JP2018067849A publication Critical patent/JP2018067849A/ja
Publication of JP2018067849A5 publication Critical patent/JP2018067849A5/ja
Application granted granted Critical
Publication of JP6840506B2 publication Critical patent/JP6840506B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4015Image demosaicing, e.g. colour filter arrays [CFA] or Bayer patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/403Edge-driven scaling; Edge-based scaling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • G06T3/4076Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution using the original low-resolution images to iteratively correct the high-resolution images

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

【課題】コストの低減を実現しつつ、高い処理パフォーマンスによる画像処理を実現することを課題とする。
【解決手段】第1拡大部(300)は、下位の階層の画像が上位の階層の画像を縮小した縮小画像となされている2以上の階層の画像のうち、下位側の階層の画像を拡大する。第1階層加算部(303)は、上位側の階層の画像を複数のブロックに分割したブロック単位で、下位側の階層の拡大画像と、上位側の階層の画像とを合成する。領域抽出部(302)は、第1拡大部(300)の拡大画像のうち、上位側の階層のブロックより少なくとも広い領域から、上位側の階層のブロックの大きさに合わせた領域を抽出する。領域抽出部(302)が抽出した領域の画像を、第1階層加算部(303)により上位側の階層のブロックに対してブロック単位で合成される画像とする。
【選択図】図2

Description

本発明は、画像を処理する画像処理装置、画像処理方法、及びプログラムに関する。
画像の拡大及び縮小処理は、撮像装置などの画像処理装置で用いられる。一般に撮像装置では、画像をラスター方向に処理する。よって垂直方向の拡大や縮小処理において複数ラインを参照するタップ処理を行う場合には、ラインメモリが使用される。また、画像一面(1フレーム分の画像)を一度に処理する場合、ラインメモリは、画像の少なくとも水平サイズ分の大きさのメモリが必要になる。一方、近年は、撮像装置の画素数の増加や、いわゆる4k、8kなどと呼ばれている次世代ハイビジョン規格に対応するために、画像処理装置が扱う画素数は増加している。画像処理装置が扱う画素数が増加すると、ラインメモリも大きなものが必要になる。しかしながら、ラインメモリが大きくなると、コストが増えることになる。
このため、画像を水平方向にブロック分割し、分割ブロック単位で処理を行うようにすることで、処理に必要なラインメモリの大きさを小さくして、コストを低減可能とした技術が提案されている。例えば特許文献1には、画像を分割ブロック単位で拡大及び縮小処理する技術が開示されている。特許文献1に記載の技術では、隣り合う分割ブロックにおいて拡大・縮小処理によるタップ処理画素数分をオーバーラップさせて入力している。この処理によって、分割ブロック毎に処理を行っても、画像一面を一度に処理した場合と同様の結果を得ることができる。
特開2012−151638号公報
ここで、コストをさらに低減するために、例えばラインメモリをより小さくすると、ブロック分割数が増加することになり、この場合、フィルタ処理などで使用する周囲のオーバーラップ画素分だけ、トータルで処理する画素数が増加してしまう。また、ブロック分割数が増えると、分割ブロック毎に必要な制御期間が積算等されることになり、処理パフォーマンスが低下してしまう。
そこで、本発明は、コストの低減を実現しつつ、高い処理パフォーマンスによる画像処理を実現可能にすることを目的とする。
本発明は、下位の階層の画像が上位の階層の画像を縮小した縮小画像となされている2以上の階層の画像のうち、下位側の階層の画像を拡大する拡大手段と、上位側の階層の画像を複数のブロックに分割したブロック単位で、前記下位側の階層の前記拡大された画像と、前記上位側の階層の画像とを、合成する合成手段と、前記拡大手段により前記拡大された画像から、前記上位側の階層の前記ブロックに対応した一部の領域を抽出する抽出手段と、を有し、前記抽出手段は、前記拡大手段により前記拡大された画像のうち、前記上位側の階層の前記ブロックより少なくとも広い領域から、前記上位側の階層の前記ブロックの大きさに合わせた前記一部の領域を抽出し、前記抽出手段が前記抽出した前記一部の領域の画像を、前記合成手段により前記上位側の階層のブロックに対して前記ブロック単位で合成される画像とすることを特徴とする。
本発明によれば、コストの低減を実現しつつ、高い処理パフォーマンスによる画像処理が実現可能となる。
画像処理装置の一実施形態としての撮像装置の概略構成を示す図である。 階層処理部の概略構成を示す図である。 全階層を同分割ブロック数で処理する場合のフローチャートである。 下位階層でブロック分割しない場合のフローチャートである。 第1の実施形態における画像分割の画素数制約の考え方を表す図である。 第1の実施形態における画像分割の具体的数値例を表す図である。 全階層を11ブロックに分割して処理する場合の分割数を表す図である。 下位階層でブロック分割しない場合の分割数を表す図である。 第2の実施形態の下位階層の分割ブロックの読み出し例を表す図である。
以下、図面を参照しながら、本発明の実施形態を詳細に説明する。本実施形態の画像処理装置は、デジタルカメラやデジタルビデオカメラ、カメラ機能を備えたスマートフォンやタブレット端末などの各種携帯端末、工業用カメラ、車載カメラ、医療用カメラなどの各種撮像装置に適用可能である。
本実施形態の画像処理装置は、入力画像をブロック分割して、分割ブロック単位で拡大や縮小等の各種画像処理を行うことで、処理に必要なラインメモリを小さくし、コストの低減を可能としている。また、本実施形態の画像処理装置は、入力画像を2以上の複数の階層に分けて、階層毎の処理を行うことで、コストを抑えた多タップ処理を実現可能としている。階層処理では、先ず、入力画像をそれぞれ異なる複数の縮小率で縮小し、それぞれ画像の解像度で分けられる複数の階層の縮小画像が生成される。次に、下位の階層の縮小画像を一つ上位の階層の画像と同じ画像サイズに拡大し、その下位階層からの拡大画像と上位階層の画像とを加算する階層加算処理が行われる。階層処理では、このような下位階層の縮小画像を上位階層の画像と同画像サイズに拡大して、上位階層の画像と階層加算する処理を、順次上位の階層に向けて繰り返して、元の入力画像と同じ画像サイズの画像を生成する。この生成された画像は、元の入力画像と同じ画像サイズではあるが、入力画像から高周波成分が取り除かれた画像となる。そして、この高周波成分を取り除いた画像と元の画像とを加算して合成することで、周波数に依存した高度な画像処理を行うことが可能になる。階層処理が適用される具体的な処理例としては、トーンマッピング処理などが挙げられる。トーンマッピング処理では、高周波成分と低周波成分を比較し、画像のエッジ部とそれ以外のベタ部とを切り分けることで、画質を維持しながら暗部補正などのトーン補正処理を行う。この処理が多階層で行われた場合、精度よく複数の周波数成分を検出することができ、補正効果を高めることができるようになる。したがって、前述した階層処理と前述したブロック分割処理とを組み合わせた処理、すなわち、階層毎の画像をブロック分割して処理するようなことを行えば、コストを抑えつつ精度の高い補正等の画像処理が実現可能となる。
ここで、前述のように階層毎に縮小画像をブロック分割して処理する場合、各分割ブロックの水平サイズ(水平方向の画素数)は、下位階層の縮小率の定数倍や一次関数にすることが多い。なぜならば、上記のようにサイズ設定することで、各分割ブロックにおける下位階層の画像サイズや開始画素位置を整数で算出することができ、さらに分割ブロック毎にメモリからの画像の読み出し位置やサイズを一定にすることができるためである。これにより、画像の読み出しや、階層処理の制御を簡易的に行うことができるため、コストを抑えつつ精度の高い処理等を実現することが可能となる。
ただし、例えば下位階層の縮小率が小さい場合、分割ブロックのサイズの制約が大きくなることで処理パフォーマンスが低下してしまうことがある。例えば、下位階層の画像の解像度が元の入力画像の1/256の解像度であった場合、下位階層の画像サイズや開始画素位置を整数にしようとすると、元の入力画像の解像度の画像は256の倍数の水平サイズで処理する必要がある。このため、分割ブロック毎の水平サイズは、例えば十数画素単位といった細かさでは制御できない。この制約により、入力画像の画像サイズによっては、画像のブロック分割数が増える場合がある。ブロック分割数が増えると、フィルタ処理などで使用する周囲のオーバーラップ画素分だけトータルで処理する画素数が増加したり、分割ブロック毎に必要な制御期間が積算されたりすることで処理パフォーマンスが低下してしまうことになる。
本実施形態の画像処理装置は、入力画像を階層分けして階層毎にブロック分割して処理を行う場合において、分割ブロックのサイズの制約を緩和し、コストを抑えつつ精度の高い補正等の画像処理を実現可能とするために、以下の構成を備えている。
<第1の実施形態>
図1は、本発明に係る画像処理装置の一適用例である第1の実施形態の撮像装置100の概略構成を示す図である。
図1に示した撮像装置100は、撮像部101、CPU102、ROM103、RAM104、DMAコントローラ105、UI部106、外部I/F部107、記録部108、画像処理部110等を有して構成されている。撮像部101は、光学系や撮像素子等を有し、画像を撮像して、その撮像画像を入力画像として取得する。CPU102は、各部の制御及び各種演算を行う。ROM103は、CPU102が各部の制御や各種処理等を実行するためのプログラムや各種パラメータ等を記憶している。RAM104は、CPU102のワークエリアや、入出力される画像データや処理途中の画像データ等の一時的な蓄積等に使用される。RAM104にはDRAMも含まれる。DMAコントローラ105は、DMA(ダイレクトメモリアクセス)を行うためのコントローラである。UI部106は、ユーザインターフェイス部であり、ユーザにより操作される各種操作デバイスやディスプレイ等の表示デバイスからなる。外部I/F部107は、画像データ等の各種データやプログラム等の通信を行うためのインターフェイス部である。記録部108は、半導体メモリカードやハードディスク等の各種記録媒体を備えるか又は着脱可能となされ、画像データ等の各種データやプログラム等が記録される。画像処理部110は、撮像部101にて取得された撮像画像、外部I/F部107、記録部108などからの入力画像等に対して、各種画像処理を行う。
本実施形態では、画像処理部110により行われる画像処理の一例として、トーンマッピング処理によって入力画像に対して画素毎に異なるゲインを掛ける機能を実現する構成を例に挙げて説明する。
図1の画像処理部110において、入力画像200は、例えば撮像部101にて撮像された撮像画像から、撮像素子に起因するノイズ等が取り除かれた後の画像データであるとする。撮像部101の撮像素子は、一般にベイヤ配列と呼ばれる、赤(R),緑(G),青(B)の各色に対応して各画素が規則正しく配列されている。このため入力画像200は、ベイヤ配列の撮像素子による撮像画像に基づく画像データとなされている。また、本実施形態の場合、入力画像200のデータは、後段の処理による遅延量と合わせるために、メモリ(RAM104)に一時的に記憶された後に読み出される。なお、入力画像200は、撮像素子から出力された撮像画像データがRAM104を介さずに直接入力された画像データであってもよい。入力画像200のデータは、RAM104への一時記憶を介して、輝度変換部201と後述するゲイン乗算部209とに送られる。
輝度変換部201は、入力画像200のデータに輝度変換係数を乗算する。これにより、入力画像200は輝度画像に変換される。なお、輝度変換係数は、撮像素子におけるベイヤ配列に合わせて色ごとに与えられるとする。輝度変換部201から出力された輝度画像のデータは、ゲイン生成部202に送られる。
ゲイン生成部202は、輝度変換部201で生成された輝度画像のデータにゲイン係数を乗算する。これにより輝度画像はゲイン画像に変換される。本実施形態では、トーンマッピング処理を行うためのゲイン画像を生成するため、ゲイン生成部202は、輝度画像に対し、輝度値が小さいほど大きなゲインとなるようなゲイン係数を乗算する。ここでも図示は省略しているが、ゲイン生成部202で生成されたゲイン画像は、後段の処理による遅延量と合わせるためにRAM104に一時的に格納された後、読み出される。ゲイン生成部202で生成されたゲイン画像は、輝度画像に対して等倍の画像(以下、1/1ゲイン画像203と表記する。)である。本実施形態の場合、1/1ゲイン画像203は、階層処理において最も上位の階層の画像に相当する。この1/1ゲイン画像203のデータは、階層処理部207と縮小部204とに送られる。
縮小部204は、ゲイン生成部202から供給された1/1ゲイン画像203に対して縮小処理を行う。縮小処理の方法は公知の方法を用いることができ、詳細な説明は省略するが、例えば画像を所定の単位領域ごとに加算し、加算した画素数で正規化するなどの方法等を用いる。本実施形態の場合、縮小部204は、1/1ゲイン画像203を例えば1/16に縮小処理した1/16ゲイン画像205と、1/1ゲイン画像203を例えば1/256に縮小処理した1/256ゲイン画像206とを生成する。本実施形態の場合、1/16ゲイン画像205は中位の階層の画像の相当し、1/256画像206は最も下位の画像に相当する。縮小部204により生成された1/16ゲイン画像205のデータと1/256ゲイン画像206のデータとは、階層処理部207に送られる。なお、1/1ゲイン画像203と1/16ゲイン画像205と1/256ゲイン画像206は何れもゲイン画像であるが、縮小率が高い画像、つまり階層が下位の画像になるほど、高周波成分が取り除かれて低周波成分が残っている画像となる。
階層処理部207は、1/1ゲイン画像203と1/16ゲイン画像205と1/256ゲイン画像206の各階層の画像を階層加算してゲインマップ画像を生成する。階層処理部207の構成と処理の詳細については後述する。階層処理部207により生成されたゲインマップ画像のデータは、ゲイン乗算部209に送られる。
ゲイン乗算部209は、階層処理部207で生成されたゲインマップ画像のデータを入力画像200のデータに対して乗算することにより、出力画像210を生成する。ここで、ゲインマップ画像は、前述の輝度画像に対し、輝度値が小さいほど大きな値となるゲイン係数、つまり暗い領域ほど大きな値のゲイン係数が乗算されたゲイン画像から生成されている。したがって、このゲインマップ画像を入力画像200に乗算した場合、入力画像200の暗部に対して比較的大きなゲインが掛けられるようになり、出力画像210は、暗部補正によるトーンマッピング処理が行われた画像となる。
図2は、階層処理部207の詳細な構成を示す図である。
図2の階層処理部207は、第1拡大部300、ラインメモリ301、領域抽出部302、第1階層加算部303、第2拡大部304、第2階層加算部306、ラインメモリ305を有して構成されている。図2では図示していないが、第1拡大部300、領域抽出部302、第1階層加算部303、第2拡大部304、第2階層加算部306の各サブモジュールは、それぞれ図1のRAM104を介してデータの入出力が行われる。すなわち、各サブモジュールからの出力データは、それぞれ、RAM104に一時的に記憶された後に読み出されて、次の(後段の)サブモジュールに入力される。RAM104へのデータの書き込みと、RAM104からのデータの読み出しは、DMAコントローラ105による制御の下で行われる。
また、第1拡大部300、領域抽出部302、第1階層加算部303、第2拡大部304、第2階層加算部306の各サブモジュールには、図2に示すように制御部310〜314が設けられている。各制御部310〜314は、各々に対して予め設定されているパラメータを基に、画像をブロック分割する/しない、ブロック分割が行われる場合のブロックサイズ(画素数)や位置の制御等を行う。パラメータは、ブロック分割する/しない、ブロックサイズ及び位置、相対オフセット等を含む情報であり、それら情報が階層毎にそれぞれ設定されている。ブロック分割する/しないのパラメータは、サブモジュールにおいてブロック分割を行うか否かを表す情報として設定される。ブロックサイズ及び位置のパラメータは、サブモジュールで画像のブロック分割が行われる場合に、画像に対する各分割ブロックの位置及びブロックサイズを表す情報として設定されている。相対オフセットのパラメータは、サブモジュールで画像のブロック分割が行われる場合に、各分割ブロックの相対的な位置を表す値として設定されている。各制御部310〜314は、例えば画素カウンタを有しており、ブロック分割を行う場合には、画像の画素をカウントした画素数を基に、ブロック分割数、ブロックサイズ、位置等の制御を行う。例えば、ブロック分割が行われる場合、画素カウンタは、画像の画素数をカウントし、前述のパラメータにより設定された分割ブロックの位置及びブロックサイズに相当する画素数を区切りとしてブロック分割するような制御を行う。また、本実施形態では、DMAコントローラ105によるRAM104からのデータの読み出し時に、ブロック分割する/しないが制御される。
前述したように、図2の階層処理部207において、第1拡大部300、領域抽出部302、第1階層加算部303、第2拡大部304、第2階層加算部306の各サブモジュールは、RAM104を介してデータの入出力を行うようになされている。また、それら各サブモジュールは、階層毎に設定されているパラメータを基に、各階層における画像をブロック分割する/しないが制御され、また、ブロック分割が行われる階層ではパラメータに基づくブロック分割が行われる。そして、階層処理部207は、各階層の画像(ブロック分割が行われる階層では分割ブロック毎の画像)に対して後述するような処理が行われる。以下、これらのことを踏まえた上で、図2の階層処理部207の各部の説明を行う。
図2の階層処理部207において、前述した上位階層の1/1ゲイン画像203のデータは第2階層加算部306に入力される。中位階層の1/16ゲイン画像205のデータは第1階層加算部303に入力され、下位階層の1/256ゲイン画像206のデータは第1拡大部300に入力される。
第1拡大部300は、1/256ゲイン画像206に対して拡大処理を行う。本実施形態では、1/256ゲイン画像206を16倍に拡大する処理を行う。詳細については後述するが、第1の実施形態の場合、1/256ゲイン画像206はブロック分割が行われずに画像全体が一括して拡大処理される。第1拡大部300における拡大処理の方法は、例えば隣接画素を用いたバイリニア補間等の処理を用いることができる。また、拡大処理の際、第1拡大部300は、ラインメモリ301に蓄積した隣接ラインのデータを用いることで垂直方向の補間をも行う。第1拡大部300において1/256ゲイン画像206が16倍に拡大処理されたゲイン画像、つまり1/16ゲイン画像のデータは、領域抽出部302に送られる。
領域抽出部302は、第1拡大部300で拡大処理されたゲイン画像(1/16ゲイン画像)から一部の領域を特定領域として切り出す領域抽出処理を行う。領域抽出部302における領域抽出処理は画素単位で行われる。領域抽出部302による領域抽出処理の詳細については後述する。領域抽出部302から出力されたデータは、第1階層加算部303に送られる。
第1階層加算部303は、前述した1/16ゲイン画像205のデータと、領域抽出部302からの出力データとを階層加算処理により合成する。本実施形態の場合、第1階層加算部303は、1/16ゲイン画像205のデータと領域抽出部302からの出力データとに対し、それぞれ一律に所定の係数比を掛けてから加算する。詳細については後述するが、第1の実施形態の場合、第1階層加算部303は、1/16ゲイン画像205をブロック分割し、その分割ブロックのデータと、領域抽出部302で抽出された特定領域のデータとを、階層加算処理により合成する。この第1階層加算部303による分割ブロック毎の階層加算処理後のデータは、第2拡大部304に送られる。
第2拡大部304は、第1拡大部300と同様のバイリニア補間等の処理により、第1の階層加算部303による階層加算処理後のデータに対して16倍の拡大処理を行う。詳細については後述するが、第1の実施形態の場合、第2拡大部304は、第1の階層加算部303による分割ブロック毎の階層加算処理後のデータを16倍に拡大する処理を行う。また、第2拡大部304は、第1拡大部300の例と同様に、ラインメモリ305に蓄積した隣接ラインのデータを用いることで垂直方向の補間をも行う。第1階層加算部303による階層加算処理後のデータは1/16ゲイン画像であるため、第2拡大部304で分割ブロック毎に16倍に拡大処理された画像は、分割ブロック毎の1/1ゲイン画像となる。第2拡大部304による拡大処理で得られた分割ブロック毎の1/1ゲイン画像のデータは、第2階層加算部306に送られる。
第2階層加算部306は、前述した1/1ゲイン画像203のデータと、第2拡大部304から供給された1/1ゲイン画像のデータとを階層加算処理により合成する。本実施形態の場合、第2階層加算部306は、1/1ゲイン画像203のデータと第2拡大部304から供給された1/1ゲイン画像のデータとに対し、第1階層加算部303と同様にそれぞれ一律に所定の係数比を掛けてから加算する。詳細については後述するが、第1の実施形態の場合、第2階層加算部306は、1/1ゲイン画像203をブロック分割し、その分割ブロックのデータと、第2拡大部304からの分割ブロック毎の1/1ゲイン画像とを、階層加算処理により合成する。そして、第2階層加算部306は、階層加算処理後の全ての分割ブロックのデータを、図1のゲイン乗算部209に出力する。
以下、本実施形態において、階層処理部207で使用されているラインメモリ(301,305)に必要となるメモリサイズ(容量)と、画像を一度に処理できる最大水平画素数とについて説明する。ここで、階層処理部207において、画像を一度に処理できる水平の最大画素数は例えば1000画素であるとする。ただし、階層処理部207が画像を一度に処理できる水平の最大画素数は、ラインメモリのサイズに依存する。また、ラインメモリのサイズは、拡大処理が行われる前の画像の水平サイズ以上あればよい。例えばラインメモリ305の場合は、階層処理部207内の各サブモジュールのうち第2拡大部304による拡大処理前の1/16ゲイン画像のラインのデータを蓄積する。このため、ラインメモリ305は、階層処理部207が一度に処理できる水平最大画素数(1000)を、1/16ゲイン画像の水平サイズ(16)で割った値(1000÷16=62.5)≒63画素のサイズのメモリであればよい。一方、ラインメモリ301には、第1拡大部300に入力される画像、つまりブロック分割されていない画像が供給される。ブロック分割されていない画像は、入力画像200の画角に相当する画像であるが、第1拡大部300に入力されるのは前述したように1/1ゲイン画像が1/256に縮小された1/256ゲイン画像である。したがって、入力画像200の水平方向の最大サイズが例えば8000画素であった場合、ラインメモリ301は、最大サイズ(8000)を1/256で割ったサイズ、つまり8000÷256=31.25≒32画素のサイズのメモリであればよい。
次に、図3と図4のフローチャートを用いて、図2の階層処理部207で行われる処理の流れについて説明する。なお、以下の説明の場合、これらのフローチャートの処理は、図1や図2のハードウェア構成により実行されているが、CPU等がプログラムを実行することにより実現されてもよい。
第1の実施形態の場合、階層処理部207は、上位階層の1/1ゲイン画像203と中位階層の1/16ゲイン画像205についてはブロック分割を行い、下位階層の1/256ゲイン画像206についてはブロック分割を行わないようになされている。ここでは、ブロック分割と処理の内容を分かりやすく示すために、先ず、図3のフローチャートを参照して、上位階層と中位階層だけなく下位階層をも含む全階層が同じ分割ブロック数に分割されて処理される例について説明する。すなわち、図3のフローチャートは、全階層で同じ分割ブロック数へのブロック分割が行われて、それら分割ブロック毎に拡大処理と階層加算処理が行われる場合の処理の流れを示している。
図3のステップS401において、階層処理部207の第1拡大部300は、入力された1/256ゲイン画像206をx個のブロックに分割する。同様に、第1階層加算部303は、入力された1/16ゲイン画像205をx個のブロックに分割し、第2階層加算部306は、入力された1/1ゲイン画像203をx個のブロックに分割する。ステップS401の後、階層処理部207の処理はステップS402に進む。以下のステップS402からステップS406までの処理は分割ブロック毎に順次行われる。
ステップS402では、第1拡大部300は、分割ブロックの1/256ゲイン画像206に対し16倍の拡大処理を行って1/16ゲイン画像を生成する。ステップS402の後、階層処理部207の処理は、第1階層加算部303にて行われるステップS403に進む。なお、図3のフローチャートの場合、領域抽出部302は、第1拡大部300での拡大処理により生成された分割ブロックの1/16ゲイン画像を、そのままスルー処理して第1階層加算部303に出力する。
ステップS403では、第1階層加算部303は、分割ブロックの1/16ゲイン画像205と、第1拡大部300で16倍拡大処理された分割ブロックの1/16ゲイン画像とを、分割ブロック単位の階層加算処理により合成する。ステップS403の後、階層処理部207の処理は、第2拡大部304にて行われるステップS404に進む。
ステップS404では、第2拡大部304は、第1階層加算部303での階層加算処理により合成された分割ブロックの1/16ゲイン画像を16倍に拡大処理する。ステップS404の後、階層処理部207の処理は、第2階層加算部306にて行われるステップS405に進む。
ステップS405では、第2階層加算部306は、分割ブロックの1/1ゲイン画像203と、第2拡大部304での16倍拡大処理による分割ブロックの1/1ゲイン画像とを、分割ブロック単位の階層加算処理により合成する。ステップS405の後、第2階層加算部306は、ステップS406に処理を進める。
ステップS406では、第2階層加算部306は、全ての分割ブロックに対する処理が終わったか否かを判定し、未処理の分割ブロックが残っている場合には、ステップS402に処理を戻す。これにより、階層処理部207では、未処理の分割ブロックに対して、ステップS402〜405の処理が行われることになる。一方、第2階層加算部306は、ステップS406において全ての分割ブロックの処理が完了したと判定した場合、階層処理部207における階層処理が完了したとして、図3のフローチャートの処理を終了する。
この図3の例のように、全階層を同じ分割ブロック数に分割した場合には、分割ブロック毎に、順次、下位の階層から拡大処理を行って一つ上位の階層の画像と合成し、さらにその階層の画像を拡大処理して上位の階層の画像と合成するという処理を繰り返す。なお、この例では、階層数が3階層の例を示しているが、階層数が例えば2階層や4階層以上でも同様の処理が行われることになる。
図3のフローチャートでは、全階層が同じ分割ブロック数に分割されて処理される例を説明したが、第1の実施形態の場合には、上位階層と中位階層についてブロック分割を行い、一方、下位階層についてはブロック分割を行わないようになされている。図4のフローチャートは、第1の実施形態における処理の流れを示している。すなわち、図4のフローチャートでは、1/16ゲイン画像205と1/1ゲイン画像203はブロック分割されて処理されるが、1/256ゲイン画像206はブロック分割されずに画像全体が一括で処理される。
図4のステップS501において、階層処理部207の第1階層加算部303は、入力された1/16ゲイン画像205をx個のブロックに分割し、また、第2階層加算部306は、入力された1/1ゲイン画像203をx個のブロックに分割する。一方、図4のステップS501において、第1拡大部300は、1/256ゲイン画像206についてはブロック分割を行わない。ステップS501の後、階層処理部207の処理はステップS502に進む。以下のステップS502からステップS507までの処理は分割ブロック毎に順次行われる。
ステップS502では、第1拡大部300は、ブロック分割されていない1/256ゲイン画像206に対して16倍の拡大処理を行って1/16ゲイン画像を生成する。ステップS502の後、階層処理部207の処理は、領域抽出部302にて行われるステップS503に進む。
ステップS503では、領域抽出部302は、第1拡大部300で拡大処理された1/16ゲイン画像から一部の領域を特定領域として抽出する。具体的には、領域抽出部302は、第1拡大部300で拡大処理された1/16ゲイン画像から、1/16ゲイン画像205の分割ブロックのサイズ及び位置に対応した画像領域を、特定領域として抽出する。ステップS504の後、階層処理部207の処理は、第1階層加算部303にて行われるステップS504の処理に進む。
ステップS504では、第1階層加算部303は、分割ブロックの1/16ゲイン画像205と、領域抽出部302にて抽出された特定領域の画像とを、階層加算処理により合成する。ステップS504の後、階層処理部207の処理は、第2拡大部304にて行われるステップS505に進む。
ステップS505では、第2拡大部304は、第1階層加算部303での階層加算処理により合成された分割ブロックの1/16ゲイン画像を16倍に拡大処理する。ステップS505の後、階層処理部207の処理は、第2階層加算部306にて行われるステップS506に進む。
ステップS506では、第2階層加算部306は、分割ブロックの1/1ゲイン画像203と、第2拡大部304で16倍拡大処理された分割ブロックの1/1ゲイン画像とを、階層加算処理により合成する。ステップS506の後、第2階層加算部306は、ステップS507に処理を進める。
ステップS507では、第2階層加算部306は、全ての分割ブロックに対する処理が終わったか否かを判定し、未処理の分割ブロックが残っている場合には、ステップS502に処理を戻す。これにより、階層処理部207では、未処理の分割ブロックに対して、ステップS502〜507の処理が行われることになる。すなわち図4のフローチャートの場合、領域抽出部302には、第1拡大部300による拡大処理後の1/16ゲイン画像が、上位側の階層(つまり中位階層)における分割ブロック数に相当する回数だけRAM104から読み出されて入力されることになる。そして、領域抽出部302では、RAM104から読み出された1/16ゲイン画像から、中位階層における分割ブロックのサイズ及び位置に対応した特定領域を抽出する処理が行われる。
第2階層加算部306は、ステップS507において全ての分割ブロックの処理が完了したと判定した場合、階層処理部207における階層処理が完了したとして、図4のフローチャートの処理を終了する。
以下、前述したような第1の実施形態における上位階層と中位階層のブロック分割処理と、下位階層の画像に対する特定領域の抽出処理について説明する。
図5(a)〜図5(c)は、第1の実施形態における画像のブロック分割処理と特定領域の抽出処理の考え方を説明するための図である。
図5(a)は前述した1/1ゲイン画像203に対するブロック分割の概要を、図5(b)は1/16ゲイン画像205に対するブロック分割の概要を、図5(c)は1/256ゲイン画像206に対する拡大処理と特定領域の抽出処理の概要を表す図である。図5(a)〜図5(c)の例では、水平方向の分割数が"5"であり、分割ブロック数x=5となされている例を挙げている。なお本実施形態では、垂直方向の分割は行われていないが、本実施形態は垂直方向に分割する場合も同様に可能である。
本実施形態において、図5(a)に示した1/1ゲイン画像203の各分割ブロックB1〜B4における水平サイズ(水平方向の画素数)の画素数制約は16の倍数としている。したがって、1/1ゲイン画像203の各分割ブロックB1〜B4における水平サイズは、"n"を自然数として、16n,32n,48n,64nのように表される。なお、各分割ブロックB1〜B4の水平サイズの画素数制約は、本実施形態のような階層処理が行われる場合の階層数や、コーデック形式など様々な要因に応じて決められる数値である。また、1/1ゲイン画像203の分割ブロックB5は、1/1ゲイン画像203を各分割ブロックB1〜B4で分割した際の余りの領域からなるブロックであるため、水平サイズは16の倍数でなくてもよい。この1/1ゲイン画像203の各分割ブロックB1〜B5の水平方向の開始座標は、前述した16n毎のブロックの区切りの位置となる。
また、図5(b)に示した1/16ゲイン画像205は、1/1ゲイン画像203を1/16に縮小した画像である。このため、1/16ゲイン画像205の各分割ブロックB1〜B4の水平サイズ及び開始座標は、1/1ゲイン画像203の例の1/16で16n÷16=nとなり、それぞれn,2n,3n,4nのように表される。すなわち、1/16ゲイン画像205の各分割ブロックB1〜B4の水平サイズは整数となり、開始座標も整数で等間隔となるため、例えばRAM104における画像データの読み出し制御が複雑になることはない。なお、1/16ゲイン画像205の分割ブロックB5は、1/16ゲイン画像205を各分割ブロックB1〜B4で分割した際の余りの領域からなるブロックである。
一方、図5(c)に示した1/256ゲイン画像206は、前述したように画像全体を16倍する拡大処理が行われた後、上位側の階層(中位階層)の分割ブロックの処理が行われる毎に、RAM104から画像全体が一括して読み出される。すなわち、下位階層ではブロック分割が行われていないため、下位階層において拡大処理された1/16ゲイン画像は、上位側の階層(中位階層)における分割ブロックの水平サイズに相当する画角の領域より広い画角の領域に相当した画像となる。そして、領域抽出部302は、第1拡大部300で拡大処理されてRAM104から読み出された1/16ゲイン画像から、1/16ゲイン画像206の分割ブロックに対応した特定領域のみを抽出する。例えば領域抽出部302は、1/16ゲイン画像205で1ブロック目の分割ブロックB1が処理される際には、1/256ゲイン画像206の拡大処理後の1/16ゲイン画像から、1/16ゲイン画像205の分割ブロックB1に対応した特定領域B1を抽出する。領域抽出部302は、1/16ゲイン画像205で2ブロック目の分割ブロックB2が処理される際には、1/256ゲイン画像206の拡大処理後の1/16ゲイン画像から、1/16ゲイン画像205の分割ブロックB2に対応した特定領域B2を抽出する。以下同様である。すなわち、領域抽出部302が抽出する特定領域の開始座標及び水平サイズは、1/16ゲイン画像205の各分割ブロックに対応した開始座標及び水平サイズと同じになされる。なお、1/256ゲイン画像206の拡大処理後の1/16ゲイン画像から特定領域が抽出された後の残りの領域は、後段の第1階層加算部303での階層加算処理の際には不要であるためカットされる(使用されずに削除される)。
図6(a)〜図6(c)は、具体的な数値を挙げて画像のブロック分割と特定領域の抽出の考え方を説明するための図である。図5(a)〜図5(c)の例と同様に、図6(a)は1/1ゲイン画像203の分割ブロック、図6(b)は1/16ゲイン画像205の分割ブロック、図6(c)は1/256ゲイン画像206の拡大処理と特定領域を表している。
図6(a)に示した1/1ゲイン画像203の画像全体の水平サイズ(水平方向の画素数)は4688画素であるとする。また、1/1ゲイン画像203の各分割ブロックB1〜B4の水平サイズは、前述した最大水平画素数の1000以下で且つ16の倍数である992画素とする。ただし、1/1ゲイン画像203の各分割ブロックB1〜B4による分割後の余りの分割ブロックB5の水平サイズは720画素になっている。この図6(a)の例の場合、各分割ブロックB1〜B5のそれぞれの読み出し開始位置は、水平方向の画素数に換算するとそれぞれ"0","992","1984","2976","3968"のように整数となる。なお、これら読み出し開始位置の画素数は、前述した画素カウンタによりカウントされる画素数に相当する。
また、図6(b)に示す1/16ゲイン画像205の場合、画像全体の水平サイズは、1/1ゲイン画像203の画像全体の水平サイズ(4688)の1/16であるため、4688÷16=293画素となる。また、1/16ゲイン画像205における各分割ブロックB1〜B4の水平サイズは、1/1ゲイン画像203の分割ブロックの水平サイズ(922)の1/16であるため、992÷16=62画素になる。なお、1/16ゲイン画像205の各分割ブロックB1〜B4による分割後の余りの分割ブロックB5の水平サイズは45画素になっている。したがって、1/16ゲイン画像205における各分割ブロックB1〜B5のそれぞれの読み出し開始位置は、"0","62","124","186","248"のように整数となる。
一方、図6(c)に示す1/256ゲイン画像206の画像全体の水平サイズは、1/1ゲイン画像203の画像全体の水平サイズ(4688)の1/256であるため、4688÷256=18.3画素となり、小数値を繰り上げることで19画素となる。なお、図6(c)の1/256ゲイン画像206において、図中斜線で示す領域は、繰上げにより増やした領域を表している。ここで例えば、1/256ゲイン画像206に対して、1/1ゲイン画像203や1/16ゲイン画像205と同様に例えば5分割によるブロック分割を行う場合について考えてみる。この場合、1/256ゲイン画像206を5分割した各分割ブロックB1〜B4の水平サイズは3.875画素になり、小数値が存在することになる。なお、1/256ゲイン画像206の分割ブロックB5の水平サイズは、19画素から各分割ブロックB1〜B4を除いた余りと図中斜線で示す領域とを合わせたサイズとなり、小数値が存在するサイズとなる。このように、各分割ブロックの水平サイズに小数値が存在すると、分割ブロック単位でRAM104から画像を読み出す処理が非常に複雑になってしまう。
これに対し、第1の実施形態では、前述したように1/256ゲイン画像206についてはブロック分割を行わずに画像全体を一括してRAM104から読み出すようにしているため、前述のような小数値を扱う必要がない。第1の実施形態では、前述のように、第1拡大部300にて1/256ゲイン画像206を16倍に拡大処理した後、領域抽出部302において、1/16ゲイン画像205の各分割ブロックに合わせたサイズ及び位置から特定領域を抽出している。すなわち下位階層の拡大処理後の1/16ゲイン画像は、中位階層の分割ブロック相当の画角より広い画角相当の画像であり、特定領域は、この下位階層の拡大処理後の1/16ゲイン画像の中から、中位階層の分割ブロックの画角相当の領域として抽出される。具体的には、特定領域は、1/16ゲイン画像205の各分割ブロックの読み出し開始位置に合った整数の画素数で表される位置で抽出される。図6(c)の例では、1/16ゲイン画像205の分割ブロックB2(62画素から124画素までの分割ブロック)に対応した特定領域が抽出されている例を表している。この図6(c)の例の場合、特定領域は、1/256ゲイン画像206を16倍に拡大処理した1/16ゲイン画像の中の62画素から124画素までの間の領域となる。なお、特定領域が抽出された後の残りの領域は、後段の階層加算処理では不要であるためカットされる。
このように、第1の実施形態では、下位側の階層の画像については、その階層に対して一つ上位側の階層に合わせた拡大処理がなされた後、その拡大処理後の画像から、上位側の階層の分割ブロックの水平サイズ及び開始座標に対応した特定領域が抽出される。そして、領域抽出された特定領域の画像と、上位側の階層の分割ブロックの画像とが階層加算されて合成される。このため、第1の実施形態では、画素位置の計算を整数で行うことができ、RAM104からの読み出し処理が非常に容易になる。すなわち、第1の実施形態によれば、サイズの小さいラインメモリを使用可能にすることによるコストの低減を実現することのみならず、RAM104からの読み出し処理を容易にすることによる高い処理パフォーマンスの画像処理が実現可能となる。
図7(a)〜図7(c)は、入力画像200の水平方向の最大サイズが例えば8000画素であった場合に階層毎のブロック分割数の例を説明するための図である。また、図8(a)〜図8(c)は、入力画像200の水平方向の最大サイズが例えば8000画素であった場合において、第1の実施形態における上位階層及び中位階層のブロック分割数と、下位階層の画像の例を説明するための図である。なお、図7(a)〜図7(c)の例は、第1の実施形態に係る図8の例との対比に用いる図であり、全階層において同じ分割数でブロック分割が行われた場合を示している。図7(a)と図8(a)は1/1ゲイン画像203を、図7(b)と図8(b)は1/16ゲイン画像205を、図7(c)と図8(c)は1/256ゲイン画像206を示している。
図7(a)〜図7(c)と図8(a)〜図8(c)において、1/1ゲイン画像203の水平サイズは前述したように8000画素である。このため、1/16ゲイン画像205の水平サイズは8000÷16=500画素となり、1/256ゲイン画像206の水平サイズは8000÷256=31.25で小数値を繰り上げて32画素とする。また、図7(a)〜図7(c)と図8(a)〜図8(c)において、1/1ゲイン画像203を一度に処理できる水平サイズは例えば最大で1000画素であるとする。
図7(a)〜図7(c)において、1/1ゲイン画像203を一度に処理できる水平サイズは最大1000画素であるため、1/256ゲイン画像206の分割ブロックの水平サイズを整数にするためには256で割り切れるという画素数の制約が生ずる。この制約の下、図7(a)に示すように、1/1ゲイン画像203をブロック分割した場合の水平サイズの最大値は768画素となる。同様に、図7(b)に示すように、1/16ゲイン画像205の分割ブロックの水平サイズは768÷16=48で48画素となり、図7(c)に示すように、1/256ゲイン画像206の分割ブロックの水平サイズは768÷256=3で3画素になる。したがって、図7(a)〜図7(c)の例では、各階層の分割ブロック数はそれぞれ11ブロックとなる。
一方、第1の実施形態では前述したように上位階層と中位階層ではブロック分割を行うが、下位階層ではブロック分割が行われない。また、1/1ゲイン画像203を一度に処理できる水平サイズは最大1000画素であるとする。第1の実施形態の場合、ブロック分割されるのは1/1ゲイン画像203と1/16ゲイン画像205であり、1/256ゲイン画像206はブロック分割されない。図8(a)〜図8(c)の例では、1/16ゲイン画像205の分割ブロックの水平サイズが整数になる必要があるため、1/1ゲイン画像203をブロック分割した場合の水平サイズの最大値は、16で割り切れる最大値である992画素となる。また、1/16ゲイン画像205の各分割ブロックの水平サイズは、992÷16=62で62画素となる。これらのことから、第1の実施形態の場合は、図8(a)と図8(b)に示すように、1/1ゲイン画像203と1/16ゲイン画像205の分割ブロック数は9ブロックとなる。一方、図8(c)に示すように、1/256ゲイン画像206は画像全体を一括で読み出すためブロック分割されず、前述したように、中位階層の1/16ゲイン画像205の分割ブロック数に相当する回数だけRAM104から読み出される。すなわち、図8(a)〜図8(c)の場合、図7(a)〜図7(c)のように全階層で同じ分割数でブロック分割を行う場合と比較して、分割数を少なくすることができる。
なお、前述の実施形態では1/1、1/16、1/256の三つの階層による階層処理の例を示したが、更に多くの階層で処理を行う場合も容易に適応可能である。この場合、それら多数の階層を中間で二つの階層群に分け、上位側の各階層を上位階層群、下位側の各階層を下位階層群とする。上位階層群では分割ブロック単位で処理を行い、下位階層群ではブロック分割を行わない。また、下位階層群については、拡大処理して上位階層群の画像との階層加算を行う手前で、その上位階層群の分割ブロックに合わせた特定領域を抽出する。そして、それら上位階層群の分割ブロックと、拡大処理された下位階層群から抽出された特定領域とを階層加算する。この例のように、三つ以上の多数の階層で処理を行う場合にも、本実施形態は適用可能であり、前述同様の効果が期待できる。
前述したように、本実施形態の階層処理部207は、階層毎に分けられた画像の拡大処理と階層加算を行う際、階層毎にブロック分割する/しないを制御し、下位側の階層ではブロック分割を行わず、上位側の階層ではブロック分割を行うようにする。そして、階層処理部207は、ブロック分割しない下位側の階層で拡大処理した画像から、上位側の階層の分割ブロックに対応した特定領域を抽出し、その特定領域の画像と、上位側の階層の分割ブロックとで階層加算を行う。これにより、本実施形態によれば、各階層の画像をブロック単位に分割して処理する際に、分割ブロックの水平サイズの画素数の制約を緩和して分割ブロック数をより少なくすることができ、処理パフォーマンス向上させることができる。
また、前述した実施形態では、階層処理を行う例を挙げたが、画像を分割ブロック単位で処理する場合において、階層処理以外で例えば拡大処理を含む様々な機能にも適用可能である。例えば、二つの画像の待ち合わせ処理を行い、加減算処理やテンプレートマッチング処理などが行われる場合においても、分割数の制約や緩和を行うことができる。
この場合においても、階層加算以外の部分においては前述同様の制御を行えばよく、画像の読み出しは一括で行い、拡大処理の後に分割ブロックに合わせた特定領域を抽出するという処理は同様である。このとき、領域抽出部で抽出される特定領域に対応し、拡大処理前の画像の端部の画素の位置が小数値で表される位置になる場合には、少なくともその位置を含む整数となる画素の位置から読み出すようにする。また、この場合の拡大処理における拡大率は、拡大後の端部の画素の位置が整数となる倍率であればよい。
<第2の実施形態>
前述した第1の実施形態では、下位階層の1/256ゲイン画像206はブロック分割せずに画像全体を一括でRAM104から読み出して処理を行う例を示した。第2の実施形態では、1/256ゲイン画像206についてもブロック分割し、分割ブロック単位で必要な領域のみを読み出す例について説明する。なお、第2の実施形態の撮像装置は前述の図1の撮像装置100と同じ構成であり、また、画像処理部110の階層処理部207も前述の図2と同じ構成であるため、それらの図示と説明は省略する。第2の実施形態の場合、第1拡大部300は1/256ゲイン画像206をブロック分割し、分割ブロック毎に16倍の拡大処理を行う。
図9は、第2の実施形態において1/256ゲイン画像206をブロック分割した場合の分割ブロック毎のRAM104からの読み出しについての説明に用いる図である。図9の例では、図示を省略しているが、1/1ゲイン画像203と1/16ゲイン画像205は、例えば前述した図5(a)と図5(b)や図6(a)と図6(b)に示したようにそれぞれ5ブロックに分割されているとする。また、1/256ゲイン画像206は、図6(c)の所で説明したように、各分割ブロックB1〜B4と分割ブロックB5のように5ブロックに分割されるとする。
第2の実施形態のように1/256ゲイン画像206を分割ブロックB1〜B5に分割した場合、各分割ブロックにおいて後段の処理で必要な画素の先頭または最後の位置は、図6(c)で説明したように画素数に換算して小数値で表される位置になる。このため、第2の実施形態の場合、RAM104から1/256ゲイン画像206の各分割ブロックB1〜B5のデータを読み出す際には、少なくとも小数値で表される位置を含む整数位置から、画像の読み出しが行われる。
具体的に説明すると、1/256ゲイン画像206において、分割ブロックB1の水平方向の先頭位置は整数位置(0)なので、分割ブロックB1の水平方向の先頭位置からそのまま読み出しが行われる。一方、分割ブロックB1の水平方向の最後の位置は画素数換算で3.875なので、3.875を含み、かつ、画素数が大きい方向の整数位置である4画素目までが読み出される。次に、分割ブロックB2の先頭位置は画素数換算で3.875なので、3.875を含み、かつ、画素数が小さい方向の整数位置である3画素目からの読み出しが行われる。一方、分割ブロックB2の最後の位置は画素数換算で7.75なので、7.75を含み、かつ、画素数が大きい方向の整数位置である8画素目までが読み出される。以下、同様にして、それぞれの分割ブロックB3〜B5について、それぞれ先頭又は最後の位置の小数値を含むように画像の読み出しが行われる。そして、第1拡大部300は、前述したように分割ブロックB1〜B5に対してそれぞれ小数値を含む整数位置までの余剰分を有する領域について、16倍の拡大処理を行った後、領域抽出部302に出力する。すなわち第2の実施形態において、下位階層における分割ブロックに余剰分を含めた領域は、上位側の階層(中位階層)における分割ブロックの水平サイズに相当する画角より広い画角に相当した領域となる。
第2の実施形態の領域抽出部302は、前述のように分割ブロックに余剰分を含めた領域が16倍に拡大処理された1/16ゲイン画像から、余剰分に相当する領域をカットする。そして、領域抽出部302は、そのカット後の分割ブロックの1/16ゲイン画像のデータを、第1積層加算部303に出力する。第1積層加算部303以降の各部の処理は第1の実施形態の場合と同様であるため、その説明は省略する。
このように、第2の実施形態の場合、前述したように分割ブロックB1〜B5に対して、それぞれ小数値を含む整数位置までの余剰分が含まれた領域の読み出しが行われる。すなわち、第2の実施形態において、第1拡大部300からは、上位側の階層(中位階層)における分割ブロックの水平サイズに相当する画角より広い画角に相当した領域を拡大した画像が出力される。また、領域抽出部302では、分割ブロックに余剰分を含めた領域が16倍に拡大処理された1/16ゲイン画像から、余剰分に相当する領域をカットしている。このため、第2の実施形態の場合、1/256ゲイン画像206の読み出し位置や読み出しサイズ、及び、領域抽出部302においてカットする領域が分割ブロック毎に異なることになる。例えば、図9の例の場合、分割ブロックB1では余剰分を含む読み出し時の水平サイズは4画素であるのに対し、分割ブロックB2〜B4では5画素、分割ブロックB5では3画素となる。このため、第2の実施形態の場合は、前述したブロック分割の際のパラメータの設定を制御することにより、1/256ゲイン画像206の読み出し位置や読み出しサイズ、領域抽出部302におけるカットする領域を変更可能としている。具体的には、図9の例の場合、分割ブロックB1では余剰分を含む4画素分の領域を分割ブロックのサイズ及び位置とするようなパラメータを設定する。同様に、分割ブロックB2〜B4では余剰分を含む5画素分の領域を分割ブロックのサイズ及び位置とし、分割ブロックB5では余剰分を含む3画素分の領域を分割ブロックのサイズ及び位置とするようなパラメータをそれぞれ設定する。これにより図9の例に示したような読み出しが可能となる。
前述したように、第2の実施形態によれば、1/256ゲイン画像206の各分割ブロックB1〜B5において小数値の画素位置を扱う必要がなく、また、1/256ゲイン画像206の各分割ブロックB1〜B5の読み出し量は必要最小限で済むことになる。したがって、第2の実施形態の場合は、前述した第1の実施形態のように1/256ゲイン画像206の画像全体が一括して読み出される場合と比較して、画像の読み出し量を削減することができる。第2の本実施形態においても同様に、コストの低減を実現しつつ、高い処理パフォーマンスの画像処理が実現可能となる。
以上説明したように、第1の実施形態及び第2の実施形態によれば、画像を階層毎にブロック分割して処理を行う際に、画素数の制約を緩和することができる。また、第1の実施形態で説明した処理を採用すれば、パラメータの変更などの制御をより単純にした処理が可能となる。一方、第2の実施形態で説明した処理を採用した場合には、画像の読み出し量を、より少なくすることができる。第1、第2の実施形態の何れにおいても、分割ブロック数を従来の処理よりも少なくすることができ、処理パフォーマンス向上させることができる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
201 輝度変換部、202 ゲイン生成部、204 縮小部、207 階層処理部、209 ゲイン乗算部、300 第1拡大部、301,305 ラインメモリ、302 領域抽出部、303 第1階層加算部、304 第2拡大部、306 第2階層加算部、310〜314 制御部

Claims (11)

  1. 下位の階層の画像が上位の階層の画像を縮小した縮小画像となされている2以上の階層の画像のうち、下位側の階層の画像を拡大する拡大手段と、
    上位側の階層の画像を複数のブロックに分割したブロック単位で、前記下位側の階層の前記拡大された画像と、前記上位側の階層の画像とを、合成する合成手段と、
    前記拡大手段により前記拡大された画像から、前記上位側の階層の前記ブロックに対応した一部の領域を抽出する抽出手段と、を有し、
    前記抽出手段は、前記拡大手段により前記拡大された画像のうち、前記上位側の階層の前記ブロックより少なくとも広い領域から、前記上位側の階層の前記ブロックの大きさに合わせた前記一部の領域を抽出し、
    前記抽出手段が前記抽出した前記一部の領域の画像を、前記合成手段により前記上位側の階層のブロックに対して前記ブロック単位で合成される画像とすることを特徴とする画像処理装置。
  2. 前記拡大手段は、前記下位側の階層の分割されていない画像全体を拡大し、
    前記抽出手段は、前記拡大手段により前記画像全体が拡大された画像から、前記上位側の階層の前記ブロックの位置及び大きさに合わせた前記一部の領域を抽出することを特徴とする請求項1に記載の画像処理装置。
  3. 前記拡大手段は、前記下位側の階層の画像を複数のブロックに分割し、前記ブロックの区切りの位置を表す画素数が小数値を有する場合には、前記区切りの位置を含めて整数となる画素数の位置で区切った領域を拡大し、
    前記抽出手段は、前記拡大手段により前記整数となる画素数の位置で区切られた領域が拡大された画像から、前記上位側の階層の前記ブロックの大きさに合わせた前記一部の領域を抽出することを特徴とする請求項1に記載の画像処理装置。
  4. 前記上位側の階層は、複数の階層を中間で上位階層群と下位階層群とに分けた場合の上位階層群であり、
    前記下位側の階層は、前記下位階層群であることを特徴とする請求項1乃至3の何れか1項に記載の画像処理装置。
  5. 入力画像を2以上の異なる縮小率で縮小して、それぞれ解像度が異なる前記2以上の階層の画像を生成する縮小手段を有し、
    前記拡大手段は、下位側の階層の画像を一つ上位の階層に対応した解像度の画像に拡大し、
    前記合成手段は、前記拡大手段により拡大された画像を、前記一つ上位の階層の解像度の画像と前記ブロック単位で階層加算するようにして前記合成を行うことを特徴とする請求項1乃至4の何れか1項に記載の画像処理装置。
  6. 画像を複数のブロックに分割したブロック単位で処理を行う画像処理装置であって、
    入力画像を拡大する拡大手段と、
    前記拡大手段により前記拡大された画像から一部の領域を抽出する抽出手段と、を有し、
    前記抽出手段は、前記拡大手段により前記拡大された画像のうち、前記ブロックより少なくとも広い領域から、前記ブロックの大きさに合わせた前記一部の領域を抽出し、
    前記抽出手段が前記抽出した前記一部の領域の画像を、前記ブロック単位で処理される画像とすることを特徴とする画像処理装置。
  7. 前記拡大手段は、前記入力画像の画像全体を拡大し、
    前記抽出手段は、前記拡大手段により前記拡大された画像から、前記ブロックの位置及び大きさに合わせた前記一部の領域を抽出することを特徴とする請求項6に記載の画像処理装置。
  8. 前記複数のブロックへの分割は、画素数に対する所定の制約に基づくブロック数とブロックサイズにより行われることを特徴とする請求項1乃至7の何れか1項に記載の画像処理装置。
  9. 下位の階層の画像が上位の階層の画像を縮小した縮小画像となされている2以上の階層の画像のうち、下位側の階層の画像を拡大する拡大工程と、
    前記拡大工程により前記拡大された画像のうち、上位側の階層の画像を複数に分割したブロックより少なくとも広い領域から、前記上位側の階層の前記ブロックの大きさに合わせた一部の領域を抽出する抽出工程と、
    前記上位側の階層の画像を複数に分割したブロックの画像と、前記抽出工程により前記抽出された前記一部の領域の画像とを、合成する合成工程と、
    を有することを特徴とする画像処理装置の画像処理方法。
  10. 画像を複数のブロックに分割したブロック単位で処理を行う画像処理装置の画像処理方法であって、
    入力画像を拡大する拡大工程と、
    前記拡大工程により前記拡大された画像のうち、前記ブロックより少なくとも広い領域から、前記ブロックの大きさに合わせた一部の領域を抽出する抽出工程と、を有し、
    前記抽出工程により前記抽出された前記一部の領域の画像を、前記ブロック単位で処理される画像とすることを特徴とする画像処理方法。
  11. コンピュータを、請求項1乃至8の何れか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
JP2016206333A 2016-10-20 2016-10-20 画像処理装置、画像処理方法、プログラム Active JP6840506B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016206333A JP6840506B2 (ja) 2016-10-20 2016-10-20 画像処理装置、画像処理方法、プログラム
US15/787,138 US10475159B2 (en) 2016-10-20 2017-10-18 Image processing apparatus, image processing method, and storage medium storing program to scale image having hierarchical layer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016206333A JP6840506B2 (ja) 2016-10-20 2016-10-20 画像処理装置、画像処理方法、プログラム

Publications (3)

Publication Number Publication Date
JP2018067849A true JP2018067849A (ja) 2018-04-26
JP2018067849A5 JP2018067849A5 (ja) 2019-11-28
JP6840506B2 JP6840506B2 (ja) 2021-03-10

Family

ID=61969739

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016206333A Active JP6840506B2 (ja) 2016-10-20 2016-10-20 画像処理装置、画像処理方法、プログラム

Country Status (2)

Country Link
US (1) US10475159B2 (ja)
JP (1) JP6840506B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110383332B (zh) * 2017-06-05 2023-09-12 乐天集团股份有限公司 图像处理装置、图像处理方法及图像处理程序
JP6869841B2 (ja) * 2017-07-20 2021-05-12 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、およびプログラム
CN112258396B (zh) * 2020-12-17 2021-04-06 恒银金融科技股份有限公司 一种用于字符图像缩放的方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3549720B2 (ja) * 1998-01-28 2004-08-04 シャープ株式会社 画像処理装置
CN102667864B (zh) * 2009-10-26 2015-06-03 索尼计算机娱乐公司 图像文件生成装置、图像处理装置、图像文件生成方法、图像处理方法
JP5419822B2 (ja) * 2010-07-23 2014-02-19 株式会社ソニー・コンピュータエンタテインメント 画像処理装置、画像表示装置、画像処理方法、および画像ファイルのデータ構造
CN103098466B (zh) * 2010-09-13 2016-08-17 索尼电脑娱乐公司 图像处理装置和图像处理方法
JP5703769B2 (ja) 2011-01-19 2015-04-22 ソニー株式会社 画像変換装置、画像変換方法、プログラム、および電子機器
JP5792607B2 (ja) * 2011-12-09 2015-10-14 株式会社ソニー・コンピュータエンタテインメント 画像処理装置および画像処理方法
US8675999B1 (en) * 2012-09-28 2014-03-18 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Apparatus, system, and method for multi-patch based super-resolution from an image
US9984440B2 (en) * 2013-06-18 2018-05-29 Adobe Systems Incorporated Iterative patch-based image upscaling

Also Published As

Publication number Publication date
JP6840506B2 (ja) 2021-03-10
US20180114292A1 (en) 2018-04-26
US10475159B2 (en) 2019-11-12

Similar Documents

Publication Publication Date Title
JP6453694B2 (ja) 画像合成装置、画像合成方法、画像合成プログラム及び記録媒体
JP2007067917A (ja) 画像データ処理装置
JP4063306B1 (ja) 画像処理装置、画像処理方法、及びプログラム
US9462189B2 (en) Piecewise perspective transform engine
JP2010537228A (ja) パンクロ画素を使用する画素アスペクト比の補正
JP6840506B2 (ja) 画像処理装置、画像処理方法、プログラム
JP6817779B2 (ja) 画像処理装置、その制御方法、プログラムならびに記録媒体
US8902474B2 (en) Image processing apparatus, control method of the same, and program
US7634154B2 (en) Image conversion apparatus and image conversion method
JP4212430B2 (ja) 多重画像作成装置、多重画像作成方法、多重画像作成プログラム及びプログラム記録媒体
JP7183015B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP2006238188A (ja) 補間フィルタおよび映像信号処理装置
JP2013218523A (ja) 画像拡大処理装置
JP5836789B2 (ja) 画像処理装置およびその制御方法、およびプログラム
JP2011053456A (ja) 画像表示方法、プログラム、画像表示装置、及び、この画像表示装置を有する撮像装置
JP2020057242A (ja) 画像処理装置、画像処理方法、及びプログラム
US11893706B2 (en) Image correction device
JP2010273012A (ja) 画像処理装置、撮像装置およびプログラム
WO2016035568A1 (ja) 信号処理装置および信号処理方法、固体撮像素子、撮像装置、電子機器、並びにプログラム
JP6465669B2 (ja) 画像処理装置および画像処理方法
JP3236481B2 (ja) 画像変換方法及び画像変換装置
JP4316476B2 (ja) 画像処理装置、画像形成装置
JP2006303693A (ja) 縮小画像の生成機能を備える電子カメラ
JP2005123812A (ja) 画像処理装置
WO2021053735A1 (ja) アップスケーリング装置、アップスケーリング方法、及び、アップスケーリングプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191015

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191015

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200930

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210217

R151 Written notification of patent or utility model registration

Ref document number: 6840506

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151