2013/01/23

ZedBoardでDSLiteを拡大表示

今回はZedBoardでの作例を書いてみます。
ずいぶん前に製作してたのですが、写真の用意など遅くなって今更ブログに載せてみることになりました。

全体像がこんな感じです。


DS Liteを改造して表示画像をFullHD級にリアルタイム拡大する、というものです。
いわゆる偽トロキャプチャの亜流って感じでしょうか。
拡大等の処理はZedBoard上のZynqで行ってます。
Androidと接続していて、Android側を操作することで拡大率や拡大アルゴリズムを切り替えられるようにしています。

残念なのは改造の都合で、上下2画面の下側しか取り出せなかったことです(^^;

ブロック図にするとこんな感じです。

元の画像は256✕192ピクセルです。対して、表示モニタは1,920✕1,080。
上の写真は拡大無しで表示しているので、左上に小さく出てるな~って感じです。
一応、よって写真とるとこんな感じ。


これを拡大率をあげていくと……こんな風になります。





最終的に縦幅をフルにしたところで5倍ちょっとです。
写真撮ってないですが、もっと高い倍率でも動きます(その場合、当然、元画像の一部分が画面いっぱいに表示されることになります)。

拡大率だけじゃなくて、拡大アルゴリズムも切り替えられます。
両方とも、教科書に載ってる基本のアルゴリズムです。
上がニアレストネイバ、下がバイリニア(ちょっとエッジ強調入れてます)です。
あんまりうまく写真撮れてませんが……。

DS Liteの改造はこんな感じです。
液晶へのフラットケーブルこねくたの半田付け部分にUEWを半田付けしてます。
あと邪魔だったので、GBAカセットのコネクタは取っちゃってます。
半田付けがめちゃ疲れました……。

Android周りは一旦PICマイコン(PIC24FJ64GB002)に接続してからZedBoardに接続してます。
Android-PIC間はMicroBridgeで接続しています。
PIC側の実装は石井さんのmicrobridge-picではなくて、自分で実装したものを使ってます。
PIC-Zynq間はPIC側がマスターのSPIで接続しています。

Androidの画面はこんな感じです。
拡大率をシークバーでずるずるできます。
見た目では分からないのですが、下の黒い領域でピンチイン/ピンチアウトしても拡大率が変わるようにしてます。

とりあえず、わーっと写真披露した感じです。
お小遣いで買えるぐらいのFPGAボードでもFullHD(1,920✕1,080) 60fpsとかが扱えるんだぜ、ということで。

後日、部分部分で取り上げて、もう少し詳しく書くかも?です。

0 件のコメント:

コメントを投稿