圧縮と解凍について、改めて学んでみませんか?

背景画像

圧縮の種類

圧縮したファイルを解凍しても、元のサイズに戻らない場合もある

圧縮されたファイルを解凍するには所定の解凍ソフト、先述でも散々述べたLhazといった解凍ソフトを用いて展開することになる。それですべてが万事解決となるのだが、中には圧縮されたファイルの中には例え展開しても元に戻るものと、戻らないのものの二通り存在することをご存知だろうか。これはどういうことかというと、圧縮に用いるシステム上の手段によってこのようなことになるからだ。ではその圧縮手段としてどのような物があるのかというと、『可逆圧縮』と『非可逆圧縮』の二つの分けることが出来る。どのように違うのかというと簡潔に言えば、

  • 可逆圧縮とは:『統計的冗長性』を特定し、それらを除去することでビット数を削除しながら圧縮する
  • 非可逆圧縮とは:圧縮するデータの中で不必要な情報を解く停止し、削除することで圧縮する

という風になっている。統計的冗長性とはどういう意味なのかという所も説明しなければならないところもあるが、そこを話すとややこしくなるので割愛するとして、要はこの可逆圧縮と非可逆圧縮の違いとしては、本来圧縮されるデータが元のままかどうか、ということだけ覚えていればいい。非可逆圧縮の場合には元々のデータを圧縮するにしても、明らかにデータを構成している中で余分とされているものは全てカットすることで、最小限の重さで送信することが出来るのがこの圧縮の特徴だ。

簡単に話してもさすがに理解できない部分は多いので、ここでは解凍してもファイルによっては元のまま展開されるとは限らない圧縮手段について話をしていこう。

可逆性圧縮とは

ここからは圧縮として用いられる手段について話をしていこう。恐らくはごく一般的な圧縮になるだろう『可逆圧縮』についてだが、圧縮しようとするファイルを統計的冗長性、つまり本来そのデータを構成する最低限のビット数にまで削除しながらも、本来のデータすべてが損なわれることなく重さを軽くすることが出来る手段の事を指している。この手段の場合による圧縮に関してはその後解凍しても元の大きさに復元されるのも特徴だ、不必要な情報など持ちえていないといったような特殊なファイルならこの方法を用いる他はないだろう。

だがどうして本来あったデータを構成して行くのに必要と思われたものが、ある程度削除する事が可能なのかというのは何処となく沸いてくる疑問でもある。ではその理由について答えるとするなら、実世界で構成されたデータの多くは、本当は余分なデータばかりで構成されている事が多く、そのためこの可逆圧縮を用いる際にはそうした余分なデータを切り取っても情報量に影響を及ぼす事無く、最低限の大きさで送信することが出来るようになるのが、この圧縮の特徴だ。そういわれると普段から何かしら作業をしても見た目的にはそれほど余分な部分はないと思っても、システム上では無駄なものが乱立しているというのだ。プログラマーとしての腕が十分に備わっているならそうした無駄を省くことも出来るかもしれないが、見えない部分ではそうした余分なところは全てのデータに共通しているというのは面白いところでもある。文章のみで構成されているのもそうだが、ここでは一般的な例としては画像などのファイルが含まれているものに該当していたりもしている。

非可逆圧縮とは

では逆に、圧縮されたデータを展開してもすべては復元されない『非可逆圧縮』についての話をしていこう。元々存在しているシステム上のデータには、我々が気付かない部分であまりに無駄なデータが構成されているときがある。先ほども話したとおり専門家ならそうした無駄を省いて構築することも出来るかもしれないが、そんなところにまで気付いて作成しているプロも中々いないと思う。そうした意識されていない部分でのデータはこうして語ってみると、要らないだろうと思うのは至極当然の心理でもある。そうしたデータを構成する中で明らかにこれはいらないだろうというものを特定して、削除することで完全ではないにしても、必要最低限のデータだけを送信できるようにすることにするのが、この非可逆圧縮の特徴だ。

削除するのはあまりにも不必要と思われるもののみとなっているわけだが、いらないだろうとシステム上で判断された範囲が広ければそれだけ削除され、規模が大きければ大きいほど元あったデータとは違っているというのに、見ただけで分かる場合もあるという。それはそれで本当に削除していいものかどうか、という問題もあるがシステム場で可決された場合には仕方がないと認めるしかないのかもしれない。損なわれてしまって不便だと感じるなら、圧縮方法をそもそも変えるしか他ないだろう。そのため、この非可逆圧縮として用いられるデータの種類には、音声や映像、画像といったものにおいてこの圧縮は主に利用されることになる。

送信するファイルの中身で使い分ける

この可逆圧縮と非可逆圧縮の違いについては上述の通りとなっている、そして実際にファイルを圧縮することになったらどういったファイルを圧縮するのかというのは、可逆圧縮については『画像などを含まない文章ファイル』が、そして『画像や音声などが取り込まれている映像なども含むファイル』については非可逆圧縮が適用となっている。圧縮の種類と用途、そしてどのようなファイルを圧縮したいのかを考えれば、このファイルはこうして圧縮されるのかと理解出来る。送信した後にしても、自分で加工する前と後ではどこか映像などが違いがあるという少し異なる点が出てきたら、圧縮工程によるシステム上の無駄を削除した結果として、このようになったと分析すれば良いからだ。圧についてもこうした知識を持っていれば困ることはない、というより圧縮する前と後ではデータの中身は異なっている場合がある事を認識出来ていれば、ある程度容認することが出来るので困ることはないだろう。