GIMPでTIFF画像を保存する際の圧縮方法とサイズの関係

執筆日時:2013/01/23

 GIMPでTIFF形式の画像を保存する際、圧縮方法として、無圧縮、LZW、Pack Bits、Deflate、JPEGの5種類から選択することができる。TIFFで保存する場合というのは往々にして高解像度で高品質の画像を扱っていることが多く、保存した際のファイルサイズも大きくなる。よって、圧縮のアルゴリズムによってファイルサイズが大きく変わるとすれば、いずれの圧縮方法を選ぶかが重要になる。そこで今回はGIMPで3種類の画像ファイルをそれぞれの圧縮方法を用いて保存し、出来上がったTIFFファイルのファイルサイズを調べた。なお、使用した環境はLinux Mint 14 64bit上で、GIMPのバージョンは2.8.2である。

使用した画像と比較対象

検証画像1 Photo(Full color) 検証画像2 Photo(Gray scale) 検証画像3 Figure

 検証に使用した画像の解像度はいずれも3840x2160pxで、Photo(Full color)はRAW画像を現像して前述のファイルサイズに縮小した写真、Photo(Gray scale)はそれをグレースケールに変換したもの、FigureはGIMPのフィルタとグラデーションを用いて作成した図である。画像に含まれる色数は、順番に2307817、256、1488である。

 ファイルサイズの比較をするに当たり、TIFF形式だけでは感覚が掴みにくいと考え、次の保存形式も比較対象に加えた。すなわち、PNG、JPG(85%品質)、ZIP、7Zである。後ろ2つの汎用可逆圧縮形式は、無圧縮で保存したTIFFをそれぞれの形式で圧縮し、ファイルサイズを記録している。

 また、TIFF形式で保存する際に選択できるJPEG圧縮は不可逆圧縮であるが、TIFFファイルとして保存する際のJPG圧縮は品質がいかように設定されているのかは不明である。そこで、同じ画像をJPG形式で保存し、ファイルサイズの近くなる品質を調べ、%相当と表現して記す。が、これはあくまで参考程度に考えてほしい。

結果と考察

アルゴリズムPhoto (Full Color)Photo (Gray scale)Figure
無圧縮100.0%100.0%100.0%
LZW77.8%36.9%19.5%
Pack Bits96.2%51.8%100.7%
Deflate63.1%31.8%19.7%
JPEG17.0%15.9%4.7%
png57.3%29.9%18.1%
jpg858.3%7.0%1.9%
zip74.9%30.8%18.8%
7z64.6%20.6%14.2%

 それぞれの画像について無圧縮のTIFFを100%とし、他の圧縮方法でのファイルサイズを表した。なお、背景を赤くしている項目は、可逆圧縮の中でもっともファイルサイズが小さくなっているものである。

 上の表を見ればすぐ分かるように、まずは7Z形式が優秀である。「GIMPでTIFFファイルを~」のテーマからは少し外れてしまうが、今回の結果からは、できたTIFFファイルをネットワーク越しに転送するとか、保存してしばらく開かない、という場合には、無圧縮TIFFをまとめて7Zに圧縮するというのがもっとも適当そうだと予想できる。編集段階の保存形式としてTIFFを選ぶ場合は、DeflateかLZWがファイルサイズを減らすのによさそうだ。

 Pack bitsアルゴリズムは圧縮率が全体的に低く、Figureでは無圧縮よりファイルサイズが大きくなってしまっている。このPack bitsという方法は、アルゴリズムから考えるに(連長圧縮 - Wikipedia 参照)同じデータが連続して出てくる(つまり、同じ色のピクセルが並んでいる)画像でないと圧縮率が上がらないのだろう。色数の多い写真などの画像ではあまり使えなさそうだ。