23
Streaming Video Streaming Video Gabriel Nell UC Berkeley

Video Streaming

  • Upload
    ronny72

  • View
    229

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Video Streaming

Streaming VideoStreaming Video

Gabriel Nell

UC Berkeley

Page 2: Video Streaming

OutlineOutline

Scalable MPEG-4 video– Layered coding method– Integrated transport-decoder buffer model

RAP streaming congestion controlQuality adaptation over RAPPrefetching VBR prerecorded video

Page 3: Video Streaming

Streaming Video Design Streaming Video Design ConsiderationsConsiderations

Stream must adapt to widely varying Internet link speeds and client processing power

Server should be low complexityClient-driven flow control and lost packet

recovery

Page 4: Video Streaming

Layered VideoLayered Video

Prediction-based base layer– DCT motion-compensated– Carries minimally-acceptable quality video

Fine-granular enhancement layer– Can be decoded progressively– Fully utilizes available bandwidth

Page 5: Video Streaming

Enhancement Layer DetailsEnhancement Layer Details

Highly efficient wavelet-based compressionOrganize wavelet coefficients into spatial

orientation trees– Decaying spectrum hypothesis: energies of

wavelet coefficients decay as they move from the root

– Allows pruning to select most important coefficients

Page 6: Video Streaming

Enhancement Layer DetailsEnhancement Layer Details

Wavelet coefficient organization (cont’d)– “Significant” coefficients are identified, most

significant bit transmitted– Second MSB for each significant coefficient

transmitted, then third, etc.– After complete information about significant

coefficients transmitted, change threshold and repeat

Page 7: Video Streaming

Enhancement Layer Enhancement Layer PerformancePerformance

Simulation shows PSNR improvement proportional to amount of enhancement layer received

Page 8: Video Streaming

PSNR at Different RatesPSNR at Different Rates

Page 9: Video Streaming

Integrated Transport-DecoderIntegrated Transport-Decoder

Receiver buffer model– Transport delay parameters

Packet loss, jitter, etc.

– Video encoder buffer constraints Min and max buffer bounds

Page 10: Video Streaming

Integrated Transport-DecoderIntegrated Transport-Decoder

Buffer divided into temporal segmentsBuffer size optimized to accommodate

– Start-up delay– Retransmission delay

Flow control regulated to match bottleneck link

Retransmitted packets have higher priority than enhancement layer packets

Page 11: Video Streaming

ITD PerformanceITD Performance

Tested 15kbps video over 33.6kbps modem locally and across the country

Performance measured by number of retransmission requests, failures, successes

Performance was good, proportional to start-up delay (3-7 seconds)

Page 12: Video Streaming

RAP Congestion ControlRAP Congestion Control

RAP: Rate Adaptation ProtocolMotivation: make realtime streaming

applications behave properly; “TCP-friendly”

Page 13: Video Streaming

RAP ProtocolRAP Protocol

Source sends data packets with sequence numbers

Receiver acknowledges packetsCongestion detection

– Indicated by lost packets– Variable such as RTT calculated similar to the

way TCP calculates them

Page 14: Video Streaming

RAP ProtocolRAP Protocol

Sender rate-control decision function– If no congestion detected, periodically increase

transmission rate– If congestion detected, immediately decrease

transmission rate

Additional Features– Clustered loss detection– Fine-grain rate adaptation

Page 15: Video Streaming

RAP PerformanceRAP Performance

Simulation shows TCP-friendlinessPerformance is a little different from TCP

– TCP more sensitive to number of outstanding packets

– RAP more aggressive due to clustered loss detection and fine-grain rate adaptation

Page 16: Video Streaming

Quality Adaptation for Quality Adaptation for Congestion ControlCongestion Control

Motivation: single video server streaming on demand to heterogeneous clients

Quality Adaptation: adjust the quality of the stream during playback to maximize quality given bandwidth

Use hierarchical (layered) approach

Page 17: Video Streaming

Layered Quality AdaptationLayered Quality Adaptation

Coarse-grain mechanism for adding and removing layers

Adding a layer– When available bandwidth is greater than

existing consumption plus the new layer– When the receiver has sufficient buffer space

available

Layers dropped immediately on congestion

Page 18: Video Streaming

Layered Quality AdaptationLayered Quality Adaptation

Inter-layer buffer allocation– Keep track of buffered data, send less to clients with

data already buffered– Provide more buffering for lower layers for increased

protection– Use smoothing

If there is bandwidth for 2.9 layers, send 3 layers 90% of the time

Performance– Depending on smoothing parameters, buffer allocation

efficiency ranged from 96% to 99.99% in simulation

Page 19: Video Streaming

Prefetching VBR Prerecorded Prefetching VBR Prerecorded VideoVideo

Prerecorded video– Size (in bits) for every frame is known in

advance– Frames can be prefetched into memory– Nature of VBR means there will be periods of

link underutilization

Collaborative protocol manages buffers of all clients

Page 20: Video Streaming

JSQ PrefetchJSQ Prefetch

JSQ: join shortest queue– Measure buffer length in terms of number of

frames rather than bits– Balance number of frames across all prefetch

buffers– At each time interval, the server iteratively adds

a frame to the buffer with the smallest number of frames

– Allows near-100% link utilization, quick recovery from pauses and time jumps

Page 21: Video Streaming

Decentralized PrefetchingDecentralized Prefetching

Multiple video serversWindow-based flow controlDynamic send window: increase send

window to clients with depleted buffers

Page 22: Video Streaming

PerformancePerformanceAllows near-100% link utilization, with low

probability of buffer starvation

Page 23: Video Streaming

Questions?Questions?