2010年12月11日土曜日

YUV422を試してみた

これまではTCM8230MDの出力形式はRGB565にしていたが、画像もちゃんと表示できるようになってきたのでYUV422形式も扱えるようにして両者の画像の違いを見てみた。

まずTCM8230MDの出力をcolor bar出力にして、取り込んだ値に変換式を適用してどんな感じのR,G,B値が得られるかを確認した。
←は色配列の確認の為にRGB565で出力させた画像だ。





←の「実測値」がYUV422にして取り込んだ各色の値、その右が変換結果だ。結果が負値は0(赤字)にしてある。






変換結果はR,G,Bのパターン的には問題なさそうなので、verilogで記述してsimulationしてみた。同等の出力が得られている。





左は実際のRTLだ。この部分は65MHzで動作するため、pipelineを3段にしないとtimingがmetしなかった。











 

左がYUV422、右がRGB565だが撮影対象が悪いのか違いがよく判らない。
(左が青味がかっているが肉眼では青味がかっていないので撮影タイミング?かデジカメの問題?と思われる。)
階調が緩やかに変化するような絵じゃないと違いは判らないのかも知れないな。
YUVの場合は乗算回路やpipeline化が必要だったりと回路規模がでかくなってしまうが、
それに見合うほどの画質の違いは感じられないのでRGB565で良い気がする。

さて、TCM8230MDの画像を見るためにFrame bufferを作るという目標は一応達成できた。
この次は以前作成した自作CPUの組み込みに進もうと思っていたのだが、方針を変更して、DRAMCの高速版の作成をしようと思う。目標は260MHzだ。
IP開発は趣味でやっている事なので失敗しても誰に迷惑をかける訳でも無いし、アイデアも浮かんでいる。駄目元で挑戦してみようと思う。

尚、現状のRTL一式はここで公開した。

0 件のコメント:

コメントを投稿

自作CPUで遊ぶ 22

今使用しているモータードライバはDM556Dというものだが、このドライバはMicro Stepが 800 [pulse/rev] 〜 40000 [pulse/rev]の範囲で設定できる。 Mi...