Archivio di novembre 2007

Non solo rosso…

Ho parlato più volte della rivoluzione che sta avvenendo in ambito cinematografico, con la migrazione completa dai tradizionali sistemi basati sulla pellicola a quelli digitali, e questo non solo per la parte di post produzione ed elaborazione del materiale girato (montaggio video e audio, correzione colore, effettistica, etc…), ma anche e soprattutto per la fase di ripresa, e (anche se questa fase è al momento quella meno sviluppata) quella di proiezione nelle sale.

Ho parlato spesso della camera Red, realizzata da un piccolo ma volenteroso team, che ha realizzato una camera in grado di girare a 4k, molto più economica di soluzioni analoghe che, pur mostrando qualche difetto di gioventù (è sostanzialmente una camera in costante sviluppo, quindi ogni tanto sorgono piccoli problemini, e comunque il software di sistema e quello di supporto vengono costantemente aggiornati, inserendo anche poco a poco nuove funzionalità), sta iniziando ad essere utilizzata per produzioni Hollywoodiane.

Ho scoperto di recente un’altra camera molto interessante, realizzata da Silicon Imaging, e, a differenza della Red, a 2k invece di 4. E’ molto interessante però perché più facilmente gestibile (si basa sul diffuso codec video Cineform RAW, invece del sistema proprietario utilizzato dalla Red One) e non soffre dei problemi di gioventù della Red (è certamente una soluzione più stabile e matura, più indicata per chi non voglia correre rischi o non voglia perdere troppo tempo a sperimentare). E’ nella stessa fascia di prezzo della Red, ed è già stata utilizzata in qualche produzione (video musicali, spot pubblicitari e non solo). Da quello che ho sentito ne sta già arrivando anche qualche esemplare in Italia, per l’utilizzo in lungometraggi. Le info a riguardo si trovano nel sito http://www.siliconimaging.com/.

Commenti


Una sfida: un software di color correction efficiente ma a basso costo…

Il normale ciclo di sviluppo per un software, che coinvolge in genere molte persone, e richiede molto tempo per ogni aggiornamento, e quindi per rilasciare nuove versioni di un programma, è un procedimento piuttosto laborioso, che prevede una sequenza di operazioni necessarie a garantire il corretto funzionamento del programma, ma che tuttavia non riesce spesso a garantire comunque la creazione di software esente da bug, oltre a prolungare i tempi di rilascio e, conseguentemente, i costi di sviluppo.

Indipendentemente da come sono organizzati i team di sviluppo e dalle scelte implementative, il linguaggio più utilizzato in genere è il C++, evoluzione orientata agli oggetti del C (ma ci sono molte altre novità rispetto al linguaggio padre), e la tendenza attuale è quella di rilasciare i programmi, almeno quelli di un certo tipo, per piattaforma Windows e Mac, spesso non utilizzando direttamente le librerie di sistema presenti nei due OS, ma scrivendo, almeno per gestire la parte grafica e di interazione con l’utente, delle proprie librerie che si interfacciano a quelle di base del sistema, e permettono di avere programmi con aspetto e funzionalità simili sui diversi sistemi. Questo però complica ulteriormente le cose, visto che aumentano i parametri da controllare, e si fanno più alti i rischi di avere errori di programmazione, oltre all’appesantimento del programma finale, e dell’ulteriore aumento dei tempi di sviluppo e di testing.

Mi chiedo se non sarebbe possibile in qualche modo intervenire sul ciclo abituale di sviluppo, snellendolo un pochino, appoggiandosi in gran parte a tool che permettano uno sviluppo veloce e che eliminino in partenza la possibilità di errori (o almeno quelli di un certo tipo), e riducano i tempi di testing e di aggiornamento del software, facilitando inoltre il porting di un programma su diversi sistemi.

La cosa mi è venuta in mente facendo una ricerca comparativa tra i software di “color grading e finishing” video. Si tratta di programmi utilizzati nello stadio finale di una produzione video (soprattutto cinematografica, ma anche televisiva), che permettono di conformare i diversi spezzoni video che formeranno il montaggio finale, facendo si che si integrino al meglio, permettono di effettuare una correzione del colore per ottenere esattamente le immagini volute (che non sono mai, nel prodotto finale, uguali a quelle effettivamente girate sul set, ma hanno come minimo colori più… “pompati”) , e permettano di produrre il video finale sostituendo i file a bassa qualità usati per il montaggio (il montaggio si fa tipicamente “off-line“, lavorando con copie a bassa qualità dei video, che vengono sostituite solo alla fine con le pesanti versioni ad alta qualità, per la finalizzazione “on-line“) con quelli a piena qualità: ci sono un po’ di programmi di questo tipo, da quelli di fascia più bassa, e quindi più economici (come Color della Apple) a quelli più evoluti (come Scratch della AssimilateInc e Lustre della Autodesk), ma sono comunque tutti costosissimi (e spesso richiedono anche piattaforme hardware dedicate), indirizzati a studi di un certo livello, quindi per un utente normale è molto difficile accedervi, se non altro per imparare il flusso di lavoro (per intenderci, Scratch costa, in versione solo software, più di 30000 dollari…).

Mi chiedo se non sarebbe un progetto fattibile, per un team composto da pochi elementi (non più di una decina), produrre un software dalle analoghe capacità, con tempi e costi di sviluppo ridotti, grazie all’utilizzo di strumenti che permettano di eliminare o ridurre i problemi di cui parlavo all’inizio. Ripensando al mio passato, a quando muovevo i primi passi nella programmazione, m’è tornata in mente la praticità di linguaggi non compilati, ma interpretati in tempo reale, come il Turbo Pascal: fai una modifica e puoi subito testarne il risultato. O anche la praticità del Java: modifichi un file che implementa alcune funzioni usate da tutto il programma, e ricompili solo quello, non tutto il programma. Lo svantaggio di soluzioni simili? Ovviamente, l’efficienza dei programmi così realizzati.

Beh, non è più così! Esistono ormai ottime soluzioni che permettono di sviluppare velocemente, producendo codice nativo (non da interpretare, ma compilato), garantiscono che un certo tipo di errori non sia presente (ad esempio, un errore tipico nella programmazione C e C++ è non liberare porzioni di memoria quando non sono più necessarie, portando al suo prematuro esaurimento),e si integrano facilmente con le librerie già esistenti (normalmente scritte in linguaggio C). Due di questi sono Free Basic e Free Pascal. Sono entrambe implementazioni moderne degli storici linguaggi di programmazione,che permettono di produrre molto velocemente codice che gira su tantissime piattaforme diverse (soprattutto il Free Pascal), con una semplice compilazione (per Il C e il C++, checchè se ne dica, non è affatto così semplice…), hanno librerie di funzioni già pronte abbastanza complete, e si possono interfacciare facilmente con librerie o porzioni di codice scritte in altri linguaggi (il che permette di scrivere in C o Assembly le sole porzioni di codice da ottimizzare, e di produrre e aggiornare molto velocemente le altre, magari quelle che si interfacciano al sistema e all’utente, in Free Pascal o Free Basic (e teoricamente nulla vieta di miscelarli)). E non solo, nella collezione di compilatori della GNU, il GCC, è presente anche un compilatore Java, che permette di produrre non solo bytecode Java, ma anche codice nativo partendo da sorgenti o da bytecode Java già compilato, e anche in questo caso si può miscelare il codice con librerie già esistenti. L’ultima alternativa (che però mi sembra francamente la meno interessante, anche perché più vicina al C) è il linguaggio D.

In pratica, un piccolo team potrebbe scrivere l’ossatura del programma in un linguaggio come Java (compilato), Free Pascal o Free Basic, scrivendo in C, C++ o Assembly solo le parti che hanno bisogno di essere ottimizzate, e appoggiandosi a librerie già esistenti per utilizzare funzioni particolari (ad esempio per tutte le soluzioni citate èpossibile utilizzare l’ottima libreria GTK+, alla base di GIMP e GNOME, per gestire l’interfaccia grafica, o magari si può utilizzare tranquillamente la libreria OpenGL, per far svolgere determinati compiti alla scheda grafica invece che al processore, etc…), e la manutenzione e l’aggiornamento sarebbero decisamente più veloci rispetto a un ciclo “tradizionale”. Insomma… in questo modo, a mio parere, si prenderebbe il meglio dei due mondi: la velocità e sicurezza di sviluppo delle soluzioni di livello medio, e l’efficienza nell’esecuzione del programma tipica dei linguaggi di basso livello come C e Assembly. Certo, non sarebbero comunque tutte rose e fiori, però… credo francamente che certe soluzioni vadano avanti perché sono quasi le uniche ad essere conosciute, e per motivi prevalentemente “storici”, piuttosto che per vantaggi reali. Certo, bisognerebbe imparare un nuovo linguaggio, ma, francamente, quale VERO programmatore C o C++ ha difficoltà ad usare il Java, o anche il Pascal o il Basic?

Ovviamente sarei curioso di conoscere il parere di chi programma software costantemente. Io non sviluppo più software da parecchio tempo, come credo di sia capito, le mie passioni (e spero anche il mio lavoro) sono ormai diverse…

PS. I tipi di Red, partendo da zero, con pochissimi soldi, ma buone capacità e tanta volontà, sono riusciti a produrre un ottimo prodotto, molto meno costoso di soluzioni analoghe (o anche meno evolute), e in questo caso non si trattava di software, ma di hardware, quindi decisamente peggio…

Commenti


Il dinosauro morde ancora…

E’ schizzinoso in fase di acquisizione del materiale video (MOOOOLTO schizzinoso, e quando decide che la videocamera collegata non gli piace, c’è poco da fare, e anche quando la riconosce, non è detto che tutto funzioni, almeno non prima di aver riavviato il sistema…), un po’ più pesante di software dello stesso tipo, più costoso, più strano (alcune cose si fanno in un modo piuttosto diverso rispetto agli altri software, un modo… tutto suo…), ma nonostante tutto, nonostante qualche incazzatura ogni tanto, montare in Avid (sia Xpress Pro che Media Composer) è decisamente più piacevole che montare in qualsiasi altro software.

Certo, per chi ha montato per anni con altri sistemi (ad esempio Premiere Pro o Final Cut Pro) il passaggio ad Avid non è dei più facili, e bisogna cambiare l’approccio utilizzato per fare determinate cose, ma se si ha la possibilità di essere magari guidati nell’apprendimento del sistema, anche solo nelle fasi iniziali, lo si inizia ad apprezzare parecchio (almeno per me è stato così), tanto da non poter fare a meno di riconoscere le mancanze di altri software in alcuni ambiti (ad esempio, tanto per dirne una, il trim: il trimming di Avid, oltre che il più potente tra tutti i software di montaggio, è decisamente anche il più piacevole e comodo da usare, e lo si può gestire interamente anche da tastiera, con una velocità estrema (tra tutti gli utilizzatori di Premiere, comunque, mi chiedo quanti siano quelli che utilizzano il trimming reale, e sono a conoscenza della finestra di trim…)).

Ora capisco perché, soprattutto in Italia, i montatori citati nei titoli di coda di film e programmi TV ci tengono tanto ad essere accreditati come “montatore Avid“, e non semplicemente come “montatore” (un po’ come dire “chitarrista Fender”, o “fotografo Canon”… :-P) , e capisco come mai, nonostante il prezzo superiore ai concorrenti (e non di poco), nonostante qualche limitazione che obbliga necessariamente all’utilizzo di altri programmi per completare il flusso di lavoro (il compagno ideale di Avid, per il video, è Pro Tools, per l’audio, e un qualsiasi progetto serio non si può portare a termine senza una finalizzazione audio in un programma esterno), nonostante qualche stranezza o complicazione qua e là, Avid è comunque il più usato in TV (in RAI e Mediaset si utilizza praticamente solo quello (beh, magari in RAI è anche per ragioni “storiche”, considerando, ad esempio, che hanno migliaia di costose postazioni Avid di fascia alta sparse in tutta Italia che non avrebbe senso sostituire con sistemi Final Cut Pro, l’unico che al momento può realmente fare concorrenza ad Avid, e in certi ambiti lo batte anche), e solo in qualche caso, eventualmente, Final Cut Pro), l’unico usato in Italia per il cinema (e tra i più usati nel mondo, l’unico che viene sempre insegnato in qualsiasi scuola di cinema un minimo seria), il più usato per montare le serie TV USA (Lost, Grey’s Anatomy, etc…), anche perché è facilissimo portare un progetto da un computer all’altro, anche tra sistemi differenti (non solo da un sistema di fascia inferiore, come Avid Xpress, ad uno di fascia superiore, come Media Composer, ma anche il contrario, e anche tra versioni diverse dei software), con perfino la possibilità di lavorare in contemporanea, da parte di diversi montatori e assistenti, a parti diverse di uno stesso montaggio, accedendo allo stesso materiale, in contemporanea.

Ho dovuto litigare un po’ con Xpress Pro per acquisire i video girati finora del mio cortometraggio, ma ho scelto comunque di montarlo in Avid, per impratichirmi con un flusso di lavoro completo, per un prodotto più lungo e importante degli esercizi che facciamo costantemente alla scuola di cinema, per impratichirmi su un vero progetto come… “montatore Avid”.

PS. Ho visto il trailer di Rambo 4… non mi attira quanto mi attirava Rocky Balboa (sono andato a vederlo per motivi “affettivi”, ma poi, tutto sommato, ne sono rimasto favorevolmente colpito, dialoghi infantili e banali a parte) , ma sono comunque curioso…

Commenti (3)


Si gira…! :-)

Da un po’ di tempo non scrivo molto nel blog, e quando lo faccio parlo quasi sempre di cose piuttosto tecniche (in genere legate all’informatica, alla tecnologia, al cinema, alla televisione… o alla tecnologia applicata a cinema e televisione! :-P). Come ho già scritto di recente (almeno così mi pare… :-P), non parlerò più in questo blog di cose personali (o comunque cercherò di farlo poco), e soprattutto non mi metterò a parlare di attualità, delle cose che, quasi quotidianamente mi fanno incazzare. Ce ne sono tante altre così belle che non ha proprio senso stare sempre incavolati…

Martedì abbiamo iniziato le riprese di un mio cortometraggio, “L’ultimo giorno“. Siamo partiti da quelle potenzialmente più critiche, in esterni, in un parco, e sono piuttosto soddisfatto, credo proprio che ci sia del buon materiale.

L'ultimo giorno - Enzo Tota e Giuseppe Tranchese

Nei prossimi giorni continueremo con resto delle riprese, a cui seguirà subito la post-produzione (l’obiettivo è quello di avere il cortometraggio pronto per la fine di dicembre, e di farlo subito girare).

L'ultimo giorno - preparazione di un ciak - 1

Le ambizioni sono decisamente maggiori rispetto al mio primissimo cortometraggio da regista…

L'ultimo giorno - preparazione di un ciak - 2

Commenti


Apple: una piccola precisazione

Faccio una piccola precisazione riguardo a certe cose che ho scritto ultimamente nel blog su Apple (in particolare qui), in seguito ad alcune obiezioni che mi sono state fatte (in maniera assolutamente civile e colloquiale, cosa rara da un po’ di tempo a questa parte…) dal gestore dell’ottimo sito Ikir Sector (nel cui forum ultimamente sono poco presente per via del poco tempo a disposizione, ma che vi consiglio di visitare, in particolare se amate Amiga e le piattaforme alternative in generale).

In breve: non odio Apple e non ce l’ho con Apple. Del resto chi segue questo blog da un po’ ha avuto modo di leggere più volte i miei apprezzamenti nei confronti della casa di Cupertino, che continuo a considerare un’ottima società nonostante alcune vicende poco piacevoli che mi sono capitate.

Chi mi segue sa anche che non amo Microsoft, anche se non nascondo i suoi meriti quando ne ha.

E io scrivo i miei articoli non come se scrivessi un articolo giornalistico, perché un blog è una cosa diversa: scrivo quello che mi passa per la testa così come mi viene, senza soffermandoci più di tanto, dando per scontato che chi legge un articolo segue il blog e quindi sa come la penso su certe cose (so di essere in errore su questo, ma semplicemente scrivendo per il blog mi limito a trascrivere il mio flusso di pensieri, non sarebbe lo stesso altrimenti).

Quello che vorrei fosse chiaro è che non penso che Microsoft da cattiva sia diventata buona e Apple da buona sia diventata cattiva, ma che piuttosto Microsoft sta diventando, da un po’ di tempo a questa parte, migliore (sia per quanto riguarda i prodotti che le “politiche”) di quanto non fosse in passato, mentre Apple, che in passato si era sempre comportata in maniera impeccabile da un punto di vista del marketing e anche per quanto riguarda la qualità dei propri prodotti, ultimamente sta facendo alcune mosse che non sempre risultano così condivisibili, deludendo un pochino chi, come me, l’aveva apprezzata molto in passato, con uno stile commerciale un po’ meno piacevole di un tempo, e con prodotti non sempre all’altezza del buon nome che Apple ha avuto fino ad ora (sia per quanto riguarda l’hardware che il software), e mentre Microsoft, magari anche perché un po’ costretta dal mercato a dover inseguire in certi ambiti i propri concorrenti, sta facendo qualche timido tentativo di apertura verso gli altri, Apple da questo punto di vista sembra un pochino più chiusa.

In tutto questo… ho omesso del tutto tutti i problemi che affliggono la nuova release del sistema operativo (tipo il firewall con qualche problema di sicurezza ma che però blocca Skype, o i problemi di alcuni utenti che dopo l’aggiornamento non sono riusciti a riavviare il computer, etc…) oppure la brutta figura fatta di recente con una bambina (o un bambino, non ricordo) che in risposta a una innocente lettera inviata alla Apple con suggerimenti per migliorare l’iPod, che tanto amava, ha ricevuto una breve lettera dove si diceva che Apple non accetta, come politica interna, suggerimenti dall’esterno, finendo poi però per scusarsi pubblicamente per come ha gestito la cosa.

Apple rimane una grande società che produce prodotti molto buoni sia in ambito informatico che multimediale, ma a mio avviso ultimamente, con l’aumento della propria quota di mercato, ha iniziato forse ad allontanarsi leggermente dall’ottima via che aveva intrapreso in precedenza, e certe cose lasciano un po’ interdetto chi l’aveva tanto apprezzata e lodata in precedenza, più di quanto potrebbe succedere con una società per cui non si provava una simile “simpatia” (come appunto Microsoft).

PS. Alla fine la precisazione non è stata esattamente piccola… :-P

PPS. E’ da un po’ che non aggiorno i link qui a lato, dovrei decidermi a farlo, prima o poi… ;-)

Commenti


Ancora web app? No, meglio…! ;-)

Sto scrivendo questo messaggio da un sistema operativo… online! :-P

Eh, si, nei giorni scorsi ho parlato delle web applications, e di come stanno diventando sempre più complete ed efficienti, oltre che comode, ma ora ne sto usando una che supera tutte le altre, un vero e proprio sistema operativo online!

Si chiama eyeOS e, una volta creato un proprio account, si può fare login da qualunque computer con un browser in grado di utilizzare le specifiche AJAX, avendo a disposisione un intero sistema, con desktop, cartelle personali e condivise, un browser web interno, un client di posta elettronica, un organizer per gli impegni, un word processor, un client FTP, una rubrica per i contatti, un clone del gioco Sonic, un clone del gioco Prince of Persia, una calcolatrice, un solitario, gli scacchi, un riproduttore audio e altri, il tutto anche i Italiano, e con la possibilità di trasferire files tra il sistema operativo online e il proprio computer e viceversa.

Non è certo il primo sistema di questo tipo (forse in passato ne ho segnalato anche qualche altro, non ricordo), ma è probabilmente quello fatto meglio e con una comunità di utilizzatori più ampia, e inoltre è davvero molto veloce. I comandi rispondono molto più velocemente da quanto ci si aspetterebbe da una applicazione web, soprattutto una così complessa, anche con un collegamento da 2 Mbit/s!

Provatelo!

PS. Tra l’altro, è open source…

Commenti