Carlo Macchiavello

Tutto è possibile

Tag: Apple

Zuppa di codec 3 controrumors pro Apple e pro Microsoft

In passato con precendenti articoli dedicati ai codec dei sistemi operativi, ho parlato di conoscenze di base con Zuppa 1, di come non serva installare codec esterni per montare in Zuppa 2, ho parlato dei Digital Intermediate in Flussi Digitali, e di codec Audio in Ac3 siamo a piedi, oggi siamo qui a chiarire un fatto che recentemente ha creato un certo numero di rumors, di chiacchiere da bar inutili, e soprattutto preoccupazioni ingiustificate, ovvero l’annuncio di Apple che dai sistemi operativi dopo Mojave, 10.14, non saranno più supportati i codec Cineform, DnxHr, e altri considerati obsoleti.

Facciamo un paio di semplici domande: oggi sono supportati? NO!!!
come si può leggere sui formati supportati da FinalCutProX sulla pagina di Apple.

Ma ovviamente saranno supportati dal sistema operativo? NO!!!
Nè Apple Osx, nè Windows da Xp all’ultimo Win10 supportano tali codec.

Quindi ci sono pagliacci in giro che parlano a vanvera spaventando e mettendo rumors inutili e inutilmente provocatori? Si purtroppo questa è la verità….

la premessa

Da infiniti anni, i sistemi operativi avevano il supporto per un numero limitato di file e di codec multimediali implementando al loro interno codec necessari per vedere tali file dalle utility di sistema, nel tempo i diversi codec si sono ridotti notevolmente a pochi codec, e molti non sanno, che spesso erano stati installati da applicazioni di terze parti, ad esempio Windows non ha mai pagato le royalties per la lettura dei film in Dvd, codec mpg2, quindi senza l’installazione di un player dvd il lettore multimediale di windows non era in grado di leggere nessun dvd, dava errore dicendo Codec non supportato, ma nessuno ci faceva caso perchè leggeva i dvd da… un player dvd, quindi installando il programma si installavano i codec nel sistema.

Sia sotto Windows che sotto Mac la maggior parte dei codec video è sempre stata aggiunta come terza parte, e spesso anche se supportati direttamente esistevano codec di miglior qualità (la tedesca MainConcept ha fatto business su questo prima di vendere i suoi codec a Adobe).

Chiunque abbia lavorato nel video negli ultimi 20 anni conosce l’innumerevole quantità di codec, pacchetti, varianti di codec ha dovuto installare per supportare una o l’altra camera durante l’editing video.

Oggi girando prettamente in h264 e varianti, tutto sembra per magia supportato e quindi tutto compatibile (che poi non è vero perchè h264 a seconda del decoder software hardware può essere letto con piccoli errori e differenze qualitative).

La realtà, oggi 1 dicembre 2018

Apple con il sistema operativo successivo a Mojave abbandonerà completamente il framework Quicktime 32bit, e completerà il passaggio iniziato anni fà a AvFoundation framework 64bit, con il risultato che tutti i software collegati al vecchio framework smetteranno di funzionare.

Cineform, dnxHD/Hr e molti altri codec erano implementati nel sistema installando esternamente delle risorse che si appoggiavano al vecchio QuicktimeFramework.

Ora noi abbiamo un problema? No, la situazione è come era prima, perchè si implementavano i codec come terze parti nel sistema per vedere da finder o da altri programmini i filmati, ma i software importanti implementano internamente i codec senza dover dipendere dal sistema, come ho spiegato negli articoli zuppa di codec precedenti.

Un buon flusso di lavoro prevede che tutto il lavoro sia fatto in modo ordinato ed efficiente tramite i software di ingest ed editing, per fare una rapida cernita del materiale, introdurre tramite metadata le informazioni di lavoro, e organizzare il materiale copiandolo, transcodificandolo e gestendolo senza dover passare per il sistema operativo.

Per chi ancora vuol passare per il sistema operativo, basterà che usi una qualunque applicazione come VLC che include già tutti i codec per leggere i file, anche se si lavora in ambito montaggio e post ha più senso usare software di lavoro per vedere il materiale e giudicarlo, che usare player di sistema o altri elementi che possono alterare, mostrare il materiale nel modo non corretto.

La realtà, oggi 11 dicembre 2018

Apple ha trovato un accordo con Adobe riguardo il prores, e nelle nuove release di Adobe Premiere, After Effects, MediaEncoder etc potranno scrivere file in prores anche sotto Windows, a dimostrazione che si vogliono estendere le possibilità e non chiudere come tanti affermano.

La verità è là fuori

Ve li ricordate? La coppia di scettica e credente che hanno cambiato il modo di fare televisione e serie tv negli anni 90, X-File.

Mi sono ispirato a loro per questo post, perchè sono stufo della disinformazione che viene fatta dietro l’hardware quando si deve lavorare, da una parte la totale confusione che c’è su internet a proposito della potenza e delle soluzioni hardware per chi deve fare editing video, postproduzione, 3D, dall’altra gli assemblatori di computer che sono totalmente ignoranti, prendendo a paragone il mercato del gaming come fonte assoluta dei benchmark, quando in realtà chi lavora non può affidarsi a quelle informazioni.

Facciamo una premessa : i giochi e i software di editing/postproduzione/3d si basano su principi di gestione della memoria, dei core, delle GPU completamente diversi, per questa ragione una configurazione che per i giochi mostra un incremento notevole di potenza, magari per l’editing il discorso è ininfluente.
Tutto il mio articolo è fondato sulla ricerca delle performance lavorative, quindi se qualcuno vi fornisce informazioni discordanti chiedete quali sono le sue fonti e le ragioni operativo pratiche su cui si basano le sue conoscenze, se non utilizza almeno due o tre pacchetti di postproduzione e 3d non è attendibile.

Parliamo dei processori

Tanti anni fà il signor Gordon Moore, coofondatore della Intel, teorizzò con la prima legge di Moore che i processori avrebbero raddoppiato il numero dei loro transistor e di conseguenza la loro potenza ogni 2 anni.
Quello che non considerò furono tre fattori :

  1. c’è un limite alla dimensione del processore, un limite alla miniaturizzazione delle piste altrimenti ad aumento di potenza si rischia la elettromigrazione e quindi corto delle piste.
  2. c’è un notevole aumento di temperatura all’aumento della potenza del processore e va dissipata in modo efficiente per non avere oltre che consumi notevoli, problemi di stabilità (vedi i moderni cellulari octacore che sembra di avere uno scaldino sul viso).
  3. I programmatori sono diventati sistematicamente più pigri e inefficienti, se negli anni 90 i programmatori compilavano il software ottimizzato per il singolo processore e all’installazione si sceglieva la versione più adatta, oggi molti programmi non sono neanche ottimizzati per il multicore, multiprocessing sprecando fino al 80% delle risorse

Ad ognuno di questi fattori c’è rimedio, nel tempo sono cambiate le tecnologie e se si vuole…

  1. la stratificazione permette la creazione di processori multicore (a oggi 72), con ridotti rischi di elettromigrazione, ma alcuni produttori per evitare il rischio mettono dei “lucchetti” alle potenzialità del processore, ovvero la velocità non è costante ma oscillante a seconda della richiesta di sistema, il chè è bene per ottimizzare risorse, scaldare meno, consumare meno, ma nel momento in cui lavoro e lascio a renderizzare un computer per 60 ore (il 3d o la postproduzione anche giorni di rendering), quel processore rischia di toccare picchi di durata non prevista e passare dal semplice spegnimento al danno diretto del processore.
  2. oggi sia i dissipatori attivi di buona qualità che i dissipatori a liquido sono discretamente economici da permettere a chi lavora di dissipare tutto il calore che serve, peccato che il principio è come quello delle vecchie lampadine a incandescenza, si sprecava una quantità inusitata di energia in calore invece che in luce/calcolo
  3. qualche programmatore che ottimizza i software esiste ancora, mi vengono in mente per il 3d Zbrush, 3D coat, Clarisse, software che sembrano magici per quello che fanno, ma in realtà si tratta solo di buona programmazione.
parliamo delle schede video

Nel mercato di oggi si sta spingendo molto sulla scheda video e sull’utilizzo delle GPU per il calcolo, un discorso molto moderno e approccio innovativo, che iniziò circa 40anni fà con Steve Wozniac in Apple nel 1977 e con Commodore con Amiga nel 1985, in quel caso i programmatori lavoravano a basso livello, gestivano direttamente i chip delle schede video spremendo ogni bit disponibile, oggi i programmatori si appoggiano a librerie di sistema che utilizzano poi l’hardware, parliamo di Metal2 nel caso di Apple per chip (Nvidia, Intel, AMD), Cuda per Nvidia, OpenCL per AMD, Nvidia, Intel (standard open a più tipi di chip, ma purtroppo meno performante).

Questo vuol dire che a seconda delle scelte dei programmatori possono sfruttare meglio o peggio le risorse hardware del sistema, questo è il motivo per cui il programma di editing X arranca con il fullHD sulla stessa macchina dove il programma di editing Y gira fluido in 4k.

La scheda video oggi viene sfruttata per accelerare come minimo :

  • decodifica dei file h264, h265 (la maggioranza dei file video generati da smartphone, macchine fotografiche e telecamere di fascia medio – bassa, quindi se già la lettura del file e la sua decodifica impegna la scheda, questa ha meno risorse per i task successivi
  • accelerazione effetti video / audio in tempo reale
  • gestione di rappresentazione o calcolo 3D (esiste una intera categoria di motori di rendering di alto livello, alcuni nati dai giochi come U-Render o Octane Render che usano solo esclusivamente la GPU per il calcolo.
  • riduzione rumore video, da Neat video in poi…
  • gestione interfaccia video (sprechiamo risorse e memoria video della scheda visto che ne hanno già poca…)
  • Compressione in formati H264, H265 per output video.
parliamo delle CPU

Nel mercato di oggi dopo aver raggiunto una sorta di limite nella creazione di processori con Clock sempre più alti, si è passati alla creazione di wafer, strati multipli dove i diversi core si combinano tra di loro, per cui invece di avere un potentissimo motore, abbiamo la somma di tutti questi motori. La logica è inopinabile, più efficiente e potente, e in caso di danno parte del processore resta attiva e quindi funzionante, ma…

A oggi il tallone d’achille è lo sfruttamente di tali core, perchè di base il sistema operativo riceve le chiamate di calcolo dal programma, le smista ai diversi core del processore, restituisce i risultati, peccato che tale approccio sia differente e meno efficiente dell’accesso diretto dei programmi ai singoli core del processore, e quindi si perdono troppi cicli macchina in questi passaggi, inoltre se è il sistema a gestire l’assegnazione è possibile che semplici task come aprire un browser possa rubare troppe risorse ad un rendering, o ne vengano sprecate in vario modo.

Il risultato di questa gestione è che i programmi progressivamente perdono potenza, come se avessimo una macchina che ha le marce fino alla quinta, ma quando iniziamo ad accelerare ci sollevano le ruote dal terreno facendolo solo sfiorare.

Ora perchè tutto questo discorso?

Perchè contrariamente a quello che fanno credere tutti, non ci sono sempre salti proporzionali tra il valore economico di CPU e GPU e le risultanti di potenza nei programmi di editing, post, 3D, quindi si può sprecare investimenti su schede e cpu costose senza avere dei veri e propri salti prestazionali con i software.

Inoltre col fatto che spesso questi chip non sono usati al 100% dai software il rischio maggiore è quello di veder inutilizzati buona parte delle risorse.

Come verificare prima dell’acquisto cosa comprare?

Dopo anni di esperimenti ho verificato un paio di test affidabili oggi (agosto 2018), poi spero di essere smentito e vedere software da lavoro ultraottimizzati come i giochi che sfrutteranno meglio le differenze operative di CPU e GPU.

Parlo di benchmark affidabili perchè storicamente i produttori di schede video e driver hanno spesso barato per risultare ottimi nei benchmark in voga nel momento ma non nelle reali performance; è sempre stato complesso fare benchmark che offrissero indicazioni sull’uso reale, perchè i benchmark eseguono calcoli per sovraccaricare i diversi processori e strumenti dell’hardware, ma spesso gli sviluppatori di benchmark sono ottimisti, ovvero pensano che anche i programmatori dei software sfrutteranno come loro tutte le funzionalità, cosa che non accade quasi mai.

Per le GPU un buon benchmark è OctaneBench, ovvero una scena 3d calcolata esclusivamente con la GPU, tramite il motore di rendering Octane render, il risultato di benchmark e differenze tra una GPU e l’altra mi ha dato stesso riscontro utilizzando le differenti GPU su programmi come :

  • Adobe Premiere
  • Adobe After Effects
  • Davinci Resolve
  • NeatVideo denoiser
  • Avid
  • Fusion

La cosa imbarazzante sono i risultati, che potete leggere voi stessi, ovvero la differenza tra le Titan e una GTX 980ti oltre al quadruplo del prezzo è solo per la quantità di memoria a bordo, ma le performance… NO!!!
facciamo un riassunto veloce?

  1. GTX 1080ti euro 800 (di media) score 185
  2. Quadro P6000 euro 4.500 (ci sono da 6000) score 169
  3. Tesla P40 euro 7.000 score 166
  4. GTX 1080 euro 550 score 135
  5. GTX 980Ti euro 450 score 130 (posseggo la Asus Strix che fa 141 di score)
  6. Titan X euro 665 score 129
  7. Quadro P4000 euro 800 score 101
  8. Titan Black euro 1800 score 80
  9. Titan Z euro 2400 score 77

quindi contrariamente a quello che dicono la maggior parte delle persone, quando si passa al lato operativo lavorativo (NON STIAMO GIOCANDO nel vero senso del discorso) le schede considerate più performanti sono le più sfigate in un rapporto potenza prezzo, senza considerare che molti software (Resolve, Octane, Neatvideo, and more) sono capaci di sfruttare il multigpu, quindi scegliendo oculatamente la piastra del computer e le schede video, si possono ottenere performance che le superschede si possono solo che sognare mettendo 2 o più schede in parallelo. Esistono poi delle riflessioni parallele da fare in riferimento alla vecchiaia delle schede, perchè dopo qualche anno le schede non vengono più supportate nei software e quindi un investimento molto alto se non si ripaga velocemente si rischia di vederlo sparire nelle nuove versioni dei software.

Teniamo inoltre conto del fatto che pur essendo teoricamente pensate per il multiGPU le schede madri non sono pensate per usarle tutte… ovvero spesso non ci sono abbastanza lane per la distribuzione dei calcoli o banalmente pur essendo una E-Atx le schede sono troppo vicine e il problema sarà il calore generato perchè ogni scheda manda aria calda alle spalle della scheda davanti a lei e quindi il surriscaldamento sarà dietro l’angolo, e non si potrà applicare un raffreddamento a liquido perchè non c’è spazio per montare i radiatori sulle schede tra una scheda e l’altra.

Come verifico la potenza delle CPU?

per le CPU esistono ancora più benchmark e spesso inutili… perchè molti programmi non sfruttano il multicore o il multithreading, o non usano tutte le funzioni integrate, quindi una CPU dual core, ma con clock più alto offrirà all’atto finale un tempo di calcolo inferiore rispetto ad un octacore con un clock inferiore durante l’export di un file video.

Un buon benchmark per il processore è CineBench, usato anche da molte testate giornalistiche importanti per testare le performance dei computer, esso utilizza il core del motore di rendering 3d Maxon Cinema 4D, motore che testa sia l’openGl che la cpu, single core e multicore. Diventa semplice verificare tramite lo score quanto sia potente la CPU in uso singolo o combinato col Multithreading.

La cosa divertente è che usando un processore antico (Q3-2013) come un Intel i7 4930k ottengo uno score di 927. Guardando le prestazioni dei processori moderni… potrei avere qualche delusione… come potete vedere sotto la media dei processori di oggi offrono o le stesse performance o meno ancora… altrimenti si deve investire in modo consistente, e qui si vedono solo i prezzi dei processori.

  • Intel core i5 7640k euro 154, score 716
  • Intel core i7 4790k  euro 290, score 836
  • Intel core i7 7700k euro 300, score 960
  • Intel core i7 7740k euro 356, score 999
  • Intel core i7 8700k euro 326, score 1230
  • AMD 2700X euro 267, score 1964
  • Intel XEON W-2150B euro 750, score 2350
  • Intel core i9 7900x euro 850, score 2355
  • AMD 1920X euro 440, score 2428
  • Intel core i9 7940X euro 1,100, score 2929
  • AMD 1950X euro 790, score 3334
  • Intel core i9 7980XE euro 2,100, score 3920


Powered by WordPress & Theme by Anders Norén

Translate »
error: Content is protected !!