# Architecture Exploration of a Backprojection Algorithm for Real-Time Video SAR
## 3 Architecture Exploration for Backprojection Based Video SAR
### Architectures for BP-VISAR with Full-Synthetic-Aperture Processing  
The output of the radar receiver, i.e., the PH data, has \(K\) frequency samples per pulse. The image formation stage calculates the pixel responses using the range profile data taken from a group of pulses corresponding to the full or sub-synthetic-apertures. However, the range profile data per pulse is not large enough to achieve memory access efficiency. Thus, we designate the range profile data generated from a group of pulses constituting a sub-synthetic-aperture as a processing data unit and design the data transmission and processing structure for BP-VISAR accordingly. The number of pulses for the processing data unit can affect the overlap ratio of synthetic apertures for BP-VISAR and the memory transaction efficiency. In this study, we set the unit size \(N_{s}\) as 117, the number of pulses in one PH data file obtained within one-degree aperture angle in the Gotcha dataset. The group of phase history data \(S(f_{k},\tau_{n})\) is range compressed either in the host CPU system in Arch. F2 or in the GPU device in Arch. F3 in Figure 4. In Arch. F2, the range profile data for each processing unit of pulses is queued into the host system's sub-aperture range profile buffer. If the range profile data for \(M\) processing units are available for one image formation, they are transferred to the memory in the GPU device. Then, the image formation kernel is launched to calculate the pixel responses using the range profile data. \begin{table}
\begin{tabular}{c c c c} \hline \hline \multicolumn{2}{c}{**Processing Stage/Buffer**} & \multicolumn{2}{c}{**Non-Overlapped**} & \multicolumn{2}{c}{**Overlapped**} \\ \hline I/O (source) & & \(8 Kf_{PRF}\) & \(8 Kf_{PRF}\) \\ I/O (feed) & & \(8 KNp_{p}\gamma\) & \(8 KNp_{p}(1-\alpha)\gamma\) \\ range compression & bandwidth & \(8N_{FFT}Np\gamma\) & \(8N_{IFT}Np_{p}(1-\alpha)\gamma\) \\ image formation & & \(8N_{2}^{2}\gamma\) & \(8N_{2}^{2}\gamma\) \\ SRPB(out) & & \(8N_{IFT}Np\gamma\) & \(8N_{IFT}Np\gamma\) \\ \hline SRPB & buffer size & \(8N_{IFT}Np\) & \(8N_{IFT}Np\) \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Bandwidth and buffer sizes in the BP-VISAR architectures with full-aperture processing. \begin{table}
\begin{tabular}{c c c c c c c} \hline \hline \multirow{2}{*}{**Processing Stage**} & \multicolumn{2}{c}{**256 \(\times\) 256**} & \multicolumn{2}{c}{**1024 \(\times\) 1024**} & \multicolumn{2}{c}{**4096 \(\times\) 4096**} \\ \cline{2-7}  & **Time (ms)** & **\%Time** & **Time (ms)** & **\%Time** & **Time (ms)** & **\%Time** \\ \hline I/O & 17 & 0.218 & 19 & 0.017 & 19 & 0.001 \\ range compression & 291 & 3.737 & 281 & 0.245 & 278 & 0.015 \\ image formation & 7478 & 96.044 & 114,254 & 99.738 & 1,797,197 & 99.983 \\ \hline \hline \end{tabular}
\end{table} 
Table 2: The computational complexity of BP-VISAR baseline architecture F1. \begin{table}
\begin{tabular}{c c c c c c c} \hline \hline \multirow{2}{*}{**Processing Stage**} & \multicolumn{2}{c}{**256 \(\times\) 256**} & \multicolumn{2}{c}{**1024 \(\times\) 1024**} & \multicolumn{2}{c}{**4096 \(\times\) 4096**} \\ \cline{2-7}  & **Time (ms)** & **\%Time** & **Time (ms)** & **\%Time** & **Time (ms)** & **\%Time** \\ \hline I/O & 21 & 0.271 & 21 & 0.019 & 22 & 0.001 \\ range compression & 263 & 3.389 & 292 & 0.258 & 301 & 0.017 \\ image formation & 7476 & 96.328 & 112,748 & 99.713 & 1,782,637 & 99.970 \\ post-processing & 1 & 0.013 & 12 & 0.011 & 206 & 0.012 \\ \hline \hline \end{tabular}
\end{table} 
Table 3: The computational complexity of BP-VISAR baseline architecture S1. In Arch. F3, the range compression stage is performed in a GPU device kernel. Thus, the phase history data corresponding to the full-synthetic-aperture should be transferred to the GPU device for range compression. Because Arch. F3 locates the SRPB in the GPU device, it requires less host-to-device (H2D) bandwidth than that of Arch. F2 in the overlapped mode. The range compression is performed in a GPU kernel using cuFFT library functions.