TurboPFor: TurboPFor decode
This commit is contained in:
12
lib/vp4d.c
12
lib/vp4d.c
@ -485,11 +485,11 @@ unsigned char *T2(p4decx, USIZE)(unsigned char *in, unsigned n, uint_t *__restri
|
|||||||
|
|
||||||
if(unlikely(p4.isx)) {
|
if(unlikely(p4.isx)) {
|
||||||
#define ITX(k) out[i+k] = T2(p4getx, USIZE)(&p4, in, i+k, b);
|
#define ITX(k) out[i+k] = T2(p4getx, USIZE)(&p4, in, i+k, b);
|
||||||
for(i = 0; i != n&~3; i += 4) { ITX(0); ITX(1); ITX(2); ITX(3); }
|
for(i = 0; i != (n&(~3)); i += 4) { ITX(0); ITX(1); ITX(2); ITX(3); }
|
||||||
for( ; i != n; i++ ) ITX(0);
|
for( ; i != n; i++ ) ITX(0);
|
||||||
} else {
|
} else {
|
||||||
#define ITY(k) out[i+k] = T2(bitgetx, USIZE)(in, i+k, b);
|
#define ITY(k) out[i+k] = T2(bitgetx, USIZE)(in, i+k, b);
|
||||||
for(i = 0; i != n&~3; i += 4) { ITY(0); ITY(1); ITY(2); ITY(3); }
|
for(i = 0; i != (n&(~3)); i += 4) { ITY(0); ITY(1); ITY(2); ITY(3); }
|
||||||
for( ; i != n; i++) ITY(0);
|
for( ; i != n; i++) ITY(0);
|
||||||
}
|
}
|
||||||
return in + PAD8(n*b);
|
return in + PAD8(n*b);
|
||||||
@ -502,11 +502,11 @@ unsigned char *T2(p4f1decx, USIZE)(unsigned char *in, unsigned n, uint_t *__rest
|
|||||||
p4ini(&p4, &in, n, &b);
|
p4ini(&p4, &in, n, &b);
|
||||||
if(unlikely(p4.isx)) {
|
if(unlikely(p4.isx)) {
|
||||||
#define ITX(k) out[i+k] = T2(p4getx, USIZE)(&p4, in, (i+k), b)+start+i+k+1;
|
#define ITX(k) out[i+k] = T2(p4getx, USIZE)(&p4, in, (i+k), b)+start+i+k+1;
|
||||||
for(i = 0; i != n&~3; i+=4) { ITX(0); ITX(1); ITX(2); ITX(3); }
|
for(i = 0; i != (n&(~3)); i+=4) { ITX(0); ITX(1); ITX(2); ITX(3); }
|
||||||
for( ; i != n; i++) ITX(0);
|
for( ; i != n; i++) ITX(0);
|
||||||
} else {
|
} else {
|
||||||
#define ITY(k) out[i+k] = T2(bitgetx, USIZE)(in, (i+k), b)+start+i+k+1;
|
#define ITY(k) out[i+k] = T2(bitgetx, USIZE)(in, (i+k), b)+start+i+k+1;
|
||||||
for(i = 0; i != n&~3; i += 4) { ITY(0); ITY(1); ITY(2); ITY(3); }
|
for(i = 0; i != (n&(~3)); i += 4) { ITY(0); ITY(1); ITY(2); ITY(3); }
|
||||||
for( ; i != n; i++) ITY(0);
|
for( ; i != n; i++) ITY(0);
|
||||||
}
|
}
|
||||||
return in + PAD8(n*b);
|
return in + PAD8(n*b);
|
||||||
@ -519,11 +519,11 @@ unsigned char *T2(p4fdecx, USIZE)(unsigned char *in, unsigned n, uint_t *__restr
|
|||||||
|
|
||||||
if(unlikely(p4.isx)) {
|
if(unlikely(p4.isx)) {
|
||||||
#define ITX(k) out[i+k] = T2(p4getx, USIZE)(&p4, in, i+k, b)+start;
|
#define ITX(k) out[i+k] = T2(p4getx, USIZE)(&p4, in, i+k, b)+start;
|
||||||
for(i = 0; i != n&~3; i+=4) { ITX(0); ITX(1); ITX(2); ITX(3); }
|
for(i = 0; i != (n&(~3)); i+=4) { ITX(0); ITX(1); ITX(2); ITX(3); }
|
||||||
for( ; i != n; i++) ITX(0);
|
for( ; i != n; i++) ITX(0);
|
||||||
} else {
|
} else {
|
||||||
#define ITY(k) out[i+k] = T2(bitgetx, USIZE)(in, (i+k), b)+start;
|
#define ITY(k) out[i+k] = T2(bitgetx, USIZE)(in, (i+k), b)+start;
|
||||||
for(i = 0; i != n&~3; i+=4) { ITY(0); ITY(1); ITY(2); ITY(3); }
|
for(i = 0; i != (n&(~3)); i+=4) { ITY(0); ITY(1); ITY(2); ITY(3); }
|
||||||
for( ; i != n; i++) ITY(0);
|
for( ; i != n; i++) ITY(0);
|
||||||
}
|
}
|
||||||
return in + PAD8(n*b);
|
return in + PAD8(n*b);
|
||||||
|
Reference in New Issue
Block a user