JP2010028758A - 画像処理装置及び方法、プログラム、並びに撮像装置 - Google Patents
画像処理装置及び方法、プログラム、並びに撮像装置 Download PDFInfo
- Publication number
- JP2010028758A JP2010028758A JP2008191130A JP2008191130A JP2010028758A JP 2010028758 A JP2010028758 A JP 2010028758A JP 2008191130 A JP2008191130 A JP 2008191130A JP 2008191130 A JP2008191130 A JP 2008191130A JP 2010028758 A JP2010028758 A JP 2010028758A
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- image data
- image processing
- image
- bus
- 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.)
- Withdrawn
Links
- 238000012545 processing Methods 0.000 title claims abstract description 196
- 238000000034 method Methods 0.000 title claims description 62
- 238000003384 imaging method Methods 0.000 title claims description 36
- 239000000872 buffer Substances 0.000 claims abstract description 307
- 238000006073 displacement reaction Methods 0.000 claims abstract description 15
- 230000008569 process Effects 0.000 claims description 52
- 238000012546 transfer Methods 0.000 claims description 19
- 230000004075 alteration Effects 0.000 claims description 17
- 238000003672 processing method Methods 0.000 claims description 5
- 238000012937 correction Methods 0.000 abstract description 140
- 238000006243 chemical reaction Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 6
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 2
- 241000226585 Antennaria plantaginifolia Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Storing Facsimile Image Data (AREA)
- Editing Of Facsimile Originals (AREA)
- Studio Devices (AREA)
- Image Input (AREA)
- Image Processing (AREA)
Abstract
【課題】バッファの管理を容易にすることができるようにする。
【解決手段】メモリ19に格納された画像データは、バス24を介して水平歪補正部51にラスタ入力され、水平歪補正部51によって水平歪補正処理が施され、垂直歪補正部52によって垂直歪補正処理が施され、バッファ53に格納される。バッファ53においては、歪補正処理が施された画像データにおける横方向の幅がバス出力単位の1以上の整数倍となるように複数のブロックに分割され、各ブロックの縦サイズが、歪補正処理が施された画像データの走査方向の1ライン分の入力の各ブロック内での縦方向の最大変位量以上とされており、バス出力単位の1以上の整数倍分溜まったとき、その溜まった分の画像データを出力することで、バッファの管理を容易にすることができる。本発明はデジタルスチルカメラに適用することができる。
【選択図】図4
【解決手段】メモリ19に格納された画像データは、バス24を介して水平歪補正部51にラスタ入力され、水平歪補正部51によって水平歪補正処理が施され、垂直歪補正部52によって垂直歪補正処理が施され、バッファ53に格納される。バッファ53においては、歪補正処理が施された画像データにおける横方向の幅がバス出力単位の1以上の整数倍となるように複数のブロックに分割され、各ブロックの縦サイズが、歪補正処理が施された画像データの走査方向の1ライン分の入力の各ブロック内での縦方向の最大変位量以上とされており、バス出力単位の1以上の整数倍分溜まったとき、その溜まった分の画像データを出力することで、バッファの管理を容易にすることができる。本発明はデジタルスチルカメラに適用することができる。
【選択図】図4
Description
本発明は、画像処理装置及び方法、プログラム、並びに撮像装置に関し、特に、画像処理の効率を上げることができるようにした画像処理装置及び方法、プログラム、並びに撮像装置に関する。
近年、CCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサ等の撮像素子によって画像を撮像する撮像装置が普及している。
撮像素子から取り込んだ画像は、レンズの歪などの影響により、理想的な画像から比べると収差を持っているため、通常、それを取り除くために収差の補正が行われる。
レンズに起因する画像の収差を補正する技術としては、たとえば、特許文献1及び2が知られている。
特開2001−101396号公報
特開2007−180898号公報
しかしながら、従来の技術であると、収差補正処理を実行するときのアドレスの管理に無駄が多いため、結果として、バッファの管理が複雑になるという問題があった。
たとえば、特許文献1に開示されている技術は、入力部にバッファを備えており、フィルタに必要となる部分や読み出しアドレスをDMAC(Direct Memory Access Controller)に設定しなければならない関係上、歪補正演算部と入力部の両方の設定アドレス計算において、同じ歪データを使用してアドレス計算をすることになるため、制御が複雑になるという問題がある。また、特許文献1の技術においては、フィルタに必要な余分なデータの保持量についても計算する必要があり、この計算をしない場合には、複数回の読み出しを行うか、あるいはメモリを余分に持つ必要が出てくる。
また、たとえば、特許文献2に開示されている技術では、入力アドレスを出力基準で設定する関係上、歪補正演算部と入力部の両方で歪アドレスが必要となるため、制御が複雑になるという問題がある。また、特許文献2の技術においては、入力部にバッファを備えており、フィルタに必要となる余分なデータの保持量を計算する必要があるため、この計算をしない場合には、複数回の読み出しを行うか、あるいはメモリを余分に持たなければならない。
本発明はこのような状況に鑑みてなされたものであり、バッファの管理を容易にすることができるようにするものである。
本発明の第1の側面の画像処理装置は、画像全体又は画像の一部に対応する画像データに対し、所定の画像処理を行う第1の画像処理手段と、前記画像処理が施された前記画像データを一時的に格納し、後段の処理を行う装置に接続されたバスに順次出力するバッファとを備え、前記バッファは、前記画像処理が施された前記画像データにおける横方向の幅が複数のブロックに分割され、各ブロックの縦サイズが、前記画像処理が施された前記画像データの走査方向の1ライン分の入力の各ブロック内での縦方向の最大変位量以上とされており、前記画像処理が施された前記画像データの走査方向に前記バスの最小転送単位の1以上の整数倍分溜まったとき、その溜まった分の前記画像データを前記バスへ出力する。
前記複数のブロックは、前記横方向の幅が前記バスの最小転送単位の1以上の整数倍となるように分割される。
前記バッファにおいて、各ブロック内は、ライン単位でのリングバッファの構成となっている。
前記各ブロック毎に、ブロックの縦サイズが異なる。
前記各ブロック毎に、ブロックの横サイズが異なる。
前記第1の画像処理手段は、前記画像処理として、レンズに起因する歪を有する画像データに含まれる前記歪を補正する処理を行う。
前記第1の画像処理手段は、前記画像処理として、レンズに起因する色収差を有する画像データに含まれる前記色収差を補正する処理を行う。
前記バッファは、前記複数のブロックに分割された状態と、分割されていない1つのブロックの状態とで切り替え可能である。
画像全体又は画像の一部に対応する画像データに対し、所定の画像処理を行う第2の画像処理手段をさらに備え、前記バスでの転送先が前記バッファの前記バスへの出力と異なる順序の入力を要求する前記第2の画像処理手段である場合、前記バッファは、前記分割されていない1つのブロックの状態となる。
前記バッファは、前記第1の画像処理手段からの入力を受ける第1のバッファと、前記第1のバッファの出力を受け、前記バスへ出力する第2のバッファとから構成され、前記第1のバッファの入力単位は、第2のバッファの入力単位よりも小さくなる。
本発明の第1の側面の画像処理方法は、画像全体又は画像の一部に対応する画像データに対し、所定の画像処理を行う画像処理手段と、画像処理が施された前記画像データを一時的に格納し、後段の処理を行う装置に接続されたバスに順次出力するバッファとを備える画像処理装置の画像処理方法において、前記バッファは、前記画像処理が施された前記画像データにおける横方向の幅が複数のブロックに分割され、各ブロックの縦サイズが、前記画像処理が施された前記画像データの走査方向の1ライン分の入力の各ブロック内での縦方向の最大変位量以上とされており、前記画像処理が施された前記画像データの走査方向に前記バスの最小転送単位の1以上の整数倍分溜まったとき、その溜まった分の前記画像データを前記バスへ出力するように、前記画像データの書き込みと読み出しを制御するステップを含む。
本発明の第1の側面のプログラムは、上述した本発明の第1の側面の画像処理方法に対応するプログラムである。
本発明の第1の側面においては、画像全体又は画像の一部に対応する画像データに対し、所定の画像処理が実行され、画像処理が施された画像データが一時的に格納され、後段の処理を行う装置に接続されたバスに順次出力される。このとき、画像処理が施された画像データにおける横方向の幅が複数のブロックに分割され、各ブロックの縦サイズが、画像処理が施された画像データの走査方向の1ライン分の入力の各ブロック内での縦方向の最大変位量以上とされ、画像処理が施された画像データの走査方向にバスの最小転送単位の1以上の整数倍分溜まったとき、その溜まった分の画像データが前記バスへ出力される。
本発明の第2の側面の撮像装置は、被写体を撮像する撮像手段と、撮像された画像全体又は画像の一部に対応する画像データに対し、所定の画像処理を行う第1の画像処理手段と、前記画像処理が施された前記画像データを一時的に格納し、後段の処理を行う装置に接続されたバスに順次出力するバッファとを備え、前記バッファは、前記画像処理が施された前記画像データにおける横方向の幅が複数のブロックに分割され、各ブロックの縦サイズが、前記画像処理が施された前記画像データの走査方向の1ライン分の入力の各ブロック内での縦方向の最大変位量以上とされており、前記画像処理が施された前記画像データの走査方向に前記バスの最小転送単位の1以上の整数倍分溜まったとき、その溜まった分の前記画像データを前記バスへ出力する。
本発明の第2の側面においては、被写体が撮像され、撮像された画像全体又は画像の一部に対応する画像データに対し、所定の画像処理が実行され、画像処理が施された画像データが一時的に格納され、後段の処理を行う装置に接続されたバスに順次出力される。このとき、画像処理が施された画像データにおける横方向の幅が複数のブロックに分割され、各ブロックの縦サイズが、画像処理が施された画像データの走査方向の1ライン分の入力の各ブロック内での縦方向の最大変位量以上とされ、画像処理が施された画像データの走査方向にバスの最小転送単位の1以上の整数倍分溜まったとき、その溜まった分の画像データが前記バスへ出力される。
以上のように、本発明の第1の側面によれば、画像データを格納するバッファの管理を容易にすることができる。
また、本発明の第2の側面によれば、撮像された画像データを格納するバッファの管理を容易にすることができる。
以下、図面を参照しながら本発明の実施の形態について説明する。
図1は、本発明を適用した撮像装置の一実施の形態の構成を示す図である。
撮像装置1は、たとえば、デジタルスチルカメラやカムコーダなどの被写体を撮像する機器である。本実施の形態においては、撮像装置1として、デジタルスチルカメラを一例にして説明する。
図1に示すように、撮像装置1は、レンズ部11、撮像部12、A/D変換部13、カメラ信号処理部14、CPU15、ROM16、RAM17、操作部18、メモリ19、リサイズ歪補正部20、ディスプレイ21、画像圧縮部22、及びストレージ23を含むように構成される。また、カメラ信号処理部14ないしストレージ23は、バス24を介して相互に接続される。
撮像部12は、たとえばCCDセンサやCMOSセンサ等の撮像素子により構成され、レンズ部11を介して入射する被写体からの光を受光して光電変換を行い、(光の)受光量に応じた電気信号としてのアナログの画像信号を、A/D変換部13に供給する。なお、図示はしていないが、撮像部12から出力されるアナログ画像信号は、増幅などの所定のアナログ信号処理が施された後、A/D変換部13に入力される。
A/D変換部13は、撮像部12から供給されるアナログの画像信号をA/D(Analog/Digital)変換し、その結果得られるデジタル信号で示される画像データを、カメラ信号処理部14に供給する。
カメラ信号処理部14は、CPU15の制御にしたがい、A/D変換部13からの画像データに対し、たとえば、ホワイトバランス調整、ガンマ補正、シャープネス補正等の各種補正処理、及び、RGBデータをYC信号に変換するYC変換処理といった所定のデジタル信号処理を施す。カメラ信号処理部14により所定のデジタル信号処理が施された画像データは、メモリ19に一旦格納される。
メモリ19には、たとえば、SRAM(Static Random Access Memory)やSDRAM(Synchronous DRAM)といった大容量のメモリを一般に用いることができる。
リサイズ歪補正部20は、メモリ19に格納された補正前の画像データを読み出して、光学歪を補正し、補正後の画像データをメモリ19に書き込む。また、リサイズ歪補正部20は、メモリ19に格納された画像データに対し、必要に応じてリサイズ処理を行う。なお、メモリ19とリサイズ歪補正部20の詳細については後述する。
そして、メモリ19に格納された補正後の画像データは、ディスプレイ21に供給されて、表示される。
また、画像圧縮部22は、メモリ19に格納された補正後の画像データを読み出して、JPEG(Joint Photographic Experts Group)方式などで圧縮し、その結果得られる圧縮画像データを、ストレージ23に供給して記録させる。また、画像圧縮部22は、ストレージ23に記録された圧縮画像データを所定の方式で伸張し、その結果得られる画像データを、ディスプレイ21に供給して表示させる。
ストレージ23は、たとえば、メモリカードなどの半導体メモリや、DVD(Digital Versatile Disc)などのリムーバブル記録媒体などであり、撮像装置1に対して、容易に着脱可能となっている。
CPU(Central Processing Unit)15は、ROM(Read Only Memory)16に記録されているプログラムを実行することにより、撮像装置1を構成する各部を制御し、また操作部18からの操作信号に応じて、各種の処理を行う。操作部18は、ユーザによって操作され、その操作に対応した操作信号を、CPU15に供給する。
ROM16は、CPU15が実行するプログラム、さらには、CPU15がプログラムを実行する上で必要なデータを記憶している。RAM(Random Access Memory)17は、CPU15が各種の処理を行う上で必要なプログラムやデータを一時的に記憶する。
なお、CPU15に実行させるプログラムは、あらかじめROM16にインストール、すなわち記録させておく他、ストレージ23に記録しておき、パッケージメディアとしてユーザに提供して、そのストレージ23からROM16に記録させ、撮像装置1にインストールすることができる。また、CPU15に実行させるプログラムは、ダウンロードサイトから撮像装置1に直接ダウンロードし、あるいは、図示せぬコンピュータでダウンロードして、撮像装置1に供給し、ROM16に記録させ、撮像装置1にインストールすることも可能である。
以上のように構成される撮像装置1においては、撮像部12が、レンズ部11を介して入射する被写体からの光を受光して光電変換を行い、その結果得られるアナログの画像信号を出力する。撮像部12が出力するアナログの画像信号は、A/D変換部13を介することにより、デジタル信号の画像データとされ、カメラ信号処理部14に供給される。
カメラ信号処理部14は、A/D変換部13からの画像データをメモリ19に格納させ、リサイズ歪補正部20に歪補正させた後、ディスプレイ21に供給し、これにより、ディスプレイ21では、いわゆるスルー画が表示される。
その後、ユーザが、操作部18の一部であるシャッタボタンを操作すると、その操作に応じた信号が、操作部18からCPU15に供給される。CPU15は、操作部18からシャッタボタンに応じた操作信号が供給されると、そのときA/D変換部13からカメラ信号処理部14に供給された画像データをメモリ19に格納させ、リサイズ歪補正部20に歪補正させた後、画像圧縮部22に供給して圧縮させ、その結果得られる圧縮画像データを、ストレージ23に記録させる。
以上のようにして、いわゆる写真撮影が行われる。
ところで、上述したように、撮像部12により取り込まれた画像データは、レンズ部11を構成している各レンズの歪などの影響によって、理想的な画像データから比べると、歪(収差)を持っているため、それを取り除く必要がある。本実施の形態においては、そのような歪を取り除くために、リサイズ歪補正部20によって、歪を補正する処理が行われる。
そこで、次に、かかる歪補正処理の詳細について説明する。
なお、本実施の形態のリサイズ歪補正部20で実行される歪補正処理と、従来から行われている歪補正処理との違いを分かり易く説明するために、はじめに、図2及び図3を参照して、従来からの歪補正処理を説明し、その後、図4以降の図面を参照して、本実施の形態のリサイズ歪補正部20で実行される歪補正処理について説明する。
図2は、従来の歪補正処理を説明するための図である。
従来の撮像装置において、メモリ31には、カメラ信号処理部(図示せず)によって所定のデジタル信号処理が施された被写体の画像データが一旦格納される。リサイズ歪補正部32は、メモリ31に格納された補正前の画像データを読み出して歪を補正し、補正後の画像データをメモリ31に書き込む。
具体的には、図2に示すように、リサイズ歪補正部32において、メモリからラスタ入力された画像データは、水平歪補正部41によって、水平方向に歪補正された後、内部のバッファ43にラスタ走査順で書き込まれる。その後、バッファ43に格納された画像データは、垂直歪補正部42によって、垂直歪補正後にラスタとなるように歪に合わせて読み出され、垂直歪補正が行われる。そして、水平歪補正と垂直歪補正が施された画像データは、ラスタ走査順にメモリ31に出力される。
この場合におけるバッファ43のサイズであるが、画像の拡大縮小がなければ、横方向は出力横サイズとなり、縦方向は出力1ラインの垂直最大歪量となる。たとえば、水平方向対し、最大10%の垂直方向の歪がある場合には、横1920ピクセル、縦192ピクセル(1920ピクセル×10%)となるので、1ピクセル当たり16ビット必要であるとすると、バッファ量としては、1920×192×16ビット=5760kビットが必要となる。
また、図3は、従来の撮像装置において、水平歪補正部41による水平歪補正と、垂直歪補正部42による垂直歪補正が施された画像データを、バッファ43に格納して、ラスタ出力する構成を示すものである。この場合においても、垂直歪補正によって、ラスタ入力された画像データを歪に合わせて出力するため、画像の拡大縮小がなければ、上記の図2の場合と同様のバッファサイズが必要となる。
すなわち、図3の構成においても、バッファ43のサイズは、横方向が出力横サイズで、縦方向が出力1ラインの垂直最大歪量となるので、たとえば、図2の場合と同様に、水平方向に対して最大10%の垂直方向の歪がある場合には、バッファ量としては、1920×192×16ビット=5760kビットが必要となる。
以上のように、従来の歪補正処理では、画像全体に対する垂直方向の歪に応じてバッファサイズを確保する必要があるために、大きなサイズのバッファを用意しなければならなかった。
次に、図4を参照して、本発明の歪補正処理について説明する。
なお、図4では、説明の都合上、図1の撮像装置1を構成するブロックのうち、歪補正処理に関係しているメモリ19及びリサイズ歪補正部20のみを図示しており、図1に示したように実際には、メモリ19とリサイズ歪補正部20とは、バス24を介して接続されている。
図4に示すように、リサイズ歪補正部20は、水平歪補正部51、垂直歪補正部52、及びバッファ53を含むようにして構成される。
メモリ19に格納された補正前の画像データは、バス24を介して水平歪補正部51にラスタ入力される。水平歪補正部51は、メモリ19からラスタ入力される補正前の画像データに対して水平歪補正処理を施し、それにより得られる水平歪補正後の画像データを、垂直歪補正部52に供給する。
垂直歪補正部52は、水平歪補正部51からラスタ入力される水平歪補正が施された画像データに対し、垂直補正処理を施し、それにより得られる垂直歪補正後の画像データを歪に合わせてバッファ53に格納する。すなわち、バッファ53に格納される補正後の画像データは、水平歪補正と垂直歪補正の両方が施されたものとなる。
バッファ53は、たとえば、図5に示すように、書き込み制御部54の制御にしたがって、垂直歪補正部52から供給される補正後の画像データを格納する。バッファ53に格納された補正後の画像データは、読み出し制御部55によってバッファ53が制御されることで、バス24への出力単位(本実施の形態において、かかる出力単位はバス24の最小転送単位を意味しており、以下、この単位のことを、バス出力単位とも称して説明する)で出力され、バス24を経由してメモリ19に書き込まれる。すなわち、図4のリサイズ歪補正部20は、図2及び図3のリサイズ歪補正部32のようにラスタ出力するのではなく、バス出力単位で出力を行う。
ここで、図6を参照して、バッファ53の詳細な構成について説明する。
図6に示すように、バッファ53は、画像データを格納するためのバッファ本体の領域の他に、外部メモリ書き込みライン数、先頭ライン位置、及び書き込み管理フラグを管理するための領域を有する。
図6において、バッファ本体は、複数のラインからなり、空いているラインを使いまわすことで、リングバッファとして構成される。また、それらのラインには、書き込み管理フラグが1ラインに対し複数対応付けられている。この書き込み管理フラグは、ライン全体が書き込まれたか否かを管理するためのフラグである。ここでは、たとえば、書き込み管理フラグとして、バッファ書き込み最小単位が1ビットで管理される。この場合、ライン全体のフラグが書き込み済みであることを示しているとき、バス出力単位となって、そのラインのバッファ本体に格納された画像データがバス24に出力されることになる。
具体的には、図7の(a)に示すように、たとえば、4つのブロックに分割されたバッファ53においては、図中のハッチングが施された領域を書き込み済みの部分であるとすると、書き込み済みの領域が順次増えるに従って、図7の(b)のように、分割されたバッファ53の1ラインがすべて書き込まれる(図7の(b)の右側から1番目のブロック(以下、ブロックAという。また同様に説明の都合上、右側から2,3,4番目のブロックをそれぞれ、ブロックB,ブロックC,ブロックDという))。
そして、ブロックAにおいて1ライン分の画像データが溜まると、そのライン全体の書き込み管理フラグがすべて立っているので、その1ライン分の画像データはバス24に出力される。すなわち、バッファ53は、補正後の画像データにおける横方向の幅がバス24への出力単位の1以上の整数倍となるようにブロックA,B,C,Dに4分割されているので、たとえば、ブロックAにおいて1ライン分の画像データが溜まると(バス出力単位(バス24の最小転送単位)の1以上の整数倍分溜まると)、バス出力単位となり出力されることになる。
なお、分割された各ブロックの1ラインは、バス24の最小転送単位の1以上の整数倍なので、複数回に分けてバス24へ出力することも可能である。また、1つのブロックの1ラインは、バス24の最小転送単位の1以上の整数倍でなくとも、複数のブロックを組み合わせてバスの最小転送単位で出力するようにしてもよい。
そして、これは、分割されたバッファ53の横方向に対する最大垂直変位量を縦サイズとすることができることを意味する。すなわち、図8に示すように、横方向のバス出力単位に対する各ブロックの縦サイズには、そのバス出力単位内での縦方向の最大変位量以上のサイズが設定される。
その後、1ライン分を出力することで空いた領域は、図7の(c)に示すように、ブロックAの最後の領域に繋げて、リングバッファとして次に使いまわす。
同様にして、さらに、バッファ53における書き込み済みの領域が増えると、図7の(d)に示すようになる。すなわち、上記のブロックAと同様にして、ブロックB,C,Dにおいても、それぞれ、1ライン分の画像データがバス出力単位でバス24に順次出力され、出力後の空いた領域が対象のブロックの最後に繋げられて、それぞれのブロックは、リングバッファとして機能する。
このように、ブロックA,B,C,Dがそれぞれリングバッファとして機能してバス出力単位で画像データを出力することにより、たとえば、図9に示すようになる。すなわち、図9においては、出力画像全体が外側の大きい四角で表され、ブロックA,B,C,Dのそれぞれに格納された画像がその内部の小さな4つの四角で表される。たとえば、太線で囲まれた小さな四角で表されるブロックAでは、「外部メモリ書き込みライン数」で示される範囲の画像に対応する画像データがバス24を介してメモリ19に出力された分の画像データとなる。
つまり、図9のブロックAに対応する領域(図中の太線で囲まれた小さな四角)は、画像データを出力する度に図中下側にずれるので、「外部メモリ書き込みライン数」は、ブロックAの先頭のラインが画像全体のどのラインとなるかを示す情報であるとも言える。この情報が、図6の外部メモリ書き込みライン数に相当する。
図6に戻り、外部メモリ書き込みライン数は、図9で説明したように、外部メモリ(メモリ19)に書き込み済みのライン数、すなわち、先頭のラインが画像全体のどのラインとなるかを示す情報である。
また、先頭ライン位置は、リングバッファとして構成されるバッファ本体の先頭ラインの物理的な位置を示す情報である。なお、図6において、外部メモリ書き込みライン数から先頭ライン位置を判定できる場合には、先頭ライン位置に関する情報を保持する必要はなく、その外部メモリ書き込みライン数から先頭ライン位置に関する情報を取得すればよい。
以上のようにして、バッファ53は構成される。
図4に戻り、上述したように、リサイズ歪補正部20によって実行される歪補正処理で用いられるバッファ53のサイズであるが、横方向は出力横サイズとなり、縦方向はバス出力単位の最大垂直変位量(垂直最大歪量)となる。すなわち、図2及び図3の従来の歪補正処理のバッファ43であれば、縦方向は出力1ラインの垂直最大歪量となるため、図4の場合のバス出力単位の垂直最大歪量と比べて、そのサイズが大きくなる。
たとえば、バス出力単位(128ピクセル)に対し、最大20%の垂直方向の歪がある場合には、横1920ピクセル、横26ピクセル(≒128ピクセル×20%)となるので、バッファ量としては、1920×26×(16ビット+1ビット)=829kビットとなる。なお、垂直方向の歪の割合は、レンズ部11により決定される値であって、ここでは、たとえば20%などの値が適宜設定される。
これは、図2及び図3を参照して説明した従来のリサイズ歪補正部32で用いられるバッファ43のサイズと比べて、明らかに必要なバッファ量が少なくて済むことを意味する。従って、図4の構成を採用することで、バッファ53におけるバッファ量を削減することができる。
また、図4のリサイズ歪補正部20においては、出力側にバッファ53を設けて、図6に示したように、バッファ53に格納された補正後の画像データを管理フラグ(書き込み管理フラグ)によって管理することで、歪補正部(水平歪補正部51,垂直歪補正部52)だけでアドレスを演算させることが可能となる。そして、リサイズ歪補正部20では、バッファ53にバス出力単位の画像データが溜まったとき、その溜まった分の画像データを指定されたアドレスに書き出すので、バッファ53の管理が容易になる。これにより、同一の画像データを複数回に渡って読み出す必要もないし、さらに、その管理も必要ないといった利点も生じる。
なお、図4のバッファ53においては、図10に示すように、バッファ内での位置によって、縦方向のライン数を変えたり、あるいは、横方向の幅を変えたりすることも可能である。
たとえば、図10の(a)に示すように、画像全体のうち、中央部に比べて左右両端の画像の歪が大きい場合、横方向の幅はバス出力単位で一定のままに、縦方向のライン数を左右両端ほど多くしてもよい。これにより、バッファ53では、両端に歪のある画像にも対応可能となる。
また、画像全体のうち、中央部に比べて左右両端の画像の歪が大きい場合、図10の(b)に示すように、縦方向のライン数は一定のままで、横方向の幅を、歪の小さい中央部では広くし、他方、歪の大きい左右両端では狭くしてもよい。これにより、バッファ53では、両端に歪のある画像にも対応可能となる。
逆に、図10の(c)に示すように、画像全体のうち、左右両端の画像に比べて中央部の画像の歪が大きい場合、横方向の幅はバス出力単位で一定のままに、縦方向のライン数を中央部ほど多くしてもよい。これにより、バッファ53では、中央部に歪のある画像にも対応可能となる。
たとえば、デジタルスチルカメラ等の撮像装置1においては、ワイド端とテレ端では歪の出かたが異なるものであり、一般的に、テレ端では糸巻き型に歪み、ワイド端では樽型に歪む傾向がある。このような場合、たとえば、テレ端用のバッファ構成と、ワイド端用のバッファ構成のテーブルとを別にしてあらかじめ用意しておき、写真撮影時に、ユーザによって、操作部18の一部であるズームボタンが操作されたとき、ワイド側へのズームか、あるいはテレ側へのズームかによって読み出すテーブルを切り替えることで、画像における歪の位置に応じたバッファ構成を実現できる。
また、本実施の形態においては、ラスタ入力の場合を説明するために、横方向にバッファ53を分割している例について説明しているが、入力がラスタではなく、縦方向の場合には縦方向にバッファ53を分割してもよい。さらに、本実施の形態においては、分割されたバッファ53の1ライン毎に、バス24を経由したメモリ19への出力位置を管理することで、図6に示したようなリングバッファの構成ではなく、任意の位置のバッファとすることも可能である。
ところで、図4の例では、リサイズ歪補正部20において、バッファ53として、1つのバッファから構成される1段の例について説明したが、バッファの数は1段に限らず、図11に示すように、2段以上とすることも可能である。
図11において、水平歪補正部51と、垂直歪補正部52の後段には、バッファ53Aとバッファ53Bの2つのバッファが2段で配置されている。簡単に説明すると、バッファ53Aは小さい単位での入出力、バッファ53Bは大きい単位での入出力を行うバッファである。
すなわち、バッファ53Aの入力単位、バッファ53Aの出力単位(図11のバッファ53A内に示されたバッファ53Bへの出力単位)、バッファ53Bの入力単位、及びバス出力単位(図11のバッファ53B内に示されたバス24への出力単位)のそれぞれは、次の式(1)の関係を有する。
「バッファ53Aの入力単位」<「バッファ53Aの出力単位」=「バッファ53Bの入力単位」<「バス出力単位」 ・・・(1)
このように、リサイズ歪補正部20においては、2段階のバッファにより画像データを分割し、バッファ53Aをいわばキャッシュのように用いることによって、小さい粒度で入出力する画像データのバッファ量を削減することが可能となる。また、共用や帯域向上を行いやすい粒度の大きいバッファ53Bを他と共用したり、バス幅を広げて帯域を増やしたりすることで、バッファ量の削減し、さらには性能の向上を図ることが可能となる。
また、リサイズ歪補正部20は、図12に示すように、水平歪補正部51と、垂直歪補正部52の後段に、分割バッファ53Aと非分割バッファ53Cの2つのバッファを2段で配置するといった構成を採用することもできる。この場合、分割バッファ53Aは、図11のバッファ53Aと同様に、格納している画像データを、後段の非分割バッファ53Cへの出力単位で出力する。非分割バッファ53Cは、分割バッファ53Aから非分割バッファ53Cへの出力単位で入力された画像データを一時的に格納し、その画像データを分割せずに、後段の画像処理部56にラスタ出力する。これにより、画像処理部56には、画像データがラスタ入力される。
すなわち、分割バッファ53Aの入力単位、分割バッファ53Aの出力単位(図11の分割バッファ53A内に示された非分割バッファ53Cへの出力単位)、及び非分割バッファ53Cの入力単位のそれぞれは、次の式(2)の関係を有する。
「分割バッファ53Aの入力単位」<「分割バッファ53Aの出力単位」=「非分割バッファ53Cの入力単位」 ・・・(2)
このように、リサイズ歪補正部20においては、2段階のバッファのうち、一方のバッファを非分割のバッファとすることで、後段のブロックに対し、ラスタ出力をすることが可能となる。
また、図13は、バッファの後段に、別のラスタ入力の画像処理部が接続される場合の例を示した図である。
図13の(a)は、図4に対応しており、画像処理部61は、図4の水平歪補正部51及び垂直歪補正部52に相当し、分割バッファ62は、図4のバッファ53に相当する。図13の(a)において、仮に、分割バッファ62の後段に、バス出力単位とは異なる順序での画像データの入力を要求する別の画像処理部が接続されるとすると、分割バッファ62は、バス出力単位での出力ができなくなる。
この場合、図13の(b)に示すように、分割バッファ62の代わりに、非分割バッファ63を設けることで、非分割バッファ63は、画像処理部61からの入力を分割せずに1ライン分溜まってから、画像処理部64(別の画像処理部)に出力するようにする。そして、画像処理部64には1ライン分の画像データが入力されるので、画像処理部64は、その画像データに対して、所定の画像処理を施し、出力する。
なお、図13の(b)のリサイズ歪補正部20において、2段階以上のバッファから構成される場合には、最終段のバッファのみを非分割バッファとして分割を行わず、その他のバッファは、分割バッファとすることができる。この場合、最大歪量を小さくするか、あるいは処理を行うライン長を減らす必要があるものの、画像データを直接転送できる点において利点がある。
また、1つのバッファにおいて、図13の(a)の分割バッファ62の機能と、図13の(b)の非分割バッファの機能とを切り替えられるようにしてもよい。すなわち、リサイズ歪補正部20において、画像処理部61に接続されたバッファは、分割バッファ62と非分割バッファ63の両方の機能を有し、その出力先に応じて、分割バッファ62として動作したり、非分割バッファ63として動作したりする。
さらに、図14の(b)に示すように、画像処理部61の前段に、別のラスタ出力を行う画像処理部64が接続された場合、画像処理部61は、画像処理部64からの画像データを直接転送により取得し、バッファを経由して画像処理単位を小さくしたりせずに、所定の画像処理を行うことができる。なお、説明を省略した、図14の(a)の構成は、図13の(a)と同様に、図4の構成に対応するものである。
次に、図15ないし図17を参照して、リサイズ歪補正部20において入出力される画像データの詳細について説明する。
図15に示すように、リサイズ歪補正部20においては、画像全体がラスタ入力された場合、画像処理部61によって所定の画像処理が施された画像データが分割バッファ62に順次格納され、バス出力単位で順次出力される。
また、図16に示すように、画像全体のうちの一部の画像のみがラスタ入力された場合であっても、リサイズ歪補正部20においては、画像処理部61によって所定の処理が施された一部の画像データが分割バッファ62に順次格納され、バス出力単位で順次出力される。
さらに、図17に示すように、リサイズ歪補正部20において、画像全体のうちの一部の画像が複数個入力された場合には、画像処理部61によって1ブロック分ずつ画像処理が施された画像データが、1ブロック分ずつ分割バッファ62に順次格納される。そして、分割バッファ62から出力された1ブロック分の画像データは、順次、非分割バッファ63に格納される。このとき、非分割バッファ63には、複数ブロック分の画像データが格納され、非分割バッファ63は、格納された画像データを分割せずに1ライン分溜まってから出力する。
このように、リサイズ歪補正部20においては、画像処理部61、分割バッファ62、又は非分割バッファ63によって、画像全体又は画像の一部などの入力される画像に応じた処理が適宜実行される。
次に、図18のフローチャートを参照して、リサイズ歪補正部20で実行される歪補正処理について説明する。
ステップS1において、水平歪補正部51は、メモリ19からラスタ入力される補正前の画像データに対し、水平歪補正処理を施し、それにより得られる画像データを、垂直歪補正部52に供給する。
ステップS2において、垂直歪補正部52は、水平歪補正部51から供給される画像データに対し、垂直補正処理を施し、それにより得られる画像データバッファ53に格納する。
ステップS3において、バッファ53は、垂直歪補正部52から供給される補正後の画像データを格納して、バス出力単位で出力する処理(以下、バッファ処理という)を実行する。
ここで、図19のフローチャートを参照して、バッファ53で実行されるバッファ処理の詳細について説明する。
ステップS11において、書き込み制御部54は、補正後の画像データを書き込むための水平方向のアドレス(以下、単に、水平アドレスという)から該当ブロック番号を決定する。これにより、たとえば、図7のバッファ53の4分割されたブロックAないしブロックDの中から画像データを書き込むブロックが決定される。
ステップS12において、書き込み制御部54は、該当ブロックの水平開始位置を取得する。たとえば、図7において、書き込み制御部54によって、画像データを書き込むと決定されたブロックAの水平開始位置として、ブロックAとブロックBとの境界の水平方向の位置が取得される。
そして、書き込み制御部54は、ステップS13において、水平アドレスから、取得した該当ブロックの水平開始位置を引く演算をし、ステップS14において、その減算結果を水平書き込みアドレスとする。
これにより、該当ブロックにおける水平方向の書き込みアドレスが求められたことになる。次に、垂直方向の書き込みアドレスを求める。
ステップS15において、書き込み制御部54は、該当ブロックの外部メモリ書き込みライン数(図6の外部メモリ書き込みライン数)を取得する。
そして、書き込み制御部54は、ステップS16において、補正後の画像データを書き込むための垂直方向のアドレス(以下、単に、垂直アドレスという)から、取得した外部メモリ書き込みライン数を引く演算をし、その減算結果に先頭ライン位置(図6の先頭ライン位置)を加算する演算をし、さらに、その演算結果をバッファライン数で割った余りを算出する。書き込み制御部54は、ステップS17において、ステップS16の処理で得られる演算結果を垂直書き込みアドレスとする。
これにより、該当ブロックにおける水平方向と垂直方向の書き込みアドレスが求められたことになる。
ステップS18において、書き込み制御部54は、水平書き込みアドレス(ステップS14の処理結果)と、垂直書き込みアドレス(ステップS17の処理結果)にしたがって、画像データを、バッファ53の該当ブロックに書き込む。
ステップS19において、書き込み制御部54は、書き込んだ画像データに対応する書き込み管理フラグを立てる。すなわち、図6においては、書き込み制御部54によって、水平書き込みアドレスと垂直書き込みアドレスにしたがって、バッファ本体(図6のバッファ本体)に画像データが書き込まれ、さらに、その画像データに対応する書き込み管理フラグ(図6の書き込み管理フラグ)が立てられることになる。
ステップS20において、読み出し制御部55は、図6の書き込み管理フラグを参照して、先頭ラインの書き込み管理フラグがすべて立っているか否かを判定する。
ステップS20において、先頭ラインの書き込み管理フラグがすべて立っていると判定された場合、読み出し制御部55は、ステップS21において、先頭ラインをバス24にバス出力単位で出力し、ステップS22において、その出力されたラインの書き込み管理フラグを消去する。そして、バス出力単位で出力された画像データは、メモリ19の指定されたアドレスに書き込まれる。
ステップS23において、読み出し制御部55は、先頭ライン位置(図6の先頭ライン位置)と、外部メモリ書き込みライン数(図6の外部メモリ書き込みライン数)の両方に1を加算し、さらに、先頭ライン位置のみバッファライン数で割った余りとする。そして、先頭ライン位置と外部メモリ書き込みライン数が変更された後、処理は、ステップS24に進む。
一方、ステップS20において、先頭ラインの管理フラグがすべて立っていないと判定された場合、バス出力単位となるまでバッファ本体には画像データがたまっていないので、ステップS21ないしステップS23をスキップして、処理は、ステップS24に進む。
ステップS24において、書き込み制御部54は、補正後の画像データのすべての書き込みが終了したか否かを判定する。
ステップS24において、補正後の画像データのすべての書き込みが終了していないと判定された場合、ステップS11に戻り、上述した、ステップS11ないしステップS24の処理が繰り返される。すなわち、ステップS11ないしステップS24の処理が繰り返されることで、補正後の画像データのすべての書き込みが終了するまで、バッファ53には、垂直歪補正部52から出力された補正後の画像データが順次格納され、バス出力単位で出力され、メモリ19の指定されたアドレスに順次書き込まれる。
そして、ステップS24において、補正後の画像データのすべての書き込みが終了したと判定された場合、処理は、図18のステップS3の処理に戻り、リサイズ歪補正部20によって実行される歪補正処理は終了する。
以上のように、リサイズ歪補正部20においては、水平歪補正部51による水平歪補正処理と、垂直歪補正部52による垂直歪補正処理ともラスタ入力で歪補正処理が実行され、補正後の画像データがバッファ53に歪に合わせて出力される。そして、バッファ53では、図6のバッファ構成を採用することで、補正後の画像データは、バッファ内で分割された各ブロック(図7ではブロックA,B,C,D)の1ラインがすべて書き込まれると(図6の書き込み管理フラグがすべて立つと)、バス24に出力され、空いた領域が使いまわされて、リングバッファとなる。これにより、図8に示したように、バッファ内で分割されたブロックの横方向に対する最大垂直変位を縦サイズとすることができるため、これは、画面全体に対する垂直方向の歪に応じて縦サイズを確保する場合(たとえば、図2,図3の場合)と比べて、明らかにバッファ量を削減することが可能となり、これは、バッファ53のサイズを小さくすることに繋がるものである。
換言すれば、バッファ53は、出力画像の横方向の幅がバス24への出力単位となるように複数のブロック(図7ではブロックA,B,C,D)に分割されており、バス24の出力単位がラスタの一部となるようにメモリ19に格納される。また、各ブロック内がライン単位でリングバッファ構成となっているため、各ブロックの縦サイズは、歪補正処理の1ラインの入力の処理結果における各ブロック内での縦方向の最大変位量以上となるのである。
また、リサイズ歪補正部20においては、出力側にバッファ53を設けて、バッファ53に格納される補正後の画像データを、図6の書き込み管理フラグによって管理するため、水平歪補正部51や垂直歪補正部52などの画像処理部のみでアドレスの計算をすることができる。そして、リサイズ歪補正部20では、バッファ53にバス出力単位の画像データが溜まったとき、その溜まった分の画像データを指定されたアドレスに書き出されるので、それ以外の制御を特に実行する必要がなく、バッファ53の管理が容易になる。また、同一の画像データを複数回に渡って読み出す必要もないし、さらに、その管理も必要ないといった利点も生じる。
なお、リサイズ歪補正部20による歪補正処理としては、たとえば、レンズ部11に起因する樽型歪曲収差や色収差などの歪を補正する処理が実行される。図20には、樽型歪曲収差を補正する例が図示され、図21には、色収差を補正する例が図示されている。
図20に示すように、リサイズ歪補正部20によって、図中左側の樽型歪曲収差を有する画像に対応する画像データに対して、中心から縦横方向にずれるに従い拡大する補正処理が施されることで、図中右側の歪補正された画像が得られる。
また、図21に示すように、リサイズ歪補正部20によって、図中左側の色収差を有する画像において、たとえば、Rの画像(赤:縦方向に3つ並んでいる画像のうち、上側の鎖線で人物が表された画像)、Gの画像(緑:真ん中の点線で人物が表された画像)、Bの画像(青:下側の実線で人物が表された画像)のそれぞれに対応する画像データに対し、所定の解像度変換処理を施す。そして、リサイズ歪補正部20は、解像度変換処理により得られた画像データのそれぞれを合成することで、図中右側の色収差の補正された画像が得られる。
このようにして、リサイズ歪補正部20においては、たとえば、樽側歪曲収差や色収差などの補正処理が実行される。
なお、本実施の形態においては、樽側歪曲収差や色収差などの補正処理が施された画像データを、バッファ53に格納する例について説明したが、バッファ53に格納する画像データは、他の画像処理が施された画像データであってもよい。その場合であっても、バッファ53においては、上述した、図19のフローチャートで説明した処理が実行されることになる。
ところで、バッファ53の構成であるが、図6に示した構成に限らず、それ以外の他の構成を採用することも可能である。そこで、次に、バッファ53の他の構成例について説明する。
バッファ53は、図6に示した構成以外の構成として、たとえば、図22の格納位置保持バッファと、図23のデータ保持バッファから構成されるようにすることができる。
図22に示すように、格納位置保持バッファは、その名称の如く、図23のデータ保持バッファに格納される画像データの格納位置を、リングバッファの機能により保持する。格納位置保持バッファは、先頭ライン番号、先頭ライン位置、及び格納位置情報に関する情報を格納する領域を有し、さらに、格納位置情報には、有効ビットが対応付けられている。
ここで、先頭ライン番号は、リングバッファの先頭ラインの画像上の番号を示す情報である。また、先頭ライン位置は、リングバッファの先頭ラインのリングバッファ上の物理的位置を示す情報である。なお、先頭ライン番号から先頭ライン位置を判定できる場合には、先頭ライン位置に関する情報を保持する必要はなく、その先頭ライン番号から先頭ライン位置に関する情報を取得すればよい。すなわち、格納位置保持バッファは、先頭ライン番号及び先頭ライン位置に関する情報に基づいて、格納位置情報と有効ビットとを関連付けて格納することにより、リングバッファとして機能する。
格納位置情報は、図23のデータ保持バッファに書き込む画像データを格納する位置に関する情報である。上述したように、この格納位置情報には、有効ビットが対応付けて格納される。有効ビットは、格納位置情報の有効又は無効を示すビットである。なお、この無効を示すものとしては、ありえない格納位置番号で代用することも可能である。たとえば、格納位置番号が1から始まる場合、0を無効とすることができる。また、格納位置保持バッファにおいては、歪補正を実行する水平歪補正部51及び垂直歪補正部52、並びにその他の画像処理部からの書き込みライン番号と、先頭ライン番号から読み出し位置が決定される。
また、図23に示すように、データ保持バッファにおいては、ライン画像データに関する情報を格納する領域と、有効ビット群に関する情報を格納する領域とが対応付けられている。ライン画像データにおいては、図22の格納位置保持バッファの格納位置情報に基づいて、書き込み位置が決定され、その決定された位置に、画像データが書き込まれる。そして、ライン画像データが書き込まれた場合には、書き込みラインを管理するためのフラグである有効ビット群のうちの対応するビットが立てられる。つまり、データ保持バッファにおいて、有効ビット群のすべての管理フラグの立っているライン画像データは、バス24に出力されることになる。
なお、図22の格納位置保持バッファの格納位置の数と、図23のデータ保持バッファのライン数との間には、次の式(3)の関係を有する。
「格納位置保持バッファの格納位置の数」≧「データ保持バッファのライン数」 ・・・(3)
言い換えれば、「格納位置保持バッファの格納位置の数」とは、同時に保持しなければならないラインの上端と下端の範囲の数であり、「データ保持バッファのライン数」とは、同時に保持しなければならないライン数となる。
以上のように、バッファ53においては、図22の格納位置保持バッファによって、ライン画像データの格納位置が管理され、実際の画像データが、図23のデータ保持バッファに保持される。
図22及び図23のバッファ構成を採用した場合、たとえば、図24に示すような画像処理を行う場合に特に有効である。
図24は、「ア」,「イ」,「ウ」からなる文字群が表示された左側の画像に対し、所定の画像処理を施すことで、右側の画像を取得する例を示している図である。この右側の画像に表示されている文字群は、所定の画像処理によって、「ア」と「ウ」は拡大され、「イ」の一部には、図中の点線で囲まれた領域で示すように、上下にミラー処理が施されている。
ここで、「ア」と「ウ」の一部と、「イ」の全部の領域を担当するバッファにおいて、書き込みの途中の様子を図示すると、図25のようになる。すなわち、図25のバッファの例においては、横方向がバス出力単位、縦方向がライン数を示しており、空き部分(図中の横長の楕円で囲まれた「空き部分」で示された領域)を含めた上端と下端の間のライン数が、図22の格納位置保持バッファの格納位置数と同じになる。このライン数は、図25の例では、5ラインとなる。また、この5ラインは空き部分も含んでいるため、その空き部分を除けば、同時に使用される最大ライン数は、図中の縦長の楕円で示すように、4ライン(=5ライン−空き部分の1ライン)となる。そして、この同時に使用される最大ライン数が、図23のデータ保持バッファのライン数と同じになる。
このように、かかる画像処理を行う場合には、上記の式(3)の関係、すなわち、空き部分を含めた上端と下端のライン数(格納位置保持バッファの格納位置の数)が、同時に使用される最大ライン数(データ保持バッファのライン数)以上となるような関係を満たしている。したがって、図22の格納位置保持バッファと、図23のデータ保持バッファからなるバッファ構成を採用すると好適である。
次に、図22の格納位置保持バッファと、図23のデータ保持バッファからなるバッファ構成を採用した場合における画像処理の一例として、リサイズ歪補正部20によって実行される歪補正処理について説明する。
なお、リサイズ歪補正部20によって実行される歪補正処理は、基本的に、上述した、図18の歪補正処理と同様であり、ステップS3の処理で実行されるバッファ処理だけが異なる。すなわち、図22及び図23のバッファ構成を採用した場合においては、ステップS3の処理として、図6のバッファ構成を採用した場合に実行される図19のバッファ処理の代わりに、図26及び図27のバッファ処理が実行される。
したがって、図26及び図27のフローチャートを参照して、バッファ53で実行されるバッファ処理の詳細について説明する。
ステップS31ないしステップS34において、図19のステップS11ないしステップS14の処理と同様に、書き込み制御部54によって、水平書き込みアドレスが求められる。
ステップS35において、書き込み制御部54は、該当ブロックの格納位置保持バッファの先頭ライン番号(図22の先頭ライン番号)と、先頭ライン位置(図22の先頭ライン位置)を読み出す。
そして、書き込み制御部54は、ステップS36において、垂直アドレスから先頭ライン番号を引く演算をし、その減算結果に先頭ライン位置を加算する演算をし、さらに、その演算結果を格納位置保持バッファ数で割った余りを算出する。書き込み制御部54は、ステップS37において、ステップS36の処理により得られる演算結果を位置として、格納位置保持バッファの管理フラグ(図22の有効ビット)を読み出す。
ステップS38において、書き込み制御部54は、読み出した格納位置保持バッファの管理フラグ(図22の有効ビット)が有効であるか否かを判定する。
ステップS38において、格納位置保持バッファの管理フラグが有効ではないと判定された場合、図27のステップS39において、書き込み制御部54は、データ保持バッファの管理フラグ(図23の有効ビット群)から空いているラインを探す。
ステップS40において、書き込み制御部54は、探索されたラインの格納位置を格納位置情報(図22の格納位置情報)として、格納位置保持バッファに書き込む。さらに、書き込み制御部54は、ステップS41において、格納位置保持バッファに書き込んだ格納位置情報に対応する管理フラグ(図22の有効ビット)を有効化する。そして、格納位置保持バッファに対して、格納位置情報と管理フラグを書き込んだ後、処理は、図26のステップS42に進む。これにより、画像データを書き込む準備ができたことになる。
一方、ステップS38において、格納位置保持バッファの管理フラグが有効であると判定された場合、画像データを書き込む準備は既にできているので、処理は、ステップS42に進む。
ステップS42において、書き込み制御部54は、格納位置保持バッファの格納位置情報(図22の格納位置情報)に基づいて、データ保持バッファのライン画像データ(図23のライン画像データ)に画像データを書き込む。さらに、書き込み制御部54は、ステップS43において、書き込んだ画像データに対応する管理フラグ(図23の有効ビット群)を立てる。すなわち、図23においては、書き込み制御部54によって、格納位置情報にしたがって、データ保持バッファに画像データが書き込まれ、さらに、その画像データに対応する管理フラグが立てられることになる。
ステップS44において、読み出し制御部55は、図23の有効ビット群を参照して、データ保持バッファの書き込み管理フラグがすべて立っているか否かを判定する。
ステップS44において、データ保持バッファの書き込み管理フラグがすべて立っていると判定された場合、読み出し制御部55は、ステップS45において、データ保持バッファの該当ラインをバス24に出力し、ステップS46において、その出力されたラインの管理フラグ(図23の有効ビット群)を消去する。
ステップS47において、読み出し制御部55は、データ保持バッファの該当ラインに対応する格納位置保持バッファの格納位置情報の管理フラグ(図22の有効ビット)を無効にする。
ステップS48において、読み出し制御部55は、格納位置保持バッファの該当格納位置情報が、リングバッファの先頭であるか否かを判定する。
ステップS48において、格納位置保持バッファの該当格納位置情報がリングバッファの先頭であると判定された場合、ステップS49において、読み出し制御部55は、格納位置保持バッファの先頭ライン番号(図22の先頭ライン番号)と、先頭ライン位置(図22の先頭ライン位置)の両方に先頭ライン位置からの連続した管理フラグ無効の数を加算し、さらに、先頭ライン位置のみバッファ数で割った余りとする。そして、先頭ライン番号と先頭ライン位置が変更された後、処理は、ステップS50に進む。
一方、ステップS48において、格納位置保持バッファの該当格納位置情報がリングバッファの先頭ではないと判定された場合、ステップS49の処理をスキップして、先頭ライン番号と先頭ライン位置は変更せずに、処理は、ステップS50に進む。また、上記のステップS44において、データ保持バッファの書き込み管理フラグがすべて立っていないと判定された場合、バス出力単位となるまでデータ保持バッファには画像データがたまっていないので、ステップS45ないしステップS49の処理をスキップして、処理は、ステップS50に進む。
ステップS50において、読み出し制御部55は、補正後の画像データのすべての書き込みが終了したか否かを判定する。
ステップS50において、補正後の画像データのすべての書き込みが終了していないと判定された場合、ステップS31に戻り、上述した、ステップS31ないしステップS50の処理が繰り返される。すなわち、ステップS31ないしステップS50の処理が繰り返されることで、補正後の画像データのすべての書き込みが終了するまで、バッファ53には、垂直歪補正部52から出力された補正後の画像データが順次格納され、バス出力単位で出力される。
そして、ステップS50において、補正後の画像データのすべての書き込みが終了したと判定された場合、処理は、図18のステップS3の処理に戻り、リサイズ歪補正部20によって実行される歪補正処理は終了する。
以上のように、本発明によれば、バッファの管理を容易にし、画像処理の効率を上げることができる。また、本発明によれば、歪補正処理などの画像処理を行うためのバッファのサイズを小さくすることができるため、画像処理単位を大きくして処理効率を上げて、コストを下げることができる。
また、前又は後の画像処理部と処理単位を合わせることが容易となるため、一旦外部メモリに書き込む必要がなくなり、たとえば、外部メモリ帯域、外部メモリ量、遅延時間、外部メモリ電力の削減を図ることができる。さらに、バッファを2段階とすることで、他の画像処理部と共用しにくく、アクセス速度を向上しにくい小さな粒度で入出力するメモリ量を削減することができるとともに、他の画像処理部と共用や入出力のビット幅を増やすなどのアクセス速度を向上させやすい大きな粒度で入出力するメモリの使用効率を高くすることが可能となる。
なお、本実施の形態においては、所定の画像処理を実行する機器として、撮像装置1を例にして説明したが、本発明は、たとえば、パーソナルコンピュータ、画像記録装置、画像再生装置、ディスプレイ装置、携帯電話機、ゲーム機などの所定の画像処理を実行する機器にも適用することができる。
また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
1 撮像装置, 11 レンズ部, 12 撮像部, 13 A/D変換部, 14 カメラ信号処理部, 15 CPU, 16 ROM, 17 RAM, 18 操作部, 19 メモリ, 20 リサイズ歪補正部, 21 ディスプレイ, 22 画像圧縮部, 23 ストレージ, 24 バス, 51 水平歪補正部, 52 垂直歪補正部, 53 バッファ, 54 書き込み制御部, 55 読み出し制御部, 56 画像処理部, 61 画像処理部, 62 分割バッファ, 63 非分割バッファ, 64 画像処理部
Claims (13)
- 画像全体又は画像の一部に対応する画像データに対し、所定の画像処理を行う第1の画像処理手段と、
前記画像処理が施された前記画像データを一時的に格納し、後段の処理を行う装置に接続されたバスに順次出力するバッファと
を備え、
前記バッファは、
前記画像処理が施された前記画像データにおける横方向の幅が複数のブロックに分割され、
各ブロックの縦サイズが、前記画像処理が施された前記画像データの走査方向の1ライン分の入力の各ブロック内での縦方向の最大変位量以上とされており、
前記画像処理が施された前記画像データの走査方向に前記バスの最小転送単位の1以上の整数倍分溜まったとき、その溜まった分の前記画像データを前記バスへ出力する
画像処理装置。 - 前記複数のブロックは、前記横方向の幅が前記バスの最小転送単位の1以上の整数倍となるように分割される
請求項1に記載の画像処理装置。 - 前記バッファにおいて、各ブロック内は、ライン単位でのリングバッファの構成となっている
請求項1に記載の画像処理装置。 - 前記各ブロック毎に、ブロックの縦サイズが異なる
請求項1に記載の画像処理装置。 - 前記各ブロック毎に、ブロックの横サイズが異なる
請求項1に記載の画像処理装置。 - 前記第1の画像処理手段は、前記画像処理として、レンズに起因する歪を有する画像データに含まれる前記歪を補正する処理を行う
請求項1に記載の画像処理装置。 - 前記第1の画像処理手段は、前記画像処理として、レンズに起因する色収差を有する画像データに含まれる前記色収差を補正する処理を行う
請求項1に記載の画像処理装置。 - 前記バッファは、前記複数のブロックに分割された状態と、分割されていない1つのブロックの状態とで切り替え可能である
請求項1に記載の画像処理装置。 - 画像全体又は画像の一部に対応する画像データに対し、所定の画像処理を行う第2の画像処理手段をさらに備え、
前記バスでの転送先が前記バッファの前記バスへの出力と異なる順序の入力を要求する前記第2の画像処理手段である場合、前記バッファは、前記分割されていない1つのブロックの状態となる
請求項8に記載の画像処理装置。 - 前記バッファは、
前記第1の画像処理手段からの入力を受ける第1のバッファと、
前記第1のバッファの出力を受け、前記バスへ出力する第2のバッファと
から構成され、
前記第1のバッファの入力単位は、第2のバッファの入力単位よりも小さくなる
請求項1に記載の画像処理装置。 - 画像全体又は画像の一部に対応する画像データに対し、所定の画像処理を行う画像処理手段と、画像処理が施された前記画像データを一時的に格納し、後段の処理を行う装置に接続されたバスに順次出力するバッファとを備える画像処理装置の画像処理方法において、
前記バッファは、前記画像処理が施された前記画像データにおける横方向の幅が複数のブロックに分割され、
各ブロックの縦サイズが、前記画像処理が施された前記画像データの走査方向の1ライン分の入力の各ブロック内での縦方向の最大変位量以上とされており、
前記画像処理が施された前記画像データの走査方向に前記バスの最小転送単位の1以上の整数倍分溜まったとき、その溜まった分の前記画像データを前記バスへ出力するように、前記画像データの書き込みと読み出しを制御する
ステップを含む画像処理方法。 - 画像全体又は画像の一部に対応する画像データに対し、所定の画像処理を行う画像処理手段と、画像処理が施された前記画像データを一時的に格納し、後段の処理を行う装置に接続されたバスに順次出力するバッファとを備える機器を制御するコンピュータに実行させるプログラムであって、
前記バッファは、前記画像処理が施された前記画像データにおける横方向の幅が複数のブロックに分割され、
各ブロックの縦サイズが、前記画像処理が施された前記画像データの走査方向の1ライン分の入力の各ブロック内での縦方向の最大変位量以上とされており、
前記画像処理が施された前記画像データの走査方向に前記バスの最小転送単位の1以上の整数倍分溜まったとき、その溜まった分の前記画像データを前記バスへ出力するように、前記画像データの書き込みと読み出しを制御する
ステップを含むプログラム。 - 被写体を撮像する撮像手段と、
撮像された画像全体又は画像の一部に対応する画像データに対し、所定の画像処理を行う第1の画像処理手段と、
前記画像処理が施された前記画像データを一時的に格納し、後段の処理を行う装置に接続されたバスに順次出力するバッファと
を備え、
前記バッファは、
前記画像処理が施された前記画像データにおける横方向の幅が複数のブロックに分割され、
各ブロックの縦サイズが、前記画像処理が施された前記画像データの走査方向の1ライン分の入力の各ブロック内での縦方向の最大変位量以上とされており、
前記画像処理が施された前記画像データの走査方向に前記バスの最小転送単位の1以上の整数倍分溜まったとき、その溜まった分の前記画像データを前記バスへ出力する
撮像装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008191130A JP2010028758A (ja) | 2008-07-24 | 2008-07-24 | 画像処理装置及び方法、プログラム、並びに撮像装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008191130A JP2010028758A (ja) | 2008-07-24 | 2008-07-24 | 画像処理装置及び方法、プログラム、並びに撮像装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010028758A true JP2010028758A (ja) | 2010-02-04 |
Family
ID=41734106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008191130A Withdrawn JP2010028758A (ja) | 2008-07-24 | 2008-07-24 | 画像処理装置及び方法、プログラム、並びに撮像装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010028758A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014086845A (ja) * | 2012-10-23 | 2014-05-12 | Fujitsu Semiconductor Ltd | 画像処理装置、撮像装置 |
JP2016163189A (ja) * | 2015-03-02 | 2016-09-05 | セイコーエプソン株式会社 | 画像処理装置、画像処理方法及び表示装置 |
WO2019003610A1 (ja) * | 2017-06-27 | 2019-01-03 | 日立オートモティブシステムズ株式会社 | 処理装置 |
CN110278394A (zh) * | 2018-03-15 | 2019-09-24 | 株式会社东芝 | 图像处理装置以及图像处理方法 |
-
2008
- 2008-07-24 JP JP2008191130A patent/JP2010028758A/ja not_active Withdrawn
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014086845A (ja) * | 2012-10-23 | 2014-05-12 | Fujitsu Semiconductor Ltd | 画像処理装置、撮像装置 |
US8928782B2 (en) | 2012-10-23 | 2015-01-06 | Fujitsu Semiconductor Limited | Image processing device and image capture device |
JP2016163189A (ja) * | 2015-03-02 | 2016-09-05 | セイコーエプソン株式会社 | 画像処理装置、画像処理方法及び表示装置 |
WO2019003610A1 (ja) * | 2017-06-27 | 2019-01-03 | 日立オートモティブシステムズ株式会社 | 処理装置 |
US11195249B2 (en) | 2017-06-27 | 2021-12-07 | Hitachi Astemo, Ltd. | Processing device having a row number determining unit |
CN110278394A (zh) * | 2018-03-15 | 2019-09-24 | 株式会社东芝 | 图像处理装置以及图像处理方法 |
KR20190109196A (ko) * | 2018-03-15 | 2019-09-25 | 가부시끼가이샤 도시바 | 화상 처리 장치 및 화상 처리 방법 |
US10652487B2 (en) | 2018-03-15 | 2020-05-12 | Kabushiki Kaisha Toshiba | Image processing apparatus and image processing method |
KR102128534B1 (ko) * | 2018-03-15 | 2020-06-30 | 가부시끼가이샤 도시바 | 화상 처리 장치 및 화상 처리 방법 |
CN110278394B (zh) * | 2018-03-15 | 2021-12-10 | 株式会社东芝 | 图像处理装置以及图像处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8009337B2 (en) | Image display apparatus, method, and program | |
JP4018727B2 (ja) | 撮像装置及びその制御方法及びプログラム及び記憶媒体 | |
US7583280B2 (en) | Image display device | |
JP2009169601A (ja) | 画像処理システム及びこの画像処理システムを有するカメラ | |
JP4004346B2 (ja) | 撮像装置及びディストーション補正方法 | |
JP2015053644A (ja) | 撮像装置 | |
JP4636755B2 (ja) | 撮像装置、画像処理方法、記録媒体およびプログラム | |
JP4998312B2 (ja) | 画像処理装置、撮像装置及び画像処理方法 | |
JP2010028758A (ja) | 画像処理装置及び方法、プログラム、並びに撮像装置 | |
JP2007267379A (ja) | 画像の歪曲補正を行う画像処理装置、撮像装置及び画像の歪曲補正方法 | |
JP2008219317A (ja) | 撮像装置 | |
JP5820720B2 (ja) | 撮像装置 | |
JP5959194B2 (ja) | 撮像装置 | |
JP2007124542A (ja) | 撮像装置及びその制御方法及びプログラム及び記憶媒体 | |
JP2011223146A (ja) | 電子カメラ | |
JP5676233B2 (ja) | 画像処理装置、画像処理方法、及び撮像装置 | |
JP2014121024A (ja) | 撮像装置 | |
JP2014099714A (ja) | 画像処理装置、撮像装置、画像処理方法及びプログラム | |
JP2017201749A (ja) | 画像処理装置およびその制御方法 | |
JP2004312072A (ja) | 画像処理装置及びカメラ、並びに画像処理方法 | |
US9019404B2 (en) | Image processing apparatus and method for preventing image degradation | |
JP2009033438A (ja) | 撮像装置 | |
KR101862181B1 (ko) | 화상처리 장치 및 화상처리 방법 | |
JP2009033498A (ja) | 光学歪み補正装置とその方法及びプログラム並びに撮像装置 | |
JP2008191921A (ja) | 光学歪み補正方法及びその装置並びに動画撮影機能付撮像装置と光学歪み補正プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20111004 |