FPGA活用回路&サンプル記述集(3) ―― ビデオ信号処理回路

大中 庸生

・640×480ポインタ指定表示

(1) 表示対象となるカメラを有効設定します(CAM1またはCAM2).
(2) カメラ・データ(1024×768)からモニタ出力開始画素(X,Y)を設定します.設定した画素から(640×480)の範囲をモニタ出力画像とします.

・512×384への1/2間引き表示

(1) 表示対象となるカメラを有効設定します(CAM1またはCAM2).
(2) カメラ・データ(1024×768)から偶数画素,偶数ラインを削除し,512×384にリサイズしてモニタ出力画像とします.

・640×240×2チャネル:カメラ2台の画像を同時に表示

(1) 表示対象となるカメラを有効設定します(CAM1とCAM2).
(2) カメラ2台(CAM1,CAM2)からのデータに対して,カメラ・データ(1024×768)から,モニタ出力開始画素(X,Y)を設定します.設定画素から(640×240)の範囲をモニタ出力画像とします.1ライン~240ラインをCAM1表示領域,241ライン~480ラインをCAM2表示領域とします.

● 読み出しクロックが書き込みクロックより速い

 入力部からデータを受け取る際にFPGAの内部メモリを使用します.データを書き込むクロックの周波数はカメラ・クロックの29.5MHz(33.8ns周期),データを読み出すクロックの周波数はPCIローカル・クロックの33MHz(30.3ns周期)です.

 周波数に大きな差はありませんが,読み出しの周波数の方が書き込み周波数より高速なため,読み出しが書き込みを追い越してしまいデータが欠落する恐れがあります.

 このような場合は内部メモリのカウント値(データ格納数を示す内部メモリの出力信号)を使って読み出し開始のタイミング(SIG_CAM_RD_EN有効開始タイミング)を決定します.画像データ1ラインが連続したデータとなるので,1ラインを一つの単位として読み出し開始のカウント値を決定します.

 下記計算式から求める値は読み出しが書き込みを追い越すことなく,最も効率良くデータ転送を行うための値です.

 読み出し開始のカウント値=Hサイズ-((Hサイズ×リード・クロック周期)/ライト・クロック周期)

 リサイズ処理はSSRAMインターフェース側の内部メモリにデータを書き込む前に行います.テレビ・モニタ出力データだけを書き込み,処理部以降の回路が画像サイズ設定を必要としないように設計します.

 また,出力部がSSRAMからテレビ・モニタ出力データの読み込み中であった場合,本ブロックからのデータをSSRAMに書き込めません.そのようなときの一時保存用の機能も兼ねています.データが破たんしないように十分な容量を確保する必要があります.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日