xrif
A fast lossless compression system
|
The top-level interface to the XRIF library. More...
The top-level interface to the XRIF library.
The following code illustrates how the XRIF library shoud used to compress data under most circumstances.
Lower level access is provided if fine-grain control is needed.
First, create the xrif library handle:
You now have an initialized xrif handle. The xrif_t
type can not be used until xrif_new
has been called on it. Never call xrif_new
twice on the same handle, unless xrif_delete
(see below) has been called.
Next you need to configure and allocate the handle:
The above results in an xrif handle prepared to operate on 1024 signed 16-bit images of size 64x64. (Note that you should check the value of rv for errors!)
Now to compress data:
After this handle->raw_buffer
contains the compressed data. This is because handle->compress_on_raw == 1
by default, causing the raw_buffer
to be re-used. This also illustrates the built in performance monitoring, which is on by default but can be turned off.
To decompress:
after which my_dest
will contain the original data.
To start over, use:
And when you are done with the handle, it can be fully de-allocated with
after which the handle should not be used again, unless xrif_new
is called on it.
Data Structures | |
struct | xrif_handle |
The xrif library configuration structure, organizing various parameters used by the functions. More... | |
Modules | |
Initialization, Setup, and Allocation | |
Current Configuration | |
Header Processing | |
Encoding & Decoding | |
Performance Measurements | |
Typedefs | |
typedef xrif_handle * | xrif_t |
The xrif handle pointer type. This provides the main interface to the xrif library. | |