せっかく良さそうな画像圧縮技術なのだから、ちゃんと検証してどのくらい良いのか確認したいですね。
検証記事としてはこちらの内容がありますが、もう一声欲しいと思いましたので、私の方でも検証してみたいと思います。
以下は前置きです。結果を見たい人は下の「続きを読む」から下になります。
まず、画質の劣化を検証するときにPSNRとSSIMが指標として挙げられるらしいです。
先の検証した方はSSIMのみで検証していました。
これはPSNRの問題で、ブロックノイズやぼけた画像、など全然違う画像でも輝度の平均二乗誤差が近い値であれば、「オリジナルにほとんどノイズが乗っていない」という結果になってしまうため、利用しなかったのではないかと考えられます。
また、SSIMは上下左右のピクセルについても計算しているため、人の見た感覚に近いことから動画などの検証に使われているようです。
さて、それでは検証画像についてですが、
- 単色
- イラスト1(Kurokoさんより提供)
- イラスト2(たかたかさんより提供)
- 写真
- ランダム画像
の4種類、5枚で検証したいと思います。
まずは最も圧縮が有効な単色画像。
jpegにはあまり向かないイラスト。
イラストは一枚目がサークル「ヒミツイズム」のKurocoさんから(元画像の許可が取れなかったため、写真で紹介とします)。
二枚目はサークル「1001色素♂」のたかたかさんから。
非可逆圧縮なので、多少情報落ちしても大丈夫な写真。これは白川郷に行ったときに撮った写真のうちの一枚です。
最後に圧縮に一番不向きな疑似乱数で作成したランダム画像。
この辺りを選びました。
なお、画像はすべて24bitフルカラーで確認しました。
さて、結果です。
オリジナルはBMPとしましたけど、BMPからの圧縮比だと高すぎてよく分からないので、ここは可逆圧縮代表のPNGさんに出てきてもらいました。PNGと圧縮比が変わらなければあまり良くないという考えの元、計算しました。
なので、まずはオリジナルのBMPとPNGのファイルサイズを確認します。
画像の種類 | BMPファイルサイズ[byte] | PNGファイルサイズ[byte] | 圧縮比 |
---|---|---|---|
単色画像 | 750054 | 1461 | 0.195 |
イラスト1 | 1314198 | 340598 | 25.917 |
イラスト2 | 750054 | 219163 | 29.220 |
写真 | 9159222 | 4922223 | 53.741 |
ランダム画像 | 750054 | 751906 | 100.247 |
単色はPNGでもかなり圧縮されています。逆にランダム画像は元ファイルより大きくなっています。その他については、そこそこの圧縮というところでしょうか。これをそれぞれJPEG、BPGに変換すると以下のようになります。
単色画像-JPEG
品質 | SSIM | PSNR[dB] | 圧縮比 | ファイルサイズ[byte] |
---|---|---|---|---|
100 | 1 | Inf | 141.3415469 | 2065 |
90 | 1 | Inf | 141.2731006 | 2064 |
80 | 1 | Inf | 141.2731006 | 2064 |
70 | 1 | Inf | 141.3415469 | 2065 |
60 | 1 | Inf | 141.2046543 | 2063 |
50 | 1 | Inf | 141.2046543 | 2063 |
40 | 0.999989 | 52.902155 | 141.2731006 | 2064 |
30 | 0.999984 | 49.891855 | 141.2046543 | 2063 |
20 | 0.999955 | 46.881555 | 141.2731006 | 2064 |
10 | 0.999735 | 36.370030 | 141.2731006 | 2064 |
1 | 0.992919 | 23.758724 | 141.1362081 | 2062 |
単色画像-BPG
品質 | SSIM | PSNR[dB] | 圧縮比 | ファイルサイズ[]byte] |
---|---|---|---|---|
0 | 1 | 58.003893 | 16.15331964 | 453356 |
5 | 1 | 58.003893 | 16.08487337 | 387469 |
10 | 1 | 58.003893 | 15.94798084 | 329221 |
15 | 1 | 58.003893 | 9.308692676 | 280120 |
20 | 1 | 58.003893 | 9.034907598 | 233248 |
25 | 1 | 58.003893 | 8.692676249 | 186595 |
30 | 1 | 58.003893 | 8.48733744 | 147077 |
35 | 1 | 58.003893 | 8.213552361 | 106583 |
40 | 0.999955 | 46.558485 | 8.008213552 | 68235 |
45 | 0.999989 | 51.733071 | 7.871321013 | 25581 |
50 | 0.999881 | 39.825290 | 7.597535934 | 234 |
51 | 0.999924 | 46.607019 | 6.981519507 | 131 |
ランダム画像-JPEG
品質 | SSIM | PSNR[dB] | 圧縮比 | ファイルサイズ[byte] |
---|---|---|---|---|
100 | 0.575502 | 12.728176 | 48.29247273 | 363114 |
90 | 0.573749 | 12.689733 | 27.81158815 | 209117 |
80 | 0.567794 | 12.572795 | 20.83877506 | 156688 |
70 | 0.554393 | 12.372053 | 17.04002894 | 128125 |
60 | 0.529069 | 12.086645 | 14.37719609 | 108103 |
50 | 0.501798 | 11.810664 | 12.43599599 | 93507 |
40 | 0.471560 | 11.550268 | 10.57579006 | 79520 |
30 | 0.431775 | 11.305837 | 8.550403907 | 64291 |
20 | 0.358672 | 11.092512 | 5.906722383 | 44413 |
10 | 0.264858 | 10.863144 | 3.076049400 | 23129 |
1 | 0.138447 | 10.674233 | 0.775761864 | 5833 |
ランダム画像-BPG
品質 | SSIM | PSNR[dB] | 圧縮比 | ファイルサイズ[byte] |
---|---|---|---|---|
0 | 0.607206 | 12.983262 | 60.29423891 | 453356 |
5 | 0.607183 | 12.982693 | 51.53157443 | 387469 |
10 | 0.607084 | 12.981091 | 43.78486141 | 329221 |
15 | 0.606825 | 12.978924 | 37.25465683 | 280120 |
20 | 0.604942 | 12.963349 | 31.02089889 | 233248 |
25 | 0.601674 | 12.929843 | 24.81626693 | 186595 |
30 | 0.594461 | 12.853832 | 19.56055677 | 147077 |
35 | 0.575791 | 12.665962 | 14.17504316 | 106583 |
40 | 0.525859 | 12.261978 | 9.074937559 | 68235 |
45 | 0.343745 | 11.339786 | 3.402153993 | 25581 |
50 | 0.066844 | 10.757947 | 0.031120911 | 234 |
51 | 0.066574 | 10.757009 | 0.017422391 | 131 |
写真-JPEG
品質 | SSIM | PSNR[dB] | 圧縮比 | ファイルサイズ[byte] |
---|---|---|---|---|
100 | 0.992799 | 41.473385 | 45.78794988 | 2253785 |
90 | 0.968564 | 36.551952 | 15.98895458 | 787012 |
80 | 0.952237 | 34.239816 | 10.88272514 | 535672 |
70 | 0.940162 | 33.030376 | 8.650258227 | 425785 |
60 | 0.929095 | 32.192186 | 7.208551908 | 354821 |
50 | 0.919693 | 31.599436 | 6.257802623 | 308023 |
40 | 0.908296 | 30.984094 | 5.363999152 | 264028 |
30 | 0.892371 | 30.211649 | 4.423387563 | 217729 |
20 | 0.862956 | 29.048413 | 3.266593163 | 160789 |
10 | 0.796637 | 26.819548 | 1.861110315 | 91608 |
1 | 0.638589 | 22.059286 | 0.601212095 | 29593 |
写真-BPG
品質 | SSIM | PSNR[dB] | 圧縮比 | ファイルサイズ[byte] |
---|---|---|---|---|
0 | 0.995606 | 44.378299 | 48.78899229 | 2401503 |
5 | 0.994994 | 44.108158 | 40.30609747 | 1983956 |
10 | 0.992430 | 43.174057 | 28.98964553 | 1426935 |
15 | 0.987312 | 41.643075 | 20.42940761 | 1005581 |
20 | 0.976237 | 39.116258 | 13.36711075 | 657959 |
25 | 0.956395 | 36.238478 | 8.338610421 | 410445 |
30 | 0.923884 | 33.477444 | 4.872066950 | 239814 |
35 | 0.873733 | 30.730826 | 2.556974765 | 125860 |
40 | 0.811683 | 28.277236 | 1.228002063 | 60445 |
45 | 0.744317 | 26.051527 | 0.528480729 | 26013 |
50 | 0.683407 | 24.058745 | 0.198385973 | 9765 |
51 | 0.673404 | 23.726127 | 0.163767468 | 8061 |
イラスト1-JPEG
品質 | SSIM | PSNR[dB] | 圧縮比 | ファイルサイズ[byte] |
---|---|---|---|---|
100 | 0.993972 | 38.764777 | 72.14193859 | 245714 |
90 | 0.985319 | 36.263537 | 31.28438805 | 106554 |
80 | 0.976373 | 33.968498 | 23.05973611 | 78541 |
70 | 0.963534 | 32.474587 | 19.25554466 | 65584 |
60 | 0.963645 | 31.420981 | 16.82863669 | 57318 |
50 | 0.958746 | 30.638838 | 15.10930775 | 51462 |
40 | 0.946722 | 29.817738 | 13.45457108 | 45826 |
30 | 0.944111 | 28.796486 | 11.52854685 | 39266 |
20 | 0.930728 | 27.382717 | 9.218492181 | 31398 |
10 | 0.896735 | 24.948575 | 6.128045379 | 20872 |
1 | 0.792103 | 20.210775 | 2.773063847 | 9445 |
イラスト1-BPG
品質 | SSIM | PSNR[dB] | 圧縮比 | ファイルサイズ[byte] |
---|---|---|---|---|
0 | 0.99555 | 41.012882 | 52.44041363 | 178611 |
5 | 0.99546 | 40.948336 | 39.74098497 | 135357 |
10 | 0.995135 | 40.713648 | 27.86452064 | 94906 |
15 | 0.994761 | 40.281196 | 20.98691126 | 71481 |
20 | 0.993427 | 39.280741 | 15.58288657 | 53075 |
25 | 0.990724 | 37.531153 | 11.32390678 | 38569 |
30 | 0.985263 | 35.198342 | 7.960117206 | 27112 |
35 | 0.972694 | 32.190851 | 5.195567795 | 17696 |
40 | 0.955189 | 29.126934 | 3.245174663 | 11053 |
45 | 0.922773 | 25.806033 | 1.897838508 | 6464 |
50 | 0.858423 | 22.332236 | 1.057551718 | 3602 |
51 | 0.842739 | 21.760849 | 0.936881602 | 3191 |
イラスト2-JPEG
品質 | SSIM | PSNR[dB] | 圧縮比 | ファイルサイズ[byte] |
---|---|---|---|---|
100 | 0.995252 | 41.175386 | 63.93004294 | 140111 |
90 | 0.985292 | 37.550374 | 26.18051405 | 57378 |
80 | 0.975479 | 35.110701 | 18.90966997 | 41443 |
70 | 0.967490 | 33.723345 | 15.55508913 | 34091 |
60 | 0.959916 | 32.597751 | 13.4219736 | 29416 |
50 | 0.952793 | 31.692765 | 11.93358368 | 26154 |
40 | 0.944832 | 30.892918 | 10.49538471 | 23002 |
30 | 0.933852 | 29.882336 | 8.919845047 | 19549 |
20 | 0.916423 | 28.447979 | 6.965135538 | 15265 |
10 | 0.876944 | 26.074346 | 4.427298403 | 9703 |
1 | 0.740928 | 20.678218 | 1.897674334 | 4159 |
イラスト2-BPG
品質 | SSIM | PSNR[dB] | 圧縮比 | ファイルサイズ[byte] |
---|---|---|---|---|
0 | 0.996897 | 43.570406 | 48.59761912 | 106508 |
5 | 0.996682 | 43.414900 | 37.15271282 | 81425 |
10 | 0.996045 | 42.884148 | 24.83448392 | 54428 |
15 | 0.995024 | 42.013453 | 17.60744286 | 38589 |
20 | 0.992855 | 40.312587 | 12.21556558 | 26772 |
25 | 0.988194 | 37.938728 | 8.268731492 | 18122 |
30 | 0.979948 | 35.441437 | 5.515529537 | 12088 |
35 | 0.964099 | 32.523118 | 3.443099428 | 7546 |
40 | 0.932241 | 29.364095 | 1.952428101 | 4279 |
45 | 0.884078 | 26.420166 | 1.119258269 | 2453 |
50 | 0.810806 | 23.508739 | 0.550731647 | 1207 |
51 | 0.802086 | 23.051780 | 0.476357779 | 1044 |
そしてグラフです。
(グラフはクリックで拡大できます)
グラフは、横軸がSSIMで縦軸が圧縮比になります。圧縮比は元画像(PNG)を100としたファイルサイズ比になります。なので横軸を基準に見て、同じ程度の画質で圧縮比が良いのはどちらかという見方が出来ます。
圧縮比は低い方がより高い圧縮が出来ています。圧縮率だとグラフにしたときに不都合がありましたので、圧縮比にしています。
単色での圧縮比は予想通りですが、BPGには目を見張るものがあります。
JPEGもBPGもランダム画像には弱いことが分かります。周辺のピクセルとの相関がないものは圧縮には不向きですね。
つまり、GIGAZINEさんのところも先の紹介した記事も、みんな写真で比較していたけれど、高画質で見た場合にはどちらもそれほど大きな差は見られない。画質を落とせば違いは出るけど、それだと実用的じゃない(特に私はJPEGの場合、品質100しか使わないです)。とは言ってもJPEGの品質100がBPGの品質10~15あたり。とすると対JPEGとの圧縮比は50%。良い値です。
イラストの方は高画質高圧縮なのが見て取れます。イラストを非可逆圧縮で使うのかという疑問はありますけど、それなりに良いのではないでしょうか。こちらは、イラスト1のJPEGの品質100がBPGの品質20あたり。対JPEGとの圧縮比は20%。イラスト2のJPEGの品質100がBPGの品質15あたり。対JPEGとの圧縮比は30%。どちらもかなり良い結果です。
結果として、BPGはJPEGと同等画質にするならば、ファイルサイズが半分以下と言えます。
また、BPGはどちらかというとデジタルイラストの圧縮に向いていると言えます。
でもこのBPG、エンコードの時のオプションでHEVCの指定がありましたけど、もしかしてH.265/HEVCのアルゴリズムを使っているんでしょうか。
コメント