TECH INSIGHT
SWaP-C
tificiale, che comprende numerose librerie basate su
C/C++ pensate per i sistemi di visione artificiale in
tempo reale.
∑
OpenCL
– Linguaggio di programmazione open
source basato su C++ per lo sviluppo di applicazioni,
come avviene con i dispositivi GPU, FPGA e così via.
∑
SDSoC
– L’ambiente di progettazione di Xilinx che
consente gli sviluppatori di implementare inizialmen-
te algoritmi scritti in C/C++ all’interno del sistema
di elaborazione ARM di un dispositivo Zynq o Ultra-
Scale+ MPSoC, profilare il codice di base per identi-
ficare i colli di bottiglia nelle prestazioni, e quindi di
usare il tool di sintesi ad alto livello (HLS) di Xilinx
per tradurre tali colli di bottiglia in blocchi IP basati
su hardware che girano nella porzione di logica pro-
grammabile (PL) del dispositivo.
Il ricorso a questi ambienti abbinato al tool HLS in un
progetto basato su FPGA o su un SoC interamente pro-
grammabile consente lo sviluppo efficiente di applica-
zioni embedded di visione, le quali possono essere col-
laudate rapidamente con tecnica hardware-in-the-loop.
Opzioni di elaborazione
Una volta che l’immagine completa la sequenza di
elaborazione, è anche importante considerare come
i dati sono posti in uscita dal sistema. Al livello più
alto esistono tre principali opzioni di scelta. Una di
queste consiste nell’inviare l’immagine ad un display
usando un’interfaccia standard come VGA, HDMI, SDI
o DisplayPort. Altrimenti, l’immagine (o l’informazione
estratta da essa) può essere trasmessa altrove, come
ad esempio al cloud, per un’ulteriore elaborazione.
Una terza opzione consiste nell’archiviare le immagini
su un supporto non volatile a cui accedere in un se-
condo momento.
Per la maggior parte di queste opzioni ad alto livello
al termine della catena di elaborazione delle immagi-
ni, è importante considerare il formato d’immagine da
usare. Questo offre la possibilità di scegliere se co-
dificare l’immagine usando un algoritmo di compres-
sione standard come H.264 (codifica video avanzata
MPEG-4 Parte 10) o l’algoritmo H.265 (codifica video
ad alta efficienza). Le implementazioni di questi algo-
ritmi sono spesso chiamate Codec, e consentono un
utilizzo più efficiente della banda di comunicazione e
di rete o una riduzione dell’occupazione di memoria,
al prezzo di una piccola perdita di fedeltà dell’imma-
gine. Nelle applicazioni in cui un tale compromesso
non è accettabile, l’immagine può essere trasmessa o
archiviata in formato grezzo o codificata in un formato
senza perdite.
Gran parte delle implementazioni dei codec usano uno
spazio di colore diverso da quello che è prodotto dai