データ圧縮を体験しよう

同じ内容を、もっと少ないビットで表せないか。そのための工夫が圧縮です。

白黒の絵を「何色が何個つづくか」で記録します

マス目をクリックまたはドラッグして、絵をかけます。16×16=256マスで、1マス1ビット(白0・黒1)です。

データ量のくらべ

この教材では、1つの「つづき」を 色1ビット+個数4ビット=5ビット で記録します(個数1〜16を0〜15で表す)。 行ごとに区切って数えています。

よく出る文字には短い符号、めったに出ない文字には長い符号を

文字の出てくる回数を数え、回数の少ないものから2つずつまとめて木を作ります。左の枝を0、右の枝を1とします。

できあがった符号

文字数
–
同じ長さの符号なら
–
ハフマン符号なら
–
圧縮率
–

符号にした結果(区切りなしで並べても、元に戻せます)

写真の画質を下げると、ファイルはどこまで小さくなるか

80
JPEGで圧縮した画像
JPEGで圧縮した画像
中央を8倍に拡大(ブロック状のノイズに注目)

ファイルの大きさ

JPEGで何回も保存しなおすと画像がどう傷むかは、「JPEGをくり返し保存すると」で確かめられます。

データ圧縮とは

写真や音楽、動画は、そのままではデータ量がとても大きくなります。そこで、同じ内容をもっと少ないビットで表す工夫をします。これがデータ圧縮です。

圧縮すると、保存に必要な容量が減り、送るのにかかる時間も短くなります。インターネットで写真や動画を気軽にやり取りできるのは、ほぼすべてのデータが圧縮されているからです。

圧縮後のデータ量が元の何%になったかを、圧縮率といいます。

圧縮率(%) = 圧縮後のデータ量 ÷ 圧縮前のデータ量 × 100

数字が小さいほど、よく縮んだことを表します。

可逆圧縮と非可逆圧縮

圧縮には、大きく分けて2つの種類があります。

種類元に戻せるか主な使いみち例
可逆圧縮完全に戻せる文書、プログラム、図ZIP、PNG
非可逆圧縮完全には戻せない写真、音楽、動画JPEG、MP3、MP4

文書やプログラムは、1文字でも変わると意味が変わったり動かなくなったりします。そのため、完全に元に戻せる可逆圧縮を使います。

一方、写真や音楽は、人が気づきにくい細かい情報を少し捨てても、見た目や聞こえ方はほとんど変わりません。その性質を利用して、大きく縮めるのが非可逆圧縮です。

ランレングス圧縮

同じ値が続く部分を、「何が何個続くか」という情報に置きかえる方法です。ランレングスとは「続く長さ」という意味です。

たとえば「白白白白白黒黒黒」という8マスは、「白5 黒3」と書けます。同じ色が長く続くほど、短く表せます。

ただし、注意すべき点があります。白と黒が細かく入れかわる絵では、かえってデータ量が増えてしまいます。1マスごとに「白1 黒1 白1…」と記録することになり、1マス1ビットで記録するより大きくなるからです。上のツールで「チェック模様」を選ぶと、この様子を確かめられます。

ランレングス圧縮は、ファクスの画像や、単色の部分が多いイラストなどで効果を発揮します。

上のツールで「山」と「にこちゃん」を比べると、同じ白黒の絵でも結果が大きく変わることが分かります。山は1行の中で色の切りかわりが少ないのでよく縮みますが、にこちゃんは目や口で切りかわりが増えるため、この小さなマス目ではかえって大きくなります。圧縮の効果は、データの中身によって決まるのです。

ハフマン符号化

文字をビットで表すとき、ふつうはすべての文字に同じ長さの符号を割り当てます。4種類の文字なら、どれも2ビットです。

しかし実際の文章では、文字の出てくる回数にかたよりがあります。そこで、よく出る文字には短い符号、めったに出ない文字には長い符号を割り当てれば、全体を短くできます。これがハフマン符号化の考え方です。

符号の作り方

  1. それぞれの文字の出てくる回数を数える
  2. 回数の少ないものから2つを選び、1つにまとめる(回数は2つの合計)
  3. 全体が1つにまとまるまで、2をくり返す
  4. できた木の枝に、左0・右1を割り当て、根から文字までの道順を符号にする

よく出る文字は根の近くに、めったに出ない文字は遠くに置かれるので、自然に符号の長さに差がつきます。

区切りがなくても元に戻せる

符号の長さがばらばらだと、どこで区切ればよいか分からなくなりそうです。しかしハフマン符号では、ある文字の符号が、ほかの文字の符号の始まりの部分になることがありません。そのため、先頭から読んでいけば、区切りを入れなくても1通りに元に戻せます。

効果が出ない場合

どの文字も同じ回数ずつ出てくる場合は、符号の長さに差をつける意味がなく、ほとんど縮みません。上のツールの「かたよりがない」で確かめられます。圧縮の効果は、データのかたよりの大きさで決まります。

画質と容量の関係

JPEGは、写真のための非可逆圧縮の形式です。画像を小さなブロックに分け、人の目が気づきにくい細かい変化を捨てることで、データ量を大きく減らします。

保存するときに画質を選べるのは、どれだけ情報を捨てるかを決めているからです。画質を下げるほどファイルは小さくなりますが、ブロック状のノイズや、輪郭のまわりのもやもやが目立つようになります。上のツールで画質を変えながら、拡大した部分を見比べてください。

写真は細かい色の変化が多く、PNGのような可逆圧縮ではあまり縮みません。反対に、色数が少ないイラストや図はPNGでよく縮み、JPEGにすると輪郭がにじみやすくなります。目的に合わせて形式を選ぶことが大切です。

JPEGの画像を開いて、もう一度JPEGで保存すると、そのたびに少しずつ情報が捨てられます。何回も保存しなおしたときの変わり方は、「JPEGをくり返し保存すると」で確かめられます。

圧縮できないデータ

どんなデータでも圧縮できるわけではありません。まったくでたらめなデータには、くり返しやかたよりがないので、縮めようがありません。

また、すでに圧縮されたデータを、さらに圧縮してもほとんど縮みません。JPEGの写真やMP3の音楽をZIPでまとめても、大きさがあまり変わらないのはこのためです。圧縮によって、かたよりがすでに取りのぞかれているからです。

使い方

© 2026 情報ラボ ホーム カリキュラム対応表 画像のデジタル化 音のデジタル化 ラスタとベクタ 画像のビット演算 色の表し方 2進数・16進数 文字コード データはすべて0と1 パリティマジック コンピュータのしくみ 論理回路 アルゴリズム ネットワークのしくみ 電子メールのしくみ 情報システムとデータの流れ シミュレーション データの分析 機械学習 回帰と予測 クラスタリング 統計的推測 パスワードの強さ 暗号のしくみ あやしいメールを見分ける データ量の計算 データ圧縮 JPEGのくり返し保存 運営者情報・お問い合わせ プライバシーポリシー 更新履歴