Carlo Macchiavello

Tutto è possibile

Tag: compressione

Blackmagic Raw 1.5 God or Evil?

Nel 2001 naque il primo codec interpiattaforma e slegato dall’hardware, Cineform, nel 2005 fu potenziato per offrire la possibilità di importare fotografie raw di diversi brand e convertirle in un filmato raw compresso visually lossless con metadata attivi e modificabili realtime, successivamente l’encoder fu in grado di convertire tutti gli altri formati raw nati SUCCESSIVAMENTE in Cineformraw con diversi flavour di compressione e qualità supportando fino al 16k stereoscopico.

Oggi nel 2019 quasi ogni Brand ha la sua codifica Raw, a partire Arriraw, Redcode, SonyRaw, PanasonicRaw, l’anno scorso l’introduzione di ProresRaw che permette il recording in formato ProresRaw direttamente dalle camere che escono in raw da SDI sui recorder Atomos e pochi altri, fino al recente Braw di blackmagic.

A Ibc 2018 Blackmagic design lancia la palla nel campo del raw, introducendo il loro codec proprietario braw (blackmagic raw) nel mondo del broadcast e del cinema con una certa forza dirompente, e soprattutto disponibile subito, dallo stesso giorno con il firmware in beta 6.0 per la UrsaMiniPro, il nuovo aggiornamento di Davinci Resolve 15.1 per supportarlo e la promessa che a breve sarà disponibile anche per la nuova camera, pocket 4k e così è stato con il firmware 6.2, ma nel contempo toglieva la registrazione Dng.

La differenza tra il Dng e il Braw è evidente e chiara, il dng è uno standard fotografico, peraltro abbandonato dai suoi stessi creatori nel 2016, piegato alle necessità dei video, mentre il Braw è un moderno codec raw pensato per le immagini, dove convivono le diverse necessità di lavoro di un codec video di fascia alta e le richieste di fascia bassa.

La presentazione del Braw è stata abbastanza curiosa, dove GrantPetty ha scherzato sul fatto che con un codec così leggero non servono più le schede video esterne di decodifica, ironeggiando sul fatto che le producono loro per Apple.

Come sempre l’innovazione porta pro e contro, fautori e osteggiatori, fino al parossismo, ma essendo un pragmatico, preferisco fare una analisi meno tecnica (quella la lascio alla fase finale) e più pratica.

 

CONTRO

  • leggermente meno nitido del CDNG (meno aliasing sui dettagli)
  • a forti compressioni ha artefatti sui dettagli fini
  • meno compatibile nelle applicazioni rispetto al CDNG (ma licenza free per la sua implementazione).

PRO

  • il rapporto peso qualità è incredibile
  • la minor incidenza di falsi dettagli e aliasing permette una maggior fluidità di ripresa-riproduzione del movimento
  • il nuovo sistema di demosaicizzazione ottimizza e migliora la cattura della struttura dell’immagine riducendo artefatti come FPN
  • la parziale demosaicizzazione applicata in camera permette una maggior leggerezza di lettura sui dispositivi
  • richiesta di minor velocità di scrittura permette uso di storage meno costoso e poter registrare più a lungo con minor consumi
  • i vantaggi del raw senza il peso del raw in tutti i sensi
  • registrazione di segnale 12 bit log con metadata attivi
  • possibilità di incorporare LUT e altri elementi di preview non distruttiva
  • possibilità di trimming non distruttivo da Resolve per tagliare i file raw ed esportarli in raw senza ricompressione (non tutti i raw, non tutti gli NLE lo permettono).
  • possibilità di export dei singoli frame raw senza ricompressione per test, Dit working etc con passaggio di pochi dati.

Dopo qualche mese dalla sua presentazione esistono già diverse applicazioni professionali a supportarlo come Resolve immediatamente, Nuke, Scratch, Premiere e Mediaencoder tramite plugin esterno, la lista sta crescendo rapidamente grazie al fatto che chiunque può implementare la gestione del braw nel proprio software gratuitamente, al contrario di ogni altro codec raw nato sulle telecamere che richiede un pagamento di licenze anche per la semplice lettura perchè si devono usare gli sdk proprietari.

Per coloro che vogliono testare il codec, possono scaricare dei sample dalla pagina Blackmagic Raw

In occasione del IBC2019 Blackmagic Design rilascia il kit 1.5 del BlackMagic raw, il kit contiene SDK, player e test per dischi Braw e … plugin per Premiere, AfterEffects e Avid per leggere agilmente il codec al di fuori delle applicazioni Blackmagic! Così che oggi buona parte degli editor sono in grado di leggere nativamente il codec BlackMagic Raw.

Inoltre stupendo tutti i detrattori del codec, rilascia il nuovo Video Assist HDR a 2500 nits con la capacità di registrare in Braw da camere NON BMD, dalla Panasonic Eva e dalla Canon C300 MkII!

 

I falsi miti sul Raw in generale e non solo su questo Raw
Se è compresso non è raw!

l’affermazione denota ignoranza, in tanti punti, a partire dal fatto che nessuna camera registra il 16bit lineare che catturano i sensori, ma lo codificano e comprimono in vario modo dentro raw 14bit logaritmici (in fotografia) o raw 12bit logaritmici (nel cinema), sia per questioni pratiche di flusso dati, sia per gestione fisica della massa di dati che non compressi sarebbero ingestibili.

Dato che qualcuno potrebbe dubitare delle mie parole, delle parole di Blackmagic visto loro lo regalano (ricordiamo che tranne pochi esempi high end, tutti gli altri vi fanno pagare saltamente la registrazione non fortemente compressa, figuriamoci il raw) meglio mettere uno screengrab dal sito Red, i primi a dotare una camera di codec raw proprietario e spesso usate per shooting miliardari dove non ci sono limiti di mezzi, eppure per L’Uomo ragno ritenevano buona una compressione 5:1 visually lossless, e la non compressa che tutti auspicano per i loro lavori da caricare sui social non era adatta…

la cosa divertente è che quello che gli amatori ritengono un problema, ovvero la morbidezza delle immagini, è qualcosa che molti dop di fascia alta auspicano conoscendo bene i problemi degli eccessi di nitidezza, spesso vengono scelte compressioni maggiori per mantenere più morbide le immagini.

Ovviamente c’è compressione e compressione, la maggior parte delle persone per compressione pensa sempre a quella distruttiva di streaming e company non a compressione più intelligente.

Se è parzialmente demosaicizzato non è raw!

il braw, se la gente avesse la competenza e l’intelligenza per leggere l’sdk di Blackmagic vedrebbe cosa accade e perchè si parla di demosaicizzazione parziale, ma se lo potesse fare, non scriverebbe certe sciocchezze.

Ogni raw ha il suo workflow di lavoro, processi fatti in camera e processi fatti nel software, con vantaggi e svantaggi.
Un codec è raw se permette :

  Braw
la gestione delle matrici separate si
il controllo reale di iso e altri paramentri in post si
il controllo del bilanciamento colore in post si
registrazione dei 12 bit log per matrice si

quindi se il codec offre tutte queste opzioni è un codec raw.

Si è bello ma non lo leggo dal software XYZ!

altra affermazione opinabile visto che anche gli altri codec non sono ben letti (con eccezione di Red) in modo ottimale dai vari NLE, anzi spesso richiedono la creazione di proxy con i software dedicati. Normalmente ai montatori non si danno gli originali, ma i giornalieri con Lut applicate, se si parla di raw o log, quindi il problema non sussiste.

Oggi Bmd vende tre camere con il Braw, la UMP e la Pocket4k e 6k, vendute con licenza completa di DavinciResolve, ovvero il miglior software per lo sviluppo Raw e in particolare Braw, oltre che buon editor, postproduction etc etc…
Se si vuole lavorare in un altro software Resolve prevede dal pannello media il sistema di ingest e conversione in altri formati, si può già fare una precolor oppure gestire direttamente la color e mandare il filmato sviluppato all’applicazione NLE.

 

La piccola rivoluzione relativa all’introduzione del Braw ha creato tanti osteggiatori, per chi ha dubbi e ha bisogno di più test scientifici e ben pensati, potete visitare il sito di Frank Glencairn sul post relativo alla qualità del Braw.

Dove mostra dei test pratici nei quali la differenza reale tra i diversi flavour di compressione è relativa, ma la qualità generale resta molto alta contro una serie di richieste generali veramente irrisorie.
Man mano che passa il tempo aggiungo qualche frame estratto a caso dagli shooting, senza denoise, per far capire quanto la qualità anche compressa sia eccezionale sia come dettaglio che pulizia dell’immagine.

H264 standard… mica tanto

Spesso mi sento dire, mi faccia un mp4 che è standard … sorrido e creo un file che so essere compatibile con le esigenze del cliente.

Una volta era più facile distribuire un video, perché i supporti erano più limitati a vhs o dvd, con due standard video PAL o NTSC per distribuire in tutto il mondo.

Oggi ci sono mille e più varianti, ad esempio se si fornisce un supporto solido come il Blu-ray ci sono quelle che vengono indicate come le specifiche di base, e le varianti di formato… che ogni anno cambiano sul sito ufficiale del consorzio, perché a seconda del lettore da tavolo potrebbe essere supportata o no la variante, non dipende dalla data di produzione, o dal brand, anzi alle volte prodotti di marchi meno noti supportano più formati di altri più blasonati.

Lo standard del Blu-ray nasce a 24 fotogrammi al secondo, per rispettare la naturale creazione dei film, senza alterazioni su durata della parte video o alterazione sulla parte audio. Poco dopo la sua nascita è stato subito aggiunto il 23,976 per supportare più facilmente la riproduzione nel mondo Americano e Giapponese (NTSC a 60 hrz). Il codec di compressione di nascita era l’mpeg2 come il dvd (anche se con una variante dedicata all’alta definizione) anche se quasi subito fu introdotto il formato H264 (variante del codec mpeg 4), poi di recente aggiornato al suo successore H265.

Oggi il Blu-ray supporta dal 23,976 24 25 29,97 30 48 50 59,94 60, e neanche tutti in stream progressivo, ma alcuni solo in stream interlacciato per questioni di compatibilità.

Questo per dire come un prodotto che nasceva per uniformare e offrire il massimo della qualità della visione casalinga senza “interpretazioni” si è trasformato nell’insalata dei formati. Inoltre a seconda del monitor, televisore o proiettore su cui si vedono i risultati le immagini saranno più o meno fluidi o naturali.

Quando ci viene chiesto un H264 standard ci viene chiesto il nulla, perché lo standard è molto ampio e a seconda del dispositivo con cui verrà letto verrà INTERPRETATO in modo più i meno fedele.

Lo standard H264 prevede di registrare da un minimo di un segnale 8 bit 4:2:0 ad una serie di informazioni fino a 12bit 4:4:4, cambiare le impostazioni di codifica punto per punto del filmato, gestire più flussi video sovrapposti, alpha, riproduzioni parziali dei dati, cioè ottimizzare in lettura una scalabilità 1:2,1:3,1:4 etc dei pixel, inglobare codice, indici di capitoli, aree sensibili con dati a link e molto altro ancora; peccato che quasi nessun encoder sfrutti tutte queste caratteristiche.

Quando si crea un file H264 la maggior parte degli encoder ci permette solo di impostare il tipo di compressione e i profili, ma niente di più.

Ironicamente invece di usare un prodotto commerciale, la soluzione più versatile anche se meno comoda è il prodotto freeware ffmpeg, un programma a comando di linea che supporta praticamente tutte le funzioni di moltissimo codec sia in ingresso che uscita, ed è disponibile su tutti i principali sistemi operativi, sono state sviluppate diverse interfacce per utilizzare in modo più comodo e flessibile il prodotto.

Considerato che chi arriva ad un articolo di questo tipo di aspetta un suggerimento sugli “standard” vi posso dare dei suggerimenti su come affrontare il discorso e cosa scegliere come impostazioni e cosa influenza qualità e “compatibilità”.

⁃ Riproduzione da televisore o decoder o player multimediale

⁃ Riproduzione da computer diretto

⁃ Caricamento online

Anche se sono le situazioni più comuni in realtà aprono mille e più situazioni e varianti, perché in realtà la questione della riproduzione è al 50% dipendente dal file e al 50% dal sistema di riproduzione.

Quando si crea un file “classico” si sceglie la risoluzione, i fotogrammi al secondo, il bitrate e se questo è fisso o variabile.

In generale si deve creare un equilibrio tra i dati al secondo letto dal dispositivo e la qualità finale, questo significa che se si sceglie una compressione fissa vuol dire che ogni fotogramma avrà la stessa quantità di informazioni registrabili, immaginiamo 2000, ma se ho un fotogramma di una persona davanti ad un muro bianco tutti i dettagli vengono dedicati alla persona, se ho 20 persone gli stessi dati vengono “divisi” per registrare, quindi ogni persona al max avrà 100 per registrare i dettagli, quindi l’immagine sarà meno dettagliata.

Questo sistema permette di avere i seguenti caratteristiche:

⁃ Funziona anche su dispositivi più semplici

⁃ Prevedibilità della dimensione finale del file.

⁃ Per migliorare la qualità basta alzare il bitrate globale (entro certi limiti).

⁃ Per migliorare la compatibilità con i vecchi dispositivi basta abbassare il bitrate.

⁃ Non si notano jittering di decodifica dei movimenti perché i fotogrammi non devono essere creati ma sono tutti completi.

Se si sceglie una compressione variabile si imposta un range di dati minimo e massimo, per cui il sistema di compressione esegue due livelli di compressione, sia creando un frame Delta e un frame parziale per cui vengono creati dei gruppi di fotogrammi, con la logica di creare il primo frame intero, il secondo frame memorizza solo la differenza tra il primo e il secondo, il terzo la differenza tra il secondo e il terzo e così via fino al prossimo fotogramma Delta.

Il secondo livello di compressione variabile si preoccupa di distribuire una quantità di dati del gruppo in funzione delle necessità, di quanti dati sono necessari fotogramma per fotogramma, ottimizzando peso e qualità.

Il risultato ha caratteristiche differenti rispetto al primo metodo :

⁃ Con lo stesso bitrate massimale la qualità può essere notevolmente migliore

⁃ Lo stream dei dati è più efficiente via rete

Ma ci sono dei contro :

⁃ Questa lettura chiede cache più grandi e dispositivi più potenti perché i fotogrammi sono creati al volo, non esistono completamente

⁃ Se si vuole andare avanti e indietro nel filmato la richiesta di memoria e potenza sale

⁃ Alcuni tipi di filmati e movimenti possono con alcuni encoder dare risultati peggiori che il primo metodo perché da frame a frame sarà meno coerente come struttura e forma (se si lavora solo con bitrate molto bassi)

⁃ In caso di problemi di stream dei dati si possono vedere dei salti nei movimenti veloci, causando una visione a scatti.

⁃ Su dispositivi più vecchi possono esserci riproduzioni di artefatti (blocchi di movimento etc) che non sono presenti nel filmato originale.

In conclusione :

A seconda del dispositivo più o meno recente si deve creare un h264 con il primo metodo e bitrate bassi se si vuole vedere su ogni dispositivo vecchio e/o poco potente come molti smartphone di basso livello; con dispositivi moderni si può creare video col secondo metodo che a parità di peso offrirà una qualità superiore e con dettaglio e sfumature più efficienti.

 


Youtube e la compressione digitale

YouTube-logo-full_color

In questo periodo mi capita di parlare spesso della compressione digiltale in funzione della distribuzione on line, e in particolare di Youtube, spesso trovo molta ignoranza sul come trattare il materiale, un po’ perchè ormai la maggior parte dei software hanno un profilo chiuso che non ci permette di editare i parametri di compressione, un po’ perchè molti non sanno neanche di cosa si parli quando si esporta un video, sembra che sia solo una operazione per finalizzare e basta.

quando va tutto bene, non è importante conoscere cosa sta dietro a tutto questo, ma quando abbiamo necessità di ottimizzare dei file per un particolare prodotto o dispositivo, o in questo caso per un Social come Youtube, dobbiamo impare di più di ciò che sta dietro le quinte, e quindi è necessario introdurre diversi argomenti.

Le basi della compressione

Quando si prende un video e lo si esporta da un qualunque programma di editing o di postproduzione ogni immagine viene nuovamente elaborata e successivamente compressa in modo più o meno distruttivo a seconda del tipo di compressione, di tipo di target che ci serve e da un grande numero di impostazioni del programma, dal contenuto dei video, da come il software gestisce il contenuto originale del video

Quando si carica on line un video sulle diverse piattaforme di sharing come Youtube, Vimeo, Facebook etc viene nuovamente compresso con regole e principi dettati dai creatori della piattaforma.

Quindi banalmente il video subisce al minimo tre compressioni, quando viene catturato, quando viene esportato, quando viene ricompresso dai server delle varie piattaforme. Il che vi può dare un’idea di come la qualità possa decadere molto e rapidamente.

Molti si chiedono il perchè, ci sono diverse ragioni :

  • il primo motivo è la compatibilità, se i server dovessero fare il play di mille formati, codec e frame rate il risultato sarebbe uno sforzo immenso, e le richieste dei player per la compatibilità influenzerebbero negativamente l’esperienza visiva, quindi per semplificare youtube converte sempre i filmati nel miglior rapporto di qualità visione on line.
  • il secondo motivo è altrettanto banale, se i server di Youtube lavorassero con la qualità massima sempre, sarebbero intasati dai milioni di video fatti coi cellulari a bassa definizione (dimentichiamo il fatto che salvano in fullhd o 4k, perchè conta soprattutto il sensore), quindi esistono dei formati predefiniti con cui gestire il materiale fornito
  • il terzo motivo è pratico dovendo inglobare e gestire diversi formati e bitrate, chiedere alle persone comuni di fare i diversi formati è troppo complesso, per cui loro acquisiscono il nostro materiale e in automatico viene convertito per il formato ottimale di play per il 1080p e tutte le sue declinazioni inferiori (720p, 480p ,360p ,240p).

Se guardiamo le specifiche di youtube scopriremo che youtube preferisce filmati con un certo formato, un certo datarate e determinati settaggi. Se usiamo formati e caratteristiche diverse il filmato potrà essere caricato, ma la compressione sarà più aggressiva e distruttiva rovinando la qualità del filmato. Se usiamo formati di qualità più alti rispetto alle specifiche, comunque la gestione del server lo ridurrà al formato di default quindi si sarà sprecato più tempo e in alcuni casi andremo a perdere anche in definizione.

Perchè esistono ancora formati ridicolmente bassi come 360p e 240p?

perchè esiste un sistema automatico che per mantenere la fluidità di visione, se la rete internet attraverso il quale noi vediamo il filmato è lenta, si guarda una versione più leggera come peso e risoluzione per mantenere la fluidità. Inoltre esistono una marea di dispositivi che nonostante sia prodotti nuovi, hanno risoluzioni schermo molto basse, e quindi scaricare un filmato 1080p su un dispositivo (uno smartphone) che ha uno schermo che al max arriva a 576 o meno, sarebbe uno spreco di risorse e dati scaricati.

Ricordiamo che oggi l’uso principale dei social è via strumenti mobile, e per quanto si parli di fibra e gb come niente, esiste un mondo limitato al 3g in molte zone, o anche meno, e dato che la richiesta di banda cresce molto più velocemente della creazione di nuovi ponti e nuove celle telefoniche (i blackout di rete che avvengono durante i periodi di vacanza lo dimostrano) è importante poter fornire il servizio anche quando le risorse sono scarse.

La compressione altera più del necessario

Durante l’esportazione un programma di montaggio esegue un rendering, operazione che esegue più operazioni contemporaneamente, a seconda del programma lavora in spazi colore più ristretti o più estesi; nella compressione dei dati gli algoritmi devono tener conto di tanti fattori.

Spesso non ci si rende conto che ci sono operazioni che possono rendere più “morbido” il filmato in esportazione, che solo chi ha esperienze di compressione conosce e sa dove agire.

Scalatura : quando il programma scala una fotografia o un filmato, sia a ingrandire che a rimpicciolire, se non ottimizzato bene può far perdere qualità/nitidezza (sull’encoder adobe ci sono in più parti ottimizzazioni relative proprio a questo fattore).

Cambio di frame rate : quando il programma esporta da un frame rate all’altro deve creare in più modi i fotogrammi intermedi, o togliere dei fotogrammi, e questo può influenzare la fluidità del filmato o la nitidezza nel momento in cui vengono creati nuovi fotogrammi con le tecniche di interpolazione.

Cambi sulla luminanza e sulla crominanza : ogni tipo di manipolazione del croma e della luminanza possono evidenziare artefatti digitali presenti nel filmato originale, possono ridurre le sfumature di colore per limiti dello spazio colore, possono amplificare il rumore video perchè ne spostano la collocazione originale pensata dal codec di ripresa.

 

La compressione diretta

Immaginando di avere il filmato finito e perfetto a misura, al frame rate corretto, senza interventi, la compressione prende i dati e li ottimizza e riduce dentro gli schemi di compressione dell’h264.
H264 è un codec con degli standard ma diversi parametri e modi di comprimere i dati, per cui a seconda di come si setta un video il risultato può essere più o meno definito, più o meno dettagliato.
gopPer ridurre lo spazio occupato il formato H264 utilizza la tecnica del GoP, Group of Picture, in pratica se giriamo a 30 fotogrammi al secondo e abbiamo un GoP 15,  il codec registra il primo fotogramma intero, poi ne registra uno intero dopo 14 fotogrammi, e dei fotogrammi intermedi ne registra solo le differenze tra uno e l’altro. Questo significa che se nel filmato non ci sono movimenti camera o tanti oggetti in movimento, la compressione, pur mantenendo la qualità ci permette di ridurre molto il peso del file.

Su youtube viene suggerito un valore pari a metà del frame rate, il che significa che se il filmato ha molti movimenti all’interno del frame, oltre a non sfruttare bene il bitrate si rischiano degli errori o difetti di movimento, ad esempio se c’è una esplosione in un filmato oppure, cosa più facile si inquadra dell’acqua in movimento, oppure dei coriandoli gettati in aria, diventa più difficile per il codec distribuire il datarate, e quindi ogni tanto si potrebbe sentire un saltino.

Una possibile soluzione è dimezzare il gop, quindi invece della metà dei frame, ogni quarto dei frame al secondo, in modo che ci siano più frame interi per gestire meglio gli oggetti in movimento veloce.
Ad esempio 6 per il 24p (6×4=24), 5 per il 25p (5×5=25), 5 per il 30p (5×6=30).

L’altro parametro che ci permette di controllare la qualità è il data rate, ovvero la quantità di dati al secondo che può gestire per ogni fotogramma, più alto è il data rate, più alta è la qualità di ogni fotogramma, mentre abbassando il datarate il risultato è che le immagini perderanno nitidezza, e spesso appaiono zone di solarizzazione perchè non ci sono abbastanza informazioni per registrare i dettagli più fini.

Il datarate appare come un valore in Mega per secondo, ma la sua distribuzione nei fotogrammi che contengono un secondo è legato al metodo sottostante.

Variable o Costant bit rate definiscono come il data rate verrà distribuito lungo una sequenza

L’opzione Costant bitrate, la distribuzione è fissa, per cui ogni fotogramma riceve la stessa quantità di dati, il che offre una maggior fluidità di decompressione del filmato, perchè richiede buffer più semplici da gestire, ma in caso di filmati dove si alternano rapidamente scene con grande movimento con scene statiche, è possibile trovare molti sprechi di datarate, e quindi un file di minor qualità. Ad esempio se abbiamo una inquadratura di un’auto ferma che esplode, durante l’attesa viene sprecato datarate sui frame statici e magari per l’esplosione non ci sono sufficienti dati per gestire la qualità e il dettaglio delle fiamme in movimento veloce.

L’opzione Variable bitrate invece è un metodo che utilizza un valore variabile di dati, da un minimo ad un massimo e con un algoritmo che analizza la quantità di dati in movimento e distribuisce meno datarate dove ci sono frame statici, mentre un numero più alto dove ci sono movimenti ampi, movimento veloce o grande dettaglio di movimento.

quindi riassumendo :

  • GoP : valori più alti riducono il peso del file ma contribuiscono ad introdurre possibili artefatti nel movimento
  • Data rate : valori alti danno maggior qualità e maggior peso al file, bassi valori riducono il peso ma a seconda del contenuto (dettaglio immagini e quantità di elementi in movimento) si riduce la qualità del file finale.
  • CBR o VBR per gestire la qualità costante o distribuire meglio la qualità esistono due metodi di calcolo dei dati per ogni fotogramma, il primo offre una compressione più veloce e costante nella distribuzione dei dati, il secondo è più lento, ma sui filmati con molti dettagli e/o movimento può offrire una maggior qualità finale.

L’ottimizzazione per la compressione

Original with noiseIl contenuto di un video influenza molto il risultato perchè gli algoritmi di compressione analizzano il contenuto del fotogramma, dei fotogrammi circostanti per decidere in che modo ridurre le informazioni in modo ottimale dentro il codec. Ironicamente i video con pochissimi dettagli rischiano maggiori danni di quelli molto dettagliati.
Prendiamo un video di un oggetto in movimento su un limbo chiaro, lo stesso filmato ma al posto del limbo mettiamo una distesa di sabbia, il secondo video avrà più nitidezza e dettaglio a parità di parametri di compressione, perchè tutti quei dettagli forzano il profilo di codifica a dare il massimo e spremere ogni dettaglio dalle immagini.

La prima immagine (cliccando si può vedere in fullhd) mostra come la compressione di una immagine con un leggero rumore venga compressa correttamente e non presenti una particolare perdita anche se si comprime molto.

Nella seconda immagine (cliccando si può vedere in fullhd) ho amplificato un poco la struttura dei colori per mostrare come avendo tolto tutto il rumore si formano appena si adenoise to compressionpplica un poco il contrasto o la saturazione una serie di bandeggi / solarizzazioni che evidenziano i limiti del numero di colori disponibili per gestire quella sfumatura.

Oggi spesso si tende a volere video troppo pulito, si applicano forti denoise per togliere ogni tipo di grana o rumore video, ma eccedendo in questa pratica spesso si vedono immagini che tendono a creare il fenomeno del banding, ovvero si vedono le strisce di colore, perchè senza il rumore che “mescola” e inganna la visione si vedono tutti i difetti.

Ricordiamo che indipendentemente dal vostro video di partenza, che abbia anche una sorgente a 12 bit (ovvero miliardi di colori e sfumature) quando usciamo per youtube abbiamo un Output a 8 bit, ovvero 2 alla ottava per canale, che apparentemente sono ben 16 milioni di sfumature, ma se noi riprendiamo un cielo, al massimo dal blu più chiaro che è bianco, al blu più scuro che è nero abbiamo solo 256 sfumature pure, quindi senza un po’ di rumore che mescola le diverse strisce di colore con la tecnica che una volta veniva chiamata “dithering” si rischia di vedere i singoli bandeggi del colore.

Anche dalla sola thumbnail è possibile vedere come la versione senza rumore rischi molto di più nella compressione.

NATURALMENTE questo è un caso limite in cui ho forzato i difetti per renderli evidenti, spesso i risultati essendo più contenuti non sono altrettanto visibili.

Perchè il mio video si vede peggio di un altro fatto con la stessa camera

 

di sicuro non è colpa di youtube 😀

Ora dopo essermi preoccupato di avere le simpatie degli avvocati di Google, posso darvi delle buone ragioni tecniche per cui ogni video sarà diverso anche se fatto con la stessa camera.

Ogni volta che si realizza una ripresa, la qualità del video ha una serie di parametri che determinano la nitidezza, la qualità delle immagini, presenza o assenza di rumore, etc. Pretendere che due persone anche usando la stessa macchina, stesse lenti, nello stesso luogo contemporaneamente ottengano lo stesso risultato di qualità è molto complesso, e necessita di un allineamento di tanti parametri, non a caso quando si fanno riprese multicamera, che sia per cinema, televisione, etc si utilizzano sempre dei target (tabelle di riferimento univoche) per allineare in post tutto il materiale, perchè comunque basta che una persona cambi il diaframma per avere meno luce in ingresso e l’altro cambi invece gli iso, e le immagini saranno diverse in nitidezza e contrasto, immaginate se magari si hanno lenti diverse, e molto altro ancora…

Inoltre basta solo cambiare angolo di ripresa, e avendo luce diretta, riflessa, laterale, controluce, le immagini non saranno solo diverse come luce, ma avranno comunque dominanti e strutture diverse.

Cosa funziona meno bene su youtube?

Quando carichiamo un video, ci sono dei fattori che influiscono su come verrà ricompresso il file, quindi è importante tenerne conto per non rimanere delusi.

  1. la quantità di dettagli delle immagini
  2. i contrasti all’interno del quadro
  3. i cambi scena con differenze notevoli di luminosità
  4. il rumore / noise del filmato originale
  5. la risoluzione originale di caricamento del filmato

per fare un esempio, lo stesso video in 4k caricato sia su youtube che su vimeo ha dato origine a risultati differenti, su youtube, che tengono poi un bitrate di uscita più basso, la versione in FHD ha un maggiore effetto di banding rispetto a vimeo, se carico direttamente il video in formato FHD la qualità su youtube e su vimeo sarà superiore perchè sarà solo ricompresso ma non scalato.

youtube_fhdvimeo-hdA Oggi 1 ottobre (specifico perchè gli algoritmi sono in continuo sviluppo) il sistema di youtube/vimeo offre un buon rapporto qualità fluidità di streaming a prezzo di una compressione sia nei dati che nella risoluzione, per cui va considerato che possiamo valutare solo la qualità della resa nel formato che abbiamo caricato noi, le altre non avendo controllo sulle varianti create da youtube non dobbiamo farci troppi problemi altrimenti ci rovineremmo la salute mentale e basta.

  1. quando carichiamo un filmato di animazione, con toni piatti, l’encoder sa cosa deve fare, ovvero dettagli intorno ai bordi, pulito nei toni piatti. Quando carichiamo un filmato ripreso in pieno giorno pieno o meno di dettagli l’encoder sa di dover preservare a meglio tutti i dettagli possibili.
  2. la differenza di contrasto comporta il fatto che l’encoder darà spazio alle parti più luminose, ma meno alle parti più scure causando facilmente del banding e la presenza di elementi di blocking in movimento nelle parti più scure.
    in generale tutti gli encoder non tengono grande considerazione degli elementi nelle ombre perchè sono considerati meno importanti, dato che il cervello guarda principalmente le parti illuminate.
  3. nei cambi scene, a seconda di come viene fatta l’analisi del filmato per la compressione in CBR o VBR possono esserci più o meno bit a disposizione delle immagini al cambio scena, per cui ci possono essere dei salti e artefatti più presenti nel cambio scena. In quei casi è importante come si impostano i keyframe, se i cambi scena sono frequenti è meglio impostare dei keyframe più bassi come valore in modo che l’analisi sia fatta più di frequente, e quindi il filmato fornito a youtube abbia più informazioni in quelle parti.
  4. come già detto in precedenza, un leggero noise permette di nascondere gli eventuali bandeggi nelle sfumature, e soprattutto forza gli encoder ad analizzare meglio e più attentamente i dettagli dei filmati, quindi anche un noise molto leggero è utile per avere immagini più pulite nel risultato finale.
  5. Più alta è la risoluzione di partenza, migliori saranno le scalature, ma dipende anche dalle strutture.
    Ad esempio come si può vedere nelle immagini sopra, su vimeo sia vedere il file 4k scalato a Fhd, che il fhd direttamente, la qualità è lineare, mentre su youtube la scalatura compromette molto di più la qualità, creando banding e altri difetti, ma si sa che vimeo ha un bitrate molto più alto, quindi la qualità è senza compromessi.


Zuppa di codec

tape-soup-capone-3Nel moderno mondo digitale si scatta, si riprende senza preoccuparsi come le immagini si archivino sui telefoni, telecamere, macchine fotografiche, etc. Poi caricandoli direttamente sul web, sui propri cloud, partendo dallo smartphone, alla smartcamera o altro, i file vengono transcodificati in x codec diversi, il che finchè non ci servono, non è un problema, ma quando dobbiamo aprire questi file ed editarli con un programma di editing, potremmo incontrare diversi problemi.

Iniziamo col capire cosa è un codec e cosa è un contenitore:

Il contenitore è la struttura che contiene i file video, che può cambiare a seconda del sistema operativo (sotto windows è comune .avi mentre sotto MacOsX è comune .mov) che favorisce le risorse del sistema nell’aprire il contenuto dei file.

Il codec è il sistema con cui i diversi fotogrammi di un filmato vengono archiviati, a seconda del codec possono occupare più o meno spazio, offrire più o meno qualità, richiedere più o meno risorse CPU per leggere i singoli fotogrammi.

I codec hanno diverse caratteristiche, ma quello che interessa a noi è se un codec è pensato per la cattura e storage o per la lavorazione, quindi editing etc.

I codec classici di registrazione di telecamere e dslr sono codec di cattura, quindi il loro obiettivo è massima qualità, minimo spazio occupato; il problema della decompressione e compressione è relativo perchè questi dispositivi hanno sempre una soluzione hardware per leggere e scrivere questi codec.

Un codec di lavorazione, normalmente detto DI Digital Intermediate è un codec che occupa molto più spazio sul disco, ma preservando la qualità originale permette una lavorazione fluida, semplice all’interno di tutti i programmi professionali.

DI sono codec come Prores, Cineform, DnXHD/HR, GV codec e simili.

Oggi affrontiamo una problematica molto sentita nel mondo moderno, ovvero come convertire le sorgenti in formato X in uno di questi formati di lavorazione.

Per lavorare più comodamente durante e dopo la conversione suggerisco di installare il Quicktime7 sia su Windows che su Mac (per chi pensa che il quicktime X basti, si legga l’articolo sui limiti dello stesso, e tutti i problemi che causa al sistema, dalle preview mancanti alla forzata conversione dei file anche quando non serve).

Quicktime7 per windows si scarica da qui.

Quicktime7 per OsX si scarica da qui.

Codec Cineform per windows e mac si scarica Installando la goPro App da qui.

Codec DnXhD/R Avid per win e mac si scarica da qui.

In questo modo grazie al Quicktime 7 si è in grado di inserire gli altri codec nel sistema in modo più ampio, e grazie a questi ottimi codec DI possiamo convertire il formato X difficile o impossibile da lavorare in un formato pensato per essere lavorato.

indexPer convertire cosa usiamo?

Sia per Windows che per MacOs esistono diverse soluzioni sia Free che a pagamento che leggono e poi convertono i file in altri formati.

Chi acquista la licenza di un prodotto Adobe video ha la possibilità di usare Media Encoder, programma nato e pensato per la conversione dei file video. Al suo interno contiene già sia i preset per Cineform che DnXhD/HR, e anche i codec per la conversione, per cui per convertire uno o più file basta trascinare sopra l’interfaccia, sul preset scelto il o i file che vogliamo convertire e poi attendere…

Il pacchetto è presente identico sia per windows che per mac.

imagesSe fossimo interessati ad una soluzione Free?

Sotto windows un programma interessante è VirtualDub, in particolare aggiungendo alcune plugin gratuite che gli permettono di utilizzare il motore di FFmpeg per la lettura dei file di ogni tipo e codec.

Funziona bene anche con Parallels sotto MacOS, quando sono necessari alcuni tipi di conversioni speciali complicate.

squaredlogo96Un prodotto disponibile sia per windows che mac è Mpeg streamclip, che prevede di leggere moltissimi codec e salvare nei codec presenti nel sistema (compresi Cineform e DnxHd e Prores).

Questo prodotto è particolarmente interessante per la sua capacità di leggere formati web come il formato .flv di flash e similari.

iconSotto MacOs esiste un altro prodotto Free chiamato Media converter, da prendere direttamente dal suo sito, perchè ne esistono diversi con nome simile. Il sito originale è questo media-converter.sourceforge.net

Questo convertitore è basato su FFmpeg, un filo più complesso da usare se si vuole uscire dagli standard perchè prevede di conoscere settaggi etc, ma molto potente, in particolare per la sua capacità di fare il rewrapping, ovvero cambiare il contenitore ai file che potrebbero essere letti direttamente da win e mac, ma è incapsulato in un contenitore poco “editor oriented”. La procedura per usarlo per tale processo la trovate in questo mio articolo.

logoUn altro prodotto molto interessante e comodo per le conversioni disponibile sia sotto Windows, Mac e Linux è Handbrake, sempre basato su FFmpeg, ha un sacco di possibilità di lettura e scrittura di codec, è più semplice per la gestione delle conversioni dei file, e legge anche formati come divx e simili, senza avere il codec installato sul sistema

Anche se molti non comprendono la necessità di convertire i file in un DI, è un processo fondamentale per semplificare i processi di editing, infatti molti pacchetti professionali, Avid per primo, comporta prima del montaggio la conversione in tale formato, poi si può iniziare ad editare il materiale, solo di recente con il concetto dei link AMA si possono montare i file originali senza conversioni, ma solo in determinate condizioni.

Final cut lo stesso discorso, il formato ProRes (anch’esso un DI) fu creato per quello. Edius della GrassValley (nome storico nel video e nella postproduzione hanno i GV Codec; Adobe ha acquisito le licenze di Cineform e DnxHD/Hr da Avid per fornire a Premiere i codec DI migliori, e a breve con la nuova release offrirà anche il codec Prores per entrambe le piattaforme, windows e mac, direttamente, senza richiedere soluzioni di terze parti.

qtE Bug di sicurezza del quicktime per windows?

Ultimamente sto leggendo notizie allarmistiche riguardo ad un teorico bug del quicktime 7 per windows, la verità è che la vecchia versione di Quicktime 7, se si attivavano le estensioni web e java per il web poteva essere usato da hacker per entrare nel computer, ma la release attuale (quella linkata in questo articolo) non solo ha corretto il bug, ed evita l’installazione delle estensioni web se non necessarie.

Personalmente non ho mai avuto problemi neanche con il precedente prodotto.
Utilizzo un principio : la macchina da lavoro NON deve essere connessa a internet, per evitare update automatici di sistema o software che potrebbero in qualche modo danneggiarvi durante un lavoro, i forum sono pieni di persone in panico perchè si è aggiornato il sistema (win o mac) si è aggiornato il programma grazie ai sistemi di aggiornamento intelligente (non si sa però intelligenza di chi, visti i danni che fanno), e il programma o è instabile o non legge correttamente il progetto.

Sia perchè non permetto mai ad un qualunque software o sistema operativo di comunicare all’esterno senza il mio permesso; il concetto è talvolta noioso, perchè si deve confermare al firewall che la comunicazione in ingresso o uscita ogni volta, ma almeno sono sereno che ho ridotto ad un numero vicino a zero le problematiche di questo tipo.


Powered by WordPress & Theme by Anders Norén

Translate »
error: Content is protected !!