OldComp.cz
http://www.oldcomp.cz/

Komprimacne programy
http://www.oldcomp.cz/viewtopic.php?f=37&t=433
Stránka 22

Autor:  iwosh [ 21.03.2019, 16:23 ]
Předmět příspěvku:  Re: Komprimacne programy

Mate niekto v zbierke PackMaker verziu 2.3 a 2.4? Nasiel som len verziu 2.2.

Autor:  iwosh [ 05.02.2021, 19:00 ]
Předmět příspěvku:  Re: Komprimacne programy

Existuje nejaka rychla pakovacia rutina pre ZX okrem RLE metódy ?

Autor:  Busy [ 05.02.2021, 22:37 ]
Předmět příspěvku:  Re: Komprimacne programy

iwosh píše:
Existuje nejaka rychla pakovacia rutina pre ZX okrem RLE metódy ?
Co presne znamena "rychla" pakovacia rutina ? ;)

Je pravda, ze RLE je pre svoju jednoduchost najrychlejsia, zapakovanie 40kB je povedzme sekunda-dve.
O kusok pomalsi je huffman, zapakovanie takych 40kB by som odhadol tak na 5 az 10 sekund.
LZ kompresia je na tom o kusok horsie, je to vypoctovo pomerne narocny algoritmus. Bezne LZ pakery na ZX Spektre pakuju 48kB dat niekedy aj 5 az 10 minut. Da sa to vyrazne urychlit roznymi trikmi, ale stale to bude pomalsie ako RLE alebo huffman.

Preto je ovela rozumnejsie subory pakovat na nejakom vykonnom stroji, a na ZX Spektre potom uz len podla potreby depakovat. Depakovanie LZ je podobne rychle ako RLE (40kB za sekundu, max dve), o kusok je pomalsi huffman (3 az 5 sekund).

Autor:  iwosh [ 06.02.2021, 11:33 ]
Předmět příspěvku:  Re: Komprimacne programy

Busy píše:
iwosh píše:
Existuje nejaka rychla pakovacia rutina pre ZX okrem RLE metódy ?
Co presne znamena "rychla" pakovacia rutina ? ;)
Niečo podobne rýchle ako RLE. ;)

Autor:  Busy [ 06.02.2021, 13:24 ]
Předmět příspěvku:  Re: Komprimacne programy

iwosh píše:
Busy píše:
iwosh píše:
Existuje nejaka rychla pakovacia rutina pre ZX okrem RLE metódy ?
Co presne znamena "rychla" pakovacia rutina ? ;)
Niečo podobne rýchle ako RLE. ;)
Tak to ta asi budem musiet sklamat. RLE kompresia dokaze byt rychla preto, lebo ma zlozitost O(N) a pracuje iba s celymi bajtami. Kompresie typu LZ sice tiez pracuju (v principe) s celymi bajtami, ale obecne maju zlozitost O(N^2), takze pre dlhsie data cas kompresie rastie viacmenej kvadraticky. A zase vela kompresii zalozenych na bitovej manipulacii (napr. Huffman) ma sice zlozitost O(N), ale kedze musia pracovat s bitmi (ktorych je potencialne 8x viac), ten cas je tiez podstatne dlhsi nez pri RLE.

Pre zaujimavost, robil som nejake pokusy, aka rychla by mohla byt LZ kompresia na ZX Spektre, ak by sme kompresnu rutinku optimalizovali na rychlost. Pokusne som si napisal packer "ZxLzPck", ktory robi tu najjednoduchsiu LZ kompresiu (v mojom LZX packeri oznacenu ako LZM) a taketo vysledky som dosiahol:
Kód:
Data               ZxLzPck     TurboImloder
====               =======     ============
ZXrom 16kB          3.50 s        2m 50s
Evoluce.bin         1.40 s           52s
4e4 same nuly       0.76 s            2s
4e4nepaknutelne    11.45 s        3m  5s
Pridal som aj porovnanie s Turboimploderom, ktoreho paker je optimalizovany na velkost, aby sa vosiel do videoramky.

Evoluce.bin su 43 kB dlhe graficke data, su to za sebou naukladane screeny z 1k intra 8volution.
4e4nepaknutelne je 40000 nahodnych bajtov (FOR a=25000 TO 65000: POKE a,255*RND:NEXT a).

Ako vidno, data, kde je vela rovnakych usekov, to zvlada pomerne rychlo, avsak komplikovanejsie data trva zapakovat uz podstatne dlhsie, nez by to zvladla RLE kompresia.

Stránka 22 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/