classPiiQuantizer
#include <PiiQuantizer.h>
A class that quantizes (floating point) values to integers.
Description
Each quantization level corresponds to a continuous range of values.
Constructors and destructor
|
Create a new quantizer with quantization limits. |
|
|
( )
Create a new quantizer. |
Public member functions
|
unsigned int
|
( )
Get the number of quantization levels. |
|
PiiMatrix< T >
|
( )
Get the current limits. |
|
unsigned int
|
( )
Get the maximum quantization index. |
|
int
|
(
Quantize a (floating-point) value to an integer (quantization level index). |
|
void
|
Set quantization limits. |
Static public member functions
|
static PiiMatrix< T >
|
Create limits based on a set of "training" data. |
Function details
-
Create a new quantizer with quantization limits.
See setLimits() for details.
-
PiiQuantizer
()[inline]Create a new quantizer.
-
unsigned int levels
()[inline]Get the number of quantization levels.
-
Get the current limits.
-
unsigned int maxValue
()[inline]Get the maximum quantization index.
This is a convenience function that returns levels()-1.
-
int quantize
(- T value
Quantize a (floating-point) value to an integer (quantization level index).
-
Set quantization limits.
Quantization limits are represented as a row matrix of monotonically increasing numbers.
PiiQuantizer<float> q; PiiMatrix<float> limits(1,4, 0.0, 0.1, 0.5, 0.7); q.setLimits(limits); q.quantize(0.3); // returns 2 q.quantize(-1.0); // returns 0
-
Create limits based on a set of "training" data.
Quantization boundaries are derived from the training data so that each quantization range has an equal number of entries.
PiiMatrix<int> data(1,9, 5, 2, 1, 1, 3, 4, 1, 5, 5); PiiMatrix<int> levels(PiiQuantizer<int>::divideEqually(data, levels)); // returns (2, 5) PiiQuantizer<int> q(levels); // converts ints to ints
Note that
datamay be modified. Best performance is attained ifdatais a contiguous matrix.
Add a note
Not a single note added yet. Be the first, add yours.