Dentro Netflix: ecco come ragiona e perché funziona bene l'algoritmo Per-Title

Diamo uno sguardo un po' più approfondito all'algoritmo Per-Title utilizzato da Netflix per trasmettere in streaming contenuti di qualità in rapporto alla banda disponibile. Lo staff, dopo anni di lavoro, ha sviluppato strategie che tengono conto del singolo contenuto e non un bitrate fisso basato sulla sola risoluzione
di Alessandro Bordin pubblicato il 18 Dicembre 2015 nel canale WebNetflix
Tirando le somme
L'algoritmo Per-Title lavora su più fronti ed è pensato per eseguire compressioni molto più marcate su contenuti "semplici", mantenendo ferma la qualità finale che deve raggiungere un certo livello di PSNR. Ovviamente non fa solo questo ma vediamo un esempio. Bojack Horseman può essere preso ad esempio come film di animazione con contenuti semplici, zone del fotogramma lineari e basso movimento da un fotogramma all'altro.
Flusso 480p con bitrate fisso a 1750kbps visualizzato su display 1080p (dettaglio di una scena) | Flusso 1080p con bitrate 1540kbps regolato da algoritmo Per-Tiitle visualizzato su display 1080p |
Ipotizzando di avere a disposizione una banda di circa 2000kbps, in presenza di trasmissioni a bitrate fisso saremmo costretti a sorbirci il cartone animato con codifica 480p sul nostro bel televisore full HD. Lo schema fisso prevede di utilizzare il bitrate appena più basso di quello rilevato, quindi ci verrebbe imposto il flusso a 1750kbps che corrisponde appunto ai contenuti 480p. Per-Title invece ci garantisce la visione a 1080p con bitrate addirittura più basso, 1540kbps, proprio perché a monte c'è uno studio che ha stabilito la fattibilità dello streaming in alta risoluzione a bitrate basso per questo titolo. Nel particolare a destra si nota nettamente la maggiore definizione.
I più attenti potrebbero però avanzare qualche dubbio: pur con disponibilità di banda, cosa succede se si sceglie di visualizzare questo film di animazione su un tablet che non va oltre la risoluzione 720p? Lo scenario è del tutto realistico, pensando ad esempio ad un bambino che vuol vedere questo cartone animato sul nostro vecchio tablet votato alla causa. C'è abbastanza banda per inviare flussi 1080p 2000kbps, ma il tablet costituisce un limite per via della sua risoluzione inferiore. Sono stati predisposti flussi video ad hoc per le risoluzioni 720p e 480p, al fine di tenere la qualità molto elevata (quindi una minore compressione) in presenza di sufficiente banda.
Orange Is the New Black, una serie televisiva statunitense trasmessa in streaming su Netflix, ci offre lo spunto per capire come Per-Title possa venire incontro anche in contenuti decisamente più complessi. La tabella a schema fisso ci ricorda che il bitrate associato allo streaming 1080p è di 5800kbps. Lo vediamo nella prima delle immagini seguenti.
La seconda immagine riporta il flusso gestito dall'algoritmo Per-Title, ovviamente in presenza di una connessione ad internet con una buona banda passante. A parità di qualità di immagine (sono praticamente identiche), il risparmio di banda è nell'ordine del 20%.
I vantaggi di questo algoritmo sono quindi molteplici. L'algoritmo Per-title, in condizioni di scarsa banda, permette ora di visualizzare video di qualità a risoluzioni elevate per contenuti "semplici" come ad esempio BoJack Horseman. In presenza di banda adeguata, Per-Title può offrire una qualità maggiore spingendosi anche oltre i "limiti tabellari" fissi, oppure mantenere la qualità fissa a un bitrate più basso, a seconda delle esigenze e della disponibilità.
Si pensi poi alla possibilità, in base al contratto Netflix, di visualizzare anche due o quattro flussi contemporanei su altrettanti dispositivi; il risparmio di banda può giocare un ruolo fondamentale nella fruizione o meno di alcuni contenuti all'interno delle mura domestiche anche in termini di qualità. Un algoritmo che viene da lontano ed è figlio di imponenti studi, che sembra aver raggiunto un ottimo compromesso su cui in molti da tempo lavorano ma senza ottenere gli stessi risultati. Ed è già attivo.
23 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoIn realta` non e` chiarissimo dall'articolo. Un bitrate variabile cambia in continuazione durante la riproduzione. Qua sembra che ci siano alcuni livelli predefiniti, stabiliti individualmente per ogni titolo, e si passa da un livello ad un altro a seconda della disponibilita` di banda. Ogni livello pero` e` a bitrate fisso. O almeno cosi` pare...
@Paganetor, @squalho:
Il concetto di fondo e' un altro, anche se ammetto che anche io c'ho messo un po' a capirlo.
I "normali provider" inviano (stupidamente) streaming video diversificando per risoluzione: minore e' la larghezza di banda, minore la risoluzione del video inviato; non entrano nel dettaglio della qualita' percepita, della tipologia di filmato e di tanti altri fattori, hanno semplicemente una tabella (quella all'inizio dell'articolo) che dice che puoi avere una certa risoluzione solo se hai una certa larghezza di banda.
NetFlix invece sembra avere un algoritmo che analizza a priori ogni master e che stabilisce per ogni caso (device, banda, risoluzione, etc.) quale sia il modo migliore per inviarlo tenendo conto della qualita' percepita, non della risoluzione in se.
Per fare un esempio un po' estremo ipotizziamo un video di una parete bianca.
Un provider tradizionale lo mette nella sua libreria e te lo invia in 4k solo se hai a disposizione una 100mbit.
NetFlix PRIMA lo analizza, capisce che puo' comprimerlo al 99% senza alcuna perdita' di qualita', e te lo rende disponibile in 4k anche se hai una 256kbit, e probabilmente anche con una qualita' maggiore rispetto all'altro provider.
parlo da semi profano ma il bitrate variabile non è mai stato applicato in fase di streaming, è una componente della codifica. Anche perché nulla ha a che vedere con gli algoritmi che rimodulano il flusso in streaming in base alla banda a disposizione, il bitrate variabile, da quello che ho capito, funziona un po' come il jpeg, ovvero agisce sul soggetto in funzione di determinate caratteristiche del soggetto, e dell'eventuale cap che viene imposto sul bittate medio e/o massimo.
Comunque, dopo il revival dedicato agli errori delle memorie, mi trovo di nuovo a fare i complimenti per l'articolo.
Tra l'altro l'argomento toccato, nel panorama odierno di fruizione di contenuti in tempo reale, è cruciale. Da anni ci viene sbandierata sotto il naso la "fregna" dello streaming. Guardi quello che vuoi quando vuoi, basta che hai una connessione all'internet. Cominci a sognare, poi ti schianti contro limite di bandwith dei server, bitrate limitato della connessione di casa, bitrate della connessione che crolla tra le 20 e le 24 per sovraffolamento dei kit dei carrier/gestori telefonici.
E scopro ora che in buona parte questi problemi possono essere "aggirati" (ma in realtà il termine è forviante, il nocciolo della questione è l'algoritmo ottimizzato) con un algoritmo fatto con del fottuto cervello invece che con le tabelle di exel.
Ancora complimenti per l'articolo, tra l'altro non ricordo di aver letto altri approfondimenti su questo tema, su altri lidi in generale. Forza continuate a migliorare l'algoritmo di HWU
tecnico,cmq fruibile ed esaustivo!!!
questi son contenuti che fanno la differenza!
Un solo appunto
Ecco, da (quasi) cinquantunenne : terza età 'sta cippa
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".