Sistemi Operativi. Supporto allle applicazioni multimediali

Documenti analoghi
Codifica/Compressione multimediale

Sistemi Operativi. Supporto allle applicazioni multimediali

Soluzioni software end-to-end

La codifica del testo

La codifica dei suoni

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

Informazione multimediale

La codifica dei suoni

Tutti i dispositivi di un elaboratore sono realizzati con tecnologia digitale

Corso di Informatica

Informazione binaria:

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

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

Numeri interi. Laboratorio di Calcolo Paola Gallo

4.3: La Codifica dei Suoni e dei Video

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

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

Analogico vs digitale

Tecnologie Multimediali a.a. 2017/2018. Docente: DOTT.SSA VALERIA FIONDA

I.4 Rappresentazione dell informazione - Altre codifiche

La codifica di sorgente

La codifica dei suoni

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

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

Compressione di dati: testi, immagini, suoni e video

Tecnologie Multimediali a.a. 2018/2019. Docente: DOTT.SSA VALERIA FIONDA

Informazione binaria: suoni, immagini, sequenze video

1.3d: La Codifica Digitale dei Video

Informazione binaria: Codici per la rilevazione e correzione di errori Codici di compressione

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

FORMATI GRAFICI BITMAP

Codifica dei caratteri

RAPPRESENTAZIONE DELLE INFORMAZIONI

Formati multimediali e metadati: Video

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

Le immagini digitali

Il suono digitale. Concetti di base

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

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

RAPPRESENTAZIONE DELLE INFORMAZIONI

La codifica dell informazione

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

Sistemi di Elaborazione delle Informazioni

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

OHLQIRUPD]LRQLQRQQXPHULFKH

La codifica dei suoni

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

Implementazione del modello di Von neumann

Informatica di Base - 6 c.f.u.

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

Nozioni di grafica sul calcolatore. concetti di base

CONVERSIONE ANALOGICO/DIGITALE

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

INTRODUZIONE ALL AUDIO DIGITALE. 29/10/2008 Imparare a registrare Antonio Arzedi

La codifica di sorgente

Le immagini digitali. Grafica. Due approcci alla modellazione grafica

Modulo informatica di base 1 Linea 2

Sistemi di Telecomunicazione. Codifiche Multimediali Video - Standard MPEG

Corso di Informatica

Sistemi di Elaborazione delle Informazioni 6 CFU

L'Informazione e la sua Codifica. Maurizio Palesi

La codifica. dell informazione

La codifica. dell informazione. Tipi di informazione

Classificazione delle applicazioni multimediali su rete

Informatica di Base 1 Linea 1

Codifica dell Informazione

Architettura di un elaboratore. Informatica Architettura di un elaboratore 1

Sistemi di Elaborazione delle Informazioni 6 CFU

INTRODUZIONE ALL INFORMATICA

Multimediale Digitale

La Rappresentazione dell Informazione

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

Parte VI. Sistemi Multimedia

Parte VI Sistemi Multimedia

Formati multimediali e metadati: Audio

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

L informazione numerica

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

Video Parte 4a. Stabilizzazione. Multimedia

Immagini in medicina

Elementi di Informatica. ( Lezione III, parte I) Rappresentazione delle informazioni : La codifica dei numeri

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

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

Introduzione alla progettazione grafica

Modello di Sistema Real Time. Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di Bergamo

Sistemi di Elaborazione delle Informazioni 6 CFU

La codifica dei suoni

La codifica dei suoni

La codifica dei suoni

Compressione Parte 1. Prof. Filippo Milotta Informatica Musicale

La codifica delle immagini

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

Transcript:

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

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)

Cambiano le tecnologie, ma alla fine sempre li si rimane Dario Maggiorini (dario@di.unimi.it) moderna

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

Correlazione orizzontale Dario Maggiorini (dario@di.unimi.it) Ridondanza spaziale Correlazione verticale

Ridondanza temporale

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) 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 è

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

MPEG-1 MPEG-2 MPEG-4 Dario Maggiorini (dario@di.unimi.it) Vari tipi di MPEG PS TS

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

Dario Maggiorini (dario@di.unimi.it) 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é quello appena descritto è il processo di creazione di una immagine JPEG 2000 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

B-Frame In pratica, prendiamo in prestito un macroblocco da un frame successivo (I o P) e ne diamo un motion vector rispetto al futuro

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://downloads.bbc.co.uk/rd/pubs/reports/1996-03.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 la scheda grafica?

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

Cumulative data Dario Maggiorini (dario@di.unimi.it) 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

Cumulative data 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

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

constant rate video playout time Dario Maggiorini (dario@di.unimi.it) Cumulative data Buffer overrun constant bit rate video video reception current size variable processing delay buffer size

E se perdiamo dei dati? Nessun problema, il dato multimediale è strutturato appunto per tollerare questo Basta semplicemente fornire 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 % & ' "#$ * + 2 1 ( ' lim * + 2 1 =ln2=~0.7 % 3

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

Da qui a fine corso 22/11 Seminario su digital transformation e cloud Stefano Inelli IT Director, Mediaset 4/12 Seminario su sistemi di virtualizzazione enterprise Simon Coter PM VirtualBox, Oracle EMEA 11/12 Seminario su opzioni avanzate di windows Michele Sensalari IT Specialist, Università di Milano Dario Maggiorini (dario@di.unimi.it)

Da qui a fine corso 18/12 Esercitazioni per la prima parte di orale Giacomo Cappellini Mio assistente, CNR Milano 20/12 Ricevimento in aula Dario Maggiorini (dario@di.unimi.it)