SanitasEG - Piattaforma acquisizione video
Transcript
SanitasEG - Piattaforma acquisizione video
Sanitas EG sistemi digitali, ricerca ed innovazione Evento Lattice Framos MSC 2012 Esigenze ed obiettivi: Immagini MegaPixel Alto througput Pre elaborazione Capacità di analisi Pixel secondo, 15 fps 159.869.760 124.416.000 76.032.000 47.185.920 Obiettivi: Approccio generale Architettura distribuita Sistema efficiente e 31.104.000 18.432.000 4.608.000 VGA 1.3 MP 2MP* 3 MP 5 Mp 8 Mp ottimizzatio per i costi 2 Sanitas EG Lattice Event 2012 10 MP Mercati di riferimento: Videosorveglinza 3 Telecamera megapixel con capacità di preanalisi a bordo Industriale: frame grabber IP con preelaborazione a bordo Sanitas EG Lattice Event 2012 Catena di acquisizione video Acquisizione immagine Scelta sensore Interfaccia sensore Conversione formati Gestione di video Buffer Analitica Estrazione informazioni Individuazione regioni di interesse Azioni rapide Trasporto Trasmissione RAW ad alta velocità Invio ad un dispositivo per la compressione e lo streaming o lo storage Rete Gigabit Sanitas EG DSP Multimediale Lattice Event 03 2012 Visualizzazione ottimizzata Catena di acquisizione video Riduzione del rumore Adattamento della dinamica del sensore alla sensibilità dell'occhio Gestione automatica dell'acquisizione Sanitas EG Lattice Event 03 2012 Trasporto dell'immagine RAW Canale ad alta velocità Sistema di traporto efficente (UDP) Ottimizzazione del driver di ricezione Rete Gigabit UDP limitare al massimo il tempo CPU necesario alla ricezione dei frame video DSP Multimediale Compressione Video Stack TCP (rtsp) Compressione Trasmissione reti 100 Mbit anche su stack TCP (internet) Necessità di compressione efficiente e a bitrate costante Costo codifica e decodifica Storage TCP Ricezione immagini Client (PC) Applicativo Utente Decodifica Sanitas EG Client Embedded Metadati Visualizzazi one Lattice Event 03 2012 Trasporto dell'immagine RAW Canale ad alta velocità Sistema di traporto efficente (UDP) Ottimizzazione del driver di ricezione Rete Gigabit UDP limitare al massimo il tempo CPU necesario alla ricezione dei frame video DSP Multimediale Compressione Video Stack TCP (rtsp) Compressione Trasmissione reti 100 Mbit anche su stack TCP (internet) Necessità di compressione efficiente e a bitrate costante Costo codifica e decodifica Storage TCP Ricezione immagini Client (PC) Applicativo Utente Decodifica Sanitas EG Client Embedded Metadati Visualizzazi one Lattice Event 03 2012 Videosorveglianza: sistema integrato Camera Harrier Eye GigaVision: • Sensore CMOS 5 MegaPixels • Accesso diretto da WEB • • Funzionalità evolute di security ad alte performance Audio Allarmi 16 bit PWM DSP DDR2 I/O 32 bit Intelligenza sulla camera FPGA DDR2 Hardware impiegato: • FPGA Board • DSP Board •Sensor Board 8 Sanitas EG Lattice Event 2012 Harrier Eye: dual stage architetture HI RES CMOS 256 Mbyte DDR Video Memory HW Analitics Video acq Engine 256 Mbyte System Memory Metadata Video DSP: Video Compression Software analitycs User interface Sensor control First stage: custom Hardware + dedicated high speed memory 9 Second stage: standard DSP + dedicated software (acquisition interface and high level analitycs) 3q_2011 Innovazione: Context based Multiflux Complete scene: resized to 1 MP 10 fps Area of interest 2: CIF 10 fps Area of interest 2: VGA 25 fps Complete scene: • On board analitycs identifies areas of interest Areas of interest • • On camera dynamic position selection Separated video streaming (codec selectable) • Full resolution and adaptive exposure • Selectable frame rate 10 Sanitas EG Lattice Event 2012 Harrier Eye: architettura del sistema 11 Sanitas EG Lattice Event 2012 Gestione flussi multipli 128 Mbyte DDR2 CMOS Camera 96 Mhz FPGA Sensor IF IMG0_Buf IMG1_Buf IMG2_Buf EMIF Camera Emulator CCD IF: 96 Mhz video data & settaggio dinamico frame Gestione di quattro flussi video separati (risoluzione e guadagni indipendenti) Controllo sequenza di acquisizione da EMIF Acquisizione alla massima velocità (minimizzazione tempo di esposizione) Architettura a doppio buffer per ogni flusso DSP 67 Mhz ARM 9 H.264 Enc Ethernet Stack Emulatore camera Generazione dei FRAME sotto controllo del DSP (handshaking) Gestione separata del PixelClock 12 IMG3_Buf Sanitas EG 128 Mbyte DDR2 Lattice Event 2012 Buffer Video, DSP CMOS Camera FPGA S1 S2 Avi Rtp Disk 13 Avi DDR BUFFER Video IN YCbCr YCbCr CODEC I1 P P’ I2 F2 I3 F3 F2 ’F3 I4 F4 S3 S4 Avi Avi Rtp Rtp Rtp DSP ’F4 ’ SH4 SH3 SH2 SH1 RTSP server Sanitas EG Eth drv Lattice Event 2012 Accesso DDR FPGA DDR2 CMOS Camera Sens IF FPGA BUF 0 32 bit Algoritmi 16 bit 32 bit BUF 2 MB Tr BUF 3 BUF 4 BG Tr BUF 5 MB Oa BUF 6 BG Oa BUF 7 Resiz 14 32 bit 32 bit BUF 17 BUF 8 32 bit BUF 9 BUF 10 BUF 11 BUF 1 Emulatore Camera 8 bit Fci BUF 12 Sanitas EG DSP Lattice Event 2012 Filtri su background Eliminazione “buchi” Erosione Calcolo contorno FPGA: filtro lineare 15 Sanitas EG Lattice Event 2012 Prodotti hardware: telecamera 16 Sanitas EG Lattice Event 2012 Sistema industriale: a Sito1 h b c d Sito2 Switch giga Sito4 g f Sito3 e Telecamere Funzioni principali Acquisizione sincronizzata Gestione illuminatori IR Pre elaborazione distribuita Multi risoluzione 17 1Gbit Sanitas EG Lattice Event 2012 Sistema Industriale: visione stereo 18 Sanitas EG Lattice Event 2012 IP camera Reference Design FPGA CMOS Sensor IF Stream elab DIFF ROTATION ENGINE I2C IF MPMC DDR2 IF CMOS Sensor 5 MP DDR2 Register File Wishbone Bus Custom Dw Protocol 1000 Phy RMP Decoder UDP Arbiter UDP Core 19 Sanitas EG Lattice Event 2012 IP Core: RMP Ethernet High Speed Communication between network devices (FPGA/PC) Support for many-to-one and/or one-to-many Bidirectional control channel A PC software application should transparently access local FPGA resources, e.g. Wishbone local bus Bidirectional data streaming channel High configurability Easy of use Sanitas EG Lattice Event 2012 Infrastructure Components UDP/IP firmware stack Control protocol firmware decoder Control protocol software library A VHDL module implements the RMP control protocol in FPGA A PC software library implements the RMP control protocol over UDP Custom data channel implementation 21 Software/firmware decoder for data channel protocol Lattice Solution Days 2011 Address Resolution Protocol The IP datagram sender must know the MAC address of the destination IP ARP Protocol: The sender transmits a broadcast ARP Request The host having the destination IP transmits back to the ARP Request The sender knows MAC and IP address of the destination host The sender can cache the couple MAC-IP Address 22 Lattice Solution Days 2011 UDP Multi-channel Arbiter The UDP multi-channel arbiter permits to manage various UDP socket. An RX-channel is individuated by A single or a set of IP source addresses A single or a set of UDP destination ports A TX-channel is individuated by A single IP destination address A single UDP destination port A single UDP source port The number of RX and TX-channel are individually configurable The UDP multi-channel arbiter performs demuxing of incoming UDP packets and UDP core TX channel arbitration for outcoming UDP packets Incoming packet are forwarded to corresponding RX-channel The UDP TX channel is shared between arbiter TX-channel The user can implement custom logic for RX-channel decoding Broadcast addresses are allowed 23 Lattice Solution Days 2011 RMP Protocol RMP packets are encapsulated in UDP The RMP protocol permits to access a local bus Each RMP packet contains commands to local bus master RMP command feature: Several commands can be inserted in a single RMP packet, Acknowledge request RMP command parameter: Read/write, Burst length Start address, Read/write Data RMP header length depends on protocol configuration 24 Lattice Solution Days 2011 Performance UDP Core performance, test application: Payload Length FGPA->PC PC->FPGA LOOP Theoretic PC->FPGA->PC Pkt/s MByte/ s %CPU Pkt/s Mbyte/ s %CPU Pkt/s Mbyte/ s %CPU Pkt/s Mbyte /s 8 200k 1.6 0.45 135k 1 0.5 100k 0.8 0.7 1689k 13 64 200k 12 0.45 145k 9 0.5 105k 6 0.7 962k 56 128 200k 25 0.45 145k 18 0.5 105k 13 0.7 644k 79 256 200k 49 0.45 145k 35 0.5 105k 26 0.7 288k 95 512 200k 97 0.45 145k 71 0.5 105k 52 0.7 216k 106 1024 115k 112 0.25 112k 110 0.45 105k 1064 0.7 115k 112 1472 81k 114 0.25 81k 114 0.35 81k 114 0.65 81k 114 CPU Intel Core 2 Duo T9400 2.53 MHz Windows XP FastSendDatagramThreshold registry key set to 1500 25 Sanitas EG Lattice Event 2012 Implementation Results Resource utilization for Lattice XP2 devices: UDP/IP Arbiter RMP Decoder MPMC DDR2 IF Register ~1100 ~100 ~200 ~130 ~450 LUT ~2000 ~300 ~250 ~250 ~200 EBR 4 0 0 0 0 Full Featured UDP/IP core 2 TX-channel, 2 RX-channel MPMC: Full featured: 10/100/1000 Mbit, Half/Full duplex, integrated MAC, network mask and gateway support, integrated RGMII/GMII bridge, 1518 byte packet length UDP Arbiter: 2 rx, 2 tx ch 4 Port DDR2 IF: 26 200 MHz 16 DQ, 2 DQS Lattice Solution Days 22-09-2011 R&D: sistemi di elaborazione video Integrazione tool FPGA impl HDL tool C to HDL translator Matlab e Simulink Costruzione libreria video Analisi algoritmi Prototipizzazione 27 Sanitas EG Lattice Event 2012 Sistema di sviluppo: Scheda HE-FRXP e scheda HECM5MP CMOS Applicazione firmware Acquisizione da sensore Interfaccia DDR multiporta Macro RMP Applicazione software Libreria RMP Applicazione di visualizzazione Console grafica Sanitas EG Lattice Event 2012 Prodotti 2012 Schede 2012 HECM5MP CMOS SENSOR La scheda integra un sensore CMOS Aptina da 5 Megapixel a colori (RGB), con formato 2592H x 1944V, diagonale da 7.13 mm. Alla massima velocità di 96 Mhz li sensore può generare 14 fps alla risoluzione di 5 Mega Pixel. SETH-CCD2MP SENSOR La scheda integra un sensore CCD2MP Sony da 2 Megapixel in B/W, con formato 1688H x 1248V, diagonale da 8.923 mm. Alla massima velocità di 36 Mhz il sensore può generare 14 fps alla risoluzione di 2 Megapixel. POE EXTRACTOR BOARD La scheda genera un’alimentazione a 12V da un collegamento Ethernet con alimentazione Power Over Ethernet Sanitas EG Lattice Event 2012 SETH Board La scheda SETH è una piattaforma per l’acquisizione di immagini da diverse interfacce sensore CCD/CMOS. Il canale di comunicazione Ethernet da 1Gb/s consente un data rate di trasmissione dati elevato e affidabile. Schede 2012 HE-FRXP Board La scheda HE-FRXP è una scheda madre per acquisizione immagini MegaPixel CMOS, pre-processing e trasmissione su link GigaEthernet. La scheda HE-FRXP è configurabile in due versioni ed è espandibile anche mediante la scheda HE-DSP per abbinare all’analisi dell’FPGA le funzionalità del processore multimediale DaVinciTM. HE-DSP368 Board Il processore può trattare immagini fino alla risoluzione FULL HD (1920x1080) e fino a 16 Mp (4096x4096) se utilizzata in integrazione con la nostra scheda di acquisizione HE_FRXP_40, con la capacità di generare streaming video compressi H.264 fino a 30 fps alla risoluzione FULL HD. HE-LC Board La scheda HE-LC combina la tecnologia FPGA e DSP per realizzare una telecamera a 2 e 3 megapixel con una configurazione ottimizzata per le funzioni di visualizzazione e una limitata capacità di analisi video a bordo. Sanitas EG Lattice Event 2012 1Gbit Ethernet Controller The 1Gbit UDP Controller is a special-purpose UDP/IP controller that sends and receives Ethernet packet to a Gigabit transceiver. It provides a common command interface for user applications. This core is aimed at managing embedded system applications over a private Ethernet network. The controller implements the UDP protocol over a LAN (Local Area Network). 8 Schede 2012 RMP Ethernet The RMP Ethernet IP core is a Layer 4 UDP based transport system between FPGAs and a Network Devices. This core provides a "easy to use", efficient and high speed communication system. HP-DDR2 Controller The High Performance Double Data Rate Controller is a specialpurpose memory controller that interfaces with industry standard DDR2 memory devices (667/533/400/333/266 MHz) and provides a common command interface for user applications. This core is aimed at optimizing both performances and resource usage. Timing Gen. for CCD scan This IP core is a timing generator that generates the timing pulses for performing progressive scan for CCD image sensor. Sanitas EG Lattice Event 2012 Esercitazione di laboratorio Utilizzo del sistema di sviluppo: Applicazione software Utilizzo della console remota Utilizzo multiflsso, Patrol digitale Elaborazione su PC: differenza con sogliatura Applicazione firmware Compilazione del progetto inserimento registro di controllo soglia variabile Esercitazione libera Sanitas EG Lattice Event 2012