OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 19.03.2024, 11:25

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 76 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6  Další
Autor Zpráva
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 07.02.2017, 13:49 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3636
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
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.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 15.03.2017, 20:35 
Offline
Radil

Registrován: 18.10.2014, 23:10
Příspěvky: 376
Has thanked: 28 times
Been thanked: 120 times
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.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 16.03.2017, 12:53 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3636
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
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.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 24.09.2018, 11:56 
Offline
Kecálek
Uživatelský avatar

Registrován: 06.08.2013, 10:49
Příspěvky: 220
Bydliště: Praha
Has thanked: 232 times
Been thanked: 66 times
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ý.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 24.09.2018, 12:17 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3636
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
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.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 24.09.2018, 14:24 
Offline
Kecálek
Uživatelský avatar

Registrován: 06.08.2013, 10:49
Příspěvky: 220
Bydliště: Praha
Has thanked: 232 times
Been thanked: 66 times
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


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 24.09.2018, 15:16 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3636
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
To unpacked boli ake data ?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 25.09.2018, 10:37 
Offline
Kecálek
Uživatelský avatar

Registrován: 06.08.2013, 10:49
Příspěvky: 220
Bydliště: Praha
Has thanked: 232 times
Been thanked: 66 times
Obsah chunku IDAT rozbalený pomocí zlib.decompress() v Pythonu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 11.04.2019, 09:06 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3636
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
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...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 11.04.2019, 09:10 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1967
Bydliště: Most, Praha
Has thanked: 860 times
Been thanked: 696 times
Zajímalo by mě jak by si někdo u 8-bitů představoval "komerční využití". :-)

_________________
i++ (INC) increment
i-- (DEC) decrement
i@@ (EXC) excrement


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 11.04.2019, 09:48 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3636
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
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.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 13.04.2019, 10:18 
Offline
Radil

Registrován: 18.10.2013, 15:30
Příspěvky: 263
Bydliště: Oakland, Slovakia
Has thanked: 25 times
Been thanked: 60 times
NETHER EARTH
Kód:
MAINCODE    48361 (uncompressed)
LZX         17328 (t34o4, data only)
HRUST 1.3   21355 (data only)
ZX7         21642 (data only)
:like:

_________________
Didaktik Gama | ZX Spectrum 128 | ZX Diskface Quick A | BetaDisk 128C Interface | D40 & D80 | divIDE | Interface M/P | Multiface 128 (GOTDJ) | Gama Breaker | D80mini

"Kvalita a stabilita Windows XP se Microsoftu nevyplatila, stal se takovou temnou připomínkou toho, co se stane, když odvedete svou práci moc dobře."


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 02.02.2021, 00:21 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3636
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
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


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 02.02.2021, 11:17 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2326
Has thanked: 302 times
Been thanked: 636 times
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?

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 02.02.2021, 11:45 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 05.09.2013, 14:08
Příspěvky: 1064
Bydliště: Smolenice
Has thanked: 130 times
Been thanked: 472 times
Priložený zdroják a gcc -o lzxpack LzxPack.cpp ti nestačí?

_________________
To err is human, but to really foul things up requires a computer.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 76 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 3 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz