Video Streaming and Device Control Over Ethernet Standard
version 2.0
(includes errata up to March 13, 2013)
Table of Content
1 Introduction
1.1 Purpose
1.2 Technical Committee
1.2.1 Version 2.0
1.3 Definitions and Acronyms
1.3.1 Definitions
1.3.2 Requirements Terminology
1.3.3 Acronyms
1.4 Reference Documents
1.5 Document Typographic Convention
1.6 Liability Disclaimer
1.7 System Overview
PART 1 – Device Discovery
2 Device Discovery Summary
2.1 Overview
2.2 Goals
2.3 Scope
3 Physical Link Configuration
3.1 Single Link Configuration
3.2 Multiple Links Configuration
3.2.1 Load Balancing Considerations
3.3 Link Aggregation Group Configuration
3.3.1 Network Interface
3.3.2 GVCP Impacts
3.3.3 GVSP Impacts
3.3.4 Static LAG vs Dynamic LAG
3.3.5 Events for LAG
4 IP Configuration
4.1 Protocol Selection
Figure 4-1: Protocol Selection Flowchart
4.2 Persistent IP
4.3 DHCP
4.3.1 DHCP Retransmission Strategy
4.3.2 DHCP Lease Expiration
4.4 Link-Local Address
5 Device Enumeration
5.1 GVCP Device Discovery
Figure 5-1: Device Discovery Flowchart
5.1.1 Broadcast Device Discovery
5.1.2 Unicast Device Discovery
5.1.3 Associating the Device to the Enumeration List
5.2 Zeroconf Discovery
5.2.1 Multicast DNS (mDNS)
5.2.2 DNS Service Discovery (DNS-SD)
6 Device Attachment and Removal
6.1.1 Removal
6.1.2 Attachment
PART 2 – GVCP
7 GVCP Summary
7.1 Overview
7.2 Goals
7.3 Scope
8 GVCP Transport Protocol Considerations
8.1 UDP
8.1.1 Fragmentation
Table 8-1: GVCP Packet Header Size
8.1.2 Packet Size Requirements
8.1.3 Reliability and Error Recovery
Figure 8-1: Use of Acknowledge
Figure 8-2: Timeout on Request
Figure 8-3: Timeout on Acknowledge
8.1.4 Flow Control
8.1.5 End-to-End Connection
9 The Channel Concept
Figure 9-1: Basic Channels Example
10 Control Channel
10.1 Control Channel Privileges
Figure 10-1: Exclusive Access
Figure 10-2: Control Access
10.2 Control Channel Registers
10.3 Opening a Control Channel
10.4 Closing a Control Channel
10.5 Control Channel Heartbeat
10.6 Controlling the Device
10.7 Use of Pending Acknowledge
11 Stream Channel
11.1 Stream Channel Registers
11.2 Tagging Data Block
11.3 Opening a Stream Channel
11.4 Operation of the Stream Channel
11.5 Closing a Stream Channel
11.6 Packet Size
11.7 Multicasting
11.8 Impact of Multiple Network Interfaces
11.9 Traversing Firewalls or Network Address Translation Devices
11.10 Unconditional Streaming
12 Message Channel
12.1 Message Channel Registers
12.2 Opening the Message Channel
12.3 Operation of the Message Channel
12.4 Closing the Message Channel
12.5 Asynchronous Events
12.6 Multicasting
12.7 Traversing Firewalls or Network Address Translation Device
13 Device with Multiple Network Interfaces
13.1 Impact on Control Channel
13.2 Impact on Stream Channels
13.3 Impact on Message Channel
14 Additional Concepts
14.1 Retrieving the XML Device Description File
14.1.1 Device Non-Volatile Memory
14.1.2 Vendor Web Site
14.1.3 Local Directory
14.1.4 Manifest Table
14.2 Device Synchronization
14.2.1 IEEE 1588-2008 Principles
14.2.2 Timestamp Synchronization
14.2.3 IEEE 1588 Configuration
14.2.4 IEEE 1588 Profile
14.3 Action Commands
14.3.1 Scheduled Action Commands
14.3.2 ACTION_CMD examples
14.4 Primary Application Switchover
14.4.1 Primary Application Switchover Setup Example
15 GVCP Headers
15.1 Command Header
15.2 Acknowledge Header
15.3 Byte Sequencing
The following figure shows the breakdown of GVCP header into byte fields.
Table 15-1: GVCP Header Byte Transmission
16 Control Channel Dictionary
16.1 DISCOVERY
16.1.1 DISCOVERY_CMD
16.1.2 DISCOVERY_ACK
16.2 FORCEIP
16.2.1 FORCEIP_CMD
16.2.2 FORCEIP_ACK
16.3 READREG
16.3.1 READREG_CMD
16.3.2 READREG_ACK
16.4 WRITEREG
16.4.1 WRITEREG_CMD
16.4.2 WRITEREG_ACK
16.5 READMEM
16.5.1 READMEM_CMD
16.5.2 READMEM_ACK
16.6 WRITEMEM
16.6.1 WRITEMEM_CMD
16.6.2 WRITEMEM_ACK
16.7 PACKETRESEND
16.7.1 PACKETRESEND_CMD
16.7.2 PACKETRESEND Response
16.7.3 Packet Resend handling on the GVSP receiver side
16.8 PENDING
16.8.1 PENDING_ACK
16.9 ACTION
16.9.1 ACTION_CMD
16.9.2 ACTION_ACK
17 Message Channel Dictionary
17.1 EVENT
17.1.1 EVENT_CMD
17.1.2 EVENT_ACK
17.2 EVENTDATA
17.2.1 EVENTDATA_CMD
17.2.2 EVENTDATA_ACK
18 Command and Acknowledge Values
19 Status Code
Table 19-1: List of Standard Status Codes
20 Events
Table 20-1: List of Events
21 ICMP
Table 21-1: ICMP Messages
PART 3 – GVSP
22 GVSP Summary
22.1 Overview
22.2 Goals
22.3 Scope
23 GVSP Transport Protocol Considerations
23.1 UDP
23.1.1 Fragmentation
23.1.2 Packet Size Requirements
23.1.3 Reliability and Error Recovery
Figure 23-1: Data Resend Flowchart
23.1.4 Flow Control
23.1.5 End-to-End Connection
23.1.6 Device error handling during acquisition and transmission
24 Data Block
24.1 Data Block Transmission Modes
Figure 24-1: Data Block – Standard Transmission Mode
24.2 Data Block Packet Header
24.2.1 GVSP Status Flags
24.3 Standard Transmission Mode Packets
24.3.1 Data Leader Packet
24.3.2 Data Payload Packet
24.3.3 Data Trailer Packet
24.4 All-in Transmission Mode Packet
24.5 Chunk Data
24.5.1 Byte Ordering Example for Chunk Data
24.5.2 GenICam Chunk Definition Example
24.6 Test Packet
24.6.1 LFSR Generator
25 Payload Types
25.1 Extended Chunk Mode
25.2 Image Payload Type
25.2.1 Image Data Leader Packet
25.2.2 Image Data Payload Packet
25.2.3 Image Data Trailer Packet
25.2.4 Image All-in Packet
25.3 Raw Data Payload Type
25.3.1 Raw Data Leader Packet
25.3.2 Raw Data Payload Packet
25.3.3 Raw Data Trailer Packet
25.3.4 Raw All-in Packet
25.4 File Payload Type
25.4.1 File Data Leader Packet
25.4.2 File Data Payload Packet
25.4.3 File Data Trailer Packet
25.4.4 File All-in Packet
25.5 Chunk Data Payload Type
25.5.1 Chunk Data Leader Packet
25.5.2 Chunk Data Payload Packet
25.5.3 Chunk Data Trailer Packet
25.5.4 Chunk All-in Packet
25.6 Extended Chunk Data Payload Type (deprecated)
25.6.1 Extended Chunk Data Leader Packet (deprecated)
25.6.2 Extended Chunk Data Payload Packet (deprecated)
25.6.3 Extended Chunk Data Trailer Packet (deprecated)
25.7 JPEG Payload Type
25.7.1 JPEG Principles
25.7.2 JPEG Implementation for GVSP
25.7.3 JPEG Data Leader Packet
25.7.4 JPEG Data Payload Packet
25.7.5 JPEG Data Trailer Packet
25.7.6 JPEG All-in Packet
25.8 JPEG 2000 Payload Type
25.8.1 JPEG 2000 Principles
25.8.2 JPEG 2000 Implementation for GVSP
25.8.3 JPEG 2000 Data Leader Packet
25.8.4 JPEG 2000 Data Payload Packet
25.8.5 JPEG 2000 Data Trailer Packet
25.8.6 JPEG 2000 All-in Packet
25.9 H.264 Payload Type
25.9.1 H.264 Principles
25.9.2 H.264 Implementation for GVSP
25.9.3 H.264 Data Leader Packet
25.9.4 H.264 Data Payload Packet
25.9.5 H.264 Data Trailer Packet
25.9.6 H.264 All-in Packet
1.1
25.10 Multi-zone Image Payload Type
25.10.1 Multi-zone Image Principles
25.10.2 Multi-zone Image Implementation for GVSP
25.10.3 Multi-zone Image Data Leader Packet
25.10.4 Multi-zone Image Data Payload Packet
25.10.5 Multi-zone Image Data Trailer Packet
25.10.6 Multi-zone Image All-in Packet
25.10.7 Multi-zone Image Examples
25.11 Device-specific Payload Type
25.11.1 Device-specific Data Leader Packet
25.11.2 Device-specific Data Payload Packet
25.11.3 Device-specific Data Trailer Packet
25.11.4 Device-specific All-in Packet
26 Pixel Layouts
26.1 Pixel Alignment
26.2 Line and Image Boundaries
26.3 Pixel Formats
1.1.1
1.1.1
1.1.1
26.3.1 Mono1p
26.3.2 Mono2p
26.3.3 Mono4p
26.3.4 Mono8
26.3.5 Mono8s
26.3.6 Mono10
26.3.7 Mono10Packed
26.3.8 Mono12
26.3.9 Mono12Packed
26.3.10 Mono14
26.3.11 Mono16
26.3.12 BayerGR8
26.3.13 BayerRG8
26.3.14 BayerGB8
26.3.15 BayerBG8
26.3.16 BayerGR10
26.3.17 BayerRG10
26.3.18 BayerGB10
26.3.19 BayerBG10
26.3.20 BayerGR12
26.3.21 BayerRG12
26.3.22 BayerGB12
26.3.23 BayerBG12
26.3.24 BayerGR10Packed
26.3.25 BayerRG10Packed
26.3.26 BayerGB10Packed
26.3.27 BayerBG10Packed
26.3.28 BayerGR12Packed
26.3.29 BayerRG12Packed
26.3.30 BayerGB12Packed
26.3.31 BayerBG12Packed
26.3.32 BayerGR16
26.3.33 BayerRG16
26.3.34 BayerGB16
26.3.35 BayerBG16
26.3.36 RGB8
26.3.37 BGR8
26.3.38 RGBa8
26.3.39 BGRa8
26.3.40 RGB10
26.3.41 BGR10
26.3.42 RGB12
26.3.43 BGR12
26.3.44 RGB16
26.3.45 RGB10V1Packed
26.3.46 RGB10p32
26.3.47 RGB12V1Packed
26.3.48 RGB565p
26.3.49 BGR565p
26.3.50 YUV411_8_UYYVYY
26.3.51 YUV422_8_UYVY
26.3.52 YUV422_8
26.3.53 YUV8_UYV
26.3.54 YCbCr8_CbYCr
26.3.55 YCbCr422_8
26.3.56 YCbCr422_8_CbYCrY
26.3.57 YCbCr411_8_CbYYCrYY
26.3.58 YCbCr601_8_CbYCr
26.3.59 YCbCr601_422_8
26.3.60 YCbCr601_422_8_CbYCrY
26.3.61 YCbCr601_411_8_CbYYCrYY
26.3.62 YCbCr709_8_CbYCr
26.3.63 YCbCr709_422_8
26.3.64 YCbCr709_422_8_CbYCrY
26.3.65 YCbCr709_411_8_CbYYCrYY
26.3.66 RGB8_Planar
26.3.67 RGB10_Planar
26.3.68 RGB12_Planar
26.3.69 RGB16_Planar
27 Pixel Format Defines
27.1 Mono buffer format defines
27.2 Bayer buffer format defines
27.3 RGB Packed buffer format defines
27.4 YUV and YCbCr Packed buffer format defines
27.5 RGB Planar buffer format defines
PART 4 – Bootstrap Registers
28 Bootstrap Registers
28.1 Version Register
28.2 Device Mode Register
28.3 Device MAC Address Registers
28.3.1 High Part
28.3.2 Low Part
28.4 Network Interface Capability Registers
28.5 Network Interface Configuration Registers
28.6 Current IP Address Registers
28.7 Current Subnet Mask Registers
28.8 Current Default Gateway Registers
28.9 Manufacturer Name Register
28.10 Model Name Register
28.11 Device Version Register
28.12 Manufacturer Info Register
28.13 Serial Number Register
28.14 User-defined Name Register
28.15 First URL Register
28.16 Second URL Register
28.17 Number of Network Interfaces Register
28.18 Persistent IP Address Registers
28.19 Persistent Subnet Mask Registers
28.20 Persistent Default Gateway Registers
28.21 Link Speed Registers
28.22 Number of Message Channels Register
28.23 Number of Stream Channels Register
28.24 Number of Action Signals Register
28.25 Action Device Key Register
28.26 Number of Active Links
28.27 GVSP Capability Register
28.28 Message Channel Capability Register
28.29 GVCP Capability Register
28.30 Heartbeat Timeout Register
28.31 Timestamp Tick Frequency Registers
28.31.1 High Part
28.31.2 Low Part
28.32 Timestamp Control Register
1.1
28.33 Timestamp Value Registers
28.33.1 High Part
28.33.2 Low Part
28.34 Discovery ACK Delay Register
28.35 GVCP Configuration Register
28.36 Pending Timeout Register
28.37 Control Switchover Key Register
28.38 GVSP Configuration Register
28.39 Physical Link Configuration Capability Register
28.40 Physical Link Configuration Register
28.41 IEEE 1588 Status Register
28.42 Scheduled Action Command Queue Size Register
28.43 Control Channel Privilege Register (CCP)
28.44 Primary Application Port Register
28.45 Primary Application IP Address Register
28.46 Message Channel Port Register (MCP)
28.47 Message Channel Destination Address Register (MCDA)
28.48 Message Channel Transmission Timeout Register (MCTT)
28.49 Message Channel Retry Count Register (MCRC)
28.50 Message Channel Source Port Register (MCSP)
28.51 Stream Channel Port Registers (SCPx)
28.52 Stream Channel Packet Size Registers (SCPSx)
28.53 Stream Channel Packet Delay Registers (SCPDx)
28.54 Stream Channel Destination Address Registers (SCDAx)
1.1
28.55 Stream Channel Source Port Registers (SCSPx)
28.56 Stream Channel Capability Registers (SCCx)
28.57 Stream Channel Configuration Registers (SCCFGx)
28.58 Stream Channel Zone Registers (SCZx)
28.59 Stream Channel Zone Direction Registers (SCZDx)
1.1
28.60 Manifest Table
28.60.1 ManifestHeader
28.60.2 ManifestEntry
28.60.3 URL Pair
28.61 Action Group Key Registers (ACTION_GROUP_KEYx)
28.62 Action Group Mask Registers (ACTION_GROUP_MASKx)
29 Standard Features List for Cameras
29.1 Introduction
29.2 GenICam™ Standard
29.3 Level of Interoperability
29.4 Use Cases
29.4.1 Use Case #1: Continuous Acquisition and Display
29.4.2 Use Case #2: Simplest GigE Vision Camera
29.5 XML Description File Mandatory Features
29.6 Width and Height Features
29.7 PixelFormat Feature
29.8 PayloadSize Feature
29.9 GevSCPSPacketSize
29.10 AcquisitionMode Feature
29.11 AcquisitionStart Feature
29.12 AcquisitionStop Feature
29.13 Link to Naming Convention
30 Appendix 1 –Requirements Reference Tables
31 Appendix 2 – Status Codes Explained
31.1 GEV_STATUS_SUCCESS
31.2 GEV_STATUS_PACKET_RESEND
31.3 GEV_STATUS_NOT_IMPLEMENTED
31.4 GEV_STATUS_INVALID_PARAMETER
31.5 GEV_STATUS_INVALID_ADDRESS
31.6 GEV_STATUS_WRITE_PROTECT
31.7 GEV_STATUS_BAD_ALIGNMENT
31.8 GEV_STATUS_ACCESS_DENIED
31.9 GEV_STATUS_BUSY
31.10 GEV_STATUS_PACKET_UNAVAILABLE
31.11 GEV_STATUS_DATA_OVERRUN
31.12 GEV_STATUS_INVALID_HEADER
31.13 GEV_STATUS_PACKET_NOT_YET_AVAILABLE
31.14 GEV_STATUS_PACKET_AND_PREV_REMOVED_FROM_MEMORY
31.15 GEV_STATUS_PACKET_REMOVED_FROM_MEMORY
31.16 GEV_STATUS_PACKET_TEMPORARILY_UNAVAILABLE
31.17 GEV_STATUS_OVERFLOW
31.18 GEV_STATUS_NO_REF_TIME
31.19 GEV_STATUS_ACTION_LATE
31.20 GEV_STATUS_ERROR
32 Document History