data compression

hello Nordic

i am working with nrf52832 and nrf52840, with zephyr (ncs v2.1.2)

i am trying to compress vibration sensor data before sending it via ble (i have several 16k byte samples that i read from external flash before sending, i have some limitation of RAM size so i can not use very big bufs on RAM) .

i have tried to use the zephyr built in LZ4 module on my data (sensors data) with not such good results.

also i did not see any difference on ratio when using the default ' LZ4_compress_default(..) ' and the compress oriented API ' LZ4_compress_destSize(..) ' 

i gave both APIs 2k of data to compress and it did not compress at all. 

1.  what is the difference between the 2 APIs ?

2. i saw there is also lz4_hc (high compress) .c module that i am not sure how to use and if it can bring better results ?

3. if i would try to use a dictionary on a 16k bytes of sample could it give some significant improve on ratio ? if so, how can i use it i did not find any example or guide on that ?

if no, are there any recommended compression algorithms i can try/test that i can integrate to zephyr / ncs, (or already integrated ? ) is there some guide for such integration ?

hope to read you soon

best regards

Ziv 

Related