=================================================================================
                             SAOL - ISAOL
=================================================================================

This is a small collection of Matlab m-files that implement the SAOL and ISAOL 
algorithms for analysis operator learning as described in:

"Sequential Learning of Analysis Operators" M Sandbichler, K Schnass, arXiv:
In particular it can be used to reproduce the figures/experiments in the paper.

Please note that the required files for executing the ASimCo and In-ASimCo algorithms
are not contained in this toolbox and must be downloaded separately for example from
http://personal.ee.surrey.ac.uk/Personal/W.Wang/codes/ASimCO.html

We do not guarantee correctness but are happy about any feedback!  

The details of the .m files are always contained within the respective files.

The files with names starting with 'TEST_' are meant to be plug-and-play files
to be able to reproduce experiments with most of the setup already done.

Have fun learning,
Michael & Karin
(michael.sandbichler@uibk.ac.at, karin.schnass@uibk.ac.at)
=================================================================================

What's in the box: (in alphabetic order)
=================================================================================

- AnalysisL1Denoising.m: Performs the Analysis l1-denoising
- ISAOL.m: implements the ISAOL algorithm
- MakeCosparseSignals.m: generates synthetic cosparse data from a given
                operator
- orderRows.m: orders the rows of an operator according to some target
                operator
- patches2pic.m: reconstructs a picture from overlapping image patches
- pic2patches.m: splits a picture into overlapping image patches
- SAOL.m: Implements the SAOL algorithm
- SAOLMin.m: Implements the SAOL algorithm with stepsize chosen to be
                the minimum instead of the median
- showdico.m: reshapes the rows of a big matrix into patches and groups
                them in a big matrix
- softthreshold.m: performs soft thresholding on an input vector (auxiliary
                for AnalysisL1Denoising.m)
- swapRows.m: swaps two rows of an operator (auxiliary for orderRows.m)
- targetFixedData.m: computes the value of the target function for a fixed
                set of test vectors
- targerFunctionTest.m: computes the value of the target function by creating
                signals cosparse with respect to a given target operator
- TEST_DenoiseImagesCompare.m: performs learning of the operators on noisy
                data and uses them for denoising via Tikhonov regularization
                for various cosparsity levels, regularization parameters and
                images
- TEST_DenoiseImagesSingle.m: denoises a single image by learning analysis
                operators for one cosparsity level and regularization 
                parameter
- TEST_Parameterstudy.m: learns an operator via SAOL for various different
                stepsize parameters alpha
- TEST_SAOLMinMedian.m: compares learning via SAOL with stepsize chosen
                according to the minimum and the median
- TEST_SAOLsynthetic.m: Learns an operator from synthetic data via SAOL
                or ISAOL with or without replacement

- figures: folder containing the used images

=================================================================================

