Help - Search - Members - Calendar
Full Version: g.723.1
Hydrogenaudio Forums > Hydrogenaudio Forum > General Audio
DSPguru
does anyone knows where i can find source-code that implements this dual rate speech coder, g.723.1 ?
i would prefer c or assembly implementation, but anything would do biggrin.gif

in the spec they mention ITU-T's reference code, but i didn't find it.


Thanks,
Dg.
Ivan Dimkovic
You can buy it from ITU-T online smile.gif

It is covered by patents, and when I was interested in it I couldn't find any freely available source - ITU reference code is slow, btw.

http://www.intel.com/software/products/ipp...p30/samples.htm claim to have g.723.1 source, but at my company we use IPP 2.0

Also, I've find the object code of g.723.1 encoder with some developer-free license, but I can't remember where sad.gif try google smile.gif
john33
It appears only to be available on diskettes and CD, from ITU, not on paper.
DSPguru
i don't care about patents. my company will pay for it smile.gif. i need sample sources ohmy.gif.
itu's spec is incomplete cause it includes "pointers" to the reference implementation.

@ivan
what is covered in ipp ?
DSPguru
QUOTE(Ivan Dimkovic @ Nov 16 2002 - 02:26 PM)
ITU reference code is slow, btw.

Also, I've find the object code of g.723.1 encoder with some developer-free license,  but I can't remember where sad.gif try google smile.gif

i'm planning to port this c code to assembly DSP anyway, so i don't care about the original implementation's speed.
and if IPP is implemented in assmebly x86, that's lots of work for me. huh.gif

about google - no luck sad.gif.
Ivan Dimkovic
You should buy ITU-T examlpe floating-point source code (or fixed-point, but I dunno if it exists for g723.1 - it do exists for g.729)

I think this is it:

http://www.itu.int/rec/recommendation.asp?...9611-I!AnnA



IPP won't help you to port the code to DSP because Intel offers x86 object-code only - hence there is no way to port it to anything else than IA-32 / IA-64 smile.gif
Ivan Dimkovic
you can download it free of charge, even smile.gif
DSPguru
QUOTE(Ivan Dimkovic @ Nov 16 2002 - 03:50 PM)

thanks ivan !!
any reason to prefer appendix a over appendix b ?
Ivan Dimkovic
Annex A is fixed-point code,

Annex B is floating-point code

It all depends on your target hardware platform (is DSP floating point or fixed-point based), power consuption (integer decoder might consume less power even on floating point DSP-s), etc..

On IA-32 platforms (especially with SSE) floating point code might run faster than 32-bit fixed points.
DSPguru
yea, i've noticed it, and since my target is fixed point (16 or 24 bit) i only downloaded app A. it's just that i've noticed that Appendix A can be stored in 3 diskettes while App B requires 14 diskettes, so i thought it might include more goodies wink.gif

btw, you've mentioned this code's speed. what do you know about this code's quality ?
Ivan Dimkovic
Hmm.. it's been a while since I played with it .. please don't take my word for it - only thing you could do is to compare it with some commercial g.723.1 codec. From experience, I could tell that reference ITU-T implementations are good enough for real usage, other than explanations.

Intel IPP offers optimized example of the ITU source code, so it is worth looking just because many DSP-s also offer optimized DSP libraries (fast convolutions, matrix operations, FFT, DCT, ...) - and you can easily identify which parts of the code could be optimized with replacing functions.
DSPguru
QUOTE(Ivan Dimkovic @ Nov 16 2002 - 06:11 PM)
Intel IPP offers optimized example of the ITU source code,  so it is worth looking just because many DSP-s also offer  optimized  DSP libraries (fast convolutions, matrix operations, FFT, DCT, ...) - and you can easily identify which parts of the code could be optimized with replacing functions.

optimizing code to DSP assembly is my forte (that's how i got my nickname wink.gif), but i need to know the code's quality is decent before i start porting.
Ivan Dimkovic
Well, you can try to organize small listening test, or try to evaluate the output decoded results with PSQM tool (www.opticom.de)

Speech codecs usually have decent free reference implementations (even MPEG-4 CELP and PAR narrowband codecs are very nicely implemented, compared to more than awful AAC encoder implementation)
DSPguru
thanks again, ivan.

now i need to create myself a small testing framework..

i browsed rfc2361 and found :
QUOTE
 A.49    Lucent G.723

 WAVE form Registration Number (hex):    0x0059
 Codec ID in the IANA Namespace:         audio/vnd.wave;codec=59
 WAVE form wFormatTag ID:                WAVE_FORMAT_LUCENT_G723
 Contact:
 Ray Jones
 (raykj@lucent.com)
 Lucent Technologies


 A.85    Vivo G.723

 WAVE form Registration Number (hex):    0x00111
 Codec ID in the IANA Namespace:         audio/vnd.wave;codec=111
 WAVE form wFormatTag ID:                WAVE_FORMAT_VIVO_G723
 Contact:
 Vivo Software
 411 Waverley Oaks Road, Suite 313
 Waltham, MA 02154 USA
 (617) 899-8900

 A.87    Digital G.723

 WAVE form Registration Number (hex):    0x0123
 Codec ID in the IANA Namespace:         audio/vnd.wave;codec=123
 WAVE form wFormatTag ID:                WAVE_FORMAT_DIGITAL_G723
 Contact:
 John Forecast
 forecast@shell.lkg.dec.com
 508-486-5264
 Digital Equipment Corporation
 146 Main Street
 Maynard, MA 01754-2571 USA
 1-800-DIGITAL

i know that vivo codec is g.723 @ 8kbps, but don't know anything about the other two.
i bet lucent's g.723 entry is the one i'm looking for (5.3/6.4).
does any1 know where i can find a codec with registration of 0x0059 ?

i guess i can build a winamp plugin out of itu's reference code, but it would be nicer to find a working codec and focusing on the dsp programming.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.