Esercizio - Buffer di riproduzione e streaming adattativo (domande ed esercizi del corso)
In questa pagina 5
Teoria: Streaming adattativo e DASHPer non stallare serve $R_C\le S$ (tasso di codifica non superiore al throughput), ma $R_C$ si controlla e $S$ no. Se $S<R_C$ la latenza cresce, i buffer dei router si riempiono e si perdono pacchetti; né il drop brutale né il transcoding in rete sono praticabili, la scalabilità (SVC) è parziale. La soluzione dominante è lo streaming adattativo (ABR) tirato dal client su HTTP: il video è diviso in $N$ segmenti da $T_S$ secondi, ciascuno in $K$ livelli di bit-rate $R_C(k)$ descritti nell'MPD; il client sceglie il livello $q(n)$ di ogni segmento con $T_D=\frac{T_SR_C(q)}{S_n}$. Il playout buffer $B(t)$ (in secondi di video) segue $B'=\frac S{R_C}$ durante lo stallo e $B'=\frac S{R_C}-1$ durante la riproduzione; si parte dopo $L$ segmenti e dopo uno stallo si riprende con $M$ nuovi segmenti. La QoE si modella con $J=\sum_n\lambda_1k_n-\lambda_2\lvert k_n-k_{n-1}\rvert-\phi(\Delta_n)-\lambda_3T_{ST}$. Gli algoritmi ABR sono basati su throughput, buffer o ibridi; MPEG-DASH standardizza MPD e segmenti, non il client.Streaming adattativo e DASH → (playout buffer , pendenze e , parametri , , , QoE ). Fonte: domande a risposta multipla ed esempi di preparazione, esercizi delle slide del corso di Reti di Calcolatori, Ing. Informatica UniPD 2025-26. Conti verificati in Python (simulazione del modello a fluido).
Richiami essenziali: si misura in secondi di video. Con costante in un intervallo: durante lo stallo o il buffering iniziale ; durante la riproduzione . La riproduzione riparte dopo segmenti (inizio) o (dopo uno stallo). Il tempo di download di un segmento è .
1. Domande di preparazione
Domanda 1. Un video ha frame rate 25 fps e dimensione media dei frame 40 kbit; è trasmesso su una rete con throughput costante Mbit/s; il client ha un buffer iniziale di 2 secondi. Quale affermazione è corretta? (a) il buffer tende a riempirsi, (b) tende a svuotarsi, (c) il sistema è in equilibrio perfetto, (d) si verifica sempre rebuffering.
Mbit/s. : in riproduzione , il buffer si riempie di s ogni secondo: (a). (b) falsa perché ; (c) falsa, servirebbe (allora ); (d) falsa: non ci sono stalli perché il buffer cresce.
Domanda 2. Stesso sistema, ma Mbit/s e buffer iniziale di 5 secondi. Dopo quanto tempo dall'inizio del playout si svuota il buffer? (a) 25 s, (b) 20 s, (c) 10 s, (d) 50 s.
Mbit/s. All'inizio del playout : il buffer perde s per ogni secondo di riproduzione. s: (a). (b) 20 s si avrebbe con s; (c) 10 s con s; (d) 50 s con s (o con ): ricordare che il tempo di svuotamento è e non diviso .
Domanda 3. Un video dura 50 s ed è a bit-rate costante Mbit/s. La rete ha Mbit/s per i primi 10 s, poi Mbit/s. Il client ha buffer iniziale 0 e riproduce subito. Quale affermazione è corretta? (a) il buffer cresce e poi si svuota causando re-buffering, (b) cresce e poi si svuota senza re-buffering, (c) è sempre vuoto, (d) cresce indefinitamente.
- Primi 10 s: , : s (il client riceve Mbit/s e consuma : accumula Mbit/s, cioè Mbit in s, pari a s di video).
- Dopo 10 s: , (le slide scrivono per errore ""): il buffer si svuota in s, cioè a s.
- A s il video non è finito (dura 50 s): c'è re-buffering: (a). (b) è falsa: non si "svuota senza stallo" perché svuotare il buffer prima della fine del video è lo stallo; (c), (d) sono incompatibili con le pendenze.
Domanda 4 (GOP). (Domanda 20 di preparazione: 30 fps, GOP , kbit, , Mbit/s: , il buffer tende a svuotarsi: vedi Esercizio - Stima del movimento, GOP e bit-rate del video (domande ed esercizi del corso).)
2. Esercizio 1 delle slide: buffering iniziale minimo
Sistema ABR con s, livelli kbit/s, Mbit/s, Mbit/s. Il buffering iniziale dura secondi (è la durata, non la quantità di video). è l'istante in cui arriva il primo bit. Throughput: Mbit/s per , Mbit/s per . Il client chiede sempre il livello 1 ( Mbit/s). Trovare il minimo buffering iniziale che assicura nessuno stallo.
Soluzione. Pendenze con : in ; dopo : .
- Se : il buffer cresce con pendenza fino a , poi con pendenza fino a (ancora in buffering), poi in riproduzione con pendenza : non si svuota mai. Nessuno stallo.
- Se : in , quindi . Poi si riproduce con : pendenza , quindi , che si annulla a . Per non stallare prima che la pendenza diventi 0 (a ) serve , cioè .
- Minimo: . In generale (per dà ).
Controllo numerico: con s, s. Con s il buffer si svuota poco prima di e c'è stallo; con s il buffer arriva a 0 esattamente a s e poi resta costante (in ).
Variante costruita: Mbit/s, Mbit/s per s e Mbit/s dopo. s: si annulla a .
3. Esercizio 2 delle slide
Sistema con s, livelli kbit/s, Mbit/s, Mbit/s; buffering iniziale di segmenti; dopo il re-buffering si riparte con segmento. è l'arrivo del primo bit. Throughput: Mbit/s per ; Mbit/s per ; Mbit/s per (secondi).
Domande 1-2. Se il client chiede sempre il livello massimo (), quando inizia il playout? Frequenza e durata del re-buffering?
Inizio del playout. Servono segmenti da Mbit: 4 Mbit totali. Nei primi 2 s: Mbit; nel secondo successivo: Mbit; mancano Mbit, che a Mbit/s richiedono s: s, con s (anche con la pendenza: ; ; ✓, con pendenze ).
Re-buffering. Da si riproduce con : : il buffer perde s al secondo e si svuota dopo s ( s). In quel momento sono stati ricevuti s di video: tutti i segmenti arrivati sono stati riprodotti, . Per riprendere servono segmento (quello corrente è già interamente scaricato): s, durante i quali e quindi s. Poi e il buffer si svuota in s. Ogni stallo dura s e si ripete ogni s.
Grafico interattivo: Esercizio 2, strategia sempre livello 3: B(t) cresce fino a 2 s a t = 3,5 s, poi cala di 0,1 s/s fino a 0 (t = 23,5 s); ogni stallo dura 1,11 s e il ciclo si ripete ogni 11,11 s
Domanda 3. Mostrare che la regola se , se evita il re-buffering.
Il playout inizia a s con s (i primi due segmenti sono a livello 3, come prima). Il segmento 3 è a livello 2 ( Mbit/s): tempo di download s; durante il download : al termine s. I segmenti 4, 5, 6, 7 sono a livello 3: ciascuno richiede s, in totale s, con : al termine s. Siamo di nuovo nella situazione di s: il ciclo si ripete ogni 5 segmenti (periodo s). Il buffer oscilla tra 2 e s e non si svuota mai.
Grafico interattivo: Esercizio 2, domanda 3: il livello 2 al terzo segmento di ogni cinque tiene B(t) tra 2 s e 2,44 s: nessuno stallo
Domanda 4. La strategia ( tranne ogni ) è meglio di (sempre livello 2)? Usando :
- : nessuno stallo (domanda 3). ; il livello cambia due volte ogni 5 segmenti ( e ): . .
- : nessuno stallo (controllo: Mbit/s; il playout parte con 2 segmenti da 1 Mbit: Mbit a Mbit/s richiedono s, s, s; poi fino a (), in (), poi : sempre positivo). , nessun cambio: con s.
- , con s. Per grande il primo termine domina: se e solo se . Con , : : vince per non troppo piccolo. Con : , vince. La scelta dipende dai pesi, fissati con esperimenti soggettivi.
4. Esempio con una sequenza di download
Con , , e tempi di download dati (esempio delle slide): fase 1 (buffering iniziale, , più ripido quando un segmento si scarica in fretta); fase 2 (riproduzione con : , il buffer cresce piano); fase 3 (il throughput crolla, molto grande: , il buffer si svuota); fase 4 (stallo con , : il buffer ricomincia a salire); fase 5 (riprende quando un segmento intero, , è scaricato); fase 6 (due segmenti scaricati con : il buffer cresce); fase 7 (fine: si riproduce senza ricevere più, ). Con il buffer all'avvio è più piccolo e lo stallo arriva prima e dura di più.
Errori tipici
- Misurare in bit invece che in secondi di video.
- Usare come pendenza in riproduzione: manca il (che rappresenta il consumo di 1 secondo di video al secondo).
- Calcolare il tempo di svuotamento come invece di .
- Dimenticare che durante lo stallo non si consuma () e che dopo lo stallo si riprende solo con segmenti completi.
- Confondere (segmenti prima dell'avvio) ed (segmenti prima della ripresa), oppure (istante di avvio) con il numero di segmenti.
- Scambiare la scelta del livello (la fa il client, segmento per segmento) con una decisione del server o della rete.
Versione ripasso
Regole. in secondi di video. Stallo o buffering iniziale: ; riproduzione: (riempie se , svuota se ). Svuotamento dopo . . Ripresa dopo segmenti completi; avvio dopo .
Domande.
- 25 fps 40 kbit Mbit/s, : , il buffer si riempie.
- , s: , vuoto a s.
- , per 10 s (, s), poi (): vuoto a s, video da 50 s re-buffering (la slide scrive per errore ).
- GOP I+9P ( kbit, , 30 fps, ): , il buffer si svuota.
Slide, esercizio 1 ( Mbit/s, per , dopo): pendenze , poi 1 (buffering) o 0 (riproduzione). Se : , vuoto a ; serve : (: 2 s). Variante , per 10 s, poi 2: s.
Slide, esercizio 2 ( s, livelli Mbit/s, , ; in , in , dopo).
- Sempre livello 3: 4 Mbit servono; Mbit entro , restano Mbit a : s s, s. Poi : vuoto dopo 20 s ( s). Stallo di segmento: s (, s); poi 10 s di riproduzione: periodo s.
- Livello 3 tranne (livello 2): segmento 3: s, , s; segmenti 4-7: s a , s; periodo 5 s; , nessuno stallo.
- QoE: ; sempre livello 2: nessuno stallo, s, ; : per grande.
Sequenza di download (, ): buffering iniziale crescita lenta crollo del throughput e svuotamento stallo ripresa dopo un segmento crescita coda finale . : stalli prima e più lunghi.
Errori tipici: in bit; pendenza in riproduzione (manca il ); svuotamento come ; consumo durante lo stallo; contro ; scelta del livello attribuita al server.
Formula generale del buffering minimo. Con per e dopo: . Con segmenti iniziali: servono bit prima dell'avvio.