DSPRelated.com
Forums

Q: Codedec for Lost Packet Recovery

Started by Daniel Rolf July 7, 2004
Hi guys,

the following setting:

- we send data packets of exactly b bytes, e.g. b=1000
- if a data packet is received then it's always error free
- but, sometimes packets are lost, let's say t is the lost packet rate
- it is not possible to ask the server to send a packet again

Which type of codec should be used to recover the lost packets? Is a
reed-solomon with interleaver the best bet?

Bye

Daniel

-- 
dipl.-inf. cand.-phys. Daniel Rolf
finecode software / www.finecode.de


Daniel Rolf wrote:
> Hi guys, > > the following setting: > > - we send data packets of exactly b bytes, e.g. b=1000 > - if a data packet is received then it's always error free > - but, sometimes packets are lost, let's say t is the lost packet rate > - it is not possible to ask the server to send a packet again > > Which type of codec should be used to recover the lost packets? Is a > reed-solomon with interleaver the best bet? > > Bye > > Daniel
What does "recover" mean in the case of a lost packet? There has to be a mechanism to make it clear that it was sent but didn't arrive at its destination; that alone isn't trivial. I suspect that what you call a codec, I would call a protocol. Jerry P.S. Any way to ensure that every arriving packet is free of error would in itself be remarkable. -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Daniel Rolf wrote:

> Hi guys, > > the following setting: > > - we send data packets of exactly b bytes, e.g. b=1000 > - if a data packet is received then it's always error free > - but, sometimes packets are lost, let's say t is the lost packet rate > - it is not possible to ask the server to send a packet again > > Which type of codec should be used to recover the lost packets? Is a > reed-solomon with interleaver the best bet?
A codec is a coder/decoder, and usually has nothing to do with error correction. If you mean 'How do I cover up or correct a lost sound segment', that depends on the type of speech or sound compression codec you are using. Common ways include: Duplicate the last segment. Interpolate between the last and the next segment. Use silence or comfort noise to fill in for the lost segment.
> Bye > > Daniel >
-- Phil Frisbie, Jr. Hawk Software http://www.hawksoft.com
I do use the word "Codec" for Channel Coding, and don't see a problem
with that.  What you are talking about is error concealment and not
error recovery or error correction.

I think the OP is talking about IP networks. In packet based networks
the underlying protocols take care that the packets(if they arrive)are
error free. e.g in UDP there is a crc at the transport layer, which
ensures that if a packet arrives, it is correct,which however does not
ensure that the packets do reach the destination, or reach it in the
right order.

Forward Error Correction can be done for a packet network by applying
a block coding scheme to a set of packets N instead of only one and
transmitting them in succession. The error recovery technique has to
ensure that even if (N-1) only packets arrive, the 1 packet lost can
be recreated using the (N-1) packets. Reed Solomon code is especially
suited for this type of loss, since packet loss can be thought of as
bursty loss for which Reed-solomon is ideal.

There are also a few ietf standards for FEC in packet networks.


Regards
Piyush

"Phil Frisbie, Jr." <phil@hawksoft.com> wrote in message news:<KRWGc.1105$54.12377@typhoon.sonic.net>...
> Daniel Rolf wrote: > > > Hi guys, > > > > the following setting: > > > > - we send data packets of exactly b bytes, e.g. b=1000 > > - if a data packet is received then it's always error free > > - but, sometimes packets are lost, let's say t is the lost packet rate > > - it is not possible to ask the server to send a packet again > > > > Which type of codec should be used to recover the lost packets? Is a > > reed-solomon with interleaver the best bet? > > A codec is a coder/decoder, and usually has nothing to do with error correction. > > If you mean 'How do I cover up or correct a lost sound segment', that depends on > the type of speech or sound compression codec you are using. Common ways include: > > Duplicate the last segment. > Interpolate between the last and the next segment. > Use silence or comfort noise to fill in for the lost segment. > > > Bye > > > > Daniel > >
I do use the word "Codec" for Channel Coding, and don't see a problem
with that.  What you are talking about is error concealment and not
error recovery or error correction.

I think the OP is talking about IP networks. In packet based networks
the underlying protocols take care that the packets(if they arrive)are
error free. e.g in UDP there is a crc at the transport layer, which
ensures that if a packet arrives, it is correct,which however does not
ensure that the packets do reach the destination, or reach it in the
right order.

Forward Error Correction can be done for a packet network by applying
a block coding scheme to a set of packets N instead of only one and
transmitting them in succession. The error recovery technique has to
ensure that even if (N-1) only packets arrive, the 1 packet lost can
be recreated using the (N-1) packets. Reed Solomon code is especially
suited for this type of loss, since packet loss can be thought of as
bursty loss for which Reed-solomon is ideal.

There are also a few ietf standards for FEC in packet networks.


Regards
Piyush

"Phil Frisbie, Jr." <phil@hawksoft.com> wrote in message news:<KRWGc.1105$54.12377@typhoon.sonic.net>...
> Daniel Rolf wrote: > > > Hi guys, > > > > the following setting: > > > > - we send data packets of exactly b bytes, e.g. b=1000 > > - if a data packet is received then it's always error free > > - but, sometimes packets are lost, let's say t is the lost packet rate > > - it is not possible to ask the server to send a packet again > > > > Which type of codec should be used to recover the lost packets? Is a > > reed-solomon with interleaver the best bet? > > A codec is a coder/decoder, and usually has nothing to do with error correction. > > If you mean 'How do I cover up or correct a lost sound segment', that depends on > the type of speech or sound compression codec you are using. Common ways include: > > Duplicate the last segment. > Interpolate between the last and the next segment. > Use silence or comfort noise to fill in for the lost segment. > > > Bye > > > > Daniel > >
"Daniel Rolf" <rolf@finecode.REMOVEMENOSPAM.de> wrote in message news:<ccgmgt$ucg$1@online.de>...
> Hi guys, > > the following setting: > > - we send data packets of exactly b bytes, e.g. b=1000 > - if a data packet is received then it's always error free > - but, sometimes packets are lost, let's say t is the lost packet rate > - it is not possible to ask the server to send a packet again > > Which type of codec should be used to recover the lost packets? Is a > reed-solomon with interleaver the best bet?
Depends on the data you want to send. Real-time data and general interleaving is not a good idea, because of the latency associated with interleaving. However, when writing a whole packet as a column in an interleaver, interleaving can provide significant savings. In practice, a class of LDPC codes are used. Have a look at www.digitalfountain.com. Reed-Solomon codes can be used, but the best erasure decoders for Reed-Solomon codes have complexity O(e^2), while the Fountain codes developed by Michael Luby et al. (Digital Fountain) has linear time complexity. These codes are named Fountain codes. In the recent ISIT 04, there was a few papers on Fountain codes. Best Regards, Jaco