情報の圧縮について
別件の仕事入って昨夜中に完了できませんでした...。
コンピュータ上でデータを扱う際、圧縮と呼ばれる操作をすることが多い。
何でかと言えば昔のコンピュータではスペックの限界上1度に扱えるバイト数も保存できるバイト数も1ファイルで使用できるバイト数も2021年現在と比べて超貧弱だったからである。(2050年くらいには2021年が貧弱だったと言うことだろうけども。)
圧縮には可逆圧縮と非可逆圧縮が存在する。
可逆圧縮
元のデータが取り出せる圧縮。zip,gz,rar,lzh等が該当し、元のファイルを取り出すことを一般的には展開解凍という。
解凍はlhaplusというlzhを圧縮・解凍するソフトの影響で広がった様子。
この辺に関する小話としては、xlsx,docx,pptxなどのMSOffice2007以降のファイル形式は、実はzipファイルで、拡張子を書き換えて展開すると中で使ってる画像ファイルとかを取り出すことができます。 CPU速度やメモリ量が増えてきたので展開したファイルをメモリ上に配置、保存時に圧縮して保存と言う作業が可能になってきたわけですね。
現代で使うの?というと放置したログがサーバ容量圧迫したり、圧縮する際にアーカイブ化と言って1ファイルにすることも一緒にやることが多いので、複数ファイルを連携するときに1ファイルで済むからまとめたり、圧縮する際に暗号化できるのでセキュリティ保護のために暗号化したりで地味に使用頻度が高いです。
非可逆圧縮
画像や音声データにおいて、大多数の人にはわからんだろう劣化を許容してデータ量を下げる方法。
画像ではjpeg,png 音声ではmp3等が該当。フーリエ変換して高周波成分を除去するなどが有名。
→pngは可逆圧縮形式の画像形式だったのでここで名前出したのは吹越のミスです。
フリーソフトを使った音声劣化実験とかを追記します
コメント
匿名
手持ちのdocを試しにzipに変えて開いたらエラーになりました。よく見たら、2003形式でした。
Docs形式にしてzipで見れました。
しかしマイクロソフトはzip形式を採用した理由はどこら辺かご存知ならご教示お願いします。
saza
「解凍」はlzhの場合にのみ使われる用語となっておりzip等の他のアーカイブ形式では展開などを使うべきです(実態としては誤用として乱用されまくってますが)
なお記事中に「展開」を「てん解」と誤変換している箇所が有ります
ちゃとらん
微妙な表現になるかもしれませんが、PNGは、本来、可逆圧縮(圧縮ー展開を繰り返しても劣化しないという意味)で、特殊な処理を入れて圧縮率を高める手法として、非可逆圧縮する方法がある(TinyPNGとか)…という感じでしょうか?
マスター吹越
匿名様
コメントありがとうございます!
>しかしマイクロソフトはzip形式を採用した理由はどこら辺かご存知ならご教示お願いします。
すみません、詳細は知らないです。ただ、当時既にzipは可逆圧縮の世界標準になっていたと記憶しているので、その影響かなと考えています。
saza様
ご指摘ありがとうございます!Windowsでzipファイルを見るとデフォルトは「展開する」でした。laplus入れると「解凍する」表記になってました。
ちゃとらん様
コメントありがとうございます!これは吹越が完全にボケていて、pngが可逆圧縮であることを把握しないまま列挙したことによる完全な誤植です。
記載のほうを修正させていただきます。
ちゃとらん
> マイクロソフトはzip形式を採用した理由…
zip形式を採用したというより、「Open XML」形式を採用(マイクロソフトが国際標準規格として推進してきた)したから…で、この規格に複数の関連するファイルを一つのZIP形式にまとめるという仕組みが採用されていたから…と言う感じでしょうか?
Excelに特定の記号を記述して、このXMLファイルの文字列と置換すれば、Excelを雛形とした文書作成システムや帳票システムが作れます。一から生成するより文字列置換の方が、簡単です。
マスター吹越
ちゃとらん様
追加コメントありがとうございます!
>zip形式を採用したというより、「Open XML」形式を採用(マイクロソフトが国際標準規格として推進してきた)したから…で、この規格に複数の関連するファイルを一つのZIP形式にまとめるという仕組みが採用されていたから…と言う感じでしょうか?
その辺詳しくなくて推論自体立てられないんですよねぇ…すみません。