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

Komprimacny program LZX
http://www.oldcomp.cz/viewtopic.php?f=45&t=4982
Stránka 36

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
a tak si ponechavam nadeji, ze depack bude podporovat i cokoliv nad 64K zakladniho pametoveho prostoru....
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.

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í
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.
Pri dekompresii LZM a LZE (-t11 a -t22) ukazuje HL hned na prvy bajt za kompresovanym blokom, takze v tomto pripade to neplati.

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
==============
bytes   (bits)
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.

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)
:like:

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 36 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/