Streaming video con i.MX27

La crescente diffusione di applicazioni di gaming online e social networking nei sistemi embedded richiede la capacità di supportare streaming multimediale, in modalità live o on-demand. L’i.MX27 rappresenta una piattaforma low-power proposta tempo fa da Freescale/NXP in questo ambito.

LA PIATTAFORMA I-MX27

Realizzati in tecnologia a 90 nm e basati su microprocessore ARM926EJ-S (in grado di raggiungere frequenze di clock di fino a 400 MHz), i chipset i.MX27 rappresentano una delle più interessanti soluzioni disponibili attualmente sul mercato per applicazioni multimediali. Oltre alle tipiche periferiche come controller Ethernet, SSI, SPI, I2C, UART e simili, integrano infatti un codec hardware (denominato genericamente VPU) con supporto per gli standard MPEG-4 part II, H.263 P3 ed H.264/AVC; i codec lavorano con immagini di risoluzione fino a 720x486 pixel e sequenze video di fino a 30 frame al secondo. La VPU è in grado di elaborare simultaneamente fino a 4 stream video; è previsto in questo caso il supporto multiformato, con la possibilità, ad esempio, di eseguire contemporaneamente la codifica di uno stream MPEG-4 e la decodifica di uno H.264. Un modulo di processing video dedicato denominato eMMA_lt (enhanced MultiMedia Accelerator Light) implementa invece le funzioni di scaling e resing dell’immagine (su immagini in ingresso di dimensione fino a 2048 x 2048 pixel) e di conversione dello spazio di colore. La capacità di elaborazione video on-the-fly riduce il carico sulla memoria di sistema e la richiesta di risorse sottratte alla CPU per altre applicazioni. I dispositivi i.MX27 dispongono poi di interfaccia dedicata per la connessione ai più diffusi sensori di immagini in tecnologia CMOS od a sorgenti video standard CCIR656 per l’acquisizione delle immagini; integrano pure un controller per pannelli LCD, con risoluzione massima di 800 x 600 pixel e supporto per display in bianco e nero o a colori, a matrice attiva o passiva. Porte USB on the go 2.0, ATA/ATAPI-6 ed MMC/SDIO consentono infine la connessione ad una ampia varietà di dispositivi esterni standard di memorizzazione e comunicazione. La figura 1 mostra uno schema di  principio  dell’architettura  del processore i.MX27 evidenziandone l’insieme di periferiche e risorse disponibili.

Figura 1: architettura dei microprocessori i.MX27 (da [2]).

Figura 1: architettura dei microprocessori i.MX27

UNA PIATTAFORMA PER TUTTE LE FASI DI SVILUPPO

Freescale/NXP rende disponibile una piattaforma di sviluppo per i processori i.MX27 denominata i.MX27 PDK (Product Development Kit). Espressamente progettata avendo in mente le fasi principali attraverso cui passa lo sviluppo dell’idea di un prodotto, la piattaforma supporta agevolmente le attività di progettazione, debug e dimostrazione. Consiste di una scheda processore equipaggiata con l’i.MX27 e con il chipset MC13783, che implementa le funzioni audio, di interfaccia utente e di gestione della potenza tipiche delle applicazioni portatili. La memoria di sistema consiste di 128 Mbyte di memoria DDR SDRAM e 256 Mbyte di Flash NAND. Una scheda di espansione denominata Personality Module dispone invece, tra l’altro, di una porta Ethernet 10/100, un accelerometro MMA7450L, un display TFT da 2.7”, un modulo camera da 2 Megapixel, slot per memorie SD e connettore per dischi ATA, microfono, speaker e I/O utente. Un terzo modulo, infine, rende accessibili le interfacce di debug (Debug Ethernet ed UART, Jtag, CodeTest Interface, Monitor di corrente/tensione), utili durante la fase di sviluppo e test.

UNA LIBRERIA DEDICATA

Per supportare lo sviluppo di applicazioni di streaming multimediale con i propri processori i-MX27, Freescale/NXP ha anche sviluppato una libreria sotto Linux dedicata alla gestione dei codec hardware. La libreria rende disponibili innanzitutto i plug-in per la gestione dei codec hardware sotto Gstreamer così da poter facilmente creare applicazioni audio/video. Gstreamer è, infatti, uno dei più diffusi framework opensource per lo sviluppo di applicazioni multimediali. La figura 2 mostra lo schema di principio della sua architettura; definisce una serie di API comuni per le chiamate ai plug-in standard o di terze parti che vengono quindi connessi e configurati in pipe-line secondo quello che è il flusso di elaborazione dei dati.

Figura 2: la struttura di Gstreamer

Figura 2: la struttura di Gstreamer

Unitamente ai plug-in per accedere ai codec hardware sotto Gstreamer, la libreria software fornita da Freescale a corredo della VPU integrata nei microprocessori i.MX27 rende disponibili implementazioni free degli algoritmi multimediali più diffusi. Sono state così sviluppate, ad esempio, versioni accelerate in hardware degli encoder/decoder H.264, MPEG-4 SP/H.263 P3 e implementazioni di parser di vario tipo com AVI Demuxer (H.264/MPEG-4+ MP3), M4A Demuxer (MPEG-4 audio), M4V Demuxer (MPEG-4 video) o MP4 Demuxer (H.264/MPEG-4+ AAC/MP3). La libreria è accessibile direttamente via web per il download tramite un sistema di licenza web-based; ne è disponibile anche una licenza di valutazione. Ogni package include documentazioni e test streams di prova, così da poter iniziare subito a lavorare. Per le versioni licenziate è inoltre disponibile supporto online.

UN PROGETTO COMPLETO

La figura 3 mostra lo schema di principio dell’architettura hardware.

Figura 3: schema di una IP camera basata sull’i.MX27.

Figura 3: schema di una IP camera basata sull’i.MX27.

La camera proposta dispone di un sensore Aptina con risoluzione 2 Megapixel con ePTZ (Electronic Pan Tilt Zoom) integrato e lenti Tamron ad elevata qualità di tipo CS-mount. La connessione è wired o wireless (802.11g); i protocolli supportati sono TCP/IP, DHCP, HTTP, UDP ed FTP. La compressione è di tipo H.264 o MPEG-4 Part II su immagini di risoluzione 720 x 480 o 720 x 576 a 30 frame al secondo. E’ previsto supporto per bit-rate variabile ed automatico. L’alimentazione è derivabile direttamente attraverso la linea Ethernet nelle applicazioni Power-Over-Ethernet o mediante connettore dedicato. La camera implementa un web server cui è possibile connettersi per la configurazione di sistema e la visualizzazione da remoto dello stream video; il sistema operativo è Linux 2.6.

 

Scrivi un commento

EOS-Academy