AMD’s Framewave (FW) is a free and open-source collection of image and signal processing routines to accelerate application development, debugging, and optimization on x86-class processor platforms. FW is a collection of libraries that contain highly-optimized functions for use in a variety of programming domains. All implementations of the libraries provide C Source Code and C++ programmers ANSI C style interfaces.
It’s API compatible with the Intel Integrated Performance Primitives (Intel IPP), now supports Mac OS support and has MPEG1 and MPEG2 Decode support. Framewave transform the way silicon manufacturers deliver performance and optimization tools into the hands of software developers. The Framewave project is sponsored by AMD and it offers developers unparalleled, code-level access to a vast array of signal and image functions and routines designed with “code faster, faster code” in mind.
Framewave functions are meant to give maximum performance on the x86 and the AMD64 hardware architectures. Current implementations exploit multicore architecture and single instruction multiple data (SIMD) instructions. Specifically, streaming SIMD extensions and AMD family 10h technologies are used to optimize for speed. Programmers can concentrate on task functionality because Framewave handles performance. Many of the functions are threaded internally; the programmer has the flexibility of controlling the number of threads and of turning off threading. As architecture changes and new instructions are added, new code paths to take advantage of extensions can be added to Framewave without changing the programming interface and existing functionality.
Framewave consists of the following libraries:
- The Base Library functions are essential for primary tasks such as memory allocation and functions that manage the performance of other library functions.
- The Image Processing Library functions perform a variety of tasks related to image processing.
- The JPEG Library functions perform a variety of tasks related to Joint Photographic Experts Group image manipulation.
- The Signal Processing Library functions perform a variety of tasks related to signal processing.
- The Video Library functions perform video manipulation, encoding and decoding.
AMD also provides Optimizing CPU Libraries (AOCL) which is a set of numerical libraries tuned specifically for AMD EPYC processor family.