Audio e video processing

L’informazione audio/visuale sta assumendo un ruolo sempre più importante nel contesto applicativo sia industriale che consumer, in conseguenza della significativa complementarietà che caratterizza queste due fonti di informazione. Diverse tecnologie si stanno sviluppando in ambito audio/visuale che aprono nuovi fronti di innovazione tecnologica, per esempio le tecnologie Mems per l’implementazione di nanomicrofoni e nanocamere, oppure Internet of Everythings. Queste innovazioni tecnologiche stanno creando un potenziale applicativo enorme per le tecnologie e metodologie audio/visuali. In questo contesto i sistemi di elaborazione audio/visuali, in particolare i processori, svolgono un ruolo fondamentale nel rendere effettiva la tecnologia audio/visuale, garantendo non solo la necessaria potenza computazionale, ma anche le condizioni per l’integrazione in sistemi embedded nelle condizioni anche più estreme: bassissimi consumi, piccolissime dimensioni e bassissimo costo. I digital signal processor rappresentano l’architettura di computing ottimale per l’implementazione dei processi audio/visuali che per loro natura fanno riferimento all’informazione di segnale e quindi implicano attività di elaborazione computazionale intensiva. Le Field Programmable Gate Array rappresentano un’altra soluzione di computing ottimale per l’audio/video processing grazie alla possibilità di implementare con hardware programmabile gli algoritmi di elaborazione del segnale audio/visuale in maniera perfetta relativamente all’architettura computazionale da questi richiesti (elevato parallelismo esecutivo). L’alternativa tra queste due soluzioni computazionali, entrambe di natura Application Specific dipende da un requisito comune delle applicazioni di natura audio/visuale, il real-time. Il requisito del real-time è per le applicazioni audio/visuali particolarmente stringente in quanto, soprattutto per la componente visuale, il livello computazionale è particolarmente elevato. La soluzione Fpga è indubbiamente la più efficace per garantire i requisiti di real-time, ma la potenza computazionale offerta dai Dsp di ultima generazione è tale da garantire il real-time a condizioni comunque più vantaggiose rispetto a quelle offerte dalla soluzione Fpga. Il crescente aumento della potenza computazionale dei processori in generale ha consentito di avere una soluzione alternativa all’impiego dei processori application specific per l’implementazione delle applicazioni audio/visuali, i processori RISC di ultima generazione basati sull’architettura computazionale Arm Cortex-M4. Questa architettura computazionale di natura general purpose (non application specific), essendo orientata a governare applicazioni di natura multimediale, è particolarmente efficiente relativamente all’esecuzione di processi computazionalmente intensivi come quelli richiesti nelle applicazioni audio/visuali.

Il digital audio processing

I Digital Signal Processor sono i processori di riferimento per le applicazioni audio/visuali. Essendo di natura Application Specific, sono altamente ottimizzati per il campo applicativo, quindi sono resi disponibili su misura come Audio Dsp oppure Video Dsp. Ci sono soluzioni che combinano entrambe le capacità di elaborazione, audio e video, nelle soluzioni cosiddette Dsp Multimediali. Si tratta prevalentemente di System-on-Chip (SoC) di natura multicore che integrano sullo stesso chip o package, il Dsp Audio e il Dsp Video gestiti da un livello alto di logica di controllo oppure da un processore RISC. Le applicazioni audio digitali rappresentano una fetta importante delle applicazioni Dsp in generale e tali applicazioni sono destinate ad aumentare considerevolmente nel prossimo futuro, anche in conseguenza dello sviluppo delle applicazioni che utilizzano audio in contesti come Internet, l’intrattenimento, l’automotive, ecc. SigmaDsp di Analog Devices è un digital audio processor completamente programmabile e configurabile tramite uno strumento di modellazione e sviluppo, Sigma Studio, per applicazioni audio sia per il settore consumer, sia per il settore automotive. SigmaDsp combina un core a 172 MHz con una matrice di routing e una serie di convertitori di frequenze di campionamento per consentire la connessione al processore di diverse sorgenti di segnale audio digitale a frequenze di campionamento differenti. In particolare i SigmaDsp ADAU1701/2 sono una soluzione Dsp Digital Audio completamente su singolo chip, in quanto integra tutto il sottosistema di I/O analogico e digitale necessario a implementare applicazioni digital audio senza ricorrere ad altri componenti. Il Dsp SigmaDsp è basato su un core dotato di una Mac (Multiply-Accumulate Unit) da 26 x 22 bit con doppio accumulatore a 48 bit. La precisione esterna è a 24 bit mentre il core interno opera a 26 bit (formato 3.23). I due extra bit di formato interno permettono di avere una risoluzione pari a +12 dB di guadagno (quanto basta per soddisfare i requisiti applicativi della maggior parte degli algoritmi audio digitali senza ricorrere alle onerose operazioni di scaling). La memoria core consiste in 2 kByte di RAM per il codice e 2 kBytre di Rom per il codice. Tutta la memoria è accessibile direttamente tramite interfaccia Spi che utilizza un autoindirizzamento a 32 bit (8 bit di indirizzo e 24 bit di dati) e permette di accedere in un solo ciclo istruzione a qualsiasi cella di memoria. La tecnologia SigmaDsp di Analog Devices va oltre quella del Dsp general purpose che può essere utilizzato anche per applicazioni audio. SigmaDsp è stato finalizzato a supportare il progettista di applicazioni audio che, pur essendo esperto di sistemi audio anlogici e digitali, non vuole calarsi nelle problematiche della programmazione Dsp a basso livello. L’interfaccia grafica utente che utilizza la scheda di valutazione AD1954 per rendere disponibile allo sviluppatore un ambiente di modellazione e sviluppo real-time a controllo diretto (i comandi e i controlli eseguiti sul pannello grafico della Gui eseguita su Pc vengono inviati ed eseguiti in tempo reale sulla scheda di valutazione che ospita il Dsp).

Il digital video processing

Le applicazioni video digitali, in particolare quelle relative alla compressione, stanno ricevendo particolare attenzione da parte degli sviluppatori in conseguenza del crescente utilizzo di banda trasmissiva in contesti di rete come Internet e i social media per il traffico dati di natura video (secondo il Cisco Visual Networking Index è previsto per il 2017 un traffico video su Internet pari al 67% del traffico totale consumer). Per le applicazioni video, il CorePac Dsp C66x di Texas Instruments rappresenta una soluzione molto potente e allo stesso tempo ottimizzata. In particolare, il TMS320C6674 è un Fixed e Floating Point Digital Signal Processor basato sull’architettura multicore KeyStone di TI. Il TMS320C6674 è in grado di integrare fino a quattro core Dsp capaci di eseguire il codice a 1,25 GHz, quindi di eseguire in parallelo ad una velocità di clock equivalente di singolo processore a 5 GHz. Grazie a questa elevata frequenza di clock, al parallelismo esecutivo interno dell’architettura di computing del C66x e all’architettura multicore, questo Dsp consente di eseguire algoritmi di elaborazione video molto complessi in tempo reale.

Field Programmable Gate Array

La logica Fpga rappresenta la soluzione più performate per l’implementazione hardware delle applicazioni di natura audio/visuale. Le Fpga signal processor sono evoluzioni delle Fpga classiche che implementano in hardware programmabile i paradigmi fondamentali di elaborazione del segnale senza le limitazioni imposte dall’esecuzione sequenziale tipica dei processori programmabili. I Dsp, quando le frequenze di campionamento diventano particolarmente elevate, per esempio nelle applicazioni audio mulimicrofoniche (array microfonici) oppure video ad alta risoluzione, possono fare una notevole fatica a gestire il flusso dati senza perdere informazioni, anche quando si tratta di Dsp multicore ad elevate prestazioni e clock esecutivo, in quanto tali processori devono condividere risorse e non sono in grado di sviluppare un livello di processing parallelo assoluto. Le Fpga si presentano come un’enorme risorsa di porte logiche che possono essere programmate in accordo con algoritmi di processing audio e video ad elevato parallelismo esecutivo. Dato che le porte logiche possono essere programmate, oltre che per l’implementazione degli algoritmi di audio e video processing, anche per la gestione ottimale del flusso dato, le problematiche di real-time non sussistono se si dispone sulla Fpga di un numero sufficiente di porte logiche da programmare e una velocità di clock adeguata al processo da eseguire. L’eventuale limite della Fpga rispetto alla soluzione Dsp sta nella complessità degli algoritmi e del processo audio/visuale da implementare. A tale scopo sono state realizzate Fpga che oltre alle porte logiche rendono disponibili operatori matematici preassemblati come le Mac (Multiply-Accumulate) oppure strutture di memoria locali come i buffer circolari, nonché registri e altre unità funzionali tipiche dell’elaborazione Dsp. Altera per esempio ha sviluppato una Video and Image Processing Suite (insieme di MegaCore functions) che consente di implementare ad alto livello le applicazioni video e di imaging (broadcast, sorveglianza, medicale, ecc.) su piattaforma Fpga utilizzando un’ampia lista di funzionalità precodificate. Un’altra soluzione viene da Xilinx con l’architettura UltraScale che prevede le Dsp slices che incorporano moltiplicatori 27 x 18 bit e doppio sommatore per consentire di implementare algoritmi in aritmetica sia in fixed che in Ieee floating-point. La serie Xilinx 7 per esempio integra 3600 Dsp slice, oltre a 68 Mbyte di Ram (a blocchi) e 1955 kcelle logiche, sviluppando in tal modo una potenza computazionale di 5335 GMac/s per il fixed-point e 2000 Gflops/s per il floating point. I Dsp Slice sono dei Dsp processing block dedicati implementati completamente su silicio.

Architetture RISC per l’audio e video processing

L’architrettura Risc (Reduced Instruction Set Computer), pur essendo l’architettura di riferimento dei processori Dsp, di fatto è una soluzione di architettura computazionale intesa ad ottimizzare l’esecuzione di processi computazionalmente intensivi. Queste architetture di natura general purpose, grazie alla crescente densità di integrazione microelettronica, si sono arricchite funzionalità computazionali che soddisfano i requisiti implementativi degli algoritmi di signal processing, per esempio l’unità di moltiplicazione e accumulo (Mac) oppure l’unità aritmetica di indirizzamento, rendendo tali Mcu (Micro Controller Unit) adeguate a implementare una classe di applicazioni audio/visuali sempre più ampia. Arm, con la serie Cortex-M4 ha realizzato una famiglia di Mcu ad architettura Risc a 32 bit con unità Dsp fixed point (la floating point unit è opzionale) capace di eseguire efficientemente algoritmi di elaborazione digital audio. M4 dispone di un superset di istruzioni del M3, quindi riesce ad eseguire la stessa applicazioni audio che eseguirebbe un M3 con una frequenza di clock decisamente più bassa (quindi con minore consumo di potenza elettrica), proprio grazie al set ottimizzato di istruzioni Dsp. Ovviamente non si tratta di un Dsp, ma di una Mcu con risorse computazionali Dsp (per esempio l’esecuzione con un solo ciclo istruzione della Mac 32 x 32 + 64 bit con risulktato in 64 bit) e specifiche funzionalità come l’aritmetica di saturazione e l’esecuzione Simd (Single Instruction Multiple Data) per dati a formato ridotto (8 bit e 16 bit). La combinazione di un core Arm e con un core Dsp è una soluzione computazionale particolarmente efficiente per le applicazioni di elaborazione video, come dimostra la piattaforma di computing DaVinci di Texas Instruments. Si tratta di SoC che combinano un core Arm con un core Dsp. Per esempio il TMS320DM816x integra un Cortex A8 a 1.35 GHz con un core Dsp C674x a 1 GHz oltre a un motore grafico 3D SGX530 capace di elaborare 18 MTriangoli/s.

Pubblica i tuoi commenti