Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SeedLight: Hardening LED-to-Camera Communication with Random Linear Coding

SeedLight: Hardening LED-to-Camera Communication with Random Linear Coding

With the increasing consumer demand for smart objects, LED-to-Camera communication appears as a low-cost alternative to radio to make any conventional device smart. Since LEDs are already on most electronics devices, that is achieved at the cost of negligible hardware modifications. However, as these LEDs are very different from the widely studied ceiling ones, several challenges need to be addressed to make this happen. Among these issues, we note the constrained physical layer data unit (PHY-SDU) length that complicates the use of coding strategies to cope with bits or packets erasure. To break this limitation, this paper presents SeedLight, a coding scheme designed to face the inherent packet losses and enhance line-of-sight LED-to-Camera communication goodput. SeedLight leverages random linear coding to provide an efficient redundancy mechanism that works even on PHY-SDU of tens of bits. The key idea of SeedLight is to reduce the code overhead by replacing the usual coding coefficients by a seed. Since this work addresses IoT devices with low computational resources, SeedLight encoding algorithm complexity remains low. We develop an implementation of SeedLight on a low-cost MCU and a smartphone to evaluate both the communication and algorithmic performances. Experimental results show that SeedLight introduces a negligible overhead and can be implemented even on the cheapest MCU, such as the ones used in many IoT devices. The achievable goodput can be up to 2.5kbps, while the gain compared to a trivial retransmissions scheme is up to 100%.

Alexis DUQUE

October 16, 2017
Tweet

More Decks by Alexis DUQUE

Other Decks in Technology

Transcript

  1. SeedLight: Hardening LED-to-Camera
    Communication with Random Linear Coding
    Alexis Duque1,2,3, Razvan Stanica2,3, Hervé Rivano3,2, Adrien Desportes1
    October 14, 2017
    1Rtone,
    2Univ Lyon, INSA Lyon, CITI
    3Inria

    View full-size slide

  2. Motivations
    • LED-to-Camera broadcast: attracting consummer interest
    • Issues cut down the communication goodput and make it
    unreliable:
    • asynchronism and high bit loss ratio
    • constrained PHY-SDU size
    • no feedback nor ACK
    Proposal: SeedLight, a low-overhead coding scheme designed to face
    the inherent packet losses in line-of-sight LED-to-Camera communication.
    The physical layer service data unit is generally known as a frame. To avoid any confusion with the picture frame
    taken by the camera, we use the term PHY-SDU. 1

    View full-size slide

  3. Related Works and Contributions
    Related Works:
    • CeilingCast, Hao et al. [5]: Raptor Code
    • Martian, Du et al. [2]: LT codes, NLOS information broadcast
    ⇒↗ goodput but large computational complexity + header overhead
    Our main contributions:
    • First random linear coding (RLC) for VLC and OCC.
    • Reduce the RLC overhead by using a pseudo-random linear coding
    (PRLC) method
    • Low code complexity ⇒ cheap MCUs.
    2

    View full-size slide

  4. LED-to-Camera communications
    insight

    View full-size slide

  5. Color LEDs as VLC emitter
    Modulation design
    • On-Off Keying (OOK), LED ON ⇒ 1, LED OFF ⇒ 0
    • Manchester line coding, to avoid LED flickering
    • Frequency Band 4-12 kHz
    Figure 1: PHY-SDU format at 8 KHz.
    Data Symbol
    0 01 (OFF-ON)
    1 10 (ON-OFF)
    Table 1: Manchester code
    3

    View full-size slide

  6. Camera as VLC receiver
    Rolling Shutter Effect [1, 3, 7, 6, 9]
    .....
    time
    pixels exposure
    row 1 row 2
    1 0 1 0 0
    4

    View full-size slide

  7. LOS Scenario
    5

    View full-size slide

  8. LED-to-Camera Channel
    Figure 2: Frame capture time and inter-frame gap
    • M : camera capture time
    • N : inter-frame time
    6

    View full-size slide

  9. Random Linear Coding

    View full-size slide

  10. Random Linear Coding concepts
    Random Linear Coding [4]
    1. Split a message into multiples chunks of the same size
    2. Create a linear dependency between them
    3. Transmit chunks with loss
    4. Solve the linear system created by the chunks
    Issues
    • Overhead ++
    • Bytes to receive ++
    • Computation/memory ++
    7

    View full-size slide

  11. Random Linear Coding
    An emitter Tx wants to send a message of G bytes to a receiver Rx, split
    into N blocks b1, . . . , bN
    encapsulated in a PHY-SDU
    • Tx: emitter, Rx: receiver, p: PHY-SDU payload size
    • G: generation size = data to send, B: uncoded blocks N: blocks
    number
    • GF(q): Galois field where q = 2γ is the field size
    • N coefficients of γ bits c = (c1, . . . , cN), ci ∈ GF(q), are used to
    generate the coding vector v by linearly combining uncoded
    blocks as follow:
    v =
    N

    i=1
    (ci × bi)
    • Concatenate c and v ⇒ C = [c, v]
    ⇒ overhead = N ∗ γ bits.
    8

    View full-size slide

  12. SeedLight
    Solution: coding vector replaced by a seed of a Mersenne-Twister PRNG
    Chunk generation method
    1. Generates a seed s ∈ [0...2α] (α = number of bits of the seed)
    2. Init the Mersenne-Twister PRNG [8] with s
    3. Generate N coefficients with PRNG ⇒ c
    4. Linearly combine the N uncoded blocks with c ⇒ v
    5. Built the chunk C prepending s to v ⇒ C = [s, v].
    ⇒ overhead = α vs N, e.g. 8 bits vs 50 bits
    SYNC PB
    SEQ
    SEED
    PAYLOAD
    PAYLOAD
    PHY-SDU PAYLOAD
    p
    p
    l
    9

    View full-size slide

  13. SeedLight Evaluation

    View full-size slide

  14. Testbed
    Nucleo STM32L0 development board (left). Chunks are computed on a
    laptop and sent to the MCU to be emitted via serial BUS. Decoding has
    been implemented on the smartphone.
    10

    View full-size slide

  15. Packet Loss
    Figure 3: Frames captured at 0,
    5, 10 and 20cm
    5 10 15 20 25 30 35 40
    0
    0.2
    0.4
    0.6
    0.8
    1
    Distance (cm)
    Ratio
    20bits
    40bits
    40bits
    80bits
    128bits
    ⇒ The seed size and the
    overhead ratio must be
    carefully choosen
    11

    View full-size slide

  16. Chunk redundancy vs seed length and N
    6 8 10 12 14
    0
    10
    20
    30
    40
    50
    60
    70
    80
    90
    N=25
    N=50
    N=100
    N=150
    Seed resolution (bit)
    Chunk redundancy (%)
    ⇒ Redundancy introduced by duplicated chunks
    ⇒ 8 bits OK if N = 50
    ⇒ 10 bits OK if N = {100, 150}
    12

    View full-size slide

  17. Goodput vs seed length
    6 8 10 12 14 16 18 20
    0
    0.5
    1
    1.5
    2
    2.5
    3
    P e
    = 0.3 P e
    = 0.5 P e
    = 0.7
    Seed (bit) appended to 16 bits data
    Goodput (kbit/s)
    ⇒ No gain after certain size
    ⇒ 8 bits seed optimal for G=50
    13

    View full-size slide

  18. SeedLight Goodput gain
    0 5 10 15 20 25 30 35 40 45 50
    0
    0.5
    1
    1.5
    2
    2.5
    3
    throughput
    goodput w/ RL Coding
    goodput W/O RL Coding
    Distance (cm)
    Throughput (kbit/s)
    ⇒ 2.3 kbit/s of goodput at 5cm. Between 60% and 90% gain.
    14

    View full-size slide

  19. Implementation discussion

    View full-size slide

  20. Problem statement
    • Coding on IoT devices: low memory and low computational
    capacity
    • Core Clock < 100 MHz
    • RAM < 16 Ko
    • Flash < 256 Ko
    • Should be able to run concurrently with other tasks
    • Is there enough volatile memory ?
    • Is SeedLight firmware size smaller than the MCU flash size ?
    15

    View full-size slide

  21. Use cases and MCU modes
    Pre-computed mode: build N chunks then send all. RAM ++.
    Sequential mode: build 1 chunk then send, build 1 chunk then send
    ... Delay ++
    Parallel mode: multi-tasking = compute a chunk when the previous one
    is transmitting. If the chunk computation time is larger
    than the transmission time, the transmission will stop
    during this time gap. CPU ++
    16

    View full-size slide

  22. Galois Field Arithmetic Choice
    Method Operation Memory.
    (1) Mult. LT 1 LK 2.22γ
    (2) Log. LT 3 LK + 2 BR + 1 MOD + 1 ADD 2.2γ
    (3) No LT γ . (2 XOR + 2 SHIFT + 1 AND) 0
    • (3) large number of operations (no LTs) ⇒ avoided
    • (1) fast, LTs size ≥ MCU flash size ⇒ for decoding by smartphone
    • (2) well balanced between memory requirement and complexity for
    Tx ⇒ for coding by MCU
    ⇒ O(N2P) to produce N chunks of P symbols
    ⇒ O(N3 + N2P) to decode a matrix of N × (N + P) bytes
    17

    View full-size slide

  23. Computation time on testbed
    0 50 100 150 200 250 300 350 400
    0
    2
    4
    6
    8
    10
    8 MHz
    50 MHz
    100 MHz
    Chunk TX duration
    Generation size G (bytes)
    Duration (ms)
    0 50 100 150 200 250 300 350 400
    0
    2
    4
    6
    8
    10
    12 Nexus 5 (24 bits chunk)
    Nexus 6P (24 bits chunk)
    Generation size G (bytes)
    Chunk processing duration (ms)
    Coding on a MCU (left). Decoding on the Nexus 5 and 6P (right).
    ⇒ Coding in // with modulating the LED is OK if G ≤ 150
    ⇒ 30 fps / 6 chunks → smartphone decodes in real time
    18

    View full-size slide

  24. Goodput vs implementation
    5 15
    0
    0.5
    1
    1.5
    2
    2.5
    Distance (cm)
    Goodputs (kbit/s)
    Pre-computed G=100
    Parallel G=100
    Sequential G=100
    Pre-computed G=400
    Parallel G=400
    Sequential G=400
    ⇒ SeedLight can be implemented even on the cheapest MCU
    with a minor impact on the communication performance
    19

    View full-size slide

  25. Summary
    • SeedLight: a RLC based lightweight erasure coding for
    LED-to-Camera communication
    • Seed replaces RLC coding header.
    • Increases the goodput from 1.5 to 2.5kbps vs primary packet
    retransmission.
    • Much smaller overhead vs the erasure coding scheme [10, 2]
    • Suitable when PHY-SDU ≤ 30 bits.
    • SeedLight works on low-cost MCUs
    20

    View full-size slide

  26. Further work
    • Coding for Multi LEDs communications
    • Further reduce the code overhead
    • Seed transmission strategy
    21

    View full-size slide

  27. Thank you for listening !
    Questions time :)
    21

    View full-size slide

  28. References I
    C. Danakis, M. Afgani, G. Povey, I. Underwood, and H. Haas.
    Using a CMOS camera sensor for visible light communication.
    2012 IEEE Globecom Workshops, GC Wkshps 2012, pages
    1244–1248, 2012.
    H. Du, J. Han, X. Jian, T. Jung, C. Bo, Y. Wang, and X.-Y. Li.
    Martian: Message Broadcast via LED Lights to Heterogeneous
    Smartphones.
    IEEE Journal on Selected Areas in Communications,
    35(5):1154–1162, may 2017.
    J. Ferrandiz-Lahuerta, D. Camps-Mur, and J. Paradells-Aspas.
    A Reliable Asynchronous Protocol for VLC Communications
    Based on the Rolling Shutter Effect.
    In 2015 IEEE Global Communications Conference (GLOBECOM),
    pages 1–6. IEEE, dec 2015.

    View full-size slide

  29. References II
    C. Fragouli, J.-Y. Le Boudec, and J. Widmer.
    Network Coding: An Instant Primer.
    ACM SIGCOMM Computer Communication Review, 36(1):63, 2006.
    J. Hao, Y. Yang, and J. Luo.
    CeilingCast: Energy efficient and location-bound broadcast
    through LED-camera communication.
    In IEEE INFOCOM 2016 - The 35th Annual IEEE International
    Conference on Computer Communications, volume 2016-July, pages
    1–9. IEEE, apr 2016.
    Y.-S. Kuo, P. Pannuto, K.-J. Hsiao, and P. Dutta.
    Luxapose.
    In Proceedings of the 20th annual international conference on
    Mobile computing and networking - MobiCom ’14, pages 447–458,
    New York, New York, USA, sep 2014. ACM Press.

    View full-size slide

  30. References III
    H.-Y. Lee, H.-M. Lin, Y.-L. Wei, H.-I. Wu, H.-M. Tsai, and K. C.-J.
    Lin.
    RollingLight.
    In Proceedings of the 13th Annual International Conference on
    Mobile Systems, Applications, and Services - MobiSys ’15, pages
    167–180, New York, New York, USA, 2015. ACM Press.
    M. Matsumoto and T. Nishimura.
    Mersenne twister: a 623-dimensionally equidistributed uniform
    pseudo-random number generator.
    ACM Transactions on Modeling and Computer Simulation,
    8(1):3–30, jan 1998.

    View full-size slide

  31. References IV
    N. Rajagopal, P. Lazik, and A. Rowe.
    Visual light landmarks for mobile devices.
    In IPSN-14 Proceedings of the 13th International Symposium on
    Information Processing in Sensor Networks, volume 32, pages
    249–260. IEEE, apr 2014.
    Y. Yang, J. Hao, and J. Luo.
    CeilingTalk: Lightweight Indoor Broadcast Through
    LED-Camera Communication.
    IEEE Transactions on Mobile Computing, (April):1–1, 2017.

    View full-size slide