📄 anti-predictor.h
字号:
#ifndef APE_ANTIPREDICTOR_H
#define APE_ANTIPREDICTOR_H
class CAntiPredictor;
CAntiPredictor * CreateAntiPredictor(int nCompressionLevel, int nVersion);
/*****************************************************************************************
Base class for all anti-predictors
*****************************************************************************************/
class CAntiPredictor
{
public:
// construction/destruction
CAntiPredictor();
~CAntiPredictor();
// functions
virtual void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements);
};
/*****************************************************************************************
Offset anti-predictor
*****************************************************************************************/
class CAntiPredictorOffset : public CAntiPredictor
{
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements, int Offset, int DeltaM);
};
#ifdef ENABLE_COMPRESSION_MODE_FAST
/*****************************************************************************************
Fast anti-predictor (from original 'fast' mode...updated for version 3.32)
*****************************************************************************************/
class CAntiPredictorFast0000To3320 : public CAntiPredictor {
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements);
};
/*****************************************************************************************
Fast anti-predictor (new 'fast' mode release with version 3.32)
*****************************************************************************************/
class CAntiPredictorFast3320ToCurrent : public CAntiPredictor {
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements);
};
#endif // #ifdef ENABLE_COMPRESSION_MODE_FAST
#ifdef ENABLE_COMPRESSION_MODE_NORMAL
/*****************************************************************************************
Normal anti-predictor
*****************************************************************************************/
class CAntiPredictorNormal0000To3320 : public CAntiPredictor {
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements);
};
/*****************************************************************************************
Normal anti-predictor
*****************************************************************************************/
class CAntiPredictorNormal3320To3800 : public CAntiPredictor {
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements);
};
/*****************************************************************************************
Normal anti-predictor
*****************************************************************************************/
class CAntiPredictorNormal3800ToCurrent : public CAntiPredictor {
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements);
};
#endif // #ifdef ENABLE_COMPRESSION_MODE_NORMAL
#ifdef ENABLE_COMPRESSION_MODE_HIGH
/*****************************************************************************************
High anti-predictor
*****************************************************************************************/
class CAntiPredictorHigh0000To3320 : public CAntiPredictor {
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements);
};
/*****************************************************************************************
High anti-predictor
*****************************************************************************************/
class CAntiPredictorHigh3320To3600 : public CAntiPredictor {
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements);
};
/*****************************************************************************************
High anti-predictor
*****************************************************************************************/
class CAntiPredictorHigh3600To3700 : public CAntiPredictor {
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements);
};
/*****************************************************************************************
High anti-predictor
*****************************************************************************************/
class CAntiPredictorHigh3700To3800 : public CAntiPredictor {
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements);
};
/*****************************************************************************************
High anti-predictor
*****************************************************************************************/
class CAntiPredictorHigh3800ToCurrent : public CAntiPredictor {
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements);
};
#endif // #ifdef ENABLE_COMPRESSION_MODE_HIGH
#ifdef ENABLE_COMPRESSION_MODE_EXTRA_HIGH
/*****************************************************************************************
Extra high helper
*****************************************************************************************/
class CAntiPredictorExtraHighHelper
{
public:
int ConventionalDotProduct(short *bip, short *bbm, short *pIPAdaptFactor, int op, int nNumberOfIterations);
#ifdef ENABLE_ASSEMBLY
int MMXDotProduct(short *bip, short *bbm, short *pIPAdaptFactor, int op, int nNumberOfIterations);
#endif // #ifdef ENABLE_ASSEMBLY
};
/*****************************************************************************************
Extra high anti-predictor
*****************************************************************************************/
class CAntiPredictorExtraHigh0000To3320 : public CAntiPredictor {
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements, int Iterations, unsigned int *pOffsetValueArrayA, unsigned int *pOffsetValueArrayB);
private:
void AntiPredictorOffset(int* Input_Array, int* Output_Array, int Number_of_Elements, int g, int dm, int Max_Order);
};
/*****************************************************************************************
Extra high anti-predictor
*****************************************************************************************/
class CAntiPredictorExtraHigh3320To3600 : public CAntiPredictor {
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements, int Iterations, unsigned int *pOffsetValueArrayA, unsigned int *pOffsetValueArrayB);
private:
void AntiPredictorOffset(int* Input_Array, int* Output_Array, int Number_of_Elements, int g, int dm, int Max_Order);
};
/*****************************************************************************************
Extra high anti-predictor
*****************************************************************************************/
class CAntiPredictorExtraHigh3600To3700 : public CAntiPredictor {
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements, int Iterations, unsigned int *pOffsetValueArrayA, unsigned int *pOffsetValueArrayB);
private:
void AntiPredictorOffset(int* Input_Array, int* Output_Array, int Number_of_Elements, int g1, int g2, int Max_Order);
};
/*****************************************************************************************
Extra high anti-predictor
*****************************************************************************************/
class CAntiPredictorExtraHigh3700To3800 : public CAntiPredictor {
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements, int Iterations, unsigned int *pOffsetValueArrayA, unsigned int *pOffsetValueArrayB);
private:
void AntiPredictorOffset(int* Input_Array, int* Output_Array, int Number_of_Elements, int g1, int g2, int Max_Order);
};
/*****************************************************************************************
Extra high anti-predictor
*****************************************************************************************/
class CAntiPredictorExtraHigh3800ToCurrent : public CAntiPredictor {
public:
// functions
void AntiPredict(int *pInputArray, int *pOutputArray, int NumberOfElements, BOOL bMMXAvailable, int CPULoadBalancingFactor, int nVersion);
};
#endif // #ifdef ENABLE_COMPRESSION_MODE_EXTRA_HIGH
#endif // #ifndef APE_ANTIPREDICTOR_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -