| 作者 | 接触 | URL |
|---|---|---|
| Blosc开发团队 | [email protected] | https://www.blosc.org |
| 吉特 | GH行动 | 数字 | 行为守则 |
|---|---|---|---|
注意:此包的更现代版本称为C-Blosc2,它支持更多功能,并且更加积极地维护。请访问以下网址:https://github.com/blosc/c-blosc2
BLOSC是针对二进制数据优化的高性能压缩机。它旨在通过memcpy()OS调用来比传统的,未压缩的直接内存方法传输数据更快地传输数据。 Blosc是第一个压缩机(我知道),这不仅意味着减少大型数据集的大小或内存的大小,还意味着加速了内存的计算。
它使用阻止技术,以尽可能减少存储总线中的活动。简而言之,该技术是通过将数据集划分为小的块中的数据集来工作的,这些数据集足够小,可以适合现代处理器的缓存并在此处执行压缩 /减压。它还利用CPU的SIMD指令(SSE2,AVX2)和多线程功能,以便将压缩 /减压过程加速至最大值。
查看一些有关Blosc性能的基准。
BLOSC使用BSD许可证分发,有关详细信息,请参见License.txt。
C-Blosc不像其他压缩机:宁愿称为元压缩机。之所以如此,是因为它可以使用不同的压缩机和过滤器(通常提高压缩比的程序)。无论如何,它也可以称为压缩机,因为它已经伴随着多个压缩机和过滤器,因此实际上可以像常规编解码器一样工作。
目前,C-Blosc的支持Blosclz是基于Fastlz(https://ariya.github.io/fastlz/),LZ4和LZ4HC(https://lz4.org/)的支持者的支持。 (https://zlib.net/)和zstandard(https://facebook.github.io/zstd/)。
C-Blosc还具有高度优化的(他们可以使用SSE2或AVX2说明(如果有))洗牌和bitshuffle滤波器(有关如何以及为何改组工作的信息,请参见此处)。但是,将来可能会添加其他压缩机或过滤器。
Blosc负责协调不同的压缩机和过滤器,以便它们可以自动利用阻止技术以及多线程执行(如果有几个核心)。这使得每个编解码器和过滤器最初不是为了进行阻止或多线程设计的,即使它并不是很高的速度工作。
最后,C-Blosc专门适合处理二进制数据,因为它可以利用类型大小的元信息,通过使用集成的洗牌和Bitshuffle过滤器来改善压缩比。
当一起,所有这些功能都将Blosc与其他压缩库区分开。
可以使用CMAKE_建造,测试和安装BLOSC。以下过程描述了“删除源”构建。
$ cd c-blosc
$ mkdir build
$ cd build现在运行CMAKE配置并选择指定安装目录(例如'/usr'或“/usr/local”):
$ cmake -DCMAKE_INSTALL_PREFIX=your_install_prefix_directory ..CMAKE允许以许多不同的方式配置BLOSC,例如更喜欢内部或外部来源来用于压缩机或启用/禁用它们。请注意,还可以使用CMAKE(CCMAKE或CMAKE-GUI)提供的UI工具执行配置:
$ ccmake .. # run a curses-based interface
$ cmake-gui .. # run a graphical interface构建,测试和安装Blosc:
$ cmake --build .
$ ctest
$ cmake --build . --target installBlosc库的静态和动态版本以及标头文件将安装到指定的CMAKE_INSTALL_PREFIX中。
C-Blosc具有LZ4,LZ4HC,Snappy,Zlib和ZSTD的完整资源,通常,您不必担心没有(或CMake找不到)系统中的库,因为默认情况下,随附的来源将自动编译并包含在C-C-Blosc库中。这有效地意味着您可以充满信心,对所有BLOSC部署中的所有编解码器提供全面支持(除非您明确排除其中一些编解码器的支持)。
但是,如果您想强迫Blosc使用外部编解码器库而不是随附的来源,则可以这样做:
$ cmake -DPREFER_EXTERNAL_ZSTD=ON ..您还可以禁用对某些压缩库的支持:
$ cmake -DDEACTIVATE_SNAPPY=ON .. # in case you don't have a C++ compiler 在示例/目录中,您可以找到有关如何在应用程序内使用BLOSC的提示。
BLOSC旨在支持所有可以找到C89的C编译器的平台。大多数测试的是Intel(Linux,Mac OSX和Windows)和ARM(Linux),但异国情调的是IBM Blue Gene Q嵌入了“ A2”处理器,也有效。
如果您在使用MAC OSX时会遇到编译问题,请确保已安装了命令行开发人员工具。您可以随时安装它们:
$ xcode-select --install Blosc拥有Python的正式包装纸。看:
https://github.com/blosc/python-blosc
BLOSC可以通过使用Bloscpack从命令行使用。看:
https://github.com/blosc/bloscpack
对于那些想在HDF5库中使用BLOSC作为过滤器的人,HDF5-Blosc项目中有一个示例实现:
https://github.com/blosc/hdf5-blosc
Blosc有一个正式的邮件列表:
[email protected] https://groups.google.com/g/blosc
请参阅谢谢。
享受数据!