AF Focus Featured home

Da Jpeg a Hevc passando per Mpeg: i codec

Mlr31_codec_header

Rispetto ai predecessori JPEG e MPEG, oggi la mole di dati da comprimere è sensibilmente cresciuta, aprendo la strada ad algoritmi più efficienti, rendendo inadeguate le tecnologie più diffuse

Come promesso, torniamo a parlare di codec più efficienti rispetto ai loro predecessori JPEG e MPEG ricordando che, per CODEC si intende una soluzione, hardware o software, che elabora un video e lo memorizza in un flusso di byte in fase di COdifica, mentre effettua il procedimento inverso in fase di DECodifica (come, ad esempio,  un televisore che decodifica i canali).

Quando si parla di sensori fotografici e di fotografie è inevitabile il connubio con i megapixel, cioè la quantità in milioni di pixel di ogni immagine ripresa. Eccezion fatta per i dispositivi che riescono a scattare direttamente in RAW, cioè senza elaborazione grafica, nella stragrande maggioranza dei casi il formato dei file è l’onnipresente JPEG. Per quanto riesca a diminuire sensibilmente lo spazio occupato in memoria, oggi presta il fianco ad alcuni limiti che ne palesano l’obsolescenza inevitabile, specie nel settore informatico.

Da Jpeg a HEIFF

Gli stessi creatori dello standard MPEG, hanno sviluppato un nuovo formato di immagine ad alta efficienza chiamato HEIFF, standardizzato come MPEG-H Part 12 (ISO/IEC 23008-12). Acronimo di High Efficiency Image File Format, è un container che può contenere al suo interno non solo un’immagine, come il suo predecessore, ma anche sequenze di immagini ad alta risoluzione. La profondità colore passa da 8 (del jpeg) a 16 bit incrementando quindi, la gamma cromatica (come per l’HDR ad esempio). Più precisamente, può includere al suo interno:


  • Immagini singole o collezioni in un singolo file
  • Raffica di immagini (scatti naturalistici o sportivi)
  • Supporto simultaneo di video e immagini catturate dal video stesso
  • Immagini derivate da altri formati con codec diversi
  • Informazioni su lunghezza focale ed esposizione
  • Altri media come audio o testi con le informazioni di sincronizzazione per il playback

Per trattare questa enorme mole di dati, l’HEIFF include anche le specifiche per l’incapsulamento di immagini e sequenze conformi alla codifica ad alta efficienza meglio nota come HEVC.

tabella HeiffCome si evince dall’immagine soprastante, il contenitore rispecchia le specifiche tipiche MPEG (ISO Base Media File Format) con tracce di immagini (o video), eventuali sottotitoli e metadati, mantenendo l’estensione .heif per i file di immagini derivati da altri codec, riservando, invece, quella .heic per i contenuti trattati con il codec HEVC (tabella I).

tabella 2 heiffMesso a paragone con altri formati di immagini (tabella II), l’heif annovera tra le sue caratteristiche salienti:

  • l’uso di compressione sia distruttiva (lossy, a perdita di informazione) che lossless, cioè mantenendo tutti i dettagli originali;
  • la possibilità di poter modificare e ritagliare le immagini (cropping) senza rieseguire la compressione (in jpeg, ogni rotazione e ritaglio dell’immagine comporta un salvataggio che ne deteriora inevitabilmente la qualità)
  • il tiling, cioè la suddivisione dell’immagine in tanti tasselli, come un mosaico, per ottimizzarne la visualizzazione in browser o tramite streaming (trasportare tante “tessere” più piccole per poi riassemblarle, riduce il peso complessivo da portare tutto in una volta)
  • un canale per le trasparenze (alpha)
  • la presenza di una miniatura (thumbnail) per permettere l’anteprima del contenuto

La buona notizia è che il formato HEIFF è gestibile, a livello nativo, su dispositivi Apple con macOS High Sierra oppure con iOS 11, mentre su quelli Android è necessaria almeno la versione 10 del sistema operativo del robottino verde. Per quanto riguarda Windows, invece, per gestire il formato heiff è necessario scaricare gratuitamente l’estensione direttamente dallo store di Microsoft. Discorso diverso per le immagini .heic o quelle heif codificate con HEVC per le quali la casa di Redmond chiede un obolo di 99 centesimi (diversamente da quanto asserito su diversi siti in internet dove si spaccia per “gratuito” un trucco per avere le estensioni gratis).

codec per microsoftCon degli scatti effettuati da un cellulare Android di ultima generazione, si nota subito come la stessa foto, scattata in heic occupi 1,90MB contro i 4,13 MB di quella convertita in JPEG dallo stesso telefonino. La differenza, in termini di spazio occupato, è lampante. Effettuando, invece, lo scatto direttamente in JPEG i megabyte occupati sono 2,38 pur con una qualità inferiore.

differenze jpeg-heifPer esigenze di impaginazione l’immagine qui sopra non è abbastanza dettagliata da coglierne le differenze ma anche così, sulla “capigliatura” è già visibile una differenza nello scatto originale in HEVC.

nokia-heiff

Per sperimentare le caratteristiche del container, è possibile visitare il sito di Nokia, partner del progetto, dove si possono trovare esempi scaricabili di immagini singole, in burst o stereoscopiche per farsi un’idea visiva sulle potenzialità del nuovo formato.

 

Da Mpeg a HEVC

Come per le immagini statiche, il crescere delle risoluzioni ha portato un incremento esponenziale dello spazio richiesto per veicolare tracce video e audio in sincrono. Nell’articolo precedente si è visto come sia possibile calcolare quanto spazio occorre in un secondo, determinando il valore chiamato bitrate espresso:

  • in megabit al secondo Mbps (Megabit per second), normalmente usato per descrivere le velocità di download/upload per lo streaming
  • in megabyte al secondo MBps (MegaByte per second) quando ci si riferisce alla dimensione dei file, ad esempio, su supporti fisici come DVD e BluRay.

Nel valore del bitrate, vanno considerati sia quello del video che delle tracce audio presenti.

A partire dallo standard MPEG2 si è prevista anche una classificazione secondo profili e livelli che definiscono rispettivamente la sintassi degli algoritmi di compressione i primi, e i parametri come bitrate e risoluzione i secondi.

livelli e profili MPEGSe la versione 2 di MPEG era sufficiente per contenere circa due ore di filmato alla risoluzione di 720×480 (nei sistemi NTSC) dei DVD, con l’avvento dei BluRay è stato possibile contenere un filmato della stessa durata con una risoluzione Full HD e audio multicanale grazie all’H264/AVC di MPEG4.

Per fruire della risoluzione 4K con immagini HDR (High Dynamic Range) e tracce multicanale lossless si è passati alla versione successiva, chiamata H265/HEVC, dei BluRay UltraHD (probabilmente l’ultimo supporto ottico).

L’ High Efficiency Video Coding (HEVC) continua a dimostrarsi talmente efficace con le necessità attuali a tal punto che le trasmissioni DVB-T2 si sono adeguate allo standard (costringendo tutti ad aggiornare i televisori e decoder) ma richiede bitrate nell’ordine di circa 20 Mbps per riprodurre un filmato in 4K su supporti ottici e anche la metà per i servizi di streaming. Per i video a 8K, invece, il bitrate richiesto sale a circa 60 Mbps, decisamente ancora un po’ tanti per cui lo stesso Moving Picture Experts Group continua a studiare soluzioni atte a dimezzare la mole di dati da trasmettere. L’ultima evoluzione si chiama VVC, o Versatile Video Coding (H266), sviluppato in collaborazione con il Fraunhofer Institute (lo stesso dell’MP3) e promette un’efficienza del 50% rispetto all’attuale HEVC.

timeline codecParallelamente alle soluzioni di MPEG, nel corso degli anni sono stati sviluppati altri codec, con piattaforma open source, come il VP8, acquisito in seguito da Google, evoluto poi in VP9 e ancora in VP10 rinominato, in ultimo, come AV1, frutto della collaborazione dei big del settore del web.

Transport Stream (.m2ts, .mts, .TS)

Poiché l’efficienza di un codec non può limitarsi a dei soli supporti fisici, sono stati previsti e standardizzati dei protocolli di trasporto e dei container digitali, chiamati MPEG Transport Stream (MTS), nei quali i singoli elementi (video, audio, testi), chiamati ES, (Elementary Stream) sono impacchettati in gruppi PES, Packetized Elementary Streams i quali, a loro volta, possono contenere:

  • Video: MPEG-2 (H.262), AVC (H.264), HEVC (H.265), …
  • Audio: MPEG-2 Layer 2, AAC, HE-AAC, AC-3, DTS, DTS-HD, …
  • Sottotitoli DVB (testo o immagini)

Insieme agli ES sono presenti degli elementi per la loro sincronizzazione, per la correzione degli errori e per il controllo dell’integrità dei dati, in caso di perdita di uno o più pacchetti durante lo streaming.

PS e TSTutti questi elementi vengono poi miscelati, mediante il MUXING, in flussi pronti per essere trasmessi con lo streaming. In questo modo è stato possibile svincolare i dati da un supporto fisico, colmando le esigenze di trasmissibilità per sfruttare un mezzo meno affidabile come lo streaming che sia over air o over IP, mediante trasmissioni DVB o IPTV o le più recenti Prime Video, Netflix, Apple TV+, Disney+ e tutti gli altri servizi simili.

evoluzione codecDa ultimo, ad ogni evoluzione dei codec, si studiano soluzioni sempre più efficaci per dimezzare il bitrate a parità di risoluzione mediante soluzioni sempre più complesse quali ridondanza temporale, compressione cromatica 4:4:4, 4:2:2, 4:1:1 e 4:2:0, vettori di movimento, keyframe, B/P/I-frame e altri temi fondamentali che, però, richiederebbero una trattazione molto approfondita e quindi, per il momento, ci fermiamo qui.

Stay Tuned!

 

 

© 2022, MBEditore – TPFF srl. Riproduzione riservata.

Vuoi saperne di più? Di' la tua!

SCRIVICI




    MBEditore network

    Loading RSS Feed


     

     

     

     

     

    Pin It on Pinterest