画像ファイルの画質変更を通じて可逆圧縮と不可逆圧縮について体験しよう.
(補足)圧縮後に元のデータに復元できない圧縮方法は、「不可逆圧縮」とも「非可逆圧縮」とも呼ばれる。教科書では「非可逆圧縮」という言葉が使われいるが、この資料では「不可逆圧縮」を使う。両者は同じ意味である。
可逆圧縮と不可逆圧縮
現在利用されているjpg圧縮のほとんどは不可逆圧縮である.またpng形式で用いられる圧縮は可逆圧縮である.(参考)可逆圧縮方式のjpg圧縮も存在するが,広く利用されているのは非可逆圧縮のものである.
qualityを50と指定したファイルをつくる
jpgについて
convert -quality 50 image01.jpg image01_q50.jpg
pngについて
convert -quality 50 image01.png image01_q50.png
と打ち込んで,qualityを50としたファイルをつくろう.これらのファイルを「元」にして以下の操作を行う.
画像を確認してみよう.
画像の見え方を確認してみよう.
画質を下げてみよう
qualityの値を50として作ったファイルから,qualityの値を1としていして,画質を下げたファイルをつくろう.
jpgについて
convert -quality 1 image01_q50.jpg image01_q50_q1.jpg
pngについて
convert -quality 1 image01_q50.png image01_q50_q1.png
と打ち込んで,qualityを1としたファイルをつくろう.
image01_q50_q1.jpg,image01_q50_q1.pngが画質が下げられたファイルである.
ls -l と打ち込んでファイルサイズの変化を確かめてみよう.
「元に戻す」事を試みる(jpg)
上のようにして出来たimage01_q50_q1.jpgから「元」のqualityが50のファイルに「戻す」ことを試みてみよう.
convert -quality 50 image01_q50_q1.jpg image01_q50_q1_q50.jpg
と打ち込んで見よう.
このコマンドにより,image01_q50_q1.jpgからqualityの値を50にしたimage01_q50_q1_q50.jpgを作ろうと試みているのである.
ls -l を打ち込んで見ると分かるように,「元」のimage01_q50.jpgと,「元に戻そうと試みて」作ったimage01_q50_q1_q50.jpgのファイルサイズは異なる.つまり,「元」に戻せていない事が分かる.このように,不可逆圧縮を施した場合は,「元」のファイルには戻す事が出来ない.
画像を比較してみよう
「元」のimage01_q50.jpgと,「元に戻そうと試みて」作ったimage01_q50_q1_q50.jpgの画像を比較してみよう.「元」に戻せていない事が一目で分かるだろう.
画像を「元に戻す」事を試みる
同じような操作をpng形式のファイルに施してみよう.png形式では可逆圧縮が採用されている.どのようになるだろうか.
jpgの時と同じように
convert -quality 50 image01_q50_q1.png image01_q50_q1_q50.png
と打ち込んで,「元」のqualityが50のファイルに「戻す」事を試みてみよう.
その後, ls -l と打ち込んで「元」のファイルとのファイルサイズの違いを確認してみよう.同じであることが分かるだろうか.このように,可逆圧縮方式の場合,「元」のファイルに戻すことが出来る.
(補足)このサンプル(image01.pngなど)の場合,画質を上げ下げした時の画質の違いを目で見て実感するのは難しい.