Packet-Level Forward Error Correction in Video Transmission

Similar documents
Analysis of Packet-Level Forward Error Correction for Video Transmission

ELEC 691X/498X Broadcast Signal Transmission Winter 2018

CSEP 561 Error detection & correction. David Wetherall

Coding theory for scalable media delivery

Lec 19 - Error and Loss Control

Efficient Content Delivery and Low Complexity Codes. Amin Shokrollahi

Improving the quality of H.264 video transmission using the Intra-Frame FEC over IEEE e networks

AL-FEC for Streaming Services over LTE Systems

draft-begen-fecframe-interleaved-fec-scheme-00 IETF 72 July 2008 Ali C. Begen

Forward Error Correction Using Reed-Solomon Codes

Research Article Embedding Protection Inside H.264/AVC and SVC Streams

BECAUSE of their superior performance capabilities on

Convolutional Coding for Resilient Packet Header Compression

ERROR CONTROL CODING FOR B3G/4G WIRELESS SYSTEMS

Jimin Xiao, Tammam Tillo, Senior Member, IEEE, Yao Zhao, Senior Member, IEEE

Multi-path Forward Error Correction Control Scheme with Path Interleaving

FECFRAME extension Adding convolutional FEC codes support to the FEC Framework

A Hybrid ARQ Scheme for Resilient Packet Header Compression

Channel-Adaptive Error Protection for Scalable Audio Streaming over Wireless Internet

Long Erasure Correcting Codes: the New Frontier for Zero Loss in Space Applications? Enrico Paolini and Marco Chiani

An Experimental Study of Packet Loss and Forward Error Correction in Video Multicast over IEEE b Network

Link Layer: Error detection and correction

Is Physical Layer Error Correction sufficient for Video Multicast over IEEE g Networks?

Unified Error Control Framework with Cross-Layer Interactions for Efficient H.264 Video Transmission over IEEE 802.

UDP-Lite Enhancement Through Checksum Protection

Optimizing Joint Erasure- and Error-Correction Coding for Wireless Packet Transmissions

Chapter 3. The Data Link Layer

Quality of Service (QoS) Whitepaper

C LDPC Coding Proposal for LBC. This contribution provides an LDPC coding proposal for LBC

Chapter 4: Implicit Error Detection

Summary of Raptor Codes

An Unequal Packet Loss Protection Scheme for H.264/AVC Video Transmission

Distributed Video Coding

Adaptive Forward Error Correction for Real-time Internet Video

CSE 123: Computer Networks

EE 6900: FAULT-TOLERANT COMPUTING SYSTEMS

So you think you can FEC?

90A John Muir Drive Buffalo, New York Tel: Fax:

Network-Adaptive Video Coding and Transmission

Error Control Coding for MLC Flash Memories

Networked Systems and Services, Fall 2018 Chapter 2. Jussi Kangasharju Markku Kojo Lea Kutvonen

EC-Bench: Benchmarking Onload and Offload Erasure Coders on Modern Hardware Architectures

Fountain Codes Based on Zigzag Decodable Coding

Error Resilient Image Transmission over Wireless Fading Channels

Adaptive Cross-Layer Protection Strategies for Robust Scalable Video Transmission Over WLANs

Ferre, PL., Doufexi, A., Chung How, J. T. H., Nix, AR., & Bull, D. (2003). Link adaptation for video transmission over COFDM based WLANs.

Combined Copyright Protection and Error Detection Scheme for H.264/AVC

Receiver BER target for 32GFC. Adam Healey February 2013 T11/13-058v0

FORWARD ERROR CORRECTION CODING TECHNIQUES FOR RELIABLE COMMUNICATION SYSTEMS

CSC310 Information Theory. Lecture 21: Erasure (Deletion) Channels & Digital Fountain Codes. November 22, 2006 see

IEEE Broadband Wireless Access Working Group <

T325 Summary T305 T325 B BLOCK 4 T325. Session 3. Dr. Saatchi, Seyed Mohsen. Prepared by:

4. Error correction and link control. Contents

Low complexity H.264 list decoder for enhanced quality real-time video over IP

CSMC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. Nov 1,

CSC310 Information Theory. Lecture 22: Erasure (Deletion) Channels & Digital Fountain Codes. November 30, 2005 see

Cross-Layer Techniques for Adaptive Video Streaming over Wireless Networks

ECC Protection in Software

Transport Layer Protocols for the Land Mobile Satellite Broadcast Channel

The Data Link Layer Chapter 3

MA5400 IP Video Gateway. Introduction. Summary of Features

Advanced Computer Networks. Rab Nawaz Jadoon DCS. Assistant Professor COMSATS University, Lahore Pakistan. Department of Computer Science

On Punctured Reed-Solomon Codes at the Transport Layer of Digital Network

The Design of Degree Distribution for Distributed Fountain Codes in Wireless Sensor Networks

Ad hoc and Sensor Networks Chapter 6: Link layer protocols. Holger Karl

CSE 123A Computer Networks

CS 641 Project Report Error resilient video transmission over wireless networks. December Gang Ding

IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 52, NO. 10, OCTOBER

Simple Low-Density Parity Check (LDPC) Staircase Forward Error Correction (FEC) Scheme for FECFRAME

COMPUTER NETWORKS UNIT-3

< Irregular Repeat-Accumulate LDPC Code Proposal Technology Overview

Multimedia Data Transmission over Mobile Internet using Packet-Loss Punctured (PaLoP) Codes

Check-hybrid GLDPC Codes Without Small Trapping Sets

Wireless Sensornetworks Concepts, Protocols and Applications. Chapter 5b. Link Layer Control

Modern Communications Chapter 5. Low-Density Parity-Check Codes

Real-time and smooth scalable video streaming system with bitstream extractor intellectual property implementation

ADSL Transmitter Modeling and Simulation. Department of Electrical and Computer Engineering University of Texas at Austin. Kripa Venkatachalam.

Sliding-window Raptor codes for Efficient Scalable Wireless Video Broadcasting with Unequal Loss Protection

ELG3175 Introduction to Communication Systems. Introduction to Error Control Coding

Stereo DVB-H Broadcasting System with Error Resilient Tools

LDPC Codes a brief Tutorial

Multidimensional Layered Forward Error Correction using Rateless Codes

Design Single and Multiple Errors Correction Block Codes

CODING METHOD FOR EMBEDDING AUDIO IN VIDEO STREAM. Harri Sorokin, Jari Koivusaari, Moncef Gabbouj, and Jarmo Takala

Framing, Synchronization, and Error Detection

International Journal of Scientific & Engineering Research, Volume 4, Issue 5, May-2013 ISSN

Department of Communication Systems. Examensarbete. Forward Error Correction for Packet Switched Networks

Introduction to Networked Multimedia An Introduction to RTP p. 3 A Brief History of Audio/Video Networking p. 4 Early Packet Voice and Video

Implementation of Multidirectional Parity Check Code Using Hamming Code for Error Detection and Correction

Implementation and Evaluation of Transport Layer Protocol Executing Error Correction (ECP)

The Data Link Layer. Data Link Layer Design Issues

CSCI-1680 Link Layer I Rodrigo Fonseca

Performance Analysis of Joint Network Channel Coding In Various Network Topologies

Robust IP and UDP-lite header recovery for packetized multimedia transmission

Error-Correcting Codes

Matteo Petracca Scuola Superiore Sant Anna, Pisa

A REVIEW OF CONSTRUCTION METHODS FOR REGULAR LDPC CODES

The Lekha 3GPP LTE FEC IP Core meets 3GPP LTE specification 3GPP TS V Release 10[1].

MOBILE VIDEO COMMUNICATIONS IN WIRELESS ENVIRONMENTS. Jozsef Vass Shelley Zhuang Jia Yao Xinhua Zhuang. University of Missouri-Columbia

A Robust Method for Soft IP Handover

Transcription:

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)

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

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

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:

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)

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)

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)

Packet-Level Codes at RTP/Transport Layer Packet Erasure Correcting Codes: basic idea 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. 1 2......... Packet-level encoder 3 PHY TX Source packets Source packets Repair packets Packet Erasure Channel Channel 4 Packet-level decoder...... PHY RX 5

Packet-Level Codes at RTP/Transport Layer Packet Erasure Correcting Codes: encoding 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. 1 symbol = T bytes Source symbols Still empty Source Block

Packet-Level Codes at RTP/Transport Layer Packet Erasure Correcting Codes: encoding 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 columnwise, 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. 1 symbol = T bytes Source symbols Source Block

Packet-Level Codes at RTP/Transport Layer Packet Erasure Correcting Codes: encoding 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 columnwise, 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. 1 symbol = T bytes Source symbols Source Block

Packet-Level Codes at RTP/Transport Layer Packet Erasure Correcting Codes: encoding 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 columnwise, 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. 1 symbol = T bytes Source symbols Source Block

Packet-Level Codes at RTP/Transport Layer Packet Erasure Correcting Codes: encoding 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 columnwise, 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. 1 symbol = T bytes Source symbols Repair symbols Source Block

Packet-Level Codes at RTP/Transport Layer Packet Erasure Correcting Codes: decoding 1 symbol = T bytes RX source symbols Missing symbols 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. RX repair symbols Source Block

Packet-Level Codes at RTP/Transport Layer Packet Erasure Correcting Codes: decoding 1 symbol = T bytes RX source symbols Missing symbols RX repair symbols 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 biterrors in the corrupted packets. Source Block

Packet-Level Codes at RTP/Transport Layer Packet Erasure Correcting Codes: decoding 1 symbol = T bytes RX source symbols Missing symbols RX repair symbols 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 biterrors in the corrupted packets. Source Block

Packet-Level Codes at RTP/Transport Layer Packet Erasure Correcting Codes: decoding 1 symbol = T bytes RX source symbols Missing symbols RX repair symbols 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 biterrors in the corrupted packets. Source Block

Packet-Level Codes at RTP/Transport Layer Packet Erasure Correcting Codes: decoding 1 symbol = T bytes RX source symbols Recovered symbols RX repair symbols 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 biterrors in the corrupted packets. Source Block

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 (S max ) 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.

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

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(n RS,k RS ) any combination of E errors and L erasures can be recovered, as long as 2E+L n RS -k RS

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.

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

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

LDPC-based packet erasure coding at UDP Encoding: based on a LDPC(n LDPC, k LDPC ) 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 k LDPC rows) E2: generation of the n LDPC -k LDPC repair symbols E3: pseudo-random interleaving of the redundant part of the SB (last n LDPC -k LDPC 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 k LDPC rows) D2: deinterleaving of the redundant part of the SB (last n LDPC -k LDPC rows) D3: iterative or ML LDPC erasure decoding D4: deinterleaving of the systematic part of the SB

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 E s /N 0 =28 db

Performance comparison SB systematic size: ~20kB Scenario 1 Results averaged over 20 simulation runs per point Performance: RS and LDPC codes have similar performance with R c =2/3 with high Ploss values, LDPC codes with Rc=1/2 perform better than RS codes

Performance comparison Scenario 2 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

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 F q Usually q=2 p and the 8T bits composing a symbol are regarded as 8T/p nonbinary symbols in F q ML decoding consists in solving a linear system in F q, via inversion of the (n LDPC -k LDPC ) x e matrix composed of the columns of H corresponding to the e missing simbols. A decoding failure happens if the rank of this (n LDPC -k LDPC ) 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

Nonbinary LDPC codes for erasure channels The figure illustrates the performance of two short binary MBMS Raptor codes and the performance of their nonbinary counterparts constructed on F 4 [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 F q, IEEE Communications Letters, vol. 14, no. 2, pp. 178 180, Feb. 2010.

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.

Thank you.