salsify low latency network video through tighter
play

Salsify: Low-Latency Network Video Through Tighter Integration - PowerPoint PPT Presentation

Salsify: Low-Latency Network Video Through Tighter Integration Between a Video Codec and a Transport Protocol Sadjad Fouladi, John Emmons, Emre Orbay, Catherine Wu, Riad S. Wahby, Keith Winstein https://snr.stanford.edu/salsify Internet video


  1. Order two, pick the one that fits! • Salsify’s functional video codec can explore different execution paths without committing to them. • For each frame, codec presents the transport with three options: A slightly-higher-quality version, B K 0 5 A slightly-lower-quality version, better ❌ Discarding the frame. worse 1 0 K B � 60

  2. Salsify’s architecture: Unified control loop transport protocol & video codec � 61

  3. Codec → Transport 
 “Here’s two versions of the current frame.” B K 0 5 r e t t e b w o r s e 2 5 K B target frame size 30 KB � 62

  4. Transport → Codec 
 “I picked option 2. Base the next frame on its exiting state.” 2 5 K B target frame size 30 KB � 63

  5. Codec → Transport 
 “Here’s two versions of the latest frame.” B K 0 5 r e t t e b w o r s e 2 5 K B target frame size 55 KB � 64

  6. Transport → Codec 
 “I picked option 1. Base the next frame on its exiting state.” B K 0 5 target frame size 55 KB � 65

  7. Codec → Transport 
 “Here’s two versions of the latest frame.” B K 0 7 r e t t e b w o r s e 5 2 5 0 K K B B target frame size 5 KB � 66

  8. Transport → Codec 
 “I cannot send any frames right now. Sorry, but discard them.” target frame size 5 KB � 67

  9. Codec → Transport 
 “Fine. Here’s two versions of the latest frame.” 45 KB better worse 20 KB target frame size 50 KB � 68

  10. Transport → Codec 
 “I picked option 1. Base the next frame on its exiting state.” 45 KB target frame size 50 KB � 69

  11. There’s no notion of frame rate or bit rate in the system. 
 Frames are sent when the network can accommodate them.

  12. Loss recovery • Option 1: Ignore dropped packets. • Option 2: Retransmit dropped packets. • Option 3: Restart the video stream with a keyframe or a “key-slice.” � 71

  13. Loss corrupts the current frame... frame corrupted frame � 72

  14. Loss corrupts the current frame... and the rest! frame corrupted frame frame frame � 73

  15. Loss recovery • Option 1: Ignore dropped packets. • Option 2: Retransmit dropped packets. • Option 3: Restart the video stream with a keyframe or a “key-slice.” � 74

  16. Option 5, Salsify’s way: Jump back to the last correct state � 75

  17. Measurement Testbed

  18. Goals for the measurement testbed • A system with 
 reproducible input video and 
 reproducible network traces that runs 
 unmodified version of the system-under-test. • Target QoE metrics: image quality and video delay . � 77

  19. Goals for the measurement testbed • A system with 
 reproducible input video and 
 reproducible network traces that runs 
 unmodified version of the system-under-test. • Target QoE metrics: image quality and video delay . � 78

  20. Goals for the measurement testbed • A system with 
 reproducible input video and 
 reproducible network traces that runs 
 unmodified version of the system-under-test. • Target QoE metrics: image quality and video delay . � 79

  21. � � � � � � � � � � � � � Video delay ! ! ! ! ! ! sender receiver ! time � 80

  22. Sender Receiver Network Simulator Video AV.io System Measurement System

  23. � 82

  24. emulated network receiver HDMI output barcoded video video in/out (HDMI) HDMI to USB camera

  25. emulated network receiver HDMI output barcoded video video in/out (HDMI) HDMI to USB camera

  26. emulated network receiver HDMI output barcoded video video in/out (HDMI) HDMI to USB camera

  27. emulated network receiver HDMI output barcoded video video in/out (HDMI) HDMI to USB camera

  28. emulated network receiver HDMI output barcoded video video in/out (HDMI) HDMI to USB camera

  29. emulated network receiver HDMI output barcoded video video in/out (HDMI) HDMI to USB camera

  30. emulated network receiver HDMI output barcoded video video in/out (HDMI) HDMI to USB camera

  31. Sent Image Timestamp: T+0.000s Received Image Timestamp: T+0.765s Quality: 9.76 dB SSIM

  32. Evaluation of Salsify

  33. Evaluation results: Verizon LTE Trace 18 Video Quality (SSIM dB) 16 Skype WebRTC (VP9-SVC) 14 FaceTime WebRTC 12 Better 10 Hangouts 8 7000 5000 2000 1000 700 500 Video Delay (95th percentile ms)

  34. Evaluation results: Verizon LTE Trace 18 Video Quality (SSIM dB) 16 Skype WebRTC (VP9-SVC) 14 FaceTime WebRTC 12 Status Quo (conventional transport 10 and codec) Hangouts 8 7000 5000 2000 1000 700 500 Video Delay (95th percentile ms)

  35. Evaluation results: Verizon LTE Trace 18 Video Quality (SSIM dB) 16 Skype WebRTC (VP9-SVC) 14 FaceTime WebRTC Salsify (conventional codec) 12 Status Quo (conventional transport 10 and codec) Hangouts 8 7000 5000 2000 1000 700 500 Video Delay (95th percentile ms)

  36. Evaluation results: Verizon LTE Trace 18 Salsify Video Quality (SSIM dB) 16 Skype WebRTC (VP9-SVC) 14 FaceTime WebRTC Salsify (conventional codec) 12 Status Quo (conventional transport 10 and codec) Hangouts 8 7000 5000 2000 1000 700 500 Video Delay (95th percentile ms)

  37. Evaluation results: Grace Period 18 Salsify Video Quality (SSIM dB) 16 Skype WebRTC (VP9-SVC) 14 FaceTime WebRTC Salsify (conventional codec) 12 Status Quo (conventional transport 10 and codec) Hangouts Salsify (no grace period) 8 7000 5000 2000 1000 700 500 Video Delay (95th percentile ms)

  38. Evaluation results: AT&T LTE Trace 16 Salsify 15 WebRTC (VP9-SVC) Video Quality (SSIM dB) FaceTime 14 13 WebRTC 12 Hangouts 11 r e t t 10 e B Skype 9 8 5000 2000 1000 700 500 300 200 Video Delay (95th percentile ms)

  39. Evaluation results: T-Mobile UMTS Trace 14 Salsify Video Quality (SSIM dB) 13 WebRTC (VP9-SVC) Skype WebRTC 12 11 FaceTime r e t t e B 10 Hangouts 9 18000 14000 10000 7000 5000 3500 Video Delay (95th percentile ms)

  40. Network Variations Watch the video at: https://snr.stanford.edu/salsify Salsify WebRTC (Google Chrome 65.0 dev)

  41. Network Outages Watch the video at: https://snr.stanford.edu/salsify Salsify WebRTC (Google Chrome 65.0 dev)

Recommend


More recommend