| 作者 | 接觸 | 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
請參閱謝謝。
享受數據!