On Sun, Jun 14, 2009 at 06:17:20PM +0200, Jens M Andreasen wrote:
> ...
>
> This is called for each of the four filters like:
>
> for (j = 0; j < bands_count; j++)
> {
> param_sect_proc(filter_ptr->sect + j, k,
> sig, sfreq[j], sband[j], sgain[j]);
> }
>
> .. where the parameters are unique for each filter but the input signal
> is the result of the previous run, which creates an unfortunate
> dependency.
>
> If sig instead had been splatted out on the 4 elements of an SSE vector,
> all 4 filters could have been calculated in parallel, quite possibly
> auto-vectorizable.
>
> param_sect_proc(filter_ptr->sect + j, k,
> sig[j], sfreq[j], sband[j], sgain[j]);
Which would not be a correct implementation. Results will
be similar only if the frequency bands handled by each
section do not overlap. For example two filters with
the same F and B and opposite gains would not cancel.
Ciao,
-- FA Io lo dico sempre: l'Italia è troppo stretta e lunga. _______________________________________________ Linux-audio-dev mailing list Linux-audio-dev@email-addr-hidden http://lists.linuxaudio.org/mailman/listinfo/linux-audio-devReceived on Sun Jun 14 20:15:03 2009
This archive was generated by hypermail 2.1.8 : Sun Jun 14 2009 - 20:15:03 EEST