The Asynchronous Sample Rate Converter (ASRC) library for the Blackfin processor implements an audio sampling rate conversion in both consumer and professional applications. The ASRC supports a variety of sample rate configurations.
- Output Status: number of output channels, number of output samples per channel and sample rate
- API: C callable 'Push' API
- Error Codes: Reports up to 10 error codes, including the status of processing
- Compliance: ADI internal Quality assessment
- Code base origin: Based on ADI propriety design
- Reference Code Revision #: NA
- Certification: NA
- Framework dependencies: None. No dependencies on processor peripherals or registers
- Release Format: Object Code with source code wrapper
- Target Processors: BF533, BF527 and BF548
- Input format: 32-bit integer in fractional values. Input PCM has to be provided in separate buffers for each channel
- Output format: 32-bits integer fractional values. Output PCM will be provided in separate buffer for single
- Output buffer samples per block: Configurable (X, where X is input block size)
- Input sampling rates supported are 8, 11.025, 12, 16, 22, 05, 24, 32, 44.1 and 48 kHz
- Output sampling rates supported are 32, 44.1, 48, 64, 88.2, 96, 128, 174, and 192 kHz with time varying sampling rate
- Multi-instancing: Fully re-entrant and multi-instancing capable
- Multichannel: Supports from 1 to 8 channels
The ASRC software module can be used to change the sampling frequency in small steps, which vary with time, without producing any audible artifacts in the output during the change. Such a time varying sampling rate change is very important functionality in many multimedia systems, for example in achieving fine synchronization among various streams and in server client Synchronization, etc.
The ASRC implementation from ADI has been highly optimised to run on the Analog Devices' Blackfin processor family. It is a self-contained software module based on ADI propriety design. The module has been tested for quality using various defined test strategies involving audio signal quality analysis.
The ASRC module is a post processing module which applies on the PCM (Pulse Coded Modulation) data received either through the analog or digital input channels or PCM output from a decoder application. The ASRC block processes multiple channels input and delivers same channel output. The developed module is fully re-entrant and multi-instance capable. ASRC module is an independent module and has no inherent dependencies on any other modules. ASRC module comes along with an example light wrapper API to plug itself into the overall system. This makes system integration easy for the application.
|Code memory (KB)||Data RAM (KB)||Constant Data Tables (KB)||MIPS Average|
- Code compatible across ADSP-BF5xx processors which was mentioned in table 2
- "Data RAM" for one instance, includes Stack, Scratch, Instance/ State, Minimum Input and Output Single Buffers.
- Input sample rate 32 kHz and output sample rate is 48 kHz. optimal memory layout
- Supports 1 to 8 channels.
- Input buffer size is 128 bytes and output buffer size is 128 Bytes.
- Frame size considered is 32 samples per channel.
- Windows XP Professional SP3 (32-bit only).
- Windows Vista Business/Enterprise/Ultimate SP2 (32-bit only). It is recommended to install the software in a non-UAC-protected location.
- Windows 7 Professional/Enterprise/Ultimate (32 and 64-bit). It is recommended to install the software in a non-UAC-protected location.
- Minimum of 2 GHz single core processor, 3.3 GHz dual core is recommended.
- Minimum of 1 GB memory (RAM), 4 GB is recommended.
- Minimum of 2 GB hard disk (HDD) space is required.