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

Problems with g726 and g728 VoCoder when coderate is variable.

tcorp1
Beginner
499 Views
Hello!
Now I am working on implementation of two Vocoders one ADPCM and LD-CELP.
And ipp_adpcm and ipp_ldcelp are working great but if coderate is constant.
But in some systems like DCME we need to decode input bitstream when coderate changes from 16kbps to 12.8 or 9.6. (it can changes very often ) When it happens decoder doesn't decode the bitstream properly - it decodes only noise.
Question. Does ipp decoder support variable bit rate?
While decoding I changed coderate with out.bitrate=16000, orout.bitrate=9600 etc. But it seems that decoder decoded properly only when bitrate was constant but where it changed were olny noise.
Can you help me with that? thank you a lot. I hope you'll help me because I'll seems to lose my work if it wouldn't work :-). Thanks.
If you'll need some more infos on it I'll give it to you immediatly. THANKS.
0 Kudos
4 Replies
Tamer_Assad
Innovator
499 Views

Hi tcorp,

Implement a bitrate detection mechanism in your application (bitrate = stream bits in buffer/ stream duration). Then, reset the decoder parameters, you may even need to reset the decoder with the new params.

Regards,

Tamer Assad

0 Kudos
tcorp1
Beginner
499 Views
Thank you for the answer. I didn't expect it so soon. I already did bitrate detection mechanism but I didn't reset decoder params, how I can do this with Reinit Funcion, or with Control function? Control function seems not working at all. :-(. But coderate is changing only with out.bitrate=16000 and using Control function seems not help.
P.S. So you think that IPP Vocoder must suppurt variable bit rate in input stream and should decode it properly?
With best regards, Ron.
0 Kudos
Igor_B_Intel1
Employee
499 Views

Hi,
These codecs doesn't support VBR by standatd design. Their bitstream doesn't hold any information about the bitrate. It passed outside from codec and its stream. Your responsability to tell the decoder new bitrate exacly with the first recieved packet with another bitrate. You can easily do it through USC interface by filling in->bitratefield with right one. Decoder checks that new bitrate differs from previouce one and explicity reinitializes itself.

Igor S. Belyakov

0 Kudos
tcorp1
Beginner
499 Views
Hello. Sorry that I bother you so often, but I did as you advised me with decoder. But it didn't help. I don't know what I am doing wrong. Maybe problem is with input bitstream - I receive input vectors (10, 8, 6 bits for 16,12.8,9.6kbps resp) and these vectors are variable - rate can changes even every 4 vectors. Can this be the cause of my problem with decoder. Or maybe I've made some mistake in source code?
Thanks a lot.
Regards, Ron.
0 Kudos
Reply