Subject: [AVT] RFC 3267: Interleaving

From: <[email-masked]>
Date: Wed, 15 Mar 2006 11:05:57 -0600

Questions regarding Interleaving scheme described in RFC 3267.
 
. As far as I can make out, the rfc does not restrict the AMR-Sender to
use the interleaving through out the transmission, also it lets you send
multiple interleaving groups with different ILL values. 
  Is this correct? If yes, has anybody seen interleaving used this way.
What assumptions can a receiver make with respect to interleaving?
. If the sender is free to use the interleaving as described above, how
do we handle following lost packet scenarios, I have noted the actions
that I think can be taken, any suggestions?
 
case 1. Number of frames per packet == 3. (t1 > t0)
   received pkt [ RTP timestamp t0, ill = 2, ilp = 1]
   received pkt [ RTP timestamp t1, no ill, ilp]  
Action:
   consider frames (1,4,7,3,6,9) from interleaving group with ILL=2 as
lost.
 
case 2. Number of frames per packet == 3. (t2 > t1 > t0) 
   received pkt [ RTP timestamp t0, ill = 2, ilp = 0]
   received pkt [ RTP timestamp t1, ill = 2, ilp = 1]
   received pkt [ RTP timestamp t2, ill = 4, ilp = 0]  
Action:
   consider frames (3,6,9) from interleaving group with ILL=2 as lost.
New interleaving group (ILL=4) starts.
 
case 2. Number of frames per packet == 3. ( t1 > t0) 
   received pkt [ RTP timestamp t0, ill = 2, ilp = 1]
   received pkt [ RTP timestamp t1, ill = 2, ilp = 0]
Action:
   consider frames (1,4,7,3,6,9) from interleaving group with ILL=2 as
lost. New interleaving group (ILL=2) starts.
 
_______________________________________________
Audio/Video Transport Working Group
[email-masked]
https://www1.ietf.org/mailman/listinfo/avt

---

From: Magnus Westerlund <[email-masked]>
Date: Thu, 16 Mar 2006 10:08:07 +0100

Hi,

Don't forget that you have the RTP sequence number for detecting packet 
losses. However I think the easiest way of handling packet loss for AMR 
when using interleaving is the following scheme:

First create an interleaving buffer initialized with FT=15 for all 
frames. As soon as you can provide a first timestamp you can actually 
determine the almost certain timestamps to be used for the rest of the 
frames. As you know the maximum depth of the interleaving group you can 
determine the size of this buffer. Then as you receive the packets with 
interleaved frames, calculate each frames timestamp and replace the 
FT=15 with the real frame. That way all frames that hasn't been received 
at the time you try to consume it and forward it for decoding you are 
automatically concealed (if your decoder support that as it should).

I think the important point here is that the RTP timestamp, which always 
can be calculated for an AMR frame from its payload is the right way of 
determining where a frame belongs. Not arrived frames are lost. You will 
need to have some consideration on when you can start consuming data and 
there the combination of timestamp, sequence number and ILL and ILP 
values may need to be considered.

I don't see anything obviously wrong in your statements below. However 
they are not crystal clear in regards to the context.

Cheers

Magnus

[email-masked] wrote:
> ------------------------------------------------------------------------
> 

-- 

Magnus Westerlund

Multimedia Technologies, Ericsson Research EAB/TVA/A
----------------------------------------------------------------------
Ericsson AB                | Phone +46 8 4048287
Torshamsgatan 23           | Fax   +46 8 7575550
S-164 80 Stockholm, Sweden | mailto: [email-masked]