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

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

FPGAの部屋

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

YUV-RGB変換7(なんか不具合が。。。)

YUV-RGB変換6(やったー、うまく行きました)”でできたと思ったYUV-RGB変換。早速、先生に見せたら欠点を指摘されてしまった。でも確かにそう。。。
それは、輝度が急激に変わるところが飽和しているように見えるということだ。下の写真はCMOSカメラからディスプレイに表示した画面をデジカメで取ったものの一部を拡大している。それはどの部分かと言うと、パソコンの液晶ディスプレイの枠とその表示画面の間が問題となった。黒い枠と広く光る画面の境にピンクの矢印で示す白い線が入っているのがわかる。なぜこの白い線が出るのかが問題だ。
YUV_RGB_conv_15_091211.jpg

この線は輝度が極端に変わる部分に現れる。例えば黒いコードと白っぽい風景とか。下の写真はダウンロードケーブルのコードの周りにできた白い線だ。なんか飽和しているように見える。もしくはエッジ検出しているみたい。
YUV_RGB_conv_16_091211.jpg

どうしてこうなるのか?YUV-RGB変換がいけないのか?それとも元からなのか?
原因究明のため、Y信号だけを表示してみた。それが下の写真。カラーの時と同じ場所を写した写真だが、特に黒いケーブルの周りが白くなっているのがわかるとおもう。(下の写真をクリックして拡大してみると、良く見えます)
YUV_RGB_conv_17_091211.jpg

本当に輝度信号からおかしいのか、ChipScopeを入れてデータを見てみることにした。使用したのは、下の写真のような画像だ。どこがポイントかと言うと、VGA信号の最初に輝度がおかしい処を持ってくるようにした。そうすると、ChipScopeのトリガは最初の水平描画信号のスタートでかければ良いことになるからである。つまりディスプレイの枠と液晶表示画面のふちの境界の白く飽和している部分が左上端にある画像ということになる。
YUV_RGB_conv_18_091211.jpg

これをChipScopeでみたのが下の図になる。
YUV_RGB_conv_19_091211.png

cam_ydata_2d がCMOSカメラから来たデータとなる。r_w が0の時がYUVのうちのY(輝度信号)が出力されている。その部分をピンクの四角で囲んである。それは、VSYNCが来てから最初のHREFが1になった時の最初のデータから35個目のデータだ。そのなかで輝度データを見ると、86, FF, FF, 00, 00, 35, 35 となっていて、FFから00に飛んでいる部分がある。やはり、この部分が問題だと思う。CMOSカメラに原因があるようだ。
これは、SCCBバスのコントローラをやはり、早急に開発してCMOSカメラの設定をいじってみる必要がありそうだ。

#そういえば、デバックの過程でRGBの飽和演算を外してみた。その時は、蛍光灯やその辺の輝度が高いところが黄色になった。黄色は赤と緑の混合色なので、青が飽和しているようだ。つまり青は飽和しやすいと思う。それは計算式を見ても言えるのではないだろうか?

(追記)
CMOSカメラから画像を入力してディスプレイへ出力15(できた!!!)”の下の画像は、輝度の変化が大きいところでも正常に表示されている。(でも、うっすらと見えるのかな?少なくとも、はっきりは分からない)
Camera_Disp_34_091022.jpg

これは、基板も違うが、CMOSカメラもKBCR-M03VG (OV7760)だった。ここで使っているCMOSカメラは、KBCR-M04VG (OV7725)。

もし何か情報があれば、ぜひ教えて下さい。よろしくお願いします。
  1. 2009年12月11日 04:51 |
  2. 画像処理
  3. | トラックバック:0
  4. | コメント:15