Video Streaming


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Low complexity so it scales well Client-driven flow control so it can adapt to multicast
  • I-frames DCT, uses P-frames
  • EZW = Embedded Zerotrees of Wavelet Coefficients SPIHT Set partitioning in hierarchical trees
  • ITD model dictates how to allocate buffers to according to video and network parameters to maximize performance (buffer efficiency)
  • Priority in the sense that they are sent earlier, not QoS sense
  • Start up delay may be better on faster links
  • Clustered loss detection: one congestion event could have caused multiple losses, so rather than decreasing the rate several times, do it once Fine-grain rate adaptation: use short-term exponential moving average for RTT. Allows stability to transient congestion, but performs AIMD at coarses granularity
  • TCP more sensitive because window based
  • Layered approach also allows proxy caching
  • Efficiency == (BUF_total – BUF_drop) / BUF_total
  • 1 – means each client should have an equal number of frames in its buffer
  • Loss = long term fraction of frame periods in which playback starvation occured
  • Video Streaming

    1. 1. Streaming Video Gabriel Nell UC Berkeley
    2. 2. Outline <ul><li>Scalable MPEG-4 video </li></ul><ul><ul><li>Layered coding method </li></ul></ul><ul><ul><li>Integrated transport-decoder buffer model </li></ul></ul><ul><li>RAP streaming congestion control </li></ul><ul><li>Quality adaptation over RAP </li></ul><ul><li>Prefetching VBR prerecorded video </li></ul>
    3. 3. Streaming Video Design Considerations <ul><li>Stream must adapt to widely varying Internet link speeds and client processing power </li></ul><ul><li>Server should be low complexity </li></ul><ul><li>Client-driven flow control and lost packet recovery </li></ul>
    4. 4. Layered Video <ul><li>Prediction-based base layer </li></ul><ul><ul><li>DCT motion-compensated </li></ul></ul><ul><ul><li>Carries minimally-acceptable quality video </li></ul></ul><ul><li>Fine-granular enhancement layer </li></ul><ul><ul><li>Can be decoded progressively </li></ul></ul><ul><ul><li>Fully utilizes available bandwidth </li></ul></ul>
    5. 5. Enhancement Layer Details <ul><li>Highly efficient wavelet-based compression </li></ul><ul><li>Organize wavelet coefficients into spatial orientation trees </li></ul><ul><ul><li>Decaying spectrum hypothesis: energies of wavelet coefficients decay as they move from the root </li></ul></ul><ul><ul><li>Allows pruning to select most important coefficients </li></ul></ul>
    6. 6. Enhancement Layer Details <ul><li>Wavelet coefficient organization (cont’d) </li></ul><ul><ul><li>“Significant” coefficients are identified, most significant bit transmitted </li></ul></ul><ul><ul><li>Second MSB for each significant coefficient transmitted, then third, etc. </li></ul></ul><ul><ul><li>After complete information about significant coefficients transmitted, change threshold and repeat </li></ul></ul>
    7. 7. Enhancement Layer Performance <ul><li>Simulation shows PSNR improvement proportional to amount of enhancement layer received </li></ul>
    8. 8. PSNR at Different Rates
    9. 9. Integrated Transport-Decoder <ul><li>Receiver buffer model </li></ul><ul><ul><li>Transport delay parameters </li></ul></ul><ul><ul><ul><li>Packet loss, jitter, etc. </li></ul></ul></ul><ul><ul><li>Video encoder buffer constraints </li></ul></ul><ul><ul><ul><li>Min and max buffer bounds </li></ul></ul></ul>
    10. 10. Integrated Transport-Decoder <ul><li>Buffer divided into temporal segments </li></ul><ul><li>Buffer size optimized to accommodate </li></ul><ul><ul><li>Start-up delay </li></ul></ul><ul><ul><li>Retransmission delay </li></ul></ul><ul><li>Flow control regulated to match bottleneck link </li></ul><ul><li>Retransmitted packets have higher priority than enhancement layer packets </li></ul>
    11. 11. ITD Performance <ul><li>Tested 15kbps video over 33.6kbps modem locally and across the country </li></ul><ul><li>Performance measured by number of retransmission requests, failures, successes </li></ul><ul><li>Performance was good, proportional to start-up delay (3-7 seconds) </li></ul>
    12. 12. RAP Congestion Control <ul><li>RAP: Rate Adaptation Protocol </li></ul><ul><li>Motivation: make realtime streaming applications behave properly; “TCP-friendly” </li></ul>
    13. 13. RAP Protocol <ul><li>Source sends data packets with sequence numbers </li></ul><ul><li>Receiver acknowledges packets </li></ul><ul><li>Congestion detection </li></ul><ul><ul><li>Indicated by lost packets </li></ul></ul><ul><ul><li>Variable such as RTT calculated similar to the way TCP calculates them </li></ul></ul>
    14. 14. RAP Protocol <ul><li>Sender rate-control decision function </li></ul><ul><ul><li>If no congestion detected, periodically increase transmission rate </li></ul></ul><ul><ul><li>If congestion detected, immediately decrease transmission rate </li></ul></ul><ul><li>Additional Features </li></ul><ul><ul><li>Clustered loss detection </li></ul></ul><ul><ul><li>Fine-grain rate adaptation </li></ul></ul>
    15. 15. RAP Performance <ul><li>Simulation shows TCP-friendliness </li></ul><ul><li>Performance is a little different from TCP </li></ul><ul><ul><li>TCP more sensitive to number of outstanding packets </li></ul></ul><ul><ul><li>RAP more aggressive due to clustered loss detection and fine-grain rate adaptation </li></ul></ul>
    16. 16. Quality Adaptation for Congestion Control <ul><li>Motivation: single video server streaming on demand to heterogeneous clients </li></ul><ul><li>Quality Adaptation: adjust the quality of the stream during playback to maximize quality given bandwidth </li></ul><ul><li>Use hierarchical (layered) approach </li></ul>
    17. 17. Layered Quality Adaptation <ul><li>Coarse-grain mechanism for adding and removing layers </li></ul><ul><li>Adding a layer </li></ul><ul><ul><li>When available bandwidth is greater than existing consumption plus the new layer </li></ul></ul><ul><ul><li>When the receiver has sufficient buffer space available </li></ul></ul><ul><li>Layers dropped immediately on congestion </li></ul>
    18. 18. Layered Quality Adaptation <ul><li>Inter-layer buffer allocation </li></ul><ul><ul><li>Keep track of buffered data, send less to clients with data already buffered </li></ul></ul><ul><ul><li>Provide more buffering for lower layers for increased protection </li></ul></ul><ul><ul><li>Use smoothing </li></ul></ul><ul><ul><ul><li>If there is bandwidth for 2.9 layers, send 3 layers 90% of the time </li></ul></ul></ul><ul><li>Performance </li></ul><ul><ul><li>Depending on smoothing parameters, buffer allocation efficiency ranged from 96% to 99.99% in simulation </li></ul></ul>
    19. 19. Prefetching VBR Prerecorded Video <ul><li>Prerecorded video </li></ul><ul><ul><li>Size (in bits) for every frame is known in advance </li></ul></ul><ul><ul><li>Frames can be prefetched into memory </li></ul></ul><ul><ul><li>Nature of VBR means there will be periods of link underutilization </li></ul></ul><ul><li>Collaborative protocol manages buffers of all clients </li></ul>
    20. 20. JSQ Prefetch <ul><li>JSQ: join shortest queue </li></ul><ul><ul><li>Measure buffer length in terms of number of frames rather than bits </li></ul></ul><ul><ul><li>Balance number of frames across all prefetch buffers </li></ul></ul><ul><ul><li>At each time interval, the server iteratively adds a frame to the buffer with the smallest number of frames </li></ul></ul><ul><ul><li>Allows near-100% link utilization, quick recovery from pauses and time jumps </li></ul></ul>
    21. 21. Decentralized Prefetching <ul><li>Multiple video servers </li></ul><ul><li>Window-based flow control </li></ul><ul><li>Dynamic send window: increase send window to clients with depleted buffers </li></ul>
    22. 22. Performance <ul><li>Allows near-100% link utilization, with low probability of buffer starvation </li></ul>
    23. 23. Questions?