[Mndiff-dev] [mndiff]: r21 - trunk/mnzip/mnzip.c
michael
subversion at mplayerhq.hu
Fri Jun 15 02:37:44 CEST 2007
Author: michael
Date: Fri Jun 15 02:37:43 2007
New Revision: 21
Log:
8bit state is enough
Modified:
trunk/mnzip/mnzip.c
Modified: trunk/mnzip/mnzip.c
==============================================================================
--- trunk/mnzip/mnzip.c (original)
+++ trunk/mnzip/mnzip.c Fri Jun 15 02:37:43 2007
@@ -436,7 +436,7 @@ static void init_prob(unsigned short *pr
}
}
-static inline void putbit(RangeCoder *c, uint32_t *state, int b, unsigned short *prob){
+static inline void putbit(RangeCoder *c, uint8_t *state, int b, unsigned short *prob){
int ctx= *state;
int p8= (prob[ctx] + 128)>>8;
@@ -447,7 +447,7 @@ static inline void putbit(RangeCoder *c,
*state= state_table[ctx][b];
}
-static inline int getbit(RangeCoder *c, uint32_t *state, unsigned short *prob){
+static inline int getbit(RangeCoder *c, uint8_t *state, unsigned short *prob){
int ctx= *state;
int p8= (prob[ctx] + 128)>>8;
@@ -460,7 +460,7 @@ static inline int getbit(RangeCoder *c,
return b;
}
-static inline void put_symbol_255(RangeCoder *c, uint32_t *state, int v){
+static inline void put_symbol_255(RangeCoder *c, uint8_t *state, int v){
const int e= av_log2(v);
int i;
@@ -478,7 +478,7 @@ static inline void put_symbol_255(RangeC
putbit(c, state+7+i, (v>>i)&1 , prob[7+i]); //7..13
}
-static inline int get_symbol_255(RangeCoder *c, uint32_t *state){
+static inline int get_symbol_255(RangeCoder *c, uint8_t *state){
int e,a,i;
if(getbit(c, state+14, prob[14]))
@@ -511,7 +511,7 @@ static unsigned int compress(uint8_t *ou
unsigned int start,j, out_size;
int i;
RangeCoder c;
- uint32_t state[16*512*32+1];
+ uint8_t state[16*512*32+1];
int mtf[256];
fprintf(stderr, "bwt\n");
start= bwt(tmp, in, len);
@@ -574,7 +574,7 @@ static int decompress(FILE *fi, int low_
int ret;
uint8_t *tmp; //FIXME reduce memory needs
RangeCoder c;
- uint32_t state[257*16];
+ uint8_t state[257*16];
unsigned int histogram[256]={0};
int mtf[256];
uint8_t tmpX[16];
More information about the Mndiff-dev
mailing list