TOG 0 2 мая Опубликовано 2 мая · Жалоба Товарищи, передаю по UART'у с ПК в микроконтроллер файл размером ~10 МБайт (картинки BMP). По времени это занимает минут 20. В файле большие области заполнены нулями. Zip его сжимает до 1 МБайта. Может есть на си какие-нибудь простенькие библиотеки, для сжатия данных ? Есть конечно Zip, но это как-то очень избыточно и монструозно, хотелось бы попроще что-то. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mitya1698 18 2 мая Опубликовано 2 мая · Жалоба для этого годится очень простой в реализации RLE как раз для передачи таких картинок его и использую 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 2 мая Опубликовано 2 мая · Жалоба 37 минут назад, TOG сказал: Может есть на си какие-нибудь простенькие библиотеки, для сжатия данных ? Есть libpng для работы с .png: http://www.libpng.org/pub/png/libpng.html В исходниках. Которая внутри для сжатия использует zlib: https://www.zlib.net/ Лучше передавать .png, а внутри распаковывать с помощью libpng. .png ничем сжимать не нужно, оно внутри уже сжатое будет (особенно если поставить максимальный уровень сжатия = 9). Не знаю её требований по ОЗУ, но скорее всего надо быть готовым, что потребует довольно много его. Впрочем - уровень сжатия можно настроить в диапазоне: 0...9. Также есть какие-то настройки (дефайнами) разных параметров. Вроде и размер словаря там можно было настроить. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 2 мая Опубликовано 2 мая · Жалоба 23 минуты назад, jcxz сказал: Лучше передавать .png, а внутри распаковывать с помощью libpng. .png ничем сжимать не нужно, оно внутри уже сжатое будет (особенно если поставить максимальный уровень сжатия = 9). А на этот libpng есть исходники? Где бы их мне добыть? А то Linux не признает формат bmp . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 2 мая Опубликовано 2 мая · Жалоба 37 минут назад, Xenia сказал: А на этот libpng есть исходники? Где бы их мне добыть? А то Linux не признает формат bmp . Так я же дал ссылки. Там всё есть. Кроме того - есть ещё руководство по использованию (чтению/записи): http://www.libpng.org/pub/png/libpng-1.0.3-manual.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 17 2 мая Опубликовано 2 мая · Жалоба 35 minutes ago, Xenia said: А на этот libpng есть исходники? Странный вопрос. Тем более странно задавать его здесь, а не в поисковике. http://www.libpng.org/ 35 minutes ago, Xenia said: А то Linux не признает формат bmp . Ещё более странное утверждение. Что значит не признаёт? Любой просмотрщик картинок умеет его показывать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 229 2 мая Опубликовано 2 мая · Жалоба Я успешно использовал https://github.com/atomicobject/heatshrink 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 2 мая Опубликовано 2 мая · Жалоба 5 часов назад, jcxz сказал: Так я же дал ссылки. Там всё есть. Ходила по ссылкам, но мне показалось, что они не работают (Error Forbidden). Но проблема оказалась в том, что я сейчас в Крыму, а потому для меня многие ссылки закрыты. Когда поняла в чем дело, добыла файл через VPN. Тем не менее, эти исходники меня разочаровали - слишком много непонятного кода, в котором фиг разберешься :). Тогда как мне хотелось бы чего-то попроще для полутоновых изображений (градации серого), когда в сжатии потребности нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amaora 25 2 мая Опубликовано 2 мая · Жалоба Для картинок есть еще S3TC, достаточно простой но это сжатие с потерями, и готовую реализацию на C не могу подсказать. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 78 2 мая Опубликовано 2 мая · Жалоба https://qoiformat.org/ https://github.com/nothings/stb/blob/master/stb_image.h http://elm-chan.org/fsw/tjpgd/ 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doka 4 4 мая Опубликовано 4 мая · Жалоба посмотрите библиотеки из этой коллекции: https://github.com/iDoka/awesome-embedded-software (там есть прям раздел "Сжатие") 1 1 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TOG 0 8 мая Опубликовано 8 мая · Жалоба On 5/5/2024 at 3:29 AM, Doka said: посмотрите библиотеки из этой коллекции: https://github.com/iDoka/awesome-embedded-software (там есть прям раздел "Сжатие") Очень крутая подборка. Спасибо, Doka ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться