www.pudn.com > xiaobo.zip.zip > coder_none.c


#include  
#include  
#include  
#include  
 
#include "coder.h" 
 
void coderNone_encodeBand(coder *me,int *band,int w,int h,int fullw,int *parent); 
void coderNone_decodeBand(coder *me,int *band,int w,int h,int fullw,int *parent); 
 
void coderNone_init(coder *me) { } 
void coderNone_free(coder *me) { } 
 
#define RANGE	32 
#define ESCAPE	(RANGE-1) 
 
coder coderNone = { 
		"none", 
		coderNone_init, 
		coderNone_free, 
		coderNone_encodeBand, 
		coderNone_decodeBand 
	}; 
 
void coderNone_encodeBand(coder *me,int *band,int width,int height,int fullw,int *parent) 
{ 
int x,y,v,sign; 
int *dp; 
arithInfo *ari = me->arith; 
 
	dp = band; 
	for(y=0;y= ESCAPE ) { 
				arithEncode(ari,ESCAPE,RANGE,RANGE); 
				v -= ESCAPE; 
			} 
			arithEncode(ari,v,v+1,RANGE); 
			 
			arithBit(ari,sign); 
		} 
		dp += (fullw - width); 
	} 
} 
 
void coderNone_decodeBand(coder *me,int *band,int width,int height,int fullw,int *parent) 
{ 
int x,y,v,got; 
int *dp; 
arithInfo *ari = me->arith; 
 
	dp = band; 
	for(y=0;y