Cameras & sensorsExplainer

High frame rate camera data rate: plan 2000 fps recording

Camera data rate and storage for a high frame rate run — 2000 fps for 300 s: 640 × 480 Mono8 is 614 MB/s and 184 GB; 10GbE carries it, 1 GbE cannot.

LumaSpec Vision9 min read Share on LinkedIn

On this page 9 sections
  1. 01The data rate formula
  2. 02A worked example: 640 × 480 Mono8 at 2000 fps
  3. 03What each interface can carry
  4. 04Rated fps versus sustained fps
  5. 05Storage for a 300 s run
  6. 06Cut the stream, not the experiment
  7. 07Choosing the parts: the decision per case
  8. 08Checks before you order
  9. 09Questions

At 2000 fps the camera decision stops being about resolution and starts being about plumbing. Five minutes of 2000 fps video is a continuous stream of hundreds of megabytes per second. The interface, the recorder and the drive decide whether the run survives long before pixel count matters. This guide works the numbers for a 2000 fps, 300 s run: the rate formula, a 640 × 480 Mono8 example with the arithmetic shown, the ceiling of every machine-vision interface, and the parts decision for each case.

The data rate formula

Two limits set the frame rate you actually record. One is the sensor's readout speed at your region of interest. The other is the bandwidth your link can carry, and that limit is arithmetic:

data rate (MB/s) = fps × width × height × bytes per pixel ÷ 1,000,000 run size (GB) = data rate (MB/s) × seconds ÷ 1,000

Bytes per pixel follows the pixel format: Mono8 is 1, packed Mono10 is 1.25, packed Mono12 is 1.5, Mono16 is 2 and RGB8 is 3. The recorded frame rate is the smaller of the two limits: fps = min(readout limit at your ROI, usable bandwidth ÷ bytes per frame).

A sensor that digitizes 12 bits can still output 8-bit frames — the bit depth and pixel format distinction explains why the settings are separate. Work in decimal units, 1 MB = 1,000,000 bytes, so the stream numbers line up with interface line rates.

A worked example: 640 × 480 Mono8 at 2000 fps

Resolution is not the goal in this kind of study, so start from a small frame and see what it costs:

  • 640 × 480 = 307,200 pixels, one byte each in Mono8 → 307,200 bytes per frame
  • 307,200 bytes × 2,000 frames/s = 614,400,000 bytes/s → 614 MB/s
  • 614.4 MB/s × 300 s = 184,320 MB → 184 GB per run
  • 2,000 fps × 300 s = 600,000 frames

Two consequences follow immediately. One 10GbE port moves 1,250 MB/s of line rate, so the example stream rides a single port at 49% utilization, or 52% of its usable 1,180 MB/s. And 184 GB is decimal: a recorder that reports binary units will call the same run 172 GiB. Keep about 370 GB spare on the recorder volume so two runs fit with margin.

What each interface can carry

Interface line rates come from the standard; the usable share is what survives protocol overhead. Tune the host before you measure. Enable jumbo frames (9,000-byte MTU) end to end and raise the NIC's receive buffers, or a default-tuned 1 GbE link delivers closer to 90 MB/s than its 125 MB/s line rate. The ceilings below assume the 307,200-byte frame of the worked example:

Interface Line rate Plan on Ceiling at 640 × 480 Mono8
1 GbE (GigE Vision) 125 MB/s 110 MB/s 358 fps
USB3 5 Gbit/s 400 MB/s 1,302 fps
10GbE 1,250 MB/s 1,180 MB/s 3,841 fps
Camera Link Full (80-bit) 850 MB/s 850 MB/s 2,766 fps
CoaXPress, one CXP-6 link 625 MB/s 625 MB/s 2,034 fps

Read the GigE row backwards and it sizes the largest frame 2000 fps allows on 1 GbE: 110 MB/s ÷ 2,000 fps = 55,000 bytes per frame, about 256 × 214 pixels. Multi-link interfaces sum their links: two 10GbE ports carry about 2,360 MB/s usable, and four CXP-12 links about 5,000 MB/s. The GigE Vision frame rate math gets its own page, as does the USB hub bandwidth trap if your camera hangs off a hub.

The frame grabber range starts at the accessories finder. For the example stream the decision is a 10GbE camera into a dual-port 10GigE card — one port runs the stream, the second stays open for a second camera or the control network:

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

A stream under about 110 MB/s runs on ordinary GigE hardware with a port to spare — the small-ROI case later in this page lands exactly there:

Frame grabbersHikrobot MV-GE2002P Dual-port PoE NIC, full height V2.0MV-GE2002P
Interface
GigE
Ports
2 ports
$249.00View part
Frame grabbersPCIe x4 4-port PoE Gigabit Ethernet card, Intel i210AT (LS-FGB-0004)LS-FGB-0004
Interface
GigE
$359.00View part

Rated fps versus sustained fps

The data sheet maximum is a full-frame, free-run number under generous settings. Three things pull the sustained rate down.

Exposure: the frame period at 2000 fps is 1 ÷ 2,000 = 500 µs, so plan 400–450 µs exposures and light the scene for them. Halving exposure time costs one stop, so f/2.8 becomes f/2.0 or the illumination doubles. Prefer a global shutter; a rolling shutter at this rate smears row timing across fast motion.

Triggering: externally triggered capture often records below the free-run rating, and this triggered frame rate walkthrough works through the common causes. Pixel format: RGB or 16-bit output multiplies the stream, as the pixel format rate limits page shows. And if the rate starts high then collapses mid-run, exposure creep and link saturation are the usual suspects — the fps collapse walkthrough names them in order.

A camera with on-board memory can also burst faster than the link for short windows, which the burst capture guide covers — but a 300 s continuous run has no buffer large enough. The link must carry the average for the whole run.

Storage for a 300 s run

A stream of 614 MB/s arriving for 300 s needs a drive that writes 614 MB/s for 300 s. A SATA SSD sustains about 500 MB/s sequential, which is under the stream — it cannot take this job alone. Use NVMe rated for at least 1.2 × your stream rate, about 740 MB/s for the example. Gen3 and Gen4 drives typically sustain 1,500–2,000 MB/s sequential, so the margin is easy to meet. An 8 GB RAM ring buffer covers 8,000 MB ÷ 614 MB/s ≈ 13 s of stream while the drive recovers from a pause, which absorbs every normal filesystem hiccup.

Recording software drops frames in its own ways; if your acquisition runs under LabVIEW, this LabVIEW IMAQ recording walkthrough covers the usual software-side causes. For the recorder design end to end — buffer sizing, file formats, drop-free capture — the high speed recording guide is the companion page.

Cut the stream, not the experiment

Rate scales linearly with width, height and bytes per pixel, so every cut is a direct saving. A 256 × 200 ROI in Mono8 costs 51,200 bytes × 2,000 fps = 102.4 MB/s — just under the 110 MB/s a tuned 1 GbE link carries, which turns the whole problem into standard GigE hardware. Dropping packed 12-bit output to 8-bit cuts the stream by a third, 1.5 to 1.0 bytes per pixel, whenever the extra bits carry no measurement.

Size the ROI from the feature instead of from habit — the field of view and the smallest detail you must resolve set the pixel count:

Camera resolution for the smallest feature
Units
Pixels needed
–
Sensor size
– MP
Smallest sensor that fits
–
Pixel on the part
– mm
Pixels across the feature, that sensor
–

Pixels needed = field / feature × pixels per feature on each axis (field incl. margin). The lens must resolve the pixels too: Nyquist = 1000 / (2 × pixel µm) lp/mm.

Find cameras with enough pixels Open the full calculator

Choosing the parts: the decision per case

Compute your stream once and the hardware picks itself:

  • Under 110 MB/s (about 55,000 pixels at 2000 fps Mono8): a standard GigE camera from the area scan cameras range on a PoE NIC. The 256 × 200 case above lands here.
  • 110–1,150 MB/s (the 640 × 480 example at 614 MB/s): a 10GbE camera, one port per stream.
  • 1,150–4,500 MB/s (dense ROI, deep pixel formats): multi-port 10GbE or multi-link CoaXPress. The two parts below cover that band — the quad-port copper NIC for spread streams, the octo CXP-6 frame grabber where the camera speaks CoaXPress.
Frame grabbersHikrobot MV-GT2104 Quad-port copper 10GbE NICMV-GT2104
Interface
10GigE
Ports
4 ports
$1,429.00View part
Frame grabbersHikrobot MV-GX1008 Octo CXP-6 Frame GrabberMV-GX1008
Interface
CoaXPress
$1,949.00View part

On the camera itself, shortlist the high-speed series in the camera finder, require a global shutter, and read the two limits against each other. The camera's frame-rate table at your ROI is the readout half of the minimum, and the bandwidth formula is the other half. The system configurator walks camera, interface and recorder in one pass.

Checks before you order

  1. Fix the pixel format (packed or unpacked) and compute bytes per frame: width × height × bytes per pixel.
  2. Take the camera's frame-rate figure at your ROI and compare it with usable bandwidth ÷ bytes per frame; record the smaller number as your fps.
  3. Multiply fps by bytes per frame by run length for the gigabyte figure, and add 20% for a second run.
  4. Pick an NVMe drive whose sustained sequential write rating clears 1.2 × the stream rate.
  5. Tune the host: jumbo frames end to end, larger receive buffers, and no other traffic on the capture NIC.
  6. Dry-run 60 s and count frames — 120,000 expected at 2000 fps — so any shortfall names the bottleneck before the real experiment does.

Send the frame size, pixel format and run length through the extras step of the configurator or the contact page, and the sized parts list comes back with the numbers attached. More rate, trigger and interface guides sit under the cameras topic.

Questions

Do I need a frame grabber for a 10GbE camera?

No. A 10GbE camera streams into a standard PCIe network card, and a single 614 MB/s stream occupies one port of a dual-port card. Frame grabbers earn their keep on multi-camera CoaXPress or Camera Link systems, where they add DMA engines, on-board memory and precise cross-port triggering. For one or two 10GbE cameras, the network card is the whole acquisition hardware.

What does 10-bit or 12-bit depth change?

Packed Mono10 is about 1.25 bytes per pixel and packed Mono12 about 1.5, so the example stream rises to 768 MB/s or 922 MB/s and the run grows to 230 GB or 276 GB; Mono16 doubles it to 1,229 MB/s and 369 GB. One 10GbE port still carries 768 and 922 MB/s, so the interface survives and the drive rating moves with the stream.

Can a SATA SSD record 2000 fps?

At the example rate, no. A SATA drive sustains roughly 500 MB/s sequential, leaving a 114 MB/s deficit that accumulates about 34 GB over 300 s — more than any sensible RAM buffer absorbs quietly, so frames drop partway through. Use an NVMe drive with a sustained sequential write rating of at least 740 MB/s; typical Gen3 parts sustain several times that.

How short must the exposure be at 2000 fps?

The period is 1 ÷ 2,000 = 500 µs, so exposure must stay below it; 400–450 µs leaves readout margin. Blur equals speed multiplied by exposure: at 1 m/s a 450 µs exposure smears 0.45 mm, and at 2 m/s it smears 0.90 mm. For sub-millimetre sharpness on metre-per-second motion, this exposure window binds before bandwidth does.

Can I record straight to a network share?

Not at these rates. A busy 1 Gbit/s share sits near 110 MB/s, under the example stream, and even a dedicated 10 Gbit/s share rarely sustains more than about 1,000 MB/s once other traffic joins. Record to local NVMe, then copy the 184 GB result afterwards at whatever rate the link gives. Real-time network recording needs a storage path rated like the camera link.