[zxspectrum] Re: Perche` non turbo con decompressore Huffman?

  • From: Paolo Ferraris <pieffe8@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Sun, 17 Feb 2013 12:58:57 -0800

On 2/17/2013 1:00 AM, Stefano Donati wrote:
Ciao Paolo,

probabilmente è per via del fatto che il loader con decodifica Huffman è stato già fatto 
anni fa: sicuramente conoscerai il demo DigiSynth, che al momento mi pare sia l'unico 
software che si carica utilizzando questa tecnica (facendo, tra l'altro, un uso massiccio 
delle routine di caricamento in ROM - quindi senza turbo). La "proof of 
concept" che ho realizzato sfrutta anche un altro loader già esistente e 
opportunamente adattato che combina la codifica Manchester inversa alla codifica Huffman, 
riducendo notevolmente i tempi di caricamento.
Non mi ricordavo della codifica Machester inversa: molto interessante visto che permette di accorciare la lunghezza degli "1" come gli "0" (quindi permettendo un risparmio di circa il 33% del tempo) credo non modificando le frequenze reali del segnale (ad occhio, bisognerebbe avere un analizzatore di spettro per esserne sicuri). La piu` grande difficolta` che vedo e` che il loader e` piu` complicato di quello originario che semplicemente conta il prossimo passaggio di fronte.

Avete mai investigato una codifica "Huffman" non binaria ma a 4 segnali? Due di questi sarebbero i due della Manchester inversa "normale", ed gli altri due a lunghezza doppia. Secondo una mia analisi strettamente non scientifica :-) si potrebbe ridurre il caricamento del 30%.

Comunque hai ragione il loader Huffman e` un problema risolto. Nel frattempo mi studio il loader di digi synth. :-)

La combinazione LZ+Huffman mi pare molto interessante, anche se secondo me pone 
grossi vincoli alle massime frequenze utilizzabili, vista la quantità di codice 
necessaria.

Il compressore Huffman è già scritto, per quello LZ mi ci vuole un po' di 
più... ne varrà la pena?
Come ho detto, suggerisco il loader di fare la decodifica Huffman in tempo reale, e quella LZ alla fine, dato che quest'ultima e` comunque veloce.

-p


Other related posts: