OldComp.cz

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

Reklama!

Právě je 11 pro 2018, 01:17

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 41 ]  Přejít na stránku Předchozí  1, 2, 3
Autor Zpráva
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 07 úno 2017, 11:45 
Offline
Pan Generální

Registrován: 22 kvě 2013, 20:14
Příspěvky: 2035
Bydliště: Bratislava
Has thanked: 224 times
Been thanked: 378 times
Jiiira píše:
Busy píše:
Jiiira píše:
Ehm, a o 16KB RAM packu už jsi slyšel? :neener:
A ty o 64kB RAM packu ? :poke: :?:
Tak hoď link, ať se poučím 8-) ... ale pak už vůbec nechápu, proč tu provokuješ s 1KB RAM, když dobře víš, že doba se už změnila...
Ja som s tym ZX80 nezacal :shrug: A ohladom tych 64kB, ty si vazne este nepocul o 64kB RAM packu ? :shock: To vies, doba pokrocila... :D Inak bolo to popisane v ktoromsi amare z 80-tych rokov, ale cislo a presny rocnik si uz nepametam. Ale vratme sa k teme. Podla toho obrazku co tu dal SCjoe to vyzera tak ze depakoval iba 768-bajtovy font. A toto by v pohode zvladol moj LZX aj na originalnom ZX80 s 1kB ram bez akychkolvek pridavnych RAM packov. A este by zostalo nieco vyse 100 bajtov volne miesto :)


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

Registrován: 13 kvě 2013, 09:52
Příspěvky: 1768
Bydliště: Mliecna draha
Has thanked: 20 times
Been thanked: 124 times
Busy píše:
...A ty o 64kB RAM packu ? :poke: :?:


Chlapci na ZX81 predsa mozete mat 1MB ram tak ake problemy.

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 07 úno 2017, 12:05 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 11 čer 2013, 14:27
Příspěvky: 1607
Has thanked: 1017 times
Been thanked: 281 times
Hm, velikost pameti od pocatku devadesatych let, kdy jsem poridil dalsich 256K, nejak moc neresim.
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....


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Komprimacny program LZX
PříspěvekNapsal: 07 úno 2017, 12:49 
Offline
Pan Generální

Registrován: 22 kvě 2013, 20:14
Příspěvky: 2035
Bydliště: Bratislava
Has thanked: 224 times
Been thanked: 378 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 bře 2017, 19:35 
Offline
Kecálek

Registrován: 18 říj 2014, 22:10
Příspěvky: 190
Has thanked: 12 times
Been thanked: 42 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 bře 2017, 11:53 
Offline
Pan Generální

Registrován: 22 kvě 2013, 20:14
Příspěvky: 2035
Bydliště: Bratislava
Has thanked: 224 times
Been thanked: 378 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 zář 2018, 10:56 
Offline
Kecálek
Uživatelský avatar

Registrován: 06 srp 2013, 09:49
Příspěvky: 217
Bydliště: Praha
Has thanked: 182 times
Been thanked: 57 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 zář 2018, 11:17 
Offline
Pan Generální

Registrován: 22 kvě 2013, 20:14
Příspěvky: 2035
Bydliště: Bratislava
Has thanked: 224 times
Been thanked: 378 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 zář 2018, 13:24 
Offline
Kecálek
Uživatelský avatar

Registrován: 06 srp 2013, 09:49
Příspěvky: 217
Bydliště: Praha
Has thanked: 182 times
Been thanked: 57 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 zář 2018, 14:16 
Offline
Pan Generální

Registrován: 22 kvě 2013, 20:14
Příspěvky: 2035
Bydliště: Bratislava
Has thanked: 224 times
Been thanked: 378 times
To unpacked boli ake data ?


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

Registrován: 06 srp 2013, 09:49
Příspěvky: 217
Bydliště: Praha
Has thanked: 182 times
Been thanked: 57 times
Obsah chunku IDAT rozbalený pomocí zlib.decompress() v Pythonu.


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ů: 41 ]  Přejít na stránku Předchozí  1, 2, 3

Všechny časy jsou v UTC + 1 hodina


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvní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