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?
9
Réponses:
L'entropie
H(A)
de ce problème est1.998
. Le codage Huffman et le codage à longueur fixe pour ce problème ont une longueur de mot de code moyenne comme2
. 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 code0
mais, à la place, il obtient00
. Retravaillez l'arbre que vous générez à l'aide du codage Huffman. L'arbre que vous devriez obtenir est:la source
Introduction to Algorithms
parCLRS
. Dans le chapitre qui parle,greedy algorithms
vous pouvez obtenir la preuve formelle deHuffman algorithm
. C'est une longue preuve et a besoin de patience pour lire.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.
la source
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).
la source