From d45420013ceb0fb58a53b380e418661f0684f177 Mon Sep 17 00:00:00 2001 From: x Date: Wed, 7 Jun 2023 13:58:23 +0200 Subject: [PATCH] Bitio: Variable Length Coding c/c++ header --- .../lib/include_/vbit.h | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 TurboPFor-Integer-Compression/lib/include_/vbit.h diff --git a/TurboPFor-Integer-Compression/lib/include_/vbit.h b/TurboPFor-Integer-Compression/lib/include_/vbit.h new file mode 100644 index 0000000..0c55aaa --- /dev/null +++ b/TurboPFor-Integer-Compression/lib/include_/vbit.h @@ -0,0 +1,29 @@ +//-- "Integer Compression" variable length encoding with bitio ------------------ + +#ifdef __cplusplus +extern "C" { +#endif +//-- Gamma coding (length limited) : Full 32 bit range +size_t bitgenc32( unsigned char *_in, size_t _inlen, unsigned char *out); +size_t bitgdec32( unsigned char *in, size_t _outlen, unsigned char *_out); + +//-- Rice Coding (adaptive length limited) : Full 32 bit range --- +size_t bitrenc32( unsigned char *_in, size_t _inlen, unsigned char *out); +size_t bitrdec32( unsigned char *in, size_t _outlen, unsigned char *_out); + +size_t vlcenc32( unsigned char *_in, size_t _inlen, unsigned char *out); // TurboVLC 32 bits +size_t vlcdec32( unsigned char *in, size_t _outlen, unsigned char *_out); + +size_t vlcenc16( unsigned char *_in, size_t _inlen, unsigned char *out); // TurboVLC 16 bits +size_t vlcdec16( unsigned char *in, size_t _outlen, unsigned char *_out); + +size_t vlczenc16( unsigned char *_in, size_t _inlen, unsigned char *out); // TurboVLC 16 bits zigzag +size_t vlczdec16( unsigned char *in, size_t _outlen, unsigned char *_out); + +size_t vlczenc32( unsigned char *_in, size_t _inlen, unsigned char *out); // TurboVLC 32 bits zigzag +size_t vlczdec32( unsigned char *in, size_t _outlen, unsigned char *_out); + +#ifdef __cplusplus +} +#endif +