streaming video gabriel nell uc berkeley. outline scalable mpeg-4 video – layered coding method...

23
Streaming Video Streaming Video Gabriel Nell UC Berkeley

Post on 21-Dec-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

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?