The Matching Pursuit Tool Kit (MPTK) provides a fast implementation of the Matching Pursuit algorithm for the sparse decomposition of multichannel signals. It comprises a C++ library, standalone command line utilities, and some scripts for running it and plotting the results through Matlab.
The Matching Pursuit algorithm
Matching Pursuit is an iterative algorithm which can be used to provide adaptive sparse decompositions of high-dimensional vectors such as signals or images using a redundant dictionary of elementary building blocks called atoms. The Matching Pursuit algorithm was first introduced by Zhifeng Zhang and Stéphane Mallat in the following paper:- Mallat, S. and Zhang, Z., "Matching Pursuit with Time-Frequency Dictionaries", IEEE Trans. Signal. Proc., 41(12):3397-3415.
The Matching Pursuit ToolKit
MPTK provides an implementation of Matching Pursuit which is:
-
FAST: e.g., extract 1.5 million atoms from a 1 hour long, 16kHz audio signal (15dB extracted) in 0.25x real time on a Pentium IV@2.4GHz, out of a dictionary of 178M Gabor atoms. Such incredible speed makes it possible to process "real world" signals.
-
FLEXIBLE: multi-channel, various signal input formats, flexible syntax to describe the dictionaries => reproducible results, cleaner experiments.
-
OPEN: modular architecture => add your own atoms ! Free distribution under the GPL.
MPTK is mainly developed and maintained within the METISS Research Group on audio signal processing, at the IRISA Research Institute in Rennes, France.
This paper gives an overview of the techniques used to make MPTK so fast.
Getting Started with MPTK
If you don't know how to use MPTK and/or have some questions about Matching Pursuit and MPTK, please read :
- The Getting Started pdf document. It describes the basics informations, for each architecture, on how to download, install and configure correctly MPTK and its Matlab utilities
- The general FAQ which provides answers to the most common questions and problems.
- The User Documentation area where you will learn how to use MPTK functionalities.
- The help forum if you have any question regarding MPTK. Note that the forum is not a hotline, and we may not have time to answer your request. Please first check the FAQ and previous posts on the help forum.
- The Help, Bugs and Features page, which contains links to useful documentation, a help forum, a list of known bugs and current feature requests.
Getting involved in MPTK
The best way to help us improve MPTK is to contribute. If you wish to get involved in the MPTK project, there are several ways to contribute
- You can help improve the documentation through this collaborative website, as explained in the FAQ contributing to MPTK.
- You can join the community of MPTK developers. Examples of developments to which the contribution of the MPTK community is essential are the creation of new plugins (to include sparse decompositions with new types of atoms such as wavelets, which are not currently implemented) , improvements to the GUI, further interfacing with Matlab, etc. You will find information in the developer documentation area on how to join and interact with other developers of MPTK.
- In the Developer Documentation area you will learn how to implement new MPTK functionalities. It includes links to the latest source development and relevant packages, some platform specific information and information you need to develop new functionalities for MPTK. If you want to be informed of the latest development news, please consider to suscribe to themptk-devel list
If you are confused by this page, or if you want to communicate privately with the development team of MPTK at IRISA please write to matching.pursuit@irisa.fr. Request for help sent to this address won't be answered. Please use the dedicated mailing list and forum instead.
Thank you for your interest in The Matching Pursuit Tool Kit !