[zxspectrum] Re: algoritmo di compressione

  • From: "Stefano" <flydream@xxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Sun, 16 Apr 2006 10:31:08 +0200

Hai gia' provato a vedere come funzionano i rar e i compattatori che si trovano 
qui:
http://trd.speccy.cz/system.htm
?
come ti sembrano
----- Original Message ----- 
From: "Paolo Ferraris" <pieffe8@xxxxxxxxxxxxx>
To: <zxspectrum@xxxxxxxxxxxxx>
Sent: Sunday, April 16, 2006 6:15 AM
Subject: [zxspectrum] algoritmo di compressione


> Ciao a tutti,
> 
>   approfittando del fatto che in questi giorni c'e` poco traffico sulla 
> lista (a proposito, condoglianze per il tragico avvenimento dei giorni 
> scorsi) ne approfitto per mandarvi questa lunga email mettendovi al 
> corrente dei risultati delle mie sperimentazioni sul mio algoritmo di 
> compressione.
> 
> Come molti di voi gia` sanno, tre anni fa avevo sviluppato un algoritmo 
> di compressione specificatamente per la minigame compo. Infatti, quello 
> che cercavo (e ancora cerco) e` che la dimensione combinata del codice 
> compresso e del decompressore sia la piu` piccola possibile nel caso di 
> minigiochi (pochi KB di codice). In particolare, non mi interessava ne` 
> la velocita` di decompressione ne` tantomeno di quella di compressione, 
> a tal punto che il compressore funziona solo su PC. Il mio codice e` 
> stato usato sia da Russell Marks nei minigiochi Zblast SD e Scrolly 
> Stack, sia da me nelle due versioni di 4k Race e in zxsudoku.
> 
> Recentemente sono tornato a lavorare sul mio algoritmo. Ho scoperto che, 
> gia` con quel che avevo allora, il mio compressore rendeva meglio, per 
> quanto riguarda il criterio descritto qui sopra, dei piu` famosi packers 
> per C64 e Spectrum: anche nei casi in cui il mio codice compresso non 
> era il piu` piccolo, era la dimensione del decompressore a fare la 
> differenza. Per esempio, Exomizer, (credo) il piu` famoso e potente 
> packer del C64, riusciva a rispiarmare, nel comprimere 4k Race refueled, 
> circa 80 bytes rispetto al mio compressore, ma il mio decompressore usa 
> meno di 100 bytes rispetto agli oltri 280 dell'altro.
> 
> Dato che sono un dannato perfezionista (a volte mi odio per questo :-) ) 
> non mi e` andato completamente giu` che qualche compressore per C64 
> comprimesse piu` del mio :-), anche se, ovviamente, non sempre si puo` 
> avere tutto: ci sta` che la compressione non sia ottimale se si vuole 
> tenere il decompressore piccolo.
> 
> Prendendo spunti qua e la`, ho avuto perecchie idee per migliorare il 
> mio compressore. L'idea di base del mio packer --- come la codifica 
> stile-Huffmann viene fatta --- risulta sempre molto valida, ma ho 
> migliorato sia la codifica stile-LZ sia gli algoritmi usati dal 
> compressore per trovare la codifica piu` corta possibile. Ora il mio 
> compressore comprime praticamente uguale a exomizer (almeno nei 
> minigiochi), avendo "ingrossato" il mio decompressore di soli 14 bytes :-)
> 
> Ho quindi recuperato ben 74 bytes in 4k Race Refueled. Forse potrei 
> usarli per aggiungere qualcosa al gioco e risottometterlo di nuovo 
> quest'anno :-)
> (Ovviamente scherzo. Ho fatto ben di piu` che "aggiungere qualcosa" 
> l'anno scorso ma sono stato oggetto di forti critiche. Se facessi anche 
> solo qualcosa di simile mi ammazzerebbero :-) )
> 
> Non so se rilasciare il mio programma. Fare polishing del codice 
> richiede tempo ed e` abbastanza noioso. Non sono neanche particolarmente 
> bravo e veloce a scrivere documentazione. Poi non vorrei perdere il mio 
> "vantaggio" nella minigame compo :-) anche se mettendo il mio codice a 
> disposizione permetterebbe agli sviluppatori per Spectrum di essere allo 
> stesso livello di quelli per Commodore: I commodoriani usano sempre 
> exomizer o similari, mentre finora nessun minigame per lo spectrum usa 
> un algoritmo decente, a parte quelli che usano il mio.
> 
> 
> -p
> 
>

Other related posts: