是否可以构建具有字符“ 0”和“ 1”的霍夫曼算法?

时间:2018-12-28 16:00:08

标签: python image compression huffman-code

我有一个具有以下格式的数组:

P1
5 5
0 0 0 0 0
0 1 0 1 0
1 0 1 0 1
1 1 1 1 1
0 0 0 1 1

,我想使用霍夫曼顺序压缩此数组。我的问题是,是否有可能,因为当我通过霍夫曼算法进行搜索时,我发现只有多个字符,却没有类似的东西。

如果可能的话,我该怎么做?

我已经尝试过了:

def getBitString(file):
   file = open(ficheiro, "rb").read()
   string = ""
   for byte in file:
     print(byte)
     string+=format(byte,'08b')

   return string

我只将文件转换为二进制文件。我正在考虑要解决的问题,但是我被困住了,我需要一些帮助

1 个答案:

答案 0 :(得分:1)

霍夫曼编码使用编码时从文本内部的字母到安全空间的字符概率。要使其正常工作,您将需要一个具有两个以上字符的字母。两个字符需要1位存储,编码时需要1位。那不会保证任何安全。

使用示例数据,您可以将每一行视为一个字符。但是,霍夫曼编码还有其他要求,即:字符必须重复,越好越好。只能有5个非重复字符。

在简单的25位编码情况下,霍夫曼编码将无济于事。重复数据可能更多。