1. 有uint8_t[1000]左右的数据存在文件中,最终需要压缩输出尽量少数据最后以uint16[0],uint16[1]()或者uint32。。输出。
2. 可以将这个压缩后的数据可以解压缩输出在这个uint8_t的buffer/文件里。算法可有参考?多谢!

解决方案 »

  1.   

    gzip压缩?
    zip压缩?其实没看懂以uint16输出是什么鬼?文件保存时归根结底不都是byte[]吗?
      

  2.   

    你丫压缩啥啊,文本?图片?bin?不同的东西可以压缩算法不一样。
      

  3.   

    NET的开源的压缩算法有很多. 
    要速度就是 LZ4/SNAPPY,这两是速度之王 ,虽然压缩率不高,但每秒900M.
    通用,就GZIP.这个基本是互联网标准,一般速度在35M 左右.如果要PC和手机通用,建议使用这个.
    要压缩率,就LZMA,但压缩速度很慢. 500K - 1M /S . 而且这个是GPL协议.
    要速度和效率: ZSTD .这个压缩率比 LZMA 小一点点. 速度很快,有200-300M . 在可能的情况下.尽量使用这个.
      

  4.   

    选择压缩算法,也要看平台,例如要和LINUX交互,可以选择BZ2,但这个压缩速度在 NET 下不太好,连LZMA都比不上,但LINUX天然支持这个.
      

  5.   

    是压缩数据,不是图片.  在windows下的,这些数据是存在一个文本文件里的。 如test.txt文件中:40000054
    05000300
    C000D89F
    60096003
    因为要传输的数据buffer大小有限,不能将这个1000byte数据分开来传输,所以考虑压缩后来做,而且压缩后要转换成binary.暂时程序考虑C#.