# A Novel Low-Complexity and Parallel Algorithm for DCT IV Transform and Its GPU Implementation
## 6 Comparative Analysis
It is not straightforward to compare the results presented above [30; 37; 39], with the results obtained by the novel algorithm introduced in this study--the test conditions are totally different (the architectures used, the working frequencies, the data buses between the GPU and the main processor, etc.). These results were presented only to observe the improvements obtained by the new algorithms compared to the previous DCT IV transform implementations used as a reference in these papers. To correct this situation, two algorithms [21; 40] were implemented on the Jetson AGX Xavier development board used in this study. The analysis methodology is similar to the one used in Subsection 5 of this study. The reference algorithm directly implements relation (1) of the DCT IV algorithm. By implementing the algorithms presented in [21; 40], we obtained the acceleration coefficient of the execution speed (speedup parameter from Tables 12 and 13) due to these specific implementations, compared to the reference algorithm. Tables 12 and 13 also show the number of global and local memory accesses each algorithm makes. Since the performance of the algorithms fundamentally depends on the GPU's working frequency, Table 12 presents the obtained performance for the minimum working frequency of the GPU. In contrast, in Table 13, the performances are given for the maximum frequency accepted by the GPU. By analyzing the data presented in Table 13, we can draw the false conclusion that the algorithms proposed in this study [21; 40] have superior performances compared to the algorithm presented in this study with four sections due to a shorter execution time. But these two algorithms work on 13 elements [21; 40]. The algorithm proposed in this study works on a number of elements equal to 17. As a direct conclusion, the direct comparison of the execution times is not irrelevant. For this reason, we chose to compare the speed improvement obtained by all four DCT IV algorithms against a reference algorithm, that is, the classical implementation of DCT IV based on relation (1) on the same number of samples. As we consider the number of operations executed by each processing element in parallel and considering that the length N is the same for all three algorithms, the number of multiplications M is 5, the number of additions/subtractions A is 29 and the number of shift operations that correspond to multiplications with 1/2 or 1/4 is 18 for the proposed algorithm and M = 16 and A = 12 for the algorithms from [21; 40]. \begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**DCT IV** & **Classical Implementation** & **Parallel Implementation** & \multicolumn{3}{c}{**Number of Writing/Reading from**} \\
**Algorithm** & **Execution Time—Mean** & **Execution Time—Mean** & **Speedup** & **Global Memory** & **Local Memory** \\ \hline \hline \
\begin{tabular}{c} Classical \\ implementation \\ \end{tabular} & 2.590 & - & - & 2616 & 289 \\ \hline
\begin{tabular}{c} four sections \\ eight sections \\ \end{tabular} & 2.593 & 0.214 & 12.1 & 152 & 94 \\ \hline
1 st algorithm [21] & 1.556 & 0.264 & 5.89 & 480 & 196 \\ \hline
2 nd algorithm [40] & 1.557 & 0.254 & 6.12 & 162 & 72 \\ \hline \hline \end{tabular}
\end{table} 
Table 12: Performances analysis of several DCT IV implementations (done on Jetson AGX Xavier development board) when GPU frequency was set to the minimum value. From the data analysis presented in Tables 12 and 13, it can be seen that the new proposed algorithm outperforms the algorithm presented in [21] from all points of view--speedup (higher) and the number of memory access (lower). The algorithm in [40] implements DCT IV transform on six sections working in parallel. In the case of the algorithm presented in this study, it can be parallelized on four or eight independent parallel sections.