Variable Byte
This commit is contained in:
13
vint.c
13
vint.c
@ -36,7 +36,7 @@
|
|||||||
#define M4 0xfffffff0ull //28
|
#define M4 0xfffffff0ull //28
|
||||||
#define M5 0xfffffffff0ull //36
|
#define M5 0xfffffffff0ull //36
|
||||||
|
|
||||||
//0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
|
//0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
|
||||||
unsigned long long mtab[] = { M1, M2, M1, M3, M1, M2, M1, M4, M1, M2, M1, M3, M1, M2, M1, M5 };
|
unsigned long long mtab[] = { M1, M2, M1, M3, M1, M2, M1, M4, M1, M2, M1, M3, M1, M2, M1, M5 };
|
||||||
#endif
|
#endif
|
||||||
//------------------------------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------------------------------
|
||||||
@ -161,8 +161,9 @@ unsigned char *vbd1dec(unsigned char *__restrict in, unsigned n, unsigned *__res
|
|||||||
return in;
|
return in;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------- variable byte : 15 bits -------------------------------------------------------------------
|
//--------------------------------------- variable byte : 16/15 bits -------------------------------------------------------------------
|
||||||
// like vbenc32 but for 16 bits values
|
unsigned char *vbenc15(unsigned short *__restrict in, unsigned n, unsigned char *__restrict out) { unsigned short *in_ = in +n; while(in < in_) vbput15(out, *in++); return out;}
|
||||||
unsigned char *vbenc16(unsigned short *__restrict in, unsigned n, unsigned char *__restrict out) { unsigned short *in_ = in +n; while(in < in_) vbput16(out, *in++); return out;}
|
unsigned char *vbdec15(unsigned char *__restrict in, unsigned n, unsigned short *__restrict out) { unsigned short *out_ = out+n,x; while(out < out_) vbgeta15(in, x, *out++ = x); return in; }
|
||||||
// like vbdec32 but for 16 bits values
|
|
||||||
unsigned char *vbdec16(unsigned char *__restrict in, unsigned n, unsigned short *__restrict out) { unsigned short *out_ = out+n,x; while(out < out_) vbgeta16(in, x, *out++ = x); return in; }
|
unsigned char *vbenc16(unsigned short *__restrict in, unsigned n, unsigned char *__restrict out) { unsigned short *in_ = in +n; while(in < in_) vbput(out, *in++); return out;}
|
||||||
|
unsigned char *vbdec16(unsigned char *__restrict in, unsigned n, unsigned short *__restrict out) { unsigned short *out_ = out+n,x; while(out < out_) vbgeta(in, x, *out++ = x); return in; }
|
||||||
|
|||||||
Reference in New Issue
Block a user