VideoStreaming su IP Anno Accademico 2007/2008
Agenda Principi di video Streaming Come prevenire gli errori e come mascherarli Appendice Come si realizza la codifica/decodifca Protocollidirete Overview sui player
Introduzione Caratteristiche del video streaming Gestione della Larghezza di banda Ritardi variabili Perdite sul canale
Download video Stesse caratteristiche di un file ma dimensioni maggiori Meccanismi di trasporto uguali (TCP) Svantaggi legati alla disponibilita sulla memoria, richiede tempo prima di potere vedere il filmato
Video streaming Si partiziona il filmato in pacchetti Si attende prima che il buffer di playout sia pronto Permette: Un tempo di attesa minimo prima della visione Un occupazione di memoria minima
Vincoli del video streaming Il videostreaming e vincolato dalle seguenti condizioni: Il Frame N viene visto dopo un tempo un attesa pari: T N Frame N+1 viene visto dopo un tempo di attesa pari: T N + Frame N+2 viene visto dopo un tempo di attesa pari: T N +2 Ogni pacchetto in ritardo non viene utilizzato Ogni pacchetto perso non viene utilizzato Obiettivo: realizzare un sistema che gestisce opportunamente questi vincoli
Video streaming su Internet Internet e una rete best effort Non offre garanzie su: Larghezza di banda Varianza dei ritardi Tasso di perdita Il problema quindi e la dinamicita di questi fattori e la loro imprevidibilita Obiettivo:realizzare un sistema che sia in grado di offrire un alta qualita della visione su Internet
Vincoli per la larghezza di banda Variabilita della larghezza di banda Se la trasmissione e piu veloce della larghezza di banda disponibile Congestione dei pacchetti perdita di pacchetti riduzione della qualita video Se la trasmissione e troppo lenta della banda disponiblie Qualita scadente del video Obiettivo: ottimizzare il bit rate del video con la banda disponibile
Controllo del rate Stima del banda disponibile Adattamento della codifica alla banda disponibile Codifica del bitrate del video dopo feedback del ricevitore Metodi di prova Metodi per modelli
I ritardi Dipendono da: Instradamento dei pacchetti Smaltimento delle code Ritardi di propagazione Velocita di processamento Variabilita dei ritardi e loro oscillazione
Le oscillazioni dei ritardi Viene garantito dal buffer di playout Ogni pacchetto che arriva prima del offset di playout viene processato La compensazione della varianza dei ritardi evita la perdita di pacchetti
Dimensione del buffer di playout Variazioni della dimensione del playout
Le perdite di pacchetti Si controlla perdita di pacchetti con: Forward error correction (FEC) Ritrasmissione Resistenza agli errori Mascheramento degli errori
Tipi di errore Applicazione Videotelefonia su PSTN Caratteristiche degli errori Pochi errori e perdite di pacchetti Videoconferenza su ISDN Quasi senza errori (BER 10-8 ) Televisione digitale In genere senza errori dopo FEC Video streaming su Internet Perdite di pacchetti tra 0-30% Trasmissione wireless (su terminale mobile) Errori a burst (BER oltre 10-3 )
Codifica Codifica di canale Codifica selettiva in modo da proteggere l informazione, ritrasmissione dei pacchetti Codifica di sorgente Per nascondere gli errori si sfrutta la ridondanza spaziale e temporale Codifica resistente agli errori
Interpolazione spaziale Si cerca di interpolare i pixels mancanti interpolando le informazioni di aree vicine, almeno si cerca di recuperare la componente DC
Interpolazione temporale Si fa riferimento al frame precedente, si fermailtempo Nessun problema per scene quasi-statiche Riduzione della qualita per scene in movimento
Interpolazione sulla motocompensazione Si sfrutta il vettore di moto dei macroblocchi vicini e si interpola. Il macro blocco viene ricostruito con il frame precedente ed usando il vettore di movimento stimato
Mascheramento degli errori Si perde solitamente piu di un singolo macroblocco Si combinano tecniche di interpolazione spaziale e temporale Viene realizzato solo in fase di decodifica
Recupero degli errori Tipologie che introducono gli errori Perdita di bit di sincronismo Propagazione degli errori Obiettivo Realizzazione di un sistema di codifica con livello di priorita
Bit di Sincronismo Impiego dei marker di sincronismo, posizionati in locazioni strategiche e con codifica di canale RVLC permette la decodifica all indietro rispetto al marker di sincronismo Partizionamento dell informazione in base alla loro importanza.
Decodifica errata e propagazione degli errori (1/2) Limitare la propagazione degli errori I-Frame Periodici Limitano la propagazione su un singolo GOP Bassa compressione (inappropriata per wireless e video su IP)
Decodifica errata e propagazione degli errori (2/2) Parziale intra codifica ogni frame Riduzione della propagazione di errori Alta complessita sul coder, ma bassa per il decoder Svantaggi Necessario alto bit-rate Ottimizzazione del sistema conoscendo le caratteristiche del canale
SVC Codifica scalabile Dal base layer a layer piu complessi Priorita diverse possono essere sfruttate per codificare in maniera opportuna a seconda delle necessita SVC e la migliore soluzione per reti che supportano diverse qualita del servizio (DiffServ)
SVC (2/2) Internet rete Best effort SVC produce codifiche differenti in base al tipo di layer Internet tratta ogni layer allo stesso modo Internet non discrimina I layer con diversa priorita
Schema codificatore RGB to YUV _ DCT Quantizzazione Quantizzazione Inversa Codifica Entropica (Huffman) Buffer IDCT Moto Compensazione + Frame Store Stima di moto
Schema decodificatore Buffer Decodifica Huffman Quantizzazione Inversa + IDCT YUV To RGB Frame Store Compensazione del moto
Protocolli di rete (1/2) Internet Protocols IP, TCP, UDP IP usato per l indirizzamento TCP protocollo affidabile per servizi di stream con ritrasmissione e conferme (ack) UDP protocollo non affidabile per la trasmissione a pacchetto Per applicazioni Web si usa TCP/IP Per videostreaming si adotta TCP/IP per il controllo UDP/IP per il trasferimento dati
Protocolli di rete (2/2) RTP/RTCP standard IETF ideati per supportare il videostream (RTP per il trasferimento RTCP per il controllo) RTP e RTCP Permette servizi real-time ma non supporta il QoS Approccio RTP/UDP e RTCP/TCP RTSP e SIP
Overview sui player VLC Features Codec QuickTime Features Codec Windows Media Player Features Codec