月別アーカイブ

カテゴリ別アーカイブ

Team-oyodo 公式ブログ

一覧へ戻る

JPEGの謎

JPEGはWEBで画像を扱う者にとってはとても身近ですが、けっこう謎も多いフォーマットだったりもします。もちろん、べつに仕組みを知らなくても実用には事足ります。なのでよくわからない部分については「そういうもんだ」で済ませてしまってもまったく問題はないのですが、ちょっとした仕様上の特性などを知っていると、何かの役に立つこともあるかもしれません。
…というわけで今回以降、JPEGに関する考察を数回に分けておこなっていくことにします。

【注】ここではデザイナーが業務で使えそうな知識に絞って取り上げ、わかりやすくするため技術的な部分を大幅に端折って、ひらたい表現を使っています。間違った、或いは誤解を招く表現をしないよう努めてはいますが、簡易な言葉で説明が不可能と判断した事項については説明自体を放棄するか、近いニュアンスの表現で説明に代えるなどでお茶を濁しています。
要するに正確ではありません。
JPEG自体の仕組みについては情報も豊富ですし解説されているサイトもたくさんあるので、詳しい仕組みやより正確な技術仕様が知りたい場合はそちらをご参照ください。

JPEGの圧縮工程
ビットマップ画像をJPEGに圧縮する工程としては、以下のような説明がなされていることが多いと思います。

  1. 色空間をYCbCrに変換
  2. ダウンサンプリング
  3. 離散コサイン変換
  4. 量子化
  5. ジグザグスキャン・符号化

この工程を見て何をやってるかすぐにわかるのは少数派でしょう。というか離散コサイン変換のくだりなぞは、解説書を読んだっていったい具体的に何をどうしてるのかよくわからないのが普通ではないでしょうか。
でも大丈夫。
我々は利用者ですからもっと単純化して捉えておけば問題ないです。JPEGで画像を圧縮する際の処理でおさえておくのは二つ!

  1. 画像をボンヤリさせる
  2. データを並べ替える

以上!
ひつこいようですが正確ではありません。
ですがこれを念頭に置いて仕様上の特性をある程度知っておけば、よくあるJPEGに関しての様々な疑問に答えることができます。

Q. JPEGが保存するたびに劣化する(=非可逆圧縮)のはなぜ?
A. ボンヤリさせる時にデータの一部を捨てるからです。

Q. ソフトによってJPEGのサイズや画質に差が出るのはなぜ?
A. ボンヤリさせる領域と程度の設計が各ソフトで違っているためです。

Q. 同じソフトを使ってもファイルによって圧縮率に差が出るのはなぜ?
A. 並べ替えを行ったとき、よりボンヤリした画像の方がデータ量が小さくなるためです。(もともとボンヤリした画像はより小さくなり、クッキリパッキリが多い画像はあまり小さくならない)

Q. ベタぬり面が汚れるのはなぜ?
A. ボンヤリさせる時にまわりの色に影響される(混じってしまう)ためです。

とまぁこんなかんじではあるのですが、我々ユーザーにもっとも深く関係してくる問題は「いったいどういう設定ならキレイに軽く保存できるのよ?!」ってことですよね。そのへんについて、次回以降もう少しつっこんで見ていくことにします。
では、また。

(シンヲ)

カテゴリ:画像処理 2012/5/9 23:38

  • mixiチェック