Metodologie Digitali per la Compressione e Trasmissione di Segnali Televisivi



Documenti analoghi
BREVE GUIDA SUI PRINCIPALI CODEC E FORMATI VIDEO

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

Un ripasso di aritmetica: Rappresentazione binaria - operazioni. riporti

CARATTERISTICHE VIDEO

Come si misura la memoria di un calcolatore?

Lezione 8: La rappresentazione dell informazione Multimediale Suoni e Video Venerdi 6 Novembre 2009

La Videosorveglianza Criteri per il dimensionamento dello storage

Le immagini digitali. Le immagini digitali. Caterina Balletti. Caterina Balletti. Immagini grafiche. Trattamento di immagini digitali.


Codifica delle Informazioni

C M A P M IONAM A E M NT N O

HDTV LA TELEVISIONE AD ALTA DEFINIZIONE

ELETTRONICA DIGITALE

wave a 44,1 khz, 16 bit, PCM, stereo (standard cd audio) L utilizzo di una risoluzione dipende anche dal supporto che la dovrà ospitare.

Flussi Multimediali. Introduzione

GUIDA ALLE SOLUZIONI

IMMAGINE BITMAP E VETTORIALI

Dal foglio di carta alla multimedialità

Informatica grafica e Multimedialità. 4 Immagini grafiche

4 3 4 = 4 x x x 10 0 aaa

Capitolo V : Il colore nelle immagini digitali

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Scheda di approfondimento gioco I pixel

Elementi di teoria dei segnali /b

Laboratorio di Informatica

I F O R M A T I V I D E O

Codifiche a lunghezza variabile

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

GUIDA ALLE SOLUZIONI

Come masterizzare dischi con Nero 11

Il campionamento. La digitalizzazione. Teoria e pratica. La rappresentazione digitale delle immagini. La rappresentazione digitale delle immagini

Informatica. Rappresentazione binaria Per esempio diventa /10/2007. Introduzione ai sistemi informatici 1

La codifica delle immagini

Architettura hardware

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Appunti sulla Macchina di Turing. Macchina di Turing

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

Le immagini digitali. formati, caratteristiche e uso. Testo e foto di Mario Ceppi

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Database. Si ringrazia Marco Bertini per le slides

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Unità di Misura Informatiche

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

VideoStreaming su IP

Strutturazione logica dei dati: i file

La codifica delle immagini

CAPITOLO 10 Esportare il lavoro su nastro DV, DVD, o su altro tipo di file multimediale

Lezione 8. La macchina universale

Informatica per la comunicazione" - lezione 7 -

Creare una Rete Locale Lezione n. 1

Marta Capiluppi Dipartimento di Informatica Università di Verona

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

( x) ( x) 0. Equazioni irrazionali

Alla scoperta della nuova interfaccia di Office 2010

ARCHITETTURA DI RETE FOLEGNANI ANDREA

HD vs SD: E già ora per l alta definizione?

gestione e modifica di immagini fotografiche digitali

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Dispensa di Informatica I.1

Analisi e diagramma di Pareto

Fotografia corso base. Educazione Permanente Treviso. Specifiche digitali. Federico Covre.

Digital Signal Processing: Introduzione

Classificazione delle applicazioni multimediali su rete

Giorgio Maria Di Nunzio

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

La distribuzione Normale. La distribuzione Normale

Registratori di Cassa

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Il concetto di valore medio in generale

Esame di INFORMATICA

Offerta Televisiva. Generalità

SOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO

Video. Il montaggio video

Colorare coi numeri La rappresentazione delle immagini

Introduzione all analisi dei segnali digitali.

Codifica delle immagini

Memoria Secondaria o di Massa

Automazione Industriale (scheduling+mms) scheduling+mms.

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

EasyPrint v4.15. Gadget e calendari. Manuale Utente

Gestione del file system

STRUMENTI DI PRESENTAZIONE MODULO 6

Il colore. IGEA febbraio 2007

Informazione analogica e digitale

La codifica delle Immagini. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132Sesto San Giovanni

I dischi ottici. Fondamenti di Informatica -- Rossano Gaeta 43

Informatica per la comunicazione" - lezione 8 -

Cosa è un foglio elettronico

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

Approccio stratificato

FILE: ESTENSIONI o Formati. Augusto Grossi

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Reti di calcolatori ed indirizzi IP

Architetture Applicative

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Dimensione di uno Spazio vettoriale

Il database management system Access

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

Transcript:

Facoltà di Ingegneria Tesi di Laurea Metodologie Digitali per la Compressione e Trasmissione di Segnali Televisivi Relatore: Candidato: Chiar.mo Prof. Rodolfo Zunino Claudio Portanome Dipartimento di Ingegneria, Biofisica ed Elettronica

I risultati si ottengono non mollando mai

Abstract The work developed in this thesis concerned encoding/decoding techniques and compression procedures to be applied to video/tv signals before their broadcasting. We started from some historical notes addressing the TV signal and the standards used in Europe and United States. After that, our attention was paid to the encoding techniques and the video compression mechanisms, with special regards to standards conceived within the MPEG Working Group: MPEG-2 MPEG-4 MPEG-7 MPEG-21 In this perspective, we reviewed the main concepts applied in the encoding/decoding and compression algorithms (i.e., MPEG-2 and MPEG-4) and the most important elements used for the organization of the multimedia contents and the issues related to security (i.e., MPEG-7 and MPEG-21). Finally, last part of this thesis was devoted to the market products (either commercial or Freeware) being indicative of the features and the principal properties typical video systems have. In this view, for the sake of exemplification, the cases of DivX, XviD, XMpeg and Blu-ray formats were analysed, thus giving some insights into video and image systems commonly being nowadays used.

Sommario Il lavoro sviluppato in questa tesi ha riguardato le tecniche di codifica/decodifica e di compressione da applicarsi per la trasmissione di segnali video e televisivi. Si è partiti con alcune note storiche relative al segnale televisivo e i relativi standard adottati in Europa e Stati Uniti. In seconda analisi, l attenzione si è spostata alle tecniche di codifica e agli algoritmi di compressione video dando particolare enfasi agli standard concepiti all interno del gruppo di lavoro MPEG: MPEG-2 MPEG-4 MPEG-7 MPEG-21 In questa ottica, si sono rivisitati i principali concetti applicati negli algoritmi di codifica/decodifica e compressione (i.e., MPEG-2 and MPEG-4) e i maggiori elementi utilizzati per l organizzazione di contenuti multimediali nonchè gli aspetti relativi alla sicurezza (i.e., MPEG-7 and MPEG-21). L ultima parte di questa tesi è stata dedicata ai prodotti di mercato (commerciali o Freeware) come indicazione delle caratteristiche e delle principali proprietà che i tipici sistemi video hanno. In questo senso, tanto per dare alcuni esempi, i formati DivX, XviD, XMpeg e Blu-ray sono stati analizzati, in modo da dare alcune indicazioni circa i sistemi di trasmissione di video e immagini comunemente usati al giorno d oggi.

INDICE 1 INTRODUZIONE... - 1-1.1 COMPRESSIONE VIDEO DIGITALE...- 1-1.2 CENNI SUI DISPOSITIVI PER LA VISUALIZZAZIONE E L ELABORAZIONE DELLE IMMAGINI...- 2-1.3 IL SEGNALE TELEVISIVO: INTRODUZIONE...- 4-1.4 STRUTTURA GENERALE...- 5-1.5 TELEVISIONE AD ALTA DEFINIZIONE...- 9-1.6 SISTEMI GRAFICI E SEGNALE TV...- 10-1.7 LINEE TV, PIXEL E CAMPIONI...- 10-1.8 DALL'ANALOGICO AL DIGITALE...- 11-1.9 RIDURRE LA QUANTITÀ DI DATI...- 12-1.10 MPEG-2, INDISPENSABILE PER IL DVB...- 13-1.11 BREVE GUIDA SUI PRINCIPALI CODEC E FORMATI VIDEO...- 14-1.11.1 Elenco dei principali formati... - 14-1.11.2 I principali Codec... - 16-1.11.3 Le caratteristiche di un DVD (Digital Versatile Disc)... - 21-2 MPEG 1-2 (TMPEG ENCODER)... - 22-2.1 INTRODUZIONE...- 22-2.1.1 Storia... - 23-2.2 SISTEMI DI CODIFICA VIDEO...- 25-2.3 SPECIFICHE PER MPEG VIDEO...- 26-2.3.1 Accesso Casuale... - 26-2.3.2 Ricerca Veloce Avanti/Indietro... - 26-2.3.3 Riproduzione all'indietro... - 27-2.3.4 Sincronizzazione Audio/Video... - 27-2.3.5 Montaggio... - 27-2.3.6 Robustezza... - 27-2.4 FUNZIONAMENTO...- 27-2.5 METODO DI CAMPIONAMENTO...- 28-2.6 MODELLO PERCETTIVO...- 29-2.7 PREMESSA...- 31-2.8 IMMAGINI E CONCETTI BASE...- 32-2.8.1 Dimensione in pixel: size... - 33-2.8.2 Rapporto dimensioni: aspect ratio... - 33-2.8.3 Frame rate... - 35-2.8.4 Interallacciato o progressivo: interlaced... - 35 - Facoltà di Ingegneria- DIBE i

2.8.5 Il campionamento dei colori (YUV format 4:4:4, 4:2:0, 4:1:1) Profile e Level... - 38-2.9 INTRA FRAME, MACROBLOCCHI, DCT...- 41-2.9.1 Frame di tipo I... - 41-2.9.1.1 Matrici di quantizzazione...- 44-2.9.1.2 Ridondanza temporale e compensazione del moto...- 47-2.9.1.3 Motion search accuracy...- 51-2.9.2 B frame... - 57-2.9.3 Cambi di scena e I frame... - 59-2.10 METODI DI GESTIONE DEL BIT-RATE...- 60-2.10.1 Costant Quality CQ... - 62-2.10.2 Conclusioni riguardo il metodo CQ ( costant quality)... - 65-2.10.3 Impostazioni manuali... - 66-2.11 FILTRI VIDEO...- 67-3 MPEG-3 E H.264/MPEG-4 AVC... - 70-3.1 MPEG-3...- 70-3.2 H.264/MPEG-4 AVC...- 70-3.2.1 Introduzione... - 71-3.2.2 Caratteristiche... - 72-3.2.3 Profili e livelli... - 77-3.2.4 Paragone con gli altri standard... - 82-3.2.5 Performance... - 82-3.2.5.1 Qualità oggettiva e soggettiva...- 82 -...- 83 - FIG 3.2 - MIGLIORAMENTO DELL H.264/AVC...- 83-3.2.6 Velocità e complessità della performance... - 84-3.2.7 Applicazioni... - 84-3.2.8 Versions... - 86-4 MPEG 7-21... - 87-4.1 MPEG-7...- 87-4.1.1 Introduzione... - 87-4.1.2 Gli elementi dell MPEG-7... - 88-4.1.3 Lo scopo dello standard... - 89-4.1.4 Parti dell MPEG-7... - 92-4.1.5 Funzioni principali dell MPEG-7... - 92-4.1.5.1 Sistemi MPEG-7...- 92-4.1.5.2 Linguaggio di descrizione e definizione...- 92-4.1.5.3 Visuale MPEG-7...- 93-4.1.5.4 Audio MPEG-7...- 93 - Facoltà di Ingegneria- DIBE ii

4.1.5.5 Schema di descrizione multimediale MPEG-7...- 93-4.1.5.6 Softwere di riferimento dell MPEG-7: the experimentation model...- 94-4.2 MPEG-21...- 94-4.2.1 Introuzione... - 94-4.2.2 MPEG-21 Multimedia Framework... - 95-4.2.3 Prima analisi degli elementi digitali... - 96-4.2.4 Attuale piano di lavoro dell MPEG-21... - 97-5 DIVX E BLU-RAY... - 101-5.1 DIVX...- 101-5.1.1 La storia... - 101-5.1.2 Nasce il DivX... - 102-5.1.3 DivX 3.11 alpha... - 102-5.1.4 Il progetto Mayo... - 102-5.1.5 DivX 4.0... - 103-5.1.6 DivX 5.0... - 103-5.1.7 Rivoluzione: il DivX 6.0... - 104-5.1.8 DivX "alternativi"... - 104-5.1.9 DivX e DIVX... - 105-5.1.10 Kristal Studio e DivX 3.2... - 105-5.1.11 OpenDivX... - 105-5.1.12 XviD... - 106-5.1.13 3ivX... - 106-5.1.14 Applicazioni del DivX... - 107-5.1.15 CD Multimediali... - 107-5.1.16 Duplicazione di DVD... - 107-5.1.17 DVD di nuova generazione... - 107-5.1.18 Streaming... - 108-5.2 BLU-RAY DISC...- 108-5.2.1 Introduzione... - 108-5.2.2 Confronto con il HD e DVD... - 109-5.2.3 Caratteristiche principali... - 110-5.2.4 Protezione dei dati... - 113-5.2.5 Recenti sviluppi sul Blu-ray... - 114-5.2.6 Il ruolo di Microsoft e Intel nel mercato della tecnologia Blu-ray... - 118-5.2.7 Blu-ray Disc Association... - 118-5.2.8 Intel... - 119-6 XVID E XMPEG... - 121-6.1 XVID...- 121 - Facoltà di Ingegneria- DIBE iii

6.1.1 Storia... - 121-6.1.2 Diffusione... - 121-6.1.3 Compatibilità con i lettori Stand Alone... - 121-6.2 XMPEG...- 122-6.2.1 Il Decoding... - 122-6.2.2 La idct... - 122-6.2.3 Il Resize... - 124-7 CONCLUSIONI... - 127 - APPENDICE A BIBLIOGRAFIA... - 128 - APPENDICE B LISTA DEGLI ACRONIMI... - 129 - Facoltà di Ingegneria- DIBE iv

Capitolo 1 Introduzione 1 Introduzione 1.1 Compressione video digitale Un segnale tv trasformato in formato digitale rappresenta una grande mole di dati da elaborare che va oltre alle capacità degli attuali sistemi di diffusione tra cui i transponder satellitari. Questa enorme quantità di dati per essere sfruttata nelle trasmissioni tv satellitari richiede un trattamento di "compressione" che si concretizza nella applicazione dello standard MPEG-2. La digitalizzazione del segnale video ha una storia [1] meno recente di quella del sistema MPEG. Già dal 1982 il CCIR, organo consultivo internazionale che oggi è sostituito dalla sezione raccomandazioni dell'itu denominata ITU-R, definì le specifiche CCIR 601 "Encoding Parameters of Digital Television for Studios". Nell'ultima edizione del 1990, CCIR 601-2, ci sono le basi dell'odierno sistema televisivo digitale e tale specifica è oggi il punto di riferimento costante per chiunque operi nel campo della digitalizzazione video. Le CCIR 601 hanno permesso l'introduzione del video digitale negli studi di produzione televisiva, infatti nel broadcast già da lungo tempo vengono impiegate macchine di registrazione video in formato digitale. Solo successivamente, con il DVB e la compressione video, le tecniche digitali sono state applicate alle trasmissioni televisive ed oggi rappresentano l'evoluzione del sistema televisivo in tutte le sue estensioni: via cavo, via satellite e via terrestre. Nel prossimo paragrafo farò qualche cenno al segnale televisivo in modo introdurre il concetto di compressione digitale. Facoltà di Ingegneria- DIBE - 1 -

Capitolo 1 Introduzione 1.2 Cenni sui dispositivi per la visualizzazione e l elaborazione delle immagini La grafica su elaboratore è nata poco dopo la comparsa dei calcolatori elettronici, con la disponibilità dei CTR (tubi a raggi catodici) e dei plotter. La continua crescita delle potenzialità di calcolo degli elaboratori [2] pone il problema dell interpolazione dei dati prodotti. L unica soluzione è quella di visualizzare i dati in forma grafica o pittorica, sfruttando le notevoli capacità di sintesi del sistema visivo umano. Esistono svariati tipi di dispositivi di presentazione grafica, di gran lunga più diffusi sono i cosiddetti sistemi a raster:in quei sistemi è sempre presente una memoria video, organizzata logicamente come una matrice bidimensionale, i cui elementi sono in corrispondenza uno a uno con i punti luminosi generati da un tubo a raggi catodici a bassa /media persistenza. Gli elementi della matrice contengono numeri interi che vengono convertiti in tensioni dal dispositivo che si occupa della generazione del segnale televisivo da inviare al monitor. E necessario che la matrice dei numeri venga convertita in intensità luminose più volte al secondo (da 25 a circa 100, a seconda dei sistemi). La corrispondenza fra i numeri nella matrice immagine e l intensità luminosa risultante (in bianco e nero o a colori) è in genere modificabile mediante programmazione. Nei sistemi in cui è modificabile esiste una memoria molto veloce, detta tabella di Look-up,che contiene i valori di conversione ed è,in qualche modo, accessibile da programma. Fig. 1.1 - Architettura di un semplice dispositivo di uscita raster. In Fig 1.1 viene presentato uno schema generale di sistema raster semplice. La memoria di immagine(frame Buffer) viene scandita svariate volte al secondo del contatore video Facoltà di Ingegneria- DIBE - 2 -

Capitolo 1 Introduzione (Video Controller), che si occupa anche di generare il segnale televisivo adatto a pilotare il monitor di uscita. La memoria video e il video controller [2] sono solo i due elementi che devono essere presenti, insieme con circuiti che permettono l accesso alla memoria video da parte di un calcolatore. Nei sistemi più semplici non c è quasi altro: Il calcolatore ospite si occupa di gestire le operazioni di scrittura e, in genere, lettura della memoria video. Figura 1.2 - Architettura di un dispositivo di uscita raster. Un ulteriore componente dei sistemi grafici può essere il Display Controller (vedi Fig. 1.2): questo è di fatto un processore più o meno specializzato, a volte anche programmabile che esegue i comandi che provengono dal calcolatore ospite. I dispositivi per elaborazione di immagini hanno in genere la possibilità di acquisire immagini in tempo reale da un segnale video composito. Per fare questo è necessario un campionatore veloce( da 8 a 13 MHz,per un segnale televisivo standard) e la circuiteria adatta ad interpretare i vari impulsi di sincronismo e a scrivere sulla memoria di immagine. Nei sistemi più costosi sono in genere presenti processori specializzati per eseguire operazioni comuni, quali ad esempio la convoluzione con maschere. Il motivo per cui sono presenti dei processori delicati [2] è che la qualità di operazioni richiesta per generare o elaborare una immagine è molto alta e che, almeno sui calcolatori economici la velocità di trasferimento dei dati sul bus interno (ovvero fra unità centrale e dispositivo grafico) è troppo lenta. Facoltà di Ingegneria- DIBE - 3 -

Capitolo 1 Introduzione 1.3 Il segnale televisivo: introduzione Il problema base da risolvere è ovviamente quello di riuscire a trasmettere delle sequenze di immagini su di un canale monodimensionale. La soluzione adottata è quella di campionare in verticale ciascuna immagine, ottenendo quindi un certo numero di linee (cioè funzioni monodimensionali continue di luminosità) per ogni immagine, e poi di inviare in sequenza temporale tutte le righe di ciascuna immagine. Il segnale televisivo[2] si compone dei tratti che portano l informazione relativa alla luminosità delle righe più i segnali, detti di sincronismo, che permettono la ricostruzione corretta delle varie immagini. La differenza fra i vari sistemi televisivi è nel numero di righe di ogni immagine, nel numero di immagine trasmesse al secondo, nella codifica del colore e nella larghezza di banda assegnata (che influenza la risoluzione). Attualmente sono in uso nel mondo diversi formati di segnale televisivo incompatibili fra loro. All inizio, in assenza di specifiche internazionali, si sono sviluppati tre diversi sistemi di televisione in bianco e nero:quello americano a 525 linee, quello europeo a 625 linee e quello francese a 819 linee per immagine. I tre differenti standard di tv in bianco e nero si sono poi trasformati in altrettanti standard a colori, ciascuno ovviamente compatibile con il corrispondente in bianco e nero. I primi sono stati gli americani, che hanno iniziato a trasmettere regolarmente a colori nel 1954 con un sistema noto come NTSC. Gli altri due standard, il PAL per l Europa ed il SECAM per la Francia, sono stati derivati dall NTSC [2] con piccoli miglioramenti. Il PAL è nato nei laboratori della Telefunken ed è in uso dal 1967. Il SECAM, anche lui usato dal 1967, è stato adottato con i varianti dall USSR, alcuni paesi dell est e dall Algeria. Facoltà di Ingegneria- DIBE - 4 -

Capitolo 1 Introduzione 1.4 Struttura generale Gli elementi [2] da tener presente per una corretta trasmissione delle immagini televisive sono: 1. proporzioni geometriche, 2. continuità delle immagini, 3. numero delle linee di scansione, 4. sfarfallio e scansione interallacciata, 5. risoluzione spaziale Proporzioni geometriche. In tutti i sistemi televisivi le immagini sono rettangolari con un rapporto fra la larghezza ed altezza pari a 4/3. Il campo visivo umano è più esteso in larghezza che in altezza. Continuità delle immagini. Le immagini vengono costruite sullo schermo del televisore mediante un procedimento (detto scanning process o scansione) sequenziale studiato in modo da creare una illusione di continuità fra le varie immagini. In realtà sullo schermo, ad ogni istante, è presente solo una piccola parte di una immagine. Numero delle linee di scansione. La stima del numero di linee necessarie per una buona visione del segnale televisivo può essere fatta come segue: fissando una distanza minima dell osservatore dallo schermo pari a quattro volte l altezza dello stesso e osservando che l occhio risolve particolari che distano fra loro non meno di 1/60 di grado, un semplice calcolo indica in circa 860 il numero delle linee necessario per eguagliare il potere di risoluzione del sistema visivo. Sono sufficienti fra 500 e 600 linee per raggiungere una risoluzione accettabile. Sfarfallio. Lo sfarfallio (flicker) è un fenomeno che si verifica quando il numero di immagini al secondo è sufficiente a dare una illusione di continuità, ma non è rapido abbastanza per permettere alla il luminosità di una immagine di mescolarsi in modo omogeneo con quella dell immagine successiva. Il numero di una immagine al secondo è di 24 per il cinematografico, 25 per il segnale televisivo PAL (30 per l NTSC). Nei film questo inconveniente è risolto proiettando ciascuna immagine due volte. Nel segnale televisivo lo sfarfallio viene combattuto mediante la cosiddetta scansione interallacciata: ciascuna immagine (quadro) viene divisa Facoltà di Ingegneria- DIBE - 5 -

Capitolo 1 Introduzione in due sottoimmgini (detti semiquadri o campi, in inglese field) composte rispettivamente dalle righe pari e da quelle dispari. Ciascun semiquadro [2] viene scandito nella metà del tempo rispetto all intera immagine, quindi vi sono il doppio delle immagini al secondo (ciascun a metà risoluzione verticale). Il modo di funzionamento della scansione interallacciata è mostrato in Fig. 1.3: da notare che la presentazione dei due semiquadri è tale che le righe del secondo campo cadono in posizione intermedia rispetto a quelle del primo. Nei sistemi con 625 linee totali (PAL) queste sono divise in due gruppi di 312.5 linee e ciascun insieme è scandito alternativamente per coprire l intera area dell immagine. Per ottenere ciò, l oscillatore di movimento orizzontale lavora ad una frequenza di 15625 Hz (312.5*50=15625), che è la stessa frequenza necessaria per la scansione non interallacciata (625*25=15625), mentre l oscillatore di movimento verticale usa una frequenza di 50 Hz (invece che di 25 Hz). La scansione interallacciata permette di eliminare lo sfarfallio senza aumentare il numero di linee trasmesse al secondo. Fig. 1.3 - Principio di scansione interallaciata. Le righe sono numerate in sequenza temporale. Per semplicità sono ignorate le linee spese durante la rintraccia verticale (venti per semiquadro). Facoltà di Ingegneria- DIBE - 6 -

Capitolo 1 Introduzione Fig. 1.4 - Forme d onda per la deflessione. Scansione verticale e orizzontale: Il sistema per produrre l immagine sullo schermo del televisore è quello di generare due forme d onda triangolari [2] per pilotare i circuiti del tubo catodico (verticale e orizzontale). In Fig. 1.4 sono mostrate le forme d onda necessarie a pilotare entrambi i circuiti di scansione. Il tempo dedicato alla ritraccia è necessario per vincere le inerzie (elettromagnetiche) del sistema di scansione e non può essere usato per la trasmissione delle immagini. Nel tempo di ritraccia verticale vengono trasmesse le informazioni di televideo. La durata nominale delle linee orizzontale, è di 64 µsec. (1/15625 s) di cui 52 µsec sono di periodo attivo e 12 µsec di periodo di ritorno di linea: il raggio ritorna, durante questo intervallo, al lato sinistro del quadro per ripartire a tracciare la linea successiva. Analogamente, essendo la frequenza di semiquadro 50 Hz, la durata nominale della traccia verticale è di 20 ms (1/50 s): di questi, 18.720 ms sono usati per portare il raggio dall alto al basso e i rimanenti 1.280 ms sono usati dal raggio per tornare in alto e comunicare il semiquadro successivo. Dal momento gli oscillatori di movimento orizzontale e verticale operano continuamente ( non possono fare altro), 20 linee orizzontali (1280/64) vengono tracciate durante ciascun intervallo di ritraccia verticale: ovviamente il fascio di elettroni è spento durante la ritraccia verticale, per cui le 20 linee non si vedono. In questo modo si perdono 40 linee di scansione per immagini durante l intervallo di ritraccia dei due semiquadri e quindi il numero effettivo di linee utilizzate per la scansione dell immagine è uguale a 585 (delle 625 nominali). Facoltà di Ingegneria- DIBE - 7 -

Capitolo 1 Introduzione La geometria completa del modello di scansione interallacciata è Fig. 1.5. Si noti che le linee sono numerate nella sequenza in cu sono effettivamente scandite. Durante la prima traccia verticale vengono scandite 292.5 linee. Il raggio parte da A e si muove verso il quadro con velocità uniforme per disegnare la prima linea orizzontale. Alla fine di questa traccia [2] il raggio ritorna rapidamente al lato sinistro del quadro, come mostrato dalla linea tratteggiata in figura, per cominciare la successiva linea orizzontale. Le linee orizzontali tendono a scendere nella direzione di scansione perché il circuito di deflessione verticale produce un movimento verticale continuo, peraltro molto lento rispetto a quello orizzontale. L abbassamento della traccia orizzontale da sinistra a destra è maggiore che durante la rintraccia da destra a sinistra di un rapporto 52/12. Il processo continua fino a quando non si arriva alla metà dell ultima linea del primo semiquadro, cioè nel punto B, quando sono state disegnate 292.5 linee. Ora il raggio viene spento ed impiega il tempo equivalente a 20 linee per tornare in alto (nel punto C). Da notare che la partenza è ha metà della prima linea che permette alle linee del secondo semiquadro di essere posizionate sfalsate (a mezza via ) rispetto a quelle del primo semiquadro lasciando invariate le temporizzazioni in verticale (questo spiega il perché il numero di linee per immagine sia, in tutti sistemi, dispari). Ora viene scandito il secondo semiquadro, fino al completamento della rintraccia della linea 605 (punto D). Le 20 linee necessarie per riposizionare il raggio in A portano in fine il numero complessivo di linee a 625. Figura 1.5 - Scansione interfacciata: viene mostrato un quadro completo pari a 625 linee in 1/25 di secondo. Facoltà di Ingegneria- DIBE - 8 -

Capitolo 1 Introduzione Risoluzione spaziale. La risoluzione verticale dipende dal numero di linee di scansione visualizzate, secondo V r = N a * k (1.1) dove V r è la risoluzione verticale espressa in numero di linee. N a è il numero di linee attive e k è il fattore di risoluzione (noto anche come fattore di Kell). Assumendo per k il valore di 0,69 si ottiene Vr PAL = 585 * 0.69 = 400 linee. La risoluzione orizzontale dipende dalla larghezza di banda assegnata al segnale video (le righe non sono campionate). Assumendo di desiderare [2] una risoluzione orizzontale pari a quella verticale moltiplicata per 4/3 si ottiene un valore di 585 * 0.69 * 4/3 = 533. Facendo un po di conti viene fuori che serve una larghezza di banda pari a circa 5 MHz, il che spiega perché la larghezza di banda assegnata ai sistemi a 625 linee è pari a 7 MHz (ci devono stare anche i sincronismi, l audio, la banda vestigiale ed i margini di guardia). Per il sistema NTSC (a 525 linee) lo stesso calcolo porta a Vr NTSC = 485 * 0.69 = 335 e ad una banda di 4 MHz (4/3 335/2 1/57 s = 3.9 MHz), mentre quella allocata è di 6 MHz. Il sistema francese con 819 linee ha una richiesta di banda di 10.4 Mhz ed è una allocazione pari a 14 MHz. 1.5 Televisione ad alta definizione Attualmente sono allo studio diversi sistemi di televisione ad alta definizione o HDTV. Lo scopo è quello di arrivare ad una qualità ricevuta simile a quello del cinematografico. Sono stati proposti sistemi sia analogici che numerici, con un numero di linee un po maggiore di 1000 ed un numero di colonne fra i 1200 e 2000 (per i numerici,per gli altri è una indicazione della risoluzione orizzontale). Questi sistemi, tutti rigorosamente incompatibili fra loro, hanno un rapporto larghezza/altezza maggiore di 4/3, prevedono una presentazione non interallacciata [2] e sono incompatibili con i segnali televisivi tradizionali. Tutti prevedono una qualche forma di compressione dei dati, al fine di ridurre la larghezza di banda del canale associato dai circa 100 MHz necessari per la trasmissione non codificata a circa 30 MHz (il sistema allo studio presso la RAI TV prevede una codifica digitale basata sulla DCT, trasformata discreta coseno). Facoltà di Ingegneria- DIBE - 9 -

Capitolo 1 Introduzione 1.6 Sistemi grafici e segnale TV I sistemi per grafica ed elaborazione di immagini [2] producono in uscita un segnale analogico adatto a pilotare il monitor di visualizzazione. Questo segnale non è, in genere, un segnale televisivo standard. I motivi sono piuttosto evidenti: non c è infatti alcuna necessità di ridurre la banda o di degradare la presentazione per essere compatibili con il segnale monocromatico. Questo significa che, in quasi tutti i sistemi, l uscita (ovviamente non modulata) è su tre diversi fili, uno per colore primario RGB, e non è presente la codifica del colore. Inoltre non c è alcun bisogno di interallacciare i semiquadri, e quindi vengono presentate da 50 a 100 immagini complete al secondo (a secondo dei sistemi). I sincronismi sono invece necessari: questi possono essere divisi in orizzontali e verticali (su due fili diversi), uniti sullo stesso filo oppure mischiati ad uno dei colori primari (in genere il verde). Questi sincronismi sono in tutto simili a quelli visti per il segnale televisivo standard, a parte per le temporizzazioni e l assenza di impulsi equalizzatori e color burst. Questi tipi di segnali non possono ovviamente essere videoregistrati: i sistemi più recenti hanno, a volte come opzione, l uscita video indipendente a standard PAL o NTSC, con una qualità in genere piuttosto bassa (ma dipende molto dal tipo di immagine visualizzata). 1.7 Linee TV, pixel e campioni Una immagine TV analogica viene normalmente descritta come il risultato di una scansione operata da sinistra verso destra e dall'alto verso il basso. Ogni scansione completa è costituita da 625 linee e, in base allo standard adottato in Europa, viene ripetuta per 25 volte in un secondo [2] così come in una proiezione cinematografica si hanno 24 fotogrammi in un secondo. Le 625 linee tv non vengono impiegate totalmente per descrivere l'immagine. Infatti oltre alle informazioni sul contenuto di luminanza e crominanza dell'immagine sono necessarie altre informazioni per la cui trasmissione necessita un periodo di pausa pari al tempo di trasmissione di ben 49 linee. Le linee attive dell'immagine sono quindi 576. Nel campo della TV digitale si utilizza invece un altra modalità di descrizione dell'immagine suddividendola in pixel. Per ogni linea tv si considerano quindi 720 pixel pertanto una intera immagine tv è formata da 720 x 576 pixel. Ad ogni pixel sono associati i valori di luminosità dell'immagine, in gergo luminanza Y, e i valori relativi al colore, in gergo crominanza C. Ogni pixel è quindi costituito da Facoltà di Ingegneria- DIBE - 10 -

Capitolo 1 Introduzione campioni di luminanza e crominanza in numero variabile in funzione del livello qualitativo che si deve ottenere che viene descritto nella raccomandazione CCIR.601 (vedi anche televisore). 1.8 Dall'analogico al digitale Le specifiche CCIR 601-2 hanno avuto il grande ruolo di normalizzare le condizioni di digitalizzazione del segnale video [1] al fine di facilitare l'intera operabilità tra le macchine e favorire lo scambio dei programmi televisivi. Una altra specifica, la CCIR 656 ha invece fissato le condizioni di interfaccia tra i sistemi e le apparecchiature destinate al trattamento dei segnali video digitali. Secondo le CCIR 601-2 il segnale video digitale standardizzato è costituito dai dati relativi al campionamento di tre componenti del segnale video: la componente di luminanza Y e due componenti di differenza colore Cb e Cr. Queste tre componenti vengono campionate al fine di produrre un segnale digitale formato da 864 campioni di luminanza Y e 432 campioni di crominanza per ogni segnale differenza colore Cb e Cr. Questi valori si riferiscono ad una immagine televisiva completa con 625 linee e 50 semi-quadri. L'immagine reale, come abbiamo visto, invece lascia inutilizzate alcune aree pertanto [1] i campioni realmente utilizzati sono di meno in quanto i pixel utili alla descrizione dell'immagine sono 720 in senso orizzontale e 576 in senso verticale. I campioni di luminanza e crominanza, all'interno dell'immagine vengono suddivisi con una struttura definita in tre possibili formati: 4:2:2, 4:1:1 e 4:2:0. Il formato 4:2:2 è indicato dalla specifica CCIR 601-2 come lo standard di fatto per l'interscambio dei programmi e la diffusione tv. Il formato 4:2:0 è utilizzabile nei contributi mentre il formato 4:1:1 è destinato ad applicazioni di bassa qualità. In una immagine video trasmessa nel formato 4:2:2, in orizzontale per ogni linea si hanno due campioni di crominanza Cb e Cr ogni quattro campioni di luminanza [1] mentre in verticale si ha la successione di linee identiche. Ciò significa che in orizzontale si ha un sottocampionamento mentre in verticale no. Facoltà di Ingegneria- DIBE - 11 -

Capitolo 1 Introduzione 1.9 Ridurre la quantità di dati Se proviamo a calcolare il "bitrate" necessario alla trasmissione di un segnale video campionato in 4:2:2 a 8 bit avremo delle amare sorprese [1] in quanto ci troveremo di fronte ad un bit rate necessario di 216 Mb/s, valore molto elevato. Ovviamente se si escludono le parti non significative dell'immagine ovvero, gli intervalli di cancellazione di linea e di quadro, si può avere un risparmio in termini di bit rate passando da 216 Mbit/s a 166 Mbit/s. Il "bitrate" è in stretta connessione con la larghezza di banda necessaria per eseguire la trasmissione via radio. Pertanto per poter trasmettere un segnale digitale è necessario adattare il bit rate alla larghezza del canale satellitare. Prendendo ad esempio un canale satellitare largo 33 MHz, questo supporta un Symbol Rate di 24,4 Ms/s che equivale, in QPSK ad un bit rate di 48,8 Mb/s (fuori dalla codifica Reed-Solomon e Convoluzionale). Attualmente viene tollerato un certo degrado di qualità che mantiene il tasso di errori entro valori accettabili, pertanto viene utilizzato frequentemente un Symbol Rate di 27,5 Ms/s il che equivale ad ottenere un bit rate massimo di 55 Mb/s. Tale bit rate viene ridotto impiegando la codifica convoluzionale e quindi si ottengono diversi valori convenienti di bit rate in funzione del FEC impiegato. Con un FEC di 1/2 si ottiene un bit rate di 25,43 Mb/s mentre con un FEC di 7/8 si ottiene un bit rate di 44,35 Mb/s. Attualmente viene largamente impiegato un FEC di 3/4 con il quale [1] si ottiene un bit rate di 38 Mb/s per un canale come quello utilizzato su Hot Bird largo 33 MHz e con un Symbol rate di 27,5 Ms/s. Nonostante le possibilità del sistema di trasmissione, 38 Mb/s sono ancora pochi per supportare la trasmissione di un segnale video digitale. Per questo motivo entra in gioco il sistema di compressione MPEG-2 adottato dal DVB. Utilizzando la compressione si ottiene una forte riduzione della quantità di dati da trasmettere permettendo così di sfruttare un unico canale satellitare per la trasmissione di più programmi televisivi. Basti pensare al fatto che attualmente la migliore qualità di trasmissioni dirette agli utenti richiede un bit rate di circa 8 Mbit/s per ogni programma tv. Pertanto ciò lascia intuire che unendo l'mpeg-2 alle tecniche di multiplazione digitale si possano trasmettere grandi quantità di dati. Ciò è infatti quello che accade con le attuali trasmissioni digitali dove su Facoltà di Ingegneria- DIBE - 12 -

Capitolo 1 Introduzione un solo transponder da 33 MHz può trovare spazio la combinazione di programmi aventi anche tra loro un diverso bit rate. Alla base di questo principio sta una importante applicazione, relativa alle tecniche di compressione, attualmente sperimentata dalle trasmissioni RAI. Tali trasmissioni infatti utilizzano la tecnica di "compressione dinamica" per mezzo della quale [1] il bit rate dei singoli programmi che condividono lo stesso bouquet non è fisso ma può variare dipendentemente dalle esigenze istantanee di qualità e quindi di bit rate delle singole immagini. Ad esempio: un programma sportivo con immagini in forte movimento può avere a disposizione un bit rate istantaneo elevatissimo sfruttando una maggiore compressione degli altri programmi presenti nello stesso bouquet. 1.10 MPEG-2, indispensabile per il DVB La televisione digitale DVB (Digital Video Broadcasting) adotta la compressione video chiamata MPEG-2. La sigla MPEG deriva dal nome di un gruppo di lavoro chiamato Motion Pictures Expert Group che riunisce esperti internazionali del settore [1] con lo scopo di standardizzare le procedure di compressione per servizi televisivi e multimediali. Si tratta in realtà di un gruppo di lavoro ISO/IEC con la complicata sigla identificativa JTC1/SC29/WG11, che opera congiuntamente al gruppo 15, della sezione telecomunicazioni della ITU, che invece si occupa di codifica video ATM. Il gruppo MPEG collabora anche con la sezione raccomandazioni della ITU, SMPTE e la comunità americana che si occupa di HDTV. MPEG-2 raggruppa le specifiche divenute standard a tutti gli effetti e fissate al 29º meeting ISO/IEC di Singapore nel novembre 1994. Tali specifiche sono raccolte nel fascicolo ISO/IEC 13813 in tre parti: 13183-1 per il sistema; 13183-2 per il video e 13183-3 per l'audio. Esistono altre specifiche MPEG ovvero: MPEG-1, MPEG-3 e MPEG-4; la prima non è diversa concettualmente da MPEG-2 ma ha caratteristiche inferiori, mentre MPEG-3 era uno standard per applicazioni con immagini ad alta definizione HDTV in seguito abbandonato. L'MPEG-4 è una somma degli standard precedenti, è molto flessibile e supporta molte modalità di compressione con bit rate che possono essere estremamente ridotti o molto ampi. Facoltà di Ingegneria- DIBE - 13 -

Capitolo 1 Introduzione 1.11 Breve guida sui principali codec e formati video Il codec (COmpressore-DECompressore) è un software che dice al computer con quali operazioni matematiche deve manipolare le immagini per comprimerle e quali eseguire per visualizzare quelle compresse; Il "formato" invece è una sorta di scatola che contiene il codec [3] e lo integra con il sistema. I codec esistenti sono tantissimi al contrario dei formati. Il codec possiamo definirlo formato video e il formato possiamo anche definirlo formato documento. 1.11.1 Elenco dei principali formati MS VIDEO FOR WINDOWS (.AVI ) Il primo formato introdotto con le funzionalità necessarie per il trattamento del video. Supporta moltissimi codec di compressione, quali tra i più noti: DivX, Xvid, Cinepak, M- jpeg, Intel Indeo. E compatibile con tutti i software per l'editing non lineare, oltre alla quantità e la versatilità dei codec supportati lo rendono ottimo per il video digitale principalmente su piattaforma Win. Il suo difetto principale è quello di non poter essere utilizzato per lo streaming. MICROSOFT NETSHOW (.ASF ) Formato dedicato allo streaming di medio/alta qualità, consente di catturare, editare, convertire e riprodurre filmati, slideshow e file audio attraverso codec audio/video performanti. Nato fondamentalmente per il web [3] questo formato consente di ottenere buoni rapporti qualità/dimensione per una riproduzione off-line (oltre che in streaming). WINDOWS MEDIA VIDEO (.WMV ) Formato introdotto da Microsoft che dovrebbe garantire una maggiore qualità rispetto al formato MPEG a parità di Mb occupati. Particolarmente adatto per il Multimedia publishing e il Web publishing. Utilizza tecnologia scalabile per la trasmissione in rete creando varie versioni dello stesso filmato in Mpeg4 bit rate diversi. Facoltà di Ingegneria- DIBE - 14 -

Capitolo 1 Introduzione MPEG (.MPG -.MP2 - MPEG ) Formato standard internazionale che si avvale dell'algoritmo di compressione MPEG (Moving Picture Experts Group). La qualità video è decisamente buona [3] se teniamo presente l'eccezionale rapporto di compressione (fino a 200:1). A causa del suo carattere asimmetrico (compressione che avviene in un tempo decisamente maggiore della riproduzione) e della sua struttura interna (ridondanza spaziale, encoding incrementale), che impedisce l'elaborazione frame-by-frame e quindi l'editing non lineare, questo formato risulta ottimo per il Multimedia publishing ma poco utilizzabile per il Desktop video. Esistono diverse versioni con qualità standard diverse: MPEG1, MPEG2 e MPEG4. APPLE QUICK TIME (.MOV ) E' il formato Quick Time Standard per Apple. Esso integra tipi di dati, come audio video e animazioni, in modo dinamico, su base temporale, nelle applicazioni dedicate considerandole come "movies". Gli algoritmi di compressione presenti in QuickTime (sono di varia natura e scopo; i tre principali sono il Jpeg (photo compressor) che e' un codec per la compressione delle immagini PICT; il video compressor, proprietario Apple, che permette un display interattivo di immagini a 24 bt, e' in grado di processare immagini video a 8, 16, 24 bit, con supporto di entrambe le compressioni in modo spaziale e temporale; e l'animation compressor [3] basato invece su algoritmi ottimizzati per le animazioni in genere e per la videografica generata al computer. Questo formato risulta ottimo per prodotti multimediali (quali CD ROM o video interattivi), ma può assolvere anche a piccoli progetti di Digital Video. ADOBE FILMSTRIP (.FLM ) E' un formato proprietario della Adobe che raccoglie in un unico file grafico tutti i fotogrammi della sequenza compilata. Le dimensioni dei file sono proibitive e la riproduzione video è estremamente lenta. REAL MEDIA AUDIO/VIDEO (.RA -.RM -.RAM ) Concepito inizialmente per l'audio in rete, questo formato è diventato ormai standard per lo streaming audio/video, un vero e proprio pacchetto per la creazione e la distribuzione del multimedia sul web. In rapporto alla compressione ottenuta (10:1) la qualità audio è decisamente eccezionale (16bit, 44Khz, Stereo); per quanto riguarda il video esistono dei limiti connessi alla capacità dei sistemi che si adottano. La qualità e la fluidità del video dipenderanno [3] dalla macchina di riproduzione, dai settaggi di compilazione, dal Facoltà di Ingegneria- DIBE - 15 -

Capitolo 1 Introduzione soggetto del filmato e soprattutto dalla velocità della linea: un modem a 33.6kbps difficilmente raggiungerà uno streaming maggiore di un fotogramma al secondo, mentre una connessione ADSL permette maggiore fluidità e qualità dell'immagine. DIGITAL VIDEO (.Dv ) Formato di acquisizione delle recenti videocamere. La compressione interna è simile al Motion Jpeg (MJpeg). Il DV e' un formato digitale nativo; cio' vuol dire che, a meno che non ci adoperiamo altrimenti, nasce digitale sin dal momento della ripresa e rimane tale sino al momento di riversare la clip, e anche oltre. Infatti, quando andiamo a catturare una sequenza con la nostra scheda di acquisizione M- Jpeg, non facciamo altro che trasformare [3] un segnale analogico (che esce dalla videocamera) in un segnale digitale (quello su cui faremo editing). Col DV questo non avviene piu', gia' al momento della ripresa, sul nastro DV viene incisa una sorta di clip digitale, una sequenza di bit che dobbiamo soltanto trasferire (in pratica copiare) su computer senza nessuna ricompressione e al massimo con l'aggiunta di un header (intestazione) che permette di riconoscere il file come multimediale. Un file DV potrebbe presentarsi come un AVI (su PC), ma in realtà e' sempre un DV. 1.11.2 I principali Codec Il codec (COdificator-DECodificator o COmpressore DECompressore) e' un particolare software che contiene un algoritmo costruito per codificare e decodificare, in questo caso, una sequenza video. Sappiamo che la mole di dati che una sequenza video comporta e' molto elevata e quindi sarebbe improponibile realizzare un filmato senza averlo prima compresso (e quindi codificato) con un algoritmo di compressione. A questa mansione risponde il codec che, appunto, in fase di acquisizione trasforma le informazioni ricevute in un file più piccolo e compatto, e in fase di riproduzione interpreta il codice nel file per poterlo mostrare integro. Per capire meglio le funzioni del codec, andiamo a vedere quali sono gli elementi fondamentali [3] che permettono la trasmissione di un video, limitandomi all'aspetto legato alla trasmissione delle immagini, poiché il codec è soprattutto su queste che interviene. Quando si vogliono digitalizzare le immagini analogiche (attraverso una scheda di acquisizione video), bisogna "campionare" (scegliere) un certo numero di punti - detti pixel - che rappresentino adeguatamente l'immagine, e per ognuno di questi punti memorizzarne Facoltà di Ingegneria- DIBE - 16 -

Capitolo 1 Introduzione il colore. Già in questa scelta c'è una perdita di informazione, che però è obbligatoria per passare da quantità continue, come quelle analogiche, a quantità discrete, come quelle digitali. L'occupazione di memoria di un'immagine dipende quindi dal numero di pixel campionati (la risoluzione dell'immagine), ma anche [3] dalla fedeltà di colore che si vuole ottenere, cioè dalla quantità di memoria che si usa per rappresentare il colore di ognuno di essi. Di solito, si memorizza l'informazione del colore con tre parametri, che corrispondono ai colori fondamentali RGB (Red, Green Blue: Rosso, Verde, Blu). Abbiamo detto che la qualità dell'immagine digitalizzata dipende dal numero dei pixel campionati e dal numero dei bit utilizzati per codificarli. Per rappresentare un colore su un possibile spettro di 256 colori è sufficiente un byte (8 bit permettono di codificare i numeri da 0 a 255), mentre per rappresentarne uno su 16 milioni occorrono 3 byte, cioè 24 bit. Se ad esempio vengono usati otto bit per ogni colore (24 bit) si ottiene una tavolozza di sedici milioni di colori possibili da assegnare ad ogni pixel. Il risultato è molto vicino all'originale analogico. Trasmettere però via internet trenta fotogrammi da 800x600 pixel al secondo a 24 bit è attualmente impossibile, perché né i modem, né le linee permetterebbero di inviare e ricevere 30x800x600x24 bit al secondo (345.600.000 bit!). Per ovviare a questo inconveniente sono stati messi a punto i diversi codec, che creano un compromesso tra qualità e occupazione di memoria. Prima di scegliere quale codec usare nella compressione di un clip video è bene sapere qualcosa sui metodi di compressione più diffusi. Alcuni metodi di compressione vengono chiamati "lossless" (senza perdita di informazioni), essi fanno in modo che il video venga trasmesso all'utente ad una qualità non inferiore a quella originale. Ma la maggior parte dei metodi usati per la compressione sono chiamati "lossy" (con perdita di informazioni): ciò che viene trasmesso dopo la decompressione è un video di qualità inferiore all'originale. I metodi lossless appartengono a tecniche di compressione che vengono chiamate "assolute ; alle tecniche incrementali appartengono invece i metodi lossy. Le prime comprimono ogni fotogramma e codificano le sequenze di tutti i pixel uguali [3] e sono le stesse che vengono usate per la compressione delle immagini statiche; le seconde invece suddividono l'immagine in aree quadrate e trasmettono solo i dati che cambiano da un fotogramma all'altro. Le tecniche di compressione assolute, ossia quelle che agiscono su Facoltà di Ingegneria- DIBE - 17 -

Capitolo 1 Introduzione ogni fotogramma, sono più semplici e per questo possono essere elaborate dai componenti software; quelle incrementali invece richiedono schede di acquisizione video dedicate. SORENSON VIDEO Uno dei primi codec Quick Time. In bassa risoluzione è buono per il web, in alta per Cd rom. INDEO VIDEO Codec sviluppato dalla Intel [3] che poteva vantare un notevole supporto hardware su pc assieme ad utili effetti di trasparenza ed interattività che lo rendevano molto adatto ad applicazioni su Cdrom. La versione 5 è stata migliorata molto rispetto alle precedenti ma non è più utilizzabile in Mac OS X in quanto lo sviluppo è completamente cessato. CINEPACK Creato nel 1990 per computer poco potenti, il Cinepak oggi risulta poco usato proprio perché ormai superato da nuove tecnologie di compressione. Tuttavia il Cinepak ha ancora il pregio di essere visualizzabile praticamente da tutti i computer esistenti, quindi lo si trova sempre nella lista codec del software e dell hardware più comune. Adatto solo a piccoli video a bassa risoluzione. REAL VIDEO Codec scalabile, la qualità video si adatta alla capacità di trasmissione della linea e alla potenza del computer. Simile ai formati WMA/V ma deriva dall Indeo Video. MPEG1 Primo rivoluzionario codec video Mpeg a essere diffuso. E' adatto a creare Cd video di qualità Vhs. Suo difetto [3] è che un intero film compresso in Mpeg1 solitamente occupa più di un Cd. I file MPEG1 vengono decodificati e quindi riprodotti da qualsiasi player preinstallato su ogni moderno computer. MPEG2 Standard Mpeg per l alta risoluzione. Rispetto all'mpeg1, questa versione utilizza sistemi di compressione più complessi ed evoluti ed è stato ottimizzato per un bit-rate molto alto e per l alta risoluzione, con notevole incremento della qualità a parità di dimensioni dei file finali. Un film in Mpeg2 a piena risoluzione occupa alcuni GigaByte e per questo può esser contenuto solo in un Dvd e può esser trasmesso in streaming solo su banda larga. Facoltà di Ingegneria- DIBE - 18 -

Capitolo 1 Introduzione MPEG4 Nuova versione Mpeg migliorata rispetto all Mpeg2, con una compressione maggiore, una maggiore dimestichezza allo streaming e all interattività. Dall Mpeg4 è nato DivX e Xvid. (due progetti assolutamente analoghi ma distinti) Mpeg4 rappresenta un ulteriore sviluppo in quanto utilizza l esperienza Mpeg2 e la unisce a nuovi metodi di definizione dell immagine ottenendo alta qualità in poco spazio. Probabilmente grande merito del positivo impatto estetico che ha Mpeg4 va alla fusione dei pixel adiacenti e alla ricostruzione matematica dei particolari [3] che permette di smussare la quadrettatura dovuta alla bassa risoluzione o la blocchettizzazione dovuta ad un fattore di compressione elevato. Naturalmente gran parte del merito per l alta qualità (soprattutto a risoluzioni elevate) la si deve anche alla capacità di predizione matematica dei vettori di movimento che permette di valutare lo spostamento di una determinata porzione d immagine all interno della scena, come ad esempio una persona che si muove in una stanza. In questo caso il sistema identifica l immagine che si sposta e la muove direttamente nei frame successivi. Il fatto di non dover comprimere quella pozione di immagine per tutti i frame bensì solo all inizio permette di poterla codificare a qualità elevata (mantenendo tutti i particolari) con grande risparmio di spazio e di banda passante. Se durante i vari frame l immagine si modifica (l uomo mentre cammina muove la testa) viene applicato un morphing matematico, dove con morphing si intende una trasformazione graduale di un gruppo di pixel con determinate caratteristiche in un altro gruppo di pixel con caratteristiche differenti. In questo modo il cambiamento in una zona di immagine viene descritto definendo solo l inizio e la fine senza descrivere tutti i passaggi intermedi. H.264 (MPEG4) Il formato video H.264 è un codec video che offre qualità sorprendenti [3] in rapporto ad un data-rate basso e merita un certo approfondimento a seguire in quanto, pur facendo parte della famiglia Mpeg, è di recente realizzazione e implementazione da parte di Apple. Ratificato come parte dello standard MPEG-4 (MPEG-4 Part 10), questa tecnologia ultraefficiente in Quick Time 7 offre ottimi risultati con una varietà di ampiezze di banda: dai dispositivi portatili 3G alle videoconferenze (ichat AV su Tiger), fino all HD in contesto broadcast. H.264 offre una qualità pari allo standard MPEG-2 a un terzo o persino la metà del data rate, con una risoluzione fino a quattro volte superiore a quella supportata dal formato MPEG-4 Part 2 a parità di data rate. H.264 è ora obbligatorio per le specifiche Facoltà di Ingegneria- DIBE - 19 -

Capitolo 1 Introduzione HD-DVD e Blu-ray (i due formati per i DVD ad alta definizione) e ratificato nelle recenti versioni degli standard DVB (Digital Video Broadcasters) e 3GPP (3rd Generation Partnership Project). DIVX e XVID I formati DivX e Xvid sono codec di compressione audio/video [3] nati col preciso scopo di ottenere una qualità discreta con bit-rate molto bassi. Il DivX ebbe origine da una versione "modificata" del codec proprietario Microsoft MPEG4 al quale sono state eliminate delle limitazioni inserite dalla Microsoft ( l'utilizzo solo come formato ASF con alcuni parametri bloccati). La caratteristica fondamentale di tali formati è l'elevato livello di compressione (codec super ottimizzato), la elevatissima efficienza del codec (relativamente brevi tempi di codifica, real time per le macchine più potenti), scalabilità sia in codifica (scelta del miglior livello di compressione), sia di decodifica (le macchine più lente possono vedere ugualmente i filmati rinunciando un pò alla qualità) Come già detto questi file hanno estensione AVI, pur sfruttando la codifica video MPEG, e possono essere riprodotti sul proprio computer soltanto se si è provveduto ad installare i codec DivX o Xvid utilizzati per la codifica o applicazioni ah hoc. I file Divx possono anche essere riprodotti dai recenti lettori DVD da tavolo. Dove il DivX pecca fortemente in qualità è nel video interallacciato (le classiche risoluzioni 704x576, 720x576): la incapacità a gestire l'interallacciamento in maniera efficiente (diversamente da quello che avviene con l'mpeg2) sconsiglia fortemente l'uso del DivX per tali risoluzioni interallacciate: al contrario il DivX si trova "a suo agio" con risoluzioni 704x576 (o 720x576) e video progressivo ( i film DVD) Per l'audio si ricorre all' Mp3 o al DivX audio [3] che non è altro che il codec Microsoft Windows media audio craccato. Come alternativa è possibile utilizzare esattamente lo stesso audio ac3 5.1 del DVD. Riguardo le specifiche è lasciata la totale libertà per il formato video e il bit rate (l'mpeg 4 arriva ad un bit rate pari 6000 Kbit/s e funziona sempre in modalità VBR, bit rate variabile). Facoltà di Ingegneria- DIBE - 20 -

Capitolo 1 Introduzione 1.11.3 Le caratteristiche di un DVD (Digital Versatile Disc) Il DVD non è altro che un supporto ottico nel quale possono essere riversati video di qualità cinematografica, audio superiore a quello dei CD e dati informatici; praticamente è come un CD, ma più capiente e veloce. In funzione della differente tecnologia costruttiva esistono enormi differenze fra vari tipi di DVD [3] sia riguardo la capienza dei dati, sia per la tipologia del supporto stesso. Esistono infatti DVD che possono contenere 4.38 GByte, 7.95 GByte (questi primi due sono i più frequenti tra i DVD video), 8.75 GByte e 15.90 GByte. Bisogna inoltre distinguere tra DVD video (chiamato semplicemente DVD), DVD audio che può contenere audio ad altissima qualità campionato a 96 khz ed oltre, DVD-ROM che contiene dati e che è presente nelle varie versioni registrabili DVD-R, DVD-RW, DVD-RAM, DVD+RW ed infine è da citare anche il SACD (Super Audio Compact Disc). I DVD possono contenere più di due ore di video digitale di qualità professionale (un disco a doppio strato e doppia facciata ne può contenere ovviamente otto ore!). Supportano formato video televisivo normale (4:3) e cinematografico (16: 9). Contengono fino a 8 tracce digitali audio multicanale (5+1 ed anche 6+1) e fino a 32 tracce di sottotitoli. Possibilità di multiangolazione della stessa scena. Menù multilingue interattivi. Ricerca in tempo reale di un qualsiasi punto del film, sia per capitoli, sia per codice temporale. I DVD non vengono influenzati da campi magnetici ed hanno una elevata resistenza al calore. Facoltà di Ingegneria- DIBE - 21 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) 2 MPEG 1-2 (tmpeg encoder) 2.1 Introduzione L'informazione video, nella forma digitale, porta molti vantaggi: affidabilità di trasmissione, alta qualità, notevole flessibilità di applicazioni. Lo svantaggio principale consiste però nel bitrate eccessivamente alto per i mezzi di memorizzazione [4] e per i canali di trasmissione attualmente disponibili. Ad esempio, un segnale televisivo PAL, digitalizzato a 8 bit, richiede un bitrate di quasi 200 Mbit/s, mentre un segnale in alta definizione richiede circa 1 Gbit/s; i mezzi di memorizzazione attualmente disponibili (CD-ROM, DAT) danno invece un bitrate di circa 1.5 Mbit/sec. Per ottenere un bitrate a questi livelli si rende necessaria una compressione dei dati video, sia con perdita d'informazione che senza. Il recente sviluppo delle tecnologie video digitali ha reso possibile l'utilizzo delle tecniche di compressione video nelle telecomunicazioni (teleconferenza, video telefonia, ecc.). Di conseguenza, la standardizzazione delle tecniche di compressione è diventata un problema di principale importanza, poiché soltanto in questo modo è possibile ridurre gli alti costi delle apparecchiature di compressione immagini e risolvere il problema dell'interfacciamento tra apparecchiature realizzate da costruttori diversi, favorendo così la diffusione di questo tipo di dati. La definizione di un efficace algoritmo di compressione per sequenze video permette infatti di ridurre la mole di dati originaria a valori ragionevoli, che sono più facilmente gestibili dagli attuali mezzi di trasmissione e di memorizzazione. Per questi motivi l'iso (International Organization for Standardization) si è assunta il compito di sviluppare uno standard [4] per la memorizzazione di video digitali, e dell'audio ad essi associato, su dispositivi come CD-ROM, DAT, nastri, dischi ottici, ecc. e per la trasmissione di questi video nei vari canali di telecomunicazione (reti ISDN, LAN, MAN, ecc.) ed ha così creato il Moving Pictures Experts Group (MPEG appunto, che fa parte dell'iso-iec/jtc1/sc2/wg11). L'attività dell' MPEG copre la compressione dati video, la compressione dati audio (in quanto ad una sequenza video è generalmente associato dell'audio) ed inoltre si occupa anche della sincronizzazione audio-video. - 22 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) 2.1.1 Storia MPEG (Moving Picture Experts Group, gruppo di esperti nelle immagini in movimento) è nato nel 1988 come un gruppo di lavoro all'interno dell'iso/iec con l'intento di definire uno standard di compressione [5] di segnali digitali audio-video. L'MPEG1 è formalmente nato nell' agosto del 1993 con la pubblicazione delle specifiche in 3 documenti (ISO/IEC 11172-1 11172-2 11172-3 Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s ). Fondamentalmente si era realizzato una specie di miracolo: con il bit rate del CD Audio (1,5 Mbit/s = 187,5 KByte/s) si era riusciti a codificare audio compresso di qualità CD e ad aggiungere in più del video caratterizzato da una qualità comparabile a quella della videocassetta (migliore per definizione e pulizia di colori, leggermente in difficoltà nelle scene con più movimento). Se oggi dopo 7 anni, che nel settore dell'informatica sono un' eternità, tale risultato ci può apparire quasi banale, in realtà nasconde un progetto di indiscutibile qualità, nato grazie ai migliori cervelli di matematici e ingegneri. Algoritmi che oggi sono alla base di ogni video digitale, sono nati durante quegli anni: un esempio tra tutti, la 8x8 Discrete Cosine Trasform (DCT), usata oggi nel DVD, DV, Jpeg, M-jpeg,...è stata formalizzata (IEEE Std 1180-1990) il 6 Dicembre 1990. Gli ingegneri italiani sono stati di fatto i primi a formalizzare i concetti di ridondanza spaziale e ridondanza temporale (la base della compressione mpeg 1 e 2), progettando una trasmissione in video digitale compresso per i mondiali di calcio del 1990. L' MPEG1 è in realtà uno standard implementabile con una infinità di combinazioni e quindi compromessi [5] tra qualità e bit rate: la sua nascita è legata ad una di queste implementazioni, l' ultranoto formato VCD (Video CD). Tale formato nasce, sotto la spinta della Philips, che promuove la produzione di Film Hollywoodiani in VCD e commercia il famoso player CDi, un clamoroso fiasco commerciale. Il VCD riscuote successo solamente nei paesi asiatici: ancora oggi le vendite superano abbondantemente quelle della videocassetta. I motivi dell'insuccesso sono tanti; credo che il principale risiede nella fretta della Philips a commercializzare tale formato che se implementato anche un anno dopo avrebbe potuto - 23 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) usufruire di lettori cd a doppia velocità che con 375KByte/s avrebbero garantito una migliore qualità. La bocciatura degli video amatori, amanti della alta tecnologia, che avevano come riferimento l'analogico Laser disk, ha di fatto bloccato il formato. Ovviamente non tutti i mali vengono per nuocere e, dalle ceneri del VCD è nato il DVD: siamo chiaramente su tutt'altri livelli qualitativi. L'MPEG2 nasce per migliorare la qualità dell'mpeg1, pur mantenendone il 99% delle caratteristiche. L'idea di un nuovo standard nasce nel 1990, a due anni dalla nascita del gruppo MPEG, e 3 anni prima della formalizzazione dell' MPEG1 (1993). Le specifiche sono state completate nel Novembre 1993, approvate come ISO/IEC 13818-1,2,3 e 4 l'11 e il 13 novembre 1994 : il testo finale è stato pubblicato nel 1995. Ricordo che ISO è l'abbreviazione di International Organisation for Standardisation [5] mentre IEC sta per International Electrotechnical Commission. Le 4 parti della documentazione ISO/IEC 13818 trattano rispettivamente la struttura multiplexing dell'mpeg, la parte video, quella audio e le caratteristiche del bitstream da garantire nelle delicate fasi di test. L'MPEG (Moving Picture Experts Group) è una famiglia di formati dedicati alla compressione di dati multimediali. L'obiettivo dei creatori dello standard MPEG era la realizzazione di un formato standard per la codifica dei flussi video e audio. Il gruppo ISO/IEC IS 11172 che si è occupato del formato MPEG è nato nel 1988 e da allora [6] ha prodotto diverse versioni dello standard. MPEG-1 Utilizzato nei Video CD è un formato a bassa qualità (analoga al sistema VHS) MPEG-2 Utilizzato nelle trasmissioni satellitari digitali, nei DVD e del digitale terrestre, ecc... Ha una qualità superiore ma richiede per contro una maggior quantità di risorse del MPEG-1 MPEG-3 Inizialmente sviluppato per HDTV in seguito si è scoperto che l'mpeg-2 era sufficiente per HDTV e quindi questo nuovo standard venne abbandonato MPEG-4 Estensione dell'mpeg-1 in grado di gestire flussi audio/video eterogenei, contenuti 3D, flussi video a basso bitrate e in grado di gestire i diritti digitali. Per la codifica video supporta il formato MPEG-2 oppure un nuovo codec molto efficiente chiamato H.264. - 24 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) MPEG-7 Un sistema formale per descrivere i contenuti multimediali MPEG-21 Gruppo nato per sviluppare una piattaforma comune per le future applicazioni multimediali 2.2 Sistemi di codifica video I codificatori video sono in genere classificati in base al fatto d'essere o meno predittivi, oppure per il modo in cui eseguono la compressione dei dati. Nel campo delle comunicazioni video digitali [7] il tipo attualmente più usato è il codificatore ibrido, basato sulla tecnica DPCM (Differential Pulse Code Modulation). Il DPCM è uno schema di codifica di sorgente sviluppato per codificare sorgenti con memoria ed è predittivo, in quanto il frame attuale viene predetto basandosi su quello precedente; si ha quindi un errore di predizione (differenza tra la predizione fatta ed il frame presente) e la caratteristica del DPCM è che la varianza dell'errore di predizione è più piccola della varianza della sorgente. In genere la predizione coincide con una compensazione di moto (Motion Compensation) del frame precedente: nella compensazione di moto viene utilizzato il vettore di moto (Motion Vector) per trovare lo spostamento tra un'immagine e la successiva. Il vettore di moto è una grandezza bidimensionale che ci fornisce, per ogni punto dell'immagine corrente, lo spostamento rispetto a quella di riferimento; tali vettori sono generalmente realizzati sulla base di blocchetti di pixel di dimensione fissa. Sostanzialmente, in questa tecnica si presume che l'immagine attuale possa essere trovata tramite una traslazione di una immagine precedente; le informazioni sul moto saranno parte delle informazioni necessarie alla ricostruzione dell'immagine in decodifica. In questo caso, l'errore di predizione [7] viene detto differenza nello spostamento fra frames (Displaced Frame Difference, DFD); la DFD viene anch'essa codificata, insieme ai vettori di moto. Dopo la compensazione di moto, per ridurre ancor più le dimensioni del filmato digitale, viene effettuata la Trasformata Discreta Coseno (DCT). La DCT è una trasformazione che si adatta particolarmente bene al caso delle immagini, per l'efficienza della compressione ottenibile, per la mancanza di componenti immaginarie nello spettro ottenuto e per la simmetricità dello spettro attorno all'origine. L'immagine viene divisa in blocchi di dimensione fissa (tipicamente blocchi di 8x8 pixels) e la DCT viene effettuata sulla base di - 25 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) tali blocchi. Il vantaggio dell'utilizzo della DCT consiste [7] nel fatto che, per un blocco di un'immagine tipica, l'energia è concentrata alle frequenze più basse; dopo la DCT viene effettuata una quantizzazione e, essendo l'occhio umano meno sensibile alla quantizzazione delle alte frequenze, quest'ultime possono essere quantizzate con un passo più largo, permettendoci così di realizzare una notevole compressione dei dati. In decodifica si utilizza la trasformata inversa IDCT, per passare dai valori quantizzati delle frequenze spaziali ai valori spaziali dei pixels. 2.3 Specifiche per MPEG video Dato che nella commissione ISO di MPEG sono rappresentati vari segmenti di industrie che si occupano del trattamento dell'informazione, il sistema proposto deve includere diverse applicazioni; per questo si dice che MPEG è uno standard generico. Questo significa che lo standard [7] non dipende dalle particolari applicazioni, anche se non ignora le specifiche che ognuna di queste richiede; uno standard generico possiede tutte le caratteristiche che lo rendono universale, ma ciò non significa che queste caratteristiche debbano essere utilizzate allo stesso tempo da ogni applicazione. Le seguenti applicazioni sono alcune di quelle identificate come necessarie per soddisfare le richieste delle applicazioni di MPEG. 2.3.1 Accesso Casuale Si tratta di una funzione essenziale sia per la memorizzazione su mezzi che permettono l'accesso casuale, come i CD-ROM ed i dischi magnetici, che per la memorizzazione su mezzi ad accesso sequenziale, come i nastri magnetici. L'accesso casuale richiede che i dati video compressi siano accessibili al loro interno [7] e che ogni frame video sia decodificabile in un tempo limitato; questo comporta l'esistenza di punti di accesso, cioè di segmenti di informazione decodificabili in modo autonomo (ad esempio frames video la cui decodifica non richieda le informazioni contenute nei frames precedenti o successivi). L'accesso casuale in circa 0,5 secondi dovrebbe essere possibile senza eccessiva degradazione di qualità. 2.3.2 Ricerca Veloce Avanti/Indietro - 26 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) Se il mezzo di memorizzazione lo permette, dovrebbe essere possibile la scansione dei dati compressi e, utilizzando punti di accesso appropriati, mostrare immagini selezionate, per ottenere un effetto di riavvolgimento e di avanzamento veloce. Questa caratteristica è una richiesta più restrittiva di accesso casuale, che si adatta bene a mezzi di memorizzazione come i nastri magnetici. 2.3.3 Riproduzione all'indietro Le applicazioni interattive possono richiedere che il segnale possa essere letto all'indietro. Mentre non è necessario [7] che tutte le applicazioni mantengano alta qualità o che abbiano questa funzione, si considera che la riproduzione all'indietro dovrebbe essere possibile anche senza eccessivo uso di memoria. 2.3.4 Sincronizzazione Audio/Video Il segnale video dovrebbe poter essere sincronizzato con una sorgente audio associata. Deve essere previsto un meccanismo per ripristinare il sincronismo tra i due segnali se questi provengono da sorgenti con diverse frequenze di clock. 2.3.5 Montaggio Deve essere possibile costruire unità di montaggio di breve durata, le quali sono codificate solo in riferimento a se stesse, in modo da ottenere un livello accettabile di libertà per il montaggio. 2.3.6 Robustezza La maggior parte dei mezzi [7] di memorizzazione e dei canali di trasmissione non sono esenti da errori e questo richiede una appropriata codifica di canale in tutte le applicazioni. Allo stesso modo è necessaria una codifica di sorgente abbastanza robusta, in modo da evitare errori che non potranno essere più corretti. 2.4 Funzionamento Gli algoritmi sviluppati dal gruppo MPEG [6] sono tutti algoritmi a perdita di informazione (lossy). La tecnica impiegata è la seguente: - 27 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) Il flusso video viene campionato, viene ridotto a segmenti. Questi segmenti vengono elaborati per estrarne le informazioni fondamentali Le informazioni vengono codificate con degli algoritmi di compressione non a perdita di informazione. Il gruppo di standardizzazione non rilascia delle specifiche su come debba essere realizzato il codificatore o il decodificatore MPEG. Il gruppo rilascia delle specifiche che indicano come debba essere composto il formato del file MPEG in modo che ogni costruttore possa realizzare il codificatore e il decodificatore come meglio crede pur attenendosi al formato del file definito dal consorzio MPEG. 2.5 Metodo di campionamento Il formato predecessore WAV, utilizza una codifica PCM che occupa una notevole quantità di spazio, circa 1.5 Mb/s a 48 khz. Un modo per ridurne l'occupazione è utilizzare meno bit per rappresentare i campioni ma, così facendo il suono riprodotto è di qualità scadente. Una possibile soluzione è rappresentare il segnale nel dominio delle frequenze e poi campionarlo con pochi bit, in questo modo [6]c'è una perdita di fedeltà molto minore. La trasformazione nel dominio delle frequenze viene effettuata da MPEG tramite un banco di filtri che scompone il segnale in 32 sottobande d'uguale ampiezza. In molti hanno criticato questo approccio perché non rispecchia il modello percettivo umano, infatti, gli studi effettuati dimostrano che sarebbe più corretto dividere la banda di frequenze in 26 parti di dimensioni crescenti con andamento di tipo logaritmico. Figura 2.1 - banda critica per il campionamento MPEG Due suoni con frequenza diversa ma all'interno della stessa banda sono percepiti come identici. Il punto di confine fra due bande è chiamato banda critica. Il nostro orecchio è più sensibile alle variazioni in basse frequenze, qui sono sufficienti poche decine di Hertz per farci percepire due suoni come diversi, mentre alle alte frequenze sono necessarie - 28 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) migliaia di Hertz. In difesa della decisione presa da MPEG vi è però la complessità dell'operazione di trasformazione, infatti il numero di operazioni elementari da compiere nel caso di sottobande con larghezza fissa è elevato ma accettabile (alcune migliaia di prodotti e somme), mentre nel caso di sottobande con larghezze diverse [6] la complessità aumenta notevolmente e se in fase di codifica questa può essere trascurata, così non accade in fase di decodifica, fase che deve essere eseguita in tempo reale. Va inoltre ricordato il periodo storico in cui questa scelta è stata effettuata, se oggi un carico di lavoro simile è accettabile per un normale PC così non era alla fine degli anni Ottanta, è dunque probabile che in futuro il modello a sottobande variabili venga implementato. 2.6 Modello Percettivo Elaborare il segnale nel dominio delle frequenze offre anche altri vantaggi. Il nostro orecchio non è uno strumento lineare, cioè non percepisce tutti i suoni e soprattutto non li percepisce tutti nello stesso modo. Da qui l'idea di eliminare tutte quelle componenti frequenziali che non possiamo udire. Questa è ovviamente una tecnica lossy: il suono compresso sarà diverso da quello originale [6] ma i nostri sensi non riusciranno a percepirne la differenza. Si rende quindi necessario uno studio sul modello percettivo, cioè sulla percezione umana del suono. La banda di frequenze udibili va dai 16 Hz fino a 20 khz. Affinché un suono sia percepibile deve essere sufficientemente forte, cioè deve esercitare un livello minimo di pressione sulla membrana del timpano dell'orecchio, tuttavia tale soglia non è costante ma, varia in funzione della frequenza. Figura 2.2 Grafico del suono. In Fig. 2.2 è riportato un grafico qualitativo che mostra quale deve essere la pressione minima che un suono deve avere per poter essere percepito. Nelle ascisse (in scala - 29 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) logaritmica) ci sono le frequenze, mentre nelle ordinate ci sono i livelli di pressione sonora (in db). Tutti i suoni che si trovano nella zona grigia possono essere eliminati. A questo va aggiunto che la percettività del suono non è costante nel tempo, ma varia in funzione di ciò che ascoltiamo. In pratica un tono forte copre i suoni d'intensità minore, non solo ad una determinata frequenza ma anche in quelle vicine, infatti come tutti i sensori, l'orecchio non ha tempi di reazione nulli [6] cioè impiega un certo tempo per adattarsi alle nuove condizioni e soprattutto impiega tempo a tornare in quiete dopo una sollecitazione. Affinché un suono sia percepito è dunque necessario che si mantenga per un certo tempo senza disturbi. - 30 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) 2.7 Premessa Prima di iniziare,una banale premessa: l'encoder è il software (Sw) o Hardware (Hw) che partendo da un video (normalmente in formato AVI o Quick Time nel caso degli encoder sw) lo codifica in formato mpeg: viceversa il decoder è il Sw o Hw che partendo da un file in formato mpeg lo trasforma in un filmato visualizzabile: di fatto trasforma il video compresso (mpeg) in video non compresso. L'mpeg è un formato di compressione [5] in cui è lasciata grande libertà nella scelta dei parametri di codifica: i principali riguardano il bit rate video ( in Kbit/s), il tipo di codifica ( a bit rate video costante o variabile) oltre che ovviamente la risoluzione.e' ovvio che a parità di tutti gli altri parametri a maggiore bit rate video corrisponde migliore qualità e ovviamente maggiore spazio occupato.l'mpeg è un formato di compressione a perdita di informazione: anche nel caso di compressioni di qualità il video mpeg è intrinsecamente diverso dal video non compresso; il fine dello standard è quello mascherare il più possibile gli effetti della compressione sfruttando quelli che sono i limiti percettivi dell'utente. Ricordo che 1 KByte/s= (1 Kbit/s) / 8: pertanto un bit rate video es. di 3000 kbit/s = 375 KByte/s per cui un minuto di video occuperà 60 sec * 375KByte/s = 22500 Kbyte= 21.97 MByte (22500/1024), praticamente 30 Mega. ( per passare dai Kbyte ai Mbyte occorre dividere per 1024 e non per 1000; per questo 22500 kbyte/ 1024= 21.97 MB) Solo nel caso di bit rate costante ( tipicamente nel caso di mpeg1 ) è possibile sapere il bit rate video esatto: nei casi di bit rate variabile è solo possibile fare delle stime conoscendo il bit rate video medio. Nel caso è presente pure il l'audio [5] occorre sommare al bitrate video quello audio: I tipici bit rate audio sono: 224kbit/s (mpeg layer II stereo 44100 byte/s) 384 o 448 kbit/s per audio ac3 5.1 192 o 256 kbit/s per audio ac3 Stereo surround - 31 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) 2.8 Immagini e concetti base Sia l'mpeg 1 che 2 ( in seguito vedremo le differenze) considerano un filmato video[5] come una serie di immagini (fotografie) in successione. Tali immagini sono ovviamente digitali, cioè descritte da numeri secondo delle regole semplici e ovviamente formalizzate; di tali immagini occorre definire i seguenti parametri : la dimensione in pixel (size) il rapporto larghezza altezza con cui il video dovrà essere presentato (aspect ratio) il frame rate il formato interallacciato o progressivo con cui tale immagini verranno interpretate (interlaced selezionato sta per interallacciato mentre la non selezione sta per progressivo) il campionamento dei colori (YUV format 4:4:4, 4:2:0, 4:1:1) profile e level Un tipico esempio di finestra per il controllo della codifica video è dato in Fig. 2.3. Figura 2.3 Definizioni delle caratteristiche d immagini - 32 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) 2.8.1 Dimensione in pixel: size Ciascuna immagine è digitalizzata cioè trasformata in un insieme di punti per ciascuno dei quali si definisce il colore tramite un numero. Per ogni immagine si devono definire il numero di pixel orizzontali (pixel per riga) e il numero di pixel verticali (il numero di di righe orizzontali). Si parla anche di risoluzione orizzontale e verticale. Una immagine 720*576 ad esempio è formata da 576 righe orizzontali ciascuna formata da 720 punti. Le risoluzioni orizzontali concesse dall'mpeg [5] sono quelle multiple di 16. Le risoluzioni più usate sono: 352*288 tipica dell' XVCD, mpeg1 352*576 usata ad esempio per gli per SVCD mpeg2 non standard 480*576 è lo standard SVCD mpeg2 720*576 usata praticamente da tutti i DVD commerciali. 2.8.2 Rapporto dimensioni: aspect ratio Consideriamo per esempio un mpeg avente dimensioni 352*576 con provenienza digitalizzazione di un video PAL [5] visualizzato su un tv 4:3 o sul monitor del pc: il decoder prima ricaverà le immagini decodificando i 352*576 pixel da mpeg a video non compresso (successioni di immagini) e poi a secondo dell' aspect ratio (Fig. 2.4) ridimensionerà tale video. Ovviamente la qualità con cui avviene il ridimensionamento dipende dalla qualità del SW o HW di decodifica: ci sono dei filtri che permettono ad esempio l'attenuazione delle seghettature o di discontinuità. Vediamo come un player perfettamente compatibile con lo standard dovrebbe ridimensionare tale video 352*576: - 33 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) Aspect ratio 1:1 VGA Viene mantenuto il video centrandolo nello schermo Aspect ratio 4:3 Display Aspect ratio 16:9 Display Figura 2.4 Tipi di Aspect ratio. Da quanto visto nell'esempio [5] è ovvio che la scelta dell'aspect ratio è legata dal formato del video originale: nel caso appena visto è ovvio che occorre scegliere l'aspect ratio 4:3. Da segnalare che non tutti i decoder mpeg riconoscono l'aspect ratio! Ad esempio l'opzione full screen del Windows Media player 6.4 è in grado di riconoscere tale parametro nel caso - 34 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) di video mpeg 1; al contrario sw quali Windvd2000 o PowerDVD 2.55 non lo riconoscono e pertanto il ridimensionamento del video va fatto manualmente lavorando in finestra. 2.8.3 Frame rate Indica banalmente il numero di fotogrammi al secondo [5] con cui sarà visualizzati l'mpeg: nel caso di video Pal tale valore è 25 fps (frame al secondo). 2.8.4 Interallacciato o progressivo: interlaced L' opzione è valida solo per l'mpeg 2 poichè l'mpeg1 non è in grado di gestire il video interallacciato e pertanto è come se tale opzione fosse sempre disattivata. In breve consideriamo il caso di video Pal 720*576 usato per i DVD (Fig. 2.5) (questo discorso vale per ogni video xxx*576 cioè con risoluzione 576 righe): i 25 frame 720*576 in tutti i casi saranno visualizzati sui normali televisori in maniera interallacciata, visualizzando prima le righe pari, poi le dispari a distanza di 1/50 di secondo. Figura 2.5 Visualizzazione dei frame sui normali televisori in maniera interallacciata Nessun televisore o encoder può sapere cosa quel frame 720*576 in realtà contiene : esistono due possibilità 1) il frame 720*576 contiene al suo interno video interallacciato, cioè due immagini 720*288 provenienti da istanti distanti 1/50 di secondo che sono stati inseriti nelle righe - 35 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) pari e dispari. A tutti gli effetti il video 720*576 25fps lo si può vedere come video 720*288 50 semiquadri al secondo. (è quello che poi farà il sw di encoding [5] se è inserita l'opzione interallacciato (interlaced)). Il singolo frame 720*576 contiene le tipiche discontinuità del video interallacciato in corrispondenza dei particolari che nei due istanti si sono mossi. 2) il frame 720*576 contiene al suo interno video progressivo ( è il tipico caso dei film su DVD) in cui il filmato è in realtà la successione di 25 "fotografie" al secondo provenienti da istanti distanti 1/25 di secondo: in tal caso il frame 720*576 non conterrà mai le discontinuità viste poiché deriva dalla " fotografia" di un solo istante e non dalla composizione di due immagini provenienti da istanti successivi. Consideriamo il caso 1 in cui il frame 720*576 contiene al suo interno video interallacciato (Fig 2.6). Figura 2.6 Video interallacciato Non è altro la composizione di due semiquadri. In questo esempio è evidente che nei due istanti successivi (di 1/50 di secondo) c'è un cambio di ripresa che fa si che i due semiquadri sono completamente diversi. - 36 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) Figura 2.7 Somma di due semiquadri Se considero ad esempio il frame 2 ( Fig. 2.7 )ho che nei due istanti successivi (di 1/50 di secondo) c'è un leggero movimento dei personaggi [5] che fa si che nel frame 720*576, somma di due semiquadri. Ovviamente i due semiquadri sono tra loro molto simili con piccolissime differenze inseguito entra in gioco l'mpeg che sfrutta fondamentalmente 2 caratteristiche dei filmati video: la ridondanza spaziale e la ridondanza temporale. Frequenze video, ridondanza spaziale e temporale Prima di tutto si deve chiarire il concetto di frequenza video:nel video le basse frequenze corrispondono ai colori uniformi (un cielo sereno senza nubi, il colore di una automobile) mentre le alte frequenze video corrispondono alle immagini frastagliate tipo le foglie di un albero visto da lontano, i quadrettini minuti di una giacca, o i caratteri minuti della pagina di un giornale). Nel momento in cui l'mpeg è una compressione video di tipo " No loseless" (a perdita di informazione), chi ha inventato il formato si è chiesto quale informazione se scartata o - 37 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) memorizzata con maggior approssimazione causa il minor fastidio all'occhio : la risposta è " le alte frequenze video" ( cosa assolutamente non vera per l'audio). Questa maggior attenzione del nostro occhio alle basse frequenze video che se trattate male ci portano ad accorgerci della presenza di artefatti e il fatto che la natura è fondamentalmente continua (i colori uniformi sono molto più frequenti degli oggetti con tantissimi dettagli) hanno fatto sì che l'mpeg ha un migliore riguardo [5] delle basse frequenze video piuttosto che le alte. In termini corretti l'mpeg sfrutta quella che è detta la RIDONDANZA SPAZIALE dell' informazione video che matematicamente si può riassumere "se un pixel in un certo frame ha un certo colore, nei pixel vicini e nello stesso frame, con buona probabilità avrà un colore simile"; basta pensare al colore della maggior parte degli oggetti: dal cielo, al colore di una automobile... al colore del case dei nostri computer. L'altra caratteristica dei video in movimento prontamente sfruttata nell'mpeg è la RIDONDANZA TEMPORALE dell' informazione video "se un pixel in un certo frame ha un certo colore, lo stesso pixel o quelli vicini, nei fotogrammi successivi o precedenti con buona probabilità avranno un colore simile" : basta pensare ad una telecamera fissa che inquadra il volto di una persona mentre parla o alla partita di calcio [5] in cui, nel caso sempre di ripresa fissa, le parti del terreno in cui non c'è nessun giocatore rimangono praticamente identiche tra fotogrammi successivi e viceversa sempre tra fotogrammi successivi ciascun giocatore occuperà pixel vicini. Ritornando al video interallacciato, questo ha la INCREDIBILE CAPACITA' di annullare completamente i due principi fondamentali su cui è basato l'mpeg : le ridondanze spaziali e temporali. 2.8.5 Il campionamento dei colori (YUV format 4:4:4, 4:2:0, 4:1:1) Profile e Level Tali opzioni sono modificabili solo nel caso di mpeg2, ma per i nostri usi (DVD, SVCD e MiniDVD) occorre semplicemente scegliere YUV format 4:2:0 e Main Profile & Main level. Per quanto riguarda i Profile e Level (Tab. 2.1) questi limitano le tantissime possibilità di formati video in classi precise. - 38 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) Level Max frame width (pixels) Max frame height (lines) Max frame rate (Hz) Max bit rate (Mbit/s) Buffer size (bits) Buffer size (Kbyte) Low 352 288 30 4 475136 58 Main 720 576 30 15 1835008 224 High-1440 1440 1152 60 60 7340032 896 High 1920 1152 60 80 9781248 1194 Tabella 2.1 Rappresentazione dei vari livelli. Il livello High-1440 è utilizzato nello standard televisivo [5] ad alta definizione (HDTV) formato 4:3, mentre il livello High è pensato per il formato 16:9. Il campionamento dei colori (YUV format) chiarisce come sono attribuiti i colori ai singoli pixel: se nel mondo dei PC si utilizzano i fattori RGB ( rosso, verde e blu) per descrivere il colore di un pixel nel campo del video digitale ci si riferisce a: Y: luminanza ( è la luminosità del pixel) U,V : crominanza (sono due fattori che definiscono il colore) Senza entrare troppo nel dettaglio è banale passare dalla descrizione di un pixel tramite la triade RGB a quella YUV e viceversa. A seguito delle limitazioni dell'occhio basta 1 byte (= 8 bit = valore numerico compreso tra 0-255) per descrivere il singolo fattore R,G,B,Y,U,V e pertanto occorrono 3 bit = 24 bit per descrivere il colore di un pixel. Nel momento in cui invece di descriverei colori di un singolo pixel [5] si sceglie di descrivere quelli di un gruppo di pixel ci sono le tipiche descrizioni YUV 4:4:4, 4:2:2, 4:2:0, 4:1:1. Ci si riferisce a gruppi di 4 pixel. - 39 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) Osserviamo solamente l YUV 4:2:0 ( chiamato YV12 in ambito Windows Direct Draw)perché é il formato che si utilizza per l'mpeg 1 e 2. Per descrivere il colore di un gruppo di 4 pixel ( due in orizzontale e due in verticale) si utilizzano 6 byte: ciascun pixel ha il suo valore di luminosità Y mentre i 4 pixel hanno lo stesso colore U e V. U12 è in generale la media dei singoli valori U1, U2, U3, U4 del caso 4:4:4: U=(U1+U2+U3+U4)/4. Analogamente V = (V1+V2+V3+V4)/4 Facendo un pò di calcoli [5] si ha che ogni pixel è descritto in media da 1,5 byte=12 bit ( 6 byte totali/ 4 pixel, Fig. 2.8 ) con un risparmio rispetto al caso 4:4:4 del 50% (12/24=0.5= 50%) pixel 1 pixel 2 pixel 3 pixel 4 Figura 2.8 4 pixel I quattro pixel sono descritti dai 6 Byte Y1, Y2, Y3, Y4, U, V (Fig. 2.9) Y1 Y2 Y3 Y4 U V Figura 2.9 Byte Y1, Y2, Y3, Y4, U, V Una immagine 720*576 occupa 622.080 byte la metà rispetto al caso 4:4:4. Per convincervi di quanto tale risparmio non influisce sulla qualità, basta dare una occhiata ai film in DVD: il motivo è che 4 pixel su un frame di 720*576 pixel occupano una porzione piccolissima: solo ingrandendola è possibile accorgersi della carenza di informazione di colore. - 40 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) 2.9 Intra frame, Macroblocchi, DCT Vediamo in dettaglio come l'mpeg sfrutta la ridondanza spaziale e temporale presente in un video. L'mpeg suddivide i fotogrammi di un video in 2 tipi: i fotogrammi di tipo I ( gli Intra frame) che sono codificati dall'encoder e decodificati dal decoder in maniera autonoma, cioè indipendente da fotogrammi successivi o precedenti. Per tale motivo [5] i frame di tipo I non sfruttano la ridondanza temporale ma solo quella spaziale Il secondo tipo di fotogrammi sono quelli di tipo P (Predictive frame) e di tipo B (Bidirectionally-predictive frame ) che contengono informazioni relative alla differenza tra l'iesimo frame e frame successivi o precedenti: sono frame che sfruttano la ridondanza temporale del video, cioè il fatto che fotogrammi vicini hanno spesso molta informazione video comune.la maniera con cui i frame I,P,B sono disposti prende il nome di GOP sequence dove GOP sta per 'Group of Pictures'. Normalmente il GOP lo si sceglie "IBBPBBPBBPBB" 2.9.1 Frame di tipo I Consideriamo i fotogrammi di tipo I ( gli Intra frame ): per avere una analogia la loro compressione è molto simile a quella del formato jpeg, mjpeg o DV sia a livello di principio che come implementazione. In pratica si deve sfruttare la ridondanza spaziale dell'immagine [5] ("se un pixel in un certo frame ha un certo colore, nei pixel vicini e nello stesso frame, con buona probabilità avrà un colore simile"). Tale ridondanza la si elimina lasciando praticamente il più possibile inalterate le basse frequenze video ( colori più o meno uniformi) e approssimando invece le alte frequenze video (frastagliature, discontinuità). Nella pratica lo si fa in due maniere: 1) decidendo numericamente come le diverse frequenze video debbano essere trattate : trattare bene una frequenza video significa memorizzarla praticamente come nell'immagine non compressa, trattarla male significa approssimarla o addirittura trascurarla. Tale decisione la si fa tramite le matrici di quantizzazione e nel caso in esame nella Intra matrix. - 41 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) 2) scegliendo che percentuale di compressione applicare all'intero I frame: ciò ovviamente dipende dal bit rate video [5] che si è scelto e dalla percentuale di tale bit rate che l'encoder assegna agli I frame. Ovviamente l'encoder decide questa percentuale in base al numero di I frame presenti nel video, numero che dipende dal GOP: nel caso del tipico GOP "IBBPBBPBBPBB" ovviamente assegnerà meno bit rate agli I frame rispetto ad un GOP IBPBI in cui gli I frame sono molto più frequenti. Nella pratica l'utente decide la GOP sequenze e il bit rate video ( es. il tipico valore medio di 5000Kbit/s per un buon 720*576) e l'encoder assegna una percentuale di tale bit rate all' I frame e lo comprime. Ovviamente maggiore e' il bit rate video, minore sarà la compressione e migliore sarà la qualità del video a parità di tutti gli altri parametri. E' fondamentale che gli I frame dopo la compressione abbiano la migliore qualità possibile poiché tutti i P frame altro non fanno che cercare delle differenze dell'ennesimo frame con il frame I (i frame B lo fanno direttamente con gli I o indirettamente con i P): un errore sulla compressione dell'i frame determina una reazione a catena di errori nei frame successivi, fino all'i frame seguente. Per questo motivo i frame I sono quelli meno compressi (ad esempio un frame 4:2:0 720*576 che non compresso occupa 607.5 Kbyte nel caso di una buona compressione mpeg2 occupa in media dai 70 ai 100 KByte con una compressione tipica di che va da 1:6 1:9 che è la tipica compressione Jpeg o mjpeg usata rispettivamente con le immagini ferme o video). Sempre a causa dell'importanza della codifica degli I frame tmpeg come tutti i migliori encoder mpeg [5], ha la possibilità di svincolare la scelta degli I frame dall'ordine imposto dai GOP, ma liberamente tmpeg inserisce un I frame nei punti più indicati, che sono i cambi scena. Il motivo è ovvio: in un cambio di scena è inutile cercare legami con le immagini passate, ma si fissa un I frame e i fotogrammi successivi potranno calcolarsi con migliori esiti le differenze con tale frame. Tmpeg offre addirittura la possibilità di inserire manualmente gli I frame (oltre che i B e P): per i più curiosi lo si fa in Configuration/Gop structure/force frame types/configure. Click sinistro sul fotogramma per settare gli I frame e destro per settare gli altri. Cliccando - 42 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) su auto-set la scelta degli I frame verrà fatta automaticamente. Per la codifica occorre impostare in Video/Rate control Mode Manual VBR (MVBR): ottimo per studiare a fondo come funzionano gli mpeg. Per capire come l'encoder procede nella compressione degli I frame occorre riferirsi alla DCT (Discrete Cosine Trasform) che è l'algoritmo matematico che permette la trasformazione di un blocco di 8*8 pixel dell'immagine ad un insieme di 8*8 numeri (coefficienti DCT) che descrivono il contenuto di frequenza ( alte e basse) di tale blocco.se i pixel sono ciò che appare ai nostri occhi, il contenuto in frequenza descrive come variano tali pixel all'interno del blocco. La DCT (Discrete Cosine Trasform) è utilizzata dall'encoder [5] mentre il Decoder utilizzerà la IDCT che è la trasformata DCT inversa che fa esattamente il contrario ( passa dal contenuto di frequenza al bitmap 8*8). L'MPEG per comprimere i singoli fotogrammi suddivide l'immagine in blocchi di 16*16 pixel che a causa del formato colore 4:2:0 corrispondono a 6 blocchetti 8*8 pixel, 4 blocchi di luminanza e 2 di crominanza contenenti valori numerici (0-255) relativi alla luminanza Y o crominanza UV (Fig. 2.10). dove ogni blocchetto Y1 è un insieme di 8*8 pixel Figura 2.10 Suddivisione dell immagine in blocchi con formato 4:2:0. Ciascun insieme di 16*16 pixel prende il nome di macroblocco.un frame 720*576 contiene pertanto 1620 macroblocchi di 16*16 pixel disposti come una matrice 45*36 (Fig. 2.11). - 43 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) Macr 1 Macr 2... Macr45 Macr46.......................................... Ma1620 Figura 2.11 Frame 720*576 contenente 1620 macroblocchi (denotato Macr in figura). Ciascuno dei 1620 macroblocchi del singolo I frame è in realtà fatto da 6 blocchi 8*8 pixel ciascuno caratterizzato dai valori di colore e luminosità dei rispettivi pixel: pertanto l'encoder considera i 9720 (1620*6) blocchi per ciascuno dei quali cerca di eliminare la ridondanza spaziale [5] cercando il più possibile di approssimare le informazioni di alta frequenza a cui la nostra vista è meno sensibile. Qui entrano in ballo le Matrici di quantizzazione. Per ciascuno dei 9720 blocchi l'encoder esegue la DCT che trasforma gli 8*8 pixel nel loro contenuto nel campo delle frequenze. In pratica si crea una nuova matrice di 8*8 valori detti COEFFICIENTI DCT in cui in alto a sinistra ci sono le basse frequenze e in basso a destra le alte frequenze ( che dovranno essere il più possibile scartate). 2.9.1.1 Matrici di quantizzazione A questo punto per risparmiare bit preziosi devo "trattare bene" le basse frequenze video e male le alte! Trattare bene una frequenza video [5] significa memorizzarla esattamente come nell'immagine non compressa, trattarla male significa approssimarla o addirittura trascurarla. Tale decisione la si fa realizzando una quantizzazione tramite le matrici di quantizzazione. Un variabile non quantizzata è quella che può assumere tutti i suoi possibili valori : nel caso della singola frequenza video ciascuna frequenza può assumere i valori 0,1,2,4,5,6,...255. - 44 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) Una variabile quantizzata è quella che può assumere solo alcuni possibili valori: es. solo i multipli di dieci 0,10,20,30,...250. Maggiore è la quantizzazione che applico, minore è il numero dei valori che quella variabile può assumere. Per decidere quanto quantizzare ciascuno dei 64 coefficienti DCT si ricorre alla matrice di quantizzazione (Fig.2.12). Figura 2.12 Matrice di quantizzazione. I numeri che si trovano indicano la entità di quantizzazione del relativo coefficiente: maggiore è tale numero, maggiore sarà la quantizzazione di quel coefficiente DCT e con maggiore approssimazione sarà memorizzato tale coefficiente. Non a caso [5] i valori di quantizzazione in alto a sinistra sono piccoli (sono le basse frequenze, che corrispondono ai colori uniformi che dovranno essere memorizzati con accuratezza cioè quantizzati il meno possibile) e al contrario i valori di quantizzazione in basso a destra sono grossi (sono le alte frequenze, ossia le frastagliature che potranno essere memorizzate con minore accuratezza cioè quantizzati maggiormente). - 45 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) Frequenze (coefficienti DCT)h 94 62 33 7 0 0 0 0 72 21 15 0 0 0 0 0 19 4 2 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 4 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -- > diviso- -> g = Risultato della quantizzazione:h frequenze quantizzate 12 4 2 0 0 0 0 0 5 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 g g G Figura 2.13 Operazione di divisione per ottenere frequenze quantizzate I due casi estremi sono : angolo in alto a sinistra (il valor medio) in cui ho 8: significa che tale coefficiente potrà assumere solo i valori multipli di 8 (ho in tutto 32 valori possibili: 0,8,12,24,32,40,..240,248). angolo in basso a destra (componente alla massima frequenza) in cui ho 83: significa che tale coefficiente potrà assumere solo i valori multipli di 83 (ho in tutto 4 possibili valori possibili: 0,83,166,249) : qualsiasi altra sfumatura sarà approssimata al numero più vicino tra i 4 possibili valori; QUALSIASI VALORE ASSUNTO MINORE DI 42 (83/2) sarà approssimato con l o 0, cioè tale frequenza se non supera tale soglia è considerata come se non presente. Quindi l'encoder [5] altro non fa che dividere ciascun valore della matrice dei coefficienti DCT per i corrispondenti della matrice di quantizzazione e memorizzare la parte intera del quoziente ( al limite arrotondata al valore più prossimo) (Fig. 2.13). La nuova matrice delle frequenze quantizzate grazie alla enorme presenza di zeri e al particolare ordine dei sui valori, viene memorizzata nel flusso mpeg con pochissimi bit : si sfruttano tecniche matematiche loseless, senza perdita di informazione che sfruttano "l'entropia della sorgente" ovvero il grado di disordine dei coefficienti. I coefficienti - 46 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) quantizzati vengono riordinati secondo un percorso a zig-zag,in modo da sistemare le componenti ad alta frequenza dopo quelle a frequenza più bassa. Ovviamente il decoder (player mpeg) farà la operazione diversa: ricava la matrice delle frequenze quantizzate, la moltiplica per la intra block matrix e tramite la IDCT [5] ricava il blocchetto di 8*8 pixel: per quanto detto prima sia l'encoder che il decoder per un singolo I frame 720*576 devono fare le operazioni viste ben 9720 volte (1620macroblocchi * 6 ); per i B e P frame la cosa si complica di molto!.tale processo di quantizzazione produce, come ovvio, un deterioramento della qualità dell'immagine che il player visualizzerà. 2.9.1.2 Ridondanza temporale e compensazione del moto Tutti i discorsi fatti fino ad ora, sono relativi alla compressione dei singoli fotogrammi, indipendentemente dal fatto che sono parte di un filmato e che pertanto ci sono delle chiare similitudini tra frame successivi. Voglio osservare come quanto visto per gli I frame è perfettamente analogo alle note compressioni jpeg ( per le immagini), Mjpeg per i video in movimento e DV: le differenze tra questi formati sono veramente minime: tutti utilizzano la DCT e le matrici di quantizzazione: ciò che cambia è la "grammatica", come sono impacchettati i dati e altri piccoli particolari : ad esempio il jpeg per le immagini prevede maggiori tipi di spazio colore primo tra tutti il formato RGB usato normalmente per le immagini su PC. La più importante differenza tra la Mjpeg e il DV è che quest'ultimo può scegliere il livello globale di quantizzazione per ogni macroblocco, mentre nell' Mjpeg il codec lo sceglie una volta per tutte all'interno del singolo frame e vale per ogni blocco del frame. L'effetto è una minore ottimizzazione del Mjpeg rispetto al DV in tutte quelle immagini che sono composte in parte da una zone con sfondi uniformi ( maggiormente comprimibili) e in parte da zone ricche di particolari ( alte frequenze ): in tal caso [5] se l'encoder sceglie un livello globale di quantizzazione molto elevato (alta compressione), soddisferà le zone uniformi, creerà un bit rate basso ma causerà artefatti nelle zone con più dettagli: al contrario se sceglie un basso livello di quantizzazione (scarsa compressione ) si otterrà una buona qualità nelle zone a maggior dettaglio, ma una scarsa ottimizzazione per le zone uniformi in cui si sarebbe potuto tranquillamente comprimere di più. Con il DV e l'mpeg è - 47 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) possibile scegliere in livello diverso di quantizzazione ( e quindi di compressione) per ogni blocchetto di pixel 16*16. L'mpeg ( ad eccezione della versione a soli I frame), sfrutta anche la ridondanza temporale del video: "se un pixel in un certo frame ha un certo colore, lo stesso pixel o quelli vicini, nei fotogrammi successivi o precedenti con buona probabilità avranno un colore simile". Lo fa alternando agli I frame (che sono codificati dall'encoder e decodificati dal decoder in maniera autonoma, poiché indipendenti da fotogrammi successivi o precedenti) dei frame di tipo P e B che contengono informazioni relative alla differenza tra l'i-mo frame e frame successivi o precedenti. Per questo motivo [5] un P o B frame non potrà mai essere decodificato autonomamente ma occorrerà avere in memoria uno o più frame precedenti o successivi: per il montaggio video pertanto si preferisce utilizzare formati diversi quali il DV, Mjpeg o l'mpeg I frame grazie ad una loro più semplice implementazione.. Vediamo di capire come sono implementati i fotogrammi di tipo P (Predictive frame) e di tipo B (Bidirectionally-predictive frame ). Vediamo come funzionano i P frame. Consideriamo ad esempio il caso di un mpeg avente GOP di tipo IPIPIPIP Il primo frame è considerato un I frame, il secondo P frame e così per gli altri fotogrammi (Fig. 2.14). frame 1 frame 2 frame 3 frame 4 frame 5 I P I P I Analizziamo come l'encoder comprime i primi due frame: per i successivi il metodo è identico. Considero ad esempio i seguenti 2 fotogrammi: Figura 2.14 Confronto tra frame e frame Il frame 1 è un I frame ed è compresso come visto nei seguenti passi: Il frame è diviso in macroblocchi 16*16 pixel ( 1620 nel caso di frame 720*576). - 48 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) Ciascun macroblocco produce 6 blocchi 8*8 pixel ( 4 di luminanza e 2 di crominanza)(1620*6=9720 nel caso di frame 720*576). Per ciascun blocco 8*8 viene fatta la DCT: fino a questo momento nessuna informazione è persa e non si è ancora guadagnato un solo bit. Finalmente si comprime guadagnando bit preziosi grazie alla quantizzazione (che deteriora la qualità ) e al risparmio "matematico" dovuto all'entropia, il tutto per ciascuno dei 9720 blocchi. Il frame 2 è un P frame: per tali frame [5] e per i frame B si utilizza la compensazione del moto detta anche predizione inter frame ( in inglese Motion-compensated inter-frame prediction ). Consideriamo il P frame. Il principio è semplice: l'encoder per ciascuno dei macroblocchi di 16*16 pixel del P frame va a cercare nel frame I precedente (o se non lo trova nel frame P precedente) un blocchetto di 16*16 pixel il più possibile simile al macroblocco che si sta cercando di codificare. Una volta trovato si calcola la differenza tra se stesso e il blocchetto individuato nel frame I precedente e viene memorizzata tale differenza sempre come matrice di 16*16 pixel. Con tale nuovo blocco si procede esattamente come per un macroblocco visto per gli I frame (creazione dei 6 blocchi 8*8, DCT, quantizzazione e codifica matematica ). Tale processo molto dispendioso in termine di calcoli, produce se ben implementato un grande vantaggio: la matrice 16*16 pixel ricavata dalla differenza del macroblocco da codificare con un blocco preso dal frame precedente ha il vantaggio di avere spesso un contenuto di alte frequenze molto basso e pertanto per quanto visto può essere compresso pesantemente ( con una elevata quantizzazione) senza grosse perdite qualitative. Riprendiamo l'esempio (Fig. 2.14): Consideriamo come comprimere il frame 2, avendo in memoria il frame 1 senza il quale non è possibile fare nessun tipo di codifica intra frame. Ricordo come già visto [5] che i macroblocchi di ciascun frame sono fissi e sono quelli aventi coordinate multiple di 16; nel frame 720*576 (come in Fig. 2.11) - 49 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) Ciascun macroblocco contiene 16*16 pixel. Figura 2.15 Frame 1 tipo I, Frame 2 tipo P Consideriamo il primo Macroblocco di 16*16 pixel del frame 2 (in alto a sinistra Fig. 2.15). L'encoder cerca nel frame I precedente (frame1) il blocchetto di 16*16 pixel che sia il più simile possibile al macroblocco attuale che si vuole comprimere. Nel caso dell'esempio la cosa è semplice, poiché è esattamente quello che ha le stesse coordinate. Poi l'encoder calcola la differenza tra i due blocchi [5] che essendo uguali produce una matrice 16*16 fatta da tutti zeri (visivamente è un blocco 16*16 pixel tutto nero). Di tale matrice differenza viene calcolata la DCT che essendo a valori tutti più o meno uguali (basse frequenze) produce coefficienti tutti concentrati in alto a sinistra che possono pertanto essere compressi molto bene risparmiando preziosi bit. Nel caso del macroblocco del frame 2 il blocco più simile è presente nel frame 1 leggermente più in alto e a sinistra (come indica la freccia) La differenza tra i due produce un nuovo blocchetto che come si vede è nero (=0) dove i due blocchi sono uguali e sempre più chiaro dove ci sono differenze. L'encoder deve fare di tale blocco la DCT e poi comprimere quantizzando i coefficienti. Sia il blocco dopo la compressione - 50 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) (molto approssimato rispetto a quello non compresso e pertanto caratterizzato da colori sfumati). E' possibile comprimere maggiormente tale differenza [5] senza eccessivi peggioramenti del risultato finale poiché gli errori prodotti dalla quantizzazione sono sempre relativi alle differenze tra i blocchi e non ai blocchi presi singolarmente. Inoltre spesso le alte frequenze del blocco delle differenze contengono molto rumore video che può essere tranquillamente scartato. Il player (decoder) deve procedere esattamente all'inverso: parte dal blocco che è presente nel frame1 lo somma al blocco delle differenze e ricava un blocco che sarà sicuramente molto simile all'originale non compresso. Nel nostro esempio tutti gli errori relativi al blocco delle differenze creeranno solo una leggera sfumatura in corrispondenza dei contorni del disco azzurro e del righino bianco. Vediamo brevemente la terminologia usata nell'mpeg: La ricerca dei blocchetti 16*16 più simili al macroblocco corrente ( quello da codificare) la si definisce normalmente [5] stima del movimento o compensazione del moto o predizione inter frame ( in inglese Motion-compensated inter-frame prediction ) o predizione dei macroblocchi (macroblock prediction). La posizione del blocco da cui calcolare la differenza viene descritta dal vettore di movimento: il vettore es.(x,y)=(-3,5) comunica che il blocco del passato da cui calcolare la differenza si trova 3 pixel a sinistra (-3) e 5 pixel in basso (+5). 2.9.1.3 Motion search accuracy In tmpeg il parametro che quantifica la qualità della compensazione del moto, e quindi il tempo impiegato per tale preziosa operazione è "motion search accuracy". In tmpeg b12a ci sono 5 possibilità : ecco un esempio delle velocità di compressione con PII 400 per mpeg1 XVCD 352*288 (ovviamente i tempi a parità di parametri dipendono linearmente - 51 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) dalla potenza della CPU e sono anche condizionati dal tipo di video: la Tab. 2.2 da solo una idea dei tempi ottenibili ) Motion search accuracy Fotogrammi al secondo Tempi rispetto alla normale qualità Highest qualità (la codifica più lenta) 1.3 +343% (X 4.43) High qualità 3.4 +70% (X 1.70) Normal qualità 5.8 0% Lo west qualità 7.6-23% (X 0.77) Low qiality (la codifica più veloce) 8-28% (X 0.72) Tabella 2.2 Motion search accuracy. In pratica un video che per essere compresso richiede 1 ora in normal quality richiede 4.43 ore in hightest quality e 0.72 ore=43 minuti in low quality. Ovviamente il miglioramento della qualità è evidente in maniera chiara solo nelle scene dinamiche in cui a causa dell'elevato movimento la compensazione del moto diventa fondamentale: nelle scene più statiche la differenza è spesso inavvertibile. Una cattiva stima del moto al contrario produce degli artefatti che appaiono come blocchetti 8*8 e 16*16 pixel presenti nei punti con maggiore movimento. Chiaramente [5] se si imposta un bit rate troppo basso o se il video è molto rumoroso (il tipico segnale tv proveniente da una cattiva ricezione) gli algoritmi di compensazione per quanto ottimizzati non possono fare miracoli. Ritorniamo alla Fig 2.15 Per quanto detto, si potrebbe erroneamente pensare che per ciascuno dei macroblocchi del frame 2 di tipo P occorre trovare nel frame 1 il blocchetto più simile e associare il vettore di movimento e il blocco delle differenze: in realtà ciascuno dei macroblocchi di un P frame può essere compresso ( e quindi memorizzato) secondo uno di queste possibili alternative: - 52 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) o Intra coded Block : il macroblocco è compresso esattamente come un macroblocco di un I frame, ovvero senza l'utilizzo dei vettori di movimento e del blocco delle differenze. Tali blocchi [5]sono molto comodi quando il sw si accorge che il blocco in esame ha un contenuto frequenziale ( coefficienti DCT) molto più facile da comprimere rispetto ad un blocco differenza. o Forward Predicted Block (FP) E' il caso che abbiamo esaminato: ricerca del macroblocco più simile che è memorizzato tramite il vettore di movimento, calcolo e compressione del blocco delle differenze (Prediction Error block). o Not coded Block. E' il caso in cui il blocco delle differenze è nullo e pertanto il blocco è descritto unicamente dal vettore di movimento: il decoder copia semplicemente il blocco 16*16 del frame I precedente indicato dal vettore di movimento, nella posizione occupata dal macroblocco così codificato. o Skipped Block. E' il caso in cui si comunica al decoder di lasciare il blocco esattamente come era nel fotogramma precedente. Serve tutte le volte in cui tra i due frame successivi (I e P) ci sono blocchi che rimangono invariati. Nel caso dell'mpeg2 ci sono altre possibilità nel momento in cui è possibile gestire il video nella modalità interallacciata: esattamente come per gli I frame è possibile fare le predizioni e la compensazione del moto riferendosi al frame visto come composto da due semiquadri; in tal caso per ciascun macroblocco occorre fare la predizione del moto per 2 blocchi di dimensioni 16*8 a ciascuno dei quali [5] si associa un vettore di movimento: a secondo che si punta al semiquadro delle righe pari o a quello delle righe dispari si parla di Forward top field Block o Forward Bottom field Block. Un accenno al parametro "half pel - motion" che viene spesso inserito negli encoder. Per capirne il significato ritorniamo all'esempio di prima con il macroblocco che contiene il disco blu. La compensazione del moto è stata fatta identificando il blocchetto 16*16 del frame 1 come il più simile, e tale blocco è identificato dal vettore di movimento (x,y)=(-21,-5) : l'encoder calcola la differenza e ottiene il Prediction Error block (Fig. 2.16). - 53 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) - = Forward Predicted Block (FP) - Motion Compensated Prediction block = Prediction Error block Figura 2.16 Calcolo dell encoder per ottenere il Prediction Error block. Osservo come il Prediction Error block (che ricordo è prodotto facendo bit a bit la differenza dei due blocchi 16*16) contiene un cerchio verde che deriva dal fatto [5] che il cerchio non è centrato nella stessa maniera nei due blocchi da cui si è calcolata la differenza. Ritornando alla stima del moto, infatti il bordino verde del blocco differenza deriva dal fatto che il cerchio blu non è mai perfettamente centrato all'interno dei pixel e "lascia" in corrispondenza dei pixel che rappresentano i bordi una quantità di blu che dipende dalla sua esatta posizione. Pertanto il cerchio blu sarà centrato diversamente nei 2 blocchi 16*16 da cui calcolo la differenza e il risultato del Prediction Error block. Per la compensazione del moto l'mpeg prevede la compensazione half pel (half pel block prediction : pel è l'abbreviazione di pixel ): in pratica dopo aver trovato il potenziale blocco da cui calcolare la differenza (il MCP, Motion Compensated Prediction block) l'encoder prova a vedere se si ottiene una migliore differenza sottraendo non tale MCP ma un blocco 8*8 di pixel ottenuto matematicamente facendo la media (interpolazione lineare) tra l'mcp e un blocco a lui adiacente ma spostato di un pixel. Il problema della compensazione half pel è che nel caso di sfondi fissi [5] un rumore video quale ad esempio la grana della pellicola può indurre in errore l'encoder: l'effetto è un tremolio delle parti delle immagini che in realtà dovrebbero essere fisse. In tmpeg encoder è possibile eliminare tale rischio selezionando l'apposita opzione presente in configure /quantizer matrices. L'encoder nei casi in cui le scene sono statiche (vettori di movimento che tendono a 0) disabilita la compensazione half pel. - 54 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) L'opzione " Use floating point DCT " utilizza i numeri a virgola mobile al posto degli interi per il calcolo della DCT [5], con un aggravio dei tempi di calcolo nel momento in cui lasciando deselezionata tale opzione, grazie ad ottimizzazioni del codice ( linguaggio macchina, istruzioni MMX, SSE,...) per tale operazione viene sfruttata al 100% la reale velocità di calcolo delle CPU. I vantaggi dell'uso della floating point DCT sono solo teorici e inseriti, di fatto, solo a scopo di test. Per adesso abbiamo analizzato solo le strutture ( GOP sequence ) del tipo MPEG I frame (IIII...) e il caso semplice IPIPIP in cui si alternano I frame e P frame. In realtà è possibile scegliere altre combinazioni in tmpeg tramite configure/gop structure. Consideriamo il caso in cui non ci sono B frame e cioè GOP B frame count = 0; sia inoltre GOP I frame count = 1. Il GOP P frame count descrive quanti P frame ci sono tra due I successivi (Tab. 2.3) GOP P frame count GOP Seccessione di frame 1 IP IPIPIPIP... 2 IPP IPPIPPIPPIPP... 3 IPPP IPPPIPPPIPPPIPPI... Tabella 2.3 GOP P frame count. Il principio di funzionamento [5] è che i Forward Predicted Block (FP) presenti nei P frame si riferiranno per il calcolo delle differenze ai blocchi simili (Motion Compensated Prediction) presenti nel frame I o P precedente più vicino. - 55 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) Banalmente [5] nel caso di IPIPI...(Tab 2.4) frame 1 frame 2 frame 3 frame 4.. I P I P.. Tabella 2.4 Succesione di frame IPIPIPI. i macroblocchi del frame 1 sono tutti codificati come Intra frame, i macroblocchi del frame 2 cercheranno i blocchi simili nel frame 1 (I), i macroblocchi del frame 3 sono tutti codificati come Intra frame, i macroblocchi del frame 4 cercheranno i blocchi simili nel frame 3 (I),... Nel caso di IPPIPPI...(Tab 2.5) frame 1 frame 2 frame 3 frame 4 frame 5 frame 6 I P P I P P Tabella 2.5 Successione di frame IPPIPPI i macroblocchi del frame 1 sono tutti codificati come Intra frame, i macroblocchi del frame 2 cercheranno i blocchi simili nel frame 1 (I) i macroblocchi del frame 3 cercheranno i blocchi simili nel frame 2 (P) i macroblocchi del frame 4 sono tutti codificati come Intra frame i macroblocchi del frame 5 cercheranno i blocchi simili nel frame 4 (I) i macroblocchi del frame 6 cercheranno i blocchi simili nel frame 5 (P)... - 56 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) 2.9.2 B frame I B frame nascono dall'esigenza di codificare i macroblocchi come differenza o con i blocchi presenti nel frame I o P precedente o con i blocchi presenti nel frame I o P seguente. I macroblocchi codificati come differenza dal frame (I o P) precedente [5] prendono il nome di Forward Predicted Block (FP) così di come per i P; i macroblocchi codificati come differenza dal frame (I o P) seguente prendono il nome di Backward Predicted Block (BP) La prima ragionevole considerazione da fare occorrerà fornire all'encoder e al decoder alcuni frame temporalmente successivi per permettere la compressione o la decodifica dei B frame. Consideriamo il caso utilizzato nella gran parte delle codifiche mpeg in cui si cerca la migliore compressione e qualità possibili: è la famosa successione IBBPBBPBBPBBI (Tab. 2.6) Appunto f = frame, ma = macroblocco f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 I B B P B B P B B P B B I Tabella 2.6 Successione di frame IBBPBBPBBPBBI. i ma del f 1 sono tutti codificati come Intra f, i ma del f 2 cercheranno i blocchi simili nel f 1 (I) e nel f 4 (P) i ma del f 3 cercheranno i blocchi simili nel f 1 (I) e nel f 4 (P) i ma del f 4 cercheranno i blocchi simili nel f 1 (I) i ma del f 5 cercheranno i blocchi simili nel f 4 (P) e nel f 7 (P) i ma del f 6 cercheranno i blocchi simili nel f 4 (P) e nel f 7 (P) i ma del f 7 cercheranno i blocchi simili nel f 4 (P) i ma del f 8 cercheranno i blocchi simili nel f 7 (P) e nel f 10 (P) - 57 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) i ma del f 9 cercheranno i blocchi simili nel f 7 (P) e nel f 10 (P) i ma del f 10 cercheranno i blocchi simili nel f 7 (P)... Ecco uno schema grafico (Fig 2.17): Figura 2.17 Spostamento dei frame. E' evidente come l'encoder e il decoder debbano processare i frame in un ordine diverso: ovviamente ciò viene fatto automaticamente dai sw [5] senza bisogno di alcun intervento nei parametri. L'ordine è il seguente (Tab 2.7): 1 4 2 3 7 5 6 10 8 9 13 11 12 I P B B P B B P B B I B B Tabella 2.7 Ordine dei frame Il motivo è ovvio: ad esempio l'encoder non può comprimere il frame B 2 se non conosce già il frame 4 da cui potenzialmente può calcolarsi le differenze: per questo occorre prima comprimere il frame 4 (P) e poi il 2 (B); stesso discorso per il player che non può visualizzare il frame 2 se non ha già decompresso il frame 4 (ovviamente il frame 4 verrà poi visualizzato al momento giusto cioè dopo il frame 3) Ritornando ai parametri che determinano il GOP se il GOP P frame count determina quanti P frame ci sono tra due I successivi [5] il GOP B frame count determina quanti B frame ci sono tra 2 frame P e I consecutivi(tab. 2.8). Nel caso I=1 e P=3 (il caso più frequente). - 58 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) GOP B frame count GOP Seccessione di frame 1 IBPBPBPB IBPBPBPB IBPBPBPBI... 2 IBBPBBPBBPBB IBBPBBPBBPBB IBBPBBPBBPBB... 3 IBBBPBBBPBBBPBBB IBBBPBBBPBBBPBBB IBBBPBBBPBBBPBBB... Tabella 2.8 GOP B frame count In realtà per le tipiche applicazioni di compressione che richiedono la migliore qualità possibile, e contemporaneamente elevata compressione ( DVD, XVCD, SVCD...) si utilizza la GOP rappresentata in figura :I=1 P=3 B=2 IBBPBBPBBPBB. Normalmente la compressione che utilizza I, P e B frame [5] prende il nome di MPEG IPB (spesso è sottinteso); come già visto l'mpeg che utilizza solo I frame, utile per l'editing video prende il nome di MPEG I frame. Ovviamente vista la blanda compressione dell' MPEG I frame a parità di qualità occorre avere bit rate 2-3 volte maggiori rispetto l'mpeg IPB. 2.9.3 Cambi di scena e I frame In realtà per le normali compressioni non conviene preoccuparsi più di tanto del GOP poichè gli encoder quali tmpeg modificano automaticamente il GOP a secondo delle caratteristiche del video, semplicemente piazzando dove servono gli I frame: il motivo di tale intervento deriva [5] dal fatto che per come è strutturata la successione dei frame in un mpeg IPB gli errori dovuti alla compressione si sommano nel tempo: ad esempio nel caso (Tab. 2.9) f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 I B B P B B P B B P B B I Tabella 2.9 Ordine dei frame il frame 10 (P) è ricavato (in alcuni dei suoi macroblocchi) dalle differenze con il frame 7 (P) a sua volta ricavato dalle differenze con il 4 (P) a sua volta ricavati dalle differenze con il frame I il primo ad essere totalmente indipendente. - 59 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) Per quanto detto se ad esempio il frame 7 (P) per una cattiva compensazione del moto produce un video di scarsa qualità, tutti i frame successivi (8, 9, 10, 11, 12) saranno caratterizzati da artefatti poichè non troveranno grosse similitudini con il frame 7 che è praticamente sbagliato (Fig. 2.18). Figura 2.18 Successione dei vari frame d immagini. Un tipico caso in cui ciò succede [5] è quello dove ad esempio ho un cambio di scena nel frame 7 (ad esempio dall'inquadratura di una persona allo sfondo della foresta: in tal caso il frame 7(P) dovendo cercare similitudini con il frame 4 (P) non ne troverà poiché il frame 4 appartiene ad una scena che è cambiata del tutto; l'unica alternativa sensata per non creare accumulo di errori è quella di inserire al frame 7 un I frame. Perchè inserire i B frame, visto che per la compensazione del moto comportano una ricerca doppia e che creano il problema del riordino dei frame? La risposta è che in molti casi senza il riferimento a frame futuri è impossibile trovare blocchi simili per la ricerca e la codifica delle differenze; cioè è impossibile fare la compensazione del moto e occorre ricorrere alla codifica inter frame per il macroblocco, codifica che occupa bit preziosi e fa inevitabilmente salire il bit rate del flusso video(a meno di accontentarsi di una bassa qualità). 2.10 Metodi di gestione del Bit-rate Esistono fondamentalmente due metodi di codifica: la CBR (costant bit rate, codifica a bit rate costante) e la VBR (variable bit rate, codifica a bit rate variabile). La codifica CBR l'unica realmente riconosciuta da tutti i player nel caso dell'mpeg 1, ma scarsamente utilizzata nell'mpeg 2, è il metodo meno ottimizzato: si fissa un bit rate video ( bit al secondo) e si comprime tutto il video [5] utilizzando tale flusso costante. La scarsa ottimizzazione deriva dal fatto che fissato un bit rate, diciamo così, medio (per avere una idea 4000 Kbit/s per un video progressivo 720*576) nelle scene statiche tale bit rate è - 60 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) eccessivo (in certi casi bastano anche 2500-3000 Kbit/s), mentre nelle scene particolarmente dinamiche in cui per avere una buona qualità occorrono spesso anche più di 6000-7000 Kbit/s) si ottengono immagini piene di artefatti ( blocchetti, colori sporchi,...). L'alternativa sarebbe quella di mantenere fisso un bit rate ad esempio di 8000 Kbit/s garantendo sempre ottima qualità: lo svantaggio è la elevata occupazione di spazio spesso molto prezioso. Il discorso è ben diverso se si utilizza il metodo VBR: in tal caso l'encoder utilizza un maggior bit rate nelle scene più dinamiche [5] e al contrario minore bit rate nelle scene statiche, ottimizzando lo spazio occupato: il criterio con cui viene scelto il modo di assegnare il bit rate dipende dall'encoder. Per permettere una analisi oculata dei risultati ecco una tabella riassuntiva che chiarisce al variare della risoluzione video quali bit rate medi (ad esempio su filmati di una certa durata che contengono un mix di scene di azione e scene più statiche) e quali valori di picco (tipicamente nelle scene dinamiche), è ragionevole attendersi nel caso di codifica mpeg 2 a bit rate variabile. Questi valori sono assolutamente indicativi (Tab. 2.10) - 61 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) Mpeg alta qualità Risoluzione Bit rate di picco (KBit/s) Bit rate medio (Kbit/s) 720*576 8000 5000-6000 480*576 5500 3500-4500 352*576 4500 3000-3300 352*288 3000 2000-2200 Mpeg buona qualità Risoluzione Bit rate di picco (KBit/s) Bit rate medio (Kbit/s) 720*576 6500 4000-5000 480*576 4500 2800-3600 352*576 3600 2400-2600 352*288 2400 1600-1750 Mpeg qualità sufficiente Risoluzione Bit rate di picco (KBit/s) Bit rate medio (Kbit/s) 720*576 5200 3200-4000 480*576 3600 2300-2900 352*576 2900 1900-2100 352*288 2000 1400-1500 Tabella 2.10 Valori di Bit rate 2.10.1 Costant Quality CQ Esistono diversi metodi per la compressione a bit rate [5], introdurrò solamente il metodo CQ (Costant Quality) dato che rispetto agli altri ( bit rate costante, bit rate video auto variabile a qualità costante CQ_VBR, codifica a due passaggi con bit rate variabile VBR, bit rate variabili manualmente MVBR) è il migliore di tutti, sia come risparmio occupato dal file sia come qualità! Ma come funziona il metodo Costant Quality CQ? - 62 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) L'encoder procede cosi: a secondo del parametro Quality fissato dall'utente, viene fatta una maggiore o minore compressione; per valori di Quality elevati viene prodotto video di alta qualità (alti bitrate) e bassa compressione (Q bassi) mentre per valori di Quality bassi, bassa qualità (alti bitrate) e elevata compressione (Q elevati). Mentre tmpeg comprime analizza il bit rate prodotto: appena questo supera il valore bitrate Max impostato dall'utente, tmpeg aumenta la compressione (aumenta la quantizzazione Q) sino a garantire che il bit rate non superi il valore max impostato. Vediamo un esempio: utilizziamo il video test 720*576, la bit rate = 8000 Kbit/s e si comprime il video con qualità crescente [5]; Quality 20 (qualità relativamente bassa ), 50, 60. Nella Fig. 2.19 i parametri in rosso si riferiscono ai parametri impostati, gli altri sono quelli misurati Figura 2.19 Video compresso con qualità 20, 50, 60 Nel caso di qualità peggiore (Quality = 20 ) si vede come tmpeg fissa la quantizzazione a Q = 9 e poiché il bitrate tende a mantenersi ben al di sotto degli 8000 massimi riesce a mantenere Q a 9 tranne nel tratto 13-14 secondi in cui abbassa Q ad 8 ( la differenza con - 63 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) Q=9 è di fatto inesistente): pertanto in questo primo esempio avendo impostato una qualità scadente e contemporaneamente non avendo posto grossi limiti al bit rate [5], tmpeg ha potuto mantenere tale qualità senza peggiorarla ancora. Incrementando la qualità (Quality = 50 ), tmpeg associa a tale qualità il valore Q = 3, valore che riesce a mantenere fino all'istante secondi = 12; poi è costretto ad aumentare la compressione (Q varia tra 5 e 7) nelle scene più dinamiche per non superare gli 8000 kbit/s di bitrate. La Quality = 50 garantisce un video eccellente come confermato dal bit rate che tranne nelle scene super statiche è sempre al di sopra dei 5000 kbit/s. Nell' ultimo caso (Quality = 60) tmpeg cerca di mantenere Q = 2 cosa che riesce a fare solo in rari punti: il bit rate come confermato dal bit rate medio (6736) è quasi sempre al di sopra dei 6000 sfiorando il max ( 8000) più di una volta. A prova di quanto sia elevata la qualità prodotta dal parametro Quality per valori attorno a 50-60 si è provato a comprimere lo stesso file con quality 60 ( che è ben al di sotto di 100, massimo consentito ) sia con video 720*576, come già visto, sia con video 352*288. I rispettivi diagrammi sono qui sotto (Fig 2.20). Come si deduce dal diagramma di destra del caso 352*288, il fattore Q è mantenuto costante a 2 grazie al fatto che non sono così mai superati gli 8000 Kbit/s massimi consentiti, ma il bit rate nelle scene dinamiche si assesta tra i 3000-5000 kbit/s valore obbiettivamente troppo alto: con 352*288 bastano e avanzano bit rate di 2000-2500 Kbit/s. Nel caso 720*576 è evidente,come già detto, che è impossibile mantenere Q=2; considerando come nei tratti in cui Q=2 il diagramma di sinistra ha bit rate 3 volte superiori rispetto a quelli di destra [5], è ragionevolmente ipotizzabile che per mantenere sempre Q=2 anche nel caso di 720*576 occorrerebbero picchi di circa 16000 Kbit: per questo motivo l'encoder è spesso costretto ad aumentare la compressione. Detto in altri termini pur mettendo Quality= 60 il bit rate max di 8000 nel caso 720*576 costringe tmpeg ad abbassare quasi sempre la qualità comprimendo nella stessa maniera di una selezione di qualità inferiore (tipo quality = 50-40). Si spiega così il motivo per cui nei 3 diagrammi visti sopra, nei punti con scene dinamica (oltre i 13 secondi) i bit rate tra il caso Quality 50 e 60 sono praticamente identici! ; tmpeg - 64 -

Capitolo 2 MPEG 1-2 (tmpeg encoder) non potendo mantenere il bit rate teoricamente richiesto da impostazioni di qualità così alte, è costretto a diminuire la qualità aumentando in entrambi i casi la compressione che si avvicina quasi sempre al max impostato. Figura 2. 20 Video compresso con qualità 60 con frame 720*576 e frame 352*288. 2.10.2 Conclusioni riguardo il metodo CQ ( costant quality). E' il metodo da utilizzare in tutti quei casi in cui è fondamentale risparmiare il più possibile sulla dimensione dei file, e pertanto cercare di guadagnare il più possibile spazio nelle scene statiche [5] dove si può ragionevolmente abbassare il bit rate: è il caso dei DVD con problemi di spazio. - 65 -