世の中のデジタルな画像や動画、音楽のデータは大体圧縮されています!
なぜかと言うと圧縮した方がデータサイズが小さくなるので、保存や転送、処理の面でメリットが出ます。
その圧縮方法にはいろいろあるのですが、今回はシンプルな圧縮方法である「ランレングス符号化」に関して解説します!
データ圧縮とは?
まずはデータの圧縮に関して簡単に説明します。
冒頭でも書きましたが、「データを圧縮する」ことで、以下のようなメリットがあります。
データ圧縮のメリット
- 保存サイズが小さくなるので、保管や持ち運びが便利になる
- データをインターネットやWiFi、Bluetoothなどで転送する時のスピードが速くなる
- Webブラウザで画像や動画を表示させたり、ダウンロードするときに処理が速くなる
ということで、データ圧縮をするメリットは大きいので、様々な場面で使われています。
そして、データを圧縮する方式には大きく二つありますので、続いてそれを解説します。
可逆圧縮方式と非可逆圧縮方式
圧縮には「可逆圧縮」と「非可逆圧縮」というものがあります。
「可逆」とは「元に戻り得ること」なので、それぞれの意味は以下のようになります。
可逆と非可逆の違い
- 可逆圧縮:データを圧縮して小さいサイズにするが、元に戻すことが可能。Zipファイルなどの解凍して元のファイルを取り出したりする時に利用できる。
- 非可逆圧縮:データを圧縮することで、可逆圧縮より小さいサイズにすることができるが、一度圧縮すると元に戻せない。画像や動画、音楽などのメディアファイルの圧縮に利用できる。(jpg、mpeg、mp3など)
用途によって使い分けていますね。
例えば画像ファイルにおいて「①青、②ちょっと薄い青、③ちょっと濃い青」があった場合、「ちょっとの②、③」は「①の青」に見なしてしまうことで、同じ色としてデータ上は扱えるので、圧縮率を高めることができます。
では、本題のランレングス符号化の説明にいっていましょう。
ランレングス符号化とは?
ランレングス符号化の「連長圧縮」と言われております。
同じデータが繰り返されるときに、そのデータを「データの繰り返した回数」として表現することで、データの長さを短くするための圧縮方式
下の図を見て頂くと分かり易いかと思いますが、データが連続していると圧縮率が高くなりますね。
なお、ランレングス符号化は「可逆圧縮」なので、元のデータに戻すことができます。
この符号化は、画像データの圧縮で用いられており、最近あまり見かけないですが「FAX」でよく使われています。FAXは白と黒以外にほとんど情報がないので、高い圧縮率が期待できるためです。
BMP(ビットマップ)と呼ばれる画像形式においても一部使われているようですね。
メリット
ランレングス符号化のメリットは「単純(シンプル)」なので、処理が簡単になります。
また、可逆式なので元に戻せることもメリットの一つと言えます。
下の図のように、白と黒だけで表現する画像の圧縮などではメリットが出ますね。
デメリット
ランレングス符号化のデメリットもあります。
それは、「データが連続していない時」です。
例えば、「ABCABC」など同じ文字が連続していないと「1A1B1C1A1B1C」となってしまい、元の文字数より多くなってしまいます。
ただし、このような事態を防ぐための手法がいくつか用意されています(今回は割愛します)。
まとめ
今回はランレングス符号化の仕組みとメリット、デメリットに関して解説してきました。
ランレングス符号化のまとめ
- データを圧縮することで、サイズが小さくなるのでいろいろなメリットがある
- 圧縮方式には元に戻せる「可逆圧縮」と元に戻せない「非可逆圧縮」があり、用途に応じて使い分けている
- ランレングス符号化はシンプルな可逆圧縮でFAXなどで使われている
もちろん、非圧縮が綺麗だったり、音質が良かったりしますが、人間がそのクオリティを必要としているか、と言えばそうでもなかったりするので圧縮しても良い、と割り切っていますね。
圧縮方式には「ハフマン符号化」も有名だったりするので、調べてみると良いかと思います。
以上です!