changeset 141:626bfabff1f5 libavcodec

c speedup (x1, rk1 filters)
author michael
date Wed, 31 Oct 2001 02:29:02 +0000
parents 52ed0baddd56
children da4c751fc151
files libpostproc/postprocess.c libpostproc/postprocess_template.c
diffstat 2 files changed, 30 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/libpostproc/postprocess.c	Tue Oct 30 21:14:02 2001 +0000
+++ b/libpostproc/postprocess.c	Wed Oct 31 02:29:02 2001 +0000
@@ -670,20 +670,19 @@
 //	const int l8= stride + l7;
 //	const int l9= stride + l8;
 	int x;
+	const int QP15= QP + (QP>>2);
 	src+= stride*3;
 	for(x=0; x<BLOCK_SIZE; x++)
 	{
-		if(ABS(src[l4]-src[l5]) < QP + QP/4)
+		const int v = (src[x+l5] - src[x+l4]);
+		if(ABS(v) < QP15)
 		{
-			int v = (src[l5] - src[l4]);
-
-			src[l3] +=v/8;
-			src[l4] +=v/2;
-			src[l5] -=v/2;
-			src[l6] -=v/8;
+			src[x+l3] +=v>>3;
+			src[x+l4] +=v>>1;
+			src[x+l5] -=v>>1;
+			src[x+l6] -=v>>3;
 
 		}
-		src++;
 	}
 
 #endif
@@ -803,18 +802,19 @@
 		int b= src[l4] - src[l5];
 		int c= src[l5] - src[l6];
 
-		int d= MAX(ABS(b) - (ABS(a) + ABS(c))/2, 0);
+		int d= ABS(b) - ((ABS(a) + ABS(c))>>1);
+		d= MAX(d, 0);
 
 		if(d < QP)
 		{
 			int v = d * SIGN(-b);
 
-			src[l2] +=v/8;
-			src[l3] +=v/4;
-			src[l4] +=3*v/8;
-			src[l5] -=3*v/8;
-			src[l6] -=v/4;
-			src[l7] -=v/8;
+			src[l2] +=v>>3;
+			src[l3] +=v>>2;
+			src[l4] +=(3*v)>>3;
+			src[l5] -=(3*v)>>3;
+			src[l6] -=v>>2;
+			src[l7] -=v>>3;
 
 		}
 		src++;
--- a/libpostproc/postprocess_template.c	Tue Oct 30 21:14:02 2001 +0000
+++ b/libpostproc/postprocess_template.c	Wed Oct 31 02:29:02 2001 +0000
@@ -670,20 +670,19 @@
 //	const int l8= stride + l7;
 //	const int l9= stride + l8;
 	int x;
+	const int QP15= QP + (QP>>2);
 	src+= stride*3;
 	for(x=0; x<BLOCK_SIZE; x++)
 	{
-		if(ABS(src[l4]-src[l5]) < QP + QP/4)
+		const int v = (src[x+l5] - src[x+l4]);
+		if(ABS(v) < QP15)
 		{
-			int v = (src[l5] - src[l4]);
-
-			src[l3] +=v/8;
-			src[l4] +=v/2;
-			src[l5] -=v/2;
-			src[l6] -=v/8;
+			src[x+l3] +=v>>3;
+			src[x+l4] +=v>>1;
+			src[x+l5] -=v>>1;
+			src[x+l6] -=v>>3;
 
 		}
-		src++;
 	}
 
 #endif
@@ -803,18 +802,19 @@
 		int b= src[l4] - src[l5];
 		int c= src[l5] - src[l6];
 
-		int d= MAX(ABS(b) - (ABS(a) + ABS(c))/2, 0);
+		int d= ABS(b) - ((ABS(a) + ABS(c))>>1);
+		d= MAX(d, 0);
 
 		if(d < QP)
 		{
 			int v = d * SIGN(-b);
 
-			src[l2] +=v/8;
-			src[l3] +=v/4;
-			src[l4] +=3*v/8;
-			src[l5] -=3*v/8;
-			src[l6] -=v/4;
-			src[l7] -=v/8;
+			src[l2] +=v>>3;
+			src[l3] +=v>>2;
+			src[l4] +=(3*v)>>3;
+			src[l5] -=(3*v)>>3;
+			src[l6] -=v>>2;
+			src[l7] -=v>>3;
 
 		}
 		src++;