• Nenhum resultado encontrado

PART II: Packet-Level

8.4 MAP Decoding for RTP-Level FEC

In the traditional SPS, CRC-based error detection at the MAC layer results in the removal of the corrupted packets, thus many FEC-based protocols try to recover these packets before MAC layer. The S-PPS, explained in Chapter 2, can enable FEC decoding even at higher protocol layers just before the APL layer. Furthermore, in the assumed inter-networking scenario, the multiple channel access scheme (i.e., HCCA) is deployed, which is a collision-free polling-based channel access scheme, thus there is a very limited possibility of completely losing a packet in the channel.

Instead of recovering the lost or dropped MedP at RTP layer (as done by hard FEC decoder discussed in the previous chapter), as all the lower layers (i.e., MAC/IP/UDP layers) of the S-PPS are able to forward even erroneous s-packets to the RTP layer, we propose to recover the MedPs from the erroneously received MedPs-FECP block. For the said purpose, an RTP-level MAP decoder is proposed, which perform JPCD to recover the MedPs, utilizing the channel likelihood in conjunction with the protocol redundancy. The protocol redundancy includes, the explicit inter and intra-packet redundancy in the MedP header, the redundancy due to the presence of a redundant FECP generated using a well defined XOR operation, and the redundancy due to the structure of an FECP.

Let us assume that a MedPs-FECP block is transmitted over a memoryless channel, at the receiver an erroneous MedPs-FECP block reaches the RTP layer using S-PPS and the transmission order is insured at the receiver,i.e.,FECPy3is followed by the corresponding MedPsy1 and y2.Now, by considering the independence of the payload and the header of the s-packets inside the received MedPs-FECP block, we will present the MAP decoding for each separately.

8.4.1 MAP Decoding for RTP Header

Our aim is to obtain the joint MAP estimatesx1Randx2Rofx1Randx2R, respectively, using the knowledge of the received MedP1 RTP header y1R, MedP2 RTP header y2R, FECP RTP headery3R, FECP FEC header y3F, and FECP FEC-level header y3L. The MAP decoder is given by

(x1R,x2R) = arg max

x1R,x2R

p(x1R,x2R|y1R,y2R,y3R,y3F,y3L), (8.10) which, using the Bayes rule, becomes

(x1R,x2R) = arg max

x1R,x2R

p(y1R,y2R,y3R,y3F,y3L|x1R,x2R)p(x1R,x2R).(8.11) Where,

p(y1R,y2R,y3R,y3F,y3L|x1R,x2R) = p(y1R,y2R|x1R,x2R)

p(y3R,y3F,y3L|x1R,x2R,y1R,y2R)

simplifies to

p(y1R,y2R,y3R,y3F,y3L|x1R,x2R) = p(y1R|x1R,x2R)p(y2R|x1R,x2R,y1R) p(y3R,y3F,y3L|x1R,x2R,y1R,y2R).(8.12) Givenx1R, the knowledge of x2Rbrings no additional information fory1R, and givenx2R, the knowledge of x1R brings no additional information for y2R. Similarly, given x1R and x2R, the knowledge ofy1R and y2R bring no additional information, thus (8.12) becomes

p(y1R,y2R,y3R,y3F,y3L|x1R,x2R) = p(y1R|x1R)p(y2R|x2R) (8.13) p(y3R,y3F,y3L|x1R,x2R).

Using the encoding rules of RTP-level FEC given by (8.6), (8.7), and (8.8), one can simplify the term p(y3R,y3F,y3L|x1R,x2R) of (8.13). Assuming independence of the headers of an FECP, one gets

p(y3R,y3F,y3L|x1R,x2R) = p(y3R|fecR(x1R,x2R))

p(y3F|fecF(x1R,x2R))p(y3L|x1R,x2R). (8.14) Finally, using (8.13) and (8.14), the MAP decoder of (8.11) becomes

(x1R,x2R) = arg max

x1R,x2R

p(y1R|x1R)p(y2R|x2R)p(x1R,x2R)p(y3L|x1R,x2R) p(y3R|fecR(x1R,x2R))p(y3F|fecF(x1R,x2R)). (8.15) The MAP estimator presented can be applied independently on each field of the RTP header of a MedP, as all the fields are independent in the RTP header. Furthermore, one can use the explicit inter-packet and intra-packet redundancies present inside each field.

Now, MAP decoding for each field of the RTP header would be provided, keeping in view the FECP construction process explained in the previous chapter (see Section 7.3.1).

Known fields (V): The V field of the RTP header of a MedP belongs to the known field category knR and it remains constant from packet-to-packet, thus it does not need any estimation.

Xored fields (P, X, CC, M, PT, and TS): The P, X, CC, M, PT, and TS fields of the RTP header of a MedP belongs to the xored field category χnR. Each of these fields does not follow well defined pattern from packet-to-packet, thus it can be assumed that there is no inter-packet redundancy inside these fields, leaving no inter-packet dependency, i.e., p(χ1R, χ2R) =p(χ1R)p(χ2R).Furthermore, there is no explicit intra-packet redundancy inside these fields (i.e., they can take any possible values with equal probability), thus one can assume that the bits inside these fields are independent and equally likely, i.e.,

p χinR

= 1

2inR = 0

1

2inR = 1.

Each of the fields P, X, CC, M, PT, and TS is used to generate corresponding field in the FEC header of an FECP (see observations of Section 7.3.1.2), i.e., for each field

χi3F =xor χi1R, χi2R .

The RTP header fields P, X, CC, M, and PT are not used to generate any field of the RTP header of an FECP (see observations of Section 7.3.1.1), and are only used to generate the corresponding fields of the FEC header of an FECP (see observations of Section 7.3.1.2). Thus, the MAP decoder for each of these fields can be written as

¯

χi1R,χ¯i2R

= arg max

χi1Ri2R

p yi1Rχi1R

p yi2Rχi2R

p yi3F χ|xor χi1R, χi2R

. (8.16)

On the contrary, the TS field of MedP2 is also used to generate TS field of the RTP header of an FECP (see observations of Section 7.3.1.1),i.e.,χ3R2R. Thus, the MAP decoder for TS field can be written as

χi1R, χi2R

= arg max

χi1Ri2Rp y1Rχii1R

p yi2Rχi2R

p yi3F χ|xor χi1R, χi2R

p yi3Rχi2R

. (8.17)

Redundant fields (SN): The SN field of the RTP header of a MedP belongs to the redundant field category rnR. The SN field is not used to generate any field of the RTP header of an FECP (see observations of Section 7.3.1.1), but the SN base field in the FEC header is set to the SN field of the MedP1 (see observations of Section 7.3.1.2). The mask field inside FEC-level header is assumed to be of 16 bits (by fixing L = 0 for the sake of simplicity) and is completely defined by r1R andr2R (see observations of Section 7.3.1.3).

We know,r2R=r1R+i, wherei={1, ...`(mask)−1}. Let the channel output of the SN base field of FEC header and the mask field of FEC-level header be represented by vectors y3F r andy3Lr, respectively. Using these observation, the MAP decoder for the SN field of a MedP is given by

(r1R,r2R) = arg max

r1R,r2R

p(y1Rr|r1R)p(y2Rr|r2R)p(r1R,r2R)

p(y3F r|r1R)p(y3Lr|r1R,r2R). (8.18) Inter-packet redundancies between successive MedPs (due to the increasing SN from packet-to-packet) can bring intra-packet redundancies, but no knowledge is assumed to be available from the MAP decoding of the previous MedPs-FEC block, therefore no intra- packet redundancy is assumed to be available in the SN field of the MedP1, but given SN field of MedP1 there is an explicit intra-packet redundancy in the SN field of the MedP2 (i.e., SN field of the MedP2 cannot take any possible value with equal probability).

For SN field, there is an explicit inter-packet redundancy between the MedPs of a MedPs-FEC block. LetΩSN represents the set of all possible pairs(r1R,r2R),i.e.,

(r1R,r2R) ΩSN, and we know

SN =∪i=15i=1iSN. Where,

iSN = (r1R,r1R+i)

represents the subset of all possible pairs(r1R,r2R)for which thei-th bit of the mask field

would be set. We now havep(r1R,r2R) = |Ω1

SN|, with|ΩSN|denoting the cardinal number of ΩSN given by|ΩSN|=Pi=15

i=1 |ΩiSN|, where

|ΩiSN|= 216−i.

Thus, the MAP decoder would select the best pair fromΩSN, using the MAP estimator (r1R,r2R) = arg max

(r1R,r2R)SN

p(y1Rr|r1R)p(y2Rr|r2R)

p(y3F r|r1R)p(y3Lr|r1R,r2R). (8.19) To reduce the number of computations, in this thesis only the successive MedPs are combined to generate an FECP, thus limiting the search space to the subsetΩ1SN.

Redundant-free fields (SSRC): The SSRC field of the RTP header of a MedP belongs to the redundant-free field categoryυnR. We know that the SSRC field in the RTP header of an FECP is similar to the SSRC field of MedP1 or MedP2 (see observations of Section 7.3.1.1),i.e.,υ3R1R2R, thus the MAP decoder for this field becomes

1R, υ2R) = arg max

υ1R2R

p(y1Rυ1R)p(y2Rυ2R)p(υ1R, υ2R)

p(y3Rυ1R). (8.20)

There is no explicit intra-packet redundancy inside the SSRC field (i.e., SSRC can take any possible value with equal probability), thus one can assume that the bits inside υnR are independent and equally likely. But, given that υ1Ri = υi2R, we have an evident inter-packet redundancy for this field,i.e.,

p υ1Ri , υi2R

=





1

21Ri = 0, υ2Ri = 0 0,υ1Ri = 0, υ2Ri = 1 0,υ1Ri = 1, υ2Ri = 0

1

2i1R= 1, υi2R= 1.

Thus, the MAP decoder for the SSRC field becomes υi1R = arg max

υi1R

p yi1Rυi1R

p yi2Rυ1Ri

p yi3Rυi1R

. (8.21)

8.4.2 MAP Decoding for RTP Payload

The MAP decoder for the payload, by assuming independence of the payloadsx1p and x2p, can be deduced from (8.5),i.e.,

(x1p,x2p) = arg max

x1p,x2p

p(y1p|x1p)p(y2p|x2p)p(x1p)p(x2p)

p(y3p|fecp(x1p,x2p)). (8.22) Moreover, the bits of the payloads are assumed to be independent and FEC encoding functionfecp is a simple bit-wise XOR operationxor(see observations of Section 7.3.1.4),

IP/UDP/MAC RTP-FEC

Soft BPSK

dem

Channel BPSK

S-MAC x ,x ,x1 2 3

y ,y ,y1 2 3 S-IP/S-UDP

Media stream

RTP-FEC (MAP decoder)

P(y1|x ),1

P(y2|x ),2

P(y3|x )3

Figure 8.2: Simulation Block Diagram: The S-PPS is used at the receiver, the soft BPSK demodulation technique is used at the PHY layer, and erroneous packets are used by the MAP decoder at the RTP-FEC layer.

thus we have

xi1p,xi2p

= arg max

xi1p,xi2p

p yi1p|xi1p

p yi2p|xi2p

p xi1p

p xi2p

p yi3p|xor xi1p,xi2p

. (8.23)