Sistemi Operativi. Supporto allle applicazioni multimediali

Documenti analoghi
Soluzioni software end-to-end

La codifica del testo

La codifica del suono. Informatica di Base D -- Rossano Gaeta 102

La codifica dei suoni

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Numeri interi. Laboratorio di Calcolo Paola Gallo

La codifica video. Per comprendere il procedimento di rappresentazione digitale di un filmato prendiamo come modello una pellicola cinematografica:

Analogico vs digitale

Corso di Informatica

4.3: La Codifica dei Suoni e dei Video

Università degli Studi di Cagliari Facoltà di Scienze Corso di Laurea in Matematica

RAPPRESENTAZIONE DELLE INFORMAZIONI

RAPPRESENTAZIONE DELLE INFORMAZIONI

Formati multimediali e metadati: Video

Codifica CCITT Fax. Introduzione Codifica monodimensionale Codifica bidimensionale. Codifica CCITT Fax. Codifica JBIG2

Le fasi classiche. Informatica di Base -- R.Gaeta 1

La codifica video. Il codificatore ibrido. Principi di base Compressione spaziale Tecniche di predizione temporale Stima e compensazione del movimento

I.4 Rappresentazione dell informazione - Altre codifiche

La codifica dei Suoni. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Modulo 1: Le I.C.T. UD 1.3d: La Codifica Digitale dei Video

La codifica di sorgente

La codifica dell informazione

1.3d: La Codifica Digitale dei Video

La codifica dell informazione. Rappresentazione binaria. Rappresentazione posizionale in base 10

Il sistema binario: bit e Byte Codifica del testo Il Byte come U.d.M. dell'informazione Multipli del Byte

La codifica dei suoni

Codifica dei caratteri

Le immagini digitali

Informazione binaria: suoni, immagini, sequenze video

Rappresentazione di immagini a colori. Rappresentazione dei colori. Rappresentazione dei colori LA RAPPRESENTAZIONE DELL INFORMAZIONE - II

Suono digitale. Ø Un secondo di musica stereo richiede 44'100 campioni di 16 bit (2 byte) ciascuno per due canali, quindi 176'400 byte.

Compressione di dati: testi, immagini, suoni e video

Il suono digitale. Concetti di base

L obiettivo dell introduzione di MPEG2 è stato quello di ottenere video in qualità broadcast a 4-9 Mbps

Sistemi di Elaborazione delle Informazioni 6 CFU

Modulo informatica di base 1 Linea 2

Informatica di Base - 6 c.f.u.

Nozioni di grafica sul calcolatore. concetti di base

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

L'Informazione e la sua Codifica. Maurizio Palesi

Sistemi di Elaborazione delle Informazioni 6 CFU

Sistemi di Elaborazione delle Informazioni

Informatica di Base 1 Linea 1

Codifica dell Informazione

Le immagini digitali. Grafica. Due approcci alla modellazione grafica

Formati multimediali e metadati: Audio

Corso di Informatica

Rappresentazione binaria. Laboratorio di Informatica. Calcolatori digitali. N: numeri naturali. La codifica binaria. I primi 16 numeri binari

L informazione numerica

La codifica delle immagini

Algoritmi di scheduling

Corso di Informatica

La codifica delle immagini

icartoon manuale d uso

Elaborazione dell informazione. Elaborazione dell informazione. Rappresentazione dei numeri INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

La codifica. dell informazione

Codifica video. Il video digitale. Sistemi Multimediali. Il video digitale. Il video digitale. Il video digitale.

UNIVERSITÀ - OSPEDALE di PADOVA MEDICINA NUCLEARE 1. Lezione 5: Formati di immagine: JPEG. D. Cecchin, F. Bui FORMATO GRAFICO JPEG

Parte VI. Sistemi Multimedia

La codifica delle immagini

UNIVERSITÀ DEGLI STUDI DI TRIESTE

Compressione dei dati. Appunti di Sistemi A cura del prof. Ing. Mario Catalano

La compressione video. Analis i in multiris oluzione Wavelet La compres s ione di immag ini C ompres s ione JPEG S tandard MPEG

Multimediale Digitale

Compressione di dati: testi, immagini, suoni e video. B. Cipolla

Codifica dell Informazione

Abbiamo visto nella lezione precedente che le immagini possono essere compresse in vari modi, per ridurne l'occupazione di memoria (su disco o rete)

CODIFICA DI CARATTERI

La Rappresentazione dell Informazione

Segnale analogico. Analogico vs digitale. Segnale digitale. Trasformazione da analogico a digitale

1 Esercizio - caso particolare di ottimalità

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Come si passa dalle immagini reali alle informazioni digitali. Il funzionamento di una fotocamera digitale

Nozioni basilari sull audio digitale (2)

Video Parte 2. Errori di registrazione Drop e Artefatti. Multimedia

Sistemi in tempo reale: applicazioni alla robotica. Sistemi in tempo reale: applicazioni alla robotica p.1/15

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

Lezione 16. Esercizio 2 (paginazione( di windows) di Linux) 1: soluzione. Esercitazione finale. 10 page faults 5 soft faults

Classificazione delle applicazioni multimediali su rete

Sistemi di Elaborazione delle Informazioni 6 CFU

Rappresentazione delle informazioni LA RAPPRESENTAZIONE DELLE INFORMAZIONI. Grandezze digitali. Grandezze analogiche

Capitolo 3 Compressione sorgenti statiche

Struttura Logica del S.O:

Codifica Video. Corso di Telecomunicazioni. Anno Accademico 2008/2009. F. Benedetto Corso di Telecomunicazioni

Laboratorio di Informatica

La codifica. dell informazione. Tipi di informazione

Informatica Grafica. Fondamenti di elaborazione multimediale

Componenti di un sistema operativo

Elementi di informatica

LE IMMAGINI DIGITALI 3 formati. Università IUAV di venezia

Compressione delle immagini (codifica JPEG)

L informazione e la sua codifica. Prof. Maurizio Naldi A.A. 2015/16

Strutture dati e loro organizzazione. Gabriella Trucco

CODIFICA DI CARATTERI

UNIVERSITÀ DEGLI STUDI DI TRIESTE

Codifica Immagini Fisse

Introduzione alla progettazione grafica

Introduzione alla codifica entropica

R. Cusani, F. Cuomo: Telecomunicazioni - DataLinkLayer: Gestione degli errori, Aprile 2010

LA GESTIONE DELLA I/O

Transcript:

Sistemi Operativi Supporto allle applicazioni multimediali Dario Maggiorini (dario@di.unimi.it) A.A. 2016-2017

Il dato multimediale 1. Va consumato al volo È soft real time 2. Segue delle dinamiche tutte sue Posso tollerale delle perdite, ma dipende dal tipo di dato. Le perdite video vengono tollerate molto meglio di quelle audio 3. È analogico Mentre un calcolatore è digitale 4. Occupa un sacco di spazio Se però accetto di vedere/sentire male allora posso trovare un compromesso

È spesso una questione di rete Telefonia: la prima rete multimediale della storia (e provate a dire di no)

moderna Cambiano le tecnologie, ma alla fine sempre li si rimane

E veloce disponibile Allo stesso modo in cui leggo dalla rete posso recuperare informazioni da un dispositivo hardware, i parametri in gioco non cambiano

Caratteristiche delle informazioni multimediali (all interno di un sistema operativo) Sono digitali (stanno in un file) Devo essere codificate in qualche modo Occupano un sacco di spazio Devo comprimerle (comprimere è un modo di codificare) Devo poterne garantire la fruizione in real time Se un video prevede 20 frame al secondo 20 devono essere Devono poter essere usate alla stregua di un media classico Ovvero, mi aspetto di fare pause, play, fast forward etc etc

Codifica di un dato multimediale Codifica à stabilire un formato digitale Senza, non si va da nessuna parte Vuol dire stabilire una corrispondenza tra informazione (analogica) e sequenze di bit per rappresentarla

Motivi per codificare Per dare sicurezza Proteggere il contenuto (cifratura) Proteggere la proprietà intellettuale Watermarking Steganografia Per dare affidabilità Una giusta codifica può aiutare a correggere gli errori di trasmissione NON vuol dire comprimere Una codifica che risparmia spazio siamo abituati a chiamarla compressione La compressione di un contenuto è un effetto collaterale (piacevole) di una codifica ben strutturata

Dumb coding Prendiamo un video 640 x 480, 25 fps, 60 secondi È meno di quello che potete fare con il vostro cellulare Codifico il filmato come una sequenza di frame Codifico ogni frame come una matrice di pixel Codifico ogni pixel in formato RGB (3 byte) Spazio necessario: 3 * 640 * 480 * 25 * 60 byte = 1.28 GB 640x480 Schermo iphone 7

Ottimizzazione dello spazio Esistono tecniche per creare delle associazioni tra un insieme di informazioni da rappresentare e stringhe binarie (bit) tali per cui il numero totale di bit utilizzati è minimo Codici a lunghezza media uniformemente minima (per gli amici, codifica di Huffman) Queste tecniche non fanno perdere informazioni; riducono solo lo spazio totale occupato Codifica lossless

Ridondanza Un sistema di codifica può tentare di scartare le informazioni inutili o che potrebbero essere ricostruite in maniera automatica Compressione lossy Ridondanza spaziale Come in un contenuto che prevede informazioni simili aggregate Zone di colore omogeneo in un immagine Ridondanza temporale I contenuti che evolvono nel tempo non variano enormemente in due istanti successivi In un video con una persona che parla non ho bisogno di mandare sempre anche lo sfondo

Ridondanza spaziale Correlazione orizzontale Correlazione verticale

Ridondanza temporale

Dario Maggiorini (dario@di.unimi.it) Ridondanza temporale

Come la vedete?

Non è così semplice La compressione dei dati è una cosa difficoltosa da trattare Dipende da parametri difficili da controllare: Dal mezzo con cui si fruisce del contenuto Da agenti fisiologici Da agenti psicologici

Il mezzo di fruizione Impone un limite tecnologico non evitabile, rischiamo di codificare/inviare delle informazioni che semplicemente non potranno essere fruite Video a colori a una televisione in bianco e nero Video 4K a un cellulare (non tutti, oramai) Audio stereo a un cellulare GSM

Parametri fisiologici Non tutte le informazioni hanno la stessa importanza per il nostro centro di raccolta (cervello) Di una figura percepiamo più facilmente la forma Di un suono siamo più sensibili alle variazioni istantanee Il cervello ricostruisce autonomamente parte dell informazione, ma per ogni senso lo fa con soglie e parametri diversi

Parametri psicologici L essere umano ha una strana tendenza a riconoscere gli oggetti istintivamente Non ci ragioniamo Lo facciamo a volte in base alla nostra esperienza Ci ricordiamo solo gli aspetti importanti Il cervello ricostruisce l informazione mancante, ma COME LA VORREMMO e non come realmente è

Dario Maggiorini (dario@di.unimi.it)

Audio e video Sono tipi di dati multimediali profondamente diversi e vanno trattati in maniera disgiunta Differenti vincoli Tecnici Frequenza e campionamento Fisiologici Sensibilità non uniforme o distribuita diversamente Psicologici Diversa tolleranza alla perdita dei dati

MPEG Non è la soluzione di tutti i mali, ma solo uno standard Ed è italiano, per giunta! Abbiamo dato delle regole alla compressione spaziale e temporale in maniera tale da non disturbare troppo la percezione dell utente medio Quanti musicisti ascoltano MP3? Quanti grafici professionisti non gradiscono i DVD?

Moving Picture Experts Group (MPEG) È una organizzazione fondata dalla ISO nel 1988 Ha il compito di definire gli standard per la compressione audio e video Di versioni di MPEG ce ne sono tante

Vari tipi di MPEG PS TS MPEG-1 MPEG-2 MPEG-4

La codifica MPEG È una codifica asimmetrica Lo standard detta solo le linee guida per la creazione di un byte-stream Il codificatore fa tutto il lavoro pesante e deve creare uno stream corretto Il decodificatore fa operazioni semplici e deve essere poco oneroso per il calcolatore Tenendo fisso lo standard, è possibile far evolvere parallelamente i due estremi Posso implementare codificatori più efficienti senza modificare il software di visualizzazione Posso creare nuovi player (e nuovi dispositivi) senza codificare nuovamente i contenuti

Codifica MPEG MPEG costruisce un video codificando una sequenza di fotogrammi Attenzione, non sono una sequenza di immagini jpeg; quello si chiama MJPEG Durante la codifica si punta ad eliminare il più possibile la ridondanza secondo certi parametri che vengono dati al sistema

Ridondanza spaziale Codifiche separate e distinte vengono effettuate per i tre colori in formato YUV L immagine divisa in tessere di 8x8 viene ripulita delle basse frequenze (teniamo solo i contorni degli oggetti) In più, tutti i valori vengono espressi come differenza rispetto al primo Risultato finale: una serie di zeri che si comprimono tantissimo

Linearizzazione Un blocco, dopo essere stato trattato viene reso lineare (da matrice ad array) secondo questo schema: Ricordiamoci che in alto a sinistra si trova il valore più grande, mentre tutti gli altri contributi saranno spesso molto vicini a 0 Con queste condizioni di partenza la costruzione di un codice a lunghezza minima è molto efficiente

Questo però non basta Rimane ancora il problema della ridondanza temporale Si, perché questo è il processo di creazione di una immagine JPEG Soluzione: Definiamo diversi tipi di frame e distinguiamo frame indipendenti (I) da altri che predicono (P) la variazione nel tempo Questa variazione può essere trasmessa come differenza di immagini o come lo spostamento di un rettangolo all interno dell immagine Questi rettangoli prendono il nome di macro-blocchi

Ridondanza temporale

Motion vector

Si può fare ancora di più La predizione non è in tutti i casi la soluzione migliore Pensate ad una automobile che scompare temporaneamente dietro un albero; perché dovremmo dimenticare di averla vista per poi ricostruirla? Definiamo un terzo tipo di frame bidirezionale (B) che descrive una scena per differenza con quelle sia precedenti che successive

GOP Group Of Pictures Gli I-frame sono codificati indipendentemente Come immagini jpeg-2000 I P-frame sono codificati per differenza rispetto all I-frame che li precede Includono i vettori di movimento Codificano i cambiamenti dell immagine I B-frame sono codificati come differenza con gli I/P-frame che li precedeno/seguono (pensate ad una predizione bidirezionale )

Giusto per non confondersi Codifica e contenitore sono due cose profondamente diverse Una codifica esprime il modo in cui l informazione audio o video viene trattata (MPEG piuttosto che Wavelet) Un container dichiara la sintassi con cui i bit codificati vengono scritti in un file (.AVI piuttosto che.mov) Ovviamente, alcuni container sono progettati per ospitare in maniera più efficiente certi tipi di codifica È perfettamente possibile (anche se non molto ottimizzato) avere un video codificato in MPEG dentro in file.avi come avere un video codificato Wavelet dentro un file.mov

Per i curiosi S.R. Ely (BBC), "MPEG video coding, a simple introduction", EBU Technical Review, 1995 http://tech.ebu.ch/docs/techreview/trev_266-ely.pdf No, non verrà chiesto all esame

E poi arrivò lo streaming Una moda degli anni 90 Un contenuto multimediale doveva essere fruito secondo un profilo controllato attraverso la rete Oggi, su alcuni libri, qualunque cosa circola sulla rete è in streaming In realtà, la discriminante è come i dati vengono prodotti Una webcam fa streaming verso il video?

Streaming Main Entry: stream Pronunciation: \ˈstrēm\ Function: noun 1 : a body of running water (as a river or brook) flowing on the earth; also : any body of flowing fluid (as water or gas) 2 a : a steady succession (as of words or events) <kept up an endless stream of chatter> b : a constantly renewed or steady supply <a stream of revenue> c : a continuous moving procession <a stream of traffic> 3 : an unbroken flow (as of gas or particles of matter) 4 : a ray of light 5 a : a prevailing attitude or group <has always run against the stream of current fashion> b : a dominant influence or line of development <the influence of two streams of inheritance: genetic and cultural P. B. Baltes> 6 British : track

Streaming Si dovrebbe parlare di streaming tutte le volte che: Vi è del contenuto che cominciamo ad utilizzare prima che sia arrivato completamente L invio del contenuto avviene in maniera continua e asincrona fintanto che non è stato inviato tutto Il contenuto potrebbe essere infinito E la rete che fine ha fatto? È sparita! Perché, che ci sia di mezzo la rete o meno, i problemi sono sempre gli stessi

Questa è una presa in giro 1. video recorded 2. video retrieved processing delay 3. video playout time Storage streaming: at this time, consumer is playing out early part of video, while producer still creating later part of video

La dura realtà constant bit rate video video reception constant bit rate video playout variable processing delay buffered video prefetch delay time

Perché succede questo? Il tempo di trasferimento dal vostro hard drive (file system) non è regolare. E mai lo sarà! 1. Perché il sistema operativo sta facendo anche altro 2. Perché disco e video non sono sincronizzati 3. Perché gli interrupt non chiedono permesso a nessuno In più, per non farci mancare nulla, neanche i frame sono tutti uguali I, P e B hanno tempi di trasferimento diversi Sono di dimensioni diverse I, P e B hanno tempi di elaborazione diversi Abbiamo bisogno di tutti i B che precedono un P per elaborare il prossimo frame mentre un I è indipendente

Buffering L unico modo che un applicazione ha di rendere nuovamente regolare un contenuto multimediale è quello di farlo passare per un buffer I dati entrano come il sistema concede I dati escono secondo il profilo richiesto Hard drive and video device driver

Dimensionamento del buffer Troppo piccono non va bene C è troppo poco gioco tra ricezione e smaltimento dei dati Se non c è spazio, i dati in arrivo verranno scartati e persi Buffer overrun/underrun Troppo grande non va bene Sono risorse concesse dal sistema operativo Il dispositivo potrebbe non averle fisicamente Si introducono ritardi a volte inaccettabili

Buffer underrun constant bit rate video video reception variable processing delay buffer size constant rate video playout time

Buffer overrun constant bit rate video video reception current size variable processing delay buffer size constant rate video playout time

Dario Maggiorini (dario@di.unimi.it) E se perdiamo dei dati? Nessun problema, il dato multimediale è strutturato appunto per tollerare questo Basta semplicemente dei dati a caso (rumore) o degli zeri (buio) e lui prima o poi ne uscirà Certo, a volte il risultato non è propriamente bello

E le funzionalità VCR? Nessuno di noi userebbe youtube senza la possibilità di andare avanti e indietro veloce o selezionare il punto di riproduzione A proposito, avete mai notato che: 1. Ci mette sempre un po a ripartire? 2. Non parte quasi mai esattamente dal fotogramma che avete scelto con tanta cura? La soluzione è semplice: buttiamo via il contenuto del buffer e lo ricarichiamo (quindi, punto 1) e poi, per evitare effetto mosaico ripartiamo dal frame I più vicino (e quindi punto 2) Quello di cui abbiamo bisogno è un modo efficiente per saltare da un frame I all altro

Possibili contromisure Per minimizzare i disturbi alla fruizione dei dati dobbiamo agire sul sistema operativo 1. Tempo di elaborazione il più costante possibile Serve uno scheduler specializzato 2. Tempo di estrazione più uniforme possibile Serve un file system specializzato 3. Funzionalità VCR senza problemi Di nuovo un file system specializzato

Processi multimediali I processi multimediali, per nostra fortuna, sono una categoria specifica di processi realtime: sono processi periodici Se genero 20 frame al secondo, allora ho bisogno dello scheduler necessariamente ogni ventesimo di secondo In più, ogni volta richiedo sempre lo stesso burst di CPU Come i processi real-time ragionano in termini di scadenze temporali (deadline), solo che in questo caso sono: 1. Ricorrenti 2. Note a priori Diciamo cioè che hanno un periodo noto

Processi periodici Possiamo in questo caso esprimere la condizione di schedulabilità in funzione di periodo e burst

RMS (Rate Monotonic Scheduling) È una politica di scheduling pensata appositamente per I processi periodici 1. Il burst di ogni processo deve essere terminato entro lo scadere del suo periodo 2. Non ci sono dipendenze tra processi 3. I burst richiesti sono sempre gli stessi ad ogni periodo 4. La prelazione della CPU si presuppone abbia un overhead negligibile 5. I processi non periodici (se ce ne sono) vengono schedulati solo se la CPU non ha altro da fare (non hanno deadline)

RMS RMS è un algoritmo di scheduling a priorità statica Ogni processo riceve una priorità inversamente proporzionale al periodo Processi con periodi brevi (ovvero, frequenza di esecuzione alta) verranno schedulati con precedenza In questo modo, il mio riproduttore CD a 44.1 KHz avrà una priorità più alta del decoder video che genera 20 frame al secondo (20 Hz)

RMS

RMS Funziona sempre? Ovviamente no Si dimostra formalmente che RSM funziona solo sotto la seguente condizione di schedulabilità: Inoltre % " # &'( m 2 $ #, 1 lim m, 2 % 4 1 = ln 2

EDS (Earliest Deadline First Scheduling) EDS è una variante di RMS che prevede priorità dinamiche Ogni processo riceve una priorità inversamente proporzionale al tempo rimanente alla sua deadline Con EDS non è più strettamente necessario che i processi siano periodici e neppure che abbiamo un burst sempre uguale Di fatto, è una politica di schedulazione real-time generica Può raggiungere un rendimento del 100% a fronte però di un algoritmo molto più complesso

EDS

File system con supporto multimediale Abbiamo di implementare un file system con due caratteristiche: Tempo di accesso ridotto al minimo Ma questo lo sappiamo già fare Facilità di passare da un punto all altro della riproduzione E, per questo, possiamo sfruttare le caratteristiche di MPEG

Minimo tempo di accesso Questa è facile: basta memorizzare tutti i file sul disco in modalità sequenziale Non a caso, avevamo già detto che si usa con CD, DVD e BLUERAY Ovviamente, tenendo conto di codifica e container

Manipolazione della riproduzione Aggiungiamo ai file dei metadati: un array di indici che puntano a dei segmenti di disco dove memorizziamo in maniera sequenziale un I-frame seguito da tutto il suo GOP Si parla di allocazione indicizzata La discriminante diventa allora la dimensione di un blocco di disco Dimensione blocco < dimensione GOP Uso un frame index Devo gestirmi delle allocazioni sequenziali Non ho spreco di spazio Dimensione blocco >= dimensione GOP Uso un block index Non ho bisogno di gestire allocazioni sequenziali Ho della frammentazione interna

Allocazione indicizzata GOP GOP