众所周知,最小方差的哈夫曼码是比较可取的。
我翻遍了整个波兰语/英语网络,发现:
要构建方差最小的huffman代码,您需要使用以下方法之一打破联系(当然,节点的概率是最重要的):
选择表示最短树的节点
选择最早创建的节点(将叶视为在开始时创建)。
问题是,我找不到任何证据证明这些方法的正确性。
有人能证明这些吗?
我很乐意澄清一切。

最佳答案

有些系统的约束甚至比
“当有一条领带时,做一个最小化树的最大深度的选择”
他们对树的最大深度设定了严格的限制(length-limited, also called minimum variance Huffman coding):
“无论有没有领带,建立一棵树,最大深度最多16步,最大码字长度为16位”(如Huffman codes used in JPEG image compression
Jpeg huffman coding procedure
“不管有没有领带,建立一棵树,最大深度最多15步,最大码字长度为15位”(如Huffman codes used in DEFLATEHuffman codes used in gzip
“是否有领带,建立一棵树,最大深度最多12步,最大码字长度为12位”("Huff0 uses a 12-bit limit."
我的理解是,人们已经开发出了几个可以正常工作的heuristic algorithms for limiting Huffman codeword lengths,但是heuristics don't always give exactly the best possible compression
有几个人提到“最佳长度受限赫夫曼码”,显然存在一个以上的算法来寻找它们:
劳伦斯L.拉莫尔和丹尼尔S.赫希伯格"A Fast Algorithm for Optimal Length-Limited Huffman Codes"
"Optimal Length-Limited Huffman Codes"
"A fast algorithm for optimal length-limited Huffman codes"

关于algorithm - 霍夫曼最小方差编码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14677612/

10-12 01:42