Realtime, sempre, forse… dipende.. se ci si impegna ;-) … meglio con Premiere! (prima parte)
by Carlo Macchiavello
Premiere Pro è la punta di diamante del montaggio Adobe, strumento che si evolve da oltre vent’anni per l’editing video e non solo. Nato per l’editing di brevi filmati grafici da usare nella creazione di prodotti multimediali è rapidamente cresciuto, invadendo il terreno di prodotti storici come Avid, per esempio a partire dal montaggio di film come “Gone girl – L’amore bugiardo” di Fincher, o il recente “Deadpool”, film ultra complesso sia per il montaggio sia per la quantità di effetti visivi contenuti nel progetto.
Perché Premiere
Il motivo per cui oggi Premiere può essere usato in progetti di questa portata è rappresentato dall’evoluzione nella velocità operativa sia con funzionalità imitate da prodotti concorrenti sia sviluppando tecnologie proprietarie Adobe come il “Mercury engine“.
Il Mercury engine è uno strumento straordinario, purchè lo si faccia lavorare correttamente. Cerchiamo di capire come.
Premiere Pro possiede un sistema di accelerazione basato su due punti saldi :
– Mercury engine software (dipende esclusivamente dalla potenza della CPU, clock monocore, quindi non ci si devono aspettare prestazioni migliori con una macchina multiprocessore perché queste dipendono dall’uso del singolo core al massimo della velocità possibile);
– Mercury engine Cuda/OpenCL (dipende dalla scheda video più o meno capace di ospitare RAM, di cuda core, di clock etc).
Quindi se il nostro sistema non supporta queste due componenti (entrambe è meglio), non possiamo chiedergli di gestire efficientemente effetti, decodifica, manipolazione dei filmati in realtime.
Il ruolo delle schede video
La scheda video, dal punto di vista dell’ingegnerizzazione, è il componente più semplice da upgradare nel tempo. È normale che gli sviluppatori software puntino a ‘sfruttarla’ anche per il calcolo. Le case produttrici di schede video sono sempre più determinate (anche perché ‘obbligate’ dal mercato del gaming) a sviluppare veri e propri motori di calcolo (librerie cuda ad esempio) per supportare i calcoli dei software sottraendoli ai processori centrali.
Oggi la maggior parte delle aziende che lavorano nell’ambito grafico o video sfruttano le risorse delle schede grafiche per accelerare la correzione colore, il calcolo tridimensionale, il rendering unbiased etc, in modo da separare i compiti dei diversi chip del computer e ottimizzare il lavoro.
Questa filosofia, che sta prendendo piede da qualche anno, era già stata sposata da Apple nel lontano 1977, nel progetto dell’Apple II di Steve Wozniak…
Quindi se vogliamo che Premiere funzioni al meglio dobbiamo fornirgli un motore grafico efficiente e veloce e inoltre una scheda grafica che abbia sufficienti cuda core (es. Nvidia), o accelerazione OpenCL (ATI/Nvidia/Intel Iris) per manipolare correttamente i dati del video.
Perchè serve l’accelerazione hardware?
Se lavoriamo su un video compresso con codec H264/h265, usato nella maggioranza delle telecamere e vdslr, è necessario un “engine” sul computer che decomprima i dati per poi elaborarli. Possono essere solo la CPU o la scheda grafica (GPU).
Se non abbiamo una scheda grafica efficiente e potente questo lavoro verrà scaricato sulla CPU, che non potrà in contemporanea lavorare per applicare effetti o fare altre operazioni.
In queste situazioni Premiere riuscirà a fare il play fluido dei filmati, ma appena applicheremo un effetto verremo rallentati, perchè dovrà scaricare il calcolo sulla CPU.
Quando interviene l’accelerazione hardware tramite Gpu?
Premiere usa la scheda grafica in diverse situazioni e operazioni:
- decodifica filmati in codec h264/h265/mpg di vario tipo
- decodifica file raw e debayering
- applicazione di effetti accelerati
- correzione colore tramite lumetri
- trasformazioni geometriche e scalature in generale
- manipolazioni temporali e spaziali delle clip
- plugin di terze parti per riduzioni rumore di vario tipo
- sovrapposizioni e fusioni di livelli in buona parte delle modalità di fusione
- esportazione e scalatura dei filmati in formati diversi dei nativi
- compressione h264/h265
È evidente, da quanto illustrato, che Premiere lavori al meglio con una scheda grafica che offra ampio supporto all’accelerazione.
Non sempre però si possono avere le schede più potenti a disposizione (per limiti di budget, spazio fisico nel computer, impossibilità di cambiare la scheda grafica). Quindi è molto utile conoscere le altre modalità che consentono di accelerare e ottimizzare il lavoro di Premiere. Naturalmente nessuno ci vieta, avendo già una buona scheda video, di utilizzare comunque questi accorgimenti per accelerare ulteriormente il flusso di lavoro.
Possiamo identificare tre tipologie di approcci:
- ottimizzazione di riproduzione diretta, su timeline
- ottimizzazione di effetti e manipolazione delle clip
- ottimizzazione di export e rendering globale
Ne parleremo diffusamente nella seconda parte…
Carlo Macchiavello è professionista del video editing certificato da Adobe, ed è docente Espero nei corsi su Adobe Premiere base, intermedio e avanzato.