Minimális erőforrásigényű dekompresszor algoritmust keresek, MC6800-ás CPU-ra.
A rendelkezésre álló olvasási művelet 3 bájtos blokkokban teszi lehetővé az adatok olvasását. Ezeket az adatokat egy adott címtől kezdve kell eltárolnom a memóriában. Mivel az olvasható adatmennyiség mérete korlátos, jó lenne az adatokat tömörített formában tárolni, és kiolvasás közben kitömöríteni, így talán el lehetne érni, hogy a rendelkezésre álló 8KB memóriát majdnem tele lehessen tölteni adatokkal.
Jelenleg az LZSS algoritmus egy speciálisan ehhez a feladathoz módosított változatán dolgozom, de még mielőtt túl sok energiát ölnék bele, megkérdezem, hátha valakinek van jobb, célszerűbb ötlete.
Az adatok összetömörítését egy C program fogja végezni, így ilyenkor tetszőleges erőforrásigény elfogadott. Csak a kitömörítés a szűk keresztmetszet.
- 416 megtekintés
Hozzászólások
Ezt nézd meg, hátha: https://github.com/rwillenbacher/mdeflate
- A hozzászóláshoz be kell jelentkezni
Köszönöm, meg fogom nézni, bár így elsőre egy nagyságrenddel nagyobb műveletigényűnek látszik, mint amennyi van rá. Terveim szerint 20-30 bájtnál nem lenne több a kitömörítő kód, és csak rém egyszerű műveletekből állhat.
- A hozzászóláshoz be kell jelentkezni
Akkor meg ez lehet erdekes: https://github.com/atomicobject/heatshrink
- A hozzászóláshoz be kell jelentkezni
Úgy látom, ez is egy LZSS származék, megnézem, köszönöm!
- A hozzászóláshoz be kell jelentkezni
Ha a bemenő adatok valamilyen szempontból speciálisak, akkor aszerint érdemes keresni. Mik az adatok, szabad tudni?
Program memóriában lesz a tömörített adat? Tehát a kitömörítő+adat mennyiség az amit optimalizálni kell?
- A hozzászóláshoz be kell jelentkezni
A bemenő adat nem speciális - szerintem -, tetszőleges. Jellemzően gépikódú program és a hozzá tartozó adat, de előre ezt nem lehet tudni. Ez a tömörítés a betöltési művelet végére kerülne, hogy nagyobb mennyiségű adatot lehessen betölteni.
- A hozzászóláshoz be kell jelentkezni