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.
Download
Report
Transcript 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.
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?