26

Po poludniu dokladniej odpowiem bo jestem na zebraniu jakiejs partii i musze wyjezdzic karnet na nartach ;)

Ale jesli szybkosc ma znaczenie to zapomnij o shrinklerze. Apl jest najbardziej zbalansowany ma super wydajnosc i jest szybki.

Czy moze shrinkler nie uzywac strony zero? Oczywiscie. Chyba tylko dwie komorki na zp dobrze by bylo zeby zajmowal ale jak trzeba to nawet i to da sie obejsc.

Bufory tak. Zajmuje w tej wersji 6 stron pamieci ale tylko dlatego ze mlodsze adresy bufora sa uzywane jako liczniki.. zmiescilby sie w 3 syronach.
Po poludniu opisze dokladniej

http://atari.pl/hsc/ad.php?i=1.

27

Tak, szybkość jest dla mnie istotna, bo w locie rozpakowuję plansze w grze podczas przechodzenia z planszy do planszy i nie może być za długo czarny ekran, bo się gracze zniechęcą, żeby nie powiedzieć wq...ą:-)

Takie rozpakowanie u mnie za pomocą apl, to jest 6k danych graficznych, plus dwa fonty po 1k, więc 8k musi się rozpakować w czasie do sekundy. U mnie to trwa za pomocą unapl standardową biblioteką z Mad Pascala jakieś 40-50 ramek.

Teraz doczytałem we wcześniejszych postach, że testowałeś dane podobnej wielkości i już po optymalizacjach uzyskałeś 488 ramek, czyli około 10x wolniej niż apl. W takim razie odpuszczę, może mi się ta kompresja przyda kiedyś do innych zastosowań, widać do innych celów jest shrinkler.

28 Ostatnio edytowany przez tebe (2021-02-03 21:36:16)

w swoich starych notatkach na temat metod kompresji natknąłem się na opis Power Packer-a (Amiga)

Prg Power Packer pakuje dlugosci ciagow za pomoca 2 bitow, i w zaleznosci
od potrzeb zwieksza ta liczbe np.

0 - 00         3 - 1100        6 - 111100
1 - 01         4 - 1101        7 - 111101
2 - 10         5 - 1110        8 - 111110

Gdy wystapi kombinacja 11 tzn. ze nalezy czytac dalej kod, dlugosc ciagu
jest zwiekszana, powtarzamy operacje dopoki nie wystapi kombinacja bitow
rozna od 11.
*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

29

to chodzi o Amigoskiego PP?


@Mq: juz rozwiazales swoj problem :-) Shrinkler jest najwydajniejszy i najwolniejszy :-)

tylko _DST musi byc na ZP reszte mozna przeniesc za kod albo do samomodyfikacji w kodzie :-)

inicjacje tablic mozna zmienic i np. jesli depakujesz 8kb dane to tylko dwie pierwsze strony bufora sa zajete a pozostale strony bufora po 32 bajty z poczatku strony reszte mozna uzywac ;-)

http://atari.pl/hsc/ad.php?i=1.

30

Czytając o PS5 dowiedziałem się jeszcze o czymś o nazwie Kraken: https://www.neogaf.com/threads/kraken-v … 5.1570901/

https://www.youtube.com/watch?v=jofNR_WkoCE

31

Fajnie, ale to komercyjny projekt...

What can be asserted without proof can be dismissed without proof.

32

daja mozliwosc przetestowania pakowania... przy obrazku testowym conan.gfx wychodzi blad ;-) nie przewidzieli Atari ;-)

http://atari.pl/hsc/ad.php?i=1.

33

Jeśli ktoś czuje się na siłach to można jedną małą zmianą przystosować Shrinklera do pakowania w taki sposób żeby na 6502 dało się to szybko dekompresować:

wystarczy zawęzić licznik kopiowanych bajtów do 8-bit (jest 16bit) - to algorytm rodziny LZ więc kopiowanie jest intensywnie wykorzystywane. Taka mała modyfikacja a zmienia wszystko :-)

sprawdziłem, co prawda tylko na 3 plikach ale daje to już jakiś obraz: najczęściej ilość to przedział 2-44 bajty sporadycznie przekracza wartość 7-bitową (8 bitową raz ale specjalnie przygotowałem dane) więc utrzymywanie 16-bitowego licznika za każdym razem...

http://atari.pl/hsc/ad.php?i=1.

34

Fox dolaczyl i na dzien dobry 4 klatki przyspieszenia :D


https://xxl.atari.pl/shrinkler-decompressor/

http://atari.pl/hsc/ad.php?i=1.

35 Ostatnio edytowany przez Fox (2021-02-07 18:44:21)

xxl napisał/a:

roznego rodzaju dane, binarki, grafike, tekst, muzyke... wszystko pakuje !!! znacznie !!! lepiej od kokurencji.

gpl-3.0.txt: 35149
lzfse: 12545
zopfli --deflate: 11410
Shrinkler -d -p -9: 11584

https://www.youtube.com/watch?v=jofNR_WkoCE

36

u mnie ten plik odpowiednio:

shrinkler: 11532
lzip: 11387
deflater: 11390
packfire: 11277

tu srinkler wypada najgorzej :-) ciekawe czy wielkosc pliku do kompresji ma znaczenie...

http://atari.pl/hsc/ad.php?i=1.

37

Dlaczego masz inne wyniki od moich? Skąd wziąłeś Shrinklera i Deflater? Ja skompilowałem Shrinklera z GitHuba, a zopfli z MSYS2.

https://www.youtube.com/watch?v=jofNR_WkoCE

38 Ostatnio edytowany przez xxl (2021-02-07 20:59:16)

Shrinkler (no parity) do sciagniecia: https://xxl.atari.pl/shrinkler-decompressor/    na samym dole

natomiast zopfli ma standardowo -i15 ja dalem i1000 (silniej pakuje)

http://atari.pl/hsc/ad.php?i=1.

39

Tak sobie obserwuje i podziwiam wasze efekty pracy i też się pobawiłem (w ramach żartu), beat this:
zip - ultra - PPMd - 9602
7zip - ultra - PPMd - 9595
:)

40

PPMd is an extraordinary algorithm for compressing text

innego rodzaju dane tez pakuje?

http://atari.pl/hsc/ad.php?i=1.

41 Ostatnio edytowany przez xxl (2021-02-10 15:24:06)

sprawdzilem i teksty do ok. 22kb shrinkler pakuje lepiej od deflatera, powyzej tego sytuacja sie odwraca


ciekawe.

---
prawda jest jeszcze inna... sprawdzalem teksty ktore sa listingami progrgamow i tam shrinkler faktycznie wygrywa, jesli sprawdzac zwykly tekst jak ten gpl to deflater goruje :-)

http://atari.pl/hsc/ad.php?i=1.

42

dzis nadejszla aktualizacja unShrinklera, Fox skrocil kod o 5 bajtow :-)

http://atari.pl/hsc/ad.php?i=1.

43

Następne 19 bajtów. :)

https://www.youtube.com/watch?v=jofNR_WkoCE

44

oraz znaczne przyspieszenie. program testowy (dekompresja obrazka) pokazal wzrost predkosci o 7 ramek.

wczesniejsze poprawki przynosily srednio 1-2 klatki - to tak dla uzmyslowienia skali korzysci ktore przyniosly ostatnie dni :D

http://atari.pl/hsc/ad.php?i=1.

45

moglibyście rozważyć wersję dla 65816 ?

plik znajduje się w pamięci dodatkowej (max 64KB) i dekompresowany jest pod 24bit adres

nikt jeszcze nie przystosował dekompresora pod 65816, albo nikt nie udostępnił

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

46

@TeBe, ale to już w dziale 16 bit :D

Sikor umarł...

47 Ostatnio edytowany przez Fox (2021-03-25 22:14:03)

Może kogoś zainteresuje mój warsztat. Mam teraz monitor 4K i świetny edytor, ale przy bardziej zaawansowanych optymalizacjach kartka jest niezastąpiona.

http://www.atari.org.pl/forum/misc.php?action=pun_attachment&item=7491&download=0

tebe napisał/a:

moglibyście rozważyć wersję dla 65816 ?

To ma sens, bo kod jest mocno 16-bitowy i nawet kulawe przełączanie się między trybami 8/16 bitów nie powinno boleć. Plus MVN się przyda. Ale dopał nie będzie taki, jak przy szybkim mnożeniu na 6502.

xxl napisał/a:

dziwna sprawa... dlaczego PC kompresory nie daja rady jakiemus kranczerowi z Amigi?

Dobre pytanie.
Na PC zwykle kompresuje się tylko bardzo duże zbiory i przykłada wielką wagę do wydajności dekompresji, a mniejszą do stopnia kompresji. Shrinkler wykonuje jedno mnożenie i kilka operacji warunkowych na każdy bit skompresowanego strumienia. Nawet na wypasionym pececie dekompresja tak skompresowanych gigabajtów trochę potrwa i nie ma jak jej zrównoleglić. Na Amidze i Atari każdy poczeka te kilka sekund na rozkompresowanie pojedynczych kilobajtów. Na pececie przydałaby się akceleracja sprzętowa. Być może dałyby radę akceleratory AI, które są świetne w mnożeniach.

Post's attachments

unshrinkler-getBit-small.jpg 53.47 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.
https://www.youtube.com/watch?v=jofNR_WkoCE

48 Ostatnio edytowany przez xxl (2021-03-26 16:15:57)

kolejny wydajny dekompresor dodany ZX0

https://github.com/einar-saukas/ZX0

i na atari:

https://xxl.atari.pl/zx0-decompressor/


tutaj porownanie:

https://www.cpcwiki.eu/forum/programmin … #msg197727

http://atari.pl/hsc/ad.php?i=1.

49

WTF? Ci amstradowcy to piszą doktoraty z cruncherów?

https://www.youtube.com/watch?v=jofNR_WkoCE

50

czy ktos moglby spakowac RR: http://www.atarimania.com/game-atari-40 … s4389.html
exomiserem i podac dluggosc pliku? niestety ten kompresor jest dla mnie za skomplikowany.

http://atari.pl/hsc/ad.php?i=1.