読み方 : エルゼットエスエス

LZSS【Lempel–Ziv–Storer–Szymanski】

LZSSとは?

データ圧縮に用いられるアルゴリズムの一つで、1977年に発表された「LZ77」を、ジェームズ・ストーラー(James Storer)とトーマス・シマンスキー(Thomas Szymanski)が1982年に改良した手法。名称は4人の考案者の頭文字に由来する。
LZSSのイメージ画像

基本的な発想は、繰り返し現れるパターンをより短い符号に置き換えることでデータ量を削減する。LZSSでは、直前までに処理したデータを「スライド窓」(sliding window)と呼ばれるバッファに保持し、新たなデータが登場するたびにその中を探索する。同じパターンが見つかれば、データそのものではなく「どこから何文字分と同じか」を示す参照情報(位置と長さのペア)に置き換えて出力する。

元になったLZ77には、一致するパターンが短い場合でも参照情報として出力するため、却ってデータが増えてしまう場合があった。LZSSはこれを改善するため、参照情報と生データのどちらであるかを示す1ビットフラグを導入した。このフラグにより、圧縮した方が有利な箇所だけを参照に置き換え、そうでない箇所はそのまま出力するという柔軟な処理が可能になった。

圧縮データの展開(解凍)処理は単純で、フラグを読みながら生データはそのまま出力し、参照情報であればバッファの該当箇所をコピーするだけである。圧縮に比べて展開が高速なこの特性は、一つのデータが様々な場所で何度も展開される配布用ファイルや、処理能力が限られた機器でのメディアデータの再生などで特に都合がよい。LZSSはハフマン符号化など他の手法と組み合わせて使われることが多く、Zipファイル圧縮PNG画像形式の内部処理にもその考え方が受け継がれている。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。