Tömörítő, jaj nekem?
A feladat az, hogy egy két szinű kép tartalmát szeretném betömöríteni olyan módon, hogy a kép pixeleit sorról sorra megvizsgálom, és ha 4-nél több egyezést találok, akkor azt kiírom egy bájtba, az alábbiak szerint:
A bájt balról legelső bitje 1, ez jelzi, hogy tömörítvény.
A bájt balról második bitje 1 ha fekete és 0 ha fehér.
A bájt további hat bitje a pixelek száma (minusz 4). Ez maximum 67 lehet.
Ha az azonos szinű pixelek száma nem haladja meg a négyet, vagy ha nem azonosak a pixelek, akkor azokat tömörítés nélkül kell kiírni, az alábbi formában:
A bájt balról legelső bitje 0. Ez jelzi, hogy nem tömörített.
A bájt balról második és harmadik bitje számláló, ami azt jelzi, hogy hány bites szekvencia következik.
A bájt további öt bitje maga a szekvencia, aminek a tartalma a pixelek egymás utániságától függ. Ha a pixel fekete akkor egy 1-es, ha fehér akkor 0 lesz. például ilyen
0 11 10010
ez a bájt tartalmilag nem tömörített, négy darab pixelt tárol, amik egy fekete, két fehér és még egy fekete.
1 0 111110
ez a bájt meg tömörített, fehér pixeleket tömörít, azokból 66-ot. Mivel a 111110 az decimálisan 62 és a tömörítés az első négyet nem számolja. Ha 4 egyforma van csak, akkor azt tömörítetlenül írja le, ha van egy ötödik is, akkor azt egynek írja. Ezért 67 a maximum. A 67 egyforma tömörítve így nézne ki:
1 0 111111
vagy ha feketék a pixelek, akkor meg így:
1 1 111111
Ha 67-nél több egyforma van, akkor a 67-et kiírja egy bájtba és folytatja lenullázott számlálóval.
A balról első bit állapota: 1 ha tömörített, és 0 ha nem.
A balről második bit ha tömörített, akkor színbit (0 ha fehér, 1 ha fekete)
Ha nem tömörített akkor a második és a harmadik bit is számláló.
Ezt szeretném megvalósítani, freepascalban. Előre is köszönöm a konstruktív hozzászólásokat.
000000000000000
000000000000000
00***********00
00***********00
000000000000000
000000000000000
000000000000000
000000000000000
00___________00
00___________00
000000000000000
000000000000000
0000000000
00______00
0000000000
"Ennek jó lenne megrajzolni a folyamatábráját."
Akkor rajzold meg ha neked jó lenne attól. Mi tart vissza?
Igazán nem tudom, mi értelme volt az utolsó három bejegyzésnek?
Nyilvánvaló, hogy olyanok írták ezeket, akik arra sem képesek, amire én.
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!