Vorrei
affrontare in questa pagina alcune questioni relative al legame che intercorre
tra segnale televisivo PAL e i video in formato digitale: in particolare cercare
di capire come è realizzato l'interallacciamento e come questo condizioni la
digitalizzazione e la conversione .
Nella seconda parte dell'articolo sarà analizzato il segnale progressive scan e
come è possibile ricavare video progressivo dai DVD o dalle sorgenti
interallacciate.
La sezione che tratta il video progressivo è quella il cui indice è in arancio.
Storia
625 righe
Banda di
circa 5 MHZ .....e pixel nella digitalizzazione
50 semiquadri
interallacciati (o campi o field) al secondo
VHS
contenente video PAL di provenienza televisiva
VHS
contenente video PAL di provenienza telecine
Segnale
progressive scan e video progressivo: i diversi formati
I
contenuti video nei DVD: l'ordine delle righe nel frame 720*576 o 720*480
Elaborazioni
possibili: deinterallacciamento, duplicazione di linee
Duplicatori
e quadruplicatori di linea
Visualizzazione
di DVD sul monitor del PC tramite player SW: BOB e Weave
Quando è stata inventata la televisione, il concetto di digitalizzazione e di video digitale (video numerico) erano fantasie di qualche ricercatore o scrittore di fantascienza. Le prime stazioni televisive, hanno iniziato a trasmettere nel 1935, in un formato che non ha nulla a che fare con quello che conosciamo: voglio citare solo la stazione tedesca di Berlino- Witzleben e la stazione francese della torre Eiffel, che nel 35 trasmettevano quella che era chiamata cinetelevisione, 180 righe , 25 fotogrammi al secondo ovviamente in B/N .
Seguono trasmissioni sperimentali in tutto il mondo, (la prima nel 39 in Italia, ad opera della RAI, allora EIAR), ciascuna con un formato diverso e incompatibile con gli altri...... corsi e ricorsi storici !!!!
La ricerca di un accordo, vede in Europa l'intermediazione del CCIR (comitato consultivo internazionale delle radiocomunicazioni) che tra il 1949 e il 1952 cerca di mettere d'accordo i diversi paesi europei per creare un unico standard europeo: diversamente dall'intermediazione del 1995 dell'IBM che tra i formati contendenti SD e MMCD, fa nascere il DVD (....e poi ci lamentiamo....), il CCIR non riesce nel suo intento di unificazione ma crea due standard: il sistema PAL (dall'inglese phase alternation line) proposto dai tedeschi e il sistema SECAM (Sequentiel a memorie) proposto dai francesi. Gli, americani, molto più furbi di noi utilizzano invece un solo standard , il NTSC (National Television System Committee) ufficializzato nel 1953.
Concludo queste brevi note ricordando come il 26-1-1952 un decreto presidenziale assegnava alla RAI la concessione esclusiva in Italia, mentre il 3-4-1952 un altro decreto sanzionava sanzionava per l'Italia l'adozione del sistema PAL. Il 1-1-1954 la RAI inaugura il suo servizio (con solo 42 ripetitori in tutta Italia), mentre il 4-11-1961 nasce la "seconda rete", con una copertura del 98% del territorio Italiano. Il resto è storia più o meno recente.
Il segnale televisivo ha pertanto una origine analogica ed è in tali termini che dobbiamo analizzarlo: la digitalizzazione., che trasforma tale segnale analogico in numeri e pixel la si realizza considerando le caratteristiche e i limiti del segnale analogico.
Il segnale PAL è caratterizzato da 625 righe, 50 semiquadri interallacciati (o campi o field) al secondo, 25 frame al secondo, ed ha banda di circa 5 MHZ . Da notare che parlando di segnale analogico non ho parlato di pixel ne in termini di risoluzione orizzontale ne verticale, ma di banda e numero di righe.
Analizziamo brevemente tali caratteristiche (ovviamente per maggiori approfondimenti occorre consultare un buon testo di radiotecnica e telecomunicazioni).
Il segnale analogico PAL, lo si deve identificare con una forma d'onda (normalmente una variazione di tensione nel tempo), che circola ad esempio all'interno di un cavo , onda che viene poi trasformata in onda elettromagnetica quando viene trasmessa via etere.
Tale onda, che ha una sua particolare forma, è divisa in 625 pezzetti, che sono facilmente identificabili e quindi si possono contare grazie ad una serie di impulsini che ne segnano l'inizio e la fine . Ciascun di questi 625 pezzettini di onda ( della durata di 64 microsecondi), contiene delle informazioni ed in particolare 576 pezzetti contengono l'informazione di una riga del nostro televisore, un paio contengono dei segnali di test, altrettante le informazioni del televideo, ed altre tutti quei sincronismi che permettono al televisore di sapere dove disegnare quella riga.
Per quello che ci interessa, delle 625 righe del segnale Pal solo 576 contengono video : quello che dobbiamo capire è come queste righe sono organizzate e che informazione video contengono.
Banda di circa 5 MHZ .....e pixel nella digitalizzazione
Senza entrare troppo nei dettagli, per definire che informazione è contenuta in una riga occorre parlare di Banda.
In pratica, una riga video analogica , che come visto è un pezzettino di onda , potrebbe potenzialmente contenere una informazione elevatissima, dove per informazione video si intende il numero di punti ad esempio bianchi e neri che posso distinguere su una riga: è evidente che se in tale riga riesco a infilare 1000 punti bianco e nero distinti (500 bianchi e 500 neri alternati), ho una informazione, in termini di risoluzione molto maggiore che nel caso in cui riuscissi a inserire 200 punti (100 e 100).
|
L'insieme del max numero di punti distinti che posso inserire in ogni riga e il numero di righe (576 nel Pal) definiscono la risoluzione del segnale analogico: maggiore risoluzione = maggiore capacità di distinguere dettagli in una immagine.
Considerando il teorema del campionamento di Shannon e facendo un pò di conti IN TEORIA un segnale TV Pal al massimo della qualità (banda 5 Mhz) può permettere su di una riga 384 alternanze bianco/nere distinte .
Vediamo cosa succede nel momento in cui con un convertitore analogico/digitale digitalizziamo tale riga ( quello che fanno le diverse schede digitalizzatrici). Quando digitalizzo tale riga devo prima di tutto decidere in quanti punti voglio memorizzare: da qui le tipiche scelte 352*xxx, 704*xxx, 720*xxx, 768*xxx.
Per quanto appena detto (384 alternanze biano/nere distinte) 768 è il numero di campioni (pixel) che riescono a descrivere senza alcuna perdita di qualità un segnale analogico Pal alla massima qualità (banda 5 Mhz).
Significa che se
prendo una riga di segnale Pal , la digitalizzo tramite convertitore
analogico/digitale (A/D) trasformandola in 768 pixel e poi da questi 768 tramite un
convertitore digitale/analogico (D/A) ricavo una nuova riga analogica (che
ad esempio visualizzo sul TV), questa è
esattamente uguale alla riga originaria (almeno in teoria visto che è
impossibile fare operazioni del genere senza errori e pertanto introduzione di
rumore) .
Significa inoltre che se uso la stesso procedimento con es. 900 punti, riottengo
sempre una riga identica alla prima, ma ho semplicemente sprecato preziosi bit.
Al contrario se uso es 500 pixel, la riga che ho ottenuto NON sarà uguale alla
originaria, ma avrà meno dettagli (alte frequenze video): dal punto di vista
visivo avrei una riga più sfocata.
Ecco come apparirebbe una ipotetica riga con alternanze bianco-nera, nel momento in cui eseguo il procedimento di doppia conversione (A/D e D/A) digitalizzando con un numero di pixel sempre minore.
riga visibile dopo il doppio processo di conversione A/D a D/A |
n. di punti per riga con cui digitalizzo |
768
pixel
|
Tralasciando il discorso di come sono organizzate le 576 righe, (lo vedremo
dopo), 768*576 25 frame/sec sono il numero di pixel che descrivono, senza
perdita di qualità un segnale PAL di 5 Mhz. (Si deve fare lo stesso discorso di
prima ma per ciascuna delle 576 righe). E' evidente, per quanto visto, il motivo che
spinge nel caso sistemi video professionali in cui si lavora in digitale non
compresso (è il caso di elaborazioni o semplice memorizzazione di video)
all'uso di digitalizzazioni 768*576 25 frame al secondo.
E' evidente che ad esempio nel caso visto peggiore ( 300 pixel di digitalizzazione) se digitalizzo nuovamente la riga, i 768 pixel sono eccessivi e sempre in teoria se volessi riottenere la riga, basterebbe digitalizzare con risoluzione di 300 pixel per riga (300*576 25 fps)
Senza approfondire la cosa, occorre dire che ciascun
pixel deve essere rappresentato da un numero a 24 bit (3 byte), per descrivere un segnale
a colori. (numero a 24bit = numero compreso tra 0 e 16 777 199): in realtà la
gestione del colore, nata dall'esigenza di mantenere la retro-compatibilità con
il sistema B/N, fa si che occorrono molti meno bit per gestire il colore (per
l'esattezza il formato Pal prevede il sottocampionamento dei colori di tipo 4:2:2 che permette la memorizzazione di 4 pixel, con 8 byte invece che 12, con un
risparmio netto del 33%).
In realtà un segnale video, nella pratica non contiene mai informazione così
elevata (dattagli, colori, ....) da richiedere per ogni riga 768 punti. Non a
caso gran parte dei televisori utilizzano meno che 768*576 triadi di pixel.
Per esempio 720 o 702 punti bastano e avanzano per rappresentare la singola riga
PAL di un video di qualità: non a caso la 720*576 e la 702*576 sono i
pixel usati nei DVD per descrivere il video (anche se poi nel DVD si sommano gli
artefatti dovuti alla compressione, diversamente dai casi che stiamo analizzando
e che sono riferiti a video non compresso).
Se invece di un segnale PAL di qualità, si parte da un segnale memorizzato su
una videocassetta (VHS), si vede che anche i 720 sono eccessivi , ma che ne bastano
352 (in realtà per la gran parte di VHS che si trovano in giro ne bastano
300-320, il resto è solo rumore video): in pratica se voglio digitalizzare una videocassetta senza perdita di
qualità dovrei utilizzare 352*576 punti. Analizzeremo dopo poi cosa succede se
utilizzo ad esempio una digitalizzazione 352*288 di un segnale tv su VHS.
Quindi se prendo un segnale Pal che contiene una riga come quella a destra |
e memorizzo tale riga (insieme a tutte le altre, ovviamente) su una cassetta VHS, avrò un qualcosa simile a |
Non ha
molto senso digitalizzare tale riga
con 768 punti per riga, ma basteranno ad esempio 352
punti per riga, senza il rischio di perdere informazioni video ( digitalizzerò
male il rumore, ma chi se ne importa !!!).
Nella pratica occorre comunque considerare altri fattori che condizionano i
risultati di una digitalizzazione di un segnale analogico : caratteristiche dei
convertitori (capacità di non commettere errori ), caratteristiche del mezzo
trasmissivo (rumore e caratteristiche dei cavi e/o dell'etere) e dei connettori,
e ovviamente la qualità del segnale analogico.
Una digitalizzazione fatta da un cattivo convertitore a 768 punti è
decisamente inferiore di quella a 702 punti di un ottimo convertitore a
parità di segnale video: ovvio.
Ciò non significa che la 768 è sprecata ma semplicemente che 720 punti o 702
BASTANO e AVANZANO, SEMPRE CHE PROVENGONO DA UNA DIGITALIZZAZIONE DI ALTA QUALITA':
ad esempio i 720 pixel del DVD a volte derivano da righe descritte
con digitalizzazioni non compresse di 900- 1100 pixel per riga.
Se si digitalizza un segnale Pal proveniente da videocamera DV, che per standard ha una risoluzione di 720*576 compresso, bastano ovviamente i 720*576 pixel: sono liberissimo di digitalizzare a 768*576, ma non guadagnerei nulla in qualità. In realtà oggi nel caso di video DV si evita di digitalizzare il segnale Pal prodotto, ma tale operazione è fatta direttamente in numerico tramite la presa digital out della telecamera: si evita così il normale deterioramento dovuto alle varie fonti di rumore sia presenti nel segnale Pal sia creati dai convertitori A/D.
50 semiquadri
interallacciati (o campi o field) al secondo
Per capire bene come funziona il video interallacciato, partiamo analizzando il funzionamento di una cinepresa tradizionale su pellicola (che non ha nulla a che vedere con il video Pal), quella ad esempio usata per creare i film che vediamo al cinema.
Riguardo ai termini usati, fotogramma ,frame o quadro sono la stessa cosa così come campo, field o semiquadro: per essere corretti occorrerebbe usare un termine o l'altro a secondo del contesto, ma spesso impropriamente si preferisce confondere i termini: quindi ad esempio se uso frame o quadro indico la stessa cosa, ma non posso confondere frame con semiquadro, che sono cose ben diverse (vedi dopo).
Voglio osservare come nelle considerazioni che seguono, considererò delle immagini che INDIPENDENTEMENTE dalla loro risoluzione ( n. di pixel orizzontali e verticali) sono ridimensionate nelle giuste proporzioni: è quello che in presenza di video digitale devono fare i player (sw o hw) tramite ridimensionamento . In pratica indipendentemente dal fatto che utilizzo video digitale 352*288, 352*576, 480*576, 704*576, 720*576, 768*576........ i player che utilizzano tale video lo devono ridimensionare secondo il rapporto 1 : 1.33 del video Pal. A secondo del contesto poi tali pixel saranno trasformati in segnale PAL da inviare ad un televisore tramite cavo video, o saranno interpolati in pixel (es 800*600) per essere visualizzati sul monitor del pc,... o altro.
Si parla ovviamente di rapporto larghezza-altezza 1 : 1.33 e non di misure assolute in pixel o cm, poichè queste dipendono dalla dimensione del video: uno stesso video sarà rappresentato per esempio con un videoproiettore tritubo su un maxischermo con dimensioni 2.66 X 2 metri o su un mini schermo LCD 26X20 centimetri; il rapporto larghezza-altezza deve rimanere sempre 1 : 1.33 e questo indipendentemente dal numero di pixel con cui è realizzato il minischermo LCD (320*240 o 640*480 o 800*600....) e dalla risoluzione del tritubo !!
Ritorniamo al funzionamento delle cineprese. Il principio è banale: per avere l'idea del movimento il cinema utilizza 24 frame/sec (24fps) in questa maniera; all'istante 0 un otturatore apre l'obbiettivo per un certo tempo, la luce incide su di un fotogramma di una pellicola che viene impressa: 41.66 millesimi di secondo dopo (1/24= 0.04166.) si avanza la pellicola di un fotogramma che sempre grazie all'apertura dell'obbiettivo viene impresso. Si procede cosi per gli altri fotogrammi. In visualizzazione vale il procedimento noto. Il supporto, la pellicola, contiene pertanto 24 frame (fotogrammi, quadri) per ogni secondo.
Se volessi costruire un procedimento analogo in cui al posto di una cinepresa utilizzo una telecamera e al posto della pellicola un segnale televisivo (che ricordo è una onda di tensione che passa attraverso un conduttore elettrico e che posso memorizzare ad esempio su nastro) come risultato NON OTTERREI IL SEGNALE PAL come viene oggi usato, ma un segnale video progressivo che analizzerò in seguito.
La differenza sta nel fatto che il sistema PAL utilizza 25 frame/sec organizzati in maniera interallacciata tramite una successione di 50 campi (field, semiquadri) al secondo.
In pratica (anche se non sono rigorosissimo) funziona così:
-istante 0: la telecamera fissa una certa immagine avente 576 righe, delle quali invia come segnale tv le righe pari 0,2,4,6,....574 (le altre righe sono ignorate e pertanto le informazioni video sono irrimediabilmente perse)
- istante 20 ms (millisecondi) (1/50=0.02 sec = 20 ms): a telecamera fissa un'altra immagine avente 576 righe, delle quali invia come segnale tv le righe dispari 1,3,5,7,....575
-istante 40 ms: la telecamera fissa un'altra immagine avente 576 righe, delle quali invia come segnale tv le righe pari 0,2,4,6,....574 (le altre righe sono ignorate)
-istante 60 ms .............. dispari
-istante 80 ms .............. pari
Dopo 1000 ms = 1 sec ho inviato 50 semiquadri.
Il segnale Pal, che trasmette sotto forma di onda 625 righe, è stato formalizzato definendo l'ordine con cui inviare le 625 righe: senza entrare nei dettagli, si inviano prima dei segnali di test, poi dei segnali di sincronismo che indicano l'inizio di un nuovo campo, poi le linee del televideo e in successione le righe pari 0,2,4,6......574 (il primo semiquadro), nuovo sincronismo, le righe dispari 1,3,5,....575 (il secondo semiquadro) e così di seguito.
In fase di visualizzazione il televisore riceve le 576 righe di segnale video e le disegna nello stesso ordine con cui sono state trasmesse: vengono disegnate le righe pari (primo semiquadro) e poi le dispari (secondo semiquadro) nell'ordine rappresentato in figura 0,2,4,...574,1,3,5,...575 .
Un quadro televisivo è
l'immagine che ho sul televisore formato dalle 576 righe attive ( che contengono
cioè immagini).
Il cambiamento totale delle 576 righe lo si ha ogni 40 ms ( 0,
40, 80 ms): si parla pertanto di visualizzazione a 25 frame/s (1 sec /25 = 40
ms).
Ogni 20 ms cambiano solo la metà delle 576 righe (le 288 pari o dispari ) e le
altre vengono lasciate immutate; si parla pertanto di visualizzazione a 50
semiquadri al secondo ( 1 sec /50 = 20 ms ).
Riassumendo: per formare un quadro devo aspettare l'arrivo di due semiquadri e pertanto ho 25 quadri/sec che li posso interpretare come 50 semiquadri/sec.
Ecco una tabella che riassume visivamente come una serie di immagini ( i 5 colori ) riprese da una telecamera o videocamera vengono trasmesse tramite il segnale PAL e visualizzate su di un normale TV.
Ovviamente nella realtà immagini successive a distanza di 20 ms non sono mai completamente diverse come in figura: per questo motivo le discontinuità presenti sul TV non sono mai così evidenti come nello schema; in tutti i casi il rapido susseguirsi di righe pari e dispari, grazie al " filtraggio passa basso " del nostro occhio ci dà negli oggetti in movimento l'impressione di un moto fluido, nonostante l'immagine sia campionata a 50 semiquadri/s e non in continuo movimento come nella realtà.
immagine |
1 |
2 | 3 | 4 | 5 |
tempo |
0 ms |
20 ms | 40 ms | 60 ms | 80 ms |
immagine ripresa dalla tele/videocamera che apre l'obbiettivo ogni 20 ms ( 50 fps) |
|||||
segnale televisivo PAL: ogni 20 ms è inviato un semiquadro (312 righe)alternativamente pari o dispari: il bianco indica la mancanza di segnale |
|||||
ciò che è visualizzato sul televisore (prima dell'istante 0 il tv visualizza lo schermo nero) |
|||||
note |
il segnale PAL invia le righe pari dell'immag.1 | il segnale PAL invia le righe dispari dell'immag.2; il TV visualizza le righe pari dell'immag.1 e le dispari della 2 | il segnale PAL invia le righe pari dell'immag.3; il TV visualizza le righe pari dell'immag.3 e le dispari della 2 | il segnale PAL invia le righe dispari dell'immag.4; il TV visualizza le righe pari dell'immag.3 e le dispari della 4 | il segnale PAL invia le righe pari dell'immag.5; il TV visualizza le righe pari dell'immag.5 e le dispari della 4 |
Occorre
osservare come il metodo dell'interallaccio dimezza la risoluzione delle
immagini poiché ad esempio nell'istante 0 la parte dell'immagine corrispondente
alle righe dispari è persa: nella pratica poiché tutto ciò che sino ai
20 ms successivi non si è mosso viene poi trasmesso (le righe dispari,
nell'esempio, sono trasmesse nell'istante 20 ms) la risoluzione di ciò
che è fermo rimane pari a 576 righe.
Per ovviare alla perdita di risoluzione si ricorre al video progressivo;
l'utilizzo di un segnale progressive scan e la visione tramite Tv o
proiettori in grado di visualizzare video progressivo: di questo ne parleremo
dopo..
Per
In base ai discorsi visti posso parlare di 50 campi 768*352 o 25 frame 768*576, nei termini di segnale digitalizzato.
Il risultato di questo "metodo diabolico" è che in ciascuna di queste ipotetiche 25 fotografie al secondo del nostro televisore, le righe pari e le righe dispari provengono da istanti distanziati di 20 ms. Nell'esempio visto se faccio una foto al televisore poco prima dell'istante 40ms ho sulle righe pari del televisione una immagine della ripresa immortalata nell'istante 0, mentre le righe dispari sono riferite ad una immagine immortalata nell'istante 20 ms.
Le
conseguenze sono quelle note: tutti gli oggetti che tra gli istanti 0 e 20 ms si
sono mossi, lasciano sulle righe pari la loro immagine dell'istante 0 e su
quelle dispari la loro immagine dell'istante 20ms: l'effetto è una
discontinuità dei contorni, tanto maggiore quanto maggiore il loro movimento.Tale
discontinuità è spesso detta in inglese "venetian-blinds effects"
(effetto persiana a saracinesca)
Ovviamente gli oggetti fermi rimangono nella stessa posizione e non lasciano
nessuna discontinuità.
Chiaramente
quando parlo di oggetti in movimento parlo di velocità relativa tra l'oggetto e
la telecamera: se l'oggetto è fermo ma si muove la telecamera ho sempre un
movimento analogamente al caso di telecamera ferma e oggetto in movimento.
Ecco l'esempio di un oggetto che ruota in senso orario e si sposta leggermente a destra, ripreso da una telecamera
tempo |
0 ms |
20 ms | ||||
immagini reali | ||||||
linee video utilizzate |
|
|
||||
frame
interallacciato ottenuto |
Ecco un
tipico frame PAL reale di 768*576 righe che contiene al suo interno due semiquadri
768*576 provenienti da istanti separati da 20 ms. A destra un
ingrandimento.
E' evidente che il nostro comandante della Voyager si sta movendo e che i due campi descrivono la sua posizione in due istanti successivi: visibilissimo l'effetto discontinuità delle zone in movimento ("venetian-blinds effects"). Tutto il rumore che vedete nelle foto deriva in parte all'origine del video (vhs) e in parte dalla compressione jpeg delle immagini.
Cercherò adesso di rispondere ad una domanda spesso formulata quando si parla di digitalizzazone: che risoluzione devo usare quando voglio digitalizzare video di provenienza VHS, 352*576 25fps o 352*288 25 fps (il formato XVCD)?
La risposta è semplice: se non voglio perdere informazione video devo digitalizzare con la 352*576 25fps nel caso di video PAL di provenienza televisiva e comprimere possibilmente in mpeg2 codec che gestisce in maniera ottimale il video interallacciato ( MiniDVD, DVD o SVCD): bastano i 352*288 25fps nel caso di video PAL di origine telecine: in tal caso posso comprimere con un qualsiasi codec anche se incapace di gestire il video interallacciato (Divx;-), mpeg1 , mpeg2 . )
Prima di analizzare i due casi ricordo, come è ovvio, che nel caso di digitalizzazione di video memorizzato in un formato di qualità ( DV, miniDV, Betacam,...) per non perdere di qualità occorre digitalizzare in uno dei classici formati full PAL; 768*576, 720*576, 704*576.
VHS contenente video PAL di provenienza televisiva
Per video PAL di provenienza televisiva intendo tutti i casi di video la cui origine è una telecamera: in TV telegiornali, spettacoli registrati in studi televisivi, concerti, telefilm non registrati su pellicola, documentari non registrati su pellicola,.... e tutto il materiale realizzato con delle videocamere + o - amatoriali.
Quando si digitalizza tale materiale registrato su VHS, ho normalmente risoluzioni del tipo XXX*576 o XXX*288, dove XXX è la risoluzione orizzontale che per quanto visto la si deve scegliere in base alla qualità di dettagli che voglio mantenere, e che è condizionata dalla qualità e pertanto dalla provenienza del video: eccedere per video non di qualità non ha senso.
Ovviamente nel caso di originali di qualità ( vedi il formato DV , miniDV o il classico Betacam) come già detto occorre digitalizzare 704*576, 720*576 o addirittura 768*576.
Al contrario per il VHS 352 punti orizzontali vanno bene . Rimangono pertanto le due possibilità: 352*576 o 352*288.
Se digitalizzo 352*288 25fps , le schede digitalizzatrici non fanno altro che ignorare i campi pari (o dispari): nel caso in cui il video deriva da una telecamera, per quello che ho detto perdo tutta l'informazione presente negli istanti 20,60,100ms,.... mentre mantengo tutto ciò che è stato ripreso e registrato negli istanti 0, 40, 80,120 ms.....
Nel caso del nostro comandante della Voyager, del frame originario la scheda digitalizzatrice copia solo le 288 righe ad esempio pari e per ogni riga riga ottiene 352 punti.
Frame Pal originario con 576 righe: 288 campi pari e 288 dispari |
immagine digitalizzata 352*288 |
Visivamente la differenza nella eliminazione dei campi ad esempio pari , non sta tanto nella diminuita risoluzione quanto nel fatto che l'immagine nelle scene dinamiche è meno fluida poichè è ignorata una immagine su 2: è il tipico effetto di "video a scatti" che si ha nei film al cinema, visibilissimo ad esempio nelle carrellate della cinepresa.
Una possibile soluzione nel caso in cui si parte da video vhs di provenienza televisiva è quella di digitalizzare 352*576 e ricavare la 352*288 , utile ad esempio nel caso di conversione in mpeg1 XVCD o DivX;-) 352*288 o 384*288. Per far ciò occorre fare prima un deinterallacciamento ad esempio di tipo blend sul frame 352*576 e poi interpolazione alla risoluzione 352*288; i filtri di deinterallacciamento di tipo blend e quelli generici di interpolazione sono presenti in software quali virtual dub, in premiere e all'interno dell'encoder tmpeg.
Il deinterallacciamento di tipo blend è un tipo di filtraggio che cerca di trasformare video interallacciato in progressivo eliminando le tipiche discontinuità dovute all'interallacciamento e cercando di simulare l'effetto prodotto dall'oggetto in movimento al nostro occhio
Il deinterallacciamento di tipo blend non fa altro che:
1) prelevare il frame interallacciato formato dai campi pari ,riferiti ad una immagine presente ad esempio all'istante 0, e quelli dispari riferiti all'istante 20ms. | ||
2) Ricostruire l'immagine proveniente dall'istante 0 , prelevando le righe pari e raddoppiando per interpolazione l'altezza | ||
3) Ricostruire l'immagine proveniente dall'istante 20ms , prelevando le righe dispari, inserendo una riga orizzontale ( per permettere poi la corretta sovrapposizione) e raddoppiando per interpolazione l'altezza | ||
4) Sommare le due
immagini ottenute. Per esattezza viene fatta pixel per pixel la media matematica dei colori, somma diviso 2. A destra il risultato finale. |
Ecco affiancate l'immagine originaria e quella dopo il filtraggio blend. |
Nell'esempio visto l'interpolazione riduce l'immagine ottenuta in 352*288 pixel .
Particolare del Frame Pal dopo il filtraggio deinterallacciamento di tipo blend |
Zoom |
E' evidente la differenza che ottengo
immagine 352*288 ottenuta da digitalizzazione 352*576, filtraggio deinterallacciamento di tipo blend e interpolazione |
immagine digitalizzata 352*288 eliminando le righe pari del frame Pal |
E' possibile ricavare una cosa molto simile al doppio filtraggio visto, facendo una banale interpolazione dai frame 352*576 al 352*288: i risultati sono simili ma più sporchi (maggiore rumore).
Se si deve convertire in mpeg 1 XVCD 352*288, il doppio filtraggio (blend e interpolazione) lo si può fare all'interno di Tmpeg tramite il filtro deinterlace (configure/advanced/deinterlaced/blend): per editare il filtro occorre fare un doppio click mentre per renderlo attivo basta selezionarlo (X).
Nel momento in cui viene caricato (load) un preset (che trovate in template ) presenti all'interno della cartella XVCD la risoluzione viene automaticamente fissata a 352*288 (configure/video/size).
Nel caso di compressione in formato DivX:-) o in tutti i casi se si vuole usare virtual dub occorre ricorrere ai suoi filtri:.
Il filtro è video/filter/add/smart deinterlace; | |
occorre DOPO inserire il filtro di interpolazione che è video/filter/add/resize : attenzione ad usare almeno il filtro bilinear |
Il risultato dell'operazione digitalizzazione 352*576, filtraggio deinterallacciamento di tipo blend e interpolazione , produce un video 352*288 25 fps che si può quindi convertire ad esempio in XVCD mpeg1 tramite la catena con Tmpeg o in DivX;-).
E' possibile ottenere risultati leggermente migliori se usando sempre virtual dub si utilizza il filtro smart deinterlace 2.0 ( è un freeware che trovate nel mio sito plugins.zip chealtro non è che la versione evoluta di quellla presente in virtual dub1.4 ): per installarlo basta copiare i file nella directory plug-in di Virtual Dub.
I
parametri che consiglio sono quelli in figura: Se erroneamente non si seleziona blend
instead.... si ottiene un effetto che rende l'immagine in movimento
inguardabile.. Show motion areas...visualizza a scopo di test dove
interviene il filtro.
In tutti i casi consiglio fare delle prove, ricordando come il preview in certi casi funziona solo tramite l'avanzamento in avanti step by step (non è un problema ovviamente in fase di conversione in cui funziona sempre) I parametri Advanced Processing li analizzerò dopo. (in questo contesto non servono)
|
Ovviamente occorre DOPO inserire il filtro di interpolazione che è video/filter/add/resize esattamente come nel caso di prima. |
Sul mio sistema PII 400 la conversione da avi 352*288 ad mpeg1 (per realizzare un XVCD) tramite tmpeg B12 è realizzata in 5.4 real time (es 1 ora in 5.4 ore) mentre con avi 352*576 e la la catena XXXXX------>virtualdub (filtri)---->tmpeg la realizzo 8.8 real time, con un incremento dei tempi di codifica del 63% (da 1 a 1.63)
Ne vale la pena ? Per quanto detto come vantaggio ho una maggiore fluidità delle scene in movimento, mentre i tempi computazionali aumentano del 63% circa a seguito della risoluzione iniziale doppia e a causa del doppio filtraggio. Un'altra conseguenza negativa è che l'effetto blend crea una specie di alone fantasma attorno agli oggetti in movimento dando alla immagine una certa artificiosità . Per quanto mi riguarda, penso che la risposta sia NO: personalmente preferisco un video leggermente più a scatti piuttosto che incrementi eccessivi dei calcolo e l'effetto fantasma . Ovviamente è una opinione personale: ognuno può fare dei test e farsi la propria.
Riguardo gli altri metodi di interpolazione presenti in Virtualdub o in Tmpeg, si ottengono risultati spesso inutilizzabili, poichè il rumore video presente nell'originale, sommato ai limiti degli algoritmi di interpolazione, creano immagini sporche nelle zone in movimento.
Riassumendo posso concludere dicendo che nel caso di materiale VHS di provenienza televisiva se si è disposti ad accettare l'effetto spesso trascurabile di una minore fluidità delle scene dinamiche va benissimo digitalizzare 352*288 e convertire ad esempio in formato XVCD (un bit rate video 2000-2100 Kbit/s garantisce un ottimo video): nel caso di materiale VHS di particolare interesse consiglio la digitalizzazione 352*576 e la conversione in MPEG2 interallacciato con medesima risoluzione. Anche se non è molto utilizzata la mpeg2 352*576 è compatibile con lo standard SVCD, MiniDVD e DVD, anche se molti sw di authoring si rifiutano di utilizzarla. Se si desidera rimanere in standard, va bene la conversione in 480*576 MPEG2 interallacciato utilizzabile per il SVCD. Ricordo comunque che nel caso di SVCD l'audio deve essere a 44100 mentre nel caso MiniDVD a 48000. L'ultima possibilità , consigliata a chi non ha un player in grado di visualizzare i SVCD, è di creare XVCD mpeg1 352*576 che sono compatibili con alcuni lettori dvd (vedi Pioneer dv 525): il difetto di tale soluzione sta nella incapacità dell'mpeg 1 a comprimere video interallacciato: il motivo lo trovate approfondito nell'articolo I formati Mpeg1 e 2: come funzionano e come utilizzare al meglio tutti i parametri di Tmpeg encoder. Dalla teoria matematica . . . all'uso di tutti i giorni
Per coloro che
utilizzano il formato DivX;-) ricordo come tale codec esattamente come l'mpeg1 (
e per gli stessi motivi) è incapace di comprimere efficacemente video XXX*576
interallacciato: per tale motivo tutte le linee di discontinuità dovute
all'alternarsi dei semiquadri, dopo la compressione appaiono spesso sfocate e
confuse; nella pratica video interallacciato compresso con il DivX;-) o mpeg1 se
visualizzato su monitor del PC produce le antiestetiche linee di discontinuità:
su TV la visione interallacciata fa scomparire le linee di discontinuità
mentre tutti i dettagli in movimento appaiono confusi e circondati da rumore
video.
Riguardo la compressione in formato mpeg2 SVCD vi rimando all'articolo Il SVCD (Super Video Cd)......più DVD che XVCD:guida alla realizzazione
Come alternativa c'è la
digitalizzazione 352*576 ma con audio 48000 e compressione sempre in mpeg2 come nel caso
dei SVCD utilizzando ad esempio Tmpeg e un
template
presente nella directory MiniDVD 352 576 interallacciato (il bitrate massimo lo
si può variare in setting/video/rate control mode/setting così come il parametro quality ).
Qual'è il vantaggio di questa scelta? Il vantaggio sta nel fatto
che un mpeg di questo tipo è compatibile con le specifiche del DVD: oggi si
può realizzare un MiniDVD tramite sw di authoring e masterizzazione su cdr; tra
qualche anno sarà possibile reciclare tali mpeg e rifare l'authoring ma per
creare un vero DVD su DVD-R , DVD-RW o DVD-RAM (a secondo di chi vincerà la
guerra degli standard).
Concludo ricordando che nel caso si creano XVCD e SVCD con Nero Burning, se si utilizzano risoluzioni diverse da 352*288 (XVCD) o 480*576 ( SVCD) il sw da un messaggio di errore che in realtà può essere ignorato poichè Nero poi procede normalmente: è delegato ai player DVD l'interpretazione del video fuori standard.
VHS contenente video PAL di provenienza telecine
Intendo
tutti i casi di video di provenienza telecine (il metodo che trasferisce un film
da pellicola a video TV): sono tutti i film , parecchi documentari video
(sopratutto prima si utilizzava la pellicola ,vedi ad esempio vecchi documenti
B/N e molti documentari naturalistici, pellicola che oggi è stata in certi casi
sostituita
dall'uso di videocamere), telefilm registrati su pellicola (uno tra tutti Spazio
1999, registrato su 35 mm ) .
Come funziona il proceso telecine? La prima cosa che si fa è ignorare il fatto che il cinema funziona a 24 frame al secondo mentre la tv Pal a 25: l'effetto è una accelerazione dei tempi di circa 4% e di un innalzamento inpercettibile delle frequenze sonore (l'audio è alzato di qualche comma di semitono): un film che al cinema dura 100 minuti, in tv (o sul DVD) durerà 96 minuti.
Per il video si procede in maniera analoga a ciò che fa la telecamera.
Chiamiamo 0,1,2,3...i fotogrammi della pellicola e 0,1,2,3 (in arancione) i frame del video PAL interallacciato. Per comodità pensiamo alla pellicola come un frame formato da 576 righe (in realtà non ha senso parlare di righe di una pellicola, poiché la risoluzione verticale della pellicola dipende dalla sua grana , dalla qualità della pellicola....; ciò che invece "crea" tali linee nei casi di telecine, sono il numero di CCD utilizzati per la conversione digitale /analogica con cui si realizza il processo )
-Le righe pari (0,2,4,..574) del fotogramma 0 diventano righe pari del frame video 0 = e sono riferite all'istante 0 del segnale Pal.
-Le righe dispari (1,3,5,..575) del fotogramma 0 diventano righe dispari del frame video 0 = e sono riferite all'istante 20 ms ( 1/50 s) del segnale Pal.
-Le righe pari (0,2,4,..574) del fotogramma 1 diventano righe pari del frame video 1 = e sono riferite all'istante 40ms del segnale Pal.
-Le righe dispari (1,3,5,..575) del fotogramma 1 diventano righe dispari del frame video 1 = e sono riferite all'istante 60 ms del segnale Pal.
.............
Ipotizziamo che il fotogramma 0 sia | |
Ipotizziamo che il fotogramma 1 sia (in realtà per comodità di visualizzazione visualizzo solo un pezzo di fotogramma) P.S. per la cronaca la successione che presento è un netto stacco di ripresa realmente esistente nel film Titanic) |
|
Ipotizziamo che il fotogramma 2 sia (rispetto al fotogramma 1 i due protagonisti si sono leggermente spostati) |
Immaginiamo adesso di visualizzare il filmato su di un televisore e di fare delle fotografie: per quanto visto se fotografiamo il televisore un istante prima di 40, 80, 120 ms riottengo i tre fotogrammi visti, poichè tramite il segnale Pal sono giunti i due semiquadri che concorrono alla creazione completa del fotogramma.
La cosa interessante è che se fotografiamo il televisore un istante prima di 60, 100 ms ho una immagine che è la composizione di semiquadri provenienti da fotogrammi successivi con il classico effetto già visto prima. La differenza fondamentale è che nel caso di segnale PAL proveniente da telecamera ciascun semiquadro proviene da istanti e quindi immagini diverse (0,20,40,60,80ms...),mentre nel caso di telecine i semiquadri a due a due provengono dallo stesso fotogramma e che negli istanti 40,80,120 ms , in cui sono ricomposti , il fotogramma è presente sullo schermo..
Ecco nel nostro esempio cosa vediamo sul televisore se fotografiamo un'istante prima di quelli indicati:
40 ms |
fotogramma 0 |
|
60 ms |
mix tra i campi dispari relativi al fotogramma 0 e quelli pari relativi al fotogramma 1 |
|
80 ms |
fotogramma 1 |
|
100 ms |
mix tra i campi dispari relativi al fotogramma 1 e quelli pari relativi al fotogramma 2 |
|
120 ms |
fotogramma 2 |
Per completezza
ricordo come già detto che il pennello elettronico disegna le righe pari e poi dispari in
successione
Visualizzazione in modalità interallacciata |
e quindi se fotografo il TV in istanti compresi tra gli istanti visti in tabella si ha che il pennello elettronico non ha terminato di disegnare il semiquadro, e in quell'istante sul tv ho una immagine che è una via di mezzo delle due immagini relative. Questo significa che in realtà ho solo un istante in cui compare il fotogramma completo come al cinema: ciò che sistema tutto è la persistenza dell'immagine sulla nostra retina che miscela le immagini e rende tutto più naturale.
Ecco una tabella che schematizza come un video di provenienza telecine viene trasmesso e visualizzato su di un televisore.
tempo |
0 ms |
20 ms | 40 ms | 60 ms | 80 ms | 100 ms | 120 ms |
frame della pellicola che varia ogni 40ms ( 25 fps) |
|||||||
segnale televisivo PAL: ogni 20 ms è inviato un semiquadro (312 righe)alternativamente pari o dispari: il bianco indica la mancanza di segnale |
|||||||
ciò che è visualizzato sul televisore (prima dell'istante 0 il tv visualizza lo schermo nero) |
Per comodità di visualizzazione riporto lo schema nel caso di video interallacciato di provenienza tele/videocamera
immagine |
1 |
2 | 3 | 4 | 5 |
tempo |
0 ms |
20 ms | 40 ms | 60 ms | 80 ms |
immagine ripresa dalla tele/videocamera che apre l'obbiettivo ogni 20 ms ( 50 fps) |
|||||
segnale televisivo PAL: ogni 20 ms è inviato un semiquadro (312 righe)alternativamente pari o dispari: il bianco indica la mancanza di segnale |
|||||
ciò che è visualizzato sul televisore (prima dell'istante 0 il tv visualizza lo schermo nero) |
|||||
note |
il segnale PAL invia le righe pari dell'immag.1 | il segnale PAL invia le righe dispari dell'immag.2; il TV visualizza le righe pari dell'immag.1 e le dispari della 2 | il segnale PAL invia le righe pari dell'immag.3; il TV visualizza le righe pari dell'immag.3 e le dispari della 2 | il segnale PAL invia le righe dispari dell'immag.4; il TV visualizza le righe pari dell'immag.3 e le dispari della 4 | il segnale PAL invia le righe pari dell'immag.5; il TV visualizza le righe pari dell'immag.5 e le dispari della 4 |
Cosa succede se digitalizzo un segnale PAL che contiene video proveniente da telecine ? (classico esempio se digitalizzo ad esempio 704*576 il segnale analogico di un film ad esempio di una videocassetta )
La risposta ha dell'incredibile. A secondo dalla maniera con cui è stato realizzato il telecine ( partendo dai campi pari o dispari) e a secondo dell'ordine con cui la scheda video digitalizza tali campi, ottengo dei frame 704*576
o contenenti i corrispondenti fotogrammi della pellicola (ciò che desidero) |
|
o contenenti il mix tra campi pari e dispari di fotogrammi successivi. |
La causa di tutto ciò è una certa libertà che è lasciata nella scelta del primo campo (pari o dispari) da inserire nel segnale pal nel caso di telecine, o da digitalizzare nel caso di schede digitalizzatrici.
Nel caso delle schede digitalizzatrici si parla anche di field order A o B o field order pari o dispari.
Ovviamente data la natura interallacciata del televisore, l'ordine del telecine non è assolutamente visibile sul televisore, mentre lo è quando visualizzo il frame completo su PC dopo averlo digitalizzato (se utilizzate schede tipo Marvel che tramite l'overlay simulano l'interallacciamento nella finestra dove c'è il video, per vedere il frame progressivo, basta o aprire due finestre video ad esempio con lo stesso filmato o visualizzare il video con sw tipo virtualdub : ovviamente occorre partire da digitalizzazioni xxx*576 perchè le xxx*288 semplicemente ignorano un campo)
La cosa più incredibile
è che se in molti casi di video proveniente da telecine, questo ordine è
mantenuto dall'inizio alla fine, così che all'occorrenza è facile
rimettere i campi in ordine ( il metodo lo trovate tra breve ), ci sono dei casi in cui tale ordine varia nel
tempo : un classico caso sono i telefilm di Star Trek (Next generation e Voyager)
in cui spesso appena cambia la scena cambia l'ordine dei campi o addirittura
ciò succede in
mezzo ad una scena. Per convincersene basta digitalizzare qualche minuto a
XXX*576 (es 704*576 della Marvel) e tramite virtual dub dare una occhiata al
filmato: in alcuni momenti non si vedranno le famose discontinuità mentre in
altri si.
La spiegazione c'è ed è la seguente: tali telefilm sono stati girati
su pellicola (24 fps) e poi tramite telecine la pellicola è stata trasferita in formato
tv interallacciato NTSC 30 fps ( 60 semiquadri al secondo) tramite la tecnica
3:2 pulldown (ne parlo dopo dettagliatamente qui)
: se a questo punto il video NTSC fosse riconvertito in PAL 25 fps si sarebbe
potuto facilmente mantenere un corretto ordine dei campi
così che ciascun frame pal conterrebbe il relativo fotogramma della pellicola
originale, senza alcuna discontinuità. Ciò non succede perchè il montaggio del telefilm è realizzato non in pellicola ma sul
materiale NTSC; tale operazione disordina i diversi field, così che, sopratutto
nei cambiamenti di scena, varia l'ordine dei field ; la successiva conversione
in PAL crea la condizione descritta: alcuni fotogrammi contengono l'esatta copia
del fotogramma originale, mentre in altri fotogrammi i campi pari e dispari
contengono video appartenente a fotogrammi successivi.
Un' altra cosa curiosa mi è capitata con il film per la TV Giuseppe: possiedo la versione originale in due videocassette (le 2 parti del film): nella prima cassetta il telecine è stato fatto coerente con la mia Marvel g200 (si vedono cosi i frame 704*576 coincidenti con i corrispondenti fotogrammi); nella seconda videocassetta il telecine è stato fatto invertendo i campi, con l'effetto di discontinuità delle righe.
Ho trovato un metodo per
risistemare i campi nell'ordine giusto, nei casi sfortunati (es. Marvel
g200-episodi di spazio 1999, tutti rigorosamente telecine con provenienza
pellicola). La
cosa potrebbe servire in tutti quei casi in cui voglio convertire il video di
provenienza telecine in un formato digitale con risoluzione verticale elevata
che non prevede l'interallacciameto: un esempio classico: ho un film in SVHS o
un DV che voglio convertire in DivX (che non prevede l'interallacciamento) , il
tutto a piena risoluzione 704*576 o ad esempio interpolato a 512*384.
Il metodo
è quello di usare virtual dub con il filtro
smart deinterlace 2.0
di cui ho già parlato ( lo trovate nel mio sito plugins.zip
): per installarlo basta copiare i file nella directory plug-in di Virtual Dub.
Il filtro è smart deinterlace 2.0 (cntr-f / add per inserirlo) I settaggi da inserire sono quelli nel riquadro advanced processing (quelli in alto automaticamente sono esclusi) : inserendo la combinazione esatta (sono previsti tutti i casi possibili) si riesce ad ottenere l'effetto richiesto della ricomposizione dei fotogrammi originali. I parametri che ho visualizzato vanno bene nei casi sfortunati della mia Marvel g200 e ovviamente a secondo della configurazione posseduta si devono modificare. Ricordando come il preview i funziona correttamente solo tramite l'avanzamento in avanti step by step (non è un problema ovviamente in fase di conversione in cui funziona sempre) |
Ricordo che tale filtraggio può essere utilizzato in tutte le catene in cui si inserisce Virtual Dub (es. Premiere-->Avisynth-->VirtualDub-->tmpeg (vedi Avisynth v0.3: l'incredibile sw che trasforma tutti gli mpeg encoder stand alone in Plug-in per Premiere e Flaskmpeg ).
Ovviamente nel caso di Star trek l'unico modo per riottenere i frame ricomposti è quello di analizzare le singole scene per filtrarle dove occorre (lavoraccio assurdo): non esiste ancora un filtro che realizza la cosa automaticamente e mi chiedo se mai esisterà!!!.
Un problema analogo (i campi invertiti o meno) lo ho avuto con la mia Marvel g200 combinata con la scheda hw Creative DXR-2 e la Creative DXR-3. Nel primo caso ottengo frame 704*576 con l'indesiderato mix tra campi di frame sucessivi, mentre nel secondo caso ho gli esatti fotogrammi del film. : pertanto nel primo caso per riottenere la ricomposizione dei fotogrammi originali devo usare il filtro visto.
Possiamo finalmente rispondere alla domanda che ci siamo posti:
Nel caso di VHS con materiale proveniente da telecine per non perdere informazione video conviene digitalizzare con la 352*576 25fps o 352*288 25fps?
Per quanto detto sembrerebbero indicate 3 possibilità:
1) digitalizzare 352*576 e convertire in un formato interallacciato (es. mpeg2 SVCD)
2) digitalizzare 352*576, valutare tramite virtualdub se i campi sono invertiti (se sì usare il filtro smart deinterlace 2.0 per riottenere i fotogrammi originali) interpolare a 352*288 (il filtro resize di virtual dub) e convertire in un formato progressivo ( es mpeg1 per realizzare un XVCD)
3) digitalizzare 352*288 (ignorando i campi pari o dispari), convertire in un formato progressivo ( es. mpeg1 per realizzare un XVCD o mpeg2 per realizzare SVCD o miniDVD)
Diversamente dal caso di VHS con materiale da telecamera, nel caso di VHS con materiale proveniente telecine se utilizzo la strada 3) non ho il tipico effetto di video a scatti, perché dei 25 fotogrammi originali ho sempre 25 immagini 352*288 (e non 25 immagini rispetto alla 50 riprese dalla telecamere).
Per questo motivo se paragono i risultati del caso 2 e 3, l'unica differenza teorica dovrebbe essere una leggero miglioramento dei dettagli nel caso 2 poichè ogni riga è data dalla interpolazione di due righe: nella pratica non c'è alcuna differenza visibile e pertanto posso concludere dicendo che nel caso di materiale VHS di provenienza telecine va benisimo digitalizzare 352*288 e convertire ad esempio in formato XVCD (un bit rate video 2100 Kbit/s garantisce un ottimo video) o SVCD ( grazie al bitrate variabile a parità di bitrate max , es. 2100, è possibile guadagnare preziosi minuti di video).
Tra XVCD 352*288 e SVCD 352*288 il mio consiglio è di creare SVCD nel caso avete un player capace di visualizzare tale formato: la gestione del bitrate variabile dell'mpeg2 e la migliore ottimizzazione di tale formato rendono il SVCD superiore all'xvcd.
Il caso 1 sembra eccessivo a meno di avere una disponibilità elevata di spazio: in pratica se ho a disposizione un bit rate video di 2100 Kbit/s (che insieme ad audio 224 kbit garantisce circa 40 minuti su cdr per gli XVCD e qualcosa in più per i SVCD grazie al bitrate variabile dell'mpeg2) la qualità di un video mpeg a 352*288 ottenuta dal caso 3 non è peggiore rispetto a quella di video 352*576, sempre nelle ipotesi di provenienza Vhs e telecine. In tutti i casi considerando i limiti del vhs con il metodo 3) non riuscirei mai ad avere vantaggi evidenti.
Ben diverso è il caso di video di qualità (es svhs , DV o Betacam ): in tal caso per preservare la qualità è necessario salire di risoluzione e bit rate : almeno la 352*576 , sino al classico 720*576.
Segnale progressive scan e video progressivo: i diversi formati
La questione del video
progressivo è all'attenzione delle riviste specializzate e dei
newsgroups da un po' di mesi; in realtà sull'argomento regna il caos più assoluto:
la confusione è ormai la norma e grosse imprecisioni sono riportate un pò su tutte le
riviste " specializzate".
Se da una parte la cosa
è giustificata, vista la difficoltà a reperire informazioni e il grosso
clamore legato all'argomento (vedi i grossi interessi commerciali), dall'altra parte
sono in molti ad avere le idee poco chiare sui formati interallacciati e
progressivi e sul concetto di conversione di formati.....e vai a sparare sciocchezze!!!
A prova della grossa ignoranza che regna nel settore ( senza offendere nessuno vista la carenza di informazioni), una delle tipiche affermazioni che si trovano sulle riviste " specializzate" è la classica "stranamente, forse per un problema dell'esemplare in analisi, la modalità progressiva funziona solo in modalità NTSC" come se la cosa fosse una stranezza vista la grossa differenza che passa nel trattamento di video PAL e NTSC per la conversione in progressivo. !!!
Se volete una serie di buoni articoli sul video progressivo, vi consiglio quelli apparsi sulla rivista Digital home video theater (n.7 Nov 1999 p 47 "Scanning progressivo"; n.9 Gennaio 2000 p 42 "Tecnica del primo DVD a scanning progressivo"; n10 Febbraio 2000 "la TV digitale" p40)
Per chi non è disposto a continuare la lettura voglio chiarire una volta per tutte che utilizzare un DVD player ad uscita progressiva (progressive scan) su di un normalissimo televisore 4:3 o 16:9 di quelli in vendita sino ad oggi non produce alcun vantaggio: il player lo si dovrà utilizzare unicamente in modalità "standard" interallacciata e funzionerà come un normalissimo DVD player non progressivo
Al contrario per beneficiare della visualizzazione progressive scan occorre possedere, oltre al DVD progressive scan, un videoproiettore capace di agganciare segnali progressivi a 31,250 Khz o 31,500 Khz, un monitor od un televisore in grado di fare la stessa cosa (televisori del genere dovrebbero iniziare ad essere commercializzati, a prezzi ragionevoli, tra breve.).
Come alternativa al DVD progressive scan, si può utilizzare un DVD ad uscita non progressiva abbinato ad uno scaler esterno.
Fatta questa doverosa premessa, procediamo con ordine: mi preme sottolineare che ciò che mi appresto a dire è una trattazione abbastanza teorica poichè per quello che so mancano dei testi e una trattazione "seria" sul video progressivo; tra l'altro è difficile reperire materiale sulle diverse implementazioni nei prodotti commerciali. Restano aperte alcune questioni che non mancherò di evidenziare.
Prima di tutto occorre chiarire i termini.
La prima cosa da fare è chiarire il concetto di visualizzazione progressiva in opposizione a quella interallacciata: al di là del formato ( numero di righe, frequenza di disegno delle righe,....) un sistema video ( TV, monitor, videoproiettore) visualizza in modalità progressiva quando le righe di cui è composta la immagine vengono disegnate in ordine naturale; 1,2,3,.....N dove N è il numero di righe da cui è composto il video ( 576 per il PAL, 480 per il NTSC, 800,1024,1280... per le risoluzioni dei computer,...). Un sistema video visualizza in modalità interallacciata quando le righe di cui è composta la immagine vengono disegnate alternando righe pari e dispari ( 0,2,4,...574,1,3,5,...576 nel caso di N=576): tale metodo sfruttando la persistenza dell'immagine sulla retina, permette una buona fluidità delle immagini in movimento pur risparmiando sul numero delle righe disegnate al secondo.
Visualizzazione
in modalità interallacciata: |
Visualizzazione
in modalità progressiva: |
La tipica visualizzazione interallacciata è quella dei televisori , anche se tra breve inizieranno ad essere disponibili televisori progressive scan: al contrario i monitor dei computer visualizzano sempre in modalità progressiva.
Un qualsiasi mezzo di visualizzazione ( TV, monitor, proiettore) ovviamente è in grado di interpretare e visualizzare correttamente solo dei segnali a lui noti; pertanto un TV progressive scan per esibire le sue qualità dovrà ricevere un segnale adeguato ( fermo restante la sua compatibilità "all'indietro" con i formati oggi in uso): ecco che al PAL interallacciato, detto anche 50I si affianca un secondo formato detto segnale PAL progressivo (PAL progressivo o PAL progressive scan) detto 50P; stesso discorso per il sistema NTSC ( 60I e 60P ).
L'altra cosa da sottolineare è che le conversioni di formato possono essere fatte sia all'interno del "generatore di video" ( normalmente il player DVD), sia tramite apparati esterni ( gli scan converter, i duplicatori di linea) e sia all'interno dei TV o videoproiettori.
Voglio osservare come un segnale analogico per quello che stiamo analizzando viene definito da 4 variabili:
Vediamo i casi di maggiore interesse ( perdonatemi se mi ripeto):
PAL (interallacciato) 50I
:
è formato da 625 righe trasmesse 25 volte per ogni secondo ovvero 312.5 righe
di un semiquadro trasmesse 50 volte al secondo.
La frequenza di
riga , ovvero il numero di righe trasmesse al secondo è pari a
frequenza di
riga = 15625 Hz = 15,625 Khz = (625
righe*25 righe/s)= (312.5
righe*50 righe/s)
Delle 625 righe , 576
contengono informazioni video, mentre le altre sincronismi, segnali test,
eventuale televideo,.....
Le 576 righe sono visualizzate, come più volte detto, in maniera
interallacciata alternando 288 pari a quelle dispari (0,2,4,...574,1,3,5,...576).
Per questo motivo spesso questo formato è indicato come 576I
Ho in tutto 50 semiquadri al secondo composti da 288 righe , pari a 25 quadri al
secondo di 576 righe.
Per i più distratti ricordo che questo formato è quello che utilizziamo nel
99.99% dei casi nelle nostre case: è il segnale che è trasmesso via etere
dalle TV ed è quello all'uscita dei videoregistratori, e dei lettori DVD (ad
eccezione dei futuri progressive scan PAL) : per ricordarlo lo indicherò sempre
in rosso (PAL 50I)
o anche 576I.
PAL progressivo 50P :
è formato da 625 righe trasmesse 50 volte per ogni secondo esattamente il
doppio rispetto al caso di prima; la frequenza di riga , ovvero il numero di
righe trasmesse al secondo è pari a
frequenza di
riga = 31250 Hz = 31,250 Khz = (625
righe*50 righe/s)
Il pennello elettronico
di un televisore che visualizza pal progressivo deve avere una velocità
pertanto doppia rispetto al PAL interallacciato: se in 20 ms ( 1 sec /50) un
televisore tradizionale disegna solo le 288 righe pari ( o dispari), un tv
progressivo in grado di visualizzare pal 50P sempre in 20 ms deve essere in
grado di visualizzare tutte le 576 righe.
Delle 625 righe , 576 contengono informazioni video, mentre le altre
sincronismi, segnali test, eventuale televideo,.....Per questo motivo molte
volte questo formato è indicato come 576P
Le 576 righe sono visualizzate secondo l'ordine naturale 0,1,2,3,576.
Ho in tutto 50 quadri al secondo composti da 576 righe.
E' evidente come il PAL progressivo contiene esattamente il doppio delle informazioni video del PAL interallacciato, cioè una risoluzione teorica totale doppia ( a parità di altri fattori): storicamente il PAL come noi lo conosciamo, è nato proprio per diminuire la mole dei dati presenti nel PAL progressivo 50P ( che in termini di telecomunicazioni significa utilizzare più del doppio della banda in radiofrequenza cioè via etere), sia per le difficoltà di costruire cinescopi capaci di avere frequenze di riga pari a 31250HZ. ( oggi è una cosa banale, ma nel 1952, anno della formalizzazione del PAL, no di certo).
Tutto analogo per il sistema NTSC; ecco una tabella riassuntiva
Formato |
righe |
righe attive (contenenti video) |
Progressivo o interallacciato | Frequenza verticale | Frequenza orizzontale |
PAL 50I (576I) |
625 |
576 | Interallacciato | 50 Hz | 15625 Hz = 15,625 KHz |
PAL 50P (576P) |
625 |
576 | Progressivo | 50 Hz | 31250 Hz = 31,250 Khz |
NTSC 60I (480I) |
525 |
480 | Interallacciato | 60 Hz | 15750 Hz = 15,750 KHz |
NTSC 60P(480P) |
525 |
480 | Progressivo | 60 Hz | 31500 Hz = 31,500 Khz |
Un'altra questione da chiarire è vedere cosa si intende per segnale PAL60P detto anche PAL 60 525P.
Il sistema PAL e NTSC
oltre ad avere diverso il numero di righe (480 o 576) e frequenza
verticale (50 o 60 Hz), sono caratterizzati da una diversa maniera di
rappresentare i colori. Senza scendere nei particolari, il colore viene
"sovrapposto" al segnale B/N tramite un segnale modulato che è
caratterizzato da una portante avente frequenza diversa: 3.58 Mhz per il NTSC e
4.43 Mhz per il PAL. Detto in altre parole la maniera con cui è gestito il
colore nei segnali PAL e NTSC è radicalmente diversa.
Un vero televisore o videoproiettore multistandard deve essere in grado di
visualizzare correttamente non solo le righe e le frequenze richieste dal PAL e
dal NTSC, ma deve essere in grado di interpretare e visualizzare correttamente
il colore: in caso errato il video apparirà nel caso migliore in B/N e in certi
casi con colori falsi.
In Europa esistono modelli di TV e proiettori, in grado di visualizzare
correttamente sia video PAL che NTSC, ma anche dei sistemi che per risparmiare
sull'elettronica in grado di decodificare il colore del video NTSC, sono
compatibili con quello che è detto banalmente
PAL60P o PAL60I. Tale formato ha la risoluzione del NTSC (525 righe di cui
480 attive, freq. verticale 60 Hz, freq orizzontale 15750 Hz
nello standard interallacciato e 31500 Hz nello standard progressivo) ma
utilizza i colori nello standard PAL (portante a 4.43 Mhz) invece che lo
standard dei colori NTSC ( portante a 3.58 Mhz ).
In pratica il video PAL60P (525P) o PAL60I(525I) sono dei formati ibridi con colore PAL e scansione NTSC, compatibili con alcuni televisori e videoproiettori non perfettamente multistandard.
Con la nuova generazione di DVD player progressivi, ci sono dei modelli che per garantire una maggiore compatibilità con i futuri TV progressivi multistandard permettono l'uscita progressiva di tipo PAL 60 525P: il primo in ordine di tempo commercializzato in Italia è il lettore DVD Onkyo DV-S939 (recenzione AF digitale nov 2000 p 135).
TUTTI I DVD PLAYER IN COMMERCIO IN ITALIA SINO A POCO FA (OTT-NOV 2000) INVIANO IN USCITA SEGNALE PAL 50I ed eventualmente NTSC 60I o PAL 60I; stesso discorso per i televisori che sono compatibili solo con tali segnali.
Per una visualizzazione progressiva di video di origine DVD occorre prima di tutto un dispositivo in grado mandare in uscita video progressivo (i nuovi DVD ad uscita progressive scan PAL 50P o NTSC 60P, o l'uscita progressiva di un player sw di un computer prelevata dalla scheda video ): in caso contrario occorre prelevare l'uscita interallacciata di un DVD player ( PAL50I o NTSC 50I ) e trasformarla tramite uno scaler esterno in segnale progressivo.
La seconda cosa che
occorre è ovviamente un sistema in grado di visualizzare video progressivo: le
possibilità sono 3:
1) un televisore progressivo (in vendita da noi a prezzi decenti probabilmente a
partire dai primi mesi del 2001)
2) un videoproiettore
in grado di agganciare almeno i 31,250 Khz del PAL 50P o i 31,500 Khz del NTSC
60P
3) il monitor di un PC
Le possibili combinazioni per visualizzare i DVD in formato progressivo sono tante: ecco le più comuni.
1) Player Software di un
PC e visualizzazione sul monitor del PC : vi rimando all'articolo Dvd per Pc: il punto
per l'analisi della qualità e delle caratteristiche dei SW
disponibili. Fondamentale l'utilizzo di una risoluzione almeno pari a 1024*768.
2) Player Software di
un PC e visualizzazione con
un videoproiettore in grado di agganciare il segnale in uscita dalla scheda
video del computer.
3) Player Software di
un PC , conversione tramite uno scaler esterno dell'uscita della scheda
video in un formato progressivo
PAL 50P o NTSC 60P e
visualizzazione su un (futuro) televisore compatibile con tali formati.
4) Lettore DVD con uscita progressive scan PAL 50P
o NTSC 60P e visualizzazione tramite un videoproiettore o su un (futuro) televisore in grado di agganciare tali
segnali.
5) Lettore DVD con uscita interallacciata (PAL50I o NTSC 50I), conversione
tramite uno scaler esterno di tale uscita in un formato progressive scan PAL 50P
o NTSC 60P e visualizzazione con
un videoproiettore o su un (futuro) televisore in grado di agganciare tali
segnali.
Come vedremo in seguito nel caso di visualizzazione con i videoproiettori è possibile fare delle ulteriori conversioni verso formati ancora più ricchi di informazione video (vedi ad esempio il caso di quadruplicazione di riga).
Un altro formato analogico possibile è il PAL 25P che è il compagno perfetto del video PAL di provenienza telecine (i film) presente nei DVD; è analogo al noto PAL50I con la differenza che le righe 625 righe non sono divise in semiquadri pari e dispari, ma sono inviate 25 volte al secondo in modalità progressiva ( 0,1,2,3,...576).
In tal caso un collegamento tra un DVD compatibile in uscita con PAL 25P e televisore compatibile in entrata con tale segnale, creerebbe nel caso di video PAL di provenienza telecine,una visualizzazione molto simile a quella del cinema, fermo restando che le righe, anche se in ordine naturale, vengono disegnate una alla volta, mentre nel cinema l'intero fotogramma viene proiettato per intero.
In pratica, sempre in
questo caso, il DVD player
decomprime il singolo frame 720*576 che, una riga alla volta, è inviato al
televisore e li visualizzato .
Formato |
righe |
righe attive (contenenti video) |
Progressivo o interallacciato | Frequenza verticale | Frequenza orizzontale |
PAL 50I |
625 |
576 | Interallacciato | 50 Hz | 15625 Hz = 15,625 KHz |
PAL 25P |
625 |
576 | Progressivo | 25 Hz | 15625 Hz = 15,625 KHz |
Osservo come la frequenza verticale, per come la ho definita, nel PAL 50I è riferita ai semiquadri di 288 righe attive trasmesse 50 volte al secondo, mentre nel PAL 25P è riferita a 576 righe attive trasmesse 25 volte al secondo; il numero di righe al secondo è pertanto sempre lo stesso (15625 Hz).
Per quello che so, attualmente non esistono lettori DVD in grado di inviare segnale PAL 25P (cosa che avrebbe senso solo nel caso di visualizzazione dei film): al contrario esistono delle telecamere digitali ( vedi la Canon MV 20) che opzionalmente, grazie a CCD di tipo Progressive scan, sono in grado di memorizzare in formato DV video compatibile con il PAL 25P. Ovviamente una opzione del genere ben si presta alla conversione di video DV in formato mpeg2 non interallacciato tramite encoder ( vedi tmpeg): è possibile in tale maniera realizzare "in casa" DVD, MiniDVD, SVCD con video progressivo senza utilizzare la pellicola cinematografica e il processo di telecine.
Una ultima nota riguarda segnali ancora più ricchi di informazione video, normalmente utilizzati per i videoproiettori in cui per le grosse dimensioni dell'immagine proiettata, le righe appaiono evidenti e in futuro per la televisione ad alta risoluzione.
Come sono fatti lo si deduce per analogia dalla loro sigla; ad esempio per il PAL esistono il 864P e il 1152P ottenuti come triplicazione o quadruplicazione delle 288 righe di un semiquadro e visualizzazione progressiva a 50 Hz: per il NTSC ci sono i 720P e 960P a 60 Hz.
Nel campo dei PC , per
definire i formati video, alle
informazioni appena viste se ne aggiungono normalmente altre 2: risoluzione
orizzontale in pixel e profondità di colore in bit (il numero massimo di
sfumature di colori = 2^bit).
Ad esempio, mentre scrivo sto visualizzando sul monitor ( il mitico ViewSonic
PS790 19 pollici) un segnale di questo tipo:
Formato |
righe |
Pixels per riga | Bit per pixel | Progressivo o interallacciato | Frequenza verticale | Frequenza orizzontale |
1152*864*16 bit |
864 |
1152 | 16bit=65536 colori | Progressivo | 85.1 Hz | 77500 Hz = 77,5 KHz |
Ovviamente è possibile creare e utilizzare segnali diversi da quelli visti; i monitor analogici per computer, fermo restando la loro visualizzazione progressiva, permettono l' aggancio ad una infinità di segnali video, nei limiti delle capacità del pennello elettronico. Al esempio il tipico range di frequenze a cui si può agganciare un buon 17 pollici è 30-90KHz per le frequenze orizzontali e 50-120 Hz per le frequenze verticali .
Termino la lunga lista
dei formati accennando alla televisione ad alta risoluzione ( HDTV) che
attualmente in America raggiunge nel formato NTSC la risoluzione di 720 righe in modalità
progressiva o 1080 interallacciata, 60 Hz. I due formati brevemente sono
indicati come 720P e 1080I. Se in America le prime trasmissioni sono iniziate
verso novembre 1999, per l'Europa..... tutto tace!! Si parla in tutti i casi di
HDTV PAL a 1152 righe, con risoluzioni pari a 1440*1152 per il video 4:3 e
1920*1152 per il video 16:9.
Giacché parliamo di futuro,
un accenno all'HD DVD, secondo gli ottimisti in commercio tra almeno 5 anni:
risoluzione 1920*1080 per il NTSC e 1920*1152 per il PAL (risoluzione 5 volte superiore rispetto ai
"miseri" 720*576 del DVD), dischi da 27.4 GB per lato ( più di
tre volte rispetto gli attuali 8.5 GB di un DVD9) e massimo bitrate di 32.4 Mbit/s
rispetto ai 9.8 attuali. Considerando come attualmente neanche il più costoso
dei monitor per pc è in grado di raggiungere i 1920 pixel orizzontali,....è
veramente il formato del futuro.
Chiarite (spero) le caratteristiche dei diversi formati video interallacciato e non , la situazione si complica nel momento in cui si vogliono fare delle conversioni di formato, partendo ad esempio dal video presente sul DVD PAL o NTSC da visualizzare su TV progressivo. E'ovviamente impossibile considerare tutte le possibili combinazioni, ma voglio con degli esempi chiarire come vengono normalmente affrontate le questioni.
Il fine delle conversioni
è ovviamente quello di migliorarne la visualizzazione.
Nel caso di televisori progressivi o videoproiettori compatibili con il formato
PAL 50P e NTSC 60P, tale miglioramento si cerca di realizzarlo, quando possibile,
facendo sì che in presenza di video di provenienza cinematografica, nel quadro
televisivo NON CI SIANO righe contenenti immagini provenienti da fotogrammi
successivi, e nel caso di video interallacciato di provenienza
tele/videocamera ricreando tramite particolari tecniche la parte dell'immagine
eliminata dall'interallaccio.
Altra possibilità di conversione sta nel trattamento di film memorizzati in
NTSC tramite il metodo 3-2 PULL DOWN
per i quali è possibile migliore la visualizzazione anche sui normali
televisori compatibili con il formato PAL 50I; è quello che riescono a fare i
primi DVD player commercializzati in Italia quale il Toshiba SD-900E
Consideriamo come supporto video il DVD che nel caso di DVD PAL lo vedo come un insieme di 25 frame/s aventi dimensioni in pixel pari a 720*576; nel caso NTSC 720*480 , 30 frame al secondo.
Le considerazioni che faccio non cambiano di molto nel caso la sorgente video non è il DVD, ma un qualsiasi altro formato digitale o analogico.
Occorre considerare tutte le combinazioni che derivano dalle seguenti possibilità
Non oso immaginare il trattato che uscirebbe se dovessi descrivere tutte le combinazioni possibili: i principi e i metodi comunque sono sempre gli stessi e alla base di questi ci sono 2 operazioni: riordinare le righe video secondo convenienza o ottenere righe video interpolando o banalmente duplicando le linee già esistenti.
Riguardo gli
elaboratori esterni di video che possono essere genericamente chiamati
"processori video", normalmente prendono il nome di SCALER
se in ingresso prelevano un segnale interallacciato di tipo PAL
50I (576I) o NTSC 60I
(480I) ( normalmente tramite una presa S-Video minidin 4 poli , o video
composito o a componenti separati RGB o YUV) e in uscita creano un segnale
progressivo PAL 50P , NTSC 60P o superiori.
Al contrario si chiamano SCAN
CONVERTER quando
prelevano segnale progressivo ( tipicamente le uscite di un PC) e creano segnale
interallacciato in uscita.
Da osservare come gli scaler attualmente in commercio utilizzano i chip di conversione ( vedi i chip Genesis) presenti negli attuali e futuri DVD player a scanning progressivo; normalmente uno scaler garantisce una flessibilità maggiore con costi normalmente elevati.
I contenuti video nei DVD: l'ordine delle righe nel frame 720*576 o 720*480
La prima cosa che è fondamentale capire è l'ordine con il quale sono inserite le righe nel frame mpeg 720*576 (o 720*480).
I casi sono parecchi e ne elencherò spero tutti; seguiranno alcuni esempi che descrivono come eventualmente elaborare tali video. Per testare in prima persona quello che dico sul frame mpeg è sufficiente avere un Pc e un DVD player in grado di forzare la visualizzazione del il video su monitor in modalità Weave e di permettere l'avanzamento di un fotogramma alla volta ( es. il software Power Dvd o il sw Cinemaster o WinDVD+ DVD Genie http://www.inmatrix.com/) . I nomi che userò per descrivere i diversi casi è personale e non ha alcuna valenza di universalità.
Vediamo in dettaglio gli 8 casi e in seguito i possibili metodi di elaborazione.
1) Video PAL "Progressivo
Puro": è il
caso del 99.9% dei film in DVD in cui il frame 720*576 Mpeg lo si è ricavato
tramite operazione di telecine da pellicola cinematografica che è fatta
scorrere a 25 fps invece che i canonici 24 fps: l'effetto secondario di tale
velocizzazione delle immagini è l'aumento della tonalità dell'audio di un
fattore pari al 4.2% (25/24=1.042), difficile da avvertire ad orecchie non
allenate, e una diminuizione della durata del video sempre dello stesso fattore:
ogni ora di film è visualizzata in 57 minuti e mezzo (60 min *0.042=2.52min).
Ciascun frame 720*576 contiene la esatta digitalizzazione del relativo fotogramma
cinematografico, ovviamente a meno degli artefatti dovuti alla compressione mpeg
( eventuali quadrettature, solarizzazioni....).
Dei Trailer normalmente presenti tra i "servizi speciali" dei DVD
all'incirca il 75% sono compressi in questa maniera; la loro inferiore qualità
spesso dipende dalla quasi totale assenza di restauro degli originali e dalla
minore cura che normalmente si dedica a loro; non mancano le eccezioni,
uno tra tutte i trailer di "Lost in space" dotato di qualità
elevatissima, paragonabile a quella del film.
E' il caso più semplice da
trattare.
2) Video PAL "Progressivo
sfasato": è
un caso molto raro in cui partendo da telecine di pellicola cinematografica il frame 720*576 Mpeg contiene le righe pari e
dispari appartenenti a fotogrammi consecutivi e sempre nello stesso
ordine;
il frame 1 contiene le righe pari del fotogramma 1 e le dispari del 2
il frame 2 contiene le righe pari del fotogramma 2 e le dispari del 3
il frame 3 contiene le righe pari del fotogramma 3 e le dispari del 4
.......
tempo |
0 ms |
40 ms | 80 ms | 120 ms | 120 ms |
frame cinematografico |
|||||
frame 720*576 Mpeg |
....... |
Tale video è il
risultato di un errore dovuto alla cattiva realizzazione del telecine che in fase di
compressione mpeg2 può essere preventivamente corretto con dei banali
riordinatori di linee che ricostruiscono il fotogramma.
Un caso che ho tra le mani è il
film "I ladri" interpretato da Totò e allegato alla rivista DVD
Magazine n.6 che deriva sicuramente dalla compressione in mpeg2 di un vecchio
master non realizzato per creare un DVD, caso in cui il problema
dell'ordine dei campi è assolutamente secondario. E' l'effetto che riesco ad
ottenere , come già visto, digitalizzando l'uscita video della scheda DVD
Creative DXR-2 con la Marvel g200, schede che utilizzano una convenzione dei
semiquadri ( Field A o B) opposta.
Tra gli altri rari esempi compressi in questa maniera alcuni trailer di
film tra cui quello del "La vita è bella (CG)" e "American
Pie (Rivista Tutto DVD n.1)"
Un esempio, aimè clamoroso, di "progressivo sfasato" lo si trova nel
recente "Indipendence day" in cui tale problema si manifesta in circa
il 70% del film; la causa di un tale errore la si può forse ricercare nella
doppia conversione
Film 24fps ---> Ntsc 30 fps ( con la tecnica pull-down che analizzerò dopo)
--->
Pal 25fps, conversione che se fatta correttamente su video non compresso
dovrebbe permettere una conversione perfetta : un errore di conversione su di un
solo fotogramma porta alla "reazione a catena" che crea lo sfasamento
tra i campi.
I semiquadri possono essere in teoria riordinati, tra l'altro in maniera banale,
come fa ad esempio (non in tempo reale), il filtro "smart deinterlace"
di virtual dub. Una implementazione via HW di tale correzione, che
riporterebbe il video al caso 1 (a cui è possibile applicare eventualmente
altre elaborazioni ) è possibile grazie ai "deinterallacciatori"
intelligenti, che analizzerò in seguito.
Da osservare come non esiste un analogo caso con il NTSC, in cui il video
cinematografico, come vedrò, è convertito in maniera diversa con la tecnica
del 3:2 Pull- Down.
3) Video PAL "Progressivo Puro con eccezioni": lo inserisco più come curiosità, a prova di quanto numerosi possono essere i casi possibili. E' il caso del trailer di DIE HARD di CG, DVD di qualità scadentissima al limite del VHS, ma passato alla storia per essere stato il primo DVD commercializzato in Italia ( tra l'altro non è neanche criptato con il codice Css). In pratica in questo trailer vengono memorizzati correttamente in progressivo i fotogrammi ( come nel caso 1) con l'eccezione delle transizioni tra le diverse scene ( brevi crossfade) in cui il video è chiaramente interallacciato (si vedono le tipiche discontinuità tra semiquadri). Non vorrei giurarci , ma è molto probabile che l'autore di questo "pezzo raro" abbia montato il video utilizzando un sw di editing non lineare inserendo (spero per dimenticanza) l'opzione di interallaccio nel calcolo da parte del programma delle transizioni. Niente ovviamente di grave!!!! Lo riporto anche perchè una cosa del genere mi è personalmente capitata nel montaggio di alcune animazioni in CG rigorosamente progressive, in cui Premiere 5 nelle transizioni creava l'interallaccio: ovviamente basta settare il giusto parametro nelle opzioni di premiere e le transizioni vengono così calcolate correttamente.
4) Video PAL o NTSC "Interallacciato puro"; è il caso di video PAL 720*576 25 fps realizzato tramite video/telecamera PAL e memorizzato ovviamente in maniera interallacciata; idem per caso NTSC (720*480*30fps) realizzato con tele/videocamere Ntsc. Ricordo, ancora una volta, che nel caso PAL la tele/videocamera fissa l'immagine 50 volte al secondo ed invia ogni 20 ms ( 1 sec /50) alternativamente i campi pari ( 288 righe attive) e dispari ( le rimanenti 288 righe), righe che vengono inserite nel frame 720*576 25 volte al secondo . Pertanto il frame mpeg pur aggiornato 25 volte al secondo contiene informazione video immortalata 50 volte al secondo. Ecco uno schema nel caso PAL:
immagine |
1 |
2 | 3 | 4 | 5 | 6 |
tempo |
0 ms |
20 ms | 40 ms | 60 ms | 80 ms | 100 ms |
immagine ripresa dalla tele/videocamera che apre l'obbiettivo ogni 20 ms ( 50 fps) |
||||||
le 288 righe che sono inserite nel frame mpeg 720*576; il bianco indica come le corrispondenti righe sono semplicemente scartate |
||||||
ciò che è memorizzato nel frame mpeg 720*576 (ogni 40 ms cioè 25 volte al sencondo) |
La tipica
elaborazione video che è possibile fare su tale materiale, in presenza di tv
progressivi o videoproiettori capaci di aggiornare 50 volte al secondo tutte le
righe in ordine naturale, è quella di recuperare artificialmente l'informazione
video scartata, ovvero le righe pari o dispari che nello schema ho disegnato in
bianco. Il metodo utilizzato è detto genericamente "duplicazione di linea
" (ne parlerò in seguito)
I contributi video memorizzati in questa maniera sono quelli di chiara
provenienza video/telecamera: i video musicali e sopratutto i servizi
speciali realizzati nello stesso formato in cui sono distribuiti ; ad
esempio filmati realizzati con telecamere PAL e memorizzati su DVD PAL e
quelli realizzati con telecamere NTSC e memorizzati su DVD NTSC. Nel caso
PAL poiché le grandi produzioni sono americane , troviamo contributi di questo
genere solo nel caso di produzioni tipicamente italiane, prime tra tutte quelle
realizzate da Cecchi Gori : vedi i servizi speciali dei film quali "La vita
è bella" o le interviste che CG da qualche mese a questa parte inserisce
nel caso di film italiani. Ovviamente all'aumentare delle produzioni italiane, i
contributi di questo tipo in PAL tenderanno ad aumentare.
5)
Video "interallacciato
convertito"; è
il caso di video interallacciato puro ( il caso di prima) PAL convertito in
NTSC o NTSC converito in PAL; questo secondo caso è frequentissimo nei
servizi speciali presenti nella maggior parte dei DVD in commercio realizzati
dalle "grandi" Warner, Paramount, Columbia,.... Ovviamente un
formato di questo tipo (NTSC interallacciato convertito in PAL
interallacciato) è caratterizzato da una fluidità artificiale, poichè si
tratta di trasformare 60 semiquadri al secondo in 50 e da una risoluzione
inferiore poichè occorre ricavare 576 righe a partire da 480; in tutti i casi
la qualità pur inferiore al PAL interallacciato puro è quasi sempre
accettabile: del resto è noto come la qualità video dei "servizi
speciali" non è quasi mai paragonabile a quella del film.
L'elaborazione ideale da fare con video di questo tipo è la ricostruzione del
video originale ovvero la riconversione " al contrario". In teoria una
perfetta ricostruzione ( ad esempio dei 60 semiq./s originali NTSC) diventa
impossibile, sia perché parte dell'informazione è andata perduta, sia perché
il montaggio degli spezzoni video crea un ordine imprevedibile nel susseguirsi
delle righe, così che è impossibile un riordino sistematico (cosa che al
contrario si fa con successo nel caso di video cinematografico NTSC da
convertire in PAL, come vedremo dopo). Nella pratica video del genere può
essere trattato, con risultati qualitativamente inferiori, immaginandolo
come interallacciato puro.
6) Video "elaborato con filtro blend". Ricordo brevemente come il blend è un tipo di filtraggio che cerca di trasformare video interallacciato in progressivo eliminando le tipiche discontinuità dovute all'interallacciamento e cercando di simulare l'effetto prodotto al nostro occhio dall'oggetto in movimento . Come è realizzato lo ho visto prima (clicca qui )
tempo |
0 ms |
20 ms | ||||
immagini reali | ||||||
linee video utilizzate |
|
|
||||
frame
interallacciato ottenuto |
||||||
frame dopo il filtraggio blending |
Gli esempi di video
memorizzato in questa maniera sono relativamente pochi, e sono nel caso di
trailer di film il tentativo di eliminare l'interallacciamento presente nei
master video in possesso (cosa evitabilissima poichè i trailer contengono
sempre video di origine cinematografica) e nel caso di servizi speciali;
è una scelta forse motivata da un cattivo stato dei video magari convertiti più
volte in formati diversi. Due esempi: i trailers di Dragon Heart e i servizi
speciali di "Lost in space".
La caratteristica di tali video è la presenza di immagini non molto dettagliate
e del tipico "effetto" fantasma, dovuto alle scie che si creano nei
soggetti in movimento. E' fondamentale per le immagini di questo tipo un
trattamento analogo alle immagini di tipo "progressivo puro".
7) Video NTSC " 3:2 Pull Down ": sono i film che per essere convertiti in NTSC sono trattati con il noto metodo "3:2 Pull Down". Con tale metodo, i diversi frame MPEG 720*480 30 fps devono essere letteralmente composti a partire dalle immagini presenti su pellicola che scorre a 24 frame al secondo: lo standard utilizzato funziona suddividendo la pellicola cinematografica in gruppi di 4 fotogrammi che devono comporre 5 frame NTSC. (non a caso 5/4 = 30/24)
1 |
2 | 3 | 4 | |
fotogramma cinematografico 24 fps digitalizzato 720*480 |
1 |
2 | 3 | 4 | 5 | |
frame 720*480 NTSC (30 fps) |
|||||
note |
il frame 1 coincide con il fotogramma 1 | il frame 2 coincide con il fotogramma 2 | il frame 3 è composto dalle righe pari del fot. 2 e dalle dispari del fot. 3 | il frame 4 è composto dalle righe pari del fot. 3 e dalle dispari del fot. 4 | il frame 5 coincide con il fotogramma 5 |
E' evidente come 2 frame
NTSC su 5 sono a tutti gli effetti interallacciati nella stessa maniera del caso
2 (progressivo sfasato), mentre i rimanenti si possono considerare come
"progressivi puri". Noto inoltre come l'ordine preciso di composizione
usato da questa tecnica permette la possibilità di recuperare intatti i frame
cinematografici originali. La presenza di righe ripetute (le righe pari del
fotogramma 2 e le dispari del 4 ) è contemplata dalla sintassi dell'mpeg che
permette con il tag "repeat_field_information" di memorizzare le righe
ripetute una sola volta con un notevole risparmio nei confronti del bitrate.
Il video NTSC " 3:2
Pull Down " lo si riconosce facilmente con
l'avanzamento di un fotogramma alla volta grazie al fatto che si alternano
sempre nello stesso ordine i 3 frame "progressivi" a 2
interallacciati.
Il tipo di elaborazione possibile su questo materiale è quella di ricostruire i
24 frame progressivi tramite il metodo "3:2 Pull Down inverso"
e di visualizzarli in modalità progressiva.
8) Video PAL "effetto
marmellata";
scusate il termine molto poco ortodosso ma non mi viene un nome più consono per
definire casi del genere; è il caso di video presente in alcuni trailer e
nella gran parte dei "video speciali" presenti nelle grandi produzioni
americane e poi riconvertite nel sistema PAL. Sono i casi in cui non c'è alcuna
possibilità di riconoscere un ordine prevedibile nei campi pari e dispari che
compongono il frame mpeg, cosa dovuta ad un numero eccessivo di passaggi che
precedono la costruzione del frame PAL. Un esempio tipico sono ad esempio molti
dei trailer Walt Disney (Tarzan, Toy Story 1 e 2 ,......) in cui si
sommano gli effetti della conversione pellicola--> NTSC 30 fps con la tecnica
3:2 Pull-Down, del montaggio video in formato NTSC interallacciato in cui sono
assemblate le diverse scene, e alla fine un nuovo montaggio questa volta dopo la
conversione in PAL
con la scritta dei titoli in italiano: il risultato è qualitativamente scarso
poichè si alternano senza alcun ordine prevedibile frame contenenti
correttamente un singolo fotogramma a frame che al loro interno contengono campi
di fotogrammi successivi: non mancano altri effetti deleteri dovuti alla
compressione mpeg che a causa della presenza dei frame di tipo B (che calcolano
le differenze con fotogrammi successivi o passati) creano delle immagini
all'interno del quale ci sono addirittura parti di 3 fotogrammi cinematografici: due dovuti
all'interallacciamento ( campi pari e dispari di fotogrammi differenti) e il
terzo dovuto agli "echi" prodotti dalle differenze riportate dai frame
B; la cosa è molto evidente nei cartoni animati grazie alla presenza dei colori
uniformi che evidenziano difetti di questo tipo, ma presente anche nel caso di
alcuni trailer cinematografici.
A prova che la causa di tale "marmellata" è dovuta ai numerosi
passaggi che subiscono i singoli fotogrammi, basta dare una occhiata al trailer
sempre Disney di "T come Tigro" ( che segue quelli appena citati) in
cui tutti i frame sono mantenuti progressivi senza la presenza di frame
contenenti campi successivi; la cosa si spiega poichè il trailer è
chiaramente ottenuto dal banale telecine di un trailer cinematografica fatto
direttamente in PAL (si riconosce la tipica grana cinematografica di una
pellicola di qualità solo sufficiente e alcuni piccoli graffi); si vedono solo
delle linee di interallaccio nei punti in cui compaiono delle scritte in
italiano, chiaramente aggiunte in fase di montaggio e non presenti sulla
pellicola.
L'altro caso in cui si ha un effetto "marmellata" , è quello dei
tipici servizi speciali, dietro le quinte,.....ecc. a corredo dei film prodotti
dalle "grandi"
Warner, Paramount, Columbia...: le cause sono le stesse dei casi dei
trailer, e cioè l'insieme di materiale di diversa provenienza, il tutto montato
in NTSC e poi convertito in PAL: normalmente a spezzoni di film ottenuti con la
tecnica 3:2 Pull-Down si sommano contributi video registrati in interallacciato
puro NTSC ( le interviste, le riprese dal set,...); il montaggio finale viene
poi convertito in PAL 25 fps.
In alcuni casi, gli spezzoni cinemategrafici contenuti all'interno di tali video
variano dal progressivo puro a quello "sfasato" ma in scene diverse
(un esempio evidente gli spezzoni dell'animazione nel servizio "Tarzan
diventa internazionale", variazioni che si hanno ai cambiamenti di
scena), in altri casi i contenuti cinematografici sono presenti con
un misto imprevedibile di frame progressivi o sfasati, anche all'interno della
stessa scena ; un esempio di questo comportamento i servizi speciali di Wild
Wide West.
Per materiale di questo genere ricostruire i frame cinematografici originali o i
frame interallacciati NTSC è difficilissimo (vedremo poi un possibile metodo), e come nel caso
5
di video "interallacciato
convertito" video di questo tipo può essere trattato nella stessa maniera
di un interallacciato puro PAL.
Una curiosità: nella ricerca di un eventuale ordine presente negli spezzoni
cinematografici inseriti nei "servizi speciali" ( andavo alla ricerca
o di frame progressivi puri o di frame con l'ordine 3:2 pulldown) mi sono
imbattuto nel video dedicato agli effetti speciali, del mitico film
"Contact"; in molti degli spezzoni presi dal film è presente un
particolare ordine nella successione dei fotogrammi: 4 fotogrammi
interallacciati ed uno progressivo !!. Non mi chiedete come questa strana
combinazione si è venuta a creare, ma c'è ed è immortalata tra i bit di quel
DVD; misteri delle conversioni !!!
Elaborazioni possibili: deinterallacciamento, duplicazione di linee
Vediamo adesso
come è possibile elaborare i diversi tipi di video per visualizzarli in
progressivo; segue una
lista di alcune possibili elaborazioni e conversioni di formato.
1) Video PAL
"progressivo puro": ciascun frame 720*576 contiene un fotogramma cinematografico intero.
Il primo caso che esamino è quello attualmente non realizzabile attualmente (
dicembre 2000), per mancanza
di HW: lettore DVD che a partire dai frame 720*576 invia video nel formato
progressivo PAL 50P (576P) e un televisore o videoproiettore che visualizza tale
segnale. DVD player capaci di inviare in uscita video
progressivo PAL 50P dovrebbero essere disponibili a partire dai primi mesi del
2001.
Per il lettore DVD la conversione da fare è banale: decompresso il frame
720*576 questo viene inviato due volte di seguito in maniera progressiva ( le
righe sono inviate con l'ordine naturale 1,2,...576). Il frame deve essere
inviato due volte poichè occorre convertire l'mpeg che scorre a 25 fps in video
progressivo a 50 fps.
0 ms |
20 ms | 40 ms | 60 ms | 80 ms | 100 ms | |
frame mpeg 720*576 25fps creato ogni 40ms e contenente video PAL "progressivo puro" |
||||||
segnale PAL 50P (576P) creato dal lettore DVD:ciascun quadro completo di 576 righe è inviato e visualizzato da tv progressivo o videoproiettore ogni 20 ms (50 fps) |
Ovviamente un tv progressivo può poi fare tutte le elaborazioni possibili sul segnale ricevuto: la più banale è la visualizzazione a 100 Hz che si può ottenere utilizzando un buffer di memoria che memorizza il frame ricevuto ogni 20 ms e che lo visualizza 2 volte , a distanza di 10 ms: il risultato è un video più stabile (minori sfarfallamenti) grazie al refresh doppio (100 Hz progressivi invece che 50 Hz).
0 ms |
10 ms | 20 ms | 30 ms | 40 ms | 50 ms | 60 ms | 70 ms | |
frame mpeg 720*576 25fps creato ogni 40ms e contenente video PAL "progressivo puro" |
||||||||
segnale PAL 50P (576P) creato dal lettore DVD:ciascun quadro completo di 576 righe è inviato ogni 20 ms (50 fps) |
||||||||
TV o videoproiettore 100 Hz : visualizzazione del frame ogni 10 ms |
E' chiaro poi come la conversione da PAL 50P (576P) a video 100 Hz può essere fatta da uno scan converter direttamente sul segnale PAL 50P.
La seconda possibilità, sempre nell'ipotesi di video progressivo puro, è quella di creare video progressivo PAL 50P (576P) a partire da una normale uscita interallacciata PAL 50I (576I) di un DVD player non progressivo ( es la uscita S-Video di un qualsiasi modello di DVD player in vendita sino ad oggi) : una elaborazione del genere la realizza normalmente uno scaler ( processore video esterno) tramitequello che è chiamato "metodo di deinterallacciamento" che produce risultati accettabili SOLO NEL CASO DI video progressivo puro. Negli altri casi occorre procedere diversamente, come vedremo.
In pratica per fare il
deinterallacciamento lo scaler
attende l'arrivo dei 2 semiquadri (pari e dispari) presenti nel segnale
PAL 50I (576I), e
tramite un buffer di memoria memorizza le righe ricevute; dopo aver così
ricostruito il frame progressivo, lo scaler crea il segnale progressivo
PAL 50P (576P)
inviando il frame 2 volte di seguito dovendo creare un un 50 fps progressivo
rispetto al 25 fps memorizzato su DVD.
Riporto uno schema in cui sono visualizzati in parallelo il segnale PAL
50I prima della
conversione , la relativa visualizzazione su TV standard e il segnale PAL 50P
dopo la conversione, come viene visualizzato su TV progressivo o videoproiettore
compatibile con il formato.
tempo |
0 ms |
20 ms | 40 ms | 60 ms | 80 ms | 100 ms | 120 ms |
frame mpeg 720*576 25fps creato ogni 40ms e contenente video PAL "progressivo puro" |
|||||||
segnale PAL 50I (576I): ciascun semiquadro è inviato ogni 20 ms |
|||||||
visualizzazione su tv standard (interallacciato) |
|||||||
segnale PAL 50P(576P) creato dallo scaler: ciascun quadro completo di 576 righe è inviato e visualizzato da tv progressivo o videoproiettore ogni 20 ms (50 fps) |
Il vantaggio di una conversione del genere è evidente: il TV progressivo visualizza sempre immagini contenenti il frame cinematografico completo, cosa che non succede nel caso di TV standard con segnale PAL 50I.
E' evidente poi come con il metodo del raddoppio dei frame, visto prima, è possibile visualizzare il tutto a 100 Hz.
Da osservare come una
conversione diretta realizzata dal player DVD rispetto al metodo dello scaler
esterno teoricamente permette una qualità superiore poichè elimina un
passaggio di doppia conversione digitale analogica e viceversa dovuta
all'utilizzo di un hw esterno.
Poichè quella vista è solo una delle possibili operazioni realizzabili sul
video, sia per i DVD player che per gli scaler, occorre selezionare tale tipo di
elaborazione che può essere chiamata in modi diversi: de-interlacing, cinema
mode, film mode..... Un eventuale riconoscimento automatico dovrebbe essere
abbastanza semplice ( la fanno tranquillamente i DVD player sw per PC) grazie
alla mancanza di discontinuità tra righe nel frame mpeg.
Un'altra questione da
chiarire è se esiste la possibilità dei DVD player di capire la provenienza
cinematografica del video , prelevandola dalla sintassi mpeg: non so se c'è
qualche DVD player che lo fa, ma se lo facesse CADREBBE IN UN CLAMOROSO
ERRORE!!!! Per quello che ho visto analizzando alcuni file VOB, anche i film
progressivi puri sono compressi con l'opzione mpeg2 frame/interlaced; tale dato
ingannerebbe il DVD player facendogli credere di avere a che fare con un video
interallacciato puro.
Ricordo che l'opzione mpeg2 frame/interlaced LASCIA LIBERTA' all'encoder di fare
la compensazione del moto riferendosi o ai due semiquadri 720*288 o
all'intero quadro 720*576. Nel caso dei film tale opzione viene utilizzata solo
in minima parte dall'encoder poichè nella realizzazione della compensazione del
moto per ogni macroblocco dovendo scegliere se riferirsi al frame o ai due
semiquadri , l'encoder raramente fa riferimento ai semiquadri poichè la
mancanza delle righe di interallaccio rende conveniente la compensazione del
moto riferita al frame intero; lo ho verificato con sw di analisi dei vettori di
compensazione del moto (sw Pixel tools Mpeg repair 1.58) in cui si evince come normalmente al max 1% dei
macroblocchi sono compensati con il metodo field. (per approfondimenti sull'mpeg
vi rimando al relativo articolo
del mio sito).
Voglio citare altre due
possibili elaborazioni, che si possono fare su tale video.
La prima è la possibilità di rallentare il flusso audio/video dai 25 fps al
secondo dell'mpeg ai 24 fps della versione cinematografica originale: per
l'audio occorre diminuire la velocità del 4.2%, cosa banale da fare quando
l'audio è stato decompresso in PCM, ovvero all'uscita multicanale del decoder
ac3 o DTS eventualmente presente nel DVD player o nel decoder multicanale
esterno ( è una semplice operazione di ricampionamento): al contrario chiedere
ad un lettore DVD di leggere il flusso ac3 , decomprimerlo, ricampionarlo,
riconvertirlo in ac3 (occorre un encoder ac3 all'interno del player) per poi
inviarlo nella tonalità corretto all' uscita ac3 è improponibile.
Riguardo il rallentamento del video da 25 a 24 frame al secondo considerando
come in uscita si ha a disposizione un segnale
PAL 50P (576P), occorre procedere sempre al raddoppio dei singoli frame ( il caso
25-->50) a cui si devono aggiungere per ogni secondo altri due frame ottenuti
ovviamente come ripetizione di frame già presenti. In breve occorre ricavare da
ogni gruppo di 25 frame mpeg 52 frame da inviare ovviamente in formato PAL 50P a
50 fps: per minimizzare gli artefatti di moto la ripetizione di 3 frame invece
che di 2 va fatta in punti equidistanti, come in figura.
Ecco indicati in una tabella i frame da inviare per avere il rallentamento da 25
a 24 fps e uscita 50 fps progressiva:
frame mpeg originali a 25 |
1 | 2 | 3 | 4 | ...... | 10 | 11 | 12 | 13 | 14 | .... | 23 | 24 | 25 |
frame ricavati per ripetizione da inviare all'uscita progressiva a 50 fps | 1 1 | 2 2 | 3 3 | 4 4 | ..... | 10 10 | 11 11 | 12 12 12 | 13 13 | 14 14 | .... | 23 23 | 24 24 | 25 25 25 |
Voglio osservare come il metodo dell'inserimento equidistante di frame ripetuti ( e della loro eliminazione) è il metodo utilizzato per trasformare formati aventi velocità diverse: nel nostro caso con metodi analoghi è possibile convertire tra loro i formati 24,25,30 fps progressivi in formati progressivi a 50, 60 o 100 Hz.
Una seconda possibile
elaborazione da fare su video progressivo di origine cinematografica è un
qualcosa che probabilmente non sarà mai realizzata e che la vedo più come un
argomento di tesi universitaria piuttosto che di applicazione commerciale:
l'idea è quella costruire una specie di "macchina del tempo" che
riesca a ricreare 50 fotogrammi diversi a partire dai 24 (25) cinematografici;
dati cioè due fotogrammi a distanza di 40 ms, ricrearne quello intermedio : in
pratica cercare di simulare matematicamente ciò che una ipotetica cinepresa
riprenderebbe ogni 20 ms ( 50 fps) nota la ripresa fatta ogni 40 ms (25 fps).
Senza approfondire la cosa in certe situazioni ( vedi panning o zoom)
l'operazione non dovrebbe essere particolarmente difficoltosa; ben diverso il
discorso di scene "meno prevedibili"; occorrerebbe utilizzare
tecniche quali il morphing, la predizione del movimento, la sintesi vettoriale e
la recentissima elaborazione frattale dell'immagine che permette di sintetizzare
e quindi modificare immagini complesse ma fondamentalmente
"prevedibili" quale gli alberi, le nubi,... la tettoia di una
casa,..... Ovviamente per applicazioni di questo tipo funzionanti in tempo reale
occorrono potenze di calcolo elevatissime, niente a che vedere con quelle che
servono per realizzare una banale interpolazione tra righe.
Mi fermo qui: per quello che so l' mpeg 4 dovrebbe iniziare ad utilizzare
concetti analoghi a quelli visti: in pratica si tratta di non vedere più i
singoli fotogrammi video come banali bitmap ma di cercare di sintetizzarli
matematicamente, in analogia a quanto in maniera molto semplificata fanno i
programmi di conversione di immagini bitmap in raster (vettoriali). Il video
risultante è la somma di diversi strati (layer) alcuni dei quali
descritti matematicamente (oggetti 3d, simulazioni di volti o corpi sintetici,
testi vettoriali,...) ed altri prodotti tradizionalmente come successione
di bitmap.
2) Video PAL "Progressivo sfasato": ricordo che è un caso molto raro in cui partendo da telecine di pellicola cinematografica il frame 720*576 Mpeg contiene le righe pari e dispari appartenenti a fotogrammi consecutivi e sempre nello stesso ordine.
E' il classico caso in
cui in teoria è possibile ricostruire il frame mpeg originario semplicemente
rimettendo a posto i campi ( basta sfasare di uno l'ordine delle righe cosa che
il filtro smart deinterlace di virtual dub esegue senza alcuna difficoltà ); in
questa maniera ci si riporta al caso 1 appena analizzato e sono possibili tutte le
elaborazioni viste.
Nella pratica uno scaler di qualità dovrebbe essere in grado riconoscere
l'origine cinematografica di tale video e di ricostruirlo: questo perché
diversamente dal caso di
elaborazione all'interno del DVD player di flussi mpeg2 in cui gli esempi di progressivo sfasato sono solo
delle eccezioni, nel caso di elaborazione di PAL50I da parte di uno scaler la cosa è molto frequente a
causa della possibile libertà nella scelta dell'ordine con cui vengono gestiti i
semiquadri nelle operazioni di telecine.
A riguardo ricordo i due casi, già accennati, sperimentati in prima persona: le schede DVD hardware Creative DXR2 e DXR3 che in presenza di video cinematografico (film) mandano come segnale di uscita PAL50I in un caso un ordine dei campi progressivo puro e nell'altro progressivo sfasato ; il secondo esempio è il già citato film TV "Giuseppe", girato su pellicola e disponibile su 2 VHS, che nel primo VHS invia video progressivo puro e nell'altro sfasato.
Analizzando le uscite dei DVD player in commercio (sono pronto a scommettere che c'è qualche player che interpreta liberamente l'ordine dei campi) o i segnali delle trasmissioni televisive di film , i casi di progressivo sfasato sono in realtà tutt'altro che una eccezione..
Da osservare che
l'interpretazione del tipo di video "progressivo sfasato" con relativa
correzione , deve essere fatta in automatico dallo scaler vista l'impossibilità
dell'utente di accorgersi di un problema del genere; tra l'altro il problema si
può presentare solo in alcune scene, come nel caso di Indipendence Day (il 70%
circa) .
Pertanto tale caso, che ripeto è in teoria facilissimo da trattare, viene
risolto dai metodi "intelligenti" che vedrò nel caso 4) in cui
analizzerò anche le conseguenze di un mancato riconoscimento e dell'errato
trattamento di tale video come "interallacciato puro".
3) Video PAL "Progressivo Puro con eccezioni"; è il caso rarissimo di video progressivo puro ad eccezione delle transizioni tra le diverse scene in cui il video è interallacciato puro. Una eventuale elaborazione come nel caso 1 di video progressivo andrebbe benissimo tranne nei momenti in cui ci sono le eccezioni ( le transizioni) in cui avrei gli stessi artefatti che ci sono nel caso in cui si applica erroneamente il metodo di deinterallacciamento (appena visto nel caso 1) in presenza di video interallacciato puro: artefatti che analizzerò nel prossimo caso.
4) Video PAL "Interallacciato Puro": è il caso di video PAL ripreso da una video/telecamera e riversato su DVD. Ricordo come in questo caso il frame mpeg 720*576 25fps contiene al suo interno righe che derivano da 2 immagini successive distanti 20 ms, cioè relative ad una velocità di 50 fps: riporto lo schema visto prima.
immagine |
1 |
2 | 3 | 4 | 5 | 6 |
tempo |
0 ms |
20 ms | 40 ms | 60 ms | 80 ms | 100 ms |
immagine ripresa dalla tele/videocamera che apre l'obbiettivo ogni 20 ms ( 50 fps) |
||||||
le 288 righe che sono inserite nel frame mpeg 720*576; il bianco indica come le corrispondenti righe sono semplicemente scartate |
||||||
ciò che è memorizzato nel frame mpeg 720*576 del DVD (ogni 40 ms cioè 25 volte al secondo). |
L'elaborazione da fare in
presenza di una uscita 50 Hz progressiva è quella di cercare di ricreare le
immagini riprese a 50 fps, ricostruendo artificialmente le righe
irrimediabilmente scartate, sfruttando il fatto che il formato PAL
50P(576P) garantisce la possibilità di visualizzare 50 immagini complete ( 576
righe) del tutto indipendenti e distinte tra loro.
Nei casi visti fino ad adesso non ho sfruttato tale caratteristica perchè
l'immagine originale immortalata su pellicola conteneva video a 25 fps, cosa che
mi obbligava a ripetere 2 volte il frame, dopo averlo ricostruito: altro che
immagini distinte.!!
Voglio osservare come
attualmente gli unici "oggetti" capaci, a costo umano, di creare video
PAL50P al massimo delle sue caratteristiche (50 immagini, 576 righe preogressive
e indipendenti tra loro ) sono i computer (cosa fattibile anche in tempo
reale, vedi i vari giochi tridimensionali); ovviamente serve uno scan converter
per trasformare l'uscita di un PC nel formato standard PAL50P (576P) o
superiore.
Videocamere e telecamere in grado di produrre in nativo PAL50P non esistono per
il mercato consumer, e peggio ancora nessuno degli standard oggi in uso
consentono la memorizzazione di un formato di questo genere ( al contrario
soluzioni proprietarie sono implementabili con relativa facilità): l'mpeg 2 (main
profile e main level) si ferma inesorabilmente ai 25/30 fps nei casi PAL e NTSC.
I 50 fps sono previsti nel high profile e main level che sono alla base della tv
ad alta definizione (HDTV).
Il problema dell'elaborazione si sposta quindi nel ricreare le 288 righe che sono state ignorate in fase di digitalizzazione a causa dell'interalacciamento: tale operazione deve essere fatta per tutti i 50 semiquadri presenti nel video PAL 50I. L'operazione da fare nel caso di elaborazione fatta dal DVD player è:
1) isolare dal frame mpeg 720*576 (25 fps) |
i due semiquadri di 288 righe (pari e dispari) | appartenenti a istanti distanti 20ms ( 50 fps) |
2) ricreare con particolari tecniche (che vedremo dopo) il frame completo a partire dalle righe note |
|
|
Per comodità di visualizzazione le righe ricostruite le disegno con la R.
Nel caso in cui l'operazione viene fatta da uno scaler esterno collegato all'uscita interallacciata del player DVD, concettualmente non cambia nulla: lo scaler deve avere un buffer di memoria in cui accumulare le 288+288 righe ricevute dal segnale di ingresso ( invece che dal decoder mpeg2), per poi elaborarle nella stessa maniera.
Ecco uno schema in cui partendo dalla tele/videocamera che crea il video "interallacciato puro" sono indicati tutti i passaggi sino alla visualizzazione : composizione del frame 720*576 mpeg2 presente su DVD, elaborazione fatta dal DVD player a uscita progressiva PAL50P ( o fatta dallo scaler esterno) e infine ciò che è visibile su di un televisore standard nel caso di semplice uscita interallacciate PAL50I
immagine |
1 |
2 | 3 | 4 | 5 | 6 |
tempo |
0 ms |
20 ms | 40 ms | 60 ms | 80 ms | 100 ms |
immagine ripresa dalla tele/videocamera che apre l'obbiettivo ogni 20 ms ( 50 fps) |
||||||
le 288 righe che sono inserite nel frame mpeg 720*576; il bianco indica come le corrispondenti righe sono semplicemente scartate |
||||||
ciò che è memorizzato nel frame mpeg 720*576 del DVD (ogni 40 ms cioè 25 volte al secondo). |
||||||
estrazione delle 288 righe pari e dispari fatta dal player DVD progressive scan partendo dal frame mpeg (o dello scaler partendo dal segnale PAL50I ) |
||||||
ricostruzione delle righe mancanti (R) e relativa uscita PAL50P e visualizzazione su TV progressive scan o videoproiettore compatibile:ogni 20 ms vengono aggiornate tutte le 576 righe |
||||||
visualizzazione del segnale interallacciato PAL50I su normale televisione collegato ad DVD player non dotato di uscita progressive scan:ogni 20 ms vengono aggiornate o le 288 righe pari o le 288 dispari |
Il risultato di una operazione del genere è una maggiore fluidità di movimento e la diminuizione del tipico sfarfallamento presente sui tv interallacciati, specialmente se di grosse dimensioni; la visione appare così più riposante e naturale.
In concreto il metodo ricava nel caso PAL dai frame 720*576 a 25 fps dell' mpeg 2 , un video sempre 720*576 , progressivo e a 50 fps: da ogni frame ne sono ricavati 2. Analogamente nel caso NTSC si elabora il frame 720*480 trasformandolo da 30 a 60 fps.
Ad oggi (dicembre 2000) una elaborazione del genere su DVD PAL non è possibile se non ricorrendo ad uno scaler esterno: la causa non è da ricercarsi in problemi tecnici ma nella attuale inesistenza di TV capaci di visualizzare PAL 50P, cosa che ha rallentato il lancio in Europa di DVD player capaci di creare autonomamente video progressivo PAL 50P. Nei primi mesi del 2001 dovrebbero essere disponibili DVD player capaci di elaborazioni del genere e quindi capaci di elaborare video PAL interallacciato e di mandare in uscita video PAL50P
I metodi con cui si ricostruiscono le righe mancanti (R) |
|
sono fondamentalmente 3
1) Duplicazione di riga:
è il metodo più semplice che ha lo svantaggio di creare eccessive
discontinuità, le tipiche scalettature, sopratutto sui contorni. Le righe
mancanti sono ricostruite semplicemente copiando (duplicando) quelle presenti.
Se ad esempio si devono ricostruire le righe dispari, queste le si ottengono
copiando le corrispondenti pari:
la riga 1 la si ottiene copiando la riga 0
la riga 3 la si ottiene copiando la riga 2
la riga 5 la si ottiene copiando la riga 4 .......
2) Mediazione di riga: è un metodo, più raffinato, con il quale si creano le righe mancanti interpolando le righe presenti. Il metodo più semplice per realizzare l'interpolazione è quello di fare una media pesata (somma diviso 2) dei colori dei due pixel rispettivamente in alto e in basso rispetto a quello che si sta ricreando : in realtà conviene ricorrere a interpolazioni più complesse, in cui il colore di ogni singolo pixel viene calcolato con una media pesata dei colori dei pixel circostanti. Ciascuno scaler, utilizza un suo algoritmo di mediazione che a secondo della complessità ed efficienza produce risultati migliori. In tutti i casi tale operazione produce migliori risultati rispetto alla banale duplicazione di riga anche se sono richieste maggiori potenze di calcolo, niente comunque di trascendentale!!!
Il maggior difetto della mediazione di riga lo si ha quando le righe da mediare corrispondono a transazioni di colori ad esempio dovuti alla presenza di due oggetti: mediando il blu e il verde, si ottiene un color ciano che non è sicuramente presente nell'immagine reale; sta nella bontà degli algoritmi di mediazione, la capacità di eliminare problemi del genere, trattando ad esempio il video a componenti separati (YUV) e analizzando più pixel adiacenti a quello da mediare.
Campi pari di una immagine interallacciata (zoom) |
Immagine ricavata per duplicazione di linea (è evidente la scalettatura) |
Immagine ricavata per mediazione di linea |
Nel caso di mediazione di linea svolta dal DVD player sul flusso mpeg2 le operazioni da fare per ogni frame sono le seguenti (caso PAL):
1) viene decodificato il singolo frame PAL mpeg 720*576 come questo è memorizzato nel flusso mpeg | ||
2) sono prelevate le righe pari dal frame 720*288 e il risultato è interpolato a 720*576 e inviato all'uscita progressiva PAL 50P | ||
3) sono prelevate le righe dispari dal frame 720*288 e il risultato è interpolato a 720*576 e inviato all'uscita progressiva PAL 50P |
Dal flusso 720*576 25 fps, si ricava un video progressivo 720*576 50 fps, da inviare all'uscita PAL 50P.
3) Il terzo metodo è quello che possiamo considerare il "metodo intelligente" e posso solo ipotizzare alcune possibili implementazioni, che negli scaler ultramilionari sono tra l'altro coperti dal più totale "segreto": mi è difficile ipotizzare il livello di "intelligenza" raggiunto da tali scaler, nel momento in cui le operazioni possibili altro non sono che algoritmi di elaborazione dell'immagine programmati, memorizzati in delle ROM (memorie a sola lettura) o FLASH-ROM (memorie a sola lettura ma aggiornabili ) ed eseguiti da DSP (Digital signal processor, processori dedicati all'elaborazione del segnale) più o meno potenti. Se mediazioni e duplicazioni possono essere realizzati anche con elettronica sequenziale (una manciata di componenti elettronici collegati in una certa maniera), le elaborazioni più complesse devono necessariamente essere realizzate da DSP programmabili.
I metodi intelligenti sono quelli che analizzano i campi pari e dispari di almeno un frame (nei casi migliori anche di due frame successivi) e cercano di capire come questi sono strutturati e pertanto come meglio elaborarli.
Partiamo sempre dal caso in esame, ovvero il caso in cui si è certi dell'origine tele/videocamera interallacciata e pertanto si scarta l'ipotesi di una provenienza progressiva (film). Siamo nel caso:
immagine |
1 |
2 |
tempo |
0 ms |
20 ms |
immagine ripresa dalla tele/videocamera che apre l'obbiettivo ogni 20 ms ( 50 fps) |
||
le 288 righe che sono inserite nel frame mpeg 720*576; il bianco indica come le corrispondenti righe sono semplicemente scartate |
||
ciò che è memorizzato nel frame mpeg 720*576 del DVD (ogni 40 ms cioè 25 volte al secondo). |
I 2 metodi visti (duplicazione e mediazione) con cui si ricostruiscono le righe (R) mancanti |
|
non considerano il fatto che nelle parti delle immagini in cui non ci sono movimenti (le zone statiche delle immagini tipo gli sfondi fissi in presenza di una telecamera fissa), la parte da ricostruire (le righe indicate con R nello schema) è in realtà presente nelle 288 righe successive (le rosse): tali righe sono sì riferite a un istante successivo di 20 ms, ma non sono cambiate lì dove gli oggetti nell'intervallo di 20 ms sono rimasti fermi. In tal caso al posto della riga da ricostruire può essere semplicemente inserita la corrispondente riga (rossa) del semiquadro successivo. Questo discorso vale ovviamente solo per le righe "immutate"
Il processo diventa questo (faccio l'esempio dell'elaborazione fatta da un DVD player ma nulla cambia se viene fatta da uno scaler sul segnale PAL 50I inviato dal DVD player):
1) isolare dal frame mpeg 720*576 (25 fps) |
i due semiquadri di 288 righe (pari e dispari) | appartenenti a istanti distanti 20ms ( 50 fps) |
2) ricreare alcune righe (quelle degli oggetti in movimento) per duplicazione o mediazione (le righe R) e ottenere le altre copiando le corrispondenti righe (in rosso) del semiquadro successivo (metodo di deinterallacciamento). |
|
I due casi estremi sono ovviamente
il caso di scena completamente dinamica in cui tutte le righe sono cambiate e occorre ricorrere alla interpolazione per tutte le righe |
|
|||
il caso di scena completamente statica in cui tutte le righe possono essere copiate dal semiquadro successivo. |
|
Il vantaggio di tale elaborazione deriva dal fatto che nelle zone in movimento, a causa dei limiti del nostro occhio una risoluzione elevata diventa quasi inutile e pertanto la ricostruzione per raddoppio o mediazione , che ovviamente non è in grado di aggiungere dettagli, non arreca un grosso danno; al contrario nelle zone statiche in cui è importante avere la migliore risoluzione (abbondanza di dettagli ) copiare le righe significa in teoria ottenere la massima risoluzione verticale possibile dal formato , cioè 576 righe distinte.
Il metodo visto lo posso
considerare la somma intelligente dei metodi di deinterallacciamento
(copia delle righe
per
il video progressivo puro) e il metodo di duplicazione o mediazione
.
Una ulteriore possibilità è applicare la scelta (ricostruzione o copiatura della riga a secondo della presenza o meno di dettagli in movimento ), non sull'intera riga ma su sue parti: occorre ovviamente maggiore potenza di calcolo e algoritmi più intelligenti. Si otterrebbe un qualcosa che ricorda la compensazione del moto nell'mpeg, che nella sintassi dell'mpeg è realizzata per blocchi di 16*16 pixel, mentre qui l'analisi va fatta riferendosi alle righe. Ecco uno schema che chiarisce meglio il risultato ottenibile.
|
Ma come fa in pratica
l'algoritmo "intelligente" a scegliere se fare deinterallacciamento o
mediazione? La risposta è ovviamente immortalata negli algoritmi presenti nelle
EPROM degli scaler, tutti coperti della massima segretezza.
Mi permetto di indicare una possibile implementazione e non escludo che tale
"idea" sia sfruttata da qualche prodotto commerciale: in pratica il
primo passo da fare è quello di calcolarsi per mediazione la riga che si
cerca di ricostruire, che come al solito indico con R:
|
fatto ciò si confronta tale riga (R) con quella presente nella riga corrispondente del semiquadro successivo, candidata ad essere sostituita (quella in rosso).
|
A questo punto l'algoritmo deve scegliere se inserire la riga ottenuta per mediazione o inserire quella del semiquadro successivo : se la riga R è molto simile alla rossa significa che in quella zona nessun oggetto si è mosso, e pertanto conviene inserire la riga rossa che deriva da una immagine reale e non da un calcolo matematico ( la riga R) e pertanto ritrae l'immagine vera ; al contrario se la riga R è molto diversa rispetto alla rossa significa che in quella zona nell'arco dei 20 ms trascorsi (1 sec/50) gli oggetti ripresi si sono mossi e pertanto l'immagine reale corrispondente alla riga da costruire è andata irrimediabilmente persa ; occorre quindi calcolarsela per mediazione .
Una implementazione del genere si presta ovviamente a tantissime possibili varianti, prima tra tutte quella di ripetere il procedimento per pezzi di riga o di sfruttare la riga reale in rosso se questa ad esempio è solo traslata (analogamente alla compensazione del movimento dell'mpeg): altra possibilità è quella di analizzare più righe, magari anche di semiquadri precedenti per cercare di estrapolare dalla "storia dell'andamento dei campi" delle preziose informazioni.
La cosa più interessante di quello che ho chiamato metodo intelligente, e che nei prodotti commerciali prende nomi quali "auto select", "motion detect" ..... è che tale metodo ben si addice all'elaborazione dei video dei casi che ho indicato come 2) Progressivo sfasato 3) progressivo con eccezioni 6) interallacciato convertito 8) effetto marmellata : infatti se al confronto con il semiquadro successivo si aggiunge un minimo di "intelligenza" in più è possibile recuperare, se disponibili, righe corrispondenti allo stesso istante di tempo ma "disperse" per i problemi di codifica in semiquadri successivi o precedenti.
Per convincersi basta pensare al caso di progressivo sfasato, magari presente solo in alcune scene ( "Indipendence Day"): l'algoritmo che ho accennato funziona alla perfezione, poichè la riga rossa del semiquadro successivo è proprio la riga mancante che si cerca di ricostruire, in quanto proviene dallo stesso frame cinematografico. Quando si fa il confronto (R con la riga rossa)
|
tali righe saranno molto simili e pertanto l'algoritmo utilizzerà la riga rossa ricostruendo correttamente il frame originario. Affinchè la cosa funzioni anche per i semiquadri pari occorre fare anche il confronto con il semiquadro corrispondente ma del passato poichè nel caso di progressivo sfasato la riga da inserire è in tal caso presente nel semiquadro precedente. Sono curioso di sapere se gli scaler "ultra costosi" in commercio, con la loro "intelligenza" riescono a "risolvere" un caso di questo tipo !!!
L'intelligenza aggiuntiva a cui ho accennato è riferita al fatto che l'algoritmo deve fare la ricerca anche nel semiquadro del passato, cosa in perfetta analogia alla compensazione del moto nell'mpeg per i frame di tipo B.
Non mi soffermo sul fatto che l'algoritmo visto riesce, in molti casi, a riordinare i campi, dove e se possibile, in quelle condizioni direi "disastrose" che ho riassunto nel caso "effetto marmellata": è comunque evidente come la natura "sporca" del video, dovuta alla difficile compressione di tali video può facilmente trarre in inganno anche gli algoritmi più "intelligenti".
Rimane un' altra questione da esaminare: che succede se si utilizza la duplicazione di riga o la mediazione di riga nel caso di video progressivo puro (film) o sfasato? E' un caso che si può verificare sia a causa di una impostazone manuale errata da parte dell'utente nella scelta dell'elaborazione da fare, sia nel caso di "abbaglio clamoroso" del processore video nel riconoscimento automatico della modalità da impostare ( cosa ovviamente impossibile nel caso di scaler ultramilionari in teoria anche "ultraintelligenti")
Nel caso si utilizza ad esempio la mediazione di linea per trattare video progressivo puro, si ha che invece di fare il corretto deinterallacciamento
----> |
in cui i semiquadri mancanti vengono riempiti con quelli successivi (ricostruendo correttamente il frame cinematografico) e ripetendo 2 volte in uscita la stessa immagine ( da 25 fps della pellicola ai 50 del PAL50P), sbagliando metodo con la mediazione si creano le righe per interpolazione nonostante queste esistano codificate
----> |
Il risultato è una risoluzione verticale dimezzata a seguito della presenza di righe interpolate invece che reali. Ovviamente una buona mediazione può rendere meno evidente tale difetto ma si ha lo stesso deterioramento dovuto alla visualizzazione di un mpeg a 720*288 riportato a "schermo intero" rispetto alla visualizzazione di un analogo mpeg ma a 720*576.
5) Video NTSC "Interallacciato Puro": nelle ipotesi di visualizzazione di tale video in NTSC 60P, è un caso esattamente uguale al PAL interallacciato puro con la differenza di creare con i 3 metodi visti (duplicazione, mediazione o algoritmo intelligente) i 60 frame progressivi 720*480 invece che i 50 frame 720*576.
6) Video PAL "Interallacciato Puro" da visualizzare in NTSC 60P e viceversa Video NTSC "Interallacciato Puro" da visualizzare in PAL 50P. In pratica sono i casi appena visti, in cui il formato di uscita non corrisponde con quello del video: è il classico esempio di un video musicale NTSC zona 0 da visualizzare in PAL50P . Nella pratica è un problema che non penso si presenti frequentemente perchè un tv progressivo o un videoproiettore che aggancia PAL50P certamente aggancerà il NTSC 60P (le frequenze orizzontali sono praticamente le stesse 31250 Hz per il PAL e 31500 Hz per il NTSC).
Nel caso video PAL ---> uscita NTSC 60P, la conversione è banale poichè con le elaborazioni viste ( duplicazione, mediazione o algoritmo intelligente) si ottengono 50 frame progressivi che devono essere trasformati in 60 tramite la ripetizione "equidistante" di 10 frame su ogni gruppo di 50, una ripetizione ogni 5
PAL 50 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | ........ | 49 | 50 |
NTSC 60P | 1 | 2 | 3 | 4 | 5 5 | 6 | 7 | 8 | 9 | 10 10 | 11 | 12 | 13 | 14 | 15 15 | 16 | ........ | 49 | 50 50 |
Prima della creazione delle ripetizioni occorre comunque interpolare i frame da 720*576 a 720*480, cosa che non crea grossi problemi ( a meno della inevitabile perdita di risoluzione) poichè i frame sono progressivi senza le fastidiose righe di interallaccio che interpolate creerebbero grosse discontinuità.
Nel caso contrario video NTSC ---> uscita PAL 50P la questione è leggermente più complessa poichè si tratterebbe di passare da 60frame a 50: il metodo più banale di elaborazione è quello di non fare l'elaborazione video (duplicazione, mediazione o algoritmo intelligente) a 10 frame su 60, lasciando pertanto tali frame "interallacciati": ovviamente esistono altri metodi più complessi, che vista la scarsa rilevanza della cosa non è il caso di vedere.
A prova della difficoltà di una operazione del genere che andrebbe implementata solo per i lettori europei (sfido a trovare un americano che desidera visualizzare un proprio video NTSC in PAL50P !!!!!!), il lettore Onkyo DV-S939, uno dei primi lettori commercializzati in Italia con l'uscita progressiva, permette solo l'uscita progressiva a 60 fps, sia per DVD PAL che per NTSC: chiaramente tra breve con player di nuova generazione limitazioni del genere andranno scomparendo.
7) Video NTSC " 3:2 PULL Down": come visto sono i film trattati con il noto metodo "3:2 Pull Down" che trasforma video cinematografico 24 fps in NTSC 30fps.
L'elaborazione da realizzare , implementata in tutti i primi lettori DVD progressivi venduti in Europa (vedi il Pioneer 737) e presente in tutti gli scaler in commercio, si realizza in due o tre passaggi. I nomi delle elaborazioni che classificano tale conversione sono innumerevoli; dal banale 3:2 pull down (sottinteso inverso) al "pure cinema" del Pioneer.
Il primo passaggio è la ricostruzione dei 24 fps cinematografici operando con un procedimento inverso rispetto a quello visto.
1 |
2 | 3 | 4 | 5 | |
frame 720*480 NTSC (30 fps) |
1 |
2 | 3 | 4 | |
fotogramma cinematografico 24 fps 720*480 |
da osservare come il
processore video deve essere in grado di agganciare la sequenza 3:2 (capire cioè da
quale frame inizia la sequenza 3-2) ed essere in grado di riagganciarsi nel caso di
sequenze realizzate non correttamente che devono essere reinterpretate e
corrette.
La presenza dei quadri ripetuti diventa un mezzo abbastanza semplice per
effettuare tali operazioni di aggancio.
Il secondo passaggio da fare è convertire la sequenza progressiva da 24 a 50 o a 60 fps. Nel caso di uscita PAL 50P occorre preventivamente fare una interpolazione del frame da 720*480 a 720*576: poichè il frame ottenuto è progressivo puro non ci sono i problemi di discontinuità che si sarebbero avuti nella interpolazione di frame in cui sono presenti le discontinuità dovute alle righe di interallaccio.
Il metodo per convertire il frame rate è sempre quello delle ripetizioni dei frame ricostruiti in punti "equidistanti".
Nel caso di 24 fps---> PAL 50P basta ripetere 2 volte ciascun frame ad eccezione di una ripetizione tripla ogni 12 frame.
frame mpeg ricostruiti con il metodo 3:2 pull-down inverso 24 fps |
1 | 2 | 3 | 4 | ...... | 10 | 11 | 12 | 13 | 14 | .... | 23 | 24 |
frame
ricavati per ripetizione da inviare all'uscita progressiva a 50 fps |
1 1 | 2 2 | 3 3 | 4 4 | ..... | 10 10 | 11 11 | 12 12 12 | 13 13 | 14 14 | .... | 23 23 | 24 24 24 |
Nel caso di 24 fps---> PAL 60P basta ripetere alternativamente 2 o 3 volte ciascun frame
frame mpeg ricostruiti con il metodo 3:2 pull-down inverso 24 fps |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | .... |
frame
ricavati per ripetizione da inviare all'uscita progressiva a 60 fps |
1 1 | 2 2 2 | 3 3 | 4 4 4 | 5 5 | 6 6 6 | 7 7 | 8 8 8 | ..... |
Duplicatori e quadruplicatori di linea
Spesso gli scaler, vengono semplicemente chiamati "duplicatori o quaduplicatori " di linea.
La duplicazione di linea altro non è che un modo generico per descrivere le modalità di elaborazione di un video interallacciato PAL 50I o NTSC 60I nei rispettivi formati ma progressivi (50P e 60P) con i metodi visti: deinterallacciamento , duplicazione di linea, mediazione di linea, metodo "intelligente": spesso,come visto, i formati di uscita vengono chiamati in modalità diversa anche se ci si riferisce allo stesso tipo di video. Infatti il PAL 50P è indicato spesso PAL 576P (in riferimento alle righe attive, contenenti video e pertanto visualizzabili) o 625P (se ci si riferisce al numero totale di righe del segnale, le attive più quelle contenenti i sincronismi, segnali di test....) o semplicemente video a 31250 Hz (31,25 KHz) : per il NTSC 60P i nomi alternativi sono NTSC 480P o NTSC 525P o video 31500Hz (31,5 KHz) .
La maggior parte degli scaler sono in grado di inviare in uscita anche segnali diversi dai PAL 50P o NTSC 60P, sfruttando la flessibilità di molti videoproiettori ad agganciare segnali anche più complessi: le ulteriori elaborazioni possibili sono l'incremento della frequenza verticale (es da 50 a 100Hz) e l'aumento del numero di linee.
L'
incremento della frequenza verticale si realizza tramite il solito
inserimento di frame ripetuti: tale inserimento viene fatto dopo la prima
elaborazione vista (quella che crea PAL 50P o NTSC 60P).
Ad esempio volendo creare un segnale PAL progressivo a 100 Hz , partendo dal
classico PAL 50I, lo scaler deve prima creare il PAL50P e poi raddoppiare i frame ottenuti:
si ottiene quello che possiamo chiamare PAL progressivo con
raddoppio di quadro.
Formato |
righe |
righe attive (contenenti video) |
Progressivo o interallacciato | Frequenza verticale | Frequenza orizzontale |
PAL 50I (576I) |
625 |
576 | Interallacciato | 50 Hz | 15625 Hz = 15,625 KHz |
PAL 50P (576P) |
625 |
576 | Progressivo | 50 Hz | 31250 Hz = 31,250 Khz |
PAL progressivo con raddoppio di quadro |
625 |
576 | Progressivo | 100 Hz | 62500 Hz = 62.5 KHz |
Analogamente è possibile creare video progressivo NTSC a 120Hz (freq.orizz) e 63 KHz (freq.verticale).
I metodi utilizzati per aumentare il numero delle righe possono essere diversi ( utilizzo i termini linee o righe riferendomi alla stessa cosa e sottintendendo l'aggettivo orizzontali)
Il fine dell'incremento delle righe è quello di migliorare la visualizzazione nel caso di immagini di notevoli dimensioni: se ovviamente è inutile usare un quadruplicatore di linee per immagini su schermi avente la base di 1 metro, ben diverso è il caso di mega proiezioni con la base di 4-5 metri. Il motivo è tutto incentrato sul fatto che, diversamente dalla proiezione di pellicola cinematografica, la visualizzazione di segnali video è sempre suddivisa in linee orizzontali; in presenza di grosse immagini, anche a distanza, è chiara l'origine discreta del video e pertanto sono visibili in maniera netta le righe che evidenziano una trama nera dovuta allo spazio che è presente tra loro.
Aumentare il numero di linee orizzontali, significa incrementare la densità di righe e pertanto minimizzare lo spazio "buio" presente tra loro: il risultato è una immagine più naturale e più luminosa.
Il metodo più semplice per aumentare il numero di linee è quello di elaborare il video in due fasi distinte: la prima fase è quella vista con il quale si crea video progressivo a 480 righe (NTSC 480P) o a 576 righe (PAL 576P) partendo dai rispettivi formati interallacciati: la seconda fase è quella ottenere il formato richiesto tramite l'interpolazione dei frame progressivi appena creati, operazione che si può realizzare senza artefatti a causa della mancanza delle righe di interallacciamento che se interpolate creerebbero grosse discontinuità e pertanto rumore video.
Il triplicamento delle righe consiste nel creare nel caso PAL video 720*864 e nel caso NTSC video 720*720 .
Con il quadruplicamento di righe si ottengono le risoluzioni PAL 720*1152 e NTSC 720*960.
A causa dell'elevato numero di righe è difficile avere quadruplicazioni con frequenze verticali superiori ai 50-60 Hz, poiché gli eventuali 100 e 120 Hz creerebbero frequenze orizzontali elevatissime, difficilmente agganciabili.
Ecco una tabella dei formati più utilizzati.
Sistema |
Formato | dimensioni | Frequenza verticale | Frequenza orizzontale |
PAL |
interallacciato PAL 50I |
720*576 | 50 Hz | 15625 Hz = 15,625 KHz |
PAL |
duplicazione di riga PAL 50P |
720*576 | 50 Hz | 31250 Hz = 31,250 Khz |
PAL |
duplicazione di riga PAL 50P 100Hz |
720*576 | 100 Hz | 62500 Hz = 62.5 KHz |
PAL |
triplicazione di riga | 720*864 | 50 Hz | 47000 Hz = 47 KHz |
PAL |
triplicazione di
riga 100 Hz |
720*864 | 100 Hz | 94000 Hz = 94 KHz |
PAL |
quadruplicazione di riga | 720*1152 | 50 Hz | 62500 Hz = 62.5 KHz |
NTSC |
interallacciato NTSC 60I |
720*480 | 60 Hz | 15750 Hz = 15,750 KHz |
NTSC |
duplicazione di riga NTSC 60P |
720*480 | 60 Hz | 31500 Hz = 31,5 Khz |
NTSC |
duplicazione di riga NTSC 60P 120Hz |
720*480 | 120 Hz | 63000 Hz = 63 KHz |
NTSC |
triplicazione di riga | 720*720 | 60 Hz | 47300 Hz = 47.3 KHz |
NTSC |
triplicazione di
riga 120 Hz |
720*720 | 120 Hz | 94500 Hz = 94.5 KHz |
NTSC |
quadruplicazione di riga | 720*960 | 60 Hz | 64000 Hz = 64 KHz |
Con i metodi
di incremento di linee tramite le due fasi distinte (creazione di video
progressivo con il raddoppio di righe e successiva interpolazione) è banale nella seconda fase fare delle
interpolazioni creando un frame di dimensione arbitraria, anche avente un numero di righe
orizzontali non multiplo di 288 (PAL) o 240 (NTSC).
La cosa è normalmente disponibile negli scaler e permette di massimizzare le prestazioni di tutti quei
proiettori (LCD, DLP) che utilizzano matrici aventi spesso un numero di righe
non legato ai formati PAL o NTSC;l
800*600, 1024*768, 1280*720 e 1280*1024: in tale maniera è possibile
ottimizzare la visualizzazione che è riportata così alla risoluzione nativa
gestibile dal videoproiettore.
Nel caso in cui si creano triplicazioni o quadruplicazioni e quindi solo risoluzioni verticali multiple di 240 e 288, al metodo visto in cui si hanno due fasi distinte (creazione di video progressivo con il raddoppio di righe e successiva interpolazione) è possibile ottenere in certi casi risultati migliori fondendo le due fasi creando direttamente il video richiesto: ovviamente occorre implementare algoritmi più complessi che in tutti i casi evitano di realizzare più interpolazioni successive. La complessità di un metodo simile deriva dal fatto che occorre una implementazione spesso notevolmente diversa per ogni combinazione di video di ingresso e uscita: è evidente che fare una quadruplicazione di linea partendo da video PAL 50I di origine cinematografica (progressivo puro) è molto più semplice che fare una triplicazione di riga di un video "effetto marmellata"; nel primo caso non ci sono alternative al deinterallacciamento e successiva interpolazione, mentre nel secondo caso le possibilità di intervento sono molteplici.
Visualizzazione di DVD sul monitor del PC tramite player SW: BOB e Weave
La visualizzazione dei DVD sul monitor dei PC è caratterizzata da una ottima qualità grazie alla presenza di sw tipo quelli che utilizzano l'engine cinemaster che decodificano i film senza fare alcuna approssimazione visibile nei calcoli per la decompressione: l'accoppiata con un videoproiettore in grado di agganciarsi alle uscite progressive delle schede video, produce una visione indiscutibilmente di qualità..
Rimane fondamentale la scelta del player sw da utilizzare: infatti, se da un lato esistono infiniti modi di comprimere in mpeg2 un video, al contrario c'è solo un modo corretto per decomprimere un video mpeg2 e quindi un DVD (in realtà esistono degli strettissimi margini di libertà anche nella decompressione) ; nel caso dei DVD player HW, i chip di decodifica utilizzano ovviamente il metodo corretto, essendo chip progettati a tal scopo: inoltre i player più costosi contengono al loro interno dei processori video in grado di processare il video decompresso con i dei filtri in grado di rendere l'immagine più naturale o minimizzare i tipici artefatti dovuti alla compressione mpeg: solarizzazione e quadrettatura.
Nel settore dei player sw in mancanza di ottimizzazioni, se si implementa semplicemente il codice disponibile nei documenti ufficiali sull'mpeg, a malapena si raggiungono i 2-3 frame al secondo con un pentium 3 dell'ultima generazione: occorre pertanto in fase di programmazione ottimizzare il codice per garantire i 25-30 frame al secondo necessari alla visualizzazione corretta del video.
Le
ottimizzazioni possibili sono 2: le prime sono quelle che ottengono esattamente
gli stessi risultati ma a velocità maggiori, sfruttando i tipici trucchi della
programmazione ( uso di tabelle precalcolate al posto di calcoli ripetuti,
istruzioni in assembler o capaci di sfruttare le implementazioni MMX o
SSE,.........); la seconda possibilità è quella di semplificare alcuni calcoli
ottenendo dei risultati il più possibile simili a quelli ideali,
approssimazioni che possono essere più o meno evidenti a secondo della
"scorciatoia" utilizzata.
E' possibile ad esempio non eseguire affatto dei calcoli non considerati
importanti: gli artefatti che si creeranno a causa di tale brutale
approssimazione in alcuni casi possono essere tranquillamente tollerati. Normalmente
la IDCT (trasformata coseno inversa), è la operazione critica che più delle altre occorre ottimizzare ed
eventualmente approssimare, poichè è al cuore della decodifica mpeg ed è
notoriamente impegnativa a calcolarsi. Per i più curiosi, ecco una pagina
contenente una serie di formule matematiche che descrivono una possibile
ottimizzazione .
In realtà
la valutazione degli errori dovuti alle diverse implementazioni della decodifica
fatta via sw, non è una cosa banale nel momento in cui esistono a causa dei calcoli
alcuni
inevitabili approssimazioni , che tendono ad accumularsi e a
sommarsi anche se non si realizzano delle "scorciatoie" evidenti :
occorrerebbe una lunga teoria sulla propagazione degli errori, che non è il
caso di vedere !!
Tanto per chiarire la cosa il tutto è basato sul fatto che le singole
operazioni matematiche sono per loro natura troncate o approssimate: se 3/2 è
banalmente 1.5, al contrario 5/3 a secondo del tipo di approssimazione la si
può valutare come 1.67 o 1.666667 o 1.66666666666666667 ......: se si considera
come per calcolare il singolo fotogramma occorrono milioni di operazioni del
genere, è evidente come la valutazione dell'errore globale non è banale.
Nell'mpeg lo standard così come è stato formalizzato ha un certo grado di libertà quando si sceglie il metodo iDCT da
utilizzare nel player HW o SW. In questo modo al player è lasciato un certo
"margine" di approssimazione che rimane accettabile. Ciò che lo standard richiede ai decodificatori è che il metodo iDCT utilizzato risponda alle specifiche IEEE-1180 o, in parole povere, che l'errore che si ottiene dal metodo iDCT non vada oltre quello permesso dalla specifica IEEE-1180.
In pratica chi scrive il sw, fa le sue approssimazioni nell'implementazione
della IDCT e fatto il test IEEE-1180 può sapere se le sue approssimazioni sono
accettabili o meno dallo standard. Non potendo accedere ai codici dei player
commerciali, non è possibile dire se e quali di essi superano il test: la cosa
che in realtà è possibile fare è paragonare visivamente le immagini
prodotte da un sw che supera il test IEEE-1180 (ad esempio il DVD2AVI
v11/18 http://hiroko.ee.ntu.edu.tw/
) con quelle prodotte dai player in esame; è quello che ho fatto (i risultati
sono presenti nell'articolo DVD
per PC il punto
)
Un'ultima possibilità di ottimizzazione dei player sw è quella di decomprimere il video fruttando l'ausilio dell'hw di alcune schede grafiche ottimizzate per l'mpeg: attualmente sono poche tali schede, e le più importanti sono le ultime schede ATI (chip rage 128, rage 128 pro e Radeon ) capaci di assistere la compensazione del moto e di fare la IDCT (trasformata coseno inversa) via hw e tutte le ultime schede Nvidia (chip GeForce256 (NV10) , i successivi GeForce2 GTS, MX e Ultra (NV15) , e il futuro NV 20 ) dotate di assistenza hw alla compensazione del moto. Tra le due "assistenze Hw" solo la IDCT supportata dall'hw è in grado di migliorare la qualità del video mentre la compensazione del moto assistita diminuisce il carico di lavoro della CPU, ma non incrementa la qualità del video.
Riguardo la qualità del video ottenibile con i diversi player sw vi rimando all'articolo relativo : DVD per PC il punto. Ecco la "classifica finale":
In conclusione, per la qualità del video, se PowerDVD 3.0 è in maniera evidente al di sotto dei primi tre in classifica, il Cinemaster, Windvd e DVD Express nelle scene più semplici e ad una analisi superficiale, producono risultati simili; in presenza di scene "difficili" come ad esempio dei sottili gradienti di colori con sfondi uniformi, il Cinemaster saluta i rivali ponendosi indiscutibilmente al di sopra degli altri, grazie ad una decodifica perfettamente uguale a quella "teorica massima"
Nell'ottica di questa attuale "carenza di potenza di calcolo", riguardo l'approccio dei player sw alla visualizzazione dei diversi formati di video è impossibile pretendere elaborazioni impegnative (pull down 3:2 inverso, metodi "intelligenti") che richiederebbero al contrario grosse potenze di calcolo. Tutti i player sw, sotto il consiglio di "mamma Microsoft", utilizzano due possibili metodi di visualizzazione chiamati BOB e Weave: tutti i sw prevedono il settaggio in automatico della modalità più adatta e spesso è possibile anche forzare il metodo desiderato.
Nel caso di PowerDVD la selezione la si fa tramite configurazione video/modalità video : nel caso dei player Cinemaster e WinDVD occorre modificare tali opzioni tramite il sw freeware DVD Genie http://www.inmatrix.com/ .
La visualizzazione tramite il metodo Weave avviene semplicemente in 2 passaggi:
1) decodifica del singolo frame mpeg 720*576 o 720*480 come questo è memorizzato nel flusso mpeg
2) interpolazione nella dimensione richiesta dalla finestra video o eventualmente a schermo intero: questa operazione deve anche tener conto della presenza o meno di video anamorfico ed eventualmente distorcere l'immagine del fattore 0,75 .
Per come è implementato, il metodo weave deve essere utilizzato unicamente per la visualizzazione di video progressivo puro (i film)
Il risultato coincide con l'operazione di deinterallacciamento in cui i campi pari e dispari vengono semplicemente composti per formare il frame :tramite i fermo immagini e l'avanzamento per singolo fotogramma è così possibile analizzare esattamente come è codificato il video nel flusso di frame mpeg.
Voglio osservare come nel caso di video progressivo puro (i film) tale visualizzazione, se fatta con sw di qualità (vedi il cinemaster), è di una stabilità e pulizia incredibile: il limite è certamente quello legato alle dimensioni del monitor, visto che per cifre umane non è possibile andare al di là dei 19 pollici. Gli artefatti della compressione mpeg, immortalati nel DVD, appaiono inesorabili quando presenti, e ciò vale ancora di più nel caso di film male compressi in cui a fermo immagine è possibile evidenziare ogni problema.
Se si forza la modalità weave per tutti gli altri casi in cui sono ci sono le linee di discontinuità , la visualizzazione è ovviamente innaturale a causa della presenza delle discontinuità, ed occorre in tal caso utilizzare la modalità BOB, che analizzerò tra breve . Da notare come l'interpolazione a schermo intero rende nel caso di modalità weave in presenza di video interallacciato, tali discontinuità ancora più evidenti e fastidiose.
Nel caso in cui il video presenta le linee di interallaccio, i player sw non avendo la potenza di calcolo per identificare il video e fare particolari elaborazioni ( pull down 3:2 inverso, metodi intelligenti,.....) utilizzano la modalità BOB che altro non è che la ricostruzione dei due semiquadri tramite interpolazione e relativa visualizzazione progressiva a 50 fps nel caso PAL e a 60 fps per l'NTSC.
Ecco come funziona il metodo BOB:
1) viene decodificato il singolo frame mpeg 720*576 o 720*480 come questo è memorizzato nel flusso mpeg | ||
2) sono prelevate le righe pari dal frame 720*288 o 720*240 e il risultato è interpolato nella giusta dimensione (4:3 o 16/9) e visualizzato | ||
3) sono prelevate le righe dispari dal frame 720*288 o 720*240 e il risultato è interpolato nella giusta dimensione (4:3 o 16/9) e visualizzato. Ad essere precisi, per garantire il corretto posizionamento del frame ricostruito, tramite interpolazione si crea una immagine con una riga in meno (es 720*575 invece che 720*576) e in seguito il corretto frame 720*576 lo si ricava duplicando la prima riga. |
Pertanto
da ogni frame 720*576 (o 720*480) sono ricavati in questo metodo 2 immagini
progressive, così che il video da 720*576 25 fps è trasformato in un video
progressivo a 50 fps.
Devo
osservare come le operazioni viste sono quasi completamente realizzate dalle schede
video, grazie alla creazione degli overlay: per tale motivo l'incremento di
utilizzo della CPU rispetto al caso weave è limitato a pochi punti percentuali.
Se la modalità weave coincide con l'operazione di deinterallacciamento (banale visualizzazione progressiva del frame 720*576), la modalità BOB altro non è che il metodo di elaborazione di video, supposto interallacciato, tramite mediazione di linea
Nel caso di modalità BOB, nella visualizzazione di un fermo immagine, i diversi player utilizzano un filtraggio di tipo BLEND sul frame originario; per realizzarlo vengono ricavati i due frame tramite BOB e in aggiunta vengono sommate le due immagini ottenute (per esattezza viene fatta pixel per pixel la media matematica dei colori, somma diviso 2).
1) frame interallacciato | ||
2) Creazione dei due
frame tramite metodo BOB |
||
3) Somma (media
matematica) delle 2 immagini Il risultato è l'immagine originaria con filtraggio blend |
Il riconoscimento automatico delle linee di interallaccio da parte del sw viene fatto semplicemente analizzando i frame ogni 1-2 secondi e valutando l'entità della presenza di discontinuità tra righe: in presenza di discontinuità viene utilizzato il metodo bob , in caso contrario ( video progressivo puro ) la modalità weave.
Riguardo tutte le questioni relative al discorso dei frame ripetuti per la creazione del segnale di uscita, poichè il player sw non può preoccuparsi della frequenza verticale del monitor (nei PC questa è spesso fissata attorno agli 85 Hz per monitor di qualità) l'approccio è diverso: tramite il timer del pc, che ha precisioni elevatissime, il player si preoccupa di mantenere i 25 (o 50 nel caso BOB) fps richiesti (30 o 60 per il NTSC): in parallelo sarà la scheda video a pilotare la freq. orizzontale e verticale del monitor e indirettamente a fissare le ripetizioni nella visualizzazione dei frame. L'unico accorgimento da parte del player sw, è quello di immettere nella memoria video il frame decompresso solo in corrispondenza dell'istante in cui il il pennello elettronico del monitor inizia a disegnare la prima riga: si parla di "aggancio al refresh verticale".
Termino con una domanda che i più attenti si saranno posti: che succede se visualizzo con la modalità BOB un video progressivo puro ? La cosa la si può provare tramite le opzioni di selezione "forzata" Weave o BOB.
La risposta è semplice: il player non fa altro che ricavare stupidamente i due semiquadri applicando il doppio procedimento di interpolazione del metodo BOB; ovviamente non c'è alcun motivo logico per fae ciò (grazie al cielo i sw non sono dei filosofi!).
Il risultato è un video caratterizzato da una risoluzione verticale di 288 punti invece che 576 (caso PAL). Il dimezzamento della risoluzione produce effetti visibili su tutti i particolari più piccoli dell'immagine, anche se in generale questa appare ovviamente più sfocata e definita.
Nell'esempio che riporto, preso dal cartone animato Tarzan, la minore risoluzione è evidente sui baffetti , le rughe e la bocca del personaggio. In basso sono visualizzate le stesse immagine raddoppiate in dimensione.
|
||
Ho concluso: come al solito per pareri e osservazioni potete scrivere al mio indirizzo di posta benedettodue@tiscalinet.it
24 agosto 2000
Ultimo aggiornamento 5 dicembre 2000
Ritorna alla pagina digital video
Ritorna alla home page