From aca24e3b46c4ab32b541245aaeac5a9b2539de81 Mon Sep 17 00:00:00 2001 From: x Date: Thu, 23 Mar 2023 11:29:37 +0100 Subject: [PATCH] TurboPFor: Binary Interpolative Coding --- lib/include_/bic.h | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/include_/bic.h b/lib/include_/bic.h index 946ce13..4249b2d 100644 --- a/lib/include_/bic.h +++ b/lib/include_/bic.h @@ -38,10 +38,25 @@ typedef unsigned long long uint64_t; extern "C" { #endif -unsigned bicsenc32(uint32_t *in, unsigned n, unsigned char *out); -unsigned bicsdec32(unsigned char *in, unsigned n, uint32_t *out); +//-- maximum output size for encoding +size_t bicbound16(size_t n); +size_t bicbound32(size_t n); + +//-- Simple binary +unsigned bicbenc16(uint16_t *in, unsigned n, unsigned char *out); +unsigned bicbdec16(unsigned char *in, unsigned n, uint16_t *out); +unsigned bicbenc32(uint32_t *in, unsigned n, unsigned char *out); +unsigned bicbdec32(unsigned char *in, unsigned n, uint32_t *out); + +//-- Leftmost minimal +unsigned bicenc16( uint16_t *in, unsigned n, unsigned char *out); +unsigned bicdec16( unsigned char *in, unsigned n, uint16_t *out); unsigned bicenc32( uint32_t *in, unsigned n, unsigned char *out); unsigned bicdec32( unsigned char *in, unsigned n, uint32_t *out); + +//-- Center Minimal +unsigned bicmenc16(uint16_t *in, unsigned n, unsigned char *out); +unsigned bicmdec16(unsigned char *in, unsigned n, uint16_t *out); unsigned bicmenc32(uint32_t *in, unsigned n, unsigned char *out); unsigned bicmdec32(unsigned char *in, unsigned n, uint32_t *out);