情報の圧縮と伸長
圧縮と伸長とは
Section titled “圧縮と伸長とは”パソコンやスマートフォンで扱うデータには、文書、写真、音楽、動画など、さまざまな種類があります。これらのデータはそのままではファイルサイズが大きく、保存するためにストレージの容量を圧迫したり、ネットワークで送受信する際に時間がかかったりすることがあります。
こうした問題を解決するために行われるのが圧縮です。圧縮とは、データの中身を一定のルール(アルゴリズム)に従って変換し、ファイルサイズを小さくする処理のことです。
圧縮されたデータを元の形に戻す処理のことを伸長(展開)と呼びます。圧縮と伸長はセットで使われ、「データを小さくして保存・送信し、使うときに元に戻す」という流れで活用されます。
圧縮の主な目的は次の2つです。
- データ保存の効率化:ファイルサイズを小さくすることで、ストレージの空き容量を節約できます
- ネットワーク負荷の軽減:データ量が減ることで、送受信にかかる時間が短くなり、ネットワークの負荷を下げることができます
可逆圧縮と非可逆圧縮
Section titled “可逆圧縮と非可逆圧縮”圧縮の方式は、元のデータを完全に復元できるかどうかによって、大きく2種類に分けられます。
可逆圧縮とは、圧縮したデータを伸長すると、元のデータと完全に同じ状態に戻せる圧縮方式です。データの中身が一切失われないため、「1ビットも変わらずに復元できる」のが特徴です。
可逆圧縮は、内容が少しでも変わると困るデータに使われます。たとえば、次のようなケースです。
- テキストファイル:文書の内容が変わってしまうと意味が変わってしまいます
- プログラムファイル:プログラムのコードが1文字でも変わると、正しく動作しなくなります
- 表計算データ:数値が変わると計算結果が狂ってしまいます
可逆圧縮は完全に復元できる代わりに、圧縮率はそれほど高くなりません。
非可逆圧縮(不可逆圧縮)とは、圧縮の過程で一部のデータを意図的に削除する方式です。伸長しても元のデータと完全に同じには戻りませんが、その分だけ圧縮率を大幅に高めることができます。
非可逆圧縮は、人間の感覚では違いがわかりにくいデータに適しています。
- 写真・画像:人間の目では区別しにくい微妙な色の違いを省略します
- 音楽・音声:人間の耳に聞こえにくい高周波の音などを削除します
- 動画:画像と音声の両方で不要な情報を取り除きます
たとえば、スマートフォンで撮った写真をSNSにアップロードすると、ファイルサイズが大幅に小さくなっていることがあります。これは非可逆圧縮が行われているためです。見た目にはほとんど違いがわかりませんが、元の写真データとは厳密には異なっています。
試験で出るポイント
圧縮率とは、圧縮によってデータがどれだけ小さくなったかを示す指標です。一般的には、圧縮後のファイルサイズを圧縮前のファイルサイズで割った値で表します。
たとえば、100MBのファイルを圧縮して25MBになった場合、圧縮率は 25 ÷ 100 = 0.25(25%)です。この数値が小さいほど、元のデータからより多くの容量を削減できたことを意味します。
一般的に、非可逆圧縮のほうが可逆圧縮よりもファイルサイズを大幅に小さくできます(圧縮率の数値が小さくなる)。これは、非可逆圧縮ではデータの一部を捨てることで、より大きくサイズを削減できるためです。
代表的な圧縮アルゴリズム
Section titled “代表的な圧縮アルゴリズム”圧縮にはさまざまなアルゴリズム(手順)が存在します。ITパスポート試験では、次の2つを理解しておきましょう。
ランレングス法
Section titled “ランレングス法”ランレングス法(ランレングス符号化)は、同じデータが連続して並んでいる部分を「データの値」と「繰り返し回数」の組み合わせに置き換える圧縮方式です。
具体例で見てみましょう。次のような文字列があるとします。
AAAABBBCCこの文字列は9文字ですが、ランレングス法を使うと次のように圧縮できます。
A4B3C2「Aが4回、Bが3回、Cが2回」という意味で、6文字に縮まりました。このように、同じデータの繰り返しが多いほど効果が高い圧縮方式です。
ランレングス法は仕組みが単純でわかりやすく、FAXの画像データの圧縮などに利用されています。白と黒のドットが連続する部分が多い文書画像では、特に高い圧縮効果を発揮します。
ハフマン法(ハフマン符号化)は、データの中で出現頻度が高い要素に短い符号を、出現頻度が低い要素に長い符号を割り当てることで、全体のデータ量を減らす圧縮方式です。
日常の例で考えてみましょう。日本語の文章では「の」「は」「を」といった助詞は非常に頻繁に登場しますが、「ぬ」「ゑ」などはめったに出てきません。ハフマン法の考え方では、よく使う「の」に短い符号を、めったに使わない「ゑ」に長い符号を割り当てます。こうすることで、文章全体を符号化したときのデータ量が小さくなります。
ハフマン法は可逆圧縮の代表的なアルゴリズムであり、さまざまなファイル圧縮ソフトの内部で広く利用されています。
ZIPは、ファイルの圧縮とアーカイブ(複数ファイルのまとめ)を行う、最も広く使われているファイル形式の一つです。拡張子は「.zip」で、Windows、macOS、Linuxなど主要なOSで標準的にサポートされています。
ZIPの特徴は次のとおりです。
- 可逆圧縮方式であり、伸長すれば元のデータが完全に復元されます
- 内部ではハフマン法などのアルゴリズムが使われています
- 複数のファイルやフォルダを1つのZIPファイルにまとめられるため、メールでの送付やデータの受け渡しに便利です
たとえば、仕事で複数の書類ファイルを相手に送りたいとき、それらをまとめてZIPファイルにすれば、1つのファイルとして添付でき、しかもサイズも小さくなります。
試験で出るポイント