FC2カウンター FPGAの部屋 2009年11月25日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

YUV-RGB変換2(画像ボードやタイミングの検討)

YUV-RGB変換1(方式の検討)”の続き
方式は決まったので、画像ボードとタイミングの検討をしよう。
画像ボードは”DWM誌の2007年8月号と2007年10月号の基板でカメラの画像を表示”のボードではSRAMの帯域が足りない。10nsの非同期SRAMを10nsサイクルで使いたくないので、SRAMだったら倍のデータバス幅が欲しい。そこで、同じESP企画の画像ベースボード(Spartan3E XC3S1200+4M高速SRAM)【CQBB-IMG】とデジタルCMOSカメラ【KBCR-M04VG】の組み合わせで行くことにした。
CQBB-IMGボードは回路図を見ると、16ビットのアクセスタイム10ns のSRAMが2つ搭載されている。(SDRAMやDDR SDRAMが搭載されていると楽なんだけど)これで25MHzで動作させてもメモリ帯域が足りるはず。デジタルCMOSカメラ【KBCR-M04VG】はNDAの影響か?データシートがネットにない。カタログがこの辺にある。一応画像ボードと一緒にもう少し詳しいデータシートが添付されているのだが、まだなぞの部分が多い。このCMOSカメラは前のと違ってVGAで60フレーム出力することができるが、とりあえず以前同様VGAを30フレームで出力させることにする。
OV7725のデータシートを見てみると、GRB4:2:2で出力することができるようだ。SCCBバスで設定してこれで出すのもありだろうか?でも満足なマニュアルがなくて、どんなフォーマットで出てくるかが書いていない。手探り状態なので、やはり、とりあえずYUV-RGB変換してみることにする。
検討したタイミングチャートを下図に示す。
YUV_RGB_conv_1_091126.png

前のタイミグンチャートと同じようだけど、もう1つSRAMが増えているので、メモリのデータ入出力が2つある。MD1とMD2だ。MD1は以前同様に16ビット幅に2つのYを保存する。MD2は同じく16ビット幅の上位バイトにUを下位バイトにVを保存する。一度に1バイトをWriteするので、1クロック間では上位バイトか下位バイトだけをWriteする。例えばMD2のタイミングチャートの上に書いてある、”CAMERA U0, XX”はCMOSカメラからのUの0番目をSRAMの上位バイトだけに書き込み、下位バイトは書きこまないことを示す。”XX, CAMERA V0”はVの0番目を下位バイトだけに書き込み、上位バイトには書きこまないことを示す。
SRAMのRead/WriteがR/Wで、アドレスがMADDRになっている。アドレスは2つのSRAM共通とする。SRAM_WRは実際にSRAMに書き込むタイミングを示し、UBはUpper Byteの書き込み、LBはLower Byteの書き込みを示す。
CAM_Yはカメラから入力したデータのフォーマットを示す。上に書いてあるのがYUVの出力されるフォーマットである。UYVY...と出力される。UV_FFはそのCAM_Yをラッチした出力でUVを保存しておくためのFFだ。
このような仕様でSRAMにCMOSカメラのYUVデータを格納しようと思っている。ちなみにY、UVとも最初はCMOSカメラからのデータの書き込みが間に合わないので、変なデータをディスプレイに表示してしまうが、1フレーム終われば正常な値を出力するので問題はない。
YUV422なのでYに対してUVは半分のデータ量しかないため、ディスプレイに表示するためにSRAMからUVはラッチされて2ピクセルの間、使う必要がある。その辺はタイミングチャートに表していない。

(2009/11/27 追記)
KBCR-M04VGは前のKBCR-M03VGと違っているようだ。リセットは逆で0でリセットのようだし、デフォルトではYUYVとデータが出てくるようだ。もう一度、タイミングを書きなおす。
  1. 2009年11月25日 05:53 |
  2. 画像処理
  3. | トラックバック:0
  4. | コメント:0