comparison postproc/postprocess.c @ 2586:3b05a6b4d870

c speedup (x1, rk1 filters)
author michael
date Wed, 31 Oct 2001 02:29:02 +0000
parents af43a83122fc
children 6c1d6f508466
comparison
equal deleted inserted replaced
2585:bd52b78f12dc 2586:3b05a6b4d870
668 const int l6= stride + l5; 668 const int l6= stride + l5;
669 // const int l7= stride + l6; 669 // const int l7= stride + l6;
670 // const int l8= stride + l7; 670 // const int l8= stride + l7;
671 // const int l9= stride + l8; 671 // const int l9= stride + l8;
672 int x; 672 int x;
673 const int QP15= QP + (QP>>2);
673 src+= stride*3; 674 src+= stride*3;
674 for(x=0; x<BLOCK_SIZE; x++) 675 for(x=0; x<BLOCK_SIZE; x++)
675 { 676 {
676 if(ABS(src[l4]-src[l5]) < QP + QP/4) 677 const int v = (src[x+l5] - src[x+l4]);
678 if(ABS(v) < QP15)
677 { 679 {
678 int v = (src[l5] - src[l4]); 680 src[x+l3] +=v>>3;
679 681 src[x+l4] +=v>>1;
680 src[l3] +=v/8; 682 src[x+l5] -=v>>1;
681 src[l4] +=v/2; 683 src[x+l6] -=v>>3;
682 src[l5] -=v/2;
683 src[l6] -=v/8;
684 684
685 } 685 }
686 src++;
687 } 686 }
688 687
689 #endif 688 #endif
690 } 689 }
691 690
801 { 800 {
802 int a= src[l3] - src[l4]; 801 int a= src[l3] - src[l4];
803 int b= src[l4] - src[l5]; 802 int b= src[l4] - src[l5];
804 int c= src[l5] - src[l6]; 803 int c= src[l5] - src[l6];
805 804
806 int d= MAX(ABS(b) - (ABS(a) + ABS(c))/2, 0); 805 int d= ABS(b) - ((ABS(a) + ABS(c))>>1);
806 d= MAX(d, 0);
807 807
808 if(d < QP) 808 if(d < QP)
809 { 809 {
810 int v = d * SIGN(-b); 810 int v = d * SIGN(-b);
811 811
812 src[l2] +=v/8; 812 src[l2] +=v>>3;
813 src[l3] +=v/4; 813 src[l3] +=v>>2;
814 src[l4] +=3*v/8; 814 src[l4] +=(3*v)>>3;
815 src[l5] -=3*v/8; 815 src[l5] -=(3*v)>>3;
816 src[l6] -=v/4; 816 src[l6] -=v>>2;
817 src[l7] -=v/8; 817 src[l7] -=v>>3;
818 818
819 } 819 }
820 src++; 820 src++;
821 } 821 }
822 /* 822 /*