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