6
Band Codes: Controlled Complexity Network Coding for Peer-to-Peer Video Streaming Attilio Fiandrotti, Valerio Bioglio, Enrico Magli Dipartimento di Elettronica e Telecomunicazioni Politecnico di Torino Torino, Italy attilio.fi[email protected], [email protected], [email protected] Marco Grangetto, Rossano Gaeta Dipartimento di Informatica Universita di Torino Torino, Italy [email protected], [email protected] Abstract—We present Band Codes (BC), a novel class of rateless codes that makes possible to control the computational complexity of Network Coding (NC). In a NC scenario based on rateless codes, the recombinations at the nodes alter the packet degree distribution selected at the source and increase the computational complexity of the packet decoding process. Unlike other classes of rateless codes, BC preserve the degree distribution of the encoded packets through the recombinations at the nodes. Furthermore, BC enable to control the decoding complexity of each network node independently from the rest of the network. We evaluate BC in a P2P scenario using a purposely designed random-push protocol for live video streaming. The experiments show that BC achieve high encoding efficiency, enable nodes with different computational capabilities to coexist within the same network and reduce the processor load on a real mobile device by nearly 50%. Keywords-Network Coding; Computational Complexity; P2P I. I NTRODUCTION Network coding is spawning much interest among multi- media researchers for it enables simple yet efficient designs for the distribution of video contents to large scales of users. The distinctive feature of network coding is that the inter- mediate nodes of the network output linear combinations of received packets rather than just forwarding them. Once a node has collected enough linearly independent packets, it solves a system of linear equations and recovers the original message [1]. Network coding finds an interesting application in peer-to-peer video streaming, as its properties enable lightweight peer coordination and packet scheduling schemes. For example, Wang and Li showed that network coding enables high throughput and reduced prebuffering in P2P video streaming [2]. The advantages of network coding come however at the price of additional computational complexity, mainly due to the packet decoding process, which turns into an issue when power-constrained applications are considered. NC was in fact devised based on algebraic operations over the finite fields GF(2 8 ), which yields to very complex multiplications from the computational and thus energetic perspective. An experimental investigation with mobile phones [3] demon- strated that the computational complexity of network coding causes throughput bottlenecks with respect to the bandwidth achievable by the wireless protocol. The study also con- firmed that network coding increases the average energy consumption of the device, hence shortening the battery life. It was recently proposed [4] to performed NC on GF(2) with rateless codes, which entail XOR operations only. The complexity problem has been tackled before for erasure correction codes, yielding to classes of rateless codes such as Luby Transform (LT) [5]. Such codes achieve low de- coding complexity by appropriately selecting the packet degree distribution at the source, i.e. the probability that the encoder creates a packet combining a given number of data blocks. However, in the considered network coding scenario, the packet recombinations at the nodes alter the degree distribution selected at the source, which grows at every recombination and therefore low decoding complexity cannot be guaranteed any longer. Puducheri [6] explored NC with LT codes and proposed a recombination strategy that preserves the degree distribution of LT codes. However, such strategy can be applied just to a specific type of network topology and not to arbitrary topologies. In this paper we propose a comprehensive framework to control the decoding complexity of network coding through the following contributions. First, we introduce Band Codes (BC), a class of rateless codes that preserves the packet degree distribution through the recombinations at the nodes. Second, we design a packet recombination algorithm that enables to control the decoding complexity on a per-node basis according to the specific requirements of each network node. Third, we design a P2P protocol based on BC which enables us to evaluate the actual decoding complexity and encoding efficiency of BC in a realistic network and on a real mobile device. Fourth, we design a policy that increases the battery duration of mobile devices in a heterogeneous P2P network where nodes with both high and low computational complexity coexist. II. NETWORK CODING WITH RATELESS CODES We consider a network scenario where one source node distributes a media content to multiple cooperating receivers. 2012 IEEE International Conference on Multimedia and Expo 978-0-7695-4711-4/12 $26.00 © 2012 IEEE DOI 10.1109/ICME.2012.84 194

[IEEE 2012 IEEE International Conference on Multimedia and Expo (ICME) - Melbourne, Australia (2012.07.9-2012.07.13)] 2012 IEEE International Conference on Multimedia and Expo - Band

  • Upload
    rossano

  • View
    217

  • Download
    4

Embed Size (px)

Citation preview

Band Codes: Controlled Complexity Network Coding

for Peer-to-Peer Video Streaming

Attilio Fiandrotti, Valerio Bioglio, Enrico Magli

Dipartimento di Elettronica e Telecomunicazioni

Politecnico di Torino

Torino, Italy

[email protected], [email protected], [email protected]

Marco Grangetto, Rossano Gaeta

Dipartimento di Informatica

Universita di Torino

Torino, Italy

[email protected], [email protected]

Abstract—We present Band Codes (BC), a novel class ofrateless codes that makes possible to control the computationalcomplexity of Network Coding (NC). In a NC scenario basedon rateless codes, the recombinations at the nodes alter thepacket degree distribution selected at the source and increasethe computational complexity of the packet decoding process.Unlike other classes of rateless codes, BC preserve the degreedistribution of the encoded packets through the recombinationsat the nodes. Furthermore, BC enable to control the decodingcomplexity of each network node independently from therest of the network. We evaluate BC in a P2P scenariousing a purposely designed random-push protocol for livevideo streaming. The experiments show that BC achieve highencoding efficiency, enable nodes with different computationalcapabilities to coexist within the same network and reduce theprocessor load on a real mobile device by nearly 50%.

Keywords-Network Coding; Computational Complexity; P2P

I. INTRODUCTION

Network coding is spawning much interest among multi-

media researchers for it enables simple yet efficient designs

for the distribution of video contents to large scales of users.

The distinctive feature of network coding is that the inter-

mediate nodes of the network output linear combinations

of received packets rather than just forwarding them. Once

a node has collected enough linearly independent packets,

it solves a system of linear equations and recovers the

original message [1]. Network coding finds an interesting

application in peer-to-peer video streaming, as its properties

enable lightweight peer coordination and packet scheduling

schemes. For example, Wang and Li showed that network

coding enables high throughput and reduced prebuffering in

P2P video streaming [2].

The advantages of network coding come however at the

price of additional computational complexity, mainly due to

the packet decoding process, which turns into an issue when

power-constrained applications are considered. NC was in

fact devised based on algebraic operations over the finite

fields GF(28), which yields to very complex multiplications

from the computational and thus energetic perspective. An

experimental investigation with mobile phones [3] demon-

strated that the computational complexity of network coding

causes throughput bottlenecks with respect to the bandwidth

achievable by the wireless protocol. The study also con-

firmed that network coding increases the average energy

consumption of the device, hence shortening the battery life.

It was recently proposed [4] to performed NC on GF(2)

with rateless codes, which entail XOR operations only. The

complexity problem has been tackled before for erasure

correction codes, yielding to classes of rateless codes such

as Luby Transform (LT) [5]. Such codes achieve low de-

coding complexity by appropriately selecting the packet

degree distribution at the source, i.e. the probability that

the encoder creates a packet combining a given number

of data blocks. However, in the considered network coding

scenario, the packet recombinations at the nodes alter the

degree distribution selected at the source, which grows at

every recombination and therefore low decoding complexity

cannot be guaranteed any longer. Puducheri [6] explored NC

with LT codes and proposed a recombination strategy that

preserves the degree distribution of LT codes. However, such

strategy can be applied just to a specific type of network

topology and not to arbitrary topologies.

In this paper we propose a comprehensive framework to

control the decoding complexity of network coding through

the following contributions. First, we introduce Band Codes

(BC), a class of rateless codes that preserves the packet

degree distribution through the recombinations at the nodes.

Second, we design a packet recombination algorithm that

enables to control the decoding complexity on a per-node

basis according to the specific requirements of each network

node. Third, we design a P2P protocol based on BC which

enables us to evaluate the actual decoding complexity and

encoding efficiency of BC in a realistic network and on a real

mobile device. Fourth, we design a policy that increases the

battery duration of mobile devices in a heterogeneous P2P

network where nodes with both high and low computational

complexity coexist.

II. NETWORK CODING WITH RATELESS CODES

We consider a network scenario where one source node

distributes a media content to multiple cooperating receivers.

2012 IEEE International Conference on Multimedia and Expo

978-0-7695-4711-4/12 $26.00 © 2012 IEEE

DOI 10.1109/ICME.2012.84

194

The source node subdivides the content in chunks of data

called generations. Without loss of generality, we consider

the case of a message composed by one generation only.

Each generation is a sequence (M0, ...,MN−1) of N data

blocks of identical size Bs bits, where N is called generation

size. Each time the source transmits a packet, a subset

of d blocks out of the N that compose the generation

is selected. The figure d is called packet degree and is

randomly drawn from some distribution function Ω0. We

consider coding operations on the Galois field GF (2) and

we denote as encoding vector the array of binary values

g = (g0, ..., gN−1) which has d non-zero elements. The

source linearly combines the selected blocks and produces

the encoded block X =∑N−1

i=0giMi, where the sum

operator is the bit-wise XOR. The source finally transmits

packet P (g,X), which contains the encoded payload X plus

the corresponding encoding vector g as header [7].

The other nodes of the network encompass the functions of

decoder and recoder and operate as follows. The decoder

processes the received packets and, once N linearly inde-

pendent combinations are received, solves the corresponding

system of linear equations and recovers the original message

or sequence. Because not all the packets are guaranteed to

be linearly independent, it is usually necessary to receive

more than N packets to rebuild the generation. The recoder

recombines the received packets and produces new packets

that are transmitted to the other nodes. Packet recombina-

tion increases the likelihood that the transmitted packets is

linearly independent from all the packets the recipient has

already received and helps it to decode the generation, in

which case the packet is said to be innovative. The packet

recombination process is similar to the encoding process

that is done at the source node, except that network nodes

recombine the linear combinations available in their input

buffers rather than the original message blocks.

Recombinations at the nodes alter the degree distribution

selected at the source and bloating the decoding complexity

as explained in the following. Given the degree distribution

Ω0 selected at the source, we define as Ωj the degree

distribution of the packets in the network after j recom-

binations. It can be shown that, after an infinite number of

recombinations, the expected packet degree is E(Ω∞) = N2

.

III. BAND CODES: ENCODING AND RECOMBINING

A. Encoding at the Source Node

Figure 1: Illustration of the encoding window concept.

The process for encoding a packet at the source node is

as follows. For each packet P to transmit, the source selects

the blocks (M0, ...,MN−1) to combine within an encoding

window of size 1 ≤W ≤ N where W is given. An encoding

window of size W is a sequence of blocks (Mf , ...,Ml)where 0 ≤ f, l ≤ N − 1 and f ≤ l and l − f + 1 = W .

We define fi and li the leading edge and the trailing edge

of the i-th encoding window. Figure 1 shows a generation

of size N = 8 and the N −W + 1 = 6 possible encoding

windows of size W = 3. The encoder selects one out of the

N −W +1 available encoding windows, randomly drawing

the window leading edge f ∈ [0, N −W ] according to a

discrete distribution function called Horn Distribution and

defined as:

HDW (f) =

{W+1

2Nif f = 0 or f = N −W

1

Nif 0 < f < N −W

Once f has been drawn, the trailing edge of the encoding

window is calculated as l = f+W−1. Then, the elements giof the encoding vector g are set to one with probability p =1

2for i ∈ [f, l], with probability p = 0 otherwise. It follows

that the expected degree of a packet encoded according to

such process is equal to W/2. Drawing f according to the

HD guarantees that all the blocks of the generation have

equal probability to be encoded, which is crucial to achieve

good encoding efficiency. Finally, the encoder combines the

blocks of the original message as X =∑N−1

i=0Migi, and

the packet P is transmitted.

In the rest of this work, we use the compact notation

BC(N,W ) to indicate a packet encoded according to the

above described process for a generation size N and a

window size W . It results that a packet encoded as a

BC(N,W ) has the property that its average degree is equal

to W/2.

B. Recombinations at the Network Nodes

Before describing the process to recombine packets at the

nodes of the network, we formulate the following important

property about BC.

Proposition 1. Let packet P1 be a BC(N,W1) and P2

be a BC(N,W2). Let f1 be the first index of window

with size W1 and f2 be the first index of the window

with size W2 and let f1 < f2 (similarly, let l1 and l2 be

the corresponding last index.) Finally, let us assume that

encoding vectors of the two packet overlap (i.e., let l1 ≥ f2.)

Then, packet Pr = P1 ⊕ P2 is a BC(N,Wr) where the

first index of the encoding window is fr = min(f1, f2) and

Wr = max(f1+W1, f2+W2)−fr, and the expected degree

of Pr is Wr

2.

Proof: Let g1, g2 and gr be the encoding vectors of

P1, P2 and Pr respectively and let gr = g1 ⊕ g2. Only the

coefficients of gr encompassed between fr = min(f1, f2)and max(l1, l2) can be set to one. So, the encoding window

of Pr has initial position fr and size Wr = max(l1, l2) −

195

fr = max(f1 +W1, f2 +W2)− fr.

However, Pr is a BC only if grfr+j = 1 with probability 1

2,

for 0 ≤ j < Wr . The packets P1 and P2 are BC, hence

gifi+ji= 1 with probability 1

2for i = 1, 2 and 0 ≤ ji < Wi.

By hypothesis, the two windows overlap; where they do not

overlap, gri = g1i ∧ g2i , hence gri = 1 with probability 1

2by

the definition of BC. Where the windows overlap, the result

is a one if {g1i = 0∧g1i = 1}∨{g1i ∧g1i }, that happens with

probability 1

4+ 1

4= 1

2, hence again gri = 1 with probability

1

2. This shows that Pr is a BC(N,Wr) and its expected

degree is equal to Wr

2.

Such property of BC enables to recombine packets so that

the recombined packet is a BC(N,Wr) for some desired

value of Wr, and thus the expected degree of the recombined

packet is Wr

2.

The process to recombine the received packets at the

network nodes is as follows. Each node of the network stores

the received packets in an input buffer Bin and, when the

opportunity to transmit a packet arises, the node transmits

a recombined packet to one of the other network nodes.

We assume that each node explicitly requests that packets

sent to it are BC(N,Wr) for some Wr value that each

node independently selects according to some policy. Given

a target node for the transmission and the corresponding

Wr, the transmitter node draws fr (and lr = fr +Wr − 1)

according to the HD distribution. Let Ψ be the packets in

Bin whose encoding vector first index set to one is greater

or equal to fr and the last index is lower or equal to lr.

It follows from Proposition 1 that if two elements of Ψare recombined, the result is a BC(N,Wr) with expected

degree equal to Wr/2, as requested by the recipient. The

elements of Ψ are recombined to produce a packet Pr that

is transmitted as detailed in Algorithm 1.

Algorithm 1 The Packet Recoding Algorithm (Given Wr)

1: Draw fr according to HD distribution

2: Ψ ← Bin pkts that are BC(N,Wr) and f ≥ fr and

l ≤ lr3: Pr ← ∅4: for i = 1→ sizeof(Ψ) do

5: Pr ← Pr ⊕Ψ[i]6: end for

7: transmit Pr

IV. BAND CODES: DECODING

A. Decoding with On-the-Fly Gaussian Elimination

The nodes of the network receive packets P (g,X) that are

decoded using the On-the-Fly Gaussian Elimination (OFG)

algorithm [9]. With respect to other Gaussian Elimination-

like algorithms, OFG distributes the decoding complexity

over time and its computational complexity can be accu-

rately modeled. The OFG solves a system of N linear

equations GM = C where G is an N × N matrix that

contains the encoding vectors of the received packets, Cis a vector that contains the respective packets payloads

and M contains the unknown information packets Mi to

be recovered. If all the elements of a row i of G are equal

to zero, we define the row as empty and we write Gi = ∅.If all the rows of G are empty, we say that G is empty. We

focus on the OFG aspects instrumental to understand how

BC enable controlled complexity NC and the complexity

model presented in the following. So, we describe only

the operations on the G matrix and the received packets

encoding vectors g while we omit the analogous operations

on C and M . The OFG algorithm operates in two stages.

The first OFG stage is described as Algorithm 2 and is

executed every time a new packet P (g,X) is received and

initially all rows of G are empty. For each received packet,

the position s ∈ [0, N − 1] of the first element set to one

of the encoding vector g is calculated (line 3). Depending

on whether Gs is empty or not, the algorithm operates as

follows. If Gs is empty, g is inserted in the s-th row of G.

Otherwise, g and Gs are swapped (line 9) if the degree of gis lower than the degree of Gs to keep G sparse and simplify

the following diagonalization stage. If g is identical to Gs,

P is not innovative and the algorithm terminates. Otherwise

a XOR between g and Gs is performed (line 12) and the

while cycle iterates.

Algorithm 2 On-the-Fly Gaussian Elimination, First Stage

1: receive P (g).2: while true do

3: s← position of first non-zero element of g4: if Gs = ∅ then

5: Gs ← g6: end

7: else

8: if∑N−1

i=0gi <

∑N−1

i=0Gs,i

9: swap Gsf and g10: if g = Gs

11: end

12: g ← g ⊕Gs

13: end if

14: end while

The second OFG stage is diagonalization and is described

as Algorithm 3.

Diagonalization finally enables to recover vector M and the

generation.

If a network node receives packets encoded as BC(N,W )using the OFG algorithm, the following important proposi-

tion holds.

Proposition 2. If the OFG algorithm is used to decode

BC(N,W ), then G is a upper triangular and each row of

G is the encoding evctor of a BC(N,W ).

196

Algorithm 3 On-the-Fly Gaussian Elimination, Second

Stage

1: for i = N → 0 do

2: while (t← second non-zero element of Gi) �= ∅ do

3: Gi ← Gi ⊕Gs

4: end while

5: end for

Such proposition, that we provide without proof, is exploited

in the following to provide an upper bound to the decoding

complexity of Band Codes.

B. Decoding Complexity Model of OFG

We define the decoding complexity CD as the average

number of XOR operations performed by the OFG algorithm

to decode a generation under the assumption that all received

packets are BC(N,W ). Our investigations revealed in fact

that the XOR operator is the major source of computational

complexity for it entails updating large areas of memory.

In the following, we separately model the computational

complexity of the two OFG stages.

The complexity CID of the first OFG stage increments by

one unit every a XOR is performed at line 12 of Algorithm 2.

In the following we assume that N ′ � N , so that the rank

ρ(G) is equal to k before the (k+ 1)-th packet is received.

We first calculate the maximum number of XORs that

decoding of the (k+1)-th received packet can trigger trough

the successive iterations of the while cycle in Algorithm 2.

Given that ρ(G) = k, the maximum number of non-empty

rows of G with whom P can collide is k. Because P is a

BC(N,W ), on the average W/2 elements of g are equal

to one. The XOR is performed only if P and G[f ] are not

identical, which happens however with a probability that is

very close to 1 due to the assumption N ′ � N . Therefore,

we the expected maximum number of XORs performed by

the first stage of the OFG algorithm when the (k + 1)-thpacket is received is equal to k

NW2

. Finally, the expected

maximum number of XORs performed by the first stage of

OFG to decode a generation is

CID =

N−1∑k=1

kW

2N=

W (N − 2)

4�

WN

4.

The complexity CIID of the second OFG stage increments

by one unit every time line 3 of Algorithm 3 is performed.

The number of times such line is executed depends on the

density of the upper-triangular G matrix (that is, on the

average degree dG of the rows of G at the moment of

its diagonalization.) Proposition 2 states that rows of G are

BC(N,W ), thus their average degree is expected to be qual

to W/2. However, due to the swap at line 9 of Algorithm 2,

we have that the actual average degree of the rows of Gis lower than W/2. After extensive experiments, we found

that the relationship dG � W/4 holds for a wide range of

N and W values. Hence, as each row of G has dG− 1 non

null coefficients excluding that on the diagonal, the average

number of XORs performed to diagonalize G is equal to

(dG − 1)N � W4N . Thus the computational complexity of

the second OFG stage is

CIID =

W − 2

4N �

WN

4.

Finally, the maximum expected complexity of decoding a

generation for a BC(N,W ) with the OFG algorithm is

CD = CID + CII

D �WN

2. (1)

Such model shows that the computational complexity of

recovering a generation depends only on W , which is not

affected by the recombinations at the nodes due to the

properties of BC.

V. EXPERIMENTAL RESULTS

We evaluate Band Codes in a peer-to-peer video streaming

scenario where one source distributes a video sequence to

multiple cooperating receiver nodes. The video stream is

subdivided by the source as a sequence of generations of

data with identical playout time Ct. Every Ct seconds,

the source fetches a generation of video and encodes and

transmits packets for such generation only for the following

Ct seconds. The generation distributed by the source is

called seeding position within the video stream. We designed

an all-push P2P protocol where the receiver nodes are

organized as an unstructured mesh and the node discovery

process is managed by a central coordinator, the tracker.

The tracker listens for requests from nodes that want to join

the streaming session and keeps a list of all the nodes in

the network. Once a node has registered with the tracker,

the tracker replies with a list of randomly selected nodes

among those already in the network. Upon receiving the

tracker reply, the node starts an handshake procedure with

each of the nodes in the list. During the handshake, the two

nodes exchange the respective encoding window size Wr,

the parameter that will eventually determine the decoding

complexity of the node. After the handshake, two nodes

become peers and can start to exchange encoded packets.

After joining the network, a node waits for some time

before starting the playback, thus the playout position of

a peer always lags some generations behind the seeding

position. The set of generations encompassed between the

seeding position in the stream and the playout position of

a node is known as decoding region of the node. During

the handshake, the peers exchange a map that represents the

status (decoded or not decoded) of the generations within the

decoding region. Whenever a node decodes a generation,

it broadcasts a stop message to its peer to signal that

no further packets are required for that generation. Upon

197

receiving a stop message, a node updates the decoding map

of the relative peer, so that each node always knows which

generations a peer has already decoded and which has not

not. After the handshake, the peers start exchanging video

packets using a simple random-push scheduler. At each

transmission opportunity, the scheduler randomly selects a

peer and transmits a recombined packet to it. The generation

of video that is closer to the playout deadline and that the

peer has not decoded yet is selected for transmission, as

indicated by the decoding map of the peer. After selecting

the generation for which to transmit the packet, Algorithm 1

is run to produce a packet that is a BC(N,Wr) according

to the Wr value that the peer has specified during the

handshake. In the following, we experiment with our P2P

protocol for live video streaming on a testbed that poses

challenges typical of real packet networks such as loops in

the overlay, out-of-order packet delivery, delays etc.

A. Encoding Efficiency and Decoding Complexity

First, we analyze the performance of BC from the point

of view of the encoding efficiency. The encoding efficiency

is measured in terms of encoding overhead ε = N ′/N − 1,

where N ′ ≥ N is the average number of packets necessary

to decode a generation of size N . In the considered video

streaming scenario, the encoding overhead measures the

extra bandwidth required to stream the video. The efficiency

of Band Codes depends on the generation size N and on the

encoding window size W , which affects the average packet

degree. We explore values of N that range from 100 to

200: assuming that the video is encoded at 1000 kbit/s and

each generation of video is organized in blocks of about

1250 bytes, each generation covers a few seconds of video.

Figure 2 shows that the encoding overhead of BC depends on

W and hence on the average packet degree. Most important,

the figure shows that the encoding overhead of BC remains

low even for W << N , which means that BC make efficient

use of the bandwidth available on the network.

0

1

2

3

4

5

6

7

8

0.2 0.4 0.6 0.8 1

En

co

din

g O

ve

rhe

ad

[%

]

Encoding Window Density W/N

N = 100N = 200

Figure 2: Encoding Overhead of Band Codes as a Function

of the encoding window size (W/N .) Lower is better.

Then, we validate the decoding complexity model re-

ported in Equation 1: we measure the actual decoding

complexity at one of the nodes of the network and compare

with the figures predicted by the model. Figure 3 shows the

results of the experiments: our model can precisely predict

the decoding complexity of BC. A comparison with Fig. 2

shows that it is possible to achieve a favorable tradeoff

between decoding complexity and encoding overhead.

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

0.2 0.4 0.6 0.8 1

De

co

din

g C

om

ple

xity [

XO

R]

Encoding Window Density W/N

N = 100, DataN = 100, ModelN = 200, Data

N = 200, Model

Figure 3: Predicted and Actual Decoding Complexity CD as

a Function of the encoding window size (W/N .) Lower is

better.

Finally, we measure the actual computational load on a

real mobile device. For the purpose, we add one extra node

to the previously described testbed that consists of an LG-

P500 smartphone powered by a 600 MHz ARM processor.

The phone is connected to the testbed via WiFi and takes

part to the streaming session decoding the video. Figure 4

shows the actual processor load due to packet decoding as

reported by the top system monitoring tool as a function of

the encoding window size. The figure shows that BC enable

to decrease by a factor of two (from 25% to 12%) the actual

processor load by adjusting W . A comparison with Fig. 3

shows correlation between processor load and the number of

XORs, i.e. between the actual decoding complexity of BC

and our proposed metric.

0

5

10

15

20

25

30

0.2 0.4 0.6 0.8 1Decodin

g C

om

ple

xity [C

PU

%]

Encoding Window Density W/N

N = 100N = 200

Figure 4: Computational complexity in terms of processor

load as a function of the encoding window size (W/N .)

Lower is better.

B. Band Codes for Hybrid Complexity Networks

We consider now a network composed of two classes of

nodes: high complexity (HiC) and low complexity (LoC)

nodes. HiC nodes are devices connected to the power grid

such as desktop computers, while LoC nodes represent

198

battery operated terminals like mobiles. In a typical battery-

operated device, every packet coding operation draws some

energy from the battery until it is exhausted. The amount of

energy stored in the battery limits the total number of packet

coding operations a node can afford and thus its lifetime.

We model the level of battery charge as an initial budget

of XOR operations that is set at the node startup. Every

time the node performs an XOR for decoding purposes,

the budget counter is decremented by one until it reaches

zero and the node leaves the network. We experiment with

a network composed of 100 nodes, where part of the nodes

are of the HiC type and the rest are LoC nodes. We stream

a 1000 seconds H.264/AVC video sequence encoded at 1

Mbit/s (average generation size N=100) and we measure the

average lifetime of the network nodes, that is the average

amount of time between a node joining and leaving the

network. HiC nodes operate on an unbounded XOR budget

and with a recoding window size equal to the generation

size. Previous experiments showed that such configuration

enables low encoding overhead for a total complexity of

about 5000 XOR. LoC nodes operate with a limited energy

budget that we have set to 2500 XOR, that is half the budget

HiC nodes are expected to use.

We evaluate two different complexity adaptation strategies

for LoC nodes. The first strategy (No − Control) is a

baseline reference where the encoding window size is equal

to the generation size (W = N ) for both LoC and HiC

nodes. The second strategy (Control − Cr) consists in

reducing the encoding window size W of LoC nodes from

N to N/2: such strategy is expected to reduce the packet

recoding complexity and thus the average lifetime of the

network nodes. Figure 5 shows the average node lifetime

as a function of the percentage of LoC nodes present in the

network. The reference strategy No−Control results in the

lowest node lifetimes and the LoC nodes are never able to

watch the entire video streaming session. As expected, LoC

nodes leave the network roughly at 50% of the streaming

time as their XOR budget is half the required budget. The

Control − Cd strategy enables even low complexity nodes

to decode almost entirely the video sequence.

VI. CONCLUSIONS AND FUTURE WORK

We presented Band Codes (BC), a class of codes that

enable to control the computational complexity of network

coding independently at each node of the network. We

designed a simple all-push P2P video streaming protocol

that we use to show the benefits of BC-based network coding

over a realistic network composed of nodes with different

computational capabilities including mobile devices. We

show that BC achieve good encoding efficiency while they

allow to control the complexity of network coding, with

the tangible result to extend the operational life of battery-

powered devices such as mobiles. While we focused on the

P2P video streaming case, it is worth to notice that the

650

700

750

800

850

900

950

1000

10 20 30 40 50 60 70 80 90

Avera

ge N

odes L

ifetim

e [s]

Low-Complexity Nodes Ratio [%]

No-ControlControl-Cd

Figure 5: Average Lifetime of the Nodes as a Function of

the Complexity Control Strategy. Higher is better.

described approach to controlled-complexity network coding

can be applied to any application where computational

complexity matters.

ACKNOWLEDGMENTS

This publication is based on work performed in the

framework of the Project COAST-ICT-248036, which is

partially funded by the European Community.

REFERENCES

[1] C. Fragouli, J. Le Boudec, and J. Widmer, “Network coding:an instant primer,” Computer Communication Review, vol. 36,no. 1, pp. 63, 2006.

[2] M. Wang and B. Li, “R2: Random push with random networkcoding in live peer-to-peer streaming,” Selected Areas inCommunications, IEEE Journal on, vol. 25, no. 9, pp. 1655–1666, 2007.

[3] J. Heide, M.V. Pedersen, FH Fitzek, and T. Larsen, “Cautiousview on network coding-from theory to practice,” Journal ofCommunications and Networks (JCN), vol. 10, no. 4, pp. 403–411, 2008.

[4] D.E. Lucani, M. Medard, and M. Stojanovic, “Randomlinear network coding for time-division duplexing: field sizeconsiderations,” in Global Telecommunications Conference,2009. GLOBECOM 2009. IEEE. IEEE, 2009, pp. 1–6.

[5] M. Luby, “LT codes,” in IEEE Symposium on Foundations ofComputer Science, November 2002, pp. 271–280.

[6] S. Puducheri, J. Kliewer, and T.E. Fuja, “The design andperformance of distributed LT codes,” IEEE Transactions onInformation Theory, vol. 53, no. 10, pp. 3740–3754, Oct. 2007.

[7] P.A. Chou, Y. Wu, and K. Jain, “Practical network coding,”in Proceedings of the Annual Allerton Conference on Commu-nication Control and Computing. The University; 1998, 2003,vol. 41, pp. 40–49.

[8] C. Studholme and I.F. Blake, “Random Matrices and Codesfor the Erasure Channel,” Algorithmica, vol. 56, no. 4, pp.605–620, 2010.

[9] V. Bioglio, M. Grangetto, R. Gaeta, and M. Sereno, “On the flygaussian elimination for LT codes,” Communications Letters,IEEE, vol. 13, no. 12, pp. 953–955, 2009.

199