0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

画像はどのように圧縮されるのでしょうか?

Last updated at Posted at 2025-07-29

日常生活の中で、ソーシャルメディアに写真をアップロードしようとした際に、ファイルが大きすぎるというメッセージが表示されたり、ウェブサイトにアクセスした際に画像の読み込みが遅くなったりする状況に遭遇することがあるかもしれません。

このような時、「画像を圧縮する」ことを考えるかもしれませんが、画像はどのように圧縮されるのでしょうか?

圧縮の本質

圧縮の目的は、画像ファイルのサイズを小さくし、コンテンツの見た目を統一することです。

お茶を淹れる時、茶葉の量が多い場合と少ない場合で味に差があるように、お茶の量は多少違っても、淹れたお茶の味はほぼ同じです。

image.png

画像についても同様です。いくつかの方法を用いることで、人間の目に敏感な画像の詳細を「削除」または「近似」することで、問題をより小さくすることができます。

画像圧縮のプロセス

最も一般的に使用されるJPEG画像を例にとると、圧縮プロセスは大きく5つのステップに分けられます。

ステップ1:色空間変換(RGBからYCbCrへ)

画像は元々RGB(赤、緑、青)データでしたが、人間の目は「明るさ」に敏感で、「色」には敏感ではありません。

そのため、画像を次のように変換します。

  1. Y(明るさ):白黒レベル
  2. Cb/Cr(色):色情報

この分離により、後続のステップでは、肉眼の知覚に影響を与えることなく「色情報を犠牲にする」ことができます。

image.png

ステップ2:ブロッキング(通常8x8ピクセル)

画像は8x8ピクセルの正方形に分割され、各ピクセルは個別に処理され、後続の圧縮と配置を容易にします。

image.png

ステップ3:離散コサイン変換(DCT)

8×8ブロックごとにDCT変換を行い、ピクセル値を周波数データに変換します。

低周波数:画像の輪郭と構造(重要)

高周波数:ディテール、テクスチャ、ノイズ(重要度は低い)

image.png

左上隅は「DC成分」で、これは画像の平均輝度、つまり画像の低周波部分を表します。

右下隅は画像の高周波部分で、画像のディテール(エッジやテクスチャなど)を表します。

高周波のほとんどは0または0に近いため、この画像は非常に滑らかで、これらのディテールは圧縮可能であることを意味します。

ステップ4:量子化(画質低下ステップ)

JPEG画像圧縮には、「量子化」と呼ばれる非常に重要な処理があります。これは、画像内の特定のディテールの精度を意図的に低下させることでファイルサイズを縮小するものです。

人間の目は高周波(ディテール)に鈍感であるため、JPEGでは以下の処理が行われます。

  1. これらの周波数データを「量子化」します。つまり、量子化係数と呼ばれる数値で割り、整数になるように切り捨てます。

  2. 数値が小さすぎて結果が0の場合、「この部分の情報は失われている」ことを意味します。

例:

量子化係数が 10 の場合、元の周波数値は 120 で、結果は 12 になります。

image.png

量子化係数が 50 の場合、元の周波数値は 8 で、結果は 0 になるため、この部分の情報は失われます。

image.png

つまり、

量子化係数が大きいほど、精度は低下し、画像はぼやけますが、ファイルサイズは小さくなります。

量子化係数が小さいほど、保持される情報量は多くなり、鮮明度は高くなりますが、ファイルサイズは大きくなります。

ステップ5:エンコード(圧縮)

量子化されたデータを、ハフマン符号化、ランレングス符号化などを用いて再度圧縮します。

これは、「12, 12, 12, 0, 0, 0」を「(12×3), (0×3)」のような圧縮形式に変換することに相当します。

image.png

最後に、画像の圧縮が実現されます。

image.png

なぜ圧縮サイズが大きいのに「劣化が目立たない」ことがあるのでしょうか?

人間の目には多くの限界があるためです。

  1. 人間の目は明るさには敏感ですが、色には敏感ではないため、圧縮アルゴリズムによって多くの色情報が失われる可能性があります。

  2. 静止画像と動画の違いを認識するのはより難しいため、静止画像はより圧縮される可能性があります。

  3. 細部のぼやけた部分を無視すれば、背景/モノクロ領域はより圧縮されます。

そのため、明るさの変化が激しくなく、エッジがシャープでない処理では、画質が70%圧縮されても、見た目はほぼ同じです。

Macで画像を圧縮するには?

JPG、JPEG、PNGなどの画像を圧縮するには、Mac App Storeで「ImageSlim」を検索してください。

image.png

macOSのデフォルトの圧縮機能が使用されます。また、サードパーティ製のオープンソースツールであるpngquantを使用することで、PNG画像を最大99%の圧縮率で効率的に圧縮できます。

ドラッグ、クリック、またはCommand + Vキーを押すことで、アプリケーションに画像をすばやくインポートできます。インポートされた画像はすべて即座にローカルで圧縮され、圧縮後は個別にダウンロードするか、ZIP形式でダウンロードできます。

また、圧縮率の調整、出力ディレクトリの設定、pngquantなどのサードパーティ製圧縮エンジンの有効化/無効化も、必要に応じて行うことができます。

image.png

ImageSlimは無料、広告なし、そしてユーザーの画像をサードパーティのサーバーにアップロードしたり、ユーザーのプライバシーデータを積極的に収集したりしないことを約束します。スポンサーなしの状態でアプリにアップロードできる画像は一度に20枚まで、画像サイズは1枚あたり5MBまでに制限されています。ImageSlimがお役に立てば、アプリを通じてスポンサーになっていただけると幸いです。スポンサーになっていただくと、上記の制限が解除されます。

ImageSlimは、効率性、プライバシー、そしてシンプルな操作性を追求して設計された画像圧縮ツールです。開発者、デザイナー、コンテンツクリエイターなど、画像サイズを縮小したいすべての人に最適です。

ダウンロードパス:Mac App Storeで「ImageSlim」と入力してダウンロードし、無料でご利用ください。

image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?