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

g729 sample crashes as is without changes.

dpllpd1
Beginner
469 Views
Hi,
I have just downloaded, compiled and tried to run the g729 speech encoding sample. I have not altered anything, ran the build32.bat file. I ran the executable and it segmentfaulted. I then imported everything into the development studio 6.0 and found that it crashes in the G729AEncode function here:
LOCAL_ALIGN_ARRAY(32, int, autoR, VAD_LPC_DIM +2,encoderObj);
LOCAL_ALIGN_ARRAY(32, short, yVal, LP_WINDOW_DIM,encoderObj);
short Vad=1, s,norma,j;
norma=1;
ippsMul_NR_16s_Sfs(LPC_WINDOW,hammingWin,yVal,LP_WINDOW_DIM,15);
j = LPF_DIM;
There must be something wrong in my environment. Can you think of anything? Also, for some reason, the sample program converts from ulaw into 16 bit linear and takes every other byte for that. Is there a reason why? Or am I reading it wrong?
Thanks.
0 Kudos
8 Replies
Vladimir_Dudnik
Employee
469 Views
Hi,
there is suggestion from developers:
could you pleaseuse definition NO_SCRATCH_MEMORY_USED for build in MS Studio?

It would be good also to know what option actualy are used.

Regarding to alaw/mulaw question,we advice not use -a /-u options for the g729 encode/decode. According to g729 readme file these options are not supported.

Getting every other byte came from gsmamr test file format ETSI used for alaw/mulaw input audio files.

Regards,
Vladimir

0 Kudos
dpllpd
Beginner
469 Views
Thanks,
Setting thecompiler definitionmakes the difference, now it runs through completion. However, the resulting output file is greater in size then the input file. I have not changed anything anywhere, just added this definition.
0 Kudos
Vladimir_Dudnik
Employee
469 Views
HI, I passed your issue to the developers, but could you please submit this issue through technical support channle as well?
Regards,
Vladimir
0 Kudos
Vladimir_Dudnik
Employee
469 Views
There is comment from developers team
The bitstream file is output in format in accordance with ITU for bitstream test vectors.

Each bit is represented as 16bit word. It may be easily converted to RTP. Youmay just use output of the Encode function which return raw bits:

Active frame:
10 bytes (8kbps, frametype = 3 ),
8 bytes (6.4 kbps, ft = 2),
15 bytes (12.8 kbps, ft = 4)
SID - 2 bytes (all rates, ft=1)
Untransmitted - 0 bytes (all rates, ft=0).

Regards,
Vladimir

0 Kudos
dpllpd
Beginner
469 Views
Thanks, that got me a bit further. Now I put it in the RTP engine and it encodes and the rate is right. The problem is that it sounds horrible. I have tried both g729 and g729a and they sound as if the person talking is located in a huge steel tank, yelling at the top of their lungs. You can recognize what is being said, but just barely. What am I doing wrong? I would guess if something was seriously wrong, there would be no resemblance to the original speech. It feels as if I flip a bit somewhere and it should start working, but ...
Thanks very much for all your help.
0 Kudos
Vyacheslav_Baranniko
New Contributor II
469 Views
Hi,
in VAD/CNG modea bitstream may contains 2bytes SIDs.The RTP enginecandeduce SID type fromonly RTP (or SDP) packet length.
Decoded as voice frames (10 bytes length) aSIDs may cause howling.
Hope this can help
Regards
Vyacheslav
0 Kudos
telefonie
Beginner
469 Views
Hello,
ive nearly the same Problem. G729 will be decoded. You can understand the speech,but ithas a (metalic) unnatural sound as described above. Its also the same without SID.So it is abad speech quality.
Regards
telefonie
0 Kudos
Vyacheslav_Baranniko
New Contributor II
469 Views
You may try newer IPP 5.0 version whichgreatly encreases usability of speech codecs by introdusing unified interface USC for speech codec.
It also has fixed some bug.
Enjoy.
Vyacheslav
0 Kudos
Reply