lzmaとは?初心者にもわかる圧縮アルゴリズム入門共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
lzmaとは?初心者にもわかる圧縮アルゴリズム入門共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


lzmaとは?

lzmaは 高い圧縮率 を実現するための圧縮アルゴリズムです。正式には Lempel-Ziv-Markov chain Algorithm の頭文字をとった名前で、データを小さくして保存したり転送したりするのに使われます。

このアルゴリズムは、データの中で繰り返し現れる部分を見つけて、それを短い参照の形で表します。大きな辞書を使って、同じ情報を繰り返さずに済むようにするのが基本の仕組みです。結果として、同じデータを圧縮前の状態よりもかなり小さなサイズに変えることができます。

具体的には、ファイルを圧縮するときに、たとえば長い文字列や繰り返しのパターンを見つけて、「この部分は前に出てきたこの場所を参照している」と説明するようにします。これが「辞書」と「参照」の考え方です。LZMA はこの考え方をとても高度に組み合わせ、さらにデータの出現確率をうまく使うための技術も取り入れています。

どうして LZMA はよく使われるの?

LZMA は、圧縮率の高さと、現代のファイル形式で広く使われている点が魅力です。代表的な使い道としては、7-zipxz 形式、さらには一部の Linux ディストリビューションのパッケージ形式などがあります。これらは「ファイルを小さくして配布する」目的でよく使われ、ネット上でのダウンロード時間の短縮にも貢献します。

使い方のイメージ

日常の作業では、LZMA を使うツールを選ぶだけで十分です。代表的なツールは 7-zip で、ファイルを右クリックして圧縮を選ぶと、拡張子が .7z となることが多いです。xz 形式を選ぶと、さらに高い圧縮率を得られることがあります。

コマンドラインでも使えます。環境によって表現は違いますが、たとえば tar と組み合わせて tar -cJf のようなコマンドを使うケースがあります。ここで紹介したのはごく基本的な使い方のイメージです。

表で見るポイント

項目説明
圧縮率データの種類によって異なるが、通常は他のアルゴリズムより高いことが多い
速度圧縮と解凍の両方で遅くなる場合がある
用途大きなファイルの保存や転送に適している

まとめ

lzma は高い圧縮率を武器に、ファイルを小さくして保存や送信を楽にします。ただし、処理速度はその分遅くなることもあるため、使い分けが大切です。実際の場面では 7-zipxz 形式を試してみると良いでしょう。

学習のポイント

初心者が覚えるべきことは、圧縮はデータの繰り返しを見つけて表現を短くする、という基本アイデアです。そして LZMA は「大きな辞書」と「高精度な予測」を組み合わせて、高い圧縮率を追求します。普段は7-zipやxzが使われます。もし興味があるなら、同じファイルを複数のモードで試してみて、圧縮後のサイズがどう変わるかを比べてみてください。


lzmaの同意語

LZMA
Lempel-Ziv-Markov連鎖アルゴリズムの略称。データを高効率に圧縮するための圧縮アルゴリズムの名称です。
LZMA圧縮
LZMAアルゴリズムを用いてデータを圧縮すること、またはその圧縮形式のことを指します。
LZMAアルゴリズム
LZMAという圧縮アルゴリズムそのものの名称です。
Lempel-Ziv-Markov連鎖アルゴリズム
LZMAの正式名称の別表現で、同じ圧縮手法を指します。
Lempel-Ziv-Markovアルゴリズム
LZMAと同系統の圧縮アルゴリズムを指す略称表現です。
LZMA圧縮アルゴリズム
データをLZMAで圧縮するためのアルゴリズムの呼称です。
LZMA圧縮法
LZMAアルゴリズムを用いた圧縮の方法を指します。
LZMA圧縮手法
データをLZMAで圧縮する実装・方法のことを指します。
LZMA圧縮技術
LZMAを用いたデータ圧縮技術の総称として使われます。
LZMA圧縮方式
データを圧縮する方式としてのLZMAの呼び方です。

lzmaの対義語・反対語

展開
圧縮済みデータを元の状態に戻す操作。LZMAを使って圧縮したデータを解凍・解読する反対の過程として使われる言葉。
解凍
圧縮ファイルの中身を取り出す行為。ZIPやRARなどのアーカイブ形式で用いられる、圧縮データを元の状態に戻す操作。
非圧縮
データが圧縮されていない状態。圧縮アルゴリズムを適用していない生データのことを指す場合が多い。
生データ
加工や圧縮などの処理を受けていない原始データ。圧縮前のデータ、あるいは未加工のデータを意することが多い。
未圧縮データ
まだ圧縮されていないデータ。圧縮前の状態のデータを指す対義語的表現として使われる。

lzmaの共起語

LZMAアルゴリズム
データを高い圧縮率で圧縮するためのアルゴリズムの総称。Lempel-Ziv-Markov鎖アルゴリズムの略。
LZMA2
LZMAの改良版で、ブロック単位で処理し、複数のモードと高速な解凍性能を提供する圧縮アルゴリズム。
XZ形式
XZ形式の総称。
.xz
XZ形式で圧縮されたファイルの拡張子
tar.xz
tarアーカイブをXZ(LZMA2)で圧縮したファイル形式。
7-Zip
高機能な圧縮ソフト。LZMA/LZMA2を実装し、.7z形式を提供。
圧縮
元データの容量を小さくする処理。
圧縮率
圧縮後データの容量が元データと比べてどれだけ小さくなったかを示す指標。
圧縮比
同様にデータサイズの比率。一般には小さくなるほど“良い”とされる。
解凍
圧縮データを元の状態に戻す処理。
展開
解凍と同義で、圧縮ファイルを展開して中身を取り出す操作。
復元
元データを再現すること。
デコード
符号化されたデータを元の情報へ戻す処理。
エンコード
データを符号化して圧縮用データへ変換する処理。
辞書サイズ
LZMAの内部参照用辞書のサイズ。大きいほど圧縮力が高くなる可能性だがメモリを多く消費。
マッチ長
一致する参照データの長さ。
マッチ距離
一致参照の距離。長距離ほど過去データを広く参照できる。
ロックサイズ
データを処理する単位となるブロックのサイズ。
符号化
データをコード化して表現する工程。
ライブラリ
LZMA圧縮機能を組み込むための再利用可能なコード群。
SDK
ソフトウェア開発キット。
LZMA SDK
LZMAの公式SDKで、圧縮/解凍機能の実装例が含まれる。
XZ Utils
XZフォーマットの実装とツールを提供するオープンソースのプロジェクト。
XZファイル
XZ形式で圧縮されたファイルの総称。
公式仕様
LZMA/LZMA2および関連フォーマットの公式仕様書
オープンソース
ソースコードが公開され、誰でも利用・改変・再配布できるライセンス形態。
ファイル圧縮
ファイル単位で圧縮を適用する操作。
データ圧縮
データ全体を圧縮する一般的な用語。
圧縮アルゴリズム
データ圧縮の実装方法の総称。LZMAはその一種。
パフォーマンス
圧縮・解凍の速さやメモリ使用量などの実行性能。
メモリ使用量
辞書サイズや内部データ構造により消費するRAM量。
圧縮モード
LZMA/LZMA2の異なる圧縮モードのこと。

lzmaの関連用語

LZMA
losslessデータ圧縮アルゴリズムの名称。辞書圧縮とエントロピー符号化を組み合わせ、長い参照と高度なモデリングで高い圧縮率を狙います。
LZMA1
LZMAの旧バージョン。主に7-Zipの初期実装で使われ、後にLZMA2へ置換されつつも互換性のある場面で用いられます。
LZMA2
LZMAの改良版。複数スレッド対応・大きな辞書の扱いなどを強化し、XZや7zフォーマットで広く使われます。
7-Zip
オープンソースのファイル圧縮ソフト。主にLZMA/LZMA2を採用する7zフォーマットで知られています。
XZ
LZMA2を基盤とするファイル圧縮フォーマット。高い圧縮率と安定性を兼ね備え、データ保管に適しています。
XZ Utils
XZフォーマットの処理ツール群。xz/mx、unxzなどのコマンドを提供します。
liblzma
XZ Utilsの中核ライブラリ。C言語でLZMA/LZMA2の圧縮・伸長機能を提供します。
LZMA SDK
公式のLZMA実装とサンプルコードを含む開発キット。複数のプラットフォームでの利用を想定しています。
辞書サイズ
圧縮時に参照する過去データの容量。大きいほど長いマッチを参照できるため圧縮率が上がるがメモリ使用量が増えます。
マッチ長さ
参照して置換するマッチの長さ。長いほどデータの置換効率が上がります。
マッチ距離
参照元データの距離。近い距離の方が再現性が高く、短い符号化を促します。
リテラル
マッチ対象外の生データ(その場のバイト値)。リテラルの予測精度が全体の圧縮効率に影響します。
区間符号化
エントロピー符号化の一種。確率モデルに基づいてデータを効率的に符号化します。
文脈モデリング
リテラルやマッチの出現確率を文脈情報から推定する仕組み。高い予測精度が圧縮効率を高めます。
確率モデリング
データパターンの発生確率を統計的に推定し、符号化の効率を高めるモデル全般を指します。
エントロピー符号化
データの不確率分布を利用して、平均ビット長を最小化する符号化技法の総称。LZMAでは区間符号化を採用します。
プリセット
圧縮速度と圧縮率のトレードオフを決める設定。fastest、ultra などのオプションがあります。
フィルター
データ前処理の一種。特定のデータパターンを整形して圧縮効率を改善します。
ブロック圧縮
データをブロック単位で処理して圧縮を行う方式。メモリ管理や並列化の観点で重要です。
ストリーミング
データを連続的に圧縮・伸長できる方式。大容量データの処理に適しています。
圧縮比
元データに対する圧縮後の容量の比率。高いほどデータが小さくなることを意味します。
用途例
アーカイブ作成、ソフトウェア配布パッケージ、バックアップファイルの圧縮など、長期保管や配布に向きます。
開発者
アルゴリズムの原案はIgor Pavlov。長年にわたり様々な実装が派生しています。
発表年
LZMAは1990年代後半に登場し、1998年頃に広く認知され始めました。
ファイル拡張子/フォーマット
7z、xzなどのフォーマットがLZMA/LZMA2を officialに採用。旧来の.lzma拡張子も見られます。
互換性
LZMA1は旧仕様、LZMA2はXZ/7zなどの新仕様と相互運用性を保つ設計です。
メモリ使用量
辞書サイズとモデリングの規模に依存。大きい辞書は高圧縮だが多くのメモリを消費します。
アルゴリズムの特徴
強力な辞書参照と高度な確率モデリング、区間符号化による高い圧縮効率が特徴です。
スケーラビリティ
大規模データやマルチコア環境での並列処理・大辞書対応が設計思想に含まれます。
dictSize
辞書サイズを表すパラメータ名。大きいほど長い参照が可能になり、圧縮率は上がる傾向ですがメモリも増えます。
lc
リテラルコンテキストビット数の設定。リテラルの予測精度と圧縮挙動に影響します。
lp
リテラル位置ビット数の設定。データの位置情報のモデリングに関係します。
pb
位置符号ビット数の設定。データの位置情報の扱いを決め、圧縮挙動に影響します。
ライセンス
実装ごとに異なるライセンスの下で提供されます。使用時は各実装のライセンスを確認してください。
ドキュメント
公式リファレンスやチュートリアル、APIガイドなどのドキュメント資源が豊富です。
フォーマット比較
7zとXZ(LZMA/LZMA2)の違い、用途別の選択ポイントなどを比較します。

インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14595viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2438viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1085viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1067viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
951viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
919viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
870viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
859viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
812viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
803viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
733viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
718viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
615viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
612viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
600viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
560viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
537viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
516viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
498viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
484viws

新着記事

インターネット・コンピュータの関連記事