ESP32. Библиотека сжатия массива данных в памяти

Исправил.

Да, я не вчитывался в тему, но заметил, что вроде как выход с тепловизора низкоразрешающего надо передавать.

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

Затем: а сколько, собственно, градаций яркости у тепловизора-то? 8 бит или меньше? Если мало , то дельты будут вообще крошечные, по 2-3 бита максимум. Ничего сжимать вообще не придется.

автор темы даже данные не выложил для примера… не говоря о коде…
фиг его знает что именно он там передает… использует ли библиотеку какую то…
даташит вовсе говорит что fps можно уменьшить…
https://www.alldatasheet.com/html-pdf/884988/MELEXIS/MLX90640/3004/10/MLX90640.html

а у него так, и не понятно что за данные… там по i2c с камеры идут вроде…

miniz.c может то что надо)))

«По рзеузльаттам илссоевадний одонго анлигсйокго унвиертисета, не иеемт занчнеия, в каокм проякде рсапжоолены бкувы в солве. Галовне, чотбы преавя и пслонедяя бквуы блыи на мсете. осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все-рвано ткест чтаитсея без побрелм».
но я думаю это не тот случай…

Решил вопрос уменьшением битности данных за счет снижения точности измерения
В зависимости диапазона температур из 768 4-х битных значений получается 672 или 576 байт.

При битовом сжатии и на небольшом объеме данных все архиваторы дают очень низкий рейтинг сжатия, поэтому дальнейшую работу над оптимизацией прекратил

После проведения обучения модель TensorFlow Lite Micro будет работать прямо на ESP-хе, так что передача массива данных становится не нужна (только для дообучения)

Всем спасибо за бурную дискуссию

1 лайк

проще было ничего не ужимать, наоборот и, писать в локальную базу SqLite3, а потом её обработать

тут нет ошибки?
Из 768 полубайт (4битных значений) получается 576 байт? - какое же это “сжатие”, это разжатие наоборот…

Да. Ошибся конечно. 4 байта