+void applyfilter1(int mode, U8*src, U8*old, U8*dest, int width)
+{
+ int x;
+ unsigned char last=0;
+ unsigned char upperlast=0;
+
+ if(mode==0) {
+ for(x=0;x<width;x++) {
+ *dest = *src;
+ dest++;
+ src++;
+ }
+ }
+ else if(mode==1) {
+ for(x=0;x<width;x++) {
+ *dest = *src+last;
+ last = *dest;
+ dest++;
+ src++;
+ }
+ }
+ else if(mode==2) {
+ for(x=0;x<width;x++) {
+ *dest = *src+*old;
+ dest++;
+ old++;
+ src++;
+ }
+ }
+ else if(mode==3) {
+ for(x=0;x<width;x++) {
+ *dest = *src+(*old+last)/2;
+ dest++;
+ old++;
+ src++;
+ }
+ }
+ else if(mode==4) {
+ for(x=0;x<width;x++) {
+ *dest = *src+PaethPredictor(last,*old,upperlast);
+ last = *dest;
+ upperlast = *old;
+ dest++;
+ old++;
+ src++;
+ }
+ }
+
+}
+