Cameras & sensorsGuide

Synchronize two cameras at high frame rate

Synchronize two cameras at high frame rate by sizing RGB bandwidth, choosing a timing method, and testing exposure skew and dropped frames.

LumaSpec Vision10 min read Share on LinkedIn

On this page 10 sections
  1. 01Define what synchronized means before choosing cameras
  2. 02Calculate payload before selecting an interface
  3. 03Compare interfaces using the whole transport path
  4. 04Choose the trigger strategy separately from transport
  5. 05Shortlist parts without assuming an unlisted frame rate
  6. 06Build acquisition around frame identity and ownership
  7. 07Validate frame rate and exposure timing independently
  8. 08Recognize when the usual answer is wrong
  9. 09Check the operating point before ordering
  10. 10Questions

Capturing fast RGB video from two cameras creates two separate engineering problems: starting exposures together and moving every image into memory. Solving only one leaves you with synchronized cameras that drop frames, or complete recordings whose images represent different moments. For a desktop acquisition system, choose the resolution and timing tolerance first, then validate the camera, interface, and capture application as one system.

Define what synchronized means before choosing cameras

To synchronize two cameras at high frame rate, specify an exposure-time relationship rather than asking only for matching frame rates. Two cameras can each deliver 100 fps while their exposures remain offset or drift apart.

Write down these requirements before comparing area scan cameras:

  • Image dimensions and minimum usable field of view.
  • Required delivered frame rate, not just the sensor's maximum rate.
  • Maximum difference between corresponding exposure start times.
  • Exposure duration and permitted motion blur.
  • Required color representation: raw Bayer data or converted RGB.
  • Recording duration and whether missing frames are acceptable.

At 100 fps, the frame period is 10 ms. Saying that cameras must agree within one frame therefore permits almost 10 ms of skew. That may be adequate for loosely associated video clips, but unsuitable for measuring a moving object from two views.

For example, an object moving at 250 mm/s travels 2.5 mm during 10 ms. Reducing the timing difference to 100 microseconds reduces that displacement to 0.025 mm. These are timing-induced position differences, not complete measurement-error estimates.

For the distinction between exposure alignment and matching video streams, use the multi-camera RGB exposure-timing guide.

Calculate payload before selecting an interface

The payload depends on the transmitted pixel format, not simply on whether the finished image looks colorful. A Bayer image with one transmitted byte per pixel carries much less data than an RGB image with three bytes per pixel.

Use this estimate for uncompressed image payload:

Payload rate = width × height × transmitted bytes per pixel × frames per second Frame period = 1 / frames per second Exposure skew = absolute value of corresponding exposure start-time difference

For an illustrative 1920 × 1080 image at 100 fps:

  • Bayer8: 1920 × 1080 × 1 × 100 = 207,360,000 bytes/s per camera.
  • RGB8: 1920 × 1080 × 3 × 100 = 622,080,000 bytes/s per camera.
  • Two Bayer8 streams require approximately 415 MB/s of image payload combined.
  • Two RGB8 streams require approximately 1,244 MB/s combined.

Here, MB means one million bytes. These figures exclude packet overhead, metadata, retransmissions, padding, and application copies. Packed formats and higher bit depths require their own calculation using the actual transport layout.

Recording ten minutes of the two Bayer8 streams would require approximately 249 GB before metadata or file overhead:

Recording payload = 414,720,000 bytes/s × 600 s = 248,832,000,000 bytes

Converting Bayer data on the host can reduce transport and recording load, but it moves color processing into the computer. If recording converted RGB, storage bandwidth rises even when camera-link traffic remains unchanged.

The RGB pixel-format and exposure guide explains why color format and exposure settings can change the attainable operating point.

Compare interfaces using the whole transport path

The following capacities are nominal signaling-rate conversions, not achievable image-payload guarantees.

Interface example Nominal capacity before overhead Decision for the worked example
GigE 125 MB/s per link Insufficient for the illustrated uncompressed Bayer8 stream
USB3 link negotiated at 5 Gb/s 625 MB/s per link Bayer8 may fit; the illustrated RGB8 payload leaves effectively no overhead margin
10GigE 1,250 MB/s per link Offers more transport headroom, subject to camera and host limits

A faster interface does not make a sensor read out faster. Verify the required dimensions, pixel format, exposure, and trigger mode together. Cropping may increase frame rate when it reduces the limiting sensor readout, but an arbitrary region of interest does not guarantee an increase.

For USB, inspect the controller topology. Separate physical sockets can share an upstream controller or hub. A hub adds ports, not upstream bandwidth. An expansion adaptor also needs sufficient host-bus capacity and documented controller architecture.

For Ethernet, inspect each camera link and every shared uplink. Independent camera ports can still converge on a limited host connection. When cameras expose together, their subsequent transfers may also overlap, producing short bursts above the long-term average.

Compare interface options in the camera finder. For the receiving hardware, use the frame grabbers category and accessories finder to check the complete connection chain.

Choose the trigger strategy separately from transport

A shared hardware trigger is usually the practical starting point when exposure alignment matters. The same event reaches both cameras without relying on the operating system to schedule two separate commands. Actual alignment still depends on input delays, configured trigger delays, sensor behavior, and camera readiness.

Hardware triggering does not consume less image bandwidth. It can actually concentrate transfers into the same interval, so synchronized operation must be included in the bandwidth test.

Timing method What it provides What must be verified
Sequential software commands Simple application control Exposure skew and its worst-case variation under load
Shared hardware trigger A common exposure request Input compatibility, trigger latency, readiness, and accepted-trigger count
Scheduled acquisition with synchronized device clocks A common scheduled time when supported Clock synchronization error, scheduling behavior, and exposure timing
Free-running capture with timestamp pairing Association of independently captured images Timestamp clock relationship, drift, and maximum pairing error

Software triggering is not universally too slow, but sequential commands are not inherently simultaneous. If your tolerance is 10 ms, software commands might pass a measured acceptance test. That result should not be assumed to hold under every host workload.

Scheduled acquisition is an alternative only when both cameras explicitly support the necessary clock and acquisition features. Clock synchronization alone does not automatically synchronize exposures.

For electrical implementation, follow the shared-trigger approach for two USB cameras. Check input voltage, polarity, reference, and isolation against the exact camera documentation before connecting anything.

Shortlist parts without assuming an unlisted frame rate

The following parts illustrate interface choices, not a qualified high-rate system. Their catalog entries do not establish the frame rate, trigger behavior, or timestamp facilities required for this application. Obtain the exact operating-mode documentation before ordering.

The MV-CH120-11UC is a color USB3 camera with a global shutter. The MV-CH250-25TC-F-NF is a color 10GigE camera with a global shutter. Compare their supported acquisition modes rather than treating interface speed as a frame-rate specification.

Area scan camerasHikrobot MV-CH120-11UC 12 MP Area Scan Camera, USB3, IMX304, High-speed version, ColorMV-CH120-11UC
Sensor format
1.1"
Lens mount
C-mount
$2,339.00 · quotedView and quote
Area scan camerasHikrobot MV-CH250-25TC-F-NF 25 MP 10GigE area scan camera, PYTHON25K, Color, F-mount, With fanMV-CH250-25TC-F-NF
Sensor format
APS-H
Lens mount
F-mount
$7,349.00 · quotedView and quote

For USB acquisition, the MV-GU2204 is a USB3 adaptor. Confirm its controller topology, host-slot requirements, operating-system support, and suitability for the combined payload.

Frame grabbersHikrobot MV-GU2204 MV-GU2200 Series Quad USB3.0 AdaptorMV-GU2204
Interface
USB3
Ports
4 ports
$469.00View partBuild a system with it

For Ethernet acquisition, the MV-GT1102P is a 10GigE frame grabber. Verify the camera connection, driver support, host-bus capacity, and supported simultaneous traffic before selecting it.

Frame grabbersHikrobot MV-GT1102P Dual 10GigE Frame GrabberMV-GT1102P
Interface
10GigE
Ports
2 ports
$2,029.00View partBuild a system with it

The LS-CBL-0219 is a USB3.0 camera cable specified for drag-chain use. Check connector compatibility and the complete cable route; that designation alone does not qualify a particular camera installation.

Cables3 m USB3.0 camera cable, high-flex (drag chain) (LS-CBL-0219)LS-CBL-0219$62.00View partBuild a system with it

Use the cables category to match data connections and any separate trigger connection. A matching connector shape does not establish an electrical pinout.

Before committing to either architecture, request written confirmation of the required resolution, delivered frame rate, pixel format, exposure duration, and external-trigger behavior. Also confirm lens requirements and the intended field of view separately.

Build acquisition around frame identity and ownership

Configure both cameras explicitly rather than relying on saved settings. Record the effective image dimensions, pixel format, exposure, gain, trigger configuration, and transport settings after configuration has completed.

Start reception and queue buffers before enabling the timing source. If supported, check camera readiness before starting the trigger train. A camera that is armed late can miss an event even though its wiring is correct.

Keep the capture path short. Receive the image, attach its identity and timing metadata, and transfer ownership to a bounded processing queue. Do not perform display rendering, color conversion, or disk compression inside a time-critical capture callback.

Copy image data when the acquisition library requires it. Holding a pointer after its buffer has been returned can corrupt an apparently successful recording.

Pair images using a shared event identity when available. Frame counters can identify gaps within a stream, but matching counter values are not proof of a shared physical event unless startup and reset behavior are controlled. Timestamp pairing requires clocks with a known relationship.

Choose a queue-overflow policy before testing. A larger buffer absorbs temporary stalls; it cannot fix a sustained processing deficit. If backlog grows continuously, latency will grow until frames are dropped or memory is exhausted.

Validate frame rate and exposure timing independently

Use a staged acceptance test that exposes the limiting subsystem. The following is a starting procedure, not a universal qualification duration.

  1. Run each camera separately at the final dimensions, format, exposure, and trigger settings. Confirm delivered rate and missing-frame counters.
  2. Run both cameras with image reception only. Disable previews and expensive processing to isolate acquisition capacity.
  3. Add Bayer conversion or other processing. Watch queue depth and CPU load rather than only the preview rate.
  4. Add recording, then display, using the intended production workload.
  5. Run a steady-state test for at least ten minutes, then extend it to the required recording duration and expected load conditions.
  6. Measure exposure alignment with a common observable event or documented exposure-active outputs, where available.

At 100 accepted triggers per second over 600 seconds, expect 60,000 images from each camera. Exclude deliberate startup settling consistently, and distinguish generated triggers from triggers actually accepted by the cameras.

Measure exposure timing independently of host arrival time. A frame can arrive later because of buffering or transport while its exposure occurred correctly. Likewise, equal callback times do not prove equal exposures.

For electrical timing checks, use only outputs whose documented meaning corresponds to the exposure event. For an optical check, place a controlled changing light source in both views and account for pulse width, exposure duration, and shutter behavior.

Record delivered rate, missing frame identities, exposure-skew distribution, maximum observed skew, queue depth, and recording throughput. Report the tested duration and load alongside the measurements. A percentile alone can conceal an occasional unacceptable timing error.

Recognize when the usual answer is wrong

A common trigger cannot make cameras capture faster than their supported triggered operating point. If pulses arrive while a camera is busy, behavior depends on its documented trigger handling. Check the external-pulse frame-rate guide before increasing the trigger frequency.

Similarly, equal exposure starts do not make rolling-shutter images simultaneous across every row. For rapidly moving scenes or geometric correspondence, global-shutter acquisition is generally easier to reason about. If rolling shutter is necessary, characterize line timing and the relationship between corresponding image rows.

Reducing exposure may not improve frame rate when transport, readout, or host processing is limiting. Conversely, a faster receiving interface does not fix an exposure that exceeds the available frame interval.

A larger buffer is also the wrong fix for steadily increasing latency. Separate temporary scheduling interruptions from sustained throughput shortfalls using the camera frame-rate bottleneck diagnostic.

Finally, synchronized capture does not imply low display latency. Sensor readout, transport, conversion, rendering, and display refresh all add delay after the exposure event. Measure capture-to-display latency separately if an operator or feedback loop depends on it.

Check the operating point before ordering

Use this short acceptance checklist for the proposed pair:

  • Confirm frame rate at the exact image dimensions and transmitted format.
  • Confirm whether exposure overlaps readout and how that affects triggered operation.
  • Specify maximum exposure skew separately from delivered-frame latency.
  • Calculate per-camera payload and every shared upstream bottleneck.
  • Verify trigger electrical requirements and documented timing behavior.
  • Confirm timestamp meaning, frame identity, and dropped-frame reporting.
  • Check host drivers, acquisition-library support, connectors, and required cables.
  • Test reception, processing, display, and recording together before acceptance.

Start with the camera configurator once the operating point is defined. If the required triggered frame rate or timing facilities are not documented, send the resolution, format, exposure, skew limit, and recording duration through technical support before selecting the pair.

Questions

Can software triggers synchronize two cameras adequately?

Possibly, if the permitted skew is loose enough and testing confirms it under the intended workload. Sequential commands are scheduled separately, so their timing can vary with host activity. For tighter exposure alignment, investigate a shared hardware event or documented scheduled acquisition, then measure the resulting exposure timing.

Should I choose USB3 or 10GigE for paired high-rate capture?

Neither interface guarantees synchronized exposures. USB3 can suit a compact desktop setup, while 10GigE can provide additional transport headroom. Calculate the actual payload, inspect shared host resources, and verify the camera's triggered operating point. Choose the timing method independently of the data interface.

Does a listed maximum frame rate also apply to external triggering?

No. A frame-rate specification applies to particular acquisition conditions. Exposure duration, image dimensions, pixel format, trigger readiness, and transport capacity can change the delivered rate. Request the supported externally triggered operating point and verify accepted triggers against received frame identities.

Do equal image counts prove that the cameras are synchronized?

Matching file counts only shows that equal numbers of images were saved. The exposures could still have a fixed offset, drift, or occasional mismatches. Use documented event identities or comparable timestamps for pairing, and independently measure exposure alignment with an appropriate electrical or optical timing test.

Is recording raw Bayer data better than recording converted RGB?

Raw Bayer recording reduces transport and storage requirements when the camera supports that format. Host-side conversion then adds processing work and may require separate calibration settings. Save the pixel format and relevant acquisition metadata so the recorded data can be interpreted and converted consistently later.