Function xf::cv::aie::gaussian_api
Defined in File xf_gaussian_aie.hpp
Function Documentation
-
void xf::cv::aie::gaussian_api(input_window_int32 *img_in, output_window_int32 *img_out)
32-bit 2D filter with in kernel border support
Kernel coefficients (3x3): k0 k1 k2 k3 k4 k5 k6 k7 | k8 - - - - - -
Image data (by rows): d0 1 2 3 4 5 6 7 8 9 - - - - - - d16 17 18 19 20 21 22 23 24 25 - - - - - - d32 33 34 35 36 37 38 39 40 41 - - - - - -
Intrinsic multiplier: o0 = k0*(d0) o1 = k0*(d1) o2 = k0*(d2) o3 = k0*(d3) o4 = k0*(d4) o5 = k0*(d5) o6 = k0*(d6) o7 = k0*(d7)
Kernel vector multiplication: Data: Kernel:
o0..7 = k0*(d0..7) d0 1 2 3 4 5 6 7 k0 k1 k2 += k1*(d1..8) 1 2 3 4 5 6 7 8 k3 k4 k5 += k2*(d2..9) 2 3 4 5 6 7 8 9 k6 k7 k8 += k3*(d16..23) d16 17 18 19 20 21 22 23 += k4*(d17..24) 17 18 19 20 21 22 23 24 += k5*(d18..25) 18 19 20 21 22 23 24 25 += k6*(d32..39) d32 33 34 35 36 37 38 39 += k7*(d33..40) 33 34 35 36 37 38 39 40 += k8*(d34..41) 34 35 36 37 38 39 40 41
lmac8 intrinsic
acc = lmac8( acc, data_buf , n , 0x76543210 , kernel_vec0, 0, zoffset); ^ ^ ^ ^ ^ ^ ^ (accumulator) (single large buffer) (start x index) (x offsets) (coefficient buffer) (start z index) (z offsets) (per lane ) (per lane ) ( 32b granularity ) ( 32b granularity )
Image regions for border effect handling
| | | | |6_|__________2____________|7_| first row
|8_|__________3____________|9_| last row4
1
5
__
_______________________
__