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