Make your own free website on Tripod.com


圧縮ファイルのしくみ




皆さんは日ごろ、ZIP、LZH、もしかしたらRARなどを

つかっているかもしれません。

ファイルの圧縮技術の進歩によって私たちの、インターネット生活(?)は

ささえられてます。


そもそも、圧縮とはなんのためにあるのでしょうか?

HDDの節約?それも一理ありますが違います。

ファイルを小さくすることによって、インターネット間の

ファイル送信の手助けをしようというものなのです。

海に旅行するときは浮き輪やボールを膨らまして

いく人は絶対にいませんね。それと同様に、

「小さくできるものは小さくして楽をしよう」という

ものだとおもいます。



圧縮のしくみ

ではどのようにデータを圧縮させているのでしょうか。

まず圧縮には大きく分けて二つに分類されます。

一つは非可逆圧縮もう一つは可逆圧縮といいます

可逆圧縮というのはZIP、LZHなどの「解凍すれば元のデータに戻る」

という形です。

非可逆圧縮というのはその反対で、「元のデータと大体おなじ」(笑)という

圧縮形式です。なんだそれじゃだめじゃないか、とおっしゃるかもしれませんが

これは、音楽、画像に最適なのです。人間に分からない程度、わかっても

画質(音質)の低下ぐらいで、なんの支障もありません。

しかし、EXEファイルはどうでしょう。「大体同じプログラム」なんて

動くわけないですよね。というわけで、非可逆圧縮は、画像、音声、動画など

に多くつかわれています。

プログラム系
ZIP、LZH、RAR
音楽、音声
MP3
画像
JPEG(完全にもできる)、GIF
動画
MPEG4



可逆圧縮のしくみ

完全な姿でないと動かないプログラムを

どうやって小さくするのでしょう。

それは、符号化というものをおこなっているから

です。符号化とは、一番でてくる文字列を「0」とおき、

一番でてこない文字列を「1111」とおきかえる作業

を指します。

ABCDE PK ABCDE KG ABCDE PK ABCDE
これを
ABCDE=0
PK=10
KG=1111


すごいわかりにくくてすいません^^;

このような符号化をおこない、ファイルの圧縮をおこなうわけです

これはハフマン法ととばれておりLZHなどに利用されています。

データの圧縮はハフマン法だけではありません。

数学的に圧縮するランレングス法というのもあります

例えばおおげさですがA+A+A+A+A+A+A+A+A+A+A.......とAを百回かける

式があったとします。皆さんはどうしますか?

もちろん

A*100ですよね。このようにAAAAAとなっているデータを

a*5のように符号化するのがランレングス法と呼ばれるものです。

AAA BBBBBBB CCCCCC DD
これを
a*3 b*7 c*6 d*2
とおきます


この「D」の場合なんですがこれがいっぱいあった場合

増えるようが気がするのはわたしだけでしょうか(爆

当然のことながら、ハフマン法もランレングス法も、符号化された

ままでは動かせません。

つまり解凍というのはある規則性を持つ符号を

もとの文字に戻すことをいいます。



非可逆圧縮のしくみ

可逆圧縮の仕組みは分かりましたか(苦笑)

今度は音声、動画、画像の圧縮について簡単な説明をします。


*音声圧縮のしくみ*

MP3を例にとってみましょう。

音楽をWAVファイルで保存するとどれくらいになるでしょう。

30Mは普通にいってしまいますよね(笑

それを大体10分の1にしてくれるのがMP3です

しかも音の劣化がないのです。

それではどうやって圧縮をしているのでしょうか

MP3は人間の耳に聞こえない音の部分を

切り落としているのです。そのため10分の1という

高圧縮率を実現できたわけです。しかしMP3はMP3

専門のプレイヤーがないとうごきません。


*画像圧縮のしくみ*

画像の圧縮形式といえばJPEGですよね

JPEGは写真などによく使われている圧縮形式で

先ほどのランレングス法とよく似ています。

画像には塗りつぶしされていたりすると

そこのデータ部分には同じ色でいっぱいになっているはずです。

JPEGは赤赤赤赤・・・と100個並んでいるところを

赤を100というように変換させます。

これがランレングス法とよく似ているところだと思います。


*動画圧縮のしくみ*

これ、難しいです(爆

MPEG4というのを例にとって

説明します。

動画は静止画像で構成されています。

そのため一秒により多くの画像をいれることによって

滑らかな動画を見ることが可能です。ということは

その一秒のなかの画像はあまり動きはないという

ことです。そのためMPEGでは、全体ではなく一コマ一コマ

の画像の違いを保存するものだそうです。


written by 楓

Make your own free website on Tripod.com