#include "src/dsp/dsp.h"
#include <assert.h>
#include <math.h>
#include <stdlib.h>
#include "src/dec/vp8li_dec.h"
#include "src/utils/endian_inl_utils.h"
#include "src/dsp/lossless.h"
#include "src/dsp/lossless_common.h"
#include "src/dsp/yuv.h"
const float kLog2Table[LOG_LOOKUP_IDX_MAX] = …;
const float kSLog2Table[LOG_LOOKUP_IDX_MAX] = …;
const VP8LPrefixCode kPrefixEncodeCode[PREFIX_LOOKUP_IDX_MAX] = …;
const uint8_t kPrefixEncodeExtraBitsValue[PREFIX_LOOKUP_IDX_MAX] = …;
static float FastSLog2Slow_C(uint32_t v) { … }
static float FastLog2Slow_C(uint32_t v) { … }
static float CombinedShannonEntropy_C(const int X[256], const int Y[256]) { … }
void VP8LBitEntropyInit(VP8LBitEntropy* const entropy) { … }
void VP8LBitsEntropyUnrefined(const uint32_t* const array, int n,
VP8LBitEntropy* const entropy) { … }
static WEBP_INLINE void GetEntropyUnrefinedHelper(
uint32_t val, int i, uint32_t* const val_prev, int* const i_prev,
VP8LBitEntropy* const bit_entropy, VP8LStreaks* const stats) { … }
static void GetEntropyUnrefined_C(const uint32_t X[], int length,
VP8LBitEntropy* const bit_entropy,
VP8LStreaks* const stats) { … }
static void GetCombinedEntropyUnrefined_C(const uint32_t X[],
const uint32_t Y[],
int length,
VP8LBitEntropy* const bit_entropy,
VP8LStreaks* const stats) { … }
void VP8LSubtractGreenFromBlueAndRed_C(uint32_t* argb_data, int num_pixels) { … }
static WEBP_INLINE int ColorTransformDelta(int8_t color_pred, int8_t color) { … }
static WEBP_INLINE int8_t U32ToS8(uint32_t v) { … }
void VP8LTransformColor_C(const VP8LMultipliers* const m, uint32_t* data,
int num_pixels) { … }
static WEBP_INLINE uint8_t TransformColorRed(uint8_t green_to_red,
uint32_t argb) { … }
static WEBP_INLINE uint8_t TransformColorBlue(uint8_t green_to_blue,
uint8_t red_to_blue,
uint32_t argb) { … }
void VP8LCollectColorRedTransforms_C(const uint32_t* argb, int stride,
int tile_width, int tile_height,
int green_to_red, int histo[]) { … }
void VP8LCollectColorBlueTransforms_C(const uint32_t* argb, int stride,
int tile_width, int tile_height,
int green_to_blue, int red_to_blue,
int histo[]) { … }
static int VectorMismatch_C(const uint32_t* const array1,
const uint32_t* const array2, int length) { … }
void VP8LBundleColorMap_C(const uint8_t* const row, int width, int xbits,
uint32_t* dst) { … }
static uint32_t ExtraCost_C(const uint32_t* population, int length) { … }
static uint32_t ExtraCostCombined_C(const uint32_t* X, const uint32_t* Y,
int length) { … }
static void AddVector_C(const uint32_t* a, const uint32_t* b, uint32_t* out,
int size) { … }
static void AddVectorEq_C(const uint32_t* a, uint32_t* out, int size) { … }
#define ADD …
#define ADD_EQ …
void VP8LHistogramAdd(const VP8LHistogram* const a,
const VP8LHistogram* const b, VP8LHistogram* const out) { … }
#undef ADD
#undef ADD_EQ
static void PredictorSub0_C(const uint32_t* in, const uint32_t* upper,
int num_pixels, uint32_t* out) { … }
static void PredictorSub1_C(const uint32_t* in, const uint32_t* upper,
int num_pixels, uint32_t* out) { … }
#define GENERATE_PREDICTOR_SUB(PREDICTOR_I) …
GENERATE_PREDICTOR_SUB(…)
GENERATE_PREDICTOR_SUB(…)
GENERATE_PREDICTOR_SUB(…)
GENERATE_PREDICTOR_SUB(…)
GENERATE_PREDICTOR_SUB(…)
GENERATE_PREDICTOR_SUB(…)
GENERATE_PREDICTOR_SUB(…)
GENERATE_PREDICTOR_SUB(…)
GENERATE_PREDICTOR_SUB(…)
GENERATE_PREDICTOR_SUB(…)
GENERATE_PREDICTOR_SUB(…)
GENERATE_PREDICTOR_SUB(…)
VP8LProcessEncBlueAndRedFunc VP8LSubtractGreenFromBlueAndRed;
VP8LTransformColorFunc VP8LTransformColor;
VP8LCollectColorBlueTransformsFunc VP8LCollectColorBlueTransforms;
VP8LCollectColorRedTransformsFunc VP8LCollectColorRedTransforms;
VP8LFastLog2SlowFunc VP8LFastLog2Slow;
VP8LFastLog2SlowFunc VP8LFastSLog2Slow;
VP8LCostFunc VP8LExtraCost;
VP8LCostCombinedFunc VP8LExtraCostCombined;
VP8LCombinedShannonEntropyFunc VP8LCombinedShannonEntropy;
VP8LGetEntropyUnrefinedFunc VP8LGetEntropyUnrefined;
VP8LGetCombinedEntropyUnrefinedFunc VP8LGetCombinedEntropyUnrefined;
VP8LAddVectorFunc VP8LAddVector;
VP8LAddVectorEqFunc VP8LAddVectorEq;
VP8LVectorMismatchFunc VP8LVectorMismatch;
VP8LBundleColorMapFunc VP8LBundleColorMap;
VP8LPredictorAddSubFunc VP8LPredictorsSub[16];
VP8LPredictorAddSubFunc VP8LPredictorsSub_C[16];
extern VP8CPUInfo VP8GetCPUInfo;
extern void VP8LEncDspInitSSE2(void);
extern void VP8LEncDspInitSSE41(void);
extern void VP8LEncDspInitNEON(void);
extern void VP8LEncDspInitMIPS32(void);
extern void VP8LEncDspInitMIPSdspR2(void);
extern void VP8LEncDspInitMSA(void);
WEBP_DSP_INIT_FUNC(VP8LEncDspInit) { … }