Document Actions

Welcome to MPTK, the Matching Pursuit ToolKit

by admin last modified 2020-11-15 21:56

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:

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.

Referencing MPTK

When referencing MPTK, please cite the following:

    Address = {Toulouse, France},
    Author = {Krstulovic, Sacha and Gribonval, R{\'e}mi},
    Booktitle = {Proc. Int. Conf. Acoust. Speech Signal Process. (ICASSP'06)},
    Month = may,
    Pages = {III-496 -- III-499},
    Title = {{MPTK}: {M}atching {P}ursuit made Tractable},
    Volume = 3,
    Year = 2006}

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 (now closed) help forum to check if one of your questions about MPTK has already found an answer. Please also check the FAQ.
  • The Help, Bugs and Features page, which contains links to useful documentation, a (now closed) help forum and a list of known bugs.

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 are confused by this page, or if you want to communicate privately with the development team of MPTK at IRISA please write to 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 !