- [OS]2021-12-08
- [ККМ, PFC] сводный системный.2021-12-05
- [SDR] Сводный, системный2020-01-23
- [IPV6 IP V6] Сводный системный топик2017-12-06
-
- tinf - tiny inflate library (кроме этого, у автора еще много других
интересных проектов по теме) Ozelot(1 знак., 12.06.2022 13:22, ссылка)
- Спасибо! - Evgeny_CD(12.06.2022 14:48)
- [Brotli] заточен под WEB. Основан на современном варианте алгоритма
LZ77, энтропийном кодировании Хаффмана и моделировании контекста
2-го порядка. Evgeny_CD(2 знак., 14.01.2022 16:59, ссылка, ссылка)
- Подробности реализации и необходимого объема памяти Evgeny_CD(1 знак., 17.01.2022 16:53, ссылка)
- В частности, использован там Evgeny_CD(1 знак., 17.01.2022 17:05, ссылка)
- Вот что дает Evgeny_CD(1 знак., 14.01.2022 17:00, ссылка)
- Подробности реализации и необходимого объема памяти Evgeny_CD(1 знак., 17.01.2022 16:53, ссылка)
- [FastLZ] (MIT license) is an ANSI C/C90 implementation of Lempel-Ziv 77
algorithm (LZ77) Evgeny_CD(42 знак., 07.10.2021 01:27, ссылка, ссылка)
- Пример использования - Evgeny_CD(07.10.2021 01:34, ссылка)
- liblzg minimalist lossless data compression library Ozelot(745 знак., 06.04.2021 12:14, ссылка, ссылка)
- Обращу внимание, что "requires no memory" несколько неправда (как и для lz4). Отдельной памяти требуется немного (около 300 байт на стеке), но требуется доступ к жирному куску уже распакованных данных. Это надо учитывать. - LightElf(06.04.2021 14:51)
- Спасибо! - Evgeny_CD(06.04.2021 12:27)
- [KITTY] compression algorithm Evgeny_CD(46 знак., 26.04.2020 22:34, ссылка, ссылка)
- Сравнение gzip, kitty и heatshrink на примере бинарника u-boot-spl
для arm-v7 3m(781 знак., 26.04.2020 13:31)
- Kitty - оно? - Evgeny_CD(26.04.2020 22:35, ссылка)
- Да, оно. Код брал с encode.su и рихтовал под себя. Достоинства:
неплохо жмет, довольно шустро распаковывает, имеет фиксированные
небольшие требования к ОЗУ (~780 байт) - LightElf(27.04.2020 13:24)
- Спасибо - Evgeny_CD(27.04.2020 13:26)
- Да, оно. Код брал с encode.su и рихтовал под себя. Достоинства:
неплохо жмет, довольно шустро распаковывает, имеет фиксированные
небольшие требования к ОЗУ (~780 байт) - LightElf(27.04.2020 13:24)
- Спасибо! Kitty юзаю не один год и доволен как слон. А тут еще и подвезли вывод, что не зря! Какой я прозорливый, аж жуть :) - LightElf(26.04.2020 22:04)
- Спасибо! - Evgeny_CD(26.04.2020 14:01)
- Kitty - оно? - Evgeny_CD(26.04.2020 22:35, ссылка)
- [STCE] Super Tiny Compression Engine исходников не нашел -> - Evgeny_CD(17.01.2019 13:03, ссылка)
- [JQCoding] by Jacky Qwerty/29A, has a compiled x86 compressor of 154 bytes and decompressor 122 bytes -> Только asm :( Evgeny_CD(105 знак., 17.01.2019 12:57, ссылка)
- [Коллекция] Data Compression Programs. Есть интересные для embedded -> - Evgeny_CD(17.01.2019 12:55, ссылка)
- LZRW им. Ross N. Williams. Я бы рекомендовал LZRW3a. Подойдёт вполне для современных МК, и качество сжатия не фатально уступает gzip (который выигрывает только за счёт большего словаря и Хаффмана). Вдогонку, по сути это алгоритм семейства ROLZ fk0(198 знак., 10.07.2018 00:24 - 01:07, ссылка)
- Спасибо! - Evgeny_CD(16.01.2019 19:27)
- Byte pair compression: итеративно во входных данных неиспользуемый байт начинает кодировать часто встречающиеся пары других байт. На текстах эффективность алгоритма может быть сопоставима с LZ, кодирование/декодирование значительно проще. fk0(363 знак., 10.07.2018 00:56 - 01:05, ссылка)
- Из посимвольных LZSS -> очень понравился: эффективен, прост и понятен, требования "куда уж меньше?". - Dingo(17.01.2019 06:08, ссылка)
- Спасибо! - Evgeny_CD(16.01.2019 19:28)
- 4-битная схема кодирования английских текстов (фиксированный словарь): может подойти для логов, например, благо быстро работает: fk0(10.07.2018 01:03)
- Спасибо! - Evgeny_CD(16.01.2019 19:28)
- Русский народный range coder им. Дмитрия Субботина (Carry-less Range Coder), впервые публиковался в fido: fk0(7337 знак., 10.07.2018 00:38)
- Сайт человека, написавшего и давшего в исходниках основные типы компрессоров, полезно для изучения, если возникает желание написать собственный: - fk0(10.07.2018 00:31, ссылка)
- Урезанная версия LZW, которая запросто может быть таргетирована на микроконтроллеры: fk0(322 знак., 10.07.2018 00:28, ссылка)
- Спасибо! - Evgeny_CD(16.01.2019 19:27)
- LZJB -- наиболее простейший и тупейший компрессор, но может очень неплохо сэкономить память, если данные так же состоят наполовину "из одних нулей". Ресурсов требует минимально. - fk0(10.07.2018 00:25, ссылка)
- Спасибо! - Evgeny_CD(16.01.2019 19:27)
- [uzlib] -> is a library which can decompress any valid Deflate, Zlib, and Gzip, and compress data to Deflate- compatible bitstream (LZ77 compression is used, static Deflate Huffman tree encoding is used for bitstream). - Evgeny_CD(09.07.2018 00:58, ссылка)
- В общем, я долго гуглил, но так и не нашёл. Задача: сжать при сборке программы, поместить в ПЗУ. Для разжимания использовать не более 100 байт ОЗУ (условно). Все LZ сразу идут лесом. Всё, что осталось, - УГ. Пичалька :-( Хоть сам пиши, а так не SciFi(9 знак., 06.12.2017 10:53)
- Я может глупость скажу, но heatshrink - under 50 bytes for practical decompression -> - Evgeny_CD(06.12.2017 14:33, ссылка)
- В википедии пишут: PuTTY 'sshzlib.c': a standalone implementation, capable of full decode, but static tree only creation, by Simon Tatham. Это не то? - Ozelot(06.12.2017 12:17)
- не то - SciFi(06.12.2017 12:24)
- Буфер для LZ не нужен от вообще. Если это не LZW со словарем или не zip с деревьями и хешами. Другое дело, ты наверное разжимать хочешь маленькие кусочки и с середины, а LZ жмёт поток. Но словарь в LZW может быть статическим, в ПЗУ. И уже всё fk0(1400 знак., 06.12.2017 11:30)
- Кстати контекст-зависимые таблицы для range coder вполне могут быть в ПЗУ и статическими и созданными опять-же, при начальном просмотре всего текста. Идея в том, что мы используем разные алфавиты, условно говоря, в зависимости от текущего fk0(266 знак., 06.12.2017 12:10)
- IMHO, тогда уж лучше не "текст разбить на пары, триплеты и четверки (максимум) байт", а прямо использовать двоичные представления команд МК (то есть, заранее отделить команды МК от аргументов этих команд) и для них уже построить словарь. Ну, это Хаос(81 знак., 06.12.2017 11:51, )
- HTML. Смотришь на эти <option>foo</option><option>bar</option>, и сердце кровью обливается :-) - SciFi(06.12.2017 11:53 - 11:56)
- У тебя html может и не помещается в памяти целиком, но отсылаешь ты его всяко пакетами по полтора килобайта, а не побайтово. Вот побей входной html на куски по 1.5 килобайта и сжимай каждый отдельно. Всяко как-то сожмется, может и не так хорошо. fk0(677 знак., 06.12.2017 12:38)
- Кстати, вариант. Забабахать один большой статический HTML и всю динамику делать в жабаскрипте. Статическое тупо сжать гзипом. - SciFi(06.12.2017 13:00)
- Там динамические подстановки (типа CGI). - SciFi(06.12.2017 12:48)
- взять дубину побольше и не маяться фигней. Что такое флешь? песок не больше того. - Nikolay801_(06.12.2017 12:15)
- Маркетинг чипов в другом топике :-) - SciFi(06.12.2017 12:23)
- тама штоли? - Nikolay801_(06.12.2017 13:31, ссылка)
- Песок отрихтованный нанонапильником :-) - =AlexD=(06.12.2017 12:21)
- Маркетинг чипов в другом топике :-) - SciFi(06.12.2017 12:23)
- У тебя html может и не помещается в памяти целиком, но отсылаешь ты его всяко пакетами по полтора килобайта, а не побайтово. Вот побей входной html на куски по 1.5 килобайта и сжимай каждый отдельно. Всяко как-то сожмется, может и не так хорошо. fk0(677 знак., 06.12.2017 12:38)
- HTML. Смотришь на эти <option>foo</option><option>bar</option>, и сердце кровью обливается :-) - SciFi(06.12.2017 11:53 - 11:56)
- Все такие умные. Я же говорю, самому кодить не охота. Хотя, похоже, придётся... - SciFi(06.12.2017 11:32)
- сделать свою вариацию на тему LZ4, ограничив глубину обратных ссылок. - LightElf(06.12.2017 11:01)
- Ещё раз: все LZ идут лесом, им нужен большой буфер для разжимания, иначе толку нет. - SciFi(06.12.2017 11:05)
- Ты ничего не сказал про тип сжимаемых данных и насколько сильно требуется сжать. LZ4 с буфером на 100 байт вполне неплохо себя проявит на 8-битных битмапах, например. - LightElf(06.12.2017 12:46)
- --> - SciFi(06.12.2017 12:49, ссылка)
- Тем более. А еще HTML можно просто токенизировать. - LightElf(06.12.2017 12:56)
- --> - SciFi(06.12.2017 12:49, ссылка)
- Если ты разжимаешь все целиком, или по крайней мере строго с начала какой-то объем то буфер не нужен ВООБЩЕ, если разжимаешь в память, а не компорт, конечно. Идея в том, что та же память и используется. - fk0(06.12.2017 12:11)
- Тогда, может, Арифметическое_кодирование? Хаос(71 знак., 06.12.2017 11:10, )
- Хочу кодирование со словарём, чтобы фиксированный словарь сидел в ПЗУ. - SciFi(06.12.2017 11:22)
- Ты же на нехватку памяти жаловался? Хаос(86 знак., 06.12.2017 11:25, )
- Не понял, как словарь и нехватка памяти противоречат друг другу. - SciFi(06.12.2017 11:30)
- Ты же на нехватку памяти жаловался? Хаос(86 знак., 06.12.2017 11:25, )
- Хочу кодирование со словарём, чтобы фиксированный словарь сидел в ПЗУ. - SciFi(06.12.2017 11:22)
- Ты ничего не сказал про тип сжимаемых данных и насколько сильно требуется сжать. LZ4 с буфером на 100 байт вполне неплохо себя проявит на 8-битных битмапах, например. - LightElf(06.12.2017 12:46)
- Ещё раз: все LZ идут лесом, им нужен большой буфер для разжимания, иначе толку нет. - SciFi(06.12.2017 11:05)
- Пора сводный топик сводных топиков. Спасибо, в общем. - ASDFS(17.11.2017 23:36)
- Так и было задумано. Начать с точки концентрации информации. Там видно будет. - Evgeny_CD(18.11.2017 00:06)
- Так как насчёт сводного супертопика всех сводных топиков? - ASDFS(22.11.2017 22:39)
- Ксения убьет меня :) - Evgeny_CD(22.11.2017 22:43)
- У неё своя поляна. Ваши лайк-мейкерские темы не пересекаются. - ASDFS(22.11.2017 22:46)
- Ксения убьет меня :) - Evgeny_CD(22.11.2017 22:43)
- Так как насчёт сводного супертопика всех сводных топиков? - ASDFS(22.11.2017 22:39)
- Так и было задумано. Начать с точки концентрации информации. Там видно будет. - Evgeny_CD(18.11.2017 00:06)
- heatshrink - under 50 bytes for practical decompression -> --> Evgeny_CD(137 знак., 17.11.2017 22:37, ссылка, ссылка)
- miniz, minilzo, XZ Embedded (LZMA2) Evgeny_CD(202 знак., 17.11.2017 22:30)
- Библиотеки сжатия информации и embedded. LZ4 -> --> " 20KB data is compressed in 0.5mSec using an ARM Cortex M4. Stack requirement is about 16Kb" Evgeny_CD(98 знак., 01.08.2017 23:10 - 17.11.2017 22:25, ссылка, ссылка)
- Обсуждение темы фиксированного словаря -> - Evgeny_CD(17.11.2017 22:27, ссылка)
- По ссылке интересный и быстрый алгоритм сжатия. Примечательно то, что не требуется много памяти для словаря (достаточно всего 768 байт), соответственно можно использовать даже на простейших микроконтроллерах. - Ozelot(02.08.2017 10:17, ссылка)
- Zstandard -> --> - Evgeny_CD(17.11.2017 21:09 - 22:25, ссылка, ссылка)
- shoco a fast compressor for short strings -> Создание своих статических словарей --> - Evgeny_CD(17.11.2017 22:19 - 22:25, ссылка, ссылка)
- SMAZ - compression for very small strings -> То же на Python --> - Evgeny_CD(17.11.2017 22:20 - 22:24, ссылка, ссылка)
- Skrót allows you to build a model of your data and use it to compress short byte sequences of predictable contents. -> - Evgeny_CD(17.11.2017 22:24, ссылка)
- tinf - tiny inflate library (кроме этого, у автора еще много других
интересных проектов по теме) Ozelot(1 знак., 12.06.2022 13:22, ссылка)