読者です 読者をやめる 読者になる 読者になる

Tech と Culture

テクノロジーとカルチャー

最初の目標

JPEG処理の本を読んでいくと大雑把に言って、
ハフマンデコード -> DCT -> upsample -> YCC-RGB変換
で処理が行われている。
本屋でいろいろ調べていたら、DesigneWaveの2008年1月号にJPEG処理のハードウェアについて非常に分かり易い記事を発見。上の処理の流れをどのようにハードウェアにするかが一目両全です。

どんどんデータをタレ流して行けば良いのです。フレームバッファが別にあれば結構性能が出そうな雰囲気。

ここからいろんなスキルを身に着けながら進めないといけません。
RTL設計 -> ほんの少しだけ経験あり。しかし、スケマティックでの回路設計は仕事で結構やってきたので本質的なところは理解している。VHDLの記述の仕方のマスターに時間がかかりそう。
FPGAのインプリ -> 仕事で一度経験あり。ASICのインプリは結構仕事でやったが、FPGA独特のものが多くて結構苦しんだ。今回も苦労しそう。
デバイスドライバ設計 -> まったく経験なし。カーネル空間のプログラミングは未知の領域。一ヶ月前からいろいろ本を読みはじめた。デバッグ難しそう。

この状態からまともにシステム動くまでどれぐらいかかるでしょうか。地道に少しづつ進んでいきます。

システム全体のスループットを考えてハードウェア設計を開始しないといけないのは分かっていますが、これだけスキル不足だとそんなことできません。とりあえず腕力で動かしてから全体を考えることにします。

YCC-RGB変換の所が単純なデータパスなので、ここをRTL設計して、FPGAにインプリし、デバイスドライバを書いてmotionJPEGのアプリケーションソフトから動かすことをとりあえず最初のマイルストーンにします。YCC-RGB変換の所だけハードウェアにしてもほとんど性能あがらないのは分かっていますが、最初にスキルを付けるには良い題材だと思いました。
もしかしたら、デバイスドライバでデータを渡すオーバヘッドで性能が落ちてしまうかも知れません、、、、、
まあけど、それがどれぐらいなのか分かるだけでも意味があると思って。

とりあえずAMBAの仕様をちゃんと理解せねば。