Kezdőoldal » Számítástechnika » Programozás » RLE bitfield kompresszor?...

RLE bitfield kompresszor? /Pascal/

Figyelt kérdés
Run length encoding kompressziót kéne írnom pascalban, ami megy is, byteokkal, de most bit szintű kompresszióval kellene dolgozni, ráadásul két dimenziós tömbön.

2017. ápr. 16. 03:13
 1/2 anonim ***** válasza:
Jó.
2017. ápr. 16. 08:31
Hasznos számodra ez a válasz?
 2/2 coopper ***** válasza:

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.

2017. ápr. 16. 08:45
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!