C/C++的压缩库能够处理数组中超过32位的元素
Compression library for C / C++ able to deal with more than 32 bit elements in the array
我有一个问题,我需要压缩大约6 GB的std::vector()
(其中有15亿个float
s),到目前为止我已经使用了lz4,但它只处理char
s的int
计数。由于我的向量中有60亿个字符,这需要33位来表示,而使用lz4的压缩无法按我的需要工作。
从我在zlib库中看到的情况来看,它需要int以及到压缩数据长度的输入。
我是否需要对数据进行分段,或者是否有一个能够处理超过32位char
的框架,或者我是否缺少了什么?
使用zlib,并将数组作为几个块传入。zlib使用的DEFLATE算法的窗口大小约为32KB,并且它已经缓冲了压缩的数据,因此将数据作为多个块传入不会影响压缩效率。
看看XZ,它似乎可以处理非常大的尺寸。CLI可执行文件本身就是库的精简包装器,因此这应该符合您的要求。
OTOH,二进制浮点流不应该压缩得那么好。。。
相关文章:
- 使用指针从C++中的数组中获取最大值
- 在C和C++中初始化结构中的数组
- 将C++中的数组转换为字符串
- 比较if语句中的数组值和int值
- 如何在 nlohmann 的 json 库中获取数组长度?
- 在 C++ 中访问数组负索引处的内存不会返回垃圾
- 堆栈和队列是否像C++中的数组一样传递?
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- 有人可以在 c++ 中解释数组的这种输入
- 从文件读取,并写入函数C++中的数组
- 在 C++ 中的数组上使用阶乘函数
- 如何像在 C++ 中处理数组一样对 .txt 文件中的字符进行寻址?
- Visual Studio 中的数组
- 在 C++ Consol 中的数组中执行用户命令时出现问题
- 如何在不使用 C++ 中的数组或函数的情况下查找 N 位数字的所有排列
- 当我在 CLion 中读取数组中的 txt 文件时C++编码问题
- 如何在 c++ 中从数组中选择一个随机数?
- 从斐波那契序列 c++ 中的数组中查找正确的元素时出错
- 我在解决此错误时遇到问题.我正在努力在主函数中传递数组
- 调试代码块中的数组