From 014b2e02b26c6e4052490ac37797fd109ad6968a Mon Sep 17 00:00:00 2001 From: x Date: Fri, 10 Mar 2023 20:28:31 +0100 Subject: [PATCH] Bitio: Variable Length Coding c/c++ header --- include_/vbit.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 include_/vbit.h diff --git a/include_/vbit.h b/include_/vbit.h new file mode 100644 index 0000000..1650943 --- /dev/null +++ b/include_/vbit.h @@ -0,0 +1,26 @@ +//-- "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); + +#ifdef __cplusplus +} +#endif +