Teljesen lámer vagyok a témában, de kéne egy kis algoritmus ,ahhoz, hogy 8knyi 8bites adatot törmöritsek ez egy mintavett jel.
Programozás topic - Szoftverfejlesztés fórum
hozzászólások
KovacsUr
(addikt)
Teljesen random a jel (~fehér zaj), vagy van benne valami szabályosság?
gesuz
(senior tag)
Az is jó ha valaki tud nekem mondani valamit az adat vesztés nélküli törmörítési eljárásokról
Nekem a Delphi jön be nagyon, talán azért mert pascallal kezdtem.
(najó, LOGOval kezdtem, bár azt megutáltam, mert sehogysem sikerült oprencert írnom vele )
Adatvesztés nélküli tömörítés:
Input: AAAABBBB
Output: A4B4
Ennél komplexebb tömörítőt még nem írtam
Viszont így 50%ra tömörít össze, az már elég jó. Ja, és gyors
KovacsUr
(addikt)
Ja, ezt RLE tömörítésnek hívják, egyszerűbb nemigen van... és lehet, hogy valóban használható itt (ezért kérdeztem egyébként, milyen jellegű a jel)
HEBI
(senior tag)
4433
Első byte a miből, a második mennyi. Amíg el nem fogy a sor.
Kb. mindenki így kezdte, de speciális esetektől eltekintve ez kb 185% tömörítés lesz. Komolyan tanítottak valami hasonlót még szakközépbe. A jobbak úgy játszanak, hogy bittérképet használnak. Kb. annyit kell tárolni, hogy hol van az a valami. Ja és lehet variálni is az okosságokat azaz több tömörítési eljárást használni, csak aztán a végén bírd visszaalakítani.
4433
A lényeg hogy ha két szám van egymás után akkor egyértelműen az első vót a data, a másik a kvantiti
Nálad a labda
Azért van buktatója is:
I: ABCDEF
O: A1B1C1D1E1F1
-100%
gesuz
(senior tag)
Ezzel tudod mi a geb@sz. Gondoljunk egy egyszerű szinuszra.
Szalma
(őstag)
Ezért szoktak jelzőbájtot használni az RLE esetén, mert akkor csak a jelzőbájt esetén bukik az ember, viszont minden ''tömörítvény'' 1 bájttal hosszabb:
AAABBBBBB -> AAAC6B
Ahol C a jelzőbájt...
Szeretettel:
Szalma
ui.: Igaziból sokkal hatékonyabb a dolog, ha nem bájtban dolgozik a tömörítő, hanem a statisztikának éppen megfelelő bithosszal, a legkevesebbszer előforduló bitsor ''jelzéssel''.