Interpolazione uniforme dei fotogrammi chiave
Ti sei mai chiesto perché la modalità di interpolazione uniforme di Kdenlive possa produrre un’escursione oltre i valori dei fotogrammi chiave? E come dire a Kdenlive di evitare queste situazioni?
Cominciamo a guardare cosa succede dietro le quinte, e addentriamoci nello strano mondo dell’uniformità. Non preoccuparti: non dovrai imparare, né comprendere nessuna nozione matematica: guarda semplicemente le figure. Ti mostreremo anche come evitare queste escursioni nelle situazioni in cui non le desideri. E per i più curiosi, che vogliono sapere quale matematica si cela dietro l’interpolazione «uniforme», nella sezione Note, in fondo alla pagina, troveranno altre letture.
La rampa di dissolvenza in entrata
Cominciamo con una semplice rampa, come quella mostrata qui. Utilizziamo due fotogrammi chiave[1], uno con un valore basso, e l’altro con uno alto; i valori specifici non sono importanti. Impostiamo entrambi i fotogrammi chiave sulla modalità di interpolazione uniforme.
Visualizzazione dei fotogrammi chiave della clip di colore
La visualizzazione dell’effetto all’interno della clip nella linea temporale appare come una rampa rettilinea. Tuttavia, osservando attentamente i valori interpolati mentre si scorre la linea temporale, si dovrebbe notare che la pendenza della rampa varia: all’inizio e alla fine la pendenza è minore rispetto alla parte centrale, dove è maggiore.
Ma cosa sta succedendo esattamente?
Visualizzazione in GeoGebra dell’interpolazione Catmull-Rom
Esiste uno strumento online open source chiamato GeoGebra, che permette di sperimentare con la matematica utilizzata dal motore MLT di Kdenlive.
Questa figura mostra due fotogrammi chiave, P1=0 e P2=1, che rappresentano una tipica impostazione per una rampa crescente. Nel caso te lo stessi già chiedendo: non importa a quali fotogrammi esatti corrispondano i singoli fotogrammi chiave.
L’interpolazione uniforme calcolata da MLT è rappresentata da una spessa linea verde. È leggermente incurvata, un po” come una S maiuscola, ma non eccessivamente.
E, osservando attentamente, si nota che la pendenza iniziale e quella finale della linea verde non sono orizzontali; almeno non quanto ci si potrebbe aspettare inizialmente.
Ti starai chiedendo a cosa servano gli altri due fotogrammi chiave P0 e P3. Ebbene, la matematica sottostante richiede sempre quattro fotogrammi chiave per interpolare, segmento per segmento, tra due fotogrammi chiave adiacenti. Se non esiste un fotogramma chiave precedente (P0) o successivo (P3), viene semplicemente ripetuto il fotogramma chiave a sinistra (P1) o quello a destra (P2).
Rampa crescente e… escursione oltre il valore previsto
Ora aggiungiamo un terzo fotogramma chiave, in modo da ottenere una rampa con un tratto piatto. Questo è mostrato nelle schermate.
Visualizzazione dei fotogrammi chiave della clip di colore
E ora la rampa presenta un rigonfiamento chiaramente visibile invece di uno spigolo netto. Beh, sembra uniforme, ma non è esattamente ciò che avevamo in mente, vero? Perché succede?
Visualizzazione in GeoGebra dell’interpolazione Catmull-Rom
Questa è la nostra rampa con un tratto piatto: P0=0, P1=1, P2=2. Non preoccuparti, però, della numerazione dei fotogrammi chiave.
Ti aspettavi che il tratto piatto fosse perfettamente piatto? Certo che sì. Ma forse avrai già notato che Kdenlive non si comporta esattamente così. Al contrario, la matematica dell’interpolazione fa sì che i valori interpolati superino i valori dei fotogrammi chiave, come si può vedere facilmente nella figura.
La matematica sottostante funziona così: l’interpolazione è uniforme, quindi la pendenza a sinistra di P1 è uguale a quella a destra di P1. Sì, è un concetto di «uniforme» leggermente diverso da quello che ci si potrebbe aspettare.
Se vuoi che il tratto piatto rimanga effettivamente piatto, devi impostare la modalità di interpolazione del fotogramma chiave P1 su lineare. A proposito, questo non modifica in alcun modo il precedente segmento uniforme. Il risultato è una «curva spezzata» in corrispondenza di P1, ma fortunatamente nella maggior parte delle situazioni probabilmente non te ne accorgerai.
Rampa crescente-piatta-decrescente
Visualizzazione dei fotogrammi chiave della clip di colore
Aggiungiamo un altro, quarto fotogramma chiave, in modo da avere: prima una rampa crescente, poi un tratto piatto e infine una rampa decrescente. È un modello di fotogrammi chiave abbastanza tipico per una dissolvenza in entrata e una dissolvenza in uscita.
E guarda cosa succede: abbiamo ottenuto una specie di gobba, ma non un bel tratto centrale piatto.
Visualizzazione in GeoGebra dell’interpolazione Catmull-Rom
Questa volta osserviamo il segmento centrale P1-P2. A sinistra vediamo la rampa crescente, a destra quella decrescente.
Ancora una volta, uniforme significa che non c’è uno spigolo netto tra i segmenti. Al contrario, le pendenze a sinistra e a destra sono continue in corrispondenza di P1 e P2, cioè nel segmento centrale. Ed è proprio questo a fare sì che il valore interpolato superi i valori previsti.
Rendiamo nuovamente grande il tratto piatto
Ora, come possiamo ottenere una parte superiore piatta? Fortunatamente è facile, come si può vedere nelle schermate.
Note
- Altre letture
Come forse ricorderai (o forse no), il motore di rendering di Kdenlive è il MLT Multimedia Framework. Sebbene MLT supporta l’interpolazione uniforme dalla metà del 2013 circa, Kdenlive ne ha introdotto il supporto in seguito. Ora però supporta tutte e tre le modalità di interpolazione: lineare, discreta e uniforme. Come si può vedere dal source code di MLT, l’interpolazione uniforme viene realizzata utilizzando una Catmull-Rom spline. In particolare, MLT utilizza la cosiddetta variante uniforme, perché è molto semplice. Lo svantaggio è che questa interpolazione talvolta presenta la caratteristica indesiderata di superare i valori dei fotogrammi chiave, soprattutto quando meno ce lo si aspetta.
- Fonti
Il testo originale è stato inviato dall’utente TheDiveO all’ormai defunto blog kdenlive.org. Per questo la documentazione è stata estratta da kdenlive.org, aggiornata e adattata per corrispondere allo stile generale.