見出し画像

データの圧縮と解凍とはなにか?

おはようございます。またはこんにちは。もしくはこんばんわ。マゲっちSCと申します。10月に入りました。今年もあと2ヶ月弱となりましたね。そして本日2021年10月5日はWindows11が正式リリースとなる日です。動作条件を満たしている方に関しては本日から無料でダウンロード・インストールが可能になります。Windows11に関してはこちらでお話させていただいておりますので、ご興味がありましたらぜひお読みください。

さて、前回のブログでは拡張子についてお話させていただきました。加えてファイルシステムのお話もさせていただきました。コンピュータ上では実に様々なデータを扱っています。文書や画像に動画や音声、中にはOSやソフトを正常に動かすための仕掛けが入ったデータもあります。それらのデータを扱うための手段として拡張子を使ってデータの役割を分けているということをご理解いただければ幸いです。

データの容量について

では今回はデータの種類ではなく容量に関するお話になります。過去に簡単にお話させていただいていますが、現在のコンピュータ上で扱うデータの容量は非常に肥大化しています。例えばWindows10が登場したのは2015年ですが、そのときに家電量販店などで販売されているビジネス向けPCに搭載されているメインメモリの容量は価格的にローエンドモデルでは2GBという製品もあります。ハイエンドモデルであれば8GBです。ミドルエンドモデルでは4GBでした。Windows10のシステム要件を見ると必要なメモリ容量は2GBとなっていますが、PCはOSが動いている状態でその上でさらに別のワープロソフトや表計算ソフト、ゲームソフトや動画編集ソフトが動作し、さらにメモリ上に音声や画像、テキストファイルなどを載せます。テキストファイル程度であればあまり問題はないのですが、高画質な画像や高音質な音声などのファイルはそれなりに容量が伴います。そのためWindows10のPCを買うならメモリは最低でも8GBはあったほうがいいというのが当時の常識だったわけです。SSDの容量も当時は128GBほどで、余裕があれば256GBあると充分であり、あとは必要に応じて外部HDDなどをつなげるという形で記録容量を増やすのが主流であったと思います。クラウドサービスを使用するのもいいですね。

しかし2021年現在ではどうなっているのかというと、Windows10のPCを扱うのであればメモリは16GBは必須です。ビジネス向けでももう8GBでは厳しいということを言われ始めています。またSSDの容量も最低でも500GBくらい、余裕があれば1TBはあったほうがいいというふうに言われ始めています。Windows10のシステム要件は特に変化があるわけではありません。しかしながらバージョンアップによって徐々にメモリの使用容量が多くなっているのは事実です。試しにネットで検索してみましたが、Windows10の最新バージョンである21H1のシステム要件の詳細は出てきませんでした。が、メモリクリーナーやタスクマネージャーを見るとだいたい5.8GBくらいメモリを使用しているという結果が得られました。現在私がブログを書いている状況で立ち上げているソフトは基本的にGoogle ChromeとSteamで、あとはユーティリティソフトのSSD監視ソフトにゲームブースター、マルウェア監視ソフトにメモリクリーナー程度です。Chromeのタブ数は13個なのでこれがおそらく一番メモリを専有しているはずです。

基本的にユーティリティソフトはあまりメモリ容量を専有しないはずなのですが(とはいっても無駄な常駐ソフトはないほうがいいです)、ゲームを動かしたりフォトレタッチソフトを起動させているわけでもないのに約5GBもメモリを使用していることになります。メモリクリーニングは定期的に行っているにもかかわらず平均で約5GBほどしよいうしているわけです。Windows10のバージョンが上がるにつれて新機能が追加されていたり、その他のソフトウェアもバージョンが上がっているわけですからメモリの容量をそれなりに消費することは想像に難くないのですが、それでもこの程度で約6GBは大きいと思います。ウェブページ上にある画像や動画ファイルが高画質になっていて容量をそれなりに消費していることもあるのでしょう。私の環境はメモリは16GBなのでまだ10GBほど余裕がありますが、ほとんどの方はメモリ8GBの環境の方が多いかと思いますので、この状況で表計算ソフトでも起動させ作業しようものなら8GBのメモリのほとんどを使用してしまうと思います。

ネット回線の容量について

続いてネット回線の容量に関して簡単にお話します。現在ほとんどの回線事業者のネット回線容量は契約するプランによりますが約1Gbpsとなっていると思います。あくまでもベストエフォート型なので常に1Gbps出ているわけではありません。また、お気をつけいただきたいのがネット回線上でのデータの容量を表す単位はバイト単位ではなくビット単位です。例えば1GBと記述した場合は1ギガバイトですが1Gbと記述した場合は1ギガビットです。残りのpsはパーセカンド。つまり「1秒間に」という意味です。ただビット単位で容量を把握するのは難しいため、計算してバイトに直してみます。1バイトは8ビットですのでビットをバイトに変換する場合はバイト数を8で割ります。1Gbを換算すると125MBとなります。1Gbpsと聞くとすごく大容量に聞こえますが実際の容量はそう多いわけではありません。実際のネットの速度は時間帯やISPの規模に依る部分が多いため、だいたい300Mbps程度しか出ていません。つまりだいたい37.5MBくらいの容量を受信しています。スーパーファミコンの大容量ROMと謳われて販売されているゲームソフト1本分くらいの容量ですね。ベストエフォート型の回線デザインとしては送信はもっと遅く、受信の約3分の1程度の速度に抑えられていることが多いです。受信速度が300Mbpsであれば送信速度はだいたい100Mbpsです。つまり送信の容量は12MBくらいです。

データ圧縮の恩恵とは

このようにPC側のメインメモリの使用量とネット回線上のデータ転送に使用される容量を見てみるとあまり余裕がないというのがざっくりとですがおわかりいただけたと思います。メモリは数千円程度で簡単に増設できますが、ネット回線に関してはプラン変更すると光ファイバーを新しくする必要やONUを大容量通信に対応したものに変更する必要が出て来ることもありなかなか面倒です。もちろん作業時には回線業者が必要ですし、皆さんも回線業者の作業に立ち会う必要があります。それに昔のPC環境では扱えるデータ容量は今よりもかなり少なかったわけです。メインメモリ容量も少なくネット回線も電話回線を代用していたため、送受信できるデータ容量はかなり少ない状態でした。しかしソフトウェアは記憶媒体に入れて使うものです。そして記憶媒体の容量は昔から大きいものでした。例えば今は1TBのSSDがありますがメモリの容量はたったの16GBです。昔もその比率はほぼ変化がなかったですね。リムーバブルディスクであるフロッピーディスクも容量は1.44MB程度でした。データの大容量化に伴いフロッピーディスクで扱えるデータがだんだん少なくなったためMOなどの大容量なリムーバブルディスクも出ては来ましたがアクセス速度やデータ容量を考えるとソフトをインストールして呼び出すメインの補助記憶装置としては実用的ではありませんでした。

そこである一定のルールに基づいてデータの容量を少なくしていこうという考え方が出てきます。データの容量は少なくなりますがもともとのデータを削るというわけではありません。その作業をデータの圧縮といいます。どのようなルールなのかということですが。例えば50音順のひらがなのデータがあったとします。まずひらがなをローマ字に置き換えます。すると「あかさたなはまやらわ」に関しては各子音にAをつけて表現することができます。要するに子音の種類がわかれば「この文字の意味はこれだ」ということが判別できるわけです。子音なしは「あ」に変換できます。これを利用すると「A、KA、SA、TA、NA、HA、MA、YA、RA、WA」は「A、K、S、T、N、H、M、Y、R、W」となりデータの容量が約半分になりますね。これはあくまでも一例なので画像や音声などすべてにこのルールを適用する事はできません。データの圧縮とはざっくりいうとこういう感じで行われています。こうしでデータを圧縮して容量を抑えることでネット回線を通してもできるだけ短時間でダウンロードできるようにしているわけです。

データの解凍とは

データの圧縮はだいたいおわかりいただけたかと思います。しかし圧縮したデータを送られてきてもそれをもとに戻せなければ意味がありません。圧縮されたデータをもとに戻す手法を解凍といいます。なぜ圧縮の逆を表す言葉が解凍なのでしょうか?これは私の勝手な推測ですが、圧縮の対義語がうまくハマらなかったからではないかと思います。日本語で圧縮の対義語を調べると「膨張」と出てきます。しかし、データの膨張という響きはあまりよろしくありません。データの膨張という表現は補助記憶装置の容量すべてを使用してしまうかのような誤解を与えかねません。そこで圧縮したデータを冷凍した食品に見立てて「解凍」と表現したのではないかと思います。解凍であればなんとなくですが、そのままでは使えないものを使える状態にするというニュアンスが伝わる気がします。個人的には微妙なところだとは思いますが。

解凍はデータの圧縮形式のルールに基づいて行われます。先ほどの例ではAはそのままで、その他の子音のみのデータに関しては母音を参照してその母音を追加していきます。そして最後にローマ字をひらがなに変換するともとの「あかさたなはまやらわ」に戻ります。これが解凍の手順の考え方です。しかしデータの圧縮方法は多岐にわたり、様々なルールが存在しているのが現状です。そこでどの圧縮形式であるのかを拡張子を使用して種類分けをしています。現在のPC環境であればソフトさえあれば圧縮も解凍も簡単にできます。ただ、解凍に関してはWindowsにその機能がすでに備わっているため、データの圧縮をしないというのであれば敢えてソフトを導入する必要はありませんが、すべての圧縮形式に対応しているというわけでもないため、私は「+Lhaca」や「7-Zip」を導入しています。

まとめ

このようにネット回線での転送速度を少しでも早くしたり、メモリの容量をあまり消費しない方法を模索する1つの方法としてデータの圧縮があり、そのデータをもとに戻すために解凍という方法が存在しています。現在ダウンロードで入手できるソフトのほとんどは何らかの形式で圧縮されていて、インストールする際に自動で解凍されインストールされていると思います。また、解凍後は自動でフォルダが作成されデータはその中に格納されるので実データをそのままダウンロードするよりも圧縮して送ったほうがいろいろと利便性が高いというわけですね。では次回ですがネットワークサービスは大きく分けて2つのモデルがあります。クライアントサーバシステムとP2P(ピアツーピア)と呼ばれるものですが皆さんはこの2つの違いわかりますか?ご興味がありましたらまたお立ち寄りください。それでは失礼いたします。

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