|
void | convertVtoH (const fptype *ip, fptype *op, const int SrcLen, const int SrcIncr) const |
| Converts vertical scanline to horizontal scanline.
|
|
void | doFilter (const fptype *const Src, fptype *Dst, const int DstIncr) const |
| Performs scanline filtering with optional downsampling.
|
|
void | doResize (const fptype *SrcLine, fptype *DstLine, const int DstLineIncr, fptype *const) const |
| Performs resizing of a single scanline.
|
|
void | doResize2 (const fptype *SrcLine, fptype *DstLine, const int DstLineIncr, fptype *const) const |
| Performs resizing of a single scanline assuming that the input buffer consists of zero-padded elements (2X upsampling without filtering).
|
|
void | doUpsample (const fptype *const Src, fptype *const Dst) const |
| Performs scanline upsampling with filtering.
|
|
template<typename Tin> |
void | packScanline (const Tin *ip, fptype *const op0, const int l0) const |
| Performs "packing" of a scanline, and type conversion.
|
|
void | prepareInBuf (fptype *Src) const |
| Prepares input scanline buffer for this filtering step.
|
|
|
double | DCGain |
| DC gain which was applied to the filter. Not defined, if ResampleFactor equals 0.
|
|
int | EdgePixelCount |
| The number of edge pixels added. Affects the initial position within the input scanline, used to produce edge pixels. This variable is used and should be defined when IsUpsample equals false and ResampleFactor is greater than 0. When assigning this variable, it is also necessary to update InPrefix , OutLen , and Vars.o variables.
|
|
CBuffer< fptype > | Flt |
| Filter to use at this step.
|
|
const CDSPFracFilterBankLin< fptype > * | FltBank |
| Filter bank in use by this resizing step, may be equal to FltBankDyn .
|
|
CDSPFracFilterBankLin< fptype > * | FltBankDyn |
| Dynamically-allocated filter bank in use by this resizing step. Equals nullptr , if a static FltBank filter bank is in use.
|
|
int | FltLatency |
| Filter's latency (group delay, shift) in pixels.
|
|
CFltBuffer | FltOrig |
| Originally-designed filter. This buffer may not be assigned. Assigned by filters that precede the resizing step if such filter is planned to be embedded into the interpolation filter as "external" filter. If IsUpsample equals true , and this filter buffer is not empty, the upsampling step will not itself apply any filtering over upsampled input scanline.
|
|
int | InBuf |
| Input buffer index, 0 or 1.
|
|
int | InElIncr |
| Pixel element increment within the input buffer, used during de-interleaved processing: in this case each image's channel is stored independently, InElIncr elements apart.
|
|
int | InLen |
| Input scanline's length in pixels.
|
|
int | InPrefix |
| Required input prefix pixels. These prefix pixels will be filled with source scanline's first pixel value. If IsUpsample is true , this is the additional number of times the first pixel will be filtered before processing scanline, this number is also reflected in the OutPrefix .
|
|
int | InSuffix |
| Required input suffix pixels. These suffix pixels will be filled with source scanline's last pixel value. If IsUpsample is true , this is the additional number of times the last pixel will be filtered before processing scanline, this number is also reflected in the OutSuffix .
|
|
bool | IsUpsample |
| true , if this step is an upsampling step; false , if downsampling step. Should be set to false , if ResampleFactor equals 0.
|
|
int | OutBuf |
| Output buffer index. 0 or 1; 2 for the last step.
|
|
int | OutElIncr |
| Pixel element increment within the output buffer, used during de-interleaved processing. Equals to InBufElIncr of the next step.
|
|
int | OutLen |
| Length of the resulting scanline.
|
|
int | OutPrefix |
| Required output prefix pixels. These prefix pixels will not be pre-filled with any values. Value is valid only if IsUpsample equals true .
|
|
int | OutSuffix |
| Required input suffix pixels. These suffix pixels will not be pre-filled with any values. Value is valid only if IsUpsample equals true .
|
|
CBuffer< fptype > | PrefixDC |
| DC component fluctuations added at the start of the resulting scanline, used when IsUpsample equals true .
|
|
int | ResampleFactor |
| Resample factor (greater or equal to 1). If 0, this is a resizing step. This value should be greater than 1, if IsUpsample equals true .
|
|
CRPosBuf * | RPosBuf |
| Resizing positions buffer. Used when ResampleFactor equals 0 (resizing step).
|
|
CBuffer< fptype > | SuffixDC |
| DC component fluctuations added at the end of the resulting scanline, used when IsUpsample equals true .
|
|
const CImageResizerVars * | Vars |
| Image resizing-related variables.
|
|
static const int | EdgePixelCountDef = 3 |
| The default number of pixels additionally produced at scanline edges during filtering. This is required to reduce edge artifacts.
|
|
template<typename fptype, typename fptypeatom>
class avir::CImageResizerFilterStepINL< fptype, fptypeatom >
Interleaved filtering steps implementation class.
This class implements scanline filtering functions in interleaved mode. This means that each pixel is processed independently, not in groups.
- Template Parameters
-
fptype | Floating point type to use for storing pixel elements. SIMD types can be used: in this case each element may hold a whole pixel. |
fptypeatom | The atomic type the fptype consists of. |
template<typename fptype, typename fptypeatom>
template<typename Tin>
Performs "packing" of a scanline, and type conversion.
Scanline, depending on the fptype
can be potentially stored as a packed SIMD values having a certain atomic type. If required, the sRGB gamma correction is applied.
- Parameters
-
ip | Input scanline. |
op0 | Output scanline. |
l0 | The number of pixels to "pack". |
- Template Parameters
-
template<typename fptype, typename fptypeatom>
template<typename Tout>
Performs "unpacking" of a scanline, and type conversion.
Truncation is used when floating point is converted to integer.
Scanline, depending on the fptype
can be potentially stored as a packed SIMD values having a certain atomic type. The unpacking function assumes that scanline is stored in the style produced by the packScanline() function.
- Parameters
-
ip | Input scanline. |
op | Output scanline. |
l | The number of pixels to "unpack". |
Vars0 | Image resizing-related variables. |
- Template Parameters
-