サンプル画像
今回は、以下の画像 publicdomainq-0077777irxtii.jpg
を実験に用いた。
[フリー写真] 商店街を歩くカップルの後ろ姿 | パブリックドメインQ:著作権フリー画像素材集
実験
以下の形式のコマンドで、解像度と品質を指定して変換を行った。
magick convert publicdomainq-0077777irxtii.jpg -colorspace rgb -resize 90% -colorspace srgb -quality 95 s090_q095.jpg
ImageMagick のバージョン (magick --version
) は以下である。
Version: ImageMagick 7.1.1-12 Q16-HDRI x64 a09d8dd:20230625 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenCL OpenMP(2.0)
Delegates (built-in): bzlib cairo flif freetype gslib heic jng jp2 jpeg jxl lcms lqr lzma openexr pangocairo png ps raqm raw rsvg tiff webp xml zip zlib
Compiler: Visual Studio 2022 (193632532)
「効率」は小さいほど良いことを表す。
解像度とファイルサイズの関係
品質 30
解像度 [%] | 幅 [px] | 高さ [px] | サイズ [KiB] | 効率 [B/px²] |
---|---|---|---|---|
1 | 60 | 42 | 0.8 | 0.311 |
5 | 300 | 211 | 8.4 | 0.136 |
10 | 600 | 423 | 24.6 | 0.099 |
20 | 1200 | 845 | 66.1 | 0.067 |
30 | 1800 | 1268 | 115.2 | 0.052 |
40 | 2400 | 1690 | 170.3 | 0.043 |
50 | 3000 | 2113 | 230.9 | 0.037 |
60 | 3600 | 2535 | 295.2 | 0.033 |
70 | 4200 | 2958 | 362.9 | 0.030 |
80 | 4800 | 3380 | 433.8 | 0.027 |
90 | 5400 | 3803 | 509.9 | 0.025 |
100 | 6000 | 4225 | 590.5 | 0.024 |
品質 70
解像度 [%] | 幅 [px] | 高さ [px] | サイズ [KiB] | 効率 [B/px²] |
---|---|---|---|---|
1 | 60 | 42 | 1.2 | 0.483 |
5 | 300 | 211 | 15.5 | 0.251 |
10 | 600 | 423 | 45.1 | 0.182 |
20 | 1200 | 845 | 121.7 | 0.123 |
30 | 1800 | 1268 | 213.5 | 0.096 |
40 | 2400 | 1690 | 317.4 | 0.080 |
50 | 3000 | 2113 | 432.8 | 0.070 |
60 | 3600 | 2535 | 556.1 | 0.062 |
70 | 4200 | 2958 | 689.5 | 0.057 |
80 | 4800 | 3380 | 832.4 | 0.053 |
90 | 5400 | 3803 | 980.8 | 0.049 |
100 | 6000 | 4225 | 1144.1 | 0.046 |
品質 95
解像度 [%] | 幅 [px] | 高さ [px] | サイズ [KiB] | 効率 [B/px²] |
---|---|---|---|---|
1 | 60 | 42 | 2.4 | 0.963 |
5 | 300 | 211 | 37.6 | 0.609 |
10 | 600 | 423 | 110.1 | 0.444 |
20 | 1200 | 845 | 304.3 | 0.307 |
30 | 1800 | 1268 | 552.4 | 0.248 |
40 | 2400 | 1690 | 859.9 | 0.217 |
50 | 3000 | 2113 | 1231.0 | 0.199 |
60 | 3600 | 2535 | 1650.2 | 0.185 |
70 | 4200 | 2958 | 2135.1 | 0.176 |
80 | 4800 | 3380 | 2687.0 | 0.170 |
90 | 5400 | 3803 | 3281.2 | 0.164 |
100 | 6000 | 4225 | 3865.1 | 0.156 |
まとめ
どの品質でも、解像度を上げるほどファイルサイズが大きくなり、効率は良くなった。
とはいえ、ある程度以上大きい解像度では、効率の差は小さくなってくる。
品質とファイルサイズの関係
以下のように PNG 形式に変換した画像との違い (PSNR) を算出した。
magick convert publicdomainq-0077777irxtii.jpg -colorspace rgb -resize 20% -colorspace srgb s020.png
magick compare -metric PSNR s020.png s020_q095.jpg NULL:
参考:ImageMagick で画像比較 (Compare) #diff - Qiita
解像度 10% (600×423)
品質 | サイズ [KiB] | PSNR [dB] | 効率 [KiB/dB] |
---|---|---|---|
1 | 3.4 | 20.3529 | 0.168 |
5 | 6.4 | 22.5050 | 0.283 |
10 | 11.2 | 24.9066 | 0.450 |
20 | 18.7 | 27.0084 | 0.693 |
30 | 24.6 | 28.1174 | 0.875 |
40 | 29.3 | 28.8338 | 1.016 |
50 | 33.7 | 29.4199 | 1.146 |
60 | 38.2 | 29.9765 | 1.275 |
70 | 45.1 | 30.7182 | 1.468 |
80 | 55.9 | 31.7341 | 1.760 |
90 | 79.6 | 33.5008 | 2.377 |
95 | 110.1 | 34.8253 | 3.160 |
98 | 153.0 | 35.5835 | 4.300 |
100 | 209.4 | 35.7995 | 5.850 |
PNG | 409.3 | - | - |
解像度 20% (1200×845)
品質 | サイズ [KiB] | PSNR [dB] | 効率 [KiB/dB] |
---|---|---|---|
1 | 10.4 | 22.0987 | 0.473 |
5 | 17.8 | 24.6325 | 0.722 |
10 | 30.7 | 27.5412 | 1.115 |
20 | 50.0 | 30.0891 | 1.661 |
30 | 66.1 | 31.3690 | 2.106 |
40 | 78.8 | 32.1818 | 2.448 |
50 | 90.6 | 32.8222 | 2.760 |
60 | 103.1 | 33.3823 | 3.089 |
70 | 121.7 | 34.1613 | 3.561 |
80 | 150.8 | 35.2363 | 4.279 |
90 | 216.9 | 37.1817 | 5.833 |
95 | 304.3 | 38.7578 | 7.852 |
98 | 425.8 | 39.7943 | 10.701 |
100 | 634.8 | 40.1937 | 15.794 |
PNG | 1304.4 | - | - |
解像度 40% (2400×1690)
品質 | サイズ [KiB] | PSNR [dB] | 効率 [KiB/dB] |
---|---|---|---|
1 | 34.2 | 23.7217 | 1.444 |
5 | 49.4 | 26.4225 | 1.869 |
10 | 80.9 | 29.9081 | 2.704 |
20 | 130.7 | 33.1349 | 3.944 |
30 | 170.3 | 34.7660 | 4.900 |
40 | 202.4 | 35.8318 | 5.648 |
50 | 233.1 | 36.6347 | 6.363 |
60 | 266.0 | 37.3859 | 7.116 |
70 | 317.4 | 38.3603 | 8.275 |
80 | 395.7 | 39.6360 | 9.983 |
90 | 585.3 | 41.7206 | 14.030 |
95 | 859.9 | 43.6075 | 19.718 |
98 | 1246.9 | 45.1917 | 27.590 |
100 | 1986.2 | 46.1956 | 42.996 |
PNG | 4258.4 | - | - |
まとめ
今回実験を行ったどの解像度でも、だいたい以下のことがいえそうである。
- 品質が 80 を超えると、ファイルサイズが大きく増えていく
- 品質が 20 を下回ると、PSNR が大きく下がっていく
- 品質 40 程度までは、画像の劣化はあまりみられない
- 品質 10 になると、手前の人の服の色が変わってくる
- 品質 1 はほぼモザイクである
- 品質 100 でも、PNG に比べて半分程度のファイルサイズになる
JPEG では解像度にかかわらず 8×8 のブロックごとに圧縮処理を行うため、もとの解像度が高いと、品質を 1 にしてももとの画像の情報が残りやすいようである。
品質を下げると画像が劣化しやすくなると考えられる一方、品質を極端に上げたり下げたりしなければファイルサイズへの影響は比較的小さいようである。
まとめ
画像を Web での公開用に JPEG に変換する際は、品質は 60~80 程度に設定し、ファイルサイズの調整のためには適切な解像度を設定するのがよいと考えられる。
ただし、今回の実験結果はあくまで今回の画像でのものであり、画像の性質によって結果が変わる可能性が考えられる。
今回の結果は目安とし、実際の画像での仕上がりを確認しながら変換を行うのがよいだろう。