タイトル | : Re: 圧縮なのに倍化? |
記事No | : 403 |
投稿日 | : 2005/06/20(Mon) 22:37 |
投稿者 | : 管理人さん <Mail/Homepage>
|
圧縮アルゴリズムの問題かと思います。 一般的に静止画像っていうのは標本と量子化レベルを掛け合わせたものがファイルサイズになるんです。 で、標本……つまり解像度の方がサイズに響くって事は容易にご理解いただけると思うんですけど、そもそも画像のピクセル数は固定なわけですし、ここでは量子化レベルの方が問題になります。
例えば720x480のbmp画像でも、量子化ビットの深さが違うと…
1ビット(白黒の2値画像) → 42KB 8ビット(2の8乗…256色) → 338KB 24ビット(2の24乗…約1677万色) → 0.99MB
こんな風に、色数をどこまで忠実に表現するかでサイズが決まってくるわけです。
通常計測画像の圧縮等に用いられる8ビットPng方式は、こういった"色の間引き"が圧縮の要となります。 インデックスカラーっていって、使用されてる色をパレットとして保存してやって、画像に割り当ててやる感じです。 これで、使われてる最低限の色の識別ができればいいわけですから、更に容量が節約できるんです。
また、同じPngでも量子化ビット数が24ビットで圧縮される非可逆のフォーマットもありますから、8bitで保存されてるものをわざわざ24ビットに戻してしまうと容量が膨れ上がります。
対してjpg圧縮なんですが、この圧縮方式は画像のデータを1ピクセルごとに保存せず、決められたブロック単位で保存するんです。 で、代表的な色でブロックを塗り、後の部分は補完処理を行うことでデータ量を節約してます。 (圧縮率を下げすぎるとブロックノイズとして現れますね)
自然な映像はそれこそ細かい色数はほぼ無限みたいなものですから、この補完処理ってやつで補完された部分もあまり気にならないんですけれど、元々色数の限られた計測画像なんかだと…自然な画像と違ってノイズが存在しませんから、全面が青い部分にポツンと違う色が混ざってたりして目立つわけです。
で、違う色が混ざってしまった画像をpngで再圧縮するとどうなるかというと…… 色の種類の絶対数が増えてしまうわけですから、パレットがたくさん必要になり、jpg→pngという変換を行うと却って容量が増大してしまうという事も起こりうるわけです。 ディザリング等の処理を行って色を散らしてやる事で、場合によってはある程度の改善は可能かと思いますが……それ以前にまず画像が汚くなるっていう問題がありますから、正直実用的ではないでしょうね。
jpg画像は写真等、色数の多い画像の圧縮に。 png,gif等はCG等、色数の限定された、もしくはノイズの無い画像に というのが効率の良い使い方なわけです。
ちなみにDVDInfoProの有償版だと、JPGのクオリティの設定を100にしてやると非可逆圧縮になるらしいんですが、現行のフリー版だとノイズ乗っちゃうみたいですね。 クリップボードにコピーしてから、mspaintにでも貼り付けてpng保存してやりましょう。
因みに以前TOPページでも紹介した事があるんですが、
・Image Converter http://www.vector.co.jp/soft/win95/art/se240222.html
このソフトを使うとpng画像のパレットの最適化が行えまして。 kprobeやPlexTools、CDSpeed等の計測画像のサイズが約2/3くらいに縮みます。 複数ファイルを一括変換できますし、たくさんの計測画像を貼りあわせてUPする場合なんかに結構使えると思います。
|