というわけで、今までのあらすじ。
- 当時某所で話題になっていた秋月300円液晶
- せっかくなので買ってみた
- Altera 社の CycloneII FPGA の基板を作ってみた
- とりあえず何か画像を表示してみた
ここまでが4月のおはなし。
で、ある日、部屋の片づけをしていると何と当時の基板を発掘してしまったので、
CycloneII FPGA に乗る程度の超軽量コーデックを作ってみることにしました。
設計する上で科した制約。
- CycloneII ( 8kLE ) に「SDカードリーダとLCDドライバとセットで乗る」こと
- 非可逆圧縮で 10〜20% 程度の圧縮率を想定する
- その圧縮率で十分使用に耐える画質を維持すること
- 100[ms] 程度で展開できること(あとで10[fps] 程度の動画再生がしたい)
- CODEC.exe と FPGA 版デコーダの両方をこの週末でざっくり動かすこと
重要なのは一番最後。
実際には金曜の夜からやってるのでまぁ週末ということで。
結果は写真の通り。
残念ながらタイムアップで、FPGA のデコーダは輝度成分のみの処理で終わりました。
素材は http://www001.upp.so-net.ne.jp/syrius/pld/lmf/testshot.html からお借りしました。
圧縮率は 10.4% 弱( 12,016[Byte] )で、PSNR は G チャンネルで 32.61[dB] です。
見比べると確かに違いはわかりますが十分実用可能な画質かなと。
展開速度は 10[ms] と、想定の10倍の速度になってしまったのが大誤算。
チップは EP2C8Q208C8 で LE 使用率が 93% とギリギリで、カラー化して終わりぽい。
今後はとりあえず展開速度を落として LE 使用率を落として、
代わりにもう少し複雑な計算を入れて画質を上げようかと。