Sei sulla pagina 1di 10

Multimedia

Parte VI

Sistemi Multimedia

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 1

Problemi

Materiali multimediali:
Letteralmente pi di un medium (es. testo e immagini)
Tipicamente filmati con audio (digital video)
Modalit di distribuzione e fruizione:
DVD: riprodotti direttamente dal PC
Video clip: brevi filmati scaricati dalla rete
Video on demand: film scelti dagli utenti e distribuiti su
Video server
Grandi server per la distribuzione in tempo reale di
materiali multimediali

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 2

Tecnologie di distribuzione

Organizzazione e dimensione dei file


Diversi tipi di informazione: video, audio, sottotitoli
Lettura e scrittura veloce da e per la memoria di massa

Trasmissione dellinformazione
Ampiezza della banda
Non sempre possibili broadcast e multicast

Riproduzione in tempo reale


Modalit di fruizione simile a quella VCR

(a) ADSL

Ritardi, anche brevi, percepiti come non accettabili


Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

(b) Tramite cavo per TV

Oggi anche cablaggio in fibra ottica dellutente finale


VI - 3

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 4

Velocit di trasmissione

File Multimediali

Organizzati in molti subfile, con necessit di sincronizzazione


Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 5

Codifica dellaudio

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

Codifica dellaudio: standard

(a) Segnale continuo


(b) Campionamento

PCM (telefonia)
Campionamento a 8 KHz
7 bit per campione (USA), 8 bit (Europa)
56 kbs, 64 Kbps
CD (musicale)
Campionamento a 44.1 KHz (insufficiente per i cani)
16 bit per campione (64k livelli)
1.411 Mbps (stereo)

NB Il range dinamico dellorecchio dellordine di 106

(c) Quantizzazione
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 6

VI - 7

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 8

Codifica del video: standard

Codifica del colore

NTSC (USA)
Never Twice the Same Color
525 righe 30 frame al secondo, 4:3
PAL (Europa)
lo standard pi diffuso
625 righe 25 frame al secondo, 4:3
SECAM (Francia)
Adottato anche nellEuropa dellEst
Come PAL, differisce per la codifica del colore

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

Sui monitor codifica RGB (Red Green Blue)


Nella TV
Un segnale di luminanza
Due segnali di crominanza

VI - 9

Gli standard differiscono nella codifica di luminanza e


crominanza

Compatibile con il bianco e nero (luminanza)


Locchio pi sensibile alla luminanza

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

Video digitale

Compressione delle immagini

Frame costituiti da matrici di pixel


Codifica RGB (Red Green Blue), 24 bit per pixel
25 frame al secondo, progressivo (non interallacciato)

VI - 10

Riduce la banda necessaria entro limiti accettabili


Pu introdurre una perdita di informazione
Lossless: processo invertibile senza perdita

Sfarfallio eliminato dalla frequenza di refresh (>50 Hz)

Lossy: con perdita di informazione

Risoluzione dellimmagine:
VGA:
640 x 480
SVGA:
800 x 600
XGA:
1024 x 768
HDTV 720p: 1280 x 720
HDTV 1080i: 1920 x 1080

Processo asimmetrico
Codifica: nel server, in genere fuori linea
Decodifica: nel client, in tempo reale

Codifica lenta non accettabile in contesti in tempo reale: ad


esempio videoconferenza

XGA a 25 frame/s richiede 427 Mbps

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 11

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 12

Compressione JPEG (passo 1)

Matrici di crominanza e luminanza

Comprime immagini fisse con rapporti anche di 1:20


Standard ISO 10918
Immagine di partenza RGB, 640x480, 24 bit/pixel
Codifica in tre matrici con elementi di 8 bit:
Y: matrice 640x480 di luminanza
I e Q: matrici 320x240 di crominanza
Le matrici I e Q sono ottenute (con perdita) mediando su
quattro punti contigui
Si sottrae a ciascun elemento 128 per avere 0 nel caso medio
Ogni matrice divisa in blocchi di 8x8:
Y ha 4800 blocchi
I e Q hanno 1200 blocchi ciascuna
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 13

Compressione JPEG (passo 2)

VI - 14

Compressione JPEG (passo 3)

Si applica una DCT (Discrete Cosine Transformation) a ciascun


blocco di 8x8 elementi

Perdite dovute alla discretizzazione


Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 15

I coefficienti DCT sono quantificati dividendoli per i coefficienti di


una matrice di quantificazione

I coefficienti meno importanti sono ridotti a 0


La matrice premette di stabilire il livello di compressione
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 16

Compressione JPEG (passi 4 e 5)

Compressione MPEG 2

Standard per la compressione di filmati digitali


MPEG-1 (ISO 11172) per qualit VCR (352x240 NTSC)
MPEG-2 (ISO 13818) per qualit broadcast
Riesce ad usare un canale televisivo 5 MHz
Due livelli di compressione:
Ridondanza spaziale: ciascun frame compresso con
JPEG

Ridondanza temporale: sfrutta la sovrapposizione di


informazioni tra frame successivi

Il coefficiente (0,0), che la media della matrice, espresso


come differenza da quello del blocco precedente
Linearizzazione dei 64 coefficienti
Sequenze di valori uguali sono compresse

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 17

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

MPEG 2: tipi di frame

DV (Digital Video) usa solo la ridondanza spaziale


VI - 18

MPEG 2: macroblocchi

Un filmato MPEG contiene tre tipi di frame:


I (Intracoded frames): frame completi ed autocontenuti.
Costituiscono punti fermi cui agganciare la decodifica
del filmato (sintonizzazione, FF e RW,)
P (Predictive frames): espressi come differenza, blocco
per blocco dal frame precedente
B (Bidirectional frames): espressi come differenze, blocco
per blocco, sia dal frame precedente che dal frame
successivo. Presuppongono bufferizzazione di almeno tre
frame in ricezione

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 19

Blocchi di 16x16 per la luminanza, e 8x8 per la crominanza


Un frame aggancia i suoi macroblocchi a quelli del frame
precedente (successivo), anche in posizione diversa
Lampiezza della ricerca lasciata allimplementazione
Si codificano le differenze con il macroblocco dellaltro frame
Le differenze sono compresse con JPEG
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 20

Strategie push e pull

Multimedia file server

Consentono la fruizione tramite rete di materiale multimediale

Il server gestisce contemporaneamente pi stream

Per servire una stream il server utilizza due tipi di risorse:

Il server gestisce pi utenti che vedono, eventualmente,


filmati diversi in tempi diversi
Ciascuna stream consta nellinvio di una sequenza di quadri
(frame), a 25 o 30 frame/s
CPU per elaborare i frame, costruire i pacchetti e gestire i
protocolli
Dischi per leggere i frame dalla memoria di massa
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 21

Scheduling dei processi

(a) strategia tradizionale, pull server, il client richiede ogni volta


(b) push server, il client chiede solo la prima volta
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

Schedulabilit

Scheduling di m processi periodici


Ci : richiesta di CPU del processo i per ciascun frame
Pi : periodo con cui i frame del processo i devono essere
trasmessi
Condizione di schedulabilit:
m

Vincoli real-time per garantire flussi costanti


Richieste di CPU potenzialmente diverse
Processi con struttura periodica

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 22

VI - 23

i=1

Ci
Pi

Criterio di ammissione: prima di ammettere un nuovo


processo occorre controllare la schedulabilit

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 24

RMS: Rate Monothonic Scheduling

EDF: Earlier Deadline First

Condizioni di applicabilit
Periodicit dei processi
Indipendenza dei processi
Costanza delle richieste di CPU
Nessun altro processo ha vincoli real time
Preemption istantanea a costo nullo
Sceduling a priorit fisse inversamente proporzionali ai
periodi
Le priorit sono preemptive

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 25

Condizioni di applicabilit
Processi anche non periodici
Richieste di CPU anche variabili
I processi specificano di volta in volta la dedline
Lo scheduler mantiene una lista delle deadline
La CPU data al processo con deadline pi prossima
Se arriva un nuovo processo con deadline pi vicina, il
processo corrente viene interrotto
D sempre risultati migliori del RMS

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

Esempio 1

Esempio 2

Entrambi gli algoritmi danno buoni risultati (quasi gli stessi)


Periodicamente la CPU rimane inattiva (utilizzazione < 1)

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 27

VI - 26

RMS fallisce perch il processo C manca la sua deadline


EDF sceglie C perch ha una deadline pi vicina di A

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 28

Funzioni VCR

Stream precalcolati

Il server deve supportare le funzioni tipiche dei VCR


Pausa: non crea problemi, ma congela le risorse
Rewind: ok soprattutto se si torna allinizio
FF e FB: avanti e indietro a velocit k, crea problemi a
causa della compressione MPEG2

Non tutti i frame sono di tipo I, cio autocontenuti

Troppo costoso inviare al client tutto lo stream a velocit k

Troppo costoso per il server decomprimere, a velocit k, e


generare uno stream di frame I

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 29

Near Video on Demand

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

Gli stream che partono a tempi fissi S (es. ogni 5 minuti)


Il cliente si aggancia al prossimo stream (con unattesa)
Lo stesso stream destinato a molti utenti
Pochi stream per ogni film (es. 24 per S = 5 minuti, e film di 2 ore)
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 30

Near Video on Demand con VCR

Sono parte del file multimediale predisposta fuori linea


Contengono un sottoinsieme dei frame (p.es. 1 su 10), poi
compressi separatamente
Il server mantiene la corrispondenza fra i tre stream
Quando salta cerca il primo frame I per agganciarsi

VI - 31

Si vogliono aggiungere le funzioni di controllo VCR


Ogni client, in condizioni di regime, bufferizza un intervallo
T sia allindietro che in avanti
Questo richiede, in certi periodi, di ricevere due stream
Nella finestra bufferizzata ci si muove senza difficolt
Se si salta oltre il buffer:
Viene fatto partire uno stream privato
Questo dura fino a che non si aggancia il pi vicino
stream, al massimo S
Nel frattempo si legge anche dallo stream successivo

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 32

Esempio

Esempio (continua)

S = T = 5 minuti
Lutente inizia la visione alle 8.15
Per cinque minuti vengono ricevuti lo stream delle 8.15 e quello
delle 8.20, poi il buffer pieno e si continua su quello delle 8.20
Dopo un po lutente comincia a fare FB
Si invia uno stream privato di FB, fino a che non torna a play
Si invia allutente uno stream privato, ma riceve anche lo stream
successivo
Lo stream privato cessa quando si cominciano ad usare i frame
bufferizzati dello stream successivo
Luso di stream privati consente anche di iniziare la visione in un
momento qualsiasi

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 33

Allocazione di file multipli

(a) situazione a regime


(b) salto al minuto 12
(c) tre minuti dopo il salto

(d) 4 minuti dopo il salto


(e) di nuovo a regime

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 34

Distribuzione di Zipf

Pi file sullo stesso disco


Minimizzare le seek in base alle frequenze dei file
Distribuzione delle frequenze di Zipf:
Verificata in moltissimi casi simili: libri pi letti, lettere pi
usate, nomi pi usati, citt pi popolate ..
Con N film la frequenza del film i-simo in ordine di popolarit
C/i dove C una costante di normalizzazione
C/1 + C/2 + C/3 + C/4 + .+ C/N = 1

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 35

Zipf per N=20


Popolazione delle 20 maggiori citt degli Stati Uniti

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 36

Distribuzione a canne dorgano

Caching

Ordinamento spaziale, sui cilindri, basato sulla frequenza


Il film pi visto al centro del disco
Si dimostra che minimizza il tempo complessivo di seek
Con 100 film, la Zipf dice che il 30% del tempo si rimane nei
cilindri allocati ai 5 film pi visti

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 37

Disk scheduling statico

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 38

Disk scheduling dinamico

Tempo diviso in round, della durata di un frame


Le richieste di ogni round vengono riordinate per ottimizzarle
Si massimizza il numero di stream che possono essere gestite
Necessario comunque il doppio buffering
Possibili anche pi frame per round, e pi round per frame
Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

Il normale caching del file system (LRU) non efficace


Accesso tipicamente sequenziale, salvo rewind
Occorre sfruttare la predicibilit intrinseca dellapplicazione
Block caching
Sfrutta la concomitanza di pi stream
Caching dei soli film con pi utenti
File caching
Impossibile tenere su disco tutti i film a catalogo
Alcuni film sono residenti su disco
Per altri viene mantenuto linizio per ridurre lo startup

VI - 39

Ogni richiesta ha associata una deadline ed un cilindro


Algoritmo Scan-EDF
Raggruppa le richieste in batch in base alla deadline
Ottimizza allinterno del batch in base al cilindro (es.
ascensore)
Lammissione di un nuovo utente dipende dalle caratteristiche
del film: meglio commedie e love story che film dazione

Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009

VI - 40