アウトプットの部屋

エンジニアになるためのアウトプット

コンピュータ・サイエンス④

ファイルの圧縮

ファイルは、バイト・データの集合体。 LZHはLHAなどで圧縮されたファイルの拡張子。

ファイルの圧縮には2つの方法がある。

1.ランレングス法

AAABBCCCDDDDD(13ビット) => A3B2C3D5(8ビット)

このように「データ×繰り返し回数」で表す方法をランレングス法という。 画像ファイルやEXEファイル(クリックすると自動でプログラムが起動するWindowsのファイル)には向いているが、文書ファイルには向いてない。

2.ハフマン法

AAAAAAAABBCCDE =>Aが一番多いからAは1ビット、DとEは一番少ないからそれぞれ3ビットにしよう。

このように圧縮対象となるファイルごとに最適な符号体系を構築し、それを基に圧縮を行う方法をハフマン法という。

符号体系の決め方は、ハフマン木というものを使う。

可逆圧縮非可逆圧縮

可逆圧縮とは、圧縮したファイルを圧縮前の状態に戻せるファイル。 非可逆圧縮とは、圧縮したファイルを圧縮前の状態に戻せないファイル。

文章ファイルなどはもとに戻せないと文字や数値が読めなくなってしまうが、画像ファイルはもとに戻せなくてもある程度の画質があれば問題ない。

GIFは可逆圧縮BMP,JPEG非可逆圧縮