L'exigence que le codage soit exempt de préfixe se traduit par de grands arbres car l'arbre doit être complet. Existe-t-il un seuil où le stockage de données non codé de longueur fixe serait plus efficace que le codage des données?
L'exigence que le codage soit exempt de préfixe se traduit par de grands arbres car l'arbre doit être complet. Existe-t-il un seuil où le stockage de données non codé de longueur fixe serait plus efficace que le codage des données?
Réponses:
L'entropie H(A)
de ce problème est 1.998
. Le codage Huffman et le codage à longueur fixe pour ce problème ont une longueur de mot de code moyenne comme 2
. Et pour info, le codage que vous avez obtenu en utilisant le codage Huffman est incorrect. Huffman Encoding produit également des codes similaires à une longueur fixe pour ce problème. Il utilise une approche gourmande. Donc, a
n'obtient pas de code 0
mais, à la place, il obtient 00
. Retravaillez l'arbre que vous générez à l'aide du codage Huffman. L'arbre que vous devriez obtenir est:
Le codage de Huffman rapproche la distribution de la population avec des puissances à deux probabilités. Si la vraie distribution se compose de puissances à deux probabilités (et que les symboles d'entrée sont complètement non corrélés), le codage de Huffman est optimal. Sinon, vous pouvez faire mieux avec l'encodage de plage. Il est cependant optimal parmi tous les codages qui affectent des ensembles spécifiques de bits à des symboles spécifiques en entrée.
Oui, c'est toujours optimal.
Non, il n'y a pas de seuil où il utiliserait moins d'espace pour utiliser des données non codées de longueur fixe.
J'ai trouvé un certain nombre de preuves sur le Web, mais il y a suffisamment de discussion dans l'article de Wikipedia sur le codage Huffman .
Cela couvre également d'autres techniques qui atteignent une compression plus élevée (travaillant en dehors de l'espace pour lequel le code Huffman est optimal).