[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