Datasheet

7
Software and Hardware Solutions for the 32-bit Designer
MP3 Decoder Library
Summary
MP3 is a compression format for storing digital audio data. It is an audio codec that has the capability to compress the
original audio sources with minor loss in sound quality. The higher the compression ratio, the lower the audio quality, which
requires designers to perform a delicate balancing act between the file size and audio quality. With the right combination,
MP3 encoded data can provide very high-quality audio.
Microchip offers a compact MP3 Decoder Library that enables usage on small memory-footprint PIC32 devices, which
reduces system level cost. The library requires only 28 MIPS of performance (CD quality audio), 42 KB and 11 KB RAM
memory for operation on the PIC32 device. It is available as modifiable source code and non-modifiable binary code.
AAC Decoder Library
Summary
Microchip provides an Advanced Audio Coding (AAC)
Decoder library featuring easy-to-use APIs for decoding an
audio stream using AAC encoding. The AAC Decoder is
designed for 80 MHz or greater PIC32 MCUs. This code
requires 62 MIPS peak/34 MIPS average performance,
61 KB Flash and 12 KB RAM without frame buffer memory
for operation on the PIC32 MCU. The AAC Decoder library
is available in both non-modifiable binary code and source
code formats for use that enables on high-performance
PIC32 devices.
The AAC Decoder library supports the following:
Sample rates:
8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48, 64, 88.2
and 96 kHz
Bit rates:
32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224,
256, 320, 384 kbps and VBR
Fixed Point Math Library
Summary
The LibQ Fixed Point Math Library simplifies writing
fixed point algorithms, supporting Q15, Q31 and other
16-bit and 32-bit data formats. Using the simple,
C-Callable functions contained in the library, fast fixed-
point mathematical operations can be easily executed.
Fixed point mathematical calculations may replace some
functions implemented in the floating point library (math.h),
depending on performance and resolution requirements.
Functions included in the LibQ library include capabilities for
trigonometric, power and logarithms, and data conversion.
These functions are implemented in efficient assembly, and
generally tuned to optimize performance over code size. In
some cases the library breaks out functions that enable
one to be optimized for accuracy, while another version is
optimized for speed. Each of these functions is typically
used in computationally intensive real-time applications
where execution time is a critical parameter.
Key Features
C-Callable functions for easy execution of fast fixed
point mathematical operations
Functions include capabilities for trigonometric, power
and logarithms and data conversion
Contains functions for supporting Q15, Q31 and other
intermediate integer representations
Implemented in efficient assembly and tuned to
optimize for performance and accuracy
Sample Function Details
Clock Cycles (Operating from
Instruction Cache, Typical)
Completion Time (μs) @ 200
MHz (PIC32MZXXX)
Power (x
y
) Q16 power 882 4.41
Sine Q15 result, sine(Q2.13) 100 0.5
Sqrt Q16 square root 240 1.2
Ln Q4.11 result, natural log(Q16) 301 1.51
Exp (e
x
) Q16 exponential 170 0.85
Tangent Q7.8 result, tan(Q2.13) 288 1.44
The LibQ Fixed Point Math Library is available for the PIC32MZ family of micrcocontrollers. This library was created from optimized assembly routines written specifically for the microAptiv™ core.