Pull to refresh

Comments 2

Ну ход мылей то в целом веный. Но дело не в том каким способом указывать разрядность перед числом, а в том как это применить на практике. Если мы сжимаем массив чисел в котором есть частые значения, то записывать частые значения компактной последовательностью бит - это логично. Ну а дальше поиск компромиса - длина частых значений должна быть минимизирована (а для редких это уже не так важно), в идеале с учётом частоты использования. Тут есть простор для творчества можно комбинировать метод повторения нулей перед единицей как в кодах Элиаса, можно задать повторяющиеся нули/единицы и перед вторым нулём (например 0001110?????), можно брать двух, трёх (как у вас) и т.д фиксированные последовательности, а так же их комбинировать для разных диапазонов. А у Хафмана что там было? Вот только нюанс - это ещё не полноценный алгоритм сжатия, а его часть. Мне кажется обычно в этой части алгоритмов разработчики будут стараться использовать хорошо знакомые и известные решения.

Ну я и не пишу про алгоритм сжатия, я пишу про коды переменной длины и как вы выразились "Мне кажется обычно в этой части алгоритмов разработчики будут стараться использовать хорошо знакомые и известные решения" - я и пишу о том, что привычное и известное не всегда оптимальное.

это ещё не полноценный алгоритм сжатия

Касательно алгоритма сжатия статья будет только в том случае, если я хотя бы смогу сделать что-то сопоставимое с ZX0, иначе это не имеет смысла. Вариантов на тему LZSS на ретро-пространстве - ATARI, ZX и т.п - очень много, это и Aplib и LZ4 и Hrum/Hrust и т.п. (я ссылку дал на большую статью Introspec, там всё подробно). Для меня лично это просто хобби, постоянное наступание на грабли, изобретение велосипедов и т.п., не уверен что это кому-то будет интересно. С кодами, так уж получилось, эффективность очевидна, я напишу Эйнару, посмотрим, может это его заинтересует. Мне было бы приятно сделать свой вклад, для ретро машинок лишний килобайт лишним не бывает.

Sign up to leave a comment.

Articles