質問: 漠然とした質問で恐縮です。 JPEGの圧縮はどのようにやっているのでしょうか。また、元画像との違いはどこに現れるのでしょうか。しろうとにも分かるように教えてください。
回答: 厳密にはちょっと違うかも知れませんが、大雑把に言うと、 JPEGと言うのは、画像を圧縮してファイル容量を小さくする規格です。 どうやって圧縮しているのか、詳しくは無いのですが、 画像の中の、似通った色のピクセルが並ぶ部分を 1つにまとめてしまう様な方法だったと思います。 で、特徴としては、似た系列の色合いが多いと圧縮率が高くなり、 反対に色の変化が大きいものだと(異なる色が接触する 輪郭部分が多いと)、圧縮率が低くなってしまいます。 雰囲気で説明しますと、例えば、真っ青な空に、赤い風船が浮かんでいる絵を 想像してみて下さい。この、風船の輪郭を表現するのに、 光の当たっている部分と、影の部分では、輪郭周辺の色も 微妙に違いますね。これをそのまま全部正しい色で表現しようとするのが BMPだとします。それに対して、『赤と青の輪郭なんだから、 うまいこと紫でボカシとけばバレないだろ~』みたいなのがJPEGで、 この際にJPEGが作る、紫色の部分の事を『JPEG偽色』と言います。 また、JPEGでは、この圧縮率を、自分で設定する事が可能です。 圧縮率を高くして行くと、ファイル容量が小さくなる代わりに、 輪郭部分がボケたり、色合いが少し狂ったりします。 『赤と青はあくまでも赤と青だ!』と言って、中間色のボカシを 作らないのがGIFって感じでしょうか。 で、元画像との違いはどこに出ているのか?についてですが、 同じ画像を、BMPとJPEGで保存すれば、JPEGの方は圧縮される段階で 画像が劣化しますからよく見ると全体的に、細かいところの 色合いなどが劣化しているのです。 ただし、圧縮率を低めにしてやると、ほとんど劣化も見られないまま、 ファイル容量をそれなりに小さくする事も可能です。 また、元の画像が、デジカメで撮影した画像などの場合、 撮影された段階でJPEGとして劣化していますので、 元画像との違いを見つける事は難しいかも知れません。