画像のデジタル表現と圧縮
スマートフォンで撮った1枚の写真は、実は数百万個の小さな点の集まりです。画像はどうやって数値になり、なぜJPEGにすると小さくなるのでしょうか。解像度・色深度という画質の物差しと、可逆・非可逆という圧縮の2方式、そしてファイル形式の使い分けを学びます。
画素と解像度
デジタル画像は、画素(ピクセル)と呼ばれる小さな点を格子状に並べ、各画素の色を数値で表すことで表現されます(この方式をラスタ形式(ビットマップ形式)と呼びます)。画像のきめ細かさを表すのが解像度です。画像全体の画素数(例:1920×1080)で表すほか、印刷などでは1インチあたりの画素数dpi/ppiで表します。画素数が多いほど精細ですが、データ量も比例して増えます。なお、点の集まりではなく、線や図形を座標と数式で表すベクタ形式という方式もあります。ベクタ形式は拡大しても輪郭が荒れない(ジャギーが出ない)ため、ロゴ・イラスト・地図に向いており、SVGが代表的な形式です。写真のような複雑な色の変化はラスタ形式が得意、というように両者は使い分けられます。
色の表現 — 光の三原色と色深度
ディスプレイの色は、光の三原色RGB(Red・Green・Blue)の強さの組み合わせで作られます。光は重ねるほど明るくなり、3色すべてを最大にすると白になります(加法混色)。一方、プリンタのインクは色の三原色CMY(シアン・マゼンタ・イエロー)で、重ねるほど暗くなる減法混色です(実際には黒Kを加えたCMYKを使用)。1画素の色を何ビットで表すかを色深度と呼びます。RGB各色に8ビット(256段階)を割り当てる24ビットカラーでは、256×256×256=約1,677万色を表現でき、フルカラーと呼ばれます。画像のデータ量は「画素数 × 1画素あたりのビット数」で計算できます。例えば1920×1080のフルカラー画像なら、1920×1080×24ビット=約49.8Mビット≒約6.2MB(非圧縮)です。
圧縮の2方式 — 可逆と非可逆
非圧縮の画像は巨大なので、通常は圧縮して保存します。可逆圧縮は、データの規則性を利用してサイズを減らし、完全に元のデータに復元できる方式です。単純な例がランレングス圧縮で、「白白白白白」を「白×5」と表すように、同じ値の連続を「値と回数」で置き換えます。出現頻度の高いデータに短い符号を割り当てるハフマン符号化も代表的な手法です。非可逆圧縮は、人間に知覚されにくい情報を捨てることで大幅にサイズを減らす方式で、元のデータには完全には戻せません。写真用のJPEGは、人間の目が色の細かい変化より明るさの変化に敏感であることを利用して、色の情報を粗くすることで高い圧縮率を実現しています。圧縮の効果は圧縮率(圧縮後のサイズ÷圧縮前のサイズ)で表します。
ファイル形式の使い分け
代表的な画像形式の特徴を押さえましょう。JPEG:非可逆。フルカラー対応で写真に最適。ただし保存を繰り返すたびに劣化が蓄積し、文字やイラストの輪郭にはノイズ(モスキートノイズ)が出やすい。透過は不可。PNG:可逆。フルカラー対応で、輪郭のはっきりしたイラスト・図・スクリーンショットに最適。背景の透過も可能。写真ではJPEGよりサイズが大きくなりがち。GIF:可逆だが256色まで。簡単なアニメーション(GIFアニメ)が作れる。BMP:原則無圧縮で巨大。ほかに、Webでの利用を想定した高効率な形式(WebPなど)も普及しています。「写真はJPEG、図・イラスト・透過はPNG、動くものはGIF(または動画)」が使い分けの基本です。
- ラスタ形式=画素の集まり(写真向き)。ベクタ形式=座標と数式(ロゴ・イラスト向き、拡大に強い、SVG)。
- RGB=光の三原色・加法混色(画面)。CMY(K)=色の三原色・減法混色(印刷)。
- 24ビットカラー=各色8ビット×3=約1,677万色。データ量=画素数×色深度。
- 可逆圧縮=完全に復元可(ランレングス・ハフマン)。非可逆圧縮=復元不可だが高圧縮。
- JPEG=非可逆・写真向き・劣化蓄積に注意。PNG=可逆・イラストと透過。GIF=256色・アニメ。
練習問題
- ラスタ形式とベクタ形式の違いを説明し、「拡大しても輪郭が荒れない」のはどちらか、理由とともに答えなさい。
- 光の三原色(RGB)と色の三原色(CMY)の違いを、「混ぜたときの明るさの変化」に着目して説明しなさい。
- 800×600画素・24ビットカラーの非圧縮画像のデータ量は何バイトか計算しなさい。
- 可逆圧縮と非可逆圧縮の違いを説明し、「会議資料のスクリーンショット」と「風景写真」はそれぞれJPEGとPNGのどちらで保存するのが適切か、理由とともに答えなさい。
解答・解説
- 解答:ラスタ形式は画像を画素(点)の集まりとして各点の色を記録する方式、ベクタ形式は線や図形を座標と数式で記録する方式。拡大に強いのはベクタ形式。数式で形を表しているため、拡大時にはその倍率で計算し直して描画でき、画素の引き伸ばしによるギザギザ(ジャギー)が生じないから。
解説:「点の記録」対「式の記録」の対比が核。ベクタの代表例SVG、用途(ロゴ・地図)も添えられると加点。 - 解答:RGBは光の三原色で、ディスプレイなど発光するものの色の仕組み。混ぜる(重ねる)ほど明るくなり、3色最大で白になる加法混色。CMYは色の三原色で、インクなど光を反射するものの仕組み。混ぜるほど暗くなる減法混色で、印刷では黒(K)を加えたCMYKが使われる。
解説:「加法=明るくなる=画面」「減法=暗くなる=印刷」の対応で整理。白と黒どちらに近づくかで覚える。 - 解答:800 × 600 × 24 = 11,520,000ビット。バイトに直すと 11,520,000 ÷ 8 = 1,440,000バイト(約1.44MB)。
解説:データ量=画素数×色深度(ビット)。÷8でバイト変換。24ビット=3バイトとして800×600×3と計算してもよい。 - 解答:可逆圧縮は圧縮後も完全に元のデータへ復元できる方式、非可逆圧縮は知覚されにくい情報を捨てて大幅に圧縮する代わり元に戻せない方式。スクリーンショットは文字や直線が多く、JPEG(非可逆)では輪郭にノイズが出て読みにくくなるため、可逆のPNGが適切。風景写真は色の変化が複雑でJPEGの圧縮が効きやすく、多少の劣化も目立ちにくいため、サイズを大幅に減らせるJPEGが適切。
解説:圧縮方式の定義に加え、「文字・輪郭=PNG、写真=JPEG」を理由(ノイズの出やすさ・圧縮効率)付きで答えられるかがポイント。