我试图更好地理解哈夫曼解码器如何工作。我得到了一个代码表,但我很难试图了解解码器是如何工作的,因为二进制字符串中含糊不清。穷人哈夫曼压缩
(IM学习这种在准备为我在大学的最后一年)
我的表:
Data Hcode
0, 0
1, 1
2, 10
3, 11
17, 100
18, 101
19, 110
29, 111
如果我有一个像010011霍夫曼代码串,我可以返回数据的许多不同的组合因此如何我可以歧视吗?
我明白BST表示中的huffman逻辑,并且遵循给定叶子的路径,该路径类似于(0-255(ascii))之间给定值的代码,但我仍然不知道如何区分返回数据:0,1,0或数据:0,17
我真的必须强制执行数据0和1上的2位代码吗? (00和01)
我希望香港专业教育学院解释尽我所能XD
如果你想知道如何生成的表 - 你会杀了我,因为我没有使用树逻辑来生成它。虽然我按频率排序了数据(随机字节) - 我通过将元素位置编号转换为二进制来生成H代码(为什么我把这个帖子称为Poor Mans Huffman)。
很多感谢您的任何建议。