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

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

目次

    圧縮・解凍とは

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

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

    この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かんたん予約ができない場合や、ご質問がございましたら、
    お気軽にお電話ください。

    0120-262-242
    9:00~18:00(土日祝を除く)

     

    >テクド・リム

    テクド・リム


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

    CTR IMG