I fondamentali del Video

Per cercare di capire come il video viene registrato e visualizzato, dobbiamo andare indietro nel tempo e dare un'occhiata ad una tecnologia ormai antiquata: la televisione con il tubo a raggi catodici. Senza pretesa di dare un corso di fisica, diremo che un tubo a raggi catodici è un grande pezzo di vetro senza aria all'interno. Dentro vi è un catodo che emette elettroni quando lo si riscalda (è per questo che l'immagine ci mette un po' di tempo prima di apparire dopo che avete acceso la TV: il catodo deve prima di tutto venire riscaldato alla temperatura appropriata per poter emettere elettroni). Vi è anche un forte campo elettromagnetico che accelera gli elettroni verso la parte frontale del tubo e lo stesso campo viene utilizzato per posizionare il raggio elettronico (vi è un mucchio di elettroni che viene sparato verso la parte frontale del tubo). La parte frontale del tubo viene ricoperta di fosforo e quando gli elettroni la colpiscono, dall'altro lato viene emessa della luce (questo è il lato dove voi siete seduti). Qui sotto potete vedere il disegno schematico di un CRT.

All'inizio la televisione era solamente in bianco e nero e pertanto un raggio di elettroni era sufficiente. Ora, per poter visualizzare un'immagine, dovete dipingerla su tutto lo schermo e pertanto il fascio di elettroni deve scorrere su tutta l'area. La frequenza con la quale il fascio scorre, è conosciuta come frequenza di aggiornamento. La frequenza di aggiornamento venne scelta in accordo con le frequanze del sistema elettrico in uso: Nord America e parte del Giappone usano 60 Hz, L'Europa, il medio Oriente e parte dell'Asia usano i 50 Hz. Questo da origine a due sistemi di TV che competono tra di loro:

NTSC: National Television Standard Committee (=Comitato Nazionale per lo Standard Televisivo). Soprannominato anche Never The Same Color (=mai lo stesso colore) perchè due immagini NTSC non risultano mai eguali. Il sistema NTSC ha 525 linee orizzontali delle quali grossomodo 487 sono visibili sullo schermo, ed ha una frequenza di aggiornamento di 60 Hz interlacciati (arriverò più tardi a questo).

PAL: Phase Alternating Line (Linea a Fase Alterna) . Il sistema PAL ha 625 linee orizzontali delle quali circa 540 visibili sullo schermo, ed una frequenza di aggiornamento di 50 Hz interlacciati.

Ora, al tempo in cui vennero immessi sul mercati i primi televisori, la tecnologia che rendeva possibile scrivere 525 o 625 linee 60 o 50 volte al secondo era proibitivamente costosa e non era adatta per il mercato di massa. Ridurre la frequenza di aggiornamento avrebbe richiesto ancor più complicati circuiti, il che non era fattibile, ed inoltre la mente umana ha un limite minimo al di sotto del quale l'immagine non viene più percepita come in movimento. Ma gli ingegneri televisivi ebbero un'idea: non si potrebbe solo scrivere una linea sì ed una no ad ogni passata del raggio, e scrivere le altre linee nella seconda passata? Fare questo richiedeva rispettivamente solo 25 e 30 immagini per secondo (il che significa meno larghezza di banda utilizzata, e quindi più stazioni televisive sulla stessa frequenza ), cosa che l'occhio umano ancora riusciva ad accettare come immagine in movimento. Questa idea di dividere in due l'immagine divenne nota come interlacciamento e le immagini divise in due vennero dette campi. Visto graficamente, un campo è essenzialmente un'immagine dove una linea si ed una no è nera (o bianca se preferite). Ma ecco qua un disegno per far meglio capire la faccenda.

Durante la prima passata il campo superiore viene scritto sullo schermo. Come potete vedere, la prima, terza, quinta, etc., linea viene scritta, e dopo aver scritto ogni linea il fascio di elettroni si sposta sulla sinistra prima di scrivere la linea successiva.

Come si può vedere sulla sinistra al momento viene visualizzato un effetto "a pettine": sembra che stiate guardando attraverso un pettine. Quando sentite parlare di oggetti interlacciati o sentite dire che l'immagine è interlacciata, si intende questo.

 

 

Dopo che tutte le righe dispari sono state scritte, il fascio di elettroni ritorna in alto a sinistra ed inizia a tracciare le linee pari. Poiché ci vuole un po' di tempo prima che i fosfori smettano di emettere luce, e poiché il cervello dell'uomo è lento, invece di vedere due campi, ciò che vediamo è la combinazione di tutt'e due: in altri termini, l'immagine originale.

Quando finalmente le televisioni diventarono a colori, la tecnologia di interlacciamento rimase la stessa, ma vi fu bisogno di un tubo a raggi catodici più sofisticato. Invece di emettere un solo fascio di elettroni, ne vengono emessi tre, nei colori rosso, verde e blu. Quando dei punti di colore vengono messi abbastanza vicino, l'occhio umano non distingue più i singoli puntini, ma ne vede uno solo, risultante dalla combinazione dei tre colori per crearne uno nuovo. Qui sotto potete vede lo schema di un CRT a colori.

La televisione utilizza un sistema di colori additivi (RGB) per visualizzare ogni genere di colori. Per maggiori informazioni sulla combinazione dei colori additivi potete fare riferimento all'articolo Color Info di RGB World.

In ambito NTSC il passaggio al colore ha richiesto un altro cambiamento: la frequenza di aggiornamento dovette essere leggermente abbassata da 60 Hz a 59.97 Hz (producendo così 29.97 immagini al secondo) per permettere l'introduzione dei colori - ed è questo il motivo per il quale oggi abbiamo questi strani framerate in ambiente NTSC.

Ora, prima di esaminare come vengono girati i film a Hollywood, diamo uno sguardo ai monitors per PC. I tradizionali CRT per PC sono basilarmente differenti dagli schermi televisivi. Quando il PC venne introdotto sul mercato, fu finalmente possibile scrivere un'immagine intera in un solo passaggio - procedimento conosciuto come progressive scanning (scanning, scansione, perché il fascio di elettroni "scansiona" ogni riga da sinistra a destra). I primi monitors per PC supportavano ancora la modalità interlacciata, ma il maggior contrasto e lo sfondo più luminoso ci procuravano dei tali mal di testa, da farci ora sentire fortunati per il fatto che la quasi totalità degli schermi PC nemmeno supporta la modalità interlacciata. Oggi tutti gli schermi PC scrivono un'immagine così:

Si sono visti di recente schermi televisivi che supportano il progressive scanning. Sono modelli molto rari e richiedono un segnale di ingresso differente, poiché la tradizionale modalità di connessione dei vostri VCR, DVD o cineprese alla televisione non supporta immagini progressive. I monitor LCD e a plasma possono mostrare solamente immagini progressive: se introducete un immagine interlacciata vi è necessità di un qualche trucchetto tecnologico per visualizzare un'immagine ragionevole. Queste tecnologie sono comunemente conosciute col nome di deinterlacing.

Un'ultima parola sulla TV prima di andare avanti: come vi potrete ricordare, le vecchie televisioni avevano tubi catodici ben lontani dall'essere piatti. Poiché diventa via via più complicato riprodurre un'immagine precisa e geometricamente accurata man mano che ci si allontana dal centro del tubo (il punto dove il flusso di elettroni andrebbe a colpire i fosfori se non fosse deviato), ancora oggi non è visibile tutt'intero lo schermo: gli ultimi centimetri sono nascosti dalla cornice del televisore. E' questo il motivo per il quale entrambi i formati televisivi hanno più righe di quante sia possibile vedere, poiché il resto delle righe è e resterà sempre nascosto. Però queste righe sono comunque utilizzate: i canali televisivi vi trasmettono informazioni testuali ed esse possono contenere segnali che confondono l'automatico gain controller del vostro VCR (il sistema Macrovision di protezione analogica dalla copia ), etc.

Prima di procedere con il deinterlacciamento, vi sono alcune cose che dovete sapere sul modo col quale vengono girate le scene dei film.

La maggior parte dei film destinati ad essere proiettati in sala, viene girata su un supporto materiale simile a quello che usiamo per la fotografia tradizionale. In una scena vi sono 24 immagini ogni secondo. Pertanto, in teoria, potreste anche girare un film con la vostra macchina fotografica, solo che dovreste cambiare il rullino ogni secondo o secondo e mezzo (e di solito le macchine fotografiche non riescono a scattare 24 foto in un secondo;). Quando guardiamo questi filmati in una sala cinematografica noi in effetti vediamo 24 immagini (dette anche frames, quadri ) al secondo. Però quando acquistiamo gli stessi filmati su nastri VHS o su DVD, per vederli sui nostri schermi televisivi da schifo abbiamo un problema. Lo schermo PAL richiede 25 immagini al secondo, ed ogni immagine deve essere divisa in due campi. Ma poiché 25 non è così distante da 24, quello che di solito facciamo nei paesi che usano il PAL è di prendere gli originali film a 24 fps (frames per second) ed accelerarli a 25 fps. Questo significa che la voce e la musica hanno una tonalità un po' più alta rispetto all'originale e il film dura leggermente di meno, ma a meno che non si faccia un confronto diretto punto per punto, a stento qualcuno se ne accorge.

Guardiamo adesso il NTSC. Qui abbiamo bisogno di 29.97fps. Accelerare il film non è fattibile, perché la differenza è troppo grande perché la gente non se ne accorga. Così, dopo aver separato i quadri in campi, quello che si fa è di ripetere alcuni campi al fine di ottenere questo più alto framerate. Sostanzialmente 4 quadri vengono trasformate in 10 campi, come mostrato qui sotto.

Così, come potete vedere dalla figura, contrariamente a quanto potreste pensare, un più alto framerate non significa avere una maggiore qualità nel movimento, ma - al contrario - il NTSC va un po' più a scossoni, poiché alcuni campi vengono fatti vedere 2 volte (il primo campo del frame 2, e il secondo campo del frame 4).

Sullo schermo televisivo questo non costituisce un problema, perché la qualità da schifo ci impedisce di notare che qualcosa non è del tutto a posto. Ma le cose cambiano quando ci trasferiamo in ambiente progressive.

Per poter visualizzare in modalità progressiva, il vostro display o riproduttore in qualche modo deve convertire l'immagine interlacciata in una progressiva. Il metodo più semplice è di combinare i campi.

Dei 10 campi, mettete insieme i primi due per ricostruire il frame 1, quindi il terzo e quarto per ricostruire il frame 2. Se però poi mettete insieme il quinto e il sesto, non prendete né il frame 2 né il frame 3. Questo non è tanto negativo nel caso che non vi sia cambio di scena dal frame 2 al 3, ma se la cinepresa si è spostata, avrete modo di notare alcune righe a pettine nell'immagine. E può anche andare peggio. Immaginate che vi sia un taglio tra i due quadri e che il frame 3 mostri una scena del tutto diversa dal 2. Se mettete insieme il campo di una scena con quello di un'altra, quello che ottenete è un disastro. Pertanto, semplicemente ricombinando tra loro i campi in quadri, non solamente ottenete 2 quadri su 5 molto probabilmente pasticciati, ma per di più ci troviamo con un film a 29.97fps, invece di avere l'originale framerate. Ora, se sappiamo come tutto il sistema funziona, lo possiamo invertire semplicemente eliminando i campi duplicati. Questo procedimento è chiamato IVTC - InVerse TeleCine (poiché il procedimento di inserire i campi duplicati è detto Telecine). Vi sono due buoni articoli che spiegano il telecine e il IVTC in maggior dettaglio: problemi di sincronia Video e Audio di Robshot che spiega la creazione nei particolari , e Force Film, IVTC, e Deinterlacing - cosa sta cercando di dirvi il DVD2AVI e cosa voi ci potete fare di hakko504, manono e jiggimi. Vi è anche la mia guida sul Decomb (=togliere le righe a pettine, ndT), probabilmente l'utility IVTC più nota.

Ora che IVTC è fuori dai piedi, diamo uno sguardo più in profondità al deinterlacciamento. Permettete prima di tutto che vi ripresenti il problema:

In primo luogo abbiamo due campi di una scena video interlacciata:

Come potete vedere non vi sono manufatti (artifacts) visibili. Ora il frame corrispondente:

Nonostante la bassa qualità JPEG potete vedere che vi sono alcune righe di interlacciamento visibili, specialmente sui vestiti del tizio e sulle braccia.



E qui vi è un esempio ancora peggiore, dove vi è il campo di una scena e il secondo di un'altra:

E il frame corrispondente :

Come potete vedere, questo non è qualcosa che ci piacerebbe ottenere. Ciò che è interessante è anche la dimensione delle immagini: quella sulla sinistra è tre volte più grande del resto e si vede peggio ancora.

Questo spiega anche perché salvare immagini interlacciate in modalità progressiva non è una buona idea. Le righe richiedono un mucchio di spazio.

I codecs VCD e il comune MPEG-4 (eccetto XviD) supportano solo contenuto progressivo. Pertanto, salvare qualcosa di interlacciato, come mostrato sulla sinistra, utilizzando una tecnica di compressione di questo tipo, non risulta un metodo molto efficiente, e noi stiamo cercando un sistema un po' più efficiente di trasformazione dell'interlacciato in progressivo, della semplice combinazione di due campi adiacenti in un singolo frame.

MPEG-2 e MPEG-4 advanced simple profile in effetti hanno una speciale modalità interlacciata. In questa modalità, tutte le righe di un campo sono prese assieme (lasciando fuori le vuote) e vengono compresse in modo tale da risparmiare un sacco di bits che andrebbero altrimenti sprecati per registrare le righe mancanti.

Un'ultima annotazione su questi esempi: Poichè sono stati presi da una sorgente DVD interlacciata e registrati in modalità interlacciata, è stato necessario ridimensionare le immagini dei campi fino a raggiungere la dimensione originale (ricordate che in modalità interlacciata noi codifichiamo solamente le righe reali, lasciando fuori quelle vuote) - in realtà questi campi sarebbero stati alti la metà dei quadri.

Ora che abbiamo visivamente stabilito quale è il nostro problema, proviamo ad individuare le possibili soluzioni. Come mostrato, prendere i primi due campi e combinarli non va sempre bene. Ciò è vero specialmente nel caso che stiate lavorando su di un contenuto elaborato quando già era in modalità interlacciata (questo è anche il problema numero uno quando si cerca di fare l'IVTC: in modo particolare, il contenuto di Anime viene tagliato dopo aver fatto il telecine su parti del filmato, il che risulta in quasi insolubili problemi di IVTC).

Un modo semplice e veloce per superare il problema dell'interlacciamento, sarebbe quello di prendere il contenuto partendo dai campi, ridimensionare il campo alla sua grandezza giusta (ricordate che un campo ha metà della risoluzione verticale di un frame) e poi eliminare un campo si ed uno no. Per esempio questo metodo viene utilizzato quando selezionate Separate Fields in GordianKnot. Però, siccome un campo ha solamente metà risoluzione verticale rispetto ad un frame, in questo modo rinunciamo a metà della risoluzione verticale.

Guardiamo ad un differente metodo di deinterlacciamento:

Weave: Prende due campi consecutivi e li mette dentro un campo. Questo riduce il framerate alla metà, ma non risolve i problemi indicati sopra, perché il frame che ha campi di due scene soprapposte rimane lo stesso.

Abbiamo poi blending: si prendono qui due quadri consecutivi, li si ridimensiona alla grandezza del frame e li si mette uno sopra l'altro. Se non vi è movimento questo da un buon risultato, però appena vi è movimento appare innaturale e sfocato e può lasciare una "traccia fantasma".

Bob: In bob allargate ogni campo fino alla grandezza del frame e lo visualizzate due volte. Poiché il primo e il secondo campo non iniziano esattamente nella stessa posizione (ricordate che iniziamo con la linea 1 nel primo campo e con la linea 2 nel secondo) l'immagine salta leggermente su e giù, la qual cosa può apparire come una specie di vibrazione nelle scene statiche.

Vi sono alcuni altri metodi, come l'interlacciamento basato sull'area, il motion blur e l'adaptive deinterlacing. Ognuno ha i suoi pro e contro.100fps.com fa un buon confronto tra tutti i metodi includendo dei buoni esempi che vi mostrano l'effetto di ogni filtro ed ha anche una bella scheda per fare il paragone. Il sito vi guida anche a creare reale materiale a 50fps progressivi convertendolo da sorgenti interlacciate. Se il sito ha troppa roba da leggere per voi (dubito che questo possa accadere ad un lettore di Doom9, ma ad ogni modo occorre dirlo) Gunnar Thalin's area based deinterlacer e DeinterlacePALInterpolation che è basato su l filtro di Thalin, sono delle buoen soluzioni per quando avete bisogno di output a 25fps. Vi è poi Decomb's field deinterlace che da prova di essere alquanto efficiente.

Tuttavia, prima di deinterlacciare, provate a scambiare l'ordine dei campi. DVD2AVI ha una funzione che fa questo (Video - Field Operations - Swap Field order) e così fa anche AviSynth (SwapFields). Abbastanza spesso questo procedimento vi permette di risolvere le questioni legate all'interlacciamento, in modo particolare quando il film principale è interlacciato.

Dichiarazione conclusiva: Questa non è assolutamente una descrizione tecnica completa. L'ho scritta cercando di ricordare tutte le lezioni di fisica e video compressione seguite alle superiori e all'università. Spero che la memoria non mi abbia tradito troppo.

Documento aggiornato l'ultima volta il 24 novembre 2003.

Tradotto il 1 marzo 2004