== ARM speex== * [http://www.mail-archive.com/linphone-users@nongnu.org/msg02684.html topic]: saying we need to recompile speex library to optimize for non-float point calculation. == pulse audio == * [http://sipsimpleclient.ag-projects.com/projects/sipsimpleclient/wiki/DesignAEC pulse audio]: echo canceller. == tuning linphone options == http://www.linphone.org/eng/documentation/dev/tuning-linphone.html == echo cancellation performance issue == * '''Experiment''': *: Sending voice with PCMA/U codec to server with echo cancellation on. * '''Result''': *# We found echo cancellation uses a lot of CPUs. echo: 55.37%, pcma encoder: 1.98% *# pcma/u is very light codec. And also echo cancellation eat more cpu for opus codec. * '''Conclusion''': *# We disable echo for now. * '''require tools''': ** valgrind ** kcachegrind ** [http://xpapad.wordpress.com/2009/05/18/debugging-and-profiling-your-cc-programs-using-free-software/ tutorial tutorial] * '''Future investigation''': *# Check speex echo performance *# Check all parameters are correct *# Check if it caused by empty in-audio stream *# Check if it caused by time interval * '''Pictures and data''': ** echo cancellation cost diagram: [[File:Echo_cancellation_per_vs_PCMA_U.png]] ** PCMA/U cost diagram: [[File:echo_can_per_data_pcma.png]] ** Original data(callgrind format, but it must be renamed with .png for uploading purpose):
[[File:Data.png]]