【初心者向け】圧縮・解凍とは?仕組み・可逆圧縮・非可逆圧縮

圧縮・解凍とは

圧縮・解凍とは、データのサイズを効率的に管理するための方法です。

圧縮はデータのサイズを小さくし、解凍は小さく圧縮したデータを元のサイズに戻すことをいいます。

この2つは必ずセットで行われます。圧縮されたデータは解凍しない限り、編集することはできません。

なぜ圧縮・解凍するのか

データを圧縮することで、ストレージ(デバイスにデータを保管する場所)内でより少ない容量で保存でき、データ送信の際の転送時間を短縮することができます。

特に、インターネットを介したファイル転送では、帯域幅(単位時間当たりに転送できるデータ量)を節約できるため、効率的です。また、複数のファイルを1つにまとめることできるため、管理が容易になります。

解凍は圧縮されたファイルを元のサイズに戻すことで、通常のファイルと同じように扱えるようにします。解凍することで、元のファイル形式やデータ構造に戻り、利用できるようになります。特定の圧縮方法では、データの損失がないため、品質を保ったまま保存できるメリットがあります。

圧縮と解凍は、特に大量のデータを扱う現代のデジタル環境において、効率性と利便性を向上させる重要な技術です。

圧縮の仕組み

圧縮は、元のデータをより小さいデータに変換することで行います。

代表的なものに「ハフマン符号化」「ランレングス圧縮」「辞書式圧縮」があります。

ハフマン符号化

1952年にデビット・ハフマンによって考案されました。符号化とは、データを「0」と「1」の2進数に変換することです。

ハフマン符号化では、データの出現頻度に注目し、多く出現するデータに短い符号を、あまり出現しないデータには長い符号を割り振ることで圧縮します。また、圧縮率は文字の出現頻度によって変わります。

例えば、圧縮していないデータ「A」の符号が「000」である場合、「A」が3回出現した際は符号が「000000000」になりますが、ハフマン符号化を用いて頻出のデータ「A」に「0」を割り振った場合、「AAA」の符号は「000」となります。

ランレングス圧縮

連長圧縮とも呼びます。

ランレングス圧縮では、データが何個連続しているかを「データ1つ分と連続した長さ」で表します。

例えば、「AAAAABBCCCDDDD」というデータがあった場合、「A5B2C3D4」とすることができます。ランレングス圧縮の欠点は、データが連続していないと圧縮後のほうが元のデータより大きくなってしまう点です。そのため、白黒画像のようなデータの符号化に有効です。

辞書式圧縮

データの中でよく使われる部分を辞書に登録し、それに対して短いコードやインデックスを割り当てることで、全体のサイズを小さくします。

例えば、「圧縮」に1、「と」に2、「解凍」に3を割り当てたとすると、「圧縮と解凍」は「123」で表せるという手法です。代表的なものに「LZWLempel-Ziv-Welch)」があります。LZWでは、圧縮する際に新しいパターンが見つかると辞書に追加され、次回以降はその辞書を参照して圧縮を行います。

解凍の仕組み

解凍は、圧縮方法を判別し、それを遡るように復元を行います。

以下のようなステップで行います。

圧縮データの読み込み

解凍するためのプログラムは、圧縮ファイル(zip7zなど)を開き、圧縮されたデータを読み込みます。

圧縮方法の識別

圧縮ファイルには、使用された圧縮方法は何かという情報が含まれているため、解凍プログラムはこれを読み取り、解凍するにはどうすれば良いかを判断します。

データの復元

ファイルの圧縮方法に基づいて、圧縮されたデータを元の形に復元します。ランレングス圧縮であれば、「A4B2C3D1」を「AAAABBCCCD」に戻す工程です。

ファイルの書き出し

解凍されたデータは、指定された場所に新しいファイルとして書き出されます。

圧縮方法

圧縮は、「可逆圧縮」と「非可逆圧縮」という2種類に分けられます。

可逆圧縮

可逆圧縮は、解凍時に完全に圧縮前と同じ状態に復元できる圧縮方法です。データの品質が変わらないため、主にExcelWordなどの文書、数値データなど、変わってほしくないデータの圧縮に使用されます。

可逆圧縮で圧縮するファイルには以下のようなものがあります。

  • ZIP
  • 7Z
  • PNG
  • FLAC

非可逆圧縮

非可逆圧縮は、解凍時に細部のデータが一部欠落する圧縮方法です。データの品質は可逆圧縮に劣りますが、圧縮率は非可逆圧縮のほうが高いです。主に、映像、音声、画像などの細部が変わっても人間が認識しにくいデータの圧縮に使用されます。

非可逆圧縮で圧縮するファイルには以下のようなものがあります。

  • JPEG
  • MP3
  • MPEG

まとめ

今回は、圧縮と解凍について解説しました。

圧縮方法はデータの種類や目的に応じて選択することが重要です。圧縮・解凍を理解することは、効率的にデータを管理し、必要な時にスムーズに扱うことに役立ちます。

ぜひ実践してみてください。

まずは無料説明会・体験セミナー

テックドリームは無料のプログラミングスクールです。「プログラマってどういう仕事?」「自分にできるのかな?」という方も、まずは体験セミナーでプログラミングに触れてみませんか?テックドリームは未経験の方を丁寧にサポートする体制をご用意しています。不安なことや、入校までの疑問点なども気軽にご相談いただけます。

Webかんたん予約

専用の予約フォームより、およそ60秒で簡単にお申込みいただけます。

電話でのご予約

Webかんたん予約ができない場合や、ご質問がございましたら、お気軽にお電話ください。

0120-262-242
9:00~18:00(土日祝を除く)
最新情報をチェックしよう!
>テクド・リム

テクド・リム


「テクドリ」の公式キャラクター。
エンジニアだった父の影響を受けて、夢に向かって日々勉強に励むエンジニアのタマゴ。
夢は「世界を変える、すごいエンジニアになること!」

彼女が通うプログラミングスクールについては「テクドリとは」ページにて紹介中!

CTR IMG