[RISOLTO][Progetto] HUFFMAN - compressione dati

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
pc_andreone
Prode Principiante
Messaggi: 126
Iscrizione: lunedì 15 gennaio 2007, 2:57

[RISOLTO][Progetto] HUFFMAN - compressione dati

Messaggio da pc_andreone »

ciao,
allora: durante un esame di informatica (studio matematica) il prof ci ha detto di simulare una compressione di huffman, fatto il tutto, consegnato e arrivato a casa, non mi sentivo sicuro, quindi l'ho rifatto. FUNZIONAVA 30 e lode. Ma non mi piaceva l'algoritmo da lui utilizzato, troppo statico e casuale, e l'ho migliorato. Sperando che qualcuno si intenda di compressione e conosca minimamente huffman pongo questa domanda:

Il programma e stato scritto in c sotto linux, e non credo che vi siano stati errori logici durante l'implementazione dell'algoritmo, qnd qst sono dati reali:

HUFFMAN - sequenza di 8 bit con maggior frequenza e il numero decimale 0 con
               350.481 combinazioni che corrispondono.
MIO ALGORITMO -
              501.515 combinazioni che corrispondono al mio algoritmo
Questo vuol dire che HUFFMAN ha un efficenza di compressione minore del mio algoritmo, e ho notato che HUFFMAN è utilizzato ovunque ma con qualche accortezza (fonte wikipedia  e forum sulla compressione), ma volevo sapere se secondo voi il mio risultato sia superiore a tali accortezze.


Posto in programmazione perché spero che chi legga conosca di cosa stò parlando.
SPERO QUINDI DI NON ESSERE SPOSTATO NEL BAR DI UBUNTU, ALMENO NON SUBITO >:( >:(
Ultima modifica di pc_andreone il sabato 6 settembre 2008, 13:35, modificato 1 volta in totale.
Avatar utente
bite
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3798
Iscrizione: sabato 19 maggio 2007, 22:10

Re: [Progetto] HUFFMAN - compressione dati

Messaggio da bite »

Huffman è un po' datato, non è difficile fare di meglio.
Viene ancora usato come un passo di algoritmi di compressione più sofisticati, come il bzip2 che usiamo tutti, dove è associato all'algoritmo di Burrows-Wheeler.
Una strada forse più promettente è, come in LZMA, l'uso di una catena di Markov per modellizzare la distribuzione di probabilità, e di un codificatore aritmetico binario (che è di per sé più efficiente di Huffman) per emettere i simboli.
Un libro non recentissimo ma molto chiaro è "Text Compression" di Bell, Cleary e Witten, Prentice Hall.
Per quanto riguarda la compressione di immagini, video e sonoro, il discorso è piuttosto diverso. La compressione può essere lossy, e i tempi di decompressione assumono un'importanza preponderante.
Se sei interessato a queste tematiche rinnovo il consiglio che ti ho già dato nell'altro thread, di frequentare il gruppo comp.compression e leggere il loro FAQ. Non conviene spendere tempo per reinventare l'acqua calda, e sulla compressione di lavoro ne è già stato fatto veramente tantissimo; oserei dire che futuri miglioramenti non potranno che essere marginali, salvo applicazioni molto particolari.
pc_andreone
Prode Principiante
Messaggi: 126
Iscrizione: lunedì 15 gennaio 2007, 2:57

Re: [Progetto] HUFFMAN - compressione dati

Messaggio da pc_andreone »

Credo tu abbia ragione, ma come ben sai, quando ti appassioni ad una cosa, per quanto essa possa risultare perdita di tempo per qualcuno, e magari lo è, per te è solo un modo di imparare cose nuove...Comunque pensavo di aver fatto cosa buona, invece sono a milioni di anni luce dalla verità....ma tanto ce RIESCO....ahahah grazie
pc_andreone
Prode Principiante
Messaggi: 126
Iscrizione: lunedì 15 gennaio 2007, 2:57

Re: [Progetto] HUFFMAN - compressione dati

Messaggio da pc_andreone »

un'altra cosa,  mi stavo informando sulla compressione stile frattale, è talmente potente che stenti a credere che potrebbe essere utilizzata in algoritmi senza perdita di dati....incredibile.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti