al-fec and mbms servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf ·...

38
[email protected] Inria Rhône-Alpes Février 2012 AL-FEC and MBMS services 1 !Part 1 Application-Level FEC codes http:// openfec.org 2

Upload: others

Post on 09-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

[email protected] Inria Rhône-Alpes

Février 2012

AL-FEC and MBMS services

1

! Part 1

Application-Level FEC codes http://openfec.org

2

Page 2: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

Outline 1.  the erasure channel 2.  AL-FEC codes 3.  a few AL-FEC codes and their performances 4.  IETF standards for the use of AL-FEC

3

The erasure channel ! erasure channel ! definition:

! BSC (binary symmetric) and AWGN channels…

! the integrity assumption is a strong hypothesis ! a received symbol is 100% guaranteed error free

! largely simplifies decoding: ! belief propagation decoding ! iterative decoding ! maximum likelihood decoding ! Gaussian elimination ! more details to come…

4

0 0

1 1

erased! a symbol either arrives to the destination, without any error… … or is erased and never received

Page 3: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

The erasure channel… (cont’) ! where do we find erasure channels? ! the Internet is intrinsically an erasure channel

! an IP datagram is either received or erased ! usually caused by a router congestion, or a routing error

! because of Ethernet CRC or TCP/UDP/IP checksum verifications ! when the underlying layers failed to recover/identify errors,

the “packet” is eventually discarded by higher layers checks ! certain MAC layers can ask for retransmissions, but it's

usually not the case

5

The erasure channel… (cont’) ! where do we find erasure channels… (cont) ! due to an intermittent connection model

! caused by the environment (obstacle in wireless comm.) •  a mobile terminals receives a subset of the packets sent"

! caused by the application (e.g., if it crashes) •  packets sent during the off-period are lost"

! these situations are easily recovered with point-to-point connections

•  TCP will do the job if the disconnection is short"•  if a new connection is needed, itʼs sufficient to remember

where the download stopped and ask the sender to continue from that point"

! …but it’s quite different if the content is broadcast/multicast •  the same content is sent to 100,000s of receivers!"

6

Page 4: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

The erasure channel… (cont’) ! where do we find erasure channels… (cont) ! with distributed storage of a content (e.g., a file), when

a storage point fails ! RAID disks ! network-wide distributed storage, where a client selects a

subset of the storage node, each of them having a chunk of the content (source or repair data)

7

Quite different from PHY-layer FEC ! completely different assumptions!

! information bits coming from the upper layers, once encoded, form a codeword, i.e., a set of bits that is part of the set of valid words for this code

8

PHY channel

introduces errors

(sometimes erasures)

PHY-level FEC

information bits (e.g. 8 bits)

<1,0,0,1,1,0,1,1>

codeword (e.g. 12 bits)

<1,0,0,1,1,0,1,1|0,1,0,0>

PHY-level FEC

information bits <1,0,0,1,1,0,1,1>

erroneous codeword <1,0,0,0,1,1,1,1,0,1,0,0>

information bits

coded bits

FEC encoding

FEC decoding

Page 5: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

Outline 1.  the erasure channel 2.  AL-FEC codes 3.  a few AL-FEC codes and their performances 4.  IETF standards for the use of AL-FEC

9

AL-FEC codes ! definitions:

! AL-FEC are codes for the erasure channel ! k source symbols, n encoding symbols after FEC

encoding ! we say it's a (n; k) code, with dimension k and length n

! code rate:

! close to 1" "! little/no redundancy"! close to 0" "! high amount of redundancy"

! examples: •  code_rate = 0.5 means that there are as many redundancy

symbols as source symbols"•  code_rate = 2/3 means that n=k/2, i.e. we add 50% of

redundancy"10

!

code_ rate =kn

=before_encodingafter _encoding

Page 6: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

AL-FEC codes… (cont’) ! let's consider the example of a (9; 5) code

11

ENCO

DIN

G

DEC

OD

ING

source object decoded object

n-k=4 repair symbols

k=5 source symbols

n=9 encoding symbols

e.g., UDP/IP datagram

erasure channel

AL-FEC codes… (cont’) ! definition: ! the symbol is the unit of data manipulated by the AL-

FEC codec ! usually a symbol is carried in a UDP/IP datagram "⇒ either received or erased"

! sometimes there are several symbols per UDP/IP datagram

! let's keep it simple from now on… one symbol per packet

12

Page 7: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

AL-FEC codes… (cont’) ! definition: ! systematic codes are codes for which the k source

symbols are part of the n encoding symbols •  see previous example…

! preferred to non-systematic codes •  without loss, no decoding is needed which saves processing •  a receiver that does not implement the FEC code can still use

source symbols (backward compatibility)

13

AL-FEC codes… (cont’) ! AL-FEC codes ! usually implemented in higher communication layers

(rather than in the PHY layer), e.g.: ! within the application ! within the transport system (between RTP and UDP for

streaming flows, in FLUTE/ALC for filecasting applications) ! within the MAC layer (e.g., in DVB-H/MPE-FEC, or in DVB-SH/

MPE-IFEC)

! hence their name “Application Level-FEC” (AL-FEC) ! also called “Upper Layer-FEC” (UL-FEC) by those who work

at the PHY layer

14

Page 8: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

AL-FEC codes… (cont’) ! they differ from PHY-layer FEC codes (1) ! PHY codes:

! correct bit errors, and if not possible detect the errors

! AL-FEC: ! recover from symbol erasures

! with AL-FEC codes, a symbol can be: ! a bit ! a byte (e.g., in DVB-H/MPE-FEC frames) ! a UDP or IP datagram (e.g., 1460 byte long) ! a file chunk (e.g., 1 MByte long)

15

AL-FEC codes… (cont’) ! does the symbol nature make any difference?"

! in the following figure…

! symbols, sent over the channel individually (e.g., in a UDP/IP datagram) are represented vertically

! but we can also look horizontally and identify codewords

16

{bits of position “i” in all symbols} ! ith codeword

Page 9: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

AL-FEC codes… (cont’) ! exemple (at a receiver):

! LDPC code, 8,000 bit long (1 KB) symbols

17

source symbol!

source symbol!

erased symbol!

erased symbol!

source symbol!

repair symbol!

repair symbol!

erased symbol!

repair symbol!

erased symbol!

bit 0!bit 1!bit 2!bit 3!bit 4!bit 5!bit 6!bit 7!bit 8!bit 9!

bit 10!bit 11!

bit 7999!…!

codeword for bit index 0!

codeword for bit index 7999!

a 8000-bit long symbol (or packet)!

AL-FEC codes… (cont’) ! does the symbol nature make any difference (cont')

! e.g., with (binary) LDPC, consider this constraint between 3 source symbols and 1 parity symbol: s3 s10 s12 p8 = 0 ! this relation is valid:

•  for all the bits of same position in the symbols…"•  and all the bytes of same position in the symbols…"•  and all the 32-bit words of same position in the symbols…"

! said differently, all codewords experience the same erasures" ! in practice, with LDPC, we perform XOR operations on 32-

bit/64-bit words for higher computational efficiency ! it can be different with other codes, e.g., Reed-Solomon over

GF(2p), since their elements are in that case p-bits long

18

Page 10: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

AL-FEC codes… (cont’) ! they differ from PHY-layer FEC codes (2) ! PHY codes:

! small block codes (A.K.A. small dimension codes) ! goal is to reduce memory requirements and encoding/

decoding latency

! AL-FEC: ! use of large block codes (k >> 1) is very meaningful

19

AL-FEC codes… (cont’) ! yes, large block AL-FEC codes are beneficent ! the “coupon collector problem”

! the encoding of a large object with a small-block code requires it be segmented into several blocks, say N

! if a single source packet is missing, the probability a randomly chosen repair symbol recovers the loss is 1/N

•  since a repair symbol is only useful to the block it belongs to"!  if N !, this probability " #

20

block 1 decoded

block 2 decoded

block 3 decoded

block 4 decoded

block 5 decoded

block 6 decoded

block N decoded

randomly chosen repair

symbol ?

missing 1 symb.

Page 11: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

AL-FEC codes… (cont’) ! said differently, encoding a large object with a small

block AL-FEC is suboptimal ! even if the AL-FEC is MDS (i.e., ideal)! ! this is the case with Reed-Solomon over GF(28)

•  k ≤ n < 256"

! example: •  with RS and code-rate ½, k=128 source symbols, n-k=128

repair symbols"•  with 1000 byte long symbols, a 10MB object is divided into 79

blocks of size 128 symbols each (except last one)"! LDPC codes are then significantly more efficient than RS in

that case…"•  …even if LDPC codes are not MDS, just because there's a

single block"

21

AL-FEC codes… (cont’) ! they differ from PHY-layer FEC codes (3) ! PHY codes:

! use as high a code rate as possible ! goal is to reduce the transmission overhead

! AL-FEC: ! use of small rate codes (high amount of redundancy) is

meaningful

22

Page 12: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

AL-FEC codes… (cont’) ! yes, small rate codes are really beneficent! ! imagine a receiver that randomly picks symbols from the

set of available {source symbols; repair symbols} ! this is +/- what happens with intermittent connectivity

! the probability of having duplicates " as the code rate " ! …and so does the download time $

23

randomly choose k (1+!) among n, with possible repetitions • k only a little bit inferior to n ! many repetitions # • k << n (small code rate) ! few repetitions $

set of n source+repair symbols

AL-FEC codes… (cont’) ! and what about rate-less codes? ! it’s the extreme

! an arbitrarily large number of repair symbols can be produced, on-the-fly

! A.K.A. Fountain Codes ! currently: LT codes and Raptor™ codes

! in practice they are “recycling fountain codes” •  large but limited tank, so water recycling is mandatory"

! a better name is “non-predetermined code rate codes” •  there is no a-priori code rate"

! alternative efficient small-rate codes exist ! see GLDPC-Staircase…

24

Page 13: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

AL-FEC codes… (cont’) ! they differ from PHY-layer FEC codes (4) ! PHY codes:

! usually implemented in hardware

! AL-FEC: ! usually implemented as a software codec ! because they operate in “higher layers” ! this is a key benefit w.r.t. PHY FEC

25

Be careful: codes ! codecs

specifies the way repair symbols are generated

implementation of the encoder and decoder

AL-FEC codes… (cont’) ! a software AL-FEC codec offers a high flexibility ! key code parameters are defined dynamically

! source block size ! code rate ! because the AL-FEC code is generated on-the-fly ! shortening/puncturing become useless

! efficient encoding/decoding of large objects ! because the codec uses the host memory, not the chipset

memory (limited/high costs) ! can be a key criteria in some situations (e.g., DVB-SH)

! taking account of the application requirements is easier ! because the codec is closer to the application ! makes Unequal Error Protection (UEP) simpler

26

Page 14: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

AL-FEC codes… (cont’) ! how can we define good AL-FEC codes?

⇒ define performance metrics

! metric 1: erasure recovery capabilities ! it’s the main performance criteria ! measured as the overhead ratio:

•  e.g.: overhead=0.63% means that 0.63% of symbols in

addition to k are needed for decoding to succeed"•  required since many AL-FEC are not MDS (i.e., not ideal)"•  several derivatives: average overhead, 99% margin above

(resp. below) the average, etc."

27

!

decoding_overhead =# _of _ symbols_ required _ for _ decoding

k"1

AL-FEC codes… (cont’) ! metric 2: decoding failure probability = f(loss rate)

! more details than the decoding overhead"! the knee position and curve feet are extremely interesting…"

28

channel loss rate

decoding limit, depending on code rate

decoding impossible (too many losses…)

decoding failure probability

10-3

10-2

10-1

1

GOOD channel

BAD channel

slope should be as vertical as possible…

fall should happen as soon as possible…

decoding OK with

high proba…

Page 15: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

AL-FEC codes… (cont’) ! metric 3: decoding failure probability = f(number

of symbols received) ! similar to metric 2 but as a function of the number of

symbols actually received •  the curve is an average over a large number of experiments,

for a given {code rate, loss rate}, since each experiment impacts the identity of the symbols actually received "

29

number of symbols received

decoding limit, depending on block size

decoding impossible

(too few symbols…)

decoding failure probability

10-3

10-2

10-1

1

slope should be as vertical as possible…

fall should happen as soon as possible… decoding

OK with high proba…

k

AL-FEC codes… (cont’) ! metric 4: recovery in case of partial decoding

! how many symbols recovered if decoding not complete?"•  too few symbols have been received (e.g., < k)"

! to the received source symbols we add the recovered source symbols"

•  don't consider the received/recovered repair symbols since they are useless once decoding is stopped"

30

Page 16: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

AL-FEC codes… (cont’) ! metric 5: encoding and decoding speed

! to appreciate the algorithmic complexity •  often more reliable than theoretical algorithmic complexity

analyzes"•  theoretical analyzes often neglect such important aspects as

memory access/cache behavior/implementation details/…"! don’t forget that the decoding algorithm impacts the erasure

recovery metric… •  …usually there is an appropriate balance to find"•  some algorithms are faster but lead to lower erasure recovery

capabilities (see later)"! sometimes decoding complexity is the key

•  e.g., lightweight portable device"! sometimes encoding complexity is the key

•  e.g., deep space (autonomous) probe"

31

AL-FEC codes… (cont’) ! metric 6: required memory during encoding and

decoding ! even if RAM is used (rather than chipset memory), it should

be used with caution ! e.g., if data can fit in the CPU L2 cache, itʼs great"

! high impact of the decoding algorithm

32

Page 17: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

AL-FEC codes… (cont’) ! performances depend on many parameters: ! block size

! impacts the decoding overhead ! some codes (e.g., LDPC and Raptor) are good asymptotically

but sub-optimal with “small blocks”

! symbol size ! impacts speed and memory requirements

! decoding algorithm ! e.g., iterative decoding is fast, but leads to sub-optimal

overhead results

33

good AL-FEC = good code + good codec

Outline 1.  the erasure channel 2.  AL-FEC codes 3.  a few AL-FEC codes and their performances 4.  IETF standards for the use of AL-FEC

34

Page 18: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

So, what do AL-FEC codes look like? ! we’ll, it’s not so different from PHY codes ! we find the same linear block codes

! e.g., Reed-Solomon and LDPC ! plus some specialized small-rate/rate-less codes

! e.g., Raptor/RaptorQ™, GLDPC ! decoding techniques change, but not necessarily the

inner coding techniques

! in the remaining, we’ll quickly introduce: ! LDPC-Staircase

! NB: we won’t introduce Raptor(Q) ™ codes even if largely used in MBMS systems ! far too complex!

35

LDPC codes ! in short ! “Low Density Parity Check” (LDPC)

! linear block codes ! discovered by Gallager in the 60’s ! re-discovered in mid-90s

! currently one of the key FEC techniques ! LDPC are the core of LT and Raptor codes

! original codes were extremely costly to encode ! generator matrix (G) creation requires a matrix inversion

! but high performance, lightweight variants exist

! in the remaining we focus on codes with a binary matrix but non-binary codes exist (coefficients in GF(2x), x > 1)

36

Page 19: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

LDPC-Staircase codes ! LDPC-staircase codes (RFC 5170) ! a simple (trivial) parity check matrix structure

! defines a set of linear equations

! A.K.A. “double diagonal” or “Repeat Accumulate” codes ! but the left sub-matrix is fully regular

37

Source symbols Parity symbols

Constraints

0 1 0 1 0 1 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1

S1 " S4 " S5 " P1 " P2 = 0

S1 S2 S3 S4 S5 P1 P2 P3 P4 P5

N1 “1”s per column

LDPC-Staircase codes… (cont’) ! encoding ! it’s trivial $

! produce repair symbols in sequence: P1, then P2, then P3… ! guaranties a high encoding speed

! example: 1MB object, 1024 symbols of size 1MB each platform: Intel Xeon 5120/1.86GHz/4GB RAM/64-bit Linux

38

k code rate

N1 encoding speed number XOR / k

1024 2/3 5 3.33 Gbps 5.499

1024 2/3 7 2.54 Gbps 7.499

Page 20: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

LDPC-Staircase codes… (cont’) ! decoding ! solve a system of binary linear equations ! scheme 1: ITerative decoding (IT) ! scheme 2: Gaussian Elimination (ML, Max. Likelihood)

! recovery capabilities can be made close to ideal codes $ ! … by adjusting the matrix density with the N1 parameter

•  it’s the target number of “1” per column ! the higher N1, the closer to ideal codes $, but the more

complex the decoding # •  find a balance…

! example: 1MB object, k=1024, CR=2/3, N1=5 platform: Intel Xeon 5120/1.86GHz/4GB RAM/64-bit Linux

•  4.3 Gbps (IT) to 1.35 Gbps (ML) decoding speed

39

LDPC-Staircase performances ! for k=1024, code rate=2/3

! these curve give the decoding failure probability as a function of the number of symbols received (i.e. overhead)

•  minimum number of symbols is 1024"•  we see the positive impacts of increasing N1"

40

1e-05

0.0001

0.001

0.01

0.1

1

1020 1030 1040 1050 1060 0

20000

40000

60000

80000

100000

120000

140000

160000

Dec

odin

g fa

ilure

pro

babi

litiy

Num

ber o

f sam

ples

Number of received symbols

Histogram (total of 1000000 iter.)LDPC-Staircase N1=5 CR=2/3 k=1024

1e-05

0.0001

0.001

0.01

0.1

1

1020 1030 1040 1050 1060 0

50000

100000

150000

200000

250000

Dec

odin

g fa

ilure

pro

babi

litiy

Num

ber o

f sam

ples

Number of received symbols

Histogram (total of 1000000 iter.)LDPC-Staircase N1=7 CR=2/3 k=1024

N1 = 7 N1 = 5

Pr = 1 ! cannot be decoded

Pr << 1 ! high decoding probability

Page 21: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

LDPC-Staircase performances ! for k=1024, code rate=2/3

41

parameters average overhead

overhead for a failure probability " 10-4

k=1024, N1=5 0.636% with 1046 symbols received (i.e. 2.1% or 22 symbols overhead): Prfail=5.9*10-5

k=1024, N1=7 0.238% with 1039 symbols received (i.e. 1.5% or 15 symbols overhead): Prfail= 8.2*10-5

LDPC-Staircase performances ! for k=1024, code rate=2/3

42

0

500

1000

1500

2000

2500

3000

3500

4000

4500

5000

14 16 18 20 22 24 26 28 30 32 34

min

/ave

r/max

Bitr

ate

(Mbp

s)

loss percentage

LDPC-Staircase (N1=5) CR=2/3 K=1024 Symb.S=1024 LDPC-Advanced (N1=5) CR=2/3 K=1024 Symb.S=1024

ML required more and more often (bad channel)

IT is sufficient (good channel)

erasure probability on the chanel (%) (theoretical limit: correction possible if loss < 33,3…%)

decoding speed

(Mbps)

Page 22: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

LDPC codes… (cont’) ! achievements !  an IETF standard, RFC 5170

! enables interoperable, independent implementations http://www.ietf.org/rfc/rfc5170.txt

!  LDPC-Staircase codes are included in the ISDB-Tmm Japanese standard for mobile multimedia

!  with a good codec they achieve: ! recovery performances close to ideal ! high speed encoding and decoding ! and high flexibility

•  adjust the “recovery capabilities” / “processing load” trade-off

43

LDPC codes performances… (cont’) ! and this is not the end…

! morality

! illustrates the need for:

! high potential codes ! high quality codecs

! both aspects are critical in practice

44

in spite of their simplicity, LDPC-staircase codes feature results close to ideal codes…

Page 23: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

Outline 1.  the erasure channel 2.  AL-FEC codes 3.  a few AL-FEC codes and their performances 4.  IETF standards for the use of AL-FEC

45

Use of AL-FEC in IETF standards ! Internet Engineering Task Force ! the place where Internet technology is standardized

! whole TCP/IP protocol stack and much more ! open to everybody

! no fee ! open discussion lists ! open specifications (as Internet-Draft, then as RFC) ! very academic friendly

! remains independent of any specific target use-case ! but technology is often instantiated by other standardization

bodies (e.g., 3GPP, DVB, OMA, etc.)

46

IETF motto: “rough consensus and working code”

Page 24: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

Use of AL-FEC in IETF standards… (cont’) ! two IETF groups concerned by AL-FEC: ! AL-FEC for “file” distribution applications

! RMT (reliable multicast transport) IETF WG created in 1999, close to the end… e.g., within FLUTE/ALC (or FCAST/ALC or FCAST/NORM)

! AL-FEC for streaming applications ! FecFrame (FEC Framework) IETF WG created in 2006, now almost closed

47

AL-FEC for “file” delivery (RMT) ! the RMT WG specified ! several “reliable multicast transport protocols”

! ALC massively scalable reliable transport ! NORM ACK/NACK based reliable transport ! FLUTE file delivery on top ALC (INRIA co-author)

! a general framework for the use of AL-FEC ! AL-FEC is a MUST to achieve reliable efficient transfers…

! several AL-FEC schemes ! Null-Code scheme ! Raptor/RaptorQ schemes (Qualcomm) RFC 5053 ! Reed-Solomon (Inria/ISAE joint work) RFC 5510 ! LDPC-Staircase and Triangle (Inria/STM) RFC 5170

48

Page 25: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

AL-FEC for “file” delivery (RMT)… (cont’) ! an object (e.g. a file) is often too large to be AL-

FEC encoded at once, as a single block ! split it into several blocks

•  blocks all have almost the same size (the last few ones that may be one symbol smaller)"

! FEC encode each block separately

49

- 4/18 -

1

Figure 2: Constructing FLUTE packets 2

The BM-SC communicates the transport object size, the encoding symbol size and the file size to 3

the receivers within the FLUTE session transmission such that the receiver can also calculate the 4

source block structure in advance of receiving a file. 5

The FLUTE packet is constructed from FLUTE header and payload containing one or more 6

encoding symbols. 7

The distinction between file and transport object is that the file is the object provided to the BM-8

SC and played-out or stored at the MBMS UE. Within the scope of FLUTE sessions, content 9

encoding may be used, for instance to compress the file with gzip for delivery. In the presence of 10

FLUTE session content encoding, the file and the transport object will be different binary 11

objects, and in the absence of content encoding the transport object will be identical to the file. 12

Any symbol calculations (including FEC) are performed on transport objects. 13

2.1.2.3 Download Examples 14

In a typical use case, multimedia files typically in 3GP or MP4 format are distributed through 15

download delivery method. In this case the delivery rate and the media rate may be completely 16

different as no real-time consumption is considered. 17

Table 1 shows some typical examples of file sizes for different types of multimedia content. 18

Table 1 Examples for Download delivery use cases 19

Number File Size Example

1 1 MByte (1 048 576 bytes) AAC encoded audio clip

2 3 MByte (3 145 728 bytes) MP3 audio clip

3 128 MByte (134 217 728) bytes 30 min SD movie coded at 500 kbit/s

4 1.8 GByte (1 887 436 800) bytes 2 hours HD movie coded at 2 MBit/s

2.1.2.4 DASH over download delivery service 20

In another use case as indicated in TS26.346, section 5.6, the download delivery method may be 21

used to distribute DASH formatted content over MBMS. MBMS is designed to serve large 22

receive groups with same content. The MBMS Download Delivery Method is designed to 23

deliver an arbitrary number of (binary) files via MBMS to a large receiver population. MBMS 24

Download defines several methods to increase reliability such as file repair. The download 25

delivery method supports the delivery of media segments and even media presentation 26

descriptions. Media segment URIs are described using the FDT in FLUTE. 27

Constructing FLUTE Packets

=

10110101001010101101101010101001001001010000000000111111111101100101101100101011

10110101001010101101101010101001001001010000000000111111111101100101101100101011

file transportobject

sourceblock(s)

00000

00000

encodingsymbol(s)

11111

11111

Header

FLUTE packet

11111

FLUTE/UDP/IP

packet

Example: AL-FEC within the FLUTE/ALC protocol stack"

AL-FEC for “file” delivery (RMT)… (cont’) ! what do we need to make it work in practice? ! a mechanism for the encoder (sender) to inform the

decoder (receivers) what AL-FEC code is used ! which code? ! which code parameters (k, n, etc.)?

! a mechanism for the sender to identify each symbol ! which object and block does it belong to?

50

the goal of the FEC Object Transmission Information (FEC OTI)

the goal of the FEC Payload Information header (FPI)

Page 26: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

Example: LDPC-* for “file” delivery ! e.g, LDPC-staircase/triangle (RFC 5170) specifies: ! FEC Encoding ID: identifies the FEC scheme

! 3 ! LDPC-Staircase codes

! FEC Object Transmission Information: ! information needed to synchronize encoder and decoder ! can be transmitted once if done reliably

51

Ex: LDPC-* for “file” delivery… (cont’) ! a FEC Payload ID

! and all the algorithms needed to produce interoperable codecs ! the matrix creation algorithms ! the PRNG ! the parameter derivation techniques

52

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Block Number | Encoding Symbol ID (20 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Page 27: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

! Part 2

3GPP-MBMS (Multimedia Broadcast Multicast Service) and similar services

53

Outline 1.  massively scalable delivery 2.  IETF FLUTE/ALC standard for file massively

scalable delivery 3.  IETF FECFRAME for robust streaming 4.  MBMS

54

Page 28: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

Introduction ! comment transmettre un contenu très populaire ?

! retransmissions en direct (streaming) ! % les canaux TV sont fait pour !

! et le reste (sites Web, flashs, enregistrements, guides de programmes) ? ! l’UMTS permet à chacun de surfer sur le Web… ! oui, mais à quel prix ?

55

communications point à point

je veux

je veux

Bob veut

Alice veut

serveurs du fournisseur de

contenus

réseau d’accès

Introduction… (cont’) ! avec des communications point-à-point (ex. TCP),

cela coince à plusieurs endroits ! coté serveur

! milliers/millions de clients à traiter individuellement, à qui retransmettre les données manquantes, etc.

! coté réseau d’accès (liaison serveur-Internet) ! débit_par_client = débit_ligne / nb_clients ! avec des millions de clients, ce n’est pas beaucoup et

cela coûte très cher ! ! coté réseau de distribution sans fil

! transmissions hertziennes % médium partagé % transmettre un très grand nombre de fois le même contenu est (1) un gâchis, et (2) impensable avec de gros contenus/grand nombre de clients

56

Page 29: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

Introduction… (cont’) ! nouveaux services de diffusion de fichiers ! UMTS : MBMS (Multimedia Broadcast Multicast

Services) ! DVB-H : IP Datacasting

! tous deux fonctionnent en mode point-à-multipoint (multicast, ou diffusion)

! l’information traverse une seule fois un lien donné !

57

je veux

je veux

Bob veut

Alice veut

serveurs du fournisseur de

contenus

communications point à multipoint

réseau d’accès

Introduction… (cont’) ! bénéfices ! coté serveur

! passage à l’échelle massif si l’on utilise la bonne approche de transmission fiable (FLUTE et FEC)

! coté réseau d’accès ! débit_par_client = débit_ligne / nb_contenus_diffusés ! avoir un millions de client ou un seul revient au même

! coté réseau de distribution sans fil ! exploite pleinement les caractéristiques naturelles de

diffusion du réseau hertzien

! les solutions reposent sur IP % protocole fédérateur qui permet une intégration triviale Internet/WiFi/LAN/UMTS/DVB-*/3GPP/…

58

Page 30: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

A second example ! …where AL-FEC is used with the MAC layer ! DVB-H/SH systems

! within the MPE-FEC system, for transmission impairment recovery (at MAC layer)

59 a close-up of the application data table

per-row Reed- Solomon encoding

Outline 1.  massively scalable delivery 2.  IETF FLUTE/ALC standard for file massively

scalable delivery 3.  IETF FECFRAME for robust streaming 4.  MBMS

60

Page 31: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

FLUTE/ALC ! diffusion de fichiers (au sens large)

! service complémentaire aux transmissions point à point

! repose sur de nouveaux protocoles/briques ! FLUTE % application de transfert de fichiers ! ALC % protocole transport multicast fiable ! AL-FEC % codes correcteurs d’erreurs

! le tout au dessus de UDP/IP ! l’objectif est une transmission totalement fiable

61

! an example where AL-FEC improves both the reliability and the service ! reliable distribution of digital content library to vehicles ! relies on FLUTE/ALC for the file-casting service

62

FEC encoding

multimedia content carrousel

reception… multimedia content

FEC decoding

FLUTE/UDP broadcast transmission to a multicast group

FLUTE/ALC… (cont’)

Page 32: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

FLUTE/ALC… (cont’) ! ALC effectue la transmission (transport) ! approche de type « carrousel » (par ex.) ! les contenus sont transmis en boucle, longtemps

! % plusieurs cycles de transmission ! chaque client « pioche » ce qui l’intéresse dans la

session, grâce aux méta-données qui décrivent le contenu disponible

63

carrousel (contenu dynamique)

object 0

object 1

object 2

object 3

object 4

FDT #1

object 0

object 1

object 5

object 3

FDT#2

change

... object 0

FDT#3 November 2003 S M T W T F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

• reçoit les méta-données • décide de garder objet 4

FLUTE/ALC… (cont’) ! FLUTE décrit le contenu transmis ! les méta-données des fichiers de la session sont

rassemblés dans la FDT (File Delivery Table) ! exemple (XML/MIME) :

<?xml version="1.0" encoding="UTF-8"?> <FDT-Instance xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fl="http://www.example.com/flute" xsi:schemaLocation="http://www.example.com/flute-fdt.xsd" Expires="2890842807"> <File Content-Location="www.example.com/menu/tracklist.html" TOI="1" Content-Type="text/html"/> <File Content-Location="www.example.com/tracks/track1.mp3" TOI="2" Content-Length="6100" Content-Type="audio/mp3" Content-Encoding="gzip" Content-MD5="Eth76GlkJU45sghK"/> </FDT-Instance>

64

Page 33: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

Outline 1.  massively scalable delivery 2.  IETF FLUTE/ALC standard for file massively

scalable delivery 3.  IETF FECFRAME for robust streaming 4.  MBMS

65

AL-FEC for streaming (FECFRAME) ! a generic, flexible framework for the use of AL-FEC

in a streaming protocol stack ! RFC 6363, October 2011, http://tools.ietf.org/rfc/rfc6363.txt

66

Application

FECFRAME Framework

Application

UDP/IP

Application

one or several source + repair flows

Host

Application

FECFRAME Framework

Application

UDP/IP

Application

Host

erasure channel

one or several source + repair flows

Page 34: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

AL-FEC for streaming... (cont') ! FECFRAME is:

! independent of the transport protocol (UDP/DCCP/…)

! independent of the real-time framing protocol (RTP…) •  even if RTP is the main target and some techniques rely on it"

! can be backward compatible to receivers not supporting FECFRAME

•  it's a dedicated mode of operation, not the general rule"

! offers multiplexing capabilities •  a single repair flow can protect one or several source flows,

whether they are related or not"

67

AL-FEC for streaming... (cont') ! provides flexible flow composition capabilities

! example (draft-ietf-fecframe-sdp-elements): •  the 3rd FEC framework instance provides several additively

composed repair flows that protect a subset of the source flows…"

____| FEC FRAMEWORK / | INSTANCE / | 3: Repair Flow / SOURCE FLOWS / | FEC FRAMEWORK 0: Source Flow |___/ |------| INSTANCE __| 1: Source Flow | | 4: Repair Flow | | 2: Source Flow | | | FEC FRAMEWORK |__________________________| INSTANCE | 5: Repair Flow | 6: Repair Flow | 7: Repair Flow

68

Page 35: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

Rapid technical overview ! general architecture

69

application data unit

source data flow

real-time framing protocol (e.g., RTP)

FECFRAME framework

transport protocol (e.g. UDP)

FEC scheme building block

source symbols

repair symbols

FEC repair packet FEC source packet

one or several transport flows

Rapid technical overview… (cont') ! step 1: assign each flow a unique flow ID (done

once) ! mapping between:

•  source flow (characterized by the {transport protocol, dest port, dest addr} tuple)"

•  FlowID integer (e.g., 8-bit)"! the FlowID is unique for this FECFRAME instance ! required during decoding to assign recovered application

data units to the right source flow

70

Page 36: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

Rapid technical overview… (cont') ! step 2: source block creation

1.  accumulate source packets 2.  prepend FlowID and Length, append padding 3.  submit the source block to the codec for encoding

!  step 3: FEC encoding !  as usual, nothing specific

71

Enc Symbol Length (E) < -------------------------------------------------------------- > +----+----+-----------------------+------------------------------+ |F[0]|L[0]| R[0] | Padding[0] | +----+----+----------+------------+------------------------------+ |F[1]|L[1]| R[1] | Padding[1] | +----+----+----------+-------------------------------------------+ |F[2]|L[2]| R[2] | +----+----+----------+-------------------------------------------+

3rd ADU

1st ADU

2nd ADU

Rapid technical overview… (cont') ! step 4: submit the following FEC source/repair

packets to the transport protocol ! for FEC source packet, append an explicit source FPI

•  with Reed-Solomon schemes, the source FEC Payload ID contains a block ID and symbol ID within this block"

! for FEC repair packet, prepend a repair FPI

•  with Reed-Solomon schemes, the repair FEC Payload ID contains a block ID, a symbol ID and a block length "

72

application data unit explicit source FEC payload ID (opt.)

repair symbol repair FEC payload ID

Page 37: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

Proposed FEC schemes ! several FEC schemes are proposed ! RTP format for 1-D/2-D interleaved/non interleaved

parity FEC (Cisco) ! a very simple FEC scheme ! recovery capabilities remain limited however

! Reed-Solomon (Inria) ! LDPC-Staircase (Inria) ! Raptor/RaptorQ (Qualcomm)

73

Outline 1.  massively scalable delivery 2.  IETF FLUTE/ALC standard for file massively

scalable delivery 3.  IETF FECFRAME for robust streaming 4.  MBMS

74

Page 38: AL-FEC and MBMS servicesplanete.inrialpes.fr/.../comm_mobiles_2011-12_part3_2p.pdf · 2012-02-20 · Outline 1. the erasure channel 2. AL-FEC codes 3. a few AL-FEC codes and their

The MBMS services ! Multimedia Broadcast Multicast Service (MBMS)

! point to multipoint specifications for 3GPP cellular networks ! heavily relies on IETF standards ! MBMS protocol stack has been reused with minor

modifications by other standards •  DVB-H/SH"•  ISDB-Tmm"

75

The MBMS services… (cont’) ! global view of MBMS protocol stack

76

carousel

IP

UDP

Streaming (RTP)

Download (FLUTE/ALC/AL-FEC)

RTP Payload formats

Codecs (Audio, Video, Speech,

etc.) AV file formats, Binary data, Still

images, Text, etc.

MBMS Bearer(s)

Service Announcement & Metadata (SDP,

XML, etc.)

Application(s)

FEC protection