Abstract
Meta-programming paradigm and policy-based design are less known programming techniques in Digital Signal Processing (DSP) community, used to coding in pure C or assembly language. Major software components, like C++ STL, have proven usefulness of such paradigms in providing top performance of highly optimised native code, along with abstraction and modularity necessary in complex software projects. This paper describes composition of DSP code using these techniques, bringing as an example implementation of Feedback Delay Network (FDN) artificial reverberation algorithm. The proposed approach was proven to be practical, especially in case of prototyping computationally intense algorithms. To provide further performance insight, we discuss the techniques in context of other optimisation methods, like Single Instruction Multiple Data (SIMD) instruction sets usage and exploitation of superscalar architecture capabilities.
Keywords
Cite this article
@article{cai-3599,
author = {Ireneusz Gawlik and Szymon Pałka and Tomasz Pędzimąż and Bartosz Ziółko},
title = {Meta-Programming and Policy-Based Design as a Technique of Architecting Modular and Efficient DSP Algorithm Implementations},
journal = {Computing and Informatics},
volume = {37},
number = {2},
pages = {269--290},
year = {2018},
issn = {1335-9150},
doi = {10.4149/cai_2018_2_269}
}
TY - JOUR AU - Ireneusz Gawlik AU - Szymon Pałka AU - Tomasz Pędzimąż AU - Bartosz Ziółko TI - Meta-Programming and Policy-Based Design as a Technique of Architecting Modular and Efficient DSP Algorithm Implementations JO - Computing and Informatics VL - 37 IS - 2 SP - 269 EP - 290 PY - 2018 SN - 1335-9150 DO - 10.4149/cai_2018_2_269 UR - https://doi.org/10.4149/cai_2018_2_269 KW - C++ KW - low level optimisations KW - policy-based design KW - template meta-programming KW - SIMD KW - FDN ER -
Gawlik, I., Pałka, S., Pędzimąż, T., & Ziółko, B. (2018). Meta-Programming and Policy-Based Design as a Technique of Architecting Modular and Efficient DSP Algorithm Implementations. Computing and Informatics, 37(2), 269–290. https://doi.org/10.4149/cai_2018_2_269