AVIR
High-quality pro image resizing library
 All Classes Files Functions Variables Typedefs Macros
Public Attributes | List of all members
avir::CImageResizerVars Class Reference

#include <avir.h>

Public Attributes

int BufLen [2]
 
int BufOffs [2]
 
int BuildMode
 
int elalign
 
int ElCount
 
int ElCountIO
 
int fpalign
 
int fppack
 
double InGammaMult
 
bool IsResize2
 
double k
 
double o
 
double OutGammaMult
 
double ox
 
double oy
 
int packmode
 
int ResizeStep
 
int RndSeed
 
CImageResizerThreadPoolThreadPool
 
bool UseSRGBGamma
 

Detailed Description

Image resizing variables class.

This is an utility "catch all" class that defines various variables used during image resizing. Several variables that are explicitly initialized in this class' constructor are also used as additional "input" variables to the image resizing function. These variables will not be changed by the avir::CImageResizer<>::resizeImage() function.

Member Data Documentation

int avir::CImageResizerVars::BufOffs[2]

Offsets into the intermediate buffers, used to provide prefix elements required during processing so that no "out of range" access happens. This offset is a multiple of ElCount if pixels are stored in interleaved form.

int avir::CImageResizerVars::BuildMode

The build mode to use, for debugging purposes. Set to -1 to select a minimal-complexity mode automatically. All build modes deliver similar results with minor deviations.

int avir::CImageResizerVars::elalign

Length alignment of arrays of elements. This applies to filters and intermediate buffers: this constant forces filters and scanlines to have a length which is a multiple of this value, for more efficient SIMD implementation.

int avir::CImageResizerVars::ElCount

The number of "fptype" elements used to store 1 pixel.

int avir::CImageResizerVars::ElCountIO

The number of source and destination image's elements used to store 1 pixel.

int avir::CImageResizerVars::fpalign

Suggested alignment size in bytes. This is not a required alignment, because image resizing algorithm cannot be made to have a strictly aligned data access in all cases (e.g. de-interleaved interpolation cannot perform aligned accesses).

int avir::CImageResizerVars::fppack

The number of atomic types stored in a single "fptype" element.

double avir::CImageResizerVars::InGammaMult

Input gamma multiplier, used to convert input data to 0 to 1 range. 0.0 if no gamma is in use.

bool avir::CImageResizerVars::IsResize2

Use optimized "doResize2" function.

double avir::CImageResizerVars::k

Resizing step coefficient, updated to reflect the actually used coefficient during resizing.

double avir::CImageResizerVars::o

Starting pixel offset inside the source image, updated to reflect the actually used offset during resizing.

double avir::CImageResizerVars::OutGammaMult

Output gamma multiplier, used to convert data to 0 to 255/65535 range. 0.0 if no gamma is in use.

double avir::CImageResizerVars::ox

Start X pixel offset within source image (can be negative). Positive offset moves image to the left.

double avir::CImageResizerVars::oy

Start Y pixel offset within source image (can be negative). Positive offset moves image to the top.

int avir::CImageResizerVars::packmode

0 if interleaved packing, 1 if de-interleaved.

int avir::CImageResizerVars::ResizeStep

Index of the resizing step in the latest filtering steps array.

int avir::CImageResizerVars::RndSeed

Random seed parameter. This parameter may be incremented after each random generator initialization. The use of this variable depends on the ditherer implementation.

CImageResizerThreadPool* avir::CImageResizerVars::ThreadPool

Thread pool to be used by the image resizing function. Set to NULL to use single-threaded processing.

bool avir::CImageResizerVars::UseSRGBGamma

Perform sRGB gamma linearization (correction).