JP4406711B2 - 画像データ処理方法および画像データ処理装置 - Google Patents

画像データ処理方法および画像データ処理装置 Download PDF

Info

Publication number
JP4406711B2
JP4406711B2 JP2005038551A JP2005038551A JP4406711B2 JP 4406711 B2 JP4406711 B2 JP 4406711B2 JP 2005038551 A JP2005038551 A JP 2005038551A JP 2005038551 A JP2005038551 A JP 2005038551A JP 4406711 B2 JP4406711 B2 JP 4406711B2
Authority
JP
Japan
Prior art keywords
image
processing
image data
memory
horizontal
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.)
Expired - Fee Related
Application number
JP2005038551A
Other languages
English (en)
Other versions
JP2006229383A (ja
Inventor
利行 皆見
徹 倉田
仁孝 和田
久保  学
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2005038551A priority Critical patent/JP4406711B2/ja
Publication of JP2006229383A publication Critical patent/JP2006229383A/ja
Application granted granted Critical
Publication of JP4406711B2 publication Critical patent/JP4406711B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Studio Devices (AREA)

Description

この発明は、例えばデジタルビデオカメラの撮像画像についての画像処理に適用して好適な画像データ処理方法および画像データ処理装置に関する。
例えばビデオカメラなどの撮像装置には、撮影画像を一時的に記憶する画像メモリを備え、この画像メモリを用いることにより、撮像画像データを所望の解像度の出力画像データとしたり、撮像画像データに対して、電子手ぶれ補正処理をしたり、いわゆる電子ズームなどの効果処理を施したりする画像処理機能を備えているものが多い。
従来、この種の画像メモリを用いる画像データ処理の方法の一例として、特許文献1(特許第2956527号)に記載された画像データ処理方法がある。この特許文献1に記載の画像データ処理方法は、所望の解像度の出力画像を得る解像度変換処理の場合を例に取ると、図43に示すようなものとなる。
すなわち、図43に示すように、撮像素子からの入力撮像画像データ(A/D変換されたデジタル信号であるとする)は、制御部301からの書き込み/読み出し制御信号W/Rによる書き込み制御により、1画面分の撮像画像データが保存可能な容量を有する画像メモリ302に書き込まれる。
そして、この画像メモリ302に書き込まれた撮像画像データは、制御部301からの書き込み/読み出し制御信号W/Rによる読み出し制御により、1垂直周期遅れて読み出されて、水平解像度変換部303に供給される。水平解像度変換部303では、水平方向の解像度が指定されたものとなるように、画素間引きや画素補間を行なって変換処理される。
水平解像度変換部303で水平解像度変換された撮像画像データは、垂直解像度変換部304に供給される。垂直解像度変換部304では、垂直方向の解像度が指定されたものとなるようにライン間引きやライン補間を行なって垂直解像度変換処理され、所望の解像度の出力撮像画像信号を出力する。
ここで、画像メモリ302の記憶容量は、撮像画像データの1画面分(1垂直周期分)以上の容量とされており、この画像メモリ302には、図44において実線で示すようにして、撮像画像データの書き込みがなされる。そして、図44において破線で示すように、書き込みに対して1垂直周期遅れて、当該書き込まれた撮像画像データが順次に読み出される。
画像メモリ302の記憶容量として、1画面分以上必要であるのは、この例では、1垂直周期遅れて画像データの読み出しが行なわれるためである。すなわち、画像メモリ302の画像データは、1垂直周期経過すると、次の垂直周期分の画像データにより上書きされてしまうので、それを回避するべく、画像データの読み出しが行なわれる前に、次の1画面分の画像データにより前の画像データが上書きされてしまわないようにするため、記憶容量として1画面分を越える分のマージンを必要とするからである。
このようにすることにより、画像メモリ302においては、書き込みに対して読み出しが追い越すことなく、撮像画像データの書き込みおよび読み出しがなされて、解像度変換処理が行なわれ、所望の解像度の画像データが出力される。
上記の特許文献は、次の通りである。
特許第2956527号公報
しかし、この特許文献1の画像データ処理方法では、画像メモリ302としては、撮像素子の最高解像度分の画素数(=水平方向の画素数×ライン数)に対応したメモリ容量が必要となる。例えば、HD(High Definition;高精細度)画像のデータが処理対象であって、当該HD画像データの1フィールド分の輝度信号および色差信号を、8ビット/画素で記憶すると、画像メモリ302として必要な記憶容量は約12Mビットとなる。このため、非常に大容量のメモリが必要になり、画像メモリが大型化すると共に、高価格となる。
また、撮像素子として、より多い画素数のものを用いた場合には、それに対応して、画像メモリ302の記憶容量を大きくする必要があるという問題もある。
これに対して、水平解像度変換部303を、画像メモリ301の前段に設け、撮像素子からの撮像画像データを、そのまま画像メモリ302に書き込むのではなく、水平解像度変換部303により水平解像度変換して、水平方向の画像データ量を小さくした後、画像メモリ301に、1画面分の撮像画像データを書き込むようにする方法も考えられる。この場合も、画像メモリ301からは、1垂直周期分遅れたタイミングで画像データが読み出されて、垂直解像度変換部304に供給され、垂直解像度変換処理がなされて、出力画像信号とされる。
この図45の例の場合には、画像メモリ302には、水平解像度変換部303で水平方向の解像度変換を行なって画素数が少なくなった1画面分の画像データが書き込まれることになる。このため、画像メモリ302の記憶容量は、水平方向の解像度変換後の1画面分の画像データ量でよいので、図43の例の構成の場合よりも画像メモリ302の記憶容量を少なくすることができる。
しかし、この図45の例の場合も、図43の例と同様に、1垂直周期分遅れて、画像メモリ302から画像データを読み出すようにするので、画像メモリ302の容量としては、1画面分以上である必要がある。しかも、画像メモリ302に記憶される水平方向の画像データ量を減らすことができても、撮像画像データの垂直方向の画像データ量は図43の例の場合と変わらない。
このため、撮像素子として、より多い画素数のものを用いた場合には、それに対応して、画像メモリ302の記憶容量を大きくする必要があるという問題は、図45の例の場合も回避することができない。
このように、従来の技術では、撮像素子からの撮像画像データのような入力画像データのデータ量(データサイズ)に増大に応じて、画像データ処理装置における画像メモリの記憶容量をも増大する必要があった。
この発明は、以上の点にかんがみ、入力画像データのデータ量(データサイズ)に関係なく、出力画像データとして必要なデータ量に応じた、比較的低容量の記憶容量の画像メモリを用いることができる画像データ処理方法および装置を提供することを目的とする。
上記の課題を解決するために、請求項1の発明は、
任意領域からの撮像画像の読み出しが可能な撮像素子から読み出された入力画像データに対して、所定の画像処理を第1の画像処理と第2の画像処理とに分けて施すことにより、出力画像データを生成する画像データ処理方法であって、
前記第1の画像処理結果を画像メモリに書き込む書き込み工程と、
前記第2の画像処理を施すようにするために、前記画像メモリに書き込まれた前記画像データを読み出す読み出し工程と、
前記読み出し工程を、前記所定の画像処理に応じて、予め設定された前記入力画像データの1画面分よりも少ない所定量の画像データが前記画像メモリに書き込まれた後に開始するようにする制御工程と、
を備えることを特徴とする画像データ処理方法を提供する。
この請求項1の発明においては、制御工程により、所定の画像処理に応じて予め設定された入力画像データの1画面分よりも少ない所定量の第1の画像処理結果の画像データが画像メモリに書き込まれた後に、当該画像メモリから前記第1の画像処理結果の画像データの読み出しが開始されて、第2の画像処理が行なわれるようにしているので、画像メモリの容量は、前記1画面分よりも少ない所定量の第1の画像処理結果の画像データ分でよい。
そして、第2の画像処理結果を画像メモリに書き込みことを想定した場合であっても、第2の画像処理結果は、入力画像データのデータサイズに関係なく、出力画像データとして必要なデータ容量でよいので、当該第2の画像処理結果を書き込む画像メモリも、容量が少なくてよい。
また、請求項7の発明は、
任意領域からの撮像画像の読み出しが可能な撮像素子から読み出された入力画像データに対して、所定の画像処理を第1の画像処理と第2の画像処理とに分けて施すことにより、出力画像データを生成する画像データ処理方法であって、
前記第1の画像処理結果を画像メモリに書き込む書き込み工程と、
前記第2の画像処理を施すようにするために、前記画像メモリに書き込まれた前記画像データを読み出す読み出し工程と、
前記書き込み工程によって前記画像メモリに書き込まれた画像データを監視して、前記画像メモリに前記第2の画像処理を開始できるデータ量の画像データが蓄積されたら、前記読み出し工程を開始するように制御する制御工程と、
を備えることを特徴とする画像データ処理方法を提供する。
この請求項の発明においては、制御工程により、画像メモリに書き込まれた第1の画像処理結果の画像データを監視して、当該画像メモリに第2の画像処理を開始できる画像データを開始することができるデータ量の画像データが蓄積されたら、当該画像メモリから前記第1の画像処理結果の画像データの読み出しが開始されて、第2の画像処理が行なわれるようにしているので、画像メモリの容量は、1画面分よりも少ない所定量の第1の画像処理結果の画像データ分でよい。
そして、この請求項7の発明においても、第2の画像処理結果を画像メモリに書き込みことを想定した場合には、第2の画像処理結果は、入力画像データのデータサイズに関係なく、出力画像データとして必要なデータ容量でよいので、当該第2の画像処理結果を書き込む画像メモリも、容量が少なくてよい。
この発明によれば、画像メモリの記憶容量は、入力画像データのデータサイズに関係なく、決められる。しかも、入力画像データの全てを記憶する容量を必要としないので、画像メモリの記憶容量は、少なくて済む。
したがって、この発明によれば、入力画像データのデータ量(データサイズ)に関係なく、低記憶容量の画像メモリを用いることができる画像データ処理方法および装置を提供することができる。
[この発明の実施形態]
以下に説明するこの発明による画像データ処理装置の実施形態は、撮像素子としてX−Yアドレス型の固体撮像素子の代表例であるCMOS(Complementary Metal−Oxide Semiconductor)イメージャ(CMOS型の固体撮像素子)を用いる撮像装置の場合の例である。そして、この撮像装置において、画像処理として、撮像した撮像画像について、手ぶれによる撮像画像歪みと、撮像レンズの歪曲収差特性による撮像画像歪みとを、併せて補正すると共に、電子ズーム処理および所望の解像度の出力画像データを得る解像度変換処理を行なうことができる場合である。
なお、この実施形態の撮像装置は、動画像および静止画像の両方を撮像可能であり、動画像の撮像画像データを処理する場合と、静止画像の撮像画像データを処理する場合の、何れの場合にも、上述の画像処理を適用することができるものである。
この発明の実施の形態の撮像装置を説明する前に、CMOSイメージャなどのX−Yアドレス型の固体撮像素子に特有の手ぶれによる画像ひずみについて説明する。
例えば従来一般的に用いられているCCD(Charge Coupled Device)を用いた固体撮像素子(以下、CCDを用いた固定撮像素子をCCDイメージャという)の場合には、全画素を同時期に露光し、1フレームの画像データについては、データ取り出しタイミングが全く同一であるので、手ぶれ変位量としては、図2において矢印で示すように、1フレーム分の全画素について、1つの手ぶれ変位量Vcsを考えればよい。
つまり、図2において、本来、被写体は実線で示す領域FLaに蓄積されるものであったのに、手ぶれにより点線で示す領域FLbに移動した場合には、当該フレームで1つの手ぶれ変位量Vcsを検出し、当該手ぶれ変位量Vcs分だけ、読み出し画素位置(サンプリング画素位置)を補正することにより、手ぶれに起因する撮像画像歪を補正することができる。
なお、図2に示すように、一般に、撮像素子では、その全画素を有効画素として扱うのではなく、全画素からなる領域(以下、実効画像領域という)AFLのうちの、周辺の領域を除く、水平有効領域および垂直有効領域で定まる中央部を有効画像領域EFLとして用いているものが多い。
このようなイメージャを用いた場合、手ぶれ補正により読み出し画素位置が変化しても、手ぶれ量が、実効画像領域AFLと有効画像領域EFLとの差分よりも小さい範囲では、イメージャが元々有している画素のデータを用いて歪み補正をすることができるので、補間処理などにより、手ぶれ補正に必要なデータを生成する場合に比べて、画像の劣化は少なくなる。
これに対して、CMOS型イメージャのようなX−Yアドレス型の固体撮像素子の場合には、画面の水平方向(X方向)の位置と、垂直方向(Y方向)位置とを指定することにより、画素単位で撮像データを読み出すことが可能である。ただし、CMOSイメージャなどのX−Yアドレス型の固体撮像素子においては、実用上は、1水平ライン分の画素群単位で読み出し(サンプリング)して、撮像画像データを出力するものが一般的である。
このように、CMOSイメージャから撮像データを水平ライン単位で読み出す場合には、図3に示すように、各水平ラインのついての露光期間は、水平ライン単位の読み出し時間差に応じたΔtだけ、時間的なずれを生じる。なお、1画素単位で撮像画像データの読み出しがなされる場合であっても、ライン間の読み出し時間差に比べて、画素間の読み出し時間差は無視できるほど小さい。そこで、1画素単位で撮像画像データの読み出しがなされる場合であっても、同様な露光期間の時間的なずれを生じるものとすることができる。
このため、CMOSイメージャを用いた撮像装置により、例えば走る電車の中から外の景色を撮影すると、本来は図4(A)のような画像が得られるべきものであるのに、図4(B)に示すように、本来鉛直に立っている家や木が傾いた画像が出力撮像画像となってしまう。これがCMOSイメージャ特有のフォーカルプレーン現象である。
図4(B)の画像例は、水平方向に移動しながら撮影したものであるため、被写体が傾いて撮像されるが、例えば垂直方向に移動しながら撮影した場合には、図示は省略するが、被写体が垂直方向に縮んだり、伸びたりするような画像となる。
この現象が発現するのは、CMOSイメージャを使用する撮像装置を持つ撮影者が高速に移動しながら撮影したり、逆に、固定位置にいる撮影者が高速に移動する被写体を撮影したりした場合であり、撮像装置と被写体の相対速度が速い場合に顕著となる。ただし、一般的な撮影において、このような状況は稀であるといえる。
しかしながら、撮影者が撮像装置を手で持って撮影している場合に、撮像装置を持っている撮影者の手が、微小かつ高速に振動した場合、すなわち、手ぶれが発生した場合、上述したフォーカルプレーン現象が発現することになる。
なぜなら、CMOSイメージャの場合の手ぶれ(以下、CMOS手ぶれという)の値は、CCDイメージャのように1フレーム内で1個の値ではなく、前述したように、1フレーム内における画素やライン毎のサンプリング時刻の違いにより、画素や水平ラインごとに異なるものとなる。このため、CMOSイメージャを用いた撮像装置においては、単に、1フレーム単位での手ぶれ量を用いた補正を行っても、前述したフォーカルプレーン現象による歪みは、補正されずに残ってしまう。
この際、手ぶれの方向、大きさ、速度が、1フレーム内(1枚の撮像画像内)で一律でないことが原因となって、CMOSイメージャを用いた撮像装置で、CMOS手ぶれが生じた時の被写体の撮像画像出力は、図4(C)に示すように、グニャグニャした奇妙な画像歪みが生じたものとなる。
そこで、この実施の形態では、1水平ライン単位で撮像画像データがCMOSイメージャから読み出されるとき、各水平ラインについての手ぶれによる位置変位量(以下、手ぶれ量という)を検出し、当該検出した手ぶれ量分だけ、発生した手ぶれとは逆方向にずれた位置から当該水平ラインのデータを読み出すように補正するものである。
しかし、手ぶれ量を各水平ラインについて得ることは、手ぶれを検出するセンサのサンプリング周波数などの条件から困難であることに鑑み、この実施形態においては、画面の垂直方向の複数ライン分置きの位置での手ぶれ量を、離散的に検出する。そして、手ぶれ検出を行なうライン以外の、手ぶれ量を直接的には検出しないラインに対する手ぶれ量は、検出された手ぶれ量を用いるようにする。
先ず、図5を用いて、この発明による撮像画像信号の歪み補正方法の実施形態における手ぶれなどによる撮像素子の位置的変化に基づくフォーカルプレーン現象を含む撮像画像歪みの補正処理の概要を説明する。
図5の概要説明図においては、図5(A)に示すように、画像に生じるCMOS手ぶれによる歪みを判りやすく示すために、歪みの無いオリジナルの画像として多数個の長方形からなる格子縞模様の画像を想定している。したがって、CMOS手ぶれによる画像歪みは、当該格子縞模様を構成する長方形の変形歪みとして現れるものとなる。
なお、この実施形態においても、CMOSイメージャは、図2に示したような1画面とする水平有効領域および垂直有効領域で定まる有効画像領域EFL(1垂直周期分)よりも広い範囲の実効画像領域AFLを有するものが用いられるものである。なお、図5(A)〜(D)に示した1画面分の画像は、図2の有効画像領域EFLの大きさの画像である。
この実施形態では、水平方向の画素クロックの速度は、手ぶれの速度よりも十分に早いとし、また、撮像画像データの読み出しは、1水平ライン単位で順次に行なうものとして、手ぶれ補正は、1水平ライン単位で行なうようにする。
また、この実施形態では、図5(B),(C),(D)に示すように、CMOSイメージャの有効画像領域EFL分の画像区間は、垂直方向に複数に等分割し、各分割画像区間Pdivでは、同じ手ぶれ速度の手ぶれ変位を受けるものと仮定している。ここで、分割数は、手ぶれ補正したときに、必要十分な補正効果が得られる分割画像区間Pdivの大きさを考慮して定められる。以下に説明する例では、有効画像領域EFLの画像区間を垂直方向に8分割するようにする。すなわち、この例では、分割画像区間Pdivは、垂直同期信号の1周期を1/8に分割した区間となる。
1つの分割画像区間Pdivは、複数水平ライン分からなるが、この実施形態では、同じ分割画像区間Pdivに含まれる複数水平ラインは同じ手ぶれ速度の手ぶれ変位を受けるものと仮定して手ぶれ補正処理を行なうものである。
そして、この実施形態では、8個の分割画像区間Pdiv_0〜Pdiv_7のそれぞれの先頭の水平ラインに対する手ぶれ速度ベクトルを、図5(B)の左側の矢印に示すようなものとして、手ぶれ速度検出手段により検出する。すなわち、この例では、手ぶれ速度ベクトルは、1画面分の撮像画像について、8箇所において、離散的に検出するようにする。
図5(B)の画像は、手ぶれ速度ベクトルが、各分割画像区間Pdivで、左側の矢印のようなものとした時に生じる手ぶれによる撮像画像の歪みを示している。この実施形態では、この手ぶれによる撮像画像の歪みを、水平方向処理と垂直方向処理とに分けて、それぞれの方向の歪みを別々に補正するようにする。
補正処理の詳細については後述するが、この実施形態では、先ず、水平方向の歪みについて補正処理を行ない、次いで、垂直方向の歪みについての補正処理を行なう。この場合に、1画面分の撮像画像のすべてのデータについての水平方向の歪み補正処理が完了する前であっても、垂直方向の歪み補正処理が可能になった段階で、垂直方向の歪み補正処理を開始して、水平方向の歪み補正処理と並行して行なうようにすることにより、効率良く歪み補正処理を行なうようにする。
そこで、この実施形態では、先ず、手ぶれによる水平方向の画像歪みを補正するために、図5(C)の左側の矢印および図6の左側の矢印で示すように、各分割画像区間Pdiv_0〜Pdiv_7について検出した手ぶれ速度ベクトルVec(Vec_0〜Vec_7)の水平方向成分の逆符号成分(以下、この手ぶれ速度ベクトルの水平方向成分の逆符号成分を、水平補正速度成分という)X_STB(X_STB_0〜X_STB_7)を求める。
そして、各分割画像区間Pdiv_0〜Pdiv_7内においては、各水平ラインのそれぞれについての水平方向の手ぶれ量を補正するための補正量として、上述のようにして求めた水平補正速度成分X_STB_0〜X_STB_7を、それぞれの水平ラインについて時間積分(各分割画像区間Pdiv_0〜Pdiv_7の先頭の水平ライン時点を基準点とした時間で積分)して算出する。図6の右側に、その積分結果の値としての水平方向の手ぶれ補正量(以下、水平手ぶれ補正量という)SX_ADDを示す。
この図6から判るように、各水平ラインのそれぞれについての水平手ぶれ補正量SX_ADDは、各分割画像区間Pdiv_0〜Pdiv_7においては、一定の傾きで変化し、かつ、積分であるので、分割画像区間の境目では折れ線とはなるが、連続的なものとなり、ずれは生じない。
水平方向の歪み補正処理においては、以上のようにして求められた各ラインについての手ぶれ水平補正量SX_ADDを用いて、CMOSイメージャ上での各水平ラインの水平方向の読み出し開始位置を補正することにより、撮像画像を補正処理する。すなわち、各水平ラインの読み出し開始位置を、図5(B)における手ぶれに応じて水平方向にずれた位置からとすることにより、図5(C)の画像に示すように、水平方向の歪みが補正されることになる。
この図5(C)の画像は、図5(B)の画像歪みの内の水平方向の歪みは補正されて除去されているが、垂直方向の歪みが残っている。
そこで、この実施形態では、手ぶれによる垂直方向の画像歪みを補正するため、図5(D)の左側の矢印に示すように、各分割画像区間Pdiv_0〜Pdiv_7について検出した手ぶれ速度ベクトルの垂直方向成分の逆符号成分(以下、この手ぶれ速度ベクトルの垂直方向成分の逆符号成分を、垂直補正速度成分という)Y_STB_0〜Y_STB_7を求める。
そして、各分割画像区間Pdiv_0〜Pdiv_7内においては、各水平ラインのそれぞれについての垂直方向の手ぶれ量を補正するための補正量として、上述のようにして求めた垂直補正速度成分Y_STB_0〜Y_STB_7を、それぞれの水平ラインについて時間積分(各分割画像区間Pdiv_0〜Pdiv_7の先頭の水平ライン時点を基準点とした時間で積分)して算出する。
この積分結果としての垂直方向の手ぶれ補正量(以下、垂直手ぶれ補正量という)SY_ADDは、ここでは、図示を省略するが、各分割画像区間Pdiv_0〜Pdiv_7においては、一定の傾きで変化し、かつ、積分であるので、分割画像区間の境目では折れ線とはなるが、連続的なものとなり、ずれは生じない。
垂直方向の歪み補正処理においては、以上のようにして求められた各ラインについての垂直手ぶれ補正量SY_ADDを用いて、CMOSイメージャ上での各水平ラインの垂直方向の読み出し開始位置を補正することにより、撮像画像を補正処理する。これにより、図5(D)の画像に示すように、水平方向の場合と同様にして垂直方向の歪みが補正され、歪みの除去された撮像画像データ出力が得られる。
なお、上述の説明では、手ぶれ速度ベクトルから水平成分および垂直成分を抽出するときに、その逆符号成分を算出して、補正速度成分とするようにしたが、速度成分あるいは手ぶれ量を逆符号として、補正速度成分あるいは手ぶれ補正量とするのは、撮像画像データに対する手ぶれ補正処理の実行開始前であれば、どの時点であっても良い。
次に、撮像レンズの歪曲収差特性による撮像画像歪みの補正について説明する。
一般に撮像レンズは歪曲収差特性を有しており、このため、撮像画像には、例えば図7(B)に示すような歪みが生じる。高精度で高性能な撮像レンズを用いた場合には、この撮像画像歪みは目立たないが、低価格の撮像レンズを使用する場合や光学ズームレンズを使用する場合には、無視できない程度の画像歪みが生じる。
すなわち、例えば図7(A)に示すような格子縞の被写体を、歪曲収差が大きい撮像レンズを用いて撮像したときには、その撮像画像は、図7(B)に示すように、格子縞を構成する縦横の直線が、湾曲するような画像歪みを生じる。この撮像レンズによる画像歪みは、撮像素子の各画素位置に応じたものであり、かつ、撮像レンズごとに特有のものであり、また、撮像素子に対する撮像レンズの位置が変化すると、その位置に応じたものとなる。
したがって、CMOSイメージャのようなX−Yアドレス型の撮像素子を用いて撮像する装置においては、手ぶれによる画像歪みを補正しただけでは、撮像レンズの歪曲収差特性に基づく画像歪みが残ってしまう。
そこで、この実施形態では、X−Yアドレス型の撮像素子を用いた撮像装置において、手ぶれ等が原因で生じる撮像画像の歪みと共に、撮像レンズの歪曲収差特性に基づく画像歪みを併せて軽減するようにしている。
この実施形態では、水平手ぶれ補正量および垂直手ぶれ補正量に、撮像レンズの歪曲収差特性に基づく画像歪み(以下、レンズ歪みという)の補正量を加算し、その加算した補正量により撮像画像データを補正処理することにより、手ぶれによる画像歪みと撮像レンズによる画像歪みの両方を同時に補正するようにするものである。
この実施形態では、以上のように、手ぶれ補正を水平処理と垂直処理に分けるのに合わせて、レンズ歪みの補正も水平処理と垂直処理に分けるようにする。前述もしたように、レンズ歪みは、撮像レンズに固有のものである。そこで、撮像素子上における各画素位置におけるレンズ歪みの補正量は、予め用意することができる。
この実施形態では、撮像素子上における各画素位置におけるレンズ歪みの補正量は、各画素位置に対する補正ベクトルとしてエンコードされて、撮像装置に設けられる補正量デコード部に与えられる。補正量デコード部は、各画素位置の座標(撮像素子上における絶対座標)を引数として、当該画素位置における前記補正ベクトルを得ると共に、その補正ベクトルをデコードして、当該画素位置におけるレンズ歪みの補正量の水平方向補正成分と垂直方向補正成分とを得る。
そして、撮像素子からの撮像画像データの各水平ラインの画素データは、上述のようにして求められた水平手ぶれ補正量SX_ADDにより、水平方向に手ぶれ速度の水平方向成分に応じた分だけシフトされた座標位置のものとされるが、当該座標位置(画素位置)におけるレンズ歪みの補正量の水平方向補正成分の分だけ、当該画素データの座標位置をさらに水平方向にシフトするように補正する。ここで、レンズ歪みの補正量の水平方向補正成分は、前記水平方向手ぶれ補正量SX_ADDにより補正された画素座標位置を引数として、上述のようにして取得される。
また、垂直方向についても、撮像素子からの撮像画像データの各水平ラインの画素データは、上述のようにして求められた垂直手ぶれ補正量SY_ADDにより、垂直方向に手ぶれ速度の垂直方向成分に応じた分だけシフトされた座標位置のものとされるが、当該座標位置(画素位置)におけるレンズ歪みの補正量の垂直方向補正成分の分だけ、当該画素データの座標位置をさらに垂直方向にシフトするように補正する。ここで、レンズ歪みの補正量の垂直方向補正成分は、前記垂直方向手ぶれ補正量SY_ADDにより補正された画素座標位置を引数として、上述のようにして取得される。
なお、レンズ歪みは、光学ズームにより撮像レンズの光軸上の位置が変更されるときには、その光軸上の位置に応じたものとなる。このため、光学ズームを用いる場合には、撮像レンズの光軸上の位置に応じた補正ベクトルが、前記補正量デコード部に供給されるように構成される。
さらに、この実施形態の撮像装置では、画像処理として、上述のような手ぶれ補正や撮像レンズの歪曲収差特性に基づく画像歪みの補正のみではなく、電子ズームによる画像の拡大・縮小処理および出力撮像画像の解像度を、例えばユーザが指定した所望のものとするようにするための画像処理も行なうようにする。
[この発明の実施形態の構成]
次に、この発明による画像データ処理方法および装置の実施形態を、図を参照しながら説明する。図1は、この発明による画像データ処理装置の実施形態が適用された撮像装置のブロック図を示すものである。
図1に示すように、撮像レンズ1Lを備えるカメラ光学系1を通じた被写体からの入射光は、撮像素子2に照射されて撮像される。この例では、撮像素子2は、前述したようにX−Yアドレス型の固体撮像素子の一例であるCMOSイメージャで構成されている。
この例では、撮像素子2からは、タイミング信号発生部4からのタイミング信号により1ライン単位が同時に取り出される(サンプリングされる)ことによりアナログ撮像信号とされて出力される。そして、出力されたアナログ撮像信号は、データ変換部3に供給される。
データ変換部3は、これに入力されたアナログ撮像信号に必要な補正処理を加えた後、タイミング信号発生部4からのクロック信号に同期してデジタル撮像信号に変換する。そして、データ変換部3は、デジタル撮像信号を輝度信号成分と色差信号成分とからなる撮像画像データDinに変換し、その撮像画像データDinを信号処理部5に供給する。
信号処理部5は、データ変換部3からの撮像画像データDinについて、これに接続されている画像メモリ6への書き込み/読み出しを制御しながら、手ぶれ補正およびレンズ歪み補正の補正処理や、撮像画像の電子ズーム処理(電子的拡大・縮小処理)を行なうとともに、指定された解像度の出力画像データDoutを生成して出力する。
画像メモリ6は、この実施形態では1個のメモリで構成され、信号処理部5に含まれるメモリ制御部によるアドレス管理および書き込み/読み出し制御により、第1メモリ領域61と第2メモリ領域62との2つのメモリ領域に分割されて使用される。そして、この実施形態では、図8に示すように、第1メモリ領域61と第2メモリ領域62との分割点のアドレス(セパレートアドレス)SepAdrは、対象となる画像処理に応じて、後述するように、変更される。
このセパレートアドレスSepAdrは、後述するように、制御部10から信号処理部5に与えられて、設定される。制御部10には、ユーザインターフェース9を通じて、ユーザによる出力解像度の選択入力、電子ズーム率の入力、手ぶれ補正の有無の入力、レンズ歪み補正の有無の入力などが供給されており、制御部10は、当該入力情報に基づいて、セパレートアドレスSepAdrを決定する。その決定方法については後述する。
後述もするように、この実施形態では、第1メモリ領域61には、水平方向の画像処理結果の撮像画像データが書き込まれる。そして、この第1メモリ領域61に、垂直方向の画像処理が開始できるだけの容量の撮像画像データが書き込まれると、当該書き込まれた撮像画像データが、その先頭から読み出される。そして、第1メモリ領域61から読み出された撮像画像データは、垂直方向の画像処理がなされた後、その垂直方向の画像処理結果の撮像画像データが第2メモリ領域62に書き込まれる。
第1メモリ領域61および第2メモリ領域62は、後述するように、FIFO(First−In First−Out)動作により書き込みながら読み出しを行なうように制御されて、遅延はあるものの、撮像画像データのリアルタイム処理がなされる。この場合に、この実施形態では、第1メモリ領域61および第2メモリ領域は、リングメモリバッファとして用いるようにアドレス制御される。
そして、第1メモリ領域61の記憶容量は、垂直方向の画像処理が開始できるだけの容量に所定のマージン分を加えたものでよいので、1画面分(1フィールドあるいは1フレーム)以下とされる。この実施形態では、第1メモリ領域61の記憶容量は、少なくとも垂直解像度変換用のデジタルフィルタのタップ数に応じた画像ライン数分の容量を必要とする。
一方、第2メモリ領域62には、この実施形態では、少なくとも解像度変換後の出力画像データDoutの1画面分を記憶する記憶容量が必要である。つまり、第2メモリ領域62の記憶容量は、出力画像データDoutの1画面分(1フィールド分または1フレーム分)以上である必要がある。
しかし、第1メモリ領域61および第2メモリ領域62の記憶容量は、水平方向の処理結果のデータ量および出力画像データDoutのデータ量に依存するので、撮像素子2の画素数が変化しても、変化させる必要はない。もっとも、画像メモリ6全体の記憶容量は、選択できる解像度のうちで、最も高解像度の場合を想定して、決定される。当該画像メモリ6を用いた画像処理については、後でさらに詳述する。
さらに、後述するように、第1メモリ領域61および第2メモリ領域62では、画像データの書き込みが、その前に書き込まれた画像データの読み出しを追い越さないように、信号処理部5のメモリ制御部により、アドレス制御されるものである。
信号処理部5には、タイミング信号発生部4から、出力画像データの水平周期に同期する信号、すなわち、水平同期信号H−SYNCと、出力画像データの垂直周期に同期する信号、すなわち、垂直同期信号V−SYNCと、1画素周期のクロック信号CLKと、それらに同期するクロックが、処理タイミング信号として供給される(図1では、これらの信号の図示は省略)。
また、撮影時に撮像装置を保持している撮影者による手ぶれ速度を検出する手ぶれ速度検出部7が設けられる。この手ぶれ速度検出部7は、撮像素子2の、撮像画像の水平方向および/または垂直方向の、所定速度以上の比較的高速の位置的変化を手ぶれとして、その速度ベクトルを検出する。ここで、比較的高速の位置的変化としたのは、撮影者による撮像装置のパンニング操作(左右方向への移動)や、チルティング操作(上下方向の移動)を、手ぶれとして検出しないためである。
この手ぶれ速度検出部7は、例えば撮像装置の筐体に取付けられた角速度センサにより構成される。この手ぶれ速度検出部7の検出出力は、手ぶれ速度ベクトルである。この手ぶれ速度検出部7は、角速度センサの代わりに加速度センサを用いて構成しても良い。加速度センサを用いる場合には、加速度センサ値(方向成分も含む)を積分することで、手ぶれ速度(手ぶれ速度ベクトル)を検出し、手ぶれ速度検出部7の検出出力とするようにする。
この手ぶれ速度検出部7の検出出力は、手ぶれ速度検出処理部8に供給される。この手ぶれ速度検出処理部8には、タイミング信号発生部4からサンプリング信号Spが供給され、このサンプリングSpにより前記手ぶれ速度検出部7の検出出力(手ぶれ速度ベクトル)がサンプリングされて、前述した各分割画像区間Pdiv_0〜Pdiv_7についての8個の手ぶれ速度ベクトルVec_0〜Vec_7が求められる。
そして、手ぶれ速度検出処理部8では、8個の手ぶれ速度ベクトルVec_0〜Vec_7を、その水平方向成分と、垂直方向成分とに分離し、それら水平方向成分および垂直方向成分の逆符号成分を水平補正速度成分および垂直補正速度成分として生成する。そして、生成した水平補正速度成分および垂直補正速度成分を信号処理部5に供給する。
また、この例の撮像装置は、全体を制御するためのマイクロコンピュータを搭載する制御部10を備える。この制御部10には、ユーザインターフェース9が接続されている。そして、このユーザインターフェース9を通じて、ユーザからの画像拡大・縮小指示入力や、解像度指示入力、また、ズーム倍率の値の指示入力などが制御部10に与えられる。制御部10は、それらの指示入力に応じた制御信号を形成し、タイミング信号発生部4や信号処理部5に供給する。
また、この実施形態では、制御部10は、ユーザインターフェース9を通じた前述の画像処理に関する入力に応じて、画像メモリ6の第1メモリ領域61と第2メモリ領域との分割点アドレスとしてのセパレートアドレスSepAdrを設定し、信号処理部5に供給するようにする。信号処理部5のメモリ制御部は、このセパレートアドレスSepAdrにより、第1メモリ領域61と第2メモリ領域62とを認識して、これらのメモリ領域に対する画像データの書き込みおよび読み出しを実行する。
また、レンズ歪み補正用データ導出・エンコード部11が設けられる。この補正用データ導出・エンコード部11は、ユーザインターフェース9を通じて入力されたレンズ1Lの歪曲収差に関するデータおよび制御部10からの光学ズームの操作情報に応じた撮像レンズの光軸位置に関する情報などから、撮像素子2の全画素の撮像素子2上の各位置に応じたレンズ歪み補正ベクトルを予め計算する。そして、補正用データ導出・エンコード部11は、求めた補正ベクトルを圧縮するなどしてエンコードし、レンズ歪み補正用データデコード部12に供給する。
この補正用データ導出・エンコード部11は、非常に負荷の大きな演算が必要となるので、専用のマイクロコンピュータやDSP(Digital Signal Processor)が用いられて構成される。
レンズ歪み補正用データデコード部12は、レンズ歪み水平補正量データデコード部121と、レンズ歪み垂直補正量データデコード部122とを備える。そして、補正用データ導出・エンコード部11からのレンズ歪み補正ベクトルから、レンズ歪み水平補正量データデコード部121は、レンズ歪み水平補正量データを生成し、レンズ歪み垂直補正量データデコード部122は、レンズ歪み垂直補正量データを生成する。
そして、レンズ歪み水平補正量データデコード部121、レンズ歪み垂直補正量データデコード部122のそれぞれは、信号処理部5からの歪み補正対象部位としての画素位置の情報を引数として受けて、当該画素位置における水平レンズ歪み補正量データ、垂直レンズ歪み補正量データをそれぞれ信号処理部5に返す。
信号処理部5では、画像メモリ6への画像データの書き込み/読み出しを制御しながら、後で詳述するようにして、手ぶれ速度検出処理部8からの水平補正速度成分と垂直補正速度成分とから、各水平ラインの水平補正変位量SX_ADDおよび垂直補正変位量SY_ADDを算出する。
そして、信号処理部5では、これら算出した水平補正変位量SX_ADDおよび垂直補正変位量SY_ADDと、前記レンズ歪み補正データデコード部12からのレンズ歪み水平補正量データおよびレンズ歪み垂直補正量データとを用いて、データ変換部3からの撮像画像データDinについての手ぶれによる画像歪み補正処理およびレンズ歪みを補正処理し、出力画像データDoutを得る。
なお、前述したように、信号処理部5では、上述の歪み補正処理の他、電子ズーム(画像拡大・縮小)処理を行なうと共に、標準精細度、高精細度などに応じた解像度変換処理なども行なう。
信号処理部5からの出力画像データDoutは、記録処理部13により例えばデータ圧縮されると共に、記録メディア14への記録に適した変調が施された後、記録メディア10に記録される。記録メディア14としては、磁気テープや磁気ディスクなどの磁気記録媒体、DVD(Digital Versatile Disc)などの光ディスク媒体、ハードディスク、カード型メモリなどを用いることができる。なお、出力撮像画像データをインターネットやワイヤレス通信手段を介して記録メディア14に記憶するようにすることもできる。
信号処理部5からの出力画像データDoutは、また、表示系処理部15を通じて表示モニターとしての、例えばLCD(Liquid Crystal Display)などのディスプレイに供給され、画像表示される。記録メディア14に記録された撮像画像データも、再生処理部16により再生され、表示系処理部15を通じて表示モニターに供給され、再生画像表示される。
次に、図1の信号処理部5、画像メモリ6、手ぶれ速度処理部8の部分の、より詳細な構成ブロック図を図9に示す。
すなわち、手ぶれ補正およびレンズ歪み補正処理や電子ズーム処理、解像度変換処理、出力データ生成処理のために、信号処理部5は、水平処理ブロック51と、垂直処理ブロック52と、レジスタブロック53とを含んでいる。そして、水平処理ブロック51は、水平処理用手ぶれ補正量積分部511と水平画像処理部512とを備え、また、垂直処理ブロック52は、垂直処理用手ぶれ補正量積分部521と垂直画像処理部522とを備える。
また、水平画像処理部512に対して、レンズ歪み水平補正量データデコード部121が接続され、垂直画像処理部522に対して、レンズ歪み垂直補正量データデコード部122が接続される。
水平処理ブロック51は、データ変換部3からの撮像画像データDinに対して水平方向の処理を施す。この水平方向の処理には、水平方向の手ぶれ補正およびレンズ歪み補正処理、水平方向の画像拡大・縮小処理、水平方向の解像度変換を含む。垂直処理ブロック52は、撮像画像データDinに対して垂直方向の処理を施す。この垂直方向の処理には、垂直方向の手ぶれ補正およびレンズ歪み補正処理、垂直方向の画像拡大・縮小処理、垂直方向の解像度変換を含む。また、レジスタブロック53は、手ぶれ速度検出処理部8で検出された手ぶれ速度の情報を、水平処理ブロック51および垂直処理ブロック52に受け渡す処理を行なう。レジスタブロック53は、また、画像メモリ6のセパレートアドレスSepAdrを、垂直処理ブロック52に含まれるメモリ制御部(後述する第1メモリ領域コントローラ209および第2メモリ領域コントローラ212)に受け渡す処理も行なう。
手ぶれ速度検出部8は、サンプリング部81と、水平補正速度成分検出部82と、垂直補正速度成分検出部83とからなる。
サンプリング部81では、手ぶれ検出部7からの手ぶれ速度検出出力(図10(A)参照)を、タイミング信号発生部4からのサンプリング信号Spによりサンプリングすることにより、各分割画像区間Pdiv_0〜Pdiv_7についての手ぶれ速度ベクトルVec_0〜Vec_7(図10(B)参照)を取得する。この例では、サンプリング部81では、前述したように、手ぶれ速度ベクトルVec_0〜Vec_7は、各分割画像区間Pdiv_0〜Pdiv_7の先頭ラインに対するものが、垂直周期の1/8の周期でサンプリングされる。
ここで、取得すべき各手ぶれ速度ベクトルの値は、撮像素子2からの撮像画像データの対応する水平ラインのサンプリング時刻の値ではない。なぜなら、前述したように、撮像素子2上の各画素には露光時間があり、撮像素子2から取り出された撮像信号(色フィルタを通過した後の輝度値)は、各ラインのサンプリング時刻から露光時間分遡った時刻までの平均値であるからである。
このため、この実施形態では、手ぶれ速度ベクトルの値の検出点は、図11に示すように、各水平ラインの画像データのサンプリング時刻tsと、当該サンプリング時刻tsから露光時間分遡った時刻tbとの間の中央時刻となるように、サンプリング信号Spによるサンプリングタイミングが設定されている。
露光時間が短くなければ、水平ラインの画像データの先頭のタイミングでは、手ぶれ速度ベクトルの値を確定することができるが、露光時間が短くなった場合には、水平ラインの画像データの先頭のタイミングでは、手ぶれ速度ベクトルの値を確定することができない場合が生じる。そのような場合には、サンプリング部81では、過去の手ぶれ速度ベクトルを参照して、手ぶれ速度ベクトルの値を予測するようにする。
このサンプリング部81でサンプリングされて得られる、1フレーム(1垂直周期)について、8個の手ぶれ速度ベクトルVec_0〜Vec_7は、水平補正速度成分検出部82および垂直補正速度成分検出部83に供給される。
水平補正速度成分検出部82では、各分割画像区間Pdiv_0〜Pdiv_7における手ぶれ速度ベクトルVec_0〜Vec_7の水平方向成分を抽出し、その逆符号成分として、水平補正速度成分X_STB_0〜X_STB_7(図10(C)参照)を求める。
また、垂直補正速度成分検出部9では、各分割画像区間Pdiv_0〜Pdiv_7における手ぶれ速度ベクトルVec_0〜Vec_7の垂直方向成分を抽出し、その逆符号成分として、垂直補正速度成分Y_STB_0〜Y_STB_7(図10(D)参照)を求める。
この場合に、この実施形態では、水平補正速度成分X_STB_0〜X_STB_7および垂直補正速度成分Y_STB_0〜Y_STB_7のそれぞれの値は、1水平ライン区間の時間長当たりの手ぶれ補正量として求められる。
すなわち、水平補正速度成分X_STB(X_STB_0〜X_STB_7)は、
X_STB=(水平手ぶれ補正量/1水平ライン区間の時間長)
とされる。
また、垂直補正速度成分Y_STB(Y_STB_0〜Y_STB_7)は、
Y_STB=(水平手ぶれ補正量/1水平ライン区間の時間長)
とされる。
そして、水平補正速度成分X_STB_0〜X_STB_7は、水平方向の画素ピッチ(画素の間隔)dxの倍数値(小数点以下の値を取り得る。以下同じ)、換言すれば、水平方向の画素数(小数点以下を取り得る)で表わされる。また、垂直補正速度成分Y_STB_0〜Y_STB_7は、垂直方向の画素ピッチ(画素の間隔)dyの倍数値(小数点以下を取り得る)、換言すれば、垂直方向の画素数(小数点以下を取り得る。以下同じ)で表わされる。
これは、サンプリング部81からの手ぶれ速度出力の水平方向成分と、垂直方向成分のそれぞれに対して、「速度成分の値→画素数(小数点以下の値を取り得る。以下同じ)の値」の対応テーブルを用意し、速度成分の値を入力値として、画素数の値を得るようにすることで実現される。そして、得られた画素数の値について、手ぶれの速度成分の方向とは逆方向に対応する符号を付加して、それぞれ、水平補正速度成分X_STB_0〜X_STB_7および垂直補正速度成分Y_STB_0〜Y_STB_7とするものである。
この実施形態では、このように水平補正速度成分X_STB_0〜X_STB_7および垂直補正速度成分Y_STB_0〜Y_STB_7の値を定めることにより、後述するライン単位の時間積分計算による水平手ぶれ補正量SX_ADDおよび垂直手ぶれ補正量SY_ADDを、水平補正速度成分および垂直補正速度成分の単純加算により行なえるようにしている。
そして、これら水平補正速度成分検出部82および垂直補正速度成分検出部83で算出された水平補正速度成分X_STB_0〜X_STB_7および垂直補正速度成分Y_STB_0〜Y_STB_7は、タイミング信号発生部4からのタイミング信号Stに応じたタイミングで、信号処理部5のレジスタブロック53のIF(インターフェース)レジスタ(図示は省略)に、順次取り込まれる。
そして、取り込まれた水平補正速度成分X_STB_0〜X_STB_7および垂直補正速度成分Y_STB_0〜Y_STB_7は、水平処理ブロック51および垂直処理ブロック52での処理タイミングに対応して、レジスタブロック53内の水平処理ブロック用レジスタおよび垂直処理ブロック用レジスタ(何れも図示は省略)に、前記IFレジスタから、前記取り込まれたタイミングとは別のタイミングで、転送される。
水平処理ブロック51および垂直処理ブロック52の水平処理用手ぶれ補正量積分部511および垂直処理用手ぶれ補正量積分部521は、レジスタブロック53の水平処理ブロック用レジスタおよび垂直処理ブロック用レジスタに取り込まれている各分割画像区間Pdiv_0〜Pdiv_7の水平補正速度成分X_STB_0〜X_STB_7および垂直補正速度成分Y_STB_0〜Y_STB_7を積分することにより、各分割画像区間Pdiv_0〜Pdiv_7における各水平ラインに対する水平手ぶれ補正量SX_ADDおよび垂直手ぶれ補正量SY_ADDを算出する。
水平処理ブロック51の水平画像処理部512では、水平処理用手ぶれ補正量積分部511で算出された水平手ぶれ補正量SX_ADDを用いて、水平方向の手ぶれ成分を補正するように、各水平ラインの画素データのx座標を、水平方向にシフトする。また、水平方向のレンズ歪みを補正するために当該画素のy座標が必要になることを考慮して、垂直処理用手ぶれ補正量積分部521で算出された垂直手ぶれ補正量SY_ADDを用いて、当該補正対象部位の画素データのy座標を、垂直方向の手ぶれ成分を補正するようにシフトしたものとして求める。
そして、水平画像処理部512は、当該手ぶれに応じて水平方向および垂直方向にシフトした各画素データのx座標と、y座標とを、引数としてレンズ歪み水平補正量データデコード部121に供給し、このレンズ歪み水平補正量データデコード部121から、当該x座標およびy座標位置の画素位置に対するレンズ歪み水平補正量データ(水平方向の座標シフト量)を得る。
そして、水平画像処理部512は、水平手ぶれ補正量SX_ADDを用いて補正したx座標データに、取得したレンズ歪み水平補正量データを加算して、さらにシフトする。そして、当該シフトされたx座標データを用いて、水平方向の手ぶれ成分およびレンズ歪みの水平方向成分を補正する。
また、垂直処理ブロック52の垂直画像処理部522では、垂直処理用手ぶれ補正量積分部521で算出された垂直手ぶれ補正量SY_ADDを用いて、垂直方向の手ぶれ成分を補正するように、各水平ラインの画素データのy座標を、垂直方向にシフトする。また、垂直方向のレンズ歪みを補正するために当該画素のx座標が必要になることを考慮して、水平処理用手ぶれ補正量積分部511で算出された水平手ぶれ補正量SX_ADDを用いて、当該補正対象部位の画素データのx座標を、水平方向の手ぶれ成分を補正するようにシフトしたものとして求める。
そして、垂直画像処理部522は、当該手ぶれに応じて水平方向および垂直方向にシフトした各画素データのx座標とy座標とを、引数としてレンズ歪み垂直補正量データデコード部122に供給し、このレンズ歪み垂直補正量データデコード部122から、当該x座標およびy座標位置の画素位置に対するレンズ歪み垂直補正量データ(垂直方向の座標シフト量)を得る。
そして、垂直画像処理部522は、垂直手ぶれ補正量SY_ADDを用いて補正したy座標データに、取得したレンズ歪み垂直補正量データを加算して、さらにシフトする。そして、当該シフトされたy座標データを用いて、垂直方向の手ぶれ成分およびレンズ歪みの垂直方向成分を補正する。
以上の補正処理においては、水平処理ブロック51の水平画像処理部512および垂直処理ブロック52の垂直画像処理部522では、それぞれ画像メモリ6に対して画像データの読み書きをしながら補正処理を実行するようにする。
この実施形態では、画像メモリ6は、前述したように、メモリ制御部によるアドレス管理に基づいて、第1メモリ領域61と第2のメモリ領域62とに論理的に分割されており、第1メモリ領域61には、水平処理ブロック51の水平画像処理部512で処理された結果の撮像画像データが書き込まれる。
この例では、第1メモリ領域61は、後述する垂直方向の補間処理用のFIR(Finite Impulse Response)フィルタのタップ数以上のライン数分の容量を有する。この垂直方向の補間処理用のFIRフィルタは、垂直方向の手ぶれ補正用フィルタ、垂直方向のレンズ歪み補正用フィルタおよび垂直解像度変換フィルタを構成しているものである。
そして、この第1メモリ領域61に必要な記憶容量は、上記の垂直処理用のFIRフィルタのタップ数のみではなく、電子ズーム率、レンズ歪み補正率、手ぶれ補正率にしたがって変化する。
第1メモリ領域61に垂直画像処理を開始することができる画像データが書き込まれると、この第1メモリ領域61から画像データが読み出されて、垂直ブロック52の垂直画像処理部522で垂直方向の画像処理がなされ、その処理結果が第2メモリ領域62に書き込まれる。そして、この第2メモリ領域62から出力画像データDoutが読み出される。
したがって、この第2メモリ領域の記憶容量としては、出力画像データDoutの1画面分(1フィールドまたは1フレーム)の容量が最低必要とされる。
水平処理ブロック51の水平画像処理部512には、後述するように、1ライン分の容量の水平処理用FIFOラインメモリが設けられ、この水平処理用FIFOラインメモリへの画像データの書き込み、読み出しを制御するFIFOメモリコントローラ(図9では図示を省略)が設けられていると共に、算出した水平手ぶれ補正量SX_ADDが小数点以下(補正後の画素位置が、水平方向の画素位置よりオフセットされた位置となる)の場合を想定し、補間処理を行なう水平方向補間処理部(図9では図示を省略)が設けられている。この水平方向補間処理部は、後述するように、この実施形態では、水平方向のデジタルFIRフィルタ(以下、水平FIRフィルタという)が用いられる。
なお、1ライン分の容量の水平処理用FIFOラインメモリも、画像メモリ6の一部のメモリ領域として設定しておくようにして、使用するようにしても良い。
また、垂直処理ブロック52の垂直画像処理部522には、第1メモリ領域61への水平画像処理後の画像データの書き込みを制御すると共に、第1メモリ領域61からの画像データの読み出しを制御する第1メモリ領域コントローラと、第2のメモリ領域62への画像データの書き込み、読み出しを制御する第2メモリ領域コントローラ(共に図9では図示を省略)が設けられていると共に、算出した垂直手ぶれ補正量SY_ADDが小数点以下(補正後の画素位置が、垂直方向の画素位置よりオフセットされた位置となる)の場合を想定し、補間処理を行なう垂直方向補間処理部(図9では図示を省略)が設けられている。
この垂直方向補間処理部は、後述するように、この実施形態では、垂直方向のデジタルFIRフィルタ(以下、垂直FIRフィルタという)が用いられるが、レンズ歪み補正のために必要なライン数および垂直解像度変換を考慮したタップ数とされる。
ここで、算出した水平手ぶれ補正量SX_ADDとレンズ歪み水平補正量との加算量および垂直手ぶれ補正量SY_ADDとレンズ歪み垂直補正量との加算量が小数点以下の値を持つ場合の補間処理について説明する。
まず、手ぶれ補正について説明する。例えば、手ぶれの水平方向の速度成分により、水平方向に図12に示すような画像歪みが生じた場合を想定する。すなわち、図12の例は、手ぶれが無ければ破線で示す直線上にあるべき画素G11,G21,G31・・・、G12,G22,G32・・・、G13,G23,G33・・・、が、手ぶれの水平方向の速度成分のために実線で示すような斜め位置となっている場合である。
この手ぶれを補正するためには、ずれている画素位置を本来の位置にあるようにずらせばよく、そのずれ量が、図12に示すように、前述した水平手ぶれ補正量SX_ADDに相当する。この水平手ぶれ補正量SX_ADDが、画素ピッチdxの整数倍であれば、画素データを当該水平手ぶれ補正量SX_ADDに応じた画素ピッチ分だけずらして読み出すようにすることで補正することができる。
しかしながら、水平手ぶれ補正量SX_ADDが、画素ピッチdxの整数倍ではなく、小数点以下のずれ量を含む場合には、そのずれ量に対応する位置は、画素データが存在する位置ではないので、その位置の近傍の複数個の画素データを用いた補間処理により、対応する画素位置の画素データを生成する必要がある。
図13は、その補間方法の一例を示すもので、求める画素データが、画素G1と画素G2との間の補間画素Gsである場合に、この補間画素Gsの位置と画素G1,G2の位置との距離k1,k2に応じた割合で、画素G1のデータと画素G2のデータとを加算することにより、補間画素Gsの画素データを生成するものである。この場合、k1:k2=W:(1−W)としたとき、
補間画素Gs=G1×W+G2×(W−1)
なる補間演算により、補間画素Gsの画素データを得る。
また、図13の例のような2個の画素データを用いるのではなく、図14の例のように2個以上(図14の例では4個)の近傍画素データを用いて、補間演算をして補間画素を求めることもできる。この場合、補間画素Gsの位置に対する画素G0,G1,G2,G3の位置との距離k0,k1,k2,k3に応じた割合となる乗算係数W0,W1,W2,W3を定めて、画素G0,G1,G2,G3のデータを加算することにより、補間画素Gsの画素データを得る。
すなわち、
補間画素Gs=G0×W0+G1×W1+G2×W2+G3×W3
なる補間演算により、補間画素Gsの画素データを得るようにする。
この図14の例の場合、乗算係数W0,W1,W2,W3の値の組は、画素G1または画素G2と補間画素Gsとの距離dsに対応するものとして関連付けられたテーブルを用意しておき、距離dsを検索子として、上記乗算係数W0,W1,W2,W3の組をテーブルから読み出すようにすることで得ることができる。なお、距離dsは、水平手ぶれ補正量SX_ADDの小数部に相当するものである。
この補間処理は、この実施形態では、水平FIRフィルタを用いて行なうようにする。すなわち、水平手ぶれ補正量SX_ADDの小数部に対応する前記乗算係数の組をテーブルから読み出し、その乗算係数を水平FIRフィルタに対して供給することで上記補間処理を行なうことができる。
以上は、水平方向の手ぶれ補正の場合の補間処理であるが、垂直方向の手ぶれ補正の場合の補間処理についても、補間方向が垂直方向になるだけで、全く同様である。
この手ぶれ補正の場合の補間処理動作は、この実施形態では、レンズ歪みが全く無いとした場合にのみ行なわれることになる。この実施形態では、手ぶれ補正のための補正量とレンズ歪み補正のための補正量との加算量により補正された座標位置の画素データを得るように補間処理を行なうものである。この補間処理も基本的な考え方は、上述の図13、図14の場合と全く同様である。
このレンズ歪みを含む場合における補間処理を、図15を参照して説明する。なお、図15においては、x方向およびy方向にそれぞれ4つ並んだ4×4=16個からなる画素データを用いて出力画像の画素データを決定する場合の例示である。なお、このレンズ歪み補正についての補間処理の方法は、特開2004−80545公報に詳細に記載されているものを適用したものであり、詳細な説明は、上記公報に譲り、ここでは要点のみを説明する。
図15(A)は、歪みを伴う画像データを構成する点B1〜B4が、水平方向の補間により、それぞれ点B10〜B40の画像データに変換された様子を示す図である。また、図15(B)は、さらに垂直方向の補間により、点B10〜B40が、それぞれb1〜b4の画素データに変換された様子を示している。
この場合、この実施形態では、図15(A)の左側の歪みを伴う画像データを構成する点B1〜B4は、水平方向の手ぶれ補正量が含まれたものと考えることができる。図15(A)の場合の水平方向の補間は、各点B1〜B4のそれぞれに対して、前述した例えば図の場合を適用することで行なうことができる。つまり、水平FIRフィルタを用いる1次元補間演算でよい。
また、図15(B)の垂直方向の場合にも同様に、図15(B)で、例えば点B30に対しては、垂直方向に連続した当該点B30を跨ぐ、破線内の4つの格子点(点K20〜K23)における画像データに、前述した図13または図14と同様の考え方による乗算係数を用いて補間処理を実行することにより、点b3の画素データが算出される。したがって、垂直方向についても、垂直FIRフィルタによる1次元補間演算でよい。
[水平処理ブロック51における処理動作]
[水平処理用手ぶれ補正量積分部511の積分処理]
図16に、水平処理用手ぶれ補正量積分部511における積分処理動作のフローチャートを示す。
まず、初期y座標(水平ライン位置に対応)SYに、水平同期信号H−SYNC(ここでは、水平同期信号H−SYNCは、一般的な水平走査信号のうち、有効画像領域以外をマスクしたタイミング信号を意味するものとする)毎に「step」という値を加算して行く(ステップS1)。
初期y座標SYは、出力画像の最初の1水平ライン目が、CMOSイメージャ上の総画素の座標系(以後絶対座標系と呼ぶ)のどこに位置するかを表しており、一般的には「0」ではない。
これは、動画時には、通常、CMOSイメージャ上の全画素が、信号処理部5に入力されるのではなく、CMOSイメージャ内で垂直方向に平均加算されてから、後段の信号処理部5に入力されるからである。また、信号処理部5に入力されてからでも、幾つかの処理を経るため、1水平ライン目の絶対座標は「0」でないことの方が多いからである。更に、入力画像データに対して、垂直方向の部分拡大処理を行なう場合には、初期y座標SYは、画面の中ほどの水平ライン位置となるので、非常に大きい値をとることもあり得るからである。
ステップS1で、1水平同期信号H−SYNC毎に加算する「step」という値は、ライン間隔の絶対座標系における垂直座標の増量を表わすが、上述したCMOSイメージャ内もしくは水平処理ブロックの前段における、垂直方向の複数ラインの画像データの平均加算により、1以外に2や4といった値をとる可能性がある。
さて、ステップS1で、初期y座標値をSYとして、1水平同期信号H−SYNC毎に、値stepを加算することにより、現在処理している水平ラインの絶対座標が求まり、当該絶対座標の整数成分vp_i(ステップS2)が、水平補正速度成分X_STB_*(*は0〜7のいずれかである。すなわち、水平補正速度成分X_STB_*は、X_STB_0〜X_STB_7のいずれかを意味する。以下、同じ。)を、現時点までに積分すべき積分回数に対応する。ここで、この積分回数は、1画面内における積算値である。
次に、現在処理している水平ライン(以下、現処理ラインという)の絶対座標の整数成分vp_iと、現処理ラインの1水平ライン前までに積分した回数(積分回数hstb_cnt)とを比較する。これにより、現処理ラインにおいて、あと何回積分すれば良いかが分かり、その回数分だけ、処理単位サイクル(1水平周期よりも十分に短い)毎にトリガTG1が発生する(ステップS3)。
このトリガTG1が発生する毎に、積分回数hstb_cntは1づつインクリメントする(ステップS4、ステップS5)。
そして、このトリガTG1ごとに、水平補正速度成分X_STB_0〜X_STB_7のうちの、現処理ラインが所在する分割画像区間についての水平補正速度成分を加算することにより、積分処理を行ない、水平手ぶれ補正量SX_ADDを得る(ステップS6)。ここで、図16のステップS6における「stb_x」は、水平補正速度成分X_STB_0〜X_STB_7のいずれかの値である。すなわち、「stb_x」は、現処理ラインが所在する分割画像区間についての水平補正速度成分の値である。
また、水平レンズ歪み水平補正量データを、水平レンズ歪み水平補正量データデコード部121から取得するためには、補正対象部位の画素のx座標だけではなくy座標も必要であり、かつ、当該y座標は、CMOS手ぶれの影響を受けているため、この水平処理用手ぶれ補正量積分部511においても、垂直手ぶれ補正量SY_ADDを積分して得るようにする。
すなわち、ステップS3で発生するトリガTG1ごとに、垂直補正速度成分Y_STB_0〜Y_STB_7のうちの、現処理ラインが所在する分割画像区間についての垂直補正速度成分を加算することにより、積分処理を行ない、垂直手ぶれ補正量SY_ADDを得る(ステップS7)。ここで、図16のステップS7における「stb_y」は、垂直補正速度成分Y_STB_0〜Y_STB_7のいずれかの値である。すなわち、「stb_y」は、現処理ラインが所在する分割画像区間についての垂直補正速度成分の値である。
ステップS1で、1水平同期信号H−SYNC毎に加算される値「step」=1であって、画像の拡大などではない通常の画像出力の場合には、トリガTG1は、1水平同期信号H−SYNC毎に発生するため、ステップS6では、1水平ライン毎に「stb_x」を加算(積分)し、ステップS7では1水平ライン毎に「stb_y」を加算(積分)するものである。
こうして得られる水平手ぶれ補正量SX_ADDは、前述もしたように、CMOSイメージャ上での各水平ラインの水平方向の読み出し開始位置の補正量、すなわち、水平処理ブロック51における水平方向画像歪み補正処理における各ラインの水平初期位置(水平オフセット)そのものとなる。補正対象部位としての水平ラインの各画素のx座標は、この水平手ぶれ補正量SX_ADDだけ、水平方向にシフトされたものとなる。
また、垂直手ぶれ補正量SY_ADDは、CMOSイメージャ上での各水平ラインの垂直方向の座標シフト量となる。この値は、同一水平ライン内では同じであり、したがって、補正対象部位としての水平ラインの各画素のy座標は、当該垂直手ぶれ補正量SY_ADDだけ、垂直方向にシフトされたものとなる。
このように、水平手ぶれ補正量SX_ADDおよび垂直手ぶれ補正量SY_ADDにより、CMOS手ぶれに応じて補正された画素位置の情報は、後述するように、当該画素位置における水平方向のレンズ歪みを取得するための情報として用いられる。
上述したように、ステップS6およびステップS7では、現処理ラインが、1画面分(1フレーム=1垂直同期周期)を垂直方向に8分割した分割画像区間のどこに属するかによって、水平補正速度成分X_STB_0〜X_STB_7のうちのいずれか1つ、および垂直補正速度成分Y_STB_0〜Y_STB_7のうちのいずれか1つを選択しなければならない。そのための仕組みが、図16の残りの部分の処理である。
この例では、分割画像区間分のライン数の加算値stb_gridが定義される(ステップS8)。この加算値stb_gridの初期値は、1分割画像区間のライン数DIVである。
そして、この加算値stb_gridと、積分回数hstb_cntとを比較し、積分回数hstb_cntが加算値stb_gridを超える毎に、トリガTG2を発生する(ステップS9)。そして、トリガTG2が発生するごとに、加算値hstb_cntに、1分割画像区間のライン数DIVを加算する(ステップS10)。
以上の処理により、現処理ラインが次の分割画像区間に移る毎に、トリガTG2が発生する。したがって、現処理ラインが各分割画像区間Pdiv_0〜Pdiv_7の何れに存在するかの分割区間値HDIV_CNTを定義し(ステップS11)、この分割区間値HDIV_CNTを、トリガTG2が発生する毎に、1づつインクリメントする(ステップS12)。すると、分割区間値HDIV_CNTは、現処理ラインが所在する各分割画像区間Pdiv_0〜Pdiv_7のそれぞれに対応して「0」〜「7」の値を取る。すなわち、分割区間値HDIV_CNTは、水平処理の進捗度合いを示すものとなる。
ステップS6、ステップS7では、この分割区間値HDIV_CNTを参照して、「stb_x」、「stb_y」を決定する。
なお、この例では、分割区間値HDIV_CNT=8のときには、1フレーム分の画像データについての処理が終了したことを意味する。そして、分割区間値HDIV_CNT=8に、「1」が加わると、分割区間値HDIV_CNT=0となるように計算される。
この分割区間値HDIV_CNTは、また、垂直処理ブロック52およびレジスタブロック53に、水平処理ブロック51での現処理ラインが何れの分割画像区間に所在しているかを示すために、すなわち、水平処理の進捗状況を報知するために供給される。
[水平画像処理部512の処理動作]
図17は、水平画像処理部512の構成例を示すものである。この図17の例では、前述の図16のフローチャートにおける水平同期信号H−SYNC毎に値「step」を初期y座標SYに加算する加算部101が、この水平画像処理部512に含まれるものとしており、このため、この水平画像処理部512に初期y座標SYが入力される。さらに、この水平画像処理部512には初期x座標SXが入力される。これら初期y座標SYおよび初期x座標SXは、1フレームの先頭で、例えば制御部10で設定されて入力される。
そして、加算部101からの、水平同期信号H−SYNC毎に値「step」が加算されたy座標値SY´は、水平処理用手ぶれ補正量積分部511に供給される。すると、この水平処理用手ぶれ補正量積分部511からは、現処理ラインの先頭のx座標のオフセット値として、水平手ぶれ補正量SX_ADDが返ってくると共に、現処理ラインのy座標のオフセット値SY_ADDが返ってくる。
水平画像処理部512では、加算部102において、各水平ラインの先頭で一回だけ、水平処理用手ぶれ補正量積分部511からの水平手ぶれ補正量SX_ADDを、初期x座標SXに加算する。また、加算部103において、各水平ラインの先頭で一回だけ、水平処理用手ぶれ補正量積分部511からの垂直手ぶれ補正量SY_ADDを、初期y座標SYに加算する。
そして、加算部102の出力値に対して、画素処理クロックCLKごとに、水平拡大・縮小のパラメータ並びに水平方向の解像度変換のパラメータである値「hmag」を、加算部104により加算する。この加算部104の出力値hx_addは、レンズ歪み水平補正量データデコード部121に対する引数としての座標(x、y)データのうちのx座標として供給する。
また、加算部103の出力値hy_addは、レンズ歪み水平補正量データデコード部121に対する引数としての座標(x,y)データのうちのy座標として供給する。
レンズ歪み水平補正量データデコード部121からは、これに入力された座標(x,y)の撮像素子上のレンズ歪み水平補正量データCORR_Xが出力される。このレンズ歪み水平補正量CORR_Xは、加算部104の出力値hx_addに、画素処理クロックCLKごとに加算部106で加算される。
なお、加算部104からの水平座標の補正出力値hx_addは、レンズ歪み水平補正量データデコード部121からレンズ歪み水平補正量データCORR_Xを得るときの遅延量分の遅延部105を介して加算部106に供給される。
そして、加算部106からの出力値X_ADDは、比較部107および108、また、小数部抽出部109および整数部抽出部110に供給される。
比較部107は、加算部106からの出力値X_ADDを、1画素処理クロックCLKだけ前の出力値X_ADDの整数成分と比較し、差が1以上であるとき、すなわち、画素位置が1画素分以上ジャンプしたときに、そのジャンプを示す信号SKIPを出力する。この例では、このジャンプを示す信号SKIPを参照することで、次に画素処理クロックCLKのタイミングで処理すべきジャンプした画素位置を知ることができる。この信号SKIPは、FIFOメモリコントローラ111に供給される。
また、比較部108は、加算部106からの出力値X_ADDを、1画素処理クロックCLKだけ前の出力値X_ADDの整数成分と比較し、差が1より小さいときに、その旨を示す信号HOLDを出力する。したがって、この信号HOLDを参照することで、読み出し画素を、1画素処理クロックCLKだけ前と同じであることを知ることができる。この信号HOLDは、1ライン分の容量のFIFOラインメモリ112への書き込み及び読み出しを制御するFIFOメモリコントローラ111に供給される。FIFOラインメモリ112は、前述したが、画像メモリ6のメモリ領域の一部を用いても良い。
小数部抽出部109は、加算部106からの出力値X_ADDの小数部を、画素処理クロックCLK毎に抽出し、抽出した小数部の値X_PHASEを出力する。この少数部の値X_PHASEは、水平FIRフィルタ113を備える水平補間処理部114に供給される。水平補間処理部114では、この小数部の値X_PHASEに基づいて乗算係数テーブルを検索し、水平FIRフィルタ113に供給する乗算係数を得るようにする。
整数部抽出部110は、加算部106からの出力値X_ADDの整数部を、水平同期信号H−SYNCにより各水平ラインの先頭で抽出し、抽出した整数部の値ST_POSを出力する。この整数部の値ST_POSは、現処理ラインの初期x座標としてFIFOメモリコントローラ111に供給される。
FIFOメモリコントローラ111は、入力画像データDinについて、水平処理用FIFOラインメモリ112を用いて、水平手ぶれ補正量SX_ADDとレンズ歪み水平補正量CORR_Xとの加算量の整数部に基づいた補正処理を行なうと共に、水平拡大・縮小処理および水平方向の解像度変換を行なう。ここで、水平処理用FIFOラインメモリ112が、実際に1水平ライン分相当のサイズを必要とするのは、後述するように、画像の部分拡大処理をサポートすることを考慮する場合のみである。
すなわち、FIFOメモリコントローラ111は、入力画像データDinについて、前記整数部の値ST_POSを用いて、出力画像データとして読み出す各水平ラインの画素データの初期x座標を決める。また、FIFOメモリコントローラ111は、信号SKIPおよび信号HOLDを画素処理クロックCLKごとに参照し、水平処理用FIFOラインメモリ112から読み出す画素データを決定するようにする。
そして、FIFOメモリコントローラ111は、以上のようにして読み出した水平ラインの画素データを出力画像データDHimdとして、データイネーブル信号DATA_ENと共に、水平補間処理部114に供給する。
水平補間処理部114は、データイネーブル信号DATA_ENがイネーブル状態となっているときに入力される画像データを有効データとして、水平FIRフィルタ113を用いて前述したような水平方向の補間処理を実行する。前述したように、このときに水平補間処理部112に入力される小数部の値X_PHASEを用いて、水平FIRフィルタ113に供給する乗算係数が決定されている。
こうして、水平補間処理部112からは、水平手ぶれ補正量SX_ADDとレンズ歪み水平補正量CORR_Xとの加算量に応じて水平方向補正処理がなされると共に、水平方向の拡大・縮小処理および水平方向の解像度変換がなされた画像データDHoutが得られる。このDHoutは、垂直処理ブロック52に供給される。
ところで、上述の説明では、水平処理用手ぶれ補正量積分部511の水平手ぶれ補正量SX_ADDおよび垂直手ぶれ補正量SY_ADDの積分処理と、水平画像処理部511の水平拡大・縮小画像処理、水平解像度変換処理の、互いの処理タイミングについて特に触れなかったが、水平手ぶれ補正量SX_ADDおよび垂直手ぶれ補正量SY_ADDの積分処理を、遅延無しで、水平拡大・縮小画像処理、水平解像度変換処理との単純なシーケンス処理で行なうことが好都合なのは、図18の上側の図18(A)に示すように、垂直方向の部分切り出し及び部分拡大をサポートしない場合にほぼ限られる。図18で、V−SYNCは垂直同期信号を示し、また、ST_TGは、有効走査ラインの開始時点を示している。また、図18で、網掛けを付して示した四角で囲まれた区間は、それぞれの処理区間を示している。
一方、垂直方向の部分切り出し、もしくは部分拡大をサポートする場合、初期y座標SYが非常に大きな値を取り得るため、フレーム先頭の積分処理に、相当長いサイクル数(画素処理サイクル数)を要してしまう可能性がある。図18下側の(B)のシーケンスにおける期間tmがそのための積分期間である。
このようになると、図18上側の(A)のシーケンスでは、最初の拡大・縮小処理が水平同期信号H−SYNCの1周期期間をオーバーしてしまうため、次の水平同期信号H−SYNCで入力されて来る2ライン目の画像データを保持しておくためのラインメモリが必要となる。
そこで、この実施形態では、図18下側の(B)のシーケンスに示すように、水平拡大・縮小画像処理が開始される1水平周期前から積分処理の起動を行ない、常に画像処理に対して、1水平周期だけ先行して積分処理を行なうタイミングおよびシーケンスを採用する。このため、水平処理用FIFOラインメモリ61は、1水平周期分のサイズのものがこの実施形態では用いられている。
上述した問題は、画像の部分拡大等に関わらず、水平処理は常に全入力ラインに対して処理を施す、というアーキテクチャにすれば避けられる。しかし、いずれにしても、図18上側のシーケンスを実現しようとすると、積分処理の終了信号を新たに設け、それを受けて画像処理の起動をかけなければならず、やや煩雑である。つまり、換言すれば、上述したこの実施形態で採用した手法は、既存の画像処理の回路に新たな手を加えないで済む、というメリットがあるのである。
なお、上述した実施形態で採用した手法は、水平同期信号H−SYNCの1周期期間内の画素処理サイクル数よりも、絶対座標系の垂直サイズが大きい場合には採用できない。その場合には、水平処理は常に全入力ラインに対して処理を施すという、上述したアーキテクチャにすれば良い。
[垂直処理ブロック52における処理動作]
[垂直処理用手ぶれ補正量積分部521の積分処理]
次に、垂直処理用手ぶれ補正量積分部521における積分処理動作について説明する。図19は、この垂直手ぶれ補正量SY_ADDを得るための積分処理動作のフローチャートを示すものである。
この垂直処理用手ぶれ補正量積分部521の積分処理動作は、図16を用いて上述した水平処理用手ぶれ補正量積分部511の積分処理動作と類似しているが、次の点が異なる。
すなわち、水平同期信号H−SYNC毎に初期y座標に加算する値が「vmag」であることと、水平処理の進捗度合いを表すHDIV_CNTを見て、ウエイト(WAIT)をかけることと、各ラインの積分処理が終了したことを表わす積分完了信号STB_RDYを生成して、垂直信号処理モジュールへ伝達すること、の以上3点である。
この実施形態では、垂直画像処理において垂直方向の拡大・縮小を想定しており、また、垂直解像度の変換を行なうことを想定しているので、値「vmag」は垂直拡大・縮小の倍率パラメータおよび垂直解像度変換に応じたパラメータを表わしている。したがって、垂直処理ブロック52では、水平処理ブロック51から出力される画像データを全て処理するのではなく、拡大・縮小処理および垂直解像度変換処理後に出力するラインの垂直座標を基準として処理を行なう。
そのため、この垂直方向の積分処理においても、実際に、この垂直方向の積分処理後の垂直画像処理の対象となる座標における積分値を出力することが求められることから、垂直方向の座標増分パラメータを水平同期信号H−SYNC毎に加算するのである。なお、画像の拡大・縮小や垂直解像度変換を伴わずに、CMOS手ぶれの補正のみを行なうのであれば、vmag = 1として良い。
水平方向の積分処理とは異なる二つ目の、分割区間値HDIV_CNTを見て、水平処理の進捗度合いを観測する必要性は、水平処理を垂直処理が追い越すことがあってはならないからである。一般的な画像の垂直拡大・縮小処理、解像度変換処理においては、垂直処理が水平処理を追い越す、というのは、まだ生成されていない画像に対して処理を施すことであるため、自ずとウエイトをかける仕組みが必要となる。同様に、この垂直方向の積分処理においても、画像を直接扱う訳ではないが、水平処理を追い越さない仕掛けが必要なのである。
もう少し詳細に説明する。水平および垂直方向の積分パラメータである水平補正速度成分X_STB_*(*は0〜7のいずれかであり、X_STB_*は、X_STB_0〜X_STB_7のいずれかを意味する。以下同じ)と、垂直補正速度成分Y_STB_*(*は0〜7のいずれかであり、Y_STB_0〜Y_STB_7のいずれかを意味する。以下、同じ)は、処理を行っている水平ラインのサンプリング時刻(厳密に言うと露光期間の中心時点であることは既に説明)付近の手ぶれ速度ベクトル(手ぶれの速度と方向)の、それぞれ水平成分、垂直成分の逆符号である。したがって、露光時間が極めて短い時間の場合まで考慮すると、水平補正速度成分X_STB_*と垂直補正速度成分Y_STB_*は、対応する水平ラインの画像データが入力される直前まで確定できない場合がある。
後で詳述するレジスタブロック53では、この事情を考慮し、水平方向の積分処理において現在処理しているラインが属する分割画像区間を意味する分割区間値HDIV_CNTの値を見て、水平補正速度成分X_STB_*と垂直補正速度成分Y_STB_*を、水平処理ブロック用レジスタと、垂直処理ブロック用レジスタにラッチする。したがって、水平処理ブロック51では、特別な仕組みを設けなくとも、入力された画像を順次処理して行けば良いのである。
一方、垂直処理ブロック52での積分処理では、当該積分処理を行なった結果を、後段の垂直方向画像処理の初期オフセット座標とするため、水平処理からの画像が未だ入って来ていないことに後から気付いても、その時点では既にそのラインの積分処理は終わってしまっている。つまり、そのときには、未確定の垂直補正速度成分が用いられて積分がなされてしまったことになる。
そのため、積分処理の段階で、処理しようとするラインに対応した積分パラメータである垂直補正速度成分Y_STB_*が、まだ確定前であることを、水平処理の進捗度合いから判断する必要があるのである。
そのための仕組みとして、図19のように、垂直処理の進捗度合いを表わす分割区間値VDIV_CNTが、水平処理の進捗度合いを表わす分割区間値HDIV_CNTを超えてしまっていれば、ウエイトを発行し、図19の左下で、垂直処理における現処理ラインが所在する分割画像区間についての垂直補正速度成分の値である「stb_y」が未確定のままの垂直補正速度成分Y_STB_*が選択された状態で、垂直手ぶれ補正量SY_ADDに加算されるのを防ぐ。
垂直方向の積分処理(図19)が水平方向の積分(図16)と異なる、3つ目の点は、各ラインでの垂直積分が完了したことを表す積分完了信号STB_RDYの生成である。各ライン内で積分を繰り返して行なった結果、そのラインの絶対座標の整数成分vp_iと、そのフレーム内での累積積分回数vstb_cntとが一致したときに、後段の垂直画像処理モジュールに渡すべき垂直オフセットSY_ADDが求められ、それと同時に、後段の垂直画像処理の起動をかけるのが目的である。
既に説明した水平方向の積分処理においては、有効画像が入力されるタイミングよりも1水平同期信号H−SYNC(1水平周期)前から積分処理を開始しておけば、有効画像に対する水平画像処理が始まるまでに積分処理を完了できることが、殆どの場合、システム的に保証可能であるが、垂直方向の積分処理では、前述のウエイトが発生する可能性があるために、直前1水平周期の時間で積分が完了することを、全ての場合において保証するのは不可能だからである。すなわち、ウエイトが発生したときには、垂直積分が完了したことを表す積分完了信号STB_RDYが発生したときに、垂直手ぶれ補正および垂直拡大・縮小処理を含む垂直画像処理を実行するようにする。
以上の機能を有する、この垂直方向の積分回路を適用した垂直方向の積分処理を図19のフローチャートを参照しながら説明する。
まず、初期y座標(水平ライン位置に対応)SYに、水平同期信号H−SYNC毎に前述した値「vmag」を加算して行く(ステップS21)。
ステップS21で、初期y座標値をSYとして、1水平同期信号H−SYNC毎に、値vmagを加算することにより、現在処理している水平ラインの絶対座標が求まり、当該絶対座標の整数成分vp_i(ステップS22)が、垂直補正速度成分Y_STB_*(Y_STB_0〜Y_STB_7のいずれか)を、現時点までに積分すべき積分回数に対応する。ここで、この積分回数は、1画面内における積算値である。
次に、現在処理している水平ライン、すなわち、現処理ラインの絶対座標の整数成分vp_iと、現処理ラインの1水平ライン前までに積分した回数(積分回数vstb_cnt)とを比較する。これにより、現処理ラインにおいて、あと何回積分すれば良いかが分かり、その回数分だけ、処理単位サイクル(1水平周期よりも十分に短い)毎にトリガTG3が発生する(ステップS23)。
このトリガTG3が発生する毎に、積分回数vstb_cntは1づつインクリメントする(ステップS24、ステップS25)。
そして、このトリガTG3ごとに、垂直補正速度成分Y_STB_0〜Y_STB_7のうちの、現処理ラインが所在する分割画像区間についての垂直補正速度成分を加算することにより、積分処理を行ない、垂直手ぶれ補正量SY_ADDを得る(ステップS26)。ここで、図19のステップS26における「stb_y」は、垂直補正速度成分Y_STB_0〜Y_STB_7のいずれかの値である。すなわち、「stb_y」は、現処理ラインが所在する分割画像区間についての垂直補正速度成分の値である。
また、垂直レンズ歪み水平補正量データを、垂直レンズ歪み水平補正量データデコード部122から取得するためには、補正対象部位の画素のy座標だけではなくx座標も必要であり、かつ、当該x座標は、CMOS手ぶれの影響を受けているため、この垂直処理用手ぶれ補正量積分部521においても、水平手ぶれ補正量SX_ADDを積分して得るようにする。
すなわち、ステップS23で発生するトリガTG3ごとに、水平補正速度成分X_STB_0〜Y_STB_7のうちの、現処理ラインが所在する分割画像区間についての水平補正速度成分を加算することにより、積分処理を行ない、水平手ぶれ補正量SX_ADDを得る(ステップS27)。ここで、図19のステップS27における「stb_x」は、水平補正速度成分X_STB_0〜X_STB_7のいずれかの値である。すなわち、「stb_x」は、現処理ラインが所在する分割画像区間についての水平補正速度成分の値である。
ステップS21で、1水平同期信号H−SYNC毎に加算される値「vmag」=1であって、画像の拡大などではない通常の画像出力の場合には、トリガTG3は、1水平同期信号H−SYNC毎に発生するため、ステップS26では、1水平ライン毎に「stb_y」を加算(積分)し、ステップS27では1水平ライン毎に「stb_x」を加算(積分)するものである。
こうして得られる垂直手ぶれ補正量SY_ADDは、前述もしたように、CMOSイメージャ上での各水平ラインの垂直方向の読み出し開始位置の補正量、すなわち、垂直処理ブロック52における垂直方向画像歪み補正処理における各ラインの垂直位置(垂直オフセット)そのものとなる。補正対象部位としての水平ラインの各画素のy座標は、この垂直手ぶれ補正量SY_ADDだけ、垂直方向にシフトされたものとなる。
また、水平手ぶれ補正量SX_ADDは、CMOSイメージャ上での各水平ラインの水平方向の座標シフト量となる。したがって、補正対象部位としての水平ラインの各画素のx座標は、当該水平手ぶれ補正量SX_ADDだけ、水平方向にシフトされたものとなる。
このように、水平手ぶれ補正量SX_ADDおよび垂直手ぶれ補正量SY_ADDにより、CMOS手ぶれに応じて補正された画素位置の情報は、後述するように、当該画素位置における垂直方向のレンズ歪みを取得するための情報として用いられる。
上述したように、ステップS26およびステップS27では、現処理ラインが、1画面分(1フレーム=1垂直同期周期)を垂直方向に8分割した分割画像区間のどこに属するかによって、垂直補正速度成分Y_STB_0〜Y_STB_7のうちのいずれか1つ、および水平補正速度成分X_STB_0〜X_STB_7のうちのいずれか1つを選択しなければならない。
この例では、分割画像区間分のライン数の加算値vstb_gridが定義される(ステップS28)。この加算値vstb_gridの初期値は、1分割画像区間のライン数DIVである。
そして、この加算値vstb_gridと、積分回数vstb_cntとを比較し、積分回数vstb_cntが加算値vstb_gridを超える毎に、トリガTG4を発生する(ステップS29)。そして、トリガTG4が発生するごとに、加算値vstb_cntに、1分割画像区間のライン数DIVを加算する(ステップS30)。
以上の処理により、現処理ラインが次の分割画像区間に移る毎に、トリガTG4が発生する。したがって、現処理ラインが各分割画像区間Pdiv_0〜Pdiv_7の何れに存在するかの分割区間値VDIV_CNTを定義し(ステップS31)、この分割区間値VDIV_CNTを、トリガTG4が発生する毎に、1づつインクリメントする(ステップS32)。すると、分割区間値VDIV_CNTは、現処理ラインが所在する各分割画像区間Pdiv_0〜Pdiv_7のそれぞれに対応して「0」〜「7」の値を取る。すなわち、分割区間値VDIV_CNTは、垂直処理の進捗度合いを示すものとなる。
ステップS6、ステップS7では、この分割区間値HDIV_CNTを参照して、「stb_x」、「stb_y」を決定する。
なお、この例では、分割区間値VDIV_CNT=8のときには、1フレーム分の画像データについての処理が終了したことを意味する。そして、分割区間値VDIV_CNT=8に、「1」が加わると、分割区間値VDIV_CNT=0となるように計算される。
この分割区間値VDIV_CNTは、水平処理ブロック51からの、水平処理の進捗度合いを示す分割区間値HDIV_CNTと比較され、分割区間値VDIV_CNTが分割区間値HDIV_CNTよりも大きくなったときには、水平処理を垂直処理が追い越してしまう状態を意味するので、ウエイト(WAIT)を発生して、トリガTG3の発生を待機させる。すなわち、トリガTG3は、ウエイトが解除された後に発生するように遅延させる(ステップS33)。
そして、この実施形態では、ステップS22で得られるy座標の整数成分vp_iと、積分回数vstb_cntとが等しいかどうかをチェックし、等しければ現処理ラインについての垂直方向の積分が完了したことを示す積分完了信号STB_RDYを生成して出力する(ステップS34)。
この積分完了信号STB_RDYは、垂直画像処理部522に供給される。垂直画像処理部522では、現処理ラインについての垂直方向の手ぶれ補正処理のみを行なうのであれば、この積分完了信号STB_RDYにより、現処理ラインについての垂直方向の手ぶれ補正処理を開始してよいことを認識し、次の水平同期信号H−SYNCのタイミングで垂直画像処理を再開することができる。
しかし、この実施形態では、垂直方向の手ぶれと同時に垂直方向のレンズ歪みを補正するようにしているので、ライン単位のレンズ歪み補正完了信号DIST_RDY(図示せず)を、垂直画像処理部522が発生するようにしており、積分完了信号STB_RDYと、レンズ歪み補正完了信号DIST_RDYとの両方がアクティブになった後の、次の水平同期信号H−SYNCのタイミングで垂直画像処理を再開するようにする。
DIST_RDY信号の遅延は、レンズ歪み補正処理が扱う画像データが、水平処理ブロック51の処理ラインの画像と連動しておらず、場合によっては水平処理ブロックが数10ライン以上先行しないと生成されない画像データであるため、この水平処理の処理待ちのために発生する。
[垂直画像処理部522の処理動作]
図20は、垂直画像処理部522の構成例を示すものである。この図20の例では、前述の図19のフローチャートにおける水平同期信号H−SYNC毎に値「vmag」を加算する加算部201が、この垂直画像処理部522に含まれるものとしており、この垂直画像処理部522に初期y座標SYが入力される。
そして、加算部201からの、垂直同期信号H−SYNC毎に値「vmag」が加算されたy座標値SY´は、垂直処理用手ぶれ補正量積分部521に供給される。すると、この垂直処理用手ぶれ補正量積分部521からは、現処理ラインの先頭のy座標のオフセット値として、垂直手ぶれ補正量SY_ADDが返ってくると共に、現処理ラインのx座標のオフセット値SX_ADDが返ってくる。
垂直画像処理部522では、加算部202において、各水平ラインの先頭で一回だけ、垂直処理用手ぶれ補正量積分部521からの垂直手ぶれ補正量SY_ADDを、y座標SY´に加算する。また、加算部203において、各水平ラインの先頭で一回だけ、垂直処理用手ぶれ補正量積分部521からの水平手ぶれ補正量SX_ADDを、初期x座標SXに加算する。
そして、加算部203の出力値に対して、画素処理クロックCLKごとに、水平拡大・縮小のパラメータである値「hmag」を、加算部204により加算する。この加算部204の出力値vx_addは、レンズ歪み垂直補正量データデコード部122に対する引数としての座標(x、y)データのうちのx座標として供給する。
また、加算部202の出力値vy_addは、レンズ歪み垂直補正量データデコード部122に対する引数としての座標(x,y)データのうちのy座標として供給する。
レンズ歪み垂直補正量データデコード部122からは、これに入力された座標(x,y)の撮像素子上のレンズ歪み垂直補正量データCORR_Yが出力される。このレンズ歪み垂直補正量CORR_Yは、加算部202の出力値vy_addに、画素処理クロックCLKごとに加算部206で加算される。
なお、加算部202からの垂直座標の補正出力値vy_addは、レンズ歪み垂直補正量データデコード部122からレンズ歪み垂直補正量データCORR_Yを得るときの遅延量分の遅延部205を介して加算部206に供給される。
そして、加算部206からの出力値Y_ADDは、小数部抽出部207および整数部抽出部208に供給される。
小数部抽出部207は、加算部206からの出力値Y_ADDの小数部を、画素処理クロックCLK毎に抽出し、抽出した小数部の値Y_PHASEを出力する。この少数部の値Y_PHASEは、垂直FIRフィルタ211を備える垂直補間処理部210に供給される。
垂直FIRフィルタ211は、垂直方向に並ぶ複数ラインの画素データを用いて補間処理を行なうもので、垂直補間処理部210では、この小数部の値Y_PHASEに基づいて乗算係数テーブルを検索し、垂直FIRフィルタ211に供給する乗算係数を得るようにする。これは、補間方向が垂直方向になるだけで、図12〜図14を用いて説明した水平FIRフィルタを用いる水平方向の補間処理とほぼ同様である。
整数部抽出部208は、加算部206からの出力値Y_ADDの整数部を、画素処理クロックCLK毎に抽出し、抽出した整数部の値Y_POSを出力する。この整数部の値Y_POSは、現処理ラインの画素処理クロックCLK毎のy座標として第1メモリ領域コントローラ209に供給される。
第1メモリ領域コントローラ209は、レジスタブロック53に保持されているセパレートアドレスSepAdrを取り込み、第1メモリ領域61と、第2メモリ領域62との分割点アドレスを認識して、第1メモリ領域61のアドレス範囲(書き込み、読み出し領域)を認識し、第1メモリ領域61に対する書き込みおよび読み出しを制御する。
第1メモリ領域コントローラ209は、水平処理ブロック51からの画像データDHoutを、一旦、画像メモリ6の第1メモリ領域61に書き込む。そして、第1メモリ領域コントローラ209は、垂直手ぶれ補正量SY_ADDとレンズ歪み垂直補正量CORR_Yとの加算量Y_ADDの整数部Y_POSに基づいて、出力画像データDHout_0〜DHout_nとして出力する複数の水平ラインの画像データを決める。
そして、第1メモリ領域コントローラ209は、垂直方向の画像処理を開始することができるデータ量の画像データが第1メモリ領域61に書き込まれたら、この第1メモリ領域61から、前記整数部Y_POSに基づいて決定された出力画像データDHout_0〜DHout_nを読み出して、垂直補間処理部210に送出する。
垂直補間処理部210では、これに入力された画像データDHout_0〜DHout_nについて、垂直手ぶれ補正量SY_ADDとレンズ歪み垂直補正量CORR_Yとの加算量Y_ADDの少数部Y_PHASEに基づいて、垂直FIRフィルタ211を用いて垂直方向の補間処理を行なって、垂直方向の手ぶれ補正およびレンズ歪み補正処理を行なうと共に、垂直拡大・縮小処理、垂直解像度変換処理を行なう。前述したように、このときに垂直補間処理部210に入力される小数部の値Y_PHASEを用いて、垂直FIRフィルタ211に供給する乗算係数が決定されている。
こうして、垂直補間処理部210からは、垂直手ぶれ補正量SY_ADDとレンズ歪み垂直補正量CORR_Yとの加算量に応じて垂直方向補正処理がなされると共に、垂直方向の拡大・縮小処理、垂直方向の解像度変換がなされた画像データDYoutが得られる。
この画像データDYoutは、第2メモリ領域コントローラ212を通じて第2メモリ領域62に書き込まれる。
この第2メモリ領域コントローラ212も、レジスタブロック53に保持されているセパレートアドレスSepAdrを取り込み、第1メモリ領域61と、第2メモリ領域62との分割点アドレスを認識して、第2メモリ領域61のアドレス範囲(書き込み、読み出し領域)を認識し、第2メモリ領域61に対する書き込みおよび読み出しを制御する。
そして、第2メモリ領域コントローラ212は、例えば、元の画像データのタイミングからみると、1垂直周期遅れたタイミングで、第2メモリ領域62から画像データを読み出して出力画像データDoutとして出力する。
なお、上述の説明では、第1メモリ領域コントローラ209と、第2メモリ領域コントローラ212とは、別回路として構成するように説明したが、これら第1メモリ領域コントローラ209の機能と、第2メモリ領域コントローラ212の機能とを併せ有する1個のメモリコントローラの構成とすることもできる。
次に、図21に、上説明した垂直方向の積分処理と、その後段の垂直画像処理のタイミング関係を示す。
垂直方向の部分切り出し、垂直方向の部分拡大・縮小のいずれもサポートしない場合には、前述したウエイト(WAIT)は発生せず、現処理ラインについての垂直方向の積分回数の上限は高々数回である。このため、同一のラインに対する積分処理と画像処理の両方を、同じ1水平同期信号H−SYNC期間内でシーケンス化可能である。したがって、この場合には、わざわざ積分完了信号STB_RDYを導入する必要はない。
一方、垂直方向の部分切り出し、もしくは垂直方向の部分拡大をサポートする場合には、1ライン目の積分処理の途中でウエイトが発生する可能性があり、縮小をサポートする場合には、どこか途中の水平ラインでウエイトが発生する可能性がある。そこで、積分完了信号STB_RDYがアクティブ(図21の例ではハイレベル)になるのを待つ必要がある。さらに、この実施形態の垂直処理ブロックでは、レンズ歪み補正も同時に行うので、レンズ歪み垂直補正完了信号DIST_RDYも、アクティブ(図21の例ではハイレベル)になるのを待って、次の水平ラインの処理のトリガとして、垂直処理用の水平同期信号H−SYNCが生成される。
すなわち、図21に示すように、垂直方向の部分切り出し、もしくは垂直方向の部分拡大のいずれの場合でも、同一ラインの積分処理が、ウエイトによって数水平同期信号H−SYNC区間もしくはそれ以上に渡って中断されるため、積分処理が終了したことを後段に知らせるための積分完了信号STB_RDYが必要となる。
そして、図21に示すように、レンズ歪み垂直補正処理が終了しないと次のラインの処理に移行できないため、レンズ歪み垂直補正完了信号DIST_RDYが、積分完了信号STB_RDYがアクティブになるのに加えて、アクティブになったときに、垂直処理終了信号を出し、その後の水平同期信号H−SYNCのタイミングから、垂直画像処理を次のラインの画像データの処理を行なうようにする。
また、同時に、あるラインの垂直画像処理が完了していない場合には、次の水平同期信号H−SYNCを、図21において点線で示すように、マスクするようにする。すなわち、垂直処理終了信号が立たない限り、水平ライン開始処理トリガとしての水平同期信号H−SYNCは、マスクされる。
[画像メモリ6の使用制御および容量]
次に、以上説明した画像処理における画像メモリに対する書き込み、読み出しの制御および画像メモリ6として必要な容量について、さらに説明する。
この実施形態の撮像装置は、動作モードとして、
(a)動画撮影モード
(b)モニタリングモード(静止画記録の画枠を決定する際などに、モニター用表示画面に表示される映像を生成するモード)
(c)静止画記録モード
(d)静止画再生モード
などがある。
動画撮影モードには、HD(High Definition;高精細度)動画撮影モードと、SD(Standard Definition)動画撮影モードとがある。
静止画記録モードやHD動画撮影モードの場合には、出力画像解像度が大容量となるので、この実施形態では、画像メモリ6は、1つのメモリ領域として動作させるようにする。一方、SD動画撮影モードやモニタリングモード、さらに静止画再生モードの場合には、出力画像解像度が比較的小さくなるので、上述したように、画像メモリ6を論理的に2分割して使用するようにする。
図22は、画像メモリ6を論理的に2分割して使用するようにした上述の画像処理の全体の流れを示す図である。そして、画像処理として図23に示すように、撮像素子2の全有効画素領域AFLのうちの、解像度変換用の有効画素領域FLkから、横×縦=720画素×240画素の出力画像に解像度変換する場合を想定し、この場合における、画像メモリ6の第1メモリ領域61および第2メモリ領域62における画像データの書き込み、読み出しの様子を図24に示す。
すなわち、撮像素子2からの入力撮像画像信号は、水平画像処理部512において、上述のような水平方向の画像処理がなされた後、画像メモリ6の第1メモリ領域61に書き込まれる。
このとき、第1メモリ領域61は、前述したように、垂直画像処理が開始できるだけの容量+マージン分の記憶容量を備えるもので、1画面分(1フィールド分または1フレーム分)よりも少なくてよく、垂直FIRフィルタのタップ数に応じた複数ライン分以上であれば良い。
したがって、入力撮像画像信号(図24(C))の1画面分は、水平方向の画像処理がなされた後、第1メモリ領域61に対して、図24(A)において実線で示すようにして、1垂直周期の間で複数回書き込まれることになる。第1メモリ領域61に書き込まれた水平処理後の画像信号は、図24(D)のように入力撮像画像信号よりも遅延したものとなる。この実施形態では、この遅延は、上述したように、1ライン分FIFOメモリ112によるものとされている。
そして、1画面分の画像データの第1メモリ領域61への初回の書き込みが終了してから、垂直方向の画像処理が開始可能なデータ量が第1メモリ領域61に書き込まれると、次の第1メモリ領域61への書き込みが始まる前に、図24(A)において太い点線で示すように、この第1メモリ領域61から、先に書き込まれた画像データの読み出しが開始される。
そして、第1メモリ領域61から読み出された撮像画像データは、垂直画像処理部522で、垂直方向の画像処理がなされた後、図24(A)において、1点鎖線で示すようにして、第2メモリ領域62に書き込まれる。したがって、第2メモリ領域62に書き込まれた垂直処理後の画像信号は、図24(E)のように遅延したものとなる。この実施形態では、この遅延は、上述したように、垂直FIRフィルタのタップ数に応じてものとされている。
こうして、入力撮像画像信号の1画面分は、第1メモリ領域61に対して複数回読み書きされながら、垂直方向の画像処理がなされ、その垂直方向画像処理結果が、第2メモリ領域62に書き込まれてゆく。そして、1垂直周期経過すると、図24(A)において、2点鎖線で示すようにして、次の垂直同期信号(図24(B)参照)の時点から、第2メモリ領域62から前記垂直方向画像処理結果が、次の画像データの第2メモリ領域62への書き込みに先立ち、読み出される。すなわち、読み出された出力画像データは、図24(F)に示すようなタイミングで出力される。
以下、上述の処理が、撮像画像データの1画面分単位で、順次に繰り返され、入力撮像画像データは、上述のような画像処理が施された後、1垂直周期遅れで、垂直同期信号および水平同期信号に同期した状態で出力画像データとされる。
この場合、第1メモリ領域61は、リングバッファメモリとしてFIFO動作により読み書きがなされる。図24の例では、1画面分の画像データは、第1メモリ領域61において、2回、折り返されて書き込まれ、また、読み出されるようにされている。
以上の説明は、垂直同期信号を跨ぐことなく、垂直同期信号区間で、画像メモリ6への書き込み、読み出しが行なわれる場合であるが、画像の部分拡大を行なう場合には、その処理区間が垂直同期信号を跨ぐことがある。しかし、出力画像信号は、1垂直周期遅れで出力されるので、出力画像信号としては同期規格を満たしており、問題とはならない。
すなわち、例えば画像処理として図25に示すように、撮像素子2の解像度変換用の有効画素領域FLkのうちの、例えばユーザにより指定された部分拡大領域を、電子ズーム処理により拡大して、横×縦=720画素×240画素の出力画像に解像度変換する場合を想定し、この場合における、画像メモリ6の第1メモリ領域61および第2メモリ領域62における画像データの書き込み、読み出しの様子を図26に示す。
この場合、撮像素子2からの入力撮像画像信号(図26(C))のうちの部分拡大領域に対応する部分の信号は、水平画像処理部512において処理された後、図26(A)において実線で示すようにして、第1メモリ領域61に書き込まれる。図26(D)の水平処理後画像信号においては、当該書き込まれた画像部分は、網点を付して示している。
第1メモリ領域61に、部分拡大領域の画像データが、垂直画像処理が可能なデータ量分以上書き込まれると、当該書き込まれた部分拡大領域の画像データが、図26(A)において太い点線で示すように、第1メモリ領域61から読み出されて、垂直画像処理がなされる。そして、垂直画像処理後の画像データは、図26(A)において、1点鎖線で示すようにして、第2メモリ領域62に書き込まれる。したがって、垂直処理後の画像信号は、図26(E)のように、垂直同期信号を跨いだ区間で、第2メモリ領域62に書き込まれる。
そして、図26(A)において、2点鎖線で示すようにして、当該跨いだ垂直同期信号(図26(B)参照)の時点から、第2メモリ領域62から前記垂直方向画像処理結果が、次の画像データの第2メモリ領域62への書き込みに先立ち、読み出される。すなわち、読み出された出力画像データは、図26(F)に示すようなタイミングで出力される。
次に、画像メモリ6の第1メモリ領域に必要な容量について説明する。前述したように、第1メモリ領域61として必要な容量は、垂直解像度変換や補間処理のための垂直FIRフィルタのタップ数、電子ズーム率、レンズ歪み補正率、手ぶれ補正率に応じて変化する。
第1メモリ領域61の容量の決定方法を、図27のフローチャートを参照しながら説明する。この実施形態の撮像装置は、手ぶれ補正の有無、電子ズームの有無、レンズ歪み補正の有無を、ユーザが選択設定できるようにしており、それらのユーザ選択設定に応じて、第1メモリ領域61の容量が変更決定される。このフローチャートの処理は、制御部10で、ユーザインターフェース9を通じたユーザ入力された選択設定情報に基づいてなされる。
図27においては、先ず、手ぶれ補正無しに設定されているかどうか判別する(ステップS101)。手ぶれ補正無しではなく、手ぶれ補正有りに設定されているときには、電子ズーム無しに設定されているかどうか判別する(ステップS102)。そして、このステップS102で、電子ズーム有りに設定されていると判別したときには、制御部10は、電子ズーム率(最大電子ズーム倍率)と、手ぶれ補正率(どの程度の大きさの手ぶれ補正までを補正することが可能であるかの率)とを考慮した容量MAに、第1メモリ領域61の記憶容量を設定する(ステップS103)。すなわち、第1メモリ領域61の記憶容量が、メモリ容量MAに設定されるように、セパレートアドレスSepAdrを決定し、レジスタブロック53のセパレートアドレスSepAdrを設定すべきレジスタに設定する。
このステップS103では、電子ズーム率と手ぶれ補正率とを考慮した場合において、最も容量を必要とする条件での容量を設定容量MAとすればよい。手ぶれ補正有り、電子ズーム有りというモードにおいて、最も容量を必要とする条件は、図28に示すように、「(n−1)フィールドで、手ぶれ補正範囲を含む入力画像最下段を拡大」を行ない、続いて「nフィールドで入力画像最上段を含む、第1メモリ領域61の容量を超えるライン数からの拡大」を行なうときである。
(n−1)フィールドで、手ぶれ補正を含む入力画像最下段を、出力画像信号として拡大すると、入力垂直同期Vを跨いで垂直方向処理用のデータ読み出しが行なわれ、さらに入力画像の最下段の処理であることから、読み出し開始が最も遅れる。そのとき、nフィールドの垂直方向読み出し処理は待ち状態となるが、nフィールドの最上段の処理を行なう場合は、その待ち時間分の入力画像を保存しておく必要があり、必要ラインメモリが増加する。また、水平方向処理結果の画像データの書き込みが、垂直方向処理のための画像データの読み出しを追い越してはならないため、必要とされる電子ズーム率、手ぶれ補正率を満足するようにラインメモリ数に、第1メモリ領域61の容量を設定する必要があるのである。
この場合における、画像メモリ6の第1メモリ領域61および第2メモリ領域62における画像データの書き込み、読み出しの様子を図29に示す。
この場合、撮像素子2からの入力撮像画像信号(図29(C))のうちの部分拡大領域に対応する部分の信号は、水平画像処理部512において処理された後、図29(A)において実線で示すようにして、第1メモリ領域61に書き込まれる。図29(D)の水平処理後画像信号においては、当該書き込まれた画像部分は、網点を付して示している。
第1メモリ領域61に、(n−1)フィールドの部分拡大領域の画像データが、垂直画像処理が可能なデータ量分以上書き込まれると、当該書き込まれた部分拡大領域の画像データが、図29(A)において太い点線で示すように、第1メモリ領域61から読み出されて、垂直画像処理がなされる。そして、垂直画像処理後の画像データは、図29(A)において、1点鎖線で示すようにして、第2メモリ領域62に書き込まれてゆく。したがって、垂直処理後の画像信号は、図29(E)のように、垂直同期信号を跨いだ区間で、第2メモリ領域62に書き込まれる。
このため、nフィールドの部分拡大領域の画像データ部分になると、図29(A)において、実線で示すように、当該画像データの水平方向画像処理がなされ、その処理結果の第1メモリ領域61への書き込みが開始される。そして、セパレートアドレスSepAdrのところで、折り返されて、nフィールドの部分拡大領域の画像データの全てが第1メモリ領域61に書き込まれる。
このnフィールドの画像データの水平処理結果の書き込み時にも、(n−1)フィールドの部分拡大領域の水平処理結果の画像データの読み出しが行なわれるので、この読み出しを、nフィールドの部分拡大領域の水平処理結果の画像データの書き込みが追い越してしまわないようにしなければならず、そのようにするために、第1メモリ領域61の容量が設定されるものである。
そして、第2メモリ領域への垂直処理結果の画像データの書き込みが完了すると、図29(A)において、2点鎖線で示すようにして、第2メモリ領域62から前記垂直方向画像処理結果が、次の画像データの第2メモリ領域62への書き込みに先立ち、読み出される。すなわち、読み出された出力画像データは、図29(F)に示すようなタイミングで出力される。
以上のように、(n−1)フィールドで、手ぶれ補正を含む入力画像最下段を、拡大画像の出力信号にしようとすると、入力同期Vを跨いで垂直方向処理用のデータ読み出しが行われ、さらに入力画像の最下段の処理であることから、読み出し開始が最も遅れる。
その時、次フィールドであるnフィールドの垂直方向読み出し処理は、待ち状態となるが、nフィールドの最上段の処理を行なう場合は、その待ち時間分の入力画像を保存しておく必要があり、必要ラインメモリが増加する。また、図29に示したように、水平方向処理結果の画像データの第1メモリ領域61への書き込みが、当該第1メモリ領域61からの垂直方向処理のための画像データの読み出しを追い越してはならないため、必要とされる電子ズーム率、手ぶれ補正率を満足するようなラインメモリ数分の記憶容量MAを設定する必要がある。
次に、ステップS101で、手ぶれ補正なしであると判別したときには、制御部10では、電子ズームなしであるかどうか判別し(ステップS104)、電子ズーム有りであると判別したときには、手ぶれ補正無しであるので、電子ズーム率のみを考慮した容量MBを、第1メモリ領域61の容量として設定する(ステップS105)。すなわち、第1メモリ領域61の記憶容量が、メモリ容量MBに設定されるように、セパレートアドレスSepAdrを決定し、レジスタブロック53のセパレートアドレスSepAdrを設定すべきレジスタに設定する。
この場合の容量MBは、図30に示すように、「(n−1)フィールドの中心部分の拡大電子ズーム処理」を行ない、続いて「nフィールドで、通常の解像度変換処理」を行なうときを考慮して設定すればよい。この場合は、手ぶれ補正が行なわれないため、その分、垂直方向処理の読み出しを早く実行でき、垂直方向処理の入力垂直同期Vを跨いで処理する時間が短くなる。そのため、上述のステップS103の場合と比べて、第1メモリ領域61の容量を小さくできる。
この場合における、画像メモリ6の第1メモリ領域61および第2メモリ領域62における画像データの書き込み、読み出しの様子を図31に示す。
この場合、撮像素子2からの入力撮像画像信号(図31(C))のうちの部分拡大領域に対応する部分の信号は、水平画像処理部512において処理された後、図31(A)において実線で示すようにして、第1メモリ領域61に書き込まれる。図31(D)の水平処理後画像信号においては、当該書き込まれた画像部分は、網点を付して示している。
第1メモリ領域61に、(n−1)フィールドの部分拡大領域の画像データが、垂直画像処理が可能なデータ量分以上書き込まれると、当該書き込まれた部分拡大領域の画像データが、図31(A)において太い点線で示すように、第1メモリ領域61から読み出されて、垂直画像処理がなされる。そして、垂直画像処理後の画像データは、図31(A)において、1点鎖線で示すようにして、第2メモリ領域62に書き込まれてゆく。したがって、垂直処理後の画像信号は、図31(E)のように、垂直同期信号を跨いだ区間で、第2メモリ領域62に書き込まれる。
このため、次フィールドであるnフィールドの画像データ部分になると、図31(A)において、実線で示すように、当該画像データの水平方向画像処理がなされ、その処理結果の第1メモリ領域61への書き込みが開始される。そして、セパレートアドレスSepAdrのところで、折り返されて、nフィールドの部分拡大領域の画像データの全てが第1メモリ領域61に書き込まれる。
このnフィールドの画像データの水平処理結果の書き込み時にも、(n−1)フィールドの部分拡大領域の水平処理結果の画像データの読み出しが行なわれるので、この読み出しを、nフィールドの部分拡大領域の水平処理結果の画像データの書き込みが追い越してしまわないようにしなければならず、そのようにするために、第1メモリ領域61の容量が設定されるものである。
そして、第2メモリ領域への垂直処理結果の画像データの書き込みが完了すると、図31(A)において、2点鎖線で示すようにして、第2メモリ領域62から前記垂直方向画像処理結果が、次の画像データの第2メモリ領域62への書き込みに先立ち、読み出される。すなわち、読み出された出力画像データは、図31(F)に示すようなタイミングで出力される。
次に、ステップS104で、電子ズーム有りであると判別したときには、制御部10では、レンズ歪み補正無しかどうか判別する(ステップS106)。ステップS102で、電子ズーム有りであると判別したときにも、このステップS106に進み、レンズ歪み補正無しかどうか判別する。
ステップS106で、レンズ歪み補正有りと判別したときには、制御部10は、図32に示すようなレンズ歪みの最大歪み量を見込んだライン数に対応できるメモリ容量MCに、第1メモリ領域61の記憶容量が設定されるように、セパレートアドレスSepAdrを決定し、レジスタブロック53のセパレートアドレスSepAdrを設定すべきレジスタに設定する(ステップS107)。
すなわち、レンズ歪みの補正をするときには、注目するラインを処理するためには、最大歪み分のライン数のデータが確保されている必要があるからである。このステップS107では、手ぶれ補正、電子ズームを行なわないため、垂直方向処理が入力垂直同期Vを跨ぐことがないことから、上書きを考慮する必要はない。よって、最大歪み分のラインメモリで対応できる。
最後に、ステップS106で、レンズ歪み補正無しと判別したときには、制御部10は、解像度変換のみを考慮して、垂直解像度変換フィルタとしての垂直FIRフィルタのタップ数分のラインメモリ容量として、第1メモリ領域61の記憶容量MDを設定する(ステップS108)。すなわち、第1メモリ領域61の記憶容量が、メモリ容量MDに設定されるように、セパレートアドレスSepAdrを決定し、レジスタブロック53のセパレートアドレスSepAdrを設定すべきレジスタに設定する。
この場合、垂直解像度変換は、図33に示すように、垂直解像度変換処理前の画像の複数ラインから、垂直FIRフィルタを用いて、垂直解像度変換後の画像の1ラインの画像データを得るようにするものである。垂直解像度変換処理前の画像についての、ある要求ラインに対して、垂直解像度変換結果の1ラインを得るために垂直FIRフィルタで用いる垂直解像度変換処理前の画像の複数ラインは、垂直FIRフィルタのタップ数分である。よって、この複数ライン数分が、第1メモリ領域61に蓄積されると、垂直解像度変換を行なうことできるので、第1メモリ領域61の容量は、垂直FIRフィルタのタップ数分のライン数分である容量MDでよい。実際には、容量MDは、垂直FIRフィルタのタップ数分のライン数分の容量に、マージン分を付加した容量とする。
以上のようにして、第1メモリ領域61の容量が決定されるが、この図27のフローチャートの処理と同様にして、各モードや、手ぶれ補正の有無、レンズ歪み補正の有無、電子ズームの有無などの条件に応じて、予め、レジスタに容量MA,MB,MC,MDを記憶しておき、前記条件を制御部10が判断して、その判断結果に基づいて、適切なレジスタから第1メモリ領域61の容量を読み出して、セパレートアドレスを設定するようにしても良い。レジスタに容量MA,MB,MC,MDを記憶しておくのではなく、セパレートアドレスSepAdrの値をレジスタブロック53に予め設定しておき、それを必要に応じて読み出して、画像メモリ6のメモリ領域を分割するようにしても良い。
なお、この実施形態では、撮像装置の制御部10がユーザの入力選択設定情報に応じて、画像メモリ6の第1メモリ領域の大きさをダイナミックに変更するようにしたが、撮像装置の設計に当たって、電子ズームを設けるか、設けるとしたらどの程度のズーム率にするか、手ぶれ補正をつけるか、つけるとしたらどのくらいの大きさの手ぶれ補正を可能とするか、レンズ歪み補正を付けるか、付けるとしたらどの程度の補正率とするか、などを考慮して、固定的にセパレートアドレスSepAdrを設定する場合にも、図27のフローチャートと同様の手順により、メモリ領域61,62の大きさを決定するようにするものである。
以上は、画像メモリ6を論理的に2分割して使用する動作について説明したが、前述もしたように、この実施形態の撮像装置において、静止画記録モードやHD動画撮影モードの場合には、出力画像解像度が大容量となるので、画像メモリ6は、1つのメモリ領域として動作させるようにする。
この場合に、画像メモリ6のメモリ領域61は、リングメモリとしてFIFO動作を行なう第1メモリ領域61のみとして用いるようにする。
図34は、静止画記録モードの場合の画像処理の全体の流れを説明するための図である。また、図35は、この場合における第1メモリ領域61における画像データの書き込み、読み出しの様子を示す図である。
すなわち、図34に示すように、入力撮像画像信号は、水平画像処理部511で、上述したような水平方向の手ぶれ補正やレンズ歪み補正、解像度変換を伴った水平画像処理がなされた後、画像メモリ6の第1メモリ領域61に書き込まれる。このとき、第1メモリ領域61、つまり、画像メモリ6の容量は、静止画撮像データの1画面分を、全て記憶する容量は備えていないため、入力撮像画像データは、図35において、実線で示すように、この画像メモリ6の上限のアドレスで、アドレスが折り返されて、第1メモリ領域61において上書きされるようにされる。
そして、上書きにより、前に書き込まれた画像データが消えてしまう前であって、垂直画像処理が開始できるようなデータ量の画像データが第1メモリ領域61に書き込まれると、図35において、太い点線で示すように、撮像画像データが読み出される。
そして、読み出された撮像画像データは、垂直画像処理部522で、垂直方向の手ぶれ補正やレンズ歪み補正および解像度変換の処理がなされる。そして、この例では、垂直画像処理部522の出力である静止画記録画像データは、外付けのSDRAMや、カード型メモリなどの半導体メモリを用いる外付けメモリ17に記録するようにする。
このようにして、この実施形態では、静止画記録画像データも、当該画像データのデータ量よりも少ない記憶容量の画像メモリを用いて、画像処理を行なって、記録することができる。
次に、この実施形態の撮像装置における画像メモリ6として必要となるメモリ容量について、全画面縮小を例に挙げて説明する。ここで、全画面縮小とは、入力画像を部分切り出しするのではなく、入力画像全範囲から、必要な解像度の出力画像信号に変換する処理である。
この場合、画像の水平方向サイズをXピクセル(pixel=画素)、垂直サイズをYピクセル(pixel=画素)、1画素あたりの情報量を、Zビットとした時、保存するために必要となるメモリ容量は、
SUMmem=X×Y×Z(ビット)
となり、出力画像信号を、4:1:1の輝度信号、色差信号を持つNTSC(National Television System Committee)方式のSD画像とした場合、第2メモリ領域62で必要とする容量は、
SUMmem2=720×240×12=約2.0(メガビット)
となる。
次に、第1メモリ領域61において必要となる容量は、上で述べたように、垂直解像度変換のタップ数、手ぶれ補正範囲、電子ズーム率、電子歪み補正率などによって変化する。最もその容量を必要とする条件は、手ぶれ補正範囲を撮像素子の全有効画素領域に指定、電子ズーム率の限界として垂直タップ数の垂直サイズから出力画像信号サイズへの拡大を網羅、電子手ぶれ補正あり、とした場合であり、この場合に、第1メモリ領域61に必要な容量は、
SUMmem1=約2.0(メガビット)(実績値)
となる。
したがって、必要メモリ容量の合計は
SUMall=SUMmem1+SUMmem2=2.0+2.0=約4.0(メガビット)
となる。第2メモリ領域62には、解像度変換後の全データを書き込むため、入力画像サイズに関わらず、2.0(メガビット)となる。
一方、冒頭で説明した図43、図45の従来手法の場合は、入力画像サイズを、1152ピクセル×864ピクセル(1メガサイズ)とすると、SD画像は、それぞれ、
SUMall=1152×864×12=約11.0(メガビット)
SUMall=720×864×12=約7.0(メガビット)
となる。
したがって、上述したこの実施形態の場合には、従来手法に対して、画像メモリの必要メモリ容量を、それぞれ 40%、60%に削減できる。ここでは、1メガサイズの画像についてその効果を述べたが、入力サイズが増加しても、この実施形態では、必要メモリ容量が増加しないことから、入力サイズが増大するにつれて、その効果がより顕著となる。
[画像メモリ6の読み書きタイミング制御]
上述したように、この実施形態では、画像メモリ6の第1メモリ領域61には、水平方向の画像処理結果の画像データは1画面分の全てを書き込むのではなく、第1メモリ領域61の容量を1画面分よりも少ない容量としつつ、上書きにより消去される前に、書き込んだ画像データの読み出しを開始するようにしている。すなわち、水平方向の画像処理結果の画像データに対する垂直方向の画像処理は、1垂直周期待たずに処理を開始することが可能である。このことを可能にした画像メモリ6の第1メモリ領域61に対する読み出し開始タイミング制御の方法を、以下に説明する。
この実施形態では、前述した4種の撮像モードに応じて、2種類の読み出し開始タイミング制御方法を用いるようにしている。
[方法1]
読み出し開始タイミングを予め計算しておき、有効入力画像データの開始を示す水平および垂直同期信号などに基づいて、当該読み出し開始タイミングを検出して、読み出しを開始する。
すなわち、この実施形態では、手ぶれ補正、電子ズーム、レンズ歪み補正、解像度変換などの画像処理を行なうようにするが、それぞれの画像処理を行なう場合およびそれらを組み合わせた場合について、読み出し開始タイミングを予め定めている。
解像度変換処理のみを行なう場合には、垂直方向の解像度変換用デジタルフィルタのタップ数に応じて定まる所定量の画像データ(水平処理後の画像データ)が、第1メモリ領域61に蓄積されたら、当該第1メモリ領域61から当該画像データを読み出して、垂直方向処理を行なうことが可能である。
また、画像処理が電子ズームのみの場合であれば、電子ズーム率に応じて定まる所定量以上の画像データが、第1メモリ領域61に書き込まれた後に、当該第1メモリ領域61から当該画像データを読み出して、垂直方向処理を行なうことが可能である。
また、画像処理が撮像時の手ぶれに基づく画像歪みを補正する手ぶれ補正処理のみの場合であれば、手ぶれ補正処理により補正しようとする手ぶれの大きさの最大値に応じて定まる所定量以上の画像データが第1メモリ領域61に書き込まれた後に、当該第1メモリ領域61から当該画像データを読み出して、垂直方向処理を行なうことが可能である。手ぶれ補正処理により補正しようとする手ぶれの大きさの最大値は、撮像装置の能力として予め決定されるものである。
また、画像処理が撮像に用いたレンズに基づく画像歪みを補正するレンズ歪み補正処理のみである場合であれば、レンズ歪み補正処理により補正しようとするレンズ歪みの最大値に応じて定まる所定量以上の画像データが第1メモリ領域61に書き込まれた後に、当該第1メモリ領域61から当該画像データを読み出して、垂直方向処理を行なうことが可能である。レンズ歪み補正処理により補正しようとするレンズ歪みの最大値は、使用するレンズに応じたものであり、レンズを交換することができる場合には、その交換レンズ毎のレンズ歪みの最大値に応じた前記所定量を、予め設定しておくようにすれば良い。
そして、上記の画像処理を複数、組み合わせる場合には、予め定められた前記各画像処理に応じた所定量のうちの最大値に基づいて、第1メモリ領域61から読み出しを開始するデータ蓄積量を設定するようにする。
制御部10には、前述の第1メモリ領域61からの画像データの読み出しタイミングとなるデータ量の情報が保持されている。
そして、制御部10には、ユーザインターフェース9を通じて、手ぶれ補正をするかどうか、電子ズームをするかどうか、電子ズームをする場合にはそのズーム率、レンズ歪み補正をするかどうか、解像度変換については出力画像の解像度、がユーザにより入力される。
したがって、制御部10は、この方法1の場合には、ユーザインターフェース9を通じて実行するものと指示された画像処理を判別し、当該判別結果に基づいて、前記第1メモリ領域61からの画像データの読み出し開始タイミングを、予め設定されて保持しているものから選択して、第1メモリ領域コントローラ209に渡すようにする。第1メモリ領域コントローラ209は、制御部10から受けた情報を基に、第1メモリ領域61からの画像データの読み出しを行なう。
方法1では、手ぶれ補正、電子ズーム率、電子歪み補正率などの条件により、第1メモリ領域61からの水平処理結果の画像データの読み出し開始タイミングを、予め詳細に決定しておくことは困難であるため、詳細な制御はできないが、メモリコントローラなどで詳細な制御する必要がなく、容易にタイミング制御を実現できる点と、読み出し開始タイミングの設定値によっては、処理開始以降は、回路が待ち状態になることがないような特殊な制御が可能となる点に長所がある。
この実施形態では、HD動画撮影モードおよび静止画記録モードでは、この方法1を用いるようにしている。
[方法2]
第1メモリ領域コントローラ209内部で自ら開始タイミングを生成し、垂直方向処理の制御を行なう。
この方法2では、第1メモリ領域コントローラ209自身が、読み出し開始タイミングを生成するため、それに必要な情報を管理・更新する必要があるが、画像メモリ6上の画像データをリアルタイムで管理可能となり、読み出し開始タイミングの詳細な制御ができるという長所がある。そして、この方法2は、メモリ容量の制限などで、詳細な制御を行ないたい場合に効果を発揮する。この実施形態では、SD動画撮影モードおよびモニタリングモードでは、方法2を用いるようにしている。
以上の方法1および方法2の適用例は、一例であり、これに限定されるものではない。
次に、上記の方法2について、その詳細を述べる。方法2を実現するための重要ポイントは、第1メモリ領域61上に存在する当該フィールド(フレーム)の画像管理情報(メモリ領域上に存在する1フィールド(1フレーム)中での画像範囲およびその開始アドレス、終了アドレス)を常に更新、管理することである。
一例として、図24の例の場合における第1メモリ領域61についてのデータ書き込み/読み出しの挙動図をクローズアップしたものを図36に示す。また、1画面分の画像データが、そのときに、第1メモリ領域61にどのように書き込まれるかを、図37に示す。図37は、入力画像データについて水平方向の処理を全て行なった後、有効画像データ部分のみを第1メモリ領域61に書き込む場合を示している。
まず、図36において実線401で示すように、水平方向処理後の有効画像の書き込みが開始される。その時の書き込み開始アドレスは任意である。書き込み続けると、アドレスが第1メモリ領域61のメモリ上限に達し、折り返しが発生する。
そして、この折り返しが発生した状態で、さらに画像データを書き込み続けると、書き込みアドレスは、前に設定した書き込み開始アドレスに戻って、当該書き込み開始アドレスから、図36において実線402で示すように、第1メモリ領域61上で画像データの上書きが発生する。さらに、書き込み続けると、アドレスが、再度、第1メモリ領域61のメモリ上限に達し、折り返しが発生する。
この折り返しが発生した状態で、さらに画像データを書き込み続けると、書き込みアドレスは、再度、前に設定した書き込み開始アドレスに戻って、当該書き込み開始アドレスから、図36において実線403で示すように、第1メモリ領域61上で画像データの上書きが発生し、1画面分の残りの画像データが書き込まれる。
図36における実線401,402,403で示した書き込み区間の画像データは、1画面分の画像データとしては、図37に示すようになる。
図38(A)および(B)に、このときに、第1メモリメモリ61上に存在する画像範囲の遷移を示す。なお、図38(B)では、第1メモリ領域61の容量を、説明の便宜上、100ライン分として示している。
書き込みを始めてから第1メモリ領域61の記憶容量分の書き込みがなされると、図38(B)に示すように、画像データの上書きが初めて発生する。その時、保存されていた書き込み開始ラインの画像データが上書きされ、消去されるが、存在終了ラインが増加する。したがって、存在開始ラインと存在終了ラインの相対的な差分は、上書きが開始された時点から常に一定となっている。この存在開始ラインと存在終了ラインのそれぞれのライン情報およびアドレス情報を、第1メモリ領域コントローラ209で常に更新管理して、垂直方向読み出しタイミングを自動生成する。
すなわち、この実施形態では、第1メモリ領域61上に存在する画像範囲およびその開始アドレス、終了アドレスを管理することで、垂直方向処理のための読み出し開始タイミングを早めることができ、データの上書きが発生する前に所望のデータを読み出すことで、図43、図45の従来手法よりも少ないメモリ容量でかつ任意の入力画像サイズからのビデオ信号変換を可能とする。
さらに、この実施形態では、上述した存在開始ラインの情報をもとに、所望のラインの読み出しアドレス計算を行なうことで、従来では複雑になり得たアドレス計算を簡素化するようにしている。
すなわち、図43、図44に示した従来手法では、画像の読み出しアドレス計算には、図37に示した書き込み開始ラインおよびその開始アドレスをもとに計算している。つまり、従来手法では、書き込み開始ラインに対する相対アドレスを画像の読み出しのアドレス計算に利用している。その書き込み開始ラインおよびアドレス情報は、垂直ブランキング期間中に一度更新される。
図39に、従来方法の場合における垂直方向処理のための画像データの読み出し開始タイミングの計算方法を示す。すなわち、図39に示すように、垂直方向処理対象のラインが指定されて、その要求が垂直画像処理部で発生したとき、メモリコントローラは、要求されたラインを処理するために必要な画像範囲の複数ラインのアドレスを、書き込み開始ラインからの相対差分を利用して計算し、それらの必要な画像範囲の複数ラインの書き込みが終了していて、その読み出しが開始できるかどうかを判断するようにする。
しかし、この図39に示した垂直方向処理のための画像データの読み出し開始タイミングの計算方法として、書き込み開始アドレスを利用したアドレス計算を、この実施形態の撮像装置へ適用すると、次のような問題がある。すなわち、
1.任意の折り返しアドレスに対応するためには除算器が必要となる。
2.折り返しアドレスが2のべき乗の場合、シフト演算などを用いることで代用できるが、汎用性に欠け、また、動的に折り返しアドレスを変化させることが困難である。
という問題がある。
そこで、この実施形態では、アドレス計算には図38に示した存在開始ラインおよびそのアドレスを利用することでこれらの問題を解決するようにしている。
図40に、この実施形態における垂直方向処理のための画像データの読み出し開始タイミングの計算方法を示す。すなわち、図40に示すように、垂直方向処理対象のラインが指定されて、その要求が垂直画像処理部で発生したとき、第1メモリ領域コントローラ209は、要求されたラインを処理するために必要な画像範囲の複数ラインの、その存在開始ラインからの相対差分を利用して計算し、それらの必要な画像範囲の複数ラインの書き込みが終了していて、垂直方向処理が開始できるかどうかを判断するようにする。
この実施形態では、存在開始ラインに対する相対アドレスを、垂直方向処理のための画像データの読み出し開始タイミングを決定する際のアドレス計算に利用することで、アドレス計算の際の折り返しは高々一回となる。このことより、除算器ではなく減算器などで実現することができ、計算の簡素化できる。
また、任意の折り返しアドレスに対応可能となる。そして、どのような入力画像サイズの場合でも、アドレス計算の際の折り返し回数は高々一回となるため、任意の入力画像サイズの画像データからの出力画像データへの変換が容易に実現できる。
このときの、ブロック垂直画像処理部52の要部の構成のブロック図を図41に示す。また、この例における第1メモリ領域コントローラ209の、垂直処理のための画像データの読み出し制御動作のフローチャートを図42に示す。ただし、図42のフローチャートは、1画面分の画像データについての処理を示したもので、動画の画像データの場合には、この図42の処理が繰り返されることになる。
すなわち、この場合、図41に示すように、垂直補間処理部210は、前のラインについての垂直補間処理が終了すると、次のラインの垂直補間処理のために、第1メモリ領域コントローラ209に新たな要求ラインの情報を送る。
第1メモリ領域コントローラ209は、この要求ラインの情報を受け取ると(ステップS201)、要求ラインを垂直方向処理するために必要な複数ラインを認識し、それら複数ラインの、存在開始ラインに対する相対アドレスに関する計算を、上述したようにして行なう(ステップS202)。
このとき、レジスタブロック53には、制御部10から手ぶれ補正の有無、レンズ歪み補正の有無、電子ズームの有無などのモードに関する情報が保持されており、第1メモリ領域コントローラ209は、このレジスタブロック53のモードの情報から、そのときのモードにおいて、要求ラインを垂直方向処理するために必要な複数ラインを認識し、そのアドレス計算を行なう。
そして、第1メモリ領域コントローラ209は、必要な複数ラインの画像データの読み出しが可能になったか否か判別し(ステップS203)、未だ、それらの画像データの書き込みが終了していない場合には、垂直補間処理部210に供給するウエイト信号wait=1として、その旨を垂直補間処理部210に通知する(ステップS204)。そして、ステップS203に戻る。
また、ステップS203で、必要な複数ラインの画像データの読み出しが可能になったと判別したときには、第1メモリ領域コントローラ209は、垂直補間処理部210に供給するウエイト信号wait=0とすると共に、上記必要な複数ラインの画像データを読み出して、垂直補間処理部210に転送する(ステップS206)。したがって、垂直補間処理部210は、要求ラインについての垂直補間処理を開始する。
次に、第1メモリ領域コントローラ209は、1画面分の画像データの全てについての上記処理が終了したか否か判別し、終了してはいないと判別したときには、ステップS201に戻って、上述の処理を繰り返す。また、1画面分の画像データの全てについての上記処理が終了したと判別したときには、この処理ルーチンを終了する。
なお、上述の実施形態の説明では、主に動画記録モードのときの撮像画像信号の場合について述べたが、静止画記録、静止画再生などの際にも、上述と同様のアドレス計算方法を適用できることは勿論である。
以上説明したように、この実施形態によれば、1フィールド(1フレーム)分のメモリ容量に、垂直解像度変換などの垂直方向画像処理を開始するのに必要なメモリ容量を加えるだけで、任意データサイズの入力画像信号から、出力画像信号への変換が可能となり、入力画像分のメモリ容量相当を必要とする従来システムより少ない容量で、解像度変換などの画像処理が実現できる。
また、レジスタ設定のセパレートアドレスによるメモリ分割を行うことで、動的に回路構成を変化させることができ、その結果、さまざまな処理モードに対応することが可能であり、シームレスなモード遷移が可能となる。
また、メモリ上の画像管理情報をリアルタイムで管理・更新することで、読み出しの際のアドレス計算も簡素化でき、さらに、任意の折り返しアドレスに対応可能となる。
また、入力画像サイズによらず一定のメモリ容量にて解像度変換などの画像処理を実現できるため、入力画像サイズが大きくなればなるほど、従来システムに対して、その効果を、より発揮できる。さらに、動画像処理だけでなく、静止画処理に対しても適用できるため、より広い分野での利用が期待できる。
また、画像処理モードに応じてメモリ構成を動的に変化させることと、垂直処理の開始タイミングを2種類の方法を用いて柔軟に設定できることから、汎用性が高く、撮像装置だけでなく、さまざまな画像処理システムに組み込むことが期待できる。
[他の実施形態および変形例]
なお、上述の実施形態の説明は、撮像装置を操作するユーザにより生起される手ぶれによる画像歪みを補正する場合であったが、ユーザにより生起される手ぶれのみではなく、撮影時に、撮像素子に対して、その撮像画像の水平方向および/または垂直方向の位置的変化を生じるように加わった振動などの偏倚力に起因して生じる画像歪みをも補正することができることは言うまでもない。
また、上述の実施形態では、レンズの交換や光学ズームによるレンズの光軸上の移動を考慮するために、レンズ歪み補正用データ導出・エンコード部11を設けたが、レンズ交換を行なわず、光学ズームの機能を有しない撮像装置の場合であれば、レンズ歪み補正用ベクトルは、撮像素子の各画素位置に対して一意に定まるので、レンズ歪み補正用データデコード部の代わりに、レンズ歪み補正用データの格納部を設け、画素座標データを引数として、レンズ歪み水平方向補正量データやレンズ歪み垂直方向補正量データを読み出すようにすれば良い。
また、上述の実施形態は、X−Yアドレス型の固体撮像素子としてCMOSイメージャを用いた場合であるが、撮像素子としてはCMOSイメージャに限定されるものでないことは勿論である。また、撮像素子は、X−Yアドレス型のものに限定されるものではなく、CCD固体撮像素子であってもよい。
また、上述の実施形態では、水平方向の画素列の画像データを先に読み出して、1ライン分を読み出したら、次のラインを読み出すようにしたので、水平方向処理を先に行ない、その処理結果を第1メモリ領域に書き込み、垂直方向処理のためには、この第1メモリ領域から水平方向処理結果を読み出すようにしたが、垂直方向の画素列を先に読み出し、垂直方向の1列を読み出したら、次の1列を読み出すようにして、垂直方向処理を先に行ない、その処理結果を第1メモリ領域に書き込み、水平方向処理のために、この第1メモリ領域から水平方向処理結果を読み出すようにしても良い。
また、上述の実施形態では、第1の画像処理および第2の画像処理の処理結果を書き込む画像メモリは、1個の画像メモリを用いるようにしたが、第1の画像処理の処理結果を書き込む画像メモリと、第2の画像処理の処理結果を書き込む画像メモリとを分けてもよい。また、第2の画像処理の処理結果は、図34の例のように、外部メモリに記憶したり、出力端子を通じて外部に出力したりするようにしてもよい。
また、この発明は、撮像装置(カメラ)にのみ適用されるものではなく、例えば携帯電話端末、情報携帯端末などに撮像素子が取付けられて、画像を撮影する場合にも適用できるものである。
この発明による画像データ処理装置の実施形態の構成例を示すブロック図である。 手ぶれ補正を説明するために用いる図である。 CMOSイメージャにおける、手ぶれによるフレーム内画像歪みの原因を説明するための図である。 CMOSイメージャにおける、手ぶれによるフレーム内画像歪みを説明するために用いる図である。 この発明による画像データ処理装置の実施形態における手ぶれ補正の概要を説明するための図である。 この発明による画像データ処理装置の実施形態における手ぶれ補正動作を説明するための図である。 撮像レンズの歪曲収差特性に基づく画像歪みを説明するための図である。 この発明による画像データ処理装置の実施形態における画像メモリのメモリ領域を説明するための図である。 図1の一部の詳細構成例を示す図である。 この発明による画像データ処理装置の実施形態における手ぶれ補正動作を説明するための図である。 この発明による画像データ処理装置の実施形態における手ぶれ補正動作を説明するための図である。 この発明による画像データ処理装置の実施形態において、画像歪みを補正するために用いる補間処理を説明するための図である。 この発明による画像データ処理装置の実施形態において、画像歪みを補正するために用いる補間処理を説明するための図である。 この発明による画像データ処理装置の実施形態において、画像歪みを補正するために用いる補間処理を説明するための図である。 この発明による画像データ処理装置の実施形態において、画像歪みを補正するために用いる補間処理を説明するための図である。 図1の実施形態の装置における水平処理用手ぶれ補正量積分部の動作の流れを説明のためのフローチャートである。 図1の実施形態の装置における水平画像処理部の詳細構成例を示すブロック図である。 図17の水平画像処理部の動作タイミングを説明するための図である。 図1の実施形態の装置における垂直処理用手ぶれ補正量積分部の動作の流れを説明のためのフローチャートである。 図1の実施形態の装置における垂直画像処理部の詳細構成例を示すブロック図である。 図20の垂直画像処理部の動作タイミングを説明するための図である。 この発明による画像データ処理装置の実施形態における画像データの処理の流れを説明するためのブロック図である。 この発明による画像データ処理装置の実施形態における画像データの処理の一例を説明するために用いる図である。 この発明による画像データ処理装置の実施形態における画像メモリへの書き込み/読み出し動作例を説明するための図である。 この発明による画像データ処理装置の実施形態における画像データの処理の一例を説明するために用いる図である。 この発明による画像データ処理装置の実施形態における画像メモリへの書き込み/読み出し動作例を説明するための図である。 この発明による画像データ処理装置の実施形態における画像メモリのうちの第1メモリ領域の容量の設定方法を説明するための図である。 この発明による画像データ処理装置の実施形態における画像データの処理の一例を説明するために用いる図である。 この発明による画像データ処理装置の実施形態における画像メモリへの書き込み/読み出し動作例を説明するための図である。 この発明による画像データ処理装置の実施形態における画像データの処理の一例を説明するために用いる図である。 この発明による画像データ処理装置の実施形態における画像メモリへの書き込み/読み出し動作例を説明するための図である。 図1の実施形態の装置における画像メモリのうちの第1メモリ領域の容量を説明するために用いる図である。 この発明による画像データ処理装置の実施形態における画像データの処理の一例を説明するために用いる図である。 この発明による画像データ処理装置の実施形態における画像データの処理の流れを説明するためのブロック図である。 図34の例における画像メモリへの書き込み/読み出し動作例を説明するための図である。 この発明による画像データ処理装置の実施形態における画像メモリへの書き込み/読み出し動作例を説明するための図である。 この発明による画像データ処理装置の実施形態における画像メモリへの書き込み/読み出し動作例を説明するための図である。 この発明による画像データ処理装置の実施形態における画像メモリへの書き込み/読み出し動作例を説明するための図である。 この発明による画像データ処理装置の実施形態における画像メモリへの書き込み/読み出し動作例を説明するための図である。 この発明による画像データ処理装置の実施形態における画像メモリへの書き込み/読み出し動作例を説明するための図である。 この発明による画像データ処理装置の実施形態における画像メモリへの書き込み/読み出し動作例を説明するための図である。 この発明による画像データ処理装置の実施形態における画像メモリへの書き込み/読み出し動作例を説明するための図である。 従来の画像データ処理装置を説明するためのブロック図である。 図43の例の画像データ処理装置における画像メモリへの書き込み/読み出し動作を説明するための図である。 画像データ処理装置の他の例を説明するためのブロック図である。
符号の説明
2…撮像素子、5…信号処理部、6…画像メモリ、7…手ぶれ検出部、8…手ぶれ速度検出処理部、10…制御部、12…レンズ歪み補正データデコード部、51…水平処理ブロック、52…垂直処理ブロック、53…レジスタブロック、61…第1メモリ領域、62…第2のメモリ領域、209…第1メモリ領域コントローラ、210…垂直補間処理部、212…第2メモリ領域コントローラ

Claims (24)

  1. 任意領域からの撮像画像の読み出しが可能な撮像素子から読み出された入力画像データに対して、所定の画像処理を第1の画像処理と第2の画像処理とに分けて施すことにより、出力画像データを生成する画像データ処理方法であって、
    前記第1の画像処理結果を画像メモリに書き込む書き込み工程と、
    前記第2の画像処理を施すようにするために、前記画像メモリに書き込まれた前記画像データを読み出す読み出し工程と、
    前記読み出し工程を、前記所定の画像処理に応じて、予め設定された前記入力画像データの1画面分よりも少ない所定量の画像データが前記画像メモリに書き込まれた後に開始するようにする制御工程と、
    を備えることを特徴とする画像データ処理方法。
  2. 請求項1に記載の画像データ処理方法において、
    前記第1の画像処理は、所定の画像処理における水平方向(または垂直方向)の処理であり、
    前記第2の画像処理は、前記所定の画像処理における垂直方向(または水平方向)の処理である
    ことを特徴とする画像データ処理方法。
  3. 請求項1または請求項2に記載の画像データ処理方法において、
    前記所定の画像処理は、前記入力画像データの解像度を変換する解像度変換処理であって、前記第2の画像処理は、前記入力画像データの単位時間分毎の解像度変換結果を、前記第1の画像処理結果の、複数個の前記単位時間分の画像データを用いて求めるものであり、
    前記制御工程では、前記第2の画像処理で用いる複数個の前記単位時間分の画像データが前記画像メモリ領域に書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理方法。
  4. 請求項1または請求項2に記載の画像データ処理方法において、
    記所定の画像処理は、電子ズームによる画像の拡大・縮小処理であって、
    前記制御工程では、電子ズーム率に応じて定まる前記所定量の画像データが前記画像メモリに書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理方法。
  5. 請求項1または請求項2に記載の画像データ処理方法において、
    記所定の画像処理は、撮像時の手ぶれに基づく画像歪みを補正する手ぶれ補正処理であって、
    前記制御工程では、前記手ぶれ補正処理により補正しようとする手ぶれの大きさの最大値に応じて定まる前記所定量の画像データが前記画像メモリに書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理方法。
  6. 請求項1または請求項2に記載の画像データ処理方法において、
    記所定の画像処理は、撮像に用いたレンズに基づく画像歪みを補正するレンズ歪み補正処理であって、
    前記制御工程では、前記レンズ歪み補正処理により補正しようとするレンズ歪みの最大値に応じて定まる前記所定量の画像データが前記画像メモリに書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理方法。
  7. 任意領域からの撮像画像の読み出しが可能な撮像素子から読み出された入力画像データに対して、所定の画像処理を第1の画像処理と第2の画像処理とに分けて施すことにより、出力画像データを生成する画像データ処理方法であって、
    前記第1の画像処理結果を画像メモリに書き込む書き込み工程と、
    前記第2の画像処理を施すようにするために、前記画像メモリに書き込まれた前記画像データを読み出す読み出し工程と、
    前記書き込み工程によって前記画像メモリに書き込まれた画像データを監視して、前記画像メモリに前記第2の画像処理を開始できるデータ量の画像データが蓄積されたら、前記読み出し工程を開始するように制御する制御工程と、
    を備えることを特徴とする画像データ処理方法。
  8. 請求項7に記載の画像データ処理方法において、
    前記第1の画像処理は、所定の画像処理における水平方向(または垂直方向)の処理であり、
    前記第2の画像処理は、前記所定の画像処理における垂直方向(または水平方向)の処理である
    ことを特徴とする画像データ処理方法。
  9. 請求項7または請求項8に記載の画像データ処理方法において、
    前記所定の画像処理は、前記入力画像データの解像度を変換する解像度変換処理であって、前記第2の画像処理は、前記入力画像データの単位時間分毎の解像度変換結果を、前記第1の画像処理結果の、複数個の前記単位時間分の画像データを用いて求めるものであり、
    前記制御工程では、前記第2の画像処理で用いる複数個の前記単位時間分の画像データが前記画像メモリに書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理方法。
  10. 請求項7または請求項8に記載の画像データ処理方法において、
    記所定の画像処理は、電子ズームによる画像の拡大・縮小処理であって、
    前記制御工程では、電子ズーム率に応じて定まる所定量の画像データが前記画像メモリに書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理方法。
  11. 請求項7または請求項8に記載の画像データ処理方法において、
    記所定の画像処理は、撮像時の手ぶれに基づく画像歪みを補正する手ぶれ補正処理であって、
    前記制御工程では、前記手ぶれ補正処理により補正しようとする手ぶれの大きさの最大値に応じて定まる所定量の画像データが前記画像メモリに書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理方法。
  12. 請求項7または請求項8に記載の画像データ処理方法において、
    記所定の画像処理は、撮像に用いたレンズに基づく画像歪みを補正するレンズ歪み補正処理であって、
    前記制御工程では、前記レンズ歪み補正処理により補正しようとするレンズ歪みの最大値に応じて定まる所定量の画像データが前記画像メモリに書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理方法。
  13. 任意領域からの撮像画像の読み出しが可能な撮像素子から読み出された入力画像データに対して、所定の画像処理を第1の画像処理と第2の画像処理とに分けて施すことにより、出力画像データを生成する画像データ処理装置であって、
    前記入力画像データに対して前記第1の画像処理を施す第1の画像処理手段と、
    前記入力画像データに対して前記第2の画像処理を施す第2の画像処理手段と、
    前記第1の画像処理結果が書き込まれる画像メモリと、
    前記第1の画像処理手段の処理結果の画像データを前記画像メモリに書き込み、当該書き込まれた前記画像データを前記画像メモリから読み出して前記第2の画像処理手段に供給するようにするものであって、前記所定の画像処理に応じて、予め設定された前記入力画像データの1画面分よりも少ない所定量の画像データが前記画像メモリに書き込まれた後に、前記画像メモリからの前記水平処理結果の画像データの読み出しを開始するように制御する制御手段と、
    を備える画像データ処理装置。
  14. 請求項13に記載の画像データ処理装置において、
    前記第1の画像処理手段は、所定の画像処理における水平方向(または垂直方向)の処理を行なうものであり、
    前記第2の画像処理手段は、前記所定の画像処理における垂直方向(または水平方向)の処理を行なうものである
    ことを特徴とする画像データ処理装置。
  15. 請求項13または請求項14に記載の画像データ処理装置において、
    前記所定の画像処理は、前記入力画像データの解像度を変換する解像度変換処理であって、前記第2の画像処理は、前記入力画像データの単位時間分毎の解像度変換結果を、前記第1の画像処理結果の、複数個の前記単位時間分の画像データを用いて求めるものであり、
    前記制御手段は、前記第2の画像処理で用いる複数個の前記単位時間分の画像データが前記画像メモリに書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理装置。
  16. 請求項13または請求項14に記載の画像データ処理装置において、
    記所定の画像処理は、電子ズームによる画像の拡大・縮小処理であって、
    前記制御手段は、電子ズーム率に応じて定まる前記所定量の画像データが前記画像メモリに書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理装置。
  17. 請求項13または請求項14に記載の画像データ処理装置において、
    記所定の画像処理は、撮像時の手ぶれに基づく画像歪みを補正する手ぶれ補正処理であって、
    前記制御手段は、前記手ぶれ補正処理により補正しようとする手ぶれの大きさの最大値に応じて定まる前記所定量の画像データが前記画像メモリに書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理装置。
  18. 請求項13または請求項14に記載の画像データ処理装置において、
    記所定の画像処理は、撮像に用いたレンズに基づく画像歪みを補正するレンズ歪み補正処理であって、
    前記制御手段は、前記レンズ歪み補正処理により補正しようとするレンズ歪みの最大値に応じて定まる前記所定量の画像データが前記画像メモリに書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理装置。
  19. 任意領域からの撮像画像の読み出しが可能な撮像素子から読み出された入力画像データに対して、所定の画像処理を第1の画像処理と第2の画像処理とに分けて施すことにより、出力画像データを生成する画像データ処理装置であって、
    前記入力画像データに対して前記第1の画像処理を施す第1の画像処理手段と、
    前記入力画像データに対して前記第2の画像処理を施す第2の画像処理手段と、
    前記第1の画像処理結果が書き込まれる画像メモリと、
    前記第1の画像処理手段の処理結果の画像データを前記画像メモリに書き込み、当該書き込まれた前記画像データを前記第1のメモリ領域から読み出して前記第2の画像処理手段に供給するようにするものであって、前記画像メモリに書き込まれた画像データを監視して、前記画像メモリに前記第2の画像処理を開始できるデータ量の画像データが蓄積されたら、前記画像メモリからの読み出しを開始するように制御する制御手段と、
    を備えることを特徴とする画像データ処理装置。
  20. 請求項19に記載の画像データ処理装置において、
    前記第1の画像処理は、所定の画像処理における水平方向(または垂直方向)の処理であり、
    前記第2の画像処理は、前記所定の画像処理における垂直方向(または水平方向)の処理である
    ことを特徴とする画像データ処理装置。
  21. 請求項19または請求項20に記載の画像データ処理装置において、
    前記所定の画像処理は、前記入力画像データの解像度を変換する解像度変換処理であって、前記第2の画像処理は、前記入力画像データの単位時間分毎の解像度変換結果を、前記第1の画像処理結果の、複数個の前記単位時間分の画像データを用いて求めるものであり、
    前記制御手段は、前記第2の画像処理で用いる複数個の前記単位時間分の画像データが前記画像メモリに書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理装置。
  22. 請求項19または請求項20に記載の画像データ処理装置において、
    記所定の画像処理は、電子ズームによる画像の拡大・縮小処理であって、
    前記制御手段は、電子ズーム率に応じて定まる所定量の画像データが前記画像メモリに書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理装置。
  23. 請求項19または請求項20に記載の画像データ処理装置において、
    記所定の画像処理は、撮像時の手ぶれに基づく画像歪みを補正する手ぶれ補正処理であって、
    前記制御手段は、前記手ぶれ補正処理により補正しようとする手ぶれの大きさの最大値に応じて定まる所定量の画像データが前記画像メモリに書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理装置。
  24. 請求項19または請求項20に記載の画像データ処理装置において、
    記所定の画像処理は、撮像に用いたレンズに基づく画像歪みを補正するレンズ歪み補正処理であって、
    前記制御手段は、前記レンズ歪み補正処理により補正しようとするレンズ歪みの最大値に応じて定まる所定量の画像データが前記画像メモリに書き込まれた後に前記画像メモリからの前記画像データの読み出しを開始するように制御する
    ことを特徴とする画像データ処理装置。
JP2005038551A 2005-02-16 2005-02-16 画像データ処理方法および画像データ処理装置 Expired - Fee Related JP4406711B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005038551A JP4406711B2 (ja) 2005-02-16 2005-02-16 画像データ処理方法および画像データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005038551A JP4406711B2 (ja) 2005-02-16 2005-02-16 画像データ処理方法および画像データ処理装置

Publications (2)

Publication Number Publication Date
JP2006229383A JP2006229383A (ja) 2006-08-31
JP4406711B2 true JP4406711B2 (ja) 2010-02-03

Family

ID=36990374

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005038551A Expired - Fee Related JP4406711B2 (ja) 2005-02-16 2005-02-16 画像データ処理方法および画像データ処理装置

Country Status (1)

Country Link
JP (1) JP4406711B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8306348B2 (en) * 2007-04-24 2012-11-06 DigitalOptics Corporation Europe Limited Techniques for adjusting the effect of applying kernels to signals to achieve desired effect on signal
JP5602532B2 (ja) * 2010-07-30 2014-10-08 オリンパス株式会社 画像処理装置および画像処理方法
JP5742179B2 (ja) * 2010-11-05 2015-07-01 ソニー株式会社 撮像装置、画像処理装置、および画像処理方法、並びにプログラム
JP6058924B2 (ja) * 2012-07-04 2017-01-11 キヤノン株式会社 画像処理装置、制御方法、及びプログラム
JP7349808B2 (ja) 2019-03-20 2023-09-25 任天堂株式会社 画像表示システム、画像表示プログラム、画像表示装置、および画像表示方法
JP7301567B2 (ja) * 2019-03-20 2023-07-03 任天堂株式会社 画像表示システム、画像表示プログラム、画像表示装置、および画像表示方法

Also Published As

Publication number Publication date
JP2006229383A (ja) 2006-08-31

Similar Documents

Publication Publication Date Title
JP4702233B2 (ja) 画像データ処理装置および画像データ処理方法
JP4310645B2 (ja) 撮像画像信号の歪み補正方法および撮像画像信号の歪み補正装置
JP4340915B2 (ja) 撮像画像信号の歪み補正方法、撮像画像信号の歪み補正装置、撮像方法および撮像装置
JP4389779B2 (ja) 撮像画像信号の歪み補正方法および撮像画像信号の歪み補正装置
US8264551B2 (en) Methods for correcting distortions of image-taking video signals and apparatus for correcting distortions of image-taking video signals
US8009337B2 (en) Image display apparatus, method, and program
JP2012075018A (ja) 再生装置及び方法、並びにプログラム
JP4406711B2 (ja) 画像データ処理方法および画像データ処理装置
KR20080013674A (ko) 촬상 장치 및 방법
JP2008167293A (ja) 撮像装置および撮像方法
JP4403409B2 (ja) 画像データ処理方法および画像データ処理装置
JP5820720B2 (ja) 撮像装置
JP4225241B2 (ja) 画像表示装置
JP5959194B2 (ja) 撮像装置
JP4453559B2 (ja) 画像データ処理方法および画像データ処理装置
JP2006203334A (ja) 画像記録装置及びその制御方法、並びにプログラム
JP2005012423A (ja) 撮像装置及び信号処理装置
CN107615742B (zh) 显示控制装置和摄像装置
JP3700488B2 (ja) 広角画像撮像装置
KR20110048250A (ko) 디지털 영상 신호 처리 장치 및 방법
JP4239811B2 (ja) 撮像装置
JP2000115694A (ja) 画像データ記録方法、画像データ記録装置、画像データ再生方法、画像データ再生装置、情報記録媒体及びコンピュータ読み取り可能な記録媒体
JP2001358981A (ja) 撮像装置およびその方法およびその制御プログラムを記憶した記憶媒体
JP2000115693A (ja) 画像データ記録方法、画像データ記録装置、画像データ再生方法、画像データ再生装置、情報記録媒体及びコンピュータ読み取り可能な記録媒体
JP2012124624A (ja) 撮像装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090722

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090807

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: 20090929

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091002

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091012

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees