**************
About EXQUIRES
**************

=================
What is EXQUIRES?
=================

**EXQUIRES** is an open source framework for assessing the accuracy of image
upsampling methods. **EXQUIRES** can also be used to compare image difference
metrics, or to measure the impact of various factors, including test image
selection and properties, downsampler choice, resizing ratio, etc.

An upsampler's performance is based on its ability to reconstruct test images
from various reduced versions. The downsampler used to reduce the images has an
influence on the re-enlargements, so any number of downsampling methods can be
used. The difference between the re-enlargements and the orginal images is
determined by using image comparison metrics. When viewing the comparison data,
it is possible to aggregate across any combination of test images,
downsamplers, and resampling ratios.

**EXQUIRES** is fully extensible: External applications can be used alongside
its own to compute downsampled and upsampled images as well as image
difference metrics. The following components of **EXQUIRES** are configurable:

* Test Images
* Resampling Ratios
* Downsampling Methods
* Upsampling Methods
* Difference Metrics

===============
Technical Notes
===============

**EXQUIRES** is written in `Python`_ (requiring version 2.7 or higher)
and makes use of several modules, including the following:

.. _Python: http://python.org/

* `argparse`_ (handle command-line arguments)
* `configobj`_ (create and read :file:`.ini` files)
* `curses`_ (display progress information)
* `fnmatch`_ (handle wildcard characters)
* `inspect`_ (get a list of methods for a class)
* `numpy`_ (apply operations to lists of numbers)
* `re`_ (handle arguments with hypenated ranges)
* `sqlite3`_ (database to store image comparison data)
* `subprocess`__ (call external applications)
* `vipsCC`_ (Python interface to `VIPS`__)

.. _argparse: http://code.google.com/p/argparse/
.. _configobj: http://www.voidspace.org.uk/python/configobj.html
.. _curses: http://docs.python.org/library/curses.html
.. _fnmatch: http://docs.python.org/library/fnmatch.html
.. _inspect: http://docs.python.org/library/inspect.html
.. _numpy: http://numpy.scipy.org/
.. _re: http://docs.python.org/library/re.html
.. _sqlite3: http://docs.python.org/library/sqlite3.html
.. _subprocess: http://docs.python.org/library/subprocess.html
.. _vipsCC: http://www.vips.ecs.soton.ac.uk/index.php?title=Python
.. _VIPS: http://www.vips.ecs.soton.ac.uk/

The following image processing applications are also used:

* `ImageMagick`_ (resample images)
* `VIPS`_ (compute image difference metrics)

.. _ImageMagick: http://www.imagemagick.org/
.. _VIPS: http://www.vips.ecs.soton.ac.uk/
