225 lines
9.3 KiB
C
225 lines
9.3 KiB
C
/******************************************************************************
|
|
*
|
|
* Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at:
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
******************************************************************************/
|
|
/**
|
|
*******************************************************************************
|
|
* @file
|
|
* ihevc_func_selector.h
|
|
*
|
|
* @brief
|
|
* For each function decide whether to use C function, or Neon intrinsics
|
|
* or Cortex A8 intrinsics or Neon assembly or cortex a8 assembly
|
|
*
|
|
* @author
|
|
* Harish
|
|
*
|
|
* @remarks
|
|
* None
|
|
*
|
|
*******************************************************************************
|
|
*/
|
|
|
|
#ifndef __IHEVC_FUNC_SELECTOR_H__
|
|
#define __IHEVC_FUNC_SELECTOR_H__
|
|
|
|
|
|
#include "ihevc_func_types.h"
|
|
|
|
#define INTER_PRED_LUMA_COPY C
|
|
#define INTER_PRED_LUMA_HORZ C
|
|
#define INTER_PRED_LUMA_VERT C
|
|
#define INTER_PRED_LUMA_COPY_W16OUT C
|
|
#define INTER_PRED_LUMA_HORZ_W16OUT C
|
|
#define INTER_PRED_LUMA_VERT_W16OUT C
|
|
#define INTER_PRED_LUMA_VERT_W16INP C
|
|
#define INTER_PRED_LUMA_VERT_W16INP_W16OUT C
|
|
|
|
#define INTER_PRED_CHROMA_COPY C
|
|
#define INTER_PRED_CHROMA_HORZ C
|
|
#define INTER_PRED_CHROMA_VERT C
|
|
#define INTER_PRED_CHROMA_COPY_W16OUT C
|
|
#define INTER_PRED_CHROMA_HORZ_W16OUT C
|
|
#define INTER_PRED_CHROMA_VERT_W16OUT C
|
|
#define INTER_PRED_CHROMA_VERT_W16INP C
|
|
#define INTER_PRED_CHROMA_VERT_W16INP_W16OUT C
|
|
|
|
#define WEIGHTED_PRED_UNI C
|
|
#define WEIGHTED_PRED_BI C
|
|
#define WEIGHTED_PRED_BI_DEFAULT C
|
|
#define WEIGHTED_PRED_CHROMA_UNI C
|
|
#define WEIGHTED_PRED_CHROMA_BI C
|
|
#define WEIGHTED_PRED_CHROMA_BI_DEFAULT C
|
|
|
|
#define INTRA_PRED_LUMA_REF_SUBSTITUTION C
|
|
#define INTRA_PRED_REF_FILTERING C
|
|
#define INTRA_PRED_LUMA_PLANAR C
|
|
#define INTRA_PRED_LUMA_DC C
|
|
#define INTRA_PRED_LUMA_HORZ C
|
|
#define INTRA_PRED_LUMA_VER C
|
|
#define INTRA_PRED_LUMA_MODE_2 C
|
|
#define INTRA_PRED_LUMA_MODE_18_34 C
|
|
#define INTRA_PRED_LUMA_MODE_3_TO_9 C
|
|
#define INTRA_PRED_LUMA_MODE_11_TO_17 C
|
|
#define INTRA_PRED_LUMA_MODE_19_TO_25 C
|
|
#define INTRA_PRED_LUMA_MODE_27_TO_33 C
|
|
|
|
|
|
#define INTRA_PRED_CHROMA_PLANAR C
|
|
#define INTRA_PRED_CHROMA_DC C
|
|
#define INTRA_PRED_CHROMA_HOR C
|
|
#define INTRA_PRED_CHROMA_VER C
|
|
#define INTRA_PRED_CHROMA_MODE_2 C
|
|
#define INTRA_PRED_CHROMA_18_34 C
|
|
#define INTRA_PRED_CHROMA_3_T0_9 C
|
|
#define INTRA_PRED_CHROMA_11_T0_17 C
|
|
#define INTRA_PRED_CHROMA_19_T0_25 C
|
|
#define INTRA_PRED_CHROMA_27_T0_33 C
|
|
#define INTRA_PRED_CHROMA_REF_SUBSTITUTION C
|
|
|
|
#define PAD_VERT C
|
|
#define PAD_HORZ C
|
|
|
|
#define DEBLK_LUMA_HORZ C
|
|
#define DEBLK_LUMA_VERT C
|
|
#define DEBLK_CHROMA_HORZ C
|
|
#define DEBLK_CHROMA_VERT C
|
|
|
|
#define SAO_BAND_OFFSET_LUMA C
|
|
#define SAO_BAND_OFFSET_CHROMA C
|
|
#define SAO_EDGE_OFFSET_CLASS0_LUMA C
|
|
#define SAO_EDGE_OFFSET_CLASS1_LUMA C
|
|
#define SAO_EDGE_OFFSET_CLASS2_LUMA C
|
|
#define SAO_EDGE_OFFSET_CLASS3_LUMA C
|
|
#define SAO_EDGE_OFFSET_CLASS0_CHROMA C
|
|
#define SAO_EDGE_OFFSET_CLASS1_CHROMA C
|
|
#define SAO_EDGE_OFFSET_CLASS2_CHROMA C
|
|
#define SAO_EDGE_OFFSET_CLASS3_CHROMA C
|
|
|
|
/* Forward transform functions */
|
|
/* Luma */
|
|
#define RESI_TRANS_QUANT_4X4_TTYPE1 C
|
|
#define RESI_TRANS_QUANT_4X4 C
|
|
#define RESI_TRANS_QUANT_8X8 C
|
|
#define RESI_TRANS_QUANT_16X16 C
|
|
#define RESI_TRANS_QUANT_32X32 C
|
|
|
|
#define RESI_QUANT_4X4_TTYPE1 C
|
|
#define RESI_QUANT_4X4 C
|
|
#define RESI_QUANT_8X8 C
|
|
#define RESI_QUANT_16X16 C
|
|
#define RESI_QUANT_32X32 C
|
|
|
|
#define RESI_TRANS_4X4_TTYPE1 C
|
|
#define RESI_TRANS_4X4 C
|
|
#define RESI_TRANS_8X8 C
|
|
#define RESI_TRANS_16X16 C
|
|
#define RESI_TRANS_32X32 C
|
|
|
|
#define RESI_4X4_TTYPE1 C
|
|
#define RESI_4X4 C
|
|
#define RESI_8X8 C
|
|
#define RESI_16X16 C
|
|
#define RESI_32X32 C
|
|
|
|
#define TRANS_4X4_TTYPE1 C
|
|
#define TRANS_4X4 C
|
|
#define TRANS_8X8 C
|
|
#define TRANS_16X16 C
|
|
#define TRANS_32X32 C
|
|
|
|
#define QUANT_4X4_TTYPE1 C
|
|
#define QUANT_4X4 C
|
|
#define QUANT_8X8 C
|
|
#define QUANT_16X16 C
|
|
#define QUANT_32X32 C
|
|
|
|
/* Chroma interleaved*/
|
|
#define CHROMA_RESI_TRANS_QUANT_4X4 C
|
|
#define CHROMA_RESI_TRANS_QUANT_8X8 C
|
|
#define CHROMA_RESI_TRANS_QUANT_16X16 C
|
|
|
|
#define CHROMA_RESI_QUANT_4X4 C
|
|
#define CHROMA_RESI_QUANT_8X8 C
|
|
#define CHROMA_RESI_QUANT_16X16 C
|
|
|
|
#define CHROMA_RESI_TRANS_4X4 C
|
|
#define CHROMA_RESI_TRANS_8X8 C
|
|
#define CHROMA_RESI_TRANS_16X16 C
|
|
|
|
#define CHROMA_RESI_4X4 C
|
|
#define CHROMA_RESI_8X8 C
|
|
#define CHROMA_RESI_16X16 C
|
|
|
|
/* Inverse transform functions */
|
|
/* Luma */
|
|
#define IQUANT_ITRANS_RECON_4X4_TTYPE1 C
|
|
#define IQUANT_ITRANS_RECON_4X4 C
|
|
#define IQUANT_ITRANS_RECON_8X8 C
|
|
#define IQUANT_ITRANS_RECON_16X16 C
|
|
#define IQUANT_ITRANS_RECON_32X32 C
|
|
|
|
#define IQUANT_RECON_4X4_TTYPE1 C
|
|
#define IQUANT_RECON_4X4 C
|
|
#define IQUANT_RECON_8X8 C
|
|
#define IQUANT_RECON_16X16 C
|
|
#define IQUANT_RECON_32X32 C
|
|
|
|
#define ITRANS_RECON_4X4_TTYPE1 C
|
|
#define ITRANS_RECON_4X4 C
|
|
#define ITRANS_RECON_8X8 C
|
|
#define ITRANS_RECON_16X16 C
|
|
#define ITRANS_RECON_32X32 C
|
|
|
|
#define RECON_4X4_TTYPE1 C
|
|
#define RECON_4X4 C
|
|
#define RECON_8X8 C
|
|
#define RECON_16X16 C
|
|
#define RECON_32X32 C
|
|
|
|
#define ITRANS_4X4_TTYPE1 C
|
|
#define ITRANS_4X4 C
|
|
#define ITRANS_8X8 C
|
|
#define ITRANS_16X16 C
|
|
#define ITRANS_32X32 C
|
|
|
|
/* Chroma interleaved */
|
|
#define CHROMA_IQUANT_ITRANS_RECON_4X4 C
|
|
#define CHROMA_IQUANT_ITRANS_RECON_8X8 C
|
|
#define CHROMA_IQUANT_ITRANS_RECON_16X16 C
|
|
|
|
#define CHROMA_IQUANT_RECON_4X4 C
|
|
#define CHROMA_IQUANT_RECON_8X8 C
|
|
#define CHROMA_IQUANT_RECON_16X16 C
|
|
|
|
#define CHROMA_ITRANS_RECON_4X4 C
|
|
#define CHROMA_ITRANS_RECON_8X8 C
|
|
#define CHROMA_ITRANS_RECON_16X16 C
|
|
|
|
#define CHROMA_RECON_4X4 C
|
|
#define CHROMA_RECON_8X8 C
|
|
#define CHROMA_RECON_16X16 C
|
|
|
|
#define IHEVC_MEMCPY C
|
|
#define IHEVC_MEMSET C
|
|
#define IHEVC_MEMSET_16BIT C
|
|
#define IHEVC_MEMCPY_MUL_8 C
|
|
#define IHEVC_MEMSET_MUL_8 C
|
|
#define IHEVC_MEMSET_16BIT_MUL_8 C
|
|
|
|
#endif /* __IHEVC_FUNC_SELECTOR_H__ */
|
|
|