GRAFZ.NET
一言:自分はいったい何がしたいんだろう。その謎が解けるまでとりあえずこのサイトの更新は続く・・・
開発ブログ
flash利用で手動の画質最適化
虫の動きをスクリプトで記述する
軽い気持ちで更新されるブログ
CS3へのアップグレード
JWW外変「Kiefer」公開します。
ダウンロード
JW_WIN外部変形Kiefer
JW_WIN外部変形FastMeasure
管理者からのお知らせ
4/30 サーバーダウンについて
4/16 このサイトを開設しました。
管理者プロフィール (+)
管理者プロフィール (-)
suda
26歳男
神奈川県生まれ
最近の趣味:ジョギング
職業:grafz.netという屋号でwebデザイン+プログラム制作してます。
一言:自分はいったい何がしたいんだろう。その謎が解けるまでとりあえずこのサイトの更新は続く・・・。
コンタクトは以下まで
suda@grafz.net
RSS
ブログをRSS配信してます。
© GRAFZ.NET 2008
6月26日
flash利用で手動の画質最適化
今回はプログラミングから離れて、画像の圧縮と画質について考えてみました。
jpgファイルは、解像度と画像の複雑さに比例してファイル容量も大きくなっていきます。ところが、人間が画像を見るときを考えると、必ずしも画像中の複雑な部分が重要ではないんじゃないかとふとひらめきました。例えば、草むらとか、じゃり道とか、複雑な画像にも関わらず、ファイル容量を食うんじゃないかと。草むらとかじゃり道なんて、少しくらいノイズが出てもいいんじゃないかと思うのは僕だけでしょうか?かと言って、画像全体の画質を下げてしまえば、(例えば)その画像に写っている人の顔にもノイズが入ってきます。
そこで、画像中を適当に分割してやって、それぞれの領域の画質を手動で設定してやる、ということをしてみます。複数のjpgをテーブルを組むのも手段の一つですが、読み込みの際に、明らかに分割されていることがバレてしまいます。ここではswfとしてひとつのファイルにまとめてしまいます。
では、サンプル画像の中身を見てみます。3分割して、絵の内容と画質を手動で調節します。
要素としては、空、牛、草むらです。実にシンプルな写真ですね。南ドイツで撮ったものです。
空の部分は、画質が下がるにつれてブロックノイズが出現してきます。ゆるやかなグラデーションを表現する為には画質80以上は必要です。幸い、空は単純な絵なため、画質を上げてもファイル容量は重くなりません。次に牛です。この写真で一番見せたい部分なので、画質を高めにしてモスキートノイズを防ぎます。領域が小さいため、画質を高めにしてもファイル全体の容量はそんなに上がりません。そして、草むら。ここは試しに思いっきり画質を下げて見ましょう。少しくらいブロックノイズが出てもよい、と判断しました。
これら部分部分の画質は、ライブラリの各要素のプロパティで設定できます。パブリッシュしたものが以下です。
flash player required.
比較の為、同じファイルサイズのjpgを以下に貼ってみました。草むらはjpgの方が精細ですが、空はブロックノイズ、牛にはモスキートノイズがより多く出てしまっています。
この手法で作ったswfをjpgの代替として使用する、というより、swfから読み込む外部ファイルとして僕は活用しています。
ご参考になれば嬉しいです。m( __ __ )m