RLE bitfield kompresszor? /Pascal/
Szia.
Szerintem :
1. Egy dimenziós tömbbé (vektorrá) alakitod a két dimenziós tömböt (ez nem feltétlenül kell, de elvileg igy egyszerűbb a dolog, bár memóriaigényesebb).
2. Az egy dimenziós tömbben lévő bájtokat átalakid bitekké (1 bájtból 8 bit lesz) ezeket szintén eltárolod egy egy dimenziós tömbben vagy egy stringben.
3. alkalmazod a RLE metódust a stringre vagy a bites egy dimenziós tömbre (tehát megszámolod az egymás után következő 0-kat vagy egyeseket és a darabszámukat tárolod le (itt az érték nem is nagyon kell mivel egyes után nullának kell következni vagy forditva, de ha neked úgy szimpatikus akkor az értéket is letárolhatod).
Visszafelé forditott a módszer.
RLE-ből bites string vagy tömb, ebből egy dimenziós tömb (vektor), ebből két dimenziós tömb a szabálynak megfelelően.
Bár az 1-es lépés elvileg simán kihagyható, mivel a két dimenziós tömb elemeit simán át lehet bitekké alakitani két for ciklussal. Visszafelé sem kell az egydimenziós tömb, simán lehet RLE-ből két dimenziós tömbbe rakni az adatokat (két változó, és egy feltételvizsgálat).
Sok sikert.
üdv.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!