画質・圧縮率について |
JPEGファイルの画質・圧縮率に対し解説されている資料はある程度ありますが、実際にどのような結果になるのか、数値的に表した資料はなかなかありません。
それは元の写真によって値も傾向も変わり、抽象的表現しか出来ないからです。
そこで、適当に選んだ1枚の写真画像を色々な要素を加えJPEG出力し、データを取ってみました。
これらの結果は、JPEGの出力画質を決める時の参考程度にはなるかと思います。
サンプルを変えると結果は違ったものになりますので、全体像としてとらえて下さい。
圧縮要素と効果
JPEGファイルの圧縮要素は以下の3項目が挙げられます。
・量子化テーブル
・サンプリング比(間引き率)
・ハフマン圧縮の効率
これらの要素を変えて再圧縮し、イメージサイズの変化を調べました。
最適化なしは汎用のハフマンテーブルを使用した場合、最適化ありは、画像に対して最適なハフマンテーブルで圧縮した場合です。
4:4:4は間引きなし、4:2:0はMCUのブロックが半分になります。
利用したソフトは後で説明するIJG系の一般的なものです。
このIJG系のソフトは唯一最高画質(DQTの各値が1)から最低画質(DQTの各値が255)まで揃っています。
結果は以下のような状況になりました。
・画質90〜100間ではファイルサイズの変化が急ですが、見た目の画質が余り変化しません。
画質0〜50間ではファイルサイズの変化はゆるやかですが、見た目の画質はかなり変わります。
・間引きについては、どの画質設定でも一様に2割程度サイズが軽減されています。
しかし、色差成分を間引くために画質は落ちます。
・ハフマンテーブルは最適化すると、サイズは軽減されるが、その差は僅かです。
ただ、ハフマンテーブルを変えて圧縮しても画質は劣化しません。
画像処理ソフトの出力サイズの変化と特徴
主要な画像ソフトについて、画質を指定する際の目安になればと考え、画質設定とその出力するイメージサイズを調べてみました。
グラフデータについて、元画像は同じですが、条件を揃えることが出来なかったので、ソフト性能の比較には使わないで下さい。
また、画質設定などで決まったテーブルが出力されるものは、JpegTBL.iniに登録されており、JpegAnalyzerの解析リストにテーブル名を表示します。
IJG(The Independent JPEG Group)
JPEGリファレンスコードを配布している団体で、殆どのソフトではこのソースを参考に作られています。
量子化テーブル 画質0(低)〜100(高) サンプリング比 指定が可(グラフのものは4:4:4) ハフマンテーブル 最適化指定が可(グラフのものは汎用ハフマンテーブル)
PhotoshopCS
アドビ社の有名な画像レタッチソフトです。
アドビ社のものは唯一画質に併せたオリジナルのDHTテーブルが有ります。
DQTも画質と画像サイズによりオリジナルのテーブルが用意されており、
画像サイズは長辺が1300以上なら大画像、1299以下なら小画像のテーブルになります。
画質設定が0〜10までの旧版のPhotoshopは現行の2〜12の設定に該当します。
画質指定に合わせ、DQT、サンプリング比、DHTが切り替わります。
画像のサムネイルには、通常 画質5 小 のDQT、低画質 のDHTが使用されます。
量子化テーブル 画質0(低)〜12(高)、大画像、小画像用に個々に2通り サンプリング比 画質0〜6が4:2:0、画質7〜12が4:4:4 ハフマンテーブル アドビ社オリジナルのDHTか最適化が指定が可
ImageReady
同じくアドビ社のweb掲載用画像を処理するソフトです。
Photoshopでweb用に保存した場合もこのテーブルになります。
画質指定に合わせ、DQT、サンプリング比、DHTが切り替わる仕組みはPhotoshopと同じ。
量子化テーブル 画質0(低)〜100(高) サンプリング比 画質0〜50が4:2:0、画質51〜100が4:4:4 ハフマンテーブル アドビ社オリジナルのDHTか最適化が指定が可
LEADTOOLS
非常に多くの機能を持った画像処理コンポーネントです。(ソフトに組み込む為のソフト)
画質の高低が他とは逆なので注意
量子化テーブル 画質2(高)〜255(低) サンプリング比 指定出来ず(コンポーネントでは指定が出来るかもしれない、グラフのものは4:4:4) ハフマンテーブル 指定出来ず(コンポーネントでは指定が出来るかもしれない、グラフのものは汎用ハフマンテーブル)
ACD See
カナダ製の処理が軽い画像ソフトです。
量子化テーブル 画質0(低)〜100(高) サンプリング比 指定可(グラフのものは4:2:2) ハフマンテーブル 最適化指定が可(グラフのものは最適化ハフマンテーブル)