0

我需要像这样压缩一系列 1 和 0

http://cid-f328e92ab80e3d64.office.live.com/self.aspx/.Public/bits.txt

谁能建议我使用什么编码器来实现最佳压缩(霍夫曼,算术,BWT,LZW,RLE,PAQ ...)

任何帮助表示赞赏,并提前感谢您。

尊重,查基

PS我发现bwtmix下降到577字节,但它是用c ++编写的,我需要它在c中。

4

1 回答 1

0

这个 Python 程序通过简单地将 1 和 0 转换为字节,将其压缩到 715 个字节,包括 16 位前导数。不幸的是,标准压缩程序 zip、gzip 和 bzip2 似乎无法从中获得更多压缩。


import sys, struct
i, n, b, count = 0, 0, '', 0
for byte in open('/tmp/binary.txt').read().rstrip():
 n = (n << 1) | (ord(byte) & 1)
 i = (i + 1) % 8
 if i == 0:
  n, b = 0, b + chr(n)
 count += 1
sys.stdout.write(struct.pack('<h', count) + b)
于 2011-03-03T09:10:01.783 回答