Перейти к содержанию
    

Подскажите пожалуйста простенькую библиотечку для сжатия данных

Товарищи,

передаю по UART'у  с ПК в микроконтроллер файл размером ~10 МБайт (картинки BMP). По времени это занимает минут 20.

В файле большие области заполнены нулями.  Zip его сжимает до 1 МБайта.

Может есть на си какие-нибудь простенькие библиотеки, для сжатия данных ?

Есть конечно Zip, но это как-то очень избыточно и монструозно, хотелось бы попроще что-то.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для этого годится очень простой в реализации RLE

как раз для передачи таких картинок его и использую

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

37 минут назад, TOG сказал:

Может есть на си какие-нибудь простенькие библиотеки, для сжатия данных ?

Есть libpng для работы с .png:  http://www.libpng.org/pub/png/libpng.html

В исходниках. Которая внутри для сжатия использует zlib: https://www.zlib.net/

Лучше передавать .png, а внутри распаковывать с помощью libpng. .png ничем сжимать не нужно, оно внутри уже сжатое будет (особенно если поставить максимальный уровень сжатия = 9).

Не знаю её требований по ОЗУ, но скорее всего надо быть готовым, что потребует довольно много его. Впрочем - уровень сжатия можно настроить в диапазоне: 0...9. Также есть какие-то настройки (дефайнами) разных параметров. Вроде и размер словаря там можно было настроить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

23 минуты назад, jcxz сказал:

Лучше передавать .png, а внутри распаковывать с помощью libpng. .png ничем сжимать не нужно, оно внутри уже сжатое будет (особенно если поставить максимальный уровень сжатия = 9).

А на этот libpng есть исходники? Где бы их мне добыть? А то Linux не признает формат bmp .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

37 минут назад, Xenia сказал:

А на этот libpng есть исходники? Где бы их мне добыть? А то Linux не признает формат bmp .

Так я же дал ссылки. Там всё есть.

Кроме того - есть ещё руководство по использованию (чтению/записи): http://www.libpng.org/pub/png/libpng-1.0.3-manual.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

35 minutes ago, Xenia said:

А на этот libpng есть исходники?

Странный вопрос. Тем более странно задавать его здесь, а не в поисковике.

http://www.libpng.org/

35 minutes ago, Xenia said:

А то Linux не признает формат bmp .

Ещё более странное утверждение. Что значит не признаёт? Любой просмотрщик картинок умеет его показывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, jcxz сказал:

Так я же дал ссылки. Там всё есть.

Ходила по ссылкам, но мне показалось, что они не работают (Error Forbidden). Но проблема оказалась в том, что я сейчас в Крыму, а потому для меня многие ссылки закрыты. Когда поняла в чем дело, добыла файл через VPN.

Тем не менее, эти исходники меня разочаровали - слишком много непонятного кода, в котором фиг разберешься :). Тогда как мне хотелось бы чего-то попроще для полутоновых изображений (градации серого), когда в сжатии потребности нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для картинок есть еще S3TC, достаточно простой но это сжатие с потерями, и готовую реализацию на C не могу подсказать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

посмотрите библиотеки из этой коллекции: https://github.com/iDoka/awesome-embedded-software (там есть прям раздел "Сжатие")

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 5/5/2024 at 3:29 AM, Doka said:

посмотрите библиотеки из этой коллекции: https://github.com/iDoka/awesome-embedded-software (там есть прям раздел "Сжатие")

Очень крутая подборка. 

Спасибо, Doka !

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...