12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 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
- :bit 4 (``0x16``):
- Reserved
- :bit 5 (``0x32``):
- Part of the enumeration for compressors.
- :bit 6 (``0x64``):
- Part of the enumeration for compressors.
- :bit 7 (``0x64``):
- 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``
- :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.
|