見出し画像

基本情報処理 「圧縮」と「展開」の違い

linuxのtarコマンドを調べてて、このトピックに当たったので、調べてみようかなと。

tarコマンドはアーカイブを作成するコマンドです

そして、アーカイブとは、複数のファイルを1つのファイルにまとめて書庫管理するファイルのことです。

「圧縮」と「展開」に関して説明する上で、キーワードとして「アーカイブ」「圧縮」「解凍」「展開」という言葉が出てくる。この4つの言葉はコンピュータを使うすべての人にとってポイントとなるワードなので覚えておいてほしい。

複数のファイルを1つのファイルにまとめる作業は、一般的にはある数学的な操作でファイルサイズを小さくする「圧縮」という形で行われるのだが、tarコマンドはアーカイブするだけで圧縮は行わなれません。

圧縮とは、ファイルの内容を数学的に計算して本来のファイル容量よりも小さくする技術のことだ。

圧縮には2通りあり、可逆性圧縮と不可逆性圧縮がある。

可逆性圧縮は、あとで元の形に再現するように計算し圧縮をしているので、あとから元のままのデータを取り出すことができる。

不可逆性圧縮は、元ファイルの何かを犠牲にすることでファイル容量を抑える方法だ。有名なものだとJPEG画像圧縮は画像の劣化を伴い、元に戻すことができない。

アーカイブで扱われる圧縮は、可逆性圧縮で元のままのファイルに戻すことができる。

コンピュータにはせっかく圧縮という仕組みがあってファイルにまとめればファイル容量も少なくなるにもかかわらず、圧縮しないアーカイブという考え方があるのでしょうか?以下に理由を述べていきます。

1、圧縮するとファイルの構造が変わる。

前述したように、ファイルを圧縮するとは、数学的な操作によって、ファイルサイズを小さくするのですが、当然ながら圧縮されたファイルは元のデータとは全く違う形のファイルとなり、まれにではあるが、正常に圧縮されない場合もあります。

2、圧縮する際に、コンピューターに負担がかかる。

数学的な操作を実施しますので、元のファイルサイズによっては、膨大な計算量になる可能性もあります。

3、ファイルの状態ですでに圧縮されているものがある

例えば、画像ファイルでしたら、bmpファイルは、圧縮されていませんが、jpegやpngファイルに関しては、すでに圧縮されているので、圧縮する必要がありません。

このような理由があるため、圧縮しないアーカイブという操作があります。そのアーカイブを一個ずつのファイルにバラすことを「展開」といいます。


この記事が気に入ったらサポートをしてみませんか?