I codec più utilizzati per ridurre le dimensioni dei flussi video

 

Il flusso video generato da una telecamera IP occupa molto spazio e banda, con un andamento esponenziale al crescere della risoluzione (HD, Full HD, Ultra HD) e del bitrate (fps). Per poterlo trasmettere in rete, è necessario comprimerlo con speciali algoritmi che rimuovono i dati ridondanti e riducono lo spazio occupato senza compromettere la qualità delle immagini e, quindi, la sicurezza.

 

Un codec è in grado di ridurre considerevolmente le dimensioni di un flusso video - anche fino a 20-30 volte per quelli “lossy” (cioè con perdita di qualità) - garantendo, al contempo, un’elevata qualità dell’immagine, grazie a tecniche sofisticate e “intelligenti” che elaborano il contenuto delle scene per evitare di distruggere informazioni importanti come quelle dinamiche e ricche di dettagli.

Per fare questo, utilizzano metodi diversi che comportano anche velocità (bitrate), qualità e latenze (tempo richiesto per comprimere, trasmettere, decomprimere e visualizzare il video) differenti.

Alcuni codec elaborano le singole immagini che, in sequenza, compongono il video, mentre altri si occupano dell’intero flusso video.

L’efficacia di un codec “lossy” si misura nel rapporto tra lo spazio occupato e la qualità video ottenuta, considerando che, a parità di codec, una maggiore compressione si traduce sempre in una minore qualità video.

I codec attualmente utilizzati nei sistemi video sono standard largamente diffusi, che garantiscono compatibilità e interoperabilità tra i vari componenti dell’impianto. I più utilizzati sono: Motion JPEG (MJPEG), MPEG-4, H.264 e H.265 (HEVC). Vediamoli insieme.

 

MJPEG: semplice, essenziale ma poco efficiente

Il Motion JPEG è un formato di compressione utilizzato nelle telecamere IP e nelle IP Cam consumer a basso costo, utilizzabile liberamente senza acquistare una licenza.

Genera una sequenza video digitale composta da una serie di singole immagini JPEG, elaborate singolarmente rimuovendo le informazioni superflue che, non essendo percepite dall’occhio umano, non comportano una evidente perdita di qualità.

Le singole immagini JPEG hanno la stessa qualità, che varia a seconda del livello di compressione e non sono dipendenti tra loro, ovvero non è presente alcuna compressione interframe.

La sequenza mantiene, quindi, la propria solidità e utilizzabilità anche in caso di perdita di uno o più frame.

Inoltre, facilita l’editing video, in quanto consente tagli sul singolo fotogramma.

La completa indipendenza dei singoli frame rende, tuttavia, il codec MJPEG molto poco efficiente rispetto agli altri sistemi.

 

MPEG-4: intelligenza artificiale ad alta efficienza

L’MPEG-4 (standard MPEG-4 Parte 2, conosciuto anche con il termine “MPEG-4 Visual”) è uno dei codec più diffusi al mondo per numerose applicazioni video consumer e professionali.

Il concetto alla base di questo codec è la predizione interframe (quantizzazione): il primo fotogramma del video viene utilizzato come riferimento per quelli successivi, che formano un “gruppo”.

Il codec crea, quindi, un primo set di informazioni per ricreare la prima immagine e un secondo set che comprende solo le variazioni (movimenti) rilevate rispetto al primo set, attraverso una compensazione nella variazione del movimento (motion-compensated frames).

Nel caso di una telecamera che riprende un soggetto che si muove rispetto a uno sfondo statico (ad esempio, persona che cammina lungo una parete), l’MPEG-4 codifica ogni singolo movimento del soggetto (che varia rispetto al tempo e allo spazio) e una sola volta lo sfondo che, invece, rimane immutato.

Il vantaggio di questa tecnica è di ridurre sensibilmente la quantità dei dati di digitalizzazione, garantendo immagini di qualità e, quindi, una buona efficienza.

 

H.264, l’evoluzione dell’MPEG-4

L’H.264 (MPEG-4 Part 10 o MPEG-4/AVC - Advanced Video Coding) definisce la sintassi del flusso dati e il metodo per decodificarlo.

Non è, quindi, un vero e proprio codec come i precedenti che definiscono l’intera catena di codifica e decodifica, ma una famiglia di standard nata nel 2005 e composta da profili diversi.

Un decoder può gestire uno o più profili, ma non necessariamente tutti, a seconda del tipo di impiego, delle caratteristiche tecniche ecc.

Lo standard H.264 viene solitamente utilizzato per la compressione video lossy (con perdita di qualità), ma supporta anche la compressione lossless (senza perdita).

Rappresenta l’evoluzione dell’MPEG-4, perché eredita lo stesso concetto di quantizzazione, rivisto e perfezionato per migliorare l’efficienza e la qualità video.

Ogni frame di immagine codificata in H.264 viene suddiviso in una griglia di blocchi, che possono contenere da un minimo di 16 (4x4) a un massimo di 256 pixel (16x16).

Ricordiamo che i pixel sono i punti che compongono un’immagine digitale. Per ogni blocco (e non per ogni singola immagine, come visto nell’MPEG-4), viene ricercata una corrispondenza tra i fotogrammi precedenti o successivi allo stesso (motion compensation).

Se viene rilevata una corrispondenza, i dati corrispondenti a questo blocco non vengono ritrasmessi, ma solo inviato un vettore che punta alla struttura corrispondente del fotogramma di riferimento, insieme ad alcune informazioni per correggere eventuali differenze di struttura.

Se la tecnica di motion compensation non trova corrispondenze adeguate, l'algoritmo di compressione utilizza la struttura dei blocchi vicini nello stesso frame, per predire la struttura e conservare la differenza tra quella prevista e quella effettiva.

 

HEVC H.265, il top per l’ultra HD

L’High Efficiency Video Coding (HEVC o H.265) è uno dei più recenti standard di compressione video e viene impiegato in alcune telecamere di sorveglianza di alta gamma, sia Full HD che u,ltra HD.

Approvato nel 2013, raddoppia il rapporto di compressione dati rispetto all’H.264 (50% di risparmio), migliora la qualità video a parità di bitrate e supporta i formati ad altissima definizione, come il 4K (3840x2160 pixel) e l’8K (7680x4320).

Per ottenere questi risultati, gli ingegneri del Moving Picture Experts Group (MPEG) e del Video Coding Experts Group (VCEG) dell'ITU-T hanno raffinato ulteriormente l’algoritmo dell’H.264 sotto diversi aspetti: aumentando la densità di pixel del blocco di codifica (da 16x16 a 64x64 pixel) così da sfruttare meglio la correlazione tra pixel vicini con segnali ultra HD, utilizzando partizioni complesse (ad esempio, rettangolari e combinate) al posto dei precedenti macro-blocchi, migliorando l’accuratezza delle tecniche di predizione tra i quadri nell’ambito dello stesso quadro, ottimizzando il sistema di trasmissione dei vettori in movimento all’interno del flusso video.

L’HEVC è strutturato per parallelizzare il processo di compressione (intraframe e interframe) e, quindi, richiede un’elevata potenza di calcolo generata da hardware potenti (chipset multi core) presenti attualmente solo in apparecchiature costose e di ultima generazione.

 

Valerio Stanna

Pubblica i tuoi commenti