- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi! It would be convenient if IIR filter functions [1] would have a variant that filters multi-channel data.
This would be somewhat similar to ippsIIR_32f_P(), but done in IIROne() single-sample fashion.
Thus instead of taking an array of pointers to all the single-channel source vectors (with several time samples in each), the new function (IIROne_P()?) could take a single vector of multi-channel data containing just one time sample from each channel. Some call this "interleaved" data.
Internally the new filter function could store filter states in multi-channel vectors, one vector per z^-1 memory element. I suspect that this would perform better than the current method which is to have one filter state for each channel, and looping over channels, instead of processing all channels in parallel.
Does this sound viable?
[1] http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/lin/ipp/ipps/ipps_ch6/ch6_iir_filter_functions.html
This would be somewhat similar to ippsIIR_32f_P(), but done in IIROne() single-sample fashion.
Thus instead of taking an array of pointers to all the single-channel source vectors (with several time samples in each), the new function (IIROne_P()?) could take a single vector of multi-channel data containing just one time sample from each channel. Some call this "interleaved" data.
Internally the new filter function could store filter states in multi-channel vectors, one vector per z^-1 memory element. I suspect that this would perform better than the current method which is to have one filter state for each channel, and looping over channels, instead of processing all channels in parallel.
Does this sound viable?
[1] http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/lin/ipp/ipps/ipps_ch6/ch6_iir_filter_functions.html
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
you can always call _P variant with vector length==1 - it behaves in the same manner as proposed One_P - moreover, IPP is performance library - and from the performance point of view "One" function doesn't make sense, especially for IIR. Use vector processing functions where it's possible.
Regards,
Igor
Regards,
Igor
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page