Об алгоритмах сжатия данных

Jan 31, 2023 15:28


Подготовил к участию в конкурсе Long Text Compression Benchmark вариант алгоритма сжатия данных на основе PPM.

По современному состоянию дел, этот алгоритм может конкурировать с распространёнными архиваторами типа WinRar и 7zip, но не может конкурировать с более современными алгоритмами из семейства PAQxxx, использующими Context Mixing ( Read more... )

забавы, программирование, пиздострадания

Leave a comment

vladicusmagnus February 3 2023, 18:06:06 UTC

Увы не. Не моё. Ну тут больше матана, чем прогерства. Хоть и геймдев что то туда же но не так.

По поводу остального - лови. Я докину Арушу, а то охуел )))


Как развитие алгоритмов сжатия остановилось 20 лет назад, или о новом конкурсе на 200 тысяч евро / Хабр


habr.com

Reply

drew_fighter February 4 2023, 17:57:58 UTC
Отличная статья, с удовольствием перечитываю её периодически )

Reply

vladicusmagnus February 5 2023, 05:17:16 UTC

Мне там ссылко на RLE понравилась. Я её тож куда можно и куды почти низя всовываю. Но более издевательски. Де, какое ТЗ такой и ответ. ))))

Reply

drew_fighter February 5 2023, 08:50:54 UTC
Для полноценного стека сжатия тебе нужно каой-нибудь арифметический кодировщик на выходе этого прикрутить, позволяет компактно записывать число в заданном диапазоне, в дробное количество битов, а то и в пол-бита или четверть бита :)

Reply

vladicusmagnus February 5 2023, 10:44:07 UTC

Абсолютли ноу. Ну пока. Я пока работаю с битовыми масками (именно в понятии "маска"). Накладываю первую, исходя из результата - выбираю следующую, накладываю - устанавливаю флаги.

На самом деле, можно и не так извернуться. Я лично пока подумываю, не использовать ли искажённый float для расширения диапазона? С одной стороны будет на байт больше, выше нагрузка на проц, с другой стороны, можно напихать более чем много. Грубо говоря 128 словарей по 800 тыс слов. Почему бы нет?

Но просто если всё сразу накручивать - есть великий шанс что конструкция если и полетит - то строго вниз ))) А не вверх )

Reply

drew_fighter February 5 2023, 21:49:19 UTC
Ты меня пугаешь. Как ты расширишь диапазон, используя float? Там в любом случае 4 байта, как в long. 4 байта есть 4 байта, как их не извращай.

Reply

vladicusmagnus February 7 2023, 23:07:25 UTC

*хихикнул* В том то и смак, диапазон то по факту уменьшается, ага. ))) Но я имел ввиду использовать что то типа "порядка+мантиссы". Где порядок - это обращение к словарю, а мантисса уже индекс в нем. Это не дает преимущества и большего диапазона, как бы. Но с другой стороны, дает более аккуратный доступ к словарям.

Reply

drew_fighter February 8 2023, 08:04:51 UTC
В таких случая мой университетский товарищ Лёша говорил "Извращенцы", причём так, как будто в этом слове минимум три буквы "щ".

Reply

vladicusmagnus February 8 2023, 17:41:22 UTC

😆

И он прав )))

Reply

drew_fighter February 8 2023, 11:28:00 UTC
Не, серьезно. Ты же можешь использовать диапазоны small int, short int без затрат по выковыриванию значения из порядка float и вковыриванию их обратно? Ну разве что, ради куража такое можно сделать.

Reply

vladicusmagnus February 8 2023, 17:24:59 UTC

Я уже без "куража" имею ход уау )))

Reply


Leave a comment

Up