1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- Blosc Header Format
- ===================
- Blosc (as of Version 1.0.0) has the following 16 byte header that stores
- information about the compressed buffer::
- |-0-|-1-|-2-|-3-|-4-|-5-|-6-|-7-|-8-|-9-|-A-|-B-|-C-|-D-|-E-|-F-|
- ^ ^ ^ ^ | nbytes | blocksize | ctbytes |
- | | | |
- | | | +--typesize
- | | +------flags
- | +----------versionlz
- +--------------version
- Datatypes of the Header Entries
- -------------------------------
- All entries are little endian.
- :version:
- (``uint8``) Blosc format version.
- :versionlz:
- (``uint8``) Version of the internal compressor used.
- :flags and compressor enumeration:
- (``bitfield``) The flags of the buffer
- :bit 0 (``0x01``):
- Whether the byte-shuffle filter has been applied or not.
- :bit 1 (``0x02``):
- Whether the internal buffer is a pure memcpy or not.
- :bit 2 (``0x04``):
- Whether the bit-shuffle filter has been applied or not.
- :bit 3 (``0x08``):
- Reserved, must be zero.
- :bit 4 (``0x10``):
- If set, the blocks will not be split in sub-blocks during compression.
- :bit 5 (``0x20``):
- Part of the enumeration for compressors.
- :bit 6 (``0x40``):
- Part of the enumeration for compressors.
- :bit 7 (``0x80``):
- Part of the enumeration for compressors.
- The last three bits form an enumeration that allows to use alternative
- compressors.
- :``0``:
- ``blosclz``
- :``1``:
- ``lz4`` or ``lz4hc``
- :``2``:
- ``snappy``
- :``3``:
- ``zlib``
- :``4``:
- ``zstd``
- :typesize:
- (``uint8``) Number of bytes for the atomic type.
- :nbytes:
- (``uint32``) Uncompressed size of the buffer.
- :blocksize:
- (``uint32``) Size of internal blocks.
- :ctbytes:
- (``uint32``) Compressed size of the buffer.
|