LZSS

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

LZSSは、1982年にJames StorerとThomas Szymanskiによって考案されたデータ圧縮LZ77の改良アルゴリズム。LHAZIPに用いられている。データ列には同じようなパターンが繰り返し現れるという法則を利用し圧縮する。

符号化の原理[編集]

LZ77では、記号列を(一致位置、一致長、次の不一致記号)という3つの値に置き換えていた。しかしこの方法では一致がなかった場合には(0,0,不一致記号)と一致位置、一致長のぶんだけ冗長になってしまう。

そこでLZSSでは、

  • 一致があった場合:(1、一致位置、一致長)
  • 一致がなかった場合:(0、不一致記号)

とすることで圧縮率の向上を図っている。つまり、まず最初に、一致したかどうか1ビット使う。一致位置は、圧縮しようとしている位置より前の位置で、最も長く一致する部分を探索する。一致位置、一致長、不一致記号は固定ビット数で表現する。

LZSSはLZ77とさほど変わらないアルゴリズムであるにもかかわらず、大幅な性能向上が期待でき、多くの圧縮ソフトウェアで用いられている。

関連項目[編集]