-
Notifications
You must be signed in to change notification settings - Fork 324
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Audio: Crossover / Multiband DRC: Change to HiFi4 and HiFi5 optimized IIR DF1 core type #9806
Conversation
The direct-form I (DF1) is compatible with direct-form-transposed (DF2T). The filter type is changed since DF1 is better potential for optimization for SIMD. In a HiFi5 platform this change saves with two band crossover 0.8 MCPS, from 10.02 MCPS to 9.26 MCPS. The saving will be higher in higher order filter banks such as in multiband DRC component. Signed-off-by: Seppo Ingalsuo <[email protected]>
The direct-form I (DF1) is compatible with direct-form-transposed (DF2T). The filter type is changed since DF1 is better potential for optimization for SIMD. In a build for a HiFi5 platform this and previous patch for crossover filterbank gives with three bands DRC a saving of 6.1 MCPS, from 96.5 MCPS to 90.4 MCPS. Signed-off-by: Seppo Ingalsuo <[email protected]>
Note: The optimization will continue with the IIR DF1 core. I'm thinking to add a conversion for the coefficients blob to 128 bits load compatible to make it more efficient. The blobs in user space would remain the same. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks
Here's the top 10 results from profiling before/after. The IIR still remains the top function:
This was done with script run Edit: Next step is simplified IIR core for crossover_generic_process_lr4() function, the checks and outer loop can be removed for a fixed 4th order (2 biquads) calculate. |
No description provided.