旧有一堆二进制数据大多数内容为0x00和0xff,求一种压缩算法对该数据进行压缩使其占用空间最小
现有一堆二进制数据大多数内容为0x00和0xff,求一种压缩算法对该数据进行压缩使其占用空间最小
数据如下:
------解决方案--------------------
用行程编码算法。
------解决方案--------------------
直接用zip库即可。
------解决方案--------------------
哈夫曼+游程
------解决方案--------------------
++++++++++++++++++++
------解决方案--------------------
直接用现有的开源压缩库即可
相信我:无论你怎么写,也不如他们提供的好用。
------解决方案--------------------
哈夫曼 编码
------解决方案--------------------
就哈夫曼吧,估计还比较简单
------解决方案--------------------
compress
gzip
bzip2
随便用
数据如下:
root@primary:~/ci/cmake# xxd -l 512 series_peer_input_frame
0000000: 0200 eb4c 9400 0000 cc8c 8253 27d3 0c00 ...L.......S'...
0000010: 0000 0000 0d94 0005 0001 0001 0000 0094 ................
0000020: 0000 00ff ffff ff04 0104 0100 0400 0000 ................
0000030: 0000 0000 0000 0000 ffff ffff cc33 0000 .............3..
0000040: 0000 0000 0000 0000 0000 0000 ffff ffff ................
0000050: ffff 0000 0d95 0050 0000 0000 0000 0095 .......P........
0000060: 0000 00ff ffff ff04 0104 0100 0600 0000 ................
0000070: 0000 0000 0000 0000 ffff ffff cc33 0000 .............3..
0000080: 0000 0000 0000 0000 5500 0000 0100 ffff ........U.......
0000090: ffff 0000 0d95 0054 0003 0003 0000 0095 .......T........
00000a0: 0000 00ff ffff ff08 0108 0100 0700 0000 ................
00000b0: 0000 0000 0000 0000 ffff ffff cc33 0000 .............3..
00000c0: 0000 0000 0000 0000 5500 0000 0100 ffff ........U.......
00000d0: ffff 0000 0d94 004f 0002 0002 0000 0094 .......O........
00000e0: 0000 00ff ffff ff08 0108 0100 0500 0000 ................
00000f0: 0000 0000 0000 0000 ffff ffff cc33 0000 .............3..
0000100: 0000 0000 0000 0000 0000 0000 ffff ffff ................
0000110: ffff 0000 0d96 000a 00f1 0005 0000 0096 ................
0000120: 0000 00ff ffff ff0c 010c 0100 0400 0000 ................
0000130: 0000 0000 0000 0000 ffff ffff cc33 0000 .............3..
0000140: 0000 0000 0000 0000 0000 0000 ffff ffff ................
0000150: ffff 0000 0dfd 0000 00f0 0004 0000 0097 ................
0000160: 0000 00ff ffff ff0c 010c 0100 0600 0000 ................
0000170: 0000 0000 0000 0000 ffff ffff cc33 0000 .............3..
0000180: 0000 0000 0000 0000 0000 0000 ffff ffff ................
0000190: ffff 0000 0d98 00f2 0008 00ff ffff ff98 ................
00001a0: 0000 00ff ffff ff04 0604 0600 0700 0000 ................
00001b0: 0000 0000 0000 0000 ffff ffff cc33 0000 .............3..
00001c0: 0000 0000 0000 0000 5500 0000 0000 ffff ........U.......
00001d0: ffff 0000 0d99 0056 00f4 0008 0000 0099 .......V........
00001e0: 0000 00ff ffff ff08 0608 0600 0400 0000 ................
00001f0: 0000 0000 0000 0000 ffff ffff cc33 0000 .............3..
root@primary:~/ci/cmake#
------解决方案--------------------
用行程编码算法。
------解决方案--------------------
直接用zip库即可。
------解决方案--------------------
哈夫曼+游程
------解决方案--------------------
++++++++++++++++++++
------解决方案--------------------
直接用现有的开源压缩库即可
相信我:无论你怎么写,也不如他们提供的好用。
------解决方案--------------------
哈夫曼 编码
------解决方案--------------------
就哈夫曼吧,估计还比较简单
------解决方案--------------------
compress
gzip
bzip2
随便用