[Ffmpeg-cvslog] CVS: ffmpeg/libavcodec vp3.c,1.50,1.51
Michael Niedermayer CVS
michael
Tue May 17 22:50:50 CEST 2005
Update of /cvsroot/ffmpeg/ffmpeg/libavcodec
In directory mail:/var2/tmp/cvs-serv29630
Modified Files:
vp3.c
Log Message:
some optimizations gcc should have done (10% faster loop filter)
Index: vp3.c
===================================================================
RCS file: /cvsroot/ffmpeg/ffmpeg/libavcodec/vp3.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -d -r1.50 -r1.51
--- vp3.c 17 May 2005 20:30:22 -0000 1.50
+++ vp3.c 17 May 2005 20:50:47 -0000 1.51
@@ -2248,15 +2248,13 @@
static void horizontal_filter(unsigned char *first_pixel, int stride,
int *bounding_values)
{
- int i;
+ unsigned char *end;
int filter_value;
- for (i = 0; i < 8; i++, first_pixel += stride) {
+ for (end= first_pixel + 8*stride; first_pixel < end; first_pixel += stride) {
filter_value =
- (first_pixel[-2] * 1) -
- (first_pixel[-1] * 3) +
- (first_pixel[ 0] * 3) -
- (first_pixel[ 1] * 1);
+ (first_pixel[-2] - first_pixel[ 1])
+ +3*(first_pixel[ 0] - first_pixel[-1]);
filter_value = bounding_values[(filter_value + 4) >> 3];
first_pixel[-1] = clip_uint8(first_pixel[-1] + filter_value);
first_pixel[ 0] = clip_uint8(first_pixel[ 0] - filter_value);
@@ -2266,17 +2264,16 @@
static void vertical_filter(unsigned char *first_pixel, int stride,
int *bounding_values)
{
- int i;
+ unsigned char *end;
int filter_value;
+ const int nstride= -stride;
- for (i = 0; i < 8; i++, first_pixel++) {
+ for (end= first_pixel + 8; first_pixel < end; first_pixel++) {
filter_value =
- (first_pixel[-(2 * stride)] * 1) -
- (first_pixel[-(1 * stride)] * 3) +
- (first_pixel[ (0 )] * 3) -
- (first_pixel[ (1 * stride)] * 1);
+ (first_pixel[2 * nstride] - first_pixel[ stride])
+ +3*(first_pixel[0 ] - first_pixel[nstride]);
filter_value = bounding_values[(filter_value + 4) >> 3];
- first_pixel[-(1 * stride)] = clip_uint8(first_pixel[-(1 * stride)] + filter_value);
+ first_pixel[nstride] = clip_uint8(first_pixel[nstride] + filter_value);
first_pixel[0] = clip_uint8(first_pixel[0] - filter_value);
}
}
More information about the ffmpeg-cvslog
mailing list