7-Zip ファイル圧縮の基礎と現場での活用法 日本発祥のLZHから最新の圧縮率比較まで

ec 1388 final ユーティリティ

はじめに 7-Zipとは

7-Zipは、高い圧縮率を誇るオープンソースのファイルアーカイバです。独自の7z形式をはじめ、ZIP、GZIP、BZIP2、TARなど多数のアーカイブ形式に対応しています。完全無料(LGPLライセンス)で、商用利用も制限なく可能です。

「ファイル圧縮」と一口に言っても、その仕組みや歴史を知ると、ツール選びの解像度が上がります。本記事では、ファイル圧縮の基礎知識から、日本発祥の圧縮形式、圧縮率の最新比較までを解説し、7-Zipの活用法を紹介します。

ファイル圧縮とは データを小さくする仕組み

ファイル圧縮とは、データの中の「冗長な部分」(重複・偏り)を見つけて、元に戻せる形で削減する技術です。元に戻せる圧縮を「可逆圧縮」、元に戻せない圧縮を「非可逆圧縮」と呼びます。ファイルやプログラムの圧縮は可逆圧縮です。

代表的な圧縮の原理は3つあります。

ランレングス法(連長圧縮)

同じデータが連続している部分に注目する方法です。例えば「aaaaaaaaaabbbbbbb」というデータは「a10b7」のように「文字+連続数」で表せます。同じ値が連続する画像やFAXデータなどに効果的です。

ハフマン符号化

出現頻度の高い文字に短い符号、低い文字に長い符号を割り当てる方法です。モールス信号と同じ発想で、よく出る文字ほど短く表現します。テキストデータの圧縮に効果的です。

辞書式圧縮(LZ77/LZ78)

1977年にレンペル(Lempel)とジフ(Ziv)が考案した方式で、前に出てきたデータ列を「参照位置と長さ」で表現します。同じパターンが繰り返し出現するデータを効率よく圧縮できます。現在使われている圧縮方式の多くは、このLZ法の改良版です。

具体的には、ZIPやgzipで使われる「Deflate」はLZ77+ハフマン符号化の組み合わせ、7-Zipの「LZMA」はLZ77を改良しRange Coder(特許を回避した算術符号)を組み合わせた方式です。

日本発祥の圧縮形式 LZH(LHA)

「日本発祥のファイル圧縮はあるの?」という質問の答えは、あります。LZH(.lzh)です。

LZHは、1988年に吉崎栄泰氏(本業は内科医)が開発したフリーソフト「LHA」で採用された圧縮方式です。主にMS-DOS環境で広く普及し、1990年代の日本のパソコン通信時代には、ファイルのやり取りの事実上の標準形式でした。

現在は7-ZipやZIPが主流になりましたが、LZHは日本のデジタル文化の歴史に残る重要な圧縮形式です。仕様が公開されていたため、多くのソフトウェアが対応しました。

7-Zipは今一番圧縮率が高いのか

結論から言うと、「7z形式は最高クラスの圧縮率だが、絶対的に一番とは言えない」のが実情です。圧縮率はデータの種類に大きく依存しますが、一般的な傾向として以下のような比較になります。

形式 圧縮率 圧縮速度 展開速度 特徴
7z(LZMA2) 高い 遅い 中程度 最高クラスの圧縮率。暗号化対応
xz(LZMA2) 高い 遅い 中程度 Linuxパッケージで多用
bzip2 高い 遅い 遅い 旧世代の高圧縮
zstd 中〜高 速い 最速 Facebook開発。速度と圧縮率のバランスが最強
ZIP / gzip 中程度 速い 速い 互換性の王者。どこでも使える

ある検証(サーバーワークスの比較)では、圧縮率はxz≒bzip2>7z>Brotli>zstd>ZIP/gzipという結果でした。7zは最高クラスですが、xzとほぼ同等です。

一方、Facebookが開発したzstdは、圧縮率が7zに迫りながら圧縮・展開速度が桁違いに速い「現代の本命」とも言える存在です。ただしWindows環境での扱いやすさや暗号化機能、GUIの使いやすさを考えると、総合力では7-Zipが現場の定番として優れています

Linuxではtar.gzが多いのはなぜか

Linuxでよく見かける「tar.gz」は、2つの処理の組み合わせです。

  • tar:複数のファイルを1つに「まとめる」(アーカイブ)だけで、圧縮はしない
  • gz:gzipで「圧縮」する

つまりtar.gzは「tarでまとめて、gzipで圧縮した」ファイルです。Linuxのソフトウェア配布では、tar.gzのほか、より高圧縮のtar.xzも広く使われています。Linuxに詳しい方なら、7-Zipはこのtar.gzやtar.xzも扱えるので、WindowsとLinuxの両方で便利に使えます。

現場での活用 プログラム・巨大ファイル・図面の送付

現場での具体的な活用シーンを紹介します。

プログラムや図面を送付するとき

プログラムのソースコードや図面データ(CADファイル)は、そのまま送るとサイズが大きくなります。7-Zipで圧縮すれば、送付前のデータを大幅に小さくできます。特に図面データはテキストベースのフォーマット(DXFなど)だと圧縮効果が大きいです。

圧縮してファイルサイズを小さくする

「少しでもファイルサイズを小さくしたい」場合は、7z形式を選びます。標準のZIP形式と比較して30〜50%高い圧縮率を達成できると言われています。ただし圧縮に時間がかかるので、大きなデータは圧縮中に他の作業を進められるよう、余裕のあるタイミングで実行しましょう。

暗号化して機密データを保護する

7z形式はAES-256暗号化をサポートしており、ファイル名も含めて暗号化できます。顧客情報や設計データを送付する際、パスワード付きの暗号化アーカイブを作れば、安全にデータをやり取りできます。

なお、暗号化したデータを送る場合は、パスワードは別の経路(電話・メールを分ける等)で伝えるのが基本です。

インストール方法

1. 7-Zip公式サイト(7-zip.org)にアクセスします。

2. Windowsのビット数(64bit/32bit)に合わせたインストーラをダウンロードします。

3. インストーラを実行し、セットアップウィザードに従います(デフォルト設定推奨)。

4. インストール完了後、エクスプローラの右クリックメニューからすぐに圧縮・展開ができます。

Linux向けにはp7zip(コマンドライン版)が提供されています。

まとめ

ファイル圧縮は、データの冗長性を利用してサイズを削減する技術です。日本発祥のLZHから、現在の7z・xz・zstdまで、圧縮技術は進化し続けています。

  • 7-Zipは最高クラスの圧縮率と暗号化機能を備えた無料ツール
  • 「一番圧縮率が高い」のはxz・7zクラスだが、速度重視ならzstdも有力
  • プログラム・図面の送付は7zで圧縮+AES-256暗号化がおすすめ
  • Linuxのtar.gzは「まとめる(tar)+圧縮(gzip)」の組み合わせ

まずは7-Zipをインストールして、ログファイルや図面データを7z形式で圧縮してみてください。ファイルサイズの削減効果を実感できるはずです。

主な出典・参考

コメント

タイトルとURLをコピーしました