JP4334932B2 - 画像処理装置及び画像処理方法 - Google Patents
画像処理装置及び画像処理方法 Download PDFInfo
- Publication number
- JP4334932B2 JP4334932B2 JP2003202664A JP2003202664A JP4334932B2 JP 4334932 B2 JP4334932 B2 JP 4334932B2 JP 2003202664 A JP2003202664 A JP 2003202664A JP 2003202664 A JP2003202664 A JP 2003202664A JP 4334932 B2 JP4334932 B2 JP 4334932B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- data
- distortion correction
- image
- buffer
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 219
- 238000003672 processing method Methods 0.000 title claims description 7
- 238000012937 correction Methods 0.000 claims description 151
- 230000015654 memory Effects 0.000 claims description 137
- 239000000872 buffer Substances 0.000 claims description 129
- 238000000034 method Methods 0.000 claims description 56
- 230000008569 process Effects 0.000 claims description 43
- 238000006243 chemical reaction Methods 0.000 claims description 37
- 230000005540 biological transmission Effects 0.000 claims description 20
- 238000012544 monitoring process Methods 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 33
- 238000012546 transfer Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 238000003384 imaging method Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 9
- 238000005070 sampling Methods 0.000 description 5
- 241000226585 Antennaria plantaginifolia Species 0.000 description 4
- 230000004075 alteration Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000010408 sweeping Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 101100115215 Caenorhabditis elegans cul-2 gene Proteins 0.000 description 1
- 241000283707 Capra Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- GGCZERPQGJTIQP-UHFFFAOYSA-N sodium;9,10-dioxoanthracene-2-sulfonic acid Chemical compound [Na+].C1=CC=C2C(=O)C3=CC(S(=O)(=O)O)=CC=C3C(=O)C2=C1 GGCZERPQGJTIQP-UHFFFAOYSA-N 0.000 description 1
Images
Landscapes
- Image Input (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
- Studio Devices (AREA)
Description
【発明の属する技術分野】
本発明は、主に、デジタルカメラ等の電子的撮像装置に用いられる画像処理装置及び画像処理方法に関し、特に、回路規模やデータ転送量を増大させること無く、歪補正機能を実現する画像処理装置及び画像処理方法に関する。
【0002】
【従来の技術】
デジタルカメラ,銀塩カメラを問わず、一般的にカメラの光学系においては歪曲収差が現れる。また、現在発売されているカメラでは、光学ズームが可能な機種が殆どであり、その場合、ワイド端からテレ端にかけて、歪曲収差の状態が変化する。ワイド端では樽型歪が多く、テレ端では糸巻き型歪が多い。
【0003】
歪曲収差は、例えば格子状の被写体を撮影すると、樽型歪、糸巻き型歪として観測される。
【0004】
図23(a)は格子状の被写体、(b)は樽型歪を生じた撮影画像、(c)は糸巻き型歪を生じた撮影画像である。
【0005】
ところで、デジタルカメラにおいては、CCD等の撮像素子のデータに対し、様々な画像処理を行なった後、JPEG等の圧縮方式で圧縮したデータをメモリカード等の記録媒体に記録する。
【0006】
図24(a)は一般的なデジタルカメラで行われている画像処理手順の概念を示している。CCDから取り込まれた撮像信号は、プリプロセスで画素欠陥処理やA/D変換等の処理が行われ、SDRAM等のフレームメモリに記憶される。次に、フレームメモリに記憶された画像データが読み出されて、イメージプロセス1、イメージプロセス2、…、イメージプロセスNにより各種の画像処理が行われる。画像処理後の画像データは、さらにJPEG等の圧縮方式で圧縮されて、記録媒体としてのメモリカード等へ記録される。
【0007】
図24(b)は従来のデジタルカメラの画像処理装置のブロック図(例えば特開2000−312327号公報での従来例)を示している。
【0008】
図24(b)において、従来の画像処理装置は、バス103にCPU104と共にプリプロセス回路102,複数のイメージプロセス回路106-1〜106-n,JPEG処理部107,フレームメモリ105及び記録媒体としてのメモリカード等108が接続されている。そして、CPU104の制御により、CCD101からの撮像信号がプリプロセス回路102で画素欠陥処理やA/D変換等が施された後、バス103を通してフレームメモリ105に一旦記憶される。次に、フレームメモリ105から画像データを読み出し、バス103を通してイメージプロセス回路106-1に入力して所定の画像処理を行い、再びバス103を通してフレームメモリ105に書き直す。以下同様にして、バス103を介してフレームメモリ105とイメージプロセス回路106-2〜106-nとの間でデータのやり取りを順次行って、最後にJPEG処理部107でJPEG圧縮処理を行い、画像処理したデータをフレームメモリ105に一旦記憶し、フレームメモリ105から読み出した処理データをメモリカード等108に記録するようになっている。以上の各段のイメージプロセス及びJPEG処理では、小領域(ブロックライン)を単位として画像処理が行われる。
【0009】
一方、従来、この画像処理の一部として歪補正を行う先行技術が開示されている。例えば、特開6−181530号公報、特開10−224695号公報がある。
【0010】
特開6−181530号公報には、撮影時における撮像ズームレンズの撮像ポジションが歪曲収差の大きいポジション内であることが検出手段にて検出されている場合には、この撮像ズームレンズによって生じた像の幾何学的歪みを、固体撮像素子の撮像データを幾何学的変形に基づき読み出すことにより補正することが記載されている。
【0011】
特開10−224695号公報には、光学系を経由した光を受光する固体撮像デバイスで撮像したデータをランダムアクセスビデオメモリに記憶し、ランダム読み出しタイミング発生回路は光学系によって生ずる収差を補正するための収差補正データを有し、この収差補正データに基づいて固体撮像デバイスによって生成された信号を所定の順に読み出してビデオ信号を生成することで、光学系の歪曲収差を補正することが記載されている。
【0012】
【特許文献1】
特開2000−312327号公報(第3頁、図19)
【0013】
【特許文献2】
特開6−181530号公報(第1,2頁、図2)
【0014】
【特許文献3】
特開10−224695号公報(第1−3頁、図1)
【0015】
【発明が解決しようとする課題】
しかしながら、特許文献1の従来例では、フレームメモリと各イメージプロセス回路間のデータのやり取りが多く、バスのデータ転送量が増大する。
【0016】
特許文献2では、1ラインを処理するのに、大容量バッファメモリが必要である。また、バッファメモリの容量で処理できる画像サイズが制限されてしまう。
【0017】
また、特許文献3では、ランダムアクセスで処理するのに、バッファメモリは必要ないが、一般的にSDRAM等のランダムアクセスビデオメモリをランダムアクセスすると、転送時間がかかる。
【0018】
そこで、本発明は上記の問題に鑑み、バスの転送量やメモリの容量を大きく増大させることなく、歪補正処理を実現できる画像処理装置及び画像処理方法を提供することを目的とするものである。
【0019】
【課題を解決するための手段】
請求項1の発明は、画像処理手段とパイプライン処理可能なように接続され、画像処理後の画像データに対して歪補正処理を行う歪補正手段を有する画像処理装置において、前記歪補正手段は、歪補正後の補正画像における画素の座標位置と、この座標位置に対応する、歪補正前の画像における画素の補間座標を生成する補間座標生成部と、前記画像データをブロック単位で格納するバッファメモリ部と、前記バッファメモリ部に対する画像データの書き込みおよび読み込みを制御するメモリ制御部と、前記生成された補間座標に基づいて、前記バッファメモリ部から読み出したブロック単位の画像データから該補間座標の画素データを生成する補間演算を行う補間演算部と、を有し、前記メモリ制御部は、前記画像処理手段から歪補正前の画像データを前記バッファメモリ部へ書き込む際は、列方向に一列に並んだ一定数分の画素からなる画像データであるユニットラインを単位として行方向に順次書き込むように制御し、前記バッファメモリ部から読み出す際は、歪補正処理後の画像データが前記ユニットラインを単位として行方向に順次出力されるように、前記バッファメモリ部に格納された画像データに対して読み出し制御を行うことを特徴とする。
【0020】
この構成では、内部バッファとしてのメモリ部に画像データをブロック単位で格納して、そのデータを利用して歪補正処理のための補間演算を行うことができる。
また、メモリ部に対してULを単位として書き込み、読み出しを行うので、メモリ部のバッファ容量としては光学的歪量に応じて数UL分、すなわち少なくとも1UL分の容量があればよく、バスの転送量やメモリの容量を大きく増大させることなく、歪補正を実現できる。
【0023】
請求項2の発明は、請求項1の画像処理装置において、前記メモリ制御部は、前記ユニットラインの最初に処理される画素の座標位置を基準座標位置として、この基準座標位置と行方向の前側の座標位置との間がpreULBの幅であるメモリ領域を設け、行方向の後側の座標位置との間がpostULBの幅であるメモリ領域を設け、前記ユニットラインの処理中は他の処理によるデータによって前記両方のメモリ領域が上書きされないよう制御することを特徴とする。
【0024】
この構成により、処理に必要なバッファとしてのメモリ部の前記preULB、postULBの領域のデータが上書きされないよう確保できる。
【0025】
請求項3の発明は、請求項1又は2の画像処理装置において、前記メモリ制御部は、さらに、前記ユニットラインの処理中に、前記歪補正手段の前段回路からのデータを入力するために開放可能なバッファ開放量を算出するバッファ開放量算出回路と、前記歪補正手段の後段回路に対するデータ送信の可否を判定するデータ送信可否判定回路と、を有し、前記バッファ開放量算出回路は、現在処理中のユニットラインの最初の画素に対する座標と、次に処理予定のユニットラインの最初の画素に対する座標との差を前記バッファ開放量として算出するとともに、次のユニットラインの処理に必要な前段回路からのデータ量を前記データ送信可否判定回路に送信し、前記データ送信可否判定回路は、前記バッファ開放量算出回路から送信されたデータ量と、前記preULBの値とに基づいてデータ送信可否の判定を行うことを特徴とする。
【0026】
この構成により、処理に必要なバッファとしてのメモリ部を少ない容量で効率的に使用することができる。
【0027】
請求項4の発明は、請求項2又は3の画像処理装置において、前記preULBの値、postULBの値は、それぞれ歪中心に対して前側と後側とで異なる値を設定可能であることを特徴とする。
【0028】
この構成では、図14のように、歪中心の左右ではpreULB、postULBの値が異なることに基づいて、これらの値を、どちらにも対応できるよう、図15のように大きく取ると、処理に必要なバッファを広く確保しておかなければならず、バッファの無駄である。歪中心前後でpreULB、postULBを変化することにより、内部バッファの使い方に無駄をなくし、小さなバッファ容量で比較的大きな歪補正を行うことが可能となる。
【0029】
請求項5の発明は、請求項1〜3のいずれか1つの画像処理装置において、前記画像処理装置は、さらに、前記算出されたバッファ開放量によりバッファ内の空き領域を検出するバッファ空き容量監視回路を有し、該バッファ空き容量監視回路によりバッファ内の空き領域が検出されると、該空き領域へのデータの書き込みを可能とすることを特徴とする。
【0030】
この構成により、データ出力中に入力も可能なパイプライン的な動作を可能とする。
【0031】
請求項6の発明は、請求項1の画像処理装置において、前記バッファメモリ部は、データのリード動作とライト動作が同時に可能な複数のバッファからなり、前記メモリ制御部は、さらに、前記バッファメモリ部へのデータ書込み制御を行う書込みアドレス生成回路と、前記バッファメモリ部に格納されている画像データから補間演算に必要なデータを同時に読み出すためのアドレスを生成する読出しアドレス生成回路と、を有し、前記データ書込み制御は、同時に読み出すデータをそれぞれ異なるバッファに書き込むものであることを特徴とする。
【0032】
この構成によれば、バッファ内にある画像データから、補間演算に必要なデータとして任意の座標の周辺の複数の画素(例えば、16画素)情報を同時に読み出すことが可能となり、演算処理を速やかに行える。
【0033】
請求項7の発明は、請求項2〜4のいずれか1つの画像処理装置において、前記画像処理装置は、さらに、歪補正処理により得られた補間座標が前記ユニットラインの処理を行うためのブロックラインの画像データに対する補間座標に対し、列方向に前記preULB、postULBを逸脱する座標が生成された時、若しくは、歪補正処理により得られた補間座標が前段からは入力され得ない座標となった時にエラー出力を行うエラー検出回路を有することを特徴とする。
【0034】
この構成では、パラメータの誤入力や、歪補正量の見積もりが過少だった時にエラー検出回路が検知してCPUに知らせる。特に、preULB、postULBの設定オーバー(図13参照)については、事前に正確な見積もりを行えない場合があるので、オーバーする量をCPUに通知することで設定値を修正しやすくする。
【0035】
請求項8の発明は、請求項7の画像処理装置において、前記エラー出力がなされたときは、前記ブロックラインの画像データの入力範囲を再設定して歪補正処理を再実行することが可能であることを特徴とする。
【0036】
請求項9の発明は、請求項1〜5のいずれか1つの画像処理装置において、1つのユニットラインの最後の画素に対する歪み補正処理終了後、次の1つのユニットラインまたはさらにその次の1つのユニットラインの最初に歪み補正処理を行う画素の補間座標を演算し、前記補間座標に基づいてバッファ開放量を求めることを特徴とする。
【0037】
この構成では、1UL処理が終わった後に開放できるバッファの量は、次のUL先頭座標が決まらなければ分からない(図17参照)ことを利用する。内部バッファは小さいので、使わなくなったデータが格納されている部分をできるだけ早くに開放する為、次のUL先頭座標を算出して開放量を取得(図18参照)し、バッファを開放することで内部バッファを有効に利用することができる。
【0038】
請求項10の発明は、入力された画像データに対して歪補正処理を行う画像処理方法において、前記歪補正処理を行う際は、データの書き込みおよび読み込みが制御されるバッファメモリ部に、前記入力された画像データをブロック単位で格納し、歪補正後の補正画像における画素の座標位置と、この座標位置に対応する、歪補正前の画像における画素の補間座標を生成し、前記生成された補間座標に基づいて、前記バッファメモリ部から読み出したブロック単位の画像データから該補間座標の画素データを生成する補間演算を行い、前記バッファメモリ部への書き込みの際は、列方向に一列に並んだ一定数分の画素からなる画像データであるユニットラインを単位として行方向に順次書き込むように制御し、前記バッファメモリ部からの読み出しの際は、歪補正処理後の画像データが前記ユニットラインを単位として行方向に順次出力されるように、前記バッファメモリ部に格納された画像データに対して読み出し制御を行うことを特徴とする。
【0039】
この方法では、内部バッファとしてのメモリ部に画像データをブロック単位で格納して、そのデータを利用して歪補正処理のための補間演算を行うことができる。
【0040】
請求項11の発明は、請求項2〜4のいずれか1つに記載の画像処理装置において、前記画像処理装置は、さらに、前記歪補正手段が歪補正処理を行うのに必要とする入力画像範囲を算出する歪補正範囲算出部を有し、前記入力画像範囲は、前記歪補正処理後の画像データにおける注目領域に対して歪み補正の座標変換がなされて得られる歪補正処理前の画像データの対応領域を包含する領域として得られることを特徴とする。
【0041】
請求項12の発明は、請求項11記載の画像処理装置において、前記歪補正範囲算出部は、前記歪補正処理後の画像データにおける注目領域に対して所定の歪補正式を適用することで座標変換可能であり、歪補正処理後の出力画像範囲における、周辺4辺の各辺に対応する各画素に対して前記座標変換を行って生成した変換座標の最大値と最小値、および4頂点に対応する各画素に対して座標変換を行って生成した変換座標、の少なくともいずれかを算出し、前記preULBおよびpostULBは、前記歪補正範囲算出部の算出結果に基づいて算出することを特徴とする。
【0042】
これらの構成では、前述したpre,postULBはレジスタに設定されるが、それらの値を生成するためには、歪の変形を考慮して画像データの入力範囲を算出可能とするサポート機能が必要となる。このサポート機能は、歪補正手段の歪補正処理機能に対して歪補正範囲算出部として設けられる。
【0043】
【発明の実施の形態】
発明の実施の形態について図面を参照して説明する。
図1は本発明の一実施の形態の画像処理装置の全体構成を示すブロック図である。図2は図1における歪補正処理部の構成を示すブロック図である。
【0044】
図1の画像処理装置においては、バス3に接続された各部の制御を行うCPU4の制御により、CCD1からの撮像信号をプリプロセス回路2で画素欠陥処理やA/D変換等を行い、得られた画像データを、バス3を介してフレームメモリ5に一旦記憶する。フレームメモリ5は、SDRAM等で構成され、画像処理前のデータ及び画像処理後のデータを格納するメモリである。次いで、フレームメモリ5から読み出した画像データをバス3を介して、第1データ順序変換部6に入力する。第1データ順序変換部6は、後に図26(a)で説明するように、ブロック単位のデータを記憶可能なメモリを複数、ここでは2つ備えている。第1データ順序変換部6は、 フレームメモリ5から行方向にデータを読み出して記憶した後、列方向にデータを順に読み出し、イメージプロセス回路7に出力する。
【0045】
イメージプロセス回路7は入力したデータに対して所定の画像処理を行って次段の歪補正手段としての歪補正処理部8に転送する。歪補正処理部8は入力したデータに対して歪補正処理を行って次段の第2データ順序変換部9へ転送する。第2データ順序変換部9は、後に図26(b)で説明するように、ブロック単位のデータを記憶可能なメモリを複数、ここでは2つ備えている。第2データ順序変換部9は、 歪補正処理部8から列方向にデータを読み出して記憶した後、行方向にデータを順に読み出し、JPEG処理部10に転送する。そして、JPEG処理部10でJPEG圧縮処理を行い、処理データをフレームメモリ5に一旦記憶し、フレームメモリ5から読み出した処理データをメモリカード等11に記録するようになっている。
【0046】
歪補正処理部8は、図2に示すように、歪補正後の補正画像の位置(補間位置という、X,Y)とこれに対応した歪補正前の元の画像の位置(X’,Y’)を生成する補間座標生成部81と、歪補正処理部8の前段ブロックの回路からの画像データの一部を一時的に格納しておくバッファメモリ(以下、単にバッファ)としての内部メモリ部82と、その内部メモリ部82に対する書き込み及び読み出しの制御を行うメモリ制御部83と、変換した歪補正前の画像位置の座標(X’,Y’)に従って画像処理をしてデータの歪補正をする補間演算部84と、を有して構成されている。
【0047】
補間座標生成部81は、図2に示すように、補間座標(X,Y)を生成する座標生成部811と、生成された補間座標(X,Y)に対して所定の歪補正式[式1](後述する)を適用して変換した補正前の座標(X’,Y’)を出力する歪補正座標変換部812と、座標生成部811からの補間座標(X,Y)と歪補正座標変換部812からの変換座標(X’,Y’)とを選択的に出力可能なセレクタ813と、で構成されている。歪補正処理部8における座標生成部811,歪補正座標変換部812,セレクタ813,メモリ制御部83については、制御データを格納した制御レジスタ85に設定された各ブロックに対する設定値に従って動作する。また、処理結果のステータスなどをCPUから参照することができる。
【0048】
以上のように構成された本発明による画像処理装置においては、上記第1データ順序変換部6からJPEG処理部10までは、バス3を介することなく、該バス3とは異なる情報伝達経路でパイプライン処理可能なように接続されていて、画像データを、2次元的な画素配列における所定のブロック単位で転送して処理するようになっている。バス3を介したデータ転送は、フレームメモリ5から第1データ順序変換部6への転送と、JPEG処理部10からフレームメモリ5への転送及びフレームメモリ5からメモリカード11への転送だけとなり、したがってフレームメモリと各イメージプロセス回路との間でデータのやりとりを行っていた従来例(図24(b))と比べて、バス3によるデータ転送量を大幅に低減させることができ、バス3の負荷を大幅に軽減することが可能となる。また、この図1に示す例においては、画像処理を行うイメージプロセス回路7を1つのみ設けているが、複数あっても構わない。さらに、図では、イメージプロセス回路7の後段に歪補正処理部8が設けられているが、逆の構成であっても構わない。
【0049】
初段のイメージプロセス回路7と2段目のイメージプロセス回路である歪補正処理部8で構成されるイメージプロセス回路部では、各イメージプロセス回路7,8の前段或いは内部にパイプラインレジスタとして、図示しない小容量のメモリが配置されていて、該小メモリを介して、各イメージプロセス回路7,8がパイプライン処理動作を行うように構成されている。これらの小容量のメモリは、各イメージプロセス回路7,8で空間的な画像処理を行う場合、画像処理に必要な周辺データの記憶をするために、また画像データをブロック単位で読み出して配列換えなどを行って処理する必要があるために、設けられている。
【0050】
イメージプロセス回路7からイメージプロセス回路8へのデータ転送は、後段のイメージプロセス回路である歪補正処理部8の内部メモリ部82に空きがあると、歪補正処理部8から前段のイメージプロセス回路7に対してリクエスト(REQ)を送信し、これに対して前段のイメージプロセス回路7からリクエスト受付(GRANT)を受信すると同時にバッファである内部メモリ部82の空き情報を1つ減らす。後段ブロックの歪補正処理部8でこのリクエストとリクエスト受付を繰り返し、空きが0になったらリクエストを取り下げる。後段ブロックである歪補正処理部8は、前段ブロックからのリクエスト受付(GRANT)と同時もしくはリクエスト受付(GRANT)の後に前段ブロックのイメージプロセス回路7からデータが流入し、内部メモリ部82へ書込みをする。複数段のイメージプロセス回路がパイプライン処理可能なように接続されている場合は、上記のようにして前段から後段へデータが転送され、各イメージプロセス回路のメモリ部にデータが書き込まれ、所定の画像処理が行われた後、後段からのリクエストに基づいて前段ブロックから後段へと画像処理を行いながら順次データが転送されていくことになる。
【0051】
図3は歪補正処理部8における座標変換の概念図を示している。図3(a)は元データである撮像画像データ、同図(b)は補正画像、同図(c)は(b)の補正画像の座標位置(X,Y)に対して(a)の元データの座標上に変換された座標位置Pでのデータの座標(X’,Y’)(この座標は元データを実際に構成する複数の画素の位置には必ずしも正確には一致しない座標位置にある)を示している。そのP点での座標位置(X’,Y’)はそのP点の周辺の画素16点の座標を使って算出されると共にP点での画像データはその周囲の前記16点の画素データを用いて補間演算される。補間演算部84にて点Pの位置のデータをその周囲の16点の画素値(輝度データ)から補間演算するべく処理が行われる。図2の補間位置生成部811で補間座標を生成するというのは、図3(b)の補正画像側でどこの画素位置(X,Y)を指し示すか、ということである。
【0052】
[式1]では、歪補正後の画素位置(X,Y)に対する歪補正前の画素位置(X’,Y’)を算出することができる。但し、歪補正前の画素位置(X’,Y’)は元画像データ上の画素位置に対応した整数値になるとは限らないことは前述した通りである。
【0053】
[式1]に従うと、図3(b)の座標(X,Y)が同図(a)のように座標(X’,Y’)に変換される。これにより、元データの中のどこの座標位置のデータを作成すれば、よいかを知ることができ、その位置(X’,Y’)のデータを後述する16点補間処理を行う補間式[式2]を用いて周囲16点の既知の画素値(図5の黒丸印の入力画像データ)から算出して得ることができる。
【0054】
【式1】
[式1]におけるZは、歪中心(Xd,Yd)から今注目している点(X,Y)までの距離である。[式1]によって、補正画像の点(X,Y)に対して歪んでいる元画像の方の座標(X’,Y’)が算出される。[式1]について補足説明すると、Mは光学系のデータを用いて理論的に補正した際、補正後に画像がはみ出したり、不足したりする現象を補正するための補正倍率である。Sx,Syは間引き取込みなど、縦横で空間的なサンプリング間隔が異なる現象の補正をするためのサンプリング比である。Xoff,Yoffは歪補正処理によって、歪補正処理後に、被写***置が撮影時の位置とはずれてしまう現象の補正をする中心ずれの値である。
【0055】
本発明に係る[式1]では、高次項(具体的にはZ4、Z6、…)を考慮することで、より複雑な陣笠型の歪(図4参照)にも対応できるようにしている。また、中心が一致していても撮像素子の一部しかデータを取り込まない場合や、光軸中心と撮像素子中心がずれている場合など、歪中心(Xd,Yd)を考慮する必要がある。さらに、歪補正処理により被写***置が撮影時の位置からずれる現象を補正するため、中心ずれ補正値(Xoff,Yoff)を考慮する必要がある。間引き取込みの場合や輝度データ(Y)と色データ(Cb,Cr)からなるYC画像を処理する場合は、X,Yで空間的なサンプリングが異なる。そこで係数としてサンプリング比(SX,Sy)を導入して、座標変換を補正するようにしている。
【0056】
次に、図25,図26を参照して画像データの書き込み及び読み出しの処理及び順序について説明する。
図25は、本実施の形態におけるフレームメモリからの画像データの読み出し順序を説明する図である。
【0057】
画像データは、通常は、ライン方向、つまり行方向にスイープさせて書き込まれていて、読み出し時は行方向に読み出されるようになっており、1ラインの画像データを全て読み出して、次に隣接するラインの画像データを全て読み出すといった動作を繰り返して行うのが普通である。
【0058】
これに対して、本発明に係る画像処理装置は、行方向にスイープさせて書き込まれた画像データを、列方向にある一定の長さを単位に、行方向の画像データを順番にイメージプロセス部7に入力し、以降、順次隣の列をイメージプロセス部7に入力して、画像の右端まで繰り返して得られる小領域(矩形状の画像データ)をブロックライン(BL)と呼ぶ。
【0059】
こうした画像データの読み出しを可能にするための第1データ順序変換部6と、第2データ順序変換部9との構成を、図26を参照して説明する。図26は、第1,第2データ順序変換部の構成を示すブロック図である。
【0060】
第1データ順序変換部6は、図26(a)に示すように、ブロック単位の画像データを記憶可能なメモリを複数、ここでは2つ備えており、この2つのメモリ6aとメモリ6bが書き込み側,読み出し側の各スイッチにて書き込み,読み出しが交互に切り換えられるようになっている。すなわち、フレームメモリ5は、書き込み側のスイッチにて、これらメモリ6aとメモリ6bとに切換可能に接続されているとともに、イメージプロセス部7も読み出し側のスイッチにてこれらのモリ6aとメモリ6bとに切換可能に接続されていて、フレームメモリ5がメモリ6aとメモリ6bとの一方に接続されているときには、該メモリ6aとメモリ6bとの他方がイメージプロセス部7に接続されるように切り換えられる。すなわち、メモリ6a,6bは、フレームメモリ5とイメージプロセス部7との両方に同時に接続されることがないようにスイッチングされ、交互に書き込み,読み出しが行われるようになっている。
【0061】
フレームメモリ5に記憶されているフレーム画像の一部は、ブロック単位でライン方向に読み出され、一方のメモリ、ここでは例えばメモリ6aに記憶される。
【0062】
これと並行して、メモリ6bからは、既にフレームメモリ5から読み出されて記憶されているブロック単位の画像データが、列方向(縦方向)に順に読み出されて、イメージプロセス部7へ出力される。
【0063】
フレームメモリ5からメモリ6aへの書き込みと、メモリ6bからイメージプロセス部7への読み出しが終了すると、書き込み側のスイッチおよび読み出し側のスイッチが切り換えられて、次に、フレームメモリ5からメモリ6bへ次のブロック単位の画像データの書き込みが開始されるとともに、メモリ6aからイメージプロセス部7へのブロック単位の画像データの読み出しが開始される。
【0064】
第2データ順序変換部9も、図26(b)に示すように、上記第1データ順序変換部6とほぼ同様に構成されていて、ほぼ同様に動作するようになっている。
【0065】
すなわち、第2データ順序変換部9は、メモリ9a,メモリ9bと、書き込み側スイッチ,読み出し側スイッチとを有して構成されている。
【0066】
そして、該第2データ順序変換部9の動作時には、歪補正処理部8からの書き込みがメモリ9aとメモリ9bとの一方に対して列方向(縦方向)に行われ、メモリ9aとメモリ9bとの他方からは行方向(横方向)に読み出しが行われて、JPEG処理部10へ出力されるようになっている。
図6は、図2における歪補正処理部8の詳細な構成を示している。
図6の各部と図2の各部との対応関係を説明する。図6における補間位置算出回路22が図2の補間位置生成部811に、セレクタ24が図2のセレクタ813に、歪補正係数補正回路21及び補間位置補正回路23が図2の歪補正座標変換部812に、それぞれ対応している。また、図6における2ポートSRAM26が図2の内部メモリ部82に対応し、書込みアドレス生成回路28,バッファ空き容量監視回路29,データ送信可否判定回路30,バッファ開放量算出回路31及び読出しアドレス生成回路25が図2のメモリ制御部83に、補間回路27が図2の補間演算部84に、それぞれ対応している。エラー検出回路32は、図2には図示していないがメモリ制御部83に接続して設けられている。エラー検出回路32は、歪補正処理において歪量が大きくなり後述するpreULB、postULBの設定値を越える歪が発生したときに、エラー(ERROR)としてCPU4に伝える機能を有するものである。
【0067】
補間位置算出回路22は、歪補正処理部8の後段回路からのリクエストに応じて後段回路へグラント(リクエスト受付)を返したときにそのグラントをトリガとして、1ユニットライン(以下、1ULという)分の補間位置(X1,Y1)を算出するものである。ここで、1ULとは、前述したブロックライン処理において、メモリ部への書き込み,読み出しの際に、列方向に一列に並んだ一定数分の画像データを書き込んだり,読み出したりする際の一単位である。つまり、1ULは、ブロックライン(BL)上の列方向に一列に並んだ一定画素数のデータを指している。
【0068】
補間位置補正回路23は、歪補正係数算出回路21からの歪補正係数Fを補間位置(X1,Y1)に乗算して、歪補正前の元データの座標位置(X’,Y’)を計算する。セレクタ24は、(X1,Y1)と(X’,Y’)を選択するもので、歪補正を行う場合は(X’,Y’)を選択して出力し、拡大・縮小処理(リサイズ)のみを行う場合は(X1,Y1)を選択して出力する。
【0069】
2ポートSRAM26は、歪補正処理部8内におけるデータを格納するバッファである。
【0070】
読出しアドレス生成回路25は、補間位置に対応する2ポートSRAM16内のアドレス(ADR)を生成したり、2ポートSRAM26からの出力を整列するための制御信号を出力したり、出力画像データに同期して書き込み制御信号WE_Nを出力したり、図7及び[式2]に示すD0が2ポートSRAM上のどこの位置かを知らせるデータ列制御信号を出力したりする。
【0071】
書き込みアドレス生成回路28は、書き込み制御信号WEに合わせて内部メモリである2ポートSRAM26のアドレス(ADDRESS)を生成したり、1UL分のデータ入力が完了したら、その内部カウンタ(BLC)をカウントアップする。
【0072】
データ送信可否判定回路30は、BLC値,本回路の動作状態,次のUL先頭座標,歪補正処理部8の後段回路からのリクエスト(REQ)状態とから、後段回路からのREQ信号に対してグラント(GRANT_N)を送信できる状態にあるかを判定し、グラント送信可能ならGRANT_N=1とする機能を有する。
【0073】
補間回路27は、補間位置に対応する画像データにつき、16点補間を行う。バッファ開放量算出回路31は、現在処理中のUL先頭座標と、次に処理予定のUL先頭座標の整数部の差をバッファ開放量(図17参照)として算出する。
【0074】
バッファ空き容量監視回路29は、内部バッファとしての2ポートSRAM26に格納されているデータ(UL)量を保持し、バッファに空きがあれば、歪補正処理部8の前段回路に対してリクエスト(REQ=1)を送信する。
【0075】
次に、図6の歪補正処理部8の回路動作を説明する。
まず、内部メモリ部(バッファ)である2ポートSRAM26に空きがある場合、バッファ空き容量監視回路29から前段回路に対してデータ要求としてのリクエスト(REQ)を送信すると、バッファ空き容量監視回路29は前段回路からリクエスト受付としてのグラント(GRANT)を受信し、この受信と同時に2ポートSRAM26に格納可能なUL数を記憶するカウンタ(回路29内にある)を1つ減らす。1回のリクエストとグラントで1ULを一動作単位としてデータ転送する。上記カウンタが0になったらリクエストを取り下げる。
【0076】
そして、前段回路から書込みアドレス生成回路28ヘデータが流入し、2ポートSRAM26への書込みが行われる。1UL入力毎に書込みアドレス生成回路18の内部カウンタ(BLC)がアップする。
【0077】
2ポートSRAM26は、補間回路27にて例えば16点補間を行えるように、図8の如く読出しと書込みが同時に行える2ポートSRAMが4×4の計16個で構成されている。
【0078】
ここで、図8を用いて、2ポートSRAM26を説明するが、メモリの数や各メモリの大きさは異なっていても構わない。例えば、図8では、ブロックラインの幅(ULの長さ)を96としているが、もっと長くしても短くしても構わない。回路規模と補正性能とのバランスで決めればよい。また、4×4(計16個)も、4点補間であれば2×2(計4個)で構わない。補間方式(何点で補間するか)に合わせて決めればよい。
【0079】
図8は、16個の2ポートSRAMからなるメモリ空間で、横方向は入力されるUL順であるが、縦方向は各2ポートSRAMごとに付したアドレスである。Nを整数とし、処理のある時点での状態を説明する。縦方向に並んだ4つの各2ポートSRAMであるNo.0,4,8,12に格納するデータは、4N,4N+4,4N+8,4N+12番目のULのデータであり、No.1,5,9,13に格納するデータは、4N+1,4N+5,4N+9,4N+13番目のULのデータであり、No.2,6,10,14に格納するデータは、4N+2,4N+6,4N+10,4N+14番目のULのデータであり、No.3,7,11,15に格納するデータは、4N+3,4N+7,4N+11,4N+15番目のULのデータである。
【0080】
横方向に並んだ4つの各2ポートSRAMであるNo.0,1,2,3及びNo.4,5,6,7及びNo.8,9,10,11及びNo.12,13,14,15の各組についても同様に格納されている。
【0081】
図9を使って、各2ポートSRAMにデータが書き込まれる様子を説明する。図9では、図9(a)に示すように、幅8ライン(画素)のブロックラインを想定しており、データは、UL単位に「1,2,…,i,m」、「5,6,…,j,n」、「9,10,…,k,o」、…という順序で入力される。図9(b)は同図(a) に示した書込み順番のデータが4×4の16個の2ポートSRAMNo.0〜No.15上のどこに書き込まれていくかを示している。例えばNo.0,No.4,No.8,No.12には、図9(a) の左側縦一列の1UL分の画像データ(順番1〜mで示されるデータ)が分散されて格納されていく。なお、図8に示される縦方向の2ポートSRAMNo.0,No.4,No.8,No.12の各縦ラインごとに付された表記0〜92,1〜93,2〜94,3〜95は、図9(a) で示される各ユニットライン(1〜m…、5〜n…、9〜o…、・・・・)の表記とは異なっている。これは、図9(a),(b)では、4×4の16個の画像データにつき書き込み順が分かるように1〜16,a〜p,A〜P,…と16個の塊ごとに符号を付してあるためである。図8の場合はその縦方向の2ポートSRAMNo.0,No.4,No.8,No.12の各縦ラインごとに付された表記は、縦方向の1つのULにおけるデータ順に相当する。2ポートSRAMNo.0,No.4,No.8,No.12のそれぞれには1つのUL画素データNo.0〜95が交互に分散して記載されている。従って、図8の縦方向に並んだ4つの各縦ラインには1つのユニットライン(UL)の画素順(0〜95)の何番目の画素であるかを示す表記が付されている。図8の2ポートSRAMのNo.0の縦方向にはULの4の倍数の画素(0,4,8…92)が格納してあり、2ポートSRAMのNo.4の縦方向にはULの(4の倍数)+1の画素(1,5,9…93)が格納してあり、2ポートSRAMのNo.8の縦方向にはULの(4の倍数)+2の画素(2,6,10…94)が格納してあり、2ポートSRAMのNo.12の縦方向にはULの(4の倍数)+3の画素(3,7,11…95)が格納してある。さらに、2ポートSRAMのNo.1,2,3及びNo.5,6,7及びNo.9,10,11及びNo.13,14,15の各組についても同様に格納してある。
【0082】
再び図8に戻って、1UL分のデータは縦方向に並ぶ4つの2ポートSRAMに1画素づつ順に格納されている。最初のULデータはNo.0,4,8,12(図8の4Nのライン)に書き込まれる。次のULデータはNo.1,5,9,13(図8の4N+1のライン)に書き込まれる。図8のバッファ形態では、歪補正処理によって補間位置がどのように移動しても、バッファ内の任意の座標周辺16点を1回のアクセスで同時に抽出することができる構成としてある。
【0083】
データ送信可否判定回路30が後段回路からリクエスト(REQ_N)を受信し、次のULデータが送れる状態にあればリクエスト受付(GRANT_N)を出力する。このリクエスト受付(GRANT_N)は自分自身へのトリガとなり、補間位置算出回路22が動作を開始し、1UL分動作したら次のUL先頭座標を算出して終了する。
【0084】
補間位置算出回路22が動作開始して補間位置(X1,Y1)を出力するのと同期するようにデータ送信可否判定回路30からは歪補正係数算出回路21へ動作トリガ(trig)を送る。歪補正係数算出回路21も補間位置算出回路22と同様、1UL分動作したら次のUL先頭座標を算出して終了する。
【0085】
読み出しアドレス生成回路25は、入力される補間座標から、2ポートSRAM26の16個夫々に読み出しアドレスを発行する。
【0086】
次に、読み出し及び補間の方法について説明する。
補間方法を図7に示す。図7は補間回路27における補間演算のイメージ図である。補正座標位置Pの座標(X’,Y’)は前出の[式1]で既に求めてある。この座標における画素値(輝度データ)を求めるのに、座標P(X’,Y’)の周辺16点の画素データD0〜D15から求める。その内、D0が16個のメモリのどのメモリから来ているかが分かれば、D1,D2…,D15はD0に対する位置関係から分かる。後述するように、D0は補間位置の座標によって求まる。
【0087】
図10は16個の2ポートSRAMからなるバッファからの読出し例を示している。今、補間位置(X’,Y’)がX’=10.…,Y’=50.…(…は小数点以下の数字)とすると、X’=10.…は(4×0+10)以上であるから、横方向には2ポートSRAMの4N+10番目のULより若干右側に補間位置が来る。Y’=50.…は(4×12+2)以上であり、4N+10番目のULで、50番目の画素が格納されているメモリ(No.10)が図7における画素D5を出力するので、D0を出力するメモリは、その左上にあるNo.5となる。
【0088】
図7のD0〜D15に対応する画素データは図10の○部であるので、それらが出力されるようにアドレスを生成する。
【0089】
No.0から出力される画像データがD0には対応しない。図10の例では、No.5からの出力がD0に対応する。このため、どのメモリからどのデータが出力されているかを識別するため、読出しアドレス生成回路25からデータ列制御信号を出力し、これによって、補間演算を行う補間回路27はD0が2ポートSRAM26のどこから出ているかを認識して16点補間を行う。
【0090】
画素データD0〜D15が分かれば、[式2]の補間式による補間処理を行うことによって、補正座標位置の画素データをDoutとして求めることができる。
【0091】
【式2】
最後のULデータ出力の後、バッファ開放量算出回路31は今処理し終わったUL先頭座標と次のUL先頭座標との差を計算し(図17参照)、必要なくなったデータの蓄積されているバッファを開放するため、バッファ開放量をバッファ空き容量監視回路29へ出力する。ただし、歪中心を跨ぐ時のバッファ開放量は、図16(b)に示すようにpostULB1,postULB2の値変化も考慮した量を開放することが好ましい。 図16(a)に示すpreULB、postULBとは、ULを形成する画素のうち、最初の画素の座標位置に対して、行方向に対して前側及び後側に所定幅の領域を設けたもので、これらをそれぞれpreULB、postULBと定義している。歪中心を跨いだ時はバッファ開放量を通常のUL先頭座標の差ではなく、参照値の変わるpostULB(ULB:Unit Line Bufferの略、ユニットラインバッファ)の変化量を参照してバッファ開放量を調節する(調整量は、postULB1−postULB2で、図16(b)参照)。
【0092】
(UL先頭座標の差)+(調整量)がマイナスになる場合は、マイナス値を記憶しておく。処理が進んでバッファ開放量がマイナス値を超えるまでバッファの開放を行わない。
【0093】
前述のバッファ開放量の算出と共に、バッファ開放量算出回路31は次のUL処理にあとどれだけ前段回路からデータが必要かをデータ送信可否判定回路30へ送信する。
【0094】
バッファ空き容量監視回路29は前述のバッファ開放量の算出によってバッファに空きができたら、前述の前段回路へのリクエストを行う。
【0095】
データ送信可否判定回路30は書込みアドレス生成回路28の内部カウンタ(BLC)とバッファ開放量算出回路31からの人力とpreULB値とに基づいて、次のULデータを送れるかどうかを判断する。データ送信可否判定回路30は、後段回路のリクエストに対してリクエスト受付(GRANT_N)を返す。
【0096】
エラー検出回路32は、読出しアドレス生成回路25に入力される座標がブロックライン(BL)の左端(図11参照)や右端を逸脱したり、ブロックライン(BL)の上下端(図12参照)を逸脱したり、歪量がpreULB、postULBの設定値を逸脱(図13参照)した場合にエラーを出力する。これらのエラーの出力は、座標を判別して出力することになる。図11及び図12の場合には、エラーを出力するが、処理は継続する。図13の場合も、エラーを出力するが、処理は継続する。図13のpreULB、postULBの場合については、エラーを出力するだけではなく、逸脱した量を記憶し、レジスタに設定してCPU4がデータとして取得できるようにしておく。
【0097】
このように、ブロックライン処理で、出力側の画像に対して入力側の画像を補間算出しているときに入力画像の範囲からはみ出すようなときがある。その場合、入力範囲にデータがない部分で補間データを生成することになり、エラー検出回路32から補間ができない旨のエラーを出力することになる。
【0098】
図14にあるように、歪の中心座標に対して、画像の歪み方は対照的になる。また、歪みは一般的に中心に近いほど小さく、離れるほど大きくなる。そこで、BLの両端にあるULの変形を考慮し、バッファを確保すれば、全てのULにおいて、補間処理でデータが不足することは通常はない。そこで、補間する最初の座標(図ではブロックラインBL内の画像データの一番上の×印にて示す先頭座標)に対して前方(図示右側)に所定の領域preULBを、後方(図示左側)に所定の領域postULBを設ける。
【0099】
サポート機能については、本願と同日に出願した特願2003‐202493号において、「歪補正範囲算出部」と称する部分に該当する。図27(a)において、注目領域がBLとなるが、歪補正の座標変換で同図(b)のように変形される。このとき、X’TL,Y’TL,XLmin,XLmaxからpreULB1/postULB1が決められる(図16(a)参照)。同様に、X’TR,Y’TR,XRmin,XRmaxからpreULB2/postULB2が決められる。
【0100】
さらに、UL処理において、歪の中心を通過すると、光学的歪の曲がり方が逆方向となる。すると、図14のように、歪中心の左右ではpreULB、postULBの値が異なる。この値を、左右どちらにも対応できるよう、図15のように右側で最も大きいpostULBを採用し、左側で最も大きいpreULBを採用すると、左側又は右側の一方側の処理のときに必要もないのにもう一方側のデータを大きく(すなわち、バッファを広く)確保しておかなければならず、バッファの無駄である。
【0101】
そこで、preULBとpostULBで予め同じ大きな値で両方決めておくのではなくて、preULBとpostULBを変数としてそれぞれに値を入れるようにする。歪の中心座標を過ぎたら、これらの値を変えてやって確保量を変えるようにする。すなわち、歪中心前後でpreULB、postULBを変化することにより、内部バッファの使い方に無駄をなくし、小さなバッファで比較的大きな歪補正を行える。
【0102】
pre,postULBをレジスタ85に設定するが、それらの値を生成するためには、歪の変形を考慮して画像データの入力範囲を算出可能とするサポート機能が必要となる。このサポート機能は、歪補正処理部8の歪補正処理機能に付加するなどして設ければよい。メモリ制御部83は、1UL処理中は他の処理によって前記領域preULB,postULBが上書きされないように制御する。前記領域preULB,postULBの設定は、CPU4からレジスタ85(図2参照)に設定しても構わないし、CPUで自動的に計算をして設定してもよい。
【0103】
歪補正処理において16点補間すると前に述べたが、図16(a)に示すように、歪補正によって補間位置は1UL処理の間にa(ただし、a>0)だけ動き得る。16点補間する関係上、入力画像範囲としてはpre側,post側とも上記間隔aに、補間に必要な画素分の間隔bL,bRを加えた範囲が必要となる。
【0104】
歪中心を越えると、pre,postULBの値を変えることで、バッファを必要最小限に絞る。また、前述の「歪補正算出部」で、補間分を考慮して結果を出力させてもよい。
【0105】
歪補正処理部8の持っている内部バッファ82は、図8の場合、最大で縦96画素の横に16ライン(画素)である。これを使って歪補正していくことになる。ブロックライン処理のデータは少なくとも1ULずつ図示右方向にスイープしていく。一気に数UL開放されることもあるので、必ずしも1ULずつスイープするわけでない。内部バッファ82は、はじめは空の状態からスタートするので、16ライン分入ってきて、歪補正処理を行う。これらのユニットラインを処理していくと、左側のラインに不要なデータ(1から数UL分のデータ)が生じることになる。なお、処理したら必ず不要になる訳ではなく、拡大率が大きい時は不要になるまで数ULかかることもある。不要なデータ分はバッファを開放(すなわち、上書き許可)していって新しいデータを入れていくことにする。スイープしていく画像は右側にずれていく。最大16ライン読み込めるサイズしかないので、要らなくなったデータ領域は開放して新しいデータを順次上書きしていくようにする。不要となったバッファ領域は全て一気に開放してしまう。その開放量は1ラインであるかもしれないし、5ラインであるかもしれない。例えば、はじめの3ライン分のデータがバッファに入っていたものを以降の処理に不要であるので開放してしまって次のデータを受け付けるようにして、次のデータが上書きされる。
【0106】
ところで、1UL処理が終わった後に開放できるバッファの量は、次のUL先頭座標が決まらなければ分からない(図17参照)。内部バッファは小さいので、使わなくなったデータが格納されている部分をできるだけ早くに開放する為、次のUL先頭座標を算出して開放量を取得し、バッファを開放することで内部バッファを有効に利用できるようにする。ところが、歪補正に対して後段の回路ブロックからリクエストが来てそれに対するグラントを返して1ULのデータを後段へ出力し、また次のリクエストが来てからグラントを返した後、座標を求めてというように動作させると、バッファの開放が遅れ、これに伴って、新しいデータの取り込みも遅れ、結果として、パイプライン動作に長い空きができてしまうことが起こり得る。そこで、図18に示すように先の歪補正処理(図示の座標1〜nの処理)を行っている段階で、後段の回路ブロックからリクエストに関係なく、座標nの処理が終わったら次の先頭座標n+1を演算して開放量を求め、バッファを早期に開放してしまう。これにより、前段回路ブロックから新たなデータ入力が比較的早く行なわれ、パイプラインの空きを詰めることができる。しかしながら、図18の場合であると、座標nの処理をした後、画素n+1を座標を計算してから処理を終了するので、図19のようにバッファ内に次のUL処理に必要なデータが揃っているのに、後段からのリクエストが連続するとパイプラインに空きが生じる。依然としてパイプラインの空きは存在するので、リクエストが連続した時は、装置全体の動作速度に悪影響を及ぼす恐れがある。
【0107】
そこで、図18の改善策として、図20のように、なるべく早くに次の座標が決まってバッファの開放量を求める方法がある。図18のように一番最後に次の先頭座標を求めるよりももっと早い段階で次のUL先頭座標を取得しておき、必要なデータが揃っていると判断されたら、次のUL処理を連続して行うことで処理の空きを小さくする。すなわち、1UL処理が終了する前にULのデータをレジスタ等に保持しておいて、次のULの先頭の座標位置を算出することで、予め次のUL処理の開放量を求めておく。図20では、先の歪補正処理(図示の座標1〜nの処理)の2画素目に次のULの先頭座標を求めておいてバッファ開放量を早い段階で取得する。これによって、バッファの開放を早くすることができ、図21に示すように図19に比べてパイプラインの空きをかなり少なくできる。しかしながら、回路的に複雑となり、制御も困難となる問題点がある。
【0108】
そこで、図20をさらに改善したのが、図22である。図22では、現在処理中のULが終わった時に開放する量(開放量1)は前のUL処理中に既に分かっている。座標nを算出した後、2つ先のUL先頭座標を計算し、次のUL処理が終わった時に開放できる量(開放量2)を予め求めておく。このようにすると、図20の場合のようにUL処理中に例外的な座標生成(座標2の生成)を行う必要がない。このように、次のULの先頭ではなくて次の次の2つ先のULの先頭座標を求めておけば、図20のような例外的な処理がなくなるので、回路的には簡単になる。
【0109】
【発明の効果】
以上述べたように本発明によれば、バスの転送量やメモリの容量を大きく増大させることなく、歪補正を実現することができる。すなわち、小さなバッファ容量で比較的大きな歪補正処理を行うことが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施の形態の画像処理装置の全体構成を示すブロック図。
【図2】歪補正処理部の構成を示すブロック図。
【図3】歪補正処理部における座標変換の概念図。
【図4】陣笠型歪を示す図。
【図5】入力画像データを示す図。
【図6】歪補正処理部の詳細な構成を示すブロック図。
【図7】補間回路における補間演算のイメージ図。
【図8】歪補正処理部における内部メモリ部を説明する図。
【図9】図8の補足説明をする、書き込み順番を示す図。
【図10】図7の補正座標位置を算出するのに必要なD0を求めるための説明図。
【図11】エラー処理例を示す図。
【図12】他のエラー処理例を示す図。
【図13】他のエラー処理例を示す図。
【図14】歪補正処理に要するバッファ量について説明する図。
【図15】歪補正処理に要するバッファ量について説明する図。
【図16】歪補正処理に要するバッファ量について説明する図。
【図17】UL処理に伴う開放量の算出方法について説明する図。
【図18】UL処理に伴う開放量の算出方法について説明する図。
【図19】図18の処理に伴うパイプライン処理の空きについて説明する図。
【図20】UL処理に伴う開放量の算出方法について説明する図。
【図21】図20の処理に伴うパイプライン処理の空きについて説明する図。
【図22】UL処理に伴う開放量の算出方法について説明する図。
【図23】格子状の被写体、樽型歪を生じた撮影画像、糸巻き型歪を生じた撮影画像を示す図。
【図24】一般的なデジタルカメラの画像処理手順の概念、及び従来のデジタルカメラの画像処理装置におけるブロック構成を示す図。
【図25】本発明に係る実施の形態におけるフレームメモリからの画像データの読み出し順序を説明する図。
【図26】本発明に係る図1の第1,第2データ順序変換部の構成を示すブロック図。
【図27】歪補正範囲算出部における、歪補正処理を行う際の入力画像範囲を算出する動作を説明する図。
【符号の説明】
1…CCD
3…バス
4…CPU
5…フレームメモリ
6…第1データ順序変換部
7…イメージプロセス回路
6…第1データ順序変換部
8…歪補正処理部(歪補正手段)
9…第2データ順序変換部
10…JPEG処理部
11…メモリカード(記録媒体)
82…内部メモリ部(バッファ)
83…メモリ制御部
85…制御レジスタ
Claims (12)
- 画像処理手段とパイプライン処理可能なように接続され、画像処理後の画像データに対して歪補正処理を行う歪補正手段を有する画像処理装置において、
前記歪補正手段は、
歪補正後の補正画像における画素の座標位置と、この座標位置に対応する、歪補正前の画像における画素の補間座標を生成する補間座標生成部と、
前記画像データをブロック単位で格納するバッファメモリ部と、
前記バッファメモリ部に対する画像データの書き込みおよび読み込みを制御するメモリ制御部と、
前記生成された補間座標に基づいて、前記バッファメモリ部から読み出したブロック単位の画像データから該補間座標の画素データを生成する補間演算を行う補間演算部と、
を有し、
前記メモリ制御部は、
前記画像処理手段から歪補正前の画像データを前記バッファメモリ部へ書き込む際は、列方向に一列に並んだ一定数分の画素からなる画像データであるユニットラインを単位として行方向に順次書き込むように制御し、前記バッファメモリ部から読み出す際は、歪補正処理後の画像データが前記ユニットラインを単位として行方向に順次出力されるように、前記バッファメモリ部に格納された画像データに対して読み出し制御を行うことを特徴とする画像処理装置。 - 前記メモリ制御部は、前記ユニットラインの最初に処理される画素の座標位置を基準座標位置として、この基準座標位置と行方向の前側の座標位置との間がpreULBの幅であるメモリ領域を設け、行方向の後側の座標位置との間がpostULBの幅であるメモリ領域を設け、
前記ユニットラインの処理中は他の処理によるデータによって前記両方のメモリ領域が上書きされないよう制御することを特徴とする請求項1に記載の画像処理装置。 - 前記メモリ制御部は、さらに、
前記ユニットラインの処理中に、前記歪補正手段の前段回路からのデータを入力するために開放可能なバッファ開放量を算出するバッファ開放量算出回路と、
前記歪補正手段の後段回路に対するデータ送信の可否を判定するデータ送信可否判定回路と、を有し、
前記バッファ開放量算出回路は、現在処理中のユニットラインの最初の画素に対する座標と、次に処理予定のユニットラインの最初の画素に対する座標との差を前記バッファ開放量として算出するとともに、次のユニットラインの処理に必要な前段回路からのデータ量を前記データ送信可否判定回路に送信し、
前記データ送信可否判定回路は、前記バッファ開放量算出回路から送信されたデータ量と、前記preULBの値とに基づいてデータ送信可否の判定を行うことを特徴とする請求項1又は2に記載の画像処理装置。 - 前記preULBの値、postULBの値は、それぞれ歪中心に対して前側と後側とで異なる値を設定可能であることを特徴とする請求項2又は3に記載の画像処理装置。
- 前記画像処理装置は、さらに、前記算出されたバッファ開放量によりバッファ内の空き領域を検出するバッファ空き容量監視回路を有し、
該バッファ空き容量監視回路によりバッファ内の空き領域が検出されると、該空き領域へのデータの書き込みを可能とすることを特徴とする請求項1〜3のいずれか1つに記載の画像処理装置。 - 前記バッファメモリ部は、データのリード動作とライト動作が同時に可能な複数のバッファからなり、
前記メモリ制御部は、さらに、
前記バッファメモリ部へのデータ書込み制御を行う書込みアドレス生成回路と、
前記バッファメモリ部に格納されている画像データから補間演算に必要なデータを同時に読み出すためのアドレスを生成する読出しアドレス生成回路と、
を有し、
前記データ書込み制御は、同時に読み出すデータをそれぞれ異なるバッファに書き込むものであることを特徴とする請求項1に記載の画像処理装置。 - 前記画像処理装置は、さらに、歪補正処理により得られた補間座標が前記ユニットラインの処理を行うためのブロックラインの画像データに対する補間座標に対し、列方向に前記preULB、postULBを逸脱する座標が生成された時、若しくは、歪補正処理により得られた補間座標が前段からは入力され得ない座標となった時にエラー出力を行うエラー検出回路を有することを特徴とする請求項2〜4のいずれか1つに記載の画像処理装置。
- 前記エラー出力がなされたときは、前記ブロックラインの画像データの入力範囲を再設定して歪補正処理を再実行することが可能であることを特徴とする請求項7に記載の画像処理装置。
- 1つのユニットラインの最後の画素に対する歪み補正処理終了後、次の1つのユニットラインまたはさらにその次の1つのユニットラインの最初に歪み補正処理を行う画素の補間座標を演算し、前記補間座標に基づいてバッファ開放量を求めることを特徴とする請求項1〜5のいずれか1つに記載の画像処理装置。
- 入力された画像データに対して歪補正処理を行う画像処理方法において、
前記歪補正処理を行う際は、
データの書き込みおよび読み込みが制御されるバッファメモリ部に、前記入力された画像データをブロック単位で格納し、
歪補正後の補正画像における画素の座標位置と、この座標位置に対応する、歪補正前の画像における画素の補間座標を生成し、
前記生成された補間座標に基づいて、前記バッファメモリ部から読み出したブロック単位の画像データから該補間座標の画素データを生成する補間演算を行い、
前記バッファメモリ部への書き込みの際は、列方向に一列に並んだ一定数分の画素からなる画像データであるユニットラインを単位として行方向に順次書き込むように制御し、前記バッファメモリ部からの読み出しの際は、歪補正処理後の画像データが前記ユニットラインを単位として行方向に順次出力されるように、前記バッファメモリ部に格納された画像データに対して読み出し制御を行うことを特徴とする画像処理方法。 - 前記画像処理装置は、さらに、前記歪補正手段が歪補正処理を行うのに必要とする入力画像範囲を算出する歪補正範囲算出部を有し、
前記入力画像範囲は、前記歪補正処理後の画像データにおける注目領域に対して歪み補正の座標変換がなされて得られる歪補正処理前の画像データの対応領域を包含する領域として得られることを特徴とする請求項2〜4のいずれか1つに記載の画像処理装置。 - 前記歪補正範囲算出部は、前記歪補正処理後の画像データにおける注目領域に対して所定の歪補正式を適用することで座標変換可能であり、歪補正処理後の出力画像範囲における、
周辺4辺の各辺に対応する各画素に対して前記座標変換を行って生成した変換座標の最大値と最小値、および4頂点に対応する各画素に対して座標変換を行って生成した変換座標、の少なくともいずれかを算出し、
前記preULBおよびpostULBは、前記歪補正範囲算出部の算出結果に基づいて算出することを特徴とする請求項11記載の画像処理装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003202664A JP4334932B2 (ja) | 2003-07-28 | 2003-07-28 | 画像処理装置及び画像処理方法 |
EP12006314.4A EP2533192B1 (en) | 2003-07-28 | 2004-07-27 | Image processing apparatus, image processing method, and distortion correcting method |
PCT/JP2004/011010 WO2005010818A1 (ja) | 2003-07-28 | 2004-07-27 | 画像処理装置、画像処理方法及び歪補正方法 |
EP04771117.1A EP1650705B1 (en) | 2003-07-28 | 2004-07-27 | Image processing apparatus, image processing method, and distortion correcting method |
US10/566,408 US7813585B2 (en) | 2003-07-28 | 2004-07-27 | Image processing apparatus, image processing method, and distortion correcting method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003202664A JP4334932B2 (ja) | 2003-07-28 | 2003-07-28 | 画像処理装置及び画像処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005045514A JP2005045514A (ja) | 2005-02-17 |
JP4334932B2 true JP4334932B2 (ja) | 2009-09-30 |
Family
ID=34262309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003202664A Expired - Fee Related JP4334932B2 (ja) | 2003-07-28 | 2003-07-28 | 画像処理装置及び画像処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4334932B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4670424B2 (ja) * | 2005-03-25 | 2011-04-13 | ソニー株式会社 | 情報処理装置および情報処理方法、画像表示システム、並びに、プログラム |
JP4657367B2 (ja) | 2007-05-09 | 2011-03-23 | 富士通セミコンダクター株式会社 | 画像処理装置、撮像装置、および画像歪み補正方法 |
JP5135953B2 (ja) | 2007-08-28 | 2013-02-06 | コニカミノルタアドバンストレイヤー株式会社 | 画像処理装置、画像処理方法、及び撮像装置 |
JP4528850B2 (ja) * | 2008-08-26 | 2010-08-25 | シャープ株式会社 | 欠陥検出装置、欠陥検出方法、欠陥検出プログラム、及び該プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP5593060B2 (ja) * | 2009-11-26 | 2014-09-17 | 株式会社メガチップス | 画像処理装置、および画像処理装置の動作方法 |
JP5602532B2 (ja) * | 2010-07-30 | 2014-10-08 | オリンパス株式会社 | 画像処理装置および画像処理方法 |
JP5658612B2 (ja) * | 2011-05-11 | 2015-01-28 | 株式会社東芝 | 画像処理装置、画像処理システム及び画像処理方法 |
JP5769790B2 (ja) * | 2013-12-13 | 2015-08-26 | キヤノン株式会社 | 画像処理装置および画像処理方法 |
KR102473840B1 (ko) * | 2017-11-21 | 2022-12-05 | 삼성전자주식회사 | 디스플레이 드라이버 및 모바일 전자 기기 |
JP7159555B2 (ja) * | 2017-12-25 | 2022-10-25 | カシオ計算機株式会社 | 画像処理装置、画像処理方法及びプログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3686695B2 (ja) * | 1994-10-20 | 2005-08-24 | オリンパス株式会社 | 画像処理装置 |
JPH09252391A (ja) * | 1996-01-09 | 1997-09-22 | Fuji Photo Film Co Ltd | 画像読取装置及び画像受信装置 |
JPH11250238A (ja) * | 1998-02-27 | 1999-09-17 | Kyocera Corp | ブロック単位でディストーション補正を行うディジタル撮像装置 |
JP2001101396A (ja) * | 1999-09-30 | 2001-04-13 | Toshiba Corp | 画像歪み補正処理装置および方法、並びに画像歪み補正処理を行うプログラムを格納した媒体 |
JP4827213B2 (ja) * | 2001-03-12 | 2011-11-30 | 株式会社メガチップス | 画像補正装置および画像補正方法 |
JP3781634B2 (ja) * | 2001-04-26 | 2006-05-31 | シャープ株式会社 | 画像処理装置および画像処理方法並びに携帯用映像機器 |
-
2003
- 2003-07-28 JP JP2003202664A patent/JP4334932B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005045514A (ja) | 2005-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4772281B2 (ja) | 画像処理装置及び画像処理方法 | |
EP1650705B1 (en) | Image processing apparatus, image processing method, and distortion correcting method | |
WO2004109597A1 (ja) | 画像処理装置 | |
JP4781229B2 (ja) | 歪曲収差補正装置、撮像装置、及び歪曲収差補正装置の制御方法 | |
US7301565B2 (en) | Correction method, correction device and photographing device | |
JP3781634B2 (ja) | 画像処理装置および画像処理方法並びに携帯用映像機器 | |
JP4334932B2 (ja) | 画像処理装置及び画像処理方法 | |
JP2011002940A (ja) | 画像処理装置及び撮像装置 | |
JP5602532B2 (ja) | 画像処理装置および画像処理方法 | |
JP2004362069A (ja) | 画像処理装置 | |
JP2005045513A (ja) | 画像処理装置及び歪補正方法 | |
CN109785265B (zh) | 畸变矫正图像处理方法及图像处理装置 | |
JPH11275391A (ja) | ディストーション補正を選択できるディジタル撮像装置 | |
JP2006203437A (ja) | カメラ装置、カメラ装置の画像処理方法 | |
JP2007079708A (ja) | 画像処理装置及び画像処理方法 | |
US6906748B1 (en) | Electronic camera | |
TWI377521B (en) | Image processing apparatus and method | |
WO2007108081A1 (ja) | 撮影装置、撮影方法及びプログラム、撮影装置のテーブル作成装置及び方法、映像処理装置及び方法 | |
JP4436626B2 (ja) | 画像処理装置 | |
JP6762775B2 (ja) | 画像処理装置、撮像装置、制御方法及びプログラム | |
JP4503106B2 (ja) | 情報処理装置および方法、情報処理システム、並びに記録媒体 | |
JPH11308560A (ja) | 電子カメラ装置 | |
JP2007156795A (ja) | 画像変換装置 | |
JP6440465B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP4279775B2 (ja) | 光学歪み補正装置、光学歪み補正方法、及び撮像装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060404 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090303 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090507 |
|
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: 20090602 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090624 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120703 Year of fee payment: 3 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4334932 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120703 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130703 Year of fee payment: 4 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |