[Speex-dev] AMR vs Speex on wireless networks.
jean-marc.valin at usherbrooke.ca
Sat May 5 07:50:44 PDT 2007
Can't say much about AMR (I'm assuming -NB?) because I don't know it
enough. As you may know, Speex was originally designed with packet loss
in mind, but not bit errors. That being said, it should be able to
tolerate errors -- at least for some of the bits. The code isn't there,
but assuming you know roughly where the errors are, it shouldn't be too
hard to make use of the corrupted frames. For instance, I would tend to
use a strategy like:
1) If the LSPs contain an error, reuse last frame's error
2) If the open-loop gain has an error, reuse last frame's error
3) Same for pitch, though maybe with a bit of damping
4) Use the fixed codebook no matter what.
That being said, are corrupted packets that common?
Hope this helps,
marzullo maio a écrit :
> In order to develop a Voip application, today i should make it
> robust to bit-errors over wireless networks. This is an actually
> lack of Speex, infact what i've understood is that if a packet
> arrives corrupted, i must pass NULL to the decoder in order
> to let it know.
> My target is to use UDP (with checksum field disabled) and exploit
> also corrupted packets giving them to the AMR codec.
> Otherwise i could use a turbo code for error correction before giving
> the packet to Speex. If after error correction the packet CRC is
> still wrong then i pass NULL to the decoder, otherwise i pass
> the corrected packet. This becouse Speex doesn't have error
> correction inside, then i would provide a custom turbo code
> My target wireless networks are 802.11, UMTS/HSDPA and
> I would like to know which in my case would be the correct codec
> choice for the various networks, AMR or Speex?
> I'll use a custom jitter or the speex one if it fits good to my purposes.
> I need a fixed point implementation for it, AMR has it too.
> L'email della prossima generazione? Puoi averla con la nuova Yahoo! Mail:
> Speex-dev mailing list
> Speex-dev at xiph.org
More information about the Speex-dev