Overview
QuaSAR is a software package for synthetic aperture radar (SAR) imaging that combines the strict typing and memory safety of the Rust language with the computing power of NVIDIA CUDA parallel architectures.
The main task of the QuaSAR software package is to transform raw signals (holograms) into detailed georeferenced images or video streams.
Features
Telescopic Imaging
In telescopic mode, the image is formed within the antenna beam pattern. This achieves maximum resolution, but the image coverage is limited to the surface area captured by the radar’s antenna beam.

Strip Imaging
The image is formed continuously as the carrier moves (“stitched” together from strips). This mode provides wide coverage of the ground surface along the entire route while maintaining stable image quality.

Autofocus
Due to navigation errors and turbulence, images formed using the nominal platform velocity may appear out of focus. QuaSAR implements entropy-minimization-based autofocus.
The algorithm iterates over several reference velocity options within a range of 60–140% of the navigation value. For each velocity value, a SAR image is formed in the vicinity of a pre-selected point reflector, and the entropy of the sector is then calculated. The entropy minimum corresponds to the best focus. The optimal velocity found is used when generating the final image.

Video Stream
Video mode is implemented as frame-by-frame synthesis of telescopic SAR images with temporal sampling: each frame is independently synthesized from a sliding time window of the hologram. The result is encoded into H.265/HEVC using FFmpeg, with configurable quality parameters (CRF 18–28) and a frame rate of up to 120 frames per second.
Frame generation and saving are parallelized using a two-thread pipeline with non-blocking crossbeam channels, eliminating thread idle time while waiting for disk writes.
Object Detection
The software package includes an object detection module based on the YOLO11 OBB neural network. Unlike standard detectors, the OBB model accounts for the rotation angle of objects, which is critically important for radar imagery.
The detection module automatically labels objects in the SAR image (e.g., equipment, vehicles, structures).

Architecture
The signal processing workflow is a multi-stage pipeline.
Key processing stages:
- Signal Reading: parsing the binary stream using
mmap, synchronization pulse detection, and time window extraction - Range Compression: short-time Fourier transform performed on CPU or CUDA cores
- Navigation Parameter Calculation: computation of key navigation parameters (drift angle, velocity) from signal characteristics using the Levenberg–Marquardt method
- BPA: the main computational node performing back-projection of the signal. The CUDA implementation of the algorithm includes the following low-level optimizations:
- Zero-allocation: the algorithm does not allocate memory outside the main image buffer. cuFFT plans and intermediate buffers are cached;
- NVIDIA Intrinsics: NVIDIA CUDA hardware intrinsics are used for trigonometric operations and type conversion;
- Global Memory Access Optimization: the algorithm uses the
__ldgintrinsic for fast global GPU memory access; - Asynchronous Execution: using
cudaMemcpyAsyncallows computation to overlap with data transfer to GPU memory.
- Focusing: phase error compensation using the image entropy minimization method
- Visualization and Rendering: dynamic contrast enhancement using adaptive histogram equalization and optional MP4 (H.265) video stream multiplexing
Supported Platforms
The software package is designed as a cross-platform solution with an emphasis on embedded systems and runs successfully on a wide range of devices.
NVIDIA Jetson Orin Family
The target platform of the package. The project is optimized for NVIDIA modules, delivering maximum performance per watt for field SAR data processing. Supported models include:
- Jetson Orin AGX
- Jetson Orin NX
- Jetson Orin Nano
Features: full hardware acceleration support via NVIDIA CUDA (sm_87/compute_87 architecture) and the use of specialized codecs for video stream multiplexing.
Single Board Computers (SBCs)
Despite the lack of hardware acceleration on these platforms, the high efficiency of parallel CPU computing allows the software package to run on SBCs such as the Raspberry Pi 4/5.
Desktop
- Linux (x86_64): the primary development and analysis environment. On PCs with discrete NVIDIA GPUs (Ampere, Blackwell architectures), the maximum SAR image formation speed is achieved.
Platform Comparison
The comparison uses the formation time of a strip SAR image of a terrain area measuring 3,000 × 4,529 m.
| Platform | Mode | Execution Time |
|---|---|---|
| Jetson Orin AGX | GPU (CUDA) | 35.2 s |
| Jetson Orin NX | GPU (CUDA) | 48.1 s |
| Jetson Orin Nano | GPU (CUDA) | 48.3 s |
| PC (RTX 5070, AMD Ryzen 5 7600) | GPU (CUDA) | 14.0 s |
| PC (RTX 5070, AMD Ryzen 5 7600) | CPU (12 threads) | 39.8 s |
| Raspberry Pi 5 | CPU (4 threads) | 116.5 s |
Stack
The project is written in Rust (Edition 2024). To achieve maximum performance in signal processing, CUDA 12 is used, integrated via C FFI.
Libraries Used
Signal Processing & Mathematical Computing
- NVIDIA cuFFT
– high-performance library for performing FFT on CUDA cores; - rustfft and realfft – efficient CPU FFT implementations supporting AVX and SSE4.1 (x86_64) and NEON (ARM64) instruction sets;
- ndarray and nalgebra
– multi-dimensional array handling and linear algebra.
Concurrent Programming
- crossbeam – a set of tools for implementing multithreading;
- rayon – a library implementing work-stealing parallelism.
OS APIs
- jemallocator – high-performance memory allocator minimizing fragmentation under intensive workloads;
- memmap2 – file-to-RAM mapping (
mmap), enabling efficient processing of large holograms.
Data Handling & Formats
- GDAL
– library for reading and writing geospatial raster data; - memchr – optimized pattern searching within holograms;
- serde – general-purpose data serialization/deserialization framework.
Visualization & Analysis
- OpenCV
– open-source computer vision library; - plotters – library for plotting graphs and charts;
- FFmpeg
– universal multimedia processing toolkit.
For profiling and identifying bottlenecks, Tracy is used.
