# Towards Real Time GPU Decoding of Complete Complementary Coded Synthetic Transmit Aperture

Mohamed Tamraoui, Emmanuel Roux, Hervé Liebgott

► To cite this version:

Mohamed Tamraoui, Emmanuel Roux, Hervé Liebgott. Towards Real Time GPU Decoding of Complete Complementary Coded Synthetic Transmit Aperture. 2024 IEEE Ultrasonics, Ferroelectrics, and Frequency Control Joint Symposium (UFFC-JS), Sep 2024, Taipei, Taiwan. pp.1-4, 10.1109/UFFC-JS60046.2024.10793616. [hal-04947749](https://hal.science/hal-04947749v1)

HAL Id: hal-04947749

https://hal.science/hal-04947749v1

Submitted on 14 Feb 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Towards Real Time GPU Decoding of Complete Complementary Coded Synthetic Transmit Aperture

Mohamed Tamraoui

Emmanuel Roux

Hervé Liebgott

Univ Lyon, INSA-Lyon, Université Lyon
CNRS, Inserm, CREATIS UMR 522

Univ Lyon, INSA-Lyon, Université Lyon
CNRS, Inserm, CREATIS UMR 522

Univ Lyon, INSA-Lyon, Université Lyon
CNRS, Inserm, CREATIS UMR 522

Lyon, France

Lyon, France

Lyon, France

mohamed.tamraoui@creatis.insa-lyon.fr

emmanuel.roux@creatis.insa-lyon.fr

herve.liebgott@creatis.insa-lyon.fr

**Abstract**—This paper presents a novel, computationally efficient GPU-Based decoding method for Coded Synthetic Transmit Aperture ultrasound imaging using Complete Complementary Codes. The proposed method dramatically reduces the computational complexity typically associated with decoding CCC-encoded signals, which conventionally requires $N^2$ correlation operations for an array with $N$ elements. By exploiting the structure of the CCC encoding matrix, our method reduces the number of required operations to just $2N$. We conducted simulations using 128-element and 256-element linear arrays to compare the proposed method with the conventional decoding approach. For a 128-element array, the proposed method reduced decoding time from 17.03 seconds to 0.063 seconds. The proposed approach offers a significant reduction in computational time, making it highly suitable for real-time ultrasound imaging and other applications requiring fast, efficient decoding of CCC signals

**Index Terms**—Coded Excitation, GPU Decoding, STA

## I. INTRODUCTION

Medical ultrasound imaging is widely utilized in clinical settings due to its real-time imaging capabilities and its safety. In conventional ultrasound imaging, short pulses are transmitted to electronically focus the ultrasound beam, and images are acquired sequentially, one line at a time. This acquisition process limits the frame rate, making it challenging to accurately capture fast-moving structures [1]. Moreover, the resolution and image quality of conventional ultrasound are highly depth-dependent, with optimal resolution achieved only at the focal point, and significant degradation occurring outside this region. These limitations can be mitigated by employing Synthetic Transmit Aperture (STA), which offers improved image quality and resolution independent of depth [1].

In traditional STA, each transmit event involves one array element emitting a short pulse, while all elements receive the backscattered echoes. A low-resolution image is reconstructed from the received data, and a high-resolution image is formed by coherently summing these low-resolution images, thus achieving dynamic focusing throughout the entire image, both in transmission and reception. Despite the high image quality

that STA can provide, one of its primary drawbacks is a reduced Signal-to-Noise Ratio (SNR) compared to conventional B-mode ultrasound imaging. Due to the use of a single element in each transmission event, the SNR in STA is significantly lower—by a factor of 10log(M), where M is the number of transmit events—relative to conventional B-mode imaging [2].

SNR in ultrasound imaging is proportional to the transmitted energy. Coded excitation is a well-established method for enhancing the transmitted energy and has been effectively applied in ultrasound imaging [2]–[4]. This technique transmits long coded waveforms, which allow for extended pulse duration without reducing the signal bandwidth. During reception, pulse compression is applied to the received echoes, which concentrates the transmitted energy and increases the SNR while maintaining high resolution.

Complete Complementary Codes (CCC), are used to significantly enhance the signal-to-noise ratio of STA [5]. With this method, all $N$ elements of an array simultaneously transmit different codes during $N$ transmit events. However, decoding the STA dataset requires a computationally intensive procedure involving $N^2$ correlation operations, which limits the use of CCC in real-time applications. Here, we propose a novel method for real-time decoding of CCC encoded STA. This approach reduces the number of correlations from $N^2$ to $2N$ and has been implemented on the GPU for further acceleration.

## II. METHODS

### A. CCC encoded STA

<figure><img src="image_2.png" /><figcaption>Fig. 1: Principal of coded STA imaging transmission scheme using CCC.</figcaption></figure>

<footnote>This work was supported by the LABEX PRIMES under Grant ANR-11-LABX-0063 of Universite de Lyon, through the Program "In-´e vestissements d'Avenir" under Grant ANR-11-IDEX-0007 operated by the French National Research Agency (ANR), performed within the framework of the ANR-20-CE19-0023 SPARTECHUS.</footnote>
The CCC are often referred to as (N, N, L)-CCC since they are composed of N sets of N binary sequences of length L (i.e., the number of symbols in each sequence is fixed to L) :

$$C = \begin{bmatrix} C_1 \\ C_2 \\ \vdots \\ C_N \end{bmatrix} = \begin{bmatrix} s_{1,1} & s_{1,2} & \dots & s_{1,N} \\ s_{2,1} & s_{2,2} & \dots & s_{2,N} \\ \vdots & \vdots & \ddots & \vdots \\ s_{N,1} & s_{N,2} & \dots & s_{N,N} \end{bmatrix} \quad (1)$$

They have the advantages that the sum of the auto-correlations of sequences in each set is zero except for zero shift (i.e., delta impulse) and the sum of cross-correlations of sequences at the same index between any two distinct sets is zero for all shifts making ideal for use in ultrasound coded excitation.

Using CCC with an ultrasound array of N elements, unlike conventional STA, where each element transmits one at a time, this method involves all elements transmitting simultaneously across N events. Instead of sending identical short pulses, each i-th element transmits a unique sequence $s_{i,j}$ during the j-th transmission event. These sequences are drawn from the CCC encoding matrix C (Fig. 1).

The CCC encoding matrix C consists of N sets $C_i$, each containing N binary sequences $s_{i,j}$ of length L. Each transducer element is assigned a distinct sequence set. For example, element 1 is assigned set $C_1$, element 2 set $C_2$, and so on. Throughout the N transmission events, each element transmits one sequence from its respective set, ensuring that all sequences are transmitted, leveraging the CCC's ideal auto-correlation and cross-correlation properties.

During each transmit event, all elements are active: in the first event, element 1 transmits $s_{1,1}$, element 2 transmits $s_{2,1}$, and element N transmits $s_{N,1}$. This pattern continues for N events, with the sequences updating in each event until the final transmit event when element 1 transmits $s_{1,N}$, element 2 transmits $s_{2,N}$, and element N transmits $s_{N,N}$.

## B. Conventional N² Correlation Decoding Operation

After N transmissions, the full STA dataset, as if each element had transmitted independently, is recovered through a decoding process applied to the received signals. To extract the data corresponding to the i-th element, the received RF signals from each simultaneous transmission event are correlated with the sequence $s_{i,j}$ that the i-th element transmitted during the respective j-th event. These correlated signals are then summed.

As depicted in Fig. 2, this process involves correlating the received signals with the sequences from the set $C_i$ assigned to the i-th element. Owing to the ideal auto-correlation and cross-correlation properties of the CCC sequences, summing the correlated signals ensures that only the RF signals originating from the i-th transmitter are retained, while signals from other transmitters are effectively suppressed. The decoded signals achieve an SNR gain of $10 \log_{10}(N \cdot L)$, where N is the number of transmissions and L is the length of the binary sequences.

However, this conventional decoding process requires $N^2$ correlation operations, which is computationally intensive and poses challenges for the application of CCC in real-time imaging scenarios.

<figure><img src="image_3.png" /><figcaption>Fig. 2: Conventional $N^2$ correlation decoding block of the received RF data to retrieve the STA dataset.</figcaption></figure>

## C. Proposed decoding operation

Although the CCC consists of N sets of N binary codes, during transmission, elements with odd and even numbers transmit the same code with a sign inversion (i.e., +1 becomes -1 and vice versa). For example, if element 1 transmits the code $s_{1,1}$, then element 3 transmits $s_{3,1} = -s_{1,1}$.

Leveraging this property, the proposed method introduces an initial decoding step that involves simple addition and subtraction operations. This partitions the received dataset into pairs corresponding to even and odd transmission events. Following this partitioning, only $2N$ correlation operations are required to recover the individually decoded dataset for each element. This approach reduces the computational complexity of the decoding process from $N^2$ correlations to only $2N$, offering a more efficient alternative to the conventional decoding method.

To illustrate the principle of the proposed decoding operation, consider an example with an array of $N = 8$ elements. This array requires an $(8, 8, L)$-CCC, which consists of 8 sets of 8 binary sequences, each with a length L, for the coded STA method as represented in Fig.3. Let $R_1, R_2, R_3, \dots, R_8$ be the received signals after each transmission event. Since all the elements are transmitting each a different sequence, the received signals are as follows :

$$ \begin{aligned} R_1 &= s_{1,1} + s_{2,1} + s_{3,1} + s_{4,1} + s_{5,1} + s_{6,1} + s_{7,1} + s_{8,1} \\ R_2 &= s_{1,2} + s_{2,2} + s_{3,2} + s_{4,2} + s_{5,2} + s_{6,2} + s_{7,2} + s_{8,2} \\ R_3 &= s_{1,3} + s_{2,3} + s_{3,3} + s_{4,3} + s_{5,3} + s_{6,3} + s_{7,3} + s_{8,3} \\ R_4 &= s_{1,4} + s_{2,4} + s_{3,4} + s_{4,4} + s_{5,4} + s_{6,4} + s_{7,4} + s_{8,4} \\ R_5 &= s_{1,5} + s_{2,5} + s_{3,5} + s_{4,5} + s_{5,5} + s_{6,5} + s_{7,5} + s_{8,5} \\ R_6 &= s_{1,6} + s_{2,6} + s_{3,6} + s_{4,6} + s_{5,6} + s_{6,6} + s_{7,6} + s_{8,6} \\ R_7 &= s_{1,7} + s_{2,7} + s_{3,7} + s_{4,7} + s_{5,7} + s_{6,7} + s_{7,7} + s_{8,7} \\ R_8 &= s_{1,8} + s_{2,8} + s_{3,8} + s_{4,8} + s_{5,8} + s_{6,8} + s_{7,8} + s_{8,8} \end{aligned} \quad (2) $$

As depicted in Fig. 4, the first decoding step processes the received signals from the odd and even receive events
<figure><img src="image_4.png" /><figcaption>Fig. 3: Representation of the CCC encoding matrix for (8,8,L)-CCC.</figcaption></figure>

separately. The decoding of the received data at these events is
performed through simple addition and subtraction operations,
following the coefficients of a Hadamard matrix.

• Decoding of the even receive events:

$$
D_1 = R_1 + R_3 + R_5 + R_7
$$

$$
D_3 = R_1 - R_3 + R_5 - R_7
$$

$$
D_5 = R_1 + R_3 - R_5 - R_7
$$

$$
D_7 = R_1 - R_3 - R_5 + R_7
$$

• Decoding of the odd receive events:

$$
D_2 = R_2 + R_4 + R_6 + R_8
$$

$$
D_4 = R_2 - R_4 + R_6 - R_8
$$

$$
D_6 = R_2 + R_4 - R_6 - R_8
$$

$$
D_8 = R_2 - R_4 - R_6 + R_8
$$

The objective of this initial decoding step is to decompose
the received signals from all events into complementary pairs.
Each pair comprises one odd-indexed decoded signal D<sub>j</sub> and
one even-indexed decoded signal. Specifically, D<sub>1</sub> is paired
with D<sub>2</sub>, D<sub>3</sub> is paired with D<sub>4</sub>, and so forth.

By leveraging the properties of the CCC encoding ma-
trix, which can be represented using only four distinct
sequences—s<sub>1,1</sub>, s<sub>1,2</sub>, s<sub>2,1</sub>, and s<sub>2,2</sub>—the STA dataset for each
transmit element can be efficiently decoded. This is accom-
plished using only 2N correlations, as follows:

$$
Tx_1 = D_1 \star s_{1,1} + D_2 \star s_{1,2}
$$

$$
Tx_2 = D_1 \star s_{2,1} + D_2 \star s_{2,2}
$$

$$
Tx_3 = D_3 \star s_{1,1} + D_4 \star s_{1,2}
$$

$$
Tx_4 = D_3 \star s_{2,1} + D_4 \star s_{2,2}
$$

$$
Tx_5 = D_5 \star s_{1,1} + D_6 \star s_{1,2}
$$

$$
Tx_6 = D_5 \star s_{2,1} + D_6 \star s_{2,2}
$$

$$
Tx_7 = D_7 \star s_{1,1} + D_8 \star s_{1,2}
$$

$$
Tx_8 = D_7 \star s_{2,1} + D_8 \star s_{2,2}
$$

This decoding approach significantly reduces the compu-
tational complexity, enabling the separation of STA data
for each transmit element in an efficient manner. Due to
the straightforward mathematical operations involved in the
proposed decoding approach, a GPU-accelerated version has
been implemented to further accelerate the decoding process
making it suitable for real time applications.

III. RESULTS

Simulations of Coded STA using Complementary Code
Coding (CCC) were performed with both a 128-element linear
array and a 256-element linear array. For both configurations,
CCC sequences with 4-bit encoding were generated: (128, 128,
4)-CCC for the 128-element array, and (256, 256, 4)-CCC
for the 256-element array. After completing all transmission
events—128 transmissions for the 128-element array and 256
transmissions for the 256-element array—the received signals
were decoded using both the conventional decoding method
and the proposed approach. These methods were then com-
pared based on the computational time required to complete
the entire decoding process (TABLE I).

For the 128-element array with *N* = 128 simultaneous
transmissions, the conventional decoding method required
<figure><img src="image_5.png" /><figcaption>Fig. 4: Diagram of the GPU Kernel of the proposed decoding operation. A first step of Hadamard decoding followed by 2N correlation operations.</figcaption></figure>

$N^2 = 16,384$ correlation operations, whereas the proposed method only required $2N = 256$ correlation operations. On a system equipped with an Intel Core i7-10700 CPU and an NVIDIA RTX 3060 GPU, the conventional method took 17.03 seconds to complete the decoding, while the proposed method achieved decoding in just 0.063 seconds.

For the 256-element array, the conventional method required $N^2 = 65,536$ correlation operations, whereas the proposed method required only $2N = 512$ operations. In this case, the conventional decoding process took approximately 373.05 seconds, while the proposed method required only 0.62 seconds.

This comparison demonstrates the substantial reduction in computational complexity achieved by the proposed method compared to the conventional $N^2$-based correlation approach. The significant improvement in processing time suggests that the proposed approach is highly suitable for real-time applications, where fast and efficient decoding is critical.

<table><caption>TABLE I: Comparison of the computational time (in seconds) between conventional and proposed decoding methods for different array sizes</caption><thead><tr><td>Method</td><td>128-elements Array</td><td>256-elements Array</td></tr></thead><tbody><tr><td>Conventional Decoding</td><td>17.03</td><td>373.05</td></tr><tr><td>Proposed Decoding</td><td>0.063</td><td>0.62</td></tr></tbody></table>

## IV. CONCLUSION

In this study, we presented a novel GPU-Based decoding approach for Coded STA using Complementary Code Coding

(CCC) and evaluated its performance against the conventional decoding method. Through simulations conducted on 128-element and 256-element linear arrays, we demonstrated that the proposed method significantly reduces the computational complexity of the decoding process. Specifically, the proposed approach requires only $2N$ correlation operations compared to the $N^2$ operations needed by the conventional method, resulting in dramatic improvements in computational efficiency. For the 128-element array, the decoding time was reduced from 17.03 seconds to 0.063 seconds, while for the 256-element array, it was reduced from 373.05 seconds to 0.62 seconds. The substantial reduction in decoding time makes the proposed method well-suited for real-time applications, where high computational efficiency is essential.

## REFERENCES

[1] J. A. Jensen, S. I. Nikolov, K. L. Gammelmark, and M. H. Pedersen, "Synthetic aperture ultrasound imaging," *Ultrasonics*, vol. 44, pp. e5–e15, Dec. 2006. [Online]. Available: https://linkinghub.elsevier.com/retrieve/pii/S0041624X06003374

[2] R. Y. Chiao, L. J. Thomas, and S. D. Silverstein, "Sparse array imaging with spatially-encoded transmits," in *1997 IEEE Ultrasonics Symposium Proceedings. An International Symposium (Cat. No. 97CH36118)*, vol. 2. IEEE, 1997, pp. 1679–1682.

[3] R. Y. Chiao and X. Hao, "Coded excitation for diagnostic ultrasound: A system developer's perspective," *IEEE transactions on ultrasonics, ferroelectrics, and frequency control*, vol. 52, no. 2, pp. 160–170, 2005.

[4] M. Tamraoui, E. Roux, and H. Liebgott, "Zero interleaved mutually orthogonal sequences for high frame rate synthetic transmit aperture," in *2023 IEEE International Ultrasonics Symposium (IUS)*, 2023, pp. 1–4.

[5] M. Tamraoui, E. Roux et al., "Complete complementary coded excitation scheme for snr improvement of 2d sparse array ultrasound imaging," *IEEE Transactions on Biomedical Engineering*, 2023.