Streaming Video
Gabriel Nell
UC Berkeley
Outline
Scalable MPEG-4 video
– Layered coding method
– Integrated transport-decoder buffer model
RAP streaming congestion control
Quality adaptation over RAP
Prefetching VBR prerecorded video
Streaming Video Design
Considerations
Stream must adapt to widely varying
Internet link speeds and client processing power
Server should be low complexity
Client-driven flow control and lost packet recovery
Layered 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 Details
Highly efficient wavelet-based compression
Organize 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 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
Performance
Simulation shows PSNR improvement proportional to amount of enhancement layer received
PSNR at Different Rates
Integrated Transport-Decoder
Receiver buffer model
– Transport delay parameters
Packet loss, jitter, etc.
– Video encoder buffer constraints
Min and max buffer bounds
Integrated Transport-Decoder
Buffer divided into temporal segments
Buffer 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 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 Control
RAP: Rate Adaptation Protocol
Motivation: make realtime streaming applications behave properly; “TCPfriendly”
RAP Protocol
Source sends data packets with sequence numbers
Receiver acknowledges packets
Congestion detection
– Indicated by lost packets
– Variable such as RTT calculated similar to the way TCP calculates them
RAP 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 Performance
Simulation shows TCP-friendliness
Performance 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
Congestion 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 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 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
Video
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 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 Prefetching
Multiple video servers
Window-based flow control
Dynamic send window: increase send window to clients with depleted buffers
Performance
Allows near-100% link utilization, with low probability of buffer starvation
Questions?