Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

EC and NR

harald85
Beginner
606 Views
Hi

I want to implement the Echo Chancellor and so I take a look to the example. Now i have a question about it. When I use the ec from the IPP is then also an nr active or musst I use this extra? My second question is if there exist an Packet loss concealment in the IPP?

Harald
0 Kudos
3 Replies
Vyacheslav_Baranniko
New Contributor II
606 Views
Quoting - harald85
Hi

I want to implement the Echo Chancellor and so I take a look to the example. Now i have a question about it. When I use the ec from the IPP is then also an nr active or musst I use this extra? My second question is if there exist an Packet loss concealment in the IPP?

Harald

Hi Harald,

First of all, thank you for using IPP Echo canceller.
And let me answer you questions.
1) You are right,NR functionality is optionalof the EC. UseUSC Init() or Control() functions to control EC settings, NR in partiqular,see USC manual for more information. In the USC EC sample NR is setonby default file and can be controlled by /-nr/ option, seethe samplereadme html file.
2) IPP does not provideseparate PLC componentas repeating the previous packet or injecting silence or comfort noise in case of losses burst etc.Instead,variousspeech codecssupported by IPP have built-inPLCe.g. G711, G729, G723.1, GSMAMR etc.

Best regards, Vyacheslav, IPP, speech coding.
0 Kudos
harald85
Beginner
606 Views
Hi

First thank your for the answer. I looked at the sample and implemended the EC in my driver. But i have one Problem. When I take the same buffer for rin and sin the result should be nothing. But every second time the result is nois. Did somebody know this problem?

My second question is about the function call. I have a alaw buffer with 160 Byte (16bit, 8kHz) and i call the function cancelecho. But intern the function works with a framsize of 80Byte. Is it rigth to call the function for every buffer twice with 80Byte or is there an other solution?

My third Question is if i set the echo tail to 100 stores the EC intern five 20 ms packets or is this my work?

Harald

Quoting - Vyacheslav Barannikov

Hi Harald,

First of all, thank you for using IPP Echo canceller.
And let me answer you questions.
1) You are right,NR functionality is optionalof the EC. UseUSC Init() or Control() functions to control EC settings, NR in partiqular,see USC manual for more information. In the USC EC sample NR is setonby default file and can be controlled by /-nr/ option, seethe samplereadme html file.
2) IPP does not provideseparate PLC componentas repeating the previous packet or injecting silence or comfort noise in case of losses burst etc.Instead,variousspeech codecssupported by IPP have built-inPLCe.g. G711, G729, G723.1, GSMAMR etc.

Best regards, Vyacheslav, IPP, speech coding.

0 Kudos
Vyacheslav_Baranniko
New Contributor II
606 Views
Quoting - harald85



Hi

IPP Echo canceller frame size is always equal to 160 bytes. Buffering is fully being done internally.EchoCancel function must be fed with data correspondent to 10 ms of 8 Khz and 5 ms of 16 Khz audio (which in case of linear PCMrepresented by 160 bytes both).So, for 20ms packet of 8KHz audio you shall to call it twice.

EC works with linear PCM. I guess the noise problem you mentioned was caused bythat you fed a-law to EC.160 bytes of A-law represents 20 ms of 8KHz audio.After convertion you will get160 linear samples (320 bytes), i.e. two EC frames. You may do convertion by IPP functionippsAlawToLin_8u16s.

Hope this help.
Vyacheslav
0 Kudos
Reply