Skip to content
Sections
>> Trisquel >> Packages >> aramo >> libs >> bitshuffle
nabia  ] [  aramo  ]
[ Source: bitshuffle  ]

Package: bitshuffle (0.3.5-4build1)

filter for improving compression of typed binary data

Bitshuffle is an algorithm that rearranges typed, binary data for improving compression, as well as a python/C package that implements this algorithm within the Numpy framework.

The library can be used along side HDF5 to compress and decompress datasets and is integrated through the dynamically loaded filters framework. Bitshuffle is HDF5 filter number 32008.

Algorithmically, Bitshuffle is closely related to HDF5's Shuffle filter except it operates at the bit level instead of the byte level. Arranging a typed data array in to a matrix with the elements as the rows and the bits within the elements as the columns, Bitshuffle "transposes" the matrix, such that all the least-significant-bits are in a row, etc. This transpose is performed within blocks of data roughly 8kB long.

This does not in itself compress data, only rearranges it for more efficient compression. To perform the actual compression you will need a compression library. Bitshuffle has been designed to be well matched Marc Lehmann's LZF as well as LZ4. Note that because Bitshuffle modifies the data at the bit level, sophisticated entropy reducing compression libraries such as GZIP and BZIP are unlikely to achieve significantly better compression than simpler and faster duplicate-string-elimination algorithms such as LZF and LZ4. Bitshuffle thus includes routines (and HDF5 filter options) to apply LZ4 compression to each block after shuffling.

The Bitshuffle algorithm relies on neighbouring elements of a dataset being highly correlated to improve data compression. Any correlations that span at least 24 elements of the dataset may be exploited to improve compression.

Other Packages Related to bitshuffle

  • depends
  • recommends
  • suggests
  • dep: cython3
    C-Extensions for Python 3
  • dep: libc6 (>= 2.14) [amd64]
    GNU C Library: Shared libraries
    also a virtual package provided by libc6-udeb
    dep: libc6 (>= 2.17) [arm64, ppc64el]
    dep: libc6 (>= 2.4) [armhf]
  • dep: libgcc-s1 (>= 3.3.1) [ppc64el]
    GCC support library
  • dep: libgomp1 (>= 6)
    GCC OpenMP (GOMP) support library
  • dep: libhdf5-103-1
    HDF5 C runtime files - serial version
  • dep: libhdf5-openmpi-103-1 (>= 1.8.13)
    HDF5 - C runtime files - OpenMPI version
  • dep: liblz4-1 (>= 0.0~r114)
    Fast LZ compression algorithm library - runtime
  • dep: liblzf1 (>= 1.5)
    Very small data compression library
  • dep: python3
    interactive high-level object-oriented language (default python3 version)
    dep: python3 (<< 3.11)
    dep: python3 (>= 3.10~)
  • dep: python3-h5py-serial
    general-purpose Python interface to hdf5 (Python 3 serial)
  • dep: python3-numpy
    Fast array facility to the Python 3 language
  • dep: python3-pkg-resources
    Package Discovery and Resource Access using pkg_resources

Download bitshuffle

Download for all available architectures
Architecture Package Size Installed Size Files
amd64 166.9 kB657 kB [list of files]
arm64 161.1 kB591 kB [list of files]
armhf 152.0 kB451 kB [list of files]
ppc64el 169.2 kB988 kB [list of files]