マイコン工作実験日記

Microcontroller を用いての工作、実験記録

JPEG圧縮してみる

2009-07-07 00:04:01 | ARM9
SDカードが直ったので、撮影した画像をJPEG形式でSDカードに保存できるようにしようとしています。まずは、画像をJPEG圧縮すべくIJGのライブラリをARM9にもってきました。AT91SAM9260のISIでキャプチャした画像はSDRAM上に展開されていますので、メモリ上のイメージを圧縮して別のメモリ上にいったん保存してから、SDカードに書き出すことにします。

IJGのライブラリに付属するサンプルプログラムはファイルを入出力対象としていますので、メモリを入出力対象としたプログラムを用意してやる必要があります。この部分については先人のコードをそのまま流用させていただきました。

さっそくVGA画像を撮影、圧縮してみると....



圧縮処理で4.3秒かかっています。実際に待っていると、かなり長く感じます。もうちょっと短くならないと。。。 圧縮時に指定している quality が85となっていたので、これを下げることで圧縮処理時間が短縮できないかと思ったのですが。。。



確かに短くはなるのですが、ごくわずかですね。時間よりもサイズの方の効果が大ですね。これなら quality は85でもよろしいかと。

DCTの計算ルーチンを変更すると、精度は落ちるものの処理速度が向上できるらしいので、次回はこれを試してみようと思います。

SDカードの修理

2009-07-03 23:04:43 | ARM9
トランジスタ技術7月号のCMOSイメージ・センサの特集記事を読んでいたら、自分のCMOSカメラももう少し遊んでみたくなってきました。記事のレジスタ解説をみると、型番こそ違いますが、どうやら同じOmniVisionのCMOSカメラをベースとしたカメラモジュールを使っているようです。

カメラの実験に使用したMMnet1002ボードにはマイクロSDのソケットが載っていますが、いつの間にかSDカードのアクセスが全く動作しなくなっていました。そのために、カメラ画像の確認はSAM-BAを使ってPCに吸い上げてから、フォーマット変換をおこなってPC上で確認していました。SDカードさえちゃんと動作してくれれば、MMnet1002上でJPEGに変換してSDカードに書き出すことができるはずです。せっかく買ったMMnet1002ですので、SDカードを再度使えるようにして、この実験もやってみたいものです。

そんなわけで、SDカードを修理してみることにしました。以前はちゃんと動作していたので、おそらくはSDカード・ソケットの接触不良に違いありません。SDカード関連の信号線はカメラでは全く使っていませんし。マイクロSDソケットの配線を確認してみると、案の定 ソケット5番ピン(CLK)とCPUのPA8/MCCKピンの接続が不良になっていることが判明。どうやらマイクロSDソケットのはんだ付け不良のようです。コテにハンダを少量つけて、5番ピンにハンダを盛りなおしたところ、接続回復。以前実験した、FatFsでのLFN機能の動作が再度確認できました。

どうやらSDカードを何度か抜き挿ししているうちに、ハンダ不良だった5番ピンが完全に浮いてしまっていたようです。SAM-BAジャンパの100Ω抵抗のつけ忘れといい、どうもこのMMnet1002の製造品質には問題多いようです。