LZ77 - это алгоритм сжатия данных без потерь, опубликованный Абрахамом Лемпелем и Джейкобом Зивом в 1977 году.
1 ответ

Сопоставляет перекрывающиеся взгляды на LZ77/LZSS с суффиксными деревьями

Предыстория: у меня есть реализация универсального бэкэнда LZSS на C++ (доступно здесь. Алгоритм сопоставления, который я использую в этой версии, чрезвычайно прост, потому что он изначально предназначался для сжатия относительно небольших файлов (м…
1 ответ

Как получить пары <расстояние, длина> из компрессора ZLIB

Я сжимаю несколько длинных строк, используя ZLIB, который использует LZ77 представления повторяющихся подстрок до кодирования этих представлений с использованием дерева Хаффмана. Я заинтересован в изучении последовательности представлений целочислен…
27 июл '16 в 21:20
0 ответов

Понимание этого алгоритма декомпрессии на основе LZSS

Я хочу понять этот алгоритм на основе LZSS, чтобы написать компрессор (и, возможно, лучший декомпрессор), я изучаю LZ77 и LZSS, но есть несколько строк, которые я до сих пор не понимаю. Я прокомментировал следующий код столько, сколько смогу, первый…
22 дек '16 в 10:22
1 ответ

zlib lz77 раздвижное окно и максимальная длина соответствия

Я пытаюсь найти два параметра (размер скользящего окна и максимальная длина соответствия) в алгоритме LZ77 (исходный код: http://www.zlib.net/) для анализа различных уровней сжатия. Сначала я обнаружил, что значение CHUNK в zpipe.c является параметр…
02 янв '15 в 15:56
2 ответа

Рассуждение метода DEFLATE

Почему LZ77 DEFLATE использует кодировку Хаффмана для второго прохода вместо LZW? Есть ли в их комбинации что-то оптимальное? Если да, то каков характер вывода LZ77, который делает его более подходящим для сжатия Хаффмана, чем LZW или какой-либо дру…
28 сен '16 в 23:36
1 ответ

Разница: LZ77 против LZ4 против LZ4HC (алгоритмы сжатия)?

Я понимаю алгоритмы LZ77 и LZ78. Я читал о LZ4 здесь и здесь и нашел код для него. Эти ссылки описывают формат блока LZ4. Но было бы замечательно, если бы кто-то мог объяснить (или направить меня к какому-нибудь источнику объяснения): Чем LZ4 отлича…
20 фев '15 в 18:09
0 ответов

Производительность сжатия lz77 на большом случайном массиве

У меня есть большой массив необработанных байтов. Массив байтов не следует за шаблоном, а значения байтов могут быть любыми (случайными). Размер массива составляет 45000x5x400 байт. И у меня есть 1 секунда для кодирования. Будет ли осуществимо lz77?…
30 май '16 в 13:16
1 ответ

DEFLATE: обратная ссылка действительно лучше?

Я делаю свой собственный компрессор DEFLATE, который почти каждый раз превосходит библиотеку ZLIB. В формате DEFLATE (LZ77) поток данных содержит либо байтовый литерал, либо обратную ссылку, говорящую о том, что мы должны скопировать последовательно…
19 май '18 в 13:34
0 ответов

Метаданные декомпрессии MS-XCA указывают вне сжатого байтового массива

Мне нужно распаковать файл модели данных, встроенный в файл xlsx. Предполагается, что файл использует формат файла MS-XLDM и должен состоять из 3 разделов (заголовок модели данных электронной таблицы, файлы и виртуальный каталог), и сжат только сред…
24 сен '18 в 13:02
2 ответа

Не могли бы вы объяснить, как конвертировать из lz77 в Хаффмана?

Не могли бы вы объяснить, как конвертировать из lz77 в Хаффмана на примере на картинке ниже?
24 сен '17 в 20:07
1 ответ

Коэффициент сжатия LZW, LZ77 и других простых в реализации алгоритмов

Я хочу сжать .txt файлы, которые содержат даты в yyyy-mm-dd hh:mm:ss формат и английские слова, которые иногда имеют тенденцию повторяться в разных строках.Я прочитал несколько статей об алгоритме сжатия и обнаружил, что в моем случае кодирование на…
10 фев '19 в 23:34
1 ответ

LZ 77, 78 алгоритм сжатия ЭКГ

Я заинтересован в реализации алгоритмов LZ для сжатия сигнала ЭКГ и хочу оптимизировать код с учетом микроконтроллера. Таким образом, энтропия будет эффективной и займет меньше времени для сжатия и распаковки сигнала ЭКГ. Я полностью застрял, как я …
21 июн '15 в 02:07
1 ответ

Как я могу оптимизировать мой компрессор сдвижного окна Lz77?

Я написал Java-компрессор для очень непонятного формата сжатия. (В основном он использовался на Amiga Computers в 1990-х годах). Существует довольно много документации о том, как распаковать формат файла, но не о том, как на самом деле сжать его. Ит…
2 ответа

Используется ли DEFLATE в сжатии gzip и png одинаково?

Я читал о gzip-сжатии и png-сжатии изображений, и они оба используют алгоритм DEFLATE, но я не уверен, что реализация этого алгоритма одинакова. Кроме того, если это тот же алгоритм, то в чем разница между этими компрессиями, кроме того факта, что p…
23 янв '18 в 23:06
0 ответов

Зачем сочетать Хаффмана и lz77?

Я занимаюсь реверс-инжинирингом в игре Gameboy Advance, и я заметил, что разработчики оригиналов написали код, который имеет два системных вызова для распаковки уровня, используя Huffman и lz77 (в этом порядке). Но зачем использовать Huffman + lzZ7?…
06 апр '19 в 08:09
0 ответов

Как считать смещение в LZ77?

Я пытаюсь изучить алгоритм LZ77. В примерах, предоставленных моим профессором, говорится, что вы посчитываете смещение для токена от начала скользящего окна до соответствующего символа. Например: search buffer | lookahead buffer I: 1 2 3 4 5&lt;- th…
14 авг '19 в 21:24
2 ответа

Расшифровка строки Z64 (ZB64)

Я работаю над разбивкой определений этикеток ZPL, созданных программным обеспечением для создания этикеток NiceLabel. По большей части мне не нужно беспокоиться о декодировании Z64, потому что это просто закодированная графика, и мне не нужно изменя…
16 окт '19 в 19:24
2 ответа

Как правильно использовать std::string для хранения байтов (беззнаковых символов)?

Я кодирую алгоритм сжатия LZ77, и у меня проблемы с сохранением беззнаковых символов в строке. Чтобы сжать любой файл, я использую его двоичное представление, а затем читаю его какchars (поскольку 1 символ равен 1 байту, afaik) до std::string. Все о…
30 ноя '19 в 19:13
1 ответ

Как декодировать двоичный код в кодировке Base64 (закодированный с использованием алгоритма LZX) обратно в исходную строку

Я пытаюсь декодировать строку, которая закодирована с использованием алгоритма LZX с размером окна LZX 2 мегабайта (двоичный), а затем преобразована в base64. Я получаю эту строку в ответ от Microsoft Update API (GetUpdateData). Согласно документаци…
10 фев '20 в 17:08
0 ответов

Какие шестнадцатеричные значения опкода у Lempel-Ziv?

Я делаю программу, которая делает zip quines, и я не знаю шестнадцатеричных значений для кодов операций печати и повтора Lempel-Ziv. Кто-нибудь знает ценности?
03 сен '20 в 22:53