const uint8_t *c[], int peak, int radius,
int dstride, int stride, int size);
+void ff_filter_sobel_avx512icl(uint8_t *dst, int width,
+ float scale, float delta, const int *const matrix,
+ const uint8_t *c[], int peak, int radius,
+ int dstride, int stride, int size);
+
av_cold void ff_convolution_init_x86(ConvolutionContext *s)
{
#if ARCH_X86_64
}
#endif
}
+
+av_cold void ff_sobel_init_x86(ConvolutionContext *s, int depth, int nb_planes)
+{
+#if ARCH_X86_64
+ int cpu_flags = av_get_cpu_flags();
+ for (int i = 0; i < nb_planes; i++) {
+ if (depth == 8) {
+ if (EXTERNAL_AVX512ICL(cpu_flags))
+ s->filter[i] = ff_filter_sobel_avx512icl;
+ }
+ }
+#endif
+}