Instantly Decodable Network Coding for Real-Time Scalable Video Broadcast over Wireless Networks

In this paper, we study a real-time scalable video broadcast over wireless networks in instantly decodable network coded (IDNC) systems. Such real-time scalable video has a hard deadline and imposes a decoding order on the video layers.We first derive the upper bound on the probability that the individual completion times of all receivers meet the deadline. Using this probability, we design two prioritized IDNC algorithms, namely the expanding window IDNC (EW-IDNC) algorithm and the non-overlapping window IDNC (NOW-IDNC) algorithm. These algorithms provide a high level of protection to the most important video layer before considering additional video layers in coding decisions. Moreover, in these algorithms, we select an appropriate packet combination over a given number of video layers so that these video layers are decoded by the maximum number of receivers before the deadline. We formulate this packet selection problem as a two-stage maximal clique selection problem over an IDNC graph. Simulation results over a real scalable video stream show that our proposed EW-IDNC and NOW-IDNC algorithms improve the received video quality compared to the existing IDNC algorithms.


I. INTRODUCTION
Network coding has shown great potential to improve throughput, delay and quality of services in wireless networks [1]- [13]. These merits of network coding make it an attractive candidate M. S. Karim, P. Sadeghi  for multimedia applications [10]- [12]. In this paper, we are interested in real-time scalable video applications [14], [15], which compress video frames in the form of one base layer and several enhancement layers. The base layer provides the basic video quality and the enhancement layers provide successive improved video qualities. Using such a scalable video stream, the sender adapts a video bit rate to the available network bandwidth by sending the base layer and as many enhancement layers as possible. Moreover, the real-time scalable video has two distinct characteristics. First, it has a hard deadline such that the video layers need to be decoded on-time to be usable at the applications. Second, the video layers exhibit a hierarchical order such that a video layer can be decoded only if this layer and all its lower layers are received. Even though scalable video can tolerate the loss of one or more enhancement layers, this adversely affects the video quality experienced by viewers. Therefore, it is desirable to design network coding schemes so that the received packets before the deadline contribute to decoding the maximum number of video layers.
Network coding schemes are often adopted and designed to be suitable for different applications. For example, the works in [16]- [19] adopted random linear network coding (RLNC) strategies for scalable video transmission and designed window based RLNC such that coded packets are formed across all packets in different numbers of video layers. In particular, the authors in [16] used a probabilistic approach for selecting coding windows and included the packets in the lower video layers into all coded packets to obtain high decoding probabilities for the lower layers. However, the authors in [18] considered a scalable video transmission with a hard deadline and used a deterministic approach for selecting coding windows over all transmissions before the deadline. Despite the best throughput performance of RLNC, in this paper, we adopt instantly decodable network coding (IDNC) strategies due to its several attractive properties [8], [9], [20]- [26]. IDNC aims to provide instant packet decodability upon successful packet reception at the receivers. This instant decodability property allows a progressive recovery of the video layers as the receivers decode more packets. Furthermore, the encoding process of IDNC is performed using simple XOR operations compared to more complicated operations over large Galois fields performed in RLNC. The XOR operations also reduce packet overhead compared to the coefficient reporting overhead required in RLNC. The decoding process of IDNC is performed using XOR operations, which is suitable for implementation in simple and cost-efficient receivers, compared to complex matrix inversion performed in RLNC.
Due to these attractive properties, the authors in [20]- [23] considered IDNC for wireless broadcast of a set of packets and aimed to service the maximum number of receivers with a new packet in each transmission. In [24], [25], the authors addressed the problem of minimizing the number of transmissions required for broadcasting a set of packets in IDNC systems and formulated the problem into a stochastic shortest path (SSP) framework. However, the works in [20]- [25] neither considered dependency between source packets to use at the applications nor considered explicit packet delivery deadline. Several other works in IDNC considered different importance of packets and prioritized packets differently in coding decisions. In particular, the authors in [8] adopted IDNC for video streaming and showed that their proposed IDNC schemes are asymptotically throughput optimal for the three-receivers system subject to sequential packet delivery deadline constraints. However, the work in [8] neither considered dependency between source packets as is present in the scalable video applications nor considered an arbitrary number of receivers. Another work in [11] considered a single layer video transmission and determined the importance of each video packet based on its contribution to the video quality. The selected IDNC packet in [11] maximized the video quality in the current transmission without taking into account the coding opportunities and the video quality over the successor transmissions before the deadline.
In the context of IDNC for scalable video with multiple layers, the most related works to ours are [27], [28]. In [27], the authors considered that a set of packets forming the base layer has high priority compared to an another set of packets forming the enhancement layers. However, the IDNC algorithms in [27] aimed to reduce the number of transmissions required for delivering all the packets instead of giving priority to reducing the number of transmissions required for delivering the high priority packets. The coding decisions in [27] also searched for the existence of a special IDNC packet that can simultaneously reduce the number of transmissions required for delivering the high priority packets and the number of transmissions required for delivering all the packets. On the other hand, the authors in [28] discussed the hierarchical order of video layers with motivating examples and proposed a heuristic packet selection algorithm. The IDNC algorithm in [28] aimed to balance between the number of transmissions required for delivering the base layer and the number of transmissions required for delivering all video layers. Both works in [27], [28] ignored the hard deadline and did not strictly prioritize to deliver the base layer packets before the deadline. However, for real-time scalable video transmission, addressing the hard deadline for the base layer packets is essential as all other packets depend on the base layer packets.
In this paper, inspired by real-time scalable video that has a hard deadline and decoding dependency between video layers, we are interested in designing an efficient IDNC framework that maximizes the minimum number of decoded video layers over all receivers before the deadline (i.e., improves fairness in terms of the minimum video quality across all receivers).
In such scenarios, by taking into account the deadline, IDNC schemes need to make coding decisions over the packets in the first video layer or the packets in all video layers. While the former guarantees the highest level of protection to the first video layer, the latter increases the possibility of decoding a large number of video layers before the deadline. In this context, our main contributions are summarized as follows.
• We derive the upper bound on the probability that the individual completion times of all receivers for a given number of video layers meet the deadline. Using this probability, we are able to approximately determine whether the broadcast of any given number of video layers can be completed before the deadline with a predefined probability.
• We design two prioritized IDNC algorithms for scalable video, namely the expanding window IDNC (EW-IDNC) algorithm and the non-overlapping window IDNC (NOW-IDNC) algorithm. EW-IDNC algorithm selects a packet combination over the first video layer and computes the resulting upper bound on the probability that the broadcast of that video layer can be completed before the deadline. Only when this probability meets a predefined high threshold, the algorithm considers additional video layers in coding decisions in order to increase the number of decoded video layers at the receivers.
• In EW-IDNC and NOW-IDNC algorithms, we select an appropriate packet combination over a given number of video layers that increases the possibility of decoding those video layers by the maximum number of receivers before the deadline. We formulate this problem as a two-stage maximal clique selection problem over an IDNC graph. However, the formulated maximal clique selection problem is NP-hard and even hard to approximate. Therefore, we exploit the properties of the problem formulation and design a computationally simple heuristic packet selection algorithm.
• We use a real scalable video stream to evaluate the performance of our proposed algorithms.
Simulation results show that our proposed EW-IDNC and NOW-IDNC algorithms increase the minimum number of decoded video layers over all receivers compared to the IDNC algorithms in [23], [28] and achieve a similar performance compared to the expanding window RLNC algorithm in [16], [18] while preserving the benefits of IDNC strategies.
The rest of this paper is organized as follows. The system model and IDNC graph are described in Section II. We illustrate the importance of appropriately choosing a coding window in Section III and draw several guidelines for prioritized IDNC algorithms in Section IV. Using these guidelines, we design two prioritized IDNC algorithms in Section V. We formulate the problem of finding an appropriate packet combination in Section VI and design a heuristic packet selection algorithm in Section VII. Simulation results are presented in Section VIII. Finally, Section IX concludes the paper.

A. Scalable Video Coding
We consider a system that employs the scalable video codec (SVC) extension to H.264/AVC video compression standard [14], [15]. A group of pictures (GOP) in scalable video has several video layers and the information bits of each video layer is divided into one or more packets.
The video layers exhibit a hierarchical order such that each video layer can only be decoded after successfully receiving all the packets of this layer and its lower layers. The first video layer (known as the base layer) encodes the lowest temporal, spatial, and quality levels of the original video and the successor video layers (known as the enhancement layers) encode the difference between the video layers of higher temporal, spatial, and quality levels and the base layer. With the increase in the number of decoded video layers, the video quality improves at the receivers.

B. System Model
We consider a wireless sender (e.g., a base station or a wireless access point) that wants to broadcast a set of N source packets forming a GOP, N = {P 1 , ..., P N }, to a set of M receivers, M = {R 1 , ..., R M }. 1 A network coding scheme is applied on the packets of a single GOP as soon as all the packets are ready, which implies that neither merging of GOPs nor buffering of packets in more than one GOP at the sender is allowed. This significant aspect arises from the 1 Throughout the paper, we use calligraphic letters to denote sets and their corresponding capital letters to denote the cardinalities of these sets (e.g., N = |N |). minimum delivery delay requirement in real-time video streaming. Time is slotted and the sender can transmit one packet per time slot t. There is a limit on the total number of allowable time slots Θ used to broadcast the N packets to the M receivers, as the deadline for the current GOP expires after Θ time slots. Therefore, at any time slot t ∈ [1, 2, ..., Θ], the sender can compute the number of remaining transmissions for the current GOP as, Q = Θ − t + 1.
In the scalable video broadcast system, the sender has L scalable video layers and each video layer consists of one or more packets. Let the set N = {P 1 1 , P 1 2 , ..., P 1 n 1 , ..., P L 1 , P L 2 , ..., P L n L } denote all the packets in the L video layers, with n ℓ being the number of packets in the ℓ-th video layer. In fact, N = L ℓ=1 n ℓ . Although the number of video layers in a GOP of a video stream is fixed, depending on the video content, n ℓ and N can have different values for different GOPs. We denote the set that contains all packets in the first ℓ video layers as N 1:ℓ and the cardinality of N 1:ℓ as N 1:ℓ .
The receivers are assumed to be heterogeneous (i.e., the channels between the sender and the receivers are not necessarily identical) and each transmitted packet is subject to an independent Bernoulli erasure at receiver R i with probability ǫ i . Each receiver listens to all transmitted packets and feeds back to the sender a positive or negative acknowledgement (ACK or NAK) for each received or lost packet. After each transmission, the sender stores the reception status of all packets at all receivers in an M × N state feedback matrix (SFM) F = [f i,j ], ∀R i ∈ M, P j ∈ N such that: (1) Example 1: An example of SFM with M = 2 receivers and N = 5 packets is given as follows: In this example, we assume that packets P 1 and P 2 belong to the first (i.e., base) layer, packets P 3 and P 4 belong to the second layer and packet P 5 belongs to the third layer. Therefore, the set containing all packets in the first two video layers is N 1:2 = {P 1 , P 2 , P 3 , P 4 }.  There are L windows for a GOP with L video layers as shown in Fig. 1. The SFM corresponding to the window ω ℓ over the first ℓ video layers is an M × N 1:ℓ matrix F 1:ℓ , which contains the first N 1:ℓ columns of SFM F.
Based on the SFM, the following two sets of packets can be attributed to each receiver R i at any given time slot t: • The Has set of receiver R i in the first ℓ video layers (H 1:ℓ i ) is defined as the set of packets that are decoded by receiver R i from the first ℓ video layers. In Example 1, the Has set of receiver R 2 in the first two video layers is H 1:2 2 = {P 1 , P 4 }. • The Wants set of receiver R i in the first ℓ video layers (W 1:ℓ i ) is defined as the set of packets that are missing at receiver R i from the first ℓ video layers. In other words, W 1:ℓ i = N 1:ℓ \ H 1:ℓ i . In Example 1, the Wants set of receiver R 2 in the first two video layers is Wants set in the first ℓ video layers (i.e., R i ∈ M 1:ℓ w ) belongs to one of the following three sets: • The critical set of receivers for the first ℓ video layers (C 1:ℓ ) is defined as the set of receivers with the number of missing packets in the first ℓ video layers being equal to the number of remaining Q transmissions (i.e., W 1:ℓ i = Q, ∀R i ∈ C 1:ℓ ).
• The affected set of receivers for the first ℓ video layers (A 1:ℓ ) is defined as the set of receivers with the number of missing packets in the first ℓ video layers being greater than 8 the number of remaining Q transmissions (i.e., W 1:ℓ i > Q, ∀R i ∈ A 1:ℓ ).
• The non-critical set of receivers for the first ℓ video layers (B 1:ℓ ) is defined as the set of receivers with the number of missing packets in the first ℓ video layers being less than the number of remaining Q transmissions (i.e., W 1:ℓ i < Q, ∀R i ∈ B 1:ℓ ).
In fact, C 1:ℓ ∪ A 1:ℓ ∪ B 1:ℓ = M 1:ℓ w . We denote the cardinalities of C 1:ℓ , A 1:ℓ and B 1:ℓ as C 1:ℓ , A 1:ℓ and B 1:ℓ , respectively. Definition 2: A transmitted packet is instantly decodable for receiver R i if it contains exactly one source packet from W 1:L i . Definition 3: Receiver R i is targeted by packet P j in a transmission when this receiver will immediately decode missing packet P j upon successfully receiving the transmitted packet.

C. IDNC Graph and Packet Generation
We define the representation of all feasible packet combinations that are instantly decodable by a subset of, or all receivers, in the form of a graph. As described in [21], [24], the IDNC graph G(V, E) is constructed by first inducing a vertex v ij ∈ V for each missing packet P j ∈ Two vertices v ij and v mn in G are connected (adjacent) by an edge e ij,mn ∈ E, when one of the following two conditions holds: Individual completion time of receiver R i for ℓ layers T 1:ℓ Individual completion times of all receivers for ℓ layers Individual completion times of all non-critical receivers for ℓ layers C 1:ℓ Critical set of receivers for the first ℓ layers A 1:ℓ Affected set of receivers for the first ℓ layers B 1:ℓ Non-critical set of receivers for the first ℓ layers Set of receivers having non-empty Wants sets in the first ℓ layers v ij A vertex in an IDNC graph induced by missing packet P j at receiver R i X (κ) Set of targeted receivers in maximal clique κ • C1: P j = P n , the two vertices are induced by the same missing packet P j of two different receivers R i and R m .
• C2: P j ∈ H 1:L m and P n ∈ H 1:L i , the requested packet of each vertex is in the Has set of the receiver of the other vertex.
Given this graph representation, the set of all feasible IDNC packets can be defined by the set of all maximal cliques in graph G. 2 The sender can generate an IDNC packet for a given transmission by XORing all the source packets identified by the vertices of a selected maximal clique (represented by κ) in graph G. Note that each receiver can have at most one vertex (i.e., one missing packet) in a maximal clique κ and the selection of a maximal clique κ is equivalent to the selection of a set of targeted receivers (represented by X (κ)). A summary of the main notations used in this paper is presented in Table I.

III. IMPORTANCE OF APPROPRIATELY CHOOSING A CODING WINDOW
In scalable video with multiple layers, the sender needs to choose a window of video layers and the corresponding SFM to select a packet combination in each transmission. In general, different windows lead to different packet combinations and result in different probabilities of completing the broadcast of different numbers of video layers before the deadline. To further illustrate, let us consider the following SFM with M = 2 receivers and N = 2 packets at time slot t: In this scenario, we assume that packet P 1 belongs to the first video layer and packet P 2 belongs to the second video layer. We further assume that there are two remaining transmissions before the deadline, i.e., Q = 2. Given two video layers, there are two windows such as ω 1 = {P 1 } and ω 2 = {P 1 , P 2 }. With these windows, the possible packet transmissions at time slot t are: • Case 1: Window ω 1 leads to packet P 1 transmission since it targets receiver R 2 and M 1: • Case 2: Window ω 2 leads to packet P 2 transmission since it targets receivers R 1 and R 2 and M 1:2 w = {R 1 , R 2 }. (Case 1:) With packet P 1 transmitted at time slot t, we can compute the probabilities of completing the broadcast of different numbers of video layers before the deadline as follows.
1) The probability of completing the first video layer broadcast before the deadline can be computed as, P[T 1: • (1 − ǫ 2 ) defines the packet reception probability at receiver R 2 at time slot t.
• ǫ 2 (1 − ǫ 2 ) defines the probability that packet P 1 is lost at receiver R 2 at time slot t and is received at receiver R 2 at time slot t + 1.

Remark 1: It can be stated that the missing packets of all receivers need to be attempted
at least once in order to have a possibility of delivering all the missing packets to all receivers.
2) Using Remark 1, the sender transmits packet P 2 at time slot t + 1. Consequently, the probability of completing both video layers' broadcast before the deadline can be computed . This is the probability that each missing packet is received from one transmission (i.e., one attempt).
A summary of probability expressions used throughout Case 1 can be found in Table II.
(Case 2:) With packet P 2 transmitted at time slot t, we can compute the probabilities of completing the broadcast of different numbers of video layers before the deadline as follows.
1) The sender transmits packet P 1 at time slot t + 1. Consequently, the probability of completing the first video layer broadcast before the deadline can be computed as, . This is the probability that packet P 1 is received at receiver R 2 at time slot t + 1.
2) Using Remark 1, the sender transmits either coded packet P 1 ⊕P 2 or packet P 1 at time slot t + 1. Consequently, the probability of completing both video layers' broadcast before the deadline can be computed as, P[T 1: The transmitted packet P 2 at time slot t can be lost at receiver R 1 with probability ǫ 1 and can be received at receiver R 2 with probability (1 − ǫ 2 ). With this loss and reception status, the sender transmits coded packet P 1 ⊕P 2 to target both receivers and the probability that both receivers receive the transmitted packet is represents packet P 1 transmission at time slot t + 1. This is the probability that each missing packet is received from one attempt.
A summary of probability expressions used throughout Case 2 can be found in Table III.
Using the results in Case 1 and Case 2, for given time slot t, we can conclude that: • Packet P 1 transmission resulting from window ω 1 is a better decision in terms of completing the first video layer broadcast since P[T 1:1 ≤ 2] is larger in Case 1.
• Packet P 2 transmission resulting from window ω 2 is a better decision in terms of completing both video layers broadcast since P[T 1:2 ≤ 2] is larger in Case 2.

IV. GUIDELINES FOR PRIORITIZED IDNC ALGORITHMS
In this section, we systematically draw several guidelines for the prioritized IDNC algorithms that can maximize the minimum number of decoded video layers over all receivers before the deadline.

A. Feasible Windows of Video Layers
With the assist of the following definitions, for a given SFM F at time slot t, we determine the video layers which can be included in a feasible window and can be considered in coding decisions. In this paper, we address the problem of maximizing the minimum number of decoded video layers over all receivers. Therefore, we define the largest feasible window as follows: Note that there is no affected receiver over the largest feasible window ω ℓ+µ (i.e., all receivers belong to critical and non-critical sets in the first ℓ + µ video layers) since an affected receiver will definitely not be able to decode all its missing packets within remaining Q transmissions.
An exception to considering no affected receiver in the largest feasible window is when it is the smallest feasible window, i.e., ω ℓ+µ = ω ℓ , in which case it is possible A 1:ℓ (t) = ∅.
In this example, we assume that packets P 1 and P 2 belong to the first video layer, packets P 3 and P 4 belong to the second video layer, packet P 5 belongs to the third video layer and packet P 6 belongs to the fourth video layer. We also assume that number of remaining transmissions Q = 3.
Note that the fourth video layer is not included in the largest feasible window since receiver R 1 has three missing packets in the first three layers, which is already equal to the number of remaining three transmissions (i.e., W 1:3 Fig. 2 shows the extracted SFMs from SFM in (4) corresponding to the feasible windows.

B. Probability that the Individual Completion Times Meet the Deadline
The works in [24], [25] showed that finding the optimal IDNC schedule for minimizing the and defined in (10)). Since this probability is computed separately for each receiver and ignores the interdependence of receivers' packet reception captured in the SFM, its computation is simple and does not suffer from the curse of dimensionality as in [24], [25].
To derive probabilityP (t+1) [T 1:ℓ ≤ Q − 1], we first consider a scenario with one sender and one receiver R i . Here, individual completion time of this receiver for the first ℓ layers can be Consequently, the probability that individual completion time T W 1:ℓ i of receiver R i is less than or equal to remaining Q transmissions can be expressed as: We now consider a scenario with one sender and multiple receivers in M 1:ℓ w . We assume that all receivers in M 1:ℓ w are targeted with a new packet in each transmission. This is an ideal scenario and defines a lower bound on individual completion time of each receiver. Consequently, we can compute an upper bound on the probability that individual completion time of each receiver meets the deadline. Although this ideal scenario is not likely to occur, especially in systems with large numbers of receivers and packets, we can still use this probability upper bound as a metric in designing our computationally simple IDNC algorithms. Having described the ideal scenario with multiple receivers, for a given feasible window ω ℓ at time slot t, we compute the upper bound on the probability that individual completion times of all receivers for the first ℓ video layers is less than or equal to remaining Q transmissions as: Due to the instant decodability constraint, it may not be possible to target all receivers in M 1:ℓ w with a new packet at time slot t. After selecting a packet combination over a given feasible window ω ℓ at time slot t, let X be the set of targeted receivers and M 1:ℓ w \ X be the set of ignored receivers. We can express the resulting upper bound on the probability that the individual completion times of all receivers for the first ℓ video layers, starting from the successor time slot t + 1, is less than or equal to the remaining Q − 1 transmissions as: • In the first product in expression (8) By taking expectation of packet reception and loss cases in the first product in (8), we can simplify expression (8) as: Note that a critical and ignored receiver R i ∈ {C 1:ℓ ∩ (M 1:ℓ w \ X )} cannot decode all missing packets in W 1:ℓ i in the remaining Q − 1 transmissions since W 1:ℓ i is equal to Q transmissions for a critical receiver. With this and an exceptional case of having affected receivers described in Section IV-A, we can set: In this paper, we use expression (10) as a metric in designing the computationally simple IDNC algorithms for real-time scalable video.

C. Design Criterion for Prioritized IDNC Algorithms
In Section III, we showed that some windows and subsequent packet transmissions increase In other words, the design criterion for the first ℓ video layers is satisfied when logical condition ≥ λ is true after selecting a packet combination at time slot t. Here, is computed using expression (10) and threshold λ is chosen in a deterministic manner according to the level of protection provided to each video layer.
In scalable video applications, each decoded layer contributes to the video quality and the layers are decoded following the hierarchical order. Therefore, the selected packet combination at time slot t requires to satisfy the design criterion following the decoding order of the video layers. In other words, the first priority is satisfying the design criterion for the first video layer (i.e.,P (t+1) [T 1:1 ≤ Q − 1] ≥ λ), the second priority is satisfying the design criterion for the first two video layers (i.e.,P (t+1) [T 1:2 ≤ Q − 1] ≥ λ) and so on. Having satisfied such a prioritized design criterion, the coding window can continue to expand over the successor video layers to increase the possibility of completing the broadcast of those video layers.

V. PRIORITIZED IDNC ALGORITHMS FOR SCALABLE VIDEO
In this section, using the guidelines drawn in Section IV, we design two prioritized IDNC algorithms that increase the probability of completing the broadcast of a large number of video layers before the deadline. These algorithms provide unequal levels of protection to the video layers and adopt prioritized IDNC strategies to meet the hard deadline for the most important video layer in each transmission.

A. Expanding Window Instantly Decodable Network Coding (EW-IDNC) Algorithm
Our proposed expanding window instantly decodable network coding (EW-IDNC) algorithm starts by selecting a packet combination over the smallest feasible window and iterates by selecting a new packet combination over each expanded feasible window while satisfying the design criterion for the video layers in each window. Moreover, in EW-IDNC algorithm, a packet combination (i.e., a maximal clique κ) over a given feasible window is selected following Section VI or Section VII.

At
Step 1 of Iteration 1, the EW-IDNC algorithm selects a maximal clique κ over the smallest feasible window ω ℓ . At Step 2 of Iteration 1, the algorithm computes the probabilitŷ P (t+1) [T 1:ℓ ≤ Q − 1] using expression (10). At Step 3 of Iteration 1, the algorithm performs one of the following two steps.
This is the case when the design criterion for the first ℓ video layers is not satisfied or the window is already the largest feasible window. At Step 1 of Iteration 2, the EW-IDNC algorithm selects a new maximal clique κ over the expanded feasible window ω ℓ+1 . At Step 2 of Iteration 2, the algorithm computes the probability • It proceeds to Iteration 3 and considers window ω ℓ+2 , ifP (t+1) [T 1:ℓ+1 ≤ Q − 1] ≥ λ and |ω ℓ+1 |< |ω ℓ+µ |. This is the case when the design criterion for the first ℓ + 1 video layers is satisfied and the window can be further expanded.
At Iteration 3, the algorithm performs the steps of Iteration 2. This iterative process is repeated until the algorithm reaches to the largest feasible window ω ℓ+µ or the design criterion for the video layers in a given feasible window is not satisfied. The proposed EW-IDNC algorithm is summarized in Algorithm 1.

B. Non-overlapping Window Instantly Decodable Network Coding (NOW-IDNC) Algorithm
Our proposed non-overlapping window instantly decodable network coding (NOW-IDNC) algorithm always selects a maximal clique κ over the smallest feasible window ω ℓ following Section VI or Section VII. This guarantees the highest level of protection to the most important video layer, which has not been decoded yet by all receivers. In fact, the video layers are broadcasted one after another following their decoding order in a non-overlapping manner.

VI. PACKET SELECTION PROBLEM OVER A GIVEN WINDOW
In this section, we address the problem of selecting a maximal clique κ over any given window ω ℓ that increases the possibility of decoding those ℓ video layers by the maximum number of receivers before the deadline. We first extract SFM F 1:ℓ corresponding to window ω ℓ and construct IDNC graph G 1:ℓ according to the extracted SFM F 1:ℓ . We then select a maximal clique κ * over graph G 1:ℓ in two stages. The packet selection problem can be summarized as follows.
• We partition IDNC graph G 1:ℓ into critical graph G 1:ℓ c and non-critical graph G 1:ℓ b . The critical graph G 1:ℓ c includes the vertices generated from the missing packets in the first ℓ video layers at the critical receivers in C 1:ℓ . Similarly, the non-critical graph G 1:ℓ b includes the vertices generated from the missing packets in the first ℓ video layers at the non-critical receivers in B 1:ℓ .
• We prioritize the critical receivers for the first ℓ video layers over the non-critical receivers for the first ℓ video layers since all the missing packets at the critical receivers cannot be delivered without targeting them in the current transmission (i.e., W 1:ℓ i = Q, ∀R i ∈ C 1:ℓ ).
• If there is one or more critical receivers (i.e., C 1:ℓ = ∅), in the first stage, we select κ * c to target a subset of, or if possible, all critical receivers. We define X c as the set of targeted critical receivers who have vertices in κ * c . • If there is one or more non-critical receivers (i.e., B 1:ℓ = ∅), in the second stage, we select κ * b to target a subset of, or if possible, all non-critical receivers that do not violate the instant decodability constraint for the targeted critical receivers in κ * c . We define X b as the set of targeted non-critical receivers who have vertices in κ * b . 20

A. Maximal Clique Selection Problem over Critical Graph
With maximal clique κ * c selection, each critical receiver in C 1:ℓ (t) experiences one of the following two events at time slot t: • R i ∈ X c , the targeted critical receiver can still receive W 1:ℓ i missing packets in the exact Q = W 1:ℓ i transmissions.
• R i ∈ C 1:ℓ \ X c , the ignored critical receiver cannot receive W 1:ℓ i missing packets in the remaining Q − 1 transmissions and becomes an affected receiver at time slot t + 1.
Let A 1:ℓ (t + 1) be the set of affected receivers for the first ℓ video layers at time slot t + 1 after κ * c transmission at time slot t. The critical receivers that are not targeted at time slot t will become the new affected receivers, and the critical receivers that are targeted at time slot t can also become the new affected receivers if they experience an erasure in this transmission.
Consequently, we can express the expected increase in the number of affected receivers from time slot t to time slot t + 1 after selecting κ * c as: We now formulate the problem of minimizing the expected increase in the number of affected receivers for the first ℓ video layers from time slot t to time slot t + 1 as a critical maximal clique selection problem over critical graph G 1:ℓ c such as: = arg min In other words, the problem of minimizing the expected increase in the number of affected receivers is equivalent to finding all the maximal cliques in the critical IDNC graph, and selecting the maximal clique among them that results in the minimum expected increase in the number of affected receivers.

B. Maximal Clique Selection Problem over Non-critical Graph
Once maximal clique κ * c is selected among the critical receivers in C 1:ℓ (t), there may exist vertices belonging to the non-critical receivers in non-critical graph G 1:ℓ b that can form even a bigger maximal clique. In fact, if the selected new vertices are connected to all vertices in κ * c , the corresponding non-critical receivers are targeted without affecting IDNC constraint for the targeted critical receivers in κ * c . Therefore, we first extract non-critical subgraph that are adjacent to all the vertices in κ * c and then select κ * b over subgraph . With these considerations, we aim to maximize the upper bound on the probability that individual completion times of all non-critical receivers for the first ℓ video layers, starting from the successor time slot t + 1, is less than or equal to the remaining Q − 1 transmissions . We formulate this problem as a non-critical maximal clique selection problem over graph G 1:ℓ b (κ * c ) such as: By maximizing probabilityP (t+1) [T 1:ℓ B ≤ Q−1] upon selecting a maximal clique κ b , the sender increases the probability of transmitting all packets in the first ℓ video layers to all non-critical receivers in B 1:ℓ (t) before the deadline. Using similar arguments for non-critical receivers as in expression (9), we can define expression (13) as: In other words, the problem of maximizing probabilityP (t+1) [T 1:ℓ B ≤ Q − 1] for all non-critical receivers is equivalent to finding all the maximal cliques in the non-critical subgraph G 1:ℓ b (κ * c ), and selecting the maximal clique among them that results in the maximum probabilityP (t+1) [T 1:ℓ B ≤ Q − 1].

Remark 3:
The final served maximal clique κ * over a given window ω ℓ is the union of two maximal cliques κ * c and κ * b (i.e., κ * = {κ * c ∪ κ * b }). It is well known that an V -vertex graph has O(3 V /3 ) maximal cliques and finding a maximal clique among them is NP-hard [29]. Therefore, solving the formulated packet selection problem quickly leads to high computational complexity even for systems with moderate numbers of receivers and packets (V = O(MN)). To reduce the computational complexity, it is conventional to design an approximation algorithm. However, the problem is even hard to approximate since there is no O(V 1−δ ) approximation for the best maximal clique among O(3 V /3 ) maximal cliques for any fixed δ > 0 [30].

VII. HEURISTIC PACKET SELECTION ALGORITHM OVER A GIVEN WINDOW
Due to the high computational complexity of the formulated packet selection problem in Section VI, we now design a low-complexity heuristic algorithm following the problem formulations in (12) and (14). This heuristic algorithm selects maximal cliques κ c and κ b based on a greedy vertex search over IDNC graphs G 1:ℓ c and G 1:ℓ b (κ c ), respectively. 4 • If there is one or more critical receivers (i.e., C 1:ℓ (t) = ∅), in the first stage, the algorithm selects maximal clique κ c to reduce the number of newly affected receivers for the first ℓ video layers after this transmission.

A. Greedy Maximal Clique Selection over Critical Graph
To select critical maximal clique κ c , the proposed algorithm starts by finding a lower bound on the potential new affected receivers, for the first ℓ video layers from time slot t to time slot t + 1, that may result from selecting each vertex from critical IDNC graph G 1:ℓ c . At Step 1, the algorithm selects vertex v ij from graph G 1:ℓ c and adds it to κ c . Consequently, the lower bound on the expected number of new affected receivers for the first ℓ video layers after this transmission that may result from selecting this vertex can be expressed as: Here, A 1:ℓ(1) (t + 1) represents the number of affected receivers for the first ℓ video layers at time slot t + 1 after transmitting κ c selected at Step 1 and M is the set of critical receivers that have at least one vertex adjacent to vertex v ij in G 1:ℓ c . Once A 1:ℓ(1) (t + 1) − A 1:ℓ (t) is calculated for all vertices in G 1:ℓ c , the algorithm chooses vertex v * ij with the minimum lower bound on the expected number of new affected receivers as: After adding vertex v * ij to κ c (i.e., κ c = {v * ij }), the algorithm extracts the subgraph G 1:ℓ c (κ c ) of vertices in G 1:ℓ c that are adjacent to all the vertices in κ c . At Step 2, the algorithm selects another vertex v mn from subgraph G 1:ℓ c (κ c ) and adds it to κ c . Consequently, the new lower bound on the expected number of new affected receivers can be expressed as: Since (R m ∪ M After adding new vertex v * mn to κ c (i.e., κ c = {κ c , v * mn }), the algorithm repeats the vertex search process until no further vertex in G 1:ℓ c is adjacent to all the vertices in κ c .

B. Greedy Maximal Clique Selection over Non-critical Graph
To select non-critical maximal clique κ b , the proposed algorithm extracts the non-critical IDNC that are adjacent to all the vertices in κ c . This algorithm starts by finding the maximum probabilityP (t+1) [T 1:ℓ B ≤ Q − 1] that may result from selecting each vertex from subgraph G 1:ℓ b (κ c ). At Step 1, the algorithm selects vertex v ij from G 1:ℓ b (κ c ) and adds it to κ b . Consequently, the probabilityP (t+1),(1) [T 1:ℓ B ≤ Q − 1] that may result from selecting this vertex at Step 1 can be computed as: Here, M is the set of non-critical receivers that have at least one vertex adjacent to vertex ij with the maximum probability as: After adding vertex v * ij to κ b (i.e., κ b = {v * ij }), the algorithm extracts the subgraph G 1:ℓ b (κ c ∪ κ b ) of vertices in G 1:ℓ b (κ c ) that are adjacent to all the vertices in (κ c ∪ κ b ). At Step 2, the algorithm selects another vertex v mn from subgraph G 1:ℓ b (κ c ∪ κ b ) and adds it to κ b . Note that the new set of potentially targeted non-critical receivers after Step 2 is Consequently, the new probabilityP (t+1), (2) [T 1:ℓ B ≤ Q − 1] due to the stepwise reduction in the number of targeted non-critical receivers can be computed as: Similar to Step 1, once probabilityP (t+1), (2) [T 1:ℓ B ≤ Q − 1] is calculated for all vertices in the Algorithm 2: Heuristic Packet Selection Algorithm over a Given Window Extract SFM F 1:ℓ corresponding to a given window ω ℓ ; Construct G 1:ℓ (V, E) according to the extracted SFM F 1:ℓ ; Partition G 1:ℓ into G 1:ℓ c and G 1:ℓ b according to the receivers in C 1:ℓ and B 1:ℓ , repsectivley; Initialize κ c = ∅ and κ b = ∅; while G 1:ℓ c = ∅ do Compute A 1:ℓ (t + 1) − A 1:ℓ (t), ∀v ij ∈ G 1:ℓ c (κ c ) using (15) or (17); (19) or (21); , the algorithm chooses vertex v * mn with the maximum probability as: v * mn = arg max

VIII. SIMULATION RESULTS OVER A REAL VIDEO STREAM
In this section, we first discuss the scalable video test stream used in the simulation and then present the performances of different algorithms for that video stream.

A. Scalable Video Test Stream
We now describe the H.264/SVC video test stream used in this paper. We consider a standard video stream, Soccer [31]. This stream is in common intermediate format (CIF, i.e., 352 × 288) and has 300 frames with 30 frames per second. We encode the stream using the JSVM 9.19.14 version of H.264/SVC codec [15], [32] while considering the GOP size of 8 frames and temporal scalability of SVC. As a result, there are 38 GOPs for the test stream. Each GOP consists of a sequence of I, P and B frames that are encoded into four video layers as shown in Fig. 3.
The frames belonging to the same video layer are represented by the identical shade and the more important video layers are represented by the darker shades. In fact, the GOP in Fig. 3 is a closed GOP, in which the decoding of the frames inside the GOP is independent of frames outside the GOP [18]. Based on the figure, we can see that a receiver can decode 1, 2, 4 or 8 frames upon receiving first 1, 2, 3 or 4 video layers, respectively. Therefore, nominal temporal resolution of 3.75, 7.5, 15 or 30 frames per second is experienced by a viewer depending on the number of decoded video layers.
To assign the information bits to packets, we consider the maximum transmission unit (MTU) of 1500 bytes as the size of a packet. We use 100 bytes for header information and remaining 1400 bytes for video data. The average number of packets in the first, second, third and fourth video layers over 38 GOPs are 8.35, 3.11, 3.29 and 3.43, respectively. For a GOP of interest, given that the number of frames per GOP is 8, the video frame rate is 30 frames per second, the transmission rate is α bit per second and a packet length is 1500 × 8 bits, the allowable number of transmissions Θ for a GOP is fixed. We can conclude that Θ = 8α 1500×8×30 .

B. Simulation Results
We present the simulation results comparing the performance of our proposed EW-IDNC and NOW-IDNC algorithms to the following algorithms.
• Expanding window RLNC (EW-RLNC) algorithm [16], [18] that uses RLNC strategies to encode the packets in different windows while taking into account the decoding order of both algorithms guarantee a high probability of completing the broadcast of a lower video layer (using threshold λ) before expanding the window over the successor video layers.
• Our proposed NOW-IDNC algorithm achieves a similar performance compared to EW-IDNC and EW-RLNC algorithms in terms of the minimum decoded video layers. However, the NOW-IDNC algorithm performs poorly in terms of the mean decoded video layers due to always selecting a packet combination over a single video layer.
• As expected, Max-Clique and IPE algorithms perform poorly compared to our proposed EW-IDNC and NOW-IDNC algorithms in terms of the minimum decoded video layers.
Both Max-Clique and IPE algorithms make coding decisions across all video layers and thus, do not address the hard deadline for the most important video layer. As a result, several receivers may receive packets from the higher video layers, which cannot be used for decoding those video layers if a packet in a lower video layer is missing after the deadline. percentage of receivers that successfully decode one, two, three and four video layers before the deadline. From this histogram, we can see that most of the receivers decode three or four video layers out of four video layers in a GOP. Moreover, the percentage of receivers that decode the first four video layers in EW-RLNC algorithm is slightly higher compared to that in EW-IDNC algorithm. This better performance of EW-RLNC algorithm comes at the expense of higher packet overhead, higher encoding and decoding complexities as discussed in Section I.

IX. CONCLUSION
In this paper, we developed an efficient, yet computationally simple, IDNC framework for realtime scalable video broadcast over wireless networks. In particular, we derived an upper bound on the probability that the individual completion times of all receivers meet the deadline. Using this probability with other guidelines, we designed EW-IDNC and NOW-IDNC algorithms that provide a high level of protection to the most important video layer before considering additional video layers in coding decisions. We used a real scalable video stream in the simulation and showed that our proposed IDNC algorithms improve the received video quality compared to the existing IDNC algorithms and achieve a similar performance compared to the EW-RLNC algorithm. Future research direction is to extend the proposed IDNC framework to cooperative systems, where the receivers cooperate with each other to recover their missing packets [33]. In general, the short-range channels between the receivers are better compared to the long-range channels between the base station to the receivers, which can be beneficial for real-time video streams with hard deadlines.

APPENDIX A EXPANDING WINDOW RANDOM LINEAR NETWORK CODING
We follow the work in [18] and consider a deterministic approach, where the number of coded packets from each window is explicitly determined at the beginning of the period of Θ transmissions. The sender broadcasts these coded packets in Θ transmissions without receiving any feedback. Let us assume that θ ℓ coded packets are generated (and thus transmitted) from the packets in the ℓ-th window ω ℓ . Then Σ L ℓ=1 θ ℓ = Θ and z = [θ 1 , θ 2 , ..., θ L ] is an EW-RLNC transmission policy. Given a fixed number of allowable transmissions Θ, all possible transmission policies can be defined as all combinations of the number of coded packets from each window. Now, we describe the process of selecting a transmission policy as follows.
We use n = [n 1 , n 2 , ..., n L ] to denote the number of packets from different layers in a GOP. For a given transmission policy z, we denote the probability that receiver R i with erasure probability ǫ i can decode the packets of layer ℓ (and all the packets of its lower layers) by P ℓ i (n, z). This probability can be computed using expression (1) in [18]. Now we extend this probability to M receivers and compute the probability that M receivers can decode the packets of layer ℓ (and all the packets of its lower layers) as follows: Given transmission policy z, the probability in (23) is computed for each of L video layers. Furthermore, we consider all possible transmission policies and compute probability P ℓ (n, z), ∀ℓ ∈ [1, ..., L], for each transmission policy. Finally, we select the transmission policy z among all transmission policies that satisfies condition P ℓ (n, z) ≥ λ for the largest number of ℓ successive video layers (i.e., satisfies condition for the largest ℓ-th video layer and of course all its lower layers). Here, condition P ℓ (n, z) ≥ λ is adopted following the same approach as in our proposed EW-IDNC algorithm. The details of decoding a video layer based on the number of received packets from different windows can be found in [18].