跳至內容

LZSS

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

Lempel–Ziv–Storer–SzymanskiLZSS)是一个無失真資料的壓縮演算法,屬於 LZ 七十七的衍生,一九八二年由 James Storer 和 Thomas Szymanski 建立。LZSS 發布於《Journal of the ACM》的「Data compression via textual substitution」。

LZSS 是一種字典編碼技術。伊會試驗用符號字串替換仝字串做一字典位置的參照。

LZ 七十七佮 LZSS 的主要分別是,LZ 七十七的字典參照可能比予人替換的字串閣較長。佇咧 LZSS 中,若長度細漢「盈虧平衡」點,參照會去予省起來。此外,LZSS 使用單位元標誌標記後一个資料塊是原文(位元組)猶閣是參照的偏移佮長度。

這个例是 Dr . Seuss 所以《_ Green Eggs and Ham _》的開頭,逐行頭的已經有字元總數是為方便所設。

` ` ` 零 : I am Sam 九 : 十 : Sam I am 十九 : 二十 : That Sam-I-am ! 三十五 : That Sam-I-am ! 五十 : I do not like 六十四 : that Sam-I-am ! 七十九 : 八十 : Do you like green eggs and ham ? 一百十二 : 一百十三 : I do not like them , Sam-I-am . 一百四十三 : I do not like green eggs and ham . ` ` `

這是該段文字猶未壓縮形式的一百七十七位元組。假使盈虧平衡點是兩位元組(並因此是兩位元組的指標 / 偏徙嘿), 加上一个元組的新行字元,此文字使用 LZSS 壓縮了就變做九十四个元組:

` ` ` 零 : I am Sam 九 : 十 : ( 五 , 三 ) ( 零 , 四 ) 十六 : 十七 : That ( 四 , 四 )-I-am ! ( 十九 , 十六 ) I do not like 四十五 : t ( 二十一 , 十四 ) 四十九 : Do you ( 五十八 , 五 ) green eggs and ham ? 七十八 : ( 四十九 , 十四 ) them , ( 二十四 , 九 ) . ( 一百十二 , 十五 ) ( 九十三 , 十八 ) . ` ` `

注意:這無包括標記後一个文字紙是指標抑是原文的十二位元組。若加上伊,該段文字變做一百空六位元組,猶是會少於原文的一百七十七位元組。

實現

誠濟流行的存檔格式如 PKZip、ARJ、RAR、ZOO、LHarc 攏使用 LZSS 毋是 LZ 七十七作為主要的壓縮演算法;原文字元佮長度距離對的編碼方式有無仝,上捷看的選項是霍夫曼編碼。大多數實現出原因一九八九年 Haruhiko Okumura 的代碼。Allegro 程式庫第四版會當編碼佮解碼 LZSS 格式,但是特性佇咧第五版內底予人去除。Game Boy Advance BIOS 會當解碼一个小可仔修改的 LZSS 格式。

參見

  • LZ 七十七
  • LZW

參考資料