I've been investigating how to implement 2-D convolution filters (e.g. Gaussian blur, Sobel) with the CMSIS API.
Reference discussion: http://www.songho.ca/dsp/convolution/convolution2d_example.html
Fortunately, the 2-D filters I'm working with are separable; meaning, I can do two successive 1-D convolutions:
- 1D convolution on rows
- transpose the output
- 1D convolution on columns
So I see examples on how to use 1-D convolution, but I have more questions to that:
Q1: is there an "integer-only" example?
Q2: I found some functions that can do matrix transpose, but the minimum base elements are q15_t. Why aren't there q7_t variants to this?
I guess the main question to this: has anyone done this type of operation with CMSIS?
Of note, I'm working on an i.MX1052 M7 core. I'm also working with 8-bit data units.
Thanks, Charles