|
||||||||||
Writing a modular Audio Post Processing DSP algorithmBy Prashant Jagtap, einfochips 1. Objective The objective of this paper is to provide a high-level process of designing and implementing an Audio Algorithm, specifically written for Soc’s multi-core, low-power audio processing DSP processors. These algorithms can be optimized for a specific DSP processor and offload its processing on the DSP to lower the power consumption of a SoC. 2. What is DSP offloading? Nowadays, IC manufacturers are coming up with System on Chips where multiple cores of application processor and DSP processors are integrated into a single chip. A hardware and software architecture are designed/developed in house to exchange the data transfer or software processing between the Application and DSP processor. The processing of any algorithm that is optimized for a specific DSP processor can be transferred to the DSPs present on such SoC’s, this method of transferring the processing of a DSP algorithm from the application processor to DSP processor is called a DSP offloading. As the algorithm is written specifically from a DSP processor, the power consumption is fairly reduced as compared with the application processor. This provides an efficient power management for a SoC when used in any of the consumer and automotive products. 3. What is Audio post processing DSP algorithm? An Audio algorithm is a piece of software used to enhance the specific frequency elements in an Audio signal. It can also be used to reduce the unwanted noisy data from the Audio signals. Such Audio Post Processing algorithm uses a technique such as filtering, compression, expansion, and equalization to improve the signal quality to the desired level for a better user experience. 4. What is modular DSP algorithm and why do we need it? An Audio algorithm that is intended to perform only specific processing such as Compression, Limiter, Normalization, Decimation, and Mixer is called a modular DSP algorithm. Such an algorithm takes an input signal and provides output signals by processing audio data for a specific task. Traditionally, An Audio post-processing algorithm was developed considering a specific DSP architecture. The design of the Audio algorithm was mainly dependent on features required in the algorithm and the performance of an algorithm when ported on specific DSP processors. As mentioned earlier, these DSP algorithms are developed with different features such as Limiter, Dynamic Range compressor, Equalizer, and Automatic Gain control to improve audio signals. Usually, traditional DSP algorithms are implemented as a single monolithic library exposing the Create(), Init(), process(), destroy(), SetParam(), and GetParam() API’s from the library/algorithm. As these libraries are implemented for a specific DSP processor and all the features are combined in a single monolithic library, such design loses the modularity of the algorithm to be used for different DSP processors available in the market. Nowadays, due to technological advancement, the frequency of the new SoC hitting the market has increased. Additionally, silicon providers are adding multiple DSP cores in a single chipset. This is helping parallel computation processing of the Audio signal with new hardware architecture. a. Drawbacks of monolithic library:
Let’s understand this with an example: Support a DSP module is developed and tested with feature set in the below sequence: Automatic Gain Control -> Downmixer -> Mutirate processing -> Equilizer -> Compressor -> Limiter. Now if customer ABC requires only a few features out of the above: DownMixer -> Compressor ->Limiter. As these new feature requirements differ from the one that was implemented and tested earlier, additional efforts are required to redevelop the code for a new requirement and test it again to cater to the customer ABC’s requirement. 5. Key points while writing Audio Algorithm The problem with the monolithic library can be removed with different implementation ways that can be used while designing the audio algorithm. One of the simplest ways is to implement one feature of an entire library as a single library. This will divide a monolithic library into separate libraries. As the individual feature is divided into a single library below benefits can be achieved:
Below are the key points to be considered while developing the DSP modules:
Below is the set of common APIs that can be implemented in the DSP library:
6. Designing the Framework By following the key points described in the above section, a modular DSP features library can be implemented, and this can be reused with very minimal effort for different customer requirements. One of the problems that might occur with this implementation while integrating these DSP modules with the Audio frameworks available in the market such as from Qualcomm, Intel, and AMD chipsets. To address this problem, an audio framework can be designed in a manner that will serialize the Audio processing Feature. A set of framework APIs can be exposed from the framework library to get an Audio algorithm integrated into the customer’s environment. Below are the key points while developing the framework:
7. Summary In this fast-changing world of the 21st century, the use of Audio Algorithms has increased in multiple verticals such as Medical, Automotive, and Aerospace and their requirements are highly volatile based on the rapid technological changes. To manage such a high volatile requirement, it is always recommended and required to design, and develop reusable DSP-featured libraries/frameworks to reduce the time to market and cater to highly volatile customer demands. About the Author:
Prashant Jagtap is a Technical Architect at einfochips. He has over 17 years of experience in the development of embedded system applications and verification of safety-critical system software. He possesses strong expertise in C application development and porting of Audio algorithms on Qualcomm snapdragon 835, 845, SM8150, SM8250, SM8450/8550, Intel’s Smart Sound Technology platform (TigerLake, RaptorLake and MeteorLake) and AMD LPAP platforms (Rembrandt, Mendocino). He likes to play cricket and Badminton in his free time. If you wish to download a copy of this white paper, click here
|
Home | Feedback | Register | Site Map |
All material on this site Copyright © 2017 Design And Reuse S.A. All rights reserved. |