Skip to content
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

[FEATURE] All codec or DMIC capture pipelines should contain high-pass IIR or DC block #2547

Closed
singalsu opened this issue Mar 13, 2020 · 4 comments
Assignees
Labels
enhancement New feature or request topology Topology issues

Comments

@singalsu
Copy link
Collaborator

Is your feature request related to a problem? Please describe.
The DMIC as direct attach, DMIC via codec, and codec headset input pipelines should include high-pass filtering function. The high-pass or DC blocking feature in direct attach DMIC and several codecs seems to be insufficient to suppress the pop noise in capture beginning. The DC pulse is often much stronger than typical speech level. The default volume capture pipeline and the start volume ramp is not sufficient to prevent some strong DC to happen in in first hundreds of milliseconds of audio capture.

Describe the solution you'd like
Instantiate the IIR EQ configured with high-pass response or the work-in-progress DC blocker component to pipelines.

Describe alternatives you've considered
No alternatives. The volume ramp is already quite long and it is efficient in canceling the pop sound only for first tens on milliseconds even with with 200 - 500 ms linear ramp time. The volume ramp is also important to to preserve since the IIR and DC blocker take some time to settle their DC level.

Additional context
Add any other context or screenshots about the feature request here.

@singalsu singalsu added enhancement New feature or request topology Topology issues labels Mar 13, 2020
@lgirdwood
Copy link
Member

lgirdwood commented Mar 13, 2020

@singalsu would it make sense to only run the IIR/DC block at capture start then ramp it down -> off ? i.e. to save resources

@singalsu
Copy link
Collaborator Author

singalsu commented Mar 13, 2020

No, the offset remains there all the time in worst case and it will vary in time due to temperature etc. If the component would automatically switch to bypass after e.g. 1s the offset would appear again.

The xtensa optimized IIR is very efficient. Also we can optimize the new DC blocker.

@lgirdwood
Copy link
Member

@singalsu ok great, btw we will need to look at quantifying the worst case load in cycles for each platform based on frames, channels formats etc. This is easier for fixed cost processing like volume, but you may need to come up with ways to quantify for ASRC, SRC etc. Just something ti think about, needed for EDF scheduler updates.

@singalsu singalsu self-assigned this Jun 6, 2023
@singalsu
Copy link
Collaborator Author

This work was completed by merge of #9331.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request topology Topology issues
Projects
None yet
Development

No branches or pull requests

2 participants