From eca7e8d9bc8384050d92af260240ac119806b56d Mon Sep 17 00:00:00 2001 From: x Date: Thu, 16 Mar 2023 20:41:50 +0100 Subject: [PATCH] TurboPFor: Integer Compression c/c++ header --- include/ic.h | 104 +++------------------------------------------------ 1 file changed, 5 insertions(+), 99 deletions(-) diff --git a/include/ic.h b/include/ic.h index dba7231..2549388 100644 --- a/include/ic.h +++ b/include/ic.h @@ -486,7 +486,7 @@ void bitzdec(unsigned char *in, unsigned n, unsigned esize); //------- Lossy floating point transform: pad the trailing mantissa bits with zeros according to the error e (ex. e=0.00001) #ifdef USE_FLOAT16 -_Float16 _fppad16(_Float16 d, float e, int lg2e); +_Float16 _fppad16(_Float16 d, float e, int lg2e); void fppad16(_Float16 *in, unsigned n, _Float16 *out, float e); #endif @@ -647,100 +647,6 @@ size_t fp2dfcmdec64(unsigned char *in, size_t n, uint64_t *out, uint64_t st } #endif -//-- codec: general purpose compression (lz, entropy coder, bwt,....)--------------------------------------------------------------------------------------------------- - -enum { - ICC_NONE, - ICC_LZTURBO, - ICC_LZ4, - ICC_ZLIB, - - ICC_ZSTD, - ICC_FSE, - ICC_FSEH, - ICC_LZTANS, - ICC_TURBORC, - ICC_MEMCPY, - ICC_LAST, -}; - -#ifdef __cplusplus -extern "C" { -#endif -int lzidget(char *scmd); -char *codstr(unsigned cid); -size_t lzenc(unsigned char *in, size_t inlen, unsigned char *out, unsigned outsize, int codid, int codlev, char *codprm); -size_t lzdec(unsigned char *in, size_t inlen, unsigned char *out, unsigned outlen, int codec, int codlev, char *codprm); -unsigned meshenc(const float *in, unsigned nx, unsigned ny, unsigned nz, unsigned char *out, unsigned outsize, unsigned char *tmp, int codid, int codlev, char *codprm); -void meshdec( const uint8_t *in, unsigned inlen, float *out, unsigned nx, unsigned ny, unsigned nz, unsigned char *tmp, int codid, int codlev, char *codprm); -//------------------- TurboByte + lz ---------------------------- -unsigned lzv8enc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lzv8dec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lzv8zenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lzv8zdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lzv8xenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); // TurboVByte -unsigned v8lzxdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -//----------------- Byte transpose + Lz ------------------------------------------------------------------------------------- -unsigned lztpenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztpdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztpxenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); // XOR -unsigned lztpxdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztpzenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); // Zigzag -unsigned lztpzdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -//------- rle ------------------------ -unsigned tprleenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp); -unsigned tprledec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp); -unsigned tprlexenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp); // xor rle -unsigned tprlexdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp); -unsigned tprlezenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp); // Zigzag rle -unsigned tprlezdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp); -//------- rle + lz ------------------- -unsigned lztprleenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); // Zigzag rle -unsigned lztprledec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztprlexenc(unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); // Zigzag rle -unsigned lztprlexdec(unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztprlezenc(unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); // Zigzag rle -unsigned lztprlezdec(unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztp4enc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztpd4ec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztp4xenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); //XOR -unsigned lztp4xdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztp4zenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztp4zdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztpd2enc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, unsigned x, unsigned y, int codid, int codlev, char *codprm); -unsigned lztpd2dec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, unsigned x, unsigned y, int codid, int codlev, char *codprm); //printf("#2D[%u,%u]", x, y); -unsigned lztpd2xenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, unsigned x, unsigned y, int codid, int codlev, char *codprm); -unsigned lztpd2xdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, unsigned x, unsigned y, int codid, int codlev, char *codprm); -unsigned lztpd2zenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, unsigned x, unsigned y, int codid, int codlev, char *codprm); -unsigned lztpd2zdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, unsigned x, unsigned y, int codid, int codlev, char *codprm); -unsigned lztpd3enc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, unsigned x, unsigned y, unsigned z, int codid, int codlev, char *codprm); -unsigned lztpd3dec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, unsigned x, unsigned y, unsigned z, int codid, int codlev, char *codprm); -unsigned lztpd3xenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, unsigned x, unsigned y, unsigned z, int codid, int codlev, char *codprm); -unsigned lztpd3xdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, unsigned x, unsigned y, unsigned z, int codid, int codlev, char *codprm); -unsigned lztpd3zenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, unsigned x, unsigned y, unsigned z, int codid, int codlev, char *codprm); -unsigned lztpd3zdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, unsigned x, unsigned y, unsigned z, int codid, int codlev, char *codprm); -unsigned lztpd4enc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, unsigned w, unsigned x, unsigned y, unsigned z, int codid, int codlev, char *codprm); -unsigned lztpd4dec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, unsigned w, unsigned x, unsigned y, unsigned z, int codid, int codlev, char *codprm); -unsigned lztpd4xenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, unsigned w, unsigned x, unsigned y, unsigned z, int codid, int codlev, char *codprm); -unsigned lztpd4xdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, unsigned w, unsigned x, unsigned y, unsigned z, int codid, int codlev, char *codprm); -unsigned lztpd4zenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, unsigned w, unsigned x, unsigned y, unsigned z, int codid, int codlev, char *codprm); -unsigned lztpd4zdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, unsigned w, unsigned x, unsigned y, unsigned z, int codid, int codlev, char *codprm); -unsigned lztp1enc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztp1dec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztp1xenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztp1xdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztp1zenc( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outsize, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -unsigned lztp1zdec( unsigned char *in, unsigned inlen, unsigned char *out, unsigned outlen, unsigned esize, unsigned char *tmp, int codid, int codlev, char *codprm); -void tpsizeset(unsigned _tpsize); - -//-- TurboVLC : Novel Variable Length Coding for large integers with exponent + mantissa ------------------------ -size_t vlccomp32( unsigned char *_in, size_t _inlen, unsigned char *out, size_t outsize, unsigned char *tmp, int codid, int codlev, char *codprm); -size_t vlcdecomp32(unsigned char *in, size_t inlen, unsigned char *_out, size_t _outlen, unsigned char *tmp, int codid, int codlev, char *codprm); - -#ifdef __cplusplus -} -#endif - //-- transpose.h - Byte/Nibble transpose for further compressing with lz77 or other compressors ------------------------------------- #ifdef __cplusplus @@ -762,11 +668,11 @@ void tpxdec( unsigned char *in, unsigned n, unsigned char *out, unsigned e void tp2denc( unsigned char *in, unsigned nx, unsigned ny, unsigned char *out, unsigned esize); //2D transpose void tp2ddec( unsigned char *in, unsigned nx, unsigned ny, unsigned char *out, unsigned esize); -void tp2denc2( unsigned char *in, unsigned nx, unsigned ny, unsigned char *out); +void tp2denc2( unsigned char *in, unsigned nx, unsigned ny, unsigned char *out); void tp2ddec2( unsigned char *in, unsigned nx, unsigned ny, unsigned char *out); -void tp2denc4( unsigned char *in, unsigned nx, unsigned ny, unsigned char *out); +void tp2denc4( unsigned char *in, unsigned nx, unsigned ny, unsigned char *out); void tp2ddec4( unsigned char *in, unsigned nx, unsigned ny, unsigned char *out); -void tp2denc8( unsigned char *in, unsigned nx, unsigned ny, unsigned char *out); +void tp2denc8( unsigned char *in, unsigned nx, unsigned ny, unsigned char *out); void tp2ddec8( unsigned char *in, unsigned nx, unsigned ny, unsigned char *out); @@ -882,7 +788,7 @@ void tp4zdec128v8( unsigned char *in, unsigned n, unsigned char *out); void tp4xenc128v8( unsigned char *in, unsigned n, unsigned char *out); void tp4xdec128v8( unsigned char *in, unsigned n, unsigned char *out); -//-- avx2 +//-- avx2 //-- byte transpose void tpenc256v2( unsigned char *in, unsigned n, unsigned char *out); //-- 16 bits void tpdec256v2( unsigned char *in, unsigned n, unsigned char *out);