”
YUV-RGB変換2(画像ボードやタイミングの検討)”でタイミングを検討したが、どうやら、KBCR-M04VG(内蔵CMOS撮像素子、OV7725)は前のKBCR-M03VG(内蔵CMOS撮像素子、OV7640)と違っているようだ。リセットは逆で0でリセットのようだし、デフォルトではYUYVとデータが出てくるようだ。KBCR-M04VGの全体のフレームのタイミングを下に示す。データシートのタイミングチャートを基に作成した。

図1 OV7725のフレーム・タイミングチャート
クロックはいい加減に書いてあるので、ご了承いただきたい。tp = 2 tPCLK となっている。これはYU, YVで一画素を表しているからだ。実際にはHSYNCはないはずなのだが、データシートに書いてあったので、付けくわえておいた。今度のボードは50MHzの水晶発振器が付いているので25MHzピクセルクロックのVGAとなる。Spartan3A Starter Kitのユーザーズマニュアルに書いてあるタイミングを下に示す。(表 6-2 を引用)

図1と表6-2を比べるとタイミングがだいぶ違う。今まではVGAはCMOSカメラのフレームの1/2としていたが、今回はCMOSカメラ、VGAともそれぞれのタイミングで入力、出力してもらうことにした。OV7725はVGAを60フレーム/secで出力することもできるようだが、とりあえず30フレーム/secとする。つまり、少なくとも1/15sec カメラを止めていれば、思い通りのVGA出力が出てくるだろう。
次に全体のタイミングチャートを示す。

図3 YUV-RGB変換回路タイミングチャート
前のタイミグンチャートと同じようだけど、もう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...と出力される。Y_FFはそのCAM_Yをラッチした出力でYを保存しておくためのFFだ。
このような仕様でSRAMにCMOSカメラのYUVデータを格納しようと思っている。ちなみにY、UVとも最初はCMOSカメラからのデータの書き込みが間に合わないので、変なデータをディスプレイに表示してしまうが、1フレーム終われば正常な値を出力するので問題はない。
YUV422なのでYに対してUVは半分のデータ量しかないため、ディスプレイに表示するためにSRAMからUVはラッチされて2ピクセルの間、使う必要がある。その辺はタイミングチャートに表していない。
DISPLAY_DATAはVGA用のデータをSRAMからリードするタイミングで、これはCMOSのタイミングとは全く別にする。以前はmaster_syncでVGAのアドレスも同期していたが、これはやめることにする。VGAは521ライン、CMOSカメラは510ラインなので、VGAのフレーム2回はCMOSカメラのフレーム1回に入らなくなった。
- 2009年11月28日 20:10 |
- 画像処理
-
| トラックバック:0
-
| コメント:4
いつも読ませていただいています.
今回同じカメラを使用することになり,参考にさせていただきました.特にデフォルト値の場合のデータの並び,リセットの極性,入力クロックが2倍されて出力されるという話は,ここで聞いていなければ私も確実にしばらくはまっていたでしょう.少なくともデータシートを取り寄せるまでは動かせなかったと思われます.この情報のおかげですんなり動かすことができました.多謝.
- 2011/07/07(木) 19:59:54 |
- URL |
- Lunor #-
- [ 編集 ]
Lunorさん、こんにちは。
データシートにも、こういう情報は書いてありません。NDAを結べば出てくると思いますが、とにかくやってみて、推測するしかない状態です。情報は貴重だと思います。
後、カメラからのPCLKはそのまま使うことをお勧めします。DCMに通さないほうが良さそうですよ。
- 2011/07/07(木) 20:41:32 |
- URL |
- marsee #f1oWVgn2
- [ 編集 ]
PCLKについてはKBCR-M04VGからの信号が良くないのでしょうか?留意しておきます.
そして確かにシャープネスの機能が悪さをしていますね.情報が無ければ自分のYUV->RGBの変換を疑うところでした.データシートが入手できたのでSCCBを私も書き換えてみようと思います.
実際に使用してみた情報は貴重ですね.こういった物だと特に.このような情報が得られることに感謝しています.先人のノウハウにおんぶにだっこされている毎日です.
- 2011/07/07(木) 22:19:36 |
- URL |
- Lunor #-
- [ 編集 ]
KBCR-M04VGのPCLKは現在DCMに入力してうまく行っていますが、インプリメント・オプションによっては、画像が怪しい時があるのです。ずっと何でなのかわからなかったのですが、今回のMT9T031の時も同じような現象になりました。それで、DCMをとれば直ったわけです。DCMのジッタ安定性は?が付くのではないか?と思っています。同じ基板にある水晶発振器に使用するには問題ないと思いますが。。。
ノウハウとしては第1義的に自分の備忘録として残しているのですが、他の方の役に立つのは本望です。お役に立てて良かったです。
KBCR-M04VGはシャープネス以外は素直な特性で気に入っています。ぜひ目的を遂げられることを望みます。
疑問点がありましたら、質問ください。今、KBCR-M04VGは手元にないので、お答えできることは限られますが、お答えできることでしたら、お答えします。
- 2011/07/08(金) 04:52:11 |
- URL |
- marsee #f1oWVgn2
- [ 編集 ]