This library provides functions for sparse coding and dictionary learning, together with miscellaneous support functions for signal and image processing with sparse representations. The sparse coding algorithms are based on the ADMM framework; while similar codes for some of these functions can be found elsewhere, those provided here include enhancements that are not present in other publicly available codes.
There are two versions of SPORCO, one implemented in Matlab, and the other in Python (the Matlab version is indicated by an 'M' in the version number). Note that the Python version is under far more active development, and supports a number of features that the Matlab version does not. Matlab users are therefore encouraged to make use of the Python version of the library. A number of useful resources are available are available for those who decide to do so:
The Matlab version is available here: download sporco-m0.0.9.tar.gz (gzipped tar file, 636k). Please read the instructions in the ReadMe file in the distribution before using the library.
The Python version is available on GitHub and on PyPI. The current release can be installed using the source package available from PyPI or by doing "pip install sporco" (assuming that pip is installed and the command is issued with root privileges). Documentation is available at ReadTheDocs.
The most significant contribution of this library is the inclusion of implementations of recent efficient algorithms for convolutional sparse coding and dictionary learning. These algorithms are described in the papers
This library has been used in a variety of signal and image processing applications of convolutional sparse coding methods, including
This library was developed at Los Alamos National Laboratory, and has been approved for public release under the approval number LA-CC-14-057. It is made available under the terms of the BSD 3-Clause License.