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%.

83124b745752d1a1b0ca2eee1af0bd48?s=128

Alexis DUQUE

October 16, 2017
Tweet

Transcript

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 8.

    LED-to-Camera Channel Figure 2: Frame capture time and inter-frame gap

    • M : camera capture time • N : inter-frame time 6
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 26.

    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
  21. 27.

    Further work • Coding for Multi LEDs communications • Further

    reduce the code overhead • Seed transmission strategy 21
  22. 29.

    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.
  23. 30.

    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.
  24. 31.

    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.
  25. 32.

    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.