Image and Video Analysis

Dimensionality-Recursive Vector Quantization

DRVQ is a C++ library implementation of dimensionality-recursive vector quantization, a fast vector quantization method in high-dimensional Euclidean spaces under arbitrary data distributions. It is an approximation of k-means that is practically constant in data size and applies to arbitrarily high dimensions but can only scale to a few thousands of centroids. As a by-product of training, a tree structure performs either exact or approximate quantization on trained centroids, the latter being not very precise but extremely fast.

The methods used are described in the research project and the original publication (abstract, PDF).

The latest stable release is available at SourceForge and the latest development version is available at github, where a detailed README file describes the usage of the software, including license, requirements, installation, file formats, sample data, tools, and options. With the sample data provided and the default options, it is possible to test the code immediately as a demo.

DRVQ has only been tested on clang 3.3 and g++ 4.8.1 on Linux, but it should be straightfoward to use on other platforms.

All tools are provided as very simple, script-like .cpp files of few lines of code each, with all low-level implementation hidden in included files. Each file generates a command-line executable that can be used as a stand-alone tool for a particular job, using a rich set of command-line options.

On the other hand, the source code illustrates how the library can be used, e.g. to integrate in other programs. One is welcome to tune the code beyond the options offered by the tools, including the data types used. This is straightforward because the implementation is using templates or type definitions where necessary.


DRVQ has a 2-clause BSD license. See file LICENSE for the complete license text.


Please cite our ICCV paper below if you use this software.


Download the latest stable release from SourceForge.

Or check out the latest development version of the code from github, also available as a ZIP file.


Yannis Avrithis




Yannis Avrithis. Quantize and Conquer: A dimensionality-recursive solution to clustering, vector quantization, and image retrieval. In Proceedings of International Conference on Computer Vision (ICCV 2013), December 2013.
[ Abstract ]
[ Bibtex ] [ PDF ]