# Requirements and Hardware Limitations of High-Frame-Rate 3-D Ultrasound Imaging Systems
## 2 Materials and Methods  
### Data Flow  
This section analyses the RX data flow (from raw data acquisition and storage to beamforming and demodulation) and the corresponding real-time digital processing requirements.  
The analog-to-digital converters (ADCs) connected to the active probe elements produce the total number of bits per volume or frame of the region of interest equal to RD. The latter depends on the number of channels (N\({}_{\text{ch}}\)), the ADC resolution (N\({}_{\text{bit}}\)), the number of depths (i.e., the samples) acquired by each channel after each transmission event (N\({}_{\text{depths}}\)), and the number of TX events (N\({}_{\text{TX}}\)) required to reconstruct one frame or one volume (Equation (1)). In line-by-line focused imaging, N\({}_{\text{TX}}\) matches the number of lines per frame or volume, N\({}_{\text{L}}\), while for plane wave or diverging wave-based HFR imaging [13; 21], N\({}_{\text{TX}}\) could even be reduced to 1.  
\[\text{RD}=\text{N}_{\text{ch}}\times\text{N}_{\text{depths}}\times\text{N}_{ \text{bit}}\times\text{N}_{\text{TX}} \tag{1}\]The RD bits are saved on memories that must be sufficiently large and capable to sustain the ADC bitstreams with data write bandwidth (B\({}_{\text{wr}}\)):  
\[\text{B}_{\text{wr}}=\text{RD}\times\text{R} \tag{2}\]  
which must cope with the desired volume or frame rate R [Hz], to avoid possible loss of data or reduction of performance.  
In most scanners, the beamformer stage is based on a delay-and-sum (DAS) algorithm [39], which applies dynamic delay and apodization coefficients to the acquired raw data. Depending on the scan sequence and on the required frame/volume rate, beamforming can be implemented line-by-line or by multiline acquisition (MLA). MLA consists in simultaneously beamforming multiple lines of one frame/volume so that the frame/volume rate is increased. Of course, reading and processing the same raw data with a number, nMLA, of beamforming instances (i.e., the delay and weighting coefficient sets) involves a read memory bandwidth, nMLA-fold faster than the B\({}_{\text{wr}}\).  
The computational load required to beamform each point of one frame or volume corresponds to the application of a delay (operation that results in N\({}_{\text{ch}}\) memory accesses to specific address), an apodization (corresponding to N\({}_{\text{ch}}\) multiplications, i.e., one per channel), and a coherent summation. For N\({}_{\text{L}}\) lines, the total amount of multiply-and-accumulate operations per second (MAC/s) is thus equivalent to:  
\[\text{MAC/s}\approx\text{N}_{\text{ch}}\times\text{N}_{\text{depths}}\times \text{N}_{\text{L}}\times\text{R} \tag{3}\]  
In HFR imaging, these operations can be extremely demanding. The beamformer output, involving samples with a number of representing bits BFbits, must sustain a rate:  
\[\text{B}_{\text{BF}}=\text{N}_{\text{L}}\times\text{N}_{\text{depths}}\times \text{BF}_{\text{bits}}\times\text{R} \tag{4}\]  
which can be even higher than the memory read input rate.  
Typically, the next stage is In-phase Quadrature (I/Q) demodulation, involving the multiplication of beamformed data by sine and cosine coefficients based on the demodulation frequency, low pass filtering, and possible downsampling to a lower number, N\({}_{\text{G}}\), of demodulated output samples per line. Since this type of demodulation requires far fewer operations compared to beamforming, such operations will not be included in the overall computational load.  
The corresponding output data rate, B\({}_{\text{IQ}}\), is given by:  
\[\text{B}_{\text{IQ}}=\text{N}_{\text{L}}\times\text{N}_{\text{G}}\times\text{ IQ}_{\text{bits}}\times\text{R} \tag{5}\]  
It is worth noting that, unless the number of samples, N\({}_{\text{G}}\), and/or the number of bits used for their representation, IQbits, are significantly different than N\({}_{\text{depths}}\) and BFbits, respectively, B\({}_{\text{IQ}}\) turns out to have the same order of magnitude as B\({}_{\text{BF}}\).