450 likes | 577 Vues
LightSync introduces an innovative approach to visual communication by utilizing unsynchronized optical links for transmitting information via screens and camera devices. This method enables smartphones to link to online content without requiring additional connectivity, effectively sending information like attraction details and movie showtimes. The system addresses challenges like frame synchronization and image quality while leveraging commodity devices. With dynamic frame rate adaptability and inter-frame coding, LightSync provides a robust solution for free, directional, and lightweight visual communication.
E N D
LightSync: Unsynchronized Visual Communication over Screen-Camera Links Wenjun Hu Hao Gu Qifan Pu
(“Linking” to online information) http://www.windowsphone.com/zh-cn
A video of barcodes instead • “Transmitting” information (vs linking) • E.g., information on Gibraltarian attractions • E.g., movie show times for nearby theaters Receiver Transmitter
Visual communications on phones • No need for additional connectivity • Free, directional, lightweight links • “Optical” software-defined radio • Run as apps on commodity devices
Many challenges • Frame synchronization • Poor image quality • Limited computation power on phones • Aesthetics…
In the rest of the talk… • Frame synchronization challenges • LightSync design • Implementation and evaluation
Frame rate mismatch Screen side (TX) Camera side (RX) 15 – 30 fps in practice Variable Lighting conditions Device capability API/system factors • 30fps video playback • Fairly stable High rate, steady Low rate, unsteady
Received frame patterns Original frame
Received frame patterns Mixing pattern varies by line Original frame Single frame 2-frame mix
Received frame patterns Due to Rolling Shutter Mixing pattern (& #components) varies by line CMOS camera sensor scans one line (of pixels) at a time 2-frame mix
Received frame patterns Mixing pattern varies by line Original frame Single frame 2-frame mix Consecutive frames indicating a missing frame 3-frame mix
Display frame rate Occasional missed frames 4-frame mixes 2C C – Frame capture rate Occasional missed frames 3-frame mix 3-frame mix C C/2
Synchronized communication Display frame rate 2C C – Frame capture rate (of worst camera) Cannot be used Under-utilized and inefficient! C The only decodable pattern Framesynchronized Carries information But undecodable and dropped C/2
Unsynchronized communication Display frame rate (fps) 30 Works with any display and capture rates Higher camera capture rate, better performance 0 15 Supported frame capture rate (fps) 30
Requirements • Need to be able to decode mixed frames • In-frame color tracking per line • Need to guard against lost frames/lines • Inter-frame erasure coding • Essentially a temporal code across frames • Works with any (monochrome) per-frame code
Our solution: LightSync • Need to be able to decode mixed frames • In-frame grayscale tracking per line • Need to guard against lost frames/lines • Inter-frame erasure coding • Essentially a temporal code across frames • Works with any (monochrome) per-frame code
LightSync • Need to be able to decode mixed frames • In-frame grayscale tracking per line • Need to guard against lost frames/lines • Inter-frame erasure coding
Per-line tracking: Mixing patterns • 3 frames mixing → 3 blocks mixing • Bl or w per block → 8 mixing possibilities Frame 1 Frame 2 Frame 3 → ? ? ? RX TX
Per-line tracking: Mixing patterns Frame 1 TX Frame 2 Frame 3 Line 1 RX Line 2 Line 3
Per-line tracking: Mixing patterns • Trivial cases Frame 1 TX Frame 2 Frame 3 Line 1 RX Line 2 Line 3
Per-line tracking: Mixing patterns • Easy cases Frame 1 TX Frame 2 Frame 3 Line 1 RX Line 2 Line 3
Per-line tracking: Mixing patterns • Tricky cases, to be tracked per line Frame 1 TX Frame 2 Frame 3 Line 1 RX Line 2 Line 3
Per-line tracking: Reference blocks Corner Corner Code area Corner Corner Tracking bars Scanning direction Tracking bar orientation
Per-line tracking: Reference blocks Tracking bar 1 Tracking bar 2 Tracking bar 3 Tracking bar 4 4 reference blocks per line Txframe1 Tx frame 2 Tx frame 3 Tx frame 4 Tx frame 5 (repeats)
Per-line tracking: Reference blocks Tracking bar 1 Tracking bar 2 Tracking bar 3 Tracking bar 4 Txframe1 Tx frame 2 Tx frame 3 Tx frame 4 Tx frame 5 (repeats)
Per-line tracking: Reference blocks Tracking bar 1 Tracking bar 2 Tracking bar 3 Tracking bar 4 Txframe1 Tx frame 2 Reference colors of mixes Tx frame 3 Tx frame 4 Decoding by comparison Tx frame 5 (repeats)
LightSync • Need to be able to decode mixed frames • In-frame grayscale tracking per line • Need to guard against lost frames/lines • Inter-frame erasure coding
Inter-frame coding • Simple pairwise XOR Group of 3 original frames Coded frames
Inter-frame coding • Looping display on screen … All original frames … Coded frames Camera stops frame capture after message decoded
Implementation Inter-frame intervals Current frame capture rate
Performance • Goal recap: Works with any display/capture rate combinations • Metric: Effective frame capture rate • Actual throughput scales with per-frame capacity
Schematic performance For a 20fps phone camera
Schematic performance For a 20fps phone camera Ideal Ideal Peaks at the camera rate Level at higher display rates
Schematic performance For a 20fps phone camera Ideal Peaks at ~ half the camera rate Drops to 0 at higher display rates Conventional
Schematic performance For a 20fps phone camera Ideal LightSync Peaks at the camera rate Slight drops at higher display rates Conventional
LightSync performance Nokia Lumia 920 (~30 fps)
LightSync performance Nokia Lumia 920 (~30 fps) HTC One X (~20 fps)
LightSync performance Nokia Lumia 920 (~30 fps) HTC One X (~20 fps) Works with any display and capture rates Higher camera capture rate, better performance Huawei Ascend C8812E (~15 fps)
Conclusion and outlook • LightSync: Unsynchronized visual communication • Primitive for similar scenarios • Lots of potential in the space of visual communication
Thank you! wenjun@microsoft.com
Related work • Temporal barcode design (inter-frame) • Unsynchronized 4D Barcodes • Basically slows down display, only for TX up to 10fps • Spatial barcode design (per-frame layout) • COBRA: Optimized for phone-to-phone • PixNet: High-end camera, computationally intensive, offline processing • Other work on visible light communications