Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software Development SDKs and Libraries
- Intel® Integrated Performance Primitives
- IPP AEC double - talk

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Highlighted
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!

soimattrang

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-24-2009
12:47 AM

8 Views

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!

Accepted Solutions

Highlighted

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,

cng stay for comfort noise generation.

regards,

Ivan

Ivan_Ryzhachkin__Int

New Contributor I

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-23-2009
03:03 AM

8 Views

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

cng stay for comfort noise generation.

regards,

Ivan

14 Replies

Highlighted
*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!

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

Ivan_Ryzhachkin__Int

New Contributor I

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-24-2009
10:45 PM

8 Views

Quoting - soimattrang

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

Highlighted
*
*

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?

soimattrang

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-25-2009
11:09 AM

8 Views

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?

Highlighted

soimattrang

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-13-2009
01:33 AM

8 Views

No answer for a long time. This forum is very poor

Highlighted

soimattrang

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-13-2009
01:33 AM

8 Views

No answer for a long time. This forum is very poor :(

Highlighted

soimattrang

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-13-2009
01:33 AM

8 Views

No answer for a long time. This forum is very poor :-(

Highlighted
*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!

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

Ivan_Ryzhachkin__Int

New Contributor I

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-14-2009
02:05 AM

8 Views

Quoting - soimattrang

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

and comment

fixed_pwr

Regards,

Ivan

Highlighted
* 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

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

soimattrang

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-15-2009
07:28 PM

8 Views

Quoting - Ivan Ryzhachkin (Intel)

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

and comment

fixed_pwr

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

Highlighted
*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!

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

Ivan_Ryzhachkin__Int

New Contributor I

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-15-2009
11:19 PM

8 Views

Quoting - soimattrang

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

Highlighted
* *

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

soimattrang

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-22-2009
09:11 PM

8 Views

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

Highlighted
*
*

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

Ivan_Ryzhachkin__Int

New Contributor I

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-22-2009
10:22 PM

8 Views

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

Highlighted
* *

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?

soimattrang

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-23-2009
02:54 AM

8 Views

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?

Highlighted

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,

cng stay for comfort noise generation.

regards,

Ivan

Ivan_Ryzhachkin__Int

New Contributor I

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-23-2009
03:03 AM

9 Views

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

cng stay for comfort noise generation.

regards,

Ivan

Highlighted

Hi,

Sure,

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.

jhr

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-24-2009
05:03 AM

8 Views

Quoting - Ivan Ryzhachkin (Intel)

Hi,

Sure,

pInfo->params.modes.nlp** = **1

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.

Highlighted

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

Ivan_Ryzhachkin__Int

New Contributor I

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-26-2009
02:08 AM

8 Views

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

For more complete information about compiler optimizations, see our Optimization Notice.