Jump to content

Лемпель–Зив–Сторер–Шимански

(Перенаправлено с LZSS )

Lempel-Ziv-Storer-Szymanski ( LZSS ) — сжатия данных без потерь алгоритм , производный от LZ77 , который был создан в 1982 году Джеймсом А. Сторером и Томасом Шимански . LZSS был описан в статье «Сжатие данных посредством текстовой замены», опубликованной в журнале ACM (1982, стр. 928–951). [1]

LZSS — это метод словарного кодирования . Он пытается заменить строку символов ссылкой на местоположение той же строки в словаре.

Основное различие между LZ77 и LZSS заключается в том, что в LZ77 ссылка на словарь может быть длиннее, чем строка, которую она заменяет. В LZSS такие ссылки опускаются, если длина меньше точки «безубыточности». Кроме того, LZSS использует однобитовые флаги, чтобы указать, является ли следующий фрагмент данных литералом (байтом) или ссылкой на пару смещение/длина.

Вот начало книги доктора Сьюза « Зеленые яйца и ветчина» с номерами символов в начале строк для удобства. «Зеленые яйца и ветчина» — хороший пример, иллюстрирующий сжатие LZSS, поскольку сама книга содержит всего 50 уникальных слов, несмотря на то, что количество слов в ней составляет 170. [2] Таким образом, слова повторяются, но не подряд.

  0: I am Sam  9: 10: Sam I am 19: 20: That Sam-I-am! 35: That Sam-I-am! 50: I do not like 64: that Sam-I-am! 79:  80: Do you like green eggs and ham?112:113: I do not like them, Sam-I-am.143: I do not like green eggs and ham.

Этот текст занимает 177 байт в несжатом виде. Предполагая, что точка безубыточности равна 2 байтам (и, следовательно, 2-байтовым парам указатель/смещение) и однобайтовым символам новой строки, этот текст, сжатый с помощью LZSS, становится длиной 95 байт:

Пример с цветовой кодировкой, помогающий проиллюстрировать повторное использование повторяющейся информации для минимизации объема хранения.
Пример цветовой кодировки сжатия LZSS в действии.
 0: I am Sam 9:10: (5,3) (0,4)16:17: That(4,4)-I-am!(19,15)32: I do not like46: t(21,14)50: Do you(58,5) green eggs and ham?79: (49,14) them,(24,9).(112,15)(92,18).

Примечание. Сюда не входят 11 байтов флагов, указывающих, является ли следующий фрагмент текста указателем или литералом. После его добавления длина текста становится 106 байт, что все равно короче исходных 177 байт.

Реализации

[ редактировать ]

Многие популярные архиваторы, такие как ARJ , RAR , ZOO , LHarc, используют LZSS, а не LZ77 в качестве основного алгоритма сжатия; Кодирование литеральных символов и пар длина-расстояние различается, наиболее распространенным вариантом является кодирование Хаффмана . Большинство реализаций основано на общедоступном коде 1989 года Харухико Окумура . [3] [4] Версия 4 библиотеки Allegro может кодировать и декодировать формат LZSS. [5] но эта функция была вырезана из версии 5. BIOS Game Boy Advance может декодировать слегка измененный формат LZSS. [6] от Apple MacOS использует LZSS в качестве одного из методов сжатия кода ядра. [7]

См. также

[ редактировать ]
  1. ^ Сторер, Джеймс А.; Шимански, Томас Г. (октябрь 1982 г.). «Сжатие данных посредством текстовой замены» . Журнал АКМ . 29 (4): 928–951. дои : 10.1145/322344.322346 .
  2. ^ «10 историй, лежащих в основе историй доктора Сьюза» . CNN . 23 января 2009 года . Проверено 26 января 2009 г.
  3. ^ Зеркало Simtel.net. Реализация Харухико Окумура, 1989 год . Архивировано 3 февраля 1999 года.
  4. ^ Харухико Окумура. История сжатия данных в Японии. Архивировано 10 января 2016 г.
  5. ^ Харгривз, Шон [ pl ] и др. Исходный код Аллегро: lzss.c. Доступ 13 июля 2016 г.
  6. ^ Корт, Мартин. «Функции декомпрессии GBATEK LZ» . www.problemkaputt.de . Проверено 7 июня 2022 г.
  7. ^ «kext_tools/compression.c» . Гитхаб . Apple с открытым исходным кодом . Проверено 28 декабря 2019 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0562928abf114c061f7a54884b485331__1722667740
URL1:https://arc.ask3.ru/arc/aa/05/31/0562928abf114c061f7a54884b485331.html
Заголовок, (Title) документа по адресу, URL1:
Lempel–Ziv–Storer–Szymanski - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)