10d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/******************************************************************************
20d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
30d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore
40d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
50d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Licensed under the Apache License, Version 2.0 (the "License");
60d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* you may not use this file except in compliance with the License.
70d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* You may obtain a copy of the License at:
80d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
90d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* http://www.apache.org/licenses/LICENSE-2.0
100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Unless required by applicable law or agreed to in writing, software
120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* distributed under the License is distributed on an "AS IS" BASIS,
130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* See the License for the specific language governing permissions and
150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* limitations under the License.
160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar******************************************************************************/
180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/**
190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @file
210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  ihevc_inter_pred.h
220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @brief
240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Declarations for the fucntions defined in  ihevc_inter_pred_ft.c
250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @author
270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  Srinivas T
280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @par List of Functions:
300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @remarks
320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*  None
330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*
340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*******************************************************************************
350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*/
360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#ifndef _IHEVC_INTER_PRED_H_
370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define _IHEVC_INTER_PRED_H_
380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define NTAPS_LUMA 8
400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define NTAPS_CHROMA 4
410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define SHIFT_14_MINUS_BIT_DEPTH (14 - BIT_DEPTH)
420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define OFFSET_14_MINUS_BIT_DEPTH (1 << (SHIFT_14_MINUS_BIT_DEPTH - 1))
430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define OFFSET14 (1 << (14 - 1))
440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define FILTER_PREC 6
450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define REF_WIDTH 1280
470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define REF_HEIGHT 720
480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* Function Declarations                                                     */
510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/
520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakartypedef void ihevc_inter_pred_ft(
540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD8 *pu1_src,
550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD8 *pu1_dst,
560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 src_strd,
570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 dst_strd,
580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD8 *pi1_coeff,
590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 ht,
600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 wd);
610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakartypedef void ihevc_inter_pred_w16out_ft(
630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD8 *pu1_src,
640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD16 *pi2_dst,
650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 src_strd,
660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 dst_strd,
670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD8 *pi1_coeff,
680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 ht,
690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 wd);
700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakartypedef void ihevc_inter_pred_w16inp_ft(
720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD16 *pi2_src,
730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD8 *pu1_dst,
740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 src_strd,
750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 dst_strd,
760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD8 *pi1_coeff,
770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 ht,
780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 wd);
790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakartypedef void ihevc_inter_pred_w16inp_w16out_ft(
810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD16 *pi2_src,
820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD16 *pi2_dst,
830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 src_strd,
840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 dst_strd,
850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD8 *pi1_coeff,
860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 ht,
870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 wd);
880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakartypedef void ihevc_hbd_inter_pred_ft(UWORD16 *pu2_src,
910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                     UWORD16 *pu2_dst,
920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                     WORD32 src_strd,
930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                     WORD32 dst_strd,
940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                     WORD8 *pi1_coeff,
950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                     WORD32 ht,
960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                     WORD32 wd,
970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                     UWORD8 bit_depth);
980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakartypedef void ihevc_hbd_inter_pred_w16out_ft(
1010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD16 *pu2_src,
1020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD16 *pi2_dst,
1030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 src_strd,
1040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 dst_strd,
1050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD8 *pi1_coeff,
1060d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 ht,
1070d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 wd,
1080d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD8 bit_depth);
1090d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakartypedef void ihevc_hbd_inter_pred_w16inp_ft(
1120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD16 *pi2_src,
1130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD16 *pu2_dst,
1140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 src_strd,
1150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 dst_strd,
1160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD8 *pi1_coeff,
1170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 ht,
1180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 wd,
1190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD8 bit_depth);
1200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakartypedef void ihevc_hbd_inter_pred_w16inp_w16out_ft(
1230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD16 *pi2_src,
1240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD16 *pi2_dst,
1250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 src_strd,
1260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 dst_strd,
1270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD8 *pi1_coeff,
1280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 ht,
1290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 wd,
1300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD8 bit_depth);
1310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakartypedef void ihevc_hbd_weighted_pred_uni_ft(
1330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD16 *pi2_src,
1340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD16 *pu2_dst,
1350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 src_strd,
1360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 dst_strd,
1370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 wgt0,
1380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 off0,
1390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 shift,
1400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 lvl_shift,
1410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 ht,
1420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 wd,
1430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD8 bit_depth);
1440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakartypedef void ihevc_hbd_weighted_pred_bi_ft(
1470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD16 *pi2_src1,
1480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD16 *pi2_src2,
1490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD16 *pu2_dst,
1500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 src_strd1,
1510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 src_strd2,
1520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 dst_strd,
1530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 wgt0,
1540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 off0,
1550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 wgt1,
1560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 off1,
1570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 shift,
1580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 lvl_shift1,
1590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 lvl_shift2,
1600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 ht,
1610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 wd,
1620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD8 bit_depth);
1630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakartypedef void ihevc_hbd_weighted_pred_bi_default_ft(
1660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD16 *pi2_src1,
1670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD16 *pi2_src2,
1680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD16 *pu2_dst,
1690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 src_strd1,
1700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 src_strd2,
1710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 dst_strd,
1720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 lvl_shift1,
1730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 lvl_shift2,
1740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 ht,
1750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                WORD32 wd,
1760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                UWORD8 bit_depth);
1770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakartypedef void ihevc_hbd_weighted_pred_chroma_uni_ft(WORD16 *pi2_src,
1780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                   UWORD16 *pu2_dst,
1790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                   WORD32 src_strd,
1800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                   WORD32 dst_strd,
1810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                   WORD32 wgt0_cb,
1820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                   WORD32 wgt0_cr,
1830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                   WORD32 off0_cb,
1840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                   WORD32 off0_cr,
1850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                   WORD32 shift,
1860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                   WORD32 lvl_shift,
1870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                   WORD32 ht,
1880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                   WORD32 wd,
1890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                   UWORD8 bit_depth);
1900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
1910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakartypedef void ihevc_hbd_weighted_pred_chroma_bi_ft(WORD16 *pi2_src1,
1920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD16 *pi2_src2,
1930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  UWORD16 *pu2_dst,
1940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 src_strd1,
1950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 src_strd2,
1960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 dst_strd,
1970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 wgt0_cb,
1980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 wgt0_cr,
1990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 off0_cb,
2000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 off0_cr,
2010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 wgt1_cb,
2020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 wgt1_cr,
2030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 off1_cb,
2040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 off1_cr,
2050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 shift,
2060d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 lvl_shift1,
2070d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 lvl_shift2,
2080d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 ht,
2090d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  WORD32 wd,
2100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                  UWORD8 bit_depth);
2110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakartypedef void ihevc_hbd_weighted_pred_chroma_bi_default_ft(WORD16 *pi2_src1,
2130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                          WORD16 *pi2_src2,
2140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                          UWORD16 *pu2_dst,
2150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                          WORD32 src_strd1,
2160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                          WORD32 src_strd2,
2170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                          WORD32 dst_strd,
2180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                          WORD32 lvl_shift1,
2190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                          WORD32 lvl_shift2,
2200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                          WORD32 ht,
2210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                          WORD32 wd,
2220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar                                                          UWORD8 bit_depth);
2230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* C function declarations */
2240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_copy;
2250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_horz;
2260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_vert;
2270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out;
2280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_horz_w16out;
2290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_vert_w16out;
2300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_ft ihevc_inter_pred_luma_vert_w16inp;
2310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_luma_vert_w16inp_w16out;
2320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_copy;
2330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_horz;
2340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_vert;
2350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out;
2360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_horz_w16out;
2370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_vert_w16out;
2380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_ft ihevc_inter_pred_chroma_vert_w16inp;
2390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_chroma_vert_w16inp_w16out;
2400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_luma_copy;
2420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_luma_horz;
2430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_luma_vert;
2440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_luma_copy_w16out;
2450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_luma_horz_w16out;
2460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_luma_vert_w16out;
2470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16inp_ft ihevc_hbd_inter_pred_luma_vert_w16inp;
2480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16inp_w16out_ft ihevc_hbd_inter_pred_luma_vert_w16inp_w16out;
2490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_chroma_copy;
2500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_chroma_horz;
2510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_chroma_vert;
2520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_chroma_copy_w16out;
2530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_chroma_horz_w16out;
2540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_chroma_vert_w16out;
2550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16inp_ft ihevc_hbd_inter_pred_chroma_vert_w16inp;
2560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16inp_w16out_ft ihevc_hbd_inter_pred_chroma_vert_w16inp_w16out;
2570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_weighted_pred_uni_ft ihevc_hbd_weighted_pred_uni;
2580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_weighted_pred_bi_ft ihevc_hbd_weighted_pred_bi;
2590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_weighted_pred_bi_default_ft ihevc_hbd_weighted_pred_bi_default;
2600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_weighted_pred_chroma_uni_ft ihevc_hbd_weighted_pred_chroma_uni;
2610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_weighted_pred_chroma_bi_ft ihevc_hbd_weighted_pred_chroma_bi;
2620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_weighted_pred_chroma_bi_default_ft ihevc_hbd_weighted_pred_chroma_bi_default;
2630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* A9 Q function declarations */
2650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_copy_a9q;
2660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_horz_a9q;
2670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_vert_a9q;
2680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out_a9q;
2690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_horz_w16out_a9q;
2700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_vert_w16out_a9q;
2710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_ft ihevc_inter_pred_luma_vert_w16inp_a9q;
2720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_luma_vert_w16inp_w16out_a9q;
2730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_copy_a9q;
2740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_horz_a9q;
2750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_vert_a9q;
2760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out_a9q;
2770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_horz_w16out_a9q;
2780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_vert_w16out_a9q;
2790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_ft ihevc_inter_pred_chroma_vert_w16inp_a9q;
2800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_chroma_vert_w16inp_w16out_a9q;
2810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
2820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* A9 A function declarations */
2830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_copy_a9a;
2840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_horz_a9a;
2850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_vert_a9a;
2860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out_a9a;
2870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_horz_w16out_a9a;
2880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_vert_w16out_a9a;
2890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_ft ihevc_inter_pred_luma_vert_w16inp_a9a;
2900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_luma_vert_w16inp_w16out_a9a;
2910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_copy_a9a;
2920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_horz_a9a;
2930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_vert_a9a;
2940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out_a9a;
2950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_horz_w16out_a9a;
2960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_vert_w16out_a9a;
2970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_ft ihevc_inter_pred_chroma_vert_w16inp_a9a;
2980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_chroma_vert_w16inp_w16out_a9a;
2990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* NEONINTR function declarations */
3010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_copy_neonintr;
3020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_horz_neonintr;
3030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_vert_neonintr;
3040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out_neonintr;
3050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_horz_w16out_neonintr;
3060d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_vert_w16out_neonintr;
3070d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_ft ihevc_inter_pred_luma_vert_w16inp_neonintr;
3080d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_luma_vert_w16inp_w16out_neonintr;
3090d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_copy_neonintr;
3100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_horz_neonintr;
3110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_vert_neonintr;
3120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out_neonintr;
3130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_horz_w16out_neonintr;
3140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_vert_w16out_neonintr;
3150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_ft ihevc_inter_pred_chroma_vert_w16inp_neonintr;
3160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_chroma_vert_w16inp_w16out_neonintr;
3170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* SSSE31 function declarations */
3190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_copy_ssse3;
3200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_horz_ssse3;
3210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_vert_ssse3;
3220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out_ssse3;
3230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_horz_w16out_ssse3;
3240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_vert_w16out_ssse3;
3250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_ft ihevc_inter_pred_luma_vert_w16inp_ssse3;
3260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_luma_vert_w16inp_w16out_ssse3;
3270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_copy_ssse3;
3280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_horz_ssse3;
3290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_vert_ssse3;
3300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out_ssse3;
3310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_horz_w16out_ssse3;
3320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_vert_w16out_ssse3;
3330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_ft ihevc_inter_pred_chroma_vert_w16inp_ssse3;
3340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_chroma_vert_w16inp_w16out_ssse3;
3350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* SSE42 function declarations */
3370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out_sse42;
3380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_copy_sse42;
3390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out_sse42;
3400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_luma_copy_sse42;
3420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_luma_horz_sse42;
3430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_luma_vert_sse42;
3440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_luma_copy_w16out_sse42;
3450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_luma_horz_w16out_sse42;
3460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_luma_vert_w16out_sse42;
3470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16inp_ft ihevc_hbd_inter_pred_luma_vert_w16inp_sse42;
3480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16inp_w16out_ft ihevc_hbd_inter_pred_luma_vert_w16inp_w16out_sse42;
3490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_chroma_copy_sse42;
3510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_chroma_horz_sse42;
3520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_chroma_vert_sse42;
3530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_chroma_copy_w16out_sse42;
3540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_chroma_horz_w16out_sse42;
3550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_chroma_vert_w16out_sse42;
3560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16inp_ft ihevc_hbd_inter_pred_chroma_vert_w16inp_sse42;
3570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_inter_pred_w16inp_w16out_ft ihevc_hbd_inter_pred_chroma_vert_w16inp_w16out_sse42;
3580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_weighted_pred_uni_ft ihevc_hbd_weighted_pred_uni_sse42;
3600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_weighted_pred_bi_ft ihevc_hbd_weighted_pred_bi_sse42;
3610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_weighted_pred_bi_default_ft ihevc_hbd_weighted_pred_bi_default_sse42;
3620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_weighted_pred_chroma_uni_ft ihevc_hbd_weighted_pred_chroma_uni_sse42;
3630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_weighted_pred_chroma_bi_ft ihevc_hbd_weighted_pred_chroma_bi_sse42;
3640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_hbd_weighted_pred_chroma_bi_default_ft ihevc_hbd_weighted_pred_chroma_bi_default_sse42;
3650d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#ifndef DISABLE_AVX2
3670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* AVX2 function declarations */
3680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_copy_avx2;
3690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_horz_avx2;
3700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_vert_avx2;
3710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out_avx2;
3720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_horz_w16out_avx2;
3730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_vert_w16out_avx2;
3740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_ft ihevc_inter_pred_luma_vert_w16inp_avx2;
3750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_luma_vert_w16inp_w16out_avx2;
3760d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_copy_avx2;
3770d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_horz_avx2;
3780d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_vert_avx2;
3790d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out_avx2;
3800d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_horz_w16out_avx2;
3810d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_vert_w16out_avx2;
3820d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_ft ihevc_inter_pred_chroma_vert_w16inp_avx2;
3830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_chroma_vert_w16inp_w16out_avx2;
3840d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#endif
3850d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
3860d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* armv8 function declarations */
3870d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_copy_av8;
3880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_horz_av8;
3890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_luma_vert_av8;
3900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out_av8;
3910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_horz_w16out_av8;
3920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_vert_w16out_av8;
3930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_ft ihevc_inter_pred_luma_vert_w16inp_av8;
3940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_luma_vert_w16inp_w16out_av8;
3950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_copy_av8;
3960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_horz_av8;
3970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_ft ihevc_inter_pred_chroma_vert_av8;
3980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out_av8;
3990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_horz_w16out_av8;
4000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_vert_w16out_av8;
4010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_ft ihevc_inter_pred_chroma_vert_w16inp_av8;
4020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_chroma_vert_w16inp_w16out_av8;
4030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#endif /*_IHEVC_INTER_PRED_H_*/
404