あしたから本気出す
いろいろ工作して情報発信してみる。自作キーボードとか。
開発ブログ
自作キーボード「TypingTrigger-SDZERO」
自作スマートフォン緊急充電器
プログラマブルな自動化キーボード実装編
プログラマブルな自動化キーボード(プロトタイプ編)を作ってみる-後編
開発ブログをもっと見る
ブログなど
ブログはこちら
ダウンロード
JW_WIN外部変形Kiefer
JW_WIN外部変形FastMeasure
お知らせ
2010/10/1 ブログを新しくした
2009/9/4 twitter始めた
2009/7/14 サイトのタイトル変更した

管理者プロフィール (-)
suda 81年神奈川県生まれ
職業:GRAFZ.NETという屋号でプログラム制作してます。
一言:実用性を形にする。工作の日々。
コンタクトは以下までお願いします。感想、応援、苦情とか
RSS
ブログをRSS配信してます。


© GRAFZ.NET 2008-2010
6月26日
flash利用で手動の画質最適化


今回はプログラミングから離れて、画像の圧縮と画質について考えてみました。

jpgファイルは、解像度と画像の複雑さに比例してファイル容量も大きくなっていきます。ところが、人間が画像を見るときを考えると、必ずしも画像中の複雑な部分が重要ではないんじゃないかとふとひらめきました。例えば、草むらとか、じゃり道とか、複雑な画像にも関わらず、ファイル容量を食うんじゃないかと。草むらとかじゃり道なんて、少しくらいノイズが出てもいいんじゃないかと思うのは僕だけでしょうか?かと言って、画像全体の画質を下げてしまえば、(例えば)その画像に写っている人の顔にもノイズが入ってきます。

そこで、画像中を適当に分割してやって、それぞれの領域の画質を手動で設定してやる、ということをしてみます。複数のjpgをテーブルを組むのも手段の一つですが、読み込みの際に、明らかに分割されていることがバレてしまいます。ここではswfとしてひとつのファイルにまとめてしまいます。

では、サンプル画像の中身を見てみます。3分割して、絵の内容と画質を手動で調節します。
説明
要素としては、空、牛、草むらです。実にシンプルな写真ですね。南ドイツで撮ったものです。

空の部分は、画質が下がるにつれてブロックノイズが出現してきます。ゆるやかなグラデーションを表現する為には画質80以上は必要です。幸い、空は単純な絵なため、画質を上げてもファイル容量は重くなりません。次に牛です。この写真で一番見せたい部分なので、画質を高めにしてモスキートノイズを防ぎます。領域が小さいため、画質を高めにしてもファイル全体の容量はそんなに上がりません。そして、草むら。ここは試しに思いっきり画質を下げて見ましょう。少しくらいブロックノイズが出てもよい、と判断しました。

これら部分部分の画質は、ライブラリの各要素のプロパティで設定できます。パブリッシュしたものが以下です。
flash player required. Get Adobe Flash player
比較の為、同じファイルサイズのjpgを以下に貼ってみました。草むらはjpgの方が精細ですが、空はブロックノイズ、牛にはモスキートノイズがより多く出てしまっています。

この手法で作ったswfをjpgの代替として使用する、というより、swfから読み込む外部ファイルとして僕は活用しています。

ご参考になれば嬉しいです。m( __ __ )m