UnrealCV Dev For UnrealZoo Shared-Memory Transport

The shared-memory implementation in UnrealCV Dev for UnrealZoo draws on the SPEAR project paper (https://arxiv.org/abs/2607.06701) and source repository (https://github.com/spear-sim/spear).

This section reports measurements from a packaged UnrealZoo build. The test environment was:

  • Windows 11

  • AMD Ryzen 9 5950X, 16 cores and 32 logical processors

  • NVIDIA RTX 6000D

  • Epic Games Unreal Engine 5.7.4

  • A fixed scene and identical camera pose for every measurement

  • 3 independent runs and 180 measured samples per table cell

TCP and shared-memory requests were alternated. FPS is based on mean client latency across all 180 samples; +/- is the standard deviation across the three independent runs. Both paths include receiving or copying the complete image.

The standard-camera rows compare TCP and shared-memory lit capture.

Table 2 Standard Camera

Resolution

TCP FPS

Shared FPS

Speedup

480p (640x480)

40.65 +/- 1.13

64.00 +/- 1.85

1.57x

720p (1280x720)

26.19 +/- 0.39

69.70 +/- 1.30

2.66x

1080p (1920x1080)

14.95 +/- 0.18

62.99 +/- 2.42

4.21x

2K (2560x1440)

9.20 +/- 0.39

53.46 +/- 0.53

5.81x

4K (3840x2160)

4.69 +/- 0.31

29.59 +/- 1.39

6.31x

8K (7680x4320)

1.25 +/- 0.11

7.68 +/- 0.54

6.14x

MQRC

MQRC uses vget /camera/0/mqrc/lit bmp versus vget /camera/0/mqrc/lit_shared. Both paths return the same BGRA8 pixel payload, so the comparison includes MQRC rendering and HDR-to-BGRA8 conversion as well as transport. All 2,160 measured MQRC requests below succeeded.

Table 3 Movie Quality Render Component

Resolution

TCP FPS

Shared FPS

Speedup

480p (640x480)

25.45 +/- 0.74

40.12 +/- 1.30

1.58x

720p (1280x720)

15.85 +/- 0.35

30.22 +/- 0.63

1.91x

1080p (1920x1080)

9.71 +/- 0.35

19.24 +/- 0.37

1.98x

2K (2560x1440)

6.27 +/- 0.03

12.81 +/- 0.19

2.04x

4K (3840x2160)

3.28 +/- 0.17

7.01 +/- 0.12

2.14x

8K (7680x4320)

0.77 +/- 0.05

1.78 +/- 0.05

2.30x

Multi-camera capture

The multi-camera test uses 640x480 with the same scene and camera pose. Each camera count was tested independently. N=1 reuses the Standard Camera 480p result. FPS is the number of complete synchronized capture rounds per second.

Table 4 Synchronized multi-camera FPS

Cameras

Lit FPS

Lit shared FPS

Speedup

1

40.65 +/- 1.13

64.00 +/- 1.85

1.57x

2

13.31 +/- 1.93

21.13 +/- 3.81

1.59x

3

13.44 +/- 0.13

24.04 +/- 0.42

1.79x

4

10.97 +/- 0.17

20.68 +/- 0.09

1.89x

5

9.06 +/- 0.21

17.46 +/- 0.46

1.93x

6

8.23 +/- 0.22

16.92 +/- 0.74

2.06x

7

7.04 +/- 0.19

14.96 +/- 0.57

2.13x

8

6.31 +/- 0.46

13.49 +/- 0.19

2.14x

9

5.88 +/- 0.16

12.41 +/- 0.30

2.11x

10

5.33 +/- 0.17

11.50 +/- 0.19

2.16x

Cross-simulator comparison

The following table is an additional product-level comparison against CARLA, SimWorld, and AirSim. It does not replace the UnrealZoo measurements above. The UnrealCV shared-memory column uses the same packaged-build Standard Camera measurements reported above and vget /camera/0/lit_shared.

The UnrealCV results use the controlled 180-sample procedure above. The other simulators retain their original three-round, 60-sample measurements. Simulators ran serially and offscreen.

Table 5 Effective FPS

Resolution

UnrealCV shared

CARLA (UE4)

SimWorld

AirSim (UE4)

640x480

64.00

69.94

18.24

68.91

1280x720

69.70

49.09

11.56

37.85

1920x1080

62.99

27.07

7.81

12.99

2560x1440

53.46

17.41

5.13

8.03

3840x2160

29.59

8.38

2.58

3.89

7680x4320

7.68

2.13

0.70

1.04

AirSim returns three-byte RGB pixels; the other columns use four-byte BGRA pixels. The simulators use different scenes and rendering pipelines, so this is an end-to-end acquisition comparison rather than a transport-only test.