簡易テキスト版

簡易テキストページは図や表を省略しています。
全文をご覧になりたい方は、PDF版をダウンロードしてください。

全文(PDFファイル:641KB、4ページ)


回路実装用画像変形処理の研究 −小規模FPGAに搭載可能な変形処理回路の開発−

■電子情報部 田村陽一 吉村慶之 米沢裕司

 カメラで撮影された画像を用いる自動検査装置では,位置ずれによる検査精度の低下を解消したいというニーズがある。しかし,リアルタイム性のある画像変形処理回路は,処理速度の観点から専用LSIを使用したデジタル回路で構成する必要があり,高価なうえにその利用には高度な技術を要する。本研究では,処理動作を書き換え可能なLSIであるFPGA (Field-Programmable Gate Array)を使用することで,リアルタイム性のある低コストの画像変形処理回路の開発を行った。デバイスとして入手が容易な120万ゲート規模のFPGAと,画像メモリに高度な配線技術を必要としないSDR-SDRAMを使用し,2048pixel×2048lineの解像度をもつ画像を毎秒5枚変形処理する回路を開発した。
キーワード: 画像変形処理,FPGA

Study on Image Deformation Processing Circuits
- Incorporation of a Deformation Processing Circuit into a Small-size FPGA -

Youichi TAMURA, Yoshiyuki YOSHIMURA and Yuji YONEZAWA

Automated inspection systems that use camera images require the elimination of distortion of captured images. However, to meet processing-speed requirements, real-time image deformation processing requires a digital LSI circuit for exclusive use, which is very costly and technically difficult for small businesses to use. In this study, using an FPGA (Field-Programmable Gate Array), an integrated circuit designed to be configured by the user, we developed a real-time image deformation circuit. By using a one-million-gate FPGA, which is readily available, and an SDR-SDRAM, which does not need advanced wiring techniques, we constructed a prototype circuit for image deformation processing, which has the capability of deforming five images (resolution of 2048 pixels×2048 lines) within one second.
Keywords : deformation processing circuit, FPGA

1.緒  言
 製品の自動検査では,ライン上を流れる製品の良否判定にカメラ画像が使われている。図1に示すように,ライン上を流れる製品は,常に規則正しく一定の位置にあるわけではないため,撮影ごとに画像内での製品の位置がずれることが一般的である。このため,製品の良否判断を行う前に撮影画像を変形処理することにより,ライン上を流れる製品の位置ずれを解消したいというニーズがある。国内の印刷物検査装置では,2048pixel×2048lineの解像度を持つ画像を1/5s毎に連続で撮影するカメラが使用されている。このような画像の変形処理を行うためには毎秒2000万(≒2048pixel×2048line×5page)画素に対して演算する必要がある。この処理速度を実現するためには,並列処理専用LSIや,画像処理専用LSIが必要となる。このような専用LSIは一般に高価であり,かつその利用には高度な技術を要する。
 そこで本研究では,汎用の120万ゲート規模のFPGAを用いた画像変形処理回路の開発を試みた。

(図1 画像変形処理)

2.画像変形処理回路の開発
2.1 回路仕様及び全体構成
 試作する画像変形処理回路は,以下のような仕様とした。
・120万ゲート以下の小規模FPGAに実装が可能な回路規模とする。
・最大2048pixel×2048line×5page/sの画像に対し,拡大縮小,回転,平行移動の変形を可能とする。
・出力画像は加重平均を用い補間する。
・入出力画像はモノクロとする。
・640pixel×480line×60page/sのPC出力画像に対し,拡大縮小,回転,平行移動の変形を可能とする。
なお,最後の仕様は,2048pixel×2048line×5page/sの高解像画像を表示できるディスプレイを入手することが困難であり,変形処理結果を直接ディスプレイで確認することが難しいため追加した。640pixel×480line×60page/s(無映像部含め800pixel×525line×60page/s)は毎秒2500万画素以上に相当し,このPC出力画像の変形処理ができれば,処理速度面での問題はない。
 試作した回路の全体構成を図2に示す。回路は入力基板部,FPGAボード部1),出力基板部により構成されている。入力基板部は回路全体の中央下側にあり,PCからのDVI信号(デジタル画像信号)が入力される。入力された信号は信号変換ICを通りFPGAボード部へ入力される。FPGAボード部は回路全体の中央上部に位置し,FPGA,画像格納用メモリなどが搭載されている。FPGA内部には画像を格納するだけのメモリ領域を確保できないので,画像格納用メモリはFPGAの外部に配置する。またFPGAボード部は,回路全体の上側からシリアル通信接続により画像変形に必要なパラメータを外部と通信することで様々な変形処理ができる。FPGAボード部の右側には出力基板部があり,アナログ画像信号を生成する画像用D/Aコンバータが搭載されている。FPGAボード部の出力は,画像用D/Aコンバータに入力され,アナログ信号に変換された後,回路全体の右側からPC用RGBコネクタを通し表示装置へ出力される。

(図2 画像変形処理回路の全体構成)

2.2 FPGA内部の回路構成
 図3のようにFPGA内部は,入力基板部からの信号を取り込む入力部,外部メモリの制御及び書込み読出しを行う外部メモリ制御部,出力基板部へ信号を受け渡す出力部,PCなどの外部と変形パラメータの通信を行うパラメータ通信部で構成されている。

(図3 FPGA内部の回路構成)

2.2.1 入力部
 入力部は,単色8bit階調の輝度で定義される画素情報と横位置パルス(ピクセルクロック),縦位置パルス(水平同期信号),ページパルス(垂直同期信号)を受け取り,画素情報の集合を画像として外部メモリへ格納するための前処理を行う。各パルスでカウンタを駆動し,入力画像の任意の範囲をラインバッファに格納する。ラインバッファは,短時間,画素情報を記憶することができ,駆動速度やアクセスタイミングの異なる外部メモリ制御部との緩衝動作を行う。試作した回路では2ライン分の画素情報を格納できるようになっており,後述の補間処理に必要となる入力画素を含めた近傍4画素を,外部メモリに書込む前に準備する。

2.2.2 外部メモリ制御部
 外部メモリは,書込みと読出しを同時に行うことができない一般的なSDR-SDRAM2)-4)を使用している。試作した回路では出力に加重平均補間処理を加えることから,読出すべき座標の近傍4画素を必要とするため,外部メモリに書込む前段階で近傍4画素をまとめてから書込み,それを読出す方法を採っている。これらのことから,1画素の処理を行うためには,画素の入力速度に対して,外部メモリへの書込みで4倍,読出しで4倍の計8倍のアクセス速度が必要となる。入力画像は,1画素あたり8bitの輝度情報を持ち,毎秒2500万画素の処理を必要とする。そこで,この情報量を外部メモリに余裕を持って読み書きするために,FPGAから外部メモリへは,4画素分にあたる32bit幅で接続し,毎秒1億回の読み書きをできるよう構成した。これにより,上述した8倍に対して十分に高速な16倍のアクセス速度を実現した。
 入力部によりラインバッファに格納された入力画像は,ラインバッファへの1ライン分の格納が終了するタイミングで,外部メモリへ書込まれる。入力画像は常に一定の速度で入力されることから,図4のタイミングチャートにおけるメモリ読み書きのnライン,n+1ラインのように,外部メモリへの書込み時間も変動しない。
 また,画像出力は常に一定タイミングで行われる必要があるため,メモリからの画像の読出しは固定されたタイミングで開始されなければならない。試作した回路では,外部メモリへの書込み動作の後に,外部メモリからの読出し動作を開始し,ラインバッファへの格納を行う。このとき,読出し動作の処理時間は,画像の変形による読出し座標によって変化する。このため,図4におけるメモリ読み書きのmラインやm+1ラインのように,読出し終了の時間が一定ではなくなる。読出し終了の時間が大きく遅れると,次ラインの書込み動作に影響を及ぼすため,読出し開始からラインの書込み開始までの時間を大きくとることで,余裕を持たせている。
 変形処理を行うには,入力画像の座標系から変形後の出力画像の座標系への座標変換を行う必要がある。試作した回路では,正常な標準画像内の3点の座標と,入力画像内の3点の座標を一致させるアフィン変換によって座標を決定している。この演算を外部メモリからの読出しの前に行い,読出し座標を決定する必要があるが,これを外部メモリのアクセスと同期した毎秒1億画素の読出し速度で演算することは難しい。そこで,事前に毎秒2500万画素の入力画像の速度に合わせて,読出し座標を演算により生成し,読出し座標バッファに書込んでおく。外部メモリからの読出し時に,読出し座標バッファに書込まれた座標を参照することで外部メモリの読出し速度に対応しつつ,十分な座標の演算時間を確保した。これによって,入力画像ごとに処理が可能となり,リアルタイム性のある画像変形処理を実現できた。
 画像の上下反転や回転などの変形処理で外部メモリに対する書込み方向と読出し方向が大きく異なると,まだ入力が終わっていないラインを読出そうとする場合がある。外部メモリ上で入力が終わっていない(書込みが終わっていない)部分には過去に入力された画像のデータが残っており,この状態を読出そうとした場合,読出すべきページと過去のページが出力画像に同時に表示される「フレーム割れ」という症状が発生する。試作した回路では,外部メモリ上に2ページ分の入力画像を保持する領域を持ち,書込みを完了した領域から読出しを行い,同時に他方の領域に対して次の入力画像の書込みを行うことで正常な画像を出力できるようにした。

(図4 メモリの読み書き)

2.2.3 出力部
 外部メモリ制御部によってラインバッファに格納された画像情報を読出し,画像用D/Aコンバータへ出力する。入力画像に対して変形を加えた画像を出力するため,入力画像の外側に位置する無画像部分が出力画像に表示されるが,その部分はマスキングし黒色を表示する。図5に入力画像(変形前)と,出力画像(変形後)を示す。外部から変形の設定を行うことでページ毎に変形が可能であり,連続して設定を変更することで,スムースに変形が可能である。

(図5 画像変形処理の例)

2.2.4 パラメータ送受信部
 試作した回路では,パラメータ送受信部はRS-232Cで通信を行い,PCから変形に必要なパラメータを受信する。ここでは,全ての画素の座標を設定するわけではなく,標準画像内の3点と入力画像内の3点の計6点の座標を設定し,FPGA内部で変換座標を生成するため容易に設定を行うことができる。設定を行っている最中に次の画像が入力されても,設定途中のパラメータが変形座標生成に反映されないように,最後のパラメータが書込まれた時点で,全6点のパラメータが有効となり,次の画像が入力された時点で変形座標生成に反映されるようにした。

2.3 回路規模
 試作には120万ゲート規模のFPGAを使用した。FPGA内の回路の使用率は15%にとどめることができた。実質20万ゲート以下の回路規模である。さらに小さな50万ゲート規模のFPGAに実装できた。

3.結  言
 試作した回路により640pixel×480line×60page/sのPC出力画像をリアルタイムに拡大縮小,回転,平行移動することができた。要求された2048pixel×2048line×5page/sの画像変形処理は十分に可能である。また,回路規模も小さく収まり,目標であった120万ゲート規模のFPGAに問題なく実装できた。

参考文献
1) SUZAKU-S ハードウェアマニュアル. (株)アットマークテクノ, p. 22-34.
2) ユーザーマニュアルSDRAMの使い方. ELPIDA, Document No. J0123N60(Ver. 6.0), 117p.
3) ユーザーマニュアルシンクロナスDRAM. ELPIDA, Document No. J0124N10(Ver. 1.0), 93p.
4) 128Mb F-die SDRAM Specification. SAMSUNG ELECTRONICS, Rev. 1.2 May 2004, 14p.