39
1

Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

Embed Size (px)

Citation preview

Page 1: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

1

Page 2: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

Coding theory for scalable media delivery Michael Luby

RaptorQ is a product of Qualcomm Technologies, Inc.

Page 3: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

3

Application layer erasure coding complements traditional error coding

“Erasure Coding”Protects against Data Lost

in Transmission

“Error Coding”Protects against Data Corruption

•  Vast majority of current use of FEC

•  Probably what you’re familiar with

•  Typically applied at layers 1 or 2

•  Usually performed in hardware

•  PHY-FEC (physical layer FEC)

•  Commercial application relatively new

•  Applied above layer 2

•  Complement to Error Coding

•  Typically performed in software

•  AL-FEC (application layer FEC)

Forward Error CorrectionTechnology

Page 4: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

4

Packet transmission

Packet header

Packet payload

Stream of packets

Received corrupted packet

Can identify received packet payloads from packet headers

Received corrupted packet is discarded

Page 5: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

5

Source data

Source data

Erasure encode

Erasure decode

Transmit

Application Layer erasure codes

Packetize

Depacketize

Page 6: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

6

AL-FEC and PHY-FEC are complementary

Time

PHY-FECCorrect or discard corrupted packet data over small block

Fixed time diversityFixed amount of protection

AL-FECPacket loss protection over small to large block

Flexible time diversity Flexible amount of protection

Flexible time diversity – from sub-second to hours

Fixed time diversity – e.g., < 1 second

Page 7: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

7

AL-FEC and PHY-FEC working together

  PHY-FEC corrects noise and interference  AL-FEC “interleaves” and corrects erasures

−  Longer block length (“interleavers”) è better performance

PHY-FEC works

PHY-FEC fails

16QAM CR = 1/3

5.3 Mbit/s p=14%

Source block Repair

AL-FEC Decoding

Source blockAL-FEC CR = 0.8

4.3 Mbit/s p=0%

Page 8: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

8

Ø  Generate as much encoding as desiredØ  Recover source from the minimal possible encoding

Ø  It doesn’t matter what is received or lost

Ø  It only matters that enough is received

What is a fountain code?

Page 9: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

9

Fountain codes – erasure codes without a rate

Source data

Erasure encode

Encoded data

Ø  Fountain codes have no predetermined rate

Ø For fountain codes, for a fixed source data sizeØ  Erasure code design is extendable to provide any code rateØ  All code rates use the same extendable erasure code designØ  Particular encoded symbols are generated independently of one anotherØ  Number of encoded symbols that can be generated on the fly is unconstrained

Page 10: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

10

Source blockB C E D A

LT encoding

Degree Prob

1 0.01

0.502

0.173

0.084

Degree Distribution

Page 11: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

11

Source block

Insert header, and send

XOR source symbols

Choose degree = 2

Choose 2 random source symbols

B C EDA

B+D

Degree Prob

1 0.01

0.502

0.173

0.084

Degree Distribution

LT encoding

Page 12: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

12

Source blockB C EDA

Choose degree = 1

Choose 1 random source symbol

Copy sourcesymbol

C

Insert header, and sendDegree Prob

1 0.01

0.502

0.173

0.084

Degree Distribution

LT encoding

Page 13: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

13

Source block

Insert header, and send

XOR source symbols

Choose 4 random source symbols

B C EDA

B+C+D+E

Degree Prob

1 0.01

0.502

0.173

0.084

Degree Distribution

Choose degree = 4

LT encoding

Page 14: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

14

Source Block (unknown)

Collect enough encoded symbols and set up graph between encoded symbols and source symbols to be decoded

Belief propagation decoding

Page 15: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

15

Identify encoded symbol with one unrecovered neighbor STOP if none exists

Source Block

Belief propagation decoding

Page 16: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

16

Unrecovered source symbol value is the value of all recovered neighbors XORed into the encoded symbol value

B Source Block

Belief propagation decoding

Page 17: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

17

Identify encoded symbol with one unrecovered neighbor STOP if none exists

B Source Block

Belief propagation decoding

Page 18: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

18

Unrecovered source symbol value is the value of all recovered neighbors XORed into the encoded symbol value

B H Source Block

Belief propagation decoding

Page 19: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

19

Identify encoded symbol with one unrecovered neighbor STOP if none exists

B H Source Block

Belief propagation decoding

Page 20: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

20

Unrecovered source symbol value is the value of all recovered neighbors XORed into the encoded symbol value

B H D Source Block

Belief propagation decoding

Page 21: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

21

B H D E A G F C Source Block (recovered)

Belief propagation decoding

Page 22: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

22

Intuition for Soliton degree distribution

  Consider a symbol of degree d −  Releases when exactly 1 of its d neighbors remains unrecovered−  Degree d releases when 1/d fraction of the symbols remain to be decoded

  A probability distribution on degrees so release distribution is uniform−  p(d) “covers” the interval 1/(d-1) to 1/d of the uniform distribution

−  Length of interval 1/(d-1) to 1/d is−  For d = 2, 3, …

p(2)

1 1/2 1/3 1/4

p(3)

1/6 1/5

p(5) p(4) p(6)

p(d) = 1d ⋅ (d −1)

1d ⋅ (d −1)

Page 23: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

23

y ∈R [0,1]

d =

1y"

##$

%% if y ≥ 1

k

1 if y < 1k

'

(

))

*

))

Choosing from Soliton distribution

Page 24: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

24

Raptor codes in standards

Ø Raptor codes (IETF RFC 5053, 3GPP, DVB, ITU, ATIS)Ø  Systematic fountain codesØ  Linear time encoding and decodingØ  Standardized – 3GPP MBMS, DVB-H IPDCØ  Good recovery properties – like a random code over GF(2) Ø  Good flexibility

Ø  Up to 8,192 source symbolsØ  Up to 65,384 source + repair symbols

Ø RaptorQ codes (IETF RFC 6330)Ø  Systematic fountain codesØ  Linear time encoding and decodingØ  Great recovery properties – like a random code over GF(256)Ø  Great flexibility

Ø  Up to 56,403 source symbolsØ  Up to 16,777,216 source + repair symbols (essentially unlimited)

Page 25: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

25

Major technical features (first appearance)

  LT code (Raptor RFC 5053)−  fountain property

  Pre-coding (Raptor RFC 5053)−  linear time

  Inactivation decoding (Raptor RFC 5053)−  linear time

  Systematic construction (Raptor RFC 5053)−  encoding includes original source

  Larger finite fields (RaptorQ RFC 6330)−  reduced reception overhead

  Permanent inactivations (RaptorQ RFC 6330)−  reduced reception overhead

Page 26: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

26

In comparison to other typical alternative FEC technologies, Raptor codes are an order of magnitude or more less complex

1

10

100

1000

0.0% 2.0% 4.0% 6.0% 8.0% 10.0% 12.0%

maximum packet loss

Sym

bol o

pera

tions

per

out

put s

ymbo

l

RS encoding (n=255) RS decoding (n=255) Raptor encoding Raptor decoding

Reed-Solomon encoding/decoding

Raptor encoding/decoding

Raptor codes computational complexity

Page 27: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

27

Raptor code (IETF RFC 5053) RaptorQ code (IETF RFC 6330)

10-0

10-1

10-2

10-3

10-4

10-5

10-6

0 2 4 6 8 10 12 14 16 18 20 22 24Number of encoded symbols received beyond k

Probability decoding fails

•  k = number of source symbols in source block •  Valid for all supported values of k •  Valid for all loss probabilities: 1% to 99%

Raptor codes overhead

Page 28: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

28

IETF RMT Broadcast/Multicast Object Delivery Suite

LCT BB RFC 5651

FEC BB RFC 5052

WEBRC BB RFC 3738

ALC PI RFC 5775

Reliable object delivery protocol instantiation

Reliability using FEC codes Framework and packet format Congestion control

FLUTE RFC 3926

Unidirectional broadcast/multicast reliable file delivery

FEC INFO RFC 3453

BB FRAME RFC 3048

BULK DATA RFC 2887

RaptorQ RFC 6330

Raptor RFC 5053

Page 29: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

29

3GPP LTE Broadcast (eMBMS) Service Layer

Broadcast file delivery services

IETF RMT Suite FLUTE, ALC PI, LCT BB, FEC BB,

Raptor

Reliable object delivery using FEC codes

Broadcast streaming services

Video streaming delivery

MPEG-DASH Suite

LTE Broadcast HTTP Adaptive

Streaming

MPEG-DASH Suite

HTTP 1.1

Page 30: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

30

Why Fountain codes? Some applications that you may (not)

have thought about

RaptorQ is a product of Qualcomm Technologies, Inc.

Page 31: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

31

Servers

LTE broadcast (eMBMS)

Applications:•  Streaming• Delivery of popular content• Media• Games

Challenge: reliable file delivery to mobile devices

Receivers

•  Millions of mobile devices

Mobile File Delivery Services Over Cellular Network

Page 32: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

32

Receive less than 10 symbols

LTE broadcast offload service for HTTP

ONLY broadcast repair symbols

Content (10 source symbols)

Device

Receive 10 symbols Decode

Decoding not possible

Page 33: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

33

File download completion using HTTP 1.1 byte range requests Origin Server

HTTP edge cache server

Device 1 Device 2 Device 3

Received 5 repair symbols

Need 5 additional symbols to decode

Received 9 repair symbols

Need 1 additional symbol to decode

Received 7 repair symbols

Need 3 additional symbols to decode

Request 5 symbol prefix of content Request 1 symbol prefix of content Request 3 symbol prefix of content

Decode Decode Decode

On Demand Caching

Page 34: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

34

LTE broadcast offload service for HTTP

Content package Media

content AMedia

content BMedia

content C

Decode Decode Decode

Device 1

Media content A

Media content B

Device 2

Media content B

Media content C

Device 3

Media content A

Media content C

30 symbols total

ONLY broadcast repair symbols 10 symbols

Media content C

Media content A

Media content B

Page 35: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

35

Just-in-Time recovery

 LTE broadcast data stored directly on the SD card −  Original multimedia data is never stored on the SD card −  SD card stores one copy of file – not two!

 Multimedia content available immediately after reception −  Avoids FEC decode post-processing of file after reception

  Just-in-Time recovery −  Based on user actions – player requests data to playback multimedia content −  Relevant data read from SD card, FEC decoded, provided directly to player −  Trick play response time −  Playback starts after one sub-block of data read from SD card and FEC decoded −  Size of sub-block and decode speed determines the response time

Page 36: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

36

Just-in-Time recovery avoids costly post-processing Portions of multimedia never played back are never processed

Storage usage is minimized – avoids double the writes to SD card

Receiver

LTE broadcast Write encoded interleaved

data as received

Read sub-block encoded data to RaptorQ decode and playback requested media in real-time

SD card

RAM

Just-in-Time recovery

Player

Playback of requested media Request playback of media

Page 37: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

37

Just-in-Time recovery advantages

Good user experience – media available immediately after reception Minimizes UE CPU, I/O, and storage resources

Page 38: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

38

Just-in-Time recovery demo   Demonstrates −  Just-in-Time recovery (importance of sub-blocking to support this) −  Only repair symbols sent in the original broadcast session −  Provides ability to efficient combine with HTTP-based repair service −  Provides ability to provide broadcast/HTTP hybrid services

  Demo parameters −  Elephant’s Dream – 91.3 MB file −  Partitioned into 10 source blocks (each of size 9.13 MB) −  Provides reasonable network efficiency

−  Each source block is partitioned into 41 sub-blocks (each of size 223 KB, Symsize = 36 bytes, K ~ 6300) −  Read encoded data from SD card and decode sub-block when requested by app

−  Original broadcast session −  Transmit repair symbols only −  20% packet loss according to Markov model applied before reception

Page 39: Coding - Simons Institute for the Theory of Computing · PDF filePre-coding (Raptor RFC 5053) − linear time ... FLUTE, ALC PI, LCT BB, FEC BB, Raptor Reliable object delivery using

39

For more information on Qualcomm, visit us at: www.qualcomm.com & www.qualcomm.com/blog

Thank youFollow us on:

© 2013-2014 Qualcomm Technologies, Inc. and/or its affiliated companies. All Rights Reserved.Qualcomm, Snapdragon, Gobi, and RaptorQ are trademarks of Qualcomm Incorporated, registered in the United States and other countries. All Qualcomm Incorporated trademarks are used with permission. Other products and brand names may be trademarks or registered trademarks of their respective owners

References in this presentation to “Qualcomm” may mean Qualcomm Incorporated, Qualcomm Technologies, Inc., and/or other subsidiaries or business units within the Qualcomm corporate structure, as applicable. 

Qualcomm Incorporated includes Qualcomm’s licensing business, QTL, and the vast majority of its patent portfolio. Qualcomm Technologies, Inc., a wholly-owned subsidiary of Qualcomm Incorporated, operates, along with its subsidiaries, substantially all of Qualcomm’s engineering, research and development functions, and substantially all of its product and services businesses, including its semiconductor business.

For more information on Raptor products or to request your free RaptorQ™ Evaluation Kit

please go to www.qualcomm.com/raptor

For questions please email <[email protected]>