/****************************************************************************** * * 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 PAD_VERT C #define PAD_HORZ C #define PAD_LEFT_LUMA C #define PAD_LEFT_CHROMA C #define PAD_RIGHT_LUMA C #define PAD_RIGHT_CHROMA C #define DEBLOCKING_ASM 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 #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_T0_9 C #define INTRA_PRED_LUMA_MODE_11_T0_17 C #define INTRA_PRED_LUMA_MODE_19_T0_25 C #define INTRA_PRED_LUMA_MODE_27_T0_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 /* 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__ */