AVIR
High-quality pro image resizing library
 
Loading...
Searching...
No Matches
lancir.h File Reference

The self-contained header-only "LANCIR" image resizing algorithm. More...

#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include <math.h>

Go to the source code of this file.

Classes

class  avir::CLancIR
 LANCIR image resizer class. More...
 
class  avir::CLancIRParams
 LANCIR resizing parameters class. More...
 
class  avir::CLancIR::CResizeFilters
 Class for fractional delay filter bank storage and calculation. More...
 
struct  avir::CLancIR::CResizePos
 Structure defines source scanline positions and filters for each destination pixel. More...
 
class  avir::CLancIR::CResizeScanline
 Scanline resizing positions class. More...
 
class  avir::CLancIR::CResizeFilters::CSineGen
 Sine-wave signal generator class. More...
 

Macros

#define LANCIR_ALIGN   4
 Address alignment (granularity) used by resizing functions, in bytes.
 
#define LANCIR_LF_POST
 Scanline resize function epilogue.
 
#define LANCIR_LF_PRE
 Scanline resize function prologue.
 

Detailed Description

The self-contained header-only "LANCIR" image resizing algorithm.

Version
3.0.15

This is the self-contained inclusion file for the "LANCIR" image resizer, a part of the AVIR library. Features scalar, AVX, SSE2, and NEON optimizations as well as batched resizing technique which provides a better CPU cache performance.

AVIR Copyright (c) 2015-2025 Aleksey Vaneev

Macro Definition Documentation

◆ LANCIR_LF_POST

#define LANCIR_LF_POST
Value:
op += opinc; \
rp++; \
}

Scanline resize function epilogue.

◆ LANCIR_LF_PRE

#define LANCIR_LF_PRE
Value:
const CResizePos* const rpe = rp + DstLen; \
while( rp != rpe ) \
{ \
const float* flt = rp -> flt; \
const float* ip; \
if( UseSP ) \
{ \
ip = (const float*) ( (intptr_t) sp + rp -> spo ); \
} \
else \
{ \
ip = (const float*) rp -> spo; \
}

Scanline resize function prologue.