1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00

avfilter/vf_convolution: use sqrtf as its faster

This commit is contained in:
Paul B Mahol 2018-11-15 19:09:20 +01:00
parent 1342ec526e
commit 662120f2b2

View File

@ -157,7 +157,7 @@ static void filter16_prewitt(uint8_t *dstp, int width,
int sumb = AV_RN16A(&c[0][2 * x]) * -1 + AV_RN16A(&c[2][2 * x]) * 1 + AV_RN16A(&c[3][2 * x]) * -1 + int sumb = AV_RN16A(&c[0][2 * x]) * -1 + AV_RN16A(&c[2][2 * x]) * 1 + AV_RN16A(&c[3][2 * x]) * -1 +
AV_RN16A(&c[5][2 * x]) * 1 + AV_RN16A(&c[6][2 * x]) * -1 + AV_RN16A(&c[8][2 * x]) * 1; AV_RN16A(&c[5][2 * x]) * 1 + AV_RN16A(&c[6][2 * x]) * -1 + AV_RN16A(&c[8][2 * x]) * 1;
dst[x] = av_clip(sqrt(suma*suma + sumb*sumb) * scale + delta, 0, peak); dst[x] = av_clip(sqrtf(suma*suma + sumb*sumb) * scale + delta, 0, peak);
} }
} }
@ -173,7 +173,7 @@ static void filter16_roberts(uint8_t *dstp, int width,
int suma = AV_RN16A(&c[0][2 * x]) * 1 + AV_RN16A(&c[1][2 * x]) * -1; int suma = AV_RN16A(&c[0][2 * x]) * 1 + AV_RN16A(&c[1][2 * x]) * -1;
int sumb = AV_RN16A(&c[4][2 * x]) * 1 + AV_RN16A(&c[3][2 * x]) * -1; int sumb = AV_RN16A(&c[4][2 * x]) * 1 + AV_RN16A(&c[3][2 * x]) * -1;
dst[x] = av_clip(sqrt(suma*suma + sumb*sumb) * scale + delta, 0, peak); dst[x] = av_clip(sqrtf(suma*suma + sumb*sumb) * scale + delta, 0, peak);
} }
} }
@ -191,7 +191,7 @@ static void filter16_sobel(uint8_t *dstp, int width,
int sumb = AV_RN16A(&c[0][2 * x]) * -1 + AV_RN16A(&c[2][2 * x]) * 1 + AV_RN16A(&c[3][2 * x]) * -2 + int sumb = AV_RN16A(&c[0][2 * x]) * -1 + AV_RN16A(&c[2][2 * x]) * 1 + AV_RN16A(&c[3][2 * x]) * -2 +
AV_RN16A(&c[5][2 * x]) * 2 + AV_RN16A(&c[6][2 * x]) * -1 + AV_RN16A(&c[8][2 * x]) * 1; AV_RN16A(&c[5][2 * x]) * 2 + AV_RN16A(&c[6][2 * x]) * -1 + AV_RN16A(&c[8][2 * x]) * 1;
dst[x] = av_clip(sqrt(suma*suma + sumb*sumb) * scale + delta, 0, peak); dst[x] = av_clip(sqrtf(suma*suma + sumb*sumb) * scale + delta, 0, peak);
} }
} }
@ -211,7 +211,7 @@ static void filter_prewitt(uint8_t *dst, int width,
int sumb = c0[x] * -1 + c2[x] * 1 + c3[x] * -1 + int sumb = c0[x] * -1 + c2[x] * 1 + c3[x] * -1 +
c5[x] * 1 + c6[x] * -1 + c8[x] * 1; c5[x] * 1 + c6[x] * -1 + c8[x] * 1;
dst[x] = av_clip_uint8(sqrt(suma*suma + sumb*sumb) * scale + delta); dst[x] = av_clip_uint8(sqrtf(suma*suma + sumb*sumb) * scale + delta);
} }
} }
@ -226,7 +226,7 @@ static void filter_roberts(uint8_t *dst, int width,
int suma = c[0][x] * 1 + c[1][x] * -1; int suma = c[0][x] * 1 + c[1][x] * -1;
int sumb = c[4][x] * 1 + c[3][x] * -1; int sumb = c[4][x] * 1 + c[3][x] * -1;
dst[x] = av_clip_uint8(sqrt(suma*suma + sumb*sumb) * scale + delta); dst[x] = av_clip_uint8(sqrtf(suma*suma + sumb*sumb) * scale + delta);
} }
} }
@ -246,7 +246,7 @@ static void filter_sobel(uint8_t *dst, int width,
int sumb = c0[x] * -1 + c2[x] * 1 + c3[x] * -2 + int sumb = c0[x] * -1 + c2[x] * 1 + c3[x] * -2 +
c5[x] * 2 + c6[x] * -1 + c8[x] * 1; c5[x] * 2 + c6[x] * -1 + c8[x] * 1;
dst[x] = av_clip_uint8(sqrt(suma*suma + sumb*sumb) * scale + delta); dst[x] = av_clip_uint8(sqrtf(suma*suma + sumb*sumb) * scale + delta);
} }
} }