A synthetic aperture image is not free. Every pulse has to be propagated to a seafloor made of millions of individual reflectors and back, and then hundreds of pings have to be coherently focused into a picture. This page measures that, end to end, and compares it with the time the sonar spent gathering the data in the first place.
The scene
Everything below images the same patch of seafloor from the same trajectory. The platform flies a curved track that loops around the scene rather than past it, so objects are lit from many aspects and their shadows fall in different directions.
Fidelity
Scatterer density sets how finely the seafloor is discretised. Too few reflectors per resolution cell and the speckle is not fully developed: the image looks grainy in a way real sonar does not, and fine relief breaks up. Past a point the returns are already statistically converged and more reflectors buy nothing but time.
The same 20 m square of one scene, a rock outcrop with its acoustic shadow beside a ripple field, at four densities. Click any tile to enlarge it.
The jump from 200 to 2,000 per square metre is the one that matters; beyond roughly 20,000/m² the differences are subtle and the cost is not.
Wall clock
The whole path a user waits through: scene build, point-scatterer simulation, back-projection, and writing the output image. Nothing is cached; every point re-simulates from the scene file. Measured on NVIDIA RTX 4500 Ada, 24 GB.
Below about 2,000 scatterers per square metre the wall clock barely moves, because fixed costs rather than the physics dominate: at 200/m² the run takes 76 s. Past that the scatterer count leads, and at 80,000/m², which is 572 million reflectors, the same image takes 12.8 min.
Against real time
The sonar spent 134 s flying this track and listening. A real-time factor above 1 means the workstation produced the finished image in less time than that.
The crossover sits near 13,177 scatterers per square metre. Below it, one workstation forms the image faster than the sonar gathered the data; above it, the physics costs more than the collection did.
| density | scatterers | wall clock | vs real time |
|---|---|---|---|
| 200 | 1.4 M | 76 s | 1.76x |
| 500 | 3.6 M | 77 s | 1.73x |
| 1,000 | 7.1 M | 81 s | 1.66x |
| 2,000 | 14.3 M | 86 s | 1.57x |
| 5,000 | 35.7 M | 99 s | 1.36x |
| 10,000 | 71.5 M | 119 s | 1.13x |
| 20,000 | 142.9 M | 161 s | 0.83x |
| 40,000 | 285.8 M | 5.6 min | 0.40x |
| 80,000 | 571.6 M | 12.8 min | 0.18x |
From 40,000 to 80,000 per square metre the scatterer count doubles but the wall clock grows by 2.3x. At 80,000 per square metre the run would need about 36 GB of host memory, more than this workstation has free, so it ran out of core: the scatterer cloud lives in disk-backed memory maps and the run peaked at 7.2 GB of RAM.
Method