Streaming VideoStreaming Video
Gabriel Nell
UC Berkeley
OutlineOutline
Scalable MPEG-4 video– Layered coding method– Integrated transport-decoder buffer model
RAP streaming congestion controlQuality adaptation over RAPPrefetching VBR prerecorded video
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
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
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
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
Enhancement Layer Enhancement Layer PerformancePerformance
Simulation shows PSNR improvement proportional to amount of enhancement layer received
PSNR at Different RatesPSNR at Different Rates
Integrated Transport-DecoderIntegrated Transport-Decoder
Receiver buffer model– Transport delay parameters
Packet loss, jitter, etc.
– Video encoder buffer constraints Min and max buffer bounds
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
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)
RAP Congestion ControlRAP Congestion Control
RAP: Rate Adaptation ProtocolMotivation: make realtime streaming
applications behave properly; “TCP-friendly”
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
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
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
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
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
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
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
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
Decentralized PrefetchingDecentralized Prefetching
Multiple video serversWindow-based flow controlDynamic send window: increase send
window to clients with depleted buffers
PerformancePerformanceAllows near-100% link utilization, with low
probability of buffer starvation
Questions?Questions?