Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Off Topic > Chiacchiere in libertà

Notices

Rispondi
 
Strumenti discussione
Vecchio 10-05-2006, 22.05.18   #1
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
Codifica di Huffman

Stavo leggendo un attimo come eseguire la codifica di Huffman ma mi sono bloccato in un punto e non riesco ad andare avanti.



Praticamente io sommo la prima coppia di valori, il risultato della somma è 0.063 (e fin qui ok), poi dovrei effettuare la somme della altre coppie che hanno probabilità inferiore (quindi che hanno un valore inferiore a 0.063), ma non ce ne stanno! E poi la somma tra la coppia successiva non è inferiore a 0.063 ma quasi il doppio, quindi perchè fa la somma?


tnx!
Downloader non è collegato   Rispondi citando
Vecchio 10-05-2006, 22.21.35   #2
Robbi
Gold Member
Top Poster
 
Registrato: 04-01-2001
Messaggi: 5.227
Robbi promette bene
Ciao Scarrricatore!! !!
ma sei matto con ste formule !??

Qua ci vuole Dav o Manu!!
io ho gia' il mal di testa

Io al massimo ti posso dire alla Toto' che la somma non fa il totale!!
Robbi non è collegato   Rispondi citando
Vecchio 10-05-2006, 22.30.30   #3
BlackJack84
Senior Member
 
L'avatar di BlackJack84
 
Registrato: 13-05-2001
Loc.: Torino - Udine
Messaggi: 322
BlackJack84 promette bene
Forse qui è spiegato un po' meglio, ma non mi chiedere di farti un riassunto
___________________________________

...and once again you'll pretend to know me well, my friends
and once again, I'll pretend to know the way
thru the empty space/thru the secret places of the heart
BlackJack84 non è collegato   Rispondi citando
Vecchio 10-05-2006, 22.31.20   #4
Astro
Hero Member
 
L'avatar di Astro
 
Registrato: 27-07-2002
Loc.: Fiero di essere NAPOLETANO!
Messaggi: 792
Astro promette bene
Re: Codifica di Huffman

Quota:
Originariamente inviato da Downloader
Stavo leggendo un attimo come eseguire la codifica di Huffman ma mi sono bloccato in un punto e non riesco ad andare avanti.



Praticamente io sommo la prima coppia di valori, il risultato della somma è 0.063 (e fin qui ok), poi dovrei effettuare la somme della altre coppie che hanno probabilità inferiore (quindi che hanno un valore inferiore a 0.063), ma non ce ne stanno! E poi la somma tra la coppia successiva non è inferiore a 0.063 ma quasi il doppio, quindi perchè fa la somma?


tnx!
Se ho capito la domanda e il codice quello che chiedi tu è molto semplice.


Tu trovi il 63 tramite somma dell'ultima coppia di numeri, poi trovi la somma della penultima somma di numeri che è 122.

Ora devi "abbassare" le altre cifre che sono più piccole della prima somma...

Infatti nella seconda colonna trovi il 62 e il 64...

Il 63 va posto tra il 62 e il 64, per ovvie ragioni...

Dopodiché si rifà la formula prima descritta e si arriva al risultato...



Spero di essermi spiegato...
Astro non è collegato   Rispondi citando
Vecchio 10-05-2006, 22.47.11   #5
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
Il problema è che non riesco a collegare il grafico con la parte scritta.
Downloader non è collegato   Rispondi citando
Vecchio 10-05-2006, 23.22.24   #6
nikzeno
Senior Member
 
L'avatar di nikzeno
 
Registrato: 24-01-2001
Loc.: La Città dei Mille
Messaggi: 425
nikzeno promette bene
Re: Codifica di Huffman

Quota:
Originariamente inviato da Downloader
cut

Praticamente io sommo la prima coppia di valori, il risultato della somma è 0.063 (e fin qui ok), poi dovrei effettuare la somme della altre coppie che hanno probabilità inferiore (quindi che hanno un valore inferiore a 0.063), ma non ce ne stanno!
Non importa il valore della somma, ma il valore delle probabilità prima di sommarle. Per cui 60 e 62 sono entrambe minori di 63, per cui li sommi e il risultato lo riporti nella seconda colonna.
C'è poi un altro 62, ma rimane spaiato, perchè non lo puoi sommare con il 64 che gli sta sopra in quanto 64 > 63. Quindi, come dice nel testo, se un valore non può essere accoppiato, lo riporti nella seconda colonna, ed eccolo lì infatti.

A questo punto, per far le cose fatte bene, potresti riportare anche tutti gli altri numeri nella seconda colonna in modo ordinato e ricominciare il procedimento.

Per cui sommi gli ultimi due, e fa 125, quindi puoi sommare anche quelli appena sopra, cioè 64 e 122 entrambi minori di 125. Riporti le somme ordinate nella terza colonna e via di nuovo...
___________________________________

Conoscere per Deliberare
Siate il cambiamento che volete vedere nel mondo
nikzeno non è collegato   Rispondi citando
Vecchio 11-05-2006, 00.22.25   #7
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Esattamente (Y)

Ad ogni passaggio, con la prima somma dei due elementi con valore minore crei un bound, che determina gli elementi che possono essere "accoppiati" durante il passaggio stesso, ovvero quelli che hanno un valore inferiore a quel bound.
Accoppiati tutti gli elementi possibili, a due a due in ordine crescente di valore (frequenza, probabilità che dir si voglia), prosegui col passo successivo, prendendo in esame questa volta - assieme ai valori generati con le somme al passo precedente - anche tutti i valori che non sono stati accoppiati; considerandoli in ordine crescente ripeti la procedura.

Nel caso tuo, il bound del primo passaggio è, come ha spiegato benissimo nikzeno, 0.063, per cui non puoi sommare il secondo 0.062, perchè sarebbe da accoppiare con 0.064 che è oltre il bound; nel secondo passaggio il bound è 0.125 (0.062 + 0.063) per cui non puoi accoppiare 0.125 e 0.252, perchè prenderesti nodi oltre il bound; nel terzo passaggio il bound è 0.250 (0.125 + 0.125) e così via.


E mo?
Mo ottieni, sdraiato sulla destra e non all'impiedi e rovesciato come al solito, un albero binario: ogni nodo ha due figli, tranne i nodi foglia (i "rami" sono le frecce che indicano la somma di due nodi [valori] in un nodo [valore] nella colonna immediatamente sulla destra: i due nodi figli si sommano per formare il nodo padre).

Tu devi assegnare dei codici binari ad ogni simbolo (che è contenuto in un nodo foglia) e procedi così: parti dal nodo radice (quello più a destra, che non è disegnato, e che sarebbe il padre di 0.546 e 0.436) e, scorrendo l'albero verso le sue foglie, se prendi un ramo che va verso sinistra (in alto in questo caso, per il fatto che l'albero è sdraiato a destra) aggiungi uno 0, andando a destra (in basso in questo caso) aggiungi un 1; scorrendo l'albero di livello in livello aggiungi mano a mano dei bit al codice: quando arrivi a un nodo foglia ti fermi, e il codice che hai ottenuto è quello da assegnare al simbolo contenuto nel nodo foglia.


Mi verrebbe quasi da buttar giù un'implementazione in Java, ma so che poi mi perderei come un baluba dietro alla grafica e allora lascio perdere

Ultima modifica di Dav82 : 11-05-2006 alle ore 00.37.30
Dav82 non è collegato   Rispondi citando
Vecchio 11-05-2006, 00.37.27   #8
wilhelm
Hero Member
 
L'avatar di wilhelm
 
Registrato: 30-08-2002
Loc.: Portogruaro (VE) - Roma
Messaggi: 513
wilhelm promette bene
Stanco adesso, molto stanco...


In ogni caso: a cosa serve?
___________________________________

Fedele a Franz Joseph, l'ultimo Kaiser!!!
wilhelm non è collegato   Rispondi citando
Vecchio 11-05-2006, 00.49.26   #9
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
E' un algoritmo di codifica, che serve appunto per assegnare una codifica binaria (*) ad un gruppo di simboli.

Se si conosce (in via probabilistica, non con certezza: in questo secondo caso altre codifiche più semplici sono di buon valore) la frequenza relativa con cui i simboli appaiono nel documento (testo, immagine, quello che è) che si deve codificare, si può assegnare - mediante Huffman - la codifica più breve al simbolo che appare con frequenza maggiore e via via codifiche più lunghe a quelli che appaiono con frequenza minore: in questo modo si ottiene una codifica che, in media, è quella più breve (e quindi meno pesante da trasmettere e/o memorizzare) per il documento (o l'insieme di documenti) per il quale si è effettuato lo studio di frequenza.

Per esempio, nell'immagine di sopra, si vede che l'algoritmo assegna codifiche via via più lunghe scendendo verso il basso, e quindi diminuendo la frequenza dei simboli stessi.



(*) la codifica è priva di prefissi, ovvero la codifica assegnata ad un determinato simbolo non è l'inizio di una codifica assegnata ad un qualsiasi altro simbolo preso in esame: questa proprietà è ottenuta mediante l'algoritmo di assegnazione del codice binario di codifica dei simboli, che ad ogni biforcazione assegna uno "0" al ramo di sinistra e un "1" al ramo di destra, generando quindi per ogni simbolo una codifica basata sulle "scelte di direzione" prese ordinatamente a partire dal nodo radice: evidentemente una codifica di un simbolo non è l'inizio di un'altra, poichè altrimenti tale codifica, dovendo avere lo stesso "percorso iniziale" dell'altra, non sarebbe in un nodo foglia ma in un nodo interno, e quindi non sarebbe associata ad un simbolo.
Grazie a questa proprietà, i simboli codificati possono essere messi uno dopo l'altro senza bisogno di elementi separatori che facciano capire dove termina un simbolo codificato (e dove quindi inizia il successivo).
Per esempio con la codifica (0, 1, 01), se ricevi uno 0 non sai se hai ricevuto la prima codifica o se invece hai ricevuto la prima parte della terza codifica: questo perchè la prima codifica è inizio della terza; con un codice come (10, 11, 01, 001) questo problema non c'è



Tropp cumplicàa per l'una di notte, concordo

Ultima modifica di Dav82 : 11-05-2006 alle ore 01.38.09
Dav82 non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
TV: Manca codifica azienda che fare? Robbi Multimedia | audio - video 13 29-10-2007 13.13.06
[9X] 98 - Internet Explorer codifica male le cose arsieroluca Windows 9x/Me/NT4/2000 1 19-07-2007 14.47.10
[HTML] Definire la codifica della pagina negli header UG0_BOSS Programmazione 7 11-07-2007 22.01.06
[Windows Live Messenger] Codifica testo espiritos Software applicativo 2 30-08-2006 18.12.30
Codifica in lettura bellatrix Software applicativo 2 02-11-2005 20.28.57

Orario GMT +2. Ora sono le: 22.10.00.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.