Soluzione per sistemi interattivi di videosorveglianza

MULTIMEDIA –

Una piattaforma basata sul microcontrollore personalizzabile CAP di Atmel permette di sviluppare in tempi brevi e a basso costo applicazioni video avanzate basate sullo standard H.264.

L’utilizzo della videosorveglianza interattiva si è andato diffondendo ovunque: dai centri urbani alle fabbriche, dagli ospedali alle scuole, dalle foreste alle riserve naturali, dalle frontiere alle prigioni fino ad arrivare alle abitazioni domestiche. I requisiti principali dei sistemi di videosorveglianza interattiva sono la ricezione, la visualizzazione e la memorizzazione di uno o più flussi video, abbinati alla possibilità di effettuare operazioni di Ptz (Pan/Tilt/Zoom) ovvero rotazione, inclinazione e zoom, di congelare l’immagine, di rivedere le sequenze di interesse e, in misura sempre maggiore, di incrementare la qualità dell’immagine, le capacità di riconoscimento e, più in generale, le funzionalità di manipolazione delle immagini.

Standard di compressione video H.264
H.264/MPEG-4 AVC è una famiglia di standard esplicitamente ideati per garantire una compressione video efficiente, che spazia dal profilo Baseline, nel caso di applicazioni a basso costo al profilo High per video ad alta definizione come quello previsto per i Blu-Ray Disc. Frutto di un progetto congiunto conosciuto sotto il nome di Jvc (Joint Video Team) che ha coinvolto i gruppi ITU-T Video Coding Experts Group e ISO/IEC Moving Picture Experts Group, lo standard H.264, grazie alla sua flessibilità, abbina algoritmi di compensazione del moto molto efficienti a un’ampia gamma di funzioni di compressione, un maggior livello di compressione dei file rispetto a quello consentito dai precedenti standard e un miglior conservazione della qualità dell’immagine visualizzata. Per tutte queste ragioni H.264 è divenuto lo standard di compressione di riferimento per una vasta gamma di applicazioni video, compresa la videosorveglianza. Una conseguenza del miglioramento della qualità della compressione è rappresentato dal fatto che gli algoritmi di compressione/decompressione di H.264 sono più onerosi dal punto di vista computazionale. Ogni implementazione H.264 basata su un software che gira su un processore standard richiede una velocità di clock molto elevata – nel caso di un singolo processore – oppure il partizionamento tra differenti processori operanti in parallelo. Il SoC multiprocessore Cell di Ibm/Hitachi/Sony è stato proposto, ad esempio, come piattaforma hardware per applicazioni basate su H.264, videosorveglianza compresa. L’adozione di approcci di questo tipo comporta un incremento sensibile del consumo di potenza o delle dimensioni del die del sistema hardware. Una soluzione decisamente più efficiente è quella che contempla l’uso di un acceleratore hardware H.264 dedicato operante in modalità pipeline (ovvero in cascata) che gira a una velocità di clock non particolarmente elevata e non comporta che un  “appesantimento” minimo in termini di silicio, gestito da codice dedicato di dimensioni compatte. Altri acceleratori hardware dedicati possono gestire l’interfaccia utente, l’elaborazione dell’immagine e altri compiti specifici particolarmente onerosi dal punto di vista dei calcoli. In questo modo il processore host del sistema è libero di dedicarsi ad attività quali il controllo del sistema, la gestione della memorizzazione dei file e altri compiti meno impegnativi in termini di calcolo. Quest’ultimo approccio è stato adottato per lo sviluppo della soluzione proposta di seguito.

Una piattaforma microcontrollore personalizzabile
Tre aziende, Atmel, Awah System e Chips&Media hanno deciso di cooperare per realizzare una piattaforma basata sul microcontrollore personalizzabile CAP di Atmel che permettesse di sviluppare in tempi brevi e a basso costo applicazioni video avanzate basate sullo standard H.264. La piattaforma di sviluppo H.264 CAP9H risulta composta da un processore host ARM926EJ-S corredato da una vasta gamma di periferiche standard e da un Fpga ad alta densità che emula l’acceleratore hardware H.264 e la logica custom specifica dell’applicazione. Una volta che il progetto è stato qualificato sulla piattaforma di sviluppo, può essere mappato direttamente sul microcontrollore personalizzabile CAP9H con l’acceleratore hardware H.264 e la logica custom implementata in un blocco Metal Programmable ad alta densità. Questo approccio è in grado di soddisfare le problematiche delineate in precedenza: sviluppo rapido e a basso costo, elevata qualità dell’immagine, ridotte risorse di memoria, disponibilità di ulteriori acceleratori hardware per l’espletamento di compiti onerosi in termini di elaborazione, elevati livelli di integrazione e consumi minimi.

Il codec video multistandard CodaDx6
Il blocco funzionale principale della piattaforma di sviluppo H. 264 CAP9H è una realizzazione hardware del blocco IP CodaDx6 di Chps&Media che svolge la funzione di codec video multi-standard. CdaDx6 è in grado di effettuare operazioni di compressione e decompressione conformi agli standard H.264, MPEG-4 e H.263 con una risoluzione fino a D1/SD: 720x480 pixel a 30 frame/s o 720x576 pixel a 25 frame. Come visibile nella, CodaDX6 è realizzato utilizza il core di un bit processor e un insieme blocchi per l’elaborazione digitale dei segnali posti in cascata (pipelined) ciascuno dei quali esegue una delle funzioni chiave previste dall’operazione di compressione/decompressione. Questi includono i blocchi per la rotazione e il mirroring (ribaltamento) della sorgente o delle immagini compresse che riducono in maniera significativa il traffico sul bus. CodaDx6 prevede un bus periferico interno, con un bus Axi indipendente per l’accesso a una memoria esterna e un’interfaccia Apb per i sistemi basati su Arm. Questa struttura di bus è stata adattata per sfruttare l’architettura del bus del microcontrollore CAP e la modalità Dma.

Implementazione del codec H.264 nel kit di sviluppo CAP9H
Questo kit di sviluppo di Atmel comprende un microcontrollore personalizzabile CAP9H realizzato mediante un processore ARM926EJ-S con un insieme completo di memorie interne ed esterne, periferiche e interfacce standard connesse mediante un’interfaccia dedicata a un Fpga ad alta densità (composto da 1,5 o 2 milioni di gate ASIC equivalenti). Awah si è incaricata da mappare le funzionalità H.264 di CodaDx6 sull’Fpga, dove occupa all’incirca 1 milione di gate Asic equivalenti. L’interfaccia tra CodaDx6 e la matrice Ahb di CAP9H è stata ottimizzata e prevede 2 canali master Ahb e 1 canale slave Ahb. Operante a una frequenza di 100 MHz, CodaDx6 esegue la compressione/decompressione H.264 indipendentemente dal processore host che può, se richiesto, operare a una frequenza di clock molto inferiore. Ciò si traduce in un risparmio energetico considerevole rispetto a quello di un’implementazione software, che richiede una frequenza molto maggiore da parte del processore host, fatto questo che potrebbe precludere lo svolgimento di altri compiti da parte di quest’ultimo. Una tale realizzazione sfrutta i vantaggi dell’architettura Dma di CAP9H, che consente di effettuare più trasferimenti dati simultanei a estesa ampiezza di banda senza penalizzare le prestazioni del processore host Arm9. Per esempio CodaDx6 potrebbe acquisire un file video compresso da una scheda SD esterna, decomprimerlo e trasferire in modo continuo il video non compresso a un controllore Lcd con un sovraccarico quasi nullo per il processore Arm9. Con questa implementazione rimangono a disposizione parecchie risorse logiche per la realizzazione di altre funzioni specifiche per la particolare applicazione considerata, come ad esempio il supporto per un’interfaccia utente grafica, la stima del movimento, il riconoscimento dell’immagine da un database di modelli memorizzati o altre elaborazioni specifiche dei flussi video compressi e non. La disponibilità di acceleratori hardware dedicati per lo svolgimento delle principali funzioni, strettamente connessi a un processore di tipo general purpose preposto al controllo del sistema complessivo, permette di conseguire prestazioni nettamente più elevate a frequenze di clock decisamente inferiori (con riflessi favorevoli sui consumi) rispetto a quanto ottenibile con un approccio puramente software. In ogni caso ciascun elemento hardware del sistema è programmabile via software, in modo da assicurare un certo grado di flessibilità di implementazione, ad esempio per regolare in maniera più accurata la compressione video o aggiungere caratteristiche di compressione dell’immagine, una volta che l’hardware è stato stabilito. È anche possibile utilizzare utility di riparazione (fix) software per la correzione degli errori.

Interfaccia per la telecamera
La piattaforma di sviluppo H.264 CAP9H può essere ampliata in modo da rendere disponibile un’interfaccia per la telecamere, utilizzando per esempio il sensore OV2640 CameraChip di OmniVision. Il flusso video non compresso che viene trasferito in modo continuo è codificato, salvato, decodificato e visualizzato in tempo reale. Si tratta del flusso di dati fondamentale – acquisizione, memorizzazione, visualizzazione – di un sistema di videosorveglianza.
 
Software dimostrativo
La piattaforma di sviluppo H.264 CAP9H è corredata da un package software dimostrativo che gira sul processore host ARM9 con chiamate al bit processor presente in CodaDx6. Esso comprende tutte le Api (Application Programming Interface) utilizzate per le funzionalità H.264. Questo package software, una volta caricato sulla piattaforma di sviluppo mediante tool standard per lo sviluppo di applicazioni quali Iar Embedded WorkBench per Arm e Altera Quartus per scaricare l’immagine dell’Fpga, mostra la codifica H.264 – eseguita su un’immagine ripresa da una telecamera o su una sorgente di file non compressi – che permette di ottenere un file compresso memorizzato su una scheda SD e la decodifica del file compresso per la visualizzazione su un display Lcd. Questo non è altro che il flusso di dati fondamentale di un sistema di videosorveglianza. Alcuni moduli che costituiscono il software, in particolar modo le API H.264, possono essere integrati nel software specifico per l’applicazione in fase di sviluppo. Ciò contribuisce a ridurre i tempi di sviluppo e i rischi di errori grazie alla possibilità di riutilizzare moduli software qualificati.

Pubblica i tuoi commenti