- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I have any question about IPP AEC.
in the document of IPP, description of ippsSubbandController_EC function follow:
IppStatus ippsSubbandController_EC_32f(const Ipp32fc* pSrcAdaptiveFilterErr, const Ipp32fc* pSrcFixedFilterErr, Ipp32fc** ppDstAdaptiveCoefs, Ipp32fc** ppDstFixedCoefs, Ipp32f* pDstSGain, IppsSubbandControllerState_EC_32f* pState)
These functions compare powers of adaptive filter error and fixed filter error and track changes of adaptive filter coefficients power.
If the adaptive filter has a significantly smaller error and is stable (which is indicated by coefficients power changing slowly), its coefficients are copied to the fixed filter. This case corresponds to no double-talk mode.
If the fixed filter has a significantly smaller error, its coefficients are copied to the adaptive filter. This case corresponds to the double-talk mode.
the description above indicate that, internal of ippsSubbandController_EC function detected double - talk mode, is this right?
Send gain coefficient calculation (non-linear processor technology) is based on presence of the double-talk mode and changes of receive-in and send-in signal powers. So, to rely on value of pDstSGain parameter could i know presence of double-talk mode? if double-talk is presence how is value of pDstSGain?
Thank you very much!
I have any question about IPP AEC.
in the document of IPP, description of ippsSubbandController_EC function follow:
IppStatus ippsSubbandController_EC_32f(const Ipp32fc* pSrcAdaptiveFilterErr, const Ipp32fc* pSrcFixedFilterErr, Ipp32fc** ppDstAdaptiveCoefs, Ipp32fc** ppDstFixedCoefs, Ipp32f* pDstSGain, IppsSubbandControllerState_EC_32f* pState)
These functions compare powers of adaptive filter error and fixed filter error and track changes of adaptive filter coefficients power.
If the adaptive filter has a significantly smaller error and is stable (which is indicated by coefficients power changing slowly), its coefficients are copied to the fixed filter. This case corresponds to no double-talk mode.
If the fixed filter has a significantly smaller error, its coefficients are copied to the adaptive filter. This case corresponds to the double-talk mode.
the description above indicate that, internal of ippsSubbandController_EC function detected double - talk mode, is this right?
Send gain coefficient calculation (non-linear processor technology) is based on presence of the double-talk mode and changes of receive-in and send-in signal powers. So, to rely on value of pDstSGain parameter could i know presence of double-talk mode? if double-talk is presence how is value of pDstSGain?
Thank you very much!
1 Solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - soimattrang
Hi,
I mean NLP, was it implemented in the cnr_32f function? do I have to set parameter Ec_Info.params.modes.cng = 1 to enable this feature?
Hi,
Sure,
pInfo->params.modes.nlp = 1
state->nlp=1 for sb in cnr_32f.cng stay for comfort noise generation.
regards,
Ivan
Link Copied
14 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - soimattrang
Hi,
I have any question about IPP AEC.
in the document of IPP, description of ippsSubbandController_EC function follow:
IppStatus ippsSubbandController_EC_32f(const Ipp32fc* pSrcAdaptiveFilterErr, const Ipp32fc* pSrcFixedFilterErr, Ipp32fc** ppDstAdaptiveCoefs, Ipp32fc** ppDstFixedCoefs, Ipp32f* pDstSGain, IppsSubbandControllerState_EC_32f* pState)
These functions compare powers of adaptive filter error and fixed filter error and track changes of adaptive filter coefficients power.
If the adaptive filter has a significantly smaller error and is stable (which is indicated by coefficients power changing slowly), its coefficients are copied to the fixed filter. This case corresponds to no double-talk mode.
If the fixed filter has a significantly smaller error, its coefficients are copied to the adaptive filter. This case corresponds to the double-talk mode.
the description above indicate that, internal of ippsSubbandController_EC function detected double - talk mode, is this right?
Send gain coefficient calculation (non-linear processor technology) is based on presence of the double-talk mode and changes of receive-in and send-in signal powers. So, to rely on value of pDstSGain parameter could i know presence of double-talk mode? if double-talk is presence how is value of pDstSGain?
Thank you very much!
I have any question about IPP AEC.
in the document of IPP, description of ippsSubbandController_EC function follow:
IppStatus ippsSubbandController_EC_32f(const Ipp32fc* pSrcAdaptiveFilterErr, const Ipp32fc* pSrcFixedFilterErr, Ipp32fc** ppDstAdaptiveCoefs, Ipp32fc** ppDstFixedCoefs, Ipp32f* pDstSGain, IppsSubbandControllerState_EC_32f* pState)
These functions compare powers of adaptive filter error and fixed filter error and track changes of adaptive filter coefficients power.
If the adaptive filter has a significantly smaller error and is stable (which is indicated by coefficients power changing slowly), its coefficients are copied to the fixed filter. This case corresponds to no double-talk mode.
If the fixed filter has a significantly smaller error, its coefficients are copied to the adaptive filter. This case corresponds to the double-talk mode.
the description above indicate that, internal of ippsSubbandController_EC function detected double - talk mode, is this right?
Send gain coefficient calculation (non-linear processor technology) is based on presence of the double-talk mode and changes of receive-in and send-in signal powers. So, to rely on value of pDstSGain parameter could i know presence of double-talk mode? if double-talk is presence how is value of pDstSGain?
Thank you very much!
Hi,
-coefficientsmay divergein the case of NO DT as well.
-sGainwas designed for NLP but currently doesn't used as NLP has another logic now.
Thanks you,
Ivan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Ivan Ryzhachkin (Intel)
Hi,
-coefficientsmay divergein the case of NO DT as well.
-sGainwas designed for NLP but currently doesn't used as NLP has another logic now.
Thanks you,
Ivan
Hi,
So, How to detect double talk state with IPP. is there possibility to detect double talk with IPP AEC?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
No answer for a long time. This forum is very poor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
No answer for a long time. This forum is very poor :(
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
No answer for a long time. This forum is very poor :-(
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - soimattrang
Hi,
I have any question about IPP AEC.
in the document of IPP, description of ippsSubbandController_EC function follow:
IppStatus ippsSubbandController_EC_32f(const Ipp32fc* pSrcAdaptiveFilterErr, const Ipp32fc* pSrcFixedFilterErr, Ipp32fc** ppDstAdaptiveCoefs, Ipp32fc** ppDstFixedCoefs, Ipp32f* pDstSGain, IppsSubbandControllerState_EC_32f* pState)
These functions compare powers of adaptive filter error and fixed filter error and track changes of adaptive filter coefficients power.
If the adaptive filter has a significantly smaller error and is stable (which is indicated by coefficients power changing slowly), its coefficients are copied to the fixed filter. This case corresponds to no double-talk mode.
If the fixed filter has a significantly smaller error, its coefficients are copied to the adaptive filter. This case corresponds to the double-talk mode.
the description above indicate that, internal of ippsSubbandController_EC function detected double - talk mode, is this right?
Send gain coefficient calculation (non-linear processor technology) is based on presence of the double-talk mode and changes of receive-in and send-in signal powers. So, to rely on value of pDstSGain parameter could i know presence of double-talk mode? if double-talk is presence how is value of pDstSGain?
Thank you very much!
I have any question about IPP AEC.
in the document of IPP, description of ippsSubbandController_EC function follow:
IppStatus ippsSubbandController_EC_32f(const Ipp32fc* pSrcAdaptiveFilterErr, const Ipp32fc* pSrcFixedFilterErr, Ipp32fc** ppDstAdaptiveCoefs, Ipp32fc** ppDstFixedCoefs, Ipp32f* pDstSGain, IppsSubbandControllerState_EC_32f* pState)
These functions compare powers of adaptive filter error and fixed filter error and track changes of adaptive filter coefficients power.
If the adaptive filter has a significantly smaller error and is stable (which is indicated by coefficients power changing slowly), its coefficients are copied to the fixed filter. This case corresponds to no double-talk mode.
If the fixed filter has a significantly smaller error, its coefficients are copied to the adaptive filter. This case corresponds to the double-talk mode.
the description above indicate that, internal of ippsSubbandController_EC function detected double - talk mode, is this right?
Send gain coefficient calculation (non-linear processor technology) is based on presence of the double-talk mode and changes of receive-in and send-in signal powers. So, to rely on value of pDstSGain parameter could i know presence of double-talk mode? if double-talk is presence how is value of pDstSGain?
Thank you very much!
Yes, really poor. As I'm subscribed to the thread but didn't receive no one post. Sorry.
IPP doesn't show the DT state. You may try using the condition described above forDT detection and uncomment ownSubbandController_EC_32f() and comment ippsSubbandController_EC_32f
and uncoomment
// 0.35 * fixed_pwr > adaptive_pwr) {
and comment
fixed_pwr > adaptive_pwr && (!dtFlag)) {
Regards,
Ivan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Ivan Ryzhachkin (Intel)
Yes, really poor. As I'm subscribed to the thread but didn't receive no one post. Sorry.
IPP doesn't show the DT state. You may try using the condition described above forDT detection and uncomment ownSubbandController_EC_32f() and comment ippsSubbandController_EC_32f
and uncoomment
// 0.35 * fixed_pwr > adaptive_pwr) {
and comment
fixed_pwr > adaptive_pwr && (!dtFlag)) {
Regards,
Ivan
IPP doesn't show the DT state. You may try using the condition described above forDT detection and uncomment ownSubbandController_EC_32f() and comment ippsSubbandController_EC_32f
and uncoomment
// 0.35 * fixed_pwr > adaptive_pwr) {
and comment
fixed_pwr > adaptive_pwr && (!dtFlag)) {
Regards,
Ivan
Thanks for answer,
So, are there any differences between ippsSubbandController_EC_32f and ownSubbandController_EC_32f?
internal of ippsSubbandController_EC function detected double - talk state, is this right? If right, so, Why performance of ippsSubbandController_EC is very poor when double talk state occurs
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - soimattrang
Hi,
I have any question about IPP AEC.
in the document of IPP, description of ippsSubbandController_EC function follow:
IppStatus ippsSubbandController_EC_32f(const Ipp32fc* pSrcAdaptiveFilterErr, const Ipp32fc* pSrcFixedFilterErr, Ipp32fc** ppDstAdaptiveCoefs, Ipp32fc** ppDstFixedCoefs, Ipp32f* pDstSGain, IppsSubbandControllerState_EC_32f* pState)
These functions compare powers of adaptive filter error and fixed filter error and track changes of adaptive filter coefficients power.
If the adaptive filter has a significantly smaller error and is stable (which is indicated by coefficients power changing slowly), its coefficients are copied to the fixed filter. This case corresponds to no double-talk mode.
If the fixed filter has a significantly smaller error, its coefficients are copied to the adaptive filter. This case corresponds to the double-talk mode.
the description above indicate that, internal of ippsSubbandController_EC function detected double - talk mode, is this right?
Send gain coefficient calculation (non-linear processor technology) is based on presence of the double-talk mode and changes of receive-in and send-in signal powers. So, to rely on value of pDstSGain parameter could i know presence of double-talk mode? if double-talk is presence how is value of pDstSGain?
Thank you very much!
I have any question about IPP AEC.
in the document of IPP, description of ippsSubbandController_EC function follow:
IppStatus ippsSubbandController_EC_32f(const Ipp32fc* pSrcAdaptiveFilterErr, const Ipp32fc* pSrcFixedFilterErr, Ipp32fc** ppDstAdaptiveCoefs, Ipp32fc** ppDstFixedCoefs, Ipp32f* pDstSGain, IppsSubbandControllerState_EC_32f* pState)
These functions compare powers of adaptive filter error and fixed filter error and track changes of adaptive filter coefficients power.
If the adaptive filter has a significantly smaller error and is stable (which is indicated by coefficients power changing slowly), its coefficients are copied to the fixed filter. This case corresponds to no double-talk mode.
If the fixed filter has a significantly smaller error, its coefficients are copied to the adaptive filter. This case corresponds to the double-talk mode.
the description above indicate that, internal of ippsSubbandController_EC function detected double - talk mode, is this right?
Send gain coefficient calculation (non-linear processor technology) is based on presence of the double-talk mode and changes of receive-in and send-in signal powers. So, to rely on value of pDstSGain parameter could i know presence of double-talk mode? if double-talk is presence how is value of pDstSGain?
Thank you very much!
Hi,
with the changes suggested the content becames similar. Really some simple implementations of DT were tried with no big effect. Seems it's the area of improvements.
best regards,
Ivan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Ivan Ryzhachkin (Intel)
Hi,
with the changes suggested the content becames similar. Really some simple implementations of DT were tried with no big effect. Seems it's the area of improvements.
best regards,
Ivan
Hi,
Does AEC(ver. 6.1.1) has using residual echo canceller?
best regards,
Duongdx
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - soimattrang
Hi,
Does AEC(ver. 6.1.1) has using residual echo canceller?
best regards,
Duongdx
Hi Duongdx,
Yes, if you mean NLP (non-linear processing). NLP mitigates the residual echo after NLMS block. The nlp option usedin the sample.
Ivan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Ivan Ryzhachkin (Intel)
Hi Duongdx,
Yes, if you mean NLP (non-linear processing). NLP mitigates the residual echo after NLMS block. The nlp option usedin the sample.
Ivan
Hi,
I mean NLP, was it implemented in the cnr_32f function? do I have to set parameter Ec_Info.params.modes.cng = 1 to enable this feature?
Currently, I set AEC's parameters follow:
Ec_Info.params.pcmType.sample_frequency=16000;
Ec_Info.params.pcmType.bitPerSample=16;
Ec_Info.params.pcmType.nChannels=1;
Ec_Info.params.algType=EC_SUBBAND;
Ec_Info.params.modes.adapt=AD_FULADAPT;
Ec_Info.params.modes.zeroCoeff=1;
Ec_Info.params.echotail=200;
Ec_Info.params.modes.nlp=1;
Ec_Info.params.modes.ah=1;
Ec_Info.params.modes.td=1;
Ec_Info.params.modes.cng=0;
Ec_Info.params.modes.nr=4;
Ec_Info.params.modes.nr_smooth=0;
Ec_Info.params.modes.ap=1;
Ec_Info.params.modes.dcFlag = 1;
did Parameters set above the best for performance of AEC?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - soimattrang
Hi,
I mean NLP, was it implemented in the cnr_32f function? do I have to set parameter Ec_Info.params.modes.cng = 1 to enable this feature?
Hi,
Sure,
pInfo->params.modes.nlp = 1
state->nlp=1 for sb in cnr_32f.cng stay for comfort noise generation.
regards,
Ivan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Ivan Ryzhachkin (Intel)
Hi,
Sure,
pInfo->params.modes.nlp = 1
state->nlp=1 for sb in cnr_32f.cng stay for comfort noise generation.
regards,
Ivan
By the way...
Does any one knows what Ec_Info.params.modes.zeroCoeff=1; does ?
If you look at the code sample there is a big "/ ???" beside it, so even the sample developper have no clue about it...
Personally I had bad results with it and now I set it to 0.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - jhr
By the way...
Does any one knows what Ec_Info.params.modes.zeroCoeff=1; does ?
If you look at the code sample there is a big "/ ???" beside it, so even the sample developper have no clue about it...
Personally I had bad results with it and now I set it to 0.
Hi,
zeroCoeff = 1 orders both adaptation and fixed filter coefficients zeroingwhile init() and reinit().
The comment ///? - reflects the situation of some ambiguitybetweenexternal and internal option (internally zero means zeroing).
Theoretically in thesituation ofstable echo path and environment the better resultcould be obtainedwhen pre-trained coefficientsused (not zeroed in reinit for ex. when the newcall estableshed).
regards,
Ivan
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