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:
parent
1342ec526e
commit
662120f2b2
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user