TurboPFor: TurboPFor encode
This commit is contained in:
30
vp4c.c
30
vp4c.c
@ -34,7 +34,6 @@
|
|||||||
|
|
||||||
#define PAD8(_x_) ( (((_x_)+8-1)/8) )
|
#define PAD8(_x_) ( (((_x_)+8-1)/8) )
|
||||||
//------------------------------------------
|
//------------------------------------------
|
||||||
#define EXCEP 1 // Hybrid TurboPFor : 1=Variable byte
|
|
||||||
#define _P4BITS _p4bits
|
#define _P4BITS _p4bits
|
||||||
|
|
||||||
//-- Scalar
|
//-- Scalar
|
||||||
@ -43,20 +42,29 @@
|
|||||||
#define P4NENC p4nenc
|
#define P4NENC p4nenc
|
||||||
#define BITPACK bitpack
|
#define BITPACK bitpack
|
||||||
|
|
||||||
|
#define USIZE 8
|
||||||
|
#include "vp4c.c"
|
||||||
|
|
||||||
|
#define EXCEP 1 // Hybrid TurboPFor : 0=fixed bit packing, 1=fixed BP+Variable byte
|
||||||
|
#define USIZE 16
|
||||||
|
#include "vp4c.c"
|
||||||
|
|
||||||
#define USIZE 32
|
#define USIZE 32
|
||||||
#include "vp4c.c"
|
#include "vp4c.c"
|
||||||
|
|
||||||
#define USIZE 64
|
#define USIZE 64
|
||||||
#include "vp4c.c"
|
#include "vp4c.c"
|
||||||
|
|
||||||
#define USIZE 16
|
|
||||||
#include "vp4c.c"
|
|
||||||
|
|
||||||
#define P4DELTA 0
|
#define P4DELTA 0
|
||||||
#define P4DENC p4denc
|
#define P4DENC p4denc
|
||||||
#define P4NENC p4ndenc
|
#define P4NENC p4ndenc
|
||||||
#define P4NENCS p4denc
|
#define P4NENCS p4denc
|
||||||
|
|
||||||
|
#undef EXCEP
|
||||||
|
#define USIZE 8
|
||||||
|
#include "vp4c.c"
|
||||||
|
#define EXCEP 1
|
||||||
|
|
||||||
#define USIZE 16
|
#define USIZE 16
|
||||||
#include "vp4c.c"
|
#include "vp4c.c"
|
||||||
|
|
||||||
@ -71,6 +79,11 @@
|
|||||||
#define P4NENC p4nd1enc
|
#define P4NENC p4nd1enc
|
||||||
#define P4NENCS p4d1enc
|
#define P4NENCS p4d1enc
|
||||||
|
|
||||||
|
#undef EXCEP
|
||||||
|
#define USIZE 8
|
||||||
|
#include "vp4c.c"
|
||||||
|
#define EXCEP 1
|
||||||
|
|
||||||
#define USIZE 16
|
#define USIZE 16
|
||||||
#include "vp4c.c"
|
#include "vp4c.c"
|
||||||
|
|
||||||
@ -88,6 +101,11 @@
|
|||||||
#define P4ENC p4encx
|
#define P4ENC p4encx
|
||||||
#define P4NENC p4nencx
|
#define P4NENC p4nencx
|
||||||
|
|
||||||
|
#undef EXCEP
|
||||||
|
#define USIZE 8
|
||||||
|
#include "vp4c.c"
|
||||||
|
#define EXCEP 1
|
||||||
|
|
||||||
#define USIZE 16
|
#define USIZE 16
|
||||||
#include "vp4c.c"
|
#include "vp4c.c"
|
||||||
|
|
||||||
@ -272,7 +290,7 @@ unsigned char *TEMPLATE2(P4ENC, USIZE)(uint_t *__restrict in, unsigned n, unsign
|
|||||||
return TEMPLATE2(_P4ENC, USIZE)(in, n, out, b, bx);
|
return TEMPLATE2(_P4ENC, USIZE)(in, n, out, b, bx);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char *TEMPLATE2(P4NENC, USIZE)(uint_t *__restrict in, unsigned n, unsigned char *__restrict out) {
|
unsigned char *TEMPLATE2(P4NENC, USIZE)(uint_t *__restrict in, size_t n, unsigned char *__restrict out) {
|
||||||
uint_t *ip;
|
uint_t *ip;
|
||||||
for(ip = in; ip != in+(n&~(CSIZE-1)); ip += CSIZE) { __builtin_prefetch(ip+512);
|
for(ip = in; ip != in+(n&~(CSIZE-1)); ip += CSIZE) { __builtin_prefetch(ip+512);
|
||||||
unsigned bx, b = TEMPLATE2(_p4bits, USIZE)(ip, CSIZE, &bx);
|
unsigned bx, b = TEMPLATE2(_p4bits, USIZE)(ip, CSIZE, &bx);
|
||||||
@ -292,7 +310,7 @@ ALWAYS_INLINE unsigned char *TEMPLATE2(P4DENC, USIZE)(uint_t *__restrict in, uns
|
|||||||
return TEMPLATE2(P4ENC, USIZE)(_in, n, out);
|
return TEMPLATE2(P4ENC, USIZE)(_in, n, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char *TEMPLATE2(P4NENC, USIZE)(uint_t *__restrict in, unsigned n, unsigned char *__restrict out, uint_t start) {
|
unsigned char *TEMPLATE2(P4NENC, USIZE)(uint_t *__restrict in, size_t n, unsigned char *__restrict out, uint_t start) {
|
||||||
uint_t *ip;
|
uint_t *ip;
|
||||||
for(ip = in; ip != in+(n&~(CSIZE-1)); ip += CSIZE) { __builtin_prefetch(ip+512);
|
for(ip = in; ip != in+(n&~(CSIZE-1)); ip += CSIZE) { __builtin_prefetch(ip+512);
|
||||||
uint_t _in[P4D_MAX+8];
|
uint_t _in[P4D_MAX+8];
|
||||||
|
Reference in New Issue
Block a user