Mercurial > libavcodec.hg
comparison libpostproc/postprocess.c @ 141:626bfabff1f5 libavcodec
c speedup (x1, rk1 filters)
author | michael |
---|---|
date | Wed, 31 Oct 2001 02:29:02 +0000 |
parents | 52ed0baddd56 |
children | da4c751fc151 |
comparison
equal
deleted
inserted
replaced
140:52ed0baddd56 | 141:626bfabff1f5 |
---|---|
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 /* |