/* --------------------------------------------------------------------------
 * Copyright (c) 2018-2020 Kneron Inc. All rights reserved.
 *
 *      Name:    ncpu_extend_ftr.c
 *      Purpose: Extend new features implementation
 *
 *---------------------------------------------------------------------------*/

#include "kdpio.h"
#include "model_type.h"
#include "model_ppp.h"

/*********************************************************************************
                Registered model pre-process features list

only need to register functions for models that default builtin pre-proc can't support
*********************************************************************************/
model_pre_post_func_t model_pre_proc_fns[MAX_MODEL_REGISTRATIONS] = {
    /* < model type ID >                                < pre-process function > */
    /* -------------------------------------------------------------------------- */
    0 		// no pre-process function is specified
	
    /* Put customized pre-process functions below:
    { CUSTOMER_MODEL_1,                                 preproc_customer_model_1 },
    { CUSTOMER_MODEL_2,                                 preproc_customer_model_2 },
    { CUSTOMER_MODEL_3,                                 preproc_customer_model_3 },
    */
};

/*********************************************************************************
                Registered model post-process features list
*********************************************************************************/
model_pre_post_func_t model_post_proc_fns[MAX_MODEL_REGISTRATIONS] = {
    /* < model type ID >                                < post-process function > */
    /* -------------------------------------------------------------------------- */

    { TINY_YOLO_V3_224_224_3,                           post_yolov3_optimized },
    { TINY_YOLO_V3_416_416_3,                           post_yolov3_optimized },
    { TINY_YOLO_V3_608_608_3,                           post_yolov3_optimized },
    { KNERON_YOLOV5S_PersonBicycleCarMotorcycleBusTruckCatDog8_480_256_3,   post_yolov5_optimized },

    /* Put customized post-process functions below:
    { CUSTOMER_MODEL_1,                                 post_customer_model_1 },
    { CUSTOMER_MODEL_2,                                 post_customer_model_2 },
    { CUSTOMER_MODEL_3,                                 post_customer_model_3 },
    */
};

