Un codice Huffman può portare a due traduzioni diverse?

-2

È una proprietà del codice Huffman essere sempre tradotta in un modo? O ci sono esempi in cui un singolo pezzo di codice binario può essere interpretato in due modi diversi?

Per esempio: lascia che il codice (1001010) sia inviato a un computer. È possibile che il computer riconosca il codice in modi diversi? Ad esempio (100,1010) o (1001,010)

    
posta user3630523 17.08.2017 - 09:09
fonte

3 risposte

4

Se sono ambigui, allora hai creato i codici errati. In un vero codice Huffman, nessuna sequenza di codice può mai essere il prefisso di un'altra. Quindi se 100 è un codice valido, allora 1001 non può essere.

Oppure, per dirla in un altro modo, quando raggiungi la fine di una parola in codice, dovresti sapere che sei arrivato alla fine, pronto per iniziare a leggere quello successivo.

articolo di Wikipedia

    
risposta data 17.08.2017 - 09:22
fonte
1

I codici di Huffman sono un caso di codici prefisso , il che significa che nessuna sequenza di codice contiene un prefisso che è anche un codice valido sequenza.

Ad esempio, se 1001010 era una sequenza di codice valida nella codifica di Huffman, allora nessuno di questi prefissi sono sequenze di codice valide:

1001010
100101
10010
1001
100
10
1
    
risposta data 18.08.2017 - 19:22
fonte
0

Non puoi semplicemente avere i dati codificati. È necessario sapere quale byte è codificato come. Il modo più semplice per farlo è memorizzare le lunghezze di ogni byte, in modo da poter creare la tabella di decodifica da questo.

Una volta che hai la tabella di decodifica, c'è solo un modo per tradurre i dati.

Come esempio semplificato, se avessi solo quattro valori diversi, le lunghezze del codice potrebbero essere (2, 2, 2, 2) o (1, 2, 3, 3), ciascuna con le lunghezze dei byte in qualsiasi ordine , ad esempio (2, 3, 1, 3). Con questo esempio, le stringhe di bit sarebbero 00, 010, 1 e 011.

    
risposta data 18.08.2017 - 21:21
fonte

Leggi altre domande sui tag