見出し
圧縮形式・ファイルの種類ごとの圧縮率を調査!
インターネットで大容量のファイルをやり取りする場合、よく「zip」などの圧縮ファイルを使うのではないかと思います。
ファイルを圧縮することで元のデータを保ちつつ容量を削減することができ、例えば元が「1GB」のファイルでも圧縮すれば「300MB」まで容量を減らせたりもするので、圧縮してファイルを送ることで転送に掛かる時間も節約することができて非常に便利です。
ただ、圧縮ファイルには有名な「zip」以外にも、「rar」や「7z」など様々な圧縮形式があり、いったいどの圧縮形式が最も圧縮効果(圧縮率)が高いのか分からないという方も多いと思います。
この記事では圧縮形式(zip、rar、7z、lzh、cab)と、圧縮を行うファイルの種類(動画ファイル、画像ファイル、PDF、テキスト等)について、それぞれ「どの圧縮形式でどのファイルを圧縮すると圧縮率が高いのか?」について検証を行っていきます。
圧縮形式の種類と特徴
では実際に圧縮率の検証結果を書く前に、今回検証を行う圧縮形式の種類(zip、rar、7z、lzh、cab)についての簡単な説明を行います。
zip形式についてはおそらく殆どの方がご存じだと思いますが、それ以外の圧縮形式については「なんとなく見たことがあるかも…」くらいの方も多いと思いますので、特徴などを簡単に解説していきます!
①zip形式
zip形式は、現在WindowsやMacOSの標準機能で使用できることもあり、圧縮ファイルの形式の中では最もメジャーな圧縮方式です。基本的に圧縮ファイルと言うと「zip形式」を思い浮かべる人も多いと思います。
ちなみにWindowsでのzipの標準対応については、1998年に発売されたWindows 98から標準機能でzipの圧縮・解凍が出来るようになりました。現在もWindowsやMacOSなら追加ソフトなしで扱えるほか、圧縮・解凍が出来るフリーソフトでもzipファイルはほぼ100%取り扱いが可能です。
ただ、OSで扱えるzip形式については「4GBを超えるファイルを圧縮するとエラーが起きる」や「ファイルの分割機能が無いため不便」などの課題があり、特に大容量のファイルを扱う場合は後述するrar形式や7z形式のほうが人気が高かったりします。
②rar形式
rar形式は、zip形式に次いで使用率の高い圧縮形式です。rar形式ではzip形式の弱点であった「4GBまでのファイルしか扱えない」と「ファイルの分割機能が無い」という2点の弱点を克服しており、大容量のファイルを小分けに分割して圧縮・保存することが可能です。
こうした特徴もあり、rar形式は特にインターネットで大容量のファイルをやり取りする場合に使用されることが多いです。特にインターネットのオンラインストレージにファイルをアップロードする場合などでは「1ファイル〇GBまで」という制限が付いていることも多いため、ファイルの分割が出来ればそうした容量制限も回避することが可能です。
③7z形式
7z形式は非常に高い圧縮率を誇ることが特徴の圧縮形式で、もともと「7-zip」という圧縮・解凍用のフリーソフトで使用するために開発されました。7z形式もrar形式と同様に、4GBを超えるファイルの圧縮や、ファイルの分割機能を備えています。
ただ、公開日である1999年には既に「当時発売されていたWindows 98にzip形式が標準搭載されていた」ことや「同様の機能を持つrar形式が普及していた」という背景があり、7z形式はそこまで普及することはありませんでした。
ただ、それから時代の流れとともに大容量のファイルをやり取りすることも多くなってきて、圧縮率の高い7z方式の評価も見直され、徐々に使用されることも増えてきています。
④lzh形式
lzh形式は日本で開発された圧縮ファイルの形式で、特に1990年代から2000年代にかけて多く利用されていた圧縮形式の一つです。
現在とは違い、当時はWindowsやMacOSの標準機能でのzip形式のサポートもなかったため、日本国内では「圧縮ファイルといえばlzh形式」と言われるほど有名でした。
ただ、少し前に「ウイルスに感染したlzhのファイルをセキュリティソフトでスキャンしても反応しないことがある」というセキュリティの問題が発覚して以降、現在は使われることが殆どないです。
いまだに古いサイト等からはlzhファイルで圧縮したファイルがダウンロードできることもありますが、上記のリスクがあるため、lzh形式の圧縮ファイルを解凍する際は注意が必要です。
⑤cab形式
cab形式はMicrosoftがWindwos向けに開発した圧縮形式です。WindowsのPCなら標準機能で圧縮・解凍がサポートされており、主にWindowsの更新プログラムや、Windows向けのアプリケーションのアップデートファイルの配信などに使用されることが多いです。
cab形式のメリットは解凍速度が非常に速いということです。特に上記のような更新プログラムの配布などの場合、配信するファイルが数GB~数十GBになることも多いです。そうした際に解凍速度が早ければアップデートの時間も短く済むため、大容量のファイルを配信するような作業にcab形式の使用は適しています。
ちなみに、先述したとおりWindowsのPCであれば標準機能でcab形式の圧縮・解凍が出来ますが、ユーザー同士のファイルのやり取りでcab形式が使われることは少ないです。
ファイルの種類ごとの圧縮率
ではここから実際に、ファイルの形式(textやpdfなど)と圧縮形式(zip形式やrar形式など)での圧縮率の違いについて調べていきます。
なお、圧縮に使用するソフトについては下記の通りです。現状一つのソフトですべての圧縮形式に対応しているソフトが無いため、得られる数字の精度は下がりますが複数の圧縮ソフトを使用して検証を行っていきます。
ソフトによっては、設定で圧縮率の変更ができる場合(標準、低圧縮、高圧縮など)や、アルゴリズムが指定できる場合(Deflate方式やLZMA方式、LZMA2方式等)などがあります。
上記については、公正を期すため基本的に効果が最大になった場合を記載しています。特に後者については、どのアルゴリズムで圧縮するかによっても圧縮率が特に大きく変わってくるので、各ソフトの初期設定の値では正確な計測が出来ないと判断したためです。
※なお、この記事では「圧縮してもサイズ削減の効果が殆どない画像ファイルや動画ファイル」などについても、効果が無いことを証明するために検証していきます。
検証① 圧縮済み画像ファイル(.png)
圧縮前サイズ | 圧縮後サイズ | 圧縮率 | |
zip形式 | 100MB | 98.7MB | 1% |
rar形式 | 100MB | 98.8MB | 1% |
7z形式 | 100MB | 97.7MB | 2% |
lzh形式 | 100MB | 98.8MB | 1% |
cab方式 | 100MB | 98.7MB | 1% |
こちらの実験では、ひとつ1MB程度のpngファイルを100枚用意して圧縮を行いました。
画像ファイルとして有名なpngファイルは既に圧縮されているファイル形式のため、再度圧縮を行ってもほとんど効果は無かったです。
それぞれ「圧縮率(低圧縮、高圧縮)」や「アルゴリズム(DeflateやLZMA)」を色々変更して試してみましたが、サイズがせいぜい2%程度容量を圧縮できるくらいでした。
また、上記には記載していませんがpng以外にもjpegやjpgも同様です。圧縮して容量削減の効果があるのはbmpやtiff等の非圧縮画像ファイルのみです。
画像ファイルとしてよく使われるpngやjpegなどは、既に圧縮された形式でデータが保存されているので、それを更に圧縮しても容量削減の効果は殆どないです!
検証② 圧縮済み動画ファイル(.mp4)
圧縮前サイズ | 圧縮後サイズ | 圧縮率 | |
zip形式 | 100MB | 99.1MB | 1% |
rar形式 | 100MB | 99.1MB | 1% |
7z形式 | 100MB | 99.1MB | 1% |
lzh形式 | 100MB | 99.7MB | 0% |
cab方式 | 100MB | 99.1MB | 1% |
次にmp4の動画ファイルについてですが、こちらは20MBの動画を5本用意して圧縮を行いました。
mp4ファイルについては、先ほどのpngファイルと同じく既に圧縮されたデータ形式のため、ファイルの圧縮を行ってもほとんど効果はありませんでした。
こちらも先ほどと同じで、mp4は圧縮済みの動画データなので再度圧縮しても無意味です!
検証③ 非圧縮画像ファイル(.bmp)
圧縮前サイズ | 圧縮後サイズ | 圧縮率 | |
zip形式 | 100MB | 22.1MB | 22% |
rar形式 | 100MB | 22.5MB | 23% |
7z形式 | 100MB | 20.8MB | 21% |
lzh形式 | 100MB | 23.8MB | 24% |
cab方式 | 100MB | 22.7MB | 23% |
では次に、非圧縮状態で保存している画像ファイル(bmp)を圧縮したらどうなるか試してみます。bmpファイルは非圧縮のため、基本的に解像度と保存形式が同じであれば違う画像でも同じ容量になります。今回は5MB×20個のファイルを用意して検証を行いました。
どの圧縮方式でも非常に大きな圧縮効果が出ていますが、特に7z形式、zip形式での圧縮率が高かったです。
ただ、画像ファイルの圧縮は画像によってかなり変わります。例えば白背景が多い画像などでは圧縮率が非常に高くなりますが、反対に風景画像などのような同色のパターンが少ない画像だと圧縮率は低くなります。
こちらは「非圧縮」状態の画像ファイルを圧縮した場合の効果です。先ほどのpngと違い、非圧縮のbmpファイルを圧縮するとちゃんと効果が出るのが分かると思います。
検証④ 非圧縮動画ファイル(.avi)
圧縮前サイズ | 圧縮後サイズ | 圧縮率 | |
zip形式 | 1GB | 152MB | 15% |
rar形式 | 1GB | 167MB | 17% |
7z形式 | 1GB | 143MB | 14% |
lzh形式 | 1GB | 503MB | 50% |
cab方式 | 1GB | 209MB | 21% |
こちらは非圧縮の状態の動画ファイル(AVI)を圧縮した場合の圧縮率です。この検証では、OBSで画面録画したaviファイルを用いて圧縮率の測定を行っています。
検証した中で圧縮率が高かったのは7z形式とzip形式で、lzh形式については半分程度しか圧縮できませんでした。
ちなみに余談ですが、非圧縮の動画ファイルを保存する場合は、撮影時間が1分程度の動画でも数GBもの容量になります。通常のmp4だとフルHDの画質でも1時間当たり2GBくらいなので、どれだけ非圧縮状態の動画の容量が大きのかが分かります。
こちらも「非圧縮」状態の動画ファイルを圧縮した検証結果です。先ほどのbmpファイルと同じで、非圧縮状態の動画ファイルなら圧縮効果がちゃんと出ます。
検証⑤ PDFファイル(.pdf)
圧縮前サイズ | 圧縮後サイズ | 圧縮率 | |
zip形式 | 100MB | 47.2 MB | 47% |
rar形式 | 100MB | 43.2MB | 43% |
7z形式 | 100MB | 44.5MB | 45% |
lzh形式 | 100MB | 48.6MB | 49% |
cab形式 | 100MB | 47.1MB | 47% |
pdfファイルは、文字と画像が半々くらいのものを使用して検証を行いました。検証に使用したpdfファイルについては、ひとつのファイルで1MB~20MBくらいのものを計15ファイルほど混ぜて圧縮を行っています。
結果としては、跳びぬけて効果が高い圧縮形式は無かったですが、rar形式や7z形式の圧縮効果がこの中だと上位でした。
こちらはよく使うことも多いPDFデータですね。こちらについてはrar形式の圧縮効果が一番高かったですが、全体的にどの圧縮形式でもそこまで効果に差は無さそうでした。
検証⑥ テキストファイル(txt)
圧縮前サイズ | 圧縮後サイズ | 圧縮率 | |
zip形式 | 100MB | 26.0MB | 26% |
rar形式 | 100MB | 26.2MB | 26% |
7z形式 | 100MB | 21.6MB | 22% |
lzh形式 | 100MB | 42.8MB | 43% |
cab形式 | 100MB | 27.1MB | 27% |
次はtxt形式のファイルを圧縮した場合の圧縮率です。検証に使用したテキストファイルは、中身が全てランダムな英数字で構成された1MBのtxtファイル×100個を用意してテストを行いました。
結果は7z形式が最も圧縮率が高く、次いでzip形式とrar形式が同じ程度でした。反対にlzh形式はアルゴリズムが古いこともあるせいか、他と比べて圧縮率はそこまで良くなかったです。
テキストファイルについては7z方式がダントツで圧縮率が良いですね。反対にlzh形式についてはランダムな文字列が苦手なのか、圧縮率はそこまで伸びないようです。
結論:圧縮率が最も高いのは7z
ということで、ここまでで「動画ファイル、画像ファイル、PDFファイル、テキストファイル」の4種類について、各圧縮形式での圧縮率の調査を行いました。
検証結果として、最も圧縮効果が高かったのは7zでした。反対に、最も圧縮率が低かったのはlzh形式でした。
圧縮率 | ||||
画像ファイル(bmp) | 動画ファイル(AVI) | PDFファイル | テキストファイル | |
zip形式 | 22% | 15% | 47% | 26% |
rar形式 | 23% | 17% | 43% | 26% |
7z形式 | 21% | 14% | 45% | 22% |
lzh形式 | 24% | 50% | 49% | 43% |
cab形式 | 23% | 21% | 47% | 27% |
そのため、少しでも圧縮率の高い圧縮形式を使用したいのであれば7z形式を選ぶのが良さそうですが、zip形式やrar形式もかなり圧縮率が高いため、zip・rar・7zならどれを選んでもそこまで大差なさそうです。