[pjsip] how to reduce CPU load and improve voice quality on mobile device FR

Benny Prijono bennylp at pjsip.org
Mon Aug 18 14:17:39 EDT 2008


On Mon, Aug 18, 2008 at 6:14 PM, TARUN CHAPLOT <tarunchaplot at yahoo.com>wrote:

>
> Hello All
> Thanks for the prompt replies.
>
> I am using pjsip 0.9.0 version on openmoko FR compiled in
> arm-angstrom-linux environment
> by using following command
> --host=arm-angstrom-linux-gnueabi
>
>
I've no clue about OpenMoko so I'm not sure what build command to suggest,
but I guess if it builds and runs fine then it's okay then. More below.


I am having problem with sound quality
>
>    - audio stutters,
>    - audio break-ups.
>
> I looked through the checklist
> https://trac.pjsip.org/repos/wiki/sound-problems, and I ran the sound test
> by
>
> ./sndtest  (https://trac.pjsip.org/repos/wiki/audio-check-sound-device-jitter)
> and got the below given results .
>
>
>
>
> ----------------------------------------------------------------------------------------------------
>  17:49:15.121 os_core_unix.c pjlib 0.9.0-release for POSIX initialized
>  17:49:19.212      pasound.c PortAudio sound library initialized, status=0
>  17:49:19.215      pasound.c PortAudio host api count=1
>  17:49:19.217      pasound.c Sound device count=1
>  17:49:19.222          pjlib select() I/O Queue created (0x47754)
>  17:49:19.226      sndtest.c Found 1 devices:
>  17:49:19.228      sndtest.c  0: /dev/dsp (capture=16, playback=16)
>  17:49:19.915      sndtest.c Testing playback device /dev/dsp
>  17:49:19.917      sndtest.c Testing capture device /dev/dsp
>  17:49:20.481      sndtest.c  Please wait while test is in progress (~11
> secs)..
>  17:49:32.424      sndtest.c  Dumping results:
>  17:49:32.425      sndtest.c   Parameters: clock rate=8000Hz, 80
> samples/frame
>  17:49:32.425      sndtest.c   Playback stream report:
>  17:49:32.425      sndtest.c    Duration: 9s.980
>  17:49:32.426      sndtest.c    Frame interval: min=0.004ms, max=132.173ms
>  17:49:32.426      sndtest.c    Jitter: min=9.955ms, avg=28.194ms,
> max=132.168ms
>  17:49:32.427      sndtest.c   Capture stream report:
>  17:49:32.427      sndtest.c    Duration: 9s.980
>  17:49:32.427      sndtest.c    Frame interval: min=0.003ms, max=132.144ms
>  17:49:32.428      sndtest.c    Jitter: min=9.943ms, avg=28.187ms,
> max=132.141ms
>  17:49:32.428      sndtest.c   Checking for clock drifts:
>  17:49:32.428      sndtest.c    No clock drifts is detected
>  17:49:32.429      sndtest.c  Test completed with some warnings
>
> --------------------------------------------------------------------------------------------------------------
> As the avg jitter is below 32 ms so that is fine but the max jitter is very
> high (132.168ms) so as suggested on that page
>

That's awful indeed. You can try the following (either alone or combination
of them) and see which one helps:
 - increase PJMEDIA_SOUND_BUFFER_COUNT to 16
 - use larger frame size (e.g. set PJSUA_DEFAULT_AUDIO_FRAME_PTIME to 40)
 - disable VAD (--no-vad option)


>
> I would like to ask what can be the problem. Do I need to change the jitter
> buffer settings according to device (openmoko FR).?
>
>
The problem is with the sound device itself. I'm not sure changing jitter
buffer settings will help since the default values should be big enough
already (360ms). But lets do the above first and we'll come back at this
later.



> Further I tried using PCMU and Speex codecs but do not see any change in
> CPU load.
>
>
The FAQ http://trac.pjsip.org/repos/wiki/FAQ#cpu really has explained
everything, if you don't see any improvements I suspect some of the steps
are not followed properly. In particular please read again item no 4 there
about choosing sampling rate, which means that if you use PCMU, you should
also use --clock-rate 8000 option.

Cheers
 Benny




> Any kind of suggestion will be greatly appeciated.
>
> Thanks
> Tarun
>
>
>
>
> ----- Original Message ----
> From: Benny Prijono <bennylp at pjsip.org>
> To: pjsip list <pjsip at lists.pjsip.org>
> Sent: Monday, August 18, 2008 8:29:01 PM
> Subject: Re: [pjsip] how to reduce CPU load and improve voice quality on
> mobile device FR
>
> On Mon, Aug 18, 2008 at 6:51 AM, TARUN CHAPLOT <tarunchaplot at yahoo.com>wrote:
>
>> Hi,
>>
>> We are having a problem with running PJSIP on the neo freerunner, and
>> have tried a
>>  variety of solutions to fix this but still not successful.  The setup
>>  that we are using is PJSIP on a Mac with OSX, and PJSIP compiled for
>> openmoko.I compiled PJSIP for openmoko by setting the env using command
>>  source /usr/local/openmoko/arm/setup-env
>> and ./configure --host=arm-angstrom-linux-gnueabi.
>>
>>
>
> First thing first, what pjsip version?
>
>  When we run PJSIP between the Mac and Openmoko, we are encountering
>> problems.
>> The  problem is that the sound quality is very bad. When we speak
>>  into the Mac, the sound coming from the Openmoko comes out in stutters
>> (on and off every half second). It is also full of static.
>> When we try a VOIP call directly from mac to mac, it works and sounds
>> fine.
>>
>>
> If you haven't seen this, perhaps you can follow the checklists in
> https://trac.pjsip.org/repos/wiki/sound-problems, and find out what the
> exact problem is.
>
>
>> I looked at the CPU load and found that it is almost 80% on freerunner and
>> 25 % on Mac OS X.
>> I have tried with different codecs e.g. speex ,PCMA and GSM.
>>
>> Please advise me that how can I reduce the CPU load. I have followed the
>> following http://trac.pjsip.org/repos/wiki/FAQ#cpu but
>> no improvement.
>>
>>
> Now that's surprising. You *should* see significant difference in CPU usage
> between Speex and PCMU. If not, then that probably suggests that the problem
> is elsewhere.
>
> Cheers
>  Benny
>
>
>
>> Thanks in advance.
>>
>> Tarun
>>
>>
>
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20080818/404f79fd/attachment-0001.html 


More information about the pjsip mailing list