TGViewer
Random Rust Dev Random Rust Dev @random_rust_dev · 472 subscribers
Post #285 677
К слову, что вообще за LZP.

Название расшифровывается как Lempel-Ziv Predictive.
И это самый просто LZ-like, который к тому же еще и быстрый и эффективный на определенных типах данных.

Оригинальный LZ77 кодирует символы в последовательность ссылок на подстроки символов уже встреченных ранее (и не вышедших за окно) и литералы.
Это приводит к тому, что при кодировании приходится искать в окне самую длинную подстроку.

LZP не ищет подстроки. Вместо этого окно, обычно совсем небольшое, по сравнению с LZ77, например 4 символа, хэшируется. Этот хэш используется как ключ в кэш символов.
Если следующий символ равен символу в кэше - кодируем один бит 0. Если нет - кодируем бит 1 и литерал. И переписывает символ в кэше на новый.

Несмотря на простоту кодирования, LZP отлично себя показывает на данных, где за последовательностью символов с большой вероятностью идет такой же, как и в прошлый раз за такой последовательностью.
Но предел сжатия - 1 / symbol_bits если всегда будет хит в кэш. Тогда как LZ77 может сжимать в тысячи и миллионы раз, если в данных совсем нет энтропии (все символы одинаковые).
  • 👍 4
  • ⚡ 2
  • ✍ 2
  • 🔥 1
More from @random_rust_dev
  1. Sep 20, 2026И всё же ИИ отличная штука. Никакой поисковик не мог мне дать ответ на вопрос, почему шурш…
  2. Sep 20, 2026Скелетор злодей, но не врун
  3. Sep 18, 2026Я попросил GPT Astra повысить производительность Alkahest. GPT смог прогнать профайлер и у…
  4. Sep 16, 2026PC gaming with extra steps
  5. Sep 14, 2026Сегодня снова загадка. Вот в этом коде будет ли соптимизирован bound check в последнем выр…
  6. Sep 13, 2026Чуть не забыл. Поздравлчю всех с днём промпт-инженера!
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →