Fórumok
Sziasztok,
32 bites mikrochip-en akarok bzip2-vel tömöríteni. Sima zip-re találtam kódot, de annál nagyobb tömörítése kell, ezért a bzip2. Előbbi kb. 37%-ra nyomja le az adatot, utóbbi 16%. Előbbi <2 MB residens mem-et használ futáshoz, utóbbi <8 MB.
Egyetlen szál C forrás fájlt keresek, amelyhez nem kell külön header fájl vagy egyéb lib. Zip-hez van egy ilyen, egy ilyesmit keresek bzip2-hez:
https://paste.ubuntu.com/26539770/
Ötlet? Kösz.
Hozzászólások
Vagy tudnátok-e ajánlani bzip2 helyett valamit, ami beágyazott eszközre van és jobban tömörít? Köszi.
Egyébként megnéztem sok tömörítőt (zpaq, lrzip, xz, zstd stb), de az adat típusomra bzip2 tömörít a legjobban és nagyságrenddel kevesebb memória kell neki.
Ha foleg kitomoritesz, akkor brotli-t erdemes kiprobalnod.
Egyebkent:
https://landley.net/code/micro-bunzip.c
https://landley.net/code/bunzip-4.1.c
Betömörítéshez kellene. Látom pont betömörítéshez nem tett fel kódot az általad linket arc, mert akkor tesztelném majd.
Lesz elég ram-od hozzá?
Ez jó kérdés, lehet hogy nem. 8 MB rezidens mem használatot mértem --best opcióval bzip2-nél, nekem fél megám lesz úgy néz ki, ezért az is kérdés hogy tudom-e limitálni a memória erőforrást a betömörítésnél.
Más algo-t találtam sokat ahol lehet limitálni, sőt pár byte-on túl nem is kell, de azoknál a fenti 1/3 rátájú tömörítés van. Ennél jobban össze akarom nyomni az adatot.
Az adat átalakításával is kísérleteztem, de maradtak az arányok.
https://catchchallenger.first-world.info/wiki/Quick_Benchmark:_Gzip_vs_…
Időd az van? (vagy a betömörítésnek gyorsnak is kell lennie, mert mondjuk akkuról megy az eszköz)
Tömörítendő adatok titkosak? Nem lehetne feltenni valahova? Lehet hogy egy tömörebb adatstruktúrát kellene kialakítani. Például bzip2 bwt-t használ a könnyebb tömöríthetőség miatt, nálad lehet az segít.
Akksi kímélő kell és majd megnézem, de így lehet hogy kevesebbet fog enni a wifi chip a hosszabb (max +20-30%?) feltöltéssel mint hogy a proci tömörítsen egy nagyot. Tehát valóban, inkább akksit akarok kímélni.
Akkor minél kevesebbet számoljon az a chip!
Egyébként meg vizsgáld meg, hogy nem lehet e egyéb, nem általános tömörítést alkalmazni.
Pl hőmérséklet értéket fölösleges egy byte-on továbbítani, ha lehet 6 vagy 7 biten is ábrázolni (és van egyéb, továbbítandó adat).
Kösz, majd megnézem. Még 1-2 hét míg ki tudom próbálni.
Megneznem a libszl-t (haproxy low memory footprint tomoritoje), hatha.
Szep a forrasa, piszkosul nem ker ramot, es hangyanyival tomorit benabban.
kösz.
Mármint libslz, nem?
+1 :D