OldComp.cz http://www.oldcomp.cz/ |
|
Komprimacny program LZX http://www.oldcomp.cz/viewtopic.php?f=45&t=4982 |
Stránka 3 z 6 |
Autor: | Busy [ 07.02.2017, 13:49 ] |
Předmět příspěvku: | Re: Komprimacny program LZX |
SCjoe píše: Vysel jsem z nazvu: Univerzalny LZX packer pre subory do 64kB To vobec nie je potrebne, pretoze LZX depacker nepotrebuje ziadnu pamet navyse mimo Z80 zakladneho adresoveho priestoru 64kB. Okrem toho, blok spakovanych dat a miesto pre rozpakovavane data sa mozu aj ciastocne prekryvat, takze vdaka tomu je mozne na all-ram 64kB depakovat data dlhe az 65536 minus cca mala rezerva sto bajtov. V tej rezerve je depaker + cca osem bajtov na prekrytie blokov a zopar malo bajtov na zasobnik.
a tak si ponechavam nadeji, ze depack bude podporovat i cokoliv nad 64K zakladniho pametoveho prostoru.... |
Autor: | Antony/DTA [ 15.03.2017, 20:35 ] |
Předmět příspěvku: | Re: Komprimacny program LZX |
Zdravím, tak som to vyskúšal a je to celkom fajn. Na moje data sa najviac osvedčila metoda -t56o9o12 a na iné zas -t54o3. Chcel by som napísať niečo k depack rutine. Pri kompresii viacerých blokov (u mňa stránky 16384 KB) a ukladaní skompresovaných dát za sebou si netreba pamätať dĺžky týchto blokov, lebo depack rutina vráti adresu zdrojových dát 2 bajty za koncom depackovaneho bloku. Takže stačí len 2*DEC HL a máme požadovanú adresu. Ak to platí vždy, tak by to tu mohol Busy potvrdiť. A ak to je len náhoda, tak to berte ako kuriozitu, že mi to vyšlo 35 krát. |
Autor: | Busy [ 16.03.2017, 12:53 ] |
Předmět příspěvku: | Re: Komprimacny program LZX |
Antony/DTA píše: Pri kompresii viacerých blokov (u mňa stránky 16384 KB) a ukladaní Pri dekompresii LZM a LZE (-t11 a -t22) ukazuje HL hned na prvy bajt za kompresovanym blokom, takze v tomto pripade to neplati.skompresovaných dát za sebou si netreba pamätať dĺžky týchto blokov, lebo depack rutina vráti adresu zdrojových dát 2 bajty za koncom depackovaneho bloku. Takže stačí len 2*DEC HL a máme požadovanú adresu. Ak to platí vždy, tak by to tu mohol Busy potvrdiť. A ak to je len náhoda, tak to berte ako kuriozitu, že mi to vyšlo 35 krát. Kompresie -t3x a vyssie su uz trosku zlozitejsie, pretoze pouziju bitstream a pocet bajtov v skomprimovanych datach zavisi aj od toho ako do bajtu sadne koniec bitstreamu. Ale obecne pravidlo je ze ako koncova znacka kompresie sa pouziva 16-bitova dlzka dat, preto sa (vzhladom na optimalizaciu dekompresora) na konci dekompresie z kompresovanych dat nacita este 16 bitov, ktore sa ale nasledne zahodia. Takze je vysoko pravdepodobne ze naozaj to vzdy nacita o 2 bajty viac. Overit je to mozne na zaklade vypisu statistiky (prepinac -s): Kód: Packed length Pokial to plati pre nejaky konkretny pocet "bits" delitelny osmimi a zaroven aj pre pocet "bits" nedelitelny osmimi, tak to bude bude platit vzdy pre akykolvek subor skomprimovany kompresiami -t3X, -t4X a -t5X.
============== bytes (bits) |
Autor: | mop [ 24.09.2018, 11:56 ] |
Předmět příspěvku: | Re: Komprimacny program LZX |
Rozbalil jsem data z několika 16- a 4barevných PNG obrázků a prohnal je kompresí LZX. Dopadlo to následovně: Kód: PNG IDAT chunk PNG IDAT chunk LZX unpacked (compression 6) (compression 9) 16 x 16 x 2bpp 63 63 46 (t34o1) 80 16 x 16 x 4bpp 77 77 59 (t34o1) 144 256 x 192 x 2bpp 2 388 2 358 2 497 (t34o3) 12 480 256 x 192 x 4bpp 2 642 2 497 2 720 (t34o3) 24 768 320 x 200 x 2bpp 1 287 1 181 1 227 (t36o8o14) 16 200 320 x 200 x 4bpp 1 468 1 331 1 352 (t34o4) 32 200 640 x 400 x 2bpp 10 596 10 486 11 540 (t36o8o12) 64 400 640 x 400 x 4bpp 16 843 16 616 9 924 (t36o9o13) 128 400 Myslím, že si LZX nevede špatně. Obzvlášť ten poslední řádek mi připadá skoro až podezřelý. |
Autor: | Busy [ 24.09.2018, 12:17 ] |
Předmět příspěvku: | Re: Komprimacny program LZX |
mop píše: ten poslední řádek mi připadá skoro až podezřelý. LzxPack je urceny na pakovanie suborov do dlzky 64kB. Pri citani suboru dlhsieho ako 64kB nacita z neho len prvych 65535 bajtov a informuje o tom vo vypise na stdout.
|
Autor: | mop [ 24.09.2018, 14:24 ] |
Předmět příspěvku: | Re: Komprimacny program LZX |
Busy píše: Pri citani suboru dlhsieho ako 64kB nacita z neho len prvych 65535 bajtov a informuje o tom vo vypise na stdout. No jo, kdybych nebyl "odpočatý" po víkendu, tak bych si asi všimnul.Ještě tři pokusy blízko hraniční hodnoty: Kód: PNG IDAT chunk PNG IDAT chunk LZX unpacked
(compression 6) (compression 9) 320 x 204 x 8bpp 7 141 7 076 7 650 (t36o9o14) 65 484 456 x 285 x 4bpp 8 439 8 431 9 113 (t36o8o13) 65 265 648 x 402 x 2bpp 9 930 9 796 10 863 (t36o8o13) 65 526 |
Autor: | Busy [ 24.09.2018, 15:16 ] |
Předmět příspěvku: | Re: Komprimacny program LZX |
To unpacked boli ake data ? |
Autor: | mop [ 25.09.2018, 10:37 ] |
Předmět příspěvku: | Re: Komprimacny program LZX |
Obsah chunku IDAT rozbalený pomocí zlib.decompress() v Pythonu. |
Autor: | Busy [ 11.04.2019, 09:06 ] |
Předmět příspěvku: | Re: Komprimacny program LZX |
Doniesla a ku mne informacia, ze vraj niektori ludia odmietaju LzxPack pouzivat, pretoze je pod licenciou GPL. Tak by som len chcel upresnit, ze packer/lister na velabitovych pocitacoch su sice GPL, ale depackery pisane v Z80 asembleri, urcene pre pouzitie v aplikaciach pre 8-bity, maju licenciu MIT. Takze ich mozete smelo menit a zaclenovat do svojich programov bez otravnych GPL podmienok. PS: Aj tak si myslim, ze hrat sa na nejake licencie v nasom 8-bitovom svete absolutne nema zmysel... |
Autor: | Panda38 [ 11.04.2019, 09:10 ] |
Předmět příspěvku: | Re: Komprimacny program LZX |
Zajímalo by mě jak by si někdo u 8-bitů představoval "komerční využití". |
Autor: | Busy [ 11.04.2019, 09:48 ] |
Předmět příspěvku: | Re: Komprimacny program LZX |
Panda38 píše: Zajímalo by mě jak by si někdo u 8-bitů představoval "komerční využití". Nejde len o komerciu. Ak si dobre pametam, tak napriklad GPL licencia uklada povinnost zverejnit zdrojove texty. A pokial niekto pouzije nejaky kus takto zverejneneho kodu vo svojom programe, aj tento program musi byt pod GPL, vratane povinnosti zverejnit jeho zdrojaky. Toto moze byt niekedy obmedzujuce, pretoze aj na 8 bitoch nie vzdy chce clovek zverejnovat zdrojaky.
|
Autor: | iwosh [ 13.04.2019, 10:18 ] |
Předmět příspěvku: | Re: Komprimacny program LZX |
NETHER EARTH Kód: MAINCODE 48361 (uncompressed)
LZX 17328 (t34o4, data only) HRUST 1.3 21355 (data only) ZX7 21642 (data only) |
Autor: | Busy [ 02.02.2021, 00:21 ] |
Předmět příspěvku: | Re: Komprimacny program LZX |
Svetlo sveta prave uzrela uz druha verzia komprimacneho programu LZX. Takze sosajte: http://busy.speccy.cz/download/lzxpack02.rar (pre tych co nemaju radi rar: napiste tam koncovku zip) Novinky: - Uplne nove (obvykle) ucinnejsie kompresie (spakuje aj to s cim si verzia 01 neporadila) - Moznost pakovat subor odzadu (vyhoda ked treba subor depakovat na vyssie adresy) - Moznost zapisu parametrov kompresie do include suboru pre depaker (netreba ich prepisovat rucne) - Uplne samostatny depaker (volatelny priamo cez USR v basicu, netreba k nemu ziadny dalsi strojak) - Kontrola ci pri depakovani depakovane data neprepisu este nenacitane pakovane data - Moznost specifikacie mena a/alebo cesty pre vystupne subory - Vypis roznych zaujimavych statistik spakovanych suborov |
Autor: | zxcygnus [ 02.02.2021, 11:17 ] |
Předmět příspěvku: | Re: Komprimacny program LZX |
Pěkné a lákavé... bude i varianta pro skutečný operační systém, nebo jen pro spouštěč her a offisů z Redmondu? |
Autor: | z00m [ 02.02.2021, 11:45 ] |
Předmět příspěvku: | Re: Komprimacny program LZX |
Priložený zdroják a gcc -o lzxpack LzxPack.cpp ti nestačí? |
Stránka 3 z 6 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |