Recensubs HQ

La vera guida a come cavolo si encoda per davvero - Episodio 2: IVTC e cambi pattern (teoria), guida sponsorizzata da Shin Vision/Fool Frame/EXA Media/GSL

« Older   Newer »
  Share  
view post Posted on 19/11/2013, 14:22     +1   -1
Avatar

Bimbosp

Group:
Administrator
Posts:
9,780
Reputation:
+929
Location:
Gallarate (VA)

Status:


Nella prima parte della guida ho voluto fare il simpatico, fallendo miseramente, per cui adesso eviterò.

C'eravamo lasciati con un elenco di possibili problemi che si verificano negli anime interlacciati, ripromettendoci di imparare come agire nei vari casi.
Eppure, quelli elencati lì non erano neanche tutte le possibili problematiche cui potreste ritrovarvi a far fronte.



Prologo: hope for the best, expect the worst

Prima di tutto, come già avevo detto, quello con cui vi troverete in mano dipende in larga parte dalle mode del periodo.
Questo significa che i casini che dovrete affrontare dipendono in larga parte anche da quando l'animu è stato fatto.
Non ho grandi esperienze di metraggi degli anni '90 e precedenti, ma da quel poco che mi è passato per mano, all'epoca si tendeva ad animare a 23,976p, con poi pulldown ed editing a 59,94i, ma con un po' di fortuna potrebbe anche capitare roba in pattern più o meno costante.
I casini peggiori e più frequenti cominciano quando dalla metà (circa) degli anni '90 si inizia a fare uso della CG e in generale si comincia a portare il procedimento prettamente analogico precedentemente utilizzato in un procedimento misto analogico/digitale, per arrivare poi agli anni 2000 con gli anime colorati e prodotti direttamente a computer.
Con l'introduzione della CG, iniziano ad accadere cose come animazione in pulldown mista a scene in CG 59,94i nella stessa scena, e tutto questo proseguirà fino sostanzialmente all'avvento dell'alta risoluzione, quando finalmente si comincia a fare master a 23,976p.

Ma ci sono le dovute eccezioni, in tutti i periodi, sia in positivo, sia in negativo.
Alla fin della fiera quel che resta da fare altro non è che guardare bene cosa si ha di fronte, per capire cos'è stato fatto e agire di conseguenza.



Capitolo 1: il telecinema, il pulldown e l'IVTC

Partiamo dalle basi, e ritorniamo a una nozione di cui ho accennato nella teoria.
Per portare il 24p di una pellicola al 59,94i si deve applicare il pulldown 2:3.
Questo avviene durante il telecinema, che è il processo tramite il quale la pellicola viene filmata per essere trasformata in segnale televisivo.
Il pulldown è una fase fondamentale del telecinema, e sebbene tendenzialmente si intenda il 2:3, non è l'unico pattern possibile.
Anzitutto, è possibile il pattern 2:2, che semplicemente consente di avere un video 24p o 23,976p (in base a se si applica o meno lo slowdown). Questo torna utile perché, oltre al fatto che nei BD è possibile mantenere il video progressivo, anche coi DVD c'è la possibilità di praticare ciò che viene definito "soft pulldown".
Sostanzialmente, il video viene encodato progressivo, con appositi segnali (denominati "flag") che gli dicono quali field ripetere. In questo modo, i dispositivi che supportano un playback progressivo, possono semplicemente ignorare gli RFF (Repeat Field Flag), mentre gli altri avranno uno stream 59,94i. Questo procedimento semplifica la vita anche a noi perché, in questo caso, possiamo semplicemente ignorare il flag e mantenere il video progressivo, senza ulteriore sbatta per deinterlacciare!
Un altro tipo di pulldown, che difficilmente ci interessa per quello con cui abbiamo a che fare noi, è l'euro pulldown, che consiste in un pattern 2:2:2:2:2:2:2:2:2:2:2:3. Per chi non vuole contare, la ripetizione di un field avviene ogni 12 frame: in questo modo si passa da 24p a 50i. Non è tuttavia un processo molto comune.

Bene, sappiamo cos'è il telecinema, sappiamo cos'è il pulldown. E ora?
Ora possiamo fare l'Inverse Telecine (IVTC), il telecinema inverso.
Questo processo consiste nell'applicare il pattern opposto a quello applicato durante il pulldown per ripristinare il video progressivo senza duplicati, e quindi fluido.

Di base, quindi, dobbiamo anzitutto guardare i field, per capire quali sono i ripetuti e scartarli.

Poniamo caso di avere la seguente situazione, in cui le lettere rappresentano il frame e i numeri i field top (1) o bottom (2)

A1 B1 B1 C1 D1
A2 B2 C2 D2 D2

Vedendo questo, notiamo che i primi due frame sono apparentemente progressivi, poi sono seguiti da due frame interlacciati, e poi da un altro frame progressivo.

Per fare IVTC, ci sono due parti che, normalmente, vengono ben distinte: field match e frame decimation.
Il field match altro non è che l'accoppiare i field che appartengono allo stesso frame, in modo da avere uno stream progressivo, che mantiene però i duplicati.
La frame decimation, ovvero la decimazione, consiste del rimuovere i frame duplicati nello stream ormai progressivo, per ripristinare il framerate originale.

Durante il field match, ci sono tre lettere che si utilizzano per riferirsi al pattern: c, n, p.
C sta per current, e significa che per ricreare il frame progressivo, basta mantenerlo accoppiato al field con cui già è.
N sta per next, che significa che si tiene fisso un field e lo si accoppia con l'altro field dal frame successivo.
P sta per previous, e consiste nell'accoppiare un field col suo opposto dal frame precedente.

Normalmente, quindi, vi ritroverete ad applicare un pattern che prevede solo match current assieme a match next o previous, a vostra scelta. Usare match sia next sia previous all'interno di uno stesso pattern è da evitare.

Riprendendo il pattern di prima, quindi:

A1 B1 B1 C1 D1
A2 B2 C2 D2 D2

Possiamo applicare due pattern:

C C P P C

oppure

C C N N C

che daranno come risultati rispettivamente

A1 B1 B1 C1 D1
A2 B2 B2 C2 D2

e

A1 B1 C1 D1 D1
A2 B2 C2 D2 D2

La situazione cui ci siamo trovati di fronte è molto semplice e comune, si tratta di un video con Field Dominance (anche nota come Field Order) TFF (Top Field First).

Significa che quando bisogna mostrare un frame, viene prima mostrato il field top e poi il field bottom.

Mettendo in ordine l'originale, quindi:

A1A2B1B2B1C2C1D2D1D2
A A B B B C C D D D

Per quanto sia il caso più comune, però, non esiste solo il TFF, ma anche il BFF (Bottom Field First).
Un pulldown 2:3 con Field Dominance BFF risulterebbe così:

A1 B1 C1 D1 D1
A2 B2 B2 C2 D2

A2A1B2B1B2C1C2D1D2D1
A A B B B C C D D D

Come potete immaginare, se non viene rispettata l'ordine corretto stabilito dalla dominanza, succedono cose spiacevoli.
Proviamo a vedere cosa succede a riprodurre questo BFF come se fosse un TFF:

A1A2B1B2C1B2D1C2D1D2
A A B B C B D C D D

In movimento vedremo che il movimento è "salterino" e continua a fare avanti e indietro.
Ricordatevi, quindi, di utilizzare il Field Order corretto.


Ora quindi abbiamo il nostro bel video progressivo con i dup, non ci resta che decimare i duplicati per avere finalmente il framerate originale!

Quando dobbiamo decimare, indichiamo le operazioni possibili con due lettere: k e d.
K sta per keep, i frame da tenere.
D sta per drop, i frame da decimare.

Partiamo dal caso in cui abbiamo scelto il pattern ccppc:

ABBCD

Il frame ripetuto è quello b, quindi abbiamo due possibili pattern di decimazione:

KDKKK
KKDKK

entrambi daranno come risultato

ABCD

ma in realtà, il risultato non sarà identico.
Quando un video interlacciato viene encodato con un codec lossy, è possibile che i field possano subire dei minimi disallineamenti, specialmente nei frame interlacciati.

Ciò significa che quasi sempre è bene tenere il frame che era stato matchato C e scartare l'altro duplicato.

Quindi...

CCPPC
ABBCD

Il pattern di decimazione preferenziale è:

KKDKK

Lo stesso discorso vale anche in caso di match n.

CCNNC
ABCDD

Le soluzioni possibili sarebbero:

KKKDK
KKKKD

Ma come già avrete intuito, la decimazione migliore è:

KKKDK

Il risultato finale sarà identico indipendentemente da quale dei due pattern utilizzeremo.

Ricapitolando:

Video originale (TFF):

A1 B1 B1 C1 D1
A2 B2 C2 D2 D2

Possibili pattern di IVTC:

CCPPC
KKDKK

CCNNC
KKKDK

Entrambi daranno:

ABCD

Nella pratica, però, suggerisco di usare il sistema ccnnc kkkdk per decimare, con possibilità di fare match p a fine pattern in caso di cambi pattern, cosa che vedremo tra poco.


Perfetto! Abbiamo compreso l'IVTC! Beh, dai, non è difficile.
Alla fin fine, non è altro che prendere gruppi di 5 frame e riportarli ai 4 originali, seguendo un pattern che si presuppone costante per tutto il tempo.
Se state facendo un tvrip di roba del... 2010 in poi, molto probabilmente queste conoscenze sono sufficienti.
Il problema è quando avete roba vecchia, o comunque quando le cose non vanno come dovrebbero.



Capitolo 2: i cambi di pattern

Come già avevo premesso, i master non sono sempre stati progressivi.
Un tempo si facevano master direttamente a 59,94i: la cosa ha senso, visto che era ciò che ci si aspettava di usare sia in tv, sia nell'home video.
Il problema è che gli anime venivano comunque inizialmente prodotti a 23,976p/24p, e quindi veniva applicato il pulldown per avere il prodotto finito.
Solo che non sempre era già il prodotto finito.

Dopo aver montato l'episodio, lo staff dello studio di animazione si raduna: è il momento di vedere il prodotto e decidere cosa cambiare, se serve.
In questa fase hanno a disposizione un NLE 59,94i e ancora possono fare modifiche per decidere gli eventuali cambiamenti: se una scena dura troppo possono accorciarla, una che dura troppo poco può essere allungata, se un'animazione è troppo rapida può essere rallentata, se è troppo lenta velocizzata, se la sincronizzazione delle labbra è fatta visibilmente male, può essere migliorata... le modifiche possibili sono pressoché infinite (in base a quanto tempo hanno ancora a disposizione), ma chiaramente modificare il progressivo originale e rifare il pulldown è un procedimento più lento e meno immediato che implementare qui e subito le modifiche volute, per ricontrollare immediatamente che sia tutto come si vuole.
Il problema, come già detto, è che viene modificato a 59,94i, visto che è il framerate che tanto deve avere il prodotto originale, per cui, se a causa delle modifiche il pattern non si riallinea precisamente, chissenefrega, no?
Eh... a noi frega, perché vogliamo fare un lavoro pulito, e quindi ripristinando il framerate originale ove possibile, o comunque avendo l'output più fluido e pulito possibile.

Le possibili modifiche sono infinite e al momento, in questa sede, parlerò solo dei cambi di pattern. Col tempo, in altri topic, toccherò man mano tutte o quasi le possibili situazioni, con relative soluzioni.


Ci sono alcune fondamentali situazioni di cambio pattern, che vi propongo qui di seguto.

Anzitutto, le possibilità di match:

1) Il pattern precedente termina su un match c o p e il nuovo pattern inizia con un match c o n. Nessuno dei due ha field orfani.
Questa situazione è ottimale, semplicemente cambiamo il pattern di match nel punto appropriato e tutto continua tranquillamente come se nulla fosse.

2) Il pattern precedente termina con quello che dovrebbe essere un match n, ma è senza field da appaiare e/o il nuovo pattern inizia con un match p, ma è senza field da appaiare.
In questo caso, abbiamo due possibili soluzioni:
- si può fare match p dell'ultimo frame del pattern/match n del primo frame del pattern, l'importante è che solo quel singolo frame abbia il match discordante dal resto del pattern
- si può interpolare l'altra metà del field orfano, creandogli quindi un match dal nulla.
La prima soluzione è la più semplice e generalmente valida, ma in base al caso (field unici/questioni di decimazione), è possibile che la seconda sia migliore.
Nel caso particolare in cui il primo pattern finisca con un field unico orfano e il secondo inizi pure con un field unico orfano, è possibile interpolare entrambi. Vedremo più nello specifico dopo aver parlato della decimazione.

Casi possibili di decimazione:

1) Nel gruppo di 5 frame c'è un unico frame duplicato da decimare.
Situazione ottimale, decimiamo quello e il resto è tutto come dovrebbe essere.

2) Nel gruppo di 5 frame non ci sono frame da decimare.
Questa situazione ha tre possibili soluzioni:
- si può decimare l'ultimo frame del pattern precedente
- si può decimare il primo frame del pattern successivo
- si può fare vfr a 29,97p per quel gruppo di 5 frame
La soluzione va a gusti. In genere, consiglierei di usare la soluzione uno o due, da scegliersi in base alla presenza o assenza di frame unici (ovvero, frame interamente diversi dagli altri, vuoi perché c'è una carrellata o perché hanno effettivamente animato una posizione diversa dei personaggi solo per quel frame) o alternativamente dal tiro di un d20.
Se il pattern precedente termina con un frame unico e anche il nuovo pattern inizia con un frame unico e proprio non volete cancellare nessuno dei due, potete sempre andare di vfr, ma difficilmente ne vale la pena.

3) Nel gruppo di 5 frame ci sono due frame da decimare, uno nel pattern precedente e uno in quello successivo.
Le soluzioni possibili sono tre:
- si decima il frame doppio del pattern precedente
- si decima il frame doppio del pattern successivo
- si decimano entrambi facendo una sezione vfr a 17,982fps (((30/1,001)/5)*3)
La soluzione tre sarebbe ideale, ma è spesso superflua per quanto ottimale. La scelta fra soluzione uno e due si può fare in quest'ordine:
- se una delle due scene è una carrellata o comunque un insieme di frame unici anziché essere una limited animation, la priorità di decimazione viene data a quella scena. Se nessuna delle due scene o entrambe le scene sono in limited animation, passate al prossimo punto.
- uno dei due dup da decimare è ovviamente immediatamente a ridosso del cambio scena, per cui si decima l'altro dup e si può mantenere questo. Se entrambi sono a ridosso del cambio scena tirate un d20.

4) Il caso in cui il primo pattern finisca con un field unico e il secondo inizi con un field unico è un sottocaso delle possibilità 1 e 2 di decimazione. Nel caso 1, ammesso che il frame da decimare sia un altro e non quello potete interpolare uno dei due field a scelta, mantenendo il 23,976. Nel caso 2 potete alternativamente fare match p o n, perdendo il field unico ma decimando quello stesso frame in qualsiasi caso, interpolare solo uno dei field e fare una sezione di 5 frame a 29,97p oppure interpolare tutti i field del gruppo di 5 frame (procedimento che si chiama bob deinterlace) e fare una sezione di 10 frame riprodotti a 59,94p.


Alcune di queste soluzioni sono particolarmente AUTISM-tier, altre invece sono rapide e indolori. Quando nella pratica andremo a operare i cambi pattern, però, alcune di queste soluzioni ci saranno quasi precluse, se andremo a utilizzare YATTA. Intanto, però, imparate il procedimento ideale, perché prima di imparare a usare YATTA, è bene imparare a fare IVTC a mano. E anche perché, se volete, potete sempre correggere e completare l'output di YATTA operando a mano sull'avs che viene generato. Ma di questo se ne parlerà in un'altra occasione.


Con questo ho concluso, per ora. Nella prossima lezione cominciamo a installare i primi programmi che andremo a utilizzare, perché è tempo di mettere in pratica quanto imparato finora, prima di imparare altro.
 
Web  Top
view post Posted on 19/11/2013, 15:53     +1   -1

Member

Group:
Utente abilitato
Posts:
968
Reputation:
+161
Location:
Trentino Alto Adige

Status:


Altro che "Fool Frame"! :D

Grazie, davvero. Tutto molto chiaro.
 
Top
Anzo75
view post Posted on 19/11/2013, 16:04     +1   -1




Ma Love Lab?
 
Top
view post Posted on 19/11/2013, 16:34     +1   -1
Avatar

Bimbosp

Group:
Administrator
Posts:
9,780
Reputation:
+929
Location:
Gallarate (VA)

Status:


CITAZIONE (Anzo75 @ 19/11/2013, 16:04) 
Ma Love Lab?

Oserei dire che 'sti WoT sono più utili della rella di Love Lab. Non che ci voglia molto.
 
Web  Top
3 replies since 19/11/2013, 14:22   1468 views
  Share