blob: fbc4c483e9d57c2cdf8c3e5118c8accdeaa47574 [file] [log] [blame] [edit]
/*
* Copyright (c) 2024, Alliance for Open Media. All rights reserved
*
* This source code is subject to the terms of the BSD 3-Clause Clear License
* and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear
* License was not distributed with this source code in the LICENSE file, you
* can obtain it at aomedia.org/license/software-license/bsd-3-c-c/. If the
* Alliance for Open Media Patent License 1.0 was not distributed with this
* source code in the PATENTS file, you can obtain it at
* aomedia.org/license/patent-license/.
*/
#ifndef AV1_ENCODER_INTRA_DIP_MODE_PRUNE_TFLITE_H
#define AV1_ENCODER_INTRA_DIP_MODE_PRUNE_TFLITE_H
#ifdef __cplusplus
extern "C" {
#endif
#include "av1/common/av1_common_int.h"
#define DIP_PRUNING_NUM_INPUTS 5
#define DIP_PRUNING_MAX_INPUT_SIZE 64
typedef struct {
const char *name;
float values[DIP_PRUNING_MAX_INPUT_SIZE];
int size;
int orig_index;
int tflite_index;
} dip_pruning_input;
typedef struct {
dip_pruning_input inputs[DIP_PRUNING_NUM_INPUTS];
} dip_pruning_inputs;
static const float DIP_PRUNING_THRESHOLDS[6] = {
0.588f, 0.462f, 0.562f, 0.5f, 0.525f, 0.05f,
};
static const int DIP_PRUNING_QPS[6] = { 85, 110, 135, 160, 185, 210 };
extern const uint8_t dip_pruning_tflite_qp85[58072];
extern const uint8_t dip_pruning_tflite_qp110[58072];
extern const uint8_t dip_pruning_tflite_qp135[58072];
extern const uint8_t dip_pruning_tflite_qp160[58072];
extern const uint8_t dip_pruning_tflite_qp185[58072];
extern const uint8_t dip_pruning_tflite_qp210[58072];
int intra_dip_mode_prune_tflite(void **context, float *output, int qp);
int intra_dip_mode_prune_get_model_index(int qp);
dip_pruning_inputs *intra_dip_mode_prune_get_inputs(void **context, int qp);
void intra_dip_mode_prune_normalize_and_resize_8x8(const uint16_t *input,
size_t stride, int bd,
size_t width, size_t height,
float *output);
void intra_dip_mode_prune_close(void **context);
#ifdef __cplusplus
}
#endif
#endif // AV1_ENCODER_INTRA_DIP_MODE_PRUNE_TFLITE_H