packet-level forward error correction in video … · • ldpc-based packet erasure coding at udp...

32
Packet-Level Forward Error Correction in Video Transmission Matteo Mazzotti, Enrico Paolini, Marco Chiani, Davide Dardari, and Andrea Giorgetti University of Bologna Wireless Communications Laboratory (WiLab) Department of Electronics, Computer Sciences and Systems (DEIS)

Upload: vukhue

Post on 19-Aug-2018

242 views

Category:

Documents


0 download

TRANSCRIPT

Packet-Level Forward Error Correctionin Video Transmission

Matteo Mazzotti, Enrico Paolini, Marco Chiani, Davide Dardari, and Andrea Giorgetti

University of BolognaWireless Communications Laboratory (WiLab)

Department of Electronics, Computer Sciences and Systems (DEIS)

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Summary

• The FP7 OPTIMIX Project

• Packet-Level Codes at RTP/Transport Layer

• Reed Solomon-based Forward Error Correction at RTP

• LDPC-based packet erasure coding at UDP

• Performance comparison

• Performance improvements: nonbinary LDPC codes

• Conclusions

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

FP7 OPTIMIX Project (2008-2011)

• OPTIMIX aims at studying innovative solutions enabling enhanced video streaming in point to point and point to multi-point contexts for an IP based wireless heterogeneous system, based on cross layer adaptation of the whole transmission chain

• Final goal: increase the quality of experience (QoE) for the end user in point to point and point to multi-point multimedia transmission contexts

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

FP7 OPTIMIX Project (2008-2011)

• OPTIMIX aims at studying innovative solutions enabling enhanced video streaming in point to point and point to multi-point contexts for an IP based wireless heterogeneous system, based on cross layer adaptation of the whole transmission chain

• Final goal: increase the quality of experience (QoE) for the end user in point to point and point to multi-point multimedia transmission contexts

• Considered scenario:

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

FP7 OPTIMIX Project (2008-2011)

• Project evaluation tools:• Real test-bed (including only a subset of proposed algorithms)• Complete software simulator (developed within OMNeT++

framework)

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

FP7 OPTIMIX Project (2008-2011)

• Project evaluation tools:• Real test-bed (including only a subset of proposed algorithms)• Complete software simulator (developed within OMNeT++

framework)

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

FP7 OPTIMIX Project (2008-2011)

• Project evaluation tools:• Real test-bed (including only a subset of proposed algorithms)• Complete software simulator (developed within OMNeT++

framework)

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Packet-Level Codes at RTP/Transport Layer

1. A set of video data packets are provided by the application layer (source packets)

2. The packet-level encoder encodes the information packets generating a set of parity packets (repair packets)

3. At the base station, all the packets are protected by PHY layer codes and transmitted

4. At the receiver, PHY layer FEC takes place. Unrecoverable packets (e.g., CRC check) are marked as corrupted

5. The packet level decoder can work on a virtual erasure channel: packets are either lost (if corrupted) or correctly received.

Packet-levelencoder

Packet -leveldecoder

...

...

...

...

...

PHYTX

PHYRX

Channel

Source packets

Sourcepackets

Repairpackets

Packet Erasure Channel

1

2

3

4

5

Packet Erasure Correcting Codes: basic idea

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Packet-Level Codes at RTP/Transport Layer

1. Fill an encoding table (source block, SB) with the source packets row-wise. Each row (symbol) is T bytes long. After insertion, each source packet is immediately transmitted (no additional delay).

2. The encoding process starts when either the systematic part of the SB (k rows) is completely filled or a maximum tolerable delay has been reached.

Packet Erasure Correcting Codes: encoding

1 symbol = T bytes

Source Block

Source symbols

Still empty

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Packet-Level Codes at RTP/Transport Layer

1. Fill an encoding table (source block, SB) with the source packets row-wise. Each row (symbol) is T bytes long. After insertion, each source packet is immediately transmitted (no additional delay).

2. The encoding process starts when either the systematic part of the SB (k rows) is completely filled or a maximum tolerable delay has been reached.

3. The encoding proceeds column-wise, until all columns of the SB have been processed.

4. Generate the repair symbols (m=n-k rows) and transmit them in the payload of the repair packets.

Packet Erasure Correcting Codes: encoding

1 symbol = T bytes

Source Block

Source symbols

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Packet-Level Codes at RTP/Transport Layer

1. Fill an encoding table (source block, SB) with the source packets row-wise. Each row (symbol) is T bytes long. After insertion, each source packet is immediately transmitted (no additional delay).

2. The encoding process starts when either the systematic part of the SB (k rows) is completely filled or a maximum tolerable delay has been reached.

3. The encoding proceeds column-wise, until all columns of the SB have been processed.

4. Generate the repair symbols (m=n-k rows) and transmit them in the payload of the repair packets.

Packet Erasure Correcting Codes: encoding

1 symbol = T bytes

Source Block

Source symbols

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Packet-Level Codes at RTP/Transport Layer

1. Fill an encoding table (source block, SB) with the source packets row-wise. Each row (symbol) is T bytes long. After insertion, each source packet is immediately transmitted (no additional delay).

2. The encoding process starts when either the systematic part of the SB (k rows) is completely filled or a maximum tolerable delay has been reached.

3. The encoding proceeds column-wise, until all columns of the SB have been processed.

4. Generate the repair symbols (m=n-k rows) and transmit them in the payload of the repair packets.

Packet Erasure Correcting Codes: encoding

1 symbol = T bytes

Source Block

Source symbols

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Packet-Level Codes at RTP/Transport Layer

1. Fill an encoding table (source block, SB) with the source packets row-wise. Each row (symbol) is T bytes long. After insertion, each source packet is immediately transmitted (no additional delay).

2. The encoding process starts when either the systematic part of the SB (k rows) is completely filled or a maximum tolerable delay has been reached.

3. The encoding proceeds column-wise, until all columns of the SB have been processed.

4. Generate the repair symbols (m=n-k rows) and transmit them in the payload of the repair packets.

Packet Erasure Correcting Codes: encoding

1 symbol = T bytes

Source Block

Source symbols

Repair sym

bols

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Packet-Level Codes at RTP/Transport Layer

1. Fill a decoding table (decoding source block) with the received source and parity packets, row-wise.

2. The decoding process starts when either a maximum tolerable delay has been reached or the first packet of the next SB has been received.

Packet Erasure Correcting Codes: decoding

1 symbol = T bytes

Source Block

RX source

symbols

RX repair

symbols

Missing

symbols

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Packet-Level Codes at RTP/Transport Layer

1. Fill a decoding table (decoding source block) with the received source and parity packets, row-wise.

2. The decoding process starts when either a maximum tolerable delay has been reached or the first packet of the next SB has been received.

3. The decoding proceeds column-wise, until all columns of the SB have been processed.

4. Recover the missing symbols and, possibly recover the bit-errors in the corrupted packets.

Packet Erasure Correcting Codes: decoding

1 symbol = T bytes

Source Block

RX source

symbols

RX repair

symbols

Missing

symbols

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Packet-Level Codes at RTP/Transport Layer

1. Fill a decoding table (decoding source block) with the received source and parity packets, row-wise.

2. The decoding process starts when either a maximum tolerable delay has been reached or the first packet of the next SB has been received.

3. The decoding proceeds column-wise, until all columns of the SB have been processed.

4. Recover the missing symbols and, possibly recover the bit-errors in the corrupted packets.

Packet Erasure Correcting Codes: decoding

1 symbol = T bytes

Source Block

RX source

symbols

RX repair

symbols

Missing

symbols

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Packet-Level Codes at RTP/Transport Layer

1. Fill a decoding table (decoding source block) with the received source and parity packets, row-wise.

2. The decoding process starts when either a maximum tolerable delay has been reached or the first packet of the next SB has been received.

3. The decoding proceeds column-wise, until all columns of the SB have been processed.

4. Recover the missing symbols and, possibly recover the bit-errors in the corrupted packets.

Packet Erasure Correcting Codes: decoding

1 symbol = T bytes

Source Block

RX source

symbols

RX repair

symbols

Missing

symbols

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Packet-Level Codes at RTP/Transport Layer

1. Fill a decoding table (decoding source block) with the received source and parity packets, row-wise.

2. The decoding process starts when either a maximum tolerable delay has been reached or the first packet of the next SB has been received.

3. The decoding proceeds column-wise, until all columns of the SB have been processed.

4. Recover the missing symbols and, possibly recover the bit-errors in the corrupted packets.

Packet Erasure Correcting Codes: decoding

1 symbol = T bytes

Source Block

RX source

symbols

RX repair

symbols

Recovered

symbols

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

RS Codes at RTP layer

• Reed-Solomon (RS) codes at the RTP layer [VTC11]• Source Block structure:

• a single RTP source packet per row• row length T set to the maximum RTP packet size (Smax) plus 2

additional bytes indicating the packet size (S)• packet size S needed at the receiver for recovery in case of

losses• S virtually inserted in the matrix (in RTP source packets) not

really transmitted to the receiver

[VTC11] M.Mazzotti, E.Paolini, M.Chiani, R.Fracchia, B. Gadat, and C.Bergeron, “Analysis of packet-level forward error correction for video transmission,” in Proc. 2011 IEEE Vehicular Technology Conf. (VTC Spring), Budapest, May 2011.

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

RS Codes at RTP layer

• Source packets:• original RTP source packets

• Repair packets:• RTP packets, whose payload is a single repair symbol• new RTP payload type (e.g. 99)• Extra Header (EH) field:

• Sequence number (SBN), 2 bytes• Number of systematic rows k’, 1 byte• EH control field, 1 byte

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

RS Codes at RTP layer

• Encoding:• k (number of source packets in the SB) is a system

parameter• in order not to split a NAL into different SBs, k’=k+K (with

K≥0) source packets are inserted in the SB• the target k’ and n are obtained from a low code-rate RS

code, e.g. RS(255,128), through puncturing and shortening

• Decoding:• packet loss recovery and bit error correction• with a RS(nRS,kRS) any combination of E errors and L

erasures can be recovered, as long as 2E+L ≤ nRS-kRS

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

LDPC-based packet erasure coding at UDP

• Low-Density Parity Check (LDPC) codes applied at the UDP/UDPLite transport layer [VTC11]

• Source Block structure (before encoding):• multiple rows per each RTP source packet• row length of T bytes• additional description fields

(not transmitted)• UDP flow ID (1B)• packet length (2B)

[VTC11] M.Mazzotti, E.Paolini, M.Chiani, R.Fracchia, B. Gadat, and C.Bergeron, “Analysis of packet-level forward error correction for video transmission,” in Proc. 2011 IEEE Vehicular Technology Conf. (VTC Spring), Budapest, May 2011.

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

LDPC-based packet erasure coding at UDP

• Source packets:• UDP/UDPLite packets, whose payload is an RTP packet• Source Payload ID (4B):

• source block number (SBN), 2B• encoding symbol ID (ESI), 2B

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

LDPC-based packet erasure coding at UDP

• Repair packets:• UDP/UDPLite packets, whose payload is several repair symbols• Repair Payload ID (7B):

• source block number (SBN), 2B• encoding symbol ID (ESI), 2B• number or used systematic rows (k), 2B• code-rate ID, 1B

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

LDPC-based packet erasure coding at UDP

• Encoding:• based on a LDPC(nLDPC, kLDPC) mother code• target n and k are achieved by expurgating and puncturing• Encoding steps:

• E1: pseudo-random interleaving of the systematic part of the SB (first kLDPC rows)

• E2: generation of the nLDPC-kLDPC repair symbols• E3: pseudo-random interleaving of the redundant part of

the SB (last nLDPC-kLDPC rows)• Decoding:

• packet loss recovery, through iterative or maximum likelihood (ML) decoding

• Decoding steps:• D1: pseudo-random interleaving of the systematic part of

the SB (first kLDPC rows)• D2: deinterleaving of the redundant part of the SB (last

nLDPC-kLDPC rows)• D3: iterative or ML LDPC erasure decoding• D4: deinterleaving of the systematic part of the SB

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Performance comparison

• OPTIMIX simulator• H.264 video• CIF• 30fps• 840 kbps

• Scenario 1• only packet losses

across the IPv6 network

• Scenario 2• packet losses across the IPv6 network• bit errors in the packet payload due to a wireless link (IEEE

802.11g) with Es/N0=28 dB

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Performance comparison

• SB systematic size:• ~20kB

• Results averaged over 20 simulation runs per point

• Performance:• RS and LDPC

codes have similar performance with Rc=2/3

• with high Ploss values, LDPC codes with Rc=1/2 perform better than RS codes

Scenario 1

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Performance comparison

• SB systematic size:• ~20kB

• Results averaged over 20 simulation runs per point

• Performance:• with low Ploss

values RS codes perform better, due to bit error correction

• with high Ploss values, LDPC codes codes perform better, due to longer codewords

Scenario 2

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Nonbinary LDPC codes for erasure channels

• A nonbinary LDPC code is characterized by a sparse parity-check matrix H whose elements belong to some finite field Fq

• Usually q=2p and the 8T bits composing a symbol are regarded as 8T/p nonbinary symbols in Fq

• ML decoding consists in solving a linear system in Fq, via inversion of the (nLDPC-kLDPC ) x e matrix composed of the columns of H corresponding to the e missing simbols.

• A decoding failure happens if the rank of this (nLDPC-kLDPC ) x e matrix is smaller than e

• The probability of decoding failure can be simply decreased increasing the finite field order, even for the same matrix H, at the expense of a little increase in complexity

• This techniques has been successfully adopted for both LDPC and MBMS Raptor codes

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

• The figure illustrates the performance of two short binary MBMS Raptor codes and the performance of their nonbinary counterparts constructed on F4 [LPC10]

• Similar results hold also for LDPC codes

• The decoding failure rate is expressed as a function of the overhead ov, i.e. the number of equations in excess respect to the number of unknowns in the linear system to be solved

[LPC10] G. Liva, E. Paolini and M. Chiani, “Performance versus overhead for Fountain codes over Fq,” IEEE

Communications Letters, vol. 14, no. 2, pp. 178–180, Feb. 2010.

Nonbinary LDPC codes for erasure channels

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Conclusions

• We have described two packet level coding solutions based on RS and LDPC codes, operating at RTP and UDP/UDPLite layer respectively.

• We have compared their performance in terms of PSNR in case of H.264/AVC video transmissions, based on the simulation framework developed within the FP7 OPTIMIX project.

• At low packet loss rates, the correction capabilities of the RS-based solution provide some advantages over the LDPC codes. Increasing the erasure rate, the longer LDPC codewords determines better video qualities.

• Significant performance improvements can be obtained using nonbinary LDPC codes.

M. Mazzotti et al. – Packet-Level Forward Error Correction in Video TransmissionSTDAY 2011, 30/09/2011, Turin

Thank you.