- Research
- Open Access

# Multi-user video streaming using unequal error protection network coding in wireless networks

- Dejan Vukobratović
^{1}Email author and - Vladimir Stanković
^{2}

**2012**:218

https://doi.org/10.1186/1687-1499-2012-218

© Vukobratović and Stanković; licensee Springer. 2012

**Received:**27 February 2012**Accepted:**20 June 2012**Published:**13 July 2012

## Abstract

In this article, we investigate a multi-user video streaming system applying unequal error protection (UEP) network coding (NC) for simultaneous real-time exchange of scalable video streams among multiple users. We focus on a simple wireless scenario where users exchange encoded data packets over a common central network node (e.g., a base station or an access point) that aims to capture the fundamental system behaviour. Our goal is to present analytical tools that provide both the decoding probability analysis and the expected delay guarantees for different importance layers of scalable video streams. Using the proposed tools, we offer a simple framework for design and analysis of UEP NC based multi-user video streaming systems and provide examples of system design for video conferencing scenario in broadband wireless cellular networks.

## Keywords

- Video Stream
- Network Code
- Scalable Video Code
- Enhancement Layer
- Scalable Video

## Introduction

Real-time multi-user (or multi-party) video streaming refers to a scenario where multiple users, interconnected by a common communication network, perform real-time exchange of video streams [1, 2]. Each of the users continuously creates its own video stream and is interested in the continuous and real-time recovery of the streams generated by a subset or the set of all the other users. Application examples include video conferencing, multi-view video systems, multi-party peer-to-peer (P2P) video exchange, emerging multimedia-oriented social networking (e.g., “see-what-i-see” applications), etc. However, designing robust and efficient multi-user video streaming systems over wireless networks faces a number of challenges, most notably, the strict delay limits enforced by real-time requirements and time-variable wireless channel conditions responsible for frequent packet losses.

Network coding (NC) is a novel information processing technique applied in network nodes in which, instead of simple forwarding of received data packets, the data packets are combined and resulting network coded packets are transmitted instead. The idea was first introduced for the single-source multicast problem, where it was shown that, unlike routing, it achieves the capacity of the multicast connection [3]. For the single-source multicast problems represented by directed acyclic graphs with unit-capacity error-free edges, the class of linear network codes achieves the multicast connection capacity [4]. Furthermore, random linear codes over sufficiently large finite fields open the way for simple and fully distributed network code design [5]. The random linear coding (RLC) approach is adapted for practical implementation in lossy packet networks [6, 7], and suggested in a number of wireless networking applications [8, 9].

To increase throughput and improve error resilience, NC has been recently suggested for applications in multimedia streaming [10–14], and in particular, for multi-user video conferencing [15–17]. In [15], which is closest to our work, RLC is investigated for multi-party video conferencing in wireless broadband cellular systems. This study demonstrates that RLC applied within the central node possess a potential to reduce the end-to-end delay, increase throughput and improve the transmission reliability and system fairness.

In this article, we explore analytical tools for the design and analysis of a real-time multi-user video streaming system that applies scalable video coding and unequal error protection (UEP) RLC. We focus on a simple scenario where wireless users exchange video streams over a common central node with the goal of capturing the fundamental system behaviour. This work builds upon our recent theoretical analysis of UEP RLC schemes for erasure channels [18]. Addressing a specific UEP RLC application, the real-time multi-user video streaming, this article extends the layer decoding probability analysis of UEP RLC addressed in previous work to include additional performance measures such as expected decoding delays of different video layers and evolution of the expected received video quality of exchanged scalable video streams over time. Using the presented set of analytical tools, we offer a simple framework for the design and analysis of UEP RLC based real-time multi-user scalable video streaming systems. The framework provides flexible approach for reliable exchange of layered video streams over dynamically changing wireless channels. The application of the proposed framework and the benefits over the standard RLC approach applied in [15] are demonstrated through the distortion-optimized system design examples.

The article is organized as follows. Section “RLC: an overview and UEP extension” provides a background on RLC and its UEP extensions, and provides a decoding performance analysis of the UEP RLC. The proposed multi-user video streaming setup is introduced in Section “Multi-user video streaming using UEP NC”. The same section formulates the distortion-based optimization of the multi-user video streaming system based on UEP NC. Selected UEP NC code design examples are discussed in Section “System optimization and results”. The article is concluded in Section “Conclusions”.

## RLC: an overview and UEP extension

### Background and motivation

For wireless broadcasting, NC is usually motivated by the two-user packet exchange example in Figure 1 (see e.g., [19]). Instead of replicating and independently transmitting each user packet, the central node XORs the incoming user packets and broadcasts a single coded packet. As a result, the number of packet transmissions required for two-way packet exchange between users reduces from four to three.

The two-user example can be extended to multi-user scenarios using opportunistic binary NC (XOR-ing) for wireless broadcast networks, proposed in [20]. However, the broadcasting node needs to know the buffer content of its neighbours in order to construct the optimal encoded packet. On the other hand, extension to multi-user scenario is possible by applying RLC over received data packets using non-binary finite field coefficents [15]. After *N*_{
u
} users upload their data to the central node, the central node broadcasts random linear combinations of users’ packets in a “rateless” fashion, until each user recovers the data packets of other users (Figure 2). A user needs to receive any *N*_{
u
}−1 encoded packets broadcasted by the central node in order to recover other users with high probability, if the finite field size is sufficiently large. In contrast, without NC, an alternative is repeated broadcasting of user packets in a “data carousel” fashion, or managing the one-to-many automatic repeat request (ARQ) mechanism, which is known to suffer a number of drawbacks (e.g., excessive delay and the feedback implosion problem).

In this article, we extend the basic idea of Figure 2 to the case where users exchange scalable coded video streams. Users’ messages are organized into layers of different importance, starting with the most important and continuing with progressively less important layers. If, e.g., due to poor channel conditions or low access data rates, a user is unable to fully recover other users, it benefits from recovering as many importance layers of other users’ messages starting from the most important layer onwards. For increased protection of more important layers over error-prone wireless links, the advantages of the UEP forward error correction (FEC) coding are demonstrated in a number of research studies [21–23]. In this article, we focus on the UEP RLC to explore the benefits of both rateless UEP FEC coding and NC.

### Random linear coding

Let x={*x*_{1}*x*_{2},…,*x*_{
K
}} be a source message that consists of *K* equal-length source packets. RLC applied over the message x produces encoded packets *ω* as random linear combinations of source packets with coefficients randomly selected from a given finite field *GF*(2^{
q
}): $\omega =\sum _{i=1}^{K}{\alpha}_{i}\xb7{x}_{i},$ where *α*_{
i
} is a randomly selected element of *GF*(2^{
q
}), and *ω* is of the same length as source packets. Each encoded packet carries a header information containing global encoding coefficients within the global encoding vector g={*α*_{1}*α*_{2},…,*α*_{
K
}}[6]. For unicast transmission, to relax the overhead requirements, both the transmitter and the receiver may use the pair of synchronized random number generators (RNG) to produce the same sequence of global encoding coefficients. In this case, only a short RNG seed needs to be conveyed within the packet overhead. The RLC encoding can be repeated at the transmitter in a rateless fashion, until the receiver collects enough encoded packets to decode the source message using the Gaussian elimination (GE) decoding. GE decoding introduces complexity limitations on the message length *K*. However, for real-time interactive multimedia applications, small values of *K* are acceptable for practical deployment [24, 25].

### UEP random linear coding

Let x={*x*_{1},*x*_{2},…,*x*_{
K
}} be a *layered* source message containing *K* equal-length source packets classified into *L* importance layers. The source message starts with the most important base layer (BL) and continues with progressively less important enhancement layers (EL). The subset of the source message containing the *l*-th layer is denoted as x_{
l
} and contains *k*_{
l
} source packets, where $\sum _{i=1}^{L}{k}_{i}=K$. We denote the subset of the source message containing the first *l* layers as x_{1:l} and the number of source packets in the first *l* layers is ${K}_{l}=\sum _{i=1}^{l}{k}_{i}$ (Figure 3).

The UEP RLC scheme called expanding window (EW) RLC was investigated in [18]. The EW RLC introduces a set of EWs over the layered source message following the importance structure of the message. More precisely, for the *L*-layer message, the set of *L* EWs is defined where the *l*-th EW, 1≤*l*≤*L*, contains the source block subset x_{1:l}(Figure 3).

#### EW RLC encoding

The EW RLC introduces *the probabilistic encoding process* over the set of EWs. For each encoded packet, one of the EWs is first selected using the predefined window selection distribution $\Gamma \left(\xi \right)=\sum _{i=1}^{L}{\Gamma}_{i}{\xi}^{i}$, where *Γ*_{
i
} is the probability of selection of the *i*-th window, $\sum _{i=1}^{L}{\Gamma}_{i}=1$. Then, an encoded packet is created by applying RLC only over the selected window. Arbitrarily many EW RLC encoded packets can be produced by independently repeating the encoding process for each encoded packet.

#### EW RLC decoding

A receiver collects correctly received EW RLC coded packets and decodes the source message (or subset of its layers) using the standard GE decoder, as if standard RLC is used. An important difference is that the parts of the layered source message could be decoded even if less than *K* encoded packets are received.

For more details on the design of EW RLC, we refer the interested reader to [18].

### Performance analysis of EW RLC

In the following, we review a simple upper bound for the set of decoding probabilities *P*_{d,l}(*N*) that the content of the *l*-th window, 1≤*l*≤*L*, is recovered at the receiver after receiving any *N* EW RLC encoded packets. The upper bound is general and holds for any packet-level coding and decoding scheme that applies probabilistic encoding and expanding windowing approach. Moreover, the EW RLC in combination with GE decoding achieves this bound as the field size increases [18].

Let y={*y*_{1},*y*_{2},…,*y*_{
N
}} be a sequence of *N* received EW RLC encoded packets. For the derivation of upper bounds, y is completely described by the corresponding vector n={*n*_{1},*n*_{2},…,*n*_{
L
}}, where *n*_{
l
}denotes the number of received packets obtained by EW RLC coding over the *l*-th window. We denote by y_{
l
} (and y_{1:l}, respectively) the subset of y containing the set of *n*_{
l
}$\left({N}_{l}=\sum _{i=1}^{l}{n}_{i}\right)$ received packets obtained by EW RLC encoding over the *l*-th (the first *l*) window(s).

*R*

_{ l }(n),1≤

*l*≤

*L*, using the following recursion:

Thus any received y can be recursively transformed into R={*R*_{1}(n),*R*_{2}(n),…,*R*_{
L
}(n)}.

The values of *R*_{
l
}(n) provide an upper bound on the rank of the *N*_{
l
}×*K* matrices whose rows are global encoding vectors of *N*_{
l
}received packets in y_{1:l}. In other words, *R*_{
l
}(n) is the maximum number of source packets in x_{1:l} that can be recovered from y_{1:l}. Using R we can simply determine the set of layers of x the receiver can recover after receiving y. Namely, x_{1:l} can be fully recovered if *R*_{
l
}(n)=*K*_{
l
}. In addition, x_{1:l}can be also recovered if any of the larger windows is recovered, i.e., if *R*_{
m
}(n)=*K*_{
m
} for any *l*<*m*≤*L*, because larger windows contain smaller ones.

*P*

_{d,l}(

*N*) follows by conditioning on n

^{a}:

*I*(·) represents an indicator function equal to 1 if its argument, which is a logical expression, is true, otherwise,

*I*(·)=0, and $\underset{i}{\vee}\left(\right)$ ($\underset{j}{\wedge}\left(\right)$) is logical or (and) of a sequence of logical expressions parametrized by

*i*(

*j*). Conditioning on n is removed using the prior distribution over n:

*P*

_{d,l}(

*N*) is obtained as:

For a given layered source message, *P*_{d,l}(*N*) depends only on the selected window selection distribution *Γ*(*ξ*).^{b}Therefore, designing EW RLC codes with desired *P*_{d,l}(*N*) behaviour reduces to the design of appropriate *Γ*(*ξ*)[18].

## Multi-user video streaming using UEP NC

### System model

In this article, we propose the UEP NC as a core component of a real-time multi-user video streaming system. For simplicity, we focus on a wireless cellular network example where *N*_{
u
} mobile users (${U}_{1},{U}_{2},\dots ,{U}_{{N}_{u}}$) participate in a multi-party video conferencing session over a common base station (BS) within a single cell (Figure 4).

The presented results are applicable in similar scenarios, e.g., if instead of a single BS users connect to different BSs mutually interconnected by high-speed links (e.g., fiber optic) or if instead of a cellular network we observe a Wi-Fi access point.

In our scenario, every user continuously segments its own video stream into groups of frames (GOF), where each GOF contains *N*_{gof}frames, and compresses every GOF using a scalable video coder. For each user *U*_{
i
}and each compressed GOF, the output of the video coder is a layered source message x^{(i)} that contains *K*^{(i)}source packets, each of length *b* bits, organized into *L* layers, where the *l*-th layer contains ${k}_{l}^{\left(i\right)}$ packets. The values of *b* and *L* are the same across all users whereas for each user *U*_{
i
} and each GOF, the values *K*^{(i)}and $\{{k}_{1}^{\left(i\right)},{k}_{2}^{\left(i\right)},\dots ,{k}_{L}^{\left(i\right)}\}$ are in general different.

Video streaming among users in a session may be observed as a GOF-by-GOF exchange process. A single GOF exchange period repeats every *T*_{gof}=*N*_{gof}/*N*_{fps} seconds, where *N*_{fps} is the number of frames per second of the video stream, and both *N*_{gof}and *N*_{fps} are equal across all users. For simplicity, we assume that GOF periods are aligned among different users, i.e., the messages x^{(i)} are synchronously generated by all the users. For every GOF period, the goal of each user is to share its own and collect other users GOFs, or at least as many of their layers starting from the beginning onwards, within a strict delay limits.

During each GOF period, the data exchange process can be divided into two phases. In the first, *upload phase*, users simultaneously upload their data to the BS, and in the second, *broadcast phase*, the BS broadcasts the received data to all the users. We assume that orthogonal channels are allocated between each user and the BS, and for the broadcast transmission by the BS, allowing for simultaneous transmission on all channels. Each wireless link is modeled as a synchronous time-slotted packet-erasure link where the fixed size encoded packets of length *b* bits are transmitted using a fixed transmission data rate *R* and erasure probability *ε*. We assume that the pair (*R*,*ε*) is in general different on different wireless links, it remains fixed during the transmission period *T*_{gof}of a single GOF, and may change between different GOF transmissions. The time slot duration *T*_{
p
}=*b*/*R* represents a time required for a single encoded packet transmission.^{c}

In the upload phase, to protect data from erasures, the user *U*_{
i
} encodes the source message x^{(i)}using the EW RLC scheme defined by a window selection distribution *Γ*^{(i)}(*ξ*) and streams the encoded packets using the user rate *R*^{(i)}. The BS recovers the users’ messages using *N*_{
u
}independent GE decoders dedicated to different users. After decoding as many user layers as possible, the BS creates its own source message x^{(BS)}that contains all or a subset of users’ message layers. For example, if all *N*_{
u
} users are completely recovered, the message x^{(BS)} is of length ${K}^{\text{(BS)}}=\sum _{i=1}^{{N}_{u}}{K}^{\left(i\right)}$ packets and contains *L* layers. The *l*-th layer ${\mathit{x}}_{l}^{\text{(BS)}}$ comprises the total of ${k}_{l}^{\text{(BS)}}=\sum _{i=1}^{{N}_{u}}{k}_{l}^{\left(i\right)}$ packets from the *l*-th layer data of all *N*_{
u
}user messages, ${\mathit{x}}_{l}^{\text{(BS)}}=\{{\mathit{x}}_{l}^{\left(1\right)},{\mathit{x}}_{l}^{\left(2\right)},\dots ,{\mathit{x}}_{l}^{\left({N}_{u}\right)}\}$, as illustrated in Figure 4 for the two-layer scenario. In general, the BS may create the *l*-th layer ${\mathit{x}}_{l}^{\text{(BS)}}$ from the *l*-th layers of a subset of users.

In the broadcast phase, the BS applies the EW RLC scheme defined by a window selection distribution *Γ*^{(BS)}(*ξ*) over x^{(BS)}and broadcasts the stream of encoded packets using the broadcast rate *R*^{(BS)}. Each user recovers the BS message x^{(BS)}using the GE decoder where, prior to decoding, the user cancels out its own packets from the received encoded packets. We note that the two phases may overlap in time, i.e., the BS may start broadcasting a subset of (already recovered) layers of x^{(BS)}before the upload phase of all users is completed.

### Single-link analysis: decoding and delay performance

To analyze the system in Figure 4, we focus on a single-link transmission of UEP RLC coded layered message between any transmitter-receiver pair during a fixed time period *T*. Instead of layer decoding probabilities after fixed number of received packets, *P*_{d,l}(*N*) (Section “Performance analysis of EW RLC”), we shift our interest to layer decoding probabilities after fixed transmission time, *P*_{d,l}(*T*). However, unlike *P*_{d,l}(*N*), deriving *P*_{d,l}(*T*) requires introduction of a packet-level channel model.

During the period of duration *T*, the transmission process consists of *N*_{
T
}=⌊*RT*/*b*⌋ encoded packet transmissions (packet slots). We redefine the received sequence y={*y*_{1},*y*_{2},…,${y}_{{N}_{T}}$} to describe the outcome of all *N*_{
T
}transmissions, where *y*_{
i
}may represent either the received encoded packet or a lost (erased) packet. The received sequence y can be described by vector n={*n*_{1},*n*_{2},…,*n*_{
L
},*n*_{
e
}}, where, as before, *n*_{
i
}is the number of received encoded packets obtained by encoding over the *i*-th EW, $N=\sum _{i=1}^{L}{n}_{i}\le {N}_{T}$ is the number of (correctly) received encoded packets during the interval *T*, and *n*_{
e
}=*N*_{
T
}−*N* is the number of erased packets.

*T*, the number of received encoded packets

*N*is dependent on the underlying channel packet-loss model. For simplicity, we assume a packet erasure channel model that erases encoded packets independently with erasure probability

*ε*. To obtain

*P*

_{d,l}(

*T*), we use conditioning over n:

*P*

_{Γ(ξ),ε}(n) is slightly altered version of (3) that accounts for

*n*

_{ e }erased packet events:

*P*_{d,l}(*T*|n) can be obtained as the layer decoding probability *P*_{d,l}(*N*|n) after *N* received encoded packets (Section “Performance analysis of EW RLC”, Equations (1)–(2)) since, by knowing n, we directly obtain $N=\sum _{i=1}^{L}{n}_{i}$.

*P*

_{d,l}(

*T*) implicitly provides information on the decoding delay of the

*l*-th message layer. For example, one can search for minimal transmission period ${T}_{\text{th}}^{\left(l\right)}$ such that the

*l*-th message layer decoding probability ${P}_{d,l}\left({T}_{\text{th}}^{\left(l\right)}\right)>{P}_{\text{th}}^{\left(l\right)}$, where ${P}_{\text{th}}^{\left(l\right)}$ is the threshold decoding probability set in advance. For more explicit delay information, one can obtain the probability distribution

*p*

_{d,l}(

*N*

_{ T }) that the

*l*-th message layer is recovered after exactly the

*N*

_{ T }-th time slot (and cannot be recovered before):

*T*

_{ p }=

*b*/

*R*. The expected delay ${\ud53c}_{l}\left[{N}_{T}\right]$ for recovery of the

*l*-th message layer is:

The expected delay of recovery of the complete source message $\ud53c\left[{N}_{T}\right]$ for the EW RLC scheme is equal to the recovery delay of the last *L*-th layer: $\ud53c\left[{N}_{T}\right]={\ud53c}_{L}\left[{N}_{T}\right]$. ${\ud53c}_{l}\left[{N}_{T}\right]$ is expressed in terms of the number of time slots, but it can be easily converted into absolute time values as ${\ud53c}_{l}\left[T\right]=\ud53c\left[{N}_{T}\right]\xb7{T}_{p}$.

#### Example 1

Let x be a layered source message containing *K*=60 source packets of size *b*=3,200 bits (400bytes) divided into *L*=2 layers: the BL containing *k*_{1}=20 packets and the EL containing *k*_{2}=40 packets. The EW RLC scheme defined by $\Gamma \left(\xi \right)={\Gamma}_{1}\xi +(1-{\Gamma}_{1}){\xi}^{2}$ is applied over x producing continuous stream of 400-bytes long encoded packets. The wireless link towards the receiver is modeled as a synchronous rate *R*=2 Mbit/s link with packet erasure probability *ε*=0.1. Figure 5 presents the evolution of layer decoding probabilities *P*_{d,1}(*T*) and *P*_{d,2}(*T*) over time *T* at the receiver for the range of *Γ*_{1}values. As a baseline scheme, we start from the middle solid curve for *Γ*_{1}=0, representing standard RLC applied over the whole message, which results in simultaneous recovery of both message layers. By increasing *Γ*_{1}, we obtain the UEP effect of the EW RLC scheme, where solid curves for the *P*_{d,1}(*T*) gradually shift to the left, i.e., towards earlier recovery of the most important data. The extreme case of *Γ*_{1}=1 results in the earliest recovery of the most important part represented by the leftmost dashed curve. The increase in *Γ*_{1}comes at the price of delayed decoding of less important layer *P*_{d,2}(*T*). Figure 6 presents the expected layer decoding delays ${\ud53c}_{1}\left[T\right]$ and ${\ud53c}_{2}\left[T\right]$ as a function of *Γ*_{1}. Note that significant decrease of ${\ud53c}_{1}\left[T\right]$ with the increase in *Γ*_{1}initally comes with a relatively small loss in ${\ud53c}_{2}\left[T\right]$. For example, for *Γ*_{1}=0.5, ${\ud53c}_{1}\left[T\right]$ drops from 105 to 62ms (−41*%*) while ${\ud53c}_{2}\left[T\right]$ rises from 105 to 126ms ( + 20*%*).

*Γ*(

*ξ*)). As an example, we derive

*P*

_{d,l}(

*T*) for

*T*>

*T*

_{1}, given that the transmitter has applied the EW RLC defined by

*Γ*

^{ a }(

*ξ*) during 0≤

*t*≤

*T*

_{1}, and the EW RLC defined by

*Γ*

^{ b }(

*ξ*) for

*t*>

*T*

_{1}. For the link parameters

*R*and

*ε*, the transmitter sends

*N*

_{1}=⌊

*R*

*T*

_{1}/

*b*⌋ encoded packets using

*Γ*

^{ a }(

*ξ*) and

*N*

_{2}=⌊

*R*(

*T*−

*T*

_{1})/

*b*⌋ encoded packets using

*Γ*

^{ b }(

*ξ*). The received sequence y=[y

_{1}y

_{2}] is a concatenation of two sequences y

_{1}and y

_{2}of length

*N*

_{1}and

*N*

_{2}, respectively. It can be described by the vector $\mathit{n}={\mathbf{n}}_{\mathbf{1}}\mathbf{\u229e}{\mathbf{n}}_{\mathbf{2}}$, where the vectors n

_{1}and n

_{2}represent the description of y

_{1}and y

_{2}respectively (as defined earlier), and ⊞ is the component-wise sum of two equal-length vectors. Since n

_{1}and n

_{2}follow probability distributions ${P}_{{\Gamma}^{\left(a\right)}\left(x\right),\epsilon}\left({\mathit{n}}_{1}\right)$ and ${P}_{{\Gamma}^{\left(b\right)}\left(x\right),\epsilon}\left({\mathit{n}}_{2}\right)$ given by Equation (6), the layer decoding probabilities are obtained as in (5):

where *P*_{d,l}(*T*|n) follows from ${P}_{d,l}(N=\sum _{i=1}^{L}{n}_{i}|\mathit{n})$.

#### Example 2

We continue Example 1 by investigating the evolution of *P*_{d,1}(*T*) and *P*_{d,2}(*T*) over time *T* at the receiver if the transmitter applies *Γ*^{
a
}(*ξ*)=0.5*ξ* + 0.5*ξ*^{2}for the first *T*_{1}=125 ms, and then changes to *Γ*^{
b
}(*ξ*)=0.1*ξ* + 0.9*ξ*^{2}(the remaining parameters are the same as in the previous example). Figure 7 compares the case where *Γ*^{
a
}(*ξ*) changes to *Γ*^{
b
}(*ξ*) with the case where *Γ*^{
a
}(*ξ*) is used throughout the transmission. Figure illustrates that the *Γ*(*ξ*) change has no effect on *P*_{d,1}(*T*) as it comes too late (*P*_{d,1}(*T*_{1}=0.125)=1), whereas the improvement of *P*_{d,2}(*T*) for *T*>*T*_{1}is notable due to the increase in the second window selection probability from 0.5 to 0.9, which points out to possible adaptive (e.g., feedback-driven) updates of *Γ*(*ξ*) during transmission. In addition, Figure 8 demonstrates that the upper bound expressions for *P*_{d,l}(*T*) used in this article match very well the exact calculation of *P*_{d,l}(*T*) for a finite field size *GF*(^{28}) (markers) [18].

Finally, analytical results presented above can be easily extended to Gilbert–Elliot erasure channel model with two states: the good and the bad state. This follows from the fact that the probability distribution of the number *n*_{
e
} of erasures over *N*_{
T
}consecutive realizations of the channel (i.e., over time interval *T*) is known (e.g., see [26]). The remaining *N*_{
T
}−*n*_{
e
}non-erased channel realizations deliver encoded symbols from different EWs according to the multinomial distribution law (3).

### Distortion-optimal system design

In this section, we apply the single-link anaysis to analyze the multi-user video conferencing setup introduced in Section “System model”. Our goal is to formulate the system design problem that leads to the EW RLC code design providing distortion-optimal system performance. As a distortion measure, we use peak signal to noise ratio (PSNR) as a standard video quality metric following directly from the mean square error (MSE) distortion measure. We use the terms video quality and distortion interchangeably while refering to video quality (PSNR) measure.

We focus on a single message (GOF) exchange cycle among the system users. After the initial delay of *t*=*T*_{gof} needed for each user to acquire and compress *N*_{gof}frames of video (assuming negligible compression delay), the users start the upload phase. During the upload phase, the BS waits to receive enough encoded packets to recover the users’ messages or as many of their layers with sufficiently high probability. The upload phase duration *T*_{
ul
} is upper bounded by the GOF period duration *T*_{gof}as, after this period expires, users are supplied with a new set of compressed messages, which marks the beginning of the upload phase of the next message exchange cycle. From the set of recovered layers, the BS creates its own message x^{(BS)} which is broadcasted back to the users over the broadcast downlink channel during the broadcast phase of duration *T*_{
dl
}. To simplify the analysis, we assume the upload and the broadcast phase do not overlap, i.e., after the upload phase of duration *T*_{
ul
}, the users stop transmitting and start listening the BS for the following period of duration *T*_{
dl
}. This analysis provides guaranteed (lower-bound) performance for the overlapping phases case, as we discuss later.

We are interested in the system design that maximizes the total average received video quality at the user terminals after a given target system delay *T*=*T*_{gof} + *T*_{
ul
} + *T*_{
dl
}. Note that, as *T*_{gof}is constant and *T* is given in advance, it follows that the system design should optimally balance between the *T*_{
ul
} and *T*_{
dl
}(*T*_{
ul
} + *T*_{
dl
}=*T*−*T*_{gof}=const.) The time diagram of the system model, ignoring the propagation and data processing delays, is illustrated in Figure 8.

#### Upload phase

*N*

_{ u }parallel and independent single-link transmission processes, each characterized by different message/layer sizes (${K}^{\left(i\right)},\{{k}_{1}^{\left(i\right)},{k}_{2}^{\left(i\right)},\dots ,{k}_{L}^{\left(i\right)}\}$) and channel state pairs (

*R*

^{(i)},

*ε*

^{(i)}). Assuming that the user knows

^{d}(

*R*

^{(i)},

*ε*

^{(i)}) and that the value of

*T*

_{ ul }is fixed in advance by the BS, the set of layer decoding probabilities ${P}_{d,l}^{(i-\mathrm{BS})}\left({T}_{\mathrm{ul}}\right)$ of the

*i*-th user message at the BS can be calculated for any selected EW RLC parameter

*Γ*

^{(i)}(

*ξ*). In the following, we focus on a simple user upload strategy where the user applies standard RLC over the largest window

*l*such that the decoding probability ${P}_{d,l}^{(i-\mathrm{BS})}\left({T}_{\mathrm{ul}}\right)>{P}_{\text{th}}\sim 1$ (if such exists), where

*P*

_{th}is a (close to one) value of threshold probability selected in advance. More formally, the

*i*-th user will apply RLC only over the

*l*

^{(i)}-th window, where

*l*

^{(i)}is obtained as:

Note that applying RLC only over the *l*^{(i)}-th window is equivalent to the special case of applying UEP RLC with the window selection distribution ${\Gamma}^{\left(i\right)}\left(\xi \right)={\xi}^{{l}^{\left(i\right)}}$(i.e., the one which places probability one on the *l*^{(i)}-th window).

Overall, the set of *N*_{
u
}users will upload the subset of their layers, jointly described by vector $\mathit{l}=\{{l}^{\left(1\right)},{l}^{\left(2\right)},\dots ,{l}^{\left({N}_{u}\right)}\}$, within the upload phase of duration *T*_{
ul
}. The probability *P*_{th} can be selected so as to keep the overall probability ${P}_{d,\mathit{l}}^{\text{(BS)}}\left({T}_{\mathrm{ul}}\right)\ge {P}_{\text{th}}^{{N}_{u}}$ that the BS will recover the set of users’ layers described by l during the upload phase of duration *T*_{
ul
}sufficiently high.

#### Broadcast phase

During the broadcast phase, the BS applies the EW RLC code defined by *Γ*^{(BS)}(*ξ*) over the BS message x^{(BS)}(l), which is determined by the set of uploaded user layers l. From l, one can easily obtain the BS message size parameters (${K}^{\text{(BS)}},\{{k}_{1}^{\text{(BS)}},{k}_{2}^{\text{(BS)}},\dots ,{k}_{L}^{\text{(BS)}}\}$). The broadcast phase can be also analyzed using the single-link analysis applied on the parameters of the broadcast transmission, as seen by each of the system users. In other words, given *Γ*^{(BS)}(*ξ*), x^{(BS)}(l) and the BS-to-user-*i* (BS-*i*) transmission link parameters (*R*^{(BS)}${\left\{{\epsilon}^{\text{BS}-i}\right\}}_{1\le i\le {N}_{u}}$), the single-link analysis provides the set of layer decoding probabilities ${P}_{d,l}^{(\text{BS}-i)}\left({T}_{\mathrm{dl}}\right),1\le l\le L,$ describing the *i*-th user capability to recover the layers of the BS message x^{(BS)}(l) after the broadcast phase. Thus the broadcast phase reduces to the EW RLC design problem for multicast/broadcast setup that aims to simultanously satisfy heterogeneous user link conditions (${\left\{{\epsilon}^{\text{BS}-i}\right\}}_{1\le i\le {N}_{u}}$). This problem has been recently addressed for expanding window fountain (EWF) code design in video multicast setup [27], however, with the difference that in this article, instead of broadcasting a single stream, the BS simultaneously broadcasts a mixture of *N*_{
u
}user streams.

*N*

_{ u }−1 video streams originating at the remaining system users. The average received video quality

*D*

^{(i)}perceived by the

*i*-th user is obtained by averaging over the received video qualities of all

*N*

_{ u }−1 video streams:

*j*-th user video content as perceived by the

*i*-th user. ${D}_{j}^{\left(i\right)}$ can be obtained by combining the results of the upload and the broadcast phase analysis:

*l*(

*j*)≤

*L*layers of the

*j*-th user included in x

^{(BS)}(l). In the above expression, ${P}_{d,1:l}^{\text{(BS-i)}}\left({T}_{\mathrm{dl}}\right)$ is the probability that exactly the first

*l*layers of the BS message x

^{(BS)}(l) are recovered at the user

*i*:

*D*

_{j,1:l}is the average received PSNR of the

*j*-th user video content after recovery of the first

*l*layers (averaged over all the frames of the transmitted GOF). Finally, the average received PSNR, averaged across all the users of the multi-user video streaming session, is equal:

#### System parameters and design

From (11)–(14), by factoring out ${P}_{d,\mathit{l}}^{\text{(BS)}}\left({T}_{\mathrm{ul}}\right)$, we note that the distortion-optimized system design allows for independent design of the upload and the broadcast phase, given the duration *T*_{
ul
} and decoding probability threshold *P*_{th}are fixed. In other words, by fixing and informing the users on the values of *T*_{
ul
} and *P*_{th}, the set of layers l(*T*_{
ul
}) that can be reliably uploaded by users in the upload phase can be determined by corresponding users. Consequently, the BS message x^{(BS)}(l) and *T*_{
dl
}=*T*−*T*_{gof}−*T*_{
ul
} is also determined, which reduces the broadcast phase design to optimization of the EW RLC code parameter *Γ*^{(BS)}(*ξ*) such that the average received video quality *D* is maximized after the target system delay *T*.

Overall, for the distortion-optimized system design, the BS should optimally balance between the upload and the broadcast phase by selecting appropriate *T*_{
ul
}, appropriate threshold probability *P*_{th}, and optimally satisfy heterogeneous user requirements by selecting optimized *Γ*^{(BS)}(*ξ*). The optimal solution weights between the number of layers that could be uploaded to the BS with reliability *P*_{th} after *T*_{
ul
}and their quality of reconstruction at the set of heterogeneous users after *T*_{
dl
}.

## System optimization and results

### System optimization

*R*

^{(i)},

*ε*

^{ i }) and the broadcast channel conditions (

*R*

^{(BS)},${\left\{{\epsilon}^{\text{BS}-i}\right\}}_{1\le i\le {N}_{u}}$), the BS should provide the duration of the upload phase

*T*

_{ ul }, the threshold probability

*P*

_{th}and the EW RLC code design parameter

*Γ*

^{(BS)}(

*ξ*), such that the average received PSNR

*D*is maximized after the target system delay

*T*. In other words, the BS solves the following problem:

where $0\le {T}_{\mathrm{ul}}\le min\{{T}_{\text{gof}},T-{T}_{\text{gof}}\}$ and for *Γ*^{(BS)}(*ξ*) we have $0\le {\Gamma}_{l}^{\text{(BS)}}\le 1$, 1≤*l*≤*L* and $\sum _{l=1}^{L}{\Gamma}_{l}^{\text{(BS)}}=1$.

Assuming that the BS knows the channel conditions (e.g., by measurements and user reporting), it still needs to know the user message parameters (${K}^{\left(i\right)},\{{k}_{1}^{\left(i\right)},{k}_{2}^{\left(i\right)},\dots ,{k}_{L}^{\left(i\right)}\}$) to be able to perform the above optimization. Since these data cannot be obtained instantaneously at the BS, to avoid delays, we assume that the BS uses information available from recent GOF exchanges (e.g., the last GOF or the average over last several GOFs). This way, the BS is able to perform system optimization prior to the start of the upload phase and to broadcast the required parameters *T*_{
ul
} and *P*_{th} back to the users. The users then determine the number of layers *l*^{(i)}to upload to the BS and start the upload phase.

In general, the complexity of calculation of the set of layer decoding probabilities in Sections “Performance analysis of EW RLC” and 2 grows exponentially, due to an exponential number of terms in sums given in Equations (4) and (5), as *K* and *L* grows. However, in practical applications, the calculations are tractable due to the fact that *K*, *L* and *N*_{
u
} are usually small. For example, *K* is already bounded by GE decoding complexity and should not exceed *K*∼100; the number of scalable video layers is typically small, e.g., *L*<5; and for comfortable use of real-time multi-user video conferencing system, *N*_{
u
} should also be small, e.g., *N*_{
u
}<5. (note that *N*_{
u
}can be larger as long as each user displays only a small subset of active user streams). With the restrictions on *K*, *L* and *N*_{
u
}, the optimization problem can be evaluated at the BS side server with acceptable delay. Alternatively, the BS may run optimization less frequently then on a GOF-by-GOF basis, using accumulated averages of channel conditions and GOF message lenghts and periodically update the users and the BS transmitter with the new values of (*T*_{
ul
},*P*_{th}) and *Γ*^{(BS)}(*ξ*), respectively.

### Design examples

The multi-user video streaming system design proposed in this article is illustrated using numerical examples.

#### Example 3

In this example, we present a distortion-optimized UEP NC solution for the multi-user video conferencing system with *N*_{
u
}=4 users (Figure 4). We assume users perform real-time exchange of H.264/SVC compressed CIF *Stefan*, *Foreman*, *News* and *Coastguard* sequences (352×288, *N*_{fps}=30), each user sharing a different video sequence. Users encode the sequences into *L*=2 quality layers (BL and one EL) using the coarse-grain scalable (CGS) coding feature. The GOF size is set to very low value of *N*_{gof}=4 in order to reduce the start-up coding delay *T*_{gof}=4/30=133ms to the acceptable value. The parameters of the obtained layered source messages, after H.264/SVC compression and averaged over the frames of a sample GOF we use for optimization, are given in Table 1.

**Parameters of H.264/SVC sequences (**
L
**=2,**
N
_{
gof
}
**=4)**

Sequence/layers | Number of packets | Bit rate | Y-PSNR | |
---|---|---|---|---|

b= 3,200 [bits] | [kbps] | [dB] | ||

Stefan BL | ${k}_{1}^{\left(1\right)}$=20 | 476.68 | 28.44 | |

Stefan BL + EL |
| 1432.56 | 34.53 | |

Foreman BL | ${k}_{1}^{\left(2\right)}$=12 | 282.68 | 33.62 | |

Foreman BL + EL |
| 992.56 | 38.63 | |

News BL | ${k}_{1}^{\left(3\right)}$=16 | 379.68 | 33.47 | |

News BL + EL |
| 948.56 | 38.36 | |

Coast BL | ${k}_{1}^{\left(4\right)}$=20 | 474.68 | 30.32 | |

Coast BL + EL |
| 1522.56 | 34.69 |

For the uplink channel parameters, for each user, we select rate values around 2Mbps and erasure probabilities in the range *ε*=0.05−0.15: (*R*^{(1)}=1.5Mbps, *ε*^{1}=0.07), (*R*^{(2)}=1.8Mbps, *ε*^{2}=0.15), (*R*^{(3)}=2.3Mbps, *ε*^{3}=0.05) and (*R*^{(4)}=1.5Mbps, *ε*^{4}=0.12), to account for the variations in particular uplink conditions. The BS broadcast rate is set to *R*^{(BS)}=6Mbps and, for simplicity, the broadcast erasure rates towards each user are set equal to the erasure rates of the corresponding uplink channels, i.e., *ε* BS^{−i}=*ε*^{
i
}.

Given the system parameters above, we seek for the optimal system parameters (${T}_{\mathrm{ul}},{\Gamma}^{\text{(BS)}}\left(\xi \right)$) such that the average received PSNR *D* across all system users is maximized after the target delay *T*=250 ms. For simplicity, we fix *P*_{th}=0.99. The solution is illustrated in Figure 9 where average PSNR is plotted as a (two-dimensional) function of (${T}_{\mathrm{ul}},{\Gamma}_{1}^{\text{(BS)}}$). The system achieves the best average performance for *T*_{
ul
}=66ms where all users are able to share at least their BL, while user 3 is able to upload both layers to the BS, i.e., *l*=(1,1,2,1). For optimal *T*_{
ul
}=66ms, a separate (lower) graph shows the system performance for different EW RLC codes at the BS. Although the maximum of *D* is achieved over the range of first window selection probabilities ${\Gamma}_{1}^{\text{(BS)}}$, it is favourable to select as large ${\Gamma}_{1}^{\text{(BS)}}$ as possible to reduce the decoding delay for the first layer, while still maintaining high probability of recovery of the second layer of x^{(BS)} at all users.^{e}

Table 2 illustrates the average decoding delays for upload and broadcast phase transmisssions for the set of uploaded layers l=(1,1,2,1) and the solution point (${T}_{\mathrm{ul}},{\Gamma}_{1}^{\text{(BS)}}$)=(0.066,0). We can easily note that the sum of maximum delays experienced during the upload/broadcast phase closely satisfies the delay limits imposed by the system: ${\ud53c}_{2}^{(2-\mathrm{BS})}\left[T\right]+{\ud53c}_{2}^{(\mathrm{BS}-3)}\left[T\right]=108.78<117=T-{T}_{\text{gof}},$ where maximum upload delay is below selected upload duration ${\ud53c}_{2}^{(2-\mathrm{BS})}\left[T\right]=58.58<66={T}_{\mathrm{ul}}.$ This points out to the possibility of approximated system design using expected delay calculations.

#### Example 4

**Expected delays in Example 1**

Upload | ${\mathbf{\ud53c}}_{\mathbf{l}}\mathbf{\left[}\mathbf{T}\mathbf{\right]}$[ms] | Broadcast | ${\mathbf{\ud53c}}_{\mathbf{l}}\mathbf{\left[}\mathbf{T}\mathbf{\right]}$[ms] |
---|---|---|---|

transmission | transmission | ||

| ${\ud53c}_{1}\left[T\right]=45.80$ |
| ${\ud53c}_{2}\left[T\right]=41.29$ |

| ${\ud53c}_{1}\left[T\right]=25.09$ |
| ${\ud53c}_{2}\left[T\right]=50.20$ |

| ${\ud53c}_{2}\left[T\right]=58.58$ |
| ${\ud53c}_{2}\left[T\right]=29.20$ |

| ${\ud53c}_{1}\left[T\right]=48.48$ |
| ${\ud53c}_{2}\left[T\right]=43.36$ |

Additional flexibility in the system design is obtained if the users compress their video streams into larger number of layers. In this example, we observe the performance of the distortion-optimized system design for the same transmission parameters as in the previous example, but where the layered source message is compressed into *L*=4 quality layers (see Table 3 for the message parameters). The system performs optimally for *T*_{
ul
}=64ms where users are able to upload the set of layers l=(2,3,3,2), where *P*_{th}=0.99 is assumed fixed. The EW RLC broadcast phase parameters that achieve the optimal value *D*=34.88 are for the window selection distribution *Γ*^{(BS)}(*ξ*)=0.5*ξ* + 0.5*ξ*^{3}. We note that the gain obtained in average system distortion *D* is not large, due to the fact that compressing video into larger number of layers introduces small performance penalties, but the system flexibility reflected through better layer resolution provides more options for the system design process.

**Parameters of H.264/SVC sequences (**
L
**=4,**
N
_{
gof
}
**=4)**

Sequence/ | Number of packets | Bit rate [kbps] | Y-PSNR |
---|---|---|---|

layers | b=3,200 [bits] | [dB] | |

Stefan BL | ${k}_{1}^{\left(1\right)}$=15 | 356.22 | 25.89 |

Stefan BL + EL | ${K}_{2}^{\left(1\right)}$=24 | 567.46 | 28.15 |

Stefan BL + 2EL | ${K}_{3}^{\left(1\right)}$=40 | 951.18 | 30.65 |

Stefan BL + 3EL | ${K}_{4}^{\left(1\right)}$=64 | 1522.05 | 33.23 |

Foreman BL | ${k}_{1}^{\left(2\right)}$=7 | 162.68 | 29.45 |

Foreman BL + EL | ${K}_{2}^{\left(2\right)}$=13 | 309.87 | 32.3 |

Foreman BL + 2EL | ${K}_{3}^{\left(2\right)}$=24 | 569.93 | 34.52 |

Foreman BL + 3EL | ${K}_{4}^{\left(2\right)}$=48 | 1150.6 | 38.41 |

News BL | ${k}_{1}^{\left(3\right)}$=10 | 235.67 | 28.99 |

News BL + EL | ${K}_{2}^{\left(3\right)}$=19 | 448.66 | 32.55 |

News BL + 2EL | ${K}_{3}^{\left(3\right)}$=32 | 759.32 | 35.21 |

News BL + 3EL | ${K}_{4}^{\left(3\right)}$=50 | 1118.19 | 38.05 |

Coast BL | ${k}_{1}^{\left(4\right)}$=7 | 164.76 | 26.66 |

Coast BL + EL | ${K}_{2}^{\left(4\right)}$=16 | 378.52 | 28.95 |

Coast BL + 2EL | ${K}_{3}^{\left(4\right)}$=33 | 787.74 | 30.74 |

Coast BL + 3EL | ${K}_{4}^{\left(4\right)}$=60 | 1435.02 | 33.55 |

### Decode-and-broadcast versus buffer-and-broadcast

In the proposed system, we apply *decode-and-broadcast* operation in central multi-user video streaming point: the uploading streams are firstly decoded and then broadcasted within the non-overlapping broadcasting stage. Clearly, this approach simplifies applications of our analytical tools and enables simple and elegant system design, however, improvements are possible if the broadcast phase is initialized before the incoming user messages are completely recovered. A possible improvements are shortly commented below.

#### Layer-by-layer decode-and-broadcast

Let us assume the upload phase where a general UEP RLC is applied instead of the specific RLC case that encodes the largest window decodable within *T*_{
ul
}. In this case, the unequal recovery time (URT) property enables the central point to decode user layers sequentially over time, starting from the BL onwards [18]. Thus the central point is able to produce encoded packets as soon as the BL of the message *x*^{(BS)}is decoded and include additional layers as soon as they become available while updating the broadcast EW RLC code parameter *Γ*^{(BS)}(*ξ*) “on the fly,” as illustrated in Example 2. We note that this scenario introduces a trade-off between increase in the upload delays of higher layers and decrease in the beginning of the broadcast phase, which has to be balanced by the optimal solution. Unfortunately, the distortion optimized system design for this scenario would result in tedious optimization problem, which is why we leave it out of consideration. However, we note that expected delay analysis, similar to the one presented in Table 2, could be used as a simple approximation for the layer-by-layer decode-and-broadcast system design.

#### Buffer-and-broadcast

Finally, the simplest *buffer-and-broadcast* solution follows the standard NC approach in which all the received encoded packets are buffered, and new encoded packets produced by applying RLC over the buffer content [6, 7]. In the proposed UEP RLC case, the central point maintains *L* separate buffers, each collecting encoded packets of different users produced over one of the *L* windows. As soon as the upload phase starts filling the buffers, the broadcast phase starts producing encoded packets where each encoded packet results from applying RLC over one of the buffers selected independently by the appropriate window (i.e., buffer) selection distribution *Γ*^{(BS)}(*ξ*). Although very efficient, this solution lacks efficient analysis and distortion-based optimization tools. In addition, the problem of broadcasting linearly dependent encoded packets may become significant as the upload user rates decrease and broadcast rate increases (i.e., the rate of encoded packets generation exceeds the rate of incoming source data).

## Conclusions

Real-time sharing of video content among multiple users over wireless networks is underlying a number of existing and upcoming mobile multimedia services. For robust, flexible and efficient implementation of such services, this article considered a combination of scalable video coding and UEP NC. We have presented analytical tools capable of producing the values of key system design parameters that result in the distortion-optimal system performance. The applications of the proposed tools are illustrated through several examples involving a simple single access point multi-user scenario.

## Endnotes

^{a} For compactness, we denote *R*_{
l
}(n) as *R*_{
l
}.

^{b} Note that, due to the probabilistic encoding, the decoding performance is independent of the packet erasure process in the channel and depends only on the number *N* of received packets.

^{c} This model roughly captures the behaviour of adaptive modulation and coding (AMC) at the physical layer of cellular systems where, depending on the channel quality feedback available at the BS, different AMC modes could be approximated by different (*R*,*ε*) pairs. We assume slowly-varying channels where AMC mode changes are of the order of *T*_{gof}.

^{d} In state-of-the-art wireless cellular broadband systems such as LTE or WiMAX, channel quality indicators (CQI) are continuously fed back by user equipment to the BS.

^{e}For presentation purpose, Figure 9 is obtained by brute-force calculation over a grid of points in (${T}_{\mathrm{ul}},{\Gamma}_{1}^{\text{(BS)}}$) space. In general, (one of) the optimal solution(s) can be obtained by applying nonlinear programming methods such as sequential quadratic programming (e.g., using MATLAB).

## Declarations

### Acknowledgements

Dejan Vukobratovic was supported by a Marie Curie European Reintegration Grant FP7-PEOPLE-ERG-2010 ”MMCODESTREAM” within the 7th European Community Framework Programme.

## Authors’ Affiliations

## References

- Shiang H, van der Schaar M: Multi-user video streaming over multi-hop wireless networks: a distributed, cross-layer approach based on priority queuing.
*IEEE J. Sel. Areas Commun*2007, 25(4):770-785.View ArticleGoogle Scholar - Zhu X, Agrawal P, Pal Singh J, Alpcan T, Girod B: Rate allocation for multi-user video streaming over heterogenous access networks.
*ACM MULTIMEDIA ’07,*2007, 37-46. (Augsburg, Germany)Google Scholar - Ahlswede R, Cai N, yen Robert Li S, Yeung RW: Network information flow.
*IEEE Trans. Inf. Theory*2000, 46(4):1204-1216. 10.1109/18.850663View ArticleMathSciNetMATHGoogle Scholar - yen Robert Li S, Yeung RW, Cai N: Linear network coding.
*IEEE Trans. Inf. Theory*2003, 49(2):371-381.View ArticleMathSciNetMATHGoogle Scholar - Ho T, Medard M, Koetter R, Kargerm DR, Effros M, Shi J, Leong B: A random linear network coding approach to multicast.
*IEEE Trans. Inf. Theory*2006, 52(10):4413-4430.View ArticleMathSciNetMATHGoogle Scholar - Chou PA, Wu Y, Jain K: Practical network coding.
*Allerton 2003 Conference,*2003.Google Scholar - Lun DS, Medard M, Koetter R, Effros M: On coding for reliable communication over packet networks.
*Phys. Commun*2008, 1: 3-20. 10.1016/j.phycom.2008.01.006View ArticleGoogle Scholar - Gkantsidis C, Rodriguez P: Network coding for large scale content distribution.
*IEEE INFOCOM 2005*2005, 2235-2245. (Miami, FL, USA)Google Scholar - Chou P, Wu Y: Network coding for the internet and wireless networks.
*IEEE Signal Process. Mag*2007, 24(5):77-85.View ArticleGoogle Scholar - Magli E, Frossard P: An overview of network coding for multimedia streaming.
*IEEE ICME 2009*2009, 1488-1491. (New York, NY, USA)Google Scholar - Zhao J, Yang F, Zhang Q, Zhang Z, Zhang F: LION: layered overlay multicast with network coding.
*IEEE Trans. Multimed*2006, 8(5):1021-1032.MathSciNetView ArticleGoogle Scholar - Wang M, Li B: R
^{2}: random push with random network coding in live peer-to-peer streaming.*IEEE J. Sel Areas Commun*2007, 25(9):1655-1666.View ArticleGoogle Scholar - Seferoglu H, Markopoulou A: Video-aware opportunistic network coding over wireless networks.
*IEEE J. Sel. Areas Commun*2009, 27(5):713-728.View ArticleGoogle Scholar - Thomos N, Frossard P: Network coding of rateless video in streaming overlays.
*IEEE Trans. Circ. Syst. Video Techn*2010, 20(12):1834-1847.View ArticleGoogle Scholar - Wang H, Chang R, Kuo CCJ: Wireless multi-party video conferencing with network coding.
*IEEE ICME 2009*2009, 1492-1495. (New York, NY, USA)Google Scholar - Ponec M, Sengupta S, Chen M, Li J, Chou PA: Multi-rate peer-to-peer video conferencing: a distributed approach using scalable coding.
*IEEE ICME 2009,*2009, 1406-1413. (New York, NY, USA)Google Scholar - Zhang H, Zhou J, Chen Z, Li J: Minimizing delay for video conference with network coding.
*ACM SIGCOMM 2009*2009. (Barcelona, Spain)Google Scholar - Vukobratović D, Stanković V: Unequal error protection random linear coding strategies for erasure channels.
*IEEE Trans. Commun*2012, 60(5):1243-1252.View ArticleGoogle Scholar - Wu Y, Chou P, Kung SY: Information exchange in wireless networks with network coding and physical-layer broadcast.
*Proc. CISS 2005*2005. (Baltimore, MD, USA)Google Scholar - Katti S, Rahul H, Hu W, Katabi D, Medard M, Crowcroft J: XORs in the air: practical wireless network coding.
*ACM SIGCOMM 2006*2006, 243-254. (Pisa, Italy)Google Scholar - Horn U, Stuhlmuller K, Link M, Girod B: Robust internet video transmission based on scalable coding and unequal error protection.
*Signal Process. Image Commun*1999, 15: 77-94. 10.1016/S0923-5965(99)00025-9View ArticleGoogle Scholar - Stankovic V, Hamzaoui R: Live video streaming over packet networks and wireless channels.
*IEEE Packet Video 2003,*2003. (Nantes, France)Google Scholar - Maani E, Katsaggelos AK: Unequal error protection for robust streaming of scalable video over packet lossy networks.
*IEEE Trans. Circ. Syst. Video Tech*2010, 20(3):407-416.View ArticleGoogle Scholar - Shojania H, Li B: Random network coding on the iPhone: fact or fiction?
*ACM NOSSDAV 2009, USA,*2009, 37-42. (Williamsburg, VA, USA)Google Scholar - Vingelmann P, Fitzek F, Pedersen M, Heide J, Charaf H: Synchronized multimedia streaming on the iPhone platform with network coding.
*IEEE CCNC 2011, USA,*2011, 875-879. (Las Vegas, NV, USA)Google Scholar - Wilhelmsson L, Milstein LB: On the effect of imperfect interleaving for the Gilbert–Elliott channel.
*IEEE Trans. Commun*1999, 47(5):681-688. 10.1109/26.768760View ArticleGoogle Scholar - Vukobratovic D, Stankovic V, Sejdinovic D, Stankovic L, Xiong Z: Scalable video multicast using expanding window fountain codes.
*IEEE Trans. Multimed*2009, 11(6):1094-1104.View ArticleGoogle Scholar

## Copyright

This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.