Skip to main content

filter_symmetric_column

Function filter_symmetric_column 

Source
fn filter_symmetric_column<T, F>(
    arena_src: &[&[T]],
    dst_row: &mut [T],
    image_size: FilterImageSize,
    kernel: &[F],
    n: usize,
)
where T: Copy + AsPrimitive<F>, F: ToStorage<T> + Mul<F, Output = F> + MulAdd<F, Output = F> + Add<F, Output = F> + Default + Copy + 'static,
Expand description

Performs column convolution pass for symmetrical filter

Common convolution formula O(x,y)=∑K(k)⋅I(x,y+k); where sums goes from 0…R when filter is symmetric that we can half kernel reads by using formula O(x,y)=(∑K(k)⋅(I(x,y+k) + I(x,y+(R-k)))) + K(R/2)⋅I(x,y+R/2); where sums goes from 0…R/2