Re: [AVT] RTP streaming and adaptation to AVC of an SVC temporal scalable bitstream - Packet loss
"daniele renzi \(bsoft\)" <daniele@bsoft.info> Tue, 21 August 2007 11:12 UTC
Return-path: <avt-bounces@ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1INReX-0003FG-D0; Tue, 21 Aug 2007 07:12:05 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1INReV-0003F4-8E for avt@ietf.org; Tue, 21 Aug 2007 07:12:03 -0400
Received: from smtpd4.aruba.it ([62.149.128.209] helo=smtp4.aruba.it) by ietf-mx.ietf.org with smtp (Exim 4.43) id 1INReO-0005Kd-JM for avt@ietf.org; Tue, 21 Aug 2007 07:12:03 -0400
Received: (qmail 5184 invoked by uid 89); 21 Aug 2007 11:11:54 -0000
Received: by simscan 1.1.0 ppid: 5133, pid: 5159, t: 0.7768s scanners: clamav: 0.88.4/m:40/d:1722
Received: from unknown (HELO bsoft007) (daniele@bsoft.info@151.71.165.253) by smtp4.aruba.it with SMTP; 21 Aug 2007 11:11:53 -0000
Message-ID: <008201c7e3e4$0e2dce00$11010a0a@bsoft007>
From: "daniele renzi (bsoft)" <daniele@bsoft.info>
To: Ye-Kui.Wang@nokia.com
Subject: Re: [AVT] RTP streaming and adaptation to AVC of an SVC temporal scalable bitstream - Packet loss
Date: Tue, 21 Aug 2007 13:11:42 +0200
MIME-Version: 1.0
Content-Type: text/plain; format="flowed"; charset="iso-8859-1"; reply-type="response"
Content-Transfer-Encoding: 8bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.3138
x-mimeole: Produced By Microsoft MimeOLE V6.00.2900.3138
X-Spam-Rating: smtp4.aruba.it 1.6.2 0/1000/N
X-Spam-Score: 0.0 (/)
X-Scan-Signature: efc5d1db3729b4b7031f1bb5f5a30ae3
Cc: avt@ietf.org
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Audio/Video Transport Working Group <avt.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
Errors-To: avt-bounces@ietf.org
Dear Ye Kui, I've been doing a little more thinking about the solution of having layer specific sequence numbers and I got the following conclusions (please correct me if something is wrong): - each combination of temporal_id (3 bits), dependency_id (3 bits) and quality_id (5 bits) completely identify a scalable layer; - the streamer should keep a separate sequence number variable for any of these layers (combination of temporal_id, dependency_id and quality_id); - separate sequence number variables don't mean different fields in the RTP payload header (NALU header), as any NALU belongs to a specific layer and not to other layers (1:1 mapping between NALU and layer); - so, we'd have just one additional field in the NALU header (16 bit, like sequence number in RTP); this field could be added just to the prefix NALUs syntax to save some bandwidth; this wouldn't make the RTP payload structure that ugly, at least in my opinion...; - I agree that having a prefix NALU for any slice NALU would definitely increase the bandwidth occupation and that for temporal scalability the SEI message based solution could be better; however, this would mean that in any SVC streaming scenario the single RTP session mode must be used in conjunction with the sub-sequence SEI message to prevent packet loss problems when dropping higher layers; - if everything above is correct, I suppose that without this additional layer-specific sequence number field, in any case the smoother way to handle packet losses is transporting different layers of a SVC bitstream in different RTP sessions. Thanks BR, Daniele Daniele Renzi bSoft -- www.bsoft.info +39-0733-57707 (tel/fax) ----- Original Message ----- From: "daniele renzi (bsoft)" <daniele@bsoft.info> To: <Ye-Kui.Wang@nokia.com> Sent: Tuesday, August 21, 2007 9:43 AM Subject: Re: [AVT] RTP streaming and adaptation to AVC of an SVC temporal scalable bitstream - Packet loss > Dear Ye Kui, > > I agree with you that having layer specific sequence numbers would make > the payload structure pretty ugly, even though I think also that for > spatial and quality scalability the RTP session multiplexing (different > RTP sessions for different layers) would be more sensible than for > temporal scalability, as one of the biggest benefit to have a single RTP > session for a temporal scalable bistream using prefix NAL Units is to make > an AVC decoder able to decode even the original SVC stream (with all the > layers) by simply discarding the prefix NAL Units. > This would save from having specific RTP sequence numbers for spatial and > quality scalability and combinations of them. > > Anyway, as you suggested, using the SEI message based solution in addition > to the RTP sequence number seems a very good solution, as well as thinking > about removing in our scenario the single RTP session requirement. > > I'll try to estimate which is the best solution for us. > > Thanks a lot for your help. > > Best regards, > > Daniele > > Daniele Renzi > bSoft -- www.bsoft.info > +39-0733-57707 (tel/fax) > > ----- Original Message ----- > From: <Ye-Kui.Wang@nokia.com> > To: <daniele@bsoft.info> > Cc: <avt@ietf.org>; <csp@csperkins.org>; <schierl@hhi.fhg.de> > Sent: Monday, August 20, 2007 9:58 PM > Subject: RE: [AVT] RTP streaming and adaptation to AVC of an SVC temporal > scalable bitstream - Packet loss > > > Daniele, > > My understanding is that the NAL unit header of a NAL unit contained in a > single NAL unit packet is considered as the payload header. However, for > an aggregation packet, the "NAL unit header" of the aggregation packet > itself is considered as the payload header, but not the NAL unit headers > of individual NAL units contained in the aggregation packet. Otherwise we > have to understand that the payload header is interleaved with payload > data. > > The SEI message based solution can be used together with normal RTP > sequence number to detect loss of a part of a picture. So is true also for > the PACSI + TL0PicIdx solution mentioned by Thomas. > > However, you are right that a temporal_id specific RTP sequence number > would be smoother as parsing of sub-sequence information SEI message is > not required. But to me the complexity reduction is not much. Furthermore, > having such layer specific RTP sequence numbers would make the payload > structure pretty ugly, because general SVC use cases with other > scalability dimensions, each combination of temporal_id (3 bits), > dependency_id (3 bits) and quality_id (5 bits) then needs to have their > specific RTP sequence numbers. The total number is up to 8x8x32. > > BR, YK > > ________________________________ > > From: ext daniele renzi (bsoft) [mailto:daniele@bsoft.info] > Sent: Monday, August 20, 2007 6:48 PM > To: Wang Ye-Kui (Nokia-NRC/Tampere) > Cc: avt@ietf.org; csp@csperkins.org; schierl@hhi.fhg.de > Subject: Re: [AVT] RTP streaming and adaptation to AVC of an SVC temporal > scalable bitstream - Packet loss > > > Dear Ye Kui, > > sorry for not being clear. > > Currently the adapter parses the NALU header to get all the information it > needs, e.g. temporal_id. > > When I mentioned the RTP payload header I meant also the NALU header, as, > according to RFC-3984: > "All NAL units consist of a single NAL unit type octet, which also > co-serves as the payload header of this RTP payload format". > > Concerning the packet loss handling in the SEI message based solution, if > I understood correctly the sub_seq_frame_num is used to detect a reference > picture loss in the sub-sequence. > However, this way to detect a loss looks to me inefficient (for our > scenario) in the case where a packet carrying a slice which is just a > sub-part of a picture gest lost, as it is based on sub_seq_frame_num gap > detection and sub_seq_frame_num is the same for any slice in the same > picture. > > For our purposes this solution could be equivalent to simply delimiting an > access unit by the marker_bit and inferring that a lost packet belongs to > a layer by simply assuming that any packet in that access unit had the > same temporal_id, which we can get either from prefix NALU Units or SEI > message. > Maybe the SEI message based solution could look more useful than the one > based on prefix NALUs if we consider the SEI message as a better delimiter > of an access unit and consequently of a temporal layer. > > I still think that a parameter simulating the RTP sequence number inside > the NALU header information and specific for any temporal layer would have > been the smoother solution to keep the single RTP session mode. > > Please correct me if my understanding is somewhere wrong. > > Sorry for being a little long-winded with my emails... > > Thanks a lot > > BR, > > Daniele > > > Daniele Renzi > bSoft -- www.bsoft.info <http://www.bsoft.info> > +39-0733-57707 (tel/fax) > > ----- Original Message ----- > From: Ye-Kui.Wang@nokia.com > To: daniele@bsoft.info ; csp@csperkins.org ; schierl@hhi.fhg.de > Cc: avt@ietf.org > Sent: Monday, August 20, 2007 3:35 PM > Subject: RE: [AVT] RTP streaming and adaptation to AVC of an SVC temporal > scalable bitstream - Packet loss > > Dear Daniele, > > So you were assuming that the adapter does not parse anything else than > RTP payload header as specified in the payload format. Then how could it > find out which packet contains prefix NAL unit to be discarded? To do the > adaption, parsing more than RTP payload header is needed anyway. In that > case, parsing of a certain SEI message does not impose much burden in > addition. In the sub-sequence information SEI message based solution, the > adapter parses an sub-sequence information SEI message to detect whether > an earlier packet containing a slice to be included in the outcoming > stream was lost, then knows how to set the RTP sequence number of the > current outgoing packet. > > BR, YK > > > ________________________________ > > From: ext daniele renzi (bsoft) [mailto:daniele@bsoft.info] > Sent: Monday, August 20, 2007 1:12 PM > To: Wang Ye-Kui (Nokia-NRC/Tampere); csp@csperkins.org; schierl@hhi.fhg.de > Cc: avt@ietf.org > Subject: Re: [AVT] RTP streaming and adaptation to AVC of an SVC temporal > scalable bitstream - Packet loss > > > Dear Ye-Kui, > > thanks for your help. > > Just one (two) more question(s). > In the SEI message based solution, how is a packet loss handled? > Isn't it the same as in the prefix NALUs based solution, that is by the > RTP sequence number? > It seems that the problem would persist if for example the SEI message > gets lost, but I could be wrong. > > From RFC-3984 and RFC-3550 I suppose that the sequence number wouldn't be > anyway specific for the single sub-sequence (temporal layer). > > So far I can't see any other solution than multiplexing different RTP > sessions for different temporal layers (or sub-sequences), unless a > layer-specific sequence number was present in the RTP payload when using a > single RTP session. > > Thanks. > > Best regards, > > Daniele > > Daniele Renzi > bSoft -- www.bsoft.info <http://www.bsoft.info> > +39-0733-57707 (tel/fax) > > ----- Original Message ----- > From: <Ye-Kui.Wang@nokia.com <mailto:Ye-Kui.Wang@nokia.com> > > To: <daniele@bsoft.info <mailto:daniele@bsoft.info> >; <csp@csperkins.org > <mailto:csp@csperkins.org> >; <schierl@hhi.fhg.de > <mailto:schierl@hhi.fhg.de> > > Cc: <avt@ietf.org <mailto:avt@ietf.org> > > Sent: Sunday, August 19, 2007 11:16 PM > Subject: RE: [AVT] RTP streaming and adaptation to AVC of an SVC temporal > scalable bitstream - Packet loss > > > > Yet another solution is to use AVC itself instead of SVC (you can also use > RFC 3984 instead of the SVC RTP payload draft), as you need only temporal > scalability. This requires the use of sub-sequence information SEI > messages. The sub_seq_layer_num indicates the temporal layer. You set each > sub-sequence layer (i.e. temporal layer) as one sub-sequence, then the > sub_seq_frame_num indicates the frame number of each reference frame > inside a temporal layer. > > In the prefix NAL unit plus PACSI with TL0PicIndex solution, the adapter > needs to parse prefix NAL units, and the outcoming stream can only be of > temporal_id equal to 0 (i.e. the lowest temporal layer). In the > sub-seqence informtion SEI message based solution, the adapter needs to > parse sub-sequence information SEI messages, and the outcoming stream can > be of any lower temporal layers. > > BR, YK > >>-----Original Message----- >>From: ext daniele renzi (bsoft) [mailto:daniele@bsoft.info] >>Sent: Sunday, August 19, 2007 8:55 PM >>To: Wang Ye-Kui (Nokia-NRC/Tampere); csp@csperkins.org >><mailto:csp@csperkins.org> ; Thomas Schierl >>Cc: avt@ietf.org <mailto:avt@ietf.org> >>Subject: Re: [AVT] RTP streaming and adaptation to AVC of an >>SVC temporal scalable bitstream - Packet loss >> >>Dear Ye-Kui, Colin, Thomas, all, >> >>many thanks for your clarifications. >> >>Anyway, I'd like to define precisely the scenario. >>Indeed, as Ye-Kui specified, the SVCtoAVC adapter assign new >>sequence numbers to the outgoing stream. >>Here is the problem: if a packet is lost in the incoming >>stream, it would be good if the adapter reported this anyway >>to the receiver, even though the packet loss was in a >>different RTP *segment* (I'm not sure if that can be defined >>as a *session*...), as in any case there has been a loss >>between the sender and the receiver that should be handled by >>the receiver itself. >>But the adapter cannot say whether this loss affected the base >>layer or an enhancement layer, as the prefix NALU could have >>been lost and with it the scalability information >>(temporal_id). Then it could assert that the sequence number >>gap in the incoming stream is due to a loss in the enhancement >>layer (then do nothing) even when this isn't true, or viceversa. >> >>We're trying to get a solution (maybe different than forcing >>the insertion of a sequence number gap in the outgoing stream) >>to make the receiver able to handle a loss in both the RTP *segments*. >> >>I'll try to evaluate the Thomas' proposal and have a better >>look to RFC-3550 and draft-ietf-avt-topologies-06.txt. >> >>Thanks again. >> >>Best regards, >> >>Daniele >> >> >>Daniele Renzi >>bSoft -- www.bsoft.info <http://www.bsoft.info> >>+39-0733-57707 (tel/fax) >> >>----- Original Message ----- >>From: <Ye-Kui.Wang@nokia.com <mailto:Ye-Kui.Wang@nokia.com> > >>To: <csp@csperkins.org <mailto:csp@csperkins.org> > >>Cc: <daniele@bsoft.info <mailto:daniele@bsoft.info> >; <avt@ietf.org >><mailto:avt@ietf.org> > >>Sent: Sunday, August 19, 2007 7:34 AM >>Subject: RE: [AVT] RTP streaming and adaptation to AVC of an >>SVC temporalscalable bitstream - Packet loss >> >> >> >>OK, forget about my naïve question, because I found the >>following sentence >>in RFC 3550, "If multiple data packets are re-encoded into one, or vice >>versa, a translator MUST assign new sequence numbers to the outgoing >>packets." >> >>BR, YK >> >>>-----Original Message----- >>>From: Wang Ye-Kui (Nokia-NRC/Tampere) >>>Sent: Sunday, August 19, 2007 12:59 AM >>>To: 'ext Colin Perkins' >>>Cc: daniele@bsoft.info <mailto:daniele@bsoft.info> ; avt@ietf.org >>><mailto:avt@ietf.org> >>>Subject: RE: [AVT] RTP streaming and adaptation to AVC of an >>>SVC temporalscalable bitstream - Packet loss >>> >>> >>>Hi Colin, >>> >>>Thanks for your clarification. But according to the following >>>sentence copied from Daniele's email, >>> >>>"... then the SVCtoAVC adapter doesn't know whether this loss >>>has to be signaled to the receiver, i.e. whether it must >>>insert a sequence number gap in the outcoming RTP stream...", >>> >>>the SVCtoAVC adapter uses a different RTP sequence number >>>value space for the outcoming RTP steam than the incoming RTP >>>stream. Is this what a translator can do? It is not clear how >>>the SVCtoAVC adapter handles the CC, SSRC and CSRC fields and >>>RTCP traffic, though. >>> >>>BR, YK >>> >>>>-----Original Message----- >>>>From: ext Colin Perkins [mailto:csp@csperkins.org] >>>>Sent: Saturday, August 18, 2007 9:07 PM >>>>To: Wang Ye-Kui (Nokia-NRC/Tampere) >>>>Cc: daniele@bsoft.info <mailto:daniele@bsoft.info> ; avt@ietf.org >>>><mailto:avt@ietf.org> >>>>Subject: Re: [AVT] RTP streaming and adaptation to AVC of an SVC >>>>temporalscalable bitstream - Packet loss >>>> >>>>On 18 Aug 2007, at 18:36, <Ye-Kui.Wang@nokia.com >>>><mailto:Ye-Kui.Wang@nokia.com> > wrote: >>>>> In your example the SVCtoAVC adapter is an RTP mixer, which >>>>terminates >>>>> the RTP session between the sender and itself and restarts >>>>another RTP >>>>> session between itself and the receiver. >>>>> Therefore the RTP sequence number needs to be updated for the base >>>>> layer packets anyway. >>>> >>>>If the SVCtoAVC adapter is a transcoder from an SVC stream to an AVC >>>>stream, it will be an RTP translator, not an RTP mixer. >>>>Neither an RTP translator or a RTP mixer terminate the RTP >>>session. RFC >>>>3550 and draft-ietf-avt-topologies-06.txt discuss this in >>more detail. >>>> >>>>-- >>>>Colin Perkins >>>>http://csperkins.org/ >>>> >>>> >>>> >> >> >> >>-- >>No virus found in this incoming message. >>Checked by AVG Free Edition. >>Version: 7.5.484 / Virus Database: 269.12.0/961 - Release >>Date: 19/08/2007 >>07:27 >> >> >> > > > > -- > No virus found in this incoming message. > Checked by AVG Free Edition. > Version: 7.5.484 / Virus Database: 269.12.0/961 - Release Date: 19/08/2007 > 07:27 > > > > ________________________________ > > No virus found in this incoming message. > Checked by AVG Free Edition. > Version: 7.5.484 / Virus Database: 269.12.0/961 - Release Date: 19/08/2007 > 07:27 > > > > > > -- > No virus found in this incoming message. > Checked by AVG Free Edition. > Version: 7.5.484 / Virus Database: 269.12.1/963 - Release Date: 20/08/2007 > 17:44 > _______________________________________________ Audio/Video Transport Working Group avt@ietf.org https://www1.ietf.org/mailman/listinfo/avt
- [AVT] RTP streaming and adaptation to AVC of an S… daniele renzi (bsoft)
- RE: [AVT] RTP streaming and adaptation to AVC of … Thomas Schierl
- RE: [AVT] RTP streaming and adaptation to AVC of … Ye-Kui.Wang
- Re: [AVT] RTP streaming and adaptation to AVC of … Colin Perkins
- RE: [AVT] RTP streaming and adaptation to AVC of … Ye-Kui.Wang
- RE: [AVT] RTP streaming and adaptation to AVC of … Ye-Kui.Wang
- Re: [AVT] RTP streaming and adaptation to AVC of … daniele renzi (bsoft)
- RE: [AVT] RTP streaming and adaptation to AVC of … Ye-Kui.Wang
- RE: [AVT] RTP streaming and adaptation to AVC of … Ye-Kui.Wang
- Re: [AVT] RTP streaming and adaptation to AVC of … daniele renzi (bsoft)
- RE: [AVT] RTP streaming and adaptation to AVC of … Ye-Kui.Wang
- RE: [AVT] RTP streaming and adaptation to AVC of … Ye-Kui.Wang
- Re: [AVT] RTP streaming and adaptation to AVC of … daniele renzi (bsoft)
- Re: [AVT] RTP streaming and adaptation to AVC of … daniele renzi (bsoft)
- RE: [AVT] RTP streaming and adaptation to AVC of … Ye-Kui.Wang
- Re: [AVT] RTP streaming and adaptation to AVC of … daniele renzi (bsoft)
- RE: [AVT] RTP streaming and adaptation to AVC of … Ye-Kui.Wang
- Re: [AVT] RTP streaming and adaptation to AVC of … daniele renzi (bsoft)
- Re: [AVT] RTP streaming and adaptation to AVC of … Thomas Wiegand
- Re: [AVT] RTP streaming and adaptation to AVC of … daniele renzi (bsoft)
- [AVT] Interop issue with H263-1998 Franceschini Guido
- RE: [AVT] Interop issue with H263-1998 Gary Sullivan
- Re: [AVT] Interop issue with H263-1998 Randell Jesup
- Re: [AVT] Interop issue with H263-1998 Colin Perkins
- Re: [AVT] Interop issue with H263-1998 Randell Jesup
- RE: [AVT] Interop issue with H263-1998 Even, Roni
- Re: [AVT] Interop issue with H263-1998 Randell Jesup
- RE: [AVT] Interop issue with H263-1998 Even, Roni
- RE: [AVT] Interop issue with H263-1998 Franceschini Guido
- RE: [AVT] Interop issue with H263-1998 Even, Roni
- RE: [AVT] Interop issue with H263-1998 Franceschini Guido
- RE: [AVT] Interop issue with H263-1998 Even, Roni
- RE: [AVT] Interop issue with H263-1998 Franceschini Guido