RE: [AVT] RTP streaming and adaptation to AVC of an SVC temporal scalable bitstream - Packet loss

<Ye-Kui.Wang@nokia.com> Mon, 20 August 2007 19:58 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 1INDOt-0002kj-9j; Mon, 20 Aug 2007 15:58:59 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1INDOr-0002ke-Up for avt@ietf.org; Mon, 20 Aug 2007 15:58:57 -0400
Received: from smtp.nokia.com ([131.228.20.173] helo=mgw-ext14.nokia.com) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1INDOp-0007zJ-U7 for avt@ietf.org; Mon, 20 Aug 2007 15:58:57 -0400
Received: from esebh105.NOE.Nokia.com (esebh105.ntc.nokia.com [172.21.138.211]) by mgw-ext14.nokia.com (Switch-3.2.5/Switch-3.2.5) with ESMTP id l7KJwQXr002004; Mon, 20 Aug 2007 22:58:37 +0300
Received: from esebh104.NOE.Nokia.com ([172.21.143.34]) by esebh105.NOE.Nokia.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 20 Aug 2007 22:58:36 +0300
Received: from trebe101.NOE.Nokia.com ([172.22.124.61]) by esebh104.NOE.Nokia.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 20 Aug 2007 22:58:36 +0300
x-mimeole: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Subject: RE: [AVT] RTP streaming and adaptation to AVC of an SVC temporal scalable bitstream - Packet loss
Date: Mon, 20 Aug 2007 22:58:34 +0300
Message-ID: <1C1F3D15859526459B4DD0A7A9B2268B03C1AED7@trebe101.NOE.Nokia.com>
In-Reply-To: <00b901c7e341$7e85dd30$11010a0a@bsoft007>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [AVT] RTP streaming and adaptation to AVC of an SVC temporal scalable bitstream - Packet loss
Thread-Index: AcfjQYiIyH18AwadShuGMB4k16vaeAAHqOLg
References: <009001c7e0dc$b114dd30$11010a0a@bsoft007> <1C1F3D15859526459B4DD0A7A9B2268B03BE988B@trebe101.NOE.Nokia.com> <78541B84-1BC4-4586-9B2D-A8E8A7707416@csperkins.org> <1C1F3D15859526459B4DD0A7A9B2268B03BE988E@trebe101.NOE.Nokia.com> <002201c7e28a$168c34c0$0301a8c0@bsoft007> <1C1F3D15859526459B4DD0A7A9B2268B03BE98BC@trebe101.NOE.Nokia.com> <005701c7e312$89ea2b10$11010a0a@bsoft007> <1C1F3D15859526459B4DD0A7A9B2268B03C1AE52@trebe101.NOE.Nokia.com> <00b901c7e341$7e85dd30$11010a0a@bsoft007>
From: Ye-Kui.Wang@nokia.com
To: daniele@bsoft.info
X-OriginalArrivalTime: 20 Aug 2007 19:58:36.0035 (UTC) FILETIME=[7E685530:01C7E364]
X-Nokia-AV: Clean
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 79bb66f827e54e9d5c5c7f1f9d645608
Cc: avt@ietf.org, csp@csperkins.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

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
		


_______________________________________________
Audio/Video Transport Working Group
avt@ietf.org
https://www1.ietf.org/mailman/listinfo/avt