Nothing Special   »   [go: up one dir, main page]

JP6136190B2 - 画像処理装置、撮像装置 - Google Patents

画像処理装置、撮像装置 Download PDF

Info

Publication number
JP6136190B2
JP6136190B2 JP2012233686A JP2012233686A JP6136190B2 JP 6136190 B2 JP6136190 B2 JP 6136190B2 JP 2012233686 A JP2012233686 A JP 2012233686A JP 2012233686 A JP2012233686 A JP 2012233686A JP 6136190 B2 JP6136190 B2 JP 6136190B2
Authority
JP
Japan
Prior art keywords
output
unit
coordinate
input
pixels
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
JP2012233686A
Other languages
English (en)
Other versions
JP2014086845A (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.)
Socionext Inc
Original Assignee
Socionext Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Socionext Inc filed Critical Socionext Inc
Priority to JP2012233686A priority Critical patent/JP6136190B2/ja
Priority to US14/057,752 priority patent/US8928782B2/en
Publication of JP2014086845A publication Critical patent/JP2014086845A/ja
Application granted granted Critical
Publication of JP6136190B2 publication Critical patent/JP6136190B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/646Circuits for processing colour signals for image enhancement, e.g. vertical detail restoration, cross-colour elimination, contour correction, chrominance trapping filters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/81Camera processing pipelines; Components thereof for suppressing or minimising disturbance in the image signal generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/60Noise processing, e.g. detecting, correcting, reducing or removing noise
    • H04N25/61Noise processing, e.g. detecting, correcting, reducing or removing noise the noise originating only from the lens unit, e.g. flare, shading, vignetting or "cos4"

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

画像処理装置、撮像装置に関する。
従来、撮像した画像のデジタルデータを記録可能なデジタルスチルカメラ、デジタルビデオカメラ等の撮像装置は、広く普及している。このような撮像装置に搭載される光学系は、レンズ等の収差により、画像に幾何的な歪みを生じさせる。このため、撮像装置は、メモリに記憶した画像データにおける歪みを補正する歪み補正部を有する(例えば、特許文献1参照)。
特開2010−28758号公報
ところで、撮像装置は、色変換処理等の複数の処理部を有している。これらの処理部と歪み補正部は、処理に必要な画像データを得るため、又は処理後の画像データを記録するためにメモリへアクセスする。つまり、メモリに対するアクセス数が増加する。また、高画質化等により、1フレームの画素数が多くなると、それに応じてメモリに対するアクセス数が増加する。このようなメモリに対するアクセス数の増加は、各処理部や歪み補正部においてメモリへアクセスするために待ち時間の増加や、1フレーム分の画像データの処理に要する時間の長期化の要因となる。
本発明の一観点によれば、撮像部に接続される画像処理装置であって、前記撮像部にて撮像した1フレームの画像データが入力され、前記1フレームの画像データの第1の方向に隣接する2つの入力画素に基づいて1つの第1出力画素を生成する第1の歪み補正部と、前記第1の方向と異なる第2の方向に隣接する2つの前記第1出力画素に基づいて1つの第2出力画素を生成し、前記第2出力画素をメモリに格納する第2の歪み補正部とを含み、前記第2の歪み補正部は、前記1フレームの画像を分割した複数の格子ブロックの各頂点の格子ブロック座標に基づいて、前記第2出力画素の座標値に対応した入力座標及び補間係数を生成し、前記第1の方向に連続し前記メモリに対する1回のアクセスにおける転送量に応じた複数の前記第1出力画素を含み前記第1の方向に連続し前記メモリに対する1回のアクセスにおける転送量に応じた複数の第2出力画素に対応する前記第1出力画素の座標値に基づく複数の分割ラインを記憶部に記憶し、前記複数の第2出力画素に対応した前記入力座標に基づいて、前記記憶部から前記第2の方向に隣接する2つの前記第1出力画素を順次読み出し、該読み出した2つの前記第1出力画素を前記補間係数に基づいて線形補間処理して前記第2出力画素を生成するものであり、前記第2の歪み補正部は、複数の分割ラインを記憶する複数のディレイラインバッファと、入力する前記第1出力画素の座標値を生成する入力座標生成部と、前記格子ブロック座標を記憶し、前記入力座標生成部により生成された座標値に応じた第1の格子ブロック座標を出力し、前記格子ブロック座標に基づいて前記第1出力画素を出力するディレイラインバッファのインデックス値と出力ライン番号に応じた第2の格子ブロック座標を出力する入力座標設定部と、前記第1の格子ブロック座標に基づいて、前記第2出力画素の座標値に応じて必要とする前記第1出力画素の範囲を算出する第1の座標演算部と、前記第1の座標演算部により算出された前記第1出力画素の範囲と、前記入力座標生成部により生成された前記第1出力画素の座標値に基づいてイネーブル信号を生成するイネーブル信号生成部と、前記インデックス値と前記出力ライン番号に基づいて前記ディレイラインバッファから出力される前記第1出力画素の座標値を生成する出力座標生成部と、前記第2の格子ブロック座標と前記第1出力画素の座標値に基づいて、前記第1の方向に連続し前記メモリに対する1回のアクセスにおける転送量に応じた複数の第2出力画素に対応する複数の前記第1出力画素の前記第2の方向の座標値のうちの最小の座標値と最大の座標値と、前記補間係数及び前記入力座標を生成する第2の座標演算部と、前記複数のディレイラインバッファから出力される演算要求に基づいて選択した1つのディレイラインバッファに記憶された前記第1出力画素を読み出して出力するディレイラインバッファ選択部と、前記ディレイラインバッファ選択部から出力される2つの前記第1出力画素を前記補間係数に基づいて線形補間処理して前記第2出力画素を生成する線形補間部と、を有し、前記複数のディレイラインバッファは、前記入力座標生成部により生成された座標値と前記イネーブル信号に基づいて、対応する座標値の画素データを含む分割ラインを記憶し、記憶した分割ラインに応じたバッファ段数と前記第2の座標演算部にて生成された前記最小の座標値と前記最大の座標値に基づいて前記演算要求を出力する
本発明の一観点によれば、メモリに対するアクセス数を低減することができる。
撮像装置の概略を示すブロック図である。 水平歪み補正部及びアクセス制御部のブロック図である。 アクセス制御部における転送処理のフローチャートである。 垂直歪み補正部のブロック図である。 (a)〜(c)は画像歪みの説明図である。 (a)〜(c)は画像歪み補正の説明図である。 歪み補正の説明図である。 歪み補正に必要な画素の範囲を示す説明図である。 画像データの転送順序の説明図である。 画像データの転送順序の説明図である。 (a)(b)は歪み補正処理の説明図である。 (a)(b)は比較例における処理の説明図である。 撮像装置の概略を示すブロック図である。 垂直歪み補正部のブロック図である。 ディレイラインバッファのブロック図である。 ディレイライン入力バッファのブロック図である。 ディレイライン入力バッファの動作を示すタイミング図である。 ディレイライン出力制御部のブロック図である。 ディレイライン出力制御部の動作を示すタイミング図である。 座標演算の説明図である。 座標演算の説明図である。 (a)(b)はディレイライン入力バッファの動作を示す説明図である。 撮像装置の概略を示すブロック図である。 (a)(b)は処理範囲の設定を示す説明図である。 (a)(b)は処理範囲の設定を示す説明図である。 (a)(b)はメモリにおける画像データの格納状態の説明図である。 (a)(b)は、画像データの必要ライン数の説明図である。
(第一実施形態)
以下、第一実施形態を図1〜図12に従って説明する。
図1に示すように、この撮像装置は例えばデジタルスチルカメラであり、撮像部10、画像処理部(ISP:Image Signal Processor)20、操作部41、メモリ(記憶部)42、表示デバイス43を有している。撮像部10は、被写体に基づく入射光に応じた画像データを出力する。画像処理部20は、既定の設定値または操作部41の操作による設定にしたがって、撮像部10から出力される画像データに対して各種画像処理を施す。そして、画像処理部20は、処理中または処理後の画像データをメモリ42に格納する。また、画像処理部20は、撮像部10から出力される画像データに基づく画像、またはメモリ42に格納された画像データに基づく画像を表示デバイス43に表示する。そして、画像処理部20は、メモリ42に格納された画像データを、例えば操作部41の操作にしたがってメモリカード45に格納する。
撮像部10は、撮像光学系11と、撮像素子部12を有している。
撮像光学系11は、被写体からの光を集光するレンズ(フォーカスレンズなど),レンズを通過した光の量を調整する絞り,等を含み、光学的な被写体像を撮像素子部12に導く。撮像素子部12は、例えば、ベイヤ配列のカラーフィルタと、撮像素子とを含む。撮像素子は、CCD(Charge Coupled Device)イメージセンサである。撮像素子は、カラーフィルタを介して入射する光の量に応じた撮像信号(アナログ信号)を出力する。また、撮像素子部12は、アナログの撮像信号をデジタルの撮像データに変換する。そして、撮像素子部12は、同期信号に従って変換後の撮像データを出力する。同期信号は、1つのフィールドの区切りを示す垂直同期信号と、1ラインの区切りを示す水平同期信号を含み、例えば画像処理部20から供給される。
画像処理部20は、データ変換部21、垂直歪み補正部22、歪み補正部23、画像処理部24、静止画コーデック部25、動画コーデック部26、メモリカードインタフェース(メモリカードI/F)27、表示インタフェース(表示I/F)28、DMA調停部29、メモリコントローラ30、CPU(制御部)31を有している。データ変換部21,垂直歪み補正部22,歪み補正部23,画像処理部24,静止画コーデック部25,動画コーデック部26,メモリカードI/F27,表示I/F28,DMA調停部29、CPU31は、内部バス32を介して互いに接続されている。
DMA調停部29はメモリコントローラ30を介してメモリ42と接続される。メモリ42は第1の格納部の一例である。メモリ42は、例えば同期式半導体メモリ(SDRAM:Synchronous Dynamic Random Access Memory)である。データ変換部21は、撮像部10から出力される撮像データに対して所定の処理を行い、処理後の画像データをメモリ42に格納する。また、メモリ42には、各処理部22〜26による処理後の画像データが格納される。
データ変換部21は、撮像部10から出力される撮像データのデータ形式を変換する。撮像データは例えばRGB形式の画像データ(ベイヤデータ)である。データ変換部21は、例えば撮像データを、YCbCr(Y(輝度)、Cb,Cr(色差))形式のデータに変換する。変換後の画像データは複数の画素データを含み、各画素データは、輝度情報と色差情報を含む。
データ変換部21は、水平歪み補正部21aとアクセス制御部(「DMAC」と表記)21bを含む。水平歪み補正部21aは第1の歪み補正部の一例である。水平歪み補正部21aは、YCbCr形式の画像データについて、撮像光学系11による水平方向の歪みを補正する。アクセス制御部21bは、直接メモリアクセス制御部(DMAC:Direct Memory Access Controller)であり、DMA調停部29及びメモリコントローラ30を介してメモリ42へアクセスし、水平歪み補正部21aにおける歪み補正後の画像データをメモリ42に格納する。
撮像部10から出力される画像データは、撮像光学系11に含まれるレンズ(例えば歪曲収差)に起因する画像の歪みを含む。例えば、図5(a)に示す格子G1を撮影した場合、格子G1は、レンズの特性(歪曲収差)によって変形し、図5(b)に示すように湾曲した形状の格子G2や、図5(c)に示すように湾曲した形状の格子G3にて記憶される。例えば、図5(b)に示す形状の歪みを樽型の歪み、図5(c)に示す形状の歪みを糸巻き型の歪みと呼ぶ。なお、図5(a)〜図5(c)において、各格子G1,G2,G3の中心は、撮影装置の光学系における中心と一致している。図5(b),図5(c)に破線は、撮影される格子G1を示す。このように歪みを含む画像の画像データについて、水平歪み補正部21aは、水平方向の歪みを補正する。
垂直歪み補正部22は、撮像光学系11による垂直方向の歪みを補正する。垂直歪み補正部22は、第2の歪み補正部,第1の補正部の一例である。垂直歪み補正部22は、アクセス制御部(DMAC)22aを含む。アクセス制御部22aは、DMA調停部29及びメモリコントローラ30を介してメモリ42へアクセスし、垂直歪み補正部22に必要な画像データをメモリ42から読み出す。垂直歪み補正部22は、アクセス制御部22aによりメモリ42から読み出された部分的な画像データについて垂直方向の歪みを補正する。そして、アクセス制御部22aは、垂直歪み補正部22による処理後の画像データをメモリ42に格納する。
歪み補正部23は、撮像光学系11による水平方向の歪みと垂直方向の歪みを補正する。歪み補正部23はアクセス制御部(DMAC)23aを含む。アクセス制御部23aは、DMA調停部29及びメモリコントローラ30を介してメモリ42へアクセスし、歪み補正部23に必要な画像データをメモリ42から読み出す。また、アクセス制御部23aは、歪み補正部23における補正後の画像データをメモリ42に格納する。
図6(a)〜(c)は、樽型の歪みに対する補正処理を示す。
水平歪み補正部21aは、図6(a)に示す画像データP1aを水平歪み補正処理して図6(b)に示す画像データP1bを生成する。これにより、画像データP1aに含まれる樽型の格子G2は、画像データP1bにおいて垂直方向(図における上下方向)に膨らむ形状の格子G2aとなる。垂直歪み補正部22は、図6(b)に示す画像データP1bを垂直歪み補正処理して図6(c)に示す画像データP1cを生成する。これにより、画像データP1bに含まれる格子G2aは、画像データP1cにおいて、直線状の格子G2bとなる。歪み補正部23は、図6(a)に示す画像データP1aを歪み補正処理して図6(c)に示す画像データP1cを生成する。これにより、画像データP1aに含まれる樽型の格子G2は、画像データP1cにおいて、直線状の格子G2bとなる。
画像処理部24は、1つ又は複数の処理部である。画像処理部24はメモリ42へアクセスするアクセス制御部24aを含む。画像処理部24が行う処理は、例えば、色調変更などの色補正処理、画素数を増減する解像度変換処理、画像の輪郭(エッジ)を強調するエッジ強調処理、画像データに含まれるノイズを除去するノイズ除去処理、等が含まれる。画像処理部24は、メモリ42に格納された画像データを読み出し、その画像データに対して画像処理を施し、処理後の画像データをメモリ42に格納する。
静止画コーデック部25は、メモリ42をアクセスするアクセス制御部25aを含む。静止画コーデック部25は、メモリ42に格納された画像データを読み出し、その画像データを所定の方式(例えばJPEG(Joint Photographic Experts Group)方式)により符号化し、符号化後の画像データ(符号化データ)をメモリ42に格納する。
動画コーデック部26は、メモリ42をアクセスするアクセス制御部26aを含む。動画コーデック部26は、メモリ42に格納された画像データを読み出し、その画像データに対して所定の方式(例えば、MPEG(Moving Picture Experts Group)方式)により符号化し、符号化後の画像データ(符号化データ)をメモリ42に格納する。
なお、上記した各処理部21〜26及びそれらの処理内容は一例であり、画像処理部20が含む処理部の種類や処理内容は、適宜設定されてもよい。
メモリカードI/F27は、撮像装置に装着されるメモリカード45と接続される。メモリカードI/F27は、メモリ42をアクセスするアクセス制御部27aを含む。メモリカードI/F27は、メモリ42に格納されたデータ(例えば圧縮された画像データ)をメモリカード45に格納する。
表示I/F28には、表示デバイス43が接続されている。表示デバイス43は、例えば液晶表示装置(LCD:Liquid Crystal Display)である。表示デバイス43は、撮影する画像(撮影フレーム)の確認、撮影された画像の表示、撮像装置の駆動源であるバッテリの残量、撮影モード、等に用いられる。表示I/Fは、メモリ42をアクセスするアクセス制御部28aを含む。例えば、表示I/F28は、メモリ42に格納された画像データを読み出し、その画像データを表示デバイス43に出力する。なお、表示デバイス43を、電子ビューファインダ(EVF:Electronic View Finder)や、外部接続ためのインタフェース(例えばHDMI:High−Definition Multimedia Interface)としてもよい。
DMA調停部29は、各回路21〜28のアクセス制御部21b,22a〜28aから出力され競合する要求(リクエスト)を、例えば各処理部21〜28に対応して設定された優先度に従って調停し、1つの回路に対するアクセスを許可する。アクセスが許可された回路は、メモリ42に対するアクセスのための制御信号を出力する。読み出し要求の場合、メモリコントローラ30は、制御信号に応じてメモリ42からデータを読み出し、その読み出したデータを要求元に出力する。メモリコントローラ30は、書き込み要求と、その要求元から出力されるデータをメモリ42に出力し、メモリ42はそのデータを記憶する。
CPU31は、画像処理部20全体を統括制御する。CPU31は、処理に必要な情報の各処理部への設定及びデータの書き込み/読み出し制御等を行う。また、CPU31は、操作部41の操作に応じて動作モードや各処理において必要な情報(パラメータ)を設定する。操作部41は、ユーザにより操作されるシャッタボタンやメニューボタン等の各種スイッチ、タッチパネル等である。
また、CPU31は、撮像部10を制御する。撮像部10の撮像光学系11は、ズーム機能を有している。CPU31は、ユーザによる操作部41の操作にしたがって撮像光学系11に含まれるレンズの位置を光軸(撮像素子の受光面と垂直な軸)に沿って変更する。
ここで、歪み補正について説明する。
歪み補正部23は、入力画像データに対して、自由変形又は射影変形と呼ばれる処理を行う。自由変形は、任意形状の四角形を他の形状の四角形へと変形する処理である。他の形状の四角形を矩形とすることにより、入力画像データにおける歪みを補正する。
例えば、図7に示すように、上段の任意形状の四角形R1を、下段の矩形R2へ変形する。尚、上段は歪み補正前の画像、つまり入力画像を示し、下段は歪み補正後の画像を示す。四角形R1の頂点をA1,B1,C1,D1とする。この変形において、頂点A1を頂点A2へ変換する。同様に、頂点B1を頂点B2へ、頂点C1を頂点C2へ、頂点D1を頂点D2へ変換する。そして、四角形R1に含まれる点(各頂点、及び各頂点を結ぶ線上の点を含む)は、矩形R2内の各点(各頂点、及び各頂点を結ぶ線上の点を含む)へ変換される。例えば、四角形R1に含まれる点E1は、矩形R2の点E2へ変換される。したがって、点E2を1つの画素とした場合、画素E2の画素値は、点E1に基づく画素値により求めることができる。つまり、点E2の座標値から点E1の座標値を算出することにより、歪み補正のために必要な画素の座標値及び画素値を得ることが可能となる。
ここで、点E1の座標を(Xi,Yi)、点E2の座標を(Xo,Yo)とする。そして、変形前の四角形R1の各頂点A1,B1,C1,D1の座標値を(Ax,Ay),(Bx,By),(Cx,Cy),(Dx,Dy)とする。なお、これらの座標値は、歪み補正前の画像と歪み補正後の画像において、互いに対応する位置を原点とする座標値である。例えば、歪み補正前の画像と歪み補正後の画像を同じ大きさの格子により分割する。分割した1つのブロック(格子ブロック)を矩形R2とする。この場合、矩形R2に含まれる点の座標値は、格子ブロックの1つの頂点O2を原点とする値となる。そして、四角形R1に含まれる点の座標値は、点O2に対応する点O1を原点とする値となる。そして、格子ブロックのx軸方向(水平方向)の大きさ(画素数)を「M」、y軸方向(垂直方向)の大きさ(画素数)を「N」とする。すると、点E1の座標(Xi,Yi)は、
Xi=[N(Bx−Ax)+{(Dx−Cx)−(Bx−Ax)}Yo]Xo/(M*N)+Ax+(Cx−Ax)Yo/N ・・・(1)
Yi=[M(Cy−Ay)+{(Dy−By)−(Cy−Ay)}Xo]Yo/(M*N)+Ay+(By−Ay)Xo/M ・・・(2)
により求められる。なお、「*」は乗算を示し、「/」は除算を示す。
次に、データ変換部21に含まれる水平歪み補正部21a及びアクセス制御部21bについて説明する。
図2に示すように、水平歪み補正部21aは、入力座標設定部51、出力座標生成部52、座標演算部53、ライト部54、FIFOメモリ55、リード部56、線形補間部57を有している。アクセス制御部21bは、バッファ58、転送制御部59を有している。
入力座標設定部51には、座標演算係数が格納される。座標演算係数は、歪み補正処理により生成する画素(水平補正後画素、または出力画素という)を生成するために必要な画素(水平補正前画素または入力画素という)の座標を算出するために必要な係数であり、例えばCPU31(図1参照)により格納される。図1に示す撮像光学系11の収差によって撮像素子部12に生じる歪みは、撮像部10の状態、例えば撮像素子部12と撮像光学系11の位置関係(光軸上のレンズ等の位置)に基づく。したがって、CPU31は、撮像部10の状態に応じた座標演算係数を入力座標設定部51に格納する。座標演算係数は、上記の式(1),(2)の各パラメータを含む。上記の式(1),(2)は、図7に示すように、矩形R2と四角形R1において、点E2に対応する点E1の座標値を求めるものである。矩形R2に対応する四角形R1の位置や形状が異なると、上記の式(1),(2)におけるパラメータの値も異なる。従って、入力座標設定部51に格納される座標演算係数は、出力する画像を分割した複数の格子ブロック毎に設定されたパラメータを含む。
出力座標生成部52は、1フレームの画像データに対する処理に応じて初期化される。そして、出力座標生成部52は、水平歪み補正部21aから出力される画素(出力画素)の画像データに応じてカウント値をカウントアップする。画像データは、クロック信号に同期して転送される。このクロック信号は、例えば、図1に示す撮像装置におけるシステムクロック信号である。出力座標生成部52は、クロック信号をカウントし、カウント値を出力する。この出力座標生成部52から出力されるカウント値は、水平歪み補正部21aから出力される出力画素の座標値(Xo,Yo)に対応する。例えば、水平方向の座標値Xoは、水平同期信号によりリセットされ、水平歪み補正部21aが出力するタイミングを示すクロック信号によりカウントアップされる。また、垂直方向の座標値Yoは、水平同期信号によりカウントアップされる、垂直同期信号によりリセットされる。
座標演算部53は、入力座標設定部51から読み出した座標演算係数と、出力座標生成部52から出力される座標値(Xo,Yo)に基づいて、補正画素を生成するために必要な入力画素の座標値(入力座標値)を算出する。なお、水平歪み補正部21aは、入力される画像データについて、水平方向の歪みを補正する。したがって、補正画素の画素値を算出するために必要な入力画素の座標値のうち、水平方向の画素値(入力水平座標)が必要となる。したがって、座標演算部53は、上記の(1)に基づいて、入力水平座標Xiの値を算出する。そして、座標演算部53は、算出した入力水平座標Xiに応じた入力水平座標HPと補間係数Hαを生成する。
なお、算出した入力水平座標Xiの値は、整数部分と小数部分を含む。これは、出力画素と入力画素が歪みによって1対1に対応しないからである。座標演算部53は、算出した入力水平座標Xiの整数部分と等しい値の入力水平座標HPと、入力水平座標Xiの小数部分と等しい値の補間係数Hαを生成する。入力水平座標HPはライト部54とリード部56に供給され、補間係数Hαは線形補間部57に供給される。
また、座標演算部53は、垂直歪み補正に必要な画素の座標値を算出する。垂直歪み補正に必要な画素の座標値は、画素の水平座標(水平位置)に対する垂直座標の最小値と最大値を含む。例えば、図5(b)に示すように、樽型の歪みを含む画像の場合、画像は垂直方向に拡大される。従って、垂直方向の拡大に従って画像の範囲(フレーム枠)からはみ出す画素は、垂直方向の歪み補正処理に不要な画素である。座標演算部53は、垂直方向における垂直補正範囲(垂直座標の最小値Ymin及び最大値Ymax)を算出する。なお、垂直補正範囲は、1フレームの画像データにおいて、水平方向の画素位置に応じて異なる。このため、座標演算部53は、水平方向の画素位置に応じて、垂直補正範囲値VA1を算出する。そして、座標演算部53は、算出した垂直補正範囲値VA1(垂直座標の最小値Ymin及び最大値Ymax)を転送制御部59に出力する。
例えば、図8に示すように、樽型の歪んだ入力画像データIP1に対して、水平方向の歪み補正処理を行い、出力画像データOP1を生成する。図8に実線で示す複数の四角形Raは、入力画像データIP1において、出力画像データOP1の各格子ブロックR2(図7参照)の画像データを生成するために必要な画像データの範囲を示す。図8において、一点鎖線は、入力画像データIP1に対する水平歪み補正処理後の画素データOPaを示す。
図8において、破線L1は、水平歪み補正処理における1つのラインデータ(1ラインの画素群)を示す。水平歪み補正処理において、この1つのラインデータL1に対して、入力画像データIP1に対応する画素の画像データが必要な画素である。従って、この入力画像データIP1において必要な画素の範囲を有効画素範囲と呼ぶ。そして、入力画像データIP1において、この有効画素範囲より外側の画素の範囲を無効画素範囲と呼ぶ。
図8は、画像データの水平方向における有効画素範囲と無効画素範囲を示したが、垂直方向の範囲についても水平方向における範囲と同様である。したがって、図2に示す座標演算部53は、垂直方向における有効画素範囲の最小値を垂直座標の最小値Yminとし、垂直方向における有効画素範囲の最大値を垂直座標の最大値Ymaxとする。
ライト部54は、入力水平座標HPに基づいて、水平補正処理に必要な画素の画像データをFIFOメモリ55に出力する。例えば、ライト部54には、所定の1サイクルに1つの画素の画像データ(YCbCr形式の画像データ)PD1が供給される。ライト部54は、入力画素の座標と入力水平座標HPとを比較する。入力画素の座標は、例えば、画像データを転送する回路の動作クロック信号をカウントすることにより得られる。ライト部54は、入力画素の座標値と入力水平座標HPを比較し、必要な画素か否かを判定する。例えば、図5(b)に示すように、樽型の歪みを含む画像の場合、画像は水平方向に拡大される。従って、水平方向の拡大に従って画像の範囲(フレーム枠)からはみ出す画素は、水平方向の歪み補正処理に不要な画素である。ライト部54は、必要と判定した画素の画素値をFIFOメモリ55に出力する。
なお、ライト部54は、入力画素の座標値に応じて、入力画素の座標値と入力水平座標HPに所定値「1」を加算した結果の値と比較し、必要な画素か否かを判定する。これは、出力画素の画像データを生成する方法に設定される。本実施形態の水平歪み補正部21aは、後述する線形補間部57により出力画素の画像データを生成する。線形補間部57は、2つの入力画素の画像データに基づいて、1つの出力画素の画像データを生成する。上記したように、座標演算部53は、算出した入力水平座標Xiの整数部分と等しい値の入力水平座標HPを生成する。このため、出力画像の各ラインにおける最終の画素の画像データを生成するためには、算出した入力水平座標Xiの小数部分を切り上げた座標値の画素の画像データが必要となる。このため、ライト部54は、入力画素の座標値を、入力水平座標HP、及びその入力水平座標HPに「1」を加算した値と比較する。そして、ライト部54は、入力画素の座標値が、入力水平座標HPまたは加算結果と一致する場合に必要な画素と判定し、その入力画素の画像データをFIFOメモリ55に格納する。
FIFOメモリ55は、ライトポインタが示す位置(アドレス)に入力データを記憶し、リードポインタが示す位置(アドレス)に格納されているデータを出力する。ライト部54は、FIFOメモリ55のライトポインタを制御する。例えば、ライト部54は、1つのラインにおける画素の格納を開始するときリセット信号を出力し、FIFOメモリ55はリセット信号に応答して、ライトポインタ及びリードポインタをリセット(=0)する。FIFOメモリ55は、ライト部54から出力される画像データ(画素値)を記憶し、ライトポインタを更新(+1)する。そして、FIFOメモリ55は、リード部56の読出要求に応答してリードポインタに格納されている画像データを出力し、リードポインタを更新(+1)する。
FIFOメモリ55の記憶容量は、FIFOメモリ55に記憶する画像データの形式と、補正に必要な画素の位置に応じて設定されている。例えば、YCbCr形式において、各成分の階調を256(1バイト)とすると、422フォーマットの画像データのデータ量は1画素あたり2バイトであり、444フォーマットの画像データのデータ量は1画素あたり3バイトである。補正に必要な画素の位置に応じた記憶容量は、画素の移動量に対応する。画素の移動量は、出力画素の座標値と、その出力画素を生成するために必要な入力画素の座標値の差である。これは、概略的に、入力画素を補正方向に移動させて出力画素を生成することに基づくものである。画素の移動量に応じてFIFOメモリ55に記憶する必要がある。例えば、移動量の2倍の記憶容量が必要となる。
リード部56は、FIFOメモリ55のリードポインタを制御し、FIFOメモリ55から連続する2つの画素の画像データを読み出し、線形補間部57に出力する。例えば、リード部56は、入力水平座標と複数画素の画像データを記憶するレジスタを有している。リード部56は、ライト部54によってFIFOメモリ55に2画素以上の画像データが格納されると、読出処理を開始する。例えば、FIFOメモリ55へ補間処理に必要な数の画像データが格納されと、FIFOメモリ55は処理開始を示す信号(イネーブル信号)を出力し、リード部56はその信号に応答して読出処理を開始する。
先ず、リード部56は、座標演算部53から供給される入力水平座標HPをレジスタに記憶する。そして、リード部56は、FIFOメモリ55に対して読出要求を出力する。メモリは、その読出要求に応答して画像データを出力し、リードポインタを更新する。リード部56は、FIFOメモリ55から出力される画像データをレジスタに記憶し、またその画像データを線形補間部57に対して出力する。次いで、FIFOメモリ55に対して読出要求を出力する。メモリは、その読出要求に応答して画像データを出力し、リードポインタを更新する。リード部56は、FIFOメモリ55から出力される画像データをレジスタに記憶し、またその画像データを線形補間部57に対して出力する。これにより、リード部56は、水平方向に連続する2つの画素の画像データをFIFOメモリ55から読出し、それらを線形補間部57に出力する。
次に、リード部56は、座標演算部53から供給される入力水平座標HPと、レジスタから読み出した入力水平座標とを比較する。そして、リード部56は、入力水平座標HPとレジスタから読み出した入力水平座標とが互いに等しい場合、レジスタに記憶した2つの画素の画像データを線形補間部57に対して順次出力する。一方、入力水平座標HPとレジスタから読み出した入力水平座標が互いに異なる場合、リード部56は、入力水平座標HPをレジスタに記憶し、FIFOメモリ55に対して読出要求を出力する。そして、リード部56は、FIFOメモリ55から出力される1画素の画像データをレジスタに記憶し、その画素と隣接する画素の画像データをレジスタから読み出して線形補間部57に出力する。このように、リード部56は、座標演算部53から供給される入力水平座標HPに応じた2つの画素の画像データを線形補間部57に対して出力する。
線形補間部57は、リード部56によってFIFOメモリ55から読み出された2つの画素の画像データに対して、座標演算部53から供給される補間係数Hαに従って線形補間処理し、処理後の画像データPD2を出力する。例えば、線形補間部57は、2つの画素の画像データをアルファブレンドして補間後の画像データPD2を生成する。例えば、リード部56から出力される1つ目の画素の画像データ(画素値)をGa1、2つ目の画素の画像データ(画素値)をGa2とする。線形補間部57は、出力する画素の画像データGa3を、
Ga3=(1−Hα)・Ga1+Hα・Ga2
により算出する。そして、線形補間部57は、生成した画像データ(画素値)Ga3を出力する。
アクセス制御部21bのバッファ58の記憶容量は、例えば、図1のメモリ42における転送形態に応じて設定される。メモリ42において、連続するアドレスに対するアクセス(データライト,データリード)に要する時間は、ランダムなアドレスに対するアクセスに要する時間よりも短い。つまり、連続するアドレスに対するアクセスを行うことにより、ランダムなアドレスに対するアクセスよりも高速なリード・ライトが可能である。連続するアドレスによる所定量のデータ転送を、バースト転送と呼ぶ。つまり、バッファ58の記憶容量は、メモリ42に対するバースト転送の転送量(バーストサイズ)に応じた値に設定されている。バッファ58は、線形補間部57から出力される画像データ、つまり水平歪み補正処理後の画像データを記憶する。転送制御部59は、座標演算部53から供給される垂直補正範囲(垂直座標の最小値Ymin及び最大値Ymax)に応じて、バッファ58に記憶した画像データのうち、図1に示す垂直歪み補正部22において必要な画素の画像データをメモリ42に対して転送する。
アクセス制御部21bのバッファ58の記憶容量は、図1のメモリ42におけるバースト転送の転送量(バーストサイズ)に応じた値に設定されている。バッファ58は、線形補間部57から出力される画像データ、つまり水平歪み補正処理後の画像データを記憶する。転送制御部59は、座標演算部53から供給される垂直補正範囲(垂直座標の最小値Ymin及び最大値Ymax)に応じて、バッファ58に記憶した画像データを、図1に示す垂直歪み補正部22において必要な画素の画像データをメモリ42に対して転送する。
転送制御部59における処理を説明する。
図3に示すステップ61において、パラメータの初期化を行う。初期化するパラメータは、転送先アドレス、バッファに格納したデータ数(バッファRAMデータ数)である。転送先アドレスに初期値を設定し、バッファRAMデータ数と無効画素数をクリア(=0)する。
次に、ステップ62において、図2に示すバッファ58に格納された画素が参照される画素か否かを判定する。バッファ58に格納された画素の垂直座標値と垂直補正範囲値VA1(垂直座標の最小値Ymin及び最大値Ymax)を比較し、垂直座標値が垂直補正範囲外の場合(判定:NO)にステップ63に移行する。そのステップ63において、無効画素数を算出する。参照されない画素を無効画素とし、その無効画素をカウントする。カウント値は無効画素数である。算出後、ステップ64へ移行する。一方、ステップ62において、垂直座標値が垂直補正範囲内の場合(判定:YES)にステップ64に移行する。
そして、ステップ64において、バッファRAMデータ数を算出する。例えば、バッファRAMデータ数を「+1」する。算出後、ステップ65へ移行する。
次いで、ステップ65において、バッファRAMデータ数がバーストサイズと等しいか否かを判定する。バッファRAMデータ数は、バッファ58に格納された画素のうち、無効画素か否かを判定した画素の数である。バッファRAMデータ数がバーストサイズと異なる場合(判定:NO)にステップ62へ移行する。一方、バッファRAMデータ数がバーストサイズと等しい場合(判定:YES)、次のステップ66へ移行する。つまり、バーストサイズ分の画素について無効画素か否かを判定する。
次に、ステップ66において、無効画素数がバーストサイズと等しいか否かを判定する。つまり、バッファ58に格納されたバーストサイズ分の画素の全てが無効画素か否かを判定する。無効画素数がバーストサイズと等しくない場合(判定:NO)、次のステップ67へ移行し、無効画素数がバーストサイズと等しい場合(判定:YES)、ステップ68へ移行する。
ステップ67において、バッファ58に格納されたバーストサイズ分の画素の画像データをメモリ42へ格納し、ステップ68へ移行する。つまり、バッファ58に格納されたバーストサイズ分の画素の全てが無効画素の場合、バッファ58のデータをメモリ42へ格納しない。
次に、ステップ68において、次のデータ転送のために各パラメータを設定する。例えば、次のデータ転送のために、転送先アドレスにバーストサイズを加算する。また、無効画素数とバッファRAMデータ数をクリア(=0)する。そして、ステップ62へ移行する。
次に、垂直歪み補正部22について説明する。
図4に示すように、垂直歪み補正部22は、アクセス制御部22aと垂直歪み補正コア部22bを有している。垂直歪み補正コア部22bは、入力座標設定部71、出力座標生成部72、座標演算部73、内部バッファ74、ラインセレクタ75、線形補間部76を有している。アクセス制御部22aは、入力バッファ77、転送制御部78、出力バッファ79を有している。
入力座標設定部71は、図2に示す入力座標設定部51と同様に、座標演算係数が例えば図1に示すCPU31により格納される。
出力座標生成部72は、図2に示す出力座標生成部52と同様に、1フレームの画像データに対する処理に応じて初期化される。そして、出力座標生成部72は、垂直歪み補正コア部22bから出力される画素(出力画素)の画像データに応じてカウント値をカウントアップする。このカウント値は、垂直歪み補正コア部22bから出力される出力画素に対応する座標値(出力水平座標値)である。
座標演算部73は、図2に示す座標演算部53と同様に、入力座標設定部71から読み出した座標演算係数と、出力座標生成部72から出力される座標値に基づいて、補正画素を生成するために必要な入力画素の座標値(入力座標値)を算出する。垂直歪み補正コア部22bは、入力される画像データについて、垂直方向の歪みを補正する。したがって、入力画素の座標値のうち、補正画素の画素値を算出するために垂直方向の画素値(入力垂直座標値)が必要となる。したがって、座標演算部73は、上記の(2)に基づいて、入力垂直座標Yiの値を算出する。そして、座標演算部73は、算出した入力垂直座標Yiに応じた入力垂直座標VPと補間係数Vαを生成する。
なお、算出した入力垂直座標Yiの値は、整数部分と小数部分を含む。これは、出力画素と入力画素が歪みによって1対1に対応しないからである。座標演算部73は、算出した入力垂直座標Yiの整数部分と等しい値の入力垂直座標VPと、入力垂直座標Yiの小数部分と等しい値の補間係数Vαを生成する。入力垂直座標VPをラインセレクタ75に供給され、補間係数Vαは線形補間部76に供給される。
また、座標演算部73は、図2に示す座標演算部73と同様に、水平方向の画素位置に応じて、垂直補正範囲値VA2を算出する。そして、座標演算部73は、算出した垂直補正範囲値VA2(垂直座標の最小値Ymin及び最大値Ymax)を出力する。垂直補正範囲値VA2は、転送制御部78に供給される。上記したように、図1に示すメモリ42は、バースト転送により高速なデータ転送が可能である。そして、1フレームの画像データにおいて、水平方向に並ぶ複数の画素は1回のバースト転送によってメモリ42に対してアクセスされる。このため、座標演算部73は、1回のバースト転送分の画素数の範囲において、垂直歪み補正に必要な画素が含まれるように、垂直補正範囲値VA2を算出する。
転送制御部78は、垂直補正範囲値VA2にしたがってバーストサイズの画像データをメモリ42から読み出す。入力バッファ77は、メモリ42から読み出された画像データを記憶する。したがって、入力バッファ77の記憶容量は、メモリ42から画像データを読み出すバーストサイズに応じて設定される。
図9は、メモリ42に格納された画像データを示す。画像データP2に含まれる画素は、所定位置の画素(例えば、図9において左上の画素)を原点とする座標(X,Y)によって指定される。なお、図9において左右方向(水平方向)を座標X、上下方向(垂直方向)を座標Yとする。画像データP2は、図1に示す撮像部10からデータ変換部21を介してメモリ42に転送される。このとき転送されるデータは、図9に矢印で示すラスタ順に転送され、その転送順序にしたがってメモリ42に格納される。
メモリ42は、転送順序にしたがって順次転送される画像データを記憶する。したがって、ラスタ方向(水平方向)に連続する画素は、メモリ42において連続したアドレスの領域に格納される。これは、メモリ42において、連続するアドレスに対するアクセスに要する時間(アクセス時間)が、不連続なアドレスに対するアクセスに要する時間よりも短いことによる。したがって、水平方向の歪み補正処理は、水平方向にしたがって連続的に転送される2つの画素の画像データに基づいて生成した出力画素の画像データをメモリ42に格納する。このため、画像データの転送順序と、歪み補正処理において必要とする2つの画素の並ぶ方向が一致しているため、歪み補正処理及びメモリ42に対するデータ転送の効率が良い。しかし、垂直方向の歪み補正処理は、1フレームの画像データにおいて、垂直方向に並ぶ画素を必要とする。つまり、画像データの転送順序と、歪み補正処理において必要とする2つの画素の並ぶ方向が一致していないため、単純な垂直方向の読み出しは、メモリ42に対するデータ転送の効率が悪い。このため、本実施形態では、以下のようにメモリ42に対するデータ転送を行う。
図10に示すように、転送制御部78は、水平方向に配列されたバーストサイズ分の画像データ群を、垂直方向に沿って順次読み出す。例えば、1画面の画像データにおいて、水平方向の画素数を「320」、垂直方向の画素数を「240」とする。この場合、左上に示す画素の座標値は(0,0)となり、右下に示す画素の座標値は(319,239)となる。また、メモリ42のバーストサイズを「16」画素分とする。この場合において、転送制御部78は、先ず、座標(0,0)から座標(15,0)の画素の画像データを読み出す。次に、垂直方向に沿って座標を1画素分変更し、座標(0,1)から座標(15,1)の画素の画像データを読み出す。水平方向におけるバーストサイズ分の画素と、1画面分のライン数の画素を含む矩形状の領域を短冊領域と呼ぶ。つまり、転送制御部78による画像データの読み出しは、1画面の画像データを水平方向に複数の短冊領域に区画し、各短冊領域毎に画像データを読み出すことと等しい。
このとき、転送制御部78は、垂直補正範囲値VA2に従って、バーストサイズの画素の画像データに垂直歪み補正処理に必要な画素が含まれるように読み出す。例えば、図11(a)に示す入力画像データIP1から、図11(b)に示す出力画像データOP1を生成する。なお、図11(a)(b)では、出力画像の1ライン目とnライン目(nは1フレームの画像のライン数であって、例えば図9に示す画像データの場合、n=240)の画素の画像データと、その画像データを生成するために必要な入力画像の画素にハッチングを付している。
つまり、入力画像データIP1の2ライン目から(nー1)ライン目までの画像により、出力画像データOP1の1ライン目からnライン目までの画像を生成する。つまり、転送制御部78は、入力画像データIP1の1ライン目とnライン目の画素の画像データについてはメモリ42から読み出さない。これにより、メモリ42に対するアクセス回数が少なくなる。
入力バッファ77に一旦格納された画像データは、垂直歪み補正コア部22bの内部バッファ74に転送される。この内部バッファ74の記憶容量は、垂直歪み補正に必要な画素を記憶するように設定されている。例えば、垂直歪み補正処理において、水平歪み補正処理と同様に、入力画素に基づいて垂直画素を生成する画素の移動が生じる。このため、移動量に応じたライン分の画素が必要となる。したがって、内部バッファ74の記憶容量は、バーストサイズと移動量に応じて設定される。
図11(a)に示す黒丸は、図11(b)にハッチングを付した1ラインの画素を生成するために必要な画素の座標値を示す。なお、この座標値は、上記の座標演算部73にて算出され、整数部と小数部を含む。本実施形態では、線形補間により出力画素の画像データを生成する。このため、垂直歪み補正処理では、算出された座標値に対応して垂直方向に隣接する2つの画素の画像データが必要となる。
図12(a)(b)は、比較例の最近傍法により出力画素の生成を示す。この方法では、出力画素を生成するために必要な画素は、算出した画素の座標値に最も近い(垂直方向の座標値の差が最も小さい)1つの画素を用いる。この方法は、垂直方向に隣接する2つの画素を必要としないため、メモリに対するアクセスの負荷が少ない。しかし、この方法では、画像の細かい部分やエッジが階段状になるため、画像の見栄えが悪くなる、つまり出力画像の画質が劣化する。この点、本実施形態は、線形補間により出力画素を生成する。このため、出力画像の画質の劣化を抑制することができる。
ラインセレクタ75は、内部バッファ74に格納された複数ラインの画像データのうち、入力垂直座標VPに応じた2つのラインを選択する。例えば、ラインセレクタ75は、入力垂直座標VPに応じた1つのラインと、その入力垂直座標VPの次のラインを選択する。そして、ラインセレクタ75は、選択した2つのラインに含まれ、補間処理後に出力する画素に応じた座標値(出力水平座標値)の画像データGa,Gbを出力する。
例えば、図11(a)においてハッチングを付した画素の画像データを読み出す場合を説明する。なお、図11(a)において、図面左右方向に付した数字は水平方向における座標値を示し、図面上下方向に付した数字は垂直方向における座標値(ライン数n=240の場合)を示す。
先ず、ラインセレクタ75は、入力垂直座標VPにしたがって垂直方向における座標値「1」と座標値「2」のラインを選択する。そして、ラインセレクタ75は、出力座標生成部72から出力される座標値(出力水平座標値)にしたがって水平方向における座標値「0」の2つの画素の画像データGa,Gbを出力する。同様に、ラインセレクタ75は、水平方向における座標値「1」〜「3」の画素の画像データを順次出力する。
次に、ラインセレクタ75は、入力垂直座標VPにしたがって座標値「2」と座標値「3」のラインを選択する。そして、ラインセレクタ75は、出力座標生成部72から出力される座標値(出力水平座標値)にしたがって座標値「4」〜「7」の画素の画像データを出力する。
線形補間部76は、ラインセレクタ75によって内部バッファ74から読み出された2つの画素の画像データGa,Gbに対して、座標演算部73から供給される補間係数Vαに従って線形補間処理し、処理後の画像データを出力する。例えば、線形補間部76は、2つの画素の画像データをアルファブレンドして補間後の画像データを生成する。例えば、内部バッファ74から出力される1つ目の画素の画像データGaの画素値をGa1、2つ目の画素の画像データGbの画素値をGa2とする。線形補間部57は、出力する画素の画像データの画素値Ga3を、
Ga3=(1−Vα)・Ga1+Vα・Ga2
により算出する。そして、線形補間部76は、算出した画素値Ga3の画像データを出力する。
アクセス制御部22aは、線形補間部76から出力される画像データを出力バッファ79に格納する。そして、アクセス制御部22aは、出力バッファ79に、1回のバースト転送により転送する画像データが格納されると、それらのデータを図1に示すメモリ42に格納する。
次に、上記の画像処理部20(水平歪み補正部21a及び垂直歪み補正部22)の作用を説明する。
水平歪み補正部21aは、線形補間部57により2つの入力画素の画像データに基づいて、1つの出力画素の画像データを生成する。線形補間部57は、出力画素の座標値に応じて算出された入力画素の座標値の小数部を補間係数とする線形補間処理により出力画素の画像データを生成する。したがって、最近傍処理により出力画素を生成する場合と比べ、階段状の部分が少ない画像が得られる。
ライト部54は、座標演算部53により生成された座標値に基づいて、出力画素の画像データの生成に必要な画像データをFIFOメモリ55に格納する。アクセス制御部21bの転送制御部59は、座標演算部53にて生成された垂直補正範囲(垂直座標の最小値Ymin及び最大値Ymax)に応じて、バッファ58に記憶し、図1に示す垂直歪み補正部22において必要な画素の画像データをメモリ42に対して転送する。このように、メモリ42に対して、処理に必要な画素の画像データが転送される。
垂直歪み補正部22の転送制御部78は、座標演算部73により生成された垂直補正範囲値VA2(垂直座標の最小値Ymin及び最大値Ymax)に基づいて、バーストサイズの画像データをメモリ42から入力バッファ77へ読み出す。この入力バッファ77に読み出された画像データは、内部バッファ74に格納される。ラインセレクタ75は、内部バッファ74に格納された複数ラインの画像データのうち、座標演算部73により生成された入力垂直座標VPに応じた2つのラインを選択し、選択した2つのラインに含まれ、補間処理後に出力する画素に応じた座標値(出力水平座標値)の画像データGa,Gbを出力する。線形補間部76は、ラインセレクタ75によって内部バッファ74から読み出された2つの画素の画像データGa,Gbに対して、座標演算部73から供給される補間係数Vαに従って線形補間処理し、処理後の画像データを出力する。このように、垂直方向における歪み補正処理に必要な画素の画像データがメモリ42から読み出され、その画像データに基づいて、歪みを補正した画像の画像データが生成される。
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1−1)転送制御部59は、垂直歪み補正部22において出力画素の画像データを生成するために必要な画素の画像データをメモリ42に格納するため、1フレーム分の画像データをメモリ42に格納する場合と比べ、メモリ42に対するアクセス数を低減することができる。
(1−2)垂直歪み補正部22の転送制御部78は、メモリ42に保持されたデータのうち、座標演算部73により生成された範囲値VA2に基づいて、垂直歪み補正部22にて必要な画像データを読み出し、内部バッファ74に格納する。このため、1フレーム分の画像データをメモリ42から読み出す場合と比べ、メモリ42に対するアクセス数を低減することができる。
(1−3)垂直歪み補正部22の転送制御部78は、座標演算部73により生成された垂直補正範囲値VA2(垂直座標の最小値Ymin及び最大値Ymax)に基づいて、バーストサイズの画像データをメモリ42から入力バッファ77へ読み出す。この入力バッファ77に読み出された画像データは、内部バッファ74に格納される。したがって、内部バッファ74には、垂直方向の歪み補正に必要な画素の画像データが格納される。このため、不要な画像データが内部バッファ74に格納されないため、少ない容量の内部バッファ74を用いることができ、垂直歪み補正部22の回路規模の増大を抑制し、垂直歪み補正部22の実装を容易にすることができる。
(第二実施形態)
以下、第二実施形態を図13〜図22に従って説明する。
なお、本実施形態において、上記実施形態と同じ部材については同じ符号を付し、その説明の一部または全てを省略する。
図13に示すように、撮像装置は、撮像部10、画像処理部100、操作部41、メモリ(記憶部)42、表示デバイス43を有している。
画像処理部100は、データ変換部101、垂直歪み補正部102、歪み補正部23、画像処理部24、静止画コーデック部25、動画コーデック部26、メモリカードI/F27、表示I/F28、DMA調停部29、メモリコントローラ30、CPU31を有している。
データ変換部101は、図1に示すデータ変換部21と同様に、撮像部10から出力される撮像データのデータ形式(例えばRGB形式)を所定の形式(例えばYCbCr形式)に変換する。変換後の画像データは、所定の設定(例えば歪み補正の要否)に応じて出力される。例えば、歪み補正を行う設定の場合、変換後の画像データは水平歪み補正部101aに供給される。水平歪み補正部101aは、図1に示す水平歪み補正部21aと同様に、供給される画像データに対して水平方向の歪みを補正する処理を行い、処理後の画像データを出力する。処理後の画像データは、垂直歪み補正部102に供給される。歪み補正を行わない設定の場合、変換後の画像データは、アクセス制御部101bを介してメモリ42に格納される。
垂直歪み補正部102は、水平歪み補正部101aから出力される画像データに対して垂直方向の歪みを補正する処理を行う。垂直歪み補正部102はアクセス制御部102aを含む。アクセス制御部102aは、垂直歪み補正部102による処理後の画像データをメモリ42に格納する。垂直歪み補正部102は、第2の歪み補正部,第2の補正部の一例である。
本実施形態の画像処理部100において、歪み補正処理を行う場合、水平歪み補正部101aは水平歪み補正処理後の画像データを垂直歪み補正部102に対して出力する。そして、垂直歪み補正部102は、水平歪み補正部101aから供給される画像データに対して垂直歪み補正処理を行う。つまり、画像処理部100は、水平歪み補正処理後の画像データについてメモリ42にアクセス(書き込みと読み出し)を行わない。このため、メモリ42に対するアクセスが少なくなる。
図14に示すように、垂直歪み補正部102は、入力座標生成部111、出力座標生成部116、入力座標設定部113、座標演算部114,座標演算部117、イネーブル信号生成部115、複数のディレイラインバッファDLB、ディレイラインバッファ選択部112、線形補間部118、アクセス制御部102aを有している。
ディレイラインバッファDLBの数は、図13に示すメモリ42に対するアクセスに対して転送するデータ量(バースト転送量)と、1フレームの画像データにおける水平方向の画素数に応じて設定されている。また、各ディレイラインバッファDLBのそれぞれにはインデックス値が設定されている。例えば、インデックス値を[0]〜[119]とする。各ディレイラインバッファDLBやそれぞれに関するデータ等を区別する場合に、このインデックス値を用いる。例えば、ディレイラインバッファDLB[0]〜DLB[119]として示す。
入力座標生成部111は、イネーブル信号DDEに応答して入力画素の座標値を生成する。例えば、入力座標生成部111はカウンタ111aを含む。カウンタ111aは、1フレームの画像データに対する処理に応じて初期化される。そして、カウンタ111aは、水平歪み補正部101aから供給されるイネーブル信号DTEに応じて活性化し、水平歪み補正部101aから出力される画素(出力画素)の画像データに応じてカウント値をカウントアップする。画像データは、クロック信号に同期して転送される。このクロック信号は、例えば、図13に示す画像処理部100におけるシステムクロック信号である。カウンタ111aは、クロック信号をカウントし、カウント値を出力する。このカウント値は、垂直歪み補正部102が入力する画素の座標値(Xi,Yi)に対応する。例えば、水平方向の座標値Xiは、1ライン分の画素に応じて、例えば水平同期信号によりリセットされる。また、垂直方向の座標値Yoは、水平方向の座標値Xiのリセットによりカウントアップされ、1フレームの終了、例えば垂直同期信号によりリセットされる。水平方向の座標値Xiは入力座標設定部113とディレイラインバッファDLB[0]〜DLB[119]に供給され、垂直方向の座標値Yiはイネーブル信号生成部115に供給される。
各ディレイラインバッファDLB[0]〜DLB[119]は、1フレームの画像データの各ラインデータにおいて、図13に示すメモリ42に対する1回のバースト転送により転送されるデータ数に応じた数の画素の画像データを記憶可能である。各ディレイラインバッファDLB[0]〜DLB[119]は、イネーブル信号DDE、入力水平座標Xi、及び後述する座標演算部117にて生成される垂直入力座標に基づいて、1フレームの画像データについて、対応する入力水平座標Xiの画素の画像データを記憶する。
例えば、1フレームの画像データの大きさ(サイズ)を1920×1088(画素)とする。また、メモリ42に対するバースト転送量を16画素分とする。この場合、各ディレイラインバッファDLB[0]〜DLB[119]は、1フレームの画像データの各ラインにおいて、16画素分の画素の画像データを記憶する。なお、各ディレイラインバッファDLB[0]〜DLB[119]が格納可能なライン数は、垂直歪み補正における画素の移動量に応じて設定される。
例えば、ディレイラインバッファDLB[0]は、イネーブル信号DDEが第1のレベル(例えばHレベル)のとき、「0」〜「15」の入力水平座標Xiに応答して画像データPD2を対応する領域に記憶する。同様に、ディレイラインバッファDLB[1]は、イネーブル信号DDEが第1のレベル(例えば、Hレベル)のとき、「16」〜「31」の入力水平座標Xiに応答して画像データPD2を対応する領域に記憶する。そして、ディレイラインバッファDLB[119]は、イネーブル信号DDEが第1のレベル(例えばHレベル)のとき、「1904」〜「1919」の入力水平座標Xiに応答して画像データPD2を対応する領域に記憶する。一方、イネーブル信号DDEが第2のレベル(例えば、Lレベル)のとき、各ディレイラインバッファDLB[0]〜DLB[119]は、入力水平座標Xiが対応していても画像データを記憶しない。
そして、各ディレイラインバッファDLB[0]〜DLB[119]は、入力垂直座標に基づいて垂直歪み補正に必要な画素の画像データを記憶すると、ディレイラインバッファ選択部112に対してそれぞれ演算要求CR[0]〜CR[119]と、出力ライン番号OL[0]〜OL[119]を出力する。そして、各ディレイラインバッファDLB[0]〜DLB[119]は、ディレイラインバッファ選択部112から出力される演算要求受付CA[0]〜CA[119]に応答して演算要求CR[0]〜CR[119]をリセットし、垂直歪み補正処理に必要なラインに含まれる画素の画像データを順次出力する。
ディレイラインバッファ選択部112は、複数のディレイラインバッファDLB[0]〜DLB[119]から出力される演算要求CR[0]〜CR[119]について、1つの演算要求CRを受け付け、その受け付けた演算要求CRを出力するディレイラインバッファに対して演算要求受付CAを出力する。
ディレイラインバッファ選択部112は、演算要求CRを受け付けたディレイラインバッファDLBに対応するインデックス値Idxを出力する。インデックス値Idxは、複数のディレイラインバッファのそれぞれを識別するために付された番号であり、水平方向の画素の座標値(X)に対応する。インデックス値Idxは、ディレイラインバッファDLB[0]〜DLB[119]に格納される画素の座標値(Xi)を、そのディレイラインバッファDLB[0]〜DLB[119]に格納される水平方向の画素の数(例えば、「16」)で除した整数値と等しい。また、ディレイラインバッファ選択部112は、演算要求CRを受け付けたディレイラインバッファDLBの出力ライン番号OLと等しい出力ライン番号SLnを出力する。そして、ディレイラインバッファ選択部112は、演算要求CRを受け付けたディレイラインバッファから出力される2つのラインの画像データを順次線形補間部118に出力する。
ディレイラインバッファ選択部112は、ディレイラインバッファDLB[0]〜DLB[119]の水平画素数に応じた画像データを出力すると、演算要求受付CA[0]〜CA[119]をリセットする。そして、ディレイラインバッファ選択部112は、次の演算要求CRを受け付け、その受け付けた演算要求CRを出力するディレイラインバッファに対して演算要求受付CAを出力する。
入力座標設定部113には、画像データの格子ブロックに対応する設定値のテーブルが格納されている。設定値は、各格子ブロックにおいて、出力画素の座標値に対応する入力画素の座標値を算出するために必要な値であり、上記の式(2)における頂点A1〜D1のY座標値Ay〜Dyを含む。なお、格子ブロックのサイズ(水平方向(x軸方向)の画素数Mと垂直方向(y軸方向)の画素数N)はそれぞれ所定の値(例えば、「64」)に設定されている。格子ブロックに応じたテーブルの値を「GTBL[m][n]」とする。[m]は格子テーブルの水平方向の座標値、[n]は格子テーブルの垂直方向の座標値である。
例えば、1フレームの画像データの大きさ(水平方向の画素数×垂直方向の画素数)を「1920×1088」とする。そして、1つの格子ブロックの大きさを「64×64」(M=N=64)とする。この場合、水平方向のテーブルの数は「30」(m=0〜29)、垂直方向のテーブルの数は「17」(n=0〜16)となる。
そして、格子ブロックGB(m,n)に対応する頂点の座標値(垂直座標値)が含まれるテーブルを「GTBL[m][n]」とする。例えば、図7において、格子ブロック(矩形)R2内の各画素の画像データは、四角形R1に含まれる画素の画像データに基づいて生成される。そして、四角形R1の画素の座標値は、四角形R1の頂点A1,B1,C1,D1の座標値Ay,By,Cy,Dyに基づいて算出される。この格子ブロックR1の座標値を,m=1,n=1とする。この場合、格子ブロックR1に対応する頂点の座標は、「GTBL[1][1]」として参照される。
入力座標設定部113は、入力座標生成部111から供給される水平方向の座標値Xiに基づいて、出力画素に応じた2つの格子ブロックの頂点座標を含む第1の格子ブロック座標GB1を座標演算部114に出力する。垂直歪み補正部102において、出力画素の水平方向の座標値Xoは入力画素の水平方向の座標値Xiと等しい。したがって、入力座標設定部113は、出力画素の座標値Xo(=Xi)に応じた2つの格子ブロックのテーブルを選択する。
入力座標設定部113が選択する2つの格子ブロックのテーブルは、座標値Xoにおいて、1フレームの画像データを生成するために必要な入力画素の垂直方向の範囲を算出するためのものである。つまり、2つの格子ブロックは、1フレームの画像データにおいて最初のラインにおける座標値Xoの画素を含む格子ブロックと、1フレームの画像データにおいて最後のラインにおける座標値Xoの画素を含む格子ブロックである。これらの格子ブロックのY座標は、1フレームの画像データの画素数(ライン数)と、格子ブロックの垂直方向の画素数(N)に応じて設定され、例えば、「0」「16」である。格子ブロックのX座標は、水平方向の座標値Xo(=Xi)を、格子ブロックの水平方向の画素数(M)で割った結果の整数部分の値(=Xi/64)である。入力座標設定部113は、これらの座標値により選択したテーブルGTBL[Xi/64][0],GTBL[Xi/64][16]に含まれる頂点座標を含む第1の格子ブロック座標GB1を座標演算部114に出力する。
また、入力座標設定部113は、ディレイラインバッファ選択部112から出力されるインデックス値Idxと出力ライン番号SLnに基づいて、出力画素を生成するために必要な複数のラインデータを含む格子ブロックの頂点座標を含む第2の格子ブロック座標GB2を第2の座標演算部117に出力する。
第1の座標演算部114は、入力座標設定部113から供給される格子ブロック座標GB1に基づいて、水平方向の画素位置に応じて、垂直補正範囲値VA2を算出する。そして、座標演算部114は、算出した垂直補正範囲値VA2(垂直座標の最小値Ymin及び最大値Ymax)を出力する。垂直補正範囲値VA2は、イネーブル信号生成部115に供給される。
詳述すると、座標演算部114における演算式は、上記の式(2)と格子ブロック座標GB1に基づいて、
Yi=func(GTBL[m][n],Xo,Yo) ・・・(3)
と表される。座標演算部114は、水平方向にあっては格子ブロックの大きさ(画素数)の範囲内であって、垂直方向にあっては1フレーム分の画像データの大きさ(ライン数)の範囲において、垂直歪み補正処理に必要な画素の最小値Yminと最大値Ymaxを算出する。
図20に示すように、1つの格子ブロックにおける水平方向座標の最小値「0」について、1フレームの最初のライン(Yo=0)の出力画素を生成するために必要な入力画素の座標値Ymin1と、最後のライン(Yo=63)の出力画素を生成するために必要な入力画素の座標値Ymax1を算出する。同様に、1つの格子ブロックにおける水平方向座標の最大値(例えば、「63」)について、1フレームの最初のライン(Yo=0)の出力画素を生成するために必要な入力画素の座標値Ymin2と、最後のライン(Yo=63)の出力画素を生成するために必要な入力画素の座標値Ymax2を算出する。
座標演算部114は、各座標値Ymin1,Ymin2,Ymax1,Ymax2を、上記の式(3)にしたがって、
Ymin1=func(GTBL[Xi/64][0], 0,0)
Ymin2=func(GTBL[Xi/64][0],63,0)
Ymax1=func(GTBL[Xi/64][16], 0,63)
Ymax2=func(GTBL[Xi/64][16],63,63)
により算出する。そして、座標演算部114は、必要な座標値Ymin,Ymaxを、
Ymin=min(Ymin1,Ymin2)
Ymax=max(Ymax1,Ymax2)+YGof
により算出する。なお、「max(a,b)」は値「a」と値「b」のうちの大きい方の値を返す関数であり、「min(a,b)」は値「a」と値「b」のうちの小さい方の値を返す関数である。また、「YGof」は、1フレームの画像データにおける原点の座標値、つまり格子ブロックに対する画像データ全体のオフセット値である。このオフセット値「YGof」は、最初のラインを含む格子ブロックから最後のラインを含む格子ブロックまでの格子ブロックの数、つまり垂直方向における格子ブロックの数(例えば「17」)から「1」を減算した数と、格子ブロックの垂直方向の画素数N(例えば、「64」)の積により求められる値(=16×64)である。座標演算部114は、算出した座標値(Ymin,Ymax)を含む垂直補正範囲値VA2を出力する。
イネーブル信号生成部115は、入力座標生成部111から出力される入力垂直座標Yiと座標演算部114から供給される垂直補正範囲値VA2に基づいてイネーブル信号DDEを出力する。垂直補正範囲値VA2は、補正に必要な入力画素の座標値の最小値Yminと最大値Ymaxを含む。イネーブル信号生成部115は、入力垂直座標Yiが最小値Yminと最大値Ymaxの間(Ymin≦Yi≦Ymax)の場合に第1のレベル(例えばHレベル)のイネーブル信号DDEを出力する。また、イネーブル信号生成部115は、入力垂直座標Yiが最小値Yminより小さい(Yi<Ymin)か、入力垂直座標Yiが最大値Ymaxより大きい(Ymax<Yi)ときに第1のレベルと異なる第2のレベル(例えばLレベル)のイネーブル信号DDEを出力する。
出力座標生成部116は、ディレイラインバッファ選択部112から供給されるインデックス値Idxと出力ライン番号SLnに基づいて出力画素の座標値を生成する。出力座標生成部116は、クロック信号CLKをカウントするカウンタ116aを含む。インデックス値Idxは、線形補間部118に対してディレイラインバッファ選択部112から出力される出力画素Ga,Gbを記憶していたディレイラインバッファを特定するための番号である。インデックス値Idxは、出力画素の座標値Xoを、ディレイラインバッファにおける水平方向の記憶容量(記憶する画素数)で割った結果の整数値と等しい。そして、各ディレイラインバッファDLB[0]〜DLB[119]における水平方向の位置Xdは、出力画素又は出力画素を転送するためのクロック信号CLKをカウンタ116aによりカウントすることにより得られる。さらに、必要とする座標値は、格子ブロックにおける座標値(格子ブロック単位の相対座標値)である。したがって、出力座標生成部116は、ディレイラインバッファDLB[0]〜DLB[119]における水平方向の記憶画素数(例えば、「16」)と、インデックス値Idxの乗算した結果に各ディレイラインバッファDLB[0]〜DLB[119]における水平方向の位置Xdと、格子ブロックの水平方向のサイズMに基づいて、1フレームの画像における出力画素の座標値Xo(水平方向の座標値)を、次式
Xo=(Idx*16+Xd)%M
により算出する。なお、「%」は、例えば演算式「c=a%b」において、被除数aを除数bで割ったときの剰余(余りの整数)を算出する演算子である。
出力ライン番号SLnは、出力画素の垂直座標値に対応する。したがって、出力座標生成部116は、格子ブロックにおける出力画素の座標値(相対座標値)YBを、格子ブロックの垂直方向のサイズNに基づいて、
YB=SLn%N
により算出する。そして、出力座標生成部116は、算出した座標値Xo,YBを座標演算部117に出力する。
座標演算部117は、図4に示す座標演算部73と同様に、入力座標設定部113から出力される第2の格子ブロック座標GB2と、出力座標生成部116から出力される出力画素の座標値Xo,YBに基づいて、出力画素を生成するために必要な入力画素の座標値(入力垂直座標)Yiを、上記の式(3)にしたがって、
Yi=func(GTBL[m][n],Xo,YB)
により算出する。
そして、座標演算部117は、算出した入力垂直座標Yiに応じた入力垂直座標VPと補間係数Vαを生成する。算出した入力垂直座標Yiの値は、整数部分と小数部分を含む。座標演算部53は、算出した入力垂直座標Yiの整数部分と等しい値の入力垂直座標VPと、入力垂直座標Yiの小数部分と等しい値の補間係数Vαを生成する。入力垂直座標VPはディレイラインバッファDLB[0]〜DLB[119]に供給され、補間係数Vαは線形補間部118に供給される。
また、座標演算部117は、入力座標設定部113から出力される第2の格子ブロック座標GB2と、出力座標生成部116から出力される出力画素の座標値Xo,YBに基づいて、出力画素を生成するために必要な分割ラインの範囲を示す座標値Ymin3,Ymax3を算出する。
図21は、1つの格子ブロックGBに対して、4つのディレイライン入力バッファに格納された画素の座標値と、座標演算部117にて算出される座標値Ymin3,Ymax3を示す。
1つの格子ブロックGBは、水平方向の画素数(例えば、「64」)と垂直方向の画素数(例えば、「64」)に応じて、所定位置(例えば左上)の画素を基準とする座標値BX=0〜63,BY=0〜63の画素Pxを含む。ディレイライン入力バッファにおける水平方向の画素数を例えば「16」とすると、この格子ブロックGBの画素の画像データは4つのディレイライン入力バッファに記憶される。例えば、図21において、左右方向に分割した格子ブロックGB0〜GB3のそれぞれは、ディレイラインバッファDLB[0]〜DLB[3]に記憶される。図21における実線L11は、出力画素を生成するために必要な画素を示す。そして、ディレイラインバッファDLB[1]における座標値Ymin3,Ymax3を算出する。
座標演算部117は、対応するディレイラインバッファにおける水平方向座標の最小値Xminと最大値Xmaxを、出力座標生成部116から出力される座標値Xoに基づいて、
Xmin=(Xo/16)*16
Xmax=(Xo/16)*16+15
により算出する。そして、座標演算部117は、最小値Xminと最大値Xmaxの座標において必要な入力画素の垂直座標Y1,Y2を、上記の式(3)にしたがって、
Y1=func(GTBL[m][n],Xmin,YB)
Y2=func(GTBL[m][n],Xmax,YB)
により算出する。
次に、座標演算部117は、算出した座標値Y1,Y2を互いに比較し、比較結果に応じて、
(Y1>Y2)の場合、Ymin3=Y2,Ymax3=Y1
(Y1<=Y2)の場合、Ymin3=Y1,Ymax3=Y2
にしたがって座標値Ymin3,Ymax3を設定する。
垂直歪み補正処理において、出力画素を生成するために、出力画素の垂直座標値に基づいて算出した入力座標値に対応する2つの画素の画像データを用いる。出力画素の垂直座標値に対するこれらの2つの画素の垂直座標値の距離(移動量)は、撮像光学系11(図13参照)における収差(歪曲収差)に対応する。したがって、1つのディレイラインバッファに記憶された1つのラインに対応する複数画素(例えば、16画素)の出力画素に対する入力画素の移動量は、出力画素の水平方向の座標値に応じて異なる。
例えば、図22(a)において、数字を付した画素は、1つのラインにおける複数画素(図22では8画素)の出力画素を生成するために必要な画素を示す。画素に付された数字は、「ライン番号」と「水平方向の座標値」を示す。例えば、「10」は、ライン番号「1」の水平座標値「0」の画素を示す。垂直歪み補正部102(後述する線形補間部118)は、水平座標値「0」の出力画素を、「10」「20」の入力画素に基づいて生成する。同様に、水平座標値「1」の出力画素を、「11」「21」の入力画素に基づいて生成する。そして、水平座標値「7」の出力画素を、「37」「47」の入力画素に基づいて生成する。
図22(a)に示す例の場合、出力画素を生成するため、ディレイラインバッファDLB(例えば、DLB[0])に記憶されたライン番号「1」からライン番号「4」までの画像データが用いられる。言い換えれば、ディレイラインバッファDLB[0]にライン番号「1」からライン番号「4」までの画像データが記憶されると、1つの分割ラインに含まれる8画素の画像データを生成することができる。この場合、出力画素を生成するための最小の垂直座標値Ymin3は「1」であり、最大の垂直座標値Ymax3は「4」である。
このような垂直座標値Ymin3,Ymax3は、1つの分割ラインの画素が含まれる格子ブロックに対応する頂点座標に基づいて算出される。
つまり、インデックス値Idxは、分割ラインの画素における水平方向の座標値に対応し、出力ライン番号SLnは、分割ラインの垂直方向の座標値に対応する。これらの水平方向の座標値と垂直方向の座標値に基づいて、1つの格子ブロックが選択される。インデックス値Idxは、出力画素を生成するために用いる入力画素が記憶されたディレイラインバッファの番号を示し、各ディレイラインバッファDLB[0]〜DLB[119]は水平方向のラインを所定画素(例えば、16画素)に分割した分割ラインを記憶する。格子ブロックの水平方向のサイズ(画素数)は例えば64画素である。従って、インデックス値Idxを1/4倍(=16/64)した値が、格子ブロックの水平方向の座標値[BX]である。そして、出力ライン番号SLnは、1フレームの画像におけるライン番号と等しい。従って、出力ライン番号SLnを格子ブロックの垂直方向のサイズ(例えば64画素)で割った値が、格子ブロックの垂直方向の座標値[BY]である。つまり、格子ブロックの座標は、(Idx*4、SLn/64)である。このため、入力座標設定部113は、テーブルGTBL[Idx*4][SLn/64]に含まれる頂点座標を含む第2の格子ブロック座標GB2を第2の座標演算部117に出力する。
なお、1つの分割ラインの出力画素を生成するために必要な入力画素が、2つの格子ブロックにまたがって含まれる場合がある。しかし、垂直歪み補正に必要なラインの番号を得るためには、1つの格子ブロックにおける頂点座標を用いても、問題を生じることはない。なお、2つの格子ブロックに対応するテーブルに含まれる頂点座標を第2の格子ブロック座標GB2としてもよい。
線形補間部118は、座標演算部117から出力される補間係数Vαに基づいて、ディレイラインバッファ選択部112から出力される2ライン分の画像データの垂直方向に対応する2つの画素の画像データGa,Gbを線形補間して生成した画像データGcをアクセス制御部102aに出力する。例えば、線形補間部118は、2つのライン画素の画像データをアルファブレンドして補間後の画像データを生成する。例えば、ディレイラインバッファ選択部112から出力される1ライン目の画素の画像データ(画素値)をGa1、2ライン目の画素の画像データ(画素値)をGa2とする。線形補間部118は、出力する画素の画像データGa3(Gc)を、
Ga3=(1−Vα)・Ga1+Vα・Ga2
により算出する。そして、線形補間部118は、生成した画像データ(画素値)Ga3を出力する。
アクセス制御部102aは、データバッファ121と転送先アドレス演算部122を有している。データバッファ121は、線形補間部118から出力される画像データPD3を順次記憶する。転送先アドレス演算部122は、データバッファ121に格納された画像データを格納するメモリ42の転送先アドレスを演算する。転送先アドレス演算部122は、データバッファ121に格納された補正後の画像データを生成するために用いられる画像データを出力するディレイラインバッファのインデックス値Idxと、補正後の画像データの出力垂直座標Yoに基づいて、転送先アドレスを算出する。アクセス制御部102aは、転送先アドレスと補正後の画像データをメモリ42に出力する。メモリ42は、転送先アドレスに応じた領域に、アクセス制御部102aから転送される画像データを記憶する。
次に、ディレイラインバッファDLB[0]〜DLB[119]の詳細を説明する。
図15に示すように、ディレイラインバッファDLB[0]は、ディレイライン入力バッファDIB[0]とディレイライン出力制御部DOC[0]を有している。同様に、ディレイラインバッファDLB[1]〜DLB[119]は、ディレイライン入力バッファDIB[0]〜DIB[119]とディレイライン出力制御部DOC[1]〜DOC[119]を有している。
ディレイライン入力バッファDIB[0]〜DIB[119]は、1フレームの画像データを水平方向に分割した部分ラインデータを複数段記憶する。1段の分割ラインデータのデータ量は、図13に示すメモリ42に対する1回のバースト転送により転送されるデータ量に応じて設定され、例えば16画素の画像データを記憶する。分割ラインデータの段数は、垂直歪み補正処理における移動量に応じて設定されている。
ディレイライン入力バッファDIB[0]〜DIB[119]は、それぞれインデックス値Idxが設定され、そのインデックス値Idxに応じた水平座標の画素の画像データを記憶する。例えば、1フレームの画像データにおける水平方向の画素数を「1920」とする。この場合、インデックス値Idxは、「0」〜「119」となる。インデックス値Idxが「0」のディレイライン入力バッファDIBは、水平方向の座標値が「0」〜「15」の画素の画像データを記憶し、インデックス値Idxが「1」のディレイライン入力バッファDIBは、水平方向の座標値が「16」〜「31」の画素の画像データを記憶する。そして、インデックス値Idxが「119」のディレイライン入力バッファDIBは、水平方向の座標値が「1904」〜「1919」の画素の画像データを記憶する。
各ディレイライン入力バッファDIB[0]〜DIB[119]は、第1のレベル(Hレベル)のイネーブル信号DDEに応答して画像データを記憶する。イネーブル信号DDEは、各ディレイライン入力バッファDIB[0]〜DIB[119]が記憶する分割ラインに垂直歪み補正処理に必要な画素が含まれる場合に第1のレベルとなる。各ディレイライン入力バッファDIB[0]〜DIB[119]は、それぞれ対応する座標値の画素が含まれる分割ラインデータを記憶する。
ディレイライン入力バッファDIB[0]〜DIB[119]は、記憶した分割ラインの段数に応じたバッファ段数BL[0]〜BL[119]を出力する。ディレイライン出力制御部DOC[0]〜DOC[119]は、バッファ段数BL[0]〜BL[119]を監視し、垂直歪み補正処理が可能なバッファ段数になると、ディレイラインバッファ選択部112に演算要求CR[0]〜CR[119]を出力する。ディレイラインバッファ選択部112は、各ディレイライン出力制御部DOC[0]〜DOC[119]から出力される演算要求CR[0]〜CR[119]に応じて演算要求受付CA[0]〜CA[119]を出力する。例えば、ディレイラインバッファ選択部112は、複数の演算要求CRを調停し、1つの演算要求CRに対応する演算要求受付CAを有効にする。有効な演算要求受付CAを受け取ったディレイライン出力制御部DOC[0]〜DOC[119]は、ディレイライン入力バッファDIB[0]〜DIB[119]に対してリード要求RR[0]〜RR[119]とリードオフセット値ROF[0]〜ROF[119]を出力する。ディレイライン入力バッファDIBは、リード要求RR[0]〜RR[119]とリードオフセット値ROF[0]〜ROF[119]に基づいて、垂直歪み補正処理に必要な画像データを出力する。
出力バッファOBは2つのバッファ部OBa,OBbを有し、各バッファ部OBa,OBbはそれぞれ、2つの分割ラインの画像データを記憶する。出力バッファOBは、バッファ部OBa,OBbに対して交互にデータの書き込みとデータの読み出しを行う。例えば、第1のバッファ部OBaに対して、1つのディレイライン入力バッファから出力される画像データを記憶する。そして、第1のバッファ部OBaから画像データの読み出しを行うとき、第2のバッファ部OBbに対して画像データの書き込みを行う。ディレイラインバッファ選択部112は、出力バッファOBから出力される画像データを、図14に示す線形補間部118に出力する。
次に、ディレイライン入力バッファDIB[0]を説明する。なお、各ディレイライン入力バッファDIB[1]〜DIB[119]はディレイライン入力バッファDIB[0]と同じであるため、ディレイライン入力バッファDIB[1]〜DIB[119]の図面及び説明を省略する。
図16に示すように、ディレイライン入力バッファDIB[0]は、ライト制御部131、メモリアレイ132、リード制御部133、差分演算部134を有している。
メモリアレイ132は、複数段(図において12段)のラインメモリ132aを有している。各ラインメモリ132aの記憶容量は図13に示すメモリ42に対する1回のバースト転送における転送量に応じた値に設定され、例えば16画素分の画像データを記憶するように設定されている。メモリアレイ132の段数、つまりラインメモリ132aの数(ライン数)は、垂直歪み補正処理における垂直移動量に応じた段数により設定されている。
ライト制御部131には、画像データPD2と、画像データPD2に対応する入力水平座標Xiが供給される。また、ライト制御部131には、イネーブル信号DDEが供給される。
ライト制御部131はレジスタ131aを有し、レジスタ131aにはディレイライン入力バッファDIBのインデックス値Idxが格納されている。
ライト制御部131は、第1のレベル(Hレベル)のイネーブル信号DDEに応答してメモリアレイ132に対する書き込み処理を行い、第2のレベル(Lレベル)のイネーブル信号DDEに応答して書き込み処理を行わない。書き込み処理において、ライト制御部131は、入力水平座標Xiとインデックス値Idxに基づいて、画像データPD2がディレイライン入力バッファDIB[0]に対応するデータか否かを判定する。例えば、ライト制御部131は、入力水平座標Xiをメモリアレイ132の記憶容量に応じた水平画素数(例えば、16画素)で除算演算し、その演算結果の整数値とインデックス値Idxとを比較する。ライト制御部131は、演算結果の整数値がインデックス値Idxと等しい場合、自バッファDIB[0]に対応する画素の画像データと判定し、それらが等しくない場合に自バッファDIB[0]に対応しない画素の画像データと判定する。そして、ライト制御部131は、自バッファに対応する画素の画像データと判定した場合に、その画像データを、ライトポインタWPにより示されるラインメモリに対して、入力水平座標Xiに応じた領域に格納する。例えば、ライト制御部131は、入力水平座標Xiをインデックス値Idxにより剰余演算し、その演算結果の値を各ラインメモリ132aにおけるアドレス(Xアドレス)とし、そのXアドレスに画像データを格納する。そして、ライト制御部131は、各ラインメモリ132aにおいて最後の画像データを格納すると、ライトポインタWPを更新(+1)する。
このように、ライト制御部131は、自バッファDIB[0]のインデックス値Idxに対応する複数の画素の画像データを、ライトポインタWPにしたがってラインメモリ132aに順次格納する。そして、ライト制御部131は、メモリアレイ132の段数に応じて、ライトポインタWPをリセットする。図16において、メモリアレイ132は12段のラインメモリ132aを有している。ライト制御部131は、値が「11」のライトポインタWPにしたがって12段目のラインメモリ132aに分割ラインデータを格納すると、ライトポインタWPの値をリセット(=0)する。
リード制御部133には、リード要求RR[0]、リードオフセット値ROF[0]、垂直座標値Ymin3が供給される。リード制御部133は、リード要求RR[0]に応答して、クロック信号CLKをカウントし、カウント値をXアドレスとする。そして、リード制御部133は、XアドレスとリードポインタRPと垂直座標値Ymin3とリードオフセット値ROF[0]に基づいてメモリアレイ132のラインメモリ132aから、垂直歪み補正処理に必要な画像データを読み出し、出力バッファOBに出力する。
詳しくは、リード制御部133は、リードポインタRPが示すアドレスに、リードオフセット値ROF[0]を加算して第1の読出アドレスを生成する。そして、リード制御部133は、第1の読出アドレスに示されるラインメモリにおいて、Xアドレスにより示される領域に格納された画像データを読み出し、その読み出した画像データと等しい第1読出データRDaを出力する。更に、リード制御部133は、第1の読出アドレスに所定値(例えば「1」)を加算して第2の読出アドレスを生成する。そして、リード制御部133は、第2の読出アドレスに示されるラインメモリにおいて、Xアドレスにより示される領域に格納された画像データを読み出し、その読み出した画像データと等しい第2読出データRDbを出力する。
リード制御部133は、リード要求RR[0]に対する読出処理を終了すると、次のサイクルで、リードポインタRPと垂直座標値Ymin3に基づいてリードポインタRPを制御する。詳しくは、リード制御部133は、垂直座標値Ymin3とリードポインタRPの差分値ΔYを算出する。そして、リード制御部133は、差分値ΔYをリードポインタRPに加算して新たなリードポインタRPとする。また、リード制御部133は、Xアドレスを生成するためのカウンタ値をリセットする。
差分演算部134は、ライトポインタWPとリードポインタRPの差の値を算出し、その差分値BL[0]を出力する。ライトポインタWPは次に画像データを書き込むラインメモリを示し、リードポインタRPは、次に垂直歪み補正処理に必要な画素の範囲における最小の座標値(垂直座標値Ymin3)に応じたラインメモリを示す。したがって、ライトポインタWPとリードポインタRPの差分値BL[0]は、画像データが格納されたラインメモリの段数、つまり1フレームの画像においてディレイライン入力バッファに格納されたラインの数を示す。差分値BL[0]は、図15に示すディレイライン出力制御部DOCに供給される。ディレイライン出力制御部DOCは、差分値BL[0]が垂直歪み補正処理に必要な段数になると、ディレイライン入力バッファDIBに対してリード要求RR[0]を出力する。
次に、ディレイライン入力バッファDIB[0]における読出動作を説明する。
図17は、図22(a)に示す画素の画像データを読み出す場合を示す。この場合、図13に示すラインメモリ132aの記憶容量を8画素分としている。なお、図17に示す画像データRDa,RDbは、それらの画像データRDa,RDbを読み出したラインメモリの段数を示している。
例えば、リードポインタRPを「1」、垂直座標値Ymin3を「1」とする。
Hレベルの読出要求RR[0]が供給されると、クロック信号CLKのカウントを開始する。第1のサイクルT0において、リードポインタRPにリードオフセット値ROF[0](=0)を加算して得られた第1の読出アドレスにしたがって、「1」のラインメモリ132aにおいて、Xアドレス(=0)における画像データを読み出し、画像データを第1読出データRDaとして出力する。同様に、リードポインタRPにリードオフセット値ROF[0]と「1」を加算して得られた第2の読出アドレスにしたがって、「2」のラインメモリ132aにおいて、Xアドレス(=0)における画像データを読み出し、画像データを第2読出データRDbとして出力する。
第2のサイクルT1と第3のサイクルT2において、第1のサイクルT0と同様に、「1」のラインメモリ132aと「2」のラインメモリ132aから、Xアドレス(=1,2)における画像データをそれぞれ読み出し、画像データを第1読出データRDa,第2読出データRDbとして順次出力する。
次に、第4〜第7のサイクルT3〜T6において、リードポインタRPにリードオフセット値ROF[0](=1)を加算して得られた第1の読出アドレスにしたがって、「2」のラインメモリ132aにおいて、Xアドレス(=3〜6)における画像データを読み出し、画像データを第1読出データRDaとして順次出力する。同様に、リードポインタRPにリードオフセット値ROF[0]と「1」を加算して得られた第2の読出アドレスにしたがって、「3」のラインメモリ132aにおいて、Xアドレス(=3〜6)における画像データを読み出し、画像データを第2読出データRDbとして順次出力する。
そして、第8のサイクルT7において、リードポインタRPにリードオフセット値ROF[0](=2)を加算して得られた第1の読出アドレスにしたがって、「3」のラインメモリ132aにおいて、Xアドレス(=7)における画像データを読み出し、画像データを第1読出データRDaとして出力する。同様に、リードポインタRPにリードオフセット値ROF[0]と「1」を加算して得られた第2の読出アドレスにしたがって、「4」のラインメモリ132aにおいて、Xアドレス(=7)における画像データを読み出し、画像データを第2読出データRDbとして出力する。
図22(a)(b)は、図17に示すタイミングチャートによってメモリアレイ132から読み出される画素と、出力バッファOB(第1のバッファ部OBa)に格納された画素を示す。出力バッファOB(OBa)の第1領域OBa0には、画素「10」〜「12」,「23」〜「26」、「37」が格納される。また、出力バッファOB(OBa)の第2領域OBa1には、画素「20」〜「22」,「33」〜「36」,「47」が格納される。したがって、出力バッファOB(OBa)には、図22(b)に示すように垂直方向の座標値が異なる画素の画像データが、1つの領域OBa0(OBa1)に格納される。そして、この領域OBa0,OBa1の画像データを順次読み出すことにより、垂直歪み補正処理を行うことができる。
次に、ディレイライン出力制御部DOC[0]を説明する。なお、各ディレイライン出力制御部DOC[1]〜DOC[119]はディレイライン出力制御部DOC[0]と同じであるため、ディレイライン出力制御部DOC[1]〜DOC[119]の図面及び説明を省略する。
図18に示すように、ディレイライン出力制御部DOC[0]は、出力ライン番号生成部141、段数演算部142、比較器143、リード要求生成部144、リードオフセット値生成部145を有している。
出力ライン番号生成部141は、リード要求RR[0]を監視し、監視結果に応じて出力ライン番号OL[0]を出力する。出力ライン番号生成部141は、例えば、リード要求をカウントし、そのカウント値を出力ライン番号OL[0]として出力する。出力ライン番号生成部141は、所定レベル(例えばLレベル)のリード要求RR[0]に応じてカウント値をカウントアップ(+1)する。リード要求は、ディレイライン入力バッファDIBから対応する分割ラインの画像データの読み出しが終了すると、取り下げられる、例えばHレベルからLレベルへと遷移する。画像データの読み出し終了は、例えば、分割ラインの画素数に応じた数のリードオフセット値ROF[0]を出力することにより判定される。出力ライン番号生成部141は、リード要求RR[0]が取下げられると、カウント値、つまり出力ライン番号OL[0]をカウントアップ(+1)する。
段数演算部142は、垂直歪み補正処理における演算必要段数CLを算出する。段数演算部142には、図14に示す第2の座標演算部117から垂直座標値Ymin3,Ymax3が供給される。段数演算部142は、垂直座標値Ymin3と垂直座標値Ymax3の差の値を算出する。この差分値は、次ラインの画像データを算出する演算に必要な段数(ライン数)、つまり演算必要段数CLである。
比較器143は、段数演算部142により算出され演算必要段数CLと、ディレイライン入力バッファDIBから出力されるバッファ段数BL[0]を比較する。そして、比較器143は、バッファ段数BL[0]が演算必要段数CL以上のとき、演算要求CR[0]を出力する。演算要求CR[0]は、図15に示すディレイライン出力制御部DOCに供給される。ディレイライン出力制御部DOCは、演算要求CR[0]を受け付けると、演算要求受付CA[0]を出力する。
リード要求生成部144は、図15に示すディレイライン出力制御部DOCから供給される演算要求受付CA[0]に応答してリード要求RR[0]を出力する。
リードオフセット値生成部145には、入力垂直座標VPが供給される。リードオフセット値生成部145は、供給される入力垂直座標VPを初期値として記憶する。そして、リードオフセット値生成部145は、クロック信号CLKに同期して入力される入力垂直座標VPと初期値の差(=VP−初期値)をリードオフセット値ROF[0]として出力する。
次に、ディレイライン出力制御部DOCの動作を説明する。
図19に示すように、垂直座標値Ymin3を「1」、垂直座標値Ymax3を「4」とする。この場合、演算必要段数CLは「4」(=4−1+1)となる。そして、バッファ段数BL[0]が「3」から「4」に変化すると、Hレベルの演算要求CR[0]を出力する。図15に示すディレイラインバッファ選択部112は、Hレベルの演算要求CR[0]に応答してHレベルの演算要求受付CA[0]を出力する。このHレベルの演算要求受付CA[0]に応答してHレベルのリード要求RR[0]を出力する。
次に、入力垂直座標VPが供給されると、その入力垂直座標VPを初期値VPiとして記憶する。そして、入力垂直座標VPと初期値VPiの差を算出した結果に応じたリードオフセット値ROF[0]を出力する。
分割ラインの画素数分(図19では8画素)のデータが図16のディレイライン入力バッファから読み出されると、Lレベルのリード要求RR[0]を出力する。このリード要求RR[0]の立ち下がり、つまりLレベルのリード要求RR[0]に応じて出力ライン番号OL[0]をカウントアップ(+1)する。そして、垂直座標値Ymin3,Ymax3が更新される。
次に、本実施形態における作用を説明する。
水平歪み補正部101aは、線形補間部57により生成した画像データPD2を出力する。垂直歪み補正部102は、水平歪み補正部101aから出力される画像データPD2をディレイラインバッファDLB[0]〜DLB[119]に記憶する。そして、ディレイラインバッファDLB[0]〜DLB[119]から読み出した画像データを線形補間処理して生成した画像データをメモリ42に格納する。このため、水平方向の歪み補正と垂直方向の歪み補正の間で、メモリ42に対するアクセスは発生しない。
第1の座標演算部114は、入力座標設定部113から供給される格子ブロック座標GB1に基づいて、水平方向の画素位置に応じて、垂直補正範囲値VA2を算出する。イネーブル信号生成部115は、入力座標生成部111から出力される入力垂直座標Yiと座標演算部114から供給される垂直補正範囲値VA2に基づいてイネーブル信号DDEを出力する。各ディレイラインバッファDLB[0]〜DLB[119]は、イネーブル信号DDEに基づいて、対応する座標Xi,Yiの画像データPD2を記憶する。
ディレイラインバッファDLB[0]〜DLB[119]は、記憶した分割ラインに応じたバッファ段数BL[0]〜BL[119]に基づいて演算要求CR[0]〜CR[119]、出力ライン番号OL[0]〜OL[119]を出力する。そして、各ディレイラインバッファDLB[0]〜DLB[119]は、ディレイラインバッファ選択部112から出力される演算要求受付CA[0]〜CA[119]に応答して演算要求CR[0]〜CR[119]をリセットし、垂直歪み補正処理に必要なラインに含まれる画素の画像データを順次出力する。このように、必要な画像データが格納されたディレイラインバッファDLBから順に歪み補正処理が行われる。
以上記述したように、本実施形態によれば、以下の効果を奏する。
(2−1)水平歪み補正部101aは、線形補間部57により生成した画像データPD2を出力する。垂直歪み補正部102は、水平歪み補正部101aから出力される画像データPD2をディレイラインバッファDLB[0]〜DLB[119]に記憶する。そして、ディレイラインバッファDLB[0]〜DLB[119]から読み出した画像データを線形補間処理して生成した画像データをメモリ42に格納する。このため、水平歪み補正後の画像データをメモリ42に格納する場合と比べ、メモリ42に対するアクセス数を低減することができる。これにより、歪み補正処理にかかる時間を、短縮することができる。
(2−2)各ディレイラインバッファDLB[0]〜DLB[119]は、イネーブル信号DDEに基づいて、画像データPD2を記憶する。このイネーブル信号DDEは、入力する画像データPD2の座標値に対して、座標演算部114により生成された垂直補正範囲値VA2に基づいて生成される。座標演算部114は、入力座標設定部113から供給される格子ブロック座標GB1に基づいて、水平方向の画素位置に応じて、垂直補正範囲値VA2を算出する。したがって、各ディレイラインバッファDLB[0]〜DLB[119]は、垂直方向の歪み補正に必要な画素の画像データを記憶する。このため、歪み補正に不要な画像データがディレイラインバッファDLB[0]〜DLB[119]に格納されないため、少ない容量のディレイラインバッファDLB[0]〜DLB[119]を用いることができ、垂直歪み補正部102の回路規模の増大を抑制し、垂直歪み補正部102の実装を容易にすることができる。
(第三実施形態)
以下、第三実施形態を図23〜図25に従って説明する。
なお、本実施形態において、上記実施形態と同じ部材については同じ符号を付し、その説明の一部または全てを省略する。
図23に示すように、撮像装置は、撮像部10、画像処理部200、操作部41、メモリ(記憶部)42、表示デバイス43を有している。
画像処理部200は、データ変換部201、第1の垂直歪み補正部202、第2の垂直歪み補正部203、歪み補正部23、画像処理部24、静止画コーデック部25、動画コーデック部26、メモリカードI/F27、表示I/F28、DMA調停部29、メモリコントローラ30、CPU31を有している。データ変換部201は、水平歪み補正部201a、アクセス制御部201bを含む。第1の垂直歪み補正部202はアクセス制御部202aを含み、第2の垂直歪み補正部203はアクセス制御部203aを含む。垂直歪み補正部202は、第2の歪み補正部,第2の補正部の一例である。垂直歪み補正部203は、第2の歪み補正部,第2の補正部の一例である。
第1の垂直歪み補正部202の構成は、図13に示す垂直歪み補正部102の構成と同様である。また、第2の垂直歪み補正部203の構成は、図1に示す垂直歪み補正部22の構成と同様である。そして、第1の垂直歪み補正部202と第2の垂直歪み補正部203には、それぞれ処理範囲が設定されている。第1の垂直歪み補正部202と第2の垂直歪み補正部203は、それぞれに設定された処理範囲に含まれる画素について、垂直歪み補正処理を行い、処理後の画像データをメモリ42に格納する。
第1の垂直歪み補正部202は、水平歪み補正部101aから出力される画像データについて、設定された第1の処理範囲の画像データか否かを判定する。そして、第1の垂直歪み補正部202は、設定された第1の処理範囲の画像データに対して垂直歪み補正処理を行い、処理後の画像データをメモリ42に格納する。また、第1の垂直歪み補正部202は、設定された第1の処理範囲に含まれない画像データをメモリ42に格納する。
第2の垂直歪み補正部203は、メモリ42をアクセスし、設定された第2の処理範囲に応じた画像データを読み出し、その読み出した画像データに対して垂直歪み補正処理を行う。そして、第2の垂直歪み補正部203は、処理後の画像データをメモリ42に格納する。
処理範囲は、例えば垂直歪み補正処理における画素の移動量に応じて設定される。
図24(a)は、樽型の歪みに対する水平歪み補正処理後の画像データIP21を示し、図24(b)は、垂直補正処理後の画像データOP21を示す。図24(a)に示す画像データIP21において、ハッチングを付していない部分は垂直歪み補正処理に必要な画素が含まれる領域を示す。この画像データIP21の場合、水平方向において中央付近の画素の移動量は、左右両端付近の画素の移動量より小さい。したがって、水平方向において中央部分を含む処理範囲AR11を第1の処理範囲として第1の垂直歪み補正部202に設定し、左右両端の処理範囲AR12,AR13を第2の処理範囲として第2の垂直歪み補正部203に設定する。第1の垂直歪み補正部202に含まれる内部バッファ74の記憶容量(記憶するライン数)は、画素の移動量に応じて設定される。したがって、移動量の少ない処理範囲AR11を第1の垂直歪み補正部202に設定することで、内部バッファ74の記憶容量を少なくすることができる。このこと、画像処理装置における第1の垂直歪み補正部202の面積の増大を抑制し、第1の垂直歪み補正部202の実装を容易にする。処理範囲AR11〜AR13は第1の領域の一例である。
図25(a)は、糸巻き型の歪みに対する水平歪み補正処理後の画像データIP22を示し、図25(b)は、垂直補正処理後の画像データOP22を示す。図25(a)に示す画像データIP21において、ハッチングを付していない部分は垂直歪み補正処理に必要な画素が含まれる領域を示す。この画像データIP22の場合、水平方向において中央付近の画素の移動量は、左右両端付近の画素の移動量より大きい。したがって、左右両端の処理範囲AR22,AR23を第1の処理範囲として第1の垂直歪み補正部202に設定し、水平方向において中央部分を含む処理範囲AR21を第2の処理範囲として第2の垂直歪み補正部203に設定する。このように、移動量の少ない処理範囲AR22,AR23を第1の垂直歪み補正部202に設定することで、内部バッファ74の記憶容量を少なくすることができる。このこと、画像処理装置における第1の垂直歪み補正部202の面積の増大を抑制し、第1の垂直歪み補正部202の実装を容易にする。処理範囲AR21〜AR23は第1の領域の一例である。
なお、糸巻き型の歪みを含む画像データを歪み補正処理する場合、出力画像のサイズ(画素数)を入力画像のサイズに対して小さくするように行う場合がある。この場合、図25に示す画像データIP22とは逆に、水平方向において中央付近の画素の移動量は、左右両端付近の画素の移動量より小さくなる。このような処理では、図24(a)(b)に示す樽型の歪みに対する処理範囲の設定と同様に、水平方向において中央部分を含む処理範囲AR21を第1の処理範囲として第1の垂直歪み補正部202に設定し、左右両端の処理範囲AR22,AR23を第2の処理範囲として第2の垂直歪み補正部203に設定する。このように処理範囲を設定することで、上記の処理と同様に、内部バッファ74の記憶容量を少なくすることができる。
次に、本実施形態における作用を説明する。
第1の垂直歪み補正部202と第2の垂直歪み補正部203には、それぞれ処理範囲が設定されている。第1の垂直歪み補正部202と第2の垂直歪み補正部203は、それぞれに設定された処理範囲に含まれる画素について、垂直歪み補正処理を行い、処理後の画像データをメモリ42に格納する。
例えば、移動量が多い画素を含む領域については第2の垂直歪み補正部203に設定することで、第1の垂直歪み補正部202において記憶する画像データの量が少なくなり、少ない容量のディレイラインバッファDLBを用いることが可能となる。
以上記述したように、本実施形態によれば、以下の効果を奏する。
(3−1)第1の垂直歪み補正部202と第2の垂直歪み補正部203には、それぞれ処理範囲が設定されている。第1の垂直歪み補正部202と第2の垂直歪み補正部203は、それぞれに設定された処理範囲に含まれる画素について、垂直歪み補正処理を行い、処理後の画像データをメモリ42に格納する。
例えば、移動量が多い画素を含む領域については第2の垂直歪み補正部203に設定することで、第1の垂直歪み補正部202において記憶する画像データの量が少なくなり、少ない容量のディレイラインバッファDLBを用いることで、垂直歪み補正部202の回路規模の増大を抑制し、垂直歪み補正部202の実装を容易にすることができる。
尚、上記各実施形態は、以下の態様で実施してもよい。
・図2に示す水平歪み補正部21aにおいて、FIFOメモリ55のリードポインタをリード部56が制御するようにしてもよい。例えば、リード部56は、入力水平座標HPと読出位置を記憶するレジスタを有している。リード部56は、1つのラインにおける画素の読み出しを開始するとき、レジスタの読出位置をリセット(=0)する。ライト部54は、FIFOメモリ55に2画素以上の画像データが格納されると、読出処理を開始する。
先ず、リード部56は、座標演算部53から供給される入力水平座標HPをレジスタに記憶する。そして、リード部56は、レジスタから読み出した読出位置と等しい値のリードポインタをFIFOメモリ55に出力し、FIFOメモリ55から1つの画素の画像データを読み出す。さらに、リード部56は、読出位置の値に所定の値(「1」)を加算した値と等しいリードポインタをFIFOメモリ55に出力し、FIFOメモリ55から1つの画素の画像データを読み出す。これにより、リード部56は、連続する2つの画素の画像データをFIFOメモリ55から読み出す。
次に、リード部56は、座標演算部53から供給される入力水平座標HPと、レジスタから読み出した入力水平座標とを比較する。そして、リード部56は、入力水平座標HPとレジスタから読み出した入力水平座標とが互いに等しい場合、レジスタに記憶した読出位置に従ってFIFOメモリ55から2つの画素の画像データを読み出す。一方、入力水平座標HPとレジスタから読み出した入力水平座標が互いに異なる場合、リード部56は、レジスタの読出位置を更新(+1)する。そして、リード部56は、更新した読出位置に従ってFIFOメモリ55から2つの画素の画像データを読み出す。
・図2に示すアクセス制御部21bにおいて、垂直歪み補正部22において不要な画素の画像データをバッファ58に記憶しないように、バッファ58を制御してもよい。
・格子ブロックの大きさ(水平方向の画素数×垂直方向の画素数)を適宜変更してもよい。例えば、各ディレイラインバッファDLB[0]〜DLB[119]において記憶する水平方向の画素数と等しくしてもよい。また、各ディレイラインバッファDLB[0]〜DLB[119]において記憶する水平方向の画素数の整数倍(2倍等)に設定してもよい。
・第三実施形態に対し、水平歪み補正部101aに処理範囲を設定してもよい。
例えば、水平歪み補正部101aに第1の処理範囲を設定する。水平歪み補正部101aは、水平歪み補正処理後の画像データについて、第1の処理範囲に含まれる画像データを第1の垂直歪み補正部202に出力し、第1の処理範囲に含まれない画像データをメモリ42に格納する。また、水平歪み補正部101aに第2の処理範囲を設定してもよい。この場合、水平歪み補正部101aは、水平歪み補正処理後の画像データについて、第2の処理範囲に含まれる画像データをメモリ42に格納し、第2の処理範囲に含まれない画像データを第1の垂直歪み補正部202に出力する。
・上記の実施形態に対し、データ転送やメモリ42に格納する画像データのフォーマットを適宜変更してもよい。
例えば、図26(a)は、メモリ42に面順次フォーマットにより格納された画像データを示し、図26(b)は、メモリ42に点順次フォーマットにより格納された画像データを示す。図26(a)に示すように、メモリ42の第1領域42aには、1フレーム分の輝度情報Yが格納され、第2領域42bには1フレーム分の色差情報Cbが格納され、第3領域42cには1フレーム分の色差情報Crが格納される。なお、図26(a)には、各領域42a〜42cに格納された1つの画素に対応する輝度情報Yと色差情報Cb、Crを示す。
図26(b)に示すように、点順次フォーマットの場合、メモリ42には、各画素おける輝度情報Yと色差情報Cb、Crが順次格納される。なお、図26(b)には、1つの画素における輝度情報Yと色差情報Cb、Crを示す。
例えば、輝度情報Yのデータ量を8ビット(1バイト)、色差情報Cb,Crのデータ両をそれぞれ4ビット(0.5バイト)とする。そして、メモリ42に対する1回の転送におけるデータ量を16バイトとする。図26(a)に示す面順次フォーマットの場合、1回のアクセスで16画素分の輝度情報Yを転送する。一方、図26(b)に示す点順次フォーマットの場合、1回のアクセスで8画素分の輝度情報Y及び色差情報Cb,Crを転送する。
このように転送される画像データにおいて、1つのラインの出力画素を生成するために必要な画素を図27(a)と図27(b)に示す。図27(a)及び図27(b)において、水平方向に沿って延びる矢印にて示される範囲は、1回のアクセスによりメモリ42から読み出される画素を示す。また、垂直方向に沿って延びる矢印にて示す範囲は、ディレイラインバッファに格納された画像データに対して、垂直歪み補正処理に必要な画素を示す。このように、面順次フォーマット(輝度情報Y)の場合、垂直歪み補正処理のために、ディレイラインバッファDLB[1]に9ライン分の画素を記憶する必要がある。これに対し、点順次フォーマットの場合垂直歪み補正処理のために、ディレイラインバッファDLB[1]に5ライン分の画素を記憶すればよい。つまり、点順次フォーマットの画像データを記憶するディレイラインバッファDLB[1]の記憶容量を、面順次フォーマットの場合に比べて少なくすることができる。また、ディレイラインバッファDLB[1]には、輝度情報Yと色差情報Cb,Crが記憶されている。このため、1回のアクセスにより転送されたデータに基づいて、各情報Y,Cb,Crに対応する出力画素の情報を生成することができる。
・格子ブロックのx軸方向(水平方向)の大きさ(画素数)を「M」と、y軸方向(垂直方向)の大きさ(画素数)を「N」を同じ値(M=N=64)としたが、画素数Mと画素数Nを互いに異なる値としてもよい。
・上記第2実施形態において、水平歪み補正部101aは処理後の画像データをメモリ42に格納し、垂直歪み補正部102はメモリ42から読み出した画像データに対して垂直歪み補正処理を行うようにしてもよい。この場合、垂直歪み補正部102は、メモリ42に格納された画像データをラスタ順、つまり水平歪み補正部101aがメモリ42に書き込んだ順番で画像データを読み出せばよいため、複雑な処理を行うことなく、画像データを読み出すことが可能となる。
21a 水平歪み補正部
22 垂直歪み補正部
101a 水平歪み補正部
102 垂直歪み補正部
201a 水平歪み補正部
202 垂直歪み補正部

Claims (9)

  1. 撮像部に接続される画像処理装置であって、
    前記撮像部にて撮像した1フレームの画像データが入力され、前記1フレームの画像データの第1の方向に隣接する2つの入力画素に基づいて1つの第1出力画素を生成する第1の歪み補正部と、
    前記第1の方向と異なる第2の方向に隣接する2つの前記第1出力画素に基づいて1つの第2出力画素を生成し、前記第2出力画素をメモリに格納する第2の歪み補正部と
    を含み、
    前記第2の歪み補正部は、前記1フレームの画像を分割した複数の格子ブロックの各頂点の格子ブロック座標に基づいて、前記第2出力画素の座標値に対応した入力座標及び補間係数を生成し、前記第1の方向に連続し前記メモリに対する1回のアクセスにおける転送量に応じた複数の前記第1出力画素を含み前記第1の方向に連続し前記メモリに対する1回のアクセスにおける転送量に応じた複数の第2出力画素に対応する前記第1出力画素の座標値に基づく複数の分割ラインを記憶部に記憶し、前記複数の第2出力画素に対応した前記入力座標に基づいて、前記記憶部から前記第2の方向に隣接する2つの前記第1出力画素を順次読み出し、該読み出した2つの前記第1出力画素を前記補間係数に基づいて線形補間処理して前記第2出力画素を生成するものであり
    前記第2の歪み補正部は、
    複数の分割ラインを記憶する複数のディレイラインバッファと、
    入力する前記第1出力画素の座標値を生成する入力座標生成部と、
    前記格子ブロック座標を記憶し、前記入力座標生成部により生成された座標値に応じた第1の格子ブロック座標を出力し、前記格子ブロック座標に基づいて前記第1出力画素を出力するディレイラインバッファのインデックス値と出力ライン番号に応じた第2の格子ブロック座標を出力する入力座標設定部と、
    前記第1の格子ブロック座標に基づいて、前記第2出力画素の座標値に応じて必要とする前記第1出力画素の範囲を算出する第1の座標演算部と、
    前記第1の座標演算部により算出された前記第1出力画素の範囲と、前記入力座標生成部により生成された前記第1出力画素の座標値に基づいてイネーブル信号を生成するイネーブル信号生成部と、
    前記インデックス値と前記出力ライン番号に基づいて前記ディレイラインバッファから出力される前記第1出力画素の座標値を生成する出力座標生成部と、
    前記第2の格子ブロック座標と前記第1出力画素の座標値に基づいて、前記第1の方向に連続し前記メモリに対する1回のアクセスにおける転送量に応じた複数の第2出力画素に対応する複数の前記第1出力画素の前記第2の方向の座標値のうちの最小の座標値と最大の座標値と、前記補間係数及び前記入力座標を生成する第2の座標演算部と、
    前記複数のディレイラインバッファから出力される演算要求に基づいて選択した1つのディレイラインバッファに記憶された前記第1出力画素を読み出して出力するディレイラインバッファ選択部と、
    前記ディレイラインバッファ選択部から出力される2つの前記第1出力画素を前記補間係数に基づいて線形補間処理して前記第2出力画素を生成する線形補間部と、
    を有し、
    前記複数のディレイラインバッファは、
    前記入力座標生成部により生成された座標値と前記イネーブル信号に基づいて、対応する座標値の画素データを含む分割ラインを記憶し、
    記憶した分割ラインに応じたバッファ段数と前記第2の座標演算部にて生成された前記最小の座標値と前記最大の座標値に基づいて前記演算要求を出力すること、
    を特徴とする画像処理装置。
  2. 複数の前記ディレイラインバッファはそれぞれ、
    前記第1出力画素を記憶し、記憶した前記分割ラインの数に応じてバッファ段数を出力し、リード要求とオフセット値に基づいて記憶した分割ラインに含まれる前記第1出力画素を出力するディレイライン入力バッファと、
    前記バッファ段数と前記第2の座標演算部にて生成された前記最小の座標値と前記最大の座標値に基づいて前記演算要求を出力し、前記ディレイラインバッファ選択部から供給される演算要求受付に応じてディレイライン入力バッファに対して前記リード要求を出力し、前記第2の座標演算部から出力される前記入力座標に基づいて前記オフセット値を出力するディレイライン出力制御部と
    を含むことを特徴とする請求項に記載の画像処理装置。
  3. 撮像部に接続される画像処理装置であって、
    前記撮像部にて撮像した1フレームの画像データが入力され、前記1フレームの画像データの第1の方向に隣接する2つの入力画素に基づいて1つの第1出力画素を生成する第1の歪み補正部と、
    前記第1の方向と異なる第2の方向に隣接する2つの前記第1出力画素に基づいて1つの第2出力画素を生成し、前記第2出力画素をメモリに格納する第2の歪み補正部と
    を含み、
    前記第2の歪み補正部は、前記1フレームの画像を分割した複数の格子ブロックの各頂点の格子ブロック座標に基づいて、前記第2出力画素の座標値に対応した入力座標及び補間係数を生成し、前記第1の方向に連続し前記メモリに対する1回のアクセスにおける転送量に応じた複数の前記第1出力画素を含み前記第1の方向に連続し前記メモリに対する1回のアクセスにおける転送量に応じた複数の第2出力画素に対応する前記第1出力画素の座標値に基づく複数の分割ラインを記憶部に記憶し、前記複数の第2出力画素に対応した前記入力座標に基づいて、前記記憶部から前記第2の方向に隣接する2つの前記第1出力画素を順次読み出し、該読み出した2つの前記第1出力画素を前記補間係数に基づいて線形補間処理して前記第2出力画素を生成するものであり、
    前記第2の歪み補正部は、
    前記第1の歪み補正部から出力される前記第1出力画素のうちの設定された第1の領域に含まれる前記第1出力画素について、前記第1の方向と異なる第2の方向に隣接する2つの前記第1出力画素に基づいて1つの前記第2出力画素を生成し、前記第1の領域に含まれない前記第1出力画素と前記第2出力画素をメモリに格納する第1補正部と、
    前記メモリに格納された前記第1出力画素を読み出し、前記第2の方向に隣接する2つの前記第1出力画素に基づいて1つの前記第2出力画素を生成し、生成した前記第2出力画素を前記メモリに格納する第2補正部と
    を含むことを特徴とする画像処理装置。
  4. 前記第1の領域は、前記第2出力画素の座標値と、前記第2出力画素を生成するために必要な前記第1出力画素の座標値に基づいて設定されること、を特徴とする請求項に記載の画像処理装置。
  5. 前記第1の歪み補正部は、
    前記1フレームの画像を分割した複数の格子ブロックの各頂点の格子ブロック座標に基づいて、前記第1出力画素の座標値に対応した第1入力座標及び第1補間係数を生成し、前記第1入力座標に応じた2つの前記入力画素を前記第1補間係数に基づいて線形補間処理して前記1つの第1出力画素を生成すること
    を特徴とする請求項1〜のうちの何れか一項に記載の画像処理装置。
  6. 撮像部に接続される画像処理装置であって、
    前記撮像部にて撮像した1フレームの画像データが入力され、前記1フレームの画像データの第1の方向に隣接する2つの入力画素に基づいて1つの第1出力画素を生成する第1の歪み補正部と、
    前記第1の方向と異なる第2の方向に隣接する2つの前記第1出力画素に基づいて1つの第2出力画素を生成し、前記第2出力画素をメモリに格納する第2の歪み補正部と
    を含み、
    前記第1の歪み補正部は、
    前記1フレームの画像を分割した格子ブロックの各頂点に対応する格子ブロック座標を記憶した入力座標設定部と、
    前記第1出力画素の座標値を生成する出力座標生成部と、
    前記格子ブロック座標に基づいて、前記第1出力画素の座標値に対応した補正前の画像における第1の座標値を算出し、前記第1の座標値の整数部に応じた入力座標を出力し、前記第1の座標値の小数部に応じた第1補間係数を出力する第3の座標演算部と、
    前記入力座標に基づいて、前記画像データの入力画素のうち、前記第1出力画素に応じた入力画素を記憶部に格納するライト部と、
    前記入力座標に基づいて、前記記憶部に格納された前記2つの入力画素を読み出して出力するリード部と、
    前記リード部から出力される前記2つの入力画素を前記第1補間係数に基づいて補間処理して前記1つの第1出力画素を生成する線形補間部と、
    を含み、
    前記第2の歪み補正部は、前記1フレームの画像を分割した複数の格子ブロックの各頂点の格子ブロック座標に基づいて、前記第2出力画素の座標値に対応した入力座標及び補間係数を生成し、前記第1の方向に連続し前記メモリに対する1回のアクセスにおける転送量に応じた複数の前記第1出力画素を含み前記第1の方向に連続し前記メモリに対する1回のアクセスにおける転送量に応じた複数の第2出力画素に対応する前記第1出力画素の座標値に基づく複数の分割ラインを記憶部に記憶し、前記複数の第2出力画素に対応した前記入力座標に基づいて、前記記憶部から前記第2の方向に隣接する2つの前記第1出力画素を順次読み出し、該読み出した2つの前記第1出力画素を前記補間係数に基づいて線形補間処理して前記第2出力画素を生成すること、
    むことを特徴とする画像処理装置。
  7. 前記第3の座標演算部は、前記第1出力画素の座標値に基づいて、前記第2の方向に連続する前記第2出力画素を生成するために必要な前記第1出力画素の座標値の第1の範囲値を算出し、
    前記第1の歪み補正部は、
    前記メモリに対する1回のアクセスにおける転送量に応じた複数の前記第1出力画素を記憶するバッファと、
    前記第1の範囲値に基づいて、前記バッファに保持された複数の前記第1出力画素について有効か無効かを判定し、前記バッファに有効な前記第1出力画素が保持されている場合に前記バッファに保持された複数の前記第1出力画素を、前記メモリの対応する領域に格納する転送制御部と、
    を有することを特徴とする請求項に記載の画像処理装置。
  8. 撮像部に接続される画像処理装置であって、
    前記撮像部にて撮像した1フレームの画像データが入力され、前記1フレームの画像データの第1の方向に隣接する2つの入力画素に基づいて1つの第1出力画素を生成する第1の歪み補正部と、
    前記第1の方向と異なる第2の方向に隣接する2つの前記第1出力画素に基づいて1つの第2出力画素を生成し、前記第2出力画素をメモリに格納する第2の歪み補正部と
    を含み、
    前記第2の歪み補正部は、前記1フレームの画像を分割した複数の格子ブロックの各頂点の格子ブロック座標に基づいて、前記第2出力画素の座標値に対応した入力座標及び補間係数を生成し、前記第1の方向に連続し前記メモリに対する1回のアクセスにおける転送量に応じた複数の前記第1出力画素を含み前記第1の方向に連続し前記メモリに対する1回のアクセスにおける転送量に応じた複数の第2出力画素に対応する前記第1出力画素の座標値に基づく複数の分割ラインを記憶部に記憶し、前記複数の第2出力画素に対応した前記入力座標に基づいて、前記記憶部から前記第2の方向に隣接する2つの前記第1出力画素を順次読み出し、該読み出した2つの前記第1出力画素を前記補間係数に基づいて線形補間処理して前記第2出力画素を生成するものであり、
    前記第2の歪み補正部は、
    前記1フレームの画像を分割した格子ブロックの各頂点に対応する格子ブロック座標を記憶した入力座標設定部と、
    前記第2出力画素の座標値を生成する出力座標生成部と、
    前記格子ブロック座標と前記第2出力画素の座標値に基づいて、前記第2出力画素の座標値に対応した前記第1出力画素の第2の座標値を算出し、前記第2の座標値の整数部に応じた第2の入力座標を出力し、前記第2の座標値の小数部に応じた補間係数を出力し、前記第2の方向に連続する前記第2出力画素を生成するために必要な前記第1出力画素の座標値の第2の範囲値を出力する座標演算部と、
    前記第2の範囲値に応じた前記第1出力画素を前記メモリから入力バッファに読み出す転送制御部と、
    前記入力バッファに格納された分割ラインを複数記憶する内部バッファと、
    前記第2の入力座標に応じて前記内部バッファの2つの前記分割ラインを選択し、選択した2つの前記分割ラインのそれぞれから1つの前記第1出力画素を出力するラインセレクタと、
    前記ラインセレクタから出力される2つの前記第1出力画素を前記補間係数に基づいて線形補間処理して前記1つの第2出力画素を生成する線形補間部と、
    を有することを特徴とする画像処理装置。
  9. 撮像光学系と、前記撮像光学系を通過した光に応じた画像データを生成する撮像素子とを含む撮像部と、前記画像データを補正し、補正後の画像データをメモリに格納する画像処理部とを有し、
    前記画像処理部は、
    前記撮像部にて撮像した1フレームの画像データが入力され、前記1フレームの画像データの第1の方向に隣接する2つの入力画素に基づいて1つの第1出力画素を生成する第1の歪み補正部と、
    前記第1の方向と異なる第2の方向に隣接する2つの前記第1出力画素に基づいて1つの第2出力画素を生成し、前記第2出力画素をメモリに格納する第2の歪み補正部と
    を含み、
    前記第2の歪み補正部は、前記1フレームの画像を分割した複数の格子ブロックの各頂点の格子ブロック座標に基づいて、前記第2出力画素の座標値に対応した入力座標及び補間係数を生成し、前記第1の方向に連続し前記メモリに対する1回のアクセスにおける転送量に応じた複数の前記第1出力画素を含み前記第1の方向に連続し前記メモリに対する1回のアクセスにおける転送量に応じた複数の第2出力画素に対応する前記第1出力画素の座標値に基づく複数の分割ラインを記憶部に記憶し、前記複数の第2出力画素に対応した前記入力座標に基づいて、前記記憶部から前記第2の方向に隣接する2つの前記第1出力画素を順次読み出し、該読み出した2つの前記第1出力画素を前記補間係数に基づいて線形補間処理して前記第2出力画素を生成するものであり
    前記第2の歪み補正部は、
    前記第1の歪み補正部から出力される前記第1出力画素のうちの設定された第1の領域に含まれる前記第1出力画素について、前記第1の方向と異なる第2の方向に隣接する2つの前記第1出力画素に基づいて1つの前記第2出力画素を生成し、前記第1の領域に含まれない前記第1出力画素と前記第2出力画素をメモリに格納する第1補正部と、
    前記メモリに格納された前記第1出力画素を読み出し、前記第2の方向に隣接する2つの前記第1出力画素に基づいて1つの前記第2出力画素を生成し、生成した前記第2出力画素を前記メモリに格納する第2補正部と
    を含むこと、
    を特徴とする撮像装置。
JP2012233686A 2012-10-23 2012-10-23 画像処理装置、撮像装置 Expired - Fee Related JP6136190B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012233686A JP6136190B2 (ja) 2012-10-23 2012-10-23 画像処理装置、撮像装置
US14/057,752 US8928782B2 (en) 2012-10-23 2013-10-18 Image processing device and image capture device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012233686A JP6136190B2 (ja) 2012-10-23 2012-10-23 画像処理装置、撮像装置

Publications (2)

Publication Number Publication Date
JP2014086845A JP2014086845A (ja) 2014-05-12
JP6136190B2 true JP6136190B2 (ja) 2017-05-31

Family

ID=50485012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012233686A Expired - Fee Related JP6136190B2 (ja) 2012-10-23 2012-10-23 画像処理装置、撮像装置

Country Status (2)

Country Link
US (1) US8928782B2 (ja)
JP (1) JP6136190B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6275468B2 (ja) * 2013-12-10 2018-02-07 ハンファテクウィン株式会社Hanwha Techwin Co.,Ltd. 画像処理装置、画像処理方法及び撮像装置
DE102018107950A1 (de) * 2017-04-18 2018-10-18 Canon Kabushiki Kaisha Bildverarbeitungsvorrichtung, bildverarbeitungsverfahren und bildaufnahmevorrichtung
US10356346B1 (en) * 2018-02-26 2019-07-16 Fotonation Limited Method for compensating for off-axis tilting of a lens
JP6845173B2 (ja) * 2018-03-15 2021-03-17 株式会社東芝 画像処理装置及び画像処理方法
CN109345452B (zh) * 2018-09-10 2023-01-17 武汉精立电子技术有限公司 一种实现图像快速线性插值的方法
JP7208356B2 (ja) * 2018-09-26 2023-01-18 コーヒレント・ロジックス・インコーポレーテッド 任意の世界ビューの生成
CN111951193B (zh) * 2020-08-21 2024-02-02 安谋科技(中国)有限公司 图像的水平畸变矫正方法及水平畸变矫正装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4028306B2 (ja) * 2002-06-26 2007-12-26 富士フイルム株式会社 デジタル撮像装置
JP4144292B2 (ja) * 2002-08-20 2008-09-03 ソニー株式会社 画像処理装置と画像処理システム及び画像処理方法
WO2004068852A1 (ja) * 2003-01-29 2004-08-12 Olympus Corporation 撮像装置
WO2004109597A1 (ja) 2003-06-02 2004-12-16 Olympus Corporation 画像処理装置
JP2004362069A (ja) 2003-06-02 2004-12-24 Olympus Corp 画像処理装置
JP4194889B2 (ja) 2003-06-23 2008-12-10 三菱電機株式会社 画像処理装置
CN1914917A (zh) * 2004-01-30 2007-02-14 株式会社茉莉特斯 摄像装置、摄像镜头、向摄像镜头的数据写入方法
JP4279775B2 (ja) * 2004-12-10 2009-06-17 富士フイルム株式会社 光学歪み補正装置、光学歪み補正方法、及び撮像装置
JP4606218B2 (ja) * 2005-03-28 2011-01-05 三洋電機株式会社 歪補正装置
US7920200B2 (en) * 2005-06-07 2011-04-05 Olympus Corporation Image pickup device with two cylindrical lenses
JP4702233B2 (ja) 2006-09-11 2011-06-15 ソニー株式会社 画像データ処理装置および画像データ処理方法
JP4919978B2 (ja) 2008-01-26 2012-04-18 三洋電機株式会社 歪補正装置
JP4548522B2 (ja) 2008-07-17 2010-09-22 Tdk株式会社 コイル部品及びこれを備えた電源装置
JP2010028758A (ja) * 2008-07-24 2010-02-04 Sony Corp 画像処理装置及び方法、プログラム、並びに撮像装置
JP2010257357A (ja) * 2009-04-28 2010-11-11 Renesas Electronics Corp 画像処理装置、半導体データ処理装置及びデータ処理システム

Also Published As

Publication number Publication date
JP2014086845A (ja) 2014-05-12
US8928782B2 (en) 2015-01-06
US20140111672A1 (en) 2014-04-24

Similar Documents

Publication Publication Date Title
JP6136190B2 (ja) 画像処理装置、撮像装置
JP4340915B2 (ja) 撮像画像信号の歪み補正方法、撮像画像信号の歪み補正装置、撮像方法および撮像装置
US7301565B2 (en) Correction method, correction device and photographing device
WO2005010818A1 (ja) 画像処理装置、画像処理方法及び歪補正方法
WO2004109597A1 (ja) 画像処理装置
US7499082B2 (en) Distortion correction circuit for generating distortion-corrected image using data for uncorrected image
JP5154361B2 (ja) 撮像装置及び撮像装置の制御方法
JP6442867B2 (ja) 画像処理装置、撮像装置、及び画像処理方法
CN102164236B (zh) 图像处理方法、图像处理装置、以及摄像装置
US10713757B2 (en) Image processing apparatus, control method thereof, and storage medium
JP4827213B2 (ja) 画像補正装置および画像補正方法
JPH0998340A (ja) 撮像装置
JP5676233B2 (ja) 画像処理装置、画像処理方法、及び撮像装置
JP2010033507A (ja) メモリコントローラおよび画像処理装置
JP4436626B2 (ja) 画像処理装置
JP6295619B2 (ja) 画像処理装置及び方法、並びに電子機器
JP6136171B2 (ja) データ転送装置、データ転送方法、半導体装置
JP5351200B2 (ja) 画像処理装置、画像処理システムおよび画像処理方法
JP2007079708A (ja) 画像処理装置及び画像処理方法
JP6440465B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP6762775B2 (ja) 画像処理装置、撮像装置、制御方法及びプログラム
JP4132264B2 (ja) 画像信号処理回路
JP2013257665A (ja) 映像処理装置、映像処理装置の制御方法
JP2016103169A (ja) 画像処理装置、画像処理方法および電子機器
JP3701895B2 (ja) シェーディング補正回路

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150612

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150702

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170220

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170417

R150 Certificate of patent or registration of utility model

Ref document number: 6136190

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees