Legendary Explorer Core Nightly
Core library for working with Mass Effect Trilogy / Legendary Edition files
Loading...
Searching...
No Matches
CompressonatorXCodec.cpp File Reference
#include "Common.h"
#include "CompressonatorXCodec.h"

Macros

#define ALIGN_16
 
#define MAX_BLOCK   64
 
#define MAX_POINTS   16
 
#define NUM_CHANNELS   4
 
#define NUM_ENDPOINTS   2
 
#define BLOCK_SIZE   MAX_BLOCK
 
#define EPS   (2.f / 255.f) * (2.f / 255.f)
 
#define EPS2   3.f * (2.f / 255.f) * (2.f / 255.f)
 
#define MAX_ERROR   128000.f
 
#define GBL_SCH_STEP_MXS   0.018f
 
#define GBL_SCH_EXT_MXS   0.1f
 
#define LCL_SCH_STEP_MXS   0.6f
 
#define GBL_SCH_STEP_MXQ   0.0175f
 
#define GBL_SCH_EXT_MXQ   0.154f
 
#define LCL_SCH_STEP_MXQ   0.45f
 
#define GBL_SCH_STEP   GBL_SCH_STEP_MXS
 
#define GBL_SCH_EXT   GBL_SCH_EXT_MXS
 
#define LCL_SCH_STEP   LCL_SCH_STEP_MXS
 
#define AC   3
 
#define RC   2
 
#define GC   1
 
#define BC   0
 
#define PIX_GRID   8
 
#define ConstructColour(r, g, b)   (((r) << 11) | ((g) << 5) | (b))
 
#define SCH_STPS   3
 
#define _INT_GRID   (_bFixedRamp && _FracPrc == 0)
 

Functions

CMP_DWORD ConstructColor (CMP_BYTE R, CMP_BYTE nRedBits, CMP_BYTE G, CMP_BYTE nGreenBits, CMP_BYTE B, CMP_BYTE nBlueBits)
 
static int QSortIntCmp (const void *Elem1, const void *Elem2)
 
static int QSortFloatCmp (const void *Elem1, const void *Elem2)
 
static void MkRmpOnGrid (CMP_FLOAT _RmpF[NUM_CHANNELS][NUM_ENDPOINTS], CMP_FLOAT _MnMx[NUM_CHANNELS][NUM_ENDPOINTS], CMP_FLOAT _Min, CMP_FLOAT _Max, CMP_BYTE nRedBits, CMP_BYTE nGreenBits, CMP_BYTE nBlueBits)
 
void MkWkRmpPts (bool *_bEq, CMP_FLOAT _OutRmpPts[NUM_CHANNELS][NUM_ENDPOINTS], CMP_FLOAT _InpRmpPts[NUM_CHANNELS][NUM_ENDPOINTS], CMP_BYTE nRedBits, CMP_BYTE nGreenBits, CMP_BYTE nBlueBits)
 
void BldClrRmp (CMP_FLOAT _Rmp[MAX_POINTS], CMP_FLOAT _InpRmp[NUM_ENDPOINTS], CMP_BYTE dwNumPoints)
 
void BldRmp (CMP_FLOAT _Rmp[NUM_CHANNELS][MAX_POINTS], CMP_FLOAT _InpRmp[NUM_CHANNELS][NUM_ENDPOINTS], CMP_BYTE dwNumPoints)
 
static CMP_FLOAT ClstrErr (CMP_FLOAT _Blk[MAX_BLOCK][NUM_CHANNELS], CMP_FLOAT _Rpt[MAX_BLOCK], CMP_FLOAT _Rmp[NUM_CHANNELS][MAX_POINTS], int _NmbClrs, int _blcktp, bool _ConstRamp, CMP_FLOAT *_pfWeights)
 
static CMP_FLOAT ClstrIntnl (CMP_FLOAT _Blk[MAX_BLOCK][NUM_CHANNELS], CMP_BYTE *_Indxs, CMP_FLOAT _Rmp[NUM_CHANNELS][MAX_POINTS], int dwBlockSize, CMP_BYTE dwNumPoints, bool _ConstRamp, CMP_FLOAT *_pfWeights, bool _bUseAlpha)
 
static CMP_FLOAT ClstrBas (CMP_BYTE *_Indxs, CMP_FLOAT _Blk[MAX_BLOCK][NUM_CHANNELS], CMP_FLOAT _InpRmp[NUM_CHANNELS][NUM_ENDPOINTS], int dwBlockSize, CMP_BYTE dwNumPoints, CMP_FLOAT *_pfWeights, bool _bUseAlpha, CMP_BYTE nRedBits, CMP_BYTE nGreenBits, CMP_BYTE nBlueBits)
 
CMP_FLOAT Clstr (CMP_DWORD block_32[MAX_BLOCK], CMP_WORD dwBlockSize, CMP_BYTE nEndpoints[3][NUM_ENDPOINTS], CMP_BYTE *pcIndices, CMP_BYTE dwNumPoints, CMP_FLOAT *_pfWeights, bool _bUseAlpha, CMP_BYTE _nAlphaThreshold, CMP_BYTE nRedBits, CMP_BYTE nGreenBits, CMP_BYTE nBlueBits)
 
CMP_FLOAT Clstr (CMP_FLOAT block_32[MAX_BLOCK *4], CMP_WORD dwBlockSize, CMP_BYTE nEndpoints[3][NUM_ENDPOINTS], CMP_BYTE *pcIndices, CMP_BYTE dwNumPoints, CMP_FLOAT *_pfWeights, bool _bUseAlpha, CMP_FLOAT _fAlphaThreshold, CMP_BYTE nRedBits, CMP_BYTE nGreenBits, CMP_BYTE nBlueBits)
 
static CMP_FLOAT Refine (CMP_FLOAT _OutRmpPnts[NUM_CHANNELS][NUM_ENDPOINTS], CMP_FLOAT _InpRmpPnts[NUM_CHANNELS][NUM_ENDPOINTS], CMP_FLOAT _Blk[MAX_BLOCK][NUM_CHANNELS], CMP_FLOAT _Rpt[MAX_BLOCK], int _NmrClrs, CMP_BYTE dwNumPoints, CMP_FLOAT *_pfWeights, CMP_BYTE nRedBits, CMP_BYTE nGreenBits, CMP_BYTE nBlueBits, CMP_BYTE nRefineSteps)
 
static CMP_FLOAT Refine3D (CMP_FLOAT _OutRmpPnts[NUM_CHANNELS][NUM_ENDPOINTS], CMP_FLOAT _InpRmpPnts[NUM_CHANNELS][NUM_ENDPOINTS], CMP_FLOAT _Blk[MAX_BLOCK][NUM_CHANNELS], CMP_FLOAT _Rpt[MAX_BLOCK], int _NmrClrs, CMP_BYTE dwNumPoints, CMP_FLOAT *_pfWeights, CMP_BYTE nRedBits, CMP_BYTE nGreenBits, CMP_BYTE nBlueBits, CMP_BYTE nRefineSteps)
 
static CMP_FLOAT RampSrchW (CMP_FLOAT _Blck[MAX_BLOCK], CMP_FLOAT _BlckErr[MAX_BLOCK], CMP_FLOAT _Rpt[MAX_BLOCK], CMP_FLOAT _maxerror, CMP_FLOAT _min_ex, CMP_FLOAT _max_ex, int _NmbClrs, int _block)
 
static void FindAxis (CMP_FLOAT _outBlk[MAX_BLOCK][NUM_CHANNELS], CMP_FLOAT fLineDirection[NUM_CHANNELS], CMP_FLOAT fBlockCenter[NUM_CHANNELS], bool *_pbSmall, CMP_FLOAT _inpBlk[MAX_BLOCK][NUM_CHANNELS], CMP_FLOAT _inpRpt[MAX_BLOCK], int nDimensions, int nNumColors)
 
static void CompressRGBBlockX (CMP_FLOAT _RsltRmpPnts[NUM_CHANNELS][NUM_ENDPOINTS], CMP_FLOAT _BlkIn[MAX_BLOCK][NUM_CHANNELS], CMP_FLOAT _Rpt[MAX_BLOCK], int _UniqClrs, CMP_BYTE dwNumPoints, bool b3DRefinement, CMP_BYTE nRefinementSteps, CMP_FLOAT *_pfWeights, CMP_BYTE nRedBits, CMP_BYTE nGreenBits, CMP_BYTE nBlueBits)
 
CMP_FLOAT CompRGBBlock (CMP_FLOAT *block_32, CMP_WORD dwBlockSize, CMP_BYTE nRedBits, CMP_BYTE nGreenBits, CMP_BYTE nBlueBits, CMP_BYTE nEndpoints[3][NUM_ENDPOINTS], CMP_BYTE *pcIndices, CMP_BYTE dwNumPoints, bool _bUseSSE2, bool b3DRefinement, CMP_BYTE nRefinementSteps, CMP_FLOAT *_pfChannelWeights, bool _bUseAlpha, CMP_FLOAT _fAlphaThreshold)
 
CMP_FLOAT CompRGBBlock (CMP_DWORD *block_32, CMP_WORD dwBlockSize, CMP_BYTE nRedBits, CMP_BYTE nGreenBits, CMP_BYTE nBlueBits, CMP_BYTE nEndpoints[3][NUM_ENDPOINTS], CMP_BYTE *pcIndices, CMP_BYTE dwNumPoints, bool _bUseSSE2, bool b3DRefinement, CMP_BYTE nRefinementSteps, CMP_FLOAT *_pfChannelWeights, bool _bUseAlpha, CMP_BYTE _nAlphaThreshold)
 
static CMP_FLOAT CompBlock1 (CMP_FLOAT _RmpPnts[NUM_ENDPOINTS], CMP_FLOAT _Blk[MAX_BLOCK], int _Nmbr, CMP_BYTE dwNumPoints, bool bFixedRampPoints, int _IntPrc=8, int _FracPrc=0, bool _bFixedRamp=true, bool _bUseSSE2=true)
 
static CMP_FLOAT Clstr1 (CMP_BYTE *pcIndices, CMP_FLOAT _blockIn[MAX_BLOCK], CMP_FLOAT _ramp[NUM_ENDPOINTS], int _NmbrClrs, int nNumPoints, bool bFixedRampPoints, int _intPrec=8, int _fracPrec=0, bool _bFixedRamp=true)
 
static void BldRmp1 (CMP_FLOAT _Rmp[MAX_POINTS], CMP_FLOAT _InpRmp[NUM_ENDPOINTS], int nNumPoints)
 
static void GetRmp1 (CMP_FLOAT _rampDat[MAX_POINTS], CMP_FLOAT _ramp[NUM_ENDPOINTS], int nNumPoints, bool bFixedRampPoints, int _intPrec, int _fracPrec, bool _bFixedRamp)
 
static CMP_FLOAT RmpSrch1 (CMP_FLOAT _Blk[MAX_BLOCK], CMP_FLOAT _Rpt[MAX_BLOCK], CMP_FLOAT _maxerror, CMP_FLOAT _min_ex, CMP_FLOAT _max_ex, int _NmbrClrs, CMP_BYTE nNumPoints)
 
static CMP_FLOAT Refine1 (ALIGN_16 CMP_FLOAT _Blk[MAX_BLOCK], ALIGN_16 CMP_FLOAT _Rpt[MAX_BLOCK], CMP_FLOAT _MaxError, CMP_FLOAT &_min_ex, CMP_FLOAT &_max_ex, CMP_FLOAT _m_step, CMP_FLOAT _min_bnd, CMP_FLOAT _max_bnd, int _NmbrClrs, CMP_BYTE dwNumPoints, bool _bUseSSE2)
 
static int QSortFCmp (const void *Elem1, const void *Elem2)
 
CMP_FLOAT CompBlock1X (CMP_FLOAT *_Blk, CMP_WORD dwBlockSize, CMP_BYTE nEndpoints[2], CMP_BYTE *pcIndices, CMP_BYTE dwNumPoints, bool bFixedRampPoints, bool _bUseSSE2, int _intPrec, int _fracPrec, bool _bFixedRamp)
 
CMP_FLOAT CompBlock1X (CMP_BYTE *_Blk, CMP_WORD dwBlockSize, CMP_BYTE nEndpoints[2], CMP_BYTE *pcIndices, CMP_BYTE dwNumPoints, bool bFixedRampPoints, bool _bUseSSE2, int _intPrec, int _fracPrec, bool _bFixedRamp)
 

Variables

CMP_BYTE nByteBitsMask []
 
CMP_DWORD dwRndAmount [] = {0, 0, 0, 0, 1, 1, 2, 2, 3}
 
static const CMP_FLOAT sMvF [] = { 0.f, -1.f, 1.f, -2.f, 2.f, -3.f, 3.f, -4.f, 4.f, -5.f, 5.f, -6.f, 6.f, -7.f, 7.f, -8.f, 8.f}
 

Macro Definition Documentation

◆ ALIGN_16

#define ALIGN_16

◆ MAX_BLOCK

#define MAX_BLOCK   64

◆ MAX_POINTS

#define MAX_POINTS   16

◆ NUM_CHANNELS

#define NUM_CHANNELS   4

◆ NUM_ENDPOINTS

#define NUM_ENDPOINTS   2

◆ BLOCK_SIZE

#define BLOCK_SIZE   MAX_BLOCK

◆ EPS

#define EPS   (2.f / 255.f) * (2.f / 255.f)

◆ EPS2

#define EPS2   3.f * (2.f / 255.f) * (2.f / 255.f)

◆ MAX_ERROR

#define MAX_ERROR   128000.f

◆ GBL_SCH_STEP_MXS

#define GBL_SCH_STEP_MXS   0.018f

◆ GBL_SCH_EXT_MXS

#define GBL_SCH_EXT_MXS   0.1f

◆ LCL_SCH_STEP_MXS

#define LCL_SCH_STEP_MXS   0.6f

◆ GBL_SCH_STEP_MXQ

#define GBL_SCH_STEP_MXQ   0.0175f

◆ GBL_SCH_EXT_MXQ

#define GBL_SCH_EXT_MXQ   0.154f

◆ LCL_SCH_STEP_MXQ

#define LCL_SCH_STEP_MXQ   0.45f

◆ GBL_SCH_STEP

#define GBL_SCH_STEP   GBL_SCH_STEP_MXS

◆ GBL_SCH_EXT

#define GBL_SCH_EXT   GBL_SCH_EXT_MXS

◆ LCL_SCH_STEP

#define LCL_SCH_STEP   LCL_SCH_STEP_MXS

◆ AC

#define AC   3

◆ RC

#define RC   2

◆ GC

#define GC   1

◆ BC

#define BC   0

◆ PIX_GRID

#define PIX_GRID   8

◆ ConstructColour

#define ConstructColour (   r,
  g,
 
)    (((r) << 11) | ((g) << 5) | (b))

◆ SCH_STPS

#define SCH_STPS   3

◆ _INT_GRID

#define _INT_GRID   (_bFixedRamp && _FracPrc == 0)

Function Documentation

◆ ConstructColor()

CMP_DWORD ConstructColor ( CMP_BYTE  R,
CMP_BYTE  nRedBits,
CMP_BYTE  G,
CMP_BYTE  nGreenBits,
CMP_BYTE  B,
CMP_BYTE  nBlueBits 
)

◆ QSortIntCmp()

static int QSortIntCmp ( const void *  Elem1,
const void *  Elem2 
)
static

◆ QSortFloatCmp()

static int QSortFloatCmp ( const void *  Elem1,
const void *  Elem2 
)
static

◆ MkRmpOnGrid()

static void MkRmpOnGrid ( CMP_FLOAT  _RmpF[NUM_CHANNELS][NUM_ENDPOINTS],
CMP_FLOAT  _MnMx[NUM_CHANNELS][NUM_ENDPOINTS],
CMP_FLOAT  _Min,
CMP_FLOAT  _Max,
CMP_BYTE  nRedBits,
CMP_BYTE  nGreenBits,
CMP_BYTE  nBlueBits 
)
static

◆ MkWkRmpPts()

void MkWkRmpPts ( bool *  _bEq,
CMP_FLOAT  _OutRmpPts[NUM_CHANNELS][NUM_ENDPOINTS],
CMP_FLOAT  _InpRmpPts[NUM_CHANNELS][NUM_ENDPOINTS],
CMP_BYTE  nRedBits,
CMP_BYTE  nGreenBits,
CMP_BYTE  nBlueBits 
)
inline

◆ BldClrRmp()

void BldClrRmp ( CMP_FLOAT  _Rmp[MAX_POINTS],
CMP_FLOAT  _InpRmp[NUM_ENDPOINTS],
CMP_BYTE  dwNumPoints 
)
inline

◆ BldRmp()

void BldRmp ( CMP_FLOAT  _Rmp[NUM_CHANNELS][MAX_POINTS],
CMP_FLOAT  _InpRmp[NUM_CHANNELS][NUM_ENDPOINTS],
CMP_BYTE  dwNumPoints 
)
inline

◆ ClstrErr()

static CMP_FLOAT ClstrErr ( CMP_FLOAT  _Blk[MAX_BLOCK][NUM_CHANNELS],
CMP_FLOAT  _Rpt[MAX_BLOCK],
CMP_FLOAT  _Rmp[NUM_CHANNELS][MAX_POINTS],
int  _NmbClrs,
int  _blcktp,
bool  _ConstRamp,
CMP_FLOAT _pfWeights 
)
static

◆ ClstrIntnl()

static CMP_FLOAT ClstrIntnl ( CMP_FLOAT  _Blk[MAX_BLOCK][NUM_CHANNELS],
CMP_BYTE _Indxs,
CMP_FLOAT  _Rmp[NUM_CHANNELS][MAX_POINTS],
int  dwBlockSize,
CMP_BYTE  dwNumPoints,
bool  _ConstRamp,
CMP_FLOAT _pfWeights,
bool  _bUseAlpha 
)
static

◆ ClstrBas()

static CMP_FLOAT ClstrBas ( CMP_BYTE _Indxs,
CMP_FLOAT  _Blk[MAX_BLOCK][NUM_CHANNELS],
CMP_FLOAT  _InpRmp[NUM_CHANNELS][NUM_ENDPOINTS],
int  dwBlockSize,
CMP_BYTE  dwNumPoints,
CMP_FLOAT _pfWeights,
bool  _bUseAlpha,
CMP_BYTE  nRedBits,
CMP_BYTE  nGreenBits,
CMP_BYTE  nBlueBits 
)
static

◆ Clstr() [1/2]

CMP_FLOAT Clstr ( CMP_DWORD  block_32[MAX_BLOCK],
CMP_WORD  dwBlockSize,
CMP_BYTE  nEndpoints[3][NUM_ENDPOINTS],
CMP_BYTE pcIndices,
CMP_BYTE  dwNumPoints,
CMP_FLOAT _pfWeights,
bool  _bUseAlpha,
CMP_BYTE  _nAlphaThreshold,
CMP_BYTE  nRedBits,
CMP_BYTE  nGreenBits,
CMP_BYTE  nBlueBits 
)

◆ Clstr() [2/2]

CMP_FLOAT Clstr ( CMP_FLOAT  block_32[MAX_BLOCK *4],
CMP_WORD  dwBlockSize,
CMP_BYTE  nEndpoints[3][NUM_ENDPOINTS],
CMP_BYTE pcIndices,
CMP_BYTE  dwNumPoints,
CMP_FLOAT _pfWeights,
bool  _bUseAlpha,
CMP_FLOAT  _fAlphaThreshold,
CMP_BYTE  nRedBits,
CMP_BYTE  nGreenBits,
CMP_BYTE  nBlueBits 
)

◆ Refine()

CMP_FLOAT Refine ( CMP_FLOAT  _OutRmpPnts[NUM_CHANNELS][NUM_ENDPOINTS],
CMP_FLOAT  _InpRmpPnts[NUM_CHANNELS][NUM_ENDPOINTS],
CMP_FLOAT  _Blk[MAX_BLOCK][NUM_CHANNELS],
CMP_FLOAT  _Rpt[MAX_BLOCK],
int  _NmrClrs,
CMP_BYTE  dwNumPoints,
CMP_FLOAT _pfWeights,
CMP_BYTE  nRedBits,
CMP_BYTE  nGreenBits,
CMP_BYTE  nBlueBits,
CMP_BYTE  nRefineSteps 
)
static

◆ Refine3D()

CMP_FLOAT Refine3D ( CMP_FLOAT  _OutRmpPnts[NUM_CHANNELS][NUM_ENDPOINTS],
CMP_FLOAT  _InpRmpPnts[NUM_CHANNELS][NUM_ENDPOINTS],
CMP_FLOAT  _Blk[MAX_BLOCK][NUM_CHANNELS],
CMP_FLOAT  _Rpt[MAX_BLOCK],
int  _NmrClrs,
CMP_BYTE  dwNumPoints,
CMP_FLOAT _pfWeights,
CMP_BYTE  nRedBits,
CMP_BYTE  nGreenBits,
CMP_BYTE  nBlueBits,
CMP_BYTE  nRefineSteps 
)
static

◆ RampSrchW()

static CMP_FLOAT RampSrchW ( CMP_FLOAT  _Blck[MAX_BLOCK],
CMP_FLOAT  _BlckErr[MAX_BLOCK],
CMP_FLOAT  _Rpt[MAX_BLOCK],
CMP_FLOAT  _maxerror,
CMP_FLOAT  _min_ex,
CMP_FLOAT  _max_ex,
int  _NmbClrs,
int  _block 
)
static

◆ FindAxis()

static void FindAxis ( CMP_FLOAT  _outBlk[MAX_BLOCK][NUM_CHANNELS],
CMP_FLOAT  fLineDirection[NUM_CHANNELS],
CMP_FLOAT  fBlockCenter[NUM_CHANNELS],
bool *  _pbSmall,
CMP_FLOAT  _inpBlk[MAX_BLOCK][NUM_CHANNELS],
CMP_FLOAT  _inpRpt[MAX_BLOCK],
int  nDimensions,
int  nNumColors 
)
static

◆ CompressRGBBlockX()

static void CompressRGBBlockX ( CMP_FLOAT  _RsltRmpPnts[NUM_CHANNELS][NUM_ENDPOINTS],
CMP_FLOAT  _BlkIn[MAX_BLOCK][NUM_CHANNELS],
CMP_FLOAT  _Rpt[MAX_BLOCK],
int  _UniqClrs,
CMP_BYTE  dwNumPoints,
bool  b3DRefinement,
CMP_BYTE  nRefinementSteps,
CMP_FLOAT _pfWeights,
CMP_BYTE  nRedBits,
CMP_BYTE  nGreenBits,
CMP_BYTE  nBlueBits 
)
static

◆ CompRGBBlock() [1/2]

CMP_FLOAT CompRGBBlock ( CMP_FLOAT block_32,
CMP_WORD  dwBlockSize,
CMP_BYTE  nRedBits,
CMP_BYTE  nGreenBits,
CMP_BYTE  nBlueBits,
CMP_BYTE  nEndpoints[3][NUM_ENDPOINTS],
CMP_BYTE pcIndices,
CMP_BYTE  dwNumPoints,
bool  _bUseSSE2,
bool  b3DRefinement,
CMP_BYTE  nRefinementSteps,
CMP_FLOAT _pfChannelWeights,
bool  _bUseAlpha,
CMP_FLOAT  _fAlphaThreshold 
)

◆ CompRGBBlock() [2/2]

CMP_FLOAT CompRGBBlock ( CMP_DWORD block_32,
CMP_WORD  dwBlockSize,
CMP_BYTE  nRedBits,
CMP_BYTE  nGreenBits,
CMP_BYTE  nBlueBits,
CMP_BYTE  nEndpoints[3][NUM_ENDPOINTS],
CMP_BYTE pcIndices,
CMP_BYTE  dwNumPoints,
bool  _bUseSSE2,
bool  b3DRefinement,
CMP_BYTE  nRefinementSteps,
CMP_FLOAT _pfChannelWeights,
bool  _bUseAlpha,
CMP_BYTE  _nAlphaThreshold 
)

◆ CompBlock1()

static CMP_FLOAT CompBlock1 ( CMP_FLOAT  _RmpPnts[NUM_ENDPOINTS],
CMP_FLOAT  _Blk[MAX_BLOCK],
int  _Nmbr,
CMP_BYTE  dwNumPoints,
bool  bFixedRampPoints,
int  _IntPrc = 8,
int  _FracPrc = 0,
bool  _bFixedRamp = true,
bool  _bUseSSE2 = true 
)
static

◆ Clstr1()

static CMP_FLOAT Clstr1 ( CMP_BYTE pcIndices,
CMP_FLOAT  _blockIn[MAX_BLOCK],
CMP_FLOAT  _ramp[NUM_ENDPOINTS],
int  _NmbrClrs,
int  nNumPoints,
bool  bFixedRampPoints,
int  _intPrec = 8,
int  _fracPrec = 0,
bool  _bFixedRamp = true 
)
static

◆ BldRmp1()

static void BldRmp1 ( CMP_FLOAT  _Rmp[MAX_POINTS],
CMP_FLOAT  _InpRmp[NUM_ENDPOINTS],
int  nNumPoints 
)
static

◆ GetRmp1()

static void GetRmp1 ( CMP_FLOAT  _rampDat[MAX_POINTS],
CMP_FLOAT  _ramp[NUM_ENDPOINTS],
int  nNumPoints,
bool  bFixedRampPoints,
int  _intPrec,
int  _fracPrec,
bool  _bFixedRamp 
)
static

◆ RmpSrch1()

static CMP_FLOAT RmpSrch1 ( CMP_FLOAT  _Blk[MAX_BLOCK],
CMP_FLOAT  _Rpt[MAX_BLOCK],
CMP_FLOAT  _maxerror,
CMP_FLOAT  _min_ex,
CMP_FLOAT  _max_ex,
int  _NmbrClrs,
CMP_BYTE  nNumPoints 
)
static

◆ Refine1()

static CMP_FLOAT Refine1 ( ALIGN_16 CMP_FLOAT  _Blk[MAX_BLOCK],
ALIGN_16 CMP_FLOAT  _Rpt[MAX_BLOCK],
CMP_FLOAT  _MaxError,
CMP_FLOAT _min_ex,
CMP_FLOAT _max_ex,
CMP_FLOAT  _m_step,
CMP_FLOAT  _min_bnd,
CMP_FLOAT  _max_bnd,
int  _NmbrClrs,
CMP_BYTE  dwNumPoints,
bool  _bUseSSE2 
)
static

◆ QSortFCmp()

static int QSortFCmp ( const void *  Elem1,
const void *  Elem2 
)
static

◆ CompBlock1X() [1/2]

CMP_FLOAT CompBlock1X ( CMP_FLOAT _Blk,
CMP_WORD  dwBlockSize,
CMP_BYTE  nEndpoints[2],
CMP_BYTE pcIndices,
CMP_BYTE  dwNumPoints,
bool  bFixedRampPoints,
bool  _bUseSSE2,
int  _intPrec,
int  _fracPrec,
bool  _bFixedRamp 
)

◆ CompBlock1X() [2/2]

CMP_FLOAT CompBlock1X ( CMP_BYTE _Blk,
CMP_WORD  dwBlockSize,
CMP_BYTE  nEndpoints[2],
CMP_BYTE pcIndices,
CMP_BYTE  dwNumPoints,
bool  bFixedRampPoints,
bool  _bUseSSE2,
int  _intPrec,
int  _fracPrec,
bool  _bFixedRamp 
)

Variable Documentation

◆ nByteBitsMask

CMP_BYTE nByteBitsMask[]
Initial value:
=
{
0x00,
0x80,
0xc0,
0xe0,
0xf0,
0xf8,
0xfc,
0xfe,
0xff,
}

◆ dwRndAmount

CMP_DWORD dwRndAmount[] = {0, 0, 0, 0, 1, 1, 2, 2, 3}

◆ sMvF

const CMP_FLOAT sMvF[] = { 0.f, -1.f, 1.f, -2.f, 2.f, -3.f, 3.f, -4.f, 4.f, -5.f, 5.f, -6.f, 6.f, -7.f, 7.f, -8.f, 8.f}
static