GigE Vision for Real-time Machine Vision Eric Carey R&D Director DALSA November 9 th, 2010
Agenda 1. GigE Vision Standard 2. Real-time Imaging with GigE Vision 3. Experimental Evidence 4. Analysis
Camera Market Trend 60.00% 50.00% 40.00% 30.00% 20.00% Analog Firewire GigE Vision Camera Link Other digital interfaces 10.00% 0.00% 2006 2007 2008 2009 Evolution of number of cameras sold in North America (Data reproduced with permission of AIA)
GigE Vision Standard First released in May 2006 2 revisions since then Revision 1.1 April 2009 Ease integration into real-world application Revision 1.2 January 2010 Introduction of non-streamable devices Version 2.0 focuses on high-speed transfer Expected release in 2011Q3 10GigE and link aggregation (multi-cable) IEEE1588 (Precision Time Protocol) Image compression
Image Compression in GigE Vision 2.0 JPEG (lossy & lossless) JPEG 2000 H.264 JPEG MOS score About JPEG: At very low compression rate (< 5) - no visible image degradation Ex: For instance, such a compression ratio of 5 would allow the transfer of 600 MB/s of acquired pixel data into a single gigabit Ethernet cable. Reference: F. Ebrahimi, M. Chamik, S. Winkler, JPEG vs JPEG2000: an objective comparison of image encoding quality.
Agenda 1. GigE Vision Standard 2. Real-time Imaging with GigE Vision 3. Experimental Evidence 4. Analysis
Trigger Concept Hardware Trigger Electric signal Signal debouncing Opto-coupled input Software Trigger Software command OS latencies Network latency Camera I/O connector Hardware trigger is more suited to real-time image acquisition.
Synchronization using IEEE1588 IEEE1588: Precision Time Protocol Enable common timestamp - multi-camera systems Precision can be better than 1 µs GigE Vision 2.0 -introduce software trigger at a given time in the future Synchronize multi-camera acquisition with minimal jitter Minimize cabling for multi-camera synchronization Does not help latency though
Data Transfer Packet Overhead GigE Vision streaming defines 3 types of packets: 1. Data Leader: 98 bytes Ethernet frame 2. Data Payload: 62 bytes of overhead 3. Data Trailer: 70 bytes Ethernet frame Does not included the interframe gap of 12 bytes Standard packets = 1500 bytes Jumbo packet =16KB 36 bytes are used by IP, UDP and GVSP headers Rule of thumb: 5% overhead for 1500-byte packets 1% overhead for jumbo packet
Data Transfer Camera Side Need a full packet Avoid transmission bursts Start transmission when first packet is ready Last packet can be shorter PC Side GigE Vision image driver reconstructs the image from image packets Need to signal image availability to application software involves the operating system
Operating System Latency Windows very popular but not a real-time OS Only install necessary for real-time system = peripherals/drivers Worst-case system reaction time 100 ms + Typically due to polling within a driver Avoid hard drive swap file Multi-core can help Cannot compensate for a bad driver!
DALSA Sapera LT
Optimizing Network Setting Interrupt Moderation Packet Size NIC Receive Buffers Flow Control Lowers interrupt rate by grouping packets Jumbo packets minimizes CPU usage Increase to maximum available 1. GigE Vision Inter-packet delay 2. IEEE802.3 PAUSE mechanism
Agenda 1. GigE Vision Standard 2. Real-time Imaging with GigE Vision 3. Experimental Evidence 4. Analysis
GigE Vision Test System DALSA Genie HM1400 1400 x 1024 @ 64 fps 93 MB/s when free-running Intel Pro 1000PT dual SuperMicro X8STE motherboard 3 GB of RAM Intel i7-860 2.8 GHZ 4 cores = 8 Hyperthreads 2 DDR3 channels @ 1333 MHz Windows XP
Camera Link Reference System DALSA Falcon 1.4M100 1400 x 1024 @ 102 fps DALSA Xcelera -CL PX4 4-lane PCI Express SuperMicro X8STE motherboard 3 GB of RAM Intel i7-860 2.8 GHZ 4 cores = 8 Hyperthreads 2 DDR3 channels @ 1333 MHz Windows XP
Description of the Experiment 1. PC sends a hardware trigger pulse. Pulse starts oscilloscope acquisition. 2. Upon detection of the trigger, camera starts an exposure of 100 µs. 3. Charges are readout and digitized. 4. Image data is sent to PC (NIC or frame grabber). 5. When full image is available in host buffer, a Windows event is signaled. 6. Wakes up a callback function, sends pulse to 2 nd channel of oscilloscope Note: CPU is fully loaded with memory copy and processing
Results on Oscilloscope 1. Yellow bars represents worstcase and typical jitter duration 2. Blue cloud of dots is typical jitter area (where most of the end-of-transfers are registered) Jitter Typical Worst-case Camera Link 0.6 ms 1.2 ms GigE Vision 1500 bytes GigE Vision 9014 bytes 0.7 ms 2.4 ms 0.8 ms 2.7 ms
Agenda 1. GigE Vision Standard 2. Real-time Imaging with GigE Vision 3. Experimental Evidence 4. Analysis
Analysis GigE Vision worst-case jitter is 2.7 ms - much lower than data transfer time. Jumbo packets have positive effect on CPU usage with slight jitter increase Latency to get image into host memory dictated by exposure duration and sensor readout time; not much by camera interface type Good network components and PC key to achieve repeatable results for GigE Vision system. NO specialized GigE Vision frame grabber required = keeping costs down!
Additional Suggestions for Real-time In multi-camera systems, connect one camera per network card port. For Ethernet switch, ensure enough buffering capacity to cope with camera acquisition bandwidth Ensure camera acquisition speed is slower than network speed Otherwise, latency will increase!
Conclusion 1. GigE Vision for real-time MV where 3 ms of jitter is acceptable 2. Experiment corroborates the market trend: GigE Vision is suitable for real-time vision systems GigE Vision outpacing growth of other MV camera interfaces Learn More
Learn More: Contact Me: eric.carey@dalsa.com Visit DALSA Vision 2010 Stand: Hall 4 D51 Free White Paper: GigE Vision for Real-time Machine Vision Logon: www.dalsa.com