aboutsummaryrefslogtreecommitdiff
path: root/encoder/ih264e_half_pel.h
diff options
context:
space:
mode:
Diffstat (limited to 'encoder/ih264e_half_pel.h')
-rw-r--r--encoder/ih264e_half_pel.h135
1 files changed, 28 insertions, 107 deletions
diff --git a/encoder/ih264e_half_pel.h b/encoder/ih264e_half_pel.h
index 92bd37f..5b66ec0 100644
--- a/encoder/ih264e_half_pel.h
+++ b/encoder/ih264e_half_pel.h
@@ -19,27 +19,27 @@
*/
/**
- *******************************************************************************
- * @file
- * ih264e_half_pel.h
- *
- * @brief
- * Contains extern declarations of subpel functions used by the encoder
- *
- * @author
- * ittiam
- *
- * @remarks
- * none
- *
- *******************************************************************************
- */
+*******************************************************************************
+* @file
+* ih264e_half_pel.h
+*
+* @brief
+* Contains declarations of subpel functions used by the encoder
+*
+* @author
+* ittiam
+*
+* @remarks
+* none
+*
+*******************************************************************************
+*/
-#ifndef IH264E_HALF_PEL_H_
-#define IH264E_HALF_PEL_H_
+#ifndef _IH264E_HALF_PEL_H_
+#define _IH264E_HALF_PEL_H_
/*****************************************************************************/
-/* Global constants */
+/* Constant Macros */
/*****************************************************************************/
/*
* Dimensions of subpel plane buffers
@@ -48,99 +48,14 @@
#define HP_PL_HT MB_SIZE + 1
/*****************************************************************************/
-/* Extern Function Declarations */
+/* Function Declarations */
/*****************************************************************************/
-/**
-*******************************************************************************
-*
-* @brief
-* Interprediction luma filter for horizontal input (Filter run for width = 17
-* and height =16)
-*
-* @par Description:
-* Applies a 6 tap horizontal filter .The output is clipped to 8 bits
-* sec 8.4.2.2.1 titled "Luma sample interpolation process"
-*
-* @param[in] pu1_src
-* UWORD8 pointer to the source
-*
-* @param[out] pu1_dst
-* UWORD8 pointer to the destination
-*
-* @param[in] src_strd
-* integer source stride
-*
-* @param[in] dst_strd
-* integer destination stride
-*
-* @returns
-*
-* @remarks
-* None
-*
-*******************************************************************************
-*/
typedef void ih264e_sixtapfilter_horz_ft(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
WORD32 dst_strd);
-ih264e_sixtapfilter_horz_ft ih264e_sixtapfilter_horz;
-
-/* arm assembly */
-ih264e_sixtapfilter_horz_ft ih264e_sixtapfilter_horz_a9q;
-ih264e_sixtapfilter_horz_ft ih264e_sixtapfilter_horz_av8;
-
-/* x86 intrinsics*/
-ih264e_sixtapfilter_horz_ft ih264e_sixtapfilter_horz_ssse3;
-
-/**
-*******************************************************************************
-*
-* @brief
-* This function implements a two stage cascaded six tap filter. It applies
-* the six tap filter in the vertical direction on the predictor values,
-* followed by applying the same filter in the horizontal direction on the
-* output of the first stage. The six tap filtering operation is described in
-* sec 8.4.2.2.1 titled "Luma sample interpolation process" (Filter run for
-* width = 17 and height = 17)
-*
-* @par Description:
-* The function interpolates the predictors first in the vertical direction and
-* then in the horizontal direction to output the (1/2,1/2). The output of the
-* first stage of the filter is stored in the buffer pointed to by
-* pi16_pred1(only in C) in 16 bit precision.
-*
-* @param[in] pu1_src
-* UWORD8 pointer to the source
-*
-* @param[out] pu1_dst1
-* UWORD8 pointer to the destination (Horizontal filtered output)
-*
-* @param[out] pu1_dst2
-* UWORD8 pointer to the destination (output after applying vertical filter to
-* the intermediate horizontal output)
-*
-* @param[in] src_strd
-* integer source stride
-
-* @param[in] dst_strd
-* integer destination stride of pu1_dst
-*
-* @param[in] pi4_pred
-* Pointer to 16bit intermediate buffer (used only in c)
-*
-* @param[in] i4_pred_strd
-* integer destination stride of pi16_pred1
-*
-* @returns
-*
-* @remarks
-* None
-*
-*******************************************************************************
-*/
typedef void ih264e_sixtap_filter_2dvh_vert_ft(UWORD8 *pu1_src,
UWORD8 *pu1_dst1,
UWORD8 *pu1_dst2,
@@ -149,14 +64,20 @@ typedef void ih264e_sixtap_filter_2dvh_vert_ft(UWORD8 *pu1_src,
WORD32 *pi4_pred,
WORD32 i4_pred_strd);
+/* C Declarations */
+ih264e_sixtapfilter_horz_ft ih264e_sixtapfilter_horz;
ih264e_sixtap_filter_2dvh_vert_ft ih264e_sixtap_filter_2dvh_vert;
-/* assembly */
+/* A9 Declarations */
+ih264e_sixtapfilter_horz_ft ih264e_sixtapfilter_horz_a9q;
ih264e_sixtap_filter_2dvh_vert_ft ih264e_sixtap_filter_2dvh_vert_a9q;
+/* AV8 Declarations */
+ih264e_sixtapfilter_horz_ft ih264e_sixtapfilter_horz_av8;
ih264e_sixtap_filter_2dvh_vert_ft ih264e_sixtap_filter_2dvh_vert_av8;
-/* x86 intrinsics */
+/* SSSE3 Declarations */
+ih264e_sixtapfilter_horz_ft ih264e_sixtapfilter_horz_ssse3;
ih264e_sixtap_filter_2dvh_vert_ft ih264e_sixtap_filter_2dvh_vert_ssse3;
-#endif /* IH264E_HALF_PEL_H_ */
+#endif /* _IH264E_HALF_PEL_H_ */