FC2カウンター FPGAの部屋 ZedBoard用CMOSカメラ回路の作製13(カメラのテストパターンや特殊効果)
FC2ブログ

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

FPGAの部屋

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

ZedBoard用CMOSカメラ回路の作製13(カメラのテストパターンや特殊効果)

今回はカメラのテストパターンや特殊効果を試してみた。

R152(0x98):1から設定する。 このレジスタはビットの [5:3] を設定することで、テストパターンを発生することが出来る。0x00-off, 0x08-by column, 0x10-by row, 0x18-by frame となるそうだ。

・R152(0x98):1 = 0x08 としてみた。
下に、VGA出力の画面を示す。
ZedBoard_Cam_41_130122.jpg

下に、HDMIの画像を示す。
ZedBoard_Cam_42_130122.jpg

VGAとHDMIの画像を見ると一目瞭然に階調が違うことがわかる。

・R152(0x98):1 = 0x10 としてみた。
下にHDMIの画像を示す。
ZedBoard_Cam_43_130122.jpg

・R152(0x98):1 = 0x18 としてみた。
このテストパターンでは、画面が最初は暗くて、時間が経過するごとに、だんだんと明るくなっていく。
ZedBoard_Cam_44_130122.jpg

次に、R164(0xA4):1 の特殊効果をやってみた。[2:0] ビットを指定することで、モノクロームやセピアなどの特殊効果を掛ける事ができる。0x40-disabled, 0x41-monochrome, 0x42-sepia, 0x43-negative, 0x44-solarization with unmodified UV, 0x45-solarization with -UV となるそうだ。

・R164(0xA4):1 = 0x40, disabled(通常の画面)
下にVGAの画面を示す。
ZedBoard_Cam_45_130122.jpg

・R164(0xA4):1 = 0x41, monochrome
下にVGAの画面を示す。
ZedBoard_Cam_46_130122.jpg

・R164(0xA4):1 = 0x42, sepia
目で見るともっと黄色かったのですが、iPhone 4S で撮影した時にホワイトバランスを調整したようです。
ZedBoard_Cam_47_130122.jpg

・R164(0xA4):1 = 0x43, negative
ZedBoard_Cam_48_130122.jpg

・R164(0xA4):1 = 0x44, solarization with unmodified UV
・R164(0xA4):1 = 0x45, solarization with -UV
これらは、元画像とどこが違うのか分からなかったので、省略します。多分、室外で撮影すると違うんじゃないか?と思います。
  1. 2013年01月22日 05:52 |
  2. ZedBoard
  3. | トラックバック:0
  4. | コメント:4

コメント

わざわざ、テストパターンまで出してもらって申し訳ないです。

テストパターンと(初めて)回路図見て解決しました。
最初の画像が初期のPC98のアナログRGB(4096色)出力に似てるな~~って思ってましたが、似た仕様のなんちゃってアナログRGBで16諧調しか出ないんですね Orz
フィルタもないからVGAの画像にもはっきりと16本の縦線が出て、これだと文字とかの表示は問題なくてもカメラ画像の確認は無理っぽいです。
てっきり、アナデバとかの8bitDACがついているものだと勘違いしていました。
(値が張るし、HDMI出力あるのでわざわざつけませんね)
HDMIの方は64本=諧調(G=6bit)くらいはありそうなので問題なさそうです。

この後の画像処理をしたときのバス効率とかも興味があるので、よろしくです。
  1. 2013/01/22(火) 10:45:04 |
  2. URL |
  3. おる #qbIq4rIg
  4. [ 編集 ]

アナログRGBは各色4ビットx3なので、4096色です。
HDMIは階調は8ビットですが、YCbCr4:2:2で色差信号の帯域がないので、キャラクタの輪郭がはっきりしません。
http://marsee101.blog19.fc2.com/blog-entry-2319.html

画像処理をした時のAXI4バスの様子は、カメラボード改ができてからやろうと思っています。エッジフィルタなどは、フレームバッファに入れる前にやってしまう予定です。Linuxの1つのウインドウにカメラ画像を表示しようと思っているので、その時にバス効率を見えると思います。
  1. 2013/01/22(火) 12:28:43 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

すみません。説明を端折り過ぎてますね。

16諧調=各色16諧調なので16^3で4096色です。モノクロ画像だったので、16諧調って書いてしまいました。
横800に対して3回程度繰り返しているので800/3≒256諧調で、16回縦線がみえるのでVGAの方は256/16=16諧調=4bit、HDMIの方はなんとなく横4ピクセルくらいだったので画像ので256/4=64諧調でG=Y(人間の目が緑で明るさ認識)と考えて6bit=64諧調くらいでカメラの出力を表現しきれているかなと。

>HDMIは階調は8ビットですが、YCrCb4:2:2で色差信号の帯域がないので、キャラクタの輪郭がはっきりしません。

こちらは、色差信号の帯域というより隣接したピクセルで色差情報を兼用するので色の変化部分にゴミが出やすいのは仕方ないのでしょうね。
どこかで、これをうまく変換するフィルタの記事を見たような記憶がありますが。
__ RGB __ RGB __ RGB __
 Cr - Y - Cb - Y -Cr - Y - CB

MT9D111のカラーフィルタはかなり優秀なのでカメラからYCrCbで出力して、そのままHDMIに出力すると輪郭も綺麗に映るかもしれません。
  1. 2013/01/22(火) 16:09:22 |
  2. URL |
  3. おる #qbIq4rIg
  4. [ 編集 ]

s/YCrCb4:2:2で色差信号の帯域がないので、/YCbCr4:2:2で輝度信号に対して色差信号の帯域が半分なので、/ でお願いします。

>MT9D111のカラーフィルタはかなり優秀なのでカメラからYCrCbで出力して、そのままHDMIに出力すると輪郭も綺麗に映るかもしれません。
私もそう期待しますが、ディスプレイ・コントローラがRGB-YCbCr変換回路が付いているので、RGBで出しています。
画像処理の方式によって、カメラからどのフォーマットで出すかを決めたいと思います。カメラの画像処理が入っているので、ベイヤーで出してみたいです。
  1. 2013/01/22(火) 18:25:53 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/2370-a7b0eba5
この記事にトラックバックする(FC2ブログユーザー)